@sendly/cli 3.37.0 → 3.38.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/README.md +178 -0
- package/dist/commands/business-upgrade/resubmit.js +3 -3
- package/dist/commands/business-upgrade/start.js +3 -3
- package/dist/commands/config/list.js +14 -2
- package/dist/commands/config/set.js +16 -3
- package/dist/commands/countries.js +2 -2
- package/dist/commands/credits/index.d.ts +1 -0
- package/dist/commands/credits/index.js +4 -0
- package/dist/commands/doctor.d.ts +12 -0
- package/dist/commands/doctor.js +51 -8
- package/dist/commands/enterprise/upload-verification-document.js +3 -3
- package/dist/commands/enterprise/verification/resubmit.js +2 -2
- package/dist/commands/enterprise/verification/submit.js +2 -2
- package/dist/commands/events/listen.js +3 -3
- package/dist/commands/numbers/buy.js +19 -4
- package/dist/commands/rcs/agents.d.ts +10 -0
- package/dist/commands/rcs/agents.js +89 -0
- package/dist/commands/rcs/capability.d.ts +12 -0
- package/dist/commands/rcs/capability.js +85 -0
- package/dist/commands/rcs/send.d.ts +21 -0
- package/dist/commands/rcs/send.js +240 -0
- package/dist/commands/send.d.ts +1 -0
- package/dist/commands/send.js +5 -2
- package/dist/commands/sms/batch.d.ts +1 -0
- package/dist/commands/sms/batch.js +11 -1
- package/dist/commands/sms/group.d.ts +1 -0
- package/dist/commands/sms/group.js +5 -2
- package/dist/commands/sms/schedule.d.ts +1 -0
- package/dist/commands/sms/schedule.js +5 -2
- package/dist/commands/sms/send.d.ts +1 -0
- package/dist/commands/sms/send.js +5 -2
- package/dist/commands/webhooks/listen.js +2 -2
- package/dist/commands/whatsapp/connect.d.ts +17 -0
- package/dist/commands/whatsapp/connect.js +166 -0
- package/dist/commands/whatsapp/profile/get.d.ts +13 -0
- package/dist/commands/whatsapp/profile/get.js +67 -0
- package/dist/commands/whatsapp/profile/update.d.ts +20 -0
- package/dist/commands/whatsapp/profile/update.js +109 -0
- package/dist/commands/whatsapp/send.d.ts +17 -0
- package/dist/commands/whatsapp/send.js +151 -0
- package/dist/commands/whatsapp/senders.d.ts +10 -0
- package/dist/commands/whatsapp/senders.js +74 -0
- package/dist/commands/whatsapp/status.d.ts +13 -0
- package/dist/commands/whatsapp/status.js +92 -0
- package/dist/commands/whatsapp/templates/create.d.ts +19 -0
- package/dist/commands/whatsapp/templates/create.js +205 -0
- package/dist/commands/whatsapp/templates/delete.d.ts +14 -0
- package/dist/commands/whatsapp/templates/delete.js +69 -0
- package/dist/commands/whatsapp/templates/list.d.ts +10 -0
- package/dist/commands/whatsapp/templates/list.js +77 -0
- package/dist/commands/whatsapp/templates/update.d.ts +18 -0
- package/dist/commands/whatsapp/templates/update.js +160 -0
- package/dist/commands/whoami.js +32 -6
- package/dist/hooks/command-not-found.js +46 -61
- package/dist/lib/api-client.d.ts +9 -1
- package/dist/lib/api-client.js +78 -9
- package/dist/lib/auth.js +10 -6
- package/dist/lib/base-command.js +9 -1
- package/dist/lib/config.d.ts +50 -1
- package/dist/lib/config.js +144 -7
- package/dist/lib/help.d.ts +10 -0
- package/dist/lib/help.js +23 -0
- package/dist/lib/onboarding.js +3 -3
- package/oclif.manifest.json +1735 -764
- package/package.json +8 -1
|
@@ -93,15 +93,27 @@ export default class NumbersBuy extends AuthenticatedCommand {
|
|
|
93
93
|
return;
|
|
94
94
|
}
|
|
95
95
|
// status === "provisioning"
|
|
96
|
+
const registrationRequired = response.registrationRequired === true;
|
|
96
97
|
if (isJsonMode()) {
|
|
97
|
-
// Wait for activation then emit the final number record
|
|
98
|
+
// Wait for activation then emit the final number record, preserving the
|
|
99
|
+
// registration signal so an automated caller knows the number can't send
|
|
100
|
+
// until it's assigned to a 10DLC campaign.
|
|
98
101
|
const active = await this.waitForActive(selected.phoneNumber);
|
|
99
|
-
json(active
|
|
102
|
+
json(active ? { ...active, registrationRequired } : response);
|
|
100
103
|
return;
|
|
101
104
|
}
|
|
102
105
|
info(`Order accepted for ${colors.code(selected.phoneNumber)} — provisioning...`);
|
|
103
106
|
const active = await this.waitForActive(selected.phoneNumber);
|
|
104
|
-
if (active) {
|
|
107
|
+
if (active && registrationRequired) {
|
|
108
|
+
success("Number is active — but not yet able to send", {
|
|
109
|
+
number: active.phoneNumber,
|
|
110
|
+
id: active.id,
|
|
111
|
+
country: active.countryCode,
|
|
112
|
+
type: active.phoneNumberType,
|
|
113
|
+
note: "A US local number must be assigned to a registered 10DLC campaign before it can send. Set one up with `sendly 10dlc`, then assign this number.",
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
else if (active) {
|
|
105
117
|
success("Number is active", {
|
|
106
118
|
number: active.phoneNumber,
|
|
107
119
|
id: active.id,
|
|
@@ -109,6 +121,9 @@ export default class NumbersBuy extends AuthenticatedCommand {
|
|
|
109
121
|
type: active.phoneNumberType,
|
|
110
122
|
});
|
|
111
123
|
}
|
|
124
|
+
else if (registrationRequired) {
|
|
125
|
+
warn("Number ordered. Once active it still can't send until it's assigned to a registered 10DLC campaign — set one up with `sendly 10dlc`, then check `sendly numbers list`.");
|
|
126
|
+
}
|
|
112
127
|
else {
|
|
113
128
|
warn("Number is still provisioning. It usually activates within a few minutes — check `sendly numbers list`.");
|
|
114
129
|
}
|
|
@@ -263,4 +278,4 @@ export default class NumbersBuy extends AuthenticatedCommand {
|
|
|
263
278
|
return undefined;
|
|
264
279
|
}
|
|
265
280
|
}
|
|
266
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL251bWJlcnMvYnV5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDcEMsT0FBTyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBQ3hCLE9BQU8sUUFBUSxNQUFNLFVBQVUsQ0FBQztBQUNoQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ25FLE9BQU8sRUFDTCxJQUFJLEVBQ0osT0FBTyxFQUNQLElBQUksRUFDSixJQUFJLEVBQ0osS0FBSyxFQUNMLE1BQU0sRUFDTixPQUFPLEVBQ1AsVUFBVSxHQUNYLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUF3RG5FLE1BQU0sb0JBQW9CLEdBQUcsSUFBSSxDQUFDLENBQUMsWUFBWTtBQUMvQyxNQUFNLG1CQUFtQixHQUFHLEdBQUcsQ0FBQyxDQUFDLGNBQWM7QUFDL0MsTUFBTSx1QkFBdUIsR0FBRyxJQUFJLENBQUMsQ0FBQyxZQUFZO0FBQ2xELE1BQU0sc0JBQXNCLEdBQUcsRUFBRSxDQUFDLENBQUMsYUFBYTtBQUVoRCxTQUFTLEtBQUssQ0FBQyxFQUFVO0lBQ3ZCLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUMzRCxDQUFDO0FBRUQsTUFBTSxDQUFDLE9BQU8sT0FBTyxVQUFXLFNBQVEsb0JBQW9CO0lBQzFELE1BQU0sQ0FBQyxXQUFXLEdBQ2hCLGdHQUFnRyxDQUFDO0lBRW5HLE1BQU0sQ0FBQyxRQUFRLEdBQUc7UUFDaEIsMERBQTBEO1FB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c0NvbnRlbnQiOlsiaW1wb3J0IHsgRmxhZ3MgfSBmcm9tIFwiQG9jbGlmL2NvcmVcIjtcbmltcG9ydCBvcGVuIGZyb20gXCJvcGVuXCI7XG5pbXBvcnQgaW5xdWlyZXIgZnJvbSBcImlucXVpcmVyXCI7XG5pbXBvcnQgeyBBdXRoZW50aWNhdGVkQ29tbWFuZCB9IGZyb20gXCIuLi8uLi9saWIvYmFzZS1jb21tYW5kLmpzXCI7XG5pbXBvcnQgeyBhcGlDbGllbnQsIE5vdEZvdW5kRXJyb3IgfSBmcm9tIFwiLi4vLi4vbGliL2FwaS1jbGllbnQuanNcIjtcbmltcG9ydCB7XG4gIGpzb24sXG4gIHN1Y2Nlc3MsXG4gIGluZm8sXG4gIHdhcm4sXG4gIGVycm9yLFxuICBjb2xvcnMsXG4gIHNwaW5uZXIsXG4gIGlzSnNvbk1vZGUsXG59IGZyb20gXCIuLi8uLi9saWIvb3V0cHV0LmpzXCI7XG5pbXBvcnQgeyBhdHRhY2hMb2dpbktleXByZXNzSGFuZGxlciB9IGZyb20gXCIuLi8uLi9saWIva2V5cHJlc3MuanNcIjtcblxuaW50ZXJmYWNlIEF2YWlsYWJsZU51bWJlciB7XG4gIHBob25lTnVtYmVyOiBzdHJpbmc7XG4gIGNvdW50cnk6IHN0cmluZztcbiAgbnVtYmVyVHlwZTogc3RyaW5nO1xuICBtb250aGx5Q29zdDogc3RyaW5nO1xuICBjdXJyZW5jeTogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgU2VhcmNoTnVtYmVyc1Jlc3BvbnNlIHtcbiAgbnVtYmVyczogQXZhaWxhYmxlTnVtYmVyW107XG59XG5cbmludGVyZmFjZSBCdXlBY3Rpb24ge1xuICB1cmw6IHN0cmluZztcbiAgLy8gYWN0aW9uQ29kZSAoMzItaGV4KSBpZGVudGlmaWVzIHRoZSBhY3Rpb24g4oCUIHVzZWQgdG8gUE9MTCBhbmQgdG8gUkUtQlVZLlxuICBhY3Rpb25Db2RlOiBzdHJpbmc7XG4gIC8vIGNvZGUgKDgtY2hhciB1c2VyQ29kZSkgaXMgc2hvd24gdG8gdGhlIGh1bWFuIHRvIHR5cGUgb24gdGhlIGhvc3RlZCBwYWdlXG4gIC8vIHRvIHByb3ZlIHRlcm1pbmFsIGFjY2Vzcy4gRElTUExBWSBvbmx5IOKAlCBuZXZlciB1c2VkIGFzIGFjdGlvbkNvZGUuXG4gIGNvZGU6IHN0cmluZztcbiAgZXhwaXJlc0F0OiBudW1iZXI7XG59XG5cbmludGVyZmFjZSBPd25lZE51bWJlciB7XG4gIGlkOiBzdHJpbmc7XG4gIHBob25lTnVtYmVyOiBzdHJpbmc7XG4gIHN0YXR1czogc3RyaW5nO1xuICBzb3VyY2U6IHN0cmluZztcbiAgY291bnRyeUNvZGU6IHN0cmluZztcbiAgcGhvbmVOdW1iZXJUeXBlOiBzdHJpbmc7XG4gIG1vbnRobHlDb3N0Q2VudHM6IG51bWJlcjtcbn1cblxuaW50ZXJmYWNlIEJ1eVJlc3BvbnNlIHtcbiAgc3RhdHVzOlxuICAgIHwgXCJwcm92aXNpb25pbmdcIlxuICAgIHwgXCJkb2N1bWVudHNfcmVxdWlyZWRcIlxuICAgIHwgXCJ1bmRlcl9yZXZpZXdcIlxuICAgIHwgXCJwYXltZW50X3JlcXVpcmVkXCI7XG4gIG51bWJlcj86IE93bmVkTnVtYmVyO1xuICByZXF1aXJlbWVudHM/OiB1bmtub3duO1xuICBhY3Rpb24/OiBCdXlBY3Rpb247XG59XG5cbmludGVyZmFjZSBMaXN0TnVtYmVyc1Jlc3BvbnNlIHtcbiAgbnVtYmVyczogT3duZWROdW1iZXJbXTtcbn1cblxuaW50ZXJmYWNlIEFjdGlvblN0YXR1c1Jlc3BvbnNlIHtcbiAgc3RhdHVzOiBcInBlbmRpbmdcIiB8IFwiYXV0aG9yaXplZFwiIHwgXCJjb21wbGV0ZWRcIiB8IFwiZXhwaXJlZFwiO1xuICBhY3Rpb25UeXBlOiBzdHJpbmc7XG4gIHJlc3VsdD86IHVua25vd247XG4gIGV4cGlyZXNBdDogc3RyaW5nO1xufVxuXG5jb25zdCBBQ1RJT05fUE9MTF9JTlRFUlZBTCA9IDIwMDA7IC8vIDIgc2Vjb25kc1xuY29uc3QgQUNUSU9OX01BWF9BVFRFTVBUUyA9IDYwMDsgLy8gfjIwIG1pbnV0ZXNcbmNvbnN0IFBST1ZJU0lPTl9QT0xMX0lOVEVSVkFMID0gMzAwMDsgLy8gMyBzZWNvbmRzXG5jb25zdCBQUk9WSVNJT05fTUFYX0FUVEVNUFRTID0gNjA7IC8vIH4zIG1pbnV0ZXNcblxuZnVuY3Rpb24gc2xlZXAobXM6IG51bWJlcik6IFByb21pc2U8dm9pZD4ge1xuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgbXMpKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTnVtYmVyc0J1eSBleHRlbmRzIEF1dGhlbnRpY2F0ZWRDb21tYW5kIHtcbiAgc3RhdGljIGRlc2NyaXB0aW9uID1cbiAgICBcIkJ1eSBhIHBob25lIG51bWJlci4gSGFuZGxlcyBkb2N1bWVudC9wYXltZW50IHN0ZXBzIGludGVyYWN0aXZlbHkgd2hlbiBhIGNvdW50cnkgcmVxdWlyZXMgdGhlbS5cIjtcblxuICBzdGF0aWMgZXhhbXBsZXMgPSBbXG4gICAgXCI8JT0gY29uZmlnLmJpbiAlPiBudW1iZXJzIGJ1eSAtLWNvdW50cnkgR0IgLS10eXBlIG1vYmlsZVwiLFxuICAgIFwiPCU9IGNvbmZpZy5iaW4gJT4gbnVtYmVycyBidXkgLS1jb3VudHJ5IFVTIC0tdHlwZSBsb2NhbCAtLW51bWJlciArMTU1NTEyMzQ1NjdcIixcbiAgICBcIjwlPSBjb25maWcuYmluICU+IG51bWJlcnMgYnV5IC0tY291bnRyeSBHQiAtLXR5cGUgbW9iaWxlIC0tanNvblwiLFxuICBdO1xuXG4gIHN0YXRpYyBmbGFncyA9IHtcbiAgICAuLi5BdXRoZW50aWNhdGVkQ29tbWFuZC5iYXNlRmxhZ3MsXG4gICAgY291bnRyeTogRmxhZ3Muc3RyaW5nKHtcbiAgICAgIGNoYXI6IFwiY1wiLFxuICAgICAgZGVzY3JpcHRpb246IFwiSVNPIGNvdW50cnkgY29kZSAoZS5nLiBHQiwgVVMpXCIsXG4gICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICB9KSxcbiAgICB0eXBlOiBGbGFncy5zdHJpbmcoe1xuICAgICAgY2hhcjogXCJ0XCIsXG4gICAgICBkZXNjcmlwdGlvbjogXCJOdW1iZXIgdHlwZSAoZS5nLiBtb2JpbGUsIGxvY2FsLCB0b2xsLWZyZWUpXCIsXG4gICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICB9KSxcbiAgICBudW1iZXI6IEZsYWdzLnN0cmluZyh7XG4gICAgICBjaGFyOiBcIm5cIixcbiAgICAgIGRlc2NyaXB0aW9uOiBcIlNwZWNpZmljIG51bWJlciB0byBidXkgaW4gRS4xNjQgZm9ybWF0IChza2lwcyBzZWxlY3Rpb24pXCIsXG4gICAgfSksXG4gIH07XG5cbiAgYXN5bmMgcnVuKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHsgZmxhZ3MgfSA9IGF3YWl0IHRoaXMucGFyc2UoTnVtYmVyc0J1eSk7XG5cbiAgICBjb25zdCBzZWxlY3RlZCA9IGF3YWl0IHRoaXMucmVzb2x2ZU51bWJlcihmbGFncyk7XG4gICAgaWYgKCFzZWxlY3RlZCkgcmV0dXJuO1xuXG4gICAgLy8gVGhlIGJ1eSBib2R5IGlzIHJldXNlZCB2ZXJiYXRpbSBhY3Jvc3MgZXZlcnkgcmUtUE9TVDsgb25seSBhY3Rpb25Db2RlXG4gICAgLy8gaXMgYWRkZWQgb25jZSBhIGhvc3RlZCBhY3Rpb24gKGRvY3MvcGF5bWVudCkgaGFzIGNvbXBsZXRlZC5cbiAgICBjb25zdCBidXlCb2R5OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHtcbiAgICAgIHBob25lTnVtYmVyOiBzZWxlY3RlZC5waG9uZU51bWJlcixcbiAgICAgIGNvdW50cnlDb2RlOiBmbGFncy5jb3VudHJ5LFxuICAgICAgcGhvbmVOdW1iZXJUeXBlOiBmbGFncy50eXBlLFxuICAgICAgbW9udGhseUNvc3Q6IHNlbGVjdGVkLm1vbnRobHlDb3N0LFxuICAgIH07XG5cbiAgICBsZXQgcmVzcG9uc2UgPSBhd2FpdCBhcGlDbGllbnQucG9zdDxCdXlSZXNwb25zZT4oXG4gICAgICBcIi9hcGkvdjEvbnVtYmVycy9idXlcIixcbiAgICAgIGJ1eUJvZHksXG4gICAgKTtcblxuICAgIC8vIERyaXZlIHRoZSBhY3Rpb24gbG9vcCB1bnRpbCB0aGUgY2FycmllciBhY2NlcHRzIHRoZSBvcmRlciAocHJvdmlzaW9uaW5nKS5cbiAgICB3aGlsZSAoXG4gICAgICByZXNwb25zZS5zdGF0dXMgPT09IFwiZG9jdW1lbnRzX3JlcXVpcmVkXCIgfHxcbiAgICAgIHJlc3BvbnNlLnN0YXR1cyA9PT0gXCJwYXltZW50X3JlcXVpcmVkXCJcbiAgICApIHtcbiAgICAgIGNvbnN0IGFjdGlvbiA9IHJlc3BvbnNlLmFjdGlvbjtcbiAgICAgIGlmICghYWN0aW9uKSB7XG4gICAgICAgIC8vIEJhY2tlbmQgc2F5cyBkb2NzL3BheW1lbnQgcmVxdWlyZWQgYnV0IGdhdmUgdXMgbm93aGVyZSB0byBzZW5kIHRoZVxuICAgICAgICAvLyB1c2VyIOKAlCBub3RoaW5nIHRoZSBDTEkgY2FuIGRvLlxuICAgICAgICBpZiAoaXNKc29uTW9kZSgpKSB7XG4gICAgICAgICAganNvbihyZXNwb25zZSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGVycm9yKFxuICAgICAgICAgIGBUaGlzIG51bWJlciBuZWVkcyAke3Jlc3BvbnNlLnN0YXR1cyA9PT0gXCJwYXltZW50X3JlcXVpcmVkXCIgPyBcInBheW1lbnRcIiA6IFwiZG9jdW1lbnRzXCJ9IGJ1dCBubyBhY3Rpb24gbGluayB3YXMgcmV0dXJuZWQuYCxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBoaW50OiBcIlRyeSBhZ2Fpbiwgb3IgY29tcGxldGUgdGhpcyBudW1iZXIgZnJvbSB0aGUgU2VuZGx5IGRhc2hib2FyZC5cIixcbiAgICAgICAgICB9LFxuICAgICAgICApO1xuICAgICAgICB0aGlzLmV4aXQoMSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChpc0pzb25Nb2RlKCkpIHtcbiAgICAgICAgLy8gTm9uLWludGVyYWN0aXZlOiBzdXJmYWNlIHRoZSBhY3Rpb24gc28gdGhlIGNhbGxlciBjYW4gZHJpdmUgaXQuXG4gICAgICAgIGpzb24ocmVzcG9uc2UpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGNvbXBsZXRlZCA9IGF3YWl0IHRoaXMucnVuSG9zdGVkQWN0aW9uKHJlc3BvbnNlLnN0YXR1cywgYWN0aW9uKTtcbiAgICAgIGlmICghY29tcGxldGVkKSByZXR1cm47IC8vIGV4cGlyZWQgLyBjYW5jZWxsZWQg4oCUIGFscmVhZHkgbWVzc2FnZWRcblxuICAgICAgLy8gUmUtYnV5IHdpdGggdGhlIGFjdGlvbiBpZGVudGlmaWVyIChhY3Rpb25Db2RlKSwgTk9UIHRoZSBkaXNwbGF5IHVzZXJDb2RlLlxuICAgICAgYnV5Qm9keS5hY3Rpb25Db2RlID0gYWN0aW9uLmFjdGlvbkNvZGU7XG4gICAgICByZXNwb25zZSA9IGF3YWl0IGFwaUNsaWVudC5wb3N0PEJ1eVJlc3BvbnNlPihcbiAgICAgICAgXCIvYXBpL3YxL251bWJlcnMvYnV5XCIsXG4gICAgICAgIGJ1eUJvZHksXG4gICAgICApO1xuICAgIH1cblxuICAgIC8vIERvY3VtZW50LXJlcXVpcmVkIGNvdW50cnk6IGRldGFpbHMgc3VibWl0dGVkLCBudW1iZXIgcmVzZXJ2ZWQgKyB1bmRlclxuICAgIC8vIHJldmlldy4gTm8gY2FycmllciBvcmRlciBpcyBwbGFjZWQgdW50aWwgb3VyIHRlYW0gdmVyaWZpZXMgKyByZWdpc3RlcnNcbiAgICAvLyBpdCwgc28gdGhlcmUncyBub3RoaW5nIHRvIHBvbGwgZm9yIGhlcmUuXG4gICAgaWYgKHJlc3BvbnNlLnN0YXR1cyA9PT0gXCJ1bmRlcl9yZXZpZXdcIikge1xuICAgICAgaWYgKGlzSnNvbk1vZGUoKSkge1xuICAgICAgICBqc29uKHJlc3BvbnNlKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgc3VjY2VzcyhcIk51bWJlciByZXNlcnZlZCDigJQgeW91ciBkZXRhaWxzIGFyZSB1bmRlciByZXZpZXdcIiwge1xuICAgICAgICBudW1iZXI6IHJlc3BvbnNlLm51bWJlcj8ucGhvbmVOdW1iZXIsXG4gICAgICAgIG5vdGU6IFwiV2UgdmVyaWZ5IHlvdXIgZG9jdW1lbnRzIGFuZCByZWdpc3RlciB0aGUgbnVtYmVyLCB1c3VhbGx5IHdpdGhpbiBhIGZldyBidXNpbmVzcyBkYXlzLiBJdCBjYW4ndCBzZW5kIHVudGlsIGl0J3MgYWN0aXZlIOKAlCBjaGVjayBgc2VuZGx5IG51bWJlcnMgbGlzdGAuXCIsXG4gICAgICB9KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBzdGF0dXMgPT09IFwicHJvdmlzaW9uaW5nXCJcbiAgICBpZiAoaXNKc29uTW9kZSgpKSB7XG4gICAgICAvLyBXYWl0IGZvciBhY3RpdmF0aW9uIHRoZW4gZW1pdCB0aGUgZmluYWwgbnVtYmVyIHJlY29yZC5cbiAgICAgIGNvbnN0IGFjdGl2ZSA9IGF3YWl0IHRoaXMud2FpdEZvckFjdGl2ZShzZWxlY3RlZC5waG9uZU51bWJlcik7XG4gICAgICBqc29uKGFjdGl2ZSA/PyByZXNwb25zZSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaW5mbyhgT3JkZXIgYWNjZXB0ZWQgZm9yICR7Y29sb3JzLmNvZGUoc2VsZWN0ZWQucGhvbmVOdW1iZXIpfSDigJQgcHJvdmlzaW9uaW5nLi4uYCk7XG4gICAgY29uc3QgYWN0aXZlID0gYXdhaXQgdGhpcy53YWl0Rm9yQWN0aXZlKHNlbGVjdGVkLnBob25lTnVtYmVyKTtcblxuICAgIGlmIChhY3RpdmUpIHtcbiAgICAgIHN1Y2Nlc3MoXCJOdW1iZXIgaXMgYWN0aXZlXCIsIHtcbiAgICAgICAgbnVtYmVyOiBhY3RpdmUucGhvbmVOdW1iZXIsXG4gICAgICAgIGlkOiBhY3RpdmUuaWQsXG4gICAgICAgIGNvdW50cnk6IGFjdGl2ZS5jb3VudHJ5Q29kZSxcbiAgICAgICAgdHlwZTogYWN0aXZlLnBob25lTnVtYmVyVHlwZSxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB3YXJuKFxuICAgICAgICBcIk51bWJlciBpcyBzdGlsbCBwcm92aXNpb25pbmcuIEl0IHVzdWFsbHkgYWN0aXZhdGVzIHdpdGhpbiBhIGZldyBtaW51dGVzIOKAlCBjaGVjayBgc2VuZGx5IG51bWJlcnMgbGlzdGAuXCIsXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNvbHZlIHdoaWNoIG51bWJlciB0byBidXkuIElmIC0tbnVtYmVyIGlzIGdpdmVuIHdlIHRydXN0IGl0IChhbmRcbiAgICogc3RpbGwgbmVlZCBpdHMgbW9udGhseUNvc3QsIHNvIHdlIGxvb2sgaXQgdXAgYW1vbmcgYXZhaWxhYmxlIG51bWJlcnMpLlxuICAgKiBPdGhlcndpc2Ugd2Ugc2VhcmNoIGFuZCBwcm9tcHQgdGhlIHVzZXIgdG8gcGljayBvbmUuXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIHJlc29sdmVOdW1iZXIoZmxhZ3M6IHtcbiAgICBjb3VudHJ5OiBzdHJpbmc7XG4gICAgdHlwZTogc3RyaW5nO1xuICAgIG51bWJlcj86IHN0cmluZztcbiAgfSk6IFByb21pc2U8QXZhaWxhYmxlTnVtYmVyIHwgdW5kZWZpbmVkPiB7XG4gICAgY29uc3Qgc3BpbiA9IHNwaW5uZXIoXCJGaW5kaW5nIGF2YWlsYWJsZSBudW1iZXJzLi4uXCIpO1xuICAgIHNwaW4uc3RhcnQoKTtcblxuICAgIGxldCBhdmFpbGFibGU6IEF2YWlsYWJsZU51bWJlcltdO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBzZWFyY2ggPSBhd2FpdCBhcGlDbGllbnQuZ2V0PFNlYXJjaE51bWJlcnNSZXNwb25zZT4oXG4gICAgICAgIFwiL2FwaS92MS9udW1iZXJzL2F2YWlsYWJsZVwiLFxuICAgICAgICB7XG4gICAgICAgICAgY291bnRyeTogZmxhZ3MuY291bnRyeSxcbiAgICAgICAgICB0eXBlOiBmbGFncy50eXBlLFxuICAgICAgICAgIC4uLihmbGFncy5udW1iZXIgJiYgeyBjb250YWluczogZmxhZ3MubnVtYmVyLnJlcGxhY2UoL15cXCsvLCBcIlwiKSB9KSxcbiAgICAgICAgfSxcbiAgICAgICk7XG4gICAgICBhdmFpbGFibGUgPSBzZWFyY2gubnVtYmVycyA/PyBbXTtcbiAgICAgIHNwaW4uc3RvcCgpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgc3Bpbi5mYWlsKFwiQ291bGQgbm90IGxvYWQgYXZhaWxhYmxlIG51bWJlcnNcIik7XG4gICAgICB0aHJvdyBlcnI7XG4gICAgfVxuXG4gICAgaWYgKGZsYWdzLm51bWJlcikge1xuICAgICAgY29uc3QgbWF0Y2ggPSBhdmFpbGFibGUuZmluZCgobikgPT4gbi5waG9uZU51bWJlciA9PT0gZmxhZ3MubnVtYmVyKTtcbiAgICAgIGlmICghbWF0Y2gpIHtcbiAgICAgICAgZXJyb3IoYCR7ZmxhZ3MubnVtYmVyfSBpcyBub3QgYXZhaWxhYmxlIGZvciBwdXJjaGFzZS5gLCB7XG4gICAgICAgICAgaGludDogYFJ1bjogc2VuZGx5IG51bWJlcnMgc2VhcmNoIC0tY291bnRyeSAke2ZsYWdzLmNvdW50cnl9IC0tdHlwZSAke2ZsYWdzLnR5cGV9YCxcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuZXhpdCgxKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBtYXRjaDtcbiAgICB9XG5cbiAgICBpZiAoYXZhaWxhYmxlLmxlbmd0aCA9PT0gMCkge1xuICAgICAgaW5mbyhgTm8gYXZhaWxhYmxlIG51bWJlcnMgZm91bmQgZm9yICR7ZmxhZ3MuY291bnRyeX0gKCR7ZmxhZ3MudHlwZX0pLmApO1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvLyBOb24taW50ZXJhY3RpdmUgKG5vIFRUWSAvIGpzb24pOiB0YWtlIHRoZSBmaXJzdCByZXN1bHQuXG4gICAgaWYgKGlzSnNvbk1vZGUoKSB8fCAhcHJvY2Vzcy5zdGRvdXQuaXNUVFkpIHtcbiAgICAgIHJldHVybiBhdmFpbGFibGVbMF07XG4gICAgfVxuXG4gICAgY29uc3QgeyBjaG9pY2UgfSA9IGF3YWl0IGlucXVpcmVyLnByb21wdChbXG4gICAgICB7XG4gICAgICAgIHR5cGU6IFwibGlzdFwiLFxuICAgICAgICBuYW1lOiBcImNob2ljZVwiLFxuICAgICAgICBtZXNzYWdlOiBgQ2hvb3NlIGEgbnVtYmVyIHRvIGJ1eSAoJHtmbGFncy5jb3VudHJ5fSwgJHtmbGFncy50eXBlfSk6YCxcbiAgICAgICAgY2hvaWNlczogYXZhaWxhYmxlLnNsaWNlKDAsIDI1KS5tYXAoKG4pID0+ICh7XG4gICAgICAgICAgbmFtZTogYCR7bi5waG9uZU51bWJlcn0gIOKAlCAgJHtuLm1vbnRobHlDb3N0fSAke24uY3VycmVuY3l9L21vYCxcbiAgICAgICAgICB2YWx1ZTogbi5waG9uZU51bWJlcixcbiAgICAgICAgfSkpLFxuICAgICAgfSxcbiAgICBdKTtcblxuICAgIHJldHVybiBhdmFpbGFibGUuZmluZCgobikgPT4gbi5waG9uZU51bWJlciA9PT0gY2hvaWNlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEcml2ZSBhIGhvc3RlZCBkb2N1bWVudC11cGxvYWQgLyBwYXltZW50IGFjdGlvbjogcHJpbnQgdGhlIGxpbmsgKyBjb2RlLFxuICAgKiBhdXRvLW9wZW4gaXQsIHdpcmUgcHJlc3MtW2NdLXRvLWNvcHkgLyBbcV0gdG8gY2FuY2VsLCB0aGVuIHBvbGwgdW50aWxcbiAgICogdGhlIGFjdGlvbiBjb21wbGV0ZXMgKHJlc29sdmVzIHRydWUpIG9yIGV4cGlyZXMgKHJlc29sdmVzIGZhbHNlKS5cbiAgICovXG4gIHByaXZhdGUgYXN5bmMgcnVuSG9zdGVkQWN0aW9uKFxuICAgIGtpbmQ6IFwiZG9jdW1lbnRzX3JlcXVpcmVkXCIgfCBcInBheW1lbnRfcmVxdWlyZWRcIixcbiAgICBhY3Rpb246IEJ1eUFjdGlvbixcbiAgKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgY29uc3QgbGFiZWwgPVxuICAgICAga2luZCA9PT0gXCJwYXltZW50X3JlcXVpcmVkXCIgPyBcIlBheW1lbnQgcmVxdWlyZWRcIiA6IFwiRG9jdW1lbnRzIHJlcXVpcmVkXCI7XG5cbiAgICBjb25zb2xlLmxvZygpO1xuICAgIGNvbnNvbGUubG9nKGNvbG9ycy5ib2xkKGxhYmVsKSk7XG4gICAgY29uc29sZS5sb2coKTtcbiAgICBjb25zb2xlLmxvZyhcbiAgICAgIGtpbmQgPT09IFwicGF5bWVudF9yZXF1aXJlZFwiXG4gICAgICAgID8gXCJUaGlzIG51bWJlciBuZWVkcyBhIHBheW1lbnQgdG8gY29tcGxldGUuIE9wZW4gdGhpcyBzZWN1cmUgcGFnZTpcIlxuICAgICAgICA6IFwiVGhpcyBudW1iZXIgbmVlZHMgZG9jdW1lbnRzIGJlZm9yZSBpdCBjYW4gYmUgYWN0aXZhdGVkLiBPcGVuIHRoaXMgc2VjdXJlIHBhZ2U6XCIsXG4gICAgKTtcbiAgICBjb25zb2xlLmxvZyhjb2xvcnMucHJpbWFyeShgICAke2FjdGlvbi51cmx9YCkpO1xuICAgIGNvbnNvbGUubG9nKCk7XG4gICAgY29uc29sZS5sb2coXCJDb25maXJtYXRpb24gY29kZSAoc2hvd24gc28geW91IGNhbiB2ZXJpZnkgdGhpcyBpcyB5b3VyIHNlc3Npb24pOlwiKTtcbiAgICBjb25zb2xlLmxvZyhjb2xvcnMuYm9sZChjb2xvcnMucHJpbWFyeShgICAke2FjdGlvbi5jb2RlfWApKSk7XG4gICAgY29uc29sZS5sb2coKTtcblxuICAgIHRyeSB7XG4gICAgICBhd2FpdCBvcGVuKGFjdGlvbi51cmwpO1xuICAgICAgY29uc29sZS5sb2coY29sb3JzLmRpbShcIkJyb3dzZXIgb3BlbmVkIGF1dG9tYXRpY2FsbHlcIikpO1xuICAgIH0gY2F0Y2gge1xuICAgICAgY29uc29sZS5sb2coY29sb3JzLmRpbShcIlBsZWFzZSBvcGVuIHRoZSBVUkwgbWFudWFsbHlcIikpO1xuICAgIH1cblxuICAgIGNvbnN0IGtleXByZXNzQ2xlYW51cCA9IGF0dGFjaExvZ2luS2V5cHJlc3NIYW5kbGVyKGFjdGlvbi51cmwpO1xuICAgIGNvbnNvbGUubG9nKCk7XG5cbiAgICBjb25zdCBzcGluID0gc3Bpbm5lcihcIldhaXRpbmcgZm9yIHlvdSB0byBmaW5pc2ggb24gdGhlIHNlY3VyZSBwYWdlLi4uXCIpO1xuICAgIHNwaW4uc3RhcnQoKTtcblxuICAgIGxldCBhdHRlbXB0cyA9IDA7XG4gICAgd2hpbGUgKGF0dGVtcHRzIDwgQUNUSU9OX01BWF9BVFRFTVBUUykge1xuICAgICAgYXdhaXQgc2xlZXAoQUNUSU9OX1BPTExfSU5URVJWQUwpO1xuICAgICAgYXR0ZW1wdHMrKztcblxuICAgICAgbGV0IHN0YXR1czogQWN0aW9uU3RhdHVzUmVzcG9uc2U7XG4gICAgICB0cnkge1xuICAgICAgICBzdGF0dXMgPSBhd2FpdCBhcGlDbGllbnQuZ2V0PEFjdGlvblN0YXR1c1Jlc3BvbnNlPihcbiAgICAgICAgICBgL2FwaS9jbGkvYWN0aW9uLyR7ZW5jb2RlVVJJQ29tcG9uZW50KGFjdGlvbi5hY3Rpb25Db2RlKX1gLFxuICAgICAgICApO1xuICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgIGlmIChlcnIgaW5zdGFuY2VvZiBOb3RGb3VuZEVycm9yKSB7XG4gICAgICAgICAgLy8gVGhlIGFjdGlvbiBpcyBnb25lIChleHBpcmVkL2NsZWFuZWQgdXApIOKAlCB0ZXJtaW5hbCwgbm90IHRyYW5zaWVudC5cbiAgICAgICAgICBzcGluLmZhaWwoXCJUaGlzIHN0ZXAgZXhwaXJlZFwiKTtcbiAgICAgICAgICBrZXlwcmVzc0NsZWFudXAoKTtcbiAgICAgICAgICB3YXJuKFxuICAgICAgICAgICAgXCJUaGUgc2VjdXJlIHBhZ2UgZXhwaXJlZCBiZWZvcmUgaXQgd2FzIGNvbXBsZXRlZC4gUmUtcnVuIGBzZW5kbHkgbnVtYmVycyBidXlgIHRvIHN0YXJ0IG92ZXIuXCIsXG4gICAgICAgICAgKTtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgLy8gVHJhbnNpZW50IGVycm9yIOKAlCBrZWVwIHBvbGxpbmcuXG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBpZiAoc3RhdHVzLnN0YXR1cyA9PT0gXCJjb21wbGV0ZWRcIikge1xuICAgICAgICBzcGluLnN1Y2NlZWQoXCJDb21wbGV0ZWRcIik7XG4gICAgICAgIGtleXByZXNzQ2xlYW51cCgpO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKHN0YXR1cy5zdGF0dXMgPT09IFwiZXhwaXJlZFwiKSB7XG4gICAgICAgIHNwaW4uZmFpbChcIlRoaXMgc3RlcCBleHBpcmVkXCIpO1xuICAgICAgICBrZXlwcmVzc0NsZWFudXAoKTtcbiAgICAgICAgd2FybihcbiAgICAgICAgICBcIlRoZSBzZWN1cmUgcGFnZSBleHBpcmVkIGJlZm9yZSBpdCB3YXMgY29tcGxldGVkLiBSZS1ydW4gYHNlbmRseSBudW1iZXJzIGJ1eWAgdG8gc3RhcnQgb3Zlci5cIixcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgLy8gcGVuZGluZyAvIGF1dGhvcml6ZWQg4oCUIGtlZXAgcG9sbGluZ1xuICAgIH1cblxuICAgIHNwaW4uZmFpbChcIlRpbWVkIG91dCB3YWl0aW5nIGZvciBjb21wbGV0aW9uXCIpO1xuICAgIGtleXByZXNzQ2xlYW51cCgpO1xuICAgIHdhcm4oXG4gICAgICBcIldlIHN0b3BwZWQgd2FpdGluZy4gSWYgeW91IGZpbmlzaGVkIG9uIHRoZSBwYWdlLCByZS1ydW4gYHNlbmRseSBudW1iZXJzIGJ1eWAgYW5kIHdlJ2xsIHBpY2sgdXAgd2hlcmUgeW91IGxlZnQgb2ZmLlwiLFxuICAgICk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gICAqIFBvbGwgdGhlIG93bmVkLW51bWJlcnMgbGlzdCB1bnRpbCB0aGUganVzdC1vcmRlcmVkIG51bWJlciByZXBvcnRzXG4gICAqIGBhY3RpdmVgLiBSZXR1cm5zIHRoZSBhY3RpdmUgcmVjb3JkLCBvciB1bmRlZmluZWQgaWYgaXQgaGFzbid0XG4gICAqIGFjdGl2YXRlZCB3aXRoaW4gdGhlIHBvbGxpbmcgd2luZG93LlxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyB3YWl0Rm9yQWN0aXZlKFxuICAgIHBob25lTnVtYmVyOiBzdHJpbmcsXG4gICk6IFByb21pc2U8T3duZWROdW1iZXIgfCB1bmRlZmluZWQ+IHtcbiAgICBjb25zdCBzcGluID0gc3Bpbm5lcihcIkFjdGl2YXRpbmcgbnVtYmVyLi4uXCIpO1xuICAgIHNwaW4uc3RhcnQoKTtcblxuICAgIGxldCBhdHRlbXB0cyA9IDA7XG4gICAgd2hpbGUgKGF0dGVtcHRzIDwgUFJPVklTSU9OX01BWF9BVFRFTVBUUykge1xuICAgICAgbGV0IGxpc3Q6IExpc3ROdW1iZXJzUmVzcG9uc2U7XG4gICAgICB0cnkge1xuICAgICAgICBsaXN0ID0gYXdhaXQgYXBpQ2xpZW50LmdldDxMaXN0TnVtYmVyc1Jlc3BvbnNlPihcIi9hcGkvdjEvbnVtYmVyc1wiKTtcbiAgICAgIH0gY2F0Y2gge1xuICAgICAgICBhd2FpdCBzbGVlcChQUk9WSVNJT05fUE9MTF9JTlRFUlZBTCk7XG4gICAgICAgIGF0dGVtcHRzKys7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBmb3VuZCA9IChsaXN0Lm51bWJlcnMgPz8gW10pLmZpbmQoXG4gICAgICAgIChuKSA9PiBuLnBob25lTnVtYmVyID09PSBwaG9uZU51bWJlcixcbiAgICAgICk7XG4gICAgICBpZiAoZm91bmQgJiYgZm91bmQuc3RhdHVzID09PSBcImFjdGl2ZVwiKSB7XG4gICAgICAgIHNwaW4uc3VjY2VlZChcIkFjdGl2ZVwiKTtcbiAgICAgICAgcmV0dXJuIGZvdW5kO1xuICAgICAgfVxuXG4gICAgICBhd2FpdCBzbGVlcChQUk9WSVNJT05fUE9MTF9JTlRFUlZBTCk7XG4gICAgICBhdHRlbXB0cysrO1xuICAgIH1cblxuICAgIHNwaW4uc3RvcCgpO1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbn1cbiJdfQ==
|
|
281
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL251bWJlcnMvYnV5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDcEMsT0FBTyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBQ3hCLE9BQU8sUUFBUSxNQUFNLFVBQVUsQ0FBQztBQUNoQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ25FLE9BQU8sRUFDTCxJQUFJLEVBQ0osT0FBTyxFQUNQLElBQUksRUFDSixJQUFJLEVBQ0osS0FBSyxFQUNMLE1BQU0sRUFDTixPQUFPLEVBQ1AsVUFBVSxHQUNYLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUE2RG5FLE1BQU0sb0JBQW9CLEdBQUcsSUFBSSxDQUFDLENBQUMsWUFBWTtBQUMvQyxNQUFNLG1CQUFtQixHQUFHLEdBQUcsQ0FBQyxDQUFDLGNBQWM7QUFDL0MsTUFBTSx1QkFBdUIsR0FBRyxJQUFJLENBQUMsQ0FBQyxZQUFZO0FBQ2xELE1BQU0sc0JBQXNCLEdBQUcsRUFBRSxDQUFDLENBQUMsYUFBYTtBQUVoRCxTQUFTLEtBQUssQ0FBQyxFQUFVO0lBQ3ZCLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUMzRCxDQUFDO0FBRUQsTUFBTSxDQUFDLE9BQU8sT0FBTyxVQUFXLFNBQVEsb0JBQW9CO0lBQzFELE1BQU0sQ0FBQyxXQUFXLEdBQ2hCLGdHQUFnRyxDQUFDO0lBRW5HLE1BQU0sQ0FBQyxRQUFRLEdBQUc7UUFDaEIsMERBQTBEO1FB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LENBQUMsQ0FBQztnQkFDckMsUUFBUSxFQUFFLENBQUM7Z0JBQ1gsU0FBUztZQUNYLENBQUM7WUFFRCxNQUFNLEtBQUssR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxDQUNyQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsS0FBSyxXQUFXLENBQ3JDLENBQUM7WUFDRixJQUFJLEtBQUssSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLFFBQVEsRUFBRSxDQUFDO2dCQUN2QyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUN2QixPQUFPLEtBQUssQ0FBQztZQUNmLENBQUM7WUFFRCxNQUFNLEtBQUssQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1lBQ3JDLFFBQVEsRUFBRSxDQUFDO1FBQ2IsQ0FBQztRQUVELElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNaLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGbGFncyB9IGZyb20gXCJAb2NsaWYvY29yZVwiO1xuaW1wb3J0IG9wZW4gZnJvbSBcIm9wZW5cIjtcbmltcG9ydCBpbnF1aXJlciBmcm9tIFwiaW5xdWlyZXJcIjtcbmltcG9ydCB7IEF1dGhlbnRpY2F0ZWRDb21tYW5kIH0gZnJvbSBcIi4uLy4uL2xpYi9iYXNlLWNvbW1hbmQuanNcIjtcbmltcG9ydCB7IGFwaUNsaWVudCwgTm90Rm91bmRFcnJvciB9IGZyb20gXCIuLi8uLi9saWIvYXBpLWNsaWVudC5qc1wiO1xuaW1wb3J0IHtcbiAganNvbixcbiAgc3VjY2VzcyxcbiAgaW5mbyxcbiAgd2FybixcbiAgZXJyb3IsXG4gIGNvbG9ycyxcbiAgc3Bpbm5lcixcbiAgaXNKc29uTW9kZSxcbn0gZnJvbSBcIi4uLy4uL2xpYi9vdXRwdXQuanNcIjtcbmltcG9ydCB7IGF0dGFjaExvZ2luS2V5cHJlc3NIYW5kbGVyIH0gZnJvbSBcIi4uLy4uL2xpYi9rZXlwcmVzcy5qc1wiO1xuXG5pbnRlcmZhY2UgQXZhaWxhYmxlTnVtYmVyIHtcbiAgcGhvbmVOdW1iZXI6IHN0cmluZztcbiAgY291bnRyeTogc3RyaW5nO1xuICBudW1iZXJUeXBlOiBzdHJpbmc7XG4gIG1vbnRobHlDb3N0OiBzdHJpbmc7XG4gIGN1cnJlbmN5OiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBTZWFyY2hOdW1iZXJzUmVzcG9uc2Uge1xuICBudW1iZXJzOiBBdmFpbGFibGVOdW1iZXJbXTtcbn1cblxuaW50ZXJmYWNlIEJ1eUFjdGlvbiB7XG4gIHVybDogc3RyaW5nO1xuICAvLyBhY3Rpb25Db2RlICgzMi1oZXgpIGlkZW50aWZpZXMgdGhlIGFjdGlvbiDigJQgdXNlZCB0byBQT0xMIGFuZCB0byBSRS1CVVkuXG4gIGFjdGlvbkNvZGU6IHN0cmluZztcbiAgLy8gY29kZSAoOC1jaGFyIHVzZXJDb2RlKSBpcyBzaG93biB0byB0aGUgaHVtYW4gdG8gdHlwZSBvbiB0aGUgaG9zdGVkIHBhZ2VcbiAgLy8gdG8gcHJvdmUgdGVybWluYWwgYWNjZXNzLiBESVNQTEFZIG9ubHkg4oCUIG5ldmVyIHVzZWQgYXMgYWN0aW9uQ29kZS5cbiAgY29kZTogc3RyaW5nO1xuICBleHBpcmVzQXQ6IG51bWJlcjtcbn1cblxuaW50ZXJmYWNlIE93bmVkTnVtYmVyIHtcbiAgaWQ6IHN0cmluZztcbiAgcGhvbmVOdW1iZXI6IHN0cmluZztcbiAgc3RhdHVzOiBzdHJpbmc7XG4gIHNvdXJjZTogc3RyaW5nO1xuICBjb3VudHJ5Q29kZTogc3RyaW5nO1xuICBwaG9uZU51bWJlclR5cGU6IHN0cmluZztcbiAgbW9udGhseUNvc3RDZW50czogbnVtYmVyO1xufVxuXG5pbnRlcmZhY2UgQnV5UmVzcG9uc2Uge1xuICBzdGF0dXM6XG4gICAgfCBcInByb3Zpc2lvbmluZ1wiXG4gICAgfCBcImRvY3VtZW50c19yZXF1aXJlZFwiXG4gICAgfCBcInVuZGVyX3Jldmlld1wiXG4gICAgfCBcInBheW1lbnRfcmVxdWlyZWRcIjtcbiAgbnVtYmVyPzogT3duZWROdW1iZXI7XG4gIHJlcXVpcmVtZW50cz86IHVua25vd247XG4gIGFjdGlvbj86IEJ1eUFjdGlvbjtcbiAgLy8gVVMgbG9jYWwgbnVtYmVycyBsYW5kIG93bmVkLWJ1dC11bnJlZ2lzdGVyZWQ6IHRoZXkgcmVhY2ggc3RhdHVzIFwiYWN0aXZlXCJcbiAgLy8gYXQgdGhlIGNhcnJpZXIgYnV0IHRoZSBzZW5kLWdhdGUgYmxvY2tzIHRoZW0gdW50aWwgdGhleSdyZSBhc3NpZ25lZCB0byBhXG4gIC8vIHJlZ2lzdGVyZWQgMTBETEMgY2FtcGFpZ24uIFRoZSBzZXJ2ZXIgZmxhZ3MgdGhhdCBoZXJlIHNvIHdlIGRvbid0IHRlbGwgdGhlXG4gIC8vIHVzZXIgYSBkZWFkIG51bWJlciBpcyByZWFkeS5cbiAgcmVnaXN0cmF0aW9uUmVxdWlyZWQ/OiBib29sZWFuO1xufVxuXG5pbnRlcmZhY2UgTGlzdE51bWJlcnNSZXNwb25zZSB7XG4gIG51bWJlcnM6IE93bmVkTnVtYmVyW107XG59XG5cbmludGVyZmFjZSBBY3Rpb25TdGF0dXNSZXNwb25zZSB7XG4gIHN0YXR1czogXCJwZW5kaW5nXCIgfCBcImF1dGhvcml6ZWRcIiB8IFwiY29tcGxldGVkXCIgfCBcImV4cGlyZWRcIjtcbiAgYWN0aW9uVHlwZTogc3RyaW5nO1xuICByZXN1bHQ/OiB1bmtub3duO1xuICBleHBpcmVzQXQ6IHN0cmluZztcbn1cblxuY29uc3QgQUNUSU9OX1BPTExfSU5URVJWQUwgPSAyMDAwOyAvLyAyIHNlY29uZHNcbmNvbnN0IEFDVElPTl9NQVhfQVRURU1QVFMgPSA2MDA7IC8vIH4yMCBtaW51dGVzXG5jb25zdCBQUk9WSVNJT05fUE9MTF9JTlRFUlZBTCA9IDMwMDA7IC8vIDMgc2Vjb25kc1xuY29uc3QgUFJPVklTSU9OX01BWF9BVFRFTVBUUyA9IDYwOyAvLyB+MyBtaW51dGVzXG5cbmZ1bmN0aW9uIHNsZWVwKG1zOiBudW1iZXIpOiBQcm9taXNlPHZvaWQ+IHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiBzZXRUaW1lb3V0KHJlc29sdmUsIG1zKSk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE51bWJlcnNCdXkgZXh0ZW5kcyBBdXRoZW50aWNhdGVkQ29tbWFuZCB7XG4gIHN0YXRpYyBkZXNjcmlwdGlvbiA9XG4gICAgXCJCdXkgYSBwaG9uZSBudW1iZXIuIEhhbmRsZXMgZG9jdW1lbnQvcGF5bWVudCBzdGVwcyBpbnRlcmFjdGl2ZWx5IHdoZW4gYSBjb3VudHJ5IHJlcXVpcmVzIHRoZW0uXCI7XG5cbiAgc3RhdGljIGV4YW1wbGVzID0gW1xuICAgIFwiPCU9IGNvbmZpZy5iaW4gJT4gbnVtYmVycyBidXkgLS1jb3VudHJ5IEdCIC0tdHlwZSBtb2JpbGVcIixcbiAgICBcIjwlPSBjb25maWcuYmluICU+IG51bWJlcnMgYnV5IC0tY291bnRyeSBVUyAtLXR5cGUgbG9jYWwgLS1udW1iZXIgKzE1NTUxMjM0NTY3XCIsXG4gICAgXCI8JT0gY29uZmlnLmJpbiAlPiBudW1iZXJzIGJ1eSAtLWNvdW50cnkgR0IgLS10eXBlIG1vYmlsZSAtLWpzb25cIixcbiAgXTtcblxuICBzdGF0aWMgZmxhZ3MgPSB7XG4gICAgLi4uQXV0aGVudGljYXRlZENvbW1hbmQuYmFzZUZsYWdzLFxuICAgIGNvdW50cnk6IEZsYWdzLnN0cmluZyh7XG4gICAgICBjaGFyOiBcImNcIixcbiAgICAgIGRlc2NyaXB0aW9uOiBcIklTTyBjb3VudHJ5IGNvZGUgKGUuZy4gR0IsIFVTKVwiLFxuICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgfSksXG4gICAgdHlwZTogRmxhZ3Muc3RyaW5nKHtcbiAgICAgIGNoYXI6IFwidFwiLFxuICAgICAgZGVzY3JpcHRpb246IFwiTnVtYmVyIHR5cGUgKGUuZy4gbW9iaWxlLCBsb2NhbCwgdG9sbC1mcmVlKVwiLFxuICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgfSksXG4gICAgbnVtYmVyOiBGbGFncy5zdHJpbmcoe1xuICAgICAgY2hhcjogXCJuXCIsXG4gICAgICBkZXNjcmlwdGlvbjogXCJTcGVjaWZpYyBudW1iZXIgdG8gYnV5IGluIEUuMTY0IGZvcm1hdCAoc2tpcHMgc2VsZWN0aW9uKVwiLFxuICAgIH0pLFxuICB9O1xuXG4gIGFzeW5jIHJ1bigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB7IGZsYWdzIH0gPSBhd2FpdCB0aGlzLnBhcnNlKE51bWJlcnNCdXkpO1xuXG4gICAgY29uc3Qgc2VsZWN0ZWQgPSBhd2FpdCB0aGlzLnJlc29sdmVOdW1iZXIoZmxhZ3MpO1xuICAgIGlmICghc2VsZWN0ZWQpIHJldHVybjtcblxuICAgIC8vIFRoZSBidXkgYm9keSBpcyByZXVzZWQgdmVyYmF0aW0gYWNyb3NzIGV2ZXJ5IHJlLVBPU1Q7IG9ubHkgYWN0aW9uQ29kZVxuICAgIC8vIGlzIGFkZGVkIG9uY2UgYSBob3N0ZWQgYWN0aW9uIChkb2NzL3BheW1lbnQpIGhhcyBjb21wbGV0ZWQuXG4gICAgY29uc3QgYnV5Qm9keTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7XG4gICAgICBwaG9uZU51bWJlcjogc2VsZWN0ZWQucGhvbmVOdW1iZXIsXG4gICAgICBjb3VudHJ5Q29kZTogZmxhZ3MuY291bnRyeSxcbiAgICAgIHBob25lTnVtYmVyVHlwZTogZmxhZ3MudHlwZSxcbiAgICAgIG1vbnRobHlDb3N0OiBzZWxlY3RlZC5tb250aGx5Q29zdCxcbiAgICB9O1xuXG4gICAgbGV0IHJlc3BvbnNlID0gYXdhaXQgYXBpQ2xpZW50LnBvc3Q8QnV5UmVzcG9uc2U+KFxuICAgICAgXCIvYXBpL3YxL251bWJlcnMvYnV5XCIsXG4gICAgICBidXlCb2R5LFxuICAgICk7XG5cbiAgICAvLyBEcml2ZSB0aGUgYWN0aW9uIGxvb3AgdW50aWwgdGhlIGNhcnJpZXIgYWNjZXB0cyB0aGUgb3JkZXIgKHByb3Zpc2lvbmluZykuXG4gICAgd2hpbGUgKFxuICAgICAgcmVzcG9uc2Uuc3RhdHVzID09PSBcImRvY3VtZW50c19yZXF1aXJlZFwiIHx8XG4gICAgICByZXNwb25zZS5zdGF0dXMgPT09IFwicGF5bWVudF9yZXF1aXJlZFwiXG4gICAgKSB7XG4gICAgICBjb25zdCBhY3Rpb24gPSByZXNwb25zZS5hY3Rpb247XG4gICAgICBpZiAoIWFjdGlvbikge1xuICAgICAgICAvLyBCYWNrZW5kIHNheXMgZG9jcy9wYXltZW50IHJlcXVpcmVkIGJ1dCBnYXZlIHVzIG5vd2hlcmUgdG8gc2VuZCB0aGVcbiAgICAgICAgLy8gdXNlciDigJQgbm90aGluZyB0aGUgQ0xJIGNhbiBkby5cbiAgICAgICAgaWYgKGlzSnNvbk1vZGUoKSkge1xuICAgICAgICAgIGpzb24ocmVzcG9uc2UpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBlcnJvcihcbiAgICAgICAgICBgVGhpcyBudW1iZXIgbmVlZHMgJHtyZXNwb25zZS5zdGF0dXMgPT09IFwicGF5bWVudF9yZXF1aXJlZFwiID8gXCJwYXltZW50XCIgOiBcImRvY3VtZW50c1wifSBidXQgbm8gYWN0aW9uIGxpbmsgd2FzIHJldHVybmVkLmAsXG4gICAgICAgICAge1xuICAgICAgICAgICAgaGludDogXCJUcnkgYWdhaW4sIG9yIGNvbXBsZXRlIHRoaXMgbnVtYmVyIGZyb20gdGhlIFNlbmRseSBkYXNoYm9hcmQuXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5leGl0KDEpO1xuICAgICAgfVxuXG4gICAgICBpZiAoaXNKc29uTW9kZSgpKSB7XG4gICAgICAgIC8vIE5vbi1pbnRlcmFjdGl2ZTogc3VyZmFjZSB0aGUgYWN0aW9uIHNvIHRoZSBjYWxsZXIgY2FuIGRyaXZlIGl0LlxuICAgICAgICBqc29uKHJlc3BvbnNlKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBjb21wbGV0ZWQgPSBhd2FpdCB0aGlzLnJ1bkhvc3RlZEFjdGlvbihyZXNwb25zZS5zdGF0dXMsIGFjdGlvbik7XG4gICAgICBpZiAoIWNvbXBsZXRlZCkgcmV0dXJuOyAvLyBleHBpcmVkIC8gY2FuY2VsbGVkIOKAlCBhbHJlYWR5IG1lc3NhZ2VkXG5cbiAgICAgIC8vIFJlLWJ1eSB3aXRoIHRoZSBhY3Rpb24gaWRlbnRpZmllciAoYWN0aW9uQ29kZSksIE5PVCB0aGUgZGlzcGxheSB1c2VyQ29kZS5cbiAgICAgIGJ1eUJvZHkuYWN0aW9uQ29kZSA9IGFjdGlvbi5hY3Rpb25Db2RlO1xuICAgICAgcmVzcG9uc2UgPSBhd2FpdCBhcGlDbGllbnQucG9zdDxCdXlSZXNwb25zZT4oXG4gICAgICAgIFwiL2FwaS92MS9udW1iZXJzL2J1eVwiLFxuICAgICAgICBidXlCb2R5LFxuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBEb2N1bWVudC1yZXF1aXJlZCBjb3VudHJ5OiBkZXRhaWxzIHN1Ym1pdHRlZCwgbnVtYmVyIHJlc2VydmVkICsgdW5kZXJcbiAgICAvLyByZXZpZXcuIE5vIGNhcnJpZXIgb3JkZXIgaXMgcGxhY2VkIHVudGlsIG91ciB0ZWFtIHZlcmlmaWVzICsgcmVnaXN0ZXJzXG4gICAgLy8gaXQsIHNvIHRoZXJlJ3Mgbm90aGluZyB0byBwb2xsIGZvciBoZXJlLlxuICAgIGlmIChyZXNwb25zZS5zdGF0dXMgPT09IFwidW5kZXJfcmV2aWV3XCIpIHtcbiAgICAgIGlmIChpc0pzb25Nb2RlKCkpIHtcbiAgICAgICAganNvbihyZXNwb25zZSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHN1Y2Nlc3MoXCJOdW1iZXIgcmVzZXJ2ZWQg4oCUIHlvdXIgZGV0YWlscyBhcmUgdW5kZXIgcmV2aWV3XCIsIHtcbiAgICAgICAgbnVtYmVyOiByZXNwb25zZS5udW1iZXI/LnBob25lTnVtYmVyLFxuICAgICAgICBub3RlOiBcIldlIHZlcmlmeSB5b3VyIGRvY3VtZW50cyBhbmQgcmVnaXN0ZXIgdGhlIG51bWJlciwgdXN1YWxseSB3aXRoaW4gYSBmZXcgYnVzaW5lc3MgZGF5cy4gSXQgY2FuJ3Qgc2VuZCB1bnRpbCBpdCdzIGFjdGl2ZSDigJQgY2hlY2sgYHNlbmRseSBudW1iZXJzIGxpc3RgLlwiLFxuICAgICAgfSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gc3RhdHVzID09PSBcInByb3Zpc2lvbmluZ1wiXG4gICAgY29uc3QgcmVnaXN0cmF0aW9uUmVxdWlyZWQgPSByZXNwb25zZS5yZWdpc3RyYXRpb25SZXF1aXJlZCA9PT0gdHJ1ZTtcblxuICAgIGlmIChpc0pzb25Nb2RlKCkpIHtcbiAgICAgIC8vIFdhaXQgZm9yIGFjdGl2YXRpb24gdGhlbiBlbWl0IHRoZSBmaW5hbCBudW1iZXIgcmVjb3JkLCBwcmVzZXJ2aW5nIHRoZVxuICAgICAgLy8gcmVnaXN0cmF0aW9uIHNpZ25hbCBzbyBhbiBhdXRvbWF0ZWQgY2FsbGVyIGtub3dzIHRoZSBudW1iZXIgY2FuJ3Qgc2VuZFxuICAgICAgLy8gdW50aWwgaXQncyBhc3NpZ25lZCB0byBhIDEwRExDIGNhbXBhaWduLlxuICAgICAgY29uc3QgYWN0aXZlID0gYXdhaXQgdGhpcy53YWl0Rm9yQWN0aXZlKHNlbGVjdGVkLnBob25lTnVtYmVyKTtcbiAgICAgIGpzb24oYWN0aXZlID8geyAuLi5hY3RpdmUsIHJlZ2lzdHJhdGlvblJlcXVpcmVkIH0gOiByZXNwb25zZSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaW5mbyhgT3JkZXIgYWNjZXB0ZWQgZm9yICR7Y29sb3JzLmNvZGUoc2VsZWN0ZWQucGhvbmVOdW1iZXIpfSDigJQgcHJvdmlzaW9uaW5nLi4uYCk7XG4gICAgY29uc3QgYWN0aXZlID0gYXdhaXQgdGhpcy53YWl0Rm9yQWN0aXZlKHNlbGVjdGVkLnBob25lTnVtYmVyKTtcblxuICAgIGlmIChhY3RpdmUgJiYgcmVnaXN0cmF0aW9uUmVxdWlyZWQpIHtcbiAgICAgIHN1Y2Nlc3MoXCJOdW1iZXIgaXMgYWN0aXZlIOKAlCBidXQgbm90IHlldCBhYmxlIHRvIHNlbmRcIiwge1xuICAgICAgICBudW1iZXI6IGFjdGl2ZS5waG9uZU51bWJlcixcbiAgICAgICAgaWQ6IGFjdGl2ZS5pZCxcbiAgICAgICAgY291bnRyeTogYWN0aXZlLmNvdW50cnlDb2RlLFxuICAgICAgICB0eXBlOiBhY3RpdmUucGhvbmVOdW1iZXJUeXBlLFxuICAgICAgICBub3RlOiBcIkEgVVMgbG9jYWwgbnVtYmVyIG11c3QgYmUgYXNzaWduZWQgdG8gYSByZWdpc3RlcmVkIDEwRExDIGNhbXBhaWduIGJlZm9yZSBpdCBjYW4gc2VuZC4gU2V0IG9uZSB1cCB3aXRoIGBzZW5kbHkgMTBkbGNgLCB0aGVuIGFzc2lnbiB0aGlzIG51bWJlci5cIixcbiAgICAgIH0pO1xuICAgIH0gZWxzZSBpZiAoYWN0aXZlKSB7XG4gICAgICBzdWNjZXNzKFwiTnVtYmVyIGlzIGFjdGl2ZVwiLCB7XG4gICAgICAgIG51bWJlcjogYWN0aXZlLnBob25lTnVtYmVyLFxuICAgICAgICBpZDogYWN0aXZlLmlkLFxuICAgICAgICBjb3VudHJ5OiBhY3RpdmUuY291bnRyeUNvZGUsXG4gICAgICAgIHR5cGU6IGFjdGl2ZS5waG9uZU51bWJlclR5cGUsXG4gICAgICB9KTtcbiAgICB9IGVsc2UgaWYgKHJlZ2lzdHJhdGlvblJlcXVpcmVkKSB7XG4gICAgICB3YXJuKFxuICAgICAgICBcIk51bWJlciBvcmRlcmVkLiBPbmNlIGFjdGl2ZSBpdCBzdGlsbCBjYW4ndCBzZW5kIHVudGlsIGl0J3MgYXNzaWduZWQgdG8gYSByZWdpc3RlcmVkIDEwRExDIGNhbXBhaWduIOKAlCBzZXQgb25lIHVwIHdpdGggYHNlbmRseSAxMGRsY2AsIHRoZW4gY2hlY2sgYHNlbmRseSBudW1iZXJzIGxpc3RgLlwiLFxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgd2FybihcbiAgICAgICAgXCJOdW1iZXIgaXMgc3RpbGwgcHJvdmlzaW9uaW5nLiBJdCB1c3VhbGx5IGFjdGl2YXRlcyB3aXRoaW4gYSBmZXcgbWludXRlcyDigJQgY2hlY2sgYHNlbmRseSBudW1iZXJzIGxpc3RgLlwiLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmVzb2x2ZSB3aGljaCBudW1iZXIgdG8gYnV5LiBJZiAtLW51bWJlciBpcyBnaXZlbiB3ZSB0cnVzdCBpdCAoYW5kXG4gICAqIHN0aWxsIG5lZWQgaXRzIG1vbnRobHlDb3N0LCBzbyB3ZSBsb29rIGl0IHVwIGFtb25nIGF2YWlsYWJsZSBudW1iZXJzKS5cbiAgICogT3RoZXJ3aXNlIHdlIHNlYXJjaCBhbmQgcHJvbXB0IHRoZSB1c2VyIHRvIHBpY2sgb25lLlxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyByZXNvbHZlTnVtYmVyKGZsYWdzOiB7XG4gICAgY291bnRyeTogc3RyaW5nO1xuICAgIHR5cGU6IHN0cmluZztcbiAgICBudW1iZXI/OiBzdHJpbmc7XG4gIH0pOiBQcm9taXNlPEF2YWlsYWJsZU51bWJlciB8IHVuZGVmaW5lZD4ge1xuICAgIGNvbnN0IHNwaW4gPSBzcGlubmVyKFwiRmluZGluZyBhdmFpbGFibGUgbnVtYmVycy4uLlwiKTtcbiAgICBzcGluLnN0YXJ0KCk7XG5cbiAgICBsZXQgYXZhaWxhYmxlOiBBdmFpbGFibGVOdW1iZXJbXTtcbiAgICB0cnkge1xuICAgICAgY29uc3Qgc2VhcmNoID0gYXdhaXQgYXBpQ2xpZW50LmdldDxTZWFyY2hOdW1iZXJzUmVzcG9uc2U+KFxuICAgICAgICBcIi9hcGkvdjEvbnVtYmVycy9hdmFpbGFibGVcIixcbiAgICAgICAge1xuICAgICAgICAgIGNvdW50cnk6IGZsYWdzLmNvdW50cnksXG4gICAgICAgICAgdHlwZTogZmxhZ3MudHlwZSxcbiAgICAgICAgICAuLi4oZmxhZ3MubnVtYmVyICYmIHsgY29udGFpbnM6IGZsYWdzLm51bWJlci5yZXBsYWNlKC9eXFwrLywgXCJcIikgfSksXG4gICAgICAgIH0sXG4gICAgICApO1xuICAgICAgYXZhaWxhYmxlID0gc2VhcmNoLm51bWJlcnMgPz8gW107XG4gICAgICBzcGluLnN0b3AoKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIHNwaW4uZmFpbChcIkNvdWxkIG5vdCBsb2FkIGF2YWlsYWJsZSBudW1iZXJzXCIpO1xuICAgICAgdGhyb3cgZXJyO1xuICAgIH1cblxuICAgIGlmIChmbGFncy5udW1iZXIpIHtcbiAgICAgIGNvbnN0IG1hdGNoID0gYXZhaWxhYmxlLmZpbmQoKG4pID0+IG4ucGhvbmVOdW1iZXIgPT09IGZsYWdzLm51bWJlcik7XG4gICAgICBpZiAoIW1hdGNoKSB7XG4gICAgICAgIGVycm9yKGAke2ZsYWdzLm51bWJlcn0gaXMgbm90IGF2YWlsYWJsZSBmb3IgcHVyY2hhc2UuYCwge1xuICAgICAgICAgIGhpbnQ6IGBSdW46IHNlbmRseSBudW1iZXJzIHNlYXJjaCAtLWNvdW50cnkgJHtmbGFncy5jb3VudHJ5fSAtLXR5cGUgJHtmbGFncy50eXBlfWAsXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmV4aXQoMSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gbWF0Y2g7XG4gICAgfVxuXG4gICAgaWYgKGF2YWlsYWJsZS5sZW5ndGggPT09IDApIHtcbiAgICAgIGluZm8oYE5vIGF2YWlsYWJsZSBudW1iZXJzIGZvdW5kIGZvciAke2ZsYWdzLmNvdW50cnl9ICgke2ZsYWdzLnR5cGV9KS5gKTtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLy8gTm9uLWludGVyYWN0aXZlIChubyBUVFkgLyBqc29uKTogdGFrZSB0aGUgZmlyc3QgcmVzdWx0LlxuICAgIGlmIChpc0pzb25Nb2RlKCkgfHwgIXByb2Nlc3Muc3Rkb3V0LmlzVFRZKSB7XG4gICAgICByZXR1cm4gYXZhaWxhYmxlWzBdO1xuICAgIH1cblxuICAgIGNvbnN0IHsgY2hvaWNlIH0gPSBhd2FpdCBpbnF1aXJlci5wcm9tcHQoW1xuICAgICAge1xuICAgICAgICB0eXBlOiBcImxpc3RcIixcbiAgICAgICAgbmFtZTogXCJjaG9pY2VcIixcbiAgICAgICAgbWVzc2FnZTogYENob29zZSBhIG51bWJlciB0byBidXkgKCR7ZmxhZ3MuY291bnRyeX0sICR7ZmxhZ3MudHlwZX0pOmAsXG4gICAgICAgIGNob2ljZXM6IGF2YWlsYWJsZS5zbGljZSgwLCAyNSkubWFwKChuKSA9PiAoe1xuICAgICAgICAgIG5hbWU6IGAke24ucGhvbmVOdW1iZXJ9ICDigJQgICR7bi5tb250aGx5Q29zdH0gJHtuLmN1cnJlbmN5fS9tb2AsXG4gICAgICAgICAgdmFsdWU6IG4ucGhvbmVOdW1iZXIsXG4gICAgICAgIH0pKSxcbiAgICAgIH0sXG4gICAgXSk7XG5cbiAgICByZXR1cm4gYXZhaWxhYmxlLmZpbmQoKG4pID0+IG4ucGhvbmVOdW1iZXIgPT09IGNob2ljZSk7XG4gIH1cblxuICAvKipcbiAgICogRHJpdmUgYSBob3N0ZWQgZG9jdW1lbnQtdXBsb2FkIC8gcGF5bWVudCBhY3Rpb246IHByaW50IHRoZSBsaW5rICsgY29kZSxcbiAgICogYXV0by1vcGVuIGl0LCB3aXJlIHByZXNzLVtjXS10by1jb3B5IC8gW3FdIHRvIGNhbmNlbCwgdGhlbiBwb2xsIHVudGlsXG4gICAqIHRoZSBhY3Rpb24gY29tcGxldGVzIChyZXNvbHZlcyB0cnVlKSBvciBleHBpcmVzIChyZXNvbHZlcyBmYWxzZSkuXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIHJ1bkhvc3RlZEFjdGlvbihcbiAgICBraW5kOiBcImRvY3VtZW50c19yZXF1aXJlZFwiIHwgXCJwYXltZW50X3JlcXVpcmVkXCIsXG4gICAgYWN0aW9uOiBCdXlBY3Rpb24sXG4gICk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IGxhYmVsID1cbiAgICAgIGtpbmQgPT09IFwicGF5bWVudF9yZXF1aXJlZFwiID8gXCJQYXltZW50IHJlcXVpcmVkXCIgOiBcIkRvY3VtZW50cyByZXF1aXJlZFwiO1xuXG4gICAgY29uc29sZS5sb2coKTtcbiAgICBjb25zb2xlLmxvZyhjb2xvcnMuYm9sZChsYWJlbCkpO1xuICAgIGNvbnNvbGUubG9nKCk7XG4gICAgY29uc29sZS5sb2coXG4gICAgICBraW5kID09PSBcInBheW1lbnRfcmVxdWlyZWRcIlxuICAgICAgICA/IFwiVGhpcyBudW1iZXIgbmVlZHMgYSBwYXltZW50IHRvIGNvbXBsZXRlLiBPcGVuIHRoaXMgc2VjdXJlIHBhZ2U6XCJcbiAgICAgICAgOiBcIlRoaXMgbnVtYmVyIG5lZWRzIGRvY3VtZW50cyBiZWZvcmUgaXQgY2FuIGJlIGFjdGl2YXRlZC4gT3BlbiB0aGlzIHNlY3VyZSBwYWdlOlwiLFxuICAgICk7XG4gICAgY29uc29sZS5sb2coY29sb3JzLnByaW1hcnkoYCAgJHthY3Rpb24udXJsfWApKTtcbiAgICBjb25zb2xlLmxvZygpO1xuICAgIGNvbnNvbGUubG9nKFwiQ29uZmlybWF0aW9uIGNvZGUgKHNob3duIHNvIHlvdSBjYW4gdmVyaWZ5IHRoaXMgaXMgeW91ciBzZXNzaW9uKTpcIik7XG4gICAgY29uc29sZS5sb2coY29sb3JzLmJvbGQoY29sb3JzLnByaW1hcnkoYCAgJHthY3Rpb24uY29kZX1gKSkpO1xuICAgIGNvbnNvbGUubG9nKCk7XG5cbiAgICB0cnkge1xuICAgICAgYXdhaXQgb3BlbihhY3Rpb24udXJsKTtcbiAgICAgIGNvbnNvbGUubG9nKGNvbG9ycy5kaW0oXCJCcm93c2VyIG9wZW5lZCBhdXRvbWF0aWNhbGx5XCIpKTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIGNvbnNvbGUubG9nKGNvbG9ycy5kaW0oXCJQbGVhc2Ugb3BlbiB0aGUgVVJMIG1hbnVhbGx5XCIpKTtcbiAgICB9XG5cbiAgICBjb25zdCBrZXlwcmVzc0NsZWFudXAgPSBhdHRhY2hMb2dpbktleXByZXNzSGFuZGxlcihhY3Rpb24udXJsKTtcbiAgICBjb25zb2xlLmxvZygpO1xuXG4gICAgY29uc3Qgc3BpbiA9IHNwaW5uZXIoXCJXYWl0aW5nIGZvciB5b3UgdG8gZmluaXNoIG9uIHRoZSBzZWN1cmUgcGFnZS4uLlwiKTtcbiAgICBzcGluLnN0YXJ0KCk7XG5cbiAgICBsZXQgYXR0ZW1wdHMgPSAwO1xuICAgIHdoaWxlIChhdHRlbXB0cyA8IEFDVElPTl9NQVhfQVRURU1QVFMpIHtcbiAgICAgIGF3YWl0IHNsZWVwKEFDVElPTl9QT0xMX0lOVEVSVkFMKTtcbiAgICAgIGF0dGVtcHRzKys7XG5cbiAgICAgIGxldCBzdGF0dXM6IEFjdGlvblN0YXR1c1Jlc3BvbnNlO1xuICAgICAgdHJ5IHtcbiAgICAgICAgc3RhdHVzID0gYXdhaXQgYXBpQ2xpZW50LmdldDxBY3Rpb25TdGF0dXNSZXNwb25zZT4oXG4gICAgICAgICAgYC9hcGkvY2xpL2FjdGlvbi8ke2VuY29kZVVSSUNvbXBvbmVudChhY3Rpb24uYWN0aW9uQ29kZSl9YCxcbiAgICAgICAgKTtcbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICBpZiAoZXJyIGluc3RhbmNlb2YgTm90Rm91bmRFcnJvcikge1xuICAgICAgICAgIC8vIFRoZSBhY3Rpb24gaXMgZ29uZSAoZXhwaXJlZC9jbGVhbmVkIHVwKSDigJQgdGVybWluYWwsIG5vdCB0cmFuc2llbnQuXG4gICAgICAgICAgc3Bpbi5mYWlsKFwiVGhpcyBzdGVwIGV4cGlyZWRcIik7XG4gICAgICAgICAga2V5cHJlc3NDbGVhbnVwKCk7XG4gICAgICAgICAgd2FybihcbiAgICAgICAgICAgIFwiVGhlIHNlY3VyZSBwYWdlIGV4cGlyZWQgYmVmb3JlIGl0IHdhcyBjb21wbGV0ZWQuIFJlLXJ1biBgc2VuZGx5IG51bWJlcnMgYnV5YCB0byBzdGFydCBvdmVyLlwiLFxuICAgICAgICAgICk7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIC8vIFRyYW5zaWVudCBlcnJvciDigJQga2VlcCBwb2xsaW5nLlxuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKHN0YXR1cy5zdGF0dXMgPT09IFwiY29tcGxldGVkXCIpIHtcbiAgICAgICAgc3Bpbi5zdWNjZWVkKFwiQ29tcGxldGVkXCIpO1xuICAgICAgICBrZXlwcmVzc0NsZWFudXAoKTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG5cbiAgICAgIGlmIChzdGF0dXMuc3RhdHVzID09PSBcImV4cGlyZWRcIikge1xuICAgICAgICBzcGluLmZhaWwoXCJUaGlzIHN0ZXAgZXhwaXJlZFwiKTtcbiAgICAgICAga2V5cHJlc3NDbGVhbnVwKCk7XG4gICAgICAgIHdhcm4oXG4gICAgICAgICAgXCJUaGUgc2VjdXJlIHBhZ2UgZXhwaXJlZCBiZWZvcmUgaXQgd2FzIGNvbXBsZXRlZC4gUmUtcnVuIGBzZW5kbHkgbnVtYmVycyBidXlgIHRvIHN0YXJ0IG92ZXIuXCIsXG4gICAgICAgICk7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIC8vIHBlbmRpbmcgLyBhdXRob3JpemVkIOKAlCBrZWVwIHBvbGxpbmdcbiAgICB9XG5cbiAgICBzcGluLmZhaWwoXCJUaW1lZCBvdXQgd2FpdGluZyBmb3IgY29tcGxldGlvblwiKTtcbiAgICBrZXlwcmVzc0NsZWFudXAoKTtcbiAgICB3YXJuKFxuICAgICAgXCJXZSBzdG9wcGVkIHdhaXRpbmcuIElmIHlvdSBmaW5pc2hlZCBvbiB0aGUgcGFnZSwgcmUtcnVuIGBzZW5kbHkgbnVtYmVycyBidXlgIGFuZCB3ZSdsbCBwaWNrIHVwIHdoZXJlIHlvdSBsZWZ0IG9mZi5cIixcbiAgICApO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQb2xsIHRoZSBvd25lZC1udW1iZXJzIGxpc3QgdW50aWwgdGhlIGp1c3Qtb3JkZXJlZCBudW1iZXIgcmVwb3J0c1xuICAgKiBgYWN0aXZlYC4gUmV0dXJucyB0aGUgYWN0aXZlIHJlY29yZCwgb3IgdW5kZWZpbmVkIGlmIGl0IGhhc24ndFxuICAgKiBhY3RpdmF0ZWQgd2l0aGluIHRoZSBwb2xsaW5nIHdpbmRvdy5cbiAgICovXG4gIHByaXZhdGUgYXN5bmMgd2FpdEZvckFjdGl2ZShcbiAgICBwaG9uZU51bWJlcjogc3RyaW5nLFxuICApOiBQcm9taXNlPE93bmVkTnVtYmVyIHwgdW5kZWZpbmVkPiB7XG4gICAgY29uc3Qgc3BpbiA9IHNwaW5uZXIoXCJBY3RpdmF0aW5nIG51bWJlci4uLlwiKTtcbiAgICBzcGluLnN0YXJ0KCk7XG5cbiAgICBsZXQgYXR0ZW1wdHMgPSAwO1xuICAgIHdoaWxlIChhdHRlbXB0cyA8IFBST1ZJU0lPTl9NQVhfQVRURU1QVFMpIHtcbiAgICAgIGxldCBsaXN0OiBMaXN0TnVtYmVyc1Jlc3BvbnNlO1xuICAgICAgdHJ5IHtcbiAgICAgICAgbGlzdCA9IGF3YWl0IGFwaUNsaWVudC5nZXQ8TGlzdE51bWJlcnNSZXNwb25zZT4oXCIvYXBpL3YxL251bWJlcnNcIik7XG4gICAgICB9IGNhdGNoIHtcbiAgICAgICAgYXdhaXQgc2xlZXAoUFJPVklTSU9OX1BPTExfSU5URVJWQUwpO1xuICAgICAgICBhdHRlbXB0cysrO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZm91bmQgPSAobGlzdC5udW1iZXJzID8/IFtdKS5maW5kKFxuICAgICAgICAobikgPT4gbi5waG9uZU51bWJlciA9PT0gcGhvbmVOdW1iZXIsXG4gICAgICApO1xuICAgICAgaWYgKGZvdW5kICYmIGZvdW5kLnN0YXR1cyA9PT0gXCJhY3RpdmVcIikge1xuICAgICAgICBzcGluLnN1Y2NlZWQoXCJBY3RpdmVcIik7XG4gICAgICAgIHJldHVybiBmb3VuZDtcbiAgICAgIH1cblxuICAgICAgYXdhaXQgc2xlZXAoUFJPVklTSU9OX1BPTExfSU5URVJWQUwpO1xuICAgICAgYXR0ZW1wdHMrKztcbiAgICB9XG5cbiAgICBzcGluLnN0b3AoKTtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { AuthenticatedCommand } from "../../lib/base-command.js";
|
|
2
|
+
export default class RcsAgents extends AuthenticatedCommand {
|
|
3
|
+
static description: string;
|
|
4
|
+
static examples: string[];
|
|
5
|
+
static flags: {
|
|
6
|
+
json: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
|
|
7
|
+
quiet: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
|
|
8
|
+
};
|
|
9
|
+
run(): Promise<void>;
|
|
10
|
+
}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { AuthenticatedCommand } from "../../lib/base-command.js";
|
|
2
|
+
import { apiClient, NotFoundError } from "../../lib/api-client.js";
|
|
3
|
+
import { json, info, error, table, colors, spinner, isJsonMode, formatRelativeTime, } from "../../lib/output.js";
|
|
4
|
+
function formatAgentStatus(status) {
|
|
5
|
+
switch (String(status).toLowerCase()) {
|
|
6
|
+
case "approved":
|
|
7
|
+
return colors.success(status);
|
|
8
|
+
case "rejected":
|
|
9
|
+
case "suspended":
|
|
10
|
+
return colors.error(status);
|
|
11
|
+
case "testing":
|
|
12
|
+
case "pending":
|
|
13
|
+
return colors.warning(status);
|
|
14
|
+
default:
|
|
15
|
+
return status;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
export default class RcsAgents extends AuthenticatedCommand {
|
|
19
|
+
static description = "List the RCS agents on your workspace";
|
|
20
|
+
static examples = [
|
|
21
|
+
"<%= config.bin %> rcs agents",
|
|
22
|
+
"<%= config.bin %> rcs agents --json",
|
|
23
|
+
];
|
|
24
|
+
static flags = {
|
|
25
|
+
...AuthenticatedCommand.baseFlags,
|
|
26
|
+
};
|
|
27
|
+
async run() {
|
|
28
|
+
await this.parse(RcsAgents);
|
|
29
|
+
const listSpinner = spinner("Fetching RCS agents...");
|
|
30
|
+
if (!isJsonMode()) {
|
|
31
|
+
listSpinner.start();
|
|
32
|
+
}
|
|
33
|
+
let response;
|
|
34
|
+
try {
|
|
35
|
+
response = await apiClient.get("/api/v1/rcs/agents");
|
|
36
|
+
listSpinner.stop();
|
|
37
|
+
}
|
|
38
|
+
catch (err) {
|
|
39
|
+
listSpinner.stop();
|
|
40
|
+
if (err instanceof NotFoundError) {
|
|
41
|
+
error("RCS isn't available on your workspace yet.", {
|
|
42
|
+
hint: "RCS is rolling out gradually — contact support@sendly.live for early access.",
|
|
43
|
+
});
|
|
44
|
+
this.exit(1);
|
|
45
|
+
}
|
|
46
|
+
throw err;
|
|
47
|
+
}
|
|
48
|
+
if (isJsonMode()) {
|
|
49
|
+
json(response);
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
const agents = response.agents ?? [];
|
|
53
|
+
if (agents.length === 0) {
|
|
54
|
+
info("No RCS agents yet");
|
|
55
|
+
console.log(colors.dim("RCS agents are registered for your brand by the Sendly team — contact support@sendly.live to get set up."));
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
table(agents, [
|
|
59
|
+
{ header: "ID", key: "id", formatter: (v) => colors.code(String(v)) },
|
|
60
|
+
{ header: "Name", key: "name" },
|
|
61
|
+
{
|
|
62
|
+
header: "Status",
|
|
63
|
+
key: "status",
|
|
64
|
+
formatter: (v) => formatAgentStatus(String(v)),
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
header: "Use case",
|
|
68
|
+
key: "useCase",
|
|
69
|
+
formatter: (v) => (v ? String(v) : colors.dim("—")),
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
header: "Sendable",
|
|
73
|
+
key: "sendable",
|
|
74
|
+
formatter: (v) => (v ? colors.success("yes") : colors.dim("no")),
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
header: "Created",
|
|
78
|
+
key: "createdAt",
|
|
79
|
+
formatter: (v) => formatRelativeTime(String(v)),
|
|
80
|
+
},
|
|
81
|
+
]);
|
|
82
|
+
const testing = agents.filter((a) => String(a.status).toLowerCase() === "testing");
|
|
83
|
+
if (testing.length > 0) {
|
|
84
|
+
console.log();
|
|
85
|
+
console.log(colors.dim("Agents in testing can only reach invited test devices — approved agents reach everyone."));
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdlbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL3Jjcy9hZ2VudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDakUsT0FBTyxFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNuRSxPQUFPLEVBQ0wsSUFBSSxFQUNKLElBQUksRUFDSixLQUFLLEVBQ0wsS0FBSyxFQUNMLE1BQU0sRUFDTixPQUFPLEVBQ1AsVUFBVSxFQUNWLGtCQUFrQixHQUNuQixNQUFNLHFCQUFxQixDQUFDO0FBZTdCLFNBQVMsaUJBQWlCLENBQUMsTUFBYztJQUN2QyxRQUFRLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDO1FBQ3JDLEtBQUssVUFBVTtZQUNiLE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNoQyxLQUFLLFVBQVUsQ0FBQztRQUNoQixLQUFLLFdBQVc7WUFDZCxPQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDOUIsS0FBSyxTQUFTLENBQUM7UUFDZixLQUFLLFNBQVM7WUFDWixPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDaEM7WUFDRSxPQUFPLE1BQU0sQ0FBQztJQUNsQixDQUFDO0FBQ0gsQ0FBQztBQUVELE1BQU0sQ0FBQyxPQUFPLE9BQU8sU0FBVSxTQUFRLG9CQUFvQjtJQUN6RCxNQUFNLENBQUMsV0FBVyxHQUFHLHVDQUF1QyxDQUFDO0lBRTdELE1BQU0sQ0FBQyxRQUFRLEdBQUc7UUFDaEIsOEJBQThCO1FBQzlCLHFDQUFxQztLQUN0QyxDQUFDO0lBRUYsTUFBTSxDQUFDLEtBQUssR0FBRztRQUNiLEdBQUcsb0JBQW9CLENBQUMsU0FBUztLQUNsQyxDQUFDO0lBRUYsS0FBSyxDQUFDLEdBQUc7UUFDUCxNQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFNUIsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLHdCQUF3QixDQUFDLENBQUM7UUFDdEQsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUM7WUFDbEIsV0FBVyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3RCLENBQUM7UUFFRCxJQUFJLFFBQTRCLENBQUM7UUFDakMsSUFBSSxDQUFDO1lBQ0gsUUFBUSxHQUFHLE1BQU0sU0FBUyxDQUFDLEdBQUcsQ0FBcUIsb0JBQW9CLENBQUMsQ0FBQztZQUN6RSxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDckIsQ0FBQztRQUFDLE9BQU8sR0FBUSxFQUFFLENBQUM7WUFDbEIsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ25CLElBQUksR0FBRyxZQUFZLGFBQWEsRUFBRSxDQUFDO2dCQUNqQyxLQUFLLENBQUMsNENBQTRDLEVBQUU7b0JBQ2xELElBQUksRUFBRSw4RUFBOEU7aUJBQ3JGLENBQUMsQ0FBQztnQkFDSCxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2YsQ0FBQztZQUNELE1BQU0sR0FBRyxDQUFDO1FBQ1osQ0FBQztRQUVELElBQUksVUFBVSxFQUFFLEVBQUUsQ0FBQztZQUNqQixJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDZixPQUFPO1FBQ1QsQ0FBQztRQUVELE1BQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDO1FBQ3JDLElBQUksTUFBTSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUN4QixJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQztZQUMxQixPQUFPLENBQUMsR0FBRyxDQUNULE1BQU0sQ0FBQyxHQUFHLENBQ1IsMEdBQTBHLENBQzNHLENBQ0YsQ0FBQztZQUNGLE9BQU87UUFDVCxDQUFDO1FBRUQsS0FBSyxDQUFDLE1BQU0sRUFBRTtZQUNaLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNyRSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRTtZQUMvQjtnQkFDRSxNQUFNLEVBQUUsUUFBUTtnQkFDaEIsR0FBRyxFQUFFLFFBQVE7Z0JBQ2IsU0FBUyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDL0M7WUFDRDtnQkFDRSxNQUFNLEVBQUUsVUFBVTtnQkFDbEIsR0FBRyxFQUFFLFNBQVM7Z0JBQ2QsU0FBUyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ3BEO1lBQ0Q7Z0JBQ0UsTUFBTSxFQUFFLFVBQVU7Z0JBQ2xCLEdBQUcsRUFBRSxVQUFVO2dCQUNmLFNBQVMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDakU7WUFDRDtnQkFDRSxNQUFNLEVBQUUsU0FBUztnQkFDakIsR0FBRyxFQUFFLFdBQVc7Z0JBQ2hCLFNBQVMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ2hEO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FDM0IsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsV0FBVyxFQUFFLEtBQUssU0FBUyxDQUNwRCxDQUFDO1FBQ0YsSUFBSSxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3ZCLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNkLE9BQU8sQ0FBQyxHQUFHLENBQ1QsTUFBTSxDQUFDLEdBQUcsQ0FDUix5RkFBeUYsQ0FDMUYsQ0FDRixDQUFDO1FBQ0osQ0FBQztJQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBdXRoZW50aWNhdGVkQ29tbWFuZCB9IGZyb20gXCIuLi8uLi9saWIvYmFzZS1jb21tYW5kLmpzXCI7XG5pbXBvcnQgeyBhcGlDbGllbnQsIE5vdEZvdW5kRXJyb3IgfSBmcm9tIFwiLi4vLi4vbGliL2FwaS1jbGllbnQuanNcIjtcbmltcG9ydCB7XG4gIGpzb24sXG4gIGluZm8sXG4gIGVycm9yLFxuICB0YWJsZSxcbiAgY29sb3JzLFxuICBzcGlubmVyLFxuICBpc0pzb25Nb2RlLFxuICBmb3JtYXRSZWxhdGl2ZVRpbWUsXG59IGZyb20gXCIuLi8uLi9saWIvb3V0cHV0LmpzXCI7XG5cbmludGVyZmFjZSBSY3NBZ2VudCB7XG4gIGlkOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgc3RhdHVzOiBzdHJpbmc7XG4gIHVzZUNhc2U6IHN0cmluZyB8IG51bGw7XG4gIHNlbmRhYmxlOiBib29sZWFuO1xuICBjcmVhdGVkQXQ6IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIExpc3RBZ2VudHNSZXNwb25zZSB7XG4gIGFnZW50czogUmNzQWdlbnRbXTtcbn1cblxuZnVuY3Rpb24gZm9ybWF0QWdlbnRTdGF0dXMoc3RhdHVzOiBzdHJpbmcpOiBzdHJpbmcge1xuICBzd2l0Y2ggKFN0cmluZyhzdGF0dXMpLnRvTG93ZXJDYXNlKCkpIHtcbiAgICBjYXNlIFwiYXBwcm92ZWRcIjpcbiAgICAgIHJldHVybiBjb2xvcnMuc3VjY2VzcyhzdGF0dXMpO1xuICAgIGNhc2UgXCJyZWplY3RlZFwiOlxuICAgIGNhc2UgXCJzdXNwZW5kZWRcIjpcbiAgICAgIHJldHVybiBjb2xvcnMuZXJyb3Ioc3RhdHVzKTtcbiAgICBjYXNlIFwidGVzdGluZ1wiOlxuICAgIGNhc2UgXCJwZW5kaW5nXCI6XG4gICAgICByZXR1cm4gY29sb3JzLndhcm5pbmcoc3RhdHVzKTtcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIHN0YXR1cztcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBSY3NBZ2VudHMgZXh0ZW5kcyBBdXRoZW50aWNhdGVkQ29tbWFuZCB7XG4gIHN0YXRpYyBkZXNjcmlwdGlvbiA9IFwiTGlzdCB0aGUgUkNTIGFnZW50cyBvbiB5b3VyIHdvcmtzcGFjZVwiO1xuXG4gIHN0YXRpYyBleGFtcGxlcyA9IFtcbiAgICBcIjwlPSBjb25maWcuYmluICU+IHJjcyBhZ2VudHNcIixcbiAgICBcIjwlPSBjb25maWcuYmluICU+IHJjcyBhZ2VudHMgLS1qc29uXCIsXG4gIF07XG5cbiAgc3RhdGljIGZsYWdzID0ge1xuICAgIC4uLkF1dGhlbnRpY2F0ZWRDb21tYW5kLmJhc2VGbGFncyxcbiAgfTtcblxuICBhc3luYyBydW4oKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgdGhpcy5wYXJzZShSY3NBZ2VudHMpO1xuXG4gICAgY29uc3QgbGlzdFNwaW5uZXIgPSBzcGlubmVyKFwiRmV0Y2hpbmcgUkNTIGFnZW50cy4uLlwiKTtcbiAgICBpZiAoIWlzSnNvbk1vZGUoKSkge1xuICAgICAgbGlzdFNwaW5uZXIuc3RhcnQoKTtcbiAgICB9XG5cbiAgICBsZXQgcmVzcG9uc2U6IExpc3RBZ2VudHNSZXNwb25zZTtcbiAgICB0cnkge1xuICAgICAgcmVzcG9uc2UgPSBhd2FpdCBhcGlDbGllbnQuZ2V0PExpc3RBZ2VudHNSZXNwb25zZT4oXCIvYXBpL3YxL3Jjcy9hZ2VudHNcIik7XG4gICAgICBsaXN0U3Bpbm5lci5zdG9wKCk7XG4gICAgfSBjYXRjaCAoZXJyOiBhbnkpIHtcbiAgICAgIGxpc3RTcGlubmVyLnN0b3AoKTtcbiAgICAgIGlmIChlcnIgaW5zdGFuY2VvZiBOb3RGb3VuZEVycm9yKSB7XG4gICAgICAgIGVycm9yKFwiUkNTIGlzbid0IGF2YWlsYWJsZSBvbiB5b3VyIHdvcmtzcGFjZSB5ZXQuXCIsIHtcbiAgICAgICAgICBoaW50OiBcIlJDUyBpcyByb2xsaW5nIG91dCBncmFkdWFsbHkg4oCUIGNvbnRhY3Qgc3VwcG9ydEBzZW5kbHkubGl2ZSBmb3IgZWFybHkgYWNjZXNzLlwiLFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5leGl0KDEpO1xuICAgICAgfVxuICAgICAgdGhyb3cgZXJyO1xuICAgIH1cblxuICAgIGlmIChpc0pzb25Nb2RlKCkpIHtcbiAgICAgIGpzb24ocmVzcG9uc2UpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGFnZW50cyA9IHJlc3BvbnNlLmFnZW50cyA/PyBbXTtcbiAgICBpZiAoYWdlbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgaW5mbyhcIk5vIFJDUyBhZ2VudHMgeWV0XCIpO1xuICAgICAgY29uc29sZS5sb2coXG4gICAgICAgIGNvbG9ycy5kaW0oXG4gICAgICAgICAgXCJSQ1MgYWdlbnRzIGFyZSByZWdpc3RlcmVkIGZvciB5b3VyIGJyYW5kIGJ5IHRoZSBTZW5kbHkgdGVhbSDigJQgY29udGFjdCBzdXBwb3J0QHNlbmRseS5saXZlIHRvIGdldCBzZXQgdXAuXCIsXG4gICAgICAgICksXG4gICAgICApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRhYmxlKGFnZW50cywgW1xuICAgICAgeyBoZWFkZXI6IFwiSURcIiwga2V5OiBcImlkXCIsIGZvcm1hdHRlcjogKHYpID0+IGNvbG9ycy5jb2RlKFN0cmluZyh2KSkgfSxcbiAgICAgIHsgaGVhZGVyOiBcIk5hbWVcIiwga2V5OiBcIm5hbWVcIiB9LFxuICAgICAge1xuICAgICAgICBoZWFkZXI6IFwiU3RhdHVzXCIsXG4gICAgICAgIGtleTogXCJzdGF0dXNcIixcbiAgICAgICAgZm9ybWF0dGVyOiAodikgPT4gZm9ybWF0QWdlbnRTdGF0dXMoU3RyaW5nKHYpKSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGhlYWRlcjogXCJVc2UgY2FzZVwiLFxuICAgICAgICBrZXk6IFwidXNlQ2FzZVwiLFxuICAgICAgICBmb3JtYXR0ZXI6ICh2KSA9PiAodiA/IFN0cmluZyh2KSA6IGNvbG9ycy5kaW0oXCLigJRcIikpLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaGVhZGVyOiBcIlNlbmRhYmxlXCIsXG4gICAgICAgIGtleTogXCJzZW5kYWJsZVwiLFxuICAgICAgICBmb3JtYXR0ZXI6ICh2KSA9PiAodiA/IGNvbG9ycy5zdWNjZXNzKFwieWVzXCIpIDogY29sb3JzLmRpbShcIm5vXCIpKSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGhlYWRlcjogXCJDcmVhdGVkXCIsXG4gICAgICAgIGtleTogXCJjcmVhdGVkQXRcIixcbiAgICAgICAgZm9ybWF0dGVyOiAodikgPT4gZm9ybWF0UmVsYXRpdmVUaW1lKFN0cmluZyh2KSksXG4gICAgICB9LFxuICAgIF0pO1xuXG4gICAgY29uc3QgdGVzdGluZyA9IGFnZW50cy5maWx0ZXIoXG4gICAgICAoYSkgPT4gU3RyaW5nKGEuc3RhdHVzKS50b0xvd2VyQ2FzZSgpID09PSBcInRlc3RpbmdcIixcbiAgICApO1xuICAgIGlmICh0ZXN0aW5nLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnNvbGUubG9nKCk7XG4gICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgY29sb3JzLmRpbShcbiAgICAgICAgICBcIkFnZW50cyBpbiB0ZXN0aW5nIGNhbiBvbmx5IHJlYWNoIGludml0ZWQgdGVzdCBkZXZpY2VzIOKAlCBhcHByb3ZlZCBhZ2VudHMgcmVhY2ggZXZlcnlvbmUuXCIsXG4gICAgICAgICksXG4gICAgICApO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { AuthenticatedCommand } from "../../lib/base-command.js";
|
|
2
|
+
export default class RcsCapability extends AuthenticatedCommand {
|
|
3
|
+
static description: string;
|
|
4
|
+
static examples: string[];
|
|
5
|
+
static flags: {
|
|
6
|
+
to: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
|
|
7
|
+
agent: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
|
|
8
|
+
json: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
|
|
9
|
+
quiet: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
|
|
10
|
+
};
|
|
11
|
+
run(): Promise<void>;
|
|
12
|
+
}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { Flags } from "@oclif/core";
|
|
2
|
+
import { AuthenticatedCommand } from "../../lib/base-command.js";
|
|
3
|
+
import { apiClient, ApiKeyRequiredError, NotFoundError, ValidationError, } from "../../lib/api-client.js";
|
|
4
|
+
import { success, error, json, colors, spinner, isJsonMode, } from "../../lib/output.js";
|
|
5
|
+
export default class RcsCapability extends AuthenticatedCommand {
|
|
6
|
+
static description = "Check whether a recipient's device can receive RCS before you send";
|
|
7
|
+
static examples = [
|
|
8
|
+
"<%= config.bin %> rcs capability --to +15125550190",
|
|
9
|
+
"<%= config.bin %> rcs capability --to +15125550190 --agent 3f6a1c9e-0000-0000-0000-000000000000",
|
|
10
|
+
"<%= config.bin %> rcs capability --to +15125550190 --json",
|
|
11
|
+
];
|
|
12
|
+
static flags = {
|
|
13
|
+
...AuthenticatedCommand.baseFlags,
|
|
14
|
+
to: Flags.string({
|
|
15
|
+
char: "t",
|
|
16
|
+
description: "Recipient phone number to check (E.164 format)",
|
|
17
|
+
required: true,
|
|
18
|
+
}),
|
|
19
|
+
agent: Flags.string({
|
|
20
|
+
description: "RCS agent id to check with (only needed when your workspace has more than one — see `rcs agents`)",
|
|
21
|
+
}),
|
|
22
|
+
};
|
|
23
|
+
async run() {
|
|
24
|
+
const { flags } = await this.parse(RcsCapability);
|
|
25
|
+
const checkSpinner = spinner("Checking RCS capability...");
|
|
26
|
+
if (!isJsonMode()) {
|
|
27
|
+
checkSpinner.start();
|
|
28
|
+
}
|
|
29
|
+
let response;
|
|
30
|
+
try {
|
|
31
|
+
response = await apiClient.get("/api/v1/rcs/capability", {
|
|
32
|
+
to: flags.to,
|
|
33
|
+
...(flags.agent && { agentId: flags.agent }),
|
|
34
|
+
});
|
|
35
|
+
checkSpinner.stop();
|
|
36
|
+
}
|
|
37
|
+
catch (err) {
|
|
38
|
+
checkSpinner.stop();
|
|
39
|
+
if (err instanceof NotFoundError) {
|
|
40
|
+
error(err.message === "Resource not found"
|
|
41
|
+
? "RCS isn't available on your workspace yet."
|
|
42
|
+
: err.message, {
|
|
43
|
+
hint: "RCS is rolling out gradually — contact support@sendly.live for early access.",
|
|
44
|
+
});
|
|
45
|
+
this.exit(1);
|
|
46
|
+
}
|
|
47
|
+
if (err instanceof ApiKeyRequiredError) {
|
|
48
|
+
error("RCS capability checks require a live API key.", {
|
|
49
|
+
hint: "The check reaches the carrier network, so test keys can't run it — create one with `sendly keys create --type live`",
|
|
50
|
+
});
|
|
51
|
+
this.exit(1);
|
|
52
|
+
}
|
|
53
|
+
if (err instanceof ValidationError &&
|
|
54
|
+
/more than one RCS agent/i.test(err.message ?? "")) {
|
|
55
|
+
error(err.message, {
|
|
56
|
+
hint: "Pass --agent <id> — list them with `sendly rcs agents`",
|
|
57
|
+
});
|
|
58
|
+
this.exit(1);
|
|
59
|
+
}
|
|
60
|
+
throw err;
|
|
61
|
+
}
|
|
62
|
+
if (isJsonMode()) {
|
|
63
|
+
json(response);
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
success("RCS capability check", {
|
|
67
|
+
To: response.to,
|
|
68
|
+
Agent: colors.code(response.agentId),
|
|
69
|
+
Capable: response.capable
|
|
70
|
+
? colors.success("yes")
|
|
71
|
+
: colors.error("no"),
|
|
72
|
+
Features: response.features?.length
|
|
73
|
+
? response.features.join(", ")
|
|
74
|
+
: colors.dim("—"),
|
|
75
|
+
});
|
|
76
|
+
console.log();
|
|
77
|
+
if (response.capable) {
|
|
78
|
+
console.log(colors.dim(`Send with: ${colors.code(`sendly rcs send --to ${response.to} --text "Hello!"`)}`));
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
console.log(colors.dim("Sends to this recipient will deliver as plain SMS (unless you pass --no-fallback)."));
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FwYWJpbGl0eS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tYW5kcy9yY3MvY2FwYWJpbGl0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2pFLE9BQU8sRUFDTCxTQUFTLEVBQ1QsbUJBQW1CLEVBQ25CLGFBQWEsRUFDYixlQUFlLEdBQ2hCLE1BQU0seUJBQXlCLENBQUM7QUFDakMsT0FBTyxFQUNMLE9BQU8sRUFDUCxLQUFLLEVBQ0wsSUFBSSxFQUNKLE1BQU0sRUFDTixPQUFPLEVBQ1AsVUFBVSxHQUNYLE1BQU0scUJBQXFCLENBQUM7QUFTN0IsTUFBTSxDQUFDLE9BQU8sT0FBTyxhQUFjLFNBQVEsb0JBQW9CO0lBQzdELE1BQU0sQ0FBQyxXQUFXLEdBQ2hCLG9FQUFvRSxDQUFDO0lBRXZFLE1BQU0sQ0FBQyxRQUFRLEdBQUc7UUFDaEIsb0RBQW9EO1FBQ3BELGlHQUFpRztRQUNqRywyREFBMkQ7S0FDNUQsQ0FBQztJQUVGLE1BQU0sQ0FBQyxLQUFLLEdBQUc7UUFDYixHQUFHLG9CQUFvQixDQUFDLFNBQVM7UUFDakMsRUFBRSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUM7WUFDZixJQUFJLEVBQUUsR0FBRztZQUNULFdBQVcsRUFBRSxnREFBZ0Q7WUFDN0QsUUFBUSxFQUFFLElBQUk7U0FDZixDQUFDO1FBQ0YsS0FBSyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUM7WUFDbEIsV0FBVyxFQUNULG1HQUFtRztTQUN0RyxDQUFDO0tBQ0gsQ0FBQztJQUVGLEtBQUssQ0FBQyxHQUFHO1FBQ1AsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUVsRCxNQUFNLFlBQVksR0FBRyxPQUFPLENB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LENBQ0YsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmxhZ3MgfSBmcm9tIFwiQG9jbGlmL2NvcmVcIjtcbmltcG9ydCB7IEF1dGhlbnRpY2F0ZWRDb21tYW5kIH0gZnJvbSBcIi4uLy4uL2xpYi9iYXNlLWNvbW1hbmQuanNcIjtcbmltcG9ydCB7XG4gIGFwaUNsaWVudCxcbiAgQXBpS2V5UmVxdWlyZWRFcnJvcixcbiAgTm90Rm91bmRFcnJvcixcbiAgVmFsaWRhdGlvbkVycm9yLFxufSBmcm9tIFwiLi4vLi4vbGliL2FwaS1jbGllbnQuanNcIjtcbmltcG9ydCB7XG4gIHN1Y2Nlc3MsXG4gIGVycm9yLFxuICBqc29uLFxuICBjb2xvcnMsXG4gIHNwaW5uZXIsXG4gIGlzSnNvbk1vZGUsXG59IGZyb20gXCIuLi8uLi9saWIvb3V0cHV0LmpzXCI7XG5cbmludGVyZmFjZSBDYXBhYmlsaXR5UmVzcG9uc2Uge1xuICB0bzogc3RyaW5nO1xuICBhZ2VudElkOiBzdHJpbmc7XG4gIGNhcGFibGU6IGJvb2xlYW47XG4gIGZlYXR1cmVzOiBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUmNzQ2FwYWJpbGl0eSBleHRlbmRzIEF1dGhlbnRpY2F0ZWRDb21tYW5kIHtcbiAgc3RhdGljIGRlc2NyaXB0aW9uID1cbiAgICBcIkNoZWNrIHdoZXRoZXIgYSByZWNpcGllbnQncyBkZXZpY2UgY2FuIHJlY2VpdmUgUkNTIGJlZm9yZSB5b3Ugc2VuZFwiO1xuXG4gIHN0YXRpYyBleGFtcGxlcyA9IFtcbiAgICBcIjwlPSBjb25maWcuYmluICU+IHJjcyBjYXBhYmlsaXR5IC0tdG8gKzE1MTI1NTUwMTkwXCIsXG4gICAgXCI8JT0gY29uZmlnLmJpbiAlPiByY3MgY2FwYWJpbGl0eSAtLXRvICsxNTEyNTU1MDE5MCAtLWFnZW50IDNmNmExYzllLTAwMDAtMDAwMC0wMDAwLTAwMDAwMDAwMDAwMFwiLFxuICAgIFwiPCU9IGNvbmZpZy5iaW4gJT4gcmNzIGNhcGFiaWxpdHkgLS10byArMTUxMjU1NTAxOTAgLS1qc29uXCIsXG4gIF07XG5cbiAgc3RhdGljIGZsYWdzID0ge1xuICAgIC4uLkF1dGhlbnRpY2F0ZWRDb21tYW5kLmJhc2VGbGFncyxcbiAgICB0bzogRmxhZ3Muc3RyaW5nKHtcbiAgICAgIGNoYXI6IFwidFwiLFxuICAgICAgZGVzY3JpcHRpb246IFwiUmVjaXBpZW50IHBob25lIG51bWJlciB0byBjaGVjayAoRS4xNjQgZm9ybWF0KVwiLFxuICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgfSksXG4gICAgYWdlbnQ6IEZsYWdzLnN0cmluZyh7XG4gICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgXCJSQ1MgYWdlbnQgaWQgdG8gY2hlY2sgd2l0aCAob25seSBuZWVkZWQgd2hlbiB5b3VyIHdvcmtzcGFjZSBoYXMgbW9yZSB0aGFuIG9uZSDigJQgc2VlIGByY3MgYWdlbnRzYClcIixcbiAgICB9KSxcbiAgfTtcblxuICBhc3luYyBydW4oKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgeyBmbGFncyB9ID0gYXdhaXQgdGhpcy5wYXJzZShSY3NDYXBhYmlsaXR5KTtcblxuICAgIGNvbnN0IGNoZWNrU3Bpbm5lciA9IHNwaW5uZXIoXCJDaGVja2luZyBSQ1MgY2FwYWJpbGl0eS4uLlwiKTtcbiAgICBpZiAoIWlzSnNvbk1vZGUoKSkge1xuICAgICAgY2hlY2tTcGlubmVyLnN0YXJ0KCk7XG4gICAgfVxuXG4gICAgbGV0IHJlc3BvbnNlOiBDYXBhYmlsaXR5UmVzcG9uc2U7XG4gICAgdHJ5IHtcbiAgICAgIHJlc3BvbnNlID0gYXdhaXQgYXBpQ2xpZW50LmdldDxDYXBhYmlsaXR5UmVzcG9uc2U+KFxuICAgICAgICBcIi9hcGkvdjEvcmNzL2NhcGFiaWxpdHlcIixcbiAgICAgICAge1xuICAgICAgICAgIHRvOiBmbGFncy50byxcbiAgICAgICAgICAuLi4oZmxhZ3MuYWdlbnQgJiYgeyBhZ2VudElkOiBmbGFncy5hZ2VudCB9KSxcbiAgICAgICAgfSxcbiAgICAgICk7XG4gICAgICBjaGVja1NwaW5uZXIuc3RvcCgpO1xuICAgIH0gY2F0Y2ggKGVycjogYW55KSB7XG4gICAgICBjaGVja1NwaW5uZXIuc3RvcCgpO1xuICAgICAgaWYgKGVyciBpbnN0YW5jZW9mIE5vdEZvdW5kRXJyb3IpIHtcbiAgICAgICAgZXJyb3IoXG4gICAgICAgICAgZXJyLm1lc3NhZ2UgPT09IFwiUmVzb3VyY2Ugbm90IGZvdW5kXCJcbiAgICAgICAgICAgID8gXCJSQ1MgaXNuJ3QgYXZhaWxhYmxlIG9uIHlvdXIgd29ya3NwYWNlIHlldC5cIlxuICAgICAgICAgICAgOiBlcnIubWVzc2FnZSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBoaW50OiBcIlJDUyBpcyByb2xsaW5nIG91dCBncmFkdWFsbHkg4oCUIGNvbnRhY3Qgc3VwcG9ydEBzZW5kbHkubGl2ZSBmb3IgZWFybHkgYWNjZXNzLlwiLFxuICAgICAgICAgIH0sXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuZXhpdCgxKTtcbiAgICAgIH1cbiAgICAgIGlmIChlcnIgaW5zdGFuY2VvZiBBcGlLZXlSZXF1aXJlZEVycm9yKSB7XG4gICAgICAgIGVycm9yKFwiUkNTIGNhcGFiaWxpdHkgY2hlY2tzIHJlcXVpcmUgYSBsaXZlIEFQSSBrZXkuXCIsIHtcbiAgICAgICAgICBoaW50OiBcIlRoZSBjaGVjayByZWFjaGVzIHRoZSBjYXJyaWVyIG5ldHdvcmssIHNvIHRlc3Qga2V5cyBjYW4ndCBydW4gaXQg4oCUIGNyZWF0ZSBvbmUgd2l0aCBgc2VuZGx5IGtleXMgY3JlYXRlIC0tdHlwZSBsaXZlYFwiLFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5leGl0KDEpO1xuICAgICAgfVxuICAgICAgaWYgKFxuICAgICAgICBlcnIgaW5zdGFuY2VvZiBWYWxpZGF0aW9uRXJyb3IgJiZcbiAgICAgICAgL21vcmUgdGhhbiBvbmUgUkNTIGFnZW50L2kudGVzdChlcnIubWVzc2FnZSA/PyBcIlwiKVxuICAgICAgKSB7XG4gICAgICAgIGVycm9yKGVyci5tZXNzYWdlLCB7XG4gICAgICAgICAgaGludDogXCJQYXNzIC0tYWdlbnQgPGlkPiDigJQgbGlzdCB0aGVtIHdpdGggYHNlbmRseSByY3MgYWdlbnRzYFwiLFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5leGl0KDEpO1xuICAgICAgfVxuICAgICAgdGhyb3cgZXJyO1xuICAgIH1cblxuICAgIGlmIChpc0pzb25Nb2RlKCkpIHtcbiAgICAgIGpzb24ocmVzcG9uc2UpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHN1Y2Nlc3MoXCJSQ1MgY2FwYWJpbGl0eSBjaGVja1wiLCB7XG4gICAgICBUbzogcmVzcG9uc2UudG8sXG4gICAgICBBZ2VudDogY29sb3JzLmNvZGUocmVzcG9uc2UuYWdlbnRJZCksXG4gICAgICBDYXBhYmxlOiByZXNwb25zZS5jYXBhYmxlXG4gICAgICAgID8gY29sb3JzLnN1Y2Nlc3MoXCJ5ZXNcIilcbiAgICAgICAgOiBjb2xvcnMuZXJyb3IoXCJub1wiKSxcbiAgICAgIEZlYXR1cmVzOiByZXNwb25zZS5mZWF0dXJlcz8ubGVuZ3RoXG4gICAgICAgID8gcmVzcG9uc2UuZmVhdHVyZXMuam9pbihcIiwgXCIpXG4gICAgICAgIDogY29sb3JzLmRpbShcIuKAlFwiKSxcbiAgICB9KTtcblxuICAgIGNvbnNvbGUubG9nKCk7XG4gICAgaWYgKHJlc3BvbnNlLmNhcGFibGUpIHtcbiAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICBjb2xvcnMuZGltKFxuICAgICAgICAgIGBTZW5kIHdpdGg6ICR7Y29sb3JzLmNvZGUoYHNlbmRseSByY3Mgc2VuZCAtLXRvICR7cmVzcG9uc2UudG99IC0tdGV4dCBcIkhlbGxvIVwiYCl9YCxcbiAgICAgICAgKSxcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICBjb2xvcnMuZGltKFxuICAgICAgICAgIFwiU2VuZHMgdG8gdGhpcyByZWNpcGllbnQgd2lsbCBkZWxpdmVyIGFzIHBsYWluIFNNUyAodW5sZXNzIHlvdSBwYXNzIC0tbm8tZmFsbGJhY2spLlwiLFxuICAgICAgICApLFxuICAgICAgKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { AuthenticatedCommand } from "../../lib/base-command.js";
|
|
2
|
+
export default class RcsSend extends AuthenticatedCommand {
|
|
3
|
+
static description: string;
|
|
4
|
+
static examples: string[];
|
|
5
|
+
static flags: {
|
|
6
|
+
to: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
|
|
7
|
+
text: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
|
|
8
|
+
agent: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
|
|
9
|
+
"card-title": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
|
|
10
|
+
"card-description": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
|
|
11
|
+
"card-media": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
|
|
12
|
+
"card-orientation": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
|
|
13
|
+
"suggest-reply": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string[] | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
|
|
14
|
+
"suggest-url": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string[] | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
|
|
15
|
+
"no-fallback": import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
|
|
16
|
+
"idempotency-key": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
|
|
17
|
+
json: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
|
|
18
|
+
quiet: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
|
|
19
|
+
};
|
|
20
|
+
run(): Promise<void>;
|
|
21
|
+
}
|