@zapier/zapier-sdk 0.87.0 → 0.88.0
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 +22 -0
- package/README.md +44 -44
- package/dist/{chunk-275CXIIT.cjs → chunk-AVB4LBN5.cjs} +179 -101
- package/dist/{chunk-XUT7EPI7.mjs → chunk-IXLMFSFV.mjs} +174 -97
- package/dist/define.d.mts +2 -2
- package/dist/define.d.ts +2 -2
- package/dist/experimental.cjs +350 -346
- package/dist/experimental.d.mts +20 -2
- package/dist/experimental.d.ts +20 -2
- package/dist/experimental.mjs +2 -2
- package/dist/{index-CBvczsOD.d.mts → index-CGfO1ZB1.d.mts} +69 -9
- package/dist/{index-CBvczsOD.d.ts → index-CGfO1ZB1.d.ts} +69 -9
- package/dist/index.cjs +278 -274
- package/dist/index.d.mts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.mjs +1 -1
- package/package.json +2 -2
|
@@ -142,13 +142,34 @@ function buildRegistry({
|
|
|
142
142
|
}).filter((category) => category.functions.length > 0);
|
|
143
143
|
return { functions: filteredFunctions, categories: filteredCategories };
|
|
144
144
|
}
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
if (!
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
145
|
+
var isolated = /* @__PURE__ */ new WeakSet();
|
|
146
|
+
function isolate(observer) {
|
|
147
|
+
if (!observer) return void 0;
|
|
148
|
+
if (isolated.has(observer)) return observer;
|
|
149
|
+
const wrapped = (ctx) => {
|
|
150
|
+
try {
|
|
151
|
+
observer(ctx);
|
|
152
|
+
} catch (error) {
|
|
153
|
+
console.error(
|
|
154
|
+
"[core] A method-lifecycle observer threw and was ignored. Observers are fire-and-forget and must not throw.",
|
|
155
|
+
error
|
|
156
|
+
);
|
|
157
|
+
}
|
|
151
158
|
};
|
|
159
|
+
isolated.add(wrapped);
|
|
160
|
+
return wrapped;
|
|
161
|
+
}
|
|
162
|
+
function composeVoid(existing, added) {
|
|
163
|
+
const wrappedExisting = isolate(existing);
|
|
164
|
+
const wrappedAdded = isolate(added);
|
|
165
|
+
if (!wrappedExisting) return wrappedAdded;
|
|
166
|
+
if (!wrappedAdded) return wrappedExisting;
|
|
167
|
+
const composed = (ctx) => {
|
|
168
|
+
wrappedExisting(ctx);
|
|
169
|
+
wrappedAdded(ctx);
|
|
170
|
+
};
|
|
171
|
+
isolated.add(composed);
|
|
172
|
+
return composed;
|
|
152
173
|
}
|
|
153
174
|
function buildHooks(existing, added) {
|
|
154
175
|
const result = {};
|
|
@@ -822,24 +843,27 @@ function createPaginatedFunction(coreFn, options) {
|
|
|
822
843
|
return result.value;
|
|
823
844
|
});
|
|
824
845
|
if (hooks?.onMethodEnd) {
|
|
825
|
-
firstPagePromise.then(
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
|
|
841
|
-
|
|
842
|
-
|
|
846
|
+
firstPagePromise.then(
|
|
847
|
+
() => {
|
|
848
|
+
hooks.onMethodEnd({
|
|
849
|
+
methodName: functionName,
|
|
850
|
+
args,
|
|
851
|
+
isPaginated: true,
|
|
852
|
+
depth,
|
|
853
|
+
durationMs: Date.now() - startTime
|
|
854
|
+
});
|
|
855
|
+
},
|
|
856
|
+
(error) => {
|
|
857
|
+
hooks.onMethodEnd({
|
|
858
|
+
methodName: functionName,
|
|
859
|
+
args,
|
|
860
|
+
isPaginated: true,
|
|
861
|
+
depth,
|
|
862
|
+
durationMs: Date.now() - startTime,
|
|
863
|
+
error: error instanceof Error ? error : new Error(String(error))
|
|
864
|
+
});
|
|
865
|
+
}
|
|
866
|
+
);
|
|
843
867
|
}
|
|
844
868
|
const pageStream = async function* () {
|
|
845
869
|
yield await firstPagePromise;
|
|
@@ -3829,7 +3853,7 @@ function getZapierSdkService() {
|
|
|
3829
3853
|
}
|
|
3830
3854
|
var MAX_PAGE_LIMIT = 1e4;
|
|
3831
3855
|
var DEFAULT_PAGE_SIZE = 100;
|
|
3832
|
-
var
|
|
3856
|
+
var DEFAULT_ACTION_TIMEOUT_MILLISECONDS = 18e4;
|
|
3833
3857
|
function parseIntEnvVar(name) {
|
|
3834
3858
|
const value = globalThis.process?.env?.[name];
|
|
3835
3859
|
if (value === void 0) return void 0;
|
|
@@ -3843,7 +3867,10 @@ function parseIntEnvVar(name) {
|
|
|
3843
3867
|
return parsed;
|
|
3844
3868
|
}
|
|
3845
3869
|
var ZAPIER_MAX_NETWORK_RETRIES = parseIntEnvVar("ZAPIER_MAX_NETWORK_RETRIES") ?? 3;
|
|
3846
|
-
var
|
|
3870
|
+
var maxNetworkRetryDelaySecondsEnv = parseIntEnvVar(
|
|
3871
|
+
"ZAPIER_MAX_NETWORK_RETRY_DELAY_SECONDS"
|
|
3872
|
+
);
|
|
3873
|
+
var ZAPIER_MAX_NETWORK_RETRY_DELAY_MILLISECONDS = (maxNetworkRetryDelaySecondsEnv != null ? maxNetworkRetryDelaySecondsEnv * 1e3 : void 0) ?? parseIntEnvVar("ZAPIER_MAX_NETWORK_RETRY_DELAY_MS") ?? 6e4;
|
|
3847
3874
|
var MAX_CONCURRENCY_LIMIT = 1e4;
|
|
3848
3875
|
function parseConcurrencyEnvVar(name) {
|
|
3849
3876
|
const value = globalThis.process?.env?.[name];
|
|
@@ -3874,7 +3901,7 @@ function getZapierDefaultApprovalMode() {
|
|
|
3874
3901
|
const isInteractive = !!globalThis.process?.stdin?.isTTY && !!globalThis.process?.stdout?.isTTY;
|
|
3875
3902
|
return isInteractive ? "poll" : "throw";
|
|
3876
3903
|
}
|
|
3877
|
-
var
|
|
3904
|
+
var DEFAULT_APPROVAL_TIMEOUT_MILLISECONDS = 10 * 60 * 1e3;
|
|
3878
3905
|
var DEFAULT_MAX_APPROVAL_RETRIES = 2;
|
|
3879
3906
|
|
|
3880
3907
|
// src/types/properties.ts
|
|
@@ -3916,8 +3943,11 @@ var OffsetPropertySchema = z.number().int().min(0).default(0).describe("Number o
|
|
|
3916
3943
|
var OutputPropertySchema = z.string().describe("Output file path");
|
|
3917
3944
|
var DebugPropertySchema = z.boolean().default(false).describe("Enable debug logging");
|
|
3918
3945
|
var ParamsPropertySchema = z.record(z.string(), z.unknown()).describe("Additional parameters");
|
|
3919
|
-
var
|
|
3920
|
-
`Maximum time to wait for action completion in
|
|
3946
|
+
var ActionTimeoutSecondsPropertySchema = z.number().min(1).optional().describe(
|
|
3947
|
+
`Maximum time to wait for action completion in seconds (default: ${DEFAULT_ACTION_TIMEOUT_MILLISECONDS / 1e3})`
|
|
3948
|
+
);
|
|
3949
|
+
var ActionTimeoutMillisecondsPropertySchema = z.number().min(1e3).optional().describe(
|
|
3950
|
+
`Maximum time to wait for action completion in milliseconds (default: ${DEFAULT_ACTION_TIMEOUT_MILLISECONDS})`
|
|
3921
3951
|
);
|
|
3922
3952
|
var TablePropertySchema = withPositional(
|
|
3923
3953
|
z.string().regex(/^[A-Z0-9]{26}$/, "Table ID must be a valid ULID").describe("The unique identifier of the table")
|
|
@@ -4325,11 +4355,18 @@ var ActionExecutionInputSchema = z.object({
|
|
|
4325
4355
|
authenticationId: AuthenticationIdPropertySchema.optional().meta({
|
|
4326
4356
|
deprecated: true
|
|
4327
4357
|
}),
|
|
4328
|
-
|
|
4358
|
+
timeoutSeconds: ActionTimeoutSecondsPropertySchema,
|
|
4359
|
+
/** @deprecated Use `timeoutSeconds` instead. */
|
|
4360
|
+
timeoutMs: ActionTimeoutMillisecondsPropertySchema.meta({
|
|
4361
|
+
deprecated: true
|
|
4362
|
+
})
|
|
4329
4363
|
}).describe(
|
|
4330
4364
|
"Execute an action with the given inputs for the bound app, as an alternative to runAction"
|
|
4331
4365
|
).meta({
|
|
4332
|
-
aliases: {
|
|
4366
|
+
aliases: {
|
|
4367
|
+
connectionId: "connection",
|
|
4368
|
+
authenticationId: "connection"
|
|
4369
|
+
}
|
|
4333
4370
|
});
|
|
4334
4371
|
var AppFactoryInputSchema = z.object({
|
|
4335
4372
|
/** @deprecated Use `connection` instead. */
|
|
@@ -4507,19 +4544,19 @@ function createDebugFetch(options) {
|
|
|
4507
4544
|
|
|
4508
4545
|
// src/utils/retry-utils.ts
|
|
4509
4546
|
var MAX_CONSECUTIVE_ERRORS = 3;
|
|
4510
|
-
var
|
|
4511
|
-
var
|
|
4547
|
+
var BASE_ERROR_BACKOFF_MILLISECONDS = 1e3;
|
|
4548
|
+
var BASE_EXPONENTIAL_BACKOFF_MILLISECONDS = 1e3;
|
|
4512
4549
|
var JITTER_FACTOR = 0.5;
|
|
4513
4550
|
function calculateErrorBackoffMs(baseInterval, errorCount) {
|
|
4514
4551
|
const jitter = Math.random() * JITTER_FACTOR * baseInterval;
|
|
4515
4552
|
const errorBackoff = Math.min(
|
|
4516
|
-
|
|
4553
|
+
BASE_ERROR_BACKOFF_MILLISECONDS * (errorCount / 2),
|
|
4517
4554
|
baseInterval * 2
|
|
4518
4555
|
// Cap error backoff at 2x the base interval
|
|
4519
4556
|
);
|
|
4520
4557
|
return Math.floor(baseInterval + jitter + errorBackoff);
|
|
4521
4558
|
}
|
|
4522
|
-
function calculateExponentialBackoffMs(attempt, baseDelayMs =
|
|
4559
|
+
function calculateExponentialBackoffMs(attempt, baseDelayMs = BASE_EXPONENTIAL_BACKOFF_MILLISECONDS) {
|
|
4523
4560
|
const baseDelay = baseDelayMs * Math.pow(2, attempt - 1);
|
|
4524
4561
|
const jitter = Math.random() * JITTER_FACTOR * baseDelay;
|
|
4525
4562
|
return Math.floor(baseDelay + jitter);
|
|
@@ -4622,11 +4659,11 @@ function combineAbortSignals({
|
|
|
4622
4659
|
}
|
|
4623
4660
|
|
|
4624
4661
|
// src/api/polling.ts
|
|
4625
|
-
var
|
|
4662
|
+
var DEFAULT_TIMEOUT_MILLISECONDS = 18e4;
|
|
4626
4663
|
var DEFAULT_SUCCESS_STATUS = 200;
|
|
4627
4664
|
var DEFAULT_PENDING_STATUS = 202;
|
|
4628
|
-
var
|
|
4629
|
-
var
|
|
4665
|
+
var DEFAULT_INITIAL_DELAY_MILLISECONDS = 50;
|
|
4666
|
+
var DEFAULT_MAX_POLLING_INTERVAL_MILLISECONDS = 6e4;
|
|
4630
4667
|
var POLLING_STAGES = [
|
|
4631
4668
|
[125, 125],
|
|
4632
4669
|
// Up to 125ms: poll every 125ms
|
|
@@ -4642,11 +4679,11 @@ var POLLING_STAGES = [
|
|
|
4642
4679
|
// Up to 60s: poll every 5s
|
|
4643
4680
|
[18e4, 1e4]
|
|
4644
4681
|
// Up to 3min: poll every 10s
|
|
4645
|
-
// Beyond 3min: use
|
|
4682
|
+
// Beyond 3min: use DEFAULT_MAX_POLLING_INTERVAL_MILLISECONDS (60s)
|
|
4646
4683
|
];
|
|
4647
4684
|
function getPollingInterval(elapsedMs) {
|
|
4648
4685
|
const stage = POLLING_STAGES.find(([threshold]) => elapsedMs < threshold);
|
|
4649
|
-
return stage ? stage[1] :
|
|
4686
|
+
return stage ? stage[1] : DEFAULT_MAX_POLLING_INTERVAL_MILLISECONDS;
|
|
4650
4687
|
}
|
|
4651
4688
|
function makeAbortError() {
|
|
4652
4689
|
if (typeof DOMException !== "undefined") {
|
|
@@ -4704,8 +4741,8 @@ var processResponse = async (response, successStatus, pendingStatus, isPending,
|
|
|
4704
4741
|
async function pollUntilComplete(options) {
|
|
4705
4742
|
const {
|
|
4706
4743
|
fetchPoll,
|
|
4707
|
-
timeoutMs =
|
|
4708
|
-
initialDelay =
|
|
4744
|
+
timeoutMs = DEFAULT_TIMEOUT_MILLISECONDS,
|
|
4745
|
+
initialDelay = DEFAULT_INITIAL_DELAY_MILLISECONDS,
|
|
4709
4746
|
successStatus = DEFAULT_SUCCESS_STATUS,
|
|
4710
4747
|
pendingStatus = DEFAULT_PENDING_STATUS,
|
|
4711
4748
|
isPending,
|
|
@@ -5152,7 +5189,7 @@ function clearTokenCache() {
|
|
|
5152
5189
|
cachedCliLogin = void 0;
|
|
5153
5190
|
cachedDefaultCache = void 0;
|
|
5154
5191
|
}
|
|
5155
|
-
var
|
|
5192
|
+
var TOKEN_EXPIRATION_BUFFER_MILLISECONDS = 5 * 60 * 1e3;
|
|
5156
5193
|
async function resolveCache(options) {
|
|
5157
5194
|
if (options.cache) return options.cache;
|
|
5158
5195
|
if (cachedDefaultCache !== void 0) return cachedDefaultCache;
|
|
@@ -5173,7 +5210,7 @@ async function resolveCache(options) {
|
|
|
5173
5210
|
}
|
|
5174
5211
|
function entryIsValid(entry) {
|
|
5175
5212
|
if (entry.expiresAt === void 0) return true;
|
|
5176
|
-
return entry.expiresAt > Date.now() +
|
|
5213
|
+
return entry.expiresAt > Date.now() + TOKEN_EXPIRATION_BUFFER_MILLISECONDS;
|
|
5177
5214
|
}
|
|
5178
5215
|
async function readCachedToken(cacheKey, cache) {
|
|
5179
5216
|
const cached = await cache.get(cacheKey);
|
|
@@ -5789,7 +5826,7 @@ function parseDeprecationDate(value) {
|
|
|
5789
5826
|
}
|
|
5790
5827
|
|
|
5791
5828
|
// src/sdk-version.ts
|
|
5792
|
-
var SDK_VERSION = (typeof process !== "undefined" && process.env ? "0.
|
|
5829
|
+
var SDK_VERSION = (typeof process !== "undefined" && process.env ? "0.88.0" : void 0) || "unknown";
|
|
5793
5830
|
|
|
5794
5831
|
// src/utils/open-url.ts
|
|
5795
5832
|
var nodePrefix = "node:";
|
|
@@ -5900,7 +5937,7 @@ var PollApprovalResponseSchema = z.object({
|
|
|
5900
5937
|
mode: ApprovalModeSchema.optional(),
|
|
5901
5938
|
reason: z.string().optional()
|
|
5902
5939
|
});
|
|
5903
|
-
var
|
|
5940
|
+
var APPROVAL_MAX_POLLING_INTERVAL_MILLISECONDS = 5e3;
|
|
5904
5941
|
function validateSdkPath(path) {
|
|
5905
5942
|
if (!path.startsWith("/") || path.startsWith("//")) {
|
|
5906
5943
|
throw new ZapierValidationError(
|
|
@@ -6065,7 +6102,7 @@ var ZapierApiClient = class {
|
|
|
6065
6102
|
}
|
|
6066
6103
|
const rateLimitInfo = parseRateLimitHeaders(response);
|
|
6067
6104
|
const delayMs = rateLimitInfo.retryAfterMs ?? calculateExponentialBackoffMs(retries + 1);
|
|
6068
|
-
if (delayMs > this.
|
|
6105
|
+
if (delayMs > this.maxNetworkRetryDelayMilliseconds || retries >= this.maxNetworkRetries) {
|
|
6069
6106
|
throw new ZapierRateLimitError("Rate limited", {
|
|
6070
6107
|
statusCode: 429,
|
|
6071
6108
|
rateLimit: rateLimitInfo,
|
|
@@ -6322,8 +6359,8 @@ var ZapierApiClient = class {
|
|
|
6322
6359
|
authRequired: options.authRequired,
|
|
6323
6360
|
signal: options.signal
|
|
6324
6361
|
}),
|
|
6325
|
-
initialDelay: options.initialDelay,
|
|
6326
|
-
timeoutMs: options.timeoutMs,
|
|
6362
|
+
initialDelay: options.initialDelayMilliseconds ?? options.initialDelay,
|
|
6363
|
+
timeoutMs: options.timeoutMilliseconds ?? options.timeoutMs,
|
|
6327
6364
|
successStatus: options.successStatus,
|
|
6328
6365
|
pendingStatus: options.pendingStatus,
|
|
6329
6366
|
isPending: options.isPending,
|
|
@@ -6332,7 +6369,7 @@ var ZapierApiClient = class {
|
|
|
6332
6369
|
});
|
|
6333
6370
|
};
|
|
6334
6371
|
this.maxNetworkRetries = options.maxNetworkRetries ?? ZAPIER_MAX_NETWORK_RETRIES;
|
|
6335
|
-
this.
|
|
6372
|
+
this.maxNetworkRetryDelayMilliseconds = options.maxNetworkRetryDelayMilliseconds ?? options.maxNetworkRetryDelayMs ?? ZAPIER_MAX_NETWORK_RETRY_DELAY_MILLISECONDS;
|
|
6336
6373
|
const requested = options.maxConcurrentRequests;
|
|
6337
6374
|
const limit = requested === void 0 || Number.isNaN(requested) ? ZAPIER_MAX_CONCURRENT_REQUESTS : requested;
|
|
6338
6375
|
if (limit !== Infinity && (!Number.isInteger(limit) || limit < 1 || limit > MAX_CONCURRENCY_LIMIT)) {
|
|
@@ -6907,7 +6944,7 @@ var ZapierApiClient = class {
|
|
|
6907
6944
|
}
|
|
6908
6945
|
await openApproval(approval.approval_url);
|
|
6909
6946
|
}
|
|
6910
|
-
const timeoutMs = this.options.approvalTimeoutMs ??
|
|
6947
|
+
const timeoutMs = this.options.approvalTimeoutMilliseconds ?? this.options.approvalTimeoutMs ?? DEFAULT_APPROVAL_TIMEOUT_MILLISECONDS;
|
|
6911
6948
|
let streamAbortController;
|
|
6912
6949
|
let streamPromise;
|
|
6913
6950
|
let removeStreamAbortListener;
|
|
@@ -6947,7 +6984,7 @@ var ZapierApiClient = class {
|
|
|
6947
6984
|
})
|
|
6948
6985
|
),
|
|
6949
6986
|
timeoutMs,
|
|
6950
|
-
maxPollingIntervalMs:
|
|
6987
|
+
maxPollingIntervalMs: APPROVAL_MAX_POLLING_INTERVAL_MILLISECONDS,
|
|
6951
6988
|
signal,
|
|
6952
6989
|
isPending: (body2) => {
|
|
6953
6990
|
const parsed = PollApprovalResponseSchema.safeParse(body2);
|
|
@@ -7127,8 +7164,10 @@ var apiPlugin = defineProperty({
|
|
|
7127
7164
|
onEvent,
|
|
7128
7165
|
debug = false,
|
|
7129
7166
|
maxNetworkRetries = ZAPIER_MAX_NETWORK_RETRIES,
|
|
7130
|
-
|
|
7167
|
+
maxNetworkRetryDelaySeconds,
|
|
7168
|
+
maxNetworkRetryDelayMs,
|
|
7131
7169
|
maxConcurrentRequests = ZAPIER_MAX_CONCURRENT_REQUESTS,
|
|
7170
|
+
approvalTimeoutSeconds,
|
|
7132
7171
|
approvalTimeoutMs,
|
|
7133
7172
|
maxApprovalRetries,
|
|
7134
7173
|
approvalMode,
|
|
@@ -7143,9 +7182,9 @@ var apiPlugin = defineProperty({
|
|
|
7143
7182
|
fetch: customFetch,
|
|
7144
7183
|
onEvent,
|
|
7145
7184
|
maxNetworkRetries,
|
|
7146
|
-
maxNetworkRetryDelayMs,
|
|
7185
|
+
maxNetworkRetryDelayMilliseconds: (maxNetworkRetryDelaySeconds != null ? maxNetworkRetryDelaySeconds * 1e3 : maxNetworkRetryDelayMs) ?? ZAPIER_MAX_NETWORK_RETRY_DELAY_MILLISECONDS,
|
|
7147
7186
|
maxConcurrentRequests,
|
|
7148
|
-
approvalTimeoutMs,
|
|
7187
|
+
approvalTimeoutMilliseconds: approvalTimeoutSeconds != null ? approvalTimeoutSeconds * 1e3 : approvalTimeoutMs,
|
|
7149
7188
|
maxApprovalRetries,
|
|
7150
7189
|
approvalMode,
|
|
7151
7190
|
openAutoModeApprovalsInBrowser,
|
|
@@ -7853,9 +7892,13 @@ var FetchInitZapierFieldsSchema = z.object({
|
|
|
7853
7892
|
deprecated: true
|
|
7854
7893
|
}),
|
|
7855
7894
|
callbackUrl: z.string().optional().describe("URL to send async response to (makes request async)"),
|
|
7895
|
+
maxTimeSeconds: z.number().int().positive().optional().describe(
|
|
7896
|
+
"Maximum seconds to wait for a response. Honored on a best-effort basis; the server may silently enforce a lower ceiling."
|
|
7897
|
+
),
|
|
7898
|
+
/** @deprecated Use `maxTimeSeconds` instead. */
|
|
7856
7899
|
maxTime: z.number().int().positive().optional().describe(
|
|
7857
7900
|
"Maximum seconds to wait for a response. Honored on a best-effort basis; the server may silently enforce a lower ceiling."
|
|
7858
|
-
)
|
|
7901
|
+
).meta({ deprecated: true })
|
|
7859
7902
|
});
|
|
7860
7903
|
var FetchInitSchema = z.object({
|
|
7861
7904
|
method: z.enum(["GET", "POST", "PUT", "DELETE", "PATCH", "HEAD", "OPTIONS"]).optional().describe("HTTP method for the request (defaults to GET)"),
|
|
@@ -7871,7 +7914,11 @@ var FetchInitSchema = z.object({
|
|
|
7871
7914
|
}).extend(FetchInitZapierFieldsSchema.shape).optional().describe(
|
|
7872
7915
|
"Request options including method, headers, body, and authentication"
|
|
7873
7916
|
).meta({
|
|
7874
|
-
aliases: {
|
|
7917
|
+
aliases: {
|
|
7918
|
+
connectionId: "connection",
|
|
7919
|
+
authenticationId: "connection",
|
|
7920
|
+
maxTime: "maxTimeSeconds"
|
|
7921
|
+
}
|
|
7875
7922
|
});
|
|
7876
7923
|
var FetchInputSchema = z.object({
|
|
7877
7924
|
url: FetchUrlSchema,
|
|
@@ -7922,7 +7969,7 @@ function rewrapIfMaxTimeTimeout({
|
|
|
7922
7969
|
const reason = abortSignal.reason;
|
|
7923
7970
|
if (!reason || reason.name !== "TimeoutError") return error;
|
|
7924
7971
|
return new ZapierTimeoutError(
|
|
7925
|
-
`fetch timed out after ${maxTimeSeconds}s (
|
|
7972
|
+
`fetch timed out after ${maxTimeSeconds}s (maxTimeSeconds)`,
|
|
7926
7973
|
{ cause: error }
|
|
7927
7974
|
);
|
|
7928
7975
|
}
|
|
@@ -7987,9 +8034,11 @@ var fetchPlugin = defineMethod({
|
|
|
7987
8034
|
connection,
|
|
7988
8035
|
authenticationId,
|
|
7989
8036
|
callbackUrl,
|
|
8037
|
+
maxTimeSeconds: maxTimeSecondsInput,
|
|
7990
8038
|
maxTime,
|
|
7991
8039
|
...fetchInit
|
|
7992
8040
|
} = init || {};
|
|
8041
|
+
const maxTimeSeconds = maxTimeSecondsInput ?? maxTime;
|
|
7993
8042
|
const resolvedConnectionId = await resolveConnectionId({
|
|
7994
8043
|
connectionId,
|
|
7995
8044
|
connection,
|
|
@@ -8018,13 +8067,13 @@ var fetchPlugin = defineMethod({
|
|
|
8018
8067
|
if (callbackUrl) {
|
|
8019
8068
|
headers["X-Relay-Callback-Url"] = callbackUrl;
|
|
8020
8069
|
}
|
|
8021
|
-
if (
|
|
8022
|
-
headers["X-Zapier-Sdk-Max-Time"] = String(
|
|
8070
|
+
if (maxTimeSeconds !== void 0) {
|
|
8071
|
+
headers["X-Zapier-Sdk-Max-Time"] = String(maxTimeSeconds);
|
|
8023
8072
|
}
|
|
8024
8073
|
const upstreamUrl = new URL(url).toString();
|
|
8025
8074
|
const method = (fetchInit.method ?? "GET").toUpperCase();
|
|
8026
8075
|
const abortHandle = buildAbortHandle({
|
|
8027
|
-
maxTimeSeconds
|
|
8076
|
+
maxTimeSeconds,
|
|
8028
8077
|
callerSignal: fetchInit.signal
|
|
8029
8078
|
});
|
|
8030
8079
|
try {
|
|
@@ -8054,7 +8103,7 @@ var fetchPlugin = defineMethod({
|
|
|
8054
8103
|
throw rewrapIfMaxTimeTimeout({
|
|
8055
8104
|
error,
|
|
8056
8105
|
abortSignal: abortHandle?.signal,
|
|
8057
|
-
maxTimeSeconds
|
|
8106
|
+
maxTimeSeconds
|
|
8058
8107
|
});
|
|
8059
8108
|
} finally {
|
|
8060
8109
|
abortHandle?.dispose();
|
|
@@ -8074,7 +8123,9 @@ var RunActionBaseSchema = z.object({
|
|
|
8074
8123
|
inputs: InputsPropertySchema.optional().describe(
|
|
8075
8124
|
"Input parameters for the action"
|
|
8076
8125
|
),
|
|
8077
|
-
|
|
8126
|
+
timeoutSeconds: ActionTimeoutSecondsPropertySchema,
|
|
8127
|
+
/** @deprecated Use `timeoutSeconds` instead. */
|
|
8128
|
+
timeoutMs: ActionTimeoutMillisecondsPropertySchema.meta({ deprecated: true }),
|
|
8078
8129
|
pageSize: z.number().min(1).optional().describe("Number of results per page"),
|
|
8079
8130
|
maxItems: z.number().min(1).optional().describe("Maximum total items to return across all pages"),
|
|
8080
8131
|
cursor: z.string().optional().describe("Cursor to start from")
|
|
@@ -9828,7 +9879,7 @@ async function executeAction(actionOptions) {
|
|
|
9828
9879
|
executionOptions,
|
|
9829
9880
|
cursor,
|
|
9830
9881
|
connectionId,
|
|
9831
|
-
|
|
9882
|
+
timeoutMilliseconds
|
|
9832
9883
|
} = actionOptions;
|
|
9833
9884
|
const runRequestData = {
|
|
9834
9885
|
selected_api: selectedApi,
|
|
@@ -9864,7 +9915,7 @@ async function executeAction(actionOptions) {
|
|
|
9864
9915
|
return await api.poll(`/zapier/api/actions/v1/runs/${runId}`, {
|
|
9865
9916
|
successStatus: 200,
|
|
9866
9917
|
pendingStatus: 202,
|
|
9867
|
-
|
|
9918
|
+
timeoutMilliseconds: timeoutMilliseconds ?? DEFAULT_ACTION_TIMEOUT_MILLISECONDS,
|
|
9868
9919
|
resource: { type: "run", id: runId },
|
|
9869
9920
|
isPending: (result) => {
|
|
9870
9921
|
const data = result?.data;
|
|
@@ -9873,7 +9924,7 @@ async function executeAction(actionOptions) {
|
|
|
9873
9924
|
resultExtractor: (result) => result.data
|
|
9874
9925
|
});
|
|
9875
9926
|
}
|
|
9876
|
-
var
|
|
9927
|
+
var CONTEXT_CACHE_TTL_MILLISECONDS = 6e4;
|
|
9877
9928
|
var CONTEXT_CACHE_MAX_SIZE = 500;
|
|
9878
9929
|
var runActionPlugin = defineMethod({
|
|
9879
9930
|
name: "runAction",
|
|
@@ -9954,7 +10005,7 @@ var runActionPlugin = defineMethod({
|
|
|
9954
10005
|
evictIfNeeded();
|
|
9955
10006
|
cache.set(contextKey, {
|
|
9956
10007
|
promise: pending,
|
|
9957
|
-
expiresAt: Date.now() +
|
|
10008
|
+
expiresAt: Date.now() + CONTEXT_CACHE_TTL_MILLISECONDS
|
|
9958
10009
|
});
|
|
9959
10010
|
return pending;
|
|
9960
10011
|
}
|
|
@@ -9971,9 +10022,9 @@ var runActionPlugin = defineMethod({
|
|
|
9971
10022
|
connection,
|
|
9972
10023
|
authenticationId,
|
|
9973
10024
|
inputs = {},
|
|
9974
|
-
cursor
|
|
9975
|
-
timeoutMs
|
|
10025
|
+
cursor
|
|
9976
10026
|
} = input;
|
|
10027
|
+
const timeoutMilliseconds = input.timeoutSeconds != null ? input.timeoutSeconds * 1e3 : input.timeoutMs;
|
|
9977
10028
|
const resolvedConnectionId = await resolveConnectionId({
|
|
9978
10029
|
connectionId,
|
|
9979
10030
|
connection,
|
|
@@ -10001,7 +10052,7 @@ var runActionPlugin = defineMethod({
|
|
|
10001
10052
|
executionOptions: { inputs },
|
|
10002
10053
|
cursor,
|
|
10003
10054
|
connectionId: resolvedConnectionId,
|
|
10004
|
-
|
|
10055
|
+
timeoutMilliseconds
|
|
10005
10056
|
});
|
|
10006
10057
|
if (result.errors && result.errors.length > 0) {
|
|
10007
10058
|
const errorMessage2 = result.errors.map(
|
|
@@ -10058,6 +10109,7 @@ function createActionFunction(appKey, actionType, actionKey, imports, pinnedAuth
|
|
|
10058
10109
|
connectionId: providedConnectionId,
|
|
10059
10110
|
connection: providedConnection,
|
|
10060
10111
|
authenticationId: providedAuthenticationId,
|
|
10112
|
+
timeoutSeconds,
|
|
10061
10113
|
timeoutMs
|
|
10062
10114
|
} = actionOptions;
|
|
10063
10115
|
const { connectionId, connection } = resolveProxyConnection({
|
|
@@ -10074,6 +10126,7 @@ function createActionFunction(appKey, actionType, actionKey, imports, pinnedAuth
|
|
|
10074
10126
|
action: actionKey,
|
|
10075
10127
|
inputs,
|
|
10076
10128
|
connection: connectionId ?? connection,
|
|
10129
|
+
timeoutSeconds,
|
|
10077
10130
|
timeoutMs
|
|
10078
10131
|
});
|
|
10079
10132
|
};
|
|
@@ -11625,12 +11678,18 @@ var WaitForNewConnectionSchema = z.object({
|
|
|
11625
11678
|
startedAt: z.number().int().nonnegative().describe(
|
|
11626
11679
|
"Unix timestamp (seconds). Only connections whose `date` is at or after this value count as 'new'. Prefer the `startedAt` returned by `get-connection-start-url` \u2014 it's server-stamped, so the comparison isn't thrown off by client clock skew. If you mint the timestamp yourself, capture it *before* showing the start URL so a fast OAuth completion isn't missed."
|
|
11627
11680
|
),
|
|
11681
|
+
timeoutSeconds: z.number().int().positive().optional().describe("How long to wait before giving up. Default 5 minutes (300)."),
|
|
11682
|
+
/** @deprecated Use `timeoutSeconds` instead. */
|
|
11628
11683
|
timeoutMs: z.number().int().positive().optional().describe(
|
|
11629
11684
|
"How long to wait before giving up. Default 5 minutes (300_000)."
|
|
11685
|
+
).meta({ deprecated: true }),
|
|
11686
|
+
pollIntervalMilliseconds: z.number().int().positive().optional().describe(
|
|
11687
|
+
"Delay before the first poll request, in ms. Default 3 seconds (3_000). Subsequent polling cadence is managed by the SDK's polling primitive (backoff with sane defaults)."
|
|
11630
11688
|
),
|
|
11689
|
+
/** @deprecated Use `pollIntervalMilliseconds` instead. */
|
|
11631
11690
|
pollIntervalMs: z.number().int().positive().optional().describe(
|
|
11632
11691
|
"Delay before the first poll request, in ms. Default 3 seconds (3_000). Subsequent polling cadence is managed by the SDK's polling primitive (backoff with sane defaults)."
|
|
11633
|
-
)
|
|
11692
|
+
).meta({ deprecated: true })
|
|
11634
11693
|
}).describe(
|
|
11635
11694
|
"Wait for a new connection to appear for the given app. Polls `/api/v0/connections` with server-side `ordering=-date` until the most recent matching row's `date` is at or after the started-at timestamp, then returns it. Pair with `get-connection-start-url` \u2014 that mints the URL the user opens, this waits for the resulting connection to land. Errors with a timeout after the configured timeout (default 5 min). Example (JS):\n\n```ts\nconst { data: { url, app, startedAt } } = await zapier.getConnectionStartUrl({ app: 'slack' });\n// show `url` to the user via the channel they're reading from\nconst { data: conn } = await zapier.waitForNewConnection({ app, startedAt });\n```"
|
|
11636
11695
|
);
|
|
@@ -11677,8 +11736,8 @@ var waitForNewConnectionPlugin = defineMethod({
|
|
|
11677
11736
|
page_size: "1"
|
|
11678
11737
|
},
|
|
11679
11738
|
authRequired: true,
|
|
11680
|
-
|
|
11681
|
-
|
|
11739
|
+
timeoutMilliseconds: input.timeoutSeconds != null ? input.timeoutSeconds * 1e3 : input.timeoutMs ?? 3e5,
|
|
11740
|
+
initialDelayMilliseconds: input.pollIntervalMilliseconds ?? input.pollIntervalMs ?? 3e3,
|
|
11682
11741
|
isPending: (body) => {
|
|
11683
11742
|
const rows = body.data ?? [];
|
|
11684
11743
|
const head = rows[0];
|
|
@@ -11728,12 +11787,20 @@ var CreateConnectionSchema = z.object({
|
|
|
11728
11787
|
browser: z.enum(["auto", "always", "never"]).default("auto").describe(
|
|
11729
11788
|
"When to auto-open the URL in a browser. `auto` (default) opens in local sessions and skips opening in CI / SSH / headless-Linux. `always` forces the open attempt. `never` skips it. The URL is always printed to stderr regardless \u2014 a failed or skipped open degrades gracefully to copy-paste."
|
|
11730
11789
|
),
|
|
11790
|
+
timeoutSeconds: z.number().int().positive().optional().describe(
|
|
11791
|
+
"How long to wait for the user to complete the connection flow before giving up. Default 5 minutes (300)."
|
|
11792
|
+
),
|
|
11793
|
+
/** @deprecated Use `timeoutSeconds` instead. */
|
|
11731
11794
|
timeoutMs: z.number().int().positive().optional().describe(
|
|
11732
11795
|
"How long to wait for the user to complete the connection flow before giving up. Default 5 minutes (300_000)."
|
|
11796
|
+
).meta({ deprecated: true }),
|
|
11797
|
+
pollIntervalMilliseconds: z.number().int().positive().optional().describe(
|
|
11798
|
+
"Delay before the first poll request, in ms. Default 3 seconds (3_000). Subsequent polling cadence is managed by the SDK's polling primitive (backoff with sane defaults)."
|
|
11733
11799
|
),
|
|
11800
|
+
/** @deprecated Use `pollIntervalMilliseconds` instead. */
|
|
11734
11801
|
pollIntervalMs: z.number().int().positive().optional().describe(
|
|
11735
11802
|
"Delay before the first poll request, in ms. Default 3 seconds (3_000). Subsequent polling cadence is managed by the SDK's polling primitive (backoff with sane defaults)."
|
|
11736
|
-
)
|
|
11803
|
+
).meta({ deprecated: true })
|
|
11737
11804
|
}).describe(
|
|
11738
11805
|
"Create a new app connection, end-to-end. Mints the start URL via `get-connection-start-url`, prints it to stderr, opportunistically opens it in a browser when it looks safe to do so (skipping CI / SSH / headless-Linux by default \u2014 pass `--browser always` to force, `--browser never` to suppress), then polls via `wait-for-new-connection` until the user completes OAuth and the new connection appears. Returns the connection.\n\nThis is the right command for most callers. Reach for the lower-level building blocks when you want either of: (a) hand off the URL and *not* block on completion \u2014 call `get-connection-start-url` alone, no `wait-for-new-connection` needed, or (b) do something custom between minting the URL and waiting \u2014 call `get-connection-start-url`, do your work (email or DM the URL, render a QR code, etc.), then `wait-for-new-connection`."
|
|
11739
11806
|
);
|
|
@@ -11795,8 +11862,9 @@ Open this URL to complete the connection:
|
|
|
11795
11862
|
// Server-stamped mint time: measured on the same clock as a connection's
|
|
11796
11863
|
// `date`, so the freshness check is immune to client/server clock skew.
|
|
11797
11864
|
startedAt: start2.startedAt,
|
|
11865
|
+
timeoutSeconds: input.timeoutSeconds,
|
|
11798
11866
|
timeoutMs: input.timeoutMs,
|
|
11799
|
-
|
|
11867
|
+
pollIntervalMilliseconds: input.pollIntervalMilliseconds ?? input.pollIntervalMs
|
|
11800
11868
|
});
|
|
11801
11869
|
return {
|
|
11802
11870
|
data: CreateConnectionItemSchema.parse({
|
|
@@ -13155,9 +13223,9 @@ async function* readInboxEvents({
|
|
|
13155
13223
|
}
|
|
13156
13224
|
|
|
13157
13225
|
// src/plugins/triggers/watchTriggerInbox/index.ts
|
|
13158
|
-
var
|
|
13159
|
-
var
|
|
13160
|
-
var
|
|
13226
|
+
var SSE_RECONNECT_BACKOFF_MILLISECONDS = [500, 1e3, 2e3, 5e3];
|
|
13227
|
+
var DEFAULT_SAFETY_DRAIN_INTERVAL_MILLISECONDS = 3e5;
|
|
13228
|
+
var SSE_HEALTHY_CONNECTION_MILLISECONDS = 5e3;
|
|
13161
13229
|
var ERROR_BACKOFF_CAP = 4;
|
|
13162
13230
|
function createDrainLatch() {
|
|
13163
13231
|
let pending = false;
|
|
@@ -13215,7 +13283,7 @@ async function drainRunner({
|
|
|
13215
13283
|
consecutiveErrors = Math.min(consecutiveErrors + 1, ERROR_BACKOFF_CAP);
|
|
13216
13284
|
errorAttempts += 1;
|
|
13217
13285
|
const delay = calculateErrorBackoffMs(
|
|
13218
|
-
|
|
13286
|
+
BASE_ERROR_BACKOFF_MILLISECONDS,
|
|
13219
13287
|
consecutiveErrors
|
|
13220
13288
|
);
|
|
13221
13289
|
const statusCode = errorStatusCode(error);
|
|
@@ -13281,7 +13349,7 @@ async function sseLoop({
|
|
|
13281
13349
|
})) {
|
|
13282
13350
|
drainRequest.request();
|
|
13283
13351
|
}
|
|
13284
|
-
if (connected && Date.now() - connectedAt >=
|
|
13352
|
+
if (connected && Date.now() - connectedAt >= SSE_HEALTHY_CONNECTION_MILLISECONDS) {
|
|
13285
13353
|
attempt = 0;
|
|
13286
13354
|
}
|
|
13287
13355
|
} catch (err) {
|
|
@@ -13305,8 +13373,11 @@ async function sseLoop({
|
|
|
13305
13373
|
transientError = err;
|
|
13306
13374
|
}
|
|
13307
13375
|
if (signal.aborted) return;
|
|
13308
|
-
const delay =
|
|
13309
|
-
attempt = Math.min(
|
|
13376
|
+
const delay = SSE_RECONNECT_BACKOFF_MILLISECONDS[Math.min(attempt, SSE_RECONNECT_BACKOFF_MILLISECONDS.length - 1)];
|
|
13377
|
+
attempt = Math.min(
|
|
13378
|
+
attempt + 1,
|
|
13379
|
+
SSE_RECONNECT_BACKOFF_MILLISECONDS.length - 1
|
|
13380
|
+
);
|
|
13310
13381
|
if (transientError !== void 0 && debug) {
|
|
13311
13382
|
const statusCode = errorStatusCode(transientError);
|
|
13312
13383
|
const errorMsg = errorMessage(transientError);
|
|
@@ -13363,7 +13434,7 @@ var watchTriggerInboxPlugin = defineMethod({
|
|
|
13363
13434
|
const { concurrency, leaseLimit } = resolveConcurrencyAndLease(input);
|
|
13364
13435
|
const inboxId = await resolveTriggerInboxId({ api, inbox: input.inbox });
|
|
13365
13436
|
if (input.signal?.aborted) return;
|
|
13366
|
-
const safetyDrainMs = input.maxDrainIntervalSeconds !== void 0 ? input.maxDrainIntervalSeconds * 1e3 :
|
|
13437
|
+
const safetyDrainMs = input.maxDrainIntervalSeconds !== void 0 ? input.maxDrainIntervalSeconds * 1e3 : DEFAULT_SAFETY_DRAIN_INTERVAL_MILLISECONDS;
|
|
13367
13438
|
const stop = new AbortController();
|
|
13368
13439
|
const combined = combineAbortSignals({
|
|
13369
13440
|
handles: [
|
|
@@ -14392,7 +14463,7 @@ var updateTableRecordsPlugin = defineMethod({
|
|
|
14392
14463
|
|
|
14393
14464
|
// src/plugins/eventEmission/transport.ts
|
|
14394
14465
|
var DEFAULT_RETRY_ATTEMPTS = 2;
|
|
14395
|
-
var
|
|
14466
|
+
var DEFAULT_RETRY_DELAY_MILLISECONDS = 300;
|
|
14396
14467
|
function createHttpTransport(config) {
|
|
14397
14468
|
const delay = async (ms) => {
|
|
14398
14469
|
return new Promise((resolve2) => {
|
|
@@ -14417,12 +14488,12 @@ function createHttpTransport(config) {
|
|
|
14417
14488
|
body: JSON.stringify(payload)
|
|
14418
14489
|
});
|
|
14419
14490
|
if (!response.ok && attemptsLeft > 1) {
|
|
14420
|
-
await delay(config.retryDelayMs ||
|
|
14491
|
+
await delay(config.retryDelayMs || DEFAULT_RETRY_DELAY_MILLISECONDS);
|
|
14421
14492
|
return emitWithRetry(subject, event, attemptsLeft - 1);
|
|
14422
14493
|
}
|
|
14423
14494
|
} catch (error) {
|
|
14424
14495
|
if (attemptsLeft > 1) {
|
|
14425
|
-
await delay(config.retryDelayMs ||
|
|
14496
|
+
await delay(config.retryDelayMs || DEFAULT_RETRY_DELAY_MILLISECONDS);
|
|
14426
14497
|
return emitWithRetry(subject, event, attemptsLeft - 1);
|
|
14427
14498
|
}
|
|
14428
14499
|
throw error;
|
|
@@ -14715,7 +14786,7 @@ function makeMethodEndHook(emitMethodCalled) {
|
|
|
14715
14786
|
}
|
|
14716
14787
|
|
|
14717
14788
|
// src/plugins/eventEmission/index.ts
|
|
14718
|
-
var
|
|
14789
|
+
var TELEMETRY_EMIT_TIMEOUT_MILLISECONDS = 300;
|
|
14719
14790
|
var registeredListeners = {};
|
|
14720
14791
|
function removeExistingListeners() {
|
|
14721
14792
|
const events = [
|
|
@@ -14761,7 +14832,7 @@ async function emitWithTimeout(transport, subject, event) {
|
|
|
14761
14832
|
await Promise.race([
|
|
14762
14833
|
transport.emit(subject, event),
|
|
14763
14834
|
new Promise((resolve2) => {
|
|
14764
|
-
const timer = setTimeout(resolve2,
|
|
14835
|
+
const timer = setTimeout(resolve2, TELEMETRY_EMIT_TIMEOUT_MILLISECONDS);
|
|
14765
14836
|
if (typeof timer.unref === "function") {
|
|
14766
14837
|
timer.unref();
|
|
14767
14838
|
}
|
|
@@ -15200,14 +15271,14 @@ function createZapierSdk(options = {}) {
|
|
|
15200
15271
|
|
|
15201
15272
|
// src/utils/batch-utils.ts
|
|
15202
15273
|
var DEFAULT_CONCURRENCY = 10;
|
|
15203
|
-
var
|
|
15204
|
-
var
|
|
15274
|
+
var BATCH_START_DELAY_MILLISECONDS = 25;
|
|
15275
|
+
var DEFAULT_BATCH_TIMEOUT_MILLISECONDS = 18e4;
|
|
15205
15276
|
async function batch(tasks, options = {}) {
|
|
15206
15277
|
const {
|
|
15207
15278
|
concurrency = DEFAULT_CONCURRENCY,
|
|
15208
15279
|
retry = true,
|
|
15209
|
-
batchDelay =
|
|
15210
|
-
timeoutMs =
|
|
15280
|
+
batchDelay = BATCH_START_DELAY_MILLISECONDS,
|
|
15281
|
+
timeoutMs = DEFAULT_BATCH_TIMEOUT_MILLISECONDS,
|
|
15211
15282
|
taskTimeoutMs
|
|
15212
15283
|
} = options;
|
|
15213
15284
|
if (concurrency <= 0) {
|
|
@@ -15300,11 +15371,15 @@ var BaseSdkOptionsSchema = z.object({
|
|
|
15300
15371
|
*/
|
|
15301
15372
|
maxNetworkRetries: z.number().optional().describe("Max retries for rate-limited requests (default: 3).").meta({ valueHint: "count" }),
|
|
15302
15373
|
/**
|
|
15303
|
-
* Maximum delay in
|
|
15374
|
+
* Maximum delay in seconds to wait for a rate-limit retry.
|
|
15304
15375
|
* If the server requests a longer delay, the request fails immediately.
|
|
15305
|
-
* Default is
|
|
15376
|
+
* Default is 60 (60 seconds).
|
|
15306
15377
|
*/
|
|
15307
|
-
|
|
15378
|
+
maxNetworkRetryDelaySeconds: z.number().optional().describe(
|
|
15379
|
+
"Max delay in seconds to wait for a rate-limit retry (default: 60)."
|
|
15380
|
+
).meta({ valueHint: "seconds" }),
|
|
15381
|
+
/** @deprecated Use `maxNetworkRetryDelaySeconds` instead. */
|
|
15382
|
+
maxNetworkRetryDelayMs: z.number().optional().describe("Max delay in ms to wait for retry (default: 60000).").meta({ valueHint: "ms", deprecated: true }),
|
|
15308
15383
|
/**
|
|
15309
15384
|
* Maximum number of concurrent in-flight HTTP requests per client.
|
|
15310
15385
|
* Requests beyond this limit queue in FIFO order until a slot frees.
|
|
@@ -15323,7 +15398,9 @@ var BaseSdkOptionsSchema = z.object({
|
|
|
15323
15398
|
]).optional().describe(
|
|
15324
15399
|
`Max concurrent in-flight HTTP requests (default: 200, max: ${MAX_CONCURRENCY_LIMIT}).`
|
|
15325
15400
|
).meta({ valueHint: "count" }),
|
|
15326
|
-
|
|
15401
|
+
approvalTimeoutSeconds: z.number().optional().describe("Timeout in seconds for approval polling. Default: 600 (10 min).").meta({ valueHint: "seconds" }),
|
|
15402
|
+
/** @deprecated Use `approvalTimeoutSeconds` instead. */
|
|
15403
|
+
approvalTimeoutMs: z.number().optional().describe("Timeout in ms for approval polling. Default: 600000 (10 min).").meta({ valueHint: "ms", deprecated: true }),
|
|
15327
15404
|
maxApprovalRetries: z.number().optional().describe(
|
|
15328
15405
|
"Maximum number of sequential approval rounds per request (one per gating policy) before giving up. Default: 2."
|
|
15329
15406
|
),
|
|
@@ -15357,4 +15434,4 @@ var registryPlugin = (_sdk) => {
|
|
|
15357
15434
|
return {};
|
|
15358
15435
|
};
|
|
15359
15436
|
|
|
15360
|
-
export { API_ID, ActionKeyPropertySchema, ActionPropertySchema,
|
|
15437
|
+
export { API_ID, ActionKeyPropertySchema, ActionPropertySchema, ActionTimeoutMillisecondsPropertySchema, ActionTimeoutSecondsPropertySchema, ActionTypePropertySchema, AppKeyPropertySchema, AppPropertySchema, AppsPropertySchema, AuthMechanism, AuthenticationIdPropertySchema, BaseSdkOptionsSchema, CONNECTIONS_ID, CONTEXT, CONTEXT_CACHE_MAX_SIZE, CONTEXT_CACHE_TTL_MILLISECONDS, CORE_ERROR_SYMBOL, CORE_OPTIONS_ID, CORE_SIGNAL_SYMBOL, ClientCredentialsObjectSchema, ConnectionEntrySchema, ConnectionIdPropertySchema, ConnectionPropertySchema, ConnectionsMapSchema, ConnectionsPropertySchema, CoreCancelledSignal, CoreDisposeError, CoreErrorCode, CoreSignal, CredentialsFunctionSchema, CredentialsObjectSchema, CredentialsSchema, DEFAULT_ACTION_TIMEOUT_MILLISECONDS, DEFAULT_APPROVAL_TIMEOUT_MILLISECONDS, DEFAULT_CONFIG_PATH, DEFAULT_MAX_APPROVAL_RETRIES, DEFAULT_PAGE_SIZE, DEPRECATION_NOTICE_EVENT, DebugPropertySchema, DrainTriggerInboxSchema, EVENT_EMISSION_ID, FieldsPropertySchema, InputFieldPropertySchema, InputsPropertySchema, LeaseLimitPropertySchema, LeasePropertySchema, LeaseSecondsPropertySchema, LimitPropertySchema, MANIFEST_ID, MAX_CONCURRENCY_LIMIT, MAX_PAGE_LIMIT, OffsetPropertySchema, OutputPropertySchema, ParamsPropertySchema, PkceCredentialsObjectSchema, RESOLVE_CREDENTIALS_ID, RecordPropertySchema, RecordsPropertySchema, RelayFetchSchema, RelayRequestSchema, ResolvedCredentialsSchema, SDK_OPTIONS_ID, TablePropertySchema, TablesPropertySchema, TriggerInboxKeyPropertySchema, TriggerInboxNamePropertySchema, TriggerInboxPropertySchema, WatchTriggerInboxSchema, ZAPIER_BASE_URL, ZAPIER_MAX_CONCURRENT_REQUESTS, ZAPIER_MAX_NETWORK_RETRIES, ZAPIER_MAX_NETWORK_RETRY_DELAY_MILLISECONDS, ZapierAbortDrainSignal, ZapierActionError, ZapierApiError, ZapierAppNotFoundError, ZapierApprovalError, ZapierAuthenticationError, ZapierBundleError, ZapierConfigurationError, ZapierConflictError, ZapierError, ZapierNotFoundError, ZapierRateLimitError, ZapierRelayError, ZapierReleaseTriggerMessageSignal, ZapierResourceNotFoundError, ZapierSignal, ZapierTimeoutError, ZapierUnknownError, ZapierValidationError, actionKeyResolver, actionTypeResolver, addPlugin, apiPlugin, apiPluginRef, appKeyResolver, appsPlugin, batch, buildApplicationLifecycleEvent, buildCapabilityMessage, buildErrorEvent, buildErrorEventWithContext, buildMethodCalledEvent, cleanupEventListeners, clearTokenCache, clientCredentialsNameResolver, clientIdResolver, composePlugins, connectionIdGenericResolver, connectionIdResolver, connectionsPlugin, connectionsPluginRef, createBaseEvent, createClientCredentialsPlugin, createController, createCorePlugin, createFunction, createMemoryCache, createPaginatedFunction, createPaginatedPluginMethod, createPluginMethod, createPluginStack, createSdk, createTableFieldsPlugin, createTablePlugin, createTableRecordsPlugin, createZapierApi, createZapierSdk, createZapierSdkWithoutRegistry, declareMethod, declareOptionalProperty, declarePlugin, declareProperty, defineFormatter, defineLegacyMerge, defineMethod, defineMethodOverride, definePlugin, defineProperty, defineResolver, deleteClientCredentialsPlugin, deleteTableFieldsPlugin, deleteTablePlugin, deleteTableRecordsPlugin, disposeSdk, durableRunIdResolver, eventEmissionHookPlugin, eventEmissionPlugin, eventEmissionPluginRef, fetchPlugin, findFirstConnectionPlugin, findManifestEntry, findUniqueConnectionPlugin, formatErrorMessage, fromFunctionPlugin, generateEventId, getActionInputFieldsSchemaPlugin, getActionPlugin, getAgent, getAppPlugin, getBaseUrlFromCredentials, getCallerContext, getCiPlatform, getClientIdFromCredentials, getConnectionPlugin, getContext, getCoreErrorCause, getCoreErrorCode, getCpuTime, getCurrentTimestamp, getMemoryUsage, getOrCreateApiClient, getOsInfo, getPlatformVersions, getPreferredManifestEntryKey, getProfilePlugin, getRegistryPlugin, getReleaseId, getTablePlugin, getTableRecordPlugin, getTokenFromCliLogin, getTtyContext, getZapierApprovalMode, getZapierDefaultApprovalMode, getZapierOpenAutoModeApprovalsInBrowser, getZapierSdkService, injectCliLogin, inputFieldKeyResolver, inputsAllOptionalResolver, inputsResolver, invalidateCachedToken, invalidateCredentialsToken, isCi, isCliLoginAvailable, isClientCredentials, isCoreCancelledSignal, isCoreError, isCoreSignal, isCredentialsFunction, isCredentialsObject, isPermanentHttpError, isPkceCredentials, isPositional, isZapierAbortDrainSignal, isZapierActionError, isZapierAppNotFoundError, isZapierApprovalError, isZapierAuthenticationError, isZapierBundleError, isZapierConflictError, isZapierError, isZapierNotFoundError, isZapierRateLimitError, isZapierReleaseTriggerMessageSignal, isZapierResourceNotFoundError, isZapierSignal, isZapierTimeoutError, isZapierValidationError, listActionInputFieldChoicesPlugin, listActionInputFieldsPlugin, listActionsPlugin, listAppsPlugin, listClientCredentialsPlugin, listConnectionsPlugin, listTableFieldsPlugin, listTableRecordsPlugin, listTablesPlugin, logDeprecation2 as logDeprecation, manifestPlugin, manifestPluginRef, omitExports, openEnum, parseConcurrencyEnvVar, readManifestFromFile, registryPlugin, requestPlugin, resetDeprecationWarnings2 as resetDeprecationWarnings, resolveAuth, resolveAuthToken, resolveCredentials, resolveCredentialsFromEnv, resolveCredentialsPlugin, resolveCredentialsPluginRef, resolvePlugin, runActionPlugin, runInMethodScope, runWithCallerContext, runWithTelemetryContext, sdkOptionsPluginRef, selectExports, tableFieldIdsResolver, tableFieldsResolver, tableFiltersResolver, tableIdResolver, tableNameResolver, tableRecordIdResolver, tableRecordIdsResolver, tableRecordsResolver, tableSortResolver, tableUpdateRecordsResolver, toSnakeCase, toTitleCase, triggerInboxResolver, triggerMessagesResolver, updateTableRecordsPlugin, workflowIdResolver, workflowRunIdResolver, workflowVersionIdResolver, zapierAdaptError, zapierCoreOptions, zapierSdkPlugin };
|