@zapier/zapier-sdk 0.88.0 → 0.88.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.
@@ -171,12 +171,19 @@ function composeVoid(existing, added) {
171
171
  isolated.add(composed);
172
172
  return composed;
173
173
  }
174
+ function composeAnnotators(existing, added) {
175
+ if (!existing) return added;
176
+ if (!added) return existing;
177
+ return (ctx) => ({ ...existing(ctx), ...added(ctx) });
178
+ }
174
179
  function buildHooks(existing, added) {
175
180
  const result = {};
176
181
  const start2 = composeVoid(existing.onMethodStart, added.onMethodStart);
177
182
  if (start2) result.onMethodStart = start2;
178
183
  const end = composeVoid(existing.onMethodEnd, added.onMethodEnd);
179
184
  if (end) result.onMethodEnd = end;
185
+ const annotator = composeAnnotators(existing.annotator, added.annotator);
186
+ if (annotator) result.annotator = annotator;
180
187
  return result;
181
188
  }
182
189
  function createDeprecationLogger(tag) {
@@ -578,11 +585,14 @@ function generateCallId() {
578
585
  }
579
586
  return null;
580
587
  }
581
- function rootCallContext() {
588
+ function rootCallContext({
589
+ callOrigin = "surface"
590
+ } = {}) {
582
591
  return {
583
592
  callId: generateCallId(),
584
593
  depth: 0,
585
594
  annotations: {},
595
+ callOrigin,
586
596
  [CALL_CONTEXT_BRAND]: true
587
597
  };
588
598
  }
@@ -591,6 +601,7 @@ function childCallContext(parent) {
591
601
  callId: parent.callId,
592
602
  depth: parent.depth + 1,
593
603
  annotations: {},
604
+ callOrigin: parent.callOrigin,
594
605
  [CALL_CONTEXT_BRAND]: true
595
606
  };
596
607
  }
@@ -612,6 +623,28 @@ var INTERNAL_CALL = Symbol("kitcore.internalCall");
612
623
  function resolveCallContext(secondArg) {
613
624
  return isCallContext(secondArg) ? secondArg : rootCallContext();
614
625
  }
626
+ var hookAnnotatorReentrancy = 0;
627
+ function applyAnnotations({
628
+ context,
629
+ methodName,
630
+ input,
631
+ hookAnnotator,
632
+ methodAnnotator
633
+ }) {
634
+ if (hookAnnotator && !isInsideObserver() && context.depth === 0 && context.callOrigin !== "internal" && hookAnnotatorReentrancy === 0) {
635
+ hookAnnotatorReentrancy++;
636
+ try {
637
+ Object.assign(context.annotations, hookAnnotator({ methodName, input }));
638
+ } catch {
639
+ } finally {
640
+ hookAnnotatorReentrancy--;
641
+ }
642
+ }
643
+ try {
644
+ Object.assign(context.annotations, methodAnnotator?.(input));
645
+ } catch {
646
+ }
647
+ }
615
648
  function signalDeprecation(context, methodName, getDeprecation) {
616
649
  if (isInsideObserver()) return;
617
650
  const deprecation = getDeprecation?.();
@@ -637,7 +670,7 @@ function normalizeError(error, adaptError) {
637
670
  );
638
671
  }
639
672
  function createFunction(coreFn, options) {
640
- const { sdk, schema, name, getDeprecation } = options;
673
+ const { sdk, schema, name, annotator, getDeprecation } = options;
641
674
  const functionName = name || coreFn.name;
642
675
  const namedFunctions = {
643
676
  [functionName]: async function(callOptions) {
@@ -651,14 +684,26 @@ function createFunction(coreFn, options) {
651
684
  const normalizedOptions = callOptions ?? {};
652
685
  const args = [normalizedOptions];
653
686
  const depth = Math.max(context.depth, getCurrentDepth());
654
- const hooks = isInsideObserver() ? void 0 : sdk.context.hooks;
687
+ const insideObserver = isInsideObserver();
688
+ const hooks = insideObserver ? void 0 : sdk.context.hooks;
655
689
  const adaptError = resolveCoreOptions(sdk.context)?.adaptError;
656
- hooks?.onMethodStart?.({
690
+ applyAnnotations({
691
+ context,
692
+ methodName: functionName,
693
+ input: normalizedOptions,
694
+ hookAnnotator: hooks?.annotator,
695
+ methodAnnotator: annotator
696
+ });
697
+ const hookBase = {
657
698
  methodName: functionName,
658
699
  args,
659
700
  isPaginated: false,
660
- depth
661
- });
701
+ depth,
702
+ callId: context.callId,
703
+ callOrigin: context.callOrigin,
704
+ annotations: context.annotations
705
+ };
706
+ hooks?.onMethodStart?.({ ...hookBase });
662
707
  try {
663
708
  let result;
664
709
  if (schema) {
@@ -680,20 +725,14 @@ function createFunction(coreFn, options) {
680
725
  result = await coreFn(normalizedOptions, context);
681
726
  }
682
727
  hooks?.onMethodEnd?.({
683
- methodName: functionName,
684
- args,
685
- isPaginated: false,
686
- depth,
728
+ ...hookBase,
687
729
  durationMs: Date.now() - startTime
688
730
  });
689
731
  return result;
690
732
  } catch (error) {
691
733
  const normalizedError = normalizeError(error, adaptError);
692
734
  hooks?.onMethodEnd?.({
693
- methodName: functionName,
694
- args,
695
- isPaginated: false,
696
- depth,
735
+ ...hookBase,
697
736
  durationMs: Date.now() - startTime,
698
737
  error: normalizedError
699
738
  });
@@ -705,7 +744,7 @@ function createFunction(coreFn, options) {
705
744
  return namedFunctions[functionName];
706
745
  }
707
746
  function createRawFunction(coreFn, options) {
708
- const { sdk, name, schema, positional, getDeprecation } = options;
747
+ const { sdk, name, schema, positional, annotator, getDeprecation } = options;
709
748
  return function(rawInput) {
710
749
  const internal = arguments[1];
711
750
  const context = resolveCallContext(internal);
@@ -715,23 +754,32 @@ function createRawFunction(coreFn, options) {
715
754
  return runInMethodScope(() => {
716
755
  const startTime = Date.now();
717
756
  const depth = Math.max(context.depth, getCurrentDepth());
718
- const hooks = isInsideObserver() ? void 0 : sdk.context.hooks;
757
+ const insideObserver = isInsideObserver();
758
+ const hooks = insideObserver ? void 0 : sdk.context.hooks;
719
759
  const adaptError = resolveCoreOptions(sdk.context)?.adaptError;
720
760
  const input = schema ? rawInput ?? {} : rawInput;
761
+ applyAnnotations({
762
+ context,
763
+ methodName: name,
764
+ input,
765
+ hookAnnotator: hooks?.annotator,
766
+ methodAnnotator: annotator
767
+ });
721
768
  const record = input;
722
769
  const args = positional ? positional.filter((key) => record?.[key] !== void 0).map((key) => record?.[key]) : [input];
723
- hooks?.onMethodStart?.({
770
+ const hookBase = {
724
771
  methodName: name,
725
772
  args,
726
773
  isPaginated: false,
727
- depth
728
- });
774
+ depth,
775
+ callId: context.callId,
776
+ callOrigin: context.callOrigin,
777
+ annotations: context.annotations
778
+ };
779
+ hooks?.onMethodStart?.({ ...hookBase });
729
780
  const fireEnd = (error) => {
730
781
  hooks?.onMethodEnd?.({
731
- methodName: name,
732
- args,
733
- isPaginated: false,
734
- depth,
782
+ ...hookBase,
735
783
  durationMs: Date.now() - startTime,
736
784
  ...error ? { error } : {}
737
785
  });
@@ -798,7 +846,15 @@ function createPageFunction(coreFn, {
798
846
  return namedFunctions[functionName];
799
847
  }
800
848
  function createPaginatedFunction(coreFn, options) {
801
- const { sdk, schema, name, defaultPageSize, adaptPage, getDeprecation } = options;
849
+ const {
850
+ sdk,
851
+ schema,
852
+ name,
853
+ defaultPageSize,
854
+ adaptPage,
855
+ annotator,
856
+ getDeprecation
857
+ } = options;
802
858
  const pageFunction = createPageFunction(coreFn, { sdk, adaptPage });
803
859
  const functionName = name || coreFn.name;
804
860
  const namedFunctions = {
@@ -813,14 +869,26 @@ function createPaginatedFunction(coreFn, options) {
813
869
  const normalizedOptions = callOptions ?? {};
814
870
  const args = [normalizedOptions];
815
871
  const depth = Math.max(context.depth, getCurrentDepth());
816
- const hooks = isInsideObserver() ? void 0 : sdk.context.hooks;
872
+ const insideObserver = isInsideObserver();
873
+ const hooks = insideObserver ? void 0 : sdk.context.hooks;
817
874
  const adaptError = resolveCoreOptions(sdk.context)?.adaptError;
818
- hooks?.onMethodStart?.({
875
+ applyAnnotations({
876
+ context,
877
+ methodName: functionName,
878
+ input: normalizedOptions,
879
+ hookAnnotator: hooks?.annotator,
880
+ methodAnnotator: annotator
881
+ });
882
+ const hookBase = {
819
883
  methodName: functionName,
820
884
  args,
821
885
  isPaginated: true,
822
- depth
823
- });
886
+ depth,
887
+ callId: context.callId,
888
+ callOrigin: context.callOrigin,
889
+ annotations: context.annotations
890
+ };
891
+ hooks?.onMethodStart?.({ ...hookBase });
824
892
  try {
825
893
  const validatedOptions = {
826
894
  ...normalizedOptions,
@@ -846,19 +914,13 @@ function createPaginatedFunction(coreFn, options) {
846
914
  firstPagePromise.then(
847
915
  () => {
848
916
  hooks.onMethodEnd({
849
- methodName: functionName,
850
- args,
851
- isPaginated: true,
852
- depth,
917
+ ...hookBase,
853
918
  durationMs: Date.now() - startTime
854
919
  });
855
920
  },
856
921
  (error) => {
857
922
  hooks.onMethodEnd({
858
- methodName: functionName,
859
- args,
860
- isPaginated: true,
861
- depth,
923
+ ...hookBase,
862
924
  durationMs: Date.now() - startTime,
863
925
  error: error instanceof Error ? error : new Error(String(error))
864
926
  });
@@ -897,10 +959,7 @@ function createPaginatedFunction(coreFn, options) {
897
959
  } catch (error) {
898
960
  const normalizedError = normalizeError(error, adaptError);
899
961
  hooks?.onMethodEnd?.({
900
- methodName: functionName,
901
- args,
902
- isPaginated: true,
903
- depth,
962
+ ...hookBase,
904
963
  durationMs: Date.now() - startTime,
905
964
  error: normalizedError
906
965
  });
@@ -1316,6 +1375,7 @@ function defineMethod(config) {
1316
1375
  meta: collectLeafMeta(config),
1317
1376
  resolvers: config.resolvers,
1318
1377
  formatter: config.formatter,
1378
+ annotator: config.annotator,
1319
1379
  output: config.output,
1320
1380
  positional: config.positional,
1321
1381
  setup: config.setup,
@@ -1475,7 +1535,8 @@ function defineHook(config) {
1475
1535
  setup: config.setup,
1476
1536
  dispose: config.dispose,
1477
1537
  wrap: config.wrap,
1478
- observe: config.observe
1538
+ observe: config.observe,
1539
+ annotator: config.annotator
1479
1540
  };
1480
1541
  }
1481
1542
  function declarePlugin(config) {
@@ -1901,7 +1962,14 @@ function collectPlugins(root, materialized = /* @__PURE__ */ new Set(), configur
1901
1962
  }
1902
1963
  return byId;
1903
1964
  }
1904
- function bindValue(target, key, entry, callType = "surface", ctx) {
1965
+ function bindValue({
1966
+ target,
1967
+ key,
1968
+ entry,
1969
+ bindMode = "surface",
1970
+ ctx,
1971
+ frameworkOrigin = false
1972
+ }) {
1905
1973
  if (entry.pluginType === "property" && entry.getValue) {
1906
1974
  Object.defineProperty(target, key, {
1907
1975
  get: entry.getValue,
@@ -1909,7 +1977,7 @@ function bindValue(target, key, entry, callType = "surface", ctx) {
1909
1977
  configurable: true
1910
1978
  });
1911
1979
  } else {
1912
- const value = callType === "internal" && entry.pluginType === "method" ? entry.bindInternal?.(ctx) ?? entry.internalValue ?? entry.value : entry.value;
1980
+ const value = bindMode === "internal" && entry.pluginType === "method" ? entry.bindInternal?.({ ctx, frameworkOrigin }) ?? entry.internalValue ?? entry.value : entry.value;
1913
1981
  Object.defineProperty(target, key, {
1914
1982
  value,
1915
1983
  writable: true,
@@ -1927,7 +1995,12 @@ function buildSurface(context, ...maps) {
1927
1995
  sdk[CONTEXT] = context;
1928
1996
  return sdk;
1929
1997
  }
1930
- function buildImports(plugins, importBindings, ctx) {
1998
+ function buildImports({
1999
+ plugins,
2000
+ importBindings,
2001
+ ctx,
2002
+ frameworkOrigin = false
2003
+ }) {
1931
2004
  const imports = {};
1932
2005
  for (const { binding, id, optional } of importBindings) {
1933
2006
  const entry = plugins[id];
@@ -1940,10 +2013,31 @@ function buildImports(plugins, importBindings, ctx) {
1940
2013
  });
1941
2014
  continue;
1942
2015
  }
1943
- bindValue(imports, binding, entry, "internal", ctx);
2016
+ bindValue({
2017
+ target: imports,
2018
+ key: binding,
2019
+ entry,
2020
+ bindMode: "internal",
2021
+ ctx,
2022
+ frameworkOrigin
2023
+ });
1944
2024
  }
1945
2025
  return imports;
1946
2026
  }
2027
+ function bindInternalTwin({
2028
+ ctx,
2029
+ frameworkOrigin,
2030
+ withContext,
2031
+ internalValue
2032
+ }) {
2033
+ if (ctx) {
2034
+ return (...args) => withContext(childCallContext(ctx))(...args);
2035
+ }
2036
+ if (frameworkOrigin) {
2037
+ return (...args) => withContext(rootCallContext({ callOrigin: "internal" }))(...args);
2038
+ }
2039
+ return internalValue;
2040
+ }
1947
2041
  function mirrorLegacyRootKeys(context, rootKeys, meta) {
1948
2042
  const exports = {};
1949
2043
  for (const [name, value] of Object.entries(rootKeys)) {
@@ -2007,7 +2101,11 @@ function bindResolver(resolver, plugins) {
2007
2101
  case "info":
2008
2102
  return { type: "info", text: resolver.text };
2009
2103
  case "object": {
2010
- const imports = buildImports(plugins, resolver.importBindings);
2104
+ const imports = buildImports({
2105
+ plugins,
2106
+ importBindings: resolver.importBindings,
2107
+ frameworkOrigin: true
2108
+ });
2011
2109
  const bound = {
2012
2110
  type: "object",
2013
2111
  requireParameters: resolver.requireParameters
@@ -2048,7 +2146,11 @@ function bindResolver(resolver, plugins) {
2048
2146
  return bound;
2049
2147
  }
2050
2148
  case "dynamic": {
2051
- const imports = buildImports(plugins, resolver.importBindings);
2149
+ const imports = buildImports({
2150
+ plugins,
2151
+ importBindings: resolver.importBindings,
2152
+ frameworkOrigin: true
2153
+ });
2052
2154
  const {
2053
2155
  getContext: getContext2,
2054
2156
  listItems,
@@ -2103,7 +2205,11 @@ function bindDefinitions(definitions, plugins) {
2103
2205
  return out;
2104
2206
  }
2105
2207
  function bindFormatter(formatter, plugins) {
2106
- const imports = buildImports(plugins, formatter.importBindings);
2208
+ const imports = buildImports({
2209
+ plugins,
2210
+ importBindings: formatter.importBindings,
2211
+ frameworkOrigin: true
2212
+ });
2107
2213
  const bound = { format: formatter.format };
2108
2214
  const { getContext: getContext2 } = formatter;
2109
2215
  if (getContext2)
@@ -2190,17 +2296,32 @@ function buildMethodEntries(descriptors, context, states) {
2190
2296
  // Replaced below; never called.
2191
2297
  value: () => void 0
2192
2298
  };
2193
- const callRun = (input, ctx) => descriptor.run({
2194
- imports: buildImports(plugins, descriptor.importBindings, ctx),
2195
- state: states.get(id),
2196
- input
2197
- });
2299
+ const callRun = (input, ctx) => {
2300
+ const callContext = ctx ?? rootCallContext();
2301
+ return descriptor.run({
2302
+ imports: buildImports({
2303
+ plugins,
2304
+ importBindings: descriptor.importBindings,
2305
+ ctx: callContext
2306
+ }),
2307
+ state: states.get(id),
2308
+ input,
2309
+ callContext,
2310
+ annotate: (metadata) => {
2311
+ Object.assign(callContext.annotations, metadata);
2312
+ }
2313
+ });
2314
+ };
2198
2315
  const fold = (coreFn) => (input, ctx) => {
2199
2316
  let next = (i) => coreFn(i, ctx);
2200
2317
  for (const wrap of entry.chain) {
2201
2318
  const inner = next;
2202
2319
  next = (i) => wrap.run({
2203
- imports: buildImports(plugins, wrap.owner.importBindings, ctx),
2320
+ imports: buildImports({
2321
+ plugins,
2322
+ importBindings: wrap.owner.importBindings,
2323
+ ctx
2324
+ }),
2204
2325
  next: inner,
2205
2326
  input: i,
2206
2327
  // Overwritten by the chain item's own closure with the owning
@@ -2211,6 +2332,8 @@ function buildMethodEntries(descriptors, context, states) {
2211
2332
  return next(input);
2212
2333
  };
2213
2334
  const sdk = { context };
2335
+ const methodAnnotator = descriptor.annotator;
2336
+ const boundAnnotator = methodAnnotator ? (input) => methodAnnotator({ input }) : void 0;
2214
2337
  if (out.type === "list") {
2215
2338
  entry.value = createPaginatedFunction(
2216
2339
  fold(callRun),
@@ -2220,6 +2343,7 @@ function buildMethodEntries(descriptors, context, states) {
2220
2343
  name: descriptor.name,
2221
2344
  defaultPageSize: out.defaultPageSize,
2222
2345
  adaptPage: out.adaptPage,
2346
+ annotator: boundAnnotator,
2223
2347
  getDeprecation: () => entry.meta?.deprecation
2224
2348
  }
2225
2349
  );
@@ -2231,6 +2355,7 @@ function buildMethodEntries(descriptors, context, states) {
2231
2355
  sdk,
2232
2356
  schema: descriptor.inputSchema,
2233
2357
  name: descriptor.name,
2358
+ annotator: boundAnnotator,
2234
2359
  getDeprecation: () => entry.meta?.deprecation
2235
2360
  }
2236
2361
  );
@@ -2242,6 +2367,7 @@ function buildMethodEntries(descriptors, context, states) {
2242
2367
  name: descriptor.name,
2243
2368
  schema: descriptor.skipInputValidation ? void 0 : descriptor.inputSchema,
2244
2369
  positional: descriptor.positional,
2370
+ annotator: boundAnnotator,
2245
2371
  // The boundary reads the deprecation LIVE off the entry, so a
2246
2372
  // deprecation merged after build (defineMethodOverride, addPlugin)
2247
2373
  // fires too.
@@ -2262,12 +2388,22 @@ function buildMethodEntries(descriptors, context, states) {
2262
2388
  const internalValue = (...args) => canonicalValue(pack(args), INTERNAL_CALL);
2263
2389
  entry.value = (...args) => canonicalValue(pack(args));
2264
2390
  entry.internalValue = internalValue;
2265
- entry.bindInternal = (ctx) => ctx ? (...args) => canonicalValue(pack(args), childCallContext(ctx)) : internalValue;
2391
+ entry.bindInternal = (opts) => bindInternalTwin({
2392
+ ...opts,
2393
+ withContext: (context2) => {
2394
+ return (...args) => canonicalValue(pack(args), context2);
2395
+ },
2396
+ internalValue
2397
+ });
2266
2398
  entry.positional = names;
2267
2399
  } else {
2268
2400
  const internalValue = (input) => canonicalValue(input, INTERNAL_CALL);
2269
2401
  entry.internalValue = internalValue;
2270
- entry.bindInternal = (ctx) => ctx ? (input) => canonicalValue(input, childCallContext(ctx)) : internalValue;
2402
+ entry.bindInternal = (opts) => bindInternalTwin({
2403
+ ...opts,
2404
+ withContext: (context2) => (input) => canonicalValue(input, context2),
2405
+ internalValue
2406
+ });
2271
2407
  }
2272
2408
  plugins[id] = entry;
2273
2409
  }
@@ -2293,8 +2429,14 @@ function buildEagerArtifacts(descriptors, context, states) {
2293
2429
  if (!dispose) return;
2294
2430
  context.disposers?.push({
2295
2431
  id,
2432
+ // Teardown is framework-internal: an SDK method a `dispose` calls runs
2433
+ // on an internal-origin root (dropped from telemetry).
2296
2434
  dispose: (input) => dispose({
2297
- imports: buildImports(plugins, descriptor.importBindings),
2435
+ imports: buildImports({
2436
+ plugins,
2437
+ importBindings: descriptor.importBindings,
2438
+ frameworkOrigin: true
2439
+ }),
2298
2440
  state: states.get(id),
2299
2441
  input
2300
2442
  })
@@ -2304,7 +2446,10 @@ function buildEagerArtifacts(descriptors, context, states) {
2304
2446
  states.set(
2305
2447
  id,
2306
2448
  descriptor.setup ? descriptor.setup({
2307
- imports: buildImports(plugins, descriptor.importBindings)
2449
+ imports: buildImports({
2450
+ plugins,
2451
+ importBindings: descriptor.importBindings
2452
+ })
2308
2453
  }) : void 0
2309
2454
  );
2310
2455
  recordDisposer();
@@ -2316,14 +2461,20 @@ function buildEagerArtifacts(descriptors, context, states) {
2316
2461
  states.set(
2317
2462
  id,
2318
2463
  descriptor.setup ? descriptor.setup({
2319
- imports: buildImports(plugins, descriptor.importBindings)
2464
+ imports: buildImports({
2465
+ plugins,
2466
+ importBindings: descriptor.importBindings
2467
+ })
2320
2468
  }) : void 0
2321
2469
  );
2322
2470
  } else {
2323
2471
  states.set(
2324
2472
  id,
2325
2473
  descriptor.setup ? descriptor.setup({
2326
- imports: buildImports(plugins, descriptor.importBindings)
2474
+ imports: buildImports({
2475
+ plugins,
2476
+ importBindings: descriptor.importBindings
2477
+ })
2327
2478
  }) : void 0
2328
2479
  );
2329
2480
  if (descriptor.privileged) {
@@ -2341,7 +2492,7 @@ function buildEagerArtifacts(descriptors, context, states) {
2341
2492
  pluginType: "property",
2342
2493
  name: descriptor.name,
2343
2494
  getValue: () => get({
2344
- imports: buildImports(plugins, importBindings),
2495
+ imports: buildImports({ plugins, importBindings }),
2345
2496
  state: states.get(id)
2346
2497
  }),
2347
2498
  meta: descriptor.meta,
@@ -2377,7 +2528,7 @@ function resolvePlugin(sdk, ref) {
2377
2528
  return entry.getValue();
2378
2529
  }
2379
2530
  if (entry.pluginType === "method" && entry.internalValue) {
2380
- return entry.internalValue;
2531
+ return entry.bindInternal?.({ frameworkOrigin: true }) ?? entry.internalValue;
2381
2532
  }
2382
2533
  return entry.value;
2383
2534
  }
@@ -2412,7 +2563,7 @@ function resolveAggregates(descriptors, context) {
2412
2563
  if (descriptor.pluginType !== "aggregate") continue;
2413
2564
  const exports = {};
2414
2565
  for (const [binding, child] of Object.entries(descriptor.exports)) {
2415
- bindValue(exports, binding, plugins[child.id]);
2566
+ bindValue({ target: exports, key: binding, entry: plugins[child.id] });
2416
2567
  }
2417
2568
  plugins[id] = { pluginType: "aggregate", name: descriptor.name, exports };
2418
2569
  }
@@ -2455,23 +2606,39 @@ function assembleHooks(descriptors, context, states) {
2455
2606
  const plugins = context.plugins;
2456
2607
  for (const id of topoOrder(descriptors)) {
2457
2608
  const descriptor = descriptors.get(id);
2458
- if (!descriptor || descriptor.pluginType !== "hook" || !descriptor.observe) {
2609
+ if (!descriptor || descriptor.pluginType !== "hook" || !descriptor.observe && !descriptor.annotator) {
2459
2610
  continue;
2460
2611
  }
2461
- const { observe } = descriptor;
2462
- const imports = buildImports(plugins, descriptor.importBindings);
2612
+ const { observe, annotator } = descriptor;
2463
2613
  const state = states.get(id);
2464
2614
  const contributed = {};
2465
- if (observe.onMethodStart) {
2466
- const onStart = observe.onMethodStart;
2467
- contributed.onMethodStart = (input) => {
2468
- runIsolatedObserver(() => onStart({ imports, input, state }));
2469
- };
2615
+ if (observe?.onMethodStart || observe?.onMethodEnd) {
2616
+ const imports = buildImports({
2617
+ plugins,
2618
+ importBindings: descriptor.importBindings,
2619
+ frameworkOrigin: true
2620
+ });
2621
+ if (observe.onMethodStart) {
2622
+ const onStart = observe.onMethodStart;
2623
+ contributed.onMethodStart = (input) => {
2624
+ runIsolatedObserver(() => onStart({ imports, input, state }));
2625
+ };
2626
+ }
2627
+ if (observe.onMethodEnd) {
2628
+ const onEnd = observe.onMethodEnd;
2629
+ contributed.onMethodEnd = (input) => {
2630
+ runIsolatedObserver(() => onEnd({ imports, input, state }));
2631
+ };
2632
+ }
2470
2633
  }
2471
- if (observe.onMethodEnd) {
2472
- const onEnd = observe.onMethodEnd;
2473
- contributed.onMethodEnd = (input) => {
2474
- runIsolatedObserver(() => onEnd({ imports, input, state }));
2634
+ if (annotator) {
2635
+ const annotatorFn = annotator;
2636
+ contributed.annotator = ({ methodName, input }) => {
2637
+ try {
2638
+ return annotatorFn({ methodName, input, state });
2639
+ } catch {
2640
+ return {};
2641
+ }
2475
2642
  };
2476
2643
  }
2477
2644
  context.hooks = buildHooks(context.hooks, contributed);
@@ -2505,7 +2672,11 @@ function createSdk(root, options) {
2505
2672
  pluginSurface = plugins2[plugin.id].exports;
2506
2673
  } else {
2507
2674
  pluginSurface = {};
2508
- bindValue(pluginSurface, plugin.name, plugins2[plugin.id]);
2675
+ bindValue({
2676
+ target: pluginSurface,
2677
+ key: plugin.name,
2678
+ entry: plugins2[plugin.id]
2679
+ });
2509
2680
  }
2510
2681
  for (const key of Object.keys(legacyExports)) context.surface[key] = key;
2511
2682
  if (plugin.pluginType === "aggregate") {
@@ -2522,7 +2693,7 @@ function createSdk(root, options) {
2522
2693
  if (root.pluginType === "method" || root.pluginType === "property") {
2523
2694
  context.surface[root.name] = root.id;
2524
2695
  const sdk = buildSurface(context);
2525
- bindValue(sdk, root.name, plugins[root.id]);
2696
+ bindValue({ target: sdk, key: root.name, entry: plugins[root.id] });
2526
2697
  return sdk;
2527
2698
  }
2528
2699
  if (root.pluginType === "aggregate")
@@ -2554,7 +2725,7 @@ function addModelPlugin(sdk, plugin, options = {}) {
2554
2725
  context.surface[binding] = child.id;
2555
2726
  }
2556
2727
  } else {
2557
- bindValue(sdk, plugin.name, entry);
2728
+ bindValue({ target: sdk, key: plugin.name, entry });
2558
2729
  context.surface[plugin.name] = plugin.id;
2559
2730
  }
2560
2731
  }
@@ -5826,7 +5997,7 @@ function parseDeprecationDate(value) {
5826
5997
  }
5827
5998
 
5828
5999
  // src/sdk-version.ts
5829
- var SDK_VERSION = (typeof process !== "undefined" && process.env ? "0.88.0" : void 0) || "unknown";
6000
+ var SDK_VERSION = (typeof process !== "undefined" && process.env ? "0.88.1" : void 0) || "unknown";
5830
6001
 
5831
6002
  // src/utils/open-url.ts
5832
6003
  var nodePrefix = "node:";
@@ -9756,18 +9927,6 @@ var tableSortResolver = defineResolver({
9756
9927
  }
9757
9928
  });
9758
9929
 
9759
- // src/plugins/eventEmission/method-metadata.ts
9760
- var SCOPE_KEY = "methodMetadata";
9761
- function setMethodMetadata(metadata) {
9762
- const scope2 = getCurrentScope();
9763
- if (!scope2) return;
9764
- const existing = scope2[SCOPE_KEY];
9765
- scope2[SCOPE_KEY] = { ...existing, ...metadata };
9766
- }
9767
- function getMethodMetadata() {
9768
- return getCurrentScope()?.[SCOPE_KEY];
9769
- }
9770
-
9771
9930
  // src/plugins/listActions/index.ts
9772
9931
  var listActionsPlugin = defineMethod({
9773
9932
  name: "listActions",
@@ -9785,7 +9944,7 @@ var listActionsPlugin = defineMethod({
9785
9944
  // of listing every action. `getAction` (where `actionType` is required) keeps
9786
9945
  // the resolver.
9787
9946
  resolvers: { app: appKeyResolver },
9788
- run: async ({ imports, input }) => {
9947
+ run: async ({ imports, input, annotate }) => {
9789
9948
  const api = imports.api;
9790
9949
  const getVersionedImplementationId = imports.manifest.getVersionedImplementationId;
9791
9950
  const appKey = "app" in input ? input.app : input.appKey;
@@ -9796,10 +9955,7 @@ var listActionsPlugin = defineMethod({
9796
9955
  { configType: "current_implementation_id" }
9797
9956
  );
9798
9957
  }
9799
- setMethodMetadata({
9800
- selectedApi,
9801
- operationType: input.actionType ?? null
9802
- });
9958
+ annotate({ selectedApi });
9803
9959
  const data = await api.get(
9804
9960
  "/zapier/api/v4/implementations/",
9805
9961
  {
@@ -9854,10 +10010,6 @@ var getActionPlugin = defineMethod({
9854
10010
  const appKey = "app" in input ? input.app : input.appKey;
9855
10011
  const actionKey = "action" in input ? input.action : input.actionKey;
9856
10012
  const { actionType } = input;
9857
- setMethodMetadata({
9858
- operationType: actionType,
9859
- operationKey: actionKey
9860
- });
9861
10013
  for await (const action of imports.listActions({ app: appKey }).items()) {
9862
10014
  if ((action.key === actionKey || action.id === actionKey) && action.action_type === actionType) {
9863
10015
  return { data: action };
@@ -9950,9 +10102,10 @@ var runActionPlugin = defineMethod({
9950
10102
  inputs: inputsResolver
9951
10103
  },
9952
10104
  // A per-SDK-instance TTL cache of resolved (selectedApi, actionId), built once
9953
- // in setup so it persists across calls. Reads getVersionedImplementationId
9954
- // (`imports.manifest`) and getAction (an import).
9955
- setup: ({ imports }) => {
10105
+ // in setup so it persists across calls. The imports it resolves through
10106
+ // (`manifest.getVersionedImplementationId`, `getAction`) are threaded in per
10107
+ // call from `run`, not captured here.
10108
+ setup: () => {
9956
10109
  const cache = /* @__PURE__ */ new Map();
9957
10110
  function evictIfNeeded() {
9958
10111
  if (cache.size < CONTEXT_CACHE_MAX_SIZE) return;
@@ -9972,7 +10125,7 @@ var runActionPlugin = defineMethod({
9972
10125
  if (!evictedAny && oldestKey) cache.delete(oldestKey);
9973
10126
  }
9974
10127
  async function resolveRunActionContext(options) {
9975
- const { appKey, actionKey, actionType } = options;
10128
+ const { imports, appKey, actionKey, actionType } = options;
9976
10129
  const getVersionedImplementationId = imports.manifest.getVersionedImplementationId;
9977
10130
  const selectedApi = await getVersionedImplementationId(appKey);
9978
10131
  if (!selectedApi) {
@@ -10011,7 +10164,7 @@ var runActionPlugin = defineMethod({
10011
10164
  }
10012
10165
  return { getRunActionContext };
10013
10166
  },
10014
- run: async ({ imports, input, state }) => {
10167
+ run: async ({ imports, input, state, annotate }) => {
10015
10168
  const api = imports.api;
10016
10169
  const resolveConnection = imports.connections.resolveConnection;
10017
10170
  const appKey = "app" in input ? input.app : input.appKey;
@@ -10032,15 +10185,12 @@ var runActionPlugin = defineMethod({
10032
10185
  resolveConnection
10033
10186
  });
10034
10187
  const { selectedApi, actionId } = await state.getRunActionContext({
10188
+ imports,
10035
10189
  appKey,
10036
10190
  actionKey,
10037
10191
  actionType
10038
10192
  });
10039
- setMethodMetadata({
10040
- selectedApi,
10041
- operationType: actionType,
10042
- operationKey: actionKey
10043
- });
10193
+ annotate({ selectedApi });
10044
10194
  const result = await executeAction({
10045
10195
  api,
10046
10196
  selectedApi,
@@ -10676,7 +10826,11 @@ var listActionInputFieldsPlugin = defineMethod({
10676
10826
  // metadata; the engine permits a resolver importing its host.
10677
10827
  inputs: inputsAllOptionalResolver
10678
10828
  },
10679
- run: async ({ imports, input }) => {
10829
+ run: async ({
10830
+ imports,
10831
+ input,
10832
+ annotate
10833
+ }) => {
10680
10834
  const api = imports.api;
10681
10835
  const getVersionedImplementationId = imports.manifest.getVersionedImplementationId;
10682
10836
  const resolveConnection = imports.connections.resolveConnection;
@@ -10696,11 +10850,7 @@ var listActionInputFieldsPlugin = defineMethod({
10696
10850
  { configType: "current_implementation_id" }
10697
10851
  );
10698
10852
  }
10699
- setMethodMetadata({
10700
- selectedApi,
10701
- operationType: actionType,
10702
- operationKey: actionKey
10703
- });
10853
+ annotate({ selectedApi });
10704
10854
  const { data: action } = await imports.getAction({
10705
10855
  app: appKey,
10706
10856
  actionType,
@@ -10811,7 +10961,11 @@ var listActionInputFieldChoicesPlugin = defineMethod({
10811
10961
  inputField: inputFieldKeyResolver,
10812
10962
  inputs: inputsAllOptionalResolver
10813
10963
  },
10814
- run: async ({ imports, input }) => {
10964
+ run: async ({
10965
+ imports,
10966
+ input,
10967
+ annotate
10968
+ }) => {
10815
10969
  const api = imports.api;
10816
10970
  const getVersionedImplementationId = imports.manifest.getVersionedImplementationId;
10817
10971
  const resolveConnection = imports.connections.resolveConnection;
@@ -10840,11 +10994,7 @@ var listActionInputFieldChoicesPlugin = defineMethod({
10840
10994
  { configType: "current_implementation_id" }
10841
10995
  );
10842
10996
  }
10843
- setMethodMetadata({
10844
- selectedApi,
10845
- operationType: actionType,
10846
- operationKey: actionKey
10847
- });
10997
+ annotate({ selectedApi });
10848
10998
  const { data: action } = await imports.getAction({
10849
10999
  app: appKey,
10850
11000
  actionType,
@@ -10973,7 +11123,8 @@ var getActionInputFieldsSchemaPlugin = defineMethod({
10973
11123
  },
10974
11124
  run: async ({
10975
11125
  imports,
10976
- input
11126
+ input,
11127
+ annotate
10977
11128
  }) => {
10978
11129
  const api = imports.api;
10979
11130
  const getVersionedImplementationId = imports.manifest.getVersionedImplementationId;
@@ -10994,11 +11145,7 @@ var getActionInputFieldsSchemaPlugin = defineMethod({
10994
11145
  { configType: "current_implementation_id" }
10995
11146
  );
10996
11147
  }
10997
- setMethodMetadata({
10998
- selectedApi,
10999
- operationType: actionType,
11000
- operationKey: actionKey
11001
- });
11148
+ annotate({ selectedApi });
11002
11149
  const { data: action } = await imports.getAction({
11003
11150
  app: appKey,
11004
11151
  actionType,
@@ -11121,7 +11268,11 @@ var listConnectionsPlugin = defineMethod({
11121
11268
  adaptPage: adaptZapierPage,
11122
11269
  defaultPageSize: DEFAULT_PAGE_SIZE
11123
11270
  },
11124
- run: async ({ imports, input }) => {
11271
+ run: async ({
11272
+ imports,
11273
+ input,
11274
+ annotate
11275
+ }) => {
11125
11276
  const resolveConnection = imports.connections.resolveConnection;
11126
11277
  const api = imports.api;
11127
11278
  const getVersionedImplementationId = imports.manifest.getVersionedImplementationId;
@@ -11136,7 +11287,7 @@ var listConnectionsPlugin = defineMethod({
11136
11287
  if (appKey) {
11137
11288
  const implementationId = await getVersionedImplementationId(appKey);
11138
11289
  if (implementationId) {
11139
- setMethodMetadata({ selectedApi: implementationId });
11290
+ annotate({ selectedApi: implementationId });
11140
11291
  const [versionlessSelectedApi] = splitVersionedKey(implementationId);
11141
11292
  searchParams.app_key = versionlessSelectedApi;
11142
11293
  } else {
@@ -11652,12 +11803,12 @@ var getConnectionStartUrlPlugin = defineMethod({
11652
11803
  outputSchema: GetConnectionStartUrlItemSchema,
11653
11804
  output: "item",
11654
11805
  resolvers: { app: appKeyResolver },
11655
- run: async ({ imports, input }) => {
11806
+ run: async ({ imports, input, annotate }) => {
11656
11807
  const api = imports.api;
11657
11808
  const getVersionedImplementationId = imports.manifest.getVersionedImplementationId;
11658
11809
  const versionedKey = await getVersionedImplementationId(input.app);
11659
11810
  const selectedApi = versionedKey ? versionedKey.split("@")[0] : input.app;
11660
- setMethodMetadata({ selectedApi });
11811
+ annotate({ selectedApi });
11661
11812
  const response = await api.post(
11662
11813
  START_PATH,
11663
11814
  { selected_api: selectedApi },
@@ -11716,12 +11867,12 @@ var waitForNewConnectionPlugin = defineMethod({
11716
11867
  outputSchema: WaitForNewConnectionItemSchema,
11717
11868
  output: "item",
11718
11869
  resolvers: { app: appKeyResolver },
11719
- run: async ({ imports, input }) => {
11870
+ run: async ({ imports, input, annotate }) => {
11720
11871
  const api = imports.api;
11721
11872
  const getVersionedImplementationId = imports.manifest.getVersionedImplementationId;
11722
11873
  const versionedKey = await getVersionedImplementationId(input.app);
11723
11874
  const appKey = versionedKey ? versionedKey.split("@")[0] : input.app;
11724
- setMethodMetadata({ selectedApi: appKey });
11875
+ annotate({ selectedApi: appKey });
11725
11876
  try {
11726
11877
  const top = await api.poll(CONNECTIONS_PATH, {
11727
11878
  searchParams: {
@@ -11839,11 +11990,11 @@ var createConnectionPlugin = defineMethod({
11839
11990
  ]
11840
11991
  })
11841
11992
  }),
11842
- run: async ({ imports, input }) => {
11993
+ run: async ({ imports, input, annotate }) => {
11843
11994
  const { data: start2 } = await imports.getConnectionStartUrl({
11844
11995
  app: input.app
11845
11996
  });
11846
- setMethodMetadata({ selectedApi: start2.app });
11997
+ annotate({ selectedApi: start2.app });
11847
11998
  console.error(
11848
11999
  `
11849
12000
  Open this URL to complete the connection:
@@ -12098,6 +12249,10 @@ var triggerInboxItemFormatter = defineFormatter({
12098
12249
 
12099
12250
  // src/plugins/triggers/shared.ts
12100
12251
  var triggerCategories = ["trigger"];
12252
+ function deriveReadOperation() {
12253
+ const annotations = { operationType: "read" };
12254
+ return { ...annotations };
12255
+ }
12101
12256
 
12102
12257
  // src/plugins/triggers/utils.ts
12103
12258
  var UUID_REGEX = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
@@ -12143,6 +12298,7 @@ var createTriggerInboxPlugin = defineMethod({
12143
12298
  outputSchema: TriggerInboxItemSchema,
12144
12299
  output: "item",
12145
12300
  formatter: triggerInboxItemFormatter,
12301
+ annotator: deriveReadOperation,
12146
12302
  // actionKeyResolver and inputsResolver depend on actionType, which is always
12147
12303
  // "read" for triggers. Pin it as a constant resolver so it's seeded into
12148
12304
  // resolvedParams without polluting the user-facing schema (where it would
@@ -12247,6 +12403,7 @@ var ensureTriggerInboxPlugin = defineMethod({
12247
12403
  outputSchema: TriggerInboxItemSchema,
12248
12404
  output: "item",
12249
12405
  formatter: triggerInboxItemFormatter,
12406
+ annotator: deriveReadOperation,
12250
12407
  // actionKeyResolver and inputsResolver depend on actionType, which is always
12251
12408
  // "read" for triggers. Pin it as a constant resolver so it's seeded into
12252
12409
  // resolvedParams without polluting the user-facing schema.
@@ -13551,6 +13708,7 @@ var listTriggerInputFieldsPlugin = defineMethod({
13551
13708
  outputSchema: RootFieldItemSchema,
13552
13709
  output: { type: "list", defaultPageSize: DEFAULT_PAGE_SIZE },
13553
13710
  formatter: rootFieldItemFormatter,
13711
+ annotator: deriveReadOperation,
13554
13712
  // actionKeyResolver and inputsAllOptionalResolver depend on actionType. Pin it
13555
13713
  // to "read" so they resolve correctly without the user setting it.
13556
13714
  resolvers: {
@@ -13597,6 +13755,7 @@ var listTriggerInputFieldChoicesPlugin = defineMethod({
13597
13755
  outputSchema: InputFieldChoiceItemSchema,
13598
13756
  output: { type: "list", defaultPageSize: DEFAULT_PAGE_SIZE },
13599
13757
  formatter: inputFieldChoiceItemFormatter,
13758
+ annotator: deriveReadOperation,
13600
13759
  resolvers: {
13601
13760
  app: appKeyResolver,
13602
13761
  action: actionKeyResolver,
@@ -13640,6 +13799,7 @@ var getTriggerInputFieldsSchemaPlugin = defineMethod({
13640
13799
  // Passthrough: getActionInputFieldsSchema already returns `{ data }`, so
13641
13800
  // `output: "raw"` surfaces that envelope unchanged.
13642
13801
  output: "raw",
13802
+ annotator: deriveReadOperation,
13643
13803
  resolvers: {
13644
13804
  app: appKeyResolver,
13645
13805
  action: actionKeyResolver,
@@ -14757,6 +14917,14 @@ function buildMethodCalledEvent(data, context = {}) {
14757
14917
  }
14758
14918
 
14759
14919
  // src/plugins/eventEmission/event-emission-hook.ts
14920
+ function readMethodMetadata(annotations) {
14921
+ const readString = (value) => typeof value === "string" ? value : null;
14922
+ return {
14923
+ selectedApi: readString(annotations.selectedApi),
14924
+ operationType: readString(annotations.operationType),
14925
+ operationKey: readString(annotations.operationKey)
14926
+ };
14927
+ }
14760
14928
  function computeArgumentCount(args) {
14761
14929
  if (args.length === 1) {
14762
14930
  const arg0 = args[0];
@@ -14767,9 +14935,18 @@ function computeArgumentCount(args) {
14767
14935
  return args.filter((a) => a !== void 0).length;
14768
14936
  }
14769
14937
  function makeMethodEndHook(emitMethodCalled) {
14770
- return ({ methodName, args, isPaginated, depth, durationMs, error }) => {
14771
- if (depth > 0) return;
14772
- const metadata = getMethodMetadata();
14938
+ return ({
14939
+ methodName,
14940
+ args,
14941
+ isPaginated,
14942
+ depth,
14943
+ callOrigin,
14944
+ annotations,
14945
+ durationMs,
14946
+ error
14947
+ }) => {
14948
+ if (callOrigin === "internal" || depth > 0) return;
14949
+ const metadata = readMethodMetadata(annotations);
14773
14950
  emitMethodCalled({
14774
14951
  method_name: methodName,
14775
14952
  execution_duration_ms: durationMs,
@@ -14778,13 +14955,34 @@ function makeMethodEndHook(emitMethodCalled) {
14778
14955
  error_type: error?.constructor.name ?? null,
14779
14956
  argument_count: computeArgumentCount(args),
14780
14957
  is_paginated: isPaginated,
14781
- selected_api: metadata?.selectedApi ?? null,
14782
- operation_type: metadata?.operationType ?? null,
14783
- operation_key: metadata?.operationKey ?? null
14958
+ selected_api: metadata.selectedApi ?? null,
14959
+ operation_type: metadata.operationType ?? null,
14960
+ operation_key: metadata.operationKey ?? null
14784
14961
  });
14785
14962
  };
14786
14963
  }
14787
14964
 
14965
+ // src/plugins/eventEmission/annotator.ts
14966
+ function zapierAnnotate({ input }) {
14967
+ const annotations = {};
14968
+ if (typeof input === "object" && input !== null) {
14969
+ const record = input;
14970
+ if (typeof record.actionType === "string") {
14971
+ annotations.operationType = record.actionType;
14972
+ }
14973
+ const operationKey = record.action ?? record.actionKey;
14974
+ if (typeof operationKey === "string") {
14975
+ annotations.operationKey = operationKey;
14976
+ }
14977
+ }
14978
+ return { ...annotations };
14979
+ }
14980
+ var operationAnnotatorPlugin = defineHook({
14981
+ namespace: "zapier",
14982
+ name: "operationAnnotator",
14983
+ annotator: ({ input }) => zapierAnnotate({ input })
14984
+ });
14985
+
14788
14986
  // src/plugins/eventEmission/index.ts
14789
14987
  var TELEMETRY_EMIT_TIMEOUT_MILLISECONDS = 300;
14790
14988
  var registeredListeners = {};
@@ -15185,7 +15383,8 @@ var zapierSdkPlugin = definePlugin({
15185
15383
  connectionsPlugin,
15186
15384
  capabilitiesPlugin,
15187
15385
  eventEmissionPlugin,
15188
- eventEmissionHookPlugin
15386
+ eventEmissionHookPlugin,
15387
+ operationAnnotatorPlugin
15189
15388
  ],
15190
15389
  exports: [
15191
15390
  // The registry reporter: previously synthesized by the legacy merge,
@@ -15434,4 +15633,4 @@ var registryPlugin = (_sdk) => {
15434
15633
  return {};
15435
15634
  };
15436
15635
 
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 };
15636
+ 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, operationAnnotatorPlugin, 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 };