@zapier/zapier-sdk-cli 0.59.2 → 0.60.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,31 @@
1
1
  # @zapier/zapier-sdk-cli
2
2
 
3
+ ## 0.60.0
4
+
5
+ ### Minor Changes
6
+
7
+ - d67227b: Display trusted SDK deprecation notices from Zapier API responses. The SDK sniffs `zapier-sdk-deprecation-*` response headers (never on relay responses), warns once per notice id per process — with no opt-out — and emits an `api:deprecation_notice` event for wrappers. The CLI additionally renders notices as a boxed stderr warning after command output, and the MCP server attaches them to every tool result so agents relay the warning to users.
8
+
9
+ ### Patch Changes
10
+
11
+ - Updated dependencies [d67227b]
12
+ - @zapier/zapier-sdk@0.79.0
13
+ - @zapier/zapier-sdk-mcp@0.16.0
14
+
15
+ ## 0.59.3
16
+
17
+ ### Patch Changes
18
+
19
+ - b8ff1dd: Refactor the SDKs onto kitcore's new internal plugin model.
20
+
21
+ kitcore (an internal building block) gained a new plugin model, and the SDKs were rebuilt on it behind a compatibility bridge, so existing behavior is unchanged. The only changes to the published packages' surface:
22
+ - Removed the deprecated `sdk.addPlugin(...)` chain method (and the `WithAddPlugin` type / chain-style no-arg `createSdk()` doorway). Extend a built SDK with the top-level `addPlugin(sdk, plugin)` instead.
23
+ - `@zapier/zapier-sdk` now re-exports the plugin-authoring helpers (`createSdk`, `defineMethod` / `definePlugin` / `declareMethod` / etc., `selectExports`, `addPlugin`). Note `createSdk` reuses the old doorway's name but now takes a root plugin, so a stale no-arg `createSdk()` call is a compile error rather than silent misbehavior.
24
+
25
+ - Updated dependencies [b8ff1dd]
26
+ - @zapier/zapier-sdk@0.78.0
27
+ - @zapier/zapier-sdk-mcp@0.15.3
28
+
3
29
  ## 0.59.2
4
30
 
5
31
  ### Patch Changes
package/dist/cli.cjs CHANGED
@@ -183,18 +183,20 @@ function coerceToSchemaType(value, schema) {
183
183
  return value;
184
184
  }
185
185
  function renderChoiceLabel(choice) {
186
+ const baseName = choice.label ?? choice.name ?? "";
187
+ const alreadyNamed = choice.name === baseName;
186
188
  let effectiveHint = choice.hint;
187
189
  if (effectiveHint === void 0 && (typeof choice.value === "string" || typeof choice.value === "number")) {
188
190
  effectiveHint = String(choice.value);
189
191
  }
190
192
  if (!effectiveHint || Array.isArray(effectiveHint) && effectiveHint.length === 0) {
191
- return choice;
193
+ return alreadyNamed ? choice : { ...choice, name: baseName };
192
194
  }
193
195
  const hintText = Array.isArray(effectiveHint) ? effectiveHint.join(", ") : effectiveHint;
194
- if (hintText === choice.name) {
195
- return choice;
196
+ if (hintText === baseName) {
197
+ return alreadyNamed ? choice : { ...choice, name: baseName };
196
198
  }
197
- return { ...choice, name: `${choice.name} ${chalk__default.default.dim(`(${hintText})`)}` };
199
+ return { ...choice, name: `${baseName} ${chalk__default.default.dim(`(${hintText})`)}` };
198
200
  }
199
201
  var SchemaParameterResolver = class {
200
202
  constructor() {
@@ -792,8 +794,9 @@ var SchemaParameterResolver = class {
792
794
  context.resolvedParams
793
795
  );
794
796
  promptConfig.name = promptName;
797
+ const renderedChoices = promptConfig.choices ? promptConfig.choices.map(renderChoiceLabel) : [];
795
798
  if (promptConfig.choices) {
796
- promptConfig.choices = promptConfig.choices.map(renderChoiceLabel);
799
+ promptConfig.choices = renderedChoices;
797
800
  }
798
801
  const hasSelectableChoice = promptConfig.choices?.some(
799
802
  (c) => !c.disabled
@@ -819,7 +822,7 @@ var SchemaParameterResolver = class {
819
822
  }
820
823
  let selected;
821
824
  if (promptConfig.type === "list") {
822
- const dataChoices = promptConfig.choices ?? [];
825
+ const dataChoices = renderedChoices;
823
826
  selected = await search__default.default({
824
827
  message: promptConfig.message,
825
828
  validate: this.wrapPromptValidate(promptConfig.validate),
@@ -1576,7 +1579,7 @@ var SHARED_COMMAND_CLI_OPTIONS = [
1576
1579
 
1577
1580
  // package.json
1578
1581
  var package_default = {
1579
- version: "0.59.2"};
1582
+ version: "0.60.0"};
1580
1583
 
1581
1584
  // src/telemetry/builders.ts
1582
1585
  function createCliBaseEvent(context = {}) {
@@ -1649,19 +1652,11 @@ function formatJsonOutput(data) {
1649
1652
  }
1650
1653
  async function formatItemsFromSchema(_functionInfo, items, startingNumber = 0, options) {
1651
1654
  if (options?.formatter) {
1652
- let context;
1653
- if (options.formatter.fetch && options.sdk && options.params) {
1654
- for (const item of items) {
1655
- context = await options.formatter.fetch(
1656
- options.sdk,
1657
- options.params,
1658
- item,
1659
- context
1660
- );
1661
- }
1662
- }
1655
+ const formatter = options.formatter;
1656
+ const input = options.input ?? {};
1657
+ const context = formatter.fetchContext ? await formatter.fetchContext({ items, input }) : void 0;
1663
1658
  items.forEach((item, index) => {
1664
- const formatted = options.formatter.format(item, context);
1659
+ const formatted = formatter.format({ item, input, context });
1665
1660
  formatSingleItem(formatted, startingNumber + index);
1666
1661
  });
1667
1662
  return;
@@ -1671,13 +1666,19 @@ async function formatItemsFromSchema(_functionInfo, items, startingNumber = 0, o
1671
1666
  function formatSingleItem(formatted, itemNumber) {
1672
1667
  let titleLine = `${chalk__default.default.gray(`${itemNumber + 1}.`)} ${chalk__default.default.cyan(formatted.title)}`;
1673
1668
  const subtitleParts = [];
1674
- if (formatted.keys) {
1675
- subtitleParts.push(...formatted.keys);
1676
- } else if (formatted.key) {
1677
- subtitleParts.push(formatted.key);
1678
- }
1679
- if (formatted.id) {
1680
- subtitleParts.push(formatted.id);
1669
+ if (formatted.hint !== void 0) {
1670
+ subtitleParts.push(
1671
+ ...Array.isArray(formatted.hint) ? formatted.hint : [formatted.hint]
1672
+ );
1673
+ } else {
1674
+ if (formatted.keys) {
1675
+ subtitleParts.push(...formatted.keys);
1676
+ } else if (formatted.key) {
1677
+ subtitleParts.push(formatted.key);
1678
+ }
1679
+ if (formatted.id) {
1680
+ subtitleParts.push(formatted.id);
1681
+ }
1681
1682
  }
1682
1683
  const uniqueParts = [...new Set(subtitleParts)];
1683
1684
  if (uniqueParts.length > 0) {
@@ -1687,8 +1688,8 @@ function formatSingleItem(formatted, itemNumber) {
1687
1688
  if (formatted.description) {
1688
1689
  console.log(` ${chalk__default.default.dim(formatted.description)}`);
1689
1690
  }
1690
- if (formatted.data !== void 0) {
1691
- formatJsonOutput(formatted.data);
1691
+ if (formatted.raw !== void 0) {
1692
+ formatJsonOutput(formatted.raw);
1692
1693
  console.log();
1693
1694
  return;
1694
1695
  }
@@ -1874,8 +1875,7 @@ function createInteractiveRenderer(context = {}) {
1874
1875
  startingNumber,
1875
1876
  {
1876
1877
  formatter: functionInfo.formatter,
1877
- sdk: context.sdk,
1878
- params: context.params
1878
+ input: context.params
1879
1879
  }
1880
1880
  );
1881
1881
  } else {
@@ -2428,7 +2428,6 @@ function createCommandConfig(cliCommandName, functionInfo, sdk) {
2428
2428
  const options = commandObj.opts();
2429
2429
  const interactiveMode = !options.json;
2430
2430
  const renderer = interactiveMode ? createInteractiveRenderer({
2431
- sdk,
2432
2431
  params: resolvedParams
2433
2432
  }) : createJsonRenderer();
2434
2433
  try {
@@ -7263,11 +7262,49 @@ var watchTriggerInboxCliPlugin = zapierSdk.definePlugin(
7263
7262
  };
7264
7263
  }
7265
7264
  );
7265
+ var BOX_WIDTH = 72;
7266
+ var BOX_TITLE = "ZAPIER SDK DEPRECATION NOTICE";
7267
+ var activeNotices = /* @__PURE__ */ new Map();
7268
+ function collectDeprecationNotice(event) {
7269
+ if (event.type !== zapierSdk.DEPRECATION_NOTICE_EVENT) return;
7270
+ const { id, message } = event.payload ?? {};
7271
+ if (typeof id === "string" && typeof message === "string") {
7272
+ activeNotices.set(id, message);
7273
+ }
7274
+ }
7275
+ function collectDeprecationNoticeAndForward(event, onEvent) {
7276
+ collectDeprecationNotice(event);
7277
+ return onEvent?.(event);
7278
+ }
7279
+ function renderDeprecationNotices() {
7280
+ const messages = [...activeNotices.values()];
7281
+ activeNotices.clear();
7282
+ if (messages.length === 0) return;
7283
+ console.error();
7284
+ for (const message of messages) {
7285
+ for (const line of buildBoxLines(message)) {
7286
+ console.error(chalk__default.default.red.bold(line));
7287
+ }
7288
+ console.error();
7289
+ }
7290
+ }
7291
+ function buildBoxLines(message) {
7292
+ const innerWidth = BOX_WIDTH - 4;
7293
+ const pad = (line) => `\u2502 ${line.padEnd(innerWidth)} \u2502`;
7294
+ const wrapped = wrapAnsi__default.default(message, innerWidth, { hard: true }).split("\n");
7295
+ return [
7296
+ `\u256D${"\u2500".repeat(BOX_WIDTH - 2)}\u256E`,
7297
+ pad(BOX_TITLE),
7298
+ pad(""),
7299
+ ...wrapped.map(pad),
7300
+ `\u2570${"\u2500".repeat(BOX_WIDTH - 2)}\u256F`
7301
+ ];
7302
+ }
7266
7303
 
7267
7304
  // package.json with { type: 'json' }
7268
7305
  var package_default2 = {
7269
7306
  name: "@zapier/zapier-sdk-cli",
7270
- version: "0.59.2"};
7307
+ version: "0.60.0"};
7271
7308
 
7272
7309
  // src/sdk.ts
7273
7310
  zapierSdk.injectCliLogin(login_exports);
@@ -7276,11 +7313,23 @@ function createZapierCliSdk(options = {}) {
7276
7313
  const extensionsContextPlugin = () => ({
7277
7314
  context: { extensions }
7278
7315
  });
7279
- const sdk = zapierSdk.createZapierSdkStack({
7316
+ const stack = zapierSdk.createZapierSdkStack({
7280
7317
  ...sdkOptions,
7281
7318
  eventEmission: { ...sdkOptions.eventEmission, callContext: "cli" },
7282
- callerPackage: { name: package_default2.name, version: package_default2.version }
7283
- }).use(extensionsContextPlugin).use(generateAppTypesPlugin).use(buildManifestPlugin).use(bundleCodePlugin).use(getLoginConfigPathPlugin).use(addAppsPlugin).use(feedbackPlugin).use(curlPlugin).use(initPlugin).use(mcpPlugin).use(loginPlugin).use(signupPlugin).use(logoutPlugin).use(cliOverridesPlugin, { override: true }).toSdk();
7319
+ callerPackage: { name: package_default2.name, version: package_default2.version },
7320
+ // Collected for the boxed stderr warning rendered in the exit path. The
7321
+ // box is additive: the SDK's own inline warn still fires, so the notice
7322
+ // cannot be hidden by any rendering path.
7323
+ onEvent: (event) => collectDeprecationNoticeAndForward(event, sdkOptions.onEvent)
7324
+ }).use(extensionsContextPlugin).use(generateAppTypesPlugin).use(buildManifestPlugin).use(bundleCodePlugin).use(getLoginConfigPathPlugin).use(addAppsPlugin).use(feedbackPlugin).use(curlPlugin).use(initPlugin).use(mcpPlugin).use(loginPlugin).use(signupPlugin).use(logoutPlugin).use(cliOverridesPlugin, { override: true });
7325
+ const sdk = zapierSdk.createSdk(
7326
+ zapierSdk.defineLegacyMerge({
7327
+ namespace: "zapier",
7328
+ name: "cli-stack-merge",
7329
+ legacy: stack.toPlugin(),
7330
+ plugin: zapierSdk.zapierSdkPlugin
7331
+ })
7332
+ );
7284
7333
  for (const ext of extensions) {
7285
7334
  try {
7286
7335
  zapierSdk.addPlugin(sdk, ext);
@@ -7301,11 +7350,23 @@ function createZapierCliSdk2(options = {}) {
7301
7350
  const experimentalContextPlugin = () => ({
7302
7351
  context: { experimental: true }
7303
7352
  });
7304
- const sdk = experimental.createZapierSdkStack({
7353
+ const stack = experimental.createZapierSdkStack({
7305
7354
  ...sdkOptions,
7306
7355
  eventEmission: { ...sdkOptions.eventEmission, callContext: "cli" },
7307
- callerPackage: { name: package_default2.name, version: package_default2.version }
7308
- }).use(extensionsContextPlugin).use(experimentalContextPlugin).use(generateAppTypesPlugin).use(buildManifestPlugin).use(bundleCodePlugin).use(getLoginConfigPathPlugin).use(addAppsPlugin).use(feedbackPlugin).use(curlPlugin).use(initPlugin).use(drainTriggerInboxCliPlugin, { override: true }).use(watchTriggerInboxCliPlugin, { override: true }).use(mcpPlugin).use(loginPlugin).use(signupPlugin).use(logoutPlugin).use(cliOverridesPlugin, { override: true }).toSdk();
7356
+ callerPackage: { name: package_default2.name, version: package_default2.version },
7357
+ // Collected for the boxed stderr warning rendered in the exit path. The
7358
+ // box is additive: the SDK's own inline warn still fires, so the notice
7359
+ // cannot be hidden by any rendering path.
7360
+ onEvent: (event) => collectDeprecationNoticeAndForward(event, sdkOptions.onEvent)
7361
+ }).use(extensionsContextPlugin).use(experimentalContextPlugin).use(generateAppTypesPlugin).use(buildManifestPlugin).use(bundleCodePlugin).use(getLoginConfigPathPlugin).use(addAppsPlugin).use(feedbackPlugin).use(curlPlugin).use(initPlugin).use(drainTriggerInboxCliPlugin, { override: true }).use(watchTriggerInboxCliPlugin, { override: true }).use(mcpPlugin).use(loginPlugin).use(signupPlugin).use(logoutPlugin).use(cliOverridesPlugin, { override: true });
7362
+ const sdk = experimental.createSdk(
7363
+ experimental.defineLegacyMerge({
7364
+ namespace: "zapier",
7365
+ name: "cli-experimental-stack-merge",
7366
+ legacy: stack.toPlugin(),
7367
+ plugin: experimental.zapierSdkPlugin
7368
+ })
7369
+ );
7309
7370
  for (const ext of extensions) {
7310
7371
  try {
7311
7372
  experimental.addPlugin(sdk, ext);
@@ -7880,6 +7941,7 @@ program.exitOverride();
7880
7941
  }
7881
7942
  await versionCheckPromise;
7882
7943
  await sdk.context.eventEmission.close(exitCode);
7944
+ renderDeprecationNotices();
7883
7945
  const exitTimeout = setTimeout(
7884
7946
  () => process.exit(exitCode),
7885
7947
  EXIT_GRACE_PERIOD_MS
package/dist/cli.mjs CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import { Command, CommanderError, Option } from 'commander';
3
3
  import { z } from 'zod';
4
- import { definePlugin, createPluginMethod, OutputPropertySchema, ZapierBundleError, DEFAULT_CONFIG_PATH, ZapierValidationError, ZapierUnknownError, ZapierReleaseTriggerMessageSignal, injectCliLogin, BaseSdkOptionsSchema, getOrCreateApiClient, isPermanentHttpError, invalidateCachedToken, batch, toSnakeCase, ZapierAbortDrainSignal, createZapierSdkStack as createZapierSdkStack$1, addPlugin as addPlugin$1, ZapierError, isCredentialsObject, buildApplicationLifecycleEvent, AuthMechanism, ZapierAuthenticationError, runWithCallerContext, isPositional, runWithTelemetryContext, buildCapabilityMessage, formatErrorMessage, getOsInfo, getPlatformVersions, getAgent, getTtyContext, getCiPlatform, isCi, getReleaseId, getCurrentTimestamp, generateEventId, ZapierApprovalError } from '@zapier/zapier-sdk';
4
+ import { definePlugin, createPluginMethod, OutputPropertySchema, ZapierBundleError, DEFAULT_CONFIG_PATH, ZapierValidationError, ZapierUnknownError, ZapierReleaseTriggerMessageSignal, injectCliLogin, BaseSdkOptionsSchema, getOrCreateApiClient, isPermanentHttpError, invalidateCachedToken, batch, toSnakeCase, ZapierAbortDrainSignal, createZapierSdkStack as createZapierSdkStack$1, createSdk as createSdk$1, defineLegacyMerge as defineLegacyMerge$1, zapierSdkPlugin as zapierSdkPlugin$1, addPlugin as addPlugin$1, ZapierError, isCredentialsObject, buildApplicationLifecycleEvent, AuthMechanism, ZapierAuthenticationError, DEPRECATION_NOTICE_EVENT, runWithCallerContext, isPositional, runWithTelemetryContext, buildCapabilityMessage, formatErrorMessage, getOsInfo, getPlatformVersions, getAgent, getTtyContext, getCiPlatform, isCi, getReleaseId, getCurrentTimestamp, generateEventId, ZapierApprovalError } from '@zapier/zapier-sdk';
5
5
  import inquirer from 'inquirer';
6
6
  import search from '@inquirer/search';
7
7
  import chalk from 'chalk';
@@ -30,7 +30,7 @@ import isInstalledGlobally from 'is-installed-globally';
30
30
  import { execSync, spawn } from 'child_process';
31
31
  import Handlebars from 'handlebars';
32
32
  import { fileURLToPath } from 'url';
33
- import { injectCliLogin as injectCliLogin$1, createZapierSdkStack, addPlugin } from '@zapier/zapier-sdk/experimental';
33
+ import { injectCliLogin as injectCliLogin$1, createZapierSdkStack, createSdk, defineLegacyMerge, zapierSdkPlugin, addPlugin } from '@zapier/zapier-sdk/experimental';
34
34
  import packageJsonLib, { VersionNotFoundError } from 'package-json';
35
35
  import semver from 'semver';
36
36
  import React from 'react';
@@ -140,18 +140,20 @@ function coerceToSchemaType(value, schema) {
140
140
  return value;
141
141
  }
142
142
  function renderChoiceLabel(choice) {
143
+ const baseName = choice.label ?? choice.name ?? "";
144
+ const alreadyNamed = choice.name === baseName;
143
145
  let effectiveHint = choice.hint;
144
146
  if (effectiveHint === void 0 && (typeof choice.value === "string" || typeof choice.value === "number")) {
145
147
  effectiveHint = String(choice.value);
146
148
  }
147
149
  if (!effectiveHint || Array.isArray(effectiveHint) && effectiveHint.length === 0) {
148
- return choice;
150
+ return alreadyNamed ? choice : { ...choice, name: baseName };
149
151
  }
150
152
  const hintText = Array.isArray(effectiveHint) ? effectiveHint.join(", ") : effectiveHint;
151
- if (hintText === choice.name) {
152
- return choice;
153
+ if (hintText === baseName) {
154
+ return alreadyNamed ? choice : { ...choice, name: baseName };
153
155
  }
154
- return { ...choice, name: `${choice.name} ${chalk.dim(`(${hintText})`)}` };
156
+ return { ...choice, name: `${baseName} ${chalk.dim(`(${hintText})`)}` };
155
157
  }
156
158
  var SchemaParameterResolver = class {
157
159
  constructor() {
@@ -749,8 +751,9 @@ var SchemaParameterResolver = class {
749
751
  context.resolvedParams
750
752
  );
751
753
  promptConfig.name = promptName;
754
+ const renderedChoices = promptConfig.choices ? promptConfig.choices.map(renderChoiceLabel) : [];
752
755
  if (promptConfig.choices) {
753
- promptConfig.choices = promptConfig.choices.map(renderChoiceLabel);
756
+ promptConfig.choices = renderedChoices;
754
757
  }
755
758
  const hasSelectableChoice = promptConfig.choices?.some(
756
759
  (c) => !c.disabled
@@ -776,7 +779,7 @@ var SchemaParameterResolver = class {
776
779
  }
777
780
  let selected;
778
781
  if (promptConfig.type === "list") {
779
- const dataChoices = promptConfig.choices ?? [];
782
+ const dataChoices = renderedChoices;
780
783
  selected = await search({
781
784
  message: promptConfig.message,
782
785
  validate: this.wrapPromptValidate(promptConfig.validate),
@@ -1533,7 +1536,7 @@ var SHARED_COMMAND_CLI_OPTIONS = [
1533
1536
 
1534
1537
  // package.json
1535
1538
  var package_default = {
1536
- version: "0.59.2"};
1539
+ version: "0.60.0"};
1537
1540
 
1538
1541
  // src/telemetry/builders.ts
1539
1542
  function createCliBaseEvent(context = {}) {
@@ -1606,19 +1609,11 @@ function formatJsonOutput(data) {
1606
1609
  }
1607
1610
  async function formatItemsFromSchema(_functionInfo, items, startingNumber = 0, options) {
1608
1611
  if (options?.formatter) {
1609
- let context;
1610
- if (options.formatter.fetch && options.sdk && options.params) {
1611
- for (const item of items) {
1612
- context = await options.formatter.fetch(
1613
- options.sdk,
1614
- options.params,
1615
- item,
1616
- context
1617
- );
1618
- }
1619
- }
1612
+ const formatter = options.formatter;
1613
+ const input = options.input ?? {};
1614
+ const context = formatter.fetchContext ? await formatter.fetchContext({ items, input }) : void 0;
1620
1615
  items.forEach((item, index) => {
1621
- const formatted = options.formatter.format(item, context);
1616
+ const formatted = formatter.format({ item, input, context });
1622
1617
  formatSingleItem(formatted, startingNumber + index);
1623
1618
  });
1624
1619
  return;
@@ -1628,13 +1623,19 @@ async function formatItemsFromSchema(_functionInfo, items, startingNumber = 0, o
1628
1623
  function formatSingleItem(formatted, itemNumber) {
1629
1624
  let titleLine = `${chalk.gray(`${itemNumber + 1}.`)} ${chalk.cyan(formatted.title)}`;
1630
1625
  const subtitleParts = [];
1631
- if (formatted.keys) {
1632
- subtitleParts.push(...formatted.keys);
1633
- } else if (formatted.key) {
1634
- subtitleParts.push(formatted.key);
1635
- }
1636
- if (formatted.id) {
1637
- subtitleParts.push(formatted.id);
1626
+ if (formatted.hint !== void 0) {
1627
+ subtitleParts.push(
1628
+ ...Array.isArray(formatted.hint) ? formatted.hint : [formatted.hint]
1629
+ );
1630
+ } else {
1631
+ if (formatted.keys) {
1632
+ subtitleParts.push(...formatted.keys);
1633
+ } else if (formatted.key) {
1634
+ subtitleParts.push(formatted.key);
1635
+ }
1636
+ if (formatted.id) {
1637
+ subtitleParts.push(formatted.id);
1638
+ }
1638
1639
  }
1639
1640
  const uniqueParts = [...new Set(subtitleParts)];
1640
1641
  if (uniqueParts.length > 0) {
@@ -1644,8 +1645,8 @@ function formatSingleItem(formatted, itemNumber) {
1644
1645
  if (formatted.description) {
1645
1646
  console.log(` ${chalk.dim(formatted.description)}`);
1646
1647
  }
1647
- if (formatted.data !== void 0) {
1648
- formatJsonOutput(formatted.data);
1648
+ if (formatted.raw !== void 0) {
1649
+ formatJsonOutput(formatted.raw);
1649
1650
  console.log();
1650
1651
  return;
1651
1652
  }
@@ -1831,8 +1832,7 @@ function createInteractiveRenderer(context = {}) {
1831
1832
  startingNumber,
1832
1833
  {
1833
1834
  formatter: functionInfo.formatter,
1834
- sdk: context.sdk,
1835
- params: context.params
1835
+ input: context.params
1836
1836
  }
1837
1837
  );
1838
1838
  } else {
@@ -2385,7 +2385,6 @@ function createCommandConfig(cliCommandName, functionInfo, sdk) {
2385
2385
  const options = commandObj.opts();
2386
2386
  const interactiveMode = !options.json;
2387
2387
  const renderer = interactiveMode ? createInteractiveRenderer({
2388
- sdk,
2389
2388
  params: resolvedParams
2390
2389
  }) : createJsonRenderer();
2391
2390
  try {
@@ -7220,11 +7219,49 @@ var watchTriggerInboxCliPlugin = definePlugin(
7220
7219
  };
7221
7220
  }
7222
7221
  );
7222
+ var BOX_WIDTH = 72;
7223
+ var BOX_TITLE = "ZAPIER SDK DEPRECATION NOTICE";
7224
+ var activeNotices = /* @__PURE__ */ new Map();
7225
+ function collectDeprecationNotice(event) {
7226
+ if (event.type !== DEPRECATION_NOTICE_EVENT) return;
7227
+ const { id, message } = event.payload ?? {};
7228
+ if (typeof id === "string" && typeof message === "string") {
7229
+ activeNotices.set(id, message);
7230
+ }
7231
+ }
7232
+ function collectDeprecationNoticeAndForward(event, onEvent) {
7233
+ collectDeprecationNotice(event);
7234
+ return onEvent?.(event);
7235
+ }
7236
+ function renderDeprecationNotices() {
7237
+ const messages = [...activeNotices.values()];
7238
+ activeNotices.clear();
7239
+ if (messages.length === 0) return;
7240
+ console.error();
7241
+ for (const message of messages) {
7242
+ for (const line of buildBoxLines(message)) {
7243
+ console.error(chalk.red.bold(line));
7244
+ }
7245
+ console.error();
7246
+ }
7247
+ }
7248
+ function buildBoxLines(message) {
7249
+ const innerWidth = BOX_WIDTH - 4;
7250
+ const pad = (line) => `\u2502 ${line.padEnd(innerWidth)} \u2502`;
7251
+ const wrapped = wrapAnsi(message, innerWidth, { hard: true }).split("\n");
7252
+ return [
7253
+ `\u256D${"\u2500".repeat(BOX_WIDTH - 2)}\u256E`,
7254
+ pad(BOX_TITLE),
7255
+ pad(""),
7256
+ ...wrapped.map(pad),
7257
+ `\u2570${"\u2500".repeat(BOX_WIDTH - 2)}\u256F`
7258
+ ];
7259
+ }
7223
7260
 
7224
7261
  // package.json with { type: 'json' }
7225
7262
  var package_default2 = {
7226
7263
  name: "@zapier/zapier-sdk-cli",
7227
- version: "0.59.2"};
7264
+ version: "0.60.0"};
7228
7265
 
7229
7266
  // src/sdk.ts
7230
7267
  injectCliLogin(login_exports);
@@ -7233,11 +7270,23 @@ function createZapierCliSdk(options = {}) {
7233
7270
  const extensionsContextPlugin = () => ({
7234
7271
  context: { extensions }
7235
7272
  });
7236
- const sdk = createZapierSdkStack$1({
7273
+ const stack = createZapierSdkStack$1({
7237
7274
  ...sdkOptions,
7238
7275
  eventEmission: { ...sdkOptions.eventEmission, callContext: "cli" },
7239
- callerPackage: { name: package_default2.name, version: package_default2.version }
7240
- }).use(extensionsContextPlugin).use(generateAppTypesPlugin).use(buildManifestPlugin).use(bundleCodePlugin).use(getLoginConfigPathPlugin).use(addAppsPlugin).use(feedbackPlugin).use(curlPlugin).use(initPlugin).use(mcpPlugin).use(loginPlugin).use(signupPlugin).use(logoutPlugin).use(cliOverridesPlugin, { override: true }).toSdk();
7276
+ callerPackage: { name: package_default2.name, version: package_default2.version },
7277
+ // Collected for the boxed stderr warning rendered in the exit path. The
7278
+ // box is additive: the SDK's own inline warn still fires, so the notice
7279
+ // cannot be hidden by any rendering path.
7280
+ onEvent: (event) => collectDeprecationNoticeAndForward(event, sdkOptions.onEvent)
7281
+ }).use(extensionsContextPlugin).use(generateAppTypesPlugin).use(buildManifestPlugin).use(bundleCodePlugin).use(getLoginConfigPathPlugin).use(addAppsPlugin).use(feedbackPlugin).use(curlPlugin).use(initPlugin).use(mcpPlugin).use(loginPlugin).use(signupPlugin).use(logoutPlugin).use(cliOverridesPlugin, { override: true });
7282
+ const sdk = createSdk$1(
7283
+ defineLegacyMerge$1({
7284
+ namespace: "zapier",
7285
+ name: "cli-stack-merge",
7286
+ legacy: stack.toPlugin(),
7287
+ plugin: zapierSdkPlugin$1
7288
+ })
7289
+ );
7241
7290
  for (const ext of extensions) {
7242
7291
  try {
7243
7292
  addPlugin$1(sdk, ext);
@@ -7258,11 +7307,23 @@ function createZapierCliSdk2(options = {}) {
7258
7307
  const experimentalContextPlugin = () => ({
7259
7308
  context: { experimental: true }
7260
7309
  });
7261
- const sdk = createZapierSdkStack({
7310
+ const stack = createZapierSdkStack({
7262
7311
  ...sdkOptions,
7263
7312
  eventEmission: { ...sdkOptions.eventEmission, callContext: "cli" },
7264
- callerPackage: { name: package_default2.name, version: package_default2.version }
7265
- }).use(extensionsContextPlugin).use(experimentalContextPlugin).use(generateAppTypesPlugin).use(buildManifestPlugin).use(bundleCodePlugin).use(getLoginConfigPathPlugin).use(addAppsPlugin).use(feedbackPlugin).use(curlPlugin).use(initPlugin).use(drainTriggerInboxCliPlugin, { override: true }).use(watchTriggerInboxCliPlugin, { override: true }).use(mcpPlugin).use(loginPlugin).use(signupPlugin).use(logoutPlugin).use(cliOverridesPlugin, { override: true }).toSdk();
7313
+ callerPackage: { name: package_default2.name, version: package_default2.version },
7314
+ // Collected for the boxed stderr warning rendered in the exit path. The
7315
+ // box is additive: the SDK's own inline warn still fires, so the notice
7316
+ // cannot be hidden by any rendering path.
7317
+ onEvent: (event) => collectDeprecationNoticeAndForward(event, sdkOptions.onEvent)
7318
+ }).use(extensionsContextPlugin).use(experimentalContextPlugin).use(generateAppTypesPlugin).use(buildManifestPlugin).use(bundleCodePlugin).use(getLoginConfigPathPlugin).use(addAppsPlugin).use(feedbackPlugin).use(curlPlugin).use(initPlugin).use(drainTriggerInboxCliPlugin, { override: true }).use(watchTriggerInboxCliPlugin, { override: true }).use(mcpPlugin).use(loginPlugin).use(signupPlugin).use(logoutPlugin).use(cliOverridesPlugin, { override: true });
7319
+ const sdk = createSdk(
7320
+ defineLegacyMerge({
7321
+ namespace: "zapier",
7322
+ name: "cli-experimental-stack-merge",
7323
+ legacy: stack.toPlugin(),
7324
+ plugin: zapierSdkPlugin
7325
+ })
7326
+ );
7266
7327
  for (const ext of extensions) {
7267
7328
  try {
7268
7329
  addPlugin(sdk, ext);
@@ -7837,6 +7898,7 @@ program.exitOverride();
7837
7898
  }
7838
7899
  await versionCheckPromise;
7839
7900
  await sdk.context.eventEmission.close(exitCode);
7901
+ renderDeprecationNotices();
7840
7902
  const exitTimeout = setTimeout(
7841
7903
  () => process.exit(exitCode),
7842
7904
  EXIT_GRACE_PERIOD_MS
@@ -4590,11 +4590,23 @@ var watchTriggerInboxCliPlugin = zapierSdk.definePlugin(
4590
4590
  };
4591
4591
  }
4592
4592
  );
4593
+ var activeNotices = /* @__PURE__ */ new Map();
4594
+ function collectDeprecationNotice(event) {
4595
+ if (event.type !== zapierSdk.DEPRECATION_NOTICE_EVENT) return;
4596
+ const { id, message } = event.payload ?? {};
4597
+ if (typeof id === "string" && typeof message === "string") {
4598
+ activeNotices.set(id, message);
4599
+ }
4600
+ }
4601
+ function collectDeprecationNoticeAndForward(event, onEvent) {
4602
+ collectDeprecationNotice(event);
4603
+ return onEvent?.(event);
4604
+ }
4593
4605
 
4594
4606
  // package.json with { type: 'json' }
4595
4607
  var package_default = {
4596
4608
  name: "@zapier/zapier-sdk-cli",
4597
- version: "0.59.2"};
4609
+ version: "0.60.0"};
4598
4610
 
4599
4611
  // src/experimental.ts
4600
4612
  experimental.injectCliLogin(login_exports);
@@ -4606,11 +4618,23 @@ function createZapierCliSdk(options = {}) {
4606
4618
  const experimentalContextPlugin = () => ({
4607
4619
  context: { experimental: true }
4608
4620
  });
4609
- const sdk = experimental.createZapierSdkStack({
4621
+ const stack = experimental.createZapierSdkStack({
4610
4622
  ...sdkOptions,
4611
4623
  eventEmission: { ...sdkOptions.eventEmission, callContext: "cli" },
4612
- callerPackage: { name: package_default.name, version: package_default.version }
4613
- }).use(extensionsContextPlugin).use(experimentalContextPlugin).use(generateAppTypesPlugin).use(buildManifestPlugin).use(bundleCodePlugin).use(getLoginConfigPathPlugin).use(addAppsPlugin).use(feedbackPlugin).use(curlPlugin).use(initPlugin).use(drainTriggerInboxCliPlugin, { override: true }).use(watchTriggerInboxCliPlugin, { override: true }).use(mcpPlugin).use(loginPlugin).use(signupPlugin).use(logoutPlugin).use(cliOverridesPlugin, { override: true }).toSdk();
4624
+ callerPackage: { name: package_default.name, version: package_default.version },
4625
+ // Collected for the boxed stderr warning rendered in the exit path. The
4626
+ // box is additive: the SDK's own inline warn still fires, so the notice
4627
+ // cannot be hidden by any rendering path.
4628
+ onEvent: (event) => collectDeprecationNoticeAndForward(event, sdkOptions.onEvent)
4629
+ }).use(extensionsContextPlugin).use(experimentalContextPlugin).use(generateAppTypesPlugin).use(buildManifestPlugin).use(bundleCodePlugin).use(getLoginConfigPathPlugin).use(addAppsPlugin).use(feedbackPlugin).use(curlPlugin).use(initPlugin).use(drainTriggerInboxCliPlugin, { override: true }).use(watchTriggerInboxCliPlugin, { override: true }).use(mcpPlugin).use(loginPlugin).use(signupPlugin).use(logoutPlugin).use(cliOverridesPlugin, { override: true });
4630
+ const sdk = experimental.createSdk(
4631
+ experimental.defineLegacyMerge({
4632
+ namespace: "zapier",
4633
+ name: "cli-experimental-stack-merge",
4634
+ legacy: stack.toPlugin(),
4635
+ plugin: experimental.zapierSdkPlugin
4636
+ })
4637
+ );
4614
4638
  for (const ext of extensions) {
4615
4639
  try {
4616
4640
  experimental.addPlugin(sdk, ext);
@@ -7,9 +7,9 @@ import crypto, { createHash } from 'crypto';
7
7
  import * as path from 'path';
8
8
  import { resolve, join, dirname, basename, relative, extname } from 'path';
9
9
  import * as lockfile from 'proper-lockfile';
10
- import { definePlugin, createPluginMethod, OutputPropertySchema, ZapierBundleError, DEFAULT_CONFIG_PATH, ZapierValidationError, ZapierUnknownError, ZapierReleaseTriggerMessageSignal, getOrCreateApiClient, isPermanentHttpError, invalidateCachedToken, batch, toSnakeCase, ZapierAbortDrainSignal, isCredentialsObject, buildApplicationLifecycleEvent, AuthMechanism, ZapierAuthenticationError, ZapierError } from '@zapier/zapier-sdk';
10
+ import { definePlugin, createPluginMethod, OutputPropertySchema, ZapierBundleError, DEFAULT_CONFIG_PATH, ZapierValidationError, ZapierUnknownError, ZapierReleaseTriggerMessageSignal, getOrCreateApiClient, isPermanentHttpError, invalidateCachedToken, batch, toSnakeCase, ZapierAbortDrainSignal, isCredentialsObject, buildApplicationLifecycleEvent, AuthMechanism, ZapierAuthenticationError, ZapierError, DEPRECATION_NOTICE_EVENT } from '@zapier/zapier-sdk';
11
11
  import { z } from 'zod';
12
- import { injectCliLogin, createZapierSdkStack, addPlugin } from '@zapier/zapier-sdk/experimental';
12
+ import { injectCliLogin, createZapierSdkStack, createSdk, defineLegacyMerge, zapierSdkPlugin, addPlugin } from '@zapier/zapier-sdk/experimental';
13
13
  import { hostname } from 'os';
14
14
  import inquirer from 'inquirer';
15
15
  import express from 'express';
@@ -4554,11 +4554,23 @@ var watchTriggerInboxCliPlugin = definePlugin(
4554
4554
  };
4555
4555
  }
4556
4556
  );
4557
+ var activeNotices = /* @__PURE__ */ new Map();
4558
+ function collectDeprecationNotice(event) {
4559
+ if (event.type !== DEPRECATION_NOTICE_EVENT) return;
4560
+ const { id, message } = event.payload ?? {};
4561
+ if (typeof id === "string" && typeof message === "string") {
4562
+ activeNotices.set(id, message);
4563
+ }
4564
+ }
4565
+ function collectDeprecationNoticeAndForward(event, onEvent) {
4566
+ collectDeprecationNotice(event);
4567
+ return onEvent?.(event);
4568
+ }
4557
4569
 
4558
4570
  // package.json with { type: 'json' }
4559
4571
  var package_default = {
4560
4572
  name: "@zapier/zapier-sdk-cli",
4561
- version: "0.59.2"};
4573
+ version: "0.60.0"};
4562
4574
 
4563
4575
  // src/experimental.ts
4564
4576
  injectCliLogin(login_exports);
@@ -4570,11 +4582,23 @@ function createZapierCliSdk(options = {}) {
4570
4582
  const experimentalContextPlugin = () => ({
4571
4583
  context: { experimental: true }
4572
4584
  });
4573
- const sdk = createZapierSdkStack({
4585
+ const stack = createZapierSdkStack({
4574
4586
  ...sdkOptions,
4575
4587
  eventEmission: { ...sdkOptions.eventEmission, callContext: "cli" },
4576
- callerPackage: { name: package_default.name, version: package_default.version }
4577
- }).use(extensionsContextPlugin).use(experimentalContextPlugin).use(generateAppTypesPlugin).use(buildManifestPlugin).use(bundleCodePlugin).use(getLoginConfigPathPlugin).use(addAppsPlugin).use(feedbackPlugin).use(curlPlugin).use(initPlugin).use(drainTriggerInboxCliPlugin, { override: true }).use(watchTriggerInboxCliPlugin, { override: true }).use(mcpPlugin).use(loginPlugin).use(signupPlugin).use(logoutPlugin).use(cliOverridesPlugin, { override: true }).toSdk();
4588
+ callerPackage: { name: package_default.name, version: package_default.version },
4589
+ // Collected for the boxed stderr warning rendered in the exit path. The
4590
+ // box is additive: the SDK's own inline warn still fires, so the notice
4591
+ // cannot be hidden by any rendering path.
4592
+ onEvent: (event) => collectDeprecationNoticeAndForward(event, sdkOptions.onEvent)
4593
+ }).use(extensionsContextPlugin).use(experimentalContextPlugin).use(generateAppTypesPlugin).use(buildManifestPlugin).use(bundleCodePlugin).use(getLoginConfigPathPlugin).use(addAppsPlugin).use(feedbackPlugin).use(curlPlugin).use(initPlugin).use(drainTriggerInboxCliPlugin, { override: true }).use(watchTriggerInboxCliPlugin, { override: true }).use(mcpPlugin).use(loginPlugin).use(signupPlugin).use(logoutPlugin).use(cliOverridesPlugin, { override: true });
4594
+ const sdk = createSdk(
4595
+ defineLegacyMerge({
4596
+ namespace: "zapier",
4597
+ name: "cli-experimental-stack-merge",
4598
+ legacy: stack.toPlugin(),
4599
+ plugin: zapierSdkPlugin
4600
+ })
4601
+ );
4578
4602
  for (const ext of extensions) {
4579
4603
  try {
4580
4604
  addPlugin(sdk, ext);
package/dist/index.cjs CHANGED
@@ -4589,11 +4589,23 @@ zapierSdk.definePlugin(
4589
4589
  };
4590
4590
  }
4591
4591
  );
4592
+ var activeNotices = /* @__PURE__ */ new Map();
4593
+ function collectDeprecationNotice(event) {
4594
+ if (event.type !== zapierSdk.DEPRECATION_NOTICE_EVENT) return;
4595
+ const { id, message } = event.payload ?? {};
4596
+ if (typeof id === "string" && typeof message === "string") {
4597
+ activeNotices.set(id, message);
4598
+ }
4599
+ }
4600
+ function collectDeprecationNoticeAndForward(event, onEvent) {
4601
+ collectDeprecationNotice(event);
4602
+ return onEvent?.(event);
4603
+ }
4592
4604
 
4593
4605
  // package.json with { type: 'json' }
4594
4606
  var package_default = {
4595
4607
  name: "@zapier/zapier-sdk-cli",
4596
- version: "0.59.2"};
4608
+ version: "0.60.0"};
4597
4609
 
4598
4610
  // src/sdk.ts
4599
4611
  zapierSdk.injectCliLogin(login_exports);
@@ -4602,11 +4614,23 @@ function createZapierCliSdk(options = {}) {
4602
4614
  const extensionsContextPlugin = () => ({
4603
4615
  context: { extensions }
4604
4616
  });
4605
- const sdk = zapierSdk.createZapierSdkStack({
4617
+ const stack = zapierSdk.createZapierSdkStack({
4606
4618
  ...sdkOptions,
4607
4619
  eventEmission: { ...sdkOptions.eventEmission, callContext: "cli" },
4608
- callerPackage: { name: package_default.name, version: package_default.version }
4609
- }).use(extensionsContextPlugin).use(generateAppTypesPlugin).use(buildManifestPlugin).use(bundleCodePlugin).use(getLoginConfigPathPlugin).use(addAppsPlugin).use(feedbackPlugin).use(curlPlugin).use(initPlugin).use(mcpPlugin).use(loginPlugin).use(signupPlugin).use(logoutPlugin).use(cliOverridesPlugin, { override: true }).toSdk();
4620
+ callerPackage: { name: package_default.name, version: package_default.version },
4621
+ // Collected for the boxed stderr warning rendered in the exit path. The
4622
+ // box is additive: the SDK's own inline warn still fires, so the notice
4623
+ // cannot be hidden by any rendering path.
4624
+ onEvent: (event) => collectDeprecationNoticeAndForward(event, sdkOptions.onEvent)
4625
+ }).use(extensionsContextPlugin).use(generateAppTypesPlugin).use(buildManifestPlugin).use(bundleCodePlugin).use(getLoginConfigPathPlugin).use(addAppsPlugin).use(feedbackPlugin).use(curlPlugin).use(initPlugin).use(mcpPlugin).use(loginPlugin).use(signupPlugin).use(logoutPlugin).use(cliOverridesPlugin, { override: true });
4626
+ const sdk = zapierSdk.createSdk(
4627
+ zapierSdk.defineLegacyMerge({
4628
+ namespace: "zapier",
4629
+ name: "cli-stack-merge",
4630
+ legacy: stack.toPlugin(),
4631
+ plugin: zapierSdk.zapierSdkPlugin
4632
+ })
4633
+ );
4610
4634
  for (const ext of extensions) {
4611
4635
  try {
4612
4636
  zapierSdk.addPlugin(sdk, ext);
@@ -4621,7 +4645,7 @@ function createZapierCliSdk(options = {}) {
4621
4645
 
4622
4646
  // package.json
4623
4647
  var package_default2 = {
4624
- version: "0.59.2"};
4648
+ version: "0.60.0"};
4625
4649
 
4626
4650
  // src/telemetry/builders.ts
4627
4651
  function createCliBaseEvent(context = {}) {
package/dist/index.mjs CHANGED
@@ -7,7 +7,7 @@ import crypto, { createHash } from 'crypto';
7
7
  import * as path from 'path';
8
8
  import { resolve, join, dirname, basename, relative, extname } from 'path';
9
9
  import * as lockfile from 'proper-lockfile';
10
- import { definePlugin, createPluginMethod, OutputPropertySchema, ZapierBundleError, DEFAULT_CONFIG_PATH, ZapierValidationError, ZapierUnknownError, ZapierReleaseTriggerMessageSignal, injectCliLogin, getOrCreateApiClient, isPermanentHttpError, invalidateCachedToken, batch, toSnakeCase, ZapierAbortDrainSignal, isCredentialsObject, buildApplicationLifecycleEvent, AuthMechanism, ZapierAuthenticationError, ZapierError, createZapierSdkStack, addPlugin, getOsInfo, getPlatformVersions, getAgent, getTtyContext, getCiPlatform, isCi, getReleaseId, getCurrentTimestamp, generateEventId } from '@zapier/zapier-sdk';
10
+ import { definePlugin, createPluginMethod, OutputPropertySchema, ZapierBundleError, DEFAULT_CONFIG_PATH, ZapierValidationError, ZapierUnknownError, ZapierReleaseTriggerMessageSignal, injectCliLogin, getOrCreateApiClient, isPermanentHttpError, invalidateCachedToken, batch, toSnakeCase, ZapierAbortDrainSignal, isCredentialsObject, buildApplicationLifecycleEvent, AuthMechanism, ZapierAuthenticationError, ZapierError, createZapierSdkStack, createSdk, defineLegacyMerge, zapierSdkPlugin, addPlugin, getOsInfo, getPlatformVersions, getAgent, getTtyContext, getCiPlatform, isCi, getReleaseId, getCurrentTimestamp, generateEventId, DEPRECATION_NOTICE_EVENT } from '@zapier/zapier-sdk';
11
11
  import { z } from 'zod';
12
12
  import { hostname } from 'os';
13
13
  import inquirer from 'inquirer';
@@ -4553,11 +4553,23 @@ definePlugin(
4553
4553
  };
4554
4554
  }
4555
4555
  );
4556
+ var activeNotices = /* @__PURE__ */ new Map();
4557
+ function collectDeprecationNotice(event) {
4558
+ if (event.type !== DEPRECATION_NOTICE_EVENT) return;
4559
+ const { id, message } = event.payload ?? {};
4560
+ if (typeof id === "string" && typeof message === "string") {
4561
+ activeNotices.set(id, message);
4562
+ }
4563
+ }
4564
+ function collectDeprecationNoticeAndForward(event, onEvent) {
4565
+ collectDeprecationNotice(event);
4566
+ return onEvent?.(event);
4567
+ }
4556
4568
 
4557
4569
  // package.json with { type: 'json' }
4558
4570
  var package_default = {
4559
4571
  name: "@zapier/zapier-sdk-cli",
4560
- version: "0.59.2"};
4572
+ version: "0.60.0"};
4561
4573
 
4562
4574
  // src/sdk.ts
4563
4575
  injectCliLogin(login_exports);
@@ -4566,11 +4578,23 @@ function createZapierCliSdk(options = {}) {
4566
4578
  const extensionsContextPlugin = () => ({
4567
4579
  context: { extensions }
4568
4580
  });
4569
- const sdk = createZapierSdkStack({
4581
+ const stack = createZapierSdkStack({
4570
4582
  ...sdkOptions,
4571
4583
  eventEmission: { ...sdkOptions.eventEmission, callContext: "cli" },
4572
- callerPackage: { name: package_default.name, version: package_default.version }
4573
- }).use(extensionsContextPlugin).use(generateAppTypesPlugin).use(buildManifestPlugin).use(bundleCodePlugin).use(getLoginConfigPathPlugin).use(addAppsPlugin).use(feedbackPlugin).use(curlPlugin).use(initPlugin).use(mcpPlugin).use(loginPlugin).use(signupPlugin).use(logoutPlugin).use(cliOverridesPlugin, { override: true }).toSdk();
4584
+ callerPackage: { name: package_default.name, version: package_default.version },
4585
+ // Collected for the boxed stderr warning rendered in the exit path. The
4586
+ // box is additive: the SDK's own inline warn still fires, so the notice
4587
+ // cannot be hidden by any rendering path.
4588
+ onEvent: (event) => collectDeprecationNoticeAndForward(event, sdkOptions.onEvent)
4589
+ }).use(extensionsContextPlugin).use(generateAppTypesPlugin).use(buildManifestPlugin).use(bundleCodePlugin).use(getLoginConfigPathPlugin).use(addAppsPlugin).use(feedbackPlugin).use(curlPlugin).use(initPlugin).use(mcpPlugin).use(loginPlugin).use(signupPlugin).use(logoutPlugin).use(cliOverridesPlugin, { override: true });
4590
+ const sdk = createSdk(
4591
+ defineLegacyMerge({
4592
+ namespace: "zapier",
4593
+ name: "cli-stack-merge",
4594
+ legacy: stack.toPlugin(),
4595
+ plugin: zapierSdkPlugin
4596
+ })
4597
+ );
4574
4598
  for (const ext of extensions) {
4575
4599
  try {
4576
4600
  addPlugin(sdk, ext);
@@ -4585,7 +4609,7 @@ function createZapierCliSdk(options = {}) {
4585
4609
 
4586
4610
  // package.json
4587
4611
  var package_default2 = {
4588
- version: "0.59.2"};
4612
+ version: "0.60.0"};
4589
4613
 
4590
4614
  // src/telemetry/builders.ts
4591
4615
  function createCliBaseEvent(context = {}) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zapier/zapier-sdk-cli",
3
- "version": "0.59.2",
3
+ "version": "0.60.0",
4
4
  "description": "Command line interface for Zapier SDK",
5
5
  "main": "dist/index.cjs",
6
6
  "module": "dist/index.mjs",
@@ -95,8 +95,8 @@
95
95
  "typescript": "^5.8.3",
96
96
  "wrap-ansi": "^10.0.0",
97
97
  "zod": "4.3.6",
98
- "@zapier/zapier-sdk": "0.77.2",
99
- "@zapier/zapier-sdk-mcp": "0.15.2"
98
+ "@zapier/zapier-sdk": "0.79.0",
99
+ "@zapier/zapier-sdk-mcp": "0.16.0"
100
100
  },
101
101
  "devDependencies": {
102
102
  "@types/express": "^5.0.3",