appwrite-utils-cli 1.9.7 → 1.11.0
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/CONFIG_TODO.md +1189 -1189
- package/README.md +1004 -1004
- package/SELECTION_DIALOGS.md +145 -145
- package/SERVICE_IMPLEMENTATION_REPORT.md +462 -462
- package/package.json +6 -3
- package/scripts/copy-templates.ts +23 -23
- package/src/adapters/index.ts +11 -37
- package/src/backups/operations/bucketBackup.ts +277 -277
- package/src/backups/operations/collectionBackup.ts +310 -310
- package/src/backups/operations/comprehensiveBackup.ts +342 -342
- package/src/backups/schemas/bucketManifest.ts +78 -78
- package/src/backups/schemas/comprehensiveManifest.ts +76 -76
- package/src/backups/tracking/centralizedTracking.ts +352 -352
- package/src/cli/commands/configCommands.ts +265 -201
- package/src/cli/commands/databaseCommands.ts +931 -879
- package/src/cli/commands/functionCommands.ts +333 -332
- package/src/cli/commands/importFileCommands.ts +815 -0
- package/src/cli/commands/schemaCommands.ts +141 -141
- package/src/cli/commands/storageCommands.ts +2 -3
- package/src/cli/commands/transferCommands.ts +454 -457
- package/src/collections/attributes.ts.backup +1555 -1555
- package/src/collections/{attributes.ts → columns.ts} +15 -10
- package/src/collections/indexes.ts +350 -352
- package/src/collections/methods.ts +714 -700
- package/src/collections/tableOperations.ts +29 -8
- package/src/collections/transferOperations.ts +376 -377
- package/src/collections/wipeOperations.ts +449 -346
- package/src/databases/methods.ts +49 -49
- package/src/databases/setup.ts +77 -77
- package/src/examples/yamlTerminologyExample.ts +346 -346
- package/src/functions/deployments.ts +221 -220
- package/src/functions/fnConfigDiscovery.ts +2 -2
- package/src/functions/methods.ts +284 -284
- package/src/functions/templates/count-docs-in-collection/README.md +53 -53
- package/src/functions/templates/count-docs-in-collection/src/main.ts +159 -159
- package/src/functions/templates/count-docs-in-collection/src/request.ts +8 -8
- package/src/functions/templates/hono-typescript/README.md +285 -285
- package/src/functions/templates/hono-typescript/src/adapters/request.ts +73 -73
- package/src/functions/templates/hono-typescript/src/adapters/response.ts +105 -105
- package/src/functions/templates/hono-typescript/src/app.ts +179 -179
- package/src/functions/templates/hono-typescript/src/context.ts +102 -102
- package/src/functions/templates/hono-typescript/src/{index.ts → main.ts} +53 -53
- package/src/functions/templates/hono-typescript/src/middleware/appwrite.ts +118 -118
- package/src/functions/templates/typescript-node/README.md +31 -31
- package/src/functions/templates/typescript-node/src/context.ts +102 -102
- package/src/functions/templates/typescript-node/src/{index.ts → main.ts} +29 -29
- package/src/functions/templates/uv/README.md +30 -30
- package/src/functions/templates/uv/pyproject.toml +29 -29
- package/src/functions/templates/uv/src/context.py +124 -124
- package/src/functions/templates/uv/src/{index.py → main.py} +45 -45
- package/src/init.ts +62 -62
- package/src/interactiveCLI.ts +1095 -1030
- package/src/main.ts +1517 -1670
- package/src/migrations/afterImportActions.ts +579 -580
- package/src/migrations/appwriteToX.ts +634 -630
- package/src/migrations/comprehensiveTransfer.ts +2149 -2149
- package/src/migrations/dataLoader.ts +1729 -1702
- package/src/migrations/importController.ts +440 -428
- package/src/migrations/importDataActions.ts +315 -315
- package/src/migrations/relationships.ts +333 -334
- package/src/migrations/services/DataTransformationService.ts +195 -195
- package/src/migrations/services/FileHandlerService.ts +310 -310
- package/src/migrations/services/ImportOrchestrator.ts +674 -665
- package/src/migrations/services/RateLimitManager.ts +362 -362
- package/src/migrations/services/RelationshipResolver.ts +460 -460
- package/src/migrations/services/UserMappingService.ts +344 -344
- package/src/migrations/services/ValidationService.ts +333 -333
- package/src/migrations/transfer.ts +987 -942
- package/src/migrations/yaml/YamlImportConfigLoader.ts +438 -438
- package/src/migrations/yaml/YamlImportIntegration.ts +438 -438
- package/src/migrations/yaml/generateImportSchemas.ts +1347 -1347
- package/src/schemas/authUser.ts +23 -23
- package/src/setup.ts +8 -8
- package/src/setupCommands.ts +5 -6
- package/src/setupController.ts +42 -42
- package/src/shared/backupMetadataSchema.ts +93 -93
- package/src/shared/backupTracking.ts +211 -211
- package/src/shared/confirmationDialogs.ts +326 -326
- package/src/shared/migrationHelpers.ts +232 -232
- package/src/shared/operationLogger.ts +20 -20
- package/src/shared/operationQueue.ts +326 -327
- package/src/shared/operationsTable.ts +338 -338
- package/src/shared/operationsTableSchema.ts +60 -60
- package/src/shared/progressManager.ts +277 -277
- package/src/shared/relationshipExtractor.ts +214 -214
- package/src/shared/selectionDialogs.ts +775 -722
- package/src/storage/backupCompression.ts +88 -88
- package/src/storage/methods.ts +695 -682
- package/src/storage/schemas.ts +205 -205
- package/src/tables/indexManager.ts +408 -408
- package/src/types/node-appwrite-tablesdb.d.ts +43 -43
- package/src/types.ts +9 -9
- package/src/users/methods.ts +358 -359
- package/src/utils/configMigration.ts +347 -347
- package/src/utils/index.ts +2 -2
- package/src/utils/loadConfigs.ts +457 -449
- package/src/utils/setupFiles.ts +1236 -1238
- package/src/utilsController.ts +1263 -1213
- package/tests/README.md +496 -496
- package/tests/adapters/AdapterFactory.test.ts +276 -276
- package/tests/integration/syncOperations.test.ts +462 -462
- package/tests/jest.config.js +24 -24
- package/tests/migration/configMigration.test.ts +545 -545
- package/tests/setup.ts +61 -61
- package/tests/testUtils.ts +339 -339
- package/tests/utils/loadConfigs.test.ts +349 -349
- package/tests/validation/configValidation.test.ts +411 -411
- package/tsconfig.json +44 -44
- package/.appwrite/.yaml_schemas/appwrite-config.schema.json +0 -380
- package/.appwrite/.yaml_schemas/collection.schema.json +0 -255
- package/.appwrite/collections/Categories.yaml +0 -182
- package/.appwrite/collections/ExampleCollection.yaml +0 -36
- package/.appwrite/collections/Posts.yaml +0 -227
- package/.appwrite/collections/Users.yaml +0 -149
- package/.appwrite/config.yaml +0 -109
- package/.appwrite/import/README.md +0 -148
- package/.appwrite/import/categories-import.yaml +0 -129
- package/.appwrite/import/posts-import.yaml +0 -208
- package/.appwrite/import/users-import.yaml +0 -130
- package/.appwrite/importData/categories.json +0 -194
- package/.appwrite/importData/posts.json +0 -270
- package/.appwrite/importData/users.json +0 -220
- package/.appwrite/schemas/categories.json +0 -128
- package/.appwrite/schemas/exampleCollection.json +0 -52
- package/.appwrite/schemas/posts.json +0 -173
- package/.appwrite/schemas/users.json +0 -125
- package/dist/adapters/AdapterFactory.d.ts +0 -94
- package/dist/adapters/AdapterFactory.js +0 -420
- package/dist/adapters/DatabaseAdapter.d.ts +0 -243
- package/dist/adapters/DatabaseAdapter.js +0 -50
- package/dist/adapters/LegacyAdapter.d.ts +0 -50
- package/dist/adapters/LegacyAdapter.js +0 -615
- package/dist/adapters/TablesDBAdapter.d.ts +0 -45
- package/dist/adapters/TablesDBAdapter.js +0 -611
- package/dist/adapters/index.d.ts +0 -11
- package/dist/adapters/index.js +0 -12
- package/dist/backups/operations/bucketBackup.d.ts +0 -19
- package/dist/backups/operations/bucketBackup.js +0 -197
- package/dist/backups/operations/collectionBackup.d.ts +0 -30
- package/dist/backups/operations/collectionBackup.js +0 -201
- package/dist/backups/operations/comprehensiveBackup.d.ts +0 -25
- package/dist/backups/operations/comprehensiveBackup.js +0 -238
- package/dist/backups/schemas/bucketManifest.d.ts +0 -93
- package/dist/backups/schemas/bucketManifest.js +0 -33
- package/dist/backups/schemas/comprehensiveManifest.d.ts +0 -108
- package/dist/backups/schemas/comprehensiveManifest.js +0 -32
- package/dist/backups/tracking/centralizedTracking.d.ts +0 -34
- package/dist/backups/tracking/centralizedTracking.js +0 -274
- package/dist/cli/commands/configCommands.d.ts +0 -8
- package/dist/cli/commands/configCommands.js +0 -166
- package/dist/cli/commands/databaseCommands.d.ts +0 -14
- package/dist/cli/commands/databaseCommands.js +0 -644
- package/dist/cli/commands/functionCommands.d.ts +0 -7
- package/dist/cli/commands/functionCommands.js +0 -330
- package/dist/cli/commands/schemaCommands.d.ts +0 -7
- package/dist/cli/commands/schemaCommands.js +0 -169
- package/dist/cli/commands/storageCommands.d.ts +0 -5
- package/dist/cli/commands/storageCommands.js +0 -143
- package/dist/cli/commands/transferCommands.d.ts +0 -5
- package/dist/cli/commands/transferCommands.js +0 -384
- package/dist/collections/attributes.d.ts +0 -13
- package/dist/collections/attributes.js +0 -1333
- package/dist/collections/indexes.d.ts +0 -12
- package/dist/collections/indexes.js +0 -217
- package/dist/collections/methods.d.ts +0 -19
- package/dist/collections/methods.js +0 -587
- package/dist/collections/tableOperations.d.ts +0 -86
- package/dist/collections/tableOperations.js +0 -447
- package/dist/collections/transferOperations.d.ts +0 -8
- package/dist/collections/transferOperations.js +0 -412
- package/dist/collections/wipeOperations.d.ts +0 -16
- package/dist/collections/wipeOperations.js +0 -233
- package/dist/config/ConfigManager.d.ts +0 -450
- package/dist/config/ConfigManager.js +0 -650
- package/dist/config/configMigration.d.ts +0 -87
- package/dist/config/configMigration.js +0 -390
- package/dist/config/configValidation.d.ts +0 -66
- package/dist/config/configValidation.js +0 -358
- package/dist/config/index.d.ts +0 -8
- package/dist/config/index.js +0 -7
- package/dist/config/services/ConfigDiscoveryService.d.ts +0 -122
- package/dist/config/services/ConfigDiscoveryService.js +0 -322
- package/dist/config/services/ConfigLoaderService.d.ts +0 -129
- package/dist/config/services/ConfigLoaderService.js +0 -535
- package/dist/config/services/ConfigMergeService.d.ts +0 -208
- package/dist/config/services/ConfigMergeService.js +0 -308
- package/dist/config/services/ConfigValidationService.d.ts +0 -214
- package/dist/config/services/ConfigValidationService.js +0 -310
- package/dist/config/services/SessionAuthService.d.ts +0 -225
- package/dist/config/services/SessionAuthService.js +0 -456
- package/dist/config/services/__tests__/ConfigMergeService.test.d.ts +0 -1
- package/dist/config/services/__tests__/ConfigMergeService.test.js +0 -271
- package/dist/config/services/index.d.ts +0 -13
- package/dist/config/services/index.js +0 -10
- package/dist/config/yamlConfig.d.ts +0 -722
- package/dist/config/yamlConfig.js +0 -702
- package/dist/databases/methods.d.ts +0 -6
- package/dist/databases/methods.js +0 -35
- package/dist/databases/setup.d.ts +0 -5
- package/dist/databases/setup.js +0 -45
- package/dist/examples/yamlTerminologyExample.d.ts +0 -42
- package/dist/examples/yamlTerminologyExample.js +0 -272
- package/dist/functions/deployments.d.ts +0 -4
- package/dist/functions/deployments.js +0 -146
- package/dist/functions/fnConfigDiscovery.d.ts +0 -3
- package/dist/functions/fnConfigDiscovery.js +0 -108
- package/dist/functions/methods.d.ts +0 -16
- package/dist/functions/methods.js +0 -174
- package/dist/functions/pathResolution.d.ts +0 -37
- package/dist/functions/pathResolution.js +0 -185
- package/dist/functions/templates/count-docs-in-collection/README.md +0 -54
- package/dist/functions/templates/count-docs-in-collection/package.json +0 -25
- package/dist/functions/templates/count-docs-in-collection/src/main.ts +0 -159
- package/dist/functions/templates/count-docs-in-collection/src/request.ts +0 -9
- package/dist/functions/templates/count-docs-in-collection/tsconfig.json +0 -28
- package/dist/functions/templates/hono-typescript/README.md +0 -286
- package/dist/functions/templates/hono-typescript/package.json +0 -26
- package/dist/functions/templates/hono-typescript/src/adapters/request.ts +0 -74
- package/dist/functions/templates/hono-typescript/src/adapters/response.ts +0 -106
- package/dist/functions/templates/hono-typescript/src/app.ts +0 -180
- package/dist/functions/templates/hono-typescript/src/context.ts +0 -103
- package/dist/functions/templates/hono-typescript/src/index.ts +0 -54
- package/dist/functions/templates/hono-typescript/src/middleware/appwrite.ts +0 -119
- package/dist/functions/templates/hono-typescript/tsconfig.json +0 -20
- package/dist/functions/templates/typescript-node/README.md +0 -32
- package/dist/functions/templates/typescript-node/package.json +0 -25
- package/dist/functions/templates/typescript-node/src/context.ts +0 -103
- package/dist/functions/templates/typescript-node/src/index.ts +0 -29
- package/dist/functions/templates/typescript-node/tsconfig.json +0 -28
- package/dist/functions/templates/uv/README.md +0 -31
- package/dist/functions/templates/uv/pyproject.toml +0 -30
- package/dist/functions/templates/uv/src/__init__.py +0 -0
- package/dist/functions/templates/uv/src/context.py +0 -125
- package/dist/functions/templates/uv/src/index.py +0 -46
- package/dist/init.d.ts +0 -2
- package/dist/init.js +0 -57
- package/dist/interactiveCLI.d.ts +0 -31
- package/dist/interactiveCLI.js +0 -898
- package/dist/main.d.ts +0 -2
- package/dist/main.js +0 -1180
- package/dist/migrations/afterImportActions.d.ts +0 -17
- package/dist/migrations/afterImportActions.js +0 -306
- package/dist/migrations/appwriteToX.d.ts +0 -211
- package/dist/migrations/appwriteToX.js +0 -491
- package/dist/migrations/comprehensiveTransfer.d.ts +0 -147
- package/dist/migrations/comprehensiveTransfer.js +0 -1317
- package/dist/migrations/dataLoader.d.ts +0 -753
- package/dist/migrations/dataLoader.js +0 -1250
- package/dist/migrations/importController.d.ts +0 -23
- package/dist/migrations/importController.js +0 -268
- package/dist/migrations/importDataActions.d.ts +0 -50
- package/dist/migrations/importDataActions.js +0 -230
- package/dist/migrations/relationships.d.ts +0 -29
- package/dist/migrations/relationships.js +0 -204
- package/dist/migrations/services/DataTransformationService.d.ts +0 -55
- package/dist/migrations/services/DataTransformationService.js +0 -158
- package/dist/migrations/services/FileHandlerService.d.ts +0 -75
- package/dist/migrations/services/FileHandlerService.js +0 -236
- package/dist/migrations/services/ImportOrchestrator.d.ts +0 -97
- package/dist/migrations/services/ImportOrchestrator.js +0 -485
- package/dist/migrations/services/RateLimitManager.d.ts +0 -138
- package/dist/migrations/services/RateLimitManager.js +0 -279
- package/dist/migrations/services/RelationshipResolver.d.ts +0 -120
- package/dist/migrations/services/RelationshipResolver.js +0 -332
- package/dist/migrations/services/UserMappingService.d.ts +0 -109
- package/dist/migrations/services/UserMappingService.js +0 -277
- package/dist/migrations/services/ValidationService.d.ts +0 -74
- package/dist/migrations/services/ValidationService.js +0 -260
- package/dist/migrations/transfer.d.ts +0 -26
- package/dist/migrations/transfer.js +0 -608
- package/dist/migrations/yaml/YamlImportConfigLoader.d.ts +0 -131
- package/dist/migrations/yaml/YamlImportConfigLoader.js +0 -383
- package/dist/migrations/yaml/YamlImportIntegration.d.ts +0 -93
- package/dist/migrations/yaml/YamlImportIntegration.js +0 -341
- package/dist/migrations/yaml/generateImportSchemas.d.ts +0 -30
- package/dist/migrations/yaml/generateImportSchemas.js +0 -1327
- package/dist/schemas/authUser.d.ts +0 -24
- package/dist/schemas/authUser.js +0 -17
- package/dist/setup.d.ts +0 -2
- package/dist/setup.js +0 -5
- package/dist/setupCommands.d.ts +0 -58
- package/dist/setupCommands.js +0 -490
- package/dist/setupController.d.ts +0 -9
- package/dist/setupController.js +0 -34
- package/dist/shared/attributeMapper.d.ts +0 -20
- package/dist/shared/attributeMapper.js +0 -203
- package/dist/shared/backupMetadataSchema.d.ts +0 -94
- package/dist/shared/backupMetadataSchema.js +0 -38
- package/dist/shared/backupTracking.d.ts +0 -18
- package/dist/shared/backupTracking.js +0 -176
- package/dist/shared/confirmationDialogs.d.ts +0 -75
- package/dist/shared/confirmationDialogs.js +0 -236
- package/dist/shared/errorUtils.d.ts +0 -54
- package/dist/shared/errorUtils.js +0 -95
- package/dist/shared/functionManager.d.ts +0 -48
- package/dist/shared/functionManager.js +0 -348
- package/dist/shared/jsonSchemaGenerator.d.ts +0 -50
- package/dist/shared/jsonSchemaGenerator.js +0 -290
- package/dist/shared/logging.d.ts +0 -61
- package/dist/shared/logging.js +0 -116
- package/dist/shared/messageFormatter.d.ts +0 -39
- package/dist/shared/messageFormatter.js +0 -162
- package/dist/shared/migrationHelpers.d.ts +0 -61
- package/dist/shared/migrationHelpers.js +0 -145
- package/dist/shared/operationLogger.d.ts +0 -10
- package/dist/shared/operationLogger.js +0 -12
- package/dist/shared/operationQueue.d.ts +0 -40
- package/dist/shared/operationQueue.js +0 -311
- package/dist/shared/operationsTable.d.ts +0 -26
- package/dist/shared/operationsTable.js +0 -286
- package/dist/shared/operationsTableSchema.d.ts +0 -48
- package/dist/shared/operationsTableSchema.js +0 -35
- package/dist/shared/progressManager.d.ts +0 -62
- package/dist/shared/progressManager.js +0 -215
- package/dist/shared/pydanticModelGenerator.d.ts +0 -17
- package/dist/shared/pydanticModelGenerator.js +0 -615
- package/dist/shared/relationshipExtractor.d.ts +0 -56
- package/dist/shared/relationshipExtractor.js +0 -138
- package/dist/shared/schemaGenerator.d.ts +0 -40
- package/dist/shared/schemaGenerator.js +0 -556
- package/dist/shared/selectionDialogs.d.ts +0 -214
- package/dist/shared/selectionDialogs.js +0 -544
- package/dist/storage/backupCompression.d.ts +0 -20
- package/dist/storage/backupCompression.js +0 -67
- package/dist/storage/methods.d.ts +0 -32
- package/dist/storage/methods.js +0 -472
- package/dist/storage/schemas.d.ts +0 -842
- package/dist/storage/schemas.js +0 -175
- package/dist/tables/indexManager.d.ts +0 -65
- package/dist/tables/indexManager.js +0 -294
- package/dist/types.d.ts +0 -4
- package/dist/types.js +0 -3
- package/dist/users/methods.d.ts +0 -16
- package/dist/users/methods.js +0 -277
- package/dist/utils/ClientFactory.d.ts +0 -87
- package/dist/utils/ClientFactory.js +0 -212
- package/dist/utils/configDiscovery.d.ts +0 -78
- package/dist/utils/configDiscovery.js +0 -472
- package/dist/utils/configMigration.d.ts +0 -1
- package/dist/utils/configMigration.js +0 -261
- package/dist/utils/constantsGenerator.d.ts +0 -31
- package/dist/utils/constantsGenerator.js +0 -321
- package/dist/utils/dataConverters.d.ts +0 -46
- package/dist/utils/dataConverters.js +0 -139
- package/dist/utils/directoryUtils.d.ts +0 -22
- package/dist/utils/directoryUtils.js +0 -59
- package/dist/utils/getClientFromConfig.d.ts +0 -39
- package/dist/utils/getClientFromConfig.js +0 -199
- package/dist/utils/helperFunctions.d.ts +0 -63
- package/dist/utils/helperFunctions.js +0 -156
- package/dist/utils/index.d.ts +0 -2
- package/dist/utils/index.js +0 -2
- package/dist/utils/loadConfigs.d.ts +0 -50
- package/dist/utils/loadConfigs.js +0 -358
- package/dist/utils/pathResolvers.d.ts +0 -53
- package/dist/utils/pathResolvers.js +0 -72
- package/dist/utils/projectConfig.d.ts +0 -122
- package/dist/utils/projectConfig.js +0 -206
- package/dist/utils/retryFailedPromises.d.ts +0 -2
- package/dist/utils/retryFailedPromises.js +0 -23
- package/dist/utils/sessionAuth.d.ts +0 -48
- package/dist/utils/sessionAuth.js +0 -164
- package/dist/utils/setupFiles.d.ts +0 -4
- package/dist/utils/setupFiles.js +0 -1192
- package/dist/utils/typeGuards.d.ts +0 -35
- package/dist/utils/typeGuards.js +0 -57
- package/dist/utils/validationRules.d.ts +0 -43
- package/dist/utils/validationRules.js +0 -42
- package/dist/utils/versionDetection.d.ts +0 -58
- package/dist/utils/versionDetection.js +0 -251
- package/dist/utils/yamlConverter.d.ts +0 -100
- package/dist/utils/yamlConverter.js +0 -428
- package/dist/utils/yamlLoader.d.ts +0 -70
- package/dist/utils/yamlLoader.js +0 -267
- package/dist/utilsController.d.ts +0 -107
- package/dist/utilsController.js +0 -873
- package/src/adapters/AdapterFactory.ts +0 -529
- package/src/adapters/DatabaseAdapter.ts +0 -319
- package/src/adapters/LegacyAdapter.ts +0 -844
- package/src/adapters/TablesDBAdapter.ts +0 -823
- package/src/config/ConfigManager.ts +0 -849
- package/src/config/README.md +0 -274
- package/src/config/configMigration.ts +0 -575
- package/src/config/configValidation.ts +0 -445
- package/src/config/index.ts +0 -10
- package/src/config/services/ConfigDiscoveryService.ts +0 -410
- package/src/config/services/ConfigLoaderService.ts +0 -732
- package/src/config/services/ConfigMergeService.ts +0 -388
- package/src/config/services/ConfigValidationService.ts +0 -394
- package/src/config/services/SessionAuthService.ts +0 -565
- package/src/config/services/__tests__/ConfigMergeService.test.ts +0 -351
- package/src/config/services/index.ts +0 -29
- package/src/config/yamlConfig.ts +0 -761
- package/src/functions/pathResolution.ts +0 -227
- package/src/functions/templates/count-docs-in-collection/package.json +0 -25
- package/src/functions/templates/count-docs-in-collection/tsconfig.json +0 -28
- package/src/functions/templates/hono-typescript/package.json +0 -26
- package/src/functions/templates/hono-typescript/tsconfig.json +0 -20
- package/src/functions/templates/typescript-node/package.json +0 -25
- package/src/functions/templates/typescript-node/tsconfig.json +0 -28
- package/src/shared/attributeMapper.ts +0 -229
- package/src/shared/errorUtils.ts +0 -110
- package/src/shared/functionManager.ts +0 -537
- package/src/shared/jsonSchemaGenerator.ts +0 -383
- package/src/shared/logging.ts +0 -149
- package/src/shared/messageFormatter.ts +0 -208
- package/src/shared/pydanticModelGenerator.ts +0 -618
- package/src/shared/schemaGenerator.ts +0 -644
- package/src/utils/ClientFactory.ts +0 -240
- package/src/utils/configDiscovery.ts +0 -557
- package/src/utils/constantsGenerator.ts +0 -369
- package/src/utils/dataConverters.ts +0 -159
- package/src/utils/directoryUtils.ts +0 -61
- package/src/utils/getClientFromConfig.ts +0 -257
- package/src/utils/helperFunctions.ts +0 -228
- package/src/utils/pathResolvers.ts +0 -81
- package/src/utils/projectConfig.ts +0 -340
- package/src/utils/retryFailedPromises.ts +0 -29
- package/src/utils/sessionAuth.ts +0 -230
- package/src/utils/typeGuards.ts +0 -65
- package/src/utils/validationRules.ts +0 -88
- package/src/utils/versionDetection.ts +0 -292
- package/src/utils/yamlConverter.ts +0 -542
- package/src/utils/yamlLoader.ts +0 -371
- package/tmp-sync-test/.appwrite/collections/TestCollection.yaml +0 -7
|
@@ -1,410 +0,0 @@
|
|
|
1
|
-
import fs from "fs";
|
|
2
|
-
import path from "path";
|
|
3
|
-
import { findUp } from "find-up";
|
|
4
|
-
import { MessageFormatter } from "../../shared/messageFormatter.js";
|
|
5
|
-
import { shouldIgnoreDirectory } from "../../utils/directoryUtils.js";
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* Result of discovering configuration files or collections/tables
|
|
9
|
-
*/
|
|
10
|
-
export interface DiscoveryResult {
|
|
11
|
-
found: boolean;
|
|
12
|
-
path?: string;
|
|
13
|
-
type: "yaml" | "typescript" | "json" | "none";
|
|
14
|
-
files?: string[];
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
* Service for discovering Appwrite configuration files and collection/table definitions.
|
|
19
|
-
*
|
|
20
|
-
* Uses find-up for intelligent searching with git repository boundary detection:
|
|
21
|
-
* 1. Finds .git directory to establish repo root boundary
|
|
22
|
-
* 2. Searches UP from current directory to repo root
|
|
23
|
-
* 3. Searches DOWN recursively within repo root
|
|
24
|
-
*
|
|
25
|
-
* Search Priority:
|
|
26
|
-
* 1. YAML configs (.appwrite/config.yaml, .appwrite/config.yml, etc.)
|
|
27
|
-
* 2. JSON configs (appwrite.config.json, appwrite.json)
|
|
28
|
-
* 3. TypeScript configs (appwriteConfig.ts)
|
|
29
|
-
*/
|
|
30
|
-
export class ConfigDiscoveryService {
|
|
31
|
-
/**
|
|
32
|
-
* YAML configuration file names to search for
|
|
33
|
-
*/
|
|
34
|
-
private readonly YAML_FILENAMES = [
|
|
35
|
-
".appwrite/config.yaml",
|
|
36
|
-
".appwrite/config.yml",
|
|
37
|
-
".appwrite/appwriteConfig.yaml",
|
|
38
|
-
".appwrite/appwriteConfig.yml",
|
|
39
|
-
"appwrite.yaml",
|
|
40
|
-
"appwrite.yml",
|
|
41
|
-
];
|
|
42
|
-
|
|
43
|
-
/**
|
|
44
|
-
* JSON configuration file names to search for
|
|
45
|
-
*/
|
|
46
|
-
private readonly JSON_FILENAMES = ["appwrite.config.json", "appwrite.json"];
|
|
47
|
-
|
|
48
|
-
/**
|
|
49
|
-
* TypeScript configuration file names to search for
|
|
50
|
-
*/
|
|
51
|
-
private readonly TS_FILENAMES = ["appwriteConfig.ts"];
|
|
52
|
-
|
|
53
|
-
/**
|
|
54
|
-
* Finds the git repository root directory
|
|
55
|
-
* @param startDir The directory to start searching from
|
|
56
|
-
* @returns Path to the repository root, or startDir if no .git found
|
|
57
|
-
*/
|
|
58
|
-
private async findRepoRoot(startDir: string): Promise<string> {
|
|
59
|
-
const gitDir = await findUp(".git", {
|
|
60
|
-
cwd: startDir,
|
|
61
|
-
type: "directory",
|
|
62
|
-
});
|
|
63
|
-
|
|
64
|
-
return gitDir ? path.dirname(gitDir) : startDir;
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
/**
|
|
68
|
-
* Recursively searches downward for files matching patterns
|
|
69
|
-
* @param dir Directory to search in
|
|
70
|
-
* @param patterns File patterns to match
|
|
71
|
-
* @param maxDepth Maximum depth to search
|
|
72
|
-
* @param currentDepth Current recursion depth
|
|
73
|
-
* @returns First matching file path or null
|
|
74
|
-
*/
|
|
75
|
-
private async searchDownward(
|
|
76
|
-
dir: string,
|
|
77
|
-
patterns: string[],
|
|
78
|
-
maxDepth: number = 5,
|
|
79
|
-
currentDepth: number = 0
|
|
80
|
-
): Promise<string | null> {
|
|
81
|
-
if (currentDepth > maxDepth) return null;
|
|
82
|
-
if (shouldIgnoreDirectory(path.basename(dir))) return null;
|
|
83
|
-
|
|
84
|
-
try {
|
|
85
|
-
const entries = await fs.promises.readdir(dir, { withFileTypes: true });
|
|
86
|
-
|
|
87
|
-
// Check current directory for matches
|
|
88
|
-
for (const pattern of patterns) {
|
|
89
|
-
const fullPath = path.join(dir, pattern);
|
|
90
|
-
if (fs.existsSync(fullPath)) {
|
|
91
|
-
return fullPath;
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
// Recurse into subdirectories
|
|
96
|
-
for (const entry of entries) {
|
|
97
|
-
if (entry.isDirectory() && !shouldIgnoreDirectory(entry.name)) {
|
|
98
|
-
const result = await this.searchDownward(
|
|
99
|
-
path.join(dir, entry.name),
|
|
100
|
-
patterns,
|
|
101
|
-
maxDepth,
|
|
102
|
-
currentDepth + 1
|
|
103
|
-
);
|
|
104
|
-
if (result) return result;
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
} catch (error) {
|
|
108
|
-
// Ignore permission errors
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
return null;
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
/**
|
|
115
|
-
* Finds any configuration file with configurable priority
|
|
116
|
-
* @param startDir The directory to start searching from
|
|
117
|
-
* @param preferJson If true, prioritizes appwrite.config.json over YAML (default: false)
|
|
118
|
-
* @returns Path to the configuration file or null if not found
|
|
119
|
-
*
|
|
120
|
-
* Default priority: YAML → JSON → TypeScript
|
|
121
|
-
* With preferJson=true: JSON → YAML → TypeScript
|
|
122
|
-
*/
|
|
123
|
-
public async findConfig(startDir: string, preferJson: boolean = false): Promise<string | null> {
|
|
124
|
-
// Find repo root to establish boundary
|
|
125
|
-
const repoRoot = await this.findRepoRoot(startDir);
|
|
126
|
-
|
|
127
|
-
if (preferJson) {
|
|
128
|
-
// Try JSON first when --appwrite-config flag is used
|
|
129
|
-
const jsonConfig = await this.findProjectConfig(startDir, repoRoot);
|
|
130
|
-
if (jsonConfig) return jsonConfig;
|
|
131
|
-
|
|
132
|
-
// Try YAML second
|
|
133
|
-
const yamlConfig = await this.findYamlConfig(startDir, repoRoot);
|
|
134
|
-
if (yamlConfig) return yamlConfig;
|
|
135
|
-
|
|
136
|
-
// Try TypeScript last (lowest priority)
|
|
137
|
-
const tsConfig = await this.findTypeScriptConfig(startDir, repoRoot);
|
|
138
|
-
if (tsConfig) return tsConfig;
|
|
139
|
-
} else {
|
|
140
|
-
// Default priority: YAML → JSON → TypeScript
|
|
141
|
-
const yamlConfig = await this.findYamlConfig(startDir, repoRoot);
|
|
142
|
-
if (yamlConfig) return yamlConfig;
|
|
143
|
-
|
|
144
|
-
const jsonConfig = await this.findProjectConfig(startDir, repoRoot);
|
|
145
|
-
if (jsonConfig) return jsonConfig;
|
|
146
|
-
|
|
147
|
-
const tsConfig = await this.findTypeScriptConfig(startDir, repoRoot);
|
|
148
|
-
if (tsConfig) return tsConfig;
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
return null;
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
/**
|
|
155
|
-
* Finds YAML configuration files
|
|
156
|
-
* Searches UP to repo root, then DOWN from repo root
|
|
157
|
-
* @param startDir The directory to start searching from
|
|
158
|
-
* @param repoRoot The repository root boundary
|
|
159
|
-
* @returns Path to the YAML config file or null if not found
|
|
160
|
-
*/
|
|
161
|
-
public async findYamlConfig(
|
|
162
|
-
startDir: string,
|
|
163
|
-
repoRoot?: string
|
|
164
|
-
): Promise<string | null> {
|
|
165
|
-
const boundary = repoRoot || (await this.findRepoRoot(startDir));
|
|
166
|
-
|
|
167
|
-
// Search UP to repo root
|
|
168
|
-
const upwardResult = await findUp(this.YAML_FILENAMES, {
|
|
169
|
-
cwd: startDir,
|
|
170
|
-
stopAt: boundary,
|
|
171
|
-
});
|
|
172
|
-
|
|
173
|
-
if (upwardResult) return upwardResult;
|
|
174
|
-
|
|
175
|
-
// Search DOWN from repo root
|
|
176
|
-
return await this.searchDownward(boundary, this.YAML_FILENAMES);
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
/**
|
|
180
|
-
* Finds JSON project configuration files (appwrite.config.json, appwrite.json)
|
|
181
|
-
* @param startDir The directory to start searching from
|
|
182
|
-
* @param repoRoot The repository root boundary
|
|
183
|
-
* @returns Path to the JSON config file or null if not found
|
|
184
|
-
*/
|
|
185
|
-
public async findProjectConfig(
|
|
186
|
-
startDir: string,
|
|
187
|
-
repoRoot?: string
|
|
188
|
-
): Promise<string | null> {
|
|
189
|
-
const boundary = repoRoot || (await this.findRepoRoot(startDir));
|
|
190
|
-
|
|
191
|
-
// Search UP to repo root
|
|
192
|
-
const upwardResult = await findUp(this.JSON_FILENAMES, {
|
|
193
|
-
cwd: startDir,
|
|
194
|
-
stopAt: boundary,
|
|
195
|
-
});
|
|
196
|
-
|
|
197
|
-
if (upwardResult) return upwardResult;
|
|
198
|
-
|
|
199
|
-
// Search DOWN from repo root
|
|
200
|
-
return await this.searchDownward(boundary, this.JSON_FILENAMES);
|
|
201
|
-
}
|
|
202
|
-
|
|
203
|
-
/**
|
|
204
|
-
* Finds TypeScript configuration files (appwriteConfig.ts)
|
|
205
|
-
* @param startDir The directory to start searching from
|
|
206
|
-
* @param repoRoot The repository root boundary
|
|
207
|
-
* @returns Path to the TypeScript config file or null if not found
|
|
208
|
-
*/
|
|
209
|
-
public async findTypeScriptConfig(
|
|
210
|
-
startDir: string,
|
|
211
|
-
repoRoot?: string
|
|
212
|
-
): Promise<string | null> {
|
|
213
|
-
const boundary = repoRoot || (await this.findRepoRoot(startDir));
|
|
214
|
-
|
|
215
|
-
// Search UP to repo root
|
|
216
|
-
const upwardResult = await findUp(this.TS_FILENAMES, {
|
|
217
|
-
cwd: startDir,
|
|
218
|
-
stopAt: boundary,
|
|
219
|
-
});
|
|
220
|
-
|
|
221
|
-
if (upwardResult) return upwardResult;
|
|
222
|
-
|
|
223
|
-
// Search DOWN from repo root
|
|
224
|
-
return await this.searchDownward(boundary, this.TS_FILENAMES);
|
|
225
|
-
}
|
|
226
|
-
|
|
227
|
-
/**
|
|
228
|
-
* Discovers collection YAML files in a collections/ directory
|
|
229
|
-
* @param collectionsDir Path to the collections directory
|
|
230
|
-
* @returns Discovery result with file paths
|
|
231
|
-
*/
|
|
232
|
-
public async discoverCollections(collectionsDir: string): Promise<DiscoveryResult> {
|
|
233
|
-
if (!fs.existsSync(collectionsDir)) {
|
|
234
|
-
return {
|
|
235
|
-
found: false,
|
|
236
|
-
type: "none",
|
|
237
|
-
files: [],
|
|
238
|
-
};
|
|
239
|
-
}
|
|
240
|
-
|
|
241
|
-
try {
|
|
242
|
-
const files = fs.readdirSync(collectionsDir);
|
|
243
|
-
const collectionFiles = files.filter(
|
|
244
|
-
(file) =>
|
|
245
|
-
(file.endsWith(".yaml") ||
|
|
246
|
-
file.endsWith(".yml") ||
|
|
247
|
-
file.endsWith(".ts")) &&
|
|
248
|
-
file !== "index.ts"
|
|
249
|
-
);
|
|
250
|
-
|
|
251
|
-
if (collectionFiles.length === 0) {
|
|
252
|
-
return {
|
|
253
|
-
found: false,
|
|
254
|
-
type: "none",
|
|
255
|
-
files: [],
|
|
256
|
-
};
|
|
257
|
-
}
|
|
258
|
-
|
|
259
|
-
MessageFormatter.success(
|
|
260
|
-
`Discovered ${collectionFiles.length} collection file(s) in ${collectionsDir}`,
|
|
261
|
-
{ prefix: "Discovery" }
|
|
262
|
-
);
|
|
263
|
-
|
|
264
|
-
return {
|
|
265
|
-
found: true,
|
|
266
|
-
path: collectionsDir,
|
|
267
|
-
type: "yaml",
|
|
268
|
-
files: collectionFiles,
|
|
269
|
-
};
|
|
270
|
-
} catch (error) {
|
|
271
|
-
MessageFormatter.error(
|
|
272
|
-
`Error discovering collections in ${collectionsDir}`,
|
|
273
|
-
error instanceof Error ? error : undefined,
|
|
274
|
-
{ prefix: "Discovery" }
|
|
275
|
-
);
|
|
276
|
-
return {
|
|
277
|
-
found: false,
|
|
278
|
-
type: "none",
|
|
279
|
-
files: [],
|
|
280
|
-
};
|
|
281
|
-
}
|
|
282
|
-
}
|
|
283
|
-
|
|
284
|
-
/**
|
|
285
|
-
* Discovers table YAML files in a tables/ directory
|
|
286
|
-
* @param tablesDir Path to the tables directory
|
|
287
|
-
* @returns Discovery result with file paths
|
|
288
|
-
*/
|
|
289
|
-
public async discoverTables(tablesDir: string): Promise<DiscoveryResult> {
|
|
290
|
-
if (!fs.existsSync(tablesDir)) {
|
|
291
|
-
return {
|
|
292
|
-
found: false,
|
|
293
|
-
type: "none",
|
|
294
|
-
files: [],
|
|
295
|
-
};
|
|
296
|
-
}
|
|
297
|
-
|
|
298
|
-
try {
|
|
299
|
-
const files = fs.readdirSync(tablesDir);
|
|
300
|
-
const tableFiles = files.filter(
|
|
301
|
-
(file) =>
|
|
302
|
-
(file.endsWith(".yaml") ||
|
|
303
|
-
file.endsWith(".yml") ||
|
|
304
|
-
file.endsWith(".ts")) &&
|
|
305
|
-
file !== "index.ts"
|
|
306
|
-
);
|
|
307
|
-
|
|
308
|
-
if (tableFiles.length === 0) {
|
|
309
|
-
return {
|
|
310
|
-
found: false,
|
|
311
|
-
type: "none",
|
|
312
|
-
files: [],
|
|
313
|
-
};
|
|
314
|
-
}
|
|
315
|
-
|
|
316
|
-
MessageFormatter.success(
|
|
317
|
-
`Discovered ${tableFiles.length} table file(s) in ${tablesDir}`,
|
|
318
|
-
{ prefix: "Discovery" }
|
|
319
|
-
);
|
|
320
|
-
|
|
321
|
-
return {
|
|
322
|
-
found: true,
|
|
323
|
-
path: tablesDir,
|
|
324
|
-
type: "yaml",
|
|
325
|
-
files: tableFiles,
|
|
326
|
-
};
|
|
327
|
-
} catch (error) {
|
|
328
|
-
MessageFormatter.error(
|
|
329
|
-
`Error discovering tables in ${tablesDir}`,
|
|
330
|
-
error instanceof Error ? error : undefined,
|
|
331
|
-
{ prefix: "Discovery" }
|
|
332
|
-
);
|
|
333
|
-
return {
|
|
334
|
-
found: false,
|
|
335
|
-
type: "none",
|
|
336
|
-
files: [],
|
|
337
|
-
};
|
|
338
|
-
}
|
|
339
|
-
}
|
|
340
|
-
|
|
341
|
-
/**
|
|
342
|
-
* Finds the .appwrite configuration directory
|
|
343
|
-
* @param startDir The directory to start searching from
|
|
344
|
-
* @returns Path to .appwrite directory or null if not found
|
|
345
|
-
*/
|
|
346
|
-
public async findAppwriteDirectory(startDir: string): Promise<string | null> {
|
|
347
|
-
const repoRoot = await this.findRepoRoot(startDir);
|
|
348
|
-
|
|
349
|
-
// Search UP to repo root
|
|
350
|
-
const upwardResult = await findUp(".appwrite", {
|
|
351
|
-
cwd: startDir,
|
|
352
|
-
type: "directory",
|
|
353
|
-
stopAt: repoRoot,
|
|
354
|
-
});
|
|
355
|
-
|
|
356
|
-
if (upwardResult) return upwardResult;
|
|
357
|
-
|
|
358
|
-
// Search DOWN from repo root
|
|
359
|
-
return await this.searchDownward(repoRoot, [".appwrite"]);
|
|
360
|
-
}
|
|
361
|
-
|
|
362
|
-
/**
|
|
363
|
-
* Finds the functions directory
|
|
364
|
-
* @param startDir The directory to start searching from
|
|
365
|
-
* @returns Path to functions directory or null if not found
|
|
366
|
-
*/
|
|
367
|
-
public async findFunctionsDirectory(startDir: string): Promise<string | null> {
|
|
368
|
-
const repoRoot = await this.findRepoRoot(startDir);
|
|
369
|
-
|
|
370
|
-
// Search UP to repo root
|
|
371
|
-
const upwardResult = await findUp("functions", {
|
|
372
|
-
cwd: startDir,
|
|
373
|
-
type: "directory",
|
|
374
|
-
stopAt: repoRoot,
|
|
375
|
-
});
|
|
376
|
-
|
|
377
|
-
if (upwardResult) return upwardResult;
|
|
378
|
-
|
|
379
|
-
// Search DOWN from repo root
|
|
380
|
-
return await this.searchDownward(repoRoot, ["functions"]);
|
|
381
|
-
}
|
|
382
|
-
|
|
383
|
-
/**
|
|
384
|
-
* Gets a summary of all discoverable configuration files
|
|
385
|
-
* Useful for debugging configuration issues
|
|
386
|
-
* @param startDir The directory to start searching from
|
|
387
|
-
* @returns Object containing paths to all discovered config types
|
|
388
|
-
*/
|
|
389
|
-
public async getConfigurationSummary(startDir: string): Promise<{
|
|
390
|
-
yaml: string | null;
|
|
391
|
-
typescript: string | null;
|
|
392
|
-
json: string | null;
|
|
393
|
-
appwriteDirectory: string | null;
|
|
394
|
-
functionsDirectory: string | null;
|
|
395
|
-
selectedConfig: string | null;
|
|
396
|
-
repoRoot: string;
|
|
397
|
-
}> {
|
|
398
|
-
const repoRoot = await this.findRepoRoot(startDir);
|
|
399
|
-
|
|
400
|
-
return {
|
|
401
|
-
yaml: await this.findYamlConfig(startDir, repoRoot),
|
|
402
|
-
typescript: await this.findTypeScriptConfig(startDir, repoRoot),
|
|
403
|
-
json: await this.findProjectConfig(startDir, repoRoot),
|
|
404
|
-
appwriteDirectory: await this.findAppwriteDirectory(startDir),
|
|
405
|
-
functionsDirectory: await this.findFunctionsDirectory(startDir),
|
|
406
|
-
selectedConfig: await this.findConfig(startDir),
|
|
407
|
-
repoRoot,
|
|
408
|
-
};
|
|
409
|
-
}
|
|
410
|
-
}
|