@getbrevo/cli 1.0.1 → 1.1.1
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 +31 -0
- package/README.md +16 -4
- package/agent-context/AGENTS.md +23 -5
- package/agent-context/SKILL.md +23 -3
- package/dist/api/client.d.ts +2 -0
- package/dist/api/client.d.ts.map +1 -1
- package/dist/api/client.js +50 -36
- package/dist/api/client.js.map +1 -1
- package/dist/bin/index.js +9 -5
- package/dist/bin/index.js.map +1 -1
- package/dist/commands/app/create.d.ts +1 -0
- package/dist/commands/app/create.d.ts.map +1 -1
- package/dist/commands/app/create.js +257 -201
- package/dist/commands/app/create.js.map +1 -1
- package/dist/commands/app/delete.d.ts.map +1 -1
- package/dist/commands/app/delete.js +81 -62
- package/dist/commands/app/delete.js.map +1 -1
- package/dist/commands/app/list.d.ts.map +1 -1
- package/dist/commands/app/list.js +10 -2
- package/dist/commands/app/list.js.map +1 -1
- package/dist/commands/app/scaffold.d.ts.map +1 -1
- package/dist/commands/app/scaffold.js +14 -3
- package/dist/commands/app/scaffold.js.map +1 -1
- package/dist/commands/app/scopes.d.ts +2 -0
- package/dist/commands/app/scopes.d.ts.map +1 -0
- package/dist/commands/app/scopes.js +81 -0
- package/dist/commands/app/scopes.js.map +1 -0
- package/dist/commands/app/start.d.ts.map +1 -1
- package/dist/commands/app/start.js +7 -0
- package/dist/commands/app/start.js.map +1 -1
- package/dist/commands/app/update.d.ts.map +1 -1
- package/dist/commands/app/update.js +305 -189
- package/dist/commands/app/update.js.map +1 -1
- package/dist/commands/definitions.d.ts.map +1 -1
- package/dist/commands/definitions.js +44 -1
- package/dist/commands/definitions.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +15 -2
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/login.d.ts.map +1 -1
- package/dist/commands/login.js +154 -138
- package/dist/commands/login.js.map +1 -1
- package/dist/commands/whoami.d.ts.map +1 -1
- package/dist/commands/whoami.js +27 -20
- package/dist/commands/whoami.js.map +1 -1
- package/dist/lang/en.d.ts +43 -3
- package/dist/lang/en.d.ts.map +1 -1
- package/dist/lang/en.js +44 -3
- package/dist/lang/en.js.map +1 -1
- package/dist/lib/auth-guard.d.ts.map +1 -1
- package/dist/lib/auth-guard.js +10 -1
- package/dist/lib/auth-guard.js.map +1 -1
- package/dist/lib/cli-version.d.ts +2 -0
- package/dist/lib/cli-version.d.ts.map +1 -0
- package/dist/lib/cli-version.js +59 -0
- package/dist/lib/cli-version.js.map +1 -0
- package/dist/lib/config.d.ts +1 -1
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +15 -1
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/constants.d.ts +12 -1
- package/dist/lib/constants.d.ts.map +1 -1
- package/dist/lib/constants.js +26 -2
- package/dist/lib/constants.js.map +1 -1
- package/dist/lib/logger.d.ts.map +1 -1
- package/dist/lib/logger.js +16 -3
- package/dist/lib/logger.js.map +1 -1
- package/dist/lib/telemetry.d.ts +9 -0
- package/dist/lib/telemetry.d.ts.map +1 -0
- package/dist/lib/telemetry.js +57 -0
- package/dist/lib/telemetry.js.map +1 -0
- package/dist/lib/update-notifier.d.ts.map +1 -1
- package/dist/lib/update-notifier.js +24 -20
- package/dist/lib/update-notifier.js.map +1 -1
- package/dist/lib/validators.d.ts +23 -0
- package/dist/lib/validators.d.ts.map +1 -1
- package/dist/lib/validators.js +75 -0
- package/dist/lib/validators.js.map +1 -1
- package/dist/services/app.d.ts +3 -0
- package/dist/services/app.d.ts.map +1 -1
- package/dist/services/app.js +6 -1
- package/dist/services/app.js.map +1 -1
- package/dist/services/oauth-metadata.d.ts +7 -0
- package/dist/services/oauth-metadata.d.ts.map +1 -0
- package/dist/services/oauth-metadata.js +43 -0
- package/dist/services/oauth-metadata.js.map +1 -0
- package/dist/services/scopes-html.d.ts +3 -0
- package/dist/services/scopes-html.d.ts.map +1 -0
- package/dist/services/scopes-html.js +516 -0
- package/dist/services/scopes-html.js.map +1 -0
- package/dist/services/scopes-web.d.ts +12 -0
- package/dist/services/scopes-web.d.ts.map +1 -0
- package/dist/services/scopes-web.js +95 -0
- package/dist/services/scopes-web.js.map +1 -0
- package/dist/services/skill.js +1 -1
- package/dist/services/skill.js.map +1 -1
- package/dist/skills/index.d.ts +2 -1
- package/dist/skills/index.d.ts.map +1 -1
- package/dist/skills/index.js +3 -22
- package/dist/skills/index.js.map +1 -1
- package/dist/templates/files/AGENTS.md.tmpl +1 -1
- package/dist/templates/files/CLAUDE.md.tmpl +1 -1
- package/dist/templates/files/README.md.tmpl +2 -1
- package/dist/templates/files/app-config.json.tmpl +1 -1
- package/dist/types.d.ts +2 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -2
- package/dist/lib/min-version-check.d.ts +0 -15
- package/dist/lib/min-version-check.d.ts.map +0 -1
- package/dist/lib/min-version-check.js +0 -33
- package/dist/lib/min-version-check.js.map +0 -1
package/dist/lib/logger.js
CHANGED
|
@@ -72,9 +72,22 @@ function logDebug(context, data) {
|
|
|
72
72
|
function formatError(error) {
|
|
73
73
|
if (error instanceof Error)
|
|
74
74
|
return error.stack ?? error.message;
|
|
75
|
-
if (typeof error === '
|
|
76
|
-
return
|
|
77
|
-
|
|
75
|
+
if (typeof error === 'string')
|
|
76
|
+
return error;
|
|
77
|
+
if (typeof error === 'number' ||
|
|
78
|
+
typeof error === 'boolean' ||
|
|
79
|
+
typeof error === 'bigint' ||
|
|
80
|
+
typeof error === 'symbol') {
|
|
81
|
+
return String(error);
|
|
82
|
+
}
|
|
83
|
+
try {
|
|
84
|
+
// JSON.stringify returns undefined for bare `undefined` and functions.
|
|
85
|
+
return JSON.stringify(error) ?? 'undefined';
|
|
86
|
+
}
|
|
87
|
+
catch {
|
|
88
|
+
// Circular structures make JSON.stringify throw.
|
|
89
|
+
return '[unserializable error]';
|
|
90
|
+
}
|
|
78
91
|
}
|
|
79
92
|
function logError(message, error) {
|
|
80
93
|
process.stderr.write(`\n ${color('31', '✗')} ${message}\n`);
|
package/dist/lib/logger.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/lib/logger.ts"],"names":[],"mappings":";;;AA0CA,0BAKC;AAED,0CAMC;AAED,4BAMC;
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/lib/logger.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { CLI_AUTH_METHODS } from './constants';
|
|
2
|
+
export declare function getCliOs(): string;
|
|
3
|
+
export declare function sanitizeHeaderValue(value: string, fallback: string): string;
|
|
4
|
+
type CliAuthMethod = (typeof CLI_AUTH_METHODS)[keyof typeof CLI_AUTH_METHODS];
|
|
5
|
+
export declare function getAuthMethod(authHeader: Record<string, string> | undefined): CliAuthMethod | undefined;
|
|
6
|
+
export declare function getCliUserAgent(authHeader?: Record<string, string>): string;
|
|
7
|
+
export declare function buildCliHeaders(authHeader?: Record<string, string>): Record<string, string>;
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=telemetry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"telemetry.d.ts","sourceRoot":"","sources":["../../src/lib/telemetry.ts"],"names":[],"mappings":"AACA,OAAO,EAAqB,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAuBlE,wBAAgB,QAAQ,IAAI,MAAM,CAEjC;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAG3E;AAMD,KAAK,aAAa,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,OAAO,gBAAgB,CAAC,CAAC;AAK9E,wBAAgB,aAAa,CAC3B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,GAC7C,aAAa,GAAG,SAAS,CAI3B;AAED,wBAAgB,eAAe,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAI3E;AAED,wBAAgB,eAAe,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAE3F"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getCliOs = getCliOs;
|
|
4
|
+
exports.sanitizeHeaderValue = sanitizeHeaderValue;
|
|
5
|
+
exports.getAuthMethod = getAuthMethod;
|
|
6
|
+
exports.getCliUserAgent = getCliUserAgent;
|
|
7
|
+
exports.buildCliHeaders = buildCliHeaders;
|
|
8
|
+
const cli_version_1 = require("./cli-version");
|
|
9
|
+
const constants_1 = require("./constants");
|
|
10
|
+
/**
|
|
11
|
+
* CLI identification sent as a single `User-Agent` header on every API
|
|
12
|
+
* request so the backend can emit product-tracking events (taxonomy card
|
|
13
|
+
* "CLI installed", Kafka topic `cli`) without a dedicated telemetry endpoint.
|
|
14
|
+
*
|
|
15
|
+
* Format: `brevo-cli/<version> (<os>)`, extended with `; auth=<method>` when
|
|
16
|
+
* the request carries credentials — e.g. `brevo-cli/1.2.0 (macos; auth=oauth)`.
|
|
17
|
+
*
|
|
18
|
+
* Values are sanitized to printable ASCII: undici throws a TypeError on
|
|
19
|
+
* header values containing control characters, which would fail every
|
|
20
|
+
* request — sanitizing here removes that failure mode entirely.
|
|
21
|
+
*/
|
|
22
|
+
const OS_BY_PLATFORM = {
|
|
23
|
+
darwin: 'macos',
|
|
24
|
+
win32: 'windows',
|
|
25
|
+
linux: 'linux',
|
|
26
|
+
};
|
|
27
|
+
// The taxonomy card only allows known values to reach Amplitude, so anything
|
|
28
|
+
// outside the mapped platforms is reported as `other` rather than passed raw.
|
|
29
|
+
function getCliOs() {
|
|
30
|
+
return OS_BY_PLATFORM[process.platform] ?? 'other';
|
|
31
|
+
}
|
|
32
|
+
function sanitizeHeaderValue(value, fallback) {
|
|
33
|
+
const sanitized = value.replace(/[^\x20-\x7E]/g, '');
|
|
34
|
+
return sanitized || fallback;
|
|
35
|
+
}
|
|
36
|
+
// CLI_VERSION is fixed at module init, so sanitize it once rather than on
|
|
37
|
+
// every request. Falls back to the same default as cli-version.ts.
|
|
38
|
+
const SAFE_CLI_VERSION = sanitizeHeaderValue(cli_version_1.CLI_VERSION, '0.0.0');
|
|
39
|
+
// Derived from the auth header about to be sent rather than from stored
|
|
40
|
+
// credentials, so login-time validation calls (explicit key/bearer) report
|
|
41
|
+
// the right method without coupling telemetry to credential storage.
|
|
42
|
+
function getAuthMethod(authHeader) {
|
|
43
|
+
if (authHeader && 'api-key' in authHeader)
|
|
44
|
+
return constants_1.CLI_AUTH_METHODS.API_KEY;
|
|
45
|
+
if (authHeader && 'Authorization' in authHeader)
|
|
46
|
+
return constants_1.CLI_AUTH_METHODS.OAUTH;
|
|
47
|
+
return undefined;
|
|
48
|
+
}
|
|
49
|
+
function getCliUserAgent(authHeader) {
|
|
50
|
+
const method = getAuthMethod(authHeader);
|
|
51
|
+
const comment = method ? `${getCliOs()}; auth=${method}` : getCliOs();
|
|
52
|
+
return `brevo-cli/${SAFE_CLI_VERSION} (${comment})`;
|
|
53
|
+
}
|
|
54
|
+
function buildCliHeaders(authHeader) {
|
|
55
|
+
return { [constants_1.USER_AGENT_HEADER]: getCliUserAgent(authHeader) };
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=telemetry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../../src/lib/telemetry.ts"],"names":[],"mappings":";;AAwBA,4BAEC;AAED,kDAGC;AAWD,sCAMC;AAED,0CAIC;AAED,0CAEC;AA1DD,+CAA4C;AAC5C,2CAAkE;AAElE;;;;;;;;;;;GAWG;AAEH,MAAM,cAAc,GAA2B;IAC7C,MAAM,EAAE,OAAO;IACf,KAAK,EAAE,SAAS;IAChB,KAAK,EAAE,OAAO;CACf,CAAC;AAEF,6EAA6E;AAC7E,8EAA8E;AAC9E,SAAgB,QAAQ;IACtB,OAAO,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC;AACrD,CAAC;AAED,SAAgB,mBAAmB,CAAC,KAAa,EAAE,QAAgB;IACjE,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;IACrD,OAAO,SAAS,IAAI,QAAQ,CAAC;AAC/B,CAAC;AAED,0EAA0E;AAC1E,mEAAmE;AACnE,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,yBAAW,EAAE,OAAO,CAAC,CAAC;AAInE,wEAAwE;AACxE,2EAA2E;AAC3E,qEAAqE;AACrE,SAAgB,aAAa,CAC3B,UAA8C;IAE9C,IAAI,UAAU,IAAI,SAAS,IAAI,UAAU;QAAE,OAAO,4BAAgB,CAAC,OAAO,CAAC;IAC3E,IAAI,UAAU,IAAI,eAAe,IAAI,UAAU;QAAE,OAAO,4BAAgB,CAAC,KAAK,CAAC;IAC/E,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAgB,eAAe,CAAC,UAAmC;IACjE,MAAM,MAAM,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,QAAQ,EAAE,UAAU,MAAM,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;IACtE,OAAO,aAAa,gBAAgB,KAAK,OAAO,GAAG,CAAC;AACtD,CAAC;AAED,SAAgB,eAAe,CAAC,UAAmC;IACjE,OAAO,EAAE,CAAC,6BAAiB,CAAC,EAAE,eAAe,CAAC,UAAU,CAAC,EAAE,CAAC;AAC9D,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update-notifier.d.ts","sourceRoot":"","sources":["../../src/lib/update-notifier.ts"],"names":[],"mappings":"AAcA,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,qBAAqB;IACpC,GAAG,EAAE,OAAO,CAAC;IACb,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACzB,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAYD,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAMvE;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,qBAAqB,GAAG,OAAO,CAYpE;
|
|
1
|
+
{"version":3,"file":"update-notifier.d.ts","sourceRoot":"","sources":["../../src/lib/update-notifier.ts"],"names":[],"mappings":"AAcA,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,qBAAqB;IACpC,GAAG,EAAE,OAAO,CAAC;IACb,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACzB,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAYD,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAMvE;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,qBAAqB,GAAG,OAAO,CAYpE;AAmDD,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAUvE;AAED,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAEhE;AAED,wBAAgB,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS,CAgBzE;AAED,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB,GAAG,IAAI,CAO3E;AAED,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,qBAAqB,GAC3B,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAkB7B;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAiBlF;AAED,MAAM,WAAW,iBAAiB;IAChC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,qBAAqB,GAAG,iBAAiB,CA8B/E;AAED,wBAAsB,YAAY,CAChC,MAAM,EAAE,iBAAiB,EACzB,GAAG,EAAE,OAAO,EACZ,MAAM,GAAE,MAAM,CAAC,WAA4B,EAC3C,MAAM,GAAE,MAAuB,GAC9B,OAAO,CAAC,IAAI,CAAC,CASf"}
|
|
@@ -99,9 +99,27 @@ function parseVersion(v) {
|
|
|
99
99
|
prerelease: match[4] ?? '',
|
|
100
100
|
};
|
|
101
101
|
}
|
|
102
|
-
//
|
|
103
|
-
//
|
|
104
|
-
|
|
102
|
+
// Numeric identifiers are compared numerically and always rank below
|
|
103
|
+
// non-numeric ones (semver §11.4).
|
|
104
|
+
function comparePrereleaseIdentifiers(ai, bi) {
|
|
105
|
+
if (ai === bi)
|
|
106
|
+
return 0;
|
|
107
|
+
const aNum = /^\d+$/.test(ai);
|
|
108
|
+
const bNum = /^\d+$/.test(bi);
|
|
109
|
+
if (aNum && bNum) {
|
|
110
|
+
const diff = Number.parseInt(ai, 10) - Number.parseInt(bi, 10);
|
|
111
|
+
if (diff === 0)
|
|
112
|
+
return 0;
|
|
113
|
+
return diff > 0 ? 1 : -1;
|
|
114
|
+
}
|
|
115
|
+
if (aNum)
|
|
116
|
+
return -1;
|
|
117
|
+
if (bNum)
|
|
118
|
+
return 1;
|
|
119
|
+
return ai > bi ? 1 : -1;
|
|
120
|
+
}
|
|
121
|
+
// Per semver §11.4: split on '.', compare identifiers; a longer prerelease
|
|
122
|
+
// set outranks a shorter one when the leading identifiers match.
|
|
105
123
|
function comparePrerelease(a, b) {
|
|
106
124
|
if (a === b)
|
|
107
125
|
return 0;
|
|
@@ -109,23 +127,9 @@ function comparePrerelease(a, b) {
|
|
|
109
127
|
const bParts = b.split('.');
|
|
110
128
|
const len = Math.min(aParts.length, bParts.length);
|
|
111
129
|
for (let i = 0; i < len; i++) {
|
|
112
|
-
const
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
continue;
|
|
116
|
-
const aNum = /^\d+$/.test(ai);
|
|
117
|
-
const bNum = /^\d+$/.test(bi);
|
|
118
|
-
if (aNum && bNum) {
|
|
119
|
-
const diff = Number.parseInt(ai, 10) - Number.parseInt(bi, 10);
|
|
120
|
-
if (diff !== 0)
|
|
121
|
-
return diff > 0 ? 1 : -1;
|
|
122
|
-
continue;
|
|
123
|
-
}
|
|
124
|
-
if (aNum)
|
|
125
|
-
return -1;
|
|
126
|
-
if (bNum)
|
|
127
|
-
return 1;
|
|
128
|
-
return ai > bi ? 1 : -1;
|
|
130
|
+
const cmp = comparePrereleaseIdentifiers(aParts[i] ?? '', bParts[i] ?? '');
|
|
131
|
+
if (cmp !== 0)
|
|
132
|
+
return cmp;
|
|
129
133
|
}
|
|
130
134
|
if (aParts.length === bParts.length)
|
|
131
135
|
return 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update-notifier.js","sourceRoot":"","sources":["../../src/lib/update-notifier.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8CA,wDAMC;AAED,0CAYC;
|
|
1
|
+
{"version":3,"file":"update-notifier.js","sourceRoot":"","sources":["../../src/lib/update-notifier.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/validators.d.ts
CHANGED
|
@@ -19,6 +19,29 @@ export declare function validateUrl(value: string | undefined, fieldName: string
|
|
|
19
19
|
* Validates each URL and accumulates into an array.
|
|
20
20
|
*/
|
|
21
21
|
export declare function collectUrls(value: string, previous?: string[]): string[];
|
|
22
|
+
/**
|
|
23
|
+
* Split a scope string or array of strings into individual scope tokens.
|
|
24
|
+
* Handles embedded commas/whitespace, trims, drops empties, dedupes.
|
|
25
|
+
* Does NOT validate token format — use `validateScopes` for that.
|
|
26
|
+
*/
|
|
27
|
+
export declare function splitScopes(input: string | string[] | undefined | null): string[];
|
|
28
|
+
/**
|
|
29
|
+
* Validate that each scope is a well-formed token.
|
|
30
|
+
* Throws CliError with a user-facing message if any scope is invalid.
|
|
31
|
+
*/
|
|
32
|
+
export declare function validateScopes(scopes: string[]): void;
|
|
33
|
+
/**
|
|
34
|
+
* Commander.js collect function for repeatable --scope flags.
|
|
35
|
+
* Splits each value on commas/whitespace, validates the resulting tokens,
|
|
36
|
+
* and accumulates into an array (deduplicated against previous values).
|
|
37
|
+
*/
|
|
38
|
+
export declare function collectScopes(value: string, previous?: string[]): string[];
|
|
39
|
+
/**
|
|
40
|
+
* Returns true iff the scope list contains the deprecated legacy 'all' scope.
|
|
41
|
+
* Every code path that warns or blocks on the legacy scope calls this helper —
|
|
42
|
+
* no scattered string literals (BEX-214).
|
|
43
|
+
*/
|
|
44
|
+
export declare function containsLegacyAllScope(scopes: string[] | undefined): boolean;
|
|
22
45
|
/**
|
|
23
46
|
* Validate that a value is a positive integer.
|
|
24
47
|
* Throws CliError if the value is not a valid positive integer.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validators.d.ts","sourceRoot":"","sources":["../../src/lib/validators.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"validators.d.ts","sourceRoot":"","sources":["../../src/lib/validators.ts"],"names":[],"mappings":"AAMA;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAU3D;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAC1B,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,OAAO,EAAE,SAAS,MAAM,EAAE,EAC1B,QAAQ,EAAE,MAAM,GACf,IAAI,CAIN;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAkB9E;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAM,EAAO,GAAG,MAAM,EAAE,CAG5E;AAWD;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,EAAE,CAejF;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAQrD;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAM,EAAO,GAAG,MAAM,EAAE,CAW9E;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,GAAG,OAAO,CAE5E;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAMxE;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAMhD"}
|
package/dist/lib/validators.js
CHANGED
|
@@ -4,9 +4,14 @@ exports.validateAppName = validateAppName;
|
|
|
4
4
|
exports.validateEnum = validateEnum;
|
|
5
5
|
exports.validateUrl = validateUrl;
|
|
6
6
|
exports.collectUrls = collectUrls;
|
|
7
|
+
exports.splitScopes = splitScopes;
|
|
8
|
+
exports.validateScopes = validateScopes;
|
|
9
|
+
exports.collectScopes = collectScopes;
|
|
10
|
+
exports.containsLegacyAllScope = containsLegacyAllScope;
|
|
7
11
|
exports.parsePositiveInt = parsePositiveInt;
|
|
8
12
|
exports.parseAppId = parseAppId;
|
|
9
13
|
const errors_1 = require("./errors");
|
|
14
|
+
const constants_1 = require("./constants");
|
|
10
15
|
const APP_NAME_MAX_LENGTH = 48;
|
|
11
16
|
const APP_NAME_REGEX = /^[a-zA-Z0-9 ._\-\u00C0-\u024F]+$/;
|
|
12
17
|
/**
|
|
@@ -66,6 +71,76 @@ function collectUrls(value, previous = []) {
|
|
|
66
71
|
validateUrl(value, 'redirect URL');
|
|
67
72
|
return [...previous, value];
|
|
68
73
|
}
|
|
74
|
+
// OAuth scope tokens are split on commas and whitespace at every boundary
|
|
75
|
+
// (app-config.json reads and --scope flag values) so a user can write either
|
|
76
|
+
// "crm:read crm:write" or "crm:read, crm:write" or one --scope per token and
|
|
77
|
+
// the CLI behaves the same. RFC 6749 §3.3 already mandates space-separation in
|
|
78
|
+
// authorization requests, so the split is consistent with the protocol; the
|
|
79
|
+
// comma is a convenience for users editing JSON arrays.
|
|
80
|
+
const SCOPE_TOKEN_REGEX = /^[A-Za-z0-9][A-Za-z0-9:_.-]*$/;
|
|
81
|
+
const SCOPE_SPLIT_REGEX = /[\s,]+/;
|
|
82
|
+
/**
|
|
83
|
+
* Split a scope string or array of strings into individual scope tokens.
|
|
84
|
+
* Handles embedded commas/whitespace, trims, drops empties, dedupes.
|
|
85
|
+
* Does NOT validate token format — use `validateScopes` for that.
|
|
86
|
+
*/
|
|
87
|
+
function splitScopes(input) {
|
|
88
|
+
if (input == null)
|
|
89
|
+
return [];
|
|
90
|
+
const values = Array.isArray(input) ? input : [input];
|
|
91
|
+
const out = [];
|
|
92
|
+
const seen = new Set();
|
|
93
|
+
for (const v of values) {
|
|
94
|
+
if (typeof v !== 'string')
|
|
95
|
+
continue;
|
|
96
|
+
for (const token of v.split(SCOPE_SPLIT_REGEX)) {
|
|
97
|
+
if (!token)
|
|
98
|
+
continue;
|
|
99
|
+
if (seen.has(token))
|
|
100
|
+
continue;
|
|
101
|
+
seen.add(token);
|
|
102
|
+
out.push(token);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
return out;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Validate that each scope is a well-formed token.
|
|
109
|
+
* Throws CliError with a user-facing message if any scope is invalid.
|
|
110
|
+
*/
|
|
111
|
+
function validateScopes(scopes) {
|
|
112
|
+
for (const scope of scopes) {
|
|
113
|
+
if (!SCOPE_TOKEN_REGEX.test(scope)) {
|
|
114
|
+
throw new errors_1.CliError(`Invalid scope: "${scope}" — scopes can only contain letters, numbers, ':', '_', '.', '-'.`);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Commander.js collect function for repeatable --scope flags.
|
|
120
|
+
* Splits each value on commas/whitespace, validates the resulting tokens,
|
|
121
|
+
* and accumulates into an array (deduplicated against previous values).
|
|
122
|
+
*/
|
|
123
|
+
function collectScopes(value, previous = []) {
|
|
124
|
+
const tokens = splitScopes(value);
|
|
125
|
+
if (tokens.length === 0) {
|
|
126
|
+
throw new errors_1.CliError('Invalid scope: value cannot be empty.');
|
|
127
|
+
}
|
|
128
|
+
validateScopes(tokens);
|
|
129
|
+
const out = [...previous];
|
|
130
|
+
for (const t of tokens) {
|
|
131
|
+
if (!out.includes(t))
|
|
132
|
+
out.push(t);
|
|
133
|
+
}
|
|
134
|
+
return out;
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Returns true iff the scope list contains the deprecated legacy 'all' scope.
|
|
138
|
+
* Every code path that warns or blocks on the legacy scope calls this helper —
|
|
139
|
+
* no scattered string literals (BEX-214).
|
|
140
|
+
*/
|
|
141
|
+
function containsLegacyAllScope(scopes) {
|
|
142
|
+
return scopes?.includes(constants_1.LEGACY_ALL_SCOPE) ?? false;
|
|
143
|
+
}
|
|
69
144
|
/**
|
|
70
145
|
* Validate that a value is a positive integer.
|
|
71
146
|
* Throws CliError if the value is not a valid positive integer.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validators.js","sourceRoot":"","sources":["../../src/lib/validators.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"validators.js","sourceRoot":"","sources":["../../src/lib/validators.ts"],"names":[],"mappings":"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"}
|
package/dist/services/app.d.ts
CHANGED
|
@@ -24,10 +24,13 @@ export declare function createAppService(client: ApiClient): {
|
|
|
24
24
|
public: boolean;
|
|
25
25
|
redirect_uris?: string[];
|
|
26
26
|
scopes?: string[];
|
|
27
|
+
logo_uri?: string;
|
|
27
28
|
}): Promise<CreateAppResponse>;
|
|
28
29
|
updateApp(appId: string, body: {
|
|
29
30
|
name?: string;
|
|
30
31
|
redirect_uris: string[];
|
|
32
|
+
scopes?: string[];
|
|
33
|
+
logo_uri?: string;
|
|
31
34
|
}): Promise<void>;
|
|
32
35
|
deleteApp(appId: string): Promise<void>;
|
|
33
36
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../src/services/app.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../src/services/app.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAQ1C,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAmBvD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS;yBAChB,OAAO,CAAC,QAAQ,EAAE,CAAC;oBAQ3B,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;2BAWtC,MAAM,iBACN,CAAC,GAAG,EAAE,QAAQ,KAAK,MAAM,GACvC,OAAO,CAAC,MAAM,CAAC;IA2BlB;;;;OAIG;iCACgC,MAAM,GAAG,OAAO,CAAC;QAAE,GAAG,EAAE,QAAQ,CAAC;QAAC,KAAK,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,IAAI,CAAC;IA8B9F;;;;OAIG;8BACuB,MAAM,OAAO,QAAQ,GAAG,IAAI;uBAU7B;QACvB,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,OAAO,CAAC;QAChB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;QACzB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,GAAG,OAAO,CAAC,iBAAiB,CAAC;qBAUrB,MAAM,QACP;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,EAAE,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GACrF,OAAO,CAAC,IAAI,CAAC;qBAOO,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;EAQhD;AAED,MAAM,MAAM,UAAU,GAAG,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC"}
|
package/dist/services/app.js
CHANGED
|
@@ -5,6 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.createAppService = createAppService;
|
|
7
7
|
const inquirer_1 = __importDefault(require("inquirer"));
|
|
8
|
+
const cli_version_1 = require("../lib/cli-version");
|
|
8
9
|
const constants_1 = require("../lib/constants");
|
|
9
10
|
const errors_1 = require("../lib/errors");
|
|
10
11
|
const exit_codes_1 = require("../lib/exit-codes");
|
|
@@ -121,11 +122,15 @@ function createAppService(client) {
|
|
|
121
122
|
const raw = await client.post(constants_1.ENDPOINTS.OAUTH_APPS, {
|
|
122
123
|
...payload,
|
|
123
124
|
source: 'cli',
|
|
125
|
+
cli_version: cli_version_1.CLI_VERSION,
|
|
124
126
|
});
|
|
125
127
|
return (0, normalize_app_id_1.normalizeAppId)(raw);
|
|
126
128
|
},
|
|
127
129
|
async updateApp(appId, body) {
|
|
128
|
-
await client.put(constants_1.ENDPOINTS.APP_STORE_APP_UPDATE(appId),
|
|
130
|
+
await client.put(constants_1.ENDPOINTS.APP_STORE_APP_UPDATE(appId), {
|
|
131
|
+
...body,
|
|
132
|
+
cli_version: cli_version_1.CLI_VERSION,
|
|
133
|
+
});
|
|
129
134
|
},
|
|
130
135
|
async deleteApp(appId) {
|
|
131
136
|
try {
|
package/dist/services/app.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/services/app.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/services/app.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oauth-metadata.d.ts","sourceRoot":"","sources":["../../src/services/oauth-metadata.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AASD,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC,CAuDlE"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.fetchSupportedScopes = fetchSupportedScopes;
|
|
4
|
+
const constants_1 = require("../lib/constants");
|
|
5
|
+
const errors_1 = require("../lib/errors");
|
|
6
|
+
const en_1 = require("../lang/en");
|
|
7
|
+
async function fetchSupportedScopes() {
|
|
8
|
+
let response;
|
|
9
|
+
try {
|
|
10
|
+
response = await fetch(constants_1.OAUTH_SCOPES_URL, { method: 'GET' });
|
|
11
|
+
}
|
|
12
|
+
catch {
|
|
13
|
+
throw new errors_1.ApiError(en_1.messages.OAUTH_METADATA_FETCH_FAILED(constants_1.OAUTH_SCOPES_URL, 0), 0, errors_1.ErrorCode.NETWORK_ERROR);
|
|
14
|
+
}
|
|
15
|
+
if (!response.ok) {
|
|
16
|
+
throw new errors_1.ApiError(en_1.messages.OAUTH_METADATA_FETCH_FAILED(constants_1.OAUTH_SCOPES_URL, response.status), response.status);
|
|
17
|
+
}
|
|
18
|
+
let body;
|
|
19
|
+
try {
|
|
20
|
+
body = await response.json();
|
|
21
|
+
}
|
|
22
|
+
catch {
|
|
23
|
+
throw new errors_1.CliError(en_1.messages.OAUTH_METADATA_MISSING_SCOPES);
|
|
24
|
+
}
|
|
25
|
+
if (!body || typeof body !== 'object' || !Array.isArray(body.scopes)) {
|
|
26
|
+
throw new errors_1.CliError(en_1.messages.OAUTH_METADATA_MISSING_SCOPES);
|
|
27
|
+
}
|
|
28
|
+
const rawScopes = body.scopes;
|
|
29
|
+
return rawScopes
|
|
30
|
+
.filter((s) => !!s &&
|
|
31
|
+
typeof s === 'object' &&
|
|
32
|
+
typeof s.name === 'string' &&
|
|
33
|
+
typeof s.category === 'string' &&
|
|
34
|
+
s.is_oidc_reserved !== true)
|
|
35
|
+
.map((s) => ({
|
|
36
|
+
name: s.name,
|
|
37
|
+
category: s.category,
|
|
38
|
+
apiEndpoints: Array.isArray(s.api_endpoints)
|
|
39
|
+
? s.api_endpoints.filter((e) => typeof e === 'string')
|
|
40
|
+
: [],
|
|
41
|
+
}));
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=oauth-metadata.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oauth-metadata.js","sourceRoot":"","sources":["../../src/services/oauth-metadata.ts"],"names":[],"mappings":";;AAiBA,oDAuDC;AAxED,gDAAoD;AACpD,0CAA8D;AAC9D,mCAAsC;AAe/B,KAAK,UAAU,oBAAoB;IACxC,IAAI,QAAkB,CAAC;IACvB,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,KAAK,CAAC,4BAAgB,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;IAC9D,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,iBAAQ,CAChB,aAAQ,CAAC,2BAA2B,CAAC,4BAAgB,EAAE,CAAC,CAAC,EACzD,CAAC,EACD,kBAAS,CAAC,aAAa,CACxB,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,iBAAQ,CAChB,aAAQ,CAAC,2BAA2B,CAAC,4BAAgB,EAAE,QAAQ,CAAC,MAAM,CAAC,EACvE,QAAQ,CAAC,MAAM,CAChB,CAAC;IACJ,CAAC;IAED,IAAI,IAAa,CAAC;IAClB,IAAI,CAAC;QACH,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,iBAAQ,CAAC,aAAQ,CAAC,6BAA6B,CAAC,CAAC;IAC7D,CAAC;IAED,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAE,IAA6B,CAAC,MAAM,CAAC,EAAE,CAAC;QAC/F,MAAM,IAAI,iBAAQ,CAAC,aAAQ,CAAC,6BAA6B,CAAC,CAAC;IAC7D,CAAC;IAED,MAAM,SAAS,GAAI,IAA8B,CAAC,MAAoB,CAAC;IAEvE,OAAO,SAAS;SACb,MAAM,CACL,CACE,CAAC,EAMD,EAAE,CACF,CAAC,CAAC,CAAC;QACH,OAAO,CAAC,KAAK,QAAQ;QACrB,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ;QAC1B,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ;QAC9B,CAAC,CAAC,gBAAgB,KAAK,IAAI,CAC9B;SACA,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACX,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,QAAQ,EAAE,CAAC,CAAC,QAAQ;QACpB,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC;YAC1C,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC;YACnE,CAAC,CAAC,EAAE;KACP,CAAC,CAAC,CAAC;AACR,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scopes-html.d.ts","sourceRoot":"","sources":["../../src/services/scopes-html.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAmcnD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,MAAM,CAqE9D"}
|