diff --git a/.github/actions/publish-generator/action.yaml b/.github/actions/publish-generator/action.yaml index ac3097001aa2..cc8d5b7ddf13 100644 --- a/.github/actions/publish-generator/action.yaml +++ b/.github/actions/publish-generator/action.yaml @@ -45,7 +45,7 @@ runs: shell: bash run: | echo "Building seed CLI once with Turbo caching..." - pnpm turbo run dist:cli --filter=@fern-api/seed-cli + pnpm seed:build - name: Run publish (auto) if: inputs.manual-trigger == 'false' @@ -179,7 +179,7 @@ runs: SNIPPET_PACKAGE: ${{ steps.snippet-info.outputs.snippet_package }} run: | echo "Building snippet package: $SNIPPET_PACKAGE" - pnpm --filter=$SNIPPET_PACKAGE compile + pnpm turbo run compile --filter=$SNIPPET_PACKAGE - name: Test snippet package if: steps.snippet-info.outputs.snippet_package != '' @@ -188,7 +188,7 @@ runs: SNIPPET_PACKAGE: ${{ steps.snippet-info.outputs.snippet_package }} run: | echo "Testing snippet package: $SNIPPET_PACKAGE" - pnpm --filter=$SNIPPET_PACKAGE test + pnpm turbo run test --filter=$SNIPPET_PACKAGE - name: Publish snippet package (auto) if: inputs.manual-trigger == 'false' && steps.snippet-info.outputs.snippet_package != '' @@ -200,7 +200,7 @@ runs: run: | echo "Publishing snippet package: $SNIPPET_PACKAGE at version $VERSION" cd $SNIPPET_DIR - pnpm --filter=$SNIPPET_PACKAGE dist $VERSION + pnpm turbo run dist --filter=$SNIPPET_PACKAGE -- $VERSION cd dist npm publish --access public --tag latest @@ -214,6 +214,6 @@ runs: run: | echo "Publishing snippet package: $SNIPPET_PACKAGE at version $VERSION" cd $SNIPPET_DIR - pnpm --filter=$SNIPPET_PACKAGE dist $VERSION + pnpm turbo run dist --filter=$SNIPPET_PACKAGE -- $VERSION cd dist npm publish --access public --tag latest diff --git a/.github/workflows/ci-dynamic-snippets.yml b/.github/workflows/ci-dynamic-snippets.yml index 42534dd31845..b4e3ee4e64f0 100644 --- a/.github/workflows/ci-dynamic-snippets.yml +++ b/.github/workflows/ci-dynamic-snippets.yml @@ -41,10 +41,10 @@ jobs: run: go install github.com/fern-api/protoc-gen-openapi/cmd/protoc-gen-openapi@latest - name: 🧪 Build - run: pnpm --filter=@fern-api/typescript-dynamic-snippets compile + run: pnpm turbo run compile --filter=@fern-api/typescript-dynamic-snippets - name: 🧪 Test - run: pnpm --filter=@fern-api/typescript-dynamic-snippets test + run: pnpm turbo run test --filter=@fern-api/typescript-dynamic-snippets test-python: runs-on: ubuntu-latest @@ -71,10 +71,10 @@ jobs: run: go install github.com/fern-api/protoc-gen-openapi/cmd/protoc-gen-openapi@latest - name: 🧪 Build - run: pnpm --filter=@fern-api/python-dynamic-snippets compile + run: pnpm turbo run compile --filter=@fern-api/python-dynamic-snippets - name: 🧪 Test - run: pnpm --filter=@fern-api/python-dynamic-snippets test + run: pnpm turbo run test --filter=@fern-api/python-dynamic-snippets test-csharp: runs-on: ubuntu-latest @@ -101,10 +101,10 @@ jobs: run: go install github.com/fern-api/protoc-gen-openapi/cmd/protoc-gen-openapi@latest - name: 🧪 Build - run: pnpm --filter=@fern-api/csharp-dynamic-snippets compile + run: pnpm turbo run compile --filter=@fern-api/csharp-dynamic-snippets - name: 🧪 Test - run: pnpm --filter=@fern-api/csharp-dynamic-snippets test + run: pnpm turbo run test --filter=@fern-api/csharp-dynamic-snippets test-go: runs-on: ubuntu-latest @@ -131,10 +131,10 @@ jobs: run: go install github.com/fern-api/protoc-gen-openapi/cmd/protoc-gen-openapi@latest - name: 🧪 Build - run: pnpm --filter=@fern-api/go-dynamic-snippets compile + run: pnpm turbo run compile --filter=@fern-api/go-dynamic-snippets - name: 🧪 Test - run: pnpm --filter=@fern-api/go-dynamic-snippets test + run: pnpm turbo run test --filter=@fern-api/go-dynamic-snippets test-ruby: runs-on: ubuntu-latest @@ -161,10 +161,10 @@ jobs: run: go install github.com/fern-api/protoc-gen-openapi/cmd/protoc-gen-openapi@latest - name: 🧪 Build - run: pnpm --filter=@fern-api/ruby-dynamic-snippets compile + run: pnpm turbo run compile --filter=@fern-api/ruby-dynamic-snippets - name: 🧪 Test - run: pnpm --filter=@fern-api/ruby-dynamic-snippets test + run: pnpm turbo run test --filter=@fern-api/ruby-dynamic-snippets test-php: runs-on: ubuntu-latest @@ -191,10 +191,10 @@ jobs: run: go install github.com/fern-api/protoc-gen-openapi/cmd/protoc-gen-openapi@latest - name: 🧪 Build - run: pnpm --filter=@fern-api/php-dynamic-snippets compile + run: pnpm turbo run compile --filter=@fern-api/php-dynamic-snippets - name: 🧪 Test - run: pnpm --filter=@fern-api/php-dynamic-snippets test + run: pnpm turbo run test --filter=@fern-api/php-dynamic-snippets test-swift: runs-on: ubuntu-latest @@ -221,10 +221,10 @@ jobs: run: go install github.com/fern-api/protoc-gen-openapi/cmd/protoc-gen-openapi@latest - name: 🧪 Build - run: pnpm --filter=@fern-api/swift-dynamic-snippets compile + run: pnpm turbo run compile --filter=@fern-api/swift-dynamic-snippets - name: 🧪 Test - run: pnpm --filter=@fern-api/swift-dynamic-snippets test + run: pnpm turbo run test --filter=@fern-api/swift-dynamic-snippets test-java: runs-on: ubuntu-latest @@ -251,7 +251,7 @@ jobs: run: go install github.com/fern-api/protoc-gen-openapi/cmd/protoc-gen-openapi@latest - name: 🧪 Build - run: pnpm --filter=@fern-api/java-dynamic-snippets compile + run: pnpm turbo run compile --filter=@fern-api/java-dynamic-snippets - name: 🧪 Test - run: pnpm --filter=@fern-api/java-dynamic-snippets test + run: pnpm turbo run test --filter=@fern-api/java-dynamic-snippets \ No newline at end of file diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a7f18e202843..f3a645141ee0 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -222,7 +222,7 @@ jobs: AUTH0_DOMAIN: ${{ secrets.AUTH0_DOMAIN }} AUTH0_CLIENT_ID: ${{ secrets.AUTH0_CLIENT_ID }} run: | - pnpm --filter @fern-api/cli dist:cli:dev + pnpm turbo run dist:cli:dev --filter @fern-api/cli cli_path="$(pwd)/packages/cli/cli/dist/dev/cli.cjs" ./scripts/live-test.sh "$cli_path" "$FERN_ORG_TOKEN_DEV" @@ -249,7 +249,7 @@ jobs: AUTH0_DOMAIN: ${{ secrets.AUTH0_DOMAIN }} AUTH0_CLIENT_ID: ${{ secrets.AUTH0_CLIENT_ID }} run: | - pnpm --filter @fern-api/cli dist:cli:dev + pnpm turbo run dist:cli:dev --filter @fern-api/cli $cliPath = Join-Path $env:GITHUB_WORKSPACE "packages\cli\cli\dist\dev\cli.cjs" if (-not (Test-Path $cliPath)) { Write-Error "CLI path does not exist: $cliPath" @@ -285,7 +285,7 @@ jobs: AUTH0_DOMAIN: ${{ secrets.AUTH0_DOMAIN }} AUTH0_CLIENT_ID: ${{ secrets.AUTH0_CLIENT_ID }} run: | - pnpm --filter @fern-api/cli dist:cli:dev + pnpm turbo run dist:cli:dev --filter @fern-api/cli $cliPath = Join-Path $env:GITHUB_WORKSPACE "packages\cli\cli\dist\dev\cli.cjs" if (-not (Test-Path $cliPath)) { Write-Error "CLI path does not exist: $cliPath" diff --git a/.github/workflows/definitions-validation.yml b/.github/workflows/definitions-validation.yml index 1b3c70709b94..c15236f6d471 100644 --- a/.github/workflows/definitions-validation.yml +++ b/.github/workflows/definitions-validation.yml @@ -25,6 +25,6 @@ jobs: AUTH0_CLIENT_ID: ${{ secrets.AUTH0_CLIENT_ID }} POSTHOG_API_KEY: ${{ secrets.POSTHOG_PROJECT_API_KEY }} run: | - pnpm --filter @fern-api/cli dist:cli:prod + pnpm turbo run dist:cli:prod --filter @fern-api/cli cli_path="$(pwd)/packages/cli/cli/dist/prod/cli.cjs" node $cli_path check diff --git a/.github/workflows/publish-cli.yml b/.github/workflows/publish-cli.yml index 75e2c1f1c35c..a210528df163 100644 --- a/.github/workflows/publish-cli.yml +++ b/.github/workflows/publish-cli.yml @@ -98,7 +98,7 @@ jobs: AUTH0_CLIENT_ID: ${{ secrets.AUTH0_CLIENT_ID }} POSTHOG_API_KEY: ${{ secrets.POSTHOG_PROJECT_API_KEY }} run: | - pnpm --filter @fern-api/cli dist:cli:prod + pnpm turbo run dist:cli:prod --filter @fern-api/cli cli_path="$(pwd)/packages/cli/cli/dist/prod/cli.cjs" ./scripts/live-test.sh "$cli_path" "$FERN_TOKEN" "true" diff --git a/.github/workflows/publish-generator-cli.yml b/.github/workflows/publish-generator-cli.yml index 37fae18af56a..d31b95b5db77 100644 --- a/.github/workflows/publish-generator-cli.yml +++ b/.github/workflows/publish-generator-cli.yml @@ -79,10 +79,15 @@ jobs: - name: Update npm run: npm install -g npm@latest - - name: 🧪 Build and test + - name: Build CLI env: GITHUB_TOKEN: ${{ env.GITHUB_TOKEN }} - run: pnpm turbo compile test --filter=${{ env.PACKAGE_NAME }} + run: pnpm turbo run dist:cli --filter=${{ env.PACKAGE_NAME }} + + - name: Test + env: + GITHUB_TOKEN: ${{ env.GITHUB_TOKEN }} + run: pnpm turbo run test --filter=${{ env.PACKAGE_NAME }} - name: Setup Node for npm publish uses: actions/setup-node@v4 diff --git a/.github/workflows/publish-snippets-core.yml b/.github/workflows/publish-snippets-core.yml index b417be6e8cc5..9a9aad4a0884 100644 --- a/.github/workflows/publish-snippets-core.yml +++ b/.github/workflows/publish-snippets-core.yml @@ -44,14 +44,14 @@ jobs: run: go install github.com/fern-api/protoc-gen-openapi/cmd/protoc-gen-openapi@latest - name: 🧪 Build - run: pnpm --filter=${{ env.PACKAGE_NAME }} compile + run: pnpm turbo run compile --filter=${{ env.PACKAGE_NAME }} - name: 🧪 Test - run: pnpm --filter=${{ env.PACKAGE_NAME }} test + run: pnpm turbo run test --filter=${{ env.PACKAGE_NAME }} - name: Publish @fern-api/snippets-core run: | cd packages/snippets/core - pnpm --filter=${{ env.PACKAGE_NAME }} dist ${{ inputs.version }} + pnpm turbo run dist --filter=${{ env.PACKAGE_NAME }} -- ${{ inputs.version }} cd dist npm publish --access public --tag latest diff --git a/.github/workflows/sdk-ete-tests.yml b/.github/workflows/sdk-ete-tests.yml index a29892648343..096286743fc8 100644 --- a/.github/workflows/sdk-ete-tests.yml +++ b/.github/workflows/sdk-ete-tests.yml @@ -171,13 +171,13 @@ jobs: - name: Build PHP SDK generator if: ${{ inputs.language == 'php' || github.event_name == 'pull_request' || github.event_name == 'push' }} - run: pnpm --filter @fern-api/php-sdk dist:cli + run: pnpm turbo run dist:cli --filter @fern-api/php-sdk - name: Build Go SDK generator if: ${{ inputs.language == 'go' }} run: | cd generators/go && go build ./... - pnpm --filter @fern-api/go-sdk dist:cli + pnpm turbo run dist:cli --filter @fern-api/go-sdk - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 diff --git a/.github/workflows/test-definitions.yml b/.github/workflows/test-definitions.yml index 5c36f4d9a7a9..92bce4903c8f 100644 --- a/.github/workflows/test-definitions.yml +++ b/.github/workflows/test-definitions.yml @@ -47,7 +47,7 @@ jobs: env: FORCE_COLOR: "2" run: | - pnpm --filter @fern-api/cli dist:cli:dev + pnpm turbo run dist:cli:dev --filter @fern-api/cli cli_path="$(pwd)/packages/cli/cli/dist/dev/cli.cjs" cd test-definitions FERN_NO_VERSION_REDIRECTION=true node $cli_path check diff --git a/.github/workflows/validate-changelog.yml b/.github/workflows/validate-changelog.yml index be0383512462..71dfca4f7a5b 100644 --- a/.github/workflows/validate-changelog.yml +++ b/.github/workflows/validate-changelog.yml @@ -39,9 +39,6 @@ jobs: - name: Install uses: ./.github/actions/install - - name: Compile - run: pnpm exec turbo compile '--filter=@fern-api/seed-cli' - - name: Seed Build run: pnpm seed:build diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index e7edb65b44a8..a9dbaf5e9364 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -85,7 +85,7 @@ pnpm install To compile all the packages in this monorepo, run `pnpm compile`. -To compile a single package, filter to the relevant package: `pnpm --filter @fern-api/openapi-parser compile`. +To compile a single package, filter to the relevant package: `pnpm turbo run compile --filter @fern-api/openapi-parser`. ### Step 3: Testing @@ -93,7 +93,7 @@ This repo contains both unit tests and integration (end-to-end) tests. To run all the unit tests: `pnpm test`. -To run unit tests for a single package: `pnpm --filter @fern-api/openapi-parser test` +To run unit tests for a single package: `pnpm turbo run test --filter @fern-api/openapi-parser` To run the integration tests: `pnpm test:ete`. diff --git a/cspell-words.txt b/cspell-words.txt index 5dcdcaa4c028..730057198776 100644 --- a/cspell-words.txt +++ b/cspell-words.txt @@ -652,6 +652,7 @@ unioned unioning unist unmarshal +unminified unnamespaced unsanitized unserviced diff --git a/generators/csharp/CLAUDE.md b/generators/csharp/CLAUDE.md index 620eca31312d..c84b4a365388 100644 --- a/generators/csharp/CLAUDE.md +++ b/generators/csharp/CLAUDE.md @@ -33,8 +33,8 @@ This file provides guidance for Claude Code when working with the C# generator. ```bash pnpm install -pnpm --filter @fern-api/fern-csharp-sdk compile -pnpm --filter @fern-api/fern-csharp-model compile +pnpm turbo run compile --filter @fern-api/fern-csharp-sdk +pnpm turbo run compile --filter @fern-api/fern-csharp-model ``` ### Configuration Options diff --git a/generators/csharp/dynamic-snippets/build.cjs b/generators/csharp/dynamic-snippets/build.cjs deleted file mode 100644 index c4d1cc026020..000000000000 --- a/generators/csharp/dynamic-snippets/build.cjs +++ /dev/null @@ -1,68 +0,0 @@ -const packageJson = require("./package.json"); -const tsup = require('tsup'); -const { writeFile, mkdir } = require("fs/promises"); -const path = require("path"); - -main(); - -async function main() { - const config = { - entry: ['src/**/*.ts', '!src/__test__'], - target: "es2017", - platform: "node", - minify: true, - dts: true, - sourcemap: true, - tsconfig: "./build.tsconfig.json" - }; - - await tsup.build({ - ...config, - format: ['cjs'], - outDir: 'dist/cjs', - clean: true, - }); - - await tsup.build({ - ...config, - format: ['esm'], - outDir: 'dist/esm', - clean: false, - }); - - await mkdir(path.join(__dirname, "dist"), { recursive: true }); - process.chdir(path.join(__dirname, "dist")); - - await writeFile( - "package.json", - JSON.stringify( - { - name: packageJson.name, - version: process.argv[2] || packageJson.version, - repository: packageJson.repository, - type: "module", - exports: { - // Conditional exports for ESM and CJS. - "import": { - "types": "./esm/index.d.ts", - "default": "./esm/index.js" - }, - "require": { - "types": "./cjs/index.d.cts", - "default": "./cjs/index.cjs" - } - }, - // Fallback for older tooling or direct imports. - main: "./cjs/index.cjs", - module: "./esm/index.js", - types: "./cjs/index.d.cts", - files: [ - "cjs", - "esm" - ] - }, - undefined, - 2 - ) - ); -} \ No newline at end of file diff --git a/generators/csharp/dynamic-snippets/package.json b/generators/csharp/dynamic-snippets/package.json index f8b00f059f20..89199b558a39 100644 --- a/generators/csharp/dynamic-snippets/package.json +++ b/generators/csharp/dynamic-snippets/package.json @@ -26,7 +26,6 @@ "compile": "tsc --build", "compile:debug": "tsc --build --sourceMap", "depcheck": "depcheck", - "dist": "pnpm compile && node build.cjs", "test": "vitest --passWithNoTests --run", "test:debug": "pnpm run test --inspect --no-file-parallelism", "test:update": "vitest --passWithNoTests --run -u" @@ -42,7 +41,6 @@ "@types/node": "18.15.3", "depcheck": "^1.4.7", "lodash-es": "^4.17.21", - "tsup": "^8.5.0", "typescript": "5.9.3", "vitest": "^4.0.8" } diff --git a/generators/csharp/model/build.mjs b/generators/csharp/model/build.mjs new file mode 100644 index 000000000000..c5df3758b579 --- /dev/null +++ b/generators/csharp/model/build.mjs @@ -0,0 +1,5 @@ +import { buildGenerator, getDirname } from '@fern-api/configs/build-utils.mjs'; + +await buildGenerator(getDirname(import.meta.url), { + copy: { from: '../base/src/asIs', to: './dist/asIs' } +}); diff --git a/generators/csharp/model/package.json b/generators/csharp/model/package.json index 5ea87838079c..78976e83aa4e 100644 --- a/generators/csharp/model/package.json +++ b/generators/csharp/model/package.json @@ -26,13 +26,13 @@ "compile": "tsc --build", "compile:debug": "tsc --build --sourceMap", "depcheck": "depcheck", - "dist:cli": "pnpm compile && tsup ./src/cli.ts --format cjs --sourcemap && cp -R ../base/src/asIs dist", - "dockerTagLatest": "pnpm dist:cli && docker build -f ./Dockerfile -t fernapi/fern-csharp-model:latest ../../..", + "dist:cli": "node build.mjs", + "dockerTagLatest": "docker build -f ./Dockerfile -t fernapi/fern-csharp-model:latest ../../..", "format": "prettier --write --ignore-unknown --ignore-path ../../../shared/.prettierignore \"**\"", "format:check": "prettier --check --ignore-unknown --ignore-path ../../../shared/.prettierignore \"**\"", "lint:eslint": "eslint --max-warnings 0 . --ignore-pattern=../../../.eslintignore", "lint:eslint:fix": "yarn lint:eslint --fix", - "podmanTagLatest": "pnpm dist:cli && podman build -f ./Dockerfile -t fernapi/fern-csharp-model:latest ../../..", + "podmanTagLatest": "podman build -f ./Dockerfile -t fernapi/fern-csharp-model:latest ../../..", "publish:cli": "pnpm dist:cli && cd dist && yarn npm publish", "test": "vitest --passWithNoTests --run", "test:debug": "pnpm run test --inspect --no-file-parallelism", @@ -49,7 +49,6 @@ "@fern-fern/ir-sdk": "^61.7.0", "@types/node": "18.15.3", "depcheck": "^1.4.7", - "tsup": "^8.5.0", "typescript": "5.9.3", "vitest": "^4.0.8" } diff --git a/generators/csharp/model/turbo.jsonc b/generators/csharp/model/turbo.jsonc new file mode 100644 index 000000000000..1b43312be3f1 --- /dev/null +++ b/generators/csharp/model/turbo.jsonc @@ -0,0 +1,20 @@ +{ + "extends": ["//"], + "tasks": { + "dist:cli": { + "inputs": [ + "../base/src/asIs/**", + /** same as global task **/ + "src/**", + "tests/**", + "package.json", + "tsconfig.json", + "build.mjs", + "$TURBO_ROOT$/packages/configs/**", + "$TURBO_ROOT$/shared/.prettierignore", + "$TURBO_ROOT$/shared/stylelintrc.shared.json", + "$TURBO_ROOT$/tsconfig.eslint.json" + ] + } + } +} diff --git a/generators/csharp/sdk/build.mjs b/generators/csharp/sdk/build.mjs new file mode 100644 index 000000000000..c5df3758b579 --- /dev/null +++ b/generators/csharp/sdk/build.mjs @@ -0,0 +1,5 @@ +import { buildGenerator, getDirname } from '@fern-api/configs/build-utils.mjs'; + +await buildGenerator(getDirname(import.meta.url), { + copy: { from: '../base/src/asIs', to: './dist/asIs' } +}); diff --git a/generators/csharp/sdk/package.json b/generators/csharp/sdk/package.json index f81cde7814e9..88daaa4d72a3 100644 --- a/generators/csharp/sdk/package.json +++ b/generators/csharp/sdk/package.json @@ -26,13 +26,13 @@ "compile": "tsc --build", "compile:debug": "tsc --build --sourceMap", "depcheck": "depcheck", - "dist:cli": "rm -rf ./lib && rm -rf ./dist && pnpm compile && tsup ./src/cli.ts --format cjs --sourcemap && cp -R ../base/src/asIs dist", - "dockerTagLatest": "pnpm dist:cli && docker build -f ./Dockerfile -t fernapi/fern-csharp-sdk:latest ../../..", + "dist:cli": "node build.mjs", + "dockerTagLatest": "docker build -f ./Dockerfile -t fernapi/fern-csharp-sdk:latest ../../..", "format": "prettier --write --ignore-unknown --ignore-path ../../../shared/.prettierignore \"**\"", "format:check": "prettier --check --ignore-unknown --ignore-path ../../../shared/.prettierignore \"**\"", "lint:eslint": "eslint --max-warnings 0 . --ignore-pattern=../../../.eslintignore", "lint:eslint:fix": "yarn lint:eslint --fix", - "podmanTagLatest": "pnpm dist:cli && podman build -f ./Dockerfile -t fernapi/fern-csharp-sdk:latest ../../..", + "podmanTagLatest": "podman build -f ./Dockerfile -t fernapi/fern-csharp-sdk:latest ../../..", "publish:cli": "pnpm dist:cli && cd dist && yarn npm publish", "test": "vitest --passWithNoTests --run", "test:debug": "pnpm run test --inspect --no-file-parallelism", @@ -54,7 +54,6 @@ "@types/node": "18.15.3", "@types/url-join": "4.0.1", "depcheck": "^1.4.7", - "tsup": "^8.5.0", "typescript": "5.9.3", "url-join": "^5.0.0", "vitest": "^4.0.8" diff --git a/generators/csharp/sdk/turbo.jsonc b/generators/csharp/sdk/turbo.jsonc new file mode 100644 index 000000000000..1b43312be3f1 --- /dev/null +++ b/generators/csharp/sdk/turbo.jsonc @@ -0,0 +1,20 @@ +{ + "extends": ["//"], + "tasks": { + "dist:cli": { + "inputs": [ + "../base/src/asIs/**", + /** same as global task **/ + "src/**", + "tests/**", + "package.json", + "tsconfig.json", + "build.mjs", + "$TURBO_ROOT$/packages/configs/**", + "$TURBO_ROOT$/shared/.prettierignore", + "$TURBO_ROOT$/shared/stylelintrc.shared.json", + "$TURBO_ROOT$/tsconfig.eslint.json" + ] + } + } +} diff --git a/generators/go-v2/base/package.json b/generators/go-v2/base/package.json index 7f9c9a75bc49..b96fc66c5073 100644 --- a/generators/go-v2/base/package.json +++ b/generators/go-v2/base/package.json @@ -26,12 +26,10 @@ "compile": "tsc --build", "compile:debug": "tsc --build --sourceMap", "depcheck": "depcheck", - "dist:cli": "pnpm compile && tsup ./src/cli.ts --format cjs --sourcemap", "format": "prettier --write --ignore-unknown --ignore-path ../../../shared/.prettierignore \"**\"", "format:check": "prettier --check --ignore-unknown --ignore-path ../../../shared/.prettierignore \"**\"", "lint:eslint": "eslint --max-warnings 0 . --ignore-pattern=../../../.eslintignore", "lint:eslint:fix": "yarn lint:eslint --fix", - "publish:cli": "pnpm dist:cli && cd dist && yarn npm publish", "test": "vitest --passWithNoTests --run", "test:debug": "pnpm run test --inspect --no-file-parallelism", "test:update": "vitest --passWithNoTests --run -u" @@ -49,7 +47,6 @@ "@types/node": "18.15.3", "dedent": "^1.5.1", "depcheck": "^1.4.7", - "tsup": "^8.5.0", "typescript": "5.9.3", "vitest": "^4.0.8" } diff --git a/generators/go-v2/dynamic-snippets/build.cjs b/generators/go-v2/dynamic-snippets/build.cjs deleted file mode 100644 index b31dc8034194..000000000000 --- a/generators/go-v2/dynamic-snippets/build.cjs +++ /dev/null @@ -1,80 +0,0 @@ -const { NodeModulesPolyfillPlugin } = require('@esbuild-plugins/node-modules-polyfill'); -const { NodeGlobalsPolyfillPlugin } = require('@esbuild-plugins/node-globals-polyfill'); -const packageJson = require("./package.json"); -const tsup = require('tsup'); -const { writeFile, mkdir } = require("fs/promises"); -const path = require("path"); - -main(); - -async function main() { - const config = { - entry: ['src/**/*.ts', '!src/__test__'], - target: "es2017", - minify: true, - dts: true, - sourcemap: true, - external: [ - '@fern-api/go-formatter', - ], - esbuildPlugins: [ - NodeModulesPolyfillPlugin(), - NodeGlobalsPolyfillPlugin({ - process: true, - buffer: true, - util: true - }) - ], - tsconfig: "./build.tsconfig.json" - }; - - await tsup.build({ - ...config, - format: ['cjs'], - outDir: 'dist/cjs', - clean: true, - }); - - await tsup.build({ - ...config, - format: ['esm'], - outDir: 'dist/esm', - clean: false, - }); - - await mkdir(path.join(__dirname, "dist"), { recursive: true }); - process.chdir(path.join(__dirname, "dist")); - - await writeFile( - "package.json", - JSON.stringify( - { - name: packageJson.name, - version: process.argv[2] || packageJson.version, - repository: packageJson.repository, - type: "module", - exports: { - // Conditional exports for ESM and CJS. - "import": { - "types": "./esm/index.d.ts", - "default": "./esm/index.js" - }, - "require": { - "types": "./cjs/index.d.cts", - "default": "./cjs/index.cjs" - } - }, - // Fallback for older tooling or direct imports. - main: "./cjs/index.cjs", - module: "./esm/index.js", - types: "./cjs/index.d.cts", - files: [ - "cjs", - "esm" - ] - }, - undefined, - 2 - ) - ); -} \ No newline at end of file diff --git a/generators/go-v2/dynamic-snippets/package.json b/generators/go-v2/dynamic-snippets/package.json index fca99fafd755..9e23d25d5cf8 100644 --- a/generators/go-v2/dynamic-snippets/package.json +++ b/generators/go-v2/dynamic-snippets/package.json @@ -26,14 +26,11 @@ "compile": "tsc --build", "compile:debug": "tsc --build --sourceMap", "depcheck": "depcheck", - "dist": "pnpm compile && node build.cjs", "test": "vitest --passWithNoTests --run", "test:debug": "pnpm run test --inspect --no-file-parallelism", "test:update": "vitest --passWithNoTests --run -u" }, "devDependencies": { - "@esbuild-plugins/node-globals-polyfill": "^0.2.3", - "@esbuild-plugins/node-modules-polyfill": "^0.2.2", "@fern-api/browser-compatible-base-generator": "workspace:*", "@fern-api/configs": "workspace:*", "@fern-api/core-utils": "workspace:*", @@ -43,7 +40,6 @@ "@fern-api/path-utils": "workspace:*", "@types/node": "18.15.3", "depcheck": "^1.4.7", - "tsup": "^8.5.0", "typescript": "5.9.3", "vitest": "^4.0.8" } diff --git a/generators/go-v2/model/build.mjs b/generators/go-v2/model/build.mjs new file mode 100644 index 000000000000..c5df3758b579 --- /dev/null +++ b/generators/go-v2/model/build.mjs @@ -0,0 +1,5 @@ +import { buildGenerator, getDirname } from '@fern-api/configs/build-utils.mjs'; + +await buildGenerator(getDirname(import.meta.url), { + copy: { from: '../base/src/asIs', to: './dist/asIs' } +}); diff --git a/generators/go-v2/model/package.json b/generators/go-v2/model/package.json index a0c4da2266e1..d4b07d645e63 100644 --- a/generators/go-v2/model/package.json +++ b/generators/go-v2/model/package.json @@ -26,13 +26,13 @@ "compile": "tsc --build", "compile:debug": "tsc --build --sourceMap", "depcheck": "depcheck", - "dist:cli": "pnpm compile && tsup ./src/cli.ts --format cjs --sourcemap && cp -R ../base/src/asIs dist", - "dockerTagLatest": "pnpm dist:cli && docker build -f ./Dockerfile -t fernapi/fern-go-model:latest ../../..", + "dist:cli": "node build.mjs", + "dockerTagLatest": "docker build -f ./Dockerfile -t fernapi/fern-go-model:latest ../../..", "format": "prettier --write --ignore-unknown --ignore-path ../../../shared/.prettierignore \"**\"", "format:check": "prettier --check --ignore-unknown --ignore-path ../../../shared/.prettierignore \"**\"", "lint:eslint": "eslint --max-warnings 0 . --ignore-pattern=../../../.eslintignore", "lint:eslint:fix": "yarn lint:eslint --fix", - "podmanTagLatest": "pnpm dist:cli && podman build -f ./Dockerfile -t fernapi/fern-go-model:latest ../../..", + "podmanTagLatest": "podman build -f ./Dockerfile -t fernapi/fern-go-model:latest ../../..", "publish:cli": "pnpm dist:cli && cd dist && yarn npm publish", "test": "vitest --passWithNoTests --run", "test:debug": "pnpm run test --inspect --no-file-parallelism", @@ -48,7 +48,6 @@ "@fern-fern/ir-sdk": "^61.7.0", "@types/node": "18.15.3", "depcheck": "^1.4.7", - "tsup": "^8.5.0", "typescript": "5.9.3", "vitest": "^4.0.8" } diff --git a/generators/go-v2/model/turbo.jsonc b/generators/go-v2/model/turbo.jsonc new file mode 100644 index 000000000000..1b43312be3f1 --- /dev/null +++ b/generators/go-v2/model/turbo.jsonc @@ -0,0 +1,20 @@ +{ + "extends": ["//"], + "tasks": { + "dist:cli": { + "inputs": [ + "../base/src/asIs/**", + /** same as global task **/ + "src/**", + "tests/**", + "package.json", + "tsconfig.json", + "build.mjs", + "$TURBO_ROOT$/packages/configs/**", + "$TURBO_ROOT$/shared/.prettierignore", + "$TURBO_ROOT$/shared/stylelintrc.shared.json", + "$TURBO_ROOT$/tsconfig.eslint.json" + ] + } + } +} diff --git a/generators/go-v2/sdk/build.mjs b/generators/go-v2/sdk/build.mjs index 0f67845e153b..c5df3758b579 100644 --- a/generators/go-v2/sdk/build.mjs +++ b/generators/go-v2/sdk/build.mjs @@ -1,21 +1,5 @@ -import { join, dirname } from "path"; -import { cp } from "fs/promises"; -import { fileURLToPath } from "url"; -import tsup from "tsup"; +import { buildGenerator, getDirname } from '@fern-api/configs/build-utils.mjs'; -const __filename = fileURLToPath(import.meta.url); -const __dirname = dirname(__filename); - -main(); - -async function main() { - const filesFoldersToCopy = [ - ["../base/src/asIs", "./dist/asIs"], - ]; - for (const [source, destination] of filesFoldersToCopy) { - await cp(join(__dirname, source), join(__dirname, destination), { - recursive: true, - force: true, - }); - } -} +await buildGenerator(getDirname(import.meta.url), { + copy: { from: '../base/src/asIs', to: './dist/asIs' } +}); diff --git a/generators/go-v2/sdk/package.json b/generators/go-v2/sdk/package.json index 538f4cca4257..2ea93e940f2b 100644 --- a/generators/go-v2/sdk/package.json +++ b/generators/go-v2/sdk/package.json @@ -26,13 +26,13 @@ "compile": "tsc --build", "compile:debug": "tsc --build --sourceMap", "depcheck": "depcheck", - "dist:cli": "pnpm compile && tsup ./src/cli.ts --format cjs --sourcemap && node build.mjs", - "dockerTagLatest": "pnpm dist:cli && docker build -f ./Dockerfile -t fernapi/fern-go-sdk:latest ../../..", + "dist:cli": "node build.mjs", + "dockerTagLatest": "docker build -f ./Dockerfile -t fernapi/fern-go-sdk:latest ../../..", "format": "prettier --write --ignore-unknown --ignore-path ../../../shared/.prettierignore \"**\"", "format:check": "prettier --check --ignore-unknown --ignore-path ../../../shared/.prettierignore \"**\"", "lint:eslint": "eslint --max-warnings 0 . --ignore-pattern=../../../.eslintignore", "lint:eslint:fix": "yarn lint:eslint --fix", - "podmanTagLatest": "pnpm dist:cli && podman build -f ./Dockerfile -t fernapi/fern-go-sdk:latest ../../..", + "podmanTagLatest": "podman build -f ./Dockerfile -t fernapi/fern-go-sdk:latest ../../..", "publish:cli": "pnpm dist:cli && cd dist && yarn npm publish", "test": "vitest --passWithNoTests --run", "test:debug": "pnpm run test --inspect --no-file-parallelism", @@ -55,7 +55,6 @@ "@types/node": "18.15.3", "dedent": "^1.5.1", "depcheck": "^1.4.7", - "tsup": "^8.5.0", "typescript": "5.9.3", "vitest": "^4.0.8" } diff --git a/generators/go-v2/sdk/turbo.jsonc b/generators/go-v2/sdk/turbo.jsonc new file mode 100644 index 000000000000..1b43312be3f1 --- /dev/null +++ b/generators/go-v2/sdk/turbo.jsonc @@ -0,0 +1,20 @@ +{ + "extends": ["//"], + "tasks": { + "dist:cli": { + "inputs": [ + "../base/src/asIs/**", + /** same as global task **/ + "src/**", + "tests/**", + "package.json", + "tsconfig.json", + "build.mjs", + "$TURBO_ROOT$/packages/configs/**", + "$TURBO_ROOT$/shared/.prettierignore", + "$TURBO_ROOT$/shared/stylelintrc.shared.json", + "$TURBO_ROOT$/tsconfig.eslint.json" + ] + } + } +} diff --git a/generators/java-v2/base/package.json b/generators/java-v2/base/package.json index 694989e489e5..d1e2c3ea6512 100644 --- a/generators/java-v2/base/package.json +++ b/generators/java-v2/base/package.json @@ -26,12 +26,10 @@ "compile": "tsc --build", "compile:debug": "tsc --build --sourceMap", "depcheck": "depcheck", - "dist:cli": "pnpm compile && tsup ./src/cli.ts --format cjs --sourcemap", "format": "prettier --write --ignore-unknown --ignore-path ../../../shared/.prettierignore \"**\"", "format:check": "prettier --check --ignore-unknown --ignore-path ../../../shared/.prettierignore \"**\"", "lint:eslint": "eslint --max-warnings 0 . --ignore-pattern=../../../.eslintignore", "lint:eslint:fix": "yarn lint:eslint --fix", - "publish:cli": "pnpm dist:cli && cd dist && yarn npm publish", "test": "vitest --passWithNoTests --run", "test:debug": "pnpm run test --inspect --no-file-parallelism", "test:update": "vitest --passWithNoTests --run -u" diff --git a/generators/java-v2/dynamic-snippets/build.cjs b/generators/java-v2/dynamic-snippets/build.cjs deleted file mode 100644 index d4c63fb6103e..000000000000 --- a/generators/java-v2/dynamic-snippets/build.cjs +++ /dev/null @@ -1,77 +0,0 @@ -const { NodeModulesPolyfillPlugin } = require('@esbuild-plugins/node-modules-polyfill'); -const { NodeGlobalsPolyfillPlugin } = require('@esbuild-plugins/node-globals-polyfill'); -const packageJson = require("./package.json"); -const tsup = require('tsup'); -const { writeFile, mkdir } = require("fs/promises"); -const path = require("path"); - -main(); - -async function main() { - const config = { - entry: ['src/**/*.ts', '!src/__test__'], - target: "es2017", - minify: true, - dts: true, - sourcemap: true, - esbuildPlugins: [ - NodeModulesPolyfillPlugin(), - NodeGlobalsPolyfillPlugin({ - process: true, - buffer: true, - util: true - }) - ], - tsconfig: "./build.tsconfig.json" - }; - - await tsup.build({ - ...config, - format: ['cjs'], - outDir: 'dist/cjs', - clean: true, - }); - - await tsup.build({ - ...config, - format: ['esm'], - outDir: 'dist/esm', - clean: false, - }); - - await mkdir(path.join(__dirname, "dist"), { recursive: true }); - process.chdir(path.join(__dirname, "dist")); - - await writeFile( - "package.json", - JSON.stringify( - { - name: packageJson.name, - version: process.argv[2] || packageJson.version, - repository: packageJson.repository, - type: "module", - exports: { - // Conditional exports for ESM and CJS. - "import": { - "types": "./esm/index.d.ts", - "default": "./esm/index.js" - }, - "require": { - "types": "./cjs/index.d.cts", - "default": "./cjs/index.cjs" - } - }, - // Fallback for older tooling or direct imports. - main: "./cjs/index.cjs", - module: "./esm/index.js", - types: "./cjs/index.d.cts", - files: [ - "cjs", - "esm" - ] - }, - undefined, - 2 - ) - ); -} \ No newline at end of file diff --git a/generators/java-v2/dynamic-snippets/package.json b/generators/java-v2/dynamic-snippets/package.json index c1694dd29e79..76be0c1731f4 100644 --- a/generators/java-v2/dynamic-snippets/package.json +++ b/generators/java-v2/dynamic-snippets/package.json @@ -26,14 +26,11 @@ "compile": "tsc --build", "compile:debug": "tsc --build --sourceMap", "depcheck": "depcheck", - "dist": "pnpm compile && node build.cjs", "test": "vitest --passWithNoTests --run", "test:debug": "pnpm run test --inspect --no-file-parallelism", "test:update": "vitest --passWithNoTests --run -u" }, "devDependencies": { - "@esbuild-plugins/node-globals-polyfill": "^0.2.3", - "@esbuild-plugins/node-modules-polyfill": "^0.2.2", "@fern-api/browser-compatible-base-generator": "workspace:*", "@fern-api/configs": "workspace:*", "@fern-api/core-utils": "workspace:*", @@ -44,7 +41,6 @@ "@types/node": "18.15.3", "depcheck": "^1.4.7", "lodash-es": "^4.17.21", - "tsup": "^8.5.0", "typescript": "5.9.3", "vitest": "^4.0.8" } diff --git a/generators/java-v2/sdk/build.mjs b/generators/java-v2/sdk/build.mjs new file mode 100644 index 000000000000..2a1865dff73e --- /dev/null +++ b/generators/java-v2/sdk/build.mjs @@ -0,0 +1,3 @@ +import { buildGenerator, getDirname } from '@fern-api/configs/build-utils.mjs'; + +await buildGenerator(getDirname(import.meta.url)); diff --git a/generators/java-v2/sdk/package.json b/generators/java-v2/sdk/package.json index 39077c03c34b..13e4b3955df8 100644 --- a/generators/java-v2/sdk/package.json +++ b/generators/java-v2/sdk/package.json @@ -26,13 +26,13 @@ "compile": "tsc --build", "compile:debug": "tsc --build --sourceMap", "depcheck": "depcheck", - "dist:cli": "pnpm compile && tsup ./src/cli.ts --format cjs --sourcemap", - "dockerTagLatest": "pnpm dist:cli && docker build -f ./Dockerfile -t fernapi/fern-java-sdk:latest ../../..", + "dist:cli": "node build.mjs", + "dockerTagLatest": "docker build -f ./Dockerfile -t fernapi/fern-java-sdk:latest ../../..", "format": "prettier --write --ignore-unknown --ignore-path ../../../shared/.prettierignore \"**\"", "format:check": "prettier --check --ignore-unknown --ignore-path ../../../shared/.prettierignore \"**\"", "lint:eslint": "eslint --max-warnings 0 . --ignore-pattern=../../../.eslintignore", "lint:eslint:fix": "yarn lint:eslint --fix", - "podmanTagLatest": "pnpm dist:cli && podman build -f ./Dockerfile -t fernapi/fern-java-sdk:latest ../../..", + "podmanTagLatest": "podman build -f ./Dockerfile -t fernapi/fern-java-sdk:latest ../../..", "publish:cli": "pnpm dist:cli && cd dist && yarn npm publish", "test": "vitest --passWithNoTests --run", "test:debug": "pnpm run test --inspect --no-file-parallelism", @@ -54,7 +54,6 @@ "@types/node": "18.15.3", "depcheck": "^1.4.7", "lodash-es": "^4.17.21", - "tsup": "^8.5.0", "typescript": "5.9.3", "vitest": "^4.0.8" } diff --git a/generators/openapi/build.mjs b/generators/openapi/build.mjs new file mode 100644 index 000000000000..2a1865dff73e --- /dev/null +++ b/generators/openapi/build.mjs @@ -0,0 +1,3 @@ +import { buildGenerator, getDirname } from '@fern-api/configs/build-utils.mjs'; + +await buildGenerator(getDirname(import.meta.url)); diff --git a/generators/openapi/package.json b/generators/openapi/package.json index 7faa4b2f6390..4f01f8967aee 100644 --- a/generators/openapi/package.json +++ b/generators/openapi/package.json @@ -27,14 +27,14 @@ "compile": "tsc --build", "compile:debug": "tsc --build --sourceMap", "depcheck": "depcheck", - "dist:cli": "pnpm compile && tsup ./src/cli.ts --format cjs --sourcemap", - "dockerTagLatest": "pnpm dist:cli && docker build -f ./Dockerfile -t fernapi/fern-openapi:latest .", + "dist:cli": "node build.mjs", + "dockerTagLatest": "docker build -f ./Dockerfile -t fernapi/fern-openapi:latest .", "dockerTagVersion": "pnpm dist:cli && docker build -f ./Dockerfile -t fernapi/fern-openapi:${0} .", "format": "prettier --write --ignore-unknown --ignore-path ../../shared/.prettierignore \"**\"", "format:check": "prettier --check --ignore-unknown --ignore-path ../../shared/.prettierignore \"**\"", "lint:eslint": "eslint --max-warnings 0 . --ignore-pattern=../../.eslintignore", "lint:eslint:fix": "yarn lint:eslint --fix", - "podmanTagLatest": "pnpm dist:cli && podman build -f ./Dockerfile -t fernapi/fern-openapi:latest .", + "podmanTagLatest": "podman build -f ./Dockerfile -t fernapi/fern-openapi:latest .", "podmanTagVersion": "pnpm dist:cli && podman build -f ./Dockerfile -t fernapi/fern-openapi:${0} .", "publish:cli": "pnpm dist:cli && cd dist && yarn npm publish", "test": "vitest --passWithNoTests --run", @@ -55,7 +55,6 @@ "js-yaml": "^4.1.1", "lodash-es": "^4.17.21", "openapi-types": "^12.1.3", - "tsup": "^8.5.0", "typescript": "5.9.3", "url-join": "^5.0.0", "vitest": "^4.0.8" diff --git a/generators/php/base/package.json b/generators/php/base/package.json index d3309cad3cda..f8d2ca080b56 100644 --- a/generators/php/base/package.json +++ b/generators/php/base/package.json @@ -26,12 +26,10 @@ "compile": "tsc --build", "compile:debug": "tsc --build --sourceMap", "depcheck": "depcheck", - "dist:cli": "pnpm compile && tsup ./src/cli.ts --format cjs --sourcemap", "format": "prettier --write --ignore-unknown --ignore-path ../../../shared/.prettierignore \"**\"", "format:check": "prettier --check --ignore-unknown --ignore-path ../../../shared/.prettierignore \"**\"", "lint:eslint": "eslint --max-warnings 0 . --ignore-pattern=../../../.eslintignore", "lint:eslint:fix": "yarn lint:eslint --fix", - "publish:cli": "pnpm dist:cli && cd dist && yarn npm publish", "test": "vitest --passWithNoTests --run", "test:debug": "pnpm run test --inspect --no-file-parallelism", "test:update": "vitest --passWithNoTests --run -u" @@ -48,7 +46,6 @@ "@types/node": "18.15.3", "depcheck": "^1.4.7", "lodash-es": "^4.17.21", - "tsup": "^8.5.0", "typescript": "5.9.3", "vitest": "^4.0.8" } diff --git a/generators/php/dynamic-snippets/build.cjs b/generators/php/dynamic-snippets/build.cjs deleted file mode 100644 index 1a4c018666d9..000000000000 --- a/generators/php/dynamic-snippets/build.cjs +++ /dev/null @@ -1,77 +0,0 @@ -const { NodeModulesPolyfillPlugin } = require('@esbuild-plugins/node-modules-polyfill'); -const { NodeGlobalsPolyfillPlugin } = require('@esbuild-plugins/node-globals-polyfill'); -const packageJson = require("./package.json"); -const tsup = require('tsup'); -const { writeFile, mkdir } = require("fs/promises"); -const path = require("path"); - -main(); - -async function main() { - const config = { - entry: ['src/**/*.ts', '!src/__test__'], - target: "es2017", - minify: true, - dts: true, - sourcemap: true, - esbuildPlugins: [ - NodeModulesPolyfillPlugin(), - NodeGlobalsPolyfillPlugin({ - process: true, - buffer: true, - util: true - }) - ], - tsconfig: "./build.tsconfig.json" - }; - - await tsup.build({ - ...config, - format: ['cjs'], - outDir: 'dist/cjs', - clean: true, - }); - - await tsup.build({ - ...config, - format: ['esm'], - outDir: 'dist/esm', - clean: false, - }); - - await mkdir(path.join(__dirname, "dist"), { recursive: true }); - process.chdir(path.join(__dirname, "dist")); - - await writeFile( - "package.json", - JSON.stringify( - { - name: packageJson.name, - version: process.argv[2] || packageJson.version, - repository: packageJson.repository, - type: "module", - exports: { - // Conditional exports for ESM and CJS. - "import": { - "types": "./esm/index.d.ts", - "default": "./esm/index.js" - }, - "require": { - "types": "./cjs/index.d.cts", - "default": "./cjs/index.cjs" - } - }, - // Fallback for older tooling or direct imports. - main: "./cjs/index.cjs", - module: "./esm/index.js", - types: "./cjs/index.d.cts", - files: [ - "cjs", - "esm" - ] - }, - undefined, - 2 - ) - ); -} diff --git a/generators/php/dynamic-snippets/package.json b/generators/php/dynamic-snippets/package.json index c8f06f41758a..d87415e325ea 100644 --- a/generators/php/dynamic-snippets/package.json +++ b/generators/php/dynamic-snippets/package.json @@ -26,14 +26,11 @@ "compile": "tsc --build", "compile:debug": "tsc --build --sourceMap", "depcheck": "depcheck", - "dist": "pnpm compile && node build.cjs", "test": "vitest --passWithNoTests --run", "test:debug": "pnpm run test --inspect --no-file-parallelism", "test:update": "vitest --passWithNoTests --run -u" }, "devDependencies": { - "@esbuild-plugins/node-globals-polyfill": "^0.2.3", - "@esbuild-plugins/node-modules-polyfill": "^0.2.2", "@fern-api/browser-compatible-base-generator": "workspace:*", "@fern-api/configs": "workspace:*", "@fern-api/core-utils": "workspace:*", @@ -44,7 +41,6 @@ "@types/node": "18.15.3", "depcheck": "^1.4.7", "lodash-es": "^4.17.21", - "tsup": "^8.5.0", "typescript": "5.9.3", "vitest": "^4.0.8" } diff --git a/generators/php/model/build.mjs b/generators/php/model/build.mjs new file mode 100644 index 000000000000..c5df3758b579 --- /dev/null +++ b/generators/php/model/build.mjs @@ -0,0 +1,5 @@ +import { buildGenerator, getDirname } from '@fern-api/configs/build-utils.mjs'; + +await buildGenerator(getDirname(import.meta.url), { + copy: { from: '../base/src/asIs', to: './dist/asIs' } +}); diff --git a/generators/php/model/package.json b/generators/php/model/package.json index 82fef1f0406b..d6c5899aafbc 100644 --- a/generators/php/model/package.json +++ b/generators/php/model/package.json @@ -26,13 +26,13 @@ "compile": "tsc --build", "compile:debug": "tsc --build --sourceMap", "depcheck": "depcheck", - "dist:cli": "pnpm compile && tsup ./src/cli.ts --sourcemap && cp -R ../base/src/asIs dist", - "dockerTagLatest": "pnpm dist:cli && docker build -f ./Dockerfile -t fernapi/fern-php-model:latest ../../..", + "dist:cli": "node build.mjs", + "dockerTagLatest": "docker build -f ./Dockerfile -t fernapi/fern-php-model:latest ../../..", "format": "prettier --write --ignore-unknown --ignore-path ../../../shared/.prettierignore \"**\"", "format:check": "prettier --check --ignore-unknown --ignore-path ../../../shared/.prettierignore \"**\"", "lint:eslint": "eslint --max-warnings 0 . --ignore-pattern=../../../.eslintignore", "lint:eslint:fix": "yarn lint:eslint --fix", - "podmanTagLatest": "pnpm dist:cli && podman build -f ./Dockerfile -t fernapi/fern-php-model:latest ../../..", + "podmanTagLatest": "podman build -f ./Dockerfile -t fernapi/fern-php-model:latest ../../..", "publish:cli": "pnpm dist:cli && cd dist && yarn npm publish", "test": "vitest --passWithNoTests --run", "test:debug": "pnpm run test --inspect --no-file-parallelism", @@ -47,7 +47,6 @@ "@fern-fern/ir-sdk": "^62.1.0", "@types/node": "18.15.3", "depcheck": "^1.4.7", - "tsup": "^8.5.0", "typescript": "5.9.3", "vitest": "^4.0.8", "zod": "^3.22.3" diff --git a/generators/php/model/turbo.jsonc b/generators/php/model/turbo.jsonc new file mode 100644 index 000000000000..1b43312be3f1 --- /dev/null +++ b/generators/php/model/turbo.jsonc @@ -0,0 +1,20 @@ +{ + "extends": ["//"], + "tasks": { + "dist:cli": { + "inputs": [ + "../base/src/asIs/**", + /** same as global task **/ + "src/**", + "tests/**", + "package.json", + "tsconfig.json", + "build.mjs", + "$TURBO_ROOT$/packages/configs/**", + "$TURBO_ROOT$/shared/.prettierignore", + "$TURBO_ROOT$/shared/stylelintrc.shared.json", + "$TURBO_ROOT$/tsconfig.eslint.json" + ] + } + } +} diff --git a/generators/php/sdk/build.mjs b/generators/php/sdk/build.mjs new file mode 100644 index 000000000000..c5df3758b579 --- /dev/null +++ b/generators/php/sdk/build.mjs @@ -0,0 +1,5 @@ +import { buildGenerator, getDirname } from '@fern-api/configs/build-utils.mjs'; + +await buildGenerator(getDirname(import.meta.url), { + copy: { from: '../base/src/asIs', to: './dist/asIs' } +}); diff --git a/generators/php/sdk/package.json b/generators/php/sdk/package.json index e41b667d5a75..74a6b866e9a7 100644 --- a/generators/php/sdk/package.json +++ b/generators/php/sdk/package.json @@ -26,13 +26,13 @@ "compile": "tsc --build", "compile:debug": "tsc --build --sourceMap", "depcheck": "depcheck", - "dist:cli": "pnpm compile && tsup ./src/cli.ts --sourcemap && cp -R ../base/src/asIs dist", - "dockerTagLatest": "pnpm dist:cli && docker build -f ./Dockerfile -t fernapi/fern-php-sdk:latest ../../..", + "dist:cli": "node build.mjs", + "dockerTagLatest": "docker build -f ./Dockerfile -t fernapi/fern-php-sdk:latest ../../..", "format": "prettier --write --ignore-unknown --ignore-path ../../../shared/.prettierignore \"**\"", "format:check": "prettier --check --ignore-unknown --ignore-path ../../../shared/.prettierignore \"**\"", "lint:eslint": "eslint --max-warnings 0 . --ignore-pattern=../../../.eslintignore", "lint:eslint:fix": "yarn lint:eslint --fix", - "podmanTagLatest": "pnpm dist:cli && podman build -f ./Dockerfile -t fernapi/fern-php-sdk:latest ../../..", + "podmanTagLatest": "podman build -f ./Dockerfile -t fernapi/fern-php-sdk:latest ../../..", "publish:cli": "pnpm dist:cli && cd dist && yarn npm publish", "test": "vitest --passWithNoTests --run", "test:debug": "pnpm run test --inspect --no-file-parallelism", @@ -56,7 +56,6 @@ "@types/node": "18.15.3", "depcheck": "^1.4.7", "lodash-es": "^4.17.21", - "tsup": "^8.5.0", "typescript": "5.9.3", "vitest": "^4.0.8", "zod": "^3.22.3" diff --git a/generators/php/sdk/tsconfig.json b/generators/php/sdk/tsconfig.json index 79b65f662d57..5bc8ebd57eb1 100644 --- a/generators/php/sdk/tsconfig.json +++ b/generators/php/sdk/tsconfig.json @@ -6,6 +6,9 @@ { "path": "../model" }, + { + "path": "../dynamic-snippets" + }, { "path": "../codegen" }, @@ -13,16 +16,16 @@ "path": "../base" }, { - "path": "../../../packages/commons/fs-utils" + "path": "../../../packages/cli/logger" }, { - "path": "../../../packages/commons/core-utils" + "path": "../../../packages/commons/fs-utils" }, { - "path": "../dynamic-snippets" + "path": "../../../packages/commons/core-utils" }, { - "path": "../../../packages/cli/logger" + "path": "../../../packages/commons/mock-utils" }, { "path": "../../base" diff --git a/generators/php/sdk/turbo.jsonc b/generators/php/sdk/turbo.jsonc new file mode 100644 index 000000000000..1b43312be3f1 --- /dev/null +++ b/generators/php/sdk/turbo.jsonc @@ -0,0 +1,20 @@ +{ + "extends": ["//"], + "tasks": { + "dist:cli": { + "inputs": [ + "../base/src/asIs/**", + /** same as global task **/ + "src/**", + "tests/**", + "package.json", + "tsconfig.json", + "build.mjs", + "$TURBO_ROOT$/packages/configs/**", + "$TURBO_ROOT$/shared/.prettierignore", + "$TURBO_ROOT$/shared/stylelintrc.shared.json", + "$TURBO_ROOT$/tsconfig.eslint.json" + ] + } + } +} diff --git a/generators/postman/build.mjs b/generators/postman/build.mjs new file mode 100644 index 000000000000..2a1865dff73e --- /dev/null +++ b/generators/postman/build.mjs @@ -0,0 +1,3 @@ +import { buildGenerator, getDirname } from '@fern-api/configs/build-utils.mjs'; + +await buildGenerator(getDirname(import.meta.url)); diff --git a/generators/postman/package.json b/generators/postman/package.json index 819ec7ccd3ca..3c76bf0d1bd4 100644 --- a/generators/postman/package.json +++ b/generators/postman/package.json @@ -27,14 +27,14 @@ "compile": "tsc --build", "compile:debug": "tsc --build --sourceMap", "depcheck": "depcheck", - "dist:cli": "pnpm compile && tsup", - "dockerTagLatest": "pnpm dist:cli && docker build -f ./Dockerfile -t fernapi/fern-postman:latest .", + "dist:cli": "node build.mjs", + "dockerTagLatest": "docker build -f ./Dockerfile -t fernapi/fern-postman:latest .", "dockerTagVersion": "pnpm dist:cli && docker build -f ./Dockerfile -t fernapi/fern-postman:${0} .", "format": "prettier --write --ignore-unknown --ignore-path ../../shared/.prettierignore \"**\"", "format:check": "prettier --check --ignore-unknown --ignore-path ../../shared/.prettierignore \"**\"", "lint:eslint": "eslint --max-warnings 0 . --ignore-pattern=../../.eslintignore", "lint:eslint:fix": "yarn lint:eslint --fix", - "podmanTagLatest": "pnpm dist:cli && podman build -f ./Dockerfile -t fernapi/fern-postman:latest .", + "podmanTagLatest": "podman build -f ./Dockerfile -t fernapi/fern-postman:latest .", "podmanTagVersion": "pnpm dist:cli && podman build -f ./Dockerfile -t fernapi/fern-postman:${0} .", "publish:cli": "pnpm dist:cli && cd dist && yarn npm publish", "test": "vitest --passWithNoTests --run", @@ -53,7 +53,6 @@ "depcheck": "^1.4.7", "endent": "^2.1.0", "lodash": "^4.17.21", - "tsup": "^8.5.0", "typescript": "5.9.3", "vitest": "^4.0.8", "zod": "^3.22.3" diff --git a/generators/postman/tsup.config.ts b/generators/postman/tsup.config.ts deleted file mode 100644 index b948a27a8128..000000000000 --- a/generators/postman/tsup.config.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { defineConfig } from "tsup"; - -export default defineConfig({ - entry: ["src/cli.ts"], - format: "cjs", - sourcemap: true -}); diff --git a/generators/python-v2/base/tsconfig.json b/generators/python-v2/base/tsconfig.json index 29ef7f562ba1..22b054f5d765 100644 --- a/generators/python-v2/base/tsconfig.json +++ b/generators/python-v2/base/tsconfig.json @@ -9,6 +9,9 @@ { "path": "../ast" }, + { + "path": "../../../packages/commons/logging-execa" + }, { "path": "../../../packages/commons/fs-utils" }, diff --git a/generators/python-v2/dynamic-snippets/package.json b/generators/python-v2/dynamic-snippets/package.json index 27aa5b3a2efa..3559d312d56d 100644 --- a/generators/python-v2/dynamic-snippets/package.json +++ b/generators/python-v2/dynamic-snippets/package.json @@ -26,14 +26,11 @@ "compile": "tsc --build", "compile:debug": "tsc --build --sourceMap", "depcheck": "depcheck", - "dist": "pnpm compile && node build.cjs", "test": "vitest --passWithNoTests --run", "test:debug": "pnpm run test --inspect --no-file-parallelism", "test:update": "vitest --passWithNoTests --run -u" }, "devDependencies": { - "@esbuild-plugins/node-globals-polyfill": "^0.2.3", - "@esbuild-plugins/node-modules-polyfill": "^0.2.2", "@fern-api/browser-compatible-base-generator": "workspace:*", "@fern-api/configs": "workspace:*", "@fern-api/core-utils": "workspace:*", @@ -45,7 +42,6 @@ "@types/node": "18.15.3", "depcheck": "^1.4.7", "lodash-es": "^4.17.21", - "tsup": "^8.5.0", "typescript": "5.9.3", "vitest": "^4.0.8" } diff --git a/generators/python-v2/fastapi/build.mjs b/generators/python-v2/fastapi/build.mjs new file mode 100644 index 000000000000..2a1865dff73e --- /dev/null +++ b/generators/python-v2/fastapi/build.mjs @@ -0,0 +1,3 @@ +import { buildGenerator, getDirname } from '@fern-api/configs/build-utils.mjs'; + +await buildGenerator(getDirname(import.meta.url)); diff --git a/generators/python-v2/fastapi/package.json b/generators/python-v2/fastapi/package.json index a60530df0ba5..94c84de96b39 100644 --- a/generators/python-v2/fastapi/package.json +++ b/generators/python-v2/fastapi/package.json @@ -26,13 +26,13 @@ "compile": "tsc --build", "compile:debug": "tsc --build --sourceMap", "depcheck": "depcheck", - "dist:cli": "pnpm compile && tsup ./src/cli.ts --format cjs --sourcemap", - "dockerTagLatest": "pnpm dist:cli && docker build -f ./Dockerfile -t fernapi/fern-fastapi-server-v2:latest ../../..", + "dist:cli": "node build.mjs", + "dockerTagLatest": "docker build -f ./Dockerfile -t fernapi/fern-fastapi-server-v2:latest ../../..", "format": "prettier --write --ignore-unknown --ignore-path ../../../shared/.prettierignore \"**\"", "format:check": "prettier --check --ignore-unknown --ignore-path ../../../shared/.prettierignore \"**\"", "lint:eslint": "eslint --max-warnings 0 . --ignore-pattern=../../../.eslintignore", "lint:eslint:fix": "yarn lint:eslint --fix", - "podmanTagLatest": "pnpm dist:cli && podman build -f ./Dockerfile -t fernapi/fern-fastapi-server-v2:latest ../../..", + "podmanTagLatest": "podman build -f ./Dockerfile -t fernapi/fern-fastapi-server-v2:latest ../../..", "publish:cli": "pnpm dist:cli && cd dist && yarn npm publish", "test": "vitest --passWithNoTests --run", "test:debug": "pnpm run test --inspect --no-file-parallelism", @@ -42,7 +42,6 @@ "@fern-api/configs": "workspace:*", "@types/node": "18.15.3", "depcheck": "^1.4.7", - "tsup": "^8.5.0", "typescript": "5.9.3", "vitest": "^4.0.8" } diff --git a/generators/python-v2/pydantic-model/build.cjs b/generators/python-v2/pydantic-model/build.cjs deleted file mode 100644 index 31d7e1d680cf..000000000000 --- a/generators/python-v2/pydantic-model/build.cjs +++ /dev/null @@ -1,16 +0,0 @@ -const tsup = require('tsup'); - -main(); - -async function main() { - await tsup.build({ - entry: ['src/**/*.ts', '!src/__test__'], - format: ['cjs'], - sourcemap: true, - clean: true, - outDir: 'dist', - external: [ - "@wasm-fmt/ruff_fmt", - ], - }); -} \ No newline at end of file diff --git a/generators/python-v2/pydantic-model/build.mjs b/generators/python-v2/pydantic-model/build.mjs new file mode 100644 index 000000000000..a21b5cd4cabd --- /dev/null +++ b/generators/python-v2/pydantic-model/build.mjs @@ -0,0 +1,7 @@ +import { buildGenerator, getDirname } from '@fern-api/configs/build-utils.mjs'; + +await buildGenerator(getDirname(import.meta.url), { + tsupOptions: { + external: ['@wasm-fmt/ruff_fmt'] + } +}); diff --git a/generators/python-v2/pydantic-model/package.json b/generators/python-v2/pydantic-model/package.json index 3491711f6519..7ec6bdbdac46 100644 --- a/generators/python-v2/pydantic-model/package.json +++ b/generators/python-v2/pydantic-model/package.json @@ -26,13 +26,13 @@ "compile": "tsc --build", "compile:debug": "tsc --build --sourceMap", "depcheck": "depcheck", - "dist:cli": "pnpm compile && node build.cjs && cp -R ../base/src/asIs dist", - "dockerTagLatest": "pnpm dist:cli && docker build -f ./Dockerfile -t fernapi/fern-pydantic-model-v2:latest ../../..", + "dist:cli": "node build.mjs", + "dockerTagLatest": "docker build -f ./Dockerfile -t fernapi/fern-pydantic-model-v2:latest ../../..", "format": "prettier --write --ignore-unknown --ignore-path ../../../shared/.prettierignore \"**\"", "format:check": "prettier --check --ignore-unknown --ignore-path ../../../shared/.prettierignore \"**\"", "lint:eslint": "eslint --max-warnings 0 . --ignore-pattern=../../../.eslintignore", "lint:eslint:fix": "yarn lint:eslint --fix", - "podmanTagLatest": "pnpm dist:cli && podman build -f ./Dockerfile -t fernapi/fern-pydantic-model-v2:latest ../../..", + "podmanTagLatest": "podman build -f ./Dockerfile -t fernapi/fern-pydantic-model-v2:latest ../../..", "publish:cli": "pnpm dist:cli && cd dist && yarn npm publish", "test": "vitest --passWithNoTests --run", "test:debug": "pnpm run test --inspect --no-file-parallelism", @@ -49,7 +49,6 @@ "@fern-fern/ir-sdk": "^61.7.0", "@types/node": "18.15.3", "depcheck": "^1.4.7", - "tsup": "^8.5.0", "typescript": "5.9.3", "vitest": "^4.0.8", "zod": "^3.22.4" diff --git a/generators/python-v2/sdk/build.mjs b/generators/python-v2/sdk/build.mjs new file mode 100644 index 000000000000..2a1865dff73e --- /dev/null +++ b/generators/python-v2/sdk/build.mjs @@ -0,0 +1,3 @@ +import { buildGenerator, getDirname } from '@fern-api/configs/build-utils.mjs'; + +await buildGenerator(getDirname(import.meta.url)); diff --git a/generators/python-v2/sdk/package.json b/generators/python-v2/sdk/package.json index 4462e3a086ae..31647ecf1eb4 100644 --- a/generators/python-v2/sdk/package.json +++ b/generators/python-v2/sdk/package.json @@ -26,13 +26,13 @@ "compile": "tsc --build", "compile:debug": "tsc --build --sourceMap", "depcheck": "depcheck", - "dist:cli": "pnpm compile && tsup ./src/cli.ts --format cjs --sourcemap", - "dockerTagLatest": "pnpm dist:cli && docker build -f ./Dockerfile -t fernapi/fern-python-sdk:latest ../../..", + "dist:cli": "node build.mjs", + "dockerTagLatest": "docker build -f ./Dockerfile -t fernapi/fern-python-sdk:latest ../../..", "format": "prettier --write --ignore-unknown --ignore-path ../../../shared/.prettierignore \"**\"", "format:check": "prettier --check --ignore-unknown --ignore-path ../../../shared/.prettierignore \"**\"", "lint:eslint": "eslint --max-warnings 0 . --ignore-pattern=../../../.eslintignore", "lint:eslint:fix": "yarn lint:eslint --fix", - "podmanTagLatest": "pnpm dist:cli && podman build -f ./Dockerfile -t fernapi/fern-python-sdk:latest ../../..", + "podmanTagLatest": "podman build -f ./Dockerfile -t fernapi/fern-python-sdk:latest ../../..", "publish:cli": "pnpm dist:cli && cd dist && yarn npm publish", "test": "vitest --passWithNoTests --run", "test:debug": "pnpm run test --inspect --no-file-parallelism", @@ -54,7 +54,6 @@ "@fern-fern/ir-sdk": "^61.7.0", "@types/node": "18.15.3", "depcheck": "^1.4.7", - "tsup": "^8.5.0", "typescript": "5.9.3", "vitest": "^4.0.8", "zod": "^3.22.4" diff --git a/generators/python-v2/sdk/tsconfig.json b/generators/python-v2/sdk/tsconfig.json index 5cfe758d6333..d5c718efd2e1 100644 --- a/generators/python-v2/sdk/tsconfig.json +++ b/generators/python-v2/sdk/tsconfig.json @@ -7,14 +7,29 @@ }, "include": ["./src/**/*"], "references": [ + { + "path": "../dynamic-snippets" + }, + { + "path": "../base" + }, + { + "path": "../ast" + }, + { + "path": "../../../packages/commons/mock-utils" + }, { "path": "../../../packages/cli/logger" }, { - "path": "../../base" + "path": "../../../packages/commons/fs-utils" }, { - "path": "../base" + "path": "../../browser-compatible-base" + }, + { + "path": "../../base" } ] } diff --git a/generators/ruby-v2/dynamic-snippets/build.cjs b/generators/ruby-v2/dynamic-snippets/build.cjs deleted file mode 100644 index d4c63fb6103e..000000000000 --- a/generators/ruby-v2/dynamic-snippets/build.cjs +++ /dev/null @@ -1,77 +0,0 @@ -const { NodeModulesPolyfillPlugin } = require('@esbuild-plugins/node-modules-polyfill'); -const { NodeGlobalsPolyfillPlugin } = require('@esbuild-plugins/node-globals-polyfill'); -const packageJson = require("./package.json"); -const tsup = require('tsup'); -const { writeFile, mkdir } = require("fs/promises"); -const path = require("path"); - -main(); - -async function main() { - const config = { - entry: ['src/**/*.ts', '!src/__test__'], - target: "es2017", - minify: true, - dts: true, - sourcemap: true, - esbuildPlugins: [ - NodeModulesPolyfillPlugin(), - NodeGlobalsPolyfillPlugin({ - process: true, - buffer: true, - util: true - }) - ], - tsconfig: "./build.tsconfig.json" - }; - - await tsup.build({ - ...config, - format: ['cjs'], - outDir: 'dist/cjs', - clean: true, - }); - - await tsup.build({ - ...config, - format: ['esm'], - outDir: 'dist/esm', - clean: false, - }); - - await mkdir(path.join(__dirname, "dist"), { recursive: true }); - process.chdir(path.join(__dirname, "dist")); - - await writeFile( - "package.json", - JSON.stringify( - { - name: packageJson.name, - version: process.argv[2] || packageJson.version, - repository: packageJson.repository, - type: "module", - exports: { - // Conditional exports for ESM and CJS. - "import": { - "types": "./esm/index.d.ts", - "default": "./esm/index.js" - }, - "require": { - "types": "./cjs/index.d.cts", - "default": "./cjs/index.cjs" - } - }, - // Fallback for older tooling or direct imports. - main: "./cjs/index.cjs", - module: "./esm/index.js", - types: "./cjs/index.d.cts", - files: [ - "cjs", - "esm" - ] - }, - undefined, - 2 - ) - ); -} \ No newline at end of file diff --git a/generators/ruby-v2/dynamic-snippets/package.json b/generators/ruby-v2/dynamic-snippets/package.json index 121e0be16e12..d6d69af9a876 100644 --- a/generators/ruby-v2/dynamic-snippets/package.json +++ b/generators/ruby-v2/dynamic-snippets/package.json @@ -26,14 +26,11 @@ "compile": "tsc --build", "compile:debug": "tsc --build --sourceMap", "depcheck": "depcheck", - "dist": "pnpm compile && node build.cjs", "test": "vitest --passWithNoTests --run", "test:debug": "pnpm run test --inspect --no-file-parallelism", "test:update": "vitest --passWithNoTests --run -u" }, "devDependencies": { - "@esbuild-plugins/node-globals-polyfill": "^0.2.3", - "@esbuild-plugins/node-modules-polyfill": "^0.2.2", "@fern-api/browser-compatible-base-generator": "workspace:*", "@fern-api/configs": "workspace:*", "@fern-api/core-utils": "workspace:*", @@ -44,7 +41,6 @@ "@types/node": "18.15.3", "depcheck": "^1.4.7", "lodash-es": "^4.17.21", - "tsup": "^8.5.0", "typescript": "5.9.3", "vitest": "^4.0.8" } diff --git a/generators/ruby-v2/model/Dockerfile b/generators/ruby-v2/model/Dockerfile index fbbf1133a6d1..1fadf102cad2 100644 --- a/generators/ruby-v2/model/Dockerfile +++ b/generators/ruby-v2/model/Dockerfile @@ -1,2 +1,21 @@ -* -!generators/ruby-v2/model/dist \ No newline at end of file +FROM ruby:3.3-alpine3.20 + +RUN apk --no-cache add \ + bash \ + build-base \ + curl \ + git \ + zip \ + nodejs \ + npm + +RUN gem install rubocop rubocop-minitest + +RUN git config --global user.name "fern" && git config --global user.email "hey@buildwithfern.com" + +RUN npm install -f -g @fern-api/generator-cli@0.2.0 + +COPY generators/ruby-v2/sdk/features.yml /assets/features.yml +COPY generators/ruby-v2/sdk/dist /dist + +ENTRYPOINT ["node", "--enable-source-maps", "/dist/cli.cjs"] \ No newline at end of file diff --git a/generators/ruby-v2/model/Dockerfile.dockerignore b/generators/ruby-v2/model/Dockerfile.dockerignore index 81767894be33..e163e4505f81 100644 --- a/generators/ruby-v2/model/Dockerfile.dockerignore +++ b/generators/ruby-v2/model/Dockerfile.dockerignore @@ -1,23 +1,3 @@ -FROM node:20.18-alpine3.20 AS node -FROM mcr.microsoft.com/dotnet/sdk:8.0-alpine3.21 - -ENV YARN_CACHE_FOLDER=/.yarn -ENV PATH="$PATH:/root/.dotnet/tools" -ENV DOTNET_NOLOGO=1 -ENV DOTNET_CLI_TELEMETRY_OPTOUT=1 -ENV DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1 - -RUN apk --no-cache add bash curl git zip -RUN git config --global user.name "fern" && git config --global user.email "hey@buildwithfern.com" - -# Copy over node contents to be able to run the compiled CLI -COPY --from=node /usr/local/bin/node /usr/local/bin/ -COPY --from=node /usr/local/lib/node_modules /usr/local/lib/node_modules -RUN ln -s ../lib/node_modules/npm/bin/npm-cli.js /usr/local/bin/npm \ - && ln -s ../lib/node_modules/npm/bin/npx-cli.js /usr/local/bin/npx - -# RUN dotnet tool install -g ruby-formatter --version "1.*" - -COPY generators/ruby-v2/model/dist /dist - -ENTRYPOINT ["node", "/dist/cli.cjs"] \ No newline at end of file +* +!generators/ruby-v2/sdk/features.yml +!generators/ruby-v2/sdk/dist \ No newline at end of file diff --git a/generators/ruby-v2/model/build.mjs b/generators/ruby-v2/model/build.mjs new file mode 100644 index 000000000000..2a1865dff73e --- /dev/null +++ b/generators/ruby-v2/model/build.mjs @@ -0,0 +1,3 @@ +import { buildGenerator, getDirname } from '@fern-api/configs/build-utils.mjs'; + +await buildGenerator(getDirname(import.meta.url)); diff --git a/generators/ruby-v2/model/package.json b/generators/ruby-v2/model/package.json index 639147c20891..f9aef18d9420 100644 --- a/generators/ruby-v2/model/package.json +++ b/generators/ruby-v2/model/package.json @@ -26,13 +26,13 @@ "compile": "tsc --build", "compile:debug": "tsc --build --sourceMap", "depcheck": "depcheck", - "dist:cli": "pnpm compile && tsup ./src/cli.ts --format cjs --sourcemap", - "dockerTagLatest": "pnpm dist:cli && docker build -f ./Dockerfile -t fernapi/fern-ruby-model:latest ../../..", + "dist:cli": "node build.mjs", + "dockerTagLatest": "docker build -f ./Dockerfile -t fernapi/fern-ruby-model:latest ../../..", "format": "prettier --write --ignore-unknown --ignore-path ../../../shared/.prettierignore \"**\"", "format:check": "prettier --check --ignore-unknown --ignore-path ../../../shared/.prettierignore \"**\"", "lint:eslint": "eslint --max-warnings 0 . --ignore-pattern=../../../.eslintignore", "lint:eslint:fix": "yarn lint:eslint --fix", - "podmanTagLatest": "pnpm dist:cli && podman build -f ./Dockerfile -t fernapi/fern-ruby-model:latest ../../..", + "podmanTagLatest": "podman build -f ./Dockerfile -t fernapi/fern-ruby-model:latest ../../..", "publish:cli": "pnpm dist:cli && cd dist && yarn npm publish", "test": "vitest --passWithNoTests --run", "test:debug": "pnpm run test --inspect --no-file-parallelism", @@ -48,7 +48,6 @@ "@fern-fern/ir-sdk": "^61.7.0", "@types/node": "18.15.3", "depcheck": "^1.4.7", - "tsup": "^8.5.0", "typescript": "5.9.3", "vitest": "^4.0.8" } diff --git a/generators/ruby-v2/sdk/build.mjs b/generators/ruby-v2/sdk/build.mjs new file mode 100644 index 000000000000..c5df3758b579 --- /dev/null +++ b/generators/ruby-v2/sdk/build.mjs @@ -0,0 +1,5 @@ +import { buildGenerator, getDirname } from '@fern-api/configs/build-utils.mjs'; + +await buildGenerator(getDirname(import.meta.url), { + copy: { from: '../base/src/asIs', to: './dist/asIs' } +}); diff --git a/generators/ruby-v2/sdk/package.json b/generators/ruby-v2/sdk/package.json index 964b08cbe1d9..726521acfc7d 100644 --- a/generators/ruby-v2/sdk/package.json +++ b/generators/ruby-v2/sdk/package.json @@ -26,13 +26,13 @@ "compile": "tsc --build", "compile:debug": "tsc --build --sourceMap", "depcheck": "depcheck", - "dist:cli": "pnpm compile && tsup ./src/cli.ts --format cjs && cp -r ../base/src/asIs ./dist/asIs", - "dockerTagLatest": "pnpm dist:cli && docker build -f ./Dockerfile -t fernapi/fern-ruby-sdk-v2:latest ../../..", + "dist:cli": "node build.mjs", + "dockerTagLatest": "docker build -f ./Dockerfile -t fernapi/fern-ruby-sdk-v2:latest ../../..", "format": "prettier --write --ignore-unknown --ignore-path ../../../shared/.prettierignore \"**\"", "format:check": "prettier --check --ignore-unknown --ignore-path ../../../shared/.prettierignore \"**\"", "lint:eslint": "eslint --max-warnings 0 . --ignore-pattern=../../../.eslintignore", "lint:eslint:fix": "yarn lint:eslint --fix", - "podmanTagLatest": "pnpm dist:cli && podman build -f ./Dockerfile -t fernapi/fern-ruby-sdk-v2:latest ../../..", + "podmanTagLatest": "podman build -f ./Dockerfile -t fernapi/fern-ruby-sdk-v2:latest ../../..", "publish:cli": "pnpm dist:cli && cd dist && yarn npm publish", "test": "vitest --passWithNoTests --run", "test:debug": "pnpm run test --inspect --no-file-parallelism", @@ -59,7 +59,6 @@ "dedent": "^1.5.1", "depcheck": "^1.4.7", "lodash-es": "^4.17.21", - "tsup": "^8.5.0", "typescript": "5.9.3", "vitest": "^4.0.8" } diff --git a/generators/ruby-v2/sdk/turbo.jsonc b/generators/ruby-v2/sdk/turbo.jsonc new file mode 100644 index 000000000000..1b43312be3f1 --- /dev/null +++ b/generators/ruby-v2/sdk/turbo.jsonc @@ -0,0 +1,20 @@ +{ + "extends": ["//"], + "tasks": { + "dist:cli": { + "inputs": [ + "../base/src/asIs/**", + /** same as global task **/ + "src/**", + "tests/**", + "package.json", + "tsconfig.json", + "build.mjs", + "$TURBO_ROOT$/packages/configs/**", + "$TURBO_ROOT$/shared/.prettierignore", + "$TURBO_ROOT$/shared/stylelintrc.shared.json", + "$TURBO_ROOT$/tsconfig.eslint.json" + ] + } + } +} diff --git a/generators/ruby/model/build.mjs b/generators/ruby/model/build.mjs new file mode 100644 index 000000000000..2a1865dff73e --- /dev/null +++ b/generators/ruby/model/build.mjs @@ -0,0 +1,3 @@ +import { buildGenerator, getDirname } from '@fern-api/configs/build-utils.mjs'; + +await buildGenerator(getDirname(import.meta.url)); diff --git a/generators/ruby/model/package.json b/generators/ruby/model/package.json index 3a7d25f37f5c..3ecb7865180b 100644 --- a/generators/ruby/model/package.json +++ b/generators/ruby/model/package.json @@ -26,14 +26,14 @@ "compile": "tsc --build", "compile:debug": "tsc --build --sourceMap", "depcheck": "depcheck", - "dist:cli": "pnpm compile && tsup ./src/cli.ts --format cjs --sourcemap", - "dockerTagLatest": "pnpm dist:cli && docker build -f ./Dockerfile -t fernapi/fern-ruby-model:latest ../../..", + "dist:cli": "node build.mjs", + "dockerTagLatest": "docker build -f ./Dockerfile -t fernapi/fern-ruby-model:latest ../../..", "dockerTagVersion": "pnpm dist:cli && docker build -f ./Dockerfile -t fernapi/fern-ruby-model:${0} ../../..", "format": "prettier --write --ignore-unknown --ignore-path ../../../shared/.prettierignore \"**\"", "format:check": "prettier --check --ignore-unknown --ignore-path ../../../shared/.prettierignore \"**\"", "lint:eslint": "eslint --max-warnings 0 . --ignore-pattern=../../../.eslintignore", "lint:eslint:fix": "yarn lint:eslint --fix", - "podmanTagLatest": "pnpm dist:cli && podman build -f ./Dockerfile -t fernapi/fern-ruby-model:latest ../../..", + "podmanTagLatest": "podman build -f ./Dockerfile -t fernapi/fern-ruby-model:latest ../../..", "podmanTagVersion": "pnpm dist:cli && podman build -f ./Dockerfile -t fernapi/fern-ruby-model:${0} ../../..", "publish:cli": "pnpm dist:cli && cd dist && yarn npm publish", "test": "vitest --passWithNoTests --run", @@ -51,7 +51,6 @@ "@fern-fern/ir-sdk": "^39", "@types/node": "18.15.3", "depcheck": "^1.4.7", - "tsup": "^8.5.0", "typescript": "5.9.3", "vitest": "^4.0.8", "zod": "^3.22.3" diff --git a/generators/ruby/sdk/build.mjs b/generators/ruby/sdk/build.mjs new file mode 100644 index 000000000000..2a1865dff73e --- /dev/null +++ b/generators/ruby/sdk/build.mjs @@ -0,0 +1,3 @@ +import { buildGenerator, getDirname } from '@fern-api/configs/build-utils.mjs'; + +await buildGenerator(getDirname(import.meta.url)); diff --git a/generators/ruby/sdk/package.json b/generators/ruby/sdk/package.json index 40c9716ab2a8..04a56c95252b 100644 --- a/generators/ruby/sdk/package.json +++ b/generators/ruby/sdk/package.json @@ -26,7 +26,7 @@ "compile": "tsc --build", "compile:debug": "tsc --build --sourceMap", "depcheck": "depcheck", - "dist:cli": "pnpm compile && tsup ./src/cli.ts --format cjs --sourcemap", + "dist:cli": "node build.mjs", "env:prod": "env-cmd -r .env-cmdrc.cjs -e prod", "publish:cli": "pnpm dist:cli && cd dist && yarn npm publish", "test": "vitest --passWithNoTests --run", @@ -45,7 +45,6 @@ "@fern-fern/ir-sdk": "^39", "@types/node": "18.15.3", "depcheck": "^1.4.7", - "tsup": "^8.5.0", "typescript": "5.9.3", "vitest": "^4.0.8", "zod": "^3.22.3" diff --git a/generators/rust/CLAUDE.md b/generators/rust/CLAUDE.md index 76fccae01f4d..a6f7440b6c64 100644 --- a/generators/rust/CLAUDE.md +++ b/generators/rust/CLAUDE.md @@ -43,10 +43,10 @@ This file provides guidance for Claude Code when working with the Rust generator ```bash pnpm install -pnpm --filter @fern-api/rust-sdk compile -pnpm --filter @fern-api/rust-model compile -pnpm --filter @fern-api/rust-sdk dist:cli # Build Docker CLI -pnpm --filter @fern-api/rust-model dist:cli # Build Docker CLI +pnpm turbo run compile --filter @fern-api/rust-sdk +pnpm turbo run compile --filter @fern-api/rust-model +pnpm turbo run dist:cli --filter @fern-api/rust-sdk # Build Docker CLI +pnpm turbo run dist:cli --filter @fern-api/rust-model # Build Docker CLI ``` ### Configuration Options diff --git a/generators/rust/dynamic-snippets/build.cjs b/generators/rust/dynamic-snippets/build.cjs deleted file mode 100644 index 80daf19a5bf7..000000000000 --- a/generators/rust/dynamic-snippets/build.cjs +++ /dev/null @@ -1,19 +0,0 @@ -const { pnpPlugin } = require("@yarnpkg/esbuild-plugin-pnp"); -const { build } = require("esbuild"); -const path = require("path"); -const { chmod } = require("fs/promises"); - -main(); - -async function main() { - await build({ - entryPoints: ["./src/**/*.ts"], - platform: "node", - target: "node18", - outdir: "./lib", - bundle: false, - plugins: [pnpPlugin()], - logLevel: "info", - tsconfig: "./build.tsconfig.json" - }); -} \ No newline at end of file diff --git a/generators/rust/dynamic-snippets/build.tsconfig.json b/generators/rust/dynamic-snippets/build.tsconfig.json deleted file mode 100644 index 27476223521c..000000000000 --- a/generators/rust/dynamic-snippets/build.tsconfig.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "extends": "./tsconfig.json", - "compilerOptions": { - "composite": false, - "incremental": false - } -} diff --git a/generators/rust/dynamic-snippets/package.json b/generators/rust/dynamic-snippets/package.json index f801a4c50b84..0410d3ea295e 100644 --- a/generators/rust/dynamic-snippets/package.json +++ b/generators/rust/dynamic-snippets/package.json @@ -9,6 +9,8 @@ }, "exports": { ".": { + "development": "./src/index.ts", + "source": "./src/index.ts", "types": "./lib/index.d.ts", "import": "./lib/index.js", "default": "./lib/index.js" @@ -38,9 +40,7 @@ "@fern-api/dynamic-ir-sdk": "^59.6.1", "@fern-api/path-utils": "workspace:*", "@types/node": "18.15.3", - "@yarnpkg/esbuild-plugin-pnp": "3.0.0-rc.15", "depcheck": "^1.4.7", - "esbuild": "^0.25.0", "typescript": "5.9.3", "vitest": "^4.0.8" } diff --git a/generators/rust/model/build.mjs b/generators/rust/model/build.mjs new file mode 100644 index 000000000000..c5df3758b579 --- /dev/null +++ b/generators/rust/model/build.mjs @@ -0,0 +1,5 @@ +import { buildGenerator, getDirname } from '@fern-api/configs/build-utils.mjs'; + +await buildGenerator(getDirname(import.meta.url), { + copy: { from: '../base/src/asIs', to: './dist/asIs' } +}); diff --git a/generators/rust/model/package.json b/generators/rust/model/package.json index 2ec4041c25d0..be9c3a4c8d13 100644 --- a/generators/rust/model/package.json +++ b/generators/rust/model/package.json @@ -26,13 +26,13 @@ "compile": "tsc --build", "compile:debug": "tsc --build --sourceMap", "depcheck": "depcheck", - "dist:cli": "rm -rf ./lib && rm -rf ./dist && pnpm compile && tsup ./src/cli.ts --format cjs && cp -R ../base/src/asIs dist", - "dockerTagLatest": "pnpm dist:cli && docker build -f ./Dockerfile -t fernapi/fern-rust-model:latest ../../..", + "dist:cli": "node build.mjs", + "dockerTagLatest": "docker build -f ./Dockerfile -t fernapi/fern-rust-model:latest ../../..", "format": "prettier --write --ignore-unknown --ignore-path ../../../shared/.prettierignore \"**\"", "format:check": "prettier --check --ignore-unknown --ignore-path ../../../shared/.prettierignore \"**\"", "lint:eslint": "eslint --max-warnings 0 . --ignore-pattern=../../../.eslintignore", "lint:eslint:fix": "yarn lint:eslint --fix", - "podmanTagLatest": "pnpm dist:cli && podman build -f ./Dockerfile -t fernapi/fern-rust-model:latest ../../..", + "podmanTagLatest": "podman build -f ./Dockerfile -t fernapi/fern-rust-model:latest ../../..", "publish:cli": "pnpm dist:cli && cd dist && yarn npm publish", "test": "vitest --passWithNoTests --run", "test:debug": "pnpm run test --inspect --no-file-parallelism", @@ -50,7 +50,6 @@ "@fern-fern/ir-sdk": "^61.7.0", "@types/node": "18.15.3", "depcheck": "^1.4.7", - "tsup": "^8.5.0", "typescript": "5.9.3", "vitest": "^4.0.8", "zod": "^3.22.4" diff --git a/generators/rust/model/turbo.jsonc b/generators/rust/model/turbo.jsonc new file mode 100644 index 000000000000..1b43312be3f1 --- /dev/null +++ b/generators/rust/model/turbo.jsonc @@ -0,0 +1,20 @@ +{ + "extends": ["//"], + "tasks": { + "dist:cli": { + "inputs": [ + "../base/src/asIs/**", + /** same as global task **/ + "src/**", + "tests/**", + "package.json", + "tsconfig.json", + "build.mjs", + "$TURBO_ROOT$/packages/configs/**", + "$TURBO_ROOT$/shared/.prettierignore", + "$TURBO_ROOT$/shared/stylelintrc.shared.json", + "$TURBO_ROOT$/tsconfig.eslint.json" + ] + } + } +} diff --git a/generators/rust/sdk/build.mjs b/generators/rust/sdk/build.mjs index 07ff2e360dd4..2fc77932adce 100644 --- a/generators/rust/sdk/build.mjs +++ b/generators/rust/sdk/build.mjs @@ -1,38 +1,11 @@ -import { join, dirname } from "path"; -import { cp, mkdir } from "fs/promises"; -import { fileURLToPath } from "url"; -import tsup from "tsup"; +import { buildGenerator, getDirname } from '@fern-api/configs/build-utils.mjs'; -const __filename = fileURLToPath(import.meta.url); -const __dirname = dirname(__filename); - -main(); - -async function main() { - // Build with tsup - await tsup.build({ - entry: ["src/cli.ts"], - format: ["cjs"], +await buildGenerator(getDirname(import.meta.url), { + tsupOptions: { noExternal: [/@fern-api\/.*/, /dedent/], - dts: false, - splitting: false, - sourcemap: false, - clean: true, - outDir: "dist" - }); - - // Copy necessary files - const filesFoldersToCopy = [ - ["./features.yml", "./dist/assets/features.yml"], - ["../base/src/asIs", "./dist/asIs"] - ]; - - for (const [source, destination] of filesFoldersToCopy) { - const destDir = dirname(join(__dirname, destination)); - await mkdir(destDir, { recursive: true }); - await cp(join(__dirname, source), join(__dirname, destination), { - recursive: true, - force: true, - }); - } -} \ No newline at end of file + }, + copy: [ + { from: './features.yml', to: './dist/assets/features.yml' }, + { from: '../base/src/asIs', to: './dist/asIs' }, + ], +}); diff --git a/generators/rust/sdk/package.json b/generators/rust/sdk/package.json index 463ec43e4fbb..fa3a68050e43 100644 --- a/generators/rust/sdk/package.json +++ b/generators/rust/sdk/package.json @@ -25,13 +25,13 @@ "clean": "rm -rf ./lib && rm -rf ./dist && tsc --build --clean", "compile": "tsc --build", "depcheck": "depcheck", - "dist:cli": "rm -rf ./lib && rm -rf ./dist && pnpm compile && node build.mjs", - "dockerTagLatest": "pnpm dist:cli && docker build -f ./Dockerfile -t fernapi/fern-rust-sdk:latest ../../..", + "dist:cli": "node build.mjs", + "dockerTagLatest": "docker build -f ./Dockerfile -t fernapi/fern-rust-sdk:latest ../../..", "format": "prettier --write --ignore-unknown --ignore-path ../../../shared/.prettierignore \"**\"", "format:check": "prettier --check --ignore-unknown --ignore-path ../../../shared/.prettierignore \"**\"", "lint:eslint": "eslint --max-warnings 0 . --ignore-pattern=../../../.eslintignore", "lint:eslint:fix": "yarn lint:eslint --fix", - "podmanTagLatest": "pnpm dist:cli && podman build -f ./Dockerfile -t fernapi/fern-rust-sdk:latest ../../..", + "podmanTagLatest": "podman build -f ./Dockerfile -t fernapi/fern-rust-sdk:latest ../../..", "publish:cli": "pnpm dist:cli && cd dist && yarn npm publish", "test": "vitest --passWithNoTests --run", "test:update": "vitest --passWithNoTests --run -u" @@ -55,7 +55,6 @@ "@fern-fern/ir-sdk": "^61.7.0", "@types/node": "18.15.3", "depcheck": "^1.4.7", - "tsup": "^8.5.0", "typescript": "5.9.3", "vitest": "^4.0.8", "zod": "^3.22.4" diff --git a/generators/rust/sdk/tsup.config.ts b/generators/rust/sdk/tsup.config.ts deleted file mode 100644 index 210098021568..000000000000 --- a/generators/rust/sdk/tsup.config.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { defineConfig } from "tsup"; - -export default defineConfig({ - entry: ["src/cli.ts"], - format: ["cjs"], - // Bundle ALL dependencies including workspace packages - noExternal: [/@fern-api\/.*/, /dedent/], - dts: false, - splitting: false, - sourcemap: false, - clean: true -}); diff --git a/generators/swift/dynamic-snippets/build.cjs b/generators/swift/dynamic-snippets/build.cjs deleted file mode 100644 index 9041a057af78..000000000000 --- a/generators/swift/dynamic-snippets/build.cjs +++ /dev/null @@ -1,78 +0,0 @@ -const { - NodeModulesPolyfillPlugin, -} = require("@esbuild-plugins/node-modules-polyfill"); -const { - NodeGlobalsPolyfillPlugin, -} = require("@esbuild-plugins/node-globals-polyfill"); -const packageJson = require("./package.json"); -const tsup = require("tsup"); -const { writeFile, mkdir } = require("fs/promises"); -const path = require("path"); - -main(); - -async function main() { - const config = { - entry: ["src/**/*.ts", "!src/__test__"], - target: "es2017", - minify: true, - dts: true, - sourcemap: true, - esbuildPlugins: [ - NodeModulesPolyfillPlugin(), - NodeGlobalsPolyfillPlugin({ - process: true, - buffer: true, - util: true, - }), - ], - tsconfig: "./build.tsconfig.json", - }; - - await tsup.build({ - ...config, - format: ["cjs"], - outDir: "dist/cjs", - clean: true, - }); - - await tsup.build({ - ...config, - format: ["esm"], - outDir: "dist/esm", - clean: false, - }); - - await mkdir(path.join(__dirname, "dist"), { recursive: true }); - process.chdir(path.join(__dirname, "dist")); - - await writeFile( - "package.json", - JSON.stringify( - { - name: packageJson.name, - version: process.argv[2] || packageJson.version, - repository: packageJson.repository, - type: "module", - exports: { - // Conditional exports for ESM and CJS. - import: { - types: "./esm/index.d.ts", - default: "./esm/index.js", - }, - require: { - types: "./cjs/index.d.cts", - default: "./cjs/index.cjs", - }, - }, - // Fallback for older tooling or direct imports. - main: "./cjs/index.cjs", - module: "./esm/index.js", - types: "./cjs/index.d.cts", - files: ["cjs", "esm"], - }, - undefined, - 2, - ), - ); -} diff --git a/generators/swift/dynamic-snippets/package.json b/generators/swift/dynamic-snippets/package.json index c069774dbad3..4059ef9db07f 100644 --- a/generators/swift/dynamic-snippets/package.json +++ b/generators/swift/dynamic-snippets/package.json @@ -26,14 +26,11 @@ "compile": "tsc --build", "compile:debug": "tsc --build --sourceMap", "depcheck": "depcheck", - "dist": "pnpm compile && node build.cjs", "test": "vitest --passWithNoTests --run", "test:debug": "pnpm run test --inspect --no-file-parallelism", "test:update": "vitest --passWithNoTests --run -u" }, "devDependencies": { - "@esbuild-plugins/node-globals-polyfill": "^0.2.3", - "@esbuild-plugins/node-modules-polyfill": "^0.2.2", "@fern-api/browser-compatible-base-generator": "workspace:*", "@fern-api/configs": "workspace:*", "@fern-api/core-utils": "workspace:*", @@ -44,7 +41,6 @@ "@types/node": "18.15.3", "depcheck": "^1.4.7", "lodash-es": "^4.17.21", - "tsup": "^8.5.0", "typescript": "5.9.2", "vitest": "^4.0.8" } diff --git a/generators/swift/model/build.mjs b/generators/swift/model/build.mjs new file mode 100644 index 000000000000..107d8359e863 --- /dev/null +++ b/generators/swift/model/build.mjs @@ -0,0 +1,5 @@ +import { buildGenerator, getDirname } from '@fern-api/configs/build-utils.mjs'; + +await buildGenerator(getDirname(import.meta.url), { + copy: [{ from: '../base/src/asIs', to: './dist/asIs' }, { from: '../base/src/template', to: './dist/template' }] +}); diff --git a/generators/swift/model/package.json b/generators/swift/model/package.json index eeb345bb6c48..642edaa0acde 100644 --- a/generators/swift/model/package.json +++ b/generators/swift/model/package.json @@ -26,9 +26,9 @@ "compile": "tsc --build", "compile:debug": "tsc --build --sourceMap", "depcheck": "depcheck", - "dist:cli": "pnpm compile && tsup ./src/cli.ts --sourcemap && cp -R ../base/src/asIs dist && cp -R ../base/src/template dist", - "dockerTagLatest": "pnpm dist:cli && docker build -f ./Dockerfile -t fernapi/fern-swift-model:latest ../../..", - "podmanTagLatest": "pnpm dist:cli && podman build -f ./Dockerfile -t fernapi/fern-swift-model:latest ../../..", + "dist:cli": "node build.mjs", + "dockerTagLatest": "docker build -f ./Dockerfile -t fernapi/fern-swift-model:latest ../../..", + "podmanTagLatest": "podman build -f ./Dockerfile -t fernapi/fern-swift-model:latest ../../..", "publish:cli": "pnpm dist:cli && cd dist && yarn npm publish", "test": "vitest --passWithNoTests --run", "test:debug": "pnpm run test --inspect --no-file-parallelism", @@ -49,7 +49,6 @@ "@types/lodash-es": "^4.17.12", "@types/node": "18.15.3", "depcheck": "^1.4.7", - "tsup": "^8.5.0", "typescript": "5.9.2", "vitest": "^4.0.8", "zod": "^3.22.3" diff --git a/generators/swift/model/turbo.jsonc b/generators/swift/model/turbo.jsonc new file mode 100644 index 000000000000..1b43312be3f1 --- /dev/null +++ b/generators/swift/model/turbo.jsonc @@ -0,0 +1,20 @@ +{ + "extends": ["//"], + "tasks": { + "dist:cli": { + "inputs": [ + "../base/src/asIs/**", + /** same as global task **/ + "src/**", + "tests/**", + "package.json", + "tsconfig.json", + "build.mjs", + "$TURBO_ROOT$/packages/configs/**", + "$TURBO_ROOT$/shared/.prettierignore", + "$TURBO_ROOT$/shared/stylelintrc.shared.json", + "$TURBO_ROOT$/tsconfig.eslint.json" + ] + } + } +} diff --git a/generators/swift/sdk/build.mjs b/generators/swift/sdk/build.mjs new file mode 100644 index 000000000000..b821019d1244 --- /dev/null +++ b/generators/swift/sdk/build.mjs @@ -0,0 +1,6 @@ +import { buildGenerator, getDirname } from '@fern-api/configs/build-utils.mjs'; + +await buildGenerator(getDirname(import.meta.url), { + copy: [ + { from: '../base/src/asIs', to: './dist/asIs' }, { from: '../base/src/template', to: './dist/template' }] +}); diff --git a/generators/swift/sdk/package.json b/generators/swift/sdk/package.json index 4b90c360e40e..258592d01229 100644 --- a/generators/swift/sdk/package.json +++ b/generators/swift/sdk/package.json @@ -26,9 +26,9 @@ "compile": "tsc --build", "compile:debug": "tsc --build --sourceMap", "depcheck": "depcheck", - "dist:cli": "rm -rf ./lib && rm -rf ./dist && pnpm compile && tsup ./src/cli.ts --format cjs --sourcemap && cp -R ../base/src/asIs dist && cp -R ../base/src/template dist", - "dockerTagLatest": "pnpm dist:cli && docker build -f ./Dockerfile -t fernapi/fern-swift-sdk:latest ../../..", - "podmanTagLatest": "pnpm dist:cli && podman build -f ./Dockerfile -t fernapi/fern-swift-sdk:latest ../../..", + "dist:cli": "node build.mjs", + "dockerTagLatest": "docker build -f ./Dockerfile -t fernapi/fern-swift-sdk:latest ../../..", + "podmanTagLatest": "podman build -f ./Dockerfile -t fernapi/fern-swift-sdk:latest ../../..", "publish:cli": "pnpm dist:cli && cd dist && yarn npm publish", "test": "vitest --passWithNoTests --run", "test:debug": "pnpm run test --inspect --no-file-parallelism", @@ -54,7 +54,6 @@ "@types/node": "18.15.3", "depcheck": "^1.4.7", "lodash-es": "^4.17.21", - "tsup": "^8.5.0", "typescript": "5.9.2", "vitest": "^4.0.8", "zod": "^3.25.75" diff --git a/generators/swift/sdk/turbo.jsonc b/generators/swift/sdk/turbo.jsonc new file mode 100644 index 000000000000..1b43312be3f1 --- /dev/null +++ b/generators/swift/sdk/turbo.jsonc @@ -0,0 +1,20 @@ +{ + "extends": ["//"], + "tasks": { + "dist:cli": { + "inputs": [ + "../base/src/asIs/**", + /** same as global task **/ + "src/**", + "tests/**", + "package.json", + "tsconfig.json", + "build.mjs", + "$TURBO_ROOT$/packages/configs/**", + "$TURBO_ROOT$/shared/.prettierignore", + "$TURBO_ROOT$/shared/stylelintrc.shared.json", + "$TURBO_ROOT$/tsconfig.eslint.json" + ] + } + } +} diff --git a/generators/typescript-mcp/model/build.mjs b/generators/typescript-mcp/model/build.mjs new file mode 100644 index 000000000000..286bbee80b30 --- /dev/null +++ b/generators/typescript-mcp/model/build.mjs @@ -0,0 +1,6 @@ +import { buildGenerator, getDirname } from '@fern-api/configs/build-utils.mjs'; + +await buildGenerator(getDirname(import.meta.url), { + + copy: { from: '../base/src/asIs', to: './dist/asIs' } +}); diff --git a/generators/typescript-mcp/model/package.json b/generators/typescript-mcp/model/package.json index 6e2531226a42..d396b03fde7f 100644 --- a/generators/typescript-mcp/model/package.json +++ b/generators/typescript-mcp/model/package.json @@ -26,9 +26,9 @@ "compile": "tsc --build", "compile:debug": "tsc --build --sourceMap", "depcheck": "depcheck", - "dist:cli": "pnpm compile && tsup ./src/cli.ts --sourcemap && cp -R ../base/src/asIs dist", - "dockerTagLatest": "pnpm dist:cli && docker build -f ./Dockerfile -t fernapi/fern-typescript-mcp-model:latest ../../..", - "podmanTagLatest": "pnpm dist:cli && podman build -f ./Dockerfile -t fernapi/fern-typescript-mcp-model:latest ../../..", + "dist:cli": "node build.mjs", + "dockerTagLatest": "docker build -f ./Dockerfile -t fernapi/fern-typescript-mcp-model:latest ../../..", + "podmanTagLatest": "podman build -f ./Dockerfile -t fernapi/fern-typescript-mcp-model:latest ../../..", "publish:cli": "pnpm dist:cli && cd dist && npm publish", "test": "vitest --passWithNoTests --run", "test:debug": "pnpm run test --inspect --no-file-parallelism", @@ -43,7 +43,6 @@ "@fern-fern/ir-sdk": "^58.2.0", "@types/node": "18.15.3", "depcheck": "^1.4.7", - "tsup": "^8.5.0", "typescript": "5.9.3", "vitest": "^4.0.8" } diff --git a/generators/typescript-mcp/model/turbo.jsonc b/generators/typescript-mcp/model/turbo.jsonc new file mode 100644 index 000000000000..1b43312be3f1 --- /dev/null +++ b/generators/typescript-mcp/model/turbo.jsonc @@ -0,0 +1,20 @@ +{ + "extends": ["//"], + "tasks": { + "dist:cli": { + "inputs": [ + "../base/src/asIs/**", + /** same as global task **/ + "src/**", + "tests/**", + "package.json", + "tsconfig.json", + "build.mjs", + "$TURBO_ROOT$/packages/configs/**", + "$TURBO_ROOT$/shared/.prettierignore", + "$TURBO_ROOT$/shared/stylelintrc.shared.json", + "$TURBO_ROOT$/tsconfig.eslint.json" + ] + } + } +} diff --git a/generators/typescript-mcp/server/build.mjs b/generators/typescript-mcp/server/build.mjs new file mode 100644 index 000000000000..c5df3758b579 --- /dev/null +++ b/generators/typescript-mcp/server/build.mjs @@ -0,0 +1,5 @@ +import { buildGenerator, getDirname } from '@fern-api/configs/build-utils.mjs'; + +await buildGenerator(getDirname(import.meta.url), { + copy: { from: '../base/src/asIs', to: './dist/asIs' } +}); diff --git a/generators/typescript-mcp/server/package.json b/generators/typescript-mcp/server/package.json index 254ddb26150b..bf25b1184035 100644 --- a/generators/typescript-mcp/server/package.json +++ b/generators/typescript-mcp/server/package.json @@ -26,9 +26,9 @@ "compile": "tsc --build", "compile:debug": "tsc --build --sourceMap", "depcheck": "depcheck", - "dist:cli": "pnpm compile && tsup ./src/cli.ts --sourcemap && cp -R ../base/src/asIs dist", - "dockerTagLatest": "pnpm dist:cli && docker build -f ./Dockerfile -t fernapi/fern-typescript-mcp-server:latest ../../..", - "podmanTagLatest": "pnpm dist:cli && podman build -f ./Dockerfile -t fernapi/fern-typescript-mcp-server:latest ../../..", + "dist:cli": "node build.mjs", + "dockerTagLatest": "docker build -f ./Dockerfile -t fernapi/fern-typescript-mcp-server:latest ../../..", + "podmanTagLatest": "podman build -f ./Dockerfile -t fernapi/fern-typescript-mcp-server:latest ../../..", "publish:cli": "pnpm dist:cli && cd dist && npm publish", "test": "vitest --passWithNoTests --run", "test:debug": "pnpm run test --inspect --no-file-parallelism", @@ -46,7 +46,6 @@ "@fern-typescript/sdk-generator-cli": "workspace:*", "@types/node": "18.15.3", "depcheck": "^1.4.7", - "tsup": "^8.5.0", "typescript": "5.9.3", "vitest": "^4.0.8" } diff --git a/generators/typescript-mcp/server/turbo.jsonc b/generators/typescript-mcp/server/turbo.jsonc new file mode 100644 index 000000000000..1b43312be3f1 --- /dev/null +++ b/generators/typescript-mcp/server/turbo.jsonc @@ -0,0 +1,20 @@ +{ + "extends": ["//"], + "tasks": { + "dist:cli": { + "inputs": [ + "../base/src/asIs/**", + /** same as global task **/ + "src/**", + "tests/**", + "package.json", + "tsconfig.json", + "build.mjs", + "$TURBO_ROOT$/packages/configs/**", + "$TURBO_ROOT$/shared/.prettierignore", + "$TURBO_ROOT$/shared/stylelintrc.shared.json", + "$TURBO_ROOT$/tsconfig.eslint.json" + ] + } + } +} diff --git a/generators/typescript-v2/dynamic-snippets/build.cjs b/generators/typescript-v2/dynamic-snippets/build.cjs deleted file mode 100644 index 1a4c018666d9..000000000000 --- a/generators/typescript-v2/dynamic-snippets/build.cjs +++ /dev/null @@ -1,77 +0,0 @@ -const { NodeModulesPolyfillPlugin } = require('@esbuild-plugins/node-modules-polyfill'); -const { NodeGlobalsPolyfillPlugin } = require('@esbuild-plugins/node-globals-polyfill'); -const packageJson = require("./package.json"); -const tsup = require('tsup'); -const { writeFile, mkdir } = require("fs/promises"); -const path = require("path"); - -main(); - -async function main() { - const config = { - entry: ['src/**/*.ts', '!src/__test__'], - target: "es2017", - minify: true, - dts: true, - sourcemap: true, - esbuildPlugins: [ - NodeModulesPolyfillPlugin(), - NodeGlobalsPolyfillPlugin({ - process: true, - buffer: true, - util: true - }) - ], - tsconfig: "./build.tsconfig.json" - }; - - await tsup.build({ - ...config, - format: ['cjs'], - outDir: 'dist/cjs', - clean: true, - }); - - await tsup.build({ - ...config, - format: ['esm'], - outDir: 'dist/esm', - clean: false, - }); - - await mkdir(path.join(__dirname, "dist"), { recursive: true }); - process.chdir(path.join(__dirname, "dist")); - - await writeFile( - "package.json", - JSON.stringify( - { - name: packageJson.name, - version: process.argv[2] || packageJson.version, - repository: packageJson.repository, - type: "module", - exports: { - // Conditional exports for ESM and CJS. - "import": { - "types": "./esm/index.d.ts", - "default": "./esm/index.js" - }, - "require": { - "types": "./cjs/index.d.cts", - "default": "./cjs/index.cjs" - } - }, - // Fallback for older tooling or direct imports. - main: "./cjs/index.cjs", - module: "./esm/index.js", - types: "./cjs/index.d.cts", - files: [ - "cjs", - "esm" - ] - }, - undefined, - 2 - ) - ); -} diff --git a/generators/typescript-v2/dynamic-snippets/package.json b/generators/typescript-v2/dynamic-snippets/package.json index ae04983b41ed..bd45002eaeed 100644 --- a/generators/typescript-v2/dynamic-snippets/package.json +++ b/generators/typescript-v2/dynamic-snippets/package.json @@ -26,14 +26,11 @@ "compile": "tsc --build", "compile:debug": "tsc --build --sourceMap", "depcheck": "depcheck", - "dist": "pnpm compile && node build.cjs", "test": "vitest --passWithNoTests --run", "test:debug": "pnpm run test --inspect --no-file-parallelism", "test:update": "vitest --passWithNoTests --run -u" }, "devDependencies": { - "@esbuild-plugins/node-globals-polyfill": "^0.2.3", - "@esbuild-plugins/node-modules-polyfill": "^0.2.2", "@fern-api/browser-compatible-base-generator": "workspace:*", "@fern-api/configs": "workspace:*", "@fern-api/core-utils": "workspace:*", @@ -43,7 +40,6 @@ "@fern-api/typescript-browser-compatible-base": "workspace:*", "@types/node": "18.15.3", "depcheck": "^1.4.7", - "tsup": "^8.5.0", "typescript": "5.9.3", "vitest": "^4.0.8" } diff --git a/generators/typescript/express/cli/.depcheckrc.json b/generators/typescript/express/cli/.depcheckrc.json index 6b406215dacc..018f9dd71981 100644 --- a/generators/typescript/express/cli/.depcheckrc.json +++ b/generators/typescript/express/cli/.depcheckrc.json @@ -1,4 +1,4 @@ { "ignores": [], - "ignore-patterns": ["lib", "docker/bundle.js"] + "ignore-patterns": ["lib", "dist", "docker/bundle.js"] } diff --git a/generators/typescript/express/cli/build.mjs b/generators/typescript/express/cli/build.mjs index 9776f80f1399..ec5c9d0504d5 100644 --- a/generators/typescript/express/cli/build.mjs +++ b/generators/typescript/express/cli/build.mjs @@ -1,31 +1,8 @@ -import { join, dirname } from "path"; -import { cp } from "fs/promises"; -import { fileURLToPath } from "url"; -import tsup from "tsup"; - -const __filename = fileURLToPath(import.meta.url); -const __dirname = dirname(__filename); - -main(); - -async function main() { - await tsup.build({ - entry: ["src/cli.ts"], - format: ["cjs"], - minify: false, - outDir: "dist", - sourcemap: true, - clean: true, - }); - - const filesFoldersToCopy = [ - ["../../asIs/", "./dist/assets/asIs"], - ["../../utils/core-utilities/", "./dist/assets/core-utilities"], - ]; - for (const [source, destination] of filesFoldersToCopy) { - await cp(join(__dirname, source), join(__dirname, destination), { - recursive: true, - force: true, - }); - } -} +import { buildGenerator, getDirname } from '@fern-api/configs/build-utils.mjs'; + +await buildGenerator(getDirname(import.meta.url), { + copy: [ + { from: '../../asIs/', to: './dist/assets/asIs' }, + { from: '../../utils/core-utilities/', to: './dist/assets/core-utilities' }, + ], +}); diff --git a/generators/typescript/express/cli/package.json b/generators/typescript/express/cli/package.json index 5d5ed01448f6..e8baff373b2c 100644 --- a/generators/typescript/express/cli/package.json +++ b/generators/typescript/express/cli/package.json @@ -26,9 +26,9 @@ "compile": "tsc --build", "compile:debug": "tsc --build --sourceMap", "depcheck": "depcheck", - "dist:cli": "pnpm clean && pnpm compile && node build.mjs", - "dockerTagLatest": "pnpm dist:cli && docker build -f ./Dockerfile -t fernapi/fern-typescript-express:latest ../../../..", - "podmanTagLatest": "pnpm dist:cli && podman build -f ./Dockerfile -t fernapi/fern-typescript-express:latest ../../../.." + "dist:cli": "node build.mjs", + "dockerTagLatest": "docker build -f ./Dockerfile -t fernapi/fern-typescript-express:latest ../../../..", + "podmanTagLatest": "podman build -f ./Dockerfile -t fernapi/fern-typescript-express:latest ../../../.." }, "devDependencies": { "@fern-api/configs": "workspace:*", @@ -42,7 +42,6 @@ "@types/lodash-es": "^4.17.12", "depcheck": "^1.4.7", "lodash-es": "^4.17.21", - "tsup": "^8.5.0", "typescript": "5.9.3", "zod": "^3.22.3" } diff --git a/generators/typescript/sdk/cli/.depcheckrc.json b/generators/typescript/sdk/cli/.depcheckrc.json index 6b406215dacc..d389561009c7 100644 --- a/generators/typescript/sdk/cli/.depcheckrc.json +++ b/generators/typescript/sdk/cli/.depcheckrc.json @@ -1,4 +1,4 @@ { "ignores": [], - "ignore-patterns": ["lib", "docker/bundle.js"] + "ignore-patterns": ["dist", "lib", "docker/bundle.js"] } diff --git a/generators/typescript/sdk/cli/build.mjs b/generators/typescript/sdk/cli/build.mjs index e288b319c6c1..2e49245ecf97 100644 --- a/generators/typescript/sdk/cli/build.mjs +++ b/generators/typescript/sdk/cli/build.mjs @@ -1,35 +1,10 @@ -import { join, dirname } from "path"; -import { cp } from "fs/promises"; -import { fileURLToPath } from "url"; -import tsup from "tsup"; +import { buildGenerator, getDirname } from '@fern-api/configs/build-utils.mjs'; -const __filename = fileURLToPath(import.meta.url); -const __dirname = dirname(__filename); - -main(); - -async function main() { - await tsup.build({ - entry: ["src/cli.ts"], - format: ["cjs"], - minify: false, - outDir: "dist", - sourcemap: true, - clean: true, - }); - const filesFoldersToCopy = [ - ["../features.yml", "./dist/assets/features.yml"], - [ - "../../asIs/readme/binary-response-addendum.md", - "./dist/assets/readme/binary-response-addendum.md", +await buildGenerator(getDirname(import.meta.url), { + copy: [ + { from: '../features.yml', to: './dist/assets/features.yml' }, + { from: '../../asIs/readme/binary-response-addendum.md', to: './dist/assets/readme/binary-response-addendum.md' }, + { from: '../../asIs/', to: './dist/assets/asIs' }, + { from: '../../utils/core-utilities/', to: './dist/assets/core-utilities' }, ], - ["../../asIs/", "./dist/assets/asIs"], - ["../../utils/core-utilities/", "./dist/assets/core-utilities"], - ]; - for (const [source, destination] of filesFoldersToCopy) { - await cp(join(__dirname, source), join(__dirname, destination), { - recursive: true, - force: true, - }); - } -} +}); diff --git a/generators/typescript/sdk/cli/package.json b/generators/typescript/sdk/cli/package.json index 39122a907d9b..052c57e20cef 100644 --- a/generators/typescript/sdk/cli/package.json +++ b/generators/typescript/sdk/cli/package.json @@ -26,9 +26,9 @@ "compile": "tsc --build", "compile:debug": "tsc --build --sourceMap", "depcheck": "depcheck", - "dist:cli": "pnpm clean && pnpm compile && node build.mjs", - "dockerTagLatest": "pnpm dist:cli && docker build -f ./Dockerfile -t fernapi/fern-typescript-node-sdk:latest -t fernapi/fern-typescript-sdk:latest ../../../..", - "podmanTagLatest": "pnpm dist:cli && podman build -f ./Dockerfile -t fernapi/fern-typescript-node-sdk:latest -t fernapi/fern-typescript-sdk:latest ../../../.." + "dist:cli": "node build.mjs", + "dockerTagLatest": "docker build -f ./Dockerfile -t fernapi/fern-typescript-node-sdk:latest -t fernapi/fern-typescript-sdk:latest ../../../..", + "podmanTagLatest": "podman build -f ./Dockerfile -t fernapi/fern-typescript-node-sdk:latest -t fernapi/fern-typescript-sdk:latest ../../../.." }, "devDependencies": { "@fern-api/base-generator": "workspace:*", @@ -44,7 +44,6 @@ "@fern-typescript/sdk-generator": "workspace:*", "@types/node": "18.15.3", "depcheck": "^1.4.7", - "tsup": "^8.5.0", "typescript": "5.9.3" } } diff --git a/generators/typescript/sdk/cli/turbo.jsonc b/generators/typescript/sdk/cli/turbo.jsonc new file mode 100644 index 000000000000..25fe5c8387ae --- /dev/null +++ b/generators/typescript/sdk/cli/turbo.jsonc @@ -0,0 +1,22 @@ +{ + "extends": ["//"], + "tasks": { + "dist:cli": { + "inputs": [ + "../features.yml", + "../../asIs/**", + "../../utils/core-utilities/**", + /** same as global task **/ + "src/**", + "tests/**", + "package.json", + "tsconfig.json", + "build.mjs", + "$TURBO_ROOT$/packages/configs/**", + "$TURBO_ROOT$/shared/.prettierignore", + "$TURBO_ROOT$/shared/stylelintrc.shared.json", + "$TURBO_ROOT$/tsconfig.eslint.json" + ] + } + } +} diff --git a/package.json b/package.json index 82557150acd1..d6e4cc4e522e 100644 --- a/package.json +++ b/package.json @@ -13,16 +13,16 @@ "scripts": { "bootstrap": "./scripts/bootstrap.sh", "sparse-checkout": "./scripts/sparse-checkout.sh", - "clean": "turbo clean", - "compile": "turbo compile", - "compile:debug": "turbo compile:debug", - "compile:win": "pnpm -r compile", - "test": "turbo test --filter=!@fern-api/ete-tests", - "test:debug": "turbo test:debug --filter=!@fern-api/ete-tests", - "test:update": "turbo test:update --filter=!@fern-api/ete-tests", - "test:update:dockerless": "turbo test:update --filter=!@fern-api/ete-tests --filter=!@fern-api/docker-utils", - "test:ete": "pnpm --filter @fern-api/cli dist:cli:dev && pnpm --filter @fern-api/seed-cli dist:cli && pnpm --filter @fern-api/ete-tests test", - "test:ete:update": "pnpm --filter @fern-api/cli dist:cli:dev && pnpm --filter @fern-api/seed-cli dist:cli && pnpm --filter @fern-api/ete-tests test -- -u", + "clean": "turbo run clean", + "compile": "turbo run compile", + "compile:debug": "turbo run compile:debug", + "compile:win": "turbo run compile", + "test": "turbo run test --filter=!@fern-api/ete-tests", + "test:debug": "turbo run test:debug --filter=!@fern-api/ete-tests", + "test:update": "turbo run test:update --filter=!@fern-api/ete-tests", + "test:update:dockerless": "turbo run test:update --filter=!@fern-api/ete-tests --filter=!@fern-api/docker-utils", + "test:ete": "pnpm fern-dev:build && pnpm seed:build && pnpm --filter @fern-api/ete-tests test", + "test:ete:update": "pnpm fern-dev:build && pnpm seed:build && pnpm --filter @fern-api/ete-tests test -- -u", "lint:biome": "biome lint --error-on-warnings", "lint:style": "stylelint 'packages/**/src/**/*.scss' --allow-empty-input --max-warnings 0", "lint:style:fix": "pnpm lint:style --fix", @@ -37,16 +37,16 @@ "check:biome": "biome check", "check": "biome check", "check:fix": "biome check --write", - "depcheck": "turbo depcheck --continue=always", + "depcheck": "turbo run depcheck --continue=always", "codegen:local": "pnpm fern:local generate", "fern": "FERN_NO_VERSION_REDIRECTION=true node --enable-source-maps ./packages/cli/cli/dist/prod/cli.cjs", "fern:local": "FERN_NO_VERSION_REDIRECTION=true node --enable-source-maps ./packages/cli/cli/dist/prod/cli.cjs", "fern-dev:local": "FERN_NO_VERSION_REDIRECTION=true node --enable-source-maps ./packages/cli/cli/dist/dev/cli.cjs", "fern:build": "cross-env POSTHOG_API_KEY=\"\" turbo run dist:cli:prod --filter=@fern-api/cli && echo 'Run node --enable-source-maps packages/cli/cli/dist/prod/cli.cjs'", - "fern:build:unminified": "cross-env POSTHOG_API_KEY=\"\" pnpm --filter @fern-api/cli dist:cli:prod:unminified && echo 'Run node --enable-source-maps packages/cli/cli/dist/prod/cli.cjs'", + "fern:build:unminified": "cross-env POSTHOG_API_KEY=\"\" turbo run dist:cli:prod:unminified --filter @fern-api/cli && echo 'Run node --enable-source-maps packages/cli/cli/dist/prod/cli.cjs'", "fern-dev:build": "turbo run dist:cli:dev --filter=@fern-api/cli && echo 'Run node --enable-source-maps packages/cli/cli/dist/dev/cli.cjs'", - "fern-local:build": "pnpm --filter @fern-api/cli dist:cli:local && echo 'Run node --enable-source-maps packages/cli/cli/dist/local/cli.cjs'", - "generator-cli:generate": "pnpm fern generate --api generator-cli --local && pnpm turbo --filter=@fern-api/generator-cli compile", + "fern-local:build": "turbo run dist:cli:local --filter @fern-api/cli && echo 'Run node --enable-source-maps packages/cli/cli/dist/local/cli.cjs'", + "generator-cli:generate": "pnpm fern:build && pnpm fern generate --api generator-cli --local && turbo dist:cli --filter=@fern-api/generator-cli", "seed:build": "turbo run dist:cli --filter=@fern-api/seed-cli && echo 'Run node --enable-source-maps packages/seed/dist/cli.cjs'", "publish": "pnpm -r publish --access public --no-git-checks --loglevel=verbose", "jsonschema": "pnpm definition-yml:jsonschema && pnpm api-yml:jsonschema && pnpm package-yml:jsonschema && pnpm docs-yml:jsonschema && pnpm generators-yml:jsonschema && pnpm versions-yml:jsonschema && pnpm products-yml:jsonschema", @@ -63,7 +63,7 @@ "root-package:check": "pnpm fern-script check-root-package", "root-package:fix": "pnpm root-package:check --fix", "seed": "node --enable-source-maps packages/seed/dist/cli.cjs", - "seed:local": "pnpm --filter @fern-api/seed-cli dist:cli && node --enable-source-maps packages/seed/dist/cli.cjs", + "seed:local": "turbo run dist:cli --filter @fern-api/seed-cli && node --enable-source-maps packages/seed/dist/cli.cjs", "ir:generate": "pnpm --filter @fern-api/ir-sdk generate", "ir:generate:go": "cd packages/ir-sdk && fern ir ../../generators/go/internal/fern/ir.json --api ir-types-latest --language go && cd ../../generators/go && make install && make generate", "openapi-ir:generate": "pnpm --filter @fern-api/openapi-ir generate", @@ -76,16 +76,16 @@ "prepare": "husky", "pre-commit": "tsx scripts/pre-commit.ts", "fix:references": "npx nx g @nx/js:typescript-sync --updateReferences=true --updatePaths=false", - "test:update-package": "sh -c 'for arg in \"$@\"; do if [[ $arg == --package=* ]]; then PACKAGE=${arg#--package=}; break; fi; done; pnpm --filter \"$PACKAGE\" compile && pnpm --filter \"$PACKAGE\" test:update' --", - "csharp:build": "pnpm --filter @fern-api/fern-csharp-sdk dockerTagLatest", - "go:build": "pnpm --filter @fern-api/go-sdk dockerTagLatest", - "java:build": "pnpm --filter @fern-api/java-sdk dockerTagLatest", - "php:build": "pnpm --filter @fern-api/php-sdk dockerTagLatest", - "python:build": "pnpm --filter @fern-api/python-sdk dockerTagLatest", - "ruby:build": "pnpm --filter @fern-api/ruby-sdk dockerTagLatest", - "rust:build": "pnpm --filter @fern-api/rust-sdk dockerTagLatest", - "swift:build": "pnpm --filter @fern-api/swift-sdk dockerTagLatest", - "typescript:build": "pnpm --filter @fern-typescript/sdk-generator-cli dockerTagLatest" + "test:update-package": "sh -c 'for arg in \"$@\"; do if [[ $arg == --package=* ]]; then PACKAGE=${arg#--package=}; break; fi; done; turbo run compile --filter \"$PACKAGE\" && turbo run test:update --filter \"$PACKAGE\"' --", + "csharp:build": "turbo run dockerTagLatest --filter @fern-api/fern-csharp-sdk", + "go:build": "turbo run dockerTagLatest --filter @fern-api/go-sdk", + "java:build": "turbo run dockerTagLatest --filter @fern-api/java-sdk", + "php:build": "turbo run dockerTagLatest --filter @fern-api/php-sdk", + "python:build": "turbo run dockerTagLatest --filter @fern-api/python-sdk", + "ruby:build": "turbo run dockerTagLatest --filter @fern-api/ruby-sdk", + "rust:build": "turbo run dockerTagLatest --filter @fern-api/rust-sdk", + "swift:build": "turbo run dockerTagLatest --filter @fern-api/swift-sdk", + "typescript:build": "turbo run dockerTagLatest --filter @fern-typescript/sdk-generator-cli" }, "devDependencies": { "@babel/core": "^7.26.0", @@ -108,7 +108,7 @@ "stylelint-config-standard-scss": "^5.0.0", "tsup": "^8.5.0", "tsx": "^4.20.3", - "turbo": "^2.5.5", + "turbo": "^2.6.1", "typescript": "5.9.3", "vitest": "^4.0.8" }, diff --git a/packages/cli/cli/build-utils.mjs b/packages/cli/cli/build-utils.mjs new file mode 100644 index 000000000000..7dbb715d6983 --- /dev/null +++ b/packages/cli/cli/build-utils.mjs @@ -0,0 +1,115 @@ +import packageJson from "./package.json" with { type: "json" }; +import tsup from 'tsup'; +import { writeFile } from "fs/promises"; +import path from "path"; +import { fileURLToPath } from 'url'; + +const __dirname = path.dirname(fileURLToPath(import.meta.url)); + +/** + * Get a dependency version from package.json, preferring dependencies over devDependencies. + * This ensures we don't miss runtime dependencies regardless of where they're declared. + */ +function getDependencyVersion(packageName) { + return packageJson.dependencies?.[packageName] ?? packageJson.devDependencies?.[packageName]; +} + +/** + * Common external dependencies for full builds (dev/prod with extensive externals) + */ +export const FULL_EXTERNALS = [ + '@boundaryml/baml', + /^prettier(?:\/.*)?$/, + /^prettier2(?:\/.*)?$/, + /^vitest(?:\/.*)?$/, + /^depcheck(?:\/.*)?$/, + /^tsup(?:\/.*)?$/, + /^typescript(?:\/.*)?$/, + /^@types\/.*$/, +]; + +/** + * Minimal external dependencies for local/unminified builds + */ +export const MINIMAL_EXTERNALS = ['@boundaryml/baml']; + +/** + * Common tsup overrides for production-like builds with optimization + */ +export const PRODUCTION_TSUP_OVERRIDES = { + platform: 'node', + target: 'node18', + external: FULL_EXTERNALS, + metafile: true, +}; + +/** + * Build the Fern CLI with the specified configuration + * @param {Object} config - Build configuration + * @param {string} config.outDir - Output directory (e.g., 'dist/prod', 'dist/dev') + * @param {boolean} config.minify - Whether to minify the output + * @param {Object} config.env - Environment variables to inject + * @param {string[]} [config.runtimeDependencies] - List of runtime dependencies to include in package.json + * @param {Object} [config.packageJsonOverrides] - Overrides for the generated package.json + * @param {Object} [config.tsupOverrides] - Additional tsup configuration options + */ +export async function buildCli(config) { + const { + outDir, + minify, + env, + runtimeDependencies = ['@boundaryml/baml'], + packageJsonOverrides = {}, + tsupOverrides = {} + } = config; + + // Build with tsup + await tsup.build({ + entry: ['src/cli.ts'], + format: ['cjs'], + minify, + outDir, + sourcemap: true, + clean: true, + env: { + ...env, + CLI_VERSION: process.argv[2] || packageJson.version, + }, + ...tsupOverrides + }); + + // Change to output directory + process.chdir(path.join(__dirname, outDir)); + + // Collect runtime dependencies + const dependencies = {}; + for (const dep of runtimeDependencies) { + const version = getDependencyVersion(dep); + if (version) { + dependencies[dep] = version; + } + } + + // Validate that all required dependencies were found + const missingDeps = runtimeDependencies.filter(dep => !dependencies[dep]); + if (missingDeps.length > 0) { + throw new Error( + `Missing required runtime dependencies in package.json: ${missingDeps.join(", ")}. ` + + `These must be declared in either dependencies or devDependencies.` + ); + } + + // Write package.json + const outputPackageJson = { + version: process.argv[2] || packageJson.version, + repository: packageJson.repository, + files: ["cli.cjs"], + dependencies, + ...packageJsonOverrides + }; + + await writeFile( + "package.json", + JSON.stringify(outputPackageJson, undefined, 2) + ); +} diff --git a/packages/cli/cli/build.dev.cjs b/packages/cli/cli/build.dev.cjs deleted file mode 100644 index d101d075b77f..000000000000 --- a/packages/cli/cli/build.dev.cjs +++ /dev/null @@ -1,91 +0,0 @@ -const packageJson = require("./package.json"); -const tsup = require('tsup'); -const { writeFile } = require("fs/promises"); -const path = require("path"); - -main(); - -/** - * Get a dependency version from package.json, preferring dependencies over devDependencies. - * This ensures we don't miss runtime dependencies regardless of where they're declared. - */ -function getDependencyVersion(packageName) { - return packageJson.dependencies?.[packageName] ?? packageJson.devDependencies?.[packageName]; -} - -async function main() { - await tsup.build({ - entry: ['src/cli.ts'], - format: ['cjs'], - outDir: 'dist/dev', - minify: false, - sourcemap: true, - platform: 'node', - target: 'node18', - external: [ - '@boundaryml/baml', - /^prettier(?:\/.*)?$/, - /^prettier2(?:\/.*)?$/, - /^vitest(?:\/.*)?$/, - /^depcheck(?:\/.*)?$/, - /^tsup(?:\/.*)?$/, - /^typescript(?:\/.*)?$/, - /^@types\/.*$/, - ], - metafile: true, - env: { - AUTH0_DOMAIN: "fern-dev.us.auth0.com", - AUTH0_CLIENT_ID: "4QiMvRvRUYpnycrVDK2M59hhJ6kcHYFQ", - DEFAULT_FIDDLE_ORIGIN: "https://fiddle-coordinator-dev2.buildwithfern.com", - DEFAULT_VENUS_ORIGIN: "https://venus-dev2.buildwithfern.com", - DEFAULT_FDR_ORIGIN: "https://registry-dev2.buildwithfern.com", - DEFAULT_FDR_LAMBDA_DOCS_ORIGIN: "https://ykq45y6fvnszd35iv5yuuatkze0rpwuz.lambda-url.us-east-1.on.aws", - VENUS_AUDIENCE: "venus-dev", - LOCAL_STORAGE_FOLDER: ".fern-dev", - POSTHOG_API_KEY: null, - DOCS_DOMAIN_SUFFIX: "docs.dev.buildwithfern.com", - DOCS_PREVIEW_BUCKET: 'https://dev2-local-preview-bundle2.s3.amazonaws.com/', - APP_DOCS_TAR_PREVIEW_BUCKET: 'https://dev2-local-preview-bundle4.s3.amazonaws.com/', - APP_DOCS_PREVIEW_BUCKET: 'https://dev2-local-preview-bundle3.s3.amazonaws.com/', - CLI_NAME: "fern-dev", - CLI_VERSION: process.argv[2] || packageJson.version, - CLI_PACKAGE_NAME: "@fern-api/fern-api-dev", - }, - }); - - process.chdir(path.join(__dirname, "dist/dev")); - - // Collect runtime dependencies that need to be included in the published package - const runtimeDependencies = { - "@boundaryml/baml": getDependencyVersion("@boundaryml/baml") - }; - - // Validate that all required dependencies were found - const missingDeps = Object.entries(runtimeDependencies) - .filter(([_, version]) => !version) - .map(([name, _]) => name); - - if (missingDeps.length > 0) { - throw new Error( - `Missing required runtime dependencies in package.json: ${missingDeps.join(", ")}. ` + - `These must be declared in either dependencies or devDependencies.` - ); - } - - // write cli's package.json - await writeFile( - "package.json", - JSON.stringify( - { - name: "@fern-api/fern-api-dev", - version: process.argv[2] || packageJson.version, - repository: packageJson.repository, - files: ["cli.cjs"], - bin: { "fern-dev": "cli.cjs" }, - dependencies: runtimeDependencies - }, - undefined, - 2 - ) - ); -} diff --git a/packages/cli/cli/build.dev.mjs b/packages/cli/cli/build.dev.mjs new file mode 100644 index 000000000000..26c23813e42b --- /dev/null +++ b/packages/cli/cli/build.dev.mjs @@ -0,0 +1,29 @@ +import { buildCli, PRODUCTION_TSUP_OVERRIDES } from './build-utils.mjs'; + +buildCli({ + outDir: 'dist/dev', + minify: false, + env: { + AUTH0_DOMAIN: "fern-dev.us.auth0.com", + AUTH0_CLIENT_ID: "4QiMvRvRUYpnycrVDK2M59hhJ6kcHYFQ", + DEFAULT_FIDDLE_ORIGIN: "https://fiddle-coordinator-dev2.buildwithfern.com", + DEFAULT_VENUS_ORIGIN: "https://venus-dev2.buildwithfern.com", + DEFAULT_FDR_ORIGIN: "https://registry-dev2.buildwithfern.com", + DEFAULT_FDR_LAMBDA_DOCS_ORIGIN: "https://ykq45y6fvnszd35iv5yuuatkze0rpwuz.lambda-url.us-east-1.on.aws", + VENUS_AUDIENCE: "venus-dev", + LOCAL_STORAGE_FOLDER: ".fern-dev", + POSTHOG_API_KEY: null, + DOCS_DOMAIN_SUFFIX: "docs.dev.buildwithfern.com", + DOCS_PREVIEW_BUCKET: 'https://dev2-local-preview-bundle2.s3.amazonaws.com/', + APP_DOCS_TAR_PREVIEW_BUCKET: 'https://dev2-local-preview-bundle4.s3.amazonaws.com/', + APP_DOCS_PREVIEW_BUCKET: 'https://dev2-local-preview-bundle3.s3.amazonaws.com/', + CLI_NAME: "fern-dev", + CLI_PACKAGE_NAME: "@fern-api/fern-api-dev", + }, + runtimeDependencies: ['@boundaryml/baml'], + packageJsonOverrides: { + name: "@fern-api/fern-api-dev", + bin: { "fern-dev": "cli.cjs" }, + }, + tsupOverrides: PRODUCTION_TSUP_OVERRIDES +}); diff --git a/packages/cli/cli/build.local.cjs b/packages/cli/cli/build.local.cjs deleted file mode 100644 index de192ac4d86b..000000000000 --- a/packages/cli/cli/build.local.cjs +++ /dev/null @@ -1,80 +0,0 @@ -const packageJson = require("./package.json"); -const tsup = require('tsup'); -const { writeFile } = require("fs/promises"); -const path = require("path"); - -main(); - -/** - * Get a dependency version from package.json, preferring dependencies over devDependencies. - * This ensures we don't miss runtime dependencies regardless of where they're declared. - */ -function getDependencyVersion(packageName) { - return packageJson.dependencies?.[packageName] ?? packageJson.devDependencies?.[packageName]; -} - -async function main() { - await tsup.build({ - entry: ['src/cli.ts'], - format: ['cjs'], - minify: false, - outDir: 'dist/local', - sourcemap: true, - external: ['@boundaryml/baml'], - env: { - AUTH0_DOMAIN: "fern-dev.us.auth0.com", - AUTH0_CLIENT_ID: "4QiMvRvRUYpnycrVDK2M59hhJ6kcHYFQ", - DEFAULT_FIDDLE_ORIGIN: "https://fiddle-coordinator-dev2.buildwithfern.com", - DEFAULT_VENUS_ORIGIN: "https://venus-dev2.buildwithfern.com", - DEFAULT_FDR_ORIGIN: "http://localhost:8080", - OVERRIDE_FDR_ORIGIN: "http://localhost:8080", - DEFAULT_FDR_LAMBDA_DOCS_ORIGIN: "https://ykq45y6fvnszd35iv5yuuatkze0rpwuz.lambda-url.us-east-1.on.aws", - VENUS_AUDIENCE: "venus-dev", - LOCAL_STORAGE_FOLDER: ".fern-local", - POSTHOG_API_KEY: null, - DOCS_DOMAIN_SUFFIX: "docs.dev.buildwithfern.com", - DOCS_PREVIEW_BUCKET: 'https://dev2-local-preview-bundle2.s3.amazonaws.com/', - APP_DOCS_TAR_PREVIEW_BUCKET: 'https://dev2-local-preview-bundle4.s3.amazonaws.com/', - APP_DOCS_PREVIEW_BUCKET: 'https://dev2-local-preview-bundle3.s3.amazonaws.com/', - CLI_NAME: "fern-local", - CLI_VERSION: process.argv[2] || packageJson.version, - CLI_PACKAGE_NAME: "fern-api", - }, - }); - - process.chdir(path.join(__dirname, "dist/local")); - - // Collect runtime dependencies that need to be included in the published package - const runtimeDependencies = { - "@boundaryml/baml": getDependencyVersion("@boundaryml/baml") - }; - - // Validate that all required dependencies were found - const missingDeps = Object.entries(runtimeDependencies) - .filter(([_, version]) => !version) - .map(([name, _]) => name); - - if (missingDeps.length > 0) { - throw new Error( - `Missing required runtime dependencies in package.json: ${missingDeps.join(", ")}. ` + - `These must be declared in either dependencies or devDependencies.` - ); - } - - // write cli's package.json - await writeFile( - "package.json", - JSON.stringify( - { - name: "fern-api", - version: process.argv[2] || packageJson.version, - repository: packageJson.repository, - files: ["cli.cjs"], - bin: { fern: "cli.cjs" }, - dependencies: runtimeDependencies - }, - undefined, - 2 - ) - ); -} diff --git a/packages/cli/cli/build.local.mjs b/packages/cli/cli/build.local.mjs new file mode 100644 index 000000000000..d473b6fabd9f --- /dev/null +++ b/packages/cli/cli/build.local.mjs @@ -0,0 +1,32 @@ +import { buildCli, MINIMAL_EXTERNALS } from './build-utils.mjs'; + +buildCli({ + outDir: 'dist/local', + minify: false, + env: { + AUTH0_DOMAIN: "fern-dev.us.auth0.com", + AUTH0_CLIENT_ID: "4QiMvRvRUYpnycrVDK2M59hhJ6kcHYFQ", + DEFAULT_FIDDLE_ORIGIN: "https://fiddle-coordinator-dev2.buildwithfern.com", + DEFAULT_VENUS_ORIGIN: "https://venus-dev2.buildwithfern.com", + DEFAULT_FDR_ORIGIN: "http://localhost:8080", + OVERRIDE_FDR_ORIGIN: "http://localhost:8080", + DEFAULT_FDR_LAMBDA_DOCS_ORIGIN: "https://ykq45y6fvnszd35iv5yuuatkze0rpwuz.lambda-url.us-east-1.on.aws", + VENUS_AUDIENCE: "venus-dev", + LOCAL_STORAGE_FOLDER: ".fern-local", + POSTHOG_API_KEY: null, + DOCS_DOMAIN_SUFFIX: "docs.dev.buildwithfern.com", + DOCS_PREVIEW_BUCKET: 'https://dev2-local-preview-bundle2.s3.amazonaws.com/', + APP_DOCS_TAR_PREVIEW_BUCKET: 'https://dev2-local-preview-bundle4.s3.amazonaws.com/', + APP_DOCS_PREVIEW_BUCKET: 'https://dev2-local-preview-bundle3.s3.amazonaws.com/', + CLI_NAME: "fern-local", + CLI_PACKAGE_NAME: "fern-api", + }, + runtimeDependencies: ['@boundaryml/baml'], + packageJsonOverrides: { + name: "fern-api", + bin: { fern: "cli.cjs" }, + }, + tsupOverrides: { + external: MINIMAL_EXTERNALS, + } +}); diff --git a/packages/cli/cli/build.prod-unminified.cjs b/packages/cli/cli/build.prod-unminified.cjs deleted file mode 100644 index b32db331a036..000000000000 --- a/packages/cli/cli/build.prod-unminified.cjs +++ /dev/null @@ -1,55 +0,0 @@ -const packageJson = require("./package.json"); -const tsup = require('tsup'); -const { writeFile } = require("fs/promises"); -const path = require("path"); - -main(); - -async function main() { - await tsup.build({ - entry: ['src/cli.ts'], - format: ['cjs'], - minify: false, - outDir: 'dist/prod', - sourcemap: true, - external: ['@boundaryml/baml'], - env: { - AUTH0_DOMAIN: "fern-prod.us.auth0.com", - AUTH0_CLIENT_ID: "syaWnk6SjNoo5xBf1omfvziU3q7085lh", - DEFAULT_FIDDLE_ORIGIN: "https://fiddle-coordinator.buildwithfern.com", - DEFAULT_VENUS_ORIGIN: "https://venus.buildwithfern.com", - DEFAULT_FDR_ORIGIN: "https://registry.buildwithfern.com", - VENUS_AUDIENCE: "venus-prod", - LOCAL_STORAGE_FOLDER: ".fern", - POSTHOG_API_KEY: process.env.POSTHOG_API_KEY ?? "", - DOCS_DOMAIN_SUFFIX: "docs.buildwithfern.com", - DOCS_PREVIEW_BUCKET: 'https://prod-local-preview-bundle2.s3.amazonaws.com/', - APP_DOCS_TAR_PREVIEW_BUCKET: 'https://prod-local-preview-bundle4.s3.amazonaws.com/', - APP_DOCS_PREVIEW_BUCKET: 'https://prod-local-preview-bundle3.s3.amazonaws.com/', - CLI_NAME: "fern", - CLI_VERSION: process.argv[2] || packageJson.version, - CLI_PACKAGE_NAME: "fern-api", - }, - }); - - process.chdir(path.join(__dirname, "dist/prod")); - - // write cli's package.json - await writeFile( - "package.json", - JSON.stringify( - { - name: "fern-api", - version: process.argv[2] || packageJson.version, - repository: packageJson.repository, - files: ["cli.cjs"], - bin: { fern: "cli.cjs" }, - dependencies: { - "@boundaryml/baml": packageJson.devDependencies["@boundaryml/baml"] - } - }, - undefined, - 2 - ) - ); -} diff --git a/packages/cli/cli/build.prod-unminified.mjs b/packages/cli/cli/build.prod-unminified.mjs new file mode 100644 index 000000000000..468a5eb358e7 --- /dev/null +++ b/packages/cli/cli/build.prod-unminified.mjs @@ -0,0 +1,30 @@ +import { buildCli, MINIMAL_EXTERNALS } from './build-utils.mjs'; + +buildCli({ + outDir: 'dist/prod-unminified', + minify: false, + env: { + AUTH0_DOMAIN: "fern-prod.us.auth0.com", + AUTH0_CLIENT_ID: "syaWnk6SjNoo5xBf1omfvziU3q7085lh", + DEFAULT_FIDDLE_ORIGIN: "https://fiddle-coordinator.buildwithfern.com", + DEFAULT_VENUS_ORIGIN: "https://venus.buildwithfern.com", + DEFAULT_FDR_ORIGIN: "https://registry.buildwithfern.com", + VENUS_AUDIENCE: "venus-prod", + LOCAL_STORAGE_FOLDER: ".fern", + POSTHOG_API_KEY: process.env.POSTHOG_API_KEY ?? "", + DOCS_DOMAIN_SUFFIX: "docs.buildwithfern.com", + DOCS_PREVIEW_BUCKET: 'https://prod-local-preview-bundle2.s3.amazonaws.com/', + APP_DOCS_TAR_PREVIEW_BUCKET: 'https://prod-local-preview-bundle4.s3.amazonaws.com/', + APP_DOCS_PREVIEW_BUCKET: 'https://prod-local-preview-bundle3.s3.amazonaws.com/', + CLI_NAME: "fern", + CLI_PACKAGE_NAME: "fern-api", + }, + runtimeDependencies: ['@boundaryml/baml'], + packageJsonOverrides: { + name: "fern-api", + bin: { fern: "cli.cjs" }, + }, + tsupOverrides: { + external: MINIMAL_EXTERNALS, + } +}); diff --git a/packages/cli/cli/build.prod.cjs b/packages/cli/cli/build.prod.cjs deleted file mode 100644 index 08c9e893aa80..000000000000 --- a/packages/cli/cli/build.prod.cjs +++ /dev/null @@ -1,92 +0,0 @@ -const packageJson = require("./package.json"); -const tsup = require('tsup'); -const { writeFile } = require("fs/promises"); -const path = require("path"); - -main(); - -/** - * Get a dependency version from package.json, preferring dependencies over devDependencies. - * This ensures we don't miss runtime dependencies regardless of where they're declared. - */ -function getDependencyVersion(packageName) { - return packageJson.dependencies?.[packageName] ?? packageJson.devDependencies?.[packageName]; -} - -async function main() { - await tsup.build({ - entry: ['src/cli.ts'], - format: ['cjs'], - minify: true, - outDir: 'dist/prod', - sourcemap: true, - platform: 'node', - target: 'node18', - external: [ - '@boundaryml/baml', - /^prettier(?:\/.*)?$/, - /^prettier2(?:\/.*)?$/, - /^vitest(?:\/.*)?$/, - /^depcheck(?:\/.*)?$/, - /^tsup(?:\/.*)?$/, - /^typescript(?:\/.*)?$/, - /^@types\/.*$/, - ], - metafile: true, - env: { - AUTH0_DOMAIN: "fern-prod.us.auth0.com", - AUTH0_CLIENT_ID: "syaWnk6SjNoo5xBf1omfvziU3q7085lh", - DEFAULT_FIDDLE_ORIGIN: "https://fiddle-coordinator.buildwithfern.com", - DEFAULT_VENUS_ORIGIN: "https://venus.buildwithfern.com", - DEFAULT_FDR_ORIGIN: "https://registry.buildwithfern.com", - DEFAULT_FDR_LAMBDA_DOCS_ORIGIN: "https://ykq45y6fvnszd35iv5yuuatkze0rpwuz.lambda-url.us-east-1.on.aws", - VENUS_AUDIENCE: "venus-prod", - LOCAL_STORAGE_FOLDER: ".fern", - POSTHOG_API_KEY: process.env.POSTHOG_API_KEY ?? "", - DOCS_DOMAIN_SUFFIX: "docs.buildwithfern.com", - DOCS_PREVIEW_BUCKET: 'https://prod-local-preview-bundle2.s3.amazonaws.com/', - APP_DOCS_TAR_PREVIEW_BUCKET: 'https://prod-local-preview-bundle4.s3.amazonaws.com/', - APP_DOCS_PREVIEW_BUCKET: 'https://prod-local-preview-bundle3.s3.amazonaws.com/', - CLI_NAME: "fern", - CLI_VERSION: process.argv[2] || packageJson.version, - CLI_PACKAGE_NAME: "fern-api", - }, - }); - - process.chdir(path.join(__dirname, "dist/prod")); - - // Collect runtime dependencies that need to be included in the published package - const runtimeDependencies = { - "@boundaryml/baml": getDependencyVersion("@boundaryml/baml"), - "cli-progress": getDependencyVersion("cli-progress") - }; - - // Validate that all required dependencies were found - const missingDeps = Object.entries(runtimeDependencies) - .filter(([_, version]) => !version) - .map(([name, _]) => name); - - if (missingDeps.length > 0) { - throw new Error( - `Missing required runtime dependencies in package.json: ${missingDeps.join(", ")}. ` + - `These must be declared in either dependencies or devDependencies.` - ); - } - - // write cli's package.json - await writeFile( - "package.json", - JSON.stringify( - { - name: "fern-api", - version: process.argv[2] || packageJson.version, - repository: packageJson.repository, - files: ["cli.cjs"], - bin: { fern: "cli.cjs" }, - dependencies: runtimeDependencies - }, - undefined, - 2 - ) - ); -} diff --git a/packages/cli/cli/build.prod.mjs b/packages/cli/cli/build.prod.mjs new file mode 100644 index 000000000000..2c80dd120c55 --- /dev/null +++ b/packages/cli/cli/build.prod.mjs @@ -0,0 +1,29 @@ +import { buildCli, PRODUCTION_TSUP_OVERRIDES } from './build-utils.mjs'; + +buildCli({ + outDir: 'dist/prod', + minify: true, + env: { + AUTH0_DOMAIN: "fern-prod.us.auth0.com", + AUTH0_CLIENT_ID: "syaWnk6SjNoo5xBf1omfvziU3q7085lh", + DEFAULT_FIDDLE_ORIGIN: "https://fiddle-coordinator.buildwithfern.com", + DEFAULT_VENUS_ORIGIN: "https://venus.buildwithfern.com", + DEFAULT_FDR_ORIGIN: "https://registry.buildwithfern.com", + DEFAULT_FDR_LAMBDA_DOCS_ORIGIN: "https://ykq45y6fvnszd35iv5yuuatkze0rpwuz.lambda-url.us-east-1.on.aws", + VENUS_AUDIENCE: "venus-prod", + LOCAL_STORAGE_FOLDER: ".fern", + POSTHOG_API_KEY: process.env.POSTHOG_API_KEY ?? "", + DOCS_DOMAIN_SUFFIX: "docs.buildwithfern.com", + DOCS_PREVIEW_BUCKET: 'https://prod-local-preview-bundle2.s3.amazonaws.com/', + APP_DOCS_TAR_PREVIEW_BUCKET: 'https://prod-local-preview-bundle4.s3.amazonaws.com/', + APP_DOCS_PREVIEW_BUCKET: 'https://prod-local-preview-bundle3.s3.amazonaws.com/', + CLI_NAME: "fern", + CLI_PACKAGE_NAME: "fern-api", + }, + runtimeDependencies: ['@boundaryml/baml', 'cli-progress'], + packageJsonOverrides: { + name: "fern-api", + bin: { fern: "cli.cjs" }, + }, + tsupOverrides: PRODUCTION_TSUP_OVERRIDES +}); diff --git a/packages/cli/cli/package.json b/packages/cli/cli/package.json index 1582dd708b20..9776d0cedc58 100644 --- a/packages/cli/cli/package.json +++ b/packages/cli/cli/package.json @@ -32,10 +32,10 @@ "compile": "tsc --build", "compile:debug": "tsc --build --sourceMap", "depcheck": "depcheck", - "dist:cli:dev": "pnpm compile && node build.dev.cjs", - "dist:cli:local": "pnpm compile && node build.local.cjs", - "dist:cli:prod": "pnpm compile && node build.prod.cjs", - "dist:cli:prod:unminified": "pnpm compile && node build.prod-unminified.cjs", + "dist:cli:dev": "node build.dev.mjs", + "dist:cli:local": "node build.local.mjs", + "dist:cli:prod": "node build.prod.mjs", + "dist:cli:prod:unminified": "node build.prod-unminified.mjs", "format": "prettier --write --ignore-unknown --ignore-path ../../../shared/.prettierignore \"**\"", "format:check": "prettier --check --ignore-unknown --ignore-path ../../../shared/.prettierignore \"**\"", "lint:eslint": "eslint --max-warnings 0 . --ignore-pattern=../../../.eslintignore", diff --git a/packages/cli/cli/turbo.jsonc b/packages/cli/cli/turbo.jsonc new file mode 100644 index 000000000000..3990e9d23a41 --- /dev/null +++ b/packages/cli/cli/turbo.jsonc @@ -0,0 +1,21 @@ +{ + "extends": ["//"], + "tasks": { + "dist:cli:prod:unminified": { + "outputs": ["dist/prod-unminified/**"], + "dependsOn": ["^compile", "compile"], + "inputs": [ + "src/**", + "tests/**", + "package.json", + "tsconfig.json", + "build-utils.mjs", + "build.prod.mjs", + "$TURBO_ROOT$/shared/.prettierignore", + "$TURBO_ROOT$/shared/stylelintrc.shared.json", + "$TURBO_ROOT$/tsconfig.eslint.json", + "$TURBO_ROOT$/packages/configs/**" + ] + } + } +} diff --git a/packages/cli/configuration-loader/tsconfig.json b/packages/cli/configuration-loader/tsconfig.json index 16eee853eb45..10d2a343d897 100644 --- a/packages/cli/configuration-loader/tsconfig.json +++ b/packages/cli/configuration-loader/tsconfig.json @@ -10,25 +10,22 @@ "include": ["./src/**/*"], "references": [ { - "path": "../../commons/core-utils" - }, - { - "path": "../../commons/fs-utils" + "path": "../task-context" }, { - "path": "../configuration" + "path": "../../commons/github" }, { - "path": "../fern-definition/schema" + "path": "../../commons/fs-utils" }, { - "path": "../logger" + "path": "../../commons/core-utils" }, { - "path": "../task-context" + "path": "../configuration" }, { - "path": "../../commons/github" + "path": "../logger" } ] } diff --git a/packages/cli/docs-preview/tsconfig.json b/packages/cli/docs-preview/tsconfig.json index fa0dd74fe417..ed2efed9533f 100644 --- a/packages/cli/docs-preview/tsconfig.json +++ b/packages/cli/docs-preview/tsconfig.json @@ -35,6 +35,9 @@ }, { "path": "../docs-resolver" + }, + { + "path": "../../commons/core-utils" } ] } diff --git a/packages/cli/generation/protoc-gen-fern/build.tsconfig.json b/packages/cli/generation/protoc-gen-fern/build.tsconfig.json deleted file mode 100644 index a3bf8730a45d..000000000000 --- a/packages/cli/generation/protoc-gen-fern/build.tsconfig.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "extends": "@fern-api/configs/tsconfig/main.json", - "compilerOptions": { - "verbatimModuleSyntax": false, - "module": "CommonJS" - }, - "include": ["./package.json", "./src/**/*"], - "references": [ - { - "path": "../../../commons/casings-generator" - }, - { - "path": "../../../commons/core-utils" - }, - { - "path": "../../../commons/ir-utils" - }, - { - "path": "../../../ir-sdk" - }, - { - "path": "../../api-importers/v3-importer-commons" - }, - { - "path": "../../logger" - } - ] -} diff --git a/packages/cli/generation/protoc-gen-fern/package.json b/packages/cli/generation/protoc-gen-fern/package.json index c05e3d09845c..9b93730863fe 100644 --- a/packages/cli/generation/protoc-gen-fern/package.json +++ b/packages/cli/generation/protoc-gen-fern/package.json @@ -24,13 +24,12 @@ "bin": { "protoc-gen-fern": "bin/protoc-gen-fern" }, - "files": ["lib"], + "files": ["bin", "lib"], "scripts": { "clean": "rm -rf ./lib && tsc --build --clean", "compile": "tsc --build", "compile:debug": "tsc --build --sourceMap", "depcheck": "depcheck", - "dist": "tsc --project build.tsconfig.json --outDir ./dist/cjs", "test": "vitest --passWithNoTests --run", "test:debug": "pnpm run test --inspect --no-file-parallelism", "test:update": "vitest --passWithNoTests --run -u" diff --git a/packages/cli/git-diff-1763508841128.patch b/packages/cli/git-diff-1763508841128.patch deleted file mode 100644 index 5ce479f43246..000000000000 --- a/packages/cli/git-diff-1763508841128.patch +++ /dev/null @@ -1,2985 +0,0 @@ -diff --git a/.fern/metadata.json b/.fern/metadata.json -deleted file mode 100644 -index ed7073e..0000000 ---- a/.fern/metadata.json -+++ /dev/null -@@ -1,5 +0,0 @@ --{ -- "cliVersion": "0.110.1", -- "generatorName": "fernapi/fern-typescript-sdk", -- "generatorVersion": "3.28.4" --} -diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml -index 5834b38..92f2abb 100644 ---- a/.github/workflows/ci.yml -+++ b/.github/workflows/ci.yml -@@ -11,7 +11,7 @@ jobs: - uses: actions/checkout@v4 - - - name: Set up node -- uses: actions/setup-node@v4 -+ uses: actions/setup-node@v3 - - - name: Install pnpm - uses: pnpm/action-setup@v4 -@@ -30,7 +30,7 @@ jobs: - uses: actions/checkout@v4 - - - name: Set up node -- uses: actions/setup-node@v4 -+ uses: actions/setup-node@v3 - - - name: Install pnpm - uses: pnpm/action-setup@v4 -diff --git a/.npmignore b/.npmignore -index c0c40ac..b7e5ad3 100644 ---- a/.npmignore -+++ b/.npmignore -@@ -4,7 +4,6 @@ tests - .gitignore - .github - .fernignore --.prettierrc.yml - biome.json - tsconfig.json - yarn.lock -diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md -deleted file mode 100644 -index fe5bc2f..0000000 ---- a/CONTRIBUTING.md -+++ /dev/null -@@ -1,133 +0,0 @@ --# Contributing -- --Thanks for your interest in contributing to this SDK! This document provides guidelines for contributing to the project. -- --## Getting Started -- --### Prerequisites -- --- Node.js 20 or higher --- pnpm package manager -- --### Installation -- --Install the project dependencies: -- --```bash --pnpm install --``` -- --### Building -- --Build the project: -- --```bash --pnpm build --``` -- --### Testing -- --Run the test suite: -- --```bash --pnpm test --``` -- --Run specific test types: --- `pnpm test:unit` - Run unit tests --- `pnpm test:wire` - Run wire/integration tests -- --### Linting and Formatting -- --Check code style: -- --```bash --pnpm run lint --pnpm run format:check --``` -- --Fix code style issues: -- --```bash --pnpm run lint:fix --pnpm run format:fix --``` -- --Or use the combined check command: -- --```bash --pnpm run check:fix --``` -- --## About Generated Code -- --**Important**: Most files in this SDK are automatically generated by [Fern](https://buildwithfern.com) from the API definition. Direct modifications to generated files will be overwritten the next time the SDK is generated. -- --### Generated Files -- --The following directories contain generated code: --- `src/api/` - API client classes and types --- `src/serialization/` - Serialization/deserialization logic --- Most TypeScript files in `src/` -- --### How to Customize -- --If you need to customize the SDK, you have two options: -- --#### Option 1: Use `.fernignore` -- --For custom code that should persist across SDK regenerations: -- --1. Create a `.fernignore` file in the project root --2. Add file patterns for files you want to preserve (similar to `.gitignore` syntax) --3. Add your custom code to those files -- --Files listed in `.fernignore` will not be overwritten when the SDK is regenerated. -- --For more information, see the [Fern documentation on custom code](https://buildwithfern.com/learn/sdks/overview/custom-code). -- --#### Option 2: Contribute to the Generator -- --If you want to change how code is generated for all users of this SDK: -- --1. The TypeScript SDK generator lives in the [Fern repository](https://github.com/fern-api/fern) --2. Generator code is located at `generators/typescript/sdk/` --3. Follow the [Fern contributing guidelines](https://github.com/fern-api/fern/blob/main/CONTRIBUTING.md) --4. Submit a pull request with your changes to the generator -- --This approach is best for: --- Bug fixes in generated code --- New features that would benefit all users --- Improvements to code generation patterns -- --## Making Changes -- --### Workflow -- --1. Create a new branch for your changes --2. Make your modifications --3. Run tests to ensure nothing breaks: `pnpm test` --4. Run linting and formatting: `pnpm run check:fix` --5. Build the project: `pnpm build` --6. Commit your changes with a clear commit message --7. Push your branch and create a pull request -- --### Commit Messages -- --Write clear, descriptive commit messages that explain what changed and why. -- --### Code Style -- --This project uses automated code formatting and linting. Run `pnpm run check:fix` before committing to ensure your code meets the project's style guidelines. -- --## Questions or Issues? -- --If you have questions or run into issues: -- --1. Check the [Fern documentation](https://buildwithfern.com) --2. Search existing [GitHub issues](https://github.com/fern-api/fern/issues) --3. Open a new issue if your question hasn't been addressed -- --## License -- --By contributing to this project, you agree that your contributions will be licensed under the same license as the project. -diff --git a/README.md b/README.md -index c08d0f9..ed474f3 100644 ---- a/README.md -+++ b/README.md -@@ -1,10 +1,27 @@ - # Fern TypeScript Library - --[![fern shield](https://img.shields.io/badge/%F0%9F%8C%BF-Built%20with%20Fern-brightgreen)](https://buildwithfern.com?utm_source=github&utm_medium=github&utm_campaign=readme&utm_source=https%3A%2F%2Fgithub.com%2Ffern-demo%2Fauto-version-testing-ts-sdk) -+[![fern shield](https://img.shields.io/badge/%F0%9F%8C%BF-Built%20with%20Fern-brightgreen)](https://buildwithfern.com?utm_source=github&utm_medium=github&utm_campaign=readme&utm_source=Fern%2FTypeScript) - [![npm shield](https://img.shields.io/npm/v/)](https://www.npmjs.com/package/) - - The Fern TypeScript library provides convenient access to the Fern APIs from TypeScript. - -+## Table of Contents -+ -+- [Installation](#installation) -+- [Reference](#reference) -+- [Usage](#usage) -+- [Request and Response Types](#request-and-response-types) -+- [Exception Handling](#exception-handling) -+- [Advanced](#advanced) -+ - [Additional Headers](#additional-headers) -+ - [Additional Query String Parameters](#additional-query-string-parameters) -+ - [Retries](#retries) -+ - [Timeouts](#timeouts) -+ - [Aborting Requests](#aborting-requests) -+ - [Access Raw Response Data](#access-raw-response-data) -+ - [Runtime Compatibility](#runtime-compatibility) -+- [Contributing](#contributing) -+ - ## Installation - - ```sh -@@ -13,7 +30,7 @@ npm i -s - - ## Reference - --A full reference for this library is available [here](https://github.com/fern-demo/auto-version-testing-ts-sdk/blob/HEAD/./reference.md). -+A full reference for this library is available [here](./reference.md). - - ## Usage - -@@ -31,7 +48,7 @@ await client.plant.addPlant({ - }); - ``` - --## Request And Response Types -+## Request and Response Types - - The SDK exports all request and response types as TypeScript interfaces. Simply import them with the - following namespace: -@@ -144,69 +161,6 @@ console.log(data); - console.log(rawResponse.headers['X-My-Header']); - ``` - --### Logging -- --The SDK supports logging. You can configure the logger by passing in a `logging` object to the client options. -- --```typescript --import { FernApiClient, logging } from "FernApi"; -- --const client = new FernApiClient({ -- ... -- logging: { -- level: logging.LogLevel.Debug, // defaults to logging.LogLevel.Info -- logger: new logging.ConsoleLogger(), // defaults to ConsoleLogger -- silent: false, // defaults to true, set to false to enable logging -- } --}); --``` --The `logging` object can have the following properties: --- `level`: The log level to use. Defaults to `logging.LogLevel.Info`. --- `logger`: The logger to use. Defaults to a `logging.ConsoleLogger`. --- `silent`: Whether to silence the logger. Defaults to `true`. -- --The `level` property can be one of the following values: --- `logging.LogLevel.Debug` --- `logging.LogLevel.Info` --- `logging.LogLevel.Warn` --- `logging.LogLevel.Error` -- --To provide a custom logger, you can pass in an object that implements the `logging.ILogger` interface. -- --
--Custom logger examples -- --Here's an example using the popular `winston` logging library. --```ts --import winston from 'winston'; -- --const winstonLogger = winston.createLogger({...}); -- --const logger: logging.ILogger = { -- debug: (msg, ...args) => winstonLogger.debug(msg, ...args), -- info: (msg, ...args) => winstonLogger.info(msg, ...args), -- warn: (msg, ...args) => winstonLogger.warn(msg, ...args), -- error: (msg, ...args) => winstonLogger.error(msg, ...args), --}; --``` -- --Here's an example using the popular `pino` logging library. -- --```ts --import pino from 'pino'; -- --const pinoLogger = pino({...}); -- --const logger: logging.ILogger = { -- debug: (msg, ...args) => pinoLogger.debug(args, msg), -- info: (msg, ...args) => pinoLogger.info(args, msg), -- warn: (msg, ...args) => pinoLogger.warn(args, msg), -- error: (msg, ...args) => pinoLogger.error(args, msg), --}; --``` --
-- -- - ### Runtime Compatibility - - -diff --git a/biome.json b/biome.json -index a777468..b6890df 100644 ---- a/biome.json -+++ b/biome.json -@@ -1,5 +1,5 @@ - { -- "$schema": "https://biomejs.dev/schemas/2.3.1/schema.json", -+ "$schema": "https://biomejs.dev/schemas/2.2.5/schema.json", - "root": true, - "vcs": { - "enabled": false -@@ -7,21 +7,16 @@ - "files": { - "ignoreUnknown": true, - "includes": [ -- "**", -- "!!dist", -- "!!**/dist", -- "!!lib", -- "!!**/lib", -- "!!_tmp_*", -- "!!**/_tmp_*", -- "!!*.tmp", -- "!!**/*.tmp", -- "!!.tmp/", -- "!!**/.tmp/", -- "!!*.log", -- "!!**/*.log", -- "!!**/.DS_Store", -- "!!**/Thumbs.db" -+ "./**", -+ "!dist", -+ "!lib", -+ "!*.tsbuildinfo", -+ "!_tmp_*", -+ "!*.tmp", -+ "!.tmp/", -+ "!*.log", -+ "!.DS_Store", -+ "!Thumbs.db" - ] - }, - "formatter": { -diff --git a/package.json b/package.json -index b8841b9..206921f 100644 ---- a/package.json -+++ b/package.json -@@ -1,6 +1,6 @@ - { - "name": "", -- "version": "0.0.1", -+ "version": "AUTO", - "private": false, - "repository": "github:fern-demo/auto-version-testing-ts-sdk", - "type": "commonjs", -@@ -30,9 +30,6 @@ - ], - "scripts": { - "format": "biome format --write --skip-parse-errors --no-errors-on-unmatched --max-diagnostics=none", -- "format:check": "biome format --skip-parse-errors --no-errors-on-unmatched --max-diagnostics=none", -- "lint": "biome lint --skip-parse-errors --no-errors-on-unmatched --max-diagnostics=none", -- "lint:fix": "biome lint --fix --unsafe --skip-parse-errors --no-errors-on-unmatched --max-diagnostics=none", - "check": "biome check --skip-parse-errors --no-errors-on-unmatched --max-diagnostics=none", - "check:fix": "biome check --fix --unsafe --skip-parse-errors --no-errors-on-unmatched --max-diagnostics=none", - "build": "pnpm build:cjs && pnpm build:esm", -@@ -42,15 +39,14 @@ - "test:unit": "vitest --project unit", - "test:wire": "vitest --project wire" - }, -- "dependencies": {}, - "devDependencies": { - "webpack": "^5.97.1", - "ts-loader": "^9.5.1", - "vitest": "^3.2.4", - "msw": "2.11.2", - "@types/node": "^18.19.70", -- "typescript": "~5.7.2", -- "@biomejs/biome": "2.3.1" -+ "@biomejs/biome": "2.2.5", -+ "typescript": "~5.7.2" - }, - "browser": { - "fs": false, -@@ -58,7 +54,7 @@ - "path": false, - "stream": false - }, -- "packageManager": "pnpm@10.20.0", -+ "packageManager": "pnpm@10.14.0", - "engines": { - "node": ">=18.0.0" - }, -diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml -index d29aa19..7318843 100644 ---- a/pnpm-lock.yaml -+++ b/pnpm-lock.yaml -@@ -9,8 +9,8 @@ importers: - .: - devDependencies: - '@biomejs/biome': -- specifier: 2.3.1 -- version: 2.3.1 -+ specifier: 2.2.5 -+ version: 2.2.5 - '@types/node': - specifier: ^18.19.70 - version: 18.19.130 -@@ -25,62 +25,62 @@ importers: - version: 5.7.3 - vitest: - specifier: ^3.2.4 -- version: 3.2.4(@types/node@18.19.130)(msw@2.11.2(@types/node@18.19.130)(typescript@5.7.3))(terser@5.44.1) -+ version: 3.2.4(@types/node@18.19.130)(msw@2.11.2(@types/node@18.19.130)(typescript@5.7.3))(terser@5.44.0) - webpack: - specifier: ^5.97.1 - version: 5.102.1 - - packages: - -- '@biomejs/biome@2.3.1': -- resolution: {integrity: sha512-A29evf1R72V5bo4o2EPxYMm5mtyGvzp2g+biZvRFx29nWebGyyeOSsDWGx3tuNNMFRepGwxmA9ZQ15mzfabK2w==} -+ '@biomejs/biome@2.2.5': -+ resolution: {integrity: sha512-zcIi+163Rc3HtyHbEO7CjeHq8DjQRs40HsGbW6vx2WI0tg8mYQOPouhvHSyEnCBAorfYNnKdR64/IxO7xQ5faw==} - engines: {node: '>=14.21.3'} - hasBin: true - -- '@biomejs/cli-darwin-arm64@2.3.1': -- resolution: {integrity: sha512-ombSf3MnTUueiYGN1SeI9tBCsDUhpWzOwS63Dove42osNh0PfE1cUtHFx6eZ1+MYCCLwXzlFlYFdrJ+U7h6LcA==} -+ '@biomejs/cli-darwin-arm64@2.2.5': -+ resolution: {integrity: sha512-MYT+nZ38wEIWVcL5xLyOhYQQ7nlWD0b/4mgATW2c8dvq7R4OQjt/XGXFkXrmtWmQofaIM14L7V8qIz/M+bx5QQ==} - engines: {node: '>=14.21.3'} - cpu: [arm64] - os: [darwin] - -- '@biomejs/cli-darwin-x64@2.3.1': -- resolution: {integrity: sha512-pcOfwyoQkrkbGvXxRvZNe5qgD797IowpJPovPX5biPk2FwMEV+INZqfCaz4G5bVq9hYnjwhRMamg11U4QsRXrQ==} -+ '@biomejs/cli-darwin-x64@2.2.5': -+ resolution: {integrity: sha512-FLIEl73fv0R7dI10EnEiZLw+IMz3mWLnF95ASDI0kbx6DDLJjWxE5JxxBfmG+udz1hIDd3fr5wsuP7nwuTRdAg==} - engines: {node: '>=14.21.3'} - cpu: [x64] - os: [darwin] - -- '@biomejs/cli-linux-arm64-musl@2.3.1': -- resolution: {integrity: sha512-+DZYv8l7FlUtTrWs1Tdt1KcNCAmRO87PyOnxKGunbWm5HKg1oZBSbIIPkjrCtDZaeqSG1DiGx7qF+CPsquQRcg==} -+ '@biomejs/cli-linux-arm64-musl@2.2.5': -+ resolution: {integrity: sha512-5Ov2wgAFwqDvQiESnu7b9ufD1faRa+40uwrohgBopeY84El2TnBDoMNXx6iuQdreoFGjwW8vH6k68G21EpNERw==} - engines: {node: '>=14.21.3'} - cpu: [arm64] - os: [linux] - -- '@biomejs/cli-linux-arm64@2.3.1': -- resolution: {integrity: sha512-td5O8pFIgLs8H1sAZsD6v+5quODihyEw4nv2R8z7swUfIK1FKk+15e4eiYVLcAE4jUqngvh4j3JCNgg0Y4o4IQ==} -+ '@biomejs/cli-linux-arm64@2.2.5': -+ resolution: {integrity: sha512-5DjiiDfHqGgR2MS9D+AZ8kOfrzTGqLKywn8hoXpXXlJXIECGQ32t+gt/uiS2XyGBM2XQhR6ztUvbjZWeccFMoQ==} - engines: {node: '>=14.21.3'} - cpu: [arm64] - os: [linux] - -- '@biomejs/cli-linux-x64-musl@2.3.1': -- resolution: {integrity: sha512-Y3Ob4nqgv38Mh+6EGHltuN+Cq8aj/gyMTJYzkFZV2AEj+9XzoXB9VNljz9pjfFNHUxvLEV4b55VWyxozQTBaUQ==} -+ '@biomejs/cli-linux-x64-musl@2.2.5': -+ resolution: {integrity: sha512-AVqLCDb/6K7aPNIcxHaTQj01sl1m989CJIQFQEaiQkGr2EQwyOpaATJ473h+nXDUuAcREhccfRpe/tu+0wu0eQ==} - engines: {node: '>=14.21.3'} - cpu: [x64] - os: [linux] - -- '@biomejs/cli-linux-x64@2.3.1': -- resolution: {integrity: sha512-PYWgEO7up7XYwSAArOpzsVCiqxBCXy53gsReAb1kKYIyXaoAlhBaBMvxR/k2Rm9aTuZ662locXUmPk/Aj+Xu+Q==} -+ '@biomejs/cli-linux-x64@2.2.5': -+ resolution: {integrity: sha512-fq9meKm1AEXeAWan3uCg6XSP5ObA6F/Ovm89TwaMiy1DNIwdgxPkNwxlXJX8iM6oRbFysYeGnT0OG8diCWb9ew==} - engines: {node: '>=14.21.3'} - cpu: [x64] - os: [linux] - -- '@biomejs/cli-win32-arm64@2.3.1': -- resolution: {integrity: sha512-RHIG/zgo+69idUqVvV3n8+j58dKYABRpMyDmfWu2TITC+jwGPiEaT0Q3RKD+kQHiS80mpBrST0iUGeEXT0bU9A==} -+ '@biomejs/cli-win32-arm64@2.2.5': -+ resolution: {integrity: sha512-xaOIad4wBambwJa6mdp1FigYSIF9i7PCqRbvBqtIi9y29QtPVQ13sDGtUnsRoe6SjL10auMzQ6YAe+B3RpZXVg==} - engines: {node: '>=14.21.3'} - cpu: [arm64] - os: [win32] - -- '@biomejs/cli-win32-x64@2.3.1': -- resolution: {integrity: sha512-izl30JJ5Dp10mi90Eko47zhxE6pYyWPcnX1NQxKpL/yMhXxf95oLTzfpu4q+MDBh/gemNqyJEwjBpe0MT5iWPA==} -+ '@biomejs/cli-win32-x64@2.2.5': -+ resolution: {integrity: sha512-F/jhuXCssPFAuciMhHKk00xnCAxJRS/pUzVfXYmOMUp//XW7mO6QeCjsjvnm8L4AO/dG2VOB0O+fJPiJ2uXtIw==} - engines: {node: '>=14.21.3'} - cpu: [x64] - os: [win32] -@@ -91,158 +91,158 @@ packages: - '@bundled-es-modules/statuses@1.0.1': - resolution: {integrity: sha512-yn7BklA5acgcBr+7w064fGV+SGIFySjCKpqjcWgBAIfrAkY+4GQTJJHQMeT3V/sgz23VTEVV8TtOmkvJAhFVfg==} - -- '@esbuild/aix-ppc64@0.25.12': -- resolution: {integrity: sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==} -+ '@esbuild/aix-ppc64@0.25.11': -+ resolution: {integrity: sha512-Xt1dOL13m8u0WE8iplx9Ibbm+hFAO0GsU2P34UNoDGvZYkY8ifSiy6Zuc1lYxfG7svWE2fzqCUmFp5HCn51gJg==} - engines: {node: '>=18'} - cpu: [ppc64] - os: [aix] - -- '@esbuild/android-arm64@0.25.12': -- resolution: {integrity: sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==} -+ '@esbuild/android-arm64@0.25.11': -+ resolution: {integrity: sha512-9slpyFBc4FPPz48+f6jyiXOx/Y4v34TUeDDXJpZqAWQn/08lKGeD8aDp9TMn9jDz2CiEuHwfhRmGBvpnd/PWIQ==} - engines: {node: '>=18'} - cpu: [arm64] - os: [android] - -- '@esbuild/android-arm@0.25.12': -- resolution: {integrity: sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==} -+ '@esbuild/android-arm@0.25.11': -+ resolution: {integrity: sha512-uoa7dU+Dt3HYsethkJ1k6Z9YdcHjTrSb5NUy66ZfZaSV8hEYGD5ZHbEMXnqLFlbBflLsl89Zke7CAdDJ4JI+Gg==} - engines: {node: '>=18'} - cpu: [arm] - os: [android] - -- '@esbuild/android-x64@0.25.12': -- resolution: {integrity: sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==} -+ '@esbuild/android-x64@0.25.11': -+ resolution: {integrity: sha512-Sgiab4xBjPU1QoPEIqS3Xx+R2lezu0LKIEcYe6pftr56PqPygbB7+szVnzoShbx64MUupqoE0KyRlN7gezbl8g==} - engines: {node: '>=18'} - cpu: [x64] - os: [android] - -- '@esbuild/darwin-arm64@0.25.12': -- resolution: {integrity: sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==} -+ '@esbuild/darwin-arm64@0.25.11': -+ resolution: {integrity: sha512-VekY0PBCukppoQrycFxUqkCojnTQhdec0vevUL/EDOCnXd9LKWqD/bHwMPzigIJXPhC59Vd1WFIL57SKs2mg4w==} - engines: {node: '>=18'} - cpu: [arm64] - os: [darwin] - -- '@esbuild/darwin-x64@0.25.12': -- resolution: {integrity: sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==} -+ '@esbuild/darwin-x64@0.25.11': -+ resolution: {integrity: sha512-+hfp3yfBalNEpTGp9loYgbknjR695HkqtY3d3/JjSRUyPg/xd6q+mQqIb5qdywnDxRZykIHs3axEqU6l1+oWEQ==} - engines: {node: '>=18'} - cpu: [x64] - os: [darwin] - -- '@esbuild/freebsd-arm64@0.25.12': -- resolution: {integrity: sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==} -+ '@esbuild/freebsd-arm64@0.25.11': -+ resolution: {integrity: sha512-CmKjrnayyTJF2eVuO//uSjl/K3KsMIeYeyN7FyDBjsR3lnSJHaXlVoAK8DZa7lXWChbuOk7NjAc7ygAwrnPBhA==} - engines: {node: '>=18'} - cpu: [arm64] - os: [freebsd] - -- '@esbuild/freebsd-x64@0.25.12': -- resolution: {integrity: sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==} -+ '@esbuild/freebsd-x64@0.25.11': -+ resolution: {integrity: sha512-Dyq+5oscTJvMaYPvW3x3FLpi2+gSZTCE/1ffdwuM6G1ARang/mb3jvjxs0mw6n3Lsw84ocfo9CrNMqc5lTfGOw==} - engines: {node: '>=18'} - cpu: [x64] - os: [freebsd] - -- '@esbuild/linux-arm64@0.25.12': -- resolution: {integrity: sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==} -+ '@esbuild/linux-arm64@0.25.11': -+ resolution: {integrity: sha512-Qr8AzcplUhGvdyUF08A1kHU3Vr2O88xxP0Tm8GcdVOUm25XYcMPp2YqSVHbLuXzYQMf9Bh/iKx7YPqECs6ffLA==} - engines: {node: '>=18'} - cpu: [arm64] - os: [linux] - -- '@esbuild/linux-arm@0.25.12': -- resolution: {integrity: sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==} -+ '@esbuild/linux-arm@0.25.11': -+ resolution: {integrity: sha512-TBMv6B4kCfrGJ8cUPo7vd6NECZH/8hPpBHHlYI3qzoYFvWu2AdTvZNuU/7hsbKWqu/COU7NIK12dHAAqBLLXgw==} - engines: {node: '>=18'} - cpu: [arm] - os: [linux] - -- '@esbuild/linux-ia32@0.25.12': -- resolution: {integrity: sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==} -+ '@esbuild/linux-ia32@0.25.11': -+ resolution: {integrity: sha512-TmnJg8BMGPehs5JKrCLqyWTVAvielc615jbkOirATQvWWB1NMXY77oLMzsUjRLa0+ngecEmDGqt5jiDC6bfvOw==} - engines: {node: '>=18'} - cpu: [ia32] - os: [linux] - -- '@esbuild/linux-loong64@0.25.12': -- resolution: {integrity: sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==} -+ '@esbuild/linux-loong64@0.25.11': -+ resolution: {integrity: sha512-DIGXL2+gvDaXlaq8xruNXUJdT5tF+SBbJQKbWy/0J7OhU8gOHOzKmGIlfTTl6nHaCOoipxQbuJi7O++ldrxgMw==} - engines: {node: '>=18'} - cpu: [loong64] - os: [linux] - -- '@esbuild/linux-mips64el@0.25.12': -- resolution: {integrity: sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==} -+ '@esbuild/linux-mips64el@0.25.11': -+ resolution: {integrity: sha512-Osx1nALUJu4pU43o9OyjSCXokFkFbyzjXb6VhGIJZQ5JZi8ylCQ9/LFagolPsHtgw6himDSyb5ETSfmp4rpiKQ==} - engines: {node: '>=18'} - cpu: [mips64el] - os: [linux] - -- '@esbuild/linux-ppc64@0.25.12': -- resolution: {integrity: sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==} -+ '@esbuild/linux-ppc64@0.25.11': -+ resolution: {integrity: sha512-nbLFgsQQEsBa8XSgSTSlrnBSrpoWh7ioFDUmwo158gIm5NNP+17IYmNWzaIzWmgCxq56vfr34xGkOcZ7jX6CPw==} - engines: {node: '>=18'} - cpu: [ppc64] - os: [linux] - -- '@esbuild/linux-riscv64@0.25.12': -- resolution: {integrity: sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==} -+ '@esbuild/linux-riscv64@0.25.11': -+ resolution: {integrity: sha512-HfyAmqZi9uBAbgKYP1yGuI7tSREXwIb438q0nqvlpxAOs3XnZ8RsisRfmVsgV486NdjD7Mw2UrFSw51lzUk1ww==} - engines: {node: '>=18'} - cpu: [riscv64] - os: [linux] - -- '@esbuild/linux-s390x@0.25.12': -- resolution: {integrity: sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==} -+ '@esbuild/linux-s390x@0.25.11': -+ resolution: {integrity: sha512-HjLqVgSSYnVXRisyfmzsH6mXqyvj0SA7pG5g+9W7ESgwA70AXYNpfKBqh1KbTxmQVaYxpzA/SvlB9oclGPbApw==} - engines: {node: '>=18'} - cpu: [s390x] - os: [linux] - -- '@esbuild/linux-x64@0.25.12': -- resolution: {integrity: sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==} -+ '@esbuild/linux-x64@0.25.11': -+ resolution: {integrity: sha512-HSFAT4+WYjIhrHxKBwGmOOSpphjYkcswF449j6EjsjbinTZbp8PJtjsVK1XFJStdzXdy/jaddAep2FGY+wyFAQ==} - engines: {node: '>=18'} - cpu: [x64] - os: [linux] - -- '@esbuild/netbsd-arm64@0.25.12': -- resolution: {integrity: sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==} -+ '@esbuild/netbsd-arm64@0.25.11': -+ resolution: {integrity: sha512-hr9Oxj1Fa4r04dNpWr3P8QKVVsjQhqrMSUzZzf+LZcYjZNqhA3IAfPQdEh1FLVUJSiu6sgAwp3OmwBfbFgG2Xg==} - engines: {node: '>=18'} - cpu: [arm64] - os: [netbsd] - -- '@esbuild/netbsd-x64@0.25.12': -- resolution: {integrity: sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==} -+ '@esbuild/netbsd-x64@0.25.11': -+ resolution: {integrity: sha512-u7tKA+qbzBydyj0vgpu+5h5AeudxOAGncb8N6C9Kh1N4n7wU1Xw1JDApsRjpShRpXRQlJLb9wY28ELpwdPcZ7A==} - engines: {node: '>=18'} - cpu: [x64] - os: [netbsd] - -- '@esbuild/openbsd-arm64@0.25.12': -- resolution: {integrity: sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==} -+ '@esbuild/openbsd-arm64@0.25.11': -+ resolution: {integrity: sha512-Qq6YHhayieor3DxFOoYM1q0q1uMFYb7cSpLD2qzDSvK1NAvqFi8Xgivv0cFC6J+hWVw2teCYltyy9/m/14ryHg==} - engines: {node: '>=18'} - cpu: [arm64] - os: [openbsd] - -- '@esbuild/openbsd-x64@0.25.12': -- resolution: {integrity: sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==} -+ '@esbuild/openbsd-x64@0.25.11': -+ resolution: {integrity: sha512-CN+7c++kkbrckTOz5hrehxWN7uIhFFlmS/hqziSFVWpAzpWrQoAG4chH+nN3Be+Kzv/uuo7zhX716x3Sn2Jduw==} - engines: {node: '>=18'} - cpu: [x64] - os: [openbsd] - -- '@esbuild/openharmony-arm64@0.25.12': -- resolution: {integrity: sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==} -+ '@esbuild/openharmony-arm64@0.25.11': -+ resolution: {integrity: sha512-rOREuNIQgaiR+9QuNkbkxubbp8MSO9rONmwP5nKncnWJ9v5jQ4JxFnLu4zDSRPf3x4u+2VN4pM4RdyIzDty/wQ==} - engines: {node: '>=18'} - cpu: [arm64] - os: [openharmony] - -- '@esbuild/sunos-x64@0.25.12': -- resolution: {integrity: sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==} -+ '@esbuild/sunos-x64@0.25.11': -+ resolution: {integrity: sha512-nq2xdYaWxyg9DcIyXkZhcYulC6pQ2FuCgem3LI92IwMgIZ69KHeY8T4Y88pcwoLIjbed8n36CyKoYRDygNSGhA==} - engines: {node: '>=18'} - cpu: [x64] - os: [sunos] - -- '@esbuild/win32-arm64@0.25.12': -- resolution: {integrity: sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==} -+ '@esbuild/win32-arm64@0.25.11': -+ resolution: {integrity: sha512-3XxECOWJq1qMZ3MN8srCJ/QfoLpL+VaxD/WfNRm1O3B4+AZ/BnLVgFbUV3eiRYDMXetciH16dwPbbHqwe1uU0Q==} - engines: {node: '>=18'} - cpu: [arm64] - os: [win32] - -- '@esbuild/win32-ia32@0.25.12': -- resolution: {integrity: sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==} -+ '@esbuild/win32-ia32@0.25.11': -+ resolution: {integrity: sha512-3ukss6gb9XZ8TlRyJlgLn17ecsK4NSQTmdIXRASVsiS2sQ6zPPZklNJT5GR5tE/MUarymmy8kCEf5xPCNCqVOA==} - engines: {node: '>=18'} - cpu: [ia32] - os: [win32] - -- '@esbuild/win32-x64@0.25.12': -- resolution: {integrity: sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==} -+ '@esbuild/win32-x64@0.25.11': -+ resolution: {integrity: sha512-D7Hpz6A2L4hzsRpPaCYkQnGOotdUpDzSGRIv9I+1ITdHROSFUWW95ZPZWQmGka1Fg7W3zFJowyn9WGwMJ0+KPA==} - engines: {node: '>=18'} - cpu: [x64] - os: [win32] -@@ -311,118 +311,118 @@ packages: - '@open-draft/until@2.1.0': - resolution: {integrity: sha512-U69T3ItWHvLwGg5eJ0n3I62nWuE6ilHlmz7zM0npLBRvPRd7e6NYmg54vvRtP5mZG7kZqZCFVdsTWo7BPtBujg==} - -- '@rollup/rollup-android-arm-eabi@4.52.5': -- resolution: {integrity: sha512-8c1vW4ocv3UOMp9K+gToY5zL2XiiVw3k7f1ksf4yO1FlDFQ1C2u72iACFnSOceJFsWskc2WZNqeRhFRPzv+wtQ==} -+ '@rollup/rollup-android-arm-eabi@4.52.4': -+ resolution: {integrity: sha512-BTm2qKNnWIQ5auf4deoetINJm2JzvihvGb9R6K/ETwKLql/Bb3Eg2H1FBp1gUb4YGbydMA3jcmQTR73q7J+GAA==} - cpu: [arm] - os: [android] - -- '@rollup/rollup-android-arm64@4.52.5': -- resolution: {integrity: sha512-mQGfsIEFcu21mvqkEKKu2dYmtuSZOBMmAl5CFlPGLY94Vlcm+zWApK7F/eocsNzp8tKmbeBP8yXyAbx0XHsFNA==} -+ '@rollup/rollup-android-arm64@4.52.4': -+ resolution: {integrity: sha512-P9LDQiC5vpgGFgz7GSM6dKPCiqR3XYN1WwJKA4/BUVDjHpYsf3iBEmVz62uyq20NGYbiGPR5cNHI7T1HqxNs2w==} - cpu: [arm64] - os: [android] - -- '@rollup/rollup-darwin-arm64@4.52.5': -- resolution: {integrity: sha512-takF3CR71mCAGA+v794QUZ0b6ZSrgJkArC+gUiG6LB6TQty9T0Mqh3m2ImRBOxS2IeYBo4lKWIieSvnEk2OQWA==} -+ '@rollup/rollup-darwin-arm64@4.52.4': -+ resolution: {integrity: sha512-QRWSW+bVccAvZF6cbNZBJwAehmvG9NwfWHwMy4GbWi/BQIA/laTIktebT2ipVjNncqE6GLPxOok5hsECgAxGZg==} - cpu: [arm64] - os: [darwin] - -- '@rollup/rollup-darwin-x64@4.52.5': -- resolution: {integrity: sha512-W901Pla8Ya95WpxDn//VF9K9u2JbocwV/v75TE0YIHNTbhqUTv9w4VuQ9MaWlNOkkEfFwkdNhXgcLqPSmHy0fA==} -+ '@rollup/rollup-darwin-x64@4.52.4': -+ resolution: {integrity: sha512-hZgP05pResAkRJxL1b+7yxCnXPGsXU0fG9Yfd6dUaoGk+FhdPKCJ5L1Sumyxn8kvw8Qi5PvQ8ulenUbRjzeCTw==} - cpu: [x64] - os: [darwin] - -- '@rollup/rollup-freebsd-arm64@4.52.5': -- resolution: {integrity: sha512-QofO7i7JycsYOWxe0GFqhLmF6l1TqBswJMvICnRUjqCx8b47MTo46W8AoeQwiokAx3zVryVnxtBMcGcnX12LvA==} -+ '@rollup/rollup-freebsd-arm64@4.52.4': -+ resolution: {integrity: sha512-xmc30VshuBNUd58Xk4TKAEcRZHaXlV+tCxIXELiE9sQuK3kG8ZFgSPi57UBJt8/ogfhAF5Oz4ZSUBN77weM+mQ==} - cpu: [arm64] - os: [freebsd] - -- '@rollup/rollup-freebsd-x64@4.52.5': -- resolution: {integrity: sha512-jr21b/99ew8ujZubPo9skbrItHEIE50WdV86cdSoRkKtmWa+DDr6fu2c/xyRT0F/WazZpam6kk7IHBerSL7LDQ==} -+ '@rollup/rollup-freebsd-x64@4.52.4': -+ resolution: {integrity: sha512-WdSLpZFjOEqNZGmHflxyifolwAiZmDQzuOzIq9L27ButpCVpD7KzTRtEG1I0wMPFyiyUdOO+4t8GvrnBLQSwpw==} - cpu: [x64] - os: [freebsd] - -- '@rollup/rollup-linux-arm-gnueabihf@4.52.5': -- resolution: {integrity: sha512-PsNAbcyv9CcecAUagQefwX8fQn9LQ4nZkpDboBOttmyffnInRy8R8dSg6hxxl2Re5QhHBf6FYIDhIj5v982ATQ==} -+ '@rollup/rollup-linux-arm-gnueabihf@4.52.4': -+ resolution: {integrity: sha512-xRiOu9Of1FZ4SxVbB0iEDXc4ddIcjCv2aj03dmW8UrZIW7aIQ9jVJdLBIhxBI+MaTnGAKyvMwPwQnoOEvP7FgQ==} - cpu: [arm] - os: [linux] - -- '@rollup/rollup-linux-arm-musleabihf@4.52.5': -- resolution: {integrity: sha512-Fw4tysRutyQc/wwkmcyoqFtJhh0u31K+Q6jYjeicsGJJ7bbEq8LwPWV/w0cnzOqR2m694/Af6hpFayLJZkG2VQ==} -+ '@rollup/rollup-linux-arm-musleabihf@4.52.4': -+ resolution: {integrity: sha512-FbhM2p9TJAmEIEhIgzR4soUcsW49e9veAQCziwbR+XWB2zqJ12b4i/+hel9yLiD8pLncDH4fKIPIbt5238341Q==} - cpu: [arm] - os: [linux] - -- '@rollup/rollup-linux-arm64-gnu@4.52.5': -- resolution: {integrity: sha512-a+3wVnAYdQClOTlyapKmyI6BLPAFYs0JM8HRpgYZQO02rMR09ZcV9LbQB+NL6sljzG38869YqThrRnfPMCDtZg==} -+ '@rollup/rollup-linux-arm64-gnu@4.52.4': -+ resolution: {integrity: sha512-4n4gVwhPHR9q/g8lKCyz0yuaD0MvDf7dV4f9tHt0C73Mp8h38UCtSCSE6R9iBlTbXlmA8CjpsZoujhszefqueg==} - cpu: [arm64] - os: [linux] - -- '@rollup/rollup-linux-arm64-musl@4.52.5': -- resolution: {integrity: sha512-AvttBOMwO9Pcuuf7m9PkC1PUIKsfaAJ4AYhy944qeTJgQOqJYJ9oVl2nYgY7Rk0mkbsuOpCAYSs6wLYB2Xiw0Q==} -+ '@rollup/rollup-linux-arm64-musl@4.52.4': -+ resolution: {integrity: sha512-u0n17nGA0nvi/11gcZKsjkLj1QIpAuPFQbR48Subo7SmZJnGxDpspyw2kbpuoQnyK+9pwf3pAoEXerJs/8Mi9g==} - cpu: [arm64] - os: [linux] - -- '@rollup/rollup-linux-loong64-gnu@4.52.5': -- resolution: {integrity: sha512-DkDk8pmXQV2wVrF6oq5tONK6UHLz/XcEVow4JTTerdeV1uqPeHxwcg7aFsfnSm9L+OO8WJsWotKM2JJPMWrQtA==} -+ '@rollup/rollup-linux-loong64-gnu@4.52.4': -+ resolution: {integrity: sha512-0G2c2lpYtbTuXo8KEJkDkClE/+/2AFPdPAbmaHoE870foRFs4pBrDehilMcrSScrN/fB/1HTaWO4bqw+ewBzMQ==} - cpu: [loong64] - os: [linux] - -- '@rollup/rollup-linux-ppc64-gnu@4.52.5': -- resolution: {integrity: sha512-W/b9ZN/U9+hPQVvlGwjzi+Wy4xdoH2I8EjaCkMvzpI7wJUs8sWJ03Rq96jRnHkSrcHTpQe8h5Tg3ZzUPGauvAw==} -+ '@rollup/rollup-linux-ppc64-gnu@4.52.4': -+ resolution: {integrity: sha512-teSACug1GyZHmPDv14VNbvZFX779UqWTsd7KtTM9JIZRDI5NUwYSIS30kzI8m06gOPB//jtpqlhmraQ68b5X2g==} - cpu: [ppc64] - os: [linux] - -- '@rollup/rollup-linux-riscv64-gnu@4.52.5': -- resolution: {integrity: sha512-sjQLr9BW7R/ZiXnQiWPkErNfLMkkWIoCz7YMn27HldKsADEKa5WYdobaa1hmN6slu9oWQbB6/jFpJ+P2IkVrmw==} -+ '@rollup/rollup-linux-riscv64-gnu@4.52.4': -+ resolution: {integrity: sha512-/MOEW3aHjjs1p4Pw1Xk4+3egRevx8Ji9N6HUIA1Ifh8Q+cg9dremvFCUbOX2Zebz80BwJIgCBUemjqhU5XI5Eg==} - cpu: [riscv64] - os: [linux] - -- '@rollup/rollup-linux-riscv64-musl@4.52.5': -- resolution: {integrity: sha512-hq3jU/kGyjXWTvAh2awn8oHroCbrPm8JqM7RUpKjalIRWWXE01CQOf/tUNWNHjmbMHg/hmNCwc/Pz3k1T/j/Lg==} -+ '@rollup/rollup-linux-riscv64-musl@4.52.4': -+ resolution: {integrity: sha512-1HHmsRyh845QDpEWzOFtMCph5Ts+9+yllCrREuBR/vg2RogAQGGBRC8lDPrPOMnrdOJ+mt1WLMOC2Kao/UwcvA==} - cpu: [riscv64] - os: [linux] - -- '@rollup/rollup-linux-s390x-gnu@4.52.5': -- resolution: {integrity: sha512-gn8kHOrku8D4NGHMK1Y7NA7INQTRdVOntt1OCYypZPRt6skGbddska44K8iocdpxHTMMNui5oH4elPH4QOLrFQ==} -+ '@rollup/rollup-linux-s390x-gnu@4.52.4': -+ resolution: {integrity: sha512-seoeZp4L/6D1MUyjWkOMRU6/iLmCU2EjbMTyAG4oIOs1/I82Y5lTeaxW0KBfkUdHAWN7j25bpkt0rjnOgAcQcA==} - cpu: [s390x] - os: [linux] - -- '@rollup/rollup-linux-x64-gnu@4.52.5': -- resolution: {integrity: sha512-hXGLYpdhiNElzN770+H2nlx+jRog8TyynpTVzdlc6bndktjKWyZyiCsuDAlpd+j+W+WNqfcyAWz9HxxIGfZm1Q==} -+ '@rollup/rollup-linux-x64-gnu@4.52.4': -+ resolution: {integrity: sha512-Wi6AXf0k0L7E2gteNsNHUs7UMwCIhsCTs6+tqQ5GPwVRWMaflqGec4Sd8n6+FNFDw9vGcReqk2KzBDhCa1DLYg==} - cpu: [x64] - os: [linux] - -- '@rollup/rollup-linux-x64-musl@4.52.5': -- resolution: {integrity: sha512-arCGIcuNKjBoKAXD+y7XomR9gY6Mw7HnFBv5Rw7wQRvwYLR7gBAgV7Mb2QTyjXfTveBNFAtPt46/36vV9STLNg==} -+ '@rollup/rollup-linux-x64-musl@4.52.4': -+ resolution: {integrity: sha512-dtBZYjDmCQ9hW+WgEkaffvRRCKm767wWhxsFW3Lw86VXz/uJRuD438/XvbZT//B96Vs8oTA8Q4A0AfHbrxP9zw==} - cpu: [x64] - os: [linux] - -- '@rollup/rollup-openharmony-arm64@4.52.5': -- resolution: {integrity: sha512-QoFqB6+/9Rly/RiPjaomPLmR/13cgkIGfA40LHly9zcH1S0bN2HVFYk3a1eAyHQyjs3ZJYlXvIGtcCs5tko9Cw==} -+ '@rollup/rollup-openharmony-arm64@4.52.4': -+ resolution: {integrity: sha512-1ox+GqgRWqaB1RnyZXL8PD6E5f7YyRUJYnCqKpNzxzP0TkaUh112NDrR9Tt+C8rJ4x5G9Mk8PQR3o7Ku2RKqKA==} - cpu: [arm64] - os: [openharmony] - -- '@rollup/rollup-win32-arm64-msvc@4.52.5': -- resolution: {integrity: sha512-w0cDWVR6MlTstla1cIfOGyl8+qb93FlAVutcor14Gf5Md5ap5ySfQ7R9S/NjNaMLSFdUnKGEasmVnu3lCMqB7w==} -+ '@rollup/rollup-win32-arm64-msvc@4.52.4': -+ resolution: {integrity: sha512-8GKr640PdFNXwzIE0IrkMWUNUomILLkfeHjXBi/nUvFlpZP+FA8BKGKpacjW6OUUHaNI6sUURxR2U2g78FOHWQ==} - cpu: [arm64] - os: [win32] - -- '@rollup/rollup-win32-ia32-msvc@4.52.5': -- resolution: {integrity: sha512-Aufdpzp7DpOTULJCuvzqcItSGDH73pF3ko/f+ckJhxQyHtp67rHw3HMNxoIdDMUITJESNE6a8uh4Lo4SLouOUg==} -+ '@rollup/rollup-win32-ia32-msvc@4.52.4': -+ resolution: {integrity: sha512-AIy/jdJ7WtJ/F6EcfOb2GjR9UweO0n43jNObQMb6oGxkYTfLcnN7vYYpG+CN3lLxrQkzWnMOoNSHTW54pgbVxw==} - cpu: [ia32] - os: [win32] - -- '@rollup/rollup-win32-x64-gnu@4.52.5': -- resolution: {integrity: sha512-UGBUGPFp1vkj6p8wCRraqNhqwX/4kNQPS57BCFc8wYh0g94iVIW33wJtQAx3G7vrjjNtRaxiMUylM0ktp/TRSQ==} -+ '@rollup/rollup-win32-x64-gnu@4.52.4': -+ resolution: {integrity: sha512-UF9KfsH9yEam0UjTwAgdK0anlQ7c8/pWPU2yVjyWcF1I1thABt6WXE47cI71pGiZ8wGvxohBoLnxM04L/wj8mQ==} - cpu: [x64] - os: [win32] - -- '@rollup/rollup-win32-x64-msvc@4.52.5': -- resolution: {integrity: sha512-TAcgQh2sSkykPRWLrdyy2AiceMckNf5loITqXxFI5VuQjS5tSuw3WlwdN8qv8vzjLAUTvYaH/mVjSFpbkFbpTg==} -+ '@rollup/rollup-win32-x64-msvc@4.52.4': -+ resolution: {integrity: sha512-bf9PtUa0u8IXDVxzRToFQKsNCRz9qLYfR/MpECxl4mRoWYjAeFjgxj1XdZr2M/GNVpT05p+LgQOHopYDlUu6/w==} - cpu: [x64] - os: [win32] - -- '@types/chai@5.2.3': -- resolution: {integrity: sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==} -+ '@types/chai@5.2.2': -+ resolution: {integrity: sha512-8kB30R7Hwqf40JPiKhVzodJs2Qc1ZJ5zuT3uzw5Hq/dhNCl3G3l83jfpdI1e20BP348+fV7VIL/+FxaXkqBmWg==} - - '@types/cookie@0.6.0': - resolution: {integrity: sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==} -@@ -567,16 +567,16 @@ packages: - resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} - engines: {node: '>=12'} - -- baseline-browser-mapping@2.8.25: -- resolution: {integrity: sha512-2NovHVesVF5TXefsGX1yzx1xgr7+m9JQenvz6FQY3qd+YXkKkYiv+vTCc7OriP9mcDZpTC5mAOYN4ocd29+erA==} -+ baseline-browser-mapping@2.8.16: -+ resolution: {integrity: sha512-OMu3BGQ4E7P1ErFsIPpbJh0qvDudM/UuJeHgkAvfWe+0HFJCXh+t/l8L6fVLR55RI/UbKrVLnAXZSVwd9ysWYw==} - hasBin: true - - braces@3.0.3: - resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} - engines: {node: '>=8'} - -- browserslist@4.27.0: -- resolution: {integrity: sha512-AXVQwdhot1eqLihwasPElhX2tAZiBjWdJ9i/Zcj2S6QYIjkx62OKSfnobkriB81C3l4w0rVy3Nt4jaTBltYEpw==} -+ browserslist@4.26.3: -+ resolution: {integrity: sha512-lAUU+02RFBuCKQPj/P6NgjlbCnLBMp4UtgTx7vNHd3XSIJF87s9a5rA3aH2yw3GS9DqZAUbOtZdCCiZeVRqt0w==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true - -@@ -587,8 +587,8 @@ packages: - resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} - engines: {node: '>=8'} - -- caniuse-lite@1.0.30001754: -- resolution: {integrity: sha512-x6OeBXueoAceOmotzx3PO4Zpt4rzpeIFsSr6AAePTZxSkXiYDUmpypEl7e2+8NCd9bD7bXjqyef8CJYPC1jfxg==} -+ caniuse-lite@1.0.30001750: -+ resolution: {integrity: sha512-cuom0g5sdX6rw00qOoLNSFCJ9/mYIsuSOA+yzpDw8eopiFqcVwQvZHqov0vmEighRxX++cfC0Vg1G+1Iy/mSpQ==} - - chai@5.3.3: - resolution: {integrity: sha512-4zNhdJD/iOjSH0A05ea+Ke6MU5mmpQcbQsSOkgdaUMJ9zTlDTD/GYlwohmIE2u0gaxHYiVHEn1Fw9mZ/ktJWgw==} -@@ -641,8 +641,8 @@ packages: - resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==} - engines: {node: '>=6'} - -- electron-to-chromium@1.5.246: -- resolution: {integrity: sha512-CKp2enkTcw94o8p7P+nb3in3yILO7jAIoERSmkIhGazMuK2eLnPSVUH/dxUveGN8ulJJDjYUv0vV7y2e2AZ0nA==} -+ electron-to-chromium@1.5.237: -+ resolution: {integrity: sha512-icUt1NvfhGLar5lSWH3tHNzablaA5js3HVHacQimfP8ViEBOQv+L7DKEuHdbTZ0SKCO1ogTJTIL1Gwk9S6Qvcg==} - - emoji-regex@8.0.0: - resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} -@@ -654,8 +654,8 @@ packages: - es-module-lexer@1.7.0: - resolution: {integrity: sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==} - -- esbuild@0.25.12: -- resolution: {integrity: sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==} -+ esbuild@0.25.11: -+ resolution: {integrity: sha512-KohQwyzrKTQmhXDW1PjCv3Tyspn9n5GcY2RTDqeORIdIJY8yKIF7sTSopFmn/wpMPW4rdPXI0UE5LJLuq3bx0Q==} - engines: {node: '>=18'} - hasBin: true - -@@ -724,8 +724,8 @@ packages: - graceful-fs@4.2.11: - resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} - -- graphql@16.12.0: -- resolution: {integrity: sha512-DKKrynuQRne0PNpEbzuEdHlYOMksHSUI8Zc9Unei5gTsMNA2/vMpoMz/yKba50pejK56qj98qM0SjYxAKi13gQ==} -+ graphql@16.11.0: -+ resolution: {integrity: sha512-mS1lbMsxgQj6hge1XZ6p7GPhbrtFwUFYi3wRzXAC/FmYnyXMTvvI3td3rjmQ2u8ewXueaSvRPWaEcgVVOT9Jnw==} - engines: {node: ^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0} - - has-flag@4.0.0: -@@ -766,8 +766,8 @@ packages: - loupe@3.2.1: - resolution: {integrity: sha512-CdzqowRJCeLU72bHvWqwRBBlLcMEtIvGrlvef74kMnV2AolS9Y8xUv1I0U/MNAWMhBlKIoyuEgoJ0t/bbwHbLQ==} - -- magic-string@0.30.21: -- resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==} -+ magic-string@0.30.19: -+ resolution: {integrity: sha512-2N21sPY9Ws53PZvsEpVtNuSW+ScYbQdp4b9qUaL+9QkHUrGFKo56Lg9Emg5s9V/qrtNBmiR01sYhUOwu3H+VOw==} - - merge-stream@2.0.0: - resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} -@@ -809,8 +809,8 @@ packages: - neo-async@2.6.2: - resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} - -- node-releases@2.0.27: -- resolution: {integrity: sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==} -+ node-releases@2.0.23: -+ resolution: {integrity: sha512-cCmFDMSm26S6tQSDpBCg/NR8NENrVPhAJSf+XbxBG4rPFaaonlEoE9wHQmun+cls499TQGSb7ZyPBRlzgKfpeg==} - - outvariant@1.4.3: - resolution: {integrity: sha512-+Sl2UErvtsoajRDKCE5/dBz4DIvHXQQnAxtQTF04OJxY0+DyZXSo5P5Bb7XYWOh81syohlYL24hbDwxedPUJCA==} -@@ -854,8 +854,8 @@ packages: - rettime@0.7.0: - resolution: {integrity: sha512-LPRKoHnLKd/r3dVxcwO7vhCW+orkOGj9ViueosEBK6ie89CijnfRlhaDhHq/3Hxu4CkWQtxwlBG0mzTQY6uQjw==} - -- rollup@4.52.5: -- resolution: {integrity: sha512-3GuObel8h7Kqdjt0gxkEzaifHTqLVW56Y/bjN7PSQtkKr0w3V/QYSdt6QWYtd7A1xUtYQigtdUfgj1RvWVtorw==} -+ rollup@4.52.4: -+ resolution: {integrity: sha512-CLEVl+MnPAiKh5pl4dEWSyMTpuflgNQiLGhMv8ezD5W/qP8AKvmYpCOKRRNOh7oRKnauBZ4SyeYkMS+1VSyKwQ==} - engines: {node: '>=18.0.0', npm: '>=8.0.0'} - hasBin: true - -@@ -948,8 +948,8 @@ packages: - uglify-js: - optional: true - -- terser@5.44.1: -- resolution: {integrity: sha512-t/R3R/n0MSwnnazuPpPNVO60LX0SKL45pyl9YlvxIdkH0Of7D5qM2EVe+yASRIlY5pZ73nclYJfNANGWPwFDZw==} -+ terser@5.44.0: -+ resolution: {integrity: sha512-nIVck8DK+GM/0Frwd+nIhZ84pR/BX7rmXMfYwyg+Sri5oGVE99/E3KvXqpC2xHFxyqXyGHTKBSioxxplrO4I4w==} - engines: {node: '>=10'} - hasBin: true - -@@ -1009,8 +1009,8 @@ packages: - undici-types@5.26.5: - resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} - -- update-browserslist-db@1.1.4: -- resolution: {integrity: sha512-q0SPT4xyU84saUX+tomz1WLkxUbuaJnR1xWt17M7fJtEJigJeWUNGUqrauFXsHnqev9y9JTRGwk13tFBuKby4A==} -+ update-browserslist-db@1.1.3: -+ resolution: {integrity: sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==} - hasBin: true - peerDependencies: - browserslist: '>= 4.21.0' -@@ -1020,8 +1020,8 @@ packages: - engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} - hasBin: true - -- vite@7.2.1: -- resolution: {integrity: sha512-qTl3VF7BvOupTR85Zc561sPEgxyUSNSvTQ9fit7DEMP7yPgvvIGm5Zfa1dOM+kOwWGNviK9uFM9ra77+OjK7lQ==} -+ vite@7.1.10: -+ resolution: {integrity: sha512-CmuvUBzVJ/e3HGxhg6cYk88NGgTnBoOo7ogtfJJ0fefUWAxN/WDSUa50o+oVBxuIhO8FoEZW0j2eW7sfjs5EtA==} - engines: {node: ^20.19.0 || >=22.12.0} - hasBin: true - peerDependencies: -@@ -1137,39 +1137,39 @@ packages: - - snapshots: - -- '@biomejs/biome@2.3.1': -+ '@biomejs/biome@2.2.5': - optionalDependencies: -- '@biomejs/cli-darwin-arm64': 2.3.1 -- '@biomejs/cli-darwin-x64': 2.3.1 -- '@biomejs/cli-linux-arm64': 2.3.1 -- '@biomejs/cli-linux-arm64-musl': 2.3.1 -- '@biomejs/cli-linux-x64': 2.3.1 -- '@biomejs/cli-linux-x64-musl': 2.3.1 -- '@biomejs/cli-win32-arm64': 2.3.1 -- '@biomejs/cli-win32-x64': 2.3.1 -- -- '@biomejs/cli-darwin-arm64@2.3.1': -+ '@biomejs/cli-darwin-arm64': 2.2.5 -+ '@biomejs/cli-darwin-x64': 2.2.5 -+ '@biomejs/cli-linux-arm64': 2.2.5 -+ '@biomejs/cli-linux-arm64-musl': 2.2.5 -+ '@biomejs/cli-linux-x64': 2.2.5 -+ '@biomejs/cli-linux-x64-musl': 2.2.5 -+ '@biomejs/cli-win32-arm64': 2.2.5 -+ '@biomejs/cli-win32-x64': 2.2.5 -+ -+ '@biomejs/cli-darwin-arm64@2.2.5': - optional: true - -- '@biomejs/cli-darwin-x64@2.3.1': -+ '@biomejs/cli-darwin-x64@2.2.5': - optional: true - -- '@biomejs/cli-linux-arm64-musl@2.3.1': -+ '@biomejs/cli-linux-arm64-musl@2.2.5': - optional: true - -- '@biomejs/cli-linux-arm64@2.3.1': -+ '@biomejs/cli-linux-arm64@2.2.5': - optional: true - -- '@biomejs/cli-linux-x64-musl@2.3.1': -+ '@biomejs/cli-linux-x64-musl@2.2.5': - optional: true - -- '@biomejs/cli-linux-x64@2.3.1': -+ '@biomejs/cli-linux-x64@2.2.5': - optional: true - -- '@biomejs/cli-win32-arm64@2.3.1': -+ '@biomejs/cli-win32-arm64@2.2.5': - optional: true - -- '@biomejs/cli-win32-x64@2.3.1': -+ '@biomejs/cli-win32-x64@2.2.5': - optional: true - - '@bundled-es-modules/cookie@2.0.1': -@@ -1180,82 +1180,82 @@ snapshots: - dependencies: - statuses: 2.0.2 - -- '@esbuild/aix-ppc64@0.25.12': -+ '@esbuild/aix-ppc64@0.25.11': - optional: true - -- '@esbuild/android-arm64@0.25.12': -+ '@esbuild/android-arm64@0.25.11': - optional: true - -- '@esbuild/android-arm@0.25.12': -+ '@esbuild/android-arm@0.25.11': - optional: true - -- '@esbuild/android-x64@0.25.12': -+ '@esbuild/android-x64@0.25.11': - optional: true - -- '@esbuild/darwin-arm64@0.25.12': -+ '@esbuild/darwin-arm64@0.25.11': - optional: true - -- '@esbuild/darwin-x64@0.25.12': -+ '@esbuild/darwin-x64@0.25.11': - optional: true - -- '@esbuild/freebsd-arm64@0.25.12': -+ '@esbuild/freebsd-arm64@0.25.11': - optional: true - -- '@esbuild/freebsd-x64@0.25.12': -+ '@esbuild/freebsd-x64@0.25.11': - optional: true - -- '@esbuild/linux-arm64@0.25.12': -+ '@esbuild/linux-arm64@0.25.11': - optional: true - -- '@esbuild/linux-arm@0.25.12': -+ '@esbuild/linux-arm@0.25.11': - optional: true - -- '@esbuild/linux-ia32@0.25.12': -+ '@esbuild/linux-ia32@0.25.11': - optional: true - -- '@esbuild/linux-loong64@0.25.12': -+ '@esbuild/linux-loong64@0.25.11': - optional: true - -- '@esbuild/linux-mips64el@0.25.12': -+ '@esbuild/linux-mips64el@0.25.11': - optional: true - -- '@esbuild/linux-ppc64@0.25.12': -+ '@esbuild/linux-ppc64@0.25.11': - optional: true - -- '@esbuild/linux-riscv64@0.25.12': -+ '@esbuild/linux-riscv64@0.25.11': - optional: true - -- '@esbuild/linux-s390x@0.25.12': -+ '@esbuild/linux-s390x@0.25.11': - optional: true - -- '@esbuild/linux-x64@0.25.12': -+ '@esbuild/linux-x64@0.25.11': - optional: true - -- '@esbuild/netbsd-arm64@0.25.12': -+ '@esbuild/netbsd-arm64@0.25.11': - optional: true - -- '@esbuild/netbsd-x64@0.25.12': -+ '@esbuild/netbsd-x64@0.25.11': - optional: true - -- '@esbuild/openbsd-arm64@0.25.12': -+ '@esbuild/openbsd-arm64@0.25.11': - optional: true - -- '@esbuild/openbsd-x64@0.25.12': -+ '@esbuild/openbsd-x64@0.25.11': - optional: true - -- '@esbuild/openharmony-arm64@0.25.12': -+ '@esbuild/openharmony-arm64@0.25.11': - optional: true - -- '@esbuild/sunos-x64@0.25.12': -+ '@esbuild/sunos-x64@0.25.11': - optional: true - -- '@esbuild/win32-arm64@0.25.12': -+ '@esbuild/win32-arm64@0.25.11': - optional: true - -- '@esbuild/win32-ia32@0.25.12': -+ '@esbuild/win32-ia32@0.25.11': - optional: true - -- '@esbuild/win32-x64@0.25.12': -+ '@esbuild/win32-x64@0.25.11': - optional: true - - '@inquirer/ansi@1.0.1': {} -@@ -1323,76 +1323,75 @@ snapshots: - - '@open-draft/until@2.1.0': {} - -- '@rollup/rollup-android-arm-eabi@4.52.5': -+ '@rollup/rollup-android-arm-eabi@4.52.4': - optional: true - -- '@rollup/rollup-android-arm64@4.52.5': -+ '@rollup/rollup-android-arm64@4.52.4': - optional: true - -- '@rollup/rollup-darwin-arm64@4.52.5': -+ '@rollup/rollup-darwin-arm64@4.52.4': - optional: true - -- '@rollup/rollup-darwin-x64@4.52.5': -+ '@rollup/rollup-darwin-x64@4.52.4': - optional: true - -- '@rollup/rollup-freebsd-arm64@4.52.5': -+ '@rollup/rollup-freebsd-arm64@4.52.4': - optional: true - -- '@rollup/rollup-freebsd-x64@4.52.5': -+ '@rollup/rollup-freebsd-x64@4.52.4': - optional: true - -- '@rollup/rollup-linux-arm-gnueabihf@4.52.5': -+ '@rollup/rollup-linux-arm-gnueabihf@4.52.4': - optional: true - -- '@rollup/rollup-linux-arm-musleabihf@4.52.5': -+ '@rollup/rollup-linux-arm-musleabihf@4.52.4': - optional: true - -- '@rollup/rollup-linux-arm64-gnu@4.52.5': -+ '@rollup/rollup-linux-arm64-gnu@4.52.4': - optional: true - -- '@rollup/rollup-linux-arm64-musl@4.52.5': -+ '@rollup/rollup-linux-arm64-musl@4.52.4': - optional: true - -- '@rollup/rollup-linux-loong64-gnu@4.52.5': -+ '@rollup/rollup-linux-loong64-gnu@4.52.4': - optional: true - -- '@rollup/rollup-linux-ppc64-gnu@4.52.5': -+ '@rollup/rollup-linux-ppc64-gnu@4.52.4': - optional: true - -- '@rollup/rollup-linux-riscv64-gnu@4.52.5': -+ '@rollup/rollup-linux-riscv64-gnu@4.52.4': - optional: true - -- '@rollup/rollup-linux-riscv64-musl@4.52.5': -+ '@rollup/rollup-linux-riscv64-musl@4.52.4': - optional: true - -- '@rollup/rollup-linux-s390x-gnu@4.52.5': -+ '@rollup/rollup-linux-s390x-gnu@4.52.4': - optional: true - -- '@rollup/rollup-linux-x64-gnu@4.52.5': -+ '@rollup/rollup-linux-x64-gnu@4.52.4': - optional: true - -- '@rollup/rollup-linux-x64-musl@4.52.5': -+ '@rollup/rollup-linux-x64-musl@4.52.4': - optional: true - -- '@rollup/rollup-openharmony-arm64@4.52.5': -+ '@rollup/rollup-openharmony-arm64@4.52.4': - optional: true - -- '@rollup/rollup-win32-arm64-msvc@4.52.5': -+ '@rollup/rollup-win32-arm64-msvc@4.52.4': - optional: true - -- '@rollup/rollup-win32-ia32-msvc@4.52.5': -+ '@rollup/rollup-win32-ia32-msvc@4.52.4': - optional: true - -- '@rollup/rollup-win32-x64-gnu@4.52.5': -+ '@rollup/rollup-win32-x64-gnu@4.52.4': - optional: true - -- '@rollup/rollup-win32-x64-msvc@4.52.5': -+ '@rollup/rollup-win32-x64-msvc@4.52.4': - optional: true - -- '@types/chai@5.2.3': -+ '@types/chai@5.2.2': - dependencies: - '@types/deep-eql': 4.0.2 -- assertion-error: 2.0.1 - - '@types/cookie@0.6.0': {} - -@@ -1420,20 +1419,20 @@ snapshots: - - '@vitest/expect@3.2.4': - dependencies: -- '@types/chai': 5.2.3 -+ '@types/chai': 5.2.2 - '@vitest/spy': 3.2.4 - '@vitest/utils': 3.2.4 - chai: 5.3.3 - tinyrainbow: 2.0.0 - -- '@vitest/mocker@3.2.4(msw@2.11.2(@types/node@18.19.130)(typescript@5.7.3))(vite@7.2.1(@types/node@18.19.130)(terser@5.44.1))': -+ '@vitest/mocker@3.2.4(msw@2.11.2(@types/node@18.19.130)(typescript@5.7.3))(vite@7.1.10(@types/node@18.19.130)(terser@5.44.0))': - dependencies: - '@vitest/spy': 3.2.4 - estree-walker: 3.0.3 -- magic-string: 0.30.21 -+ magic-string: 0.30.19 - optionalDependencies: - msw: 2.11.2(@types/node@18.19.130)(typescript@5.7.3) -- vite: 7.2.1(@types/node@18.19.130)(terser@5.44.1) -+ vite: 7.1.10(@types/node@18.19.130)(terser@5.44.0) - - '@vitest/pretty-format@3.2.4': - dependencies: -@@ -1448,7 +1447,7 @@ snapshots: - '@vitest/snapshot@3.2.4': - dependencies: - '@vitest/pretty-format': 3.2.4 -- magic-string: 0.30.21 -+ magic-string: 0.30.19 - pathe: 2.0.3 - - '@vitest/spy@3.2.4': -@@ -1571,25 +1570,25 @@ snapshots: - - assertion-error@2.0.1: {} - -- baseline-browser-mapping@2.8.25: {} -+ baseline-browser-mapping@2.8.16: {} - - braces@3.0.3: - dependencies: - fill-range: 7.1.1 - -- browserslist@4.27.0: -+ browserslist@4.26.3: - dependencies: -- baseline-browser-mapping: 2.8.25 -- caniuse-lite: 1.0.30001754 -- electron-to-chromium: 1.5.246 -- node-releases: 2.0.27 -- update-browserslist-db: 1.1.4(browserslist@4.27.0) -+ baseline-browser-mapping: 2.8.16 -+ caniuse-lite: 1.0.30001750 -+ electron-to-chromium: 1.5.237 -+ node-releases: 2.0.23 -+ update-browserslist-db: 1.1.3(browserslist@4.26.3) - - buffer-from@1.1.2: {} - - cac@6.7.14: {} - -- caniuse-lite@1.0.30001754: {} -+ caniuse-lite@1.0.30001750: {} - - chai@5.3.3: - dependencies: -@@ -1632,7 +1631,7 @@ snapshots: - - deep-eql@5.0.2: {} - -- electron-to-chromium@1.5.246: {} -+ electron-to-chromium@1.5.237: {} - - emoji-regex@8.0.0: {} - -@@ -1643,34 +1642,34 @@ snapshots: - - es-module-lexer@1.7.0: {} - -- esbuild@0.25.12: -+ esbuild@0.25.11: - optionalDependencies: -- '@esbuild/aix-ppc64': 0.25.12 -- '@esbuild/android-arm': 0.25.12 -- '@esbuild/android-arm64': 0.25.12 -- '@esbuild/android-x64': 0.25.12 -- '@esbuild/darwin-arm64': 0.25.12 -- '@esbuild/darwin-x64': 0.25.12 -- '@esbuild/freebsd-arm64': 0.25.12 -- '@esbuild/freebsd-x64': 0.25.12 -- '@esbuild/linux-arm': 0.25.12 -- '@esbuild/linux-arm64': 0.25.12 -- '@esbuild/linux-ia32': 0.25.12 -- '@esbuild/linux-loong64': 0.25.12 -- '@esbuild/linux-mips64el': 0.25.12 -- '@esbuild/linux-ppc64': 0.25.12 -- '@esbuild/linux-riscv64': 0.25.12 -- '@esbuild/linux-s390x': 0.25.12 -- '@esbuild/linux-x64': 0.25.12 -- '@esbuild/netbsd-arm64': 0.25.12 -- '@esbuild/netbsd-x64': 0.25.12 -- '@esbuild/openbsd-arm64': 0.25.12 -- '@esbuild/openbsd-x64': 0.25.12 -- '@esbuild/openharmony-arm64': 0.25.12 -- '@esbuild/sunos-x64': 0.25.12 -- '@esbuild/win32-arm64': 0.25.12 -- '@esbuild/win32-ia32': 0.25.12 -- '@esbuild/win32-x64': 0.25.12 -+ '@esbuild/aix-ppc64': 0.25.11 -+ '@esbuild/android-arm': 0.25.11 -+ '@esbuild/android-arm64': 0.25.11 -+ '@esbuild/android-x64': 0.25.11 -+ '@esbuild/darwin-arm64': 0.25.11 -+ '@esbuild/darwin-x64': 0.25.11 -+ '@esbuild/freebsd-arm64': 0.25.11 -+ '@esbuild/freebsd-x64': 0.25.11 -+ '@esbuild/linux-arm': 0.25.11 -+ '@esbuild/linux-arm64': 0.25.11 -+ '@esbuild/linux-ia32': 0.25.11 -+ '@esbuild/linux-loong64': 0.25.11 -+ '@esbuild/linux-mips64el': 0.25.11 -+ '@esbuild/linux-ppc64': 0.25.11 -+ '@esbuild/linux-riscv64': 0.25.11 -+ '@esbuild/linux-s390x': 0.25.11 -+ '@esbuild/linux-x64': 0.25.11 -+ '@esbuild/netbsd-arm64': 0.25.11 -+ '@esbuild/netbsd-x64': 0.25.11 -+ '@esbuild/openbsd-arm64': 0.25.11 -+ '@esbuild/openbsd-x64': 0.25.11 -+ '@esbuild/openharmony-arm64': 0.25.11 -+ '@esbuild/sunos-x64': 0.25.11 -+ '@esbuild/win32-arm64': 0.25.11 -+ '@esbuild/win32-ia32': 0.25.11 -+ '@esbuild/win32-x64': 0.25.11 - - escalade@3.2.0: {} - -@@ -1716,7 +1715,7 @@ snapshots: - - graceful-fs@4.2.11: {} - -- graphql@16.12.0: {} -+ graphql@16.11.0: {} - - has-flag@4.0.0: {} - -@@ -1744,7 +1743,7 @@ snapshots: - - loupe@3.2.1: {} - -- magic-string@0.30.21: -+ magic-string@0.30.19: - dependencies: - '@jridgewell/sourcemap-codec': 1.5.5 - -@@ -1773,7 +1772,7 @@ snapshots: - '@open-draft/until': 2.1.0 - '@types/cookie': 0.6.0 - '@types/statuses': 2.0.6 -- graphql: 16.12.0 -+ graphql: 16.11.0 - headers-polyfill: 4.0.3 - is-node-process: 1.2.0 - outvariant: 1.4.3 -@@ -1795,7 +1794,7 @@ snapshots: - - neo-async@2.6.2: {} - -- node-releases@2.0.27: {} -+ node-releases@2.0.23: {} - - outvariant@1.4.3: {} - -@@ -1827,32 +1826,32 @@ snapshots: - - rettime@0.7.0: {} - -- rollup@4.52.5: -+ rollup@4.52.4: - dependencies: - '@types/estree': 1.0.8 - optionalDependencies: -- '@rollup/rollup-android-arm-eabi': 4.52.5 -- '@rollup/rollup-android-arm64': 4.52.5 -- '@rollup/rollup-darwin-arm64': 4.52.5 -- '@rollup/rollup-darwin-x64': 4.52.5 -- '@rollup/rollup-freebsd-arm64': 4.52.5 -- '@rollup/rollup-freebsd-x64': 4.52.5 -- '@rollup/rollup-linux-arm-gnueabihf': 4.52.5 -- '@rollup/rollup-linux-arm-musleabihf': 4.52.5 -- '@rollup/rollup-linux-arm64-gnu': 4.52.5 -- '@rollup/rollup-linux-arm64-musl': 4.52.5 -- '@rollup/rollup-linux-loong64-gnu': 4.52.5 -- '@rollup/rollup-linux-ppc64-gnu': 4.52.5 -- '@rollup/rollup-linux-riscv64-gnu': 4.52.5 -- '@rollup/rollup-linux-riscv64-musl': 4.52.5 -- '@rollup/rollup-linux-s390x-gnu': 4.52.5 -- '@rollup/rollup-linux-x64-gnu': 4.52.5 -- '@rollup/rollup-linux-x64-musl': 4.52.5 -- '@rollup/rollup-openharmony-arm64': 4.52.5 -- '@rollup/rollup-win32-arm64-msvc': 4.52.5 -- '@rollup/rollup-win32-ia32-msvc': 4.52.5 -- '@rollup/rollup-win32-x64-gnu': 4.52.5 -- '@rollup/rollup-win32-x64-msvc': 4.52.5 -+ '@rollup/rollup-android-arm-eabi': 4.52.4 -+ '@rollup/rollup-android-arm64': 4.52.4 -+ '@rollup/rollup-darwin-arm64': 4.52.4 -+ '@rollup/rollup-darwin-x64': 4.52.4 -+ '@rollup/rollup-freebsd-arm64': 4.52.4 -+ '@rollup/rollup-freebsd-x64': 4.52.4 -+ '@rollup/rollup-linux-arm-gnueabihf': 4.52.4 -+ '@rollup/rollup-linux-arm-musleabihf': 4.52.4 -+ '@rollup/rollup-linux-arm64-gnu': 4.52.4 -+ '@rollup/rollup-linux-arm64-musl': 4.52.4 -+ '@rollup/rollup-linux-loong64-gnu': 4.52.4 -+ '@rollup/rollup-linux-ppc64-gnu': 4.52.4 -+ '@rollup/rollup-linux-riscv64-gnu': 4.52.4 -+ '@rollup/rollup-linux-riscv64-musl': 4.52.4 -+ '@rollup/rollup-linux-s390x-gnu': 4.52.4 -+ '@rollup/rollup-linux-x64-gnu': 4.52.4 -+ '@rollup/rollup-linux-x64-musl': 4.52.4 -+ '@rollup/rollup-openharmony-arm64': 4.52.4 -+ '@rollup/rollup-win32-arm64-msvc': 4.52.4 -+ '@rollup/rollup-win32-ia32-msvc': 4.52.4 -+ '@rollup/rollup-win32-x64-gnu': 4.52.4 -+ '@rollup/rollup-win32-x64-msvc': 4.52.4 - fsevents: 2.3.3 - - safe-buffer@5.2.1: {} -@@ -1923,10 +1922,10 @@ snapshots: - jest-worker: 27.5.1 - schema-utils: 4.3.3 - serialize-javascript: 6.0.2 -- terser: 5.44.1 -+ terser: 5.44.0 - webpack: 5.102.1 - -- terser@5.44.1: -+ terser@5.44.0: - dependencies: - '@jridgewell/source-map': 0.3.11 - acorn: 8.15.0 -@@ -1978,19 +1977,19 @@ snapshots: - - undici-types@5.26.5: {} - -- update-browserslist-db@1.1.4(browserslist@4.27.0): -+ update-browserslist-db@1.1.3(browserslist@4.26.3): - dependencies: -- browserslist: 4.27.0 -+ browserslist: 4.26.3 - escalade: 3.2.0 - picocolors: 1.1.1 - -- vite-node@3.2.4(@types/node@18.19.130)(terser@5.44.1): -+ vite-node@3.2.4(@types/node@18.19.130)(terser@5.44.0): - dependencies: - cac: 6.7.14 - debug: 4.4.3 - es-module-lexer: 1.7.0 - pathe: 2.0.3 -- vite: 7.2.1(@types/node@18.19.130)(terser@5.44.1) -+ vite: 7.1.10(@types/node@18.19.130)(terser@5.44.0) - transitivePeerDependencies: - - '@types/node' - - jiti -@@ -2005,24 +2004,24 @@ snapshots: - - tsx - - yaml - -- vite@7.2.1(@types/node@18.19.130)(terser@5.44.1): -+ vite@7.1.10(@types/node@18.19.130)(terser@5.44.0): - dependencies: -- esbuild: 0.25.12 -+ esbuild: 0.25.11 - fdir: 6.5.0(picomatch@4.0.3) - picomatch: 4.0.3 - postcss: 8.5.6 -- rollup: 4.52.5 -+ rollup: 4.52.4 - tinyglobby: 0.2.15 - optionalDependencies: - '@types/node': 18.19.130 - fsevents: 2.3.3 -- terser: 5.44.1 -+ terser: 5.44.0 - -- vitest@3.2.4(@types/node@18.19.130)(msw@2.11.2(@types/node@18.19.130)(typescript@5.7.3))(terser@5.44.1): -+ vitest@3.2.4(@types/node@18.19.130)(msw@2.11.2(@types/node@18.19.130)(typescript@5.7.3))(terser@5.44.0): - dependencies: -- '@types/chai': 5.2.3 -+ '@types/chai': 5.2.2 - '@vitest/expect': 3.2.4 -- '@vitest/mocker': 3.2.4(msw@2.11.2(@types/node@18.19.130)(typescript@5.7.3))(vite@7.2.1(@types/node@18.19.130)(terser@5.44.1)) -+ '@vitest/mocker': 3.2.4(msw@2.11.2(@types/node@18.19.130)(typescript@5.7.3))(vite@7.1.10(@types/node@18.19.130)(terser@5.44.0)) - '@vitest/pretty-format': 3.2.4 - '@vitest/runner': 3.2.4 - '@vitest/snapshot': 3.2.4 -@@ -2031,7 +2030,7 @@ snapshots: - chai: 5.3.3 - debug: 4.4.3 - expect-type: 1.2.2 -- magic-string: 0.30.21 -+ magic-string: 0.30.19 - pathe: 2.0.3 - picomatch: 4.0.3 - std-env: 3.10.0 -@@ -2040,8 +2039,8 @@ snapshots: - tinyglobby: 0.2.15 - tinypool: 1.1.1 - tinyrainbow: 2.0.0 -- vite: 7.2.1(@types/node@18.19.130)(terser@5.44.1) -- vite-node: 3.2.4(@types/node@18.19.130)(terser@5.44.1) -+ vite: 7.1.10(@types/node@18.19.130)(terser@5.44.0) -+ vite-node: 3.2.4(@types/node@18.19.130)(terser@5.44.0) - why-is-node-running: 2.3.0 - optionalDependencies: - '@types/node': 18.19.130 -@@ -2076,7 +2075,7 @@ snapshots: - '@webassemblyjs/wasm-parser': 1.14.1 - acorn: 8.15.0 - acorn-import-phases: 1.0.4(acorn@8.15.0) -- browserslist: 4.27.0 -+ browserslist: 4.26.3 - chrome-trace-event: 1.0.4 - enhanced-resolve: 5.18.3 - es-module-lexer: 1.7.0 -diff --git a/reference.md b/reference.md -index 9ccece5..2a5f768 100644 ---- a/reference.md -+++ b/reference.md -@@ -135,9 +135,7 @@ Filter plants based on their current status. -
- - ```typescript --await client.plant.searchPlantsByStatus({ -- status: "available" --}); -+await client.plant.searchPlantsByStatus(); - - ``` -
-@@ -236,7 +234,7 @@ await client.plant.searchPlantsByTags(); - - - --
client.plant.getPlantById(plantId) -> FernApi.PlantResponse -+
client.plant.getPlantById({ ...params }) -> FernApi.PlantResponse -
-
- -@@ -263,7 +261,9 @@ Retrieve a plant's details by its ID. -
- - ```typescript --await client.plant.getPlantById(1); -+await client.plant.getPlantById({ -+ plantId: 1 -+}); - - ``` -
-@@ -279,7 +279,7 @@ await client.plant.getPlantById(1); -
-
- --**plantId:** `number` — ID of the plant to retrieve -+**request:** `FernApi.GetPlantByIdRequest` - -
-
-@@ -313,10 +313,7 @@ await client.plant.getPlantById(1); -
- - ```typescript --await client.user.loginUser({ -- username: "username", -- password: "password" --}); -+await client.user.loginUser(); - - ``` -
-@@ -393,7 +390,7 @@ await client.user.logoutUser(); -
-
- --
client.user.getUserByName(username) -> FernApi.User -+
client.user.getUserByName({ ...params }) -> FernApi.User -
-
- -@@ -420,7 +417,9 @@ Retrieve user details using their username. -
- - ```typescript --await client.user.getUserByName("username"); -+await client.user.getUserByName({ -+ username: "username" -+}); - - ``` -
-@@ -436,7 +435,7 @@ await client.user.getUserByName("username"); -
-
- --**username:** `string` — Username of the user to retrieve -+**request:** `FernApi.GetUserByNameRequest` - -
-
-diff --git a/src/BaseClient.ts b/src/BaseClient.ts -index dd0a3f8..6960e72 100644 ---- a/src/BaseClient.ts -+++ b/src/BaseClient.ts -@@ -13,10 +13,6 @@ export interface BaseClientOptions { - timeoutInSeconds?: number; - /** The default number of times to retry the request. Defaults to 2. */ - maxRetries?: number; -- /** Provide a custom fetch implementation. Useful for platforms that don't have a built-in fetch or need a custom implementation. */ -- fetch?: typeof fetch; -- /** Configure logging for the client. */ -- logging?: core.logging.LogConfig | core.logging.Logger; - } - - export interface BaseRequestOptions { -diff --git a/src/Client.ts b/src/Client.ts -index 3705e94..cc6f94d 100644 ---- a/src/Client.ts -+++ b/src/Client.ts -@@ -20,13 +20,11 @@ export class FernApiClient { - constructor(_options: FernApiClient.Options = {}) { - this._options = { - ..._options, -- logging: core.logging.createLogger(_options?.logging), - headers: mergeHeaders( - { - "X-Fern-Language": "JavaScript", - "X-Fern-SDK-Name": "", -- "X-Fern-SDK-Version": "0.0.1", -- "User-Agent": "/0.0.1", -+ "X-Fern-SDK-Version": "AUTO", - "X-Fern-Runtime": core.RUNTIME.type, - "X-Fern-Runtime-Version": core.RUNTIME.version, - }, -diff --git a/src/api/resources/plant/client/Client.ts b/src/api/resources/plant/client/Client.ts -index d09e424..901121f 100644 ---- a/src/api/resources/plant/client/Client.ts -+++ b/src/api/resources/plant/client/Client.ts -@@ -62,11 +62,9 @@ export class Plant { - queryParameters: requestOptions?.queryParams, - requestType: "json", - body: request, -- timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, -+ timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 30) * 1000, - maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, - abortSignal: requestOptions?.abortSignal, -- fetchFn: this._options?.fetch, -- logging: this._options.logging, - }); - if (_response.ok) { - return { data: _response.body as FernApi.PlantResponse, rawResponse: _response.rawResponse }; -@@ -142,11 +140,9 @@ export class Plant { - queryParameters: requestOptions?.queryParams, - requestType: "json", - body: request, -- timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, -+ timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 30) * 1000, - maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, - abortSignal: requestOptions?.abortSignal, -- fetchFn: this._options?.fetch, -- logging: this._options.logging, - }); - if (_response.ok) { - return { data: _response.body as FernApi.PlantResponse, rawResponse: _response.rawResponse }; -@@ -191,9 +187,7 @@ export class Plant { - * @param {Plant.RequestOptions} requestOptions - Request-specific configuration. - * - * @example -- * await client.plant.searchPlantsByStatus({ -- * status: "available" -- * }) -+ * await client.plant.searchPlantsByStatus() - */ - public searchPlantsByStatus( - request: FernApi.SearchPlantsByStatusRequest = {}, -@@ -223,11 +217,9 @@ export class Plant { - method: "GET", - headers: _headers, - queryParameters: { ..._queryParams, ...requestOptions?.queryParams }, -- timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, -+ timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 30) * 1000, - maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, - abortSignal: requestOptions?.abortSignal, -- fetchFn: this._options?.fetch, -- logging: this._options.logging, - }); - if (_response.ok) { - return { data: _response.body as FernApi.PlantResponse[], rawResponse: _response.rawResponse }; -@@ -299,11 +291,9 @@ export class Plant { - method: "GET", - headers: _headers, - queryParameters: { ..._queryParams, ...requestOptions?.queryParams }, -- timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, -+ timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 30) * 1000, - maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, - abortSignal: requestOptions?.abortSignal, -- fetchFn: this._options?.fetch, -- logging: this._options.logging, - }); - if (_response.ok) { - return { data: _response.body as FernApi.PlantResponse[], rawResponse: _response.rawResponse }; -@@ -337,39 +327,40 @@ export class Plant { - /** - * Retrieve a plant's details by its ID. - * -- * @param {number} plantId - ID of the plant to retrieve -+ * @param {FernApi.GetPlantByIdRequest} request - * @param {Plant.RequestOptions} requestOptions - Request-specific configuration. - * - * @example -- * await client.plant.getPlantById(1) -+ * await client.plant.getPlantById({ -+ * plantId: 1 -+ * }) - */ - public getPlantById( -- plantId: number, -+ request: FernApi.GetPlantByIdRequest, - requestOptions?: Plant.RequestOptions, - ): core.HttpResponsePromise { -- return core.HttpResponsePromise.fromPromise(this.__getPlantById(plantId, requestOptions)); -+ return core.HttpResponsePromise.fromPromise(this.__getPlantById(request, requestOptions)); - } - - private async __getPlantById( -- plantId: number, -+ request: FernApi.GetPlantByIdRequest, - requestOptions?: Plant.RequestOptions, - ): Promise> { -+ const { plantId } = request; - const _headers: core.Fetcher.Args["headers"] = mergeHeaders(this._options?.headers, requestOptions?.headers); - const _response = await core.fetcher({ - url: core.url.join( - (await core.Supplier.get(this._options.baseUrl)) ?? - (await core.Supplier.get(this._options.environment)) ?? - environments.FernApiEnvironment.Default, -- `plant/${core.url.encodePathParam(plantId)}`, -+ `plant/${encodeURIComponent(plantId)}`, - ), - method: "GET", - headers: _headers, - queryParameters: requestOptions?.queryParams, -- timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, -+ timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 30) * 1000, - maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, - abortSignal: requestOptions?.abortSignal, -- fetchFn: this._options?.fetch, -- logging: this._options.logging, - }); - if (_response.ok) { - return { data: _response.body as FernApi.PlantResponse, rawResponse: _response.rawResponse }; -diff --git a/src/api/resources/plant/client/requests/GetPlantByIdRequest.ts b/src/api/resources/plant/client/requests/GetPlantByIdRequest.ts -new file mode 100644 -index 0000000..9077726 ---- /dev/null -+++ b/src/api/resources/plant/client/requests/GetPlantByIdRequest.ts -@@ -0,0 +1,12 @@ -+// This file was auto-generated by Fern from our API Definition. -+ -+/** -+ * @example -+ * { -+ * plantId: 1 -+ * } -+ */ -+export interface GetPlantByIdRequest { -+ /** ID of the plant to retrieve */ -+ plantId: number; -+} -diff --git a/src/api/resources/plant/client/requests/SearchPlantsByStatusRequest.ts b/src/api/resources/plant/client/requests/SearchPlantsByStatusRequest.ts -index aac77bf..1e70095 100644 ---- a/src/api/resources/plant/client/requests/SearchPlantsByStatusRequest.ts -+++ b/src/api/resources/plant/client/requests/SearchPlantsByStatusRequest.ts -@@ -4,9 +4,7 @@ import type * as FernApi from "../../../../index.js"; - - /** - * @example -- * { -- * status: "available" -- * } -+ * {} - */ - export interface SearchPlantsByStatusRequest { - /** The status of plants to search for. */ -diff --git a/src/api/resources/plant/client/requests/index.ts b/src/api/resources/plant/client/requests/index.ts -index dd7cff7..46c152a 100644 ---- a/src/api/resources/plant/client/requests/index.ts -+++ b/src/api/resources/plant/client/requests/index.ts -@@ -1,2 +1,3 @@ -+export type { GetPlantByIdRequest } from "./GetPlantByIdRequest.js"; - export type { SearchPlantsByStatusRequest } from "./SearchPlantsByStatusRequest.js"; - export type { SearchPlantsByTagsRequest } from "./SearchPlantsByTagsRequest.js"; -diff --git a/src/api/resources/user/client/Client.ts b/src/api/resources/user/client/Client.ts -index e3daa2a..4cb5eca 100644 ---- a/src/api/resources/user/client/Client.ts -+++ b/src/api/resources/user/client/Client.ts -@@ -28,10 +28,7 @@ export class User { - * @param {User.RequestOptions} requestOptions - Request-specific configuration. - * - * @example -- * await client.user.loginUser({ -- * username: "username", -- * password: "password" -- * }) -+ * await client.user.loginUser() - */ - public loginUser( - request: FernApi.LoginUserRequest = {}, -@@ -65,11 +62,9 @@ export class User { - method: "GET", - headers: _headers, - queryParameters: { ..._queryParams, ...requestOptions?.queryParams }, -- timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, -+ timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 30) * 1000, - maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, - abortSignal: requestOptions?.abortSignal, -- fetchFn: this._options?.fetch, -- logging: this._options.logging, - }); - if (_response.ok) { - return { data: _response.body as FernApi.UserAuthResponse, rawResponse: _response.rawResponse }; -@@ -122,11 +117,9 @@ export class User { - method: "GET", - headers: _headers, - queryParameters: requestOptions?.queryParams, -- timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, -+ timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 30) * 1000, - maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, - abortSignal: requestOptions?.abortSignal, -- fetchFn: this._options?.fetch, -- logging: this._options.logging, - }); - if (_response.ok) { - return { data: undefined, rawResponse: _response.rawResponse }; -@@ -160,39 +153,40 @@ export class User { - /** - * Retrieve user details using their username. - * -- * @param {string} username - Username of the user to retrieve -+ * @param {FernApi.GetUserByNameRequest} request - * @param {User.RequestOptions} requestOptions - Request-specific configuration. - * - * @example -- * await client.user.getUserByName("username") -+ * await client.user.getUserByName({ -+ * username: "username" -+ * }) - */ - public getUserByName( -- username: string, -+ request: FernApi.GetUserByNameRequest, - requestOptions?: User.RequestOptions, - ): core.HttpResponsePromise { -- return core.HttpResponsePromise.fromPromise(this.__getUserByName(username, requestOptions)); -+ return core.HttpResponsePromise.fromPromise(this.__getUserByName(request, requestOptions)); - } - - private async __getUserByName( -- username: string, -+ request: FernApi.GetUserByNameRequest, - requestOptions?: User.RequestOptions, - ): Promise> { -+ const { username } = request; - const _headers: core.Fetcher.Args["headers"] = mergeHeaders(this._options?.headers, requestOptions?.headers); - const _response = await core.fetcher({ - url: core.url.join( - (await core.Supplier.get(this._options.baseUrl)) ?? - (await core.Supplier.get(this._options.environment)) ?? - environments.FernApiEnvironment.Default, -- `user/${core.url.encodePathParam(username)}`, -+ `user/${encodeURIComponent(username)}`, - ), - method: "GET", - headers: _headers, - queryParameters: requestOptions?.queryParams, -- timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000, -+ timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 30) * 1000, - maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries, - abortSignal: requestOptions?.abortSignal, -- fetchFn: this._options?.fetch, -- logging: this._options.logging, - }); - if (_response.ok) { - return { data: _response.body as FernApi.User, rawResponse: _response.rawResponse }; -diff --git a/src/api/resources/user/client/requests/GetUserByNameRequest.ts b/src/api/resources/user/client/requests/GetUserByNameRequest.ts -new file mode 100644 -index 0000000..7ef0922 ---- /dev/null -+++ b/src/api/resources/user/client/requests/GetUserByNameRequest.ts -@@ -0,0 +1,12 @@ -+// This file was auto-generated by Fern from our API Definition. -+ -+/** -+ * @example -+ * { -+ * username: "username" -+ * } -+ */ -+export interface GetUserByNameRequest { -+ /** Username of the user to retrieve */ -+ username: string; -+} -diff --git a/src/api/resources/user/client/requests/LoginUserRequest.ts b/src/api/resources/user/client/requests/LoginUserRequest.ts -index 3e9cf4e..7ef5be2 100644 ---- a/src/api/resources/user/client/requests/LoginUserRequest.ts -+++ b/src/api/resources/user/client/requests/LoginUserRequest.ts -@@ -2,10 +2,7 @@ - - /** - * @example -- * { -- * username: "username", -- * password: "password" -- * } -+ * {} - */ - export interface LoginUserRequest { - /** The username for login */ -diff --git a/src/api/resources/user/client/requests/index.ts b/src/api/resources/user/client/requests/index.ts -index 82b9cff..c8e418b 100644 ---- a/src/api/resources/user/client/requests/index.ts -+++ b/src/api/resources/user/client/requests/index.ts -@@ -1 +1,2 @@ -+export type { GetUserByNameRequest } from "./GetUserByNameRequest.js"; - export type { LoginUserRequest } from "./LoginUserRequest.js"; -diff --git a/src/api/types/Plant.ts b/src/api/types/Plant.ts -index 5fcba5b..4aa95d3 100644 ---- a/src/api/types/Plant.ts -+++ b/src/api/types/Plant.ts -@@ -1,7 +1,8 @@ - // This file was auto-generated by Fern from our API Definition. - - export interface Plant { -- name?: string; -+ name: string; -+ nickName?: string; - category?: string; - tags?: string[]; - status?: Plant.Status; -diff --git a/src/core/exports.ts b/src/core/exports.ts -deleted file mode 100644 -index 69296d7..0000000 ---- a/src/core/exports.ts -+++ /dev/null -@@ -1 +0,0 @@ --export * from "./logging/exports.js"; -diff --git a/src/core/fetcher/Fetcher.ts b/src/core/fetcher/Fetcher.ts -index ef020d4..202e134 100644 ---- a/src/core/fetcher/Fetcher.ts -+++ b/src/core/fetcher/Fetcher.ts -@@ -1,5 +1,4 @@ - import { toJson } from "../json.js"; --import { createLogger, type LogConfig, type Logger } from "../logging/logger.js"; - import type { APIResponse } from "./APIResponse.js"; - import { createRequestUrl } from "./createRequestUrl.js"; - import type { EndpointMetadata } from "./EndpointMetadata.js"; -@@ -26,12 +25,10 @@ export declare namespace Fetcher { - maxRetries?: number; - withCredentials?: boolean; - abortSignal?: AbortSignal; -- requestType?: "json" | "file" | "bytes" | "form" | "other"; -+ requestType?: "json" | "file" | "bytes"; - responseType?: "json" | "blob" | "sse" | "streaming" | "text" | "arrayBuffer" | "binary-response"; - duplex?: "half"; - endpointMetadata?: EndpointMetadata; -- fetchFn?: typeof fetch; -- logging?: LogConfig | Logger; - } - - export type Error = FailedStatusCodeError | NonJsonError | TimeoutError | UnknownError; -@@ -58,141 +55,6 @@ export declare namespace Fetcher { - } - } - --const SENSITIVE_HEADERS = new Set([ -- "authorization", -- "x-api-key", -- "api-key", -- "x-auth-token", -- "cookie", -- "set-cookie", -- "proxy-authorization", -- "x-csrf-token", -- "x-xsrf-token", --]); -- --function redactHeaders(headers: Record): Record { -- const filtered: Record = {}; -- for (const [key, value] of Object.entries(headers)) { -- if (SENSITIVE_HEADERS.has(key.toLowerCase())) { -- filtered[key] = "[REDACTED]"; -- } else { -- filtered[key] = value; -- } -- } -- return filtered; --} -- --const SENSITIVE_QUERY_PARAMS = new Set([ -- "api_key", -- "api-key", -- "apikey", -- "token", -- "access_token", -- "access-token", -- "auth_token", -- "auth-token", -- "password", -- "passwd", -- "secret", -- "api_secret", -- "api-secret", -- "apisecret", -- "key", -- "session", -- "session_id", -- "session-id", --]); -- --function redactQueryParameters(queryParameters?: Record): Record | undefined { -- if (queryParameters == null) { -- return queryParameters; -- } -- const redacted: Record = {}; -- for (const [key, value] of Object.entries(queryParameters)) { -- if (SENSITIVE_QUERY_PARAMS.has(key.toLowerCase())) { -- redacted[key] = "[REDACTED]"; -- } else { -- redacted[key] = value; -- } -- } -- return redacted; --} -- --function redactUrl(url: string): string { -- const protocolIndex = url.indexOf("://"); -- if (protocolIndex === -1) return url; -- -- const afterProtocol = protocolIndex + 3; -- const atIndex = url.indexOf("@", afterProtocol); -- -- if (atIndex !== -1) { -- const pathStart = url.indexOf("/", afterProtocol); -- const queryStart = url.indexOf("?", afterProtocol); -- const fragmentStart = url.indexOf("#", afterProtocol); -- -- const firstDelimiter = Math.min( -- pathStart === -1 ? url.length : pathStart, -- queryStart === -1 ? url.length : queryStart, -- fragmentStart === -1 ? url.length : fragmentStart, -- ); -- -- if (atIndex < firstDelimiter) { -- url = `${url.slice(0, afterProtocol)}[REDACTED]@${url.slice(atIndex + 1)}`; -- } -- } -- -- const queryStart = url.indexOf("?"); -- if (queryStart === -1) return url; -- -- const fragmentStart = url.indexOf("#", queryStart); -- const queryEnd = fragmentStart !== -1 ? fragmentStart : url.length; -- const queryString = url.slice(queryStart + 1, queryEnd); -- -- if (queryString.length === 0) return url; -- -- // FAST PATH: Quick check if any sensitive keywords present -- // Using indexOf is faster than regex for simple substring matching -- const lower = queryString.toLowerCase(); -- const hasSensitive = -- lower.includes("token") || // catches token, access_token, auth_token, etc. -- lower.includes("key") || // catches key, api_key, apikey, api-key, etc. -- lower.includes("password") || // catches password -- lower.includes("passwd") || // catches passwd -- lower.includes("secret") || // catches secret, api_secret, etc. -- lower.includes("session") || // catches session, session_id, session-id -- lower.includes("auth"); // catches auth_token, auth-token, etc. -- -- if (!hasSensitive) { -- return url; // Early exit - no sensitive params -- } -- -- // SLOW PATH: Parse and redact -- const redactedParams: string[] = []; -- const params = queryString.split("&"); -- -- for (const param of params) { -- const equalIndex = param.indexOf("="); -- if (equalIndex === -1) { -- redactedParams.push(param); -- continue; -- } -- -- const key = param.slice(0, equalIndex); -- let shouldRedact = SENSITIVE_QUERY_PARAMS.has(key.toLowerCase()); -- -- if (!shouldRedact && key.includes("%")) { -- try { -- const decodedKey = decodeURIComponent(key); -- shouldRedact = SENSITIVE_QUERY_PARAMS.has(decodedKey.toLowerCase()); -- } catch {} -- } -- -- redactedParams.push(shouldRedact ? `${key}=[REDACTED]` : param); -- } -- -- return url.slice(0, queryStart + 1) + redactedParams.join("&") + url.slice(queryEnd); --} -- - async function getHeaders(args: Fetcher.Args): Promise> { - const newHeaders: Record = {}; - if (args.body !== undefined && args.contentType != null) { -@@ -221,22 +83,9 @@ export async function fetcherImpl(args: Fetcher.Args): Promise(args: Fetcher.Args): Promise(args: Fetcher.Args): Promise= 200 && response.status < 400) { -- if (logger.isDebug()) { -- const metadata = { -- method: args.method, -- url: redactUrl(url), -- statusCode: response.status, -- }; -- logger.debug("HTTP request succeeded", metadata); -- } - return { - ok: true, - body: (await getResponseBody(response, args.responseType)) as R, -@@ -271,14 +112,6 @@ export async function fetcherImpl(args: Fetcher.Args): Promise(args: Fetcher.Args): Promise(args: Fetcher.Args): Promise(args: Fetcher.Args): Promise(args: Fetcher.Args): Promise { -- if (type === "form") { -- return toQueryString(body, { arrayFormat: "repeat", encode: true }); -- } - if (type.includes("json")) { - return toJson(body); - } else { -diff --git a/src/core/headers.ts b/src/core/headers.ts -index 78ed8b5..a723d22 100644 ---- a/src/core/headers.ts -+++ b/src/core/headers.ts -@@ -6,11 +6,10 @@ export function mergeHeaders( - for (const [key, value] of headersArray - .filter((headers) => headers != null) - .flatMap((headers) => Object.entries(headers))) { -- const insensitiveKey = key.toLowerCase(); - if (value != null) { -- result[insensitiveKey] = value; -- } else if (insensitiveKey in result) { -- delete result[insensitiveKey]; -+ result[key] = value; -+ } else if (key in result) { -+ delete result[key]; - } - } - -@@ -25,9 +24,8 @@ export function mergeOnlyDefinedHeaders( - for (const [key, value] of headersArray - .filter((headers) => headers != null) - .flatMap((headers) => Object.entries(headers))) { -- const insensitiveKey = key.toLowerCase(); - if (value != null) { -- result[insensitiveKey] = value; -+ result[key] = value; - } - } - -diff --git a/src/core/index.ts b/src/core/index.ts -index afa8351..bbb640d 100644 ---- a/src/core/index.ts -+++ b/src/core/index.ts -@@ -1,4 +1,3 @@ - export * from "./fetcher/index.js"; --export * as logging from "./logging/index.js"; - export * from "./runtime/index.js"; - export * as url from "./url/index.js"; -diff --git a/src/core/logging/exports.ts b/src/core/logging/exports.ts -deleted file mode 100644 -index 88f6c00..0000000 ---- a/src/core/logging/exports.ts -+++ /dev/null -@@ -1,19 +0,0 @@ --import * as logger from "./logger.js"; -- --export namespace logging { -- /** -- * Configuration for logger instances. -- */ -- export type LogConfig = logger.LogConfig; -- export type LogLevel = logger.LogLevel; -- export const LogLevel: typeof logger.LogLevel = logger.LogLevel; -- export type ILogger = logger.ILogger; -- /** -- * Console logger implementation that outputs to the console. -- */ -- export type ConsoleLogger = logger.ConsoleLogger; -- /** -- * Console logger implementation that outputs to the console. -- */ -- export const ConsoleLogger: typeof logger.ConsoleLogger = logger.ConsoleLogger; --} -diff --git a/src/core/logging/index.ts b/src/core/logging/index.ts -deleted file mode 100644 -index d81cc32..0000000 ---- a/src/core/logging/index.ts -+++ /dev/null -@@ -1 +0,0 @@ --export * from "./logger.js"; -diff --git a/src/core/logging/logger.ts b/src/core/logging/logger.ts -deleted file mode 100644 -index a2bdef4..0000000 ---- a/src/core/logging/logger.ts -+++ /dev/null -@@ -1,203 +0,0 @@ --export const LogLevel = { -- Debug: "debug", -- Info: "info", -- Warn: "warn", -- Error: "error", --} as const; --export type LogLevel = (typeof LogLevel)[keyof typeof LogLevel]; --const logLevelMap: Record = { -- [LogLevel.Debug]: 1, -- [LogLevel.Info]: 2, -- [LogLevel.Warn]: 3, -- [LogLevel.Error]: 4, --}; -- --export interface ILogger { -- /** -- * Logs a debug message. -- * @param message - The message to log -- * @param args - Additional arguments to log -- */ -- debug(message: string, ...args: unknown[]): void; -- /** -- * Logs an info message. -- * @param message - The message to log -- * @param args - Additional arguments to log -- */ -- info(message: string, ...args: unknown[]): void; -- /** -- * Logs a warning message. -- * @param message - The message to log -- * @param args - Additional arguments to log -- */ -- warn(message: string, ...args: unknown[]): void; -- /** -- * Logs an error message. -- * @param message - The message to log -- * @param args - Additional arguments to log -- */ -- error(message: string, ...args: unknown[]): void; --} -- --/** -- * Configuration for logger initialization. -- */ --export interface LogConfig { -- /** -- * Minimum log level to output. -- * @default LogLevel.Info -- */ -- level?: LogLevel; -- /** -- * Logger implementation to use. -- * @default new ConsoleLogger() -- */ -- logger?: ILogger; -- /** -- * Whether logging should be silenced. -- * @default true -- */ -- silent?: boolean; --} -- --/** -- * Default console-based logger implementation. -- */ --export class ConsoleLogger implements ILogger { -- debug(message: string, ...args: unknown[]): void { -- console.debug(message, ...args); -- } -- info(message: string, ...args: unknown[]): void { -- console.info(message, ...args); -- } -- warn(message: string, ...args: unknown[]): void { -- console.warn(message, ...args); -- } -- error(message: string, ...args: unknown[]): void { -- console.error(message, ...args); -- } --} -- --/** -- * Logger class that provides level-based logging functionality. -- */ --export class Logger { -- private readonly level: number; -- private readonly logger: ILogger; -- private readonly silent: boolean; -- -- /** -- * Creates a new logger instance. -- * @param config - Logger configuration -- */ -- constructor(config: Required) { -- this.level = logLevelMap[config.level]; -- this.logger = config.logger; -- this.silent = config.silent; -- } -- -- /** -- * Checks if a log level should be output based on configuration. -- * @param level - The log level to check -- * @returns True if the level should be logged -- */ -- public shouldLog(level: LogLevel): boolean { -- return !this.silent && this.level >= logLevelMap[level]; -- } -- -- /** -- * Checks if debug logging is enabled. -- * @returns True if debug logs should be output -- */ -- public isDebug(): boolean { -- return this.shouldLog(LogLevel.Debug); -- } -- -- /** -- * Logs a debug message if debug logging is enabled. -- * @param message - The message to log -- * @param args - Additional arguments to log -- */ -- public debug(message: string, ...args: unknown[]): void { -- if (this.isDebug()) { -- this.logger.debug(message, ...args); -- } -- } -- -- /** -- * Checks if info logging is enabled. -- * @returns True if info logs should be output -- */ -- public isInfo(): boolean { -- return this.shouldLog(LogLevel.Info); -- } -- -- /** -- * Logs an info message if info logging is enabled. -- * @param message - The message to log -- * @param args - Additional arguments to log -- */ -- public info(message: string, ...args: unknown[]): void { -- if (this.isInfo()) { -- this.logger.info(message, ...args); -- } -- } -- -- /** -- * Checks if warning logging is enabled. -- * @returns True if warning logs should be output -- */ -- public isWarn(): boolean { -- return this.shouldLog(LogLevel.Warn); -- } -- -- /** -- * Logs a warning message if warning logging is enabled. -- * @param message - The message to log -- * @param args - Additional arguments to log -- */ -- public warn(message: string, ...args: unknown[]): void { -- if (this.isWarn()) { -- this.logger.warn(message, ...args); -- } -- } -- -- /** -- * Checks if error logging is enabled. -- * @returns True if error logs should be output -- */ -- public isError(): boolean { -- return this.shouldLog(LogLevel.Error); -- } -- -- /** -- * Logs an error message if error logging is enabled. -- * @param message - The message to log -- * @param args - Additional arguments to log -- */ -- public error(message: string, ...args: unknown[]): void { -- if (this.isError()) { -- this.logger.error(message, ...args); -- } -- } --} -- --export function createLogger(config?: LogConfig | Logger): Logger { -- if (config == null) { -- return defaultLogger; -- } -- if (config instanceof Logger) { -- return config; -- } -- config = config ?? {}; -- config.level ??= LogLevel.Info; -- config.logger ??= new ConsoleLogger(); -- config.silent ??= true; -- return new Logger(config as Required); --} -- --const defaultLogger: Logger = new Logger({ -- level: LogLevel.Info, -- logger: new ConsoleLogger(), -- silent: true, --}); -diff --git a/src/core/url/encodePathParam.ts b/src/core/url/encodePathParam.ts -deleted file mode 100644 -index 19b9012..0000000 ---- a/src/core/url/encodePathParam.ts -+++ /dev/null -@@ -1,18 +0,0 @@ --export function encodePathParam(param: unknown): string { -- if (param === null) { -- return "null"; -- } -- const typeofParam = typeof param; -- switch (typeofParam) { -- case "undefined": -- return "undefined"; -- case "string": -- case "number": -- case "boolean": -- break; -- default: -- param = String(param); -- break; -- } -- return encodeURIComponent(param as string | number | boolean); --} -diff --git a/src/core/url/index.ts b/src/core/url/index.ts -index f2e0fa2..ed5aa0f 100644 ---- a/src/core/url/index.ts -+++ b/src/core/url/index.ts -@@ -1,3 +1,2 @@ --export { encodePathParam } from "./encodePathParam.js"; - export { join } from "./join.js"; - export { toQueryString } from "./qs.js"; -diff --git a/src/exports.ts b/src/exports.ts -deleted file mode 100644 -index 7b70ee1..0000000 ---- a/src/exports.ts -+++ /dev/null -@@ -1 +0,0 @@ --export * from "./core/exports.js"; -diff --git a/src/index.ts b/src/index.ts -index e9c07eb..002f149 100644 ---- a/src/index.ts -+++ b/src/index.ts -@@ -3,4 +3,3 @@ export type { BaseClientOptions, BaseRequestOptions } from "./BaseClient.js"; - export { FernApiClient } from "./Client.js"; - export { FernApiEnvironment } from "./environments.js"; - export { FernApiError, FernApiTimeoutError } from "./errors/index.js"; --export * from "./exports.js"; -diff --git a/src/version.ts b/src/version.ts -index b643a3e..4e39e59 100644 ---- a/src/version.ts -+++ b/src/version.ts -@@ -1 +1 @@ --export const SDK_VERSION = "0.0.1"; -+export const SDK_VERSION = "AUTO"; -diff --git a/tests/mock-server/mockEndpointBuilder.ts b/tests/mock-server/mockEndpointBuilder.ts -index 1b0e510..18557ec 100644 ---- a/tests/mock-server/mockEndpointBuilder.ts -+++ b/tests/mock-server/mockEndpointBuilder.ts -@@ -2,7 +2,6 @@ import { type DefaultBodyType, type HttpHandler, HttpResponse, type HttpResponse - - import { url } from "../../src/core"; - import { toJson } from "../../src/core/json"; --import { withFormUrlEncoded } from "./withFormUrlEncoded"; - import { withHeaders } from "./withHeaders"; - import { withJson } from "./withJson"; - -@@ -27,7 +26,6 @@ interface RequestHeadersStage extends RequestBodyStage, ResponseStage { - - interface RequestBodyStage extends ResponseStage { - jsonBody(body: unknown): ResponseStage; -- formUrlEncodedBody(body: unknown): ResponseStage; - } - - interface ResponseStage { -@@ -137,16 +135,6 @@ class RequestBuilder implements MethodStage, RequestHeadersStage, RequestBodySta - return this; - } - -- formUrlEncodedBody(body: unknown): ResponseStage { -- if (body === undefined) { -- throw new Error( -- "Undefined is not valid for form-urlencoded. Do not call formUrlEncodedBody if you want an empty body.", -- ); -- } -- this.predicates.push((resolver) => withFormUrlEncoded(body, resolver)); -- return this; -- } -- - respondWith(): ResponseStatusStage { - return new ResponseBuilder(this.method, this.buildUrl(), this.predicates, this.handlerOptions); - } -diff --git a/tests/mock-server/withFormUrlEncoded.ts b/tests/mock-server/withFormUrlEncoded.ts -deleted file mode 100644 -index e9e6ff2..0000000 ---- a/tests/mock-server/withFormUrlEncoded.ts -+++ /dev/null -@@ -1,80 +0,0 @@ --import { type HttpResponseResolver, passthrough } from "msw"; -- --import { toJson } from "../../src/core/json"; -- --/** -- * Creates a request matcher that validates if the request form-urlencoded body exactly matches the expected object -- * @param expectedBody - The exact body object to match against -- * @param resolver - Response resolver to execute if body matches -- */ --export function withFormUrlEncoded(expectedBody: unknown, resolver: HttpResponseResolver): HttpResponseResolver { -- return async (args) => { -- const { request } = args; -- -- let clonedRequest: Request; -- let bodyText: string | undefined; -- let actualBody: Record; -- try { -- clonedRequest = request.clone(); -- bodyText = await clonedRequest.text(); -- if (bodyText === "") { -- console.error("Request body is empty, expected a form-urlencoded body."); -- return passthrough(); -- } -- const params = new URLSearchParams(bodyText); -- actualBody = {}; -- for (const [key, value] of params.entries()) { -- actualBody[key] = value; -- } -- } catch (error) { -- console.error(`Error processing form-urlencoded request body:\n\tError: ${error}\n\tBody: ${bodyText}`); -- return passthrough(); -- } -- -- const mismatches = findMismatches(actualBody, expectedBody); -- if (Object.keys(mismatches).length > 0) { -- console.error("Form-urlencoded body mismatch:", toJson(mismatches, undefined, 2)); -- return passthrough(); -- } -- -- return resolver(args); -- }; --} -- --function findMismatches(actual: any, expected: any): Record { -- const mismatches: Record = {}; -- -- if (typeof actual !== typeof expected) { -- return { value: { actual, expected } }; -- } -- -- if (typeof actual !== "object" || actual === null || expected === null) { -- if (actual !== expected) { -- return { value: { actual, expected } }; -- } -- return {}; -- } -- -- const actualKeys = Object.keys(actual); -- const expectedKeys = Object.keys(expected); -- -- const allKeys = new Set([...actualKeys, ...expectedKeys]); -- -- for (const key of allKeys) { -- if (!expectedKeys.includes(key)) { -- if (actual[key] === undefined) { -- continue; -- } -- mismatches[key] = { actual: actual[key], expected: undefined }; -- } else if (!actualKeys.includes(key)) { -- if (expected[key] === undefined) { -- continue; -- } -- mismatches[key] = { actual: undefined, expected: expected[key] }; -- } else if (actual[key] !== expected[key]) { -- mismatches[key] = { actual: actual[key], expected: expected[key] }; -- } -- } -- -- return mismatches; --} -diff --git a/tests/unit/fetcher/getRequestBody.test.ts b/tests/unit/fetcher/getRequestBody.test.ts -index e3da10c..e864c8b 100644 ---- a/tests/unit/fetcher/getRequestBody.test.ts -+++ b/tests/unit/fetcher/getRequestBody.test.ts -@@ -45,65 +45,7 @@ describe("Test getRequestBody", () => { - expect(result).toBe(input); - }); - -- it("should serialize objects for form-urlencoded content type", async () => { -- const input = { username: "johndoe", email: "john@example.com" }; -- const result = await getRequestBody({ -- body: input, -- type: "form", -- }); -- expect(result).toBe("username=johndoe&email=john%40example.com"); -- }); -- -- it("should serialize complex nested objects and arrays for form-urlencoded content type", async () => { -- const input = { -- user: { -- profile: { -- name: "John Doe", -- settings: { -- theme: "dark", -- notifications: true, -- }, -- }, -- tags: ["admin", "user"], -- contacts: [ -- { type: "email", value: "john@example.com" }, -- { type: "phone", value: "+1234567890" }, -- ], -- }, -- filters: { -- status: ["active", "pending"], -- metadata: { -- created: "2024-01-01", -- categories: ["electronics", "books"], -- }, -- }, -- preferences: ["notifications", "updates"], -- }; -- const result = await getRequestBody({ -- body: input, -- type: "form", -- }); -- expect(result).toBe( -- "user%5Bprofile%5D%5Bname%5D=John%20Doe&" + -- "user%5Bprofile%5D%5Bsettings%5D%5Btheme%5D=dark&" + -- "user%5Bprofile%5D%5Bsettings%5D%5Bnotifications%5D=true&" + -- "user%5Btags%5D=admin&" + -- "user%5Btags%5D=user&" + -- "user%5Bcontacts%5D%5Btype%5D=email&" + -- "user%5Bcontacts%5D%5Bvalue%5D=john%40example.com&" + -- "user%5Bcontacts%5D%5Btype%5D=phone&" + -- "user%5Bcontacts%5D%5Bvalue%5D=%2B1234567890&" + -- "filters%5Bstatus%5D=active&" + -- "filters%5Bstatus%5D=pending&" + -- "filters%5Bmetadata%5D%5Bcreated%5D=2024-01-01&" + -- "filters%5Bmetadata%5D%5Bcategories%5D=electronics&" + -- "filters%5Bmetadata%5D%5Bcategories%5D=books&" + -- "preferences=notifications&" + -- "preferences=updates", -- ); -- }); -- -- it("should return the input for pre-serialized form-urlencoded strings", async () => { -+ it("should return the input for content-type 'application/x-www-form-urlencoded'", async () => { - const input = "key=value&another=param"; - const result = await getRequestBody({ - body: input, -diff --git a/tests/wire/plant.test.ts b/tests/wire/plant.test.ts -index 9531e5e..13f448b 100644 ---- a/tests/wire/plant.test.ts -+++ b/tests/wire/plant.test.ts -@@ -36,7 +36,7 @@ describe("Plant", () => { - test("addPlant (2)", async () => { - const server = mockServerPool.createServer(); - const client = new FernApiClient({ environment: server.baseUrl }); -- const rawRequestBody = {}; -+ const rawRequestBody = { name: "name" }; - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() -@@ -48,7 +48,9 @@ describe("Plant", () => { - .build(); - - await expect(async () => { -- return await client.plant.addPlant({}); -+ return await client.plant.addPlant({ -+ name: "name", -+ }); - }).rejects.toThrow(FernApi.MethodNotAllowedError); - }); - -@@ -83,7 +85,7 @@ describe("Plant", () => { - test("updatePlant (2)", async () => { - const server = mockServerPool.createServer(); - const client = new FernApiClient({ environment: server.baseUrl }); -- const rawRequestBody = {}; -+ const rawRequestBody = { name: "name" }; - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() -@@ -95,14 +97,16 @@ describe("Plant", () => { - .build(); - - await expect(async () => { -- return await client.plant.updatePlant({}); -+ return await client.plant.updatePlant({ -+ name: "name", -+ }); - }).rejects.toThrow(FernApi.BadRequestError); - }); - - test("updatePlant (3)", async () => { - const server = mockServerPool.createServer(); - const client = new FernApiClient({ environment: server.baseUrl }); -- const rawRequestBody = {}; -+ const rawRequestBody = { name: "name" }; - const rawResponseBody = { key: "value" }; - server - .mockEndpoint() -@@ -114,7 +118,9 @@ describe("Plant", () => { - .build(); - - await expect(async () => { -- return await client.plant.updatePlant({}); -+ return await client.plant.updatePlant({ -+ name: "name", -+ }); - }).rejects.toThrow(FernApi.NotFoundError); - }); - -@@ -134,9 +140,7 @@ describe("Plant", () => { - .jsonBody(rawResponseBody) - .build(); - -- const response = await client.plant.searchPlantsByStatus({ -- status: "available", -- }); -+ const response = await client.plant.searchPlantsByStatus(); - expect(response).toEqual([ - { - id: 101, -@@ -187,7 +191,9 @@ describe("Plant", () => { - const rawResponseBody = { id: 101, name: "Fern", status: "available", tags: ["green", "leafy"] }; - server.mockEndpoint().get("/plant/1").respondWith().statusCode(200).jsonBody(rawResponseBody).build(); - -- const response = await client.plant.getPlantById(1); -+ const response = await client.plant.getPlantById({ -+ plantId: 1, -+ }); - expect(response).toEqual({ - id: 101, - name: "Fern", -diff --git a/tests/wire/user.test.ts b/tests/wire/user.test.ts -index 3755bb7..595c6ba 100644 ---- a/tests/wire/user.test.ts -+++ b/tests/wire/user.test.ts -@@ -11,10 +11,7 @@ describe("User", () => { - const rawResponseBody = { token: "abc123token", expiresIn: 3600 }; - server.mockEndpoint().get("/user/auth/login").respondWith().statusCode(200).jsonBody(rawResponseBody).build(); - -- const response = await client.user.loginUser({ -- username: "username", -- password: "password", -- }); -+ const response = await client.user.loginUser(); - expect(response).toEqual({ - token: "abc123token", - expiresIn: 3600, -@@ -38,7 +35,9 @@ describe("User", () => { - const rawResponseBody = { id: 1, username: "john_doe", email: "john@example.com" }; - server.mockEndpoint().get("/user/username").respondWith().statusCode(200).jsonBody(rawResponseBody).build(); - -- const response = await client.user.getUserByName("username"); -+ const response = await client.user.getUserByName({ -+ username: "username", -+ }); - expect(response).toEqual({ - id: 1, - username: "john_doe", -diff --git a/vitest.config.mts b/vitest.config.ts -similarity index 100% -rename from vitest.config.mts -rename to vitest.config.ts diff --git a/packages/commons/github/package.json b/packages/commons/github/package.json index 13ad484ff2b4..b59231767e61 100644 --- a/packages/commons/github/package.json +++ b/packages/commons/github/package.json @@ -11,6 +11,8 @@ "type": "module", "exports": { ".": { + "development": "./src/index.ts", + "source": "./src/index.ts", "types": "./lib/index.d.ts", "default": "./lib/index.js" } diff --git a/packages/configs/build-utils.mjs b/packages/configs/build-utils.mjs new file mode 100644 index 000000000000..7d69dbf109d5 --- /dev/null +++ b/packages/configs/build-utils.mjs @@ -0,0 +1,71 @@ +import tsup from 'tsup'; +import { cp } from 'fs/promises'; +import path from 'path'; +import { fileURLToPath } from 'url'; + +/** + * Standard build function for Fern generators + * @param {string} dirname - The __dirname of the calling build.mjs file + * @param {Object} options - Build options + * @param {string} [options.entry='src/cli.ts'] - Entry point for tsup + * @param {Object} [options.tsupOptions={}] - Additional tsup configuration options to merge + * @param {string|string[]|Object|Object[]|null} [options.copy=null] - Files/folders to copy after build + * Can be: + * - string: '../base/src/asIs' - copies to dist/ + * - array of strings: ['../base/src/asIs', '../base/src/template'] - copies each to dist/ + * - object: { from: '../base/src/asIs', to: 'dist/asIs' } - custom destination + * - array of objects: [{ from: '...', to: '...' }, ...] + */ +export async function buildGenerator(dirname, options = {}) { + const { + entry = 'src/cli.ts', + tsupOptions = {}, + copy = null + } = options; + + // Build with tsup (merge default options with custom ones) + const defaultTsupOptions = { + entry: [entry], + format: ['cjs'], + sourcemap: true, + clean: true, + outDir: 'dist', + }; + + await tsup.build({ + ...defaultTsupOptions, + ...tsupOptions, + }); + + // Copy additional files if needed + if (copy) { + const copyOperations = Array.isArray(copy) ? copy : [copy]; + + for (const copyOp of copyOperations) { + if (typeof copyOp === 'string') { + // Simple string: copy to dist/ + await cp( + path.join(dirname, copyOp), + path.join(dirname, 'dist'), + { recursive: true } + ); + } else if (typeof copyOp === 'object' && copyOp.from) { + // Object with from/to: custom destination + await cp( + path.join(dirname, copyOp.from), + path.join(dirname, copyOp.to), + { recursive: true, force: true } + ); + } + } + } +} + +/** + * Helper to get __dirname in ESM modules + * @param {string} importMetaUrl - import.meta.url from the calling module + * @returns {string} The directory name + */ +export function getDirname(importMetaUrl) { + return path.dirname(fileURLToPath(importMetaUrl)); +} diff --git a/packages/configs/package.json b/packages/configs/package.json index eb4b6a0f7822..9b1aaab5ff48 100644 --- a/packages/configs/package.json +++ b/packages/configs/package.json @@ -4,6 +4,7 @@ "private": true, "license": "MIT", "devDependencies": { + "tsup": "^8.5.0", "vitest": "^4.0.8" } } diff --git a/packages/generator-cli/bin/cli b/packages/generator-cli/bin/cli new file mode 100755 index 000000000000..0b20ac1914ac --- /dev/null +++ b/packages/generator-cli/bin/cli @@ -0,0 +1,2 @@ +#!/usr/bin/env node +require("../dist/cli.js"); diff --git a/packages/generator-cli/build.mjs b/packages/generator-cli/build.mjs new file mode 100644 index 000000000000..fc298f2af777 --- /dev/null +++ b/packages/generator-cli/build.mjs @@ -0,0 +1,17 @@ +import tsup from 'tsup'; + +main(); + +async function main() { + await tsup.build({ + entry: ['src/cli.ts', 'src/api.ts'], + format: ['cjs'], + dts: true, + // Bundle all workspace dependencies to avoid ESM resolution issues + noExternal: ['@fern-api/fs-utils', '@fern-api/github'], + minify: false, + sourcemap: false, + outDir: 'dist', + clean: true + }); +} diff --git a/packages/generator-cli/package.json b/packages/generator-cli/package.json index ca258c9eb2a5..c241c4973384 100644 --- a/packages/generator-cli/package.json +++ b/packages/generator-cli/package.json @@ -5,19 +5,18 @@ "type": "git", "url": "https://github.com/fern-api/fern" }, - "type": "module", - "main": "dist/api.cjs", + "type": "commonjs", + "main": "dist/api.js", "source": "src/index.ts", - "types": "dist/api.d.cts", + "types": "dist/api.d.ts", "bin": { - "generator-cli": "dist/cli.cjs" + "generator-cli": "dist/cli" }, - "files": ["dist"], + "files": ["bin", "dist"], "scripts": { - "clean": "rm -rf ./dist && tsc --build --clean", - "compile": "tsup && pnpm compile:api:dts && echo '#!/usr/bin/env node' | cat - dist/cli.cjs > dist/tmp && mv dist/tmp dist/cli.cjs", - "compile:api:dts": "tsup ./src/api.ts --format cjs --dts --dts-only", + "clean": "rm -rf ./lib && rm -rf ./dist && tsc --build --clean", "depcheck": "depcheck", + "dist:cli": "node build.mjs", "test": "vitest --run --passWithNoTests --globals --disable-console-intercept", "test:update": "vitest -u --run --passWithNoTests --globals --disable-console-intercept" }, diff --git a/packages/generator-cli/src/__test__/pr.test.ts b/packages/generator-cli/src/__test__/pr.test.ts index 92245da429f9..d52c3c40079c 100644 --- a/packages/generator-cli/src/__test__/pr.test.ts +++ b/packages/generator-cli/src/__test__/pr.test.ts @@ -24,7 +24,7 @@ describe("GitHub PR CLI call", () => { const file = await tmp.file(); await writeFile(file.path, JSON.stringify(config, undefined, 2)); - const args = [path.join(__dirname, "../../dist/cli.cjs"), "github", "pr", "--config", file.path]; + const args = [path.join(__dirname, "../../bin/cli"), "github", "pr", "--config", file.path]; const { stdout } = await execa("node", args); expect(stdout).toMatchSnapshot(); diff --git a/packages/generator-cli/src/__test__/testGenerateReadme.ts b/packages/generator-cli/src/__test__/testGenerateReadme.ts index 3113c29c174f..098681139935 100644 --- a/packages/generator-cli/src/__test__/testGenerateReadme.ts +++ b/packages/generator-cli/src/__test__/testGenerateReadme.ts @@ -26,7 +26,7 @@ export function testGenerateReadme({ const json = JSON.stringify(await serializers.ReadmeConfig.jsonOrThrow(config), undefined, 2); await writeFile(file.path, json); - const args = [path.join(__dirname, "../../dist/cli.cjs"), "generate", "readme", "--config", file.path]; + const args = [path.join(__dirname, "../../bin/cli"), "generate", "readme", "--config", file.path]; if (originalReadme != null) { args.push( ...[ diff --git a/packages/generator-cli/src/__test__/testGenerateReference.ts b/packages/generator-cli/src/__test__/testGenerateReference.ts index f635c78fa263..fb535a8d0167 100644 --- a/packages/generator-cli/src/__test__/testGenerateReference.ts +++ b/packages/generator-cli/src/__test__/testGenerateReference.ts @@ -19,7 +19,7 @@ export function testGenerateReference({ const json = JSON.stringify(await serializers.ReferenceConfig.jsonOrThrow(config), undefined, 2); await writeFile(file.path, json); - const args = [path.join(__dirname, "../../dist/cli.cjs"), "generate-reference", "--config", file.path]; + const args = [path.join(__dirname, "../../bin/cli"), "generate-reference", "--config", file.path]; const { stdout } = await execa("node", args); expect(stdout).toMatchFileSnapshot(`__snapshots__/${fixtureName}.md`); }); diff --git a/packages/generator-cli/tsup.config.ts b/packages/generator-cli/tsup.config.ts deleted file mode 100644 index 93e4f5a9ddde..000000000000 --- a/packages/generator-cli/tsup.config.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { defineConfig } from "tsup"; - -export default defineConfig({ - entry: ["src/cli.ts", "src/api.ts"], - format: ["cjs"], - dts: false, - bundle: true, - // Bundle all workspace dependencies to avoid ESM resolution issues - noExternal: ["@fern-api/fs-utils", "@fern-api/github"], - minify: false, - sourcemap: false -}); diff --git a/packages/generator-cli/turbo.json b/packages/generator-cli/turbo.json index d233306d1226..349321ab33a7 100644 --- a/packages/generator-cli/turbo.json +++ b/packages/generator-cli/turbo.json @@ -2,11 +2,11 @@ "$schema": "https://turbo.build/schema.json", "extends": ["//"], "tasks": { - "compile": { - "outputs": ["dist/**", "lib/**"] - }, "test": { - "dependsOn": ["compile", "^compile"] + "dependsOn": ["dist:cli"] + }, + "test:update": { + "dependsOn": ["dist:cli"] } } } diff --git a/packages/seed/CLAUDE.md b/packages/seed/CLAUDE.md index 64ebab5f0644..fb47dcde887d 100644 --- a/packages/seed/CLAUDE.md +++ b/packages/seed/CLAUDE.md @@ -22,7 +22,7 @@ Seed is Fern's **comprehensive generator testing framework** that validates gene - `src/config/` - Configuration loading and validation - `src/utils/` - Utilities for workspace management, logging, etc. - `fern/` - Seed's own Fern API definitions -- `build.cjs` - CLI distribution build script +- `build.mjs` - CLI distribution build script ### Command Structure - `test/` - Run predefined fixtures against generators diff --git a/packages/seed/build.cjs b/packages/seed/build.mjs similarity index 70% rename from packages/seed/build.cjs rename to packages/seed/build.mjs index d80eed6bbecc..2227bd0d7a58 100644 --- a/packages/seed/build.cjs +++ b/packages/seed/build.mjs @@ -1,7 +1,10 @@ -const packageJson = require("./package.json"); -const tsup = require('tsup'); -const { writeFile } = require("fs/promises"); -const path = require("path"); +import packageJson from "./package.json" with { type: "json" }; +import tsup from 'tsup'; +import { writeFile } from "fs/promises"; +import path from "path"; +import { fileURLToPath } from 'url'; + +const __dirname = path.dirname(fileURLToPath(import.meta.url)); main(); @@ -12,6 +15,10 @@ async function main() { minify: false, outDir: 'dist', sourcemap: true, + clean: true, + esbuildOptions(options) { + options.conditions = ['development', 'source', 'import', 'default'] + }, env: { CLI_NAME: "seed", CLI_PACKAGE_NAME: "seed-cli", @@ -20,7 +27,7 @@ async function main() { external: [ '@fern-api/go-formatter', '@boundaryml/baml', - ], + ], }); process.chdir(path.join(__dirname, "dist")); @@ -42,4 +49,4 @@ async function main() { 2 ) ); -} \ No newline at end of file +} diff --git a/packages/seed/fern/definition/config.yml b/packages/seed/fern/definition/config.yml index 85d5308869b2..236eac5ca145 100644 --- a/packages/seed/fern/definition/config.yml +++ b/packages/seed/fern/definition/config.yml @@ -63,7 +63,7 @@ types: PublishCommand: docs: | Configuration for publishing from a command, assuming something packaged up, like with the TypeScript generator. - ex. `pnpm --filter @fern-typescript/express-generator-cli dockerTagVersion "$VERSION"` + ex. `pnpm turbo run dockerTagVersion --filter @fern-typescript/express-generator-cli -- "$VERSION"` Commands can be multi-line, we'll run them all! properties: workingDirectory: optional diff --git a/packages/seed/package.json b/packages/seed/package.json index 9cde29858200..850a0e291903 100644 --- a/packages/seed/package.json +++ b/packages/seed/package.json @@ -27,7 +27,7 @@ "compile": "tsc --build", "compile:debug": "tsc --build --sourceMap", "depcheck": "depcheck", - "dist:cli": "pnpm compile && node build.cjs", + "dist:cli": "node build.mjs", "env:prod": "env-cmd -r .env-cmdrc.cjs -e prod", "generate": "fern generate --local", "test": "vitest --run", diff --git a/packages/seed/src/config/api/resources/config/types/PublishCommand.ts b/packages/seed/src/config/api/resources/config/types/PublishCommand.ts index f7268a287a5d..fb6925a245e1 100644 --- a/packages/seed/src/config/api/resources/config/types/PublishCommand.ts +++ b/packages/seed/src/config/api/resources/config/types/PublishCommand.ts @@ -6,7 +6,7 @@ import * as FernSeedConfig from "../../../index"; /** * Configuration for publishing from a command, assuming something packaged up, like with the TypeScript generator. - * ex. `pnpm --filter @fern-typescript/express-generator-cli dockerTagVersion "$VERSION"` + * ex. `pnpm turbo run dockerTagVersion --filter @fern-typescript/express-generator-cli -- "$VERSION"` * Commands can be multi-line, we'll run them all! */ export interface PublishCommand { diff --git a/packages/snippets/core/build.cjs b/packages/snippets/core/build.cjs deleted file mode 100644 index d4c63fb6103e..000000000000 --- a/packages/snippets/core/build.cjs +++ /dev/null @@ -1,77 +0,0 @@ -const { NodeModulesPolyfillPlugin } = require('@esbuild-plugins/node-modules-polyfill'); -const { NodeGlobalsPolyfillPlugin } = require('@esbuild-plugins/node-globals-polyfill'); -const packageJson = require("./package.json"); -const tsup = require('tsup'); -const { writeFile, mkdir } = require("fs/promises"); -const path = require("path"); - -main(); - -async function main() { - const config = { - entry: ['src/**/*.ts', '!src/__test__'], - target: "es2017", - minify: true, - dts: true, - sourcemap: true, - esbuildPlugins: [ - NodeModulesPolyfillPlugin(), - NodeGlobalsPolyfillPlugin({ - process: true, - buffer: true, - util: true - }) - ], - tsconfig: "./build.tsconfig.json" - }; - - await tsup.build({ - ...config, - format: ['cjs'], - outDir: 'dist/cjs', - clean: true, - }); - - await tsup.build({ - ...config, - format: ['esm'], - outDir: 'dist/esm', - clean: false, - }); - - await mkdir(path.join(__dirname, "dist"), { recursive: true }); - process.chdir(path.join(__dirname, "dist")); - - await writeFile( - "package.json", - JSON.stringify( - { - name: packageJson.name, - version: process.argv[2] || packageJson.version, - repository: packageJson.repository, - type: "module", - exports: { - // Conditional exports for ESM and CJS. - "import": { - "types": "./esm/index.d.ts", - "default": "./esm/index.js" - }, - "require": { - "types": "./cjs/index.d.cts", - "default": "./cjs/index.cjs" - } - }, - // Fallback for older tooling or direct imports. - main: "./cjs/index.cjs", - module: "./esm/index.js", - types: "./cjs/index.d.cts", - files: [ - "cjs", - "esm" - ] - }, - undefined, - 2 - ) - ); -} \ No newline at end of file diff --git a/generators/python-v2/dynamic-snippets/build.cjs b/packages/snippets/core/build.mjs similarity index 60% rename from generators/python-v2/dynamic-snippets/build.cjs rename to packages/snippets/core/build.mjs index 1a4c018666d9..9230a964b3ec 100644 --- a/generators/python-v2/dynamic-snippets/build.cjs +++ b/packages/snippets/core/build.mjs @@ -1,25 +1,40 @@ -const { NodeModulesPolyfillPlugin } = require('@esbuild-plugins/node-modules-polyfill'); -const { NodeGlobalsPolyfillPlugin } = require('@esbuild-plugins/node-globals-polyfill'); -const packageJson = require("./package.json"); -const tsup = require('tsup'); -const { writeFile, mkdir } = require("fs/promises"); -const path = require("path"); +import { polyfillNode } from 'esbuild-plugin-polyfill-node'; +import packageJson from "./package.json" with { type: "json" }; +import tsup from 'tsup'; +import { writeFile, mkdir, rm } from "fs/promises"; +import path from "path"; +import { fileURLToPath } from 'url'; + +const __dirname = path.dirname(fileURLToPath(import.meta.url)); main(); async function main() { + // Change to the package directory to ensure relative paths work + process.chdir(__dirname); + + // Remove dist directory entirely + await rm(path.join(__dirname, "dist"), { recursive: true, force: true }); + const config = { entry: ['src/**/*.ts', '!src/__test__'], - target: "es2017", + target: "es2020", minify: true, dts: true, sourcemap: true, esbuildPlugins: [ - NodeModulesPolyfillPlugin(), - NodeGlobalsPolyfillPlugin({ - process: true, - buffer: true, - util: true + polyfillNode({ + // Inject globals for backwards compatibility + globals: { + buffer: true, + process: true + }, + // Disable fs and crypto polyfills (use native/external instead) + // All other Node.js built-ins (including util) are polyfilled by default + polyfills: { + fs: false, + crypto: false + } }) ], tsconfig: "./build.tsconfig.json" @@ -29,7 +44,7 @@ async function main() { ...config, format: ['cjs'], outDir: 'dist/cjs', - clean: true, + clean: false, }); await tsup.build({ diff --git a/packages/snippets/core/package.json b/packages/snippets/core/package.json index 9200b4cea8a3..3cad06f7a6c4 100644 --- a/packages/snippets/core/package.json +++ b/packages/snippets/core/package.json @@ -27,14 +27,12 @@ "compile": "tsc --build", "compile:debug": "tsc --build --sourceMap", "depcheck": "depcheck", - "dist": "pnpm compile && node build.cjs", + "dist": "node build.mjs", "test": "vitest --passWithNoTests --run", "test:debug": "pnpm run test --inspect --no-file-parallelism", "test:update": "vitest --passWithNoTests --run -u" }, "devDependencies": { - "@esbuild-plugins/node-globals-polyfill": "^0.2.3", - "@esbuild-plugins/node-modules-polyfill": "^0.2.2", "@fern-api/api-workspace-commons": "workspace:*", "@fern-api/browser-compatible-fern-workspace": "workspace:*", "@fern-api/configs": "workspace:*", @@ -45,6 +43,7 @@ "@fern-api/task-context": "workspace:*", "@types/node": "18.15.3", "depcheck": "^1.4.7", + "esbuild-plugin-polyfill-node": "^0.3.0", "openapi-types": "^12.1.3", "tsup": "^8.5.0", "typescript": "5.9.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5fbd99714546..ae1716cc5214 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -90,8 +90,8 @@ importers: specifier: ^4.20.3 version: 4.20.6 turbo: - specifier: ^2.5.5 - version: 2.5.8 + specifier: ^2.6.1 + version: 2.6.1 typescript: specifier: 5.9.3 version: 5.9.3 @@ -296,9 +296,6 @@ importers: lodash-es: specifier: ^4.17.21 version: 4.17.21 - tsup: - specifier: ^8.5.0 - version: 8.5.0(postcss@8.5.6)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.3.3) typescript: specifier: 5.9.3 version: 5.9.3 @@ -366,9 +363,6 @@ importers: depcheck: specifier: ^1.4.7 version: 1.4.7 - tsup: - specifier: ^8.5.0 - version: 8.5.0(postcss@8.5.6)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.3.3) typescript: specifier: 5.9.3 version: 5.9.3 @@ -423,9 +417,6 @@ importers: depcheck: specifier: ^1.4.7 version: 1.4.7 - tsup: - specifier: ^8.5.0 - version: 8.5.0(postcss@8.5.6)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.3.3) typescript: specifier: 5.9.3 version: 5.9.3 @@ -504,9 +495,6 @@ importers: depcheck: specifier: ^1.4.7 version: 1.4.7 - tsup: - specifier: ^8.5.0 - version: 8.5.0(postcss@8.5.6)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.3.3) typescript: specifier: 5.9.3 version: 5.9.3 @@ -516,12 +504,6 @@ importers: generators/go-v2/dynamic-snippets: devDependencies: - '@esbuild-plugins/node-globals-polyfill': - specifier: ^0.2.3 - version: 0.2.3(esbuild@0.27.0) - '@esbuild-plugins/node-modules-polyfill': - specifier: ^0.2.2 - version: 0.2.2(esbuild@0.27.0) '@fern-api/browser-compatible-base-generator': specifier: workspace:* version: link:../../browser-compatible-base @@ -549,9 +531,6 @@ importers: depcheck: specifier: ^1.4.7 version: 1.4.7 - tsup: - specifier: ^8.5.0 - version: 8.5.0(postcss@8.5.6)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.3.3) typescript: specifier: 5.9.3 version: 5.9.3 @@ -613,9 +592,6 @@ importers: depcheck: specifier: ^1.4.7 version: 1.4.7 - tsup: - specifier: ^8.5.0 - version: 8.5.0(postcss@8.5.6)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.3.3) typescript: specifier: 5.9.3 version: 5.9.3 @@ -673,9 +649,6 @@ importers: depcheck: specifier: ^1.4.7 version: 1.4.7 - tsup: - specifier: ^8.5.0 - version: 8.5.0(postcss@8.5.6)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.3.3) typescript: specifier: 5.9.3 version: 5.9.3 @@ -746,12 +719,6 @@ importers: generators/java-v2/dynamic-snippets: devDependencies: - '@esbuild-plugins/node-globals-polyfill': - specifier: ^0.2.3 - version: 0.2.3(esbuild@0.27.0) - '@esbuild-plugins/node-modules-polyfill': - specifier: ^0.2.2 - version: 0.2.2(esbuild@0.27.0) '@fern-api/browser-compatible-base-generator': specifier: workspace:* version: link:../../browser-compatible-base @@ -782,9 +749,6 @@ importers: lodash-es: specifier: ^4.17.21 version: 4.17.21 - tsup: - specifier: ^8.5.0 - version: 8.5.0(postcss@8.5.6)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.3.3) typescript: specifier: 5.9.3 version: 5.9.3 @@ -839,9 +803,6 @@ importers: lodash-es: specifier: ^4.17.21 version: 4.17.21 - tsup: - specifier: ^8.5.0 - version: 8.5.0(postcss@8.5.6)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.3.3) typescript: specifier: 5.9.3 version: 5.9.3 @@ -890,9 +851,6 @@ importers: openapi-types: specifier: ^12.1.3 version: 12.1.3 - tsup: - specifier: ^8.5.0 - version: 8.5.0(postcss@8.5.6)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.3.3) typescript: specifier: 5.9.3 version: 5.9.3 @@ -938,9 +896,6 @@ importers: lodash-es: specifier: ^4.17.21 version: 4.17.21 - tsup: - specifier: ^8.5.0 - version: 8.5.0(postcss@8.5.6)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.3.3) typescript: specifier: 5.9.3 version: 5.9.3 @@ -984,12 +939,6 @@ importers: generators/php/dynamic-snippets: devDependencies: - '@esbuild-plugins/node-globals-polyfill': - specifier: ^0.2.3 - version: 0.2.3(esbuild@0.27.0) - '@esbuild-plugins/node-modules-polyfill': - specifier: ^0.2.2 - version: 0.2.2(esbuild@0.27.0) '@fern-api/browser-compatible-base-generator': specifier: workspace:* version: link:../../browser-compatible-base @@ -1020,9 +969,6 @@ importers: lodash-es: specifier: ^4.17.21 version: 4.17.21 - tsup: - specifier: ^8.5.0 - version: 8.5.0(postcss@8.5.6)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.3.3) typescript: specifier: 5.9.3 version: 5.9.3 @@ -1056,9 +1002,6 @@ importers: depcheck: specifier: ^1.4.7 version: 1.4.7 - tsup: - specifier: ^8.5.0 - version: 8.5.0(postcss@8.5.6)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.3.3) typescript: specifier: 5.9.3 version: 5.9.3 @@ -1122,9 +1065,6 @@ importers: lodash-es: specifier: ^4.17.21 version: 4.17.21 - tsup: - specifier: ^8.5.0 - version: 8.5.0(postcss@8.5.6)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.3.3) typescript: specifier: 5.9.3 version: 5.9.3 @@ -1170,9 +1110,6 @@ importers: lodash: specifier: ^4.17.21 version: 4.17.21 - tsup: - specifier: ^8.5.0 - version: 8.5.0(postcss@8.5.6)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.3.3) typescript: specifier: 5.9.3 version: 5.9.3 @@ -1279,12 +1216,6 @@ importers: generators/python-v2/dynamic-snippets: devDependencies: - '@esbuild-plugins/node-globals-polyfill': - specifier: ^0.2.3 - version: 0.2.3(esbuild@0.27.0) - '@esbuild-plugins/node-modules-polyfill': - specifier: ^0.2.2 - version: 0.2.2(esbuild@0.27.0) '@fern-api/browser-compatible-base-generator': specifier: workspace:* version: link:../../browser-compatible-base @@ -1318,9 +1249,6 @@ importers: lodash-es: specifier: ^4.17.21 version: 4.17.21 - tsup: - specifier: ^8.5.0 - version: 8.5.0(postcss@8.5.6)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.3.3) typescript: specifier: 5.9.3 version: 5.9.3 @@ -1339,9 +1267,6 @@ importers: depcheck: specifier: ^1.4.7 version: 1.4.7 - tsup: - specifier: ^8.5.0 - version: 8.5.0(postcss@8.5.6)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.3.3) typescript: specifier: 5.9.3 version: 5.9.3 @@ -1405,9 +1330,6 @@ importers: depcheck: specifier: ^1.4.7 version: 1.4.7 - tsup: - specifier: ^8.5.0 - version: 8.5.0(postcss@8.5.6)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.3.3) typescript: specifier: 5.9.3 version: 5.9.3 @@ -1465,9 +1387,6 @@ importers: depcheck: specifier: ^1.4.7 version: 1.4.7 - tsup: - specifier: ^8.5.0 - version: 8.5.0(postcss@8.5.6)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.3.3) typescript: specifier: 5.9.3 version: 5.9.3 @@ -1562,12 +1481,6 @@ importers: generators/ruby-v2/dynamic-snippets: devDependencies: - '@esbuild-plugins/node-globals-polyfill': - specifier: ^0.2.3 - version: 0.2.3(esbuild@0.27.0) - '@esbuild-plugins/node-modules-polyfill': - specifier: ^0.2.2 - version: 0.2.2(esbuild@0.27.0) '@fern-api/browser-compatible-base-generator': specifier: workspace:* version: link:../../browser-compatible-base @@ -1598,9 +1511,6 @@ importers: lodash-es: specifier: ^4.17.21 version: 4.17.21 - tsup: - specifier: ^8.5.0 - version: 8.5.0(postcss@8.5.6)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.3.3) typescript: specifier: 5.9.3 version: 5.9.3 @@ -1637,9 +1547,6 @@ importers: depcheck: specifier: ^1.4.7 version: 1.4.7 - tsup: - specifier: ^8.5.0 - version: 8.5.0(postcss@8.5.6)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.3.3) typescript: specifier: 5.9.3 version: 5.9.3 @@ -1709,9 +1616,6 @@ importers: lodash-es: specifier: ^4.17.21 version: 4.17.21 - tsup: - specifier: ^8.5.0 - version: 8.5.0(postcss@8.5.6)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.3.3) typescript: specifier: 5.9.3 version: 5.9.3 @@ -1831,9 +1735,6 @@ importers: depcheck: specifier: ^1.4.7 version: 1.4.7 - tsup: - specifier: ^8.5.0 - version: 8.5.0(postcss@8.5.6)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.3.3) typescript: specifier: 5.9.3 version: 5.9.3 @@ -1879,9 +1780,6 @@ importers: depcheck: specifier: ^1.4.7 version: 1.4.7 - tsup: - specifier: ^8.5.0 - version: 8.5.0(postcss@8.5.6)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.3.3) typescript: specifier: 5.9.3 version: 5.9.3 @@ -1984,15 +1882,9 @@ importers: '@types/node': specifier: 18.15.3 version: 18.15.3 - '@yarnpkg/esbuild-plugin-pnp': - specifier: 3.0.0-rc.15 - version: 3.0.0-rc.15(esbuild@0.25.12) depcheck: specifier: ^1.4.7 version: 1.4.7 - esbuild: - specifier: ^0.25.0 - version: 0.25.12 typescript: specifier: 5.9.3 version: 5.9.3 @@ -2035,9 +1927,6 @@ importers: depcheck: specifier: ^1.4.7 version: 1.4.7 - tsup: - specifier: ^8.5.0 - version: 8.5.0(postcss@8.5.6)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.3.3) typescript: specifier: 5.9.3 version: 5.9.3 @@ -2099,9 +1988,6 @@ importers: depcheck: specifier: ^1.4.7 version: 1.4.7 - tsup: - specifier: ^8.5.0 - version: 8.5.0(postcss@8.5.6)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.3.3) typescript: specifier: 5.9.3 version: 5.9.3 @@ -2187,12 +2073,6 @@ importers: generators/swift/dynamic-snippets: devDependencies: - '@esbuild-plugins/node-globals-polyfill': - specifier: ^0.2.3 - version: 0.2.3(esbuild@0.27.0) - '@esbuild-plugins/node-modules-polyfill': - specifier: ^0.2.2 - version: 0.2.2(esbuild@0.27.0) '@fern-api/browser-compatible-base-generator': specifier: workspace:* version: link:../../browser-compatible-base @@ -2223,9 +2103,6 @@ importers: lodash-es: specifier: ^4.17.21 version: 4.17.21 - tsup: - specifier: ^8.5.0 - version: 8.5.0(postcss@8.5.6)(tsx@4.20.6)(typescript@5.9.2)(yaml@2.3.3) typescript: specifier: 5.9.2 version: 5.9.2 @@ -2272,9 +2149,6 @@ importers: depcheck: specifier: ^1.4.7 version: 1.4.7 - tsup: - specifier: ^8.5.0 - version: 8.5.0(postcss@8.5.6)(tsx@4.20.6)(typescript@5.9.2)(yaml@2.3.3) typescript: specifier: 5.9.2 version: 5.9.2 @@ -2344,9 +2218,6 @@ importers: lodash-es: specifier: ^4.17.21 version: 4.17.21 - tsup: - specifier: ^8.5.0 - version: 8.5.0(postcss@8.5.6)(tsx@4.20.6)(typescript@5.9.2)(yaml@2.3.3) typescript: specifier: 5.9.2 version: 5.9.2 @@ -2425,9 +2296,6 @@ importers: depcheck: specifier: ^1.4.7 version: 1.4.7 - tsup: - specifier: ^8.5.0 - version: 8.5.0(postcss@8.5.6)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.3.3) typescript: specifier: 5.9.3 version: 5.9.3 @@ -2470,9 +2338,6 @@ importers: depcheck: specifier: ^1.4.7 version: 1.4.7 - tsup: - specifier: ^8.5.0 - version: 8.5.0(postcss@8.5.6)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.3.3) typescript: specifier: 5.9.3 version: 5.9.3 @@ -2552,12 +2417,6 @@ importers: generators/typescript-v2/dynamic-snippets: devDependencies: - '@esbuild-plugins/node-globals-polyfill': - specifier: ^0.2.3 - version: 0.2.3(esbuild@0.27.0) - '@esbuild-plugins/node-modules-polyfill': - specifier: ^0.2.2 - version: 0.2.2(esbuild@0.27.0) '@fern-api/browser-compatible-base-generator': specifier: workspace:* version: link:../../browser-compatible-base @@ -2585,9 +2444,6 @@ importers: depcheck: specifier: ^1.4.7 version: 1.4.7 - tsup: - specifier: ^8.5.0 - version: 8.5.0(postcss@8.5.6)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.3.3) typescript: specifier: 5.9.3 version: 5.9.3 @@ -2658,9 +2514,6 @@ importers: lodash-es: specifier: ^4.17.21 version: 4.17.21 - tsup: - specifier: ^8.5.0 - version: 8.5.0(postcss@8.5.6)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.3.3) typescript: specifier: 5.9.3 version: 5.9.3 @@ -3270,9 +3123,6 @@ importers: depcheck: specifier: ^1.4.7 version: 1.4.7 - tsup: - specifier: ^8.5.0 - version: 8.5.0(postcss@8.5.6)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.3.3) typescript: specifier: 5.9.3 version: 5.9.3 @@ -7866,6 +7716,9 @@ importers: packages/configs: devDependencies: + tsup: + specifier: ^8.5.0 + version: 8.5.0(postcss@8.5.6)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.3.3) vitest: specifier: ^4.0.8 version: 4.0.8(@types/debug@4.1.12)(@types/node@24.10.0)(jsdom@27.1.0)(msw@2.12.1(@types/node@24.10.0)(typescript@5.9.3))(sass@1.94.0)(terser@5.44.1)(tsx@4.20.6)(yaml@2.3.3) @@ -8129,12 +7982,6 @@ importers: packages/snippets/core: devDependencies: - '@esbuild-plugins/node-globals-polyfill': - specifier: ^0.2.3 - version: 0.2.3(esbuild@0.27.0) - '@esbuild-plugins/node-modules-polyfill': - specifier: ^0.2.2 - version: 0.2.2(esbuild@0.27.0) '@fern-api/api-workspace-commons': specifier: workspace:* version: link:../../cli/workspace/commons @@ -8165,6 +8012,9 @@ importers: depcheck: specifier: ^1.4.7 version: 1.4.7 + esbuild-plugin-polyfill-node: + specifier: ^0.3.0 + version: 0.3.0(esbuild@0.25.12) openapi-types: specifier: ^12.1.3 version: 12.1.3 @@ -9234,328 +9084,162 @@ packages: '@emnapi/wasi-threads@1.1.0': resolution: {integrity: sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==} - '@esbuild-plugins/node-globals-polyfill@0.2.3': - resolution: {integrity: sha512-r3MIryXDeXDOZh7ih1l/yE9ZLORCd5e8vWg02azWRGj5SPTuoh69A2AIyn0Z31V/kHBfZ4HgWJ+OK3GTTwLmnw==} - peerDependencies: - esbuild: '*' - - '@esbuild-plugins/node-modules-polyfill@0.2.2': - resolution: {integrity: sha512-LXV7QsWJxRuMYvKbiznh+U1ilIop3g2TeKRzUxOG5X3YITc8JyyTa90BmLwqqv0YnX4v32CSlG+vsziZp9dMvA==} - peerDependencies: - esbuild: '*' - '@esbuild/aix-ppc64@0.25.12': resolution: {integrity: sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==} engines: {node: '>=18'} cpu: [ppc64] os: [aix] - '@esbuild/aix-ppc64@0.27.0': - resolution: {integrity: sha512-KuZrd2hRjz01y5JK9mEBSD3Vj3mbCvemhT466rSuJYeE/hjuBrHfjjcjMdTm/sz7au+++sdbJZJmuBwQLuw68A==} - engines: {node: '>=18'} - cpu: [ppc64] - os: [aix] - '@esbuild/android-arm64@0.25.12': resolution: {integrity: sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==} engines: {node: '>=18'} cpu: [arm64] os: [android] - '@esbuild/android-arm64@0.27.0': - resolution: {integrity: sha512-CC3vt4+1xZrs97/PKDkl0yN7w8edvU2vZvAFGD16n9F0Cvniy5qvzRXjfO1l94efczkkQE6g1x0i73Qf5uthOQ==} - engines: {node: '>=18'} - cpu: [arm64] - os: [android] - '@esbuild/android-arm@0.25.12': resolution: {integrity: sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==} engines: {node: '>=18'} cpu: [arm] os: [android] - '@esbuild/android-arm@0.27.0': - resolution: {integrity: sha512-j67aezrPNYWJEOHUNLPj9maeJte7uSMM6gMoxfPC9hOg8N02JuQi/T7ewumf4tNvJadFkvLZMlAq73b9uwdMyQ==} - engines: {node: '>=18'} - cpu: [arm] - os: [android] - '@esbuild/android-x64@0.25.12': resolution: {integrity: sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==} engines: {node: '>=18'} cpu: [x64] os: [android] - '@esbuild/android-x64@0.27.0': - resolution: {integrity: sha512-wurMkF1nmQajBO1+0CJmcN17U4BP6GqNSROP8t0X/Jiw2ltYGLHpEksp9MpoBqkrFR3kv2/te6Sha26k3+yZ9Q==} - engines: {node: '>=18'} - cpu: [x64] - os: [android] - '@esbuild/darwin-arm64@0.25.12': resolution: {integrity: sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==} engines: {node: '>=18'} cpu: [arm64] os: [darwin] - '@esbuild/darwin-arm64@0.27.0': - resolution: {integrity: sha512-uJOQKYCcHhg07DL7i8MzjvS2LaP7W7Pn/7uA0B5S1EnqAirJtbyw4yC5jQ5qcFjHK9l6o/MX9QisBg12kNkdHg==} - engines: {node: '>=18'} - cpu: [arm64] - os: [darwin] - '@esbuild/darwin-x64@0.25.12': resolution: {integrity: sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==} engines: {node: '>=18'} cpu: [x64] os: [darwin] - '@esbuild/darwin-x64@0.27.0': - resolution: {integrity: sha512-8mG6arH3yB/4ZXiEnXof5MK72dE6zM9cDvUcPtxhUZsDjESl9JipZYW60C3JGreKCEP+p8P/72r69m4AZGJd5g==} - engines: {node: '>=18'} - cpu: [x64] - os: [darwin] - '@esbuild/freebsd-arm64@0.25.12': resolution: {integrity: sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==} engines: {node: '>=18'} cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-arm64@0.27.0': - resolution: {integrity: sha512-9FHtyO988CwNMMOE3YIeci+UV+x5Zy8fI2qHNpsEtSF83YPBmE8UWmfYAQg6Ux7Gsmd4FejZqnEUZCMGaNQHQw==} - engines: {node: '>=18'} - cpu: [arm64] - os: [freebsd] - '@esbuild/freebsd-x64@0.25.12': resolution: {integrity: sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==} engines: {node: '>=18'} cpu: [x64] os: [freebsd] - '@esbuild/freebsd-x64@0.27.0': - resolution: {integrity: sha512-zCMeMXI4HS/tXvJz8vWGexpZj2YVtRAihHLk1imZj4efx1BQzN76YFeKqlDr3bUWI26wHwLWPd3rwh6pe4EV7g==} - engines: {node: '>=18'} - cpu: [x64] - os: [freebsd] - '@esbuild/linux-arm64@0.25.12': resolution: {integrity: sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==} engines: {node: '>=18'} cpu: [arm64] os: [linux] - '@esbuild/linux-arm64@0.27.0': - resolution: {integrity: sha512-AS18v0V+vZiLJyi/4LphvBE+OIX682Pu7ZYNsdUHyUKSoRwdnOsMf6FDekwoAFKej14WAkOef3zAORJgAtXnlQ==} - engines: {node: '>=18'} - cpu: [arm64] - os: [linux] - '@esbuild/linux-arm@0.25.12': resolution: {integrity: sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==} engines: {node: '>=18'} cpu: [arm] os: [linux] - '@esbuild/linux-arm@0.27.0': - resolution: {integrity: sha512-t76XLQDpxgmq2cNXKTVEB7O7YMb42atj2Re2Haf45HkaUpjM2J0UuJZDuaGbPbamzZ7bawyGFUkodL+zcE+jvQ==} - engines: {node: '>=18'} - cpu: [arm] - os: [linux] - '@esbuild/linux-ia32@0.25.12': resolution: {integrity: sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==} engines: {node: '>=18'} cpu: [ia32] os: [linux] - '@esbuild/linux-ia32@0.27.0': - resolution: {integrity: sha512-Mz1jxqm/kfgKkc/KLHC5qIujMvnnarD9ra1cEcrs7qshTUSksPihGrWHVG5+osAIQ68577Zpww7SGapmzSt4Nw==} - engines: {node: '>=18'} - cpu: [ia32] - os: [linux] - '@esbuild/linux-loong64@0.25.12': resolution: {integrity: sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==} engines: {node: '>=18'} cpu: [loong64] os: [linux] - '@esbuild/linux-loong64@0.27.0': - resolution: {integrity: sha512-QbEREjdJeIreIAbdG2hLU1yXm1uu+LTdzoq1KCo4G4pFOLlvIspBm36QrQOar9LFduavoWX2msNFAAAY9j4BDg==} - engines: {node: '>=18'} - cpu: [loong64] - os: [linux] - '@esbuild/linux-mips64el@0.25.12': resolution: {integrity: sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==} engines: {node: '>=18'} cpu: [mips64el] os: [linux] - '@esbuild/linux-mips64el@0.27.0': - resolution: {integrity: sha512-sJz3zRNe4tO2wxvDpH/HYJilb6+2YJxo/ZNbVdtFiKDufzWq4JmKAiHy9iGoLjAV7r/W32VgaHGkk35cUXlNOg==} - engines: {node: '>=18'} - cpu: [mips64el] - os: [linux] - '@esbuild/linux-ppc64@0.25.12': resolution: {integrity: sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==} engines: {node: '>=18'} cpu: [ppc64] os: [linux] - '@esbuild/linux-ppc64@0.27.0': - resolution: {integrity: sha512-z9N10FBD0DCS2dmSABDBb5TLAyF1/ydVb+N4pi88T45efQ/w4ohr/F/QYCkxDPnkhkp6AIpIcQKQ8F0ANoA2JA==} - engines: {node: '>=18'} - cpu: [ppc64] - os: [linux] - '@esbuild/linux-riscv64@0.25.12': resolution: {integrity: sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==} engines: {node: '>=18'} cpu: [riscv64] os: [linux] - '@esbuild/linux-riscv64@0.27.0': - resolution: {integrity: sha512-pQdyAIZ0BWIC5GyvVFn5awDiO14TkT/19FTmFcPdDec94KJ1uZcmFs21Fo8auMXzD4Tt+diXu1LW1gHus9fhFQ==} - engines: {node: '>=18'} - cpu: [riscv64] - os: [linux] - '@esbuild/linux-s390x@0.25.12': resolution: {integrity: sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==} engines: {node: '>=18'} cpu: [s390x] os: [linux] - '@esbuild/linux-s390x@0.27.0': - resolution: {integrity: sha512-hPlRWR4eIDDEci953RI1BLZitgi5uqcsjKMxwYfmi4LcwyWo2IcRP+lThVnKjNtk90pLS8nKdroXYOqW+QQH+w==} - engines: {node: '>=18'} - cpu: [s390x] - os: [linux] - '@esbuild/linux-x64@0.25.12': resolution: {integrity: sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==} engines: {node: '>=18'} cpu: [x64] os: [linux] - '@esbuild/linux-x64@0.27.0': - resolution: {integrity: sha512-1hBWx4OUJE2cab++aVZ7pObD6s+DK4mPGpemtnAORBvb5l/g5xFGk0vc0PjSkrDs0XaXj9yyob3d14XqvnQ4gw==} - engines: {node: '>=18'} - cpu: [x64] - os: [linux] - '@esbuild/netbsd-arm64@0.25.12': resolution: {integrity: sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==} engines: {node: '>=18'} cpu: [arm64] os: [netbsd] - '@esbuild/netbsd-arm64@0.27.0': - resolution: {integrity: sha512-6m0sfQfxfQfy1qRuecMkJlf1cIzTOgyaeXaiVaaki8/v+WB+U4hc6ik15ZW6TAllRlg/WuQXxWj1jx6C+dfy3w==} - engines: {node: '>=18'} - cpu: [arm64] - os: [netbsd] - '@esbuild/netbsd-x64@0.25.12': resolution: {integrity: sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==} engines: {node: '>=18'} cpu: [x64] os: [netbsd] - '@esbuild/netbsd-x64@0.27.0': - resolution: {integrity: sha512-xbbOdfn06FtcJ9d0ShxxvSn2iUsGd/lgPIO2V3VZIPDbEaIj1/3nBBe1AwuEZKXVXkMmpr6LUAgMkLD/4D2PPA==} - engines: {node: '>=18'} - cpu: [x64] - os: [netbsd] - '@esbuild/openbsd-arm64@0.25.12': resolution: {integrity: sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==} engines: {node: '>=18'} cpu: [arm64] os: [openbsd] - '@esbuild/openbsd-arm64@0.27.0': - resolution: {integrity: sha512-fWgqR8uNbCQ/GGv0yhzttj6sU/9Z5/Sv/VGU3F5OuXK6J6SlriONKrQ7tNlwBrJZXRYk5jUhuWvF7GYzGguBZQ==} - engines: {node: '>=18'} - cpu: [arm64] - os: [openbsd] - '@esbuild/openbsd-x64@0.25.12': resolution: {integrity: sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==} engines: {node: '>=18'} cpu: [x64] os: [openbsd] - '@esbuild/openbsd-x64@0.27.0': - resolution: {integrity: sha512-aCwlRdSNMNxkGGqQajMUza6uXzR/U0dIl1QmLjPtRbLOx3Gy3otfFu/VjATy4yQzo9yFDGTxYDo1FfAD9oRD2A==} - engines: {node: '>=18'} - cpu: [x64] - os: [openbsd] - '@esbuild/openharmony-arm64@0.25.12': resolution: {integrity: sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==} engines: {node: '>=18'} cpu: [arm64] os: [openharmony] - '@esbuild/openharmony-arm64@0.27.0': - resolution: {integrity: sha512-nyvsBccxNAsNYz2jVFYwEGuRRomqZ149A39SHWk4hV0jWxKM0hjBPm3AmdxcbHiFLbBSwG6SbpIcUbXjgyECfA==} - engines: {node: '>=18'} - cpu: [arm64] - os: [openharmony] - '@esbuild/sunos-x64@0.25.12': resolution: {integrity: sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==} engines: {node: '>=18'} cpu: [x64] os: [sunos] - '@esbuild/sunos-x64@0.27.0': - resolution: {integrity: sha512-Q1KY1iJafM+UX6CFEL+F4HRTgygmEW568YMqDA5UV97AuZSm21b7SXIrRJDwXWPzr8MGr75fUZPV67FdtMHlHA==} - engines: {node: '>=18'} - cpu: [x64] - os: [sunos] - '@esbuild/win32-arm64@0.25.12': resolution: {integrity: sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==} engines: {node: '>=18'} cpu: [arm64] os: [win32] - '@esbuild/win32-arm64@0.27.0': - resolution: {integrity: sha512-W1eyGNi6d+8kOmZIwi/EDjrL9nxQIQ0MiGqe/AWc6+IaHloxHSGoeRgDRKHFISThLmsewZ5nHFvGFWdBYlgKPg==} - engines: {node: '>=18'} - cpu: [arm64] - os: [win32] - '@esbuild/win32-ia32@0.25.12': resolution: {integrity: sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==} engines: {node: '>=18'} cpu: [ia32] os: [win32] - '@esbuild/win32-ia32@0.27.0': - resolution: {integrity: sha512-30z1aKL9h22kQhilnYkORFYt+3wp7yZsHWus+wSKAJR8JtdfI76LJ4SBdMsCopTR3z/ORqVu5L1vtnHZWVj4cQ==} - engines: {node: '>=18'} - cpu: [ia32] - os: [win32] - '@esbuild/win32-x64@0.25.12': resolution: {integrity: sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==} engines: {node: '>=18'} cpu: [x64] os: [win32] - '@esbuild/win32-x64@0.27.0': - resolution: {integrity: sha512-aIitBcjQeyOhMTImhLZmtxfdOcuNRpwlPNmlFKPcHQYPhEssw75Cl1TSXJXpMkzaua9FUetx/4OQKq7eJul5Cg==} - engines: {node: '>=18'} - cpu: [x64] - os: [win32] - '@eslint-community/eslint-utils@4.9.0': resolution: {integrity: sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -10157,6 +9841,9 @@ packages: '@jridgewell/trace-mapping@0.3.31': resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} + '@jspm/core@2.1.0': + resolution: {integrity: sha512-3sRl+pkyFY/kLmHl0cgHiFp2xEqErA8N3ECjMs7serSUBmoJ70lBa0PG5t0IM6WJgdZNyyI0R8YFfi5wM8+mzg==} + '@keyv/bigmap@1.1.0': resolution: {integrity: sha512-MX7XIUNwVRK+hjZcAbNJ0Z8DREo+Weu9vinBOjGU1thEi9F6vPhICzBbk4CCf3eEefKRz7n6TfZXwUFZTSgj8Q==} engines: {node: '>= 18'} @@ -11188,12 +10875,6 @@ packages: '@wasm-fmt/ruff_fmt@0.6.1': resolution: {integrity: sha512-7O3kVJ3JLYbo2l6+2LQHtPfq+1/Bna7tg8TE9sUft0Wj70qizlu7QJY6hC7KpJwW8LQjvSlLRtGv5W5wu0Pa5w==} - '@yarnpkg/esbuild-plugin-pnp@3.0.0-rc.15': - resolution: {integrity: sha512-kYzDJO5CA9sy+on/s2aIW0411AklfCi8Ck/4QDivOqsMKpStZA2SsR+X27VTggGwpStWaLrjJcDcdDMowtG8MA==} - engines: {node: '>=14.15.0'} - peerDependencies: - esbuild: '>=0.10.0' - '@yarnpkg/lockfile@1.1.0': resolution: {integrity: sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==} @@ -12236,16 +11917,16 @@ packages: esast-util-from-js@2.0.1: resolution: {integrity: sha512-8Ja+rNJ0Lt56Pcf3TAmpBZjmx8ZcK5Ts4cAzIOjsjevg9oSXJnl6SUQ2EevU8tv3h6ZLWmoKL5H4fgWvdvfETw==} + esbuild-plugin-polyfill-node@0.3.0: + resolution: {integrity: sha512-SHG6CKUfWfYyYXGpW143NEZtcVVn8S/WHcEOxk62LuDXnY4Zpmc+WmxJKN6GMTgTClXJXhEM5KQlxKY6YjbucQ==} + peerDependencies: + esbuild: '*' + esbuild@0.25.12: resolution: {integrity: sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==} engines: {node: '>=18'} hasBin: true - esbuild@0.27.0: - resolution: {integrity: sha512-jd0f4NHbD6cALCyGElNpGAOtWxSq46l9X/sWB0Nzd5er4Kz2YTm+Vl0qKFT9KUJvD8+fiO8AvoHhFvEatfVixA==} - engines: {node: '>=18'} - hasBin: true - escalade@3.2.0: resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} engines: {node: '>=6'} @@ -12349,9 +12030,6 @@ packages: estree-util-visit@2.0.0: resolution: {integrity: sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==} - estree-walker@0.6.1: - resolution: {integrity: sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==} - estree-walker@2.0.2: resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} @@ -12987,6 +12665,9 @@ packages: engines: {node: '>=8'} hasBin: true + import-meta-resolve@3.1.1: + resolution: {integrity: sha512-qeywsE/KC3w9Fd2ORrRDUw6nS/nLwZpXgfrOc2IILvZYnCaEMd+D56Vfg9k4G29gIeVi3XKql1RQatME8iYsiw==} + import-meta-resolve@4.2.0: resolution: {integrity: sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg==} @@ -13599,9 +13280,6 @@ packages: lru-memoizer@2.3.0: resolution: {integrity: sha512-GXn7gyHAMhO13WSKrIiNfztwxodVsP8IoZ3XfrJV4yH2x0/OeTO/FIaAHTY5YekdGgW94njfuKmyyt1E0mR6Ug==} - magic-string@0.25.9: - resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} - magic-string@0.30.21: resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==} @@ -14672,16 +14350,6 @@ packages: deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true - rollup-plugin-inject@3.0.2: - resolution: {integrity: sha512-ptg9PQwzs3orn4jkgXJ74bfs5vYz1NCZlSQMBUA0wKcGp5i5pA1AO3fOUEte8enhGUC+iapTCzEWw2jEFFUO/w==} - deprecated: This package has been deprecated and is no longer maintained. Please use @rollup/plugin-inject. - - rollup-plugin-node-polyfills@0.2.1: - resolution: {integrity: sha512-4kCrKPTJ6sK4/gLL/U5QzVT8cxJcofO0OU74tnB19F40cmuAKSzH5/siithxlofFEjwvw1YAhPmbvGNA6jEroA==} - - rollup-pluginutils@2.8.2: - resolution: {integrity: sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==} - rollup@4.53.2: resolution: {integrity: sha512-MHngMYwGJVi6Fmnk6ISmnk7JAHRNF0UkuucA0CUW3N3a4KnONPEZz+vUanQP/ZC/iY1Qkf3bwPWzyY84wEks1g==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} @@ -14876,10 +14544,6 @@ packages: engines: {node: '>= 8'} deprecated: The work that was done in this beta branch won't be included in future versions - sourcemap-codec@1.4.8: - resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} - deprecated: Please use @jridgewell/sourcemap-codec instead - space-separated-tokens@2.0.2: resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} @@ -15344,38 +15008,38 @@ packages: engines: {node: '>=18.0.0'} hasBin: true - turbo-darwin-64@2.5.8: - resolution: {integrity: sha512-Dh5bCACiHO8rUXZLpKw+m3FiHtAp2CkanSyJre+SInEvEr5kIxjGvCK/8MFX8SFRjQuhjtvpIvYYZJB4AGCxNQ==} + turbo-darwin-64@2.6.1: + resolution: {integrity: sha512-Dm0HwhyZF4J0uLqkhUyCVJvKM9Rw7M03v3J9A7drHDQW0qAbIGBrUijQ8g4Q9Cciw/BXRRd8Uzkc3oue+qn+ZQ==} cpu: [x64] os: [darwin] - turbo-darwin-arm64@2.5.8: - resolution: {integrity: sha512-f1H/tQC9px7+hmXn6Kx/w8Jd/FneIUnvLlcI/7RGHunxfOkKJKvsoiNzySkoHQ8uq1pJnhJ0xNGTlYM48ZaJOQ==} + turbo-darwin-arm64@2.6.1: + resolution: {integrity: sha512-U0PIPTPyxdLsrC3jN7jaJUwgzX5sVUBsKLO7+6AL+OASaa1NbT1pPdiZoTkblBAALLP76FM0LlnsVQOnmjYhyw==} cpu: [arm64] os: [darwin] - turbo-linux-64@2.5.8: - resolution: {integrity: sha512-hMyvc7w7yadBlZBGl/bnR6O+dJTx3XkTeyTTH4zEjERO6ChEs0SrN8jTFj1lueNXKIHh1SnALmy6VctKMGnWfw==} + turbo-linux-64@2.6.1: + resolution: {integrity: sha512-eM1uLWgzv89bxlK29qwQEr9xYWBhmO/EGiH22UGfq+uXr+QW1OvNKKMogSN65Ry8lElMH4LZh0aX2DEc7eC0Mw==} cpu: [x64] os: [linux] - turbo-linux-arm64@2.5.8: - resolution: {integrity: sha512-LQELGa7bAqV2f+3rTMRPnj5G/OHAe2U+0N9BwsZvfMvHSUbsQ3bBMWdSQaYNicok7wOZcHjz2TkESn1hYK6xIQ==} + turbo-linux-arm64@2.6.1: + resolution: {integrity: sha512-MFFh7AxAQAycXKuZDrbeutfWM5Ep0CEZ9u7zs4Hn2FvOViTCzIfEhmuJou3/a5+q5VX1zTxQrKGy+4Lf5cdpsA==} cpu: [arm64] os: [linux] - turbo-windows-64@2.5.8: - resolution: {integrity: sha512-3YdcaW34TrN1AWwqgYL9gUqmZsMT4T7g8Y5Azz+uwwEJW+4sgcJkIi9pYFyU4ZBSjBvkfuPZkGgfStir5BBDJQ==} + turbo-windows-64@2.6.1: + resolution: {integrity: sha512-buq7/VAN7KOjMYi4tSZT5m+jpqyhbRU2EUTTvp6V0Ii8dAkY2tAAjQN1q5q2ByflYWKecbQNTqxmVploE0LVwQ==} cpu: [x64] os: [win32] - turbo-windows-arm64@2.5.8: - resolution: {integrity: sha512-eFC5XzLmgXJfnAK3UMTmVECCwuBcORrWdewoiXBnUm934DY6QN8YowC/srhNnROMpaKaqNeRpoB5FxCww3eteQ==} + turbo-windows-arm64@2.6.1: + resolution: {integrity: sha512-7w+AD5vJp3R+FB0YOj1YJcNcOOvBior7bcHTodqp90S3x3bLgpr7tE6xOea1e8JkP7GK6ciKVUpQvV7psiwU5Q==} cpu: [arm64] os: [win32] - turbo@2.5.8: - resolution: {integrity: sha512-5c9Fdsr9qfpT3hA0EyYSFRZj1dVVsb6KIWubA9JBYZ/9ZEAijgUEae0BBR/Xl/wekt4w65/lYLTFaP3JmwSO8w==} + turbo@2.6.1: + resolution: {integrity: sha512-qBwXXuDT3rA53kbNafGbT5r++BrhRgx3sAo0cHoDAeG9g1ItTmUMgltz3Hy7Hazy1ODqNpR+C7QwqL6DYB52yA==} hasBin: true type-check@0.4.0: @@ -17096,172 +16760,84 @@ snapshots: dependencies: tslib: 2.8.1 - '@esbuild-plugins/node-globals-polyfill@0.2.3(esbuild@0.27.0)': - dependencies: - esbuild: 0.27.0 - - '@esbuild-plugins/node-modules-polyfill@0.2.2(esbuild@0.27.0)': - dependencies: - esbuild: 0.27.0 - escape-string-regexp: 4.0.0 - rollup-plugin-node-polyfills: 0.2.1 - '@esbuild/aix-ppc64@0.25.12': optional: true - '@esbuild/aix-ppc64@0.27.0': - optional: true - '@esbuild/android-arm64@0.25.12': optional: true - '@esbuild/android-arm64@0.27.0': - optional: true - '@esbuild/android-arm@0.25.12': optional: true - '@esbuild/android-arm@0.27.0': - optional: true - '@esbuild/android-x64@0.25.12': optional: true - '@esbuild/android-x64@0.27.0': - optional: true - '@esbuild/darwin-arm64@0.25.12': optional: true - '@esbuild/darwin-arm64@0.27.0': - optional: true - '@esbuild/darwin-x64@0.25.12': optional: true - '@esbuild/darwin-x64@0.27.0': - optional: true - '@esbuild/freebsd-arm64@0.25.12': optional: true - '@esbuild/freebsd-arm64@0.27.0': - optional: true - '@esbuild/freebsd-x64@0.25.12': optional: true - '@esbuild/freebsd-x64@0.27.0': - optional: true - '@esbuild/linux-arm64@0.25.12': optional: true - '@esbuild/linux-arm64@0.27.0': - optional: true - '@esbuild/linux-arm@0.25.12': optional: true - '@esbuild/linux-arm@0.27.0': - optional: true - '@esbuild/linux-ia32@0.25.12': optional: true - '@esbuild/linux-ia32@0.27.0': - optional: true - '@esbuild/linux-loong64@0.25.12': optional: true - '@esbuild/linux-loong64@0.27.0': - optional: true - '@esbuild/linux-mips64el@0.25.12': optional: true - '@esbuild/linux-mips64el@0.27.0': - optional: true - '@esbuild/linux-ppc64@0.25.12': optional: true - '@esbuild/linux-ppc64@0.27.0': - optional: true - '@esbuild/linux-riscv64@0.25.12': optional: true - '@esbuild/linux-riscv64@0.27.0': - optional: true - '@esbuild/linux-s390x@0.25.12': optional: true - '@esbuild/linux-s390x@0.27.0': - optional: true - '@esbuild/linux-x64@0.25.12': optional: true - '@esbuild/linux-x64@0.27.0': - optional: true - '@esbuild/netbsd-arm64@0.25.12': optional: true - '@esbuild/netbsd-arm64@0.27.0': - optional: true - '@esbuild/netbsd-x64@0.25.12': optional: true - '@esbuild/netbsd-x64@0.27.0': - optional: true - '@esbuild/openbsd-arm64@0.25.12': optional: true - '@esbuild/openbsd-arm64@0.27.0': - optional: true - '@esbuild/openbsd-x64@0.25.12': optional: true - '@esbuild/openbsd-x64@0.27.0': - optional: true - '@esbuild/openharmony-arm64@0.25.12': optional: true - '@esbuild/openharmony-arm64@0.27.0': - optional: true - '@esbuild/sunos-x64@0.25.12': optional: true - '@esbuild/sunos-x64@0.27.0': - optional: true - '@esbuild/win32-arm64@0.25.12': optional: true - '@esbuild/win32-arm64@0.27.0': - optional: true - '@esbuild/win32-ia32@0.25.12': optional: true - '@esbuild/win32-ia32@0.27.0': - optional: true - '@esbuild/win32-x64@0.25.12': optional: true - '@esbuild/win32-x64@0.27.0': - optional: true - '@eslint-community/eslint-utils@4.9.0(eslint@8.57.1)': dependencies: eslint: 8.57.1 @@ -18151,6 +17727,8 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.5 + '@jspm/core@2.1.0': {} + '@keyv/bigmap@1.1.0(keyv@5.5.3)': dependencies: hookified: 1.12.2 @@ -19403,11 +18981,6 @@ snapshots: '@wasm-fmt/ruff_fmt@0.6.1': {} - '@yarnpkg/esbuild-plugin-pnp@3.0.0-rc.15(esbuild@0.25.12)': - dependencies: - esbuild: 0.25.12 - tslib: 2.8.1 - '@yarnpkg/lockfile@1.1.0': {} '@yarnpkg/parsers@3.0.2': @@ -20514,6 +20087,12 @@ snapshots: esast-util-from-estree: 2.0.0 vfile-message: 4.0.3 + esbuild-plugin-polyfill-node@0.3.0(esbuild@0.25.12): + dependencies: + '@jspm/core': 2.1.0 + esbuild: 0.25.12 + import-meta-resolve: 3.1.1 + esbuild@0.25.12: optionalDependencies: '@esbuild/aix-ppc64': 0.25.12 @@ -20543,35 +20122,6 @@ snapshots: '@esbuild/win32-ia32': 0.25.12 '@esbuild/win32-x64': 0.25.12 - esbuild@0.27.0: - optionalDependencies: - '@esbuild/aix-ppc64': 0.27.0 - '@esbuild/android-arm': 0.27.0 - '@esbuild/android-arm64': 0.27.0 - '@esbuild/android-x64': 0.27.0 - '@esbuild/darwin-arm64': 0.27.0 - '@esbuild/darwin-x64': 0.27.0 - '@esbuild/freebsd-arm64': 0.27.0 - '@esbuild/freebsd-x64': 0.27.0 - '@esbuild/linux-arm': 0.27.0 - '@esbuild/linux-arm64': 0.27.0 - '@esbuild/linux-ia32': 0.27.0 - '@esbuild/linux-loong64': 0.27.0 - '@esbuild/linux-mips64el': 0.27.0 - '@esbuild/linux-ppc64': 0.27.0 - '@esbuild/linux-riscv64': 0.27.0 - '@esbuild/linux-s390x': 0.27.0 - '@esbuild/linux-x64': 0.27.0 - '@esbuild/netbsd-arm64': 0.27.0 - '@esbuild/netbsd-x64': 0.27.0 - '@esbuild/openbsd-arm64': 0.27.0 - '@esbuild/openbsd-x64': 0.27.0 - '@esbuild/openharmony-arm64': 0.27.0 - '@esbuild/sunos-x64': 0.27.0 - '@esbuild/win32-arm64': 0.27.0 - '@esbuild/win32-ia32': 0.27.0 - '@esbuild/win32-x64': 0.27.0 - escalade@3.2.0: {} escape-html@1.0.3: {} @@ -20741,8 +20291,6 @@ snapshots: '@types/estree-jsx': 1.0.5 '@types/unist': 3.0.3 - estree-walker@0.6.1: {} - estree-walker@2.0.2: {} estree-walker@3.0.3: @@ -21550,6 +21098,8 @@ snapshots: pkg-dir: 4.2.0 resolve-cwd: 3.0.0 + import-meta-resolve@3.1.1: {} + import-meta-resolve@4.2.0: {} imurmurhash@0.1.4: {} @@ -22324,10 +21874,6 @@ snapshots: lodash.clonedeep: 4.5.0 lru-cache: 6.0.0 - magic-string@0.25.9: - dependencies: - sourcemap-codec: 1.4.8 - magic-string@0.30.21: dependencies: '@jridgewell/sourcemap-codec': 1.5.5 @@ -23936,20 +23482,6 @@ snapshots: dependencies: glob: 7.2.3 - rollup-plugin-inject@3.0.2: - dependencies: - estree-walker: 0.6.1 - magic-string: 0.25.9 - rollup-pluginutils: 2.8.2 - - rollup-plugin-node-polyfills@0.2.1: - dependencies: - rollup-plugin-inject: 3.0.2 - - rollup-pluginutils@2.8.2: - dependencies: - estree-walker: 0.6.1 - rollup@4.53.2: dependencies: '@types/estree': 1.0.8 @@ -24208,8 +23740,6 @@ snapshots: dependencies: whatwg-url: 7.1.0 - sourcemap-codec@1.4.8: {} - space-separated-tokens@2.0.2: {} spdx-correct@3.2.0: @@ -24767,34 +24297,6 @@ snapshots: tslib@2.8.1: {} - tsup@8.5.0(postcss@8.5.6)(tsx@4.20.6)(typescript@5.9.2)(yaml@2.3.3): - dependencies: - bundle-require: 5.1.0(esbuild@0.25.12) - cac: 6.7.14 - chokidar: 4.0.3 - consola: 3.4.2 - debug: 4.4.3 - esbuild: 0.25.12 - fix-dts-default-cjs-exports: 1.0.1 - joycon: 3.1.1 - picocolors: 1.1.1 - postcss-load-config: 6.0.1(postcss@8.5.6)(tsx@4.20.6)(yaml@2.3.3) - resolve-from: 5.0.0 - rollup: 4.53.2 - source-map: 0.8.0-beta.0 - sucrase: 3.35.0 - tinyexec: 0.3.2 - tinyglobby: 0.2.15 - tree-kill: 1.2.2 - optionalDependencies: - postcss: 8.5.6 - typescript: 5.9.2 - transitivePeerDependencies: - - jiti - - supports-color - - tsx - - yaml - tsup@8.5.0(postcss@8.5.6)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.3.3): dependencies: bundle-require: 5.1.0(esbuild@0.25.12) @@ -24830,32 +24332,32 @@ snapshots: optionalDependencies: fsevents: 2.3.3 - turbo-darwin-64@2.5.8: + turbo-darwin-64@2.6.1: optional: true - turbo-darwin-arm64@2.5.8: + turbo-darwin-arm64@2.6.1: optional: true - turbo-linux-64@2.5.8: + turbo-linux-64@2.6.1: optional: true - turbo-linux-arm64@2.5.8: + turbo-linux-arm64@2.6.1: optional: true - turbo-windows-64@2.5.8: + turbo-windows-64@2.6.1: optional: true - turbo-windows-arm64@2.5.8: + turbo-windows-arm64@2.6.1: optional: true - turbo@2.5.8: + turbo@2.6.1: optionalDependencies: - turbo-darwin-64: 2.5.8 - turbo-darwin-arm64: 2.5.8 - turbo-linux-64: 2.5.8 - turbo-linux-arm64: 2.5.8 - turbo-windows-64: 2.5.8 - turbo-windows-arm64: 2.5.8 + turbo-darwin-64: 2.6.1 + turbo-darwin-arm64: 2.6.1 + turbo-linux-64: 2.6.1 + turbo-linux-arm64: 2.6.1 + turbo-windows-64: 2.6.1 + turbo-windows-arm64: 2.6.1 type-check@0.4.0: dependencies: diff --git a/seed/csharp-model/seed.yml b/seed/csharp-model/seed.yml index aff7a36d6b70..fb63896bb48f 100644 --- a/seed/csharp-model/seed.yml +++ b/seed/csharp-model/seed.yml @@ -11,7 +11,7 @@ buildScripts: publish: preBuildCommands: - ./.github/actions/install - - pnpm --filter @fern-api/fern-csharp-model dist:cli + - pnpm turbo run dist:cli --filter @fern-api/fern-csharp-model docker: file: ./generators/csharp/model/Dockerfile image: fernapi/fern-csharp-model @@ -19,14 +19,14 @@ publish: test: docker: image: fernapi/fern-csharp-model:latest - command: pnpm --filter @fern-api/fern-csharp-model dockerTagLatest + command: pnpm turbo run dockerTagLatest --filter @fern-api/fern-csharp-model podman: image: fernapi/fern-csharp-model:latest - command: pnpm --filter @fern-api/fern-csharp-model podmanTagLatest + command: pnpm turbo run podmanTagLatest --filter @fern-api/fern-csharp-model local: workingDirectory: generators/csharp buildCommand: - - pnpm --filter @fern-api/fern-csharp-model dist:cli + - pnpm turbo run dist:cli --filter @fern-api/fern-csharp-model runCommand: node --enable-source-maps model/dist/cli.cjs {CONFIG_PATH} language: csharp diff --git a/seed/csharp-sdk/seed.yml b/seed/csharp-sdk/seed.yml index 1189552c6604..3486f9136759 100644 --- a/seed/csharp-sdk/seed.yml +++ b/seed/csharp-sdk/seed.yml @@ -16,7 +16,7 @@ buildScripts: publish: preBuildCommands: - - pnpm --filter @fern-api/fern-csharp-sdk dist:cli + - pnpm turbo run dist:cli --filter @fern-api/fern-csharp-sdk docker: file: ./generators/csharp/sdk/Dockerfile image: fernapi/fern-csharp-sdk @@ -24,14 +24,14 @@ publish: test: docker: image: fernapi/fern-csharp-sdk:latest - command: pnpm --filter @fern-api/fern-csharp-sdk dockerTagLatest + command: pnpm turbo run dockerTagLatest --filter @fern-api/fern-csharp-sdk podman: image: fernapi/fern-csharp-sdk:latest - command: pnpm --filter @fern-api/fern-csharp-sdk podmanTagLatest + command: pnpm turbo run podmanTagLatest --filter @fern-api/fern-csharp-sdk local: workingDirectory: generators/csharp buildCommand: - - pnpm --filter @fern-api/fern-csharp-sdk dist:cli + - pnpm turbo run dist:cli --filter @fern-api/fern-csharp-sdk runCommand: node --enable-source-maps sdk/dist/cli.cjs {CONFIG_PATH} language: csharp diff --git a/seed/fern-cli/seed.yml b/seed/fern-cli/seed.yml index 5f015675b9ae..9aa5132827de 100644 --- a/seed/fern-cli/seed.yml +++ b/seed/fern-cli/seed.yml @@ -5,8 +5,7 @@ publishGa: command: - echo "//registry.npmjs.org/:_authToken=${NPM_TOKEN}" > ~/.npmrc - pnpm install - - pnpm --filter @fern-api/cli compile - - pnpm --filter @fern-api/cli dist:cli:prod $VERSION + - pnpm turbo run dist:cli:prod --filter @fern-api/cli -- $VERSION - pnpm --filter @fern-api/cli publish:cli:prod --tag latest publishRc: workingDirectory: packages/cli/cli @@ -14,13 +13,12 @@ publishRc: command: - echo "//registry.npmjs.org/:_authToken=${NPM_TOKEN}" > ~/.npmrc - pnpm install - - pnpm --filter @fern-api/cli compile - - pnpm --filter @fern-api/cli dist:cli:prod $VERSION + - pnpm turbo run dist:cli:prod --filter @fern-api/cli -- $VERSION - pnpm --filter @fern-api/cli publish:cli:prod --tag prerelease publishDev: workingDirectory: packages/cli/cli versionSubstitution: $VERSION command: - - pnpm --filter @fern-api/cli compile - - pnpm --filter @fern-api/cli dist:cli:dev $VERSION - - pnpm --filter @fern-api/cli publish:cli:dev --access restricted + - pnpm install + - pnpm turbo run dist:cli:dev --filter @fern-api/cli -- $VERSION + - pnpm --filter @fern-api/cli publish:cli:dev --access restricted \ No newline at end of file diff --git a/seed/go-fiber/seed.yml b/seed/go-fiber/seed.yml index 69b3dd293b9c..2a3b88c98848 100644 --- a/seed/go-fiber/seed.yml +++ b/seed/go-fiber/seed.yml @@ -15,7 +15,7 @@ publish: workingDirectory: generators/go preBuildCommands: - go build ./... - - pnpm --filter @fern-api/go-sdk dist:cli + - pnpm turbo run dist:cli --filter @fern-api/go-sdk docker: file: ./generators/go/fiber/Dockerfile image: fernapi/fern-go-fiber @@ -23,10 +23,10 @@ publish: test: docker: image: fernapi/fern-go-fiber:latest - command: pnpm --filter @fern-api/go-sdk dist:cli && docker build -f ./generators/go/fiber/Dockerfile -t fernapi/fern-go-fiber:latest . + command: pnpm turbo run dist:cli --filter @fern-api/go-sdk && docker build -f ./generators/go/fiber/Dockerfile -t fernapi/fern-go-fiber:latest . podman: image: fernapi/fern-go-fiber:latest - command: pnpm --filter @fern-api/go-sdk dist:cli && podman build -f ./generators/go/fiber/Dockerfile -t fernapi/fern-go-fiber:latest . + command: pnpm turbo run dist:cli --filter @fern-api/go-sdk && podman build -f ./generators/go/fiber/Dockerfile -t fernapi/fern-go-fiber:latest . language: go generatorType: Model defaultOutputMode: github diff --git a/seed/go-model/seed.yml b/seed/go-model/seed.yml index 9ef654994996..d2a58e1767c0 100644 --- a/seed/go-model/seed.yml +++ b/seed/go-model/seed.yml @@ -17,7 +17,7 @@ buildScripts: publish: workingDirectory: generators/go-v2 preBuildCommands: - - pnpm --filter @fern-api/go-model dist:cli + - pnpm turbo run dist:cli --filter @fern-api/go-model docker: file: ./generators/go/model/Dockerfile image: fernapi/fern-go-model @@ -26,10 +26,10 @@ publish: test: docker: image: fernapi/fern-go-model:latest - command: pnpm --filter @fern-api/go-model dist:cli && docker build -f ./generators/go/model/Dockerfile -t fernapi/fern-go-model:latest . + command: pnpm turbo run dist:cli --filter @fern-api/go-model && docker build -f ./generators/go/model/Dockerfile -t fernapi/fern-go-model:latest . podman: image: fernapi/fern-go-model:latest - command: pnpm --filter @fern-api/go-model dist:cli && podman build -f ./generators/go/model/Dockerfile -t fernapi/fern-go-model:latest . + command: pnpm turbo run dist:cli --filter @fern-api/go-model && podman build -f ./generators/go/model/Dockerfile -t fernapi/fern-go-model:latest . fixtures: streaming: diff --git a/seed/go-sdk/seed.yml b/seed/go-sdk/seed.yml index 625d89058241..9a718d3ec93e 100644 --- a/seed/go-sdk/seed.yml +++ b/seed/go-sdk/seed.yml @@ -19,7 +19,7 @@ publish: workingDirectory: generators/go preBuildCommands: - go build ./... - - pnpm --filter @fern-api/go-sdk dist:cli + - pnpm turbo run dist:cli --filter @fern-api/go-sdk docker: file: ./generators/go/sdk/Dockerfile image: fernapi/fern-go-sdk @@ -27,10 +27,10 @@ publish: test: docker: image: fernapi/fern-go-sdk:latest - command: pnpm --filter @fern-api/go-sdk dist:cli && docker build -f ./generators/go/sdk/Dockerfile -t fernapi/fern-go-sdk:latest . + command: pnpm turbo run dist:cli --filter @fern-api/go-sdk && docker build -f ./generators/go/sdk/Dockerfile -t fernapi/fern-go-sdk:latest . podman: image: fernapi/fern-go-sdk:latest - command: pnpm --filter @fern-api/go-sdk dist:cli && podman build -f ./generators/go/sdk/Dockerfile -t fernapi/fern-go-sdk:latest . + command: pnpm turbo run dist:cli --filter @fern-api/go-sdk && podman build -f ./generators/go/sdk/Dockerfile -t fernapi/fern-go-sdk:latest . language: go generatorType: SDK defaultOutputMode: github diff --git a/seed/java-sdk/seed.yml b/seed/java-sdk/seed.yml index 1a2f22d48f7a..fe4d4b1dcf55 100644 --- a/seed/java-sdk/seed.yml +++ b/seed/java-sdk/seed.yml @@ -12,7 +12,7 @@ publish: workingDirectory: generators/java preBuildCommands: - ./gradlew :sdk:distTar - - pnpm --filter @fern-api/java-sdk dist:cli + - pnpm turbo run dist:cli --filter @fern-api/java-sdk docker: file: ./generators/java/sdk/Dockerfile image: fernapi/fern-java-sdk @@ -25,7 +25,7 @@ test: - cd generators/java - ./gradlew :sdk:distTar - cd ../../ - - pnpm --filter @fern-api/java-sdk dist:cli + - pnpm turbo run dist:cli --filter @fern-api/java-sdk - docker build -f generators/java/sdk/Dockerfile -t fernapi/fern-java-sdk:latest . podman: image: fernapi/fern-java-sdk:latest @@ -34,7 +34,7 @@ test: - cd generators/java - ./gradlew :sdk:distTar - cd ../../ - - pnpm --filter @fern-api/java-sdk dist:cli + - pnpm turbo run dist:cli --filter @fern-api/java-sdk - podman build -f generators/java/sdk/Dockerfile -t fernapi/fern-java-sdk:latest . local: workingDirectory: generators/java diff --git a/seed/openapi/seed.yml b/seed/openapi/seed.yml index 2cae87038119..4169f1ae89f1 100644 --- a/seed/openapi/seed.yml +++ b/seed/openapi/seed.yml @@ -4,7 +4,7 @@ image: fernapi/fern-openapi changelogLocation: ../../generators/openapi/versions.yml publish: preBuildCommands: - - pnpm --filter @fern-api/openapi-generator dist:cli + - pnpm turbo run dist:cli --filter @fern-api/openapi-generator docker: file: ./generators/openapi/Dockerfile image: fernapi/fern-openapi @@ -12,7 +12,7 @@ publish: test: docker: image: fernapi/fern-openapi:latest - command: pnpm --filter @fern-api/openapi-generator dockerTagLatest + command: pnpm turbo run dockerTagLatest --filter @fern-api/openapi-generator generatorType: Documentation defaultOutputMode: local_files fixtures: diff --git a/seed/php-model/seed.yml b/seed/php-model/seed.yml index b70feef11e59..1e81e61d87b1 100644 --- a/seed/php-model/seed.yml +++ b/seed/php-model/seed.yml @@ -4,7 +4,7 @@ image: fernapi/fern-php-model changelogLocation: ../../generators/php/model/versions.yml publish: preBuildCommands: - - pnpm --filter @fern-api/php-model dist:cli + - pnpm turbo run dist:cli --filter @fern-api/php-model docker: file: ./generators/php/model/Dockerfile image: fernapi/fern-php-model @@ -12,14 +12,14 @@ publish: test: docker: image: fernapi/fern-php-model:latest - command: pnpm --filter @fern-api/php-model dockerTagLatest + command: pnpm turbo run dockerTagLatest --filter @fern-api/php-model podman: image: fernapi/fern-php-model:latest - command: pnpm --filter @fern-api/php-model podmanTagLatest + command: pnpm turbo run podmanTagLatest --filter @fern-api/php-model local: workingDirectory: generators/php buildCommand: - - pnpm --filter @fern-api/php-model dist:cli + - pnpm turbo run dist:cli --filter @fern-api/php-model runCommand: node --enable-source-maps model/dist/cli.cjs {CONFIG_PATH} language: php diff --git a/seed/php-sdk/seed.yml b/seed/php-sdk/seed.yml index 29fa623c17a9..9ff0e3b7389a 100644 --- a/seed/php-sdk/seed.yml +++ b/seed/php-sdk/seed.yml @@ -4,7 +4,7 @@ image: fernapi/fern-php-sdk changelogLocation: ../../generators/php/sdk/versions.yml publish: preBuildCommands: - - pnpm --filter @fern-api/php-sdk dist:cli + - pnpm turbo run dist:cli --filter @fern-api/php-sdk docker: file: ./generators/php/sdk/Dockerfile image: fernapi/fern-php-sdk @@ -12,14 +12,14 @@ publish: test: docker: image: fernapi/fern-php-sdk:latest - command: pnpm --filter @fern-api/php-sdk dockerTagLatest + command: pnpm turbo run dockerTagLatest --filter @fern-api/php-sdk podman: image: fernapi/fern-php-sdk:latest - command: pnpm --filter @fern-api/php-sdk podmanTagLatest + command: pnpm turbo run podmanTagLatest --filter @fern-api/php-sdk local: workingDirectory: generators/php buildCommand: - - pnpm --filter @fern-api/php-sdk dist:cli + - pnpm turbo run dist:cli --filter @fern-api/php-sdk runCommand: node --enable-source-maps sdk/dist/cli.cjs {CONFIG_PATH} language: php generatorType: SDK diff --git a/seed/postman/seed.yml b/seed/postman/seed.yml index 8f826d18cbbb..30f21387d0ca 100644 --- a/seed/postman/seed.yml +++ b/seed/postman/seed.yml @@ -4,7 +4,7 @@ image: fernapi/fern-postman changelogLocation: ../../generators/postman/versions.yml publish: preBuildCommands: - - pnpm --filter @fern-api/postman-generator dist:cli + - pnpm turbo run dist:cli --filter @fern-api/postman-generator docker: file: ./generators/postman/Dockerfile image: fernapi/fern-postman @@ -12,7 +12,7 @@ publish: test: docker: image: fernapi/fern-postman:latest - command: pnpm --filter @fern-api/postman-generator dockerTagLatest + command: pnpm turbo run dockerTagLatest --filter @fern-api/postman-generator fixtures: imdb: - customConfig: null diff --git a/seed/pydantic-v2/seed.yml b/seed/pydantic-v2/seed.yml index 1d40da2e0cee..1e6056848c81 100644 --- a/seed/pydantic-v2/seed.yml +++ b/seed/pydantic-v2/seed.yml @@ -5,7 +5,7 @@ changelogLocation: ../../generators/python/pydantic/versions.yml test: docker: image: fernapi/fern-pydantic-model-v2:latest - command: pnpm --filter @fern-api/fern-pydantic-model dockerTagLatest + command: pnpm turbo run dockerTagLatest --filter @fern-api/fern-pydantic-model language: python generatorType: Model diff --git a/seed/python-sdk/seed.yml b/seed/python-sdk/seed.yml index 24b8c81ca65d..70eefc1ba224 100644 --- a/seed/python-sdk/seed.yml +++ b/seed/python-sdk/seed.yml @@ -15,7 +15,7 @@ buildScripts: publish: workingDirectory: generators/python preBuildCommands: - - pnpm --filter @fern-api/python-sdk dist:cli + - pnpm turbo run dist:cli --filter @fern-api/python-sdk - pip install poetry - poetry config virtualenvs.in-project true - poetry install @@ -26,7 +26,7 @@ publish: test: docker: image: fernapi/fern-python-sdk:latest - command: pnpm --filter @fern-api/python-sdk dist:cli && docker build -f ./generators/python/sdk/Dockerfile -t fernapi/fern-python-sdk:latest . + command: pnpm turbo run dist:cli --filter @fern-api/python-sdk && docker build -f ./generators/python/sdk/Dockerfile -t fernapi/fern-python-sdk:latest . local: workingDirectory: generators/python buildCommand: diff --git a/seed/ruby-model/seed.yml b/seed/ruby-model/seed.yml index 3ba2a7228507..ff321ac618df 100644 --- a/seed/ruby-model/seed.yml +++ b/seed/ruby-model/seed.yml @@ -5,7 +5,7 @@ changelogLocation: ../../generators/ruby/model/versions.yml publish: preBuildCommands: - - pnpm --filter @fern-api/fern-ruby-model dist:cli + - pnpm turbo run dist:cli --filter @fern-api/fern-ruby-model docker: file: ./generators/ruby/model/Dockerfile image: fernapi/fern-ruby-model @@ -13,7 +13,7 @@ publish: test: docker: image: fernapi/fern-ruby-model:latest - command: pnpm --filter @fern-api/fern-ruby-model dockerTagLatest + command: pnpm turbo run dockerTagLatest --filter @fern-api/fern-ruby-model language: ruby generatorType: Model defaultOutputMode: local_files diff --git a/seed/ruby-sdk-v2/seed.yml b/seed/ruby-sdk-v2/seed.yml index 09a2750bd6ee..5cfb33910138 100644 --- a/seed/ruby-sdk-v2/seed.yml +++ b/seed/ruby-sdk-v2/seed.yml @@ -17,14 +17,14 @@ buildScripts: test: docker: image: fernapi/fern-ruby-sdk-v2:latest - command: pnpm --filter @fern-api/ruby-sdk dockerTagLatest + command: pnpm turbo run dockerTagLatest --filter @fern-api/ruby-sdk podman: image: fernapi/fern-ruby-sdk-v2:latest - command: pnpm --filter @fern-api/ruby-sdk podmanTagLatest + command: pnpm turbo run podmanTagLatest --filter @fern-api/ruby-sdk publish: preBuildCommands: - - pnpm --filter @fern-api/ruby-sdk dist:cli + - pnpm turbo run dist:cli --filter @fern-api/ruby-sdk docker: file: ./generators/ruby-v2/sdk/Dockerfile image: fernapi/fern-ruby-sdk-v2 diff --git a/seed/ruby-sdk/seed.yml b/seed/ruby-sdk/seed.yml index ce61526c4978..5b4dd4134a38 100644 --- a/seed/ruby-sdk/seed.yml +++ b/seed/ruby-sdk/seed.yml @@ -13,7 +13,7 @@ buildScripts: publish: preBuildCommands: - - pnpm --filter @fern-api/ruby-sdk dist:cli + - pnpm turbo run dist:cli --filter @fern-api/ruby-sdk docker: file: ./generators/ruby-v2/sdk/Dockerfile image: fernapi/fern-ruby-sdk @@ -25,7 +25,7 @@ publish: test: docker: image: fernapi/fern-ruby-sdk:latest - command: pnpm --filter @fern-api/fern-ruby-sdk dockerTagLatest + command: pnpm turbo run dockerTagLatest --filter @fern-api/fern-ruby-sdk language: ruby generatorType: SDK defaultOutputMode: github diff --git a/seed/rust-model/seed.yml b/seed/rust-model/seed.yml index 9e42daf98d7f..dfbebef2b308 100644 --- a/seed/rust-model/seed.yml +++ b/seed/rust-model/seed.yml @@ -14,17 +14,17 @@ buildScripts: test: docker: image: fernapi/fern-rust-model:latest - command: pnpm --filter @fern-api/rust-model dist:cli && docker build -f ./generators/rust/model/Dockerfile -t fernapi/fern-rust-model:latest . + command: pnpm turbo run dist:cli --filter @fern-api/rust-model && docker build -f ./generators/rust/model/Dockerfile -t fernapi/fern-rust-model:latest . local: workingDirectory: generators/rust buildCommand: - - pnpm --filter @fern-api/rust-model dist:cli + - pnpm turbo run dist:cli --filter @fern-api/rust-model runCommand: node --enable-source-maps ./model/dist/cli.cjs {CONFIG_PATH} publish: workingDirectory: generators/rust preBuildCommands: - - pnpm --filter @fern-api/rust-model dist:cli + - pnpm turbo run dist:cli --filter @fern-api/rust-model docker: file: ./generators/rust/model/Dockerfile image: fernapi/fern-rust-model diff --git a/seed/rust-sdk/seed.yml b/seed/rust-sdk/seed.yml index 5b035bbb9cfc..f12529b3e012 100644 --- a/seed/rust-sdk/seed.yml +++ b/seed/rust-sdk/seed.yml @@ -14,7 +14,7 @@ buildScripts: publish: workingDirectory: generators/rust preBuildCommands: - - pnpm --filter @fern-api/rust-sdk dist:cli + - pnpm turbo run dist:cli --filter @fern-api/rust-sdk docker: file: ./generators/rust/sdk/Dockerfile image: fernapi/fern-rust-sdk @@ -23,11 +23,11 @@ publish: test: docker: image: fernapi/fern-rust-sdk:latest - command: pnpm --filter @fern-api/rust-sdk dist:cli && docker build -f ./generators/rust/sdk/Dockerfile -t fernapi/fern-rust-sdk:latest . + command: pnpm turbo run dist:cli --filter @fern-api/rust-sdk && docker build -f ./generators/rust/sdk/Dockerfile -t fernapi/fern-rust-sdk:latest . local: workingDirectory: generators/rust buildCommand: - - pnpm --filter @fern-api/rust-sdk dist:cli + - pnpm turbo run dist:cli --filter @fern-api/rust-sdk runCommand: node --enable-source-maps ./sdk/dist/cli.cjs {CONFIG_PATH} language: rust diff --git a/seed/swift-sdk/seed.yml b/seed/swift-sdk/seed.yml index 741e15a1c6c0..7375a93ae5a1 100644 --- a/seed/swift-sdk/seed.yml +++ b/seed/swift-sdk/seed.yml @@ -5,7 +5,7 @@ changelogLocation: ../../generators/swift/sdk/versions.yml publish: preBuildCommands: - - pnpm --filter @fern-api/swift-sdk dist:cli + - pnpm turbo run dist:cli --filter @fern-api/swift-sdk docker: file: ./generators/swift/sdk/Dockerfile image: fernapi/fern-swift-sdk @@ -14,14 +14,14 @@ publish: test: docker: image: fernapi/fern-swift-sdk:latest - command: pnpm --filter @fern-api/swift-sdk dockerTagLatest + command: pnpm turbo run dockerTagLatest --filter @fern-api/swift-sdk podman: image: fernapi/fern-swift-sdk:latest - command: pnpm --filter @fern-api/swift-sdk podmanTagLatest + command: pnpm turbo run podmanTagLatest --filter @fern-api/swift-sdk local: workingDirectory: generators/swift buildCommand: - - pnpm --filter @fern-api/swift-sdk dist:cli + - pnpm turbo run dist:cli --filter @fern-api/swift-sdk runCommand: node --enable-source-maps sdk/dist/cli.cjs {CONFIG_PATH} language: swift diff --git a/seed/ts-express/seed.yml b/seed/ts-express/seed.yml index 02a047fbfc4d..63fafcda0d63 100644 --- a/seed/ts-express/seed.yml +++ b/seed/ts-express/seed.yml @@ -13,7 +13,7 @@ buildScripts: publish: preBuildCommands: - - pnpm --filter @fern-typescript/express-generator-cli dist:cli + - pnpm turbo run dist:cli --filter @fern-typescript/express-generator-cli docker: file: ./generators/typescript/express/cli/Dockerfile image: fernapi/fern-typescript-express @@ -22,15 +22,15 @@ test: docker: image: fernapi/fern-typescript-express:latest command: - - pnpm --filter @fern-typescript/express-generator-cli dockerTagLatest + - pnpm turbo run dockerTagLatest --filter @fern-typescript/express-generator-cli podman: image: fernapi/fern-typescript-express:latest command: - - pnpm --filter @fern-typescript/express-generator-cli podmanTagLatest + - pnpm turbo run podmanTagLatest --filter @fern-typescript/express-generator-cli local: workingDirectory: generators/typescript buildCommand: - - pnpm --filter @fern-typescript/express-generator-cli dist:cli + - pnpm turbo run dist:cli --filter @fern-typescript/express-generator-cli runCommand: node --enable-source-maps express/cli/dist/cli.cjs {CONFIG_PATH} env: NODE_ENV: test diff --git a/seed/ts-mcp/seed.yml b/seed/ts-mcp/seed.yml index 48b6212bfeb1..aef9491f611d 100644 --- a/seed/ts-mcp/seed.yml +++ b/seed/ts-mcp/seed.yml @@ -5,11 +5,11 @@ changelogLocation: ../../generators/typescript-mcp/model/versions.yml test: docker: image: fernapi/fern-typescript-mcp-server:latest - command: pnpm --filter @fern-api/typescript-mcp-server dockerTagLatest + command: pnpm turbo run dockerTagLatest --filter @fern-api/typescript-mcp-server local: workingDirectory: generators/typescript-mcp buildCommand: - - pnpm --filter @fern-api/typescript-mcp-server dist:cli + - pnpm turbo run dist:cli --filter @fern-api/typescript-mcp-server runCommand: node --enable-source-maps server/dist/cli.cjs {CONFIG_PATH} language: typescript generatorType: SDK diff --git a/seed/ts-sdk/seed.yml b/seed/ts-sdk/seed.yml index 450373c75ff7..3ba426f67093 100644 --- a/seed/ts-sdk/seed.yml +++ b/seed/ts-sdk/seed.yml @@ -5,7 +5,7 @@ imageAliases: [fernapi/fern-typescript-node-sdk] changelogLocation: ../../generators/typescript/sdk/versions.yml publish: preBuildCommands: - - pnpm --filter @fern-typescript/sdk-generator-cli dist:cli + - pnpm turbo run dist:cli --filter @fern-typescript/sdk-generator-cli docker: file: ./generators/typescript/sdk/cli/Dockerfile image: fernapi/fern-typescript-sdk @@ -15,15 +15,15 @@ test: docker: image: fernapi/fern-typescript-sdk:latest command: - - pnpm --filter @fern-typescript/sdk-generator-cli dockerTagLatest + - pnpm turbo run dockerTagLatest --filter @fern-typescript/sdk-generator-cli podman: image: fernapi/fern-typescript-sdk:latest command: - - pnpm --filter @fern-typescript/sdk-generator-cli podmanTagLatest + - pnpm turbo run podmanTagLatest --filter @fern-typescript/sdk-generator-cli local: workingDirectory: generators/typescript buildCommand: - - pnpm --filter @fern-typescript/sdk-generator-cli dist:cli + - pnpm turbo run dist:cli --filter @fern-typescript/sdk-generator-cli runCommand: node --enable-source-maps sdk/cli/dist/cli.cjs {CONFIG_PATH} env: NODE_ENV: test diff --git a/turbo.json b/turbo.json index 5199f833fc89..e5eb8577227f 100644 --- a/turbo.json +++ b/turbo.json @@ -17,13 +17,13 @@ }, "compile": { "dependsOn": ["^compile"], - "outputs": ["lib/**"], - "inputs": ["src/**", "tests/**", "package.json", "tsconfig.json"] + "outputs": ["lib/**", "*.tsbuildinfo"], + "inputs": ["src/**", "tests/**", "package.json", "tsconfig.json", "$TURBO_ROOT$/packages/configs/**"] }, "compile:debug": { "dependsOn": ["^compile:debug"], - "outputs": ["lib/**"], - "inputs": ["src/**", "tests/**", "package.json", "tsconfig.json"] + "outputs": ["lib/**", "*.tsbuildinfo"], + "inputs": ["src/**", "tests/**", "package.json", "tsconfig.json", "$TURBO_ROOT$/packages/configs/**"] }, "depcheck": { "outputs": [], @@ -38,9 +38,10 @@ "inputs": ["src/**", "tests/**", "$TURBO_ROOT$/.eslintrc.js", "$TURBO_ROOT$/.eslintignore", "tsconfig.json"] }, "test": { - "dependsOn": ["^compile"], + "dependsOn": ["^compile", "compile"], "outputs": [], "inputs": [ + "$TURBO_ROOT$/packages/configs/**", "$TURBO_ROOT$/shared/vitest.config.ts", "$TURBO_ROOT$/test-definitions-openapi/**", "$TURBO_ROOT$/test-definitions/**", @@ -56,6 +57,7 @@ "dependsOn": ["^compile:debug"], "outputs": [], "inputs": [ + "$TURBO_ROOT$/packages/configs/**", "$TURBO_ROOT$/shared/vitest.config.ts", "$TURBO_ROOT$/test-definitions-openapi/**", "$TURBO_ROOT$/test-definitions/**", @@ -68,9 +70,10 @@ ] }, "test:update": { - "dependsOn": ["^compile"], + "dependsOn": ["^compile", "compile"], "outputs": [], "inputs": [ + "$TURBO_ROOT$/packages/configs/**", "$TURBO_ROOT$/shared/vitest.config.ts", "$TURBO_ROOT$/test-definitions-openapi/**", "$TURBO_ROOT$/test-definitions/**", @@ -83,55 +86,67 @@ ] }, "dist:cli": { - "dependsOn": ["^compile"], "outputs": ["dist/**"], + "dependsOn": ["^compile", "compile"], "inputs": [ "src/**", "tests/**", "package.json", "tsconfig.json", + "build-utils.mjs", + "build.mjs", + "$TURBO_ROOT$/packages/configs/**", "$TURBO_ROOT$/shared/.prettierignore", "$TURBO_ROOT$/shared/stylelintrc.shared.json", "$TURBO_ROOT$/tsconfig.eslint.json" ] }, "dist:cli:dev": { - "dependsOn": ["^compile"], - "outputs": ["dist/**"], + "outputs": ["dist/dev/**"], + "dependsOn": ["^compile", "compile"], "inputs": [ "src/**", "tests/**", "package.json", "tsconfig.json", + "build-utils.mjs", + "build.dev.mjs", "$TURBO_ROOT$/shared/.prettierignore", "$TURBO_ROOT$/shared/stylelintrc.shared.json", - "$TURBO_ROOT$/tsconfig.eslint.json" + "$TURBO_ROOT$/tsconfig.eslint.json", + "$TURBO_ROOT$/packages/configs/**" ] }, "dist:cli:local": { - "dependsOn": ["^compile"], - "outputs": ["dist/**"], + "outputs": ["dist/local/**"], + "dependsOn": ["^compile", "compile"], "inputs": [ "src/**", "tests/**", "package.json", "tsconfig.json", + "build-utils.mjs", + "build.local.mjs", "$TURBO_ROOT$/shared/.prettierignore", "$TURBO_ROOT$/shared/stylelintrc.shared.json", - "$TURBO_ROOT$/tsconfig.eslint.json" + "$TURBO_ROOT$/tsconfig.eslint.json", + "$TURBO_ROOT$/packages/configs/**" ] }, "dist:cli:prod": { - "dependsOn": ["^compile"], - "outputs": ["dist/**"], + "outputs": ["dist/prod/**"], + "dependsOn": ["^compile", "compile"], "inputs": [ "src/**", "tests/**", "package.json", "tsconfig.json", + "build-utils.mjs", + "build.prod.mjs", "$TURBO_ROOT$/shared/.prettierignore", "$TURBO_ROOT$/shared/stylelintrc.shared.json", - "$TURBO_ROOT$/tsconfig.eslint.json" + "$TURBO_ROOT$/tsconfig.eslint.json", + "$TURBO_ROOT$/packages/configs/**" ] }, "dist": { @@ -143,37 +158,31 @@ "tests/**", "package.json", "tsconfig.json", + "build-utils.mjs", + "build.mjs", "$TURBO_ROOT$/shared/.prettierignore", "$TURBO_ROOT$/shared/stylelintrc.shared.json", - "$TURBO_ROOT$/tsconfig.eslint.json" + "$TURBO_ROOT$/tsconfig.eslint.json", + "$TURBO_ROOT$/packages/configs/**" ] }, - "fern:build": { - "dependsOn": ["^compile"], - "outputs": ["packages/cli/cli/dist/prod/**"], - "inputs": [ - "packages/cli/cli/src/**", - "packages/cli/cli/tests/**", - "packages/cli/cli/package.json", - "packages/cli/cli/tsconfig.json", - "packages/cli/cli/build.prod.cjs", - "$TURBO_ROOT$/shared/.prettierignore", - "$TURBO_ROOT$/shared/stylelintrc.shared.json", - "$TURBO_ROOT$/tsconfig.eslint.json" - ] + "dockerTagLatest": { + "outputs": [], + "dependsOn": ["dist:cli"], + "inputs": ["dist/**", "Dockerfile", "Dockerfile.*"] }, - "fern-dev:build": { - "dependsOn": ["^compile"], - "outputs": ["packages/cli/cli/dist/dev/**"], + "podmanTagLatest": { + "outputs": [], + "dependsOn": ["dist:cli"], "inputs": [ - "packages/cli/cli/src/**", - "packages/cli/cli/tests/**", - "packages/cli/cli/package.json", - "packages/cli/cli/tsconfig.json", - "packages/cli/cli/build.dev.cjs", + "Dockerfile", "$TURBO_ROOT$/shared/.prettierignore", "$TURBO_ROOT$/shared/stylelintrc.shared.json", - "$TURBO_ROOT$/tsconfig.eslint.json" + "$TURBO_ROOT$/packages/configs/**", + "src/**", + "tests/**", + "package.json", + "tsconfig.json" ] } }