From f4c738f01cfffc930f4e74002f0080460228a660 Mon Sep 17 00:00:00 2001 From: root Date: Thu, 30 Oct 2025 03:34:42 +0000 Subject: [PATCH 1/3] regen --- CHANGELOG.md | 7 + README.md | 4 +- .../messaging/create-resend-provider.md | 3 + .../messaging/update-resend-provider.md | 2 + docs/examples/migrations/create-csv-export.md | 4 + ...-csv-migration.md => create-csv-import.md} | 2 +- install.ps1 | 4 +- install.sh | 2 +- lib/client.js | 4 +- lib/commands/messaging.js | 147 ++++++++++++++++++ lib/commands/migrations.js | 101 +++++++++++- lib/commands/push.js | 125 ++++++++++++++- lib/parser.js | 2 +- package.json | 4 +- scoop/appwrite.config.json | 6 +- 15 files changed, 394 insertions(+), 23 deletions(-) create mode 100644 docs/examples/messaging/create-resend-provider.md create mode 100644 docs/examples/messaging/update-resend-provider.md create mode 100644 docs/examples/migrations/create-csv-export.md rename docs/examples/migrations/{create-csv-migration.md => create-csv-import.md} (66%) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8a1ea0f..641e62d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Change Log +## 10.2.4 + +* Fix syncing of tables deleted locally during `push tables` command +* Fix added push command support for cli spatial types +* Fix attribute changing during push +* Replace pkg with @yao-pkg/pkg in dependencies + ## 10.2.3 * Fix `init tables` command not working diff --git a/README.md b/README.md index b63c499..b8b5ce8 100644 --- a/README.md +++ b/README.md @@ -29,7 +29,7 @@ Once the installation is complete, you can verify the install using ```sh $ appwrite -v -10.2.3 +10.2.4 ``` ### Install using prebuilt binaries @@ -60,7 +60,7 @@ $ scoop install https://raw.githubusercontent.com/appwrite/sdk-for-cli/master/sc Once the installation completes, you can verify your install using ``` $ appwrite -v -10.2.3 +10.2.4 ``` ## Getting Started diff --git a/docs/examples/messaging/create-resend-provider.md b/docs/examples/messaging/create-resend-provider.md new file mode 100644 index 0000000..9a16a17 --- /dev/null +++ b/docs/examples/messaging/create-resend-provider.md @@ -0,0 +1,3 @@ +appwrite messaging create-resend-provider \ + --provider-id \ + --name diff --git a/docs/examples/messaging/update-resend-provider.md b/docs/examples/messaging/update-resend-provider.md new file mode 100644 index 0000000..df22cf0 --- /dev/null +++ b/docs/examples/messaging/update-resend-provider.md @@ -0,0 +1,2 @@ +appwrite messaging update-resend-provider \ + --provider-id diff --git a/docs/examples/migrations/create-csv-export.md b/docs/examples/migrations/create-csv-export.md new file mode 100644 index 0000000..e56afae --- /dev/null +++ b/docs/examples/migrations/create-csv-export.md @@ -0,0 +1,4 @@ +appwrite migrations create-csv-export \ + --resource-id \ + --bucket-id \ + --filename diff --git a/docs/examples/migrations/create-csv-migration.md b/docs/examples/migrations/create-csv-import.md similarity index 66% rename from docs/examples/migrations/create-csv-migration.md rename to docs/examples/migrations/create-csv-import.md index 10e7b42..196112b 100644 --- a/docs/examples/migrations/create-csv-migration.md +++ b/docs/examples/migrations/create-csv-import.md @@ -1,4 +1,4 @@ -appwrite migrations create-csv-migration \ +appwrite migrations create-csv-import \ --bucket-id \ --file-id \ --resource-id diff --git a/install.ps1 b/install.ps1 index e1208ac..7faa2c3 100644 --- a/install.ps1 +++ b/install.ps1 @@ -13,8 +13,8 @@ # You can use "View source" of this page to see the full script. # REPO -$GITHUB_x64_URL = "https://github.com/appwrite/sdk-for-cli/releases/download/10.2.3/appwrite-cli-win-x64.exe" -$GITHUB_arm64_URL = "https://github.com/appwrite/sdk-for-cli/releases/download/10.2.3/appwrite-cli-win-arm64.exe" +$GITHUB_x64_URL = "https://github.com/appwrite/sdk-for-cli/releases/download/10.2.4/appwrite-cli-win-x64.exe" +$GITHUB_arm64_URL = "https://github.com/appwrite/sdk-for-cli/releases/download/10.2.4/appwrite-cli-win-arm64.exe" $APPWRITE_BINARY_NAME = "appwrite.exe" diff --git a/install.sh b/install.sh index c018533..a95a1a1 100644 --- a/install.sh +++ b/install.sh @@ -97,7 +97,7 @@ printSuccess() { downloadBinary() { echo "[2/4] Downloading executable for $OS ($ARCH) ..." - GITHUB_LATEST_VERSION="10.2.3" + GITHUB_LATEST_VERSION="10.2.4" GITHUB_FILE="appwrite-cli-${OS}-${ARCH}" GITHUB_URL="https://github.com/$GITHUB_REPOSITORY_NAME/releases/download/$GITHUB_LATEST_VERSION/$GITHUB_FILE" diff --git a/lib/client.js b/lib/client.js index 6697bdd..e449181 100644 --- a/lib/client.js +++ b/lib/client.js @@ -16,8 +16,8 @@ class Client { 'x-sdk-name': 'Command Line', 'x-sdk-platform': 'console', 'x-sdk-language': 'cli', - 'x-sdk-version': '10.2.3', - 'user-agent' : `AppwriteCLI/10.2.3 (${os.type()} ${os.version()}; ${os.arch()})`, + 'x-sdk-version': '10.2.4', + 'user-agent' : `AppwriteCLI/10.2.4 (${os.type()} ${os.version()}; ${os.arch()})`, 'X-Appwrite-Response-Format' : '1.8.0', }; } diff --git a/lib/commands/messaging.js b/lib/commands/messaging.js index 73d6fdc..074825a 100644 --- a/lib/commands/messaging.js +++ b/lib/commands/messaging.js @@ -1188,6 +1188,125 @@ const messagingUpdateMsg91Provider = async ({providerId,name,enabled,templateId, return response; +} +/** + * @typedef {Object} MessagingCreateResendProviderRequestParams + * @property {string} providerId Provider 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. + * @property {string} name Provider name. + * @property {string} apiKey Resend API key. + * @property {string} fromName Sender Name. + * @property {string} fromEmail Sender email address. + * @property {string} replyToName Name set in the reply to field for the mail. Default value is sender name. + * @property {string} replyToEmail Email set in the reply to field for the mail. Default value is sender email. + * @property {boolean} enabled Set as enabled. + * @property {boolean} overrideForCli + * @property {boolean} parseOutput + * @property {libClient | undefined} sdk + */ + +/** + * @param {MessagingCreateResendProviderRequestParams} params + */ +const messagingCreateResendProvider = async ({providerId,name,apiKey,fromName,fromEmail,replyToName,replyToEmail,enabled,parseOutput = true, overrideForCli = false, sdk = undefined}) => { + let client = !sdk ? await sdkForProject() : + sdk; + let apiPath = '/messaging/providers/resend'; + let payload = {}; + if (typeof providerId !== 'undefined') { + payload['providerId'] = providerId; + } + if (typeof name !== 'undefined') { + payload['name'] = name; + } + if (typeof apiKey !== 'undefined') { + payload['apiKey'] = apiKey; + } + if (typeof fromName !== 'undefined') { + payload['fromName'] = fromName; + } + if (typeof fromEmail !== 'undefined') { + payload['fromEmail'] = fromEmail; + } + if (typeof replyToName !== 'undefined') { + payload['replyToName'] = replyToName; + } + if (typeof replyToEmail !== 'undefined') { + payload['replyToEmail'] = replyToEmail; + } + if (typeof enabled !== 'undefined') { + payload['enabled'] = enabled; + } + + let response = undefined; + + response = await client.call('post', apiPath, { + 'content-type': 'application/json', + }, payload); + + if (parseOutput) { + parse(response) + } + + return response; + +} +/** + * @typedef {Object} MessagingUpdateResendProviderRequestParams + * @property {string} providerId Provider ID. + * @property {string} name Provider name. + * @property {boolean} enabled Set as enabled. + * @property {string} apiKey Resend API key. + * @property {string} fromName Sender Name. + * @property {string} fromEmail Sender email address. + * @property {string} replyToName Name set in the Reply To field for the mail. Default value is Sender Name. + * @property {string} replyToEmail Email set in the Reply To field for the mail. Default value is Sender Email. + * @property {boolean} overrideForCli + * @property {boolean} parseOutput + * @property {libClient | undefined} sdk + */ + +/** + * @param {MessagingUpdateResendProviderRequestParams} params + */ +const messagingUpdateResendProvider = async ({providerId,name,enabled,apiKey,fromName,fromEmail,replyToName,replyToEmail,parseOutput = true, overrideForCli = false, sdk = undefined}) => { + let client = !sdk ? await sdkForProject() : + sdk; + let apiPath = '/messaging/providers/resend/{providerId}'.replace('{providerId}', providerId); + let payload = {}; + if (typeof name !== 'undefined') { + payload['name'] = name; + } + if (typeof enabled !== 'undefined') { + payload['enabled'] = enabled; + } + if (typeof apiKey !== 'undefined') { + payload['apiKey'] = apiKey; + } + if (typeof fromName !== 'undefined') { + payload['fromName'] = fromName; + } + if (typeof fromEmail !== 'undefined') { + payload['fromEmail'] = fromEmail; + } + if (typeof replyToName !== 'undefined') { + payload['replyToName'] = replyToName; + } + if (typeof replyToEmail !== 'undefined') { + payload['replyToEmail'] = replyToEmail; + } + + let response = undefined; + + response = await client.call('patch', apiPath, { + 'content-type': 'application/json', + }, payload); + + if (parseOutput) { + parse(response) + } + + return response; + } /** * @typedef {Object} MessagingCreateSendgridProviderRequestParams @@ -2619,6 +2738,32 @@ messaging .option(`--auth-key `, `Msg91 auth key.`) .action(actionRunner(messagingUpdateMsg91Provider)) +messaging + .command(`create-resend-provider`) + .description(`Create a new Resend provider.`) + .requiredOption(`--provider-id `, `Provider ID. Choose a custom ID or generate a random ID with 'ID.unique()'. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.`) + .requiredOption(`--name `, `Provider name.`) + .option(`--api-key `, `Resend API key.`) + .option(`--from-name `, `Sender Name.`) + .option(`--from-email `, `Sender email address.`) + .option(`--reply-to-name `, `Name set in the reply to field for the mail. Default value is sender name.`) + .option(`--reply-to-email `, `Email set in the reply to field for the mail. Default value is sender email.`) + .option(`--enabled [value]`, `Set as enabled.`, (value) => value === undefined ? true : parseBool(value)) + .action(actionRunner(messagingCreateResendProvider)) + +messaging + .command(`update-resend-provider`) + .description(`Update a Resend provider by its unique ID.`) + .requiredOption(`--provider-id `, `Provider ID.`) + .option(`--name `, `Provider name.`) + .option(`--enabled [value]`, `Set as enabled.`, (value) => value === undefined ? true : parseBool(value)) + .option(`--api-key `, `Resend API key.`) + .option(`--from-name `, `Sender Name.`) + .option(`--from-email `, `Sender email address.`) + .option(`--reply-to-name `, `Name set in the Reply To field for the mail. Default value is Sender Name.`) + .option(`--reply-to-email `, `Email set in the Reply To field for the mail. Default value is Sender Email.`) + .action(actionRunner(messagingUpdateResendProvider)) + messaging .command(`create-sendgrid-provider`) .description(`Create a new Sendgrid provider.`) @@ -2895,6 +3040,8 @@ module.exports = { messagingUpdateMailgunProvider, messagingCreateMsg91Provider, messagingUpdateMsg91Provider, + messagingCreateResendProvider, + messagingUpdateResendProvider, messagingCreateSendgridProvider, messagingUpdateSendgridProvider, messagingCreateSMTPProvider, diff --git a/lib/commands/migrations.js b/lib/commands/migrations.js index 792ec7d..e3d3482 100644 --- a/lib/commands/migrations.js +++ b/lib/commands/migrations.js @@ -166,7 +166,78 @@ const migrationsGetAppwriteReport = async ({resources,endpoint,projectID,key,par } /** - * @typedef {Object} MigrationsCreateCsvMigrationRequestParams + * @typedef {Object} MigrationsCreateCSVExportRequestParams + * @property {string} resourceId Composite ID in the format {databaseId:collectionId}, identifying a collection within a database to export. + * @property {string} bucketId Storage bucket unique ID where the exported CSV will be stored. + * @property {string} filename The name of the file to be created for the export, excluding the .csv extension. + * @property {string[]} columns List of attributes to export. If empty, all attributes will be exported. You can use the '*' wildcard to export all attributes from the collection. + * @property {string[]} queries Array of query strings generated using the Query class provided by the SDK to filter documents to export. [Learn more about queries](https://appwrite.io/docs/databases#querying-documents). Maximum of 100 queries are allowed, each 4096 characters long. + * @property {string} delimiter The character that separates each column value. Default is comma. + * @property {string} enclosure The character that encloses each column value. Default is double quotes. + * @property {string} escape The escape character for the enclosure character. Default is double quotes. + * @property {boolean} header Whether to include the header row with column names. Default is true. + * @property {boolean} notify Set to true to receive an email when the export is complete. Default is true. + * @property {boolean} overrideForCli + * @property {boolean} parseOutput + * @property {libClient | undefined} sdk + */ + +/** + * @param {MigrationsCreateCSVExportRequestParams} params + */ +const migrationsCreateCSVExport = async ({resourceId,bucketId,filename,columns,queries,delimiter,enclosure,escape,header,notify,parseOutput = true, overrideForCli = false, sdk = undefined}) => { + let client = !sdk ? await sdkForProject() : + sdk; + let apiPath = '/migrations/csv/exports'; + let payload = {}; + if (typeof resourceId !== 'undefined') { + payload['resourceId'] = resourceId; + } + if (typeof bucketId !== 'undefined') { + payload['bucketId'] = bucketId; + } + if (typeof filename !== 'undefined') { + payload['filename'] = filename; + } + columns = columns === true ? [] : columns; + if (typeof columns !== 'undefined') { + payload['columns'] = columns; + } + queries = queries === true ? [] : queries; + if (typeof queries !== 'undefined') { + payload['queries'] = queries; + } + if (typeof delimiter !== 'undefined') { + payload['delimiter'] = delimiter; + } + if (typeof enclosure !== 'undefined') { + payload['enclosure'] = enclosure; + } + if (typeof escape !== 'undefined') { + payload['escape'] = escape; + } + if (typeof header !== 'undefined') { + payload['header'] = header; + } + if (typeof notify !== 'undefined') { + payload['notify'] = notify; + } + + let response = undefined; + + response = await client.call('post', apiPath, { + 'content-type': 'application/json', + }, payload); + + if (parseOutput) { + parse(response) + } + + return response; + +} +/** + * @typedef {Object} MigrationsCreateCSVImportRequestParams * @property {string} bucketId Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https://appwrite.io/docs/server/storage#createBucket). * @property {string} fileId File ID. * @property {string} resourceId Composite ID in the format {databaseId:collectionId}, identifying a collection within a database. @@ -177,12 +248,12 @@ const migrationsGetAppwriteReport = async ({resources,endpoint,projectID,key,par */ /** - * @param {MigrationsCreateCsvMigrationRequestParams} params + * @param {MigrationsCreateCSVImportRequestParams} params */ -const migrationsCreateCsvMigration = async ({bucketId,fileId,resourceId,internalFile,parseOutput = true, overrideForCli = false, sdk = undefined}) => { +const migrationsCreateCSVImport = async ({bucketId,fileId,resourceId,internalFile,parseOutput = true, overrideForCli = false, sdk = undefined}) => { let client = !sdk ? await sdkForProject() : sdk; - let apiPath = '/migrations/csv'; + let apiPath = '/migrations/csv/imports'; let payload = {}; if (typeof bucketId !== 'undefined') { payload['bucketId'] = bucketId; @@ -635,13 +706,28 @@ migrations .action(actionRunner(migrationsGetAppwriteReport)) migrations - .command(`create-csv-migration`) + .command(`create-csv-export`) + .description(`Export documents to a CSV file from your Appwrite database. This endpoint allows you to export documents to a CSV file stored in an Appwrite Storage bucket.`) + .requiredOption(`--resource-id `, `Composite ID in the format {databaseId:collectionId}, identifying a collection within a database to export.`) + .requiredOption(`--bucket-id `, `Storage bucket unique ID where the exported CSV will be stored.`) + .requiredOption(`--filename `, `The name of the file to be created for the export, excluding the .csv extension.`) + .option(`--columns [columns...]`, `List of attributes to export. If empty, all attributes will be exported. You can use the '*' wildcard to export all attributes from the collection.`) + .option(`--queries [queries...]`, `Array of query strings generated using the Query class provided by the SDK to filter documents to export. [Learn more about queries](https://appwrite.io/docs/databases#querying-documents). Maximum of 100 queries are allowed, each 4096 characters long.`) + .option(`--delimiter `, `The character that separates each column value. Default is comma.`) + .option(`--enclosure `, `The character that encloses each column value. Default is double quotes.`) + .option(`--escape `, `The escape character for the enclosure character. Default is double quotes.`) + .option(`--header [value]`, `Whether to include the header row with column names. Default is true.`, (value) => value === undefined ? true : parseBool(value)) + .option(`--notify [value]`, `Set to true to receive an email when the export is complete. Default is true.`, (value) => value === undefined ? true : parseBool(value)) + .action(actionRunner(migrationsCreateCSVExport)) + +migrations + .command(`create-csv-import`) .description(`Import documents from a CSV file into your Appwrite database. This endpoint allows you to import documents from a CSV file uploaded to Appwrite Storage bucket.`) .requiredOption(`--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.`) .requiredOption(`--resource-id `, `Composite ID in the format {databaseId:collectionId}, identifying a collection within a database.`) .option(`--internal-file [value]`, `Is the file stored in an internal bucket?`, (value) => value === undefined ? true : parseBool(value)) - .action(actionRunner(migrationsCreateCsvMigration)) + .action(actionRunner(migrationsCreateCSVImport)) migrations .command(`create-firebase-migration`) @@ -730,7 +816,8 @@ module.exports = { migrationsList, migrationsCreateAppwriteMigration, migrationsGetAppwriteReport, - migrationsCreateCsvMigration, + migrationsCreateCSVExport, + migrationsCreateCSVImport, migrationsCreateFirebaseMigration, migrationsGetFirebaseReport, migrationsCreateNHostMigration, diff --git a/lib/commands/push.js b/lib/commands/push.js index ee8c1de..162d4be 100644 --- a/lib/commands/push.js +++ b/lib/commands/push.js @@ -43,6 +43,12 @@ const { databasesUpdateEnumAttribute, databasesUpdateRelationshipAttribute, databasesCreateRelationshipAttribute, + databasesCreatePointAttribute, + databasesUpdatePointAttribute, + databasesCreateLineAttribute, + databasesUpdateLineAttribute, + databasesCreatePolygonAttribute, + databasesUpdatePolygonAttribute, databasesDeleteAttribute, databasesDeleteIndex, databasesListAttributes, @@ -58,7 +64,8 @@ const { tablesDBUpdateTable, tablesDBList, tablesDBDelete, - tablesDBListTables + tablesDBListTables, + tablesDBDeleteTable } = require("./tables-db"); const { storageGetBucket, storageUpdateBucket, storageCreateBucket @@ -561,6 +568,33 @@ const createAttribute = (databaseId, collectionId, attribute) => { onDelete: attribute.onDelete, parseOutput: false }) + case 'point': + return databasesCreatePointAttribute({ + databaseId, + collectionId, + key:attribute.key, + required:attribute.required, + xdefault:attribute.default, + parseOutput:false + }) + case 'linestring': + return databasesCreateLineAttribute({ + databaseId, + collectionId, + key:attribute.key, + required:attribute.required, + xdefault:attribute.default, + parseOutput:false + }) + case 'polygon': + return databasesCreatePolygonAttribute({ + databaseId, + collectionId, + key:attribute.key, + required:attribute.required, + xdefault:attribute.default, + parseOutput:false + }) default: throw new Error(`Unsupported attribute type: ${attribute.type}`); } @@ -680,6 +714,33 @@ const updateAttribute = (databaseId, collectionId, attribute) => { onDelete: attribute.onDelete, parseOutput: false }) + case 'point': + return databasesUpdatePointAttribute({ + databaseId, + collectionId, + key:attribute.key, + required:attribute.required, + xdefault:attribute.default, + parseOutput:false + }) + case 'linestring': + return databasesUpdateLineAttribute({ + databaseId, + collectionId, + key:attribute.key, + required:attribute.required, + xdefault:attribute.default, + parseOutput:false + }) + case 'polygon': + return databasesUpdatePolygonAttribute({ + databaseId, + collectionId, + key:attribute.key, + required:attribute.required, + xdefault:attribute.default, + parseOutput:false + }) default: throw new Error(`Unsupported attribute type: ${attribute.type}`); } @@ -768,7 +829,7 @@ const checkAttributeChanges = (remote, local, collection, recreating = true) => const keyName = `${chalk.yellow(local.key)} in ${collection.name} (${collection['$id']})`; const action = chalk.cyan(recreating ? 'recreating' : 'changing'); let reason = ''; - let attribute = remote; + let attribute = recreating ? remote : local; for (let key of Object.keys(remote)) { if (!KeysAttributes.has(key)) { @@ -1884,6 +1945,65 @@ const pushTable = async ({ returnOnZero, attempts } = { returnOnZero: false }) = console.log(); } + log('Checking for deleted tables ...'); + const localTablesDBs = localConfig.getTablesDBs(); + const localTables = localConfig.getTables(); + const tablesToDelete = []; + + for (const db of localTablesDBs) { + try { + const { tables: remoteTables } = await paginate(tablesDBListTables, { + databaseId: db.$id, + parseOutput: false + }, 100, 'tables'); + + for (const remoteTable of remoteTables) { + const localTable = localTables.find(t => t.$id === remoteTable.$id && t.databaseId === db.$id); + if (!localTable) { + tablesToDelete.push({ + ...remoteTable, + databaseId: db.$id, + databaseName: db.name + }); + } + } + } catch (e) { + // Skip if database doesn't exist or other errors + } + } + + if (tablesToDelete.length > 0) { + log('Found tables that exist remotely but not locally:'); + const deletionChanges = tablesToDelete.map(table => ({ + id: table.$id, + action: chalk.red('deleting'), + key: 'Table', + database: table.databaseName, + remote: table.name, + local: '(deleted locally)' + })); + drawTable(deletionChanges); + + if ((await getConfirmation()) === true) { + for (const table of tablesToDelete) { + try { + log(`Deleting table ${table.name} ( ${table.$id} ) from database ${table.databaseName} ...`); + await tablesDBDeleteTable({ + databaseId: table.databaseId, + tableId: table.$id, + parseOutput: false + }); + success(`Deleted ${table.name} ( ${table.$id} )`); + } catch (e) { + error(`Failed to delete table ${table.name} ( ${table.$id} ): ${e.message}`); + } + } + } + } else { + console.log('No tables found to delete'); + } + console.log(); + if (cliConfig.all) { checkDeployConditions(localConfig); tables.push(...localConfig.getTables()); @@ -1924,6 +2044,7 @@ const pushTable = async ({ returnOnZero, attempts } = { returnOnZero: false }) = const changes = []; if (remoteTable.name !== table.name) changes.push('name'); if (remoteTable.rowSecurity !== table.rowSecurity) changes.push('rowSecurity'); + if (remoteTable.enabled !== table.enabled) changes.push('enabled'); if (JSON.stringify(remoteTable['$permissions']) !== JSON.stringify(table['$permissions'])) changes.push('permissions'); if (changes.length > 0) { diff --git a/lib/parser.js b/lib/parser.js index 0ec2db8..8bc7e51 100644 --- a/lib/parser.js +++ b/lib/parser.js @@ -122,7 +122,7 @@ const parseError = (err) => { } catch { } - const version = '10.2.3'; + const version = '10.2.4'; const stepsToReproduce = `Running \`appwrite ${cliConfig.reportData.data.args.join(' ')}\``; const yourEnvironment = `CLI version: ${version}\nOperation System: ${os.type()}\nAppwrite version: ${appwriteVersion}\nIs Cloud: ${isCloud()}`; diff --git a/package.json b/package.json index dd9576b..0781ec9 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "appwrite-cli", "homepage": "https://appwrite.io/support", "description": "Appwrite is an open-source self-hosted backend server that abstract and simplify complex and repetitive development tasks behind a very simple REST API", - "version": "10.2.3", + "version": "10.2.4", "license": "BSD-3-Clause", "main": "index.js", "bin": { @@ -39,7 +39,7 @@ "dotenv": "^16.4.5" }, "devDependencies": { - "pkg": "5.8.1" + "@yao-pkg/pkg": "^6.9.0" }, "pkg": { "scripts": [ diff --git a/scoop/appwrite.config.json b/scoop/appwrite.config.json index 09b14c5..b678052 100644 --- a/scoop/appwrite.config.json +++ b/scoop/appwrite.config.json @@ -1,12 +1,12 @@ { "$schema": "https://raw.githubusercontent.com/ScoopInstaller/Scoop/master/schema.json", - "version": "10.2.3", + "version": "10.2.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.", "homepage": "https://github.com/appwrite/sdk-for-cli", "license": "BSD-3-Clause", "architecture": { "64bit": { - "url": "https://github.com/appwrite/sdk-for-cli/releases/download/10.2.3/appwrite-cli-win-x64.exe", + "url": "https://github.com/appwrite/sdk-for-cli/releases/download/10.2.4/appwrite-cli-win-x64.exe", "bin": [ [ "appwrite-cli-win-x64.exe", @@ -15,7 +15,7 @@ ] }, "arm64": { - "url": "https://github.com/appwrite/sdk-for-cli/releases/download/10.2.3/appwrite-cli-win-arm64.exe", + "url": "https://github.com/appwrite/sdk-for-cli/releases/download/10.2.4/appwrite-cli-win-arm64.exe", "bin": [ [ "appwrite-cli-win-arm64.exe", From aa8a1be8eaae904a46681e8823f26ecb17c8cfa1 Mon Sep 17 00:00:00 2001 From: root Date: Thu, 30 Oct 2025 04:17:02 +0000 Subject: [PATCH 2/3] regen --- CHANGELOG.md | 4 +++- README.md | 4 ++-- install.ps1 | 4 ++-- install.sh | 2 +- lib/client.js | 4 ++-- lib/parser.js | 2 +- package.json | 2 +- scoop/appwrite.config.json | 6 +++--- 8 files changed, 15 insertions(+), 13 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 641e62d..18a3af6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,9 @@ # Change Log -## 10.2.4 +## 10.3.0 +* Add `create-csv-export` and `create-csv-import` commands to create a CSV export and import of a collection/table +* Add `create-resend-provider` and `update-resend-provider` commands to create and update a Resend Email provider * Fix syncing of tables deleted locally during `push tables` command * Fix added push command support for cli spatial types * Fix attribute changing during push diff --git a/README.md b/README.md index b8b5ce8..66e0483 100644 --- a/README.md +++ b/README.md @@ -29,7 +29,7 @@ Once the installation is complete, you can verify the install using ```sh $ appwrite -v -10.2.4 +10.3.0 ``` ### Install using prebuilt binaries @@ -60,7 +60,7 @@ $ scoop install https://raw.githubusercontent.com/appwrite/sdk-for-cli/master/sc Once the installation completes, you can verify your install using ``` $ appwrite -v -10.2.4 +10.3.0 ``` ## Getting Started diff --git a/install.ps1 b/install.ps1 index 7faa2c3..8126f21 100644 --- a/install.ps1 +++ b/install.ps1 @@ -13,8 +13,8 @@ # You can use "View source" of this page to see the full script. # REPO -$GITHUB_x64_URL = "https://github.com/appwrite/sdk-for-cli/releases/download/10.2.4/appwrite-cli-win-x64.exe" -$GITHUB_arm64_URL = "https://github.com/appwrite/sdk-for-cli/releases/download/10.2.4/appwrite-cli-win-arm64.exe" +$GITHUB_x64_URL = "https://github.com/appwrite/sdk-for-cli/releases/download/10.3.0/appwrite-cli-win-x64.exe" +$GITHUB_arm64_URL = "https://github.com/appwrite/sdk-for-cli/releases/download/10.3.0/appwrite-cli-win-arm64.exe" $APPWRITE_BINARY_NAME = "appwrite.exe" diff --git a/install.sh b/install.sh index a95a1a1..69e2cdc 100644 --- a/install.sh +++ b/install.sh @@ -97,7 +97,7 @@ printSuccess() { downloadBinary() { echo "[2/4] Downloading executable for $OS ($ARCH) ..." - GITHUB_LATEST_VERSION="10.2.4" + GITHUB_LATEST_VERSION="10.3.0" GITHUB_FILE="appwrite-cli-${OS}-${ARCH}" GITHUB_URL="https://github.com/$GITHUB_REPOSITORY_NAME/releases/download/$GITHUB_LATEST_VERSION/$GITHUB_FILE" diff --git a/lib/client.js b/lib/client.js index e449181..003fa0c 100644 --- a/lib/client.js +++ b/lib/client.js @@ -16,8 +16,8 @@ class Client { 'x-sdk-name': 'Command Line', 'x-sdk-platform': 'console', 'x-sdk-language': 'cli', - 'x-sdk-version': '10.2.4', - 'user-agent' : `AppwriteCLI/10.2.4 (${os.type()} ${os.version()}; ${os.arch()})`, + 'x-sdk-version': '10.3.0', + 'user-agent' : `AppwriteCLI/10.3.0 (${os.type()} ${os.version()}; ${os.arch()})`, 'X-Appwrite-Response-Format' : '1.8.0', }; } diff --git a/lib/parser.js b/lib/parser.js index 8bc7e51..6c7be9c 100644 --- a/lib/parser.js +++ b/lib/parser.js @@ -122,7 +122,7 @@ const parseError = (err) => { } catch { } - const version = '10.2.4'; + const version = '10.3.0'; const stepsToReproduce = `Running \`appwrite ${cliConfig.reportData.data.args.join(' ')}\``; const yourEnvironment = `CLI version: ${version}\nOperation System: ${os.type()}\nAppwrite version: ${appwriteVersion}\nIs Cloud: ${isCloud()}`; diff --git a/package.json b/package.json index 0781ec9..6a0c28b 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "appwrite-cli", "homepage": "https://appwrite.io/support", "description": "Appwrite is an open-source self-hosted backend server that abstract and simplify complex and repetitive development tasks behind a very simple REST API", - "version": "10.2.4", + "version": "10.3.0", "license": "BSD-3-Clause", "main": "index.js", "bin": { diff --git a/scoop/appwrite.config.json b/scoop/appwrite.config.json index b678052..8ba53ef 100644 --- a/scoop/appwrite.config.json +++ b/scoop/appwrite.config.json @@ -1,12 +1,12 @@ { "$schema": "https://raw.githubusercontent.com/ScoopInstaller/Scoop/master/schema.json", - "version": "10.2.4", + "version": "10.3.0", "description": "The Appwrite CLI is a command-line application that allows you to interact with Appwrite and perform server-side tasks using your terminal.", "homepage": "https://github.com/appwrite/sdk-for-cli", "license": "BSD-3-Clause", "architecture": { "64bit": { - "url": "https://github.com/appwrite/sdk-for-cli/releases/download/10.2.4/appwrite-cli-win-x64.exe", + "url": "https://github.com/appwrite/sdk-for-cli/releases/download/10.3.0/appwrite-cli-win-x64.exe", "bin": [ [ "appwrite-cli-win-x64.exe", @@ -15,7 +15,7 @@ ] }, "arm64": { - "url": "https://github.com/appwrite/sdk-for-cli/releases/download/10.2.4/appwrite-cli-win-arm64.exe", + "url": "https://github.com/appwrite/sdk-for-cli/releases/download/10.3.0/appwrite-cli-win-arm64.exe", "bin": [ [ "appwrite-cli-win-arm64.exe", From 5eb6b0c97ba3d833b8ecb0c2538136bc7033961e Mon Sep 17 00:00:00 2001 From: root Date: Thu, 30 Oct 2025 12:43:03 +0000 Subject: [PATCH 3/3] regen --- CHANGELOG.md | 5 +++-- README.md | 4 ++-- install.ps1 | 4 ++-- install.sh | 2 +- lib/client.js | 4 ++-- lib/parser.js | 2 +- package.json | 2 +- scoop/appwrite.config.json | 6 +++--- 8 files changed, 15 insertions(+), 14 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 18a3af6..0ffcb91 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,8 +1,9 @@ # Change Log -## 10.3.0 +## 11.0.0 -* Add `create-csv-export` and `create-csv-import` commands to create a CSV export and import of a collection/table +* Rename `create-csv-migration` to `create-csv-import` command to create a CSV import of a collection/table +* Add `create-csv-export` command to create a CSV export of a collection/table * Add `create-resend-provider` and `update-resend-provider` commands to create and update a Resend Email provider * Fix syncing of tables deleted locally during `push tables` command * Fix added push command support for cli spatial types diff --git a/README.md b/README.md index 66e0483..1aec53a 100644 --- a/README.md +++ b/README.md @@ -29,7 +29,7 @@ Once the installation is complete, you can verify the install using ```sh $ appwrite -v -10.3.0 +11.0.0 ``` ### Install using prebuilt binaries @@ -60,7 +60,7 @@ $ scoop install https://raw.githubusercontent.com/appwrite/sdk-for-cli/master/sc Once the installation completes, you can verify your install using ``` $ appwrite -v -10.3.0 +11.0.0 ``` ## Getting Started diff --git a/install.ps1 b/install.ps1 index 8126f21..9ca57c4 100644 --- a/install.ps1 +++ b/install.ps1 @@ -13,8 +13,8 @@ # You can use "View source" of this page to see the full script. # REPO -$GITHUB_x64_URL = "https://github.com/appwrite/sdk-for-cli/releases/download/10.3.0/appwrite-cli-win-x64.exe" -$GITHUB_arm64_URL = "https://github.com/appwrite/sdk-for-cli/releases/download/10.3.0/appwrite-cli-win-arm64.exe" +$GITHUB_x64_URL = "https://github.com/appwrite/sdk-for-cli/releases/download/11.0.0/appwrite-cli-win-x64.exe" +$GITHUB_arm64_URL = "https://github.com/appwrite/sdk-for-cli/releases/download/11.0.0/appwrite-cli-win-arm64.exe" $APPWRITE_BINARY_NAME = "appwrite.exe" diff --git a/install.sh b/install.sh index 69e2cdc..25b56a5 100644 --- a/install.sh +++ b/install.sh @@ -97,7 +97,7 @@ printSuccess() { downloadBinary() { echo "[2/4] Downloading executable for $OS ($ARCH) ..." - GITHUB_LATEST_VERSION="10.3.0" + GITHUB_LATEST_VERSION="11.0.0" GITHUB_FILE="appwrite-cli-${OS}-${ARCH}" GITHUB_URL="https://github.com/$GITHUB_REPOSITORY_NAME/releases/download/$GITHUB_LATEST_VERSION/$GITHUB_FILE" diff --git a/lib/client.js b/lib/client.js index 003fa0c..6f3e20b 100644 --- a/lib/client.js +++ b/lib/client.js @@ -16,8 +16,8 @@ class Client { 'x-sdk-name': 'Command Line', 'x-sdk-platform': 'console', 'x-sdk-language': 'cli', - 'x-sdk-version': '10.3.0', - 'user-agent' : `AppwriteCLI/10.3.0 (${os.type()} ${os.version()}; ${os.arch()})`, + 'x-sdk-version': '11.0.0', + 'user-agent' : `AppwriteCLI/11.0.0 (${os.type()} ${os.version()}; ${os.arch()})`, 'X-Appwrite-Response-Format' : '1.8.0', }; } diff --git a/lib/parser.js b/lib/parser.js index 6c7be9c..8f229b7 100644 --- a/lib/parser.js +++ b/lib/parser.js @@ -122,7 +122,7 @@ const parseError = (err) => { } catch { } - const version = '10.3.0'; + const version = '11.0.0'; const stepsToReproduce = `Running \`appwrite ${cliConfig.reportData.data.args.join(' ')}\``; const yourEnvironment = `CLI version: ${version}\nOperation System: ${os.type()}\nAppwrite version: ${appwriteVersion}\nIs Cloud: ${isCloud()}`; diff --git a/package.json b/package.json index 6a0c28b..de6124e 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "appwrite-cli", "homepage": "https://appwrite.io/support", "description": "Appwrite is an open-source self-hosted backend server that abstract and simplify complex and repetitive development tasks behind a very simple REST API", - "version": "10.3.0", + "version": "11.0.0", "license": "BSD-3-Clause", "main": "index.js", "bin": { diff --git a/scoop/appwrite.config.json b/scoop/appwrite.config.json index 8ba53ef..b79edc4 100644 --- a/scoop/appwrite.config.json +++ b/scoop/appwrite.config.json @@ -1,12 +1,12 @@ { "$schema": "https://raw.githubusercontent.com/ScoopInstaller/Scoop/master/schema.json", - "version": "10.3.0", + "version": "11.0.0", "description": "The Appwrite CLI is a command-line application that allows you to interact with Appwrite and perform server-side tasks using your terminal.", "homepage": "https://github.com/appwrite/sdk-for-cli", "license": "BSD-3-Clause", "architecture": { "64bit": { - "url": "https://github.com/appwrite/sdk-for-cli/releases/download/10.3.0/appwrite-cli-win-x64.exe", + "url": "https://github.com/appwrite/sdk-for-cli/releases/download/11.0.0/appwrite-cli-win-x64.exe", "bin": [ [ "appwrite-cli-win-x64.exe", @@ -15,7 +15,7 @@ ] }, "arm64": { - "url": "https://github.com/appwrite/sdk-for-cli/releases/download/10.3.0/appwrite-cli-win-arm64.exe", + "url": "https://github.com/appwrite/sdk-for-cli/releases/download/11.0.0/appwrite-cli-win-arm64.exe", "bin": [ [ "appwrite-cli-win-arm64.exe",