appwrite-cli 18.0.0 → 18.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/dist/index.js CHANGED
@@ -35490,7 +35490,7 @@ Expecting one of '${allowedValues.join("', '")}'`);
35490
35490
  }
35491
35491
  return positiveOption || option2;
35492
35492
  };
35493
- const getErrorMessage = (option2) => {
35493
+ const getErrorMessage2 = (option2) => {
35494
35494
  const bestOption = findBestOptionFromValue(option2);
35495
35495
  const optionKey = bestOption.attributeName();
35496
35496
  const source = this.getOptionValueSource(optionKey);
@@ -35499,7 +35499,7 @@ Expecting one of '${allowedValues.join("', '")}'`);
35499
35499
  }
35500
35500
  return `option '${bestOption.flags}'`;
35501
35501
  };
35502
- const message = `error: ${getErrorMessage(option)} cannot be used with ${getErrorMessage(conflictingOption)}`;
35502
+ const message = `error: ${getErrorMessage2(option)} cannot be used with ${getErrorMessage2(conflictingOption)}`;
35503
35503
  this.error(message, { code: "commander.conflictingOption" });
35504
35504
  }
35505
35505
  /**
@@ -64940,6 +64940,7 @@ var import_inquirer3 = __toESM(require_inquirer(), 1);
64940
64940
  import fs4 from "fs";
64941
64941
  import path2 from "path";
64942
64942
  import readline from "node:readline";
64943
+ import { stripVTControlCharacters } from "node:util";
64943
64944
 
64944
64945
  // node_modules/commander/esm.mjs
64945
64946
  var import_index = __toESM(require_commander(), 1);
@@ -64987,7 +64988,7 @@ var id_default = ID;
64987
64988
  // lib/constants.ts
64988
64989
  var SDK_TITLE = "Appwrite";
64989
64990
  var SDK_TITLE_LOWER = "appwrite";
64990
- var SDK_VERSION = "18.0.0";
64991
+ var SDK_VERSION = "18.1.0";
64991
64992
  var SDK_LOGO = "\n _ _ _ ___ __ _____\n /_\\ _ __ _ ____ ___ __(_) |_ ___ / __\\ / / \\_ \\\n //_\\\\| '_ \\| '_ \\ \\ /\\ / / '__| | __/ _ \\ / / / / / /\\/\n / _ \\ |_) | |_) \\ V V /| | | | || __/ / /___/ /___/\\/ /_\n \\_/ \\_/ .__/| .__/ \\_/\\_/ |_| |_|\\__\\___| \\____/\\____/\\____/\n |_| |_|\n\n";
64992
64993
  var EXECUTABLE_NAME = "appwrite";
64993
64994
  var UPDATE_CHECK_INTERVAL_MS = 24 * 60 * 60 * 1e3;
@@ -79263,6 +79264,8 @@ var getSafeDirectoryName = (value, fallback) => {
79263
79264
  var siteRequiresBuildCommand = (site) => {
79264
79265
  return !(site.framework === "other" && site.adapter === "static");
79265
79266
  };
79267
+ var WINDOWS_EXECUTABLE_NAME = `${EXECUTABLE_NAME.toLowerCase()}.exe`;
79268
+ var HOMEBREW_FORMULA_NAME = EXECUTABLE_NAME.toLowerCase();
79266
79269
  var isCloudHostname = (hostname3) => hostname3 === "cloud.appwrite.io" || hostname3.endsWith(".cloud.appwrite.io");
79267
79270
  var getConsoleBaseUrl = (endpoint) => {
79268
79271
  try {
@@ -103646,7 +103649,7 @@ var package_default = {
103646
103649
  type: "module",
103647
103650
  homepage: "https://appwrite.io/support",
103648
103651
  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",
103649
- version: "18.0.0",
103652
+ version: "18.1.0",
103650
103653
  license: "BSD-3-Clause",
103651
103654
  main: "dist/index.cjs",
103652
103655
  module: "dist/index.js",
@@ -103678,9 +103681,9 @@ var package_default = {
103678
103681
  "build:types": "tsc -p tsconfig.json --emitDeclarationOnly",
103679
103682
  "build:runtime": "npm run build:lib:runtime && npm run build:cli",
103680
103683
  "build:lib:runtime": "npm run build:lib:esm && npm run build:lib:cjs",
103681
- "build:lib:esm": "esbuild index.ts --bundle --platform=node --target=node18 --format=esm --loader:.hbs=text --outfile=dist/index.js",
103682
- "build:lib:cjs": "esbuild index.ts --bundle --platform=node --target=node18 --format=cjs --loader:.hbs=text --outfile=dist/index.cjs",
103683
- "build:cli": "esbuild cli.ts --bundle --platform=node --target=node18 --format=cjs --loader:.hbs=text --external:fsevents --outfile=dist/cli.cjs",
103684
+ "build:lib:esm": "esbuild index.ts --bundle --platform=node --target=node18 --format=esm --loader:.hbs=text --external:terminal-image --outfile=dist/index.js",
103685
+ "build:lib:cjs": "esbuild index.ts --bundle --platform=node --target=node18 --format=cjs --loader:.hbs=text --external:terminal-image --outfile=dist/index.cjs",
103686
+ "build:cli": "esbuild cli.ts --bundle --platform=node --target=node18 --format=cjs --loader:.hbs=text --external:fsevents --external:terminal-image --outfile=dist/cli.cjs",
103684
103687
  lint: "eslint .",
103685
103688
  format: 'prettier --write "**/*.{js,ts,json,md}"',
103686
103689
  generate: "tsx scripts/generate-commands.ts",
@@ -103691,7 +103694,7 @@ var package_default = {
103691
103694
  "mac-x64": "bun build cli.ts --compile --sourcemap=inline --target=bun-darwin-x64 --outfile build/appwrite-cli-darwin-x64",
103692
103695
  "mac-arm64": "bun build cli.ts --compile --sourcemap=inline --target=bun-darwin-arm64 --outfile build/appwrite-cli-darwin-arm64",
103693
103696
  "windows-x64": "bun build cli.ts --compile --sourcemap=inline --target=bun-windows-x64 --outfile build/appwrite-cli-win-x64.exe",
103694
- "windows-arm64": "esbuild cli.ts --bundle --loader:.hbs=text --platform=node --target=node18 --format=esm --external:fsevents --outfile=dist/bundle-win-arm64.mjs && pkg dist/bundle-win-arm64.mjs -t node18-win-arm64 -o build/appwrite-cli-win-arm64.exe"
103697
+ "windows-arm64": "esbuild cli.ts --bundle --loader:.hbs=text --platform=node --target=node18 --format=esm --external:fsevents --external:terminal-image --outfile=dist/bundle-win-arm64.mjs && pkg dist/bundle-win-arm64.mjs -t node18-win-arm64 -o build/appwrite-cli-win-arm64.exe"
103695
103698
  },
103696
103699
  dependencies: {
103697
103700
  "@appwrite.io/console": "~9.1.0",
@@ -103710,9 +103713,13 @@ var package_default = {
103710
103713
  "string-width": "^7.2.0",
103711
103714
  tail: "^2.2.6",
103712
103715
  tar: "^7.4.3",
103716
+ "terminal-image": "^3.1.1",
103713
103717
  undici: "^6.24.0",
103714
103718
  zod: "^4.3.5"
103715
103719
  },
103720
+ overrides: {
103721
+ phin: "3.7.1"
103722
+ },
103716
103723
  devDependencies: {
103717
103724
  "@typescript-eslint/eslint-plugin": "^8.0.0",
103718
103725
  "@typescript-eslint/parser": "^8.0.0",
@@ -105022,9 +105029,9 @@ var import_chalk5 = __toESM(require_source(), 1);
105022
105029
 
105023
105030
  // lib/sdks.ts
105024
105031
  import os5 from "os";
105025
- var sdkForConsole = async (requiresAuth = true) => {
105032
+ var sdkForConsole = async (requiresAuth = true, endpointOverride) => {
105026
105033
  const client = new Client();
105027
- const endpoint = globalConfig2.getEndpoint() || DEFAULT_ENDPOINT;
105034
+ const endpoint = endpointOverride || globalConfig2.getEndpoint() || DEFAULT_ENDPOINT;
105028
105035
  const cookie = globalConfig2.getCookie();
105029
105036
  const selfSigned = globalConfig2.getSelfSigned();
105030
105037
  if (requiresAuth && cookie === "") {
@@ -106817,8 +106824,18 @@ var DEPLOYMENT_TIMEOUT_MS = 10 * 60 * 1e3;
106817
106824
  var DEPLOYMENT_TIMEOUT_MINUTES = Math.round(
106818
106825
  DEPLOYMENT_TIMEOUT_MS / (60 * 1e3)
106819
106826
  );
106827
+ var SITE_SCREENSHOT_FINALIZATION_TIMEOUT_MS = 30 * 1e3;
106828
+ var SITE_SCREENSHOT_BUCKET_ID = "screenshots";
106829
+ var SITE_SCREENSHOT_PREVIEW_WIDTH = 480;
106830
+ var SITE_SCREENSHOT_PREVIEW_HEIGHT = 270;
106831
+ var SITE_TERMINAL_PREVIEW_TARGET_WIDTH = 72;
106832
+ var SITE_TERMINAL_PREVIEW_MAX_WIDTH = 80;
106833
+ var SITE_TERMINAL_PREVIEW_MAX_HEIGHT = 22;
106834
+ var SITE_TERMINAL_PREVIEW_MIN_HEIGHT = 8;
106820
106835
  var WAITING_JOKE_THRESHOLD_MS = 30 * 1e3;
106821
106836
  var WAITING_JOKE_URL = "https://xkcd.com/303/";
106837
+ var ANSI_RESET = "\x1B[0m";
106838
+ var terminalImageModulePromise;
106822
106839
  function getDeploymentProgressText(status, waitingSince) {
106823
106840
  if (status === "waiting" && waitingSince !== null && Date.now() - waitingSince >= WAITING_JOKE_THRESHOLD_MS) {
106824
106841
  return `Still waiting... ${WAITING_JOKE_URL}`;
@@ -106828,6 +106845,184 @@ function getDeploymentProgressText(status, waitingSince) {
106828
106845
  function getDeploymentTimeoutErrorMessage() {
106829
106846
  return `Deployment got stuck for more than ${DEPLOYMENT_TIMEOUT_MINUTES} minutes`;
106830
106847
  }
106848
+ async function getTerminalImage() {
106849
+ terminalImageModulePromise ??= import("terminal-image").then(
106850
+ (module) => module.default
106851
+ );
106852
+ return terminalImageModulePromise;
106853
+ }
106854
+ function getErrorMessage(error49) {
106855
+ if (error49 instanceof Error && error49.message.trim().length > 0) {
106856
+ return error49.message.trim();
106857
+ }
106858
+ if (Array.isArray(error49)) {
106859
+ const messages = error49.map((entry) => getErrorMessage(entry)).filter((entry) => entry !== "Unknown error");
106860
+ if (messages.length > 0) {
106861
+ return messages.join("; ");
106862
+ }
106863
+ }
106864
+ if (typeof error49 === "string" && error49.trim().length > 0) {
106865
+ return error49.trim();
106866
+ }
106867
+ if (error49 && typeof error49 === "object") {
106868
+ const objectMessage = Reflect.get(error49, "message");
106869
+ if (typeof objectMessage === "string" && objectMessage.trim().length > 0) {
106870
+ return objectMessage.trim();
106871
+ }
106872
+ try {
106873
+ return JSON.stringify(error49);
106874
+ } catch (_serializationError) {
106875
+ }
106876
+ }
106877
+ return "Unknown error";
106878
+ }
106879
+ function getSiteDeploymentScreenshots(deployment) {
106880
+ const screenshotLight = typeof deployment["screenshotLight"] === "string" && deployment["screenshotLight"].trim().length > 0 ? deployment["screenshotLight"] : void 0;
106881
+ const screenshotDark = typeof deployment["screenshotDark"] === "string" && deployment["screenshotDark"].trim().length > 0 ? deployment["screenshotDark"] : void 0;
106882
+ return {
106883
+ screenshotLight,
106884
+ screenshotDark
106885
+ };
106886
+ }
106887
+ function hasSiteDeploymentScreenshots(deployment) {
106888
+ const { screenshotLight, screenshotDark } = getSiteDeploymentScreenshots(deployment);
106889
+ return Boolean(screenshotLight || screenshotDark);
106890
+ }
106891
+ function shouldRenderSiteTerminalPreview() {
106892
+ return Boolean(process.stdout.isTTY) && !cliConfig.json && !cliConfig.raw;
106893
+ }
106894
+ function getSiteTerminalPreviewWidth() {
106895
+ const columns = process.stdout.columns ?? 80;
106896
+ return Math.max(
106897
+ 16,
106898
+ Math.min(
106899
+ columns - 4,
106900
+ SITE_TERMINAL_PREVIEW_TARGET_WIDTH,
106901
+ SITE_TERMINAL_PREVIEW_MAX_WIDTH
106902
+ )
106903
+ );
106904
+ }
106905
+ function getSiteTerminalPreviewHeight() {
106906
+ const rows = process.stdout.rows ?? 24;
106907
+ return Math.max(
106908
+ SITE_TERMINAL_PREVIEW_MIN_HEIGHT,
106909
+ Math.min(rows - 10, SITE_TERMINAL_PREVIEW_MAX_HEIGHT)
106910
+ );
106911
+ }
106912
+ async function renderImageBufferToTerminalPreview(buffer) {
106913
+ const terminalImage = await getTerminalImage();
106914
+ const originalTermProgram = process.env.TERM_PROGRAM;
106915
+ const originalTermProgramVersion = process.env.TERM_PROGRAM_VERSION;
106916
+ const originalKonsoleVersion = process.env.KONSOLE_VERSION;
106917
+ const originalKittyWindowId = process.env.KITTY_WINDOW_ID;
106918
+ delete process.env.TERM_PROGRAM;
106919
+ delete process.env.TERM_PROGRAM_VERSION;
106920
+ delete process.env.KONSOLE_VERSION;
106921
+ delete process.env.KITTY_WINDOW_ID;
106922
+ try {
106923
+ return await terminalImage.buffer(buffer, {
106924
+ width: getSiteTerminalPreviewWidth(),
106925
+ height: getSiteTerminalPreviewHeight(),
106926
+ preserveAspectRatio: true
106927
+ });
106928
+ } finally {
106929
+ if (originalTermProgram === void 0) {
106930
+ delete process.env.TERM_PROGRAM;
106931
+ } else {
106932
+ process.env.TERM_PROGRAM = originalTermProgram;
106933
+ }
106934
+ if (originalTermProgramVersion === void 0) {
106935
+ delete process.env.TERM_PROGRAM_VERSION;
106936
+ } else {
106937
+ process.env.TERM_PROGRAM_VERSION = originalTermProgramVersion;
106938
+ }
106939
+ if (originalKonsoleVersion === void 0) {
106940
+ delete process.env.KONSOLE_VERSION;
106941
+ } else {
106942
+ process.env.KONSOLE_VERSION = originalKonsoleVersion;
106943
+ }
106944
+ if (originalKittyWindowId === void 0) {
106945
+ delete process.env.KITTY_WINDOW_ID;
106946
+ } else {
106947
+ process.env.KITTY_WINDOW_ID = originalKittyWindowId;
106948
+ }
106949
+ }
106950
+ }
106951
+ async function fetchSiteScreenshotPreview(params) {
106952
+ const previewUrl = params.renderer.storageService.getFilePreview({
106953
+ bucketId: SITE_SCREENSHOT_BUCKET_ID,
106954
+ fileId: params.fileId,
106955
+ width: SITE_SCREENSHOT_PREVIEW_WIDTH,
106956
+ height: SITE_SCREENSHOT_PREVIEW_HEIGHT,
106957
+ output: ImageFormat.Png
106958
+ });
106959
+ const imageData = await params.renderer.consoleClient.call(
106960
+ "get",
106961
+ new URL(previewUrl),
106962
+ {},
106963
+ {},
106964
+ "arrayBuffer"
106965
+ );
106966
+ if (!(imageData instanceof ArrayBuffer)) {
106967
+ throw new Error("Failed to download the site screenshot preview.");
106968
+ }
106969
+ return renderImageBufferToTerminalPreview(Buffer.from(imageData));
106970
+ }
106971
+ function frameTerminalPreview(preview) {
106972
+ const lines = preview.split("\n").map((line) => line.replace(/\s+$/, ""));
106973
+ while (lines.length > 0 && stripVTControlCharacters(lines[0]).trim().length === 0) {
106974
+ lines.shift();
106975
+ }
106976
+ while (lines.length > 0 && stripVTControlCharacters(lines[lines.length - 1]).trim().length === 0) {
106977
+ lines.pop();
106978
+ }
106979
+ if (lines.length === 0) {
106980
+ return "";
106981
+ }
106982
+ const contentWidth = Math.max(
106983
+ ...lines.map((line) => stripVTControlCharacters(line).length)
106984
+ );
106985
+ const border = `+-${"-".repeat(contentWidth)}-+`;
106986
+ return [
106987
+ border,
106988
+ ...lines.map((line) => {
106989
+ const visibleWidth = stripVTControlCharacters(line).length;
106990
+ return `| ${line}${ANSI_RESET}${" ".repeat(contentWidth - visibleWidth)} |`;
106991
+ }),
106992
+ border
106993
+ ].join("\n");
106994
+ }
106995
+ async function renderSiteTerminalPreview(params) {
106996
+ const warnings = /* @__PURE__ */ new Set();
106997
+ const candidates = [
106998
+ { fileId: params.screenshotDark, label: "dark" },
106999
+ { fileId: params.screenshotLight, label: "light" }
107000
+ ];
107001
+ for (const candidate of candidates) {
107002
+ const { fileId, label } = candidate;
107003
+ if (!fileId) {
107004
+ continue;
107005
+ }
107006
+ try {
107007
+ const preview = await fetchSiteScreenshotPreview({
107008
+ renderer: params.renderer,
107009
+ fileId
107010
+ });
107011
+ return {
107012
+ preview: frameTerminalPreview(preview),
107013
+ warnings: []
107014
+ };
107015
+ } catch (previewError) {
107016
+ warnings.add(
107017
+ `${label === "dark" ? "Dark mode" : "Light mode"} screenshot: ${getErrorMessage(previewError)}`
107018
+ );
107019
+ }
107020
+ }
107021
+ return {
107022
+ preview: void 0,
107023
+ warnings: [...warnings]
107024
+ };
107025
+ }
106831
107026
  function withDeploymentLogsHint(message, deploymentLogsController) {
106832
107027
  const hint2 = deploymentLogsController.getToggleHint();
106833
107028
  return hint2.length > 0 ? `${message} \u2022 ${hint2}` : message;
@@ -107704,7 +107899,7 @@ var Push = class {
107704
107899
  deploymentLogsController
107705
107900
  )
107706
107901
  });
107707
- const timeoutDeadline = Date.now() + DEPLOYMENT_TIMEOUT_MS;
107902
+ let timeoutDeadline = Date.now() + DEPLOYMENT_TIMEOUT_MS;
107708
107903
  while (true) {
107709
107904
  if (Date.now() > timeoutDeadline) {
107710
107905
  deploymentLogPrinter.complete();
@@ -108091,6 +108286,8 @@ var Push = class {
108091
108286
  deploymentId
108092
108287
  );
108093
108288
  let waitingSince = null;
108289
+ let readyWithoutScreenshotsSince = null;
108290
+ let activationApplied = false;
108094
108291
  const deploymentLogPrinter = createDeploymentLogPrinter({
108095
108292
  label: `site:${site.name}`,
108096
108293
  showPrefix: sites.length > 1,
@@ -108130,7 +108327,7 @@ var Push = class {
108130
108327
  deploymentLogsController
108131
108328
  )
108132
108329
  });
108133
- const timeoutDeadline = Date.now() + DEPLOYMENT_TIMEOUT_MS;
108330
+ let timeoutDeadline = Date.now() + DEPLOYMENT_TIMEOUT_MS;
108134
108331
  while (true) {
108135
108332
  if (Date.now() > timeoutDeadline) {
108136
108333
  deploymentLogPrinter.complete();
@@ -108164,7 +108361,9 @@ var Push = class {
108164
108361
  waitingSince = null;
108165
108362
  }
108166
108363
  if (status === "ready") {
108167
- if (activate) {
108364
+ const { screenshotLight, screenshotDark } = getSiteDeploymentScreenshots(response);
108365
+ const screenshotsReady = hasSiteDeploymentScreenshots(response);
108366
+ if (activate && !activationApplied) {
108168
108367
  currentDeploymentEnd = "Setting active deployment...";
108169
108368
  updaterRow.update({
108170
108369
  status: "Activating",
@@ -108180,6 +108379,28 @@ var Push = class {
108180
108379
  siteId: site["$id"],
108181
108380
  deploymentId
108182
108381
  });
108382
+ activationApplied = true;
108383
+ }
108384
+ if (!screenshotsReady) {
108385
+ readyWithoutScreenshotsSince ??= Date.now();
108386
+ timeoutDeadline = Math.max(
108387
+ timeoutDeadline,
108388
+ readyWithoutScreenshotsSince + SITE_SCREENSHOT_FINALIZATION_TIMEOUT_MS
108389
+ );
108390
+ if (Date.now() - readyWithoutScreenshotsSince < SITE_SCREENSHOT_FINALIZATION_TIMEOUT_MS) {
108391
+ currentDeploymentEnd = "Finalizing deployment preview...";
108392
+ updaterRow.update({
108393
+ status: "Finalizing",
108394
+ end: withDeploymentLogsHint(
108395
+ currentDeploymentEnd,
108396
+ deploymentLogsController
108397
+ )
108398
+ });
108399
+ await new Promise(
108400
+ (resolve3) => setTimeout(resolve3, POLL_DEBOUNCE2)
108401
+ );
108402
+ continue;
108403
+ }
108183
108404
  }
108184
108405
  successfullyDeployed++;
108185
108406
  let url2 = "";
@@ -108206,7 +108427,14 @@ var Push = class {
108206
108427
  status: activate ? "Deployed" : "Built",
108207
108428
  end: ""
108208
108429
  });
108209
- deploymentLogs.push({ url: url2, consoleUrl });
108430
+ deploymentLogs.push({
108431
+ name: site.name,
108432
+ url: url2,
108433
+ consoleUrl,
108434
+ screenshotLight,
108435
+ screenshotDark,
108436
+ screenshotsPending: !screenshotsReady
108437
+ });
108210
108438
  break;
108211
108439
  } else if (status === "failed") {
108212
108440
  deploymentLogPrinter.complete();
@@ -108261,16 +108489,76 @@ var Push = class {
108261
108489
  Spinner.stop();
108262
108490
  }
108263
108491
  if (deploymentLogs.length > 0) {
108492
+ let sitePreviewRenderer = null;
108493
+ let sitePreviewSetupWarning = null;
108494
+ const emittedPreviewWarnings = /* @__PURE__ */ new Set();
108495
+ if (shouldRenderSiteTerminalPreview() && deploymentLogs.some(
108496
+ (deploymentLog) => deploymentLog.screenshotLight || deploymentLog.screenshotDark
108497
+ )) {
108498
+ try {
108499
+ const consoleClient = await sdkForConsole(
108500
+ true,
108501
+ localConfig.getEndpoint() || globalConfig2.getEndpoint()
108502
+ );
108503
+ sitePreviewRenderer = {
108504
+ consoleClient,
108505
+ storageService: await getStorageService(consoleClient)
108506
+ };
108507
+ } catch (previewSetupError) {
108508
+ sitePreviewSetupWarning = getErrorMessage(previewSetupError);
108509
+ }
108510
+ }
108264
108511
  process.stdout.write("\n");
108265
- deploymentLogs.forEach((dl, index) => {
108512
+ for (const [index, dl] of deploymentLogs.entries()) {
108266
108513
  if (index > 0) {
108267
108514
  process.stdout.write("\n");
108268
108515
  }
108516
+ if (deploymentLogs.length > 1) {
108517
+ process.stdout.write(`${import_chalk9.default.cyan.bold(`Site: ${dl.name}`)}
108518
+ `);
108519
+ }
108520
+ if (dl.screenshotsPending) {
108521
+ hint(
108522
+ "Deployment is ready, but screenshot generation is still finalizing. Open the deployment page to view it once it is available."
108523
+ );
108524
+ }
108525
+ if (sitePreviewRenderer && (dl.screenshotLight || dl.screenshotDark)) {
108526
+ const preview = await renderSiteTerminalPreview({
108527
+ renderer: sitePreviewRenderer,
108528
+ screenshotLight: dl.screenshotLight,
108529
+ screenshotDark: dl.screenshotDark
108530
+ });
108531
+ if (preview.preview) {
108532
+ process.stdout.write(
108533
+ `
108534
+ ${import_chalk9.default.cyan.bold("Screenshot preview")}
108535
+
108536
+ `
108537
+ );
108538
+ process.stdout.write(`${preview.preview}
108539
+
108540
+ `);
108541
+ }
108542
+ for (const previewWarning of preview.warnings) {
108543
+ const warningMessage = `Screenshot preview unavailable: ${previewWarning}`;
108544
+ if (emittedPreviewWarnings.has(warningMessage)) {
108545
+ continue;
108546
+ }
108547
+ emittedPreviewWarnings.add(warningMessage);
108548
+ hint(warningMessage);
108549
+ }
108550
+ } else if (sitePreviewSetupWarning && (dl.screenshotLight || dl.screenshotDark)) {
108551
+ const warningMessage = `Screenshot preview unavailable: ${sitePreviewSetupWarning}`;
108552
+ if (!emittedPreviewWarnings.has(warningMessage)) {
108553
+ emittedPreviewWarnings.add(warningMessage);
108554
+ hint(warningMessage);
108555
+ }
108556
+ }
108269
108557
  if (dl.url) {
108270
108558
  this.log(`Preview link: ${import_chalk9.default.cyan(dl.url)}`);
108271
108559
  }
108272
108560
  this.log(`Deployment page: ${import_chalk9.default.cyan(dl.consoleUrl)}`);
108273
- });
108561
+ }
108274
108562
  process.stdout.write("\n");
108275
108563
  }
108276
108564
  return {
@@ -110521,7 +110809,7 @@ var BaseDatabasesGenerator = class {
110521
110809
  };
110522
110810
 
110523
110811
  // lib/commands/generators/typescript/templates/types.ts.hbs
110524
- var types_ts_default = "import { type Models } from '{{appwriteDep}}';\n\n{{{ENUMS}}}{{{TYPES}}}\ndeclare const __roleStringBrand: unique symbol;\nexport type RoleString = string & { readonly [__roleStringBrand]: never };\n\nexport type RoleBuilder = {\n any: () => RoleString;\n user: (userId: string, status?: string) => RoleString;\n users: (status?: string) => RoleString;\n guests: () => RoleString;\n team: (teamId: string, role?: string) => RoleString;\n member: (memberId: string) => RoleString;\n label: (label: string) => RoleString;\n}\n\nexport type PermissionBuilder = {\n read: (role: RoleString) => string;\n write: (role: RoleString) => string;\n create: (role: RoleString) => string;\n update: (role: RoleString) => string;\n delete: (role: RoleString) => string;\n}\n\nexport type PermissionCallback = (permission: PermissionBuilder, role: RoleBuilder) => string[];\n\nexport type QueryValue = string | number | boolean;\n\nexport type ExtractQueryValue<T> = T extends (infer U)[]\n ? U extends QueryValue ? U : never\n : T extends QueryValue | null ? NonNullable<T> : never;\n\nexport type QueryableKeys<T> = {\n [K in keyof T]: ExtractQueryValue<T[K]> extends never ? never : K;\n}[keyof T];\n\nexport type QueryBuilder<T> = {\n equal: <K extends QueryableKeys<T>>(field: K, value: ExtractQueryValue<T[K]>) => string;\n notEqual: <K extends QueryableKeys<T>>(field: K, value: ExtractQueryValue<T[K]>) => string;\n lessThan: <K extends QueryableKeys<T>>(field: K, value: ExtractQueryValue<T[K]>) => string;\n lessThanEqual: <K extends QueryableKeys<T>>(field: K, value: ExtractQueryValue<T[K]>) => string;\n greaterThan: <K extends QueryableKeys<T>>(field: K, value: ExtractQueryValue<T[K]>) => string;\n greaterThanEqual: <K extends QueryableKeys<T>>(field: K, value: ExtractQueryValue<T[K]>) => string;\n contains: <K extends QueryableKeys<T>>(field: K, value: ExtractQueryValue<T[K]>) => string;\n search: <K extends QueryableKeys<T>>(field: K, value: string) => string;\n isNull: <K extends QueryableKeys<T>>(field: K) => string;\n isNotNull: <K extends QueryableKeys<T>>(field: K) => string;\n startsWith: <K extends QueryableKeys<T>>(field: K, value: string) => string;\n endsWith: <K extends QueryableKeys<T>>(field: K, value: string) => string;\n between: <K extends QueryableKeys<T>>(field: K, start: ExtractQueryValue<T[K]>, end: ExtractQueryValue<T[K]>) => string;\n select: <K extends keyof T>(fields: K[]) => string;\n orderAsc: <K extends keyof T>(field: K) => string;\n orderDesc: <K extends keyof T>(field: K) => string;\n limit: (value: number) => string;\n offset: (value: number) => string;\n cursorAfter: (documentId: string) => string;\n cursorBefore: (documentId: string) => string;\n or: (...queries: string[]) => string;\n and: (...queries: string[]) => string;\n}\n\nexport type DatabaseId = {{{databaseIdType}}};\n\n{{{DATABASE_TABLES_TYPE}}}\n";
110812
+ var types_ts_default = "import { type Models } from '{{appwriteDep}}';\n\n{{{ENUMS}}}{{{TYPES}}}\ndeclare const __roleStringBrand: unique symbol;\nexport type RoleString = string & { readonly [__roleStringBrand]: never };\n\nexport type RoleBuilder = {\n any: () => RoleString;\n user: (userId: string, status?: string) => RoleString;\n users: (status?: string) => RoleString;\n guests: () => RoleString;\n team: (teamId: string, role?: string) => RoleString;\n member: (memberId: string) => RoleString;\n label: (label: string) => RoleString;\n}\n\nexport type PermissionBuilder = {\n read: (role: RoleString) => string;\n write: (role: RoleString) => string;\n create: (role: RoleString) => string;\n update: (role: RoleString) => string;\n delete: (role: RoleString) => string;\n}\n\nexport type PermissionCallback = (permission: PermissionBuilder, role: RoleBuilder) => string[];\n\nexport type QueryValue = string | number | boolean;\n\nexport type ExtractQueryValue<T> = T extends (infer U)[]\n ? U extends QueryValue ? U : never\n : T extends QueryValue | null ? NonNullable<T> : never;\n\nexport type QueryableKeys<T> = {\n [K in keyof T]: ExtractQueryValue<T[K]> extends never ? never : K;\n}[keyof T];\n\nexport type QueryableFieldValue<T, K> = K extends keyof T\n ? ExtractQueryValue<T[K]>\n : never;\n\nexport type QueryBuilder<T> = {\n equal: <K extends QueryableKeys<T>>(field: K, value: QueryableFieldValue<T, K>) => string;\n notEqual: <K extends QueryableKeys<T>>(field: K, value: QueryableFieldValue<T, K>) => string;\n lessThan: <K extends QueryableKeys<T>>(field: K, value: QueryableFieldValue<T, K>) => string;\n lessThanEqual: <K extends QueryableKeys<T>>(field: K, value: QueryableFieldValue<T, K>) => string;\n greaterThan: <K extends QueryableKeys<T>>(field: K, value: QueryableFieldValue<T, K>) => string;\n greaterThanEqual: <K extends QueryableKeys<T>>(field: K, value: QueryableFieldValue<T, K>) => string;\n contains: <K extends QueryableKeys<T>>(field: K, value: QueryableFieldValue<T, K>) => string;\n search: <K extends QueryableKeys<T>>(field: K, value: string) => string;\n isNull: <K extends QueryableKeys<T>>(field: K) => string;\n isNotNull: <K extends QueryableKeys<T>>(field: K) => string;\n startsWith: <K extends QueryableKeys<T>>(field: K, value: string) => string;\n endsWith: <K extends QueryableKeys<T>>(field: K, value: string) => string;\n between: <K extends QueryableKeys<T>>(field: K, start: QueryableFieldValue<T, K>, end: QueryableFieldValue<T, K>) => string;\n select: <K extends keyof T>(fields: K[]) => string;\n orderAsc: <K extends keyof T>(field: K) => string;\n orderDesc: <K extends keyof T>(field: K) => string;\n limit: (value: number) => string;\n offset: (value: number) => string;\n cursorAfter: (documentId: string) => string;\n cursorBefore: (documentId: string) => string;\n or: (...queries: string[]) => string;\n and: (...queries: string[]) => string;\n}\n\nexport type DatabaseId = {{{databaseIdType}}};\n\n{{{DATABASE_TABLES_TYPE}}}\n";
110525
110813
 
110526
110814
  // lib/commands/generators/typescript/templates/databases.ts.hbs
110527
110815
  var databases_ts_default = 'import { Client, TablesDB, ID, Query, type Models, Permission, Role } from \'{{appwriteDep}}\';\nimport type { DatabaseHandle, DatabaseId, DatabaseTableMap, DatabaseTables, QueryBuilder, QueryValue, PermissionBuilder, RoleBuilder, RoleString } from \'./types{{importExt}}\';\n{{#if supportsServerSide}}\nimport { PROJECT_ID, ENDPOINT, API_KEY } from \'./constants{{importExt}}\';\n{{else}}\nimport { PROJECT_ID, ENDPOINT } from \'./constants{{importExt}}\';\n{{/if}}\n\nconst createQueryBuilder = <T>(): QueryBuilder<T> => ({\n equal: (field, value) => Query.equal(String(field), value as QueryValue),\n notEqual: (field, value) => Query.notEqual(String(field), value as QueryValue),\n lessThan: (field, value) => Query.lessThan(String(field), value as QueryValue),\n lessThanEqual: (field, value) => Query.lessThanEqual(String(field), value as QueryValue),\n greaterThan: (field, value) => Query.greaterThan(String(field), value as QueryValue),\n greaterThanEqual: (field, value) => Query.greaterThanEqual(String(field), value as QueryValue),\n contains: (field, value) => Query.contains(String(field), value as string | QueryValue[]),\n search: (field, value) => Query.search(String(field), value),\n isNull: (field) => Query.isNull(String(field)),\n isNotNull: (field) => Query.isNotNull(String(field)),\n startsWith: (field, value) => Query.startsWith(String(field), value),\n endsWith: (field, value) => Query.endsWith(String(field), value),\n between: (field, start, end) => Query.between(String(field), start as string | number, end as string | number),\n select: (fields) => Query.select(fields.map(String)),\n orderAsc: (field) => Query.orderAsc(String(field)),\n orderDesc: (field) => Query.orderDesc(String(field)),\n limit: (value) => Query.limit(value),\n offset: (value) => Query.offset(value),\n cursorAfter: (documentId) => Query.cursorAfter(documentId),\n cursorBefore: (documentId) => Query.cursorBefore(documentId),\n or: (...queries) => Query.or(queries),\n and: (...queries) => Query.and(queries),\n});\n\n{{{TABLE_ID_MAP}}}\n\n{{{TABLES_WITH_RELATIONSHIPS}}}\n\nconst roleBuilder: RoleBuilder = {\n any: () => Role.any() as RoleString,\n user: (userId, status?) => Role.user(userId, status) as RoleString,\n users: (status?) => Role.users(status) as RoleString,\n guests: () => Role.guests() as RoleString,\n team: (teamId, role?) => Role.team(teamId, role) as RoleString,\n member: (memberId) => Role.member(memberId) as RoleString,\n label: (label) => Role.label(label) as RoleString,\n};\n\nconst permissionBuilder: PermissionBuilder = {\n read: (role) => Permission.read(role),\n write: (role) => Permission.write(role),\n create: (role) => Permission.create(role),\n update: (role) => Permission.update(role),\n delete: (role) => Permission.delete(role),\n};\n\nconst resolvePermissions = (callback?: (permission: { read: (role: RoleString) => string; write: (role: RoleString) => string; create: (role: RoleString) => string; update: (role: RoleString) => string; delete: (role: RoleString) => string }, role: { any: () => RoleString; user: (userId: string, status?: string) => RoleString; users: (status?: string) => RoleString; guests: () => RoleString; team: (teamId: string, role?: string) => RoleString; member: (memberId: string) => RoleString; label: (label: string) => RoleString }) => string[]): string[] | undefined =>\n callback?.(permissionBuilder, roleBuilder);\n\nfunction createTableApi<T extends Models.Row>(\n tablesDB: TablesDB,\n databaseId: string,\n tableId: string,\n) {\n return {\n create: (data: Omit<T, keyof Models.Row>, options?: { rowId?: string; permissions?: (permission: { read: (role: RoleString) => string; write: (role: RoleString) => string; create: (role: RoleString) => string; update: (role: RoleString) => string; delete: (role: RoleString) => string }, role: { any: () => RoleString; user: (userId: string, status?: string) => RoleString; users: (status?: string) => RoleString; guests: () => RoleString; team: (teamId: string, role?: string) => RoleString; member: (memberId: string) => RoleString; label: (label: string) => RoleString }) => string[]; transactionId?: string }) =>\n tablesDB.createRow<T>({\n databaseId,\n tableId,\n rowId: options?.rowId ?? ID.unique(),\n data: data as T extends Models.DefaultRow ? Partial<Models.Row> & Record<string, unknown> : Partial<Models.Row> & Omit<T, keyof Models.Row>,\n permissions: resolvePermissions(options?.permissions),\n transactionId: options?.transactionId,\n }),\n get: (id: string) =>\n tablesDB.getRow<T>({\n databaseId,\n tableId,\n rowId: id,\n }),\n update: (id: string, data: Partial<Omit<T, keyof Models.Row>>, options?: { permissions?: (permission: { read: (role: RoleString) => string; write: (role: RoleString) => string; create: (role: RoleString) => string; update: (role: RoleString) => string; delete: (role: RoleString) => string }, role: { any: () => RoleString; user: (userId: string, status?: string) => RoleString; users: (status?: string) => RoleString; guests: () => RoleString; team: (teamId: string, role?: string) => RoleString; member: (memberId: string) => RoleString; label: (label: string) => RoleString }) => string[]; transactionId?: string }) =>\n tablesDB.updateRow<T>({\n databaseId,\n tableId,\n rowId: id,\n data: data as T extends Models.DefaultRow ? Partial<Models.Row> & Record<string, unknown> : Partial<Models.Row> & Partial<Omit<T, keyof Models.Row>>,\n ...(options?.permissions ? { permissions: resolvePermissions(options.permissions) } : {}),\n transactionId: options?.transactionId,\n }),\n delete: async (id: string, options?: { transactionId?: string }) => {\n await tablesDB.deleteRow({\n databaseId,\n tableId,\n rowId: id,\n transactionId: options?.transactionId,\n });\n },\n list: (options?: { queries?: (q: QueryBuilder<T>) => string[] }) =>\n tablesDB.listRows<T>({\n databaseId,\n tableId,\n queries: options?.queries?.(createQueryBuilder<T>()),\n }),{{{BULK_METHODS}}}\n };\n}\n\n{{{BULK_CHECK}}}\nconst hasOwn = (obj: unknown, key: string): boolean =>\n obj != null && Object.prototype.hasOwnProperty.call(obj, key);\n\nfunction createDatabaseHandle<D extends DatabaseId>(\n tablesDB: TablesDB,\n databaseId: D,\n): DatabaseHandle<D> {\n const tableApiCache = new Map<string, unknown>();\n const dbMap = tableIdMap[databaseId];\n\n return {\n use: <T extends keyof DatabaseTableMap[D] & string>(tableId: T): DatabaseTableMap[D][T] => {\n if (!hasOwn(dbMap, tableId)) {\n throw new Error(`Unknown table "${tableId}" in database "${databaseId}"`);\n }\n\n if (!tableApiCache.has(tableId)) {\n const resolvedTableId = dbMap[tableId];\n const api = createTableApi(tablesDB, databaseId, resolvedTableId);\n {{{BULK_REMOVAL}}}\n tableApiCache.set(tableId, api);\n }\n return tableApiCache.get(tableId) as DatabaseTableMap[D][T];\n },\n{{#if supportsServerSide}}\n create: (tableId: string, name: string, options?: { permissions?: (permission: { read: (role: RoleString) => string; write: (role: RoleString) => string; create: (role: RoleString) => string; update: (role: RoleString) => string; delete: (role: RoleString) => string }, role: { any: () => RoleString; user: (userId: string, status?: string) => RoleString; users: (status?: string) => RoleString; guests: () => RoleString; team: (teamId: string, role?: string) => RoleString; member: (memberId: string) => RoleString; label: (label: string) => RoleString }) => string[]; rowSecurity?: boolean; enabled?: boolean; columns?: object[]; indexes?: object[] }) =>\n tablesDB.createTable({\n databaseId,\n tableId,\n name,\n permissions: resolvePermissions(options?.permissions),\n rowSecurity: options?.rowSecurity,\n enabled: options?.enabled,\n columns: options?.columns,\n indexes: options?.indexes,\n }),\n update: (tableId: string, options?: { name?: string; permissions?: (permission: { read: (role: RoleString) => string; write: (role: RoleString) => string; create: (role: RoleString) => string; update: (role: RoleString) => string; delete: (role: RoleString) => string }, role: { any: () => RoleString; user: (userId: string, status?: string) => RoleString; users: (status?: string) => RoleString; guests: () => RoleString; team: (teamId: string, role?: string) => RoleString; member: (memberId: string) => RoleString; label: (label: string) => RoleString }) => string[]; rowSecurity?: boolean; enabled?: boolean }) => {\n if (!hasOwn(dbMap, tableId)) {\n throw new Error(`Unknown table "${tableId}" in database "${databaseId}"`);\n }\n const resolvedTableId = dbMap[tableId];\n return tablesDB.updateTable({\n databaseId,\n tableId: resolvedTableId,\n name: options?.name,\n permissions: resolvePermissions(options?.permissions),\n rowSecurity: options?.rowSecurity,\n enabled: options?.enabled,\n });\n },\n delete: async (tableId: string) => {\n if (!hasOwn(dbMap, tableId)) {\n throw new Error(`Unknown table "${tableId}" in database "${databaseId}"`);\n }\n const resolvedTableId = dbMap[tableId];\n await tablesDB.deleteTable({\n databaseId,\n tableId: resolvedTableId,\n });\n },\n{{/if}}\n };\n}\n\nfunction createDatabasesApi(tablesDB: TablesDB): DatabaseTables {\n const dbCache = new Map<DatabaseId, ReturnType<typeof createDatabaseHandle>>();\n\n return {\n use: (databaseId: DatabaseId) => {\n if (!hasOwn(tableIdMap, databaseId)) {\n throw new Error(`Unknown database "${databaseId}"`);\n }\n\n if (!dbCache.has(databaseId)) {\n dbCache.set(databaseId, createDatabaseHandle(tablesDB, databaseId));\n }\n return dbCache.get(databaseId);\n },\n{{#if supportsServerSide}}\n create: (databaseId: string, name: string, options?: { enabled?: boolean }) =>\n tablesDB.create({\n databaseId,\n name,\n enabled: options?.enabled,\n }),\n update: (databaseId: DatabaseId, options?: { name?: string; enabled?: boolean }) => {\n return tablesDB.update({\n databaseId,\n name: options?.name ?? databaseId,\n enabled: options?.enabled,\n });\n },\n delete: async (databaseId: DatabaseId) => {\n await tablesDB.delete({\n databaseId,\n });\n },\n{{/if}}\n } as DatabaseTables;\n}\n\n// Initialize client\nconst client = new Client()\n .setEndpoint(ENDPOINT)\n .setProject(PROJECT_ID){{#if supportsServerSide}}\n .setKey(API_KEY){{/if}};\n\nconst tablesDB = new TablesDB(client);\n\nexport const databases: DatabaseTables = createDatabasesApi(tablesDB);\n';
@@ -110538,7 +110826,7 @@ var databasesTemplate = import_handlebars.default.compile(String(databases_ts_de
110538
110826
  var indexTemplate = import_handlebars.default.compile(String(index_ts_default));
110539
110827
  var constantsTemplate = import_handlebars.default.compile(String(constants_ts_default));
110540
110828
  var PERMISSION_CALLBACK_INLINE = `(permission: { read: (role: RoleString) => string; write: (role: RoleString) => string; create: (role: RoleString) => string; update: (role: RoleString) => string; delete: (role: RoleString) => string }, role: { any: () => RoleString; user: (userId: string, status?: string) => RoleString; users: (status?: string) => RoleString; guests: () => RoleString; team: (teamId: string, role?: string) => RoleString; member: (memberId: string) => RoleString; label: (label: string) => RoleString }) => string[]`;
110541
- var getQueryCallbackInline = (typeName) => `(q: { equal: <K extends QueryableKeys<${typeName}>>(field: K, value: ExtractQueryValue<${typeName}[K]>) => string; notEqual: <K extends QueryableKeys<${typeName}>>(field: K, value: ExtractQueryValue<${typeName}[K]>) => string; lessThan: <K extends QueryableKeys<${typeName}>>(field: K, value: ExtractQueryValue<${typeName}[K]>) => string; lessThanEqual: <K extends QueryableKeys<${typeName}>>(field: K, value: ExtractQueryValue<${typeName}[K]>) => string; greaterThan: <K extends QueryableKeys<${typeName}>>(field: K, value: ExtractQueryValue<${typeName}[K]>) => string; greaterThanEqual: <K extends QueryableKeys<${typeName}>>(field: K, value: ExtractQueryValue<${typeName}[K]>) => string; contains: <K extends QueryableKeys<${typeName}>>(field: K, value: ExtractQueryValue<${typeName}[K]>) => string; search: <K extends QueryableKeys<${typeName}>>(field: K, value: string) => string; isNull: <K extends QueryableKeys<${typeName}>>(field: K) => string; isNotNull: <K extends QueryableKeys<${typeName}>>(field: K) => string; startsWith: <K extends QueryableKeys<${typeName}>>(field: K, value: string) => string; endsWith: <K extends QueryableKeys<${typeName}>>(field: K, value: string) => string; between: <K extends QueryableKeys<${typeName}>>(field: K, start: ExtractQueryValue<${typeName}[K]>, end: ExtractQueryValue<${typeName}[K]>) => string; select: <K extends keyof ${typeName}>(fields: K[]) => string; orderAsc: <K extends keyof ${typeName}>(field: K) => string; orderDesc: <K extends keyof ${typeName}>(field: K) => string; limit: (value: number) => string; offset: (value: number) => string; cursorAfter: (documentId: string) => string; cursorBefore: (documentId: string) => string; or: (...queries: string[]) => string; and: (...queries: string[]) => string }) => string[]`;
110829
+ var getQueryCallbackInline = (typeName) => `(q: { equal: <K extends QueryableKeys<${typeName}>>(field: K, value: QueryableFieldValue<${typeName}, K>) => string; notEqual: <K extends QueryableKeys<${typeName}>>(field: K, value: QueryableFieldValue<${typeName}, K>) => string; lessThan: <K extends QueryableKeys<${typeName}>>(field: K, value: QueryableFieldValue<${typeName}, K>) => string; lessThanEqual: <K extends QueryableKeys<${typeName}>>(field: K, value: QueryableFieldValue<${typeName}, K>) => string; greaterThan: <K extends QueryableKeys<${typeName}>>(field: K, value: QueryableFieldValue<${typeName}, K>) => string; greaterThanEqual: <K extends QueryableKeys<${typeName}>>(field: K, value: QueryableFieldValue<${typeName}, K>) => string; contains: <K extends QueryableKeys<${typeName}>>(field: K, value: QueryableFieldValue<${typeName}, K>) => string; search: <K extends QueryableKeys<${typeName}>>(field: K, value: string) => string; isNull: <K extends QueryableKeys<${typeName}>>(field: K) => string; isNotNull: <K extends QueryableKeys<${typeName}>>(field: K) => string; startsWith: <K extends QueryableKeys<${typeName}>>(field: K, value: string) => string; endsWith: <K extends QueryableKeys<${typeName}>>(field: K, value: string) => string; between: <K extends QueryableKeys<${typeName}>>(field: K, start: QueryableFieldValue<${typeName}, K>, end: QueryableFieldValue<${typeName}, K>) => string; select: <K extends keyof ${typeName}>(fields: K[]) => string; orderAsc: <K extends keyof ${typeName}>(field: K) => string; orderDesc: <K extends keyof ${typeName}>(field: K) => string; limit: (value: number) => string; offset: (value: number) => string; cursorAfter: (documentId: string) => string; cursorBefore: (documentId: string) => string; or: (...queries: string[]) => string; and: (...queries: string[]) => string }) => string[]`;
110542
110830
  var TypeScriptDatabasesGenerator = class extends BaseDatabasesGenerator {
110543
110831
  language = "typescript";
110544
110832
  fileExtension = "ts";
@@ -1 +1 @@
1
- {"version":3,"file":"push.d.ts","sourceRoot":"","sources":["../../../lib/commands/push.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"push.d.ts","sourceRoot":"","sources":["../../../lib/commands/push.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../lib/commands/update.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAyPpC,eAAO,MAAM,MAAM,SAMe,CAAC"}
1
+ {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../lib/commands/update.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAyYpC,eAAO,MAAM,MAAM,SAMe,CAAC"}
@@ -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 = "18.0.0";
3
+ export declare const SDK_VERSION = "18.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";
@@ -1,4 +1,4 @@
1
1
  import { Client } from "@appwrite.io/console";
2
- export declare const sdkForConsole: (requiresAuth?: boolean) => Promise<Client>;
2
+ export declare const sdkForConsole: (requiresAuth?: boolean, endpointOverride?: string) => Promise<Client>;
3
3
  export declare const sdkForProject: () => Promise<Client>;
4
4
  //# sourceMappingURL=sdks.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sdks.d.ts","sourceRoot":"","sources":["../../lib/sdks.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAS9C,eAAO,MAAM,aAAa,GACxB,eAAc,OAAc,KAC3B,OAAO,CAAC,MAAM,CA6BhB,CAAC;AAEF,eAAO,MAAM,aAAa,QAAa,OAAO,CAAC,MAAM,CA8CpD,CAAC"}
1
+ {"version":3,"file":"sdks.d.ts","sourceRoot":"","sources":["../../lib/sdks.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAS9C,eAAO,MAAM,aAAa,GACxB,eAAc,OAAc,EAC5B,mBAAmB,MAAM,KACxB,OAAO,CAAC,MAAM,CA8BhB,CAAC;AAEF,eAAO,MAAM,aAAa,QAAa,OAAO,CAAC,MAAM,CA8CpD,CAAC"}
@@ -9,6 +9,8 @@ type SiteBuildConfig = {
9
9
  };
10
10
  export declare const siteRequiresBuildCommand: (site: SiteBuildConfig) => boolean;
11
11
  export declare const getErrorMessage: (error: unknown) => string;
12
+ export type InstallationMethod = "npm" | "homebrew" | "standalone";
13
+ export declare const detectInstallationMethod: () => InstallationMethod | null;
12
14
  export declare const getConsoleBaseUrl: (endpoint: string) => string;
13
15
  export declare const getConsoleProjectSlug: (endpoint: string, projectId: string) => string;
14
16
  export declare const getFunctionDeploymentConsoleUrl: (endpoint: string, projectId: string, functionId: string, deploymentId: string) => string;
@@ -20,6 +22,12 @@ export declare const syncVersionCheckCache: (currentVersion: string, latestVersi
20
22
  export declare function getLatestVersion(options?: {
21
23
  timeoutMs?: number;
22
24
  }): Promise<string>;
25
+ export declare function getLatestVersionForInstallation(method: InstallationMethod | null, options?: {
26
+ timeoutMs?: number;
27
+ }): Promise<string>;
28
+ export declare function getLatestVersionForCurrentInstallation(options?: {
29
+ timeoutMs?: number;
30
+ }): Promise<string>;
23
31
  /**
24
32
  * Compare versions using semantic versioning
25
33
  */
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../lib/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../lib/utils.ts"],"names":[],"mappings":"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"}