@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 +18 -0
- package/dist/cli.cjs +142 -137
- package/dist/cli.mjs +143 -138
- package/dist/index.cjs +5 -4
- package/dist/index.mjs +5 -4
- package/dist/package.json +1 -1
- package/dist/src/plugins/login/index.js +1 -3
- package/dist/src/utils/parameter-resolver.d.ts +1 -1
- package/dist/src/utils/parameter-resolver.js +144 -140
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +4 -4
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
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
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
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
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
|
-
|
|
177
|
-
|
|
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
|
|
180
|
-
})
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
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
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
);
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
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
|
-
|
|
238
|
-
|
|
239
|
-
|
|
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
|
|
254
|
-
for (const param of
|
|
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
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
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.
|
|
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.
|
|
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;
|