@zapier/zapier-sdk 0.40.3 → 0.40.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # @zapier/zapier-sdk
2
2
 
3
+ ## 0.40.4
4
+
5
+ ### Patch Changes
6
+
7
+ - e3f5a81: Replace Node-only imports (timers/promises, os) with browser-safe alternatives and add browser compatibility test suite
8
+
3
9
  ## 0.40.3
4
10
 
5
11
  ### Patch Changes
@@ -5,8 +5,7 @@
5
5
  * with configurable retry logic and exponential backoff.
6
6
  */
7
7
  import { ZapierTimeoutError, ZapierApiError, ZapierValidationError, } from "../types/errors";
8
- import { setTimeout } from "timers/promises";
9
- import { calculateErrorBackoffMs, MAX_CONSECUTIVE_ERRORS, } from "../utils/retry-utils";
8
+ import { sleep, calculateErrorBackoffMs, MAX_CONSECUTIVE_ERRORS, } from "../utils/retry-utils";
10
9
  // Constants
11
10
  const DEFAULT_TIMEOUT_MS = 180000;
12
11
  const DEFAULT_SUCCESS_STATUS = 200;
@@ -105,7 +104,7 @@ export async function pollUntilComplete(options) {
105
104
  let errorCount = 0;
106
105
  // Apply initial delay if specified
107
106
  if (initialDelay > 0) {
108
- await setTimeout(initialDelay);
107
+ await sleep(initialDelay);
109
108
  }
110
109
  while (true) {
111
110
  const elapsedTime = Date.now() - startTime;
@@ -119,7 +118,7 @@ export async function pollUntilComplete(options) {
119
118
  if (attempts > 0) {
120
119
  const interval = getPollingInterval(elapsedTime);
121
120
  const waitTime = calculateErrorBackoffMs(interval, errorCount);
122
- await setTimeout(waitTime);
121
+ await sleep(waitTime);
123
122
  }
124
123
  attempts++;
125
124
  // Perform the poll request
@@ -1 +1 @@
1
- {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAuB,MAAM,qBAAqB,CAAC;AAM5E,YAAY,EACV,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,YAAY,EACZ,aAAa,GACd,MAAM,gBAAgB,CAAC;AAGxB,YAAY,EACV,WAAW,EACX,mBAAmB,EACnB,iBAAiB,EACjB,uBAAuB,EACvB,qBAAqB,GACtB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,qBAAqB,CAAC;AAE7B;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,4CAA4C;IAC5C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,gDAAgD;IAChD,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AA+BD;;GAEG;AACH,wBAAgB,eAAe,IAAI,IAAI,CAItC;AA0CD;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EAAE,GACf,IAAI,CAIN;AA6HD;;GAEG;AACH,UAAU,eAAe;IACvB,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;IAChC,WAAW,CAAC,EAAE;QACZ,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAGD,KAAK,cAAc,GAAG,cAAc,8BAA8B,CAAC,CAAC;AAmCpE;;;GAGG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,CAE3D;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,OAAO,GAAG,SAAS,CAGzD;AAED;;;;;GAKG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAK7B;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAmB7B;AA6ED;;;;GAIG;AACH,wBAAsB,0BAA0B,CAAC,OAAO,EAAE;IACxD,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B,GAAG,OAAO,CAAC,IAAI,CAAC,CAQhB"}
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAuB,MAAM,qBAAqB,CAAC;AAM5E,YAAY,EACV,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,YAAY,EACZ,aAAa,GACd,MAAM,gBAAgB,CAAC;AAGxB,YAAY,EACV,WAAW,EACX,mBAAmB,EACnB,iBAAiB,EACjB,uBAAuB,EACvB,qBAAqB,GACtB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,qBAAqB,CAAC;AAE7B;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,4CAA4C;IAC5C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,gDAAgD;IAChD,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AA+BD;;GAEG;AACH,wBAAgB,eAAe,IAAI,IAAI,CAItC;AA0CD;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EAAE,GACf,IAAI,CAIN;AA6HD;;GAEG;AACH,UAAU,eAAe;IACvB,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;IAChC,WAAW,CAAC,EAAE;QACZ,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAGD,KAAK,cAAc,GAAG,cAAc,8BAA8B,CAAC,CAAC;AA2CpE;;;GAGG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,CAE3D;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,OAAO,GAAG,SAAS,CAGzD;AAED;;;;;GAKG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAK7B;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAmB7B;AA6ED;;;;GAIG;AACH,wBAAsB,0BAA0B,CAAC,OAAO,EAAE;IACxD,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B,GAAG,OAAO,CAAC,IAAI,CAAC,CAQhB"}
package/dist/auth.js CHANGED
@@ -186,20 +186,27 @@ async function getCliLogin() {
186
186
  return cachedCliLogin || undefined;
187
187
  }
188
188
  try {
189
- cachedCliLogin = await import("@zapier/zapier-sdk-cli/login");
190
- return cachedCliLogin;
189
+ const mod = await import("@zapier/zapier-sdk-cli/login");
190
+ if (typeof mod.getToken === "function") {
191
+ cachedCliLogin = mod;
192
+ return cachedCliLogin;
193
+ }
191
194
  }
192
195
  catch {
193
- // First path not available, try fallback
196
+ // Not available, try fallback
194
197
  }
195
198
  try {
196
- cachedCliLogin = await import("@zapier/zapier-sdk-cli-login");
197
- return cachedCliLogin;
199
+ const mod = await import("@zapier/zapier-sdk-cli-login");
200
+ if (typeof mod.getToken === "function") {
201
+ cachedCliLogin = mod;
202
+ return cachedCliLogin;
203
+ }
198
204
  }
199
205
  catch {
200
- cachedCliLogin = false;
201
- return undefined;
206
+ // Not available
202
207
  }
208
+ cachedCliLogin = false;
209
+ return undefined;
203
210
  }
204
211
  /**
205
212
  * Inject an already-loaded CLI login module so the SDK skips its dynamic import.
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,eAAO,MAAM,eAAe,QACyB,CAAC;AAEtD;;GAEG;AACH,eAAO,MAAM,cAAc,QAAQ,CAAC;AAEpC;;GAEG;AACH,eAAO,MAAM,iBAAiB,MAAM,CAAC;AAErC;;GAEG;AACH,eAAO,MAAM,yBAAyB,SAAU,CAAC;AAejD;;GAEG;AACH,eAAO,MAAM,0BAA0B,QACY,CAAC;AACpD,eAAO,MAAM,iCAAiC,QACiB,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,eAAO,MAAM,eAAe,QACsC,CAAC;AAEnE;;GAEG;AACH,eAAO,MAAM,cAAc,QAAQ,CAAC;AAEpC;;GAEG;AACH,eAAO,MAAM,iBAAiB,MAAM,CAAC;AAErC;;GAEG;AACH,eAAO,MAAM,yBAAyB,SAAU,CAAC;AAejD;;GAEG;AACH,eAAO,MAAM,0BAA0B,QACY,CAAC;AACpD,eAAO,MAAM,iCAAiC,QACiB,CAAC"}
package/dist/constants.js CHANGED
@@ -6,7 +6,7 @@
6
6
  /**
7
7
  * Base URL for Zapier API endpoints
8
8
  */
9
- export const ZAPIER_BASE_URL = process.env.ZAPIER_BASE_URL || "https://zapier.com";
9
+ export const ZAPIER_BASE_URL = globalThis.process?.env?.ZAPIER_BASE_URL || "https://zapier.com";
10
10
  /**
11
11
  * Maximum number of items that can be requested per page across all paginated functions
12
12
  */
@@ -20,7 +20,7 @@ export const DEFAULT_PAGE_SIZE = 100;
20
20
  */
21
21
  export const DEFAULT_ACTION_TIMEOUT_MS = 180000;
22
22
  function parseIntEnvVar(name) {
23
- const value = process.env[name];
23
+ const value = globalThis.process?.env?.[name];
24
24
  if (value === undefined)
25
25
  return undefined;
26
26
  const parsed = parseInt(value, 10);
@@ -1 +1 @@
1
- {"version":3,"file":"credentials.d.ts","sourceRoot":"","sources":["../src/credentials.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EACV,WAAW,EACX,mBAAmB,EAEpB,MAAM,qBAAqB,CAAC;AAY7B;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,4CAA4C;IAC5C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kFAAkF;IAClF,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAqDD;;;;;;;;;;GAUG;AACH,wBAAgB,yBAAyB,CACvC,UAAU,CAAC,EAAE,MAAM,GAClB,mBAAmB,GAAG,SAAS,CAyDjC;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,GAAE,yBAA8B,GACtC,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAC,CAkD1C;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,WAAW,EAAE,mBAAmB,GAAG,SAAS,GAC3C,MAAM,GAAG,SAAS,CAKpB;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CACxC,WAAW,EAAE,mBAAmB,GAAG,SAAS,GAC3C,MAAM,GAAG,SAAS,CAKpB"}
1
+ {"version":3,"file":"credentials.d.ts","sourceRoot":"","sources":["../src/credentials.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EACV,WAAW,EACX,mBAAmB,EAEpB,MAAM,qBAAqB,CAAC;AAa7B;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,4CAA4C;IAC5C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kFAAkF;IAClF,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAqDD;;;;;;;;;;GAUG;AACH,wBAAgB,yBAAyB,CACvC,UAAU,CAAC,EAAE,MAAM,GAClB,mBAAmB,GAAG,SAAS,CA2DjC;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,GAAE,yBAA8B,GACtC,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAC,CAkD1C;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,WAAW,EAAE,mBAAmB,GAAG,SAAS,GAC3C,MAAM,GAAG,SAAS,CAKpB;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CACxC,WAAW,EAAE,mBAAmB,GAAG,SAAS,GAC3C,MAAM,GAAG,SAAS,CAKpB"}
@@ -27,9 +27,9 @@ function normalizeCredentialsObject(obj, sdkBaseUrl) {
27
27
  // Build defaults from env vars for optional fields, then override with explicit credentials.
28
28
  // clientId is required in CredentialsObject so it always comes from obj.
29
29
  const merged = {
30
- clientSecret: process.env.ZAPIER_CREDENTIALS_CLIENT_SECRET,
31
- baseUrl: process.env.ZAPIER_CREDENTIALS_BASE_URL,
32
- scope: process.env.ZAPIER_CREDENTIALS_SCOPE,
30
+ clientSecret: globalThis.process?.env?.ZAPIER_CREDENTIALS_CLIENT_SECRET,
31
+ baseUrl: globalThis.process?.env?.ZAPIER_CREDENTIALS_BASE_URL,
32
+ scope: globalThis.process?.env?.ZAPIER_CREDENTIALS_SCOPE,
33
33
  ...obj,
34
34
  };
35
35
  // Derive baseUrl from SDK if still not set
@@ -65,45 +65,47 @@ function normalizeCredentialsObject(obj, sdkBaseUrl) {
65
65
  */
66
66
  export function resolveCredentialsFromEnv(sdkBaseUrl) {
67
67
  // 1. Check ZAPIER_CREDENTIALS (string token only)
68
- if (process.env.ZAPIER_CREDENTIALS) {
69
- return process.env.ZAPIER_CREDENTIALS;
68
+ if (globalThis.process?.env?.ZAPIER_CREDENTIALS) {
69
+ return globalThis.process?.env?.ZAPIER_CREDENTIALS;
70
70
  }
71
71
  // 2. Check ZAPIER_CREDENTIALS_* individual vars
72
- if (process.env.ZAPIER_CREDENTIALS_CLIENT_ID) {
73
- const resolvedBaseUrl = process.env.ZAPIER_CREDENTIALS_BASE_URL || deriveAuthBaseUrl(sdkBaseUrl);
72
+ if (globalThis.process?.env?.ZAPIER_CREDENTIALS_CLIENT_ID) {
73
+ const resolvedBaseUrl = globalThis.process?.env?.ZAPIER_CREDENTIALS_BASE_URL ||
74
+ deriveAuthBaseUrl(sdkBaseUrl);
74
75
  // Infer type from presence of clientSecret
75
- if (process.env.ZAPIER_CREDENTIALS_CLIENT_SECRET) {
76
+ if (globalThis.process?.env?.ZAPIER_CREDENTIALS_CLIENT_SECRET) {
76
77
  return {
77
78
  type: "client_credentials",
78
- clientId: process.env.ZAPIER_CREDENTIALS_CLIENT_ID,
79
- clientSecret: process.env.ZAPIER_CREDENTIALS_CLIENT_SECRET,
79
+ clientId: globalThis.process?.env?.ZAPIER_CREDENTIALS_CLIENT_ID,
80
+ clientSecret: globalThis.process?.env?.ZAPIER_CREDENTIALS_CLIENT_SECRET,
80
81
  baseUrl: resolvedBaseUrl,
81
- scope: process.env.ZAPIER_CREDENTIALS_SCOPE,
82
+ scope: globalThis.process?.env?.ZAPIER_CREDENTIALS_SCOPE,
82
83
  };
83
84
  }
84
85
  else {
85
86
  return {
86
87
  type: "pkce",
87
- clientId: process.env.ZAPIER_CREDENTIALS_CLIENT_ID,
88
+ clientId: globalThis.process?.env?.ZAPIER_CREDENTIALS_CLIENT_ID,
88
89
  baseUrl: resolvedBaseUrl,
89
- scope: process.env.ZAPIER_CREDENTIALS_SCOPE,
90
+ scope: globalThis.process?.env?.ZAPIER_CREDENTIALS_SCOPE,
90
91
  };
91
92
  }
92
93
  }
93
94
  // 3. Check deprecated env vars (with warnings)
94
- if (process.env.ZAPIER_TOKEN) {
95
+ if (globalThis.process?.env?.ZAPIER_TOKEN) {
95
96
  logDeprecation("ZAPIER_TOKEN is deprecated. Use ZAPIER_CREDENTIALS instead.");
96
- return process.env.ZAPIER_TOKEN;
97
+ return globalThis.process?.env?.ZAPIER_TOKEN;
97
98
  }
98
- if (process.env.ZAPIER_AUTH_CLIENT_ID) {
99
+ if (globalThis.process?.env?.ZAPIER_AUTH_CLIENT_ID) {
99
100
  logDeprecation("ZAPIER_AUTH_CLIENT_ID is deprecated. Use ZAPIER_CREDENTIALS_CLIENT_ID instead.");
100
- if (process.env.ZAPIER_AUTH_BASE_URL) {
101
+ if (globalThis.process?.env?.ZAPIER_AUTH_BASE_URL) {
101
102
  logDeprecation("ZAPIER_AUTH_BASE_URL is deprecated. Use ZAPIER_CREDENTIALS_BASE_URL instead.");
102
103
  }
103
- const resolvedBaseUrl = process.env.ZAPIER_AUTH_BASE_URL || deriveAuthBaseUrl(sdkBaseUrl);
104
+ const resolvedBaseUrl = globalThis.process?.env?.ZAPIER_AUTH_BASE_URL ||
105
+ deriveAuthBaseUrl(sdkBaseUrl);
104
106
  return {
105
107
  type: "pkce",
106
- clientId: process.env.ZAPIER_AUTH_CLIENT_ID,
108
+ clientId: globalThis.process?.env?.ZAPIER_AUTH_CLIENT_ID,
107
109
  baseUrl: resolvedBaseUrl,
108
110
  };
109
111
  }
package/dist/index.cjs CHANGED
@@ -4,28 +4,6 @@ var zod = require('zod');
4
4
  var apps = require('@zapier/zapier-sdk-core/v0/schemas/apps');
5
5
  var connections = require('@zapier/zapier-sdk-core/v0/schemas/connections');
6
6
  var clientCredentials = require('@zapier/zapier-sdk-core/v0/schemas/client-credentials');
7
- var promises = require('timers/promises');
8
- var os = require('os');
9
-
10
- function _interopNamespace(e) {
11
- if (e && e.__esModule) return e;
12
- var n = Object.create(null);
13
- if (e) {
14
- Object.keys(e).forEach(function (k) {
15
- if (k !== 'default') {
16
- var d = Object.getOwnPropertyDescriptor(e, k);
17
- Object.defineProperty(n, k, d.get ? d : {
18
- enumerable: true,
19
- get: function () { return e[k]; }
20
- });
21
- }
22
- });
23
- }
24
- n.default = e;
25
- return Object.freeze(n);
26
- }
27
-
28
- var os__namespace = /*#__PURE__*/_interopNamespace(os);
29
7
 
30
8
  var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
31
9
  get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
@@ -62,12 +40,12 @@ function isPositional(schema) {
62
40
  }
63
41
 
64
42
  // src/constants.ts
65
- var ZAPIER_BASE_URL = process.env.ZAPIER_BASE_URL || "https://zapier.com";
43
+ var ZAPIER_BASE_URL = globalThis.process?.env?.ZAPIER_BASE_URL || "https://zapier.com";
66
44
  var MAX_PAGE_LIMIT = 1e4;
67
45
  var DEFAULT_PAGE_SIZE = 100;
68
46
  var DEFAULT_ACTION_TIMEOUT_MS = 18e4;
69
47
  function parseIntEnvVar(name) {
70
- const value = process.env[name];
48
+ const value = globalThis.process?.env?.[name];
71
49
  if (value === void 0) return void 0;
72
50
  const parsed = parseInt(value, 10);
73
51
  if (isNaN(parsed)) {
@@ -5008,7 +4986,7 @@ async function pollUntilComplete(options) {
5008
4986
  let attempts = 0;
5009
4987
  let errorCount = 0;
5010
4988
  if (initialDelay > 0) {
5011
- await promises.setTimeout(initialDelay);
4989
+ await sleep(initialDelay);
5012
4990
  }
5013
4991
  while (true) {
5014
4992
  const elapsedTime = Date.now() - startTime;
@@ -5023,7 +5001,7 @@ async function pollUntilComplete(options) {
5023
5001
  if (attempts > 0) {
5024
5002
  const interval = getPollingInterval(elapsedTime);
5025
5003
  const waitTime = calculateErrorBackoffMs(interval, errorCount);
5026
- await promises.setTimeout(waitTime);
5004
+ await sleep(waitTime);
5027
5005
  }
5028
5006
  attempts++;
5029
5007
  try {
@@ -5135,8 +5113,8 @@ function getTrackingBaseUrl({
5135
5113
  if (trackingBaseUrl) {
5136
5114
  return trackingBaseUrl;
5137
5115
  }
5138
- if (process.env.ZAPIER_TRACKING_BASE_URL) {
5139
- return process.env.ZAPIER_TRACKING_BASE_URL;
5116
+ if (globalThis.process?.env?.ZAPIER_TRACKING_BASE_URL) {
5117
+ return globalThis.process?.env?.ZAPIER_TRACKING_BASE_URL;
5140
5118
  }
5141
5119
  if (baseUrl) {
5142
5120
  const zapierBaseUrl = getZapierBaseUrl(baseUrl);
@@ -5157,9 +5135,9 @@ function deriveAuthBaseUrl(sdkBaseUrl) {
5157
5135
  }
5158
5136
  function normalizeCredentialsObject(obj, sdkBaseUrl) {
5159
5137
  const merged = {
5160
- clientSecret: process.env.ZAPIER_CREDENTIALS_CLIENT_SECRET,
5161
- baseUrl: process.env.ZAPIER_CREDENTIALS_BASE_URL,
5162
- scope: process.env.ZAPIER_CREDENTIALS_SCOPE,
5138
+ clientSecret: globalThis.process?.env?.ZAPIER_CREDENTIALS_CLIENT_SECRET,
5139
+ baseUrl: globalThis.process?.env?.ZAPIER_CREDENTIALS_BASE_URL,
5140
+ scope: globalThis.process?.env?.ZAPIER_CREDENTIALS_SCOPE,
5163
5141
  ...obj
5164
5142
  };
5165
5143
  const resolvedBaseUrl = merged.baseUrl || deriveAuthBaseUrl(sdkBaseUrl);
@@ -5180,47 +5158,47 @@ function normalizeCredentialsObject(obj, sdkBaseUrl) {
5180
5158
  };
5181
5159
  }
5182
5160
  function resolveCredentialsFromEnv(sdkBaseUrl) {
5183
- if (process.env.ZAPIER_CREDENTIALS) {
5184
- return process.env.ZAPIER_CREDENTIALS;
5161
+ if (globalThis.process?.env?.ZAPIER_CREDENTIALS) {
5162
+ return globalThis.process?.env?.ZAPIER_CREDENTIALS;
5185
5163
  }
5186
- if (process.env.ZAPIER_CREDENTIALS_CLIENT_ID) {
5187
- const resolvedBaseUrl = process.env.ZAPIER_CREDENTIALS_BASE_URL || deriveAuthBaseUrl(sdkBaseUrl);
5188
- if (process.env.ZAPIER_CREDENTIALS_CLIENT_SECRET) {
5164
+ if (globalThis.process?.env?.ZAPIER_CREDENTIALS_CLIENT_ID) {
5165
+ const resolvedBaseUrl = globalThis.process?.env?.ZAPIER_CREDENTIALS_BASE_URL || deriveAuthBaseUrl(sdkBaseUrl);
5166
+ if (globalThis.process?.env?.ZAPIER_CREDENTIALS_CLIENT_SECRET) {
5189
5167
  return {
5190
5168
  type: "client_credentials",
5191
- clientId: process.env.ZAPIER_CREDENTIALS_CLIENT_ID,
5192
- clientSecret: process.env.ZAPIER_CREDENTIALS_CLIENT_SECRET,
5169
+ clientId: globalThis.process?.env?.ZAPIER_CREDENTIALS_CLIENT_ID,
5170
+ clientSecret: globalThis.process?.env?.ZAPIER_CREDENTIALS_CLIENT_SECRET,
5193
5171
  baseUrl: resolvedBaseUrl,
5194
- scope: process.env.ZAPIER_CREDENTIALS_SCOPE
5172
+ scope: globalThis.process?.env?.ZAPIER_CREDENTIALS_SCOPE
5195
5173
  };
5196
5174
  } else {
5197
5175
  return {
5198
5176
  type: "pkce",
5199
- clientId: process.env.ZAPIER_CREDENTIALS_CLIENT_ID,
5177
+ clientId: globalThis.process?.env?.ZAPIER_CREDENTIALS_CLIENT_ID,
5200
5178
  baseUrl: resolvedBaseUrl,
5201
- scope: process.env.ZAPIER_CREDENTIALS_SCOPE
5179
+ scope: globalThis.process?.env?.ZAPIER_CREDENTIALS_SCOPE
5202
5180
  };
5203
5181
  }
5204
5182
  }
5205
- if (process.env.ZAPIER_TOKEN) {
5183
+ if (globalThis.process?.env?.ZAPIER_TOKEN) {
5206
5184
  logDeprecation(
5207
5185
  "ZAPIER_TOKEN is deprecated. Use ZAPIER_CREDENTIALS instead."
5208
5186
  );
5209
- return process.env.ZAPIER_TOKEN;
5187
+ return globalThis.process?.env?.ZAPIER_TOKEN;
5210
5188
  }
5211
- if (process.env.ZAPIER_AUTH_CLIENT_ID) {
5189
+ if (globalThis.process?.env?.ZAPIER_AUTH_CLIENT_ID) {
5212
5190
  logDeprecation(
5213
5191
  "ZAPIER_AUTH_CLIENT_ID is deprecated. Use ZAPIER_CREDENTIALS_CLIENT_ID instead."
5214
5192
  );
5215
- if (process.env.ZAPIER_AUTH_BASE_URL) {
5193
+ if (globalThis.process?.env?.ZAPIER_AUTH_BASE_URL) {
5216
5194
  logDeprecation(
5217
5195
  "ZAPIER_AUTH_BASE_URL is deprecated. Use ZAPIER_CREDENTIALS_BASE_URL instead."
5218
5196
  );
5219
5197
  }
5220
- const resolvedBaseUrl = process.env.ZAPIER_AUTH_BASE_URL || deriveAuthBaseUrl(sdkBaseUrl);
5198
+ const resolvedBaseUrl = globalThis.process?.env?.ZAPIER_AUTH_BASE_URL || deriveAuthBaseUrl(sdkBaseUrl);
5221
5199
  return {
5222
5200
  type: "pkce",
5223
- clientId: process.env.ZAPIER_AUTH_CLIENT_ID,
5201
+ clientId: globalThis.process?.env?.ZAPIER_AUTH_CLIENT_ID,
5224
5202
  baseUrl: resolvedBaseUrl
5225
5203
  };
5226
5204
  }
@@ -5392,17 +5370,23 @@ async function getCliLogin() {
5392
5370
  return cachedCliLogin || void 0;
5393
5371
  }
5394
5372
  try {
5395
- cachedCliLogin = await import('@zapier/zapier-sdk-cli/login');
5396
- return cachedCliLogin;
5373
+ const mod = await import('@zapier/zapier-sdk-cli/login');
5374
+ if (typeof mod.getToken === "function") {
5375
+ cachedCliLogin = mod;
5376
+ return cachedCliLogin;
5377
+ }
5397
5378
  } catch {
5398
5379
  }
5399
5380
  try {
5400
- cachedCliLogin = await import('@zapier/zapier-sdk-cli-login');
5401
- return cachedCliLogin;
5381
+ const mod = await import('@zapier/zapier-sdk-cli-login');
5382
+ if (typeof mod.getToken === "function") {
5383
+ cachedCliLogin = mod;
5384
+ return cachedCliLogin;
5385
+ }
5402
5386
  } catch {
5403
- cachedCliLogin = false;
5404
- return void 0;
5405
5387
  }
5388
+ cachedCliLogin = false;
5389
+ return void 0;
5406
5390
  }
5407
5391
  function injectCliLogin(module) {
5408
5392
  cachedCliLogin = module;
@@ -5930,6 +5914,8 @@ var apiPlugin = (params) => {
5930
5914
  }
5931
5915
  };
5932
5916
  };
5917
+
5918
+ // src/utils/batch-utils.ts
5933
5919
  var DEFAULT_CONCURRENCY = 10;
5934
5920
  var BATCH_START_DELAY_MS = 25;
5935
5921
  var DEFAULT_BATCH_TIMEOUT_MS = 18e4;
@@ -5965,7 +5951,7 @@ async function batch(tasks, options = {}) {
5965
5951
  try {
5966
5952
  let result;
5967
5953
  if (taskTimeoutMs !== void 0) {
5968
- const timeoutPromise = promises.setTimeout(taskTimeoutMs).then(() => {
5954
+ const timeoutPromise = sleep(taskTimeoutMs).then(() => {
5969
5955
  throw new ZapierTimeoutError(
5970
5956
  `Task timed out after ${taskTimeoutMs}ms`
5971
5957
  );
@@ -5980,7 +5966,7 @@ async function batch(tasks, options = {}) {
5980
5966
  const isTimeout = error instanceof ZapierTimeoutError;
5981
5967
  if (retry && !isTimeout && newErrorCount < MAX_CONSECUTIVE_ERRORS) {
5982
5968
  const waitTime = calculateErrorBackoffMs(1e3, newErrorCount);
5983
- await promises.setTimeout(waitTime);
5969
+ await sleep(waitTime);
5984
5970
  taskQueue.push({
5985
5971
  index,
5986
5972
  task,
@@ -6003,7 +5989,7 @@ async function batch(tasks, options = {}) {
6003
5989
  if (!taskState) break;
6004
5990
  await executeTask(taskState);
6005
5991
  if (taskQueue.length > 0 && batchDelay > 0) {
6006
- await promises.setTimeout(batchDelay);
5992
+ await sleep(batchDelay);
6007
5993
  }
6008
5994
  }
6009
5995
  }
@@ -6012,7 +5998,7 @@ async function batch(tasks, options = {}) {
6012
5998
  for (let i = 0; i < workerCount; i++) {
6013
5999
  workers.push(worker());
6014
6000
  if (i < workerCount - 1 && batchDelay > 0) {
6015
- await promises.setTimeout(batchDelay / 10);
6001
+ await sleep(batchDelay / 10);
6016
6002
  }
6017
6003
  }
6018
6004
  await Promise.all(workers);
@@ -6066,8 +6052,7 @@ var GATED_FLAGS = [
6066
6052
  "canDeleteTables"
6067
6053
  ];
6068
6054
  function isEnabledByEnv(key) {
6069
- if (typeof process === "undefined") return void 0;
6070
- const value = process.env[toEnvVar(key)];
6055
+ const value = globalThis.process?.env?.[toEnvVar(key)];
6071
6056
  if (value === void 0) return void 0;
6072
6057
  if (value === "true" || value === "1") return true;
6073
6058
  if (value === "false" || value === "0") return false;
@@ -7865,6 +7850,14 @@ function createTransport(config) {
7865
7850
  return createNoopTransport();
7866
7851
  }
7867
7852
  }
7853
+
7854
+ // src/plugins/eventEmission/utils.ts
7855
+ var osModule = null;
7856
+ try {
7857
+ osModule = __require("os");
7858
+ } catch {
7859
+ osModule = null;
7860
+ }
7868
7861
  function generateEventId() {
7869
7862
  return crypto.randomUUID();
7870
7863
  }
@@ -7872,65 +7865,65 @@ function getCurrentTimestamp() {
7872
7865
  return Date.now();
7873
7866
  }
7874
7867
  function getReleaseId() {
7875
- return process?.env?.SDK_RELEASE_ID || "development";
7868
+ return globalThis.process?.env?.SDK_RELEASE_ID || "development";
7876
7869
  }
7877
7870
  function getOsInfo() {
7871
+ if (!osModule) {
7872
+ return { platform: null, release: null, architecture: null };
7873
+ }
7878
7874
  try {
7879
7875
  return {
7880
- platform: os__namespace.platform() || null,
7881
- release: os__namespace.release() || null,
7882
- architecture: os__namespace.arch() || null
7876
+ platform: osModule.platform() || null,
7877
+ release: osModule.release() || null,
7878
+ architecture: osModule.arch() || null
7883
7879
  };
7884
7880
  } catch {
7885
- return {
7886
- platform: null,
7887
- release: null,
7888
- architecture: null
7889
- };
7881
+ return { platform: null, release: null, architecture: null };
7890
7882
  }
7891
7883
  }
7892
7884
  function getPlatformVersions() {
7893
7885
  const versions = {};
7894
- if (typeof process?.versions === "object") {
7895
- for (const [key, value] of Object.entries(process.versions)) {
7886
+ if (typeof globalThis.process?.versions === "object") {
7887
+ for (const [key, value] of Object.entries(globalThis.process.versions)) {
7896
7888
  versions[key] = value || null;
7897
7889
  }
7898
7890
  }
7899
7891
  return versions;
7900
7892
  }
7901
7893
  function isCi() {
7902
- return !!(process?.env?.CI || process?.env?.CONTINUOUS_INTEGRATION || process?.env?.GITHUB_ACTIONS || process?.env?.JENKINS_URL || process?.env?.GITLAB_CI || process?.env?.CIRCLECI || process?.env?.TRAVIS || process?.env?.BUILDKITE || process?.env?.DRONE || process?.env?.BITBUCKET_PIPELINES_UUID);
7894
+ return !!(globalThis.process?.env?.CI || globalThis.process?.env?.CONTINUOUS_INTEGRATION || globalThis.process?.env?.GITHUB_ACTIONS || globalThis.process?.env?.JENKINS_URL || globalThis.process?.env?.GITLAB_CI || globalThis.process?.env?.CIRCLECI || globalThis.process?.env?.TRAVIS || globalThis.process?.env?.BUILDKITE || globalThis.process?.env?.DRONE || globalThis.process?.env?.BITBUCKET_PIPELINES_UUID);
7903
7895
  }
7904
7896
  function getCiPlatform() {
7905
- if (process?.env?.GITHUB_ACTIONS) return "github-actions";
7906
- if (process?.env?.JENKINS_URL) return "jenkins";
7907
- if (process?.env?.GITLAB_CI) return "gitlab-ci";
7908
- if (process?.env?.CIRCLECI) return "circleci";
7909
- if (process?.env?.TRAVIS) return "travis";
7910
- if (process?.env?.BUILDKITE) return "buildkite";
7911
- if (process?.env?.DRONE) return "drone";
7912
- if (process?.env?.BITBUCKET_PIPELINES_UUID) return "bitbucket-pipelines";
7913
- if (process?.env?.CI || process?.env?.CONTINUOUS_INTEGRATION)
7897
+ if (globalThis.process?.env?.GITHUB_ACTIONS) return "github-actions";
7898
+ if (globalThis.process?.env?.JENKINS_URL) return "jenkins";
7899
+ if (globalThis.process?.env?.GITLAB_CI) return "gitlab-ci";
7900
+ if (globalThis.process?.env?.CIRCLECI) return "circleci";
7901
+ if (globalThis.process?.env?.TRAVIS) return "travis";
7902
+ if (globalThis.process?.env?.BUILDKITE) return "buildkite";
7903
+ if (globalThis.process?.env?.DRONE) return "drone";
7904
+ if (globalThis.process?.env?.BITBUCKET_PIPELINES_UUID)
7905
+ return "bitbucket-pipelines";
7906
+ if (globalThis.process?.env?.CI || globalThis.process?.env?.CONTINUOUS_INTEGRATION)
7914
7907
  return "unknown-ci";
7915
7908
  return null;
7916
7909
  }
7917
7910
  function getMemoryUsage() {
7918
- if (process?.memoryUsage) {
7919
- const usage = process.memoryUsage();
7911
+ if (globalThis.process?.memoryUsage) {
7912
+ const usage = globalThis.process.memoryUsage();
7920
7913
  return usage.rss || null;
7921
7914
  }
7922
7915
  return null;
7923
7916
  }
7924
7917
  function getCpuTime() {
7925
- if (process?.cpuUsage) {
7926
- const usage = process.cpuUsage();
7918
+ if (globalThis.process?.cpuUsage) {
7919
+ const usage = globalThis.process.cpuUsage();
7927
7920
  return Math.round((usage.user + usage.system) / 1e3);
7928
7921
  }
7929
7922
  return null;
7930
7923
  }
7931
7924
 
7932
7925
  // src/plugins/eventEmission/builders.ts
7933
- var SDK_VERSION = "0.40.3";
7926
+ var SDK_VERSION = globalThis.process?.env?.SDK_VERSION || "unknown";
7934
7927
  function createBaseEvent(context = {}) {
7935
7928
  return {
7936
7929
  event_id: generateEventId(),
@@ -7971,12 +7964,12 @@ function buildApplicationLifecycleEvent(data, context = {}) {
7971
7964
  os_release: osInfo.release,
7972
7965
  os_architecture: osInfo.architecture,
7973
7966
  platform_versions: platformVersions,
7974
- environment: context.environment ?? (process.env.NODE_ENV || null),
7967
+ environment: context.environment ?? (globalThis.process?.env?.NODE_ENV || null),
7975
7968
  is_ci_environment: isCi(),
7976
7969
  ci_platform: getCiPlatform(),
7977
7970
  session_id: null,
7978
7971
  metadata: null,
7979
- process_argv: process.argv || null,
7972
+ process_argv: globalThis.process?.argv || null,
7980
7973
  ...data,
7981
7974
  sdk_version: SDK_VERSION
7982
7975
  };
@@ -7990,7 +7983,7 @@ function buildErrorEventWithContext(data, context = {}) {
7990
7983
  selected_api: context.selected_api,
7991
7984
  app_id: context.app_id,
7992
7985
  app_version_id: context.app_version_id,
7993
- environment: context.environment ?? (process.env.NODE_ENV || null),
7986
+ environment: context.environment ?? (globalThis.process?.env?.NODE_ENV || null),
7994
7987
  execution_time_before_error_ms: executionTime,
7995
7988
  ...data,
7996
7989
  sdk_version: SDK_VERSION
@@ -8043,7 +8036,10 @@ function removeExistingListeners() {
8043
8036
  for (const event of events) {
8044
8037
  const listener = registeredListeners[event];
8045
8038
  if (listener) {
8046
- process.removeListener(event, listener);
8039
+ globalThis.process?.removeListener(
8040
+ event,
8041
+ listener
8042
+ );
8047
8043
  }
8048
8044
  }
8049
8045
  registeredListeners = {};
@@ -8089,14 +8085,14 @@ async function silentEmit(transport, subject, event, userContextPromise) {
8089
8085
  }
8090
8086
  }
8091
8087
  function getTransportConfig(options) {
8092
- const envTransport = process?.env?.ZAPIER_SDK_TELEMETRY_TRANSPORT;
8088
+ const envTransport = globalThis.process?.env?.ZAPIER_SDK_TELEMETRY_TRANSPORT;
8093
8089
  if (envTransport === "noop" || envTransport === "disabled") {
8094
8090
  return { type: "noop" };
8095
8091
  }
8096
8092
  if (envTransport === "console") {
8097
8093
  return { type: "console" };
8098
8094
  }
8099
- const endpoint = process?.env?.ZAPIER_SDK_TELEMETRY_ENDPOINT || `${getTrackingBaseUrl({
8095
+ const endpoint = globalThis.process?.env?.ZAPIER_SDK_TELEMETRY_ENDPOINT || `${getTrackingBaseUrl({
8100
8096
  trackingBaseUrl: options?.trackingBaseUrl,
8101
8097
  baseUrl: options?.baseUrl
8102
8098
  })}/api/v4/tracking/event/`;
@@ -8115,7 +8111,7 @@ var eventEmissionPlugin = ({ context }) => {
8115
8111
  callContext: context.options.eventEmission?.callContext,
8116
8112
  transport: (
8117
8113
  // If env var is set, use it (defaultTransport will be from env)
8118
- process?.env?.ZAPIER_SDK_TELEMETRY_TRANSPORT ? defaultTransport : (
8114
+ globalThis.process?.env?.ZAPIER_SDK_TELEMETRY_TRANSPORT ? defaultTransport : (
8119
8115
  // Otherwise, use option transport or default
8120
8116
  context.options.eventEmission?.transport ?? defaultTransport
8121
8117
  )
@@ -8214,7 +8210,7 @@ var eventEmissionPlugin = ({ context }) => {
8214
8210
  getUserContext
8215
8211
  )
8216
8212
  );
8217
- if (typeof process?.on === "function") {
8213
+ if (typeof globalThis.process?.on === "function") {
8218
8214
  removeExistingListeners();
8219
8215
  const exitHandler = (code) => {
8220
8216
  if (closed) return;
@@ -8237,7 +8233,7 @@ var eventEmissionPlugin = ({ context }) => {
8237
8233
  );
8238
8234
  };
8239
8235
  registeredListeners.exit = exitHandler;
8240
- process.on("exit", exitHandler);
8236
+ globalThis.process.on("exit", exitHandler);
8241
8237
  const uncaughtExceptionHandler = async (error) => {
8242
8238
  let errorEvent = buildErrorEventWithContext({
8243
8239
  error_message: error.message || "Unknown error",
@@ -8260,7 +8256,7 @@ var eventEmissionPlugin = ({ context }) => {
8260
8256
  );
8261
8257
  };
8262
8258
  registeredListeners.uncaughtException = uncaughtExceptionHandler;
8263
- process.on("uncaughtException", uncaughtExceptionHandler);
8259
+ globalThis.process.on("uncaughtException", uncaughtExceptionHandler);
8264
8260
  const unhandledRejectionHandler = async (reason, promise) => {
8265
8261
  const errorMessage = reason instanceof Error ? reason.message : typeof reason === "string" ? reason : "Unhandled promise rejection";
8266
8262
  const errorStack = reason instanceof Error ? reason.stack : null;
@@ -8288,7 +8284,7 @@ var eventEmissionPlugin = ({ context }) => {
8288
8284
  );
8289
8285
  };
8290
8286
  registeredListeners.unhandledRejection = unhandledRejectionHandler;
8291
- process.on("unhandledRejection", unhandledRejectionHandler);
8287
+ globalThis.process.on("unhandledRejection", unhandledRejectionHandler);
8292
8288
  const handleSignal = async (signal) => {
8293
8289
  shutdownStartTime = Date.now();
8294
8290
  const uptime = Date.now() - startupTime;
@@ -8309,14 +8305,14 @@ var eventEmissionPlugin = ({ context }) => {
8309
8305
  signalEvent
8310
8306
  );
8311
8307
  const exitCode = signal === "SIGINT" ? 130 : 143;
8312
- process.exit(exitCode);
8308
+ globalThis.process.exit(exitCode);
8313
8309
  };
8314
8310
  const sigintHandler = () => handleSignal("SIGINT");
8315
8311
  const sigtermHandler = () => handleSignal("SIGTERM");
8316
8312
  registeredListeners.SIGINT = sigintHandler;
8317
8313
  registeredListeners.SIGTERM = sigtermHandler;
8318
- process.on("SIGINT", sigintHandler);
8319
- process.on("SIGTERM", sigtermHandler);
8314
+ globalThis.process.on("SIGINT", sigintHandler);
8315
+ globalThis.process.on("SIGTERM", sigtermHandler);
8320
8316
  }
8321
8317
  }
8322
8318
  const close = async (exitCode) => {