From 6f88c1a64bdb3c5771bc37ca2b43d8c5dbca1514 Mon Sep 17 00:00:00 2001 From: Jason Endo Date: Tue, 15 Apr 2025 13:18:02 -0700 Subject: [PATCH 1/8] Add DEBUG mode --- package.json | 4 +- packages/sdk/src/shared/index.ts | 40 ++++- packages/sdk/src/shared/shims.d.ts | 6 + packages/sdk/tsconfig.browser.json | 1 + pnpm-lock.yaml | 278 +++++++++++++++++++---------- 5 files changed, 227 insertions(+), 102 deletions(-) create mode 100644 packages/sdk/src/shared/shims.d.ts diff --git a/package.json b/package.json index 7b8a6c0668de6..dc0c2f90b753a 100644 --- a/package.json +++ b/package.json @@ -41,9 +41,11 @@ "devDependencies": { "@eslint/eslintrc": "^3.2.0", "@eslint/js": "^9.15.0", + "@next/eslint-plugin-next": "^14.2.5", "@pipedream/types": "0.1.4", "@tsconfig/node14": "^1.0.1", "@types/jest": "^27.4.1", + "@types/node": "^20.17.6", "@typescript-eslint/eslint-plugin": "^8", "@typescript-eslint/parser": "^8", "eslint": "^8", @@ -59,7 +61,6 @@ "husky": "^7.0.4", "jest": "^29.7.0", "lint-staged": "^12.3.4", - "@next/eslint-plugin-next": "^14.2.5", "pnpm": "9.14.2", "putout": ">=36", "renamer": "^4.0.0", @@ -77,7 +78,6 @@ "@actions/core": "^1.10.0", "@pipedream/platform": "^1.5.1", "@sentry/node": "^7.7.0", - "@types/node": "^20.17.6", "crypto": "^1.0.1", "linkup-sdk": "^1.0.3", "uuid": "^8.3.2", diff --git a/packages/sdk/src/shared/index.ts b/packages/sdk/src/shared/index.ts index 1978b7cf7d435..bc0fb9808136f 100644 --- a/packages/sdk/src/shared/index.ts +++ b/packages/sdk/src/shared/index.ts @@ -847,6 +847,17 @@ export interface AsyncRequestOptions extends RequestOptions { body: { async_handle: string; } & Required; } +export function DEBUG(...args: any[]) { + if ( + typeof process !== "undefined" && + typeof process.env !== "undefined" && + process.env.DEBUG === "true" + ) { + console.log("[DEBUG]", ...args); + } +} + + /** * A client for interacting with the Pipedream Connect API on the server-side. */ @@ -905,6 +916,8 @@ export abstract class BaseClient { ...fetchOpts } = opts; + + const url = new URL(`${baseURL}${path}`); if (params) { @@ -958,10 +971,13 @@ export abstract class BaseClient { ) { requestOptions.body = processedBody; } + DEBUG("makeRequest") + DEBUG("url: ", url.toString()) + DEBUG("requestOptions: ", requestOptions) const response: Response = await fetch(url.toString(), requestOptions); - if (!response.ok) { +/* if (!response.ok) { const errorBody = await response.text(); throw new Error( `HTTP error! status: ${response.status}, body: ${errorBody}`, @@ -974,7 +990,27 @@ export abstract class BaseClient { return (await response.json()) as T; } - return (await response.text()) as unknown as T; + return (await response.text()) as unknown as T;*/ + const rawBody = await response.text(); + DEBUG("Response status:", response.status); + DEBUG("Response body:", rawBody); + + if (!response.ok) { + throw new Error(`HTTP error! status: ${response.status}, body: ${rawBody}`); + } + + const contentType = response.headers.get("Content-Type"); + if (contentType && contentType.includes("application/json")) { + try { + const json = JSON.parse(rawBody); + DEBUG("Parsed JSON:", json); + return json as T; + } catch (err) { + DEBUG("Failed to parse JSON, returning raw body as fallback."); + } + } + + return rawBody as unknown as T; } protected abstract authHeaders(): string | Promise; diff --git a/packages/sdk/src/shared/shims.d.ts b/packages/sdk/src/shared/shims.d.ts new file mode 100644 index 0000000000000..0eb060f4812c5 --- /dev/null +++ b/packages/sdk/src/shared/shims.d.ts @@ -0,0 +1,6 @@ + +declare const process: { + env?: { + [key: string]: string | undefined; + }; +} | undefined; diff --git a/packages/sdk/tsconfig.browser.json b/packages/sdk/tsconfig.browser.json index ecb99678859d1..45ee1b87ce23d 100644 --- a/packages/sdk/tsconfig.browser.json +++ b/packages/sdk/tsconfig.browser.json @@ -14,6 +14,7 @@ "allowJs": true }, "include": [ + "src/shared/shims.d.ts", "src/browser/**/*" ], "exclude": [ diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e235e590b15b2..1eb271c940370 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -17,9 +17,6 @@ importers: '@sentry/node': specifier: ^7.7.0 version: 7.120.0 - '@types/node': - specifier: ^20.17.6 - version: 20.17.6 crypto: specifier: ^1.0.1 version: 1.0.1 @@ -51,6 +48,9 @@ importers: '@types/jest': specifier: ^27.4.1 version: 27.5.2 + '@types/node': + specifier: ^20.17.6 + version: 20.17.6 '@typescript-eslint/eslint-plugin': specifier: ^8 version: 8.15.0(@typescript-eslint/parser@8.15.0(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1)(typescript@5.6.3) @@ -107,7 +107,7 @@ importers: version: 4.0.0 ts-jest: specifier: ^29.1.1 - version: 29.2.5(@babel/core@8.0.0-alpha.13)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@8.0.0-alpha.13))(jest@29.7.0(@types/node@20.17.6)(babel-plugin-macros@3.1.0))(typescript@5.6.3) + version: 29.2.5(@babel/core@7.26.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(jest@29.7.0(@types/node@20.17.6)(babel-plugin-macros@3.1.0))(typescript@5.6.3) tsc-esm-fix: specifier: ^2.18.0 version: 2.20.27 @@ -2715,8 +2715,7 @@ importers: specifier: ^1.5.1 version: 1.6.6 - components/cogmento: - specifiers: {} + components/cogmento: {} components/cohere_platform: dependencies: @@ -8079,8 +8078,7 @@ importers: components/microsoft_viva_goals: {} - components/microsoft_word: - specifiers: {} + components/microsoft_word: {} components/microsofttodo: dependencies: @@ -14848,8 +14846,7 @@ importers: specifier: ^1.5.1 version: 1.6.6 - components/zoho_fms: - specifiers: {} + components/zoho_fms: {} components/zoho_forms: dependencies: @@ -15154,7 +15151,7 @@ importers: version: 1.3.3 next: specifier: 15.0.3 - version: 15.0.3(@babel/core@8.0.0-alpha.13)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106) + version: 15.0.3(@babel/core@7.26.0)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106) react: specifier: 19.0.0-rc-66855b96-20241106 version: 19.0.0-rc-66855b96-20241106 @@ -15200,8 +15197,8 @@ importers: specifier: ^29.5.13 version: 29.5.14 '@types/node': - specifier: ^20.17.6 - version: 20.17.6 + specifier: ^20.17.30 + version: 20.17.30 '@types/rails__actioncable': specifier: ^6.1.11 version: 6.1.11 @@ -15210,7 +15207,7 @@ importers: version: 8.5.13 jest: specifier: ^29.7.0 - version: 29.7.0(@types/node@20.17.6)(babel-plugin-macros@3.1.0) + version: 29.7.0(@types/node@20.17.30)(babel-plugin-macros@3.1.0) lodash.isequal: specifier: ^4.5.0 version: 4.5.0 @@ -15219,10 +15216,10 @@ importers: version: 3.1.7 ts-jest: specifier: ^29.2.5 - version: 29.2.5(@babel/core@7.26.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(esbuild@0.24.2)(jest@29.7.0(@types/node@20.17.6)(babel-plugin-macros@3.1.0))(typescript@5.7.2) + version: 29.2.5(@babel/core@8.0.0-alpha.13)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@8.0.0-alpha.13))(esbuild@0.24.2)(jest@29.7.0(@types/node@20.17.30)(babel-plugin-macros@3.1.0))(typescript@5.7.2) tsup: specifier: ^8.3.6 - version: 8.3.6(@microsoft/api-extractor@7.47.12(@types/node@20.17.6))(jiti@1.21.6)(postcss@8.4.49)(typescript@5.7.2)(yaml@2.6.1) + version: 8.3.6(@microsoft/api-extractor@7.47.12(@types/node@20.17.30))(jiti@1.21.6)(postcss@8.4.49)(typescript@5.7.2)(yaml@2.6.1) typescript: specifier: ^5.6 version: 5.7.2 @@ -19962,6 +19959,9 @@ packages: '@types/node@18.19.80': resolution: {integrity: sha512-kEWeMwMeIvxYkeg1gTc01awpwLbfMRZXdIhwRcakd/KlK53jmRC26LqcbIt7fnAQTu5GzlnWmzA3H6+l1u6xxQ==} + '@types/node@20.17.30': + resolution: {integrity: sha512-7zf4YyHA+jvBNfVrk2Gtvs6x7E8V+YDW05bNfG2XkWDJfYRXrTiP/DsB2zSYTaHX0bGIujTBQdMVAhb+j7mwpg==} + '@types/node@20.17.6': resolution: {integrity: sha512-VEI7OdvK2wP7XHnsuXbAJnEpEkF6NjSN45QJlL4VGqZSXsnicpesdTWsg9RISeSdYd3yeRj/y3k5KGjUXYnFwQ==} @@ -31340,7 +31340,7 @@ snapshots: '@babel/traverse': 7.25.9 '@babel/types': 7.26.0 convert-source-map: 2.0.0 - debug: 4.3.7(supports-color@9.4.0) + debug: 4.3.7(supports-color@5.5.0) gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 @@ -32594,7 +32594,7 @@ snapshots: '@eslint/eslintrc@3.2.0': dependencies: ajv: 6.12.6 - debug: 4.3.7(supports-color@9.4.0) + debug: 4.3.7(supports-color@5.5.0) espree: 10.3.0 globals: 14.0.0 ignore: 5.3.2 @@ -33024,7 +33024,7 @@ snapshots: '@grpc/grpc-js@1.8.22': dependencies: '@grpc/proto-loader': 0.7.13 - '@types/node': 20.17.6 + '@types/node': 20.17.30 '@grpc/proto-loader@0.7.13': dependencies: @@ -33189,7 +33189,7 @@ snapshots: '@jest/console@29.7.0': dependencies: '@jest/types': 29.6.3 - '@types/node': 20.17.6 + '@types/node': 20.17.30 chalk: 4.1.2 jest-message-util: 29.7.0 jest-util: 29.7.0 @@ -33202,14 +33202,14 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.17.6 + '@types/node': 20.17.30 ansi-escapes: 4.3.2 chalk: 4.1.2 ci-info: 3.9.0 exit: 0.1.2 graceful-fs: 4.2.11 jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@20.17.6)(babel-plugin-macros@3.1.0) + jest-config: 29.7.0(@types/node@20.17.30)(babel-plugin-macros@3.1.0) jest-haste-map: 29.7.0 jest-message-util: 29.7.0 jest-regex-util: 29.6.3 @@ -33234,7 +33234,7 @@ snapshots: dependencies: '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.17.6 + '@types/node': 20.17.30 jest-mock: 29.7.0 '@jest/expect-utils@29.7.0': @@ -33252,7 +33252,7 @@ snapshots: dependencies: '@jest/types': 29.6.3 '@sinonjs/fake-timers': 10.3.0 - '@types/node': 20.17.6 + '@types/node': 20.17.30 jest-message-util: 29.7.0 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -33274,7 +33274,7 @@ snapshots: '@jest/transform': 29.7.0 '@jest/types': 29.6.3 '@jridgewell/trace-mapping': 0.3.25 - '@types/node': 20.17.6 + '@types/node': 20.17.30 chalk: 4.1.2 collect-v8-coverage: 1.0.2 exit: 0.1.2 @@ -33344,7 +33344,7 @@ snapshots: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 20.17.6 + '@types/node': 20.17.30 '@types/yargs': 17.0.33 chalk: 4.1.2 @@ -33493,11 +33493,11 @@ snapshots: dependencies: langium: 3.0.0 - '@microsoft/api-extractor-model@7.29.9(@types/node@20.17.6)': + '@microsoft/api-extractor-model@7.29.9(@types/node@20.17.30)': dependencies: '@microsoft/tsdoc': 0.15.0 '@microsoft/tsdoc-config': 0.17.0 - '@rushstack/node-core-library': 5.10.0(@types/node@20.17.6) + '@rushstack/node-core-library': 5.10.0(@types/node@20.17.30) transitivePeerDependencies: - '@types/node' optional: true @@ -33510,15 +33510,15 @@ snapshots: transitivePeerDependencies: - '@types/node' - '@microsoft/api-extractor@7.47.12(@types/node@20.17.6)': + '@microsoft/api-extractor@7.47.12(@types/node@20.17.30)': dependencies: - '@microsoft/api-extractor-model': 7.29.9(@types/node@20.17.6) + '@microsoft/api-extractor-model': 7.29.9(@types/node@20.17.30) '@microsoft/tsdoc': 0.15.0 '@microsoft/tsdoc-config': 0.17.0 - '@rushstack/node-core-library': 5.10.0(@types/node@20.17.6) + '@rushstack/node-core-library': 5.10.0(@types/node@20.17.30) '@rushstack/rig-package': 0.5.3 - '@rushstack/terminal': 0.14.3(@types/node@20.17.6) - '@rushstack/ts-command-line': 4.23.1(@types/node@20.17.6) + '@rushstack/terminal': 0.14.3(@types/node@20.17.30) + '@rushstack/ts-command-line': 4.23.1(@types/node@20.17.30) lodash: 4.17.21 minimatch: 3.0.8 resolve: 1.22.8 @@ -34545,6 +34545,8 @@ snapshots: '@putout/operator-filesystem': 5.0.0(putout@36.13.1(eslint@8.57.1)(typescript@5.6.3)) '@putout/operator-json': 2.2.0 putout: 36.13.1(eslint@8.57.1)(typescript@5.6.3) + transitivePeerDependencies: + - supports-color '@putout/operator-regexp@1.0.0(putout@36.13.1(eslint@8.57.1)(typescript@5.6.3))': dependencies: @@ -35241,7 +35243,7 @@ snapshots: '@rushstack/eslint-patch@1.10.4': {} - '@rushstack/node-core-library@5.10.0(@types/node@20.17.6)': + '@rushstack/node-core-library@5.10.0(@types/node@20.17.30)': dependencies: ajv: 8.13.0 ajv-draft-04: 1.0.0(ajv@8.13.0) @@ -35252,7 +35254,7 @@ snapshots: resolve: 1.22.8 semver: 7.5.4 optionalDependencies: - '@types/node': 20.17.6 + '@types/node': 20.17.30 optional: true '@rushstack/node-core-library@5.10.0(@types/node@22.10.2)': @@ -35273,12 +35275,12 @@ snapshots: resolve: 1.22.8 strip-json-comments: 3.1.1 - '@rushstack/terminal@0.14.3(@types/node@20.17.6)': + '@rushstack/terminal@0.14.3(@types/node@20.17.30)': dependencies: - '@rushstack/node-core-library': 5.10.0(@types/node@20.17.6) + '@rushstack/node-core-library': 5.10.0(@types/node@20.17.30) supports-color: 8.1.1 optionalDependencies: - '@types/node': 20.17.6 + '@types/node': 20.17.30 optional: true '@rushstack/terminal@0.14.3(@types/node@22.10.2)': @@ -35288,9 +35290,9 @@ snapshots: optionalDependencies: '@types/node': 22.10.2 - '@rushstack/ts-command-line@4.23.1(@types/node@20.17.6)': + '@rushstack/ts-command-line@4.23.1(@types/node@20.17.30)': dependencies: - '@rushstack/terminal': 0.14.3(@types/node@20.17.6) + '@rushstack/terminal': 0.14.3(@types/node@20.17.30) '@types/argparse': 1.0.38 argparse: 1.0.10 string-argv: 0.3.2 @@ -35430,11 +35432,11 @@ snapshots: '@slack/logger@2.0.0': dependencies: - '@types/node': 20.17.6 + '@types/node': 20.17.30 '@slack/logger@4.0.0': dependencies: - '@types/node': 20.17.6 + '@types/node': 20.17.30 '@slack/types@1.10.0': {} @@ -36231,20 +36233,20 @@ snapshots: '@types/body-parser@1.19.5': dependencies: '@types/connect': 3.4.38 - '@types/node': 20.17.6 + '@types/node': 20.17.30 '@types/cacheable-request@6.0.3': dependencies: '@types/http-cache-semantics': 4.0.4 '@types/keyv': 3.1.4 - '@types/node': 20.17.6 + '@types/node': 20.17.30 '@types/responselike': 1.0.3 '@types/caseless@0.12.5': {} '@types/connect@3.4.38': dependencies: - '@types/node': 20.17.6 + '@types/node': 20.17.30 '@types/d3-array@3.2.1': {} @@ -36369,7 +36371,7 @@ snapshots: '@types/duplexify@3.6.4': dependencies: - '@types/node': 20.17.6 + '@types/node': 20.17.30 '@types/estree-jsx@1.0.5': dependencies: @@ -36379,7 +36381,7 @@ snapshots: '@types/express-serve-static-core@4.19.6': dependencies: - '@types/node': 20.17.6 + '@types/node': 20.17.30 '@types/qs': 6.9.17 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 @@ -36401,16 +36403,16 @@ snapshots: '@types/glob@7.2.0': dependencies: '@types/minimatch': 5.1.2 - '@types/node': 20.17.6 + '@types/node': 20.17.30 '@types/glob@8.1.0': dependencies: '@types/minimatch': 5.1.2 - '@types/node': 20.17.6 + '@types/node': 20.17.30 '@types/graceful-fs@4.1.9': dependencies: - '@types/node': 20.17.6 + '@types/node': 20.17.30 '@types/hast@3.0.4': dependencies: @@ -36422,7 +36424,7 @@ snapshots: '@types/is-stream@1.1.0': dependencies: - '@types/node': 20.17.6 + '@types/node': 20.17.30 '@types/isomorphic-fetch@0.0.35': {} @@ -36452,11 +36454,11 @@ snapshots: '@types/jsonwebtoken@9.0.0': dependencies: - '@types/node': 20.17.6 + '@types/node': 20.17.30 '@types/jsonwebtoken@9.0.7': dependencies: - '@types/node': 20.17.6 + '@types/node': 20.17.30 '@types/jssha@2.0.0': {} @@ -36464,7 +36466,7 @@ snapshots: '@types/keyv@3.1.4': dependencies: - '@types/node': 20.17.6 + '@types/node': 20.17.30 '@types/linkify-it@5.0.0': {} @@ -36530,6 +36532,10 @@ snapshots: dependencies: undici-types: 5.26.5 + '@types/node@20.17.30': + dependencies: + undici-types: 6.19.8 + '@types/node@20.17.6': dependencies: undici-types: 6.19.8 @@ -36544,7 +36550,7 @@ snapshots: '@types/opossum@4.1.1': dependencies: - '@types/node': 20.17.6 + '@types/node': 20.17.30 '@types/parse-json@4.0.2': {} @@ -36573,40 +36579,40 @@ snapshots: '@types/readable-stream@4.0.18': dependencies: - '@types/node': 20.17.6 + '@types/node': 20.17.30 safe-buffer: 5.1.2 '@types/request@2.48.12': dependencies: '@types/caseless': 0.12.5 - '@types/node': 20.17.6 + '@types/node': 20.17.30 '@types/tough-cookie': 4.0.5 form-data: 2.5.2 '@types/responselike@1.0.3': dependencies: - '@types/node': 20.17.6 + '@types/node': 20.17.30 '@types/retry@0.12.0': {} '@types/rimraf@3.0.2': dependencies: '@types/glob': 8.1.0 - '@types/node': 20.17.6 + '@types/node': 20.17.30 '@types/sax@1.2.7': dependencies: - '@types/node': 20.17.6 + '@types/node': 20.17.30 '@types/send@0.17.4': dependencies: '@types/mime': 1.3.5 - '@types/node': 20.17.6 + '@types/node': 20.17.30 '@types/serve-static@1.15.7': dependencies: '@types/http-errors': 2.0.4 - '@types/node': 20.17.6 + '@types/node': 20.17.30 '@types/send': 0.17.4 '@types/source-map@0.5.7': @@ -36615,7 +36621,7 @@ snapshots: '@types/sshpk@1.10.3': dependencies: - '@types/node': 20.17.6 + '@types/node': 20.17.30 '@types/stack-utils@2.0.3': {} @@ -36638,16 +36644,16 @@ snapshots: '@types/whatwg-url@8.2.2': dependencies: - '@types/node': 20.17.6 + '@types/node': 20.17.30 '@types/webidl-conversions': 7.0.3 '@types/ws@8.5.13': dependencies: - '@types/node': 20.17.6 + '@types/node': 20.17.30 '@types/ws@8.5.3': dependencies: - '@types/node': 20.17.6 + '@types/node': 20.17.30 '@types/yargs-parser@21.0.3': {} @@ -36657,7 +36663,7 @@ snapshots: '@types/yauzl@2.10.3': dependencies: - '@types/node': 20.17.6 + '@types/node': 20.17.30 optional: true '@typescript-eslint/eslint-plugin@8.15.0(@typescript-eslint/parser@8.15.0(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1)(typescript@5.6.3)': @@ -36684,7 +36690,7 @@ snapshots: '@typescript-eslint/types': 8.15.0 '@typescript-eslint/typescript-estree': 8.15.0(typescript@5.6.3) '@typescript-eslint/visitor-keys': 8.15.0 - debug: 4.3.7(supports-color@9.4.0) + debug: 4.3.7(supports-color@5.5.0) eslint: 8.57.1 optionalDependencies: typescript: 5.6.3 @@ -38309,6 +38315,21 @@ snapshots: - supports-color - ts-node + create-jest@29.7.0(@types/node@20.17.30)(babel-plugin-macros@3.1.0): + dependencies: + '@jest/types': 29.6.3 + chalk: 4.1.2 + exit: 0.1.2 + graceful-fs: 4.2.11 + jest-config: 29.7.0(@types/node@20.17.30)(babel-plugin-macros@3.1.0) + jest-util: 29.7.0 + prompts: 2.4.2 + transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - supports-color + - ts-node + create-jest@29.7.0(@types/node@20.17.6)(babel-plugin-macros@3.1.0): dependencies: '@jest/types': 29.6.3 @@ -39572,7 +39593,7 @@ snapshots: ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.6 - debug: 4.3.7(supports-color@9.4.0) + debug: 4.3.7(supports-color@5.5.0) doctrine: 3.0.0 escape-string-regexp: 4.0.0 eslint-scope: 7.2.2 @@ -41264,7 +41285,7 @@ snapshots: https-proxy-agent@5.0.1: dependencies: agent-base: 6.0.2 - debug: 4.3.7(supports-color@9.4.0) + debug: 4.3.7(supports-color@5.5.0) transitivePeerDependencies: - supports-color @@ -41784,7 +41805,7 @@ snapshots: '@jest/expect': 29.7.0 '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.17.6 + '@types/node': 20.17.30 chalk: 4.1.2 co: 4.6.0 dedent: 1.5.3(babel-plugin-macros@3.1.0) @@ -41823,6 +41844,25 @@ snapshots: - supports-color - ts-node + jest-cli@29.7.0(@types/node@20.17.30)(babel-plugin-macros@3.1.0): + dependencies: + '@jest/core': 29.7.0(babel-plugin-macros@3.1.0) + '@jest/test-result': 29.7.0 + '@jest/types': 29.6.3 + chalk: 4.1.2 + create-jest: 29.7.0(@types/node@20.17.30)(babel-plugin-macros@3.1.0) + exit: 0.1.2 + import-local: 3.2.0 + jest-config: 29.7.0(@types/node@20.17.30)(babel-plugin-macros@3.1.0) + jest-util: 29.7.0 + jest-validate: 29.7.0 + yargs: 17.7.2 + transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - supports-color + - ts-node + jest-cli@29.7.0(@types/node@20.17.6)(babel-plugin-macros@3.1.0): dependencies: '@jest/core': 29.7.0(babel-plugin-macros@3.1.0) @@ -41872,6 +41912,36 @@ snapshots: - babel-plugin-macros - supports-color + jest-config@29.7.0(@types/node@20.17.30)(babel-plugin-macros@3.1.0): + dependencies: + '@babel/core': 7.26.0 + '@jest/test-sequencer': 29.7.0 + '@jest/types': 29.6.3 + babel-jest: 29.7.0(@babel/core@7.26.0) + chalk: 4.1.2 + ci-info: 3.9.0 + deepmerge: 4.3.1 + glob: 7.2.3 + graceful-fs: 4.2.11 + jest-circus: 29.7.0(babel-plugin-macros@3.1.0) + jest-environment-node: 29.7.0 + jest-get-type: 29.6.3 + jest-regex-util: 29.6.3 + jest-resolve: 29.7.0 + jest-runner: 29.7.0 + jest-util: 29.7.0 + jest-validate: 29.7.0 + micromatch: 4.0.8 + parse-json: 5.2.0 + pretty-format: 29.7.0 + slash: 3.0.0 + strip-json-comments: 3.1.1 + optionalDependencies: + '@types/node': 20.17.30 + transitivePeerDependencies: + - babel-plugin-macros + - supports-color + jest-config@29.7.0(@types/node@20.17.6)(babel-plugin-macros@3.1.0): dependencies: '@babel/core': 7.26.0 @@ -41933,7 +42003,7 @@ snapshots: '@jest/environment': 29.7.0 '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.17.6 + '@types/node': 20.17.30 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -41945,7 +42015,7 @@ snapshots: dependencies: '@jest/types': 29.6.3 '@types/graceful-fs': 4.1.9 - '@types/node': 20.17.6 + '@types/node': 20.17.30 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 @@ -41991,7 +42061,7 @@ snapshots: jest-mock@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 20.17.6 + '@types/node': 20.17.30 jest-util: 29.7.0 jest-pnp-resolver@1.2.3(jest-resolve@29.7.0): @@ -42026,7 +42096,7 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.17.6 + '@types/node': 20.17.30 chalk: 4.1.2 emittery: 0.13.1 graceful-fs: 4.2.11 @@ -42054,7 +42124,7 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.17.6 + '@types/node': 20.17.30 chalk: 4.1.2 cjs-module-lexer: 1.4.1 collect-v8-coverage: 1.0.2 @@ -42100,7 +42170,7 @@ snapshots: jest-util@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 20.17.6 + '@types/node': 20.17.30 chalk: 4.1.2 ci-info: 3.9.0 graceful-fs: 4.2.11 @@ -42119,7 +42189,7 @@ snapshots: dependencies: '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.17.6 + '@types/node': 20.17.30 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.13.1 @@ -42128,7 +42198,7 @@ snapshots: jest-worker@29.7.0: dependencies: - '@types/node': 20.17.6 + '@types/node': 20.17.30 jest-util: 29.7.0 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -42145,6 +42215,18 @@ snapshots: - supports-color - ts-node + jest@29.7.0(@types/node@20.17.30)(babel-plugin-macros@3.1.0): + dependencies: + '@jest/core': 29.7.0(babel-plugin-macros@3.1.0) + '@jest/types': 29.6.3 + import-local: 3.2.0 + jest-cli: 29.7.0(@types/node@20.17.30)(babel-plugin-macros@3.1.0) + transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - supports-color + - ts-node + jest@29.7.0(@types/node@20.17.6)(babel-plugin-macros@3.1.0): dependencies: '@jest/core': 29.7.0(babel-plugin-macros@3.1.0) @@ -42596,7 +42678,7 @@ snapshots: dependencies: chalk: 5.3.0 commander: 12.1.0 - debug: 4.3.7(supports-color@9.4.0) + debug: 4.3.7(supports-color@5.5.0) execa: 8.0.1 lilconfig: 3.1.3 listr2: 8.2.5 @@ -42767,7 +42849,7 @@ snapshots: log4js@6.4.4: dependencies: date-format: 4.0.14 - debug: 4.3.7(supports-color@9.4.0) + debug: 4.3.7(supports-color@5.5.0) flatted: 3.3.2 rfdc: 1.4.1 streamroller: 3.1.5 @@ -43814,7 +43896,7 @@ snapshots: dependencies: '@tediousjs/connection-string': 0.5.0 commander: 11.1.0 - debug: 4.3.7(supports-color@9.4.0) + debug: 4.3.7(supports-color@5.5.0) rfdc: 1.4.1 tarn: 3.0.2 tedious: 16.7.1 @@ -43988,7 +44070,7 @@ snapshots: - '@babel/core' - babel-plugin-macros - next@15.0.3(@babel/core@8.0.0-alpha.13)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106): + next@15.0.3(@babel/core@7.26.0)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106): dependencies: '@next/env': 15.0.3 '@swc/counter': 0.1.3 @@ -43998,7 +44080,7 @@ snapshots: postcss: 8.4.31 react: 19.0.0-rc-66855b96-20241106 react-dom: 19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106) - styled-jsx: 5.1.6(@babel/core@8.0.0-alpha.13)(babel-plugin-macros@3.1.0)(react@19.0.0-rc-66855b96-20241106) + styled-jsx: 5.1.6(@babel/core@7.26.0)(babel-plugin-macros@3.1.0)(react@19.0.0-rc-66855b96-20241106) optionalDependencies: '@next/swc-darwin-arm64': 15.0.3 '@next/swc-darwin-x64': 15.0.3 @@ -45144,7 +45226,7 @@ snapshots: '@protobufjs/path': 1.1.2 '@protobufjs/pool': 1.1.0 '@protobufjs/utf8': 1.1.0 - '@types/node': 20.17.6 + '@types/node': 20.17.30 long: 5.2.3 protobufjs@7.4.0: @@ -45159,7 +45241,7 @@ snapshots: '@protobufjs/path': 1.1.2 '@protobufjs/pool': 1.1.0 '@protobufjs/utf8': 1.1.0 - '@types/node': 20.17.6 + '@types/node': 20.17.30 long: 5.2.3 proxy-agent@5.0.0: @@ -45409,7 +45491,7 @@ snapshots: ajv: 8.17.1 chalk: 5.3.0 ci-info: 4.1.0 - debug: 4.3.7(supports-color@9.4.0) + debug: 4.3.7(supports-color@5.5.0) deepmerge: 4.3.1 escalade: 3.2.0 fast-glob: 3.3.2 @@ -47053,12 +47135,12 @@ snapshots: '@babel/core': 8.0.0-alpha.13 babel-plugin-macros: 3.1.0 - styled-jsx@5.1.6(@babel/core@8.0.0-alpha.13)(babel-plugin-macros@3.1.0)(react@19.0.0-rc-66855b96-20241106): + styled-jsx@5.1.6(@babel/core@7.26.0)(babel-plugin-macros@3.1.0)(react@19.0.0-rc-66855b96-20241106): dependencies: client-only: 0.0.1 react: 19.0.0-rc-66855b96-20241106 optionalDependencies: - '@babel/core': 8.0.0-alpha.13 + '@babel/core': 7.26.0 babel-plugin-macros: 3.1.0 stylelint-config-recommended@14.0.1(stylelint@16.10.0(typescript@5.6.3)): @@ -47552,7 +47634,7 @@ snapshots: ts-interface-checker@0.1.13: {} - ts-jest@29.2.5(@babel/core@7.26.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(esbuild@0.24.2)(jest@29.7.0(@types/node@20.17.6)(babel-plugin-macros@3.1.0))(typescript@5.7.2): + ts-jest@29.2.5(@babel/core@7.26.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(jest@29.7.0(@types/node@20.17.6)(babel-plugin-macros@3.1.0))(typescript@5.6.3): dependencies: bs-logger: 0.2.6 ejs: 3.1.10 @@ -47563,33 +47645,33 @@ snapshots: lodash.memoize: 4.1.2 make-error: 1.3.6 semver: 7.6.3 - typescript: 5.7.2 + typescript: 5.6.3 yargs-parser: 21.1.1 optionalDependencies: '@babel/core': 7.26.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 babel-jest: 29.7.0(@babel/core@7.26.0) - esbuild: 0.24.2 - ts-jest@29.2.5(@babel/core@8.0.0-alpha.13)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@8.0.0-alpha.13))(jest@29.7.0(@types/node@20.17.6)(babel-plugin-macros@3.1.0))(typescript@5.6.3): + ts-jest@29.2.5(@babel/core@8.0.0-alpha.13)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@8.0.0-alpha.13))(esbuild@0.24.2)(jest@29.7.0(@types/node@20.17.30)(babel-plugin-macros@3.1.0))(typescript@5.7.2): dependencies: bs-logger: 0.2.6 ejs: 3.1.10 fast-json-stable-stringify: 2.1.0 - jest: 29.7.0(@types/node@20.17.6)(babel-plugin-macros@3.1.0) + jest: 29.7.0(@types/node@20.17.30)(babel-plugin-macros@3.1.0) jest-util: 29.7.0 json5: 2.2.3 lodash.memoize: 4.1.2 make-error: 1.3.6 semver: 7.6.3 - typescript: 5.6.3 + typescript: 5.7.2 yargs-parser: 21.1.1 optionalDependencies: '@babel/core': 8.0.0-alpha.13 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 babel-jest: 29.7.0(@babel/core@8.0.0-alpha.13) + esbuild: 0.24.2 tsc-esm-fix@2.20.27: dependencies: @@ -47637,7 +47719,7 @@ snapshots: tsutils: 2.29.0(typescript@5.7.2) typescript: 5.7.2 - tsup@8.3.6(@microsoft/api-extractor@7.47.12(@types/node@20.17.6))(jiti@1.21.6)(postcss@8.4.49)(typescript@5.7.2)(yaml@2.6.1): + tsup@8.3.6(@microsoft/api-extractor@7.47.12(@types/node@20.17.30))(jiti@1.21.6)(postcss@8.4.49)(typescript@5.7.2)(yaml@2.6.1): dependencies: bundle-require: 5.1.0(esbuild@0.24.2) cac: 6.7.14 @@ -47656,7 +47738,7 @@ snapshots: tinyglobby: 0.2.10 tree-kill: 1.2.2 optionalDependencies: - '@microsoft/api-extractor': 7.47.12(@types/node@20.17.6) + '@microsoft/api-extractor': 7.47.12(@types/node@20.17.30) postcss: 8.4.49 typescript: 5.7.2 transitivePeerDependencies: @@ -48209,7 +48291,7 @@ snapshots: '@volar/typescript': 2.4.10 '@vue/language-core': 2.1.6(typescript@5.7.2) compare-versions: 6.1.1 - debug: 4.3.7(supports-color@9.4.0) + debug: 4.3.7(supports-color@5.5.0) kolorist: 1.8.0 local-pkg: 0.5.1 magic-string: 0.30.13 From a862ea38a876ee3904d1b1f249384d0b4322afc6 Mon Sep 17 00:00:00 2001 From: Jason Endo Date: Tue, 15 Apr 2025 13:19:25 -0700 Subject: [PATCH 2/8] pnpm-lock --- pnpm-lock.yaml | 50 +++++++++++++++++++++++++------------------------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1eb271c940370..7f84c108c0bc3 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -107,7 +107,7 @@ importers: version: 4.0.0 ts-jest: specifier: ^29.1.1 - version: 29.2.5(@babel/core@7.26.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(jest@29.7.0(@types/node@20.17.6)(babel-plugin-macros@3.1.0))(typescript@5.6.3) + version: 29.2.5(@babel/core@8.0.0-alpha.13)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@8.0.0-alpha.13))(jest@29.7.0(@types/node@20.17.6)(babel-plugin-macros@3.1.0))(typescript@5.6.3) tsc-esm-fix: specifier: ^2.18.0 version: 2.20.27 @@ -15151,7 +15151,7 @@ importers: version: 1.3.3 next: specifier: 15.0.3 - version: 15.0.3(@babel/core@7.26.0)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106) + version: 15.0.3(@babel/core@8.0.0-alpha.13)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106) react: specifier: 19.0.0-rc-66855b96-20241106 version: 19.0.0-rc-66855b96-20241106 @@ -15197,7 +15197,7 @@ importers: specifier: ^29.5.13 version: 29.5.14 '@types/node': - specifier: ^20.17.30 + specifier: ^20.17.6 version: 20.17.30 '@types/rails__actioncable': specifier: ^6.1.11 @@ -15216,7 +15216,7 @@ importers: version: 3.1.7 ts-jest: specifier: ^29.2.5 - version: 29.2.5(@babel/core@8.0.0-alpha.13)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@8.0.0-alpha.13))(esbuild@0.24.2)(jest@29.7.0(@types/node@20.17.30)(babel-plugin-macros@3.1.0))(typescript@5.7.2) + version: 29.2.5(@babel/core@7.26.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(esbuild@0.24.2)(jest@29.7.0(@types/node@20.17.30)(babel-plugin-macros@3.1.0))(typescript@5.7.2) tsup: specifier: ^8.3.6 version: 8.3.6(@microsoft/api-extractor@7.47.12(@types/node@20.17.30))(jiti@1.21.6)(postcss@8.4.49)(typescript@5.7.2)(yaml@2.6.1) @@ -31340,7 +31340,7 @@ snapshots: '@babel/traverse': 7.25.9 '@babel/types': 7.26.0 convert-source-map: 2.0.0 - debug: 4.3.7(supports-color@5.5.0) + debug: 4.3.7(supports-color@9.4.0) gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 @@ -32594,7 +32594,7 @@ snapshots: '@eslint/eslintrc@3.2.0': dependencies: ajv: 6.12.6 - debug: 4.3.7(supports-color@5.5.0) + debug: 4.3.7(supports-color@9.4.0) espree: 10.3.0 globals: 14.0.0 ignore: 5.3.2 @@ -36690,7 +36690,7 @@ snapshots: '@typescript-eslint/types': 8.15.0 '@typescript-eslint/typescript-estree': 8.15.0(typescript@5.6.3) '@typescript-eslint/visitor-keys': 8.15.0 - debug: 4.3.7(supports-color@5.5.0) + debug: 4.3.7(supports-color@9.4.0) eslint: 8.57.1 optionalDependencies: typescript: 5.6.3 @@ -39593,7 +39593,7 @@ snapshots: ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.6 - debug: 4.3.7(supports-color@5.5.0) + debug: 4.3.7(supports-color@9.4.0) doctrine: 3.0.0 escape-string-regexp: 4.0.0 eslint-scope: 7.2.2 @@ -41285,7 +41285,7 @@ snapshots: https-proxy-agent@5.0.1: dependencies: agent-base: 6.0.2 - debug: 4.3.7(supports-color@5.5.0) + debug: 4.3.7(supports-color@9.4.0) transitivePeerDependencies: - supports-color @@ -42678,7 +42678,7 @@ snapshots: dependencies: chalk: 5.3.0 commander: 12.1.0 - debug: 4.3.7(supports-color@5.5.0) + debug: 4.3.7(supports-color@9.4.0) execa: 8.0.1 lilconfig: 3.1.3 listr2: 8.2.5 @@ -42849,7 +42849,7 @@ snapshots: log4js@6.4.4: dependencies: date-format: 4.0.14 - debug: 4.3.7(supports-color@5.5.0) + debug: 4.3.7(supports-color@9.4.0) flatted: 3.3.2 rfdc: 1.4.1 streamroller: 3.1.5 @@ -43896,7 +43896,7 @@ snapshots: dependencies: '@tediousjs/connection-string': 0.5.0 commander: 11.1.0 - debug: 4.3.7(supports-color@5.5.0) + debug: 4.3.7(supports-color@9.4.0) rfdc: 1.4.1 tarn: 3.0.2 tedious: 16.7.1 @@ -44070,7 +44070,7 @@ snapshots: - '@babel/core' - babel-plugin-macros - next@15.0.3(@babel/core@7.26.0)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106): + next@15.0.3(@babel/core@8.0.0-alpha.13)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106): dependencies: '@next/env': 15.0.3 '@swc/counter': 0.1.3 @@ -44080,7 +44080,7 @@ snapshots: postcss: 8.4.31 react: 19.0.0-rc-66855b96-20241106 react-dom: 19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106) - styled-jsx: 5.1.6(@babel/core@7.26.0)(babel-plugin-macros@3.1.0)(react@19.0.0-rc-66855b96-20241106) + styled-jsx: 5.1.6(@babel/core@8.0.0-alpha.13)(babel-plugin-macros@3.1.0)(react@19.0.0-rc-66855b96-20241106) optionalDependencies: '@next/swc-darwin-arm64': 15.0.3 '@next/swc-darwin-x64': 15.0.3 @@ -45491,7 +45491,7 @@ snapshots: ajv: 8.17.1 chalk: 5.3.0 ci-info: 4.1.0 - debug: 4.3.7(supports-color@5.5.0) + debug: 4.3.7(supports-color@9.4.0) deepmerge: 4.3.1 escalade: 3.2.0 fast-glob: 3.3.2 @@ -47135,12 +47135,12 @@ snapshots: '@babel/core': 8.0.0-alpha.13 babel-plugin-macros: 3.1.0 - styled-jsx@5.1.6(@babel/core@7.26.0)(babel-plugin-macros@3.1.0)(react@19.0.0-rc-66855b96-20241106): + styled-jsx@5.1.6(@babel/core@8.0.0-alpha.13)(babel-plugin-macros@3.1.0)(react@19.0.0-rc-66855b96-20241106): dependencies: client-only: 0.0.1 react: 19.0.0-rc-66855b96-20241106 optionalDependencies: - '@babel/core': 7.26.0 + '@babel/core': 8.0.0-alpha.13 babel-plugin-macros: 3.1.0 stylelint-config-recommended@14.0.1(stylelint@16.10.0(typescript@5.6.3)): @@ -47634,44 +47634,44 @@ snapshots: ts-interface-checker@0.1.13: {} - ts-jest@29.2.5(@babel/core@7.26.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(jest@29.7.0(@types/node@20.17.6)(babel-plugin-macros@3.1.0))(typescript@5.6.3): + ts-jest@29.2.5(@babel/core@7.26.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(esbuild@0.24.2)(jest@29.7.0(@types/node@20.17.30)(babel-plugin-macros@3.1.0))(typescript@5.7.2): dependencies: bs-logger: 0.2.6 ejs: 3.1.10 fast-json-stable-stringify: 2.1.0 - jest: 29.7.0(@types/node@20.17.6)(babel-plugin-macros@3.1.0) + jest: 29.7.0(@types/node@20.17.30)(babel-plugin-macros@3.1.0) jest-util: 29.7.0 json5: 2.2.3 lodash.memoize: 4.1.2 make-error: 1.3.6 semver: 7.6.3 - typescript: 5.6.3 + typescript: 5.7.2 yargs-parser: 21.1.1 optionalDependencies: '@babel/core': 7.26.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 babel-jest: 29.7.0(@babel/core@7.26.0) + esbuild: 0.24.2 - ts-jest@29.2.5(@babel/core@8.0.0-alpha.13)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@8.0.0-alpha.13))(esbuild@0.24.2)(jest@29.7.0(@types/node@20.17.30)(babel-plugin-macros@3.1.0))(typescript@5.7.2): + ts-jest@29.2.5(@babel/core@8.0.0-alpha.13)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@8.0.0-alpha.13))(jest@29.7.0(@types/node@20.17.6)(babel-plugin-macros@3.1.0))(typescript@5.6.3): dependencies: bs-logger: 0.2.6 ejs: 3.1.10 fast-json-stable-stringify: 2.1.0 - jest: 29.7.0(@types/node@20.17.30)(babel-plugin-macros@3.1.0) + jest: 29.7.0(@types/node@20.17.6)(babel-plugin-macros@3.1.0) jest-util: 29.7.0 json5: 2.2.3 lodash.memoize: 4.1.2 make-error: 1.3.6 semver: 7.6.3 - typescript: 5.7.2 + typescript: 5.6.3 yargs-parser: 21.1.1 optionalDependencies: '@babel/core': 8.0.0-alpha.13 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 babel-jest: 29.7.0(@babel/core@8.0.0-alpha.13) - esbuild: 0.24.2 tsc-esm-fix@2.20.27: dependencies: @@ -48291,7 +48291,7 @@ snapshots: '@volar/typescript': 2.4.10 '@vue/language-core': 2.1.6(typescript@5.7.2) compare-versions: 6.1.1 - debug: 4.3.7(supports-color@5.5.0) + debug: 4.3.7(supports-color@9.4.0) kolorist: 1.8.0 local-pkg: 0.5.1 magic-string: 0.30.13 From abb9f535f7d74b86b5d6703532daeae31dc49102 Mon Sep 17 00:00:00 2001 From: Jason Endo Date: Tue, 15 Apr 2025 13:32:58 -0700 Subject: [PATCH 3/8] -dev --- package.json | 2 +- pnpm-lock.yaml | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index dc0c2f90b753a..74661917447ba 100644 --- a/package.json +++ b/package.json @@ -45,7 +45,6 @@ "@pipedream/types": "0.1.4", "@tsconfig/node14": "^1.0.1", "@types/jest": "^27.4.1", - "@types/node": "^20.17.6", "@typescript-eslint/eslint-plugin": "^8", "@typescript-eslint/parser": "^8", "eslint": "^8", @@ -78,6 +77,7 @@ "@actions/core": "^1.10.0", "@pipedream/platform": "^1.5.1", "@sentry/node": "^7.7.0", + "@types/node": "^20.17.6", "crypto": "^1.0.1", "linkup-sdk": "^1.0.3", "uuid": "^8.3.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7f84c108c0bc3..22ead17c45182 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -17,6 +17,9 @@ importers: '@sentry/node': specifier: ^7.7.0 version: 7.120.0 + '@types/node': + specifier: ^20.17.6 + version: 20.17.6 crypto: specifier: ^1.0.1 version: 1.0.1 @@ -48,9 +51,6 @@ importers: '@types/jest': specifier: ^27.4.1 version: 27.5.2 - '@types/node': - specifier: ^20.17.6 - version: 20.17.6 '@typescript-eslint/eslint-plugin': specifier: ^8 version: 8.15.0(@typescript-eslint/parser@8.15.0(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1)(typescript@5.6.3) From d9fcf7e611c2f506c76411ba4016136a350c08ea Mon Sep 17 00:00:00 2001 From: Jason Endo Date: Tue, 15 Apr 2025 14:57:38 -0700 Subject: [PATCH 4/8] changelog and version bump --- packages/sdk/CHANGELOG.md | 8 +++++++ packages/sdk/package.json | 2 +- packages/sdk/src/shared/index.ts | 40 +++++++++++++++++++++++++------- 3 files changed, 40 insertions(+), 10 deletions(-) diff --git a/packages/sdk/CHANGELOG.md b/packages/sdk/CHANGELOG.md index b2d5f401e9edf..34f902ae3a0c9 100644 --- a/packages/sdk/CHANGELOG.md +++ b/packages/sdk/CHANGELOG.md @@ -2,6 +2,14 @@ # Changelog +## [1.5.1] - 2025-04-15 + +### Added + +- PD_SDK_DEBUG env var. Set it to true to enable debugging of Pipedream Connect + API requests. Simple sanitization is performed to prevent sensitive field leakage + but use caution. + ## [1.5.0] - 2025-04-08 ### Added diff --git a/packages/sdk/package.json b/packages/sdk/package.json index 02537235ffa78..5753dc4d0d307 100644 --- a/packages/sdk/package.json +++ b/packages/sdk/package.json @@ -1,7 +1,7 @@ { "name": "@pipedream/sdk", "type": "module", - "version": "1.5.0", + "version": "1.5.1", "description": "Pipedream SDK", "main": "./dist/server.js", "module": "./dist/server.js", diff --git a/packages/sdk/src/shared/index.ts b/packages/sdk/src/shared/index.ts index bc0fb9808136f..c1c24bf39cce2 100644 --- a/packages/sdk/src/shared/index.ts +++ b/packages/sdk/src/shared/index.ts @@ -847,13 +847,40 @@ export interface AsyncRequestOptions extends RequestOptions { body: { async_handle: string; } & Required; } +const SENSITIVE_KEYS = ["token", "password", "secret", "apiKey", "authorization", "auth", "key", "access_token"]; + +function sanitize(value: any, seen = new WeakSet()): any { + if (value === null || value === undefined) return value; + + if (typeof value === "object") { + if (seen.has(value)) return "[CIRCULAR]"; + seen.add(value); + + if (Array.isArray(value)) { + return value.map((v) => sanitize(v, seen)); + } + + const sanitizedObj: Record = {}; + for (const [k, v] of Object.entries(value)) { + const isSensitiveKey = SENSITIVE_KEYS.some((sensitiveKey) => + k.toLowerCase().includes(sensitiveKey.toLowerCase()) + ); + sanitizedObj[k] = isSensitiveKey ? "[REDACTED]" : sanitize(v, seen); + } + return sanitizedObj; + } + + return value; // numbers, booleans, functions, etc. +} + export function DEBUG(...args: any[]) { if ( typeof process !== "undefined" && typeof process.env !== "undefined" && - process.env.DEBUG === "true" + process.env.PD_SDK_DEBUG === "true" ) { - console.log("[DEBUG]", ...args); + const safeArgs = args.map((arg) => sanitize(arg)); + console.log("[PD_SDK_DEBUG]", ...safeArgs); } } @@ -971,9 +998,6 @@ export abstract class BaseClient { ) { requestOptions.body = processedBody; } - DEBUG("makeRequest") - DEBUG("url: ", url.toString()) - DEBUG("requestOptions: ", requestOptions) const response: Response = await fetch(url.toString(), requestOptions); @@ -992,27 +1016,25 @@ export abstract class BaseClient { return (await response.text()) as unknown as T;*/ const rawBody = await response.text(); - DEBUG("Response status:", response.status); - DEBUG("Response body:", rawBody); if (!response.ok) { throw new Error(`HTTP error! status: ${response.status}, body: ${rawBody}`); } + DEBUG(response.status, url.toString(), requestOptions, rawBody) const contentType = response.headers.get("Content-Type"); if (contentType && contentType.includes("application/json")) { try { const json = JSON.parse(rawBody); - DEBUG("Parsed JSON:", json); return json as T; } catch (err) { - DEBUG("Failed to parse JSON, returning raw body as fallback."); } } return rawBody as unknown as T; } + protected abstract authHeaders(): string | Promise; /** From 5e75394eb94e80e839a297c62a234c40dc20807d Mon Sep 17 00:00:00 2001 From: Jason Endo Date: Tue, 15 Apr 2025 15:00:01 -0700 Subject: [PATCH 5/8] cleanup --- packages/sdk/src/shared/index.ts | 17 ----------------- 1 file changed, 17 deletions(-) diff --git a/packages/sdk/src/shared/index.ts b/packages/sdk/src/shared/index.ts index c1c24bf39cce2..6e0ea73294ee4 100644 --- a/packages/sdk/src/shared/index.ts +++ b/packages/sdk/src/shared/index.ts @@ -943,8 +943,6 @@ export abstract class BaseClient { ...fetchOpts } = opts; - - const url = new URL(`${baseURL}${path}`); if (params) { @@ -1001,20 +999,6 @@ export abstract class BaseClient { const response: Response = await fetch(url.toString(), requestOptions); -/* if (!response.ok) { - const errorBody = await response.text(); - throw new Error( - `HTTP error! status: ${response.status}, body: ${errorBody}`, - ); - } - - // Attempt to parse JSON, fall back to raw text if it fails - const contentType = response.headers.get("Content-Type"); - if (contentType && contentType.includes("application/json")) { - return (await response.json()) as T; - } - - return (await response.text()) as unknown as T;*/ const rawBody = await response.text(); if (!response.ok) { @@ -1034,7 +1018,6 @@ export abstract class BaseClient { return rawBody as unknown as T; } - protected abstract authHeaders(): string | Promise; /** From 74e8eec7a59361f9a56d653ffe2e722750de9e4a Mon Sep 17 00:00:00 2001 From: Jason Endo Date: Tue, 15 Apr 2025 15:16:24 -0700 Subject: [PATCH 6/8] linting --- packages/sdk/src/shared/index.ts | 30 +++++++++++++++++++++++------- packages/sdk/src/shared/shims.d.ts | 1 - pnpm-lock.yaml | 6 ++---- 3 files changed, 25 insertions(+), 12 deletions(-) diff --git a/packages/sdk/src/shared/index.ts b/packages/sdk/src/shared/index.ts index 6e0ea73294ee4..f051d0677f379 100644 --- a/packages/sdk/src/shared/index.ts +++ b/packages/sdk/src/shared/index.ts @@ -847,8 +847,18 @@ export interface AsyncRequestOptions extends RequestOptions { body: { async_handle: string; } & Required; } -const SENSITIVE_KEYS = ["token", "password", "secret", "apiKey", "authorization", "auth", "key", "access_token"]; - +const SENSITIVE_KEYS = [ + "token", + "password", + "secret", + "apiKey", + "authorization", + "auth", + "key", + "access_token", +]; + +// eslint-disable-next-line @typescript-eslint/no-explicit-any function sanitize(value: any, seen = new WeakSet()): any { if (value === null || value === undefined) return value; @@ -860,12 +870,17 @@ function sanitize(value: any, seen = new WeakSet()): any { return value.map((v) => sanitize(v, seen)); } + // eslint-disable-next-line @typescript-eslint/no-explicit-any const sanitizedObj: Record = {}; - for (const [k, v] of Object.entries(value)) { + for (const [ + k, + v, + ] of Object.entries(value)) { const isSensitiveKey = SENSITIVE_KEYS.some((sensitiveKey) => - k.toLowerCase().includes(sensitiveKey.toLowerCase()) - ); - sanitizedObj[k] = isSensitiveKey ? "[REDACTED]" : sanitize(v, seen); + k.toLowerCase().includes(sensitiveKey.toLowerCase())); + sanitizedObj[k] = isSensitiveKey + ? "[REDACTED]" + : sanitize(v, seen); } return sanitizedObj; } @@ -873,6 +888,7 @@ function sanitize(value: any, seen = new WeakSet()): any { return value; // numbers, booleans, functions, etc. } +// eslint-disable-next-line @typescript-eslint/no-explicit-any export function DEBUG(...args: any[]) { if ( typeof process !== "undefined" && @@ -884,7 +900,6 @@ export function DEBUG(...args: any[]) { } } - /** * A client for interacting with the Pipedream Connect API on the server-side. */ @@ -1012,6 +1027,7 @@ export abstract class BaseClient { const json = JSON.parse(rawBody); return json as T; } catch (err) { + DEBUG("Couldn't parse json, falling back to raw", err) } } diff --git a/packages/sdk/src/shared/shims.d.ts b/packages/sdk/src/shared/shims.d.ts index 0eb060f4812c5..3f8248deb8c20 100644 --- a/packages/sdk/src/shared/shims.d.ts +++ b/packages/sdk/src/shared/shims.d.ts @@ -1,4 +1,3 @@ - declare const process: { env?: { [key: string]: string | undefined; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c8dadd118f27a..769d6323545de 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -435,8 +435,7 @@ importers: specifier: ^3.0.3 version: 3.0.3 - components/agentx: - specifiers: {} + components/agentx: {} components/agenty: dependencies: @@ -11284,8 +11283,7 @@ importers: specifier: ^1.5.1 version: 1.6.6 - components/screenshot_api: - specifiers: {} + components/screenshot_api: {} components/screenshot_fyi: dependencies: From ebc04f8454693b19490f023b392c9ea6e7960869 Mon Sep 17 00:00:00 2001 From: Jason Endo Date: Tue, 15 Apr 2025 15:45:45 -0700 Subject: [PATCH 7/8] lock --- pnpm-lock.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 68e1bc02de92a..6ab999654058b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -34551,6 +34551,8 @@ snapshots: '@putout/operator-filesystem': 5.0.0(putout@36.13.1(eslint@8.57.1)(typescript@5.6.3)) '@putout/operator-json': 2.2.0 putout: 36.13.1(eslint@8.57.1)(typescript@5.6.3) + transitivePeerDependencies: + - supports-color '@putout/operator-regexp@1.0.0(putout@36.13.1(eslint@8.57.1)(typescript@5.6.3))': dependencies: From 6f905b9e5be50a3d20973e635e51067f7fbc06e3 Mon Sep 17 00:00:00 2001 From: Jason Endo Date: Tue, 15 Apr 2025 15:47:06 -0700 Subject: [PATCH 8/8] ugh, bad merge --- packages/sdk/CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/sdk/CHANGELOG.md b/packages/sdk/CHANGELOG.md index 1123386cf2ab1..45ff679b737be 100644 --- a/packages/sdk/CHANGELOG.md +++ b/packages/sdk/CHANGELOG.md @@ -10,7 +10,7 @@ API requests. Simple sanitization is performed to prevent sensitive field leakage but use caution. -## [1.5.1] - 2025-04-08 +## [1.5.1] - 2025-04-15 ### Added