@luzzle/web.tools 0.0.69 → 0.0.70

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 (160) hide show
  1. package/package.json +6 -7
  2. package/dist/src/browser.d.ts +0 -1
  3. package/dist/src/browser.js +0 -2
  4. package/dist/src/browser.js.map +0 -1
  5. package/dist/src/cli.d.ts +0 -2
  6. package/dist/src/cli.js +0 -19
  7. package/dist/src/cli.js.map +0 -1
  8. package/dist/src/commands/assets/command.d.ts +0 -30
  9. package/dist/src/commands/assets/command.js +0 -41
  10. package/dist/src/commands/assets/command.js.map +0 -1
  11. package/dist/src/commands/assets/index.d.ts +0 -4
  12. package/dist/src/commands/assets/index.js +0 -79
  13. package/dist/src/commands/assets/index.js.map +0 -1
  14. package/dist/src/commands/assets/index.test.d.ts +0 -1
  15. package/dist/src/commands/assets/index.test.js +0 -419
  16. package/dist/src/commands/assets/index.test.js.map +0 -1
  17. package/dist/src/commands/assets/variants.d.ts +0 -8
  18. package/dist/src/commands/assets/variants.js +0 -23
  19. package/dist/src/commands/assets/variants.js.map +0 -1
  20. package/dist/src/commands/assets/variants.test.d.ts +0 -1
  21. package/dist/src/commands/assets/variants.test.js +0 -48
  22. package/dist/src/commands/assets/variants.test.js.map +0 -1
  23. package/dist/src/commands/config/command.d.ts +0 -2
  24. package/dist/src/commands/config/command.js +0 -42
  25. package/dist/src/commands/config/command.js.map +0 -1
  26. package/dist/src/commands/config/index.d.ts +0 -3
  27. package/dist/src/commands/config/index.js +0 -37
  28. package/dist/src/commands/config/index.js.map +0 -1
  29. package/dist/src/commands/config/index.test.d.ts +0 -1
  30. package/dist/src/commands/config/index.test.js +0 -93
  31. package/dist/src/commands/config/index.test.js.map +0 -1
  32. package/dist/src/commands/opengraph/browser.d.ts +0 -3
  33. package/dist/src/commands/opengraph/browser.js +0 -23
  34. package/dist/src/commands/opengraph/browser.js.map +0 -1
  35. package/dist/src/commands/opengraph/browser.test.d.ts +0 -1
  36. package/dist/src/commands/opengraph/browser.test.js +0 -30
  37. package/dist/src/commands/opengraph/browser.test.js.map +0 -1
  38. package/dist/src/commands/opengraph/command.d.ts +0 -30
  39. package/dist/src/commands/opengraph/command.js +0 -41
  40. package/dist/src/commands/opengraph/command.js.map +0 -1
  41. package/dist/src/commands/opengraph/command.test.d.ts +0 -1
  42. package/dist/src/commands/opengraph/command.test.js +0 -68
  43. package/dist/src/commands/opengraph/command.test.js.map +0 -1
  44. package/dist/src/commands/opengraph/html.d.ts +0 -4
  45. package/dist/src/commands/opengraph/html.js +0 -47
  46. package/dist/src/commands/opengraph/html.js.map +0 -1
  47. package/dist/src/commands/opengraph/html.test.d.ts +0 -1
  48. package/dist/src/commands/opengraph/html.test.js +0 -79
  49. package/dist/src/commands/opengraph/html.test.js.map +0 -1
  50. package/dist/src/commands/opengraph/index.d.ts +0 -4
  51. package/dist/src/commands/opengraph/index.js +0 -47
  52. package/dist/src/commands/opengraph/index.js.map +0 -1
  53. package/dist/src/commands/opengraph/index.test.d.ts +0 -1
  54. package/dist/src/commands/opengraph/index.test.js +0 -162
  55. package/dist/src/commands/opengraph/index.test.js.map +0 -1
  56. package/dist/src/commands/opengraph/png.d.ts +0 -3
  57. package/dist/src/commands/opengraph/png.js +0 -26
  58. package/dist/src/commands/opengraph/png.js.map +0 -1
  59. package/dist/src/commands/opengraph/png.test.d.ts +0 -1
  60. package/dist/src/commands/opengraph/png.test.js +0 -50
  61. package/dist/src/commands/opengraph/png.test.js.map +0 -1
  62. package/dist/src/commands/opengraph/svelte.d.ts +0 -7
  63. package/dist/src/commands/opengraph/svelte.js +0 -77
  64. package/dist/src/commands/opengraph/svelte.js.map +0 -1
  65. package/dist/src/commands/opengraph/svelte.test.d.ts +0 -1
  66. package/dist/src/commands/opengraph/svelte.test.js +0 -189
  67. package/dist/src/commands/opengraph/svelte.test.js.map +0 -1
  68. package/dist/src/commands/opengraph/utils.d.ts +0 -8
  69. package/dist/src/commands/opengraph/utils.js +0 -136
  70. package/dist/src/commands/opengraph/utils.js.map +0 -1
  71. package/dist/src/commands/opengraph/utils.test.d.ts +0 -1
  72. package/dist/src/commands/opengraph/utils.test.js +0 -215
  73. package/dist/src/commands/opengraph/utils.test.js.map +0 -1
  74. package/dist/src/commands/sqlite/command.d.ts +0 -8
  75. package/dist/src/commands/sqlite/command.js +0 -16
  76. package/dist/src/commands/sqlite/command.js.map +0 -1
  77. package/dist/src/commands/sqlite/command.test.d.ts +0 -1
  78. package/dist/src/commands/sqlite/command.test.js +0 -42
  79. package/dist/src/commands/sqlite/command.test.js.map +0 -1
  80. package/dist/src/commands/sqlite/database.d.ts +0 -9
  81. package/dist/src/commands/sqlite/database.js +0 -174
  82. package/dist/src/commands/sqlite/database.js.map +0 -1
  83. package/dist/src/commands/sqlite/database.mock.d.ts +0 -24
  84. package/dist/src/commands/sqlite/database.mock.js +0 -58
  85. package/dist/src/commands/sqlite/database.mock.js.map +0 -1
  86. package/dist/src/commands/sqlite/database.test.d.ts +0 -1
  87. package/dist/src/commands/sqlite/database.test.js +0 -211
  88. package/dist/src/commands/sqlite/database.test.js.map +0 -1
  89. package/dist/src/commands/sqlite/index.d.ts +0 -1
  90. package/dist/src/commands/sqlite/index.js +0 -26
  91. package/dist/src/commands/sqlite/index.js.map +0 -1
  92. package/dist/src/commands/sqlite/index.test.d.ts +0 -1
  93. package/dist/src/commands/sqlite/index.test.js +0 -48
  94. package/dist/src/commands/sqlite/index.test.js.map +0 -1
  95. package/dist/src/commands/theme/command.d.ts +0 -13
  96. package/dist/src/commands/theme/command.js +0 -21
  97. package/dist/src/commands/theme/command.js.map +0 -1
  98. package/dist/src/commands/theme/command.test.d.ts +0 -1
  99. package/dist/src/commands/theme/command.test.js +0 -40
  100. package/dist/src/commands/theme/command.test.js.map +0 -1
  101. package/dist/src/commands/theme/index.d.ts +0 -1
  102. package/dist/src/commands/theme/index.js +0 -9
  103. package/dist/src/commands/theme/index.js.map +0 -1
  104. package/dist/src/commands/theme/index.test.d.ts +0 -1
  105. package/dist/src/commands/theme/index.test.js +0 -46
  106. package/dist/src/commands/theme/index.test.js.map +0 -1
  107. package/dist/src/commands/theme/theme.d.ts +0 -4
  108. package/dist/src/commands/theme/theme.js +0 -76
  109. package/dist/src/commands/theme/theme.js.map +0 -1
  110. package/dist/src/commands/theme/theme.test.d.ts +0 -1
  111. package/dist/src/commands/theme/theme.test.js +0 -54
  112. package/dist/src/commands/theme/theme.test.js.map +0 -1
  113. package/dist/src/lib/browser.d.ts +0 -55
  114. package/dist/src/lib/browser.js +0 -52
  115. package/dist/src/lib/browser.js.map +0 -1
  116. package/dist/src/lib/browser.test.d.ts +0 -1
  117. package/dist/src/lib/browser.test.js +0 -67
  118. package/dist/src/lib/browser.test.js.map +0 -1
  119. package/dist/src/lib/config/config.d.ts +0 -9
  120. package/dist/src/lib/config/config.js +0 -56
  121. package/dist/src/lib/config/config.js.map +0 -1
  122. package/dist/src/lib/config/config.test.d.ts +0 -1
  123. package/dist/src/lib/config/config.test.js +0 -71
  124. package/dist/src/lib/config/config.test.js.map +0 -1
  125. package/dist/src/lib/config/config.test.ts +0 -88
  126. package/dist/src/lib/config/config.ts +0 -74
  127. package/dist/src/lib/config/defaults.json +0 -145
  128. package/dist/src/lib/config/defaults.yaml +0 -151
  129. package/dist/src/lib/config/schema.d.ts +0 -172
  130. package/dist/src/lib/config/schema.js +0 -8
  131. package/dist/src/lib/config/schema.js.map +0 -1
  132. package/dist/src/lib/config/schema.json +0 -663
  133. package/dist/src/lib/config/schema.ts +0 -294
  134. package/dist/src/lib/config/user-error.config.yaml +0 -2
  135. package/dist/src/lib/config/user.config.yaml +0 -2
  136. package/dist/src/lib/deep-merge.d.ts +0 -1
  137. package/dist/src/lib/deep-merge.js +0 -27
  138. package/dist/src/lib/deep-merge.js.map +0 -1
  139. package/dist/src/lib/deep-merge.test.d.ts +0 -1
  140. package/dist/src/lib/deep-merge.test.js +0 -29
  141. package/dist/src/lib/deep-merge.test.js.map +0 -1
  142. package/dist/src/lib/lastRun.d.ts +0 -4
  143. package/dist/src/lib/lastRun.js +0 -23
  144. package/dist/src/lib/lastRun.js.map +0 -1
  145. package/dist/src/lib/lastRun.test.d.ts +0 -1
  146. package/dist/src/lib/lastRun.test.js +0 -47
  147. package/dist/src/lib/lastRun.test.js.map +0 -1
  148. package/dist/src/lib/vibrant.d.ts +0 -21
  149. package/dist/src/lib/vibrant.js +0 -78
  150. package/dist/src/lib/vibrant.js.map +0 -1
  151. package/dist/src/lib/vibrant.test.d.ts +0 -1
  152. package/dist/src/lib/vibrant.test.js +0 -164
  153. package/dist/src/lib/vibrant.test.js.map +0 -1
  154. package/dist/src/sdk.d.ts +0 -4
  155. package/dist/src/sdk.js +0 -4
  156. package/dist/src/sdk.js.map +0 -1
  157. package/dist/src/types.d.ts +0 -2
  158. package/dist/src/types.js +0 -2
  159. package/dist/src/types.js.map +0 -1
  160. package/dist/tsconfig.tsbuildinfo +0 -1
@@ -1,419 +0,0 @@
1
- import { describe, test, expect, vi, afterEach } from 'vitest';
2
- import { getLastRunFor, setLastRunFor } from '../../lib/lastRun.js';
3
- import { loadConfig } from '@luzzle/web.utils/server';
4
- import { getDatabaseClient, Pieces, StorageFileSystem } from '@luzzle/core';
5
- import { mockKysely } from '../sqlite/database.mock.js';
6
- import { writeFile, mkdir } from 'fs/promises';
7
- import { generateVariantJobs } from './variants.js';
8
- import { getAssetDir, getAssetPath, isImage } from '@luzzle/web.utils';
9
- import generateAssets from './index.js';
10
- vi.mock('../../lib/lastRun.js');
11
- vi.mock('@luzzle/web.utils/server');
12
- vi.mock('@luzzle/core');
13
- vi.mock('fs/promises');
14
- vi.mock('./variants.js');
15
- vi.mock('@luzzle/web.utils');
16
- const mocks = {
17
- getLastRunFor: vi.mocked(getLastRunFor),
18
- setLastRunFor: vi.mocked(setLastRunFor),
19
- loadConfig: vi.mocked(loadConfig),
20
- getDatabaseClient: vi.mocked(getDatabaseClient),
21
- Pieces: vi.mocked(Pieces),
22
- StorageFileSystem: vi.mocked(StorageFileSystem),
23
- generateVariantJobs: vi.mocked(generateVariantJobs),
24
- getAssetPath: vi.mocked(getAssetPath),
25
- getAssetDir: vi.mocked(getAssetDir),
26
- isImage: vi.mocked(isImage),
27
- mkdir: vi.mocked(mkdir),
28
- writeFile: vi.mocked(writeFile),
29
- };
30
- const setupDefaultMocks = (items = [], pieces = []) => {
31
- mocks.loadConfig.mockReturnValue({
32
- paths: { database: 'db.sqlite' },
33
- pieces: pieces,
34
- });
35
- const mockDb = mockKysely();
36
- vi.spyOn(mockDb.queries, 'execute').mockResolvedValue(items);
37
- mocks.getDatabaseClient.mockReturnValue(mockDb.db);
38
- mocks.getLastRunFor.mockResolvedValue(new Date(0));
39
- const mockStorage = { readFileSync: vi.fn() };
40
- const mockPieces = {
41
- getPieceAsset: vi.fn(() => Promise.resolve(Buffer.from('asset_content'))),
42
- };
43
- mocks.StorageFileSystem.mockReturnValue(mockStorage);
44
- mocks.Pieces.mockReturnValue(mockPieces);
45
- return { mockPieces };
46
- };
47
- describe('generateAssets', () => {
48
- afterEach(() => {
49
- vi.clearAllMocks();
50
- });
51
- test('should copy assets and generate variants for image assets', async () => {
52
- const { mockPieces } = setupDefaultMocks([
53
- {
54
- id: '1',
55
- type: 'books',
56
- date_updated: 100,
57
- date_added: 50,
58
- frontmatter_json: '{"image": "/path/to/image.jpg", "document": "/path/to/document.pdf"}',
59
- file_path: 'book.md',
60
- note_markdown: '',
61
- assets_json_array: '[]',
62
- },
63
- ], [
64
- {
65
- type: 'books',
66
- fields: {
67
- media: 'image',
68
- assets: ['document'],
69
- title: 'title',
70
- date_consumed: 'date_consumed',
71
- },
72
- },
73
- ]);
74
- mocks.isImage.mockImplementation((asset) => asset.endsWith('.jpg'));
75
- mocks.getAssetDir.mockReturnValue('books/1');
76
- mocks.getAssetPath.mockImplementation((type, id, asset) => `${type}/${id}/${asset.split('/').pop()}`);
77
- await generateAssets('/path/to/config.yaml', '/path/to/luzzle', '/path/to/out', {});
78
- expect(mocks.mkdir).toHaveBeenCalledWith('/path/to/out/books/1', { recursive: true });
79
- expect(mockPieces.getPieceAsset).toHaveBeenCalledWith('/path/to/image.jpg');
80
- expect(mockPieces.getPieceAsset).toHaveBeenCalledWith('/path/to/document.pdf');
81
- expect(mocks.writeFile).toHaveBeenCalledWith('/path/to/out/books/1/image.jpg', Buffer.from('asset_content'));
82
- expect(mocks.writeFile).toHaveBeenCalledWith('/path/to/out/books/1/document.pdf', Buffer.from('asset_content'));
83
- expect(mocks.generateVariantJobs).toHaveBeenCalledOnce();
84
- });
85
- test('should only copy assets if they are not images', async () => {
86
- const { mockPieces } = setupDefaultMocks([
87
- {
88
- id: '1',
89
- type: 'books',
90
- date_updated: 100,
91
- date_added: 50,
92
- frontmatter_json: '{"document": "/path/to/document.pdf"}',
93
- file_path: 'book.md',
94
- note_markdown: '',
95
- assets_json_array: '[]',
96
- },
97
- ], [
98
- {
99
- type: 'books',
100
- fields: { assets: ['document'], title: 'title', date_consumed: 'date_consumed' },
101
- },
102
- ]);
103
- mocks.isImage.mockReturnValue(false);
104
- mocks.getAssetDir.mockReturnValue('books/1');
105
- mocks.getAssetPath.mockImplementation((type, id, asset) => `${type}/${id}/${asset.split('/').pop()}`);
106
- await generateAssets('/path/to/config.yaml', '/path/to/luzzle', '/path/to/out', {});
107
- expect(mocks.mkdir).toHaveBeenCalledWith('/path/to/out/books/1', { recursive: true });
108
- expect(mockPieces.getPieceAsset).toHaveBeenCalledWith('/path/to/document.pdf');
109
- expect(mocks.writeFile).toHaveBeenCalledWith('/path/to/out/books/1/document.pdf', Buffer.from('asset_content'));
110
- expect(mocks.generateVariantJobs).not.toHaveBeenCalled();
111
- });
112
- test('should handle errors when copying assets', async () => {
113
- setupDefaultMocks([
114
- {
115
- id: '1',
116
- type: 'books',
117
- date_updated: 100,
118
- date_added: 50,
119
- frontmatter_json: '{"image": "/path/to/image.jpg"}',
120
- file_path: 'book.md',
121
- note_markdown: '',
122
- assets_json_array: '[]',
123
- },
124
- ], [
125
- {
126
- type: 'books',
127
- fields: { media: 'image', title: 'title', date_consumed: 'date_consumed' },
128
- },
129
- ]);
130
- mocks.writeFile.mockRejectedValueOnce(new Error('Write error'));
131
- mocks.isImage.mockReturnValue(false);
132
- mocks.getAssetDir.mockReturnValue('books/1');
133
- mocks.getAssetPath.mockImplementation((type, id, asset) => `${type}/${id}/${asset.split('/').pop()}`);
134
- const consoleErrorSpy = vi.spyOn(console, 'error').mockImplementation(() => { });
135
- await generateAssets('/path/to/config.yaml', '/path/to/luzzle', '/path/to/out', {});
136
- expect(consoleErrorSpy).toHaveBeenCalledOnce();
137
- expect(mocks.generateVariantJobs).not.toHaveBeenCalled();
138
- consoleErrorSpy.mockRestore();
139
- });
140
- test('should handle errors during variant generation', async () => {
141
- setupDefaultMocks([
142
- {
143
- id: '1',
144
- type: 'books',
145
- date_updated: 100,
146
- date_added: 50,
147
- frontmatter_json: '{"image": "/path/to/image.jpg"}',
148
- file_path: 'book.md',
149
- note_markdown: '',
150
- assets_json_array: '[]',
151
- },
152
- ], [
153
- {
154
- type: 'books',
155
- fields: { media: 'image', title: 'title', date_consumed: 'date_consumed' },
156
- },
157
- ]);
158
- mocks.isImage.mockReturnValue(true);
159
- mocks.getAssetDir.mockReturnValue('books/1');
160
- mocks.getAssetPath.mockImplementation((type, id, asset) => `${type}/${id}/${asset.split('/').pop()}`);
161
- mocks.generateVariantJobs.mockRejectedValue(new Error('test error'));
162
- const consoleErrorSpy = vi.spyOn(console, 'error').mockImplementation(() => { });
163
- await generateAssets('/path/to/config.yaml', '/path/to/luzzle', '/path/to/out', {});
164
- expect(consoleErrorSpy).toHaveBeenCalledOnce();
165
- consoleErrorSpy.mockRestore();
166
- });
167
- test('should do nothing if there are no items to process', async () => {
168
- setupDefaultMocks([], [
169
- {
170
- type: 'books',
171
- fields: { media: 'image', title: 'title', date_consumed: 'date_consumed' },
172
- },
173
- ]);
174
- await generateAssets('/path/to/config.yaml', '/path/to/luzzle', '/path/to/out', {});
175
- expect(mocks.writeFile).not.toHaveBeenCalled();
176
- expect(mocks.generateVariantJobs).not.toHaveBeenCalled();
177
- });
178
- test('should force variant generation', async () => {
179
- const { mockPieces } = setupDefaultMocks([
180
- {
181
- id: '1',
182
- type: 'books',
183
- date_updated: 0,
184
- date_added: 0,
185
- frontmatter_json: '{"image": "/path/to/image.jpg"}',
186
- file_path: 'book.md',
187
- note_markdown: '',
188
- assets_json_array: '[]',
189
- },
190
- ], [
191
- {
192
- type: 'books',
193
- fields: { media: 'image', title: 'title', date_consumed: 'date_consumed' },
194
- },
195
- ]);
196
- mocks.getLastRunFor.mockResolvedValue(new Date());
197
- mocks.isImage.mockReturnValue(true);
198
- await generateAssets('/path/to/config.yaml', '/path/to/luzzle', '/path/to/out', {
199
- force: true,
200
- });
201
- expect(mockPieces.getPieceAsset).toHaveBeenCalledOnce();
202
- expect(mocks.writeFile).toHaveBeenCalledOnce();
203
- expect(mocks.generateVariantJobs).toHaveBeenCalledOnce();
204
- });
205
- test('should force variant generation for one id', async () => {
206
- const { mockPieces } = setupDefaultMocks([
207
- {
208
- id: '1',
209
- type: 'books',
210
- date_updated: 0,
211
- date_added: 0,
212
- frontmatter_json: '{"image": "/path/to/image.jpg"}',
213
- file_path: 'book.md',
214
- note_markdown: '',
215
- assets_json_array: '[]',
216
- },
217
- ], [
218
- {
219
- type: 'books',
220
- fields: { media: 'image', title: 'title', date_consumed: 'date_consumed' },
221
- },
222
- ]);
223
- mocks.getLastRunFor.mockResolvedValue(new Date());
224
- mocks.isImage.mockReturnValue(true);
225
- await generateAssets('/path/to/config.yaml', '/path/to/luzzle', '/path/to/out', {
226
- id: '1',
227
- });
228
- expect(mockPieces.getPieceAsset).toHaveBeenCalledOnce();
229
- expect(mocks.writeFile).toHaveBeenCalledOnce();
230
- expect(mocks.generateVariantJobs).toHaveBeenCalledOnce();
231
- });
232
- test('should handle items with no assets', async () => {
233
- setupDefaultMocks([
234
- {
235
- id: '1',
236
- type: 'books',
237
- date_updated: 100,
238
- date_added: 50,
239
- frontmatter_json: '{}',
240
- file_path: 'book.md',
241
- note_markdown: '',
242
- assets_json_array: '[]',
243
- },
244
- ], [
245
- {
246
- type: 'books',
247
- fields: { media: 'image', title: 'title', date_consumed: 'date_consumed' },
248
- },
249
- ]);
250
- await generateAssets('/path/to/config.yaml', '/path/to/luzzle', '/path/to/out', {});
251
- expect(mocks.writeFile).not.toHaveBeenCalled();
252
- expect(mocks.generateVariantJobs).not.toHaveBeenCalled();
253
- });
254
- test('should handle errors during toFile', async () => {
255
- setupDefaultMocks([
256
- {
257
- id: '1',
258
- type: 'books',
259
- date_updated: 100,
260
- date_added: 50,
261
- frontmatter_json: '{"image": "/path/to/image.jpg"}',
262
- file_path: 'book..md',
263
- note_markdown: '',
264
- assets_json_array: '[]',
265
- },
266
- ], [
267
- {
268
- type: 'books',
269
- fields: { media: 'image', title: 'title', date_consumed: 'date_consumed' },
270
- },
271
- ]);
272
- mocks.isImage.mockReturnValue(true);
273
- mocks.getAssetDir.mockReturnValue('books/1');
274
- mocks.getAssetPath.mockImplementation((type, id, asset) => `${type}/${id}/${asset.split('/').pop()}`);
275
- const toFileMock = vi.fn().mockRejectedValue(new Error('toFile error'));
276
- mocks.generateVariantJobs.mockResolvedValue([
277
- {
278
- sharp: { toFile: toFileMock },
279
- width: 125,
280
- format: 'jpg',
281
- },
282
- ]);
283
- const consoleErrorSpy = vi.spyOn(console, 'error').mockImplementation(() => { });
284
- await generateAssets('/path/to/config.yaml', '/path/to/luzzle', '/path/to/out', {});
285
- expect(consoleErrorSpy).toHaveBeenCalledOnce();
286
- consoleErrorSpy.mockRestore();
287
- });
288
- test('should handle piece with no assets field', async () => {
289
- const { mockPieces } = setupDefaultMocks([
290
- {
291
- id: '1',
292
- type: 'books',
293
- date_updated: 100,
294
- date_added: 50,
295
- frontmatter_json: '{"image": "/path/to/image.jpg"}',
296
- file_path: 'book.md',
297
- note_markdown: '',
298
- assets_json_array: '[]',
299
- },
300
- ], [
301
- {
302
- type: 'books',
303
- fields: { media: 'image', title: 'title', date_consumed: 'date_consumed' },
304
- },
305
- ]);
306
- mocks.isImage.mockReturnValue(true);
307
- mocks.getAssetDir.mockReturnValue('books/1');
308
- mocks.getAssetPath.mockImplementation((type, id, asset) => `${type}/${id}/${asset.split('/').pop()}`);
309
- await generateAssets('/path/to/config.yaml', '/path/to/luzzle', '/path/to/out', {});
310
- expect(mockPieces.getPieceAsset).toHaveBeenCalledOnce();
311
- expect(mocks.writeFile).toHaveBeenCalledOnce();
312
- });
313
- test('should filter items by id', async () => {
314
- const { mockPieces } = setupDefaultMocks([
315
- {
316
- id: '1',
317
- type: 'books',
318
- date_updated: 100,
319
- date_added: 50,
320
- frontmatter_json: '{"image": "/path/to/image.jpg"}',
321
- file_path: 'book.md',
322
- note_markdown: '',
323
- assets_json_array: '[]',
324
- },
325
- {
326
- id: '2',
327
- type: 'books',
328
- date_updated: 100,
329
- date_added: 50,
330
- frontmatter_json: '{"image": "/path/to/image2.jpg"}',
331
- file_path: 'book2.md',
332
- note_markdown: '',
333
- assets_json_array: '[]',
334
- },
335
- ], [
336
- {
337
- type: 'books',
338
- fields: { media: 'image', title: 'title', date_consumed: 'date_consumed' },
339
- },
340
- ]);
341
- mocks.isImage.mockReturnValue(true);
342
- mocks.getAssetDir.mockReturnValue('books/1');
343
- mocks.getAssetPath.mockImplementation((type, id, asset) => `${type}/${id}/${asset.split('/').pop()}`);
344
- await generateAssets('/path/to/config.yaml', '/path/to/luzzle', '/path/to/out', { id: '1' });
345
- expect(mockPieces.getPieceAsset).toHaveBeenCalledOnce();
346
- expect(mocks.writeFile).toHaveBeenCalledOnce();
347
- expect(mockPieces.getPieceAsset).toHaveBeenCalledWith('/path/to/image.jpg');
348
- expect(mocks.setLastRunFor).not.toHaveBeenCalled();
349
- });
350
- test('should handle no variant jobs', async () => {
351
- const { mockPieces } = setupDefaultMocks([
352
- {
353
- id: '1',
354
- type: 'books',
355
- date_updated: 100,
356
- date_added: 50,
357
- frontmatter_json: '{"image": "/path/to/image.jpg"}',
358
- file_path: 'book.md',
359
- note_markdown: '',
360
- assets_json_array: '[]',
361
- },
362
- ], [
363
- {
364
- type: 'books',
365
- fields: { media: 'image', title: 'title', date_consumed: 'date_consumed' },
366
- },
367
- ]);
368
- mocks.isImage.mockReturnValue(true);
369
- mocks.getAssetDir.mockReturnValue('books/1');
370
- mocks.getAssetPath.mockImplementation((type, id, asset) => `${type}/${id}/${asset.split('/').pop()}`);
371
- mocks.generateVariantJobs.mockResolvedValue([]);
372
- await generateAssets('/path/to/config.yaml', '/path/to/luzzle', '/path/to/out', {});
373
- expect(mockPieces.getPieceAsset).toHaveBeenCalledOnce();
374
- expect(mocks.writeFile).toHaveBeenCalledOnce();
375
- });
376
- test('should handle piece with no media field', async () => {
377
- const { mockPieces } = setupDefaultMocks([
378
- {
379
- id: '1',
380
- type: 'books',
381
- date_updated: 100,
382
- date_added: 50,
383
- frontmatter_json: '{"images": ["/path/to/image.jpg"]}',
384
- file_path: 'book.md',
385
- note_markdown: '',
386
- assets_json_array: '[]',
387
- },
388
- ], [
389
- {
390
- type: 'books',
391
- fields: { assets: ['images'], title: 'title', date_consumed: 'date_consumed' },
392
- },
393
- ]);
394
- mocks.isImage.mockReturnValue(true);
395
- mocks.getAssetDir.mockReturnValue('books/1');
396
- mocks.getAssetPath.mockImplementation((type, id, asset) => `${type}/${id}/${asset.split('/').pop()}`);
397
- await generateAssets('/path/to/config.yaml', '/path/to/luzzle', '/path/to/out', {});
398
- expect(mockPieces.getPieceAsset).toHaveBeenCalledOnce();
399
- expect(mocks.writeFile).toHaveBeenCalledOnce();
400
- });
401
- test('should do nothing if there are no pieces in config', async () => {
402
- setupDefaultMocks([
403
- {
404
- id: '1',
405
- type: 'books',
406
- date_updated: 100,
407
- date_added: 50,
408
- frontmatter_json: '{"image": "/path/to/image.jpg"}',
409
- file_path: 'book.md',
410
- note_markdown: '',
411
- assets_json_array: '[]',
412
- },
413
- ], [] // No pieces in config
414
- );
415
- await generateAssets('/path/to/config.yaml', '/path/to/luzzle', '/path/to/out', {});
416
- expect(mocks.writeFile).not.toHaveBeenCalled();
417
- });
418
- });
419
- //# sourceMappingURL=index.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../../../src/commands/assets/index.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AAC9D,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACnE,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AACrD,OAAO,EAAE,iBAAiB,EAAoB,MAAM,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAC7F,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAA;AACvD,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AACnD,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,OAAO,EAAe,MAAM,mBAAmB,CAAA;AACnF,OAAO,cAAc,MAAM,YAAY,CAAA;AAGvC,EAAE,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAA;AAC/B,EAAE,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAA;AACnC,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;AACvB,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;AACtB,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;AACxB,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAA;AAE5B,MAAM,KAAK,GAAG;IACb,aAAa,EAAE,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC;IACvC,aAAa,EAAE,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC;IACvC,UAAU,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC;IACjC,iBAAiB,EAAE,EAAE,CAAC,MAAM,CAAC,iBAAiB,CAAC;IAC/C,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;IACzB,iBAAiB,EAAE,EAAE,CAAC,MAAM,CAAC,iBAAiB,CAAC;IAC/C,mBAAmB,EAAE,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC;IACnD,YAAY,EAAE,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC;IACrC,WAAW,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC;IACnC,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC;IAC3B,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC;IACvB,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC;CAC/B,CAAA;AAED,MAAM,iBAAiB,GAAG,CACzB,QAA4C,EAAE,EAC9C,SAA2B,EAAE,EAC5B,EAAE;IACH,KAAK,CAAC,UAAU,CAAC,eAAe,CAAC;QAChC,KAAK,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE;QAChC,MAAM,EAAE,MAAM;KACO,CAAC,CAAA;IAEvB,MAAM,MAAM,GAAG,UAAU,EAAE,CAAA;IAC3B,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAA;IAC5D,KAAK,CAAC,iBAAiB,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;IAElD,KAAK,CAAC,aAAa,CAAC,iBAAiB,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;IAElD,MAAM,WAAW,GAAG,EAAE,YAAY,EAAE,EAAE,CAAC,EAAE,EAAE,EAAkC,CAAA;IAC7E,MAAM,UAAU,GAAG;QAClB,aAAa,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;KACpD,CAAA;IACtB,KAAK,CAAC,iBAAiB,CAAC,eAAe,CAAC,WAAW,CAAC,CAAA;IACpD,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC,UAAU,CAAC,CAAA;IACxC,OAAO,EAAE,UAAU,EAAE,CAAA;AACtB,CAAC,CAAA;AAED,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC/B,SAAS,CAAC,GAAG,EAAE;QACd,EAAE,CAAC,aAAa,EAAE,CAAA;IACnB,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,2DAA2D,EAAE,KAAK,IAAI,EAAE;QAC5E,MAAM,EAAE,UAAU,EAAE,GAAG,iBAAiB,CACvC;YACC;gBACC,EAAE,EAAE,GAAG;gBACP,IAAI,EAAE,OAAO;gBACb,YAAY,EAAE,GAAG;gBACjB,UAAU,EAAE,EAAE;gBACd,gBAAgB,EAAE,sEAAsE;gBACxF,SAAS,EAAE,SAAS;gBACpB,aAAa,EAAE,EAAE;gBACjB,iBAAiB,EAAE,IAAI;aACvB;SACD,EACD;YACC;gBACC,IAAI,EAAE,OAAO;gBACb,MAAM,EAAE;oBACP,KAAK,EAAE,OAAO;oBACd,MAAM,EAAE,CAAC,UAAU,CAAC;oBACpB,KAAK,EAAE,OAAO;oBACd,aAAa,EAAE,eAAe;iBAC9B;aACD;SACD,CACD,CAAA;QAED,KAAK,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAA;QACnE,KAAK,CAAC,WAAW,CAAC,eAAe,CAAC,SAAS,CAAC,CAAA;QAC5C,KAAK,CAAC,YAAY,CAAC,kBAAkB,CACpC,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,IAAI,IAAI,EAAE,IAAI,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAC9D,CAAA;QAED,MAAM,cAAc,CAAC,sBAAsB,EAAE,iBAAiB,EAAE,cAAc,EAAE,EAAE,CAAC,CAAA;QAEnF,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,oBAAoB,CAAC,sBAAsB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QACrF,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,oBAAoB,CAAC,oBAAoB,CAAC,CAAA;QAC3E,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,oBAAoB,CAAC,uBAAuB,CAAC,CAAA;QAC9E,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,oBAAoB,CAC3C,gCAAgC,EAChC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAC5B,CAAA;QACD,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,oBAAoB,CAC3C,mCAAmC,EACnC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAC5B,CAAA;QACD,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,oBAAoB,EAAE,CAAA;IACzD,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;QACjE,MAAM,EAAE,UAAU,EAAE,GAAG,iBAAiB,CACvC;YACC;gBACC,EAAE,EAAE,GAAG;gBACP,IAAI,EAAE,OAAO;gBACb,YAAY,EAAE,GAAG;gBACjB,UAAU,EAAE,EAAE;gBACd,gBAAgB,EAAE,uCAAuC;gBACzD,SAAS,EAAE,SAAS;gBACpB,aAAa,EAAE,EAAE;gBACjB,iBAAiB,EAAE,IAAI;aACvB;SACD,EACD;YACC;gBACC,IAAI,EAAE,OAAO;gBACb,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE;aAChF;SACD,CACD,CAAA;QAED,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,CAAA;QACpC,KAAK,CAAC,WAAW,CAAC,eAAe,CAAC,SAAS,CAAC,CAAA;QAC5C,KAAK,CAAC,YAAY,CAAC,kBAAkB,CACpC,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,IAAI,IAAI,EAAE,IAAI,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAC9D,CAAA;QAED,MAAM,cAAc,CAAC,sBAAsB,EAAE,iBAAiB,EAAE,cAAc,EAAE,EAAE,CAAC,CAAA;QAEnF,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,oBAAoB,CAAC,sBAAsB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QACrF,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,oBAAoB,CAAC,uBAAuB,CAAC,CAAA;QAC9E,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,oBAAoB,CAC3C,mCAAmC,EACnC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAC5B,CAAA;QACD,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAA;IACzD,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,0CAA0C,EAAE,KAAK,IAAI,EAAE;QAC3D,iBAAiB,CAChB;YACC;gBACC,EAAE,EAAE,GAAG;gBACP,IAAI,EAAE,OAAO;gBACb,YAAY,EAAE,GAAG;gBACjB,UAAU,EAAE,EAAE;gBACd,gBAAgB,EAAE,iCAAiC;gBACnD,SAAS,EAAE,SAAS;gBACpB,aAAa,EAAE,EAAE;gBACjB,iBAAiB,EAAE,IAAI;aACvB;SACD,EACD;YACC;gBACC,IAAI,EAAE,OAAO;gBACb,MAAM,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE;aAC1E;SACD,CACD,CAAA;QAED,KAAK,CAAC,SAAS,CAAC,qBAAqB,CAAC,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC,CAAA;QAC/D,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,CAAA;QACpC,KAAK,CAAC,WAAW,CAAC,eAAe,CAAC,SAAS,CAAC,CAAA;QAC5C,KAAK,CAAC,YAAY,CAAC,kBAAkB,CACpC,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,IAAI,IAAI,EAAE,IAAI,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAC9D,CAAA;QAED,MAAM,eAAe,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAA;QAEhF,MAAM,cAAc,CAAC,sBAAsB,EAAE,iBAAiB,EAAE,cAAc,EAAE,EAAE,CAAC,CAAA;QAEnF,MAAM,CAAC,eAAe,CAAC,CAAC,oBAAoB,EAAE,CAAA;QAC9C,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAA;QAExD,eAAe,CAAC,WAAW,EAAE,CAAA;IAC9B,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;QACjE,iBAAiB,CAChB;YACC;gBACC,EAAE,EAAE,GAAG;gBACP,IAAI,EAAE,OAAO;gBACb,YAAY,EAAE,GAAG;gBACjB,UAAU,EAAE,EAAE;gBACd,gBAAgB,EAAE,iCAAiC;gBACnD,SAAS,EAAE,SAAS;gBACpB,aAAa,EAAE,EAAE;gBACjB,iBAAiB,EAAE,IAAI;aACvB;SACD,EACD;YACC;gBACC,IAAI,EAAE,OAAO;gBACb,MAAM,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE;aAC1E;SACD,CACD,CAAA;QAED,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,CAAA;QACnC,KAAK,CAAC,WAAW,CAAC,eAAe,CAAC,SAAS,CAAC,CAAA;QAC5C,KAAK,CAAC,YAAY,CAAC,kBAAkB,CACpC,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,IAAI,IAAI,EAAE,IAAI,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAC9D,CAAA;QACD,KAAK,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC,CAAA;QAEpE,MAAM,eAAe,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAA;QAEhF,MAAM,cAAc,CAAC,sBAAsB,EAAE,iBAAiB,EAAE,cAAc,EAAE,EAAE,CAAC,CAAA;QAEnF,MAAM,CAAC,eAAe,CAAC,CAAC,oBAAoB,EAAE,CAAA;QAE9C,eAAe,CAAC,WAAW,EAAE,CAAA;IAC9B,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,oDAAoD,EAAE,KAAK,IAAI,EAAE;QACrE,iBAAiB,CAChB,EAAE,EACF;YACC;gBACC,IAAI,EAAE,OAAO;gBACb,MAAM,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE;aAC1E;SACD,CACD,CAAA;QAED,MAAM,cAAc,CAAC,sBAAsB,EAAE,iBAAiB,EAAE,cAAc,EAAE,EAAE,CAAC,CAAA;QAEnF,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAA;QAC9C,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAA;IACzD,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,iCAAiC,EAAE,KAAK,IAAI,EAAE;QAClD,MAAM,EAAE,UAAU,EAAE,GAAG,iBAAiB,CACvC;YACC;gBACC,EAAE,EAAE,GAAG;gBACP,IAAI,EAAE,OAAO;gBACb,YAAY,EAAE,CAAC;gBACf,UAAU,EAAE,CAAC;gBACb,gBAAgB,EAAE,iCAAiC;gBACnD,SAAS,EAAE,SAAS;gBACpB,aAAa,EAAE,EAAE;gBACjB,iBAAiB,EAAE,IAAI;aACvB;SACD,EACD;YACC;gBACC,IAAI,EAAE,OAAO;gBACb,MAAM,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE;aAC1E;SACD,CACD,CAAA;QACD,KAAK,CAAC,aAAa,CAAC,iBAAiB,CAAC,IAAI,IAAI,EAAE,CAAC,CAAA;QACjD,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,CAAA;QAEnC,MAAM,cAAc,CAAC,sBAAsB,EAAE,iBAAiB,EAAE,cAAc,EAAE;YAC/E,KAAK,EAAE,IAAI;SACX,CAAC,CAAA;QAEF,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,oBAAoB,EAAE,CAAA;QACvD,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,oBAAoB,EAAE,CAAA;QAC9C,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,oBAAoB,EAAE,CAAA;IACzD,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;QAC7D,MAAM,EAAE,UAAU,EAAE,GAAG,iBAAiB,CACvC;YACC;gBACC,EAAE,EAAE,GAAG;gBACP,IAAI,EAAE,OAAO;gBACb,YAAY,EAAE,CAAC;gBACf,UAAU,EAAE,CAAC;gBACb,gBAAgB,EAAE,iCAAiC;gBACnD,SAAS,EAAE,SAAS;gBACpB,aAAa,EAAE,EAAE;gBACjB,iBAAiB,EAAE,IAAI;aACvB;SACD,EACD;YACC;gBACC,IAAI,EAAE,OAAO;gBACb,MAAM,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE;aAC1E;SACD,CACD,CAAA;QACD,KAAK,CAAC,aAAa,CAAC,iBAAiB,CAAC,IAAI,IAAI,EAAE,CAAC,CAAA;QACjD,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,CAAA;QAEnC,MAAM,cAAc,CAAC,sBAAsB,EAAE,iBAAiB,EAAE,cAAc,EAAE;YAC/E,EAAE,EAAE,GAAG;SACP,CAAC,CAAA;QAEF,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,oBAAoB,EAAE,CAAA;QACvD,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,oBAAoB,EAAE,CAAA;QAC9C,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,oBAAoB,EAAE,CAAA;IACzD,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;QACrD,iBAAiB,CAChB;YACC;gBACC,EAAE,EAAE,GAAG;gBACP,IAAI,EAAE,OAAO;gBACb,YAAY,EAAE,GAAG;gBACjB,UAAU,EAAE,EAAE;gBACd,gBAAgB,EAAE,IAAI;gBACtB,SAAS,EAAE,SAAS;gBACpB,aAAa,EAAE,EAAE;gBACjB,iBAAiB,EAAE,IAAI;aACvB;SACD,EACD;YACC;gBACC,IAAI,EAAE,OAAO;gBACb,MAAM,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE;aAC1E;SACD,CACD,CAAA;QAED,MAAM,cAAc,CAAC,sBAAsB,EAAE,iBAAiB,EAAE,cAAc,EAAE,EAAE,CAAC,CAAA;QAEnF,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAA;QAC9C,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAA;IACzD,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;QACrD,iBAAiB,CAChB;YACC;gBACC,EAAE,EAAE,GAAG;gBACP,IAAI,EAAE,OAAO;gBACb,YAAY,EAAE,GAAG;gBACjB,UAAU,EAAE,EAAE;gBACd,gBAAgB,EAAE,iCAAiC;gBACnD,SAAS,EAAE,UAAU;gBACrB,aAAa,EAAE,EAAE;gBACjB,iBAAiB,EAAE,IAAI;aACvB;SACD,EACD;YACC;gBACC,IAAI,EAAE,OAAO;gBACb,MAAM,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE;aAC1E;SACD,CACD,CAAA;QAED,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,CAAA;QACnC,KAAK,CAAC,WAAW,CAAC,eAAe,CAAC,SAAS,CAAC,CAAA;QAC5C,KAAK,CAAC,YAAY,CAAC,kBAAkB,CACpC,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,IAAI,IAAI,EAAE,IAAI,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAC9D,CAAA;QACD,MAAM,UAAU,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC,CAAA;QACvE,KAAK,CAAC,mBAAmB,CAAC,iBAAiB,CAAC;YAC3C;gBACC,KAAK,EAAE,EAAE,MAAM,EAAE,UAAU,EAAsB;gBACjD,KAAK,EAAE,GAAG;gBACV,MAAM,EAAE,KAAK;aACb;SACD,CAAC,CAAA;QAEF,MAAM,eAAe,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAA;QAEhF,MAAM,cAAc,CAAC,sBAAsB,EAAE,iBAAiB,EAAE,cAAc,EAAE,EAAE,CAAC,CAAA;QAEnF,MAAM,CAAC,eAAe,CAAC,CAAC,oBAAoB,EAAE,CAAA;QAE9C,eAAe,CAAC,WAAW,EAAE,CAAA;IAC9B,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,0CAA0C,EAAE,KAAK,IAAI,EAAE;QAC3D,MAAM,EAAE,UAAU,EAAE,GAAG,iBAAiB,CACvC;YACC;gBACC,EAAE,EAAE,GAAG;gBACP,IAAI,EAAE,OAAO;gBACb,YAAY,EAAE,GAAG;gBACjB,UAAU,EAAE,EAAE;gBACd,gBAAgB,EAAE,iCAAiC;gBACnD,SAAS,EAAE,SAAS;gBACpB,aAAa,EAAE,EAAE;gBACjB,iBAAiB,EAAE,IAAI;aACvB;SACD,EACD;YACC;gBACC,IAAI,EAAE,OAAO;gBACb,MAAM,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE;aAC1E;SACD,CACD,CAAA;QAED,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,CAAA;QACnC,KAAK,CAAC,WAAW,CAAC,eAAe,CAAC,SAAS,CAAC,CAAA;QAC5C,KAAK,CAAC,YAAY,CAAC,kBAAkB,CACpC,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,IAAI,IAAI,EAAE,IAAI,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAC9D,CAAA;QAED,MAAM,cAAc,CAAC,sBAAsB,EAAE,iBAAiB,EAAE,cAAc,EAAE,EAAE,CAAC,CAAA;QAEnF,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,oBAAoB,EAAE,CAAA;QACvD,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,oBAAoB,EAAE,CAAA;IAC/C,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,2BAA2B,EAAE,KAAK,IAAI,EAAE;QAC5C,MAAM,EAAE,UAAU,EAAE,GAAG,iBAAiB,CACvC;YACC;gBACC,EAAE,EAAE,GAAG;gBACP,IAAI,EAAE,OAAO;gBACb,YAAY,EAAE,GAAG;gBACjB,UAAU,EAAE,EAAE;gBACd,gBAAgB,EAAE,iCAAiC;gBACnD,SAAS,EAAE,SAAS;gBACpB,aAAa,EAAE,EAAE;gBACjB,iBAAiB,EAAE,IAAI;aACvB;YACD;gBACC,EAAE,EAAE,GAAG;gBACP,IAAI,EAAE,OAAO;gBACb,YAAY,EAAE,GAAG;gBACjB,UAAU,EAAE,EAAE;gBACd,gBAAgB,EAAE,kCAAkC;gBACpD,SAAS,EAAE,UAAU;gBACrB,aAAa,EAAE,EAAE;gBACjB,iBAAiB,EAAE,IAAI;aACvB;SACD,EACD;YACC;gBACC,IAAI,EAAE,OAAO;gBACb,MAAM,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE;aAC1E;SACD,CACD,CAAA;QAED,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,CAAA;QACnC,KAAK,CAAC,WAAW,CAAC,eAAe,CAAC,SAAS,CAAC,CAAA;QAC5C,KAAK,CAAC,YAAY,CAAC,kBAAkB,CACpC,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,IAAI,IAAI,EAAE,IAAI,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAC9D,CAAA;QAED,MAAM,cAAc,CAAC,sBAAsB,EAAE,iBAAiB,EAAE,cAAc,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAA;QAE5F,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,oBAAoB,EAAE,CAAA;QACvD,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,oBAAoB,EAAE,CAAA;QAC9C,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,oBAAoB,CAAC,oBAAoB,CAAC,CAAA;QAC3E,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAA;IACnD,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,+BAA+B,EAAE,KAAK,IAAI,EAAE;QAChD,MAAM,EAAE,UAAU,EAAE,GAAG,iBAAiB,CACvC;YACC;gBACC,EAAE,EAAE,GAAG;gBACP,IAAI,EAAE,OAAO;gBACb,YAAY,EAAE,GAAG;gBACjB,UAAU,EAAE,EAAE;gBACd,gBAAgB,EAAE,iCAAiC;gBACnD,SAAS,EAAE,SAAS;gBACpB,aAAa,EAAE,EAAE;gBACjB,iBAAiB,EAAE,IAAI;aACvB;SACD,EACD;YACC;gBACC,IAAI,EAAE,OAAO;gBACb,MAAM,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE;aAC1E;SACD,CACD,CAAA;QAED,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,CAAA;QACnC,KAAK,CAAC,WAAW,CAAC,eAAe,CAAC,SAAS,CAAC,CAAA;QAC5C,KAAK,CAAC,YAAY,CAAC,kBAAkB,CACpC,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,IAAI,IAAI,EAAE,IAAI,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAC9D,CAAA;QACD,KAAK,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAA;QAE/C,MAAM,cAAc,CAAC,sBAAsB,EAAE,iBAAiB,EAAE,cAAc,EAAE,EAAE,CAAC,CAAA;QAEnF,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,oBAAoB,EAAE,CAAA;QACvD,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,oBAAoB,EAAE,CAAA;IAC/C,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,yCAAyC,EAAE,KAAK,IAAI,EAAE;QAC1D,MAAM,EAAE,UAAU,EAAE,GAAG,iBAAiB,CACvC;YACC;gBACC,EAAE,EAAE,GAAG;gBACP,IAAI,EAAE,OAAO;gBACb,YAAY,EAAE,GAAG;gBACjB,UAAU,EAAE,EAAE;gBACd,gBAAgB,EAAE,oCAAoC;gBACtD,SAAS,EAAE,SAAS;gBACpB,aAAa,EAAE,EAAE;gBACjB,iBAAiB,EAAE,IAAI;aACvB;SACD,EACD;YACC;gBACC,IAAI,EAAE,OAAO;gBACb,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE;aAC9E;SACD,CACD,CAAA;QAED,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,CAAA;QACnC,KAAK,CAAC,WAAW,CAAC,eAAe,CAAC,SAAS,CAAC,CAAA;QAC5C,KAAK,CAAC,YAAY,CAAC,kBAAkB,CACpC,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,IAAI,IAAI,EAAE,IAAI,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAC9D,CAAA;QAED,MAAM,cAAc,CAAC,sBAAsB,EAAE,iBAAiB,EAAE,cAAc,EAAE,EAAE,CAAC,CAAA;QAEnF,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,oBAAoB,EAAE,CAAA;QACvD,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,oBAAoB,EAAE,CAAA;IAC/C,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,oDAAoD,EAAE,KAAK,IAAI,EAAE;QACrE,iBAAiB,CAChB;YACC;gBACC,EAAE,EAAE,GAAG;gBACP,IAAI,EAAE,OAAO;gBACb,YAAY,EAAE,GAAG;gBACjB,UAAU,EAAE,EAAE;gBACd,gBAAgB,EAAE,iCAAiC;gBACnD,SAAS,EAAE,SAAS;gBACpB,aAAa,EAAE,EAAE;gBACjB,iBAAiB,EAAE,IAAI;aACvB;SACD,EACD,EAAE,CAAC,sBAAsB;SACzB,CAAA;QAED,MAAM,cAAc,CAAC,sBAAsB,EAAE,iBAAiB,EAAE,cAAc,EAAE,EAAE,CAAC,CAAA;QAEnF,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAA;IAC/C,CAAC,CAAC,CAAA;AACH,CAAC,CAAC,CAAA"}
@@ -1,8 +0,0 @@
1
- import Sharp from 'sharp';
2
- import { LuzzleSelectable, Pieces } from '@luzzle/core';
3
- declare function generateVariantJobs(item: LuzzleSelectable<'pieces_items'>, asset: string, pieces: Pieces, widths: number[], formats: Array<'avif' | 'jpg'>): Promise<{
4
- width: number;
5
- format: (typeof formats)[number];
6
- sharp: Sharp.Sharp;
7
- }[]>;
8
- export { generateVariantJobs };
@@ -1,23 +0,0 @@
1
- import Sharp from 'sharp';
2
- function generateVariantSharpJob(sharp, width, format) {
3
- return sharp.clone().resize({ width }).toFormat(format);
4
- }
5
- async function generateVariantJobs(item, asset, pieces, widths, formats) {
6
- const jobs = [];
7
- try {
8
- const image = await pieces.getPieceAsset(asset);
9
- const sharpImage = Sharp(image);
10
- for (const format of formats) {
11
- for (const width of widths) {
12
- const sharp = generateVariantSharpJob(sharpImage, width, format);
13
- jobs.push({ width, format, sharp });
14
- }
15
- }
16
- }
17
- catch (error) {
18
- console.error(`error generating variant jobs for ${item.file_path} asset at ${asset}: ${error}`);
19
- }
20
- return jobs;
21
- }
22
- export { generateVariantJobs };
23
- //# sourceMappingURL=variants.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"variants.js","sourceRoot":"","sources":["../../../../src/commands/assets/variants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB,SAAS,uBAAuB,CAAC,KAAkB,EAAE,KAAa,EAAE,MAAsB;IACzF,OAAO,KAAK,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;AACxD,CAAC;AAED,KAAK,UAAU,mBAAmB,CACjC,IAAsC,EACtC,KAAa,EACb,MAAc,EACd,MAAgB,EAChB,OAA8B;IAE9B,MAAM,IAAI,GAIJ,EAAE,CAAA;IAER,IAAI,CAAC;QACJ,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;QAC/C,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,CAAA;QAE/B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC9B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC5B,MAAM,KAAK,GAAG,uBAAuB,CAAC,UAAU,EAAE,KAAK,EAAE,MAAM,CAAC,CAAA;gBAChE,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAA;YACpC,CAAC;QACF,CAAC;IACF,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,OAAO,CAAC,KAAK,CAAC,qCAAqC,IAAI,CAAC,SAAS,aAAa,KAAK,KAAK,KAAK,EAAE,CAAC,CAAA;IACjG,CAAC;IAED,OAAO,IAAI,CAAA;AACZ,CAAC;AAED,OAAO,EAAE,mBAAmB,EAAE,CAAA"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,48 +0,0 @@
1
- import { describe, test, expect, vi, afterEach } from 'vitest';
2
- import { generateVariantJobs } from './variants.js';
3
- import Sharp from 'sharp';
4
- vi.mock('sharp');
5
- describe('generateVariantJobs', () => {
6
- afterEach(() => {
7
- vi.clearAllMocks();
8
- });
9
- test('should return an empty array if getPieceAsset fails', async () => {
10
- const mockPieces = {
11
- getPieceAsset: vi.fn().mockRejectedValue(new Error('test error')),
12
- };
13
- const mockItem = {
14
- id: '1',
15
- type: 'test',
16
- file_path: 'path/to/file.jpg',
17
- };
18
- const consoleErrorSpy = vi.spyOn(console, 'error').mockImplementation(() => { });
19
- const jobs = await generateVariantJobs(mockItem, 'image.jpg', mockPieces, [100], ['avif', 'jpg']);
20
- expect(jobs).toEqual([]);
21
- expect(consoleErrorSpy).toHaveBeenCalledOnce();
22
- consoleErrorSpy.mockRestore();
23
- });
24
- test('should generate variant jobs for an image asset', async () => {
25
- const mockPieces = { getPieceAsset: vi.fn(() => 'asset_content') };
26
- const mockItem = {
27
- id: '1',
28
- type: 'test',
29
- file_path: 'path/to/file.jpg',
30
- };
31
- const mockSharp = {
32
- clone: vi.fn().mockReturnThis(),
33
- resize: vi.fn().mockReturnThis(),
34
- toFormat: vi.fn().mockReturnThis(),
35
- };
36
- vi.mocked(Sharp).mockReturnValue(mockSharp);
37
- const jobs = await generateVariantJobs(mockItem, 'image.jpg', mockPieces, [100, 200], ['avif', 'jpg']);
38
- expect(mockPieces.getPieceAsset).toHaveBeenCalledWith('image.jpg');
39
- expect(Sharp).toHaveBeenCalledWith('asset_content');
40
- expect(mockSharp.clone).toHaveBeenCalledTimes(4);
41
- expect(mockSharp.resize).toHaveBeenCalledWith({ width: 100 });
42
- expect(mockSharp.resize).toHaveBeenCalledWith({ width: 200 });
43
- expect(mockSharp.toFormat).toHaveBeenCalledWith('avif');
44
- expect(mockSharp.toFormat).toHaveBeenCalledWith('jpg');
45
- expect(jobs).toHaveLength(4);
46
- });
47
- });
48
- //# sourceMappingURL=variants.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"variants.test.js","sourceRoot":"","sources":["../../../../src/commands/assets/variants.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import type { Argv } from 'yargs';
2
- export default function configCommand(cli: Argv): Argv<{}>;
@@ -1,42 +0,0 @@
1
- import { validateHandler, getHandler, setHandler } from './index.js';
2
- export default function configCommand(cli) {
3
- return cli.command('config <subcommand>', 'Manage configuration', (yargs) => {
4
- yargs
5
- .command('validate', 'Validate the configuration file', function (yargs) {
6
- return yargs.option('config', {
7
- alias: 'c',
8
- type: 'string',
9
- description: 'Path to the configuration file',
10
- demandOption: true,
11
- });
12
- }, function (argv) {
13
- validateHandler(argv.config);
14
- })
15
- .command('get <path>', 'Get a value from the configuration', function (yargs) {
16
- return yargs.positional('path', {
17
- type: 'string',
18
- description: 'Path to the value to get',
19
- demandOption: true,
20
- });
21
- }, function (argv) {
22
- getHandler(argv.config, argv.path);
23
- })
24
- .command('set <path> <value>', 'Set a value in the configuration', function (yargs) {
25
- return yargs
26
- .positional('path', {
27
- type: 'string',
28
- description: 'Path to the value to set',
29
- demandOption: true,
30
- })
31
- .positional('value', {
32
- type: 'string',
33
- description: 'The value to set',
34
- demandOption: true,
35
- });
36
- }, function (argv) {
37
- setHandler(argv.config, argv.path, argv.value);
38
- })
39
- .demandCommand(1, 'You need to specify a subcommand [validate, get, set]');
40
- });
41
- }
42
- //# sourceMappingURL=command.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"command.js","sourceRoot":"","sources":["../../../../src/commands/config/command.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAEpE,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,GAAS;IAC9C,OAAO,GAAG,CAAC,OAAO,CAAC,qBAAqB,EAAE,sBAAsB,EAAE,CAAC,KAAK,EAAE,EAAE;QAC3E,KAAK;aACH,OAAO,CACP,UAAU,EACV,iCAAiC,EACjC,UAAS,KAAK;YACb,OAAO,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE;gBAC7B,KAAK,EAAE,GAAG;gBACV,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,gCAAgC;gBAC7C,YAAY,EAAE,IAAI;aAClB,CAAC,CAAA;QACH,CAAC,EACD,UAAS,IAAI;YACZ,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAC7B,CAAC,CACD;aACA,OAAO,CACP,YAAY,EACZ,oCAAoC,EACpC,UAAS,KAAK;YACb,OAAO,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE;gBAC/B,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,0BAA0B;gBACvC,YAAY,EAAE,IAAI;aAClB,CAAC,CAAA;QACH,CAAC,EACD,UAAS,IAAI;YACZ,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;QACnC,CAAC,CACD;aACA,OAAO,CACP,oBAAoB,EACpB,kCAAkC,EAClC,UAAS,KAAK;YACb,OAAO,KAAK;iBACV,UAAU,CAAC,MAAM,EAAE;gBACnB,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,0BAA0B;gBACvC,YAAY,EAAE,IAAI;aAClB,CAAC;iBACD,UAAU,CAAC,OAAO,EAAE;gBACpB,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,kBAAkB;gBAC/B,YAAY,EAAE,IAAI;aAClB,CAAC,CAAA;QACJ,CAAC,EACD,UAAS,IAAI;YACZ,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;QAC/C,CAAC,CACD;aACA,aAAa,CAAC,CAAC,EAAE,uDAAuD,CAAC,CAAA;IAC5E,CAAC,CAAC,CAAA;AACH,CAAC"}
@@ -1,3 +0,0 @@
1
- export declare function validateHandler(config: string): void;
2
- export declare function getHandler(userConfig: string, path: string): void;
3
- export declare function setHandler(userConfig: string, path: string, value: unknown): void;
@@ -1,37 +0,0 @@
1
- import { writeFileSync } from 'fs';
2
- import yaml from 'yaml';
3
- import { getConfigValue, setConfigValue, loadConfig } from '@luzzle/web.utils/server';
4
- export function validateHandler(config) {
5
- try {
6
- loadConfig(config);
7
- console.log('Configuration is valid.');
8
- }
9
- catch (error) {
10
- console.error('Configuration check failed:', error);
11
- process.exit(1);
12
- }
13
- }
14
- export function getHandler(userConfig, path) {
15
- try {
16
- const config = loadConfig(userConfig);
17
- const value = getConfigValue(config, path);
18
- console.log(value);
19
- }
20
- catch (error) {
21
- console.error('Could not get value:', error);
22
- process.exit(1);
23
- }
24
- }
25
- export function setHandler(userConfig, path, value) {
26
- try {
27
- const config = loadConfig(userConfig);
28
- setConfigValue(config, path, value);
29
- writeFileSync(userConfig, yaml.stringify(config));
30
- console.log('Configuration updated.');
31
- }
32
- catch (error) {
33
- console.error('Could not set value:', error);
34
- process.exit(1);
35
- }
36
- }
37
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/commands/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,IAAI,CAAA;AAClC,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAErF,MAAM,UAAU,eAAe,CAAC,MAAc;IAC5C,IAAI,CAAC;QACH,UAAU,CAAC,MAAM,CAAC,CAAA;QAClB,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAA;IACxC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAE,KAAK,CAAC,CAAA;QACnD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,UAAkB,EAAE,IAAY;IACzD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,UAAU,CAAC,UAAU,CAAC,CAAA;QACrC,MAAM,KAAK,GAAG,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;QAC1C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;IACpB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAA;QAC5C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,UAAkB,EAAE,IAAY,EAAE,KAAc;IACzE,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,UAAU,CAAC,UAAU,CAAC,CAAA;QACrC,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,CAAA;QACnC,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAA;QACjD,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAA;IACvC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAA;QAC5C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;AACH,CAAC"}
@@ -1 +0,0 @@
1
- export {};