appwrite-cli 17.0.0 → 17.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/workflows/ci.yml +1 -1
- package/.github/workflows/publish.yml +1 -1
- package/CHANGELOG.md +20 -0
- package/README.md +2 -2
- package/bun.lock +783 -0
- package/cli.ts +19 -1
- package/dist/bundle-win-arm64.mjs +1515 -744
- package/dist/cli.cjs +1515 -744
- package/dist/index.cjs +322 -118
- package/dist/index.js +322 -118
- package/dist/lib/client.d.ts +9 -0
- package/dist/lib/client.d.ts.map +1 -1
- package/dist/lib/commands/init.d.ts.map +1 -1
- package/dist/lib/commands/services/organizations.d.ts +3 -0
- package/dist/lib/commands/services/organizations.d.ts.map +1 -0
- package/dist/lib/commands/services/teams.d.ts.map +1 -1
- package/dist/lib/constants.d.ts +1 -1
- package/dist/lib/emulation/docker.d.ts.map +1 -1
- package/dist/lib/emulation/utils.d.ts.map +1 -1
- package/dist/lib/parser.d.ts.map +1 -1
- package/dist/lib/questions.d.ts.map +1 -1
- package/dist/lib/types.d.ts +3 -0
- package/dist/lib/types.d.ts.map +1 -1
- package/dist/lib/utils.d.ts +12 -0
- package/dist/lib/utils.d.ts.map +1 -1
- package/docs/examples/organizations/add-credit.md +5 -0
- package/docs/examples/organizations/cancel-downgrade.md +4 -0
- package/docs/examples/organizations/create-downgrade-feedback.md +8 -0
- package/docs/examples/organizations/create-invoice-payment.md +6 -0
- package/docs/examples/organizations/create-key.md +6 -0
- package/docs/examples/organizations/create.md +6 -0
- package/docs/examples/organizations/delete-backup-payment-method.md +4 -0
- package/docs/examples/organizations/delete-default-payment-method.md +4 -0
- package/docs/examples/organizations/delete-key.md +5 -0
- package/docs/examples/organizations/delete.md +4 -0
- package/docs/examples/organizations/estimation-create-organization.md +4 -0
- package/docs/examples/organizations/estimation-delete-organization.md +4 -0
- package/docs/examples/organizations/estimation-update-plan.md +5 -0
- package/docs/examples/organizations/get-aggregation.md +5 -0
- package/docs/examples/organizations/get-available-credits.md +4 -0
- package/docs/examples/organizations/get-credit.md +5 -0
- package/docs/examples/organizations/get-invoice-download.md +5 -0
- package/docs/examples/organizations/get-invoice-view.md +5 -0
- package/docs/examples/organizations/get-invoice.md +5 -0
- package/docs/examples/organizations/get-key.md +5 -0
- package/docs/examples/organizations/get-plan.md +4 -0
- package/docs/examples/organizations/get-scopes.md +4 -0
- package/docs/examples/organizations/get-usage.md +4 -0
- package/docs/examples/organizations/list-aggregations.md +4 -0
- package/docs/examples/organizations/list-credits.md +4 -0
- package/docs/examples/organizations/list-keys.md +4 -0
- package/docs/examples/organizations/list-regions.md +4 -0
- package/docs/examples/organizations/list.md +3 -0
- package/docs/examples/organizations/set-backup-payment-method.md +5 -0
- package/docs/examples/organizations/set-billing-address.md +5 -0
- package/docs/examples/organizations/set-billing-email.md +5 -0
- package/docs/examples/organizations/set-billing-tax-id.md +5 -0
- package/docs/examples/organizations/set-default-payment-method.md +5 -0
- package/docs/examples/organizations/update-budget.md +5 -0
- package/docs/examples/organizations/update-key.md +7 -0
- package/docs/examples/organizations/update-plan.md +5 -0
- package/docs/examples/organizations/validate-invoice.md +5 -0
- package/docs/examples/organizations/validate-payment.md +4 -0
- package/install.ps1 +2 -2
- package/install.sh +1 -1
- package/lib/client.ts +12 -0
- package/lib/commands/init.ts +109 -2
- package/lib/commands/services/account.ts +110 -55
- package/lib/commands/services/activities.ts +4 -2
- package/lib/commands/services/backups.ts +24 -12
- package/lib/commands/services/databases.ts +150 -75
- package/lib/commands/services/functions.ts +60 -30
- package/lib/commands/services/graphql.ts +4 -2
- package/lib/commands/services/health.ts +46 -23
- package/lib/commands/services/locale.ts +16 -8
- package/lib/commands/services/messaging.ts +96 -48
- package/lib/commands/services/migrations.ts +30 -16
- package/lib/commands/services/organizations.ts +555 -0
- package/lib/commands/services/project.ts +12 -6
- package/lib/commands/services/projects.ts +105 -53
- package/lib/commands/services/proxy.ts +18 -10
- package/lib/commands/services/sites.ts +58 -29
- package/lib/commands/services/storage.ts +30 -15
- package/lib/commands/services/tables-db.ts +148 -74
- package/lib/commands/services/teams.ts +38 -15
- package/lib/commands/services/tokens.ts +10 -5
- package/lib/commands/services/users.ts +88 -44
- package/lib/commands/services/vcs.ts +22 -12
- package/lib/commands/services/webhooks.ts +12 -6
- package/lib/constants.ts +1 -1
- package/lib/emulation/docker.ts +1 -0
- package/lib/emulation/utils.ts +3 -2
- package/lib/parser.ts +356 -77
- package/lib/questions.ts +8 -3
- package/lib/types.ts +3 -0
- package/lib/utils.ts +234 -0
- package/package.json +1 -1
- package/scoop/appwrite.config.json +3 -3
package/dist/lib/client.d.ts
CHANGED
|
@@ -81,6 +81,15 @@ declare class Client {
|
|
|
81
81
|
* @param {string} value
|
|
82
82
|
*/
|
|
83
83
|
addHeader(key: string, value: string): this;
|
|
84
|
+
/**
|
|
85
|
+
* Get Headers
|
|
86
|
+
*
|
|
87
|
+
* Returns a copy of the current request headers, including any
|
|
88
|
+
* authentication headers. Handle with care.
|
|
89
|
+
*
|
|
90
|
+
* @returns {Headers}
|
|
91
|
+
*/
|
|
92
|
+
getHeaders(): Headers;
|
|
84
93
|
call<T = unknown>(method: string, path?: string, headers?: Headers, params?: RequestParams, responseType?: ResponseType): Promise<T>;
|
|
85
94
|
static flatten(data: RequestParams, prefix?: string): Record<string, unknown>;
|
|
86
95
|
}
|
package/dist/lib/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../lib/client.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACV,OAAO,EACP,aAAa,EACb,YAAY,EAEb,MAAM,YAAY,CAAC;AAWpB,cAAM,MAAM;IACV,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,UAAU,CAAU;;IAgB5B;;;;;;;;OAQG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAK/B;;;;;;;;OAQG;IACH,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAKjC;;;;;;;;OAQG;IACH,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAKzB;;;;;;;;OAQG;IACH,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAKzB;;;;;;OAMG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAK/B;;;;;;OAMG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAK3B;;;;;;OAMG;IACH,aAAa,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAKpC;;;;;;OAMG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IASnC;;;OAGG;IACH,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../lib/client.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACV,OAAO,EACP,aAAa,EACb,YAAY,EAEb,MAAM,YAAY,CAAC;AAWpB,cAAM,MAAM;IACV,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,UAAU,CAAU;;IAgB5B;;;;;;;;OAQG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAK/B;;;;;;;;OAQG;IACH,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAKjC;;;;;;;;OAQG;IACH,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAKzB;;;;;;;;OAQG;IACH,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAKzB;;;;;;OAMG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAK/B;;;;;;OAMG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAK3B;;;;;;OAMG;IACH,aAAa,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAKpC;;;;;;OAMG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IASnC;;;OAGG;IACH,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAK3C;;;;;;;OAOG;IACH,UAAU,IAAI,OAAO;IAIf,IAAI,CAAC,CAAC,GAAG,OAAO,EACpB,MAAM,EAAE,MAAM,EACd,IAAI,GAAE,MAAW,EACjB,OAAO,GAAE,OAAY,EACrB,MAAM,GAAE,aAAkB,EAC1B,YAAY,GAAE,YAAqB,GAClC,OAAO,CAAC,CAAC,CAAC;IA8Hb,MAAM,CAAC,OAAO,CACZ,IAAI,EAAE,aAAa,EACnB,MAAM,GAAE,MAAW,GAClB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAmB3B;AAED,eAAe,MAAM,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../lib/commands/init.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../lib/commands/init.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA80BpC,eAAO,MAAM,IAAI,SAEqB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"organizations.d.ts","sourceRoot":"","sources":["../../../../lib/commands/services/organizations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAsBpC,eAAO,MAAM,aAAa,SAItB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"teams.d.ts","sourceRoot":"","sources":["../../../../lib/commands/services/teams.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"teams.d.ts","sourceRoot":"","sources":["../../../../lib/commands/services/teams.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA+BpC,eAAO,MAAM,KAAK,SAId,CAAC"}
|
package/dist/lib/constants.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export declare const SDK_TITLE = "Appwrite";
|
|
2
2
|
export declare const SDK_TITLE_LOWER = "appwrite";
|
|
3
|
-
export declare const SDK_VERSION = "17.
|
|
3
|
+
export declare const SDK_VERSION = "17.2.1";
|
|
4
4
|
export declare const SDK_NAME = "Command Line";
|
|
5
5
|
export declare const SDK_PLATFORM = "console";
|
|
6
6
|
export declare const SDK_LANGUAGE = "cli";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"docker.d.ts","sourceRoot":"","sources":["../../../lib/emulation/docker.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE1D,wBAAsB,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAY1D;AAED,wBAAsB,UAAU,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAmBlE;AAED,wBAAsB,WAAW,CAC/B,IAAI,EAAE,YAAY,EAClB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAChC,OAAO,CAAC,IAAI,CAAC,CA+If;AAED,wBAAsB,WAAW,CAC/B,IAAI,EAAE,YAAY,EAClB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACjC,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"docker.d.ts","sourceRoot":"","sources":["../../../lib/emulation/docker.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE1D,wBAAsB,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAY1D;AAED,wBAAsB,UAAU,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAmBlE;AAED,wBAAsB,WAAW,CAC/B,IAAI,EAAE,YAAY,EAClB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAChC,OAAO,CAAC,IAAI,CAAC,CA+If;AAED,wBAAsB,WAAW,CAC/B,IAAI,EAAE,YAAY,EAClB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACjC,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,IAAI,CAAC,CAiEf;AAED,wBAAsB,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAqBrE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../lib/emulation/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAI3C,OAAO,EAAY,MAAM,EAAS,MAAM,sBAAsB,CAAC;AAE/D,eAAO,MAAM,mBAAmB,OAAO,CAAC;AAExC,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAc/C,CAAC;AAEF,UAAU,UAAU;IAClB,UAAU,EAAE,OAAO,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAkElD,CAAC;AAEF,eAAO,MAAM,UAAU;aACJ,MAAM,GAAG,IAAI;iBACT,MAAM,GAAG,IAAI;eAEf,MAAM,CAAC,OAAO,GAAG,IAAI;gBACpB,MAAM,CAAC,OAAO,GAAG,IAAI;mBAG/B,MAAM,GAAG,IAAI,kBACN,MAAM,EAAE,GACtB,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../lib/emulation/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAI3C,OAAO,EAAY,MAAM,EAAS,MAAM,sBAAsB,CAAC;AAE/D,eAAO,MAAM,mBAAmB,OAAO,CAAC;AAExC,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAc/C,CAAC;AAEF,UAAU,UAAU;IAClB,UAAU,EAAE,OAAO,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAkElD,CAAC;AAEF,eAAO,MAAM,UAAU;aACJ,MAAM,GAAG,IAAI;iBACT,MAAM,GAAG,IAAI;eAEf,MAAM,CAAC,OAAO,GAAG,IAAI;gBACpB,MAAM,CAAC,OAAO,GAAG,IAAI;mBAG/B,MAAM,GAAG,IAAI,kBACN,MAAM,EAAE,GACtB,OAAO,CAAC,IAAI,CAAC;CAmDjB,CAAC;AAMF,eAAO,MAAM,KAAK;WACH,MAAM,EAAE;;;cAGH,MAAM,CAAC,OAAO,GAAG,IAAI;eAE5B,MAAM,GAAG,IAAI;YAUhB,IAAI;eAKD,OAAO;cAIR,IAAI;gBAOF,IAAI;CAUjB,CAAC"}
|
package/dist/lib/parser.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../lib/parser.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../lib/parser.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAQ5C,QAAA,MAAM,SAAS,EAAE,SAWhB,CAAC;AAEF,KAAK,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAsM1C,eAAO,MAAM,KAAK,GAAI,MAAM,UAAU,KAAG,IA+DxC,CAAC;AAuBF,eAAO,MAAM,SAAS,GAAI,MAAM,KAAK,CAAC,UAAU,GAAG,IAAI,GAAG,SAAS,CAAC,KAAG,IA6GtE,CAAC;AAEF,eAAO,MAAM,QAAQ,GAAI,MAAM,OAAO,KAAG,IAExC,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,KAAK,KAAK,KAAG,IA4DvC,CAAC;AAEF,eAAO,MAAM,YAAY,GACvB,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC,OAAO,CAAC,EAElD,IAAI,CAAC,KACJ,CAAC,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAc5C,CAAC;AAEF,eAAO,MAAM,YAAY,GAAI,OAAO,MAAM,KAAG,MAM5C,CAAC;AAEF,eAAO,MAAM,SAAS,GAAI,OAAO,MAAM,KAAG,OAIzC,CAAC;AAEF,eAAO,MAAM,GAAG,GAAI,UAAU,MAAM,KAAG,IAEtC,CAAC;AAEF,eAAO,MAAM,IAAI,GAAI,UAAU,MAAM,KAAG,IAIvC,CAAC;AAEF,eAAO,MAAM,IAAI,GAAI,UAAU,MAAM,KAAG,IAEvC,CAAC;AAEF,eAAO,MAAM,OAAO,GAAI,UAAU,MAAM,KAAG,IAI1C,CAAC;AAEF,eAAO,MAAM,KAAK,GAAI,UAAU,MAAM,KAAG,IAExC,CAAC;AAEF,eAAO,MAAM,IAAI,wXAAW,CAAC;AAE7B,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAgCtD,CAAC;AAEF,OAAO,EAAE,SAAS,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"questions.d.ts","sourceRoot":"","sources":["../../lib/questions.ts"],"names":[],"mappings":"AAiBA,UAAU,OAAO;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,UAAU,MAAM;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,GAAG,CAAC;IACX,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC5B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,QAAQ;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,OAAO,CAAC;IACpE,OAAO,CAAC,EACJ,CAAC,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,GACpD,CAAC,MAAM,OAAO,CAAC,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,GACpC,MAAM,EAAE,GACR,MAAM,EAAE,CAAC;IACb,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC;IACxE,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AA8GD,eAAO,MAAM,oBAAoB,EAAE,QAAQ,
|
|
1
|
+
{"version":3,"file":"questions.d.ts","sourceRoot":"","sources":["../../lib/questions.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/types.d.ts
CHANGED
|
@@ -41,11 +41,14 @@ export interface CommandDescription {
|
|
|
41
41
|
export interface CliConfig {
|
|
42
42
|
verbose: boolean;
|
|
43
43
|
json: boolean;
|
|
44
|
+
raw: boolean;
|
|
45
|
+
showSecrets: boolean;
|
|
44
46
|
force: boolean;
|
|
45
47
|
all: boolean;
|
|
46
48
|
ids: string[];
|
|
47
49
|
report: boolean;
|
|
48
50
|
reportData: Record<string, unknown>;
|
|
51
|
+
displayFields: string[];
|
|
49
52
|
}
|
|
50
53
|
export interface SessionData {
|
|
51
54
|
endpoint: string;
|
package/dist/lib/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../lib/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEtD,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,aAAa,CAAC;AAElD,MAAM,WAAW,OAAO;IACtB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,aAAa;IAC5B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,IAAI,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,cAAc,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,UAAU;IACzB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,MAAM;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,UAAU;IACzB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,kBAAkB;IACjC,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,OAAO,CAAC;IACf,GAAG,EAAE,OAAO,CAAC;IACb,GAAG,EAAE,MAAM,EAAE,CAAC;IACd,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../lib/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEtD,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,aAAa,CAAC;AAElD,MAAM,WAAW,OAAO;IACtB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,aAAa;IAC5B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,IAAI,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,cAAc,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,UAAU;IACzB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,MAAM;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,UAAU;IACzB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,kBAAkB;IACjC,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,OAAO,CAAC;IACd,GAAG,EAAE,OAAO,CAAC;IACb,WAAW,EAAE,OAAO,CAAC;IACrB,KAAK,EAAE,OAAO,CAAC;IACf,GAAG,EAAE,OAAO,CAAC;IACb,GAAG,EAAE,MAAM,EAAE,CAAC;IACd,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,aAAa,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,gBAAiB,SAAQ,UAAU;IAClD,QAAQ,EAAE;QACR,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAAC;KAC5B,CAAC;IACF,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB"}
|
package/dist/lib/utils.d.ts
CHANGED
|
@@ -19,6 +19,18 @@ type DeployLocalConfig = {
|
|
|
19
19
|
};
|
|
20
20
|
export declare const checkDeployConditions: (localConfig: DeployLocalConfig) => void;
|
|
21
21
|
export declare function isCloud(): boolean;
|
|
22
|
+
export interface SkillInfo {
|
|
23
|
+
name: string;
|
|
24
|
+
description: string;
|
|
25
|
+
dirName: string;
|
|
26
|
+
}
|
|
27
|
+
export declare function hasSkillsInstalled(configDirectoryPath: string): boolean;
|
|
28
|
+
export declare function fetchAvailableSkills(): {
|
|
29
|
+
skills: SkillInfo[];
|
|
30
|
+
tempDir: string;
|
|
31
|
+
};
|
|
32
|
+
export declare function detectProjectSkills(cwd: string, skills: SkillInfo[]): SkillInfo[];
|
|
33
|
+
export declare function placeSkills(cwd: string, tempDir: string, selectedDirNames: string[], selectedAgents: string[], useSymlinks: boolean): void;
|
|
22
34
|
export declare function arrayEqualsUnordered(left: unknown, right: unknown): boolean;
|
|
23
35
|
/**
|
|
24
36
|
* Filters an object to only include fields defined in a Zod object schema.
|
package/dist/lib/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../lib/utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../lib/utils.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAGzD,eAAO,MAAM,oBAAoB,GAAI,SAAS,MAAM,CAAC,OAAO,KAAG,YAsC9D,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,OAAO,OAAO,KAAG,MAMhD,CAAC;AAEF;;GAEG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC,CAWxD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAavE;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAiBpD;AAED,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAmBhE;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAqBzD;AAED,KAAK,iBAAiB,GAAG;IACvB,IAAI,EAAE,MAAM,MAAM,EAAE,CAAC;CACtB,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAAI,aAAa,iBAAiB,KAAG,IAMtE,CAAC;AAEF,wBAAgB,OAAO,IAAI,OAAO,CAIjC;AAwBD,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB;AAkBD,wBAAgB,kBAAkB,CAAC,mBAAmB,EAAE,MAAM,GAAG,OAAO,CAWvE;AAED,wBAAgB,oBAAoB,IAAI;IACtC,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB,CAgEA;AAED,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,SAAS,EAAE,GAClB,SAAS,EAAE,CA6Bb;AAED,wBAAgB,WAAW,CACzB,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,EACf,gBAAgB,EAAE,MAAM,EAAE,EAC1B,cAAc,EAAE,MAAM,EAAE,EACxB,WAAW,EAAE,OAAO,GACnB,IAAI,CAiEN;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAa3E;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,EACjE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,MAAM,EAAE,CAAC,GACR,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAWZ"}
|
package/install.ps1
CHANGED
|
@@ -13,8 +13,8 @@
|
|
|
13
13
|
# You can use "View source" of this page to see the full script.
|
|
14
14
|
|
|
15
15
|
# REPO
|
|
16
|
-
$GITHUB_x64_URL = "https://github.com/appwrite/sdk-for-cli/releases/download/17.
|
|
17
|
-
$GITHUB_arm64_URL = "https://github.com/appwrite/sdk-for-cli/releases/download/17.
|
|
16
|
+
$GITHUB_x64_URL = "https://github.com/appwrite/sdk-for-cli/releases/download/17.2.1/appwrite-cli-win-x64.exe"
|
|
17
|
+
$GITHUB_arm64_URL = "https://github.com/appwrite/sdk-for-cli/releases/download/17.2.1/appwrite-cli-win-arm64.exe"
|
|
18
18
|
|
|
19
19
|
$APPWRITE_BINARY_NAME = "appwrite.exe"
|
|
20
20
|
|
package/install.sh
CHANGED
|
@@ -96,7 +96,7 @@ printSuccess() {
|
|
|
96
96
|
downloadBinary() {
|
|
97
97
|
echo "[2/4] Downloading executable for $OS ($ARCH) ..."
|
|
98
98
|
|
|
99
|
-
GITHUB_LATEST_VERSION="17.
|
|
99
|
+
GITHUB_LATEST_VERSION="17.2.1"
|
|
100
100
|
GITHUB_FILE="appwrite-cli-${OS}-${ARCH}"
|
|
101
101
|
GITHUB_URL="https://github.com/$GITHUB_REPOSITORY_NAME/releases/download/$GITHUB_LATEST_VERSION/$GITHUB_FILE"
|
|
102
102
|
|
package/lib/client.ts
CHANGED
|
@@ -156,6 +156,18 @@ class Client {
|
|
|
156
156
|
return this;
|
|
157
157
|
}
|
|
158
158
|
|
|
159
|
+
/**
|
|
160
|
+
* Get Headers
|
|
161
|
+
*
|
|
162
|
+
* Returns a copy of the current request headers, including any
|
|
163
|
+
* authentication headers. Handle with care.
|
|
164
|
+
*
|
|
165
|
+
* @returns {Headers}
|
|
166
|
+
*/
|
|
167
|
+
getHeaders(): Headers {
|
|
168
|
+
return { ...this.headers };
|
|
169
|
+
}
|
|
170
|
+
|
|
159
171
|
async call<T = unknown>(
|
|
160
172
|
method: string,
|
|
161
173
|
path: string = "",
|
package/lib/commands/init.ts
CHANGED
|
@@ -30,7 +30,13 @@ import {
|
|
|
30
30
|
commandDescriptions,
|
|
31
31
|
} from "../parser.js";
|
|
32
32
|
import { sdkForConsole } from "../sdks.js";
|
|
33
|
-
import {
|
|
33
|
+
import {
|
|
34
|
+
isCloud,
|
|
35
|
+
hasSkillsInstalled,
|
|
36
|
+
fetchAvailableSkills,
|
|
37
|
+
detectProjectSkills,
|
|
38
|
+
placeSkills,
|
|
39
|
+
} from "../utils.js";
|
|
34
40
|
import { Account, UseCases, AppwriteException } from "@appwrite.io/console";
|
|
35
41
|
import { DEFAULT_ENDPOINT, EXECUTABLE_NAME } from "../constants.js";
|
|
36
42
|
|
|
@@ -84,6 +90,7 @@ const initResources = async (): Promise<void> => {
|
|
|
84
90
|
const actions: Record<string, InitResourceAction> = {
|
|
85
91
|
function: initFunction,
|
|
86
92
|
site: initSite,
|
|
93
|
+
skill: initSkill,
|
|
87
94
|
table: initTable,
|
|
88
95
|
bucket: initBucket,
|
|
89
96
|
team: initTeam,
|
|
@@ -132,7 +139,8 @@ const initProject = async ({
|
|
|
132
139
|
if (!organizationId && !projectId && !projectName) {
|
|
133
140
|
answers = await inquirer.prompt(questionsInitProject);
|
|
134
141
|
if (answers.override === false) {
|
|
135
|
-
|
|
142
|
+
log("No changes made. Existing project configuration was kept.");
|
|
143
|
+
return;
|
|
136
144
|
}
|
|
137
145
|
} else {
|
|
138
146
|
const selectedOrganization =
|
|
@@ -252,6 +260,30 @@ const initProject = async ({
|
|
|
252
260
|
hint(
|
|
253
261
|
`Next you can use '${EXECUTABLE_NAME} init' to create resources in your project, or use '${EXECUTABLE_NAME} pull' and '${EXECUTABLE_NAME} push' to synchronize your project.`,
|
|
254
262
|
);
|
|
263
|
+
|
|
264
|
+
if (!hasSkillsInstalled(localConfig.configDirectoryPath)) {
|
|
265
|
+
try {
|
|
266
|
+
const skillsCwd = localConfig.configDirectoryPath;
|
|
267
|
+
log("Setting up Appwrite agent skills ...");
|
|
268
|
+
const { skills, tempDir } = fetchAvailableSkills();
|
|
269
|
+
try {
|
|
270
|
+
const detected = detectProjectSkills(skillsCwd, skills);
|
|
271
|
+
if (detected.length > 0) {
|
|
272
|
+
const names = detected.map((s) => s.dirName);
|
|
273
|
+
placeSkills(skillsCwd, tempDir, names, [".agents", ".claude"], true);
|
|
274
|
+
success(
|
|
275
|
+
`Installed ${names.length} agent skill${names.length === 1 ? "" : "s"} based on your project: ${detected.map((s) => s.name).join(", ")}`,
|
|
276
|
+
);
|
|
277
|
+
}
|
|
278
|
+
} finally {
|
|
279
|
+
fs.rmSync(tempDir, { recursive: true, force: true });
|
|
280
|
+
}
|
|
281
|
+
} catch (e) {
|
|
282
|
+
const msg = e instanceof Error ? e.message : String(e);
|
|
283
|
+
error(`Failed to install agent skills: ${msg}`);
|
|
284
|
+
hint(`You can install them later with '${EXECUTABLE_NAME} init skill'.`);
|
|
285
|
+
}
|
|
286
|
+
}
|
|
255
287
|
};
|
|
256
288
|
|
|
257
289
|
const initBucket = async (): Promise<void> => {
|
|
@@ -368,6 +400,75 @@ const initTopic = async (): Promise<void> => {
|
|
|
368
400
|
);
|
|
369
401
|
};
|
|
370
402
|
|
|
403
|
+
const initSkill = async (): Promise<void> => {
|
|
404
|
+
process.chdir(localConfig.configDirectoryPath);
|
|
405
|
+
const cwd = process.cwd();
|
|
406
|
+
|
|
407
|
+
log("Fetching available Appwrite agent skills ...");
|
|
408
|
+
const { skills, tempDir } = fetchAvailableSkills();
|
|
409
|
+
|
|
410
|
+
try {
|
|
411
|
+
const { selectedSkills } = await inquirer.prompt([
|
|
412
|
+
{
|
|
413
|
+
type: "checkbox",
|
|
414
|
+
name: "selectedSkills",
|
|
415
|
+
message: "Which skills would you like to install?",
|
|
416
|
+
choices: skills.map((skill) => ({
|
|
417
|
+
name: skill.name,
|
|
418
|
+
value: skill.dirName,
|
|
419
|
+
checked: false,
|
|
420
|
+
})),
|
|
421
|
+
validate: (value: string[]) =>
|
|
422
|
+
value.length > 0 || "Please select at least one skill.",
|
|
423
|
+
},
|
|
424
|
+
]);
|
|
425
|
+
|
|
426
|
+
const { selectedAgents } = await inquirer.prompt([
|
|
427
|
+
{
|
|
428
|
+
type: "checkbox",
|
|
429
|
+
name: "selectedAgents",
|
|
430
|
+
message: "Which agent directories would you like to install to?",
|
|
431
|
+
choices: [
|
|
432
|
+
{ name: ".agents", value: ".agents", checked: true },
|
|
433
|
+
{ name: ".claude", value: ".claude", checked: false },
|
|
434
|
+
],
|
|
435
|
+
validate: (value: string[]) =>
|
|
436
|
+
value.length > 0 || "Please select at least one agent directory.",
|
|
437
|
+
},
|
|
438
|
+
]);
|
|
439
|
+
|
|
440
|
+
const { installMethod } = await inquirer.prompt([
|
|
441
|
+
{
|
|
442
|
+
type: "list",
|
|
443
|
+
name: "installMethod",
|
|
444
|
+
message: "How would you like to install the skills?",
|
|
445
|
+
choices: [
|
|
446
|
+
{
|
|
447
|
+
name: "Symlink (recommended) — single source of truth, easy to update",
|
|
448
|
+
value: "symlink",
|
|
449
|
+
},
|
|
450
|
+
{
|
|
451
|
+
name: "Copy — independent copies in each agent directory",
|
|
452
|
+
value: "copy",
|
|
453
|
+
},
|
|
454
|
+
],
|
|
455
|
+
},
|
|
456
|
+
]);
|
|
457
|
+
|
|
458
|
+
const useSymlinks = installMethod === "symlink";
|
|
459
|
+
placeSkills(cwd, tempDir, selectedSkills, selectedAgents, useSymlinks);
|
|
460
|
+
|
|
461
|
+
success(
|
|
462
|
+
`${selectedSkills.length} skill${selectedSkills.length === 1 ? "" : "s"} installed successfully.`,
|
|
463
|
+
);
|
|
464
|
+
hint(
|
|
465
|
+
`Agent skills are automatically discovered by AI coding agents like Claude Code, Cursor, and GitHub Copilot.`,
|
|
466
|
+
);
|
|
467
|
+
} finally {
|
|
468
|
+
fs.rmSync(tempDir, { recursive: true, force: true });
|
|
469
|
+
}
|
|
470
|
+
};
|
|
471
|
+
|
|
371
472
|
const initFunction = async (): Promise<void> => {
|
|
372
473
|
process.chdir(localConfig.configDirectoryPath);
|
|
373
474
|
|
|
@@ -770,6 +871,12 @@ init
|
|
|
770
871
|
.description("Init a new Appwrite site")
|
|
771
872
|
.action(actionRunner(initSite));
|
|
772
873
|
|
|
874
|
+
init
|
|
875
|
+
.command("skill")
|
|
876
|
+
.alias("skills")
|
|
877
|
+
.description("Install Appwrite agent skills for AI coding agents")
|
|
878
|
+
.action(actionRunner(initSkill));
|
|
879
|
+
|
|
773
880
|
init
|
|
774
881
|
.command("bucket")
|
|
775
882
|
.alias("buckets")
|