@luzzle/core 0.0.32 → 0.0.33

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 (230) hide show
  1. package/package.json +3 -3
  2. package/dist/src/database/client.d.ts +0 -4
  3. package/dist/src/database/client.js +0 -12
  4. package/dist/src/database/client.js.map +0 -1
  5. package/dist/src/database/client.test.d.ts +0 -1
  6. package/dist/src/database/client.test.js +0 -34
  7. package/dist/src/database/client.test.js.map +0 -1
  8. package/dist/src/database/database.mock.d.ts +0 -22
  9. package/dist/src/database/database.mock.js +0 -42
  10. package/dist/src/database/database.mock.js.map +0 -1
  11. package/dist/src/database/migrations/2023-05-26T15:04:19.094Z.d.ts +0 -3
  12. package/dist/src/database/migrations/2023-05-26T15:04:19.094Z.js +0 -49
  13. package/dist/src/database/migrations/2023-05-26T15:04:19.094Z.js.map +0 -1
  14. package/dist/src/database/migrations/2023-10-30T23:24:40Z.d.ts +0 -3
  15. package/dist/src/database/migrations/2023-10-30T23:24:40Z.js +0 -35
  16. package/dist/src/database/migrations/2023-10-30T23:24:40Z.js.map +0 -1
  17. package/dist/src/database/migrations/2023-11-22T14:55:18Z.d.ts +0 -3
  18. package/dist/src/database/migrations/2023-11-22T14:55:18Z.js +0 -16
  19. package/dist/src/database/migrations/2023-11-22T14:55:18Z.js.map +0 -1
  20. package/dist/src/database/migrations/2023-11-27T04:32:07Z.d.ts +0 -3
  21. package/dist/src/database/migrations/2023-11-27T04:32:07Z.js +0 -30
  22. package/dist/src/database/migrations/2023-11-27T04:32:07Z.js.map +0 -1
  23. package/dist/src/database/migrations/2024-01-01T23:30:29Z.d.ts +0 -3
  24. package/dist/src/database/migrations/2024-01-01T23:30:29Z.js +0 -11
  25. package/dist/src/database/migrations/2024-01-01T23:30:29Z.js.map +0 -1
  26. package/dist/src/database/migrations/2024-01-06T15:52:43Z.d.ts +0 -3
  27. package/dist/src/database/migrations/2024-01-06T15:52:43Z.js +0 -16
  28. package/dist/src/database/migrations/2024-01-06T15:52:43Z.js.map +0 -1
  29. package/dist/src/database/migrations/2024-02-09T16:33:10Z.d.ts +0 -3
  30. package/dist/src/database/migrations/2024-02-09T16:33:10Z.js +0 -37
  31. package/dist/src/database/migrations/2024-02-09T16:33:10Z.js.map +0 -1
  32. package/dist/src/database/migrations/2024-02-13T05:56:43Z.d.ts +0 -3
  33. package/dist/src/database/migrations/2024-02-13T05:56:43Z.js +0 -116
  34. package/dist/src/database/migrations/2024-02-13T05:56:43Z.js.map +0 -1
  35. package/dist/src/database/migrations/2024-02-24T03:05:47Z-add-texts-table.d.ts +0 -3
  36. package/dist/src/database/migrations/2024-02-24T03:05:47Z-add-texts-table.js +0 -42
  37. package/dist/src/database/migrations/2024-02-24T03:05:47Z-add-texts-table.js.map +0 -1
  38. package/dist/src/database/migrations/2024-02-26T05:37:37Z-add-cache-table.d.ts +0 -3
  39. package/dist/src/database/migrations/2024-02-26T05:37:37Z-add-cache-table.js +0 -20
  40. package/dist/src/database/migrations/2024-02-26T05:37:37Z-add-cache-table.js.map +0 -1
  41. package/dist/src/database/migrations/2024-03-01T01:01:47Z-fix-trigger-bugs.d.ts +0 -3
  42. package/dist/src/database/migrations/2024-03-01T01:01:47Z-fix-trigger-bugs.js +0 -43
  43. package/dist/src/database/migrations/2024-03-01T01:01:47Z-fix-trigger-bugs.js.map +0 -1
  44. package/dist/src/database/migrations/2024-06-15T17:17:51Z-add-games-table.d.ts +0 -3
  45. package/dist/src/database/migrations/2024-06-15T17:17:51Z-add-games-table.js +0 -54
  46. package/dist/src/database/migrations/2024-06-15T17:17:51Z-add-games-table.js.map +0 -1
  47. package/dist/src/database/migrations/2024-06-24T20:16:48Z-remove-book-open-library-fields.d.ts +0 -3
  48. package/dist/src/database/migrations/2024-06-24T20:16:48Z-remove-book-open-library-fields.js +0 -23
  49. package/dist/src/database/migrations/2024-06-24T20:16:48Z-remove-book-open-library-fields.js.map +0 -1
  50. package/dist/src/database/migrations/2024-06-29T16:31:33Z-add-piece-manager-table.d.ts +0 -3
  51. package/dist/src/database/migrations/2024-06-29T16:31:33Z-add-piece-manager-table.js +0 -17
  52. package/dist/src/database/migrations/2024-06-29T16:31:33Z-add-piece-manager-table.js.map +0 -1
  53. package/dist/src/database/migrations/2024-07-14T06:59:07Z-remove-pieces.d.ts +0 -3
  54. package/dist/src/database/migrations/2024-07-14T06:59:07Z-remove-pieces.js +0 -15
  55. package/dist/src/database/migrations/2024-07-14T06:59:07Z-remove-pieces.js.map +0 -1
  56. package/dist/src/database/migrations/2024-11-06T15:27:05Z-remove-tags.d.ts +0 -3
  57. package/dist/src/database/migrations/2024-11-06T15:27:05Z-remove-tags.js +0 -26
  58. package/dist/src/database/migrations/2024-11-06T15:27:05Z-remove-tags.js.map +0 -1
  59. package/dist/src/database/migrations/2024-11-08T05:59:37Z-remove-pieces-items-unique-tables.d.ts +0 -3
  60. package/dist/src/database/migrations/2024-11-08T05:59:37Z-remove-pieces-items-unique-tables.js +0 -24
  61. package/dist/src/database/migrations/2024-11-08T05:59:37Z-remove-pieces-items-unique-tables.js.map +0 -1
  62. package/dist/src/database/migrations/2024-11-13T14:51:17Z-track-file-paths-on-piece.d.ts +0 -3
  63. package/dist/src/database/migrations/2024-11-13T14:51:17Z-track-file-paths-on-piece.js +0 -54
  64. package/dist/src/database/migrations/2024-11-13T14:51:17Z-track-file-paths-on-piece.js.map +0 -1
  65. package/dist/src/database/migrations/2024-12-15T06:35:24Z-track-assets-on-piece.d.ts +0 -3
  66. package/dist/src/database/migrations/2024-12-15T06:35:24Z-track-assets-on-piece.js +0 -10
  67. package/dist/src/database/migrations/2024-12-15T06:35:24Z-track-assets-on-piece.js.map +0 -1
  68. package/dist/src/database/migrations.d.ts +0 -3
  69. package/dist/src/database/migrations.js +0 -16
  70. package/dist/src/database/migrations.js.map +0 -1
  71. package/dist/src/database/migrations.test.d.ts +0 -1
  72. package/dist/src/database/migrations.test.js +0 -37
  73. package/dist/src/database/migrations.test.js.map +0 -1
  74. package/dist/src/database/tables/index.d.ts +0 -21
  75. package/dist/src/database/tables/index.js +0 -7
  76. package/dist/src/database/tables/index.js.map +0 -1
  77. package/dist/src/database/tables/pieces_cache.schema.d.ts +0 -13
  78. package/dist/src/database/tables/pieces_cache.schema.js +0 -2
  79. package/dist/src/database/tables/pieces_cache.schema.js.map +0 -1
  80. package/dist/src/database/tables/pieces_items.schema.d.ts +0 -16
  81. package/dist/src/database/tables/pieces_items.schema.js +0 -2
  82. package/dist/src/database/tables/pieces_items.schema.js.map +0 -1
  83. package/dist/src/database/tables/pieces_manager.schema.d.ts +0 -13
  84. package/dist/src/database/tables/pieces_manager.schema.js +0 -2
  85. package/dist/src/database/tables/pieces_manager.schema.js.map +0 -1
  86. package/dist/src/database/utils.d.ts +0 -8
  87. package/dist/src/database/utils.js +0 -2
  88. package/dist/src/database/utils.js.map +0 -1
  89. package/dist/src/database/utils.test.d.ts +0 -1
  90. package/dist/src/database/utils.test.js +0 -9
  91. package/dist/src/database/utils.test.js.map +0 -1
  92. package/dist/src/index.d.ts +0 -11
  93. package/dist/src/index.js +0 -12
  94. package/dist/src/index.js.map +0 -1
  95. package/dist/src/index.test.d.ts +0 -1
  96. package/dist/src/index.test.js +0 -9
  97. package/dist/src/index.test.js.map +0 -1
  98. package/dist/src/lib/ajv.d.ts +0 -6
  99. package/dist/src/lib/ajv.js +0 -25
  100. package/dist/src/lib/ajv.js.map +0 -1
  101. package/dist/src/lib/ajv.test.d.ts +0 -1
  102. package/dist/src/lib/ajv.test.js +0 -43
  103. package/dist/src/lib/ajv.test.js.map +0 -1
  104. package/dist/src/lib/frontmatter.d.ts +0 -4
  105. package/dist/src/lib/frontmatter.js +0 -8
  106. package/dist/src/lib/frontmatter.js.map +0 -1
  107. package/dist/src/lib/frontmatter.test.d.ts +0 -1
  108. package/dist/src/lib/frontmatter.test.js +0 -37
  109. package/dist/src/lib/frontmatter.test.js.map +0 -1
  110. package/dist/src/lib/markdown.d.ts +0 -7
  111. package/dist/src/lib/markdown.js +0 -21
  112. package/dist/src/lib/markdown.js.map +0 -1
  113. package/dist/src/lib/markdown.test.d.ts +0 -1
  114. package/dist/src/lib/markdown.test.js +0 -34
  115. package/dist/src/lib/markdown.test.js.map +0 -1
  116. package/dist/src/llm/google.d.ts +0 -6
  117. package/dist/src/llm/google.js +0 -91
  118. package/dist/src/llm/google.js.map +0 -1
  119. package/dist/src/llm/google.test.d.ts +0 -1
  120. package/dist/src/llm/google.test.js +0 -253
  121. package/dist/src/llm/google.test.js.map +0 -1
  122. package/dist/src/pieces/Piece.d.ts +0 -66
  123. package/dist/src/pieces/Piece.fixtures.d.ts +0 -43
  124. package/dist/src/pieces/Piece.fixtures.js +0 -83
  125. package/dist/src/pieces/Piece.fixtures.js.map +0 -1
  126. package/dist/src/pieces/Piece.js +0 -256
  127. package/dist/src/pieces/Piece.js.map +0 -1
  128. package/dist/src/pieces/Piece.test.d.ts +0 -1
  129. package/dist/src/pieces/Piece.test.js +0 -839
  130. package/dist/src/pieces/Piece.test.js.map +0 -1
  131. package/dist/src/pieces/Pieces.d.ts +0 -55
  132. package/dist/src/pieces/Pieces.js +0 -144
  133. package/dist/src/pieces/Pieces.js.map +0 -1
  134. package/dist/src/pieces/Pieces.test.d.ts +0 -1
  135. package/dist/src/pieces/Pieces.test.js +0 -327
  136. package/dist/src/pieces/Pieces.test.js.map +0 -1
  137. package/dist/src/pieces/assets.d.ts +0 -5
  138. package/dist/src/pieces/assets.js +0 -6
  139. package/dist/src/pieces/assets.js.map +0 -1
  140. package/dist/src/pieces/cache.d.ts +0 -20
  141. package/dist/src/pieces/cache.fixtures.d.ts +0 -3
  142. package/dist/src/pieces/cache.fixtures.js +0 -12
  143. package/dist/src/pieces/cache.fixtures.js.map +0 -1
  144. package/dist/src/pieces/cache.js +0 -49
  145. package/dist/src/pieces/cache.js.map +0 -1
  146. package/dist/src/pieces/cache.test.d.ts +0 -1
  147. package/dist/src/pieces/cache.test.js +0 -98
  148. package/dist/src/pieces/cache.test.js.map +0 -1
  149. package/dist/src/pieces/index.d.ts +0 -8
  150. package/dist/src/pieces/index.js +0 -9
  151. package/dist/src/pieces/index.js.map +0 -1
  152. package/dist/src/pieces/item.d.ts +0 -9
  153. package/dist/src/pieces/item.js +0 -79
  154. package/dist/src/pieces/item.js.map +0 -1
  155. package/dist/src/pieces/item.test.d.ts +0 -1
  156. package/dist/src/pieces/item.test.js +0 -215
  157. package/dist/src/pieces/item.test.js.map +0 -1
  158. package/dist/src/pieces/items.d.ts +0 -39
  159. package/dist/src/pieces/items.js +0 -45
  160. package/dist/src/pieces/items.js.map +0 -1
  161. package/dist/src/pieces/items.test.d.ts +0 -1
  162. package/dist/src/pieces/items.test.js +0 -100
  163. package/dist/src/pieces/items.test.js.map +0 -1
  164. package/dist/src/pieces/json.schema.d.ts +0 -6
  165. package/dist/src/pieces/json.schema.js +0 -58
  166. package/dist/src/pieces/json.schema.js.map +0 -1
  167. package/dist/src/pieces/json.schema.test.d.ts +0 -1
  168. package/dist/src/pieces/json.schema.test.js +0 -27
  169. package/dist/src/pieces/json.schema.test.js.map +0 -1
  170. package/dist/src/pieces/manager.d.ts +0 -22
  171. package/dist/src/pieces/manager.js +0 -43
  172. package/dist/src/pieces/manager.js.map +0 -1
  173. package/dist/src/pieces/manager.test.d.ts +0 -1
  174. package/dist/src/pieces/manager.test.js +0 -72
  175. package/dist/src/pieces/manager.test.js.map +0 -1
  176. package/dist/src/pieces/utils/frontmatter.d.ts +0 -33
  177. package/dist/src/pieces/utils/frontmatter.js +0 -69
  178. package/dist/src/pieces/utils/frontmatter.js.map +0 -1
  179. package/dist/src/pieces/utils/frontmatter.test.d.ts +0 -1
  180. package/dist/src/pieces/utils/frontmatter.test.js +0 -185
  181. package/dist/src/pieces/utils/frontmatter.test.js.map +0 -1
  182. package/dist/src/pieces/utils/markdown.d.ts +0 -10
  183. package/dist/src/pieces/utils/markdown.js +0 -9
  184. package/dist/src/pieces/utils/markdown.js.map +0 -1
  185. package/dist/src/pieces/utils/markdown.test.d.ts +0 -1
  186. package/dist/src/pieces/utils/markdown.test.js +0 -38
  187. package/dist/src/pieces/utils/markdown.test.js.map +0 -1
  188. package/dist/src/pieces/utils/piece.d.ts +0 -13
  189. package/dist/src/pieces/utils/piece.fixtures.d.ts +0 -19
  190. package/dist/src/pieces/utils/piece.fixtures.js +0 -39
  191. package/dist/src/pieces/utils/piece.fixtures.js.map +0 -1
  192. package/dist/src/pieces/utils/piece.js +0 -142
  193. package/dist/src/pieces/utils/piece.js.map +0 -1
  194. package/dist/src/pieces/utils/piece.test.d.ts +0 -1
  195. package/dist/src/pieces/utils/piece.test.js +0 -333
  196. package/dist/src/pieces/utils/piece.test.js.map +0 -1
  197. package/dist/src/pieces/utils.d.ts +0 -10
  198. package/dist/src/pieces/utils.js +0 -101
  199. package/dist/src/pieces/utils.js.map +0 -1
  200. package/dist/src/pieces/utils.test.d.ts +0 -1
  201. package/dist/src/pieces/utils.test.js +0 -372
  202. package/dist/src/pieces/utils.test.js.map +0 -1
  203. package/dist/src/storage/abstract.d.ts +0 -19
  204. package/dist/src/storage/abstract.js +0 -4
  205. package/dist/src/storage/abstract.js.map +0 -1
  206. package/dist/src/storage/fs.d.ts +0 -22
  207. package/dist/src/storage/fs.js +0 -84
  208. package/dist/src/storage/fs.js.map +0 -1
  209. package/dist/src/storage/fs.test.d.ts +0 -1
  210. package/dist/src/storage/fs.test.js +0 -222
  211. package/dist/src/storage/fs.test.js.map +0 -1
  212. package/dist/src/storage/index.d.ts +0 -5
  213. package/dist/src/storage/index.js +0 -4
  214. package/dist/src/storage/index.js.map +0 -1
  215. package/dist/src/storage/storage.mock.d.ts +0 -2
  216. package/dist/src/storage/storage.mock.js +0 -18
  217. package/dist/src/storage/storage.mock.js.map +0 -1
  218. package/dist/src/storage/types.d.ts +0 -6
  219. package/dist/src/storage/types.js +0 -2
  220. package/dist/src/storage/types.js.map +0 -1
  221. package/dist/src/storage/webdav.d.ts +0 -25
  222. package/dist/src/storage/webdav.js +0 -65
  223. package/dist/src/storage/webdav.js.map +0 -1
  224. package/dist/src/storage/webdav.test.d.ts +0 -1
  225. package/dist/src/storage/webdav.test.js +0 -194
  226. package/dist/src/storage/webdav.test.js.map +0 -1
  227. package/dist/tsconfig.tsbuildinfo +0 -1
  228. package/dist/vite.config.d.ts +0 -2
  229. package/dist/vite.config.js +0 -36
  230. package/dist/vite.config.js.map +0 -1
@@ -1,39 +0,0 @@
1
- import { Kysely } from 'kysely';
2
- import { PiecesItemsInsertable, PiecesItemsUpdateable } from '../database/tables/pieces_items.schema.js';
3
- import { LuzzleTables } from '../database/tables/index.js';
4
- declare function updateItem(db: Kysely<LuzzleTables>, file: string, data: PiecesItemsUpdateable): Promise<void>;
5
- declare function insertItem(db: Kysely<LuzzleTables>, data: PiecesItemsInsertable): Promise<{
6
- id: string;
7
- file_path: string;
8
- type: string;
9
- date_added: number;
10
- date_updated: number | null;
11
- note_markdown: string;
12
- frontmatter_json: string;
13
- assets_json_array: string | undefined;
14
- } | undefined>;
15
- declare function selectItem(db: Kysely<LuzzleTables>, file?: string): Promise<{
16
- id: string;
17
- file_path: string;
18
- type: string;
19
- date_added: number;
20
- date_updated: number | null;
21
- note_markdown: string;
22
- frontmatter_json: string;
23
- assets_json_array: string | undefined;
24
- } | undefined>;
25
- declare function selectItems(db: Kysely<LuzzleTables>, where?: {
26
- type?: string;
27
- asset?: string;
28
- }): Promise<{
29
- id: string;
30
- file_path: string;
31
- type: string;
32
- date_added: number;
33
- date_updated: number | null;
34
- assets_json_array: string | undefined;
35
- }[]>;
36
- declare function selectItemAssets(db: Kysely<LuzzleTables>): Promise<string[]>;
37
- declare function deleteItem(db: Kysely<LuzzleTables>, file: string): Promise<void>;
38
- declare function deleteItems(db: Kysely<LuzzleTables>, files: string[]): Promise<void>;
39
- export { deleteItem, deleteItems, selectItem, selectItems, updateItem, insertItem, selectItemAssets };
@@ -1,45 +0,0 @@
1
- import { sql } from 'kysely';
2
- async function updateItem(db, file, data) {
3
- await db.updateTable('pieces_items').set(data).where('file_path', '=', file).execute();
4
- }
5
- async function insertItem(db, data) {
6
- const insert = await db
7
- .insertInto('pieces_items')
8
- .values(data)
9
- .returningAll()
10
- .executeTakeFirst();
11
- return insert;
12
- }
13
- async function selectItem(db, file) {
14
- let query = db.selectFrom('pieces_items').selectAll();
15
- if (file) {
16
- query = query.where('file_path', '=', file);
17
- }
18
- return await query.executeTakeFirst();
19
- }
20
- async function selectItems(db, where) {
21
- let query = db
22
- .selectFrom('pieces_items')
23
- .select(['type', 'file_path', 'assets_json_array', 'id', 'date_added', 'date_updated']);
24
- if (where?.type) {
25
- query = query.where('type', '=', where.type);
26
- }
27
- if (where?.asset) {
28
- query = query.where('assets_json_array', 'like', `%${where.asset}%`);
29
- }
30
- return await query.execute();
31
- }
32
- async function selectItemAssets(db) {
33
- const select = sql `select distinct assets.value as asset from pieces_items, json_each(assets_json_array) assets where assets.value is not null`;
34
- const query = select.compile(db);
35
- const results = await db.executeQuery(query);
36
- return results.rows.map((row) => row.asset);
37
- }
38
- async function deleteItem(db, file) {
39
- await db.deleteFrom('pieces_items').where('file_path', '=', file).execute();
40
- }
41
- async function deleteItems(db, files) {
42
- await db.deleteFrom('pieces_items').where('file_path', 'in', files).execute();
43
- }
44
- export { deleteItem, deleteItems, selectItem, selectItems, updateItem, insertItem, selectItemAssets };
45
- //# sourceMappingURL=items.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"items.js","sourceRoot":"","sources":["../../../src/pieces/items.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,GAAG,EAAE,MAAM,QAAQ,CAAA;AAOpC,KAAK,UAAU,UAAU,CAAC,EAAwB,EAAE,IAAY,EAAE,IAA2B;IAC5F,MAAM,EAAE,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,OAAO,EAAE,CAAA;AACvF,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,EAAwB,EAAE,IAA2B;IAC9E,MAAM,MAAM,GAAG,MAAM,EAAE;SACrB,UAAU,CAAC,cAAc,CAAC;SAC1B,MAAM,CAAC,IAAa,CAAC;SACrB,YAAY,EAAE;SACd,gBAAgB,EAAE,CAAA;IAEpB,OAAO,MAAM,CAAA;AACd,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,EAAwB,EAAE,IAAa;IAChE,IAAI,KAAK,GAAG,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,SAAS,EAAE,CAAA;IAErD,IAAI,IAAI,EAAE,CAAC;QACV,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,GAAG,EAAE,IAAI,CAAC,CAAA;IAC5C,CAAC;IAED,OAAO,MAAM,KAAK,CAAC,gBAAgB,EAAE,CAAA;AACtC,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,EAAwB,EAAE,KAAyC;IAC7F,IAAI,KAAK,GAAG,EAAE;SACZ,UAAU,CAAC,cAAc,CAAC;SAC1B,MAAM,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,mBAAmB,EAAE,IAAI,EAAE,YAAY,EAAE,cAAc,CAAC,CAAC,CAAA;IAExF,IAAI,KAAK,EAAE,IAAI,EAAE,CAAC;QACjB,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAA;IAC7C,CAAC;IAED,IAAI,KAAK,EAAE,KAAK,EAAE,CAAC;QAClB,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,mBAAmB,EAAE,MAAM,EAAE,IAAI,KAAK,CAAC,KAAK,GAAG,CAAC,CAAA;IACrE,CAAC;IAED,OAAO,MAAM,KAAK,CAAC,OAAO,EAAE,CAAA;AAC7B,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,EAAwB;IACvD,MAAM,MAAM,GAAG,GAAG,CAEhB,6HAA6H,CAAA;IAC/H,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;IAChC,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,CAAA;IAE5C,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;AAC5C,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,EAAwB,EAAE,IAAY;IAC/D,MAAM,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,OAAO,EAAE,CAAA;AAC5E,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,EAAwB,EAAE,KAAe;IACnE,MAAM,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,OAAO,EAAE,CAAA;AAC9E,CAAC;AAED,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,gBAAgB,EAAE,CAAA"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,100 +0,0 @@
1
- import { describe, expect, test, vi, afterEach } from 'vitest';
2
- import { mockKysely } from '../database/database.mock.js';
3
- import * as items from './items.js';
4
- import { addColumnsFromPieceSchema } from './json.schema.js';
5
- import { sql } from 'kysely';
6
- vi.mock('./json.schema.ts');
7
- vi.mock('kysely');
8
- const mocks = {
9
- addColumnsFromPieceSchema: vi.mocked(addColumnsFromPieceSchema),
10
- sql: vi.mocked(sql),
11
- };
12
- const spies = {};
13
- describe('src/pieces/items.ts', () => {
14
- afterEach(() => {
15
- Object.values(mocks).forEach((mock) => {
16
- mock.mockReset();
17
- });
18
- Object.keys(spies).forEach((key) => {
19
- spies[key].mockRestore();
20
- delete spies[key];
21
- });
22
- });
23
- test('selectItem', async () => {
24
- const kysely = mockKysely();
25
- const file = 'file';
26
- await items.selectItem(kysely.db, file);
27
- expect(kysely.db.selectFrom).toHaveBeenCalled();
28
- expect(kysely.queries.where).toHaveBeenCalledWith('file_path', '=', file);
29
- });
30
- test('updateItem', async () => {
31
- const kysely = mockKysely();
32
- const file = 'file';
33
- const data = { id: 'id', title: 'title' };
34
- await items.updateItem(kysely.db, file, data);
35
- expect(kysely.db.updateTable).toHaveBeenCalled();
36
- expect(kysely.queries.where).toHaveBeenCalledWith('file_path', '=', file);
37
- });
38
- test('insertItem', async () => {
39
- const kysely = mockKysely();
40
- const data = {
41
- file_path: 'path',
42
- type: 'books',
43
- id: 'one',
44
- frontmatter_json: '',
45
- note_markdown: '',
46
- };
47
- await items.insertItem(kysely.db, data);
48
- expect(kysely.db.insertInto).toHaveBeenCalled();
49
- expect(kysely.queries.values).toHaveBeenCalledWith(data);
50
- });
51
- test('selectItems', async () => {
52
- const kysely = mockKysely();
53
- await items.selectItems(kysely.db);
54
- expect(kysely.db.selectFrom).toHaveBeenCalled();
55
- expect(kysely.queries.where).not.toHaveBeenCalled();
56
- expect(kysely.queries.select).toHaveBeenCalledOnce();
57
- });
58
- test('selectItems with type', async () => {
59
- const kysely = mockKysely();
60
- const type = 'books';
61
- await items.selectItems(kysely.db, { type });
62
- expect(kysely.db.selectFrom).toHaveBeenCalled();
63
- expect(kysely.queries.where).toHaveBeenCalledWith('type', '=', type);
64
- expect(kysely.queries.select).toHaveBeenCalledOnce();
65
- });
66
- test('selectItems with asset', async () => {
67
- const kysely = mockKysely();
68
- const asset = 'file1';
69
- await items.selectItems(kysely.db, { asset });
70
- expect(kysely.db.selectFrom).toHaveBeenCalled();
71
- expect(kysely.queries.where).toHaveBeenCalledWith('assets_json_array', 'like', expect.any(String));
72
- expect(kysely.queries.select).toHaveBeenCalledOnce();
73
- });
74
- test('selectItemAssets', async () => {
75
- const kysely = mockKysely();
76
- const asset = 'file1';
77
- mocks.sql.mockReturnValueOnce({ compile: vi.fn() });
78
- spies.executeQuery = vi
79
- .spyOn(kysely.db, 'executeQuery')
80
- .mockResolvedValue({ rows: [{ asset }] });
81
- const assets = await items.selectItemAssets(kysely.db);
82
- expect(kysely.db.executeQuery).toHaveBeenCalled();
83
- expect(assets).toEqual([asset]);
84
- });
85
- test('deleteItem', async () => {
86
- const kysely = mockKysely();
87
- const file = 'file';
88
- await items.deleteItem(kysely.db, file);
89
- expect(kysely.db.deleteFrom).toHaveBeenCalled();
90
- expect(kysely.queries.where).toHaveBeenCalledWith('file_path', '=', file);
91
- });
92
- test('deleteItems', async () => {
93
- const kysely = mockKysely();
94
- const files = ['file1', 'file2'];
95
- await items.deleteItems(kysely.db, files);
96
- expect(kysely.db.deleteFrom).toHaveBeenCalled();
97
- expect(kysely.queries.where).toHaveBeenCalledWith('file_path', 'in', files);
98
- });
99
- });
100
- //# sourceMappingURL=items.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"items.test.js","sourceRoot":"","sources":["../../../src/pieces/items.test.ts"],"names":[],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- import { PieceFrontmatter } from './utils/frontmatter.js';
2
- import { JSONSchemaType } from 'ajv/dist/types/json-schema.js';
3
- import { CreateTableBuilder } from 'kysely';
4
- declare function jsonToPieceSchema(json: string): JSONSchemaType<PieceFrontmatter>;
5
- declare function addColumnsFromPieceSchema<T>(tableBuilder: CreateTableBuilder<string, never>, schema: JSONSchemaType<T>): CreateTableBuilder<string, never>;
6
- export { jsonToPieceSchema, addColumnsFromPieceSchema };
@@ -1,58 +0,0 @@
1
- import { sql } from 'kysely';
2
- function pieceSchemaFieldTypeToColumnType(type) {
3
- switch (type) {
4
- case 'string':
5
- return 'text';
6
- case 'integer':
7
- return 'integer';
8
- case 'boolean':
9
- return 'boolean';
10
- default:
11
- throw new Error(`json schema type ${type} not supported in sqlite`);
12
- }
13
- }
14
- function jsonToPieceSchema(json) {
15
- try {
16
- return JSON.parse(json);
17
- }
18
- catch (error) {
19
- throw new Error(`Error parsing schema: ${error}`);
20
- }
21
- }
22
- function addColumnsFromPieceSchema(tableBuilder, schema) {
23
- const properties = schema.properties;
24
- const fields = Object.keys(properties);
25
- const requiredFields = schema.required || [];
26
- tableBuilder = tableBuilder.addColumn('id', 'text', (col) => col.primaryKey().notNull());
27
- tableBuilder = tableBuilder.addColumn('slug', 'text', (col) => col.notNull().unique());
28
- tableBuilder = tableBuilder.addColumn('date_added', 'datetime', (col) => col.defaultTo(sql `((julianday('now') - 2440587.5)*86400000)`).notNull());
29
- tableBuilder = tableBuilder.addColumn('date_updated', 'datetime');
30
- tableBuilder = tableBuilder.addColumn('note', 'text');
31
- fields.forEach((key) => {
32
- const field = properties[key];
33
- const required = requiredFields.includes(key);
34
- if ('type' in field) {
35
- const type = field.type === 'array' ? field.items.type : field.type;
36
- const format = field.type === 'array' ? field.items.format : field.format;
37
- const columnType = pieceSchemaFieldTypeToColumnType(type);
38
- const tableColumnType = format === 'date' ? 'datetime' : columnType;
39
- tableBuilder = tableBuilder.addColumn(key, tableColumnType, (col) => {
40
- if (required) {
41
- col = col.notNull();
42
- }
43
- if (field.enum) {
44
- const values = field.enum.map((value) => `'${value}'`).join(', ');
45
- const constraint = `${key} IN (${values})`;
46
- col = col.check(sql.raw(constraint));
47
- }
48
- if (field.default) {
49
- col = col.defaultTo(field.default);
50
- }
51
- return col;
52
- });
53
- }
54
- });
55
- return tableBuilder;
56
- }
57
- export { jsonToPieceSchema, addColumnsFromPieceSchema };
58
- //# sourceMappingURL=json.schema.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"json.schema.js","sourceRoot":"","sources":["../../../src/pieces/json.schema.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,27 +0,0 @@
1
- import { describe, afterEach, test, vi, expect } from 'vitest';
2
- import { jsonToPieceSchema } from './json.schema.js';
3
- import { existsSync, readFileSync } from 'fs';
4
- vi.mock('fs');
5
- const spies = {};
6
- const mocks = {
7
- existsSync: vi.mocked(existsSync),
8
- readFileSync: vi.mocked(readFileSync),
9
- };
10
- describe('./pieces/json.schema.ts', () => {
11
- afterEach(() => {
12
- Object.values(mocks).forEach((mock) => {
13
- mock.mockReset();
14
- });
15
- Object.keys(spies).forEach((key) => {
16
- spies[key].mockRestore();
17
- delete spies[key];
18
- });
19
- });
20
- test('jsonToPieceSchema', () => {
21
- const jsonObj = { type: 'object' };
22
- const json = JSON.stringify(jsonObj);
23
- const schema = jsonToPieceSchema(json);
24
- expect(schema).toEqual(jsonObj);
25
- });
26
- });
27
- //# sourceMappingURL=json.schema.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"json.schema.test.js","sourceRoot":"","sources":["../../../src/pieces/json.schema.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAgB,MAAM,QAAQ,CAAA;AAC5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AACpD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,IAAI,CAAA;AAE7C,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAEb,MAAM,KAAK,GAAoC,EAAE,CAAA;AAEjD,MAAM,KAAK,GAAG;IACb,UAAU,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC;IACjC,YAAY,EAAE,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC;CACrC,CAAA;AAED,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;IACxC,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,mBAAmB,EAAE,GAAG,EAAE;QAC9B,MAAM,OAAO,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAA;QAClC,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;QAEpC,MAAM,MAAM,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAA;QAEtC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IAChC,CAAC,CAAC,CAAA;AACH,CAAC,CAAC,CAAA"}
@@ -1,22 +0,0 @@
1
- import { Kysely } from 'kysely';
2
- import { LuzzleTables } from '../database/tables/index.js';
3
- import { JSONSchemaType } from 'ajv';
4
- import { PieceFrontmatter } from './utils/frontmatter.js';
5
- declare function addPiece(db: Kysely<LuzzleTables>, name: string, schema: JSONSchemaType<PieceFrontmatter>): Promise<void>;
6
- declare function updatePiece(db: Kysely<LuzzleTables>, name: string, schema: JSONSchemaType<PieceFrontmatter>): Promise<void>;
7
- declare function getPiece(db: Kysely<LuzzleTables>, name: string): Promise<{
8
- schema: JSONSchemaType<PieceFrontmatter>;
9
- name: string;
10
- id: string;
11
- date_added: number;
12
- date_updated: number | null | undefined;
13
- } | null>;
14
- declare function getPieces(db: Kysely<LuzzleTables>): Promise<{
15
- name: string;
16
- id: string;
17
- date_added: number;
18
- date_updated: number | null | undefined;
19
- schema: string;
20
- }[]>;
21
- declare function deletePiece(db: Kysely<LuzzleTables>, name: string): Promise<void>;
22
- export { addPiece, updatePiece, getPiece, deletePiece, getPieces };
@@ -1,43 +0,0 @@
1
- import cuid2 from '@paralleldrive/cuid2';
2
- async function addPiece(db, name, schema) {
3
- await db
4
- .insertInto('pieces_manager')
5
- .values({
6
- name,
7
- schema: JSON.stringify(schema),
8
- id: cuid2.createId(),
9
- })
10
- .execute();
11
- }
12
- async function updatePiece(db, name, schema) {
13
- await db
14
- .updateTable('pieces_manager')
15
- .set({
16
- schema: JSON.stringify(schema),
17
- date_updated: new Date().getTime(),
18
- })
19
- .where('name', '=', name)
20
- .execute();
21
- }
22
- async function getPiece(db, name) {
23
- const managedPiece = await db
24
- .selectFrom('pieces_manager')
25
- .selectAll()
26
- .where('name', '=', name)
27
- .executeTakeFirst();
28
- if (managedPiece) {
29
- return {
30
- ...managedPiece,
31
- schema: JSON.parse(managedPiece.schema),
32
- };
33
- }
34
- return null;
35
- }
36
- async function getPieces(db) {
37
- return await db.selectFrom('pieces_manager').selectAll().execute();
38
- }
39
- async function deletePiece(db, name) {
40
- await db.deleteFrom('pieces_manager').where('name', '=', name).execute();
41
- }
42
- export { addPiece, updatePiece, getPiece, deletePiece, getPieces };
43
- //# sourceMappingURL=manager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../../src/pieces/manager.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,sBAAsB,CAAA;AAExC,KAAK,UAAU,QAAQ,CACtB,EAAwB,EACxB,IAAY,EACZ,MAAwC;IAExC,MAAM,EAAE;SACN,UAAU,CAAC,gBAAgB,CAAC;SAC5B,MAAM,CAAC;QACP,IAAI;QACJ,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;QAC9B,EAAE,EAAE,KAAK,CAAC,QAAQ,EAAE;KACpB,CAAC;SACD,OAAO,EAAE,CAAA;AACZ,CAAC;AAED,KAAK,UAAU,WAAW,CACzB,EAAwB,EACxB,IAAY,EACZ,MAAwC;IAExC,MAAM,EAAE;SACN,WAAW,CAAC,gBAAgB,CAAC;SAC7B,GAAG,CAAC;QACJ,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;QAC9B,YAAY,EAAE,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE;KAClC,CAAC;SACD,KAAK,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC;SACxB,OAAO,EAAE,CAAA;AACZ,CAAC;AAED,KAAK,UAAU,QAAQ,CAAC,EAAwB,EAAE,IAAY;IAC7D,MAAM,YAAY,GAAG,MAAM,EAAE;SAC3B,UAAU,CAAC,gBAAgB,CAAC;SAC5B,SAAS,EAAE;SACX,KAAK,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC;SACxB,gBAAgB,EAAE,CAAA;IAEpB,IAAI,YAAY,EAAE,CAAC;QAClB,OAAO;YACN,GAAG,YAAY;YACf,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAqC;SAC3E,CAAA;IACF,CAAC;IAED,OAAO,IAAI,CAAA;AACZ,CAAC;AAED,KAAK,UAAU,SAAS,CAAC,EAAwB;IAChD,OAAO,MAAM,EAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,CAAA;AACnE,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,EAAwB,EAAE,IAAY;IAChE,MAAM,EAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,OAAO,EAAE,CAAA;AACzE,CAAC;AAED,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,CAAA"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,72 +0,0 @@
1
- import { describe, expect, test, vi, afterEach } from 'vitest';
2
- import { mockKysely } from '../database/database.mock.js';
3
- import * as manager from './manager.js';
4
- import { makeSchema } from './utils/piece.fixtures.js';
5
- vi.mock('./items.js');
6
- const mocks = {
7
- empty: vi.fn(),
8
- };
9
- const spies = {};
10
- describe('src/pieces/manager.ts', () => {
11
- afterEach(() => {
12
- Object.values(mocks).forEach((mock) => {
13
- mock.mockReset();
14
- });
15
- Object.keys(spies).forEach((key) => {
16
- spies[key].mockRestore();
17
- delete spies[key];
18
- });
19
- });
20
- test('addPiece', async () => {
21
- const kysely = mockKysely();
22
- const schema = makeSchema();
23
- await manager.addPiece(kysely.db, 'name', schema);
24
- expect(kysely.db.insertInto).toHaveBeenCalled();
25
- });
26
- test('updatePiece', async () => {
27
- const kysely = mockKysely();
28
- const schema = makeSchema();
29
- const name = 'name';
30
- await manager.updatePiece(kysely.db, name, schema);
31
- expect(kysely.db.updateTable).toHaveBeenCalled();
32
- expect(kysely.queries.where).toHaveBeenCalledWith('name', '=', name);
33
- });
34
- test('getPiece', async () => {
35
- const kysely = mockKysely();
36
- const name = 'name';
37
- const schema = makeSchema();
38
- const managedPiece = {
39
- name,
40
- schema: JSON.stringify(schema),
41
- };
42
- kysely.queries.executeTakeFirst.mockResolvedValueOnce(managedPiece);
43
- const piece = await manager.getPiece(kysely.db, name);
44
- expect(piece).toEqual({
45
- ...managedPiece,
46
- schema,
47
- });
48
- });
49
- test('getPiece returns null', async () => {
50
- const kysely = mockKysely();
51
- const name = 'name';
52
- kysely.queries.executeTakeFirst.mockResolvedValueOnce(undefined);
53
- const piece = await manager.getPiece(kysely.db, name);
54
- expect(piece).toBeNull();
55
- });
56
- test('getPieces', async () => {
57
- const kysely = mockKysely();
58
- const managedPieces = [{ name: 'name' }];
59
- kysely.queries.execute.mockResolvedValueOnce(managedPieces);
60
- const pieces = await manager.getPieces(kysely.db);
61
- expect(kysely.db.selectFrom).toHaveBeenCalled();
62
- expect(pieces).toEqual(managedPieces);
63
- });
64
- test('deletePiece', async () => {
65
- const kysely = mockKysely();
66
- const name = 'name';
67
- await manager.deletePiece(kysely.db, name);
68
- expect(kysely.db.deleteFrom).toHaveBeenCalled();
69
- expect(kysely.queries.where).toHaveBeenCalledWith('name', '=', name);
70
- });
71
- });
72
- //# sourceMappingURL=manager.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"manager.test.js","sourceRoot":"","sources":["../../../src/pieces/manager.test.ts"],"names":[],"mappings":"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"}
@@ -1,33 +0,0 @@
1
- import { JSONSchemaType } from "ajv";
2
- type PieceFrontMatterValue = string | number | boolean | string[] | number[] | boolean[];
3
- type PieceFrontmatter = {
4
- [key: string]: PieceFrontMatterValue;
5
- };
6
- type PieceFrontmatterSchema<M extends PieceFrontmatter> = JSONSchemaType<M>;
7
- type PieceFrontmatterSchemaFieldScalar = {
8
- name: string;
9
- type: 'string' | 'boolean' | 'integer';
10
- format?: 'asset' | 'date' | 'comma-separated' | 'paragraph';
11
- nullable?: boolean;
12
- pattern?: string;
13
- enum?: string[] | number[];
14
- examples?: Array<string | number | boolean>;
15
- default?: string | number | boolean;
16
- };
17
- type PieceFrontmatterSchemaFieldList = {
18
- name: string;
19
- type: 'array';
20
- format?: undefined;
21
- pattern?: undefined;
22
- examples?: undefined;
23
- default?: undefined;
24
- nullable?: boolean;
25
- enum?: string[] | number[];
26
- items: Omit<PieceFrontmatterSchemaField, 'name'>;
27
- };
28
- type PieceFrontmatterSchemaField = PieceFrontmatterSchemaFieldScalar | PieceFrontmatterSchemaFieldList;
29
- 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;
32
- declare function initializePieceFrontMatter<M extends PieceFrontmatter>(schema: PieceFrontmatterSchema<M>, minimal?: boolean): M;
33
- export { type PieceFrontmatter, type PieceFrontmatterSchemaField, type PieceFrontmatterSchema, getPieceFrontmatterSchemaFields, pieceFrontmatterValueToDatabaseValue, databaseValueToPieceFrontmatterValue, initializePieceFrontMatter, };
@@ -1,69 +0,0 @@
1
- function getPieceFrontmatterSchemaFields(schema) {
2
- return Object.keys(schema.properties).map((key) => {
3
- 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 };
6
- });
7
- }
8
- function pieceFrontmatterValueToDatabaseValue(value, field) {
9
- if (value === undefined) {
10
- return null;
11
- }
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(',');
23
- }
24
- return value;
25
- }
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));
39
- }
40
- else if (field.type === 'integer') {
41
- return Number(value);
42
- }
43
- return value;
44
- }
45
- function initializePieceFrontMatter(schema, minimal = false) {
46
- 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;
54
- const example = examples?.[0];
55
- const hasInitialValue = def !== undefined || example !== undefined;
56
- if (required || (!minimal && hasInitialValue)) {
57
- const initialValue = def !== undefined ? def : example;
58
- if (initialValue !== undefined) {
59
- frontmatter[name] = isArray ? [initialValue] : initialValue;
60
- }
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`);
63
- }
64
- }
65
- }
66
- return frontmatter;
67
- }
68
- export { getPieceFrontmatterSchemaFields, pieceFrontmatterValueToDatabaseValue, databaseValueToPieceFrontmatterValue, initializePieceFrontMatter, };
69
- //# sourceMappingURL=frontmatter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"frontmatter.js","sourceRoot":"","sources":["../../../../src/pieces/utils/frontmatter.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export {};