appwrite-cli 22.3.0 → 22.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -4
- package/dist/cli.cjs +76 -138
- package/dist/index.cjs +66 -27
- package/dist/index.js +66 -27
- package/dist/lib/auth/session.d.ts.map +1 -1
- package/dist/lib/commands/generic.d.ts.map +1 -1
- package/dist/lib/commands/utils/deployment.d.ts.map +1 -1
- package/dist/lib/constants.d.ts +2 -2
- package/dist/lib/constants.d.ts.map +1 -1
- package/dist/lib/parser.d.ts.map +1 -1
- package/dist/lib/utils.d.ts.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -29,7 +29,7 @@ Once the installation is complete, you can verify the install using
|
|
|
29
29
|
|
|
30
30
|
```sh
|
|
31
31
|
$ appwrite -v
|
|
32
|
-
22.
|
|
32
|
+
22.4.0
|
|
33
33
|
```
|
|
34
34
|
|
|
35
35
|
### Install using prebuilt binaries
|
|
@@ -83,7 +83,7 @@ $ scoop install https://raw.githubusercontent.com/appwrite/sdk-for-cli/master/sc
|
|
|
83
83
|
Once the installation completes, you can verify your install using
|
|
84
84
|
```
|
|
85
85
|
$ appwrite -v
|
|
86
|
-
22.
|
|
86
|
+
22.4.0
|
|
87
87
|
```
|
|
88
88
|
|
|
89
89
|
## Getting Started
|
|
@@ -97,7 +97,7 @@ $ appwrite login
|
|
|
97
97
|
? Enter your password ********
|
|
98
98
|
✓ Success
|
|
99
99
|
```
|
|
100
|
-
This will also prompt you to enter your Appwrite endpoint ( default: http://localhost/v1 )
|
|
100
|
+
This will also prompt you to enter your Appwrite endpoint ( default: http://localhost:9520/v1 )
|
|
101
101
|
|
|
102
102
|
* ### Initialising your project
|
|
103
103
|
Once logged in, the CLI needs to be initialised before you can use it with your Appwrite project. You can do this with the `appwrite init project` command.
|
|
@@ -227,7 +227,7 @@ $ appwrite client --reset
|
|
|
227
227
|
The Appwrite CLI can also work in a CI environment. The initialisation of the CLI works a bit differently in CI. In CI, you set your `endpoint`, `projectId` and `API Key` using
|
|
228
228
|
|
|
229
229
|
```sh
|
|
230
|
-
appwrite client --endpoint http://localhost/v1 --projectId <PROJECT_ID> --key <API KEY>
|
|
230
|
+
appwrite client --endpoint http://localhost:9520/v1 --projectId <PROJECT_ID> --key <API KEY>
|
|
231
231
|
```
|
|
232
232
|
|
|
233
233
|
|
package/dist/cli.cjs
CHANGED
|
@@ -86539,7 +86539,7 @@ var package_default = {
|
|
|
86539
86539
|
type: "module",
|
|
86540
86540
|
homepage: "https://appwrite.io/support",
|
|
86541
86541
|
description: "Appwrite is an open-source self-hosted backend server that abstracts and simplifies complex and repetitive development tasks behind a very simple REST API",
|
|
86542
|
-
version: "22.
|
|
86542
|
+
version: "22.4.0",
|
|
86543
86543
|
license: "BSD-3-Clause",
|
|
86544
86544
|
main: "dist/index.cjs",
|
|
86545
86545
|
module: "dist/index.js",
|
|
@@ -101271,7 +101271,7 @@ var validateCrossDatabase = (data, ctx) => {
|
|
|
101271
101271
|
// lib/constants.ts
|
|
101272
101272
|
var SDK_TITLE = "Appwrite";
|
|
101273
101273
|
var SDK_TITLE_LOWER = "appwrite";
|
|
101274
|
-
var SDK_VERSION = "22.
|
|
101274
|
+
var SDK_VERSION = "22.4.0";
|
|
101275
101275
|
var SDK_NAME = "Command Line";
|
|
101276
101276
|
var SDK_PLATFORM = "console";
|
|
101277
101277
|
var SDK_LANGUAGE = "cli";
|
|
@@ -101286,7 +101286,7 @@ var GITHUB_REPO = "appwrite/sdk-for-cli";
|
|
|
101286
101286
|
var GITHUB_RELEASES_URL = `https://github.com/${GITHUB_REPO}/releases`;
|
|
101287
101287
|
var DEFAULT_ENDPOINT = "https://cloud.appwrite.io/v1";
|
|
101288
101288
|
var OAUTH2_CLIENT_ID = "appwrite-cli";
|
|
101289
|
-
var OAUTH2_SCOPES = "openid email profile
|
|
101289
|
+
var OAUTH2_SCOPES = "openid email profile all";
|
|
101290
101290
|
var CONFIG_RESOURCE_KEYS = [
|
|
101291
101291
|
"databases",
|
|
101292
101292
|
"functions",
|
|
@@ -131693,7 +131693,15 @@ var siteRequiresBuildCommand = (site) => {
|
|
|
131693
131693
|
};
|
|
131694
131694
|
var getErrorMessage = (error52) => {
|
|
131695
131695
|
if (error52 instanceof Error) {
|
|
131696
|
-
|
|
131696
|
+
const message = typeof error52.message === "string" ? error52.message.trim() : "";
|
|
131697
|
+
if (message) {
|
|
131698
|
+
return message;
|
|
131699
|
+
}
|
|
131700
|
+
const response = error52.response;
|
|
131701
|
+
if (typeof response === "string" && response.trim() !== "") {
|
|
131702
|
+
return response.trim();
|
|
131703
|
+
}
|
|
131704
|
+
return "An unknown error occurred.";
|
|
131697
131705
|
}
|
|
131698
131706
|
return String(error52);
|
|
131699
131707
|
};
|
|
@@ -132218,7 +132226,7 @@ function isCloud() {
|
|
|
132218
132226
|
const hostname3 = new URL(endpoint).hostname;
|
|
132219
132227
|
return hostname3.endsWith("appwrite.io");
|
|
132220
132228
|
}
|
|
132221
|
-
var SKILLS_REPO = "https://github.com/appwrite/
|
|
132229
|
+
var SKILLS_REPO = "https://github.com/appwrite/skills";
|
|
132222
132230
|
var LANGUAGE_MARKERS = {
|
|
132223
132231
|
typescript: [
|
|
132224
132232
|
"package.json",
|
|
@@ -134510,26 +134518,51 @@ var printQueryErrorHint = (err) => {
|
|
|
134510
134518
|
);
|
|
134511
134519
|
};
|
|
134512
134520
|
var ERROR_DETAIL_KEYS = ["code", "type", "response"];
|
|
134521
|
+
var ERROR_DETAIL_INDENT = " ";
|
|
134522
|
+
var ERROR_DETAIL_LABEL_WIDTH = Math.max(...ERROR_DETAIL_KEYS.map((key) => key.length)) + 2;
|
|
134523
|
+
var formatErrorDetail = (value) => {
|
|
134524
|
+
if (typeof value === "string") {
|
|
134525
|
+
const text = value;
|
|
134526
|
+
try {
|
|
134527
|
+
const parsed = JSON.parse(text);
|
|
134528
|
+
if (parsed && typeof parsed === "object") {
|
|
134529
|
+
value = parsed;
|
|
134530
|
+
}
|
|
134531
|
+
} catch {
|
|
134532
|
+
return text;
|
|
134533
|
+
}
|
|
134534
|
+
}
|
|
134535
|
+
try {
|
|
134536
|
+
const json2 = JSON.stringify(value, null, 2) ?? String(value);
|
|
134537
|
+
return json2.split("\n").map((line, index) => index === 0 ? line : ERROR_DETAIL_INDENT + line).join("\n");
|
|
134538
|
+
} catch {
|
|
134539
|
+
return String(value);
|
|
134540
|
+
}
|
|
134541
|
+
};
|
|
134513
134542
|
var formatErrorForLog = (err) => {
|
|
134514
|
-
const
|
|
134515
|
-
|
|
134543
|
+
const lines = [
|
|
134544
|
+
`${import_chalk2.default.red.bold(err.name || "Error")}${import_chalk2.default.red(`: ${getErrorMessage(err)}`)}`
|
|
134545
|
+
];
|
|
134546
|
+
for (const key of ERROR_DETAIL_KEYS) {
|
|
134516
134547
|
if (!Object.prototype.hasOwnProperty.call(err, key)) {
|
|
134517
|
-
|
|
134548
|
+
continue;
|
|
134518
134549
|
}
|
|
134519
134550
|
const value = err[key];
|
|
134520
|
-
|
|
134521
|
-
|
|
134522
|
-
|
|
134523
|
-
|
|
134524
|
-
|
|
134525
|
-
|
|
134526
|
-
|
|
134527
|
-
|
|
134528
|
-
|
|
134529
|
-
|
|
134551
|
+
lines.push(
|
|
134552
|
+
`${ERROR_DETAIL_INDENT}${import_chalk2.default.cyan(`${key}:`.padEnd(ERROR_DETAIL_LABEL_WIDTH))}${formatErrorDetail(value)}`
|
|
134553
|
+
);
|
|
134554
|
+
}
|
|
134555
|
+
const frames = (err.stack ?? "").split("\n").filter((line) => line.trim().startsWith("at "));
|
|
134556
|
+
if (frames.length > 0) {
|
|
134557
|
+
lines.push(
|
|
134558
|
+
"",
|
|
134559
|
+
import_chalk2.default.dim(`${ERROR_DETAIL_INDENT}Stack trace:`),
|
|
134560
|
+
...frames.map(
|
|
134561
|
+
(frame) => import_chalk2.default.dim(`${ERROR_DETAIL_INDENT.repeat(2)}${frame.trim()}`)
|
|
134562
|
+
)
|
|
134563
|
+
);
|
|
134530
134564
|
}
|
|
134531
|
-
|
|
134532
|
-
return [summary, ...detailLines, ...frames].join("\n");
|
|
134565
|
+
return lines.join("\n");
|
|
134533
134566
|
};
|
|
134534
134567
|
var parseError = (err) => {
|
|
134535
134568
|
if (cliConfig.report) {
|
|
@@ -134560,7 +134593,7 @@ Is Cloud: ${isCloud()}`;
|
|
|
134560
134593
|
githubIssueUrl.searchParams.append("template", "bug.yaml");
|
|
134561
134594
|
githubIssueUrl.searchParams.append(
|
|
134562
134595
|
"title",
|
|
134563
|
-
`\u{1F41B} Bug Report: ${err
|
|
134596
|
+
`\u{1F41B} Bug Report: ${getErrorMessage(err)}`
|
|
134564
134597
|
);
|
|
134565
134598
|
githubIssueUrl.searchParams.append(
|
|
134566
134599
|
"actual-behavior",
|
|
@@ -134590,7 +134623,7 @@ ${stack}`
|
|
|
134590
134623
|
printQueryErrorHint(err);
|
|
134591
134624
|
} else {
|
|
134592
134625
|
log("For detailed error pass the --verbose or --report flag");
|
|
134593
|
-
error51(err
|
|
134626
|
+
error51(getErrorMessage(err));
|
|
134594
134627
|
printQueryErrorHint(err);
|
|
134595
134628
|
}
|
|
134596
134629
|
process.exit(1);
|
|
@@ -134659,7 +134692,7 @@ var commandDescriptions = {
|
|
|
134659
134692
|
avatars: `The avatars command aims to help you complete everyday tasks related to your app image, icons, and avatars.`,
|
|
134660
134693
|
databases: `(Legacy) The databases command allows you to create structured collections of documents and query and filter lists of documents.`,
|
|
134661
134694
|
"tables-db": `The tables-db command allows you to create structured tables of columns and query and filter lists of rows.`,
|
|
134662
|
-
init: `The init command provides a convenient wrapper for creating and initializing projects, functions, collections, buckets, teams, messaging-topics, and
|
|
134695
|
+
init: `The init command provides a convenient wrapper for creating and initializing projects, functions, collections, buckets, teams, messaging-topics, and skills in ${SDK_TITLE}.`,
|
|
134663
134696
|
push: `The push command provides a convenient wrapper for pushing your functions, collections, buckets, teams, and messaging-topics.`,
|
|
134664
134697
|
run: `The run command allows you to run the project locally to allow easy development and quick debugging.`,
|
|
134665
134698
|
functions: `The functions command allows you to view, create, and manage your Cloud Functions.`,
|
|
@@ -137015,7 +137048,7 @@ var deleteServerSession = async (sessionId) => {
|
|
|
137015
137048
|
} catch (e) {
|
|
137016
137049
|
return {
|
|
137017
137050
|
deleted: false,
|
|
137018
|
-
error:
|
|
137051
|
+
error: getErrorMessage(e)
|
|
137019
137052
|
};
|
|
137020
137053
|
}
|
|
137021
137054
|
};
|
|
@@ -137565,10 +137598,8 @@ var logout = new Command("logout").description(commandDescriptions["logout"]).co
|
|
|
137565
137598
|
} else if (remainingSessions.length > 0) {
|
|
137566
137599
|
const nextSession = remainingSessions.find((session) => session.email) ?? remainingSessions[0];
|
|
137567
137600
|
globalConfig2.setCurrentSession(nextSession.id);
|
|
137568
|
-
if (!logoutFailed) {
|
|
137569
|
-
success2(
|
|
137570
|
-
nextSession.email ? `Switched to ${nextSession.email}` : `Switched to session at ${nextSession.endpoint}`
|
|
137571
|
-
);
|
|
137601
|
+
if (!logoutFailed && nextSession.email) {
|
|
137602
|
+
success2(`Switched to ${nextSession.email}`);
|
|
137572
137603
|
}
|
|
137573
137604
|
} else if (remainingSessions.length === 0) {
|
|
137574
137605
|
globalConfig2.setCurrentSession("");
|
|
@@ -141206,7 +141237,7 @@ async function downloadDeploymentCode(params) {
|
|
|
141206
141237
|
}
|
|
141207
141238
|
} catch (e) {
|
|
141208
141239
|
if (e instanceof AppwriteException) {
|
|
141209
|
-
error51(e
|
|
141240
|
+
error51(getErrorMessage(e));
|
|
141210
141241
|
return;
|
|
141211
141242
|
} else {
|
|
141212
141243
|
throw e;
|
|
@@ -142353,7 +142384,7 @@ var installInitProjectSkills = async () => {
|
|
|
142353
142384
|
}
|
|
142354
142385
|
} catch (e) {
|
|
142355
142386
|
const msg = e instanceof Error ? e.message : String(e);
|
|
142356
|
-
error51(`Failed to install
|
|
142387
|
+
error51(`Failed to install skills: ${msg}`);
|
|
142357
142388
|
hint(`You can install them later with '${EXECUTABLE_NAME} init skill'.`);
|
|
142358
142389
|
}
|
|
142359
142390
|
};
|
|
@@ -142615,7 +142646,7 @@ var initTopic = async () => {
|
|
|
142615
142646
|
var initSkill = async () => {
|
|
142616
142647
|
process.chdir(localConfig.configDirectoryPath);
|
|
142617
142648
|
const cwd = process.cwd();
|
|
142618
|
-
log("Fetching available Appwrite
|
|
142649
|
+
log("Fetching available Appwrite skills ...");
|
|
142619
142650
|
const { skills, tempDir } = fetchAvailableSkills();
|
|
142620
142651
|
try {
|
|
142621
142652
|
const { selectedSkills } = await import_inquirer5.default.prompt([
|
|
@@ -143030,7 +143061,7 @@ var init = new Command("init").description(commandDescriptions["init"]).action(a
|
|
|
143030
143061
|
init.command("project").description("Init a new Appwrite project").option("--organization-id <organization-id>", "Appwrite organization ID").option("--project-id <project-id>", "Appwrite project ID").option("--project-name <project-name>", "Appwrite project ID").action(actionRunner(initProject));
|
|
143031
143062
|
init.command("function").alias("functions").description("Init a new Appwrite function").action(actionRunner(initFunction));
|
|
143032
143063
|
init.command("site").alias("sites").description("Init a new Appwrite site").action(actionRunner(initSite));
|
|
143033
|
-
init.command("skill").alias("skills").description("Install Appwrite
|
|
143064
|
+
init.command("skill").alias("skills").description("Install Appwrite skills for AI coding agents").action(actionRunner(initSkill));
|
|
143034
143065
|
init.command("bucket").alias("buckets").description("Init a new Appwrite bucket").action(actionRunner(initBucket));
|
|
143035
143066
|
init.command("team").alias("teams").description("Init a new Appwrite team").action(actionRunner(initTeam));
|
|
143036
143067
|
init.command("collection").alias("collections").description("Init a new Appwrite collection").action(actionRunner(initCollection));
|
|
@@ -151206,7 +151237,7 @@ var accountListKeysCommand = account.command(`list-keys`).description(`Get a lis
|
|
|
151206
151237
|
async ({ total }) => parse3(await (await getAccountClient()).listKeys(total))
|
|
151207
151238
|
)
|
|
151208
151239
|
);
|
|
151209
|
-
var accountCreateKeyCommand = account.command(`create-key`).description(`Create a new account API key.`).requiredOption(`--name <name>`, `Key name. Max length: 128 chars.`).requiredOption(`--scopes [scopes...]`, `Key scopes list. Maximum of
|
|
151240
|
+
var accountCreateKeyCommand = account.command(`create-key`).description(`Create a new account API key.`).requiredOption(`--name <name>`, `Key name. Max length: 128 chars.`).requiredOption(`--scopes [scopes...]`, `Key scopes list. Maximum of 200 scopes are allowed.`).option(`--expire <expire>`, `Expiration time in ISO 8601 (https://www.iso.org/iso-8601-date-and-time-format.html) format. Use null for unlimited expiration.`).action(
|
|
151210
151241
|
actionRunner(
|
|
151211
151242
|
async ({ name, scopes, expire }) => parse3(await (await getAccountClient()).createKey(name, scopes, expire))
|
|
151212
151243
|
)
|
|
@@ -151216,7 +151247,7 @@ var accountGetKeyCommand = account.command(`get-key`).description(`Get a key by
|
|
|
151216
151247
|
async ({ keyId }) => parse3(await (await getAccountClient()).getKey(keyId))
|
|
151217
151248
|
)
|
|
151218
151249
|
);
|
|
151219
|
-
var accountUpdateKeyCommand = account.command(`update-key`).description(`Update a key by its unique ID. Use this endpoint to update the name, scopes, or expiration time of an API key.`).requiredOption(`--key-id <key-id>`, `Key unique ID.`).requiredOption(`--name <name>`, `Key name. Max length: 128 chars.`).requiredOption(`--scopes [scopes...]`, `Key scopes list. Maximum of
|
|
151250
|
+
var accountUpdateKeyCommand = account.command(`update-key`).description(`Update a key by its unique ID. Use this endpoint to update the name, scopes, or expiration time of an API key.`).requiredOption(`--key-id <key-id>`, `Key unique ID.`).requiredOption(`--name <name>`, `Key name. Max length: 128 chars.`).requiredOption(`--scopes [scopes...]`, `Key scopes list. Maximum of 200 scopes are allowed.`).option(`--expire <expire>`, `Expiration time in ISO 8601 (https://www.iso.org/iso-8601-date-and-time-format.html) format. Use null for unlimited expiration.`).action(
|
|
151220
151251
|
actionRunner(
|
|
151221
151252
|
async ({ keyId, name, scopes, expire }) => parse3(await (await getAccountClient()).updateKey(keyId, name, scopes, expire))
|
|
151222
151253
|
)
|
|
@@ -151226,15 +151257,6 @@ var accountDeleteKeyCommand = account.command(`delete-key`).description(`Delete
|
|
|
151226
151257
|
async ({ keyId }) => parse3(await (await getAccountClient()).deleteKey(keyId))
|
|
151227
151258
|
)
|
|
151228
151259
|
);
|
|
151229
|
-
var accountListLogsCommand = account.command(`list-logs`).description(`Get the list of latest security activity logs for the currently logged in user. Each log returns user IP address, location and date and time of log.`).option(`--queries [queries...]`, `Raw Appwrite JSON query strings (legacy). Use this for advanced queries or automation; for common pagination prefer --limit and --offset. When mixed, raw --queries are sent before generated flag queries. Array of query strings generated using the Query class provided by the SDK. Learn more about queries (https://appwrite.io/docs/queries). Only supported methods are limit and offset`).option(
|
|
151230
|
-
`--total [value]`,
|
|
151231
|
-
`When set to false, the total count returned will be 0 and will not be calculated.`,
|
|
151232
|
-
(value) => value === void 0 ? true : parseBool(value)
|
|
151233
|
-
).option(`--limit <limit>`, `Maximum number of results to return.`, parseInteger).option(`--offset <offset>`, `Number of results to skip.`, parseInteger).action(
|
|
151234
|
-
actionRunner(
|
|
151235
|
-
async ({ queries, total, limit, offset }) => parse3(await (await getAccountClient()).listLogs(buildQueries({ queries, limit, offset }), total))
|
|
151236
|
-
)
|
|
151237
|
-
);
|
|
151238
151260
|
var accountUpdateMFACommand = account.command(`update-mfa`).description(`Enable or disable MFA on an account.`).requiredOption(`--mfa <mfa>`, `Enable or disable MFA.`, parseBool).action(
|
|
151239
151261
|
actionRunner(
|
|
151240
151262
|
async ({ mfa }) => parse3(await (await getAccountClient()).updateMFA(mfa))
|
|
@@ -152099,11 +152121,6 @@ var databasesDeleteDocumentCommand = databases.command(`delete-document`).descri
|
|
|
152099
152121
|
async ({ databaseId, collectionId, documentId, transactionId }) => parse3(await (await getDatabasesClient()).deleteDocument(databaseId, collectionId, documentId, transactionId))
|
|
152100
152122
|
)
|
|
152101
152123
|
);
|
|
152102
|
-
var databasesListDocumentLogsCommand = databases.command(`list-document-logs`).description(`Get the document activity logs list by its unique ID.`).requiredOption(`--database-id <database-id>`, `Database ID.`).requiredOption(`--collection-id <collection-id>`, `Collection ID.`).requiredOption(`--document-id <document-id>`, `Document ID.`).option(`--queries [queries...]`, `Raw Appwrite JSON query strings (legacy). Use this for advanced queries or automation; for common pagination prefer --limit and --offset. When mixed, raw --queries are sent before generated flag queries. Array of query strings generated using the Query class provided by the SDK. Learn more about queries (https://appwrite.io/docs/queries). Only supported methods are limit and offset`).option(`--limit <limit>`, `Maximum number of results to return.`, parseInteger).option(`--offset <offset>`, `Number of results to skip.`, parseInteger).action(
|
|
152103
|
-
actionRunner(
|
|
152104
|
-
async ({ databaseId, collectionId, documentId, queries, limit, offset }) => parse3(await (await getDatabasesClient()).listDocumentLogs(databaseId, collectionId, documentId, buildQueries({ queries, limit, offset })))
|
|
152105
|
-
)
|
|
152106
|
-
);
|
|
152107
152124
|
var databasesDecrementDocumentAttributeCommand = databases.command(`decrement-document-attribute`).description(`Decrement a specific attribute of a document by a given value.`).requiredOption(`--database-id <database-id>`, `Database ID.`).requiredOption(`--collection-id <collection-id>`, `Collection ID.`).requiredOption(`--document-id <document-id>`, `Document ID.`).requiredOption(`--attribute <attribute>`, `Attribute key.`).option(`--value <value>`, `Value to increment the attribute by. The value must be a number.`, parseInteger).option(`--min <min>`, `Minimum value for the attribute. If the current value is lesser than this value, an exception will be thrown.`, parseInteger).option(`--transaction-id <transaction-id>`, `Transaction ID for staging the operation.`).action(
|
|
152108
152125
|
actionRunner(
|
|
152109
152126
|
async ({ databaseId, collectionId, documentId, attribute, value, min, transactionId }) => parse3(await (await getDatabasesClient()).decrementDocumentAttribute(databaseId, collectionId, documentId, attribute, value, min, transactionId))
|
|
@@ -152139,21 +152156,11 @@ var databasesDeleteIndexCommand = databases.command(`delete-index`).description(
|
|
|
152139
152156
|
async ({ databaseId, collectionId, key }) => parse3(await (await getDatabasesClient()).deleteIndex(databaseId, collectionId, key))
|
|
152140
152157
|
)
|
|
152141
152158
|
);
|
|
152142
|
-
var databasesListCollectionLogsCommand = databases.command(`list-collection-logs`).description(`Get the collection activity logs list by its unique ID.`).requiredOption(`--database-id <database-id>`, `Database ID.`).requiredOption(`--collection-id <collection-id>`, `Collection ID.`).option(`--queries [queries...]`, `Raw Appwrite JSON query strings (legacy). Use this for advanced queries or automation; for common pagination prefer --limit and --offset. When mixed, raw --queries are sent before generated flag queries. Array of query strings generated using the Query class provided by the SDK. Learn more about queries (https://appwrite.io/docs/queries). Only supported methods are limit and offset`).option(`--limit <limit>`, `Maximum number of results to return.`, parseInteger).option(`--offset <offset>`, `Number of results to skip.`, parseInteger).action(
|
|
152143
|
-
actionRunner(
|
|
152144
|
-
async ({ databaseId, collectionId, queries, limit, offset }) => parse3(await (await getDatabasesClient()).listCollectionLogs(databaseId, collectionId, buildQueries({ queries, limit, offset })))
|
|
152145
|
-
)
|
|
152146
|
-
);
|
|
152147
152159
|
var databasesGetCollectionUsageCommand = databases.command(`get-collection-usage`).description(`Get usage metrics and statistics for a collection. Returning the total number of documents. The response includes both current totals and historical data over time. Use the optional range parameter to specify the time window for historical data: 24h (last 24 hours), 30d (last 30 days), or 90d (last 90 days). If not specified, range defaults to 30 days.`).requiredOption(`--database-id <database-id>`, `Database ID.`).requiredOption(`--collection-id <collection-id>`, `Collection ID.`).option(`--range <range>`, `Date range.`).action(
|
|
152148
152160
|
actionRunner(
|
|
152149
152161
|
async ({ databaseId, collectionId, range }) => parse3(await (await getDatabasesClient()).getCollectionUsage(databaseId, collectionId, range))
|
|
152150
152162
|
)
|
|
152151
152163
|
);
|
|
152152
|
-
var databasesListLogsCommand = databases.command(`list-logs`).description(`Get the database activity logs list by its unique ID.`).requiredOption(`--database-id <database-id>`, `Database ID.`).option(`--queries [queries...]`, `Raw Appwrite JSON query strings (legacy). Use this for advanced queries or automation; for common pagination prefer --limit and --offset. When mixed, raw --queries are sent before generated flag queries. Array of query strings generated using the Query class provided by the SDK. Learn more about queries (https://appwrite.io/docs/queries). Only supported methods are limit and offset`).option(`--limit <limit>`, `Maximum number of results to return.`, parseInteger).option(`--offset <offset>`, `Number of results to skip.`, parseInteger).action(
|
|
152153
|
-
actionRunner(
|
|
152154
|
-
async ({ databaseId, queries, limit, offset }) => parse3(await (await getDatabasesClient()).listLogs(databaseId, buildQueries({ queries, limit, offset })))
|
|
152155
|
-
)
|
|
152156
|
-
);
|
|
152157
152164
|
var databasesGetUsageCommand = databases.command(`get-usage`).description(`Get usage metrics and statistics for a database. You can view the total number of collections, documents, and storage usage. The response includes both current totals and historical data over time. Use the optional range parameter to specify the time window for historical data: 24h (last 24 hours), 30d (last 30 days), or 90d (last 90 days). If not specified, range defaults to 30 days.`).requiredOption(`--database-id <database-id>`, `Database ID.`).option(`--range <range>`, `Date range.`).action(
|
|
152158
152165
|
actionRunner(
|
|
152159
152166
|
async ({ databaseId, range }) => parse3(await (await getDatabasesClient()).getUsage(databaseId, range))
|
|
@@ -152190,7 +152197,7 @@ var functionsCreateCommand = functions.command(`create`).description(`Create a n
|
|
|
152190
152197
|
`--logging [value]`,
|
|
152191
152198
|
`When disabled, executions will exclude logs and errors, and will be slightly faster.`,
|
|
152192
152199
|
(value) => value === void 0 ? true : parseBool(value)
|
|
152193
|
-
).option(`--entrypoint <entrypoint>`, `Entrypoint File. This path is relative to the "providerRootDirectory".`).option(`--commands <commands>`, `Build Commands.`).option(`--scopes [scopes...]`, `List of scopes allowed for API key auto-generated for every execution. Maximum of
|
|
152200
|
+
).option(`--entrypoint <entrypoint>`, `Entrypoint File. This path is relative to the "providerRootDirectory".`).option(`--commands <commands>`, `Build Commands.`).option(`--scopes [scopes...]`, `List of scopes allowed for API key auto-generated for every execution. Maximum of 200 scopes are allowed.`).option(`--installation-id <installation-id>`, `Appwrite Installation ID for VCS (Version Control System) deployment.`).option(`--provider-repository-id <provider-repository-id>`, `Repository ID of the repo linked to the function.`).option(`--provider-branch <provider-branch>`, `Production branch for the repo linked to the function.`).option(
|
|
152194
152201
|
`--provider-silent-mode [value]`,
|
|
152195
152202
|
`Is the VCS (Version Control System) connection in silent mode for the repo linked to the function? In silent mode, comments will not be made on commits and pull requests.`,
|
|
152196
152203
|
(value) => value === void 0 ? true : parseBool(value)
|
|
@@ -152241,7 +152248,7 @@ var functionsUpdateCommand = functions.command(`update`).description(`Update fun
|
|
|
152241
152248
|
`--logging [value]`,
|
|
152242
152249
|
`When disabled, executions will exclude logs and errors, and will be slightly faster.`,
|
|
152243
152250
|
(value) => value === void 0 ? true : parseBool(value)
|
|
152244
|
-
).option(`--entrypoint <entrypoint>`, `Entrypoint File. This path is relative to the "providerRootDirectory".`).option(`--commands <commands>`, `Build Commands.`).option(`--scopes [scopes...]`, `List of scopes allowed for API Key auto-generated for every execution. Maximum of
|
|
152251
|
+
).option(`--entrypoint <entrypoint>`, `Entrypoint File. This path is relative to the "providerRootDirectory".`).option(`--commands <commands>`, `Build Commands.`).option(`--scopes [scopes...]`, `List of scopes allowed for API Key auto-generated for every execution. Maximum of 200 scopes are allowed.`).option(`--installation-id <installation-id>`, `Appwrite Installation ID for VCS (Version Controle System) deployment.`).option(`--provider-repository-id <provider-repository-id>`, `Repository ID of the repo linked to the function`).option(`--provider-branch <provider-branch>`, `Production branch for the repo linked to the function`).option(
|
|
152245
152252
|
`--provider-silent-mode [value]`,
|
|
152246
152253
|
`Is the VCS (Version Control System) connection in silent mode for the repo linked to the function? In silent mode, comments will not be made on commits and pull requests.`,
|
|
152247
152254
|
(value) => value === void 0 ? true : parseBool(value)
|
|
@@ -152726,15 +152733,6 @@ var messagingDeleteCommand = messaging.command(`delete`).description(`Delete a m
|
|
|
152726
152733
|
async ({ messageId }) => parse3(await (await getMessagingClient()).delete(messageId))
|
|
152727
152734
|
)
|
|
152728
152735
|
);
|
|
152729
|
-
var messagingListMessageLogsCommand = messaging.command(`list-message-logs`).description(`Get the message activity logs listed by its unique ID.`).requiredOption(`--message-id <message-id>`, `Message ID.`).option(`--queries [queries...]`, `Raw Appwrite JSON query strings (legacy). Use this for advanced queries or automation; for common pagination prefer --limit and --offset. When mixed, raw --queries are sent before generated flag queries. Array of query strings generated using the Query class provided by the SDK. Learn more about queries (https://appwrite.io/docs/queries). Only supported methods are limit and offset`).option(
|
|
152730
|
-
`--total [value]`,
|
|
152731
|
-
`When set to false, the total count returned will be 0 and will not be calculated.`,
|
|
152732
|
-
(value) => value === void 0 ? true : parseBool(value)
|
|
152733
|
-
).option(`--limit <limit>`, `Maximum number of results to return.`, parseInteger).option(`--offset <offset>`, `Number of results to skip.`, parseInteger).action(
|
|
152734
|
-
actionRunner(
|
|
152735
|
-
async ({ messageId, queries, total, limit, offset }) => parse3(await (await getMessagingClient()).listMessageLogs(messageId, buildQueries({ queries, limit, offset }), total))
|
|
152736
|
-
)
|
|
152737
|
-
);
|
|
152738
152736
|
var messagingListTargetsCommand = messaging.command(`list-targets`).description(`Get a list of the targets associated with a message.`).requiredOption(`--message-id <message-id>`, `Message ID.`).option(`--queries [queries...]`, `Raw Appwrite JSON query strings (legacy). Use this for advanced queries or automation; for common filtering, sorting, and pagination prefer --filter, --sort-asc, --sort-desc, --limit, and --offset. When mixed, raw --queries are sent before generated flag queries. Array of query strings generated using the Query class provided by the SDK. Learn more about queries (https://appwrite.io/docs/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: userId, providerId, identifier, providerType`).option(
|
|
152739
152737
|
`--total [value]`,
|
|
152740
152738
|
`When set to false, the total count returned will be 0 and will not be calculated.`,
|
|
@@ -153004,24 +153002,6 @@ var messagingDeleteProviderCommand = messaging.command(`delete-provider`).descri
|
|
|
153004
153002
|
async ({ providerId }) => parse3(await (await getMessagingClient()).deleteProvider(providerId))
|
|
153005
153003
|
)
|
|
153006
153004
|
);
|
|
153007
|
-
var messagingListProviderLogsCommand = messaging.command(`list-provider-logs`).description(`Get the provider activity logs listed by its unique ID.`).requiredOption(`--provider-id <provider-id>`, `Provider ID.`).option(`--queries [queries...]`, `Raw Appwrite JSON query strings (legacy). Use this for advanced queries or automation; for common pagination prefer --limit and --offset. When mixed, raw --queries are sent before generated flag queries. Array of query strings generated using the Query class provided by the SDK. Learn more about queries (https://appwrite.io/docs/queries). Only supported methods are limit and offset`).option(
|
|
153008
|
-
`--total [value]`,
|
|
153009
|
-
`When set to false, the total count returned will be 0 and will not be calculated.`,
|
|
153010
|
-
(value) => value === void 0 ? true : parseBool(value)
|
|
153011
|
-
).option(`--limit <limit>`, `Maximum number of results to return.`, parseInteger).option(`--offset <offset>`, `Number of results to skip.`, parseInteger).action(
|
|
153012
|
-
actionRunner(
|
|
153013
|
-
async ({ providerId, queries, total, limit, offset }) => parse3(await (await getMessagingClient()).listProviderLogs(providerId, buildQueries({ queries, limit, offset }), total))
|
|
153014
|
-
)
|
|
153015
|
-
);
|
|
153016
|
-
var messagingListSubscriberLogsCommand = messaging.command(`list-subscriber-logs`).description(`Get the subscriber activity logs listed by its unique ID.`).requiredOption(`--subscriber-id <subscriber-id>`, `Subscriber ID.`).option(`--queries [queries...]`, `Raw Appwrite JSON query strings (legacy). Use this for advanced queries or automation; for common pagination prefer --limit and --offset. When mixed, raw --queries are sent before generated flag queries. Array of query strings generated using the Query class provided by the SDK. Learn more about queries (https://appwrite.io/docs/queries). Only supported methods are limit and offset`).option(
|
|
153017
|
-
`--total [value]`,
|
|
153018
|
-
`When set to false, the total count returned will be 0 and will not be calculated.`,
|
|
153019
|
-
(value) => value === void 0 ? true : parseBool(value)
|
|
153020
|
-
).option(`--limit <limit>`, `Maximum number of results to return.`, parseInteger).option(`--offset <offset>`, `Number of results to skip.`, parseInteger).action(
|
|
153021
|
-
actionRunner(
|
|
153022
|
-
async ({ subscriberId, queries, total, limit, offset }) => parse3(await (await getMessagingClient()).listSubscriberLogs(subscriberId, buildQueries({ queries, limit, offset }), total))
|
|
153023
|
-
)
|
|
153024
|
-
);
|
|
153025
153005
|
var messagingListTopicsCommand = messaging.command(`list-topics`).description(`Get a list of all topics from the current Appwrite project.`).option(`--queries [queries...]`, `Raw Appwrite JSON query strings (legacy). Use this for advanced queries or automation; for common filtering, sorting, and pagination prefer --filter, --sort-asc, --sort-desc, --limit, and --offset. When mixed, raw --queries are sent before generated flag queries. Array of query strings generated using the Query class provided by the SDK. Learn more about queries (https://appwrite.io/docs/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name, description, emailTotal, smsTotal, pushTotal`).option(`--search <search>`, `Search term to filter your list results. Max length: 256 chars.`).option(
|
|
153026
153006
|
`--total [value]`,
|
|
153027
153007
|
`When set to false, the total count returned will be 0 and will not be calculated.`,
|
|
@@ -153053,15 +153033,6 @@ var messagingDeleteTopicCommand = messaging.command(`delete-topic`).description(
|
|
|
153053
153033
|
async ({ topicId }) => parse3(await (await getMessagingClient()).deleteTopic(topicId))
|
|
153054
153034
|
)
|
|
153055
153035
|
);
|
|
153056
|
-
var messagingListTopicLogsCommand = messaging.command(`list-topic-logs`).description(`Get the topic activity logs listed by its unique ID.`).requiredOption(`--topic-id <topic-id>`, `Topic ID.`).option(`--queries [queries...]`, `Raw Appwrite JSON query strings (legacy). Use this for advanced queries or automation; for common pagination prefer --limit and --offset. When mixed, raw --queries are sent before generated flag queries. Array of query strings generated using the Query class provided by the SDK. Learn more about queries (https://appwrite.io/docs/queries). Only supported methods are limit and offset`).option(
|
|
153057
|
-
`--total [value]`,
|
|
153058
|
-
`When set to false, the total count returned will be 0 and will not be calculated.`,
|
|
153059
|
-
(value) => value === void 0 ? true : parseBool(value)
|
|
153060
|
-
).option(`--limit <limit>`, `Maximum number of results to return.`, parseInteger).option(`--offset <offset>`, `Number of results to skip.`, parseInteger).action(
|
|
153061
|
-
actionRunner(
|
|
153062
|
-
async ({ topicId, queries, total, limit, offset }) => parse3(await (await getMessagingClient()).listTopicLogs(topicId, buildQueries({ queries, limit, offset }), total))
|
|
153063
|
-
)
|
|
153064
|
-
);
|
|
153065
153036
|
var messagingListSubscribersCommand = messaging.command(`list-subscribers`).description(`Get a list of all subscribers from the current Appwrite project.`).requiredOption(`--topic-id <topic-id>`, `Topic ID. The topic ID subscribed to.`).option(`--queries [queries...]`, `Raw Appwrite JSON query strings (legacy). Use this for advanced queries or automation; for common filtering, sorting, and pagination prefer --filter, --sort-asc, --sort-desc, --limit, and --offset. When mixed, raw --queries are sent before generated flag queries. Array of query strings generated using the Query class provided by the SDK. Learn more about queries (https://appwrite.io/docs/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: targetId, topicId, userId, providerType`).option(`--search <search>`, `Search term to filter your list results. Max length: 256 chars.`).option(
|
|
153066
153037
|
`--total [value]`,
|
|
153067
153038
|
`When set to false, the total count returned will be 0 and will not be calculated.`,
|
|
@@ -153219,12 +153190,7 @@ var getOauth2Client = async () => {
|
|
|
153219
153190
|
var oauth2 = new Command("oauth-2").description(commandDescriptions["oauth2"] ?? "").configureHelp({
|
|
153220
153191
|
helpWidth: process.stdout.columns || 80
|
|
153221
153192
|
});
|
|
153222
|
-
var
|
|
153223
|
-
actionRunner(
|
|
153224
|
-
async ({ grant_id, authorization_details }) => parse3(await (await getOauth2Client()).approve(grant_id, authorization_details))
|
|
153225
|
-
)
|
|
153226
|
-
);
|
|
153227
|
-
var oauth2AuthorizeCommand = oauth2.command(`authorize`).description(`Begin the OAuth2 authorization flow. When called without a session, the user is redirected to the consent screen without grant ID. When called with a session, the redirect URL includes param for grant ID. You can pass Accept header of \`application/json\` to receive a JSON response instead of a redirect.`).requiredOption(`--client-_id <client-_id>`, `OAuth2 client ID.`).requiredOption(`--redirect-_uri <redirect-_uri>`, `Redirect URI where visitor will be redirected after authorization, whether successful or not.`).requiredOption(`--response-_type <response-_type>`, `OAuth2 / OIDC response type. One of \`code\` (Authorization Code Flow), \`id_token\` (Implicit Flow, OIDC login only), or \`code id_token\` (Hybrid Flow).`).requiredOption(`--scope <scope>`, `Space-separated OAuth2 scopes. Can include project scopes, and built-in scopes: \`openid\`, \`email\`, \`profile\`.`).option(`--state <state>`, `OAuth2 state. You receive this back in the redirect URI.`).option(`--nonce <nonce>`, `OIDC nonce parameter to prevent replay attacks. Required when response_type includes \`id_token\`.`).option(`--code-_challenge <code-_challenge>`, `PKCE code challenge. Required when OAuth2 app is public.`).option(`--code-_challenge-_method <code-_challenge-_method>`, `PKCE code challenge method. Required when OAuth2 app is public.`).option(`--prompt <prompt>`, `OIDC prompt parameter for customization of consent screen. Space-separated list of: none, login, consent, select_account.`).option(`--max-_age <max-_age>`, `OIDC max_age paraleter for customization of consent screen. Maximum allowable elapsed time in seconds since the user last authenticated. If exceeded, re-authentication is required.`, parseInteger).option(`--authorization-_details <authorization-_details>`, `Rich authorization request. JSON array of objects, each with a \`type\` and project-defined fields`).option(`--resource <resource>`, `RFC 8707 resource indicator URI or URI list. Each value must be an absolute URI without a fragment.`).action(
|
|
153193
|
+
var oauth2AuthorizeCommand = oauth2.command(`authorize`).description(`Begin the OAuth2 authorization flow. When called without a session, the user is redirected to the consent screen without grant ID. When called with a session, the redirect URL includes param for grant ID. You can pass Accept header of \`application/json\` to receive a JSON response instead of a redirect.`).requiredOption(`--client-_id <client-_id>`, `OAuth2 client ID.`).requiredOption(`--redirect-_uri <redirect-_uri>`, `Redirect URI where visitor will be redirected after authorization, whether successful or not.`).requiredOption(`--response-_type <response-_type>`, `OAuth2 / OIDC response type. One of \`code\` (Authorization Code Flow), \`id_token\` (Implicit Flow, OIDC login only), or \`code id_token\` (Hybrid Flow).`).option(`--scope <scope>`, `Space-separated OAuth2 scopes. Can include project scopes, and built-in scopes: \`openid\`, \`email\`, \`profile\`, \`phone\`.`).option(`--state <state>`, `OAuth2 state. You receive this back in the redirect URI.`).option(`--nonce <nonce>`, `OIDC nonce parameter to prevent replay attacks. Required when response_type includes \`id_token\`.`).option(`--code-_challenge <code-_challenge>`, `PKCE code challenge. Required when OAuth2 app is public.`).option(`--code-_challenge-_method <code-_challenge-_method>`, `PKCE code challenge method. Required when OAuth2 app is public.`).option(`--prompt <prompt>`, `OIDC prompt parameter for customization of consent screen. Space-separated list of: none, login, consent, select_account.`).option(`--max-_age <max-_age>`, `OIDC max_age paraleter for customization of consent screen. Maximum allowable elapsed time in seconds since the user last authenticated. If exceeded, re-authentication is required.`, parseInteger).option(`--authorization-_details <authorization-_details>`, `Rich authorization request. JSON array of objects, each with a \`type\` and project-defined fields`).option(`--resource <resource>`, `RFC 8707 resource indicator URI or URI list. Each value must be an absolute URI without a fragment.`).action(
|
|
153228
153194
|
actionRunner(
|
|
153229
153195
|
async ({ client_id, redirect_uri, response_type, scope, state, nonce, code_challenge, code_challenge_method, prompt, max_age, authorization_details, resource }) => parse3(await (await getOauth2Client()).authorize(client_id, redirect_uri, response_type, scope, state, nonce, code_challenge, code_challenge_method, prompt, max_age, authorization_details, resource))
|
|
153230
153196
|
)
|
|
@@ -153286,7 +153252,7 @@ var organizationListKeysCommand = organization.command(`list-keys`).description(
|
|
|
153286
153252
|
async ({ queries, total, filter, where, sortAsc, sortDesc, cursorAfter, cursorBefore, limit, offset }) => parse3(await (await getOrganizationClient()).listKeys(buildQueries({ queries, filter, where, sortAsc, sortDesc, cursorAfter, cursorBefore, limit, offset }), total))
|
|
153287
153253
|
)
|
|
153288
153254
|
);
|
|
153289
|
-
var organizationCreateKeyCommand = organization.command(`create-key`).description(`Create a new organization API key.`).requiredOption(`--key-id <key-id>`, `Key ID. Choose a custom ID or generate a random ID with \`ID.unique()\`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.`).requiredOption(`--name <name>`, `Key name. Max length: 128 chars.`).requiredOption(`--scopes [scopes...]`, `Key scopes list. Maximum of
|
|
153255
|
+
var organizationCreateKeyCommand = organization.command(`create-key`).description(`Create a new organization API key.`).requiredOption(`--key-id <key-id>`, `Key ID. Choose a custom ID or generate a random ID with \`ID.unique()\`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.`).requiredOption(`--name <name>`, `Key name. Max length: 128 chars.`).requiredOption(`--scopes [scopes...]`, `Key scopes list. Maximum of 200 scopes are allowed.`).option(`--expire <expire>`, `Expiration time in ISO 8601 (https://www.iso.org/iso-8601-date-and-time-format.html) format. Use null for unlimited expiration.`).action(
|
|
153290
153256
|
actionRunner(
|
|
153291
153257
|
async ({ keyId, name, scopes, expire }) => parse3(await (await getOrganizationClient()).createKey(keyId, name, scopes, expire))
|
|
153292
153258
|
)
|
|
@@ -153296,7 +153262,7 @@ var organizationGetKeyCommand = organization.command(`get-key`).description(`Get
|
|
|
153296
153262
|
async ({ keyId }) => parse3(await (await getOrganizationClient()).getKey(keyId))
|
|
153297
153263
|
)
|
|
153298
153264
|
);
|
|
153299
|
-
var organizationUpdateKeyCommand = organization.command(`update-key`).description(`Update a key by its unique ID. Use this endpoint to update the name, scopes, or expiration time of an API key.`).requiredOption(`--key-id <key-id>`, `Key unique ID.`).requiredOption(`--name <name>`, `Key name. Max length: 128 chars.`).requiredOption(`--scopes [scopes...]`, `Key scopes list. Maximum of
|
|
153265
|
+
var organizationUpdateKeyCommand = organization.command(`update-key`).description(`Update a key by its unique ID. Use this endpoint to update the name, scopes, or expiration time of an API key.`).requiredOption(`--key-id <key-id>`, `Key unique ID.`).requiredOption(`--name <name>`, `Key name. Max length: 128 chars.`).requiredOption(`--scopes [scopes...]`, `Key scopes list. Maximum of 200 scopes are allowed.`).option(`--expire <expire>`, `Expiration time in ISO 8601 (https://www.iso.org/iso-8601-date-and-time-format.html) format. Use null for unlimited expiration.`).action(
|
|
153300
153266
|
actionRunner(
|
|
153301
153267
|
async ({ keyId, name, scopes, expire }) => parse3(await (await getOrganizationClient()).updateKey(keyId, name, scopes, expire))
|
|
153302
153268
|
)
|
|
@@ -153306,7 +153272,7 @@ var organizationDeleteKeyCommand = organization.command(`delete-key`).descriptio
|
|
|
153306
153272
|
async ({ keyId }) => parse3(await (await getOrganizationClient()).deleteKey(keyId))
|
|
153307
153273
|
)
|
|
153308
153274
|
);
|
|
153309
|
-
var organizationListProjectsCommand = organization.command(`list-projects`).description(`Get a list of all projects. You can use the query params to filter your results.`).option(`--queries [queries...]`, `Raw Appwrite JSON query strings (legacy). Use this for advanced queries or automation; for common filtering, sorting, and pagination prefer --filter, --sort-asc, --sort-desc, --limit, and --offset. When mixed, raw --queries are sent before generated flag queries. Array of query strings generated using the Query class provided by the SDK. Learn more about queries (https://appwrite.io/docs/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name, teamId, labels, search`).option(`--search <search>`, `Search term to filter your list results. Max length: 256 chars.`).option(
|
|
153275
|
+
var organizationListProjectsCommand = organization.command(`list-projects`).description(`Get a list of all projects. You can use the query params to filter your results.`).option(`--queries [queries...]`, `Raw Appwrite JSON query strings (legacy). Use this for advanced queries or automation; for common filtering, sorting, and pagination prefer --filter, --sort-asc, --sort-desc, --limit, and --offset. When mixed, raw --queries are sent before generated flag queries. Array of query strings generated using the Query class provided by the SDK. Learn more about queries (https://appwrite.io/docs/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name, teamId, labels, search, accessedAt`).option(`--search <search>`, `Search term to filter your list results. Max length: 256 chars.`).option(
|
|
153310
153276
|
`--total [value]`,
|
|
153311
153277
|
`When set to false, the total count returned will be 0 and will not be calculated.`,
|
|
153312
153278
|
(value) => value === void 0 ? true : parseBool(value)
|
|
@@ -153668,14 +153634,14 @@ var projectListKeysCommand = project.command(`list-keys`).description(`Get a lis
|
|
|
153668
153634
|
);
|
|
153669
153635
|
var projectCreateKeyCommand = project.command(`create-key`).description(`Create a new API key. It's recommended to have multiple API keys with strict scopes for separate functions within your project.
|
|
153670
153636
|
|
|
153671
|
-
You can also create an ephemeral API key if you need a short-lived key instead.`).requiredOption(`--key-id <key-id>`, `Key ID. Choose a custom ID or generate a random ID with \`ID.unique()\`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.`).requiredOption(`--name <name>`, `Key name. Max length: 128 chars.`).requiredOption(`--scopes [scopes...]`, `Key scopes list. Maximum of
|
|
153637
|
+
You can also create an ephemeral API key if you need a short-lived key instead.`).requiredOption(`--key-id <key-id>`, `Key ID. Choose a custom ID or generate a random ID with \`ID.unique()\`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.`).requiredOption(`--name <name>`, `Key name. Max length: 128 chars.`).requiredOption(`--scopes [scopes...]`, `Key scopes list. Maximum of 200 scopes are allowed.`).option(`--expire <expire>`, `Expiration time in ISO 8601 (https://www.iso.org/iso-8601-date-and-time-format.html) format. Use null for unlimited expiration.`).action(
|
|
153672
153638
|
actionRunner(
|
|
153673
153639
|
async ({ keyId, name, scopes, expire }) => parse3(await (await getProjectClient()).createKey(keyId, name, scopes, expire))
|
|
153674
153640
|
)
|
|
153675
153641
|
);
|
|
153676
153642
|
var projectCreateEphemeralKeyCommand = project.command(`create-ephemeral-key`).description(`Create a new ephemeral API key. It's recommended to have multiple API keys with strict scopes for separate functions within your project.
|
|
153677
153643
|
|
|
153678
|
-
You can also create a standard API key if you need a longer-lived key instead.`).requiredOption(`--scopes [scopes...]`, `Key scopes list. Maximum of
|
|
153644
|
+
You can also create a standard API key if you need a longer-lived key instead.`).requiredOption(`--scopes [scopes...]`, `Key scopes list. Maximum of 200 scopes are allowed.`).requiredOption(`--duration <duration>`, `Time in seconds before ephemeral key expires. Maximum duration is 3600 seconds.`, parseInteger).action(
|
|
153679
153645
|
actionRunner(
|
|
153680
153646
|
async ({ scopes, duration: duration3 }) => parse3(await (await getProjectClient()).createEphemeralKey(scopes, duration3))
|
|
153681
153647
|
)
|
|
@@ -153685,7 +153651,7 @@ var projectGetKeyCommand = project.command(`get-key`).description(`Get a key by
|
|
|
153685
153651
|
async ({ keyId }) => parse3(await (await getProjectClient()).getKey(keyId))
|
|
153686
153652
|
)
|
|
153687
153653
|
);
|
|
153688
|
-
var projectUpdateKeyCommand = project.command(`update-key`).description(`Update a key by its unique ID. Use this endpoint to update the name, scopes, or expiration time of an API key.`).requiredOption(`--key-id <key-id>`, `Key ID.`).requiredOption(`--name <name>`, `Key name. Max length: 128 chars.`).requiredOption(`--scopes [scopes...]`, `Key scopes list. Maximum of
|
|
153654
|
+
var projectUpdateKeyCommand = project.command(`update-key`).description(`Update a key by its unique ID. Use this endpoint to update the name, scopes, or expiration time of an API key.`).requiredOption(`--key-id <key-id>`, `Key ID.`).requiredOption(`--name <name>`, `Key name. Max length: 128 chars.`).requiredOption(`--scopes [scopes...]`, `Key scopes list. Maximum of 200 scopes are allowed.`).option(`--expire <expire>`, `Expiration time in ISO 8601 (https://www.iso.org/iso-8601-date-and-time-format.html) format. Use null for unlimited expiration.`).action(
|
|
153689
153655
|
actionRunner(
|
|
153690
153656
|
async ({ keyId, name, scopes, expire }) => parse3(await (await getProjectClient()).updateKey(keyId, name, scopes, expire))
|
|
153691
153657
|
)
|
|
@@ -154979,7 +154945,7 @@ var tablesDBCreateCommand = tablesDB.command(`create`).description(`Create a new
|
|
|
154979
154945
|
`--enabled [value]`,
|
|
154980
154946
|
`Is the database enabled? When set to 'disabled', users cannot access the database but Server SDKs with an API key can still read and write to the database. No data is lost when this is toggled.`,
|
|
154981
154947
|
(value) => value === void 0 ? true : parseBool(value)
|
|
154982
|
-
).option(`--dedicated-database-id <dedicated-database-id>`, `Optional dedicated database
|
|
154948
|
+
).option(`--dedicated-database-id <dedicated-database-id>`, `Optional dedicated database ID to attach this database to. Leave empty to create a database on the shared pool.`).action(
|
|
154983
154949
|
actionRunner(
|
|
154984
154950
|
async ({ databaseId, name, enabled, dedicatedDatabaseId }) => parse3(await (await getTablesDBClient()).create(databaseId, name, enabled, dedicatedDatabaseId))
|
|
154985
154951
|
)
|
|
@@ -155429,11 +155395,6 @@ var tablesDBDeleteIndexCommand = tablesDB.command(`delete-index`).description(`D
|
|
|
155429
155395
|
async ({ databaseId, tableId, key }) => parse3(await (await getTablesDBClient()).deleteIndex(databaseId, tableId, key))
|
|
155430
155396
|
)
|
|
155431
155397
|
);
|
|
155432
|
-
var tablesDBListTableLogsCommand = tablesDB.command(`list-table-logs`).description(`Get the table activity logs list by its unique ID.`).requiredOption(`--database-id <database-id>`, `Database ID.`).requiredOption(`--table-id <table-id>`, `Table ID.`).option(`--queries [queries...]`, `Raw Appwrite JSON query strings (legacy). Use this for advanced queries or automation; for common pagination prefer --limit and --offset. When mixed, raw --queries are sent before generated flag queries. Array of query strings generated using the Query class provided by the SDK. Learn more about queries (https://appwrite.io/docs/queries). Only supported methods are limit and offset`).option(`--limit <limit>`, `Maximum number of results to return.`, parseInteger).option(`--offset <offset>`, `Number of results to skip.`, parseInteger).action(
|
|
155433
|
-
actionRunner(
|
|
155434
|
-
async ({ databaseId, tableId, queries, limit, offset }) => parse3(await (await getTablesDBClient()).listTableLogs(databaseId, tableId, buildQueries({ queries, limit, offset })))
|
|
155435
|
-
)
|
|
155436
|
-
);
|
|
155437
155398
|
var tablesDBListRowsCommand = tablesDB.command(`list-rows`).description(`Get a list of all the user's rows in a given table. You can use the query params to filter your results.`).requiredOption(`--database-id <database-id>`, `Database ID.`).requiredOption(`--table-id <table-id>`, `Table ID. You can create a new table using the TablesDB service server integration (https://appwrite.io/docs/products/databases/tables#create-table).`).option(`--queries [queries...]`, `Raw Appwrite JSON query strings (legacy). Use this for advanced queries or automation; for common filtering, sorting, pagination, and selection prefer --filter, --sort-asc, --sort-desc, --limit, --offset, and --select. When mixed, raw --queries are sent before generated flag queries. Array of query strings generated using the Query class provided by the SDK. Learn more about queries (https://appwrite.io/docs/queries). Maximum of 100 queries are allowed, each 4096 characters long.`).option(`--transaction-id <transaction-id>`, `Transaction ID to read uncommitted changes within the transaction.`).option(
|
|
155438
155399
|
`--total [value]`,
|
|
155439
155400
|
`When set to false, the total count returned will be 0 and will not be calculated.`,
|
|
@@ -155489,11 +155450,6 @@ var tablesDBDeleteRowCommand = tablesDB.command(`delete-row`).description(`Delet
|
|
|
155489
155450
|
async ({ databaseId, tableId, rowId, transactionId }) => parse3(await (await getTablesDBClient()).deleteRow(databaseId, tableId, rowId, transactionId))
|
|
155490
155451
|
)
|
|
155491
155452
|
);
|
|
155492
|
-
var tablesDBListRowLogsCommand = tablesDB.command(`list-row-logs`).description(`Get the row activity logs list by its unique ID.`).requiredOption(`--database-id <database-id>`, `Database ID.`).requiredOption(`--table-id <table-id>`, `Table ID.`).requiredOption(`--row-id <row-id>`, `Row ID.`).option(`--queries [queries...]`, `Raw Appwrite JSON query strings (legacy). Use this for advanced queries or automation; for common pagination prefer --limit and --offset. When mixed, raw --queries are sent before generated flag queries. Array of query strings generated using the Query class provided by the SDK. Learn more about queries (https://appwrite.io/docs/queries). Only supported methods are limit and offset`).option(`--limit <limit>`, `Maximum number of results to return.`, parseInteger).option(`--offset <offset>`, `Number of results to skip.`, parseInteger).action(
|
|
155493
|
-
actionRunner(
|
|
155494
|
-
async ({ databaseId, tableId, rowId, queries, limit, offset }) => parse3(await (await getTablesDBClient()).listRowLogs(databaseId, tableId, rowId, buildQueries({ queries, limit, offset })))
|
|
155495
|
-
)
|
|
155496
|
-
);
|
|
155497
155453
|
var tablesDBDecrementRowColumnCommand = tablesDB.command(`decrement-row-column`).description(`Decrement a specific column of a row by a given value.`).requiredOption(`--database-id <database-id>`, `Database ID.`).requiredOption(`--table-id <table-id>`, `Table ID.`).requiredOption(`--row-id <row-id>`, `Row ID.`).requiredOption(`--column <column>`, `Column key.`).option(`--value <value>`, `Value to increment the column by. The value must be a number.`, parseInteger).option(`--min <min>`, `Minimum value for the column. If the current value is lesser than this value, an exception will be thrown.`, parseInteger).option(`--transaction-id <transaction-id>`, `Transaction ID for staging the operation.`).action(
|
|
155498
155454
|
actionRunner(
|
|
155499
155455
|
async ({ databaseId, tableId, rowId, column, value, min, transactionId }) => parse3(await (await getTablesDBClient()).decrementRowColumn(databaseId, tableId, rowId, column, value, min, transactionId))
|
|
@@ -155564,15 +155520,6 @@ var teamsDeleteCommand = teams.command(`delete`).description(`Delete a team usin
|
|
|
155564
155520
|
async ({ teamId }) => parse3(await (await getTeamsClient()).delete(teamId))
|
|
155565
155521
|
)
|
|
155566
155522
|
);
|
|
155567
|
-
var teamsListLogsCommand = teams.command(`list-logs`).description(`Get the team activity logs list by its unique ID.`).requiredOption(`--team-id <team-id>`, `Team ID.`).option(`--queries [queries...]`, `Raw Appwrite JSON query strings (legacy). Use this for advanced queries or automation; for common pagination prefer --limit and --offset. When mixed, raw --queries are sent before generated flag queries. Array of query strings generated using the Query class provided by the SDK. Learn more about queries (https://appwrite.io/docs/queries). Only supported methods are limit and offset`).option(
|
|
155568
|
-
`--total [value]`,
|
|
155569
|
-
`When set to false, the total count returned will be 0 and will not be calculated.`,
|
|
155570
|
-
(value) => value === void 0 ? true : parseBool(value)
|
|
155571
|
-
).option(`--limit <limit>`, `Maximum number of results to return.`, parseInteger).option(`--offset <offset>`, `Number of results to skip.`, parseInteger).action(
|
|
155572
|
-
actionRunner(
|
|
155573
|
-
async ({ teamId, queries, total, limit, offset }) => parse3(await (await getTeamsClient()).listLogs(teamId, buildQueries({ queries, limit, offset }), total))
|
|
155574
|
-
)
|
|
155575
|
-
);
|
|
155576
155523
|
var teamsListMembershipsCommand = teams.command(`list-memberships`).description(`Use this endpoint to list a team's members using the team's ID. All team members have read access to this endpoint. Hide sensitive attributes from the response by toggling membership privacy in the Console.`).requiredOption(`--team-id <team-id>`, `Team ID.`).option(`--queries [queries...]`, `Raw Appwrite JSON query strings (legacy). Use this for advanced queries or automation; for common filtering, sorting, and pagination prefer --filter, --sort-asc, --sort-desc, --limit, and --offset. When mixed, raw --queries are sent before generated flag queries. Array of query strings generated using the Query class provided by the SDK. Learn more about queries (https://appwrite.io/docs/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: userId, teamId, invited, joined, confirm, roles`).option(`--search <search>`, `Search term to filter your list results. Max length: 256 chars.`).option(
|
|
155577
155524
|
`--total [value]`,
|
|
155578
155525
|
`When set to false, the total count returned will be 0 and will not be calculated.`,
|
|
@@ -155683,7 +155630,7 @@ var getUsersClient = async () => {
|
|
|
155683
155630
|
var users = new Command("users").description(commandDescriptions["users"] ?? "").configureHelp({
|
|
155684
155631
|
helpWidth: process.stdout.columns || 80
|
|
155685
155632
|
});
|
|
155686
|
-
var usersListCommand = users.command(`list`).description(`Get a list of all the project's users. You can use the query params to filter your results.`).option(`--queries [queries...]`, `Raw Appwrite JSON query strings (legacy). Use this for advanced queries or automation; for common filtering, sorting, and pagination prefer --filter, --sort-asc, --sort-desc, --limit, and --offset. When mixed, raw --queries are sent before generated flag queries. Array of query strings generated using the Query class provided by the SDK. Learn more about queries (https://appwrite.io/docs/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name, email, phone, status, passwordUpdate, registration, emailVerification, phoneVerification, labels, impersonator`).option(`--search <search>`, `Search term to filter your list results. Max length: 256 chars.`).option(
|
|
155633
|
+
var usersListCommand = users.command(`list`).description(`Get a list of all the project's users. You can use the query params to filter your results.`).option(`--queries [queries...]`, `Raw Appwrite JSON query strings (legacy). Use this for advanced queries or automation; for common filtering, sorting, and pagination prefer --filter, --sort-asc, --sort-desc, --limit, and --offset. When mixed, raw --queries are sent before generated flag queries. Array of query strings generated using the Query class provided by the SDK. Learn more about queries (https://appwrite.io/docs/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name, email, phone, status, passwordUpdate, registration, emailVerification, phoneVerification, labels, impersonator, accessedAt`).option(`--search <search>`, `Search term to filter your list results. Max length: 256 chars.`).option(
|
|
155687
155634
|
`--total [value]`,
|
|
155688
155635
|
`When set to false, the total count returned will be 0 and will not be calculated.`,
|
|
155689
155636
|
(value) => value === void 0 ? true : parseBool(value)
|
|
@@ -155785,15 +155732,6 @@ Labels can be used to grant access to resources. While teams are a way for user'
|
|
|
155785
155732
|
async ({ userId, labels }) => parse3(await (await getUsersClient()).updateLabels(userId, labels))
|
|
155786
155733
|
)
|
|
155787
155734
|
);
|
|
155788
|
-
var usersListLogsCommand = users.command(`list-logs`).description(`Get the user activity logs list by its unique ID.`).requiredOption(`--user-id <user-id>`, `User ID.`).option(`--queries [queries...]`, `Raw Appwrite JSON query strings (legacy). Use this for advanced queries or automation; for common pagination prefer --limit and --offset. When mixed, raw --queries are sent before generated flag queries. Array of query strings generated using the Query class provided by the SDK. Learn more about queries (https://appwrite.io/docs/queries). Only supported methods are limit and offset`).option(
|
|
155789
|
-
`--total [value]`,
|
|
155790
|
-
`When set to false, the total count returned will be 0 and will not be calculated.`,
|
|
155791
|
-
(value) => value === void 0 ? true : parseBool(value)
|
|
155792
|
-
).option(`--limit <limit>`, `Maximum number of results to return.`, parseInteger).option(`--offset <offset>`, `Number of results to skip.`, parseInteger).action(
|
|
155793
|
-
actionRunner(
|
|
155794
|
-
async ({ userId, queries, total, limit, offset }) => parse3(await (await getUsersClient()).listLogs(userId, buildQueries({ queries, limit, offset }), total))
|
|
155795
|
-
)
|
|
155796
|
-
);
|
|
155797
155735
|
var usersListMembershipsCommand = users.command(`list-memberships`).description(`Get the user membership list by its unique ID.`).requiredOption(`--user-id <user-id>`, `User ID.`).option(`--queries [queries...]`, `Raw Appwrite JSON query strings (legacy). Use this for advanced queries or automation; for common filtering, sorting, and pagination prefer --filter, --sort-asc, --sort-desc, --limit, and --offset. When mixed, raw --queries are sent before generated flag queries. Array of query strings generated using the Query class provided by the SDK. Learn more about queries (https://appwrite.io/docs/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: userId, teamId, invited, joined, confirm, roles`).option(`--search <search>`, `Search term to filter your list results. Max length: 256 chars.`).option(
|
|
155798
155736
|
`--total [value]`,
|
|
155799
155737
|
`When set to false, the total count returned will be 0 and will not be calculated.`,
|
package/dist/index.cjs
CHANGED
|
@@ -35929,7 +35929,7 @@ Expecting one of '${allowedValues.join("', '")}'`);
|
|
|
35929
35929
|
}
|
|
35930
35930
|
return positiveOption || option2;
|
|
35931
35931
|
};
|
|
35932
|
-
const
|
|
35932
|
+
const getErrorMessage3 = (option2) => {
|
|
35933
35933
|
const bestOption = findBestOptionFromValue(option2);
|
|
35934
35934
|
const optionKey = bestOption.attributeName();
|
|
35935
35935
|
const source = this.getOptionValueSource(optionKey);
|
|
@@ -35938,7 +35938,7 @@ Expecting one of '${allowedValues.join("', '")}'`);
|
|
|
35938
35938
|
}
|
|
35939
35939
|
return `option '${bestOption.flags}'`;
|
|
35940
35940
|
};
|
|
35941
|
-
const message = `error: ${
|
|
35941
|
+
const message = `error: ${getErrorMessage3(option)} cannot be used with ${getErrorMessage3(conflictingOption)}`;
|
|
35942
35942
|
this.error(message, { code: "commander.conflictingOption" });
|
|
35943
35943
|
}
|
|
35944
35944
|
/**
|
|
@@ -65565,7 +65565,7 @@ var id_default = ID;
|
|
|
65565
65565
|
// lib/constants.ts
|
|
65566
65566
|
var SDK_TITLE = "Appwrite";
|
|
65567
65567
|
var SDK_TITLE_LOWER = "appwrite";
|
|
65568
|
-
var SDK_VERSION = "22.
|
|
65568
|
+
var SDK_VERSION = "22.4.0";
|
|
65569
65569
|
var SDK_LOGO = "\n _ _ _ ___ __ _____\n /_\\ _ __ _ ____ ___ __(_) |_ ___ / __\\ / / \\_ \\\n //_\\\\| '_ \\| '_ \\ \\ /\\ / / '__| | __/ _ \\ / / / / / /\\/\n / _ \\ |_) | |_) \\ V V /| | | | || __/ / /___/ /___/\\/ /_\n \\_/ \\_/ .__/| .__/ \\_/\\_/ |_| |_|\\__\\___| \\____/\\____/\\____/\n |_| |_|\n\n";
|
|
65570
65570
|
var EXECUTABLE_NAME = "appwrite";
|
|
65571
65571
|
var UPDATE_CHECK_INTERVAL_MS = 24 * 60 * 60 * 1e3;
|
|
@@ -103718,6 +103718,20 @@ var getSafeDirectoryName = (value, fallback) => {
|
|
|
103718
103718
|
var siteRequiresBuildCommand = (site) => {
|
|
103719
103719
|
return !(site.framework === "other" && site.adapter === "static");
|
|
103720
103720
|
};
|
|
103721
|
+
var getErrorMessage = (error52) => {
|
|
103722
|
+
if (error52 instanceof Error) {
|
|
103723
|
+
const message = typeof error52.message === "string" ? error52.message.trim() : "";
|
|
103724
|
+
if (message) {
|
|
103725
|
+
return message;
|
|
103726
|
+
}
|
|
103727
|
+
const response = error52.response;
|
|
103728
|
+
if (typeof response === "string" && response.trim() !== "") {
|
|
103729
|
+
return response.trim();
|
|
103730
|
+
}
|
|
103731
|
+
return "An unknown error occurred.";
|
|
103732
|
+
}
|
|
103733
|
+
return String(error52);
|
|
103734
|
+
};
|
|
103721
103735
|
var WINDOWS_EXECUTABLE_NAME = `${EXECUTABLE_NAME.toLowerCase()}.exe`;
|
|
103722
103736
|
var CLOUD_REGION_CODES = /* @__PURE__ */ new Set(["fra", "nyc", "syd", "sfo", "sgp", "tor"]);
|
|
103723
103737
|
var CLOUD_LOGIN_ENVIRONMENTS = /* @__PURE__ */ new Set(["stage"]);
|
|
@@ -104945,7 +104959,7 @@ var package_default = {
|
|
|
104945
104959
|
type: "module",
|
|
104946
104960
|
homepage: "https://appwrite.io/support",
|
|
104947
104961
|
description: "Appwrite is an open-source self-hosted backend server that abstracts and simplifies complex and repetitive development tasks behind a very simple REST API",
|
|
104948
|
-
version: "22.
|
|
104962
|
+
version: "22.4.0",
|
|
104949
104963
|
license: "BSD-3-Clause",
|
|
104950
104964
|
main: "dist/index.cjs",
|
|
104951
104965
|
module: "dist/index.js",
|
|
@@ -105945,26 +105959,51 @@ var printQueryErrorHint = (err) => {
|
|
|
105945
105959
|
);
|
|
105946
105960
|
};
|
|
105947
105961
|
var ERROR_DETAIL_KEYS = ["code", "type", "response"];
|
|
105962
|
+
var ERROR_DETAIL_INDENT = " ";
|
|
105963
|
+
var ERROR_DETAIL_LABEL_WIDTH = Math.max(...ERROR_DETAIL_KEYS.map((key) => key.length)) + 2;
|
|
105964
|
+
var formatErrorDetail = (value) => {
|
|
105965
|
+
if (typeof value === "string") {
|
|
105966
|
+
const text = value;
|
|
105967
|
+
try {
|
|
105968
|
+
const parsed = JSON.parse(text);
|
|
105969
|
+
if (parsed && typeof parsed === "object") {
|
|
105970
|
+
value = parsed;
|
|
105971
|
+
}
|
|
105972
|
+
} catch {
|
|
105973
|
+
return text;
|
|
105974
|
+
}
|
|
105975
|
+
}
|
|
105976
|
+
try {
|
|
105977
|
+
const json2 = JSON.stringify(value, null, 2) ?? String(value);
|
|
105978
|
+
return json2.split("\n").map((line, index) => index === 0 ? line : ERROR_DETAIL_INDENT + line).join("\n");
|
|
105979
|
+
} catch {
|
|
105980
|
+
return String(value);
|
|
105981
|
+
}
|
|
105982
|
+
};
|
|
105948
105983
|
var formatErrorForLog = (err) => {
|
|
105949
|
-
const
|
|
105950
|
-
|
|
105984
|
+
const lines = [
|
|
105985
|
+
`${import_chalk2.default.red.bold(err.name || "Error")}${import_chalk2.default.red(`: ${getErrorMessage(err)}`)}`
|
|
105986
|
+
];
|
|
105987
|
+
for (const key of ERROR_DETAIL_KEYS) {
|
|
105951
105988
|
if (!Object.prototype.hasOwnProperty.call(err, key)) {
|
|
105952
|
-
|
|
105989
|
+
continue;
|
|
105953
105990
|
}
|
|
105954
105991
|
const value = err[key];
|
|
105955
|
-
|
|
105956
|
-
|
|
105957
|
-
|
|
105958
|
-
} catch {
|
|
105959
|
-
detail = String(value);
|
|
105960
|
-
}
|
|
105961
|
-
return [`${key}: ${detail}`];
|
|
105962
|
-
});
|
|
105963
|
-
if (detailLines.length === 0) {
|
|
105964
|
-
return stack;
|
|
105992
|
+
lines.push(
|
|
105993
|
+
`${ERROR_DETAIL_INDENT}${import_chalk2.default.cyan(`${key}:`.padEnd(ERROR_DETAIL_LABEL_WIDTH))}${formatErrorDetail(value)}`
|
|
105994
|
+
);
|
|
105965
105995
|
}
|
|
105966
|
-
const
|
|
105967
|
-
|
|
105996
|
+
const frames = (err.stack ?? "").split("\n").filter((line) => line.trim().startsWith("at "));
|
|
105997
|
+
if (frames.length > 0) {
|
|
105998
|
+
lines.push(
|
|
105999
|
+
"",
|
|
106000
|
+
import_chalk2.default.dim(`${ERROR_DETAIL_INDENT}Stack trace:`),
|
|
106001
|
+
...frames.map(
|
|
106002
|
+
(frame) => import_chalk2.default.dim(`${ERROR_DETAIL_INDENT.repeat(2)}${frame.trim()}`)
|
|
106003
|
+
)
|
|
106004
|
+
);
|
|
106005
|
+
}
|
|
106006
|
+
return lines.join("\n");
|
|
105968
106007
|
};
|
|
105969
106008
|
var parseError = (err) => {
|
|
105970
106009
|
if (cliConfig.report) {
|
|
@@ -105995,7 +106034,7 @@ Is Cloud: ${isCloud()}`;
|
|
|
105995
106034
|
githubIssueUrl.searchParams.append("template", "bug.yaml");
|
|
105996
106035
|
githubIssueUrl.searchParams.append(
|
|
105997
106036
|
"title",
|
|
105998
|
-
`\u{1F41B} Bug Report: ${err
|
|
106037
|
+
`\u{1F41B} Bug Report: ${getErrorMessage(err)}`
|
|
105999
106038
|
);
|
|
106000
106039
|
githubIssueUrl.searchParams.append(
|
|
106001
106040
|
"actual-behavior",
|
|
@@ -106025,7 +106064,7 @@ ${stack}`
|
|
|
106025
106064
|
printQueryErrorHint(err);
|
|
106026
106065
|
} else {
|
|
106027
106066
|
log("For detailed error pass the --verbose or --report flag");
|
|
106028
|
-
error51(err
|
|
106067
|
+
error51(getErrorMessage(err));
|
|
106029
106068
|
printQueryErrorHint(err);
|
|
106030
106069
|
}
|
|
106031
106070
|
process.exit(1);
|
|
@@ -106071,7 +106110,7 @@ var commandDescriptions = {
|
|
|
106071
106110
|
avatars: `The avatars command aims to help you complete everyday tasks related to your app image, icons, and avatars.`,
|
|
106072
106111
|
databases: `(Legacy) The databases command allows you to create structured collections of documents and query and filter lists of documents.`,
|
|
106073
106112
|
"tables-db": `The tables-db command allows you to create structured tables of columns and query and filter lists of rows.`,
|
|
106074
|
-
init: `The init command provides a convenient wrapper for creating and initializing projects, functions, collections, buckets, teams, messaging-topics, and
|
|
106113
|
+
init: `The init command provides a convenient wrapper for creating and initializing projects, functions, collections, buckets, teams, messaging-topics, and skills in ${SDK_TITLE}.`,
|
|
106075
106114
|
push: `The push command provides a convenient wrapper for pushing your functions, collections, buckets, teams, and messaging-topics.`,
|
|
106076
106115
|
run: `The run command allows you to run the project locally to allow easy development and quick debugging.`,
|
|
106077
106116
|
functions: `The functions command allows you to view, create, and manage your Cloud Functions.`,
|
|
@@ -110154,7 +110193,7 @@ async function downloadDeploymentCode(params) {
|
|
|
110154
110193
|
}
|
|
110155
110194
|
} catch (e) {
|
|
110156
110195
|
if (e instanceof AppwriteException) {
|
|
110157
|
-
error51(e
|
|
110196
|
+
error51(getErrorMessage(e));
|
|
110158
110197
|
return;
|
|
110159
110198
|
} else {
|
|
110160
110199
|
throw e;
|
|
@@ -112077,12 +112116,12 @@ async function getTerminalImage() {
|
|
|
112077
112116
|
);
|
|
112078
112117
|
return terminalImageModulePromise;
|
|
112079
112118
|
}
|
|
112080
|
-
function
|
|
112119
|
+
function getErrorMessage2(error52) {
|
|
112081
112120
|
if (error52 instanceof Error && error52.message.trim().length > 0) {
|
|
112082
112121
|
return error52.message.trim();
|
|
112083
112122
|
}
|
|
112084
112123
|
if (Array.isArray(error52)) {
|
|
112085
|
-
const messages = error52.map((entry) =>
|
|
112124
|
+
const messages = error52.map((entry) => getErrorMessage2(entry)).filter((entry) => entry !== "Unknown error");
|
|
112086
112125
|
if (messages.length > 0) {
|
|
112087
112126
|
return messages.join("; ");
|
|
112088
112127
|
}
|
|
@@ -112240,7 +112279,7 @@ async function renderSiteTerminalPreview(params) {
|
|
|
112240
112279
|
};
|
|
112241
112280
|
} catch (previewError) {
|
|
112242
112281
|
warnings.add(
|
|
112243
|
-
`${label === "dark" ? "Dark mode" : "Light mode"} screenshot: ${
|
|
112282
|
+
`${label === "dark" ? "Dark mode" : "Light mode"} screenshot: ${getErrorMessage2(previewError)}`
|
|
112244
112283
|
);
|
|
112245
112284
|
}
|
|
112246
112285
|
}
|
|
@@ -113966,7 +114005,7 @@ var Push = class {
|
|
|
113966
114005
|
storageService: await getStorageService(consoleClient)
|
|
113967
114006
|
};
|
|
113968
114007
|
} catch (previewSetupError) {
|
|
113969
|
-
sitePreviewSetupWarning =
|
|
114008
|
+
sitePreviewSetupWarning = getErrorMessage2(previewSetupError);
|
|
113970
114009
|
}
|
|
113971
114010
|
}
|
|
113972
114011
|
process.stdout.write("\n");
|
package/dist/index.js
CHANGED
|
@@ -35934,7 +35934,7 @@ Expecting one of '${allowedValues.join("', '")}'`);
|
|
|
35934
35934
|
}
|
|
35935
35935
|
return positiveOption || option2;
|
|
35936
35936
|
};
|
|
35937
|
-
const
|
|
35937
|
+
const getErrorMessage3 = (option2) => {
|
|
35938
35938
|
const bestOption = findBestOptionFromValue(option2);
|
|
35939
35939
|
const optionKey = bestOption.attributeName();
|
|
35940
35940
|
const source = this.getOptionValueSource(optionKey);
|
|
@@ -35943,7 +35943,7 @@ Expecting one of '${allowedValues.join("', '")}'`);
|
|
|
35943
35943
|
}
|
|
35944
35944
|
return `option '${bestOption.flags}'`;
|
|
35945
35945
|
};
|
|
35946
|
-
const message = `error: ${
|
|
35946
|
+
const message = `error: ${getErrorMessage3(option)} cannot be used with ${getErrorMessage3(conflictingOption)}`;
|
|
35947
35947
|
this.error(message, { code: "commander.conflictingOption" });
|
|
35948
35948
|
}
|
|
35949
35949
|
/**
|
|
@@ -65545,7 +65545,7 @@ var id_default = ID;
|
|
|
65545
65545
|
// lib/constants.ts
|
|
65546
65546
|
var SDK_TITLE = "Appwrite";
|
|
65547
65547
|
var SDK_TITLE_LOWER = "appwrite";
|
|
65548
|
-
var SDK_VERSION = "22.
|
|
65548
|
+
var SDK_VERSION = "22.4.0";
|
|
65549
65549
|
var SDK_LOGO = "\n _ _ _ ___ __ _____\n /_\\ _ __ _ ____ ___ __(_) |_ ___ / __\\ / / \\_ \\\n //_\\\\| '_ \\| '_ \\ \\ /\\ / / '__| | __/ _ \\ / / / / / /\\/\n / _ \\ |_) | |_) \\ V V /| | | | || __/ / /___/ /___/\\/ /_\n \\_/ \\_/ .__/| .__/ \\_/\\_/ |_| |_|\\__\\___| \\____/\\____/\\____/\n |_| |_|\n\n";
|
|
65550
65550
|
var EXECUTABLE_NAME = "appwrite";
|
|
65551
65551
|
var UPDATE_CHECK_INTERVAL_MS = 24 * 60 * 60 * 1e3;
|
|
@@ -103698,6 +103698,20 @@ var getSafeDirectoryName = (value, fallback) => {
|
|
|
103698
103698
|
var siteRequiresBuildCommand = (site) => {
|
|
103699
103699
|
return !(site.framework === "other" && site.adapter === "static");
|
|
103700
103700
|
};
|
|
103701
|
+
var getErrorMessage = (error52) => {
|
|
103702
|
+
if (error52 instanceof Error) {
|
|
103703
|
+
const message = typeof error52.message === "string" ? error52.message.trim() : "";
|
|
103704
|
+
if (message) {
|
|
103705
|
+
return message;
|
|
103706
|
+
}
|
|
103707
|
+
const response = error52.response;
|
|
103708
|
+
if (typeof response === "string" && response.trim() !== "") {
|
|
103709
|
+
return response.trim();
|
|
103710
|
+
}
|
|
103711
|
+
return "An unknown error occurred.";
|
|
103712
|
+
}
|
|
103713
|
+
return String(error52);
|
|
103714
|
+
};
|
|
103701
103715
|
var WINDOWS_EXECUTABLE_NAME = `${EXECUTABLE_NAME.toLowerCase()}.exe`;
|
|
103702
103716
|
var CLOUD_REGION_CODES = /* @__PURE__ */ new Set(["fra", "nyc", "syd", "sfo", "sgp", "tor"]);
|
|
103703
103717
|
var CLOUD_LOGIN_ENVIRONMENTS = /* @__PURE__ */ new Set(["stage"]);
|
|
@@ -104925,7 +104939,7 @@ var package_default = {
|
|
|
104925
104939
|
type: "module",
|
|
104926
104940
|
homepage: "https://appwrite.io/support",
|
|
104927
104941
|
description: "Appwrite is an open-source self-hosted backend server that abstracts and simplifies complex and repetitive development tasks behind a very simple REST API",
|
|
104928
|
-
version: "22.
|
|
104942
|
+
version: "22.4.0",
|
|
104929
104943
|
license: "BSD-3-Clause",
|
|
104930
104944
|
main: "dist/index.cjs",
|
|
104931
104945
|
module: "dist/index.js",
|
|
@@ -105925,26 +105939,51 @@ var printQueryErrorHint = (err) => {
|
|
|
105925
105939
|
);
|
|
105926
105940
|
};
|
|
105927
105941
|
var ERROR_DETAIL_KEYS = ["code", "type", "response"];
|
|
105942
|
+
var ERROR_DETAIL_INDENT = " ";
|
|
105943
|
+
var ERROR_DETAIL_LABEL_WIDTH = Math.max(...ERROR_DETAIL_KEYS.map((key) => key.length)) + 2;
|
|
105944
|
+
var formatErrorDetail = (value) => {
|
|
105945
|
+
if (typeof value === "string") {
|
|
105946
|
+
const text = value;
|
|
105947
|
+
try {
|
|
105948
|
+
const parsed = JSON.parse(text);
|
|
105949
|
+
if (parsed && typeof parsed === "object") {
|
|
105950
|
+
value = parsed;
|
|
105951
|
+
}
|
|
105952
|
+
} catch {
|
|
105953
|
+
return text;
|
|
105954
|
+
}
|
|
105955
|
+
}
|
|
105956
|
+
try {
|
|
105957
|
+
const json2 = JSON.stringify(value, null, 2) ?? String(value);
|
|
105958
|
+
return json2.split("\n").map((line, index) => index === 0 ? line : ERROR_DETAIL_INDENT + line).join("\n");
|
|
105959
|
+
} catch {
|
|
105960
|
+
return String(value);
|
|
105961
|
+
}
|
|
105962
|
+
};
|
|
105928
105963
|
var formatErrorForLog = (err) => {
|
|
105929
|
-
const
|
|
105930
|
-
|
|
105964
|
+
const lines = [
|
|
105965
|
+
`${import_chalk2.default.red.bold(err.name || "Error")}${import_chalk2.default.red(`: ${getErrorMessage(err)}`)}`
|
|
105966
|
+
];
|
|
105967
|
+
for (const key of ERROR_DETAIL_KEYS) {
|
|
105931
105968
|
if (!Object.prototype.hasOwnProperty.call(err, key)) {
|
|
105932
|
-
|
|
105969
|
+
continue;
|
|
105933
105970
|
}
|
|
105934
105971
|
const value = err[key];
|
|
105935
|
-
|
|
105936
|
-
|
|
105937
|
-
|
|
105938
|
-
} catch {
|
|
105939
|
-
detail = String(value);
|
|
105940
|
-
}
|
|
105941
|
-
return [`${key}: ${detail}`];
|
|
105942
|
-
});
|
|
105943
|
-
if (detailLines.length === 0) {
|
|
105944
|
-
return stack;
|
|
105972
|
+
lines.push(
|
|
105973
|
+
`${ERROR_DETAIL_INDENT}${import_chalk2.default.cyan(`${key}:`.padEnd(ERROR_DETAIL_LABEL_WIDTH))}${formatErrorDetail(value)}`
|
|
105974
|
+
);
|
|
105945
105975
|
}
|
|
105946
|
-
const
|
|
105947
|
-
|
|
105976
|
+
const frames = (err.stack ?? "").split("\n").filter((line) => line.trim().startsWith("at "));
|
|
105977
|
+
if (frames.length > 0) {
|
|
105978
|
+
lines.push(
|
|
105979
|
+
"",
|
|
105980
|
+
import_chalk2.default.dim(`${ERROR_DETAIL_INDENT}Stack trace:`),
|
|
105981
|
+
...frames.map(
|
|
105982
|
+
(frame) => import_chalk2.default.dim(`${ERROR_DETAIL_INDENT.repeat(2)}${frame.trim()}`)
|
|
105983
|
+
)
|
|
105984
|
+
);
|
|
105985
|
+
}
|
|
105986
|
+
return lines.join("\n");
|
|
105948
105987
|
};
|
|
105949
105988
|
var parseError = (err) => {
|
|
105950
105989
|
if (cliConfig.report) {
|
|
@@ -105975,7 +106014,7 @@ Is Cloud: ${isCloud()}`;
|
|
|
105975
106014
|
githubIssueUrl.searchParams.append("template", "bug.yaml");
|
|
105976
106015
|
githubIssueUrl.searchParams.append(
|
|
105977
106016
|
"title",
|
|
105978
|
-
`\u{1F41B} Bug Report: ${err
|
|
106017
|
+
`\u{1F41B} Bug Report: ${getErrorMessage(err)}`
|
|
105979
106018
|
);
|
|
105980
106019
|
githubIssueUrl.searchParams.append(
|
|
105981
106020
|
"actual-behavior",
|
|
@@ -106005,7 +106044,7 @@ ${stack}`
|
|
|
106005
106044
|
printQueryErrorHint(err);
|
|
106006
106045
|
} else {
|
|
106007
106046
|
log("For detailed error pass the --verbose or --report flag");
|
|
106008
|
-
error51(err
|
|
106047
|
+
error51(getErrorMessage(err));
|
|
106009
106048
|
printQueryErrorHint(err);
|
|
106010
106049
|
}
|
|
106011
106050
|
process.exit(1);
|
|
@@ -106051,7 +106090,7 @@ var commandDescriptions = {
|
|
|
106051
106090
|
avatars: `The avatars command aims to help you complete everyday tasks related to your app image, icons, and avatars.`,
|
|
106052
106091
|
databases: `(Legacy) The databases command allows you to create structured collections of documents and query and filter lists of documents.`,
|
|
106053
106092
|
"tables-db": `The tables-db command allows you to create structured tables of columns and query and filter lists of rows.`,
|
|
106054
|
-
init: `The init command provides a convenient wrapper for creating and initializing projects, functions, collections, buckets, teams, messaging-topics, and
|
|
106093
|
+
init: `The init command provides a convenient wrapper for creating and initializing projects, functions, collections, buckets, teams, messaging-topics, and skills in ${SDK_TITLE}.`,
|
|
106055
106094
|
push: `The push command provides a convenient wrapper for pushing your functions, collections, buckets, teams, and messaging-topics.`,
|
|
106056
106095
|
run: `The run command allows you to run the project locally to allow easy development and quick debugging.`,
|
|
106057
106096
|
functions: `The functions command allows you to view, create, and manage your Cloud Functions.`,
|
|
@@ -110134,7 +110173,7 @@ async function downloadDeploymentCode(params) {
|
|
|
110134
110173
|
}
|
|
110135
110174
|
} catch (e) {
|
|
110136
110175
|
if (e instanceof AppwriteException) {
|
|
110137
|
-
error51(e
|
|
110176
|
+
error51(getErrorMessage(e));
|
|
110138
110177
|
return;
|
|
110139
110178
|
} else {
|
|
110140
110179
|
throw e;
|
|
@@ -112057,12 +112096,12 @@ async function getTerminalImage() {
|
|
|
112057
112096
|
);
|
|
112058
112097
|
return terminalImageModulePromise;
|
|
112059
112098
|
}
|
|
112060
|
-
function
|
|
112099
|
+
function getErrorMessage2(error52) {
|
|
112061
112100
|
if (error52 instanceof Error && error52.message.trim().length > 0) {
|
|
112062
112101
|
return error52.message.trim();
|
|
112063
112102
|
}
|
|
112064
112103
|
if (Array.isArray(error52)) {
|
|
112065
|
-
const messages = error52.map((entry) =>
|
|
112104
|
+
const messages = error52.map((entry) => getErrorMessage2(entry)).filter((entry) => entry !== "Unknown error");
|
|
112066
112105
|
if (messages.length > 0) {
|
|
112067
112106
|
return messages.join("; ");
|
|
112068
112107
|
}
|
|
@@ -112220,7 +112259,7 @@ async function renderSiteTerminalPreview(params) {
|
|
|
112220
112259
|
};
|
|
112221
112260
|
} catch (previewError) {
|
|
112222
112261
|
warnings.add(
|
|
112223
|
-
`${label === "dark" ? "Dark mode" : "Light mode"} screenshot: ${
|
|
112262
|
+
`${label === "dark" ? "Dark mode" : "Light mode"} screenshot: ${getErrorMessage2(previewError)}`
|
|
112224
112263
|
);
|
|
112225
112264
|
}
|
|
112226
112265
|
}
|
|
@@ -113946,7 +113985,7 @@ var Push = class {
|
|
|
113946
113985
|
storageService: await getStorageService(consoleClient)
|
|
113947
113986
|
};
|
|
113948
113987
|
} catch (previewSetupError) {
|
|
113949
|
-
sitePreviewSetupWarning =
|
|
113988
|
+
sitePreviewSetupWarning = getErrorMessage2(previewSetupError);
|
|
113950
113989
|
}
|
|
113951
113990
|
}
|
|
113952
113991
|
process.stdout.write("\n");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../lib/auth/session.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,YAAY,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../lib/auth/session.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,YAAY,MAAM,cAAc,CAAC;AAUxC;;GAEG;AACH,eAAO,MAAM,UAAU,GAAI,WAAW,MAAM,KAAG,WAAW,GAAG,SACL,CAAC;AAEzD,eAAO,MAAM,yBAAyB,GACpC,UAAU,MAAM,EAChB,aAAY,OAAsC,KACjD,YAQF,CAAC;AAEF,eAAO,MAAM,cAAc,QAAO,OACuC,CAAC;AAE1E;;;GAGG;AACH,eAAO,MAAM,kBAAkB,GAAI,WAAW,MAAM,KAAG,OAGtD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,GAAI,WAAW,MAAM,KAAG,OAGnD,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAI,WAAW,MAAM,KAAG,MAAM,GAAG,SAMjE,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAAI,WAAW,MAAM,KAAG,IAIzD,CAAC;AAEF,eAAO,MAAM,6BAA6B,GACxC,oBAAoB,MAAM,EAC1B,oBAAoB,MAAM,EAAE,KAC3B,IAOF,CAAC;AAEF,eAAO,MAAM,oBAAoB,QAAO,IAKvC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,GAC9B,WAAW,MAAM,KAChB,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAuC9C,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,cAAc,GACzB,YAAY,MAAM,EAAE,KACnB,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,EAAE,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CA2BnE,CAAC;AAEF,eAAO,MAAM,0BAA0B,GACrC,iBAAiB,MAAM,KACtB,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAoB7C,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,GAAI,oBAAoB,MAAM,EAAE,KAAG,MAAM,EAwBtE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generic.d.ts","sourceRoot":"","sources":["../../../lib/commands/generic.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAiBpC,OAAO,EAAqB,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAQnE,OAAO,EAAE,YAAY,EAAE,CAAC;AAaxB,eAAO,MAAM,MAAM,SAgChB,CAAC;AAEJ,eAAO,MAAM,QAAQ,SAMlB,CAAC;AAEJ,eAAO,MAAM,KAAK,SAkBmB,CAAC;AAEtC,eAAO,MAAM,MAAM,
|
|
1
|
+
{"version":3,"file":"generic.d.ts","sourceRoot":"","sources":["../../../lib/commands/generic.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAiBpC,OAAO,EAAqB,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAQnE,OAAO,EAAE,YAAY,EAAE,CAAC;AAaxB,eAAO,MAAM,MAAM,SAgChB,CAAC;AAEJ,eAAO,MAAM,QAAQ,SAMlB,CAAC;AAEJ,eAAO,MAAM,KAAK,SAkBmB,CAAC;AAEtC,eAAO,MAAM,MAAM,SAsEhB,CAAC;AAWJ,eAAO,MAAM,MAAM,SAuIhB,CAAC;AAEJ,eAAO,MAAM,OAAO,QAAa,OAAO,CAAC,IAAI,CAmB5C,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deployment.d.ts","sourceRoot":"","sources":["../../../../lib/commands/utils/deployment.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,MAAM,EAAqB,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"deployment.d.ts","sourceRoot":"","sources":["../../../../lib/commands/utils/deployment.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,MAAM,EAAqB,MAAM,sBAAsB,CAAC;AAiBjE,UAAU,oBAAoB;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,KAAK,CAAC;QACjB,GAAG,EAAE,MAAM,CAAC;KACb,CAAC,CAAC;CACJ;AAED,UAAU,iBAAiB;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAWD,UAAU,4BAA4B;IACpC,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5B;AAED,UAAU,4BAA4B;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,kBAAkB,EAAE,CAAC,UAAU,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAC5D,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,UAAU,oBAAoB;IAC5B,MAAM,EAAE,CAAC,UAAU,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAChD,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,WAAW,EAAE,MAAM,MAAM,CAAC;IAC1B,cAAc,EAAE,MAAM,OAAO,CAAC;CAC/B;AAED,UAAU,2BAA2B;IACnC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,OAAO,CAAC;CAC3B;AAoGD,wBAAgB,0BAA0B,CACxC,OAAO,GAAE,2BAAgC,GACxC,oBAAoB,CAwFtB;AAaD,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,4BAA4B,GACnC,OAAO,CAAC,4BAA4B,GAAG,IAAI,CAAC,CAmI9C;AAoJD;;;GAGG;AACH,wBAAsB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAWtE;AAED;;GAEG;AACH,wBAAsB,sBAAsB,CAAC,MAAM,EAAE;IACnD,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC9C,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,eAAe,EAAE,MAAM,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACrD,cAAc,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,MAAM,CAAC;IACjD,aAAa,EAAE,MAAM,CAAC;CACvB,GAAG,OAAO,CAAC,IAAI,CAAC,CA6EhB;AAED,MAAM,WAAW,oBAAoB;IACnC,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,CAAC,QAAQ,EAAE,IAAI,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACjE,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,aAAa,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACrE,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;CAC3C;AAED,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,iBAAiB,CAAC;IAC9B,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;GAGG;AACH,wBAAsB,cAAc,CAClC,MAAM,EAAE,oBAAoB,GAC3B,OAAO,CAAC,oBAAoB,CAAC,CA8C/B"}
|
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 = "22.
|
|
3
|
+
export declare const SDK_VERSION = "22.4.0";
|
|
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";
|
|
@@ -15,7 +15,7 @@ export declare const GITHUB_REPO = "appwrite/sdk-for-cli";
|
|
|
15
15
|
export declare const GITHUB_RELEASES_URL = "https://github.com/appwrite/sdk-for-cli/releases";
|
|
16
16
|
export declare const DEFAULT_ENDPOINT = "https://cloud.appwrite.io/v1";
|
|
17
17
|
export declare const OAUTH2_CLIENT_ID = "appwrite-cli";
|
|
18
|
-
export declare const OAUTH2_SCOPES = "openid email profile
|
|
18
|
+
export declare const OAUTH2_SCOPES = "openid email profile all";
|
|
19
19
|
export declare const CONFIG_RESOURCE_KEYS: readonly ["databases", "functions", "topics", "messages", "sites", "buckets", "tablesDB", "tables", "teams", "webhooks", "collections"];
|
|
20
20
|
export declare const TOP_LEVEL_RESOURCE_ARRAY_KEYS: Set<string>;
|
|
21
21
|
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../lib/constants.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,SAAS,aAAa,CAAC;AACpC,eAAO,MAAM,eAAe,aAAa,CAAC;AAC1C,eAAO,MAAM,WAAW,WAAW,CAAC;AACpC,eAAO,MAAM,QAAQ,iBAAiB,CAAC;AACvC,eAAO,MAAM,YAAY,YAAY,CAAC;AACtC,eAAO,MAAM,YAAY,QAAQ,CAAC;AAClC,eAAO,MAAM,QAAQ,wXAA4Z,CAAC;AAGlb,eAAO,MAAM,eAAe,aAAa,CAAC;AAE1C,eAAO,MAAM,wBAAwB,QAAsB,CAAC;AAG5D,eAAO,MAAM,YAAY,sBAAsB,CAAC;AAChD,eAAO,MAAM,gBAAgB,+BAA6B,CAAC;AAG3D,eAAO,MAAM,gBAAgB,iBAAiB,CAAC;AAC/C,eAAO,MAAM,gBAAgB,mDAA0D,CAAC;AAGxF,eAAO,MAAM,WAAW,yBAAyB,CAAC;AAClD,eAAO,MAAM,mBAAmB,qDAA+C,CAAC;AAGhF,eAAO,MAAM,gBAAgB,iCAAiC,CAAC;AAG/D,eAAO,MAAM,gBAAgB,iBAAiB,CAAC;AAC/C,eAAO,MAAM,aAAa,
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../lib/constants.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,SAAS,aAAa,CAAC;AACpC,eAAO,MAAM,eAAe,aAAa,CAAC;AAC1C,eAAO,MAAM,WAAW,WAAW,CAAC;AACpC,eAAO,MAAM,QAAQ,iBAAiB,CAAC;AACvC,eAAO,MAAM,YAAY,YAAY,CAAC;AACtC,eAAO,MAAM,YAAY,QAAQ,CAAC;AAClC,eAAO,MAAM,QAAQ,wXAA4Z,CAAC;AAGlb,eAAO,MAAM,eAAe,aAAa,CAAC;AAE1C,eAAO,MAAM,wBAAwB,QAAsB,CAAC;AAG5D,eAAO,MAAM,YAAY,sBAAsB,CAAC;AAChD,eAAO,MAAM,gBAAgB,+BAA6B,CAAC;AAG3D,eAAO,MAAM,gBAAgB,iBAAiB,CAAC;AAC/C,eAAO,MAAM,gBAAgB,mDAA0D,CAAC;AAGxF,eAAO,MAAM,WAAW,yBAAyB,CAAC;AAClD,eAAO,MAAM,mBAAmB,qDAA+C,CAAC;AAGhF,eAAO,MAAM,gBAAgB,iCAAiC,CAAC;AAG/D,eAAO,MAAM,gBAAgB,iBAAiB,CAAC;AAC/C,eAAO,MAAM,aAAa,6BAA6B,CAAC;AAGxD,eAAO,MAAM,oBAAoB,yIAYvB,CAAC;AAEX,eAAO,MAAM,6BAA6B,aAEzC,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":"AAcA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAS5C,QAAA,MAAM,SAAS,EAAE,SAWhB,CAAC;AAEF,KAAK,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAkO1C,eAAO,MAAM,KAAK,GAAI,MAAM,OAAO,KAAG,IAsGrC,CAAC;AAKF,KAAK,iBAAiB,GAAG;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAyLF,eAAO,MAAM,SAAS,GACpB,MAAM,KAAK,CAAC,UAAU,GAAG,IAAI,GAAG,SAAS,CAAC,EAC1C,UAAS,iBAAsB,KAC9B,IAqFF,CAAC;AAEF,eAAO,MAAM,QAAQ,GAAI,MAAM,OAAO,KAAG,IAExC,CAAC;
|
|
1
|
+
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../lib/parser.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAS5C,QAAA,MAAM,SAAS,EAAE,SAWhB,CAAC;AAEF,KAAK,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAkO1C,eAAO,MAAM,KAAK,GAAI,MAAM,OAAO,KAAG,IAsGrC,CAAC;AAKF,KAAK,iBAAiB,GAAG;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAyLF,eAAO,MAAM,SAAS,GACpB,MAAM,KAAK,CAAC,UAAU,GAAG,IAAI,GAAG,SAAS,CAAC,EAC1C,UAAS,iBAAsB,KAC9B,IAqFF,CAAC;AAEF,eAAO,MAAM,QAAQ,GAAI,MAAM,OAAO,KAAG,IAExC,CAAC;AA6CF,eAAO,MAAM,iBAAiB,GAAI,KAAK,KAAK,KAAG,MA8B9C,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,KAAK,KAAK,KAAG,IA+DvC,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,eAAe,GAC1B,OAAO,MAAM,GAAG,SAAS,EACzB,YAAY,MAAM,KACjB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAkB5B,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"}
|
package/dist/lib/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../lib/utils.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAEnD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAczD,eAAO,MAAM,oBAAoB,GAC/B,SAAS,MAAM,CAAC,OAAO,EACvB,WAAW,MAAM,CAAC,UAAU,EAC5B,cAAc,MAAM,CAAC,UAAU,EAAE,KAChC,YAqFF,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAC/B,OAAO,MAAM,EACb,UAAU,MAAM,KACf,MASF,CAAC;AAEF,KAAK,eAAe,GAAG;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,eAAO,MAAM,wBAAwB,GAAI,MAAM,eAAe,KAAG,OAEhE,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,OAAO,OAAO,KAAG,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../lib/utils.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAEnD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAczD,eAAO,MAAM,oBAAoB,GAC/B,SAAS,MAAM,CAAC,OAAO,EACvB,WAAW,MAAM,CAAC,UAAU,EAC5B,cAAc,MAAM,CAAC,UAAU,EAAE,KAChC,YAqFF,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAC/B,OAAO,MAAM,EACb,UAAU,MAAM,KACf,MASF,CAAC;AAEF,KAAK,eAAe,GAAG;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,eAAO,MAAM,wBAAwB,GAAI,MAAM,eAAe,KAAG,OAEhE,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,OAAO,OAAO,KAAG,MAoBhD,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,KAAK,GAAG,UAAU,GAAG,YAAY,CAAC;AAEnE,KAAK,oBAAoB,GAAG;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AAuGF,eAAO,MAAM,wBAAwB,QAAO,kBAAkB,GAAG,IAchE,CAAC;AAcF,eAAO,MAAM,2BAA2B,GACtC,UAAS;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAO,KACnC,MAAM,GAAG,IAsCX,CAAC;AAkDF,eAAO,MAAM,eAAe,GAAI,UAAU,MAAM,KAAG,OAUlD,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAAI,UAAU,MAAM,KAAG,OAO1D,CAAC;AAEF,eAAO,MAAM,sBAAsB,GAAI,UAAU,MAAM,KAAG,MAAM,GAAG,IAalE,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAAI,UAAU,MAAM,KAAG,OACuB,CAAC;AAgC/E,eAAO,MAAM,oBAAoB,GAAI,UAAU,MAAM,KAAG,OAWvD,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,UAAU,MAAM,KAAG,MAiBpD,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAChC,UAAU,MAAM,EAChB,WAAW,MAAM,EACjB,gBAAgB,MAAM,KACrB,MAmBF,CAAC;AAEF,eAAO,MAAM,+BAA+B,GAC1C,UAAU,MAAM,EAChB,WAAW,MAAM,EACjB,YAAY,MAAM,EAClB,cAAc,MAAM,EACpB,gBAAgB,MAAM,KACrB,MAGF,CAAC;AAEF,eAAO,MAAM,2BAA2B,GACtC,UAAU,MAAM,EAChB,WAAW,MAAM,EACjB,QAAQ,MAAM,EACd,cAAc,MAAM,EACpB,gBAAgB,MAAM,KACrB,MAGF,CAAC;AAqIF,eAAO,MAAM,qBAAqB,GAChC,gBAAgB,MAAM,EACtB,eAAe,MAAM,KACpB,IAeF,CAAC;AAEF;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,GAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAO,GACnC,OAAO,CAAC,MAAM,CAAC,CAiBjB;AAED,wBAAsB,+BAA+B,CACnD,MAAM,EAAE,kBAAkB,GAAG,IAAI,EACjC,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,MAAM,CAAC,CAQjB;AAED,wBAAsB,sCAAsC,CAC1D,OAAO,GAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAO,GACnC,OAAO,CAAC,MAAM,CAAC,CAEjB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAavE;AAED,wBAAsB,2BAA2B,CAC/C,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAsExB;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;AAKD,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CA6B7C;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/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"type": "module",
|
|
4
4
|
"homepage": "https://appwrite.io/support",
|
|
5
5
|
"description": "Appwrite is an open-source self-hosted backend server that abstracts and simplifies complex and repetitive development tasks behind a very simple REST API",
|
|
6
|
-
"version": "22.
|
|
6
|
+
"version": "22.4.0",
|
|
7
7
|
"license": "BSD-3-Clause",
|
|
8
8
|
"main": "dist/index.cjs",
|
|
9
9
|
"module": "dist/index.js",
|