@notatki/core 0.0.3 → 0.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/export/anki.d.ts +6 -0
- package/dist/export/anki.d.ts.map +1 -0
- package/dist/export/anki.js +7 -0
- package/dist/export/anki.js.map +1 -0
- package/dist/export/csv.d.ts +6 -0
- package/dist/export/csv.d.ts.map +1 -0
- package/dist/{export-notes.js → export/csv.js} +9 -7
- package/dist/export/csv.js.map +1 -0
- package/dist/export/json.d.ts +31 -0
- package/dist/export/json.d.ts.map +1 -0
- package/dist/export/json.js +41 -0
- package/dist/export/json.js.map +1 -0
- package/dist/index.d.ts +4 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -1
- package/dist/index.js.map +1 -1
- package/dist/insert-note-id.js.map +1 -1
- package/dist/model.d.ts +6 -6
- package/dist/model.d.ts.map +1 -1
- package/dist/model.js +5 -5
- package/dist/model.js.map +1 -1
- package/dist/nodes.d.ts +11 -0
- package/dist/nodes.d.ts.map +1 -1
- package/dist/nodes.js +47 -0
- package/dist/nodes.js.map +1 -1
- package/dist/note-parser.js +1 -1
- package/dist/note-parser.js.map +1 -1
- package/dist/note.d.ts +0 -2
- package/dist/note.d.ts.map +1 -1
- package/dist/note.js +0 -29
- package/dist/note.js.map +1 -1
- package/dist/output.js.map +1 -1
- package/dist/print-model-nodes.js +4 -4
- package/dist/print-model-nodes.js.map +1 -1
- package/dist/print-note-nodes.js.map +1 -1
- package/dist/reformat-model-nodes.js.map +1 -1
- package/dist/reformat-note-nodes.js.map +1 -1
- package/package.json +5 -4
- package/dist/export-notes.d.ts +0 -3
- package/dist/export-notes.d.ts.map +0 -1
- package/dist/export-notes.js.map +0 -1
- package/src/export-notes.ts +0 -31
- package/src/index.ts +0 -10
- package/src/insert-note-id.ts +0 -23
- package/src/model.ts +0 -155
- package/src/nodes.ts +0 -7
- package/src/note-parser.ts +0 -277
- package/src/note.ts +0 -189
- package/src/output.ts +0 -27
- package/src/print-model-nodes.ts +0 -39
- package/src/print-note-nodes.ts +0 -31
- package/src/reformat-model-nodes.ts +0 -5
- package/src/reformat-note-nodes.ts +0 -34
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"anki.d.ts","sourceRoot":"","sources":["../../src/export/anki.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,MAAM,MAAM,iBAAiB,GAAG;IAC9B,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB,CAAC;AAEF,wBAAsB,UAAU,CAC9B,GAAG,EAAE,QAAQ,EACb,EAAE,MAAqC,EAAE,GAAE,QAAQ,CAAC,iBAAiB,CAAM,GAC1E,OAAO,CAAC,MAAM,CAAC,CAKjB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"anki.js","sourceRoot":"","sources":["../../src/export/anki.ts"],"names":[],"mappings":"AAMA,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,GAAa,EACb,EAAE,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC,MAAM,KAAkC,EAAE;IAE3E,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC;IAC7B,CAAC;IACD,OAAO,MAAM,CAAC,EAAE,EAAE,CAAC;AACrB,CAAC","sourcesContent":["import type { NoteList } from \"../note.js\";\n\nexport type ExportAnkiOptions = {\n signal?: AbortSignal;\n};\n\nexport async function exportAnki(\n col: NoteList,\n { signal = new AbortController().signal }: Readonly<ExportAnkiOptions> = {},\n): Promise<Buffer> {\n if (signal.aborted) {\n throw new Error(\"Aborted\");\n }\n return Buffer.of();\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"csv.d.ts","sourceRoot":"","sources":["../../src/export/csv.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB,CAAC;AAEF,wBAAsB,SAAS,CAC7B,GAAG,EAAE,QAAQ,EACb,EAAE,MAAqC,EAAE,GAAE,QAAQ,CAAC,gBAAgB,CAAM,GACzE,OAAO,CAAC,MAAM,CAAC,CAiBjB"}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import { formatField } from "@notatki/format";
|
|
2
|
-
import {} from "
|
|
3
|
-
export function
|
|
2
|
+
import {} from "../note.js";
|
|
3
|
+
export async function exportCsv(col, { signal = new AbortController().signal } = {}) {
|
|
4
|
+
if (signal.aborted) {
|
|
5
|
+
throw new Error("Aborted");
|
|
6
|
+
}
|
|
4
7
|
const lines = [];
|
|
5
8
|
lines.push(`#separator:semicolon`);
|
|
6
9
|
lines.push(`#html:true`);
|
|
@@ -8,10 +11,9 @@ export function exportNotes(notes) {
|
|
|
8
11
|
lines.push(`#notetype column:2`);
|
|
9
12
|
lines.push(`#deck column:3`);
|
|
10
13
|
lines.push(`#tags column:4`);
|
|
11
|
-
for (const note of
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
.join(";"));
|
|
14
|
+
for (const note of col) {
|
|
15
|
+
const fields = [...note].map(({ value }) => formatField(value));
|
|
16
|
+
lines.push([note.id, note.type.name, note.deck, note.tags, ...fields].map(escape).join(";"));
|
|
15
17
|
}
|
|
16
18
|
lines.push("");
|
|
17
19
|
return lines.join("\n");
|
|
@@ -25,4 +27,4 @@ function escape(value) {
|
|
|
25
27
|
}
|
|
26
28
|
return value;
|
|
27
29
|
}
|
|
28
|
-
//# sourceMappingURL=
|
|
30
|
+
//# sourceMappingURL=csv.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"csv.js","sourceRoot":"","sources":["../../src/export/csv.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAiB,MAAM,YAAY,CAAC;AAM3C,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,GAAa,EACb,EAAE,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC,MAAM,KAAiC,EAAE;IAE1E,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC;IAC7B,CAAC;IACD,MAAM,KAAK,GAAG,EAAE,CAAC;IACjB,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;IACnC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACzB,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAC7B,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IACjC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAC7B,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAC7B,KAAK,MAAM,IAAI,IAAI,GAAG,EAAE,CAAC;QACvB,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;QAChE,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/F,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,SAAS,MAAM,CAAC,KAAoB;IAClC,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;QAClB,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACvE,OAAO,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC;IAC5C,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC","sourcesContent":["import { formatField } from \"@notatki/format\";\nimport { type NoteList } from \"../note.js\";\n\nexport type ExportCsvOptions = {\n signal?: AbortSignal;\n};\n\nexport async function exportCsv(\n col: NoteList,\n { signal = new AbortController().signal }: Readonly<ExportCsvOptions> = {},\n): Promise<string> {\n if (signal.aborted) {\n throw new Error(\"Aborted\");\n }\n const lines = [];\n lines.push(`#separator:semicolon`);\n lines.push(`#html:true`);\n lines.push(`#guid column:1`);\n lines.push(`#notetype column:2`);\n lines.push(`#deck column:3`);\n lines.push(`#tags column:4`);\n for (const note of col) {\n const fields = [...note].map(({ value }) => formatField(value));\n lines.push([note.id, note.type.name, note.deck, note.tags, ...fields].map(escape).join(\";\"));\n }\n lines.push(\"\");\n return lines.join(\"\\n\");\n}\n\nfunction escape(value: string | null): string {\n if (value == null) {\n return \"\";\n }\n if (value.includes(\";\") || value.includes(\"\\n\") || value.includes('\"')) {\n return `\"${value.replaceAll('\"', '\"\"')}\"`;\n }\n return value;\n}\n"]}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { NoteList } from "../note.js";
|
|
2
|
+
export type JCollection = {
|
|
3
|
+
models: JModel[];
|
|
4
|
+
notes: JNote[];
|
|
5
|
+
};
|
|
6
|
+
export type JModel = {
|
|
7
|
+
id: number;
|
|
8
|
+
name: string;
|
|
9
|
+
cloze: boolean;
|
|
10
|
+
fields: {
|
|
11
|
+
name: string;
|
|
12
|
+
}[];
|
|
13
|
+
cards: {
|
|
14
|
+
name: string;
|
|
15
|
+
front: string;
|
|
16
|
+
back: string;
|
|
17
|
+
}[];
|
|
18
|
+
styles: string;
|
|
19
|
+
};
|
|
20
|
+
export type JNote = {
|
|
21
|
+
guid: string;
|
|
22
|
+
type: string;
|
|
23
|
+
deck: string;
|
|
24
|
+
tags: string[];
|
|
25
|
+
fields: Record<string, string>;
|
|
26
|
+
};
|
|
27
|
+
export type ExportJsonOptions = {
|
|
28
|
+
signal?: AbortSignal;
|
|
29
|
+
};
|
|
30
|
+
export declare function exportJson(col: NoteList, { signal }?: Readonly<ExportJsonOptions>): Promise<string>;
|
|
31
|
+
//# sourceMappingURL=json.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json.d.ts","sourceRoot":"","sources":["../../src/export/json.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,EAAE,KAAK,EAAE,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,MAAM,GAAG;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;KACd,EAAE,CAAC;IACJ,KAAK,EAAE;QACL,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;KACd,EAAE,CAAC;IACJ,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,KAAK,GAAG;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB,CAAC;AAEF,wBAAsB,UAAU,CAC9B,GAAG,EAAE,QAAQ,EACb,EAAE,MAAqC,EAAE,GAAE,QAAQ,CAAC,iBAAiB,CAAM,GAC1E,OAAO,CAAC,MAAM,CAAC,CA8CjB"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { formatField } from "@notatki/format";
|
|
2
|
+
export async function exportJson(col, { signal = new AbortController().signal } = {}) {
|
|
3
|
+
if (signal.aborted) {
|
|
4
|
+
throw new Error("Aborted");
|
|
5
|
+
}
|
|
6
|
+
const models = [];
|
|
7
|
+
const notes = [];
|
|
8
|
+
for (const model of col.types) {
|
|
9
|
+
models.push({
|
|
10
|
+
id: model.id,
|
|
11
|
+
name: model.name,
|
|
12
|
+
cloze: model.cloze,
|
|
13
|
+
fields: [...model.fields].map(({ name, //
|
|
14
|
+
}) => ({
|
|
15
|
+
name,
|
|
16
|
+
})),
|
|
17
|
+
cards: [...model.cards].map(({ name, //
|
|
18
|
+
front, back, }) => ({
|
|
19
|
+
name,
|
|
20
|
+
front,
|
|
21
|
+
back,
|
|
22
|
+
})),
|
|
23
|
+
styles: model.styles,
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
for (const note of col) {
|
|
27
|
+
const fields = {};
|
|
28
|
+
for (const field of note) {
|
|
29
|
+
fields[field.name] = formatField(field.value);
|
|
30
|
+
}
|
|
31
|
+
notes.push({
|
|
32
|
+
guid: note.id,
|
|
33
|
+
type: note.type.name,
|
|
34
|
+
deck: note.deck,
|
|
35
|
+
tags: note.tags.split(/\s+/),
|
|
36
|
+
fields,
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
return JSON.stringify({ models, notes }, null, 2);
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=json.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json.js","sourceRoot":"","sources":["../../src/export/json.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAmC9C,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,GAAa,EACb,EAAE,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC,MAAM,KAAkC,EAAE;IAE3E,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC;IAC7B,CAAC;IACD,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,KAAK,GAAY,EAAE,CAAC;IAC1B,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;QAC9B,MAAM,CAAC,IAAI,CAAC;YACV,EAAE,EAAE,KAAK,CAAC,EAAE;YACZ,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,MAAM,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,CAC3B,CAAC,EACC,IAAI,EAAE,EAAE;cACT,EAAE,EAAE,CAAC,CAAC;gBACL,IAAI;aACL,CAAC,CACH;YACD,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,CACzB,CAAC,EACC,IAAI,EAAE,EAAE;YACR,KAAK,EACL,IAAI,GACL,EAAE,EAAE,CAAC,CAAC;gBACL,IAAI;gBACJ,KAAK;gBACL,IAAI;aACL,CAAC,CACH;YACD,MAAM,EAAE,KAAK,CAAC,MAAM;SACrB,CAAC,CAAC;IACL,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,GAAG,EAAE,CAAC;QACvB,MAAM,MAAM,GAA2B,EAAE,CAAC;QAC1C,KAAK,MAAM,KAAK,IAAI,IAAI,EAAE,CAAC;YACzB,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAChD,CAAC;QACD,KAAK,CAAC,IAAI,CAAC;YACT,IAAI,EAAE,IAAI,CAAC,EAAE;YACb,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI;YACpB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;YAC5B,MAAM;SACP,CAAC,CAAC;IACL,CAAC;IACD,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,KAAK,EAAwB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AAC1E,CAAC","sourcesContent":["import { formatField } from \"@notatki/format\";\nimport type { NoteList } from \"../note.js\";\n\nexport type JCollection = {\n models: JModel[];\n notes: JNote[];\n};\n\nexport type JModel = {\n id: number;\n name: string;\n cloze: boolean;\n fields: {\n name: string;\n }[];\n cards: {\n name: string;\n front: string;\n back: string;\n }[];\n styles: string;\n};\n\nexport type JNote = {\n guid: string;\n type: string;\n deck: string;\n tags: string[];\n fields: Record<string, string>;\n};\n\nexport type ExportJsonOptions = {\n signal?: AbortSignal;\n};\n\nexport async function exportJson(\n col: NoteList,\n { signal = new AbortController().signal }: Readonly<ExportJsonOptions> = {},\n): Promise<string> {\n if (signal.aborted) {\n throw new Error(\"Aborted\");\n }\n const models: JModel[] = [];\n const notes: JNote[] = [];\n for (const model of col.types) {\n models.push({\n id: model.id,\n name: model.name,\n cloze: model.cloze,\n fields: [...model.fields].map(\n ({\n name, //\n }) => ({\n name,\n }),\n ),\n cards: [...model.cards].map(\n ({\n name, //\n front,\n back,\n }) => ({\n name,\n front,\n back,\n }),\n ),\n styles: model.styles,\n });\n }\n for (const note of col) {\n const fields: Record<string, string> = {};\n for (const field of note) {\n fields[field.name] = formatField(field.value);\n }\n notes.push({\n guid: note.id,\n type: note.type.name,\n deck: note.deck,\n tags: note.tags.split(/\\s+/),\n fields,\n });\n }\n return JSON.stringify({ models, notes } satisfies JCollection, null, 2);\n}\n"]}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
|
-
export * from "./export
|
|
1
|
+
export * from "./export/anki.js";
|
|
2
|
+
export * from "./export/csv.js";
|
|
3
|
+
export * from "./export/json.js";
|
|
2
4
|
export * from "./insert-note-id.js";
|
|
3
5
|
export * from "./model.js";
|
|
6
|
+
export * from "./nodes.js";
|
|
4
7
|
export * from "./note.js";
|
|
5
8
|
export * from "./note-parser.js";
|
|
6
9
|
export * from "./output.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
|
-
export * from "./export
|
|
1
|
+
export * from "./export/anki.js";
|
|
2
|
+
export * from "./export/csv.js";
|
|
3
|
+
export * from "./export/json.js";
|
|
2
4
|
export * from "./insert-note-id.js";
|
|
3
5
|
export * from "./model.js";
|
|
6
|
+
export * from "./nodes.js";
|
|
4
7
|
export * from "./note.js";
|
|
5
8
|
export * from "./note-parser.js";
|
|
6
9
|
export * from "./output.js";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC","sourcesContent":["export * from \"./export/anki.js\";\nexport * from \"./export/csv.js\";\nexport * from \"./export/json.js\";\nexport * from \"./insert-note-id.js\";\nexport * from \"./model.js\";\nexport * from \"./nodes.js\";\nexport * from \"./note.js\";\nexport * from \"./note-parser.js\";\nexport * from \"./output.js\";\nexport * from \"./print-model-nodes.js\";\nexport * from \"./print-note-nodes.js\";\nexport * from \"./reformat-model-nodes.js\";\nexport * from \"./reformat-note-nodes.js\";\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"insert-note-id.js","sourceRoot":"","sources":["../src/insert-note-id.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAIjC,MAAM,CAAC,MAAM,WAAW,GAAgB,GAAG,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;AAElE,MAAM,UAAU,YAAY,CAAC,KAAiB,EAAE,MAAmB,WAAW;IAC5E,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACtE,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;YAClB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;QAC9F,CAAC;QACD,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YAChB,KAAK,CAAC,IAAI,GAAG,GAAG,EAAE,CAAC;YACnB,OAAO,GAAG,IAAI,CAAC;QACjB,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
1
|
+
{"version":3,"file":"insert-note-id.js","sourceRoot":"","sources":["../src/insert-note-id.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAIjC,MAAM,CAAC,MAAM,WAAW,GAAgB,GAAG,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;AAElE,MAAM,UAAU,YAAY,CAAC,KAAiB,EAAE,MAAmB,WAAW;IAC5E,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACtE,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;YAClB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;QAC9F,CAAC;QACD,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YAChB,KAAK,CAAC,IAAI,GAAG,GAAG,EAAE,CAAC;YACnB,OAAO,GAAG,IAAI,CAAC;QACjB,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC","sourcesContent":["import { type NoteNode } from \"@notatki/parser\";\nimport { loc } from \"./nodes.js\";\nimport { Note } from \"./note.js\";\n\nexport type IdGenerator = () => string;\n\nexport const idGenerator: IdGenerator = () => crypto.randomUUID();\n\nexport function insertNoteId(nodes: NoteNode[], gen: IdGenerator = idGenerator): boolean {\n let changed = false;\n for (const node of nodes) {\n let field = node.fields.find(({ name }) => Note.isIdField(name.text));\n if (field == null) {\n node.fields.unshift((field = { name: { text: \"id\", loc }, value: { text: \"\", loc }, loc }));\n }\n const { value } = field;\n if (!value.text) {\n value.text = gen();\n changed = true;\n }\n }\n return changed;\n}\n"]}
|
package/dist/model.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ export type Model = {
|
|
|
4
4
|
readonly cloze: boolean;
|
|
5
5
|
readonly fields: readonly ModelField[];
|
|
6
6
|
readonly cards: readonly ModelCard[];
|
|
7
|
-
readonly
|
|
7
|
+
readonly styles: string;
|
|
8
8
|
};
|
|
9
9
|
export type ModelField = {
|
|
10
10
|
readonly name: string;
|
|
@@ -33,7 +33,7 @@ export declare class ModelMap implements Iterable<Model> {
|
|
|
33
33
|
readonly front: "{{Front}}";
|
|
34
34
|
readonly back: "{{FrontSide}}<hr>{{Back}}";
|
|
35
35
|
}];
|
|
36
|
-
readonly
|
|
36
|
+
readonly styles: "";
|
|
37
37
|
};
|
|
38
38
|
static readonly basicAndReversedCard: {
|
|
39
39
|
readonly name: "Basic (and reversed card)";
|
|
@@ -55,7 +55,7 @@ export declare class ModelMap implements Iterable<Model> {
|
|
|
55
55
|
readonly front: "{{Back}}";
|
|
56
56
|
readonly back: "{{FrontSide}}<hr>{{Front}}";
|
|
57
57
|
}];
|
|
58
|
-
readonly
|
|
58
|
+
readonly styles: "";
|
|
59
59
|
};
|
|
60
60
|
static readonly basicOptionalReversedCard: {
|
|
61
61
|
readonly name: "Basic (optional reversed card)";
|
|
@@ -80,7 +80,7 @@ export declare class ModelMap implements Iterable<Model> {
|
|
|
80
80
|
readonly front: "{{#Add Reverse}}{{Back}}{{/Add Reverse}}";
|
|
81
81
|
readonly back: "{{FrontSide}}<hr>{{Front}}";
|
|
82
82
|
}];
|
|
83
|
-
readonly
|
|
83
|
+
readonly styles: "";
|
|
84
84
|
};
|
|
85
85
|
static readonly basicTypeInAnswer: {
|
|
86
86
|
readonly name: "Basic (type in the answer)";
|
|
@@ -98,7 +98,7 @@ export declare class ModelMap implements Iterable<Model> {
|
|
|
98
98
|
readonly front: "{{Front}}<br>{{type:Back}}";
|
|
99
99
|
readonly back: "{{Front}}<hr>{{Back}}";
|
|
100
100
|
}];
|
|
101
|
-
readonly
|
|
101
|
+
readonly styles: "";
|
|
102
102
|
};
|
|
103
103
|
static readonly cloze: {
|
|
104
104
|
readonly name: "Cloze";
|
|
@@ -116,7 +116,7 @@ export declare class ModelMap implements Iterable<Model> {
|
|
|
116
116
|
readonly front: "{{cloze:Text}}";
|
|
117
117
|
readonly back: "{{cloze:Text}}<br>{{Back Extra}}";
|
|
118
118
|
}];
|
|
119
|
-
readonly
|
|
119
|
+
readonly styles: "";
|
|
120
120
|
};
|
|
121
121
|
static readonly internal: readonly Model[];
|
|
122
122
|
constructor(initial?: Iterable<Model>);
|
package/dist/model.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,KAAK,GAAG;IAClB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,SAAS,UAAU,EAAE,CAAC;IACvC,QAAQ,CAAC,KAAK,EAAE,SAAS,SAAS,EAAE,CAAC;IACrC,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,KAAK,GAAG;IAClB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,SAAS,UAAU,EAAE,CAAC;IACvC,QAAQ,CAAC,KAAK,EAAE,SAAS,SAAS,EAAE,CAAC;IACrC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,qBAAa,QAAS,YAAW,QAAQ,CAAC,KAAK,CAAC;;IAC9C,MAAM,CAAC,QAAQ,CAAC,KAAK;;;;;;;;;;;;;;;;;MAgBM;IAE3B,MAAM,CAAC,QAAQ,CAAC,oBAAoB;;;;;;;;;;;;;;;;;;;;;MAqBT;IAE3B,MAAM,CAAC,QAAQ,CAAC,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;MAsBd;IAE3B,MAAM,CAAC,QAAQ,CAAC,iBAAiB;;;;;;;;;;;;;;;;;MAgBN;IAE3B,MAAM,CAAC,QAAQ,CAAC,KAAK;;;;;;;;;;;;;;;;;MAgBM;IAE3B,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,SAAS,KAAK,EAAE,CAMxC;gBAIU,OAAO,GAAE,QAAQ,CAAC,KAAK,CAAqB;IAMxD,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC;IAIpC,GAAG,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAKvB,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI1B,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,IAAI;CAGhC"}
|
package/dist/model.js
CHANGED
|
@@ -14,7 +14,7 @@ export class ModelMap {
|
|
|
14
14
|
back: "{{FrontSide}}<hr>{{Back}}",
|
|
15
15
|
},
|
|
16
16
|
],
|
|
17
|
-
|
|
17
|
+
styles: "",
|
|
18
18
|
};
|
|
19
19
|
static basicAndReversedCard = {
|
|
20
20
|
name: "Basic (and reversed card)",
|
|
@@ -36,7 +36,7 @@ export class ModelMap {
|
|
|
36
36
|
back: "{{FrontSide}}<hr>{{Front}}",
|
|
37
37
|
},
|
|
38
38
|
],
|
|
39
|
-
|
|
39
|
+
styles: "",
|
|
40
40
|
};
|
|
41
41
|
static basicOptionalReversedCard = {
|
|
42
42
|
name: "Basic (optional reversed card)",
|
|
@@ -59,7 +59,7 @@ export class ModelMap {
|
|
|
59
59
|
back: "{{FrontSide}}<hr>{{Front}}",
|
|
60
60
|
},
|
|
61
61
|
],
|
|
62
|
-
|
|
62
|
+
styles: "",
|
|
63
63
|
};
|
|
64
64
|
static basicTypeInAnswer = {
|
|
65
65
|
name: "Basic (type in the answer)",
|
|
@@ -76,7 +76,7 @@ export class ModelMap {
|
|
|
76
76
|
back: "{{Front}}<hr>{{Back}}",
|
|
77
77
|
},
|
|
78
78
|
],
|
|
79
|
-
|
|
79
|
+
styles: "",
|
|
80
80
|
};
|
|
81
81
|
static cloze = {
|
|
82
82
|
name: "Cloze",
|
|
@@ -93,7 +93,7 @@ export class ModelMap {
|
|
|
93
93
|
back: "{{cloze:Text}}<br>{{Back Extra}}",
|
|
94
94
|
},
|
|
95
95
|
],
|
|
96
|
-
|
|
96
|
+
styles: "",
|
|
97
97
|
};
|
|
98
98
|
static internal = [
|
|
99
99
|
ModelMap.basic,
|
package/dist/model.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model.js","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"AAoBA,MAAM,OAAO,QAAQ;IACnB,MAAM,CAAU,KAAK,GAAG;QACtB,IAAI,EAAE,OAAO;QACb,EAAE,EAAE,UAAU;QACd,KAAK,EAAE,KAAK;QACZ,MAAM,EAAE;YACN,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE;YACjC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;SACjC;QACD,KAAK,EAAE;YACL;gBACE,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,WAAW;gBAClB,IAAI,EAAE,2BAA2B;aAClC;SACF;QACD,
|
|
1
|
+
{"version":3,"file":"model.js","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"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","sourcesContent":["export type Model = {\n readonly name: string;\n readonly id: number;\n readonly cloze: boolean;\n readonly fields: readonly ModelField[];\n readonly cards: readonly ModelCard[];\n readonly styles: string;\n};\n\nexport type ModelField = {\n readonly name: string;\n readonly required: boolean;\n};\n\nexport type ModelCard = {\n readonly name: string;\n readonly front: string;\n readonly back: string;\n};\n\nexport class ModelMap implements Iterable<Model> {\n static readonly basic = {\n name: \"Basic\",\n id: 1607392319,\n cloze: false,\n fields: [\n { name: \"Front\", required: true },\n { name: \"Back\", required: true },\n ],\n cards: [\n {\n name: \"Card 1\",\n front: \"{{Front}}\",\n back: \"{{FrontSide}}<hr>{{Back}}\",\n },\n ],\n styles: \"\",\n } as const satisfies Model;\n\n static readonly basicAndReversedCard = {\n name: \"Basic (and reversed card)\",\n id: 1607392320,\n cloze: false,\n fields: [\n { name: \"Front\", required: true },\n { name: \"Back\", required: true },\n ],\n cards: [\n {\n name: \"Card 1\",\n front: \"{{Front}}\",\n back: \"{{FrontSide}}<hr>{{Back}}\",\n },\n {\n name: \"Card 2\",\n front: \"{{Back}}\",\n back: \"{{FrontSide}}<hr>{{Front}}\",\n },\n ],\n styles: \"\",\n } as const satisfies Model;\n\n static readonly basicOptionalReversedCard = {\n name: \"Basic (optional reversed card)\",\n id: 1607392321,\n cloze: false,\n fields: [\n { name: \"Front\", required: true },\n { name: \"Back\", required: true },\n { name: \"Add Reverse\", required: false },\n ],\n cards: [\n {\n name: \"Card 1\",\n front: \"{{Front}}\",\n back: \"{{FrontSide}}<hr>{{Back}}\",\n },\n {\n name: \"Card 2\",\n front: \"{{#Add Reverse}}{{Back}}{{/Add Reverse}}\",\n back: \"{{FrontSide}}<hr>{{Front}}\",\n },\n ],\n styles: \"\",\n } as const satisfies Model;\n\n static readonly basicTypeInAnswer = {\n name: \"Basic (type in the answer)\",\n id: 1607392322,\n cloze: false,\n fields: [\n { name: \"Front\", required: true },\n { name: \"Back\", required: true },\n ],\n cards: [\n {\n name: \"Card 1\",\n front: \"{{Front}}<br>{{type:Back}}\",\n back: \"{{Front}}<hr>{{Back}}\",\n },\n ],\n styles: \"\",\n } as const satisfies Model;\n\n static readonly cloze = {\n name: \"Cloze\",\n id: 1607392323,\n cloze: true,\n fields: [\n { name: \"Text\", required: true },\n { name: \"Back Extra\", required: false },\n ],\n cards: [\n {\n name: \"Cloze\",\n front: \"{{cloze:Text}}\",\n back: \"{{cloze:Text}}<br>{{Back Extra}}\",\n },\n ],\n styles: \"\",\n } as const satisfies Model;\n\n static readonly internal: readonly Model[] = [\n ModelMap.basic,\n ModelMap.basicAndReversedCard,\n ModelMap.basicOptionalReversedCard,\n ModelMap.basicTypeInAnswer,\n ModelMap.cloze,\n ];\n\n readonly #map = new Map<string, Model>();\n\n constructor(initial: Iterable<Model> = ModelMap.internal) {\n for (const model of initial) {\n this.add(model);\n }\n }\n\n [Symbol.iterator](): Iterator<Model> {\n return this.#map.values();\n }\n\n add(model: Model): this {\n this.#map.set(model.name.toLowerCase(), model);\n return this;\n }\n\n has(name: string): boolean {\n return this.#map.has(name.toLowerCase());\n }\n\n get(name: string): Model | null {\n return this.#map.get(name.toLowerCase()) ?? null;\n }\n}\n"]}
|
package/dist/nodes.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type NoteNode } from "@notatki/parser";
|
|
1
2
|
export declare const loc: {
|
|
2
3
|
readonly source: "<unknown>";
|
|
3
4
|
readonly start: {
|
|
@@ -11,4 +12,14 @@ export declare const loc: {
|
|
|
11
12
|
readonly column: 0;
|
|
12
13
|
};
|
|
13
14
|
};
|
|
15
|
+
export type NoteMaker = {
|
|
16
|
+
type(type: string): NoteMaker;
|
|
17
|
+
deck(deck: string): NoteMaker;
|
|
18
|
+
tags(tags: string): NoteMaker;
|
|
19
|
+
property(name: string, value: string): NoteMaker;
|
|
20
|
+
id(id: string): NoteMaker;
|
|
21
|
+
field(name: string, value: string): NoteMaker;
|
|
22
|
+
make(): NoteNode;
|
|
23
|
+
};
|
|
24
|
+
export declare function newNote(): NoteMaker;
|
|
14
25
|
//# sourceMappingURL=nodes.d.ts.map
|
package/dist/nodes.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nodes.d.ts","sourceRoot":"","sources":["../src/nodes.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"nodes.d.ts","sourceRoot":"","sources":["../src/nodes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsC,KAAK,QAAQ,EAAqB,MAAM,iBAAiB,CAAC;AAEvG,eAAO,MAAM,GAAG;;;;;;;;;;;;CAIkB,CAAC;AAEnC,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IACjD,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9C,IAAI,IAAI,QAAQ,CAAC;CAClB,CAAC;AAEF,wBAAgB,OAAO,IAAI,SAAS,CA8CnC"}
|
package/dist/nodes.js
CHANGED
|
@@ -4,4 +4,51 @@ export const loc = {
|
|
|
4
4
|
start: { offset: 0, line: 0, column: 0 },
|
|
5
5
|
end: { offset: 0, line: 0, column: 0 },
|
|
6
6
|
};
|
|
7
|
+
export function newNote() {
|
|
8
|
+
const properties = [];
|
|
9
|
+
const fields = [];
|
|
10
|
+
const maker = {
|
|
11
|
+
type(type) {
|
|
12
|
+
maker.property("type", type);
|
|
13
|
+
return maker;
|
|
14
|
+
},
|
|
15
|
+
deck(deck) {
|
|
16
|
+
maker.property("deck", deck);
|
|
17
|
+
return maker;
|
|
18
|
+
},
|
|
19
|
+
tags(tags) {
|
|
20
|
+
maker.property("tags", tags);
|
|
21
|
+
return maker;
|
|
22
|
+
},
|
|
23
|
+
property(name, value) {
|
|
24
|
+
properties.push({
|
|
25
|
+
name: { text: name, loc },
|
|
26
|
+
value: { text: value, loc },
|
|
27
|
+
loc,
|
|
28
|
+
});
|
|
29
|
+
return maker;
|
|
30
|
+
},
|
|
31
|
+
id(id) {
|
|
32
|
+
maker.field("id", id);
|
|
33
|
+
return maker;
|
|
34
|
+
},
|
|
35
|
+
field(name, value) {
|
|
36
|
+
fields.push({
|
|
37
|
+
name: { text: name, loc },
|
|
38
|
+
value: { text: value, loc },
|
|
39
|
+
loc,
|
|
40
|
+
});
|
|
41
|
+
return maker;
|
|
42
|
+
},
|
|
43
|
+
make() {
|
|
44
|
+
return {
|
|
45
|
+
properties: [...properties],
|
|
46
|
+
fields: [...fields],
|
|
47
|
+
end: { text: "~~~", loc },
|
|
48
|
+
loc,
|
|
49
|
+
};
|
|
50
|
+
},
|
|
51
|
+
};
|
|
52
|
+
return maker;
|
|
53
|
+
}
|
|
7
54
|
//# sourceMappingURL=nodes.js.map
|
package/dist/nodes.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nodes.js","sourceRoot":"","sources":["../src/nodes.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"nodes.js","sourceRoot":"","sources":["../src/nodes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwE,MAAM,iBAAiB,CAAC;AAEvG,MAAM,CAAC,MAAM,GAAG,GAAG;IACjB,MAAM,EAAE,WAAW;IACnB,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE;IACxC,GAAG,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE;CACN,CAAC;AAYnC,MAAM,UAAU,OAAO;IACrB,MAAM,UAAU,GAAmB,EAAE,CAAC;IACtC,MAAM,MAAM,GAAgB,EAAE,CAAC;IAC/B,MAAM,KAAK,GAAc;QACvB,IAAI,CAAC,IAAY;YACf,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YAC7B,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,CAAC,IAAY;YACf,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YAC7B,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,CAAC,IAAY;YACf,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YAC7B,OAAO,KAAK,CAAC;QACf,CAAC;QACD,QAAQ,CAAC,IAAY,EAAE,KAAa;YAClC,UAAU,CAAC,IAAI,CAAC;gBACd,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE;gBACzB,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE;gBAC3B,GAAG;aACJ,CAAC,CAAC;YACH,OAAO,KAAK,CAAC;QACf,CAAC;QACD,EAAE,CAAC,EAAU;YACX,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACtB,OAAO,KAAK,CAAC;QACf,CAAC;QACD,KAAK,CAAC,IAAY,EAAE,KAAa;YAC/B,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE;gBACzB,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE;gBAC3B,GAAG;aACJ,CAAC,CAAC;YACH,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI;YACF,OAAO;gBACL,UAAU,EAAE,CAAC,GAAG,UAAU,CAAC;gBAC3B,MAAM,EAAE,CAAC,GAAG,MAAM,CAAC;gBACnB,GAAG,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE;gBACzB,GAAG;aACJ,CAAC;QACJ,CAAC;KACF,CAAC;IACF,OAAO,KAAK,CAAC;AACf,CAAC","sourcesContent":["import { type FieldNode, type LocationRange, type NoteNode, type PropertyNode } from \"@notatki/parser\";\n\nexport const loc = {\n source: \"<unknown>\",\n start: { offset: 0, line: 0, column: 0 },\n end: { offset: 0, line: 0, column: 0 },\n} as const satisfies LocationRange;\n\nexport type NoteMaker = {\n type(type: string): NoteMaker;\n deck(deck: string): NoteMaker;\n tags(tags: string): NoteMaker;\n property(name: string, value: string): NoteMaker;\n id(id: string): NoteMaker;\n field(name: string, value: string): NoteMaker;\n make(): NoteNode;\n};\n\nexport function newNote(): NoteMaker {\n const properties: PropertyNode[] = [];\n const fields: FieldNode[] = [];\n const maker: NoteMaker = {\n type(type: string): NoteMaker {\n maker.property(\"type\", type);\n return maker;\n },\n deck(deck: string): NoteMaker {\n maker.property(\"deck\", deck);\n return maker;\n },\n tags(tags: string): NoteMaker {\n maker.property(\"tags\", tags);\n return maker;\n },\n property(name: string, value: string) {\n properties.push({\n name: { text: name, loc },\n value: { text: value, loc },\n loc,\n });\n return maker;\n },\n id(id: string) {\n maker.field(\"id\", id);\n return maker;\n },\n field(name: string, value: string) {\n fields.push({\n name: { text: name, loc },\n value: { text: value, loc },\n loc,\n });\n return maker;\n },\n make(): NoteNode {\n return {\n properties: [...properties],\n fields: [...fields],\n end: { text: \"~~~\", loc },\n loc,\n };\n },\n };\n return maker;\n}\n"]}
|
package/dist/note-parser.js
CHANGED
package/dist/note-parser.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"note-parser.js","sourceRoot":"","sources":["../src/note-parser.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"note-parser.js","sourceRoot":"","sources":["../src/note-parser.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n type LocationRange,\n type ModelNode,\n type NoteNode,\n parseModelList,\n parseNoteList,\n SyntaxError,\n type Token,\n} from \"@notatki/parser\";\nimport { type Model, type ModelCard, type ModelField, ModelMap } from \"./model.js\";\nimport { Note, NoteList } from \"./note.js\";\n\nconst unknown = {\n source: \"<unknown>\",\n start: { offset: 0, line: 0, column: 0 },\n end: { offset: 0, line: 0, column: 0 },\n} as const satisfies LocationRange;\n\nexport type NoteError = {\n message: string;\n location: LocationRange;\n};\n\nexport class ParseError extends Error {\n errors: readonly NoteError[];\n\n constructor(errors: Iterable<NoteError>) {\n super();\n this.name = \"ParseError\";\n this.message = \"Note parsing error\";\n this.errors = [...errors];\n }\n}\n\ntype ParseState = {\n type: Model;\n deck: string;\n tags: string;\n};\n\nexport class NoteParser {\n readonly #notes: NoteList;\n readonly #errors: NoteError[];\n\n constructor(notes = new NoteList()) {\n this.#notes = notes;\n this.#errors = [];\n }\n\n get notes(): NoteList {\n return this.#notes;\n }\n\n get errors(): readonly NoteError[] {\n return this.#errors;\n }\n\n checkErrors(): void | never {\n if (this.#errors.length > 0) {\n throw new ParseError(this.#errors);\n }\n }\n\n checkDuplicates() {\n const byId = new Map<string, Note[]>();\n const byTitle = new Map<string, Note[]>();\n for (const note of this.#notes) {\n const { id } = note;\n if (id) {\n let list = byId.get(id);\n if (list == null) {\n byId.set(id, (list = []));\n }\n list.push(note);\n }\n const { value } = note.first;\n const title = value.trim().replaceAll(/\\s+/g, \" \");\n if (title) {\n let list = byTitle.get(title);\n if (list == null) {\n byTitle.set(title, (list = []));\n }\n list.push(note);\n }\n }\n for (const [key, list] of byId) {\n if (list.length > 1) {\n for (const note of list) {\n const { node } = note.get(\"id\");\n this.#errors.push({ message: `Duplicate ID: \"${key}\"`, location: node?.value.loc ?? unknown });\n }\n }\n }\n for (const [key, list] of byTitle) {\n if (list.length > 1) {\n for (const note of list) {\n const { node } = note.first;\n this.#errors.push({ message: `Duplicate note: \"${key}\"`, location: node?.value.loc ?? unknown });\n }\n }\n }\n }\n\n parseModels(path: string, text: string): this {\n this.walkModelNodes(this.parseModelNodes(path, text));\n return this;\n }\n\n parseModelNodes(path: string, text: string): ModelNode[] {\n try {\n return parseModelList(text, path);\n } catch (err) {\n if (err instanceof SyntaxError) {\n const { message, location } = err;\n this.#errors.push({ message, location });\n } else {\n throw err;\n }\n return [];\n }\n }\n\n walkModelNodes(nodes: readonly ModelNode[]) {\n for (const node of nodes) {\n this.walkModelNode(node);\n }\n }\n\n walkModelNode(node: ModelNode) {\n if (this.#notes.types.has(node.name.text)) {\n this.#errors.push({ message: `Duplicate model: \"${node.name.text}\"`, location: node.name.loc });\n return;\n }\n\n const fields: ModelField[] = [];\n const seenFields = new SeenNames();\n for (const fieldNode of node.fields) {\n const { name, required } = fieldNode;\n if (seenFields.seen(name)) {\n this.#errors.push({ message: `Duplicate field: \"${name.text}\"`, location: name.loc });\n return;\n }\n fields.push({\n name: name.text,\n required,\n });\n }\n\n const cards: ModelCard[] = [];\n const seenCards = new SeenNames();\n for (const cardNode of node.cards) {\n const { name, front, back } = cardNode;\n if (seenCards.seen(name)) {\n this.#errors.push({ message: `Duplicate card: \"${name.text}\"`, location: name.loc });\n return;\n }\n cards.push({\n name: name.text,\n front: front?.text ?? \"\",\n back: back?.text ?? \"\",\n });\n }\n\n this.#notes.types.add({\n name: node.name.text,\n id: node.id.value,\n cloze: node.cloze != null,\n fields,\n cards,\n styles: node.styles?.text ?? \"\",\n });\n }\n\n parseNotes(path: string, text: string): this {\n this.walkNoteNodes(this.parseNoteNodes(path, text));\n return this;\n }\n\n parseNoteNodes(path: string, text: string): NoteNode[] {\n try {\n return parseNoteList(text, path);\n } catch (err) {\n if (err instanceof SyntaxError) {\n const { message, location } = err;\n this.#errors.push({ message, location });\n } else {\n throw err;\n }\n return [];\n }\n }\n\n walkNoteNodes(\n nodes: readonly NoteNode[],\n state: ParseState = {\n type: ModelMap.basic,\n deck: \"\",\n tags: \"\",\n },\n ) {\n for (const noteNode of nodes) {\n this.walkNoteNode(noteNode, state);\n }\n }\n\n walkNoteNode(noteNode: NoteNode, state: ParseState) {\n const seen = new SeenNames();\n\n // Set note properties.\n for (const { name, value } of noteNode.properties) {\n if (seen.seen(name)) {\n this.#errors.push({ message: `Duplicate property: \"${name.text}\"`, location: name.loc });\n return;\n }\n\n switch (name.text) {\n case \"type\": {\n const type = this.#notes.types.get(value.text);\n if (type == null) {\n this.#errors.push({ message: `Unknown note type: \"${value.text}\"`, location: value.loc });\n return;\n }\n state.type = type;\n break;\n }\n case \"deck\": {\n state.deck = value.text;\n break;\n }\n case \"tags\": {\n state.tags = value.text;\n break;\n }\n }\n }\n\n const note = new Note(state.type);\n note.deck = state.deck;\n note.tags = state.tags;\n note.node = noteNode;\n\n // Set note fields.\n for (const fieldNode of noteNode.fields) {\n const { name, value } = fieldNode;\n\n if (seen.seen(name)) {\n this.#errors.push({ message: `Duplicate field: \"${name.text}\"`, location: name.loc });\n return;\n }\n\n if (note.has(name.text)) {\n const field = note.get(name.text);\n field.value = value.text;\n field.node = fieldNode;\n } else {\n this.#errors.push({ message: `Unknown field: \"${name.text}\"`, location: name.loc });\n return;\n }\n }\n\n this.#notes.add(note);\n }\n}\n\nclass SeenNames {\n readonly #set = new Set<string>();\n\n seen(name: Token): boolean {\n const key = name.text.toLowerCase();\n if (this.#set.has(key)) {\n return true;\n } else {\n this.#set.add(key);\n return false;\n }\n }\n}\n"]}
|
package/dist/note.d.ts
CHANGED
|
@@ -25,7 +25,6 @@ export declare class Note implements Iterable<NoteField> {
|
|
|
25
25
|
get first(): NoteField;
|
|
26
26
|
get node(): NoteNode | null;
|
|
27
27
|
set node(value: NoteNode | null);
|
|
28
|
-
toNode(): NoteNode;
|
|
29
28
|
static isIdField(fieldName: string): boolean;
|
|
30
29
|
}
|
|
31
30
|
export declare class NoteField {
|
|
@@ -37,6 +36,5 @@ export declare class NoteField {
|
|
|
37
36
|
set value(value: string | null);
|
|
38
37
|
get node(): FieldNode | null;
|
|
39
38
|
set node(value: FieldNode | null);
|
|
40
|
-
toNode(): FieldNode;
|
|
41
39
|
}
|
|
42
40
|
//# sourceMappingURL=note.d.ts.map
|
package/dist/note.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"note.d.ts","sourceRoot":"","sources":["../src/note.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,QAAQ,
|
|
1
|
+
{"version":3,"file":"note.d.ts","sourceRoot":"","sources":["../src/note.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChE,OAAO,EAAE,KAAK,KAAK,EAAE,KAAK,UAAU,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEnE,qBAAa,QAAS,YAAW,QAAQ,CAAC,IAAI,CAAC;;gBAIjC,KAAK,WAAiB;IAKlC,IAAI,KAAK,IAAI,QAAQ,CAEpB;IAED,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC;IAInC,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,GAAG,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;CAGtB;AAED,qBAAa,IAAK,YAAW,QAAQ,CAAC,SAAS,CAAC;;gBAQlC,IAAI,EAAE,KAAK;IAOvB,IAAI,IAAI,IAAI,KAAK,CAEhB;IAED,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,EAE5B;IAED,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,EAE5B;IAED,IAAI,EAAE,IAAI,MAAM,CAEf;IAED,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,EAE1B;IAED,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,SAAS,CAAC;IAIxC,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAQ/B,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS;IAIjC,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAgBlD,IAAI,KAAK,IAAI,SAAS,CAMrB;IAED,IAAI,IAAI,IAAI,QAAQ,GAAG,IAAI,CAE1B;IAED,IAAI,IAAI,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI,EAE9B;IAED,MAAM,CAAC,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;CAG7C;AAED,qBAAa,SAAS;;gBAKR,IAAI,EAAE,UAAU;IAI5B,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,IAAI,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,EAE7B;IAED,IAAI,IAAI,IAAI,SAAS,GAAG,IAAI,CAE3B;IAED,IAAI,IAAI,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,EAE/B;CACF"}
|
package/dist/note.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import {} from "@notatki/parser";
|
|
2
2
|
import { ModelMap } from "./model.js";
|
|
3
|
-
import { loc } from "./nodes.js";
|
|
4
3
|
export class NoteList {
|
|
5
4
|
#types;
|
|
6
5
|
#notes;
|
|
@@ -95,27 +94,6 @@ export class Note {
|
|
|
95
94
|
set node(value) {
|
|
96
95
|
this.#node = value;
|
|
97
96
|
}
|
|
98
|
-
toNode() {
|
|
99
|
-
const properties = [];
|
|
100
|
-
properties.push({ name: { text: "type", loc }, value: { text: this.#type.name, loc }, loc });
|
|
101
|
-
properties.push({ name: { text: "deck", loc }, value: { text: this.#deck, loc }, loc });
|
|
102
|
-
properties.push({ name: { text: "tags", loc }, value: { text: this.#tags, loc }, loc });
|
|
103
|
-
const fields = [];
|
|
104
|
-
if (this.#id.value) {
|
|
105
|
-
fields.push(this.#id.toNode());
|
|
106
|
-
}
|
|
107
|
-
for (const field of this.#fields.values()) {
|
|
108
|
-
if (field.value) {
|
|
109
|
-
fields.push(field.toNode());
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
return {
|
|
113
|
-
properties,
|
|
114
|
-
fields,
|
|
115
|
-
end: { text: "~~~", loc },
|
|
116
|
-
loc,
|
|
117
|
-
};
|
|
118
|
-
}
|
|
119
97
|
static isIdField(fieldName) {
|
|
120
98
|
return fieldName.toLowerCase() === "id";
|
|
121
99
|
}
|
|
@@ -145,12 +123,5 @@ export class NoteField {
|
|
|
145
123
|
set node(value) {
|
|
146
124
|
this.#node = value;
|
|
147
125
|
}
|
|
148
|
-
toNode() {
|
|
149
|
-
return {
|
|
150
|
-
name: { text: this.#type.name.toLowerCase(), loc },
|
|
151
|
-
value: { text: this.#value, loc },
|
|
152
|
-
loc,
|
|
153
|
-
};
|
|
154
|
-
}
|
|
155
126
|
}
|
|
156
127
|
//# sourceMappingURL=note.js.map
|
package/dist/note.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"note.js","sourceRoot":"","sources":["../src/note.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"note.js","sourceRoot":"","sources":["../src/note.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiC,MAAM,iBAAiB,CAAC;AAChE,OAAO,EAA+B,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEnE,MAAM,OAAO,QAAQ;IACV,MAAM,CAAW;IACjB,MAAM,CAAS;IAExB,YAAY,KAAK,GAAG,IAAI,QAAQ,EAAE;QAChC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;IACnB,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,CAAC,MAAM,CAAC,QAAQ,CAAC;QACf,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;IACxC,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;IAC5B,CAAC;IAED,GAAG,CAAC,IAAU;QACZ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;CACF;AAED,MAAM,OAAO,IAAI;IACN,KAAK,CAAQ;IACtB,KAAK,GAAW,EAAE,CAAC;IACnB,KAAK,GAAW,EAAE,CAAC;IACV,GAAG,GAAG,IAAI,SAAS,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;IACrD,OAAO,GAAG,IAAI,GAAG,EAAqB,CAAC;IAChD,KAAK,GAAoB,IAAI,CAAC;IAE9B,YAAY,IAAW;QACrB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,IAAI,IAAI,CAAC,KAAoB;QAC3B,IAAI,CAAC,KAAK,GAAG,KAAK,IAAI,EAAE,CAAC;IAC3B,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,IAAI,IAAI,CAAC,KAAoB;QAC3B,IAAI,CAAC,KAAK,GAAG,KAAK,IAAI,EAAE,CAAC;IAC3B,CAAC;IAED,IAAI,EAAE;QACJ,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;IACxB,CAAC;IAED,IAAI,EAAE,CAAC,KAAoB;QACzB,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC;IACzB,CAAC;IAED,CAAC,MAAM,CAAC,QAAQ,CAAC;QACf,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;IAC/B,CAAC;IAED,GAAG,CAAC,SAAiB;QACnB,MAAM,GAAG,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC;QACpC,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YACjB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC;IAED,GAAG,CAAC,SAAiB;QACnB,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IACnC,CAAC;IAED,GAAG,CAAC,SAAiB,EAAE,KAAoB;QACzC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC;IAC1C,CAAC;IAED,SAAS,CAAC,SAAiB;QACzB,MAAM,GAAG,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC;QACpC,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YACjB,OAAO,IAAI,CAAC,GAAG,CAAC;QAClB,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACpC,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;YAClB,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,mBAAmB,SAAS,GAAG,CAAC,CAAC;IACnD,CAAC;IAED,IAAI,KAAK;QACP,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QACtC,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;YAClB,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC;IAC/B,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,IAAI,IAAI,CAAC,KAAsB;QAC7B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,MAAM,CAAC,SAAS,CAAC,SAAiB;QAChC,OAAO,SAAS,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC;IAC1C,CAAC;CACF;AAED,MAAM,OAAO,SAAS;IACX,KAAK,CAAa;IAC3B,MAAM,GAAW,EAAE,CAAC;IACpB,KAAK,GAAqB,IAAI,CAAC;IAE/B,YAAY,IAAgB;QAC1B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;IACzB,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC;IACtC,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,IAAI,KAAK,CAAC,KAAoB;QAC5B,IAAI,CAAC,MAAM,GAAG,KAAK,IAAI,EAAE,CAAC;IAC5B,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,IAAI,IAAI,CAAC,KAAuB;QAC9B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;CACF","sourcesContent":["import { type FieldNode, type NoteNode } from \"@notatki/parser\";\nimport { type Model, type ModelField, ModelMap } from \"./model.js\";\n\nexport class NoteList implements Iterable<Note> {\n readonly #types: ModelMap;\n readonly #notes: Note[];\n\n constructor(types = new ModelMap()) {\n this.#types = types;\n this.#notes = [];\n }\n\n get types(): ModelMap {\n return this.#types;\n }\n\n [Symbol.iterator](): Iterator<Note> {\n return this.#notes[Symbol.iterator]();\n }\n\n get length(): number {\n return this.#notes.length;\n }\n\n add(note: Note): void {\n this.#notes.push(note);\n }\n}\n\nexport class Note implements Iterable<NoteField> {\n readonly #type: Model;\n #deck: string = \"\";\n #tags: string = \"\";\n readonly #id = new NoteField({ name: \"ID\", required: false });\n readonly #fields = new Map<string, NoteField>();\n #node: NoteNode | null = null;\n\n constructor(type: Model) {\n this.#type = type;\n for (const field of type.fields) {\n this.#fields.set(field.name.toLowerCase(), new NoteField(field));\n }\n }\n\n get type(): Model {\n return this.#type;\n }\n\n get deck(): string {\n return this.#deck;\n }\n\n set deck(value: string | null) {\n this.#deck = value ?? \"\";\n }\n\n get tags(): string {\n return this.#tags;\n }\n\n set tags(value: string | null) {\n this.#tags = value ?? \"\";\n }\n\n get id(): string {\n return this.#id.value;\n }\n\n set id(value: string | null) {\n this.#id.value = value;\n }\n\n [Symbol.iterator](): Iterator<NoteField> {\n return this.#fields.values();\n }\n\n has(fieldName: string): boolean {\n const key = fieldName.toLowerCase();\n if (key === \"id\") {\n return true;\n }\n return this.#fields.has(key);\n }\n\n get(fieldName: string): NoteField {\n return this.#getField(fieldName);\n }\n\n set(fieldName: string, value: string | null): void {\n this.#getField(fieldName).value = value;\n }\n\n #getField(fieldName: string): NoteField {\n const key = fieldName.toLowerCase();\n if (key === \"id\") {\n return this.#id;\n }\n const field = this.#fields.get(key);\n if (field != null) {\n return field;\n }\n throw new Error(`Unknown field: \"${fieldName}\"`);\n }\n\n get first(): NoteField {\n const [first] = this.#fields.values();\n if (first != null) {\n return first;\n }\n throw new Error(\"No fields\");\n }\n\n get node(): NoteNode | null {\n return this.#node;\n }\n\n set node(value: NoteNode | null) {\n this.#node = value;\n }\n\n static isIdField(fieldName: string): boolean {\n return fieldName.toLowerCase() === \"id\";\n }\n}\n\nexport class NoteField {\n readonly #type: ModelField;\n #value: string = \"\";\n #node: FieldNode | null = null;\n\n constructor(type: ModelField) {\n this.#type = type;\n }\n\n get name(): string {\n return this.#type.name;\n }\n\n get required(): boolean {\n return this.#type.required ?? false;\n }\n\n get value(): string {\n return this.#value;\n }\n\n set value(value: string | null) {\n this.#value = value ?? \"\";\n }\n\n get node(): FieldNode | null {\n return this.#node;\n }\n\n set node(value: FieldNode | null) {\n this.#node = value;\n }\n}\n"]}
|
package/dist/output.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"output.js","sourceRoot":"","sources":["../src/output.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,MAAM;IACR,MAAM,GAAa,EAAE,CAAC;IAC/B,SAAS,GAAG,KAAK,CAAC;IAClB,KAAK,GAAkB,IAAI,CAAC;IAE5B,QAAQ;QACN,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QACpB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,IAAY;QAChB,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpB,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACnB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACrB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACzB,CAAC;YACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACvB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QACpB,CAAC;IACH,CAAC;IAED,QAAQ;QACN,OAAO,CAAC,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;IACxD,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"output.js","sourceRoot":"","sources":["../src/output.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,MAAM;IACR,MAAM,GAAa,EAAE,CAAC;IAC/B,SAAS,GAAG,KAAK,CAAC;IAClB,KAAK,GAAkB,IAAI,CAAC;IAE5B,QAAQ;QACN,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QACpB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,IAAY;QAChB,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpB,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACnB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACrB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACzB,CAAC;YACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACvB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QACpB,CAAC;IACH,CAAC;IAED,QAAQ;QACN,OAAO,CAAC,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;IACxD,CAAC;CACF","sourcesContent":["export class Output {\n readonly #lines: string[] = [];\n #separate = false;\n #text: string | null = null;\n\n separate(): void {\n if (this.#lines.length > 0) {\n this.#separate = true;\n this.#text = null;\n }\n }\n\n print(line: string): void {\n if (line.length > 0) {\n if (this.#separate) {\n this.#lines.push(\"\");\n this.#separate = false;\n }\n this.#lines.push(line);\n this.#text = null;\n }\n }\n\n toString(): string {\n return (this.#text ??= this.#lines.join(\"\\n\") + \"\\n\");\n }\n}\n"]}
|