@zapier/zapier-sdk 0.11.0 → 0.11.2

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/dist/index.d.mts CHANGED
@@ -1,3 +1,4 @@
1
+ import * as zod from 'zod';
1
2
  import { z } from 'zod';
2
3
 
3
4
  /**
@@ -1575,7 +1576,9 @@ type Sdk<TCurrentSdk = {}, TCurrentContext = {
1575
1576
  };
1576
1577
 
1577
1578
  interface RegistryPluginProvides {
1578
- getRegistry: () => {
1579
+ getRegistry: (options?: {
1580
+ package?: string;
1581
+ }) => {
1579
1582
  functions: FunctionRegistryEntry[];
1580
1583
  categories: {
1581
1584
  key: string;
@@ -1661,6 +1664,19 @@ interface FetchPluginProvides {
1661
1664
  callbackUrl?: string;
1662
1665
  authenticationTemplate?: string;
1663
1666
  }) => Promise<Response>;
1667
+ context: {
1668
+ meta: {
1669
+ fetch: {
1670
+ packages: string[];
1671
+ categories: string[];
1672
+ returnType: string;
1673
+ inputParameters: Array<{
1674
+ name: string;
1675
+ schema: z.ZodSchema;
1676
+ }>;
1677
+ };
1678
+ };
1679
+ };
1664
1680
  }
1665
1681
  /**
1666
1682
  * Direct plugin function - takes options + sdk + context in one object
@@ -2198,10 +2214,15 @@ interface FunctionRegistryEntry {
2198
2214
  type?: "list" | "item";
2199
2215
  itemType?: string;
2200
2216
  returnType?: string;
2201
- inputSchema: z.ZodSchema;
2217
+ inputSchema?: z.ZodSchema;
2218
+ inputParameters?: Array<{
2219
+ name: string;
2220
+ schema: z.ZodSchema;
2221
+ }>;
2202
2222
  outputSchema?: z.ZodSchema;
2203
2223
  categories: string[];
2204
2224
  resolvers?: Record<string, any>;
2225
+ packages?: string[];
2205
2226
  }
2206
2227
  interface ZapierSdk extends GetSdkType<RegistryPluginProvides & FetchPluginProvides & AppsPluginProvides & ListAppsPluginProvides & ManifestPluginProvides & GetAppPluginProvides & ListActionsPluginProvides & GetActionPluginProvides & RunActionPluginProvides & ListAuthenticationsPluginProvides & GetAuthenticationPluginProvides & FindFirstAuthenticationPluginProvides & FindUniqueAuthenticationPluginProvides & ListInputFieldsPluginProvides & ListInputFieldChoicesPluginProvides & RequestPluginProvides & GetProfilePluginProvides> {
2207
2228
  apps: ActionProxy & ZapierSdkApps;
@@ -3385,6 +3406,18 @@ declare function createZapierSdkWithoutRegistry(options?: ZapierSdkOptions): Sdk
3385
3406
  inputSchema: typeof RelayRequestSchema;
3386
3407
  };
3387
3408
  };
3409
+ } & {
3410
+ meta: {
3411
+ fetch: {
3412
+ packages: string[];
3413
+ categories: string[];
3414
+ returnType: string;
3415
+ inputParameters: Array<{
3416
+ name: string;
3417
+ schema: zod.ZodType;
3418
+ }>;
3419
+ };
3420
+ };
3388
3421
  } & {
3389
3422
  meta: {
3390
3423
  getProfile: {
package/dist/index.mjs CHANGED
@@ -296,6 +296,21 @@ var appsPlugin = ({ sdk }) => {
296
296
  apps: createAppsProxy({ sdk })
297
297
  };
298
298
  };
299
+ var FetchUrlSchema = z.union([z.string(), z.instanceof(URL)]).describe("The URL to fetch");
300
+ var FetchInitSchema = z.object({
301
+ method: z.enum(["GET", "POST", "PUT", "DELETE", "PATCH", "HEAD", "OPTIONS"]).optional(),
302
+ headers: z.record(z.string()).optional(),
303
+ body: z.union([
304
+ z.string(),
305
+ z.instanceof(FormData),
306
+ z.instanceof(URLSearchParams)
307
+ ]).optional(),
308
+ authenticationId: z.number().optional().describe("Zapier authentication ID to use for the request"),
309
+ callbackUrl: z.string().optional().describe("URL to send async response to (makes request async)"),
310
+ authenticationTemplate: z.string().optional().describe(
311
+ "Optional JSON string authentication template to bypass Notary lookup"
312
+ )
313
+ }).optional().describe("Fetch options including authentication");
299
314
 
300
315
  // src/plugins/fetch/index.ts
301
316
  var fetchPlugin = ({ sdk }) => {
@@ -316,6 +331,19 @@ var fetchPlugin = ({ sdk }) => {
316
331
  callbackUrl,
317
332
  authenticationTemplate
318
333
  });
334
+ },
335
+ context: {
336
+ meta: {
337
+ fetch: {
338
+ packages: ["sdk"],
339
+ categories: ["http"],
340
+ returnType: "Response",
341
+ inputParameters: [
342
+ { name: "url", schema: FetchUrlSchema },
343
+ { name: "init", schema: FetchInitSchema }
344
+ ]
345
+ }
346
+ }
319
347
  }
320
348
  };
321
349
  };
@@ -3493,37 +3521,53 @@ var registryPlugin = ({ sdk, context }) => {
3493
3521
  itemType: meta.itemType,
3494
3522
  returnType: meta.returnType,
3495
3523
  inputSchema: meta.inputSchema,
3524
+ inputParameters: meta.inputParameters,
3496
3525
  outputSchema: meta.outputSchema,
3497
3526
  categories: meta.categories || [],
3498
- resolvers: meta.resolvers
3527
+ resolvers: meta.resolvers,
3528
+ packages: meta.packages
3499
3529
  };
3500
3530
  }).sort((a, b) => a.name.localeCompare(b.name));
3501
3531
  const knownCategories = Object.keys(categoryDefinitions);
3502
- const categories = knownCategories.sort((a, b) => {
3503
- if (a === "other") return 1;
3504
- if (b === "other") return -1;
3505
- const titleA = categoryDefinitions[a].title;
3506
- const titleB = categoryDefinitions[b].title;
3507
- return titleA.localeCompare(titleB);
3508
- }).map((categoryKey) => {
3509
- const categoryFunctions = functions.filter(
3510
- (f) => f.categories.includes(categoryKey) || // If the category is "other" and the function is not in any other category, include it
3511
- categoryKey === "other" && !f.categories.some((c) => knownCategories.includes(c))
3512
- ).map((f) => f.name).sort();
3513
- const definition = categoryDefinitions[categoryKey];
3514
- const title = definition.title;
3515
- return {
3516
- key: categoryKey,
3517
- title,
3518
- titlePlural: definition.titlePlural ?? `${title}s`,
3519
- functions: categoryFunctions
3520
- };
3521
- });
3522
- function getRegistry() {
3523
- return {
3524
- functions,
3525
- categories
3532
+ const registryCache = /* @__PURE__ */ new Map();
3533
+ function getRegistry(options) {
3534
+ const packageFilter = options?.package;
3535
+ const cacheKey = packageFilter || "__all__";
3536
+ if (registryCache.has(cacheKey)) {
3537
+ return registryCache.get(cacheKey);
3538
+ }
3539
+ const filteredFunctions = packageFilter ? functions.filter(
3540
+ (f) => (
3541
+ // Include if packages is undefined (belongs to all packages) or includes the specified package
3542
+ !f.packages || f.packages.includes(packageFilter)
3543
+ )
3544
+ ) : functions;
3545
+ const filteredCategories = knownCategories.sort((a, b) => {
3546
+ if (a === "other") return 1;
3547
+ if (b === "other") return -1;
3548
+ const titleA = categoryDefinitions[a].title;
3549
+ const titleB = categoryDefinitions[b].title;
3550
+ return titleA.localeCompare(titleB);
3551
+ }).map((categoryKey) => {
3552
+ const categoryFunctions = filteredFunctions.filter(
3553
+ (f) => f.categories.includes(categoryKey) || // If the category is "other" and the function is not in any other category, include it
3554
+ categoryKey === "other" && !f.categories.some((c) => knownCategories.includes(c))
3555
+ ).map((f) => f.name).sort();
3556
+ const definition = categoryDefinitions[categoryKey];
3557
+ const title = definition.title;
3558
+ return {
3559
+ key: categoryKey,
3560
+ title,
3561
+ titlePlural: definition.titlePlural ?? `${title}s`,
3562
+ functions: categoryFunctions
3563
+ };
3564
+ }).filter((category) => category.functions.length > 0);
3565
+ const result = {
3566
+ functions: filteredFunctions,
3567
+ categories: filteredCategories
3526
3568
  };
3569
+ registryCache.set(cacheKey, result);
3570
+ return result;
3527
3571
  }
3528
3572
  return {
3529
3573
  getRegistry
@@ -1,11 +1,25 @@
1
1
  import type { Plugin, GetSdkType } from "../../types/plugin";
2
2
  import type { RequestPluginProvides } from "../request";
3
+ import type { z } from "zod";
3
4
  export interface FetchPluginProvides {
4
5
  fetch: (url: string | URL, init?: RequestInit & {
5
6
  authenticationId?: number;
6
7
  callbackUrl?: string;
7
8
  authenticationTemplate?: string;
8
9
  }) => Promise<Response>;
10
+ context: {
11
+ meta: {
12
+ fetch: {
13
+ packages: string[];
14
+ categories: string[];
15
+ returnType: string;
16
+ inputParameters: Array<{
17
+ name: string;
18
+ schema: z.ZodSchema;
19
+ }>;
20
+ };
21
+ };
22
+ };
9
23
  }
10
24
  /**
11
25
  * Direct plugin function - takes options + sdk + context in one object
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/plugins/fetch/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAExD,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,CACL,GAAG,EAAE,MAAM,GAAG,GAAG,EACjB,IAAI,CAAC,EAAE,WAAW,GAAG;QACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,sBAAsB,CAAC,EAAE,MAAM,CAAC;KACjC,KACE,OAAO,CAAC,QAAQ,CAAC,CAAC;CACxB;AAED;;GAEG;AACH,eAAO,MAAM,WAAW,EAAE,MAAM,CAC9B,UAAU,CAAC,qBAAqB,CAAC,EAAE,0BAA0B;AAC7D,EAAE,EAAE,yCAAyC;AAC7C,mBAAmB,CA8BpB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG,WAAW,GAAG;IACjD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,sBAAsB,CAAC,EAAE,MAAM,CAAC;CACjC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/plugins/fetch/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAExD,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAE7B,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,CACL,GAAG,EAAE,MAAM,GAAG,GAAG,EACjB,IAAI,CAAC,EAAE,WAAW,GAAG;QACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,sBAAsB,CAAC,EAAE,MAAM,CAAC;KACjC,KACE,OAAO,CAAC,QAAQ,CAAC,CAAC;IACvB,OAAO,EAAE;QACP,IAAI,EAAE;YACJ,KAAK,EAAE;gBACL,QAAQ,EAAE,MAAM,EAAE,CAAC;gBACnB,UAAU,EAAE,MAAM,EAAE,CAAC;gBACrB,UAAU,EAAE,MAAM,CAAC;gBACnB,eAAe,EAAE,KAAK,CAAC;oBAAE,IAAI,EAAE,MAAM,CAAC;oBAAC,MAAM,EAAE,CAAC,CAAC,SAAS,CAAA;iBAAE,CAAC,CAAC;aAC/D,CAAC;SACH,CAAC;KACH,CAAC;CACH;AAED;;GAEG;AACH,eAAO,MAAM,WAAW,EAAE,MAAM,CAC9B,UAAU,CAAC,qBAAqB,CAAC,EAAE,0BAA0B;AAC7D,EAAE,EAAE,yCAAyC;AAC7C,mBAAmB,CA2CpB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG,WAAW,GAAG;IACjD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,sBAAsB,CAAC,EAAE,MAAM,CAAC;CACjC,CAAC"}
@@ -1,3 +1,4 @@
1
+ import { FetchUrlSchema, FetchInitSchema } from "./schemas";
1
2
  /**
2
3
  * Direct plugin function - takes options + sdk + context in one object
3
4
  */
@@ -16,5 +17,18 @@ export const fetchPlugin = ({ sdk }) => {
16
17
  authenticationTemplate,
17
18
  });
18
19
  },
20
+ context: {
21
+ meta: {
22
+ fetch: {
23
+ packages: ["sdk"],
24
+ categories: ["http"],
25
+ returnType: "Response",
26
+ inputParameters: [
27
+ { name: "url", schema: FetchUrlSchema },
28
+ { name: "init", schema: FetchInitSchema },
29
+ ],
30
+ },
31
+ },
32
+ },
19
33
  };
20
34
  };
@@ -0,0 +1,25 @@
1
+ import { z } from "zod";
2
+ export declare const FetchUrlSchema: z.ZodUnion<[z.ZodString, z.ZodType<URL, z.ZodTypeDef, URL>]>;
3
+ export declare const FetchInitSchema: z.ZodOptional<z.ZodObject<{
4
+ method: z.ZodOptional<z.ZodEnum<["GET", "POST", "PUT", "DELETE", "PATCH", "HEAD", "OPTIONS"]>>;
5
+ headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
6
+ body: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodType<FormData, z.ZodTypeDef, FormData>, z.ZodType<URLSearchParams, z.ZodTypeDef, URLSearchParams>]>>;
7
+ authenticationId: z.ZodOptional<z.ZodNumber>;
8
+ callbackUrl: z.ZodOptional<z.ZodString>;
9
+ authenticationTemplate: z.ZodOptional<z.ZodString>;
10
+ }, "strip", z.ZodTypeAny, {
11
+ method?: "GET" | "POST" | "PUT" | "DELETE" | "PATCH" | "HEAD" | "OPTIONS" | undefined;
12
+ authenticationId?: number | undefined;
13
+ body?: string | URLSearchParams | FormData | undefined;
14
+ callbackUrl?: string | undefined;
15
+ authenticationTemplate?: string | undefined;
16
+ headers?: Record<string, string> | undefined;
17
+ }, {
18
+ method?: "GET" | "POST" | "PUT" | "DELETE" | "PATCH" | "HEAD" | "OPTIONS" | undefined;
19
+ authenticationId?: number | undefined;
20
+ body?: string | URLSearchParams | FormData | undefined;
21
+ callbackUrl?: string | undefined;
22
+ authenticationTemplate?: string | undefined;
23
+ headers?: Record<string, string> | undefined;
24
+ }>>;
25
+ //# sourceMappingURL=schemas.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../../src/plugins/fetch/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,cAAc,8DAEI,CAAC;AAEhC,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;GA6ByB,CAAC"}
@@ -0,0 +1,33 @@
1
+ import { z } from "zod";
2
+ // Schemas for fetch function parameters
3
+ export const FetchUrlSchema = z
4
+ .union([z.string(), z.instanceof(URL)])
5
+ .describe("The URL to fetch");
6
+ export const FetchInitSchema = z
7
+ .object({
8
+ method: z
9
+ .enum(["GET", "POST", "PUT", "DELETE", "PATCH", "HEAD", "OPTIONS"])
10
+ .optional(),
11
+ headers: z.record(z.string()).optional(),
12
+ body: z
13
+ .union([
14
+ z.string(),
15
+ z.instanceof(FormData),
16
+ z.instanceof(URLSearchParams),
17
+ ])
18
+ .optional(),
19
+ authenticationId: z
20
+ .number()
21
+ .optional()
22
+ .describe("Zapier authentication ID to use for the request"),
23
+ callbackUrl: z
24
+ .string()
25
+ .optional()
26
+ .describe("URL to send async response to (makes request async)"),
27
+ authenticationTemplate: z
28
+ .string()
29
+ .optional()
30
+ .describe("Optional JSON string authentication template to bypass Notary lookup"),
31
+ })
32
+ .optional()
33
+ .describe("Fetch options including authentication");
@@ -3,7 +3,9 @@ import type { FunctionRegistryEntry } from "../../types/sdk";
3
3
  export interface RegisterPluginFunctionOptions {
4
4
  }
5
5
  export interface RegistryPluginProvides {
6
- getRegistry: () => {
6
+ getRegistry: (options?: {
7
+ package?: string;
8
+ }) => {
7
9
  functions: FunctionRegistryEntry[];
8
10
  categories: {
9
11
  key: string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/plugins/registry/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAE7D,MAAM,WAAW,6BAA6B;CAAG;AAEjD,MAAM,WAAW,sBAAsB;IACrC,WAAW,EAAE,MAAM;QACjB,SAAS,EAAE,qBAAqB,EAAE,CAAC;QACnC,UAAU,EAAE;YACV,GAAG,EAAE,MAAM,CAAC;YACZ,KAAK,EAAE,MAAM,CAAC;YACd,WAAW,EAAE,MAAM,CAAC;YACpB,SAAS,EAAE,MAAM,EAAE,CAAC;SACrB,EAAE,CAAC;KACL,CAAC;CACH;AAGD,eAAO,MAAM,cAAc,EAAE,MAAM,CACjC,EAAE,EAAE,wBAAwB;AAC5B,EAAE,EAAE,sBAAsB;AAC1B,sBAAsB,CA+FvB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/plugins/registry/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAE7D,MAAM,WAAW,6BAA6B;CAAG;AAEjD,MAAM,WAAW,sBAAsB;IACrC,WAAW,EAAE,CAAC,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK;QAC/C,SAAS,EAAE,qBAAqB,EAAE,CAAC;QACnC,UAAU,EAAE;YACV,GAAG,EAAE,MAAM,CAAC;YACZ,KAAK,EAAE,MAAM,CAAC;YACd,WAAW,EAAE,MAAM,CAAC;YACpB,SAAS,EAAE,MAAM,EAAE,CAAC;SACrB,EAAE,CAAC;KACL,CAAC;CACH;AAGD,eAAO,MAAM,cAAc,EAAE,MAAM,CACjC,EAAE,EAAE,wBAAwB;AAC5B,EAAE,EAAE,sBAAsB;AAC1B,sBAAsB,CA+HvB,CAAC"}
@@ -36,48 +36,69 @@ export const registryPlugin = ({ sdk, context }) => {
36
36
  itemType: meta.itemType,
37
37
  returnType: meta.returnType,
38
38
  inputSchema: meta.inputSchema,
39
+ inputParameters: meta.inputParameters,
39
40
  outputSchema: meta.outputSchema,
40
41
  categories: meta.categories || [],
41
42
  resolvers: meta.resolvers,
43
+ packages: meta.packages,
42
44
  };
43
45
  })
44
46
  .sort((a, b) => a.name.localeCompare(b.name));
45
47
  const knownCategories = Object.keys(categoryDefinitions);
46
- const categories = knownCategories
47
- .sort((a, b) => {
48
- // Keep "other" category last
49
- if (a === "other")
50
- return 1;
51
- if (b === "other")
52
- return -1;
53
- // Alphabetize by title, not key
54
- const titleA = categoryDefinitions[a].title;
55
- const titleB = categoryDefinitions[b].title;
56
- return titleA.localeCompare(titleB);
57
- })
58
- .map((categoryKey) => {
59
- // Find the functions that are in this category
60
- const categoryFunctions = functions
61
- .filter((f) => f.categories.includes(categoryKey) ||
62
- // If the category is "other" and the function is not in any other category, include it
63
- (categoryKey === "other" &&
64
- !f.categories.some((c) => knownCategories.includes(c))))
65
- .map((f) => f.name)
66
- .sort(); // Alphabetize functions within each category
67
- const definition = categoryDefinitions[categoryKey];
68
- const title = definition.title;
69
- return {
70
- key: categoryKey,
71
- title,
72
- titlePlural: definition.titlePlural ?? `${title}s`,
73
- functions: categoryFunctions,
74
- };
75
- });
76
- function getRegistry() {
77
- return {
78
- functions,
79
- categories,
48
+ // Cache the entire registry result for each package
49
+ const registryCache = new Map();
50
+ function getRegistry(options) {
51
+ const packageFilter = options?.package;
52
+ const cacheKey = packageFilter || "__all__";
53
+ // Return cached result if available
54
+ if (registryCache.has(cacheKey)) {
55
+ return registryCache.get(cacheKey);
56
+ }
57
+ // Filter functions by package if specified
58
+ const filteredFunctions = packageFilter
59
+ ? functions.filter((f) =>
60
+ // Include if packages is undefined (belongs to all packages) or includes the specified package
61
+ !f.packages || f.packages.includes(packageFilter))
62
+ : functions;
63
+ // Build categories with filtered functions
64
+ const filteredCategories = knownCategories
65
+ .sort((a, b) => {
66
+ // Keep "other" category last
67
+ if (a === "other")
68
+ return 1;
69
+ if (b === "other")
70
+ return -1;
71
+ // Alphabetize by title, not key
72
+ const titleA = categoryDefinitions[a].title;
73
+ const titleB = categoryDefinitions[b].title;
74
+ return titleA.localeCompare(titleB);
75
+ })
76
+ .map((categoryKey) => {
77
+ // Find the functions that are in this category and match the package filter
78
+ const categoryFunctions = filteredFunctions
79
+ .filter((f) => f.categories.includes(categoryKey) ||
80
+ // If the category is "other" and the function is not in any other category, include it
81
+ (categoryKey === "other" &&
82
+ !f.categories.some((c) => knownCategories.includes(c))))
83
+ .map((f) => f.name)
84
+ .sort(); // Alphabetize functions within each category
85
+ const definition = categoryDefinitions[categoryKey];
86
+ const title = definition.title;
87
+ return {
88
+ key: categoryKey,
89
+ title,
90
+ titlePlural: definition.titlePlural ?? `${title}s`,
91
+ functions: categoryFunctions,
92
+ };
93
+ })
94
+ .filter((category) => category.functions.length > 0); // Only include categories with functions
95
+ const result = {
96
+ functions: filteredFunctions,
97
+ categories: filteredCategories,
80
98
  };
99
+ // Cache the result
100
+ registryCache.set(cacheKey, result);
101
+ return result;
81
102
  }
82
103
  return {
83
104
  getRegistry,
package/dist/sdk.d.ts CHANGED
@@ -93,6 +93,18 @@ export declare function createZapierSdkWithoutRegistry(options?: ZapierSdkOption
93
93
  inputSchema: typeof import(".").RelayRequestSchema;
94
94
  };
95
95
  };
96
+ } & {
97
+ meta: {
98
+ fetch: {
99
+ packages: string[];
100
+ categories: string[];
101
+ returnType: string;
102
+ inputParameters: Array<{
103
+ name: string;
104
+ schema: import("zod").ZodType;
105
+ }>;
106
+ };
107
+ };
96
108
  } & {
97
109
  meta: {
98
110
  getProfile: {
package/dist/sdk.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"sdk.d.ts","sourceRoot":"","sources":["../src/sdk.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAMlD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,EACV,GAAG,EACH,MAAM,EACN,wBAAwB,EACxB,oBAAoB,EACpB,cAAc,EACd,UAAU,EACX,MAAM,gBAAgB,CAAC;AAyBxB,MAAM,WAAW,gBAAiB,SAAQ,cAAc;CAAG;AAG3D,wBAAgB,SAAS,CACvB,WAAW,GAAG,EAAE,EAChB,eAAe,SAAS;IAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;CAAE,GAAG;IAC7D,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;CAClC,EAED,OAAO,GAAE,gBAAqB,EAC9B,UAAU,GAAE,WAA+B,EAC3C,cAAc,GAAE,eAAiD;;cAKrD,gBAAgB,EAAE,SAAS,SAAS,cAAc,UAClD,MAAM,CACZ,WAAW,GAAG;QAAE,UAAU,IAAI,eAAe,CAAA;KAAE,EAC/C,gBAAgB,EAChB,SAAS,CACV,qBACiB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACxC,GAAG,CACJ,WAAW,GAAG,oBAAoB,CAAC,SAAS,CAAC,EAC7C,eAAe,GAAG,WAAW,CAAC,wBAAwB,CAAC,SAAS,CAAC,CAAC,CACnE;EA8DJ;AAED,wBAAgB,8BAA8B,CAAC,OAAO,GAAE,gBAAqB;UApFnE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC;;;;;;+GAf2B,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuI/D;AAED,wBAAgB,eAAe,CAAC,OAAO,GAAE,gBAAqB,GAAG,SAAS,CAMzE"}
1
+ {"version":3,"file":"sdk.d.ts","sourceRoot":"","sources":["../src/sdk.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAMlD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,EACV,GAAG,EACH,MAAM,EACN,wBAAwB,EACxB,oBAAoB,EACpB,cAAc,EACd,UAAU,EACX,MAAM,gBAAgB,CAAC;AAyBxB,MAAM,WAAW,gBAAiB,SAAQ,cAAc;CAAG;AAG3D,wBAAgB,SAAS,CACvB,WAAW,GAAG,EAAE,EAChB,eAAe,SAAS;IAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;CAAE,GAAG;IAC7D,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;CAClC,EAED,OAAO,GAAE,gBAAqB,EAC9B,UAAU,GAAE,WAA+B,EAC3C,cAAc,GAAE,eAAiD;;cAKrD,gBAAgB,EAAE,SAAS,SAAS,cAAc,UAClD,MAAM,CACZ,WAAW,GAAG;QAAE,UAAU,IAAI,eAAe,CAAA;KAAE,EAC/C,gBAAgB,EAChB,SAAS,CACV,qBACiB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACxC,GAAG,CACJ,WAAW,GAAG,oBAAoB,CAAC,SAAS,CAAC,EAC7C,eAAe,GAAG,WAAW,CAAC,wBAAwB,CAAC,SAAS,CAAC,CAAC,CACnE;EA8DJ;AAED,wBAAgB,8BAA8B,CAAC,OAAO,GAAE,gBAAqB;UApFnE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC;;;;;;+GAf2B,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuI/D;AAED,wBAAgB,eAAe,CAAC,OAAO,GAAE,gBAAqB,GAAG,SAAS,CAMzE"}
@@ -49,10 +49,15 @@ export interface FunctionRegistryEntry {
49
49
  type?: "list" | "item";
50
50
  itemType?: string;
51
51
  returnType?: string;
52
- inputSchema: z.ZodSchema;
52
+ inputSchema?: z.ZodSchema;
53
+ inputParameters?: Array<{
54
+ name: string;
55
+ schema: z.ZodSchema;
56
+ }>;
53
57
  outputSchema?: z.ZodSchema;
54
58
  categories: string[];
55
59
  resolvers?: Record<string, any>;
60
+ packages?: string[];
56
61
  }
57
62
  export interface ZapierSdkFunctions extends ListInputFieldsSdkFunction, GetAuthenticationSdkFunction, FindFirstAuthenticationSdkFunction, FindUniqueAuthenticationSdkFunction, RelayRequestSdkFunction {
58
63
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sdk.d.ts","sourceRoot":"","sources":["../../src/types/sdk.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sdk.d.ts","sourceRoot":"","sources":["../../src/types/sdk.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zapier/zapier-sdk",
3
- "version": "0.11.0",
3
+ "version": "0.11.2",
4
4
  "description": "Complete Zapier SDK - combines all Zapier SDK packages",
5
5
  "main": "dist/index.cjs",
6
6
  "module": "dist/index.mjs",
@@ -1,6 +1,8 @@
1
1
  import type { RelayRequestOptions } from "../request/schemas";
2
2
  import type { Plugin, GetSdkType } from "../../types/plugin";
3
3
  import type { RequestPluginProvides } from "../request";
4
+ import { FetchUrlSchema, FetchInitSchema } from "./schemas";
5
+ import type { z } from "zod";
4
6
 
5
7
  export interface FetchPluginProvides {
6
8
  fetch: (
@@ -11,6 +13,16 @@ export interface FetchPluginProvides {
11
13
  authenticationTemplate?: string;
12
14
  },
13
15
  ) => Promise<Response>;
16
+ context: {
17
+ meta: {
18
+ fetch: {
19
+ packages: string[];
20
+ categories: string[];
21
+ returnType: string;
22
+ inputParameters: Array<{ name: string; schema: z.ZodSchema }>;
23
+ };
24
+ };
25
+ };
14
26
  }
15
27
 
16
28
  /**
@@ -48,6 +60,19 @@ export const fetchPlugin: Plugin<
48
60
  authenticationTemplate,
49
61
  });
50
62
  },
63
+ context: {
64
+ meta: {
65
+ fetch: {
66
+ packages: ["sdk"],
67
+ categories: ["http"],
68
+ returnType: "Response",
69
+ inputParameters: [
70
+ { name: "url", schema: FetchUrlSchema },
71
+ { name: "init", schema: FetchInitSchema },
72
+ ],
73
+ },
74
+ },
75
+ },
51
76
  };
52
77
  };
53
78
 
@@ -0,0 +1,37 @@
1
+ import { z } from "zod";
2
+
3
+ // Schemas for fetch function parameters
4
+ export const FetchUrlSchema = z
5
+ .union([z.string(), z.instanceof(URL)])
6
+ .describe("The URL to fetch");
7
+
8
+ export const FetchInitSchema = z
9
+ .object({
10
+ method: z
11
+ .enum(["GET", "POST", "PUT", "DELETE", "PATCH", "HEAD", "OPTIONS"])
12
+ .optional(),
13
+ headers: z.record(z.string()).optional(),
14
+ body: z
15
+ .union([
16
+ z.string(),
17
+ z.instanceof(FormData),
18
+ z.instanceof(URLSearchParams),
19
+ ])
20
+ .optional(),
21
+ authenticationId: z
22
+ .number()
23
+ .optional()
24
+ .describe("Zapier authentication ID to use for the request"),
25
+ callbackUrl: z
26
+ .string()
27
+ .optional()
28
+ .describe("URL to send async response to (makes request async)"),
29
+ authenticationTemplate: z
30
+ .string()
31
+ .optional()
32
+ .describe(
33
+ "Optional JSON string authentication template to bypass Notary lookup",
34
+ ),
35
+ })
36
+ .optional()
37
+ .describe("Fetch options including authentication");