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.
Files changed (425) hide show
  1. package/CONFIG_TODO.md +1189 -1189
  2. package/README.md +1004 -1004
  3. package/SELECTION_DIALOGS.md +145 -145
  4. package/SERVICE_IMPLEMENTATION_REPORT.md +462 -462
  5. package/package.json +6 -3
  6. package/scripts/copy-templates.ts +23 -23
  7. package/src/adapters/index.ts +11 -37
  8. package/src/backups/operations/bucketBackup.ts +277 -277
  9. package/src/backups/operations/collectionBackup.ts +310 -310
  10. package/src/backups/operations/comprehensiveBackup.ts +342 -342
  11. package/src/backups/schemas/bucketManifest.ts +78 -78
  12. package/src/backups/schemas/comprehensiveManifest.ts +76 -76
  13. package/src/backups/tracking/centralizedTracking.ts +352 -352
  14. package/src/cli/commands/configCommands.ts +265 -201
  15. package/src/cli/commands/databaseCommands.ts +931 -879
  16. package/src/cli/commands/functionCommands.ts +333 -332
  17. package/src/cli/commands/importFileCommands.ts +815 -0
  18. package/src/cli/commands/schemaCommands.ts +141 -141
  19. package/src/cli/commands/storageCommands.ts +2 -3
  20. package/src/cli/commands/transferCommands.ts +454 -457
  21. package/src/collections/attributes.ts.backup +1555 -1555
  22. package/src/collections/{attributes.ts → columns.ts} +15 -10
  23. package/src/collections/indexes.ts +350 -352
  24. package/src/collections/methods.ts +714 -700
  25. package/src/collections/tableOperations.ts +29 -8
  26. package/src/collections/transferOperations.ts +376 -377
  27. package/src/collections/wipeOperations.ts +449 -346
  28. package/src/databases/methods.ts +49 -49
  29. package/src/databases/setup.ts +77 -77
  30. package/src/examples/yamlTerminologyExample.ts +346 -346
  31. package/src/functions/deployments.ts +221 -220
  32. package/src/functions/fnConfigDiscovery.ts +2 -2
  33. package/src/functions/methods.ts +284 -284
  34. package/src/functions/templates/count-docs-in-collection/README.md +53 -53
  35. package/src/functions/templates/count-docs-in-collection/src/main.ts +159 -159
  36. package/src/functions/templates/count-docs-in-collection/src/request.ts +8 -8
  37. package/src/functions/templates/hono-typescript/README.md +285 -285
  38. package/src/functions/templates/hono-typescript/src/adapters/request.ts +73 -73
  39. package/src/functions/templates/hono-typescript/src/adapters/response.ts +105 -105
  40. package/src/functions/templates/hono-typescript/src/app.ts +179 -179
  41. package/src/functions/templates/hono-typescript/src/context.ts +102 -102
  42. package/src/functions/templates/hono-typescript/src/{index.ts → main.ts} +53 -53
  43. package/src/functions/templates/hono-typescript/src/middleware/appwrite.ts +118 -118
  44. package/src/functions/templates/typescript-node/README.md +31 -31
  45. package/src/functions/templates/typescript-node/src/context.ts +102 -102
  46. package/src/functions/templates/typescript-node/src/{index.ts → main.ts} +29 -29
  47. package/src/functions/templates/uv/README.md +30 -30
  48. package/src/functions/templates/uv/pyproject.toml +29 -29
  49. package/src/functions/templates/uv/src/context.py +124 -124
  50. package/src/functions/templates/uv/src/{index.py → main.py} +45 -45
  51. package/src/init.ts +62 -62
  52. package/src/interactiveCLI.ts +1095 -1030
  53. package/src/main.ts +1517 -1670
  54. package/src/migrations/afterImportActions.ts +579 -580
  55. package/src/migrations/appwriteToX.ts +634 -630
  56. package/src/migrations/comprehensiveTransfer.ts +2149 -2149
  57. package/src/migrations/dataLoader.ts +1729 -1702
  58. package/src/migrations/importController.ts +440 -428
  59. package/src/migrations/importDataActions.ts +315 -315
  60. package/src/migrations/relationships.ts +333 -334
  61. package/src/migrations/services/DataTransformationService.ts +195 -195
  62. package/src/migrations/services/FileHandlerService.ts +310 -310
  63. package/src/migrations/services/ImportOrchestrator.ts +674 -665
  64. package/src/migrations/services/RateLimitManager.ts +362 -362
  65. package/src/migrations/services/RelationshipResolver.ts +460 -460
  66. package/src/migrations/services/UserMappingService.ts +344 -344
  67. package/src/migrations/services/ValidationService.ts +333 -333
  68. package/src/migrations/transfer.ts +987 -942
  69. package/src/migrations/yaml/YamlImportConfigLoader.ts +438 -438
  70. package/src/migrations/yaml/YamlImportIntegration.ts +438 -438
  71. package/src/migrations/yaml/generateImportSchemas.ts +1347 -1347
  72. package/src/schemas/authUser.ts +23 -23
  73. package/src/setup.ts +8 -8
  74. package/src/setupCommands.ts +5 -6
  75. package/src/setupController.ts +42 -42
  76. package/src/shared/backupMetadataSchema.ts +93 -93
  77. package/src/shared/backupTracking.ts +211 -211
  78. package/src/shared/confirmationDialogs.ts +326 -326
  79. package/src/shared/migrationHelpers.ts +232 -232
  80. package/src/shared/operationLogger.ts +20 -20
  81. package/src/shared/operationQueue.ts +326 -327
  82. package/src/shared/operationsTable.ts +338 -338
  83. package/src/shared/operationsTableSchema.ts +60 -60
  84. package/src/shared/progressManager.ts +277 -277
  85. package/src/shared/relationshipExtractor.ts +214 -214
  86. package/src/shared/selectionDialogs.ts +775 -722
  87. package/src/storage/backupCompression.ts +88 -88
  88. package/src/storage/methods.ts +695 -682
  89. package/src/storage/schemas.ts +205 -205
  90. package/src/tables/indexManager.ts +408 -408
  91. package/src/types/node-appwrite-tablesdb.d.ts +43 -43
  92. package/src/types.ts +9 -9
  93. package/src/users/methods.ts +358 -359
  94. package/src/utils/configMigration.ts +347 -347
  95. package/src/utils/index.ts +2 -2
  96. package/src/utils/loadConfigs.ts +457 -449
  97. package/src/utils/setupFiles.ts +1236 -1238
  98. package/src/utilsController.ts +1263 -1213
  99. package/tests/README.md +496 -496
  100. package/tests/adapters/AdapterFactory.test.ts +276 -276
  101. package/tests/integration/syncOperations.test.ts +462 -462
  102. package/tests/jest.config.js +24 -24
  103. package/tests/migration/configMigration.test.ts +545 -545
  104. package/tests/setup.ts +61 -61
  105. package/tests/testUtils.ts +339 -339
  106. package/tests/utils/loadConfigs.test.ts +349 -349
  107. package/tests/validation/configValidation.test.ts +411 -411
  108. package/tsconfig.json +44 -44
  109. package/.appwrite/.yaml_schemas/appwrite-config.schema.json +0 -380
  110. package/.appwrite/.yaml_schemas/collection.schema.json +0 -255
  111. package/.appwrite/collections/Categories.yaml +0 -182
  112. package/.appwrite/collections/ExampleCollection.yaml +0 -36
  113. package/.appwrite/collections/Posts.yaml +0 -227
  114. package/.appwrite/collections/Users.yaml +0 -149
  115. package/.appwrite/config.yaml +0 -109
  116. package/.appwrite/import/README.md +0 -148
  117. package/.appwrite/import/categories-import.yaml +0 -129
  118. package/.appwrite/import/posts-import.yaml +0 -208
  119. package/.appwrite/import/users-import.yaml +0 -130
  120. package/.appwrite/importData/categories.json +0 -194
  121. package/.appwrite/importData/posts.json +0 -270
  122. package/.appwrite/importData/users.json +0 -220
  123. package/.appwrite/schemas/categories.json +0 -128
  124. package/.appwrite/schemas/exampleCollection.json +0 -52
  125. package/.appwrite/schemas/posts.json +0 -173
  126. package/.appwrite/schemas/users.json +0 -125
  127. package/dist/adapters/AdapterFactory.d.ts +0 -94
  128. package/dist/adapters/AdapterFactory.js +0 -420
  129. package/dist/adapters/DatabaseAdapter.d.ts +0 -243
  130. package/dist/adapters/DatabaseAdapter.js +0 -50
  131. package/dist/adapters/LegacyAdapter.d.ts +0 -50
  132. package/dist/adapters/LegacyAdapter.js +0 -615
  133. package/dist/adapters/TablesDBAdapter.d.ts +0 -45
  134. package/dist/adapters/TablesDBAdapter.js +0 -611
  135. package/dist/adapters/index.d.ts +0 -11
  136. package/dist/adapters/index.js +0 -12
  137. package/dist/backups/operations/bucketBackup.d.ts +0 -19
  138. package/dist/backups/operations/bucketBackup.js +0 -197
  139. package/dist/backups/operations/collectionBackup.d.ts +0 -30
  140. package/dist/backups/operations/collectionBackup.js +0 -201
  141. package/dist/backups/operations/comprehensiveBackup.d.ts +0 -25
  142. package/dist/backups/operations/comprehensiveBackup.js +0 -238
  143. package/dist/backups/schemas/bucketManifest.d.ts +0 -93
  144. package/dist/backups/schemas/bucketManifest.js +0 -33
  145. package/dist/backups/schemas/comprehensiveManifest.d.ts +0 -108
  146. package/dist/backups/schemas/comprehensiveManifest.js +0 -32
  147. package/dist/backups/tracking/centralizedTracking.d.ts +0 -34
  148. package/dist/backups/tracking/centralizedTracking.js +0 -274
  149. package/dist/cli/commands/configCommands.d.ts +0 -8
  150. package/dist/cli/commands/configCommands.js +0 -166
  151. package/dist/cli/commands/databaseCommands.d.ts +0 -14
  152. package/dist/cli/commands/databaseCommands.js +0 -644
  153. package/dist/cli/commands/functionCommands.d.ts +0 -7
  154. package/dist/cli/commands/functionCommands.js +0 -330
  155. package/dist/cli/commands/schemaCommands.d.ts +0 -7
  156. package/dist/cli/commands/schemaCommands.js +0 -169
  157. package/dist/cli/commands/storageCommands.d.ts +0 -5
  158. package/dist/cli/commands/storageCommands.js +0 -143
  159. package/dist/cli/commands/transferCommands.d.ts +0 -5
  160. package/dist/cli/commands/transferCommands.js +0 -384
  161. package/dist/collections/attributes.d.ts +0 -13
  162. package/dist/collections/attributes.js +0 -1333
  163. package/dist/collections/indexes.d.ts +0 -12
  164. package/dist/collections/indexes.js +0 -217
  165. package/dist/collections/methods.d.ts +0 -19
  166. package/dist/collections/methods.js +0 -587
  167. package/dist/collections/tableOperations.d.ts +0 -86
  168. package/dist/collections/tableOperations.js +0 -447
  169. package/dist/collections/transferOperations.d.ts +0 -8
  170. package/dist/collections/transferOperations.js +0 -412
  171. package/dist/collections/wipeOperations.d.ts +0 -16
  172. package/dist/collections/wipeOperations.js +0 -233
  173. package/dist/config/ConfigManager.d.ts +0 -450
  174. package/dist/config/ConfigManager.js +0 -650
  175. package/dist/config/configMigration.d.ts +0 -87
  176. package/dist/config/configMigration.js +0 -390
  177. package/dist/config/configValidation.d.ts +0 -66
  178. package/dist/config/configValidation.js +0 -358
  179. package/dist/config/index.d.ts +0 -8
  180. package/dist/config/index.js +0 -7
  181. package/dist/config/services/ConfigDiscoveryService.d.ts +0 -122
  182. package/dist/config/services/ConfigDiscoveryService.js +0 -322
  183. package/dist/config/services/ConfigLoaderService.d.ts +0 -129
  184. package/dist/config/services/ConfigLoaderService.js +0 -535
  185. package/dist/config/services/ConfigMergeService.d.ts +0 -208
  186. package/dist/config/services/ConfigMergeService.js +0 -308
  187. package/dist/config/services/ConfigValidationService.d.ts +0 -214
  188. package/dist/config/services/ConfigValidationService.js +0 -310
  189. package/dist/config/services/SessionAuthService.d.ts +0 -225
  190. package/dist/config/services/SessionAuthService.js +0 -456
  191. package/dist/config/services/__tests__/ConfigMergeService.test.d.ts +0 -1
  192. package/dist/config/services/__tests__/ConfigMergeService.test.js +0 -271
  193. package/dist/config/services/index.d.ts +0 -13
  194. package/dist/config/services/index.js +0 -10
  195. package/dist/config/yamlConfig.d.ts +0 -722
  196. package/dist/config/yamlConfig.js +0 -702
  197. package/dist/databases/methods.d.ts +0 -6
  198. package/dist/databases/methods.js +0 -35
  199. package/dist/databases/setup.d.ts +0 -5
  200. package/dist/databases/setup.js +0 -45
  201. package/dist/examples/yamlTerminologyExample.d.ts +0 -42
  202. package/dist/examples/yamlTerminologyExample.js +0 -272
  203. package/dist/functions/deployments.d.ts +0 -4
  204. package/dist/functions/deployments.js +0 -146
  205. package/dist/functions/fnConfigDiscovery.d.ts +0 -3
  206. package/dist/functions/fnConfigDiscovery.js +0 -108
  207. package/dist/functions/methods.d.ts +0 -16
  208. package/dist/functions/methods.js +0 -174
  209. package/dist/functions/pathResolution.d.ts +0 -37
  210. package/dist/functions/pathResolution.js +0 -185
  211. package/dist/functions/templates/count-docs-in-collection/README.md +0 -54
  212. package/dist/functions/templates/count-docs-in-collection/package.json +0 -25
  213. package/dist/functions/templates/count-docs-in-collection/src/main.ts +0 -159
  214. package/dist/functions/templates/count-docs-in-collection/src/request.ts +0 -9
  215. package/dist/functions/templates/count-docs-in-collection/tsconfig.json +0 -28
  216. package/dist/functions/templates/hono-typescript/README.md +0 -286
  217. package/dist/functions/templates/hono-typescript/package.json +0 -26
  218. package/dist/functions/templates/hono-typescript/src/adapters/request.ts +0 -74
  219. package/dist/functions/templates/hono-typescript/src/adapters/response.ts +0 -106
  220. package/dist/functions/templates/hono-typescript/src/app.ts +0 -180
  221. package/dist/functions/templates/hono-typescript/src/context.ts +0 -103
  222. package/dist/functions/templates/hono-typescript/src/index.ts +0 -54
  223. package/dist/functions/templates/hono-typescript/src/middleware/appwrite.ts +0 -119
  224. package/dist/functions/templates/hono-typescript/tsconfig.json +0 -20
  225. package/dist/functions/templates/typescript-node/README.md +0 -32
  226. package/dist/functions/templates/typescript-node/package.json +0 -25
  227. package/dist/functions/templates/typescript-node/src/context.ts +0 -103
  228. package/dist/functions/templates/typescript-node/src/index.ts +0 -29
  229. package/dist/functions/templates/typescript-node/tsconfig.json +0 -28
  230. package/dist/functions/templates/uv/README.md +0 -31
  231. package/dist/functions/templates/uv/pyproject.toml +0 -30
  232. package/dist/functions/templates/uv/src/__init__.py +0 -0
  233. package/dist/functions/templates/uv/src/context.py +0 -125
  234. package/dist/functions/templates/uv/src/index.py +0 -46
  235. package/dist/init.d.ts +0 -2
  236. package/dist/init.js +0 -57
  237. package/dist/interactiveCLI.d.ts +0 -31
  238. package/dist/interactiveCLI.js +0 -898
  239. package/dist/main.d.ts +0 -2
  240. package/dist/main.js +0 -1180
  241. package/dist/migrations/afterImportActions.d.ts +0 -17
  242. package/dist/migrations/afterImportActions.js +0 -306
  243. package/dist/migrations/appwriteToX.d.ts +0 -211
  244. package/dist/migrations/appwriteToX.js +0 -491
  245. package/dist/migrations/comprehensiveTransfer.d.ts +0 -147
  246. package/dist/migrations/comprehensiveTransfer.js +0 -1317
  247. package/dist/migrations/dataLoader.d.ts +0 -753
  248. package/dist/migrations/dataLoader.js +0 -1250
  249. package/dist/migrations/importController.d.ts +0 -23
  250. package/dist/migrations/importController.js +0 -268
  251. package/dist/migrations/importDataActions.d.ts +0 -50
  252. package/dist/migrations/importDataActions.js +0 -230
  253. package/dist/migrations/relationships.d.ts +0 -29
  254. package/dist/migrations/relationships.js +0 -204
  255. package/dist/migrations/services/DataTransformationService.d.ts +0 -55
  256. package/dist/migrations/services/DataTransformationService.js +0 -158
  257. package/dist/migrations/services/FileHandlerService.d.ts +0 -75
  258. package/dist/migrations/services/FileHandlerService.js +0 -236
  259. package/dist/migrations/services/ImportOrchestrator.d.ts +0 -97
  260. package/dist/migrations/services/ImportOrchestrator.js +0 -485
  261. package/dist/migrations/services/RateLimitManager.d.ts +0 -138
  262. package/dist/migrations/services/RateLimitManager.js +0 -279
  263. package/dist/migrations/services/RelationshipResolver.d.ts +0 -120
  264. package/dist/migrations/services/RelationshipResolver.js +0 -332
  265. package/dist/migrations/services/UserMappingService.d.ts +0 -109
  266. package/dist/migrations/services/UserMappingService.js +0 -277
  267. package/dist/migrations/services/ValidationService.d.ts +0 -74
  268. package/dist/migrations/services/ValidationService.js +0 -260
  269. package/dist/migrations/transfer.d.ts +0 -26
  270. package/dist/migrations/transfer.js +0 -608
  271. package/dist/migrations/yaml/YamlImportConfigLoader.d.ts +0 -131
  272. package/dist/migrations/yaml/YamlImportConfigLoader.js +0 -383
  273. package/dist/migrations/yaml/YamlImportIntegration.d.ts +0 -93
  274. package/dist/migrations/yaml/YamlImportIntegration.js +0 -341
  275. package/dist/migrations/yaml/generateImportSchemas.d.ts +0 -30
  276. package/dist/migrations/yaml/generateImportSchemas.js +0 -1327
  277. package/dist/schemas/authUser.d.ts +0 -24
  278. package/dist/schemas/authUser.js +0 -17
  279. package/dist/setup.d.ts +0 -2
  280. package/dist/setup.js +0 -5
  281. package/dist/setupCommands.d.ts +0 -58
  282. package/dist/setupCommands.js +0 -490
  283. package/dist/setupController.d.ts +0 -9
  284. package/dist/setupController.js +0 -34
  285. package/dist/shared/attributeMapper.d.ts +0 -20
  286. package/dist/shared/attributeMapper.js +0 -203
  287. package/dist/shared/backupMetadataSchema.d.ts +0 -94
  288. package/dist/shared/backupMetadataSchema.js +0 -38
  289. package/dist/shared/backupTracking.d.ts +0 -18
  290. package/dist/shared/backupTracking.js +0 -176
  291. package/dist/shared/confirmationDialogs.d.ts +0 -75
  292. package/dist/shared/confirmationDialogs.js +0 -236
  293. package/dist/shared/errorUtils.d.ts +0 -54
  294. package/dist/shared/errorUtils.js +0 -95
  295. package/dist/shared/functionManager.d.ts +0 -48
  296. package/dist/shared/functionManager.js +0 -348
  297. package/dist/shared/jsonSchemaGenerator.d.ts +0 -50
  298. package/dist/shared/jsonSchemaGenerator.js +0 -290
  299. package/dist/shared/logging.d.ts +0 -61
  300. package/dist/shared/logging.js +0 -116
  301. package/dist/shared/messageFormatter.d.ts +0 -39
  302. package/dist/shared/messageFormatter.js +0 -162
  303. package/dist/shared/migrationHelpers.d.ts +0 -61
  304. package/dist/shared/migrationHelpers.js +0 -145
  305. package/dist/shared/operationLogger.d.ts +0 -10
  306. package/dist/shared/operationLogger.js +0 -12
  307. package/dist/shared/operationQueue.d.ts +0 -40
  308. package/dist/shared/operationQueue.js +0 -311
  309. package/dist/shared/operationsTable.d.ts +0 -26
  310. package/dist/shared/operationsTable.js +0 -286
  311. package/dist/shared/operationsTableSchema.d.ts +0 -48
  312. package/dist/shared/operationsTableSchema.js +0 -35
  313. package/dist/shared/progressManager.d.ts +0 -62
  314. package/dist/shared/progressManager.js +0 -215
  315. package/dist/shared/pydanticModelGenerator.d.ts +0 -17
  316. package/dist/shared/pydanticModelGenerator.js +0 -615
  317. package/dist/shared/relationshipExtractor.d.ts +0 -56
  318. package/dist/shared/relationshipExtractor.js +0 -138
  319. package/dist/shared/schemaGenerator.d.ts +0 -40
  320. package/dist/shared/schemaGenerator.js +0 -556
  321. package/dist/shared/selectionDialogs.d.ts +0 -214
  322. package/dist/shared/selectionDialogs.js +0 -544
  323. package/dist/storage/backupCompression.d.ts +0 -20
  324. package/dist/storage/backupCompression.js +0 -67
  325. package/dist/storage/methods.d.ts +0 -32
  326. package/dist/storage/methods.js +0 -472
  327. package/dist/storage/schemas.d.ts +0 -842
  328. package/dist/storage/schemas.js +0 -175
  329. package/dist/tables/indexManager.d.ts +0 -65
  330. package/dist/tables/indexManager.js +0 -294
  331. package/dist/types.d.ts +0 -4
  332. package/dist/types.js +0 -3
  333. package/dist/users/methods.d.ts +0 -16
  334. package/dist/users/methods.js +0 -277
  335. package/dist/utils/ClientFactory.d.ts +0 -87
  336. package/dist/utils/ClientFactory.js +0 -212
  337. package/dist/utils/configDiscovery.d.ts +0 -78
  338. package/dist/utils/configDiscovery.js +0 -472
  339. package/dist/utils/configMigration.d.ts +0 -1
  340. package/dist/utils/configMigration.js +0 -261
  341. package/dist/utils/constantsGenerator.d.ts +0 -31
  342. package/dist/utils/constantsGenerator.js +0 -321
  343. package/dist/utils/dataConverters.d.ts +0 -46
  344. package/dist/utils/dataConverters.js +0 -139
  345. package/dist/utils/directoryUtils.d.ts +0 -22
  346. package/dist/utils/directoryUtils.js +0 -59
  347. package/dist/utils/getClientFromConfig.d.ts +0 -39
  348. package/dist/utils/getClientFromConfig.js +0 -199
  349. package/dist/utils/helperFunctions.d.ts +0 -63
  350. package/dist/utils/helperFunctions.js +0 -156
  351. package/dist/utils/index.d.ts +0 -2
  352. package/dist/utils/index.js +0 -2
  353. package/dist/utils/loadConfigs.d.ts +0 -50
  354. package/dist/utils/loadConfigs.js +0 -358
  355. package/dist/utils/pathResolvers.d.ts +0 -53
  356. package/dist/utils/pathResolvers.js +0 -72
  357. package/dist/utils/projectConfig.d.ts +0 -122
  358. package/dist/utils/projectConfig.js +0 -206
  359. package/dist/utils/retryFailedPromises.d.ts +0 -2
  360. package/dist/utils/retryFailedPromises.js +0 -23
  361. package/dist/utils/sessionAuth.d.ts +0 -48
  362. package/dist/utils/sessionAuth.js +0 -164
  363. package/dist/utils/setupFiles.d.ts +0 -4
  364. package/dist/utils/setupFiles.js +0 -1192
  365. package/dist/utils/typeGuards.d.ts +0 -35
  366. package/dist/utils/typeGuards.js +0 -57
  367. package/dist/utils/validationRules.d.ts +0 -43
  368. package/dist/utils/validationRules.js +0 -42
  369. package/dist/utils/versionDetection.d.ts +0 -58
  370. package/dist/utils/versionDetection.js +0 -251
  371. package/dist/utils/yamlConverter.d.ts +0 -100
  372. package/dist/utils/yamlConverter.js +0 -428
  373. package/dist/utils/yamlLoader.d.ts +0 -70
  374. package/dist/utils/yamlLoader.js +0 -267
  375. package/dist/utilsController.d.ts +0 -107
  376. package/dist/utilsController.js +0 -873
  377. package/src/adapters/AdapterFactory.ts +0 -529
  378. package/src/adapters/DatabaseAdapter.ts +0 -319
  379. package/src/adapters/LegacyAdapter.ts +0 -844
  380. package/src/adapters/TablesDBAdapter.ts +0 -823
  381. package/src/config/ConfigManager.ts +0 -849
  382. package/src/config/README.md +0 -274
  383. package/src/config/configMigration.ts +0 -575
  384. package/src/config/configValidation.ts +0 -445
  385. package/src/config/index.ts +0 -10
  386. package/src/config/services/ConfigDiscoveryService.ts +0 -410
  387. package/src/config/services/ConfigLoaderService.ts +0 -732
  388. package/src/config/services/ConfigMergeService.ts +0 -388
  389. package/src/config/services/ConfigValidationService.ts +0 -394
  390. package/src/config/services/SessionAuthService.ts +0 -565
  391. package/src/config/services/__tests__/ConfigMergeService.test.ts +0 -351
  392. package/src/config/services/index.ts +0 -29
  393. package/src/config/yamlConfig.ts +0 -761
  394. package/src/functions/pathResolution.ts +0 -227
  395. package/src/functions/templates/count-docs-in-collection/package.json +0 -25
  396. package/src/functions/templates/count-docs-in-collection/tsconfig.json +0 -28
  397. package/src/functions/templates/hono-typescript/package.json +0 -26
  398. package/src/functions/templates/hono-typescript/tsconfig.json +0 -20
  399. package/src/functions/templates/typescript-node/package.json +0 -25
  400. package/src/functions/templates/typescript-node/tsconfig.json +0 -28
  401. package/src/shared/attributeMapper.ts +0 -229
  402. package/src/shared/errorUtils.ts +0 -110
  403. package/src/shared/functionManager.ts +0 -537
  404. package/src/shared/jsonSchemaGenerator.ts +0 -383
  405. package/src/shared/logging.ts +0 -149
  406. package/src/shared/messageFormatter.ts +0 -208
  407. package/src/shared/pydanticModelGenerator.ts +0 -618
  408. package/src/shared/schemaGenerator.ts +0 -644
  409. package/src/utils/ClientFactory.ts +0 -240
  410. package/src/utils/configDiscovery.ts +0 -557
  411. package/src/utils/constantsGenerator.ts +0 -369
  412. package/src/utils/dataConverters.ts +0 -159
  413. package/src/utils/directoryUtils.ts +0 -61
  414. package/src/utils/getClientFromConfig.ts +0 -257
  415. package/src/utils/helperFunctions.ts +0 -228
  416. package/src/utils/pathResolvers.ts +0 -81
  417. package/src/utils/projectConfig.ts +0 -340
  418. package/src/utils/retryFailedPromises.ts +0 -29
  419. package/src/utils/sessionAuth.ts +0 -230
  420. package/src/utils/typeGuards.ts +0 -65
  421. package/src/utils/validationRules.ts +0 -88
  422. package/src/utils/versionDetection.ts +0 -292
  423. package/src/utils/yamlConverter.ts +0 -542
  424. package/src/utils/yamlLoader.ts +0 -371
  425. package/tmp-sync-test/.appwrite/collections/TestCollection.yaml +0 -7
@@ -1,2 +0,0 @@
1
- export * from "./helperFunctions.js";
2
- export * from "./setupFiles.js";
@@ -1,2 +0,0 @@
1
- export * from "./helperFunctions.js";
2
- export * from "./setupFiles.js";
@@ -1,50 +0,0 @@
1
- import { type AppwriteConfig } from "appwrite-utils";
2
- import { type ValidationResult } from "../config/configValidation.js";
3
- /**
4
- * Session authentication preservation options for config loading
5
- */
6
- export interface SessionPreservationOptions {
7
- sessionCookie?: string;
8
- authMethod?: "session" | "apikey" | "auto";
9
- sessionMetadata?: {
10
- email?: string;
11
- expiresAt?: string;
12
- };
13
- }
14
- /**
15
- * Configuration loading options
16
- */
17
- export interface ConfigLoadingOptions {
18
- validate?: boolean;
19
- strictMode?: boolean;
20
- reportValidation?: boolean;
21
- preserveAuth?: SessionPreservationOptions;
22
- }
23
- /**
24
- * Helper function to create session preservation options from session data
25
- * @param sessionCookie The session cookie string
26
- * @param email Optional email associated with the session
27
- * @param expiresAt Optional expiration timestamp
28
- * @returns SessionPreservationOptions object
29
- */
30
- export declare function createSessionPreservation(sessionCookie: string, email?: string, expiresAt?: string): SessionPreservationOptions;
31
- export { findAppwriteConfig, findFunctionsDir } from "./configDiscovery.js";
32
- /**
33
- * Loads the Appwrite configuration and returns both config and the path where it was found.
34
- * @param configDir The directory to search for config files.
35
- * @param options Loading options including validation settings and session preservation.
36
- * @returns Object containing the config, path, and validation results.
37
- */
38
- export declare const loadConfigWithPath: (configDir: string, options?: ConfigLoadingOptions) => Promise<{
39
- config: AppwriteConfig;
40
- actualConfigPath: string;
41
- validation?: ValidationResult;
42
- }>;
43
- /**
44
- * Loads the Appwrite configuration and all collection configurations from a specified directory.
45
- * Supports both YAML and TypeScript config formats with backward compatibility.
46
- * @param configDir The directory containing the config file and collections folder.
47
- * @param options Loading options including validation settings and session preservation.
48
- * @returns The loaded Appwrite configuration including collections.
49
- */
50
- export declare const loadConfig: (configDir: string, options?: ConfigLoadingOptions) => Promise<AppwriteConfig>;
@@ -1,358 +0,0 @@
1
- import path from "path";
2
- import fs from "fs";
3
- import {} from "appwrite-utils";
4
- import { register } from "tsx/esm/api"; // Import the register function
5
- import { pathToFileURL } from "node:url";
6
- import chalk from "chalk";
7
- import { findYamlConfig, loadYamlConfig, loadYamlConfigWithSession, extractSessionOptionsFromConfig } from "../config/yamlConfig.js";
8
- import { detectAppwriteVersionCached, fetchServerVersion, isVersionAtLeast } from "./versionDetection.js";
9
- import { MessageFormatter } from "../shared/messageFormatter.js";
10
- import { validateCollectionsTablesConfig, reportValidationResults } from "../config/configValidation.js";
11
- import { resolveCollectionsDir, resolveTablesDir } from "./pathResolvers.js";
12
- import { findAppwriteConfig, findAppwriteConfigTS, findFunctionsDir, discoverCollections, discoverTables, discoverLegacyDirectory } from "./configDiscovery.js";
13
- /**
14
- * Helper function to create session preservation options from session data
15
- * @param sessionCookie The session cookie string
16
- * @param email Optional email associated with the session
17
- * @param expiresAt Optional expiration timestamp
18
- * @returns SessionPreservationOptions object
19
- */
20
- export function createSessionPreservation(sessionCookie, email, expiresAt) {
21
- return {
22
- sessionCookie,
23
- authMethod: "session",
24
- sessionMetadata: {
25
- ...(email && { email }),
26
- ...(expiresAt && { expiresAt })
27
- }
28
- };
29
- }
30
- // Re-export config discovery functions for backward compatibility
31
- export { findAppwriteConfig, findFunctionsDir } from "./configDiscovery.js";
32
- /**
33
- * Loads the Appwrite configuration and returns both config and the path where it was found.
34
- * @param configDir The directory to search for config files.
35
- * @param options Loading options including validation settings and session preservation.
36
- * @returns Object containing the config, path, and validation results.
37
- */
38
- export const loadConfigWithPath = async (configDir, options = {}) => {
39
- const { validate = true, strictMode = false, reportValidation = true } = options;
40
- let config = null;
41
- let actualConfigPath = null;
42
- // Convert session preservation options to YAML format
43
- const yamlSessionOptions = options.preserveAuth ? {
44
- sessionCookie: options.preserveAuth.sessionCookie,
45
- authMethod: options.preserveAuth.authMethod,
46
- sessionMetadata: options.preserveAuth.sessionMetadata,
47
- } : undefined;
48
- // Check if we're given the .appwrite directory directly
49
- if (configDir.endsWith('.appwrite')) {
50
- // Look for config files directly in this directory
51
- const possibleYamlFiles = ['config.yaml', 'config.yml', 'appwriteConfig.yaml', 'appwriteConfig.yml'];
52
- for (const fileName of possibleYamlFiles) {
53
- const yamlPath = path.join(configDir, fileName);
54
- if (fs.existsSync(yamlPath)) {
55
- config = yamlSessionOptions
56
- ? await loadYamlConfigWithSession(yamlPath, yamlSessionOptions)
57
- : await loadYamlConfig(yamlPath);
58
- actualConfigPath = yamlPath;
59
- break;
60
- }
61
- }
62
- }
63
- else {
64
- // Original logic: search for .appwrite directories
65
- const yamlConfigPath = findYamlConfig(configDir);
66
- if (yamlConfigPath) {
67
- config = yamlSessionOptions
68
- ? await loadYamlConfigWithSession(yamlConfigPath, yamlSessionOptions)
69
- : await loadYamlConfig(yamlConfigPath);
70
- actualConfigPath = yamlConfigPath;
71
- }
72
- }
73
- // Fall back to TypeScript config if YAML not found or failed to load
74
- if (!config) {
75
- const configPath = path.join(configDir, "appwriteConfig.ts");
76
- // Only try to load TypeScript config if the file exists
77
- if (fs.existsSync(configPath)) {
78
- const unregister = register(); // Register tsx enhancement
79
- try {
80
- const configUrl = pathToFileURL(configPath).href;
81
- const configModule = (await import(configUrl));
82
- config = configModule.default?.default || configModule.default || configModule;
83
- if (!config) {
84
- throw new Error("Failed to load config");
85
- }
86
- actualConfigPath = configPath;
87
- }
88
- finally {
89
- unregister(); // Unregister tsx when done
90
- }
91
- }
92
- }
93
- if (!config || !actualConfigPath) {
94
- throw new Error("No valid configuration found");
95
- }
96
- // Preserve session authentication if provided
97
- // This allows maintaining session context when config is reloaded during CLI operations
98
- if (options.preserveAuth) {
99
- const { sessionCookie, authMethod, sessionMetadata } = options.preserveAuth;
100
- // Inject session cookie into the loaded config
101
- if (sessionCookie) {
102
- config.sessionCookie = sessionCookie;
103
- }
104
- // Set or override authentication method preference
105
- if (authMethod) {
106
- config.authMethod = authMethod;
107
- }
108
- // Merge session metadata (email, expiration, etc.) with existing metadata
109
- if (sessionMetadata) {
110
- config.sessionMetadata = {
111
- ...config.sessionMetadata,
112
- ...sessionMetadata
113
- };
114
- }
115
- // Auto-detect authentication method if not explicitly provided
116
- // If we have a session cookie but no auth method specified, prefer session auth
117
- if (!authMethod && sessionCookie) {
118
- config.authMethod = "session";
119
- }
120
- }
121
- // Enhanced dual folder support: Load from BOTH collections/ AND tables/ directories
122
- const configFileDir = path.dirname(actualConfigPath);
123
- // Look for collections/tables directories in the same directory as the config file
124
- const collectionsDir = resolveCollectionsDir(configFileDir);
125
- const tablesDir = resolveTablesDir(configFileDir);
126
- // Initialize collections array
127
- config.collections = [];
128
- // Load from collections/ directory first (higher priority)
129
- const collectionsResult = await discoverCollections(collectionsDir);
130
- config.collections.push(...collectionsResult.collections);
131
- // Load from tables/ directory second (lower priority, check for conflicts)
132
- const tablesResult = await discoverTables(tablesDir, collectionsResult.loadedNames);
133
- config.collections.push(...tablesResult.tables);
134
- // Combine conflicts from both discovery operations
135
- const allConflicts = [...collectionsResult.conflicts, ...tablesResult.conflicts];
136
- // Report conflicts if any
137
- if (allConflicts.length > 0) {
138
- MessageFormatter.warning(`Found ${allConflicts.length} naming conflicts between collections/ and tables/`, { prefix: "Config" });
139
- allConflicts.forEach(conflict => {
140
- MessageFormatter.info(` - '${conflict.name}': ${conflict.source1} (used) vs ${conflict.source2} (skipped)`, { prefix: "Config" });
141
- });
142
- }
143
- // Fallback: If neither directory exists, try legacy single-directory detection
144
- if (!fs.existsSync(collectionsDir) && !fs.existsSync(tablesDir)) {
145
- // Determine directory (collections or tables) based on server version / API mode
146
- let dirName = "collections";
147
- try {
148
- const det = await detectAppwriteVersionCached(config.appwriteEndpoint, config.appwriteProject, config.appwriteKey);
149
- if (det.apiMode === 'tablesdb' || isVersionAtLeast(det.serverVersion, '1.8.0')) {
150
- dirName = 'tables';
151
- }
152
- else {
153
- // Try health version if not provided
154
- const ver = await fetchServerVersion(config.appwriteEndpoint);
155
- if (isVersionAtLeast(ver || undefined, '1.8.0'))
156
- dirName = 'tables';
157
- }
158
- }
159
- catch { }
160
- const legacyItems = await discoverLegacyDirectory(configFileDir, dirName);
161
- config.collections.push(...legacyItems);
162
- }
163
- // Ensure array exists even if empty
164
- config.collections = config.collections || [];
165
- // Log the final result
166
- const allCollections = config.collections || [];
167
- const fromCollectionsDir = allCollections.filter((c) => !c._isFromTablesDir).length;
168
- const fromTablesDir = allCollections.filter((c) => c._isFromTablesDir).length;
169
- const totalLoaded = allCollections.length;
170
- if (totalLoaded > 0) {
171
- if (fromTablesDir > 0) {
172
- MessageFormatter.success(`Successfully loaded ${totalLoaded} items total: ${fromCollectionsDir} from collections/ and ${fromTablesDir} from tables/`, { prefix: "Config" });
173
- }
174
- else {
175
- MessageFormatter.success(`Successfully loaded ${totalLoaded} collections from collections/`, { prefix: "Config" });
176
- }
177
- }
178
- // Validate configuration if requested
179
- let validation;
180
- if (validate) {
181
- validation = validateCollectionsTablesConfig(config);
182
- // In strict mode, treat warnings as errors
183
- if (strictMode && validation.warnings.length > 0) {
184
- const strictValidation = {
185
- ...validation,
186
- isValid: false,
187
- errors: [...validation.errors, ...validation.warnings.map(w => ({ ...w, severity: "error" }))],
188
- warnings: []
189
- };
190
- validation = strictValidation;
191
- }
192
- // Report validation results if requested
193
- if (reportValidation) {
194
- reportValidationResults(validation, { verbose: true });
195
- }
196
- // Throw error if validation fails in strict mode
197
- if (strictMode && !validation.isValid) {
198
- throw new Error(`Configuration validation failed in strict mode. Found ${validation.errors.length} validation errors.`);
199
- }
200
- }
201
- return { config, actualConfigPath, validation };
202
- };
203
- /**
204
- * Loads the Appwrite configuration and all collection configurations from a specified directory.
205
- * Supports both YAML and TypeScript config formats with backward compatibility.
206
- * @param configDir The directory containing the config file and collections folder.
207
- * @param options Loading options including validation settings and session preservation.
208
- * @returns The loaded Appwrite configuration including collections.
209
- */
210
- export const loadConfig = async (configDir, options = {}) => {
211
- const { validate = false, strictMode = false, reportValidation = false } = options;
212
- let config = null;
213
- let actualConfigPath = null;
214
- // Convert session preservation options to YAML format
215
- const yamlSessionOptions = options.preserveAuth ? {
216
- sessionCookie: options.preserveAuth.sessionCookie,
217
- authMethod: options.preserveAuth.authMethod,
218
- sessionMetadata: options.preserveAuth.sessionMetadata,
219
- } : undefined;
220
- // First try to find and load YAML config
221
- const yamlConfigPath = findYamlConfig(configDir);
222
- if (yamlConfigPath) {
223
- config = yamlSessionOptions
224
- ? await loadYamlConfigWithSession(yamlConfigPath, yamlSessionOptions)
225
- : await loadYamlConfig(yamlConfigPath);
226
- actualConfigPath = yamlConfigPath;
227
- }
228
- // Fall back to TypeScript config if YAML not found or failed to load
229
- if (!config) {
230
- const configPath = path.join(configDir, "appwriteConfig.ts");
231
- // Only try to load TypeScript config if the file exists
232
- if (fs.existsSync(configPath)) {
233
- const unregister = register(); // Register tsx enhancement
234
- try {
235
- const configUrl = pathToFileURL(configPath).href;
236
- const configModule = (await import(configUrl));
237
- config = configModule.default?.default || configModule.default || configModule;
238
- if (!config) {
239
- throw new Error("Failed to load config");
240
- }
241
- actualConfigPath = configPath;
242
- }
243
- finally {
244
- unregister(); // Unregister tsx when done
245
- }
246
- }
247
- }
248
- if (!config) {
249
- throw new Error("No valid configuration found");
250
- }
251
- // Preserve session authentication if provided
252
- // This allows maintaining session context when config is reloaded during CLI operations
253
- if (options.preserveAuth) {
254
- const { sessionCookie, authMethod, sessionMetadata } = options.preserveAuth;
255
- // Inject session cookie into the loaded config
256
- if (sessionCookie) {
257
- config.sessionCookie = sessionCookie;
258
- }
259
- // Set or override authentication method preference
260
- if (authMethod) {
261
- config.authMethod = authMethod;
262
- }
263
- // Merge session metadata (email, expiration, etc.) with existing metadata
264
- if (sessionMetadata) {
265
- config.sessionMetadata = {
266
- ...config.sessionMetadata,
267
- ...sessionMetadata
268
- };
269
- }
270
- // Auto-detect authentication method if not explicitly provided
271
- // If we have a session cookie but no auth method specified, prefer session auth
272
- if (!authMethod && sessionCookie) {
273
- config.authMethod = "session";
274
- }
275
- }
276
- // Enhanced dual folder support: Load from BOTH collections/ AND tables/ directories
277
- const configFileDir = actualConfigPath ? path.dirname(actualConfigPath) : configDir;
278
- // Look for collections/tables directories in the same directory as the config file
279
- const collectionsDir = resolveCollectionsDir(configFileDir);
280
- const tablesDir = resolveTablesDir(configFileDir);
281
- // Initialize collections array
282
- config.collections = [];
283
- // Load from collections/ directory first (higher priority)
284
- const collectionsResult = await discoverCollections(collectionsDir);
285
- config.collections.push(...collectionsResult.collections);
286
- // Load from tables/ directory second (lower priority, check for conflicts)
287
- const tablesResult = await discoverTables(tablesDir, collectionsResult.loadedNames);
288
- config.collections.push(...tablesResult.tables);
289
- // Combine conflicts from both discovery operations
290
- const allConflicts = [...collectionsResult.conflicts, ...tablesResult.conflicts];
291
- // Report conflicts if any
292
- if (allConflicts.length > 0) {
293
- MessageFormatter.warning(`Found ${allConflicts.length} naming conflicts between collections/ and tables/`, { prefix: "Config" });
294
- allConflicts.forEach(conflict => {
295
- MessageFormatter.info(` - '${conflict.name}': ${conflict.source1} (used) vs ${conflict.source2} (skipped)`, { prefix: "Config" });
296
- });
297
- }
298
- // Fallback: If neither directory exists, try legacy single-directory detection
299
- if (!fs.existsSync(collectionsDir) && !fs.existsSync(tablesDir)) {
300
- // Determine directory (collections or tables) based on server version / API mode
301
- let dirName = "collections";
302
- try {
303
- const det = await detectAppwriteVersionCached(config.appwriteEndpoint, config.appwriteProject, config.appwriteKey);
304
- if (det.apiMode === 'tablesdb' || isVersionAtLeast(det.serverVersion, '1.8.0')) {
305
- dirName = 'tables';
306
- }
307
- else {
308
- const ver = await fetchServerVersion(config.appwriteEndpoint);
309
- if (isVersionAtLeast(ver || undefined, '1.8.0'))
310
- dirName = 'tables';
311
- }
312
- }
313
- catch { }
314
- const legacyItems = await discoverLegacyDirectory(configFileDir, dirName);
315
- config.collections.push(...legacyItems);
316
- }
317
- // Ensure array exists even if empty
318
- config.collections = config.collections || [];
319
- // Log the final result
320
- const allCollections = config.collections || [];
321
- const fromCollectionsDir = allCollections.filter((c) => !c._isFromTablesDir).length;
322
- const fromTablesDir = allCollections.filter((c) => c._isFromTablesDir).length;
323
- const totalLoaded = allCollections.length;
324
- if (totalLoaded > 0) {
325
- if (fromTablesDir > 0) {
326
- MessageFormatter.success(`Successfully loaded ${totalLoaded} items total: ${fromCollectionsDir} from collections/ and ${fromTablesDir} from tables/`, { prefix: "Config" });
327
- }
328
- else {
329
- MessageFormatter.success(`Successfully loaded ${totalLoaded} collections from collections/`, { prefix: "Config" });
330
- }
331
- }
332
- // Log successful config loading
333
- if (actualConfigPath) {
334
- MessageFormatter.success(`Loaded config from: ${actualConfigPath}`, { prefix: "Config" });
335
- }
336
- // Validate configuration if requested
337
- if (validate) {
338
- let validation = validateCollectionsTablesConfig(config);
339
- // In strict mode, treat warnings as errors
340
- if (strictMode && validation.warnings.length > 0) {
341
- validation = {
342
- ...validation,
343
- isValid: false,
344
- errors: [...validation.errors, ...validation.warnings.map(w => ({ ...w, severity: "error" }))],
345
- warnings: []
346
- };
347
- }
348
- // Report validation results if requested
349
- if (reportValidation) {
350
- reportValidationResults(validation, { verbose: true });
351
- }
352
- // Throw error if validation fails in strict mode
353
- if (strictMode && !validation.isValid) {
354
- throw new Error(`Configuration validation failed in strict mode. Found ${validation.errors.length} validation errors.`);
355
- }
356
- }
357
- return config;
358
- };
@@ -1,53 +0,0 @@
1
- /**
2
- * Path resolution utilities for Appwrite configuration and schema directories
3
- */
4
- /**
5
- * Resolves the schema output directory path
6
- * @param configPath - Base configuration directory path
7
- * @returns Full path to schemas directory
8
- */
9
- export declare function resolveSchemaDir(configPath: string): string;
10
- /**
11
- * Resolves the collections directory path
12
- * @param configPath - Base configuration directory path
13
- * @returns Full path to collections directory
14
- */
15
- export declare function resolveCollectionsDir(configPath: string): string;
16
- /**
17
- * Resolves the tables directory path
18
- * @param configPath - Base configuration directory path
19
- * @returns Full path to tables directory
20
- */
21
- export declare function resolveTablesDir(configPath: string): string;
22
- /**
23
- * Resolves the YAML schema directory path
24
- * @param configPath - Base configuration directory path
25
- * @returns Full path to .yaml_schemas directory
26
- */
27
- export declare function resolveYamlSchemaDir(configPath: string): string;
28
- /**
29
- * Resolves the import data directory path
30
- * @param configPath - Base configuration directory path
31
- * @returns Full path to importData directory
32
- */
33
- export declare function resolveImportDataDir(configPath: string): string;
34
- /**
35
- * Resolves the .appwrite configuration directory
36
- * @param startDir - Directory to start searching from
37
- * @returns Path to .appwrite directory or null if not found
38
- */
39
- export declare function resolveAppwriteDir(startDir: string): string | null;
40
- /**
41
- * Resolves a collection file path within the collections directory
42
- * @param configPath - Base configuration directory path
43
- * @param fileName - Name of the collection file (e.g., "User.ts" or "User.yaml")
44
- * @returns Full path to the collection file
45
- */
46
- export declare function resolveCollectionFile(configPath: string, fileName: string): string;
47
- /**
48
- * Resolves a table file path within the tables directory
49
- * @param configPath - Base configuration directory path
50
- * @param fileName - Name of the table file (e.g., "User.ts" or "User.yaml")
51
- * @returns Full path to the table file
52
- */
53
- export declare function resolveTableFile(configPath: string, fileName: string): string;
@@ -1,72 +0,0 @@
1
- import path from "path";
2
- /**
3
- * Path resolution utilities for Appwrite configuration and schema directories
4
- */
5
- /**
6
- * Resolves the schema output directory path
7
- * @param configPath - Base configuration directory path
8
- * @returns Full path to schemas directory
9
- */
10
- export function resolveSchemaDir(configPath) {
11
- return path.join(configPath, "schemas");
12
- }
13
- /**
14
- * Resolves the collections directory path
15
- * @param configPath - Base configuration directory path
16
- * @returns Full path to collections directory
17
- */
18
- export function resolveCollectionsDir(configPath) {
19
- return path.join(configPath, "collections");
20
- }
21
- /**
22
- * Resolves the tables directory path
23
- * @param configPath - Base configuration directory path
24
- * @returns Full path to tables directory
25
- */
26
- export function resolveTablesDir(configPath) {
27
- return path.join(configPath, "tables");
28
- }
29
- /**
30
- * Resolves the YAML schema directory path
31
- * @param configPath - Base configuration directory path
32
- * @returns Full path to .yaml_schemas directory
33
- */
34
- export function resolveYamlSchemaDir(configPath) {
35
- return path.join(configPath, ".yaml_schemas");
36
- }
37
- /**
38
- * Resolves the import data directory path
39
- * @param configPath - Base configuration directory path
40
- * @returns Full path to importData directory
41
- */
42
- export function resolveImportDataDir(configPath) {
43
- return path.join(configPath, "importData");
44
- }
45
- /**
46
- * Resolves the .appwrite configuration directory
47
- * @param startDir - Directory to start searching from
48
- * @returns Path to .appwrite directory or null if not found
49
- */
50
- export function resolveAppwriteDir(startDir) {
51
- const appwriteDir = path.join(startDir, ".appwrite");
52
- // Note: Actual existence check should be done by caller
53
- return appwriteDir;
54
- }
55
- /**
56
- * Resolves a collection file path within the collections directory
57
- * @param configPath - Base configuration directory path
58
- * @param fileName - Name of the collection file (e.g., "User.ts" or "User.yaml")
59
- * @returns Full path to the collection file
60
- */
61
- export function resolveCollectionFile(configPath, fileName) {
62
- return path.join(resolveCollectionsDir(configPath), fileName);
63
- }
64
- /**
65
- * Resolves a table file path within the tables directory
66
- * @param configPath - Base configuration directory path
67
- * @param fileName - Name of the table file (e.g., "User.ts" or "User.yaml")
68
- * @returns Full path to the table file
69
- */
70
- export function resolveTableFile(configPath, fileName) {
71
- return path.join(resolveTablesDir(configPath), fileName);
72
- }
@@ -1,122 +0,0 @@
1
- import type { AppwriteConfig } from "appwrite-utils";
2
- export interface AppwriteProjectConfig {
3
- projectId: string;
4
- endpoint?: string;
5
- projectName?: string;
6
- settings?: {
7
- services?: Record<string, boolean>;
8
- auth?: {
9
- methods?: Record<string, boolean>;
10
- security?: Record<string, any>;
11
- };
12
- };
13
- functions?: Array<{
14
- $id: string;
15
- name: string;
16
- runtime: string;
17
- entrypoint?: string;
18
- path?: string;
19
- commands?: string;
20
- events?: string[];
21
- }>;
22
- databases?: Array<{
23
- $id: string;
24
- name: string;
25
- enabled?: boolean;
26
- }>;
27
- collections?: Array<{
28
- $id: string;
29
- $permissions?: string[];
30
- databaseId: string;
31
- name: string;
32
- enabled?: boolean;
33
- documentSecurity?: boolean;
34
- attributes: Array<{
35
- key: string;
36
- type: string;
37
- required?: boolean;
38
- array?: boolean;
39
- size?: number;
40
- default?: any;
41
- encrypt?: boolean;
42
- [key: string]: any;
43
- }>;
44
- indexes?: Array<{
45
- key: string;
46
- type: string;
47
- attributes: string[];
48
- orders?: string[];
49
- }>;
50
- }>;
51
- tablesDB?: Array<{
52
- $id: string;
53
- name: string;
54
- enabled?: boolean;
55
- }>;
56
- tables?: Array<{
57
- $id: string;
58
- $permissions?: string[];
59
- databaseId: string;
60
- name: string;
61
- enabled?: boolean;
62
- rowSecurity?: boolean;
63
- columns: Array<{
64
- key: string;
65
- type: string;
66
- required?: boolean;
67
- array?: boolean;
68
- size?: number;
69
- default?: any;
70
- encrypt?: boolean;
71
- unique?: boolean;
72
- [key: string]: any;
73
- }>;
74
- indexes?: Array<{
75
- key: string;
76
- type: string;
77
- attributes: string[];
78
- orders?: string[];
79
- }>;
80
- }>;
81
- buckets?: Array<{
82
- bucketId?: string;
83
- $id?: string;
84
- name: string;
85
- maximumFileSize?: number;
86
- allowedFileExtensions?: string[];
87
- encryption?: boolean;
88
- antiVirus?: boolean;
89
- [key: string]: any;
90
- }>;
91
- }
92
- /**
93
- * Find appwrite.json or appwrite.config.json in current directory or parents
94
- */
95
- export declare function findAppwriteProjectConfig(startDir?: string): string | null;
96
- /**
97
- * Load and parse appwrite project configuration
98
- */
99
- export declare function loadAppwriteProjectConfig(configPath?: string): AppwriteProjectConfig | null;
100
- /**
101
- * Detect API mode from project configuration
102
- */
103
- export declare function detectApiModeFromProject(projectConfig: AppwriteProjectConfig): "legacy" | "tablesdb" | "auto";
104
- /**
105
- * Convert project config to AppwriteConfig format
106
- * @param projectConfig The project config to convert
107
- * @param configPath Optional path to the config file (for resolving relative paths)
108
- * @param existingConfig Optional existing config to merge with
109
- */
110
- export declare function projectConfigToAppwriteConfig(projectConfig: AppwriteProjectConfig, configPath?: string, existingConfig?: Partial<AppwriteConfig>): Partial<AppwriteConfig>;
111
- /**
112
- * Get collection/table definitions from project config
113
- */
114
- export declare function getCollectionsFromProject(projectConfig: AppwriteProjectConfig): any[];
115
- /**
116
- * Check if project config indicates TablesDB usage
117
- */
118
- export declare function isTablesDBProject(projectConfig: AppwriteProjectConfig): boolean;
119
- /**
120
- * Get the appropriate directory name based on project config
121
- */
122
- export declare function getProjectDirectoryName(projectConfig: AppwriteProjectConfig): "tables" | "collections";