Merge branch 'main' of https://github.com/appwrite/appwrite into sync-1.6.x

This commit is contained in:
Torsten Dittmann
2024-11-20 11:31:52 +01:00
12 changed files with 160 additions and 72 deletions
+33
View File
@@ -0,0 +1,33 @@
name: "Console SDK Preview"
on:
pull_request:
paths:
- 'app/config/specs/*-latest-console.json'
jobs:
setup:
name: Setup & Build Console SDK
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Load and Start Appwrite
run: |
docker compose build
docker compose up -d
docker compose exec appwrite sdks --platform=console --sdk=web --version=latest --git=no
sudo chown -R $USER:$USER ./app/sdks/console-web
- uses: actions/setup-node@v4
with:
node-version: 20
- name: Build and Publish SDK
working-directory: ./app/sdks/console-web
run: |
npm install
npm run build
npx pkg-pr-new publish --comment=update
+5 -1
View File
@@ -16,4 +16,8 @@ dev/yasd_init.php
.phpunit.result.cache
Makefile
appwrite.json
.zed/
<<<<<<< HEAD
.zed/
=======
/.zed/
>>>>>>> 8e021158286cd04b64b391afe86975e23368a52c
@@ -5082,9 +5082,13 @@
"type": "object",
"properties": {
"body": {
"type": "string",
"type": "object",
"description": "HTTP body of execution. Default value is empty string.",
<<<<<<< HEAD
"x-example": "<BODY>"
=======
"x-example": "{}"
>>>>>>> 8e021158286cd04b64b391afe86975e23368a52c
},
"async": {
"type": "boolean",
@@ -11070,9 +11070,13 @@
"type": "object",
"properties": {
"body": {
"type": "string",
"type": "object",
"description": "HTTP body of execution. Default value is empty string.",
<<<<<<< HEAD
"x-example": "<BODY>"
=======
"x-example": "{}"
>>>>>>> 8e021158286cd04b64b391afe86975e23368a52c
},
"async": {
"type": "boolean",
@@ -9957,9 +9957,13 @@
"type": "object",
"properties": {
"body": {
"type": "string",
"type": "object",
"description": "HTTP body of execution. Default value is empty string.",
<<<<<<< HEAD
"x-example": "<BODY>"
=======
"x-example": "{}"
>>>>>>> 8e021158286cd04b64b391afe86975e23368a52c
},
"async": {
"type": "boolean",
@@ -5232,10 +5232,17 @@
"type": "object",
"properties": {
"body": {
<<<<<<< HEAD
"type": "string",
"description": "HTTP body of execution. Default value is empty string.",
"default": "",
"x-example": "<BODY>"
=======
"type": "object",
"description": "HTTP body of execution. Default value is empty string.",
"default": "",
"x-example": "{}"
>>>>>>> 8e021158286cd04b64b391afe86975e23368a52c
},
"async": {
"type": "boolean",
@@ -11214,10 +11214,17 @@
"type": "object",
"properties": {
"body": {
<<<<<<< HEAD
"type": "string",
"description": "HTTP body of execution. Default value is empty string.",
"default": "",
"x-example": "<BODY>"
=======
"type": "object",
"description": "HTTP body of execution. Default value is empty string.",
"default": "",
"x-example": "{}"
>>>>>>> 8e021158286cd04b64b391afe86975e23368a52c
},
"async": {
"type": "boolean",
@@ -10107,10 +10107,17 @@
"type": "object",
"properties": {
"body": {
<<<<<<< HEAD
"type": "string",
"description": "HTTP body of execution. Default value is empty string.",
"default": "",
"x-example": "<BODY>"
=======
"type": "object",
"description": "HTTP body of execution. Default value is empty string.",
"default": "",
"x-example": "{}"
>>>>>>> 8e021158286cd04b64b391afe86975e23368a52c
},
"async": {
"type": "boolean",
Generated
+60 -59
View File
@@ -753,28 +753,28 @@
},
{
"name": "jean85/pretty-package-versions",
"version": "2.0.6",
"version": "2.1.0",
"source": {
"type": "git",
"url": "https://github.com/Jean85/pretty-package-versions.git",
"reference": "f9fdd29ad8e6d024f52678b570e5593759b550b4"
"reference": "3c4e5f62ba8d7de1734312e4fff32f67a8daaf10"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/Jean85/pretty-package-versions/zipball/f9fdd29ad8e6d024f52678b570e5593759b550b4",
"reference": "f9fdd29ad8e6d024f52678b570e5593759b550b4",
"url": "https://api.github.com/repos/Jean85/pretty-package-versions/zipball/3c4e5f62ba8d7de1734312e4fff32f67a8daaf10",
"reference": "3c4e5f62ba8d7de1734312e4fff32f67a8daaf10",
"shasum": ""
},
"require": {
"composer-runtime-api": "^2.0.0",
"php": "^7.1|^8.0"
"composer-runtime-api": "^2.1.0",
"php": "^7.4|^8.0"
},
"require-dev": {
"friendsofphp/php-cs-fixer": "^3.2",
"jean85/composer-provided-replaced-stub-package": "^1.0",
"phpstan/phpstan": "^1.4",
"phpunit/phpunit": "^7.5|^8.5|^9.4",
"vimeo/psalm": "^4.3"
"phpunit/phpunit": "^7.5|^8.5|^9.6",
"vimeo/psalm": "^4.3 || ^5.0"
},
"type": "library",
"extra": {
@@ -806,9 +806,9 @@
],
"support": {
"issues": "https://github.com/Jean85/pretty-package-versions/issues",
"source": "https://github.com/Jean85/pretty-package-versions/tree/2.0.6"
"source": "https://github.com/Jean85/pretty-package-versions/tree/2.1.0"
},
"time": "2024-03-08T09:58:59+00:00"
"time": "2024-11-18T16:19:46+00:00"
},
{
"name": "league/csv",
@@ -2453,16 +2453,16 @@
},
{
"name": "symfony/http-client",
"version": "v7.1.7",
"version": "v7.1.8",
"source": {
"type": "git",
"url": "https://github.com/symfony/http-client.git",
"reference": "90ab2a4992dcf5d1f19a9b8737eba36a7c305fd0"
"reference": "c30d91a1deac0dc3ed5e604683cf2e1dfc635b8a"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/http-client/zipball/90ab2a4992dcf5d1f19a9b8737eba36a7c305fd0",
"reference": "90ab2a4992dcf5d1f19a9b8737eba36a7c305fd0",
"url": "https://api.github.com/repos/symfony/http-client/zipball/c30d91a1deac0dc3ed5e604683cf2e1dfc635b8a",
"reference": "c30d91a1deac0dc3ed5e604683cf2e1dfc635b8a",
"shasum": ""
},
"require": {
@@ -2527,7 +2527,7 @@
"http"
],
"support": {
"source": "https://github.com/symfony/http-client/tree/v7.1.7"
"source": "https://github.com/symfony/http-client/tree/v7.1.8"
},
"funding": [
{
@@ -2543,7 +2543,7 @@
"type": "tidelift"
}
],
"time": "2024-11-05T16:45:54+00:00"
"time": "2024-11-13T13:40:27+00:00"
},
{
"name": "symfony/http-client-contracts",
@@ -3677,16 +3677,16 @@
},
{
"name": "utopia-php/framework",
"version": "0.33.12",
"version": "0.33.13",
"source": {
"type": "git",
"url": "https://github.com/utopia-php/http.git",
"reference": "bfb7812df9e489b3cba7d5504a49ce578c71af1f"
"reference": "4ecab88e424a136ffaa27cdf3db3c60f76c777e4"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/utopia-php/http/zipball/bfb7812df9e489b3cba7d5504a49ce578c71af1f",
"reference": "bfb7812df9e489b3cba7d5504a49ce578c71af1f",
"url": "https://api.github.com/repos/utopia-php/http/zipball/4ecab88e424a136ffaa27cdf3db3c60f76c777e4",
"reference": "4ecab88e424a136ffaa27cdf3db3c60f76c777e4",
"shasum": ""
},
"require": {
@@ -3718,9 +3718,9 @@
],
"support": {
"issues": "https://github.com/utopia-php/http/issues",
"source": "https://github.com/utopia-php/http/tree/0.33.12"
"source": "https://github.com/utopia-php/http/tree/0.33.13"
},
"time": "2024-11-13T12:45:45+00:00"
"time": "2024-11-15T08:37:31+00:00"
},
{
"name": "utopia-php/image",
@@ -4806,16 +4806,16 @@
"packages-dev": [
{
"name": "appwrite/sdk-generator",
"version": "0.39.24",
"version": "0.39.25",
"source": {
"type": "git",
"url": "https://github.com/appwrite/sdk-generator.git",
"reference": "412451c87f6ef17e24e9a5cf41721043d74c60c8"
"reference": "5b5323636a8d75a1c4faaae9728098dd6a6a47d1"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/appwrite/sdk-generator/zipball/412451c87f6ef17e24e9a5cf41721043d74c60c8",
"reference": "412451c87f6ef17e24e9a5cf41721043d74c60c8",
"url": "https://api.github.com/repos/appwrite/sdk-generator/zipball/5b5323636a8d75a1c4faaae9728098dd6a6a47d1",
"reference": "5b5323636a8d75a1c4faaae9728098dd6a6a47d1",
"shasum": ""
},
"require": {
@@ -4823,7 +4823,7 @@
"ext-json": "*",
"ext-mbstring": "*",
"matthiasmullie/minify": "1.3.*",
"php": ">=8.0",
"php": ">=8.3",
"twig/twig": "3.14.*"
},
"require-dev": {
@@ -4851,9 +4851,9 @@
"description": "Appwrite PHP library for generating API SDKs for multiple programming languages and platforms",
"support": {
"issues": "https://github.com/appwrite/sdk-generator/issues",
"source": "https://github.com/appwrite/sdk-generator/tree/0.39.24"
"source": "https://github.com/appwrite/sdk-generator/tree/0.39.25"
},
"time": "2024-10-09T19:13:27+00:00"
"time": "2024-11-08T10:16:34+00:00"
},
{
"name": "doctrine/annotations",
@@ -5127,16 +5127,16 @@
},
{
"name": "laravel/pint",
"version": "v1.18.1",
"version": "v1.18.2",
"source": {
"type": "git",
"url": "https://github.com/laravel/pint.git",
"reference": "35c00c05ec43e6b46d295efc0f4386ceb30d50d9"
"reference": "f55daaf7eb6c2f49ddf6702fb42e3091c64d8a64"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/laravel/pint/zipball/35c00c05ec43e6b46d295efc0f4386ceb30d50d9",
"reference": "35c00c05ec43e6b46d295efc0f4386ceb30d50d9",
"url": "https://api.github.com/repos/laravel/pint/zipball/f55daaf7eb6c2f49ddf6702fb42e3091c64d8a64",
"reference": "f55daaf7eb6c2f49ddf6702fb42e3091c64d8a64",
"shasum": ""
},
"require": {
@@ -5189,7 +5189,7 @@
"issues": "https://github.com/laravel/pint/issues",
"source": "https://github.com/laravel/pint"
},
"time": "2024-09-24T17:22:50+00:00"
"time": "2024-11-20T09:33:46+00:00"
},
{
"name": "matthiasmullie/minify",
@@ -5930,26 +5930,27 @@
},
{
"name": "phpspec/prophecy",
"version": "v1.19.0",
"version": "v1.20.0",
"source": {
"type": "git",
"url": "https://github.com/phpspec/prophecy.git",
"reference": "67a759e7d8746d501c41536ba40cd9c0a07d6a87"
"reference": "a0165c648cab6a80311c74ffc708a07bb53ecc93"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/phpspec/prophecy/zipball/67a759e7d8746d501c41536ba40cd9c0a07d6a87",
"reference": "67a759e7d8746d501c41536ba40cd9c0a07d6a87",
"url": "https://api.github.com/repos/phpspec/prophecy/zipball/a0165c648cab6a80311c74ffc708a07bb53ecc93",
"reference": "a0165c648cab6a80311c74ffc708a07bb53ecc93",
"shasum": ""
},
"require": {
"doctrine/instantiator": "^1.2 || ^2.0",
"php": "^7.2 || 8.0.* || 8.1.* || 8.2.* || 8.3.*",
"php": "^7.2 || 8.0.* || 8.1.* || 8.2.* || 8.3.* || 8.4.*",
"phpdocumentor/reflection-docblock": "^5.2",
"sebastian/comparator": "^3.0 || ^4.0 || ^5.0 || ^6.0",
"sebastian/recursion-context": "^3.0 || ^4.0 || ^5.0 || ^6.0"
},
"require-dev": {
"friendsofphp/php-cs-fixer": "^3.40",
"phpspec/phpspec": "^6.0 || ^7.0",
"phpstan/phpstan": "^1.9",
"phpunit/phpunit": "^8.0 || ^9.0 || ^10.0"
@@ -5993,9 +5994,9 @@
],
"support": {
"issues": "https://github.com/phpspec/prophecy/issues",
"source": "https://github.com/phpspec/prophecy/tree/v1.19.0"
"source": "https://github.com/phpspec/prophecy/tree/v1.20.0"
},
"time": "2024-02-29T11:52:51+00:00"
"time": "2024-11-19T13:12:41+00:00"
},
{
"name": "phpstan/phpdoc-parser",
@@ -7576,16 +7577,16 @@
},
{
"name": "symfony/console",
"version": "v7.1.7",
"version": "v7.1.8",
"source": {
"type": "git",
"url": "https://github.com/symfony/console.git",
"reference": "3284aafcac338b6e86fd955ee4d794cbe434151a"
"reference": "ff04e5b5ba043d2badfb308197b9e6b42883fcd5"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/console/zipball/3284aafcac338b6e86fd955ee4d794cbe434151a",
"reference": "3284aafcac338b6e86fd955ee4d794cbe434151a",
"url": "https://api.github.com/repos/symfony/console/zipball/ff04e5b5ba043d2badfb308197b9e6b42883fcd5",
"reference": "ff04e5b5ba043d2badfb308197b9e6b42883fcd5",
"shasum": ""
},
"require": {
@@ -7649,7 +7650,7 @@
"terminal"
],
"support": {
"source": "https://github.com/symfony/console/tree/v7.1.7"
"source": "https://github.com/symfony/console/tree/v7.1.8"
},
"funding": [
{
@@ -7665,7 +7666,7 @@
"type": "tidelift"
}
],
"time": "2024-11-05T15:34:55+00:00"
"time": "2024-11-06T14:23:19+00:00"
},
{
"name": "symfony/filesystem",
@@ -8180,16 +8181,16 @@
},
{
"name": "symfony/process",
"version": "v7.1.7",
"version": "v7.1.8",
"source": {
"type": "git",
"url": "https://github.com/symfony/process.git",
"reference": "9b8a40b7289767aa7117e957573c2a535efe6585"
"reference": "42783370fda6e538771f7c7a36e9fa2ee3a84892"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/process/zipball/9b8a40b7289767aa7117e957573c2a535efe6585",
"reference": "9b8a40b7289767aa7117e957573c2a535efe6585",
"url": "https://api.github.com/repos/symfony/process/zipball/42783370fda6e538771f7c7a36e9fa2ee3a84892",
"reference": "42783370fda6e538771f7c7a36e9fa2ee3a84892",
"shasum": ""
},
"require": {
@@ -8221,7 +8222,7 @@
"description": "Executes commands in sub-processes",
"homepage": "https://symfony.com",
"support": {
"source": "https://github.com/symfony/process/tree/v7.1.7"
"source": "https://github.com/symfony/process/tree/v7.1.8"
},
"funding": [
{
@@ -8237,20 +8238,20 @@
"type": "tidelift"
}
],
"time": "2024-11-06T09:25:12+00:00"
"time": "2024-11-06T14:23:19+00:00"
},
{
"name": "symfony/string",
"version": "v7.1.6",
"version": "v7.1.8",
"source": {
"type": "git",
"url": "https://github.com/symfony/string.git",
"reference": "61b72d66bf96c360a727ae6232df5ac83c71f626"
"reference": "591ebd41565f356fcd8b090fe64dbb5878f50281"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/string/zipball/61b72d66bf96c360a727ae6232df5ac83c71f626",
"reference": "61b72d66bf96c360a727ae6232df5ac83c71f626",
"url": "https://api.github.com/repos/symfony/string/zipball/591ebd41565f356fcd8b090fe64dbb5878f50281",
"reference": "591ebd41565f356fcd8b090fe64dbb5878f50281",
"shasum": ""
},
"require": {
@@ -8308,7 +8309,7 @@
"utf8"
],
"support": {
"source": "https://github.com/symfony/string/tree/v7.1.6"
"source": "https://github.com/symfony/string/tree/v7.1.8"
},
"funding": [
{
@@ -8324,7 +8325,7 @@
"type": "tidelift"
}
],
"time": "2024-09-25T14:20:29+00:00"
"time": "2024-11-13T13:31:21+00:00"
},
{
"name": "textalk/websocket",
+24 -9
View File
@@ -25,6 +25,9 @@ use Appwrite\Spec\Swagger2;
use Utopia\CLI\Console;
use Utopia\Config\Config;
use Utopia\Platform\Action;
use Utopia\Validator\Nullable;
use Utopia\Validator\Text;
use Utopia\Validator\WhiteList;
class SDKs extends Action
{
@@ -37,23 +40,35 @@ class SDKs extends Action
{
$this
->desc('Generate Appwrite SDKs')
->callback(fn () => $this->action());
->param('platform', null, new Nullable(new Text(256)), 'Selected Platform', optional: true)
->param('sdk', null, new Nullable(new Text(256)), 'Selected SDK', optional:true)
->param('version', null, new Nullable(new Text(256)), 'Selected SDK', optional:true)
->param('git', null, new Nullable(new WhiteList(['yes', 'no'])), 'Should we use git push?', optional: true)
->param('production', null, new Nullable(new WhiteList(['yes', 'no'])), 'Should we push to production?', optional:true)
->param('message', null, new Nullable(new Text(256)), 'Commit Message', optional:true)
->callback([$this, 'action']);
}
public function action(): void
public function action(?string $selectedPlatform, ?string $selectedSDK, ?string $version, ?string $git, ?string $production, ?string $message)
{
$platforms = Config::getParam('platforms');
$selectedPlatform = Console::confirm('Choose Platform ("' . APP_PLATFORM_CLIENT . '", "' . APP_PLATFORM_SERVER . '", "' . APP_PLATFORM_CONSOLE . '" or "*" for all):');
$selectedSDK = \strtolower(Console::confirm('Choose SDK ("*" for all):'));
$version = Console::confirm('Choose an Appwrite version');
$git = (Console::confirm('Should we use git push? (yes/no)') == 'yes');
$production = ($git) ? (Console::confirm('Type "Appwrite" to push code to production git repos') == 'Appwrite') : false;
$message = ($git) ? Console::confirm('Please enter your commit message:') : '';
$selectedPlatform ??= Console::confirm('Choose Platform ("' . APP_PLATFORM_CLIENT . '", "' . APP_PLATFORM_SERVER . '", "' . APP_PLATFORM_CONSOLE . '" or "*" for all):');
$selectedSDK ??= \strtolower(Console::confirm('Choose SDK ("*" for all):'));
$version ??= Console::confirm('Choose an Appwrite version');
$git ??= Console::confirm('Should we use git push? (yes/no)');
$git = $git === 'yes';
if ($git) {
$production ??= Console::confirm('Type "Appwrite" to push code to production git repos');
$production = $production === 'Appwrite';
$message ??= Console::confirm('Please enter your commit message:');
}
if (!in_array($version, ['0.6.x', '0.7.x', '0.8.x', '0.9.x', '0.10.x', '0.11.x', '0.12.x', '0.13.x', '0.14.x', '0.15.x', '1.0.x', '1.1.x', '1.2.x', '1.3.x', '1.4.x', '1.5.x', '1.6.x', 'latest'])) {
throw new \Exception('Unknown version given');
}
$platforms = Config::getParam('platforms');
foreach ($platforms as $key => $platform) {
if ($selectedPlatform !== $key && $selectedPlatform !== '*') {
continue;
@@ -323,6 +323,7 @@ class OpenAPI3 extends Format
case 'Utopia\Validator\JSON':
case 'Utopia\Validator\Mock':
case 'Utopia\Validator\Assoc':
case 'Appwrite\Functions\Validator\Payload':
$param['default'] = (empty($param['default'])) ? new \stdClass() : $param['default'];
$node['schema']['type'] = 'object';
$node['schema']['x-example'] = '{}';
@@ -349,6 +349,7 @@ class Swagger2 extends Format
case 'Utopia\Validator\JSON':
case 'Utopia\Validator\Mock':
case 'Utopia\Validator\Assoc':
case 'Appwrite\Functions\Validator\Payload':
$node['type'] = 'object';
$node['default'] = (empty($param['default'])) ? new \stdClass() : $param['default'];
$node['x-example'] = '{}';