@luzzle/core 0.0.37 → 0.0.39

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 (44) 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/pieces/Piece.d.ts +2 -2
  9. package/dist/src/pieces/Piece.fixtures.d.ts +21 -27
  10. package/dist/src/pieces/Piece.fixtures.js +34 -21
  11. package/dist/src/pieces/Piece.fixtures.js.map +1 -1
  12. package/dist/src/pieces/Piece.js +45 -42
  13. package/dist/src/pieces/Piece.js.map +1 -1
  14. package/dist/src/pieces/Piece.test.js +487 -739
  15. package/dist/src/pieces/Piece.test.js.map +1 -1
  16. package/dist/src/pieces/index.d.ts +1 -0
  17. package/dist/src/pieces/index.js +1 -0
  18. package/dist/src/pieces/index.js.map +1 -1
  19. package/dist/src/pieces/item.js +29 -17
  20. package/dist/src/pieces/item.js.map +1 -1
  21. package/dist/src/pieces/item.test.js +141 -113
  22. package/dist/src/pieces/item.test.js.map +1 -1
  23. package/dist/src/pieces/manager.test.js +1 -1
  24. package/dist/src/pieces/manager.test.js.map +1 -1
  25. package/dist/src/pieces/utils/frontmatter.d.ts +42 -10
  26. package/dist/src/pieces/utils/frontmatter.js +112 -44
  27. package/dist/src/pieces/utils/frontmatter.js.map +1 -1
  28. package/dist/src/pieces/utils/frontmatter.path.d.ts +5 -0
  29. package/dist/src/pieces/utils/frontmatter.path.js +95 -0
  30. package/dist/src/pieces/utils/frontmatter.path.js.map +1 -0
  31. package/dist/src/pieces/utils/frontmatter.path.test.d.ts +1 -0
  32. package/dist/src/pieces/utils/frontmatter.path.test.js +126 -0
  33. package/dist/src/pieces/utils/frontmatter.path.test.js.map +1 -0
  34. package/dist/src/pieces/utils/frontmatter.test.js +266 -169
  35. package/dist/src/pieces/utils/frontmatter.test.js.map +1 -1
  36. package/dist/src/pieces/utils/piece.js +3 -2
  37. package/dist/src/pieces/utils/piece.js.map +1 -1
  38. package/dist/src/pieces/utils/piece.test.js +1 -1
  39. package/dist/src/pieces/utils/piece.test.js.map +1 -1
  40. package/dist/tsconfig.tsbuildinfo +1 -1
  41. package/package.json +1 -1
  42. package/dist/src/pieces/utils/piece.fixtures.d.ts +0 -19
  43. package/dist/src/pieces/utils/piece.fixtures.js +0 -39
  44. package/dist/src/pieces/utils/piece.fixtures.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"item.test.js","sourceRoot":"","sources":["../../../src/pieces/item.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"item.test.js","sourceRoot":"","sources":["../../../src/pieces/item.test.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { describe, expect, test, vi, afterEach } from 'vitest';
2
2
  import { mockKysely } from '../database/database.mock.js';
3
3
  import * as manager from './manager.js';
4
- import { makeSchema } from './utils/piece.fixtures.js';
4
+ import { makeSchema } from './Piece.fixtures.js';
5
5
  vi.mock('./items.js');
6
6
  const mocks = {
7
7
  empty: vi.fn(),
@@ -1 +1 @@
1
- {"version":3,"file":"manager.test.js","sourceRoot":"","sources":["../../../src/pieces/manager.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manager.test.js","sourceRoot":"","sources":["../../../src/pieces/manager.test.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,12 @@
1
1
  import { JSONSchemaType } from "ajv";
2
- type PieceFrontMatterValue = string | number | boolean | string[] | number[] | boolean[];
2
+ export type PieceFrontMatterValue = string | number | boolean | PieceFrontMatterValue[] | {
3
+ [key: string]: PieceFrontMatterValue;
4
+ };
3
5
  type PieceFrontmatter = {
4
6
  [key: string]: PieceFrontMatterValue;
5
7
  };
6
8
  type PieceFrontmatterSchema<M extends PieceFrontmatter> = JSONSchemaType<M>;
7
- type PieceFrontmatterSchemaFieldScalar = {
8
- name: string;
9
+ export type PieceFrontmatterPropertyScalar = {
9
10
  type: 'string' | 'boolean' | 'integer';
10
11
  format?: 'asset' | 'date' | 'comma-separated' | 'paragraph';
11
12
  nullable?: boolean;
@@ -14,8 +15,7 @@ type PieceFrontmatterSchemaFieldScalar = {
14
15
  examples?: Array<string | number | boolean>;
15
16
  default?: string | number | boolean;
16
17
  };
17
- type PieceFrontmatterSchemaFieldList = {
18
- name: string;
18
+ export type PieceFrontmatterPropertyList = {
19
19
  type: 'array';
20
20
  format?: undefined;
21
21
  pattern?: undefined;
@@ -23,11 +23,43 @@ type PieceFrontmatterSchemaFieldList = {
23
23
  default?: undefined;
24
24
  nullable?: boolean;
25
25
  enum?: string[] | number[];
26
- items: Omit<PieceFrontmatterSchemaField, 'name'>;
26
+ items: PieceFrontmatterProperty;
27
+ };
28
+ export type PieceFrontmatterPropertyObject = {
29
+ type: 'object';
30
+ format?: undefined;
31
+ pattern?: undefined;
32
+ examples?: undefined;
33
+ default?: undefined;
34
+ nullable?: boolean;
35
+ properties: {
36
+ [key: string]: PieceFrontmatterProperty;
37
+ };
38
+ required?: string[];
39
+ };
40
+ type PieceFrontmatterProperty = PieceFrontmatterPropertyScalar | PieceFrontmatterPropertyList | PieceFrontmatterPropertyObject;
41
+ type PieceFrontmatterSchemaField = PieceFrontmatterProperty & {
42
+ name: string;
27
43
  };
28
- type PieceFrontmatterSchemaField = PieceFrontmatterSchemaFieldScalar | PieceFrontmatterSchemaFieldList;
44
+ /**
45
+ * Maps schema properties to a flat array of field definitions with names.
46
+ */
29
47
  declare function getPieceFrontmatterSchemaFields<M extends PieceFrontmatter>(schema: PieceFrontmatterSchema<M>): Array<PieceFrontmatterSchemaField>;
30
- declare function pieceFrontmatterValueToDatabaseValue(value: unknown, field: PieceFrontmatterSchemaField): unknown;
31
- declare function databaseValueToPieceFrontmatterValue(value: unknown, field: PieceFrontmatterSchemaField): unknown;
48
+ /**
49
+ * Converts a frontmatter value to its database-compatible representation.
50
+ * Arrays and objects are kept as structured data for JSON serialization.
51
+ */
52
+ declare function pieceFrontmatterValueToDatabaseValue(value: unknown, property: PieceFrontmatterProperty): unknown;
53
+ /**
54
+ * Converts a database value back to a frontmatter-compatible representation.
55
+ * Handles both new JSON structures and legacy CSV-separated strings for arrays.
56
+ */
57
+ declare function databaseValueToPieceFrontmatterValue(value: unknown, property: PieceFrontmatterProperty): unknown;
58
+ /**
59
+ * Recursively initializes frontmatter based on schema properties.
60
+ */
61
+ declare function initializePieceFrontMatterFromProperties(properties: {
62
+ [key: string]: PieceFrontmatterProperty;
63
+ }, requiredFields?: string[], minimal?: boolean): Record<string, unknown>;
32
64
  declare function initializePieceFrontMatter<M extends PieceFrontmatter>(schema: PieceFrontmatterSchema<M>, minimal?: boolean): M;
33
- export { type PieceFrontmatter, type PieceFrontmatterSchemaField, type PieceFrontmatterSchema, getPieceFrontmatterSchemaFields, pieceFrontmatterValueToDatabaseValue, databaseValueToPieceFrontmatterValue, initializePieceFrontMatter, };
65
+ export { type PieceFrontmatter, type PieceFrontmatterProperty, type PieceFrontmatterSchemaField, type PieceFrontmatterSchema, getPieceFrontmatterSchemaFields, pieceFrontmatterValueToDatabaseValue, databaseValueToPieceFrontmatterValue, initializePieceFrontMatter, initializePieceFrontMatterFromProperties, };
@@ -1,69 +1,137 @@
1
+ /**
2
+ * Maps schema properties to a flat array of field definitions with names.
3
+ */
1
4
  function getPieceFrontmatterSchemaFields(schema) {
2
5
  return Object.keys(schema.properties).map((key) => {
3
6
  const required = Array.isArray(schema.required) ? schema.required : [];
4
- const nullable = required.some(f => f === key) || schema.properties[key]?.nullable;
5
- return { name: key, ...schema.properties[key], nullable };
7
+ const isRequired = required.includes(key);
8
+ const property = schema.properties[key];
9
+ const nullable = isRequired ? false : property.nullable ?? true;
10
+ return {
11
+ ...property,
12
+ name: key,
13
+ nullable
14
+ };
6
15
  });
7
16
  }
8
- function pieceFrontmatterValueToDatabaseValue(value, field) {
9
- if (value === undefined) {
17
+ /**
18
+ * Converts a frontmatter value to its database-compatible representation.
19
+ * Arrays and objects are kept as structured data for JSON serialization.
20
+ */
21
+ function pieceFrontmatterValueToDatabaseValue(value, property) {
22
+ if (value === undefined || value === null) {
10
23
  return null;
11
24
  }
12
- if (field.format === 'date') {
13
- return new Date(value).getTime();
14
- }
15
- else if (field.format === 'comma-separated') {
16
- return JSON.stringify(value.split(','));
17
- }
18
- else if (field.type === 'boolean') {
19
- return value ? 1 : 0;
20
- }
21
- else if (field.type === 'array') {
22
- return value.join(',');
25
+ switch (property.type) {
26
+ case 'boolean':
27
+ return value ? 1 : 0;
28
+ case 'integer':
29
+ return Number(value);
30
+ case 'array':
31
+ return value.map((v) => pieceFrontmatterValueToDatabaseValue(v, property.items));
32
+ case 'object': {
33
+ const obj = value;
34
+ const result = { ...obj }; // Allow additional properties
35
+ for (const key in property.properties) {
36
+ result[key] = pieceFrontmatterValueToDatabaseValue(obj[key], property.properties[key]);
37
+ }
38
+ return result;
39
+ }
40
+ case 'string':
41
+ if (property.format === 'date') {
42
+ return new Date(value).getTime();
43
+ }
44
+ if (property.format === 'comma-separated') {
45
+ return JSON.stringify(value.split(','));
46
+ }
47
+ return value;
48
+ default:
49
+ return value;
23
50
  }
24
- return value;
25
51
  }
26
- function databaseValueToPieceFrontmatterValue(value, field) {
27
- if (field.format === 'date') {
28
- return new Date(value).toLocaleDateString();
29
- }
30
- else if (field.format === 'comma-separated') {
31
- return JSON.parse(value).join(',');
32
- }
33
- else if (field.type === 'boolean') {
34
- return value ? true : false;
35
- }
36
- else if (field.type === 'array') {
37
- const values = value.split(',');
38
- return values.map((v) => databaseValueToPieceFrontmatterValue(v, field.items));
52
+ /**
53
+ * Converts a database value back to a frontmatter-compatible representation.
54
+ * Handles both new JSON structures and legacy CSV-separated strings for arrays.
55
+ */
56
+ function databaseValueToPieceFrontmatterValue(value, property) {
57
+ if (value === undefined || value === null) {
58
+ return null;
39
59
  }
40
- else if (field.type === 'integer') {
41
- return Number(value);
60
+ switch (property.type) {
61
+ case 'boolean':
62
+ return value ? true : false;
63
+ case 'integer':
64
+ return Number(value);
65
+ case 'array': {
66
+ // Backwards compatibility: Handle legacy CSV strings stored in older caches
67
+ const values = Array.isArray(value) ? value : value.split(',');
68
+ return values.map((v) => databaseValueToPieceFrontmatterValue(v, property.items));
69
+ }
70
+ case 'object': {
71
+ const obj = value;
72
+ const result = { ...obj };
73
+ for (const key in property.properties) {
74
+ result[key] = databaseValueToPieceFrontmatterValue(obj[key], property.properties[key]);
75
+ }
76
+ return result;
77
+ }
78
+ case 'string':
79
+ if (property.format === 'date') {
80
+ return new Date(value).toLocaleDateString();
81
+ }
82
+ if (property.format === 'comma-separated') {
83
+ try {
84
+ return JSON.parse(value).join(',');
85
+ }
86
+ catch {
87
+ return value;
88
+ }
89
+ }
90
+ return value;
91
+ default:
92
+ return value;
42
93
  }
43
- return value;
44
94
  }
45
- function initializePieceFrontMatter(schema, minimal = false) {
95
+ /**
96
+ * Recursively initializes frontmatter based on schema properties.
97
+ */
98
+ function initializePieceFrontMatterFromProperties(properties, requiredFields = [], minimal = false) {
46
99
  const frontmatter = {};
47
- const fields = getPieceFrontmatterSchemaFields(schema);
48
- for (const field of fields) {
49
- const name = field.name;
50
- const required = schema.required?.includes(name);
51
- const isArray = field.type === 'array';
52
- const examples = isArray ? field.items?.examples : field.examples;
53
- const def = isArray ? field.items?.default : field.default;
100
+ for (const name in properties) {
101
+ const property = properties[name];
102
+ const isRequired = requiredFields.includes(name);
103
+ // Handle nested objects
104
+ if (property.type === 'object') {
105
+ const subValue = initializePieceFrontMatterFromProperties(property.properties, property.required || [], minimal);
106
+ if (Object.keys(subValue).length > 0) {
107
+ frontmatter[name] = subValue;
108
+ }
109
+ else if (isRequired) {
110
+ frontmatter[name] = {};
111
+ }
112
+ continue;
113
+ }
114
+ // Handle scalars and arrays
115
+ const isArray = property.type === 'array';
116
+ const examples = isArray ? property.items.examples : property.examples;
117
+ const def = isArray ? property.items.default : property.default;
54
118
  const example = examples?.[0];
55
119
  const hasInitialValue = def !== undefined || example !== undefined;
56
- if (required || (!minimal && hasInitialValue)) {
120
+ if (isRequired || (!minimal && hasInitialValue)) {
57
121
  const initialValue = def !== undefined ? def : example;
58
122
  if (initialValue !== undefined) {
59
123
  frontmatter[name] = isArray ? [initialValue] : initialValue;
60
124
  }
61
- else if (required) {
62
- throw new Error(`can not initialize ${schema.title} field "${name}" as it is required but there are no examples or a default value`);
125
+ else if (isRequired) {
126
+ throw new Error(`can not initialize field "${name}" as it is required but there are no examples or a default value`);
63
127
  }
64
128
  }
65
129
  }
66
130
  return frontmatter;
67
131
  }
68
- export { getPieceFrontmatterSchemaFields, pieceFrontmatterValueToDatabaseValue, databaseValueToPieceFrontmatterValue, initializePieceFrontMatter, };
132
+ function initializePieceFrontMatter(schema, minimal = false) {
133
+ const required = Array.isArray(schema.required) ? schema.required : [];
134
+ return initializePieceFrontMatterFromProperties(schema.properties, required, minimal);
135
+ }
136
+ export { getPieceFrontmatterSchemaFields, pieceFrontmatterValueToDatabaseValue, databaseValueToPieceFrontmatterValue, initializePieceFrontMatter, initializePieceFrontMatterFromProperties, };
69
137
  //# sourceMappingURL=frontmatter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"frontmatter.js","sourceRoot":"","sources":["../../../../src/pieces/utils/frontmatter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"frontmatter.js","sourceRoot":"","sources":["../../../../src/pieces/utils/frontmatter.ts"],"names":[],"mappings":"AAsDA;;GAEG;AACH,SAAS,+BAA+B,CACvC,MAAiC;IAEjC,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QACjD,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAE,MAAM,CAAC,QAAqB,CAAC,CAAC,CAAC,EAAE,CAAA;QACpF,MAAM,UAAU,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;QACzC,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,CAA6B,CAAA;QACnE,MAAM,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,IAAI,IAAI,CAAA;QAE/D,OAAO;YACN,GAAG,QAAQ;YACX,IAAI,EAAE,GAAG;YACT,QAAQ;SACR,CAAA;IACF,CAAC,CAAC,CAAA;AACH,CAAC;AAED;;;GAGG;AACH,SAAS,oCAAoC,CAC5C,KAAc,EACd,QAAkC;IAElC,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAC3C,OAAO,IAAI,CAAA;IACZ,CAAC;IAED,QAAQ,QAAQ,CAAC,IAAI,EAAE,CAAC;QACvB,KAAK,SAAS;YACb,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QACrB,KAAK,SAAS;YACb,OAAO,MAAM,CAAC,KAAK,CAAC,CAAA;QACrB,KAAK,OAAO;YACX,OAAQ,KAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACrC,oCAAoC,CAAC,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,CACvD,CAAA;QACF,KAAK,QAAQ,CAAC,CAAC,CAAC;YACf,MAAM,GAAG,GAAG,KAAgC,CAAA;YAC5C,MAAM,MAAM,GAA4B,EAAE,GAAG,GAAG,EAAE,CAAA,CAAC,8BAA8B;YACjF,KAAK,MAAM,GAAG,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;gBACvC,MAAM,CAAC,GAAG,CAAC,GAAG,oCAAoC,CACjD,GAAG,CAAC,GAAG,CAAC,EACR,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CACxB,CAAA;YACF,CAAC;YACD,OAAO,MAAM,CAAA;QACd,CAAC;QACD,KAAK,QAAQ;YACZ,IAAI,QAAQ,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;gBAChC,OAAO,IAAI,IAAI,CAAC,KAAe,CAAC,CAAC,OAAO,EAAE,CAAA;YAC3C,CAAC;YACD,IAAI,QAAQ,CAAC,MAAM,KAAK,iBAAiB,EAAE,CAAC;gBAC3C,OAAO,IAAI,CAAC,SAAS,CAAE,KAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAA;YACpD,CAAC;YACD,OAAO,KAAK,CAAA;QACb;YACC,OAAO,KAAK,CAAA;IACd,CAAC;AACF,CAAC;AAED;;;GAGG;AACH,SAAS,oCAAoC,CAC5C,KAAc,EACd,QAAkC;IAElC,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAC3C,OAAO,IAAI,CAAA;IACZ,CAAC;IAED,QAAQ,QAAQ,CAAC,IAAI,EAAE,CAAC;QACvB,KAAK,SAAS;YACb,OAAO,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAA;QAC5B,KAAK,SAAS;YACb,OAAO,MAAM,CAAC,KAAK,CAAC,CAAA;QACrB,KAAK,OAAO,CAAC,CAAC,CAAC;YACd,4EAA4E;YAC5E,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAE,KAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YAC1E,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACvB,oCAAoC,CAAC,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,CACvD,CAAA;QACF,CAAC;QACD,KAAK,QAAQ,CAAC,CAAC,CAAC;YACf,MAAM,GAAG,GAAG,KAAgC,CAAA;YAC5C,MAAM,MAAM,GAA4B,EAAE,GAAG,GAAG,EAAE,CAAA;YAClD,KAAK,MAAM,GAAG,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;gBACvC,MAAM,CAAC,GAAG,CAAC,GAAG,oCAAoC,CACjD,GAAG,CAAC,GAAG,CAAC,EACR,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CACxB,CAAA;YACF,CAAC;YACD,OAAO,MAAM,CAAA;QACd,CAAC;QACD,KAAK,QAAQ;YACZ,IAAI,QAAQ,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;gBAChC,OAAO,IAAI,IAAI,CAAC,KAAe,CAAC,CAAC,kBAAkB,EAAE,CAAA;YACtD,CAAC;YACD,IAAI,QAAQ,CAAC,MAAM,KAAK,iBAAiB,EAAE,CAAC;gBAC3C,IAAI,CAAC;oBACJ,OAAO,IAAI,CAAC,KAAK,CAAC,KAAe,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;gBAC7C,CAAC;gBAAC,MAAM,CAAC;oBACR,OAAO,KAAK,CAAA;gBACb,CAAC;YACF,CAAC;YACD,OAAO,KAAK,CAAA;QACb;YACC,OAAO,KAAK,CAAA;IACd,CAAC;AACF,CAAC;AAED;;GAEG;AACH,SAAS,wCAAwC,CAChD,UAAuD,EACvD,iBAA2B,EAAE,EAC7B,UAAmB,KAAK;IAExB,MAAM,WAAW,GAA4B,EAAE,CAAA;IAE/C,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;QAC/B,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,CAAA;QACjC,MAAM,UAAU,GAAG,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;QAEhD,wBAAwB;QACxB,IAAI,QAAQ,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAChC,MAAM,QAAQ,GAAG,wCAAwC,CACxD,QAAQ,CAAC,UAAU,EACnB,QAAQ,CAAC,QAAQ,IAAI,EAAE,EACvB,OAAO,CACP,CAAA;YAED,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtC,WAAW,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAA;YAC7B,CAAC;iBAAM,IAAI,UAAU,EAAE,CAAC;gBACvB,WAAW,CAAC,IAAI,CAAC,GAAG,EAAE,CAAA;YACvB,CAAC;YACD,SAAQ;QACT,CAAC;QAED,4BAA4B;QAC5B,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,KAAK,OAAO,CAAA;QACzC,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAA;QACtE,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAA;QAC/D,MAAM,OAAO,GAAG,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAA;QAC7B,MAAM,eAAe,GAAG,GAAG,KAAK,SAAS,IAAI,OAAO,KAAK,SAAS,CAAA;QAElE,IAAI,UAAU,IAAI,CAAC,CAAC,OAAO,IAAI,eAAe,CAAC,EAAE,CAAC;YACjD,MAAM,YAAY,GAAG,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAA;YAEtD,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;gBAChC,WAAW,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAA;YAC5D,CAAC;iBAAM,IAAI,UAAU,EAAE,CAAC;gBACvB,MAAM,IAAI,KAAK,CACd,6BAA6B,IAAI,kEAAkE,CACnG,CAAA;YACF,CAAC;QACF,CAAC;IACF,CAAC;IAED,OAAO,WAAW,CAAA;AACnB,CAAC;AAED,SAAS,0BAA0B,CAClC,MAAiC,EACjC,UAAmB,KAAK;IAExB,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAE,MAAM,CAAC,QAAqB,CAAC,CAAC,CAAC,EAAE,CAAA;IACpF,OAAO,wCAAwC,CAC9C,MAAM,CAAC,UAAyD,EAChE,QAAQ,EACR,OAAO,CACF,CAAA;AACP,CAAC;AAED,OAAO,EAKN,+BAA+B,EAC/B,oCAAoC,EACpC,oCAAoC,EACpC,0BAA0B,EAC1B,wCAAwC,GACxC,CAAA"}
@@ -0,0 +1,5 @@
1
+ import { PieceFrontmatter, PieceFrontMatterValue, PieceFrontmatterSchemaField } from './frontmatter.js';
2
+ export declare function getFrontmatterValue(obj: PieceFrontmatter, path: string): PieceFrontMatterValue | undefined;
3
+ export declare function setFrontmatterValue(obj: PieceFrontmatter, path: string, value: PieceFrontMatterValue): void;
4
+ export declare function unsetFrontmatterValue(obj: PieceFrontmatter, path: string): void;
5
+ export declare function findFrontmatterField(fields: PieceFrontmatterSchemaField[], path: string): PieceFrontmatterSchemaField | undefined;
@@ -0,0 +1,95 @@
1
+ export function getFrontmatterValue(obj, path) {
2
+ const parts = path.split('.');
3
+ let current = obj;
4
+ for (const part of parts) {
5
+ if (current === null || typeof current !== 'object') {
6
+ return undefined;
7
+ }
8
+ current = current[part];
9
+ }
10
+ return current;
11
+ }
12
+ export function setFrontmatterValue(obj, path, value) {
13
+ const parts = path.split('.');
14
+ const lastPart = parts.pop();
15
+ let current = obj;
16
+ for (const part of parts) {
17
+ if (!(part in current) || current[part] === null || typeof current[part] !== 'object') {
18
+ current[part] = {};
19
+ }
20
+ current = current[part];
21
+ }
22
+ const existing = current[lastPart];
23
+ if (Array.isArray(existing)) {
24
+ existing.push(value);
25
+ }
26
+ else {
27
+ current[lastPart] = value;
28
+ }
29
+ }
30
+ export function unsetFrontmatterValue(obj, path) {
31
+ const parts = path.split('.');
32
+ const lastPart = parts.pop();
33
+ let current = obj;
34
+ for (const part of parts) {
35
+ if (current === null ||
36
+ typeof current !== 'object' ||
37
+ !(part in current)) {
38
+ return;
39
+ }
40
+ current = current[part];
41
+ }
42
+ if (Array.isArray(current)) {
43
+ const index = parseInt(lastPart, 10);
44
+ if (!isNaN(index)) {
45
+ current.splice(index, 1);
46
+ }
47
+ }
48
+ else if (current !== null && typeof current === 'object') {
49
+ delete current[lastPart];
50
+ }
51
+ }
52
+ export function findFrontmatterField(fields, path) {
53
+ const parts = path.split('.');
54
+ let currentFields = fields;
55
+ let result;
56
+ for (let i = 0; i < parts.length; i++) {
57
+ const part = parts[i];
58
+ if (result?.type === 'array') {
59
+ const index = parseInt(part, 10);
60
+ if (isNaN(index)) {
61
+ return undefined;
62
+ }
63
+ result = { ...result.items, name: part };
64
+ }
65
+ else {
66
+ result = currentFields.find((f) => f.name === part);
67
+ }
68
+ if (!result) {
69
+ return undefined;
70
+ }
71
+ if (i === parts.length - 1) {
72
+ return result;
73
+ }
74
+ if (result.type === 'object') {
75
+ const props = result.properties;
76
+ currentFields = Object.keys(props).map((name) => ({ ...props[name], name }));
77
+ }
78
+ else if (result.type === 'array') {
79
+ const nextPart = parts[i + 1];
80
+ const nextIsIndex = nextPart !== undefined && !isNaN(parseInt(nextPart, 10));
81
+ if (!nextIsIndex && result.items.type === 'object') {
82
+ const props = result.items.properties;
83
+ currentFields = Object.keys(props).map((name) => ({ ...props[name], name }));
84
+ }
85
+ else {
86
+ currentFields = [];
87
+ }
88
+ }
89
+ else {
90
+ return undefined;
91
+ }
92
+ }
93
+ return result;
94
+ }
95
+ //# sourceMappingURL=frontmatter.path.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"frontmatter.path.js","sourceRoot":"","sources":["../../../../src/pieces/utils/frontmatter.path.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,126 @@
1
+ import { describe, expect, test } from 'vitest';
2
+ import * as paths from './frontmatter.path.js';
3
+ describe('pieces/utils/frontmatter.path.ts', () => {
4
+ describe('getFrontmatterValue', () => {
5
+ test('gets top level value', () => {
6
+ const obj = { title: 'hello' };
7
+ expect(paths.getFrontmatterValue(obj, 'title')).toBe('hello');
8
+ });
9
+ test('gets nested value', () => {
10
+ const obj = { meta: { author: 'Bob' } };
11
+ expect(paths.getFrontmatterValue(obj, 'meta.author')).toBe('Bob');
12
+ });
13
+ test('gets array value', () => {
14
+ const obj = { tags: ['a', 'b'] };
15
+ expect(paths.getFrontmatterValue(obj, 'tags.1')).toBe('b');
16
+ });
17
+ test('returns undefined for missing path', () => {
18
+ const obj = { title: 'hello' };
19
+ expect(paths.getFrontmatterValue(obj, 'missing')).toBeUndefined();
20
+ expect(paths.getFrontmatterValue(obj, 'title.sub')).toBeUndefined();
21
+ });
22
+ });
23
+ describe('setFrontmatterValue', () => {
24
+ test('sets top level value', () => {
25
+ const obj = { title: 'old' };
26
+ paths.setFrontmatterValue(obj, 'title', 'new');
27
+ expect(obj.title).toBe('new');
28
+ });
29
+ test('sets nested value (creates objects)', () => {
30
+ const obj = { title: 't' };
31
+ paths.setFrontmatterValue(obj, 'meta.author', 'Bob');
32
+ expect(obj.meta.author).toBe('Bob');
33
+ });
34
+ test('appends to existing array', () => {
35
+ const obj = { tags: ['a'] };
36
+ paths.setFrontmatterValue(obj, 'tags', 'b');
37
+ expect(obj.tags).toEqual(['a', 'b']);
38
+ });
39
+ test('overwrites non-object intermediate paths', () => {
40
+ const obj = { meta: 'not-an-object' };
41
+ paths.setFrontmatterValue(obj, 'meta.author', 'Bob');
42
+ expect(obj.meta.author).toBe('Bob');
43
+ });
44
+ });
45
+ describe('unsetFrontmatterValue', () => {
46
+ test('unsets top level value', () => {
47
+ const obj = { title: 'hello', other: 'v' };
48
+ paths.unsetFrontmatterValue(obj, 'title');
49
+ expect(obj.title).toBeUndefined();
50
+ expect(obj.other).toBe('v');
51
+ });
52
+ test('unsets nested value', () => {
53
+ const obj = { meta: { author: 'Bob', date: '2023' } };
54
+ paths.unsetFrontmatterValue(obj, 'meta.author');
55
+ expect(obj.meta.author).toBeUndefined();
56
+ expect(obj.meta.date).toBe('2023');
57
+ });
58
+ test('removes from array by index', () => {
59
+ const obj = { tags: ['a', 'b', 'c'] };
60
+ paths.unsetFrontmatterValue(obj, 'tags.1');
61
+ expect(obj.tags).toEqual(['a', 'c']);
62
+ });
63
+ test('handles missing paths gracefully', () => {
64
+ const obj = { title: 't' };
65
+ expect(() => paths.unsetFrontmatterValue(obj, 'missing.path')).not.toThrow();
66
+ });
67
+ });
68
+ describe('findFrontmatterField', () => {
69
+ const fields = [
70
+ { name: 'title', type: 'string' },
71
+ {
72
+ name: 'meta',
73
+ type: 'object',
74
+ properties: {
75
+ author: { type: 'string' },
76
+ tags: { type: 'array', items: { type: 'string' } }
77
+ }
78
+ },
79
+ {
80
+ name: 'gallery',
81
+ type: 'array',
82
+ items: {
83
+ type: 'object',
84
+ properties: {
85
+ url: { type: 'string' }
86
+ }
87
+ }
88
+ }
89
+ ];
90
+ test('finds top level field', () => {
91
+ const field = paths.findFrontmatterField(fields, 'title');
92
+ expect(field?.name).toBe('title');
93
+ expect(field?.type).toBe('string');
94
+ });
95
+ test('finds nested field', () => {
96
+ const field = paths.findFrontmatterField(fields, 'meta.author');
97
+ expect(field?.name).toBe('author');
98
+ expect(field?.type).toBe('string');
99
+ });
100
+ test('finds array item field via index', () => {
101
+ const field = paths.findFrontmatterField(fields, 'meta.tags.0');
102
+ expect(field?.type).toBe('string');
103
+ });
104
+ test('finds nested field inside array of objects', () => {
105
+ const field = paths.findFrontmatterField(fields, 'gallery.0.url');
106
+ expect(field?.name).toBe('url');
107
+ expect(field?.type).toBe('string');
108
+ });
109
+ test('finds nested field inside array of objects', () => {
110
+ const field = paths.findFrontmatterField(fields, 'gallery.oops.url');
111
+ expect(field).toBeUndefined();
112
+ });
113
+ test('returns undefined for invalid paths', () => {
114
+ expect(paths.findFrontmatterField(fields, 'missing')).toBeUndefined();
115
+ expect(paths.findFrontmatterField(fields, 'title.nested')).toBeUndefined();
116
+ expect(paths.findFrontmatterField(fields, 'meta.missing')).toBeUndefined();
117
+ });
118
+ test('returns undefined for index on non-array', () => {
119
+ expect(paths.findFrontmatterField(fields, 'title.0')).toBeUndefined();
120
+ });
121
+ test('returns undefined for scalar subpath', () => {
122
+ expect(paths.findFrontmatterField(fields, 'meta.author.deep')).toBeUndefined();
123
+ });
124
+ });
125
+ });
126
+ //# sourceMappingURL=frontmatter.path.test.js.map