diff --git a/.github/workflows/backend-test.yml b/.github/workflows/backend-test.yml index 8cb445496d..4cbda91248 100644 --- a/.github/workflows/backend-test.yml +++ b/.github/workflows/backend-test.yml @@ -47,7 +47,7 @@ jobs: python-version: 3.11 - uses: oven-sh/setup-bun@v2 with: - bun-version: 1.1.40 + bun-version: 1.1.43 - uses: astral-sh/setup-uv@v4 with: version: "0.4.18" @@ -67,4 +67,5 @@ jobs: DISABLE_EMBEDDING=true RUST_LOG=info PYTHON_PATH=$(which python) DENO_PATH=$(which deno) BUN_PATH=$(which bun) GO_PATH=$(which go) UV_PATH=$(which uv) cargo test --features - enterprise,deno_core,license,python,rust,scoped_cache --all -- --nocapture + enterprise,deno_core,license,python,rust,scoped_cache --all -- + --nocapture diff --git a/.github/workflows/build-publish-rh-image.yml b/.github/workflows/build-publish-rh-image.yml index f9c6fd139c..dbfd152a9c 100644 --- a/.github/workflows/build-publish-rh-image.yml +++ b/.github/workflows/build-publish-rh-image.yml @@ -64,7 +64,7 @@ jobs: platforms: linux/amd64 push: true build-args: | - features=enterprise,enterprise_saml,stripe,embedding,parquet,prometheus,openidconnect,cloud,jemalloc,deno_core,license,http_trigger,zip,oauth2,kafka,nats,php,mysql,mssql,bigquery,websocket,python,smtp,csharp,static_frontend,rust + features=enterprise,enterprise_saml,stripe,embedding,parquet,prometheus,openidconnect,cloud,jemalloc,deno_core,license,http_trigger,zip,oauth2,kafka,nats,php,mysql,mssql,bigquery,oracledb,websocket,python,smtp,csharp,static_frontend,rust secrets: | rh_username=${{ secrets.RH_USERNAME }} rh_password=${{ secrets.RH_PASSWORD }} @@ -81,7 +81,7 @@ jobs: platforms: linux/arm64 push: true build-args: | - features=enterprise,enterprise_saml,stripe,embedding,parquet,prometheus,openidconnect,cloud,jemalloc,deno_core,license,http_trigger,zip,oauth2,kafka,nats,php,mysql,mssql,bigquery,websocket,python,smtp,csharp,static_frontend,rust + features=enterprise,enterprise_saml,stripe,embedding,parquet,prometheus,openidconnect,cloud,jemalloc,deno_core,license,http_trigger,zip,oauth2,kafka,nats,php,mysql,mssql,bigquery,oracledb,websocket,python,smtp,csharp,static_frontend,rust secrets: | rh_username=${{ secrets.RH_USERNAME }} rh_password=${{ secrets.RH_PASSWORD }} @@ -97,16 +97,16 @@ jobs: image: ${{ steps.meta-ee-public.outputs.tags}}-amd64 path: "/windmill/target/release/windmill" - - uses: shrink/actions-docker-extract@v3 - id: extract-ee-arm64 - with: - image: ${{ steps.meta-ee-public.outputs.tags}}-arm64 - path: "/windmill/target/release/windmill" + # - uses: shrink/actions-docker-extract@v3 + # id: extract-ee-arm64 + # with: + # image: ${{ steps.meta-ee-public.outputs.tags}}-arm64 + # path: "/windmill/target/release/windmill" - name: Rename binary with corresponding architecture run: | mv "${{ steps.extract-ee-amd64.outputs.destination }}/windmill" "${{ steps.extract-ee-amd64.outputs.destination }}/windmill-ee-amd64-rhel9" - mv "${{ steps.extract-ee-arm64.outputs.destination }}/windmill" "${{ steps.extract-ee-arm64.outputs.destination }}/windmill-ee-arm64-rhel9" + # mv "${{ steps.extract-ee-arm64.outputs.destination }}/windmill" "${{ steps.extract-ee-arm64.outputs.destination }}/windmill-ee-arm64-rhel9" - uses: actions/upload-artifact@v4 with: @@ -115,12 +115,12 @@ jobs: ${{ steps.extract-ee-amd64.outputs.destination }}/windmill-ee-amd64-rhel9 - - uses: actions/upload-artifact@v4 - with: - name: RHEL9-arm64 build - path: - ${{ steps.extract-ee-arm64.outputs.destination - }}/windmill-ee-arm64-rhel9 + # - uses: actions/upload-artifact@v4 + # with: + # name: RHEL9-arm64 build + # path: + # ${{ steps.extract-ee-arm64.outputs.destination + # }}/windmill-ee-arm64-rhel9 # - name: Attach binary to release # uses: softprops/action-gh-release@v2 diff --git a/.github/workflows/build_windows_worker_.yml b/.github/workflows/build_windows_worker_.yml index 1761646d8f..70398725d8 100644 --- a/.github/workflows/build_windows_worker_.yml +++ b/.github/workflows/build_windows_worker_.yml @@ -45,14 +45,14 @@ jobs: $env:OPENSSL_DIR="${Env:VCPKG_INSTALLATION_ROOT}\installed\x64-windows-static" mkdir frontend/build && cd backend New-Item -Path . -Name "windmill-api/openapi-deref.yaml" -ItemType "File" -Force - cargo build --release --features=enterprise,stripe,embedding,parquet,prometheus,openidconnect,cloud,jemalloc,tantivy,deno_core,license,http_trigger,zip,oauth2,kafka,nats,php,mysql,mssql,bigquery,websocket,python,smtp,csharp,static_frontend,rust + cargo build --release --features=enterprise,stripe,embedding,parquet,prometheus,openidconnect,cloud,jemalloc,tantivy,deno_core,license,http_trigger,zip,oauth2,kafka,nats,php,mysql,mssql,bigquery,oracledb,websocket,python,smtp,csharp,static_frontend,rust - name: Rename binary with corresponding architecture run: | Rename-Item -Path ".\backend\target\release\windmill.exe" -NewName "windmill-ee.exe" - name: Upload artifact - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: windmill-ee-binary path: ./backend/target/release/windmill-ee.exe diff --git a/.github/workflows/docker-image-rpi4.yml b/.github/workflows/docker-image-rpi4.yml index 5034138761..869787a4aa 100644 --- a/.github/workflows/docker-image-rpi4.yml +++ b/.github/workflows/docker-image-rpi4.yml @@ -67,7 +67,7 @@ jobs: platforms: linux/amd64,linux/arm64 push: true build-args: | - features=embedding,parquet,openidconnect,deno_core,license,http_trigger,zip,oauth2,php,mysql,mssql,bigquery,websocket,python,smtp,csharp,static_frontend,rust + features=embedding,parquet,openidconnect,deno_core,license,http_trigger,zip,oauth2,php,mysql,mssql,bigquery,oracledb,websocket,python,smtp,csharp,static_frontend,rust tags: | ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:dev ${{ steps.meta-public.outputs.tags }} diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml index 8361c07a59..65512e1d84 100644 --- a/.github/workflows/docker-image.yml +++ b/.github/workflows/docker-image.yml @@ -1,9 +1,11 @@ env: REGISTRY: ghcr.io IMAGE_NAME: - ${{ github.event_name != 'pull_request' && github.event_name != 'workflow_dispatch' && github.repository || 'windmill-labs/windmill-test' }} + ${{ github.event_name != 'pull_request' && github.event_name != + 'workflow_dispatch' && github.repository || 'windmill-labs/windmill-test' }} DEV_SHA: - ${{ github.event_name != 'pull_request' && github.event_name != 'workflow_dispatch' && 'dev' || github.event.inputs.tag || github.sha }} + ${{ github.event_name != 'pull_request' && github.event_name != + 'workflow_dispatch' && 'dev' || github.event.inputs.tag || github.sha }} name: Build windmill:main on: push: @@ -16,14 +18,14 @@ on: workflow_dispatch: inputs: ee: - description: 'Build EE image (true, false)' + description: "Build EE image (true, false)" required: false default: false type: boolean tag: - description: 'Tag the image' + description: "Tag the image" required: true - default: 'test' + default: "test" concurrency: group: ${{ github.ref }} @@ -34,7 +36,9 @@ permissions: write-all jobs: build: runs-on: ubicloud - if: (github.event_name != 'workflow_dispatch') || (github.event.inputs && !github.event.inputs.ee) + if: + (github.event_name != 'workflow_dispatch') || (github.event.inputs && + !github.event.inputs.ee) steps: - uses: actions/checkout@v4 with: @@ -86,7 +90,7 @@ jobs: platforms: linux/amd64,linux/arm64 push: true build-args: | - features=embedding,parquet,openidconnect,jemalloc,deno_core,license,http_trigger,zip,oauth2,dind,php,mysql,mssql,bigquery,websocket,python,smtp,csharp,static_frontend,rust + features=embedding,parquet,openidconnect,jemalloc,deno_core,license,http_trigger,zip,oauth2,dind,php,mysql,mssql,bigquery,oracledb,websocket,python,smtp,csharp,static_frontend,rust tags: | ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ env.DEV_SHA }} ${{ steps.meta-public.outputs.tags }} @@ -96,8 +100,7 @@ jobs: build_ee: runs-on: ubicloud - if: - (github.event_name != 'workflow_dispatch') || (github.event.inputs.ee) + if: (github.event_name != 'workflow_dispatch') || (github.event.inputs.ee) steps: - uses: actions/checkout@v4 with: @@ -149,7 +152,7 @@ jobs: platforms: linux/amd64,linux/arm64 push: true build-args: | - features=enterprise,enterprise_saml,stripe,embedding,parquet,prometheus,openidconnect,cloud,jemalloc,tantivy,deno_core,license,http_trigger,zip,oauth2,kafka,nats,otel,dind,php,mysql,mssql,bigquery,websocket,python,smtp,csharp,static_frontend,rust + features=enterprise,enterprise_saml,stripe,embedding,parquet,prometheus,openidconnect,cloud,jemalloc,tantivy,deno_core,license,http_trigger,zip,oauth2,kafka,nats,otel,dind,php,mysql,mssql,bigquery,oracledb,websocket,python,smtp,csharp,static_frontend,rust tags: | ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}-ee:${{ env.DEV_SHA }} ${{ steps.meta-ee-public.outputs.tags }} @@ -211,7 +214,7 @@ jobs: platforms: linux/amd64 push: true build-args: | - features=enterprise,enterprise_saml,stripe,embedding,parquet,prometheus,openidconnect,cloud,jemalloc,tantivy,deno_core,license,http_trigger,zip,oauth2,kafka,nats,otel,dind,php,mysql,mssql,bigquery,websocket,python,smtp,csharp,static_frontend,rust + features=enterprise,enterprise_saml,stripe,embedding,parquet,prometheus,openidconnect,cloud,jemalloc,tantivy,deno_core,license,http_trigger,zip,oauth2,kafka,nats,otel,dind,php,mysql,mssql,bigquery,oracledb,websocket,python,smtp,csharp,static_frontend,rust PYTHON_IMAGE=python:3.12.2-slim-bookworm tags: | ${{ steps.meta-ee-public-py312.outputs.tags }} @@ -357,7 +360,7 @@ jobs: LICENSE_KEY: ${{ secrets.WM_LICENSE_KEY_CI }} run: cd integration_tests && ./run.sh - name: Archive logs - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 if: always() with: name: Windmill Integration Tests Logs @@ -452,7 +455,8 @@ jobs: needs: [build_ee] runs-on: ubicloud if: - (github.event_name != 'pull_request') && (github.event_name != 'workflow_dispatch') + (github.event_name != 'pull_request') && (github.event_name != + 'workflow_dispatch') steps: - uses: actions/checkout@v4 with: @@ -545,7 +549,9 @@ jobs: publish_ecr_s3: needs: [build_ee_nsjail] runs-on: ubicloud-standard-2-arm - if: (github.event_name != 'pull_request') && (github.event_name != 'workflow_dispatch') + if: + (github.event_name != 'pull_request') && (github.event_name != + 'workflow_dispatch') env: AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} diff --git a/.github/workflows/publish_windows_worker.yml b/.github/workflows/publish_windows_worker.yml index 324c762b19..e6854020be 100644 --- a/.github/workflows/publish_windows_worker.yml +++ b/.github/workflows/publish_windows_worker.yml @@ -47,7 +47,7 @@ jobs: $env:OPENSSL_DIR="${Env:VCPKG_INSTALLATION_ROOT}\installed\x64-windows-static" mkdir frontend/build && cd backend New-Item -Path . -Name "windmill-api/openapi-deref.yaml" -ItemType "File" -Force - cargo build --release --features=enterprise,stripe,embedding,parquet,prometheus,openidconnect,cloud,jemalloc,tantivy,deno_core,license,http_trigger,zip,oauth2,kafka,nats,php,mysql,mssql,bigquery,websocket,python,smtp,csharp,static_frontend,rust + cargo build --release --features=enterprise,stripe,embedding,parquet,prometheus,openidconnect,cloud,jemalloc,tantivy,deno_core,license,http_trigger,zip,oauth2,kafka,nats,php,mysql,mssql,bigquery,oracledb,websocket,python,smtp,csharp,static_frontend,rust - name: Rename binary with corresponding architecture run: | diff --git a/CHANGELOG.md b/CHANGELOG.md index 1356762af7..1de4721954 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,84 @@ # Changelog +## [1.447.6](https://github.com/windmill-labs/windmill/compare/v1.447.5...v1.447.6) (2025-01-21) + + +### Bug Fixes + +* improve uv dependency install reliability with an atomic success file ([5831822](https://github.com/windmill-labs/windmill/commit/5831822afeb9919b8af3dc6ce60100736cab9d01)) +* **python:** Replace Inf with null ([#5099](https://github.com/windmill-labs/windmill/issues/5099)) ([8eb5e72](https://github.com/windmill-labs/windmill/commit/8eb5e72ccdcc037d94209632f3e64742c809fd7e)) + +## [1.447.5](https://github.com/windmill-labs/windmill/compare/v1.447.4...v1.447.5) (2025-01-17) + + +### Bug Fixes + +* c# on windows, oracledb test connection, cli for C# and Oracle DB ([#5090](https://github.com/windmill-labs/windmill/issues/5090)) ([298aaae](https://github.com/windmill-labs/windmill/commit/298aaaefa398234473a54cbc15756ee2d6b0e68c)) +* fix workspace specific custom tags ([0d153a0](https://github.com/windmill-labs/windmill/commit/0d153a0a2d3954c702d41afeb3f4d74152b071f0)) +* **frontend:** empty arg initial height ([#5089](https://github.com/windmill-labs/windmill/issues/5089)) ([64f4958](https://github.com/windmill-labs/windmill/commit/64f4958774a8259c3a28c394da6ab599ac9d43bb)) +* **frontend:** input autosize on default value ([#5080](https://github.com/windmill-labs/windmill/issues/5080)) ([d1794c9](https://github.com/windmill-labs/windmill/commit/d1794c9811c1c944a9c68d2e1b8f0bb50db4e1f8)) +* **frontend:** webhook/route payload from args ([#5088](https://github.com/windmill-labs/windmill/issues/5088)) ([501c44b](https://github.com/windmill-labs/windmill/commit/501c44b3a1f38256bc7b304109ebbaa45678c792)) +* preprocessor script kind option ([#5081](https://github.com/windmill-labs/windmill/issues/5081)) ([742d04d](https://github.com/windmill-labs/windmill/commit/742d04df38b240f12c58a0785014034f55409eab)) +* require preexisting user option for auth correctly saved ([854febd](https://github.com/windmill-labs/windmill/commit/854febdafd48f114b5943de77893d80f437310ba)) + +## [1.447.4](https://github.com/windmill-labs/windmill/compare/v1.447.3...v1.447.4) (2025-01-16) + + +### Bug Fixes + +* add support for previous result as expression in the flow ([33227f8](https://github.com/windmill-labs/windmill/commit/33227f844823864ed476a6e0a7d3ce529ce10552)) + +## [1.447.3](https://github.com/windmill-labs/windmill/compare/v1.447.2...v1.447.3) (2025-01-16) + + +### Bug Fixes + +* fix default json formatter ([fddcaca](https://github.com/windmill-labs/windmill/commit/fddcaca807b4e8c81578955deb5532d0e23ec9dd)) +* Oracle Database client libraries ([#5072](https://github.com/windmill-labs/windmill/issues/5072)) ([09dda48](https://github.com/windmill-labs/windmill/commit/09dda483f404cc94cf81e70b496a5be7090b719f)) + +## [1.447.2](https://github.com/windmill-labs/windmill/compare/v1.447.1...v1.447.2) (2025-01-15) + + +### Bug Fixes + +* **frontend:** fix nested shema editing ([#5068](https://github.com/windmill-labs/windmill/issues/5068)) ([df0faa2](https://github.com/windmill-labs/windmill/commit/df0faa204f64a2f5c254f90527cb8c0a57826b8c)) +* improve handling of default and set value of object args ([1c14c3a](https://github.com/windmill-labs/windmill/commit/1c14c3ac0e28871f9b66a7e0ef5977766d314cfa)) + +## [1.447.1](https://github.com/windmill-labs/windmill/compare/v1.447.0...v1.447.1) (2025-01-15) + + +### Bug Fixes + +* **backend:** better deleted user error ([#5060](https://github.com/windmill-labs/windmill/issues/5060)) ([bc3d93b](https://github.com/windmill-labs/windmill/commit/bc3d93b9357114ac1210bf677a8615c459bb914d)) +* **backend:** bun cache hash consistency ([#5067](https://github.com/windmill-labs/windmill/issues/5067)) ([2b0878e](https://github.com/windmill-labs/windmill/commit/2b0878ec2ba591fad003abf9ad1d024f9264e442)) +* improve runnable permissions ([#5063](https://github.com/windmill-labs/windmill/issues/5063)) ([4a68ce9](https://github.com/windmill-labs/windmill/commit/4a68ce9ac30c544e2ef87ffeb5915312df885169)) + +## [1.447.0](https://github.com/windmill-labs/windmill/compare/v1.446.0...v1.447.0) (2025-01-15) + + +### Features + +* add oracle db support on ee ([#5062](https://github.com/windmill-labs/windmill/issues/5062)) ([77d8255](https://github.com/windmill-labs/windmill/commit/77d825540f7bb38f5a378557138214b368a0942f)) +* on behalf of ([#5058](https://github.com/windmill-labs/windmill/issues/5058)) ([04fbda2](https://github.com/windmill-labs/windmill/commit/04fbda28e829db50cd9b1289e997c1ec84c4a566)) + + +### Bug Fixes + +* remove bg-red in custom ui builder ([74385ef](https://github.com/windmill-labs/windmill/commit/74385ef70b0f93085d2a97de62528d95a45269cc)) +* update ms sql template ([#5059](https://github.com/windmill-labs/windmill/issues/5059)) ([8c2f2eb](https://github.com/windmill-labs/windmill/commit/8c2f2ebb1e0ff8e0c307e30eb6a49534662cc20c)) + +## [1.446.0](https://github.com/windmill-labs/windmill/compare/v1.445.1...v1.446.0) (2025-01-14) + + +### Features + +* support gpg signing commits with git sync ([#5053](https://github.com/windmill-labs/windmill/issues/5053)) ([010928b](https://github.com/windmill-labs/windmill/commit/010928b37f776839dc088d3b570bcfbb30a3b347)) + + +### Bug Fixes + +* **ui:** fix section height taking h-full ([c717a91](https://github.com/windmill-labs/windmill/commit/c717a915d6d48fa1ec697c24a4c85c04f4b70d84)) + ## [1.445.1](https://github.com/windmill-labs/windmill/compare/v1.445.0...v1.445.1) (2025-01-13) diff --git a/Dockerfile b/Dockerfile index 20a582474e..f6ce5525d8 100644 --- a/Dockerfile +++ b/Dockerfile @@ -177,7 +177,7 @@ COPY --from=builder /windmill/target/release/windmill ${APP}/windmill COPY --from=denoland/deno:2.1.2 --chmod=755 /usr/bin/deno /usr/bin/deno -COPY --from=oven/bun:1.1.40 /usr/local/bin/bun /usr/bin/bun +COPY --from=oven/bun:1.1.43 /usr/local/bin/bun /usr/bin/bun COPY --from=php:8.3.7-cli /usr/local/bin/php /usr/bin/php COPY --from=composer:2.7.6 /usr/bin/composer /usr/bin/composer diff --git a/backend/.sqlx/query-00a16dbe1729d530f136279471fa3d89ca7f1a88a48fcf0b1ac07144924c1707.json b/backend/.sqlx/query-00a16dbe1729d530f136279471fa3d89ca7f1a88a48fcf0b1ac07144924c1707.json deleted file mode 100644 index 9c581eae99..0000000000 --- a/backend/.sqlx/query-00a16dbe1729d530f136279471fa3d89ca7f1a88a48fcf0b1ac07144924c1707.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "db_name": "PostgreSQL", - "query": "SELECT value as \"value: sqlx::types::Json>\" FROM flow_version WHERE id = $1 LIMIT 1", - "describe": { - "columns": [ - { - "ordinal": 0, - "name": "value: sqlx::types::Json>", - "type_info": "Jsonb" - } - ], - "parameters": { - "Left": [ - "Int8" - ] - }, - "nullable": [ - false - ] - }, - "hash": "00a16dbe1729d530f136279471fa3d89ca7f1a88a48fcf0b1ac07144924c1707" -} diff --git a/backend/.sqlx/query-0722f461da9edb169c3c73423440eaa3e1b9f2ca3b7033bd7ed978a3b4ddf3fc.json b/backend/.sqlx/query-0722f461da9edb169c3c73423440eaa3e1b9f2ca3b7033bd7ed978a3b4ddf3fc.json deleted file mode 100644 index 86b1a7790a..0000000000 --- a/backend/.sqlx/query-0722f461da9edb169c3c73423440eaa3e1b9f2ca3b7033bd7ed978a3b4ddf3fc.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "db_name": "PostgreSQL", - "query": "SELECT raw_flow AS \"raw_flow!: Json>\"\n FROM job WHERE id = $1 AND workspace_id = $2 LIMIT 1", - "describe": { - "columns": [ - { - "ordinal": 0, - "name": "raw_flow!: Json>", - "type_info": "Jsonb" - } - ], - "parameters": { - "Left": [ - "Uuid", - "Text" - ] - }, - "nullable": [ - true - ] - }, - "hash": "0722f461da9edb169c3c73423440eaa3e1b9f2ca3b7033bd7ed978a3b4ddf3fc" -} diff --git a/backend/.sqlx/query-0a56301b5aaf57339cb2904c8f617366b74e891034d32f2867ccb019da869fc8.json b/backend/.sqlx/query-0a56301b5aaf57339cb2904c8f617366b74e891034d32f2867ccb019da869fc8.json new file mode 100644 index 0000000000..159789f439 --- /dev/null +++ b/backend/.sqlx/query-0a56301b5aaf57339cb2904c8f617366b74e891034d32f2867ccb019da869fc8.json @@ -0,0 +1,16 @@ +{ + "db_name": "PostgreSQL", + "query": "INSERT INTO flow\n (workspace_id, path, summary, description, archived, extra_perms, dependency_job, draft_only, tag, ws_error_handler_muted, dedicated_worker, timeout, visible_to_runner_only, on_behalf_of_email, concurrency_key, versions, value, schema, edited_by, edited_at) \n SELECT workspace_id, REGEXP_REPLACE(path,'u/' || $2 || '/(.*)','u/' || $1 || '/\\1'), summary, description, archived, extra_perms, dependency_job, draft_only, tag, ws_error_handler_muted, dedicated_worker, timeout, visible_to_runner_only, on_behalf_of_email, concurrency_key, versions, value, schema, edited_by, edited_at\n FROM flow \n WHERE path LIKE ('u/' || $2 || '/%') AND workspace_id = $3", + "describe": { + "columns": [], + "parameters": { + "Left": [ + "Text", + "Text", + "Text" + ] + }, + "nullable": [] + }, + "hash": "0a56301b5aaf57339cb2904c8f617366b74e891034d32f2867ccb019da869fc8" +} diff --git a/backend/.sqlx/query-0ad36c1598ff4ece0c325eaeb9a9177a87e1accd192402e21db5ae09c3498ab0.json b/backend/.sqlx/query-0ad36c1598ff4ece0c325eaeb9a9177a87e1accd192402e21db5ae09c3498ab0.json index 1d1592f052..2d06bac0c9 100644 --- a/backend/.sqlx/query-0ad36c1598ff4ece0c325eaeb9a9177a87e1accd192402e21db5ae09c3498ab0.json +++ b/backend/.sqlx/query-0ad36c1598ff4ece0c325eaeb9a9177a87e1accd192402e21db5ae09c3498ab0.json @@ -76,7 +76,8 @@ "bunnative", "rust", "ansible", - "csharp" + "csharp", + "oracledb" ] } } diff --git a/backend/.sqlx/query-0bf123446bebbc357c58a53a9319f4954dbf3225e91cbe999e5b264c1a747664.json b/backend/.sqlx/query-0bf123446bebbc357c58a53a9319f4954dbf3225e91cbe999e5b264c1a747664.json index 2ae7c8df90..a7c52db593 100644 --- a/backend/.sqlx/query-0bf123446bebbc357c58a53a9319f4954dbf3225e91cbe999e5b264c1a747664.json +++ b/backend/.sqlx/query-0bf123446bebbc357c58a53a9319f4954dbf3225e91cbe999e5b264c1a747664.json @@ -38,7 +38,8 @@ "bunnative", "rust", "ansible", - "csharp" + "csharp", + "oracledb" ] } } diff --git a/backend/.sqlx/query-0ca4365e7144584ef5723db7e133bb42525ff91a734caa87be8b802c6607e6be.json b/backend/.sqlx/query-0ca4365e7144584ef5723db7e133bb42525ff91a734caa87be8b802c6607e6be.json new file mode 100644 index 0000000000..b33796f955 --- /dev/null +++ b/backend/.sqlx/query-0ca4365e7144584ef5723db7e133bb42525ff91a734caa87be8b802c6607e6be.json @@ -0,0 +1,15 @@ +{ + "db_name": "PostgreSQL", + "query": "UPDATE kafka_trigger SET workspace_id = $1 WHERE workspace_id = $2", + "describe": { + "columns": [], + "parameters": { + "Left": [ + "Varchar", + "Text" + ] + }, + "nullable": [] + }, + "hash": "0ca4365e7144584ef5723db7e133bb42525ff91a734caa87be8b802c6607e6be" +} diff --git a/backend/.sqlx/query-10cd655d3d2916721b530c7faa7652fb8fae25383b58f6b9e8dc431b76947315.json b/backend/.sqlx/query-10cd655d3d2916721b530c7faa7652fb8fae25383b58f6b9e8dc431b76947315.json deleted file mode 100644 index 4d9c9a8e8c..0000000000 --- a/backend/.sqlx/query-10cd655d3d2916721b530c7faa7652fb8fae25383b58f6b9e8dc431b76947315.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "db_name": "PostgreSQL", - "query": "SELECT value AS \"value!: Json>\"\n FROM flow_version WHERE id = $1 LIMIT 1", - "describe": { - "columns": [ - { - "ordinal": 0, - "name": "value!: Json>", - "type_info": "Jsonb" - } - ], - "parameters": { - "Left": [ - "Int8" - ] - }, - "nullable": [ - false - ] - }, - "hash": "10cd655d3d2916721b530c7faa7652fb8fae25383b58f6b9e8dc431b76947315" -} diff --git a/backend/.sqlx/query-1289e7278d2a289bfaa53f00e0b6dceb195df0fb43a8ac03bc8b35939fc941dd.json b/backend/.sqlx/query-1289e7278d2a289bfaa53f00e0b6dceb195df0fb43a8ac03bc8b35939fc941dd.json deleted file mode 100644 index fc01ba95e3..0000000000 --- a/backend/.sqlx/query-1289e7278d2a289bfaa53f00e0b6dceb195df0fb43a8ac03bc8b35939fc941dd.json +++ /dev/null @@ -1,47 +0,0 @@ -{ - "db_name": "PostgreSQL", - "query": "SELECT * FROM workspace LIMIT $1 OFFSET $2", - "describe": { - "columns": [ - { - "ordinal": 0, - "name": "id", - "type_info": "Varchar" - }, - { - "ordinal": 1, - "name": "name", - "type_info": "Varchar" - }, - { - "ordinal": 2, - "name": "owner", - "type_info": "Varchar" - }, - { - "ordinal": 3, - "name": "deleted", - "type_info": "Bool" - }, - { - "ordinal": 4, - "name": "premium", - "type_info": "Bool" - } - ], - "parameters": { - "Left": [ - "Int8", - "Int8" - ] - }, - "nullable": [ - false, - false, - false, - false, - false - ] - }, - "hash": "1289e7278d2a289bfaa53f00e0b6dceb195df0fb43a8ac03bc8b35939fc941dd" -} diff --git a/backend/.sqlx/query-13358ffeb0917dd9dff9f8527a59dfee63bb704c3f712af179732dc281411917.json b/backend/.sqlx/query-13358ffeb0917dd9dff9f8527a59dfee63bb704c3f712af179732dc281411917.json deleted file mode 100644 index d49a1b9d44..0000000000 --- a/backend/.sqlx/query-13358ffeb0917dd9dff9f8527a59dfee63bb704c3f712af179732dc281411917.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "db_name": "PostgreSQL", - "query": "INSERT INTO flow \n (workspace_id, path, summary, description, archived, extra_perms, dependency_job, draft_only, tag, ws_error_handler_muted, dedicated_worker, timeout, visible_to_runner_only, concurrency_key, versions, value, schema, edited_by, edited_at) \n SELECT $1, path, summary, description, archived, extra_perms, dependency_job, draft_only, tag, ws_error_handler_muted, dedicated_worker, timeout, visible_to_runner_only, concurrency_key, versions, value, schema, edited_by, edited_at\n FROM flow WHERE workspace_id = $2", - "describe": { - "columns": [], - "parameters": { - "Left": [ - "Varchar", - "Text" - ] - }, - "nullable": [] - }, - "hash": "13358ffeb0917dd9dff9f8527a59dfee63bb704c3f712af179732dc281411917" -} diff --git a/backend/.sqlx/query-1c37f91192aa4f535c7fff80fa809260b906dc988f44a0db60952a2bf8b1cdaf.json b/backend/.sqlx/query-1c37f91192aa4f535c7fff80fa809260b906dc988f44a0db60952a2bf8b1cdaf.json new file mode 100644 index 0000000000..946783d745 --- /dev/null +++ b/backend/.sqlx/query-1c37f91192aa4f535c7fff80fa809260b906dc988f44a0db60952a2bf8b1cdaf.json @@ -0,0 +1,15 @@ +{ + "db_name": "PostgreSQL", + "query": "UPDATE kafka_trigger SET last_server_ping = NULL WHERE workspace_id = $1 AND path = $2 AND server_id IS NULL", + "describe": { + "columns": [], + "parameters": { + "Left": [ + "Text", + "Text" + ] + }, + "nullable": [] + }, + "hash": "1c37f91192aa4f535c7fff80fa809260b906dc988f44a0db60952a2bf8b1cdaf" +} diff --git a/backend/.sqlx/query-1c94d4f3b90a47b40263c254f85d14cc8b551e9ab0208e3a10ca717a4e85888b.json b/backend/.sqlx/query-1c94d4f3b90a47b40263c254f85d14cc8b551e9ab0208e3a10ca717a4e85888b.json new file mode 100644 index 0000000000..650bf4bb28 --- /dev/null +++ b/backend/.sqlx/query-1c94d4f3b90a47b40263c254f85d14cc8b551e9ab0208e3a10ca717a4e85888b.json @@ -0,0 +1,15 @@ +{ + "db_name": "PostgreSQL", + "query": "UPDATE http_trigger SET workspace_id = $1 WHERE workspace_id = $2", + "describe": { + "columns": [], + "parameters": { + "Left": [ + "Varchar", + "Text" + ] + }, + "nullable": [] + }, + "hash": "1c94d4f3b90a47b40263c254f85d14cc8b551e9ab0208e3a10ca717a4e85888b" +} diff --git a/backend/.sqlx/query-21cd7cbab7799baf5c381427d9b373c0bb144715eddfe54e3b01f6049d7966a2.json b/backend/.sqlx/query-21cd7cbab7799baf5c381427d9b373c0bb144715eddfe54e3b01f6049d7966a2.json deleted file mode 100644 index 2b438c849a..0000000000 --- a/backend/.sqlx/query-21cd7cbab7799baf5c381427d9b373c0bb144715eddfe54e3b01f6049d7966a2.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "db_name": "PostgreSQL", - "query": "SELECT workspace.id, workspace.name, usr.username\n FROM workspace, usr WHERE usr.workspace_id = workspace.id AND usr.email = $1 AND deleted = false", - "describe": { - "columns": [ - { - "ordinal": 0, - "name": "id", - "type_info": "Varchar" - }, - { - "ordinal": 1, - "name": "name", - "type_info": "Varchar" - }, - { - "ordinal": 2, - "name": "username", - "type_info": "Varchar" - } - ], - "parameters": { - "Left": [ - "Text" - ] - }, - "nullable": [ - false, - false, - false - ] - }, - "hash": "21cd7cbab7799baf5c381427d9b373c0bb144715eddfe54e3b01f6049d7966a2" -} diff --git a/backend/.sqlx/query-25155e44372aecbb38d042bfc2772ed0c01a0bb974488530cd713b834f537f4a.json b/backend/.sqlx/query-25155e44372aecbb38d042bfc2772ed0c01a0bb974488530cd713b834f537f4a.json deleted file mode 100644 index f459a72957..0000000000 --- a/backend/.sqlx/query-25155e44372aecbb38d042bfc2772ed0c01a0bb974488530cd713b834f537f4a.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "db_name": "PostgreSQL", - "query": "INSERT INTO flow\n (workspace_id, path, summary, description, archived, extra_perms, dependency_job, draft_only, tag, ws_error_handler_muted, dedicated_worker, timeout, visible_to_runner_only, concurrency_key, versions, value, schema, edited_by, edited_at) \n SELECT workspace_id, REGEXP_REPLACE(path,'u/' || $2 || '/(.*)','u/' || $1 || '/\\1'), summary, description, archived, extra_perms, dependency_job, draft_only, tag, ws_error_handler_muted, dedicated_worker, timeout, visible_to_runner_only, concurrency_key, versions, value, schema, edited_by, edited_at\n FROM flow \n WHERE path LIKE ('u/' || $2 || '/%') AND workspace_id = $3", - "describe": { - "columns": [], - "parameters": { - "Left": [ - "Text", - "Text", - "Text" - ] - }, - "nullable": [] - }, - "hash": "25155e44372aecbb38d042bfc2772ed0c01a0bb974488530cd713b834f537f4a" -} diff --git a/backend/.sqlx/query-2b2ee874dbd90beec26713d2effdc5d011d9f1091a13761642d064220add7b41.json b/backend/.sqlx/query-2b2ee874dbd90beec26713d2effdc5d011d9f1091a13761642d064220add7b41.json deleted file mode 100644 index cc91b1795a..0000000000 --- a/backend/.sqlx/query-2b2ee874dbd90beec26713d2effdc5d011d9f1091a13761642d064220add7b41.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "db_name": "PostgreSQL", - "query": "SELECT flow.versions[array_upper(flow.versions, 1)] AS \"version!: i64\"\n FROM flow WHERE path = $1 AND workspace_id = $2", - "describe": { - "columns": [ - { - "ordinal": 0, - "name": "version!: i64", - "type_info": "Int8" - } - ], - "parameters": { - "Left": [ - "Text", - "Text" - ] - }, - "nullable": [ - null - ] - }, - "hash": "2b2ee874dbd90beec26713d2effdc5d011d9f1091a13761642d064220add7b41" -} diff --git a/backend/.sqlx/query-2f440ab6083764b49e309c1f8dde0c5508da110f54bc5f465f1892afdf851af0.json b/backend/.sqlx/query-2f440ab6083764b49e309c1f8dde0c5508da110f54bc5f465f1892afdf851af0.json deleted file mode 100644 index 986ab59f4d..0000000000 --- a/backend/.sqlx/query-2f440ab6083764b49e309c1f8dde0c5508da110f54bc5f465f1892afdf851af0.json +++ /dev/null @@ -1,77 +0,0 @@ -{ - "db_name": "PostgreSQL", - "query": "SELECT id, created_at, trigger_kind as \"trigger_kind: _\", payload as \"payload: _\", trigger_extra as \"trigger_extra: _\"\n FROM capture\n WHERE workspace_id = $1\n AND path = $2 AND is_flow = $3\n AND ($4::trigger_kind IS NULL OR trigger_kind = $4)\n ORDER BY created_at DESC", - "describe": { - "columns": [ - { - "ordinal": 0, - "name": "id", - "type_info": "Int8" - }, - { - "ordinal": 1, - "name": "created_at", - "type_info": "Timestamptz" - }, - { - "ordinal": 2, - "name": "trigger_kind: _", - "type_info": { - "Custom": { - "name": "trigger_kind", - "kind": { - "Enum": [ - "webhook", - "http", - "websocket", - "kafka", - "email", - "nats" - ] - } - } - } - }, - { - "ordinal": 3, - "name": "payload: _", - "type_info": "Jsonb" - }, - { - "ordinal": 4, - "name": "trigger_extra: _", - "type_info": "Jsonb" - } - ], - "parameters": { - "Left": [ - "Text", - "Text", - "Bool", - { - "Custom": { - "name": "trigger_kind", - "kind": { - "Enum": [ - "webhook", - "http", - "websocket", - "kafka", - "email", - "nats" - ] - } - } - } - ] - }, - "nullable": [ - false, - false, - false, - false, - true - ] - }, - "hash": "2f440ab6083764b49e309c1f8dde0c5508da110f54bc5f465f1892afdf851af0" -} diff --git a/backend/.sqlx/query-337f31c2172194cd594042c561998a03f751b246c40daf056fced0fd91f6dd73.json b/backend/.sqlx/query-337f31c2172194cd594042c561998a03f751b246c40daf056fced0fd91f6dd73.json index 4e6dccc00a..075a898e29 100644 --- a/backend/.sqlx/query-337f31c2172194cd594042c561998a03f751b246c40daf056fced0fd91f6dd73.json +++ b/backend/.sqlx/query-337f31c2172194cd594042c561998a03f751b246c40daf056fced0fd91f6dd73.json @@ -62,7 +62,8 @@ "bunnative", "rust", "ansible", - "csharp" + "csharp", + "oracledb" ] } } diff --git a/backend/.sqlx/query-3fedf12ee5d44e8af9c3864cc70a8f607dccc015ce2d5150c56c68074cd0f84d.json b/backend/.sqlx/query-3fedf12ee5d44e8af9c3864cc70a8f607dccc015ce2d5150c56c68074cd0f84d.json deleted file mode 100644 index 1d91cd4031..0000000000 --- a/backend/.sqlx/query-3fedf12ee5d44e8af9c3864cc70a8f607dccc015ce2d5150c56c68074cd0f84d.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "db_name": "PostgreSQL", - "query": "SELECT tag, dedicated_worker, flow_version.value->>'preprocessor_module' IS NOT NULL as has_preprocessor \n FROM flow \n LEFT JOIN flow_version\n ON flow_version.id = flow.versions[array_upper(flow.versions, 1)]\n WHERE flow.path = $1 and flow.workspace_id = $2", - "describe": { - "columns": [ - { - "ordinal": 0, - "name": "tag", - "type_info": "Varchar" - }, - { - "ordinal": 1, - "name": "dedicated_worker", - "type_info": "Bool" - }, - { - "ordinal": 2, - "name": "has_preprocessor", - "type_info": "Bool" - } - ], - "parameters": { - "Left": [ - "Text", - "Text" - ] - }, - "nullable": [ - true, - true, - null - ] - }, - "hash": "3fedf12ee5d44e8af9c3864cc70a8f607dccc015ce2d5150c56c68074cd0f84d" -} diff --git a/backend/.sqlx/query-9e64c6b6db2155ad8e6e514b08da92d80caafd1a217813bcd354aa264810f690.json b/backend/.sqlx/query-4205d237c123d8d1c9ff2d61118027a80ccc8cd75e9703cb1d014b45f57c2be6.json similarity index 63% rename from backend/.sqlx/query-9e64c6b6db2155ad8e6e514b08da92d80caafd1a217813bcd354aa264810f690.json rename to backend/.sqlx/query-4205d237c123d8d1c9ff2d61118027a80ccc8cd75e9703cb1d014b45f57c2be6.json index 25296490e0..6d4744325c 100644 --- a/backend/.sqlx/query-9e64c6b6db2155ad8e6e514b08da92d80caafd1a217813bcd354aa264810f690.json +++ b/backend/.sqlx/query-4205d237c123d8d1c9ff2d61118027a80ccc8cd75e9703cb1d014b45f57c2be6.json @@ -1,6 +1,6 @@ { "db_name": "PostgreSQL", - "query": "INSERT INTO flow (workspace_id, path, summary, description, dependency_job, draft_only, tag, dedicated_worker, visible_to_runner_only, value, schema, edited_by, edited_at) \n VALUES ($1, $2, $3, $4, NULL, $5, $6, $7, $8, $9, $10::text::json, $11, now())", + "query": "INSERT INTO flow (workspace_id, path, summary, description, dependency_job, draft_only, tag, dedicated_worker, visible_to_runner_only, on_behalf_of_email, value, schema, edited_by, edited_at) \n VALUES ($1, $2, $3, $4, NULL, $5, $6, $7, $8, $9, $10, $11::text::json, $12, now())", "describe": { "columns": [], "parameters": { @@ -13,6 +13,7 @@ "Varchar", "Bool", "Bool", + "Text", "Jsonb", "Text", "Varchar" @@ -20,5 +21,5 @@ }, "nullable": [] }, - "hash": "9e64c6b6db2155ad8e6e514b08da92d80caafd1a217813bcd354aa264810f690" + "hash": "4205d237c123d8d1c9ff2d61118027a80ccc8cd75e9703cb1d014b45f57c2be6" } diff --git a/backend/.sqlx/query-4ab6d6584029aacdc1e39fcbf39767a49717246179c0652b10aac9078b4e2ae7.json b/backend/.sqlx/query-4ab6d6584029aacdc1e39fcbf39767a49717246179c0652b10aac9078b4e2ae7.json deleted file mode 100644 index 01c2a70c95..0000000000 --- a/backend/.sqlx/query-4ab6d6584029aacdc1e39fcbf39767a49717246179c0652b10aac9078b4e2ae7.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "db_name": "PostgreSQL", - "query": "\n SELECT usr.email, usage.executions\n FROM usr\n , LATERAL (\n SELECT COALESCE(SUM(duration_ms + 1000)/1000 , 0)::BIGINT executions\n FROM completed_job\n WHERE workspace_id = $1\n AND job_kind NOT IN ('flow', 'flowpreview')\n AND email = usr.email\n AND now() - '1 week'::interval < created_at \n ) usage\n WHERE workspace_id = $1\n ", - "describe": { - "columns": [ - { - "ordinal": 0, - "name": "email", - "type_info": "Varchar" - }, - { - "ordinal": 1, - "name": "executions", - "type_info": "Int8" - } - ], - "parameters": { - "Left": [ - "Text" - ] - }, - "nullable": [ - false, - null - ] - }, - "hash": "4ab6d6584029aacdc1e39fcbf39767a49717246179c0652b10aac9078b4e2ae7" -} diff --git a/backend/.sqlx/query-51f37d683d5a48b96f6224111639c364ba9c41572eb6799f7c822c66d00d2500.json b/backend/.sqlx/query-51f37d683d5a48b96f6224111639c364ba9c41572eb6799f7c822c66d00d2500.json new file mode 100644 index 0000000000..36198820c2 --- /dev/null +++ b/backend/.sqlx/query-51f37d683d5a48b96f6224111639c364ba9c41572eb6799f7c822c66d00d2500.json @@ -0,0 +1,15 @@ +{ + "db_name": "PostgreSQL", + "query": "UPDATE websocket_trigger SET last_server_ping = NULL WHERE workspace_id = $1 AND path = $2 AND server_id IS NULL", + "describe": { + "columns": [], + "parameters": { + "Left": [ + "Text", + "Text" + ] + }, + "nullable": [] + }, + "hash": "51f37d683d5a48b96f6224111639c364ba9c41572eb6799f7c822c66d00d2500" +} diff --git a/backend/.sqlx/query-544a00afb5c72d2aa24ab4ccfe68d1e383aeda9a5a71183b7fbaa41deca4e333.json b/backend/.sqlx/query-544a00afb5c72d2aa24ab4ccfe68d1e383aeda9a5a71183b7fbaa41deca4e333.json new file mode 100644 index 0000000000..bf1418bb0d --- /dev/null +++ b/backend/.sqlx/query-544a00afb5c72d2aa24ab4ccfe68d1e383aeda9a5a71183b7fbaa41deca4e333.json @@ -0,0 +1,16 @@ +{ + "db_name": "PostgreSQL", + "query": "INSERT INTO flow \n (workspace_id, path, summary, description, archived, extra_perms, dependency_job, draft_only, tag, ws_error_handler_muted, dedicated_worker, timeout, visible_to_runner_only, on_behalf_of_email, concurrency_key, versions, value, schema, edited_by, edited_at) \n SELECT workspace_id, $1, summary, description, archived, extra_perms, dependency_job, draft_only, tag, ws_error_handler_muted, dedicated_worker, timeout, visible_to_runner_only, on_behalf_of_email, concurrency_key, versions, value, schema, edited_by, edited_at\n FROM flow\n WHERE path = $2 AND workspace_id = $3", + "describe": { + "columns": [], + "parameters": { + "Left": [ + "Varchar", + "Text", + "Text" + ] + }, + "nullable": [] + }, + "hash": "544a00afb5c72d2aa24ab4ccfe68d1e383aeda9a5a71183b7fbaa41deca4e333" +} diff --git a/backend/.sqlx/query-fc7ac95d8d5f4532a2b0e50f84c1e273d25543401639a68f868e1e4fd8b0640a.json b/backend/.sqlx/query-61c29d684e8e683e839a6d7210b3b9b96854e5bfd752e45922c358c42ebea0c4.json similarity index 79% rename from backend/.sqlx/query-fc7ac95d8d5f4532a2b0e50f84c1e273d25543401639a68f868e1e4fd8b0640a.json rename to backend/.sqlx/query-61c29d684e8e683e839a6d7210b3b9b96854e5bfd752e45922c358c42ebea0c4.json index 8f459f96fd..6354dae16b 100644 --- a/backend/.sqlx/query-fc7ac95d8d5f4532a2b0e50f84c1e273d25543401639a68f868e1e4fd8b0640a.json +++ b/backend/.sqlx/query-61c29d684e8e683e839a6d7210b3b9b96854e5bfd752e45922c358c42ebea0c4.json @@ -1,6 +1,6 @@ { "db_name": "PostgreSQL", - "query": "select hash, tag, concurrency_key, concurrent_limit, concurrency_time_window_s, cache_ttl, language as \"language: ScriptLang\", dedicated_worker, priority, delete_after_use, timeout, has_preprocessor from script where path = $1 AND workspace_id = $2 AND\n created_at = (SELECT max(created_at) FROM script WHERE path = $1 AND workspace_id = $2 AND\n deleted = false AND lock IS not NULL AND lock_error_logs IS NULL)", + "query": "select hash, tag, concurrency_key, concurrent_limit, concurrency_time_window_s, cache_ttl, language as \"language: ScriptLang\", dedicated_worker, priority, timeout, on_behalf_of_email, created_by FROM script where path = $1 AND workspace_id = $2 AND\n created_at = (SELECT max(created_at) FROM script WHERE path = $1 AND workspace_id = $2 AND\n deleted = false AND archived = false)", "describe": { "columns": [ { @@ -58,7 +58,8 @@ "bunnative", "rust", "ansible", - "csharp" + "csharp", + "oracledb" ] } } @@ -76,18 +77,18 @@ }, { "ordinal": 9, - "name": "delete_after_use", - "type_info": "Bool" - }, - { - "ordinal": 10, "name": "timeout", "type_info": "Int4" }, + { + "ordinal": 10, + "name": "on_behalf_of_email", + "type_info": "Text" + }, { "ordinal": 11, - "name": "has_preprocessor", - "type_info": "Bool" + "name": "created_by", + "type_info": "Varchar" } ], "parameters": { @@ -108,8 +109,8 @@ true, true, true, - true + false ] }, - "hash": "fc7ac95d8d5f4532a2b0e50f84c1e273d25543401639a68f868e1e4fd8b0640a" + "hash": "61c29d684e8e683e839a6d7210b3b9b96854e5bfd752e45922c358c42ebea0c4" } diff --git a/backend/.sqlx/query-ef299490c4674c4c76e18d84620a74407b78378d66d8a089407998074059e79b.json b/backend/.sqlx/query-62475252dcf54f32433b97ae011daf5d4205d160d2aedf463c7dfe944e93257a.json similarity index 87% rename from backend/.sqlx/query-ef299490c4674c4c76e18d84620a74407b78378d66d8a089407998074059e79b.json rename to backend/.sqlx/query-62475252dcf54f32433b97ae011daf5d4205d160d2aedf463c7dfe944e93257a.json index 2a89b1e01e..5c32a3af00 100644 --- a/backend/.sqlx/query-ef299490c4674c4c76e18d84620a74407b78378d66d8a089407998074059e79b.json +++ b/backend/.sqlx/query-62475252dcf54f32433b97ae011daf5d4205d160d2aedf463c7dfe944e93257a.json @@ -1,6 +1,6 @@ { "db_name": "PostgreSQL", - "query": "INSERT INTO capture_config\n (workspace_id, path, is_flow, trigger_kind, trigger_config, owner, email)\n VALUES ($1, $2, $3, $4, $5, $6, $7)\n ON CONFLICT (workspace_id, path, is_flow, trigger_kind)\n DO UPDATE SET trigger_config = $5, owner = $6, email = $7, server_id = NULL, last_server_ping = NULL, error = NULL", + "query": "INSERT INTO capture_config\n (workspace_id, path, is_flow, trigger_kind, trigger_config, owner, email)\n VALUES ($1, $2, $3, $4, $5, $6, $7)\n ON CONFLICT (workspace_id, path, is_flow, trigger_kind)\n DO UPDATE SET trigger_config = $5, owner = $6, email = $7, server_id = NULL, error = NULL", "describe": { "columns": [], "parameters": { @@ -30,5 +30,5 @@ }, "nullable": [] }, - "hash": "ef299490c4674c4c76e18d84620a74407b78378d66d8a089407998074059e79b" + "hash": "62475252dcf54f32433b97ae011daf5d4205d160d2aedf463c7dfe944e93257a" } diff --git a/backend/.sqlx/query-661f472ff3860983322162420457f5033b9c9afc344d9c3e385ba20a3ad2197a.json b/backend/.sqlx/query-661f472ff3860983322162420457f5033b9c9afc344d9c3e385ba20a3ad2197a.json index 75b8108281..1fa370e682 100644 --- a/backend/.sqlx/query-661f472ff3860983322162420457f5033b9c9afc344d9c3e385ba20a3ad2197a.json +++ b/backend/.sqlx/query-661f472ff3860983322162420457f5033b9c9afc344d9c3e385ba20a3ad2197a.json @@ -5,7 +5,7 @@ "columns": [ { "ordinal": 0, - "name": "?column?", + "name": "bool", "type_info": "Bool" } ], diff --git a/backend/.sqlx/query-6d36da815795d5cac2e76b4d34a7f1f9f836bd5b6866d3db26b25428d39c0b23.json b/backend/.sqlx/query-6d36da815795d5cac2e76b4d34a7f1f9f836bd5b6866d3db26b25428d39c0b23.json new file mode 100644 index 0000000000..009c8a0e26 --- /dev/null +++ b/backend/.sqlx/query-6d36da815795d5cac2e76b4d34a7f1f9f836bd5b6866d3db26b25428d39c0b23.json @@ -0,0 +1,29 @@ +{ + "db_name": "PostgreSQL", + "query": "SELECT on_behalf_of_email, edited_by FROM flow WHERE path = $1 AND workspace_id = $2", + "describe": { + "columns": [ + { + "ordinal": 0, + "name": "on_behalf_of_email", + "type_info": "Text" + }, + { + "ordinal": 1, + "name": "edited_by", + "type_info": "Varchar" + } + ], + "parameters": { + "Left": [ + "Text", + "Text" + ] + }, + "nullable": [ + true, + false + ] + }, + "hash": "6d36da815795d5cac2e76b4d34a7f1f9f836bd5b6866d3db26b25428d39c0b23" +} diff --git a/backend/.sqlx/query-6f4817fad2739a11d89b6704edf62c3c267ca336a8b6bec5b29d4409030ed561.json b/backend/.sqlx/query-6f4817fad2739a11d89b6704edf62c3c267ca336a8b6bec5b29d4409030ed561.json index 7e00cac319..3e2098f170 100644 --- a/backend/.sqlx/query-6f4817fad2739a11d89b6704edf62c3c267ca336a8b6bec5b29d4409030ed561.json +++ b/backend/.sqlx/query-6f4817fad2739a11d89b6704edf62c3c267ca336a8b6bec5b29d4409030ed561.json @@ -56,7 +56,8 @@ "bunnative", "rust", "ansible", - "csharp" + "csharp", + "oracledb" ] } } diff --git a/backend/.sqlx/query-71fe2f596242c1726af032e8b0aa4894458ac0a11c647a321232eccb6d1d25e7.json b/backend/.sqlx/query-71fe2f596242c1726af032e8b0aa4894458ac0a11c647a321232eccb6d1d25e7.json new file mode 100644 index 0000000000..095e239144 --- /dev/null +++ b/backend/.sqlx/query-71fe2f596242c1726af032e8b0aa4894458ac0a11c647a321232eccb6d1d25e7.json @@ -0,0 +1,14 @@ +{ + "db_name": "PostgreSQL", + "query": "DELETE FROM websocket_trigger WHERE workspace_id = $1", + "describe": { + "columns": [], + "parameters": { + "Left": [ + "Text" + ] + }, + "nullable": [] + }, + "hash": "71fe2f596242c1726af032e8b0aa4894458ac0a11c647a321232eccb6d1d25e7" +} diff --git a/backend/.sqlx/query-64ce3eabed6de7a4f99884640c21218ac19ab2a4bc5f8b42deb2476f85d0deac.json b/backend/.sqlx/query-75451b6d48e4c26812ae64981d0d968b8fb0bf4374a2fccc167fa879bad7078f.json similarity index 82% rename from backend/.sqlx/query-64ce3eabed6de7a4f99884640c21218ac19ab2a4bc5f8b42deb2476f85d0deac.json rename to backend/.sqlx/query-75451b6d48e4c26812ae64981d0d968b8fb0bf4374a2fccc167fa879bad7078f.json index b35a48638a..287284b86b 100644 --- a/backend/.sqlx/query-64ce3eabed6de7a4f99884640c21218ac19ab2a4bc5f8b42deb2476f85d0deac.json +++ b/backend/.sqlx/query-75451b6d48e4c26812ae64981d0d968b8fb0bf4374a2fccc167fa879bad7078f.json @@ -1,6 +1,6 @@ { "db_name": "PostgreSQL", - "query": "select path, tag, concurrency_key, concurrent_limit, concurrency_time_window_s, cache_ttl, language as \"language: ScriptLang\", dedicated_worker, priority, delete_after_use, timeout, has_preprocessor from script where hash = $1 AND workspace_id = $2", + "query": "select path, tag, concurrency_key, concurrent_limit, concurrency_time_window_s, cache_ttl, language as \"language: ScriptLang\", dedicated_worker, priority, delete_after_use, timeout, has_preprocessor, on_behalf_of_email, created_by from script where hash = $1 AND workspace_id = $2", "describe": { "columns": [ { @@ -58,7 +58,8 @@ "bunnative", "rust", "ansible", - "csharp" + "csharp", + "oracledb" ] } } @@ -88,6 +89,16 @@ "ordinal": 11, "name": "has_preprocessor", "type_info": "Bool" + }, + { + "ordinal": 12, + "name": "on_behalf_of_email", + "type_info": "Text" + }, + { + "ordinal": 13, + "name": "created_by", + "type_info": "Varchar" } ], "parameters": { @@ -108,8 +119,10 @@ true, true, true, - true + true, + true, + false ] }, - "hash": "64ce3eabed6de7a4f99884640c21218ac19ab2a4bc5f8b42deb2476f85d0deac" + "hash": "75451b6d48e4c26812ae64981d0d968b8fb0bf4374a2fccc167fa879bad7078f" } diff --git a/backend/.sqlx/query-804fc11e35f4afc0db194b6fe2594f91df7e588d4d2431bc85f4d8734920c8bf.json b/backend/.sqlx/query-804fc11e35f4afc0db194b6fe2594f91df7e588d4d2431bc85f4d8734920c8bf.json index 7cbd85f23b..2179199223 100644 --- a/backend/.sqlx/query-804fc11e35f4afc0db194b6fe2594f91df7e588d4d2431bc85f4d8734920c8bf.json +++ b/backend/.sqlx/query-804fc11e35f4afc0db194b6fe2594f91df7e588d4d2431bc85f4d8734920c8bf.json @@ -31,7 +31,8 @@ "bunnative", "rust", "ansible", - "csharp" + "csharp", + "oracledb" ] } } diff --git a/backend/.sqlx/query-81a9d976ac5c1a78c83b95a1164995e78878a4a4ff6894a04e6626cdd98c24e4.json b/backend/.sqlx/query-81a9d976ac5c1a78c83b95a1164995e78878a4a4ff6894a04e6626cdd98c24e4.json new file mode 100644 index 0000000000..4295debb89 --- /dev/null +++ b/backend/.sqlx/query-81a9d976ac5c1a78c83b95a1164995e78878a4a4ff6894a04e6626cdd98c24e4.json @@ -0,0 +1,15 @@ +{ + "db_name": "PostgreSQL", + "query": "INSERT INTO flow \n (workspace_id, path, summary, description, archived, extra_perms, dependency_job, draft_only, tag, ws_error_handler_muted, dedicated_worker, timeout, visible_to_runner_only, on_behalf_of_email, concurrency_key, versions, value, schema, edited_by, edited_at) \n SELECT $1, path, summary, description, archived, extra_perms, dependency_job, draft_only, tag, ws_error_handler_muted, dedicated_worker, timeout, visible_to_runner_only, on_behalf_of_email, concurrency_key, versions, value, schema, edited_by, edited_at\n FROM flow WHERE workspace_id = $2", + "describe": { + "columns": [], + "parameters": { + "Left": [ + "Varchar", + "Text" + ] + }, + "nullable": [] + }, + "hash": "81a9d976ac5c1a78c83b95a1164995e78878a4a4ff6894a04e6626cdd98c24e4" +} diff --git a/backend/.sqlx/query-3c9fc4d8579767f3ce7c3633fca770e6341624e98117d21b9f01e68b4e0ce033.json b/backend/.sqlx/query-829a7108c164fc48387d5103b773eaba0a4dbdc3cbf2fd5bf0ac10c86290b3bc.json similarity index 52% rename from backend/.sqlx/query-3c9fc4d8579767f3ce7c3633fca770e6341624e98117d21b9f01e68b4e0ce033.json rename to backend/.sqlx/query-829a7108c164fc48387d5103b773eaba0a4dbdc3cbf2fd5bf0ac10c86290b3bc.json index 7b0d8aa4b0..fa2d26d646 100644 --- a/backend/.sqlx/query-3c9fc4d8579767f3ce7c3633fca770e6341624e98117d21b9f01e68b4e0ce033.json +++ b/backend/.sqlx/query-829a7108c164fc48387d5103b773eaba0a4dbdc3cbf2fd5bf0ac10c86290b3bc.json @@ -1,6 +1,6 @@ { "db_name": "PostgreSQL", - "query": "DELETE FROM capture_config WHERE workspace_id = $1", + "query": "DELETE FROM http_trigger WHERE workspace_id = $1", "describe": { "columns": [], "parameters": { @@ -10,5 +10,5 @@ }, "nullable": [] }, - "hash": "3c9fc4d8579767f3ce7c3633fca770e6341624e98117d21b9f01e68b4e0ce033" + "hash": "829a7108c164fc48387d5103b773eaba0a4dbdc3cbf2fd5bf0ac10c86290b3bc" } diff --git a/backend/.sqlx/query-85085cdc08c262c4750566a0a0b9754017b890ea8c1161a5892b6c29e663ee0e.json b/backend/.sqlx/query-85085cdc08c262c4750566a0a0b9754017b890ea8c1161a5892b6c29e663ee0e.json deleted file mode 100644 index 7c86fa85a7..0000000000 --- a/backend/.sqlx/query-85085cdc08c262c4750566a0a0b9754017b890ea8c1161a5892b6c29e663ee0e.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "db_name": "PostgreSQL", - "query": "SELECT value AS \"value!: Json>\"\n FROM flow_version_lite WHERE id = $1 LIMIT 1", - "describe": { - "columns": [ - { - "ordinal": 0, - "name": "value!: Json>", - "type_info": "Jsonb" - } - ], - "parameters": { - "Left": [ - "Int8" - ] - }, - "nullable": [ - true - ] - }, - "hash": "85085cdc08c262c4750566a0a0b9754017b890ea8c1161a5892b6c29e663ee0e" -} diff --git a/backend/.sqlx/query-8929873f308f1d131b2afda17267f82bac6e34a35b94765463c12e282fba6daa.json b/backend/.sqlx/query-8929873f308f1d131b2afda17267f82bac6e34a35b94765463c12e282fba6daa.json new file mode 100644 index 0000000000..982632ee3d --- /dev/null +++ b/backend/.sqlx/query-8929873f308f1d131b2afda17267f82bac6e34a35b94765463c12e282fba6daa.json @@ -0,0 +1,20 @@ +{ + "db_name": "PostgreSQL", + "query": "SELECT CURRENT_USER = 'windmill_user' as \"is_windmill_user!\"", + "describe": { + "columns": [ + { + "ordinal": 0, + "name": "is_windmill_user!", + "type_info": "Bool" + } + ], + "parameters": { + "Left": [] + }, + "nullable": [ + null + ] + }, + "hash": "8929873f308f1d131b2afda17267f82bac6e34a35b94765463c12e282fba6daa" +} diff --git a/backend/.sqlx/query-9d25fbd21a63e6e9ccfdbf0460c8b3ca6d7fa05600067f379659b59b6f2bf418.json b/backend/.sqlx/query-89de3ff8ab32e545efcbcda05f994cb1a32c4991cbd25046282d34272587d2de.json similarity index 68% rename from backend/.sqlx/query-9d25fbd21a63e6e9ccfdbf0460c8b3ca6d7fa05600067f379659b59b6f2bf418.json rename to backend/.sqlx/query-89de3ff8ab32e545efcbcda05f994cb1a32c4991cbd25046282d34272587d2de.json index b955a01fb6..d90a9646de 100644 --- a/backend/.sqlx/query-9d25fbd21a63e6e9ccfdbf0460c8b3ca6d7fa05600067f379659b59b6f2bf418.json +++ b/backend/.sqlx/query-89de3ff8ab32e545efcbcda05f994cb1a32c4991cbd25046282d34272587d2de.json @@ -1,6 +1,6 @@ { "db_name": "PostgreSQL", - "query": "select hash, tag, concurrency_key, concurrent_limit, concurrency_time_window_s, cache_ttl, language as \"language: ScriptLang\", dedicated_worker, priority, timeout FROM script where path = $1 AND workspace_id = $2 AND\n created_at = (SELECT max(created_at) FROM script WHERE path = $1 AND workspace_id = $2 AND\n deleted = false AND archived = false)", + "query": "select hash, tag, concurrency_key, concurrent_limit, concurrency_time_window_s, cache_ttl, language as \"language: ScriptLang\", dedicated_worker, priority, delete_after_use, timeout, has_preprocessor, on_behalf_of_email, created_by from script where path = $1 AND workspace_id = $2 AND\n created_at = (SELECT max(created_at) FROM script WHERE path = $1 AND workspace_id = $2 AND\n deleted = false AND lock IS not NULL AND lock_error_logs IS NULL)", "describe": { "columns": [ { @@ -58,7 +58,8 @@ "bunnative", "rust", "ansible", - "csharp" + "csharp", + "oracledb" ] } } @@ -76,8 +77,28 @@ }, { "ordinal": 9, + "name": "delete_after_use", + "type_info": "Bool" + }, + { + "ordinal": 10, "name": "timeout", "type_info": "Int4" + }, + { + "ordinal": 11, + "name": "has_preprocessor", + "type_info": "Bool" + }, + { + "ordinal": 12, + "name": "on_behalf_of_email", + "type_info": "Text" + }, + { + "ordinal": 13, + "name": "created_by", + "type_info": "Varchar" } ], "parameters": { @@ -96,8 +117,12 @@ false, true, true, - true + true, + true, + true, + true, + false ] }, - "hash": "9d25fbd21a63e6e9ccfdbf0460c8b3ca6d7fa05600067f379659b59b6f2bf418" + "hash": "89de3ff8ab32e545efcbcda05f994cb1a32c4991cbd25046282d34272587d2de" } diff --git a/backend/.sqlx/query-8c15ea27be82665fe74a4be3182a5049fa937e30b4115caf0ba8d61d34f2089a.json b/backend/.sqlx/query-8c15ea27be82665fe74a4be3182a5049fa937e30b4115caf0ba8d61d34f2089a.json deleted file mode 100644 index 9b20861537..0000000000 --- a/backend/.sqlx/query-8c15ea27be82665fe74a4be3182a5049fa937e30b4115caf0ba8d61d34f2089a.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "db_name": "PostgreSQL", - "query": "UPDATE queue SET running = false, started_at = null\n WHERE last_ping < now() - ($1 || ' seconds')::interval\n AND running = true AND job_kind NOT IN ('flow', 'flowpreview', 'singlescriptflow') AND same_worker = false RETURNING id, workspace_id, last_ping", - "describe": { - "columns": [ - { - "ordinal": 0, - "name": "id", - "type_info": "Uuid" - }, - { - "ordinal": 1, - "name": "workspace_id", - "type_info": "Varchar" - }, - { - "ordinal": 2, - "name": "last_ping", - "type_info": "Timestamptz" - } - ], - "parameters": { - "Left": [ - "Text" - ] - }, - "nullable": [ - false, - false, - true - ] - }, - "hash": "8c15ea27be82665fe74a4be3182a5049fa937e30b4115caf0ba8d61d34f2089a" -} diff --git a/backend/.sqlx/query-8fb2581a439c26391e66ae7fac32c6cd2932f28ab6490ace027ed3a790b2a0f7.json b/backend/.sqlx/query-8fb2581a439c26391e66ae7fac32c6cd2932f28ab6490ace027ed3a790b2a0f7.json new file mode 100644 index 0000000000..0ae81ab6dd --- /dev/null +++ b/backend/.sqlx/query-8fb2581a439c26391e66ae7fac32c6cd2932f28ab6490ace027ed3a790b2a0f7.json @@ -0,0 +1,28 @@ +{ + "db_name": "PostgreSQL", + "query": "SELECT edited_by, on_behalf_of_email FROM flow WHERE path = $1", + "describe": { + "columns": [ + { + "ordinal": 0, + "name": "edited_by", + "type_info": "Varchar" + }, + { + "ordinal": 1, + "name": "on_behalf_of_email", + "type_info": "Text" + } + ], + "parameters": { + "Left": [ + "Text" + ] + }, + "nullable": [ + false, + true + ] + }, + "hash": "8fb2581a439c26391e66ae7fac32c6cd2932f28ab6490ace027ed3a790b2a0f7" +} diff --git a/backend/.sqlx/query-93d64930c74ccb1abdc9bda8287540a354f8eec49913aaf07fc1e737e7c93330.json b/backend/.sqlx/query-93d64930c74ccb1abdc9bda8287540a354f8eec49913aaf07fc1e737e7c93330.json new file mode 100644 index 0000000000..5b30dd2cbd --- /dev/null +++ b/backend/.sqlx/query-93d64930c74ccb1abdc9bda8287540a354f8eec49913aaf07fc1e737e7c93330.json @@ -0,0 +1,16 @@ +{ + "db_name": "PostgreSQL", + "query": "UPDATE capture_config SET last_server_ping = NULL WHERE workspace_id = $1 AND path = $2 AND is_flow = $3 AND trigger_kind = 'nats' AND server_id IS NULL", + "describe": { + "columns": [], + "parameters": { + "Left": [ + "Text", + "Text", + "Bool" + ] + }, + "nullable": [] + }, + "hash": "93d64930c74ccb1abdc9bda8287540a354f8eec49913aaf07fc1e737e7c93330" +} diff --git a/backend/.sqlx/query-94a38b83d59f8c010bd96852bf57163476791448201bdd22a9e463a4116b9582.json b/backend/.sqlx/query-94a38b83d59f8c010bd96852bf57163476791448201bdd22a9e463a4116b9582.json deleted file mode 100644 index f3667e8f1a..0000000000 --- a/backend/.sqlx/query-94a38b83d59f8c010bd96852bf57163476791448201bdd22a9e463a4116b9582.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "db_name": "PostgreSQL", - "query": "SELECT coalesce(flow_version_lite.value, flow_version.value) as \"value!: sqlx::types::Json>\" FROM flow \n LEFT JOIN flow_version\n ON flow_version.id = flow.versions[array_upper(flow.versions, 1)]\n LEFT JOIN flow_version_lite \n ON flow_version_lite.id = flow_version.id\n WHERE flow.path = $1 AND flow.workspace_id = $2 LIMIT 1", - "describe": { - "columns": [ - { - "ordinal": 0, - "name": "value!: sqlx::types::Json>", - "type_info": "Jsonb" - } - ], - "parameters": { - "Left": [ - "Text", - "Text" - ] - }, - "nullable": [ - null - ] - }, - "hash": "94a38b83d59f8c010bd96852bf57163476791448201bdd22a9e463a4116b9582" -} diff --git a/backend/.sqlx/query-98880172e7d163e0db06eea2b9008c5082a3e34d8d294b341f01f549be6c7333.json b/backend/.sqlx/query-98880172e7d163e0db06eea2b9008c5082a3e34d8d294b341f01f549be6c7333.json new file mode 100644 index 0000000000..90102ef566 --- /dev/null +++ b/backend/.sqlx/query-98880172e7d163e0db06eea2b9008c5082a3e34d8d294b341f01f549be6c7333.json @@ -0,0 +1,15 @@ +{ + "db_name": "PostgreSQL", + "query": "UPDATE websocket_trigger SET workspace_id = $1 WHERE workspace_id = $2", + "describe": { + "columns": [], + "parameters": { + "Left": [ + "Varchar", + "Text" + ] + }, + "nullable": [] + }, + "hash": "98880172e7d163e0db06eea2b9008c5082a3e34d8d294b341f01f549be6c7333" +} diff --git a/backend/.sqlx/query-9c1a1d0feb79f750c7143fabb0cfa7dab8dd683cd294c27d0549bd8d78ab60a0.json b/backend/.sqlx/query-9c1a1d0feb79f750c7143fabb0cfa7dab8dd683cd294c27d0549bd8d78ab60a0.json deleted file mode 100644 index fcce977ba4..0000000000 --- a/backend/.sqlx/query-9c1a1d0feb79f750c7143fabb0cfa7dab8dd683cd294c27d0549bd8d78ab60a0.json +++ /dev/null @@ -1,71 +0,0 @@ -{ - "db_name": "PostgreSQL", - "query": "SELECT lock AS \"lock: String\", content AS \"code!: String\",\n language AS \"language: Option\", envs AS \"envs: Vec\", codebase AS \"codebase: String\" FROM script WHERE hash = $1 LIMIT 1", - "describe": { - "columns": [ - { - "ordinal": 0, - "name": "lock: String", - "type_info": "Text" - }, - { - "ordinal": 1, - "name": "code!: String", - "type_info": "Text" - }, - { - "ordinal": 2, - "name": "language: Option", - "type_info": { - "Custom": { - "name": "script_lang", - "kind": { - "Enum": [ - "python3", - "deno", - "go", - "bash", - "postgresql", - "nativets", - "bun", - "mysql", - "bigquery", - "snowflake", - "graphql", - "powershell", - "mssql", - "php", - "bunnative", - "rust", - "ansible" - ] - } - } - } - }, - { - "ordinal": 3, - "name": "envs: Vec", - "type_info": "VarcharArray" - }, - { - "ordinal": 4, - "name": "codebase: String", - "type_info": "Varchar" - } - ], - "parameters": { - "Left": [ - "Int8" - ] - }, - "nullable": [ - true, - false, - false, - true, - true - ] - }, - "hash": "9c1a1d0feb79f750c7143fabb0cfa7dab8dd683cd294c27d0549bd8d78ab60a0" -} diff --git a/backend/.sqlx/query-9d3556319411a27a875bf6cf0e5eda837cc63e4d8be912c0b5bfeea4a0c8db2e.json b/backend/.sqlx/query-9d3556319411a27a875bf6cf0e5eda837cc63e4d8be912c0b5bfeea4a0c8db2e.json index 981da4d667..2abc565def 100644 --- a/backend/.sqlx/query-9d3556319411a27a875bf6cf0e5eda837cc63e4d8be912c0b5bfeea4a0c8db2e.json +++ b/backend/.sqlx/query-9d3556319411a27a875bf6cf0e5eda837cc63e4d8be912c0b5bfeea4a0c8db2e.json @@ -56,7 +56,8 @@ "bunnative", "rust", "ansible", - "csharp" + "csharp", + "oracledb" ] } } diff --git a/backend/.sqlx/query-9ee2f67042c1bed1e7d13eb7d07e78991e5d7cf01fc7993531dbedf33dac2e0b.json b/backend/.sqlx/query-9ee2f67042c1bed1e7d13eb7d07e78991e5d7cf01fc7993531dbedf33dac2e0b.json deleted file mode 100644 index 8f88e98b80..0000000000 --- a/backend/.sqlx/query-9ee2f67042c1bed1e7d13eb7d07e78991e5d7cf01fc7993531dbedf33dac2e0b.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "db_name": "PostgreSQL", - "query": "SELECT lock AS \"lock: String\", code AS \"code: String\", flow AS \"flow: Json>\" FROM flow_node WHERE id = $1 LIMIT 1", - "describe": { - "columns": [ - { - "ordinal": 0, - "name": "lock: String", - "type_info": "Text" - }, - { - "ordinal": 1, - "name": "code: String", - "type_info": "Text" - }, - { - "ordinal": 2, - "name": "flow: Json>", - "type_info": "Jsonb" - } - ], - "parameters": { - "Left": [ - "Int8" - ] - }, - "nullable": [ - true, - true, - true - ] - }, - "hash": "9ee2f67042c1bed1e7d13eb7d07e78991e5d7cf01fc7993531dbedf33dac2e0b" -} diff --git a/backend/.sqlx/query-98081ee9a4a4a52ae70d74d26e8608a010722d7ea9dc343ae8f03e38978ffaba.json b/backend/.sqlx/query-a0833b9899833166891c5de926f78632fae1123e736d728bf92cb2de004b6826.json similarity index 56% rename from backend/.sqlx/query-98081ee9a4a4a52ae70d74d26e8608a010722d7ea9dc343ae8f03e38978ffaba.json rename to backend/.sqlx/query-a0833b9899833166891c5de926f78632fae1123e736d728bf92cb2de004b6826.json index 05cbaffc69..a837158a37 100644 --- a/backend/.sqlx/query-98081ee9a4a4a52ae70d74d26e8608a010722d7ea9dc343ae8f03e38978ffaba.json +++ b/backend/.sqlx/query-a0833b9899833166891c5de926f78632fae1123e736d728bf92cb2de004b6826.json @@ -1,6 +1,6 @@ { "db_name": "PostgreSQL", - "query": "SELECT tag, dedicated_worker, flow_version.value->>'early_return' as early_return, flow_version.value->>'preprocessor_module' IS NOT NULL as has_preprocessor\n FROM flow \n LEFT JOIN flow_version\n ON flow_version.id = flow.versions[array_upper(flow.versions, 1)]\n WHERE flow.path = $1 and flow.workspace_id = $2", + "query": "SELECT tag, dedicated_worker, flow_version.value->>'early_return' as early_return, flow_version.value->>'preprocessor_module' IS NOT NULL as has_preprocessor, on_behalf_of_email, edited_by\n FROM flow \n LEFT JOIN flow_version\n ON flow_version.id = flow.versions[array_upper(flow.versions, 1)]\n WHERE flow.path = $1 and flow.workspace_id = $2", "describe": { "columns": [ { @@ -22,6 +22,16 @@ "ordinal": 3, "name": "has_preprocessor", "type_info": "Bool" + }, + { + "ordinal": 4, + "name": "on_behalf_of_email", + "type_info": "Text" + }, + { + "ordinal": 5, + "name": "edited_by", + "type_info": "Varchar" } ], "parameters": { @@ -34,8 +44,10 @@ true, true, null, - null + null, + true, + false ] }, - "hash": "98081ee9a4a4a52ae70d74d26e8608a010722d7ea9dc343ae8f03e38978ffaba" + "hash": "a0833b9899833166891c5de926f78632fae1123e736d728bf92cb2de004b6826" } diff --git a/backend/.sqlx/query-a21844a8a73420a1f25dac7815e525a27eda3ca6c69d690e8aa437b425c90963.json b/backend/.sqlx/query-a21844a8a73420a1f25dac7815e525a27eda3ca6c69d690e8aa437b425c90963.json deleted file mode 100644 index f43754ea67..0000000000 --- a/backend/.sqlx/query-a21844a8a73420a1f25dac7815e525a27eda3ca6c69d690e8aa437b425c90963.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "db_name": "PostgreSQL", - "query": "\n UPDATE queue SET flow_status = JSONB_SET(flow_status, ARRAY['user_states'], JSONB_SET(COALESCE(flow_status->'user_states', '{}'::jsonb), ARRAY[$1], $2))\n WHERE id = $3 AND workspace_id = $4 AND job_kind IN ('flow', 'flowpreview') RETURNING 1\n ", - "describe": { - "columns": [ - { - "ordinal": 0, - "name": "?column?", - "type_info": "Int4" - } - ], - "parameters": { - "Left": [ - "Text", - "Jsonb", - "Uuid", - "Text" - ] - }, - "nullable": [ - null - ] - }, - "hash": "a21844a8a73420a1f25dac7815e525a27eda3ca6c69d690e8aa437b425c90963" -} diff --git a/backend/.sqlx/query-a98b2d68f023f46ab91167d3147416df672c2aed2ba5ab70e98a9da5fa47255a.json b/backend/.sqlx/query-a98b2d68f023f46ab91167d3147416df672c2aed2ba5ab70e98a9da5fa47255a.json deleted file mode 100644 index 28bce0cd6e..0000000000 --- a/backend/.sqlx/query-a98b2d68f023f46ab91167d3147416df672c2aed2ba5ab70e98a9da5fa47255a.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "db_name": "PostgreSQL", - "query": "INSERT INTO workspace_settings\n (workspace_id)\n VALUES ($1)", - "describe": { - "columns": [], - "parameters": { - "Left": [ - "Varchar" - ] - }, - "nullable": [] - }, - "hash": "a98b2d68f023f46ab91167d3147416df672c2aed2ba5ab70e98a9da5fa47255a" -} diff --git a/backend/.sqlx/query-ab3f8ebcebf0088c1104be4014c43dab1c08d88c9bcc40b62f2e6bbbbc234ff3.json b/backend/.sqlx/query-ab3f8ebcebf0088c1104be4014c43dab1c08d88c9bcc40b62f2e6bbbbc234ff3.json new file mode 100644 index 0000000000..ae03769424 --- /dev/null +++ b/backend/.sqlx/query-ab3f8ebcebf0088c1104be4014c43dab1c08d88c9bcc40b62f2e6bbbbc234ff3.json @@ -0,0 +1,12 @@ +{ + "db_name": "PostgreSQL", + "query": "SET LOCAL ROLE NONE", + "describe": { + "columns": [], + "parameters": { + "Left": [] + }, + "nullable": [] + }, + "hash": "ab3f8ebcebf0088c1104be4014c43dab1c08d88c9bcc40b62f2e6bbbbc234ff3" +} diff --git a/backend/.sqlx/query-b223c56f55a138abef8c8cb2df40472a87b7e267a143709728b09ac063c33b96.json b/backend/.sqlx/query-b223c56f55a138abef8c8cb2df40472a87b7e267a143709728b09ac063c33b96.json new file mode 100644 index 0000000000..f542ec075a --- /dev/null +++ b/backend/.sqlx/query-b223c56f55a138abef8c8cb2df40472a87b7e267a143709728b09ac063c33b96.json @@ -0,0 +1,16 @@ +{ + "db_name": "PostgreSQL", + "query": "UPDATE capture_config SET last_server_ping = NULL WHERE workspace_id = $1 AND path = $2 AND is_flow = $3 AND trigger_kind = 'kafka' AND server_id IS NULL", + "describe": { + "columns": [], + "parameters": { + "Left": [ + "Text", + "Text", + "Bool" + ] + }, + "nullable": [] + }, + "hash": "b223c56f55a138abef8c8cb2df40472a87b7e267a143709728b09ac063c33b96" +} diff --git a/backend/.sqlx/query-b3a9ab85a78edf292ddb0af33f7435bbcc84f63c9079e29d84043f258eba208e.json b/backend/.sqlx/query-b3a9ab85a78edf292ddb0af33f7435bbcc84f63c9079e29d84043f258eba208e.json deleted file mode 100644 index 59bcc04054..0000000000 --- a/backend/.sqlx/query-b3a9ab85a78edf292ddb0af33f7435bbcc84f63c9079e29d84043f258eba208e.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "db_name": "PostgreSQL", - "query": "SELECT\n flow_status AS \"flow_status!: Json>\",\n coalesce(job.raw_flow, queue.raw_flow)->'modules'->(flow_status->'step')::int AS \"module: Json>\"\n FROM queue LEFT JOIN job USING(id, workspace_id) WHERE id = $1 AND workspace_id = $2 LIMIT 1", - "describe": { - "columns": [ - { - "ordinal": 0, - "name": "flow_status!: Json>", - "type_info": "Jsonb" - }, - { - "ordinal": 1, - "name": "module: Json>", - "type_info": "Jsonb" - } - ], - "parameters": { - "Left": [ - "Uuid", - "Text" - ] - }, - "nullable": [ - true, - null - ] - }, - "hash": "b3a9ab85a78edf292ddb0af33f7435bbcc84f63c9079e29d84043f258eba208e" -} diff --git a/backend/.sqlx/query-b53007a988c6336015dbe50a207d4996b379d436566ee697bbe32361c859be64.json b/backend/.sqlx/query-b53007a988c6336015dbe50a207d4996b379d436566ee697bbe32361c859be64.json new file mode 100644 index 0000000000..0f22a3079b --- /dev/null +++ b/backend/.sqlx/query-b53007a988c6336015dbe50a207d4996b379d436566ee697bbe32361c859be64.json @@ -0,0 +1,12 @@ +{ + "db_name": "PostgreSQL", + "query": "SET LOCAL ROLE windmill_user", + "describe": { + "columns": [], + "parameters": { + "Left": [] + }, + "nullable": [] + }, + "hash": "b53007a988c6336015dbe50a207d4996b379d436566ee697bbe32361c859be64" +} diff --git a/backend/.sqlx/query-b7f2ed32e933b65fa5455928c71f61068ad7dfee8352a76122f5af893ffe6517.json b/backend/.sqlx/query-b7f2ed32e933b65fa5455928c71f61068ad7dfee8352a76122f5af893ffe6517.json deleted file mode 100644 index e894cf3507..0000000000 --- a/backend/.sqlx/query-b7f2ed32e933b65fa5455928c71f61068ad7dfee8352a76122f5af893ffe6517.json +++ /dev/null @@ -1,72 +0,0 @@ -{ - "db_name": "PostgreSQL", - "query": "SELECT content AS \"content!: String\",\n lock AS \"lock: String\", language AS \"language: Option\", envs AS \"envs: Vec\", codebase AS \"codebase: String\" FROM script WHERE hash = $1 LIMIT 1", - "describe": { - "columns": [ - { - "ordinal": 0, - "name": "content!: String", - "type_info": "Text" - }, - { - "ordinal": 1, - "name": "lock: String", - "type_info": "Text" - }, - { - "ordinal": 2, - "name": "language: Option", - "type_info": { - "Custom": { - "name": "script_lang", - "kind": { - "Enum": [ - "python3", - "deno", - "go", - "bash", - "postgresql", - "nativets", - "bun", - "mysql", - "bigquery", - "snowflake", - "graphql", - "powershell", - "mssql", - "php", - "bunnative", - "rust", - "ansible", - "csharp" - ] - } - } - } - }, - { - "ordinal": 3, - "name": "envs: Vec", - "type_info": "VarcharArray" - }, - { - "ordinal": 4, - "name": "codebase: String", - "type_info": "Varchar" - } - ], - "parameters": { - "Left": [ - "Int8" - ] - }, - "nullable": [ - false, - true, - false, - true, - true - ] - }, - "hash": "b7f2ed32e933b65fa5455928c71f61068ad7dfee8352a76122f5af893ffe6517" -} diff --git a/backend/.sqlx/query-899a406cc03659e29bad831cc4d3d1dcda1a39b826a03136353344ccae29871b.json b/backend/.sqlx/query-ba8bde5018fdf7b12f85cd3a6557c4accfc78bf160c1277f35d9d8ddcd056963.json similarity index 61% rename from backend/.sqlx/query-899a406cc03659e29bad831cc4d3d1dcda1a39b826a03136353344ccae29871b.json rename to backend/.sqlx/query-ba8bde5018fdf7b12f85cd3a6557c4accfc78bf160c1277f35d9d8ddcd056963.json index dec3a1bb5a..e6564a96fa 100644 --- a/backend/.sqlx/query-899a406cc03659e29bad831cc4d3d1dcda1a39b826a03136353344ccae29871b.json +++ b/backend/.sqlx/query-ba8bde5018fdf7b12f85cd3a6557c4accfc78bf160c1277f35d9d8ddcd056963.json @@ -1,6 +1,6 @@ { "db_name": "PostgreSQL", - "query": "UPDATE flow SET path = $1, summary = $2, description = $3,dependency_job = NULL, draft_only = NULL, tag = $4, dedicated_worker = $5, visible_to_runner_only = $6, value = $7, schema = $8::text::json, edited_by = $9, edited_at = now()\n WHERE path = $10 AND workspace_id = $11", + "query": "UPDATE flow SET path = $1, summary = $2, description = $3,dependency_job = NULL, draft_only = NULL, tag = $4, dedicated_worker = $5, visible_to_runner_only = $6, on_behalf_of_email = $7, value = $8, schema = $9::text::json, edited_by = $10, edited_at = now()\n WHERE path = $11 AND workspace_id = $12", "describe": { "columns": [], "parameters": { @@ -11,6 +11,7 @@ "Varchar", "Bool", "Bool", + "Text", "Jsonb", "Text", "Varchar", @@ -20,5 +21,5 @@ }, "nullable": [] }, - "hash": "899a406cc03659e29bad831cc4d3d1dcda1a39b826a03136353344ccae29871b" + "hash": "ba8bde5018fdf7b12f85cd3a6557c4accfc78bf160c1277f35d9d8ddcd056963" } diff --git a/backend/.sqlx/query-bb6141ad0e93986b38ccdf4d027c486137d4fe79906e22842b711f4a9379b8c8.json b/backend/.sqlx/query-bb6141ad0e93986b38ccdf4d027c486137d4fe79906e22842b711f4a9379b8c8.json deleted file mode 100644 index da89afe0f7..0000000000 --- a/backend/.sqlx/query-bb6141ad0e93986b38ccdf4d027c486137d4fe79906e22842b711f4a9379b8c8.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "db_name": "PostgreSQL", - "query": "SELECT\n queue.job_kind AS \"job_kind: JobKind\",\n queue.script_hash AS \"script_hash: ScriptHash\",\n queue.raw_flow AS \"raw_flow: sqlx::types::Json>\",\n completed_job.parent_job AS \"parent_job: Uuid\"\n FROM queue\n JOIN completed_job ON completed_job.parent_job = queue.id\n WHERE completed_job.id = $1 AND completed_job.workspace_id = $2\n LIMIT 1", - "describe": { - "columns": [ - { - "ordinal": 0, - "name": "job_kind: JobKind", - "type_info": { - "Custom": { - "name": "job_kind", - "kind": { - "Enum": [ - "script", - "preview", - "flow", - "dependencies", - "flowpreview", - "script_hub", - "identity", - "flowdependencies", - "http", - "graphql", - "postgresql", - "noop", - "appdependencies", - "deploymentcallback", - "singlescriptflow", - "flowscript", - "flownode", - "appscript" - ] - } - } - } - }, - { - "ordinal": 1, - "name": "script_hash: ScriptHash", - "type_info": "Int8" - }, - { - "ordinal": 2, - "name": "raw_flow: sqlx::types::Json>", - "type_info": "Jsonb" - }, - { - "ordinal": 3, - "name": "parent_job: Uuid", - "type_info": "Uuid" - } - ], - "parameters": { - "Left": [ - "Uuid", - "Text" - ] - }, - "nullable": [ - false, - true, - true, - true - ] - }, - "hash": "bb6141ad0e93986b38ccdf4d027c486137d4fe79906e22842b711f4a9379b8c8" -} diff --git a/backend/.sqlx/query-b49b1eaf58e62063c7a03039d0c36e65991b1d21a3306390fb1c7ca38babafe3.json b/backend/.sqlx/query-bc00efe12901bc7b49c7892d2d9da675e0eaf5e6cc013149740bc778987a1006.json similarity index 82% rename from backend/.sqlx/query-b49b1eaf58e62063c7a03039d0c36e65991b1d21a3306390fb1c7ca38babafe3.json rename to backend/.sqlx/query-bc00efe12901bc7b49c7892d2d9da675e0eaf5e6cc013149740bc778987a1006.json index 8b3824a2a2..67611f00dc 100644 --- a/backend/.sqlx/query-b49b1eaf58e62063c7a03039d0c36e65991b1d21a3306390fb1c7ca38babafe3.json +++ b/backend/.sqlx/query-bc00efe12901bc7b49c7892d2d9da675e0eaf5e6cc013149740bc778987a1006.json @@ -1,6 +1,6 @@ { "db_name": "PostgreSQL", - "query": "INSERT INTO script (workspace_id, hash, path, parent_hashes, summary, description, content, created_by, schema, is_template, extra_perms, lock, language, kind, tag, draft_only, envs, concurrent_limit, concurrency_time_window_s, cache_ttl, dedicated_worker, ws_error_handler_muted, priority, restart_unless_cancelled, delete_after_use, timeout, concurrency_key, visible_to_runner_only, no_main_func, codebase, has_preprocessor) VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9::text::json, $10, $11, $12, $13, $14, $15, $16, $17, $18, $19, $20, $21, $22, $23, $24, $25, $26, $27, $28, $29, $30, $31)", + "query": "INSERT INTO script (workspace_id, hash, path, parent_hashes, summary, description, content, created_by, schema, is_template, extra_perms, lock, language, kind, tag, draft_only, envs, concurrent_limit, concurrency_time_window_s, cache_ttl, dedicated_worker, ws_error_handler_muted, priority, restart_unless_cancelled, delete_after_use, timeout, concurrency_key, visible_to_runner_only, no_main_func, codebase, has_preprocessor, on_behalf_of_email) VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9::text::json, $10, $11, $12, $13, $14, $15, $16, $17, $18, $19, $20, $21, $22, $23, $24, $25, $26, $27, $28, $29, $30, $31, $32)", "describe": { "columns": [], "parameters": { @@ -39,7 +39,8 @@ "bunnative", "rust", "ansible", - "csharp" + "csharp", + "oracledb" ] } } @@ -75,10 +76,11 @@ "Bool", "Bool", "Varchar", - "Bool" + "Bool", + "Text" ] }, "nullable": [] }, - "hash": "b49b1eaf58e62063c7a03039d0c36e65991b1d21a3306390fb1c7ca38babafe3" + "hash": "bc00efe12901bc7b49c7892d2d9da675e0eaf5e6cc013149740bc778987a1006" } diff --git a/backend/.sqlx/query-bfff3d8df18db198d6ebba8a049b00147fc8bcd42f3df37ef81b9ded80974bd0.json b/backend/.sqlx/query-bfff3d8df18db198d6ebba8a049b00147fc8bcd42f3df37ef81b9ded80974bd0.json index 4843d959c1..b378d68f5b 100644 --- a/backend/.sqlx/query-bfff3d8df18db198d6ebba8a049b00147fc8bcd42f3df37ef81b9ded80974bd0.json +++ b/backend/.sqlx/query-bfff3d8df18db198d6ebba8a049b00147fc8bcd42f3df37ef81b9ded80974bd0.json @@ -5,7 +5,7 @@ "columns": [ { "ordinal": 0, - "name": "?column?", + "name": "bool", "type_info": "Bool" } ], diff --git a/backend/.sqlx/query-c4e0f3eab227a798d9cd7478db50a7c1a588e69c2c8d9a1def9276ba326453d2.json b/backend/.sqlx/query-c4e0f3eab227a798d9cd7478db50a7c1a588e69c2c8d9a1def9276ba326453d2.json new file mode 100644 index 0000000000..bd16dab3bf --- /dev/null +++ b/backend/.sqlx/query-c4e0f3eab227a798d9cd7478db50a7c1a588e69c2c8d9a1def9276ba326453d2.json @@ -0,0 +1,15 @@ +{ + "db_name": "PostgreSQL", + "query": "INSERT INTO cloud_workspace_settings (workspace_id, threshold_alert_amount) VALUES ($1, $2) ON CONFLICT (workspace_id) DO UPDATE SET threshold_alert_amount = $2, last_alert_sent = NULL", + "describe": { + "columns": [], + "parameters": { + "Left": [ + "Varchar", + "Int4" + ] + }, + "nullable": [] + }, + "hash": "c4e0f3eab227a798d9cd7478db50a7c1a588e69c2c8d9a1def9276ba326453d2" +} diff --git a/backend/.sqlx/query-c57ed2d91de46d7de88e20b94b7afbafb622528864f2b23c8b7278bd506d967f.json b/backend/.sqlx/query-c57ed2d91de46d7de88e20b94b7afbafb622528864f2b23c8b7278bd506d967f.json deleted file mode 100644 index 0b9c0f1424..0000000000 --- a/backend/.sqlx/query-c57ed2d91de46d7de88e20b94b7afbafb622528864f2b23c8b7278bd506d967f.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "db_name": "PostgreSQL", - "query": "SELECT lock AS \"lock: String\", code AS \"code: String\", flow::text AS \"flow: Box\" FROM flow_node WHERE id = $1 LIMIT 1", - "describe": { - "columns": [ - { - "ordinal": 0, - "name": "lock: String", - "type_info": "Text" - }, - { - "ordinal": 1, - "name": "code: String", - "type_info": "Text" - }, - { - "ordinal": 2, - "name": "flow: Box", - "type_info": "Text" - } - ], - "parameters": { - "Left": [ - "Int8" - ] - }, - "nullable": [ - true, - true, - null - ] - }, - "hash": "c57ed2d91de46d7de88e20b94b7afbafb622528864f2b23c8b7278bd506d967f" -} diff --git a/backend/.sqlx/query-c794ff5e14429a1bc56f5e70cfd10e2160d1b7e123c7ab226dc77d1789f164f9.json b/backend/.sqlx/query-c794ff5e14429a1bc56f5e70cfd10e2160d1b7e123c7ab226dc77d1789f164f9.json new file mode 100644 index 0000000000..c4810efe68 --- /dev/null +++ b/backend/.sqlx/query-c794ff5e14429a1bc56f5e70cfd10e2160d1b7e123c7ab226dc77d1789f164f9.json @@ -0,0 +1,47 @@ +{ + "db_name": "PostgreSQL", + "query": "SELECT tag, dedicated_worker, flow_version.value->>'preprocessor_module' IS NOT NULL as has_preprocessor, on_behalf_of_email, edited_by\n FROM flow \n LEFT JOIN flow_version\n ON flow_version.id = flow.versions[array_upper(flow.versions, 1)]\n WHERE flow.path = $1 and flow.workspace_id = $2", + "describe": { + "columns": [ + { + "ordinal": 0, + "name": "tag", + "type_info": "Varchar" + }, + { + "ordinal": 1, + "name": "dedicated_worker", + "type_info": "Bool" + }, + { + "ordinal": 2, + "name": "has_preprocessor", + "type_info": "Bool" + }, + { + "ordinal": 3, + "name": "on_behalf_of_email", + "type_info": "Text" + }, + { + "ordinal": 4, + "name": "edited_by", + "type_info": "Varchar" + } + ], + "parameters": { + "Left": [ + "Text", + "Text" + ] + }, + "nullable": [ + true, + true, + null, + true, + false + ] + }, + "hash": "c794ff5e14429a1bc56f5e70cfd10e2160d1b7e123c7ab226dc77d1789f164f9" +} diff --git a/backend/.sqlx/query-cba3bfb174829ee3b08ea195831fdba4335ca221a5fd25c72519ac376c593e44.json b/backend/.sqlx/query-cba3bfb174829ee3b08ea195831fdba4335ca221a5fd25c72519ac376c593e44.json new file mode 100644 index 0000000000..ebda0390f9 --- /dev/null +++ b/backend/.sqlx/query-cba3bfb174829ee3b08ea195831fdba4335ca221a5fd25c72519ac376c593e44.json @@ -0,0 +1,16 @@ +{ + "db_name": "PostgreSQL", + "query": "UPDATE capture_config SET last_server_ping = NULL WHERE workspace_id = $1 AND path = $2 AND is_flow = $3 AND trigger_kind = 'websocket' AND server_id IS NULL", + "describe": { + "columns": [], + "parameters": { + "Left": [ + "Text", + "Text", + "Bool" + ] + }, + "nullable": [] + }, + "hash": "cba3bfb174829ee3b08ea195831fdba4335ca221a5fd25c72519ac376c593e44" +} diff --git a/backend/.sqlx/query-d061e7ca73987036928e17245360fd7f2969aab0c422a00bbdade6a7236aa75d.json b/backend/.sqlx/query-d061e7ca73987036928e17245360fd7f2969aab0c422a00bbdade6a7236aa75d.json deleted file mode 100644 index d6d6e77aa4..0000000000 --- a/backend/.sqlx/query-d061e7ca73987036928e17245360fd7f2969aab0c422a00bbdade6a7236aa75d.json +++ /dev/null @@ -1,72 +0,0 @@ -{ - "db_name": "PostgreSQL", - "query": "SELECT lock AS \"lock: String\", content AS \"code!: String\",\n language AS \"language: Option\", envs AS \"envs: Vec\", codebase AS \"codebase: String\" FROM script WHERE hash = $1 LIMIT 1", - "describe": { - "columns": [ - { - "ordinal": 0, - "name": "lock: String", - "type_info": "Text" - }, - { - "ordinal": 1, - "name": "code!: String", - "type_info": "Text" - }, - { - "ordinal": 2, - "name": "language: Option", - "type_info": { - "Custom": { - "name": "script_lang", - "kind": { - "Enum": [ - "python3", - "deno", - "go", - "bash", - "postgresql", - "nativets", - "bun", - "mysql", - "bigquery", - "snowflake", - "graphql", - "powershell", - "mssql", - "php", - "bunnative", - "rust", - "ansible", - "csharp" - ] - } - } - } - }, - { - "ordinal": 3, - "name": "envs: Vec", - "type_info": "VarcharArray" - }, - { - "ordinal": 4, - "name": "codebase: String", - "type_info": "Varchar" - } - ], - "parameters": { - "Left": [ - "Int8" - ] - }, - "nullable": [ - true, - false, - false, - true, - true - ] - }, - "hash": "d061e7ca73987036928e17245360fd7f2969aab0c422a00bbdade6a7236aa75d" -} diff --git a/backend/.sqlx/query-d860cd90e583e4666beb37b283bd990dbcb91b781728b5b6253051decfda83d6.json b/backend/.sqlx/query-d860cd90e583e4666beb37b283bd990dbcb91b781728b5b6253051decfda83d6.json deleted file mode 100644 index 149c649285..0000000000 --- a/backend/.sqlx/query-d860cd90e583e4666beb37b283bd990dbcb91b781728b5b6253051decfda83d6.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "db_name": "PostgreSQL", - "query": "INSERT INTO flow \n (workspace_id, path, summary, description, archived, extra_perms, dependency_job, draft_only, tag, ws_error_handler_muted, dedicated_worker, timeout, visible_to_runner_only, concurrency_key, versions, value, schema, edited_by, edited_at) \n SELECT workspace_id, $1, summary, description, archived, extra_perms, dependency_job, draft_only, tag, ws_error_handler_muted, dedicated_worker, timeout, visible_to_runner_only, concurrency_key, versions, value, schema, edited_by, edited_at\n FROM flow\n WHERE path = $2 AND workspace_id = $3", - "describe": { - "columns": [], - "parameters": { - "Left": [ - "Varchar", - "Text", - "Text" - ] - }, - "nullable": [] - }, - "hash": "d860cd90e583e4666beb37b283bd990dbcb91b781728b5b6253051decfda83d6" -} diff --git a/backend/.sqlx/query-da861c06f6448f68069ba3be9b677641c5c6b2c1e4960c74db27dbaffcbd4c40.json b/backend/.sqlx/query-da861c06f6448f68069ba3be9b677641c5c6b2c1e4960c74db27dbaffcbd4c40.json deleted file mode 100644 index 95a5b6fbf6..0000000000 --- a/backend/.sqlx/query-da861c06f6448f68069ba3be9b677641c5c6b2c1e4960c74db27dbaffcbd4c40.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "db_name": "PostgreSQL", - "query": "SELECT raw_code, raw_lock, raw_flow AS \"raw_flow: Json>\"\n FROM job WHERE id = $1 AND workspace_id = $2 LIMIT 1", - "describe": { - "columns": [ - { - "ordinal": 0, - "name": "raw_code", - "type_info": "Text" - }, - { - "ordinal": 1, - "name": "raw_lock", - "type_info": "Text" - }, - { - "ordinal": 2, - "name": "raw_flow: Json>", - "type_info": "Jsonb" - } - ], - "parameters": { - "Left": [ - "Uuid", - "Text" - ] - }, - "nullable": [ - true, - true, - true - ] - }, - "hash": "da861c06f6448f68069ba3be9b677641c5c6b2c1e4960c74db27dbaffcbd4c40" -} diff --git a/backend/.sqlx/query-dc44783a555d41c9df4cd303af686e43bbf89add915bfb09d94e25e8517d65ff.json b/backend/.sqlx/query-dc44783a555d41c9df4cd303af686e43bbf89add915bfb09d94e25e8517d65ff.json deleted file mode 100644 index 5f72d6aa21..0000000000 --- a/backend/.sqlx/query-dc44783a555d41c9df4cd303af686e43bbf89add915bfb09d94e25e8517d65ff.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "db_name": "PostgreSQL", - "query": "SELECT flow_version.value as \"value!: sqlx::types::Json>\" FROM flow \n LEFT JOIN flow_version\n ON flow_version.id = flow.versions[array_upper(flow.versions, 1)]\n WHERE flow.path = $1 AND flow.workspace_id = $2", - "describe": { - "columns": [ - { - "ordinal": 0, - "name": "value!: sqlx::types::Json>", - "type_info": "Jsonb" - } - ], - "parameters": { - "Left": [ - "Text", - "Text" - ] - }, - "nullable": [ - false - ] - }, - "hash": "dc44783a555d41c9df4cd303af686e43bbf89add915bfb09d94e25e8517d65ff" -} diff --git a/backend/.sqlx/query-de816241885fee0f5f8f99bd34e79214f9ec492d458e72ecb032a6a92a908ca2.json b/backend/.sqlx/query-de816241885fee0f5f8f99bd34e79214f9ec492d458e72ecb032a6a92a908ca2.json new file mode 100644 index 0000000000..c42e4f67d9 --- /dev/null +++ b/backend/.sqlx/query-de816241885fee0f5f8f99bd34e79214f9ec492d458e72ecb032a6a92a908ca2.json @@ -0,0 +1,14 @@ +{ + "db_name": "PostgreSQL", + "query": "DELETE FROM kafka_trigger WHERE workspace_id = $1", + "describe": { + "columns": [], + "parameters": { + "Left": [ + "Text" + ] + }, + "nullable": [] + }, + "hash": "de816241885fee0f5f8f99bd34e79214f9ec492d458e72ecb032a6a92a908ca2" +} diff --git a/backend/.sqlx/query-deb2e4c21d4f9d0b9439780ca6ebee13450609b578c469cb437c5420ab520258.json b/backend/.sqlx/query-deb2e4c21d4f9d0b9439780ca6ebee13450609b578c469cb437c5420ab520258.json deleted file mode 100644 index 54e871eb13..0000000000 --- a/backend/.sqlx/query-deb2e4c21d4f9d0b9439780ca6ebee13450609b578c469cb437c5420ab520258.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "db_name": "PostgreSQL", - "query": "SELECT content FROM script WHERE hash = $1 AND workspace_id = $2", - "describe": { - "columns": [ - { - "ordinal": 0, - "name": "content", - "type_info": "Text" - } - ], - "parameters": { - "Left": [ - "Int8", - "Text" - ] - }, - "nullable": [ - false - ] - }, - "hash": "deb2e4c21d4f9d0b9439780ca6ebee13450609b578c469cb437c5420ab520258" -} diff --git a/backend/.sqlx/query-df52a71d59eb84a2b08133d25f0a8bba7f2b56625fdb7a7c0e10b51377eeb1d4.json b/backend/.sqlx/query-df52a71d59eb84a2b08133d25f0a8bba7f2b56625fdb7a7c0e10b51377eeb1d4.json deleted file mode 100644 index d1beb9d3a4..0000000000 --- a/backend/.sqlx/query-df52a71d59eb84a2b08133d25f0a8bba7f2b56625fdb7a7c0e10b51377eeb1d4.json +++ /dev/null @@ -1,73 +0,0 @@ -{ - "db_name": "PostgreSQL", - "query": "SELECT lock AS \"lock: String\", content AS \"code!: String\",\n language AS \"language: Option\", envs AS \"envs: Vec\", codebase AS \"codebase: String\" FROM script WHERE hash = $1 AND workspace_id = $2 LIMIT 1", - "describe": { - "columns": [ - { - "ordinal": 0, - "name": "lock: String", - "type_info": "Text" - }, - { - "ordinal": 1, - "name": "code!: String", - "type_info": "Text" - }, - { - "ordinal": 2, - "name": "language: Option", - "type_info": { - "Custom": { - "name": "script_lang", - "kind": { - "Enum": [ - "python3", - "deno", - "go", - "bash", - "postgresql", - "nativets", - "bun", - "mysql", - "bigquery", - "snowflake", - "graphql", - "powershell", - "mssql", - "php", - "bunnative", - "rust", - "ansible", - "csharp" - ] - } - } - } - }, - { - "ordinal": 3, - "name": "envs: Vec", - "type_info": "VarcharArray" - }, - { - "ordinal": 4, - "name": "codebase: String", - "type_info": "Varchar" - } - ], - "parameters": { - "Left": [ - "Int8", - "Text" - ] - }, - "nullable": [ - true, - false, - false, - true, - true - ] - }, - "hash": "df52a71d59eb84a2b08133d25f0a8bba7f2b56625fdb7a7c0e10b51377eeb1d4" -} diff --git a/backend/.sqlx/query-e08dddf6af2656b561c453460ff928e7a158bd29d9035bee136f9952fb96bad4.json b/backend/.sqlx/query-e08dddf6af2656b561c453460ff928e7a158bd29d9035bee136f9952fb96bad4.json index ff34048ea9..b2ff93f8d9 100644 --- a/backend/.sqlx/query-e08dddf6af2656b561c453460ff928e7a158bd29d9035bee136f9952fb96bad4.json +++ b/backend/.sqlx/query-e08dddf6af2656b561c453460ff928e7a158bd29d9035bee136f9952fb96bad4.json @@ -25,7 +25,8 @@ "http", "websocket", "kafka", - "email" + "email", + "nats" ] } } @@ -56,7 +57,8 @@ "http", "websocket", "kafka", - "email" + "email", + "nats" ] } } diff --git a/backend/.sqlx/query-e2b17a69501978f2617ff4d20198111e3dab821c25d3164db7983b3192d149a0.json b/backend/.sqlx/query-e2b17a69501978f2617ff4d20198111e3dab821c25d3164db7983b3192d149a0.json new file mode 100644 index 0000000000..83f516cae2 --- /dev/null +++ b/backend/.sqlx/query-e2b17a69501978f2617ff4d20198111e3dab821c25d3164db7983b3192d149a0.json @@ -0,0 +1,15 @@ +{ + "db_name": "PostgreSQL", + "query": "UPDATE nats_trigger SET workspace_id = $1 WHERE workspace_id = $2", + "describe": { + "columns": [], + "parameters": { + "Left": [ + "Varchar", + "Text" + ] + }, + "nullable": [] + }, + "hash": "e2b17a69501978f2617ff4d20198111e3dab821c25d3164db7983b3192d149a0" +} diff --git a/backend/.sqlx/query-e38a66d15382703b99054a9b609af9f3854bb65393d33b265476c0e68aec4f61.json b/backend/.sqlx/query-e38a66d15382703b99054a9b609af9f3854bb65393d33b265476c0e68aec4f61.json new file mode 100644 index 0000000000..78e5750992 --- /dev/null +++ b/backend/.sqlx/query-e38a66d15382703b99054a9b609af9f3854bb65393d33b265476c0e68aec4f61.json @@ -0,0 +1,15 @@ +{ + "db_name": "PostgreSQL", + "query": "UPDATE nats_trigger SET last_server_ping = NULL WHERE workspace_id = $1 AND path = $2 AND server_id IS NULL", + "describe": { + "columns": [], + "parameters": { + "Left": [ + "Text", + "Text" + ] + }, + "nullable": [] + }, + "hash": "e38a66d15382703b99054a9b609af9f3854bb65393d33b265476c0e68aec4f61" +} diff --git a/backend/.sqlx/query-1a612eb0b64eddd2c5657ef73598c47886545796424f8612135b711e2b9ddb6c.json b/backend/.sqlx/query-ec7836df5f9056ec70015800b7f4feaeb1b671120f5f8c98fca8c89c6587fc35.json similarity index 79% rename from backend/.sqlx/query-1a612eb0b64eddd2c5657ef73598c47886545796424f8612135b711e2b9ddb6c.json rename to backend/.sqlx/query-ec7836df5f9056ec70015800b7f4feaeb1b671120f5f8c98fca8c89c6587fc35.json index a82d32768e..81093c5f12 100644 --- a/backend/.sqlx/query-1a612eb0b64eddd2c5657ef73598c47886545796424f8612135b711e2b9ddb6c.json +++ b/backend/.sqlx/query-ec7836df5f9056ec70015800b7f4feaeb1b671120f5f8c98fca8c89c6587fc35.json @@ -1,6 +1,6 @@ { "db_name": "PostgreSQL", - "query": "select tag, concurrency_key, concurrent_limit, concurrency_time_window_s, cache_ttl, language as \"language: ScriptLang\", dedicated_worker, priority, delete_after_use, timeout from script where hash = $1 AND workspace_id = $2", + "query": "select tag, concurrency_key, concurrent_limit, concurrency_time_window_s, cache_ttl, language as \"language: ScriptLang\", dedicated_worker, priority, delete_after_use, timeout, on_behalf_of_email, created_by from script where hash = $1 AND workspace_id = $2", "describe": { "columns": [ { @@ -53,7 +53,8 @@ "bunnative", "rust", "ansible", - "csharp" + "csharp", + "oracledb" ] } } @@ -78,6 +79,16 @@ "ordinal": 9, "name": "timeout", "type_info": "Int4" + }, + { + "ordinal": 10, + "name": "on_behalf_of_email", + "type_info": "Text" + }, + { + "ordinal": 11, + "name": "created_by", + "type_info": "Varchar" } ], "parameters": { @@ -96,8 +107,10 @@ true, true, true, - true + true, + true, + false ] }, - "hash": "1a612eb0b64eddd2c5657ef73598c47886545796424f8612135b711e2b9ddb6c" + "hash": "ec7836df5f9056ec70015800b7f4feaeb1b671120f5f8c98fca8c89c6587fc35" } diff --git a/backend/.sqlx/query-f24303a2386575a750a48a21d1b6cdecd6e64a0415c60ad1495f100c5d85bbe1.json b/backend/.sqlx/query-f24303a2386575a750a48a21d1b6cdecd6e64a0415c60ad1495f100c5d85bbe1.json deleted file mode 100644 index 74200d658d..0000000000 --- a/backend/.sqlx/query-f24303a2386575a750a48a21d1b6cdecd6e64a0415c60ad1495f100c5d85bbe1.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "db_name": "PostgreSQL", - "query": "SELECT raw_flow AS \"raw_flow!: Json>\"\n FROM job WHERE id = $1 AND workspace_id = $2 LIMIT 1", - "describe": { - "columns": [ - { - "ordinal": 0, - "name": "raw_flow!: Json>", - "type_info": "Jsonb" - } - ], - "parameters": { - "Left": [ - "Uuid", - "Text" - ] - }, - "nullable": [ - true - ] - }, - "hash": "f24303a2386575a750a48a21d1b6cdecd6e64a0415c60ad1495f100c5d85bbe1" -} diff --git a/backend/.sqlx/query-f44f1a794ab217be05a9feb21e57b3409d9166a028701981cfc280aaab3c4436.json b/backend/.sqlx/query-f44f1a794ab217be05a9feb21e57b3409d9166a028701981cfc280aaab3c4436.json new file mode 100644 index 0000000000..79ef441a8a --- /dev/null +++ b/backend/.sqlx/query-f44f1a794ab217be05a9feb21e57b3409d9166a028701981cfc280aaab3c4436.json @@ -0,0 +1,41 @@ +{ + "db_name": "PostgreSQL", + "query": "SELECT tag, dedicated_worker, on_behalf_of_email, edited_by from flow WHERE path = $1 and workspace_id = $2", + "describe": { + "columns": [ + { + "ordinal": 0, + "name": "tag", + "type_info": "Varchar" + }, + { + "ordinal": 1, + "name": "dedicated_worker", + "type_info": "Bool" + }, + { + "ordinal": 2, + "name": "on_behalf_of_email", + "type_info": "Text" + }, + { + "ordinal": 3, + "name": "edited_by", + "type_info": "Varchar" + } + ], + "parameters": { + "Left": [ + "Text", + "Text" + ] + }, + "nullable": [ + true, + true, + true, + false + ] + }, + "hash": "f44f1a794ab217be05a9feb21e57b3409d9166a028701981cfc280aaab3c4436" +} diff --git a/backend/.sqlx/query-f74589aaa72d0eb9f44157cc60eb121e63a7f31ed849834bb8ac9e8c726e81f1.json b/backend/.sqlx/query-f74589aaa72d0eb9f44157cc60eb121e63a7f31ed849834bb8ac9e8c726e81f1.json new file mode 100644 index 0000000000..46fe54f755 --- /dev/null +++ b/backend/.sqlx/query-f74589aaa72d0eb9f44157cc60eb121e63a7f31ed849834bb8ac9e8c726e81f1.json @@ -0,0 +1,28 @@ +{ + "db_name": "PostgreSQL", + "query": "SELECT threshold_alert_amount, last_alert_sent FROM cloud_workspace_settings WHERE workspace_id = $1", + "describe": { + "columns": [ + { + "ordinal": 0, + "name": "threshold_alert_amount", + "type_info": "Int4" + }, + { + "ordinal": 1, + "name": "last_alert_sent", + "type_info": "Timestamp" + } + ], + "parameters": { + "Left": [ + "Text" + ] + }, + "nullable": [ + true, + true + ] + }, + "hash": "f74589aaa72d0eb9f44157cc60eb121e63a7f31ed849834bb8ac9e8c726e81f1" +} diff --git a/backend/.sqlx/query-f7f2598ac824e9b5719b96b1d1873ad728f7f786c7f447df6cac3e65d5a53bf1.json b/backend/.sqlx/query-f7f2598ac824e9b5719b96b1d1873ad728f7f786c7f447df6cac3e65d5a53bf1.json deleted file mode 100644 index 33bc8f1c2d..0000000000 --- a/backend/.sqlx/query-f7f2598ac824e9b5719b96b1d1873ad728f7f786c7f447df6cac3e65d5a53bf1.json +++ /dev/null @@ -1,46 +0,0 @@ -{ - "db_name": "PostgreSQL", - "query": "SELECT workspace.* FROM workspace, usr WHERE usr.workspace_id = workspace.id AND usr.email = $1 AND deleted = false", - "describe": { - "columns": [ - { - "ordinal": 0, - "name": "id", - "type_info": "Varchar" - }, - { - "ordinal": 1, - "name": "name", - "type_info": "Varchar" - }, - { - "ordinal": 2, - "name": "owner", - "type_info": "Varchar" - }, - { - "ordinal": 3, - "name": "deleted", - "type_info": "Bool" - }, - { - "ordinal": 4, - "name": "premium", - "type_info": "Bool" - } - ], - "parameters": { - "Left": [ - "Text" - ] - }, - "nullable": [ - false, - false, - false, - false, - false - ] - }, - "hash": "f7f2598ac824e9b5719b96b1d1873ad728f7f786c7f447df6cac3e65d5a53bf1" -} diff --git a/backend/.sqlx/query-49a8fe5c538d8fc26f6d8ece5b30dd02a128f571039714e61525e2bb86591d93.json b/backend/.sqlx/query-f8f893fb4f6f8c16bffb233a585df0b8c007c24993979fdc013aa57583905f50.json similarity index 54% rename from backend/.sqlx/query-49a8fe5c538d8fc26f6d8ece5b30dd02a128f571039714e61525e2bb86591d93.json rename to backend/.sqlx/query-f8f893fb4f6f8c16bffb233a585df0b8c007c24993979fdc013aa57583905f50.json index b67bf27a83..759f91c962 100644 --- a/backend/.sqlx/query-49a8fe5c538d8fc26f6d8ece5b30dd02a128f571039714e61525e2bb86591d93.json +++ b/backend/.sqlx/query-f8f893fb4f6f8c16bffb233a585df0b8c007c24993979fdc013aa57583905f50.json @@ -1,30 +1,35 @@ { "db_name": "PostgreSQL", - "query": "SELECT premium, usage.usage as \"usage?\", workspace_settings.customer_id, workspace_settings.plan, workspace_settings.automatic_billing FROM workspace LEFT JOIN workspace_settings ON workspace_settings.workspace_id = $1 LEFT JOIN usage ON usage.id = $1 AND month_ = EXTRACT(YEAR FROM current_date) * 12 + EXTRACT(MONTH FROM current_date) AND usage.is_workspace IS true WHERE workspace.id = $1", + "query": "SELECT owner, premium, usage.usage as \"usage?\", workspace_settings.customer_id, workspace_settings.plan, workspace_settings.automatic_billing FROM workspace LEFT JOIN workspace_settings ON workspace_settings.workspace_id = $1 LEFT JOIN usage ON usage.id = $1 AND month_ = EXTRACT(YEAR FROM current_date) * 12 + EXTRACT(MONTH FROM current_date) AND usage.is_workspace IS true WHERE workspace.id = $1", "describe": { "columns": [ { "ordinal": 0, + "name": "owner", + "type_info": "Varchar" + }, + { + "ordinal": 1, "name": "premium", "type_info": "Bool" }, { - "ordinal": 1, + "ordinal": 2, "name": "usage?", "type_info": "Int4" }, { - "ordinal": 2, + "ordinal": 3, "name": "customer_id", "type_info": "Varchar" }, { - "ordinal": 3, + "ordinal": 4, "name": "plan", "type_info": "Varchar" }, { - "ordinal": 4, + "ordinal": 5, "name": "automatic_billing", "type_info": "Bool" } @@ -35,6 +40,7 @@ ] }, "nullable": [ + false, false, false, true, @@ -42,5 +48,5 @@ false ] }, - "hash": "49a8fe5c538d8fc26f6d8ece5b30dd02a128f571039714e61525e2bb86591d93" + "hash": "f8f893fb4f6f8c16bffb233a585df0b8c007c24993979fdc013aa57583905f50" } diff --git a/backend/.sqlx/query-f9fc0084fe086ef80005bb64a8bb6b493e53583017c18e2ab44f44125c52d548.json b/backend/.sqlx/query-f9fc0084fe086ef80005bb64a8bb6b493e53583017c18e2ab44f44125c52d548.json index ce5ca3b5cd..bad609fb21 100644 --- a/backend/.sqlx/query-f9fc0084fe086ef80005bb64a8bb6b493e53583017c18e2ab44f44125c52d548.json +++ b/backend/.sqlx/query-f9fc0084fe086ef80005bb64a8bb6b493e53583017c18e2ab44f44125c52d548.json @@ -82,7 +82,8 @@ "bunnative", "rust", "ansible", - "csharp" + "csharp", + "oracledb" ] } } diff --git a/backend/Cargo.lock b/backend/Cargo.lock index e4f8914127..02ecab7cfc 100644 --- a/backend/Cargo.lock +++ b/backend/Cargo.lock @@ -156,11 +156,12 @@ dependencies = [ [[package]] name = "anstyle-wincon" -version = "3.0.6" +version = "3.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2109dbce0e72be3ec00bed26e6a7479ca384ad226efdd66db8fa2e3a38c83125" +checksum = "ca3534e77181a9cc07539ad51f2141fe32f6c3ffd4df76db8ad92346b003ae4e" dependencies = [ "anstyle", + "once_cell", "windows-sys 0.59.0", ] @@ -359,7 +360,7 @@ dependencies = [ "arrow-schema", "chrono", "half", - "indexmap 2.7.0", + "indexmap 2.7.1", "lexical-core", "num", "serde", @@ -650,9 +651,9 @@ checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" [[package]] name = "aws-config" -version = "1.5.13" +version = "1.5.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c03a50b30228d3af8865ce83376b4e99e1ffa34728220fe2860e4df0bb5278d6" +checksum = "9f40e82e858e02445402906e454a73e244c7f501fcae198977585946c48e8697" dependencies = [ "aws-credential-types", "aws-runtime", @@ -692,9 +693,9 @@ dependencies = [ [[package]] name = "aws-runtime" -version = "1.5.3" +version = "1.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b16d1aa50accc11a4b4d5c50f7fb81cc0cf60328259c587d0e6b0f11385bde46" +checksum = "bee7643696e7fdd74c10f9eb42848a87fe469d35eae9c3323f80aa98f350baac" dependencies = [ "aws-credential-types", "aws-sigv4", @@ -712,14 +713,14 @@ dependencies = [ "percent-encoding", "pin-project-lite", "tracing", - "uuid 1.11.1", + "uuid 1.12.0", ] [[package]] name = "aws-sdk-sso" -version = "1.53.0" +version = "1.54.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1605dc0bf9f0a4b05b451441a17fcb0bda229db384f23bf5cead3adbab0664ac" +checksum = "921a13ed6aabe2d1258f65ef7804946255c799224440774c30e1a2c65cdf983a" dependencies = [ "aws-credential-types", "aws-runtime", @@ -739,9 +740,9 @@ dependencies = [ [[package]] name = "aws-sdk-ssooidc" -version = "1.54.0" +version = "1.55.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59f3f73466ff24f6ad109095e0f3f2c830bfb4cd6c8b12f744c8e61ebf4d3ba1" +checksum = "196c952738b05dfc917d82a3e9b5ba850822a6d6a86d677afda2a156cc172ceb" dependencies = [ "aws-credential-types", "aws-runtime", @@ -761,9 +762,9 @@ dependencies = [ [[package]] name = "aws-sdk-sts" -version = "1.54.1" +version = "1.55.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "861d324ef69247c6f3c6823755f408a68877ffb1a9afaff6dd8b0057c760de60" +checksum = "33ef5b73a927ed80b44096f8c20fb4abae65469af15198367e179ae267256e9d" dependencies = [ "aws-credential-types", "aws-runtime", @@ -784,9 +785,9 @@ dependencies = [ [[package]] name = "aws-sigv4" -version = "1.2.6" +version = "1.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d3820e0c08d0737872ff3c7c1f21ebbb6693d832312d6152bf18ef50a5471c2" +checksum = "690118821e46967b3c4501d67d7d52dd75106a9c54cf36cefa1985cedbe94e05" dependencies = [ "aws-credential-types", "aws-smithy-http", @@ -807,9 +808,9 @@ dependencies = [ [[package]] name = "aws-smithy-async" -version = "1.2.3" +version = "1.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "427cb637d15d63d6f9aae26358e1c9a9c09d5aa490d64b09354c8217cfef0f28" +checksum = "fa59d1327d8b5053c54bf2eaae63bf629ba9e904434d0835a28ed3c0ed0a614e" dependencies = [ "futures-util", "pin-project-lite", @@ -818,9 +819,9 @@ dependencies = [ [[package]] name = "aws-smithy-http" -version = "0.60.11" +version = "0.60.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c8bc3e8fdc6b8d07d976e301c02fe553f72a39b7a9fea820e023268467d7ab6" +checksum = "7809c27ad8da6a6a68c454e651d4962479e81472aa19ae99e59f9aba1f9713cc" dependencies = [ "aws-smithy-runtime-api", "aws-smithy-types", @@ -838,9 +839,9 @@ dependencies = [ [[package]] name = "aws-smithy-json" -version = "0.61.1" +version = "0.61.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee4e69cc50921eb913c6b662f8d909131bb3e6ad6cb6090d3a39b66fc5c52095" +checksum = "623a51127f24c30776c8b374295f2df78d92517386f77ba30773f15a30ce1422" dependencies = [ "aws-smithy-types", ] @@ -857,9 +858,9 @@ dependencies = [ [[package]] name = "aws-smithy-runtime" -version = "1.7.6" +version = "1.7.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a05dd41a70fc74051758ee75b5c4db2c0ca070ed9229c3df50e9475cda1cb985" +checksum = "865f7050bbc7107a6c98a397a9fcd9413690c27fa718446967cf03b2d3ac517e" dependencies = [ "aws-smithy-async", "aws-smithy-http", @@ -901,9 +902,9 @@ dependencies = [ [[package]] name = "aws-smithy-types" -version = "1.2.11" +version = "1.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38ddc9bd6c28aeb303477170ddd183760a956a03e083b3902a990238a7e3792d" +checksum = "a28f6feb647fb5e0d5b50f0472c19a7db9462b74e2fec01bb0b44eedcc834e97" dependencies = [ "base64-simd 0.8.0", "bytes", @@ -936,9 +937,9 @@ dependencies = [ [[package]] name = "aws-types" -version = "1.3.3" +version = "1.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5221b91b3e441e6675310829fd8984801b772cb1546ef6c0e54dec9f1ac13fef" +checksum = "b0df5a18c4f951c645300d365fec53a61418bcf4650f604f85fe2a665bfaa0c2" dependencies = [ "aws-credential-types", "aws-smithy-async", @@ -1024,7 +1025,7 @@ dependencies = [ "addr2line", "cfg-if", "libc", - "miniz_oxide 0.8.2", + "miniz_oxide 0.8.3", "object", "rustc-demangle", "windows-targets 0.52.6", @@ -1075,7 +1076,7 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "339abbe78e73178762e23bea9dfd08e697eb3f3301cd4be981c0f78ba5859195" dependencies = [ - "outref 0.5.1", + "outref 0.5.2", "vsimd", ] @@ -1122,7 +1123,7 @@ version = "0.69.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "271383c67ccabffb7381723dea0672a673f292304fcb45c01cc648c7a8d58088" dependencies = [ - "bitflags 2.7.0", + "bitflags 2.8.0", "cexpr", "clang-sys", "itertools 0.12.1", @@ -1145,7 +1146,7 @@ version = "0.70.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f49d8fed880d473ea71efb9bf597651e77201bdd4893efe54c9e5d65ae04ce6f" dependencies = [ - "bitflags 2.7.0", + "bitflags 2.8.0", "cexpr", "clang-sys", "itertools 0.13.0", @@ -1159,24 +1160,6 @@ dependencies = [ "syn 2.0.96", ] -[[package]] -name = "bindgen" -version = "0.71.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f58bf3d7db68cfbac37cfc485a8d711e87e064c3d0fe0435b92f7a407f9d6b3" -dependencies = [ - "bitflags 2.7.0", - "cexpr", - "clang-sys", - "itertools 0.13.0", - "proc-macro2", - "quote", - "regex", - "rustc-hash 2.1.0", - "shlex", - "syn 2.0.96", -] - [[package]] name = "bit-set" version = "0.5.3" @@ -1200,9 +1183,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.7.0" +version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1be3f42a67d6d345ecd59f675f3f012d6974981560836e938c22b424b85ce1be" +checksum = "8f68f53c83ab957f72c32642f3868eec03eb974d1fb82e453128456482613d36" dependencies = [ "serde", ] @@ -1331,9 +1314,9 @@ dependencies = [ [[package]] name = "borsh" -version = "1.5.3" +version = "1.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2506947f73ad44e344215ccd6403ac2ae18cd8e046e581a441bf8d199f257f03" +checksum = "5430e3be710b68d984d1391c854eb431a9d548640711faa54eecb1df93db91cc" dependencies = [ "borsh-derive", "cfg_aliases", @@ -1341,9 +1324,9 @@ dependencies = [ [[package]] name = "borsh-derive" -version = "1.5.4" +version = "1.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a396e17ad94059c650db3d253bb6e25927f1eb462eede7e7a153bb6e75dce0a7" +checksum = "f8b668d39970baad5356d7c83a86fee3a539e6f93bf6764c97368243e17a0487" dependencies = [ "once_cell", "proc-macro-crate", @@ -1561,7 +1544,7 @@ version = "9.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e11c675378efb449ed3ce8de78d75d0d80542fc98487c26aba28eb3b82feac72" dependencies = [ - "semver 1.0.24", + "semver 1.0.25", "serde", "toml 0.7.8", "url", @@ -1569,9 +1552,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.9" +version = "1.2.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8293772165d9345bdaaa39b45b2109591e63fe5e6fbc23c6ff930a048aa310b" +checksum = "13208fcbb66eaeffe09b99fffbe1af420f00a7b35aa99ad683dfc1aa76145229" dependencies = [ "jobserver", "libc", @@ -1633,9 +1616,9 @@ dependencies = [ [[package]] name = "chrono-tz" -version = "0.10.0" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd6dd8046d00723a59a2f8c5f295c515b9bb9a331ee4f8f3d4dd49e428acd3b6" +checksum = "9c6ac4f2c0bf0f44e9161aec9675e1050aa4a530663c4a9e37e108fa948bca9f" dependencies = [ "chrono", "chrono-tz-build 0.4.0", @@ -1685,9 +1668,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.26" +version = "4.5.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8eb5e908ef3a6efbe1ed62520fb7287959888c88485abe072543190ecc66783" +checksum = "769b0145982b4b48713e01ec42d61614425f27b7058bda7180a3a41f30104796" dependencies = [ "clap_builder", "clap_derive", @@ -1695,9 +1678,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.26" +version = "4.5.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96b01801b5fc6a0a232407abc821660c9c6d25a1cafc0d4f85f29fb8d9afc121" +checksum = "1b26884eb4b57140e4d2d93652abfa49498b938b3c9179f9fc487b0acc3edad7" dependencies = [ "anstream", "anstyle", @@ -1952,9 +1935,9 @@ dependencies = [ [[package]] name = "cron" -version = "0.14.0" +version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbe58904b68d95ad2c69a2e9607ffc70ce196c1910f83a340029c1448e06ed65" +checksum = "5877d3fbf742507b66bc2a1945106bd30dd8504019d596901ddd012a4dd01740" dependencies = [ "chrono", "once_cell", @@ -2102,6 +2085,16 @@ dependencies = [ "syn 2.0.96", ] +[[package]] +name = "darling" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a01d95850c592940db9b8194bc39f4bc0e89dee5c4265e4b1807c34a9aba453c" +dependencies = [ + "darling_core 0.13.4", + "darling_macro 0.13.4", +] + [[package]] name = "darling" version = "0.14.4" @@ -2122,6 +2115,20 @@ dependencies = [ "darling_macro 0.20.10", ] +[[package]] +name = "darling_core" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "859d65a907b6852c9361e3185c862aae7fafd2887876799fa55f5f99dc40d610" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2", + "quote", + "strsim 0.10.0", + "syn 1.0.109", +] + [[package]] name = "darling_core" version = "0.14.4" @@ -2150,6 +2157,17 @@ dependencies = [ "syn 2.0.96", ] +[[package]] +name = "darling_macro" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c972679f83bdf9c42bd905396b6c3588a843a17f0f16dfcfa3e2c5d57441835" +dependencies = [ + "darling_core 0.13.4", + "quote", + "syn 1.0.109", +] + [[package]] name = "darling_macro" version = "0.14.4" @@ -2187,9 +2205,9 @@ dependencies = [ [[package]] name = "data-encoding" -version = "2.6.0" +version = "2.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8566979429cf69b49a5c740c60791108e86440e8be149bbea4fe54d2c32d6e2" +checksum = "0e60eed09d8c01d3cee5b7d30acb059b76614c918fa0f992e0dd6eeb10daad6f" [[package]] name = "data-url" @@ -2231,7 +2249,7 @@ dependencies = [ "glob", "half", "hashbrown 0.14.5", - "indexmap 2.7.0", + "indexmap 2.7.1", "itertools 0.12.1", "log", "num_cpus", @@ -2246,7 +2264,7 @@ dependencies = [ "tokio", "tokio-util", "url", - "uuid 1.11.1", + "uuid 1.12.0", "xz2", "zstd", ] @@ -2346,7 +2364,7 @@ dependencies = [ "regex", "sha2 0.10.8", "unicode-segmentation", - "uuid 1.11.1", + "uuid 1.12.0", ] [[package]] @@ -2400,7 +2418,7 @@ dependencies = [ "datafusion-expr", "datafusion-physical-expr", "hashbrown 0.14.5", - "indexmap 2.7.0", + "indexmap 2.7.1", "itertools 0.12.1", "log", "regex-syntax 0.8.5", @@ -2429,7 +2447,7 @@ dependencies = [ "half", "hashbrown 0.14.5", "hex", - "indexmap 2.7.0", + "indexmap 2.7.1", "itertools 0.12.1", "log", "paste", @@ -2473,7 +2491,7 @@ dependencies = [ "futures", "half", "hashbrown 0.14.5", - "indexmap 2.7.0", + "indexmap 2.7.1", "itertools 0.12.1", "log", "once_cell", @@ -2513,7 +2531,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bef552e6f588e446098f6ba40d89ac146c8c7b64aade83c051ee00bb5d2bc18d" dependencies = [ "serde", - "uuid 1.11.1", + "uuid 1.12.0", ] [[package]] @@ -2582,7 +2600,7 @@ dependencies = [ "deno_ops", "deno_unsync", "futures", - "indexmap 2.7.0", + "indexmap 2.7.1", "libc", "memoffset", "parking_lot", @@ -2643,9 +2661,9 @@ dependencies = [ [[package]] name = "deno_media_type" -version = "0.2.3" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a417f8bd3f1074185c4c8ccb6ea6261ae173781596cc358e68ad07aaac11009d" +checksum = "577fe2bbe04f3e9b1b7c6fac6a75101a9fbd611c50a6b68789e69f4d63dcb2b4" dependencies = [ "data-url", "serde", @@ -2808,7 +2826,7 @@ dependencies = [ "serde", "thiserror 1.0.69", "tokio", - "uuid 1.11.1", + "uuid 1.12.0", ] [[package]] @@ -3172,18 +3190,18 @@ dependencies = [ [[package]] name = "enumflags2" -version = "0.7.10" +version = "0.7.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d232db7f5956f3f14313dc2f87985c58bd2c695ce124c8cdd984e08e15ac133d" +checksum = "ba2f4b465f5318854c6f8dd686ede6c0a9dc67d4b1ac241cf0eb51521a309147" dependencies = [ "enumflags2_derive", ] [[package]] name = "enumflags2_derive" -version = "0.7.10" +version = "0.7.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de0d48a183585823424a4ce1aa132d174a6a81bd540895822eb4c8373a8e49e8" +checksum = "fc4caf64a58d7a6d65ab00639b046ff54399a39f5f2554728895ace4b297cd79" dependencies = [ "proc-macro2", "quote", @@ -3328,7 +3346,7 @@ checksum = "c936bfdafb507ebbf50b8074c54fa31c5be9a1e7e5f467dd659697041407d07c" dependencies = [ "crc32fast", "libz-sys", - "miniz_oxide 0.8.2", + "miniz_oxide 0.8.3", ] [[package]] @@ -3847,7 +3865,7 @@ dependencies = [ "futures-sink", "futures-util", "http 0.2.12", - "indexmap 2.7.0", + "indexmap 2.7.1", "slab", "tokio", "tokio-util", @@ -3866,7 +3884,7 @@ dependencies = [ "futures-core", "futures-sink", "http 1.2.0", - "indexmap 2.7.0", + "indexmap 2.7.1", "slab", "tokio", "tokio-util", @@ -4535,9 +4553,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.7.0" +version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62f822373a4fe84d4bb149bf54e584a7f4abec90e072ed49cda0edea5b95471f" +checksum = "8c9c992b02b5b4c94ea26e32fe5bccb7aa7d9f390ab5c1221ff895bc7ea8b652" dependencies = [ "equivalent", "hashbrown 0.15.2", @@ -4595,9 +4613,9 @@ dependencies = [ [[package]] name = "ipnet" -version = "2.10.1" +version = "2.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddc24109865250148c2e0f3d25d4f0f479571723792d3802153c60922a4fb708" +checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130" [[package]] name = "is-macro" @@ -4706,7 +4724,7 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4ee7893dab2e44ae5f9d0173f26ff4aa327c10b01b06a72b52dd9405b628640d" dependencies = [ - "indexmap 2.7.0", + "indexmap 2.7.1", ] [[package]] @@ -4855,7 +4873,7 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" dependencies = [ - "bitflags 2.7.0", + "bitflags 2.8.0", "libc", "redox_syscall 0.5.8", ] @@ -4923,17 +4941,17 @@ dependencies = [ [[package]] name = "log" -version = "0.4.22" +version = "0.4.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" +checksum = "04cbf5b083de1c7e0222a7a51dbfdba1cbe1c6ab0b15e29fff3f6c077fd9cd9f" [[package]] name = "loki-api" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "674883a98273598ac3aad4301724c56734bea90574c5033af067e8f9fb5eb399" +checksum = "bdc38a304f59a03e6efa3876766a48c70a766a93f88341c3fff4212834b8e327" dependencies = [ - "prost 0.12.6", + "prost", "prost-types", ] @@ -5224,9 +5242,9 @@ dependencies = [ [[package]] name = "miniz_oxide" -version = "0.8.2" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ffbe83022cedc1d264172192511ae958937694cd57ce297164951b8b3568394" +checksum = "b8402cab7aefae129c6977bb0ff1b8fd9a04eb5b51efc50a70bea51cda0c7924" dependencies = [ "adler2", ] @@ -5337,13 +5355,12 @@ dependencies = [ [[package]] name = "mysql_common" -version = "0.34.0" +version = "0.34.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed90d09e2ca55764bf65030ff5a387fdee42282fe3b89a38fa8f96a809882bc1" +checksum = "34a9141e735d5bb02414a7ac03add09522466d4db65bdd827069f76ae0850e58" dependencies = [ "base64 0.22.1", - "bindgen 0.71.1", - "bitflags 2.7.0", + "bitflags 2.8.0", "btoi", "byteorder", "bytes", @@ -5365,7 +5382,7 @@ dependencies = [ "sha2 0.10.8", "subprocess", "thiserror 1.0.69", - "uuid 1.11.1", + "uuid 1.12.0", "zstd", ] @@ -5398,7 +5415,7 @@ version = "0.27.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053" dependencies = [ - "bitflags 2.7.0", + "bitflags 2.8.0", "cfg-if", "libc", ] @@ -5586,9 +5603,9 @@ checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3" [[package]] name = "oauth2" -version = "5.0.0-rc.1" +version = "5.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23d385da3c602d29036d2f70beed71c36604df7570be17fed4c5b839616785bf" +checksum = "51e219e79014df21a225b1860a479e2dcd7cbd9130f4defd4bd0e191ea31d67d" dependencies = [ "base64 0.22.1", "chrono", @@ -5643,6 +5660,15 @@ dependencies = [ "walkdir", ] +[[package]] +name = "odpic-sys" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "920b5474a5128a9f0232df5a0ffc50aaa5b077b29b8b06ab0131985ac82793ed" +dependencies = [ + "cc", +] + [[package]] name = "once_cell" version = "1.20.2" @@ -5696,9 +5722,9 @@ dependencies = [ [[package]] name = "openidconnect" -version = "4.0.0-rc.1" +version = "4.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a93a50789d0b649986bfb104cdef97736ca072d579ec88496d5c6f9abed0ea85" +checksum = "6dd50d4a5e7730e754f94d977efe61f611aadd3131f6a2b464f6e3a4167e8ef7" dependencies = [ "base64 0.21.7", "chrono", @@ -5731,7 +5757,7 @@ version = "0.10.68" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6174bc48f102d208783c2c84bf931bb75927a617866870de8a4ea85597f871f5" dependencies = [ - "bitflags 2.7.0", + "bitflags 2.8.0", "cfg-if", "foreign-types", "libc", @@ -5817,7 +5843,7 @@ dependencies = [ "opentelemetry", "opentelemetry-proto", "opentelemetry_sdk", - "prost 0.13.4", + "prost", "thiserror 1.0.69", "tokio", "tonic", @@ -5832,7 +5858,7 @@ checksum = "a6e05acbfada5ec79023c85368af14abd0b307c015e9064d249b2a950ef459a6" dependencies = [ "opentelemetry", "opentelemetry_sdk", - "prost 0.13.4", + "prost", "tonic", ] @@ -5869,6 +5895,33 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" +[[package]] +name = "oracle" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3db40fe6e4df881b683691ade5ef1f7b1afd52aefa115581f7b92855524d7ec0" +dependencies = [ + "cc", + "chrono", + "odpic-sys", + "once_cell", + "oracle_procmacro", + "paste", + "rustversion", +] + +[[package]] +name = "oracle_procmacro" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad247f3421d57de56a0d0408d3249d4b1048a522be2013656d92f022c3d8af27" +dependencies = [ + "darling 0.13.4", + "proc-macro2", + "quote", + "syn 1.0.109", +] + [[package]] name = "ordered-float" version = "2.10.1" @@ -5886,9 +5939,9 @@ checksum = "7f222829ae9293e33a9f5e9f440c6760a3d450a64affe1846486b140db81c1f4" [[package]] name = "outref" -version = "0.5.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4030760ffd992bef45b0ae3f10ce1aba99e33464c90d14dd7c039884963ddc7a" +checksum = "1a80800c0488c3a21695ea981a54918fbb37abf04f4d0720c453632255e2ff0e" [[package]] name = "overload" @@ -6067,7 +6120,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" dependencies = [ "fixedbitset", - "indexmap 2.7.0", + "indexmap 2.7.1", ] [[package]] @@ -6244,7 +6297,7 @@ dependencies = [ "postgres-protocol", "serde", "serde_json", - "uuid 1.11.1", + "uuid 1.12.0", ] [[package]] @@ -6452,16 +6505,6 @@ dependencies = [ "thiserror 1.0.69", ] -[[package]] -name = "prost" -version = "0.12.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "deb1435c188b76130da55f17a466d252ff7b1418b2ad3e037d127b94e3411f29" -dependencies = [ - "bytes", - "prost-derive 0.12.6", -] - [[package]] name = "prost" version = "0.13.4" @@ -6469,20 +6512,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2c0fef6c4230e4ccf618a35c59d7ede15dea37de8427500f50aff708806e42ec" dependencies = [ "bytes", - "prost-derive 0.13.4", -] - -[[package]] -name = "prost-derive" -version = "0.12.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81bddcdb20abf9501610992b6759a4c888aef7d1a7247ef75e2404275ac24af1" -dependencies = [ - "anyhow", - "itertools 0.12.1", - "proc-macro2", - "quote", - "syn 2.0.96", + "prost-derive", ] [[package]] @@ -6500,11 +6530,11 @@ dependencies = [ [[package]] name = "prost-types" -version = "0.12.6" +version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9091c90b0a32608e984ff2fa4091273cbdd755d54935c51d520887f4a1dbd5b0" +checksum = "cc2f1e56baa61e93533aebc21af4d2134b70f66275e0fcdf3cbe43d77ff7e8fc" dependencies = [ - "prost 0.12.6", + "prost", ] [[package]] @@ -6542,7 +6572,7 @@ version = "0.9.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "57206b407293d2bcd3af849ce869d52068623f19e1b5ff8e8778e3309439682b" dependencies = [ - "bitflags 2.7.0", + "bitflags 2.8.0", "getopts", "memchr", "unicase", @@ -6839,7 +6869,7 @@ version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "03a862b389f93e68874fbf580b9de08dd02facb9a788ebadaf4a3fd33cf58834" dependencies = [ - "bitflags 2.7.0", + "bitflags 2.8.0", ] [[package]] @@ -7093,7 +7123,7 @@ dependencies = [ "rkyv_derive", "seahash", "tinyvec", - "uuid 1.11.1", + "uuid 1.12.0", ] [[package]] @@ -7222,7 +7252,7 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" dependencies = [ - "semver 1.0.24", + "semver 1.0.25", ] [[package]] @@ -7244,7 +7274,7 @@ version = "0.38.43" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a78891ee6bf2340288408954ac787aa063d8e8817e9f53abb37c695c6d834ef6" dependencies = [ - "bitflags 2.7.0", + "bitflags 2.8.0", "errno", "libc", "linux-raw-sys", @@ -7484,7 +7514,7 @@ dependencies = [ "serde", "thiserror 1.0.69", "url", - "uuid 1.11.1", + "uuid 1.12.0", ] [[package]] @@ -7522,7 +7552,7 @@ dependencies = [ "schemars_derive", "serde", "serde_json", - "uuid 1.11.1", + "uuid 1.12.0", ] [[package]] @@ -7585,7 +7615,7 @@ version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" dependencies = [ - "bitflags 2.7.0", + "bitflags 2.8.0", "core-foundation 0.9.4", "core-foundation-sys", "libc", @@ -7598,7 +7628,7 @@ version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "271720403f46ca04f7ba6f55d438f8bd878d6b8ca0a1046e8228c4145bcbb316" dependencies = [ - "bitflags 2.7.0", + "bitflags 2.8.0", "core-foundation 0.10.0", "core-foundation-sys", "libc", @@ -7626,9 +7656,9 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.24" +version = "1.0.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3cb6eb87a131f756572d7fb904f6e7b68633f09cca868c5df1c4b8d1a694bbba" +checksum = "f79dfe2d285b0488816f30e700a7438c5a73d816b5b7d3ac72fbc48b0d185e03" dependencies = [ "serde", ] @@ -7710,11 +7740,11 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.135" +version = "1.0.137" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b0d7ba2887406110130a978386c4e1befb98c674b4fba677954e4db976630d9" +checksum = "930cfb6e6abf99298aaad7d29abbef7a9999a9a8806a40088f55f0dcec03146b" dependencies = [ - "indexmap 2.7.0", + "indexmap 2.7.1", "itoa", "memchr", "ryu", @@ -7838,7 +7868,7 @@ dependencies = [ "chrono", "hex", "indexmap 1.9.3", - "indexmap 2.7.0", + "indexmap 2.7.1", "serde", "serde_derive", "serde_json", @@ -7864,7 +7894,7 @@ version = "0.9.34+deprecated" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47" dependencies = [ - "indexmap 2.7.0", + "indexmap 2.7.1", "itoa", "ryu", "serde", @@ -8240,7 +8270,7 @@ dependencies = [ "futures-util", "hashbrown 0.15.2", "hashlink", - "indexmap 2.7.0", + "indexmap 2.7.1", "log", "memchr", "once_cell", @@ -8256,7 +8286,7 @@ dependencies = [ "tokio-stream", "tracing", "url", - "uuid 1.11.1", + "uuid 1.12.0", "webpki-roots", ] @@ -8308,7 +8338,7 @@ dependencies = [ "atoi", "base64 0.22.1", "bigdecimal", - "bitflags 2.7.0", + "bitflags 2.8.0", "byteorder", "bytes", "chrono", @@ -8340,7 +8370,7 @@ dependencies = [ "stringprep", "thiserror 2.0.11", "tracing", - "uuid 1.11.1", + "uuid 1.12.0", "whoami", ] @@ -8353,7 +8383,7 @@ dependencies = [ "atoi", "base64 0.22.1", "bigdecimal", - "bitflags 2.7.0", + "bitflags 2.8.0", "byteorder", "chrono", "crc", @@ -8381,7 +8411,7 @@ dependencies = [ "stringprep", "thiserror 2.0.11", "tracing", - "uuid 1.11.1", + "uuid 1.12.0", "whoami", ] @@ -8407,7 +8437,7 @@ dependencies = [ "sqlx-core", "tracing", "url", - "uuid 1.11.1", + "uuid 1.12.0", ] [[package]] @@ -8609,7 +8639,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4740e53eaf68b101203c1df0937d5161a29f3c13bceed0836ddfe245b72dd000" dependencies = [ "anyhow", - "indexmap 2.7.0", + "indexmap 2.7.1", "serde", "serde_json", "swc_cached", @@ -8634,7 +8664,7 @@ version = "0.118.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a6f866d12e4d519052b92a0a86d1ac7ff17570da1272ca0c89b3d6f802cd79df" dependencies = [ - "bitflags 2.7.0", + "bitflags 2.8.0", "is-macro", "num-bigint", "phf", @@ -8720,8 +8750,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "65f21494e75d0bd8ef42010b47cabab9caaed8f2207570e809f6f4eb51a710d1" dependencies = [ "better_scoped_tls", - "bitflags 2.7.0", - "indexmap 2.7.0", + "bitflags 2.8.0", + "indexmap 2.7.1", "once_cell", "phf", "rustc-hash 1.1.0", @@ -8790,7 +8820,7 @@ checksum = "76c76d8b9792ce51401d38da0fa62158d61f6d80d16d68fe5b03ce4bf5fba383" dependencies = [ "base64 0.21.7", "dashmap", - "indexmap 2.7.0", + "indexmap 2.7.1", "once_cell", "serde", "sha1", @@ -8830,7 +8860,7 @@ version = "0.134.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "029eec7dd485923a75b5a45befd04510288870250270292fc2c1b3a9e7547408" dependencies = [ - "indexmap 2.7.0", + "indexmap 2.7.1", "num_cpus", "once_cell", "rustc-hash 1.1.0", @@ -8957,7 +8987,7 @@ version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec7dddc5f0fee506baf8b9fdb989e242f17e4b11c61dfbb0635b705217199eea" dependencies = [ - "bitflags 2.7.0", + "bitflags 2.8.0", "byteorder", "enum-as-inner", "libc", @@ -8982,7 +9012,7 @@ version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" dependencies = [ - "bitflags 2.7.0", + "bitflags 2.8.0", "core-foundation 0.9.4", "system-configuration-sys 0.6.0", ] @@ -9054,7 +9084,7 @@ dependencies = [ "tempfile", "thiserror 1.0.69", "time", - "uuid 1.11.1", + "uuid 1.12.0", "winapi", ] @@ -9284,7 +9314,7 @@ dependencies = [ "tokio-rustls 0.24.1", "tokio-util", "tracing", - "uuid 1.11.1", + "uuid 1.12.0", ] [[package]] @@ -9654,7 +9684,7 @@ version = "0.19.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" dependencies = [ - "indexmap 2.7.0", + "indexmap 2.7.1", "serde", "serde_spanned", "toml_datetime", @@ -9667,7 +9697,7 @@ version = "0.22.22" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4ae48d6208a266e853d946088ed816055e556cc6028c5e8e2b84d9fa5dd7c7f5" dependencies = [ - "indexmap 2.7.0", + "indexmap 2.7.1", "serde", "serde_spanned", "toml_datetime", @@ -9694,7 +9724,7 @@ dependencies = [ "hyper-util", "percent-encoding", "pin-project", - "prost 0.13.4", + "prost", "rustls-native-certs 0.8.1", "rustls-pemfile 2.2.0", "socket2", @@ -9716,7 +9746,7 @@ dependencies = [ "home", "once_cell", "regex", - "semver 1.0.24", + "semver 1.0.25", "walkdir", ] @@ -9780,7 +9810,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "403fa3b783d4b626a8ad51d766ab03cb6d2dbfc46b1c5d4448395e6628dc9697" dependencies = [ "async-compression", - "bitflags 2.7.0", + "bitflags 2.8.0", "bytes", "futures-core", "http 1.2.0", @@ -9861,17 +9891,6 @@ dependencies = [ "tracing", ] -[[package]] -name = "tracing-log" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f751112709b4e791d8ce53e32c4ed2d353565a795ce84da2285393f41557bdf2" -dependencies = [ - "log", - "once_cell", - "tracing-core", -] - [[package]] name = "tracing-log" version = "0.2.0" @@ -9885,9 +9904,9 @@ dependencies = [ [[package]] name = "tracing-loki" -version = "0.2.5" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fea6023f9fe4b69267ccd3ed7d203d931c43c5f82dbaa0f07202bc17193a5f43" +checksum = "ba3beec919fbdf99d719de8eda6adae3281f8a5b71ae40431f44dc7423053d34" dependencies = [ "loki-api", "reqwest 0.12.9", @@ -9898,8 +9917,8 @@ dependencies = [ "tokio-stream", "tracing", "tracing-core", - "tracing-log 0.1.4", - "tracing-serde 0.1.3", + "tracing-log", + "tracing-serde", "tracing-subscriber", "url", ] @@ -9917,21 +9936,11 @@ dependencies = [ "smallvec", "tracing", "tracing-core", - "tracing-log 0.2.0", + "tracing-log", "tracing-subscriber", "web-time", ] -[[package]] -name = "tracing-serde" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc6b213177105856957181934e4920de57730fc69bf42c37ee5bb664d406d9e1" -dependencies = [ - "serde", - "tracing-core", -] - [[package]] name = "tracing-serde" version = "0.2.0" @@ -9959,8 +9968,8 @@ dependencies = [ "thread_local", "tracing", "tracing-core", - "tracing-log 0.2.0", - "tracing-serde 0.2.0", + "tracing-log", + "tracing-serde", ] [[package]] @@ -10116,7 +10125,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f294bff79170ed1c5633812aff1e565c35d993a36e757f9bc0accf5eec4e6045" dependencies = [ "rand 0.8.5", - "uuid 1.11.1", + "uuid 1.12.0", "web-time", ] @@ -10398,9 +10407,9 @@ dependencies = [ [[package]] name = "uuid" -version = "1.11.1" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b913a3b5fe84142e269d63cc62b64319ccaf89b748fc31fe025177f767a756c4" +checksum = "744018581f9a3454a9e15beb8a33b017183f1e7c0cd170232a2d1453b23a51c4" dependencies = [ "getrandom 0.2.15", "serde", @@ -10413,7 +10422,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a511192602f7b435b0a241c1947aa743eb7717f20a9195f4b5e8ed1952e01db1" dependencies = [ "bindgen 0.70.1", - "bitflags 2.7.0", + "bitflags 2.8.0", "fslock", "gzip-header", "home", @@ -10425,9 +10434,9 @@ dependencies = [ [[package]] name = "valuable" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" +checksum = "ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65" [[package]] name = "vcpkg" @@ -10715,7 +10724,7 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "windmill" -version = "1.445.1" +version = "1.447.6" dependencies = [ "anyhow", "axum", @@ -10743,7 +10752,7 @@ dependencies = [ "tokio", "tracing", "url", - "uuid 1.11.1", + "uuid 1.12.0", "windmill-api", "windmill-api-client", "windmill-autoscaling", @@ -10756,7 +10765,7 @@ dependencies = [ [[package]] name = "windmill-api" -version = "1.445.1" +version = "1.447.6" dependencies = [ "anyhow", "argon2", @@ -10774,7 +10783,7 @@ dependencies = [ "candle-nn", "candle-transformers", "chrono", - "chrono-tz 0.10.0", + "chrono-tz 0.10.1", "const_format", "cookie 0.17.0", "cron", @@ -10831,7 +10840,7 @@ dependencies = [ "ulid", "url", "urlencoding", - "uuid 1.11.1", + "uuid 1.12.0", "windmill-audit", "windmill-common", "windmill-git-sync", @@ -10843,7 +10852,7 @@ dependencies = [ [[package]] name = "windmill-api-client" -version = "1.445.1" +version = "1.447.6" dependencies = [ "base64 0.22.1", "chrono", @@ -10856,12 +10865,12 @@ dependencies = [ "serde", "serde_json", "syn 1.0.109", - "uuid 1.11.1", + "uuid 1.12.0", ] [[package]] name = "windmill-audit" -version = "1.445.1" +version = "1.447.6" dependencies = [ "chrono", "serde", @@ -10874,21 +10883,21 @@ dependencies = [ [[package]] name = "windmill-autoscaling" -version = "1.445.1" +version = "1.447.6" dependencies = [ "anyhow", "serde", "serde_json", "sqlx", "tracing", - "uuid 1.11.1", + "uuid 1.12.0", "windmill-common", "windmill-queue", ] [[package]] name = "windmill-common" -version = "1.445.1" +version = "1.447.6" dependencies = [ "anyhow", "async-stream", @@ -10897,7 +10906,7 @@ dependencies = [ "axum", "bytes", "chrono", - "chrono-tz 0.10.0", + "chrono-tz 0.10.1", "const_format", "crc", "cron", @@ -10909,7 +10918,7 @@ dependencies = [ "hex", "hmac", "hyper 1.5.2", - "indexmap 2.7.0", + "indexmap 2.7.1", "itertools 0.14.0", "lazy_static", "magic-crypt", @@ -10926,7 +10935,7 @@ dependencies = [ "rand 0.8.5", "regex", "reqwest 0.12.9", - "semver 1.0.24", + "semver 1.0.25", "serde", "serde_json", "sha2 0.10.8", @@ -10941,27 +10950,27 @@ dependencies = [ "tracing-loki", "tracing-opentelemetry", "tracing-subscriber", - "uuid 1.11.1", + "uuid 1.12.0", "windmill-macros", ] [[package]] name = "windmill-git-sync" -version = "1.445.1" +version = "1.447.6" dependencies = [ "regex", "serde", "serde_json", "sqlx", "tracing", - "uuid 1.11.1", + "uuid 1.12.0", "windmill-common", "windmill-queue", ] [[package]] name = "windmill-indexer" -version = "1.445.1" +version = "1.447.6" dependencies = [ "anyhow", "bytes", @@ -10978,13 +10987,13 @@ dependencies = [ "tokio", "tokio-tar", "tracing", - "uuid 1.11.1", + "uuid 1.12.0", "windmill-common", ] [[package]] name = "windmill-macros" -version = "1.445.1" +version = "1.447.6" dependencies = [ "itertools 0.14.0", "lazy_static", @@ -10996,7 +11005,7 @@ dependencies = [ [[package]] name = "windmill-parser" -version = "1.445.1" +version = "1.447.6" dependencies = [ "convert_case 0.6.0", "serde", @@ -11005,7 +11014,7 @@ dependencies = [ [[package]] name = "windmill-parser-bash" -version = "1.445.1" +version = "1.447.6" dependencies = [ "anyhow", "lazy_static", @@ -11017,7 +11026,7 @@ dependencies = [ [[package]] name = "windmill-parser-csharp" -version = "1.445.1" +version = "1.447.6" dependencies = [ "anyhow", "serde_json", @@ -11029,7 +11038,7 @@ dependencies = [ [[package]] name = "windmill-parser-go" -version = "1.445.1" +version = "1.447.6" dependencies = [ "anyhow", "gosyn", @@ -11041,7 +11050,7 @@ dependencies = [ [[package]] name = "windmill-parser-graphql" -version = "1.445.1" +version = "1.447.6" dependencies = [ "anyhow", "lazy_static", @@ -11053,7 +11062,7 @@ dependencies = [ [[package]] name = "windmill-parser-php" -version = "1.445.1" +version = "1.447.6" dependencies = [ "anyhow", "itertools 0.14.0", @@ -11064,7 +11073,7 @@ dependencies = [ [[package]] name = "windmill-parser-py" -version = "1.445.1" +version = "1.447.6" dependencies = [ "anyhow", "itertools 0.14.0", @@ -11075,7 +11084,7 @@ dependencies = [ [[package]] name = "windmill-parser-py-imports" -version = "1.445.1" +version = "1.447.6" dependencies = [ "anyhow", "async-recursion", @@ -11093,7 +11102,7 @@ dependencies = [ [[package]] name = "windmill-parser-rust" -version = "1.445.1" +version = "1.447.6" dependencies = [ "anyhow", "convert_case 0.6.0", @@ -11110,7 +11119,7 @@ dependencies = [ [[package]] name = "windmill-parser-sql" -version = "1.445.1" +version = "1.447.6" dependencies = [ "anyhow", "lazy_static", @@ -11122,7 +11131,7 @@ dependencies = [ [[package]] name = "windmill-parser-ts" -version = "1.445.1" +version = "1.447.6" dependencies = [ "anyhow", "lazy_static", @@ -11140,7 +11149,7 @@ dependencies = [ [[package]] name = "windmill-parser-wasm" -version = "1.445.1" +version = "1.447.6" dependencies = [ "anyhow", "getrandom 0.2.15", @@ -11162,7 +11171,7 @@ dependencies = [ [[package]] name = "windmill-parser-yaml" -version = "1.445.1" +version = "1.447.6" dependencies = [ "anyhow", "serde_json", @@ -11172,7 +11181,7 @@ dependencies = [ [[package]] name = "windmill-queue" -version = "1.445.1" +version = "1.447.6" dependencies = [ "anyhow", "async-recursion", @@ -11180,7 +11189,7 @@ dependencies = [ "backon", "bigdecimal", "chrono", - "chrono-tz 0.10.0", + "chrono-tz 0.10.1", "cron", "futures", "futures-core", @@ -11199,14 +11208,14 @@ dependencies = [ "tokio", "tracing", "ulid", - "uuid 1.11.1", + "uuid 1.12.0", "windmill-audit", "windmill-common", ] [[package]] name = "windmill-sql-datatype-parser-wasm" -version = "1.445.1" +version = "1.447.6" dependencies = [ "wasm-bindgen", "wasm-bindgen-test", @@ -11216,7 +11225,7 @@ dependencies = [ [[package]] name = "windmill-worker" -version = "1.445.1" +version = "1.447.6" dependencies = [ "anyhow", "async-recursion", @@ -11254,6 +11263,7 @@ dependencies = [ "object_store", "once_cell", "opentelemetry", + "oracle", "pem 3.0.4", "postgres-native-tls", "prometheus", @@ -11272,7 +11282,7 @@ dependencies = [ "tokio-util", "tracing", "urlencoding", - "uuid 1.11.1", + "uuid 1.12.0", "windmill-audit", "windmill-common", "windmill-git-sync", diff --git a/backend/Cargo.toml b/backend/Cargo.toml index 6f73d349ce..88596c50d9 100644 --- a/backend/Cargo.toml +++ b/backend/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "windmill" -version = "1.445.1" +version = "1.447.6" authors.workspace = true edition.workspace = true @@ -30,7 +30,7 @@ members = [ ] [workspace.package] -version = "1.445.1" +version = "1.447.6" authors = ["Ruben Fiszel "] edition = "2021" @@ -69,6 +69,7 @@ dind = ["windmill-worker/dind"] php = ["windmill-worker/php"] rust = ["windmill-worker/rust"] mysql = ["windmill-worker/mysql"] +oracledb = ["windmill-worker/oracledb"] mssql = ["windmill-worker/mssql"] bigquery = ["windmill-worker/bigquery"] websocket = ["windmill-api/websocket"] @@ -333,3 +334,4 @@ yaml-rust = "0.4.5" tokio-tungstenite = { version = "0.24.0", features = ["native-tls"] } tree-sitter = {version = "0.23.0", features = []} tree-sitter-c-sharp = "0.23.0" +oracle = { version = "0.6.3", features = ["chrono"] } diff --git a/backend/ee-repo-ref.txt b/backend/ee-repo-ref.txt index 6620861be8..2f8cf983a0 100644 --- a/backend/ee-repo-ref.txt +++ b/backend/ee-repo-ref.txt @@ -1 +1 @@ -9cea7e44f1b6401662e22088b41e8a00d7e67b23 \ No newline at end of file +ddcfdfc18a9833a5fc4e62ad62a265ef1e06a0aa \ No newline at end of file diff --git a/backend/migrations/20250110123428_oracledb_support.down.sql b/backend/migrations/20250110123428_oracledb_support.down.sql new file mode 100644 index 0000000000..d2f607c5b8 --- /dev/null +++ b/backend/migrations/20250110123428_oracledb_support.down.sql @@ -0,0 +1 @@ +-- Add down migration script here diff --git a/backend/migrations/20250110123428_oracledb_support.up.sql b/backend/migrations/20250110123428_oracledb_support.up.sql new file mode 100644 index 0000000000..3e9da56859 --- /dev/null +++ b/backend/migrations/20250110123428_oracledb_support.up.sql @@ -0,0 +1,3 @@ +-- Add up migration script here +ALTER TYPE SCRIPT_LANG ADD VALUE IF NOT EXISTS 'oracledb'; +UPDATE config set config = jsonb_set(config, '{worker_tags}', config->'worker_tags' || '["oracledb"]'::jsonb) where name = 'worker__native' and config @> '{"worker_tags": ["deno", "python3", "go", "bash", "powershell", "dependency", "flow", "hub", "other", "bun", "php", "rust", "ansible", "csharp"]}'::jsonb AND NOT config->'worker_tags' @> '"oracledb"'::jsonb; diff --git a/backend/migrations/20250113154322_runnable_on_behalf_of.down.sql b/backend/migrations/20250113154322_runnable_on_behalf_of.down.sql new file mode 100644 index 0000000000..ec1da37b8f --- /dev/null +++ b/backend/migrations/20250113154322_runnable_on_behalf_of.down.sql @@ -0,0 +1,3 @@ +-- Add down migration script here +alter table script drop column on_behalf_of_email; +alter table flow drop column on_behalf_of_email; diff --git a/backend/migrations/20250113154322_runnable_on_behalf_of.up.sql b/backend/migrations/20250113154322_runnable_on_behalf_of.up.sql new file mode 100644 index 0000000000..8e237c1dca --- /dev/null +++ b/backend/migrations/20250113154322_runnable_on_behalf_of.up.sql @@ -0,0 +1,3 @@ +-- Add up migration script here +ALTER TABLE script ADD COLUMN on_behalf_of_email TEXT; +ALTER TABLE flow ADD COLUMN on_behalf_of_email TEXT; \ No newline at end of file diff --git a/backend/migrations/20250116084044_fix_capture_policy.down.sql b/backend/migrations/20250116084044_fix_capture_policy.down.sql new file mode 100644 index 0000000000..a4cb88687c --- /dev/null +++ b/backend/migrations/20250116084044_fix_capture_policy.down.sql @@ -0,0 +1,16 @@ +-- Add down migration script here +DROP POLICY admin_policy ON capture_config; +DROP POLICY see_folder_extra_perms_user_select ON capture_config; +DROP POLICY see_folder_extra_perms_user_insert ON capture_config; +DROP POLICY see_folder_extra_perms_user_update ON capture_config; +DROP POLICY see_folder_extra_perms_user_delete ON capture_config; +DROP POLICY see_own ON capture_config; +DROP POLICY see_member ON capture_config; + + +DROP POLICY see_folder_extra_perms_user_select ON capture; +DROP POLICY see_folder_extra_perms_user_insert ON capture; +DROP POLICY see_folder_extra_perms_user_update ON capture; +DROP POLICY see_folder_extra_perms_user_delete ON capture; +DROP POLICY see_own ON capture; +DROP POLICY see_member ON capture; diff --git a/backend/migrations/20250116084044_fix_capture_policy.up.sql b/backend/migrations/20250116084044_fix_capture_policy.up.sql new file mode 100644 index 0000000000..d7b241c6e9 --- /dev/null +++ b/backend/migrations/20250116084044_fix_capture_policy.up.sql @@ -0,0 +1,30 @@ +-- capture config +CREATE POLICY admin_policy ON capture_config FOR ALL TO windmill_admin USING (true); +CREATE POLICY see_folder_extra_perms_user_select ON capture_config FOR SELECT TO windmill_user +USING (SPLIT_PART(capture_config.path, '/', 1) = 'f' AND SPLIT_PART(capture_config.path, '/', 2) = any(regexp_split_to_array(current_setting('session.folders_read'), ',')::text[])); +CREATE POLICY see_folder_extra_perms_user_insert ON capture_config FOR INSERT TO windmill_user +WITH CHECK (SPLIT_PART(capture_config.path, '/', 1) = 'f' AND SPLIT_PART(capture_config.path, '/', 2) = any(regexp_split_to_array(current_setting('session.folders_write'), ',')::text[])); +CREATE POLICY see_folder_extra_perms_user_update ON capture_config FOR UPDATE TO windmill_user +USING (SPLIT_PART(capture_config.path, '/', 1) = 'f' AND SPLIT_PART(capture_config.path, '/', 2) = any(regexp_split_to_array(current_setting('session.folders_write'), ',')::text[])); +CREATE POLICY see_folder_extra_perms_user_delete ON capture_config FOR DELETE TO windmill_user +USING (SPLIT_PART(capture_config.path, '/', 1) = 'f' AND SPLIT_PART(capture_config.path, '/', 2) = any(regexp_split_to_array(current_setting('session.folders_write'), ',')::text[])); +CREATE POLICY see_own ON capture_config FOR ALL TO windmill_user +USING (SPLIT_PART(capture_config.path, '/', 1) = 'u' AND SPLIT_PART(capture_config.path, '/', 2) = current_setting('session.user')); +CREATE POLICY see_member ON capture_config FOR ALL TO windmill_user +USING (SPLIT_PART(capture_config.path, '/', 1) = 'g' AND SPLIT_PART(capture_config.path, '/', 2) = any(regexp_split_to_array(current_setting('session.groups'), ',')::text[])); + + +-- capture +CREATE POLICY see_folder_extra_perms_user_select ON capture FOR SELECT TO windmill_user +USING (SPLIT_PART(capture.path, '/', 1) = 'f' AND SPLIT_PART(capture.path, '/', 2) = any(regexp_split_to_array(current_setting('session.folders_read'), ',')::text[])); +CREATE POLICY see_folder_extra_perms_user_insert ON capture FOR INSERT TO windmill_user +WITH CHECK (SPLIT_PART(capture.path, '/', 1) = 'f' AND SPLIT_PART(capture.path, '/', 2) = any(regexp_split_to_array(current_setting('session.folders_write'), ',')::text[])); +CREATE POLICY see_folder_extra_perms_user_update ON capture FOR UPDATE TO windmill_user +USING (SPLIT_PART(capture.path, '/', 1) = 'f' AND SPLIT_PART(capture.path, '/', 2) = any(regexp_split_to_array(current_setting('session.folders_write'), ',')::text[])); +CREATE POLICY see_folder_extra_perms_user_delete ON capture FOR DELETE TO windmill_user +USING (SPLIT_PART(capture.path, '/', 1) = 'f' AND SPLIT_PART(capture.path, '/', 2) = any(regexp_split_to_array(current_setting('session.folders_write'), ',')::text[])); +CREATE POLICY see_own ON capture FOR ALL TO windmill_user +USING (SPLIT_PART(capture.path, '/', 1) = 'u' AND SPLIT_PART(capture.path, '/', 2) = current_setting('session.user')); +CREATE POLICY see_member ON capture FOR ALL TO windmill_user +USING (SPLIT_PART(capture.path, '/', 1) = 'g' AND SPLIT_PART(capture.path, '/', 2) = any(regexp_split_to_array(current_setting('session.groups'), ',')::text[])); + diff --git a/backend/migrations/20250116154037_cloud_team_threshold_alert.down.sql b/backend/migrations/20250116154037_cloud_team_threshold_alert.down.sql new file mode 100644 index 0000000000..786105bfb3 --- /dev/null +++ b/backend/migrations/20250116154037_cloud_team_threshold_alert.down.sql @@ -0,0 +1 @@ +DROP TABLE IF EXISTS cloud_workspace_settings; \ No newline at end of file diff --git a/backend/migrations/20250116154037_cloud_team_threshold_alert.up.sql b/backend/migrations/20250116154037_cloud_team_threshold_alert.up.sql new file mode 100644 index 0000000000..430f84f233 --- /dev/null +++ b/backend/migrations/20250116154037_cloud_team_threshold_alert.up.sql @@ -0,0 +1,7 @@ +CREATE TABLE IF NOT EXISTS cloud_workspace_settings ( + workspace_id VARCHAR(50) NOT NULL, + threshold_alert_amount INT NULL, + last_alert_sent TIMESTAMP NULL, + PRIMARY KEY (workspace_id), + FOREIGN KEY (workspace_id) REFERENCES workspace(id) ON DELETE CASCADE +) \ No newline at end of file diff --git a/backend/package-lock.json b/backend/package-lock.json new file mode 100644 index 0000000000..dfb18f1156 --- /dev/null +++ b/backend/package-lock.json @@ -0,0 +1,6 @@ +{ + "name": "backend", + "lockfileVersion": 3, + "requires": true, + "packages": {} +} diff --git a/backend/parsers/windmill-parser-sql/src/lib.rs b/backend/parsers/windmill-parser-sql/src/lib.rs index dd6bc2b955..f5ddb73151 100644 --- a/backend/parsers/windmill-parser-sql/src/lib.rs +++ b/backend/parsers/windmill-parser-sql/src/lib.rs @@ -32,6 +32,22 @@ pub fn parse_mysql_sig(code: &str) -> anyhow::Result { } } +pub fn parse_oracledb_sig(code: &str) -> anyhow::Result { + let parsed = parse_oracledb_file(&code)?; + if let Some(x) = parsed { + let args = x; + Ok(MainArgSignature { + star_args: false, + star_kwargs: false, + args, + no_main_func: None, + has_preprocessor: None, + }) + } else { + Err(anyhow!("Error parsing sql".to_string())) + } +} + pub fn parse_pgsql_sig(code: &str) -> anyhow::Result { let parsed = parse_pg_file(&code)?; if let Some(x) = parsed { @@ -157,6 +173,61 @@ fn parsed_default(parsed_typ: &Typ, default: String) -> Option Some(json!(default)), } } + +fn parse_oracledb_file(code: &str) -> anyhow::Result>> { + let mut args: Vec = vec![]; + + let mut using_named_args = false; + for cap in RE_ARG_MYSQL_NAMED.captures_iter(code) { + using_named_args = true; + let name = cap.get(1).map(|x| x.as_str().to_string()).unwrap(); + let typ = cap + .get(2) + .map(|x| x.as_str().to_string().to_lowercase()) + .unwrap(); + let default = cap.get(3).map(|x| x.as_str().to_string()); + let has_default = default.is_some(); + let parsed_typ = parse_oracledb_typ(typ.as_str()); + + let parsed_default = default.and_then(|x| parsed_default(&parsed_typ, x)); + args.push(Arg { + name, + typ: parsed_typ, + default: parsed_default, + otyp: Some(typ), + has_default, + oidx: None, + }); + } + + if !using_named_args { + // backwards compatibility + for cap in RE_ARG_MYSQL.captures_iter(code) { + let name = cap.get(1).map(|x| x.as_str().to_string()).unwrap(); + let typ = cap + .get(2) + .map(|x| x.as_str().to_string().to_lowercase()) + .unwrap(); + let default = cap.get(3).map(|x| x.as_str().to_string()); + let has_default = default.is_some(); + let parsed_typ = parse_oracledb_typ(typ.as_str()); + + let parsed_default = default.and_then(|x| parsed_default(&parsed_typ, x)); + + args.push(Arg { + name, + typ: parsed_typ, + default: parsed_default, + otyp: Some(typ), + has_default, + oidx: None, + }); + } + } + + Ok(Some(args)) +} + fn parse_mysql_file(code: &str) -> anyhow::Result>> { let mut args: Vec = vec![]; @@ -486,6 +557,18 @@ pub fn parse_mysql_typ(typ: &str) -> Typ { } } +pub fn parse_oracledb_typ(typ: &str) -> Typ { + match typ { + "varchar" | "nvarchar" | "varchar2" | "char" | "nchar" | "nvarchar2" | "clob" | "blob" + | "nclob" => Typ::Str(None), + "integer" | "int" | "long" | "rowid" | "urowid" => Typ::Int, + "bool" => Typ::Bool, + "number" | "float" | "binary_float" | "binary_double" => Typ::Float, + "date" | "datetime" | "timestamp" | "time" => Typ::Datetime, + _ => Typ::Str(None), + } +} + pub fn parse_pg_typ(typ: &str) -> Typ { if typ.ends_with("[]") { let base_typ = parse_pg_typ(typ.strip_suffix("[]").unwrap()); @@ -923,11 +1006,11 @@ SELECT ?; #[test] fn test_parse_mssql_sig() -> anyhow::Result<()> { let code = r#" --- @p1 param1 (int) = 3 --- @p2 param2 (varchar) --- @p3 param3 (varchar) -SELECT @p3, @p1; -SELECT @p2; +-- @P1 param1 (int) = 3 +-- @P2 param2 (varchar) +-- @P3 param3 (varchar) +SELECT @P3, @P1; +SELECT @P2; "#; assert_eq!( parse_mssql_sig(code)?, diff --git a/backend/parsers/windmill-parser-ts/src/lib.rs b/backend/parsers/windmill-parser-ts/src/lib.rs index d68b2eeb6e..f69169c0e2 100644 --- a/backend/parsers/windmill-parser-ts/src/lib.rs +++ b/backend/parsers/windmill-parser-ts/src/lib.rs @@ -71,7 +71,9 @@ pub fn parse_expr_for_imports(code: &str) -> anyhow::Result> { let mut visitor = ImportsFinder { imports: HashSet::new() }; visitor.visit_module(&expr); - Ok(visitor.imports.into_iter().collect()) + let mut imports: Vec<_> = visitor.imports.into_iter().collect(); + imports.sort(); + Ok(imports) } struct OutputFinder { diff --git a/backend/parsers/windmill-parser-wasm/src/lib.rs b/backend/parsers/windmill-parser-wasm/src/lib.rs index 50ebf232ac..e3de739f96 100644 --- a/backend/parsers/windmill-parser-wasm/src/lib.rs +++ b/backend/parsers/windmill-parser-wasm/src/lib.rs @@ -88,6 +88,12 @@ pub fn parse_mysql(code: &str) -> String { wrap_sig(windmill_parser_sql::parse_mysql_sig(code)) } +#[cfg(feature = "sql-parser")] +#[wasm_bindgen] +pub fn parse_oracledb(code: &str) -> String { + wrap_sig(windmill_parser_sql::parse_oracledb_sig(code)) +} + #[cfg(feature = "sql-parser")] #[wasm_bindgen] pub fn parse_bigquery(code: &str) -> String { diff --git a/backend/tests/worker.rs b/backend/tests/worker.rs index adb0e5ccff..7bb71416c7 100644 --- a/backend/tests/worker.rs +++ b/backend/tests/worker.rs @@ -2874,6 +2874,7 @@ async fn test_flow_lock_all(db: Pool) { dedicated_worker: None, timeout: None, visible_to_runner_only: None, + on_behalf_of_email: None, }, draft_only: None, deployment_message: None, @@ -3473,6 +3474,7 @@ async fn run_deployed_relative_imports( no_main_func: None, codebase: None, has_preprocessor: None, + on_behalf_of_email: None, }, ) .await diff --git a/backend/windmill-api/openapi.yaml b/backend/windmill-api/openapi.yaml index 2cdb7f1ef1..21e985bd51 100644 --- a/backend/windmill-api/openapi.yaml +++ b/backend/windmill-api/openapi.yaml @@ -1,7 +1,7 @@ openapi: "3.0.3" info: - version: 1.445.1 + version: 1.447.6 title: Windmill API contact: @@ -1812,10 +1812,12 @@ paths: type: number automatic_billing: type: boolean + owner: + type: string required: - premium - automatic_billing - + - owner /w/{workspace}/workspaces/set_automatic_billing: post: summary: set automatic billing @@ -1847,6 +1849,55 @@ paths: schema: type: string + + /w/{workspace}/workspaces/threshold_alert: + get: + summary: get threshold alert info + operationId: getThresholdAlert + tags: + - workspace + parameters: + - $ref: "#/components/parameters/WorkspaceId" + + responses: + "200": + description: status + content: + application/json: + schema: + type: object + properties: + threshold_alert_amount: + type: number + last_alert_sent: + type: string + format: date-time + post: + summary: set threshold alert info + operationId: setThresholdAlert + tags: + - workspace + parameters: + - $ref: "#/components/parameters/WorkspaceId" + requestBody: + description: threshold alert info + required: true + content: + application/json: + schema: + type: object + properties: + threshold_alert_amount: + type: number + + responses: + "200": + description: status + content: + text/plain: + schema: + type: string + /w/{workspace}/workspaces/edit_slack_command: post: summary: edit slack command @@ -4262,6 +4313,17 @@ paths: operationId: getCustomTags tags: - worker + parameters: + - name: workspace + in: query + schema: + type: string + required: false + - name: show_workspace_restriction + in: query + schema: + type: boolean + required: false responses: "200": description: list of custom tags @@ -11008,6 +11070,7 @@ components: bigquery, snowflake, mssql, + oracledb, graphql, nativets, bun, @@ -11018,7 +11081,7 @@ components: ] kind: type: string - enum: [script, failure, trigger, command, approval] + enum: [script, failure, trigger, command, approval, preprocessor] starred: type: boolean tag: @@ -11059,6 +11122,8 @@ components: type: string has_preprocessor: type: boolean + on_behalf_of_email: + type: string required: - hash @@ -11111,6 +11176,7 @@ components: bigquery, snowflake, mssql, + oracledb, graphql, nativets, bun, @@ -11121,7 +11187,7 @@ components: ] kind: type: string - enum: [script, failure, trigger, command, approval] + enum: [script, failure, trigger, command, approval, preprocessor] tag: type: string draft_only: @@ -11160,6 +11226,8 @@ components: type: string has_preprocessor: type: boolean + on_behalf_of_email: + type: string required: - path - summary @@ -11336,6 +11404,7 @@ components: bigquery, snowflake, mssql, + oracledb, graphql, nativets, bun, @@ -11459,6 +11528,7 @@ components: bigquery, snowflake, mssql, + oracledb, graphql, nativets, bun, @@ -12015,6 +12085,7 @@ components: bigquery, snowflake, mssql, + oracledb, graphql, nativets, bun, @@ -13209,6 +13280,8 @@ components: type: number visible_to_runner_only: type: boolean + on_behalf_of_email: + type: string required: - path - edited_by @@ -13235,6 +13308,8 @@ components: type: number visible_to_runner_only: type: boolean + on_behalf_of_email: + type: string required: - path @@ -13755,6 +13830,7 @@ components: bigquery, snowflake, mssql, + oracledb, graphql, nativets, bun, diff --git a/backend/windmill-api/src/apps.rs b/backend/windmill-api/src/apps.rs index 591049dc32..f2e340394e 100644 --- a/backend/windmill-api/src/apps.rs +++ b/backend/windmill-api/src/apps.rs @@ -1436,20 +1436,30 @@ async fn execute_component( ) .await?; - let (job_payload, tag) = match (payload.path, payload.raw_code, payload.id) { + let (job_payload, tag, on_behalf_of) = match (payload.path, payload.raw_code, payload.id) { // flow or script: (Some(path), None, None) => get_payload_tag_from_prefixed_path(&path, &db, &w_id).await?, // inline script: in "preview" mode or without entry in the `app_script` table. - (None, Some(raw_code), None) => (JobPayload::Code(raw_code), None), + (None, Some(raw_code), None) => (JobPayload::Code(raw_code), None, None), // inline script: in "run" mode and with an entry in the `app_script` table. (None, Some(RawCode { language, path, cache_ttl, .. }), Some(id)) => ( JobPayload::AppScript { id: AppScriptId(id), cache_ttl, language, path }, None, + None, ), _ => unreachable!(), }; let tx = PushIsolationLevel::IsolatedRoot(db.clone()); + let (email, permissioned_as) = if let Some(on_behalf_of) = on_behalf_of.as_ref() { + ( + on_behalf_of.email.as_str(), + on_behalf_of.permissioned_as.clone(), + ) + } else { + (email.as_str(), permissioned_as) + }; + let (uuid, tx) = push( &db, tx, @@ -1457,7 +1467,7 @@ async fn execute_component( job_payload, PushArgs { args: &args.args, extra: args.extra }, &username, - &email, + email, permissioned_as, None, None, diff --git a/backend/windmill-api/src/capture.rs b/backend/windmill-api/src/capture.rs index e50b83fe5e..323cb6d67e 100644 --- a/backend/windmill-api/src/capture.rs +++ b/backend/windmill-api/src/capture.rs @@ -220,7 +220,7 @@ async fn set_config( (workspace_id, path, is_flow, trigger_kind, trigger_config, owner, email) VALUES ($1, $2, $3, $4, $5, $6, $7) ON CONFLICT (workspace_id, path, is_flow, trigger_kind) - DO UPDATE SET trigger_config = $5, owner = $6, email = $7, server_id = NULL, last_server_ping = NULL, error = NULL", + DO UPDATE SET trigger_config = $5, owner = $6, email = $7, server_id = NULL, error = NULL", &w_id, &nc.path, nc.is_flow, diff --git a/backend/windmill-api/src/flows.rs b/backend/windmill-api/src/flows.rs index b37dbd9d9a..1b283d43f3 100644 --- a/backend/windmill-api/src/flows.rs +++ b/backend/windmill-api/src/flows.rs @@ -356,8 +356,8 @@ async fn create_flow( sqlx::query!( "INSERT INTO flow (workspace_id, path, summary, description, \ - dependency_job, draft_only, tag, dedicated_worker, visible_to_runner_only, value, schema, edited_by, edited_at) - VALUES ($1, $2, $3, $4, NULL, $5, $6, $7, $8, $9, $10::text::json, $11, now())", + dependency_job, draft_only, tag, dedicated_worker, visible_to_runner_only, on_behalf_of_email, value, schema, edited_by, edited_at) + VALUES ($1, $2, $3, $4, NULL, $5, $6, $7, $8, $9, $10, $11::text::json, $12, now())", w_id, nf.path, nf.summary, @@ -366,6 +366,11 @@ async fn create_flow( nf.tag, nf.dedicated_worker, nf.visible_to_runner_only.unwrap_or(false), + if nf.on_behalf_of_email.is_some() { + Some(&authed.email) + } else { + None + }, nf.value, schema_str, &authed.username, @@ -571,7 +576,7 @@ async fn get_flow_version( let mut tx = user_db.begin(&authed).await?; let flow = sqlx::query_as::<_, Flow>( - "SELECT flow.workspace_id, flow.path, flow.summary, flow.description, flow.archived, flow.extra_perms, flow.draft_only, flow.dedicated_worker, flow.tag, flow.ws_error_handler_muted, flow.timeout, flow.visible_to_runner_only, flow_version.schema, flow_version.value, flow_version.created_at as edited_at, flow_version.created_by as edited_by + "SELECT flow.workspace_id, flow.path, flow.summary, flow.description, flow.archived, flow.extra_perms, flow.draft_only, flow.dedicated_worker, flow.tag, flow.ws_error_handler_muted, flow.timeout, flow.visible_to_runner_only, flow.on_behalf_of_email, flow_version.schema, flow_version.value, flow_version.created_at as edited_at, flow_version.created_by as edited_by FROM flow LEFT JOIN flow_version ON flow_version.path = flow.path AND flow_version.workspace_id = flow.workspace_id WHERE flow.path = $1 AND flow.workspace_id = $2 AND flow_version.id = $3", @@ -678,15 +683,20 @@ async fn update_flow( sqlx::query!( "UPDATE flow SET path = $1, summary = $2, description = $3,\ - dependency_job = NULL, draft_only = NULL, tag = $4, dedicated_worker = $5, visible_to_runner_only = $6, \ - value = $7, schema = $8::text::json, edited_by = $9, edited_at = now() - WHERE path = $10 AND workspace_id = $11", + dependency_job = NULL, draft_only = NULL, tag = $4, dedicated_worker = $5, visible_to_runner_only = $6, on_behalf_of_email = $7, \ + value = $8, schema = $9::text::json, edited_by = $10, edited_at = now() + WHERE path = $11 AND workspace_id = $12", if is_new_path { flow_path } else { &nf.path }, // if new path, do not rename directly (to avoid flow_version foreign key constraint) nf.summary, nf.description.unwrap_or_else(String::new), nf.tag, nf.dedicated_worker, nf.visible_to_runner_only.unwrap_or(false), + if nf.on_behalf_of_email.is_some() { + Some(&authed.email) + } else { + None + }, nf.value, schema_str, &authed.username, @@ -700,8 +710,8 @@ async fn update_flow( // if new path, must clone flow to new path and delete old flow for flow_version foreign key constraint sqlx::query!( "INSERT INTO flow - (workspace_id, path, summary, description, archived, extra_perms, dependency_job, draft_only, tag, ws_error_handler_muted, dedicated_worker, timeout, visible_to_runner_only, concurrency_key, versions, value, schema, edited_by, edited_at) - SELECT workspace_id, $1, summary, description, archived, extra_perms, dependency_job, draft_only, tag, ws_error_handler_muted, dedicated_worker, timeout, visible_to_runner_only, concurrency_key, versions, value, schema, edited_by, edited_at + (workspace_id, path, summary, description, archived, extra_perms, dependency_job, draft_only, tag, ws_error_handler_muted, dedicated_worker, timeout, visible_to_runner_only, on_behalf_of_email, concurrency_key, versions, value, schema, edited_by, edited_at) + SELECT workspace_id, $1, summary, description, archived, extra_perms, dependency_job, draft_only, tag, ws_error_handler_muted, dedicated_worker, timeout, visible_to_runner_only, on_behalf_of_email, concurrency_key, versions, value, schema, edited_by, edited_at FROM flow WHERE path = $2 AND workspace_id = $3", nf.path, @@ -749,7 +759,7 @@ async fn update_flow( ) .execute(&mut *tx) .await?; - + sqlx::query!( "UPDATE capture SET path = $1 WHERE path = $2 AND workspace_id = $3 AND is_flow IS TRUE", nf.path, @@ -947,7 +957,7 @@ async fn get_flow_by_path( let flow_o = if query.with_starred_info.unwrap_or(false) { sqlx::query_as::<_, FlowWithStarred>( - "SELECT flow.workspace_id, flow.path, flow.summary, flow.description, flow.archived, flow.extra_perms, flow.draft_only, flow.dedicated_worker, flow.tag, flow.ws_error_handler_muted, flow.timeout, flow.visible_to_runner_only, flow_version.schema, flow_version.value, flow_version.created_at as edited_at, flow_version.created_by as edited_by, favorite.path IS NOT NULL as starred + "SELECT flow.workspace_id, flow.path, flow.summary, flow.description, flow.archived, flow.extra_perms, flow.draft_only, flow.dedicated_worker, flow.tag, flow.ws_error_handler_muted, flow.timeout, flow.visible_to_runner_only, flow.on_behalf_of_email, flow_version.schema, flow_version.value, flow_version.created_at as edited_at, flow_version.created_by as edited_by, favorite.path IS NOT NULL as starred FROM flow LEFT JOIN favorite ON favorite.favorite_kind = 'flow' @@ -964,7 +974,7 @@ async fn get_flow_by_path( .await? } else { sqlx::query_as::<_, FlowWithStarred>( - "SELECT flow.workspace_id, flow.path, flow.summary, flow.description, flow.archived, flow.extra_perms, flow.draft_only, flow.dedicated_worker, flow.tag, flow.ws_error_handler_muted, flow.timeout, flow.visible_to_runner_only, flow_version.schema, flow_version.value, flow_version.created_at as edited_at, flow_version.created_by as edited_by, NULL as starred + "SELECT flow.workspace_id, flow.path, flow.summary, flow.description, flow.archived, flow.extra_perms, flow.draft_only, flow.dedicated_worker, flow.tag, flow.ws_error_handler_muted, flow.timeout, flow.visible_to_runner_only, flow.on_behalf_of_email, flow_version.schema, flow_version.value, flow_version.created_at as edited_at, flow_version.created_by as edited_by, NULL as starred FROM flow LEFT JOIN flow_version ON flow_version.id = flow.versions[array_upper(flow.versions, 1)] WHERE flow.path = $1 AND flow.workspace_id = $2" @@ -1000,6 +1010,8 @@ pub struct FlowWDraft { pub dedicated_worker: Option, #[serde(skip_serializing_if = "Option::is_none")] pub visible_to_runner_only: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub on_behalf_of_email: Option, } async fn get_flow_by_path_w_draft( @@ -1011,7 +1023,7 @@ async fn get_flow_by_path_w_draft( let mut tx = user_db.begin(&authed).await?; let flow_o = sqlx::query_as::<_, FlowWDraft>( - "SELECT flow.path, flow.summary, flow,description, flow_version.schema, flow_version.value, flow.extra_perms, flow.draft_only, flow.ws_error_handler_muted, flow.dedicated_worker, draft.value as draft, flow.tag, flow.visible_to_runner_only + "SELECT flow.path, flow.summary, flow,description, flow_version.schema, flow_version.value, flow.extra_perms, flow.draft_only, flow.ws_error_handler_muted, flow.dedicated_worker, draft.value as draft, flow.tag, flow.visible_to_runner_only, flow.on_behalf_of_email FROM flow LEFT JOIN draft ON flow.path = draft.path AND draft.workspace_id = $2 AND draft.typ = 'flow' diff --git a/backend/windmill-api/src/jobs.rs b/backend/windmill-api/src/jobs.rs index 9687840877..6e88f76ca7 100644 --- a/backend/windmill-api/src/jobs.rs +++ b/backend/windmill-api/src/jobs.rs @@ -524,28 +524,8 @@ async fn force_cancel( } } -pub async fn get_path_for_hash<'c>( - db: &mut Transaction<'c, Postgres>, - w_id: &str, - hash: i64, -) -> error::Result { - let path = sqlx::query_scalar!( - "select path from script where hash = $1 AND workspace_id = $2", - hash, - w_id - ) - .fetch_one(&mut **db) - .await - .map_err(|e| { - Error::InternalErr(format!( - "querying getting path for hash {hash} in {w_id}: {e:#}" - )) - })?; - Ok(path) -} - pub async fn get_path_tag_limits_cache_for_hash( - tx: &DB, + mut tx: Transaction<'_, Postgres>, w_id: &str, hash: i64, ) -> error::Result<( @@ -561,13 +541,15 @@ pub async fn get_path_tag_limits_cache_for_hash( Option, Option, Option, + Option, + String, )> { let script = sqlx::query!( - "select path, tag, concurrency_key, concurrent_limit, concurrency_time_window_s, cache_ttl, language as \"language: ScriptLang\", dedicated_worker, priority, delete_after_use, timeout, has_preprocessor from script where hash = $1 AND workspace_id = $2", + "select path, tag, concurrency_key, concurrent_limit, concurrency_time_window_s, cache_ttl, language as \"language: ScriptLang\", dedicated_worker, priority, delete_after_use, timeout, has_preprocessor, on_behalf_of_email, created_by from script where hash = $1 AND workspace_id = $2", hash, w_id ) - .fetch_optional(tx) + .fetch_optional(&mut *tx) .await .map_err(|e| { Error::InternalErr(format!( @@ -589,6 +571,8 @@ pub async fn get_path_tag_limits_cache_for_hash( script.delete_after_use, script.timeout, script.has_preprocessor, + script.on_behalf_of_email, + script.created_by, )) } @@ -3038,8 +3022,9 @@ pub async fn run_flow_by_path_inner( let flow_path = flow_path.to_path(); check_scopes(&authed, || format!("run:flow/{flow_path}"))?; - let (tag, dedicated_worker, has_preprocessor) = sqlx::query!( - "SELECT tag, dedicated_worker, flow_version.value->>'preprocessor_module' IS NOT NULL as has_preprocessor + let mut tx = user_db.clone().begin(&authed).await?; + let (tag, dedicated_worker, has_preprocessor, on_behalf_of_email, edited_by) = sqlx::query!( + "SELECT tag, dedicated_worker, flow_version.value->>'preprocessor_module' IS NOT NULL as has_preprocessor, on_behalf_of_email, edited_by FROM flow LEFT JOIN flow_version ON flow_version.id = flow.versions[array_upper(flow.versions, 1)] @@ -3047,20 +3032,38 @@ pub async fn run_flow_by_path_inner( flow_path, w_id ) - .fetch_optional(&db) + .fetch_optional(&mut *tx) .await? - .map(|x| (x.tag, x.dedicated_worker, x.has_preprocessor)) + .map(|x| (x.tag, x.dedicated_worker, x.has_preprocessor, x.on_behalf_of_email, x.edited_by)) .ok_or_else(|| { Error::NotFound(format!( "flow not found at path {flow_path} in workspace {w_id}" )) })?; + drop(tx); let tag = run_query.tag.clone().or(tag); check_tag_available_for_workspace(&w_id, &tag, &authed).await?; let scheduled_for = run_query.get_scheduled_for(&db).await?; - let tx = PushIsolationLevel::Isolated(user_db, authed.clone().into()); + + let (email, permissioned_as, push_authed, tx) = + if let Some(on_behalf_of_email) = on_behalf_of_email.as_ref() { + ( + on_behalf_of_email, + username_to_permissioned_as(&edited_by), + None, + PushIsolationLevel::IsolatedRoot(db.clone()), + ) + } else { + ( + &authed.email, + username_to_permissioned_as(&authed.username), + Some(authed.clone().into()), + PushIsolationLevel::Isolated(user_db, authed.clone().into()), + ) + }; + let (uuid, tx) = push( &db, tx, @@ -3075,8 +3078,8 @@ pub async fn run_flow_by_path_inner( &label_prefix .map(|x| x + authed.display_username()) .unwrap_or_else(|| authed.display_username().to_string()), - &authed.email, - username_to_permissioned_as(&authed.username), + email, + permissioned_as, scheduled_for, None, run_query.parent_job, @@ -3090,7 +3093,7 @@ pub async fn run_flow_by_path_inner( None, None, None, - Some(&authed.clone().into()), + push_authed.as_ref(), ) .await?; tx.commit().await?; @@ -3130,14 +3133,16 @@ pub async fn restart_flow( ) -> error::Result<(StatusCode, String)> { check_license_key_valid().await?; + let mut tx = user_db.clone().begin(&authed).await?; let completed_job = sqlx::query_as::<_, CompletedJob>( "SELECT *, result->'wm_labels' as labels from completed_job WHERE id = $1 and workspace_id = $2", ) .bind(job_id) .bind(&w_id) - .fetch_optional(&db) + .fetch_optional(&mut *tx) .await? .with_context(|| "Unable to find completed job with the given job UUID")?; + drop(tx); let flow_path = completed_job .script_path @@ -3227,14 +3232,31 @@ pub async fn run_script_by_path_inner( check_scopes(&authed, || format!("run:script/{script_path}"))?; - let (job_payload, tag, _delete_after_use, timeout) = - script_path_to_payload(script_path, &db, &w_id, run_query.skip_preprocessor).await?; + let mut tx = user_db.clone().begin(&authed).await?; + let (job_payload, tag, _delete_after_use, timeout, on_behalf_of) = + script_path_to_payload(script_path, &mut *tx, &w_id, run_query.skip_preprocessor).await?; + drop(tx); let scheduled_for = run_query.get_scheduled_for(&db).await?; let tag = run_query.tag.clone().or(tag); check_tag_available_for_workspace(&w_id, &tag, &authed).await?; - let tx = PushIsolationLevel::Isolated(user_db, authed.clone().into()); + let (email, permissioned_as, push_authed, tx) = + if let Some(on_behalf_of) = on_behalf_of.as_ref() { + ( + on_behalf_of.email.as_str(), + on_behalf_of.permissioned_as.clone(), + None, + PushIsolationLevel::IsolatedRoot(db.clone()), + ) + } else { + ( + authed.email.as_str(), + username_to_permissioned_as(&authed.username), + Some(authed.clone().into()), + PushIsolationLevel::Isolated(user_db, authed.clone().into()), + ) + }; let (uuid, tx) = push( &db, @@ -3245,8 +3267,8 @@ pub async fn run_script_by_path_inner( &label_prefix .map(|x| x + authed.display_username()) .unwrap_or_else(|| authed.display_username().to_string()), - &authed.email, - username_to_permissioned_as(&authed.username), + email, + permissioned_as, scheduled_for, None, run_query.parent_job, @@ -3260,7 +3282,7 @@ pub async fn run_script_by_path_inner( timeout, None, None, - Some(&authed.clone().into()), + push_authed.as_ref(), ) .await?; tx.commit().await?; @@ -3309,7 +3331,7 @@ pub async fn run_workflow_as_code( let job = not_found_if_none(job, "Queued Job", &job_id.to_string())?; let JobExtended { inner: job, raw_code, raw_lock, .. } = job; - let (job_payload, tag, _delete_after_use, timeout) = match job.job_kind { + let (job_payload, tag, _delete_after_use, timeout, on_behalf_of) = match job.job_kind { JobKind::Preview => ( JobPayload::Code(RawCode { hash: None, @@ -3328,10 +3350,17 @@ pub async fn run_workflow_as_code( Some(job.tag.clone()), None, run_query.timeout, + None, ), JobKind::Script => { - script_path_to_payload(job.script_path(), &db, &w_id, run_query.skip_preprocessor) - .await? + let mut tx = user_db.clone().begin(&authed).await?; + script_path_to_payload( + job.script_path(), + &mut *tx, + &w_id, + run_query.skip_preprocessor, + ) + .await? } _ => return Err(anyhow::anyhow!("Not supported").into()), }; @@ -3354,13 +3383,28 @@ pub async fn run_workflow_as_code( i += 1; } - let tx = PushIsolationLevel::Isolated(user_db, authed.clone().into()); - if *CLOUD_HOSTED { tracing::info!("workflow_as_code_tracing id {i} "); i += 1; } + let (email, permissioned_as, push_authed, tx) = + if let Some(on_behalf_of) = on_behalf_of.as_ref() { + ( + on_behalf_of.email.as_str(), + on_behalf_of.permissioned_as.clone(), + None, + PushIsolationLevel::IsolatedRoot(db.clone()), + ) + } else { + ( + authed.email.as_str(), + username_to_permissioned_as(&authed.username), + Some(authed.clone().into()), + PushIsolationLevel::Isolated(user_db, authed.clone().into()), + ) + }; + let (uuid, mut tx) = push( &db, tx, @@ -3368,8 +3412,8 @@ pub async fn run_workflow_as_code( job_payload, PushArgs { args: &args.args, extra: args.extra }, authed.display_username(), - &authed.email, - username_to_permissioned_as(&authed.username), + email, + permissioned_as, scheduled_for, None, Some(job_id), @@ -3383,7 +3427,7 @@ pub async fn run_workflow_as_code( timeout, None, None, - Some(&authed.clone().into()), + push_authed.as_ref(), ) .await?; @@ -3800,13 +3844,30 @@ pub async fn run_wait_result_job_by_path_get( let script_path = script_path.to_path(); check_scopes(&authed, || format!("run:script/{script_path}"))?; - let (job_payload, tag, delete_after_use, timeout) = - script_path_to_payload(script_path, &db, &w_id, run_query.skip_preprocessor).await?; + let mut tx = user_db.clone().begin(&authed).await?; + let (job_payload, tag, delete_after_use, timeout, on_behalf_authed) = + script_path_to_payload(script_path, &mut *tx, &w_id, run_query.skip_preprocessor).await?; + drop(tx); let tag = run_query.tag.clone().or(tag); check_tag_available_for_workspace(&w_id, &tag, &authed).await?; - let tx = PushIsolationLevel::Isolated(user_db, authed.clone().into()); + let (email, permissioned_as, push_authed, tx) = + if let Some(on_behalf_of) = on_behalf_authed.as_ref() { + ( + on_behalf_of.email.as_str(), + on_behalf_of.permissioned_as.clone(), + None, + PushIsolationLevel::IsolatedRoot(db.clone()), + ) + } else { + ( + authed.email.as_str(), + username_to_permissioned_as(&authed.username), + Some(authed.clone().into()), + PushIsolationLevel::Isolated(user_db, authed.clone().into()), + ) + }; let (uuid, tx) = push( &db, @@ -3815,8 +3876,8 @@ pub async fn run_wait_result_job_by_path_get( job_payload, PushArgs { args: &args.args, extra: args.extra }, authed.display_username(), - &authed.email, - username_to_permissioned_as(&authed.username), + email, + permissioned_as, None, None, run_query.parent_job, @@ -3830,7 +3891,7 @@ pub async fn run_wait_result_job_by_path_get( timeout, None, None, - Some(&authed.clone().into()), + push_authed.as_ref(), ) .await?; tx.commit().await?; @@ -3921,13 +3982,29 @@ pub async fn run_wait_result_script_by_path_internal( let script_path = script_path.to_path(); check_scopes(&authed, || format!("run:script/{script_path}"))?; - let (job_payload, tag, delete_after_use, timeout) = - script_path_to_payload(script_path, &db, &w_id, run_query.skip_preprocessor).await?; + let mut tx = user_db.clone().begin(&authed).await?; + let (job_payload, tag, delete_after_use, timeout, on_behalf_of) = + script_path_to_payload(script_path, &mut *tx, &w_id, run_query.skip_preprocessor).await?; let tag = run_query.tag.clone().or(tag); check_tag_available_for_workspace(&w_id, &tag, &authed).await?; - let tx = PushIsolationLevel::Isolated(user_db, authed.clone().into()); + let (email, permissioned_as, push_authed, tx) = + if let Some(on_behalf_of) = on_behalf_of.as_ref() { + ( + on_behalf_of.email.as_str(), + on_behalf_of.permissioned_as.clone(), + None, + PushIsolationLevel::IsolatedRoot(db.clone()), + ) + } else { + ( + authed.email.as_str(), + username_to_permissioned_as(&authed.username), + Some(authed.clone().into()), + PushIsolationLevel::Isolated(user_db, authed.clone().into()), + ) + }; let (uuid, tx) = push( &db, @@ -3938,8 +4015,8 @@ pub async fn run_wait_result_script_by_path_internal( &label_prefix .map(|x| x + authed.display_username()) .unwrap_or_else(|| authed.display_username().to_string()), - &authed.email, - username_to_permissioned_as(&authed.username), + email, + permissioned_as, None, None, run_query.parent_job, @@ -3953,7 +4030,7 @@ pub async fn run_wait_result_script_by_path_internal( timeout, None, None, - Some(&authed.clone().into()), + push_authed.as_ref(), ) .await?; tx.commit().await?; @@ -3994,7 +4071,10 @@ pub async fn run_wait_result_script_by_hash( delete_after_use, timeout, has_preprocessor, - ) = get_path_tag_limits_cache_for_hash(&db, &w_id, hash).await?; + on_behalf_of_email, + created_by, + ) = get_path_tag_limits_cache_for_hash(user_db.clone().begin(&authed).await?, &w_id, hash) + .await?; if let Some(run_query_cache_ttl) = run_query.cache_ttl { cache_ttl = Some(run_query_cache_ttl); } @@ -4003,7 +4083,22 @@ pub async fn run_wait_result_script_by_hash( let tag = run_query.tag.clone().or(tag); check_tag_available_for_workspace(&w_id, &tag, &authed).await?; - let tx = PushIsolationLevel::Isolated(user_db, authed.clone().into()); + let (email, permissioned_as, push_authed, tx) = if let Some(email) = on_behalf_of_email.as_ref() + { + ( + email, + username_to_permissioned_as(created_by.as_str()), + None, + PushIsolationLevel::IsolatedRoot(db.clone()), + ) + } else { + ( + &authed.email, + username_to_permissioned_as(&authed.username), + Some(authed.clone().into()), + PushIsolationLevel::Isolated(user_db, authed.clone().into()), + ) + }; let (uuid, tx) = push( &db, @@ -4024,8 +4119,8 @@ pub async fn run_wait_result_script_by_hash( }, PushArgs { args: &args.args, extra: args.extra }, authed.display_username(), - &authed.email, - username_to_permissioned_as(&authed.username), + email, + permissioned_as, None, None, run_query.parent_job, @@ -4039,7 +4134,7 @@ pub async fn run_wait_result_script_by_hash( timeout, None, None, - Some(&authed.clone().into()), + push_authed.as_ref(), ) .await?; tx.commit().await?; @@ -4087,8 +4182,9 @@ pub async fn run_wait_result_flow_by_path_internal( let scheduled_for = run_query.get_scheduled_for(&db).await?; - let (tag, dedicated_worker, early_return, has_preprocessor) = sqlx::query!( - "SELECT tag, dedicated_worker, flow_version.value->>'early_return' as early_return, flow_version.value->>'preprocessor_module' IS NOT NULL as has_preprocessor + let mut tx = user_db.clone().begin(&authed).await?; + let (tag, dedicated_worker, early_return, has_preprocessor, on_behalf_of_email, edited_by) = sqlx::query!( + "SELECT tag, dedicated_worker, flow_version.value->>'early_return' as early_return, flow_version.value->>'preprocessor_module' IS NOT NULL as has_preprocessor, on_behalf_of_email, edited_by FROM flow LEFT JOIN flow_version ON flow_version.id = flow.versions[array_upper(flow.versions, 1)] @@ -4096,9 +4192,9 @@ pub async fn run_wait_result_flow_by_path_internal( flow_path, w_id ) - .fetch_optional(&db) + .fetch_optional(&mut *tx) .await? - .map(|x| (x.tag, x.dedicated_worker, x.early_return, x.has_preprocessor)) + .map(|x| (x.tag, x.dedicated_worker, x.early_return, x.has_preprocessor, x.on_behalf_of_email, x.edited_by)) .ok_or_else(|| { Error::NotFound(format!( "flow not found at path {flow_path} in workspace {w_id}" @@ -4108,7 +4204,22 @@ pub async fn run_wait_result_flow_by_path_internal( let tag = run_query.tag.clone().or(tag); check_tag_available_for_workspace(&w_id, &tag, &authed).await?; - let tx = PushIsolationLevel::Isolated(user_db, authed.clone().into()); + let (email, permissioned_as, push_authed, tx) = + if let Some(on_behalf_of_email) = on_behalf_of_email.as_ref() { + ( + on_behalf_of_email, + username_to_permissioned_as(&edited_by), + None, + PushIsolationLevel::IsolatedRoot(db.clone()), + ) + } else { + ( + &authed.email, + username_to_permissioned_as(&authed.username), + Some(authed.clone().into()), + PushIsolationLevel::Isolated(user_db, authed.clone().into()), + ) + }; let (uuid, tx) = push( &db, @@ -4124,8 +4235,8 @@ pub async fn run_wait_result_flow_by_path_internal( &label_prefix .map(|x| x + authed.display_username()) .unwrap_or_else(|| authed.display_username().to_string()), - &authed.email, - username_to_permissioned_as(&authed.username), + email, + permissioned_as, scheduled_for, None, run_query.parent_job, @@ -4139,7 +4250,7 @@ pub async fn run_wait_result_flow_by_path_internal( None, None, None, - Some(&authed.clone().into()), + push_authed.as_ref(), ) .await?; tx.commit().await?; @@ -4532,6 +4643,7 @@ struct BatchInfo { async fn add_batch_jobs( authed: ApiAuthed, Extension(db): Extension, + Extension(user_db): Extension, Path((w_id, n)): Path<(String, i32)>, Json(batch_info): Json, ) -> error::JsonResult> { @@ -4554,6 +4666,7 @@ async fn add_batch_jobs( ) = match batch_info.kind.as_str() { "script" => { if let Some(path) = batch_info.path { + let mut tx = user_db.clone().begin(&authed).await?; let ( script_hash, _tag, @@ -4567,7 +4680,9 @@ async fn add_batch_jobs( _delete_after_use, timeout, _, - ) = get_latest_deployed_hash_for_path(&db, &w_id, &path).await?; + _, // TODO: consider on_behalf_of_email and created_by for batch jobs + _, // ------------------------------------------ + ) = get_latest_deployed_hash_for_path(&mut *tx, &w_id, &path).await?; ( Some(script_hash), Some(path), @@ -4616,6 +4731,7 @@ async fn add_batch_jobs( let (mut value, job_kind, path) = if let Some(value) = batch_info.flow_value { (value, JobKind::FlowPreview, None) } else if let Some(path) = batch_info.path { + let mut tx = user_db.clone().begin(&authed).await?; let value_json = sqlx::query!( "SELECT coalesce(flow_version_lite.value, flow_version.value) as \"value!: sqlx::types::Json>\" FROM flow LEFT JOIN flow_version @@ -4625,7 +4741,7 @@ async fn add_batch_jobs( WHERE flow.path = $1 AND flow.workspace_id = $2 LIMIT 1", &path, &w_id ) - .fetch_optional(&db) + .fetch_optional(&mut *tx) .await? .ok_or_else(|| Error::InternalErr(format!("not found flow at path {:?}", path)))?; let value = @@ -4693,6 +4809,8 @@ async fn add_batch_jobs( format!("{}", language.as_str()) }; + let mut tx = user_db.begin(&authed).await?; + let uuids = sqlx::query_scalar!( r#"WITH uuid_table as ( select gen_random_uuid() as uuid from generate_series(1, $5) @@ -4707,7 +4825,7 @@ async fn add_batch_jobs( raw_flow.map(sqlx::types::Json) as Option>, n ) - .fetch_all(&db) + .fetch_all(&mut *tx) .await?; let uuids = sqlx::query_scalar!( @@ -4734,7 +4852,7 @@ async fn add_batch_jobs( timeout, flow_status.map(sqlx::types::Json) as Option> ) - .fetch_all(&db) + .fetch_all(&mut *tx) .await?; if let Some(custom_concurrency_key) = custom_concurrency_key { @@ -4743,10 +4861,12 @@ async fn add_batch_jobs( custom_concurrency_key, &uuids ) - .execute(&db) + .execute(&mut *tx) .await?; } + tx.commit().await?; + Ok(Json(uuids)) } @@ -4852,7 +4972,10 @@ pub async fn run_job_by_hash_inner( _delete_after_use, // not taken into account in async endpoints timeout, has_preprocessor, - ) = get_path_tag_limits_cache_for_hash(&db, &w_id, hash).await?; + on_behalf_of_email, + created_by, + ) = get_path_tag_limits_cache_for_hash(user_db.clone().begin(&authed).await?, &w_id, hash) + .await?; check_scopes(&authed, || format!("run:script/{path}"))?; if let Some(run_query_cache_ttl) = run_query.cache_ttl { cache_ttl = Some(run_query_cache_ttl); @@ -4862,7 +4985,22 @@ pub async fn run_job_by_hash_inner( check_tag_available_for_workspace(&w_id, &tag, &authed).await?; - let tx = PushIsolationLevel::Isolated(user_db, authed.clone().into()); + let (email, permissioned_as, push_authed, tx) = if let Some(email) = on_behalf_of_email.as_ref() + { + ( + email, + username_to_permissioned_as(created_by.as_str()), + None, + PushIsolationLevel::IsolatedRoot(db.clone()), + ) + } else { + ( + &authed.email, + username_to_permissioned_as(&authed.username), + Some(authed.clone().into()), + PushIsolationLevel::Isolated(user_db, authed.clone().into()), + ) + }; let (uuid, tx) = push( &db, @@ -4885,8 +5023,8 @@ pub async fn run_job_by_hash_inner( &label_prefix .map(|x| x + authed.display_username()) .unwrap_or_else(|| authed.display_username().to_string()), - &authed.email, - username_to_permissioned_as(&authed.username), + email, + permissioned_as, scheduled_for, None, run_query.parent_job, @@ -4900,7 +5038,7 @@ pub async fn run_job_by_hash_inner( timeout, None, None, - Some(&authed.clone().into()), + push_authed.as_ref(), ) .await?; tx.commit().await?; diff --git a/backend/windmill-api/src/scripts.rs b/backend/windmill-api/src/scripts.rs index 15d95a031b..10ac5aa387 100644 --- a/backend/windmill-api/src/scripts.rs +++ b/backend/windmill-api/src/scripts.rs @@ -7,13 +7,13 @@ */ use crate::{ + auth::AuthCache, db::{ApiAuthed, DB}, schedule::clear_schedule, triggers::{ get_triggers_count_internal, list_tokens_internal, TriggersCount, TruncatedTokenWithEmail, }, users::{maybe_refresh_folders, require_owner_of_path}, - auth::AuthCache, utils::WithStarredInfoQuery, webhook_util::{WebhookMessage, WebhookShared}, HTTP_CLIENT, @@ -28,6 +28,7 @@ use axum::{ Json, Router, }; use hyper::StatusCode; +use itertools::Itertools; use serde::{Deserialize, Serialize}; use serde_json::json; use serde_json::value::RawValue; @@ -109,6 +110,8 @@ pub struct ScriptWDraft { pub no_main_func: Option, #[serde(skip_serializing_if = "Option::is_none")] pub has_preprocessor: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub on_behalf_of_email: Option, } pub fn global_service() -> Router { @@ -236,7 +239,19 @@ async fn list_scripts( .limit(per_page) .clone(); - if !lq.include_without_main.unwrap_or(false) || authed.is_operator { + let lowercased_kinds: Option> = lq + .kinds + .map(|x| x.split(",").map(&str::to_lowercase).collect()); + + if (!lq.include_without_main.unwrap_or(false) + && lowercased_kinds + .as_ref() + .map(|x| !x.contains(&"preprocessor".to_string())) + .unwrap_or(true)) + || authed.is_operator + { + // only include scripts that have a main function + // do not hide scripts without main if preprocessor is in the kinds sqlb.and_where("o.no_main_func IS NOT TRUE"); } @@ -276,14 +291,13 @@ async fn list_scripts( if let Some(it) = &lq.is_template { sqlb.and_where_eq("is_template", it); } - if let Some(kinds_val) = &lq.kinds { - let lowercased_kinds: Vec = kinds_val - .split(",") - .map(&str::to_lowercase) + if let Some(lowercased_kinds) = lowercased_kinds { + let safe_kinds = lowercased_kinds + .into_iter() .map(sql_builder::quote) - .collect(); - if lowercased_kinds.len() > 0 { - sqlb.and_where_in("kind", lowercased_kinds.as_slice()); + .collect_vec(); + if safe_kinds.len() > 0 { + sqlb.and_where_in("kind", safe_kinds.as_slice()); } } if lq.starred_only.unwrap_or(false) { @@ -616,8 +630,8 @@ async fn create_script_internal<'c>( content, created_by, schema, is_template, extra_perms, lock, language, kind, tag, \ draft_only, envs, concurrent_limit, concurrency_time_window_s, cache_ttl, \ dedicated_worker, ws_error_handler_muted, priority, restart_unless_cancelled, \ - delete_after_use, timeout, concurrency_key, visible_to_runner_only, no_main_func, codebase, has_preprocessor) \ - VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9::text::json, $10, $11, $12, $13, $14, $15, $16, $17, $18, $19, $20, $21, $22, $23, $24, $25, $26, $27, $28, $29, $30, $31)", + delete_after_use, timeout, concurrency_key, visible_to_runner_only, no_main_func, codebase, has_preprocessor, on_behalf_of_email) \ + VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9::text::json, $10, $11, $12, $13, $14, $15, $16, $17, $18, $19, $20, $21, $22, $23, $24, $25, $26, $27, $28, $29, $30, $31, $32)", &w_id, &hash.0, ns.path, @@ -649,6 +663,11 @@ async fn create_script_internal<'c>( ns.no_main_func, codebase, ns.has_preprocessor, + if ns.on_behalf_of_email.is_some() { + Some(&authed.email) + } else { + None + } ) .execute(&mut *tx) .await?; @@ -670,7 +689,7 @@ async fn create_script_internal<'c>( ) .execute(&mut *tx) .await?; - + sqlx::query!( "UPDATE capture SET path = $1 WHERE path = $2 AND workspace_id = $3 AND is_flow IS FALSE", ns.path, @@ -917,7 +936,7 @@ async fn get_script_by_path_w_draft( let mut tx = user_db.begin(&authed).await?; let script_o = sqlx::query_as::<_, ScriptWDraft>( - "SELECT hash, script.path, summary, description, content, language, kind, tag, schema, draft_only, envs, concurrent_limit, concurrency_time_window_s, cache_ttl, ws_error_handler_muted, draft.value as draft, dedicated_worker, priority, restart_unless_cancelled, delete_after_use, timeout, concurrency_key, visible_to_runner_only, no_main_func, has_preprocessor FROM script LEFT JOIN draft ON + "SELECT hash, script.path, summary, description, content, language, kind, tag, schema, draft_only, envs, concurrent_limit, concurrency_time_window_s, cache_ttl, ws_error_handler_muted, draft.value as draft, dedicated_worker, priority, restart_unless_cancelled, delete_after_use, timeout, concurrency_key, visible_to_runner_only, no_main_func, has_preprocessor, on_behalf_of_email FROM script LEFT JOIN draft ON script.path = draft.path AND script.workspace_id = draft.workspace_id AND draft.typ = 'script' WHERE script.path = $1 AND script.workspace_id = $2 \ AND script.created_at = (SELECT max(created_at) FROM script WHERE path = $1 AND \ diff --git a/backend/windmill-api/src/users.rs b/backend/windmill-api/src/users.rs index e82212ce53..fdb40d97c5 100644 --- a/backend/windmill-api/src/users.rs +++ b/backend/windmill-api/src/users.rs @@ -2488,8 +2488,8 @@ async fn update_username_in_workpsace<'c>( // ---- flows ---- sqlx::query!( r#"INSERT INTO flow - (workspace_id, path, summary, description, archived, extra_perms, dependency_job, draft_only, tag, ws_error_handler_muted, dedicated_worker, timeout, visible_to_runner_only, concurrency_key, versions, value, schema, edited_by, edited_at) - SELECT workspace_id, REGEXP_REPLACE(path,'u/' || $2 || '/(.*)','u/' || $1 || '/\1'), summary, description, archived, extra_perms, dependency_job, draft_only, tag, ws_error_handler_muted, dedicated_worker, timeout, visible_to_runner_only, concurrency_key, versions, value, schema, edited_by, edited_at + (workspace_id, path, summary, description, archived, extra_perms, dependency_job, draft_only, tag, ws_error_handler_muted, dedicated_worker, timeout, visible_to_runner_only, on_behalf_of_email, concurrency_key, versions, value, schema, edited_by, edited_at) + SELECT workspace_id, REGEXP_REPLACE(path,'u/' || $2 || '/(.*)','u/' || $1 || '/\1'), summary, description, archived, extra_perms, dependency_job, draft_only, tag, ws_error_handler_muted, dedicated_worker, timeout, visible_to_runner_only, on_behalf_of_email, concurrency_key, versions, value, schema, edited_by, edited_at FROM flow WHERE path LIKE ('u/' || $2 || '/%') AND workspace_id = $3"#, new_username, diff --git a/backend/windmill-api/src/websocket_triggers.rs b/backend/windmill-api/src/websocket_triggers.rs index b04e6250a5..2f00a1f5a4 100644 --- a/backend/windmill-api/src/websocket_triggers.rs +++ b/backend/windmill-api/src/websocket_triggers.rs @@ -250,7 +250,7 @@ async fn update_websocket_trigger( .map(SqlxJson) .collect_vec(); - // important to update server_id, last_server_ping and error to NULL to stop current websocket listener + // important to update server_id to NULL to stop current websocket listener sqlx::query!( "UPDATE websocket_trigger SET url = $1, script_path = $2, path = $3, is_flow = $4, filters = $5, initial_messages = $6, url_runnable_args = $7, edited_by = $8, email = $9, edited_at = now(), server_id = NULL, error = NULL WHERE workspace_id = $10 AND path = $11", @@ -671,6 +671,12 @@ impl WebsocketTrigger { ).fetch_optional(db).await { Ok(updated) => { if updated.flatten().is_none() { + // allow faster restart of websocket trigger + sqlx::query!( + "UPDATE websocket_trigger SET last_server_ping = NULL WHERE workspace_id = $1 AND path = $2 AND server_id IS NULL", + self.workspace_id, + self.path, + ).execute(db).await.ok(); tracing::info!("Websocket {} changed, disabled, or deleted, stopping...", self.url); return None; } @@ -875,6 +881,13 @@ impl CaptureConfigForWebsocket { ).fetch_optional(db).await { Ok(updated) => { if updated.flatten().is_none() { + // allow faster restart of websocket capture + sqlx::query!( + "UPDATE capture_config SET last_server_ping = NULL WHERE workspace_id = $1 AND path = $2 AND is_flow = $3 AND trigger_kind = 'websocket' AND server_id IS NULL", + self.workspace_id, + self.path, + self.is_flow, + ).execute(db).await.ok(); tracing::info!("Websocket capture {} changed, disabled, or deleted, stopping...", self.trigger_config.url); return None; } diff --git a/backend/windmill-api/src/workers.rs b/backend/windmill-api/src/workers.rs index 527b66296c..2f93b55a6e 100644 --- a/backend/windmill-api/src/workers.rs +++ b/backend/windmill-api/src/workers.rs @@ -19,7 +19,7 @@ use windmill_common::{ db::UserDB, error::JsonResult, utils::{paginate, Pagination}, - worker::{ALL_TAGS, DEFAULT_TAGS, DEFAULT_TAGS_PER_WORKSPACE}, + worker::{ALL_TAGS, CUSTOM_TAGS_PER_WORKSPACE, DEFAULT_TAGS, DEFAULT_TAGS_PER_WORKSPACE}, DB, }; @@ -133,8 +133,48 @@ async fn exists_worker_with_tag( Ok(Json(row.exists.unwrap_or(false))) } -async fn get_custom_tags() -> Json> { - Json(ALL_TAGS.read().await.clone().into()) +#[derive(Deserialize)] +struct CustomTagQuery { + workspace: Option, + show_workspace_restriction: Option, +} +async fn get_custom_tags(Query(query): Query) -> JsonResult> { + if query.show_workspace_restriction.is_some_and(|x| x) && query.workspace.is_some() { + return Err(windmill_common::error::Error::BadRequest( + "Cannot use both workspace and show_workspace_restriction".to_string(), + )); + } + if let Some(workspace) = query.workspace { + let tags_o = CUSTOM_TAGS_PER_WORKSPACE.read().await; + let workspace_tags = tags_o + .1 + .iter() + .filter(|(_, workspaces)| workspaces.contains(&workspace)) + .map(|(tag, _)| tag.clone()) + .collect::>(); + let all_tags = tags_o.0.clone(); + return Ok(Json( + all_tags + .into_iter() + .chain(workspace_tags.into_iter()) + .collect(), + )); + } else if query.show_workspace_restriction.is_some_and(|x| x) { + let tags_o = CUSTOM_TAGS_PER_WORKSPACE.read().await; + let workspace_tags = tags_o + .1 + .iter() + .map(|(tag, workspaces)| format!("{}({})", tag, workspaces.join("+"))) + .collect::>(); + let all_tags = tags_o.0.clone(); + return Ok(Json( + all_tags + .into_iter() + .chain(workspace_tags.into_iter()) + .collect(), + )); + } + Ok(Json(ALL_TAGS.read().await.clone().into())) } async fn get_default_tags_per_workspace() -> JsonResult { diff --git a/backend/windmill-api/src/workspaces_export.rs b/backend/windmill-api/src/workspaces_export.rs index 56dae1e2a2..70fea1ea5a 100644 --- a/backend/windmill-api/src/workspaces_export.rs +++ b/backend/windmill-api/src/workspaces_export.rs @@ -83,6 +83,8 @@ struct ScriptMetadata { pub concurrency_key: Option, #[serde(skip_serializing_if = "Option::is_none")] pub has_preprocessor: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub on_behalf_of_email: Option, } pub fn is_none_or_false(val: &Option) -> bool { @@ -352,6 +354,7 @@ pub(crate) async fn tarball_workspace( ScriptLang::Rust => "rs", ScriptLang::Ansible => "playbook.yml", ScriptLang::CSharp => "cs", + ScriptLang::OracleDB => "odb.sql", }; archive .write_to_archive(&script.content, &format!("{}.{}", script.path, ext)) @@ -379,6 +382,7 @@ pub(crate) async fn tarball_workspace( codebase: script.codebase, concurrency_key: script.concurrency_key, has_preprocessor: script.has_preprocessor, + on_behalf_of_email: script.on_behalf_of_email, }; let metadata_str = serde_json::to_string_pretty(&metadata).unwrap(); archive @@ -426,7 +430,7 @@ pub(crate) async fn tarball_workspace( { let flows = sqlx::query_as::<_, Flow>( - "SELECT flow.workspace_id, flow.path, flow.summary, flow.description, flow.archived, flow.extra_perms, flow.draft_only, flow.dedicated_worker, flow.tag, flow.ws_error_handler_muted, flow.timeout, flow.visible_to_runner_only, flow_version.schema, flow_version.value, flow_version.created_at as edited_at, flow_version.created_by as edited_by + "SELECT flow.workspace_id, flow.path, flow.summary, flow.description, flow.archived, flow.extra_perms, flow.draft_only, flow.dedicated_worker, flow.tag, flow.ws_error_handler_muted, flow.timeout, flow.visible_to_runner_only, flow.on_behalf_of_email, flow_version.schema, flow_version.value, flow_version.created_at as edited_at, flow_version.created_by as edited_by FROM flow LEFT JOIN flow_version ON flow_version.id = flow.versions[array_upper(flow.versions, 1)] WHERE flow.workspace_id = $1 AND flow.archived = false", diff --git a/backend/windmill-api/src/workspaces_extra.rs b/backend/windmill-api/src/workspaces_extra.rs index 77a11b75c1..a8f0c8721d 100644 --- a/backend/windmill-api/src/workspaces_extra.rs +++ b/backend/windmill-api/src/workspaces_extra.rs @@ -111,6 +111,38 @@ pub(crate) async fn change_workspace_id( .execute(&mut *tx) .await?; + sqlx::query!( + "UPDATE http_trigger SET workspace_id = $1 WHERE workspace_id = $2", + &rw.new_id, + &old_id + ) + .execute(&mut *tx) + .await?; + + sqlx::query!( + "UPDATE websocket_trigger SET workspace_id = $1 WHERE workspace_id = $2", + &rw.new_id, + &old_id + ) + .execute(&mut *tx) + .await?; + + sqlx::query!( + "UPDATE kafka_trigger SET workspace_id = $1 WHERE workspace_id = $2", + &rw.new_id, + &old_id + ) + .execute(&mut *tx) + .await?; + + sqlx::query!( + "UPDATE nats_trigger SET workspace_id = $1 WHERE workspace_id = $2", + &rw.new_id, + &old_id + ) + .execute(&mut *tx) + .await?; + sqlx::query!( "UPDATE completed_job SET workspace_id = $1 WHERE workspace_id = $2", &rw.new_id, @@ -153,8 +185,8 @@ pub(crate) async fn change_workspace_id( sqlx::query!( "INSERT INTO flow - (workspace_id, path, summary, description, archived, extra_perms, dependency_job, draft_only, tag, ws_error_handler_muted, dedicated_worker, timeout, visible_to_runner_only, concurrency_key, versions, value, schema, edited_by, edited_at) - SELECT $1, path, summary, description, archived, extra_perms, dependency_job, draft_only, tag, ws_error_handler_muted, dedicated_worker, timeout, visible_to_runner_only, concurrency_key, versions, value, schema, edited_by, edited_at + (workspace_id, path, summary, description, archived, extra_perms, dependency_job, draft_only, tag, ws_error_handler_muted, dedicated_worker, timeout, visible_to_runner_only, on_behalf_of_email, concurrency_key, versions, value, schema, edited_by, edited_at) + SELECT $1, path, summary, description, archived, extra_perms, dependency_job, draft_only, tag, ws_error_handler_muted, dedicated_worker, timeout, visible_to_runner_only, on_behalf_of_email, concurrency_key, versions, value, schema, edited_by, edited_at FROM flow WHERE workspace_id = $2", &rw.new_id, &old_id @@ -404,9 +436,9 @@ pub(crate) async fn delete_workspace( sqlx::query!("DELETE FROM capture WHERE workspace_id = $1", &w_id) .execute(&mut *tx) .await?; - sqlx::query!("DELETE FROM capture_config WHERE workspace_id = $1", &w_id) - .execute(&mut *tx) - .await?; + + // capture_config has on delete cascade + sqlx::query!("DELETE FROM draft WHERE workspace_id = $1", &w_id) .execute(&mut *tx) .await?; @@ -497,6 +529,23 @@ pub(crate) async fn delete_workspace( .execute(&mut *tx) .await?; + sqlx::query!("DELETE FROM http_trigger WHERE workspace_id = $1", &w_id) + .execute(&mut *tx) + .await?; + + sqlx::query!( + "DELETE FROM websocket_trigger WHERE workspace_id = $1", + &w_id + ) + .execute(&mut *tx) + .await?; + + sqlx::query!("DELETE FROM kafka_trigger WHERE workspace_id = $1", &w_id) + .execute(&mut *tx) + .await?; + + // NATS triggers have on delete cascade + sqlx::query!("DELETE FROM workspace WHERE id = $1", &w_id) .execute(&mut *tx) .await?; diff --git a/backend/windmill-common/src/auth.rs b/backend/windmill-common/src/auth.rs index fcd528e9b0..017131388d 100644 --- a/backend/windmill-common/src/auth.rs +++ b/backend/windmill-common/src/auth.rs @@ -75,7 +75,7 @@ pub async fn is_super_admin_email(db: &DB, email: &str) -> Result { pub async fn is_devops_email(db: &DB, email: &str) -> Result { if is_super_admin_email(db, email).await? { - return Ok(true) + return Ok(true); } let is_devops = sqlx::query_scalar!("SELECT devops FROM password WHERE email = $1", email) @@ -118,13 +118,14 @@ pub async fn fetch_authed_from_permissioned_as( name, &w_id ) - .fetch_one(db) - .await - .ok(); + .fetch_optional(db) + .await?; if let Some(r) = r { (r.is_admin, r.operator) } else { - (false, true) + return Err(Error::InternalErr(format!( + "user {name} not found in workspace {w_id}" + ))); } }; diff --git a/backend/windmill-common/src/flows.rs b/backend/windmill-common/src/flows.rs index 370b8a69ec..22458af9ba 100644 --- a/backend/windmill-common/src/flows.rs +++ b/backend/windmill-common/src/flows.rs @@ -49,6 +49,8 @@ pub struct Flow { pub timeout: Option, #[serde(skip_serializing_if = "is_none_or_false")] pub visible_to_runner_only: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub on_behalf_of_email: Option, } #[derive(Serialize, sqlx::FromRow)] @@ -98,6 +100,7 @@ pub struct NewFlow { pub timeout: Option, pub deployment_message: Option, pub visible_to_runner_only: Option, + pub on_behalf_of_email: Option, } #[derive(Deserialize, Serialize, Debug, Clone, Default)] diff --git a/backend/windmill-common/src/jobs.rs b/backend/windmill-common/src/jobs.rs index dc371d319f..13a8dd7e8a 100644 --- a/backend/windmill-common/src/jobs.rs +++ b/backend/windmill-common/src/jobs.rs @@ -20,6 +20,7 @@ use crate::{ flows::{FlowNodeId, FlowValue, Retry}, get_latest_deployed_hash_for_path, scripts::{ScriptHash, ScriptLang}, + users::username_to_permissioned_as, worker::{to_raw_value, TMP_DIR}, }; @@ -370,54 +371,87 @@ type Tag = String; pub type DB = Pool; +#[derive(Clone, Debug)] +pub struct OnBehalfOf { + pub email: String, + pub permissioned_as: String, +} + pub async fn script_path_to_payload<'e, E: sqlx::Executor<'e, Database = Postgres>>( script_path: &str, db: E, w_id: &str, skip_preprocessor: Option, -) -> error::Result<(JobPayload, Option, Option, Option)> { - let (job_payload, tag, delete_after_use, script_timeout) = if script_path.starts_with("hub/") { - ( - JobPayload::ScriptHub { path: script_path.to_owned() }, - None, - None, - None, - ) - } else { - let ( - script_hash, - tag, - custom_concurrency_key, - concurrent_limit, - concurrency_time_window_s, - cache_ttl, - language, - dedicated_worker, - priority, - delete_after_use, - script_timeout, - has_preprocessor, - ) = get_latest_deployed_hash_for_path(db, w_id, script_path).await?; - ( - JobPayload::ScriptHash { - hash: script_hash, - path: script_path.to_owned(), +) -> error::Result<( + JobPayload, + Option, + Option, + Option, + Option, +)> { + let (job_payload, tag, delete_after_use, script_timeout, on_behalf_of) = + if script_path.starts_with("hub/") { + ( + JobPayload::ScriptHub { path: script_path.to_owned() }, + None, + None, + None, + None, + ) + } else { + let ( + script_hash, + tag, custom_concurrency_key, concurrent_limit, concurrency_time_window_s, - cache_ttl: cache_ttl, + cache_ttl, language, dedicated_worker, priority, - apply_preprocessor: !skip_preprocessor.unwrap_or(false) - && has_preprocessor.unwrap_or(false), - }, - tag, - delete_after_use, - script_timeout, - ) - }; - Ok((job_payload, tag, delete_after_use, script_timeout)) + delete_after_use, + script_timeout, + has_preprocessor, + on_behalf_of_email, + created_by, + ) = get_latest_deployed_hash_for_path(db, w_id, script_path).await?; + + let on_behalf_of = if let Some(email) = on_behalf_of_email { + Some(OnBehalfOf { + email, + permissioned_as: username_to_permissioned_as(created_by.as_str()), + }) + } else { + None + }; + + ( + JobPayload::ScriptHash { + hash: script_hash, + path: script_path.to_owned(), + custom_concurrency_key, + concurrent_limit, + concurrency_time_window_s, + cache_ttl: cache_ttl, + language, + dedicated_worker, + priority, + apply_preprocessor: !skip_preprocessor.unwrap_or(false) + && has_preprocessor.unwrap_or(false), + }, + tag, + delete_after_use, + script_timeout, + on_behalf_of, + ) + }; + Ok(( + job_payload, + tag, + delete_after_use, + script_timeout, + on_behalf_of, + )) } pub async fn script_hash_to_tag_and_limits<'c>( @@ -435,9 +469,11 @@ pub async fn script_hash_to_tag_and_limits<'c>( Option, Option, Option, + Option, + String, )> { let script = sqlx::query!( - "select tag, concurrency_key, concurrent_limit, concurrency_time_window_s, cache_ttl, language as \"language: ScriptLang\", dedicated_worker, priority, delete_after_use, timeout from script where hash = $1 AND workspace_id = $2", + "select tag, concurrency_key, concurrent_limit, concurrency_time_window_s, cache_ttl, language as \"language: ScriptLang\", dedicated_worker, priority, delete_after_use, timeout, on_behalf_of_email, created_by from script where hash = $1 AND workspace_id = $2", script_hash.0, w_id ) @@ -459,15 +495,17 @@ pub async fn script_hash_to_tag_and_limits<'c>( script.priority, script.delete_after_use, script.timeout, + script.on_behalf_of_email, + script.created_by, )) } -pub async fn get_payload_tag_from_prefixed_path<'e, E: sqlx::Executor<'e, Database = Postgres>>( +pub async fn get_payload_tag_from_prefixed_path( path: &str, - db: E, + db: &DB, w_id: &str, -) -> Result<(JobPayload, Option), Error> { - let (payload, tag, _, _) = if path.starts_with("script/") { +) -> Result<(JobPayload, Option, Option), Error> { + let (payload, tag, _, _, on_behalf_of) = if path.starts_with("script/") { script_path_to_payload(path.strip_prefix("script/").unwrap(), db, w_id, Some(true)).await? } else if path.starts_with("flow/") { let path = path.strip_prefix("flow/").unwrap().to_string(); @@ -486,6 +524,7 @@ pub async fn get_payload_tag_from_prefixed_path<'e, E: sqlx::Executor<'e, Databa tag, None, None, + None, ) } else { return Err(Error::BadRequest(format!( @@ -493,7 +532,7 @@ pub async fn get_payload_tag_from_prefixed_path<'e, E: sqlx::Executor<'e, Databa path ))); }; - Ok((payload, tag)) + Ok((payload, tag, on_behalf_of)) } #[derive(Deserialize)] diff --git a/backend/windmill-common/src/lib.rs b/backend/windmill-common/src/lib.rs index 158a94ddbe..4c33fae7b0 100644 --- a/backend/windmill-common/src/lib.rs +++ b/backend/windmill-common/src/lib.rs @@ -303,9 +303,11 @@ pub async fn get_latest_deployed_hash_for_path<'e, E: sqlx::Executor<'e, Databas Option, Option, Option, + Option, + String, )> { let r_o = sqlx::query!( - "select hash, tag, concurrency_key, concurrent_limit, concurrency_time_window_s, cache_ttl, language as \"language: ScriptLang\", dedicated_worker, priority, delete_after_use, timeout, has_preprocessor from script where path = $1 AND workspace_id = $2 AND + "select hash, tag, concurrency_key, concurrent_limit, concurrency_time_window_s, cache_ttl, language as \"language: ScriptLang\", dedicated_worker, priority, delete_after_use, timeout, has_preprocessor, on_behalf_of_email, created_by from script where path = $1 AND workspace_id = $2 AND created_at = (SELECT max(created_at) FROM script WHERE path = $1 AND workspace_id = $2 AND deleted = false AND lock IS not NULL AND lock_error_logs IS NULL)", script_path, @@ -329,6 +331,8 @@ pub async fn get_latest_deployed_hash_for_path<'e, E: sqlx::Executor<'e, Databas script.delete_after_use, script.timeout, script.has_preprocessor, + script.on_behalf_of_email, + script.created_by, )) } @@ -347,9 +351,11 @@ pub async fn get_latest_hash_for_path<'c>( Option, Option, Option, + Option, + String, )> { let r_o = sqlx::query!( - "select hash, tag, concurrency_key, concurrent_limit, concurrency_time_window_s, cache_ttl, language as \"language: ScriptLang\", dedicated_worker, priority, timeout FROM script where path = $1 AND workspace_id = $2 AND + "select hash, tag, concurrency_key, concurrent_limit, concurrency_time_window_s, cache_ttl, language as \"language: ScriptLang\", dedicated_worker, priority, timeout, on_behalf_of_email, created_by FROM script where path = $1 AND workspace_id = $2 AND created_at = (SELECT max(created_at) FROM script WHERE path = $1 AND workspace_id = $2 AND deleted = false AND archived = false)", script_path, @@ -371,5 +377,7 @@ pub async fn get_latest_hash_for_path<'c>( script.dedicated_worker, script.priority, script.timeout, + script.on_behalf_of_email, + script.created_by, )) } diff --git a/backend/windmill-common/src/scripts.rs b/backend/windmill-common/src/scripts.rs index 0fb05e6f45..6f33f2efe5 100644 --- a/backend/windmill-common/src/scripts.rs +++ b/backend/windmill-common/src/scripts.rs @@ -42,6 +42,7 @@ pub enum ScriptLang { Snowflake, Graphql, Mssql, + OracleDB, Php, Rust, Ansible, @@ -65,6 +66,7 @@ impl ScriptLang { ScriptLang::Snowflake => "snowflake", ScriptLang::Mssql => "mssql", ScriptLang::Graphql => "graphql", + ScriptLang::OracleDB => "oracledb", ScriptLang::Php => "php", ScriptLang::Rust => "rust", ScriptLang::Ansible => "ansible", @@ -126,6 +128,7 @@ pub enum ScriptKind { Failure, Script, Approval, + Preprocessor, } impl Display for ScriptKind { @@ -135,6 +138,7 @@ impl Display for ScriptKind { ScriptKind::Failure => "failure", ScriptKind::Script => "script", ScriptKind::Approval => "approval", + ScriptKind::Preprocessor => "preprocessor", })?; Ok(()) } @@ -197,6 +201,8 @@ pub struct Script { pub codebase: Option, #[serde(skip_serializing_if = "Option::is_none")] pub has_preprocessor: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub on_behalf_of_email: Option, } #[derive(Serialize, sqlx::FromRow)] @@ -294,6 +300,7 @@ pub struct NewScript { pub no_main_func: Option, pub codebase: Option, pub has_preprocessor: Option, + pub on_behalf_of_email: Option, } fn lock_deserialize<'de, D>(deserializer: D) -> Result, D::Error> diff --git a/backend/windmill-common/src/worker.rs b/backend/windmill-common/src/worker.rs index c64184b484..81c3537c8a 100644 --- a/backend/windmill-common/src/worker.rs +++ b/backend/windmill-common/src/worker.rs @@ -87,7 +87,7 @@ lazy_static::lazy_static! { pub static ref ALL_TAGS: Arc>> = Arc::new(RwLock::new(vec![])); - static ref CUSTOM_TAG_REGEX: Regex = Regex::new(r"^(\w+)\(((?:\w+)\+?)+\)$").unwrap(); + static ref CUSTOM_TAG_REGEX: Regex = Regex::new(r"^([\w-]+)\(((?:[\w-])+\+?)+\)$").unwrap(); pub static ref DISABLE_BUNDLING: bool = std::env::var("DISABLE_BUNDLING") .ok() diff --git a/backend/windmill-queue/src/jobs.rs b/backend/windmill-queue/src/jobs.rs index b66bf6ef43..2405be5b61 100644 --- a/backend/windmill-queue/src/jobs.rs +++ b/backend/windmill-queue/src/jobs.rs @@ -1514,7 +1514,7 @@ pub async fn push_error_handler<'a, 'c, T: Serialize + Send + Sync>( } else { w_id }; - let (payload, tag) = + let (payload, tag, on_behalf_of) = get_payload_tag_from_prefixed_path(on_failure_path, db, handler_w_id).await?; let mut extra = HashMap::new(); @@ -1543,6 +1543,25 @@ pub async fn push_error_handler<'a, 'c, T: Serialize + Send + Sync>( let result = sanitize_result(result); + let (email, permissioned_as) = if let Some(on_behalf_of) = on_behalf_of.as_ref() { + ( + on_behalf_of.email.as_str(), + on_behalf_of.permissioned_as.clone(), + ) + } else if is_global_error_handler { + (SUPERADMIN_SECRET_EMAIL, SUPERADMIN_SECRET_EMAIL.to_string()) + } else if is_schedule_error_handler { + ( + SCHEDULE_ERROR_HANDLER_USER_EMAIL, + ERROR_HANDLER_USER_GROUP.to_string(), + ) + } else { + ( + ERROR_HANDLER_USER_EMAIL, + ERROR_HANDLER_USER_GROUP.to_string(), + ) + }; + let tx = PushIsolationLevel::IsolatedRoot(db.clone()); let (uuid, tx) = push( &db, @@ -1557,18 +1576,8 @@ pub async fn push_error_handler<'a, 'c, T: Serialize + Send + Sync>( } else { ERROR_HANDLER_USERNAME }, - if is_global_error_handler { - SUPERADMIN_SECRET_EMAIL - } else if is_schedule_error_handler { - SCHEDULE_ERROR_HANDLER_USER_EMAIL - } else { - ERROR_HANDLER_USER_EMAIL - }, - if is_global_error_handler { - SUPERADMIN_SECRET_EMAIL.to_string() - } else { - ERROR_HANDLER_USER_GROUP.to_string() - }, + email, + permissioned_as, None, None, Some(job_id), @@ -1619,7 +1628,8 @@ async fn handle_recovered_schedule<'a, 'c, T: Serialize + Send + Sync>( successful_job_started_at: DateTime, extra_args: Option>>, ) -> windmill_common::error::Result<()> { - let (payload, tag) = get_payload_tag_from_prefixed_path(on_recovery_path, db, w_id).await?; + let (payload, tag, on_behalf_of) = + get_payload_tag_from_prefixed_path(on_recovery_path, db, w_id).await?; let mut extra = HashMap::new(); extra.insert( @@ -1656,6 +1666,18 @@ async fn handle_recovered_schedule<'a, 'c, T: Serialize + Send + Sync>( .and_then(|x| serde_json::from_str::>>(x.0.get()).ok()) .unwrap_or_else(HashMap::new); + let (email, permissioned_as) = if let Some(on_behalf_of) = on_behalf_of.as_ref() { + ( + on_behalf_of.email.as_str(), + on_behalf_of.permissioned_as.clone(), + ) + } else { + ( + SCHEDULE_RECOVERY_HANDLER_USER_EMAIL, + ERROR_HANDLER_USER_GROUP.to_string(), + ) + }; + let tx = PushIsolationLevel::Transaction(tx); let (uuid, tx) = push( &db, @@ -1664,8 +1686,8 @@ async fn handle_recovered_schedule<'a, 'c, T: Serialize + Send + Sync>( payload, PushArgs { extra: Some(extra), args: &args }, SCHEDULE_RECOVERY_HANDLER_USERNAME, - SCHEDULE_RECOVERY_HANDLER_USER_EMAIL, - ERROR_HANDLER_USER_GROUP.to_string(), + email, + permissioned_as, None, None, Some(job_id), @@ -1704,7 +1726,8 @@ async fn handle_successful_schedule<'a, 'c, T: Serialize + Send + Sync>( successful_job_started_at: DateTime, extra_args: Option>>, ) -> windmill_common::error::Result<()> { - let (payload, tag) = get_payload_tag_from_prefixed_path(on_success_path, db, w_id).await?; + let (payload, tag, on_behalf_of) = + get_payload_tag_from_prefixed_path(on_success_path, db, w_id).await?; let mut extra = HashMap::new(); extra.insert("schedule_path".to_string(), to_raw_value(&schedule_path)); @@ -1731,6 +1754,18 @@ async fn handle_successful_schedule<'a, 'c, T: Serialize + Send + Sync>( } } + let (email, permissioned_as) = if let Some(on_behalf_of) = on_behalf_of.as_ref() { + ( + on_behalf_of.email.as_str(), + on_behalf_of.permissioned_as.clone(), + ) + } else { + ( + SCHEDULE_RECOVERY_HANDLER_USER_EMAIL, + ERROR_HANDLER_USER_GROUP.to_string(), + ) + }; + let tx = PushIsolationLevel::IsolatedRoot(db.clone()); let (uuid, tx) = push( &db, @@ -1739,8 +1774,8 @@ async fn handle_successful_schedule<'a, 'c, T: Serialize + Send + Sync>( payload, PushArgs { extra: Some(extra), args: &HashMap::new() }, SCHEDULE_RECOVERY_HANDLER_USERNAME, - SCHEDULE_RECOVERY_HANDLER_USER_EMAIL, - ERROR_HANDLER_USER_GROUP.to_string(), + email, + permissioned_as, None, None, Some(job_id), @@ -3515,6 +3550,12 @@ pub async fn push<'c, 'd>( _low_level_priority }; // else it remains empty, i.e. no priority } + // prioritize flow steps to drain the queue faster + let final_priority = if flow_step_id.is_some() && final_priority.is_none() { + Some(0) + } else { + final_priority + }; let is_running = same_worker; if let Some(flow) = raw_flow.as_ref() { diff --git a/backend/windmill-queue/src/schedule.rs b/backend/windmill-queue/src/schedule.rs index 9bb39cc044..ea9f476ab6 100644 --- a/backend/windmill-queue/src/schedule.rs +++ b/backend/windmill-queue/src/schedule.rs @@ -103,17 +103,17 @@ pub async fn push_scheduled_job<'c>( } } - let (payload, tag, timeout) = if schedule.is_flow { + let (payload, tag, timeout, on_behalf_of_email, created_by) = if schedule.is_flow { let r = sqlx::query!( - "SELECT tag, dedicated_worker from flow WHERE path = $1 and workspace_id = $2", + "SELECT tag, dedicated_worker, on_behalf_of_email, edited_by from flow WHERE path = $1 and workspace_id = $2", &schedule.script_path, &schedule.workspace_id, ) .fetch_optional(&mut *tx) .await?; - let (tag, dedicated_worker) = r - .map(|x| (x.tag, x.dedicated_worker)) - .unwrap_or_else(|| (None, None)); + let (tag, dedicated_worker, on_behalf_of_email, edited_by) = r + .map(|x| (x.tag, x.dedicated_worker, x.on_behalf_of_email, x.edited_by)) + .unwrap_or_else(|| (None, None, None, "".to_string())); ( JobPayload::Flow { path: schedule.script_path.clone(), @@ -122,6 +122,8 @@ pub async fn push_scheduled_job<'c>( }, tag, None, + on_behalf_of_email, + edited_by, ) } else { let ( @@ -135,6 +137,8 @@ pub async fn push_scheduled_job<'c>( dedicated_worker, priority, timeout, + on_behalf_of_email, + created_by, ) = windmill_common::get_latest_hash_for_path( &mut tx, &schedule.workspace_id, @@ -174,6 +178,8 @@ pub async fn push_scheduled_job<'c>( tag }, timeout, + on_behalf_of_email, + created_by, ) } else { ( @@ -195,6 +201,8 @@ pub async fn push_scheduled_job<'c>( tag }, timeout, + on_behalf_of_email, + created_by, ) } }; @@ -214,16 +222,43 @@ pub async fn push_scheduled_job<'c>( ); }; + let (email, permissioned_as, push_authed, revert_to_windmill_user) = if let Some(email) = + on_behalf_of_email.as_ref() + { + let is_windmill_user = + sqlx::query_scalar!("SELECT CURRENT_USER = 'windmill_user' as \"is_windmill_user!\"") + .fetch_one(&mut *tx) + .await?; + if is_windmill_user { + sqlx::query!("SET LOCAL ROLE NONE") + .execute(&mut *tx) + .await?; + } + ( + email, + username_to_permissioned_as(&created_by), + None, + is_windmill_user, + ) + } else { + ( + &schedule.email, + username_to_permissioned_as(&schedule.edited_by), + authed, + false, + ) + }; + let tx = PushIsolationLevel::Transaction(tx); - let (_, tx) = push( + let (_, mut tx) = push( &db, tx, &schedule.workspace_id, payload, crate::PushArgs { args: &args, extra: None }, &schedule_to_user(&schedule.path), - &schedule.email, - username_to_permissioned_as(&schedule.edited_by), + email, + permissioned_as, Some(next), Some(schedule.path.clone()), None, @@ -237,10 +272,16 @@ pub async fn push_scheduled_job<'c>( timeout, None, None, - authed, + push_authed, ) .await?; + if revert_to_windmill_user { + sqlx::query!("SET LOCAL ROLE windmill_user") + .execute(&mut *tx) + .await?; + } + Ok(tx) // TODO: Bubble up pushed UUID from here } diff --git a/backend/windmill-worker/Cargo.toml b/backend/windmill-worker/Cargo.toml index 890d3f3a70..7bec644550 100644 --- a/backend/windmill-worker/Cargo.toml +++ b/backend/windmill-worker/Cargo.toml @@ -25,6 +25,7 @@ otel = ["windmill-common/otel", "dep:opentelemetry"] dind = ["dep:bollard"] php = ["dep:windmill-parser-php"] mysql = ["dep:mysql_async"] +oracledb = ["dep:oracle"] python = ["dep:windmill-parser-py", "dep:windmill-parser-py-imports"] csharp = ["dep:windmill-parser-csharp"] rust = ["dep:windmill-parser-rust"] @@ -104,6 +105,7 @@ backon.workspace = true opentelemetry = { workspace = true, optional = true } bollard = { workspace = true, optional = true } +oracle = { workspace = true, optional = true } [build-dependencies] deno_fetch = { workspace = true, optional = true } diff --git a/backend/windmill-worker/loader.bun.js b/backend/windmill-worker/loader.bun.js index ce75cbfc15..857bc95573 100644 --- a/backend/windmill-worker/loader.bun.js +++ b/backend/windmill-worker/loader.bun.js @@ -23,7 +23,7 @@ const p = { const filterLoad = new RegExp(`^${cdir}\/main\\.ts$`); const transpiler = new Bun.Transpiler({ - loader: "tsx", + loader: "ts", }); function replaceRelativeImports(code) { diff --git a/backend/windmill-worker/loader_builder.bun.js b/backend/windmill-worker/loader_builder.bun.js index 1ef09f1a04..dec0e41fed 100644 --- a/backend/windmill-worker/loader_builder.bun.js +++ b/backend/windmill-worker/loader_builder.bun.js @@ -14,6 +14,7 @@ import { semver } from "bun"; if (!bo.success) { bo.logs.forEach((l) => console.log(l)); + console.log("Failed to build bundle"); process.exit(1); } else { let content = await fs.readFile("./out/main.js", { encoding: "utf8" }); diff --git a/backend/windmill-worker/nsjail/download_deps.py.sh b/backend/windmill-worker/nsjail/download_deps.py.sh index 3898282d2a..1d8e911f74 100755 --- a/backend/windmill-worker/nsjail/download_deps.py.sh +++ b/backend/windmill-worker/nsjail/download_deps.py.sh @@ -30,6 +30,7 @@ CMD="/usr/local/bin/uv pip install $INDEX_URL_ARG $EXTRA_INDEX_URL_ARG $TRUSTED_HOST_ARG --index-strategy unsafe-best-match --system +--reinstall " echo $CMD diff --git a/backend/windmill-worker/src/bun_executor.rs b/backend/windmill-worker/src/bun_executor.rs index d0fd654d73..5f62720b44 100644 --- a/backend/windmill-worker/src/bun_executor.rs +++ b/backend/windmill-worker/src/bun_executor.rs @@ -407,6 +407,7 @@ const bo = await Bun.build({{ if (!bo.success) {{ bo.logs.forEach((l) => console.log(l)); + console.log("Failed to build node bundle"); process.exit(1); }} "#, @@ -454,6 +455,7 @@ const bo = await Bun.build({{ if (!bo.success) {{ bo.logs.forEach((l) => console.log(l)); + console.log("Failed to build node bundle"); process.exit(1); }} "#, diff --git a/backend/windmill-worker/src/csharp_executor.rs b/backend/windmill-worker/src/csharp_executor.rs index 7d36e1fef0..61f53ab65a 100644 --- a/backend/windmill-worker/src/csharp_executor.rs +++ b/backend/windmill-worker/src/csharp_executor.rs @@ -235,11 +235,15 @@ fn gen_cs_proj( let script_call = match (sig_meta.is_async, sig_meta.returns_void) { (true, true) => format!( r#" - {class_name}.Main({spread}).Wait();"# + {class_name}.Main({spread}).Wait(); + File.WriteAllText("result.json", "null"); + "# ), (false, true) => format!( r#" - {class_name}.Main({spread});"# + {class_name}.Main({spread}); + File.WriteAllText("result.json", "null"); + "# ), (false, false) => format!( @@ -282,9 +286,15 @@ namespace WindmillScriptCSharpInternal {{ using FileStream fs = File.OpenRead("args.json"); Args parsedArgs = JsonSerializer.Deserialize(fs); - File.WriteAllText("result.json", "null"); - - {script_call} + try + {{ + {script_call} + }} + catch (Exception ex) + {{ + Console.Error.WriteLine("Unhandeled Exception: " + ex.ToString()); + Environment.Exit(1); + }} }} }} }} @@ -330,6 +340,7 @@ async fn build_cs_proj( job_dir, "--no-self-contained", "-p:PublishSingleFile=true", + "-p:IncludeNativeLibrariesForSelfExtract=true", ]) .stdout(Stdio::piped()) .stderr(Stdio::piped()); diff --git a/backend/windmill-worker/src/lib.rs b/backend/windmill-worker/src/lib.rs index 4a8766099d..d887f14d81 100644 --- a/backend/windmill-worker/src/lib.rs +++ b/backend/windmill-worker/src/lib.rs @@ -36,6 +36,8 @@ mod rust_executor; mod worker; mod worker_flow; mod worker_lockfiles; +#[cfg(feature = "oracledb")] +mod oracledb_executor; pub use worker::*; pub use result_processor::handle_job_error; diff --git a/backend/windmill-worker/src/oracledb_executor.rs b/backend/windmill-worker/src/oracledb_executor.rs new file mode 100644 index 0000000000..fc5686568e --- /dev/null +++ b/backend/windmill-worker/src/oracledb_executor.rs @@ -0,0 +1,418 @@ +use anyhow::anyhow; +use chrono::Utc; +use std::{collections::HashMap, str::FromStr, sync::Arc}; +use windmill_parser::Arg; + +use futures::{future::BoxFuture, FutureExt}; +use itertools::Itertools; +use oracle::sql_type::{InnerValue, OracleType, ToSql}; +use serde::{Deserialize, Serialize}; +use serde_json::{json, value::RawValue, Value}; +use sqlx::types::Json; +use windmill_common::{ + error::{to_anyhow, Error}, + jobs::QueuedJob, + worker::to_raw_value, +}; +use windmill_parser_sql::{ + parse_db_resource, parse_oracledb_sig, parse_sql_blocks, parse_sql_statement_named_params, +}; +use windmill_queue::CanceledBy; + +use crate::{ + common::{check_executor_binary_exists, build_args_map, OccupancyMetrics}, + handle_child::run_future_with_polling_update_job_poller, + AuthedClientBackgroundTask, +}; + +#[derive(Deserialize)] +struct OracleDatabase { + user: String, + password: String, + database: String, +} + +lazy_static::lazy_static! { + static ref ORACLE_LIB_DIR: String = std::env::var("ORACLE_LIB_DIR").unwrap_or_else(|_| "/opt/oracle/23/lib".to_string()); +} + +pub fn do_oracledb_inner<'a>( + query: &str, + params: Vec<(String, Box)>, + conn: Arc>, + column_order: Option<&'a mut Option>>, + skip_collect: bool, +) -> windmill_common::error::Result>>> { + let qw = query.trim_end_matches(';').to_string(); + + let result_f = async move { + let param_names = parse_sql_statement_named_params(&qw, ':') + .into_iter() + .map(|x| x.into_bytes()) + .collect_vec(); + + if skip_collect { + tokio::task::spawn_blocking(move || { + let c = conn.lock()?; + + let params2: Vec<(&str, &dyn ToSql)> = params + .iter() + .filter(|(k, _)| param_names.contains(&k.clone().into_bytes())) + .map(|(key, val)| (key.as_str(), &**val as &dyn ToSql)) + .collect(); + + let mut stmt = c.statement(&qw).build()?; + + match stmt.statement_type() { + oracle::StatementType::Select => { + stmt.query_named(¶ms2)?; + } + _ => { + stmt.execute_named(¶ms2)?; + c.commit()?; + } + } + oracle::Result::Ok(()) + }) + .await + .map_err(to_anyhow)? + .map_err(to_anyhow)?; + + Ok(to_raw_value(&Value::Array(vec![]))) + } else { + let rows = tokio::task::spawn_blocking(move || { + let params2: Vec<(&str, &dyn ToSql)> = params + .iter() + .filter(|(k, _)| param_names.contains(&k.clone().into_bytes())) + .map(|(key, val)| (key.as_str(), &**val as &dyn ToSql)) + .collect(); + + let c = conn.lock()?; + let mut stmt = c.statement(&qw).build()?; + + let rows = match stmt.statement_type() { + oracle::StatementType::Select => { + let result_rows = stmt.query_named(¶ms2)?; + let rows: Vec = + result_rows.into_iter().filter_map(Result::ok).collect_vec(); + rows + } + _ => { + stmt.execute_named(¶ms2)?; + c.commit()?; + vec![] + } + }; + + oracle::Result::Ok(rows) + }) + .await + .map_err(to_anyhow)? + .map_err(to_anyhow)?; + + if let Some(column_order) = column_order { + *column_order = Some( + rows.first() + .map(|x| { + x.column_info() + .iter() + .map(|x| x.name().to_string()) + .collect::>() + }) + .unwrap_or_default(), + ); + } + + Ok(to_raw_value( + &rows + .into_iter() + .map(|x| convert_row_to_value(x)) + .collect::>(), + )) + } + }; + + Ok(result_f.boxed()) +} + +fn convert_row_to_value(row: oracle::Row) -> serde_json::Value { + let mut map = serde_json::Map::new(); + + for (key, value) in row.column_info().iter().zip(row.sql_values()) { + map.insert( + key.name().to_string(), + convert_oracledb_value_to_json(value, key.oracle_type()), + ); + } + serde_json::Value::Object(map) +} + +fn conversion_error(r: Result) -> serde_json::Value { + match r { + Ok(v) => json!(v), + Err(e) => json!(format!("Error converting value: {:?}", e)), + } +} + +fn convert_oracledb_value_to_json(v: &oracle::SqlValue, c: &OracleType) -> serde_json::Value { + match v.as_inner_value() { + Err(_) => serde_json::Value::Null, + Ok(iv) => match iv { + InnerValue::Int64(n) => json!(n), + InnerValue::UInt64(n) => json!(n), + InnerValue::Float(n) => json!(n), + InnerValue::Double(n) => json!(n), + InnerValue::Char(n) => json!(String::from_utf8_lossy(n)), + InnerValue::Number(n) => json!(n), + InnerValue::Boolean(n) => json!(n), + InnerValue::Timestamp(_) => conversion_error(v.get::()), + InnerValue::IntervalDS(_) => conversion_error(v.get::()), + InnerValue::IntervalYM(_) => conversion_error(v.get::()), + InnerValue::Clob(_) => json!("Unsupported type Clob"), + InnerValue::Blob(_) => json!("Unsupported type Blob"), + InnerValue::Rowid(_) => json!("Unsupported type Rowid"), + InnerValue::Object(_) => json!("Unsuppported type Object"), + InnerValue::Stmt(_) => json!("Unsupported type Stmt"), + InnerValue::Raw(b) => { + match c { + OracleType::Varchar2(_) + | OracleType::NVarchar2(_) + | OracleType::Char(_) + | OracleType::NChar(_) + | OracleType::Json + | OracleType::Xml => { + let s = String::from_utf8_lossy(b); + json!(s) + } + + // OracleType::Rowid => todo!(), + // OracleType::Raw(_) => todo!(), + // + // OracleType::BinaryFloat => todo!(), + // OracleType::BinaryDouble => todo!(), + // OracleType::Number(_, _) => todo!(), + // OracleType::Float(_) => todo!(), + // OracleType::Int64 => todo!(), + // OracleType::UInt64 => todo!(), + // OracleType::Long => todo!(), + // OracleType::LongRaw => todo!(), + OracleType::Date + | OracleType::Timestamp(_) + | OracleType::TimestampTZ(_) + | OracleType::TimestampLTZ(_) + | OracleType::IntervalDS(_, _) + | OracleType::IntervalYM(_) => conversion_error(v.get::()), + + // OracleType::CLOB => todo!(), + // OracleType::NCLOB => todo!(), + // OracleType::BLOB => todo!(), + // OracleType::BFILE => todo!(), + // OracleType::RefCursor => todo!(), + // OracleType::Boolean => todo!(), + // OracleType::Object(_) => todo!(), + _ => json!(format!("Unsupported type: {c:?}")), + } + } + _ => json!(format!("Unsupported type: {c:?}")), + }, + } +} + +fn get_statement_values( + sig: Vec, + job_args: Option<&Json>>>, +) -> (Vec<(String, Box)>, Vec) { + let mut statement_values = vec![]; + let mut errors = vec![]; + + for arg in &sig { + let arg_t = arg.otyp.clone().unwrap_or_else(|| "text".to_string()); + let arg_n = arg.name.clone(); + let oracle_v: Box = match job_args + .and_then(|x| { + x.get(arg.name.as_str()) + .map(|x| serde_json::from_str::(x.get()).ok()) + }) + .flatten() + .unwrap_or_else(|| json!(null)) + { + // Value::Null => todo!(), + Value::Bool(b) => Box::new(b), + Value::String(s) + if arg_t == "timestamp" + || arg_t == "datetime" + || arg_t == "date" + || arg_t == "time" => + { + if let Ok(d) = chrono::DateTime::::from_str(s.as_str()) { + Box::new(d) + } else { + Box::new(s) + } + } + Value::String(s) => Box::new(s), + Value::Number(n) + if n.is_i64() + && (arg_t == "int" + || arg_t == "integer" + || arg_t == "smallint" + || arg_t == "bigint") => + { + Box::new(n.as_i64().unwrap()) + } + Value::Number(n) if n.is_f64() && arg_t == "float" => { + Box::new(n.as_f64().unwrap() as f32) + } + Value::Number(n) if n.is_i64() && arg_t == "float" => { + Box::new(n.as_i64().unwrap() as f32) + } + Value::Number(n) if n.is_u64() && arg_t == "uint" => Box::new(n.as_u64().unwrap()), + Value::Number(n) + if n.is_f64() && (arg_t == "real" || arg_t == "dec" || arg_t == "fixed") => + { + Box::new(n.as_f64().unwrap()) + } + Value::Number(n) + if n.is_i64() && (arg_t == "real" || arg_t == "dec" || arg_t == "fixed") => + { + Box::new(n.as_i64().unwrap() as f64) + } + value @ _ => { + errors.push(format!( + "Unsupported type in query: {value:?} and signature {arg_t:?} for {arg_n}" + )); + continue; + } + }; + + statement_values.push((arg_n, oracle_v)); + } + + (statement_values, errors) +} + +pub async fn do_oracledb( + job: &QueuedJob, + client: &AuthedClientBackgroundTask, + query: &str, + db: &sqlx::Pool, + mem_peak: &mut i32, + canceled_by: &mut Option, + worker_name: &str, + column_order: &mut Option>, + occupancy_metrics: &mut OccupancyMetrics, +) -> windmill_common::error::Result> { + check_executor_binary_exists("the Oracle client lib", ORACLE_LIB_DIR.as_str(), "Oracle Database")?; + + let args = build_args_map(job, client, db).await?.map(Json); + let job_args = if args.is_some() { + args.as_ref() + } else { + job.args.as_ref() + }; + + let inline_db_res_path = parse_db_resource(&query); + + let db_arg = if let Some(inline_db_res_path) = inline_db_res_path { + let val = client + .get_authed() + .await + .get_resource_value_interpolated::( + &inline_db_res_path, + Some(job.id.to_string()), + ) + .await?; + + let as_raw = serde_json::from_value(val).map_err(|e| { + Error::InternalErr(format!("Error while parsing inline resource: {e:#}")) + })?; + + Some(as_raw) + } else { + job_args.and_then(|x| x.get("database").cloned()) + }; + + let database = if let Some(db) = db_arg { + serde_json::from_str::(db.get()) + .map_err(|e| Error::ExecutionErr(e.to_string()))? + } else { + return Err(Error::BadRequest("Missing database argument".to_string())); + }; + + let annotations = windmill_common::worker::SqlAnnotations::parse(query); + + let sig = parse_oracledb_sig(query) + .map_err(|x| Error::ExecutionErr(x.to_string()))? + .args; + + let (statement_values, errors) = get_statement_values(sig.clone(), job_args); + + if !errors.is_empty() { + return Err(Error::ExecutionErr(errors.join("\n"))); + } + + if !oracle::InitParams::is_initialized() { + let _ = oracle::InitParams::new() + .oracle_client_lib_dir(ORACLE_LIB_DIR.as_str()) + .map_err(|e| anyhow!("Failed to initialize oracle client: {e}"))? + .init(); + } + + let conn = tokio::task::spawn_blocking(|| { + oracle::Connection::connect(database.user, database.password, database.database) + .map_err(|e| Error::ExecutionErr(e.to_string())) + }) + .await + .map_err(to_anyhow)??; + + let conn_a = Arc::new(std::sync::Mutex::new(conn)); + + let queries = parse_sql_blocks(query); + + let result_f = if queries.len() > 1 { + let f = async { + let mut res: Vec> = vec![]; + for (i, q) in queries.iter().enumerate() { + let (vals, _) = get_statement_values(sig.clone(), job_args); + let r = do_oracledb_inner( + q, + vals, + conn_a.clone(), + None, + annotations.return_last_result && i < queries.len() - 1, + )? + .await?; + res.push(r); + } + + if annotations.return_last_result && res.len() > 0 { + Ok(res.pop().unwrap()) + } else { + Ok(to_raw_value(&res)) + } + }; + + f.boxed() + } else { + do_oracledb_inner(query, statement_values, conn_a, Some(column_order), false)? + }; + + let result = run_future_with_polling_update_job_poller( + job.id, + job.timeout, + db, + mem_peak, + canceled_by, + result_f, + worker_name, + &job.workspace_id, + &mut Some(occupancy_metrics), + Box::pin(futures::stream::once(async { 0 })), + ) + .await?; + + let raw_result = windmill_common::worker::to_raw_value(&json!(result)); + *mem_peak = (raw_result.get().len() / 1000) as i32; + + return Ok(raw_result); +} diff --git a/backend/windmill-worker/src/python_executor.rs b/backend/windmill-worker/src/python_executor.rs index 4d3aa2ecc1..68ba52c701 100644 --- a/backend/windmill-worker/src/python_executor.rs +++ b/backend/windmill-worker/src/python_executor.rs @@ -7,7 +7,6 @@ use std::{ }; use anyhow::anyhow; -use futures::lock::Mutex; use itertools::Itertools; use regex::Regex; use serde_json::value::RawValue; @@ -36,8 +35,6 @@ use windmill_common::variables::get_secret_value_as_admin; use windmill_queue::{append_logs, CanceledBy}; lazy_static::lazy_static! { - static ref BUSY_WITH_UV_INSTALL: Mutex<()> = Mutex::new(()); - static ref PYTHON_PATH: String = std::env::var("PYTHON_PATH").unwrap_or_else(|_| "/usr/local/bin/python3".to_string()); @@ -649,7 +646,7 @@ def to_b_64(v: bytes): b64 = base64.b64encode(v) return b64.decode('ascii') -replace_nan = re.compile(r'(?:\bNaN\b|\\*\\u0000)') +replace_invalid_fields = re.compile(r'(?:\bNaN\b|\\*\\u0000|Infinity|\-Infinity)') result_json = os.path.join(os.path.abspath(os.path.dirname(__file__)), "result.json") @@ -666,7 +663,7 @@ def res_to_json(res): for k, v in res.items(): if type(v).__name__ == 'bytes': res[k] = to_b_64(v) - return re.sub(replace_nan, ' null ', json.dumps(res, separators=(',', ':'), default=str).replace('\n', '')) + return re.sub(replace_invalid_fields, ' null ', json.dumps(res, separators=(',', ':'), default=str).replace('\n', '')) try: {preprocessor} @@ -1248,6 +1245,8 @@ async fn spawn_uv_install( "--target", venv_p, "--no-cache", + // If we invoke uv pip install, then we want to overwrite existing data + "--reinstall", ] }; @@ -1356,7 +1355,6 @@ pub async fn handle_python_reqs( mut no_uv_install: bool, is_ansible: bool, ) -> error::Result> { - let lock = BUSY_WITH_UV_INSTALL.lock().await; let counter_arc = Arc::new(tokio::sync::Mutex::new(0)); // Append logs with line like this: // [9/21] + requests==2.32.3 << (S3) | in 57ms @@ -1486,10 +1484,11 @@ pub async fn handle_python_reqs( "{py_prefix}/{}", req.replace(' ', "").replace('/', "").replace(':', "") ); - if metadata(&venv_p).await.is_ok() { + if metadata(venv_p.clone() + "/.valid.windmill").await.is_ok() { req_paths.push(venv_p); in_cache.push(req.to_string()); } else { + // There is no valid or no wheel at all. Regardless of if there is content or not, we will overwrite it with --reinstall flag req_with_penv.push((req.to_string(), venv_p)); } } @@ -1520,12 +1519,6 @@ pub async fn handle_python_reqs( let pids = Arc::new(tokio::sync::Mutex::new(vec![None; total_to_install])); let mem_peak_thread_safe = Arc::new(tokio::sync::Mutex::new(0)); { - // when we cancel the job, it has up to 1 second window before actually getting cancelled - // Thus the directory with wheel in windmill's cache cleaned only after that. - // If we manage to start new job during that period windmill might see that wanted wheel is already there (because we have not cleaned it yet) - // and write it to installed wheels, meanwhile previous job will clean that wheel. - // To fix that we create lock, which will pipeline all uv installs on worker - let _lock = lock; let pids = pids.clone(); let mem_peak_thread_safe = mem_peak_thread_safe.clone(); tokio::spawn(async move { @@ -1705,9 +1698,10 @@ pub async fn handle_python_reqs( tracing::info!( workspace_id = %w_id, + job_id = %job_id, // is_ok = out, "started thread to install wheel {}", - job_id + venv_p ); let start = std::time::Instant::now(); @@ -1721,7 +1715,7 @@ pub async fn handle_python_reqs( if let Err(e) = pull { tracing::info!( workspace_id = %w_id, - "No tarball was found on S3 or different problem occured {job_id}:\n{e}", + "No tarball was found for {venv_p} on S3 or different problem occured {job_id}:\n{e}", ); } else { print_success( @@ -1858,12 +1852,24 @@ pub async fn handle_python_reqs( tracing::info!( workspace_id = %w_id, + job_id = %job_id, // is_ok = out, "finished setting up python dependency {}", - job_id + venv_p ); pids.lock().await.get_mut(i).and_then(|e| e.take()); + // Create a file to indicate that installation was successfull + let valid_path = venv_p.clone() + "/.valid.windmill"; + // This is atomic operation, meaning, that it either completes and wheel is valid, + // or it does not and wheel is invalid and will be reinstalled next run + if let Err(e) = File::create(&valid_path).await{ + tracing::error!( + workspace_id = %w_id, + job_id = %job_id, + "Failed to create {}!\n{e}\n + This file needed for python jobs to function", valid_path) + }; Ok(()) })); } @@ -1880,13 +1886,6 @@ pub async fn handle_python_reqs( "Env installation failed: {:?}", e ); - if let Err(e) = fs::remove_dir_all(&venv_p) { - tracing::warn!( - workspace_id = %w_id, - "Failed to remove cache dir: {:?}", - e - ); - } } else { req_paths.push(venv_p); } @@ -2010,7 +2009,7 @@ def to_b_64(v: bytes): b64 = base64.b64encode(v) return b64.decode('ascii') -replace_nan = re.compile(r'(?:\bNaN\b|\\u0000)') +replace_invalid_fields = re.compile(r'(?:\bNaN\b|\\u0000|Infinity|\-Infinity)') sys.stdout.write('start\n') for line in sys.stdin: @@ -2038,7 +2037,7 @@ for line in sys.stdin: for k, v in res.items(): if type(v).__name__ == 'bytes': res[k] = to_b_64(v) - res_json = re.sub(replace_nan, ' null ', json.dumps(res, separators=(',', ':'), default=str).replace('\n', '')) + res_json = re.sub(replace_invalid_fields, ' null ', json.dumps(res, separators=(',', ':'), default=str).replace('\n', '')) sys.stdout.write("wm_res[success]:" + res_json + "\n") except BaseException as e: exc_type, exc_value, exc_traceback = sys.exc_info() diff --git a/backend/windmill-worker/src/worker.rs b/backend/windmill-worker/src/worker.rs index 88e556a2b7..0a0599047f 100644 --- a/backend/windmill-worker/src/worker.rs +++ b/backend/windmill-worker/src/worker.rs @@ -90,26 +90,12 @@ use tokio::{ use rand::Rng; use crate::{ - bash_executor::{handle_bash_job, handle_powershell_job}, - bun_executor::handle_bun_job, - common::{ + bash_executor::{handle_bash_job, handle_powershell_job}, bun_executor::handle_bun_job, common::{ build_args_map, cached_result_path, get_cached_resource_value_if_valid, get_reserved_variables, update_worker_ping_for_failed_init_script, OccupancyMetrics, - }, - csharp_executor::handle_csharp_job, - deno_executor::handle_deno_job, - go_executor::handle_go_job, - graphql_executor::do_graphql, - handle_child::SLOW_LOGS, - handle_job_error, - job_logger::NO_LOGS_AT_ALL, - js_eval::{eval_fetch_timeout, transpile_ts}, - pg_executor::do_postgresql, - result_processor::{process_result, start_background_processor}, - worker_flow::{handle_flow, update_flow_status_in_progress}, - worker_lockfiles::{ + }, csharp_executor::handle_csharp_job, deno_executor::handle_deno_job, go_executor::handle_go_job, graphql_executor::do_graphql, handle_child::SLOW_LOGS, handle_job_error, job_logger::NO_LOGS_AT_ALL, js_eval::{eval_fetch_timeout, transpile_ts}, pg_executor::do_postgresql, result_processor::{process_result, start_background_processor}, worker_flow::{handle_flow, update_flow_status_in_progress}, worker_lockfiles::{ handle_app_dependency_job, handle_dependency_job, handle_flow_dependency_job, - }, + } }; #[cfg(feature = "rust")] @@ -127,6 +113,9 @@ use crate::ansible_executor::handle_ansible_job; #[cfg(feature = "mysql")] use crate::mysql_executor::do_mysql; +#[cfg(feature = "oracledb")] +use crate::oracledb_executor::do_oracledb; + use backon::ConstantBuilder; use backon::{BackoffBuilder, Retryable}; @@ -2480,6 +2469,37 @@ async fn handle_code_execution_job( ) .await; } + } else if language == Some(ScriptLang::OracleDB) { + #[cfg(not(feature = "enterprise"))] + { + return Err(Error::ExecutionErr( + "Oracle DB is only available with an enterprise license".to_string(), + )); + } + + #[allow(unreachable_code)] + #[cfg(not(feature = "oracledb"))] + { + return Err(Error::InternalErr( + "Oracle DB requires the oracledb feature to be enabled".to_string(), + )); + } + + #[cfg(all(feature = "enterprise", feature = "oracledb"))] + { + return do_oracledb( + job, + &client, + &code, + db, + mem_peak, + canceled_by, + worker_name, + column_order, + occupancy_metrics, + ) + .await; + } } else if language == Some(ScriptLang::Graphql) { return do_graphql( job, diff --git a/backend/windmill-worker/src/worker_flow.rs b/backend/windmill-worker/src/worker_flow.rs index 3feec7830e..b320b9a445 100644 --- a/backend/windmill-worker/src/worker_flow.rs +++ b/backend/windmill-worker/src/worker_flow.rs @@ -40,9 +40,10 @@ use windmill_common::flow_status::{ use windmill_common::flows::{add_virtual_items_if_necessary, Branch, FlowNodeId}; use windmill_common::jobs::{ script_hash_to_tag_and_limits, script_path_to_payload, BranchResults, JobKind, JobPayload, - QueuedJob, RawCode, ENTRYPOINT_OVERRIDE, + OnBehalfOf, QueuedJob, RawCode, ENTRYPOINT_OVERRIDE, }; use windmill_common::scripts::ScriptHash; +use windmill_common::users::username_to_permissioned_as; use windmill_common::utils::WarnAfterExt; use windmill_common::worker::to_raw_value; use windmill_common::{ @@ -2547,6 +2548,13 @@ async fn push_next_flow_job( } else { Some(flow_job.tag.clone()) }; + + let (email, permissioned_as) = if let Some(on_behalf_of) = payload_tag.on_behalf_of.as_ref() + { + (&on_behalf_of.email, on_behalf_of.permissioned_as.clone()) + } else { + (&flow_job.email, flow_job.permissioned_as.to_owned()) + }; let tx2 = PushIsolationLevel::Transaction(tx); let (uuid, mut inner_tx) = push( &db, @@ -2555,8 +2563,8 @@ async fn push_next_flow_job( payload_tag.payload.clone(), push_args, &flow_job.created_by, - &flow_job.email, - flow_job.permissioned_as.to_owned(), + email, + permissioned_as, scheduled_for_o, flow_job.schedule_path.clone(), Some(flow_job.id), @@ -2913,6 +2921,7 @@ struct JobPayloadWithTag { tag: Option, delete_after_use: bool, timeout: Option, + on_behalf_of: Option, } enum ContinuePayload { SingleJob(JobPayloadWithTag), @@ -3010,6 +3019,7 @@ async fn compute_next_flow_transform( tag: None, delete_after_use: false, timeout: None, + on_behalf_of: None, }), NextStatus::NextStep, )); @@ -3021,6 +3031,7 @@ async fn compute_next_flow_transform( tag: None, delete_after_use: false, timeout: None, + on_behalf_of: None, }), NextStatus::NextStep, )) @@ -3035,7 +3046,8 @@ async fn compute_next_flow_transform( match module.get_value()? { FlowModuleValue::Identity => trivial_next_job(JobPayload::Identity), FlowModuleValue::Flow { path, .. } => { - let payload = flow_to_payload(path, delete_after_use); + let payload = + flow_to_payload(path, delete_after_use, &flow_job.workspace_id, db).await?; Ok(NextFlowTransform::Continue( ContinuePayload::SingleJob(payload), NextStatus::NextStep, @@ -3105,6 +3117,7 @@ async fn compute_next_flow_transform( tag: tag.clone(), delete_after_use, timeout: module.timeout, + on_behalf_of: None, }; Ok(NextFlowTransform::Continue( ContinuePayload::SingleJob(payload), @@ -3229,6 +3242,7 @@ async fn compute_next_flow_transform( tag: None, delete_after_use, timeout: None, + on_behalf_of: None, }) }) .collect::>(); @@ -3323,6 +3337,7 @@ async fn compute_next_flow_transform( tag: None, delete_after_use, timeout: None, + on_behalf_of: None, }), NextStatus::BranchChosen(branch), )) @@ -3356,6 +3371,7 @@ async fn compute_next_flow_transform( tag: None, delete_after_use, timeout: None, + on_behalf_of: None, }) }) .collect::>(); @@ -3427,6 +3443,7 @@ async fn compute_next_flow_transform( tag: None, delete_after_use, timeout: None, + on_behalf_of: None, }), NextStatus::NextBranchStep(NextBranch { status: branch_status, @@ -3488,6 +3505,7 @@ async fn next_loop_iteration( tag: None, delete_after_use, timeout: None, + on_behalf_of: None, }), NextStatus::NextLoopIteration { next: ns, simple_input_transforms: None }, )) @@ -3659,7 +3677,9 @@ async fn payload_from_simple_module( ) -> Result { let delete_after_use = module.delete_after_use.unwrap_or(false); Ok(match value { - FlowModuleValue::Flow { path, .. } => flow_to_payload(path, delete_after_use), + FlowModuleValue::Flow { path, .. } => { + flow_to_payload(path, delete_after_use, &flow_job.workspace_id, db).await? + } FlowModuleValue::Script { path: script_path, hash: script_hash, tag_override, .. } => { script_to_payload(script_hash, script_path, db, flow_job, module, tag_override).await? } @@ -3707,6 +3727,7 @@ async fn payload_from_simple_module( tag, delete_after_use, timeout: module.timeout, + on_behalf_of: None, }, _ => unreachable!("is simple flow"), }) @@ -3740,12 +3761,31 @@ fn raw_script_to_payload( tag, delete_after_use, timeout: module.timeout, + on_behalf_of: None, } } -fn flow_to_payload(path: String, delete_after_use: bool) -> JobPayloadWithTag { +async fn flow_to_payload( + path: String, + delete_after_use: bool, + w_id: &str, + db: &DB, +) -> Result { + let record = sqlx::query!( + "SELECT on_behalf_of_email, edited_by FROM flow WHERE path = $1 AND workspace_id = $2", + path, + w_id, + ) + .fetch_one(db) + .await + .map_err(|e| Error::NotFound(format!("fetching flow: {e:#}")))?; + let on_behalf_of = if let Some(email) = record.on_behalf_of_email { + Some(OnBehalfOf { email, permissioned_as: username_to_permissioned_as(&record.edited_by) }) + } else { + None + }; let payload = JobPayload::Flow { path, dedicated_worker: None, apply_preprocessor: false }; - JobPayloadWithTag { payload, tag: None, delete_after_use, timeout: None } + Ok(JobPayloadWithTag { payload, tag: None, delete_after_use, timeout: None, on_behalf_of }) } async fn script_to_payload( @@ -3761,14 +3801,15 @@ async fn script_to_payload( } else { tag_override }; - let (payload, tag, delete_after_use, script_timeout) = if script_hash.is_none() { - let (jp, tag, delete_after_use, script_timeout) = + let (payload, tag, delete_after_use, script_timeout, on_behalf_of) = if script_hash.is_none() { + let (jp, tag, delete_after_use, script_timeout, on_behalf_of) = script_path_to_payload(&script_path, db, &flow_job.workspace_id, Some(true)).await?; ( jp, tag_override.to_owned().or(tag), delete_after_use, script_timeout, + on_behalf_of, ) } else { let hash = script_hash.unwrap(); @@ -3784,7 +3825,14 @@ async fn script_to_payload( priority, delete_after_use, script_timeout, + on_behalf_of_email, + created_by, ) = script_hash_to_tag_and_limits(&hash, &mut tx, &flow_job.workspace_id).await?; + let on_behalf_of = if let Some(email) = on_behalf_of_email { + Some(OnBehalfOf { email, permissioned_as: username_to_permissioned_as(&created_by) }) + } else { + None + }; ( JobPayload::ScriptHash { hash, @@ -3801,6 +3849,7 @@ async fn script_to_payload( tag_override.to_owned().or(tag), delete_after_use, script_timeout, + on_behalf_of, ) }; // the module value overrides the value set at the script level. Defaults to false if both are unset. @@ -3812,6 +3861,7 @@ async fn script_to_payload( tag, delete_after_use: final_delete_after_user, timeout: flow_step_timeout, + on_behalf_of, }) } diff --git a/backend/windmill-worker/src/worker_lockfiles.rs b/backend/windmill-worker/src/worker_lockfiles.rs index 8d45ec9ca2..06b7e4f0d2 100644 --- a/backend/windmill-worker/src/worker_lockfiles.rs +++ b/backend/windmill-worker/src/worker_lockfiles.rs @@ -444,20 +444,21 @@ async fn trigger_dependents_to_recompute_dependencies( let kind = s.importer_kind.clone().unwrap_or_default(); let job_payload = if kind == "script" { let r = get_latest_deployed_hash_for_path(db, w_id, s.importer_path.as_str()).await; - if let Ok(r) = r { - JobPayload::Dependencies { + match r { + Ok(r) => JobPayload::Dependencies { path: s.importer_path.clone(), hash: r.0, language: r.6, dedicated_worker: r.7, + }, + Err(err) => { + tracing::error!( + "error getting latest deployed hash for path {path}: {err}", + path = s.importer_path, + err = err + ); + continue; } - } else { - tracing::error!( - "error getting latest deployed hash for path {path}: {err}", - path = s.importer_path, - err = r.unwrap_err() - ); - continue; } } else if kind == "flow" { args.insert( @@ -1945,6 +1946,7 @@ async fn capture_dependency_job( ScriptLang::Snowflake => Ok("".to_owned()), ScriptLang::Mssql => Ok("".to_owned()), ScriptLang::Graphql => Ok("".to_owned()), + ScriptLang::OracleDB => Ok("".to_owned()), ScriptLang::Bash => Ok("".to_owned()), ScriptLang::Powershell => Ok("".to_owned()), ScriptLang::Nativets => Ok("".to_owned()), diff --git a/benchmarks/lib.ts b/benchmarks/lib.ts index 80b5b21ad3..548eb9e0e8 100644 --- a/benchmarks/lib.ts +++ b/benchmarks/lib.ts @@ -2,7 +2,7 @@ import { sleep } from "https://deno.land/x/sleep@v1.2.1/mod.ts"; import * as windmill from "https://deno.land/x/windmill@v1.174.0/mod.ts"; import * as api from "https://deno.land/x/windmill@v1.174.0/windmill-api/index.ts"; -export const VERSION = "v1.445.1"; +export const VERSION = "v1.447.6"; export async function login(email: string, password: string): Promise { return await windmill.UserService.login({ diff --git a/cli/bootstrap/script_bootstrap.ts b/cli/bootstrap/script_bootstrap.ts index 6871f5ab77..79ca7d92b7 100644 --- a/cli/bootstrap/script_bootstrap.ts +++ b/cli/bootstrap/script_bootstrap.ts @@ -77,6 +77,7 @@ func main() (interface{}, error) { bash: `echo "Hello world" `, + oracledb: `SELECT 'Hello world' AS message`, powershell: `Write-Output "Hello world"`, php: ` Result<(), String> { println!("Hello World"); Ok(()) @@ -103,5 +113,5 @@ inventory: - name: Print debug message debug: msg: "Hello, world!" -` +`, }; diff --git a/cli/gen/core/OpenAPI.ts b/cli/gen/core/OpenAPI.ts index b09e0fa966..f9debf88b1 100644 --- a/cli/gen/core/OpenAPI.ts +++ b/cli/gen/core/OpenAPI.ts @@ -54,7 +54,7 @@ export const OpenAPI: OpenAPIConfig = { PASSWORD: undefined, TOKEN: getEnv("WM_TOKEN"), USERNAME: undefined, - VERSION: '1.425.1', + VERSION: '1.447.5', WITH_CREDENTIALS: true, interceptors: { request: new Interceptors(), diff --git a/cli/gen/services.gen.ts b/cli/gen/services.gen.ts index 7340bb9561..49b5e1482c 100644 --- a/cli/gen/services.gen.ts +++ b/cli/gen/services.gen.ts @@ -3,7 +3,7 @@ import type { CancelablePromise } from './core/CancelablePromise.ts'; import { OpenAPI } from './core/OpenAPI.ts'; import { request as __request } from './core/request.ts'; -import type { BackendVersionResponse, BackendUptodateResponse, GetLicenseIdResponse, GetOpenApiYamlResponse, GetAuditLogData, GetAuditLogResponse, ListAuditLogsData, ListAuditLogsResponse, LoginData, LoginResponse, LogoutResponse, GetUserData, GetUserResponse, UpdateUserData, UpdateUserResponse, IsOwnerOfPathData, IsOwnerOfPathResponse, SetPasswordData, SetPasswordResponse, SetPasswordForUserData, SetPasswordForUserResponse, SetLoginTypeForUserData, SetLoginTypeForUserResponse, CreateUserGloballyData, CreateUserGloballyResponse, GlobalUserUpdateData, GlobalUserUpdateResponse, GlobalUsernameInfoData, GlobalUsernameInfoResponse, GlobalUserRenameData, GlobalUserRenameResponse, GlobalUserDeleteData, GlobalUserDeleteResponse, GlobalUsersOverwriteData, GlobalUsersOverwriteResponse, GlobalUsersExportResponse, DeleteUserData, DeleteUserResponse, ListWorkspacesResponse, IsDomainAllowedResponse, ListUserWorkspacesResponse, ListWorkspacesAsSuperAdminData, ListWorkspacesAsSuperAdminResponse, CreateWorkspaceData, CreateWorkspaceResponse, ExistsWorkspaceData, ExistsWorkspaceResponse, ExistsUsernameData, ExistsUsernameResponse, GetGlobalData, GetGlobalResponse, SetGlobalData, SetGlobalResponse, GetLocalResponse, TestSmtpData, TestSmtpResponse, TestCriticalChannelsData, TestCriticalChannelsResponse, GetCriticalAlertsData, GetCriticalAlertsResponse, AcknowledgeCriticalAlertData, AcknowledgeCriticalAlertResponse, AcknowledgeAllCriticalAlertsResponse, TestLicenseKeyData, TestLicenseKeyResponse, TestObjectStorageConfigData, TestObjectStorageConfigResponse, SendStatsResponse, GetLatestKeyRenewalAttemptResponse, RenewLicenseKeyData, RenewLicenseKeyResponse, CreateCustomerPortalSessionData, CreateCustomerPortalSessionResponse, TestMetadataData, TestMetadataResponse, ListGlobalSettingsResponse, GetCurrentEmailResponse, RefreshUserTokenResponse, GetTutorialProgressResponse, UpdateTutorialProgressData, UpdateTutorialProgressResponse, LeaveInstanceResponse, GetUsageResponse, GetRunnableResponse, GlobalWhoamiResponse, ListWorkspaceInvitesResponse, WhoamiData, WhoamiResponse, AcceptInviteData, AcceptInviteResponse, DeclineInviteData, DeclineInviteResponse, InviteUserData, InviteUserResponse, AddUserData, AddUserResponse, DeleteInviteData, DeleteInviteResponse, ArchiveWorkspaceData, ArchiveWorkspaceResponse, UnarchiveWorkspaceData, UnarchiveWorkspaceResponse, DeleteWorkspaceData, DeleteWorkspaceResponse, LeaveWorkspaceData, LeaveWorkspaceResponse, GetWorkspaceNameData, GetWorkspaceNameResponse, ChangeWorkspaceNameData, ChangeWorkspaceNameResponse, ChangeWorkspaceIdData, ChangeWorkspaceIdResponse, WhoisData, WhoisResponse, ExistsEmailData, ExistsEmailResponse, ListUsersAsSuperAdminData, ListUsersAsSuperAdminResponse, ListPendingInvitesData, ListPendingInvitesResponse, GetSettingsData, GetSettingsResponse, GetDeployToData, GetDeployToResponse, GetIsPremiumData, GetIsPremiumResponse, GetPremiumInfoData, GetPremiumInfoResponse, SetAutomaticBillingData, SetAutomaticBillingResponse, EditSlackCommandData, EditSlackCommandResponse, RunSlackMessageTestJobData, RunSlackMessageTestJobResponse, EditDeployToData, EditDeployToResponse, EditAutoInviteData, EditAutoInviteResponse, EditWebhookData, EditWebhookResponse, EditCopilotConfigData, EditCopilotConfigResponse, GetCopilotInfoData, GetCopilotInfoResponse, EditErrorHandlerData, EditErrorHandlerResponse, EditLargeFileStorageConfigData, EditLargeFileStorageConfigResponse, EditWorkspaceGitSyncConfigData, EditWorkspaceGitSyncConfigResponse, EditWorkspaceDeployUiSettingsData, EditWorkspaceDeployUiSettingsResponse, EditWorkspaceDefaultAppData, EditWorkspaceDefaultAppResponse, EditDefaultScriptsData, EditDefaultScriptsResponse, GetDefaultScriptsData, GetDefaultScriptsResponse, SetEnvironmentVariableData, SetEnvironmentVariableResponse, GetWorkspaceEncryptionKeyData, GetWorkspaceEncryptionKeyResponse, SetWorkspaceEncryptionKeyData, SetWorkspaceEncryptionKeyResponse, GetWorkspaceDefaultAppData, GetWorkspaceDefaultAppResponse, GetLargeFileStorageConfigData, GetLargeFileStorageConfigResponse, GetWorkspaceUsageData, GetWorkspaceUsageResponse, GetUsedTriggersData, GetUsedTriggersResponse, ListUsersData, ListUsersResponse, ListUsersUsageData, ListUsersUsageResponse, ListUsernamesData, ListUsernamesResponse, UsernameToEmailData, UsernameToEmailResponse, CreateTokenData, CreateTokenResponse, CreateTokenImpersonateData, CreateTokenImpersonateResponse, DeleteTokenData, DeleteTokenResponse, ListTokensData, ListTokensResponse, GetOidcTokenData, GetOidcTokenResponse, CreateVariableData, CreateVariableResponse, EncryptValueData, EncryptValueResponse, DeleteVariableData, DeleteVariableResponse, UpdateVariableData, UpdateVariableResponse, GetVariableData, GetVariableResponse, GetVariableValueData, GetVariableValueResponse, ExistsVariableData, ExistsVariableResponse, ListVariableData, ListVariableResponse, ListContextualVariablesData, ListContextualVariablesResponse, WorkspaceGetCriticalAlertsData, WorkspaceGetCriticalAlertsResponse, WorkspaceAcknowledgeCriticalAlertData, WorkspaceAcknowledgeCriticalAlertResponse, WorkspaceAcknowledgeAllCriticalAlertsData, WorkspaceAcknowledgeAllCriticalAlertsResponse, WorkspaceMuteCriticalAlertsUiData, WorkspaceMuteCriticalAlertsUiResponse, LoginWithOauthData, LoginWithOauthResponse, ConnectSlackCallbackData, ConnectSlackCallbackResponse, ConnectSlackCallbackInstanceData, ConnectSlackCallbackInstanceResponse, ConnectCallbackData, ConnectCallbackResponse, CreateAccountData, CreateAccountResponse, RefreshTokenData, RefreshTokenResponse, DisconnectAccountData, DisconnectAccountResponse, DisconnectSlackData, DisconnectSlackResponse, ListOauthLoginsResponse, ListOauthConnectsResponse, GetOauthConnectData, GetOauthConnectResponse, CreateResourceData, CreateResourceResponse, DeleteResourceData, DeleteResourceResponse, UpdateResourceData, UpdateResourceResponse, UpdateResourceValueData, UpdateResourceValueResponse, GetResourceData, GetResourceResponse, GetResourceValueInterpolatedData, GetResourceValueInterpolatedResponse, GetResourceValueData, GetResourceValueResponse, ExistsResourceData, ExistsResourceResponse, ListResourceData, ListResourceResponse, ListSearchResourceData, ListSearchResourceResponse, ListResourceNamesData, ListResourceNamesResponse, CreateResourceTypeData, CreateResourceTypeResponse, FileResourceTypeToFileExtMapData, FileResourceTypeToFileExtMapResponse, DeleteResourceTypeData, DeleteResourceTypeResponse, UpdateResourceTypeData, UpdateResourceTypeResponse, GetResourceTypeData, GetResourceTypeResponse, ExistsResourceTypeData, ExistsResourceTypeResponse, ListResourceTypeData, ListResourceTypeResponse, ListResourceTypeNamesData, ListResourceTypeNamesResponse, QueryResourceTypesData, QueryResourceTypesResponse, ListHubIntegrationsData, ListHubIntegrationsResponse, ListHubFlowsResponse, GetHubFlowByIdData, GetHubFlowByIdResponse, ListHubAppsResponse, GetHubAppByIdData, GetHubAppByIdResponse, GetHubScriptContentByPathData, GetHubScriptContentByPathResponse, GetHubScriptByPathData, GetHubScriptByPathResponse, GetTopHubScriptsData, GetTopHubScriptsResponse, QueryHubScriptsData, QueryHubScriptsResponse, ListSearchScriptData, ListSearchScriptResponse, ListScriptsData, ListScriptsResponse, ListScriptPathsData, ListScriptPathsResponse, CreateDraftData, CreateDraftResponse, DeleteDraftData, DeleteDraftResponse, CreateScriptData, CreateScriptResponse, ToggleWorkspaceErrorHandlerForScriptData, ToggleWorkspaceErrorHandlerForScriptResponse, GetCustomTagsResponse, GeDefaultTagsResponse, IsDefaultTagsPerWorkspaceResponse, ArchiveScriptByPathData, ArchiveScriptByPathResponse, ArchiveScriptByHashData, ArchiveScriptByHashResponse, DeleteScriptByHashData, DeleteScriptByHashResponse, DeleteScriptByPathData, DeleteScriptByPathResponse, GetScriptByPathData, GetScriptByPathResponse, GetTriggersCountOfScriptData, GetTriggersCountOfScriptResponse, ListTokensOfScriptData, ListTokensOfScriptResponse, GetScriptByPathWithDraftData, GetScriptByPathWithDraftResponse, GetScriptHistoryByPathData, GetScriptHistoryByPathResponse, GetScriptLatestVersionData, GetScriptLatestVersionResponse, UpdateScriptHistoryData, UpdateScriptHistoryResponse, RawScriptByPathData, RawScriptByPathResponse, RawScriptByPathTokenedData, RawScriptByPathTokenedResponse, ExistsScriptByPathData, ExistsScriptByPathResponse, GetScriptByHashData, GetScriptByHashResponse, RawScriptByHashData, RawScriptByHashResponse, GetScriptDeploymentStatusData, GetScriptDeploymentStatusResponse, RunScriptByPathData, RunScriptByPathResponse, OpenaiSyncScriptByPathData, OpenaiSyncScriptByPathResponse, RunWaitResultScriptByPathData, RunWaitResultScriptByPathResponse, RunWaitResultScriptByPathGetData, RunWaitResultScriptByPathGetResponse, OpenaiSyncFlowByPathData, OpenaiSyncFlowByPathResponse, RunWaitResultFlowByPathData, RunWaitResultFlowByPathResponse, ResultByIdData, ResultByIdResponse, ListFlowPathsData, ListFlowPathsResponse, ListSearchFlowData, ListSearchFlowResponse, ListFlowsData, ListFlowsResponse, GetFlowHistoryData, GetFlowHistoryResponse, GetFlowLatestVersionData, GetFlowLatestVersionResponse, GetFlowVersionData, GetFlowVersionResponse, UpdateFlowHistoryData, UpdateFlowHistoryResponse, GetFlowByPathData, GetFlowByPathResponse, GetTriggersCountOfFlowData, GetTriggersCountOfFlowResponse, ListTokensOfFlowData, ListTokensOfFlowResponse, ToggleWorkspaceErrorHandlerForFlowData, ToggleWorkspaceErrorHandlerForFlowResponse, GetFlowByPathWithDraftData, GetFlowByPathWithDraftResponse, ExistsFlowByPathData, ExistsFlowByPathResponse, CreateFlowData, CreateFlowResponse, UpdateFlowData, UpdateFlowResponse, ArchiveFlowByPathData, ArchiveFlowByPathResponse, DeleteFlowByPathData, DeleteFlowByPathResponse, ListRawAppsData, ListRawAppsResponse, ExistsRawAppData, ExistsRawAppResponse, GetRawAppDataData, GetRawAppDataResponse, ListSearchAppData, ListSearchAppResponse, ListAppsData, ListAppsResponse, CreateAppData, CreateAppResponse, ExistsAppData, ExistsAppResponse, GetAppByPathData, GetAppByPathResponse, GetAppByPathWithDraftData, GetAppByPathWithDraftResponse, GetAppHistoryByPathData, GetAppHistoryByPathResponse, GetAppLatestVersionData, GetAppLatestVersionResponse, UpdateAppHistoryData, UpdateAppHistoryResponse, GetPublicAppBySecretData, GetPublicAppBySecretResponse, GetPublicResourceData, GetPublicResourceResponse, GetPublicSecretOfAppData, GetPublicSecretOfAppResponse, GetAppByVersionData, GetAppByVersionResponse, CreateRawAppData, CreateRawAppResponse, UpdateRawAppData, UpdateRawAppResponse, DeleteRawAppData, DeleteRawAppResponse, DeleteAppData, DeleteAppResponse, UpdateAppData, UpdateAppResponse, ExecuteComponentData, ExecuteComponentResponse, RunFlowByPathData, RunFlowByPathResponse, RestartFlowAtStepData, RestartFlowAtStepResponse, RunScriptByHashData, RunScriptByHashResponse, RunScriptPreviewData, RunScriptPreviewResponse, RunCodeWorkflowTaskData, RunCodeWorkflowTaskResponse, RunRawScriptDependenciesData, RunRawScriptDependenciesResponse, RunFlowPreviewData, RunFlowPreviewResponse, ListQueueData, ListQueueResponse, GetQueueCountData, GetQueueCountResponse, GetCompletedCountData, GetCompletedCountResponse, CountCompletedJobsData, CountCompletedJobsResponse, ListFilteredUuidsData, ListFilteredUuidsResponse, CancelSelectionData, CancelSelectionResponse, ListCompletedJobsData, ListCompletedJobsResponse, ListJobsData, ListJobsResponse, GetDbClockResponse, CountJobsByTagData, CountJobsByTagResponse, GetJobData, GetJobResponse, GetRootJobIdData, GetRootJobIdResponse, GetJobLogsData, GetJobLogsResponse, GetJobArgsData, GetJobArgsResponse, GetJobUpdatesData, GetJobUpdatesResponse, GetLogFileFromStoreData, GetLogFileFromStoreResponse, GetFlowDebugInfoData, GetFlowDebugInfoResponse, GetCompletedJobData, GetCompletedJobResponse, GetCompletedJobResultData, GetCompletedJobResultResponse, GetCompletedJobResultMaybeData, GetCompletedJobResultMaybeResponse, DeleteCompletedJobData, DeleteCompletedJobResponse, CancelQueuedJobData, CancelQueuedJobResponse, CancelPersistentQueuedJobsData, CancelPersistentQueuedJobsResponse, ForceCancelQueuedJobData, ForceCancelQueuedJobResponse, CreateJobSignatureData, CreateJobSignatureResponse, GetResumeUrlsData, GetResumeUrlsResponse, ResumeSuspendedJobGetData, ResumeSuspendedJobGetResponse, ResumeSuspendedJobPostData, ResumeSuspendedJobPostResponse, SetFlowUserStateData, SetFlowUserStateResponse, GetFlowUserStateData, GetFlowUserStateResponse, ResumeSuspendedFlowAsOwnerData, ResumeSuspendedFlowAsOwnerResponse, CancelSuspendedJobGetData, CancelSuspendedJobGetResponse, CancelSuspendedJobPostData, CancelSuspendedJobPostResponse, GetSuspendedJobFlowData, GetSuspendedJobFlowResponse, PreviewScheduleData, PreviewScheduleResponse, CreateScheduleData, CreateScheduleResponse, UpdateScheduleData, UpdateScheduleResponse, SetScheduleEnabledData, SetScheduleEnabledResponse, DeleteScheduleData, DeleteScheduleResponse, GetScheduleData, GetScheduleResponse, ExistsScheduleData, ExistsScheduleResponse, ListSchedulesData, ListSchedulesResponse, ListSchedulesWithJobsData, ListSchedulesWithJobsResponse, SetDefaultErrorOrRecoveryHandlerData, SetDefaultErrorOrRecoveryHandlerResponse, CreateHttpTriggerData, CreateHttpTriggerResponse, UpdateHttpTriggerData, UpdateHttpTriggerResponse, DeleteHttpTriggerData, DeleteHttpTriggerResponse, GetHttpTriggerData, GetHttpTriggerResponse, ListHttpTriggersData, ListHttpTriggersResponse, ExistsHttpTriggerData, ExistsHttpTriggerResponse, ExistsRouteData, ExistsRouteResponse, CreateWebsocketTriggerData, CreateWebsocketTriggerResponse, UpdateWebsocketTriggerData, UpdateWebsocketTriggerResponse, DeleteWebsocketTriggerData, DeleteWebsocketTriggerResponse, GetWebsocketTriggerData, GetWebsocketTriggerResponse, ListWebsocketTriggersData, ListWebsocketTriggersResponse, ExistsWebsocketTriggerData, ExistsWebsocketTriggerResponse, SetWebsocketTriggerEnabledData, SetWebsocketTriggerEnabledResponse, ListInstanceGroupsResponse, GetInstanceGroupData, GetInstanceGroupResponse, CreateInstanceGroupData, CreateInstanceGroupResponse, UpdateInstanceGroupData, UpdateInstanceGroupResponse, DeleteInstanceGroupData, DeleteInstanceGroupResponse, AddUserToInstanceGroupData, AddUserToInstanceGroupResponse, RemoveUserFromInstanceGroupData, RemoveUserFromInstanceGroupResponse, ExportInstanceGroupsResponse, OverwriteInstanceGroupsData, OverwriteInstanceGroupsResponse, ListGroupsData, ListGroupsResponse, ListGroupNamesData, ListGroupNamesResponse, CreateGroupData, CreateGroupResponse, UpdateGroupData, UpdateGroupResponse, DeleteGroupData, DeleteGroupResponse, GetGroupData, GetGroupResponse, AddUserToGroupData, AddUserToGroupResponse, RemoveUserToGroupData, RemoveUserToGroupResponse, ListFoldersData, ListFoldersResponse, ListFolderNamesData, ListFolderNamesResponse, CreateFolderData, CreateFolderResponse, UpdateFolderData, UpdateFolderResponse, DeleteFolderData, DeleteFolderResponse, GetFolderData, GetFolderResponse, GetFolderUsageData, GetFolderUsageResponse, AddOwnerToFolderData, AddOwnerToFolderResponse, RemoveOwnerToFolderData, RemoveOwnerToFolderResponse, ListWorkersData, ListWorkersResponse, ExistsWorkerWithTagData, ExistsWorkerWithTagResponse, GetQueueMetricsResponse, GetCountsOfJobsWaitingPerTagResponse, ListWorkerGroupsResponse, GetConfigData, GetConfigResponse, UpdateConfigData, UpdateConfigResponse, DeleteConfigData, DeleteConfigResponse, ListConfigsResponse, ListAutoscalingEventsData, ListAutoscalingEventsResponse, GetGranularAclsData, GetGranularAclsResponse, AddGranularAclsData, AddGranularAclsResponse, RemoveGranularAclsData, RemoveGranularAclsResponse, UpdateCaptureData, UpdateCaptureResponse, CreateCaptureData, CreateCaptureResponse, GetCaptureData, GetCaptureResponse, StarData, StarResponse, UnstarData, UnstarResponse, GetInputHistoryData, GetInputHistoryResponse, GetArgsFromHistoryOrSavedInputData, GetArgsFromHistoryOrSavedInputResponse, ListInputsData, ListInputsResponse, CreateInputData, CreateInputResponse, UpdateInputData, UpdateInputResponse, DeleteInputData, DeleteInputResponse, DuckdbConnectionSettingsData, DuckdbConnectionSettingsResponse, DuckdbConnectionSettingsV2Data, DuckdbConnectionSettingsV2Response, PolarsConnectionSettingsData, PolarsConnectionSettingsResponse, PolarsConnectionSettingsV2Data, PolarsConnectionSettingsV2Response, S3ResourceInfoData, S3ResourceInfoResponse, DatasetStorageTestConnectionData, DatasetStorageTestConnectionResponse, ListStoredFilesData, ListStoredFilesResponse, LoadFileMetadataData, LoadFileMetadataResponse, LoadFilePreviewData, LoadFilePreviewResponse, LoadParquetPreviewData, LoadParquetPreviewResponse, LoadTableRowCountData, LoadTableRowCountResponse, LoadCsvPreviewData, LoadCsvPreviewResponse, DeleteS3FileData, DeleteS3FileResponse, MoveS3FileData, MoveS3FileResponse, FileUploadData, FileUploadResponse, FileDownloadData, FileDownloadResponse, FileDownloadParquetAsCsvData, FileDownloadParquetAsCsvResponse, GetJobMetricsData, GetJobMetricsResponse, SetJobProgressData, SetJobProgressResponse, GetJobProgressData, GetJobProgressResponse, ListLogFilesData, ListLogFilesResponse, GetLogFileData, GetLogFileResponse, ListConcurrencyGroupsResponse, DeleteConcurrencyGroupData, DeleteConcurrencyGroupResponse, GetConcurrencyKeyData, GetConcurrencyKeyResponse, ListExtendedJobsData, ListExtendedJobsResponse, SearchJobsIndexData, SearchJobsIndexResponse, SearchLogsIndexData, SearchLogsIndexResponse, CountSearchLogsIndexData, CountSearchLogsIndexResponse } from './types.gen.ts'; +import type { BackendVersionResponse, BackendUptodateResponse, GetLicenseIdResponse, GetOpenApiYamlResponse, GetAuditLogData, GetAuditLogResponse, ListAuditLogsData, ListAuditLogsResponse, LoginData, LoginResponse, LogoutResponse, GetUserData, GetUserResponse, UpdateUserData, UpdateUserResponse, IsOwnerOfPathData, IsOwnerOfPathResponse, SetPasswordData, SetPasswordResponse, SetPasswordForUserData, SetPasswordForUserResponse, SetLoginTypeForUserData, SetLoginTypeForUserResponse, CreateUserGloballyData, CreateUserGloballyResponse, GlobalUserUpdateData, GlobalUserUpdateResponse, GlobalUsernameInfoData, GlobalUsernameInfoResponse, GlobalUserRenameData, GlobalUserRenameResponse, GlobalUserDeleteData, GlobalUserDeleteResponse, GlobalUsersOverwriteData, GlobalUsersOverwriteResponse, GlobalUsersExportResponse, DeleteUserData, DeleteUserResponse, ListWorkspacesResponse, IsDomainAllowedResponse, ListUserWorkspacesResponse, ListWorkspacesAsSuperAdminData, ListWorkspacesAsSuperAdminResponse, CreateWorkspaceData, CreateWorkspaceResponse, ExistsWorkspaceData, ExistsWorkspaceResponse, ExistsUsernameData, ExistsUsernameResponse, GetGlobalData, GetGlobalResponse, SetGlobalData, SetGlobalResponse, GetLocalResponse, TestSmtpData, TestSmtpResponse, TestCriticalChannelsData, TestCriticalChannelsResponse, GetCriticalAlertsData, GetCriticalAlertsResponse, AcknowledgeCriticalAlertData, AcknowledgeCriticalAlertResponse, AcknowledgeAllCriticalAlertsResponse, TestLicenseKeyData, TestLicenseKeyResponse, TestObjectStorageConfigData, TestObjectStorageConfigResponse, SendStatsResponse, GetLatestKeyRenewalAttemptResponse, RenewLicenseKeyData, RenewLicenseKeyResponse, CreateCustomerPortalSessionData, CreateCustomerPortalSessionResponse, TestMetadataData, TestMetadataResponse, ListGlobalSettingsResponse, GetCurrentEmailResponse, RefreshUserTokenData, RefreshUserTokenResponse, GetTutorialProgressResponse, UpdateTutorialProgressData, UpdateTutorialProgressResponse, LeaveInstanceResponse, GetUsageResponse, GetRunnableResponse, GlobalWhoamiResponse, ListWorkspaceInvitesResponse, WhoamiData, WhoamiResponse, AcceptInviteData, AcceptInviteResponse, DeclineInviteData, DeclineInviteResponse, InviteUserData, InviteUserResponse, AddUserData, AddUserResponse, DeleteInviteData, DeleteInviteResponse, ArchiveWorkspaceData, ArchiveWorkspaceResponse, UnarchiveWorkspaceData, UnarchiveWorkspaceResponse, DeleteWorkspaceData, DeleteWorkspaceResponse, LeaveWorkspaceData, LeaveWorkspaceResponse, GetWorkspaceNameData, GetWorkspaceNameResponse, ChangeWorkspaceNameData, ChangeWorkspaceNameResponse, ChangeWorkspaceIdData, ChangeWorkspaceIdResponse, ChangeWorkspaceColorData, ChangeWorkspaceColorResponse, WhoisData, WhoisResponse, ExistsEmailData, ExistsEmailResponse, ListUsersAsSuperAdminData, ListUsersAsSuperAdminResponse, ListPendingInvitesData, ListPendingInvitesResponse, GetSettingsData, GetSettingsResponse, GetDeployToData, GetDeployToResponse, GetIsPremiumData, GetIsPremiumResponse, GetPremiumInfoData, GetPremiumInfoResponse, SetAutomaticBillingData, SetAutomaticBillingResponse, GetThresholdAlertData, GetThresholdAlertResponse, SetThresholdAlertData, SetThresholdAlertResponse, EditSlackCommandData, EditSlackCommandResponse, RunSlackMessageTestJobData, RunSlackMessageTestJobResponse, EditDeployToData, EditDeployToResponse, EditAutoInviteData, EditAutoInviteResponse, EditWebhookData, EditWebhookResponse, EditCopilotConfigData, EditCopilotConfigResponse, GetCopilotInfoData, GetCopilotInfoResponse, EditErrorHandlerData, EditErrorHandlerResponse, EditLargeFileStorageConfigData, EditLargeFileStorageConfigResponse, EditWorkspaceGitSyncConfigData, EditWorkspaceGitSyncConfigResponse, EditWorkspaceDeployUiSettingsData, EditWorkspaceDeployUiSettingsResponse, EditWorkspaceDefaultAppData, EditWorkspaceDefaultAppResponse, EditDefaultScriptsData, EditDefaultScriptsResponse, GetDefaultScriptsData, GetDefaultScriptsResponse, SetEnvironmentVariableData, SetEnvironmentVariableResponse, GetWorkspaceEncryptionKeyData, GetWorkspaceEncryptionKeyResponse, SetWorkspaceEncryptionKeyData, SetWorkspaceEncryptionKeyResponse, GetWorkspaceDefaultAppData, GetWorkspaceDefaultAppResponse, GetLargeFileStorageConfigData, GetLargeFileStorageConfigResponse, GetWorkspaceUsageData, GetWorkspaceUsageResponse, GetUsedTriggersData, GetUsedTriggersResponse, ListUsersData, ListUsersResponse, ListUsersUsageData, ListUsersUsageResponse, ListUsernamesData, ListUsernamesResponse, UsernameToEmailData, UsernameToEmailResponse, CreateTokenData, CreateTokenResponse, CreateTokenImpersonateData, CreateTokenImpersonateResponse, DeleteTokenData, DeleteTokenResponse, ListTokensData, ListTokensResponse, GetOidcTokenData, GetOidcTokenResponse, CreateVariableData, CreateVariableResponse, EncryptValueData, EncryptValueResponse, DeleteVariableData, DeleteVariableResponse, UpdateVariableData, UpdateVariableResponse, GetVariableData, GetVariableResponse, GetVariableValueData, GetVariableValueResponse, ExistsVariableData, ExistsVariableResponse, ListVariableData, ListVariableResponse, ListContextualVariablesData, ListContextualVariablesResponse, WorkspaceGetCriticalAlertsData, WorkspaceGetCriticalAlertsResponse, WorkspaceAcknowledgeCriticalAlertData, WorkspaceAcknowledgeCriticalAlertResponse, WorkspaceAcknowledgeAllCriticalAlertsData, WorkspaceAcknowledgeAllCriticalAlertsResponse, WorkspaceMuteCriticalAlertsUiData, WorkspaceMuteCriticalAlertsUiResponse, LoginWithOauthData, LoginWithOauthResponse, ConnectSlackCallbackData, ConnectSlackCallbackResponse, ConnectSlackCallbackInstanceData, ConnectSlackCallbackInstanceResponse, ConnectCallbackData, ConnectCallbackResponse, CreateAccountData, CreateAccountResponse, RefreshTokenData, RefreshTokenResponse, DisconnectAccountData, DisconnectAccountResponse, DisconnectSlackData, DisconnectSlackResponse, ListOauthLoginsResponse, ListOauthConnectsResponse, GetOauthConnectData, GetOauthConnectResponse, CreateResourceData, CreateResourceResponse, DeleteResourceData, DeleteResourceResponse, UpdateResourceData, UpdateResourceResponse, UpdateResourceValueData, UpdateResourceValueResponse, GetResourceData, GetResourceResponse, GetResourceValueInterpolatedData, GetResourceValueInterpolatedResponse, GetResourceValueData, GetResourceValueResponse, ExistsResourceData, ExistsResourceResponse, ListResourceData, ListResourceResponse, ListSearchResourceData, ListSearchResourceResponse, ListResourceNamesData, ListResourceNamesResponse, CreateResourceTypeData, CreateResourceTypeResponse, FileResourceTypeToFileExtMapData, FileResourceTypeToFileExtMapResponse, DeleteResourceTypeData, DeleteResourceTypeResponse, UpdateResourceTypeData, UpdateResourceTypeResponse, GetResourceTypeData, GetResourceTypeResponse, ExistsResourceTypeData, ExistsResourceTypeResponse, ListResourceTypeData, ListResourceTypeResponse, ListResourceTypeNamesData, ListResourceTypeNamesResponse, QueryResourceTypesData, QueryResourceTypesResponse, ListHubIntegrationsData, ListHubIntegrationsResponse, ListHubFlowsResponse, GetHubFlowByIdData, GetHubFlowByIdResponse, ListHubAppsResponse, GetHubAppByIdData, GetHubAppByIdResponse, GetPublicAppByCustomPathData, GetPublicAppByCustomPathResponse, GetHubScriptContentByPathData, GetHubScriptContentByPathResponse, GetHubScriptByPathData, GetHubScriptByPathResponse, GetTopHubScriptsData, GetTopHubScriptsResponse, QueryHubScriptsData, QueryHubScriptsResponse, ListSearchScriptData, ListSearchScriptResponse, ListScriptsData, ListScriptsResponse, ListScriptPathsData, ListScriptPathsResponse, CreateDraftData, CreateDraftResponse, DeleteDraftData, DeleteDraftResponse, CreateScriptData, CreateScriptResponse, ToggleWorkspaceErrorHandlerForScriptData, ToggleWorkspaceErrorHandlerForScriptResponse, GetCustomTagsData, GetCustomTagsResponse, GeDefaultTagsResponse, IsDefaultTagsPerWorkspaceResponse, ArchiveScriptByPathData, ArchiveScriptByPathResponse, ArchiveScriptByHashData, ArchiveScriptByHashResponse, DeleteScriptByHashData, DeleteScriptByHashResponse, DeleteScriptByPathData, DeleteScriptByPathResponse, GetScriptByPathData, GetScriptByPathResponse, GetTriggersCountOfScriptData, GetTriggersCountOfScriptResponse, ListTokensOfScriptData, ListTokensOfScriptResponse, GetScriptByPathWithDraftData, GetScriptByPathWithDraftResponse, GetScriptHistoryByPathData, GetScriptHistoryByPathResponse, GetScriptLatestVersionData, GetScriptLatestVersionResponse, UpdateScriptHistoryData, UpdateScriptHistoryResponse, RawScriptByPathData, RawScriptByPathResponse, RawScriptByPathTokenedData, RawScriptByPathTokenedResponse, ExistsScriptByPathData, ExistsScriptByPathResponse, GetScriptByHashData, GetScriptByHashResponse, RawScriptByHashData, RawScriptByHashResponse, GetScriptDeploymentStatusData, GetScriptDeploymentStatusResponse, RunScriptByPathData, RunScriptByPathResponse, OpenaiSyncScriptByPathData, OpenaiSyncScriptByPathResponse, RunWaitResultScriptByPathData, RunWaitResultScriptByPathResponse, RunWaitResultScriptByPathGetData, RunWaitResultScriptByPathGetResponse, OpenaiSyncFlowByPathData, OpenaiSyncFlowByPathResponse, RunWaitResultFlowByPathData, RunWaitResultFlowByPathResponse, ResultByIdData, ResultByIdResponse, ListFlowPathsData, ListFlowPathsResponse, ListSearchFlowData, ListSearchFlowResponse, ListFlowsData, ListFlowsResponse, GetFlowHistoryData, GetFlowHistoryResponse, GetFlowLatestVersionData, GetFlowLatestVersionResponse, GetFlowVersionData, GetFlowVersionResponse, UpdateFlowHistoryData, UpdateFlowHistoryResponse, GetFlowByPathData, GetFlowByPathResponse, GetTriggersCountOfFlowData, GetTriggersCountOfFlowResponse, ListTokensOfFlowData, ListTokensOfFlowResponse, ToggleWorkspaceErrorHandlerForFlowData, ToggleWorkspaceErrorHandlerForFlowResponse, GetFlowByPathWithDraftData, GetFlowByPathWithDraftResponse, ExistsFlowByPathData, ExistsFlowByPathResponse, CreateFlowData, CreateFlowResponse, UpdateFlowData, UpdateFlowResponse, ArchiveFlowByPathData, ArchiveFlowByPathResponse, DeleteFlowByPathData, DeleteFlowByPathResponse, ListRawAppsData, ListRawAppsResponse, ExistsRawAppData, ExistsRawAppResponse, GetRawAppDataData, GetRawAppDataResponse, ListSearchAppData, ListSearchAppResponse, ListAppsData, ListAppsResponse, CreateAppData, CreateAppResponse, ExistsAppData, ExistsAppResponse, GetAppByPathData, GetAppByPathResponse, GetAppLiteByPathData, GetAppLiteByPathResponse, GetAppByPathWithDraftData, GetAppByPathWithDraftResponse, GetAppHistoryByPathData, GetAppHistoryByPathResponse, GetAppLatestVersionData, GetAppLatestVersionResponse, UpdateAppHistoryData, UpdateAppHistoryResponse, GetPublicAppBySecretData, GetPublicAppBySecretResponse, GetPublicResourceData, GetPublicResourceResponse, GetPublicSecretOfAppData, GetPublicSecretOfAppResponse, GetAppByVersionData, GetAppByVersionResponse, CreateRawAppData, CreateRawAppResponse, UpdateRawAppData, UpdateRawAppResponse, DeleteRawAppData, DeleteRawAppResponse, DeleteAppData, DeleteAppResponse, UpdateAppData, UpdateAppResponse, CustomPathExistsData, CustomPathExistsResponse, ExecuteComponentData, ExecuteComponentResponse, RunFlowByPathData, RunFlowByPathResponse, RestartFlowAtStepData, RestartFlowAtStepResponse, RunScriptByHashData, RunScriptByHashResponse, RunScriptPreviewData, RunScriptPreviewResponse, RunCodeWorkflowTaskData, RunCodeWorkflowTaskResponse, RunRawScriptDependenciesData, RunRawScriptDependenciesResponse, RunFlowPreviewData, RunFlowPreviewResponse, ListQueueData, ListQueueResponse, GetQueueCountData, GetQueueCountResponse, GetCompletedCountData, GetCompletedCountResponse, CountCompletedJobsData, CountCompletedJobsResponse, ListFilteredUuidsData, ListFilteredUuidsResponse, CancelSelectionData, CancelSelectionResponse, ListCompletedJobsData, ListCompletedJobsResponse, ListJobsData, ListJobsResponse, GetDbClockResponse, CountJobsByTagData, CountJobsByTagResponse, GetJobData, GetJobResponse, GetRootJobIdData, GetRootJobIdResponse, GetJobLogsData, GetJobLogsResponse, GetJobArgsData, GetJobArgsResponse, GetJobUpdatesData, GetJobUpdatesResponse, GetLogFileFromStoreData, GetLogFileFromStoreResponse, GetFlowDebugInfoData, GetFlowDebugInfoResponse, GetCompletedJobData, GetCompletedJobResponse, GetCompletedJobResultData, GetCompletedJobResultResponse, GetCompletedJobResultMaybeData, GetCompletedJobResultMaybeResponse, DeleteCompletedJobData, DeleteCompletedJobResponse, CancelQueuedJobData, CancelQueuedJobResponse, CancelPersistentQueuedJobsData, CancelPersistentQueuedJobsResponse, ForceCancelQueuedJobData, ForceCancelQueuedJobResponse, CreateJobSignatureData, CreateJobSignatureResponse, GetResumeUrlsData, GetResumeUrlsResponse, GetSlackApprovalPayloadData, GetSlackApprovalPayloadResponse, ResumeSuspendedJobGetData, ResumeSuspendedJobGetResponse, ResumeSuspendedJobPostData, ResumeSuspendedJobPostResponse, SetFlowUserStateData, SetFlowUserStateResponse, GetFlowUserStateData, GetFlowUserStateResponse, ResumeSuspendedFlowAsOwnerData, ResumeSuspendedFlowAsOwnerResponse, CancelSuspendedJobGetData, CancelSuspendedJobGetResponse, CancelSuspendedJobPostData, CancelSuspendedJobPostResponse, GetSuspendedJobFlowData, GetSuspendedJobFlowResponse, PreviewScheduleData, PreviewScheduleResponse, CreateScheduleData, CreateScheduleResponse, UpdateScheduleData, UpdateScheduleResponse, SetScheduleEnabledData, SetScheduleEnabledResponse, DeleteScheduleData, DeleteScheduleResponse, GetScheduleData, GetScheduleResponse, ExistsScheduleData, ExistsScheduleResponse, ListSchedulesData, ListSchedulesResponse, ListSchedulesWithJobsData, ListSchedulesWithJobsResponse, SetDefaultErrorOrRecoveryHandlerData, SetDefaultErrorOrRecoveryHandlerResponse, CreateHttpTriggerData, CreateHttpTriggerResponse, UpdateHttpTriggerData, UpdateHttpTriggerResponse, DeleteHttpTriggerData, DeleteHttpTriggerResponse, GetHttpTriggerData, GetHttpTriggerResponse, ListHttpTriggersData, ListHttpTriggersResponse, ExistsHttpTriggerData, ExistsHttpTriggerResponse, ExistsRouteData, ExistsRouteResponse, CreateWebsocketTriggerData, CreateWebsocketTriggerResponse, UpdateWebsocketTriggerData, UpdateWebsocketTriggerResponse, DeleteWebsocketTriggerData, DeleteWebsocketTriggerResponse, GetWebsocketTriggerData, GetWebsocketTriggerResponse, ListWebsocketTriggersData, ListWebsocketTriggersResponse, ExistsWebsocketTriggerData, ExistsWebsocketTriggerResponse, SetWebsocketTriggerEnabledData, SetWebsocketTriggerEnabledResponse, CreateKafkaTriggerData, CreateKafkaTriggerResponse, UpdateKafkaTriggerData, UpdateKafkaTriggerResponse, DeleteKafkaTriggerData, DeleteKafkaTriggerResponse, GetKafkaTriggerData, GetKafkaTriggerResponse, ListKafkaTriggersData, ListKafkaTriggersResponse, ExistsKafkaTriggerData, ExistsKafkaTriggerResponse, SetKafkaTriggerEnabledData, SetKafkaTriggerEnabledResponse, CreateNatsTriggerData, CreateNatsTriggerResponse, UpdateNatsTriggerData, UpdateNatsTriggerResponse, DeleteNatsTriggerData, DeleteNatsTriggerResponse, GetNatsTriggerData, GetNatsTriggerResponse, ListNatsTriggersData, ListNatsTriggersResponse, ExistsNatsTriggerData, ExistsNatsTriggerResponse, SetNatsTriggerEnabledData, SetNatsTriggerEnabledResponse, ListInstanceGroupsResponse, GetInstanceGroupData, GetInstanceGroupResponse, CreateInstanceGroupData, CreateInstanceGroupResponse, UpdateInstanceGroupData, UpdateInstanceGroupResponse, DeleteInstanceGroupData, DeleteInstanceGroupResponse, AddUserToInstanceGroupData, AddUserToInstanceGroupResponse, RemoveUserFromInstanceGroupData, RemoveUserFromInstanceGroupResponse, ExportInstanceGroupsResponse, OverwriteInstanceGroupsData, OverwriteInstanceGroupsResponse, ListGroupsData, ListGroupsResponse, ListGroupNamesData, ListGroupNamesResponse, CreateGroupData, CreateGroupResponse, UpdateGroupData, UpdateGroupResponse, DeleteGroupData, DeleteGroupResponse, GetGroupData, GetGroupResponse, AddUserToGroupData, AddUserToGroupResponse, RemoveUserToGroupData, RemoveUserToGroupResponse, ListFoldersData, ListFoldersResponse, ListFolderNamesData, ListFolderNamesResponse, CreateFolderData, CreateFolderResponse, UpdateFolderData, UpdateFolderResponse, DeleteFolderData, DeleteFolderResponse, GetFolderData, GetFolderResponse, GetFolderUsageData, GetFolderUsageResponse, AddOwnerToFolderData, AddOwnerToFolderResponse, RemoveOwnerToFolderData, RemoveOwnerToFolderResponse, ListWorkersData, ListWorkersResponse, ExistsWorkerWithTagData, ExistsWorkerWithTagResponse, GetQueueMetricsResponse, GetCountsOfJobsWaitingPerTagResponse, ListWorkerGroupsResponse, GetConfigData, GetConfigResponse, UpdateConfigData, UpdateConfigResponse, DeleteConfigData, DeleteConfigResponse, ListConfigsResponse, ListAutoscalingEventsData, ListAutoscalingEventsResponse, GetGranularAclsData, GetGranularAclsResponse, AddGranularAclsData, AddGranularAclsResponse, RemoveGranularAclsData, RemoveGranularAclsResponse, SetCaptureConfigData, SetCaptureConfigResponse, PingCaptureConfigData, PingCaptureConfigResponse, GetCaptureConfigsData, GetCaptureConfigsResponse, ListCapturesData, ListCapturesResponse, DeleteCaptureData, DeleteCaptureResponse, StarData, StarResponse, UnstarData, UnstarResponse, GetInputHistoryData, GetInputHistoryResponse, GetArgsFromHistoryOrSavedInputData, GetArgsFromHistoryOrSavedInputResponse, ListInputsData, ListInputsResponse, CreateInputData, CreateInputResponse, UpdateInputData, UpdateInputResponse, DeleteInputData, DeleteInputResponse, DuckdbConnectionSettingsData, DuckdbConnectionSettingsResponse, DuckdbConnectionSettingsV2Data, DuckdbConnectionSettingsV2Response, PolarsConnectionSettingsData, PolarsConnectionSettingsResponse, PolarsConnectionSettingsV2Data, PolarsConnectionSettingsV2Response, S3ResourceInfoData, S3ResourceInfoResponse, DatasetStorageTestConnectionData, DatasetStorageTestConnectionResponse, ListStoredFilesData, ListStoredFilesResponse, LoadFileMetadataData, LoadFileMetadataResponse, LoadFilePreviewData, LoadFilePreviewResponse, LoadParquetPreviewData, LoadParquetPreviewResponse, LoadTableRowCountData, LoadTableRowCountResponse, LoadCsvPreviewData, LoadCsvPreviewResponse, DeleteS3FileData, DeleteS3FileResponse, MoveS3FileData, MoveS3FileResponse, FileUploadData, FileUploadResponse, FileDownloadData, FileDownloadResponse, FileDownloadParquetAsCsvData, FileDownloadParquetAsCsvResponse, GetJobMetricsData, GetJobMetricsResponse, SetJobProgressData, SetJobProgressResponse, GetJobProgressData, GetJobProgressResponse, ListLogFilesData, ListLogFilesResponse, GetLogFileData, GetLogFileResponse, ListConcurrencyGroupsResponse, DeleteConcurrencyGroupData, DeleteConcurrencyGroupResponse, GetConcurrencyKeyData, GetConcurrencyKeyResponse, ListExtendedJobsData, ListExtendedJobsResponse, SearchJobsIndexData, SearchJobsIndexResponse, SearchLogsIndexData, SearchLogsIndexResponse, CountSearchLogsIndexData, CountSearchLogsIndexResponse, ClearIndexData, ClearIndexResponse } from './types.gen.ts'; /** * get backend version @@ -515,7 +515,7 @@ export const testCriticalChannels = (data: TestCriticalChannelsData): Cancelable * @param data.page * @param data.pageSize * @param data.acknowledged - * @returns CriticalAlert Successfully retrieved all critical alerts + * @returns unknown Successfully retrieved all critical alerts * @throws ApiError */ export const getCriticalAlerts = (data: GetCriticalAlertsData = {}): CancelablePromise => { return __request(OpenAPI, { @@ -667,12 +667,17 @@ export const getCurrentEmail = (): CancelablePromise => /** * refresh the current token - * @returns string free usage + * @param data The data for the request. + * @param data.ifExpiringInLessThanS + * @returns string new token * @throws ApiError */ -export const refreshUserToken = (): CancelablePromise => { return __request(OpenAPI, { +export const refreshUserToken = (data: RefreshUserTokenData = {}): CancelablePromise => { return __request(OpenAPI, { method: 'GET', - url: '/users/refresh_token' + url: '/users/refresh_token', + query: { + if_expiring_in_less_than_s: data.ifExpiringInLessThanS + } }); }; /** @@ -957,6 +962,24 @@ export const changeWorkspaceId = (data: ChangeWorkspaceIdData): CancelablePromis mediaType: 'application/json' }); }; +/** + * change workspace id + * @param data The data for the request. + * @param data.workspace + * @param data.requestBody + * @returns string status + * @throws ApiError + */ +export const changeWorkspaceColor = (data: ChangeWorkspaceColorData): CancelablePromise => { return __request(OpenAPI, { + method: 'POST', + url: '/w/{workspace}/workspaces/change_workspace_color', + path: { + workspace: data.workspace + }, + body: data.requestBody, + mediaType: 'application/json' +}); }; + /** * whois * @param data The data for the request. @@ -1101,6 +1124,39 @@ export const setAutomaticBilling = (data: SetAutomaticBillingData): CancelablePr mediaType: 'application/json' }); }; +/** + * get threshold alert info + * @param data The data for the request. + * @param data.workspace + * @returns unknown status + * @throws ApiError + */ +export const getThresholdAlert = (data: GetThresholdAlertData): CancelablePromise => { return __request(OpenAPI, { + method: 'GET', + url: '/w/{workspace}/workspaces/threshold_alert', + path: { + workspace: data.workspace + } +}); }; + +/** + * set threshold alert info + * @param data The data for the request. + * @param data.workspace + * @param data.requestBody threshold alert info + * @returns string status + * @throws ApiError + */ +export const setThresholdAlert = (data: SetThresholdAlertData): CancelablePromise => { return __request(OpenAPI, { + method: 'POST', + url: '/w/{workspace}/workspaces/threshold_alert', + path: { + workspace: data.workspace + }, + body: data.requestBody, + mediaType: 'application/json' +}); }; + /** * edit slack command * @param data The data for the request. @@ -1785,7 +1841,7 @@ export const listContextualVariables = (data: ListContextualVariablesData): Canc * @param data.page * @param data.pageSize * @param data.acknowledged - * @returns CriticalAlert Successfully retrieved all critical alerts + * @returns unknown Successfully retrieved all critical alerts * @throws ApiError */ export const workspaceGetCriticalAlerts = (data: WorkspaceGetCriticalAlertsData): CancelablePromise => { return __request(OpenAPI, { @@ -2455,6 +2511,21 @@ export const getHubAppById = (data: GetHubAppByIdData): CancelablePromise => { return __request(OpenAPI, { + method: 'GET', + url: '/apps_u/public_app_by_custom_path/{custom_path}', + path: { + custom_path: data.customPath + } +}); }; + /** * get hub script content by path * @param data The data for the request. @@ -2708,12 +2779,19 @@ export const toggleWorkspaceErrorHandlerForScript = (data: ToggleWorkspaceErrorH /** * get all instance custom tags (tags are used to dispatch jobs to different worker groups) + * @param data The data for the request. + * @param data.workspace + * @param data.showWorkspaceRestriction * @returns string list of custom tags * @throws ApiError */ -export const getCustomTags = (): CancelablePromise => { return __request(OpenAPI, { +export const getCustomTags = (data: GetCustomTagsData = {}): CancelablePromise => { return __request(OpenAPI, { method: 'GET', - url: '/workers/custom_tags' + url: '/workers/custom_tags', + query: { + workspace: data.workspace, + show_workspace_restriction: data.showWorkspaceRestriction + } }); }; /** @@ -3784,6 +3862,23 @@ export const getAppByPath = (data: GetAppByPathData): CancelablePromise => { return __request(OpenAPI, { + method: 'GET', + url: '/w/{workspace}/apps/get/lite/{path}', + path: { + workspace: data.workspace, + path: data.path + } +}); }; + /** * get app by path with draft * @param data The data for the request. @@ -4017,6 +4112,23 @@ export const updateApp = (data: UpdateAppData): CancelablePromise => { return __request(OpenAPI, { + method: 'GET', + url: '/w/{workspace}/apps/custom_path_exists/{custom_path}', + path: { + workspace: data.workspace, + custom_path: data.customPath + } +}); }; + /** * executeComponent * @param data The data for the request. @@ -4934,6 +5046,39 @@ export const getResumeUrls = (data: GetResumeUrlsData): CancelablePromise => { return __request(OpenAPI, { + method: 'GET', + url: '/w/{workspace}/jobs/slack_approval/{id}', + path: { + workspace: data.workspace, + id: data.id + }, + query: { + approver: data.approver, + message: data.message, + slack_resource_path: data.slackResourcePath, + channel_id: data.channelId, + flow_step_id: data.flowStepId, + default_args_json: data.defaultArgsJson, + dynamic_enums_json: data.dynamicEnumsJson + } +}); }; + /** * resume a job for a suspended flow * @param data The data for the request. @@ -5591,6 +5736,278 @@ export const setWebsocketTriggerEnabled = (data: SetWebsocketTriggerEnabledData) mediaType: 'application/json' }); }; +/** + * create kafka trigger + * @param data The data for the request. + * @param data.workspace + * @param data.requestBody new kafka trigger + * @returns string kafka trigger created + * @throws ApiError + */ +export const createKafkaTrigger = (data: CreateKafkaTriggerData): CancelablePromise => { return __request(OpenAPI, { + method: 'POST', + url: '/w/{workspace}/kafka_triggers/create', + path: { + workspace: data.workspace + }, + body: data.requestBody, + mediaType: 'application/json' +}); }; + +/** + * update kafka trigger + * @param data The data for the request. + * @param data.workspace + * @param data.path + * @param data.requestBody updated trigger + * @returns string kafka trigger updated + * @throws ApiError + */ +export const updateKafkaTrigger = (data: UpdateKafkaTriggerData): CancelablePromise => { return __request(OpenAPI, { + method: 'POST', + url: '/w/{workspace}/kafka_triggers/update/{path}', + path: { + workspace: data.workspace, + path: data.path + }, + body: data.requestBody, + mediaType: 'application/json' +}); }; + +/** + * delete kafka trigger + * @param data The data for the request. + * @param data.workspace + * @param data.path + * @returns string kafka trigger deleted + * @throws ApiError + */ +export const deleteKafkaTrigger = (data: DeleteKafkaTriggerData): CancelablePromise => { return __request(OpenAPI, { + method: 'DELETE', + url: '/w/{workspace}/kafka_triggers/delete/{path}', + path: { + workspace: data.workspace, + path: data.path + } +}); }; + +/** + * get kafka trigger + * @param data The data for the request. + * @param data.workspace + * @param data.path + * @returns KafkaTrigger kafka trigger deleted + * @throws ApiError + */ +export const getKafkaTrigger = (data: GetKafkaTriggerData): CancelablePromise => { return __request(OpenAPI, { + method: 'GET', + url: '/w/{workspace}/kafka_triggers/get/{path}', + path: { + workspace: data.workspace, + path: data.path + } +}); }; + +/** + * list kafka triggers + * @param data The data for the request. + * @param data.workspace + * @param data.page which page to return (start at 1, default 1) + * @param data.perPage number of items to return for a given page (default 30, max 100) + * @param data.path filter by path + * @param data.isFlow + * @param data.pathStart + * @returns KafkaTrigger kafka trigger list + * @throws ApiError + */ +export const listKafkaTriggers = (data: ListKafkaTriggersData): CancelablePromise => { return __request(OpenAPI, { + method: 'GET', + url: '/w/{workspace}/kafka_triggers/list', + path: { + workspace: data.workspace + }, + query: { + page: data.page, + per_page: data.perPage, + path: data.path, + is_flow: data.isFlow, + path_start: data.pathStart + } +}); }; + +/** + * does kafka trigger exists + * @param data The data for the request. + * @param data.workspace + * @param data.path + * @returns boolean kafka trigger exists + * @throws ApiError + */ +export const existsKafkaTrigger = (data: ExistsKafkaTriggerData): CancelablePromise => { return __request(OpenAPI, { + method: 'GET', + url: '/w/{workspace}/kafka_triggers/exists/{path}', + path: { + workspace: data.workspace, + path: data.path + } +}); }; + +/** + * set enabled kafka trigger + * @param data The data for the request. + * @param data.workspace + * @param data.path + * @param data.requestBody updated kafka trigger enable + * @returns string kafka trigger enabled set + * @throws ApiError + */ +export const setKafkaTriggerEnabled = (data: SetKafkaTriggerEnabledData): CancelablePromise => { return __request(OpenAPI, { + method: 'POST', + url: '/w/{workspace}/kafka_triggers/setenabled/{path}', + path: { + workspace: data.workspace, + path: data.path + }, + body: data.requestBody, + mediaType: 'application/json' +}); }; + +/** + * create nats trigger + * @param data The data for the request. + * @param data.workspace + * @param data.requestBody new nats trigger + * @returns string nats trigger created + * @throws ApiError + */ +export const createNatsTrigger = (data: CreateNatsTriggerData): CancelablePromise => { return __request(OpenAPI, { + method: 'POST', + url: '/w/{workspace}/nats_triggers/create', + path: { + workspace: data.workspace + }, + body: data.requestBody, + mediaType: 'application/json' +}); }; + +/** + * update nats trigger + * @param data The data for the request. + * @param data.workspace + * @param data.path + * @param data.requestBody updated trigger + * @returns string nats trigger updated + * @throws ApiError + */ +export const updateNatsTrigger = (data: UpdateNatsTriggerData): CancelablePromise => { return __request(OpenAPI, { + method: 'POST', + url: '/w/{workspace}/nats_triggers/update/{path}', + path: { + workspace: data.workspace, + path: data.path + }, + body: data.requestBody, + mediaType: 'application/json' +}); }; + +/** + * delete nats trigger + * @param data The data for the request. + * @param data.workspace + * @param data.path + * @returns string nats trigger deleted + * @throws ApiError + */ +export const deleteNatsTrigger = (data: DeleteNatsTriggerData): CancelablePromise => { return __request(OpenAPI, { + method: 'DELETE', + url: '/w/{workspace}/nats_triggers/delete/{path}', + path: { + workspace: data.workspace, + path: data.path + } +}); }; + +/** + * get nats trigger + * @param data The data for the request. + * @param data.workspace + * @param data.path + * @returns NatsTrigger nats trigger deleted + * @throws ApiError + */ +export const getNatsTrigger = (data: GetNatsTriggerData): CancelablePromise => { return __request(OpenAPI, { + method: 'GET', + url: '/w/{workspace}/nats_triggers/get/{path}', + path: { + workspace: data.workspace, + path: data.path + } +}); }; + +/** + * list nats triggers + * @param data The data for the request. + * @param data.workspace + * @param data.page which page to return (start at 1, default 1) + * @param data.perPage number of items to return for a given page (default 30, max 100) + * @param data.path filter by path + * @param data.isFlow + * @param data.pathStart + * @returns NatsTrigger nats trigger list + * @throws ApiError + */ +export const listNatsTriggers = (data: ListNatsTriggersData): CancelablePromise => { return __request(OpenAPI, { + method: 'GET', + url: '/w/{workspace}/nats_triggers/list', + path: { + workspace: data.workspace + }, + query: { + page: data.page, + per_page: data.perPage, + path: data.path, + is_flow: data.isFlow, + path_start: data.pathStart + } +}); }; + +/** + * does nats trigger exists + * @param data The data for the request. + * @param data.workspace + * @param data.path + * @returns boolean nats trigger exists + * @throws ApiError + */ +export const existsNatsTrigger = (data: ExistsNatsTriggerData): CancelablePromise => { return __request(OpenAPI, { + method: 'GET', + url: '/w/{workspace}/nats_triggers/exists/{path}', + path: { + workspace: data.workspace, + path: data.path + } +}); }; + +/** + * set enabled nats trigger + * @param data The data for the request. + * @param data.workspace + * @param data.path + * @param data.requestBody updated nats trigger enable + * @returns string nats trigger enabled set + * @throws ApiError + */ +export const setNatsTriggerEnabled = (data: SetNatsTriggerEnabledData): CancelablePromise => { return __request(OpenAPI, { + method: 'POST', + url: '/w/{workspace}/nats_triggers/setenabled/{path}', + path: { + workspace: data.workspace, + path: data.path + }, + body: data.requestBody, + mediaType: 'application/json' +}); }; + /** * list instance groups * @returns InstanceGroup instance group list @@ -6245,56 +6662,104 @@ export const removeGranularAcls = (data: RemoveGranularAclsData): CancelableProm }); }; /** - * update flow preview capture + * set capture config * @param data The data for the request. * @param data.workspace - * @param data.path - * @returns void flow preview captured + * @param data.requestBody capture config + * @returns unknown capture config set * @throws ApiError */ -export const updateCapture = (data: UpdateCaptureData): CancelablePromise => { return __request(OpenAPI, { +export const setCaptureConfig = (data: SetCaptureConfigData): CancelablePromise => { return __request(OpenAPI, { method: 'POST', - url: '/w/{workspace}/capture_u/{path}', + url: '/w/{workspace}/capture/set_config', + path: { + workspace: data.workspace + }, + body: data.requestBody, + mediaType: 'application/json' +}); }; + +/** + * ping capture config + * @param data The data for the request. + * @param data.workspace + * @param data.triggerKind + * @param data.runnableKind + * @param data.path + * @returns unknown capture config pinged + * @throws ApiError + */ +export const pingCaptureConfig = (data: PingCaptureConfigData): CancelablePromise => { return __request(OpenAPI, { + method: 'POST', + url: '/w/{workspace}/capture/ping_config/{trigger_kind}/{runnable_kind}/{path}', path: { workspace: data.workspace, + trigger_kind: data.triggerKind, + runnable_kind: data.runnableKind, path: data.path } }); }; /** - * create flow preview capture + * get capture configs for a script or flow * @param data The data for the request. * @param data.workspace + * @param data.runnableKind * @param data.path - * @returns unknown flow preview capture created + * @returns CaptureConfig capture configs for a script or flow * @throws ApiError */ -export const createCapture = (data: CreateCaptureData): CancelablePromise => { return __request(OpenAPI, { - method: 'PUT', - url: '/w/{workspace}/capture/{path}', - path: { - workspace: data.workspace, - path: data.path - } -}); }; - -/** - * get flow preview capture - * @param data The data for the request. - * @param data.workspace - * @param data.path - * @returns unknown captured flow preview - * @throws ApiError - */ -export const getCapture = (data: GetCaptureData): CancelablePromise => { return __request(OpenAPI, { +export const getCaptureConfigs = (data: GetCaptureConfigsData): CancelablePromise => { return __request(OpenAPI, { method: 'GET', - url: '/w/{workspace}/capture/{path}', + url: '/w/{workspace}/capture/get_configs/{runnable_kind}/{path}', path: { workspace: data.workspace, + runnable_kind: data.runnableKind, + path: data.path + } +}); }; + +/** + * list captures for a script or flow + * @param data The data for the request. + * @param data.workspace + * @param data.runnableKind + * @param data.path + * @param data.triggerKind + * @param data.page which page to return (start at 1, default 1) + * @param data.perPage number of items to return for a given page (default 30, max 100) + * @returns Capture list of captures for a script or flow + * @throws ApiError + */ +export const listCaptures = (data: ListCapturesData): CancelablePromise => { return __request(OpenAPI, { + method: 'GET', + url: '/w/{workspace}/capture/list/{runnable_kind}/{path}', + path: { + workspace: data.workspace, + runnable_kind: data.runnableKind, path: data.path }, - errors: { - 404: 'capture does not exist for this flow' + query: { + trigger_kind: data.triggerKind, + page: data.page, + per_page: data.perPage + } +}); }; + +/** + * delete a capture + * @param data The data for the request. + * @param data.workspace + * @param data.id + * @returns unknown capture deleted + * @throws ApiError + */ +export const deleteCapture = (data: DeleteCaptureData): CancelablePromise => { return __request(OpenAPI, { + method: 'DELETE', + url: '/w/{workspace}/capture/{id}', + path: { + workspace: data.workspace, + id: data.id } }); }; @@ -6342,6 +6807,7 @@ export const unstar = (data: UnstarData): CancelablePromise => { * @param data.runnableType * @param data.page which page to return (start at 1, default 1) * @param data.perPage number of items to return for a given page (default 30, max 100) + * @param data.includePreview * @returns Input Input history for completed jobs * @throws ApiError */ @@ -6355,7 +6821,8 @@ export const getInputHistory = (data: GetInputHistoryData): CancelablePromise => { return __request(OpenAPI, { + method: 'DELETE', + url: '/srch/index/delete/{idx_name}', + path: { + idx_name: data.idxName + } }); }; \ No newline at end of file diff --git a/cli/gen/types.gen.ts b/cli/gen/types.gen.ts index f5e2a460d4..ee075449a9 100644 --- a/cli/gen/types.gen.ts +++ b/cli/gen/types.gen.ts @@ -30,8 +30,8 @@ export type Script = { }; lock?: string; lock_error_logs?: string; - language: 'python3' | 'deno' | 'go' | 'bash' | 'powershell' | 'postgresql' | 'mysql' | 'bigquery' | 'snowflake' | 'mssql' | 'graphql' | 'nativets' | 'bun' | 'php' | 'rust' | 'ansible'; - kind: 'script' | 'failure' | 'trigger' | 'command' | 'approval'; + language: 'python3' | 'deno' | 'go' | 'bash' | 'powershell' | 'postgresql' | 'mysql' | 'bigquery' | 'snowflake' | 'mssql' | 'oracledb' | 'graphql' | 'nativets' | 'bun' | 'php' | 'rust' | 'ansible' | 'csharp'; + kind: 'script' | 'failure' | 'trigger' | 'command' | 'approval' | 'preprocessor'; starred: boolean; tag?: string; has_draft?: boolean; @@ -51,11 +51,12 @@ export type Script = { no_main_func: boolean; codebase?: string; has_preprocessor: boolean; + on_behalf_of_email?: string; }; -export type language = 'python3' | 'deno' | 'go' | 'bash' | 'powershell' | 'postgresql' | 'mysql' | 'bigquery' | 'snowflake' | 'mssql' | 'graphql' | 'nativets' | 'bun' | 'php' | 'rust' | 'ansible'; +export type language = 'python3' | 'deno' | 'go' | 'bash' | 'powershell' | 'postgresql' | 'mysql' | 'bigquery' | 'snowflake' | 'mssql' | 'oracledb' | 'graphql' | 'nativets' | 'bun' | 'php' | 'rust' | 'ansible' | 'csharp'; -export type kind = 'script' | 'failure' | 'trigger' | 'command' | 'approval'; +export type kind = 'script' | 'failure' | 'trigger' | 'command' | 'approval' | 'preprocessor'; export type NewScript = { path: string; @@ -68,8 +69,8 @@ export type NewScript = { }; is_template?: boolean; lock?: string; - language: 'python3' | 'deno' | 'go' | 'bash' | 'powershell' | 'postgresql' | 'mysql' | 'bigquery' | 'snowflake' | 'mssql' | 'graphql' | 'nativets' | 'bun' | 'php' | 'rust' | 'ansible'; - kind?: 'script' | 'failure' | 'trigger' | 'command' | 'approval'; + language: 'python3' | 'deno' | 'go' | 'bash' | 'powershell' | 'postgresql' | 'mysql' | 'bigquery' | 'snowflake' | 'mssql' | 'oracledb' | 'graphql' | 'nativets' | 'bun' | 'php' | 'rust' | 'ansible' | 'csharp'; + kind?: 'script' | 'failure' | 'trigger' | 'command' | 'approval' | 'preprocessor'; tag?: string; draft_only?: boolean; envs?: Array<(string)>; @@ -88,6 +89,7 @@ export type NewScript = { no_main_func?: boolean; codebase?: string; has_preprocessor?: boolean; + on_behalf_of_email?: string; }; export type NewScriptWithDraft = NewScript & { @@ -146,7 +148,7 @@ export type QueuedJob = { canceled_by?: string; canceled_reason?: string; last_ping?: string; - job_kind: 'script' | 'preview' | 'dependencies' | 'flowdependencies' | 'appdependencies' | 'flow' | 'flowpreview' | 'script_hub' | 'identity' | 'deploymentcallback' | 'singlescriptflow'; + job_kind: 'script' | 'preview' | 'dependencies' | 'flowdependencies' | 'appdependencies' | 'flow' | 'flowpreview' | 'script_hub' | 'identity' | 'deploymentcallback' | 'singlescriptflow' | 'flowscript' | 'flownode' | 'appscript'; schedule_path?: string; /** * The user (u/userfoo) or group (g/groupfoo) whom @@ -157,7 +159,7 @@ export type QueuedJob = { flow_status?: FlowStatus; raw_flow?: FlowValue; is_flow_step: boolean; - language?: 'python3' | 'deno' | 'go' | 'bash' | 'powershell' | 'postgresql' | 'mysql' | 'bigquery' | 'snowflake' | 'mssql' | 'graphql' | 'nativets' | 'bun' | 'php' | 'rust' | 'ansible'; + language?: 'python3' | 'deno' | 'go' | 'bash' | 'powershell' | 'postgresql' | 'mysql' | 'bigquery' | 'snowflake' | 'mssql' | 'oracledb' | 'graphql' | 'nativets' | 'bun' | 'php' | 'rust' | 'ansible' | 'csharp'; email: string; visible_to_owner: boolean; mem_peak?: number; @@ -168,7 +170,7 @@ export type QueuedJob = { suspend?: number; }; -export type job_kind = 'script' | 'preview' | 'dependencies' | 'flowdependencies' | 'appdependencies' | 'flow' | 'flowpreview' | 'script_hub' | 'identity' | 'deploymentcallback' | 'singlescriptflow'; +export type job_kind = 'script' | 'preview' | 'dependencies' | 'flowdependencies' | 'appdependencies' | 'flow' | 'flowpreview' | 'script_hub' | 'identity' | 'deploymentcallback' | 'singlescriptflow' | 'flowscript' | 'flownode' | 'appscript'; export type CompletedJob = { workspace_id?: string; @@ -189,7 +191,7 @@ export type CompletedJob = { canceled: boolean; canceled_by?: string; canceled_reason?: string; - job_kind: 'script' | 'preview' | 'dependencies' | 'flow' | 'flowdependencies' | 'appdependencies' | 'flowpreview' | 'script_hub' | 'identity' | 'deploymentcallback' | 'singlescriptflow'; + job_kind: 'script' | 'preview' | 'dependencies' | 'flow' | 'flowdependencies' | 'appdependencies' | 'flowpreview' | 'script_hub' | 'identity' | 'deploymentcallback' | 'singlescriptflow' | 'flowscript' | 'flownode' | 'appscript'; schedule_path?: string; /** * The user (u/userfoo) or group (g/groupfoo) whom @@ -200,7 +202,7 @@ export type CompletedJob = { flow_status?: FlowStatus; raw_flow?: FlowValue; is_flow_step: boolean; - language?: 'python3' | 'deno' | 'go' | 'bash' | 'powershell' | 'postgresql' | 'mysql' | 'bigquery' | 'snowflake' | 'mssql' | 'graphql' | 'nativets' | 'bun' | 'php' | 'rust' | 'ansible'; + language?: 'python3' | 'deno' | 'go' | 'bash' | 'powershell' | 'postgresql' | 'mysql' | 'bigquery' | 'snowflake' | 'mssql' | 'oracledb' | 'graphql' | 'nativets' | 'bun' | 'php' | 'rust' | 'ansible' | 'csharp'; is_skipped: boolean; email: string; visible_to_owner: boolean; @@ -230,6 +232,7 @@ export type User = { email: string; username: string; is_admin: boolean; + name?: string; is_super_admin: boolean; created_at: string; operator: boolean; @@ -373,7 +376,7 @@ export type Preview = { content?: string; path?: string; args: ScriptArgs; - language?: 'python3' | 'deno' | 'go' | 'bash' | 'powershell' | 'postgresql' | 'mysql' | 'bigquery' | 'snowflake' | 'mssql' | 'graphql' | 'nativets' | 'bun' | 'php' | 'rust' | 'ansible'; + language?: 'python3' | 'deno' | 'go' | 'bash' | 'powershell' | 'postgresql' | 'mysql' | 'bigquery' | 'snowflake' | 'mssql' | 'oracledb' | 'graphql' | 'nativets' | 'bun' | 'php' | 'rust' | 'ansible' | 'csharp'; tag?: string; kind?: 'code' | 'identity' | 'http'; dedicated_worker?: boolean; @@ -488,6 +491,7 @@ export type Schedule = { no_flow_overlap?: boolean; tag?: string; paused_until?: string; + cron_version?: string; }; export type ScheduleWJobs = Schedule & { @@ -521,6 +525,7 @@ export type NewSchedule = { summary?: string; tag?: string; paused_until?: string; + cron_version?: string; }; export type EditSchedule = { @@ -542,6 +547,7 @@ export type EditSchedule = { summary?: string; tag?: string; paused_until?: string; + cron_version?: string; }; export type HttpTrigger = { @@ -607,6 +613,8 @@ export type TriggersCount = { webhook_count?: number; email_count?: number; websocket_count?: number; + kafka_count?: number; + nats_count?: number; }; export type WebsocketTrigger = { @@ -629,8 +637,8 @@ export type WebsocketTrigger = { key: string; value: unknown; }>; - initial_messages: Array; - url_runnable_args: ScriptArgs; + initial_messages?: Array; + url_runnable_args?: ScriptArgs; }; export type NewWebsocketTrigger = { @@ -643,8 +651,8 @@ export type NewWebsocketTrigger = { key: string; value: unknown; }>; - initial_messages: Array; - url_runnable_args: ScriptArgs; + initial_messages?: Array; + url_runnable_args?: ScriptArgs; }; export type EditWebsocketTrigger = { @@ -656,8 +664,8 @@ export type EditWebsocketTrigger = { key: string; value: unknown; }>; - initial_messages: Array; - url_runnable_args: ScriptArgs; + initial_messages?: Array; + url_runnable_args?: ScriptArgs; }; export type WebsocketTriggerInitialMessage = { @@ -670,6 +678,90 @@ export type WebsocketTriggerInitialMessage = { }; }; +export type KafkaTrigger = { + path: string; + edited_by: string; + edited_at: string; + script_path: string; + kafka_resource_path: string; + group_id: string; + topics: Array<(string)>; + is_flow: boolean; + extra_perms: { + [key: string]: (boolean); + }; + email: string; + workspace_id: string; + server_id?: string; + last_server_ping?: string; + error?: string; + enabled: boolean; +}; + +export type NewKafkaTrigger = { + path: string; + script_path: string; + is_flow: boolean; + kafka_resource_path: string; + group_id: string; + topics: Array<(string)>; + enabled?: boolean; +}; + +export type EditKafkaTrigger = { + kafka_resource_path: string; + group_id: string; + topics: Array<(string)>; + path: string; + script_path: string; + is_flow: boolean; +}; + +export type NatsTrigger = { + path: string; + edited_by: string; + edited_at: string; + script_path: string; + nats_resource_path: string; + use_jetstream: boolean; + stream_name?: string; + consumer_name?: string; + subjects: Array<(string)>; + is_flow: boolean; + extra_perms: { + [key: string]: (boolean); + }; + email: string; + workspace_id: string; + server_id?: string; + last_server_ping?: string; + error?: string; + enabled: boolean; +}; + +export type NewNatsTrigger = { + path: string; + script_path: string; + is_flow: boolean; + nats_resource_path: string; + use_jetstream: boolean; + stream_name?: string; + consumer_name?: string; + subjects: Array<(string)>; + enabled?: boolean; +}; + +export type EditNatsTrigger = { + nats_resource_path: string; + use_jetstream: boolean; + stream_name?: string; + consumer_name?: string; + subjects: Array<(string)>; + path: string; + script_path: string; + is_flow: boolean; +}; + export type Group = { name: string; summary?: string; @@ -724,6 +816,7 @@ export type UserWorkspaceList = { id: string; name: string; username: string; + color: string; }>; }; @@ -731,6 +824,7 @@ export type CreateWorkspace = { id: string; name: string; username?: string; + color?: string; }; export type Workspace = { @@ -738,6 +832,7 @@ export type Workspace = { name: string; owner: string; domain?: string; + color?: string; }; export type WorkspaceInvite = { @@ -751,6 +846,7 @@ export type GlobalUserInfo = { email: string; login_type: 'password' | 'github'; super_admin: boolean; + devops?: boolean; verified: boolean; name?: string; company?: string; @@ -781,6 +877,7 @@ export type FlowMetadata = { dedicated_worker?: boolean; timeout?: number; visible_to_runner_only?: boolean; + on_behalf_of_email?: string; }; export type OpenFlowWPath = OpenFlow & { @@ -791,6 +888,7 @@ export type OpenFlowWPath = OpenFlow & { dedicated_worker?: boolean; timeout?: number; visible_to_runner_only?: boolean; + on_behalf_of_email?: string; }; export type FlowPreview = { @@ -870,6 +968,7 @@ export type AppWithLastVersion = { extra_perms: { [key: string]: (boolean); }; + custom_path?: string; }; export type AppWithLastVersionWDraft = AppWithLastVersion & { @@ -1012,7 +1111,7 @@ export type MetricDataPoint = { export type RawScriptForDependencies = { raw_code: string; path: string; - language: 'python3' | 'deno' | 'go' | 'bash' | 'powershell' | 'postgresql' | 'mysql' | 'bigquery' | 'snowflake' | 'mssql' | 'graphql' | 'nativets' | 'bun' | 'php' | 'rust' | 'ansible'; + language: 'python3' | 'deno' | 'go' | 'bash' | 'powershell' | 'postgresql' | 'mysql' | 'bigquery' | 'snowflake' | 'mssql' | 'oracledb' | 'graphql' | 'nativets' | 'bun' | 'php' | 'rust' | 'ansible' | 'csharp'; }; export type ConcurrencyGroup = { @@ -1107,6 +1206,23 @@ export type CriticalAlert = { workspace_id?: (string) | null; }; +export type CaptureTriggerKind = 'webhook' | 'http' | 'websocket' | 'kafka' | 'email' | 'nats'; + +export type Capture = { + trigger_kind: CaptureTriggerKind; + payload: unknown; + trigger_extra?: unknown; + id: number; + created_at: string; +}; + +export type CaptureConfig = { + trigger_config?: unknown; + trigger_kind: CaptureTriggerKind; + error?: string; + last_server_ping?: string; +}; + export type OpenFlow = { summary: string; description?: string; @@ -1204,7 +1320,7 @@ export type RawScript = { [key: string]: InputTransform; }; content: string; - language: 'deno' | 'bun' | 'python3' | 'go' | 'bash' | 'powershell' | 'postgresql' | 'mysql' | 'bigquery' | 'snowflake' | 'mssql' | 'graphql' | 'nativets' | 'php'; + language: 'deno' | 'bun' | 'python3' | 'go' | 'bash' | 'powershell' | 'postgresql' | 'mysql' | 'bigquery' | 'snowflake' | 'mssql' | 'oracledb' | 'graphql' | 'nativets' | 'php'; path?: string; lock?: string; type: 'rawscript'; @@ -1215,7 +1331,7 @@ export type RawScript = { is_trigger?: boolean; }; -export type language2 = 'deno' | 'bun' | 'python3' | 'go' | 'bash' | 'powershell' | 'postgresql' | 'mysql' | 'bigquery' | 'snowflake' | 'mssql' | 'graphql' | 'nativets' | 'php'; +export type language2 = 'deno' | 'bun' | 'python3' | 'go' | 'bash' | 'powershell' | 'postgresql' | 'mysql' | 'bigquery' | 'snowflake' | 'mssql' | 'oracledb' | 'graphql' | 'nativets' | 'php'; export type PathScript = { input_transforms: { @@ -1345,6 +1461,8 @@ export type ParameterJobId = string; export type ParameterPath = string; +export type ParameterCustomPath = string; + export type ParameterPathId = number; export type ParameterPathVersion = number; @@ -1551,6 +1669,8 @@ export type ParameterGetStarted = boolean; export type ParameterConcurrencyId = string; +export type ParameterRunnableKind = 'script' | 'flow'; + export type BackendVersionResponse = (string); export type BackendUptodateResponse = (string); @@ -1705,6 +1825,7 @@ export type GlobalUserUpdateData = { */ requestBody: { is_super_admin?: boolean; + is_devops?: boolean; name?: string; }; }; @@ -1865,7 +1986,17 @@ export type GetCriticalAlertsData = { pageSize?: number; }; -export type GetCriticalAlertsResponse = (Array); +export type GetCriticalAlertsResponse = ({ + alerts?: Array; + /** + * Total number of rows matching the query. + */ + total_rows?: number; + /** + * Total number of pages based on the page size. + */ + total_pages?: number; +}); export type AcknowledgeCriticalAlertData = { /** @@ -1932,6 +2063,10 @@ export type ListGlobalSettingsResponse = (Array); export type GetCurrentEmailResponse = (string); +export type RefreshUserTokenData = { + ifExpiringInLessThanS?: number; +}; + export type RefreshUserTokenResponse = (string); export type GetTutorialProgressResponse = ({ @@ -2088,6 +2223,15 @@ export type ChangeWorkspaceIdData = { export type ChangeWorkspaceIdResponse = (string); +export type ChangeWorkspaceColorData = { + requestBody?: { + color?: string; + }; + workspace: string; +}; + +export type ChangeWorkspaceColorResponse = (string); + export type WhoisData = { username: string; workspace: string; @@ -2152,6 +2296,7 @@ export type GetSettingsResponse = ({ default_app?: string; default_scripts?: WorkspaceDefaultScripts; mute_critical_alerts?: boolean; + color?: string; }); export type GetDeployToData = { @@ -2177,6 +2322,7 @@ export type GetPremiumInfoResponse = ({ usage?: number; seats?: number; automatic_billing: boolean; + owner: string; }); export type SetAutomaticBillingData = { @@ -2192,6 +2338,27 @@ export type SetAutomaticBillingData = { export type SetAutomaticBillingResponse = (string); +export type GetThresholdAlertData = { + workspace: string; +}; + +export type GetThresholdAlertResponse = ({ + threshold_alert_amount?: number; + last_alert_sent?: string; +}); + +export type SetThresholdAlertData = { + /** + * threshold alert info + */ + requestBody: { + threshold_alert_amount?: number; + }; + workspace: string; +}; + +export type SetThresholdAlertResponse = (string); + export type EditSlackCommandData = { /** * WorkspaceInvite @@ -2417,6 +2584,8 @@ export type GetUsedTriggersData = { export type GetUsedTriggersResponse = ({ http_routes_used: boolean; websocket_used: boolean; + kafka_used: boolean; + nats_used: boolean; }); export type ListUsersData = { @@ -2589,7 +2758,17 @@ export type WorkspaceGetCriticalAlertsData = { workspace: string; }; -export type WorkspaceGetCriticalAlertsResponse = (Array); +export type WorkspaceGetCriticalAlertsResponse = ({ + alerts?: Array; + /** + * Total number of rows matching the query. + */ + total_rows?: number; + /** + * Total number of pages based on the page size. + */ + total_pages?: number; +}); export type WorkspaceAcknowledgeCriticalAlertData = { /** @@ -2983,6 +3162,14 @@ export type GetHubAppByIdResponse = ({ }; }); +export type GetPublicAppByCustomPathData = { + customPath: string; +}; + +export type GetPublicAppByCustomPathResponse = ((AppWithLastVersion & { + workspace_id?: string; +})); + export type GetHubScriptContentByPathData = { path: string; }; @@ -3212,6 +3399,11 @@ export type ToggleWorkspaceErrorHandlerForScriptData = { export type ToggleWorkspaceErrorHandlerForScriptResponse = (string); +export type GetCustomTagsData = { + showWorkspaceRestriction?: boolean; + workspace?: string; +}; + export type GetCustomTagsResponse = (Array<(string)>); export type GeDefaultTagsResponse = (Array<(string)>); @@ -3887,6 +4079,7 @@ export type CreateAppData = { policy: Policy; draft_only?: boolean; deployment_message?: string; + custom_path?: string; }; workspace: string; }; @@ -3908,6 +4101,13 @@ export type GetAppByPathData = { export type GetAppByPathResponse = (AppWithLastVersion); +export type GetAppLiteByPathData = { + path: string; + workspace: string; +}; + +export type GetAppLiteByPathResponse = (AppWithLastVersion); + export type GetAppByPathWithDraftData = { path: string; workspace: string; @@ -4025,12 +4225,20 @@ export type UpdateAppData = { value?: unknown; policy?: Policy; deployment_message?: string; + custom_path?: string; }; workspace: string; }; export type UpdateAppResponse = (string); +export type CustomPathExistsData = { + customPath: string; + workspace: string; +}; + +export type CustomPathExistsResponse = (boolean); + export type ExecuteComponentData = { path: string; /** @@ -4039,6 +4247,7 @@ export type ExecuteComponentData = { requestBody: { component: string; path?: string; + version?: number; args: unknown; raw_code?: { content: string; @@ -4047,6 +4256,7 @@ export type ExecuteComponentData = { lock?: string; cache_ttl?: number; }; + id?: number; force_viewer_static_fields?: { [key: string]: unknown; }; @@ -4892,6 +5102,20 @@ export type GetResumeUrlsResponse = ({ cancel: string; }); +export type GetSlackApprovalPayloadData = { + approver?: string; + channelId: string; + defaultArgsJson?: string; + dynamicEnumsJson?: string; + flowStepId: string; + id: string; + message?: string; + slackResourcePath: string; + workspace: string; +}; + +export type GetSlackApprovalPayloadResponse = (unknown); + export type ResumeSuspendedJobGetData = { approver?: string; id: string; @@ -4997,6 +5221,7 @@ export type PreviewScheduleData = { requestBody: { schedule: string; timezone: string; + cron_version?: string; }; }; @@ -5265,6 +5490,156 @@ export type SetWebsocketTriggerEnabledData = { export type SetWebsocketTriggerEnabledResponse = (string); +export type CreateKafkaTriggerData = { + /** + * new kafka trigger + */ + requestBody: NewKafkaTrigger; + workspace: string; +}; + +export type CreateKafkaTriggerResponse = (string); + +export type UpdateKafkaTriggerData = { + path: string; + /** + * updated trigger + */ + requestBody: EditKafkaTrigger; + workspace: string; +}; + +export type UpdateKafkaTriggerResponse = (string); + +export type DeleteKafkaTriggerData = { + path: string; + workspace: string; +}; + +export type DeleteKafkaTriggerResponse = (string); + +export type GetKafkaTriggerData = { + path: string; + workspace: string; +}; + +export type GetKafkaTriggerResponse = (KafkaTrigger); + +export type ListKafkaTriggersData = { + isFlow?: boolean; + /** + * which page to return (start at 1, default 1) + */ + page?: number; + /** + * filter by path + */ + path?: string; + pathStart?: string; + /** + * number of items to return for a given page (default 30, max 100) + */ + perPage?: number; + workspace: string; +}; + +export type ListKafkaTriggersResponse = (Array); + +export type ExistsKafkaTriggerData = { + path: string; + workspace: string; +}; + +export type ExistsKafkaTriggerResponse = (boolean); + +export type SetKafkaTriggerEnabledData = { + path: string; + /** + * updated kafka trigger enable + */ + requestBody: { + enabled: boolean; + }; + workspace: string; +}; + +export type SetKafkaTriggerEnabledResponse = (string); + +export type CreateNatsTriggerData = { + /** + * new nats trigger + */ + requestBody: NewNatsTrigger; + workspace: string; +}; + +export type CreateNatsTriggerResponse = (string); + +export type UpdateNatsTriggerData = { + path: string; + /** + * updated trigger + */ + requestBody: EditNatsTrigger; + workspace: string; +}; + +export type UpdateNatsTriggerResponse = (string); + +export type DeleteNatsTriggerData = { + path: string; + workspace: string; +}; + +export type DeleteNatsTriggerResponse = (string); + +export type GetNatsTriggerData = { + path: string; + workspace: string; +}; + +export type GetNatsTriggerResponse = (NatsTrigger); + +export type ListNatsTriggersData = { + isFlow?: boolean; + /** + * which page to return (start at 1, default 1) + */ + page?: number; + /** + * filter by path + */ + path?: string; + pathStart?: string; + /** + * number of items to return for a given page (default 30, max 100) + */ + perPage?: number; + workspace: string; +}; + +export type ListNatsTriggersResponse = (Array); + +export type ExistsNatsTriggerData = { + path: string; + workspace: string; +}; + +export type ExistsNatsTriggerResponse = (boolean); + +export type SetNatsTriggerEnabledData = { + path: string; + /** + * updated nats trigger enable + */ + requestBody: { + enabled: boolean; + }; + workspace: string; +}; + +export type SetNatsTriggerEnabledResponse = (string); + export type ListInstanceGroupsResponse = (Array); export type GetInstanceGroupData = { @@ -5612,7 +5987,7 @@ export type ListAutoscalingEventsData = { export type ListAutoscalingEventsResponse = (Array); export type GetGranularAclsData = { - kind: 'script' | 'group_' | 'resource' | 'schedule' | 'variable' | 'flow' | 'folder' | 'app' | 'raw_app' | 'http_trigger' | 'websocket_trigger'; + kind: 'script' | 'group_' | 'resource' | 'schedule' | 'variable' | 'flow' | 'folder' | 'app' | 'raw_app' | 'http_trigger' | 'websocket_trigger' | 'kafka_trigger' | 'nats_trigger'; path: string; workspace: string; }; @@ -5622,7 +5997,7 @@ export type GetGranularAclsResponse = ({ }); export type AddGranularAclsData = { - kind: 'script' | 'group_' | 'resource' | 'schedule' | 'variable' | 'flow' | 'folder' | 'app' | 'raw_app' | 'http_trigger' | 'websocket_trigger'; + kind: 'script' | 'group_' | 'resource' | 'schedule' | 'variable' | 'flow' | 'folder' | 'app' | 'raw_app' | 'http_trigger' | 'websocket_trigger' | 'kafka_trigger' | 'nats_trigger'; path: string; /** * acl to add @@ -5637,7 +6012,7 @@ export type AddGranularAclsData = { export type AddGranularAclsResponse = (string); export type RemoveGranularAclsData = { - kind: 'script' | 'group_' | 'resource' | 'schedule' | 'variable' | 'flow' | 'folder' | 'app' | 'raw_app' | 'http_trigger' | 'websocket_trigger'; + kind: 'script' | 'group_' | 'resource' | 'schedule' | 'variable' | 'flow' | 'folder' | 'app' | 'raw_app' | 'http_trigger' | 'websocket_trigger' | 'kafka_trigger' | 'nats_trigger'; path: string; /** * acl to add @@ -5650,26 +6025,63 @@ export type RemoveGranularAclsData = { export type RemoveGranularAclsResponse = (string); -export type UpdateCaptureData = { - path: string; +export type SetCaptureConfigData = { + /** + * capture config + */ + requestBody: { + trigger_kind: CaptureTriggerKind; + path: string; + is_flow: boolean; + trigger_config?: { + [key: string]: unknown; + }; + }; workspace: string; }; -export type UpdateCaptureResponse = (void); +export type SetCaptureConfigResponse = (unknown); -export type CreateCaptureData = { +export type PingCaptureConfigData = { path: string; + runnableKind: 'script' | 'flow'; + triggerKind: CaptureTriggerKind; workspace: string; }; -export type CreateCaptureResponse = (unknown); +export type PingCaptureConfigResponse = (unknown); -export type GetCaptureData = { +export type GetCaptureConfigsData = { path: string; + runnableKind: 'script' | 'flow'; workspace: string; }; -export type GetCaptureResponse = (unknown); +export type GetCaptureConfigsResponse = (Array); + +export type ListCapturesData = { + /** + * which page to return (start at 1, default 1) + */ + page?: number; + path: string; + /** + * number of items to return for a given page (default 30, max 100) + */ + perPage?: number; + runnableKind: 'script' | 'flow'; + triggerKind?: CaptureTriggerKind; + workspace: string; +}; + +export type ListCapturesResponse = (Array); + +export type DeleteCaptureData = { + id: number; + workspace: string; +}; + +export type DeleteCaptureResponse = (unknown); export type StarData = { requestBody?: { @@ -5692,6 +6104,7 @@ export type UnstarData = { export type UnstarResponse = (unknown); export type GetInputHistoryData = { + includePreview?: boolean; /** * which page to return (start at 1, default 1) */ @@ -6223,7 +6636,6 @@ export type SearchLogsIndexResponse = ({ }); export type CountSearchLogsIndexData = { - hosts: string; maxTs?: string; minTs?: string; searchQuery: string; @@ -6240,4 +6652,10 @@ export type CountSearchLogsIndexResponse = ({ count_per_host?: { [key: string]: unknown; }; -}); \ No newline at end of file +}); + +export type ClearIndexData = { + idxName: 'JobIndex' | 'ServiceLogIndex'; +}; + +export type ClearIndexResponse = (string); \ No newline at end of file diff --git a/cli/main.ts b/cli/main.ts index 8a0a09d533..8ef0adb1b1 100644 --- a/cli/main.ts +++ b/cli/main.ts @@ -60,7 +60,7 @@ export { // } // }); -export const VERSION = "1.445.1"; +export const VERSION = "1.447.6"; const command = new Command() .name("wmill") diff --git a/cli/metadata.ts b/cli/metadata.ts index 92ac7dfc4b..32cd556f76 100644 --- a/cli/metadata.ts +++ b/cli/metadata.ts @@ -26,8 +26,10 @@ import { parse_powershell, parse_python, parse_rust, + parse_csharp, parse_snowflake, parse_sql, + parse_oracledb, } from "./wasm/windmill_parser_wasm.generated.js"; import { Workspace } from "./workspace.ts"; import { SchemaProperty } from "./bootstrap/common.ts"; @@ -468,6 +470,12 @@ export function inferSchema( { name: "database", typ: { resource: "bigquery" } }, ...inferedSchema.args, ]; + } else if (language === "oracledb") { + inferedSchema = JSON.parse(parse_oracledb(content)); + inferedSchema.args = [ + { name: "database", typ: { resource: "oracledb" } }, + ...inferedSchema.args, + ]; } else if (language === "snowflake") { inferedSchema = JSON.parse(parse_snowflake(content)); inferedSchema.args = [ @@ -500,6 +508,8 @@ export function inferSchema( inferedSchema = JSON.parse(parse_php(content)); } else if (language === "rust") { inferedSchema = JSON.parse(parse_rust(content)); + } else if (language === "csharp") { + inferedSchema = JSON.parse(parse_csharp(content)); } else if (language === "ansible") { inferedSchema = JSON.parse(parse_ansible(content)); } else { diff --git a/cli/script.ts b/cli/script.ts index 6d0b438c7b..c341489534 100644 --- a/cli/script.ts +++ b/cli/script.ts @@ -309,6 +309,7 @@ export async function handleFile( //@ts-ignore codebase: codebase?.digest, timeout: typed?.timeout, + on_behalf_of_email: typed?.on_behalf_of_email, }; if (remote) { @@ -343,7 +344,8 @@ export async function handleFile( typed.timeout == remote.timeout && //@ts-ignore typed.concurrency_key == remote["concurrency_key"] && - typed.codebase == remote.codebase) + typed.codebase == remote.codebase && + typed.on_behalf_of_email == remote.on_behalf_of_email) ) { log.info(colors.green(`Script ${remotePath} is up to date`)); return true; @@ -508,6 +510,8 @@ export function filePathExtensionFromContentType( return ".my.sql"; } else if (language === "bigquery") { return ".bq.sql"; + } else if (language === "oracledb") { + return ".odb.sql"; } else if (language === "snowflake") { return ".sf.sql"; } else if (language === "mssql") { @@ -526,6 +530,8 @@ export function filePathExtensionFromContentType( return ".rs"; } else if (language === "ansible") { return ".playbook.yml"; + } else if (language === "csharp") { + return ".cs"; } else { throw new Error("Invalid language: " + language); } @@ -542,6 +548,7 @@ export const exts = [ ".pg.sql", ".my.sql", ".bq.sql", + ".odb.sql", ".sf.sql", ".ms.sql", ".sql", @@ -549,6 +556,7 @@ export const exts = [ ".ps1", ".php", ".rs", + ".cs", ".playbook.yml", ]; diff --git a/cli/script_common.ts b/cli/script_common.ts index 220c6c41e9..49fc491803 100644 --- a/cli/script_common.ts +++ b/cli/script_common.ts @@ -9,11 +9,13 @@ export type ScriptLanguage = | "postgresql" | "mysql" | "bigquery" + | "oracledb" | "snowflake" | "mssql" | "graphql" | "php" | "rust" + | "csharp" | "ansible"; export function inferContentTypeFromFilePath( @@ -36,6 +38,8 @@ export function inferContentTypeFromFilePath( return "mysql"; } else if (contentPath.endsWith(".bq.sql")) { return "bigquery"; + } else if (contentPath.endsWith(".odb.sql")) { + return "oracledb"; } else if (contentPath.endsWith(".sf.sql")) { return "snowflake"; } else if (contentPath.endsWith(".ms.sql")) { @@ -52,6 +56,8 @@ export function inferContentTypeFromFilePath( return "php"; } else if (contentPath.endsWith(".rs")) { return "rust"; + } else if (contentPath.endsWith(".cs")) { + return "csharp"; } else if (contentPath.endsWith(".playbook.yml")) { return "ansible"; } else { diff --git a/cli/sync.ts b/cli/sync.ts index f0ec3dce2c..408c01884e 100644 --- a/cli/sync.ts +++ b/cli/sync.ts @@ -320,6 +320,7 @@ export function newPathAssigner(defaultTs: "bun" | "deno"): PathAssigner { else if (language == "postgresql") ext = "pg.sql"; else if (language == "mysql") ext = "my.sql"; else if (language == "bigquery") ext = "bq.sql"; + else if (language == "oracledb") ext = "odb.sql"; else if (language == "snowflake") ext = "sf.sql"; else if (language == "mssql") ext = "ms.sql"; else if (language == "graphql") ext = "gql"; @@ -327,6 +328,7 @@ export function newPathAssigner(defaultTs: "bun" | "deno"): PathAssigner { else if (language == "frontend") ext = "frontend.js"; else if (language == "php") ext = "php"; else if (language == "rust") ext = "rs"; + else if (language == "csharp") ext = "cs"; else if (language == "ansible") ext = "playbook.yml"; else ext = "no_ext"; @@ -647,6 +649,7 @@ export async function elementsToMap( "js", "lock", "rs", + "cs", "yml", ].includes(path.split(".").pop() ?? "") && !isFileResource(path) diff --git a/cli/types.ts b/cli/types.ts index e264521cb7..0d717c296e 100644 --- a/cli/types.ts +++ b/cli/types.ts @@ -202,6 +202,7 @@ export function getTypeStrFromPath( parsed.ext == ".js" || parsed.ext == ".php" || parsed.ext == ".rs" || + parsed.ext == ".cs" || (parsed.ext == ".yml" && parsed.name.split(".").pop() == "playbook") ) { return "script"; diff --git a/cli/wasm/windmill_parser_wasm.generated.d.ts b/cli/wasm/windmill_parser_wasm.generated.d.ts index 547c600062..ac139dee65 100644 --- a/cli/wasm/windmill_parser_wasm.generated.d.ts +++ b/cli/wasm/windmill_parser_wasm.generated.d.ts @@ -13,6 +13,7 @@ export interface InstantiateResult { parse_python: typeof parse_python; parse_sql: typeof parse_sql; parse_mysql: typeof parse_mysql; + parse_oracledb: typeof parse_oracledb; parse_bigquery: typeof parse_bigquery; parse_snowflake: typeof parse_snowflake; parse_mssql: typeof parse_mssql; @@ -20,7 +21,8 @@ export interface InstantiateResult { parse_graphql: typeof parse_graphql; parse_php: typeof parse_php; parse_rust: typeof parse_rust; - parse_ansible: typeof parse_ansible + parse_ansible: typeof parse_ansible; + parse_csharp: typeof parse_csharp }; } @@ -96,6 +98,11 @@ export function parse_mysql(code: string): string; * @param {string} code * @returns {string} */ +export function parse_oracledb(code: string): string; +/** +* @param {string} code +* @returns {string} +*/ export function parse_bigquery(code: string): string; /** * @param {string} code @@ -132,3 +139,8 @@ export function parse_rust(code: string): string; * @returns {string} */ export function parse_ansible(code: string): string; +/** +* @param {string} code +* @returns {string} +*/ +export function parse_csharp(code: string): string; diff --git a/cli/wasm/windmill_parser_wasm.generated.js b/cli/wasm/windmill_parser_wasm.generated.js index c8589935b2..81ae826164 100644 --- a/cli/wasm/windmill_parser_wasm.generated.js +++ b/cli/wasm/windmill_parser_wasm.generated.js @@ -4,7 +4,7 @@ // deno-fmt-ignore-file /// -// source-hash: 6da62ad21f79c5b8fe442f1de939e367943e2665 +// source-hash: f0b1d0be016a3874b6824c3458a87cf04fc171fd let wasm; const heap = new Array(128).fill(undefined); @@ -15,7 +15,38 @@ function getObject(idx) { return heap[idx]; } -let WASM_VECTOR_LEN = 0; +let heap_next = heap.length; + +function dropObject(idx) { + if (idx < 132) return; + heap[idx] = heap_next; + heap_next = idx; +} + +function takeObject(idx) { + const ret = getObject(idx); + dropObject(idx); + return ret; +} + +function addHeapObject(obj) { + if (heap_next === heap.length) heap.push(heap.length + 1); + const idx = heap_next; + heap_next = heap[idx]; + + heap[idx] = obj; + return idx; +} + +const cachedTextDecoder = typeof TextDecoder !== "undefined" + ? new TextDecoder("utf-8", { ignoreBOM: true, fatal: true }) + : { + decode: () => { + throw Error("TextDecoder not available"); + }, + }; + +if (typeof TextDecoder !== "undefined") cachedTextDecoder.decode(); let cachedUint8Memory0 = null; @@ -26,6 +57,35 @@ function getUint8Memory0() { return cachedUint8Memory0; } +function getStringFromWasm0(ptr, len) { + ptr = ptr >>> 0; + return cachedTextDecoder.decode(getUint8Memory0().subarray(ptr, ptr + len)); +} + +function isLikeNone(x) { + return x === undefined || x === null; +} + +let cachedFloat64Memory0 = null; + +function getFloat64Memory0() { + if (cachedFloat64Memory0 === null || cachedFloat64Memory0.byteLength === 0) { + cachedFloat64Memory0 = new Float64Array(wasm.memory.buffer); + } + return cachedFloat64Memory0; +} + +let cachedInt32Memory0 = null; + +function getInt32Memory0() { + if (cachedInt32Memory0 === null || cachedInt32Memory0.byteLength === 0) { + cachedInt32Memory0 = new Int32Array(wasm.memory.buffer); + } + return cachedInt32Memory0; +} + +let WASM_VECTOR_LEN = 0; + const cachedTextEncoder = typeof TextEncoder !== "undefined" ? new TextEncoder("utf-8") : { @@ -76,66 +136,6 @@ function passStringToWasm0(arg, malloc, realloc) { return ptr; } -function isLikeNone(x) { - return x === undefined || x === null; -} - -let cachedInt32Memory0 = null; - -function getInt32Memory0() { - if (cachedInt32Memory0 === null || cachedInt32Memory0.byteLength === 0) { - cachedInt32Memory0 = new Int32Array(wasm.memory.buffer); - } - return cachedInt32Memory0; -} - -let heap_next = heap.length; - -function dropObject(idx) { - if (idx < 132) return; - heap[idx] = heap_next; - heap_next = idx; -} - -function takeObject(idx) { - const ret = getObject(idx); - dropObject(idx); - return ret; -} - -let cachedFloat64Memory0 = null; - -function getFloat64Memory0() { - if (cachedFloat64Memory0 === null || cachedFloat64Memory0.byteLength === 0) { - cachedFloat64Memory0 = new Float64Array(wasm.memory.buffer); - } - return cachedFloat64Memory0; -} - -function addHeapObject(obj) { - if (heap_next === heap.length) heap.push(heap.length + 1); - const idx = heap_next; - heap_next = heap[idx]; - - heap[idx] = obj; - return idx; -} - -const cachedTextDecoder = typeof TextDecoder !== "undefined" - ? new TextDecoder("utf-8", { ignoreBOM: true, fatal: true }) - : { - decode: () => { - throw Error("TextDecoder not available"); - }, - }; - -if (typeof TextDecoder !== "undefined") cachedTextDecoder.decode(); - -function getStringFromWasm0(ptr, len) { - ptr = ptr >>> 0; - return cachedTextDecoder.decode(getUint8Memory0().subarray(ptr, ptr + len)); -} - let cachedBigInt64Memory0 = null; function getBigInt64Memory0() { @@ -472,6 +472,33 @@ export function parse_mysql(code) { } } +/** + * @param {string} code + * @returns {string} + */ +export function parse_oracledb(code) { + let deferred2_0; + let deferred2_1; + try { + const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); + const ptr0 = passStringToWasm0( + code, + wasm.__wbindgen_malloc, + wasm.__wbindgen_realloc, + ); + const len0 = WASM_VECTOR_LEN; + wasm.parse_oracledb(retptr, ptr0, len0); + var r0 = getInt32Memory0()[retptr / 4 + 0]; + var r1 = getInt32Memory0()[retptr / 4 + 1]; + deferred2_0 = r0; + deferred2_1 = r1; + return getStringFromWasm0(r0, r1); + } finally { + wasm.__wbindgen_add_to_stack_pointer(16); + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } +} + /** * @param {string} code * @returns {string} @@ -688,6 +715,33 @@ export function parse_ansible(code) { } } +/** + * @param {string} code + * @returns {string} + */ +export function parse_csharp(code) { + let deferred2_0; + let deferred2_1; + try { + const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); + const ptr0 = passStringToWasm0( + code, + wasm.__wbindgen_malloc, + wasm.__wbindgen_realloc, + ); + const len0 = WASM_VECTOR_LEN; + wasm.parse_csharp(retptr, ptr0, len0); + var r0 = getInt32Memory0()[retptr / 4 + 0]; + var r1 = getInt32Memory0()[retptr / 4 + 1]; + deferred2_0 = r0; + deferred2_1 = r1; + return getStringFromWasm0(r0, r1); + } finally { + wasm.__wbindgen_add_to_stack_pointer(16); + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } +} + function handleError(f, args) { try { return f.apply(this, args); @@ -698,71 +752,6 @@ function handleError(f, args) { const imports = { __wbindgen_placeholder__: { - __wbindgen_string_get: function (arg0, arg1) { - const obj = getObject(arg1); - const ret = typeof obj === "string" ? obj : undefined; - var ptr1 = isLikeNone(ret) - ? 0 - : passStringToWasm0( - ret, - wasm.__wbindgen_malloc, - wasm.__wbindgen_realloc, - ); - var len1 = WASM_VECTOR_LEN; - getInt32Memory0()[arg0 / 4 + 1] = len1; - getInt32Memory0()[arg0 / 4 + 0] = ptr1; - }, - __wbindgen_object_drop_ref: function (arg0) { - takeObject(arg0); - }, - __wbindgen_boolean_get: function (arg0) { - const v = getObject(arg0); - const ret = typeof v === "boolean" ? (v ? 1 : 0) : 2; - return ret; - }, - __wbindgen_is_bigint: function (arg0) { - const ret = typeof (getObject(arg0)) === "bigint"; - return ret; - }, - __wbindgen_number_get: function (arg0, arg1) { - const obj = getObject(arg1); - const ret = typeof obj === "number" ? obj : undefined; - getFloat64Memory0()[arg0 / 8 + 1] = isLikeNone(ret) ? 0 : ret; - getInt32Memory0()[arg0 / 4 + 0] = !isLikeNone(ret); - }, - __wbindgen_is_object: function (arg0) { - const val = getObject(arg0); - const ret = typeof val === "object" && val !== null; - return ret; - }, - __wbindgen_in: function (arg0, arg1) { - const ret = getObject(arg0) in getObject(arg1); - return ret; - }, - __wbindgen_bigint_from_i64: function (arg0) { - const ret = arg0; - return addHeapObject(ret); - }, - __wbindgen_jsval_eq: function (arg0, arg1) { - const ret = getObject(arg0) === getObject(arg1); - return ret; - }, - __wbindgen_bigint_from_u64: function (arg0) { - const ret = BigInt.asUintN(64, arg0); - return addHeapObject(ret); - }, - __wbindgen_error_new: function (arg0, arg1) { - const ret = new Error(getStringFromWasm0(arg0, arg1)); - return addHeapObject(ret); - }, - __wbg_eval_8243d86342a64a9b: function (arg0, arg1) { - const ret = eval(getStringFromWasm0(arg0, arg1)); - return addHeapObject(ret); - }, - __wbindgen_jsval_loose_eq: function (arg0, arg1) { - const ret = getObject(arg0) == getObject(arg1); - return ret; - }, __wbg_get_bd8e338fbd5f5cc8: function (arg0, arg1) { const ret = getObject(arg0)[arg1 >>> 0]; return addHeapObject(ret); @@ -771,14 +760,22 @@ const imports = { const ret = getObject(arg0).length; return ret; }, - __wbindgen_is_function: function (arg0) { - const ret = typeof (getObject(arg0)) === "function"; + __wbindgen_is_object: function (arg0) { + const val = getObject(arg0); + const ret = typeof val === "object" && val !== null; return ret; }, __wbg_next_40fc327bfc8770e6: function (arg0) { const ret = getObject(arg0).next; return addHeapObject(ret); }, + __wbindgen_is_function: function (arg0) { + const ret = typeof (getObject(arg0)) === "function"; + return ret; + }, + __wbindgen_object_drop_ref: function (arg0) { + takeObject(arg0); + }, __wbg_next_196c84450b364254: function () { return handleError(function (arg0) { const ret = getObject(arg0).next(); @@ -841,6 +838,10 @@ const imports = { const ret = Object.entries(getObject(arg0)); return addHeapObject(ret); }, + __wbindgen_memory: function () { + const ret = wasm.memory; + return addHeapObject(ret); + }, __wbg_buffer_12d079cc21e14bdb: function (arg0) { const ret = getObject(arg0).buffer; return addHeapObject(ret); @@ -866,6 +867,39 @@ const imports = { const ret = result; return ret; }, + __wbindgen_error_new: function (arg0, arg1) { + const ret = new Error(getStringFromWasm0(arg0, arg1)); + return addHeapObject(ret); + }, + __wbindgen_jsval_loose_eq: function (arg0, arg1) { + const ret = getObject(arg0) == getObject(arg1); + return ret; + }, + __wbindgen_boolean_get: function (arg0) { + const v = getObject(arg0); + const ret = typeof v === "boolean" ? (v ? 1 : 0) : 2; + return ret; + }, + __wbindgen_number_get: function (arg0, arg1) { + const obj = getObject(arg1); + const ret = typeof obj === "number" ? obj : undefined; + getFloat64Memory0()[arg0 / 8 + 1] = isLikeNone(ret) ? 0 : ret; + getInt32Memory0()[arg0 / 4 + 0] = !isLikeNone(ret); + }, + __wbindgen_string_get: function (arg0, arg1) { + const obj = getObject(arg1); + const ret = typeof obj === "string" ? obj : undefined; + var ptr1 = isLikeNone(ret) + ? 0 + : passStringToWasm0( + ret, + wasm.__wbindgen_malloc, + wasm.__wbindgen_realloc, + ); + var len1 = WASM_VECTOR_LEN; + getInt32Memory0()[arg0 / 4 + 1] = len1; + getInt32Memory0()[arg0 / 4 + 0] = ptr1; + }, __wbindgen_bigint_get_as_i64: function (arg0, arg1) { const v = getObject(arg1); const ret = typeof v === "bigint" ? v : undefined; @@ -886,8 +920,28 @@ const imports = { __wbindgen_throw: function (arg0, arg1) { throw new Error(getStringFromWasm0(arg0, arg1)); }, - __wbindgen_memory: function () { - const ret = wasm.memory; + __wbindgen_is_bigint: function (arg0) { + const ret = typeof (getObject(arg0)) === "bigint"; + return ret; + }, + __wbindgen_in: function (arg0, arg1) { + const ret = getObject(arg0) in getObject(arg1); + return ret; + }, + __wbindgen_bigint_from_i64: function (arg0) { + const ret = arg0; + return addHeapObject(ret); + }, + __wbindgen_jsval_eq: function (arg0, arg1) { + const ret = getObject(arg0) === getObject(arg1); + return ret; + }, + __wbindgen_bigint_from_u64: function (arg0) { + const ret = BigInt.asUintN(64, arg0); + return addHeapObject(ret); + }, + __wbg_eval_73a4cb0af5990ab1: function (arg0, arg1) { + const ret = eval(getStringFromWasm0(arg0, arg1)); return addHeapObject(ret); }, }, @@ -1031,6 +1085,7 @@ function getWasmInstanceExports() { parse_python, parse_sql, parse_mysql, + parse_oracledb, parse_bigquery, parse_snowflake, parse_mssql, @@ -1039,6 +1094,7 @@ function getWasmInstanceExports() { parse_php, parse_rust, parse_ansible, + parse_csharp, }; } diff --git a/cli/wasm/windmill_parser_wasm_bg.wasm b/cli/wasm/windmill_parser_wasm_bg.wasm index 692c1e4fa8..19f605d076 100644 Binary files a/cli/wasm/windmill_parser_wasm_bg.wasm and b/cli/wasm/windmill_parser_wasm_bg.wasm differ diff --git a/docker/DockerfileFullEe b/docker/DockerfileFullEe index 5f7870cc82..9b2e1a9cf0 100644 --- a/docker/DockerfileFullEe +++ b/docker/DockerfileFullEe @@ -8,3 +8,8 @@ RUN pip3 install ansible COPY --from=bitnami/dotnet-sdk:9.0.101-debian-12-r0 /opt/bitnami/dotnet-sdk /opt/dotnet-sdk RUN ln -s /opt/dotnet-sdk/bin/dotnet /usr/bin/dotnet ENV DOTNET_ROOT="/opt/dotnet-sdk/bin" + +# Oracle DB Client +COPY --from=ghcr.io/oracle/oraclelinux9-instantclient:23 /usr/lib/oracle/23/client64/lib /opt/oracle/23/lib +RUN apt-get -y update && apt-get install -y libaio1 +RUN echo /opt/oracle/23/lib > /etc/ld.so.conf.d/oracle-instantclient.conf && ldconfig diff --git a/docker/DockerfileNsjail b/docker/DockerfileNsjail index a94d4e8d49..975092006b 100644 --- a/docker/DockerfileNsjail +++ b/docker/DockerfileNsjail @@ -34,4 +34,9 @@ COPY --from=bitnami/dotnet-sdk:9.0.101-debian-12-r0 /opt/bitnami/dotnet-sdk /opt RUN ln -s /opt/dotnet-sdk/bin/dotnet /usr/bin/dotnet ENV DOTNET_ROOT="/opt/dotnet-sdk/bin" +# Oracle DB Client +COPY --from=ghcr.io/oracle/oraclelinux9-instantclient:23 /usr/lib/oracle/23/client64/lib /opt/oracle/23/lib +RUN apt-get -y update && apt-get install -y libaio1 +RUN echo /opt/oracle/23/lib > /etc/ld.so.conf.d/oracle-instantclient.conf && ldconfig + COPY --from=nsjail /nsjail/nsjail /bin/nsjail diff --git a/docker/DockerfileSlim b/docker/DockerfileSlim index 21e8161c95..d960fb6d92 100644 --- a/docker/DockerfileSlim +++ b/docker/DockerfileSlim @@ -20,7 +20,7 @@ RUN /usr/local/bin/python3 -m pip install pip-tools # Install UV RUN curl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/uv/releases/download/0.5.15/uv-installer.sh | sh && mv /root/.local/bin/uv /usr/local/bin/uv -COPY --from=oven/bun:1.1.40 /usr/local/bin/bun /usr/bin/bun +COPY --from=oven/bun:1.1.43 /usr/local/bin/bun /usr/bin/bun # add the docker client to call docker from a worker if enabled COPY --from=docker:dind /usr/local/bin/docker /usr/local/bin/ diff --git a/docker/DockerfileSlimEe b/docker/DockerfileSlimEe index 29c627b332..0adcd73552 100644 --- a/docker/DockerfileSlimEe +++ b/docker/DockerfileSlimEe @@ -19,7 +19,7 @@ RUN /usr/local/bin/python3 -m pip install pip-tools # Install UV RUN curl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/uv/releases/download/0.5.15/uv-installer.sh | sh && mv /root/.local/bin/uv /usr/local/bin/uv -COPY --from=oven/bun:1.1.40 /usr/local/bin/bun /usr/bin/bun +COPY --from=oven/bun:1.1.43 /usr/local/bin/bun /usr/bin/bun # add the docker client to call docker from a worker if enabled COPY --from=docker:dind /usr/local/bin/docker /usr/local/bin/ diff --git a/docker/RHEL9/Dockerfile b/docker/RHEL9/Dockerfile index 10e0f01096..7399fd690a 100644 --- a/docker/RHEL9/Dockerfile +++ b/docker/RHEL9/Dockerfile @@ -61,10 +61,10 @@ RUN --mount=type=secret,id=rh_username \ RUN subscription-manager repos --enable codeready-builder-for-rhel-9-$(arch)-rpms RUN yum update -y && \ - yum install -y libxml2-devel xmlsec1-devel xmlsec1-openssl-devel clang llvm-devel cmake libtool-ltdl-devel + yum install -y perl-FindBin perl-IPC-Cmd libxml2-devel xmlsec1-devel xmlsec1-openssl-devel clang llvm-devel cmake libtool-ltdl-devel -RUN --mount=type=cache,target=/usr/local/cargo/registry \ - CARGO_NET_GIT_FETCH_WITH_CLI=true RUST_BACKTRACE=1 cargo chef cook --release --features "$features" --recipe-path recipe.json +# RUN --mount=type=cache,target=/usr/local/cargo/registry \ +# CARGO_NET_GIT_FETCH_WITH_CLI=true RUST_BACKTRACE=1 cargo chef cook --release --features "$features" --recipe-path recipe.json COPY ./openflow.openapi.yaml /openflow.openapi.yaml COPY ./backend ./ diff --git a/flake.lock b/flake.lock index 696e485298..c0cae8c380 100644 --- a/flake.lock +++ b/flake.lock @@ -20,11 +20,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1735471104, - "narHash": "sha256-0q9NGQySwDQc7RhAV2ukfnu7Gxa5/ybJ2ANT8DQrQrs=", + "lastModified": 1736883708, + "narHash": "sha256-uQ+NQ0/xYU0N1CnXsa2zghgNaOPxWpMJXSUJJ9W7140=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "88195a94f390381c6afcdaa933c2f6ff93959cb4", + "rev": "eb62e6aa39ea67e0b8018ba8ea077efe65807dc8", "type": "github" }, "original": { @@ -35,11 +35,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1728538411, - "narHash": "sha256-f0SBJz1eZ2yOuKUr5CA9BHULGXVSn6miBuUWdTyhUhU=", + "lastModified": 1736320768, + "narHash": "sha256-nIYdTAiKIGnFNugbomgBJR+Xv5F1ZQU+HfaBqJKroC0=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "b69de56fac8c2b6f8fd27f2eca01dcda8e0a4221", + "rev": "4bc9c909d9ac828a039f288cf872d16d38185db8", "type": "github" }, "original": { @@ -61,11 +61,11 @@ "nixpkgs": "nixpkgs_2" }, "locked": { - "lastModified": 1735612067, - "narHash": "sha256-rsjojgfPUf9tWuMXuuo2KAIoUZ49XGZQJSjFGOO8Cq4=", + "lastModified": 1737080704, + "narHash": "sha256-n+J2h9GM9ZpFOQUmtZoCr1+DFF/iO5UlmLJeHIxbZGY=", "owner": "oxalica", "repo": "rust-overlay", - "rev": "d199142e84bfaae476ffb4e09a70879d7918784d", + "rev": "f9953fe89f8b65401fc4d4a288940bc2cb072949", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index d8ecc78c1e..3678ed1485 100644 --- a/flake.nix +++ b/flake.nix @@ -137,8 +137,13 @@ version = (pkgs.lib.strings.trim (builtins.readFile ./version.txt)); src = ./backend; - nativeBuildInputs = buildInputs ++ [ self.packages.${system}.windmill-client pkgs.perl ]; - + nativeBuildInputs = buildInputs + ++ [ self.packages.${system}.windmill-client pkgs.perl ] + ++ pkgs.lib.optionals pkgs.stdenv.isDarwin [ + # Additional darwin specific inputs can be set here + pkgs.libiconv + pkgs.darwin.apple_sdk.frameworks.SystemConfiguration + ]; cargoLock = { lockFile = ./backend/Cargo.lock; diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 7cb14facf0..8ebbfe2e22 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -1,25 +1,21 @@ { "name": "windmill-components", - "version": "1.445.1", + "version": "1.447.6", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "windmill-components", - "version": "1.445.1", + "version": "1.447.6", "license": "AGPL-3.0", "dependencies": { "@anthropic-ai/sdk": "^0.32.1", "@aws-crypto/sha256-js": "^4.0.0", - "@codingame/monaco-vscode-configuration-service-override": "~8.0.2", - "@codingame/monaco-vscode-files-service-override": "~8.0.2", - "@codingame/monaco-vscode-keybindings-service-override": "~8.0.2", - "@codingame/monaco-vscode-lifecycle-service-override": "~8.0.2", - "@codingame/monaco-vscode-localization-service-override": "~8.0.2", - "@codingame/monaco-vscode-standalone-css-language-features": "~8.0.2", - "@codingame/monaco-vscode-standalone-json-language-features": "~8.0.2", - "@codingame/monaco-vscode-standalone-languages": "~8.0.2", - "@codingame/monaco-vscode-standalone-typescript-language-features": "~8.0.2", + "@codingame/monaco-vscode-configuration-service-override": "~11.1.2", + "@codingame/monaco-vscode-standalone-css-language-features": "~11.1.2", + "@codingame/monaco-vscode-standalone-json-language-features": "~11.1.2", + "@codingame/monaco-vscode-standalone-languages": "~11.1.2", + "@codingame/monaco-vscode-standalone-typescript-language-features": "~11.1.2", "@json2csv/plainjs": "^7.0.6", "@leeoniya/ufuzzy": "^1.0.8", "@mistralai/mistralai": "^1.3.0", @@ -47,10 +43,10 @@ "highlight.js": "^11.8.0", "lucide-svelte": "^0.399.0", "minimatch": "^10.0.1", - "monaco-editor": "npm:@codingame/monaco-vscode-editor-api@~8.0.2", - "monaco-editor-wrapper": "^5.5.2", + "monaco-editor": "npm:@codingame/monaco-vscode-editor-api@~11.1.2", + "monaco-editor-wrapper": "^6.1.0", "monaco-graphql": "^1.6.0", - "monaco-languageclient": "~8.8.2", + "monaco-languageclient": "~9.1.0", "monaco-vim": "^0.4.1", "ol": "^7.4.0", "openai": "^4.57.2", @@ -67,15 +63,15 @@ "svelte-infinite-loading": "^1.4.0", "svelte-tiny-virtual-list": "^2.0.5", "tailwind-merge": "^1.13.2", - "vscode": "npm:@codingame/monaco-vscode-api@~8.0.2", + "vscode": "npm:@codingame/monaco-vscode-api@~11.1.2", "vscode-languageclient": "~9.0.1", "vscode-uri": "~3.0.8", - "vscode-ws-jsonrpc": "~3.3.2", + "vscode-ws-jsonrpc": "~3.4.0", "windmill-parser-wasm-csharp": "^1.437.1", "windmill-parser-wasm-go": "^1.429.0", "windmill-parser-wasm-php": "^1.429.0", "windmill-parser-wasm-py": "^1.429.0", - "windmill-parser-wasm-regex": "^1.435.2", + "windmill-parser-wasm-regex": "^1.439.0", "windmill-parser-wasm-rust": "^1.429.0", "windmill-parser-wasm-ts": "^1.429.0", "windmill-parser-wasm-yaml": "^1.429.0", @@ -418,2488 +414,484 @@ "node": ">=6.9.0" } }, - "node_modules/@codingame/monaco-vscode-base-service-override": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-base-service-override/-/monaco-vscode-base-service-override-8.0.2.tgz", - "integrity": "sha512-nE53oxB6INHQ2+81v8+AsY9sTTiaS3xhq9gS3V+XDnxjGr5EgkV61wSeR9dI90EL7CiUN0p0Pcn2sUwRnmzsXQ==", - "license": "MIT", + "node_modules/@codingame/monaco-vscode-api": { + "version": "11.1.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-api/-/monaco-vscode-api-11.1.2.tgz", + "integrity": "sha512-8UHz2uH103P+8eXDRAWo1e1PRfMN5F5dR4s/Mb9fX18Qzr8+/GkpWJHhT1t1cd5xY8XwIiH7YyMz6pL0aDOikw==", + "peer": true, "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.2" + "@codingame/monaco-vscode-base-service-override": "11.1.2", + "@codingame/monaco-vscode-environment-service-override": "11.1.2", + "@codingame/monaco-vscode-extensions-service-override": "11.1.2", + "@codingame/monaco-vscode-files-service-override": "11.1.2", + "@codingame/monaco-vscode-host-service-override": "11.1.2", + "@codingame/monaco-vscode-layout-service-override": "11.1.2", + "@codingame/monaco-vscode-quickaccess-service-override": "11.1.2", + "@vscode/iconv-lite-umd": "0.7.0", + "jschardet": "3.1.4", + "marked": "~14.0.0" + } + }, + "node_modules/@codingame/monaco-vscode-base-service-override": { + "version": "11.1.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-base-service-override/-/monaco-vscode-base-service-override-11.1.2.tgz", + "integrity": "sha512-3HENz4IktHaqkaG3bieb+LDuybnT90z9orMmwxvRMtZeExLiMh9/ImiToyQI6sF56s4Eac7Us4dMaaWQsHvenw==", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@11.1.2" + } + }, + "node_modules/@codingame/monaco-vscode-bulk-edit-service-override": { + "version": "11.1.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-bulk-edit-service-override/-/monaco-vscode-bulk-edit-service-override-11.1.2.tgz", + "integrity": "sha512-2Bi6luOe7+KNCwbph/Q96z+8nX8FEdMB/dK0IL7FRJmlIwzso6FiMy40/jExrBCb6n4/3rqOg1mh/vmdydwGKA==", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@11.1.2" + } + }, + "node_modules/@codingame/monaco-vscode-chat-comments-extensions-interactive-notebook-search-common": { + "version": "11.1.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-chat-comments-extensions-interactive-notebook-search-common/-/monaco-vscode-chat-comments-extensions-interactive-notebook-search-common-11.1.2.tgz", + "integrity": "sha512-WUveAa38ZFpZLZklm7DdjO6ywZFp+lRX7svWb/pB7tNgLyxdbMawL9yK3y/RKQ1Usx4OVEQSAhI5V8IWnTeoJg==", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@11.1.2" + } + }, + "node_modules/@codingame/monaco-vscode-chat-extensions-interactive-notebook-search-terminal-common": { + "version": "11.1.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-chat-extensions-interactive-notebook-search-terminal-common/-/monaco-vscode-chat-extensions-interactive-notebook-search-terminal-common-11.1.2.tgz", + "integrity": "sha512-yHM2IVGYamskWfsp9et1CQONqZ/MJYHHmJ5w+ne8bsV3gNW3DVw4YRX0P52QPVJpp/l9kdAFrvWkpNVM+IroXA==", + "dependencies": { + "marked": "~14.0.0", + "vscode": "npm:@codingame/monaco-vscode-api@11.1.2" + } + }, + "node_modules/@codingame/monaco-vscode-chat-extensions-notebook-common": { + "version": "11.1.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-chat-extensions-notebook-common/-/monaco-vscode-chat-extensions-notebook-common-11.1.2.tgz", + "integrity": "sha512-yHzxewsY+bZHhpQtFhGDHCbXy82uvD+3yF0oP79uPZWaPgRJTqlNLj7IB2/VlrszpmLPBolZik25k2GOL6sI1Q==", + "dependencies": { + "@codingame/monaco-vscode-chat-extensions-interactive-notebook-search-terminal-common": "11.1.2", + "vscode": "npm:@codingame/monaco-vscode-api@11.1.2" + } + }, + "node_modules/@codingame/monaco-vscode-chat-extensions-notebook-task-terminal-testing-common": { + "version": "11.1.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-chat-extensions-notebook-task-terminal-testing-common/-/monaco-vscode-chat-extensions-notebook-task-terminal-testing-common-11.1.2.tgz", + "integrity": "sha512-aDGr6tPwQiyGJMCI8kdMDkl+V21TBXt3jDJJq7RXH5pAjhDsf7JtR2CgJLOVHSvc9EZE/43KuUQpSsYOvkHRGg==", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@11.1.2" + } + }, + "node_modules/@codingame/monaco-vscode-comments-extensions-common": { + "version": "11.1.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-comments-extensions-common/-/monaco-vscode-comments-extensions-common-11.1.2.tgz", + "integrity": "sha512-bQvEYaCgzwyjFEP4zEHHxj3vQBMoG3dt0cJDVKb+b9UkU06LUPhTIwRaMF9GiA3j+KvGRIaVulOkLB/vpEoBxg==", + "dependencies": { + "@codingame/monaco-vscode-chat-comments-extensions-interactive-notebook-search-common": "11.1.2", + "vscode": "npm:@codingame/monaco-vscode-api@11.1.2" } }, "node_modules/@codingame/monaco-vscode-configuration-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-configuration-service-override/-/monaco-vscode-configuration-service-override-8.0.3.tgz", - "integrity": "sha512-Hvpdbq2MbB1VerHf9us/zOL7KzP9djuX2ESlBML0Z1qiu7iyhEylKOmeDp1DTxKd+5xZSeR7637EbJ7XGzVgug==", - "license": "MIT", + "version": "11.1.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-configuration-service-override/-/monaco-vscode-configuration-service-override-11.1.2.tgz", + "integrity": "sha512-dzsl3q4i9AsTSIH7nA8N6VjrXyZlCsuAMz5wL9dqbDy06ddfU9nUm/kVYFeAO3ueCEH7xt5R0uV3YZtLhqh3xw==", "dependencies": { - "@codingame/monaco-vscode-files-service-override": "8.0.3", - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + "@codingame/monaco-vscode-files-service-override": "11.1.2", + "vscode": "npm:@codingame/monaco-vscode-api@11.1.2" } }, - "node_modules/@codingame/monaco-vscode-configuration-service-override/node_modules/@codingame/monaco-vscode-base-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-base-service-override/-/monaco-vscode-base-service-override-8.0.3.tgz", - "integrity": "sha512-jOK9oO2qAOFTsgIJQ2osDmUet7QpTq8eAQ0xdZp8A3laZGd48PczZ4WBAGbhHkRC6nGJPimP5cA4IJOAjN1wlw==", - "license": "MIT", + "node_modules/@codingame/monaco-vscode-editor-api": { + "version": "11.1.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-editor-api/-/monaco-vscode-editor-api-11.1.2.tgz", + "integrity": "sha512-RYnk0VpL0uSvrFD9k1Oka+K4dP3rhptBzIFVKwjlvCxL0n/mdbECbrcTLKn7wpR11wfMMWvFDHqlNH7ri3rsXg==", + "peer": true, "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-configuration-service-override/node_modules/@codingame/monaco-vscode-environment-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-environment-service-override/-/monaco-vscode-environment-service-override-8.0.3.tgz", - "integrity": "sha512-OhZRikv3wKkocax/F9r7rZ2OHlXsFaX8cUaFWHOj4Bgj/g1FsnL/EvNUAZer9bVTzdq3a+4uZunz1jn/V5HF4g==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-configuration-service-override/node_modules/@codingame/monaco-vscode-extensions-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-extensions-service-override/-/monaco-vscode-extensions-service-override-8.0.3.tgz", - "integrity": "sha512-VEr8w7ykNNfYx6KGko03WOjaw7HcaETfQT2Eayj/u7lJX+expP6sEM2D3TGBAuHd8feepFzBuVfsL8I/ZLwS+g==", - "license": "MIT", - "dependencies": { - "@codingame/monaco-vscode-files-service-override": "8.0.3", - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-configuration-service-override/node_modules/@codingame/monaco-vscode-files-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-files-service-override/-/monaco-vscode-files-service-override-8.0.3.tgz", - "integrity": "sha512-S3mAHK510EwfdN8us2/UpspBC81pMnjACNVqDAk1QGfh6xKOQ6NPUv6ri/3oF2/2zMl5keI/iihK4xwLEAAd8Q==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-configuration-service-override/node_modules/@codingame/monaco-vscode-host-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-host-service-override/-/monaco-vscode-host-service-override-8.0.3.tgz", - "integrity": "sha512-VHwFyWTkOqOT+WLB7hC4zZFoahTbcFGJW/MutlR3c5+09v2qddMm2IsxcHKbI3IbHyb4TgPgC0arV4rs1FaNWQ==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-configuration-service-override/node_modules/@codingame/monaco-vscode-layout-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-layout-service-override/-/monaco-vscode-layout-service-override-8.0.3.tgz", - "integrity": "sha512-/so4xozWoEzbqAVIh6iXosNwA7pTpcmj9uBYCXVrjO4CHxXM9qKf9+ndidO9gwGIoiWYFBUJB6XTQOnCLMRqng==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-configuration-service-override/node_modules/@codingame/monaco-vscode-quickaccess-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-quickaccess-service-override/-/monaco-vscode-quickaccess-service-override-8.0.3.tgz", - "integrity": "sha512-HNFPcQlXEn38abnfSR4JWa5oeYLsC7cCA0eqb6LkpeCMTODlP44mdahaHHWadELOpaD5ZhV4KO+GY2YcgmVXIA==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-configuration-service-override/node_modules/vscode": { - "name": "@codingame/monaco-vscode-api", - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-api/-/monaco-vscode-api-8.0.3.tgz", - "integrity": "sha512-7Lnha7sspHaZq9OKdvN26mrXtaMxKvK2hri7wLNT5Z/SadM8Pj6CmCv/aDD4UpSaGfc7f6OFwsiqBmsbOYpjIA==", - "license": "MIT", - "dependencies": { - "@codingame/monaco-vscode-base-service-override": "8.0.3", - "@codingame/monaco-vscode-environment-service-override": "8.0.3", - "@codingame/monaco-vscode-extensions-service-override": "8.0.3", - "@codingame/monaco-vscode-files-service-override": "8.0.3", - "@codingame/monaco-vscode-host-service-override": "8.0.3", - "@codingame/monaco-vscode-layout-service-override": "8.0.3", - "@codingame/monaco-vscode-quickaccess-service-override": "8.0.3", - "@vscode/iconv-lite-umd": "0.7.0", - "jschardet": "3.1.3" + "vscode": "npm:@codingame/monaco-vscode-api@11.1.2" } }, "node_modules/@codingame/monaco-vscode-editor-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-editor-service-override/-/monaco-vscode-editor-service-override-8.0.3.tgz", - "integrity": "sha512-drt4tDSH+zbGzgfpCgZ+zqpR48TWr7xqEopjdNb+Jva6LcfW7vh2D410uslZBG716Tyq21jthFplDZELuChrhw==", - "license": "MIT", + "version": "11.1.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-editor-service-override/-/monaco-vscode-editor-service-override-11.1.2.tgz", + "integrity": "sha512-BquPLRk2SCkeofyW8e41Ix2DdbZLlazXUUgFiYNvUczqiAojwzuY5lW8ZpboIA78LrekLgGbynqws9T+G5I3OA==", "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-editor-service-override/node_modules/@codingame/monaco-vscode-base-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-base-service-override/-/monaco-vscode-base-service-override-8.0.3.tgz", - "integrity": "sha512-jOK9oO2qAOFTsgIJQ2osDmUet7QpTq8eAQ0xdZp8A3laZGd48PczZ4WBAGbhHkRC6nGJPimP5cA4IJOAjN1wlw==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-editor-service-override/node_modules/@codingame/monaco-vscode-environment-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-environment-service-override/-/monaco-vscode-environment-service-override-8.0.3.tgz", - "integrity": "sha512-OhZRikv3wKkocax/F9r7rZ2OHlXsFaX8cUaFWHOj4Bgj/g1FsnL/EvNUAZer9bVTzdq3a+4uZunz1jn/V5HF4g==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-editor-service-override/node_modules/@codingame/monaco-vscode-extensions-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-extensions-service-override/-/monaco-vscode-extensions-service-override-8.0.3.tgz", - "integrity": "sha512-VEr8w7ykNNfYx6KGko03WOjaw7HcaETfQT2Eayj/u7lJX+expP6sEM2D3TGBAuHd8feepFzBuVfsL8I/ZLwS+g==", - "license": "MIT", - "dependencies": { - "@codingame/monaco-vscode-files-service-override": "8.0.3", - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-editor-service-override/node_modules/@codingame/monaco-vscode-files-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-files-service-override/-/monaco-vscode-files-service-override-8.0.3.tgz", - "integrity": "sha512-S3mAHK510EwfdN8us2/UpspBC81pMnjACNVqDAk1QGfh6xKOQ6NPUv6ri/3oF2/2zMl5keI/iihK4xwLEAAd8Q==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-editor-service-override/node_modules/@codingame/monaco-vscode-host-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-host-service-override/-/monaco-vscode-host-service-override-8.0.3.tgz", - "integrity": "sha512-VHwFyWTkOqOT+WLB7hC4zZFoahTbcFGJW/MutlR3c5+09v2qddMm2IsxcHKbI3IbHyb4TgPgC0arV4rs1FaNWQ==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-editor-service-override/node_modules/@codingame/monaco-vscode-layout-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-layout-service-override/-/monaco-vscode-layout-service-override-8.0.3.tgz", - "integrity": "sha512-/so4xozWoEzbqAVIh6iXosNwA7pTpcmj9uBYCXVrjO4CHxXM9qKf9+ndidO9gwGIoiWYFBUJB6XTQOnCLMRqng==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-editor-service-override/node_modules/@codingame/monaco-vscode-quickaccess-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-quickaccess-service-override/-/monaco-vscode-quickaccess-service-override-8.0.3.tgz", - "integrity": "sha512-HNFPcQlXEn38abnfSR4JWa5oeYLsC7cCA0eqb6LkpeCMTODlP44mdahaHHWadELOpaD5ZhV4KO+GY2YcgmVXIA==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-editor-service-override/node_modules/vscode": { - "name": "@codingame/monaco-vscode-api", - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-api/-/monaco-vscode-api-8.0.3.tgz", - "integrity": "sha512-7Lnha7sspHaZq9OKdvN26mrXtaMxKvK2hri7wLNT5Z/SadM8Pj6CmCv/aDD4UpSaGfc7f6OFwsiqBmsbOYpjIA==", - "license": "MIT", - "dependencies": { - "@codingame/monaco-vscode-base-service-override": "8.0.3", - "@codingame/monaco-vscode-environment-service-override": "8.0.3", - "@codingame/monaco-vscode-extensions-service-override": "8.0.3", - "@codingame/monaco-vscode-files-service-override": "8.0.3", - "@codingame/monaco-vscode-host-service-override": "8.0.3", - "@codingame/monaco-vscode-layout-service-override": "8.0.3", - "@codingame/monaco-vscode-quickaccess-service-override": "8.0.3", - "@vscode/iconv-lite-umd": "0.7.0", - "jschardet": "3.1.3" + "vscode": "npm:@codingame/monaco-vscode-api@11.1.2" } }, "node_modules/@codingame/monaco-vscode-environment-service-override": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-environment-service-override/-/monaco-vscode-environment-service-override-8.0.2.tgz", - "integrity": "sha512-X16aJhxVWxtekbre2rnqHerKBL7pMKi1TS7+8zjiE2VTTqcYABJ2TV3Geqlt2tgeXZOrSky6N8iGZRAkSmwdPA==", - "license": "MIT", + "version": "11.1.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-environment-service-override/-/monaco-vscode-environment-service-override-11.1.2.tgz", + "integrity": "sha512-2MohnDywpFLGVw4afgxSO2vrXyZptppnnkF3im9PF5wx+pC5NhjZb14tjcrZFl5pVQmZby6tQUzhZOPjdAVyJw==", "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.2" + "vscode": "npm:@codingame/monaco-vscode-api@11.1.2" + } + }, + "node_modules/@codingame/monaco-vscode-explorer-outline-timeline-view-common-views-workbench-common": { + "version": "11.1.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-explorer-outline-timeline-view-common-views-workbench-common/-/monaco-vscode-explorer-outline-timeline-view-common-views-workbench-common-11.1.2.tgz", + "integrity": "sha512-eiGQAxNC+3lGo1XRuKe10P7lUZRBjVbAUZ2+wstra7ENsY5nhoh5q3BnSwTamKZBGVVJHN2dCmz4XS2mYMBmiA==", + "dependencies": { + "vscode": "npm:@codingame/monaco-vscode-api@11.1.2" } }, "node_modules/@codingame/monaco-vscode-extensions-service-override": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-extensions-service-override/-/monaco-vscode-extensions-service-override-8.0.2.tgz", - "integrity": "sha512-eOeYLlv+V/cuhtDiJapHP3NyHnCmJu+Rj5l7d5RuI4Ggvn68MjC2GpV95O/EHWTrPLOSDCEpA2PDk06WRqlxwQ==", - "license": "MIT", + "version": "11.1.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-extensions-service-override/-/monaco-vscode-extensions-service-override-11.1.2.tgz", + "integrity": "sha512-RJWclpQwywEylLQ9Q+onk22qt83SZeHn3596SDtCUvZn4/uUfyJ8DbRm3gqNdQxSXEO7jhdC4ITnlaY3AbxHTA==", "dependencies": { - "@codingame/monaco-vscode-files-service-override": "8.0.2", - "vscode": "npm:@codingame/monaco-vscode-api@8.0.2" + "@codingame/monaco-vscode-chat-extensions-interactive-notebook-search-terminal-common": "11.1.2", + "@codingame/monaco-vscode-chat-extensions-notebook-common": "11.1.2", + "@codingame/monaco-vscode-comments-extensions-common": "11.1.2", + "@codingame/monaco-vscode-files-service-override": "11.1.2", + "vscode": "npm:@codingame/monaco-vscode-api@11.1.2" } }, "node_modules/@codingame/monaco-vscode-files-service-override": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-files-service-override/-/monaco-vscode-files-service-override-8.0.2.tgz", - "integrity": "sha512-7DET08EDz68R/XsBpQ3AVcIebNkAguADOSZ1ETyFPn8O9FOtPPew3fUuP8AHpL7ecOzBwHvescnMiBikGaRAcQ==", - "license": "MIT", + "version": "11.1.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-files-service-override/-/monaco-vscode-files-service-override-11.1.2.tgz", + "integrity": "sha512-0On3hBe5mOLPF+9E4KePj0JuLX+0ex/x+YLzH7qnLw89YyZtY8muz6yAXs+nIp5h/wFQi+uxb9m+vWCAB01I8Q==", "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.2" + "vscode": "npm:@codingame/monaco-vscode-api@11.1.2" } }, "node_modules/@codingame/monaco-vscode-host-service-override": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-host-service-override/-/monaco-vscode-host-service-override-8.0.2.tgz", - "integrity": "sha512-ZQBboqtBrMMb37wUBdg8h5RLM7gWHrTdg1Z9Xl2wp/rmIzfTaZBcz0s91+BH+ilTJ9QyUcTUYWXoj5HjHhnJ7g==", - "license": "MIT", + "version": "11.1.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-host-service-override/-/monaco-vscode-host-service-override-11.1.2.tgz", + "integrity": "sha512-DLoOM8HcrcoyB8np0CzIN3VJ9pOKuYVOBC1fHzgKBp5i/+akJK5e+5JHj6Au3kUEVSd1cJLjn6dNz58QrbLAhA==", "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.2" + "vscode": "npm:@codingame/monaco-vscode-api@11.1.2" } }, "node_modules/@codingame/monaco-vscode-keybindings-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-keybindings-service-override/-/monaco-vscode-keybindings-service-override-8.0.3.tgz", - "integrity": "sha512-eknpEamUd3Luk75h02zypQmZgTWuJKXumJxo1lLztSTcRiErehUPbIpRdM8JcD2PSlCD2yyC6q2CkiFdNWi9Yg==", - "license": "MIT", + "version": "11.1.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-keybindings-service-override/-/monaco-vscode-keybindings-service-override-11.1.2.tgz", + "integrity": "sha512-5gtRZODgZ1xNAB3JoGedLFpgteHFZBOuIv6npoZTGdxJLL2mORVOpbQ1P01d8oYK3Rhqh6yI028OaI1ffDHJgQ==", "dependencies": { - "@codingame/monaco-vscode-files-service-override": "8.0.3", - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-keybindings-service-override/node_modules/@codingame/monaco-vscode-base-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-base-service-override/-/monaco-vscode-base-service-override-8.0.3.tgz", - "integrity": "sha512-jOK9oO2qAOFTsgIJQ2osDmUet7QpTq8eAQ0xdZp8A3laZGd48PczZ4WBAGbhHkRC6nGJPimP5cA4IJOAjN1wlw==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-keybindings-service-override/node_modules/@codingame/monaco-vscode-environment-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-environment-service-override/-/monaco-vscode-environment-service-override-8.0.3.tgz", - "integrity": "sha512-OhZRikv3wKkocax/F9r7rZ2OHlXsFaX8cUaFWHOj4Bgj/g1FsnL/EvNUAZer9bVTzdq3a+4uZunz1jn/V5HF4g==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-keybindings-service-override/node_modules/@codingame/monaco-vscode-extensions-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-extensions-service-override/-/monaco-vscode-extensions-service-override-8.0.3.tgz", - "integrity": "sha512-VEr8w7ykNNfYx6KGko03WOjaw7HcaETfQT2Eayj/u7lJX+expP6sEM2D3TGBAuHd8feepFzBuVfsL8I/ZLwS+g==", - "license": "MIT", - "dependencies": { - "@codingame/monaco-vscode-files-service-override": "8.0.3", - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-keybindings-service-override/node_modules/@codingame/monaco-vscode-files-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-files-service-override/-/monaco-vscode-files-service-override-8.0.3.tgz", - "integrity": "sha512-S3mAHK510EwfdN8us2/UpspBC81pMnjACNVqDAk1QGfh6xKOQ6NPUv6ri/3oF2/2zMl5keI/iihK4xwLEAAd8Q==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-keybindings-service-override/node_modules/@codingame/monaco-vscode-host-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-host-service-override/-/monaco-vscode-host-service-override-8.0.3.tgz", - "integrity": "sha512-VHwFyWTkOqOT+WLB7hC4zZFoahTbcFGJW/MutlR3c5+09v2qddMm2IsxcHKbI3IbHyb4TgPgC0arV4rs1FaNWQ==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-keybindings-service-override/node_modules/@codingame/monaco-vscode-layout-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-layout-service-override/-/monaco-vscode-layout-service-override-8.0.3.tgz", - "integrity": "sha512-/so4xozWoEzbqAVIh6iXosNwA7pTpcmj9uBYCXVrjO4CHxXM9qKf9+ndidO9gwGIoiWYFBUJB6XTQOnCLMRqng==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-keybindings-service-override/node_modules/@codingame/monaco-vscode-quickaccess-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-quickaccess-service-override/-/monaco-vscode-quickaccess-service-override-8.0.3.tgz", - "integrity": "sha512-HNFPcQlXEn38abnfSR4JWa5oeYLsC7cCA0eqb6LkpeCMTODlP44mdahaHHWadELOpaD5ZhV4KO+GY2YcgmVXIA==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-keybindings-service-override/node_modules/vscode": { - "name": "@codingame/monaco-vscode-api", - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-api/-/monaco-vscode-api-8.0.3.tgz", - "integrity": "sha512-7Lnha7sspHaZq9OKdvN26mrXtaMxKvK2hri7wLNT5Z/SadM8Pj6CmCv/aDD4UpSaGfc7f6OFwsiqBmsbOYpjIA==", - "license": "MIT", - "dependencies": { - "@codingame/monaco-vscode-base-service-override": "8.0.3", - "@codingame/monaco-vscode-environment-service-override": "8.0.3", - "@codingame/monaco-vscode-extensions-service-override": "8.0.3", - "@codingame/monaco-vscode-files-service-override": "8.0.3", - "@codingame/monaco-vscode-host-service-override": "8.0.3", - "@codingame/monaco-vscode-layout-service-override": "8.0.3", - "@codingame/monaco-vscode-quickaccess-service-override": "8.0.3", - "@vscode/iconv-lite-umd": "0.7.0", - "jschardet": "3.1.3" + "@codingame/monaco-vscode-files-service-override": "11.1.2", + "vscode": "npm:@codingame/monaco-vscode-api@11.1.2" } }, "node_modules/@codingame/monaco-vscode-language-pack-cs": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-language-pack-cs/-/monaco-vscode-language-pack-cs-8.0.3.tgz", - "integrity": "sha512-4yzIEPFPK8mrbakRpQh1E/2I5ptu1OEDdevCvrtf5+w/KlzRNobV+FCCPV4AZH0JxUBZFO4Ax/nyA+Vmzrv7aQ==", - "license": "MIT", + "version": "11.1.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-language-pack-cs/-/monaco-vscode-language-pack-cs-11.1.2.tgz", + "integrity": "sha512-U9s2PNvUCcLLm56SOoaeKdNPf0mfed3BdLV7zv9qMibxRCDFBG9R9yZ1Rl23xH6BQTLdtjVncd1u+KvGyTVh3A==", "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-language-pack-cs/node_modules/@codingame/monaco-vscode-base-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-base-service-override/-/monaco-vscode-base-service-override-8.0.3.tgz", - "integrity": "sha512-jOK9oO2qAOFTsgIJQ2osDmUet7QpTq8eAQ0xdZp8A3laZGd48PczZ4WBAGbhHkRC6nGJPimP5cA4IJOAjN1wlw==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-language-pack-cs/node_modules/@codingame/monaco-vscode-environment-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-environment-service-override/-/monaco-vscode-environment-service-override-8.0.3.tgz", - "integrity": "sha512-OhZRikv3wKkocax/F9r7rZ2OHlXsFaX8cUaFWHOj4Bgj/g1FsnL/EvNUAZer9bVTzdq3a+4uZunz1jn/V5HF4g==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-language-pack-cs/node_modules/@codingame/monaco-vscode-extensions-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-extensions-service-override/-/monaco-vscode-extensions-service-override-8.0.3.tgz", - "integrity": "sha512-VEr8w7ykNNfYx6KGko03WOjaw7HcaETfQT2Eayj/u7lJX+expP6sEM2D3TGBAuHd8feepFzBuVfsL8I/ZLwS+g==", - "license": "MIT", - "dependencies": { - "@codingame/monaco-vscode-files-service-override": "8.0.3", - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-language-pack-cs/node_modules/@codingame/monaco-vscode-files-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-files-service-override/-/monaco-vscode-files-service-override-8.0.3.tgz", - "integrity": "sha512-S3mAHK510EwfdN8us2/UpspBC81pMnjACNVqDAk1QGfh6xKOQ6NPUv6ri/3oF2/2zMl5keI/iihK4xwLEAAd8Q==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-language-pack-cs/node_modules/@codingame/monaco-vscode-host-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-host-service-override/-/monaco-vscode-host-service-override-8.0.3.tgz", - "integrity": "sha512-VHwFyWTkOqOT+WLB7hC4zZFoahTbcFGJW/MutlR3c5+09v2qddMm2IsxcHKbI3IbHyb4TgPgC0arV4rs1FaNWQ==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-language-pack-cs/node_modules/@codingame/monaco-vscode-layout-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-layout-service-override/-/monaco-vscode-layout-service-override-8.0.3.tgz", - "integrity": "sha512-/so4xozWoEzbqAVIh6iXosNwA7pTpcmj9uBYCXVrjO4CHxXM9qKf9+ndidO9gwGIoiWYFBUJB6XTQOnCLMRqng==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-language-pack-cs/node_modules/@codingame/monaco-vscode-quickaccess-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-quickaccess-service-override/-/monaco-vscode-quickaccess-service-override-8.0.3.tgz", - "integrity": "sha512-HNFPcQlXEn38abnfSR4JWa5oeYLsC7cCA0eqb6LkpeCMTODlP44mdahaHHWadELOpaD5ZhV4KO+GY2YcgmVXIA==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-language-pack-cs/node_modules/vscode": { - "name": "@codingame/monaco-vscode-api", - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-api/-/monaco-vscode-api-8.0.3.tgz", - "integrity": "sha512-7Lnha7sspHaZq9OKdvN26mrXtaMxKvK2hri7wLNT5Z/SadM8Pj6CmCv/aDD4UpSaGfc7f6OFwsiqBmsbOYpjIA==", - "license": "MIT", - "dependencies": { - "@codingame/monaco-vscode-base-service-override": "8.0.3", - "@codingame/monaco-vscode-environment-service-override": "8.0.3", - "@codingame/monaco-vscode-extensions-service-override": "8.0.3", - "@codingame/monaco-vscode-files-service-override": "8.0.3", - "@codingame/monaco-vscode-host-service-override": "8.0.3", - "@codingame/monaco-vscode-layout-service-override": "8.0.3", - "@codingame/monaco-vscode-quickaccess-service-override": "8.0.3", - "@vscode/iconv-lite-umd": "0.7.0", - "jschardet": "3.1.3" + "vscode": "npm:@codingame/monaco-vscode-api@11.1.2" } }, "node_modules/@codingame/monaco-vscode-language-pack-de": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-language-pack-de/-/monaco-vscode-language-pack-de-8.0.3.tgz", - "integrity": "sha512-DT/SRJYzSwwd6BJRDHVUshyiVX8yu19Z4q3OiyUTrEKp3BrdMn8nMj0M/7mad9tjJhj4xYJJABS7PyND41gqTw==", - "license": "MIT", + "version": "11.1.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-language-pack-de/-/monaco-vscode-language-pack-de-11.1.2.tgz", + "integrity": "sha512-xaFmXj8GZI6GBtR+HM/LWEAweuq0uNi1nSRS6s/8ZqSyIY0rvZ2yhLpp0m2Gfvh07vU/10GklQNt2hb3t11iIA==", "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-language-pack-de/node_modules/@codingame/monaco-vscode-base-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-base-service-override/-/monaco-vscode-base-service-override-8.0.3.tgz", - "integrity": "sha512-jOK9oO2qAOFTsgIJQ2osDmUet7QpTq8eAQ0xdZp8A3laZGd48PczZ4WBAGbhHkRC6nGJPimP5cA4IJOAjN1wlw==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-language-pack-de/node_modules/@codingame/monaco-vscode-environment-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-environment-service-override/-/monaco-vscode-environment-service-override-8.0.3.tgz", - "integrity": "sha512-OhZRikv3wKkocax/F9r7rZ2OHlXsFaX8cUaFWHOj4Bgj/g1FsnL/EvNUAZer9bVTzdq3a+4uZunz1jn/V5HF4g==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-language-pack-de/node_modules/@codingame/monaco-vscode-extensions-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-extensions-service-override/-/monaco-vscode-extensions-service-override-8.0.3.tgz", - "integrity": "sha512-VEr8w7ykNNfYx6KGko03WOjaw7HcaETfQT2Eayj/u7lJX+expP6sEM2D3TGBAuHd8feepFzBuVfsL8I/ZLwS+g==", - "license": "MIT", - "dependencies": { - "@codingame/monaco-vscode-files-service-override": "8.0.3", - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-language-pack-de/node_modules/@codingame/monaco-vscode-files-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-files-service-override/-/monaco-vscode-files-service-override-8.0.3.tgz", - "integrity": "sha512-S3mAHK510EwfdN8us2/UpspBC81pMnjACNVqDAk1QGfh6xKOQ6NPUv6ri/3oF2/2zMl5keI/iihK4xwLEAAd8Q==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-language-pack-de/node_modules/@codingame/monaco-vscode-host-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-host-service-override/-/monaco-vscode-host-service-override-8.0.3.tgz", - "integrity": "sha512-VHwFyWTkOqOT+WLB7hC4zZFoahTbcFGJW/MutlR3c5+09v2qddMm2IsxcHKbI3IbHyb4TgPgC0arV4rs1FaNWQ==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-language-pack-de/node_modules/@codingame/monaco-vscode-layout-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-layout-service-override/-/monaco-vscode-layout-service-override-8.0.3.tgz", - "integrity": "sha512-/so4xozWoEzbqAVIh6iXosNwA7pTpcmj9uBYCXVrjO4CHxXM9qKf9+ndidO9gwGIoiWYFBUJB6XTQOnCLMRqng==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-language-pack-de/node_modules/@codingame/monaco-vscode-quickaccess-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-quickaccess-service-override/-/monaco-vscode-quickaccess-service-override-8.0.3.tgz", - "integrity": "sha512-HNFPcQlXEn38abnfSR4JWa5oeYLsC7cCA0eqb6LkpeCMTODlP44mdahaHHWadELOpaD5ZhV4KO+GY2YcgmVXIA==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-language-pack-de/node_modules/vscode": { - "name": "@codingame/monaco-vscode-api", - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-api/-/monaco-vscode-api-8.0.3.tgz", - "integrity": "sha512-7Lnha7sspHaZq9OKdvN26mrXtaMxKvK2hri7wLNT5Z/SadM8Pj6CmCv/aDD4UpSaGfc7f6OFwsiqBmsbOYpjIA==", - "license": "MIT", - "dependencies": { - "@codingame/monaco-vscode-base-service-override": "8.0.3", - "@codingame/monaco-vscode-environment-service-override": "8.0.3", - "@codingame/monaco-vscode-extensions-service-override": "8.0.3", - "@codingame/monaco-vscode-files-service-override": "8.0.3", - "@codingame/monaco-vscode-host-service-override": "8.0.3", - "@codingame/monaco-vscode-layout-service-override": "8.0.3", - "@codingame/monaco-vscode-quickaccess-service-override": "8.0.3", - "@vscode/iconv-lite-umd": "0.7.0", - "jschardet": "3.1.3" + "vscode": "npm:@codingame/monaco-vscode-api@11.1.2" } }, "node_modules/@codingame/monaco-vscode-language-pack-es": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-language-pack-es/-/monaco-vscode-language-pack-es-8.0.3.tgz", - "integrity": "sha512-EFK6mwCeoKH4fnjUzZWe46VyYB6C+zGy0kYDzvaznXG/JN97tipd37gEXsUpU7ZdHtyh4wFoPzeMCeQfXKsNxA==", - "license": "MIT", + "version": "11.1.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-language-pack-es/-/monaco-vscode-language-pack-es-11.1.2.tgz", + "integrity": "sha512-LxY8UH+Q0n8Oz1Hfvz+OAPV5gmJS4iVYim/HrGt0t/TM77aYUo+ulHSci5P+x6cFyrOFF4CZI7piAVhBTZLWvQ==", "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-language-pack-es/node_modules/@codingame/monaco-vscode-base-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-base-service-override/-/monaco-vscode-base-service-override-8.0.3.tgz", - "integrity": "sha512-jOK9oO2qAOFTsgIJQ2osDmUet7QpTq8eAQ0xdZp8A3laZGd48PczZ4WBAGbhHkRC6nGJPimP5cA4IJOAjN1wlw==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-language-pack-es/node_modules/@codingame/monaco-vscode-environment-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-environment-service-override/-/monaco-vscode-environment-service-override-8.0.3.tgz", - "integrity": "sha512-OhZRikv3wKkocax/F9r7rZ2OHlXsFaX8cUaFWHOj4Bgj/g1FsnL/EvNUAZer9bVTzdq3a+4uZunz1jn/V5HF4g==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-language-pack-es/node_modules/@codingame/monaco-vscode-extensions-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-extensions-service-override/-/monaco-vscode-extensions-service-override-8.0.3.tgz", - "integrity": "sha512-VEr8w7ykNNfYx6KGko03WOjaw7HcaETfQT2Eayj/u7lJX+expP6sEM2D3TGBAuHd8feepFzBuVfsL8I/ZLwS+g==", - "license": "MIT", - "dependencies": { - "@codingame/monaco-vscode-files-service-override": "8.0.3", - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-language-pack-es/node_modules/@codingame/monaco-vscode-files-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-files-service-override/-/monaco-vscode-files-service-override-8.0.3.tgz", - "integrity": "sha512-S3mAHK510EwfdN8us2/UpspBC81pMnjACNVqDAk1QGfh6xKOQ6NPUv6ri/3oF2/2zMl5keI/iihK4xwLEAAd8Q==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-language-pack-es/node_modules/@codingame/monaco-vscode-host-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-host-service-override/-/monaco-vscode-host-service-override-8.0.3.tgz", - "integrity": "sha512-VHwFyWTkOqOT+WLB7hC4zZFoahTbcFGJW/MutlR3c5+09v2qddMm2IsxcHKbI3IbHyb4TgPgC0arV4rs1FaNWQ==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-language-pack-es/node_modules/@codingame/monaco-vscode-layout-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-layout-service-override/-/monaco-vscode-layout-service-override-8.0.3.tgz", - "integrity": "sha512-/so4xozWoEzbqAVIh6iXosNwA7pTpcmj9uBYCXVrjO4CHxXM9qKf9+ndidO9gwGIoiWYFBUJB6XTQOnCLMRqng==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-language-pack-es/node_modules/@codingame/monaco-vscode-quickaccess-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-quickaccess-service-override/-/monaco-vscode-quickaccess-service-override-8.0.3.tgz", - "integrity": "sha512-HNFPcQlXEn38abnfSR4JWa5oeYLsC7cCA0eqb6LkpeCMTODlP44mdahaHHWadELOpaD5ZhV4KO+GY2YcgmVXIA==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-language-pack-es/node_modules/vscode": { - "name": "@codingame/monaco-vscode-api", - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-api/-/monaco-vscode-api-8.0.3.tgz", - "integrity": "sha512-7Lnha7sspHaZq9OKdvN26mrXtaMxKvK2hri7wLNT5Z/SadM8Pj6CmCv/aDD4UpSaGfc7f6OFwsiqBmsbOYpjIA==", - "license": "MIT", - "dependencies": { - "@codingame/monaco-vscode-base-service-override": "8.0.3", - "@codingame/monaco-vscode-environment-service-override": "8.0.3", - "@codingame/monaco-vscode-extensions-service-override": "8.0.3", - "@codingame/monaco-vscode-files-service-override": "8.0.3", - "@codingame/monaco-vscode-host-service-override": "8.0.3", - "@codingame/monaco-vscode-layout-service-override": "8.0.3", - "@codingame/monaco-vscode-quickaccess-service-override": "8.0.3", - "@vscode/iconv-lite-umd": "0.7.0", - "jschardet": "3.1.3" + "vscode": "npm:@codingame/monaco-vscode-api@11.1.2" } }, "node_modules/@codingame/monaco-vscode-language-pack-fr": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-language-pack-fr/-/monaco-vscode-language-pack-fr-8.0.3.tgz", - "integrity": "sha512-OZvURxC3apd7+g93NIB0OAtuqVR64G1aKLdQ8w0GwhHJa9C0bB+zjD7DNRMqnWU58HEcSSZvN3Y2H6N+viXS4g==", - "license": "MIT", + "version": "11.1.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-language-pack-fr/-/monaco-vscode-language-pack-fr-11.1.2.tgz", + "integrity": "sha512-EoOmqvo/tyxC0auAsMrFfy7w3vIfC53tD3X+Ary3BleCd5IuWd4z/48NtrbaSlnxv/MqmgNLNnsC4yJ22lSInQ==", "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-language-pack-fr/node_modules/@codingame/monaco-vscode-base-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-base-service-override/-/monaco-vscode-base-service-override-8.0.3.tgz", - "integrity": "sha512-jOK9oO2qAOFTsgIJQ2osDmUet7QpTq8eAQ0xdZp8A3laZGd48PczZ4WBAGbhHkRC6nGJPimP5cA4IJOAjN1wlw==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-language-pack-fr/node_modules/@codingame/monaco-vscode-environment-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-environment-service-override/-/monaco-vscode-environment-service-override-8.0.3.tgz", - "integrity": "sha512-OhZRikv3wKkocax/F9r7rZ2OHlXsFaX8cUaFWHOj4Bgj/g1FsnL/EvNUAZer9bVTzdq3a+4uZunz1jn/V5HF4g==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-language-pack-fr/node_modules/@codingame/monaco-vscode-extensions-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-extensions-service-override/-/monaco-vscode-extensions-service-override-8.0.3.tgz", - "integrity": "sha512-VEr8w7ykNNfYx6KGko03WOjaw7HcaETfQT2Eayj/u7lJX+expP6sEM2D3TGBAuHd8feepFzBuVfsL8I/ZLwS+g==", - "license": "MIT", - "dependencies": { - "@codingame/monaco-vscode-files-service-override": "8.0.3", - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-language-pack-fr/node_modules/@codingame/monaco-vscode-files-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-files-service-override/-/monaco-vscode-files-service-override-8.0.3.tgz", - "integrity": "sha512-S3mAHK510EwfdN8us2/UpspBC81pMnjACNVqDAk1QGfh6xKOQ6NPUv6ri/3oF2/2zMl5keI/iihK4xwLEAAd8Q==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-language-pack-fr/node_modules/@codingame/monaco-vscode-host-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-host-service-override/-/monaco-vscode-host-service-override-8.0.3.tgz", - "integrity": "sha512-VHwFyWTkOqOT+WLB7hC4zZFoahTbcFGJW/MutlR3c5+09v2qddMm2IsxcHKbI3IbHyb4TgPgC0arV4rs1FaNWQ==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-language-pack-fr/node_modules/@codingame/monaco-vscode-layout-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-layout-service-override/-/monaco-vscode-layout-service-override-8.0.3.tgz", - "integrity": "sha512-/so4xozWoEzbqAVIh6iXosNwA7pTpcmj9uBYCXVrjO4CHxXM9qKf9+ndidO9gwGIoiWYFBUJB6XTQOnCLMRqng==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-language-pack-fr/node_modules/@codingame/monaco-vscode-quickaccess-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-quickaccess-service-override/-/monaco-vscode-quickaccess-service-override-8.0.3.tgz", - "integrity": "sha512-HNFPcQlXEn38abnfSR4JWa5oeYLsC7cCA0eqb6LkpeCMTODlP44mdahaHHWadELOpaD5ZhV4KO+GY2YcgmVXIA==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-language-pack-fr/node_modules/vscode": { - "name": "@codingame/monaco-vscode-api", - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-api/-/monaco-vscode-api-8.0.3.tgz", - "integrity": "sha512-7Lnha7sspHaZq9OKdvN26mrXtaMxKvK2hri7wLNT5Z/SadM8Pj6CmCv/aDD4UpSaGfc7f6OFwsiqBmsbOYpjIA==", - "license": "MIT", - "dependencies": { - "@codingame/monaco-vscode-base-service-override": "8.0.3", - "@codingame/monaco-vscode-environment-service-override": "8.0.3", - "@codingame/monaco-vscode-extensions-service-override": "8.0.3", - "@codingame/monaco-vscode-files-service-override": "8.0.3", - "@codingame/monaco-vscode-host-service-override": "8.0.3", - "@codingame/monaco-vscode-layout-service-override": "8.0.3", - "@codingame/monaco-vscode-quickaccess-service-override": "8.0.3", - "@vscode/iconv-lite-umd": "0.7.0", - "jschardet": "3.1.3" + "vscode": "npm:@codingame/monaco-vscode-api@11.1.2" } }, "node_modules/@codingame/monaco-vscode-language-pack-it": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-language-pack-it/-/monaco-vscode-language-pack-it-8.0.3.tgz", - "integrity": "sha512-WGChBybs9a+eT08/xT5OSGJryUgSlHDi7HRjBXDc72s06IvL4iyL4BZnxShXeS+pR0Z83IlPbxtPDZ4z4RIH4g==", - "license": "MIT", + "version": "11.1.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-language-pack-it/-/monaco-vscode-language-pack-it-11.1.2.tgz", + "integrity": "sha512-E9f44X0jtWinSBGNVPF8g16w2QmvxEiclymQeHkkD98erOEJOVrA3pfABkEtTjaC9fLgJNgHyzGybIWurtdG8A==", "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-language-pack-it/node_modules/@codingame/monaco-vscode-base-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-base-service-override/-/monaco-vscode-base-service-override-8.0.3.tgz", - "integrity": "sha512-jOK9oO2qAOFTsgIJQ2osDmUet7QpTq8eAQ0xdZp8A3laZGd48PczZ4WBAGbhHkRC6nGJPimP5cA4IJOAjN1wlw==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-language-pack-it/node_modules/@codingame/monaco-vscode-environment-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-environment-service-override/-/monaco-vscode-environment-service-override-8.0.3.tgz", - "integrity": "sha512-OhZRikv3wKkocax/F9r7rZ2OHlXsFaX8cUaFWHOj4Bgj/g1FsnL/EvNUAZer9bVTzdq3a+4uZunz1jn/V5HF4g==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-language-pack-it/node_modules/@codingame/monaco-vscode-extensions-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-extensions-service-override/-/monaco-vscode-extensions-service-override-8.0.3.tgz", - "integrity": "sha512-VEr8w7ykNNfYx6KGko03WOjaw7HcaETfQT2Eayj/u7lJX+expP6sEM2D3TGBAuHd8feepFzBuVfsL8I/ZLwS+g==", - "license": "MIT", - "dependencies": { - "@codingame/monaco-vscode-files-service-override": "8.0.3", - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-language-pack-it/node_modules/@codingame/monaco-vscode-files-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-files-service-override/-/monaco-vscode-files-service-override-8.0.3.tgz", - "integrity": "sha512-S3mAHK510EwfdN8us2/UpspBC81pMnjACNVqDAk1QGfh6xKOQ6NPUv6ri/3oF2/2zMl5keI/iihK4xwLEAAd8Q==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-language-pack-it/node_modules/@codingame/monaco-vscode-host-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-host-service-override/-/monaco-vscode-host-service-override-8.0.3.tgz", - "integrity": "sha512-VHwFyWTkOqOT+WLB7hC4zZFoahTbcFGJW/MutlR3c5+09v2qddMm2IsxcHKbI3IbHyb4TgPgC0arV4rs1FaNWQ==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-language-pack-it/node_modules/@codingame/monaco-vscode-layout-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-layout-service-override/-/monaco-vscode-layout-service-override-8.0.3.tgz", - "integrity": "sha512-/so4xozWoEzbqAVIh6iXosNwA7pTpcmj9uBYCXVrjO4CHxXM9qKf9+ndidO9gwGIoiWYFBUJB6XTQOnCLMRqng==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-language-pack-it/node_modules/@codingame/monaco-vscode-quickaccess-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-quickaccess-service-override/-/monaco-vscode-quickaccess-service-override-8.0.3.tgz", - "integrity": "sha512-HNFPcQlXEn38abnfSR4JWa5oeYLsC7cCA0eqb6LkpeCMTODlP44mdahaHHWadELOpaD5ZhV4KO+GY2YcgmVXIA==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-language-pack-it/node_modules/vscode": { - "name": "@codingame/monaco-vscode-api", - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-api/-/monaco-vscode-api-8.0.3.tgz", - "integrity": "sha512-7Lnha7sspHaZq9OKdvN26mrXtaMxKvK2hri7wLNT5Z/SadM8Pj6CmCv/aDD4UpSaGfc7f6OFwsiqBmsbOYpjIA==", - "license": "MIT", - "dependencies": { - "@codingame/monaco-vscode-base-service-override": "8.0.3", - "@codingame/monaco-vscode-environment-service-override": "8.0.3", - "@codingame/monaco-vscode-extensions-service-override": "8.0.3", - "@codingame/monaco-vscode-files-service-override": "8.0.3", - "@codingame/monaco-vscode-host-service-override": "8.0.3", - "@codingame/monaco-vscode-layout-service-override": "8.0.3", - "@codingame/monaco-vscode-quickaccess-service-override": "8.0.3", - "@vscode/iconv-lite-umd": "0.7.0", - "jschardet": "3.1.3" + "vscode": "npm:@codingame/monaco-vscode-api@11.1.2" } }, "node_modules/@codingame/monaco-vscode-language-pack-ja": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-language-pack-ja/-/monaco-vscode-language-pack-ja-8.0.3.tgz", - "integrity": "sha512-ilzXv35gWhhyMkgGJqjkjkltyuNjJ3a29xVTIQpECXSIAJvZBpAhxCeCbF2CbsPcEwHbeqaDaYljenlCoXCwHg==", - "license": "MIT", + "version": "11.1.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-language-pack-ja/-/monaco-vscode-language-pack-ja-11.1.2.tgz", + "integrity": "sha512-I3M7TOln+Bs+oTCb02J7pAHOAYSP9nISojVpiChBRqdIymVxE0wdWNN2CgTGuFCCTck9JOlCYzh9an58qSXcxg==", "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-language-pack-ja/node_modules/@codingame/monaco-vscode-base-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-base-service-override/-/monaco-vscode-base-service-override-8.0.3.tgz", - "integrity": "sha512-jOK9oO2qAOFTsgIJQ2osDmUet7QpTq8eAQ0xdZp8A3laZGd48PczZ4WBAGbhHkRC6nGJPimP5cA4IJOAjN1wlw==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-language-pack-ja/node_modules/@codingame/monaco-vscode-environment-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-environment-service-override/-/monaco-vscode-environment-service-override-8.0.3.tgz", - "integrity": "sha512-OhZRikv3wKkocax/F9r7rZ2OHlXsFaX8cUaFWHOj4Bgj/g1FsnL/EvNUAZer9bVTzdq3a+4uZunz1jn/V5HF4g==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-language-pack-ja/node_modules/@codingame/monaco-vscode-extensions-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-extensions-service-override/-/monaco-vscode-extensions-service-override-8.0.3.tgz", - "integrity": "sha512-VEr8w7ykNNfYx6KGko03WOjaw7HcaETfQT2Eayj/u7lJX+expP6sEM2D3TGBAuHd8feepFzBuVfsL8I/ZLwS+g==", - "license": "MIT", - "dependencies": { - "@codingame/monaco-vscode-files-service-override": "8.0.3", - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-language-pack-ja/node_modules/@codingame/monaco-vscode-files-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-files-service-override/-/monaco-vscode-files-service-override-8.0.3.tgz", - "integrity": "sha512-S3mAHK510EwfdN8us2/UpspBC81pMnjACNVqDAk1QGfh6xKOQ6NPUv6ri/3oF2/2zMl5keI/iihK4xwLEAAd8Q==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-language-pack-ja/node_modules/@codingame/monaco-vscode-host-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-host-service-override/-/monaco-vscode-host-service-override-8.0.3.tgz", - "integrity": "sha512-VHwFyWTkOqOT+WLB7hC4zZFoahTbcFGJW/MutlR3c5+09v2qddMm2IsxcHKbI3IbHyb4TgPgC0arV4rs1FaNWQ==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-language-pack-ja/node_modules/@codingame/monaco-vscode-layout-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-layout-service-override/-/monaco-vscode-layout-service-override-8.0.3.tgz", - "integrity": "sha512-/so4xozWoEzbqAVIh6iXosNwA7pTpcmj9uBYCXVrjO4CHxXM9qKf9+ndidO9gwGIoiWYFBUJB6XTQOnCLMRqng==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-language-pack-ja/node_modules/@codingame/monaco-vscode-quickaccess-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-quickaccess-service-override/-/monaco-vscode-quickaccess-service-override-8.0.3.tgz", - "integrity": "sha512-HNFPcQlXEn38abnfSR4JWa5oeYLsC7cCA0eqb6LkpeCMTODlP44mdahaHHWadELOpaD5ZhV4KO+GY2YcgmVXIA==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-language-pack-ja/node_modules/vscode": { - "name": "@codingame/monaco-vscode-api", - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-api/-/monaco-vscode-api-8.0.3.tgz", - "integrity": "sha512-7Lnha7sspHaZq9OKdvN26mrXtaMxKvK2hri7wLNT5Z/SadM8Pj6CmCv/aDD4UpSaGfc7f6OFwsiqBmsbOYpjIA==", - "license": "MIT", - "dependencies": { - "@codingame/monaco-vscode-base-service-override": "8.0.3", - "@codingame/monaco-vscode-environment-service-override": "8.0.3", - "@codingame/monaco-vscode-extensions-service-override": "8.0.3", - "@codingame/monaco-vscode-files-service-override": "8.0.3", - "@codingame/monaco-vscode-host-service-override": "8.0.3", - "@codingame/monaco-vscode-layout-service-override": "8.0.3", - "@codingame/monaco-vscode-quickaccess-service-override": "8.0.3", - "@vscode/iconv-lite-umd": "0.7.0", - "jschardet": "3.1.3" + "vscode": "npm:@codingame/monaco-vscode-api@11.1.2" } }, "node_modules/@codingame/monaco-vscode-language-pack-ko": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-language-pack-ko/-/monaco-vscode-language-pack-ko-8.0.3.tgz", - "integrity": "sha512-KCjRcBC4F4uUlfkuaAVUijYykHFvSJMWVpBtn8LTb+Sgc+XcAdCjsWfVtegrJddsP0IP0nvxQl6yi62lezj4Gw==", - "license": "MIT", + "version": "11.1.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-language-pack-ko/-/monaco-vscode-language-pack-ko-11.1.2.tgz", + "integrity": "sha512-FLY2Zid23kBTIj5YjGsaCtTi21cRZDBlIpQE2/V+go1skCmKpqlJ4L1+mTJenmkAfw6m9ABPHFETswDEU6G1YA==", "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-language-pack-ko/node_modules/@codingame/monaco-vscode-base-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-base-service-override/-/monaco-vscode-base-service-override-8.0.3.tgz", - "integrity": "sha512-jOK9oO2qAOFTsgIJQ2osDmUet7QpTq8eAQ0xdZp8A3laZGd48PczZ4WBAGbhHkRC6nGJPimP5cA4IJOAjN1wlw==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-language-pack-ko/node_modules/@codingame/monaco-vscode-environment-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-environment-service-override/-/monaco-vscode-environment-service-override-8.0.3.tgz", - "integrity": "sha512-OhZRikv3wKkocax/F9r7rZ2OHlXsFaX8cUaFWHOj4Bgj/g1FsnL/EvNUAZer9bVTzdq3a+4uZunz1jn/V5HF4g==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-language-pack-ko/node_modules/@codingame/monaco-vscode-extensions-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-extensions-service-override/-/monaco-vscode-extensions-service-override-8.0.3.tgz", - "integrity": "sha512-VEr8w7ykNNfYx6KGko03WOjaw7HcaETfQT2Eayj/u7lJX+expP6sEM2D3TGBAuHd8feepFzBuVfsL8I/ZLwS+g==", - "license": "MIT", - "dependencies": { - "@codingame/monaco-vscode-files-service-override": "8.0.3", - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-language-pack-ko/node_modules/@codingame/monaco-vscode-files-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-files-service-override/-/monaco-vscode-files-service-override-8.0.3.tgz", - "integrity": "sha512-S3mAHK510EwfdN8us2/UpspBC81pMnjACNVqDAk1QGfh6xKOQ6NPUv6ri/3oF2/2zMl5keI/iihK4xwLEAAd8Q==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-language-pack-ko/node_modules/@codingame/monaco-vscode-host-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-host-service-override/-/monaco-vscode-host-service-override-8.0.3.tgz", - "integrity": "sha512-VHwFyWTkOqOT+WLB7hC4zZFoahTbcFGJW/MutlR3c5+09v2qddMm2IsxcHKbI3IbHyb4TgPgC0arV4rs1FaNWQ==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-language-pack-ko/node_modules/@codingame/monaco-vscode-layout-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-layout-service-override/-/monaco-vscode-layout-service-override-8.0.3.tgz", - "integrity": "sha512-/so4xozWoEzbqAVIh6iXosNwA7pTpcmj9uBYCXVrjO4CHxXM9qKf9+ndidO9gwGIoiWYFBUJB6XTQOnCLMRqng==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-language-pack-ko/node_modules/@codingame/monaco-vscode-quickaccess-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-quickaccess-service-override/-/monaco-vscode-quickaccess-service-override-8.0.3.tgz", - "integrity": "sha512-HNFPcQlXEn38abnfSR4JWa5oeYLsC7cCA0eqb6LkpeCMTODlP44mdahaHHWadELOpaD5ZhV4KO+GY2YcgmVXIA==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-language-pack-ko/node_modules/vscode": { - "name": "@codingame/monaco-vscode-api", - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-api/-/monaco-vscode-api-8.0.3.tgz", - "integrity": "sha512-7Lnha7sspHaZq9OKdvN26mrXtaMxKvK2hri7wLNT5Z/SadM8Pj6CmCv/aDD4UpSaGfc7f6OFwsiqBmsbOYpjIA==", - "license": "MIT", - "dependencies": { - "@codingame/monaco-vscode-base-service-override": "8.0.3", - "@codingame/monaco-vscode-environment-service-override": "8.0.3", - "@codingame/monaco-vscode-extensions-service-override": "8.0.3", - "@codingame/monaco-vscode-files-service-override": "8.0.3", - "@codingame/monaco-vscode-host-service-override": "8.0.3", - "@codingame/monaco-vscode-layout-service-override": "8.0.3", - "@codingame/monaco-vscode-quickaccess-service-override": "8.0.3", - "@vscode/iconv-lite-umd": "0.7.0", - "jschardet": "3.1.3" + "vscode": "npm:@codingame/monaco-vscode-api@11.1.2" } }, "node_modules/@codingame/monaco-vscode-language-pack-pl": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-language-pack-pl/-/monaco-vscode-language-pack-pl-8.0.3.tgz", - "integrity": "sha512-IhQwg02cq0bWdSNpkV8ynFqNpRNt5TvKat5JAVYhlVmCoXq5H1D4Grlkl5Lfh7lHJArFvAm1HegXTUxLuylPSw==", - "license": "MIT", + "version": "11.1.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-language-pack-pl/-/monaco-vscode-language-pack-pl-11.1.2.tgz", + "integrity": "sha512-YPZW53yWenknAlpvAe50qJD+p30EFSUzBkWD1ODSUC/umC1yfYnMsP2sr66oRKjJmp5/LhTWifE0vXMk+EMt/w==", "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-language-pack-pl/node_modules/@codingame/monaco-vscode-base-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-base-service-override/-/monaco-vscode-base-service-override-8.0.3.tgz", - "integrity": "sha512-jOK9oO2qAOFTsgIJQ2osDmUet7QpTq8eAQ0xdZp8A3laZGd48PczZ4WBAGbhHkRC6nGJPimP5cA4IJOAjN1wlw==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-language-pack-pl/node_modules/@codingame/monaco-vscode-environment-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-environment-service-override/-/monaco-vscode-environment-service-override-8.0.3.tgz", - "integrity": "sha512-OhZRikv3wKkocax/F9r7rZ2OHlXsFaX8cUaFWHOj4Bgj/g1FsnL/EvNUAZer9bVTzdq3a+4uZunz1jn/V5HF4g==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-language-pack-pl/node_modules/@codingame/monaco-vscode-extensions-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-extensions-service-override/-/monaco-vscode-extensions-service-override-8.0.3.tgz", - "integrity": "sha512-VEr8w7ykNNfYx6KGko03WOjaw7HcaETfQT2Eayj/u7lJX+expP6sEM2D3TGBAuHd8feepFzBuVfsL8I/ZLwS+g==", - "license": "MIT", - "dependencies": { - "@codingame/monaco-vscode-files-service-override": "8.0.3", - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-language-pack-pl/node_modules/@codingame/monaco-vscode-files-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-files-service-override/-/monaco-vscode-files-service-override-8.0.3.tgz", - "integrity": "sha512-S3mAHK510EwfdN8us2/UpspBC81pMnjACNVqDAk1QGfh6xKOQ6NPUv6ri/3oF2/2zMl5keI/iihK4xwLEAAd8Q==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-language-pack-pl/node_modules/@codingame/monaco-vscode-host-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-host-service-override/-/monaco-vscode-host-service-override-8.0.3.tgz", - "integrity": "sha512-VHwFyWTkOqOT+WLB7hC4zZFoahTbcFGJW/MutlR3c5+09v2qddMm2IsxcHKbI3IbHyb4TgPgC0arV4rs1FaNWQ==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-language-pack-pl/node_modules/@codingame/monaco-vscode-layout-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-layout-service-override/-/monaco-vscode-layout-service-override-8.0.3.tgz", - "integrity": "sha512-/so4xozWoEzbqAVIh6iXosNwA7pTpcmj9uBYCXVrjO4CHxXM9qKf9+ndidO9gwGIoiWYFBUJB6XTQOnCLMRqng==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-language-pack-pl/node_modules/@codingame/monaco-vscode-quickaccess-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-quickaccess-service-override/-/monaco-vscode-quickaccess-service-override-8.0.3.tgz", - "integrity": "sha512-HNFPcQlXEn38abnfSR4JWa5oeYLsC7cCA0eqb6LkpeCMTODlP44mdahaHHWadELOpaD5ZhV4KO+GY2YcgmVXIA==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-language-pack-pl/node_modules/vscode": { - "name": "@codingame/monaco-vscode-api", - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-api/-/monaco-vscode-api-8.0.3.tgz", - "integrity": "sha512-7Lnha7sspHaZq9OKdvN26mrXtaMxKvK2hri7wLNT5Z/SadM8Pj6CmCv/aDD4UpSaGfc7f6OFwsiqBmsbOYpjIA==", - "license": "MIT", - "dependencies": { - "@codingame/monaco-vscode-base-service-override": "8.0.3", - "@codingame/monaco-vscode-environment-service-override": "8.0.3", - "@codingame/monaco-vscode-extensions-service-override": "8.0.3", - "@codingame/monaco-vscode-files-service-override": "8.0.3", - "@codingame/monaco-vscode-host-service-override": "8.0.3", - "@codingame/monaco-vscode-layout-service-override": "8.0.3", - "@codingame/monaco-vscode-quickaccess-service-override": "8.0.3", - "@vscode/iconv-lite-umd": "0.7.0", - "jschardet": "3.1.3" + "vscode": "npm:@codingame/monaco-vscode-api@11.1.2" } }, "node_modules/@codingame/monaco-vscode-language-pack-pt-br": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-language-pack-pt-br/-/monaco-vscode-language-pack-pt-br-8.0.3.tgz", - "integrity": "sha512-CdvYCyzRb1l54BgJEzAav9amVHdAx77BepxpkS7QacTkLURm4Td5A79CNHzwHUiDHPnviBY2Z9Jve/BJAksI4g==", - "license": "MIT", + "version": "11.1.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-language-pack-pt-br/-/monaco-vscode-language-pack-pt-br-11.1.2.tgz", + "integrity": "sha512-KjILMoi+uuO/l/xsL8yCEhMeSu8es25A/xwHMq2wU9dDjk5mMQ8yoVo6BfBzkmyLghz+EDi6kU2ZP8m+ffPQyA==", "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-language-pack-pt-br/node_modules/@codingame/monaco-vscode-base-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-base-service-override/-/monaco-vscode-base-service-override-8.0.3.tgz", - "integrity": "sha512-jOK9oO2qAOFTsgIJQ2osDmUet7QpTq8eAQ0xdZp8A3laZGd48PczZ4WBAGbhHkRC6nGJPimP5cA4IJOAjN1wlw==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-language-pack-pt-br/node_modules/@codingame/monaco-vscode-environment-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-environment-service-override/-/monaco-vscode-environment-service-override-8.0.3.tgz", - "integrity": "sha512-OhZRikv3wKkocax/F9r7rZ2OHlXsFaX8cUaFWHOj4Bgj/g1FsnL/EvNUAZer9bVTzdq3a+4uZunz1jn/V5HF4g==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-language-pack-pt-br/node_modules/@codingame/monaco-vscode-extensions-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-extensions-service-override/-/monaco-vscode-extensions-service-override-8.0.3.tgz", - "integrity": "sha512-VEr8w7ykNNfYx6KGko03WOjaw7HcaETfQT2Eayj/u7lJX+expP6sEM2D3TGBAuHd8feepFzBuVfsL8I/ZLwS+g==", - "license": "MIT", - "dependencies": { - "@codingame/monaco-vscode-files-service-override": "8.0.3", - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-language-pack-pt-br/node_modules/@codingame/monaco-vscode-files-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-files-service-override/-/monaco-vscode-files-service-override-8.0.3.tgz", - "integrity": "sha512-S3mAHK510EwfdN8us2/UpspBC81pMnjACNVqDAk1QGfh6xKOQ6NPUv6ri/3oF2/2zMl5keI/iihK4xwLEAAd8Q==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-language-pack-pt-br/node_modules/@codingame/monaco-vscode-host-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-host-service-override/-/monaco-vscode-host-service-override-8.0.3.tgz", - "integrity": "sha512-VHwFyWTkOqOT+WLB7hC4zZFoahTbcFGJW/MutlR3c5+09v2qddMm2IsxcHKbI3IbHyb4TgPgC0arV4rs1FaNWQ==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-language-pack-pt-br/node_modules/@codingame/monaco-vscode-layout-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-layout-service-override/-/monaco-vscode-layout-service-override-8.0.3.tgz", - "integrity": "sha512-/so4xozWoEzbqAVIh6iXosNwA7pTpcmj9uBYCXVrjO4CHxXM9qKf9+ndidO9gwGIoiWYFBUJB6XTQOnCLMRqng==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-language-pack-pt-br/node_modules/@codingame/monaco-vscode-quickaccess-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-quickaccess-service-override/-/monaco-vscode-quickaccess-service-override-8.0.3.tgz", - "integrity": "sha512-HNFPcQlXEn38abnfSR4JWa5oeYLsC7cCA0eqb6LkpeCMTODlP44mdahaHHWadELOpaD5ZhV4KO+GY2YcgmVXIA==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-language-pack-pt-br/node_modules/vscode": { - "name": "@codingame/monaco-vscode-api", - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-api/-/monaco-vscode-api-8.0.3.tgz", - "integrity": "sha512-7Lnha7sspHaZq9OKdvN26mrXtaMxKvK2hri7wLNT5Z/SadM8Pj6CmCv/aDD4UpSaGfc7f6OFwsiqBmsbOYpjIA==", - "license": "MIT", - "dependencies": { - "@codingame/monaco-vscode-base-service-override": "8.0.3", - "@codingame/monaco-vscode-environment-service-override": "8.0.3", - "@codingame/monaco-vscode-extensions-service-override": "8.0.3", - "@codingame/monaco-vscode-files-service-override": "8.0.3", - "@codingame/monaco-vscode-host-service-override": "8.0.3", - "@codingame/monaco-vscode-layout-service-override": "8.0.3", - "@codingame/monaco-vscode-quickaccess-service-override": "8.0.3", - "@vscode/iconv-lite-umd": "0.7.0", - "jschardet": "3.1.3" + "vscode": "npm:@codingame/monaco-vscode-api@11.1.2" } }, "node_modules/@codingame/monaco-vscode-language-pack-qps-ploc": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-language-pack-qps-ploc/-/monaco-vscode-language-pack-qps-ploc-8.0.3.tgz", - "integrity": "sha512-KeCU/g56cZcZ8rd/wfrR+cMznDLDIxDorFnXUEcr1ei31zlfpspUeJ8wAqQ+gxw56Idr70d36iSxlGCVWjwcbA==", - "license": "MIT", + "version": "11.1.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-language-pack-qps-ploc/-/monaco-vscode-language-pack-qps-ploc-11.1.2.tgz", + "integrity": "sha512-muxlncwxCigDqfUnSPIW+OxjmdJ0DW4Nra5bBN0d4ZtFteIFV683IqBlqWyRqoUZETuhdvpTvcxGEPGGE9Kw5g==", "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-language-pack-qps-ploc/node_modules/@codingame/monaco-vscode-base-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-base-service-override/-/monaco-vscode-base-service-override-8.0.3.tgz", - "integrity": "sha512-jOK9oO2qAOFTsgIJQ2osDmUet7QpTq8eAQ0xdZp8A3laZGd48PczZ4WBAGbhHkRC6nGJPimP5cA4IJOAjN1wlw==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-language-pack-qps-ploc/node_modules/@codingame/monaco-vscode-environment-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-environment-service-override/-/monaco-vscode-environment-service-override-8.0.3.tgz", - "integrity": "sha512-OhZRikv3wKkocax/F9r7rZ2OHlXsFaX8cUaFWHOj4Bgj/g1FsnL/EvNUAZer9bVTzdq3a+4uZunz1jn/V5HF4g==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-language-pack-qps-ploc/node_modules/@codingame/monaco-vscode-extensions-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-extensions-service-override/-/monaco-vscode-extensions-service-override-8.0.3.tgz", - "integrity": "sha512-VEr8w7ykNNfYx6KGko03WOjaw7HcaETfQT2Eayj/u7lJX+expP6sEM2D3TGBAuHd8feepFzBuVfsL8I/ZLwS+g==", - "license": "MIT", - "dependencies": { - "@codingame/monaco-vscode-files-service-override": "8.0.3", - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-language-pack-qps-ploc/node_modules/@codingame/monaco-vscode-files-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-files-service-override/-/monaco-vscode-files-service-override-8.0.3.tgz", - "integrity": "sha512-S3mAHK510EwfdN8us2/UpspBC81pMnjACNVqDAk1QGfh6xKOQ6NPUv6ri/3oF2/2zMl5keI/iihK4xwLEAAd8Q==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-language-pack-qps-ploc/node_modules/@codingame/monaco-vscode-host-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-host-service-override/-/monaco-vscode-host-service-override-8.0.3.tgz", - "integrity": "sha512-VHwFyWTkOqOT+WLB7hC4zZFoahTbcFGJW/MutlR3c5+09v2qddMm2IsxcHKbI3IbHyb4TgPgC0arV4rs1FaNWQ==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-language-pack-qps-ploc/node_modules/@codingame/monaco-vscode-layout-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-layout-service-override/-/monaco-vscode-layout-service-override-8.0.3.tgz", - "integrity": "sha512-/so4xozWoEzbqAVIh6iXosNwA7pTpcmj9uBYCXVrjO4CHxXM9qKf9+ndidO9gwGIoiWYFBUJB6XTQOnCLMRqng==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-language-pack-qps-ploc/node_modules/@codingame/monaco-vscode-quickaccess-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-quickaccess-service-override/-/monaco-vscode-quickaccess-service-override-8.0.3.tgz", - "integrity": "sha512-HNFPcQlXEn38abnfSR4JWa5oeYLsC7cCA0eqb6LkpeCMTODlP44mdahaHHWadELOpaD5ZhV4KO+GY2YcgmVXIA==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-language-pack-qps-ploc/node_modules/vscode": { - "name": "@codingame/monaco-vscode-api", - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-api/-/monaco-vscode-api-8.0.3.tgz", - "integrity": "sha512-7Lnha7sspHaZq9OKdvN26mrXtaMxKvK2hri7wLNT5Z/SadM8Pj6CmCv/aDD4UpSaGfc7f6OFwsiqBmsbOYpjIA==", - "license": "MIT", - "dependencies": { - "@codingame/monaco-vscode-base-service-override": "8.0.3", - "@codingame/monaco-vscode-environment-service-override": "8.0.3", - "@codingame/monaco-vscode-extensions-service-override": "8.0.3", - "@codingame/monaco-vscode-files-service-override": "8.0.3", - "@codingame/monaco-vscode-host-service-override": "8.0.3", - "@codingame/monaco-vscode-layout-service-override": "8.0.3", - "@codingame/monaco-vscode-quickaccess-service-override": "8.0.3", - "@vscode/iconv-lite-umd": "0.7.0", - "jschardet": "3.1.3" + "vscode": "npm:@codingame/monaco-vscode-api@11.1.2" } }, "node_modules/@codingame/monaco-vscode-language-pack-ru": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-language-pack-ru/-/monaco-vscode-language-pack-ru-8.0.3.tgz", - "integrity": "sha512-xSEu4ubhtYMlK7RrAyoNFwDbbAhY3S754sxxNeQpbyt7+6JWHNpSdWBTOSAprQyQf37taL/ceQaJQoPYwSAyjg==", - "license": "MIT", + "version": "11.1.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-language-pack-ru/-/monaco-vscode-language-pack-ru-11.1.2.tgz", + "integrity": "sha512-0UV+fnUV9A60D0IJrBami2vMSn8XT6RZZtD12g/wil+iSeJ5KQTC4bZTozAEs7dTcjkxUxOkxinWg/zUxT6k3w==", "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-language-pack-ru/node_modules/@codingame/monaco-vscode-base-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-base-service-override/-/monaco-vscode-base-service-override-8.0.3.tgz", - "integrity": "sha512-jOK9oO2qAOFTsgIJQ2osDmUet7QpTq8eAQ0xdZp8A3laZGd48PczZ4WBAGbhHkRC6nGJPimP5cA4IJOAjN1wlw==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-language-pack-ru/node_modules/@codingame/monaco-vscode-environment-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-environment-service-override/-/monaco-vscode-environment-service-override-8.0.3.tgz", - "integrity": "sha512-OhZRikv3wKkocax/F9r7rZ2OHlXsFaX8cUaFWHOj4Bgj/g1FsnL/EvNUAZer9bVTzdq3a+4uZunz1jn/V5HF4g==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-language-pack-ru/node_modules/@codingame/monaco-vscode-extensions-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-extensions-service-override/-/monaco-vscode-extensions-service-override-8.0.3.tgz", - "integrity": "sha512-VEr8w7ykNNfYx6KGko03WOjaw7HcaETfQT2Eayj/u7lJX+expP6sEM2D3TGBAuHd8feepFzBuVfsL8I/ZLwS+g==", - "license": "MIT", - "dependencies": { - "@codingame/monaco-vscode-files-service-override": "8.0.3", - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-language-pack-ru/node_modules/@codingame/monaco-vscode-files-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-files-service-override/-/monaco-vscode-files-service-override-8.0.3.tgz", - "integrity": "sha512-S3mAHK510EwfdN8us2/UpspBC81pMnjACNVqDAk1QGfh6xKOQ6NPUv6ri/3oF2/2zMl5keI/iihK4xwLEAAd8Q==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-language-pack-ru/node_modules/@codingame/monaco-vscode-host-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-host-service-override/-/monaco-vscode-host-service-override-8.0.3.tgz", - "integrity": "sha512-VHwFyWTkOqOT+WLB7hC4zZFoahTbcFGJW/MutlR3c5+09v2qddMm2IsxcHKbI3IbHyb4TgPgC0arV4rs1FaNWQ==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-language-pack-ru/node_modules/@codingame/monaco-vscode-layout-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-layout-service-override/-/monaco-vscode-layout-service-override-8.0.3.tgz", - "integrity": "sha512-/so4xozWoEzbqAVIh6iXosNwA7pTpcmj9uBYCXVrjO4CHxXM9qKf9+ndidO9gwGIoiWYFBUJB6XTQOnCLMRqng==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-language-pack-ru/node_modules/@codingame/monaco-vscode-quickaccess-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-quickaccess-service-override/-/monaco-vscode-quickaccess-service-override-8.0.3.tgz", - "integrity": "sha512-HNFPcQlXEn38abnfSR4JWa5oeYLsC7cCA0eqb6LkpeCMTODlP44mdahaHHWadELOpaD5ZhV4KO+GY2YcgmVXIA==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-language-pack-ru/node_modules/vscode": { - "name": "@codingame/monaco-vscode-api", - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-api/-/monaco-vscode-api-8.0.3.tgz", - "integrity": "sha512-7Lnha7sspHaZq9OKdvN26mrXtaMxKvK2hri7wLNT5Z/SadM8Pj6CmCv/aDD4UpSaGfc7f6OFwsiqBmsbOYpjIA==", - "license": "MIT", - "dependencies": { - "@codingame/monaco-vscode-base-service-override": "8.0.3", - "@codingame/monaco-vscode-environment-service-override": "8.0.3", - "@codingame/monaco-vscode-extensions-service-override": "8.0.3", - "@codingame/monaco-vscode-files-service-override": "8.0.3", - "@codingame/monaco-vscode-host-service-override": "8.0.3", - "@codingame/monaco-vscode-layout-service-override": "8.0.3", - "@codingame/monaco-vscode-quickaccess-service-override": "8.0.3", - "@vscode/iconv-lite-umd": "0.7.0", - "jschardet": "3.1.3" + "vscode": "npm:@codingame/monaco-vscode-api@11.1.2" } }, "node_modules/@codingame/monaco-vscode-language-pack-tr": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-language-pack-tr/-/monaco-vscode-language-pack-tr-8.0.3.tgz", - "integrity": "sha512-slfG1d0og8h7duUh15BFxNQTNEEg0YguPwHxumJoMkzBnVQZPNv5ZCG3uKgy3pfpneArh/9B4jvlLzhpjwJHXw==", - "license": "MIT", + "version": "11.1.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-language-pack-tr/-/monaco-vscode-language-pack-tr-11.1.2.tgz", + "integrity": "sha512-xaA5hBOJL2iuvcfgVidziGm8holR+nSptipjLr/iWdxnUeEM99rEvwX5+bqbHcT/sm9MIDcBw/iP0kNX87MlnQ==", "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-language-pack-tr/node_modules/@codingame/monaco-vscode-base-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-base-service-override/-/monaco-vscode-base-service-override-8.0.3.tgz", - "integrity": "sha512-jOK9oO2qAOFTsgIJQ2osDmUet7QpTq8eAQ0xdZp8A3laZGd48PczZ4WBAGbhHkRC6nGJPimP5cA4IJOAjN1wlw==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-language-pack-tr/node_modules/@codingame/monaco-vscode-environment-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-environment-service-override/-/monaco-vscode-environment-service-override-8.0.3.tgz", - "integrity": "sha512-OhZRikv3wKkocax/F9r7rZ2OHlXsFaX8cUaFWHOj4Bgj/g1FsnL/EvNUAZer9bVTzdq3a+4uZunz1jn/V5HF4g==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-language-pack-tr/node_modules/@codingame/monaco-vscode-extensions-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-extensions-service-override/-/monaco-vscode-extensions-service-override-8.0.3.tgz", - "integrity": "sha512-VEr8w7ykNNfYx6KGko03WOjaw7HcaETfQT2Eayj/u7lJX+expP6sEM2D3TGBAuHd8feepFzBuVfsL8I/ZLwS+g==", - "license": "MIT", - "dependencies": { - "@codingame/monaco-vscode-files-service-override": "8.0.3", - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-language-pack-tr/node_modules/@codingame/monaco-vscode-files-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-files-service-override/-/monaco-vscode-files-service-override-8.0.3.tgz", - "integrity": "sha512-S3mAHK510EwfdN8us2/UpspBC81pMnjACNVqDAk1QGfh6xKOQ6NPUv6ri/3oF2/2zMl5keI/iihK4xwLEAAd8Q==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-language-pack-tr/node_modules/@codingame/monaco-vscode-host-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-host-service-override/-/monaco-vscode-host-service-override-8.0.3.tgz", - "integrity": "sha512-VHwFyWTkOqOT+WLB7hC4zZFoahTbcFGJW/MutlR3c5+09v2qddMm2IsxcHKbI3IbHyb4TgPgC0arV4rs1FaNWQ==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-language-pack-tr/node_modules/@codingame/monaco-vscode-layout-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-layout-service-override/-/monaco-vscode-layout-service-override-8.0.3.tgz", - "integrity": "sha512-/so4xozWoEzbqAVIh6iXosNwA7pTpcmj9uBYCXVrjO4CHxXM9qKf9+ndidO9gwGIoiWYFBUJB6XTQOnCLMRqng==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-language-pack-tr/node_modules/@codingame/monaco-vscode-quickaccess-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-quickaccess-service-override/-/monaco-vscode-quickaccess-service-override-8.0.3.tgz", - "integrity": "sha512-HNFPcQlXEn38abnfSR4JWa5oeYLsC7cCA0eqb6LkpeCMTODlP44mdahaHHWadELOpaD5ZhV4KO+GY2YcgmVXIA==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-language-pack-tr/node_modules/vscode": { - "name": "@codingame/monaco-vscode-api", - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-api/-/monaco-vscode-api-8.0.3.tgz", - "integrity": "sha512-7Lnha7sspHaZq9OKdvN26mrXtaMxKvK2hri7wLNT5Z/SadM8Pj6CmCv/aDD4UpSaGfc7f6OFwsiqBmsbOYpjIA==", - "license": "MIT", - "dependencies": { - "@codingame/monaco-vscode-base-service-override": "8.0.3", - "@codingame/monaco-vscode-environment-service-override": "8.0.3", - "@codingame/monaco-vscode-extensions-service-override": "8.0.3", - "@codingame/monaco-vscode-files-service-override": "8.0.3", - "@codingame/monaco-vscode-host-service-override": "8.0.3", - "@codingame/monaco-vscode-layout-service-override": "8.0.3", - "@codingame/monaco-vscode-quickaccess-service-override": "8.0.3", - "@vscode/iconv-lite-umd": "0.7.0", - "jschardet": "3.1.3" + "vscode": "npm:@codingame/monaco-vscode-api@11.1.2" } }, "node_modules/@codingame/monaco-vscode-language-pack-zh-hans": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-language-pack-zh-hans/-/monaco-vscode-language-pack-zh-hans-8.0.3.tgz", - "integrity": "sha512-vKDZUgm5sgsGn6Bipoo8BWgPLkkhSAza/fAcI9HHqfk1MO9RX0ES/HAVn+FGrWHSvQi4Z5fNUNBq0hgzVnZLFQ==", - "license": "MIT", + "version": "11.1.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-language-pack-zh-hans/-/monaco-vscode-language-pack-zh-hans-11.1.2.tgz", + "integrity": "sha512-H18x5ZBnL/QijPsqRhgezNJyaKi1kPc+hoAQYF+3DrLNMQEC7cqQ4ThfPVKa7HXfK9FyNpUYKTxqzGrmD8IZAg==", "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-language-pack-zh-hans/node_modules/@codingame/monaco-vscode-base-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-base-service-override/-/monaco-vscode-base-service-override-8.0.3.tgz", - "integrity": "sha512-jOK9oO2qAOFTsgIJQ2osDmUet7QpTq8eAQ0xdZp8A3laZGd48PczZ4WBAGbhHkRC6nGJPimP5cA4IJOAjN1wlw==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-language-pack-zh-hans/node_modules/@codingame/monaco-vscode-environment-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-environment-service-override/-/monaco-vscode-environment-service-override-8.0.3.tgz", - "integrity": "sha512-OhZRikv3wKkocax/F9r7rZ2OHlXsFaX8cUaFWHOj4Bgj/g1FsnL/EvNUAZer9bVTzdq3a+4uZunz1jn/V5HF4g==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-language-pack-zh-hans/node_modules/@codingame/monaco-vscode-extensions-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-extensions-service-override/-/monaco-vscode-extensions-service-override-8.0.3.tgz", - "integrity": "sha512-VEr8w7ykNNfYx6KGko03WOjaw7HcaETfQT2Eayj/u7lJX+expP6sEM2D3TGBAuHd8feepFzBuVfsL8I/ZLwS+g==", - "license": "MIT", - "dependencies": { - "@codingame/monaco-vscode-files-service-override": "8.0.3", - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-language-pack-zh-hans/node_modules/@codingame/monaco-vscode-files-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-files-service-override/-/monaco-vscode-files-service-override-8.0.3.tgz", - "integrity": "sha512-S3mAHK510EwfdN8us2/UpspBC81pMnjACNVqDAk1QGfh6xKOQ6NPUv6ri/3oF2/2zMl5keI/iihK4xwLEAAd8Q==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-language-pack-zh-hans/node_modules/@codingame/monaco-vscode-host-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-host-service-override/-/monaco-vscode-host-service-override-8.0.3.tgz", - "integrity": "sha512-VHwFyWTkOqOT+WLB7hC4zZFoahTbcFGJW/MutlR3c5+09v2qddMm2IsxcHKbI3IbHyb4TgPgC0arV4rs1FaNWQ==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-language-pack-zh-hans/node_modules/@codingame/monaco-vscode-layout-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-layout-service-override/-/monaco-vscode-layout-service-override-8.0.3.tgz", - "integrity": "sha512-/so4xozWoEzbqAVIh6iXosNwA7pTpcmj9uBYCXVrjO4CHxXM9qKf9+ndidO9gwGIoiWYFBUJB6XTQOnCLMRqng==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-language-pack-zh-hans/node_modules/@codingame/monaco-vscode-quickaccess-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-quickaccess-service-override/-/monaco-vscode-quickaccess-service-override-8.0.3.tgz", - "integrity": "sha512-HNFPcQlXEn38abnfSR4JWa5oeYLsC7cCA0eqb6LkpeCMTODlP44mdahaHHWadELOpaD5ZhV4KO+GY2YcgmVXIA==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-language-pack-zh-hans/node_modules/vscode": { - "name": "@codingame/monaco-vscode-api", - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-api/-/monaco-vscode-api-8.0.3.tgz", - "integrity": "sha512-7Lnha7sspHaZq9OKdvN26mrXtaMxKvK2hri7wLNT5Z/SadM8Pj6CmCv/aDD4UpSaGfc7f6OFwsiqBmsbOYpjIA==", - "license": "MIT", - "dependencies": { - "@codingame/monaco-vscode-base-service-override": "8.0.3", - "@codingame/monaco-vscode-environment-service-override": "8.0.3", - "@codingame/monaco-vscode-extensions-service-override": "8.0.3", - "@codingame/monaco-vscode-files-service-override": "8.0.3", - "@codingame/monaco-vscode-host-service-override": "8.0.3", - "@codingame/monaco-vscode-layout-service-override": "8.0.3", - "@codingame/monaco-vscode-quickaccess-service-override": "8.0.3", - "@vscode/iconv-lite-umd": "0.7.0", - "jschardet": "3.1.3" + "vscode": "npm:@codingame/monaco-vscode-api@11.1.2" } }, "node_modules/@codingame/monaco-vscode-language-pack-zh-hant": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-language-pack-zh-hant/-/monaco-vscode-language-pack-zh-hant-8.0.3.tgz", - "integrity": "sha512-Oqn9VmavmqWMCOno0ZAXzqb0Mepq6+21mMHVqEe4sWc6Fr4zM+cYx9h60y7C1leVUc3UDd0qbMYEVElxDVzyKQ==", - "license": "MIT", + "version": "11.1.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-language-pack-zh-hant/-/monaco-vscode-language-pack-zh-hant-11.1.2.tgz", + "integrity": "sha512-o7A+Jpj7roMeNHpQhli5+lYjjz/cbN/WljwZPTOeU6Usa+NvSawth23Q4SbvCtUBcvLEpsOmNF1Kmq7a/3XIIw==", "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-language-pack-zh-hant/node_modules/@codingame/monaco-vscode-base-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-base-service-override/-/monaco-vscode-base-service-override-8.0.3.tgz", - "integrity": "sha512-jOK9oO2qAOFTsgIJQ2osDmUet7QpTq8eAQ0xdZp8A3laZGd48PczZ4WBAGbhHkRC6nGJPimP5cA4IJOAjN1wlw==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-language-pack-zh-hant/node_modules/@codingame/monaco-vscode-environment-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-environment-service-override/-/monaco-vscode-environment-service-override-8.0.3.tgz", - "integrity": "sha512-OhZRikv3wKkocax/F9r7rZ2OHlXsFaX8cUaFWHOj4Bgj/g1FsnL/EvNUAZer9bVTzdq3a+4uZunz1jn/V5HF4g==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-language-pack-zh-hant/node_modules/@codingame/monaco-vscode-extensions-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-extensions-service-override/-/monaco-vscode-extensions-service-override-8.0.3.tgz", - "integrity": "sha512-VEr8w7ykNNfYx6KGko03WOjaw7HcaETfQT2Eayj/u7lJX+expP6sEM2D3TGBAuHd8feepFzBuVfsL8I/ZLwS+g==", - "license": "MIT", - "dependencies": { - "@codingame/monaco-vscode-files-service-override": "8.0.3", - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-language-pack-zh-hant/node_modules/@codingame/monaco-vscode-files-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-files-service-override/-/monaco-vscode-files-service-override-8.0.3.tgz", - "integrity": "sha512-S3mAHK510EwfdN8us2/UpspBC81pMnjACNVqDAk1QGfh6xKOQ6NPUv6ri/3oF2/2zMl5keI/iihK4xwLEAAd8Q==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-language-pack-zh-hant/node_modules/@codingame/monaco-vscode-host-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-host-service-override/-/monaco-vscode-host-service-override-8.0.3.tgz", - "integrity": "sha512-VHwFyWTkOqOT+WLB7hC4zZFoahTbcFGJW/MutlR3c5+09v2qddMm2IsxcHKbI3IbHyb4TgPgC0arV4rs1FaNWQ==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-language-pack-zh-hant/node_modules/@codingame/monaco-vscode-layout-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-layout-service-override/-/monaco-vscode-layout-service-override-8.0.3.tgz", - "integrity": "sha512-/so4xozWoEzbqAVIh6iXosNwA7pTpcmj9uBYCXVrjO4CHxXM9qKf9+ndidO9gwGIoiWYFBUJB6XTQOnCLMRqng==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-language-pack-zh-hant/node_modules/@codingame/monaco-vscode-quickaccess-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-quickaccess-service-override/-/monaco-vscode-quickaccess-service-override-8.0.3.tgz", - "integrity": "sha512-HNFPcQlXEn38abnfSR4JWa5oeYLsC7cCA0eqb6LkpeCMTODlP44mdahaHHWadELOpaD5ZhV4KO+GY2YcgmVXIA==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-language-pack-zh-hant/node_modules/vscode": { - "name": "@codingame/monaco-vscode-api", - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-api/-/monaco-vscode-api-8.0.3.tgz", - "integrity": "sha512-7Lnha7sspHaZq9OKdvN26mrXtaMxKvK2hri7wLNT5Z/SadM8Pj6CmCv/aDD4UpSaGfc7f6OFwsiqBmsbOYpjIA==", - "license": "MIT", - "dependencies": { - "@codingame/monaco-vscode-base-service-override": "8.0.3", - "@codingame/monaco-vscode-environment-service-override": "8.0.3", - "@codingame/monaco-vscode-extensions-service-override": "8.0.3", - "@codingame/monaco-vscode-files-service-override": "8.0.3", - "@codingame/monaco-vscode-host-service-override": "8.0.3", - "@codingame/monaco-vscode-layout-service-override": "8.0.3", - "@codingame/monaco-vscode-quickaccess-service-override": "8.0.3", - "@vscode/iconv-lite-umd": "0.7.0", - "jschardet": "3.1.3" + "vscode": "npm:@codingame/monaco-vscode-api@11.1.2" } }, "node_modules/@codingame/monaco-vscode-languages-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-languages-service-override/-/monaco-vscode-languages-service-override-8.0.3.tgz", - "integrity": "sha512-sixRGBScbhW24xKLn9RXPiY406MWL/trAWAhyyAeuFPL59eUYewaFiPxGBO7fJ5sx6iE8UaRKo4qxhtRraDbxw==", - "license": "MIT", + "version": "11.1.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-languages-service-override/-/monaco-vscode-languages-service-override-11.1.2.tgz", + "integrity": "sha512-ETYg5/5tP0Pwuxg31kInUMWQmQIK67PH4craJ+gPS82Hh6/EDMNRV63z/REW4QDqw0QEpkLrow/fWXZpgeHCDQ==", + "peer": true, "dependencies": { - "@codingame/monaco-vscode-files-service-override": "8.0.3", - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-languages-service-override/node_modules/@codingame/monaco-vscode-base-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-base-service-override/-/monaco-vscode-base-service-override-8.0.3.tgz", - "integrity": "sha512-jOK9oO2qAOFTsgIJQ2osDmUet7QpTq8eAQ0xdZp8A3laZGd48PczZ4WBAGbhHkRC6nGJPimP5cA4IJOAjN1wlw==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-languages-service-override/node_modules/@codingame/monaco-vscode-environment-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-environment-service-override/-/monaco-vscode-environment-service-override-8.0.3.tgz", - "integrity": "sha512-OhZRikv3wKkocax/F9r7rZ2OHlXsFaX8cUaFWHOj4Bgj/g1FsnL/EvNUAZer9bVTzdq3a+4uZunz1jn/V5HF4g==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-languages-service-override/node_modules/@codingame/monaco-vscode-extensions-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-extensions-service-override/-/monaco-vscode-extensions-service-override-8.0.3.tgz", - "integrity": "sha512-VEr8w7ykNNfYx6KGko03WOjaw7HcaETfQT2Eayj/u7lJX+expP6sEM2D3TGBAuHd8feepFzBuVfsL8I/ZLwS+g==", - "license": "MIT", - "dependencies": { - "@codingame/monaco-vscode-files-service-override": "8.0.3", - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-languages-service-override/node_modules/@codingame/monaco-vscode-files-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-files-service-override/-/monaco-vscode-files-service-override-8.0.3.tgz", - "integrity": "sha512-S3mAHK510EwfdN8us2/UpspBC81pMnjACNVqDAk1QGfh6xKOQ6NPUv6ri/3oF2/2zMl5keI/iihK4xwLEAAd8Q==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-languages-service-override/node_modules/@codingame/monaco-vscode-host-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-host-service-override/-/monaco-vscode-host-service-override-8.0.3.tgz", - "integrity": "sha512-VHwFyWTkOqOT+WLB7hC4zZFoahTbcFGJW/MutlR3c5+09v2qddMm2IsxcHKbI3IbHyb4TgPgC0arV4rs1FaNWQ==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-languages-service-override/node_modules/@codingame/monaco-vscode-layout-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-layout-service-override/-/monaco-vscode-layout-service-override-8.0.3.tgz", - "integrity": "sha512-/so4xozWoEzbqAVIh6iXosNwA7pTpcmj9uBYCXVrjO4CHxXM9qKf9+ndidO9gwGIoiWYFBUJB6XTQOnCLMRqng==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-languages-service-override/node_modules/@codingame/monaco-vscode-quickaccess-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-quickaccess-service-override/-/monaco-vscode-quickaccess-service-override-8.0.3.tgz", - "integrity": "sha512-HNFPcQlXEn38abnfSR4JWa5oeYLsC7cCA0eqb6LkpeCMTODlP44mdahaHHWadELOpaD5ZhV4KO+GY2YcgmVXIA==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-languages-service-override/node_modules/vscode": { - "name": "@codingame/monaco-vscode-api", - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-api/-/monaco-vscode-api-8.0.3.tgz", - "integrity": "sha512-7Lnha7sspHaZq9OKdvN26mrXtaMxKvK2hri7wLNT5Z/SadM8Pj6CmCv/aDD4UpSaGfc7f6OFwsiqBmsbOYpjIA==", - "license": "MIT", - "dependencies": { - "@codingame/monaco-vscode-base-service-override": "8.0.3", - "@codingame/monaco-vscode-environment-service-override": "8.0.3", - "@codingame/monaco-vscode-extensions-service-override": "8.0.3", - "@codingame/monaco-vscode-files-service-override": "8.0.3", - "@codingame/monaco-vscode-host-service-override": "8.0.3", - "@codingame/monaco-vscode-layout-service-override": "8.0.3", - "@codingame/monaco-vscode-quickaccess-service-override": "8.0.3", - "@vscode/iconv-lite-umd": "0.7.0", - "jschardet": "3.1.3" + "@codingame/monaco-vscode-files-service-override": "11.1.2", + "vscode": "npm:@codingame/monaco-vscode-api@11.1.2" } }, "node_modules/@codingame/monaco-vscode-layout-service-override": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-layout-service-override/-/monaco-vscode-layout-service-override-8.0.2.tgz", - "integrity": "sha512-guwDg1G8qkf6I3ArpWuqtdsLkxYuAR3GxfhtzYIFLLQtrPrsOeyPXWecrYKslTt/7fWEY4QyMis/eIq5us5bAg==", - "license": "MIT", + "version": "11.1.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-layout-service-override/-/monaco-vscode-layout-service-override-11.1.2.tgz", + "integrity": "sha512-WB/wYSV8/Y1C2qgprkkq0+gRi/KTmxpDQc0RZN9tlBHS1C4vLSnuDcXsNsqsXb8VuZ0KAWcES0qJfWGh5Cm1OA==", "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.2" + "vscode": "npm:@codingame/monaco-vscode-api@11.1.2" } }, "node_modules/@codingame/monaco-vscode-lifecycle-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-lifecycle-service-override/-/monaco-vscode-lifecycle-service-override-8.0.3.tgz", - "integrity": "sha512-4u2MeMAYqlMsZPoXdKTuqDhEdd3COR4pneXX0mIAUb40fA3BfqAovoi2Nay8qRkEO7ZU5pbM7b6pX0GN6yLLYw==", - "license": "MIT", + "version": "11.1.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-lifecycle-service-override/-/monaco-vscode-lifecycle-service-override-11.1.2.tgz", + "integrity": "sha512-OtjAyTsw8ZZ8bDQCtxA1ZchMKmAaZvxP44zwIzYMZhPvK/m683lEeLM5zCzL9TZV8JiggvIDcIMkb43um9TumA==", + "optional": true, + "peer": true, "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-lifecycle-service-override/node_modules/@codingame/monaco-vscode-base-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-base-service-override/-/monaco-vscode-base-service-override-8.0.3.tgz", - "integrity": "sha512-jOK9oO2qAOFTsgIJQ2osDmUet7QpTq8eAQ0xdZp8A3laZGd48PczZ4WBAGbhHkRC6nGJPimP5cA4IJOAjN1wlw==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-lifecycle-service-override/node_modules/@codingame/monaco-vscode-environment-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-environment-service-override/-/monaco-vscode-environment-service-override-8.0.3.tgz", - "integrity": "sha512-OhZRikv3wKkocax/F9r7rZ2OHlXsFaX8cUaFWHOj4Bgj/g1FsnL/EvNUAZer9bVTzdq3a+4uZunz1jn/V5HF4g==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-lifecycle-service-override/node_modules/@codingame/monaco-vscode-extensions-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-extensions-service-override/-/monaco-vscode-extensions-service-override-8.0.3.tgz", - "integrity": "sha512-VEr8w7ykNNfYx6KGko03WOjaw7HcaETfQT2Eayj/u7lJX+expP6sEM2D3TGBAuHd8feepFzBuVfsL8I/ZLwS+g==", - "license": "MIT", - "dependencies": { - "@codingame/monaco-vscode-files-service-override": "8.0.3", - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-lifecycle-service-override/node_modules/@codingame/monaco-vscode-files-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-files-service-override/-/monaco-vscode-files-service-override-8.0.3.tgz", - "integrity": "sha512-S3mAHK510EwfdN8us2/UpspBC81pMnjACNVqDAk1QGfh6xKOQ6NPUv6ri/3oF2/2zMl5keI/iihK4xwLEAAd8Q==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-lifecycle-service-override/node_modules/@codingame/monaco-vscode-host-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-host-service-override/-/monaco-vscode-host-service-override-8.0.3.tgz", - "integrity": "sha512-VHwFyWTkOqOT+WLB7hC4zZFoahTbcFGJW/MutlR3c5+09v2qddMm2IsxcHKbI3IbHyb4TgPgC0arV4rs1FaNWQ==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-lifecycle-service-override/node_modules/@codingame/monaco-vscode-layout-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-layout-service-override/-/monaco-vscode-layout-service-override-8.0.3.tgz", - "integrity": "sha512-/so4xozWoEzbqAVIh6iXosNwA7pTpcmj9uBYCXVrjO4CHxXM9qKf9+ndidO9gwGIoiWYFBUJB6XTQOnCLMRqng==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-lifecycle-service-override/node_modules/@codingame/monaco-vscode-quickaccess-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-quickaccess-service-override/-/monaco-vscode-quickaccess-service-override-8.0.3.tgz", - "integrity": "sha512-HNFPcQlXEn38abnfSR4JWa5oeYLsC7cCA0eqb6LkpeCMTODlP44mdahaHHWadELOpaD5ZhV4KO+GY2YcgmVXIA==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-lifecycle-service-override/node_modules/vscode": { - "name": "@codingame/monaco-vscode-api", - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-api/-/monaco-vscode-api-8.0.3.tgz", - "integrity": "sha512-7Lnha7sspHaZq9OKdvN26mrXtaMxKvK2hri7wLNT5Z/SadM8Pj6CmCv/aDD4UpSaGfc7f6OFwsiqBmsbOYpjIA==", - "license": "MIT", - "dependencies": { - "@codingame/monaco-vscode-base-service-override": "8.0.3", - "@codingame/monaco-vscode-environment-service-override": "8.0.3", - "@codingame/monaco-vscode-extensions-service-override": "8.0.3", - "@codingame/monaco-vscode-files-service-override": "8.0.3", - "@codingame/monaco-vscode-host-service-override": "8.0.3", - "@codingame/monaco-vscode-layout-service-override": "8.0.3", - "@codingame/monaco-vscode-quickaccess-service-override": "8.0.3", - "@vscode/iconv-lite-umd": "0.7.0", - "jschardet": "3.1.3" + "vscode": "npm:@codingame/monaco-vscode-api@11.1.2" } }, "node_modules/@codingame/monaco-vscode-localization-service-override": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-localization-service-override/-/monaco-vscode-localization-service-override-8.0.2.tgz", - "integrity": "sha512-XiU3qCS9jCVWeAcEmaxfJnKaQiHoKlpYEMEfstOuvLfRCuRswWXjhYPG9gJVTx0m28MbCY0uhtjOXtOz3GRTtA==", - "license": "MIT", + "version": "11.1.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-localization-service-override/-/monaco-vscode-localization-service-override-11.1.2.tgz", + "integrity": "sha512-fOwp+LqXvrtCAbl0vEdYFJS5CfVv8/4raiAr74NzSx/1w0xtvVW8FoFkH+/GAzk+S+9AdDwtbyEnKJYx5HdRwA==", + "peer": true, "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.2" + "vscode": "npm:@codingame/monaco-vscode-api@11.1.2" + } + }, + "node_modules/@codingame/monaco-vscode-log-service-override": { + "version": "11.1.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-log-service-override/-/monaco-vscode-log-service-override-11.1.2.tgz", + "integrity": "sha512-ZCKEjZSq5b9ynl/X52cX+2NI2C+76aJWWkksduAtBS+QQg7uzymjtk98mTGmlSDlHzTSDrU3R4TdShZzBr/m7g==", + "peer": true, + "dependencies": { + "@codingame/monaco-vscode-environment-service-override": "11.1.2", + "vscode": "npm:@codingame/monaco-vscode-api@11.1.2" } }, "node_modules/@codingame/monaco-vscode-model-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-model-service-override/-/monaco-vscode-model-service-override-8.0.3.tgz", - "integrity": "sha512-1qdXPtUcyB729dK8bsSdvChifTQXewW6kZSBOClIbZ22zuCgoIbFQ0xfJXkrB+z3fxoEW6s1L148dEuIVFP9xA==", - "license": "MIT", + "version": "11.1.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-model-service-override/-/monaco-vscode-model-service-override-11.1.2.tgz", + "integrity": "sha512-jFH2VvAiAK7Ytyzl4RMhOdARxrm/LOQFurXBtNhpTcimz3nINgixxh2+e0bviIe0BBs7ATsc9M//g6dA7S/FvQ==", + "peer": true, "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-model-service-override/node_modules/@codingame/monaco-vscode-base-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-base-service-override/-/monaco-vscode-base-service-override-8.0.3.tgz", - "integrity": "sha512-jOK9oO2qAOFTsgIJQ2osDmUet7QpTq8eAQ0xdZp8A3laZGd48PczZ4WBAGbhHkRC6nGJPimP5cA4IJOAjN1wlw==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-model-service-override/node_modules/@codingame/monaco-vscode-environment-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-environment-service-override/-/monaco-vscode-environment-service-override-8.0.3.tgz", - "integrity": "sha512-OhZRikv3wKkocax/F9r7rZ2OHlXsFaX8cUaFWHOj4Bgj/g1FsnL/EvNUAZer9bVTzdq3a+4uZunz1jn/V5HF4g==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-model-service-override/node_modules/@codingame/monaco-vscode-extensions-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-extensions-service-override/-/monaco-vscode-extensions-service-override-8.0.3.tgz", - "integrity": "sha512-VEr8w7ykNNfYx6KGko03WOjaw7HcaETfQT2Eayj/u7lJX+expP6sEM2D3TGBAuHd8feepFzBuVfsL8I/ZLwS+g==", - "license": "MIT", - "dependencies": { - "@codingame/monaco-vscode-files-service-override": "8.0.3", - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-model-service-override/node_modules/@codingame/monaco-vscode-files-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-files-service-override/-/monaco-vscode-files-service-override-8.0.3.tgz", - "integrity": "sha512-S3mAHK510EwfdN8us2/UpspBC81pMnjACNVqDAk1QGfh6xKOQ6NPUv6ri/3oF2/2zMl5keI/iihK4xwLEAAd8Q==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-model-service-override/node_modules/@codingame/monaco-vscode-host-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-host-service-override/-/monaco-vscode-host-service-override-8.0.3.tgz", - "integrity": "sha512-VHwFyWTkOqOT+WLB7hC4zZFoahTbcFGJW/MutlR3c5+09v2qddMm2IsxcHKbI3IbHyb4TgPgC0arV4rs1FaNWQ==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-model-service-override/node_modules/@codingame/monaco-vscode-layout-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-layout-service-override/-/monaco-vscode-layout-service-override-8.0.3.tgz", - "integrity": "sha512-/so4xozWoEzbqAVIh6iXosNwA7pTpcmj9uBYCXVrjO4CHxXM9qKf9+ndidO9gwGIoiWYFBUJB6XTQOnCLMRqng==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-model-service-override/node_modules/@codingame/monaco-vscode-quickaccess-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-quickaccess-service-override/-/monaco-vscode-quickaccess-service-override-8.0.3.tgz", - "integrity": "sha512-HNFPcQlXEn38abnfSR4JWa5oeYLsC7cCA0eqb6LkpeCMTODlP44mdahaHHWadELOpaD5ZhV4KO+GY2YcgmVXIA==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-model-service-override/node_modules/vscode": { - "name": "@codingame/monaco-vscode-api", - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-api/-/monaco-vscode-api-8.0.3.tgz", - "integrity": "sha512-7Lnha7sspHaZq9OKdvN26mrXtaMxKvK2hri7wLNT5Z/SadM8Pj6CmCv/aDD4UpSaGfc7f6OFwsiqBmsbOYpjIA==", - "license": "MIT", - "dependencies": { - "@codingame/monaco-vscode-base-service-override": "8.0.3", - "@codingame/monaco-vscode-environment-service-override": "8.0.3", - "@codingame/monaco-vscode-extensions-service-override": "8.0.3", - "@codingame/monaco-vscode-files-service-override": "8.0.3", - "@codingame/monaco-vscode-host-service-override": "8.0.3", - "@codingame/monaco-vscode-layout-service-override": "8.0.3", - "@codingame/monaco-vscode-quickaccess-service-override": "8.0.3", - "@vscode/iconv-lite-umd": "0.7.0", - "jschardet": "3.1.3" + "vscode": "npm:@codingame/monaco-vscode-api@11.1.2" } }, "node_modules/@codingame/monaco-vscode-monarch-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-monarch-service-override/-/monaco-vscode-monarch-service-override-8.0.3.tgz", - "integrity": "sha512-UwRGlZz/1QpP7i7v+sJGmrY0FI9hGC/7oul8dSk/UMRaeEd4YNu6LAjKruhGhPhUp+fm8ixkb0XAPpcvH6dR3Q==", - "license": "MIT", + "version": "11.1.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-monarch-service-override/-/monaco-vscode-monarch-service-override-11.1.2.tgz", + "integrity": "sha512-ccvAOLFQna6wsxfirf+rRvuAmjW+AjsOtxfMijJjJ+YVb74bxQH/yttHILagTidTbH0G5eb9IvWF3C0pEBgznQ==", "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + "vscode": "npm:@codingame/monaco-vscode-api@11.1.2" } }, - "node_modules/@codingame/monaco-vscode-monarch-service-override/node_modules/@codingame/monaco-vscode-base-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-base-service-override/-/monaco-vscode-base-service-override-8.0.3.tgz", - "integrity": "sha512-jOK9oO2qAOFTsgIJQ2osDmUet7QpTq8eAQ0xdZp8A3laZGd48PczZ4WBAGbhHkRC6nGJPimP5cA4IJOAjN1wlw==", - "license": "MIT", + "node_modules/@codingame/monaco-vscode-notifications-workbench-common": { + "version": "11.1.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-notifications-workbench-common/-/monaco-vscode-notifications-workbench-common-11.1.2.tgz", + "integrity": "sha512-MChzLX6RpLo8mNTT1R1wwEjo98FljVskBd2ZIGprycne5oydhpfFLQ9JRVc0N9UU5c0trvtvA2rFnEBagURT5g==", "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-monarch-service-override/node_modules/@codingame/monaco-vscode-environment-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-environment-service-override/-/monaco-vscode-environment-service-override-8.0.3.tgz", - "integrity": "sha512-OhZRikv3wKkocax/F9r7rZ2OHlXsFaX8cUaFWHOj4Bgj/g1FsnL/EvNUAZer9bVTzdq3a+4uZunz1jn/V5HF4g==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-monarch-service-override/node_modules/@codingame/monaco-vscode-extensions-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-extensions-service-override/-/monaco-vscode-extensions-service-override-8.0.3.tgz", - "integrity": "sha512-VEr8w7ykNNfYx6KGko03WOjaw7HcaETfQT2Eayj/u7lJX+expP6sEM2D3TGBAuHd8feepFzBuVfsL8I/ZLwS+g==", - "license": "MIT", - "dependencies": { - "@codingame/monaco-vscode-files-service-override": "8.0.3", - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-monarch-service-override/node_modules/@codingame/monaco-vscode-files-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-files-service-override/-/monaco-vscode-files-service-override-8.0.3.tgz", - "integrity": "sha512-S3mAHK510EwfdN8us2/UpspBC81pMnjACNVqDAk1QGfh6xKOQ6NPUv6ri/3oF2/2zMl5keI/iihK4xwLEAAd8Q==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-monarch-service-override/node_modules/@codingame/monaco-vscode-host-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-host-service-override/-/monaco-vscode-host-service-override-8.0.3.tgz", - "integrity": "sha512-VHwFyWTkOqOT+WLB7hC4zZFoahTbcFGJW/MutlR3c5+09v2qddMm2IsxcHKbI3IbHyb4TgPgC0arV4rs1FaNWQ==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-monarch-service-override/node_modules/@codingame/monaco-vscode-layout-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-layout-service-override/-/monaco-vscode-layout-service-override-8.0.3.tgz", - "integrity": "sha512-/so4xozWoEzbqAVIh6iXosNwA7pTpcmj9uBYCXVrjO4CHxXM9qKf9+ndidO9gwGIoiWYFBUJB6XTQOnCLMRqng==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-monarch-service-override/node_modules/@codingame/monaco-vscode-quickaccess-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-quickaccess-service-override/-/monaco-vscode-quickaccess-service-override-8.0.3.tgz", - "integrity": "sha512-HNFPcQlXEn38abnfSR4JWa5oeYLsC7cCA0eqb6LkpeCMTODlP44mdahaHHWadELOpaD5ZhV4KO+GY2YcgmVXIA==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-monarch-service-override/node_modules/vscode": { - "name": "@codingame/monaco-vscode-api", - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-api/-/monaco-vscode-api-8.0.3.tgz", - "integrity": "sha512-7Lnha7sspHaZq9OKdvN26mrXtaMxKvK2hri7wLNT5Z/SadM8Pj6CmCv/aDD4UpSaGfc7f6OFwsiqBmsbOYpjIA==", - "license": "MIT", - "dependencies": { - "@codingame/monaco-vscode-base-service-override": "8.0.3", - "@codingame/monaco-vscode-environment-service-override": "8.0.3", - "@codingame/monaco-vscode-extensions-service-override": "8.0.3", - "@codingame/monaco-vscode-files-service-override": "8.0.3", - "@codingame/monaco-vscode-host-service-override": "8.0.3", - "@codingame/monaco-vscode-layout-service-override": "8.0.3", - "@codingame/monaco-vscode-quickaccess-service-override": "8.0.3", - "@vscode/iconv-lite-umd": "0.7.0", - "jschardet": "3.1.3" + "vscode": "npm:@codingame/monaco-vscode-api@11.1.2" } }, "node_modules/@codingame/monaco-vscode-quickaccess-service-override": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-quickaccess-service-override/-/monaco-vscode-quickaccess-service-override-8.0.2.tgz", - "integrity": "sha512-4Wli5dY0NPuotwjmnyyJOqTo4CZmI4TlI/sjOSJvOvwHSwbCgaNWovTgDceoCmopsiiTG00n9SyT2geA8gxpqg==", - "license": "MIT", + "version": "11.1.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-quickaccess-service-override/-/monaco-vscode-quickaccess-service-override-11.1.2.tgz", + "integrity": "sha512-VT6F25bEtCvVE2kjBOfgiFOQ1V7YynlrhsHXFZEUzVTK0vFM13Za5otS/CTwgI/ml5FRDFjQKYJjKBAWmlPCaw==", "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.2" + "vscode": "npm:@codingame/monaco-vscode-api@11.1.2" } }, "node_modules/@codingame/monaco-vscode-standalone-css-language-features": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-standalone-css-language-features/-/monaco-vscode-standalone-css-language-features-8.0.3.tgz", - "integrity": "sha512-n7u/rSAsewtTeFCgLMhTguoD4vH7Mr9LVAIK4rbwRykyyYbnHVIdXchdJwLLL0D4JqN5am8WyYtcJSfTB5LqXA==", - "license": "MIT", + "version": "11.1.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-standalone-css-language-features/-/monaco-vscode-standalone-css-language-features-11.1.2.tgz", + "integrity": "sha512-03OmmG/+5ibnSZnVsGcSVJ3TDjHedDqUeuVqzhplFS44eOP0vbrXnbi7+J18vQF+ekNu/SjaMJ8Q48KE3l26pQ==", "dependencies": { - "monaco-editor": "npm:@codingame/monaco-vscode-editor-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-standalone-css-language-features/node_modules/@codingame/monaco-vscode-base-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-base-service-override/-/monaco-vscode-base-service-override-8.0.3.tgz", - "integrity": "sha512-jOK9oO2qAOFTsgIJQ2osDmUet7QpTq8eAQ0xdZp8A3laZGd48PczZ4WBAGbhHkRC6nGJPimP5cA4IJOAjN1wlw==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-standalone-css-language-features/node_modules/@codingame/monaco-vscode-environment-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-environment-service-override/-/monaco-vscode-environment-service-override-8.0.3.tgz", - "integrity": "sha512-OhZRikv3wKkocax/F9r7rZ2OHlXsFaX8cUaFWHOj4Bgj/g1FsnL/EvNUAZer9bVTzdq3a+4uZunz1jn/V5HF4g==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-standalone-css-language-features/node_modules/@codingame/monaco-vscode-extensions-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-extensions-service-override/-/monaco-vscode-extensions-service-override-8.0.3.tgz", - "integrity": "sha512-VEr8w7ykNNfYx6KGko03WOjaw7HcaETfQT2Eayj/u7lJX+expP6sEM2D3TGBAuHd8feepFzBuVfsL8I/ZLwS+g==", - "license": "MIT", - "dependencies": { - "@codingame/monaco-vscode-files-service-override": "8.0.3", - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-standalone-css-language-features/node_modules/@codingame/monaco-vscode-files-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-files-service-override/-/monaco-vscode-files-service-override-8.0.3.tgz", - "integrity": "sha512-S3mAHK510EwfdN8us2/UpspBC81pMnjACNVqDAk1QGfh6xKOQ6NPUv6ri/3oF2/2zMl5keI/iihK4xwLEAAd8Q==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-standalone-css-language-features/node_modules/@codingame/monaco-vscode-host-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-host-service-override/-/monaco-vscode-host-service-override-8.0.3.tgz", - "integrity": "sha512-VHwFyWTkOqOT+WLB7hC4zZFoahTbcFGJW/MutlR3c5+09v2qddMm2IsxcHKbI3IbHyb4TgPgC0arV4rs1FaNWQ==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-standalone-css-language-features/node_modules/@codingame/monaco-vscode-layout-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-layout-service-override/-/monaco-vscode-layout-service-override-8.0.3.tgz", - "integrity": "sha512-/so4xozWoEzbqAVIh6iXosNwA7pTpcmj9uBYCXVrjO4CHxXM9qKf9+ndidO9gwGIoiWYFBUJB6XTQOnCLMRqng==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-standalone-css-language-features/node_modules/@codingame/monaco-vscode-quickaccess-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-quickaccess-service-override/-/monaco-vscode-quickaccess-service-override-8.0.3.tgz", - "integrity": "sha512-HNFPcQlXEn38abnfSR4JWa5oeYLsC7cCA0eqb6LkpeCMTODlP44mdahaHHWadELOpaD5ZhV4KO+GY2YcgmVXIA==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-standalone-css-language-features/node_modules/monaco-editor": { - "name": "@codingame/monaco-vscode-editor-api", - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-editor-api/-/monaco-vscode-editor-api-8.0.3.tgz", - "integrity": "sha512-GTfLNnczFGOcOE6tdQ+GQTtFwecB9aVNDIawGIBKxCzZxKbvWvWMkh1ZFzyMsO1Vq4/h3xHj2sL3U/gNqNV3kA==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-standalone-css-language-features/node_modules/vscode": { - "name": "@codingame/monaco-vscode-api", - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-api/-/monaco-vscode-api-8.0.3.tgz", - "integrity": "sha512-7Lnha7sspHaZq9OKdvN26mrXtaMxKvK2hri7wLNT5Z/SadM8Pj6CmCv/aDD4UpSaGfc7f6OFwsiqBmsbOYpjIA==", - "license": "MIT", - "dependencies": { - "@codingame/monaco-vscode-base-service-override": "8.0.3", - "@codingame/monaco-vscode-environment-service-override": "8.0.3", - "@codingame/monaco-vscode-extensions-service-override": "8.0.3", - "@codingame/monaco-vscode-files-service-override": "8.0.3", - "@codingame/monaco-vscode-host-service-override": "8.0.3", - "@codingame/monaco-vscode-layout-service-override": "8.0.3", - "@codingame/monaco-vscode-quickaccess-service-override": "8.0.3", - "@vscode/iconv-lite-umd": "0.7.0", - "jschardet": "3.1.3" + "monaco-editor": "npm:@codingame/monaco-vscode-editor-api@11.1.2" } }, "node_modules/@codingame/monaco-vscode-standalone-json-language-features": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-standalone-json-language-features/-/monaco-vscode-standalone-json-language-features-8.0.2.tgz", - "integrity": "sha512-jek9BtxkpTI3E4ap9wv8tyHlBB6Gnv5NdEXHckL9juQZ5Tjsjh/NBBrT9ne58jyf28xCM/YwI94R3kNkQRcr6g==", - "license": "MIT", + "version": "11.1.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-standalone-json-language-features/-/monaco-vscode-standalone-json-language-features-11.1.2.tgz", + "integrity": "sha512-3UjcJpSjYmMoPshZjZDLCIB2hU+NVnYo9EsvZik3zpEgaXQzO+bZLPV7QrH8pufR1WAu/PZqHbqad/0lqPkT+A==", "dependencies": { - "monaco-editor": "npm:@codingame/monaco-vscode-editor-api@8.0.2" + "monaco-editor": "npm:@codingame/monaco-vscode-editor-api@11.1.2" } }, "node_modules/@codingame/monaco-vscode-standalone-languages": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-standalone-languages/-/monaco-vscode-standalone-languages-8.0.2.tgz", - "integrity": "sha512-KRr8Rde4E5A5ctRVlrFiHPQhr+oMtJT9q5H7AUKXzU2KN0+VEAZFUmtCzUoyqhWjOwmvPK8cTTnSQHME3eqqmw==", - "license": "MIT", + "version": "11.1.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-standalone-languages/-/monaco-vscode-standalone-languages-11.1.2.tgz", + "integrity": "sha512-x2yTosl9JMoiImPPju1+2edKhWQilkREZovSNBkjLeIGpLTqVBeSijSa1KfxZwifAmtwBfRx/LTych0tbWy8kQ==", "dependencies": { - "monaco-editor": "npm:@codingame/monaco-vscode-editor-api@8.0.2" + "monaco-editor": "npm:@codingame/monaco-vscode-editor-api@11.1.2" } }, "node_modules/@codingame/monaco-vscode-standalone-typescript-language-features": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-standalone-typescript-language-features/-/monaco-vscode-standalone-typescript-language-features-8.0.3.tgz", - "integrity": "sha512-IoaB3WhzTdRkbZiWLXBzZI0nnn1aSDkzje1znOwkWCqEpLHl3kuMebJcAUSdjlRPWXvHgtSXqyZqZ1FmaVXhEg==", - "license": "MIT", + "version": "11.1.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-standalone-typescript-language-features/-/monaco-vscode-standalone-typescript-language-features-11.1.2.tgz", + "integrity": "sha512-6XbJgMGH1C5VJxBfVgWzqBoV5jr22q4ecncsdhP1G6C5sIgEiQFRHcyXb0HWkBJVgfJ/TOH7R8fB+WVeaAznmg==", "dependencies": { - "monaco-editor": "npm:@codingame/monaco-vscode-editor-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-standalone-typescript-language-features/node_modules/@codingame/monaco-vscode-base-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-base-service-override/-/monaco-vscode-base-service-override-8.0.3.tgz", - "integrity": "sha512-jOK9oO2qAOFTsgIJQ2osDmUet7QpTq8eAQ0xdZp8A3laZGd48PczZ4WBAGbhHkRC6nGJPimP5cA4IJOAjN1wlw==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-standalone-typescript-language-features/node_modules/@codingame/monaco-vscode-environment-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-environment-service-override/-/monaco-vscode-environment-service-override-8.0.3.tgz", - "integrity": "sha512-OhZRikv3wKkocax/F9r7rZ2OHlXsFaX8cUaFWHOj4Bgj/g1FsnL/EvNUAZer9bVTzdq3a+4uZunz1jn/V5HF4g==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-standalone-typescript-language-features/node_modules/@codingame/monaco-vscode-extensions-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-extensions-service-override/-/monaco-vscode-extensions-service-override-8.0.3.tgz", - "integrity": "sha512-VEr8w7ykNNfYx6KGko03WOjaw7HcaETfQT2Eayj/u7lJX+expP6sEM2D3TGBAuHd8feepFzBuVfsL8I/ZLwS+g==", - "license": "MIT", - "dependencies": { - "@codingame/monaco-vscode-files-service-override": "8.0.3", - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-standalone-typescript-language-features/node_modules/@codingame/monaco-vscode-files-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-files-service-override/-/monaco-vscode-files-service-override-8.0.3.tgz", - "integrity": "sha512-S3mAHK510EwfdN8us2/UpspBC81pMnjACNVqDAk1QGfh6xKOQ6NPUv6ri/3oF2/2zMl5keI/iihK4xwLEAAd8Q==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-standalone-typescript-language-features/node_modules/@codingame/monaco-vscode-host-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-host-service-override/-/monaco-vscode-host-service-override-8.0.3.tgz", - "integrity": "sha512-VHwFyWTkOqOT+WLB7hC4zZFoahTbcFGJW/MutlR3c5+09v2qddMm2IsxcHKbI3IbHyb4TgPgC0arV4rs1FaNWQ==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-standalone-typescript-language-features/node_modules/@codingame/monaco-vscode-layout-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-layout-service-override/-/monaco-vscode-layout-service-override-8.0.3.tgz", - "integrity": "sha512-/so4xozWoEzbqAVIh6iXosNwA7pTpcmj9uBYCXVrjO4CHxXM9qKf9+ndidO9gwGIoiWYFBUJB6XTQOnCLMRqng==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-standalone-typescript-language-features/node_modules/@codingame/monaco-vscode-quickaccess-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-quickaccess-service-override/-/monaco-vscode-quickaccess-service-override-8.0.3.tgz", - "integrity": "sha512-HNFPcQlXEn38abnfSR4JWa5oeYLsC7cCA0eqb6LkpeCMTODlP44mdahaHHWadELOpaD5ZhV4KO+GY2YcgmVXIA==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-standalone-typescript-language-features/node_modules/monaco-editor": { - "name": "@codingame/monaco-vscode-editor-api", - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-editor-api/-/monaco-vscode-editor-api-8.0.3.tgz", - "integrity": "sha512-GTfLNnczFGOcOE6tdQ+GQTtFwecB9aVNDIawGIBKxCzZxKbvWvWMkh1ZFzyMsO1Vq4/h3xHj2sL3U/gNqNV3kA==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-standalone-typescript-language-features/node_modules/vscode": { - "name": "@codingame/monaco-vscode-api", - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-api/-/monaco-vscode-api-8.0.3.tgz", - "integrity": "sha512-7Lnha7sspHaZq9OKdvN26mrXtaMxKvK2hri7wLNT5Z/SadM8Pj6CmCv/aDD4UpSaGfc7f6OFwsiqBmsbOYpjIA==", - "license": "MIT", - "dependencies": { - "@codingame/monaco-vscode-base-service-override": "8.0.3", - "@codingame/monaco-vscode-environment-service-override": "8.0.3", - "@codingame/monaco-vscode-extensions-service-override": "8.0.3", - "@codingame/monaco-vscode-files-service-override": "8.0.3", - "@codingame/monaco-vscode-host-service-override": "8.0.3", - "@codingame/monaco-vscode-layout-service-override": "8.0.3", - "@codingame/monaco-vscode-quickaccess-service-override": "8.0.3", - "@vscode/iconv-lite-umd": "0.7.0", - "jschardet": "3.1.3" + "monaco-editor": "npm:@codingame/monaco-vscode-editor-api@11.1.2" } }, "node_modules/@codingame/monaco-vscode-textmate-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-textmate-service-override/-/monaco-vscode-textmate-service-override-8.0.3.tgz", - "integrity": "sha512-6FQvF5b5SSi3XQo1xZNV3ibSAm6LGk4D/ImGf6GXGzDul/4xkeLQnmPgfb8L8ME/NLafjzLXg4AAzcvPfSZFNg==", - "license": "MIT", + "version": "11.1.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-textmate-service-override/-/monaco-vscode-textmate-service-override-11.1.2.tgz", + "integrity": "sha512-XYifKsm7QCW0GQQrZbstBPK5z8HSi5hT52ViIvMf/w910kvswW2KDiasEAGEGyyG3WaqTGjtwyNkuo6tlBftlQ==", "dependencies": { - "@codingame/monaco-vscode-files-service-override": "8.0.3", - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3", + "@codingame/monaco-vscode-files-service-override": "11.1.2", + "vscode": "npm:@codingame/monaco-vscode-api@11.1.2", "vscode-oniguruma": "1.7.0", - "vscode-textmate": "9.0.0" - } - }, - "node_modules/@codingame/monaco-vscode-textmate-service-override/node_modules/@codingame/monaco-vscode-base-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-base-service-override/-/monaco-vscode-base-service-override-8.0.3.tgz", - "integrity": "sha512-jOK9oO2qAOFTsgIJQ2osDmUet7QpTq8eAQ0xdZp8A3laZGd48PczZ4WBAGbhHkRC6nGJPimP5cA4IJOAjN1wlw==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-textmate-service-override/node_modules/@codingame/monaco-vscode-environment-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-environment-service-override/-/monaco-vscode-environment-service-override-8.0.3.tgz", - "integrity": "sha512-OhZRikv3wKkocax/F9r7rZ2OHlXsFaX8cUaFWHOj4Bgj/g1FsnL/EvNUAZer9bVTzdq3a+4uZunz1jn/V5HF4g==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-textmate-service-override/node_modules/@codingame/monaco-vscode-extensions-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-extensions-service-override/-/monaco-vscode-extensions-service-override-8.0.3.tgz", - "integrity": "sha512-VEr8w7ykNNfYx6KGko03WOjaw7HcaETfQT2Eayj/u7lJX+expP6sEM2D3TGBAuHd8feepFzBuVfsL8I/ZLwS+g==", - "license": "MIT", - "dependencies": { - "@codingame/monaco-vscode-files-service-override": "8.0.3", - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-textmate-service-override/node_modules/@codingame/monaco-vscode-files-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-files-service-override/-/monaco-vscode-files-service-override-8.0.3.tgz", - "integrity": "sha512-S3mAHK510EwfdN8us2/UpspBC81pMnjACNVqDAk1QGfh6xKOQ6NPUv6ri/3oF2/2zMl5keI/iihK4xwLEAAd8Q==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-textmate-service-override/node_modules/@codingame/monaco-vscode-host-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-host-service-override/-/monaco-vscode-host-service-override-8.0.3.tgz", - "integrity": "sha512-VHwFyWTkOqOT+WLB7hC4zZFoahTbcFGJW/MutlR3c5+09v2qddMm2IsxcHKbI3IbHyb4TgPgC0arV4rs1FaNWQ==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-textmate-service-override/node_modules/@codingame/monaco-vscode-layout-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-layout-service-override/-/monaco-vscode-layout-service-override-8.0.3.tgz", - "integrity": "sha512-/so4xozWoEzbqAVIh6iXosNwA7pTpcmj9uBYCXVrjO4CHxXM9qKf9+ndidO9gwGIoiWYFBUJB6XTQOnCLMRqng==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-textmate-service-override/node_modules/@codingame/monaco-vscode-quickaccess-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-quickaccess-service-override/-/monaco-vscode-quickaccess-service-override-8.0.3.tgz", - "integrity": "sha512-HNFPcQlXEn38abnfSR4JWa5oeYLsC7cCA0eqb6LkpeCMTODlP44mdahaHHWadELOpaD5ZhV4KO+GY2YcgmVXIA==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-textmate-service-override/node_modules/vscode": { - "name": "@codingame/monaco-vscode-api", - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-api/-/monaco-vscode-api-8.0.3.tgz", - "integrity": "sha512-7Lnha7sspHaZq9OKdvN26mrXtaMxKvK2hri7wLNT5Z/SadM8Pj6CmCv/aDD4UpSaGfc7f6OFwsiqBmsbOYpjIA==", - "license": "MIT", - "dependencies": { - "@codingame/monaco-vscode-base-service-override": "8.0.3", - "@codingame/monaco-vscode-environment-service-override": "8.0.3", - "@codingame/monaco-vscode-extensions-service-override": "8.0.3", - "@codingame/monaco-vscode-files-service-override": "8.0.3", - "@codingame/monaco-vscode-host-service-override": "8.0.3", - "@codingame/monaco-vscode-layout-service-override": "8.0.3", - "@codingame/monaco-vscode-quickaccess-service-override": "8.0.3", - "@vscode/iconv-lite-umd": "0.7.0", - "jschardet": "3.1.3" + "vscode-textmate": "9.1.0" } }, "node_modules/@codingame/monaco-vscode-theme-defaults-default-extension": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-theme-defaults-default-extension/-/monaco-vscode-theme-defaults-default-extension-8.0.3.tgz", - "integrity": "sha512-xJ/ghjWvXPRDgY9GBws9jesHinF8RL4wHNGcF7E1421zujjsMNwJLfBShgTCyNb9jT/UTLo8f1FZRllJnXDZww==", - "license": "MIT", + "version": "11.1.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-theme-defaults-default-extension/-/monaco-vscode-theme-defaults-default-extension-11.1.2.tgz", + "integrity": "sha512-YeGfdtS9gsTYAJALbYz6DCK8fjZFtm7HdDwC3J1f0zsu7ANHlRwDpKxslLUb+OghV/1uLfaA0C6IxStcu3Jg/w==", "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-theme-defaults-default-extension/node_modules/@codingame/monaco-vscode-base-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-base-service-override/-/monaco-vscode-base-service-override-8.0.3.tgz", - "integrity": "sha512-jOK9oO2qAOFTsgIJQ2osDmUet7QpTq8eAQ0xdZp8A3laZGd48PczZ4WBAGbhHkRC6nGJPimP5cA4IJOAjN1wlw==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-theme-defaults-default-extension/node_modules/@codingame/monaco-vscode-environment-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-environment-service-override/-/monaco-vscode-environment-service-override-8.0.3.tgz", - "integrity": "sha512-OhZRikv3wKkocax/F9r7rZ2OHlXsFaX8cUaFWHOj4Bgj/g1FsnL/EvNUAZer9bVTzdq3a+4uZunz1jn/V5HF4g==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-theme-defaults-default-extension/node_modules/@codingame/monaco-vscode-extensions-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-extensions-service-override/-/monaco-vscode-extensions-service-override-8.0.3.tgz", - "integrity": "sha512-VEr8w7ykNNfYx6KGko03WOjaw7HcaETfQT2Eayj/u7lJX+expP6sEM2D3TGBAuHd8feepFzBuVfsL8I/ZLwS+g==", - "license": "MIT", - "dependencies": { - "@codingame/monaco-vscode-files-service-override": "8.0.3", - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-theme-defaults-default-extension/node_modules/@codingame/monaco-vscode-files-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-files-service-override/-/monaco-vscode-files-service-override-8.0.3.tgz", - "integrity": "sha512-S3mAHK510EwfdN8us2/UpspBC81pMnjACNVqDAk1QGfh6xKOQ6NPUv6ri/3oF2/2zMl5keI/iihK4xwLEAAd8Q==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-theme-defaults-default-extension/node_modules/@codingame/monaco-vscode-host-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-host-service-override/-/monaco-vscode-host-service-override-8.0.3.tgz", - "integrity": "sha512-VHwFyWTkOqOT+WLB7hC4zZFoahTbcFGJW/MutlR3c5+09v2qddMm2IsxcHKbI3IbHyb4TgPgC0arV4rs1FaNWQ==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-theme-defaults-default-extension/node_modules/@codingame/monaco-vscode-layout-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-layout-service-override/-/monaco-vscode-layout-service-override-8.0.3.tgz", - "integrity": "sha512-/so4xozWoEzbqAVIh6iXosNwA7pTpcmj9uBYCXVrjO4CHxXM9qKf9+ndidO9gwGIoiWYFBUJB6XTQOnCLMRqng==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-theme-defaults-default-extension/node_modules/@codingame/monaco-vscode-quickaccess-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-quickaccess-service-override/-/monaco-vscode-quickaccess-service-override-8.0.3.tgz", - "integrity": "sha512-HNFPcQlXEn38abnfSR4JWa5oeYLsC7cCA0eqb6LkpeCMTODlP44mdahaHHWadELOpaD5ZhV4KO+GY2YcgmVXIA==", - "license": "MIT", - "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-theme-defaults-default-extension/node_modules/vscode": { - "name": "@codingame/monaco-vscode-api", - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-api/-/monaco-vscode-api-8.0.3.tgz", - "integrity": "sha512-7Lnha7sspHaZq9OKdvN26mrXtaMxKvK2hri7wLNT5Z/SadM8Pj6CmCv/aDD4UpSaGfc7f6OFwsiqBmsbOYpjIA==", - "license": "MIT", - "dependencies": { - "@codingame/monaco-vscode-base-service-override": "8.0.3", - "@codingame/monaco-vscode-environment-service-override": "8.0.3", - "@codingame/monaco-vscode-extensions-service-override": "8.0.3", - "@codingame/monaco-vscode-files-service-override": "8.0.3", - "@codingame/monaco-vscode-host-service-override": "8.0.3", - "@codingame/monaco-vscode-layout-service-override": "8.0.3", - "@codingame/monaco-vscode-quickaccess-service-override": "8.0.3", - "@vscode/iconv-lite-umd": "0.7.0", - "jschardet": "3.1.3" + "vscode": "npm:@codingame/monaco-vscode-api@11.1.2" } }, "node_modules/@codingame/monaco-vscode-theme-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-theme-service-override/-/monaco-vscode-theme-service-override-8.0.3.tgz", - "integrity": "sha512-w/hlLEOSWNOAErqylXyzrRhmdtipBvZkuQHKrvOv6A492bvrh0kKMuvzOknwLz3Hfy30IcJzy3uDF6vJAt4CuQ==", - "license": "MIT", + "version": "11.1.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-theme-service-override/-/monaco-vscode-theme-service-override-11.1.2.tgz", + "integrity": "sha512-6b1EmAiPiRc4JNxKbyJh13RSdLNxsAaaAwAaRXZb2IacYbHFxW2ThlYiZqJMoJHTisNlx2QDLrLq34hG3FTJ2Q==", "dependencies": { - "@codingame/monaco-vscode-files-service-override": "8.0.3", - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + "@codingame/monaco-vscode-files-service-override": "11.1.2", + "vscode": "npm:@codingame/monaco-vscode-api@11.1.2" } }, - "node_modules/@codingame/monaco-vscode-theme-service-override/node_modules/@codingame/monaco-vscode-base-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-base-service-override/-/monaco-vscode-base-service-override-8.0.3.tgz", - "integrity": "sha512-jOK9oO2qAOFTsgIJQ2osDmUet7QpTq8eAQ0xdZp8A3laZGd48PczZ4WBAGbhHkRC6nGJPimP5cA4IJOAjN1wlw==", - "license": "MIT", + "node_modules/@codingame/monaco-vscode-view-banner-service-override": { + "version": "11.1.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-view-banner-service-override/-/monaco-vscode-view-banner-service-override-11.1.2.tgz", + "integrity": "sha512-174R3jFg6+hrz04sljYpyRvCkFKWDaqoLGaHHmsEI2+Mfu2AAaNUahAfZkii/QNzdXzRDQR4lG3D9zalqHwFkw==", "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + "vscode": "npm:@codingame/monaco-vscode-api@11.1.2" } }, - "node_modules/@codingame/monaco-vscode-theme-service-override/node_modules/@codingame/monaco-vscode-environment-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-environment-service-override/-/monaco-vscode-environment-service-override-8.0.3.tgz", - "integrity": "sha512-OhZRikv3wKkocax/F9r7rZ2OHlXsFaX8cUaFWHOj4Bgj/g1FsnL/EvNUAZer9bVTzdq3a+4uZunz1jn/V5HF4g==", - "license": "MIT", + "node_modules/@codingame/monaco-vscode-view-common-service-override": { + "version": "11.1.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-view-common-service-override/-/monaco-vscode-view-common-service-override-11.1.2.tgz", + "integrity": "sha512-sbFrlG2GkPZ91JDEDP80IM1b8O5xClDW3P2omRpRH+gscspGU++kItzc8oEJu7LxqL71+i+rmvfo2iJKqw+sgg==", "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + "@codingame/monaco-vscode-bulk-edit-service-override": "11.1.2", + "@codingame/monaco-vscode-explorer-outline-timeline-view-common-views-workbench-common": "11.1.2", + "@codingame/monaco-vscode-view-common-views-workbench-common": "11.1.2", + "vscode": "npm:@codingame/monaco-vscode-api@11.1.2" } }, - "node_modules/@codingame/monaco-vscode-theme-service-override/node_modules/@codingame/monaco-vscode-extensions-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-extensions-service-override/-/monaco-vscode-extensions-service-override-8.0.3.tgz", - "integrity": "sha512-VEr8w7ykNNfYx6KGko03WOjaw7HcaETfQT2Eayj/u7lJX+expP6sEM2D3TGBAuHd8feepFzBuVfsL8I/ZLwS+g==", - "license": "MIT", + "node_modules/@codingame/monaco-vscode-view-common-views-workbench-common": { + "version": "11.1.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-view-common-views-workbench-common/-/monaco-vscode-view-common-views-workbench-common-11.1.2.tgz", + "integrity": "sha512-mjfCjDM9vqzML1I0jGaQICDKLMCKenhPK93lKqpJQeEV7JRE0vpnbbLUBGBYYMi5aWZ0CkGC8BCO0/BqUX7MvQ==", "dependencies": { - "@codingame/monaco-vscode-files-service-override": "8.0.3", - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + "@codingame/monaco-vscode-explorer-outline-timeline-view-common-views-workbench-common": "11.1.2", + "vscode": "npm:@codingame/monaco-vscode-api@11.1.2" } }, - "node_modules/@codingame/monaco-vscode-theme-service-override/node_modules/@codingame/monaco-vscode-files-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-files-service-override/-/monaco-vscode-files-service-override-8.0.3.tgz", - "integrity": "sha512-S3mAHK510EwfdN8us2/UpspBC81pMnjACNVqDAk1QGfh6xKOQ6NPUv6ri/3oF2/2zMl5keI/iihK4xwLEAAd8Q==", - "license": "MIT", + "node_modules/@codingame/monaco-vscode-view-status-bar-service-override": { + "version": "11.1.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-view-status-bar-service-override/-/monaco-vscode-view-status-bar-service-override-11.1.2.tgz", + "integrity": "sha512-CJQFiqbPrrGpgrmfLDt3vzWNlU0BRyuMILksFctEoLLiypIzfN7VQ+O81qeX2r5rlocVRurPXJnJIL9jNR1HfQ==", "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + "vscode": "npm:@codingame/monaco-vscode-api@11.1.2" } }, - "node_modules/@codingame/monaco-vscode-theme-service-override/node_modules/@codingame/monaco-vscode-host-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-host-service-override/-/monaco-vscode-host-service-override-8.0.3.tgz", - "integrity": "sha512-VHwFyWTkOqOT+WLB7hC4zZFoahTbcFGJW/MutlR3c5+09v2qddMm2IsxcHKbI3IbHyb4TgPgC0arV4rs1FaNWQ==", - "license": "MIT", + "node_modules/@codingame/monaco-vscode-view-title-bar-service-override": { + "version": "11.1.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-view-title-bar-service-override/-/monaco-vscode-view-title-bar-service-override-11.1.2.tgz", + "integrity": "sha512-3Q+JoF2H8JYAe8gxfa8zYA9Q8qJ/7jXdeh8F0wjtofHUVl+sLl3bDAyAibFSeZohwnGywBXVxPaOWIqkLhzvUw==", "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + "vscode": "npm:@codingame/monaco-vscode-api@11.1.2" } }, - "node_modules/@codingame/monaco-vscode-theme-service-override/node_modules/@codingame/monaco-vscode-layout-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-layout-service-override/-/monaco-vscode-layout-service-override-8.0.3.tgz", - "integrity": "sha512-/so4xozWoEzbqAVIh6iXosNwA7pTpcmj9uBYCXVrjO4CHxXM9qKf9+ndidO9gwGIoiWYFBUJB6XTQOnCLMRqng==", - "license": "MIT", + "node_modules/@codingame/monaco-vscode-views-service-override": { + "version": "11.1.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-views-service-override/-/monaco-vscode-views-service-override-11.1.2.tgz", + "integrity": "sha512-1n8Umz+BIjyX68ardEhjL19BRGOEQzDVGuhBA1kL27ceJAER/GRzRMYMmqs90ZeIThba8OZwuGceItsMti8gkQ==", "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" + "@codingame/monaco-vscode-keybindings-service-override": "11.1.2", + "@codingame/monaco-vscode-quickaccess-service-override": "11.1.2", + "@codingame/monaco-vscode-view-common-service-override": "11.1.2", + "@codingame/monaco-vscode-view-common-views-workbench-common": "11.1.2", + "vscode": "npm:@codingame/monaco-vscode-api@11.1.2" } }, - "node_modules/@codingame/monaco-vscode-theme-service-override/node_modules/@codingame/monaco-vscode-quickaccess-service-override": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-quickaccess-service-override/-/monaco-vscode-quickaccess-service-override-8.0.3.tgz", - "integrity": "sha512-HNFPcQlXEn38abnfSR4JWa5oeYLsC7cCA0eqb6LkpeCMTODlP44mdahaHHWadELOpaD5ZhV4KO+GY2YcgmVXIA==", - "license": "MIT", + "node_modules/@codingame/monaco-vscode-workbench-service-override": { + "version": "11.1.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-workbench-service-override/-/monaco-vscode-workbench-service-override-11.1.2.tgz", + "integrity": "sha512-E+SWwMiVN/cTmqHWw/1rmkI+zPUxkujGJoC0fqQ3LjUfsLsifoHCt3vKIL9yNFqmSP/jO3OJQ1ZB81pCgDjg7Q==", "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.3" - } - }, - "node_modules/@codingame/monaco-vscode-theme-service-override/node_modules/vscode": { - "name": "@codingame/monaco-vscode-api", - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-api/-/monaco-vscode-api-8.0.3.tgz", - "integrity": "sha512-7Lnha7sspHaZq9OKdvN26mrXtaMxKvK2hri7wLNT5Z/SadM8Pj6CmCv/aDD4UpSaGfc7f6OFwsiqBmsbOYpjIA==", - "license": "MIT", - "dependencies": { - "@codingame/monaco-vscode-base-service-override": "8.0.3", - "@codingame/monaco-vscode-environment-service-override": "8.0.3", - "@codingame/monaco-vscode-extensions-service-override": "8.0.3", - "@codingame/monaco-vscode-files-service-override": "8.0.3", - "@codingame/monaco-vscode-host-service-override": "8.0.3", - "@codingame/monaco-vscode-layout-service-override": "8.0.3", - "@codingame/monaco-vscode-quickaccess-service-override": "8.0.3", - "@vscode/iconv-lite-umd": "0.7.0", - "jschardet": "3.1.3" + "@codingame/monaco-vscode-keybindings-service-override": "11.1.2", + "@codingame/monaco-vscode-notifications-workbench-common": "11.1.2", + "@codingame/monaco-vscode-quickaccess-service-override": "11.1.2", + "@codingame/monaco-vscode-view-banner-service-override": "11.1.2", + "@codingame/monaco-vscode-view-common-service-override": "11.1.2", + "@codingame/monaco-vscode-view-common-views-workbench-common": "11.1.2", + "@codingame/monaco-vscode-view-status-bar-service-override": "11.1.2", + "@codingame/monaco-vscode-view-title-bar-service-override": "11.1.2", + "vscode": "npm:@codingame/monaco-vscode-api@11.1.2" } }, "node_modules/@csstools/css-parser-algorithms": { @@ -8461,10 +6453,9 @@ } }, "node_modules/jschardet": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/jschardet/-/jschardet-3.1.3.tgz", - "integrity": "sha512-Q1PKVMK/uu+yjdlobgWIYkUOCR1SqUmW9m/eUJNNj4zI2N12i25v8fYpVf+zCakQeaTdBdhnZTFbVIAVZIVVOg==", - "license": "LGPL-2.1+", + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/jschardet/-/jschardet-3.1.4.tgz", + "integrity": "sha512-/kmVISmrwVwtyYU40iQUOp3SUPk2dhNCMsZBQX0R1/jZ8maaXJ/oZIzUOiyOqcgtLnETFKYChbJ5iDC/eWmFHg==", "engines": { "node": ">=0.1.90" } @@ -8884,6 +6875,17 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/marked": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/marked/-/marked-14.0.0.tgz", + "integrity": "sha512-uIj4+faQ+MgHgwUW1l2PsPglZLOLOT1uErt06dAPtx2kjteLAkbsd/0FiYg/MGS+i7ZKLb7w2WClxHkzOOuryQ==", + "bin": { + "marked": "bin/marked.js" + }, + "engines": { + "node": ">= 18" + } + }, "node_modules/mathml-tag-names": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz", @@ -9893,59 +7895,59 @@ }, "node_modules/monaco-editor": { "name": "@codingame/monaco-vscode-editor-api", - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-editor-api/-/monaco-vscode-editor-api-8.0.2.tgz", - "integrity": "sha512-uA0vYsupVQ/k3UW1Yj7WizdoUxo9WkEKcy83PGvm5yhhx/CMkA5b2tEhCjgqVyWTJVeAETI6ICHDsGuh+kmXcg==", - "license": "MIT", + "version": "11.1.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-editor-api/-/monaco-vscode-editor-api-11.1.2.tgz", + "integrity": "sha512-RYnk0VpL0uSvrFD9k1Oka+K4dP3rhptBzIFVKwjlvCxL0n/mdbECbrcTLKn7wpR11wfMMWvFDHqlNH7ri3rsXg==", "dependencies": { - "vscode": "npm:@codingame/monaco-vscode-api@8.0.2" + "vscode": "npm:@codingame/monaco-vscode-api@11.1.2" } }, "node_modules/monaco-editor-wrapper": { - "version": "5.5.2", - "resolved": "https://registry.npmjs.org/monaco-editor-wrapper/-/monaco-editor-wrapper-5.5.2.tgz", - "integrity": "sha512-YuoIV2hxqGpgYGFshsDNvItLMKeriCbFcroCo/NinrEDzr2PlWuIFbaKBr2r6to2sNq53d6iUpjz6P7PTe/nrw==", - "license": "MIT", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/monaco-editor-wrapper/-/monaco-editor-wrapper-6.1.0.tgz", + "integrity": "sha512-CvCBOKNYjS0X399trkg1a070Lzktd2SJUDRtf7rJBtJKcMOwJ6Myvhb0GmAJkeoiTV8s59cw9geaF85xgQM/0Q==", "dependencies": { - "@codingame/monaco-vscode-configuration-service-override": "~8.0.2", - "@codingame/monaco-vscode-editor-service-override": "~8.0.2", - "@codingame/monaco-vscode-language-pack-cs": "~8.0.2", - "@codingame/monaco-vscode-language-pack-de": "~8.0.2", - "@codingame/monaco-vscode-language-pack-es": "~8.0.2", - "@codingame/monaco-vscode-language-pack-fr": "~8.0.2", - "@codingame/monaco-vscode-language-pack-it": "~8.0.2", - "@codingame/monaco-vscode-language-pack-ja": "~8.0.2", - "@codingame/monaco-vscode-language-pack-ko": "~8.0.2", - "@codingame/monaco-vscode-language-pack-pl": "~8.0.2", - "@codingame/monaco-vscode-language-pack-pt-br": "~8.0.2", - "@codingame/monaco-vscode-language-pack-qps-ploc": "~8.0.2", - "@codingame/monaco-vscode-language-pack-ru": "~8.0.2", - "@codingame/monaco-vscode-language-pack-tr": "~8.0.2", - "@codingame/monaco-vscode-language-pack-zh-hans": "~8.0.2", - "@codingame/monaco-vscode-language-pack-zh-hant": "~8.0.2", - "@codingame/monaco-vscode-monarch-service-override": "~8.0.2", - "@codingame/monaco-vscode-textmate-service-override": "~8.0.2", - "@codingame/monaco-vscode-theme-defaults-default-extension": "~8.0.2", - "@codingame/monaco-vscode-theme-service-override": "~8.0.2", - "monaco-editor": "npm:@codingame/monaco-vscode-editor-api@~8.0.2", - "vscode": "npm:@codingame/monaco-vscode-api@~8.0.2", + "@codingame/monaco-vscode-chat-extensions-notebook-task-terminal-testing-common": "~11.1.2", + "@codingame/monaco-vscode-configuration-service-override": "~11.1.2", + "@codingame/monaco-vscode-editor-service-override": "~11.1.2", + "@codingame/monaco-vscode-language-pack-cs": "~11.1.2", + "@codingame/monaco-vscode-language-pack-de": "~11.1.2", + "@codingame/monaco-vscode-language-pack-es": "~11.1.2", + "@codingame/monaco-vscode-language-pack-fr": "~11.1.2", + "@codingame/monaco-vscode-language-pack-it": "~11.1.2", + "@codingame/monaco-vscode-language-pack-ja": "~11.1.2", + "@codingame/monaco-vscode-language-pack-ko": "~11.1.2", + "@codingame/monaco-vscode-language-pack-pl": "~11.1.2", + "@codingame/monaco-vscode-language-pack-pt-br": "~11.1.2", + "@codingame/monaco-vscode-language-pack-qps-ploc": "~11.1.2", + "@codingame/monaco-vscode-language-pack-ru": "~11.1.2", + "@codingame/monaco-vscode-language-pack-tr": "~11.1.2", + "@codingame/monaco-vscode-language-pack-zh-hans": "~11.1.2", + "@codingame/monaco-vscode-language-pack-zh-hant": "~11.1.2", + "@codingame/monaco-vscode-monarch-service-override": "~11.1.2", + "@codingame/monaco-vscode-textmate-service-override": "~11.1.2", + "@codingame/monaco-vscode-theme-defaults-default-extension": "~11.1.2", + "@codingame/monaco-vscode-theme-service-override": "~11.1.2", + "@codingame/monaco-vscode-views-service-override": "~11.1.2", + "@codingame/monaco-vscode-workbench-service-override": "~11.1.2", + "monaco-editor": "npm:@codingame/monaco-vscode-editor-api@~11.1.2", + "vscode": "npm:@codingame/monaco-vscode-api@~11.1.2", "vscode-languageclient": "~9.0.1", - "vscode-languageserver-protocol": "~3.17.5", - "vscode-ws-jsonrpc": "~3.3.2" + "vscode-languageserver-protocol": "~3.17.5" + }, + "engines": { + "node": ">=18.19.0", + "npm": ">=10.2.3" }, "peerDependencies": { - "monaco-editor": "npm:@codingame/monaco-vscode-editor-api@~8.0.2", - "monaco-languageclient": "~8.8.2", - "vscode": "npm:@codingame/monaco-vscode-api@~8.0.2" + "monaco-languageclient": "~9.1.0", + "vscode-ws-jsonrpc": "~3.4.0" }, "peerDependenciesMeta": { - "monaco-editor": { - "optional": false - }, "monaco-languageclient": { "optional": false }, - "vscode": { + "vscode-ws-jsonrpc": { "optional": false } } @@ -9966,33 +7968,612 @@ } }, "node_modules/monaco-languageclient": { - "version": "8.8.2", - "resolved": "https://registry.npmjs.org/monaco-languageclient/-/monaco-languageclient-8.8.2.tgz", - "integrity": "sha512-qE5LaHcTELjGMbq3iwBq1DqBEjzEYsPHaQUeAqNmGAFyMEJ0O+wldXAQgAqfB+oWrh2xmSiFcizmXqRawrx8oQ==", - "license": "MIT", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/monaco-languageclient/-/monaco-languageclient-9.1.0.tgz", + "integrity": "sha512-n6NCu3XSdiFbOSraczT1CazEQYFUguEEFkSVwnOz/iJa6kDRr8uPirrYLbVg/SibiOpvU+AwEX2kGhJZsu5VHQ==", "dependencies": { - "@codingame/monaco-vscode-extensions-service-override": "~8.0.2", - "@codingame/monaco-vscode-languages-service-override": "~8.0.2", - "@codingame/monaco-vscode-localization-service-override": "~8.0.2", - "@codingame/monaco-vscode-model-service-override": "~8.0.2", - "monaco-editor": "npm:@codingame/monaco-vscode-editor-api@~8.0.2", - "vscode": "npm:@codingame/monaco-vscode-api@~8.0.2", + "monaco-editor": "npm:@codingame/monaco-vscode-editor-api@~11.1.2", + "vscode": "npm:@codingame/monaco-vscode-api@~11.1.2", "vscode-languageclient": "~9.0.1" }, "engines": { - "node": ">=16.11.0", - "npm": ">=9.0.0" + "node": ">=18.19.0", + "npm": ">=10.2.3" }, "peerDependencies": { - "monaco-editor": "npm:@codingame/monaco-vscode-editor-api@~8.0.2", - "vscode": "npm:@codingame/monaco-vscode-api@~8.0.2" + "@codingame/monaco-vscode-accessibility-service-override": "~11.1.2", + "@codingame/monaco-vscode-all-default-extensions": "~11.1.2", + "@codingame/monaco-vscode-all-language-default-extensions": "~11.1.2", + "@codingame/monaco-vscode-all-language-feature-default-extensions": "~11.1.2", + "@codingame/monaco-vscode-api": "~11.1.2", + "@codingame/monaco-vscode-base-service-override": "~11.1.2", + "@codingame/monaco-vscode-bat-default-extension": "~11.1.2", + "@codingame/monaco-vscode-chat-extensions-notebook-common": "~11.1.2", + "@codingame/monaco-vscode-chat-extensions-notebook-task-terminal-testing-common": "~11.1.2", + "@codingame/monaco-vscode-chat-service-override": "~11.1.2", + "@codingame/monaco-vscode-clojure-default-extension": "~11.1.2", + "@codingame/monaco-vscode-coffeescript-default-extension": "~11.1.2", + "@codingame/monaco-vscode-comments-extensions-common": "~11.1.2", + "@codingame/monaco-vscode-configuration-editing-default-extension": "~11.1.2", + "@codingame/monaco-vscode-configuration-service-override": "~11.1.2", + "@codingame/monaco-vscode-cpp-default-extension": "~11.1.2", + "@codingame/monaco-vscode-csharp-default-extension": "~11.1.2", + "@codingame/monaco-vscode-css-default-extension": "~11.1.2", + "@codingame/monaco-vscode-css-language-features-default-extension": "~11.1.2", + "@codingame/monaco-vscode-dart-default-extension": "~11.1.2", + "@codingame/monaco-vscode-debug-service-override": "~11.1.2", + "@codingame/monaco-vscode-dialogs-service-override": "~11.1.2", + "@codingame/monaco-vscode-diff-default-extension": "~11.1.2", + "@codingame/monaco-vscode-docker-default-extension": "~11.1.2", + "@codingame/monaco-vscode-editor-api": "~11.1.2", + "@codingame/monaco-vscode-editor-service-override": "~11.1.2", + "@codingame/monaco-vscode-emmet-default-extension": "~11.1.2", + "@codingame/monaco-vscode-environment-service-override": "~11.1.2", + "@codingame/monaco-vscode-explorer-service-override": "~11.1.2", + "@codingame/monaco-vscode-extension-editing-default-extension": "~11.1.2", + "@codingame/monaco-vscode-extensions-service-override": "~11.1.2", + "@codingame/monaco-vscode-files-service-override": "~11.1.2", + "@codingame/monaco-vscode-fsharp-default-extension": "~11.1.2", + "@codingame/monaco-vscode-git-base-default-extension": "~11.1.2", + "@codingame/monaco-vscode-github-authentication-default-extension": "~11.1.2", + "@codingame/monaco-vscode-go-default-extension": "~11.1.2", + "@codingame/monaco-vscode-groovy-default-extension": "~11.1.2", + "@codingame/monaco-vscode-handlebars-default-extension": "~11.1.2", + "@codingame/monaco-vscode-hlsl-default-extension": "~11.1.2", + "@codingame/monaco-vscode-host-service-override": "~11.1.2", + "@codingame/monaco-vscode-html-default-extension": "~11.1.2", + "@codingame/monaco-vscode-html-language-features-default-extension": "~11.1.2", + "@codingame/monaco-vscode-ini-default-extension": "~11.1.2", + "@codingame/monaco-vscode-ipynb-default-extension": "~11.1.2", + "@codingame/monaco-vscode-java-default-extension": "~11.1.2", + "@codingame/monaco-vscode-javascript-default-extension": "~11.1.2", + "@codingame/monaco-vscode-json-default-extension": "~11.1.2", + "@codingame/monaco-vscode-json-language-features-default-extension": "~11.1.2", + "@codingame/monaco-vscode-julia-default-extension": "~11.1.2", + "@codingame/monaco-vscode-keybindings-service-override": "~11.1.2", + "@codingame/monaco-vscode-language-pack-cs": "~11.1.2", + "@codingame/monaco-vscode-language-pack-de": "~11.1.2", + "@codingame/monaco-vscode-language-pack-es": "~11.1.2", + "@codingame/monaco-vscode-language-pack-fr": "~11.1.2", + "@codingame/monaco-vscode-language-pack-it": "~11.1.2", + "@codingame/monaco-vscode-language-pack-ja": "~11.1.2", + "@codingame/monaco-vscode-language-pack-ko": "~11.1.2", + "@codingame/monaco-vscode-language-pack-pl": "~11.1.2", + "@codingame/monaco-vscode-language-pack-pt-br": "~11.1.2", + "@codingame/monaco-vscode-language-pack-qps-ploc": "~11.1.2", + "@codingame/monaco-vscode-language-pack-ru": "~11.1.2", + "@codingame/monaco-vscode-language-pack-tr": "~11.1.2", + "@codingame/monaco-vscode-language-pack-zh-hans": "~11.1.2", + "@codingame/monaco-vscode-language-pack-zh-hant": "~11.1.2", + "@codingame/monaco-vscode-languages-service-override": "~11.1.2", + "@codingame/monaco-vscode-latex-default-extension": "~11.1.2", + "@codingame/monaco-vscode-layout-service-override": "~11.1.2", + "@codingame/monaco-vscode-less-default-extension": "~11.1.2", + "@codingame/monaco-vscode-lifecycle-service-override": "~11.1.2", + "@codingame/monaco-vscode-localization-service-override": "~11.1.2", + "@codingame/monaco-vscode-log-default-extension": "~11.1.2", + "@codingame/monaco-vscode-log-service-override": "~11.1.2", + "@codingame/monaco-vscode-lua-default-extension": "~11.1.2", + "@codingame/monaco-vscode-make-default-extension": "~11.1.2", + "@codingame/monaco-vscode-markdown-basics-default-extension": "~11.1.2", + "@codingame/monaco-vscode-markdown-language-features-default-extension": "~11.1.2", + "@codingame/monaco-vscode-markdown-math-default-extension": "~11.1.2", + "@codingame/monaco-vscode-markers-service-override": "~11.1.2", + "@codingame/monaco-vscode-media-preview-default-extension": "~11.1.2", + "@codingame/monaco-vscode-merge-conflict-default-extension": "~11.1.2", + "@codingame/monaco-vscode-microsoft-authentication-default-extension": "~11.1.2", + "@codingame/monaco-vscode-model-service-override": "~11.1.2", + "@codingame/monaco-vscode-monarch-service-override": "~11.1.2", + "@codingame/monaco-vscode-notebook-renderers-default-extension": "~11.1.2", + "@codingame/monaco-vscode-notebook-service-override": "~11.1.2", + "@codingame/monaco-vscode-notifications-service-override": "~11.1.2", + "@codingame/monaco-vscode-npm-default-extension": "~11.1.2", + "@codingame/monaco-vscode-objective-c-default-extension": "~11.1.2", + "@codingame/monaco-vscode-outline-service-override": "~11.1.2", + "@codingame/monaco-vscode-output-service-override": "~11.1.2", + "@codingame/monaco-vscode-perl-default-extension": "~11.1.2", + "@codingame/monaco-vscode-php-default-extension": "~11.1.2", + "@codingame/monaco-vscode-powershell-default-extension": "~11.1.2", + "@codingame/monaco-vscode-preferences-service-override": "~11.1.2", + "@codingame/monaco-vscode-pug-default-extension": "~11.1.2", + "@codingame/monaco-vscode-python-default-extension": "~11.1.2", + "@codingame/monaco-vscode-quickaccess-service-override": "~11.1.2", + "@codingame/monaco-vscode-r-default-extension": "~11.1.2", + "@codingame/monaco-vscode-razor-default-extension": "~11.1.2", + "@codingame/monaco-vscode-references-view-default-extension": "~11.1.2", + "@codingame/monaco-vscode-restructuredtext-default-extension": "~11.1.2", + "@codingame/monaco-vscode-rollup-extension-directory-plugin": "~11.1.2", + "@codingame/monaco-vscode-rollup-vsix-plugin": "~11.1.2", + "@codingame/monaco-vscode-ruby-default-extension": "~11.1.2", + "@codingame/monaco-vscode-rust-default-extension": "~11.1.2", + "@codingame/monaco-vscode-scss-default-extension": "~11.1.2", + "@codingame/monaco-vscode-search-result-default-extension": "~11.1.2", + "@codingame/monaco-vscode-search-service-override": "~11.1.2", + "@codingame/monaco-vscode-server": "~11.1.2", + "@codingame/monaco-vscode-shaderlab-default-extension": "~11.1.2", + "@codingame/monaco-vscode-share-service-override": "~11.1.2", + "@codingame/monaco-vscode-shellscript-default-extension": "~11.1.2", + "@codingame/monaco-vscode-simple-browser-default-extension": "~11.1.2", + "@codingame/monaco-vscode-snippets-service-override": "~11.1.2", + "@codingame/monaco-vscode-sql-default-extension": "~11.1.2", + "@codingame/monaco-vscode-standalone-css-language-features": "~11.1.2", + "@codingame/monaco-vscode-standalone-html-language-features": "~11.1.2", + "@codingame/monaco-vscode-standalone-json-language-features": "~11.1.2", + "@codingame/monaco-vscode-standalone-languages": "~11.1.2", + "@codingame/monaco-vscode-standalone-typescript-language-features": "~11.1.2", + "@codingame/monaco-vscode-storage-service-override": "~11.1.2", + "@codingame/monaco-vscode-swift-default-extension": "~11.1.2", + "@codingame/monaco-vscode-task-service-override": "~11.1.2", + "@codingame/monaco-vscode-terminal-service-override": "~11.1.2", + "@codingame/monaco-vscode-testing-service-override": "~11.1.2", + "@codingame/monaco-vscode-textmate-service-override": "~11.1.2", + "@codingame/monaco-vscode-theme-abyss-default-extension": "~11.1.2", + "@codingame/monaco-vscode-theme-defaults-default-extension": "~11.1.2", + "@codingame/monaco-vscode-theme-kimbie-dark-default-extension": "~11.1.2", + "@codingame/monaco-vscode-theme-monokai-default-extension": "~11.1.2", + "@codingame/monaco-vscode-theme-monokai-dimmed-default-extension": "~11.1.2", + "@codingame/monaco-vscode-theme-quietlight-default-extension": "~11.1.2", + "@codingame/monaco-vscode-theme-red-default-extension": "~11.1.2", + "@codingame/monaco-vscode-theme-service-override": "~11.1.2", + "@codingame/monaco-vscode-theme-seti-default-extension": "~11.1.2", + "@codingame/monaco-vscode-theme-solarized-dark-default-extension": "~11.1.2", + "@codingame/monaco-vscode-theme-solarized-light-default-extension": "~11.1.2", + "@codingame/monaco-vscode-theme-tomorrow-night-blue-default-extension": "~11.1.2", + "@codingame/monaco-vscode-timeline-service-override": "~11.1.2", + "@codingame/monaco-vscode-typescript-basics-default-extension": "~11.1.2", + "@codingame/monaco-vscode-typescript-language-features-default-extens": "~11.1.2", + "@codingame/monaco-vscode-update-service-override": "~11.1.2", + "@codingame/monaco-vscode-vb-default-extension": "~11.1.2", + "@codingame/monaco-vscode-views-service-override": "~11.1.2", + "@codingame/monaco-vscode-welcome-service-override": "~11.1.2", + "@codingame/monaco-vscode-workbench-service-override": "~11.1.2", + "@codingame/monaco-vscode-xml-default-extension": "~11.1.2", + "@codingame/monaco-vscode-yaml-default-extension": "~11.1.2" }, "peerDependenciesMeta": { - "monaco-editor": { + "@codingame/monaco-vscode-accessibility-service-override": { + "optional": true + }, + "@codingame/monaco-vscode-all-default-extensions": { + "optional": true + }, + "@codingame/monaco-vscode-all-language-default-extensions": { + "optional": true + }, + "@codingame/monaco-vscode-all-language-feature-default-extensions": { + "optional": true + }, + "@codingame/monaco-vscode-api": { "optional": false }, - "vscode": { + "@codingame/monaco-vscode-base-service-override": { + "optional": true + }, + "@codingame/monaco-vscode-bat-default-extension": { + "optional": true + }, + "@codingame/monaco-vscode-chat-extensions-notebook-common": { + "optional": true + }, + "@codingame/monaco-vscode-chat-extensions-notebook-task-terminal-testing-common": { + "optional": true + }, + "@codingame/monaco-vscode-chat-service-override": { + "optional": true + }, + "@codingame/monaco-vscode-clojure-default-extension": { + "optional": true + }, + "@codingame/monaco-vscode-coffeescript-default-extension": { + "optional": true + }, + "@codingame/monaco-vscode-comments-extensions-common": { + "optional": true + }, + "@codingame/monaco-vscode-configuration-editing-default-extension": { + "optional": true + }, + "@codingame/monaco-vscode-configuration-service-override": { "optional": false + }, + "@codingame/monaco-vscode-cpp-default-extension": { + "optional": true + }, + "@codingame/monaco-vscode-csharp-default-extension": { + "optional": true + }, + "@codingame/monaco-vscode-css-default-extension": { + "optional": true + }, + "@codingame/monaco-vscode-css-language-features-default-extension": { + "optional": true + }, + "@codingame/monaco-vscode-dart-default-extension": { + "optional": true + }, + "@codingame/monaco-vscode-debug-service-override": { + "optional": true + }, + "@codingame/monaco-vscode-dialogs-service-override": { + "optional": true + }, + "@codingame/monaco-vscode-diff-default-extension": { + "optional": true + }, + "@codingame/monaco-vscode-docker-default-extension": { + "optional": true + }, + "@codingame/monaco-vscode-editor-api": { + "optional": false + }, + "@codingame/monaco-vscode-editor-service-override": { + "optional": true + }, + "@codingame/monaco-vscode-emmet-default-extension": { + "optional": true + }, + "@codingame/monaco-vscode-environment-service-override": { + "optional": true + }, + "@codingame/monaco-vscode-explorer-service-override": { + "optional": true + }, + "@codingame/monaco-vscode-extension-editing-default-extension": { + "optional": true + }, + "@codingame/monaco-vscode-extensions-service-override": { + "optional": false + }, + "@codingame/monaco-vscode-files-service-override": { + "optional": true + }, + "@codingame/monaco-vscode-fsharp-default-extension": { + "optional": true + }, + "@codingame/monaco-vscode-git-base-default-extension": { + "optional": true + }, + "@codingame/monaco-vscode-github-authentication-default-extension": { + "optional": true + }, + "@codingame/monaco-vscode-go-default-extension": { + "optional": true + }, + "@codingame/monaco-vscode-groovy-default-extension": { + "optional": true + }, + "@codingame/monaco-vscode-handlebars-default-extension": { + "optional": true + }, + "@codingame/monaco-vscode-hlsl-default-extension": { + "optional": true + }, + "@codingame/monaco-vscode-host-service-override": { + "optional": true + }, + "@codingame/monaco-vscode-html-default-extension": { + "optional": true + }, + "@codingame/monaco-vscode-html-language-features-default-extension": { + "optional": true + }, + "@codingame/monaco-vscode-ini-default-extension": { + "optional": true + }, + "@codingame/monaco-vscode-ipynb-default-extension": { + "optional": true + }, + "@codingame/monaco-vscode-java-default-extension": { + "optional": true + }, + "@codingame/monaco-vscode-javascript-default-extension": { + "optional": true + }, + "@codingame/monaco-vscode-json-default-extension": { + "optional": true + }, + "@codingame/monaco-vscode-json-language-features-default-extension": { + "optional": true + }, + "@codingame/monaco-vscode-julia-default-extension": { + "optional": true + }, + "@codingame/monaco-vscode-keybindings-service-override": { + "optional": true + }, + "@codingame/monaco-vscode-language-pack-cs": { + "optional": true + }, + "@codingame/monaco-vscode-language-pack-de": { + "optional": true + }, + "@codingame/monaco-vscode-language-pack-es": { + "optional": true + }, + "@codingame/monaco-vscode-language-pack-fr": { + "optional": true + }, + "@codingame/monaco-vscode-language-pack-it": { + "optional": true + }, + "@codingame/monaco-vscode-language-pack-ja": { + "optional": true + }, + "@codingame/monaco-vscode-language-pack-ko": { + "optional": true + }, + "@codingame/monaco-vscode-language-pack-pl": { + "optional": true + }, + "@codingame/monaco-vscode-language-pack-pt-br": { + "optional": true + }, + "@codingame/monaco-vscode-language-pack-qps-ploc": { + "optional": true + }, + "@codingame/monaco-vscode-language-pack-ru": { + "optional": true + }, + "@codingame/monaco-vscode-language-pack-tr": { + "optional": true + }, + "@codingame/monaco-vscode-language-pack-zh-hans": { + "optional": true + }, + "@codingame/monaco-vscode-language-pack-zh-hant": { + "optional": true + }, + "@codingame/monaco-vscode-languages-service-override": { + "optional": false + }, + "@codingame/monaco-vscode-latex-default-extension": { + "optional": true + }, + "@codingame/monaco-vscode-layout-service-override": { + "optional": true + }, + "@codingame/monaco-vscode-less-default-extension": { + "optional": true + }, + "@codingame/monaco-vscode-lifecycle-service-override": { + "optional": true + }, + "@codingame/monaco-vscode-localization-service-override": { + "optional": false + }, + "@codingame/monaco-vscode-log-default-extension": { + "optional": true + }, + "@codingame/monaco-vscode-log-service-override": { + "optional": false + }, + "@codingame/monaco-vscode-lua-default-extension": { + "optional": true + }, + "@codingame/monaco-vscode-make-default-extension": { + "optional": true + }, + "@codingame/monaco-vscode-markdown-basics-default-extension": { + "optional": true + }, + "@codingame/monaco-vscode-markdown-language-features-default-extension": { + "optional": true + }, + "@codingame/monaco-vscode-markdown-math-default-extension": { + "optional": true + }, + "@codingame/monaco-vscode-markers-service-override": { + "optional": true + }, + "@codingame/monaco-vscode-media-preview-default-extension": { + "optional": true + }, + "@codingame/monaco-vscode-merge-conflict-default-extension": { + "optional": true + }, + "@codingame/monaco-vscode-microsoft-authentication-default-extension": { + "optional": true + }, + "@codingame/monaco-vscode-model-service-override": { + "optional": false + }, + "@codingame/monaco-vscode-monarch-service-override": { + "optional": true + }, + "@codingame/monaco-vscode-notebook-renderers-default-extension": { + "optional": true + }, + "@codingame/monaco-vscode-notebook-service-override": { + "optional": true + }, + "@codingame/monaco-vscode-notifications-service-override": { + "optional": true + }, + "@codingame/monaco-vscode-npm-default-extension": { + "optional": true + }, + "@codingame/monaco-vscode-objective-c-default-extension": { + "optional": true + }, + "@codingame/monaco-vscode-outline-service-override": { + "optional": true + }, + "@codingame/monaco-vscode-output-service-override": { + "optional": true + }, + "@codingame/monaco-vscode-perl-default-extension": { + "optional": true + }, + "@codingame/monaco-vscode-php-default-extension": { + "optional": true + }, + "@codingame/monaco-vscode-powershell-default-extension": { + "optional": true + }, + "@codingame/monaco-vscode-preferences-service-override": { + "optional": true + }, + "@codingame/monaco-vscode-pug-default-extension": { + "optional": true + }, + "@codingame/monaco-vscode-python-default-extension": { + "optional": true + }, + "@codingame/monaco-vscode-quickaccess-service-override": { + "optional": true + }, + "@codingame/monaco-vscode-r-default-extension": { + "optional": true + }, + "@codingame/monaco-vscode-razor-default-extension": { + "optional": true + }, + "@codingame/monaco-vscode-references-view-default-extension": { + "optional": true + }, + "@codingame/monaco-vscode-restructuredtext-default-extension": { + "optional": true + }, + "@codingame/monaco-vscode-rollup-extension-directory-plugin": { + "optional": true + }, + "@codingame/monaco-vscode-rollup-vsix-plugin": { + "optional": true + }, + "@codingame/monaco-vscode-ruby-default-extension": { + "optional": true + }, + "@codingame/monaco-vscode-rust-default-extension": { + "optional": true + }, + "@codingame/monaco-vscode-scss-default-extension": { + "optional": true + }, + "@codingame/monaco-vscode-search-result-default-extension": { + "optional": true + }, + "@codingame/monaco-vscode-search-service-override": { + "optional": true + }, + "@codingame/monaco-vscode-server": { + "optional": true + }, + "@codingame/monaco-vscode-shaderlab-default-extension": { + "optional": true + }, + "@codingame/monaco-vscode-share-service-override": { + "optional": true + }, + "@codingame/monaco-vscode-shellscript-default-extension": { + "optional": true + }, + "@codingame/monaco-vscode-simple-browser-default-extension": { + "optional": true + }, + "@codingame/monaco-vscode-snippets-service-override": { + "optional": true + }, + "@codingame/monaco-vscode-sql-default-extension": { + "optional": true + }, + "@codingame/monaco-vscode-standalone-css-language-features": { + "optional": true + }, + "@codingame/monaco-vscode-standalone-html-language-features": { + "optional": true + }, + "@codingame/monaco-vscode-standalone-json-language-features": { + "optional": true + }, + "@codingame/monaco-vscode-standalone-languages": { + "optional": true + }, + "@codingame/monaco-vscode-standalone-typescript-language-features": { + "optional": true + }, + "@codingame/monaco-vscode-storage-service-override": { + "optional": true + }, + "@codingame/monaco-vscode-swift-default-extension": { + "optional": true + }, + "@codingame/monaco-vscode-task-service-override": { + "optional": true + }, + "@codingame/monaco-vscode-terminal-service-override": { + "optional": true + }, + "@codingame/monaco-vscode-testing-service-override": { + "optional": true + }, + "@codingame/monaco-vscode-textmate-service-override": { + "optional": true + }, + "@codingame/monaco-vscode-theme-abyss-default-extension": { + "optional": true + }, + "@codingame/monaco-vscode-theme-defaults-default-extension": { + "optional": true + }, + "@codingame/monaco-vscode-theme-kimbie-dark-default-extension": { + "optional": true + }, + "@codingame/monaco-vscode-theme-monokai-default-extension": { + "optional": true + }, + "@codingame/monaco-vscode-theme-monokai-dimmed-default-extension": { + "optional": true + }, + "@codingame/monaco-vscode-theme-quietlight-default-extension": { + "optional": true + }, + "@codingame/monaco-vscode-theme-red-default-extension": { + "optional": true + }, + "@codingame/monaco-vscode-theme-service-override": { + "optional": true + }, + "@codingame/monaco-vscode-theme-seti-default-extension": { + "optional": true + }, + "@codingame/monaco-vscode-theme-solarized-dark-default-extension": { + "optional": true + }, + "@codingame/monaco-vscode-theme-solarized-light-default-extension": { + "optional": true + }, + "@codingame/monaco-vscode-theme-tomorrow-night-blue-default-extension": { + "optional": true + }, + "@codingame/monaco-vscode-timeline-service-override": { + "optional": true + }, + "@codingame/monaco-vscode-typescript-basics-default-extension": { + "optional": true + }, + "@codingame/monaco-vscode-typescript-language-features-default-extens": { + "optional": true + }, + "@codingame/monaco-vscode-update-service-override": { + "optional": true + }, + "@codingame/monaco-vscode-vb-default-extension": { + "optional": true + }, + "@codingame/monaco-vscode-views-service-override": { + "optional": true + }, + "@codingame/monaco-vscode-welcome-service-override": { + "optional": true + }, + "@codingame/monaco-vscode-workbench-service-override": { + "optional": true + }, + "@codingame/monaco-vscode-xml-default-extension": { + "optional": true + }, + "@codingame/monaco-vscode-yaml-default-extension": { + "optional": true } } }, @@ -13819,20 +12400,20 @@ }, "node_modules/vscode": { "name": "@codingame/monaco-vscode-api", - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-api/-/monaco-vscode-api-8.0.2.tgz", - "integrity": "sha512-n9UZrJk4u4vwZxzVfLDLG93XceEsGAjs6clkKwFVX/dbVjOvxbyt6O7m2QL6+kbF17SBHBUHiRiOgD3q2FBaJA==", - "license": "MIT", + "version": "11.1.2", + "resolved": "https://registry.npmjs.org/@codingame/monaco-vscode-api/-/monaco-vscode-api-11.1.2.tgz", + "integrity": "sha512-8UHz2uH103P+8eXDRAWo1e1PRfMN5F5dR4s/Mb9fX18Qzr8+/GkpWJHhT1t1cd5xY8XwIiH7YyMz6pL0aDOikw==", "dependencies": { - "@codingame/monaco-vscode-base-service-override": "8.0.2", - "@codingame/monaco-vscode-environment-service-override": "8.0.2", - "@codingame/monaco-vscode-extensions-service-override": "8.0.2", - "@codingame/monaco-vscode-files-service-override": "8.0.2", - "@codingame/monaco-vscode-host-service-override": "8.0.2", - "@codingame/monaco-vscode-layout-service-override": "8.0.2", - "@codingame/monaco-vscode-quickaccess-service-override": "8.0.2", + "@codingame/monaco-vscode-base-service-override": "11.1.2", + "@codingame/monaco-vscode-environment-service-override": "11.1.2", + "@codingame/monaco-vscode-extensions-service-override": "11.1.2", + "@codingame/monaco-vscode-files-service-override": "11.1.2", + "@codingame/monaco-vscode-host-service-override": "11.1.2", + "@codingame/monaco-vscode-layout-service-override": "11.1.2", + "@codingame/monaco-vscode-quickaccess-service-override": "11.1.2", "@vscode/iconv-lite-umd": "0.7.0", - "jschardet": "3.1.3" + "jschardet": "3.1.4", + "marked": "~14.0.0" } }, "node_modules/vscode-jsonrpc": { @@ -13884,14 +12465,12 @@ "node_modules/vscode-oniguruma": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/vscode-oniguruma/-/vscode-oniguruma-1.7.0.tgz", - "integrity": "sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA==", - "license": "MIT" + "integrity": "sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA==" }, "node_modules/vscode-textmate": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-9.0.0.tgz", - "integrity": "sha512-Cl65diFGxz7gpwbav10HqiY/eVYTO1sjQpmRmV991Bj7wAoOAjGQ97PpQcXorDE2Uc4hnGWLY17xme+5t6MlSg==", - "license": "MIT" + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-9.1.0.tgz", + "integrity": "sha512-lxKSVp2DkFOx9RDAvpiYUrB9/KT1fAfi1aE8CBGstP8N7rLF+Seifj8kDA198X0mYj1CjQUC+81+nQf8CO0nVA==" }, "node_modules/vscode-uri": { "version": "3.0.8", @@ -13899,23 +12478,21 @@ "integrity": "sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==" }, "node_modules/vscode-ws-jsonrpc": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/vscode-ws-jsonrpc/-/vscode-ws-jsonrpc-3.3.2.tgz", - "integrity": "sha512-jxGHxAuow67sNRkkS2svsW00ZACX+Zrbury9Au2A22px6sg4pe858Nnnwvtg0Pm4D0L/W9Yzn7N7X3R/RIMxsQ==", - "license": "MIT", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/vscode-ws-jsonrpc/-/vscode-ws-jsonrpc-3.4.0.tgz", + "integrity": "sha512-jkNZvX0LdHt4skPxMw/jFePr3jRCJU6ZmO28oPoQ7RwNSkwU3uN8mgtxACYEbOY68bYmi/b/uJzhxewKCz1P4w==", "dependencies": { "vscode-jsonrpc": "~8.2.1" }, "engines": { - "node": ">=16.11.0", - "npm": ">=8.0.0" + "node": ">=18.19.0", + "npm": ">=10.2.3" } }, "node_modules/vscode-ws-jsonrpc/node_modules/vscode-jsonrpc": { "version": "8.2.1", "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-8.2.1.tgz", "integrity": "sha512-kdjOSJ2lLIn7r1rtrMbbNCHjyMPfRnowdKjBQ+mGq6NAW5QY2bEZC/khaC5OR8svbbjvLEaIXkOq45e2X9BIbQ==", - "license": "MIT", "engines": { "node": ">=14.0.0" } @@ -13991,9 +12568,9 @@ "integrity": "sha512-cqc+tblQVHVrc8wNA4esVYD1Dv59XQJ4mHXFFPa8Lx5UjXv7FO/0VQxyQuRyXaP/V6J6DDy0oeN107eFNLxrBg==" }, "node_modules/windmill-parser-wasm-regex": { - "version": "1.435.2", - "resolved": "https://registry.npmjs.org/windmill-parser-wasm-regex/-/windmill-parser-wasm-regex-1.435.2.tgz", - "integrity": "sha512-kQShKPNjXok8jV7b7llfvKhypHfqePwiKgTHm8MlzBt4BZC87xrQ7TH0eS9h7OSK9Q98H9fIiUr2AbN8zTCraA==" + "version": "1.439.0", + "resolved": "https://registry.npmjs.org/windmill-parser-wasm-regex/-/windmill-parser-wasm-regex-1.439.0.tgz", + "integrity": "sha512-v7vcEOWurGbqvoTdtQ8wauyUYeuQExRCmr7phPtwUwD+1cNbqDrS11kM8p2Na3DXjL9RqGAGjd6uRjNSccZjjQ==" }, "node_modules/windmill-parser-wasm-rust": { "version": "1.429.0", diff --git a/frontend/package.json b/frontend/package.json index c8624d2b11..f469d841af 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -1,6 +1,6 @@ { "name": "windmill-components", - "version": "1.445.1", + "version": "1.447.6", "scripts": { "dev": "vite dev", "build": "vite build", @@ -86,15 +86,11 @@ "dependencies": { "@anthropic-ai/sdk": "^0.32.1", "@aws-crypto/sha256-js": "^4.0.0", - "@codingame/monaco-vscode-configuration-service-override": "~8.0.2", - "@codingame/monaco-vscode-files-service-override": "~8.0.2", - "@codingame/monaco-vscode-keybindings-service-override": "~8.0.2", - "@codingame/monaco-vscode-lifecycle-service-override": "~8.0.2", - "@codingame/monaco-vscode-localization-service-override": "~8.0.2", - "@codingame/monaco-vscode-standalone-css-language-features": "~8.0.2", - "@codingame/monaco-vscode-standalone-json-language-features": "~8.0.2", - "@codingame/monaco-vscode-standalone-languages": "~8.0.2", - "@codingame/monaco-vscode-standalone-typescript-language-features": "~8.0.2", + "@codingame/monaco-vscode-configuration-service-override": "~11.1.2", + "@codingame/monaco-vscode-standalone-css-language-features": "~11.1.2", + "@codingame/monaco-vscode-standalone-json-language-features": "~11.1.2", + "@codingame/monaco-vscode-standalone-languages": "~11.1.2", + "@codingame/monaco-vscode-standalone-typescript-language-features": "~11.1.2", "@json2csv/plainjs": "^7.0.6", "@leeoniya/ufuzzy": "^1.0.8", "@mistralai/mistralai": "^1.3.0", @@ -122,10 +118,10 @@ "highlight.js": "^11.8.0", "lucide-svelte": "^0.399.0", "minimatch": "^10.0.1", - "monaco-editor": "npm:@codingame/monaco-vscode-editor-api@~8.0.2", - "monaco-editor-wrapper": "^5.5.2", + "monaco-editor": "npm:@codingame/monaco-vscode-editor-api@~11.1.2", + "monaco-editor-wrapper": "^6.1.0", "monaco-graphql": "^1.6.0", - "monaco-languageclient": "~8.8.2", + "monaco-languageclient": "~9.1.0", "monaco-vim": "^0.4.1", "ol": "^7.4.0", "openai": "^4.57.2", @@ -142,15 +138,15 @@ "svelte-infinite-loading": "^1.4.0", "svelte-tiny-virtual-list": "^2.0.5", "tailwind-merge": "^1.13.2", - "vscode": "npm:@codingame/monaco-vscode-api@~8.0.2", + "vscode": "npm:@codingame/monaco-vscode-api@~11.1.2", "vscode-languageclient": "~9.0.1", "vscode-uri": "~3.0.8", - "vscode-ws-jsonrpc": "~3.3.2", + "vscode-ws-jsonrpc": "~3.4.0", "windmill-parser-wasm-csharp": "^1.437.1", "windmill-parser-wasm-go": "^1.429.0", "windmill-parser-wasm-php": "^1.429.0", "windmill-parser-wasm-py": "^1.429.0", - "windmill-parser-wasm-regex": "^1.435.2", + "windmill-parser-wasm-regex": "^1.439.0", "windmill-parser-wasm-rust": "^1.429.0", "windmill-parser-wasm-ts": "^1.429.0", "windmill-parser-wasm-yaml": "^1.429.0", diff --git a/frontend/src/lib/autosize.ts b/frontend/src/lib/autosize.ts index 5273d2e4ac..9ea2f925cd 100644 --- a/frontend/src/lib/autosize.ts +++ b/frontend/src/lib/autosize.ts @@ -16,25 +16,17 @@ export const action = (node) => { const setInitialHeight = () => { let height = 0 - - const style = window.getComputedStyle(node) - const visible = style?.getPropertyValue('visibility') === 'hidden' - - if (visible === false) { - return - } - if (node.value) { - height = node.scrollHeight + height = Math.max(node.scrollHeight ?? 0, 30) + 2 } else { if (node.placeholder) { node.value = node.placeholder - height = node.scrollHeight + height = Math.max(node.scrollHeight ?? 0, 30) + 2 node.value = '' } else { node.value = '|' node.style.height = '0px' - height = node.scrollHeight + height = Math.max(node.scrollHeight ?? 0, 30) + 2 node.value = '' } } diff --git a/frontend/src/lib/components/AppConnectInner.svelte b/frontend/src/lib/components/AppConnectInner.svelte index bd10721792..6a756071dd 100644 --- a/frontend/src/lib/components/AppConnectInner.svelte +++ b/frontend/src/lib/components/AppConnectInner.svelte @@ -41,7 +41,8 @@ 'bigquery', 'snowflake', 'mssql', - 'graphql' + 'graphql', + 'oracledb' ] let filter = '' diff --git a/frontend/src/lib/components/ArgInput.svelte b/frontend/src/lib/components/ArgInput.svelte index c2a45265a3..705da3e07c 100644 --- a/frontend/src/lib/components/ArgInput.svelte +++ b/frontend/src/lib/components/ArgInput.svelte @@ -7,7 +7,7 @@ getSchemaFromProperties } from '$lib/utils' import { DollarSign, Pipette, Plus, X } from 'lucide-svelte' - import { createEventDispatcher, tick } from 'svelte' + import { createEventDispatcher, onMount, tick } from 'svelte' import Multiselect from 'svelte-multiselect' import { fade } from 'svelte/transition' import JsonEditor from './apps/editor/settingsPanel/inputEditor/JsonEditor.svelte' @@ -97,6 +97,8 @@ export let otherArgs: Record = {} export let lightHeader = false + $: inputCat = computeInputCat(type, format, itemsType?.type, enum_, contentEncoding) + let oneOfSelected: string | undefined = undefined async function updateOneOfSelected(oneOf: SchemaProperty[] | undefined) { if ( @@ -114,12 +116,12 @@ } } } - $: updateOneOfSelected(oneOf) function updateOneOfSelectedValue(oneOfSelected: string | undefined) { if (oneOfSelected) { value = { label: oneOfSelected } } } + $: updateOneOfSelected(oneOf) $: updateOneOfSelectedValue(oneOfSelected) const dispatch = createEventDispatcher() @@ -133,8 +135,6 @@ let el: HTMLTextAreaElement | undefined = undefined - $: inputCat = computeInputCat(type, format, itemsType?.type, enum_, contentEncoding) - let rawValue: string | undefined = undefined function computeDefaultValue( @@ -168,8 +168,6 @@ } } - computeDefaultValue() - $: computeDefaultValue(value, inputCat, defaultValue, nullable) let lastValue: any = undefined @@ -219,14 +217,29 @@ oldDefaultValue = structuredClone(defaultValue) } - function evalValueToRaw() { - rawValue = + function isObjectCat(inputCat?: string) { + return ( inputCat === 'object' || inputCat === 'resource-object' || (inputCat == 'list' && !isListJson) - ? JSON.stringify(value, null, 2) - : undefined + ) } - evalValueToRaw() + function evalValueToRaw() { + rawValue = isObjectCat(inputCat) ? JSON.stringify(value, null, 2) : undefined + rawValue && editor?.getCode() != rawValue && editor?.setCode(rawValue) + // console.log('evalValueToRaw', value, rawValue, inputCat, label) + } + + $: inputCat && + isObjectCat(inputCat) && + rawValue == undefined && + value != undefined && + evalValueToRaw() + + onMount(() => { + computeDefaultValue() + // console.log('onMount', value, rawValue, inputCat) + evalValueToRaw() + }) function fileChanged(e: any, cb: (v: string | undefined) => void) { let t = e.target @@ -253,7 +266,7 @@ if (nullable && emptyString(v)) { error = '' valid && (valid = true) - } else if (required && (v == undefined || v == null || v === '')) { + } else if (required && (v == undefined || v == null || v === '') && inputCat != 'object') { error = 'Required' valid && (valid = false) } else { @@ -332,6 +345,7 @@ }} readOnlyMode={false} /> +
diff --git a/frontend/src/lib/components/AssignableTags.svelte b/frontend/src/lib/components/AssignableTags.svelte index 2326a0dd96..324728b32b 100644 --- a/frontend/src/lib/components/AssignableTags.svelte +++ b/frontend/src/lib/components/AssignableTags.svelte @@ -8,6 +8,7 @@ export let placement: 'bottom-end' | 'top-end' = 'bottom-end' export let color: 'nord' | 'dark' = 'dark' export let disabled = false + export let showWorkspaceRestriction = false - + diff --git a/frontend/src/lib/components/AssignableTagsInner.svelte b/frontend/src/lib/components/AssignableTagsInner.svelte index 19fff0a795..03f0254983 100644 --- a/frontend/src/lib/components/AssignableTagsInner.svelte +++ b/frontend/src/lib/components/AssignableTagsInner.svelte @@ -9,12 +9,16 @@ import { base } from '$lib/base' import { createEventDispatcher } from 'svelte' + export let showWorkspaceRestriction = false let newTag: string = '' let customTags: string[] | undefined = undefined async function loadCustomTags() { try { - customTags = (await WorkerService.getCustomTags()) ?? [] + customTags = + (await WorkerService.getCustomTags({ + showWorkspaceRestriction + })) ?? [] } catch (err) { sendUserToast(`Could not load global cache: ${err}`, true) } diff --git a/frontend/src/lib/components/AuthSettings.svelte b/frontend/src/lib/components/AuthSettings.svelte index 6eb4a50d03..195e760114 100644 --- a/frontend/src/lib/components/AuthSettings.svelte +++ b/frontend/src/lib/components/AuthSettings.svelte @@ -18,6 +18,7 @@ export let snowflakeAccountIdentifier = '' export let oauths: Record = {} + export let requirePreexistingUserForOauth: boolean = false const windmillBuiltins = [ 'github', @@ -47,8 +48,6 @@ let resourceName = '' let tab: 'sso' | 'oauth' | 'scim' = 'sso' - - let requirePreexistingUserForOauth: boolean = false
diff --git a/frontend/src/lib/components/Editor.svelte b/frontend/src/lib/components/Editor.svelte index 1f3dcb83b2..350d26b643 100644 --- a/frontend/src/lib/components/Editor.svelte +++ b/frontend/src/lib/components/Editor.svelte @@ -163,6 +163,7 @@ BIGQUERY_TYPES, MSSQL_TYPES, MYSQL_TYPES, + ORACLEDB_TYPES, POSTGRES_TYPES, SNOWFLAKE_TYPES } from '$lib/consts' @@ -462,6 +463,8 @@ ? BIGQUERY_TYPES : scriptLang === 'mssql' ? MSSQL_TYPES + : scriptLang === 'oracledb' + ? ORACLEDB_TYPES : [] ).map((t) => ({ label: t, @@ -699,6 +702,7 @@ ) { const client = new MonacoLanguageClient({ name: name, + messageTransports: transports, clientOptions: { outputChannel, documentSelector: [lang], @@ -729,11 +733,6 @@ }) } } - }, - connectionProvider: { - get: () => { - return Promise.resolve(transports) - } } }) return client diff --git a/frontend/src/lib/components/FlowBuilder.svelte b/frontend/src/lib/components/FlowBuilder.svelte index 4cdfceb49f..35ff13f46e 100644 --- a/frontend/src/lib/components/FlowBuilder.svelte +++ b/frontend/src/lib/components/FlowBuilder.svelte @@ -228,7 +228,8 @@ tag: flow.tag, draft_only: true, ws_error_handler_muted: flow.ws_error_handler_muted, - visible_to_runner_only: flow.visible_to_runner_only + visible_to_runner_only: flow.visible_to_runner_only, + on_behalf_of_email: flow.on_behalf_of_email } }) } @@ -359,6 +360,7 @@ tag: flow.tag, dedicated_worker: flow.dedicated_worker, visible_to_runner_only: flow.visible_to_runner_only, + on_behalf_of_email: flow.on_behalf_of_email, deployment_message: deploymentMsg || undefined } }) @@ -432,6 +434,7 @@ dedicated_worker: flow.dedicated_worker, ws_error_handler_muted: flow.ws_error_handler_muted, visible_to_runner_only: flow.visible_to_runner_only, + on_behalf_of_email: flow.on_behalf_of_email, deployment_message: deploymentMsg || undefined } }) diff --git a/frontend/src/lib/components/HighlightCode.svelte b/frontend/src/lib/components/HighlightCode.svelte index 80857ef0b0..40c296a44e 100644 --- a/frontend/src/lib/components/HighlightCode.svelte +++ b/frontend/src/lib/components/HighlightCode.svelte @@ -50,6 +50,8 @@ return sql case 'bigquery': return sql + case 'oracledb': + return sql case 'powershell': return powershell case 'php': diff --git a/frontend/src/lib/components/InstanceSettings.svelte b/frontend/src/lib/components/InstanceSettings.svelte index dd9fef18fc..4ba80bd228 100644 --- a/frontend/src/lib/components/InstanceSettings.svelte +++ b/frontend/src/lib/components/InstanceSettings.svelte @@ -272,7 +272,11 @@ > {/if} {:else if category == 'Auth/OAuth'} - +
{#each scimSamlSetting as setting} diff --git a/frontend/src/lib/components/LightweightArgInput.svelte b/frontend/src/lib/components/LightweightArgInput.svelte index 51a13ebbcb..8e07e1e02f 100644 --- a/frontend/src/lib/components/LightweightArgInput.svelte +++ b/frontend/src/lib/components/LightweightArgInput.svelte @@ -487,12 +487,14 @@
k !== 'label') ), $schema: '', required: obj.required ?? [], - type: 'object' + type: 'object', + order: obj.order ?? [] }} bind:args={value} {disabled} @@ -524,7 +526,7 @@ }} use:autosize style="min-height: 5px;" - class="col-span-10 {valid && error == '' + class="col-span-10 !leading-tight !text-2xs {valid && error == '' ? '' : 'border !border-red-700 !border-opacity-70 focus:!border-red-700 focus:!border-opacity-30'}" placeholder={defaultValue ? JSON.stringify(defaultValue, null, 4) : ''} diff --git a/frontend/src/lib/components/MoveDrawer.svelte b/frontend/src/lib/components/MoveDrawer.svelte index 96b9111270..b5cb5b2c3f 100644 --- a/frontend/src/lib/components/MoveDrawer.svelte +++ b/frontend/src/lib/components/MoveDrawer.svelte @@ -54,7 +54,8 @@ tag: flow.tag, dedicated_worker: flow.dedicated_worker, ws_error_handler_muted: flow.ws_error_handler_muted, - visible_to_runner_only: flow.visible_to_runner_only + visible_to_runner_only: flow.visible_to_runner_only, + on_behalf_of_email: flow.on_behalf_of_email } }) } else if (kind == 'script') { diff --git a/frontend/src/lib/components/Range.svelte b/frontend/src/lib/components/Range.svelte index 8ffed2ea89..0e92ac72de 100644 --- a/frontend/src/lib/components/Range.svelte +++ b/frontend/src/lib/components/Range.svelte @@ -7,6 +7,8 @@ export let value = typeof initialValue === 'string' ? parseInt(initialValue) : initialValue export let disabled: boolean = false export let defaultValue: number | undefined = undefined + export let format: (value: number) => string = (v) => `${v}` + export let hideInput: boolean = false let step: number = 1 @@ -23,10 +25,6 @@ $: axisStep = calculateAxisStep(min, max) - const format = (v, i, p) => { - return `${v}` - } - function handleKeyDown(event: KeyboardEvent) { if (disabled) return @@ -85,7 +83,9 @@ {/if}
- + {#if !hideInput} + + {/if}