@luzzle/core 0.0.36 → 0.0.38
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/README.md +9 -36
- package/dist/src/database/migrations/2026-02-11T23:03:45Z-clear-pieces-cache.d.ts +3 -0
- package/dist/src/database/migrations/2026-02-11T23:03:45Z-clear-pieces-cache.js +8 -0
- package/dist/src/database/migrations/2026-02-11T23:03:45Z-clear-pieces-cache.js.map +1 -0
- package/dist/src/lib/ajv.test.js +1 -1
- package/dist/src/lib/ajv.test.js.map +1 -1
- package/dist/src/llm/google.d.ts +1 -1
- package/dist/src/llm/google.js +2 -1
- package/dist/src/llm/google.js.map +1 -1
- package/dist/src/pieces/Piece.d.ts +2 -2
- package/dist/src/pieces/Piece.fixtures.d.ts +21 -27
- package/dist/src/pieces/Piece.fixtures.js +34 -21
- package/dist/src/pieces/Piece.fixtures.js.map +1 -1
- package/dist/src/pieces/Piece.js +45 -42
- package/dist/src/pieces/Piece.js.map +1 -1
- package/dist/src/pieces/Piece.test.js +487 -739
- package/dist/src/pieces/Piece.test.js.map +1 -1
- package/dist/src/pieces/item.js +29 -17
- package/dist/src/pieces/item.js.map +1 -1
- package/dist/src/pieces/item.test.js +137 -115
- package/dist/src/pieces/item.test.js.map +1 -1
- package/dist/src/pieces/manager.test.js +1 -1
- package/dist/src/pieces/manager.test.js.map +1 -1
- package/dist/src/pieces/utils/frontmatter.d.ts +42 -10
- package/dist/src/pieces/utils/frontmatter.js +112 -44
- package/dist/src/pieces/utils/frontmatter.js.map +1 -1
- package/dist/src/pieces/utils/frontmatter.path.d.ts +5 -0
- package/dist/src/pieces/utils/frontmatter.path.js +92 -0
- package/dist/src/pieces/utils/frontmatter.path.js.map +1 -0
- package/dist/src/pieces/utils/frontmatter.path.test.d.ts +1 -0
- package/dist/src/pieces/utils/frontmatter.path.test.js +172 -0
- package/dist/src/pieces/utils/frontmatter.path.test.js.map +1 -0
- package/dist/src/pieces/utils/frontmatter.test.js +200 -169
- package/dist/src/pieces/utils/frontmatter.test.js.map +1 -1
- package/dist/src/pieces/utils/piece.js +3 -2
- package/dist/src/pieces/utils/piece.js.map +1 -1
- package/dist/src/pieces/utils/piece.test.js +1 -1
- package/dist/src/pieces/utils/piece.test.js.map +1 -1
- package/dist/src/storage/fs.js +6 -1
- package/dist/src/storage/fs.js.map +1 -1
- package/dist/src/storage/fs.test.js +28 -38
- package/dist/src/storage/fs.test.js.map +1 -1
- package/dist/src/storage/webdav.js +6 -1
- package/dist/src/storage/webdav.js.map +1 -1
- package/dist/src/storage/webdav.test.js +7 -0
- package/dist/src/storage/webdav.test.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +2 -2
- package/dist/src/pieces/utils/piece.fixtures.d.ts +0 -19
- package/dist/src/pieces/utils/piece.fixtures.js +0 -39
- package/dist/src/pieces/utils/piece.fixtures.js.map +0 -1
package/README.md
CHANGED
|
@@ -1,41 +1,14 @@
|
|
|
1
|
-
# @luzzle/core
|
|
1
|
+
# @luzzle/core 🫀
|
|
2
2
|
|
|
3
|
-
The
|
|
3
|
+
The foundational implementation of the Luzzle specification. It solves the inherent challenges of managing large-scale digital records using plain text.
|
|
4
4
|
|
|
5
|
-
##
|
|
5
|
+
## Challenges Solved 🏗️
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
* **Consistency**: Enforces structure across thousands of records using JSON schemas.
|
|
8
|
+
* **Organization**: Standardizes where files and attachments (`.assets/`) live within an archive.
|
|
9
|
+
* **Scale**: Maps thousands of text files into a high-performance SQLite index, enabling complex queries and fast searching without slow filesystem traversal.
|
|
10
|
+
* **Portability**: Provides a unified Storage abstraction (Local, WebDAV) so your data remains accessible anywhere.
|
|
10
11
|
|
|
11
|
-
##
|
|
12
|
+
## How it works 🚂
|
|
12
13
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
This package strictly adheres to the Luzzle philosophy. While it provides a
|
|
16
|
-
powerful database client, the database is treated as a disposable cache. Your
|
|
17
|
-
Markdown files are the source of truth, forever and always.
|
|
18
|
-
|
|
19
|
-
## Usage
|
|
20
|
-
|
|
21
|
-
This library is primarily for other Luzzle tools, but feel free to use it for
|
|
22
|
-
your own scripts!
|
|
23
|
-
|
|
24
|
-
```bash
|
|
25
|
-
npm install @luzzle/core
|
|
26
|
-
```
|
|
27
|
-
|
|
28
|
-
### Example: Database Access
|
|
29
|
-
|
|
30
|
-
```typescript
|
|
31
|
-
import { getDatabaseClient } from '@luzzle/core/database/client';
|
|
32
|
-
|
|
33
|
-
const db = getDatabaseClient('/path/to/luzzle/root');
|
|
34
|
-
// Execute type-safe queries with Kysely 🚀
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
## Features
|
|
38
|
-
|
|
39
|
-
* **Schema Validation:** Enforces structure using Ajv. Strict but fair. ⚖️
|
|
40
|
-
* **File Synchronization:** Reads Markdown, updates SQLite.
|
|
41
|
-
* **Type-Safe Querying:** Because runtime errors are no fun.
|
|
14
|
+
Core treats your filesystem as the primary database. It parses Markdown, validates frontmatter, and maintains a derivative SQLite cache for application-layer performance.
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
2
|
+
export async function up(db) {
|
|
3
|
+
await db.deleteFrom('pieces_items').execute();
|
|
4
|
+
}
|
|
5
|
+
export async function down() {
|
|
6
|
+
// nothing to do
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=2026-02-11T23:03:45Z-clear-pieces-cache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"2026-02-11T23:03:45Z-clear-pieces-cache.js","sourceRoot":"","sources":["../../../../src/database/migrations/2026-02-11T23:03:45Z-clear-pieces-cache.ts"],"names":[],"mappings":"AAEA,8DAA8D;AAC9D,MAAM,CAAC,KAAK,UAAU,EAAE,CAAC,EAAe;IACvC,MAAM,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,OAAO,EAAE,CAAA;AAC9C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,IAAI;IACzB,gBAAgB;AACjB,CAAC"}
|
package/dist/src/lib/ajv.test.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { describe, expect, test, vi, afterEach } from 'vitest';
|
|
2
|
-
import { makeSchema } from '../pieces/
|
|
2
|
+
import { makeSchema } from '../pieces/Piece.fixtures.js';
|
|
3
3
|
import Ajv from 'ajv';
|
|
4
4
|
import ajv, { assetFormatValidator, dateFormatValidator, commaSeparatedFormatValidator, paragraphValidator } from './ajv.js';
|
|
5
5
|
vi.mock('ajv');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ajv.test.js","sourceRoot":"","sources":["../../../src/lib/ajv.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAgB,MAAM,QAAQ,CAAA;AAC5E,OAAO,EAAE,UAAU,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"ajv.test.js","sourceRoot":"","sources":["../../../src/lib/ajv.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAgB,MAAM,QAAQ,CAAA;AAC5E,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAA;AACxD,OAAO,GAAG,MAAM,KAAK,CAAA;AACrB,OAAO,GAAG,EAAE,EACX,oBAAoB,EACpB,mBAAmB,EACnB,6BAA6B,EAC7B,kBAAkB,EAClB,MAAM,UAAU,CAAA;AAEjB,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;AAEd,MAAM,KAAK,GAAG;IACb,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC;IACnB,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC;IACzC,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC;CAC7C,CAAA;AAED,MAAM,KAAK,GAAoC,EAAE,CAAA;AAEjD,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC/B,SAAS,CAAC,GAAG,EAAE;QACd,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACrC,IAAI,CAAC,SAAS,EAAE,CAAA;QACjB,CAAC,CAAC,CAAA;QAEF,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YAClC,KAAK,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAA;YACxB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAA;QAClB,CAAC,CAAC,CAAA;IACH,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE;QAChB,MAAM,MAAM,GAAG,UAAU,EAAE,CAAA;QAE3B,GAAG,CAAC,MAAM,CAAC,CAAA;QAEX,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAA;QAC1C,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAA;IACnD,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,+BAA+B,EAAE,GAAG,EAAE;QAC1C,MAAM,CAAC,6BAA6B,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC1D,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,qBAAqB,EAAE,GAAG,EAAE;QAChC,MAAM,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACpD,MAAM,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACtD,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,qBAAqB,EAAE,GAAG,EAAE;QAChC,MAAM,CAAC,oBAAoB,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACxD,MAAM,CAAC,oBAAoB,CAAC,yBAAyB,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACpE,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,yBAAyB,EAAE,GAAG,EAAE;QACpC,MAAM,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAClD,CAAC,CAAC,CAAA;AACH,CAAC,CAAC,CAAA"}
|
package/dist/src/llm/google.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { JSONSchemaType } from 'ajv';
|
|
2
2
|
import { type PieceFrontmatter } from '../pieces/index.js';
|
|
3
3
|
declare function pieceFrontMatterFromPrompt(apiKey: string, schema: JSONSchemaType<PieceFrontmatter>, prompt: string, files?: Array<string | Buffer>): Promise<{
|
|
4
|
-
[k: string]:
|
|
4
|
+
[k: string]: import("../index.js").PieceFrontMatterValue;
|
|
5
5
|
}>;
|
|
6
6
|
export { pieceFrontMatterFromPrompt };
|
package/dist/src/llm/google.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { fileTypeFromBuffer
|
|
1
|
+
import { fileTypeFromBuffer } from 'file-type';
|
|
2
|
+
import { fileTypeFromFile } from 'file-type/node';
|
|
2
3
|
import { createPartFromUri, GoogleGenAI, HarmCategory, HarmBlockThreshold, } from '@google/genai';
|
|
3
4
|
import { readFile } from 'fs/promises';
|
|
4
5
|
import path from 'path';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"google.js","sourceRoot":"","sources":["../../../src/llm/google.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"google.js","sourceRoot":"","sources":["../../../src/llm/google.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAA;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AACjD,OAAO,EAEN,iBAAiB,EACjB,WAAW,EACX,YAAY,EACZ,kBAAkB,GAElB,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AACtC,OAAO,IAAI,MAAM,MAAM,CAAA;AAIvB,MAAM,UAAU,GAAG,kBAAkB,CAAA;AAErC,MAAM,cAAc,GAAoB;IACvC;QACC,QAAQ,EAAE,YAAY,CAAC,+BAA+B;QACtD,SAAS,EAAE,kBAAkB,CAAC,UAAU;KACxC;IACD;QACC,QAAQ,EAAE,YAAY,CAAC,+BAA+B;QACtD,SAAS,EAAE,kBAAkB,CAAC,UAAU;KACxC;IACD;QACC,QAAQ,EAAE,YAAY,CAAC,6BAA6B;QACpD,SAAS,EAAE,kBAAkB,CAAC,UAAU;KACxC;CACD,CAAA;AAED,SAAS,SAAS,CAAC,MAAc;IAChC,OAAO,IAAI,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC,CAAA;AACnC,CAAC;AAED,KAAK,UAAU,mBAAmB,CAAC,IAAqB,EAAE,KAAkB;IAC3E,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;IACtC,MAAM,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,MAAM,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,gBAAgB,CAAC,IAAI,CAAC,CAAA;IACzF,MAAM,QAAQ,GAAG,QAAQ,EAAE,IAAI,CAAA;IAE/B,yBAAyB;IACzB,IAAI,CAAC,QAAQ,EAAE,CAAC;QACf,MAAM,WAAW,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;QAC9E,MAAM,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,kCAAkC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;QACpF,MAAM,IAAI,GAAG;YACZ,wBAAwB,QAAQ,KAAK;YACrC,WAAW;YACX,yBAAyB,QAAQ,KAAK;SACtC,CAAA;QAED,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACvB,CAAC;SAAM,CAAC;QACP,MAAM,YAAY,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC;YAC7C,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI;YACxC,MAAM,EAAE;gBACP,QAAQ;aACR;SACD,CAAC,CAAA;QAEF,qCAAqC;QACrC,IAAI,OAAO,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,YAAY,CAAC,IAAc,EAAE,CAAC,CAAA;QAE1E,OAAO,OAAO,CAAC,KAAK,KAAK,YAAY,EAAE,CAAC;YACvC,OAAO,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,YAAY,CAAC,IAAc,EAAE,CAAC,CAAA;YAEtE,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;gBAC7B,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;YAC1B,CAAC,CAAC,CAAA;QACH,CAAC;QAED,IAAI,YAAY,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YACrC,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;QAC3C,CAAC;QAED,IAAI,YAAY,CAAC,GAAG,IAAI,YAAY,CAAC,QAAQ,EAAE,CAAC;YAC/C,MAAM,WAAW,GAAG,iBAAiB,CAAC,YAAY,CAAC,GAAG,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAA;YAC9E,OAAO,WAAW,CAAA;QACnB,CAAC;IACF,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;AAC3C,CAAC;AAED,KAAK,UAAU,0BAA0B,CACxC,MAAc,EACd,MAAwC,EACxC,MAAc,EACd,KAA8B;IAE9B,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,CAAA;IAE/B,MAAM,OAAO,GAAqB,CAAC,MAAM,CAAC,CAAA;IAE1C,IAAI,KAAK,EAAE,CAAC;QACX,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YAC1B,MAAM,IAAI,GAAG,MAAM,mBAAmB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;YACnD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACnB,CAAC;IACF,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC;QACjD,KAAK,EAAE,UAAU;QACjB,QAAQ,EAAE,OAAO;QACjB,MAAM,EAAE;YACP,gBAAgB,EAAE,kBAAkB;YACpC,cAAc,EAAE,cAAc;YAC9B,kBAAkB,EAAE,MAAM;YAC1B,iBAAiB,EAAE;;;;mMAI6K;SAChM;KACD,CAAC,CAAA;IAEF,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,IAAI,IAAI,CAAA;IACpC,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAqB,CAAA;IAE5D,OAAO,MAAM,CAAC,WAAW,CACxB,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC,CACjF,CAAA;AACF,CAAC;AAED,OAAO,EAAE,0BAA0B,EAAE,CAAA"}
|
|
@@ -60,7 +60,7 @@ declare class Piece<F extends PieceFrontmatter> {
|
|
|
60
60
|
toMarkdown(data: LuzzleSelectable<'pieces_items'>): PieceMarkdown<F>;
|
|
61
61
|
setFields(markdown: PieceMarkdown<F>, fields: Record<string, unknown>): Promise<PieceMarkdown<F>>;
|
|
62
62
|
removeFields(markdown: PieceMarkdown<F>, fields: string[]): Promise<PieceMarkdown<Omit<F, keyof F>>>;
|
|
63
|
-
setField(markdown: PieceMarkdown<F>,
|
|
64
|
-
removeField(markdown: PieceMarkdown<F>,
|
|
63
|
+
setField(markdown: PieceMarkdown<F>, fieldPath: string, value: unknown): Promise<PieceMarkdown<F>>;
|
|
64
|
+
removeField(markdown: PieceMarkdown<F>, fieldPath: string, value?: number | string | boolean): Promise<PieceMarkdown<F>>;
|
|
65
65
|
}
|
|
66
66
|
export default Piece;
|
|
@@ -1,43 +1,37 @@
|
|
|
1
|
+
import { ValidateFunction } from 'ajv';
|
|
1
2
|
import { LuzzleSelectable } from '../database/tables/index.js';
|
|
2
3
|
import { PieceFrontmatter, PieceFrontmatterSchema } from './utils/frontmatter.js';
|
|
3
4
|
import { PieceMarkdown } from './utils/markdown.js';
|
|
4
|
-
import compile from '../lib/ajv.js';
|
|
5
5
|
import LuzzleStorage from '../storage/abstract.js';
|
|
6
6
|
import Piece from './Piece.js';
|
|
7
7
|
import { PieceManagerSelect } from '../database/tables/pieces_manager.schema.js';
|
|
8
|
-
type PieceValidator =
|
|
8
|
+
export type PieceValidator = ValidateFunction<PieceFrontmatter>;
|
|
9
9
|
export declare function makeValidator(): PieceValidator;
|
|
10
|
-
export
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
export declare function
|
|
25
|
-
export declare function
|
|
26
|
-
export declare function makeMarkdownSample<F extends PieceFrontmatter>(initial?: Partial<PieceMarkdown<F>>): PieceMarkdown<F>;
|
|
10
|
+
export type MockSchemaProperty = {
|
|
11
|
+
type?: string;
|
|
12
|
+
nullable?: boolean;
|
|
13
|
+
items?: MockSchemaProperty;
|
|
14
|
+
format?: string;
|
|
15
|
+
pattern?: string;
|
|
16
|
+
enum?: string[] | number[];
|
|
17
|
+
properties?: Record<string, MockSchemaProperty>;
|
|
18
|
+
required?: string[];
|
|
19
|
+
examples?: unknown[];
|
|
20
|
+
default?: unknown;
|
|
21
|
+
};
|
|
22
|
+
export declare function makeSchema(propertiesOrName?: string | Record<string, MockSchemaProperty>): PieceFrontmatterSchema<PieceFrontmatter>;
|
|
23
|
+
export declare function makeStorage(root?: string): LuzzleStorage;
|
|
24
|
+
export declare function makeFrontmatterSample(overrides?: Record<string, unknown>): PieceFrontmatter;
|
|
25
|
+
export declare function makeMarkdownSample<F extends PieceFrontmatter>(filePathOrOptions?: string | Partial<PieceMarkdown<F>>, piece?: string, note?: string, frontmatter?: F): PieceMarkdown<F>;
|
|
27
26
|
export declare function makePieceItemSelectable(overrides?: Partial<LuzzleSelectable<'pieces_items'>>): LuzzleSelectable<'pieces_items'>;
|
|
28
|
-
declare class
|
|
27
|
+
export declare class PieceMock extends Piece<PieceFrontmatter> {
|
|
29
28
|
constructor(name?: string, storage?: LuzzleStorage, schema?: PieceFrontmatterSchema<PieceFrontmatter>);
|
|
30
29
|
}
|
|
31
|
-
export declare function makePieceMock(): typeof
|
|
30
|
+
export declare function makePieceMock(): typeof PieceMock;
|
|
32
31
|
export declare function makeRegisteredPiece(overrides?: Partial<PieceManagerSelect>): {
|
|
33
32
|
id: string;
|
|
34
33
|
date_added: number;
|
|
35
34
|
date_updated: number | null;
|
|
36
35
|
name: string;
|
|
37
|
-
schema: PieceFrontmatterSchema<
|
|
38
|
-
title: string;
|
|
39
|
-
keywords?: string;
|
|
40
|
-
subtitle?: string;
|
|
41
|
-
}>;
|
|
36
|
+
schema: PieceFrontmatterSchema<PieceFrontmatter>;
|
|
42
37
|
};
|
|
43
|
-
export {};
|
|
@@ -2,9 +2,9 @@ import Piece from './Piece.js';
|
|
|
2
2
|
import { vi } from 'vitest';
|
|
3
3
|
const sample = {
|
|
4
4
|
note_markdown: 'sampleNote',
|
|
5
|
-
file_path: 'samplePath',
|
|
5
|
+
file_path: 'samplePath.md',
|
|
6
6
|
id: 'sampleId',
|
|
7
|
-
type: '
|
|
7
|
+
type: 'table',
|
|
8
8
|
date_added: new Date().getTime(),
|
|
9
9
|
date_updated: new Date().getTime(),
|
|
10
10
|
frontmatter_json: JSON.stringify({ title: 'sampleTitle' }),
|
|
@@ -13,25 +13,27 @@ export function makeValidator() {
|
|
|
13
13
|
const validate = () => true;
|
|
14
14
|
return validate;
|
|
15
15
|
}
|
|
16
|
-
export function makeSchema(
|
|
16
|
+
export function makeSchema(propertiesOrName) {
|
|
17
|
+
const name = typeof propertiesOrName === 'string' ? propertiesOrName : 'table';
|
|
18
|
+
const properties = typeof propertiesOrName === 'object' ? propertiesOrName : {};
|
|
17
19
|
return {
|
|
18
20
|
type: 'object',
|
|
19
21
|
title: name,
|
|
20
22
|
properties: {
|
|
21
23
|
title: { type: 'string', examples: ['title'] },
|
|
22
|
-
keywords: { type: 'string', nullable: true },
|
|
23
|
-
subtitle: { type: 'string', nullable: true },
|
|
24
|
+
keywords: { type: 'string', nullable: true, examples: ['keyword1'] },
|
|
25
|
+
subtitle: { type: 'string', nullable: true, examples: ['subtitle'] },
|
|
24
26
|
...properties,
|
|
25
27
|
},
|
|
26
28
|
required: ['title'],
|
|
27
29
|
additionalProperties: true,
|
|
28
30
|
};
|
|
29
31
|
}
|
|
30
|
-
export function makeStorage(root) {
|
|
32
|
+
export function makeStorage(root = 'root') {
|
|
31
33
|
return {
|
|
32
34
|
root,
|
|
33
35
|
type: 'fs',
|
|
34
|
-
parseArgPath: vi.fn(),
|
|
36
|
+
parseArgPath: vi.fn((p) => p),
|
|
35
37
|
readFile: vi.fn(),
|
|
36
38
|
writeFile: vi.fn(),
|
|
37
39
|
getFilesIn: vi.fn(),
|
|
@@ -43,16 +45,27 @@ export function makeStorage(root) {
|
|
|
43
45
|
makeDirectory: vi.fn(),
|
|
44
46
|
};
|
|
45
47
|
}
|
|
46
|
-
export function makeFrontmatterSample(
|
|
47
|
-
return
|
|
48
|
+
export function makeFrontmatterSample(overrides = {}) {
|
|
49
|
+
return {
|
|
50
|
+
title: 'sampleTitle',
|
|
51
|
+
...overrides,
|
|
52
|
+
};
|
|
48
53
|
}
|
|
49
|
-
export function makeMarkdownSample(
|
|
54
|
+
export function makeMarkdownSample(filePathOrOptions = 'samplePath.md', piece = 'table', note = 'sampleNote', frontmatter) {
|
|
55
|
+
if (typeof filePathOrOptions === 'object') {
|
|
56
|
+
return {
|
|
57
|
+
filePath: 'samplePath.md',
|
|
58
|
+
piece: 'table',
|
|
59
|
+
note: 'sampleNote',
|
|
60
|
+
frontmatter: makeFrontmatterSample(),
|
|
61
|
+
...filePathOrOptions,
|
|
62
|
+
};
|
|
63
|
+
}
|
|
50
64
|
return {
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
frontmatter: makeFrontmatterSample(),
|
|
55
|
-
...initial,
|
|
65
|
+
filePath: filePathOrOptions,
|
|
66
|
+
piece,
|
|
67
|
+
note,
|
|
68
|
+
frontmatter: (frontmatter || makeFrontmatterSample()),
|
|
56
69
|
};
|
|
57
70
|
}
|
|
58
71
|
export function makePieceItemSelectable(overrides) {
|
|
@@ -61,22 +74,22 @@ export function makePieceItemSelectable(overrides) {
|
|
|
61
74
|
...overrides,
|
|
62
75
|
};
|
|
63
76
|
}
|
|
64
|
-
class
|
|
65
|
-
constructor(name = 'table', storage = makeStorage(
|
|
77
|
+
export class PieceMock extends Piece {
|
|
78
|
+
constructor(name = 'table', storage = makeStorage(), schema = makeSchema(name)) {
|
|
66
79
|
super(name, storage, schema);
|
|
67
80
|
}
|
|
68
81
|
}
|
|
69
82
|
export function makePieceMock() {
|
|
70
|
-
return
|
|
83
|
+
return PieceMock;
|
|
71
84
|
}
|
|
72
85
|
export function makeRegisteredPiece(overrides) {
|
|
73
86
|
const { schema, ...rest } = overrides || {};
|
|
74
87
|
return {
|
|
75
|
-
id: `
|
|
88
|
+
id: `id-${Math.random()}`,
|
|
76
89
|
date_added: new Date().getTime(),
|
|
77
90
|
date_updated: null,
|
|
78
|
-
name: '
|
|
79
|
-
schema: makeSchema(schema
|
|
91
|
+
name: 'table',
|
|
92
|
+
schema: makeSchema(typeof schema === 'string' ? schema : 'table'),
|
|
80
93
|
...rest,
|
|
81
94
|
};
|
|
82
95
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Piece.fixtures.js","sourceRoot":"","sources":["../../../src/pieces/Piece.fixtures.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,MAAM,YAAY,CAAA;AAC9B,OAAO,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;
|
|
1
|
+
{"version":3,"file":"Piece.fixtures.js","sourceRoot":"","sources":["../../../src/pieces/Piece.fixtures.ts"],"names":[],"mappings":"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"}
|
package/dist/src/pieces/Piece.js
CHANGED
|
@@ -4,6 +4,7 @@ import path from 'path';
|
|
|
4
4
|
import slugify from '@sindresorhus/slugify';
|
|
5
5
|
import { Readable } from 'stream';
|
|
6
6
|
import { databaseValueToPieceFrontmatterValue, getPieceFrontmatterSchemaFields, initializePieceFrontMatter, } from './utils/frontmatter.js';
|
|
7
|
+
import * as paths from './utils/frontmatter.path.js';
|
|
7
8
|
import { makePieceMarkdown, makePieceMarkdownString } from './utils/markdown.js';
|
|
8
9
|
import { calculateHashFromFile, makePieceAttachment, makePieceValue } from './utils/piece.js';
|
|
9
10
|
import compile from '../lib/ajv.js';
|
|
@@ -119,9 +120,9 @@ class Piece {
|
|
|
119
120
|
async sync(db, files, options) {
|
|
120
121
|
const stream = Readable.from(files);
|
|
121
122
|
return stream.map(async (file) => {
|
|
122
|
-
const markdown = await this.get(file);
|
|
123
|
-
const dbPiece = await selectItem(db, markdown.filePath);
|
|
124
123
|
try {
|
|
124
|
+
const markdown = await this.get(file);
|
|
125
|
+
const dbPiece = await selectItem(db, markdown.filePath);
|
|
125
126
|
if (dbPiece) {
|
|
126
127
|
const readStream = this._storage.createReadStream(markdown.filePath);
|
|
127
128
|
const newHash = await calculateHashFromFile(readStream);
|
|
@@ -173,10 +174,10 @@ class Piece {
|
|
|
173
174
|
const frontmatter = JSON.parse(data.frontmatter_json);
|
|
174
175
|
const frontmatterJson = {};
|
|
175
176
|
const dataKeys = Object.keys(frontmatter);
|
|
176
|
-
const fields = getPieceFrontmatterSchemaFields(this._schema).filter((f) => dataKeys.includes(f.name));
|
|
177
|
+
const fields = getPieceFrontmatterSchemaFields(this._schema).filter((f) => !!f.name && dataKeys.includes(f.name));
|
|
177
178
|
fields.forEach((field) => {
|
|
178
179
|
const name = field.name;
|
|
179
|
-
const value = frontmatter[
|
|
180
|
+
const value = frontmatter[name];
|
|
180
181
|
frontmatterJson[name] = databaseValueToPieceFrontmatterValue(value, field);
|
|
181
182
|
});
|
|
182
183
|
return makePieceMarkdown(data.file_path, data.type, data.note_markdown, frontmatterJson);
|
|
@@ -191,65 +192,67 @@ class Piece {
|
|
|
191
192
|
async removeFields(markdown, fields) {
|
|
192
193
|
let updatedMarkdown = markdown;
|
|
193
194
|
for (const field of fields) {
|
|
194
|
-
updatedMarkdown = await this.removeField(
|
|
195
|
+
updatedMarkdown = (await this.removeField(updatedMarkdown, field));
|
|
195
196
|
}
|
|
196
197
|
return updatedMarkdown;
|
|
197
198
|
}
|
|
198
|
-
async setField(markdown,
|
|
199
|
-
const pieceField = this.fields
|
|
199
|
+
async setField(markdown, fieldPath, value) {
|
|
200
|
+
const pieceField = paths.findField(this.fields, fieldPath);
|
|
200
201
|
if (!pieceField) {
|
|
201
|
-
throw new Error(`${
|
|
202
|
+
throw new Error(`${fieldPath} is not a field in ${this._pieceName} ${markdown.filePath}`);
|
|
202
203
|
}
|
|
203
204
|
const isArray = pieceField.type === 'array';
|
|
205
|
+
const itemField = isArray
|
|
206
|
+
? { ...pieceField.items, name: pieceField.name }
|
|
207
|
+
: pieceField;
|
|
204
208
|
const values = Array.isArray(value) ? value : [value];
|
|
205
|
-
const
|
|
209
|
+
const updatedFrontmatter = { ...markdown.frontmatter };
|
|
206
210
|
try {
|
|
211
|
+
// Process each value individually (e.g. for bulk asset uploads)
|
|
207
212
|
for (const one of values) {
|
|
208
|
-
const pieceValue = await makePieceValue(
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
set.push(asset);
|
|
214
|
-
}
|
|
215
|
-
else {
|
|
216
|
-
set.push(pieceValue);
|
|
217
|
-
}
|
|
213
|
+
const pieceValue = await makePieceValue(itemField, one);
|
|
214
|
+
const val = pieceValue instanceof Readable
|
|
215
|
+
? await makePieceAttachment(markdown.filePath, itemField, pieceValue, this._storage)
|
|
216
|
+
: pieceValue;
|
|
217
|
+
paths.set(updatedFrontmatter, fieldPath, val);
|
|
218
218
|
}
|
|
219
219
|
}
|
|
220
220
|
catch (e) {
|
|
221
221
|
const error = e;
|
|
222
|
-
console.error(`could not set field ${
|
|
223
|
-
return markdown;
|
|
222
|
+
console.error(`could not set field ${fieldPath}: ${error.message}`);
|
|
223
|
+
return markdown;
|
|
224
224
|
}
|
|
225
|
-
return makePieceMarkdown(markdown.filePath, markdown.piece, markdown.note,
|
|
226
|
-
...markdown.frontmatter,
|
|
227
|
-
[field]: isArray ? set : set.pop(),
|
|
228
|
-
});
|
|
225
|
+
return makePieceMarkdown(markdown.filePath, markdown.piece, markdown.note, updatedFrontmatter);
|
|
229
226
|
}
|
|
230
|
-
async removeField(markdown,
|
|
231
|
-
const pieceField = this.fields
|
|
232
|
-
const { [field]: fieldValue, ...frontmatter } = markdown.frontmatter;
|
|
227
|
+
async removeField(markdown, fieldPath, value) {
|
|
228
|
+
const pieceField = paths.findField(this.fields, fieldPath);
|
|
233
229
|
if (!pieceField) {
|
|
234
|
-
throw new Error(`${
|
|
230
|
+
throw new Error(`${fieldPath} is not a field in ${this._pieceName} ${markdown.filePath}`);
|
|
235
231
|
}
|
|
236
232
|
if (pieceField.nullable !== true) {
|
|
237
|
-
throw new Error(`${
|
|
238
|
-
}
|
|
239
|
-
if (value === undefined || fieldValue === undefined) {
|
|
240
|
-
return makePieceMarkdown(markdown.filePath, markdown.piece, markdown.note, frontmatter);
|
|
233
|
+
throw new Error(`${fieldPath} is a required field in ${this._pieceName} ${markdown.filePath}`);
|
|
241
234
|
}
|
|
242
|
-
const
|
|
243
|
-
if (
|
|
244
|
-
|
|
245
|
-
...frontmatter,
|
|
246
|
-
[field]: fieldValue.filter((v) => v !== pieceValue),
|
|
247
|
-
});
|
|
235
|
+
const updatedFrontmatter = { ...markdown.frontmatter };
|
|
236
|
+
if (value === undefined) {
|
|
237
|
+
paths.unset(updatedFrontmatter, fieldPath);
|
|
248
238
|
}
|
|
249
|
-
else
|
|
250
|
-
|
|
239
|
+
else {
|
|
240
|
+
const pieceValue = await makePieceValue(pieceField, value);
|
|
241
|
+
const current = paths.get(updatedFrontmatter, fieldPath);
|
|
242
|
+
if (Array.isArray(current) && !(pieceValue instanceof Readable)) {
|
|
243
|
+
const index = current.indexOf(pieceValue);
|
|
244
|
+
if (index !== -1) {
|
|
245
|
+
paths.unset(updatedFrontmatter, `${fieldPath}.${index}`);
|
|
246
|
+
}
|
|
247
|
+
else {
|
|
248
|
+
return markdown;
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
else if (current === pieceValue) {
|
|
252
|
+
paths.unset(updatedFrontmatter, fieldPath);
|
|
253
|
+
}
|
|
251
254
|
}
|
|
252
|
-
return markdown;
|
|
255
|
+
return makePieceMarkdown(markdown.filePath, markdown.piece, markdown.note, updatedFrontmatter);
|
|
253
256
|
}
|
|
254
257
|
}
|
|
255
258
|
export default Piece;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Piece.js","sourceRoot":"","sources":["../../../src/pieces/Piece.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Piece.js","sourceRoot":"","sources":["../../../src/pieces/Piece.ts"],"names":[],"mappings":"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"}
|