@kardoe/quickback 0.4.3 → 0.5.1

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.
@@ -4,24 +4,75 @@
4
4
  * Loads configuration and feature definitions from disk.
5
5
  * This is CLI-side only - reads files and prepares them for the API.
6
6
  *
7
- * Supports two modes:
8
- * 1. Legacy mode: schema.ts + resource.ts separate files
9
- * 2. Combined mode: defineTable() in *.ts files (schema + config together)
7
+ * Uses combined mode: defineTable() in *.ts files (schema + config together)
10
8
  */
11
- import { existsSync, readdirSync, readFileSync, statSync } from 'fs';
9
+ import { promises as fs } from 'fs';
12
10
  import { join, basename, dirname } from 'path';
11
+ import { createHash } from 'crypto';
13
12
  import { build } from 'esbuild';
14
- import { tmpdir } from 'os';
15
13
  import { fileURLToPath } from 'url';
14
+ import { pathExists, runWithLimit } from './async-utils.js';
16
15
  // Get the directory of this file for resolving stubs
17
16
  const __filename = fileURLToPath(import.meta.url);
18
17
  const __dirname = dirname(__filename);
19
18
  const stubsPath = join(__dirname, 'compiler-stubs.js');
19
+ const READ_CONCURRENCY = 8;
20
+ let tsModulePromise = null;
21
+ async function getTypescript() {
22
+ if (!tsModulePromise) {
23
+ tsModulePromise = import('typescript').catch(() => null);
24
+ }
25
+ return tsModulePromise;
26
+ }
27
+ async function parseTableDefinitions(source) {
28
+ try {
29
+ const ts = await getTypescript();
30
+ if (!ts)
31
+ throw new Error('typescript not available');
32
+ const sourceFile = ts.createSourceFile('feature.ts', source, ts.ScriptTarget.Latest, true, ts.ScriptKind.TS);
33
+ const tableNames = [];
34
+ let hasResourceConfig = false;
35
+ const isTableCallee = (expr) => {
36
+ if (ts.isIdentifier(expr)) {
37
+ return expr.text === 'pgTable' || expr.text === 'sqliteTable';
38
+ }
39
+ if (ts.isPropertyAccessExpression(expr)) {
40
+ return expr.name.text === 'pgTable' || expr.name.text === 'sqliteTable';
41
+ }
42
+ return false;
43
+ };
44
+ const visit = (node) => {
45
+ if (ts.isExportAssignment(node)) {
46
+ const expr = node.expression;
47
+ if (ts.isCallExpression(expr) && ts.isIdentifier(expr.expression) && expr.expression.text === 'defineTable') {
48
+ hasResourceConfig = true;
49
+ }
50
+ }
51
+ if (ts.isVariableStatement(node) && node.modifiers?.some(m => m.kind === ts.SyntaxKind.ExportKeyword)) {
52
+ for (const decl of node.declarationList.declarations) {
53
+ if (ts.isIdentifier(decl.name) && decl.initializer && ts.isCallExpression(decl.initializer)) {
54
+ if (isTableCallee(decl.initializer.expression)) {
55
+ tableNames.push(decl.name.text);
56
+ }
57
+ }
58
+ }
59
+ }
60
+ ts.forEachChild(node, visit);
61
+ };
62
+ visit(sourceFile);
63
+ return { tableNames, hasResourceConfig };
64
+ }
65
+ catch {
66
+ const tableMatch = source.match(/export const (\w+)\s*=\s*(?:pg|sqlite)Table/);
67
+ const hasResourceConfig = /export default defineTable/.test(source);
68
+ return { tableNames: tableMatch ? [tableMatch[1]] : [], hasResourceConfig };
69
+ }
70
+ }
20
71
  /**
21
72
  * Load quickback.config.ts from disk
22
73
  */
23
74
  export async function loadConfig(configPath) {
24
- if (!existsSync(configPath)) {
75
+ if (!(await pathExists(configPath))) {
25
76
  throw new Error(`Config file not found: ${configPath}`);
26
77
  }
27
78
  const config = await loadTypeScriptFile(configPath);
@@ -52,128 +103,85 @@ export async function loadConfig(configPath) {
52
103
  * Load all features from definitions/features/
53
104
  */
54
105
  export async function loadFeatures(featuresDir) {
55
- if (!existsSync(featuresDir)) {
106
+ if (!(await pathExists(featuresDir))) {
56
107
  return [];
57
108
  }
58
- const features = [];
59
- const featureDirs = readdirSync(featuresDir).filter((f) => {
60
- const fullPath = join(featuresDir, f);
61
- return statSync(fullPath).isDirectory();
109
+ const entries = await fs.readdir(featuresDir, { withFileTypes: true });
110
+ const featureDirs = entries
111
+ .filter((d) => d.isDirectory())
112
+ .map((d) => d.name);
113
+ const results = new Array(featureDirs.length);
114
+ await runWithLimit(featureDirs.map((name, index) => ({ name, index })), READ_CONCURRENCY, async ({ name, index }) => {
115
+ const featureDir = join(featuresDir, name);
116
+ results[index] = await loadFeature(name, featureDir);
62
117
  });
63
- for (const featureName of featureDirs) {
64
- const featureDir = join(featuresDir, featureName);
65
- const feature = await loadFeature(featureName, featureDir);
66
- if (feature) {
67
- features.push(feature);
68
- }
69
- }
70
- return features;
118
+ return results.filter((f) => Boolean(f));
71
119
  }
72
120
  /**
73
121
  * Load a single feature from its directory
74
122
  *
75
- * Supports two modes:
76
- * 1. Legacy mode: schema.ts + resource.ts separate files
77
- * 2. Combined mode: defineTable() in *.ts files (schema + config together)
78
- *
79
- * Detection:
80
- * - If schema.ts exists → legacy mode
81
- * - If no schema.ts but *.ts files with sqliteTable/pgTable → combined mode
123
+ * Uses combined mode: defineTable() in *.ts files (schema + config together)
82
124
  *
83
125
  * Sends source code strings to the server for parsing.
84
126
  * This avoids needing drizzle-orm and @quickback/compiler at CLI runtime.
85
127
  */
86
128
  async function loadFeature(name, dir) {
87
- const schemaPath = join(dir, 'schema.ts');
88
- const resourcePath = join(dir, 'resource.ts');
89
129
  const actionsPath = join(dir, 'actions.ts');
90
- // Load actions source if exists (common to both modes)
130
+ // Load actions source if exists
91
131
  let actionsSource;
92
- if (existsSync(actionsPath)) {
93
- actionsSource = readFileSync(actionsPath, 'utf-8');
132
+ if (await pathExists(actionsPath)) {
133
+ actionsSource = await fs.readFile(actionsPath, 'utf-8');
94
134
  }
95
- // Load handler files if handlers/ or actions/ directory exists (common to both modes)
135
+ // Load handler files if handlers/ or actions/ directory exists
96
136
  let handlerFiles;
97
137
  // Check handlers/ directory
98
138
  const handlersDir = join(dir, 'handlers');
99
- if (existsSync(handlersDir) && statSync(handlersDir).isDirectory()) {
100
- handlerFiles = handlerFiles || {};
101
- const handlers = readdirSync(handlersDir).filter((f) => f.endsWith('.ts'));
102
- for (const handler of handlers) {
103
- const handlerPath = join(handlersDir, handler);
104
- handlerFiles[`handlers/${handler}`] = readFileSync(handlerPath, 'utf-8');
139
+ if (await pathExists(handlersDir)) {
140
+ const handlerEntries = await fs.readdir(handlersDir, { withFileTypes: true });
141
+ const tsHandlers = handlerEntries.filter((e) => e.isFile() && e.name.endsWith('.ts'));
142
+ if (tsHandlers.length > 0) {
143
+ handlerFiles = handlerFiles || {};
144
+ await runWithLimit(tsHandlers, READ_CONCURRENCY, async (entry) => {
145
+ handlerFiles[`handlers/${entry.name}`] = await fs.readFile(join(handlersDir, entry.name), 'utf-8');
146
+ });
105
147
  }
106
148
  }
107
149
  // Check actions/ directory (alternative convention)
108
150
  const actionsDir = join(dir, 'actions');
109
- if (existsSync(actionsDir) && statSync(actionsDir).isDirectory()) {
110
- handlerFiles = handlerFiles || {};
111
- const actionHandlers = readdirSync(actionsDir).filter((f) => f.endsWith('.ts'));
112
- for (const handler of actionHandlers) {
113
- const handlerPath = join(actionsDir, handler);
114
- handlerFiles[`actions/${handler}`] = readFileSync(handlerPath, 'utf-8');
151
+ if (await pathExists(actionsDir)) {
152
+ const actionEntries = await fs.readdir(actionsDir, { withFileTypes: true });
153
+ const tsActions = actionEntries.filter((e) => e.isFile() && e.name.endsWith('.ts'));
154
+ if (tsActions.length > 0) {
155
+ handlerFiles = handlerFiles || {};
156
+ await runWithLimit(tsActions, READ_CONCURRENCY, async (entry) => {
157
+ handlerFiles[`actions/${entry.name}`] = await fs.readFile(join(actionsDir, entry.name), 'utf-8');
158
+ });
115
159
  }
116
160
  }
117
- // Check for legacy mode (schema.ts exists)
118
- if (existsSync(schemaPath)) {
119
- return loadFeatureLegacy(name, dir, schemaPath, resourcePath, actionsSource, handlerFiles);
120
- }
121
- // Try combined mode - scan for table files
161
+ // Load combined mode - scan for table files with defineTable()
122
162
  return loadFeatureCombined(name, dir, actionsSource, handlerFiles);
123
163
  }
124
- /**
125
- * Load feature in legacy mode (schema.ts + resource.ts)
126
- */
127
- async function loadFeatureLegacy(name, dir, schemaPath, resourcePath, actionsSource, handlerFiles) {
128
- // Load schema source
129
- const schemaSource = readFileSync(schemaPath, 'utf-8');
130
- // Parse table name from schema - support both pgTable and sqliteTable
131
- const pgTableMatch = schemaSource.match(/export const (\w+) = pgTable/);
132
- const sqliteTableMatch = schemaSource.match(/export const (\w+) = sqliteTable/);
133
- const tableName = pgTableMatch?.[1] || sqliteTableMatch?.[1] || name;
134
- // Load resource source if exists (don't evaluate, send to server)
135
- let resourceSource;
136
- if (existsSync(resourcePath)) {
137
- resourceSource = readFileSync(resourcePath, 'utf-8');
138
- }
139
- return {
140
- name,
141
- schema: {
142
- tableName,
143
- columns: {}, // Column parsing happens on server
144
- source: schemaSource,
145
- },
146
- resourceSource,
147
- actionsSource,
148
- handlerFiles,
149
- };
150
- }
151
164
  /**
152
165
  * Load feature in combined mode (defineTable in *.ts files)
153
166
  */
154
167
  async function loadFeatureCombined(name, dir, actionsSource, handlerFiles) {
155
- const tables = [];
156
- // Scan for table files (*.ts except actions.ts)
157
- const files = readdirSync(dir).filter((f) => f.endsWith('.ts') && f !== 'actions.ts');
158
- for (const file of files) {
168
+ const entries = await fs.readdir(dir, { withFileTypes: true });
169
+ const files = entries.filter((e) => e.isFile() && e.name.endsWith('.ts') && e.name !== 'actions.ts');
170
+ // Use index-based results to preserve deterministic file ordering
171
+ const results = new Array(files.length);
172
+ await runWithLimit(files.map((entry, index) => ({ entry, index })), READ_CONCURRENCY, async ({ entry, index }) => {
173
+ const file = entry.name;
159
174
  const filePath = join(dir, file);
160
- // Skip directories
161
- if (statSync(filePath).isDirectory())
162
- continue;
163
- const source = readFileSync(filePath, 'utf-8');
164
- // Check for table export (pgTable or sqliteTable)
165
- const tableMatch = source.match(/export const (\w+)\s*=\s*(?:pg|sqlite)Table/);
166
- if (!tableMatch)
167
- continue;
168
- // Check for resource config (default export with defineTable)
169
- const hasResourceConfig = /export default defineTable/.test(source);
170
- tables.push({
175
+ const source = await fs.readFile(filePath, 'utf-8');
176
+ const { tableNames, hasResourceConfig } = await parseTableDefinitions(source);
177
+ results[index] = tableNames.map((tableName) => ({
171
178
  fileName: file,
172
- tableName: tableMatch[1],
179
+ tableName,
173
180
  source,
174
181
  hasResourceConfig,
175
- });
176
- }
182
+ }));
183
+ });
184
+ const tables = results.filter(Boolean).flat();
177
185
  if (tables.length === 0) {
178
186
  console.warn(`Feature ${name} has no schema.ts or table definitions, skipping`);
179
187
  return null;
@@ -195,14 +203,29 @@ async function loadFeatureCombined(name, dir, actionsSource, handlerFiles) {
195
203
  };
196
204
  }
197
205
  /**
198
- * Load and evaluate a TypeScript file
206
+ * Get or create the cache directory for compiled config files.
207
+ */
208
+ async function getCacheDir() {
209
+ const cacheDir = join(process.cwd(), 'node_modules', '.cache', 'quickback');
210
+ if (!(await pathExists(cacheDir))) {
211
+ await fs.mkdir(cacheDir, { recursive: true });
212
+ }
213
+ return cacheDir;
214
+ }
215
+ /**
216
+ * Load and evaluate a TypeScript file.
217
+ * Caches the esbuild output keyed by source content hash to skip
218
+ * recompilation when the config hasn't changed (~500-800ms savings).
199
219
  */
200
220
  async function loadTypeScriptFile(filePath) {
201
- const outfile = join(tmpdir(), `quickback-${Date.now()}-${basename(filePath)}.mjs`);
202
- try {
221
+ const source = await fs.readFile(filePath, 'utf-8');
222
+ const hash = createHash('sha256').update(source).digest('hex').slice(0, 16);
223
+ const cacheDir = await getCacheDir();
224
+ const cachedFile = join(cacheDir, `${basename(filePath, '.ts')}-${hash}.mjs`);
225
+ if (!(await pathExists(cachedFile))) {
203
226
  await build({
204
227
  entryPoints: [filePath],
205
- outfile,
228
+ outfile: cachedFile,
206
229
  bundle: true,
207
230
  format: 'esm',
208
231
  platform: 'node',
@@ -217,31 +240,20 @@ async function loadTypeScriptFile(filePath) {
217
240
  },
218
241
  logLevel: 'silent',
219
242
  });
220
- // Dynamic import the built file
221
- const module = await import(outfile);
222
- return module;
223
- }
224
- finally {
225
- // Cleanup temp file
226
- try {
227
- const { unlinkSync } = await import('fs');
228
- unlinkSync(outfile);
229
- }
230
- catch {
231
- // Ignore cleanup errors
232
- }
233
243
  }
244
+ const module = await import(cachedFile);
245
+ return module;
234
246
  }
235
247
  /**
236
248
  * Find the config file path
237
249
  */
238
- export function findConfigPath(startDir = process.cwd()) {
250
+ export async function findConfigPath(startDir = process.cwd()) {
239
251
  const candidates = [
240
252
  join(startDir, 'quickback.config.ts'),
241
253
  join(startDir, 'quickback', 'quickback.config.ts'),
242
254
  ];
243
255
  for (const candidate of candidates) {
244
- if (existsSync(candidate)) {
256
+ if (await pathExists(candidate)) {
245
257
  return candidate;
246
258
  }
247
259
  }
@@ -250,14 +262,14 @@ export function findConfigPath(startDir = process.cwd()) {
250
262
  /**
251
263
  * Find the features directory
252
264
  */
253
- export function findFeaturesDir(startDir = process.cwd()) {
265
+ export async function findFeaturesDir(startDir = process.cwd()) {
254
266
  const candidates = [
255
267
  join(startDir, 'quickback', 'features'), // New: quickback/features/
256
268
  join(startDir, 'definitions', 'features'), // Legacy: definitions/features/
257
269
  join(startDir, 'quickback', 'definitions', 'features'), // Legacy nested
258
270
  ];
259
271
  for (const candidate of candidates) {
260
- if (existsSync(candidate)) {
272
+ if (await pathExists(candidate)) {
261
273
  return candidate;
262
274
  }
263
275
  }
@@ -266,14 +278,14 @@ export function findFeaturesDir(startDir = process.cwd()) {
266
278
  /**
267
279
  * Find the services directory
268
280
  */
269
- export function findServicesDir(startDir = process.cwd()) {
281
+ export async function findServicesDir(startDir = process.cwd()) {
270
282
  const candidates = [
271
283
  join(startDir, 'quickback', 'services'), // New: quickback/services/
272
284
  join(startDir, 'definitions', 'services'), // Legacy: definitions/services/
273
285
  join(startDir, 'quickback', 'definitions', 'services'), // Legacy nested
274
286
  ];
275
287
  for (const candidate of candidates) {
276
- if (existsSync(candidate)) {
288
+ if (await pathExists(candidate)) {
277
289
  return candidate;
278
290
  }
279
291
  }
@@ -286,17 +298,17 @@ export async function loadServices(servicesDir) {
286
298
  const services = {};
287
299
  // Load queue handlers from services/queues/
288
300
  const queuesDir = join(servicesDir, 'queues');
289
- if (existsSync(queuesDir) && statSync(queuesDir).isDirectory()) {
301
+ if (await pathExists(queuesDir)) {
290
302
  services.queues = await loadQueueHandlers(queuesDir);
291
303
  }
292
304
  // Load realtime definitions from services/realtime/
293
305
  const realtimeDir = join(servicesDir, 'realtime');
294
- if (existsSync(realtimeDir) && statSync(realtimeDir).isDirectory()) {
306
+ if (await pathExists(realtimeDir)) {
295
307
  services.realtime = await loadRealtimeDefinitions(realtimeDir);
296
308
  }
297
309
  // Load embedding definitions from services/embeddings/
298
310
  const embeddingsDir = join(servicesDir, 'embeddings');
299
- if (existsSync(embeddingsDir) && statSync(embeddingsDir).isDirectory()) {
311
+ if (await pathExists(embeddingsDir)) {
300
312
  services.embeddings = await loadEmbeddingDefinitions(embeddingsDir);
301
313
  }
302
314
  return services;
@@ -306,22 +318,22 @@ export async function loadServices(servicesDir) {
306
318
  */
307
319
  async function loadQueueHandlers(queuesDir) {
308
320
  const handlers = [];
309
- const files = readdirSync(queuesDir).filter((f) => f.endsWith('.ts') && !f.startsWith('_'));
310
- for (const file of files) {
321
+ const entries = await fs.readdir(queuesDir, { withFileTypes: true });
322
+ const files = entries
323
+ .filter((e) => e.isFile() && e.name.endsWith('.ts') && !e.name.startsWith('_'))
324
+ .map((e) => e.name);
325
+ await runWithLimit(files, READ_CONCURRENCY, async (file) => {
311
326
  const filePath = join(queuesDir, file);
312
- // Skip directories
313
- if (statSync(filePath).isDirectory())
314
- continue;
315
- const source = readFileSync(filePath, 'utf-8');
327
+ const source = await fs.readFile(filePath, 'utf-8');
316
328
  // Check for defineQueue
317
329
  if (!source.includes('defineQueue'))
318
- continue;
330
+ return;
319
331
  // Extract name and messageType from source
320
332
  const nameMatch = source.match(/name\s*:\s*['"]([^'"]+)['"]/);
321
333
  const messageTypeMatch = source.match(/messageType\s*:\s*['"]([^'"]+)['"]/);
322
334
  if (!nameMatch || !messageTypeMatch) {
323
335
  console.warn(`Queue handler ${file} missing required name or messageType, skipping`);
324
- continue;
336
+ return;
325
337
  }
326
338
  handlers.push({
327
339
  fileName: file,
@@ -329,7 +341,7 @@ async function loadQueueHandlers(queuesDir) {
329
341
  messageType: messageTypeMatch[1],
330
342
  source,
331
343
  });
332
- }
344
+ });
333
345
  return handlers;
334
346
  }
335
347
  /**
@@ -337,16 +349,16 @@ async function loadQueueHandlers(queuesDir) {
337
349
  */
338
350
  async function loadRealtimeDefinitions(realtimeDir) {
339
351
  const definitions = [];
340
- const files = readdirSync(realtimeDir).filter((f) => f.endsWith('.ts') && !f.startsWith('_'));
341
- for (const file of files) {
352
+ const entries = await fs.readdir(realtimeDir, { withFileTypes: true });
353
+ const files = entries
354
+ .filter((e) => e.isFile() && e.name.endsWith('.ts') && !e.name.startsWith('_'))
355
+ .map((e) => e.name);
356
+ await runWithLimit(files, READ_CONCURRENCY, async (file) => {
342
357
  const filePath = join(realtimeDir, file);
343
- // Skip directories
344
- if (statSync(filePath).isDirectory())
345
- continue;
346
- const source = readFileSync(filePath, 'utf-8');
358
+ const source = await fs.readFile(filePath, 'utf-8');
347
359
  // Check for defineRealtime
348
360
  if (!source.includes('defineRealtime'))
349
- continue;
361
+ return;
350
362
  // Extract name from source
351
363
  const nameMatch = source.match(/name\s*:\s*['"]([^'"]+)['"]/);
352
364
  // Extract events array
@@ -359,7 +371,7 @@ async function loadRealtimeDefinitions(realtimeDir) {
359
371
  }
360
372
  if (!nameMatch || events.length === 0) {
361
373
  console.warn(`Realtime definition ${file} missing required name or events, skipping`);
362
- continue;
374
+ return;
363
375
  }
364
376
  definitions.push({
365
377
  fileName: file,
@@ -367,7 +379,7 @@ async function loadRealtimeDefinitions(realtimeDir) {
367
379
  events,
368
380
  source,
369
381
  });
370
- }
382
+ });
371
383
  return definitions;
372
384
  }
373
385
  /**
@@ -375,23 +387,23 @@ async function loadRealtimeDefinitions(realtimeDir) {
375
387
  */
376
388
  async function loadEmbeddingDefinitions(embeddingsDir) {
377
389
  const definitions = [];
378
- const files = readdirSync(embeddingsDir).filter((f) => f.endsWith('.ts') && !f.startsWith('_'));
379
- for (const file of files) {
390
+ const entries = await fs.readdir(embeddingsDir, { withFileTypes: true });
391
+ const files = entries
392
+ .filter((e) => e.isFile() && e.name.endsWith('.ts') && !e.name.startsWith('_'))
393
+ .map((e) => e.name);
394
+ await runWithLimit(files, READ_CONCURRENCY, async (file) => {
380
395
  const filePath = join(embeddingsDir, file);
381
- // Skip directories
382
- if (statSync(filePath).isDirectory())
383
- continue;
384
- const sourceCode = readFileSync(filePath, 'utf-8');
396
+ const sourceCode = await fs.readFile(filePath, 'utf-8');
385
397
  // Check for defineEmbedding
386
398
  if (!sourceCode.includes('defineEmbedding'))
387
- continue;
399
+ return;
388
400
  // Extract name from source
389
401
  const nameMatch = sourceCode.match(/name\s*:\s*['"]([^'"]+)['"]/);
390
402
  // Extract source table from source
391
403
  const sourceMatch = sourceCode.match(/source\s*:\s*['"]([^'"]+)['"]/);
392
404
  if (!nameMatch || !sourceMatch) {
393
405
  console.warn(`Embedding definition ${file} missing required name or source, skipping`);
394
- continue;
406
+ return;
395
407
  }
396
408
  definitions.push({
397
409
  fileName: file,
@@ -399,14 +411,14 @@ async function loadEmbeddingDefinitions(embeddingsDir) {
399
411
  source: sourceMatch[1],
400
412
  sourceCode,
401
413
  });
402
- }
414
+ });
403
415
  return definitions;
404
416
  }
405
417
  /**
406
418
  * Load existing drizzle migration state (meta files and journal)
407
419
  * This allows the compiler to generate incremental migrations (ALTER vs CREATE)
408
420
  */
409
- export function loadDrizzleMeta(projectRoot) {
421
+ export async function loadDrizzleMeta(projectRoot) {
410
422
  const metaFiles = {};
411
423
  // Check for features drizzle meta (dual database mode)
412
424
  const featuresMeta = join(projectRoot, 'drizzle', 'features', 'meta');
@@ -414,11 +426,11 @@ export function loadDrizzleMeta(projectRoot) {
414
426
  // Determine which meta dir exists and its relative path for the compiler
415
427
  let metaDir = null;
416
428
  let relativePath = '';
417
- if (existsSync(featuresMeta)) {
429
+ if (await pathExists(featuresMeta)) {
418
430
  metaDir = featuresMeta;
419
431
  relativePath = 'drizzle/features/meta';
420
432
  }
421
- else if (existsSync(legacyMeta)) {
433
+ else if (await pathExists(legacyMeta)) {
422
434
  metaDir = legacyMeta;
423
435
  relativePath = 'drizzle/meta';
424
436
  }
@@ -426,13 +438,11 @@ export function loadDrizzleMeta(projectRoot) {
426
438
  return undefined;
427
439
  }
428
440
  try {
429
- const files = readdirSync(metaDir);
430
- for (const file of files) {
431
- if (file.endsWith('.json')) {
432
- const filePath = join(metaDir, file);
433
- metaFiles[`${relativePath}/${file}`] = readFileSync(filePath, 'utf-8');
434
- }
435
- }
441
+ const files = await fs.readdir(metaDir);
442
+ await runWithLimit(files.filter((file) => file.endsWith('.json')), READ_CONCURRENCY, async (file) => {
443
+ const filePath = join(metaDir, file);
444
+ metaFiles[`${relativePath}/${file}`] = await fs.readFile(filePath, 'utf-8');
445
+ });
436
446
  return Object.keys(metaFiles).length > 0 ? metaFiles : undefined;
437
447
  }
438
448
  catch {
@@ -1 +1 @@
1
- {"version":3,"file":"file-loader.js","sourceRoot":"","sources":["../../src/lib/file-loader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AACrE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/C,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAEpC,qDAAqD;AACrD,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AACtC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC;AA+FvD;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,UAAkB;IACjD,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,0BAA0B,UAAU,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,UAAU,CAAC,CAAC;IAEpD,wBAAwB;IACxB,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC;IAE5C,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAED,qDAAqD;IACrD,IAAI,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;IAC/B,IAAI,CAAC,MAAM,IAAI,UAAU,CAAC,SAAS,EAAE,CAAC;QACpC,qCAAqC;QACrC,MAAM,WAAW,GAAG,UAAU,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC;QACvD,IAAI,WAAW,KAAK,YAAY;YAAE,MAAM,GAAG,YAAY,CAAC;aACnD,IAAI,WAAW,KAAK,KAAK;YAAE,MAAM,GAAG,KAAK,CAAC;IACjD,CAAC;IAED,OAAO;QACL,IAAI,EAAE,UAAU,CAAC,IAAI;QACrB,MAAM,EAAE,MAAM,IAAI,YAAY;QAC9B,QAAQ,EAAE,UAAU,CAAC,QAAQ;QAC7B,SAAS,EAAE,UAAU,CAAC,SAAS;QAC/B,KAAK,EAAE,UAAU,CAAC,KAAK;KACxB,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,WAAmB;IACpD,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAC7B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,QAAQ,GAAoB,EAAE,CAAC;IACrC,MAAM,WAAW,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;QACxD,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QACtC,OAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,KAAK,MAAM,WAAW,IAAI,WAAW,EAAE,CAAC;QACtC,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;QAClD,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;QAC3D,IAAI,OAAO,EAAE,CAAC;YACZ,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,KAAK,UAAU,WAAW,CAAC,IAAY,EAAE,GAAW;IAClD,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IAC1C,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;IAC9C,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;IAE5C,uDAAuD;IACvD,IAAI,aAAiC,CAAC;IACtC,IAAI,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAC5B,aAAa,GAAG,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IACrD,CAAC;IAED,sFAAsF;IACtF,IAAI,YAAgD,CAAC;IAErD,4BAA4B;IAC5B,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IAC1C,IAAI,UAAU,CAAC,WAAW,CAAC,IAAI,QAAQ,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;QACnE,YAAY,GAAG,YAAY,IAAI,EAAE,CAAC;QAClC,MAAM,QAAQ,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QAC3E,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;YAC/C,YAAY,CAAC,YAAY,OAAO,EAAE,CAAC,GAAG,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAC3E,CAAC;IACH,CAAC;IAED,oDAAoD;IACpD,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IACxC,IAAI,UAAU,CAAC,UAAU,CAAC,IAAI,QAAQ,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;QACjE,YAAY,GAAG,YAAY,IAAI,EAAE,CAAC;QAClC,MAAM,cAAc,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QAChF,KAAK,MAAM,OAAO,IAAI,cAAc,EAAE,CAAC;YACrC,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YAC9C,YAAY,CAAC,WAAW,OAAO,EAAE,CAAC,GAAG,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAC1E,CAAC;IACH,CAAC;IAED,2CAA2C;IAC3C,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC3B,OAAO,iBAAiB,CAAC,IAAI,EAAE,GAAG,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,CAAC,CAAC;IAC7F,CAAC;IAED,2CAA2C;IAC3C,OAAO,mBAAmB,CAAC,IAAI,EAAE,GAAG,EAAE,aAAa,EAAE,YAAY,CAAC,CAAC;AACrE,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,iBAAiB,CAC9B,IAAY,EACZ,GAAW,EACX,UAAkB,EAClB,YAAoB,EACpB,aAAiC,EACjC,YAAgD;IAEhD,qBAAqB;IACrB,MAAM,YAAY,GAAG,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAEvD,sEAAsE;IACtE,MAAM,YAAY,GAAG,YAAY,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;IACxE,MAAM,gBAAgB,GAAG,YAAY,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;IAChF,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC,CAAC,CAAC,IAAI,gBAAgB,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;IAErE,kEAAkE;IAClE,IAAI,cAAkC,CAAC;IACvC,IAAI,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAC7B,cAAc,GAAG,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IACvD,CAAC;IAED,OAAO;QACL,IAAI;QACJ,MAAM,EAAE;YACN,SAAS;YACT,OAAO,EAAE,EAAE,EAAE,mCAAmC;YAChD,MAAM,EAAE,YAAY;SACrB;QACD,cAAc;QACd,aAAa;QACb,YAAY;KACb,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,mBAAmB,CAChC,IAAY,EACZ,GAAW,EACX,aAAiC,EACjC,YAAgD;IAEhD,MAAM,MAAM,GAA4B,EAAE,CAAC;IAE3C,gDAAgD;IAChD,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAC1C,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,YAAY,CACxC,CAAC;IAEF,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAEjC,mBAAmB;QACnB,IAAI,QAAQ,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE;YAAE,SAAS;QAE/C,MAAM,MAAM,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAE/C,kDAAkD;QAClD,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC;QAC/E,IAAI,CAAC,UAAU;YAAE,SAAS;QAE1B,8DAA8D;QAC9D,MAAM,iBAAiB,GAAG,4BAA4B,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAEpE,MAAM,CAAC,IAAI,CAAC;YACV,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC;YACxB,MAAM;YACN,iBAAiB;SAClB,CAAC,CAAC;IACL,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC,IAAI,CAAC,WAAW,IAAI,kDAAkD,CAAC,CAAC;QAChF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,6EAA6E;IAC7E,MAAM,YAAY,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IAE/B,OAAO;QACL,IAAI;QACJ,MAAM,EAAE;YACN,SAAS,EAAE,YAAY,CAAC,SAAS;YACjC,OAAO,EAAE,EAAE,EAAE,mCAAmC;YAChD,MAAM,EAAE,YAAY,CAAC,MAAM;SAC5B;QACD,MAAM;QACN,sEAAsE;QACtE,cAAc,EAAE,YAAY,CAAC,iBAAiB,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;QAChF,aAAa;QACb,YAAY;KACb,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,kBAAkB,CAAC,QAAgB;IAChD,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,aAAa,IAAI,CAAC,GAAG,EAAE,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAEpF,IAAI,CAAC;QACH,MAAM,KAAK,CAAC;YACV,WAAW,EAAE,CAAC,QAAQ,CAAC;YACvB,OAAO;YACP,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,KAAK;YACb,QAAQ,EAAE,MAAM;YAChB,MAAM,EAAE,QAAQ;YAChB,QAAQ,EAAE;gBACR,aAAa;gBACb,eAAe;gBACf,KAAK;aACN;YACD,KAAK,EAAE;gBACL,qBAAqB,EAAE,SAAS;aACjC;YACD,QAAQ,EAAE,QAAQ;SACnB,CAAC,CAAC;QAEH,gCAAgC;QAChC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC;QACrC,OAAO,MAAM,CAAC;IAChB,CAAC;YAAS,CAAC;QACT,oBAAoB;QACpB,IAAI,CAAC;YACH,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;YAC1C,UAAU,CAAC,OAAO,CAAC,CAAC;QACtB,CAAC;QAAC,MAAM,CAAC;YACP,wBAAwB;QAC1B,CAAC;IACH,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,WAAmB,OAAO,CAAC,GAAG,EAAE;IAC7D,MAAM,UAAU,GAAG;QACjB,IAAI,CAAC,QAAQ,EAAE,qBAAqB,CAAC;QACrC,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,qBAAqB,CAAC;KACnD,CAAC;IAEF,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC1B,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,WAAmB,OAAO,CAAC,GAAG,EAAE;IAC9D,MAAM,UAAU,GAAG;QACjB,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,UAAU,CAAC,EAAY,2BAA2B;QAC9E,IAAI,CAAC,QAAQ,EAAE,aAAa,EAAE,UAAU,CAAC,EAAW,gCAAgC;QACpF,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE,UAAU,CAAC,EAAE,gBAAgB;KACzE,CAAC;IAEF,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC1B,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,WAAmB,OAAO,CAAC,GAAG,EAAE;IAC9D,MAAM,UAAU,GAAG;QACjB,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,UAAU,CAAC,EAAY,2BAA2B;QAC9E,IAAI,CAAC,QAAQ,EAAE,aAAa,EAAE,UAAU,CAAC,EAAW,gCAAgC;QACpF,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE,UAAU,CAAC,EAAE,gBAAgB;KACzE,CAAC;IAEF,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC1B,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,WAAmB;IACpD,MAAM,QAAQ,GAAmB,EAAE,CAAC;IAEpC,4CAA4C;IAC5C,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IAC9C,IAAI,UAAU,CAAC,SAAS,CAAC,IAAI,QAAQ,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;QAC/D,QAAQ,CAAC,MAAM,GAAG,MAAM,iBAAiB,CAAC,SAAS,CAAC,CAAC;IACvD,CAAC;IAED,oDAAoD;IACpD,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IAClD,IAAI,UAAU,CAAC,WAAW,CAAC,IAAI,QAAQ,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;QACnE,QAAQ,CAAC,QAAQ,GAAG,MAAM,uBAAuB,CAAC,WAAW,CAAC,CAAC;IACjE,CAAC;IAED,uDAAuD;IACvD,MAAM,aAAa,GAAG,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;IACtD,IAAI,UAAU,CAAC,aAAa,CAAC,IAAI,QAAQ,CAAC,aAAa,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;QACvE,QAAQ,CAAC,UAAU,GAAG,MAAM,wBAAwB,CAAC,aAAa,CAAC,CAAC;IACtE,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,iBAAiB,CAAC,SAAiB;IAChD,MAAM,QAAQ,GAAyB,EAAE,CAAC;IAE1C,MAAM,KAAK,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAChD,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CACxC,CAAC;IAEF,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAEvC,mBAAmB;QACnB,IAAI,QAAQ,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE;YAAE,SAAS;QAE/C,MAAM,MAAM,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAE/C,wBAAwB;QACxB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC;YAAE,SAAS;QAE9C,2CAA2C;QAC3C,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;QAC9D,MAAM,gBAAgB,GAAG,MAAM,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;QAE5E,IAAI,CAAC,SAAS,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACpC,OAAO,CAAC,IAAI,CAAC,iBAAiB,IAAI,iDAAiD,CAAC,CAAC;YACrF,SAAS;QACX,CAAC;QAED,QAAQ,CAAC,IAAI,CAAC;YACZ,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;YAClB,WAAW,EAAE,gBAAgB,CAAC,CAAC,CAAC;YAChC,MAAM;SACP,CAAC,CAAC;IACL,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,uBAAuB,CAAC,WAAmB;IACxD,MAAM,WAAW,GAA+B,EAAE,CAAC;IAEnD,MAAM,KAAK,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAClD,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CACxC,CAAC;IAEF,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QAEzC,mBAAmB;QACnB,IAAI,QAAQ,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE;YAAE,SAAS;QAE/C,MAAM,MAAM,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAE/C,2BAA2B;QAC3B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC;YAAE,SAAS;QAEjD,2BAA2B;QAC3B,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;QAE9D,uBAAuB;QACvB,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC9D,IAAI,MAAM,GAAa,EAAE,CAAC;QAC1B,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,aAAa,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;YACrC,MAAM,YAAY,GAAG,aAAa,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;YACjE,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACnD,CAAC;QAED,IAAI,CAAC,SAAS,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtC,OAAO,CAAC,IAAI,CAAC,uBAAuB,IAAI,4CAA4C,CAAC,CAAC;YACtF,SAAS;QACX,CAAC;QAED,WAAW,CAAC,IAAI,CAAC;YACf,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;YAClB,MAAM;YACN,MAAM;SACP,CAAC,CAAC;IACL,CAAC;IAED,OAAO,WAAW,CAAC;AACrB,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,wBAAwB,CAAC,aAAqB;IAC3D,MAAM,WAAW,GAAgC,EAAE,CAAC;IAEpD,MAAM,KAAK,GAAG,WAAW,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CACpD,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CACxC,CAAC;IAEF,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;QAE3C,mBAAmB;QACnB,IAAI,QAAQ,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE;YAAE,SAAS;QAE/C,MAAM,UAAU,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAEnD,4BAA4B;QAC5B,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,iBAAiB,CAAC;YAAE,SAAS;QAEtD,2BAA2B;QAC3B,MAAM,SAAS,GAAG,UAAU,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;QAElE,mCAAmC;QACnC,MAAM,WAAW,GAAG,UAAU,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;QAEtE,IAAI,CAAC,SAAS,IAAI,CAAC,WAAW,EAAE,CAAC;YAC/B,OAAO,CAAC,IAAI,CAAC,wBAAwB,IAAI,4CAA4C,CAAC,CAAC;YACvF,SAAS;QACX,CAAC;QAED,WAAW,CAAC,IAAI,CAAC;YACf,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;YAClB,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC;YACtB,UAAU;SACX,CAAC,CAAC;IACL,CAAC;IAED,OAAO,WAAW,CAAC;AACrB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,WAAmB;IACjD,MAAM,SAAS,GAA2B,EAAE,CAAC;IAE7C,uDAAuD;IACvD,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;IACtE,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IAExD,yEAAyE;IACzE,IAAI,OAAO,GAAkB,IAAI,CAAC;IAClC,IAAI,YAAY,GAAW,EAAE,CAAC;IAE9B,IAAI,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAC7B,OAAO,GAAG,YAAY,CAAC;QACvB,YAAY,GAAG,uBAAuB,CAAC;IACzC,CAAC;SAAM,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAClC,OAAO,GAAG,UAAU,CAAC;QACrB,YAAY,GAAG,cAAc,CAAC;IAChC,CAAC;IAED,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;QACnC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC3B,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;gBACrC,SAAS,CAAC,GAAG,YAAY,IAAI,IAAI,EAAE,CAAC,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YACzE,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;IACnE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"file-loader.js","sourceRoot":"","sources":["../../src/lib/file-loader.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,IAAI,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACpC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAE5D,qDAAqD;AACrD,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AACtC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC;AACvD,MAAM,gBAAgB,GAAG,CAAC,CAAC;AAE3B,IAAI,eAAe,GAAuD,IAAI,CAAC;AAE/E,KAAK,UAAU,aAAa;IAC1B,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,eAAe,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IAC3D,CAAC;IACD,OAAO,eAAe,CAAC;AACzB,CAAC;AAED,KAAK,UAAU,qBAAqB,CAAC,MAAc;IACjD,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,MAAM,aAAa,EAAE,CAAC;QACjC,IAAI,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QACrD,MAAM,UAAU,GAAG,EAAE,CAAC,gBAAgB,CACpC,YAAY,EACZ,MAAM,EACN,EAAE,CAAC,YAAY,CAAC,MAAM,EACtB,IAAI,EACJ,EAAE,CAAC,UAAU,CAAC,EAAE,CACjB,CAAC;QAEF,MAAM,UAAU,GAAa,EAAE,CAAC;QAChC,IAAI,iBAAiB,GAAG,KAAK,CAAC;QAE9B,MAAM,aAAa,GAAG,CAAC,IAAS,EAAW,EAAE;YAC3C,IAAI,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC1B,OAAO,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,aAAa,CAAC;YAChE,CAAC;YACD,IAAI,EAAE,CAAC,0BAA0B,CAAC,IAAI,CAAC,EAAE,CAAC;gBACxC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,aAAa,CAAC;YAC1E,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC,CAAC;QAEF,MAAM,KAAK,GAAG,CAAC,IAAS,EAAE,EAAE;YAC1B,IAAI,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;gBAChC,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC;gBAC7B,IAAI,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;oBAC5G,iBAAiB,GAAG,IAAI,CAAC;gBAC3B,CAAC;YACH,CAAC;YAED,IAAI,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;gBACtG,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE,CAAC;oBACrD,IAAI,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;wBAC5F,IAAI,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE,CAAC;4BAC/C,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;wBAClC,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;YAED,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC/B,CAAC,CAAC;QAEF,KAAK,CAAC,UAAU,CAAC,CAAC;QAElB,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,CAAC;IAC3C,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC;QAC/E,MAAM,iBAAiB,GAAG,4BAA4B,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACpE,OAAO,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,iBAAiB,EAAE,CAAC;IAC9E,CAAC;AACH,CAAC;AA+FD;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,UAAkB;IACjD,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CAAC,0BAA0B,UAAU,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,UAAU,CAAC,CAAC;IAEpD,wBAAwB;IACxB,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC;IAE5C,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAED,qDAAqD;IACrD,IAAI,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;IAC/B,IAAI,CAAC,MAAM,IAAI,UAAU,CAAC,SAAS,EAAE,CAAC;QACpC,qCAAqC;QACrC,MAAM,WAAW,GAAG,UAAU,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC;QACvD,IAAI,WAAW,KAAK,YAAY;YAAE,MAAM,GAAG,YAAY,CAAC;aACnD,IAAI,WAAW,KAAK,KAAK;YAAE,MAAM,GAAG,KAAK,CAAC;IACjD,CAAC;IAED,OAAO;QACL,IAAI,EAAE,UAAU,CAAC,IAAI;QACrB,MAAM,EAAE,MAAM,IAAI,YAAY;QAC9B,QAAQ,EAAE,UAAU,CAAC,QAAQ;QAC7B,SAAS,EAAE,UAAU,CAAC,SAAS;QAC/B,KAAK,EAAE,UAAU,CAAC,KAAK;KACxB,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,WAAmB;IACpD,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC;QACrC,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IACvE,MAAM,WAAW,GAAG,OAAO;SACxB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;SAC9B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAEtB,MAAM,OAAO,GAAgC,IAAI,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAC3E,MAAM,YAAY,CAChB,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,EACnD,gBAAgB,EAChB,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE;QACxB,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QAC3C,OAAO,CAAC,KAAK,CAAC,GAAG,MAAM,WAAW,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IACvD,CAAC,CACF,CAAC;IAEF,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAsB,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/D,CAAC;AAED;;;;;;;GAOG;AACH,KAAK,UAAU,WAAW,CAAC,IAAY,EAAE,GAAW;IAClD,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;IAE5C,gCAAgC;IAChC,IAAI,aAAiC,CAAC;IACtC,IAAI,MAAM,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAClC,aAAa,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAC1D,CAAC;IAED,+DAA+D;IAC/D,IAAI,YAAgD,CAAC;IAErD,4BAA4B;IAC5B,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IAC1C,IAAI,MAAM,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAClC,MAAM,cAAc,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9E,MAAM,UAAU,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QACtF,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,YAAY,GAAG,YAAY,IAAI,EAAE,CAAC;YAClC,MAAM,YAAY,CAAC,UAAU,EAAE,gBAAgB,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;gBAC/D,YAAa,CAAC,YAAY,KAAK,CAAC,IAAI,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;YACtG,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,oDAAoD;IACpD,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IACxC,IAAI,MAAM,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QACjC,MAAM,aAAa,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5E,MAAM,SAAS,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QACpF,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,YAAY,GAAG,YAAY,IAAI,EAAE,CAAC;YAClC,MAAM,YAAY,CAAC,SAAS,EAAE,gBAAgB,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;gBAC9D,YAAa,CAAC,WAAW,KAAK,CAAC,IAAI,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;YACpG,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,+DAA+D;IAC/D,OAAO,mBAAmB,CAAC,IAAI,EAAE,GAAG,EAAE,aAAa,EAAE,YAAY,CAAC,CAAC;AACrE,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,mBAAmB,CAChC,IAAY,EACZ,GAAW,EACX,aAAiC,EACjC,YAAgD;IAEhD,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/D,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CACjC,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,YAAY,CAChE,CAAC;IAEF,kEAAkE;IAClE,MAAM,OAAO,GAAmC,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACxE,MAAM,YAAY,CAChB,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,EAC/C,gBAAgB,EAChB,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE;QACzB,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QACxB,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACjC,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAEpD,MAAM,EAAE,UAAU,EAAE,iBAAiB,EAAE,GAAG,MAAM,qBAAqB,CAAC,MAAM,CAAC,CAAC;QAC9E,OAAO,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;YAC9C,QAAQ,EAAE,IAAI;YACd,SAAS;YACT,MAAM;YACN,iBAAiB;SAClB,CAAC,CAAC,CAAC;IACN,CAAC,CACF,CAAC;IAEF,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;IAE9C,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC,IAAI,CAAC,WAAW,IAAI,kDAAkD,CAAC,CAAC;QAChF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,6EAA6E;IAC7E,MAAM,YAAY,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IAE/B,OAAO;QACL,IAAI;QACJ,MAAM,EAAE;YACN,SAAS,EAAE,YAAY,CAAC,SAAS;YACjC,OAAO,EAAE,EAAE,EAAE,mCAAmC;YAChD,MAAM,EAAE,YAAY,CAAC,MAAM;SAC5B;QACD,MAAM;QACN,sEAAsE;QACtE,cAAc,EAAE,YAAY,CAAC,iBAAiB,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;QAChF,aAAa;QACb,YAAY;KACb,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,WAAW;IACxB,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;IAC5E,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;QAClC,MAAM,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAChD,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,kBAAkB,CAAC,QAAgB;IAChD,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACpD,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC5E,MAAM,QAAQ,GAAG,MAAM,WAAW,EAAE,CAAC;IACrC,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,IAAI,MAAM,CAAC,CAAC;IAE9E,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;QACpC,MAAM,KAAK,CAAC;YACV,WAAW,EAAE,CAAC,QAAQ,CAAC;YACvB,OAAO,EAAE,UAAU;YACnB,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,KAAK;YACb,QAAQ,EAAE,MAAM;YAChB,MAAM,EAAE,QAAQ;YAChB,QAAQ,EAAE;gBACR,aAAa;gBACb,eAAe;gBACf,KAAK;aACN;YACD,KAAK,EAAE;gBACL,qBAAqB,EAAE,SAAS;aACjC;YACD,QAAQ,EAAE,QAAQ;SACnB,CAAC,CAAC;IACL,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC;IACxC,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,WAAmB,OAAO,CAAC,GAAG,EAAE;IACnE,MAAM,UAAU,GAAG;QACjB,IAAI,CAAC,QAAQ,EAAE,qBAAqB,CAAC;QACrC,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,qBAAqB,CAAC;KACnD,CAAC;IAEF,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,IAAI,MAAM,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAChC,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,WAAmB,OAAO,CAAC,GAAG,EAAE;IACpE,MAAM,UAAU,GAAG;QACjB,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,UAAU,CAAC,EAAY,2BAA2B;QAC9E,IAAI,CAAC,QAAQ,EAAE,aAAa,EAAE,UAAU,CAAC,EAAW,gCAAgC;QACpF,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE,UAAU,CAAC,EAAE,gBAAgB;KACzE,CAAC;IAEF,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,IAAI,MAAM,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAChC,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,WAAmB,OAAO,CAAC,GAAG,EAAE;IACpE,MAAM,UAAU,GAAG;QACjB,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,UAAU,CAAC,EAAY,2BAA2B;QAC9E,IAAI,CAAC,QAAQ,EAAE,aAAa,EAAE,UAAU,CAAC,EAAW,gCAAgC;QACpF,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE,UAAU,CAAC,EAAE,gBAAgB;KACzE,CAAC;IAEF,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,IAAI,MAAM,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAChC,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,WAAmB;IACpD,MAAM,QAAQ,GAAmB,EAAE,CAAC;IAEpC,4CAA4C;IAC5C,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IAC9C,IAAI,MAAM,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAChC,QAAQ,CAAC,MAAM,GAAG,MAAM,iBAAiB,CAAC,SAAS,CAAC,CAAC;IACvD,CAAC;IAED,oDAAoD;IACpD,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IAClD,IAAI,MAAM,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAClC,QAAQ,CAAC,QAAQ,GAAG,MAAM,uBAAuB,CAAC,WAAW,CAAC,CAAC;IACjE,CAAC;IAED,uDAAuD;IACvD,MAAM,aAAa,GAAG,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;IACtD,IAAI,MAAM,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;QACpC,QAAQ,CAAC,UAAU,GAAG,MAAM,wBAAwB,CAAC,aAAa,CAAC,CAAC;IACtE,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,iBAAiB,CAAC,SAAiB;IAChD,MAAM,QAAQ,GAAyB,EAAE,CAAC;IAE1C,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IACrE,MAAM,KAAK,GAAG,OAAO;SAClB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;SAC9E,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAEtB,MAAM,YAAY,CAAC,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QACzD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QACvC,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAEpD,wBAAwB;QACxB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC;YAAE,OAAO;QAE5C,2CAA2C;QAC3C,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;QAC9D,MAAM,gBAAgB,GAAG,MAAM,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;QAE5E,IAAI,CAAC,SAAS,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACpC,OAAO,CAAC,IAAI,CAAC,iBAAiB,IAAI,iDAAiD,CAAC,CAAC;YACrF,OAAO;QACT,CAAC;QAED,QAAQ,CAAC,IAAI,CAAC;YACZ,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;YAClB,WAAW,EAAE,gBAAgB,CAAC,CAAC,CAAC;YAChC,MAAM;SACP,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,uBAAuB,CAAC,WAAmB;IACxD,MAAM,WAAW,GAA+B,EAAE,CAAC;IAEnD,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IACvE,MAAM,KAAK,GAAG,OAAO;SAClB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;SAC9E,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAEtB,MAAM,YAAY,CAAC,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QACzD,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QACzC,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAEpD,2BAA2B;QAC3B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC;YAAE,OAAO;QAE/C,2BAA2B;QAC3B,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;QAE9D,uBAAuB;QACvB,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC9D,IAAI,MAAM,GAAa,EAAE,CAAC;QAC1B,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,aAAa,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;YACrC,MAAM,YAAY,GAAG,aAAa,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;YACjE,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACnD,CAAC;QAED,IAAI,CAAC,SAAS,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtC,OAAO,CAAC,IAAI,CAAC,uBAAuB,IAAI,4CAA4C,CAAC,CAAC;YACtF,OAAO;QACT,CAAC;QAED,WAAW,CAAC,IAAI,CAAC;YACf,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;YAClB,MAAM;YACN,MAAM;SACP,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,WAAW,CAAC;AACrB,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,wBAAwB,CAAC,aAAqB;IAC3D,MAAM,WAAW,GAAgC,EAAE,CAAC;IAEpD,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IACzE,MAAM,KAAK,GAAG,OAAO;SAClB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;SAC9E,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAEtB,MAAM,YAAY,CAAC,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QACzD,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;QAC3C,MAAM,UAAU,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAExD,4BAA4B;QAC5B,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,iBAAiB,CAAC;YAAE,OAAO;QAEpD,2BAA2B;QAC3B,MAAM,SAAS,GAAG,UAAU,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;QAElE,mCAAmC;QACnC,MAAM,WAAW,GAAG,UAAU,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;QAEtE,IAAI,CAAC,SAAS,IAAI,CAAC,WAAW,EAAE,CAAC;YAC/B,OAAO,CAAC,IAAI,CAAC,wBAAwB,IAAI,4CAA4C,CAAC,CAAC;YACvF,OAAO;QACT,CAAC;QAED,WAAW,CAAC,IAAI,CAAC;YACf,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;YAClB,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC;YACtB,UAAU;SACX,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,WAAW,CAAC;AACrB,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,WAAmB;IACvD,MAAM,SAAS,GAA2B,EAAE,CAAC;IAE7C,uDAAuD;IACvD,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;IACtE,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IAExD,yEAAyE;IACzE,IAAI,OAAO,GAAkB,IAAI,CAAC;IAClC,IAAI,YAAY,GAAW,EAAE,CAAC;IAE9B,IAAI,MAAM,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QACnC,OAAO,GAAG,YAAY,CAAC;QACvB,YAAY,GAAG,uBAAuB,CAAC;IACzC,CAAC;SAAM,IAAI,MAAM,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QACxC,OAAO,GAAG,UAAU,CAAC;QACrB,YAAY,GAAG,cAAc,CAAC;IAChC,CAAC;IAED,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACxC,MAAM,YAAY,CAChB,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,EAC9C,gBAAgB,EAChB,KAAK,EAAE,IAAI,EAAE,EAAE;YACb,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YACrC,SAAS,CAAC,GAAG,YAAY,IAAI,IAAI,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC9E,CAAC,CACF,CAAC;QACF,OAAO,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;IACnE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC"}
@@ -9,14 +9,11 @@ export interface GeneratedFile {
9
9
  type?: string;
10
10
  feature?: string;
11
11
  }
12
- /**
13
- * Clean and recreate output directory (used for testing only)
14
- */
15
- export declare function cleanOutputDir(dir: string): void;
12
+ export declare function cleanOutputDir(dir: string): Promise<void>;
16
13
  /**
17
14
  * Write generated files to disk (overwrites all)
18
15
  */
19
- export declare function writeFiles(outputDir: string, files: GeneratedFile[]): void;
16
+ export declare function writeFiles(outputDir: string, files: GeneratedFile[]): Promise<void>;
20
17
  /**
21
18
  * Write generated files with smart merge strategy
22
19
  *
@@ -25,9 +22,9 @@ export declare function writeFiles(outputDir: string, files: GeneratedFile[]): v
25
22
  * - package.json: Merge dependencies
26
23
  * - Config files: Overwrite
27
24
  */
28
- export declare function writeFilesWithMerge(outputDir: string, files: GeneratedFile[]): void;
25
+ export declare function writeFilesWithMerge(outputDir: string, files: GeneratedFile[]): Promise<void>;
29
26
  /**
30
27
  * Write a single file
31
28
  */
32
- export declare function writeFile(filePath: string, content: string): void;
29
+ export declare function writeFile(filePath: string, content: string): Promise<void>;
33
30
  //# sourceMappingURL=file-writer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"file-writer.d.ts","sourceRoot":"","sources":["../../src/lib/file-writer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAKhD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,IAAI,CAa1E;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,IAAI,CA+BnF;AAqCD;;GAEG;AACH,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAQjE"}
1
+ {"version":3,"file":"file-writer.d.ts","sourceRoot":"","sources":["../../src/lib/file-writer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAOD,wBAAsB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAK/D;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAWzF;AAED;;;;;;;GAOG;AACH,wBAAsB,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA6BlG;AAmDD;;GAEG;AACH,wBAAsB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAKhF"}