appwrite-cli 13.0.0 → 13.1.0-rc.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.
Files changed (105) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/README.md +3 -3
  3. package/cli.ts +2 -0
  4. package/dist/bundle.cjs +52800 -50718
  5. package/dist/cli.js +2 -0
  6. package/dist/cli.js.map +1 -1
  7. package/dist/lib/client.d.ts.map +1 -1
  8. package/dist/lib/client.js +3 -4
  9. package/dist/lib/client.js.map +1 -1
  10. package/dist/lib/commands/config-validations.d.ts +53 -0
  11. package/dist/lib/commands/config-validations.d.ts.map +1 -0
  12. package/dist/lib/commands/config-validations.js +130 -0
  13. package/dist/lib/commands/config-validations.js.map +1 -0
  14. package/dist/lib/commands/config.d.ts +241 -236
  15. package/dist/lib/commands/config.d.ts.map +1 -1
  16. package/dist/lib/commands/config.js +85 -105
  17. package/dist/lib/commands/config.js.map +1 -1
  18. package/dist/lib/commands/generate.d.ts +7 -0
  19. package/dist/lib/commands/generate.d.ts.map +1 -0
  20. package/dist/lib/commands/generate.js +92 -0
  21. package/dist/lib/commands/generate.js.map +1 -0
  22. package/dist/lib/commands/generators/base.d.ts +58 -0
  23. package/dist/lib/commands/generators/base.d.ts.map +1 -0
  24. package/dist/lib/commands/generators/base.js +27 -0
  25. package/dist/lib/commands/generators/base.js.map +1 -0
  26. package/dist/lib/commands/generators/index.d.ts +26 -0
  27. package/dist/lib/commands/generators/index.d.ts.map +1 -0
  28. package/dist/lib/commands/generators/index.js +55 -0
  29. package/dist/lib/commands/generators/index.js.map +1 -0
  30. package/dist/lib/commands/generators/language-detector.d.ts +42 -0
  31. package/dist/lib/commands/generators/language-detector.d.ts.map +1 -0
  32. package/dist/lib/commands/generators/language-detector.js +127 -0
  33. package/dist/lib/commands/generators/language-detector.js.map +1 -0
  34. package/dist/lib/commands/generators/typescript/databases.d.ts +36 -0
  35. package/dist/lib/commands/generators/typescript/databases.d.ts.map +1 -0
  36. package/dist/lib/commands/generators/typescript/databases.js +489 -0
  37. package/dist/lib/commands/generators/typescript/databases.js.map +1 -0
  38. package/dist/lib/commands/pull.d.ts.map +1 -1
  39. package/dist/lib/commands/pull.js +15 -9
  40. package/dist/lib/commands/pull.js.map +1 -1
  41. package/dist/lib/commands/push.d.ts +6 -3
  42. package/dist/lib/commands/push.d.ts.map +1 -1
  43. package/dist/lib/commands/push.js +64 -41
  44. package/dist/lib/commands/push.js.map +1 -1
  45. package/dist/lib/commands/schema.d.ts +2 -2
  46. package/dist/lib/commands/schema.d.ts.map +1 -1
  47. package/dist/lib/commands/schema.js +2 -2
  48. package/dist/lib/commands/schema.js.map +1 -1
  49. package/dist/lib/commands/services/projects.js +7 -1
  50. package/dist/lib/commands/services/projects.js.map +1 -1
  51. package/dist/lib/commands/services/storage.js +2 -2
  52. package/dist/lib/commands/services/storage.js.map +1 -1
  53. package/dist/lib/commands/utils/attributes.d.ts +10 -2
  54. package/dist/lib/commands/utils/attributes.d.ts.map +1 -1
  55. package/dist/lib/commands/utils/attributes.js +35 -16
  56. package/dist/lib/commands/utils/attributes.js.map +1 -1
  57. package/dist/lib/commands/utils/pools.d.ts +0 -3
  58. package/dist/lib/commands/utils/pools.d.ts.map +1 -1
  59. package/dist/lib/commands/utils/pools.js +0 -34
  60. package/dist/lib/commands/utils/pools.js.map +1 -1
  61. package/dist/lib/config.d.ts.map +1 -1
  62. package/dist/lib/config.js +37 -141
  63. package/dist/lib/config.js.map +1 -1
  64. package/dist/lib/constants.d.ts +1 -1
  65. package/dist/lib/constants.d.ts.map +1 -1
  66. package/dist/lib/constants.js +1 -1
  67. package/dist/lib/constants.js.map +1 -1
  68. package/dist/lib/json.d.ts +8 -0
  69. package/dist/lib/json.d.ts.map +1 -0
  70. package/dist/lib/json.js +25 -0
  71. package/dist/lib/json.js.map +1 -0
  72. package/dist/lib/utils.d.ts +13 -1
  73. package/dist/lib/utils.d.ts.map +1 -1
  74. package/dist/lib/utils.js +45 -177
  75. package/dist/lib/utils.js.map +1 -1
  76. package/dist/package.json +3 -2
  77. package/docs/examples/projects/update-labels.md +3 -0
  78. package/install.ps1 +2 -2
  79. package/install.sh +1 -1
  80. package/lib/client.ts +3 -5
  81. package/lib/commands/config-validations.ts +199 -0
  82. package/lib/commands/config.ts +93 -120
  83. package/lib/commands/generate.ts +142 -0
  84. package/lib/commands/generators/base.ts +91 -0
  85. package/lib/commands/generators/index.ts +87 -0
  86. package/lib/commands/generators/language-detector.ts +163 -0
  87. package/lib/commands/generators/typescript/databases.ts +590 -0
  88. package/lib/commands/pull.ts +30 -9
  89. package/lib/commands/push.ts +105 -62
  90. package/lib/commands/schema.ts +3 -3
  91. package/lib/commands/services/projects.ts +13 -1
  92. package/lib/commands/services/storage.ts +2 -2
  93. package/lib/commands/utils/attributes.ts +49 -18
  94. package/lib/commands/utils/pools.ts +0 -67
  95. package/lib/config.ts +52 -142
  96. package/lib/constants.ts +1 -1
  97. package/lib/json.ts +28 -0
  98. package/lib/utils.ts +46 -221
  99. package/package.json +3 -2
  100. package/scoop/appwrite.config.json +3 -3
  101. package/dist/lib/commands/db.d.ts +0 -34
  102. package/dist/lib/commands/db.d.ts.map +0 -1
  103. package/dist/lib/commands/db.js +0 -247
  104. package/dist/lib/commands/db.js.map +0 -1
  105. package/lib/commands/db.ts +0 -324
@@ -1,6 +1,7 @@
1
1
  import { z } from "zod";
2
+ import { validateRequiredDefault, validateStringSize, validateContainerDuplicates, validateCrossDatabase, } from "./config-validations.js";
2
3
  // ============================================================================
3
- // Internal Helpers (not exported)
4
+ // Internal Helpers
4
5
  // ============================================================================
5
6
  const INT64_MIN = BigInt("-9223372036854775808");
6
7
  const INT64_MAX = BigInt("9223372036854775807");
@@ -55,27 +56,6 @@ const MockNumberSchema = z
55
56
  })
56
57
  .strict();
57
58
  // ============================================================================
58
- // Config Schema
59
- // ============================================================================
60
- const ConfigSchema = z
61
- .object({
62
- projectId: z.string(),
63
- projectName: z.string().optional(),
64
- endpoint: z.string().optional(),
65
- settings: z.lazy(() => SettingsSchema).optional(),
66
- functions: z.array(z.lazy(() => FunctionSchema)).optional(),
67
- sites: z.array(z.lazy(() => SiteSchema)).optional(),
68
- databases: z.array(z.lazy(() => DatabaseSchema)).optional(),
69
- collections: z.array(z.lazy(() => CollectionSchema)).optional(),
70
- tablesDB: z.array(z.lazy(() => DatabaseSchema)).optional(),
71
- tables: z.array(z.lazy(() => TablesDBSchema)).optional(),
72
- topics: z.array(z.lazy(() => TopicSchema)).optional(),
73
- teams: z.array(z.lazy(() => TeamSchema)).optional(),
74
- buckets: z.array(z.lazy(() => BucketSchema)).optional(),
75
- messages: z.array(z.lazy(() => MessageSchema)).optional(),
76
- })
77
- .strict();
78
- // ============================================================================
79
59
  // Project Settings
80
60
  // ============================================================================
81
61
  const SettingsSchema = z
@@ -185,7 +165,7 @@ const DatabaseSchema = z
185
165
  // ============================================================================
186
166
  // Collections (legacy)
187
167
  // ============================================================================
188
- const AttributeSchemaBase = z
168
+ const AttributeSchema = z
189
169
  .object({
190
170
  key: z.string(),
191
171
  type: z.enum([
@@ -213,6 +193,7 @@ const AttributeSchemaBase = z
213
193
  .optional(),
214
194
  elements: z.array(z.string()).optional(),
215
195
  relatedCollection: z.string().optional(),
196
+ relatedTable: z.string().optional(),
216
197
  relationType: z.string().optional(),
217
198
  twoWay: z.boolean().optional(),
218
199
  twoWayKey: z.string().optional(),
@@ -222,22 +203,12 @@ const AttributeSchemaBase = z
222
203
  orders: z.array(z.string()).optional(),
223
204
  encrypt: z.boolean().optional(),
224
205
  })
225
- .strict();
226
- const AttributeSchema = AttributeSchemaBase.refine((data) => {
227
- if (data.required === true && data.default !== null) {
228
- return false;
229
- }
230
- return true;
231
- }, {
206
+ .strict()
207
+ .refine(validateRequiredDefault, {
232
208
  message: "When 'required' is true, 'default' must be null",
233
209
  path: ["default"],
234
- }).refine((data) => {
235
- if (data.type === "string" &&
236
- (data.size === undefined || data.size === null)) {
237
- return false;
238
- }
239
- return true;
240
- }, {
210
+ })
211
+ .refine(validateStringSize, {
241
212
  message: "When 'type' is 'string', 'size' must be defined",
242
213
  path: ["size"],
243
214
  });
@@ -262,42 +233,58 @@ const CollectionSchema = z
262
233
  indexes: z.array(IndexSchema).optional(),
263
234
  })
264
235
  .strict()
265
- .superRefine((data, ctx) => {
266
- if (data.attributes && data.attributes.length > 0) {
267
- const seenKeys = new Set();
268
- data.attributes.forEach((attr, index) => {
269
- if (seenKeys.has(attr.key)) {
270
- ctx.addIssue({
271
- code: z.ZodIssueCode.custom,
272
- message: `Attribute with the key '${attr.key}' already exists. Attribute keys must be unique, try again with a different key.`,
273
- path: ["attributes", index, "key"],
274
- });
275
- }
276
- else {
277
- seenKeys.add(attr.key);
278
- }
279
- });
280
- }
281
- if (data.indexes && data.indexes.length > 0) {
282
- const seenKeys = new Set();
283
- data.indexes.forEach((index, indexPos) => {
284
- if (seenKeys.has(index.key)) {
285
- ctx.addIssue({
286
- code: z.ZodIssueCode.custom,
287
- message: `Index with the key '${index.key}' already exists. Index keys must be unique, try again with a different key.`,
288
- path: ["indexes", indexPos, "key"],
289
- });
290
- }
291
- else {
292
- seenKeys.add(index.key);
293
- }
294
- });
295
- }
296
- });
236
+ .superRefine(validateContainerDuplicates);
297
237
  // ============================================================================
298
238
  // Tables
299
239
  // ============================================================================
300
- const ColumnSchema = AttributeSchema;
240
+ const ColumnSchema = z
241
+ .object({
242
+ key: z.string(),
243
+ type: z.enum([
244
+ "string",
245
+ "integer",
246
+ "double",
247
+ "boolean",
248
+ "datetime",
249
+ "relationship",
250
+ "linestring",
251
+ "point",
252
+ "polygon",
253
+ ]),
254
+ required: z.boolean().optional(),
255
+ array: z.boolean().optional(),
256
+ size: z.number().optional(),
257
+ default: z.any().optional(),
258
+ min: int64Schema,
259
+ max: int64Schema,
260
+ format: z
261
+ .union([
262
+ z.enum(["email", "enum", "url", "ip", "datetime"]),
263
+ z.literal(""),
264
+ ])
265
+ .optional(),
266
+ elements: z.array(z.string()).optional(),
267
+ // For tables, relationship uses relatedTable instead of relatedCollection
268
+ relatedTable: z.string().optional(),
269
+ relationType: z.string().optional(),
270
+ twoWay: z.boolean().optional(),
271
+ twoWayKey: z.string().optional(),
272
+ onDelete: z.string().optional(),
273
+ side: z.string().optional(),
274
+ // For table indexes, uses columns instead of attributes
275
+ columns: z.array(z.string()).optional(),
276
+ orders: z.array(z.string()).optional(),
277
+ encrypt: z.boolean().optional(),
278
+ })
279
+ .strict()
280
+ .refine(validateRequiredDefault, {
281
+ message: "When 'required' is true, 'default' must be null",
282
+ path: ["default"],
283
+ })
284
+ .refine(validateStringSize, {
285
+ message: "When 'type' is 'string', 'size' must be defined",
286
+ path: ["size"],
287
+ });
301
288
  const IndexTableSchema = z
302
289
  .object({
303
290
  key: z.string(),
@@ -307,7 +294,7 @@ const IndexTableSchema = z
307
294
  orders: z.array(z.string()).optional(),
308
295
  })
309
296
  .strict();
310
- const TablesDBSchema = z
297
+ const TableSchema = z
311
298
  .object({
312
299
  $id: z.string(),
313
300
  $permissions: z.array(z.string()).optional(),
@@ -319,38 +306,7 @@ const TablesDBSchema = z
319
306
  indexes: z.array(IndexTableSchema).optional(),
320
307
  })
321
308
  .strict()
322
- .superRefine((data, ctx) => {
323
- if (data.columns && data.columns.length > 0) {
324
- const seenKeys = new Set();
325
- data.columns.forEach((col, index) => {
326
- if (seenKeys.has(col.key)) {
327
- ctx.addIssue({
328
- code: z.ZodIssueCode.custom,
329
- message: `Column with the key '${col.key}' already exists. Column keys must be unique, try again with a different key.`,
330
- path: ["columns", index, "key"],
331
- });
332
- }
333
- else {
334
- seenKeys.add(col.key);
335
- }
336
- });
337
- }
338
- if (data.indexes && data.indexes.length > 0) {
339
- const seenKeys = new Set();
340
- data.indexes.forEach((index, indexPos) => {
341
- if (seenKeys.has(index.key)) {
342
- ctx.addIssue({
343
- code: z.ZodIssueCode.custom,
344
- message: `Index with the key '${index.key}' already exists. Index keys must be unique, try again with a different key.`,
345
- path: ["indexes", indexPos, "key"],
346
- });
347
- }
348
- else {
349
- seenKeys.add(index.key);
350
- }
351
- });
352
- }
353
- });
309
+ .superRefine(validateContainerDuplicates);
354
310
  // ============================================================================
355
311
  // Topics
356
312
  // ============================================================================
@@ -401,9 +357,33 @@ const BucketSchema = z
401
357
  })
402
358
  .strict();
403
359
  // ============================================================================
360
+ // Config Schema
361
+ // ============================================================================
362
+ const ConfigSchema = z
363
+ .object({
364
+ projectId: z.string(),
365
+ projectName: z.string().optional(),
366
+ endpoint: z.string().optional(),
367
+ settings: z.lazy(() => SettingsSchema).optional(),
368
+ functions: z.array(z.lazy(() => FunctionSchema)).optional(),
369
+ sites: z.array(z.lazy(() => SiteSchema)).optional(),
370
+ databases: z.array(z.lazy(() => DatabaseSchema)).optional(),
371
+ collections: z.array(z.lazy(() => CollectionSchema)).optional(),
372
+ tablesDB: z.array(z.lazy(() => DatabaseSchema)).optional(),
373
+ tables: z.array(z.lazy(() => TableSchema)).optional(),
374
+ topics: z.array(z.lazy(() => TopicSchema)).optional(),
375
+ teams: z.array(z.lazy(() => TeamSchema)).optional(),
376
+ buckets: z.array(z.lazy(() => BucketSchema)).optional(),
377
+ messages: z.array(z.lazy(() => MessageSchema)).optional(),
378
+ })
379
+ .strict()
380
+ .superRefine(validateCrossDatabase);
381
+ // ============================================================================
404
382
  // Schema Exports
405
383
  // ============================================================================
406
- export { ConfigSchema,
384
+ export {
385
+ /** Config */
386
+ ConfigSchema,
407
387
  /** Project Settings */
408
388
  SettingsSchema,
409
389
  /** Functions and Sites */
@@ -413,7 +393,7 @@ DatabaseSchema,
413
393
  /** Collections (legacy) */
414
394
  CollectionSchema, AttributeSchema, IndexSchema,
415
395
  /** Tables */
416
- TablesDBSchema, ColumnSchema, IndexTableSchema,
396
+ TableSchema, ColumnSchema, IndexTableSchema,
417
397
  /** Topics */
418
398
  TopicSchema,
419
399
  /** Teams */
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../lib/commands/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../lib/commands/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { Command } from "commander";
2
+ export interface GenerateCommandOptions {
3
+ output: string;
4
+ language?: string;
5
+ }
6
+ export declare const generate: Command;
7
+ //# sourceMappingURL=generate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../../lib/commands/generate.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAkBpC,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AA0GD,eAAO,MAAM,QAAQ,SAakB,CAAC"}
@@ -0,0 +1,92 @@
1
+ import * as path from "path";
2
+ import { Command } from "commander";
3
+ import { localConfig } from "../config.js";
4
+ import { success, error, log, warn, actionRunner } from "../parser.js";
5
+ import { createGeneratorFromDetection, createGenerator, getSupportedLanguages, LanguageDetector, } from "./generators/index.js";
6
+ import { SDK_TITLE, SDK_TITLE_LOWER, EXECUTABLE_NAME, NPM_PACKAGE_NAME, } from "../constants.js";
7
+ const generateAction = async (options) => {
8
+ const project = localConfig.getProject();
9
+ if (!project.projectId) {
10
+ error(`No project found. Please run '${EXECUTABLE_NAME} init project' first.`);
11
+ process.exit(1);
12
+ }
13
+ // Determine the generator to use
14
+ let generator;
15
+ let detectedLanguage;
16
+ if (options.language) {
17
+ // User explicitly specified a language
18
+ if (!LanguageDetector.isSupported(options.language)) {
19
+ const supported = getSupportedLanguages().join(", ");
20
+ error(`Unsupported language: ${options.language}. Supported languages: ${supported}`);
21
+ process.exit(1);
22
+ }
23
+ generator = createGenerator(options.language);
24
+ detectedLanguage = options.language;
25
+ log(`Using specified language: ${detectedLanguage}`);
26
+ }
27
+ else {
28
+ // Auto-detect language
29
+ try {
30
+ const { generator: detectedGenerator, detection } = createGeneratorFromDetection();
31
+ generator = detectedGenerator;
32
+ detectedLanguage = detection.language;
33
+ if (detection.confidence === "low") {
34
+ warn(`Detected language '${detectedLanguage}' with low confidence (${detection.reason}). ` +
35
+ `Use --language to specify explicitly.`);
36
+ }
37
+ else {
38
+ log(`Detected language: ${detectedLanguage} (${detection.reason})`);
39
+ }
40
+ }
41
+ catch (err) {
42
+ const supported = getSupportedLanguages().join(", ");
43
+ error(`${err.message}\nUse --language to specify the target language. Supported: ${supported}`);
44
+ process.exit(1);
45
+ }
46
+ }
47
+ const config = {
48
+ projectId: project.projectId,
49
+ projectName: project.projectName,
50
+ tablesDB: localConfig.getTablesDBs(),
51
+ tables: localConfig.getTables(),
52
+ databases: localConfig.getDatabases(),
53
+ collections: localConfig.getCollections(),
54
+ };
55
+ const outputDir = options.output;
56
+ const absoluteOutputDir = path.isAbsolute(outputDir)
57
+ ? outputDir
58
+ : path.join(process.cwd(), outputDir);
59
+ log(`Generating type-safe ${detectedLanguage} SDK to ${absoluteOutputDir}...`);
60
+ try {
61
+ const result = await generator.generate(config);
62
+ await generator.writeFiles(absoluteOutputDir, result);
63
+ const generatedFiles = generator.getGeneratedFilePaths(result);
64
+ success(`Generated files:`);
65
+ for (const file of generatedFiles) {
66
+ console.log(` - ${path.join(outputDir, file)}`);
67
+ }
68
+ // Show language-specific usage instructions
69
+ if (detectedLanguage === "typescript") {
70
+ console.log("");
71
+ log(`Import the generated SDK in your project:`);
72
+ console.log(` import { createDatabases } from "./${outputDir}/${SDK_TITLE_LOWER}/index.js";`);
73
+ console.log("");
74
+ log(`Usage:`);
75
+ console.log(` import { Client } from '${NPM_PACKAGE_NAME}';`);
76
+ console.log(` const client = new Client().setEndpoint('...').setProject('...').setKey('...');`);
77
+ console.log(` const databases = createDatabases(client);`);
78
+ console.log(` const db = databases.from('your-database-id');`);
79
+ console.log(` await db.tableName.create({ ... });`);
80
+ }
81
+ }
82
+ catch (err) {
83
+ error(`Failed to generate SDK: ${err.message}`);
84
+ process.exit(1);
85
+ }
86
+ };
87
+ export const generate = new Command("generate")
88
+ .description(`Generate a type-safe SDK from your ${SDK_TITLE} project configuration`)
89
+ .option("-o, --output <directory>", "Output directory for generated files (default: generated)", "generated")
90
+ .option("-l, --language <language>", `Target language for SDK generation (supported: ${getSupportedLanguages().join(", ")})`)
91
+ .action(actionRunner(generateAction));
92
+ //# sourceMappingURL=generate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../lib/commands/generate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,58 @@
1
+ import { ConfigType } from "../config.js";
2
+ /**
3
+ * Supported programming languages for SDK generation.
4
+ * Add new languages here as they are implemented.
5
+ */
6
+ export type SupportedLanguage = "typescript";
7
+ /**
8
+ * Result of the generation process.
9
+ * Each language generator should return files as a map of filename to content.
10
+ */
11
+ export interface GenerateResult {
12
+ /** Map of relative file paths to their content */
13
+ files: Map<string, string>;
14
+ }
15
+ /**
16
+ * Base interface for all language-specific database generators.
17
+ * Implement this interface to add support for new languages.
18
+ */
19
+ export interface IDatabasesGenerator {
20
+ /**
21
+ * The language this generator produces code for.
22
+ */
23
+ readonly language: SupportedLanguage;
24
+ /**
25
+ * File extension for the generated files (e.g., "ts", "py", "go").
26
+ */
27
+ readonly fileExtension: string;
28
+ /**
29
+ * Generate the SDK files from the configuration.
30
+ * @param config - The project configuration containing tables/collections
31
+ * @returns Promise resolving to the generated files
32
+ */
33
+ generate(config: ConfigType): Promise<GenerateResult>;
34
+ /**
35
+ * Write the generated files to disk.
36
+ * @param outputDir - The base output directory
37
+ * @param result - The generation result containing files to write
38
+ */
39
+ writeFiles(outputDir: string, result: GenerateResult): Promise<void>;
40
+ /**
41
+ * Get the list of generated file paths (relative to output directory).
42
+ * Used for displaying success messages.
43
+ * @param result - The generation result
44
+ */
45
+ getGeneratedFilePaths(result: GenerateResult): string[];
46
+ }
47
+ /**
48
+ * Abstract base class providing common functionality for database generators.
49
+ * Extend this class to implement language-specific generators.
50
+ */
51
+ export declare abstract class BaseDatabasesGenerator implements IDatabasesGenerator {
52
+ abstract readonly language: SupportedLanguage;
53
+ abstract readonly fileExtension: string;
54
+ abstract generate(config: ConfigType): Promise<GenerateResult>;
55
+ writeFiles(outputDir: string, result: GenerateResult): Promise<void>;
56
+ getGeneratedFilePaths(result: GenerateResult): string[];
57
+ }
58
+ //# sourceMappingURL=base.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../lib/commands/generators/base.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG1C;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG,YAAY,CAAC;AAE7C;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,kDAAkD;IAClD,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC5B;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IAErC;;OAEG;IACH,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAE/B;;;;OAIG;IACH,QAAQ,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAEtD;;;;OAIG;IACH,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAErE;;;;OAIG;IACH,qBAAqB,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,EAAE,CAAC;CACzD;AAED;;;GAGG;AACH,8BAAsB,sBAAuB,YAAW,mBAAmB;IACzE,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IAC9C,QAAQ,CAAC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAExC,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,cAAc,CAAC;IAExD,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAkB1E,qBAAqB,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,EAAE;CAKxD"}
@@ -0,0 +1,27 @@
1
+ import * as fs from "fs";
2
+ import * as path from "path";
3
+ import { SDK_TITLE_LOWER } from "../../constants.js";
4
+ /**
5
+ * Abstract base class providing common functionality for database generators.
6
+ * Extend this class to implement language-specific generators.
7
+ */
8
+ export class BaseDatabasesGenerator {
9
+ async writeFiles(outputDir, result) {
10
+ const sdkDir = path.join(outputDir, SDK_TITLE_LOWER);
11
+ if (!fs.existsSync(sdkDir)) {
12
+ fs.mkdirSync(sdkDir, { recursive: true });
13
+ }
14
+ for (const [relativePath, content] of result.files) {
15
+ const filePath = path.join(sdkDir, relativePath);
16
+ const fileDir = path.dirname(filePath);
17
+ if (!fs.existsSync(fileDir)) {
18
+ fs.mkdirSync(fileDir, { recursive: true });
19
+ }
20
+ fs.writeFileSync(filePath, content, "utf-8");
21
+ }
22
+ }
23
+ getGeneratedFilePaths(result) {
24
+ return Array.from(result.files.keys()).map((relativePath) => path.join(SDK_TITLE_LOWER, relativePath));
25
+ }
26
+ }
27
+ //# sourceMappingURL=base.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../../lib/commands/generators/base.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAE7B,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAsDrD;;;GAGG;AACH,MAAM,OAAgB,sBAAsB;IAM1C,KAAK,CAAC,UAAU,CAAC,SAAiB,EAAE,MAAsB;QACxD,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;QACrD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3B,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5C,CAAC;QAED,KAAK,MAAM,CAAC,YAAY,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACnD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;YACjD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAEvC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC5B,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC7C,CAAC;YAED,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IAED,qBAAqB,CAAC,MAAsB;QAC1C,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,EAAE,CAC1D,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,YAAY,CAAC,CACzC,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,26 @@
1
+ import { IDatabasesGenerator, SupportedLanguage } from "./base.js";
2
+ import { LanguageDetectionResult } from "./language-detector.js";
3
+ export { IDatabasesGenerator, SupportedLanguage, GenerateResult, } from "./base.js";
4
+ export { LanguageDetector, LanguageDetectionResult, } from "./language-detector.js";
5
+ /**
6
+ * Create a database generator for the specified language.
7
+ * @param language - The target language
8
+ * @returns The appropriate generator instance
9
+ * @throws Error if the language is not supported
10
+ */
11
+ export declare function createGenerator(language: SupportedLanguage): IDatabasesGenerator;
12
+ /**
13
+ * Create a database generator by auto-detecting the project language.
14
+ * @param cwd - The working directory to detect language from (defaults to process.cwd())
15
+ * @returns Object containing the generator and detection result
16
+ * @throws Error if no supported language is detected
17
+ */
18
+ export declare function createGeneratorFromDetection(cwd?: string): {
19
+ generator: IDatabasesGenerator;
20
+ detection: LanguageDetectionResult;
21
+ };
22
+ /**
23
+ * Get all supported languages.
24
+ */
25
+ export declare function getSupportedLanguages(): SupportedLanguage[];
26
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../lib/commands/generators/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AACnE,OAAO,EAEL,uBAAuB,EACxB,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,cAAc,GACf,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,gBAAgB,EAChB,uBAAuB,GACxB,MAAM,wBAAwB,CAAC;AAmBhC;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,iBAAiB,GAC1B,mBAAmB,CASrB;AAED;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG;IAC1D,SAAS,EAAE,mBAAmB,CAAC;IAC/B,SAAS,EAAE,uBAAuB,CAAC;CACpC,CAiBA;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,iBAAiB,EAAE,CAE3D"}
@@ -0,0 +1,55 @@
1
+ import { LanguageDetector, } from "./language-detector.js";
2
+ import { TypeScriptDatabasesGenerator } from "./typescript/databases.js";
3
+ export { LanguageDetector, } from "./language-detector.js";
4
+ /**
5
+ * Registry of generator factories by language.
6
+ * Add new language generators here as they are implemented.
7
+ */
8
+ const generatorRegistry = {
9
+ typescript: () => new TypeScriptDatabasesGenerator(),
10
+ // Future languages:
11
+ // python: () => new PythonDatabasesGenerator(),
12
+ // go: () => new GoDatabasesGenerator(),
13
+ // dart: () => new DartDatabasesGenerator(),
14
+ };
15
+ /**
16
+ * Create a database generator for the specified language.
17
+ * @param language - The target language
18
+ * @returns The appropriate generator instance
19
+ * @throws Error if the language is not supported
20
+ */
21
+ export function createGenerator(language) {
22
+ const factory = generatorRegistry[language];
23
+ if (!factory) {
24
+ throw new Error(`No generator available for language: ${language}. ` +
25
+ `Supported languages: ${Object.keys(generatorRegistry).join(", ")}`);
26
+ }
27
+ return factory();
28
+ }
29
+ /**
30
+ * Create a database generator by auto-detecting the project language.
31
+ * @param cwd - The working directory to detect language from (defaults to process.cwd())
32
+ * @returns Object containing the generator and detection result
33
+ * @throws Error if no supported language is detected
34
+ */
35
+ export function createGeneratorFromDetection(cwd) {
36
+ const detector = new LanguageDetector(cwd);
37
+ const detection = detector.detect();
38
+ if (!detection) {
39
+ const supported = LanguageDetector.getSupportedLanguages().join(", ");
40
+ throw new Error(`Could not detect project language. ` +
41
+ `Supported languages: ${supported}. ` +
42
+ `Please ensure your project has the appropriate configuration files (e.g., package.json for TypeScript).`);
43
+ }
44
+ return {
45
+ generator: createGenerator(detection.language),
46
+ detection,
47
+ };
48
+ }
49
+ /**
50
+ * Get all supported languages.
51
+ */
52
+ export function getSupportedLanguages() {
53
+ return Object.keys(generatorRegistry);
54
+ }
55
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/commands/generators/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,gBAAgB,GAEjB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,4BAA4B,EAAE,MAAM,2BAA2B,CAAC;AAOzE,OAAO,EACL,gBAAgB,GAEjB,MAAM,wBAAwB,CAAC;AAOhC;;;GAGG;AACH,MAAM,iBAAiB,GAAgD;IACrE,UAAU,EAAE,GAAG,EAAE,CAAC,IAAI,4BAA4B,EAAE;IACpD,oBAAoB;IACpB,gDAAgD;IAChD,wCAAwC;IACxC,4CAA4C;CAC7C,CAAC;AAEF;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAC7B,QAA2B;IAE3B,MAAM,OAAO,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IAC5C,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CACb,wCAAwC,QAAQ,IAAI;YAClD,wBAAwB,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACtE,CAAC;IACJ,CAAC;IACD,OAAO,OAAO,EAAE,CAAC;AACnB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,4BAA4B,CAAC,GAAY;IAIvD,MAAM,QAAQ,GAAG,IAAI,gBAAgB,CAAC,GAAG,CAAC,CAAC;IAC3C,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC;IAEpC,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,SAAS,GAAG,gBAAgB,CAAC,qBAAqB,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtE,MAAM,IAAI,KAAK,CACb,qCAAqC;YACnC,wBAAwB,SAAS,IAAI;YACrC,yGAAyG,CAC5G,CAAC;IACJ,CAAC;IAED,OAAO;QACL,SAAS,EAAE,eAAe,CAAC,SAAS,CAAC,QAAQ,CAAC;QAC9C,SAAS;KACV,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB;IACnC,OAAO,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAwB,CAAC;AAC/D,CAAC"}