@njdamstra/appwrite-utils-cli 1.8.9
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 +19 -0
- package/README.md +1133 -0
- package/dist/adapters/AdapterFactory.d.ts +94 -0
- package/dist/adapters/AdapterFactory.js +405 -0
- package/dist/adapters/DatabaseAdapter.d.ts +233 -0
- package/dist/adapters/DatabaseAdapter.js +50 -0
- package/dist/adapters/LegacyAdapter.d.ts +50 -0
- package/dist/adapters/LegacyAdapter.js +612 -0
- package/dist/adapters/TablesDBAdapter.d.ts +45 -0
- package/dist/adapters/TablesDBAdapter.js +571 -0
- package/dist/adapters/index.d.ts +11 -0
- package/dist/adapters/index.js +12 -0
- 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 +166 -0
- package/dist/cli/commands/databaseCommands.d.ts +13 -0
- package/dist/cli/commands/databaseCommands.js +554 -0
- package/dist/cli/commands/functionCommands.d.ts +7 -0
- package/dist/cli/commands/functionCommands.js +330 -0
- package/dist/cli/commands/schemaCommands.d.ts +7 -0
- package/dist/cli/commands/schemaCommands.js +169 -0
- package/dist/cli/commands/storageCommands.d.ts +5 -0
- package/dist/cli/commands/storageCommands.js +143 -0
- package/dist/cli/commands/transferCommands.d.ts +5 -0
- package/dist/cli/commands/transferCommands.js +384 -0
- package/dist/collections/attributes.d.ts +13 -0
- package/dist/collections/attributes.js +1364 -0
- package/dist/collections/indexes.d.ts +12 -0
- package/dist/collections/indexes.js +217 -0
- package/dist/collections/methods.d.ts +19 -0
- package/dist/collections/methods.js +682 -0
- package/dist/collections/tableOperations.d.ts +86 -0
- package/dist/collections/tableOperations.js +434 -0
- package/dist/collections/transferOperations.d.ts +8 -0
- package/dist/collections/transferOperations.js +412 -0
- package/dist/collections/wipeOperations.d.ts +16 -0
- package/dist/collections/wipeOperations.js +233 -0
- package/dist/config/ConfigManager.d.ts +445 -0
- package/dist/config/ConfigManager.js +625 -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/index.d.ts +8 -0
- package/dist/config/index.js +7 -0
- package/dist/config/services/ConfigDiscoveryService.d.ts +126 -0
- package/dist/config/services/ConfigDiscoveryService.js +374 -0
- package/dist/config/services/ConfigLoaderService.d.ts +129 -0
- package/dist/config/services/ConfigLoaderService.js +540 -0
- package/dist/config/services/ConfigMergeService.d.ts +208 -0
- package/dist/config/services/ConfigMergeService.js +308 -0
- package/dist/config/services/ConfigValidationService.d.ts +214 -0
- package/dist/config/services/ConfigValidationService.js +310 -0
- package/dist/config/services/SessionAuthService.d.ts +225 -0
- package/dist/config/services/SessionAuthService.js +456 -0
- package/dist/config/services/__tests__/ConfigMergeService.test.d.ts +1 -0
- package/dist/config/services/__tests__/ConfigMergeService.test.js +271 -0
- package/dist/config/services/index.d.ts +13 -0
- package/dist/config/services/index.js +10 -0
- package/dist/config/yamlConfig.d.ts +722 -0
- package/dist/config/yamlConfig.js +702 -0
- package/dist/databases/methods.d.ts +6 -0
- package/dist/databases/methods.js +35 -0
- package/dist/databases/setup.d.ts +5 -0
- package/dist/databases/setup.js +45 -0
- package/dist/examples/yamlTerminologyExample.d.ts +42 -0
- package/dist/examples/yamlTerminologyExample.js +272 -0
- package/dist/functions/deployments.d.ts +4 -0
- package/dist/functions/deployments.js +146 -0
- package/dist/functions/fnConfigDiscovery.d.ts +3 -0
- package/dist/functions/fnConfigDiscovery.js +108 -0
- package/dist/functions/methods.d.ts +16 -0
- package/dist/functions/methods.js +162 -0
- package/dist/functions/pathResolution.d.ts +37 -0
- package/dist/functions/pathResolution.js +185 -0
- package/dist/functions/templates/count-docs-in-collection/README.md +54 -0
- package/dist/functions/templates/count-docs-in-collection/src/main.ts +159 -0
- package/dist/functions/templates/count-docs-in-collection/src/request.ts +9 -0
- package/dist/functions/templates/hono-typescript/README.md +286 -0
- package/dist/functions/templates/hono-typescript/src/adapters/request.ts +74 -0
- package/dist/functions/templates/hono-typescript/src/adapters/response.ts +106 -0
- package/dist/functions/templates/hono-typescript/src/app.ts +180 -0
- package/dist/functions/templates/hono-typescript/src/context.ts +103 -0
- package/dist/functions/templates/hono-typescript/src/index.ts +54 -0
- package/dist/functions/templates/hono-typescript/src/middleware/appwrite.ts +119 -0
- package/dist/functions/templates/typescript-node/README.md +32 -0
- package/dist/functions/templates/typescript-node/src/context.ts +103 -0
- package/dist/functions/templates/typescript-node/src/index.ts +29 -0
- package/dist/functions/templates/uv/README.md +31 -0
- package/dist/functions/templates/uv/pyproject.toml +30 -0
- package/dist/functions/templates/uv/src/__init__.py +0 -0
- package/dist/functions/templates/uv/src/context.py +125 -0
- package/dist/functions/templates/uv/src/index.py +46 -0
- package/dist/init.d.ts +2 -0
- package/dist/init.js +57 -0
- package/dist/interactiveCLI.d.ts +31 -0
- package/dist/interactiveCLI.js +898 -0
- package/dist/main.d.ts +2 -0
- package/dist/main.js +1172 -0
- package/dist/migrations/afterImportActions.d.ts +17 -0
- package/dist/migrations/afterImportActions.js +306 -0
- package/dist/migrations/appwriteToX.d.ts +211 -0
- package/dist/migrations/appwriteToX.js +491 -0
- package/dist/migrations/comprehensiveTransfer.d.ts +147 -0
- package/dist/migrations/comprehensiveTransfer.js +1317 -0
- package/dist/migrations/dataLoader.d.ts +753 -0
- package/dist/migrations/dataLoader.js +1250 -0
- package/dist/migrations/importController.d.ts +23 -0
- package/dist/migrations/importController.js +268 -0
- package/dist/migrations/importDataActions.d.ts +50 -0
- package/dist/migrations/importDataActions.js +230 -0
- package/dist/migrations/relationships.d.ts +29 -0
- package/dist/migrations/relationships.js +204 -0
- package/dist/migrations/services/DataTransformationService.d.ts +55 -0
- package/dist/migrations/services/DataTransformationService.js +158 -0
- package/dist/migrations/services/FileHandlerService.d.ts +75 -0
- package/dist/migrations/services/FileHandlerService.js +236 -0
- package/dist/migrations/services/ImportOrchestrator.d.ts +97 -0
- package/dist/migrations/services/ImportOrchestrator.js +485 -0
- package/dist/migrations/services/RateLimitManager.d.ts +138 -0
- package/dist/migrations/services/RateLimitManager.js +279 -0
- package/dist/migrations/services/RelationshipResolver.d.ts +120 -0
- package/dist/migrations/services/RelationshipResolver.js +332 -0
- package/dist/migrations/services/UserMappingService.d.ts +109 -0
- package/dist/migrations/services/UserMappingService.js +277 -0
- package/dist/migrations/services/ValidationService.d.ts +74 -0
- package/dist/migrations/services/ValidationService.js +260 -0
- package/dist/migrations/transfer.d.ts +26 -0
- package/dist/migrations/transfer.js +608 -0
- package/dist/migrations/yaml/YamlImportConfigLoader.d.ts +131 -0
- package/dist/migrations/yaml/YamlImportConfigLoader.js +383 -0
- package/dist/migrations/yaml/YamlImportIntegration.d.ts +93 -0
- package/dist/migrations/yaml/YamlImportIntegration.js +341 -0
- package/dist/migrations/yaml/generateImportSchemas.d.ts +30 -0
- package/dist/migrations/yaml/generateImportSchemas.js +1327 -0
- package/dist/schemas/authUser.d.ts +24 -0
- package/dist/schemas/authUser.js +17 -0
- package/dist/setup.d.ts +2 -0
- package/dist/setup.js +5 -0
- package/dist/setupCommands.d.ts +58 -0
- package/dist/setupCommands.js +490 -0
- package/dist/setupController.d.ts +9 -0
- package/dist/setupController.js +34 -0
- package/dist/shared/attributeMapper.d.ts +20 -0
- package/dist/shared/attributeMapper.js +203 -0
- 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.d.ts +75 -0
- package/dist/shared/confirmationDialogs.js +236 -0
- package/dist/shared/errorUtils.d.ts +54 -0
- package/dist/shared/errorUtils.js +95 -0
- package/dist/shared/functionManager.d.ts +48 -0
- package/dist/shared/functionManager.js +336 -0
- package/dist/shared/indexManager.d.ts +24 -0
- package/dist/shared/indexManager.js +151 -0
- package/dist/shared/jsonSchemaGenerator.d.ts +50 -0
- package/dist/shared/jsonSchemaGenerator.js +290 -0
- package/dist/shared/logging.d.ts +61 -0
- package/dist/shared/logging.js +116 -0
- package/dist/shared/messageFormatter.d.ts +39 -0
- package/dist/shared/messageFormatter.js +162 -0
- package/dist/shared/migrationHelpers.d.ts +61 -0
- package/dist/shared/migrationHelpers.js +145 -0
- package/dist/shared/operationLogger.d.ts +10 -0
- package/dist/shared/operationLogger.js +12 -0
- package/dist/shared/operationQueue.d.ts +40 -0
- package/dist/shared/operationQueue.js +311 -0
- 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/progressManager.d.ts +62 -0
- package/dist/shared/progressManager.js +215 -0
- package/dist/shared/pydanticModelGenerator.d.ts +17 -0
- package/dist/shared/pydanticModelGenerator.js +615 -0
- package/dist/shared/relationshipExtractor.d.ts +56 -0
- package/dist/shared/relationshipExtractor.js +138 -0
- package/dist/shared/schemaGenerator.d.ts +40 -0
- package/dist/shared/schemaGenerator.js +556 -0
- package/dist/shared/selectionDialogs.d.ts +214 -0
- package/dist/shared/selectionDialogs.js +544 -0
- package/dist/storage/backupCompression.d.ts +20 -0
- package/dist/storage/backupCompression.js +67 -0
- package/dist/storage/methods.d.ts +32 -0
- package/dist/storage/methods.js +472 -0
- package/dist/storage/schemas.d.ts +842 -0
- package/dist/storage/schemas.js +175 -0
- package/dist/types.d.ts +4 -0
- package/dist/types.js +3 -0
- package/dist/users/methods.d.ts +16 -0
- package/dist/users/methods.js +277 -0
- package/dist/utils/ClientFactory.d.ts +87 -0
- package/dist/utils/ClientFactory.js +212 -0
- package/dist/utils/configDiscovery.d.ts +78 -0
- package/dist/utils/configDiscovery.js +472 -0
- package/dist/utils/configMigration.d.ts +1 -0
- package/dist/utils/configMigration.js +261 -0
- package/dist/utils/constantsGenerator.d.ts +31 -0
- package/dist/utils/constantsGenerator.js +321 -0
- package/dist/utils/dataConverters.d.ts +46 -0
- package/dist/utils/dataConverters.js +139 -0
- package/dist/utils/directoryUtils.d.ts +22 -0
- package/dist/utils/directoryUtils.js +59 -0
- package/dist/utils/getClientFromConfig.d.ts +39 -0
- package/dist/utils/getClientFromConfig.js +199 -0
- package/dist/utils/helperFunctions.d.ts +63 -0
- package/dist/utils/helperFunctions.js +156 -0
- package/dist/utils/index.d.ts +2 -0
- package/dist/utils/index.js +2 -0
- package/dist/utils/loadConfigs.d.ts +50 -0
- package/dist/utils/loadConfigs.js +358 -0
- 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.d.ts +2 -0
- package/dist/utils/retryFailedPromises.js +23 -0
- package/dist/utils/sessionAuth.d.ts +48 -0
- package/dist/utils/sessionAuth.js +164 -0
- package/dist/utils/setupFiles.d.ts +4 -0
- package/dist/utils/setupFiles.js +1192 -0
- package/dist/utils/typeGuards.d.ts +35 -0
- package/dist/utils/typeGuards.js +57 -0
- package/dist/utils/validationRules.d.ts +43 -0
- package/dist/utils/validationRules.js +42 -0
- package/dist/utils/versionDetection.d.ts +58 -0
- package/dist/utils/versionDetection.js +251 -0
- package/dist/utils/yamlConverter.d.ts +100 -0
- package/dist/utils/yamlConverter.js +428 -0
- package/dist/utils/yamlLoader.d.ts +70 -0
- package/dist/utils/yamlLoader.js +267 -0
- package/dist/utilsController.d.ts +106 -0
- package/dist/utilsController.js +863 -0
- package/package.json +75 -0
- package/scripts/copy-templates.ts +23 -0
- package/src/adapters/AdapterFactory.ts +510 -0
- package/src/adapters/DatabaseAdapter.ts +306 -0
- package/src/adapters/LegacyAdapter.ts +841 -0
- package/src/adapters/TablesDBAdapter.ts +773 -0
- package/src/adapters/index.ts +37 -0
- 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 +201 -0
- package/src/cli/commands/databaseCommands.ts +749 -0
- package/src/cli/commands/functionCommands.ts +418 -0
- package/src/cli/commands/schemaCommands.ts +200 -0
- package/src/cli/commands/storageCommands.ts +152 -0
- package/src/cli/commands/transferCommands.ts +457 -0
- package/src/collections/attributes.ts +2054 -0
- package/src/collections/attributes.ts.backup +1555 -0
- package/src/collections/indexes.ts +352 -0
- package/src/collections/methods.ts +745 -0
- package/src/collections/tableOperations.ts +506 -0
- package/src/collections/transferOperations.ts +590 -0
- package/src/collections/wipeOperations.ts +346 -0
- package/src/config/ConfigManager.ts +808 -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/index.ts +10 -0
- package/src/config/services/ConfigDiscoveryService.ts +463 -0
- package/src/config/services/ConfigLoaderService.ts +740 -0
- package/src/config/services/ConfigMergeService.ts +388 -0
- package/src/config/services/ConfigValidationService.ts +394 -0
- package/src/config/services/SessionAuthService.ts +565 -0
- package/src/config/services/__tests__/ConfigMergeService.test.ts +351 -0
- package/src/config/services/index.ts +29 -0
- package/src/config/yamlConfig.ts +761 -0
- package/src/databases/methods.ts +49 -0
- package/src/databases/setup.ts +77 -0
- package/src/examples/yamlTerminologyExample.ts +346 -0
- package/src/functions/deployments.ts +220 -0
- package/src/functions/fnConfigDiscovery.ts +103 -0
- package/src/functions/methods.ts +271 -0
- package/src/functions/pathResolution.ts +227 -0
- package/src/functions/templates/count-docs-in-collection/README.md +54 -0
- package/src/functions/templates/count-docs-in-collection/src/main.ts +159 -0
- package/src/functions/templates/count-docs-in-collection/src/request.ts +9 -0
- package/src/functions/templates/hono-typescript/README.md +286 -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/typescript-node/README.md +32 -0
- package/src/functions/templates/typescript-node/src/context.ts +103 -0
- package/src/functions/templates/typescript-node/src/index.ts +29 -0
- package/src/functions/templates/uv/README.md +31 -0
- package/src/functions/templates/uv/pyproject.toml +30 -0
- package/src/functions/templates/uv/src/__init__.py +0 -0
- package/src/functions/templates/uv/src/context.py +125 -0
- package/src/functions/templates/uv/src/index.py +46 -0
- package/src/init.ts +62 -0
- package/src/interactiveCLI.ts +1136 -0
- package/src/main.ts +1661 -0
- package/src/migrations/afterImportActions.ts +580 -0
- package/src/migrations/appwriteToX.ts +664 -0
- package/src/migrations/comprehensiveTransfer.ts +2285 -0
- package/src/migrations/dataLoader.ts +1702 -0
- package/src/migrations/importController.ts +428 -0
- package/src/migrations/importDataActions.ts +315 -0
- package/src/migrations/relationships.ts +334 -0
- package/src/migrations/services/DataTransformationService.ts +196 -0
- package/src/migrations/services/FileHandlerService.ts +311 -0
- package/src/migrations/services/ImportOrchestrator.ts +666 -0
- package/src/migrations/services/RateLimitManager.ts +363 -0
- package/src/migrations/services/RelationshipResolver.ts +461 -0
- package/src/migrations/services/UserMappingService.ts +345 -0
- package/src/migrations/services/ValidationService.ts +349 -0
- package/src/migrations/transfer.ts +1068 -0
- package/src/migrations/yaml/YamlImportConfigLoader.ts +439 -0
- package/src/migrations/yaml/YamlImportIntegration.ts +446 -0
- package/src/migrations/yaml/generateImportSchemas.ts +1354 -0
- package/src/schemas/authUser.ts +23 -0
- package/src/setup.ts +8 -0
- package/src/setupCommands.ts +603 -0
- package/src/setupController.ts +43 -0
- package/src/shared/attributeMapper.ts +229 -0
- package/src/shared/backupMetadataSchema.ts +93 -0
- package/src/shared/backupTracking.ts +211 -0
- package/src/shared/confirmationDialogs.ts +327 -0
- package/src/shared/errorUtils.ts +110 -0
- package/src/shared/functionManager.ts +525 -0
- package/src/shared/indexManager.ts +254 -0
- package/src/shared/jsonSchemaGenerator.ts +383 -0
- package/src/shared/logging.ts +149 -0
- package/src/shared/messageFormatter.ts +208 -0
- package/src/shared/migrationHelpers.ts +232 -0
- package/src/shared/operationLogger.ts +20 -0
- package/src/shared/operationQueue.ts +377 -0
- package/src/shared/operationsTable.ts +338 -0
- package/src/shared/operationsTableSchema.ts +60 -0
- package/src/shared/progressManager.ts +278 -0
- package/src/shared/pydanticModelGenerator.ts +618 -0
- package/src/shared/relationshipExtractor.ts +214 -0
- package/src/shared/schemaGenerator.ts +644 -0
- package/src/shared/selectionDialogs.ts +749 -0
- package/src/storage/backupCompression.ts +88 -0
- package/src/storage/methods.ts +698 -0
- package/src/storage/schemas.ts +205 -0
- package/src/types/node-appwrite-tablesdb.d.ts +44 -0
- package/src/types.ts +9 -0
- package/src/users/methods.ts +359 -0
- package/src/utils/ClientFactory.ts +240 -0
- package/src/utils/configDiscovery.ts +557 -0
- package/src/utils/configMigration.ts +348 -0
- package/src/utils/constantsGenerator.ts +369 -0
- package/src/utils/dataConverters.ts +159 -0
- package/src/utils/directoryUtils.ts +61 -0
- package/src/utils/getClientFromConfig.ts +257 -0
- package/src/utils/helperFunctions.ts +228 -0
- package/src/utils/index.ts +2 -0
- package/src/utils/loadConfigs.ts +449 -0
- package/src/utils/pathResolvers.ts +81 -0
- package/src/utils/projectConfig.ts +299 -0
- package/src/utils/retryFailedPromises.ts +29 -0
- package/src/utils/sessionAuth.ts +230 -0
- package/src/utils/setupFiles.ts +1238 -0
- package/src/utils/typeGuards.ts +65 -0
- package/src/utils/validationRules.ts +88 -0
- package/src/utils/versionDetection.ts +292 -0
- package/src/utils/yamlConverter.ts +542 -0
- package/src/utils/yamlLoader.ts +371 -0
- package/src/utilsController.ts +1203 -0
- 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/tsconfig.json +44 -0
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DatabaseAdapter Interface - Unified API for Appwrite Database Operations
|
|
3
|
+
*
|
|
4
|
+
* This interface provides a unified way to interact with both legacy Appwrite
|
|
5
|
+
* (collections/documents) and new TablesDB (tables/rows) APIs. All internal
|
|
6
|
+
* code uses TablesDB-style method signatures for consistency.
|
|
7
|
+
*/
|
|
8
|
+
import type { Client } from "node-appwrite";
|
|
9
|
+
import type { ApiMode } from "../utils/versionDetection.js";
|
|
10
|
+
export interface CreateRowParams {
|
|
11
|
+
databaseId: string;
|
|
12
|
+
tableId: string;
|
|
13
|
+
id: string;
|
|
14
|
+
data: any;
|
|
15
|
+
permissions?: string[];
|
|
16
|
+
}
|
|
17
|
+
export interface UpdateRowParams {
|
|
18
|
+
databaseId: string;
|
|
19
|
+
tableId: string;
|
|
20
|
+
id: string;
|
|
21
|
+
data?: any;
|
|
22
|
+
permissions?: string[];
|
|
23
|
+
}
|
|
24
|
+
export interface ListRowsParams {
|
|
25
|
+
databaseId: string;
|
|
26
|
+
tableId: string;
|
|
27
|
+
queries?: any[];
|
|
28
|
+
}
|
|
29
|
+
export interface DeleteRowParams {
|
|
30
|
+
databaseId: string;
|
|
31
|
+
tableId: string;
|
|
32
|
+
id: string;
|
|
33
|
+
}
|
|
34
|
+
export interface CreateTableParams {
|
|
35
|
+
databaseId: string;
|
|
36
|
+
id: string;
|
|
37
|
+
name: string;
|
|
38
|
+
permissions?: string[];
|
|
39
|
+
documentSecurity?: boolean;
|
|
40
|
+
rowSecurity?: boolean;
|
|
41
|
+
enabled?: boolean;
|
|
42
|
+
}
|
|
43
|
+
export interface UpdateTableParams {
|
|
44
|
+
databaseId: string;
|
|
45
|
+
id: string;
|
|
46
|
+
name: string;
|
|
47
|
+
permissions?: string[];
|
|
48
|
+
documentSecurity?: boolean;
|
|
49
|
+
rowSecurity?: boolean;
|
|
50
|
+
enabled?: boolean;
|
|
51
|
+
}
|
|
52
|
+
export interface ListTablesParams {
|
|
53
|
+
databaseId: string;
|
|
54
|
+
queries?: any[];
|
|
55
|
+
}
|
|
56
|
+
export interface DeleteTableParams {
|
|
57
|
+
databaseId: string;
|
|
58
|
+
tableId: string;
|
|
59
|
+
}
|
|
60
|
+
export interface GetTableParams {
|
|
61
|
+
databaseId: string;
|
|
62
|
+
tableId: string;
|
|
63
|
+
}
|
|
64
|
+
export interface BulkCreateRowsParams {
|
|
65
|
+
databaseId: string;
|
|
66
|
+
tableId: string;
|
|
67
|
+
rows: any[];
|
|
68
|
+
}
|
|
69
|
+
export interface BulkUpsertRowsParams {
|
|
70
|
+
databaseId: string;
|
|
71
|
+
tableId: string;
|
|
72
|
+
rows: any[];
|
|
73
|
+
}
|
|
74
|
+
export interface BulkDeleteRowsParams {
|
|
75
|
+
databaseId: string;
|
|
76
|
+
tableId: string;
|
|
77
|
+
rowIds: string[];
|
|
78
|
+
batchSize?: number;
|
|
79
|
+
}
|
|
80
|
+
export interface CreateIndexParams {
|
|
81
|
+
databaseId: string;
|
|
82
|
+
tableId: string;
|
|
83
|
+
key: string;
|
|
84
|
+
type: string;
|
|
85
|
+
attributes: string[];
|
|
86
|
+
orders?: string[];
|
|
87
|
+
}
|
|
88
|
+
export interface ListIndexesParams {
|
|
89
|
+
databaseId: string;
|
|
90
|
+
tableId: string;
|
|
91
|
+
queries?: any[];
|
|
92
|
+
}
|
|
93
|
+
export interface DeleteIndexParams {
|
|
94
|
+
databaseId: string;
|
|
95
|
+
tableId: string;
|
|
96
|
+
key: string;
|
|
97
|
+
}
|
|
98
|
+
export interface CreateAttributeParams {
|
|
99
|
+
databaseId: string;
|
|
100
|
+
tableId: string;
|
|
101
|
+
key: string;
|
|
102
|
+
type: string;
|
|
103
|
+
size?: number;
|
|
104
|
+
required?: boolean;
|
|
105
|
+
default?: any;
|
|
106
|
+
array?: boolean;
|
|
107
|
+
encrypt?: boolean;
|
|
108
|
+
[key: string]: any;
|
|
109
|
+
}
|
|
110
|
+
export interface UpdateAttributeParams {
|
|
111
|
+
databaseId: string;
|
|
112
|
+
tableId: string;
|
|
113
|
+
key: string;
|
|
114
|
+
type?: string;
|
|
115
|
+
required?: boolean;
|
|
116
|
+
default?: any;
|
|
117
|
+
size?: number;
|
|
118
|
+
min?: number;
|
|
119
|
+
max?: number;
|
|
120
|
+
array?: boolean;
|
|
121
|
+
encrypt?: boolean;
|
|
122
|
+
elements?: string[];
|
|
123
|
+
relatedCollection?: string;
|
|
124
|
+
relationType?: string;
|
|
125
|
+
twoWay?: boolean;
|
|
126
|
+
twoWayKey?: string;
|
|
127
|
+
onDelete?: string;
|
|
128
|
+
}
|
|
129
|
+
export interface DeleteAttributeParams {
|
|
130
|
+
databaseId: string;
|
|
131
|
+
tableId: string;
|
|
132
|
+
key: string;
|
|
133
|
+
}
|
|
134
|
+
export interface ApiResponse<T = any> {
|
|
135
|
+
data?: T;
|
|
136
|
+
total?: number;
|
|
137
|
+
documents?: T[];
|
|
138
|
+
rows?: T[];
|
|
139
|
+
collections?: T[];
|
|
140
|
+
tables?: T[];
|
|
141
|
+
errors?: any[];
|
|
142
|
+
}
|
|
143
|
+
export interface AdapterMetadata {
|
|
144
|
+
apiMode: ApiMode;
|
|
145
|
+
terminology: {
|
|
146
|
+
container: 'collection' | 'table';
|
|
147
|
+
item: 'document' | 'row';
|
|
148
|
+
service: 'Databases' | 'TablesDB';
|
|
149
|
+
};
|
|
150
|
+
capabilities: {
|
|
151
|
+
bulkOperations: boolean;
|
|
152
|
+
advancedQueries: boolean;
|
|
153
|
+
realtime: boolean;
|
|
154
|
+
transactions?: boolean;
|
|
155
|
+
};
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Main DatabaseAdapter interface - all implementations must support these methods
|
|
159
|
+
*/
|
|
160
|
+
export interface DatabaseAdapter {
|
|
161
|
+
listRows(params: ListRowsParams): Promise<ApiResponse>;
|
|
162
|
+
createRow(params: CreateRowParams): Promise<ApiResponse>;
|
|
163
|
+
updateRow(params: UpdateRowParams): Promise<ApiResponse>;
|
|
164
|
+
deleteRow(params: DeleteRowParams): Promise<ApiResponse>;
|
|
165
|
+
getRow(params: {
|
|
166
|
+
databaseId: string;
|
|
167
|
+
tableId: string;
|
|
168
|
+
id: string;
|
|
169
|
+
}): Promise<ApiResponse>;
|
|
170
|
+
listTables(params: ListTablesParams): Promise<ApiResponse>;
|
|
171
|
+
createTable(params: CreateTableParams): Promise<ApiResponse>;
|
|
172
|
+
updateTable(params: UpdateTableParams): Promise<ApiResponse>;
|
|
173
|
+
deleteTable(params: DeleteTableParams): Promise<ApiResponse>;
|
|
174
|
+
getTable(params: GetTableParams): Promise<ApiResponse>;
|
|
175
|
+
listIndexes(params: ListIndexesParams): Promise<ApiResponse>;
|
|
176
|
+
createIndex(params: CreateIndexParams): Promise<ApiResponse>;
|
|
177
|
+
deleteIndex(params: DeleteIndexParams): Promise<ApiResponse>;
|
|
178
|
+
createAttribute(params: CreateAttributeParams): Promise<ApiResponse>;
|
|
179
|
+
updateAttribute(params: UpdateAttributeParams): Promise<ApiResponse>;
|
|
180
|
+
deleteAttribute(params: DeleteAttributeParams): Promise<ApiResponse>;
|
|
181
|
+
bulkCreateRows?(params: BulkCreateRowsParams): Promise<ApiResponse>;
|
|
182
|
+
bulkUpsertRows?(params: BulkUpsertRowsParams): Promise<ApiResponse>;
|
|
183
|
+
bulkDeleteRows?(params: BulkDeleteRowsParams): Promise<ApiResponse>;
|
|
184
|
+
getMetadata(): AdapterMetadata;
|
|
185
|
+
supportsBulkOperations(): boolean;
|
|
186
|
+
getApiMode(): ApiMode;
|
|
187
|
+
getTerminology(): AdapterMetadata['terminology'];
|
|
188
|
+
getRawClient(): any;
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Base adapter class with common functionality
|
|
192
|
+
*/
|
|
193
|
+
export declare abstract class BaseAdapter implements DatabaseAdapter {
|
|
194
|
+
protected client: Client;
|
|
195
|
+
protected apiMode: ApiMode;
|
|
196
|
+
constructor(client: Client, apiMode: ApiMode);
|
|
197
|
+
abstract listRows(params: ListRowsParams): Promise<ApiResponse>;
|
|
198
|
+
abstract createRow(params: CreateRowParams): Promise<ApiResponse>;
|
|
199
|
+
abstract updateRow(params: UpdateRowParams): Promise<ApiResponse>;
|
|
200
|
+
abstract deleteRow(params: DeleteRowParams): Promise<ApiResponse>;
|
|
201
|
+
abstract getRow(params: {
|
|
202
|
+
databaseId: string;
|
|
203
|
+
tableId: string;
|
|
204
|
+
id: string;
|
|
205
|
+
}): Promise<ApiResponse>;
|
|
206
|
+
abstract listTables(params: ListTablesParams): Promise<ApiResponse>;
|
|
207
|
+
abstract createTable(params: CreateTableParams): Promise<ApiResponse>;
|
|
208
|
+
abstract updateTable(params: UpdateTableParams): Promise<ApiResponse>;
|
|
209
|
+
abstract deleteTable(params: DeleteTableParams): Promise<ApiResponse>;
|
|
210
|
+
abstract getTable(params: GetTableParams): Promise<ApiResponse>;
|
|
211
|
+
abstract listIndexes(params: ListIndexesParams): Promise<ApiResponse>;
|
|
212
|
+
abstract createIndex(params: CreateIndexParams): Promise<ApiResponse>;
|
|
213
|
+
abstract deleteIndex(params: DeleteIndexParams): Promise<ApiResponse>;
|
|
214
|
+
abstract createAttribute(params: CreateAttributeParams): Promise<ApiResponse>;
|
|
215
|
+
abstract updateAttribute(params: UpdateAttributeParams): Promise<ApiResponse>;
|
|
216
|
+
abstract deleteAttribute(params: DeleteAttributeParams): Promise<ApiResponse>;
|
|
217
|
+
abstract getMetadata(): AdapterMetadata;
|
|
218
|
+
getApiMode(): ApiMode;
|
|
219
|
+
getRawClient(): any;
|
|
220
|
+
supportsBulkOperations(): boolean;
|
|
221
|
+
getTerminology(): AdapterMetadata['terminology'];
|
|
222
|
+
}
|
|
223
|
+
/**
|
|
224
|
+
* Error types for adapter operations
|
|
225
|
+
*/
|
|
226
|
+
export declare class AdapterError extends Error {
|
|
227
|
+
readonly code: string;
|
|
228
|
+
readonly originalError?: Error | undefined;
|
|
229
|
+
constructor(message: string, code: string, originalError?: Error | undefined);
|
|
230
|
+
}
|
|
231
|
+
export declare class UnsupportedOperationError extends AdapterError {
|
|
232
|
+
constructor(operation: string, apiMode: ApiMode);
|
|
233
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DatabaseAdapter Interface - Unified API for Appwrite Database Operations
|
|
3
|
+
*
|
|
4
|
+
* This interface provides a unified way to interact with both legacy Appwrite
|
|
5
|
+
* (collections/documents) and new TablesDB (tables/rows) APIs. All internal
|
|
6
|
+
* code uses TablesDB-style method signatures for consistency.
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Base adapter class with common functionality
|
|
10
|
+
*/
|
|
11
|
+
export class BaseAdapter {
|
|
12
|
+
client;
|
|
13
|
+
apiMode;
|
|
14
|
+
constructor(client, apiMode) {
|
|
15
|
+
this.client = client;
|
|
16
|
+
this.apiMode = apiMode;
|
|
17
|
+
}
|
|
18
|
+
// Common implementations
|
|
19
|
+
getApiMode() {
|
|
20
|
+
return this.apiMode;
|
|
21
|
+
}
|
|
22
|
+
getRawClient() {
|
|
23
|
+
return this.client;
|
|
24
|
+
}
|
|
25
|
+
supportsBulkOperations() {
|
|
26
|
+
return this.getMetadata().capabilities.bulkOperations;
|
|
27
|
+
}
|
|
28
|
+
getTerminology() {
|
|
29
|
+
return this.getMetadata().terminology;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Error types for adapter operations
|
|
34
|
+
*/
|
|
35
|
+
export class AdapterError extends Error {
|
|
36
|
+
code;
|
|
37
|
+
originalError;
|
|
38
|
+
constructor(message, code, originalError) {
|
|
39
|
+
super(message);
|
|
40
|
+
this.code = code;
|
|
41
|
+
this.originalError = originalError;
|
|
42
|
+
this.name = 'AdapterError';
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
export class UnsupportedOperationError extends AdapterError {
|
|
46
|
+
constructor(operation, apiMode) {
|
|
47
|
+
super(`Operation '${operation}' is not supported in ${apiMode} mode`, 'UNSUPPORTED_OPERATION');
|
|
48
|
+
this.name = 'UnsupportedOperationError';
|
|
49
|
+
}
|
|
50
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LegacyAdapter - Translation Layer for Legacy Appwrite API
|
|
3
|
+
*
|
|
4
|
+
* This adapter translates TablesDB-style calls (object notation) to legacy
|
|
5
|
+
* Appwrite Databases API calls (positional parameters). It ensures all internal
|
|
6
|
+
* code can use modern TablesDB patterns while maintaining compatibility with
|
|
7
|
+
* older Appwrite instances.
|
|
8
|
+
*/
|
|
9
|
+
import { Client } from "node-appwrite";
|
|
10
|
+
import { BaseAdapter, type CreateRowParams, type UpdateRowParams, type ListRowsParams, type DeleteRowParams, type CreateTableParams, type UpdateTableParams, type ListTablesParams, type DeleteTableParams, type GetTableParams, type BulkCreateRowsParams, type BulkUpsertRowsParams, type BulkDeleteRowsParams, type CreateIndexParams, type ListIndexesParams, type DeleteIndexParams, type CreateAttributeParams, type UpdateAttributeParams, type DeleteAttributeParams, type ApiResponse, type AdapterMetadata } from './DatabaseAdapter.js';
|
|
11
|
+
/**
|
|
12
|
+
* LegacyAdapter - Translates TablesDB calls to legacy Databases API
|
|
13
|
+
*/
|
|
14
|
+
export declare class LegacyAdapter extends BaseAdapter {
|
|
15
|
+
private databases;
|
|
16
|
+
constructor(client: Client);
|
|
17
|
+
listRows(params: ListRowsParams): Promise<ApiResponse>;
|
|
18
|
+
createRow(params: CreateRowParams): Promise<ApiResponse>;
|
|
19
|
+
updateRow(params: UpdateRowParams): Promise<ApiResponse>;
|
|
20
|
+
deleteRow(params: DeleteRowParams): Promise<ApiResponse>;
|
|
21
|
+
getRow(params: {
|
|
22
|
+
databaseId: string;
|
|
23
|
+
tableId: string;
|
|
24
|
+
id: string;
|
|
25
|
+
}): Promise<ApiResponse>;
|
|
26
|
+
listTables(params: ListTablesParams): Promise<ApiResponse>;
|
|
27
|
+
createTable(params: CreateTableParams): Promise<ApiResponse>;
|
|
28
|
+
updateTable(params: UpdateTableParams): Promise<ApiResponse>;
|
|
29
|
+
deleteTable(params: DeleteTableParams): Promise<ApiResponse>;
|
|
30
|
+
getTable(params: GetTableParams): Promise<ApiResponse>;
|
|
31
|
+
listIndexes(params: ListIndexesParams): Promise<ApiResponse>;
|
|
32
|
+
createIndex(params: CreateIndexParams): Promise<ApiResponse>;
|
|
33
|
+
deleteIndex(params: DeleteIndexParams): Promise<ApiResponse>;
|
|
34
|
+
createAttribute(params: CreateAttributeParams): Promise<ApiResponse>;
|
|
35
|
+
updateAttribute(params: UpdateAttributeParams): Promise<ApiResponse>;
|
|
36
|
+
deleteAttribute(params: DeleteAttributeParams): Promise<ApiResponse>;
|
|
37
|
+
bulkCreateRows(params: BulkCreateRowsParams): Promise<ApiResponse>;
|
|
38
|
+
bulkUpsertRows(params: BulkUpsertRowsParams): Promise<ApiResponse>;
|
|
39
|
+
bulkDeleteRows(params: BulkDeleteRowsParams): Promise<ApiResponse>;
|
|
40
|
+
getMetadata(): AdapterMetadata;
|
|
41
|
+
supportsBulkOperations(): boolean;
|
|
42
|
+
/**
|
|
43
|
+
* Check if endpoint supports bulk operations via HTTP (for cloud instances)
|
|
44
|
+
*/
|
|
45
|
+
private supportsHttpBulkOperations;
|
|
46
|
+
/**
|
|
47
|
+
* Normalize response format to be consistent with TablesDB
|
|
48
|
+
*/
|
|
49
|
+
private normalizeResponse;
|
|
50
|
+
}
|