@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.
Files changed (51) hide show
  1. package/README.md +9 -36
  2. package/dist/src/database/migrations/2026-02-11T23:03:45Z-clear-pieces-cache.d.ts +3 -0
  3. package/dist/src/database/migrations/2026-02-11T23:03:45Z-clear-pieces-cache.js +8 -0
  4. package/dist/src/database/migrations/2026-02-11T23:03:45Z-clear-pieces-cache.js.map +1 -0
  5. package/dist/src/lib/ajv.test.js +1 -1
  6. package/dist/src/lib/ajv.test.js.map +1 -1
  7. package/dist/src/llm/google.d.ts +1 -1
  8. package/dist/src/llm/google.js +2 -1
  9. package/dist/src/llm/google.js.map +1 -1
  10. package/dist/src/pieces/Piece.d.ts +2 -2
  11. package/dist/src/pieces/Piece.fixtures.d.ts +21 -27
  12. package/dist/src/pieces/Piece.fixtures.js +34 -21
  13. package/dist/src/pieces/Piece.fixtures.js.map +1 -1
  14. package/dist/src/pieces/Piece.js +45 -42
  15. package/dist/src/pieces/Piece.js.map +1 -1
  16. package/dist/src/pieces/Piece.test.js +487 -739
  17. package/dist/src/pieces/Piece.test.js.map +1 -1
  18. package/dist/src/pieces/item.js +29 -17
  19. package/dist/src/pieces/item.js.map +1 -1
  20. package/dist/src/pieces/item.test.js +137 -115
  21. package/dist/src/pieces/item.test.js.map +1 -1
  22. package/dist/src/pieces/manager.test.js +1 -1
  23. package/dist/src/pieces/manager.test.js.map +1 -1
  24. package/dist/src/pieces/utils/frontmatter.d.ts +42 -10
  25. package/dist/src/pieces/utils/frontmatter.js +112 -44
  26. package/dist/src/pieces/utils/frontmatter.js.map +1 -1
  27. package/dist/src/pieces/utils/frontmatter.path.d.ts +5 -0
  28. package/dist/src/pieces/utils/frontmatter.path.js +92 -0
  29. package/dist/src/pieces/utils/frontmatter.path.js.map +1 -0
  30. package/dist/src/pieces/utils/frontmatter.path.test.d.ts +1 -0
  31. package/dist/src/pieces/utils/frontmatter.path.test.js +172 -0
  32. package/dist/src/pieces/utils/frontmatter.path.test.js.map +1 -0
  33. package/dist/src/pieces/utils/frontmatter.test.js +200 -169
  34. package/dist/src/pieces/utils/frontmatter.test.js.map +1 -1
  35. package/dist/src/pieces/utils/piece.js +3 -2
  36. package/dist/src/pieces/utils/piece.js.map +1 -1
  37. package/dist/src/pieces/utils/piece.test.js +1 -1
  38. package/dist/src/pieces/utils/piece.test.js.map +1 -1
  39. package/dist/src/storage/fs.js +6 -1
  40. package/dist/src/storage/fs.js.map +1 -1
  41. package/dist/src/storage/fs.test.js +28 -38
  42. package/dist/src/storage/fs.test.js.map +1 -1
  43. package/dist/src/storage/webdav.js +6 -1
  44. package/dist/src/storage/webdav.js.map +1 -1
  45. package/dist/src/storage/webdav.test.js +7 -0
  46. package/dist/src/storage/webdav.test.js.map +1 -1
  47. package/dist/tsconfig.tsbuildinfo +1 -1
  48. package/package.json +2 -2
  49. package/dist/src/pieces/utils/piece.fixtures.d.ts +0 -19
  50. package/dist/src/pieces/utils/piece.fixtures.js +0 -39
  51. 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 engine room of Luzzle. 🚂
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
- ## Overview
5
+ ## Challenges Solved 🏗️
6
6
 
7
- `@luzzle/core` bridges the gap between your text files and a structured database.
8
- It handles the heavy lifting of parsing Markdown, validating schemas, and
9
- syncing everything to SQLite.
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
- ## Philosophy
12
+ ## How it works 🚂
12
13
 
13
- **Text is King. 👑**
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,3 @@
1
+ import { Kysely } from 'kysely';
2
+ export declare function up(db: Kysely<any>): Promise<void>;
3
+ export declare function down(): Promise<void>;
@@ -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"}
@@ -1,5 +1,5 @@
1
1
  import { describe, expect, test, vi, afterEach } from 'vitest';
2
- import { makeSchema } from '../pieces/utils/piece.fixtures.js';
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,mCAAmC,CAAA;AAC9D,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"}
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"}
@@ -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]: string | number | boolean | string[] | boolean[] | number[];
4
+ [k: string]: import("../index.js").PieceFrontMatterValue;
5
5
  }>;
6
6
  export { pieceFrontMatterFromPrompt };
@@ -1,4 +1,5 @@
1
- import { fileTypeFromBuffer, fileTypeFromFile } from 'file-type';
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":"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"}
1
+ {"version":3,"file":"google.js","sourceRoot":"","sources":["../../../src/llm/google.ts"],"names":[],"mappings":"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"}
@@ -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>, field: string, value: unknown): Promise<PieceMarkdown<F>>;
64
- removeField(markdown: PieceMarkdown<F>, field: string, value?: number | string | boolean): Promise<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 = ReturnType<typeof compile<PieceFrontmatter>>;
8
+ export type PieceValidator = ValidateFunction<PieceFrontmatter>;
9
9
  export declare function makeValidator(): PieceValidator;
10
- export declare function makeSchema(name: string, properties?: {
11
- [key: string]: {
12
- type?: string;
13
- nullable?: boolean;
14
- items?: object;
15
- format?: string;
16
- pattern?: string;
17
- enum?: string[] | number[];
18
- };
19
- }): PieceFrontmatterSchema<{
20
- title: string;
21
- keywords?: string;
22
- subtitle?: string;
23
- }>;
24
- export declare function makeStorage(root: string): LuzzleStorage;
25
- export declare function makeFrontmatterSample(frontmatter?: Record<string, unknown>): PieceFrontmatter;
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 PieceOverridable extends Piece<PieceFrontmatter> {
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 PieceOverridable;
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: 'sampleType',
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(name, properties) {
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(frontmatter = { title: JSON.parse(sample.frontmatter_json).title }) {
47
- return frontmatter;
48
+ export function makeFrontmatterSample(overrides = {}) {
49
+ return {
50
+ title: 'sampleTitle',
51
+ ...overrides,
52
+ };
48
53
  }
49
- export function makeMarkdownSample(initial = {}) {
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
- note: sample.note_markdown,
52
- filePath: sample.file_path,
53
- piece: sample.type,
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 PieceOverridable extends Piece {
65
- constructor(name = 'table', storage = makeStorage('root'), schema = makeSchema(name)) {
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 PieceOverridable;
83
+ return PieceMock;
71
84
  }
72
85
  export function makeRegisteredPiece(overrides) {
73
86
  const { schema, ...rest } = overrides || {};
74
87
  return {
75
- id: `123lk12j3lj12k3${Math.random()}`,
88
+ id: `id-${Math.random()}`,
76
89
  date_added: new Date().getTime(),
77
90
  date_updated: null,
78
- name: 'asdf',
79
- schema: makeSchema(schema || 'asdf'),
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":"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"}
1
+ {"version":3,"file":"Piece.fixtures.js","sourceRoot":"","sources":["../../../src/pieces/Piece.fixtures.ts"],"names":[],"mappings":"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"}
@@ -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[field.name];
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(markdown, field);
195
+ updatedMarkdown = (await this.removeField(updatedMarkdown, field));
195
196
  }
196
197
  return updatedMarkdown;
197
198
  }
198
- async setField(markdown, field, value) {
199
- const pieceField = this.fields.find((f) => f.name === field);
199
+ async setField(markdown, fieldPath, value) {
200
+ const pieceField = paths.findField(this.fields, fieldPath);
200
201
  if (!pieceField) {
201
- throw new Error(`${field} is not a field in ${this._pieceName} ${markdown.filePath}`);
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 set = [];
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(pieceField, one);
209
- if (pieceValue instanceof Readable) {
210
- const file = markdown.filePath;
211
- const storage = this._storage;
212
- const asset = await makePieceAttachment(file, pieceField, pieceValue, storage);
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 ${field}: ${error.message}`);
223
- return markdown; // On error, return the original markdown, preserving the old value
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, field, value) {
231
- const pieceField = this.fields.find((f) => f.name === field);
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(`${field} is not a field in ${this._pieceName} ${markdown.filePath}`);
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(`${field} is a required field in ${this._pieceName} ${markdown.filePath}`);
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 pieceValue = await makePieceValue(pieceField, value);
243
- if (Array.isArray(fieldValue)) {
244
- return makePieceMarkdown(markdown.filePath, markdown.piece, markdown.note, {
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 if (fieldValue === pieceValue) {
250
- return makePieceMarkdown(markdown.filePath, markdown.piece, markdown.note, frontmatter);
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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"}