@zapier/zapier-sdk-cli 0.34.10 → 0.34.11

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,14 @@
1
1
  # @zapier/zapier-sdk-cli
2
2
 
3
+ ## 0.34.11
4
+
5
+ ### Patch Changes
6
+
7
+ - f676852: Suppress resolver method calls from emitting telemetry events
8
+ - Updated dependencies [f676852]
9
+ - @zapier/zapier-sdk@0.33.3
10
+ - @zapier/zapier-sdk-mcp@0.9.20
11
+
3
12
  ## 0.34.10
4
13
 
5
14
  ### Patch Changes
package/dist/cli.cjs CHANGED
@@ -119,139 +119,105 @@ function getLocalResolutionOrderForParams(paramNames, resolvers) {
119
119
  }
120
120
  var SchemaParameterResolver = class {
121
121
  async resolveParameters(schema, providedParams, sdk2, functionName) {
122
- const parseResult = schema.safeParse(providedParams);
123
- const allParams = this.extractParametersFromSchema(schema);
124
- const resolvableParams = allParams.filter(
125
- (param) => this.hasResolver(param.name, sdk2, functionName)
126
- );
127
- const missingResolvable = resolvableParams.filter((param) => {
128
- const hasValue = this.getNestedValue(providedParams, param.path) !== void 0;
129
- return !hasValue;
130
- });
131
- const functionallyRequired = missingResolvable.filter((param) => {
132
- if (param.isRequired) return true;
133
- if (param.name === "inputs") {
134
- return true;
135
- }
136
- return false;
137
- });
138
- const alwaysPrompt = missingResolvable.filter((param) => {
139
- if (functionallyRequired.includes(param)) return false;
140
- if (param.name === "connectionId") {
141
- return true;
142
- }
143
- return false;
144
- });
145
- const trulyOptional = missingResolvable.filter(
146
- (param) => !functionallyRequired.includes(param) && !alwaysPrompt.includes(param)
147
- );
148
- if (parseResult.success && functionallyRequired.length === 0 && alwaysPrompt.length === 0) {
149
- return parseResult.data;
150
- }
151
- if (functionallyRequired.length === 0 && alwaysPrompt.length === 0) {
152
- if (!parseResult.success) {
153
- throw parseResult.error;
154
- }
155
- return parseResult.data;
156
- }
157
- const resolvedParams = { ...providedParams };
158
- const context = {
159
- sdk: sdk2,
160
- currentParams: providedParams,
161
- resolvedParams,
162
- functionName
163
- };
164
- const localResolvers = this.getLocalResolvers(sdk2, functionName);
165
- if (functionallyRequired.length > 0) {
166
- const requiredParamNames = functionallyRequired.map((p) => p.name);
167
- const requiredResolutionOrder = getLocalResolutionOrderForParams(
168
- requiredParamNames,
169
- localResolvers
122
+ return zapierSdk.runWithTelemetryContext(async () => {
123
+ const parseResult = schema.safeParse(providedParams);
124
+ const allParams = this.extractParametersFromSchema(schema);
125
+ const resolvableParams = allParams.filter(
126
+ (param) => this.hasResolver(param.name, sdk2, functionName)
170
127
  );
171
- const orderedRequiredParams = requiredResolutionOrder.map((paramName) => {
172
- let param = functionallyRequired.find((p) => p.name === paramName);
173
- if (!param) {
174
- param = alwaysPrompt.find((p) => p.name === paramName);
128
+ const missingResolvable = resolvableParams.filter((param) => {
129
+ const hasValue = this.getNestedValue(providedParams, param.path) !== void 0;
130
+ return !hasValue;
131
+ });
132
+ const functionallyRequired = missingResolvable.filter((param) => {
133
+ if (param.isRequired) return true;
134
+ if (param.name === "inputs") {
135
+ return true;
175
136
  }
176
- if (!param) {
177
- param = trulyOptional.find((p) => p.name === paramName);
137
+ return false;
138
+ });
139
+ const alwaysPrompt = missingResolvable.filter((param) => {
140
+ if (functionallyRequired.includes(param)) return false;
141
+ if (param.name === "connectionId") {
142
+ return true;
178
143
  }
179
- return param;
180
- }).filter((param) => param !== void 0);
181
- for (const param of orderedRequiredParams) {
182
- try {
183
- const value = await this.resolveParameter(
184
- param,
185
- context,
186
- functionName
187
- );
188
- this.setNestedValue(resolvedParams, param.path, value);
189
- context.resolvedParams = resolvedParams;
190
- } catch (error) {
191
- if (this.isUserCancellation(error)) {
192
- console.log(chalk3__default.default.yellow("\n\nOperation cancelled by user"));
193
- throw new ZapierCliUserCancellationError();
194
- }
195
- throw error;
144
+ return false;
145
+ });
146
+ const trulyOptional = missingResolvable.filter(
147
+ (param) => !functionallyRequired.includes(param) && !alwaysPrompt.includes(param)
148
+ );
149
+ if (parseResult.success && functionallyRequired.length === 0 && alwaysPrompt.length === 0) {
150
+ return parseResult.data;
151
+ }
152
+ if (functionallyRequired.length === 0 && alwaysPrompt.length === 0) {
153
+ if (!parseResult.success) {
154
+ throw parseResult.error;
196
155
  }
156
+ return parseResult.data;
197
157
  }
198
- const resolvedParamNames = new Set(
199
- orderedRequiredParams.map((p) => p.name)
200
- );
201
- alwaysPrompt.splice(
202
- 0,
203
- alwaysPrompt.length,
204
- ...alwaysPrompt.filter((p) => !resolvedParamNames.has(p.name))
205
- );
206
- trulyOptional.splice(
207
- 0,
208
- trulyOptional.length,
209
- ...trulyOptional.filter((p) => !resolvedParamNames.has(p.name))
210
- );
211
- }
212
- if (alwaysPrompt.length > 0) {
213
- const alwaysPromptNames = alwaysPrompt.map((p) => p.name);
214
- const alwaysPromptResolutionOrder = getLocalResolutionOrderForParams(
215
- alwaysPromptNames,
216
- localResolvers
217
- );
218
- const orderedAlwaysPromptParams = alwaysPromptResolutionOrder.map((paramName) => alwaysPrompt.find((p) => p.name === paramName)).filter((param) => param !== void 0);
219
- for (const param of orderedAlwaysPromptParams) {
220
- try {
221
- const value = await this.resolveParameter(
222
- param,
223
- context,
224
- functionName
225
- );
226
- this.setNestedValue(resolvedParams, param.path, value);
227
- context.resolvedParams = resolvedParams;
228
- } catch (error) {
229
- if (this.isUserCancellation(error)) {
230
- console.log(chalk3__default.default.yellow("\n\nOperation cancelled by user"));
231
- throw new ZapierCliUserCancellationError();
158
+ const resolvedParams = { ...providedParams };
159
+ const context = {
160
+ sdk: sdk2,
161
+ currentParams: providedParams,
162
+ resolvedParams,
163
+ functionName
164
+ };
165
+ const localResolvers = this.getLocalResolvers(sdk2, functionName);
166
+ if (functionallyRequired.length > 0) {
167
+ const requiredParamNames = functionallyRequired.map((p) => p.name);
168
+ const requiredResolutionOrder = getLocalResolutionOrderForParams(
169
+ requiredParamNames,
170
+ localResolvers
171
+ );
172
+ const orderedRequiredParams = requiredResolutionOrder.map((paramName) => {
173
+ let param = functionallyRequired.find((p) => p.name === paramName);
174
+ if (!param) {
175
+ param = alwaysPrompt.find((p) => p.name === paramName);
176
+ }
177
+ if (!param) {
178
+ param = trulyOptional.find((p) => p.name === paramName);
179
+ }
180
+ return param;
181
+ }).filter((param) => param !== void 0);
182
+ for (const param of orderedRequiredParams) {
183
+ try {
184
+ const value = await this.resolveParameter(
185
+ param,
186
+ context,
187
+ functionName
188
+ );
189
+ this.setNestedValue(resolvedParams, param.path, value);
190
+ context.resolvedParams = resolvedParams;
191
+ } catch (error) {
192
+ if (this.isUserCancellation(error)) {
193
+ console.log(chalk3__default.default.yellow("\n\nOperation cancelled by user"));
194
+ throw new ZapierCliUserCancellationError();
195
+ }
196
+ throw error;
232
197
  }
233
- throw error;
234
198
  }
199
+ const resolvedParamNames = new Set(
200
+ orderedRequiredParams.map((p) => p.name)
201
+ );
202
+ alwaysPrompt.splice(
203
+ 0,
204
+ alwaysPrompt.length,
205
+ ...alwaysPrompt.filter((p) => !resolvedParamNames.has(p.name))
206
+ );
207
+ trulyOptional.splice(
208
+ 0,
209
+ trulyOptional.length,
210
+ ...trulyOptional.filter((p) => !resolvedParamNames.has(p.name))
211
+ );
235
212
  }
236
- }
237
- if (trulyOptional.length > 0) {
238
- const optionalNames = trulyOptional.map((p) => p.name).join(", ");
239
- const shouldResolveOptional = await inquirer__default.default.prompt([
240
- {
241
- type: "confirm",
242
- name: "resolveOptional",
243
- message: `Would you like to be prompted for optional parameters (${optionalNames})?`,
244
- default: false
245
- }
246
- ]);
247
- if (shouldResolveOptional.resolveOptional) {
248
- const optionalParamNames = trulyOptional.map((p) => p.name);
249
- const optionalResolutionOrder = getLocalResolutionOrderForParams(
250
- optionalParamNames,
213
+ if (alwaysPrompt.length > 0) {
214
+ const alwaysPromptNames = alwaysPrompt.map((p) => p.name);
215
+ const alwaysPromptResolutionOrder = getLocalResolutionOrderForParams(
216
+ alwaysPromptNames,
251
217
  localResolvers
252
218
  );
253
- const orderedOptionalParams = optionalResolutionOrder.map((paramName) => trulyOptional.find((p) => p.name === paramName)).filter((param) => param !== void 0);
254
- for (const param of orderedOptionalParams) {
219
+ const orderedAlwaysPromptParams = alwaysPromptResolutionOrder.map((paramName) => alwaysPrompt.find((p) => p.name === paramName)).filter((param) => param !== void 0);
220
+ for (const param of orderedAlwaysPromptParams) {
255
221
  try {
256
222
  const value = await this.resolveParameter(
257
223
  param,
@@ -269,15 +235,53 @@ var SchemaParameterResolver = class {
269
235
  }
270
236
  }
271
237
  }
272
- }
273
- const finalResult = schema.safeParse(resolvedParams);
274
- if (!finalResult.success) {
275
- console.error(
276
- chalk3__default.default.red("\u274C Parameter validation failed after resolution:")
277
- );
278
- throw finalResult.error;
279
- }
280
- return finalResult.data;
238
+ if (trulyOptional.length > 0) {
239
+ const optionalNames = trulyOptional.map((p) => p.name).join(", ");
240
+ const shouldResolveOptional = await inquirer__default.default.prompt([
241
+ {
242
+ type: "confirm",
243
+ name: "resolveOptional",
244
+ message: `Would you like to be prompted for optional parameters (${optionalNames})?`,
245
+ default: false
246
+ }
247
+ ]);
248
+ if (shouldResolveOptional.resolveOptional) {
249
+ const optionalParamNames = trulyOptional.map((p) => p.name);
250
+ const optionalResolutionOrder = getLocalResolutionOrderForParams(
251
+ optionalParamNames,
252
+ localResolvers
253
+ );
254
+ const orderedOptionalParams = optionalResolutionOrder.map((paramName) => trulyOptional.find((p) => p.name === paramName)).filter(
255
+ (param) => param !== void 0
256
+ );
257
+ for (const param of orderedOptionalParams) {
258
+ try {
259
+ const value = await this.resolveParameter(
260
+ param,
261
+ context,
262
+ functionName
263
+ );
264
+ this.setNestedValue(resolvedParams, param.path, value);
265
+ context.resolvedParams = resolvedParams;
266
+ } catch (error) {
267
+ if (this.isUserCancellation(error)) {
268
+ console.log(chalk3__default.default.yellow("\n\nOperation cancelled by user"));
269
+ throw new ZapierCliUserCancellationError();
270
+ }
271
+ throw error;
272
+ }
273
+ }
274
+ }
275
+ }
276
+ const finalResult = schema.safeParse(resolvedParams);
277
+ if (!finalResult.success) {
278
+ console.error(
279
+ chalk3__default.default.red("\u274C Parameter validation failed after resolution:")
280
+ );
281
+ throw finalResult.error;
282
+ }
283
+ return finalResult.data;
284
+ });
281
285
  }
282
286
  extractParametersFromSchema(schema) {
283
287
  const parameters = [];
@@ -923,7 +927,7 @@ var SHARED_COMMAND_CLI_OPTIONS = [
923
927
 
924
928
  // package.json
925
929
  var package_default = {
926
- version: "0.34.10"};
930
+ version: "0.34.11"};
927
931
 
928
932
  // src/telemetry/builders.ts
929
933
  function createCliBaseEvent(context = {}) {
@@ -4199,7 +4203,7 @@ function createZapierCliSdk(options = {}) {
4199
4203
  // package.json with { type: 'json' }
4200
4204
  var package_default2 = {
4201
4205
  name: "@zapier/zapier-sdk-cli",
4202
- version: "0.34.10"};
4206
+ version: "0.34.11"};
4203
4207
  var ONE_DAY_MS = 24 * 60 * 60 * 1e3;
4204
4208
  var CACHE_RESET_INTERVAL_MS = (() => {
4205
4209
  const { ZAPIER_SDK_UPDATE_CHECK_INTERVAL_MS = `${ONE_DAY_MS}` } = process.env;
package/dist/cli.mjs CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import { Command, CommanderError } from 'commander';
3
3
  import { z } from 'zod';
4
- import { createFunction, OutputPropertySchema, DEFAULT_CONFIG_PATH, injectCliLogin, createZapierSdkWithoutRegistry, registryPlugin, ZapierError, ZapierValidationError, ZapierUnknownError, batch, toSnakeCase, buildApplicationLifecycleEvent, formatErrorMessage, isCredentialsObject, isPositional, getOsInfo, getPlatformVersions, getCiPlatform, isCi, getReleaseId, getCurrentTimestamp, generateEventId } from '@zapier/zapier-sdk';
4
+ import { createFunction, OutputPropertySchema, DEFAULT_CONFIG_PATH, injectCliLogin, createZapierSdkWithoutRegistry, registryPlugin, ZapierError, ZapierValidationError, ZapierUnknownError, batch, toSnakeCase, buildApplicationLifecycleEvent, formatErrorMessage, isCredentialsObject, isPositional, runWithTelemetryContext, getOsInfo, getPlatformVersions, getCiPlatform, isCi, getReleaseId, getCurrentTimestamp, generateEventId } from '@zapier/zapier-sdk';
5
5
  import inquirer from 'inquirer';
6
6
  import chalk3 from 'chalk';
7
7
  import util from 'util';
@@ -82,139 +82,105 @@ function getLocalResolutionOrderForParams(paramNames, resolvers) {
82
82
  }
83
83
  var SchemaParameterResolver = class {
84
84
  async resolveParameters(schema, providedParams, sdk2, functionName) {
85
- const parseResult = schema.safeParse(providedParams);
86
- const allParams = this.extractParametersFromSchema(schema);
87
- const resolvableParams = allParams.filter(
88
- (param) => this.hasResolver(param.name, sdk2, functionName)
89
- );
90
- const missingResolvable = resolvableParams.filter((param) => {
91
- const hasValue = this.getNestedValue(providedParams, param.path) !== void 0;
92
- return !hasValue;
93
- });
94
- const functionallyRequired = missingResolvable.filter((param) => {
95
- if (param.isRequired) return true;
96
- if (param.name === "inputs") {
97
- return true;
98
- }
99
- return false;
100
- });
101
- const alwaysPrompt = missingResolvable.filter((param) => {
102
- if (functionallyRequired.includes(param)) return false;
103
- if (param.name === "connectionId") {
104
- return true;
105
- }
106
- return false;
107
- });
108
- const trulyOptional = missingResolvable.filter(
109
- (param) => !functionallyRequired.includes(param) && !alwaysPrompt.includes(param)
110
- );
111
- if (parseResult.success && functionallyRequired.length === 0 && alwaysPrompt.length === 0) {
112
- return parseResult.data;
113
- }
114
- if (functionallyRequired.length === 0 && alwaysPrompt.length === 0) {
115
- if (!parseResult.success) {
116
- throw parseResult.error;
117
- }
118
- return parseResult.data;
119
- }
120
- const resolvedParams = { ...providedParams };
121
- const context = {
122
- sdk: sdk2,
123
- currentParams: providedParams,
124
- resolvedParams,
125
- functionName
126
- };
127
- const localResolvers = this.getLocalResolvers(sdk2, functionName);
128
- if (functionallyRequired.length > 0) {
129
- const requiredParamNames = functionallyRequired.map((p) => p.name);
130
- const requiredResolutionOrder = getLocalResolutionOrderForParams(
131
- requiredParamNames,
132
- localResolvers
85
+ return runWithTelemetryContext(async () => {
86
+ const parseResult = schema.safeParse(providedParams);
87
+ const allParams = this.extractParametersFromSchema(schema);
88
+ const resolvableParams = allParams.filter(
89
+ (param) => this.hasResolver(param.name, sdk2, functionName)
133
90
  );
134
- const orderedRequiredParams = requiredResolutionOrder.map((paramName) => {
135
- let param = functionallyRequired.find((p) => p.name === paramName);
136
- if (!param) {
137
- param = alwaysPrompt.find((p) => p.name === paramName);
91
+ const missingResolvable = resolvableParams.filter((param) => {
92
+ const hasValue = this.getNestedValue(providedParams, param.path) !== void 0;
93
+ return !hasValue;
94
+ });
95
+ const functionallyRequired = missingResolvable.filter((param) => {
96
+ if (param.isRequired) return true;
97
+ if (param.name === "inputs") {
98
+ return true;
138
99
  }
139
- if (!param) {
140
- param = trulyOptional.find((p) => p.name === paramName);
100
+ return false;
101
+ });
102
+ const alwaysPrompt = missingResolvable.filter((param) => {
103
+ if (functionallyRequired.includes(param)) return false;
104
+ if (param.name === "connectionId") {
105
+ return true;
141
106
  }
142
- return param;
143
- }).filter((param) => param !== void 0);
144
- for (const param of orderedRequiredParams) {
145
- try {
146
- const value = await this.resolveParameter(
147
- param,
148
- context,
149
- functionName
150
- );
151
- this.setNestedValue(resolvedParams, param.path, value);
152
- context.resolvedParams = resolvedParams;
153
- } catch (error) {
154
- if (this.isUserCancellation(error)) {
155
- console.log(chalk3.yellow("\n\nOperation cancelled by user"));
156
- throw new ZapierCliUserCancellationError();
157
- }
158
- throw error;
107
+ return false;
108
+ });
109
+ const trulyOptional = missingResolvable.filter(
110
+ (param) => !functionallyRequired.includes(param) && !alwaysPrompt.includes(param)
111
+ );
112
+ if (parseResult.success && functionallyRequired.length === 0 && alwaysPrompt.length === 0) {
113
+ return parseResult.data;
114
+ }
115
+ if (functionallyRequired.length === 0 && alwaysPrompt.length === 0) {
116
+ if (!parseResult.success) {
117
+ throw parseResult.error;
159
118
  }
119
+ return parseResult.data;
160
120
  }
161
- const resolvedParamNames = new Set(
162
- orderedRequiredParams.map((p) => p.name)
163
- );
164
- alwaysPrompt.splice(
165
- 0,
166
- alwaysPrompt.length,
167
- ...alwaysPrompt.filter((p) => !resolvedParamNames.has(p.name))
168
- );
169
- trulyOptional.splice(
170
- 0,
171
- trulyOptional.length,
172
- ...trulyOptional.filter((p) => !resolvedParamNames.has(p.name))
173
- );
174
- }
175
- if (alwaysPrompt.length > 0) {
176
- const alwaysPromptNames = alwaysPrompt.map((p) => p.name);
177
- const alwaysPromptResolutionOrder = getLocalResolutionOrderForParams(
178
- alwaysPromptNames,
179
- localResolvers
180
- );
181
- const orderedAlwaysPromptParams = alwaysPromptResolutionOrder.map((paramName) => alwaysPrompt.find((p) => p.name === paramName)).filter((param) => param !== void 0);
182
- for (const param of orderedAlwaysPromptParams) {
183
- try {
184
- const value = await this.resolveParameter(
185
- param,
186
- context,
187
- functionName
188
- );
189
- this.setNestedValue(resolvedParams, param.path, value);
190
- context.resolvedParams = resolvedParams;
191
- } catch (error) {
192
- if (this.isUserCancellation(error)) {
193
- console.log(chalk3.yellow("\n\nOperation cancelled by user"));
194
- throw new ZapierCliUserCancellationError();
121
+ const resolvedParams = { ...providedParams };
122
+ const context = {
123
+ sdk: sdk2,
124
+ currentParams: providedParams,
125
+ resolvedParams,
126
+ functionName
127
+ };
128
+ const localResolvers = this.getLocalResolvers(sdk2, functionName);
129
+ if (functionallyRequired.length > 0) {
130
+ const requiredParamNames = functionallyRequired.map((p) => p.name);
131
+ const requiredResolutionOrder = getLocalResolutionOrderForParams(
132
+ requiredParamNames,
133
+ localResolvers
134
+ );
135
+ const orderedRequiredParams = requiredResolutionOrder.map((paramName) => {
136
+ let param = functionallyRequired.find((p) => p.name === paramName);
137
+ if (!param) {
138
+ param = alwaysPrompt.find((p) => p.name === paramName);
139
+ }
140
+ if (!param) {
141
+ param = trulyOptional.find((p) => p.name === paramName);
142
+ }
143
+ return param;
144
+ }).filter((param) => param !== void 0);
145
+ for (const param of orderedRequiredParams) {
146
+ try {
147
+ const value = await this.resolveParameter(
148
+ param,
149
+ context,
150
+ functionName
151
+ );
152
+ this.setNestedValue(resolvedParams, param.path, value);
153
+ context.resolvedParams = resolvedParams;
154
+ } catch (error) {
155
+ if (this.isUserCancellation(error)) {
156
+ console.log(chalk3.yellow("\n\nOperation cancelled by user"));
157
+ throw new ZapierCliUserCancellationError();
158
+ }
159
+ throw error;
195
160
  }
196
- throw error;
197
161
  }
162
+ const resolvedParamNames = new Set(
163
+ orderedRequiredParams.map((p) => p.name)
164
+ );
165
+ alwaysPrompt.splice(
166
+ 0,
167
+ alwaysPrompt.length,
168
+ ...alwaysPrompt.filter((p) => !resolvedParamNames.has(p.name))
169
+ );
170
+ trulyOptional.splice(
171
+ 0,
172
+ trulyOptional.length,
173
+ ...trulyOptional.filter((p) => !resolvedParamNames.has(p.name))
174
+ );
198
175
  }
199
- }
200
- if (trulyOptional.length > 0) {
201
- const optionalNames = trulyOptional.map((p) => p.name).join(", ");
202
- const shouldResolveOptional = await inquirer.prompt([
203
- {
204
- type: "confirm",
205
- name: "resolveOptional",
206
- message: `Would you like to be prompted for optional parameters (${optionalNames})?`,
207
- default: false
208
- }
209
- ]);
210
- if (shouldResolveOptional.resolveOptional) {
211
- const optionalParamNames = trulyOptional.map((p) => p.name);
212
- const optionalResolutionOrder = getLocalResolutionOrderForParams(
213
- optionalParamNames,
176
+ if (alwaysPrompt.length > 0) {
177
+ const alwaysPromptNames = alwaysPrompt.map((p) => p.name);
178
+ const alwaysPromptResolutionOrder = getLocalResolutionOrderForParams(
179
+ alwaysPromptNames,
214
180
  localResolvers
215
181
  );
216
- const orderedOptionalParams = optionalResolutionOrder.map((paramName) => trulyOptional.find((p) => p.name === paramName)).filter((param) => param !== void 0);
217
- for (const param of orderedOptionalParams) {
182
+ const orderedAlwaysPromptParams = alwaysPromptResolutionOrder.map((paramName) => alwaysPrompt.find((p) => p.name === paramName)).filter((param) => param !== void 0);
183
+ for (const param of orderedAlwaysPromptParams) {
218
184
  try {
219
185
  const value = await this.resolveParameter(
220
186
  param,
@@ -232,15 +198,53 @@ var SchemaParameterResolver = class {
232
198
  }
233
199
  }
234
200
  }
235
- }
236
- const finalResult = schema.safeParse(resolvedParams);
237
- if (!finalResult.success) {
238
- console.error(
239
- chalk3.red("\u274C Parameter validation failed after resolution:")
240
- );
241
- throw finalResult.error;
242
- }
243
- return finalResult.data;
201
+ if (trulyOptional.length > 0) {
202
+ const optionalNames = trulyOptional.map((p) => p.name).join(", ");
203
+ const shouldResolveOptional = await inquirer.prompt([
204
+ {
205
+ type: "confirm",
206
+ name: "resolveOptional",
207
+ message: `Would you like to be prompted for optional parameters (${optionalNames})?`,
208
+ default: false
209
+ }
210
+ ]);
211
+ if (shouldResolveOptional.resolveOptional) {
212
+ const optionalParamNames = trulyOptional.map((p) => p.name);
213
+ const optionalResolutionOrder = getLocalResolutionOrderForParams(
214
+ optionalParamNames,
215
+ localResolvers
216
+ );
217
+ const orderedOptionalParams = optionalResolutionOrder.map((paramName) => trulyOptional.find((p) => p.name === paramName)).filter(
218
+ (param) => param !== void 0
219
+ );
220
+ for (const param of orderedOptionalParams) {
221
+ try {
222
+ const value = await this.resolveParameter(
223
+ param,
224
+ context,
225
+ functionName
226
+ );
227
+ this.setNestedValue(resolvedParams, param.path, value);
228
+ context.resolvedParams = resolvedParams;
229
+ } catch (error) {
230
+ if (this.isUserCancellation(error)) {
231
+ console.log(chalk3.yellow("\n\nOperation cancelled by user"));
232
+ throw new ZapierCliUserCancellationError();
233
+ }
234
+ throw error;
235
+ }
236
+ }
237
+ }
238
+ }
239
+ const finalResult = schema.safeParse(resolvedParams);
240
+ if (!finalResult.success) {
241
+ console.error(
242
+ chalk3.red("\u274C Parameter validation failed after resolution:")
243
+ );
244
+ throw finalResult.error;
245
+ }
246
+ return finalResult.data;
247
+ });
244
248
  }
245
249
  extractParametersFromSchema(schema) {
246
250
  const parameters = [];
@@ -886,7 +890,7 @@ var SHARED_COMMAND_CLI_OPTIONS = [
886
890
 
887
891
  // package.json
888
892
  var package_default = {
889
- version: "0.34.10"};
893
+ version: "0.34.11"};
890
894
 
891
895
  // src/telemetry/builders.ts
892
896
  function createCliBaseEvent(context = {}) {
@@ -4162,7 +4166,7 @@ function createZapierCliSdk(options = {}) {
4162
4166
  // package.json with { type: 'json' }
4163
4167
  var package_default2 = {
4164
4168
  name: "@zapier/zapier-sdk-cli",
4165
- version: "0.34.10"};
4169
+ version: "0.34.11"};
4166
4170
  var ONE_DAY_MS = 24 * 60 * 60 * 1e3;
4167
4171
  var CACHE_RESET_INTERVAL_MS = (() => {
4168
4172
  const { ZAPIER_SDK_UPDATE_CHECK_INTERVAL_MS = `${ONE_DAY_MS}` } = process.env;
package/dist/index.cjs CHANGED
@@ -2507,7 +2507,7 @@ function createZapierCliSdk(options = {}) {
2507
2507
 
2508
2508
  // package.json
2509
2509
  var package_default = {
2510
- version: "0.34.10"};
2510
+ version: "0.34.11"};
2511
2511
 
2512
2512
  // src/telemetry/builders.ts
2513
2513
  function createCliBaseEvent(context = {}) {
package/dist/index.mjs CHANGED
@@ -2474,7 +2474,7 @@ function createZapierCliSdk(options = {}) {
2474
2474
 
2475
2475
  // package.json
2476
2476
  var package_default = {
2477
- version: "0.34.10"};
2477
+ version: "0.34.11"};
2478
2478
 
2479
2479
  // src/telemetry/builders.ts
2480
2480
  function createCliBaseEvent(context = {}) {