@zapier/zapier-sdk 0.54.0 โ 0.54.1
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 +6 -0
- package/README.md +10 -9
- package/dist/experimental.cjs +56 -36
- package/dist/experimental.d.mts +1 -0
- package/dist/experimental.d.ts +1 -0
- package/dist/experimental.d.ts.map +1 -1
- package/dist/experimental.mjs +56 -36
- package/dist/index.cjs +1 -1
- package/dist/index.mjs +1 -1
- package/dist/plugins/triggers/createTriggerInbox/index.d.ts +1 -0
- package/dist/plugins/triggers/createTriggerInbox/index.d.ts.map +1 -1
- package/dist/plugins/triggers/createTriggerInbox/index.js +18 -3
- package/dist/plugins/triggers/createTriggerInbox/schemas.d.ts +1 -0
- package/dist/plugins/triggers/createTriggerInbox/schemas.d.ts.map +1 -1
- package/dist/plugins/triggers/createTriggerInbox/schemas.js +3 -2
- package/dist/plugins/triggers/ensureTriggerInbox/index.d.ts.map +1 -1
- package/dist/plugins/triggers/ensureTriggerInbox/index.js +1 -12
- package/dist/plugins/triggers/utils.d.ts +6 -0
- package/dist/plugins/triggers/utils.d.ts.map +1 -1
- package/dist/plugins/triggers/utils.js +17 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
package/README.md
CHANGED
|
@@ -1835,18 +1835,19 @@ const result = await zapier.ackTriggerInboxMessages({
|
|
|
1835
1835
|
|
|
1836
1836
|
#### `createTriggerInbox` ๐งช _experimental_
|
|
1837
1837
|
|
|
1838
|
-
Create a new trigger inbox subscription
|
|
1838
|
+
Create a new trigger inbox subscription. Always creates a new inbox; use ensureTriggerInbox for get-or-create on a stable name.
|
|
1839
1839
|
|
|
1840
1840
|
**Parameters:**
|
|
1841
1841
|
|
|
1842
|
-
| Name | Type | Required | Default | Possible Values | Description
|
|
1843
|
-
| --------------------- | ---------------- | -------- | ------- | --------------- |
|
|
1844
|
-
| `options` | `object` | โ
| โ | โ |
|
|
1845
|
-
| โย โณย `
|
|
1846
|
-
| โย โณย `
|
|
1847
|
-
| โย โณย `
|
|
1848
|
-
| โย โณย `
|
|
1849
|
-
| โย โณย `
|
|
1842
|
+
| Name | Type | Required | Default | Possible Values | Description |
|
|
1843
|
+
| --------------------- | ---------------- | -------- | ------- | --------------- | -------------------------------------------------------------------------------------------------------------------------------- |
|
|
1844
|
+
| `options` | `object` | โ
| โ | โ | |
|
|
1845
|
+
| โย โณย `name` | `string` | โ | โ | โ | Optional inbox name. Auto-generated when omitted. Throws a conflict error if the name is already in use by another subscription. |
|
|
1846
|
+
| โย โณย `app` | `string` | โ
| โ | โ | App slug (e.g., 'github'), implementation name (e.g., 'SlackCLIAPI'), or versioned ID (e.g., 'github@1.2.3') |
|
|
1847
|
+
| โย โณย `action` | `string` | โ
| โ | โ | Action key (e.g., 'send_message' or 'find_row') |
|
|
1848
|
+
| โย โณย `connection` | `string, number` | โ | โ | โ | Connection alias or connection ID. Optional for triggers that don't require auth. |
|
|
1849
|
+
| โย โณย `inputs` | `object` | โ | โ | โ | Input parameters for the trigger subscription |
|
|
1850
|
+
| โย โณย `notificationUrl` | `string` | โ | โ | โ | Webhook URL to POST to when new messages arrive |
|
|
1850
1851
|
|
|
1851
1852
|
**Returns:** `Promise<TriggerInboxItem>`
|
|
1852
1853
|
|
package/dist/experimental.cjs
CHANGED
|
@@ -2881,7 +2881,7 @@ async function invalidateCredentialsToken(options) {
|
|
|
2881
2881
|
}
|
|
2882
2882
|
|
|
2883
2883
|
// src/sdk-version.ts
|
|
2884
|
-
var SDK_VERSION = (typeof process !== "undefined" && process.env ? "0.54.
|
|
2884
|
+
var SDK_VERSION = (typeof process !== "undefined" && process.env ? "0.54.1" : void 0) || "unknown";
|
|
2885
2885
|
|
|
2886
2886
|
// src/utils/open-url.ts
|
|
2887
2887
|
var nodePrefix = "node:";
|
|
@@ -8999,8 +8999,11 @@ var TriggerInboxItemSchema = withFormatter(
|
|
|
8999
8999
|
);
|
|
9000
9000
|
|
|
9001
9001
|
// src/plugins/triggers/createTriggerInbox/schemas.ts
|
|
9002
|
-
var CreateTriggerInboxDescription = "Create a new trigger inbox subscription
|
|
9002
|
+
var CreateTriggerInboxDescription = "Create a new trigger inbox subscription. Always creates a new inbox; use ensureTriggerInbox for get-or-create on a stable name.";
|
|
9003
9003
|
var CreateTriggerInboxSchema = zod.z.object({
|
|
9004
|
+
name: TriggerInboxNamePropertySchema.optional().describe(
|
|
9005
|
+
"Optional inbox name. Auto-generated when omitted. Throws a conflict error if the name is already in use by another subscription."
|
|
9006
|
+
),
|
|
9004
9007
|
app: AppPropertySchema,
|
|
9005
9008
|
action: ActionPropertySchema,
|
|
9006
9009
|
connection: ConnectionPropertySchema.nullable().optional().describe(
|
|
@@ -9018,6 +9021,39 @@ var triggersDefaults = {
|
|
|
9018
9021
|
experimental: true
|
|
9019
9022
|
};
|
|
9020
9023
|
|
|
9024
|
+
// src/plugins/triggers/utils.ts
|
|
9025
|
+
var UUID_REGEX = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
|
|
9026
|
+
async function resolveTriggerInboxId({
|
|
9027
|
+
api,
|
|
9028
|
+
inbox
|
|
9029
|
+
}) {
|
|
9030
|
+
if (UUID_REGEX.test(inbox)) {
|
|
9031
|
+
return inbox;
|
|
9032
|
+
}
|
|
9033
|
+
const rawResponse = await api.get("/trigger-inbox/api/v1/inboxes", {
|
|
9034
|
+
searchParams: { name: inbox, limit: "1" },
|
|
9035
|
+
authRequired: true
|
|
9036
|
+
});
|
|
9037
|
+
const response = rawResponse;
|
|
9038
|
+
const id = response.results?.[0]?.id;
|
|
9039
|
+
if (!id) {
|
|
9040
|
+
throw new ZapierResourceNotFoundError(
|
|
9041
|
+
`No trigger inbox named "${inbox}" found.`,
|
|
9042
|
+
{ resourceType: "trigger_inbox", resourceId: inbox }
|
|
9043
|
+
);
|
|
9044
|
+
}
|
|
9045
|
+
return id;
|
|
9046
|
+
}
|
|
9047
|
+
function extractErrorDetail(data) {
|
|
9048
|
+
if (typeof data !== "object" || data === null) return void 0;
|
|
9049
|
+
const errors = data.errors;
|
|
9050
|
+
if (!Array.isArray(errors) || errors.length === 0) return void 0;
|
|
9051
|
+
const first = errors[0];
|
|
9052
|
+
if (typeof first !== "object" || first === null) return void 0;
|
|
9053
|
+
const detail = first.detail;
|
|
9054
|
+
return typeof detail === "string" ? detail : void 0;
|
|
9055
|
+
}
|
|
9056
|
+
|
|
9021
9057
|
// src/plugins/triggers/createTriggerInbox/index.ts
|
|
9022
9058
|
var createTriggerInboxPlugin = definePlugin(
|
|
9023
9059
|
(sdk) => createPluginMethod(sdk, {
|
|
@@ -9032,6 +9068,7 @@ var createTriggerInboxPlugin = definePlugin(
|
|
|
9032
9068
|
// seeded into resolvedParams without polluting the user-facing schema
|
|
9033
9069
|
// (where it would leak into the SDK method signature and CLI flags).
|
|
9034
9070
|
resolvers: {
|
|
9071
|
+
name: { type: "static", inputType: "text" },
|
|
9035
9072
|
app: appKeyResolver,
|
|
9036
9073
|
action: actionKeyResolver,
|
|
9037
9074
|
connection: connectionIdResolver,
|
|
@@ -9041,6 +9078,7 @@ var createTriggerInboxPlugin = definePlugin(
|
|
|
9041
9078
|
handler: async ({ sdk: sdk2, options }) => {
|
|
9042
9079
|
const { api } = sdk2.context;
|
|
9043
9080
|
const {
|
|
9081
|
+
name,
|
|
9044
9082
|
app: appKey,
|
|
9045
9083
|
action: actionKey,
|
|
9046
9084
|
connection,
|
|
@@ -9066,13 +9104,28 @@ var createTriggerInboxPlugin = definePlugin(
|
|
|
9066
9104
|
connection_id: resolvedConnectionId ?? null
|
|
9067
9105
|
}
|
|
9068
9106
|
};
|
|
9107
|
+
if (name !== void 0) {
|
|
9108
|
+
requestBody.name = name;
|
|
9109
|
+
}
|
|
9069
9110
|
if (notificationUrl !== void 0) {
|
|
9070
9111
|
requestBody.notification_url = notificationUrl;
|
|
9071
9112
|
}
|
|
9072
9113
|
const rawResponse = await api.post(
|
|
9073
9114
|
"/trigger-inbox/api/v1/inboxes",
|
|
9074
9115
|
requestBody,
|
|
9075
|
-
{
|
|
9116
|
+
{
|
|
9117
|
+
authRequired: true,
|
|
9118
|
+
customErrorHandler: ({ status, data }) => {
|
|
9119
|
+
if (status === 409) {
|
|
9120
|
+
const detail = extractErrorDetail(data);
|
|
9121
|
+
return new ZapierConflictError(
|
|
9122
|
+
detail ?? `An inbox named "${name}" already exists with a different subscription.`,
|
|
9123
|
+
{ statusCode: status, resourceType: "trigger_inbox" }
|
|
9124
|
+
);
|
|
9125
|
+
}
|
|
9126
|
+
return void 0;
|
|
9127
|
+
}
|
|
9128
|
+
}
|
|
9076
9129
|
);
|
|
9077
9130
|
return { data: TriggerInboxItemSchema.parse(rawResponse) };
|
|
9078
9131
|
}
|
|
@@ -9095,15 +9148,6 @@ var EnsureTriggerInboxSchema = zod.z.object({
|
|
|
9095
9148
|
}).describe(EnsureTriggerInboxDescription);
|
|
9096
9149
|
|
|
9097
9150
|
// src/plugins/triggers/ensureTriggerInbox/index.ts
|
|
9098
|
-
function extractErrorDetail(data) {
|
|
9099
|
-
if (typeof data !== "object" || data === null) return void 0;
|
|
9100
|
-
const errors = data.errors;
|
|
9101
|
-
if (!Array.isArray(errors) || errors.length === 0) return void 0;
|
|
9102
|
-
const first = errors[0];
|
|
9103
|
-
if (typeof first !== "object" || first === null) return void 0;
|
|
9104
|
-
const detail = first.detail;
|
|
9105
|
-
return typeof detail === "string" ? detail : void 0;
|
|
9106
|
-
}
|
|
9107
9151
|
var ensureTriggerInboxPlugin = definePlugin(
|
|
9108
9152
|
(sdk) => createPluginMethod(sdk, {
|
|
9109
9153
|
...triggersDefaults,
|
|
@@ -9247,30 +9291,6 @@ var GetTriggerInboxSchema = zod.z.object({
|
|
|
9247
9291
|
inbox: TriggerInboxPropertySchema
|
|
9248
9292
|
}).describe("Get details of a trigger inbox by ID");
|
|
9249
9293
|
|
|
9250
|
-
// src/plugins/triggers/utils.ts
|
|
9251
|
-
var UUID_REGEX = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
|
|
9252
|
-
async function resolveTriggerInboxId({
|
|
9253
|
-
api,
|
|
9254
|
-
inbox
|
|
9255
|
-
}) {
|
|
9256
|
-
if (UUID_REGEX.test(inbox)) {
|
|
9257
|
-
return inbox;
|
|
9258
|
-
}
|
|
9259
|
-
const rawResponse = await api.get("/trigger-inbox/api/v1/inboxes", {
|
|
9260
|
-
searchParams: { name: inbox, limit: "1" },
|
|
9261
|
-
authRequired: true
|
|
9262
|
-
});
|
|
9263
|
-
const response = rawResponse;
|
|
9264
|
-
const id = response.results?.[0]?.id;
|
|
9265
|
-
if (!id) {
|
|
9266
|
-
throw new ZapierResourceNotFoundError(
|
|
9267
|
-
`No trigger inbox named "${inbox}" found.`,
|
|
9268
|
-
{ resourceType: "trigger_inbox", resourceId: inbox }
|
|
9269
|
-
);
|
|
9270
|
-
}
|
|
9271
|
-
return id;
|
|
9272
|
-
}
|
|
9273
|
-
|
|
9274
9294
|
// src/plugins/triggers/getTriggerInbox/index.ts
|
|
9275
9295
|
var getTriggerInboxPlugin = definePlugin(
|
|
9276
9296
|
(sdk) => createPluginMethod(sdk, {
|
package/dist/experimental.d.mts
CHANGED
|
@@ -1432,6 +1432,7 @@ declare function createZapierSdk(options?: ZapierSdkOptions): WithAddPlugin<{
|
|
|
1432
1432
|
createTriggerInbox: (options?: {
|
|
1433
1433
|
app: string;
|
|
1434
1434
|
action: string;
|
|
1435
|
+
name?: string | undefined;
|
|
1435
1436
|
connection?: string | number | null | undefined;
|
|
1436
1437
|
inputs?: Record<string, unknown> | undefined;
|
|
1437
1438
|
notificationUrl?: string | undefined;
|
package/dist/experimental.d.ts
CHANGED
|
@@ -1447,6 +1447,7 @@ export declare function createZapierSdk(options?: ZapierSdkOptions): import("./i
|
|
|
1447
1447
|
createTriggerInbox: (options?: {
|
|
1448
1448
|
app: string;
|
|
1449
1449
|
action: string;
|
|
1450
|
+
name?: string | undefined;
|
|
1450
1451
|
connection?: string | number | null | undefined;
|
|
1451
1452
|
inputs?: Record<string, unknown> | undefined;
|
|
1452
1453
|
notificationUrl?: string | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"experimental.d.ts","sourceRoot":"","sources":["../src/experimental.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAwEjD,cAAc,SAAS,CAAC;AAExB,MAAM,WAAW,gBAAiB,SAAQ,cAAc;CAAG;AAE3D,wBAAgB,eAAe,CAAC,OAAO,GAAE,gBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBA+Fq9K,CAAC;;;;sBAAiX,CAAC;qBAAyB,CAAC
|
|
1
|
+
{"version":3,"file":"experimental.d.ts","sourceRoot":"","sources":["../src/experimental.ts"],"names":[],"mappings":"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"}
|
package/dist/experimental.mjs
CHANGED
|
@@ -2879,7 +2879,7 @@ async function invalidateCredentialsToken(options) {
|
|
|
2879
2879
|
}
|
|
2880
2880
|
|
|
2881
2881
|
// src/sdk-version.ts
|
|
2882
|
-
var SDK_VERSION = (typeof process !== "undefined" && process.env ? "0.54.
|
|
2882
|
+
var SDK_VERSION = (typeof process !== "undefined" && process.env ? "0.54.1" : void 0) || "unknown";
|
|
2883
2883
|
|
|
2884
2884
|
// src/utils/open-url.ts
|
|
2885
2885
|
var nodePrefix = "node:";
|
|
@@ -8997,8 +8997,11 @@ var TriggerInboxItemSchema = withFormatter(
|
|
|
8997
8997
|
);
|
|
8998
8998
|
|
|
8999
8999
|
// src/plugins/triggers/createTriggerInbox/schemas.ts
|
|
9000
|
-
var CreateTriggerInboxDescription = "Create a new trigger inbox subscription
|
|
9000
|
+
var CreateTriggerInboxDescription = "Create a new trigger inbox subscription. Always creates a new inbox; use ensureTriggerInbox for get-or-create on a stable name.";
|
|
9001
9001
|
var CreateTriggerInboxSchema = z.object({
|
|
9002
|
+
name: TriggerInboxNamePropertySchema.optional().describe(
|
|
9003
|
+
"Optional inbox name. Auto-generated when omitted. Throws a conflict error if the name is already in use by another subscription."
|
|
9004
|
+
),
|
|
9002
9005
|
app: AppPropertySchema,
|
|
9003
9006
|
action: ActionPropertySchema,
|
|
9004
9007
|
connection: ConnectionPropertySchema.nullable().optional().describe(
|
|
@@ -9016,6 +9019,39 @@ var triggersDefaults = {
|
|
|
9016
9019
|
experimental: true
|
|
9017
9020
|
};
|
|
9018
9021
|
|
|
9022
|
+
// src/plugins/triggers/utils.ts
|
|
9023
|
+
var UUID_REGEX = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
|
|
9024
|
+
async function resolveTriggerInboxId({
|
|
9025
|
+
api,
|
|
9026
|
+
inbox
|
|
9027
|
+
}) {
|
|
9028
|
+
if (UUID_REGEX.test(inbox)) {
|
|
9029
|
+
return inbox;
|
|
9030
|
+
}
|
|
9031
|
+
const rawResponse = await api.get("/trigger-inbox/api/v1/inboxes", {
|
|
9032
|
+
searchParams: { name: inbox, limit: "1" },
|
|
9033
|
+
authRequired: true
|
|
9034
|
+
});
|
|
9035
|
+
const response = rawResponse;
|
|
9036
|
+
const id = response.results?.[0]?.id;
|
|
9037
|
+
if (!id) {
|
|
9038
|
+
throw new ZapierResourceNotFoundError(
|
|
9039
|
+
`No trigger inbox named "${inbox}" found.`,
|
|
9040
|
+
{ resourceType: "trigger_inbox", resourceId: inbox }
|
|
9041
|
+
);
|
|
9042
|
+
}
|
|
9043
|
+
return id;
|
|
9044
|
+
}
|
|
9045
|
+
function extractErrorDetail(data) {
|
|
9046
|
+
if (typeof data !== "object" || data === null) return void 0;
|
|
9047
|
+
const errors = data.errors;
|
|
9048
|
+
if (!Array.isArray(errors) || errors.length === 0) return void 0;
|
|
9049
|
+
const first = errors[0];
|
|
9050
|
+
if (typeof first !== "object" || first === null) return void 0;
|
|
9051
|
+
const detail = first.detail;
|
|
9052
|
+
return typeof detail === "string" ? detail : void 0;
|
|
9053
|
+
}
|
|
9054
|
+
|
|
9019
9055
|
// src/plugins/triggers/createTriggerInbox/index.ts
|
|
9020
9056
|
var createTriggerInboxPlugin = definePlugin(
|
|
9021
9057
|
(sdk) => createPluginMethod(sdk, {
|
|
@@ -9030,6 +9066,7 @@ var createTriggerInboxPlugin = definePlugin(
|
|
|
9030
9066
|
// seeded into resolvedParams without polluting the user-facing schema
|
|
9031
9067
|
// (where it would leak into the SDK method signature and CLI flags).
|
|
9032
9068
|
resolvers: {
|
|
9069
|
+
name: { type: "static", inputType: "text" },
|
|
9033
9070
|
app: appKeyResolver,
|
|
9034
9071
|
action: actionKeyResolver,
|
|
9035
9072
|
connection: connectionIdResolver,
|
|
@@ -9039,6 +9076,7 @@ var createTriggerInboxPlugin = definePlugin(
|
|
|
9039
9076
|
handler: async ({ sdk: sdk2, options }) => {
|
|
9040
9077
|
const { api } = sdk2.context;
|
|
9041
9078
|
const {
|
|
9079
|
+
name,
|
|
9042
9080
|
app: appKey,
|
|
9043
9081
|
action: actionKey,
|
|
9044
9082
|
connection,
|
|
@@ -9064,13 +9102,28 @@ var createTriggerInboxPlugin = definePlugin(
|
|
|
9064
9102
|
connection_id: resolvedConnectionId ?? null
|
|
9065
9103
|
}
|
|
9066
9104
|
};
|
|
9105
|
+
if (name !== void 0) {
|
|
9106
|
+
requestBody.name = name;
|
|
9107
|
+
}
|
|
9067
9108
|
if (notificationUrl !== void 0) {
|
|
9068
9109
|
requestBody.notification_url = notificationUrl;
|
|
9069
9110
|
}
|
|
9070
9111
|
const rawResponse = await api.post(
|
|
9071
9112
|
"/trigger-inbox/api/v1/inboxes",
|
|
9072
9113
|
requestBody,
|
|
9073
|
-
{
|
|
9114
|
+
{
|
|
9115
|
+
authRequired: true,
|
|
9116
|
+
customErrorHandler: ({ status, data }) => {
|
|
9117
|
+
if (status === 409) {
|
|
9118
|
+
const detail = extractErrorDetail(data);
|
|
9119
|
+
return new ZapierConflictError(
|
|
9120
|
+
detail ?? `An inbox named "${name}" already exists with a different subscription.`,
|
|
9121
|
+
{ statusCode: status, resourceType: "trigger_inbox" }
|
|
9122
|
+
);
|
|
9123
|
+
}
|
|
9124
|
+
return void 0;
|
|
9125
|
+
}
|
|
9126
|
+
}
|
|
9074
9127
|
);
|
|
9075
9128
|
return { data: TriggerInboxItemSchema.parse(rawResponse) };
|
|
9076
9129
|
}
|
|
@@ -9093,15 +9146,6 @@ var EnsureTriggerInboxSchema = z.object({
|
|
|
9093
9146
|
}).describe(EnsureTriggerInboxDescription);
|
|
9094
9147
|
|
|
9095
9148
|
// src/plugins/triggers/ensureTriggerInbox/index.ts
|
|
9096
|
-
function extractErrorDetail(data) {
|
|
9097
|
-
if (typeof data !== "object" || data === null) return void 0;
|
|
9098
|
-
const errors = data.errors;
|
|
9099
|
-
if (!Array.isArray(errors) || errors.length === 0) return void 0;
|
|
9100
|
-
const first = errors[0];
|
|
9101
|
-
if (typeof first !== "object" || first === null) return void 0;
|
|
9102
|
-
const detail = first.detail;
|
|
9103
|
-
return typeof detail === "string" ? detail : void 0;
|
|
9104
|
-
}
|
|
9105
9149
|
var ensureTriggerInboxPlugin = definePlugin(
|
|
9106
9150
|
(sdk) => createPluginMethod(sdk, {
|
|
9107
9151
|
...triggersDefaults,
|
|
@@ -9245,30 +9289,6 @@ var GetTriggerInboxSchema = z.object({
|
|
|
9245
9289
|
inbox: TriggerInboxPropertySchema
|
|
9246
9290
|
}).describe("Get details of a trigger inbox by ID");
|
|
9247
9291
|
|
|
9248
|
-
// src/plugins/triggers/utils.ts
|
|
9249
|
-
var UUID_REGEX = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
|
|
9250
|
-
async function resolveTriggerInboxId({
|
|
9251
|
-
api,
|
|
9252
|
-
inbox
|
|
9253
|
-
}) {
|
|
9254
|
-
if (UUID_REGEX.test(inbox)) {
|
|
9255
|
-
return inbox;
|
|
9256
|
-
}
|
|
9257
|
-
const rawResponse = await api.get("/trigger-inbox/api/v1/inboxes", {
|
|
9258
|
-
searchParams: { name: inbox, limit: "1" },
|
|
9259
|
-
authRequired: true
|
|
9260
|
-
});
|
|
9261
|
-
const response = rawResponse;
|
|
9262
|
-
const id = response.results?.[0]?.id;
|
|
9263
|
-
if (!id) {
|
|
9264
|
-
throw new ZapierResourceNotFoundError(
|
|
9265
|
-
`No trigger inbox named "${inbox}" found.`,
|
|
9266
|
-
{ resourceType: "trigger_inbox", resourceId: inbox }
|
|
9267
|
-
);
|
|
9268
|
-
}
|
|
9269
|
-
return id;
|
|
9270
|
-
}
|
|
9271
|
-
|
|
9272
9292
|
// src/plugins/triggers/getTriggerInbox/index.ts
|
|
9273
9293
|
var getTriggerInboxPlugin = definePlugin(
|
|
9274
9294
|
(sdk) => createPluginMethod(sdk, {
|
package/dist/index.cjs
CHANGED
|
@@ -6309,7 +6309,7 @@ async function invalidateCredentialsToken(options) {
|
|
|
6309
6309
|
}
|
|
6310
6310
|
|
|
6311
6311
|
// src/sdk-version.ts
|
|
6312
|
-
var SDK_VERSION = (typeof process !== "undefined" && process.env ? "0.54.
|
|
6312
|
+
var SDK_VERSION = (typeof process !== "undefined" && process.env ? "0.54.1" : void 0) || "unknown";
|
|
6313
6313
|
|
|
6314
6314
|
// src/utils/open-url.ts
|
|
6315
6315
|
var nodePrefix = "node:";
|
package/dist/index.mjs
CHANGED
|
@@ -6307,7 +6307,7 @@ async function invalidateCredentialsToken(options) {
|
|
|
6307
6307
|
}
|
|
6308
6308
|
|
|
6309
6309
|
// src/sdk-version.ts
|
|
6310
|
-
var SDK_VERSION = (typeof process !== "undefined" && process.env ? "0.54.
|
|
6310
|
+
var SDK_VERSION = (typeof process !== "undefined" && process.env ? "0.54.1" : void 0) || "unknown";
|
|
6311
6311
|
|
|
6312
6312
|
// src/utils/open-url.ts
|
|
6313
6313
|
var nodePrefix = "node:";
|
|
@@ -31,6 +31,7 @@ export declare const createTriggerInboxPlugin: (sdk: {
|
|
|
31
31
|
createTriggerInbox: (options?: {
|
|
32
32
|
app: string;
|
|
33
33
|
action: string;
|
|
34
|
+
name?: string | undefined;
|
|
34
35
|
connection?: string | number | null | undefined;
|
|
35
36
|
inputs?: Record<string, unknown> | undefined;
|
|
36
37
|
notificationUrl?: string | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/plugins/triggers/createTriggerInbox/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAA0B,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/plugins/triggers/createTriggerInbox/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAA0B,MAAM,WAAW,CAAC;AAa7E,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,wBAAwB,CAAC;AAC3E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAKnE,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;aAIpB;QACP,4BAA4B,EAAE,4BAA4B,CAAC;KAC5D,GAAG,yBAAyB,CAAC,SAAS,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+F/C,CAAC;AAEF,MAAM,MAAM,gCAAgC,GAAG,UAAU,CACvD,OAAO,wBAAwB,CAChC,CAAC;AAEF,OAAO,EAAE,wBAAwB,EAAE,CAAC"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { definePlugin, createPluginMethod } from "../../../utils/plugin-utils";
|
|
2
2
|
import { CreateTriggerInboxSchema, TriggerInboxItemSchema } from "./schemas";
|
|
3
|
-
import { ZapierConfigurationError } from "../../../types/errors";
|
|
3
|
+
import { ZapierConfigurationError, ZapierConflictError, } from "../../../types/errors";
|
|
4
4
|
import { appKeyResolver, actionKeyResolver, connectionIdResolver, inputsResolver, } from "../../../resolvers";
|
|
5
5
|
import { resolveConnectionId } from "../../../utils/domain-utils";
|
|
6
6
|
import { triggersDefaults } from "../shared";
|
|
7
|
+
import { extractErrorDetail } from "../utils";
|
|
7
8
|
export const createTriggerInboxPlugin = definePlugin((sdk) => createPluginMethod(sdk, {
|
|
8
9
|
...triggersDefaults,
|
|
9
10
|
name: "createTriggerInbox",
|
|
@@ -16,6 +17,7 @@ export const createTriggerInboxPlugin = definePlugin((sdk) => createPluginMethod
|
|
|
16
17
|
// seeded into resolvedParams without polluting the user-facing schema
|
|
17
18
|
// (where it would leak into the SDK method signature and CLI flags).
|
|
18
19
|
resolvers: {
|
|
20
|
+
name: { type: "static", inputType: "text" },
|
|
19
21
|
app: appKeyResolver,
|
|
20
22
|
action: actionKeyResolver,
|
|
21
23
|
connection: connectionIdResolver,
|
|
@@ -24,7 +26,7 @@ export const createTriggerInboxPlugin = definePlugin((sdk) => createPluginMethod
|
|
|
24
26
|
},
|
|
25
27
|
handler: async ({ sdk, options }) => {
|
|
26
28
|
const { api } = sdk.context;
|
|
27
|
-
const { app: appKey, action: actionKey, connection, inputs = {}, notificationUrl, } = options;
|
|
29
|
+
const { name, app: appKey, action: actionKey, connection, inputs = {}, notificationUrl, } = options;
|
|
28
30
|
const resolvedConnectionId = await resolveConnectionId({
|
|
29
31
|
connection,
|
|
30
32
|
resolveConnection: sdk.context.resolveConnection,
|
|
@@ -41,10 +43,23 @@ export const createTriggerInboxPlugin = definePlugin((sdk) => createPluginMethod
|
|
|
41
43
|
connection_id: resolvedConnectionId ?? null,
|
|
42
44
|
},
|
|
43
45
|
};
|
|
46
|
+
if (name !== undefined) {
|
|
47
|
+
requestBody.name = name;
|
|
48
|
+
}
|
|
44
49
|
if (notificationUrl !== undefined) {
|
|
45
50
|
requestBody.notification_url = notificationUrl;
|
|
46
51
|
}
|
|
47
|
-
const rawResponse = await api.post("/trigger-inbox/api/v1/inboxes", requestBody, {
|
|
52
|
+
const rawResponse = await api.post("/trigger-inbox/api/v1/inboxes", requestBody, {
|
|
53
|
+
authRequired: true,
|
|
54
|
+
customErrorHandler: ({ status, data }) => {
|
|
55
|
+
if (status === 409) {
|
|
56
|
+
const detail = extractErrorDetail(data);
|
|
57
|
+
return new ZapierConflictError(detail ??
|
|
58
|
+
`An inbox named "${name}" already exists with a different subscription.`, { statusCode: status, resourceType: "trigger_inbox" });
|
|
59
|
+
}
|
|
60
|
+
return undefined;
|
|
61
|
+
},
|
|
62
|
+
});
|
|
48
63
|
return { data: TriggerInboxItemSchema.parse(rawResponse) };
|
|
49
64
|
},
|
|
50
65
|
}));
|
|
@@ -2,6 +2,7 @@ import { z } from "zod";
|
|
|
2
2
|
import type { FunctionOptions } from "../../../types/functions";
|
|
3
3
|
import { TriggerInboxItemSchema, type TriggerInboxItem } from "../../../schemas/TriggerInbox";
|
|
4
4
|
export declare const CreateTriggerInboxSchema: z.ZodObject<{
|
|
5
|
+
name: z.ZodOptional<z.ZodString>;
|
|
5
6
|
app: z.ZodString & {
|
|
6
7
|
_def: z.core.$ZodStringDef & import("../../..").PositionalMetadata;
|
|
7
8
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../../../src/plugins/triggers/createTriggerInbox/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../../../src/plugins/triggers/createTriggerInbox/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAQhE,OAAO,EACL,sBAAsB,EACtB,KAAK,gBAAgB,EACtB,MAAM,+BAA+B,CAAC;AAKvC,eAAO,MAAM,wBAAwB;;;;;;;;;;;iBAqBK,CAAC;AAE3C,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAC7C,OAAO,wBAAwB,CAChC,GACC,eAAe,CAAC;AAElB,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,gBAAgB,CAAC;CACxB;AAED,OAAO,EAAE,sBAAsB,EAAE,CAAC"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
import { AppPropertySchema, ActionPropertySchema, ConnectionPropertySchema, InputsPropertySchema, } from "../../../types/properties";
|
|
2
|
+
import { AppPropertySchema, ActionPropertySchema, ConnectionPropertySchema, InputsPropertySchema, TriggerInboxNamePropertySchema, } from "../../../types/properties";
|
|
3
3
|
import { TriggerInboxItemSchema, } from "../../../schemas/TriggerInbox";
|
|
4
|
-
const CreateTriggerInboxDescription = "Create a new trigger inbox subscription
|
|
4
|
+
const CreateTriggerInboxDescription = "Create a new trigger inbox subscription. Always creates a new inbox; use ensureTriggerInbox for get-or-create on a stable name.";
|
|
5
5
|
export const CreateTriggerInboxSchema = z
|
|
6
6
|
.object({
|
|
7
|
+
name: TriggerInboxNamePropertySchema.optional().describe("Optional inbox name. Auto-generated when omitted. Throws a conflict error if the name is already in use by another subscription."),
|
|
7
8
|
app: AppPropertySchema,
|
|
8
9
|
action: ActionPropertySchema,
|
|
9
10
|
connection: ConnectionPropertySchema.nullable()
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/plugins/triggers/ensureTriggerInbox/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAA0B,MAAM,WAAW,CAAC;AAa7E,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,wBAAwB,CAAC;AAC3E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/plugins/triggers/ensureTriggerInbox/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAA0B,MAAM,WAAW,CAAC;AAa7E,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,wBAAwB,CAAC;AAC3E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAKnE,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;aAIpB;QACP,4BAA4B,EAAE,4BAA4B,CAAC;KAC5D,GAAG,yBAAyB,CAAC,SAAS,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2F/C,CAAC;AAEF,MAAM,MAAM,gCAAgC,GAAG,UAAU,CACvD,OAAO,wBAAwB,CAChC,CAAC;AAEF,OAAO,EAAE,wBAAwB,EAAE,CAAC"}
|
|
@@ -4,18 +4,7 @@ import { ZapierConfigurationError, ZapierConflictError, } from "../../../types/e
|
|
|
4
4
|
import { appKeyResolver, actionKeyResolver, connectionIdResolver, inputsResolver, } from "../../../resolvers";
|
|
5
5
|
import { resolveConnectionId } from "../../../utils/domain-utils";
|
|
6
6
|
import { triggersDefaults } from "../shared";
|
|
7
|
-
|
|
8
|
-
if (typeof data !== "object" || data === null)
|
|
9
|
-
return undefined;
|
|
10
|
-
const errors = data.errors;
|
|
11
|
-
if (!Array.isArray(errors) || errors.length === 0)
|
|
12
|
-
return undefined;
|
|
13
|
-
const first = errors[0];
|
|
14
|
-
if (typeof first !== "object" || first === null)
|
|
15
|
-
return undefined;
|
|
16
|
-
const detail = first.detail;
|
|
17
|
-
return typeof detail === "string" ? detail : undefined;
|
|
18
|
-
}
|
|
7
|
+
import { extractErrorDetail } from "../utils";
|
|
19
8
|
export const ensureTriggerInboxPlugin = definePlugin((sdk) => createPluginMethod(sdk, {
|
|
20
9
|
...triggersDefaults,
|
|
21
10
|
name: "ensureTriggerInbox",
|
|
@@ -14,4 +14,10 @@ export declare function resolveTriggerInboxId({ api, inbox, }: {
|
|
|
14
14
|
api: ApiClient;
|
|
15
15
|
inbox: string;
|
|
16
16
|
}): Promise<string>;
|
|
17
|
+
/**
|
|
18
|
+
* Pulls `errors[0].detail` off a JSON:API-style error response body.
|
|
19
|
+
* Returns `undefined` for any shape that doesn't match, so callers can
|
|
20
|
+
* fall back to a default message.
|
|
21
|
+
*/
|
|
22
|
+
export declare function extractErrorDetail(data: unknown): string | undefined;
|
|
17
23
|
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/plugins/triggers/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAM3C;;;;;;;;;;GAUG;AACH,wBAAsB,qBAAqB,CAAC,EAC1C,GAAG,EACH,KAAK,GACN,EAAE;IACD,GAAG,EAAE,SAAS,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf,GAAG,OAAO,CAAC,MAAM,CAAC,CAiBlB"}
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/plugins/triggers/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAM3C;;;;;;;;;;GAUG;AACH,wBAAsB,qBAAqB,CAAC,EAC1C,GAAG,EACH,KAAK,GACN,EAAE;IACD,GAAG,EAAE,SAAS,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf,GAAG,OAAO,CAAC,MAAM,CAAC,CAiBlB;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAQpE"}
|
|
@@ -26,3 +26,20 @@ export async function resolveTriggerInboxId({ api, inbox, }) {
|
|
|
26
26
|
}
|
|
27
27
|
return id;
|
|
28
28
|
}
|
|
29
|
+
/**
|
|
30
|
+
* Pulls `errors[0].detail` off a JSON:API-style error response body.
|
|
31
|
+
* Returns `undefined` for any shape that doesn't match, so callers can
|
|
32
|
+
* fall back to a default message.
|
|
33
|
+
*/
|
|
34
|
+
export function extractErrorDetail(data) {
|
|
35
|
+
if (typeof data !== "object" || data === null)
|
|
36
|
+
return undefined;
|
|
37
|
+
const errors = data.errors;
|
|
38
|
+
if (!Array.isArray(errors) || errors.length === 0)
|
|
39
|
+
return undefined;
|
|
40
|
+
const first = errors[0];
|
|
41
|
+
if (typeof first !== "object" || first === null)
|
|
42
|
+
return undefined;
|
|
43
|
+
const detail = first.detail;
|
|
44
|
+
return typeof detail === "string" ? detail : undefined;
|
|
45
|
+
}
|