@zapier/zapier-sdk-cli 0.84.5 → 0.85.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 +41 -0
- package/README.md +17 -3
- package/bin/zapier-sdk-experimental.mjs +8 -0
- package/dist/cli.cjs +297 -150
- package/dist/cli.mjs +305 -158
- package/dist/experimental.cjs +37 -18
- package/dist/experimental.d.mts +9 -7
- package/dist/experimental.d.ts +9 -7
- package/dist/experimental.mjs +38 -19
- package/dist/index.cjs +106 -83
- package/dist/index.d.mts +2 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.mjs +106 -83
- package/package.json +4 -4
package/dist/index.mjs
CHANGED
|
@@ -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, apiPlugin, defineMethod, apiPluginRef, resolveCredentialsPluginRef, eventEmissionPluginRef, sdkOptionsPluginRef, declareOptionalProperty, OutputPropertySchema, ZapierBundleError, isZapierBundleError, DEFAULT_CONFIG_PATH, declareMethod, ZapierValidationError, isZapierValidationError, ZapierUnknownError, manifestPluginRef, defineResolver, isPermanentHttpError, isZapierAuthenticationError, ZapierApiError, defineOverride, fetchPlugin, zapierCoreOptions, injectCliLogin, omitExports, zapierSdkPlugin, getConnectionPlugin, invalidateCachedToken, batch, toSnakeCase, ZapierError, isZapierReleaseTriggerMessageSignal, createSdk, SDK_OPTIONS_ID, resolvePlugin, isCredentialsObject, getRegistryPlugin, createController, ZapierAbortDrainSignal, ZapierReleaseTriggerMessageSignal, buildApplicationLifecycleEvent, AuthMechanism, isCoreCancelledSignal, ZapierAuthenticationError, CORE_OPTIONS_ID, addPlugin, formatExtensionPluginFailure, getOsInfo, getPlatformVersions, getAgent as getAgent$1, getTtyContext, getCiPlatform, isCi, getReleaseId, getCurrentTimestamp, generateEventId, DEPRECATION_NOTICE_EVENT } from '@zapier/zapier-sdk';
|
|
10
|
+
import { definePlugin, apiPlugin, defineMethod, apiPluginRef, resolveCredentialsPluginRef, eventEmissionPluginRef, sdkOptionsPluginRef, declareOptionalProperty, OutputPropertySchema, ZapierBundleError, isZapierBundleError, DEFAULT_CONFIG_PATH, declareMethod, ZapierValidationError, isZapierValidationError, ZapierUnknownError, manifestPluginRef, defineResolver, isPermanentHttpError, isZapierAuthenticationError, ZapierApiError, defineOverride, fetchPlugin, zapierCoreOptions, injectCliLogin, omitExports, zapierSdkPlugin, STABILITY_LEVELS, getConnectionPlugin, invalidateCachedToken, batch, toSnakeCase, ZapierError, isZapierReleaseTriggerMessageSignal, createSdk, SDK_OPTIONS_ID, resolvePlugin, isCredentialsObject, getRegistryPlugin, createController, ZapierAbortDrainSignal, ZapierReleaseTriggerMessageSignal, buildApplicationLifecycleEvent, AuthMechanism, isCoreCancelledSignal, ZapierAuthenticationError, CORE_OPTIONS_ID, addPlugin, formatExtensionPluginFailure, getOsInfo, getPlatformVersions, getAgent as getAgent$1, getTtyContext, getCiPlatform, isCi, STABILITY_DEFINITIONS, getReleaseId, getCurrentTimestamp, generateEventId, DEPRECATION_NOTICE_EVENT } from '@zapier/zapier-sdk';
|
|
11
11
|
import { z } from 'zod';
|
|
12
|
-
import
|
|
12
|
+
import chalk6 from 'chalk';
|
|
13
13
|
import { hostname } from 'os';
|
|
14
14
|
import inquirer4 from 'inquirer';
|
|
15
15
|
import { makeTheme, createPrompt, useState, usePrefix, useMemo, useEffect, useKeypress, isEnterKey, isTabKey, isUpKey, isDownKey, usePagination, Separator } from '@inquirer/core';
|
|
@@ -875,6 +875,17 @@ function getConfigPath() {
|
|
|
875
875
|
function toKebabCase(str) {
|
|
876
876
|
return str.replace(/([A-Z]+)([A-Z][a-z])/g, "$1-$2").replace(/([a-z\d])([A-Z])/g, "$1-$2").toLowerCase();
|
|
877
877
|
}
|
|
878
|
+
function warningBlock({
|
|
879
|
+
banner,
|
|
880
|
+
message,
|
|
881
|
+
detail
|
|
882
|
+
}) {
|
|
883
|
+
console.warn();
|
|
884
|
+
console.warn(chalk6.yellow.bold(banner) + chalk6.yellow(message));
|
|
885
|
+
if (detail) console.warn(chalk6.yellow(` ${detail}`));
|
|
886
|
+
console.warn();
|
|
887
|
+
}
|
|
888
|
+
var DEPRECATION_BANNER = "\u26A0\uFE0F DEPRECATION WARNING";
|
|
878
889
|
|
|
879
890
|
// src/utils/retry.ts
|
|
880
891
|
function sleep(ms) {
|
|
@@ -1111,9 +1122,9 @@ function normalizeChoices(choices) {
|
|
|
1111
1122
|
var theme = makeTheme({
|
|
1112
1123
|
icon: { cursor: "\u276F" },
|
|
1113
1124
|
style: {
|
|
1114
|
-
disabled: (text) =>
|
|
1115
|
-
searchTerm: (text) =>
|
|
1116
|
-
keysHelpTip: (keys) => keys.map(([key, action]) => `${
|
|
1125
|
+
disabled: (text) => chalk6.dim(`- ${text}`),
|
|
1126
|
+
searchTerm: (text) => chalk6.cyan(text),
|
|
1127
|
+
keysHelpTip: (keys) => keys.map(([key, action]) => `${chalk6.bold(key)} ${chalk6.dim(action)}`).join(chalk6.dim(" \u2022 "))
|
|
1117
1128
|
}
|
|
1118
1129
|
});
|
|
1119
1130
|
var searchSelect = createPrompt(
|
|
@@ -1290,14 +1301,14 @@ function formatCredentialsChoice({
|
|
|
1290
1301
|
credentials,
|
|
1291
1302
|
current
|
|
1292
1303
|
}) {
|
|
1293
|
-
const currentLabel = current ?
|
|
1304
|
+
const currentLabel = current ? chalk6.cyan(" (current)") : "";
|
|
1294
1305
|
const details = [
|
|
1295
1306
|
credentials.clientId,
|
|
1296
1307
|
credentials.scopes.join(", "),
|
|
1297
1308
|
`created ${createdAtIso(credentials).slice(0, 10)}`
|
|
1298
1309
|
].join(" \xB7 ");
|
|
1299
1310
|
return {
|
|
1300
|
-
name: `${credentials.name}${currentLabel} ${
|
|
1311
|
+
name: `${credentials.name}${currentLabel} ${chalk6.dim(`\xB7 ${details}`)}`,
|
|
1301
1312
|
short: credentials.name,
|
|
1302
1313
|
value: { action: "switch", credentials }
|
|
1303
1314
|
};
|
|
@@ -1473,20 +1484,20 @@ var getCallablePromise = () => {
|
|
|
1473
1484
|
var getCallablePromise_default = getCallablePromise;
|
|
1474
1485
|
var log = {
|
|
1475
1486
|
info: (message, ...args) => {
|
|
1476
|
-
console.error(
|
|
1487
|
+
console.error(chalk6.blue("\u2139"), message, ...args);
|
|
1477
1488
|
},
|
|
1478
1489
|
error: (message, ...args) => {
|
|
1479
|
-
console.error(
|
|
1490
|
+
console.error(chalk6.red("\u2716"), message, ...args);
|
|
1480
1491
|
},
|
|
1481
1492
|
success: (message, ...args) => {
|
|
1482
|
-
console.error(
|
|
1493
|
+
console.error(chalk6.green("\u2713"), message, ...args);
|
|
1483
1494
|
},
|
|
1484
1495
|
warn: (message, ...args) => {
|
|
1485
|
-
console.error(
|
|
1496
|
+
console.error(chalk6.yellow("\u26A0"), message, ...args);
|
|
1486
1497
|
},
|
|
1487
1498
|
debug: (message, ...args) => {
|
|
1488
1499
|
if (process.env.DEBUG === "true" || process.argv.includes("--debug")) {
|
|
1489
|
-
console.error(
|
|
1500
|
+
console.error(chalk6.gray("\u{1F41B}"), message, ...args);
|
|
1490
1501
|
}
|
|
1491
1502
|
}
|
|
1492
1503
|
};
|
|
@@ -2998,9 +3009,9 @@ var CLI_EXTENSIONS_ID = "cli/extensions";
|
|
|
2998
3009
|
var cliExtensionsPluginRef = declareOptionalProperty({
|
|
2999
3010
|
id: CLI_EXTENSIONS_ID
|
|
3000
3011
|
});
|
|
3001
|
-
var
|
|
3002
|
-
var
|
|
3003
|
-
id:
|
|
3012
|
+
var CLI_STABILITY_ID = "cli/stability";
|
|
3013
|
+
var cliStabilityPluginRef = declareOptionalProperty({
|
|
3014
|
+
id: CLI_STABILITY_ID
|
|
3004
3015
|
});
|
|
3005
3016
|
var McpSchema = z.object({
|
|
3006
3017
|
port: z.string().optional().describe("Port to listen on (for future HTTP transport)")
|
|
@@ -3009,11 +3020,7 @@ var McpSchema = z.object({
|
|
|
3009
3020
|
// src/plugins/mcp/index.ts
|
|
3010
3021
|
var mcpPlugin = defineMethod({
|
|
3011
3022
|
name: "mcp",
|
|
3012
|
-
imports: [
|
|
3013
|
-
sdkOptionsPluginRef,
|
|
3014
|
-
cliExtensionsPluginRef,
|
|
3015
|
-
cliExperimentalPluginRef
|
|
3016
|
-
],
|
|
3023
|
+
imports: [sdkOptionsPluginRef, cliExtensionsPluginRef, cliStabilityPluginRef],
|
|
3017
3024
|
output: "raw",
|
|
3018
3025
|
inputSchema: McpSchema,
|
|
3019
3026
|
categories: ["utility"],
|
|
@@ -3023,7 +3030,7 @@ var mcpPlugin = defineMethod({
|
|
|
3023
3030
|
debug: imports.sdkOptions?.debug,
|
|
3024
3031
|
maxConcurrentRequests: imports.sdkOptions?.maxConcurrentRequests,
|
|
3025
3032
|
extensions: imports.extensions,
|
|
3026
|
-
|
|
3033
|
+
stability: imports.stability
|
|
3027
3034
|
});
|
|
3028
3035
|
}
|
|
3029
3036
|
});
|
|
@@ -4706,7 +4713,7 @@ function buildTemplateVariables({
|
|
|
4706
4713
|
};
|
|
4707
4714
|
}
|
|
4708
4715
|
function cleanupProject({ projectDir }) {
|
|
4709
|
-
console.log("\n" +
|
|
4716
|
+
console.log("\n" + chalk6.yellow("!") + " Cleaning up...");
|
|
4710
4717
|
rmSync(projectDir, { recursive: true, force: true });
|
|
4711
4718
|
}
|
|
4712
4719
|
async function withInterruptCleanup(cleanup, fn) {
|
|
@@ -4916,8 +4923,8 @@ function buildNextSteps({
|
|
|
4916
4923
|
}
|
|
4917
4924
|
function createConsoleDisplayHooks() {
|
|
4918
4925
|
return {
|
|
4919
|
-
onItemComplete: (message) => console.log(" " +
|
|
4920
|
-
onWarn: (message) => console.warn(
|
|
4926
|
+
onItemComplete: (message) => console.log(" " + chalk6.green("\u2713") + " " + chalk6.dim(message)),
|
|
4927
|
+
onWarn: (message) => console.warn(chalk6.yellow("!") + " " + message),
|
|
4921
4928
|
onStepStart: ({
|
|
4922
4929
|
description,
|
|
4923
4930
|
stepNumber,
|
|
@@ -4926,31 +4933,31 @@ function createConsoleDisplayHooks() {
|
|
|
4926
4933
|
nonInteractive
|
|
4927
4934
|
}) => {
|
|
4928
4935
|
const progressMessage = `${description}...`;
|
|
4929
|
-
const stepCounter =
|
|
4936
|
+
const stepCounter = chalk6.dim(`${stepNumber}/${totalSteps}`);
|
|
4930
4937
|
if (nonInteractive) {
|
|
4931
4938
|
console.log(
|
|
4932
|
-
"\n" +
|
|
4939
|
+
"\n" + chalk6.bold(`\u276F ${progressMessage}`) + " " + stepCounter + "\n"
|
|
4933
4940
|
);
|
|
4934
4941
|
} else {
|
|
4935
4942
|
console.log(
|
|
4936
|
-
|
|
4943
|
+
chalk6.dim("\u2192") + " " + progressMessage + " " + stepCounter
|
|
4937
4944
|
);
|
|
4938
4945
|
}
|
|
4939
4946
|
if (command) {
|
|
4940
|
-
console.log(" " +
|
|
4947
|
+
console.log(" " + chalk6.cyan(`$ ${command}`));
|
|
4941
4948
|
}
|
|
4942
4949
|
},
|
|
4943
4950
|
onStepSuccess: ({ stepNumber, totalSteps }) => console.log(
|
|
4944
|
-
"\n" +
|
|
4951
|
+
"\n" + chalk6.green("\u2713") + " " + chalk6.dim(`Step ${stepNumber}/${totalSteps} complete`) + "\n"
|
|
4945
4952
|
),
|
|
4946
4953
|
onStepError: ({ description, command, err }) => {
|
|
4947
4954
|
const detail = err instanceof Error && err.message ? `
|
|
4948
|
-
${
|
|
4955
|
+
${chalk6.dim(err.message)}` : "";
|
|
4949
4956
|
const hint = command ? `
|
|
4950
|
-
${
|
|
4957
|
+
${chalk6.dim("run manually:")} ${chalk6.cyan(`$ ${command}`)}` : "";
|
|
4951
4958
|
console.error(
|
|
4952
4959
|
`
|
|
4953
|
-
${
|
|
4960
|
+
${chalk6.red("\u2716")} ${chalk6.bold(description)}${chalk6.dim(" failed")}${detail}${hint}`
|
|
4954
4961
|
);
|
|
4955
4962
|
}
|
|
4956
4963
|
};
|
|
@@ -4962,22 +4969,22 @@ function displaySummaryAndNextSteps({
|
|
|
4962
4969
|
packageManager
|
|
4963
4970
|
}) {
|
|
4964
4971
|
const formatStatus = (complete) => ({
|
|
4965
|
-
icon: complete ?
|
|
4966
|
-
text: complete ?
|
|
4972
|
+
icon: complete ? chalk6.green("\u2713") : chalk6.yellow("!"),
|
|
4973
|
+
text: complete ? chalk6.green("Setup complete") : chalk6.yellow("Setup interrupted")
|
|
4967
4974
|
});
|
|
4968
|
-
const formatNextStep = (step, i) => " " +
|
|
4969
|
-
const formatCommand = (cmd) => " " +
|
|
4970
|
-
const formatCompletedStep = (step) => " " +
|
|
4975
|
+
const formatNextStep = (step, i) => " " + chalk6.dim(`${i + 1}.`) + " " + chalk6.bold(step.description);
|
|
4976
|
+
const formatCommand = (cmd) => " " + chalk6.cyan(`$ ${cmd}`);
|
|
4977
|
+
const formatCompletedStep = (step) => " " + chalk6.green("\u2713") + " " + step.description;
|
|
4971
4978
|
const { execCmd } = getPackageManagerCommands({ packageManager });
|
|
4972
4979
|
const leftoverSteps = steps.filter(
|
|
4973
4980
|
(s) => !completedSetupStepIds.includes(s.id)
|
|
4974
4981
|
);
|
|
4975
4982
|
const isComplete = leftoverSteps.length === 0;
|
|
4976
4983
|
const status = formatStatus(isComplete);
|
|
4977
|
-
console.log("\n" +
|
|
4978
|
-
console.log(" " +
|
|
4984
|
+
console.log("\n" + chalk6.bold("\u276F Summary") + "\n");
|
|
4985
|
+
console.log(" " + chalk6.dim("Project") + " " + chalk6.bold(projectName));
|
|
4979
4986
|
console.log(
|
|
4980
|
-
" " +
|
|
4987
|
+
" " + chalk6.dim("Status") + " " + status.icon + " " + status.text
|
|
4981
4988
|
);
|
|
4982
4989
|
const completedSteps = steps.filter(
|
|
4983
4990
|
(s) => completedSetupStepIds.includes(s.id)
|
|
@@ -4987,7 +4994,7 @@ function displaySummaryAndNextSteps({
|
|
|
4987
4994
|
for (const step of completedSteps) console.log(formatCompletedStep(step));
|
|
4988
4995
|
}
|
|
4989
4996
|
const nextSteps = buildNextSteps({ projectName, leftoverSteps, execCmd });
|
|
4990
|
-
console.log("\n" +
|
|
4997
|
+
console.log("\n" + chalk6.bold("\u276F Next Steps") + "\n");
|
|
4991
4998
|
nextSteps.forEach((step, i) => {
|
|
4992
4999
|
console.log(formatNextStep(step, i));
|
|
4993
5000
|
if (step.command) console.log(formatCommand(step.command));
|
|
@@ -5070,10 +5077,10 @@ async function promptText({
|
|
|
5070
5077
|
]);
|
|
5071
5078
|
return value;
|
|
5072
5079
|
}
|
|
5073
|
-
var display = (c) => c.hint ? `${c.label} ${
|
|
5080
|
+
var display = (c) => c.hint ? `${c.label} ${chalk6.dim(`(${c.hint})`)}` : c.label;
|
|
5074
5081
|
var HIGH_CONTRAST_PROMPT_THEME = {
|
|
5075
5082
|
style: {
|
|
5076
|
-
answer: (text) =>
|
|
5083
|
+
answer: (text) => chalk6.inverse.bold(` ${text} `)
|
|
5077
5084
|
}
|
|
5078
5085
|
};
|
|
5079
5086
|
function buildSelectRows(question, term) {
|
|
@@ -5089,8 +5096,8 @@ function buildSelectRows(question, term) {
|
|
|
5089
5096
|
name: display(c),
|
|
5090
5097
|
value: c.value
|
|
5091
5098
|
}));
|
|
5092
|
-
const skipRow = offers(question, "skip") ? [row(
|
|
5093
|
-
const customRow = offers(question, "custom") ? [row(
|
|
5099
|
+
const skipRow = offers(question, "skip") ? [row(chalk6.dim("Skip (optional)"), "skip")] : [];
|
|
5100
|
+
const customRow = offers(question, "custom") ? [row(chalk6.dim("Enter a value manually\u2026"), "custom")] : [];
|
|
5094
5101
|
const committed = !!t || question.search !== void 0;
|
|
5095
5102
|
let rows;
|
|
5096
5103
|
if (!committed) {
|
|
@@ -5101,13 +5108,13 @@ function buildSelectRows(question, term) {
|
|
|
5101
5108
|
rows = [...customRow, ...skipRow];
|
|
5102
5109
|
}
|
|
5103
5110
|
if (offers(question, "search"))
|
|
5104
|
-
rows.push(row(
|
|
5111
|
+
rows.push(row(chalk6.cyan("Search again\u2026"), "search"));
|
|
5105
5112
|
if (offers(question, "next_page"))
|
|
5106
|
-
rows.push(row(
|
|
5107
|
-
if (offers(question, "retry")) rows.push(row(
|
|
5108
|
-
if (offers(question, "cancel")) rows.push(row(
|
|
5113
|
+
rows.push(row(chalk6.dim("Load more\u2026"), "next_page"));
|
|
5114
|
+
if (offers(question, "retry")) rows.push(row(chalk6.yellow("Retry"), "retry"));
|
|
5115
|
+
if (offers(question, "cancel")) rows.push(row(chalk6.dim("Cancel"), "cancel"));
|
|
5109
5116
|
for (const note of question.notes ?? [])
|
|
5110
|
-
rows.push({ name:
|
|
5117
|
+
rows.push({ name: chalk6.dim(note), value: note, disabled: true });
|
|
5111
5118
|
return rows;
|
|
5112
5119
|
}
|
|
5113
5120
|
function foldPage(acc, question, field) {
|
|
@@ -5187,12 +5194,12 @@ async function answerSelect(question, field, box, failed, mode) {
|
|
|
5187
5194
|
})),
|
|
5188
5195
|
...offers(question, "next_page") ? [
|
|
5189
5196
|
{
|
|
5190
|
-
name:
|
|
5197
|
+
name: chalk6.dim("Load more\u2026"),
|
|
5191
5198
|
value: { action: "next_page" }
|
|
5192
5199
|
}
|
|
5193
5200
|
] : [],
|
|
5194
5201
|
...(question.notes ?? []).map((note) => ({
|
|
5195
|
-
name:
|
|
5202
|
+
name: chalk6.dim(note),
|
|
5196
5203
|
value: note,
|
|
5197
5204
|
disabled: true
|
|
5198
5205
|
}))
|
|
@@ -5269,14 +5276,14 @@ async function answerSelect(question, field, box, failed, mode) {
|
|
|
5269
5276
|
case "retry":
|
|
5270
5277
|
return { type: "retry" };
|
|
5271
5278
|
case "skip":
|
|
5272
|
-
printAnswered(view.message,
|
|
5279
|
+
printAnswered(view.message, chalk6.dim("(skipped)"));
|
|
5273
5280
|
return { type: "skip" };
|
|
5274
5281
|
case "cancel":
|
|
5275
5282
|
return { type: "cancel" };
|
|
5276
5283
|
}
|
|
5277
5284
|
}
|
|
5278
5285
|
function printAnswered(message, label) {
|
|
5279
|
-
console.log(`${
|
|
5286
|
+
console.log(`${chalk6.green("\u2714")} ${message} ${chalk6.cyan(label)}`);
|
|
5280
5287
|
}
|
|
5281
5288
|
async function answerInput(question) {
|
|
5282
5289
|
const message = question.placeholder ? question.message.replace(/:?\s*$/, ` (${question.placeholder}):`) : question.message;
|
|
@@ -5313,7 +5320,7 @@ function createCliAnswer({
|
|
|
5313
5320
|
try {
|
|
5314
5321
|
if (result.error !== void 0) {
|
|
5315
5322
|
const message = typeof result.error === "string" ? result.error : result.error.message;
|
|
5316
|
-
console.log(
|
|
5323
|
+
console.log(chalk6.yellow(`! ${message}`));
|
|
5317
5324
|
}
|
|
5318
5325
|
const question = result.question;
|
|
5319
5326
|
const field = question.path.length ? question.path.join(".") : "value";
|
|
@@ -5482,7 +5489,7 @@ var boltFillRanks = new Map(
|
|
|
5482
5489
|
);
|
|
5483
5490
|
var STATUS_ROW_INDEX = Math.floor(boltRows.length / 2);
|
|
5484
5491
|
function formatPhase({ label, detail }) {
|
|
5485
|
-
return detail ? `${
|
|
5492
|
+
return detail ? `${chalk6.bold(label)} ${chalk6.dim(detail)}` : chalk6.bold(label);
|
|
5486
5493
|
}
|
|
5487
5494
|
function formatLoaderFrame({
|
|
5488
5495
|
phase,
|
|
@@ -5494,7 +5501,7 @@ function formatLoaderFrame({
|
|
|
5494
5501
|
const cellIndex = rowIndex * row.length + columnIndex;
|
|
5495
5502
|
const fillRank = boltFillRanks.get(cellIndex);
|
|
5496
5503
|
const isFilled = fillRank !== void 0 && fillRank < fillStage;
|
|
5497
|
-
return isFilled ?
|
|
5504
|
+
return isFilled ? chalk6.bold.yellow(cell) : chalk6.dim.yellow(cell);
|
|
5498
5505
|
}).join("");
|
|
5499
5506
|
const status = rowIndex === STATUS_ROW_INDEX ? ` ${formatPhase(phase)}` : "";
|
|
5500
5507
|
return `${bolt}${status}`;
|
|
@@ -5526,12 +5533,12 @@ async function runWithSetupLoader({
|
|
|
5526
5533
|
const result = await promise;
|
|
5527
5534
|
clearInterval(animationTimer);
|
|
5528
5535
|
const elapsedSeconds = ((Date.now() - startedAt) / 1e3).toFixed(1);
|
|
5529
|
-
loader.succeed(`${formatPhase(phase)} ${
|
|
5536
|
+
loader.succeed(`${formatPhase(phase)} ${chalk6.dim(`${elapsedSeconds}s`)}`);
|
|
5530
5537
|
return result;
|
|
5531
5538
|
} catch (error) {
|
|
5532
5539
|
clearInterval(animationTimer);
|
|
5533
5540
|
const elapsedSeconds = ((Date.now() - startedAt) / 1e3).toFixed(1);
|
|
5534
|
-
loader.fail(`${formatPhase(phase)} ${
|
|
5541
|
+
loader.fail(`${formatPhase(phase)} ${chalk6.dim(`${elapsedSeconds}s`)}`);
|
|
5535
5542
|
throw error;
|
|
5536
5543
|
}
|
|
5537
5544
|
}
|
|
@@ -6022,7 +6029,7 @@ async function runCommand({
|
|
|
6022
6029
|
detail: commandLabel
|
|
6023
6030
|
});
|
|
6024
6031
|
}
|
|
6025
|
-
console.log(
|
|
6032
|
+
console.log(chalk6.dim(commandLabel));
|
|
6026
6033
|
return await execute;
|
|
6027
6034
|
} catch (error) {
|
|
6028
6035
|
const message = error instanceof Error ? error.message : String(error);
|
|
@@ -6289,7 +6296,7 @@ function printAgentPrompt({
|
|
|
6289
6296
|
message
|
|
6290
6297
|
}) {
|
|
6291
6298
|
console.log();
|
|
6292
|
-
console.log(
|
|
6299
|
+
console.log(chalk6.bgYellow.black.bold(message));
|
|
6293
6300
|
console.log();
|
|
6294
6301
|
console.log(buildAgentPrompt({ context }));
|
|
6295
6302
|
}
|
|
@@ -6574,7 +6581,7 @@ var MINIMUM_MESSAGE_WIDTH = 20;
|
|
|
6574
6581
|
var MAXIMUM_MESSAGE_WIDTH = 88;
|
|
6575
6582
|
function showPhase({ number, title }) {
|
|
6576
6583
|
console.log();
|
|
6577
|
-
console.log(
|
|
6584
|
+
console.log(chalk6.bgCyan.black.bold(` ${number}/${PHASE_COUNT} ${title} `));
|
|
6578
6585
|
}
|
|
6579
6586
|
function printWrapped(text) {
|
|
6580
6587
|
const width = Math.max(
|
|
@@ -6588,7 +6595,7 @@ function printWrapped(text) {
|
|
|
6588
6595
|
}
|
|
6589
6596
|
function showReadyMessage() {
|
|
6590
6597
|
console.log();
|
|
6591
|
-
console.log(
|
|
6598
|
+
console.log(chalk6.bgGreen.black.bold(" \u2713 Zapier SDK setup complete "));
|
|
6592
6599
|
console.log();
|
|
6593
6600
|
printWrapped(
|
|
6594
6601
|
"Use active Zapier connections to access 9,000+ app connectors without managing each app's OAuth, token refresh, or retries."
|
|
@@ -6600,7 +6607,7 @@ function showReadyMessage() {
|
|
|
6600
6607
|
console.log();
|
|
6601
6608
|
}
|
|
6602
6609
|
async function runWizard(context) {
|
|
6603
|
-
console.log(
|
|
6610
|
+
console.log(chalk6.bold("Zapier SDK setup"));
|
|
6604
6611
|
showPhase({ number: 1, title: "Project directory" });
|
|
6605
6612
|
await chooseDirectory(context);
|
|
6606
6613
|
showPhase({ number: 2, title: "Node.js" });
|
|
@@ -6615,7 +6622,7 @@ async function runWizard(context) {
|
|
|
6615
6622
|
showPhase({ number: 6, title: "Slack demo" });
|
|
6616
6623
|
await offerSlackTest(context);
|
|
6617
6624
|
showReadyMessage();
|
|
6618
|
-
console.log(
|
|
6625
|
+
console.log(chalk6.bgCyan.black.bold(" Next steps "));
|
|
6619
6626
|
await openAgentHandoff(context);
|
|
6620
6627
|
}
|
|
6621
6628
|
|
|
@@ -6674,13 +6681,13 @@ function createInteractiveCallback() {
|
|
|
6674
6681
|
const attrs = message.message_attributes;
|
|
6675
6682
|
console.log(
|
|
6676
6683
|
`
|
|
6677
|
-
${
|
|
6684
|
+
${chalk6.bold(`Message #${messageNumber}`)} ${chalk6.dim(message.id)} ${chalk6.dim(`(lease #${attrs.lease_count})`)}`
|
|
6678
6685
|
);
|
|
6679
6686
|
if (attrs.error_message) {
|
|
6680
|
-
console.log(
|
|
6687
|
+
console.log(chalk6.yellow(` upstream error: ${attrs.error_message}`));
|
|
6681
6688
|
}
|
|
6682
6689
|
if (attrs.possible_duplicate_data) {
|
|
6683
|
-
console.log(
|
|
6690
|
+
console.log(chalk6.yellow(" possible duplicate data"));
|
|
6684
6691
|
}
|
|
6685
6692
|
while (true) {
|
|
6686
6693
|
let action;
|
|
@@ -6710,7 +6717,7 @@ ${chalk5.bold(`Message #${messageNumber}`)} ${chalk5.dim(message.id)} ${chalk5.d
|
|
|
6710
6717
|
throw error;
|
|
6711
6718
|
}
|
|
6712
6719
|
if (action === "view") {
|
|
6713
|
-
console.log(
|
|
6720
|
+
console.log(chalk6.dim(JSON.stringify(message.payload, null, 2)));
|
|
6714
6721
|
continue;
|
|
6715
6722
|
}
|
|
6716
6723
|
if (action === "ack") {
|
|
@@ -6813,7 +6820,7 @@ function describeReason(reason) {
|
|
|
6813
6820
|
}
|
|
6814
6821
|
function printDrainError(reason, message) {
|
|
6815
6822
|
console.error(
|
|
6816
|
-
|
|
6823
|
+
chalk6.red(`Error processing ${message.id}: ${describeReason(reason)}`)
|
|
6817
6824
|
);
|
|
6818
6825
|
}
|
|
6819
6826
|
function printDrainSummary(counts) {
|
|
@@ -6823,7 +6830,7 @@ function printDrainSummary(counts) {
|
|
|
6823
6830
|
if (skipped > 0) parts.push(`${skipped} skipped`);
|
|
6824
6831
|
parts.push(`${counts.rejected} rejected`);
|
|
6825
6832
|
console.log(
|
|
6826
|
-
|
|
6833
|
+
chalk6.dim(
|
|
6827
6834
|
`
|
|
6828
6835
|
Processed ${total} message${total === 1 ? "" : "s"} (${parts.join(", ")}).`
|
|
6829
6836
|
)
|
|
@@ -6831,7 +6838,7 @@ Processed ${total} message${total === 1 ? "" : "s"} (${parts.join(", ")}).`
|
|
|
6831
6838
|
}
|
|
6832
6839
|
function warnInteractiveContinueOnErrorOverride() {
|
|
6833
6840
|
console.warn(
|
|
6834
|
-
|
|
6841
|
+
chalk6.yellow(
|
|
6835
6842
|
'Note: continueOnError=false is overridden to true in interactive mode (the "Skip (let lease expire)" choice would otherwise terminate the drain).'
|
|
6836
6843
|
)
|
|
6837
6844
|
);
|
|
@@ -7157,7 +7164,7 @@ defineMethod$1({
|
|
|
7157
7164
|
type: "create",
|
|
7158
7165
|
itemType: "Workflow",
|
|
7159
7166
|
categories: ["code-workflow"],
|
|
7160
|
-
|
|
7167
|
+
stability: "experimental",
|
|
7161
7168
|
inputSchema: CreateWorkflowCliOptionsSchema,
|
|
7162
7169
|
outputSchema: CreateWorkflowResponseSchema,
|
|
7163
7170
|
skipOutputValidation: true,
|
|
@@ -7184,21 +7191,33 @@ function collectDeprecationNoticeAndForward(event, onEvent) {
|
|
|
7184
7191
|
// package.json with { type: 'json' }
|
|
7185
7192
|
var package_default = {
|
|
7186
7193
|
name: "@zapier/zapier-sdk-cli",
|
|
7187
|
-
version: "0.
|
|
7194
|
+
version: "0.85.0"};
|
|
7188
7195
|
|
|
7189
7196
|
// src/sdk.ts
|
|
7190
7197
|
var warnedDeprecatedMethods = /* @__PURE__ */ new Set();
|
|
7198
|
+
var warnedStabilityMethods = /* @__PURE__ */ new Set();
|
|
7191
7199
|
var cliCoreOptions = {
|
|
7192
7200
|
...zapierCoreOptions,
|
|
7193
7201
|
logDeprecation: ({ methodName, deprecation }) => {
|
|
7194
7202
|
if (warnedDeprecatedMethods.has(methodName)) return;
|
|
7195
7203
|
warnedDeprecatedMethods.add(methodName);
|
|
7196
|
-
|
|
7197
|
-
|
|
7198
|
-
|
|
7199
|
-
|
|
7200
|
-
|
|
7201
|
-
|
|
7204
|
+
warningBlock({
|
|
7205
|
+
banner: DEPRECATION_BANNER,
|
|
7206
|
+
message: ` - \`${toKebabCase(methodName)}\` is deprecated.`,
|
|
7207
|
+
detail: deprecation.message
|
|
7208
|
+
});
|
|
7209
|
+
},
|
|
7210
|
+
logStabilityNotice: ({ methodName, stability }) => {
|
|
7211
|
+
if (stability === "stable") return;
|
|
7212
|
+
if (warnedStabilityMethods.has(methodName)) return;
|
|
7213
|
+
warnedStabilityMethods.add(methodName);
|
|
7214
|
+
warningBlock({
|
|
7215
|
+
banner: `\u26A0\uFE0F ${stability.toUpperCase()} COMMAND`,
|
|
7216
|
+
message: ` - \`${toKebabCase(methodName)}\` is marked ${stability}.`,
|
|
7217
|
+
// The detail line is the tier's consumer contract, so the CLI says the
|
|
7218
|
+
// same thing as the SDK's runtime notice and the generated docs.
|
|
7219
|
+
detail: STABILITY_DEFINITIONS[stability]
|
|
7220
|
+
});
|
|
7202
7221
|
}
|
|
7203
7222
|
};
|
|
7204
7223
|
injectCliLogin(login_exports);
|
|
@@ -7266,7 +7285,7 @@ function createZapierCliSdk(options = {}) {
|
|
|
7266
7285
|
|
|
7267
7286
|
// package.json
|
|
7268
7287
|
var package_default2 = {
|
|
7269
|
-
version: "0.
|
|
7288
|
+
version: "0.85.0"};
|
|
7270
7289
|
|
|
7271
7290
|
// src/telemetry/builders.ts
|
|
7272
7291
|
function createCliBaseEvent(context = {}) {
|
|
@@ -7325,11 +7344,10 @@ function buildCliCommandExecutedEvent({
|
|
|
7325
7344
|
is_headless: data.is_headless ?? null
|
|
7326
7345
|
};
|
|
7327
7346
|
}
|
|
7328
|
-
|
|
7329
|
-
// src/utils/cli-options.ts
|
|
7330
7347
|
var ReservedCliParameter = /* @__PURE__ */ ((ReservedCliParameter2) => {
|
|
7331
7348
|
ReservedCliParameter2["Version"] = "version";
|
|
7332
7349
|
ReservedCliParameter2["Help"] = "help";
|
|
7350
|
+
ReservedCliParameter2["Stability"] = "stability";
|
|
7333
7351
|
return ReservedCliParameter2;
|
|
7334
7352
|
})(ReservedCliParameter || {});
|
|
7335
7353
|
var RESERVED_CLI_OPTIONS = [
|
|
@@ -7344,6 +7362,11 @@ var RESERVED_CLI_OPTIONS = [
|
|
|
7344
7362
|
flag: "--help",
|
|
7345
7363
|
short: "-h",
|
|
7346
7364
|
description: "Display help for command"
|
|
7365
|
+
},
|
|
7366
|
+
{
|
|
7367
|
+
name: "stability" /* Stability */,
|
|
7368
|
+
flag: "--stability <level>",
|
|
7369
|
+
description: `Which stability tier of the SDK / CLI surface to use: ${STABILITY_LEVELS.join(", ")}. Can also be set with the ZAPIER_STABILITY environment variable (default: stable).`
|
|
7347
7370
|
}
|
|
7348
7371
|
];
|
|
7349
7372
|
function getReservedCliOption(name) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zapier/zapier-sdk-cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.85.0",
|
|
4
4
|
"description": "Command line interface for Zapier SDK",
|
|
5
5
|
"main": "dist/index.cjs",
|
|
6
6
|
"module": "dist/index.mjs",
|
|
@@ -95,9 +95,9 @@
|
|
|
95
95
|
"typescript": "^5.8.3",
|
|
96
96
|
"wrap-ansi": "^10.0.0",
|
|
97
97
|
"zod": "4.3.6",
|
|
98
|
-
"@zapier/
|
|
99
|
-
"@zapier/zapier-sdk": "0.
|
|
100
|
-
"@zapier/
|
|
98
|
+
"@zapier/zapier-sdk": "0.113.0",
|
|
99
|
+
"@zapier/zapier-sdk-mcp": "0.26.0",
|
|
100
|
+
"@zapier/kitcore": "0.21.2"
|
|
101
101
|
},
|
|
102
102
|
"devDependencies": {
|
|
103
103
|
"@types/cross-spawn": "^6.0.6",
|