@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,333 +0,0 @@
1
- import { createReadStream, existsSync } from 'fs';
2
- import { copyFile, stat } from 'fs/promises'; // Direct import matching source
3
- import { describe, expect, test, vi, afterEach, beforeAll } from 'vitest';
4
- import { createHash, randomBytes } from 'crypto';
5
- import { PassThrough, Readable } from 'stream';
6
- import got from 'got';
7
- import path from 'path';
8
- import { ASSETS_DIRECTORY } from '../assets.js';
9
- import { calculateHashFromFile, makePieceAttachment, makePieceValue, detectStreamFileType } from './piece.js';
10
- import { makeStorage } from '../../storage/storage.mock.js';
11
- import { makeMarkdownSample } from './piece.fixtures.js';
12
- vi.mock('fs/promises');
13
- vi.mock('crypto');
14
- vi.mock('fs');
15
- vi.mock('got');
16
- const mocks = {
17
- copyFile: vi.mocked(copyFile),
18
- stat: vi.mocked(stat),
19
- existsSync: vi.mocked(existsSync),
20
- createReadStream: vi.mocked(createReadStream),
21
- createHash: vi.mocked(createHash),
22
- randomBytes: vi.mocked(randomBytes),
23
- gotStream: vi.mocked(got.stream),
24
- };
25
- const spies = {};
26
- let fullPngBuffer;
27
- describe('pieces/utils/piece.ts', () => {
28
- beforeAll(async () => {
29
- const { readFile } = await vi.importActual('fs/promises');
30
- const assetPath = path.resolve('test/assets/favicon.png');
31
- fullPngBuffer = await readFile(assetPath);
32
- });
33
- afterEach(() => {
34
- Object.values(mocks).forEach((mock) => {
35
- mock.mockReset();
36
- });
37
- Object.keys(spies).forEach((key) => {
38
- spies[key].mockRestore();
39
- delete spies[key];
40
- });
41
- vi.restoreAllMocks();
42
- });
43
- test('calculateHashFromFile', async () => {
44
- const data = 'data';
45
- const mockUpdate = vi.fn();
46
- const mockDigest = vi.fn().mockReturnValue(data);
47
- const mockReadStream = new PassThrough();
48
- mocks.createReadStream.mockReturnValueOnce(mockReadStream);
49
- mocks.createHash.mockReturnValueOnce({
50
- update: mockUpdate,
51
- digest: mockDigest,
52
- });
53
- const hashPromise = calculateHashFromFile(mockReadStream);
54
- mockReadStream.emit('data', data);
55
- mockReadStream.emit('end');
56
- const hash = await hashPromise;
57
- expect(mockUpdate).toHaveBeenCalled();
58
- expect(mockDigest).toHaveBeenCalledWith('hex');
59
- expect(hash).toEqual(data);
60
- });
61
- test('calculateHashFromFile error', async () => {
62
- const data = 'data';
63
- const mockUpdate = vi.fn();
64
- const mockDigest = vi.fn().mockReturnValue(data);
65
- const mockReadStream = new PassThrough();
66
- mocks.createReadStream.mockReturnValueOnce(mockReadStream);
67
- mocks.createHash.mockReturnValueOnce({
68
- update: mockUpdate,
69
- digest: mockDigest,
70
- });
71
- spies.consoleError = vi.spyOn(console, 'error');
72
- const hashPromise = calculateHashFromFile(mockReadStream);
73
- mockReadStream.emit('error', new Error('error'));
74
- await expect(hashPromise).rejects.toThrowError();
75
- expect(spies.consoleError).toHaveBeenCalled();
76
- });
77
- test('detectStreamFileType should correctly identify PNG from full buffer', async () => {
78
- const stream = Readable.from([fullPngBuffer]);
79
- const result = await detectStreamFileType(stream);
80
- expect(result.type).toEqual({ ext: 'png', mime: 'image/png' });
81
- const resultChunks = [];
82
- for await (const chunk of result.stream) {
83
- resultChunks.push(chunk);
84
- }
85
- const finalBuffer = Buffer.concat(resultChunks);
86
- expect(finalBuffer.toString('hex')).toEqual(fullPngBuffer.toString('hex'));
87
- });
88
- test('detectStreamFileType with string chunks (non-Buffer)', async () => {
89
- const stream = Readable.from(['hello ', 'world']);
90
- const result = await detectStreamFileType(stream);
91
- expect(result.type).toBeUndefined();
92
- const resultChunks = [];
93
- for await (const chunk of result.stream) {
94
- resultChunks.push(chunk);
95
- }
96
- const finalString = Buffer.concat(resultChunks).toString();
97
- expect(finalString).toEqual('hello world');
98
- });
99
- test('detectStreamFileType with custom maxBytes and multiple chunks', async () => {
100
- const chunk1 = Buffer.from('hello ');
101
- const chunk2 = Buffer.from('world');
102
- const chunk3 = Buffer.from('!');
103
- const stream = Readable.from([chunk1, chunk2, chunk3]);
104
- const result = await detectStreamFileType(stream, 5);
105
- const resultChunks = [];
106
- for await (const chunk of result.stream) {
107
- resultChunks.push(chunk);
108
- }
109
- const finalString = Buffer.concat(resultChunks).toString();
110
- expect(finalString).toEqual('hello world!');
111
- });
112
- test('makePieceValue', async () => {
113
- const field = { name: 'title', type: 'string' };
114
- const value = 'new title';
115
- const pieceValue = await makePieceValue(field, value);
116
- expect(pieceValue).toEqual(value);
117
- });
118
- test('makePieceValue array', async () => {
119
- const field = {
120
- name: 'title',
121
- type: 'array',
122
- items: { type: 'string' },
123
- };
124
- const value = 'new title';
125
- const pieceValue = await makePieceValue(field, value);
126
- expect(pieceValue).toEqual(value);
127
- });
128
- test('makePieceValue boolean', async () => {
129
- const field = { name: 'title', type: 'boolean' };
130
- const pieceValueT = await makePieceValue(field, 'true');
131
- const pieceValueF = await makePieceValue(field, 'false');
132
- expect(pieceValueT).toEqual(true);
133
- expect(pieceValueF).toEqual(false);
134
- });
135
- test('makePieceValue integer', async () => {
136
- const field = { name: 'title', type: 'integer' };
137
- const pieceValue = await makePieceValue(field, '101');
138
- expect(pieceValue).toEqual(101);
139
- });
140
- test('makePieceValue path asset', async () => {
141
- const field = { name: 'title', type: 'string', format: 'asset' };
142
- const asset = '/path/to/asset';
143
- const readable = new PassThrough();
144
- mocks.createReadStream.mockReturnValueOnce(readable);
145
- mocks.stat.mockResolvedValueOnce({ isFile: () => true }); // Properly mock resolved value
146
- const pieceValuePromise = makePieceValue(field, asset);
147
- process.nextTick(() => {
148
- readable.emit('open');
149
- });
150
- const pieceValue = await pieceValuePromise;
151
- expect(pieceValue).toEqual(readable);
152
- });
153
- test('makePieceValue url asset', async () => {
154
- const field = { name: 'title', type: 'string', format: 'asset' };
155
- const asset = 'https://path/to/asset';
156
- const readable = new PassThrough();
157
- mocks.gotStream.mockReturnValueOnce(readable);
158
- const pieceValuePromise = makePieceValue(field, asset);
159
- readable.emit('response', { statusCode: 200 });
160
- const pieceValue = await pieceValuePromise;
161
- expect(pieceValue).toEqual(readable);
162
- });
163
- test('makePieceValue url asset bad status Code', async () => {
164
- const field = { name: 'title', type: 'string', format: 'asset' };
165
- const asset = 'https://path/to/asset';
166
- const readable = new PassThrough();
167
- mocks.gotStream.mockReturnValueOnce(readable);
168
- const pieceValuePromise = makePieceValue(field, asset);
169
- readable.emit('response', { statusCode: 500 });
170
- await expect(pieceValuePromise).rejects.toThrow();
171
- });
172
- test('makePieceValue bad url asset', async () => {
173
- const field = { name: 'title', type: 'string', format: 'asset' };
174
- const asset = 'https://path/to/asset';
175
- const readable = new PassThrough();
176
- mocks.gotStream.mockReturnValueOnce(readable);
177
- const pieceValuePromise = makePieceValue(field, asset);
178
- readable.emit('error', new Error('test error'));
179
- await expect(pieceValuePromise).rejects.toThrow('test error');
180
- });
181
- test('makePieceValue bad file asset', async () => {
182
- const field = { name: 'title', type: 'string', format: 'asset' };
183
- const asset = '/path/to/bad/file.jpg';
184
- const readable = new PassThrough();
185
- mocks.createReadStream.mockReturnValueOnce(readable);
186
- mocks.stat.mockResolvedValueOnce({ isFile: () => true });
187
- spies.consoleError = vi.spyOn(console, 'error');
188
- const pieceValuePromise = makePieceValue(field, asset);
189
- // Emit error synchronously or ensure the promise chain catches it
190
- setTimeout(() => {
191
- readable.emit('error', new Error('test file error'));
192
- }, 0);
193
- await expect(pieceValuePromise).rejects.toThrow('test file error');
194
- expect(spies.consoleError).toHaveBeenCalled();
195
- });
196
- test('makePieceValue existing asset', async () => {
197
- const field = { name: 'title', type: 'string', format: 'asset' };
198
- const asset = `${ASSETS_DIRECTORY}/path/to/asset`;
199
- const readable = new PassThrough();
200
- mocks.createReadStream.mockReturnValueOnce(readable);
201
- mocks.stat.mockResolvedValueOnce({ isFile: () => true });
202
- const pieceValue = await makePieceValue(field, asset);
203
- expect(pieceValue).toEqual(asset);
204
- });
205
- test('makePieceValue not-existant path', async () => {
206
- const field = { name: 'title', type: 'string', format: 'asset' };
207
- const asset = `path/to/asset`;
208
- const readable = new PassThrough();
209
- mocks.createReadStream.mockReturnValueOnce(readable);
210
- mocks.stat.mockResolvedValueOnce(null);
211
- const waiting = makePieceValue(field, asset);
212
- await expect(waiting).rejects.toThrowError();
213
- });
214
- test('makePieceValue with stream', async () => {
215
- const field = { name: 'title', type: 'string', format: 'asset' };
216
- const readable = new PassThrough();
217
- const pieceValue = await makePieceValue(field, readable);
218
- expect(mocks.stat).not.toHaveBeenCalled();
219
- expect(pieceValue).toEqual(readable);
220
- });
221
- test('makePieceValue with invalid value', async () => {
222
- const field = { name: 'title', type: 'string', format: 'asset' };
223
- const making = makePieceValue(field, 55);
224
- await expect(making).rejects.toThrowError();
225
- });
226
- test('makePieceAttachment should create an asset from a stream (PNG)', async () => {
227
- const field = {
228
- name: 'cover',
229
- type: 'string',
230
- format: 'asset',
231
- };
232
- const storage = makeStorage('root');
233
- const random = 'randomhex';
234
- const fieldName = 'cover';
235
- const fileName = 'samplePath';
236
- const markdown = makeMarkdownSample(fileName, 'books', '', { [fieldName]: 'cover.jpg' });
237
- const expectedFilename = `${fileName}-${random}.png`;
238
- const mocksWriteStream = new PassThrough();
239
- const mockStream = Readable.from([fullPngBuffer]);
240
- mockStream.requestUrl = { pathname: 'file.jpg' };
241
- mocks.randomBytes.mockImplementation(() => ({ toString: () => random }));
242
- spies.createWriteStream = vi
243
- .spyOn(storage, 'createWriteStream')
244
- .mockReturnValue(mocksWriteStream);
245
- spies.exists = vi.spyOn(storage, 'exists').mockResolvedValue(false);
246
- spies.makeDir = vi.spyOn(storage, 'makeDirectory').mockResolvedValue(undefined);
247
- const asset = await makePieceAttachment(markdown.filePath, field, mockStream, storage);
248
- expect(asset).toBe(path.join(ASSETS_DIRECTORY, path.dirname(markdown.filePath), fieldName, `${expectedFilename}`));
249
- });
250
- test('makePieceAttachment should work with field arrays (PNG)', async () => {
251
- const field = {
252
- name: 'cover',
253
- type: 'array',
254
- items: {
255
- format: 'asset',
256
- }
257
- };
258
- const storage = makeStorage('root');
259
- const random = 'randomhex';
260
- const fieldName = 'cover';
261
- const fileName = 'samplePath';
262
- const markdown = makeMarkdownSample(fileName, 'books', '', { [fieldName]: 'cover.jpg' });
263
- const expectedFilename = `${fileName}-${random}.png`;
264
- const mocksWriteStream = new PassThrough();
265
- const mockStream = Readable.from([fullPngBuffer]);
266
- mockStream.requestUrl = { pathname: 'file.jpg' };
267
- mocks.randomBytes.mockImplementation(() => ({ toString: () => random }));
268
- spies.createWriteStream = vi
269
- .spyOn(storage, 'createWriteStream')
270
- .mockReturnValue(mocksWriteStream);
271
- spies.exists = vi.spyOn(storage, 'exists').mockResolvedValue(false);
272
- spies.makeDir = vi.spyOn(storage, 'makeDirectory').mockResolvedValue(undefined);
273
- const asset = await makePieceAttachment(markdown.filePath, field, mockStream, storage);
274
- expect(asset).toBe(path.join(ASSETS_DIRECTORY, path.dirname(markdown.filePath), fieldName, `${expectedFilename}`));
275
- });
276
- test('makePieceAttachment should use path and path stream for file type (fallback)', async () => {
277
- const field = {
278
- name: 'cover',
279
- type: 'string',
280
- format: 'asset',
281
- };
282
- const storage = makeStorage('root');
283
- const random = 'randomhex';
284
- const fieldName = 'cover';
285
- const fileName = 'samplePath';
286
- const markdown = makeMarkdownSample(fileName, 'books', '', { [fieldName]: 'cover.jpg' });
287
- const expectedFilename = `${fileName}-${random}.jpg`;
288
- const mocksWriteStream = new PassThrough();
289
- // Use Readable.from
290
- const mockStream = Readable.from([Buffer.from('some data')]);
291
- mockStream.path = Buffer.from('file.jpg');
292
- mocks.randomBytes.mockImplementation(() => ({ toString: () => random }));
293
- spies.createWriteStream = vi
294
- .spyOn(storage, 'createWriteStream')
295
- .mockReturnValue(mocksWriteStream);
296
- spies.exists = vi.spyOn(storage, 'exists').mockResolvedValue(false);
297
- spies.makeDir = vi.spyOn(storage, 'makeDirectory').mockResolvedValue(undefined);
298
- const asset = await makePieceAttachment(markdown.filePath, field, mockStream, storage);
299
- expect(asset).toBe(path.join(ASSETS_DIRECTORY, path.dirname(markdown.filePath), fieldName, `${expectedFilename}`));
300
- });
301
- test('makePieceAttachment should use a generic readable stream with no path or url info (fallback)', async () => {
302
- const field = {
303
- name: 'cover',
304
- type: 'string',
305
- format: 'asset',
306
- };
307
- const storage = makeStorage('root');
308
- const random = 'randomhex';
309
- const fieldName = 'cover';
310
- const fileName = 'samplePath.md'; // Must have extension for fallback to work
311
- const markdown = makeMarkdownSample(fileName, 'books', '', { [fieldName]: 'cover.bin' });
312
- const expectedFilename = `${fileName.replace('.md', '')}-${random}.md`; // Fallback to markdown.filePath ext .md
313
- const mocksWriteStream = new PassThrough();
314
- // Use Readable.from
315
- const mockGenericReadable = Readable.from([Buffer.from('some binary data')]);
316
- mocks.randomBytes.mockImplementation(() => ({ toString: () => random }));
317
- spies.createWriteStream = vi
318
- .spyOn(storage, 'createWriteStream')
319
- .mockReturnValue(mocksWriteStream);
320
- spies.exists = vi.spyOn(storage, 'exists').mockResolvedValue(false);
321
- spies.makeDir = vi.spyOn(storage, 'makeDirectory').mockResolvedValue(undefined);
322
- const asset = await makePieceAttachment(markdown.filePath, field, mockGenericReadable, storage);
323
- expect(asset).toBe(path.join(ASSETS_DIRECTORY, path.dirname(markdown.filePath), fieldName, `${expectedFilename}`));
324
- });
325
- test('makePieceAttachment throws for non-asset field', async () => {
326
- const field = { name: 'title', type: 'string' };
327
- const stream = new PassThrough();
328
- const storage = makeStorage('root');
329
- const asset = makePieceAttachment('file', field, stream, storage);
330
- await expect(asset).rejects.toThrowError();
331
- });
332
- });
333
- //# sourceMappingURL=piece.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"piece.test.js","sourceRoot":"","sources":["../../../../src/pieces/utils/piece.test.ts"],"names":[],"mappings":"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"}
@@ -1,10 +0,0 @@
1
- import { Readable } from 'stream';
2
- import { ReadStream } from 'fs';
3
- import { Request } from 'got';
4
- import type { PieceFrontmatterSchemaField } from './utils/frontmatter.js';
5
- import LuzzleStorage from '../storage/abstract.js';
6
- export declare const PieceFileType = "md";
7
- export declare function calculateHashFromFile(stream: Readable): Promise<string>;
8
- export declare function downloadToStream(fileOrUrl: string): Promise<unknown>;
9
- export declare function makePieceAttachment(file: string, field: PieceFrontmatterSchemaField, stream: Readable | ReadStream | Request, storage: LuzzleStorage, assetsDirectory: string): Promise<string>;
10
- export declare function makePieceValue(field: PieceFrontmatterSchemaField, value: number | string | boolean | Readable, assetsDirectory: string): Promise<string | number | boolean | Readable>;
@@ -1,101 +0,0 @@
1
- import { createHash, randomBytes } from 'crypto';
2
- import { Readable } from 'stream';
3
- import { stat } from 'fs/promises';
4
- import { createReadStream } from 'fs';
5
- import path from 'path';
6
- import got from 'got';
7
- import { fileTypeStream } from 'file-type';
8
- import { pipeline } from 'stream/promises';
9
- export const PieceFileType = 'md';
10
- export function calculateHashFromFile(stream) {
11
- const hash = createHash('md5');
12
- return new Promise((resolve, reject) => {
13
- stream.on('error', (err) => {
14
- reject(err);
15
- });
16
- stream.on('data', (data) => hash.update(data));
17
- stream.on('end', () => resolve(hash.digest('hex')));
18
- });
19
- }
20
- export async function downloadToStream(fileOrUrl) {
21
- if (/https?:\/\//i.test(fileOrUrl)) {
22
- return new Promise((resolve, reject) => {
23
- const download = got.stream(fileOrUrl, { throwHttpErrors: false });
24
- download.on('error', (err) => {
25
- reject(err);
26
- });
27
- download.on('response', (response) => {
28
- if (response.statusCode >= 400) {
29
- reject(new Error(`HTTP Error: ${response.statusCode}`));
30
- }
31
- else {
32
- resolve(download);
33
- }
34
- });
35
- });
36
- }
37
- const coverStat = await stat(fileOrUrl).catch(() => null);
38
- if (coverStat && coverStat.isFile()) {
39
- return new Promise((resolve, reject) => {
40
- const stream = createReadStream(fileOrUrl);
41
- stream.on('error', (err) => {
42
- reject(err);
43
- });
44
- stream.on('open', () => {
45
- resolve(stream);
46
- });
47
- });
48
- }
49
- throw new Error(`${fileOrUrl} is not a valid file`);
50
- }
51
- export async function makePieceAttachment(file, field, stream, storage, assetsDirectory) {
52
- const format = field.type === 'array' ? field.items.format : field.format;
53
- const fileDir = path.dirname(file);
54
- const random = randomBytes(4).toString('hex');
55
- const baseName = path.basename(file).replace(/\.[^.]+$/, '');
56
- const parts = [baseName, random];
57
- const attachDir = path.join(assetsDirectory, fileDir, field.name);
58
- const exists = await storage.exists(attachDir);
59
- /* c8 ignore next 3 */
60
- if (format !== 'asset') {
61
- throw new Error(`${field} is not an attachable field for ${file}`);
62
- }
63
- if (!exists) {
64
- await storage.makeDirectory(attachDir);
65
- }
66
- const ext = stream.requestUrl?.pathname || stream.path?.toString() || '';
67
- const streamWithFileType = await fileTypeStream(stream);
68
- const type = streamWithFileType?.fileType?.ext.replace(/^/, '.') || path.extname(ext);
69
- const filename = `${parts.filter((x) => x).join('-')}${type}`;
70
- const relPath = path.join(assetsDirectory, fileDir, field.name, filename);
71
- const writeStream = storage.createWriteStream(relPath);
72
- await pipeline(streamWithFileType, writeStream);
73
- return relPath;
74
- }
75
- export async function makePieceValue(field, value, assetsDirectory) {
76
- const isArray = field.type === 'array';
77
- const format = isArray ? field.items.format : field.format;
78
- const type = isArray ? field.items.type : field.type;
79
- if (format === 'asset') {
80
- if (typeof value === 'string') {
81
- if (value.startsWith(assetsDirectory)) {
82
- return value;
83
- }
84
- return downloadToStream(value);
85
- }
86
- else if (value instanceof Readable) {
87
- return value;
88
- }
89
- else {
90
- throw new Error(`${field} must be a string or stream`);
91
- }
92
- }
93
- else if (type === 'boolean') {
94
- return /1|true|yes/.test(value);
95
- }
96
- else if (type === 'integer') {
97
- return parseInt(value);
98
- }
99
- return value.toString();
100
- }
101
- //# sourceMappingURL=utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/pieces/utils.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export {};