@zapier/zapier-sdk-cli 0.34.10 → 0.34.12

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,23 @@
1
1
  # @zapier/zapier-sdk-cli
2
2
 
3
+ ## 0.34.12
4
+
5
+ ### Patch Changes
6
+
7
+ - d9e0f1d: Fix user properties being overwritten by context merge in telemetry events
8
+ - Updated dependencies [d9e0f1d]
9
+ - @zapier/zapier-sdk@0.33.4
10
+ - @zapier/zapier-sdk-mcp@0.9.21
11
+
12
+ ## 0.34.11
13
+
14
+ ### Patch Changes
15
+
16
+ - f676852: Suppress resolver method calls from emitting telemetry events
17
+ - Updated dependencies [f676852]
18
+ - @zapier/zapier-sdk@0.33.3
19
+ - @zapier/zapier-sdk-mcp@0.9.20
20
+
3
21
  ## 0.34.10
4
22
 
5
23
  ### 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.12"};
927
931
 
928
932
  // src/telemetry/builders.ts
929
933
  function createCliBaseEvent(context = {}) {
@@ -2035,9 +2039,10 @@ var loginPlugin = ({
2035
2039
  const user = await cliLogin.getLoggedInUser();
2036
2040
  context.eventEmission.emit(
2037
2041
  "platform.sdk.ApplicationLifecycleEvent",
2038
- zapierSdk.buildApplicationLifecycleEvent({
2039
- lifecycle_event_type: "login_success"
2040
- })
2042
+ zapierSdk.buildApplicationLifecycleEvent(
2043
+ { lifecycle_event_type: "login_success" },
2044
+ { customuser_id: user.customUserId, account_id: user.accountId }
2045
+ )
2041
2046
  );
2042
2047
  console.log(`\u2705 Successfully logged in as ${user.email}`);
2043
2048
  };
@@ -4199,7 +4204,7 @@ function createZapierCliSdk(options = {}) {
4199
4204
  // package.json with { type: 'json' }
4200
4205
  var package_default2 = {
4201
4206
  name: "@zapier/zapier-sdk-cli",
4202
- version: "0.34.10"};
4207
+ version: "0.34.12"};
4203
4208
  var ONE_DAY_MS = 24 * 60 * 60 * 1e3;
4204
4209
  var CACHE_RESET_INTERVAL_MS = (() => {
4205
4210
  const { ZAPIER_SDK_UPDATE_CHECK_INTERVAL_MS = `${ONE_DAY_MS}` } = process.env;