| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
fix: pin every zod install to 4.6.7 (#8048) ## Summary - Bump direct `zod` dependencies from 4.3.6 to 4.6.7. - Force transitive installs onto 4.6.7 with an npm override, so botbuilder, botbuilder-core, botframework-connector, and botframework-schema no longer nest `zod@3.25.76`. - Restore Zod 3's removed `.nonstrict()` alias (it was `.strip()`) before the runner loads botbuilder, including the separate CJS copy Vitest uses. ## Test plan - [x] `npm ls zod` resolves only 4.6.7 - [x] `npm run test:unit -- packages/runner/lib/exec.unit.test.ts` (14 tests) - [x] Load a runner script that imports `botbuilder` and confirm it still executes Made with [Cursor](https://cursor.com) --------- Co-authored-by: Cursor <cursoragent@cursor.com> | 5 天前 | |
chore(lint): move import sorting to Prettier (#6582) ## Problem We're replacing ESLint with oxlint (NAN-5769). oxlint has no `import/order` equivalent — its maintainers deliberately defer import sorting to the formatter — so import ordering needs a new home before the linter swap. ## Solution Move import ordering to Prettier via `@ianvs/prettier-plugin-sort-imports`, configured to replicate the existing `import/order` grouping exactly: builtins → external → `@nangohq/*` → `@/*` + relative → type imports, blank lines between groups, alphabetised within. The `import/order` rule (and its now-pointless migrations override) is removed from the ESLint config. Doing this first — while ESLint still runs — means the change is verifiable in isolation: format-on-save behaviour is identical for developers, and CI's existing `prettier --check` + ESLint both still gate it. Two commits: - `chore(lint): move import sorting to Prettier` — the plugin + config (this is the one to actually review) - `style: sort imports across the codebase` — the mechanical 489-file reformat (skim only; import order changes only, no logic) Part of NAN-5769. Sub-issue: NAN-5808. ## Testing - `eslint . --quiet` passes clean (exit 0) on the reformatted code - Reformat is purely mechanical — only import grouping/order changed - Spot-checked plugin output against the old `import/order` grouping; identical | 4 个月前 | |
feat(cli): add createTool (NAN-7597) (#7914) NAN-7597 Adds `createTool` to the CLI and SDK. A tool compiles and deploys as a function with an http trigger, and its meta becomes function tags. `instructions` can be up to 1024 characters, while scopes and custom tags keep the short limits. An optional `name` overrides the file name. Stacked on #7903. <!-- This is an auto-generated description by cubic. --> <a href="https://cubic.dev/pr/NangoHQ/nango/pull/7914?utm_source=github" target="_blank" rel="noopener noreferrer" data-no-image-dialog="true"><picture><source media="(prefers-color-scheme: dark)" srcset="https://www.cubic.dev/buttons/review-in-cubic-dark.svg"><source media="(prefers-color-scheme: light)" srcset="https://www.cubic.dev/buttons/review-in-cubic-light.svg"><img alt="View guided diff" src="https://www.cubic.dev/buttons/review-in-cubic-light.svg"></picture></a> <!-- End of auto-generated description by cubic. --> | 16 天前 | |
fix: pin every zod install to 4.6.7 (#8048) ## Summary - Bump direct `zod` dependencies from 4.3.6 to 4.6.7. - Force transitive installs onto 4.6.7 with an npm override, so botbuilder, botbuilder-core, botframework-connector, and botframework-schema no longer nest `zod@3.25.76`. - Restore Zod 3's removed `.nonstrict()` alias (it was `.strip()`) before the runner loads botbuilder, including the separate CJS copy Vitest uses. ## Test plan - [x] `npm ls zod` resolves only 4.6.7 - [x] `npm run test:unit -- packages/runner/lib/exec.unit.test.ts` (14 tests) - [x] Load a runner script that imports `botbuilder` and confirm it still executes Made with [Cursor](https://cursor.com) --------- Co-authored-by: Cursor <cursoragent@cursor.com> | 5 天前 | |
feat(cli): expose createFunction as an experimental feature (#6714) I want to avoid long-lived feature branch, as well as being able to dogfood createFunction and submit/merge bitesize PRs. In order to achieve this objective I propose to expose `createFunction` as a CLI experimental export. Experimental package is accessible via explicit ``` import { createFunction } from 'nango/experimental' ``` but not visible via normal `nango` import in order to prevent customer to accidentally use or discover it. Also adding a experimental JSDoc comment annotation. <!-- This is an auto-generated description by cubic. --> <a href="https://cubic.dev/pr/NangoHQ/nango/pull/6714?utm_source=github" target="_blank" rel="noopener noreferrer" data-no-image-dialog="true"><picture><source media="(prefers-color-scheme: dark)" srcset="https://www.cubic.dev/buttons/review-in-cubic-dark.svg"><source media="(prefers-color-scheme: light)" srcset="https://www.cubic.dev/buttons/review-in-cubic-light.svg"><img alt="Review in cubic" src="https://www.cubic.dev/buttons/review-in-cubic-dark.svg"></picture></a> <!-- End of auto-generated description by cubic. --> | 3 个月前 | |
feat(cli): add createTool (NAN-7597) (#7914) NAN-7597 Adds `createTool` to the CLI and SDK. A tool compiles and deploys as a function with an http trigger, and its meta becomes function tags. `instructions` can be up to 1024 characters, while scopes and custom tags keep the short limits. An optional `name` overrides the file name. Stacked on #7903. <!-- This is an auto-generated description by cubic. --> <a href="https://cubic.dev/pr/NangoHQ/nango/pull/7914?utm_source=github" target="_blank" rel="noopener noreferrer" data-no-image-dialog="true"><picture><source media="(prefers-color-scheme: dark)" srcset="https://www.cubic.dev/buttons/review-in-cubic-dark.svg"><source media="(prefers-color-scheme: light)" srcset="https://www.cubic.dev/buttons/review-in-cubic-light.svg"><img alt="View guided diff" src="https://www.cubic.dev/buttons/review-in-cubic-light.svg"></picture></a> <!-- End of auto-generated description by cubic. --> | 16 天前 | |
feat(cli): add createTool (NAN-7597) (#7914) NAN-7597 Adds `createTool` to the CLI and SDK. A tool compiles and deploys as a function with an http trigger, and its meta becomes function tags. `instructions` can be up to 1024 characters, while scopes and custom tags keep the short limits. An optional `name` overrides the file name. Stacked on #7903. <!-- This is an auto-generated description by cubic. --> <a href="https://cubic.dev/pr/NangoHQ/nango/pull/7914?utm_source=github" target="_blank" rel="noopener noreferrer" data-no-image-dialog="true"><picture><source media="(prefers-color-scheme: dark)" srcset="https://www.cubic.dev/buttons/review-in-cubic-dark.svg"><source media="(prefers-color-scheme: light)" srcset="https://www.cubic.dev/buttons/review-in-cubic-light.svg"><img alt="View guided diff" src="https://www.cubic.dev/buttons/review-in-cubic-light.svg"></picture></a> <!-- End of auto-generated description by cubic. --> | 16 天前 | |
feat(cli): support mtls (#7325) ## Summary - Let the CLI present a client certificate when talking to a self-hosted Nango API behind mTLS, so customers no longer have to disable mTLS for `deploy` / `dryrun` / `pull`. - Configure it with `NANGO_CLI_TLS_CERT` (path to a PEM). A file that contains both cert and key is enough; `NANGO_CLI_TLS_KEY` / `NANGO_CLI_TLS_CA` cover split files and a private CA. - The same TLS agent is used on every CLI-to-API path (axios, fetch, and the Node SDK). Invalid cert/key pairs fail at load time. <!-- This is an auto-generated description by cubic. --> <a href="https://cubic.dev/pr/NangoHQ/nango/pull/7325?utm_source=github" target="_blank" rel="noopener noreferrer" data-no-image-dialog="true"><picture><source media="(prefers-color-scheme: dark)" srcset="https://www.cubic.dev/buttons/review-in-cubic-dark.svg"><source media="(prefers-color-scheme: light)" srcset="https://www.cubic.dev/buttons/review-in-cubic-light.svg"><img alt="Review in cubic" src="https://www.cubic.dev/buttons/review-in-cubic-dark.svg"></picture></a> <!-- End of auto-generated description by cubic. --> --------- Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> | 1 个月前 | |
feat(cli): add createTool (NAN-7597) (#7914) NAN-7597 Adds `createTool` to the CLI and SDK. A tool compiles and deploys as a function with an http trigger, and its meta becomes function tags. `instructions` can be up to 1024 characters, while scopes and custom tags keep the short limits. An optional `name` overrides the file name. Stacked on #7903. <!-- This is an auto-generated description by cubic. --> <a href="https://cubic.dev/pr/NangoHQ/nango/pull/7914?utm_source=github" target="_blank" rel="noopener noreferrer" data-no-image-dialog="true"><picture><source media="(prefers-color-scheme: dark)" srcset="https://www.cubic.dev/buttons/review-in-cubic-dark.svg"><source media="(prefers-color-scheme: light)" srcset="https://www.cubic.dev/buttons/review-in-cubic-light.svg"><img alt="View guided diff" src="https://www.cubic.dev/buttons/review-in-cubic-light.svg"></picture></a> <!-- End of auto-generated description by cubic. --> | 16 天前 | |
fix(cli): derive integrationId from path root (#7072) Legacy script were assumed to live at `<integrationId>/syncs/<name>.ts`,so `integrationId` was read from a fixed depth in the path. Functions are allowed to be nested at the root or nested into subfolders. With this commit, the compiler derives the integrationId from the first segment of the path and carry the path into functions.json for the deploy to point at the correct location <!-- This is an auto-generated description by cubic. --> <a href="https://cubic.dev/pr/NangoHQ/nango/pull/7072?utm_source=github" target="_blank" rel="noopener noreferrer" data-no-image-dialog="true"><picture><source media="(prefers-color-scheme: dark)" srcset="https://www.cubic.dev/buttons/review-in-cubic-dark.svg"><source media="(prefers-color-scheme: light)" srcset="https://www.cubic.dev/buttons/review-in-cubic-light.svg"><img alt="Review in cubic" src="https://www.cubic.dev/buttons/review-in-cubic-dark.svg"></picture></a> <!-- End of auto-generated description by cubic. --> | 2 个月前 | |
chore(lint): move import sorting to Prettier (#6582) ## Problem We're replacing ESLint with oxlint (NAN-5769). oxlint has no `import/order` equivalent — its maintainers deliberately defer import sorting to the formatter — so import ordering needs a new home before the linter swap. ## Solution Move import ordering to Prettier via `@ianvs/prettier-plugin-sort-imports`, configured to replicate the existing `import/order` grouping exactly: builtins → external → `@nangohq/*` → `@/*` + relative → type imports, blank lines between groups, alphabetised within. The `import/order` rule (and its now-pointless migrations override) is removed from the ESLint config. Doing this first — while ESLint still runs — means the change is verifiable in isolation: format-on-save behaviour is identical for developers, and CI's existing `prettier --check` + ESLint both still gate it. Two commits: - `chore(lint): move import sorting to Prettier` — the plugin + config (this is the one to actually review) - `style: sort imports across the codebase` — the mechanical 489-file reformat (skim only; import order changes only, no logic) Part of NAN-5769. Sub-issue: NAN-5808. ## Testing - `eslint . --quiet` passes clean (exit 0) on the reformatted code - Reformat is purely mechanical — only import grouping/order changed - Spot-checked plugin output against the old `import/order` grouping; identical | 4 个月前 | |
feat(cli): build and send json-schema per function (#5572) > Function aka "flow", "sync_config" We currently generate a "global" json schema with all the models in the integration folders and save it to `schema.json`. When deploying / generating docs / dry-running, we load that big schema and use it as the source of truth. We send the full json-schema for deploying, and let the server filter the schemas for each function (aka. sync_config, flow). Furthermore, we take a very convoluted path to generate `schema.json`: - Convert zod schemas to `NangoModel` - Use `NangoModel` to generate `schema.ts` - Use `ts-to-json-schema-generator` to generate `schema.json` from `schema.ts` In my previous PR, I made the server accept function-level json-schemas. Each function can now be sent with it's own json-schema, as opposed to a single top-level json-schema in `POST /sync/deploy`. This PR: - Keeps the generation of `schema.ts` and `schema.json` AS IS (adds a deprecation notice comment on `schema.ts`) - Updates zod versions in the `cli` and `runner-sdk` packages to v4.3.6 (currently latest) - Also updates zod version in `cli/example/package.json`. This is what will make our customers packages be updated as soon as a cli command is run. - Leverages `z.toJsonSchema` (introduced in zod v4) to generate json-schemas directly from the zod schemas. - Adds the json-schemas to each function in the payload. - Stops sending top-level json-schema with all models - Modifies dry-run and generate:docs to use these function-level json-schemas instead of `schema.json`. - These new json-schemas are generated and kept in-memory. They don't generate any artifacts. Every run of `deploy`, `dry-run` and `generate:docs` will re-generate them in-memory for use. The source is the compiled `cjs` files, and not the typescript files themselves. <!-- Summary by @propel-code-bot --> --- It also adjusts parsing and validation types to allow optional per-function json_schema fields and updates related tests/snapshots to match the new schema format expectations. --- *This summary was automatically generated by @propel-code-bot* | 7 个月前 | |
feat(cli): build and send json-schema per function (#5572) > Function aka "flow", "sync_config" We currently generate a "global" json schema with all the models in the integration folders and save it to `schema.json`. When deploying / generating docs / dry-running, we load that big schema and use it as the source of truth. We send the full json-schema for deploying, and let the server filter the schemas for each function (aka. sync_config, flow). Furthermore, we take a very convoluted path to generate `schema.json`: - Convert zod schemas to `NangoModel` - Use `NangoModel` to generate `schema.ts` - Use `ts-to-json-schema-generator` to generate `schema.json` from `schema.ts` In my previous PR, I made the server accept function-level json-schemas. Each function can now be sent with it's own json-schema, as opposed to a single top-level json-schema in `POST /sync/deploy`. This PR: - Keeps the generation of `schema.ts` and `schema.json` AS IS (adds a deprecation notice comment on `schema.ts`) - Updates zod versions in the `cli` and `runner-sdk` packages to v4.3.6 (currently latest) - Also updates zod version in `cli/example/package.json`. This is what will make our customers packages be updated as soon as a cli command is run. - Leverages `z.toJsonSchema` (introduced in zod v4) to generate json-schemas directly from the zod schemas. - Adds the json-schemas to each function in the payload. - Stops sending top-level json-schema with all models - Modifies dry-run and generate:docs to use these function-level json-schemas instead of `schema.json`. - These new json-schemas are generated and kept in-memory. They don't generate any artifacts. Every run of `deploy`, `dry-run` and `generate:docs` will re-generate them in-memory for use. The source is the compiled `cjs` files, and not the typescript files themselves. <!-- Summary by @propel-code-bot --> --- It also adjusts parsing and validation types to allow optional per-function json_schema fields and updates related tests/snapshots to match the new schema format expectations. --- *This summary was automatically generated by @propel-code-bot* | 7 个月前 | |
fix(cli): derive integrationId from path root (#7072) Legacy script were assumed to live at `<integrationId>/syncs/<name>.ts`,so `integrationId` was read from a fixed depth in the path. Functions are allowed to be nested at the root or nested into subfolders. With this commit, the compiler derives the integrationId from the first segment of the path and carry the path into functions.json for the deploy to point at the correct location <!-- This is an auto-generated description by cubic. --> <a href="https://cubic.dev/pr/NangoHQ/nango/pull/7072?utm_source=github" target="_blank" rel="noopener noreferrer" data-no-image-dialog="true"><picture><source media="(prefers-color-scheme: dark)" srcset="https://www.cubic.dev/buttons/review-in-cubic-dark.svg"><source media="(prefers-color-scheme: light)" srcset="https://www.cubic.dev/buttons/review-in-cubic-light.svg"><img alt="Review in cubic" src="https://www.cubic.dev/buttons/review-in-cubic-dark.svg"></picture></a> <!-- End of auto-generated description by cubic. --> | 2 个月前 | |
fix(cli): derive integrationId from path root (#7072) Legacy script were assumed to live at `<integrationId>/syncs/<name>.ts`,so `integrationId` was read from a fixed depth in the path. Functions are allowed to be nested at the root or nested into subfolders. With this commit, the compiler derives the integrationId from the first segment of the path and carry the path into functions.json for the deploy to point at the correct location <!-- This is an auto-generated description by cubic. --> <a href="https://cubic.dev/pr/NangoHQ/nango/pull/7072?utm_source=github" target="_blank" rel="noopener noreferrer" data-no-image-dialog="true"><picture><source media="(prefers-color-scheme: dark)" srcset="https://www.cubic.dev/buttons/review-in-cubic-dark.svg"><source media="(prefers-color-scheme: light)" srcset="https://www.cubic.dev/buttons/review-in-cubic-light.svg"><img alt="Review in cubic" src="https://www.cubic.dev/buttons/review-in-cubic-dark.svg"></picture></a> <!-- End of auto-generated description by cubic. --> | 2 个月前 | |
feat(cli): add createTool (NAN-7597) (#7914) NAN-7597 Adds `createTool` to the CLI and SDK. A tool compiles and deploys as a function with an http trigger, and its meta becomes function tags. `instructions` can be up to 1024 characters, while scopes and custom tags keep the short limits. An optional `name` overrides the file name. Stacked on #7903. <!-- This is an auto-generated description by cubic. --> <a href="https://cubic.dev/pr/NangoHQ/nango/pull/7914?utm_source=github" target="_blank" rel="noopener noreferrer" data-no-image-dialog="true"><picture><source media="(prefers-color-scheme: dark)" srcset="https://www.cubic.dev/buttons/review-in-cubic-dark.svg"><source media="(prefers-color-scheme: light)" srcset="https://www.cubic.dev/buttons/review-in-cubic-light.svg"><img alt="View guided diff" src="https://www.cubic.dev/buttons/review-in-cubic-light.svg"></picture></a> <!-- End of auto-generated description by cubic. --> | 16 天前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 5 天前 | ||
| 4 个月前 | ||
| 16 天前 | ||
| 5 天前 | ||
| 3 个月前 | ||
| 16 天前 | ||
| 16 天前 | ||
| 1 个月前 | ||
| 16 天前 | ||
| 2 个月前 | ||
| 4 个月前 | ||
| 7 个月前 | ||
| 7 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 16 天前 |