appwrite-cli 13.0.0-rc.1 → 13.0.0-rc.3
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/.github/workflows/publish.yml +68 -0
- package/CHANGELOG.md +10 -1
- package/LICENSE.md +1 -1
- package/README.md +3 -3
- package/cli.ts +152 -0
- package/dist/bundle.cjs +95813 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +145 -0
- package/dist/cli.js.map +1 -0
- package/dist/index.d.ts +10 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -142
- package/dist/index.js.map +1 -1
- package/dist/lib/client.d.ts +2 -3
- package/dist/lib/client.d.ts.map +1 -1
- package/dist/lib/client.js +57 -45
- package/dist/lib/client.js.map +1 -1
- package/dist/lib/commands/config.d.ts +562 -0
- package/dist/lib/commands/config.d.ts.map +1 -0
- package/dist/lib/commands/config.js +416 -0
- package/dist/lib/commands/config.js.map +1 -0
- package/dist/lib/commands/db.d.ts +34 -0
- package/dist/lib/commands/db.d.ts.map +1 -0
- package/dist/lib/commands/db.js +247 -0
- package/dist/lib/commands/db.js.map +1 -0
- package/dist/lib/commands/errors.d.ts +68 -0
- package/dist/lib/commands/errors.d.ts.map +1 -0
- package/dist/lib/commands/errors.js +72 -0
- package/dist/lib/commands/errors.js.map +1 -0
- package/dist/lib/commands/generic.d.ts +2 -2
- package/dist/lib/commands/generic.d.ts.map +1 -1
- package/dist/lib/commands/generic.js +170 -157
- package/dist/lib/commands/generic.js.map +1 -1
- package/dist/lib/commands/init.d.ts +1 -1
- package/dist/lib/commands/init.d.ts.map +1 -1
- package/dist/lib/commands/init.js +201 -192
- package/dist/lib/commands/init.js.map +1 -1
- package/dist/lib/commands/pull.d.ts +105 -3
- package/dist/lib/commands/pull.d.ts.map +1 -1
- package/dist/lib/commands/pull.js +530 -370
- package/dist/lib/commands/pull.js.map +1 -1
- package/dist/lib/commands/push.d.ts +106 -0
- package/dist/lib/commands/push.d.ts.map +1 -1
- package/dist/lib/commands/push.js +1432 -1830
- package/dist/lib/commands/push.js.map +1 -1
- package/dist/lib/commands/run.d.ts +1 -1
- package/dist/lib/commands/run.d.ts.map +1 -1
- package/dist/lib/commands/run.js +129 -127
- package/dist/lib/commands/run.js.map +1 -1
- package/dist/lib/commands/schema.d.ts +59 -0
- package/dist/lib/commands/schema.d.ts.map +1 -0
- package/dist/lib/commands/schema.js +86 -0
- package/dist/lib/commands/schema.js.map +1 -0
- package/dist/lib/commands/services/account.d.ts +3 -0
- package/dist/lib/commands/services/account.d.ts.map +1 -0
- package/dist/lib/commands/services/account.js +328 -0
- package/dist/lib/commands/services/account.js.map +1 -0
- package/dist/lib/commands/services/console.d.ts +3 -0
- package/dist/lib/commands/services/console.d.ts.map +1 -0
- package/dist/lib/commands/services/console.js +28 -0
- package/dist/lib/commands/services/console.js.map +1 -0
- package/dist/lib/commands/services/databases.d.ts +3 -0
- package/dist/lib/commands/services/databases.d.ts.map +1 -0
- package/dist/lib/commands/services/databases.js +620 -0
- package/dist/lib/commands/services/databases.js.map +1 -0
- package/dist/lib/commands/services/functions.d.ts +3 -0
- package/dist/lib/commands/services/functions.d.ts.map +1 -0
- package/dist/lib/commands/services/functions.js +266 -0
- package/dist/lib/commands/services/functions.js.map +1 -0
- package/dist/lib/commands/services/graphql.d.ts +3 -0
- package/dist/lib/commands/services/graphql.d.ts.map +1 -0
- package/dist/lib/commands/services/graphql.js +28 -0
- package/dist/lib/commands/services/graphql.js.map +1 -0
- package/dist/lib/commands/services/health.d.ts +3 -0
- package/dist/lib/commands/services/health.d.ts.map +1 -0
- package/dist/lib/commands/services/health.js +123 -0
- package/dist/lib/commands/services/health.js.map +1 -0
- package/dist/lib/commands/services/locale.d.ts +3 -0
- package/dist/lib/commands/services/locale.d.ts.map +1 -0
- package/dist/lib/commands/services/locale.js +52 -0
- package/dist/lib/commands/services/locale.js.map +1 -0
- package/dist/lib/commands/services/messaging.d.ts +3 -0
- package/dist/lib/commands/services/messaging.d.ts.map +1 -0
- package/dist/lib/commands/services/messaging.js +505 -0
- package/dist/lib/commands/services/messaging.js.map +1 -0
- package/dist/lib/commands/services/migrations.d.ts +3 -0
- package/dist/lib/commands/services/migrations.d.ts.map +1 -0
- package/dist/lib/commands/services/migrations.js +135 -0
- package/dist/lib/commands/services/migrations.js.map +1 -0
- package/dist/lib/commands/services/project.d.ts +3 -0
- package/dist/lib/commands/services/project.d.ts.map +1 -0
- package/dist/lib/commands/services/project.js +54 -0
- package/dist/lib/commands/services/project.js.map +1 -0
- package/dist/lib/commands/services/projects.d.ts +3 -0
- package/dist/lib/commands/services/projects.d.ts.map +1 -0
- package/dist/lib/commands/services/projects.js +415 -0
- package/dist/lib/commands/services/projects.js.map +1 -0
- package/dist/lib/commands/services/proxy.d.ts +3 -0
- package/dist/lib/commands/services/proxy.d.ts.map +1 -0
- package/dist/lib/commands/services/proxy.js +68 -0
- package/dist/lib/commands/services/proxy.js.map +1 -0
- package/dist/lib/commands/services/sites.d.ts +3 -0
- package/dist/lib/commands/services/sites.d.ts.map +1 -0
- package/dist/lib/commands/services/sites.js +250 -0
- package/dist/lib/commands/services/sites.js.map +1 -0
- package/dist/lib/commands/services/storage.d.ts +3 -0
- package/dist/lib/commands/services/storage.d.ts.map +1 -0
- package/dist/lib/commands/services/storage.js +175 -0
- package/dist/lib/commands/services/storage.js.map +1 -0
- package/dist/lib/commands/services/tables-db.d.ts +3 -0
- package/dist/lib/commands/services/tables-db.d.ts.map +1 -0
- package/dist/lib/commands/services/tables-db.js +613 -0
- package/dist/lib/commands/services/tables-db.js.map +1 -0
- package/dist/lib/commands/services/teams.d.ts +3 -0
- package/dist/lib/commands/services/teams.d.ts.map +1 -0
- package/dist/lib/commands/services/teams.js +123 -0
- package/dist/lib/commands/services/teams.js.map +1 -0
- package/dist/lib/commands/services/tokens.d.ts +3 -0
- package/dist/lib/commands/services/tokens.d.ts.map +1 -0
- package/dist/lib/commands/services/tokens.js +49 -0
- package/dist/lib/commands/services/tokens.js.map +1 -0
- package/dist/lib/commands/services/users.d.ts +3 -0
- package/dist/lib/commands/services/users.d.ts.map +1 -0
- package/dist/lib/commands/services/users.js +312 -0
- package/dist/lib/commands/services/users.js.map +1 -0
- package/dist/lib/commands/services/vcs.d.ts +3 -0
- package/dist/lib/commands/services/vcs.d.ts.map +1 -0
- package/dist/lib/commands/services/vcs.js +87 -0
- package/dist/lib/commands/services/vcs.js.map +1 -0
- package/dist/lib/commands/types.d.ts +1 -1
- package/dist/lib/commands/types.d.ts.map +1 -1
- package/dist/lib/commands/types.js +53 -57
- package/dist/lib/commands/types.js.map +1 -1
- package/dist/lib/commands/update.d.ts +1 -1
- package/dist/lib/commands/update.d.ts.map +1 -1
- package/dist/lib/commands/update.js +69 -69
- package/dist/lib/commands/update.js.map +1 -1
- package/dist/lib/commands/utils/attributes.d.ts +47 -0
- package/dist/lib/commands/utils/attributes.d.ts.map +1 -0
- package/dist/lib/commands/utils/attributes.js +514 -0
- package/dist/lib/commands/utils/attributes.js.map +1 -0
- package/dist/lib/commands/utils/change-approval.d.ts +25 -0
- package/dist/lib/commands/utils/change-approval.d.ts.map +1 -0
- package/dist/lib/commands/utils/change-approval.js +129 -0
- package/dist/lib/commands/utils/change-approval.js.map +1 -0
- package/dist/lib/commands/utils/database-sync.d.ts +10 -0
- package/dist/lib/commands/utils/database-sync.d.ts.map +1 -0
- package/dist/lib/commands/utils/database-sync.js +136 -0
- package/dist/lib/commands/utils/database-sync.js.map +1 -0
- package/dist/lib/commands/utils/deployment.d.ts +34 -0
- package/dist/lib/commands/utils/deployment.d.ts.map +1 -0
- package/dist/lib/commands/utils/deployment.js +109 -0
- package/dist/lib/commands/utils/deployment.js.map +1 -0
- package/dist/lib/commands/utils/error-formatter.d.ts +19 -0
- package/dist/lib/commands/utils/error-formatter.d.ts.map +1 -0
- package/dist/lib/commands/utils/error-formatter.js +333 -0
- package/dist/lib/commands/utils/error-formatter.js.map +1 -0
- package/dist/lib/commands/utils/pools.d.ts +16 -0
- package/dist/lib/commands/utils/pools.d.ts.map +1 -0
- package/dist/lib/commands/utils/pools.js +198 -0
- package/dist/lib/commands/utils/pools.js.map +1 -0
- package/dist/lib/config.d.ts +41 -40
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +264 -239
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/constants.d.ts +14 -0
- package/dist/lib/constants.d.ts.map +1 -0
- package/dist/lib/constants.js +19 -0
- package/dist/lib/constants.js.map +1 -0
- package/dist/lib/emulation/docker.d.ts +4 -12
- package/dist/lib/emulation/docker.d.ts.map +1 -1
- package/dist/lib/emulation/docker.js +159 -142
- package/dist/lib/emulation/docker.js.map +1 -1
- package/dist/lib/emulation/utils.d.ts +1 -1
- package/dist/lib/emulation/utils.d.ts.map +1 -1
- package/dist/lib/emulation/utils.js +55 -58
- package/dist/lib/emulation/utils.js.map +1 -1
- package/dist/lib/id.d.ts +1 -1
- package/dist/lib/id.d.ts.map +1 -1
- package/dist/lib/id.js +13 -18
- package/dist/lib/id.js.map +1 -1
- package/dist/lib/paginate.d.ts +3 -4
- package/dist/lib/paginate.d.ts.map +1 -1
- package/dist/lib/paginate.js +7 -10
- package/dist/lib/paginate.js.map +1 -1
- package/dist/lib/parser.d.ts +1 -1
- package/dist/lib/parser.d.ts.map +1 -1
- package/dist/lib/parser.js +92 -103
- package/dist/lib/parser.js.map +1 -1
- package/dist/lib/questions.d.ts +1 -1
- package/dist/lib/questions.d.ts.map +1 -1
- package/dist/lib/questions.js +381 -385
- package/dist/lib/questions.js.map +1 -1
- package/dist/lib/sdks.d.ts +1 -1
- package/dist/lib/sdks.d.ts.map +1 -1
- package/dist/lib/sdks.js +39 -30
- package/dist/lib/sdks.js.map +1 -1
- package/dist/lib/services.d.ts +13 -0
- package/dist/lib/services.d.ts.map +1 -0
- package/dist/lib/services.js +47 -0
- package/dist/lib/services.js.map +1 -0
- package/dist/lib/spinner.d.ts +1 -1
- package/dist/lib/spinner.d.ts.map +1 -1
- package/dist/lib/spinner.js +25 -27
- package/dist/lib/spinner.js.map +1 -1
- package/dist/lib/type-generation/attribute.d.ts +1 -1
- package/dist/lib/type-generation/attribute.d.ts.map +1 -1
- package/dist/lib/type-generation/attribute.js +14 -17
- package/dist/lib/type-generation/attribute.js.map +1 -1
- package/dist/lib/type-generation/languages/csharp.d.ts +1 -1
- package/dist/lib/type-generation/languages/csharp.d.ts.map +1 -1
- package/dist/lib/type-generation/languages/csharp.js +34 -34
- package/dist/lib/type-generation/languages/csharp.js.map +1 -1
- package/dist/lib/type-generation/languages/dart.d.ts +1 -1
- package/dist/lib/type-generation/languages/dart.d.ts.map +1 -1
- package/dist/lib/type-generation/languages/dart.js +57 -57
- package/dist/lib/type-generation/languages/dart.js.map +1 -1
- package/dist/lib/type-generation/languages/java.d.ts +1 -1
- package/dist/lib/type-generation/languages/java.d.ts.map +1 -1
- package/dist/lib/type-generation/languages/java.js +35 -35
- package/dist/lib/type-generation/languages/java.js.map +1 -1
- package/dist/lib/type-generation/languages/javascript.d.ts +1 -1
- package/dist/lib/type-generation/languages/javascript.d.ts.map +1 -1
- package/dist/lib/type-generation/languages/javascript.js +45 -44
- package/dist/lib/type-generation/languages/javascript.js.map +1 -1
- package/dist/lib/type-generation/languages/kotlin.d.ts +1 -1
- package/dist/lib/type-generation/languages/kotlin.d.ts.map +1 -1
- package/dist/lib/type-generation/languages/kotlin.js +35 -35
- package/dist/lib/type-generation/languages/kotlin.js.map +1 -1
- package/dist/lib/type-generation/languages/language.d.ts.map +1 -1
- package/dist/lib/type-generation/languages/language.js +32 -37
- package/dist/lib/type-generation/languages/language.js.map +1 -1
- package/dist/lib/type-generation/languages/php.d.ts +1 -1
- package/dist/lib/type-generation/languages/php.d.ts.map +1 -1
- package/dist/lib/type-generation/languages/php.js +34 -34
- package/dist/lib/type-generation/languages/php.js.map +1 -1
- package/dist/lib/type-generation/languages/swift.d.ts +1 -1
- package/dist/lib/type-generation/languages/swift.d.ts.map +1 -1
- package/dist/lib/type-generation/languages/swift.js +35 -35
- package/dist/lib/type-generation/languages/swift.js.map +1 -1
- package/dist/lib/type-generation/languages/typescript.d.ts +1 -1
- package/dist/lib/type-generation/languages/typescript.d.ts.map +1 -1
- package/dist/lib/type-generation/languages/typescript.js +49 -46
- package/dist/lib/type-generation/languages/typescript.js.map +1 -1
- package/dist/lib/types.d.ts +38 -108
- package/dist/lib/types.d.ts.map +1 -1
- package/dist/lib/types.js +1 -2
- package/dist/lib/utils.d.ts +3 -0
- package/dist/lib/utils.d.ts.map +1 -1
- package/dist/lib/utils.js +142 -98
- package/dist/lib/utils.js.map +1 -1
- package/dist/lib/validations.d.ts.map +1 -1
- package/dist/lib/validations.js +2 -6
- package/dist/lib/validations.js.map +1 -1
- package/dist/package.json +68 -0
- package/index.ts +25 -149
- package/install.ps1 +2 -2
- package/install.sh +1 -1
- package/lib/client.ts +261 -220
- package/lib/commands/config.ts +494 -0
- package/lib/commands/db.ts +324 -0
- package/lib/commands/errors.ts +93 -0
- package/lib/commands/generic.ts +371 -269
- package/lib/commands/init.ts +631 -519
- package/lib/commands/pull.ts +827 -453
- package/lib/commands/push.ts +2191 -2349
- package/lib/commands/run.ts +382 -302
- package/lib/commands/schema.ts +122 -0
- package/lib/commands/services/account.ts +647 -0
- package/lib/commands/services/console.ts +52 -0
- package/lib/commands/services/databases.ts +1163 -0
- package/lib/commands/services/functions.ts +536 -0
- package/lib/commands/services/graphql.ts +50 -0
- package/lib/commands/services/health.ts +260 -0
- package/lib/commands/services/locale.ts +102 -0
- package/lib/commands/services/messaging.ts +1052 -0
- package/lib/commands/services/migrations.ts +249 -0
- package/lib/commands/services/project.ts +112 -0
- package/lib/commands/services/projects.ts +785 -0
- package/lib/commands/services/proxy.ts +135 -0
- package/lib/commands/services/sites.ts +505 -0
- package/lib/commands/services/storage.ts +338 -0
- package/lib/commands/services/tables-db.ts +1150 -0
- package/lib/commands/services/teams.ts +232 -0
- package/lib/commands/services/tokens.ts +94 -0
- package/lib/commands/services/users.ts +616 -0
- package/lib/commands/services/vcs.ts +165 -0
- package/lib/commands/types.ts +145 -118
- package/lib/commands/update.ts +189 -159
- package/lib/commands/utils/attributes.ts +719 -0
- package/lib/commands/utils/change-approval.ts +186 -0
- package/lib/commands/utils/database-sync.ts +180 -0
- package/lib/commands/utils/deployment.ts +184 -0
- package/lib/commands/utils/error-formatter.ts +417 -0
- package/lib/commands/utils/pools.ts +355 -0
- package/lib/config.ts +766 -687
- package/lib/constants.ts +22 -0
- package/lib/emulation/docker.ts +277 -216
- package/lib/emulation/utils.ts +188 -174
- package/lib/id.ts +23 -23
- package/lib/paginate.ts +69 -55
- package/lib/parser.ts +220 -189
- package/lib/questions.ts +1024 -948
- package/lib/sdks.ts +84 -51
- package/lib/services.ts +72 -0
- package/lib/spinner.ts +112 -99
- package/lib/type-generation/attribute.ts +15 -14
- package/lib/type-generation/languages/csharp.ts +71 -60
- package/lib/type-generation/languages/dart.ts +106 -93
- package/lib/type-generation/languages/java.ts +69 -58
- package/lib/type-generation/languages/javascript.ts +84 -73
- package/lib/type-generation/languages/kotlin.ts +71 -60
- package/lib/type-generation/languages/language.ts +103 -95
- package/lib/type-generation/languages/php.ts +67 -56
- package/lib/type-generation/languages/swift.ts +71 -60
- package/lib/type-generation/languages/typescript.ts +93 -76
- package/lib/types.ts +50 -125
- package/lib/utils.ts +304 -233
- package/lib/validations.ts +17 -14
- package/package.json +31 -22
- package/scoop/appwrite.config.json +3 -3
- package/tsconfig.json +7 -13
- package/.github/workflows/autoclose.yml +0 -11
- package/.github/workflows/npm-publish.yml +0 -49
- package/dist/lib/commands/account.d.ts +0 -379
- package/dist/lib/commands/account.d.ts.map +0 -1
- package/dist/lib/commands/account.js +0 -1228
- package/dist/lib/commands/account.js.map +0 -1
- package/dist/lib/commands/console.d.ts +0 -20
- package/dist/lib/commands/console.d.ts.map +0 -1
- package/dist/lib/commands/console.js +0 -78
- package/dist/lib/commands/console.js.map +0 -1
- package/dist/lib/commands/databases.d.ts +0 -732
- package/dist/lib/commands/databases.d.ts.map +0 -1
- package/dist/lib/commands/databases.js +0 -2196
- package/dist/lib/commands/databases.js.map +0 -1
- package/dist/lib/commands/functions.d.ts +0 -310
- package/dist/lib/commands/functions.d.ts.map +0 -1
- package/dist/lib/commands/functions.js +0 -1100
- package/dist/lib/commands/functions.js.map +0 -1
- package/dist/lib/commands/graphql.d.ts +0 -19
- package/dist/lib/commands/graphql.d.ts.map +0 -1
- package/dist/lib/commands/graphql.js +0 -77
- package/dist/lib/commands/graphql.js.map +0 -1
- package/dist/lib/commands/health.d.ts +0 -153
- package/dist/lib/commands/health.d.ts.map +0 -1
- package/dist/lib/commands/health.js +0 -464
- package/dist/lib/commands/health.js.map +0 -1
- package/dist/lib/commands/locale.d.ts +0 -53
- package/dist/lib/commands/locale.d.ts.map +0 -1
- package/dist/lib/commands/locale.js +0 -165
- package/dist/lib/commands/locale.js.map +0 -1
- package/dist/lib/commands/messaging.d.ts +0 -588
- package/dist/lib/commands/messaging.d.ts.map +0 -1
- package/dist/lib/commands/messaging.js +0 -2042
- package/dist/lib/commands/messaging.js.map +0 -1
- package/dist/lib/commands/migrations.d.ts +0 -150
- package/dist/lib/commands/migrations.d.ts.map +0 -1
- package/dist/lib/commands/migrations.js +0 -524
- package/dist/lib/commands/migrations.js.map +0 -1
- package/dist/lib/commands/organizations.d.ts +0 -11
- package/dist/lib/commands/organizations.d.ts.map +0 -1
- package/dist/lib/commands/organizations.js +0 -31
- package/dist/lib/commands/organizations.js.map +0 -1
- package/dist/lib/commands/project.d.ts +0 -53
- package/dist/lib/commands/project.d.ts.map +0 -1
- package/dist/lib/commands/project.js +0 -176
- package/dist/lib/commands/project.js.map +0 -1
- package/dist/lib/commands/projects.d.ts +0 -516
- package/dist/lib/commands/projects.d.ts.map +0 -1
- package/dist/lib/commands/projects.js +0 -1590
- package/dist/lib/commands/projects.js.map +0 -1
- package/dist/lib/commands/proxy.d.ts +0 -71
- package/dist/lib/commands/proxy.d.ts.map +0 -1
- package/dist/lib/commands/proxy.js +0 -240
- package/dist/lib/commands/proxy.js.map +0 -1
- package/dist/lib/commands/sites.d.ts +0 -296
- package/dist/lib/commands/sites.d.ts.map +0 -1
- package/dist/lib/commands/sites.js +0 -1046
- package/dist/lib/commands/sites.js.map +0 -1
- package/dist/lib/commands/storage.d.ts +0 -170
- package/dist/lib/commands/storage.d.ts.map +0 -1
- package/dist/lib/commands/storage.js +0 -651
- package/dist/lib/commands/storage.js.map +0 -1
- package/dist/lib/commands/tables-db.d.ts +0 -728
- package/dist/lib/commands/tables-db.d.ts.map +0 -1
- package/dist/lib/commands/tables-db.js +0 -2198
- package/dist/lib/commands/tables-db.js.map +0 -1
- package/dist/lib/commands/teams.d.ts +0 -129
- package/dist/lib/commands/teams.d.ts.map +0 -1
- package/dist/lib/commands/teams.js +0 -403
- package/dist/lib/commands/teams.js.map +0 -1
- package/dist/lib/commands/tokens.d.ts +0 -48
- package/dist/lib/commands/tokens.d.ts.map +0 -1
- package/dist/lib/commands/tokens.js +0 -156
- package/dist/lib/commands/tokens.js.map +0 -1
- package/dist/lib/commands/users.d.ts +0 -382
- package/dist/lib/commands/users.d.ts.map +0 -1
- package/dist/lib/commands/users.js +0 -1195
- package/dist/lib/commands/users.js.map +0 -1
- package/dist/lib/commands/vcs.d.ts +0 -92
- package/dist/lib/commands/vcs.d.ts.map +0 -1
- package/dist/lib/commands/vcs.js +0 -276
- package/dist/lib/commands/vcs.js.map +0 -1
- package/dist/lib/exception.d.ts +0 -8
- package/dist/lib/exception.d.ts.map +0 -1
- package/dist/lib/exception.js +0 -16
- package/dist/lib/exception.js.map +0 -1
- package/lib/commands/account.ts +0 -1867
- package/lib/commands/console.ts +0 -112
- package/lib/commands/databases.ts +0 -3272
- package/lib/commands/functions.ts +0 -1587
- package/lib/commands/graphql.ts +0 -110
- package/lib/commands/health.ts +0 -753
- package/lib/commands/locale.ts +0 -270
- package/lib/commands/messaging.ts +0 -2878
- package/lib/commands/migrations.ts +0 -754
- package/lib/commands/organizations.ts +0 -46
- package/lib/commands/project.ts +0 -266
- package/lib/commands/projects.ts +0 -2370
- package/lib/commands/proxy.ts +0 -357
- package/lib/commands/sites.ts +0 -1514
- package/lib/commands/storage.ts +0 -919
- package/lib/commands/tables-db.ts +0 -3260
- package/lib/commands/teams.ts +0 -609
- package/lib/commands/tokens.ts +0 -232
- package/lib/commands/users.ts +0 -1804
- package/lib/commands/vcs.ts +0 -428
- package/lib/exception.ts +0 -20
|
@@ -1,27 +1,425 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
};
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
const
|
|
18
|
-
const
|
|
19
|
-
const
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
1
|
+
import fs from "fs";
|
|
2
|
+
import path from "path";
|
|
3
|
+
import chalk from "chalk";
|
|
4
|
+
import { Command } from "commander";
|
|
5
|
+
import inquirer from "inquirer";
|
|
6
|
+
import { Databases, Functions, Messaging, Projects, Sites, Storage, TablesDB, Teams, Query, } from "@appwrite.io/console";
|
|
7
|
+
import { getFunctionsService, getSitesService } from "../services.js";
|
|
8
|
+
import { sdkForProject, sdkForConsole } from "../sdks.js";
|
|
9
|
+
import { localConfig } from "../config.js";
|
|
10
|
+
import { paginate } from "../paginate.js";
|
|
11
|
+
import { questionsPullFunctions, questionsPullFunctionsCode, questionsPullSites, questionsPullSitesCode, questionsPullResources, } from "../questions.js";
|
|
12
|
+
import { cliConfig, success, log, warn, error, actionRunner, commandDescriptions, } from "../parser.js";
|
|
13
|
+
import { createSettingsObject } from "../utils.js";
|
|
14
|
+
import { ProjectNotInitializedError } from "./errors.js";
|
|
15
|
+
import { downloadDeploymentCode } from "./utils/deployment.js";
|
|
16
|
+
async function createPullInstance() {
|
|
17
|
+
const projectClient = await sdkForProject();
|
|
18
|
+
const consoleClient = await sdkForConsole();
|
|
19
|
+
const pullInstance = new Pull(projectClient, consoleClient);
|
|
20
|
+
pullInstance.setConfigDirectoryPath(localConfig.configDirectoryPath);
|
|
21
|
+
return pullInstance;
|
|
22
|
+
}
|
|
23
|
+
export class Pull {
|
|
24
|
+
projectClient;
|
|
25
|
+
consoleClient;
|
|
26
|
+
configDirectoryPath;
|
|
27
|
+
silent;
|
|
28
|
+
constructor(projectClient, consoleClient, silent = false) {
|
|
29
|
+
this.projectClient = projectClient;
|
|
30
|
+
this.consoleClient = consoleClient;
|
|
31
|
+
this.configDirectoryPath = process.cwd();
|
|
32
|
+
this.silent = silent;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Set the base directory path for config files and resources
|
|
36
|
+
*/
|
|
37
|
+
setConfigDirectoryPath(path) {
|
|
38
|
+
this.configDirectoryPath = path;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Log a message (respects silent mode)
|
|
42
|
+
*/
|
|
43
|
+
log(message) {
|
|
44
|
+
if (!this.silent) {
|
|
45
|
+
log(message);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Log a success message (respects silent mode)
|
|
50
|
+
*/
|
|
51
|
+
success(message) {
|
|
52
|
+
if (!this.silent) {
|
|
53
|
+
success(message);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Log a warning message (respects silent mode)
|
|
58
|
+
*/
|
|
59
|
+
warn(message) {
|
|
60
|
+
if (!this.silent) {
|
|
61
|
+
warn(message);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Pull resources from Appwrite project and return updated config
|
|
66
|
+
*
|
|
67
|
+
* @param config - Current configuration object
|
|
68
|
+
* @param options - Pull options specifying which resources to pull
|
|
69
|
+
* @returns Updated configuration object with pulled resources
|
|
70
|
+
*/
|
|
71
|
+
async pullResources(config, options = { all: true, skipDeprecated: true }) {
|
|
72
|
+
const { skipDeprecated = true } = options;
|
|
73
|
+
if (!config.projectId) {
|
|
74
|
+
throw new ProjectNotInitializedError();
|
|
75
|
+
}
|
|
76
|
+
const updatedConfig = { ...config };
|
|
77
|
+
const shouldPullAll = options.all === true;
|
|
78
|
+
if (shouldPullAll || options.settings) {
|
|
79
|
+
const settings = await this.pullSettings(config.projectId);
|
|
80
|
+
updatedConfig.settings = settings.settings;
|
|
81
|
+
updatedConfig.projectName = settings.projectName;
|
|
82
|
+
}
|
|
83
|
+
if (shouldPullAll || options.functions) {
|
|
84
|
+
const functions = await this.pullFunctions({
|
|
85
|
+
code: options.noCode === true ? false : true,
|
|
86
|
+
withVariables: options.withVariables,
|
|
87
|
+
});
|
|
88
|
+
updatedConfig.functions = functions;
|
|
89
|
+
}
|
|
90
|
+
if (shouldPullAll || options.sites) {
|
|
91
|
+
const sites = await this.pullSites({
|
|
92
|
+
code: options.noCode === true ? false : true,
|
|
93
|
+
withVariables: options.withVariables,
|
|
94
|
+
});
|
|
95
|
+
updatedConfig.sites = sites;
|
|
96
|
+
}
|
|
97
|
+
if (shouldPullAll || options.tables) {
|
|
98
|
+
const { databases, tables } = await this.pullTables();
|
|
99
|
+
updatedConfig.databases = databases;
|
|
100
|
+
updatedConfig.tables = tables;
|
|
101
|
+
}
|
|
102
|
+
if (options.collections || (shouldPullAll && !skipDeprecated)) {
|
|
103
|
+
const { databases, collections } = await this.pullCollections();
|
|
104
|
+
updatedConfig.databases = databases;
|
|
105
|
+
updatedConfig.collections = collections;
|
|
106
|
+
}
|
|
107
|
+
if (shouldPullAll || options.buckets) {
|
|
108
|
+
const buckets = await this.pullBuckets();
|
|
109
|
+
updatedConfig.buckets = buckets;
|
|
110
|
+
}
|
|
111
|
+
if (shouldPullAll || options.teams) {
|
|
112
|
+
const teams = await this.pullTeams();
|
|
113
|
+
updatedConfig.teams = teams;
|
|
114
|
+
}
|
|
115
|
+
if (shouldPullAll || options.topics) {
|
|
116
|
+
const topics = await this.pullMessagingTopics();
|
|
117
|
+
updatedConfig.topics = topics;
|
|
118
|
+
}
|
|
119
|
+
return updatedConfig;
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Pull project settings
|
|
123
|
+
*/
|
|
124
|
+
async pullSettings(projectId) {
|
|
125
|
+
this.log("Pulling project settings ...");
|
|
126
|
+
const projectsService = new Projects(this.consoleClient);
|
|
127
|
+
const project = await projectsService.get({ projectId: projectId });
|
|
128
|
+
this.success(`Successfully pulled ${chalk.bold("all")} project settings.`);
|
|
129
|
+
return {
|
|
130
|
+
projectName: project.name,
|
|
131
|
+
settings: createSettingsObject(project),
|
|
132
|
+
project,
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Pull functions from the project
|
|
137
|
+
*/
|
|
138
|
+
async pullFunctions(options = {}) {
|
|
139
|
+
this.log("Fetching functions ...");
|
|
140
|
+
const functionsService = new Functions(this.projectClient);
|
|
141
|
+
let functions;
|
|
142
|
+
if (options.functionIds && options.functionIds.length > 0) {
|
|
143
|
+
functions = await Promise.all(options.functionIds.map((id) => functionsService.get({
|
|
144
|
+
functionId: id,
|
|
145
|
+
})));
|
|
146
|
+
}
|
|
147
|
+
else {
|
|
148
|
+
const fetchResponse = await functionsService.list({
|
|
149
|
+
queries: [Query.limit(1)],
|
|
150
|
+
});
|
|
151
|
+
if (fetchResponse["functions"].length <= 0) {
|
|
152
|
+
this.log("No functions found.");
|
|
153
|
+
this.success(`Successfully pulled ${chalk.bold(0)} functions.`);
|
|
154
|
+
return [];
|
|
155
|
+
}
|
|
156
|
+
const { functions: allFunctions } = await paginate(async () => new Functions(this.projectClient).list(), {}, 100, "functions");
|
|
157
|
+
functions = allFunctions;
|
|
158
|
+
}
|
|
159
|
+
const result = [];
|
|
160
|
+
for (const func of functions) {
|
|
161
|
+
this.log(`Pulling function ${chalk.bold(func.name)} ...`);
|
|
162
|
+
const funcPath = `functions/${func.name}`;
|
|
163
|
+
const absoluteFuncPath = path.resolve(this.configDirectoryPath, funcPath);
|
|
164
|
+
const holdingVars = func.vars || [];
|
|
165
|
+
const functionConfig = {
|
|
166
|
+
$id: func.$id,
|
|
167
|
+
name: func.name,
|
|
168
|
+
runtime: func.runtime,
|
|
169
|
+
path: funcPath,
|
|
170
|
+
entrypoint: func.entrypoint,
|
|
171
|
+
execute: func.execute,
|
|
172
|
+
enabled: func.enabled,
|
|
173
|
+
logging: func.logging,
|
|
174
|
+
events: func.events,
|
|
175
|
+
schedule: func.schedule,
|
|
176
|
+
timeout: func.timeout,
|
|
177
|
+
commands: func.commands,
|
|
178
|
+
scopes: func.scopes,
|
|
179
|
+
specification: func.specification,
|
|
180
|
+
};
|
|
181
|
+
result.push(functionConfig);
|
|
182
|
+
if (!fs.existsSync(absoluteFuncPath)) {
|
|
183
|
+
fs.mkdirSync(absoluteFuncPath, { recursive: true });
|
|
184
|
+
}
|
|
185
|
+
if (options.code !== false) {
|
|
186
|
+
await downloadDeploymentCode({
|
|
187
|
+
resourceId: func["$id"],
|
|
188
|
+
resourcePath: absoluteFuncPath,
|
|
189
|
+
holdingVars,
|
|
190
|
+
withVariables: options.withVariables,
|
|
191
|
+
listDeployments: () => functionsService.listDeployments({
|
|
192
|
+
functionId: func["$id"],
|
|
193
|
+
queries: [Query.limit(1), Query.orderDesc("$id")],
|
|
194
|
+
}),
|
|
195
|
+
getDownloadUrl: (deploymentId) => functionsService.getDeploymentDownload({
|
|
196
|
+
functionId: func["$id"],
|
|
197
|
+
deploymentId,
|
|
198
|
+
}),
|
|
199
|
+
projectClient: this.projectClient,
|
|
200
|
+
});
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
if (options.code === false) {
|
|
204
|
+
this.warn("Source code download skipped.");
|
|
205
|
+
}
|
|
206
|
+
this.success(`Successfully pulled ${chalk.bold(result.length)} functions.`);
|
|
207
|
+
return result;
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* Pull sites from the project
|
|
211
|
+
*/
|
|
212
|
+
async pullSites(options = {}) {
|
|
213
|
+
this.log("Fetching sites ...");
|
|
214
|
+
const sitesService = new Sites(this.projectClient);
|
|
215
|
+
let sites;
|
|
216
|
+
if (options.siteIds && options.siteIds.length > 0) {
|
|
217
|
+
sites = await Promise.all(options.siteIds.map((id) => sitesService.get({
|
|
218
|
+
siteId: id,
|
|
219
|
+
})));
|
|
220
|
+
}
|
|
221
|
+
else {
|
|
222
|
+
const fetchResponse = await sitesService.list({
|
|
223
|
+
queries: [Query.limit(1)],
|
|
224
|
+
});
|
|
225
|
+
if (fetchResponse["sites"].length <= 0) {
|
|
226
|
+
this.log("No sites found.");
|
|
227
|
+
this.success(`Successfully pulled ${chalk.bold(0)} sites.`);
|
|
228
|
+
return [];
|
|
229
|
+
}
|
|
230
|
+
const { sites: fetchedSites } = await paginate(async () => new Sites(this.projectClient).list(), {}, 100, "sites");
|
|
231
|
+
sites = fetchedSites;
|
|
232
|
+
}
|
|
233
|
+
const result = [];
|
|
234
|
+
for (const site of sites) {
|
|
235
|
+
this.log(`Pulling site ${chalk.bold(site.name)} ...`);
|
|
236
|
+
const sitePath = `sites/${site.name}`;
|
|
237
|
+
const absoluteSitePath = path.resolve(this.configDirectoryPath, sitePath);
|
|
238
|
+
const holdingVars = site.vars || [];
|
|
239
|
+
const siteConfig = {
|
|
240
|
+
$id: site.$id,
|
|
241
|
+
name: site.name,
|
|
242
|
+
path: sitePath,
|
|
243
|
+
framework: site.framework,
|
|
244
|
+
enabled: site.enabled,
|
|
245
|
+
logging: site.logging,
|
|
246
|
+
timeout: site.timeout,
|
|
247
|
+
buildRuntime: site.buildRuntime,
|
|
248
|
+
adapter: site.adapter,
|
|
249
|
+
installCommand: site.installCommand,
|
|
250
|
+
buildCommand: site.buildCommand,
|
|
251
|
+
outputDirectory: site.outputDirectory,
|
|
252
|
+
fallbackFile: site.fallbackFile,
|
|
253
|
+
specification: site.specification,
|
|
254
|
+
};
|
|
255
|
+
result.push(siteConfig);
|
|
256
|
+
if (!fs.existsSync(absoluteSitePath)) {
|
|
257
|
+
fs.mkdirSync(absoluteSitePath, { recursive: true });
|
|
258
|
+
}
|
|
259
|
+
if (options.code !== false) {
|
|
260
|
+
await downloadDeploymentCode({
|
|
261
|
+
resourceId: site["$id"],
|
|
262
|
+
resourcePath: absoluteSitePath,
|
|
263
|
+
holdingVars,
|
|
264
|
+
withVariables: options.withVariables,
|
|
265
|
+
listDeployments: () => sitesService.listDeployments({
|
|
266
|
+
siteId: site["$id"],
|
|
267
|
+
queries: [Query.limit(1), Query.orderDesc("$id")],
|
|
268
|
+
}),
|
|
269
|
+
getDownloadUrl: (deploymentId) => sitesService.getDeploymentDownload({
|
|
270
|
+
siteId: site["$id"],
|
|
271
|
+
deploymentId,
|
|
272
|
+
}),
|
|
273
|
+
projectClient: this.projectClient,
|
|
274
|
+
});
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
if (options.code === false) {
|
|
278
|
+
this.warn("Source code download skipped.");
|
|
279
|
+
}
|
|
280
|
+
this.success(`Successfully pulled ${chalk.bold(result.length)} sites.`);
|
|
281
|
+
return result;
|
|
282
|
+
}
|
|
283
|
+
/**
|
|
284
|
+
* Pull collections from the project (deprecated)
|
|
285
|
+
*/
|
|
286
|
+
async pullCollections() {
|
|
287
|
+
this.warn("appwrite pull collection has been deprecated. Please consider using 'appwrite pull tables' instead");
|
|
288
|
+
this.log("Fetching collections ...");
|
|
289
|
+
const databasesService = new Databases(this.projectClient);
|
|
290
|
+
const fetchResponse = await databasesService.list([Query.limit(1)]);
|
|
291
|
+
if (fetchResponse["databases"].length <= 0) {
|
|
292
|
+
this.log("No collections found.");
|
|
293
|
+
this.success(`Successfully pulled ${chalk.bold(0)} collections from ${chalk.bold(0)} databases.`);
|
|
294
|
+
return { databases: [], collections: [] };
|
|
295
|
+
}
|
|
296
|
+
const { databases } = await paginate(async () => new Databases(this.projectClient).list(), {}, 100, "databases");
|
|
297
|
+
const allDatabases = [];
|
|
298
|
+
const allCollections = [];
|
|
299
|
+
for (const database of databases) {
|
|
300
|
+
this.log(`Pulling all collections from ${chalk.bold(database.name)} database ...`);
|
|
301
|
+
allDatabases.push(database);
|
|
302
|
+
const { collections } = await paginate(async () => new Databases(this.projectClient).listCollections(database.$id), {}, 100, "collections");
|
|
303
|
+
for (const collection of collections) {
|
|
304
|
+
allCollections.push({
|
|
305
|
+
...collection,
|
|
306
|
+
$createdAt: undefined,
|
|
307
|
+
$updatedAt: undefined,
|
|
308
|
+
});
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
this.success(`Successfully pulled ${chalk.bold(allCollections.length)} collections from ${chalk.bold(allDatabases.length)} databases.`);
|
|
312
|
+
return {
|
|
313
|
+
databases: allDatabases,
|
|
314
|
+
collections: allCollections,
|
|
315
|
+
};
|
|
316
|
+
}
|
|
317
|
+
/**
|
|
318
|
+
* Pull tables from the project
|
|
319
|
+
*/
|
|
320
|
+
async pullTables() {
|
|
321
|
+
this.log("Fetching tables ...");
|
|
322
|
+
const tablesDBService = new TablesDB(this.projectClient);
|
|
323
|
+
const fetchResponse = await tablesDBService.list({
|
|
324
|
+
queries: [Query.limit(1)],
|
|
325
|
+
});
|
|
326
|
+
if (fetchResponse["databases"].length <= 0) {
|
|
327
|
+
this.log("No tables found.");
|
|
328
|
+
this.success(`Successfully pulled ${chalk.bold(0)} tables from ${chalk.bold(0)} tableDBs.`);
|
|
329
|
+
return { databases: [], tables: [] };
|
|
330
|
+
}
|
|
331
|
+
const { databases } = await paginate(async () => new TablesDB(this.projectClient).list(), {}, 100, "databases");
|
|
332
|
+
const allDatabases = [];
|
|
333
|
+
const allTables = [];
|
|
334
|
+
for (const database of databases) {
|
|
335
|
+
this.log(`Pulling all tables from ${chalk.bold(database.name)} database ...`);
|
|
336
|
+
allDatabases.push(database);
|
|
337
|
+
const { tables } = await paginate(async () => new TablesDB(this.projectClient).listTables(database.$id), {}, 100, "tables");
|
|
338
|
+
for (const table of tables) {
|
|
339
|
+
allTables.push({
|
|
340
|
+
...table,
|
|
341
|
+
$createdAt: undefined,
|
|
342
|
+
$updatedAt: undefined,
|
|
343
|
+
});
|
|
344
|
+
}
|
|
345
|
+
}
|
|
346
|
+
this.success(`Successfully pulled ${chalk.bold(allTables.length)} tables from ${chalk.bold(allDatabases.length)} tableDBs.`);
|
|
347
|
+
return {
|
|
348
|
+
databases: allDatabases,
|
|
349
|
+
tables: allTables,
|
|
350
|
+
};
|
|
351
|
+
}
|
|
352
|
+
/**
|
|
353
|
+
* Pull storage buckets from the project
|
|
354
|
+
*/
|
|
355
|
+
async pullBuckets() {
|
|
356
|
+
this.log("Fetching buckets ...");
|
|
357
|
+
const storageService = new Storage(this.projectClient);
|
|
358
|
+
const fetchResponse = await storageService.listBuckets({
|
|
359
|
+
queries: [Query.limit(1)],
|
|
360
|
+
});
|
|
361
|
+
if (fetchResponse["buckets"].length <= 0) {
|
|
362
|
+
this.log("No buckets found.");
|
|
363
|
+
this.success(`Successfully pulled ${chalk.bold(0)} buckets.`);
|
|
364
|
+
return [];
|
|
365
|
+
}
|
|
366
|
+
const { buckets } = await paginate(async () => new Storage(this.projectClient).listBuckets(), {}, 100, "buckets");
|
|
367
|
+
for (const bucket of buckets) {
|
|
368
|
+
this.log(`Pulling bucket ${chalk.bold(bucket.name)} ...`);
|
|
369
|
+
}
|
|
370
|
+
this.success(`Successfully pulled ${chalk.bold(buckets.length)} buckets.`);
|
|
371
|
+
return buckets;
|
|
372
|
+
}
|
|
373
|
+
/**
|
|
374
|
+
* Pull teams from the project
|
|
375
|
+
*/
|
|
376
|
+
async pullTeams() {
|
|
377
|
+
this.log("Fetching teams ...");
|
|
378
|
+
const teamsService = new Teams(this.projectClient);
|
|
379
|
+
const fetchResponse = await teamsService.list({
|
|
380
|
+
queries: [Query.limit(1)],
|
|
381
|
+
});
|
|
382
|
+
if (fetchResponse["teams"].length <= 0) {
|
|
383
|
+
this.log("No teams found.");
|
|
384
|
+
this.success(`Successfully pulled ${chalk.bold(0)} teams.`);
|
|
385
|
+
return [];
|
|
386
|
+
}
|
|
387
|
+
const { teams } = await paginate(async () => new Teams(this.projectClient).list(), {}, 100, "teams");
|
|
388
|
+
for (const team of teams) {
|
|
389
|
+
this.log(`Pulling team ${chalk.bold(team.name)} ...`);
|
|
390
|
+
}
|
|
391
|
+
this.success(`Successfully pulled ${chalk.bold(teams.length)} teams.`);
|
|
392
|
+
return teams;
|
|
393
|
+
}
|
|
394
|
+
/**
|
|
395
|
+
* Pull messaging topics from the project
|
|
396
|
+
*/
|
|
397
|
+
async pullMessagingTopics() {
|
|
398
|
+
this.log("Fetching topics ...");
|
|
399
|
+
const messagingService = new Messaging(this.projectClient);
|
|
400
|
+
const fetchResponse = await messagingService.listTopics({
|
|
401
|
+
queries: [Query.limit(1)],
|
|
402
|
+
});
|
|
403
|
+
if (fetchResponse["topics"].length <= 0) {
|
|
404
|
+
this.log("No topics found.");
|
|
405
|
+
this.success(`Successfully pulled ${chalk.bold(0)} topics.`);
|
|
406
|
+
return [];
|
|
407
|
+
}
|
|
408
|
+
const { topics } = await paginate(async () => new Messaging(this.projectClient).listTopics(), {}, 100, "topics");
|
|
409
|
+
for (const topic of topics) {
|
|
410
|
+
this.log(`Pulling topic ${chalk.bold(topic.name)} ...`);
|
|
411
|
+
}
|
|
412
|
+
this.success(`Successfully pulled ${chalk.bold(topics.length)} topics.`);
|
|
413
|
+
return topics;
|
|
414
|
+
}
|
|
415
|
+
}
|
|
416
|
+
/** Helper methods for CLI commands */
|
|
417
|
+
export const pullResources = async ({ skipDeprecated = true, } = {}) => {
|
|
418
|
+
const project = localConfig.getProject();
|
|
419
|
+
if (!project.projectId) {
|
|
420
|
+
error("Project configuration not found. Please run 'appwrite init project' to initialize your project first.");
|
|
421
|
+
process.exit(1);
|
|
422
|
+
}
|
|
25
423
|
const actions = {
|
|
26
424
|
settings: pullSettings,
|
|
27
425
|
functions: pullFunctions,
|
|
@@ -30,426 +428,188 @@ const pullResources = async ({ skipDeprecated = false } = {}) => {
|
|
|
30
428
|
tables: pullTable,
|
|
31
429
|
buckets: pullBucket,
|
|
32
430
|
teams: pullTeam,
|
|
33
|
-
messages: pullMessagingTopic
|
|
431
|
+
messages: pullMessagingTopic,
|
|
34
432
|
};
|
|
35
433
|
if (skipDeprecated) {
|
|
36
434
|
delete actions.collections;
|
|
37
435
|
}
|
|
38
|
-
if (
|
|
436
|
+
if (cliConfig.all) {
|
|
39
437
|
for (let action of Object.values(actions)) {
|
|
40
|
-
|
|
438
|
+
cliConfig.all = true;
|
|
41
439
|
await action({ returnOnZero: true });
|
|
42
440
|
}
|
|
43
441
|
}
|
|
44
442
|
else {
|
|
45
|
-
const answers = await
|
|
443
|
+
const answers = await inquirer.prompt([questionsPullResources[0]]);
|
|
46
444
|
const action = actions[answers.resource];
|
|
47
445
|
if (action !== undefined) {
|
|
48
446
|
await action({ returnOnZero: true });
|
|
49
447
|
}
|
|
50
448
|
}
|
|
51
449
|
};
|
|
52
|
-
exports.pullResources = pullResources;
|
|
53
450
|
const pullSettings = async () => {
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
projectId: config_1.localConfig.getProject().projectId
|
|
59
|
-
});
|
|
60
|
-
config_1.localConfig.setProject(response.$id, response.name, response);
|
|
61
|
-
(0, parser_1.success)(`Successfully pulled ${chalk_1.default.bold('all')} project settings.`);
|
|
62
|
-
}
|
|
63
|
-
catch (e) {
|
|
64
|
-
throw e;
|
|
65
|
-
}
|
|
451
|
+
const pullInstance = await createPullInstance();
|
|
452
|
+
const projectId = localConfig.getProject().projectId;
|
|
453
|
+
const settings = await pullInstance.pullSettings(projectId);
|
|
454
|
+
localConfig.setProject(projectId, settings.projectName, settings.project);
|
|
66
455
|
};
|
|
67
|
-
const pullFunctions = async ({ code, withVariables } = {}) => {
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
let total = 0;
|
|
71
|
-
const fetchResponse = await (0, functions_1.functionsList)({
|
|
72
|
-
queries: [JSON.stringify({ method: 'limit', values: [1] })],
|
|
73
|
-
parseOutput: false
|
|
74
|
-
});
|
|
456
|
+
const pullFunctions = async ({ code, withVariables, } = {}) => {
|
|
457
|
+
const functionsService = await getFunctionsService();
|
|
458
|
+
const fetchResponse = await functionsService.list([Query.limit(1)]);
|
|
75
459
|
if (fetchResponse["functions"].length <= 0) {
|
|
76
|
-
|
|
77
|
-
|
|
460
|
+
log("No functions found.");
|
|
461
|
+
success(`Successfully pulled ${chalk.bold(0)} functions.`);
|
|
78
462
|
return;
|
|
79
463
|
}
|
|
80
|
-
const
|
|
81
|
-
? (await (
|
|
82
|
-
: (await
|
|
83
|
-
let allowCodePull =
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
(0, parser_1.warn)("Source code download skipped.");
|
|
101
|
-
continue;
|
|
102
|
-
}
|
|
103
|
-
if (allowCodePull === null) {
|
|
104
|
-
const codeAnswer = await inquirer_1.default.prompt(questions_1.questionsPullFunctionsCode);
|
|
105
|
-
allowCodePull = codeAnswer.override;
|
|
106
|
-
}
|
|
107
|
-
if (!allowCodePull) {
|
|
108
|
-
continue;
|
|
109
|
-
}
|
|
110
|
-
let deploymentId = null;
|
|
111
|
-
try {
|
|
112
|
-
const fetchResponse = await (0, functions_1.functionsListDeployments)({
|
|
113
|
-
functionId: func['$id'],
|
|
114
|
-
queries: [
|
|
115
|
-
JSON.stringify({ method: 'limit', values: [1] }),
|
|
116
|
-
JSON.stringify({ method: 'orderDesc', values: ['$id'] })
|
|
117
|
-
],
|
|
118
|
-
parseOutput: false
|
|
119
|
-
});
|
|
120
|
-
if (fetchResponse['total'] > 0) {
|
|
121
|
-
deploymentId = fetchResponse['deployments'][0]['$id'];
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
catch {
|
|
125
|
-
}
|
|
126
|
-
if (deploymentId === null) {
|
|
127
|
-
(0, parser_1.log)("Source code download skipped because function doesn't have any available deployment");
|
|
128
|
-
continue;
|
|
129
|
-
}
|
|
130
|
-
(0, parser_1.log)("Pulling latest deployment code ...");
|
|
131
|
-
const compressedFileName = `${func['$id']}-${+new Date()}.tar.gz`;
|
|
132
|
-
await (0, functions_1.functionsGetDeploymentDownload)({
|
|
133
|
-
functionId: func['$id'],
|
|
134
|
-
deploymentId,
|
|
135
|
-
destination: compressedFileName,
|
|
136
|
-
overrideForCli: true,
|
|
137
|
-
parseOutput: false
|
|
138
|
-
});
|
|
139
|
-
tar.extract({
|
|
140
|
-
sync: true,
|
|
141
|
-
cwd: func['path'],
|
|
142
|
-
file: compressedFileName,
|
|
143
|
-
strict: false,
|
|
144
|
-
});
|
|
145
|
-
fs.rmSync(compressedFileName);
|
|
146
|
-
if (withVariables) {
|
|
147
|
-
const envFileLocation = `${func['path']}/.env`;
|
|
148
|
-
try {
|
|
149
|
-
fs.rmSync(envFileLocation);
|
|
150
|
-
}
|
|
151
|
-
catch {
|
|
152
|
-
}
|
|
153
|
-
fs.writeFileSync(envFileLocation, holdingVars.map((r) => `${r.key}=${r.value}\n`).join(''));
|
|
154
|
-
}
|
|
464
|
+
const functionsToCheck = cliConfig.all
|
|
465
|
+
? (await paginate(async () => (await getFunctionsService()).list(), {}, 100, "functions")).functions
|
|
466
|
+
: (await inquirer.prompt(questionsPullFunctions)).functions;
|
|
467
|
+
let allowCodePull = cliConfig.force === true ? true : null;
|
|
468
|
+
if (code !== false && allowCodePull === null) {
|
|
469
|
+
const codeAnswer = await inquirer.prompt(questionsPullFunctionsCode);
|
|
470
|
+
allowCodePull = codeAnswer.override;
|
|
471
|
+
}
|
|
472
|
+
const shouldPullCode = code !== false && allowCodePull === true;
|
|
473
|
+
const selectedFunctionIds = functionsToCheck.map((f) => f.$id);
|
|
474
|
+
const pullInstance = await createPullInstance();
|
|
475
|
+
const functions = await pullInstance.pullFunctions({
|
|
476
|
+
code: shouldPullCode,
|
|
477
|
+
withVariables,
|
|
478
|
+
functionIds: selectedFunctionIds,
|
|
479
|
+
});
|
|
480
|
+
for (const func of functions) {
|
|
481
|
+
const localFunction = localConfig.getFunction(func.$id);
|
|
482
|
+
func["path"] = localFunction["path"] || func["path"];
|
|
483
|
+
localConfig.addFunction(func);
|
|
155
484
|
}
|
|
156
|
-
(0, parser_1.success)(`Successfully pulled ${chalk_1.default.bold(total)} functions.`);
|
|
157
485
|
};
|
|
158
|
-
const pullSites = async ({ code, withVariables } = {}) => {
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
const fetchResponse = await (0, sites_1.sitesList)({
|
|
163
|
-
queries: [JSON.stringify({ method: 'limit', values: [1] })],
|
|
164
|
-
parseOutput: false
|
|
486
|
+
const pullSites = async ({ code, withVariables, } = {}) => {
|
|
487
|
+
const sitesService = await getSitesService();
|
|
488
|
+
const fetchResponse = await sitesService.list({
|
|
489
|
+
queries: [Query.limit(1)],
|
|
165
490
|
});
|
|
166
491
|
if (fetchResponse["sites"].length <= 0) {
|
|
167
|
-
|
|
168
|
-
|
|
492
|
+
log("No sites found.");
|
|
493
|
+
success(`Successfully pulled ${chalk.bold(0)} sites.`);
|
|
169
494
|
return;
|
|
170
495
|
}
|
|
171
|
-
const
|
|
172
|
-
? (await (
|
|
173
|
-
: (await
|
|
174
|
-
let allowCodePull =
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
(0, parser_1.warn)("Source code download skipped.");
|
|
192
|
-
continue;
|
|
193
|
-
}
|
|
194
|
-
if (allowCodePull === null) {
|
|
195
|
-
const codeAnswer = await inquirer_1.default.prompt(questions_1.questionsPullSitesCode);
|
|
196
|
-
allowCodePull = codeAnswer.override;
|
|
197
|
-
}
|
|
198
|
-
if (!allowCodePull) {
|
|
199
|
-
continue;
|
|
200
|
-
}
|
|
201
|
-
let deploymentId = null;
|
|
202
|
-
try {
|
|
203
|
-
const fetchResponse = await (0, sites_1.sitesListDeployments)({
|
|
204
|
-
siteId: site['$id'],
|
|
205
|
-
queries: [
|
|
206
|
-
JSON.stringify({ method: 'limit', values: [1] }),
|
|
207
|
-
JSON.stringify({ method: 'orderDesc', values: ['$id'] })
|
|
208
|
-
],
|
|
209
|
-
parseOutput: false
|
|
210
|
-
});
|
|
211
|
-
if (fetchResponse['total'] > 0) {
|
|
212
|
-
deploymentId = fetchResponse['deployments'][0]['$id'];
|
|
213
|
-
}
|
|
214
|
-
}
|
|
215
|
-
catch {
|
|
216
|
-
}
|
|
217
|
-
if (deploymentId === null) {
|
|
218
|
-
(0, parser_1.log)("Source code download skipped because site doesn't have any available deployment");
|
|
219
|
-
continue;
|
|
220
|
-
}
|
|
221
|
-
(0, parser_1.log)("Pulling latest deployment code ...");
|
|
222
|
-
const compressedFileName = `${site['$id']}-${+new Date()}.tar.gz`;
|
|
223
|
-
await (0, sites_1.sitesGetDeploymentDownload)({
|
|
224
|
-
siteId: site['$id'],
|
|
225
|
-
deploymentId,
|
|
226
|
-
destination: compressedFileName,
|
|
227
|
-
overrideForCli: true,
|
|
228
|
-
parseOutput: false
|
|
229
|
-
});
|
|
230
|
-
tar.extract({
|
|
231
|
-
sync: true,
|
|
232
|
-
cwd: site['path'],
|
|
233
|
-
file: compressedFileName,
|
|
234
|
-
strict: false,
|
|
235
|
-
});
|
|
236
|
-
fs.rmSync(compressedFileName);
|
|
237
|
-
if (withVariables) {
|
|
238
|
-
const envFileLocation = `${site['path']}/.env`;
|
|
239
|
-
try {
|
|
240
|
-
fs.rmSync(envFileLocation);
|
|
241
|
-
}
|
|
242
|
-
catch {
|
|
243
|
-
}
|
|
244
|
-
fs.writeFileSync(envFileLocation, holdingVars.map((r) => `${r.key}=${r.value}\n`).join(''));
|
|
245
|
-
}
|
|
496
|
+
const sitesToCheck = cliConfig.all
|
|
497
|
+
? (await paginate(async () => (await getSitesService()).list(), {}, 100, "sites")).sites
|
|
498
|
+
: (await inquirer.prompt(questionsPullSites)).sites;
|
|
499
|
+
let allowCodePull = cliConfig.force === true ? true : null;
|
|
500
|
+
if (code !== false && allowCodePull === null) {
|
|
501
|
+
const codeAnswer = await inquirer.prompt(questionsPullSitesCode);
|
|
502
|
+
allowCodePull = codeAnswer.override;
|
|
503
|
+
}
|
|
504
|
+
const shouldPullCode = code !== false && allowCodePull === true;
|
|
505
|
+
const selectedSiteIds = sitesToCheck.map((s) => s.$id);
|
|
506
|
+
const pullInstance = await createPullInstance();
|
|
507
|
+
const sites = await pullInstance.pullSites({
|
|
508
|
+
code: shouldPullCode,
|
|
509
|
+
withVariables,
|
|
510
|
+
siteIds: selectedSiteIds,
|
|
511
|
+
});
|
|
512
|
+
for (const site of sites) {
|
|
513
|
+
const localSite = localConfig.getSite(site.$id);
|
|
514
|
+
site["path"] = localSite["path"] || site["path"];
|
|
515
|
+
localConfig.addSite(site);
|
|
246
516
|
}
|
|
247
|
-
(0, parser_1.success)(`Successfully pulled ${chalk_1.default.bold(total)} sites.`);
|
|
248
517
|
};
|
|
249
518
|
const pullCollection = async () => {
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
const fetchResponse = await (0, databases_1.databasesList)({
|
|
255
|
-
queries: [JSON.stringify({ method: 'limit', values: [1] })],
|
|
256
|
-
parseOutput: false
|
|
257
|
-
});
|
|
258
|
-
if (fetchResponse["databases"].length <= 0) {
|
|
259
|
-
(0, parser_1.log)("No collections found.");
|
|
260
|
-
(0, parser_1.success)(`Successfully pulled ${chalk_1.default.bold(totalCollections)} collections from ${chalk_1.default.bold(totalDatabases)} databases.`);
|
|
261
|
-
return;
|
|
519
|
+
const pullInstance = await createPullInstance();
|
|
520
|
+
const { databases, collections } = await pullInstance.pullCollections();
|
|
521
|
+
for (const database of databases) {
|
|
522
|
+
localConfig.addDatabase(database);
|
|
262
523
|
}
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
if (parser_1.cliConfig.all) {
|
|
266
|
-
databases = (await (0, paginate_1.paginate)(databases_1.databasesList, { parseOutput: false }, 100, 'databases')).databases.map((database) => database.$id);
|
|
267
|
-
}
|
|
268
|
-
else {
|
|
269
|
-
databases = (await inquirer_1.default.prompt(questions_1.questionsPullCollection)).databases;
|
|
270
|
-
}
|
|
524
|
+
for (const collection of collections) {
|
|
525
|
+
localConfig.addCollection(collection);
|
|
271
526
|
}
|
|
272
|
-
for (const databaseId of databases) {
|
|
273
|
-
const database = await (0, databases_1.databasesGet)({
|
|
274
|
-
databaseId,
|
|
275
|
-
parseOutput: false
|
|
276
|
-
});
|
|
277
|
-
totalDatabases++;
|
|
278
|
-
(0, parser_1.log)(`Pulling all collections from ${chalk_1.default.bold(database['name'])} database ...`);
|
|
279
|
-
config_1.localConfig.addDatabase(database);
|
|
280
|
-
const { collections } = await (0, paginate_1.paginate)(databases_1.databasesListCollections, {
|
|
281
|
-
databaseId,
|
|
282
|
-
parseOutput: false
|
|
283
|
-
}, 100, 'collections');
|
|
284
|
-
for (const collection of collections) {
|
|
285
|
-
totalCollections++;
|
|
286
|
-
config_1.localConfig.addCollection({
|
|
287
|
-
...collection,
|
|
288
|
-
'$createdAt': undefined,
|
|
289
|
-
'$updatedAt': undefined
|
|
290
|
-
});
|
|
291
|
-
}
|
|
292
|
-
}
|
|
293
|
-
(0, parser_1.success)(`Successfully pulled ${chalk_1.default.bold(totalCollections)} collections from ${chalk_1.default.bold(totalDatabases)} databases.`);
|
|
294
527
|
};
|
|
295
528
|
const pullTable = async () => {
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
queries: [JSON.stringify({ method: 'limit', values: [1] })],
|
|
301
|
-
parseOutput: false
|
|
302
|
-
});
|
|
303
|
-
if (fetchResponse["databases"].length <= 0) {
|
|
304
|
-
(0, parser_1.log)("No tables found.");
|
|
305
|
-
(0, parser_1.success)(`Successfully pulled ${chalk_1.default.bold(totalTables)} tables from ${chalk_1.default.bold(totalTablesDBs)} tableDBs.`);
|
|
306
|
-
return;
|
|
529
|
+
const pullInstance = await createPullInstance();
|
|
530
|
+
const { databases, tables } = await pullInstance.pullTables();
|
|
531
|
+
for (const database of databases) {
|
|
532
|
+
localConfig.addTablesDB(database);
|
|
307
533
|
}
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
if (parser_1.cliConfig.all) {
|
|
311
|
-
databases = (await (0, paginate_1.paginate)(tables_db_1.tablesDBList, { parseOutput: false }, 100, 'databases')).databases.map((database) => database.$id);
|
|
312
|
-
}
|
|
313
|
-
else {
|
|
314
|
-
databases = (await inquirer_1.default.prompt(questions_1.questionsPullCollection)).databases;
|
|
315
|
-
}
|
|
534
|
+
for (const table of tables) {
|
|
535
|
+
localConfig.addTable(table);
|
|
316
536
|
}
|
|
317
|
-
for (const databaseId of databases) {
|
|
318
|
-
const database = await (0, tables_db_1.tablesDBGet)({
|
|
319
|
-
databaseId,
|
|
320
|
-
parseOutput: false
|
|
321
|
-
});
|
|
322
|
-
totalTablesDBs++;
|
|
323
|
-
(0, parser_1.log)(`Pulling all tables from ${chalk_1.default.bold(database['name'])} database ...`);
|
|
324
|
-
config_1.localConfig.addTablesDB(database);
|
|
325
|
-
const { tables } = await (0, paginate_1.paginate)(tables_db_1.tablesDBListTables, {
|
|
326
|
-
databaseId,
|
|
327
|
-
parseOutput: false
|
|
328
|
-
}, 100, 'tables');
|
|
329
|
-
for (const table of tables) {
|
|
330
|
-
totalTables++;
|
|
331
|
-
config_1.localConfig.addTable({
|
|
332
|
-
...table,
|
|
333
|
-
'$createdAt': undefined,
|
|
334
|
-
'$updatedAt': undefined
|
|
335
|
-
});
|
|
336
|
-
}
|
|
337
|
-
}
|
|
338
|
-
(0, parser_1.success)(`Successfully pulled ${chalk_1.default.bold(totalTables)} tables from ${chalk_1.default.bold(totalTablesDBs)} tableDBs.`);
|
|
339
537
|
};
|
|
340
538
|
const pullBucket = async () => {
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
const fetchResponse = await (0, storage_1.storageListBuckets)({
|
|
344
|
-
queries: [JSON.stringify({ method: 'limit', values: [1] })],
|
|
345
|
-
parseOutput: false
|
|
346
|
-
});
|
|
347
|
-
if (fetchResponse["buckets"].length <= 0) {
|
|
348
|
-
(0, parser_1.log)("No buckets found.");
|
|
349
|
-
(0, parser_1.success)(`Successfully pulled ${chalk_1.default.bold(total)} buckets.`);
|
|
350
|
-
return;
|
|
351
|
-
}
|
|
352
|
-
const { buckets } = await (0, paginate_1.paginate)(storage_1.storageListBuckets, { parseOutput: false }, 100, 'buckets');
|
|
539
|
+
const pullInstance = await createPullInstance();
|
|
540
|
+
const buckets = await pullInstance.pullBuckets();
|
|
353
541
|
for (const bucket of buckets) {
|
|
354
|
-
|
|
355
|
-
(0, parser_1.log)(`Pulling bucket ${chalk_1.default.bold(bucket['name'])} ...`);
|
|
356
|
-
config_1.localConfig.addBucket(bucket);
|
|
542
|
+
localConfig.addBucket(bucket);
|
|
357
543
|
}
|
|
358
|
-
(0, parser_1.success)(`Successfully pulled ${chalk_1.default.bold(total)} buckets.`);
|
|
359
544
|
};
|
|
360
545
|
const pullTeam = async () => {
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
const fetchResponse = await (0, teams_1.teamsList)({
|
|
364
|
-
queries: [JSON.stringify({ method: 'limit', values: [1] })],
|
|
365
|
-
parseOutput: false
|
|
366
|
-
});
|
|
367
|
-
if (fetchResponse["teams"].length <= 0) {
|
|
368
|
-
(0, parser_1.log)("No teams found.");
|
|
369
|
-
(0, parser_1.success)(`Successfully pulled ${chalk_1.default.bold(total)} teams.`);
|
|
370
|
-
return;
|
|
371
|
-
}
|
|
372
|
-
const { teams } = await (0, paginate_1.paginate)(teams_1.teamsList, { parseOutput: false }, 100, 'teams');
|
|
546
|
+
const pullInstance = await createPullInstance();
|
|
547
|
+
const teams = await pullInstance.pullTeams();
|
|
373
548
|
for (const team of teams) {
|
|
374
|
-
|
|
375
|
-
(0, parser_1.log)(`Pulling team ${chalk_1.default.bold(team['name'])} ...`);
|
|
376
|
-
config_1.localConfig.addTeam(team);
|
|
549
|
+
localConfig.addTeam(team);
|
|
377
550
|
}
|
|
378
|
-
(0, parser_1.success)(`Successfully pulled ${chalk_1.default.bold(total)} teams.`);
|
|
379
551
|
};
|
|
380
552
|
const pullMessagingTopic = async () => {
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
const fetchResponse = await (0, messaging_1.messagingListTopics)({
|
|
384
|
-
queries: [JSON.stringify({ method: 'limit', values: [1] })],
|
|
385
|
-
parseOutput: false
|
|
386
|
-
});
|
|
387
|
-
if (fetchResponse["topics"].length <= 0) {
|
|
388
|
-
(0, parser_1.log)("No topics found.");
|
|
389
|
-
(0, parser_1.success)(`Successfully pulled ${chalk_1.default.bold(total)} topics.`);
|
|
390
|
-
return;
|
|
391
|
-
}
|
|
392
|
-
const { topics } = await (0, paginate_1.paginate)(messaging_1.messagingListTopics, { parseOutput: false }, 100, 'topics');
|
|
553
|
+
const pullInstance = await createPullInstance();
|
|
554
|
+
const topics = await pullInstance.pullMessagingTopics();
|
|
393
555
|
for (const topic of topics) {
|
|
394
|
-
|
|
395
|
-
(0, parser_1.log)(`Pulling topic ${chalk_1.default.bold(topic['name'])} ...`);
|
|
396
|
-
config_1.localConfig.addMessagingTopic(topic);
|
|
556
|
+
localConfig.addMessagingTopic(topic);
|
|
397
557
|
}
|
|
398
|
-
(0, parser_1.success)(`Successfully pulled ${chalk_1.default.bold(total)} topics.`);
|
|
399
558
|
};
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
.
|
|
403
|
-
|
|
559
|
+
/** Commander.js exports */
|
|
560
|
+
export const pull = new Command("pull")
|
|
561
|
+
.description(commandDescriptions["pull"])
|
|
562
|
+
.action(actionRunner(() => pullResources({ skipDeprecated: true })));
|
|
563
|
+
pull
|
|
404
564
|
.command("all")
|
|
405
|
-
.description("Pull all
|
|
406
|
-
.action(
|
|
407
|
-
|
|
408
|
-
return
|
|
409
|
-
skipDeprecated: true
|
|
565
|
+
.description("Pull all resources")
|
|
566
|
+
.action(actionRunner(() => {
|
|
567
|
+
cliConfig.all = true;
|
|
568
|
+
return pullResources({
|
|
569
|
+
skipDeprecated: true,
|
|
410
570
|
});
|
|
411
571
|
}));
|
|
412
|
-
|
|
572
|
+
pull
|
|
413
573
|
.command("settings")
|
|
414
574
|
.description("Pull your Appwrite project name, services and auth settings")
|
|
415
|
-
.action(
|
|
416
|
-
|
|
575
|
+
.action(actionRunner(pullSettings));
|
|
576
|
+
pull
|
|
417
577
|
.command("function")
|
|
418
578
|
.alias("functions")
|
|
419
579
|
.description("Pull your Appwrite cloud function")
|
|
420
580
|
.option("--no-code", "Don't pull the function's code")
|
|
421
|
-
.option("--with-variables", `Pull function variables. ${
|
|
422
|
-
.action(
|
|
423
|
-
|
|
581
|
+
.option("--with-variables", `Pull function variables. ${chalk.red("recommend for testing purposes only")}`)
|
|
582
|
+
.action(actionRunner(pullFunctions));
|
|
583
|
+
pull
|
|
424
584
|
.command("site")
|
|
425
585
|
.alias("sites")
|
|
426
586
|
.description("Pull your Appwrite site")
|
|
427
587
|
.option("--no-code", "Don't pull the site's code")
|
|
428
|
-
.option("--with-variables", `Pull site variables. ${
|
|
429
|
-
.action(
|
|
430
|
-
|
|
588
|
+
.option("--with-variables", `Pull site variables. ${chalk.red("recommend for testing purposes only")}`)
|
|
589
|
+
.action(actionRunner(pullSites));
|
|
590
|
+
pull
|
|
431
591
|
.command("collection")
|
|
432
592
|
.alias("collections")
|
|
433
593
|
.description("Pull your Appwrite collections (deprecated, please use 'pull tables' instead)")
|
|
434
|
-
.action(
|
|
435
|
-
|
|
594
|
+
.action(actionRunner(pullCollection));
|
|
595
|
+
pull
|
|
436
596
|
.command("table")
|
|
437
597
|
.alias("tables")
|
|
438
598
|
.description("Pull your Appwrite tables")
|
|
439
|
-
.action(
|
|
440
|
-
|
|
599
|
+
.action(actionRunner(pullTable));
|
|
600
|
+
pull
|
|
441
601
|
.command("bucket")
|
|
442
602
|
.alias("buckets")
|
|
443
603
|
.description("Pull your Appwrite buckets")
|
|
444
|
-
.action(
|
|
445
|
-
|
|
604
|
+
.action(actionRunner(pullBucket));
|
|
605
|
+
pull
|
|
446
606
|
.command("team")
|
|
447
607
|
.alias("teams")
|
|
448
608
|
.description("Pull your Appwrite teams")
|
|
449
|
-
.action(
|
|
450
|
-
|
|
609
|
+
.action(actionRunner(pullTeam));
|
|
610
|
+
pull
|
|
451
611
|
.command("topic")
|
|
452
612
|
.alias("topics")
|
|
453
613
|
.description("Pull your Appwrite messaging topics")
|
|
454
|
-
.action(
|
|
614
|
+
.action(actionRunner(pullMessagingTopic));
|
|
455
615
|
//# sourceMappingURL=pull.js.map
|