appwrite-cli 15.0.0 → 15.1.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/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # Change Log
2
2
 
3
+ ## 15.1.0
4
+
5
+ * Added `resolveFileParam` to convert file or directory paths into `File` objects and tar.gz packages
6
+
3
7
  ## 15.0.0
4
8
 
5
9
  * Breaking: Separated `specification` with `buildSpecification` and `runtimeSpecification`; added `deploymentRetention` to both functions and sites
@@ -7,6 +11,12 @@
7
11
  * Updated `init sites` prompts to select `buildSpecification` and `runtimeSpecification`
8
12
  * Improved unauthorized error messages
9
13
 
14
+ ## 14.0.1
15
+
16
+ * Fixed `push tables` not passing `encrypt` parameter for varchar, text, mediumtext, and longtext string types
17
+ * Fixed NVM installation path not being detected by `update` command
18
+ * Updated `tar` dependency to v7.4.3
19
+
10
20
  ## 14.0.0
11
21
 
12
22
  * Breaking: Changed createDeployment signature; activate option now optional with default true; parameter order updated
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
- 15.0.0
32
+ 15.1.0
33
33
  ```
34
34
 
35
35
  ### Install using prebuilt binaries
@@ -60,7 +60,7 @@ $ scoop install https://raw.githubusercontent.com/appwrite/sdk-for-cli/master/sc
60
60
  Once the installation completes, you can verify your install using
61
61
  ```
62
62
  $ appwrite -v
63
- 15.0.0
63
+ 15.1.0
64
64
  ```
65
65
 
66
66
  ## Getting Started
@@ -3886,7 +3886,7 @@ var require_has_flag = __commonJS({
3886
3886
  var require_supports_color = __commonJS({
3887
3887
  "node_modules/supports-color/index.js"(exports, module) {
3888
3888
  "use strict";
3889
- var os6 = __require("os");
3889
+ var os7 = __require("os");
3890
3890
  var tty = __require("tty");
3891
3891
  var hasFlag = require_has_flag();
3892
3892
  var { env } = process;
@@ -3934,7 +3934,7 @@ var require_supports_color = __commonJS({
3934
3934
  return min;
3935
3935
  }
3936
3936
  if (process.platform === "win32") {
3937
- const osRelease = os6.release().split(".");
3937
+ const osRelease = os7.release().split(".");
3938
3938
  if (Number(osRelease[0]) >= 10 && Number(osRelease[2]) >= 10586) {
3939
3939
  return Number(osRelease[2]) >= 14931 ? 3 : 2;
3940
3940
  }
@@ -35908,7 +35908,7 @@ var require_has_flag2 = __commonJS({
35908
35908
  var require_supports_colors = __commonJS({
35909
35909
  "node_modules/@colors/colors/lib/system/supports-colors.js"(exports, module) {
35910
35910
  "use strict";
35911
- var os6 = __require("os");
35911
+ var os7 = __require("os");
35912
35912
  var hasFlag = require_has_flag2();
35913
35913
  var env = process.env;
35914
35914
  var forceColor = void 0;
@@ -35946,7 +35946,7 @@ var require_supports_colors = __commonJS({
35946
35946
  }
35947
35947
  var min = forceColor ? 1 : 0;
35948
35948
  if (process.platform === "win32") {
35949
- var osRelease = os6.release().split(".");
35949
+ var osRelease = os7.release().split(".");
35950
35950
  if (Number(process.versions.node.split(".")[0]) >= 8 && Number(osRelease[0]) >= 10 && Number(osRelease[2]) >= 10586) {
35951
35951
  return Number(osRelease[2]) >= 14931 ? 3 : 2;
35952
35952
  }
@@ -62387,7 +62387,7 @@ var require_has_flag3 = __commonJS({
62387
62387
  var require_supports_color2 = __commonJS({
62388
62388
  "node_modules/inquirer-search-list/node_modules/chalk/node_modules/supports-color/index.js"(exports, module) {
62389
62389
  "use strict";
62390
- var os6 = __require("os");
62390
+ var os7 = __require("os");
62391
62391
  var hasFlag = require_has_flag3();
62392
62392
  var env = process.env;
62393
62393
  var forceColor;
@@ -62425,7 +62425,7 @@ var require_supports_color2 = __commonJS({
62425
62425
  }
62426
62426
  const min = forceColor ? 1 : 0;
62427
62427
  if (process.platform === "win32") {
62428
- const osRelease = os6.release().split(".");
62428
+ const osRelease = os7.release().split(".");
62429
62429
  if (Number(process.versions.node.split(".")[0]) >= 8 && Number(osRelease[0]) >= 10 && Number(osRelease[2]) >= 10586) {
62430
62430
  return Number(osRelease[2]) >= 14931 ? 3 : 2;
62431
62431
  }
@@ -68582,8 +68582,8 @@ var require_rx_lite = __commonJS({
68582
68582
  checkDisposed(this);
68583
68583
  if (!this.isStopped) {
68584
68584
  this.isStopped = true;
68585
- for (var i = 0, os6 = cloneArray(this.observers), len = os6.length; i < len; i++) {
68586
- os6[i].onCompleted();
68585
+ for (var i = 0, os7 = cloneArray(this.observers), len = os7.length; i < len; i++) {
68586
+ os7[i].onCompleted();
68587
68587
  }
68588
68588
  this.observers.length = 0;
68589
68589
  }
@@ -68598,8 +68598,8 @@ var require_rx_lite = __commonJS({
68598
68598
  this.isStopped = true;
68599
68599
  this.error = error49;
68600
68600
  this.hasError = true;
68601
- for (var i = 0, os6 = cloneArray(this.observers), len = os6.length; i < len; i++) {
68602
- os6[i].onError(error49);
68601
+ for (var i = 0, os7 = cloneArray(this.observers), len = os7.length; i < len; i++) {
68602
+ os7[i].onError(error49);
68603
68603
  }
68604
68604
  this.observers.length = 0;
68605
68605
  }
@@ -68611,8 +68611,8 @@ var require_rx_lite = __commonJS({
68611
68611
  onNext: function(value) {
68612
68612
  checkDisposed(this);
68613
68613
  if (!this.isStopped) {
68614
- for (var i = 0, os6 = cloneArray(this.observers), len = os6.length; i < len; i++) {
68615
- os6[i].onNext(value);
68614
+ for (var i = 0, os7 = cloneArray(this.observers), len = os7.length; i < len; i++) {
68615
+ os7[i].onNext(value);
68616
68616
  }
68617
68617
  }
68618
68618
  },
@@ -68672,16 +68672,16 @@ var require_rx_lite = __commonJS({
68672
68672
  checkDisposed(this);
68673
68673
  if (!this.isStopped) {
68674
68674
  this.isStopped = true;
68675
- var os6 = cloneArray(this.observers), len = os6.length;
68675
+ var os7 = cloneArray(this.observers), len = os7.length;
68676
68676
  if (this.hasValue) {
68677
68677
  for (i = 0; i < len; i++) {
68678
- var o = os6[i];
68678
+ var o = os7[i];
68679
68679
  o.onNext(this.value);
68680
68680
  o.onCompleted();
68681
68681
  }
68682
68682
  } else {
68683
68683
  for (i = 0; i < len; i++) {
68684
- os6[i].onCompleted();
68684
+ os7[i].onCompleted();
68685
68685
  }
68686
68686
  }
68687
68687
  this.observers.length = 0;
@@ -68697,8 +68697,8 @@ var require_rx_lite = __commonJS({
68697
68697
  this.isStopped = true;
68698
68698
  this.hasError = true;
68699
68699
  this.error = error49;
68700
- for (var i = 0, os6 = cloneArray(this.observers), len = os6.length; i < len; i++) {
68701
- os6[i].onError(error49);
68700
+ for (var i = 0, os7 = cloneArray(this.observers), len = os7.length; i < len; i++) {
68701
+ os7[i].onError(error49);
68702
68702
  }
68703
68703
  this.observers.length = 0;
68704
68704
  }
@@ -68806,8 +68806,8 @@ var require_rx_lite = __commonJS({
68806
68806
  return;
68807
68807
  }
68808
68808
  this.isStopped = true;
68809
- for (var i = 0, os6 = cloneArray(this.observers), len = os6.length; i < len; i++) {
68810
- os6[i].onCompleted();
68809
+ for (var i = 0, os7 = cloneArray(this.observers), len = os7.length; i < len; i++) {
68810
+ os7[i].onCompleted();
68811
68811
  }
68812
68812
  this.observers.length = 0;
68813
68813
  },
@@ -68823,8 +68823,8 @@ var require_rx_lite = __commonJS({
68823
68823
  this.isStopped = true;
68824
68824
  this.hasError = true;
68825
68825
  this.error = error49;
68826
- for (var i = 0, os6 = cloneArray(this.observers), len = os6.length; i < len; i++) {
68827
- os6[i].onError(error49);
68826
+ for (var i = 0, os7 = cloneArray(this.observers), len = os7.length; i < len; i++) {
68827
+ os7[i].onError(error49);
68828
68828
  }
68829
68829
  this.observers.length = 0;
68830
68830
  },
@@ -68838,8 +68838,8 @@ var require_rx_lite = __commonJS({
68838
68838
  return;
68839
68839
  }
68840
68840
  this.value = value;
68841
- for (var i = 0, os6 = cloneArray(this.observers), len = os6.length; i < len; i++) {
68842
- os6[i].onNext(value);
68841
+ for (var i = 0, os7 = cloneArray(this.observers), len = os7.length; i < len; i++) {
68842
+ os7[i].onNext(value);
68843
68843
  }
68844
68844
  },
68845
68845
  /**
@@ -68920,8 +68920,8 @@ var require_rx_lite = __commonJS({
68920
68920
  var now = this.scheduler.now();
68921
68921
  this.q.push({ interval: now, value });
68922
68922
  this._trim(now);
68923
- for (var i = 0, os6 = cloneArray(this.observers), len = os6.length; i < len; i++) {
68924
- var observer = os6[i];
68923
+ for (var i = 0, os7 = cloneArray(this.observers), len = os7.length; i < len; i++) {
68924
+ var observer = os7[i];
68925
68925
  observer.onNext(value);
68926
68926
  observer.ensureActive();
68927
68927
  }
@@ -68940,8 +68940,8 @@ var require_rx_lite = __commonJS({
68940
68940
  this.hasError = true;
68941
68941
  var now = this.scheduler.now();
68942
68942
  this._trim(now);
68943
- for (var i = 0, os6 = cloneArray(this.observers), len = os6.length; i < len; i++) {
68944
- var observer = os6[i];
68943
+ for (var i = 0, os7 = cloneArray(this.observers), len = os7.length; i < len; i++) {
68944
+ var observer = os7[i];
68945
68945
  observer.onError(error49);
68946
68946
  observer.ensureActive();
68947
68947
  }
@@ -68958,8 +68958,8 @@ var require_rx_lite = __commonJS({
68958
68958
  this.isStopped = true;
68959
68959
  var now = this.scheduler.now();
68960
68960
  this._trim(now);
68961
- for (var i = 0, os6 = cloneArray(this.observers), len = os6.length; i < len; i++) {
68962
- var observer = os6[i];
68961
+ for (var i = 0, os7 = cloneArray(this.observers), len = os7.length; i < len; i++) {
68962
+ var observer = os7[i];
68963
68963
  observer.onCompleted();
68964
68964
  observer.ensureActive();
68965
68965
  }
@@ -71506,7 +71506,7 @@ var require_main2 = __commonJS({
71506
71506
  "node_modules/dotenv/lib/main.js"(exports, module) {
71507
71507
  var fs20 = __require("fs");
71508
71508
  var path16 = __require("path");
71509
- var os6 = __require("os");
71509
+ var os7 = __require("os");
71510
71510
  var crypto2 = __require("crypto");
71511
71511
  var packageJson = require_package2();
71512
71512
  var version4 = packageJson.version;
@@ -71629,7 +71629,7 @@ var require_main2 = __commonJS({
71629
71629
  return null;
71630
71630
  }
71631
71631
  function _resolveHome(envPath) {
71632
- return envPath[0] === "~" ? path16.join(os6.homedir(), envPath.slice(1)) : envPath;
71632
+ return envPath[0] === "~" ? path16.join(os7.homedir(), envPath.slice(1)) : envPath;
71633
71633
  }
71634
71634
  function _configVault(options) {
71635
71635
  const debug = Boolean(options && options.debug);
@@ -77144,7 +77144,7 @@ var require_constants9 = __commonJS({
77144
77144
  "use strict";
77145
77145
  var { sep } = __require("path");
77146
77146
  var { platform } = process;
77147
- var os6 = __require("os");
77147
+ var os7 = __require("os");
77148
77148
  exports.EV_ALL = "all";
77149
77149
  exports.EV_READY = "ready";
77150
77150
  exports.EV_ADD = "add";
@@ -77198,7 +77198,7 @@ var require_constants9 = __commonJS({
77198
77198
  exports.isWindows = platform === "win32";
77199
77199
  exports.isMacos = platform === "darwin";
77200
77200
  exports.isLinux = platform === "linux";
77201
- exports.isIBMi = os6.type() === "OS400";
77201
+ exports.isIBMi = os7.type() === "OS400";
77202
77202
  }
77203
77203
  });
77204
77204
 
@@ -85465,7 +85465,7 @@ var package_default = {
85465
85465
  type: "module",
85466
85466
  homepage: "https://appwrite.io/support",
85467
85467
  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",
85468
- version: "15.0.0",
85468
+ version: "15.1.0",
85469
85469
  license: "BSD-3-Clause",
85470
85470
  main: "dist/index.cjs",
85471
85471
  module: "dist/index.js",
@@ -99753,7 +99753,7 @@ import childProcess from "child_process";
99753
99753
  // lib/constants.ts
99754
99754
  var SDK_TITLE = "Appwrite";
99755
99755
  var SDK_TITLE_LOWER = "appwrite";
99756
- var SDK_VERSION = "15.0.0";
99756
+ var SDK_VERSION = "15.1.0";
99757
99757
  var SDK_NAME = "Command Line";
99758
99758
  var SDK_PLATFORM = "console";
99759
99759
  var SDK_LANGUAGE = "cli";
@@ -128025,6 +128025,7 @@ var ProjectNotInitializedError = class _ProjectNotInitializedError extends Error
128025
128025
 
128026
128026
  // lib/commands/utils/deployment.ts
128027
128027
  import fs4 from "fs";
128028
+ import os6 from "os";
128028
128029
  import path2 from "path";
128029
128030
 
128030
128031
  // node_modules/tar/dist/esm/index.min.js
@@ -130935,7 +130936,7 @@ var wo = (s3) => {
130935
130936
  // lib/commands/utils/deployment.ts
130936
130937
  var POLL_DEBOUNCE = 2e3;
130937
130938
  async function packageDirectory(dirPath) {
130938
- const tempFile = `${dirPath.replace(/[^a-zA-Z0-9]/g, "_")}-${Date.now()}.tar.gz`;
130939
+ const tempFile = path2.join(os6.tmpdir(), `appwrite-deploy-${Date.now()}.tar.gz`);
130939
130940
  await zn(
130940
130941
  {
130941
130942
  gzip: true,
@@ -130944,11 +130945,28 @@ async function packageDirectory(dirPath) {
130944
130945
  },
130945
130946
  ["."]
130946
130947
  );
130947
- const buffer = fs4.readFileSync(tempFile);
130948
- fs4.unlinkSync(tempFile);
130949
- return new File([buffer], path2.basename(tempFile), {
130950
- type: "application/gzip"
130951
- });
130948
+ try {
130949
+ const buffer = fs4.readFileSync(tempFile);
130950
+ return new File([buffer], path2.basename(tempFile), {
130951
+ type: "application/gzip"
130952
+ });
130953
+ } finally {
130954
+ if (fs4.existsSync(tempFile)) {
130955
+ fs4.unlinkSync(tempFile);
130956
+ }
130957
+ }
130958
+ }
130959
+ async function resolveFileParam(filePath) {
130960
+ const resolved = path2.resolve(filePath);
130961
+ if (!fs4.existsSync(resolved)) {
130962
+ throw new Error(`File or directory not found: ${resolved}`);
130963
+ }
130964
+ const stat = fs4.statSync(resolved);
130965
+ if (stat.isDirectory()) {
130966
+ return packageDirectory(resolved);
130967
+ }
130968
+ const buffer = fs4.readFileSync(resolved);
130969
+ return new File([buffer], path2.basename(resolved));
130952
130970
  }
130953
130971
  async function downloadDeploymentCode(params) {
130954
130972
  const {
@@ -140212,7 +140230,7 @@ This endpoint accepts a tar.gz file compressed with your code. Make sure to incl
140212
140230
 
140213
140231
  Use the "command" param to set the entrypoint used to execute your code.`).requiredOption(`--function-id <function-id>`, `Function ID.`).requiredOption(`--code <code>`, `Gzip file with your code package. When used with the Appwrite CLI, pass the path to your code directory, and the CLI will automatically package your code. Use a path that is within the current directory.`).requiredOption(`--activate <activate>`, `Automatically activate the deployment when it is finished building.`, parseBool).option(`--entrypoint <entrypoint>`, `Entrypoint File.`).option(`--commands <commands>`, `Build Commands.`).action(
140214
140232
  actionRunner(
140215
- async ({ functionId, code, activate, entrypoint, commands }) => parse3(await (await getFunctionsClient()).createDeployment(functionId, code, activate, entrypoint, commands))
140233
+ async ({ functionId, code, activate, entrypoint, commands }) => parse3(await (await getFunctionsClient()).createDeployment(functionId, code !== void 0 ? await resolveFileParam(code) : void 0, activate, entrypoint, commands))
140216
140234
  )
140217
140235
  );
140218
140236
  functions.command(`create-duplicate-deployment`).description(`Create a new build for an existing function deployment. This endpoint allows you to rebuild a deployment with the updated function configuration, including its entrypoint and build commands if they have been modified. The build process will be queued and executed asynchronously. The original deployment's code will be preserved and used for the new build.`).requiredOption(`--function-id <function-id>`, `Function ID.`).requiredOption(`--deployment-id <deployment-id>`, `Deployment ID.`).option(`--build-id <build-id>`, `Build unique ID.`).action(
@@ -141689,7 +141707,7 @@ sites.command(`create-deployment`).description(`Create a new site code deploymen
141689
141707
  (value) => value === void 0 ? true : parseBool(value)
141690
141708
  ).action(
141691
141709
  actionRunner(
141692
- async ({ siteId, code, installCommand, buildCommand, outputDirectory, activate }) => parse3(await (await getSitesClient()).createDeployment(siteId, code, installCommand, buildCommand, outputDirectory, activate))
141710
+ async ({ siteId, code, installCommand, buildCommand, outputDirectory, activate }) => parse3(await (await getSitesClient()).createDeployment(siteId, code !== void 0 ? await resolveFileParam(code) : void 0, installCommand, buildCommand, outputDirectory, activate))
141693
141711
  )
141694
141712
  );
141695
141713
  sites.command(`create-duplicate-deployment`).description(`Create a new build for an existing site deployment. This endpoint allows you to rebuild a deployment with the updated site configuration, including its commands and output directory if they have been modified. The build process will be queued and executed asynchronously. The original deployment's code will be preserved and used for the new build.`).requiredOption(`--site-id <site-id>`, `Site ID.`).requiredOption(`--deployment-id <deployment-id>`, `Deployment ID.`).action(
@@ -141903,7 +141921,7 @@ When the first request is sent, the server will return the **File** object, and
141903
141921
  If you're creating a new file using one of the Appwrite SDKs, all the chunking logic will be managed by the SDK internally.
141904
141922
  `).requiredOption(`--bucket-id <bucket-id>`, `Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https://appwrite.io/docs/server/storage#createBucket).`).requiredOption(`--file-id <file-id>`, `File 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(`--file <file>`, `Binary file. Appwrite SDKs provide helpers to handle file input. [Learn about file input](https://appwrite.io/docs/products/storage/upload-download#input-file).`).option(`--permissions [permissions...]`, `An array of permission strings. By default, only the current user is granted all permissions. [Learn more about permissions](https://appwrite.io/docs/permissions).`).action(
141905
141923
  actionRunner(
141906
- async ({ bucketId, fileId, file: file2, permissions }) => parse3(await (await getStorageClient()).createFile(bucketId, fileId, file2, permissions))
141924
+ async ({ bucketId, fileId, file: file2, permissions }) => parse3(await (await getStorageClient()).createFile(bucketId, fileId, file2 !== void 0 ? await resolveFileParam(file2) : void 0, permissions))
141907
141925
  )
141908
141926
  );
141909
141927
  storage.command(`get-file`).description(`Get a file by its unique ID. This endpoint response returns a JSON object with the file metadata.`).requiredOption(`--bucket-id <bucket-id>`, `Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https://appwrite.io/docs/server/storage#createBucket).`).requiredOption(`--file-id <file-id>`, `File ID.`).action(
package/dist/cli.cjs CHANGED
@@ -3880,7 +3880,7 @@ var require_has_flag = __commonJS({
3880
3880
  var require_supports_color = __commonJS({
3881
3881
  "node_modules/supports-color/index.js"(exports2, module2) {
3882
3882
  "use strict";
3883
- var os6 = require("os");
3883
+ var os7 = require("os");
3884
3884
  var tty = require("tty");
3885
3885
  var hasFlag = require_has_flag();
3886
3886
  var { env } = process;
@@ -3928,7 +3928,7 @@ var require_supports_color = __commonJS({
3928
3928
  return min;
3929
3929
  }
3930
3930
  if (process.platform === "win32") {
3931
- const osRelease = os6.release().split(".");
3931
+ const osRelease = os7.release().split(".");
3932
3932
  if (Number(osRelease[0]) >= 10 && Number(osRelease[2]) >= 10586) {
3933
3933
  return Number(osRelease[2]) >= 14931 ? 3 : 2;
3934
3934
  }
@@ -35902,7 +35902,7 @@ var require_has_flag2 = __commonJS({
35902
35902
  var require_supports_colors = __commonJS({
35903
35903
  "node_modules/@colors/colors/lib/system/supports-colors.js"(exports2, module2) {
35904
35904
  "use strict";
35905
- var os6 = require("os");
35905
+ var os7 = require("os");
35906
35906
  var hasFlag = require_has_flag2();
35907
35907
  var env = process.env;
35908
35908
  var forceColor = void 0;
@@ -35940,7 +35940,7 @@ var require_supports_colors = __commonJS({
35940
35940
  }
35941
35941
  var min = forceColor ? 1 : 0;
35942
35942
  if (process.platform === "win32") {
35943
- var osRelease = os6.release().split(".");
35943
+ var osRelease = os7.release().split(".");
35944
35944
  if (Number(process.versions.node.split(".")[0]) >= 8 && Number(osRelease[0]) >= 10 && Number(osRelease[2]) >= 10586) {
35945
35945
  return Number(osRelease[2]) >= 14931 ? 3 : 2;
35946
35946
  }
@@ -62381,7 +62381,7 @@ var require_has_flag3 = __commonJS({
62381
62381
  var require_supports_color2 = __commonJS({
62382
62382
  "node_modules/inquirer-search-list/node_modules/chalk/node_modules/supports-color/index.js"(exports2, module2) {
62383
62383
  "use strict";
62384
- var os6 = require("os");
62384
+ var os7 = require("os");
62385
62385
  var hasFlag = require_has_flag3();
62386
62386
  var env = process.env;
62387
62387
  var forceColor;
@@ -62419,7 +62419,7 @@ var require_supports_color2 = __commonJS({
62419
62419
  }
62420
62420
  const min = forceColor ? 1 : 0;
62421
62421
  if (process.platform === "win32") {
62422
- const osRelease = os6.release().split(".");
62422
+ const osRelease = os7.release().split(".");
62423
62423
  if (Number(process.versions.node.split(".")[0]) >= 8 && Number(osRelease[0]) >= 10 && Number(osRelease[2]) >= 10586) {
62424
62424
  return Number(osRelease[2]) >= 14931 ? 3 : 2;
62425
62425
  }
@@ -68576,8 +68576,8 @@ var require_rx_lite = __commonJS({
68576
68576
  checkDisposed(this);
68577
68577
  if (!this.isStopped) {
68578
68578
  this.isStopped = true;
68579
- for (var i = 0, os6 = cloneArray(this.observers), len = os6.length; i < len; i++) {
68580
- os6[i].onCompleted();
68579
+ for (var i = 0, os7 = cloneArray(this.observers), len = os7.length; i < len; i++) {
68580
+ os7[i].onCompleted();
68581
68581
  }
68582
68582
  this.observers.length = 0;
68583
68583
  }
@@ -68592,8 +68592,8 @@ var require_rx_lite = __commonJS({
68592
68592
  this.isStopped = true;
68593
68593
  this.error = error49;
68594
68594
  this.hasError = true;
68595
- for (var i = 0, os6 = cloneArray(this.observers), len = os6.length; i < len; i++) {
68596
- os6[i].onError(error49);
68595
+ for (var i = 0, os7 = cloneArray(this.observers), len = os7.length; i < len; i++) {
68596
+ os7[i].onError(error49);
68597
68597
  }
68598
68598
  this.observers.length = 0;
68599
68599
  }
@@ -68605,8 +68605,8 @@ var require_rx_lite = __commonJS({
68605
68605
  onNext: function(value) {
68606
68606
  checkDisposed(this);
68607
68607
  if (!this.isStopped) {
68608
- for (var i = 0, os6 = cloneArray(this.observers), len = os6.length; i < len; i++) {
68609
- os6[i].onNext(value);
68608
+ for (var i = 0, os7 = cloneArray(this.observers), len = os7.length; i < len; i++) {
68609
+ os7[i].onNext(value);
68610
68610
  }
68611
68611
  }
68612
68612
  },
@@ -68666,16 +68666,16 @@ var require_rx_lite = __commonJS({
68666
68666
  checkDisposed(this);
68667
68667
  if (!this.isStopped) {
68668
68668
  this.isStopped = true;
68669
- var os6 = cloneArray(this.observers), len = os6.length;
68669
+ var os7 = cloneArray(this.observers), len = os7.length;
68670
68670
  if (this.hasValue) {
68671
68671
  for (i = 0; i < len; i++) {
68672
- var o = os6[i];
68672
+ var o = os7[i];
68673
68673
  o.onNext(this.value);
68674
68674
  o.onCompleted();
68675
68675
  }
68676
68676
  } else {
68677
68677
  for (i = 0; i < len; i++) {
68678
- os6[i].onCompleted();
68678
+ os7[i].onCompleted();
68679
68679
  }
68680
68680
  }
68681
68681
  this.observers.length = 0;
@@ -68691,8 +68691,8 @@ var require_rx_lite = __commonJS({
68691
68691
  this.isStopped = true;
68692
68692
  this.hasError = true;
68693
68693
  this.error = error49;
68694
- for (var i = 0, os6 = cloneArray(this.observers), len = os6.length; i < len; i++) {
68695
- os6[i].onError(error49);
68694
+ for (var i = 0, os7 = cloneArray(this.observers), len = os7.length; i < len; i++) {
68695
+ os7[i].onError(error49);
68696
68696
  }
68697
68697
  this.observers.length = 0;
68698
68698
  }
@@ -68800,8 +68800,8 @@ var require_rx_lite = __commonJS({
68800
68800
  return;
68801
68801
  }
68802
68802
  this.isStopped = true;
68803
- for (var i = 0, os6 = cloneArray(this.observers), len = os6.length; i < len; i++) {
68804
- os6[i].onCompleted();
68803
+ for (var i = 0, os7 = cloneArray(this.observers), len = os7.length; i < len; i++) {
68804
+ os7[i].onCompleted();
68805
68805
  }
68806
68806
  this.observers.length = 0;
68807
68807
  },
@@ -68817,8 +68817,8 @@ var require_rx_lite = __commonJS({
68817
68817
  this.isStopped = true;
68818
68818
  this.hasError = true;
68819
68819
  this.error = error49;
68820
- for (var i = 0, os6 = cloneArray(this.observers), len = os6.length; i < len; i++) {
68821
- os6[i].onError(error49);
68820
+ for (var i = 0, os7 = cloneArray(this.observers), len = os7.length; i < len; i++) {
68821
+ os7[i].onError(error49);
68822
68822
  }
68823
68823
  this.observers.length = 0;
68824
68824
  },
@@ -68832,8 +68832,8 @@ var require_rx_lite = __commonJS({
68832
68832
  return;
68833
68833
  }
68834
68834
  this.value = value;
68835
- for (var i = 0, os6 = cloneArray(this.observers), len = os6.length; i < len; i++) {
68836
- os6[i].onNext(value);
68835
+ for (var i = 0, os7 = cloneArray(this.observers), len = os7.length; i < len; i++) {
68836
+ os7[i].onNext(value);
68837
68837
  }
68838
68838
  },
68839
68839
  /**
@@ -68914,8 +68914,8 @@ var require_rx_lite = __commonJS({
68914
68914
  var now = this.scheduler.now();
68915
68915
  this.q.push({ interval: now, value });
68916
68916
  this._trim(now);
68917
- for (var i = 0, os6 = cloneArray(this.observers), len = os6.length; i < len; i++) {
68918
- var observer = os6[i];
68917
+ for (var i = 0, os7 = cloneArray(this.observers), len = os7.length; i < len; i++) {
68918
+ var observer = os7[i];
68919
68919
  observer.onNext(value);
68920
68920
  observer.ensureActive();
68921
68921
  }
@@ -68934,8 +68934,8 @@ var require_rx_lite = __commonJS({
68934
68934
  this.hasError = true;
68935
68935
  var now = this.scheduler.now();
68936
68936
  this._trim(now);
68937
- for (var i = 0, os6 = cloneArray(this.observers), len = os6.length; i < len; i++) {
68938
- var observer = os6[i];
68937
+ for (var i = 0, os7 = cloneArray(this.observers), len = os7.length; i < len; i++) {
68938
+ var observer = os7[i];
68939
68939
  observer.onError(error49);
68940
68940
  observer.ensureActive();
68941
68941
  }
@@ -68952,8 +68952,8 @@ var require_rx_lite = __commonJS({
68952
68952
  this.isStopped = true;
68953
68953
  var now = this.scheduler.now();
68954
68954
  this._trim(now);
68955
- for (var i = 0, os6 = cloneArray(this.observers), len = os6.length; i < len; i++) {
68956
- var observer = os6[i];
68955
+ for (var i = 0, os7 = cloneArray(this.observers), len = os7.length; i < len; i++) {
68956
+ var observer = os7[i];
68957
68957
  observer.onCompleted();
68958
68958
  observer.ensureActive();
68959
68959
  }
@@ -71500,7 +71500,7 @@ var require_main2 = __commonJS({
71500
71500
  "node_modules/dotenv/lib/main.js"(exports2, module2) {
71501
71501
  var fs20 = require("fs");
71502
71502
  var path16 = require("path");
71503
- var os6 = require("os");
71503
+ var os7 = require("os");
71504
71504
  var crypto2 = require("crypto");
71505
71505
  var packageJson = require_package2();
71506
71506
  var version4 = packageJson.version;
@@ -71623,7 +71623,7 @@ var require_main2 = __commonJS({
71623
71623
  return null;
71624
71624
  }
71625
71625
  function _resolveHome(envPath) {
71626
- return envPath[0] === "~" ? path16.join(os6.homedir(), envPath.slice(1)) : envPath;
71626
+ return envPath[0] === "~" ? path16.join(os7.homedir(), envPath.slice(1)) : envPath;
71627
71627
  }
71628
71628
  function _configVault(options) {
71629
71629
  const debug = Boolean(options && options.debug);
@@ -77138,7 +77138,7 @@ var require_constants9 = __commonJS({
77138
77138
  "use strict";
77139
77139
  var { sep } = require("path");
77140
77140
  var { platform } = process;
77141
- var os6 = require("os");
77141
+ var os7 = require("os");
77142
77142
  exports2.EV_ALL = "all";
77143
77143
  exports2.EV_READY = "ready";
77144
77144
  exports2.EV_ADD = "add";
@@ -77192,7 +77192,7 @@ var require_constants9 = __commonJS({
77192
77192
  exports2.isWindows = platform === "win32";
77193
77193
  exports2.isMacos = platform === "darwin";
77194
77194
  exports2.isLinux = platform === "linux";
77195
- exports2.isIBMi = os6.type() === "OS400";
77195
+ exports2.isIBMi = os7.type() === "OS400";
77196
77196
  }
77197
77197
  });
77198
77198
 
@@ -85459,7 +85459,7 @@ var package_default = {
85459
85459
  type: "module",
85460
85460
  homepage: "https://appwrite.io/support",
85461
85461
  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",
85462
- version: "15.0.0",
85462
+ version: "15.1.0",
85463
85463
  license: "BSD-3-Clause",
85464
85464
  main: "dist/index.cjs",
85465
85465
  module: "dist/index.js",
@@ -99747,7 +99747,7 @@ var import_undici = __toESM(require_undici(), 1);
99747
99747
  // lib/constants.ts
99748
99748
  var SDK_TITLE = "Appwrite";
99749
99749
  var SDK_TITLE_LOWER = "appwrite";
99750
- var SDK_VERSION = "15.0.0";
99750
+ var SDK_VERSION = "15.1.0";
99751
99751
  var SDK_NAME = "Command Line";
99752
99752
  var SDK_PLATFORM = "console";
99753
99753
  var SDK_LANGUAGE = "cli";
@@ -128019,6 +128019,7 @@ var ProjectNotInitializedError = class _ProjectNotInitializedError extends Error
128019
128019
 
128020
128020
  // lib/commands/utils/deployment.ts
128021
128021
  var import_fs7 = __toESM(require("fs"), 1);
128022
+ var import_os5 = __toESM(require("os"), 1);
128022
128023
  var import_path6 = __toESM(require("path"), 1);
128023
128024
 
128024
128025
  // node_modules/tar/dist/esm/index.min.js
@@ -130929,7 +130930,7 @@ var wo = (s3) => {
130929
130930
  // lib/commands/utils/deployment.ts
130930
130931
  var POLL_DEBOUNCE = 2e3;
130931
130932
  async function packageDirectory(dirPath) {
130932
- const tempFile = `${dirPath.replace(/[^a-zA-Z0-9]/g, "_")}-${Date.now()}.tar.gz`;
130933
+ const tempFile = import_path6.default.join(import_os5.default.tmpdir(), `appwrite-deploy-${Date.now()}.tar.gz`);
130933
130934
  await zn(
130934
130935
  {
130935
130936
  gzip: true,
@@ -130938,11 +130939,28 @@ async function packageDirectory(dirPath) {
130938
130939
  },
130939
130940
  ["."]
130940
130941
  );
130941
- const buffer = import_fs7.default.readFileSync(tempFile);
130942
- import_fs7.default.unlinkSync(tempFile);
130943
- return new File([buffer], import_path6.default.basename(tempFile), {
130944
- type: "application/gzip"
130945
- });
130942
+ try {
130943
+ const buffer = import_fs7.default.readFileSync(tempFile);
130944
+ return new File([buffer], import_path6.default.basename(tempFile), {
130945
+ type: "application/gzip"
130946
+ });
130947
+ } finally {
130948
+ if (import_fs7.default.existsSync(tempFile)) {
130949
+ import_fs7.default.unlinkSync(tempFile);
130950
+ }
130951
+ }
130952
+ }
130953
+ async function resolveFileParam(filePath) {
130954
+ const resolved = import_path6.default.resolve(filePath);
130955
+ if (!import_fs7.default.existsSync(resolved)) {
130956
+ throw new Error(`File or directory not found: ${resolved}`);
130957
+ }
130958
+ const stat = import_fs7.default.statSync(resolved);
130959
+ if (stat.isDirectory()) {
130960
+ return packageDirectory(resolved);
130961
+ }
130962
+ const buffer = import_fs7.default.readFileSync(resolved);
130963
+ return new File([buffer], import_path6.default.basename(resolved));
130946
130964
  }
130947
130965
  async function downloadDeploymentCode(params) {
130948
130966
  const {
@@ -140206,7 +140224,7 @@ This endpoint accepts a tar.gz file compressed with your code. Make sure to incl
140206
140224
 
140207
140225
  Use the "command" param to set the entrypoint used to execute your code.`).requiredOption(`--function-id <function-id>`, `Function ID.`).requiredOption(`--code <code>`, `Gzip file with your code package. When used with the Appwrite CLI, pass the path to your code directory, and the CLI will automatically package your code. Use a path that is within the current directory.`).requiredOption(`--activate <activate>`, `Automatically activate the deployment when it is finished building.`, parseBool).option(`--entrypoint <entrypoint>`, `Entrypoint File.`).option(`--commands <commands>`, `Build Commands.`).action(
140208
140226
  actionRunner(
140209
- async ({ functionId, code, activate, entrypoint, commands }) => parse3(await (await getFunctionsClient()).createDeployment(functionId, code, activate, entrypoint, commands))
140227
+ async ({ functionId, code, activate, entrypoint, commands }) => parse3(await (await getFunctionsClient()).createDeployment(functionId, code !== void 0 ? await resolveFileParam(code) : void 0, activate, entrypoint, commands))
140210
140228
  )
140211
140229
  );
140212
140230
  functions.command(`create-duplicate-deployment`).description(`Create a new build for an existing function deployment. This endpoint allows you to rebuild a deployment with the updated function configuration, including its entrypoint and build commands if they have been modified. The build process will be queued and executed asynchronously. The original deployment's code will be preserved and used for the new build.`).requiredOption(`--function-id <function-id>`, `Function ID.`).requiredOption(`--deployment-id <deployment-id>`, `Deployment ID.`).option(`--build-id <build-id>`, `Build unique ID.`).action(
@@ -141683,7 +141701,7 @@ sites.command(`create-deployment`).description(`Create a new site code deploymen
141683
141701
  (value) => value === void 0 ? true : parseBool(value)
141684
141702
  ).action(
141685
141703
  actionRunner(
141686
- async ({ siteId, code, installCommand, buildCommand, outputDirectory, activate }) => parse3(await (await getSitesClient()).createDeployment(siteId, code, installCommand, buildCommand, outputDirectory, activate))
141704
+ async ({ siteId, code, installCommand, buildCommand, outputDirectory, activate }) => parse3(await (await getSitesClient()).createDeployment(siteId, code !== void 0 ? await resolveFileParam(code) : void 0, installCommand, buildCommand, outputDirectory, activate))
141687
141705
  )
141688
141706
  );
141689
141707
  sites.command(`create-duplicate-deployment`).description(`Create a new build for an existing site deployment. This endpoint allows you to rebuild a deployment with the updated site configuration, including its commands and output directory if they have been modified. The build process will be queued and executed asynchronously. The original deployment's code will be preserved and used for the new build.`).requiredOption(`--site-id <site-id>`, `Site ID.`).requiredOption(`--deployment-id <deployment-id>`, `Deployment ID.`).action(
@@ -141897,7 +141915,7 @@ When the first request is sent, the server will return the **File** object, and
141897
141915
  If you're creating a new file using one of the Appwrite SDKs, all the chunking logic will be managed by the SDK internally.
141898
141916
  `).requiredOption(`--bucket-id <bucket-id>`, `Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https://appwrite.io/docs/server/storage#createBucket).`).requiredOption(`--file-id <file-id>`, `File 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(`--file <file>`, `Binary file. Appwrite SDKs provide helpers to handle file input. [Learn about file input](https://appwrite.io/docs/products/storage/upload-download#input-file).`).option(`--permissions [permissions...]`, `An array of permission strings. By default, only the current user is granted all permissions. [Learn more about permissions](https://appwrite.io/docs/permissions).`).action(
141899
141917
  actionRunner(
141900
- async ({ bucketId, fileId, file: file2, permissions }) => parse3(await (await getStorageClient()).createFile(bucketId, fileId, file2, permissions))
141918
+ async ({ bucketId, fileId, file: file2, permissions }) => parse3(await (await getStorageClient()).createFile(bucketId, fileId, file2 !== void 0 ? await resolveFileParam(file2) : void 0, permissions))
141901
141919
  )
141902
141920
  );
141903
141921
  storage.command(`get-file`).description(`Get a file by its unique ID. This endpoint response returns a JSON object with the file metadata.`).requiredOption(`--bucket-id <bucket-id>`, `Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https://appwrite.io/docs/server/storage#createBucket).`).requiredOption(`--file-id <file-id>`, `File ID.`).action(
package/dist/index.cjs CHANGED
@@ -102,7 +102,7 @@ var require_main = __commonJS({
102
102
  "node_modules/dotenv/lib/main.js"(exports2, module2) {
103
103
  var fs9 = require("fs");
104
104
  var path7 = require("path");
105
- var os5 = require("os");
105
+ var os6 = require("os");
106
106
  var crypto2 = require("crypto");
107
107
  var packageJson = require_package();
108
108
  var version2 = packageJson.version;
@@ -225,7 +225,7 @@ var require_main = __commonJS({
225
225
  return null;
226
226
  }
227
227
  function _resolveHome(envPath) {
228
- return envPath[0] === "~" ? path7.join(os5.homedir(), envPath.slice(1)) : envPath;
228
+ return envPath[0] === "~" ? path7.join(os6.homedir(), envPath.slice(1)) : envPath;
229
229
  }
230
230
  function _configVault(options) {
231
231
  const debug = Boolean(options && options.debug);
@@ -1505,7 +1505,7 @@ var require_has_flag = __commonJS({
1505
1505
  var require_supports_color = __commonJS({
1506
1506
  "node_modules/supports-color/index.js"(exports2, module2) {
1507
1507
  "use strict";
1508
- var os5 = require("os");
1508
+ var os6 = require("os");
1509
1509
  var tty = require("tty");
1510
1510
  var hasFlag = require_has_flag();
1511
1511
  var { env } = process;
@@ -1553,7 +1553,7 @@ var require_supports_color = __commonJS({
1553
1553
  return min;
1554
1554
  }
1555
1555
  if (process.platform === "win32") {
1556
- const osRelease = os5.release().split(".");
1556
+ const osRelease = os6.release().split(".");
1557
1557
  if (Number(osRelease[0]) >= 10 && Number(osRelease[2]) >= 10586) {
1558
1558
  return Number(osRelease[2]) >= 14931 ? 3 : 2;
1559
1559
  }
@@ -55545,7 +55545,7 @@ var require_has_flag2 = __commonJS({
55545
55545
  var require_supports_colors = __commonJS({
55546
55546
  "node_modules/@colors/colors/lib/system/supports-colors.js"(exports2, module2) {
55547
55547
  "use strict";
55548
- var os5 = require("os");
55548
+ var os6 = require("os");
55549
55549
  var hasFlag = require_has_flag2();
55550
55550
  var env = process.env;
55551
55551
  var forceColor = void 0;
@@ -55583,7 +55583,7 @@ var require_supports_colors = __commonJS({
55583
55583
  }
55584
55584
  var min = forceColor ? 1 : 0;
55585
55585
  if (process.platform === "win32") {
55586
- var osRelease = os5.release().split(".");
55586
+ var osRelease = os6.release().split(".");
55587
55587
  if (Number(process.versions.node.split(".")[0]) >= 8 && Number(osRelease[0]) >= 10 && Number(osRelease[2]) >= 10586) {
55588
55588
  return Number(osRelease[2]) >= 14931 ? 3 : 2;
55589
55589
  }
@@ -62747,7 +62747,7 @@ var id_default = ID;
62747
62747
  // lib/constants.ts
62748
62748
  var SDK_TITLE = "Appwrite";
62749
62749
  var SDK_TITLE_LOWER = "appwrite";
62750
- var SDK_VERSION = "15.0.0";
62750
+ var SDK_VERSION = "15.1.0";
62751
62751
  var SDK_LOGO = "\n _ _ _ ___ __ _____\n /_\\ _ __ _ ____ ___ __(_) |_ ___ / __\\ / / \\_ \\\n //_\\\\| '_ \\| '_ \\ \\ /\\ / / '__| | __/ _ \\ / / / / / /\\/\n / _ \\ |_) | |_) \\ V V /| | | | || __/ / /___/ /___/\\/ /_\n \\_/ \\_/ .__/| .__/ \\_/\\_/ |_| |_|\\__\\___| \\____/\\____/\\____/\n |_| |_|\n\n";
62752
62752
  var EXECUTABLE_NAME = "appwrite";
62753
62753
  var NPM_PACKAGE_NAME = "appwrite-cli";
@@ -78144,6 +78144,7 @@ async function paginate(action, args = {}, limit = 100, wrapper = "", queries =
78144
78144
 
78145
78145
  // lib/commands/utils/deployment.ts
78146
78146
  var import_fs6 = __toESM(require("fs"), 1);
78147
+ var import_os3 = __toESM(require("os"), 1);
78147
78148
  var import_path5 = __toESM(require("path"), 1);
78148
78149
 
78149
78150
  // node_modules/tar/dist/esm/index.min.js
@@ -100476,7 +100477,7 @@ var package_default = {
100476
100477
  type: "module",
100477
100478
  homepage: "https://appwrite.io/support",
100478
100479
  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",
100479
- version: "15.0.0",
100480
+ version: "15.1.0",
100480
100481
  license: "BSD-3-Clause",
100481
100482
  main: "dist/index.cjs",
100482
100483
  module: "dist/index.js",
@@ -100777,7 +100778,7 @@ var commandDescriptions = {
100777
100778
  // lib/commands/utils/deployment.ts
100778
100779
  var POLL_DEBOUNCE = 2e3;
100779
100780
  async function packageDirectory(dirPath) {
100780
- const tempFile = `${dirPath.replace(/[^a-zA-Z0-9]/g, "_")}-${Date.now()}.tar.gz`;
100781
+ const tempFile = import_path5.default.join(import_os3.default.tmpdir(), `appwrite-deploy-${Date.now()}.tar.gz`);
100781
100782
  await zn(
100782
100783
  {
100783
100784
  gzip: true,
@@ -100786,11 +100787,16 @@ async function packageDirectory(dirPath) {
100786
100787
  },
100787
100788
  ["."]
100788
100789
  );
100789
- const buffer = import_fs6.default.readFileSync(tempFile);
100790
- import_fs6.default.unlinkSync(tempFile);
100791
- return new File([buffer], import_path5.default.basename(tempFile), {
100792
- type: "application/gzip"
100793
- });
100790
+ try {
100791
+ const buffer = import_fs6.default.readFileSync(tempFile);
100792
+ return new File([buffer], import_path5.default.basename(tempFile), {
100793
+ type: "application/gzip"
100794
+ });
100795
+ } finally {
100796
+ if (import_fs6.default.existsSync(tempFile)) {
100797
+ import_fs6.default.unlinkSync(tempFile);
100798
+ }
100799
+ }
100794
100800
  }
100795
100801
  async function downloadDeploymentCode(params) {
100796
100802
  const {
@@ -100901,7 +100907,7 @@ async function pushDeployment(params) {
100901
100907
  var import_chalk3 = __toESM(require_source(), 1);
100902
100908
 
100903
100909
  // lib/sdks.ts
100904
- var import_os3 = __toESM(require("os"), 1);
100910
+ var import_os4 = __toESM(require("os"), 1);
100905
100911
  var sdkForConsole = async (requiresAuth = true) => {
100906
100912
  const client = new Client();
100907
100913
  const endpoint = globalConfig2.getEndpoint() || DEFAULT_ENDPOINT;
@@ -100918,7 +100924,7 @@ var sdkForConsole = async (requiresAuth = true) => {
100918
100924
  "x-sdk-platform": "console",
100919
100925
  "x-sdk-language": "cli",
100920
100926
  "x-sdk-version": SDK_VERSION,
100921
- "user-agent": `AppwriteCLI/${SDK_VERSION} (${import_os3.default.type()} ${import_os3.default.version()}; ${import_os3.default.arch()})`
100927
+ "user-agent": `AppwriteCLI/${SDK_VERSION} (${import_os4.default.type()} ${import_os4.default.version()}; ${import_os4.default.arch()})`
100922
100928
  };
100923
100929
  client.setEndpoint(endpoint).setProject("console").setCookie(cookie).setSelfSigned(selfSigned).setLocale("en-US");
100924
100930
  return client;
@@ -100941,7 +100947,7 @@ var sdkForProject = async () => {
100941
100947
  "x-sdk-platform": "console",
100942
100948
  "x-sdk-language": "cli",
100943
100949
  "x-sdk-version": SDK_VERSION,
100944
- "user-agent": `AppwriteCLI/${SDK_VERSION} (${import_os3.default.type()} ${import_os3.default.version()}; ${import_os3.default.arch()})`
100950
+ "user-agent": `AppwriteCLI/${SDK_VERSION} (${import_os4.default.type()} ${import_os4.default.version()}; ${import_os4.default.arch()})`
100945
100951
  };
100946
100952
  client.setEndpoint(endpoint).setProject(project).setSelfSigned(selfSigned).setLocale("en-US");
100947
100953
  if (cookie) {
package/dist/index.js CHANGED
@@ -107,7 +107,7 @@ var require_main = __commonJS({
107
107
  "node_modules/dotenv/lib/main.js"(exports, module) {
108
108
  var fs9 = __require("fs");
109
109
  var path7 = __require("path");
110
- var os5 = __require("os");
110
+ var os6 = __require("os");
111
111
  var crypto2 = __require("crypto");
112
112
  var packageJson = require_package();
113
113
  var version2 = packageJson.version;
@@ -230,7 +230,7 @@ var require_main = __commonJS({
230
230
  return null;
231
231
  }
232
232
  function _resolveHome(envPath) {
233
- return envPath[0] === "~" ? path7.join(os5.homedir(), envPath.slice(1)) : envPath;
233
+ return envPath[0] === "~" ? path7.join(os6.homedir(), envPath.slice(1)) : envPath;
234
234
  }
235
235
  function _configVault(options) {
236
236
  const debug = Boolean(options && options.debug);
@@ -1510,7 +1510,7 @@ var require_has_flag = __commonJS({
1510
1510
  var require_supports_color = __commonJS({
1511
1511
  "node_modules/supports-color/index.js"(exports, module) {
1512
1512
  "use strict";
1513
- var os5 = __require("os");
1513
+ var os6 = __require("os");
1514
1514
  var tty = __require("tty");
1515
1515
  var hasFlag = require_has_flag();
1516
1516
  var { env } = process;
@@ -1558,7 +1558,7 @@ var require_supports_color = __commonJS({
1558
1558
  return min;
1559
1559
  }
1560
1560
  if (process.platform === "win32") {
1561
- const osRelease = os5.release().split(".");
1561
+ const osRelease = os6.release().split(".");
1562
1562
  if (Number(osRelease[0]) >= 10 && Number(osRelease[2]) >= 10586) {
1563
1563
  return Number(osRelease[2]) >= 14931 ? 3 : 2;
1564
1564
  }
@@ -55550,7 +55550,7 @@ var require_has_flag2 = __commonJS({
55550
55550
  var require_supports_colors = __commonJS({
55551
55551
  "node_modules/@colors/colors/lib/system/supports-colors.js"(exports, module) {
55552
55552
  "use strict";
55553
- var os5 = __require("os");
55553
+ var os6 = __require("os");
55554
55554
  var hasFlag = require_has_flag2();
55555
55555
  var env = process.env;
55556
55556
  var forceColor = void 0;
@@ -55588,7 +55588,7 @@ var require_supports_colors = __commonJS({
55588
55588
  }
55589
55589
  var min = forceColor ? 1 : 0;
55590
55590
  if (process.platform === "win32") {
55591
- var osRelease = os5.release().split(".");
55591
+ var osRelease = os6.release().split(".");
55592
55592
  if (Number(process.versions.node.split(".")[0]) >= 8 && Number(osRelease[0]) >= 10 && Number(osRelease[2]) >= 10586) {
55593
55593
  return Number(osRelease[2]) >= 14931 ? 3 : 2;
55594
55594
  }
@@ -62727,7 +62727,7 @@ var id_default = ID;
62727
62727
  // lib/constants.ts
62728
62728
  var SDK_TITLE = "Appwrite";
62729
62729
  var SDK_TITLE_LOWER = "appwrite";
62730
- var SDK_VERSION = "15.0.0";
62730
+ var SDK_VERSION = "15.1.0";
62731
62731
  var SDK_LOGO = "\n _ _ _ ___ __ _____\n /_\\ _ __ _ ____ ___ __(_) |_ ___ / __\\ / / \\_ \\\n //_\\\\| '_ \\| '_ \\ \\ /\\ / / '__| | __/ _ \\ / / / / / /\\/\n / _ \\ |_) | |_) \\ V V /| | | | || __/ / /___/ /___/\\/ /_\n \\_/ \\_/ .__/| .__/ \\_/\\_/ |_| |_|\\__\\___| \\____/\\____/\\____/\n |_| |_|\n\n";
62732
62732
  var EXECUTABLE_NAME = "appwrite";
62733
62733
  var NPM_PACKAGE_NAME = "appwrite-cli";
@@ -78124,6 +78124,7 @@ async function paginate(action, args = {}, limit = 100, wrapper = "", queries =
78124
78124
 
78125
78125
  // lib/commands/utils/deployment.ts
78126
78126
  import fs3 from "fs";
78127
+ import os4 from "os";
78127
78128
  import path from "path";
78128
78129
 
78129
78130
  // node_modules/tar/dist/esm/index.min.js
@@ -100456,7 +100457,7 @@ var package_default = {
100456
100457
  type: "module",
100457
100458
  homepage: "https://appwrite.io/support",
100458
100459
  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",
100459
- version: "15.0.0",
100460
+ version: "15.1.0",
100460
100461
  license: "BSD-3-Clause",
100461
100462
  main: "dist/index.cjs",
100462
100463
  module: "dist/index.js",
@@ -100757,7 +100758,7 @@ var commandDescriptions = {
100757
100758
  // lib/commands/utils/deployment.ts
100758
100759
  var POLL_DEBOUNCE = 2e3;
100759
100760
  async function packageDirectory(dirPath) {
100760
- const tempFile = `${dirPath.replace(/[^a-zA-Z0-9]/g, "_")}-${Date.now()}.tar.gz`;
100761
+ const tempFile = path.join(os4.tmpdir(), `appwrite-deploy-${Date.now()}.tar.gz`);
100761
100762
  await zn(
100762
100763
  {
100763
100764
  gzip: true,
@@ -100766,11 +100767,16 @@ async function packageDirectory(dirPath) {
100766
100767
  },
100767
100768
  ["."]
100768
100769
  );
100769
- const buffer = fs3.readFileSync(tempFile);
100770
- fs3.unlinkSync(tempFile);
100771
- return new File([buffer], path.basename(tempFile), {
100772
- type: "application/gzip"
100773
- });
100770
+ try {
100771
+ const buffer = fs3.readFileSync(tempFile);
100772
+ return new File([buffer], path.basename(tempFile), {
100773
+ type: "application/gzip"
100774
+ });
100775
+ } finally {
100776
+ if (fs3.existsSync(tempFile)) {
100777
+ fs3.unlinkSync(tempFile);
100778
+ }
100779
+ }
100774
100780
  }
100775
100781
  async function downloadDeploymentCode(params) {
100776
100782
  const {
@@ -100881,7 +100887,7 @@ async function pushDeployment(params) {
100881
100887
  var import_chalk3 = __toESM(require_source(), 1);
100882
100888
 
100883
100889
  // lib/sdks.ts
100884
- import os4 from "os";
100890
+ import os5 from "os";
100885
100891
  var sdkForConsole = async (requiresAuth = true) => {
100886
100892
  const client = new Client();
100887
100893
  const endpoint = globalConfig2.getEndpoint() || DEFAULT_ENDPOINT;
@@ -100898,7 +100904,7 @@ var sdkForConsole = async (requiresAuth = true) => {
100898
100904
  "x-sdk-platform": "console",
100899
100905
  "x-sdk-language": "cli",
100900
100906
  "x-sdk-version": SDK_VERSION,
100901
- "user-agent": `AppwriteCLI/${SDK_VERSION} (${os4.type()} ${os4.version()}; ${os4.arch()})`
100907
+ "user-agent": `AppwriteCLI/${SDK_VERSION} (${os5.type()} ${os5.version()}; ${os5.arch()})`
100902
100908
  };
100903
100909
  client.setEndpoint(endpoint).setProject("console").setCookie(cookie).setSelfSigned(selfSigned).setLocale("en-US");
100904
100910
  return client;
@@ -100921,7 +100927,7 @@ var sdkForProject = async () => {
100921
100927
  "x-sdk-platform": "console",
100922
100928
  "x-sdk-language": "cli",
100923
100929
  "x-sdk-version": SDK_VERSION,
100924
- "user-agent": `AppwriteCLI/${SDK_VERSION} (${os4.type()} ${os4.version()}; ${os4.arch()})`
100930
+ "user-agent": `AppwriteCLI/${SDK_VERSION} (${os5.type()} ${os5.version()}; ${os5.arch()})`
100925
100931
  };
100926
100932
  client.setEndpoint(endpoint).setProject(project).setSelfSigned(selfSigned).setLocale("en-US");
100927
100933
  if (cookie) {
@@ -1 +1 @@
1
- {"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../../../../lib/commands/services/functions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAuBpC,eAAO,MAAM,SAAS,SAIlB,CAAC"}
1
+ {"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../../../../lib/commands/services/functions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAwBpC,eAAO,MAAM,SAAS,SAIlB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"sites.d.ts","sourceRoot":"","sources":["../../../../lib/commands/services/sites.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAuBpC,eAAO,MAAM,KAAK,SAId,CAAC"}
1
+ {"version":3,"file":"sites.d.ts","sourceRoot":"","sources":["../../../../lib/commands/services/sites.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAwBpC,eAAO,MAAM,KAAK,SAId,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../../../lib/commands/services/storage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAuBpC,eAAO,MAAM,OAAO,SAIhB,CAAC"}
1
+ {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../../../lib/commands/services/storage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAwBpC,eAAO,MAAM,OAAO,SAIhB,CAAC"}
@@ -10,6 +10,11 @@ interface DeploymentDetails {
10
10
  status: string;
11
11
  [key: string]: unknown;
12
12
  }
13
+ /**
14
+ * Resolve a file path (file or directory) into a File object for upload.
15
+ * Directories are packaged into a tar.gz archive.
16
+ */
17
+ export declare function resolveFileParam(filePath: string): Promise<File>;
13
18
  /**
14
19
  * Download and extract deployment code for a resource
15
20
  */
@@ -1 +1 @@
1
- {"version":3,"file":"deployment.d.ts","sourceRoot":"","sources":["../../../../lib/commands/utils/deployment.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAqB,MAAM,sBAAsB,CAAC;AAKjE,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;AA0BD;;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,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,CA6C/B"}
1
+ {"version":3,"file":"deployment.d.ts","sourceRoot":"","sources":["../../../../lib/commands/utils/deployment.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAqB,MAAM,sBAAsB,CAAC;AAKjE,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;AA6BD;;;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,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,CA6C/B"}
@@ -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 = "15.0.0";
3
+ export declare const SDK_VERSION = "15.1.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";
package/install.ps1 CHANGED
@@ -13,8 +13,8 @@
13
13
  # You can use "View source" of this page to see the full script.
14
14
 
15
15
  # REPO
16
- $GITHUB_x64_URL = "https://github.com/appwrite/sdk-for-cli/releases/download/15.0.0/appwrite-cli-win-x64.exe"
17
- $GITHUB_arm64_URL = "https://github.com/appwrite/sdk-for-cli/releases/download/15.0.0/appwrite-cli-win-arm64.exe"
16
+ $GITHUB_x64_URL = "https://github.com/appwrite/sdk-for-cli/releases/download/15.1.0/appwrite-cli-win-x64.exe"
17
+ $GITHUB_arm64_URL = "https://github.com/appwrite/sdk-for-cli/releases/download/15.1.0/appwrite-cli-win-arm64.exe"
18
18
 
19
19
  $APPWRITE_BINARY_NAME = "appwrite.exe"
20
20
 
package/install.sh CHANGED
@@ -96,7 +96,7 @@ printSuccess() {
96
96
  downloadBinary() {
97
97
  echo "[2/4] Downloading executable for $OS ($ARCH) ..."
98
98
 
99
- GITHUB_LATEST_VERSION="15.0.0"
99
+ GITHUB_LATEST_VERSION="15.1.0"
100
100
  GITHUB_FILE="appwrite-cli-${OS}-${ARCH}"
101
101
  GITHUB_URL="https://github.com/$GITHUB_REPOSITORY_NAME/releases/download/$GITHUB_LATEST_VERSION/$GITHUB_FILE"
102
102
 
@@ -1,5 +1,6 @@
1
1
  import { Command } from "commander";
2
2
  import fs from "fs";
3
+ import { resolveFileParam } from "../utils/deployment.js";
3
4
  import { sdkForProject } from "../../sdks.js";
4
5
  import {
5
6
  actionRunner,
@@ -263,7 +264,7 @@ Use the "command" param to set the entrypoint used to execute your code.`)
263
264
  .action(
264
265
  actionRunner(
265
266
  async ({ functionId, code, activate, entrypoint, commands }) =>
266
- parse(await (await getFunctionsClient()).createDeployment(functionId, code, activate, entrypoint, commands)),
267
+ parse(await (await getFunctionsClient()).createDeployment(functionId, code !== undefined ? await resolveFileParam(code) : undefined, activate, entrypoint, commands)),
267
268
  ),
268
269
  );
269
270
 
@@ -1,5 +1,6 @@
1
1
  import { Command } from "commander";
2
2
  import fs from "fs";
3
+ import { resolveFileParam } from "../utils/deployment.js";
3
4
  import { sdkForProject } from "../../sdks.js";
4
5
  import {
5
6
  actionRunner,
@@ -261,7 +262,7 @@ sites
261
262
  .action(
262
263
  actionRunner(
263
264
  async ({ siteId, code, installCommand, buildCommand, outputDirectory, activate }) =>
264
- parse(await (await getSitesClient()).createDeployment(siteId, code, installCommand, buildCommand, outputDirectory, activate)),
265
+ parse(await (await getSitesClient()).createDeployment(siteId, code !== undefined ? await resolveFileParam(code) : undefined, installCommand, buildCommand, outputDirectory, activate)),
265
266
  ),
266
267
  );
267
268
 
@@ -1,5 +1,6 @@
1
1
  import { Command } from "commander";
2
2
  import fs from "fs";
3
+ import { resolveFileParam } from "../utils/deployment.js";
3
4
  import { sdkForProject } from "../../sdks.js";
4
5
  import {
5
6
  actionRunner,
@@ -195,7 +196,7 @@ If you're creating a new file using one of the Appwrite SDKs, all the chunking l
195
196
  .action(
196
197
  actionRunner(
197
198
  async ({ bucketId, fileId, file, permissions }) =>
198
- parse(await (await getStorageClient()).createFile(bucketId, fileId, file, permissions)),
199
+ parse(await (await getStorageClient()).createFile(bucketId, fileId, file !== undefined ? await resolveFileParam(file) : undefined, permissions)),
199
200
  ),
200
201
  );
201
202
 
@@ -1,4 +1,5 @@
1
1
  import fs from "fs";
2
+ import os from "os";
2
3
  import path from "path";
3
4
  import { create, extract } from "tar";
4
5
  import { Client, AppwriteException } from "@appwrite.io/console";
@@ -21,10 +22,9 @@ interface DeploymentDetails {
21
22
 
22
23
  /**
23
24
  * Package a directory into a tar.gz File object for deployment
24
- * @private - Only used internally by pushDeployment
25
25
  */
26
26
  async function packageDirectory(dirPath: string): Promise<File> {
27
- const tempFile = `${dirPath.replace(/[^a-zA-Z0-9]/g, "_")}-${Date.now()}.tar.gz`;
27
+ const tempFile = path.join(os.tmpdir(), `appwrite-deploy-${Date.now()}.tar.gz`);
28
28
 
29
29
  await create(
30
30
  {
@@ -35,12 +35,33 @@ async function packageDirectory(dirPath: string): Promise<File> {
35
35
  ["."],
36
36
  );
37
37
 
38
- const buffer = fs.readFileSync(tempFile);
39
- fs.unlinkSync(tempFile);
38
+ try {
39
+ const buffer = fs.readFileSync(tempFile);
40
+ return new File([buffer], path.basename(tempFile), {
41
+ type: "application/gzip",
42
+ });
43
+ } finally {
44
+ if (fs.existsSync(tempFile)) {
45
+ fs.unlinkSync(tempFile);
46
+ }
47
+ }
48
+ }
40
49
 
41
- return new File([buffer], path.basename(tempFile), {
42
- type: "application/gzip",
43
- });
50
+ /**
51
+ * Resolve a file path (file or directory) into a File object for upload.
52
+ * Directories are packaged into a tar.gz archive.
53
+ */
54
+ export async function resolveFileParam(filePath: string): Promise<File> {
55
+ const resolved = path.resolve(filePath);
56
+ if (!fs.existsSync(resolved)) {
57
+ throw new Error(`File or directory not found: ${resolved}`);
58
+ }
59
+ const stat = fs.statSync(resolved);
60
+ if (stat.isDirectory()) {
61
+ return packageDirectory(resolved);
62
+ }
63
+ const buffer = fs.readFileSync(resolved);
64
+ return new File([buffer], path.basename(resolved));
44
65
  }
45
66
 
46
67
  /**
package/lib/constants.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  // SDK
2
2
  export const SDK_TITLE = 'Appwrite';
3
3
  export const SDK_TITLE_LOWER = 'appwrite';
4
- export const SDK_VERSION = '15.0.0';
4
+ export const SDK_VERSION = '15.1.0';
5
5
  export const SDK_NAME = 'Command Line';
6
6
  export const SDK_PLATFORM = 'console';
7
7
  export const SDK_LANGUAGE = 'cli';
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": "15.0.0",
6
+ "version": "15.1.0",
7
7
  "license": "BSD-3-Clause",
8
8
  "main": "dist/index.cjs",
9
9
  "module": "dist/index.js",
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "$schema": "https://raw.githubusercontent.com/ScoopInstaller/Scoop/master/schema.json",
3
- "version": "15.0.0",
3
+ "version": "15.1.0",
4
4
  "description": "The Appwrite CLI is a command-line application that allows you to interact with Appwrite and perform server-side tasks using your terminal.",
5
5
  "homepage": "https://github.com/appwrite/sdk-for-cli",
6
6
  "license": "BSD-3-Clause",
7
7
  "architecture": {
8
8
  "64bit": {
9
- "url": "https://github.com/appwrite/sdk-for-cli/releases/download/15.0.0/appwrite-cli-win-x64.exe",
9
+ "url": "https://github.com/appwrite/sdk-for-cli/releases/download/15.1.0/appwrite-cli-win-x64.exe",
10
10
  "bin": [
11
11
  [
12
12
  "appwrite-cli-win-x64.exe",
@@ -15,7 +15,7 @@
15
15
  ]
16
16
  },
17
17
  "arm64": {
18
- "url": "https://github.com/appwrite/sdk-for-cli/releases/download/15.0.0/appwrite-cli-win-arm64.exe",
18
+ "url": "https://github.com/appwrite/sdk-for-cli/releases/download/15.1.0/appwrite-cli-win-arm64.exe",
19
19
  "bin": [
20
20
  [
21
21
  "appwrite-cli-win-arm64.exe",