dataview intergation

This commit is contained in:
Cleon 2022-12-29 19:15:44 +13:00
parent 3cc6f5e3e7
commit b31ec2a34c
5 changed files with 513 additions and 29 deletions

View file

@ -18,6 +18,7 @@
"@typescript-eslint/no-unused-vars": ["error", { "args": "none" }],
"@typescript-eslint/ban-ts-comment": "off",
"no-prototype-builtins": "off",
"@typescript-eslint/no-empty-function": "off"
"@typescript-eslint/no-empty-function": "off",
"@typescript-eslint/no-explicit-any": "off"
}
}

View file

@ -13,6 +13,22 @@
-[ ] add image to uri function (then inject into template)
## API
```js
// Implemented
await $.import('somefile.md');
$.log(...anything);
$.data.somedata.filter();
await $.output(path, content, open);
// To do
$.dataview or $.dv...
$.notes('/path').filter( n=>n.basename == 'my note');
const output = $.templates.first().render(data);
// logging
// convert image (png, jpg) to data uri
```
## Dev info
### First time developing plugins?

164
main.ts
View file

@ -1,4 +1,5 @@
import { CachedMetadata, Editor, MarkdownView, moment, normalizePath, Notice, Plugin, TFile } from 'obsidian';
import {DataviewApi, getAPI as dvGetAPI} from "obsidian-dataview";
//import * as Mustache from 'mustache';
//import {render as mustacheRender} from 'mustache';
@ -29,6 +30,17 @@ HB.registerHelper('format_date', function (value, options) {
return moment(value).format(pattern);
});
HB.registerHelper('data_uri', function (value, options) {
//TODO
// Helper parameters
//const file = options.hash['file'] as string;
//const contentType = options.hash['content_type'] as string;
// check if file exists
// convert file to data uri
});
interface MyPluginSettings {
mySetting: string;
@ -54,10 +66,11 @@ export default class MyPlugin extends Plugin {
this.addCommand({
id: 'meld-build-run',
name: 'Run',
editorCallback: (editor: Editor, view: MarkdownView) => {
editorCallback: async (editor: Editor, view: MarkdownView) => {
try{
view.save();
const b = new Compiler();
const runner = b.compile(editor, view.file);
const runner = b.compile(editor, view);
runner();
}catch(e){
console.error(e);
@ -110,16 +123,30 @@ class DataSetRow implements IRowDataValueCollection{
}
interface IContext{
interface IContext {
data: IDataSetCollection;
templates: ITemplateContent[];
log: (...data: unknown[]) => void;
//current: MarkdownView;
//comp: Component;
//log: (...data: unknown[]) => void;
log: (message?: any, ...optionalParams: any[]) => void;
log_error: (message?: any, ...optionalParams: any[]) => void;
notice: (message: string | DocumentFragment, timeout?: number) => void;
render: (cb :ITemplateContent, data:object) => string;
output: ( file:string, content:string, open:boolean ) => void;
output: ( file:string, content:string, open?:boolean ) => void;
open: (linkText:string) => void;
load_data: (filepath:string, name?:string) => Promise<DataSet>;
load_template: (filepath:string) => Promise<ITemplateContent>;
import: (filepath:string) => void;
rebuild_view: () => void;
dv: DataviewApi | undefined;
dataview: DataviewApi | undefined;
}
interface ITemplateContent{
@ -363,11 +390,12 @@ class Parser {
export class Compiler{
public compile(editor: Editor, file: TFile) : () => void {
const fileCache = app.metadataCache.getFileCache(file);
public compile(editor: Editor, view: MarkdownView) : () => void {
const fileCache = app.metadataCache.getFileCache(view.file);
if (fileCache == null){
return () => {};
return async () => {};
}
const pzr = new Parser();
@ -383,13 +411,26 @@ export class Compiler{
const templateBlocks = pzr.fetchCodeBlocks(editor, fileCache, ['html']);
// build context
const dataViewApi = dvGetAPI();
//const comp = new Component();
//ma
//comp.addChild
const context : IContext = {
data: data,
templates: templateBlocks,
//current: view,
//comp: ,
load_data: (filepath, name) => this.data_loader(data, filepath, name),
load_template: (filepath) => this.template_loader(templateBlocks, filepath),
import: (filepath) => this.import( data, templateBlocks, filepath),
log: x => window.console.info( 'meld-build', x ),
log_error: x => window.console.error( 'meld-build', x ),
notice: (msg, timeout) => new Notice(msg, timeout),
dv: dataViewApi,
dataview: dataViewApi,
render: (cb, data) =>{
const template = HB.compile( cb.content );
const result = template(data);
@ -398,7 +439,7 @@ export class Compiler{
output: async (filename, content, open) =>{
const activeFile = app.workspace.getActiveFile();
//letoutputFile = normalizePath( newFileFolder.path + "/" + filename )
if (activeFile == null){
return;
@ -418,18 +459,24 @@ export class Compiler{
}
await app.vault.create( newFilepath, content );
new Notice(`${newFilepath} created`);
if (open){
if (open == true){
await app.workspace.openLinkText( newFilepath, '' );
}
},
open: (linktext:string) => app.workspace.openLinkText( linktext, '' )
open: (linktext:string) => app.workspace.openLinkText( linktext, '' ),
rebuild_view: async () => await (view.leaf as any).rebuildView(),
};
// return runner
return () => this.sandboxed(sourceCode, context);
return () => this.buildSandboxedRunnerFunction(sourceCode, context);
//return () => this.buildRunnerFunction(sourceCode, context);
}
private getAbsoluteFilepathFromActiveFile( path:string ) : string | undefined {
@ -516,7 +563,46 @@ export class Compiler{
// return normalizePath(result.replace(/\\/g, '/'));
// }
private sandboxed(code:string, context:IContext) : FunctionConstructor {
private buildRunnerFunction(code:string, context:IContext) : FunctionConstructor {
//const frame = document.createElement('iframe');
//document.body.appendChild(frame);
// eslint-disable-next-line @typescript-eslint/no-explicit-any
//const f = window.Function;
//document.body.removeChild(frame);
// const restrictedKeys = [
// ...Object.keys(frame.contentWindow??{}),
// 'self',
// 'document',
// 'console'
// ];
//const undefineds = restrictedKeys.map( v=>undefined );
const errFrag = new DocumentFragment();
errFrag.appendText('RUNTIME ERROR\n');
//errFrag.c
//errFrag.appendText('RUNTIME ERROR\n');
const additionals = {
'errFrag': errFrag
};
return window.Function(
//...restrictedKeys,
...Object.keys(additionals),
'$',
//"'use strict';" + code
code
)(
//...undefineds,
...Object.values(additionals),
context
);
}
private buildSandboxedRunnerFunction(code:string, context:IContext) : FunctionConstructor {
const frame = document.createElement('iframe');
document.body.appendChild(frame);
// eslint-disable-next-line @typescript-eslint/no-explicit-any
@ -532,15 +618,65 @@ export class Compiler{
];
const undefineds = restrictedKeys.map( v=>undefined );
const errFrag = new DocumentFragment();
errFrag.appendText('RUNTIME ERROR\n');
//errFrag.c
//errFrag.appendText('RUNTIME ERROR\n');
const additionals = {
'errFrag': errFrag
};
return f(
...restrictedKeys,
...Object.keys(additionals),
'$',
//"'use strict';" + code
`'use strict'; Promise.all((async () => { ${code} })());`
`
'use strict';
( async () => {
$.log('Run Start');
${code}
} )()
.catch( (e) => {
$.log_error(e);
errFrag.appendText(e);
$.notice(errFrag);
})
.finally( () => {
$.log('Run End');
})
;
`
)(
...undefineds,
...Object.values(additionals),
context
);
// return f(
// ...restrictedKeys,
// '$',
// //"'use strict';" + code
// `
// 'use strict';
// $.log('Start');
// Promise
// .resolve(
// ( async () => {
// ${code}
// } )()
// )
// .catch( (e) => {
// $.log(e);
// })
// ;
// $.log('End');
// `
// )(
// ...undefineds,
// context
// );
}

358
package-lock.json generated
View file

@ -18,23 +18,36 @@
"esbuild-copy-static-files": "^0.1.0",
"handlebars": "4.7.7",
"obsidian": "latest",
"obsidian-dataview": "^0.5.51",
"tslib": "2.4.0",
"typescript": "4.7.4"
}
},
"node_modules/@codemirror/language": {
"version": "6.3.1",
"resolved": "git+ssh://git@github.com/lishid/cm-language.git#6f84ca041393471ae1e2c82a0b6ec515a94e8dcf",
"dev": true,
"license": "MIT",
"dependencies": {
"@codemirror/state": "^6.0.0",
"@codemirror/view": "^6.0.0",
"@lezer/common": "^1.0.0",
"@lezer/highlight": "^1.0.0",
"@lezer/lr": "^1.0.0",
"style-mod": "^4.0.0"
}
},
"node_modules/@codemirror/state": {
"version": "6.1.4",
"resolved": "https://registry.npmjs.org/@codemirror/state/-/state-6.1.4.tgz",
"integrity": "sha512-g+3OJuRylV5qsXuuhrc6Cvs1NQluNioepYMM2fhnpYkNk7NgX+j0AFuevKSVKzTDmDyt9+Puju+zPdHNECzCNQ==",
"dev": true,
"peer": true
"dev": true
},
"node_modules/@codemirror/view": {
"version": "6.6.0",
"resolved": "https://registry.npmjs.org/@codemirror/view/-/view-6.6.0.tgz",
"integrity": "sha512-40VaFVZI3rkyjO5GHFAbNwaW+YgZexjKyx5gxLU2DvfuXAEZX0kW0apOXb0SBRLnKIQJ+U/n2nPfxgBVFHERrg==",
"dev": true,
"peer": true,
"dependencies": {
"@codemirror/state": "^6.1.4",
"style-mod": "^4.0.0",
@ -101,6 +114,30 @@
"dev": true,
"peer": true
},
"node_modules/@lezer/common": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/@lezer/common/-/common-1.0.2.tgz",
"integrity": "sha512-SVgiGtMnMnW3ActR8SXgsDhw7a0w0ChHSYAyAUxxrOiJ1OqYWEKk/xJd84tTSPo1mo6DXLObAJALNnd0Hrv7Ng==",
"dev": true
},
"node_modules/@lezer/highlight": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/@lezer/highlight/-/highlight-1.1.3.tgz",
"integrity": "sha512-3vLKLPThO4td43lYRBygmMY18JN3CPh9w+XS2j8WC30vR4yZeFG4z1iFe4jXE43NtGqe//zHW5q8ENLlHvz9gw==",
"dev": true,
"dependencies": {
"@lezer/common": "^1.0.0"
}
},
"node_modules/@lezer/lr": {
"version": "1.2.5",
"resolved": "https://registry.npmjs.org/@lezer/lr/-/lr-1.2.5.tgz",
"integrity": "sha512-f9319YG1A/3ysgUE3bqCHEd7g+3ZZ71MWlwEc42mpnLVYXgfJJgtu1XAyBB4Kz8FmqmnFe9caopDqKeMMMAU6g==",
"dev": true,
"dependencies": {
"@lezer/common": "^1.0.0"
}
},
"node_modules/@nodelib/fs.scandir": {
"version": "2.1.5",
"resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
@ -608,6 +645,12 @@
"node": ">=6.0.0"
}
},
"node_modules/emoji-regex": {
"version": "10.2.1",
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.2.1.tgz",
"integrity": "sha512-97g6QgOk8zlDRdgq1WxwgTMgEWGVAQvB5Fdpgc1MkNy56la5SKP9GsMXKDOdqwn90/41a8yPwIGk1Y6WVbeMQA==",
"dev": true
},
"node_modules/esbuild": {
"version": "0.14.47",
"resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.47.tgz",
@ -1444,6 +1487,12 @@
"node": ">= 4"
}
},
"node_modules/immediate": {
"version": "3.0.6",
"resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz",
"integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==",
"dev": true
},
"node_modules/import-fresh": {
"version": "3.3.0",
"resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
@ -1588,6 +1637,24 @@
"node": ">= 0.8.0"
}
},
"node_modules/lie": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/lie/-/lie-3.1.1.tgz",
"integrity": "sha512-RiNhHysUjhrDQntfYSfY4MU24coXXdEOgw9WGcKHNeEwffDYbF//u87M1EWaMGzuFoSbqW0C9C6lEEhDOAswfw==",
"dev": true,
"dependencies": {
"immediate": "~3.0.5"
}
},
"node_modules/localforage": {
"version": "1.10.0",
"resolved": "https://registry.npmjs.org/localforage/-/localforage-1.10.0.tgz",
"integrity": "sha512-14/H1aX7hzBBmmh7sGPd+AOMkkIrHM3Z1PAyGgZigA1H1p5O5ANnMyWzvpAETtG68/dC4pC0ncy3+PPGzXZHPg==",
"dev": true,
"dependencies": {
"lie": "3.1.1"
}
},
"node_modules/locate-path": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
@ -1623,6 +1690,15 @@
"node": ">=10"
}
},
"node_modules/luxon": {
"version": "2.5.0",
"resolved": "https://registry.npmjs.org/luxon/-/luxon-2.5.0.tgz",
"integrity": "sha512-IDkEPB80Rb6gCAU+FEib0t4FeJ4uVOuX1CQ9GsvU3O+JAGIgu0J7sf1OarXKaKDygTZIoJyU6YdZzTFRu+YR0A==",
"dev": true,
"engines": {
"node": ">=12"
}
},
"node_modules/merge2": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
@ -1709,6 +1785,74 @@
"@codemirror/view": "^6.0.0"
}
},
"node_modules/obsidian-calendar-ui": {
"version": "0.3.12",
"resolved": "https://registry.npmjs.org/obsidian-calendar-ui/-/obsidian-calendar-ui-0.3.12.tgz",
"integrity": "sha512-hdoRqCPnukfRgCARgArXaqMQZ+Iai0eY7f0ZsFHHfywpv4gKg3Tx5p47UsLvRO5DD+4knlbrL7Gel57MkfcLTw==",
"dev": true,
"dependencies": {
"obsidian-daily-notes-interface": "0.8.4",
"svelte": "3.35.0",
"tslib": "2.1.0"
}
},
"node_modules/obsidian-calendar-ui/node_modules/tslib": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz",
"integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==",
"dev": true
},
"node_modules/obsidian-daily-notes-interface": {
"version": "0.8.4",
"resolved": "https://registry.npmjs.org/obsidian-daily-notes-interface/-/obsidian-daily-notes-interface-0.8.4.tgz",
"integrity": "sha512-REKQtAuIOKDbvNH/th1C1gWmJWCP5tRn9T/mfZGZt4Zncgko7McXK0aSKFtEInipvgbZJ2nScivvyLdiWluSMw==",
"dev": true,
"dependencies": {
"obsidian": "github:obsidianmd/obsidian-api#master",
"tslib": "2.1.0"
},
"bin": {
"obsidian-daily-notes-interface": "dist/main.js"
}
},
"node_modules/obsidian-daily-notes-interface/node_modules/obsidian": {
"version": "1.1.7",
"resolved": "git+ssh://git@github.com/obsidianmd/obsidian-api.git#38dd22168d2925086371bfc59e36fd9121527a39",
"dev": true,
"license": "MIT",
"dependencies": {
"@types/codemirror": "0.0.108",
"moment": "2.29.4"
},
"peerDependencies": {
"@codemirror/state": "^6.0.0",
"@codemirror/view": "^6.0.0"
}
},
"node_modules/obsidian-daily-notes-interface/node_modules/tslib": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz",
"integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==",
"dev": true
},
"node_modules/obsidian-dataview": {
"version": "0.5.51",
"resolved": "https://registry.npmjs.org/obsidian-dataview/-/obsidian-dataview-0.5.51.tgz",
"integrity": "sha512-DXf+CdsWdBBVIIVJjhFE1V3voWjIp5I6ZT5KrU20fMMMbOw9DBRA6UvPFNaGVvXKfTgmrvxbR8Xx05mhnKTu0g==",
"dev": true,
"dependencies": {
"@codemirror/language": "git+https://github.com/lishid/cm-language.git",
"@codemirror/state": "^6.0.1",
"@codemirror/view": "^6.0.1",
"emoji-regex": "^10.0.0",
"localforage": "^1.10.0",
"luxon": "^2.4.0",
"obsidian-calendar-ui": "^0.3.12",
"papaparse": "^5.3.1",
"parsimmon": "^1.18.0",
"preact": "^10.6.5"
}
},
"node_modules/once": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
@ -1769,6 +1913,12 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/papaparse": {
"version": "5.3.2",
"resolved": "https://registry.npmjs.org/papaparse/-/papaparse-5.3.2.tgz",
"integrity": "sha512-6dNZu0Ki+gyV0eBsFKJhYr+MdQYAzFUGlBMNj3GNrmHxmz1lfRa24CjFObPXtjcetlOv5Ad299MhIK0znp3afw==",
"dev": true
},
"node_modules/parent-module": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
@ -1782,6 +1932,12 @@
"node": ">=6"
}
},
"node_modules/parsimmon": {
"version": "1.18.1",
"resolved": "https://registry.npmjs.org/parsimmon/-/parsimmon-1.18.1.tgz",
"integrity": "sha512-u7p959wLfGAhJpSDJVYXoyMCXWYwHia78HhRBWqk7AIbxdmlrfdp5wX0l3xv/iTSH5HvhN9K7o26hwwpgS5Nmw==",
"dev": true
},
"node_modules/path-exists": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
@ -1833,6 +1989,16 @@
"url": "https://github.com/sponsors/jonschlinkert"
}
},
"node_modules/preact": {
"version": "10.11.3",
"resolved": "https://registry.npmjs.org/preact/-/preact-10.11.3.tgz",
"integrity": "sha512-eY93IVpod/zG3uMF22Unl8h9KkrcKIRs2EGar8hwLZZDU1lkjph303V9HZBwufh2s736U6VXuhD109LYqPoffg==",
"dev": true,
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/preact"
}
},
"node_modules/prelude-ls": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
@ -2030,8 +2196,7 @@
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/style-mod/-/style-mod-4.0.0.tgz",
"integrity": "sha512-OPhtyEjyyN9x3nhPsu76f52yUGXiZcgvsrFVtvTkyGRQJ0XK+GPc6ov1z+lRpbeabka+MYEQxOYRnt5nF30aMw==",
"dev": true,
"peer": true
"dev": true
},
"node_modules/supports-color": {
"version": "7.2.0",
@ -2046,6 +2211,15 @@
"node": ">=8"
}
},
"node_modules/svelte": {
"version": "3.35.0",
"resolved": "https://registry.npmjs.org/svelte/-/svelte-3.35.0.tgz",
"integrity": "sha512-gknlZkR2sXheu/X+B7dDImwANVvK1R0QGQLd8CNIfxxGPeXBmePnxfzb6fWwTQRsYQG7lYkZXvpXJvxvpsoB7g==",
"dev": true,
"engines": {
"node": ">= 8"
}
},
"node_modules/text-table": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
@ -2158,8 +2332,7 @@
"version": "2.2.6",
"resolved": "https://registry.npmjs.org/w3c-keyname/-/w3c-keyname-2.2.6.tgz",
"integrity": "sha512-f+fciywl1SJEniZHD6H+kUO8gOnwIr7f4ijKA6+ZvJFjeGi1r4PDLl53Ayud9O/rk64RqgoQine0feoeOU0kXg==",
"dev": true,
"peer": true
"dev": true
},
"node_modules/which": {
"version": "2.0.2",
@ -2221,19 +2394,30 @@
}
},
"dependencies": {
"@codemirror/language": {
"version": "git+ssh://git@github.com/lishid/cm-language.git#6f84ca041393471ae1e2c82a0b6ec515a94e8dcf",
"dev": true,
"from": "@codemirror/language@git+https://github.com/lishid/cm-language.git",
"requires": {
"@codemirror/state": "^6.0.0",
"@codemirror/view": "^6.0.0",
"@lezer/common": "^1.0.0",
"@lezer/highlight": "^1.0.0",
"@lezer/lr": "^1.0.0",
"style-mod": "^4.0.0"
}
},
"@codemirror/state": {
"version": "6.1.4",
"resolved": "https://registry.npmjs.org/@codemirror/state/-/state-6.1.4.tgz",
"integrity": "sha512-g+3OJuRylV5qsXuuhrc6Cvs1NQluNioepYMM2fhnpYkNk7NgX+j0AFuevKSVKzTDmDyt9+Puju+zPdHNECzCNQ==",
"dev": true,
"peer": true
"dev": true
},
"@codemirror/view": {
"version": "6.6.0",
"resolved": "https://registry.npmjs.org/@codemirror/view/-/view-6.6.0.tgz",
"integrity": "sha512-40VaFVZI3rkyjO5GHFAbNwaW+YgZexjKyx5gxLU2DvfuXAEZX0kW0apOXb0SBRLnKIQJ+U/n2nPfxgBVFHERrg==",
"dev": true,
"peer": true,
"requires": {
"@codemirror/state": "^6.1.4",
"style-mod": "^4.0.0",
@ -2284,6 +2468,30 @@
"dev": true,
"peer": true
},
"@lezer/common": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/@lezer/common/-/common-1.0.2.tgz",
"integrity": "sha512-SVgiGtMnMnW3ActR8SXgsDhw7a0w0ChHSYAyAUxxrOiJ1OqYWEKk/xJd84tTSPo1mo6DXLObAJALNnd0Hrv7Ng==",
"dev": true
},
"@lezer/highlight": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/@lezer/highlight/-/highlight-1.1.3.tgz",
"integrity": "sha512-3vLKLPThO4td43lYRBygmMY18JN3CPh9w+XS2j8WC30vR4yZeFG4z1iFe4jXE43NtGqe//zHW5q8ENLlHvz9gw==",
"dev": true,
"requires": {
"@lezer/common": "^1.0.0"
}
},
"@lezer/lr": {
"version": "1.2.5",
"resolved": "https://registry.npmjs.org/@lezer/lr/-/lr-1.2.5.tgz",
"integrity": "sha512-f9319YG1A/3ysgUE3bqCHEd7g+3ZZ71MWlwEc42mpnLVYXgfJJgtu1XAyBB4Kz8FmqmnFe9caopDqKeMMMAU6g==",
"dev": true,
"requires": {
"@lezer/common": "^1.0.0"
}
},
"@nodelib/fs.scandir": {
"version": "2.1.5",
"resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
@ -2630,6 +2838,12 @@
"esutils": "^2.0.2"
}
},
"emoji-regex": {
"version": "10.2.1",
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.2.1.tgz",
"integrity": "sha512-97g6QgOk8zlDRdgq1WxwgTMgEWGVAQvB5Fdpgc1MkNy56la5SKP9GsMXKDOdqwn90/41a8yPwIGk1Y6WVbeMQA==",
"dev": true
},
"esbuild": {
"version": "0.14.47",
"resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.47.tgz",
@ -3170,6 +3384,12 @@
"integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==",
"dev": true
},
"immediate": {
"version": "3.0.6",
"resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz",
"integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==",
"dev": true
},
"import-fresh": {
"version": "3.3.0",
"resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
@ -3283,6 +3503,24 @@
"type-check": "~0.4.0"
}
},
"lie": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/lie/-/lie-3.1.1.tgz",
"integrity": "sha512-RiNhHysUjhrDQntfYSfY4MU24coXXdEOgw9WGcKHNeEwffDYbF//u87M1EWaMGzuFoSbqW0C9C6lEEhDOAswfw==",
"dev": true,
"requires": {
"immediate": "~3.0.5"
}
},
"localforage": {
"version": "1.10.0",
"resolved": "https://registry.npmjs.org/localforage/-/localforage-1.10.0.tgz",
"integrity": "sha512-14/H1aX7hzBBmmh7sGPd+AOMkkIrHM3Z1PAyGgZigA1H1p5O5ANnMyWzvpAETtG68/dC4pC0ncy3+PPGzXZHPg==",
"dev": true,
"requires": {
"lie": "3.1.1"
}
},
"locate-path": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
@ -3309,6 +3547,12 @@
"yallist": "^4.0.0"
}
},
"luxon": {
"version": "2.5.0",
"resolved": "https://registry.npmjs.org/luxon/-/luxon-2.5.0.tgz",
"integrity": "sha512-IDkEPB80Rb6gCAU+FEib0t4FeJ4uVOuX1CQ9GsvU3O+JAGIgu0J7sf1OarXKaKDygTZIoJyU6YdZzTFRu+YR0A==",
"dev": true
},
"merge2": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
@ -3376,6 +3620,70 @@
"moment": "2.29.4"
}
},
"obsidian-calendar-ui": {
"version": "0.3.12",
"resolved": "https://registry.npmjs.org/obsidian-calendar-ui/-/obsidian-calendar-ui-0.3.12.tgz",
"integrity": "sha512-hdoRqCPnukfRgCARgArXaqMQZ+Iai0eY7f0ZsFHHfywpv4gKg3Tx5p47UsLvRO5DD+4knlbrL7Gel57MkfcLTw==",
"dev": true,
"requires": {
"obsidian-daily-notes-interface": "0.8.4",
"svelte": "3.35.0",
"tslib": "2.1.0"
},
"dependencies": {
"tslib": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz",
"integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==",
"dev": true
}
}
},
"obsidian-daily-notes-interface": {
"version": "0.8.4",
"resolved": "https://registry.npmjs.org/obsidian-daily-notes-interface/-/obsidian-daily-notes-interface-0.8.4.tgz",
"integrity": "sha512-REKQtAuIOKDbvNH/th1C1gWmJWCP5tRn9T/mfZGZt4Zncgko7McXK0aSKFtEInipvgbZJ2nScivvyLdiWluSMw==",
"dev": true,
"requires": {
"obsidian": "github:obsidianmd/obsidian-api#master",
"tslib": "2.1.0"
},
"dependencies": {
"obsidian": {
"version": "git+ssh://git@github.com/obsidianmd/obsidian-api.git#38dd22168d2925086371bfc59e36fd9121527a39",
"dev": true,
"from": "obsidian@github:obsidianmd/obsidian-api#master",
"requires": {
"@types/codemirror": "0.0.108",
"moment": "2.29.4"
}
},
"tslib": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz",
"integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==",
"dev": true
}
}
},
"obsidian-dataview": {
"version": "0.5.51",
"resolved": "https://registry.npmjs.org/obsidian-dataview/-/obsidian-dataview-0.5.51.tgz",
"integrity": "sha512-DXf+CdsWdBBVIIVJjhFE1V3voWjIp5I6ZT5KrU20fMMMbOw9DBRA6UvPFNaGVvXKfTgmrvxbR8Xx05mhnKTu0g==",
"dev": true,
"requires": {
"@codemirror/language": "git+https://github.com/lishid/cm-language.git",
"@codemirror/state": "^6.0.1",
"@codemirror/view": "^6.0.1",
"emoji-regex": "^10.0.0",
"localforage": "^1.10.0",
"luxon": "^2.4.0",
"obsidian-calendar-ui": "^0.3.12",
"papaparse": "^5.3.1",
"parsimmon": "^1.18.0",
"preact": "^10.6.5"
}
},
"once": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
@ -3421,6 +3729,12 @@
"p-limit": "^3.0.2"
}
},
"papaparse": {
"version": "5.3.2",
"resolved": "https://registry.npmjs.org/papaparse/-/papaparse-5.3.2.tgz",
"integrity": "sha512-6dNZu0Ki+gyV0eBsFKJhYr+MdQYAzFUGlBMNj3GNrmHxmz1lfRa24CjFObPXtjcetlOv5Ad299MhIK0znp3afw==",
"dev": true
},
"parent-module": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
@ -3431,6 +3745,12 @@
"callsites": "^3.0.0"
}
},
"parsimmon": {
"version": "1.18.1",
"resolved": "https://registry.npmjs.org/parsimmon/-/parsimmon-1.18.1.tgz",
"integrity": "sha512-u7p959wLfGAhJpSDJVYXoyMCXWYwHia78HhRBWqk7AIbxdmlrfdp5wX0l3xv/iTSH5HvhN9K7o26hwwpgS5Nmw==",
"dev": true
},
"path-exists": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
@ -3464,6 +3784,12 @@
"integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
"dev": true
},
"preact": {
"version": "10.11.3",
"resolved": "https://registry.npmjs.org/preact/-/preact-10.11.3.tgz",
"integrity": "sha512-eY93IVpod/zG3uMF22Unl8h9KkrcKIRs2EGar8hwLZZDU1lkjph303V9HZBwufh2s736U6VXuhD109LYqPoffg==",
"dev": true
},
"prelude-ls": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
@ -3581,8 +3907,7 @@
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/style-mod/-/style-mod-4.0.0.tgz",
"integrity": "sha512-OPhtyEjyyN9x3nhPsu76f52yUGXiZcgvsrFVtvTkyGRQJ0XK+GPc6ov1z+lRpbeabka+MYEQxOYRnt5nF30aMw==",
"dev": true,
"peer": true
"dev": true
},
"supports-color": {
"version": "7.2.0",
@ -3594,6 +3919,12 @@
"has-flag": "^4.0.0"
}
},
"svelte": {
"version": "3.35.0",
"resolved": "https://registry.npmjs.org/svelte/-/svelte-3.35.0.tgz",
"integrity": "sha512-gknlZkR2sXheu/X+B7dDImwANVvK1R0QGQLd8CNIfxxGPeXBmePnxfzb6fWwTQRsYQG7lYkZXvpXJvxvpsoB7g==",
"dev": true
},
"text-table": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
@ -3677,8 +4008,7 @@
"version": "2.2.6",
"resolved": "https://registry.npmjs.org/w3c-keyname/-/w3c-keyname-2.2.6.tgz",
"integrity": "sha512-f+fciywl1SJEniZHD6H+kUO8gOnwIr7f4ijKA6+ZvJFjeGi1r4PDLl53Ayud9O/rk64RqgoQine0feoeOU0kXg==",
"dev": true,
"peer": true
"dev": true
},
"which": {
"version": "2.0.2",

View file

@ -21,6 +21,7 @@
"esbuild-copy-static-files": "^0.1.0",
"handlebars": "4.7.7",
"obsidian": "latest",
"obsidian-dataview": "^0.5.51",
"tslib": "2.4.0",
"typescript": "4.7.4"
}