appwrite-utils-cli 1.5.2 → 1.6.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.
- package/CHANGELOG.md +199 -0
- package/README.md +251 -29
- package/dist/adapters/AdapterFactory.d.ts +10 -3
- package/dist/adapters/AdapterFactory.js +213 -17
- package/dist/adapters/TablesDBAdapter.js +60 -17
- package/dist/backups/operations/bucketBackup.d.ts +19 -0
- package/dist/backups/operations/bucketBackup.js +197 -0
- package/dist/backups/operations/collectionBackup.d.ts +30 -0
- package/dist/backups/operations/collectionBackup.js +201 -0
- package/dist/backups/operations/comprehensiveBackup.d.ts +25 -0
- package/dist/backups/operations/comprehensiveBackup.js +238 -0
- package/dist/backups/schemas/bucketManifest.d.ts +93 -0
- package/dist/backups/schemas/bucketManifest.js +33 -0
- package/dist/backups/schemas/comprehensiveManifest.d.ts +108 -0
- package/dist/backups/schemas/comprehensiveManifest.js +32 -0
- package/dist/backups/tracking/centralizedTracking.d.ts +34 -0
- package/dist/backups/tracking/centralizedTracking.js +274 -0
- package/dist/cli/commands/configCommands.d.ts +8 -0
- package/dist/cli/commands/configCommands.js +160 -0
- package/dist/cli/commands/databaseCommands.d.ts +13 -0
- package/dist/cli/commands/databaseCommands.js +479 -0
- package/dist/cli/commands/functionCommands.d.ts +7 -0
- package/dist/cli/commands/functionCommands.js +289 -0
- package/dist/cli/commands/schemaCommands.d.ts +7 -0
- package/dist/cli/commands/schemaCommands.js +134 -0
- package/dist/cli/commands/transferCommands.d.ts +5 -0
- package/dist/cli/commands/transferCommands.js +384 -0
- package/dist/collections/attributes.d.ts +5 -4
- package/dist/collections/attributes.js +539 -246
- package/dist/collections/indexes.js +39 -37
- package/dist/collections/methods.d.ts +2 -16
- package/dist/collections/methods.js +90 -538
- package/dist/collections/transferOperations.d.ts +7 -0
- package/dist/collections/transferOperations.js +331 -0
- package/dist/collections/wipeOperations.d.ts +16 -0
- package/dist/collections/wipeOperations.js +328 -0
- package/dist/config/configMigration.d.ts +87 -0
- package/dist/config/configMigration.js +390 -0
- package/dist/config/configValidation.d.ts +66 -0
- package/dist/config/configValidation.js +358 -0
- package/dist/config/yamlConfig.d.ts +455 -1
- package/dist/config/yamlConfig.js +145 -52
- package/dist/databases/methods.js +3 -2
- package/dist/databases/setup.d.ts +1 -2
- package/dist/databases/setup.js +9 -87
- package/dist/examples/yamlTerminologyExample.d.ts +42 -0
- package/dist/examples/yamlTerminologyExample.js +269 -0
- package/dist/functions/deployments.js +11 -10
- package/dist/functions/methods.d.ts +1 -1
- package/dist/functions/methods.js +5 -4
- package/dist/init.js +9 -9
- package/dist/interactiveCLI.d.ts +8 -17
- package/dist/interactiveCLI.js +209 -1172
- package/dist/main.js +364 -21
- package/dist/migrations/afterImportActions.js +22 -30
- package/dist/migrations/appwriteToX.js +71 -25
- package/dist/migrations/dataLoader.js +35 -26
- package/dist/migrations/importController.js +29 -30
- package/dist/migrations/relationships.js +13 -12
- package/dist/migrations/services/ImportOrchestrator.js +16 -19
- package/dist/migrations/transfer.js +46 -46
- package/dist/migrations/yaml/YamlImportConfigLoader.d.ts +3 -1
- package/dist/migrations/yaml/YamlImportConfigLoader.js +6 -3
- package/dist/migrations/yaml/YamlImportIntegration.d.ts +9 -3
- package/dist/migrations/yaml/YamlImportIntegration.js +22 -11
- package/dist/migrations/yaml/generateImportSchemas.d.ts +14 -1
- package/dist/migrations/yaml/generateImportSchemas.js +736 -7
- package/dist/schemas/authUser.d.ts +1 -1
- package/dist/setupController.js +3 -2
- package/dist/shared/backupMetadataSchema.d.ts +94 -0
- package/dist/shared/backupMetadataSchema.js +38 -0
- package/dist/shared/backupTracking.d.ts +18 -0
- package/dist/shared/backupTracking.js +176 -0
- package/dist/shared/confirmationDialogs.js +15 -15
- package/dist/shared/errorUtils.d.ts +54 -0
- package/dist/shared/errorUtils.js +95 -0
- package/dist/shared/functionManager.js +20 -19
- package/dist/shared/indexManager.js +12 -11
- package/dist/shared/jsonSchemaGenerator.js +10 -26
- package/dist/shared/logging.d.ts +51 -0
- package/dist/shared/logging.js +70 -0
- package/dist/shared/messageFormatter.d.ts +2 -0
- package/dist/shared/messageFormatter.js +10 -0
- package/dist/shared/migrationHelpers.d.ts +6 -16
- package/dist/shared/migrationHelpers.js +24 -21
- package/dist/shared/operationLogger.d.ts +8 -1
- package/dist/shared/operationLogger.js +11 -24
- package/dist/shared/operationQueue.d.ts +28 -1
- package/dist/shared/operationQueue.js +268 -66
- package/dist/shared/operationsTable.d.ts +26 -0
- package/dist/shared/operationsTable.js +286 -0
- package/dist/shared/operationsTableSchema.d.ts +48 -0
- package/dist/shared/operationsTableSchema.js +35 -0
- package/dist/shared/relationshipExtractor.d.ts +56 -0
- package/dist/shared/relationshipExtractor.js +138 -0
- package/dist/shared/schemaGenerator.d.ts +19 -1
- package/dist/shared/schemaGenerator.js +56 -75
- package/dist/storage/backupCompression.d.ts +20 -0
- package/dist/storage/backupCompression.js +67 -0
- package/dist/storage/methods.d.ts +16 -2
- package/dist/storage/methods.js +98 -14
- package/dist/users/methods.js +9 -8
- package/dist/utils/configDiscovery.d.ts +78 -0
- package/dist/utils/configDiscovery.js +430 -0
- package/dist/utils/directoryUtils.d.ts +22 -0
- package/dist/utils/directoryUtils.js +59 -0
- package/dist/utils/getClientFromConfig.d.ts +17 -8
- package/dist/utils/getClientFromConfig.js +162 -17
- package/dist/utils/helperFunctions.d.ts +16 -2
- package/dist/utils/helperFunctions.js +19 -5
- package/dist/utils/loadConfigs.d.ts +34 -9
- package/dist/utils/loadConfigs.js +236 -316
- package/dist/utils/pathResolvers.d.ts +53 -0
- package/dist/utils/pathResolvers.js +72 -0
- package/dist/utils/projectConfig.d.ts +119 -0
- package/dist/utils/projectConfig.js +171 -0
- package/dist/utils/retryFailedPromises.js +4 -2
- package/dist/utils/sessionAuth.d.ts +48 -0
- package/dist/utils/sessionAuth.js +164 -0
- package/dist/utils/sessionPreservationExample.d.ts +1666 -0
- package/dist/utils/sessionPreservationExample.js +101 -0
- package/dist/utils/setupFiles.js +301 -41
- package/dist/utils/typeGuards.d.ts +35 -0
- package/dist/utils/typeGuards.js +57 -0
- package/dist/utils/versionDetection.js +145 -9
- package/dist/utils/yamlConverter.d.ts +53 -3
- package/dist/utils/yamlConverter.js +232 -13
- package/dist/utils/yamlLoader.d.ts +70 -0
- package/dist/utils/yamlLoader.js +263 -0
- package/dist/utilsController.d.ts +36 -3
- package/dist/utilsController.js +186 -56
- package/package.json +12 -2
- package/src/adapters/AdapterFactory.ts +263 -35
- package/src/adapters/TablesDBAdapter.ts +225 -36
- package/src/backups/operations/bucketBackup.ts +277 -0
- package/src/backups/operations/collectionBackup.ts +310 -0
- package/src/backups/operations/comprehensiveBackup.ts +342 -0
- package/src/backups/schemas/bucketManifest.ts +78 -0
- package/src/backups/schemas/comprehensiveManifest.ts +76 -0
- package/src/backups/tracking/centralizedTracking.ts +352 -0
- package/src/cli/commands/configCommands.ts +194 -0
- package/src/cli/commands/databaseCommands.ts +635 -0
- package/src/cli/commands/functionCommands.ts +379 -0
- package/src/cli/commands/schemaCommands.ts +163 -0
- package/src/cli/commands/transferCommands.ts +457 -0
- package/src/collections/attributes.ts +900 -621
- package/src/collections/attributes.ts.backup +1555 -0
- package/src/collections/indexes.ts +116 -114
- package/src/collections/methods.ts +295 -968
- package/src/collections/transferOperations.ts +516 -0
- package/src/collections/wipeOperations.ts +501 -0
- package/src/config/README.md +274 -0
- package/src/config/configMigration.ts +575 -0
- package/src/config/configValidation.ts +445 -0
- package/src/config/yamlConfig.ts +168 -55
- package/src/databases/methods.ts +3 -2
- package/src/databases/setup.ts +11 -138
- package/src/examples/yamlTerminologyExample.ts +341 -0
- package/src/functions/deployments.ts +14 -12
- package/src/functions/methods.ts +11 -11
- package/src/functions/templates/hono-typescript/README.md +286 -0
- package/src/functions/templates/hono-typescript/package.json +26 -0
- package/src/functions/templates/hono-typescript/src/adapters/request.ts +74 -0
- package/src/functions/templates/hono-typescript/src/adapters/response.ts +106 -0
- package/src/functions/templates/hono-typescript/src/app.ts +180 -0
- package/src/functions/templates/hono-typescript/src/context.ts +103 -0
- package/src/functions/templates/hono-typescript/src/index.ts +54 -0
- package/src/functions/templates/hono-typescript/src/middleware/appwrite.ts +119 -0
- package/src/functions/templates/hono-typescript/tsconfig.json +20 -0
- package/src/functions/templates/typescript-node/package.json +2 -1
- package/src/functions/templates/typescript-node/src/context.ts +103 -0
- package/src/functions/templates/typescript-node/src/index.ts +18 -12
- package/src/functions/templates/uv/pyproject.toml +1 -0
- package/src/functions/templates/uv/src/context.py +125 -0
- package/src/functions/templates/uv/src/index.py +35 -5
- package/src/init.ts +9 -11
- package/src/interactiveCLI.ts +274 -1563
- package/src/main.ts +418 -24
- package/src/migrations/afterImportActions.ts +71 -44
- package/src/migrations/appwriteToX.ts +100 -34
- package/src/migrations/dataLoader.ts +48 -34
- package/src/migrations/importController.ts +44 -39
- package/src/migrations/relationships.ts +28 -18
- package/src/migrations/services/ImportOrchestrator.ts +24 -27
- package/src/migrations/transfer.ts +159 -121
- package/src/migrations/yaml/YamlImportConfigLoader.ts +11 -4
- package/src/migrations/yaml/YamlImportIntegration.ts +47 -20
- package/src/migrations/yaml/generateImportSchemas.ts +751 -12
- package/src/setupController.ts +3 -2
- package/src/shared/backupMetadataSchema.ts +93 -0
- package/src/shared/backupTracking.ts +211 -0
- package/src/shared/confirmationDialogs.ts +19 -19
- package/src/shared/errorUtils.ts +110 -0
- package/src/shared/functionManager.ts +21 -20
- package/src/shared/indexManager.ts +12 -11
- package/src/shared/jsonSchemaGenerator.ts +38 -52
- package/src/shared/logging.ts +75 -0
- package/src/shared/messageFormatter.ts +14 -1
- package/src/shared/migrationHelpers.ts +45 -38
- package/src/shared/operationLogger.ts +11 -36
- package/src/shared/operationQueue.ts +322 -93
- package/src/shared/operationsTable.ts +338 -0
- package/src/shared/operationsTableSchema.ts +60 -0
- package/src/shared/relationshipExtractor.ts +214 -0
- package/src/shared/schemaGenerator.ts +179 -219
- package/src/storage/backupCompression.ts +88 -0
- package/src/storage/methods.ts +131 -34
- package/src/users/methods.ts +11 -9
- package/src/utils/configDiscovery.ts +502 -0
- package/src/utils/directoryUtils.ts +61 -0
- package/src/utils/getClientFromConfig.ts +205 -22
- package/src/utils/helperFunctions.ts +23 -5
- package/src/utils/loadConfigs.ts +313 -345
- package/src/utils/pathResolvers.ts +81 -0
- package/src/utils/projectConfig.ts +299 -0
- package/src/utils/retryFailedPromises.ts +4 -2
- package/src/utils/sessionAuth.ts +230 -0
- package/src/utils/setupFiles.ts +322 -54
- package/src/utils/typeGuards.ts +65 -0
- package/src/utils/versionDetection.ts +218 -64
- package/src/utils/yamlConverter.ts +296 -13
- package/src/utils/yamlLoader.ts +364 -0
- package/src/utilsController.ts +314 -110
- package/tests/README.md +497 -0
- package/tests/adapters/AdapterFactory.test.ts +277 -0
- package/tests/integration/syncOperations.test.ts +463 -0
- package/tests/jest.config.js +25 -0
- package/tests/migration/configMigration.test.ts +546 -0
- package/tests/setup.ts +62 -0
- package/tests/testUtils.ts +340 -0
- package/tests/utils/loadConfigs.test.ts +350 -0
- package/tests/validation/configValidation.test.ts +412 -0
- package/src/utils/schemaStrings.ts +0 -517
@@ -2,6 +2,7 @@ import type { CollectionCreate, ImportDef } from "appwrite-utils";
|
|
2
2
|
import { YamlImportConfigLoader, type YamlImportConfig } from "./YamlImportConfigLoader.js";
|
3
3
|
import { createImportSchemas, createImportExamples } from "./generateImportSchemas.js";
|
4
4
|
import { logger } from "../../shared/logging.js";
|
5
|
+
import { normalizeYamlData, usesTableTerminology, convertTerminology, type YamlCollectionData } from "../../utils/yamlConverter.js";
|
5
6
|
import path from "path";
|
6
7
|
import fs from "fs";
|
7
8
|
|
@@ -225,12 +226,18 @@ export class YamlImportIntegration {
|
|
225
226
|
/**
|
226
227
|
* Generates a YAML import configuration from an existing ImportDef.
|
227
228
|
* Useful for migrating TypeScript configurations to YAML.
|
228
|
-
*
|
229
|
+
* Supports both collection and table terminology.
|
230
|
+
*
|
229
231
|
* @param importDef - Existing ImportDef to convert
|
230
232
|
* @param collectionName - Name of the collection
|
233
|
+
* @param useTableTerminology - Whether to use table terminology
|
231
234
|
* @returns YAML configuration string
|
232
235
|
*/
|
233
|
-
convertImportDefToYaml(
|
236
|
+
convertImportDefToYaml(
|
237
|
+
importDef: ImportDef,
|
238
|
+
collectionName: string,
|
239
|
+
useTableTerminology = false
|
240
|
+
): string {
|
234
241
|
const yamlConfig: YamlImportConfig = {
|
235
242
|
source: {
|
236
243
|
file: importDef.filePath,
|
@@ -284,16 +291,22 @@ export class YamlImportIntegration {
|
|
284
291
|
sortKeys: false,
|
285
292
|
});
|
286
293
|
|
287
|
-
|
294
|
+
const entityType = useTableTerminology ? 'Table' : 'Collection';
|
295
|
+
return `# yaml-language-server: $schema=../.yaml_schemas/import-config.schema.json\n# Import Configuration for ${entityType}: ${collectionName}\n\n${yamlContent}`;
|
288
296
|
}
|
289
297
|
|
290
298
|
/**
|
291
299
|
* Exports existing TypeScript import configurations to YAML files.
|
292
300
|
* Helps migrate from TypeScript to YAML-based configurations.
|
293
|
-
*
|
301
|
+
* Supports both collection and table terminology.
|
302
|
+
*
|
294
303
|
* @param collections - Collections with existing import definitions
|
304
|
+
* @param useTableTerminology - Whether to use table terminology
|
295
305
|
*/
|
296
|
-
async exportToYaml(
|
306
|
+
async exportToYaml(
|
307
|
+
collections: CollectionCreate[],
|
308
|
+
useTableTerminology = false
|
309
|
+
): Promise<void> {
|
297
310
|
const exportDir = path.join(this.appwriteFolderPath, "import", "exported");
|
298
311
|
|
299
312
|
if (!fs.existsSync(exportDir)) {
|
@@ -309,16 +322,21 @@ export class YamlImportIntegration {
|
|
309
322
|
|
310
323
|
for (let i = 0; i < collection.importDefs.length; i++) {
|
311
324
|
const importDef = collection.importDefs[i];
|
312
|
-
const yamlContent = this.convertImportDefToYaml(
|
313
|
-
|
325
|
+
const yamlContent = this.convertImportDefToYaml(
|
326
|
+
importDef,
|
327
|
+
collection.name,
|
328
|
+
useTableTerminology
|
329
|
+
);
|
330
|
+
|
331
|
+
const entityType = useTableTerminology ? 'table' : 'collection';
|
314
332
|
const filename = collection.importDefs.length > 1
|
315
|
-
? `${collection.name}-${i + 1}.yaml`
|
316
|
-
: `${collection.name}.yaml`;
|
317
|
-
|
333
|
+
? `${collection.name}-${entityType}-${i + 1}.yaml`
|
334
|
+
: `${collection.name}-${entityType}.yaml`;
|
335
|
+
|
318
336
|
const filePath = path.join(exportDir, filename);
|
319
337
|
fs.writeFileSync(filePath, yamlContent);
|
320
338
|
exportedCount++;
|
321
|
-
|
339
|
+
|
322
340
|
logger.info(`Exported import configuration: ${filePath}`);
|
323
341
|
}
|
324
342
|
}
|
@@ -364,28 +382,37 @@ export class YamlImportIntegration {
|
|
364
382
|
|
365
383
|
/**
|
366
384
|
* Creates a new YAML import configuration from a template.
|
367
|
-
*
|
385
|
+
* Supports both collection and table terminology.
|
386
|
+
*
|
368
387
|
* @param collectionName - Name of the collection
|
369
388
|
* @param sourceFile - Source data file name
|
389
|
+
* @param useTableTerminology - Whether to use table terminology
|
370
390
|
* @param outputPath - Output file path (optional)
|
371
391
|
*/
|
372
392
|
async createFromTemplate(
|
373
393
|
collectionName: string,
|
374
394
|
sourceFile: string,
|
395
|
+
useTableTerminology = false,
|
375
396
|
outputPath?: string
|
376
397
|
): Promise<string> {
|
377
|
-
const template = this.configLoader.generateTemplate(
|
378
|
-
|
379
|
-
|
398
|
+
const template = this.configLoader.generateTemplate(
|
399
|
+
collectionName,
|
400
|
+
sourceFile,
|
401
|
+
useTableTerminology
|
402
|
+
);
|
403
|
+
|
404
|
+
const entityType = useTableTerminology ? 'table' : 'collection';
|
405
|
+
const fileName = outputPath || `${collectionName.toLowerCase()}-${entityType}-import.yaml`;
|
380
406
|
const fullPath = path.join(this.appwriteFolderPath, "import", fileName);
|
381
|
-
|
382
|
-
// Add schema reference to template
|
407
|
+
|
408
|
+
// Add schema reference to template with entity type comment
|
383
409
|
const schemaHeader = "# yaml-language-server: $schema=../.yaml_schemas/import-config.schema.json\n";
|
384
|
-
const
|
385
|
-
|
410
|
+
const entityComment = `# Import Configuration for ${useTableTerminology ? 'Table' : 'Collection'}: ${collectionName}\n`;
|
411
|
+
const templateWithSchema = schemaHeader + entityComment + template;
|
412
|
+
|
386
413
|
fs.writeFileSync(fullPath, templateWithSchema);
|
387
414
|
logger.info(`Created YAML import configuration: ${fullPath}`);
|
388
|
-
|
415
|
+
|
389
416
|
return fullPath;
|
390
417
|
}
|
391
418
|
|