@pipeline-builder/api-core 5.2.10 → 5.2.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/helpers/org-hierarchy-http.d.ts +3 -2
- package/lib/helpers/org-hierarchy-http.js +11 -5
- package/lib/middleware/index.d.ts +1 -1
- package/lib/middleware/index.js +2 -2
- package/lib/middleware/step-up.d.ts +4 -3
- package/lib/middleware/step-up.js +1 -1
- package/lib/services/index.d.ts +2 -2
- package/lib/services/index.js +2 -2
- package/lib/services/quota.d.ts +1 -2
- package/lib/services/quota.js +1 -1
- package/lib/services/version-vuln-policy.d.ts +1 -3
- package/lib/services/version-vuln-policy.js +2 -3
- package/lib/types/common.d.ts +13 -22
- package/lib/types/common.js +44 -5
- package/lib/types/ecosystem-notifications.d.ts +218 -26
- package/lib/types/ecosystem-notifications.js +26 -10
- package/lib/types/ecosystem.d.ts +1 -0
- package/lib/types/ecosystem.js +33 -23
- package/lib/types/error-codes.d.ts +41 -0
- package/lib/types/error-codes.js +62 -1
- package/lib/types/feature-flags.d.ts +11 -4
- package/lib/types/feature-flags.js +51 -11
- package/lib/types/index.d.ts +1 -1
- package/lib/types/index.js +2 -2
- package/lib/types/permissions.d.ts +353 -22
- package/lib/types/permissions.js +263 -125
- package/lib/types/pipeline.d.ts +2 -0
- package/lib/types/pipeline.js +3 -1
- package/lib/types/plugin-catalog.d.ts +68 -0
- package/lib/types/plugin-catalog.js +82 -1
- package/lib/types/quota-tiers.d.ts +6 -24
- package/lib/types/quota-tiers.js +6 -28
- package/lib/types/remote-audit-actions.d.ts +1 -1
- package/lib/types/remote-audit-actions.js +22 -1
- package/lib/types/tier-limits.d.ts +19 -0
- package/lib/types/tier-limits.js +27 -1
- package/lib/types/usage-projection.d.ts +0 -16
- package/lib/types/usage-projection.js +1 -20
- package/lib/types/wire-vocabulary.d.ts +81 -2
- package/lib/types/wire-vocabulary.js +89 -3
- package/lib/validation/index.d.ts +1 -1
- package/lib/validation/index.js +2 -2
- package/lib/validation/pipeline-schemas.d.ts +22 -0
- package/lib/validation/pipeline-schemas.js +19 -1
- package/lib/validation/plugin-spec-schema.d.ts +45 -2
- package/lib/validation/plugin-spec-schema.js +85 -7
- package/package.json +8 -1
|
@@ -3,8 +3,10 @@
|
|
|
3
3
|
* browser. Each is an `as const` array (the runtime list a Zod enum, a Mongoose
|
|
4
4
|
* enum or a drizzle `$type` builds from) plus the union type derived from it.
|
|
5
5
|
*
|
|
6
|
-
* Dependency-free on purpose
|
|
7
|
-
*
|
|
6
|
+
* Dependency-free on purpose (no imports at all): the browser imports it
|
|
7
|
+
* directly through the `@pipeline-builder/api-core/wire-vocabulary` subpath, so
|
|
8
|
+
* a frontend catalog derives its order and list from these tuples and a value
|
|
9
|
+
* added here reaches every exhaustive label map as a compile error instead of a
|
|
8
10
|
* silently unhandled string. The Postgres CHECK constraints in each deploy
|
|
9
11
|
* target's `postgres-init.sql` mirror the ones stored in SQL.
|
|
10
12
|
*/
|
|
@@ -125,3 +127,80 @@ export type PluginSecurityRecipientMode = (typeof PLUGIN_SECURITY_RECIPIENT_MODE
|
|
|
125
127
|
/** How rescan findings (N31) are batched; blocked builds (N30) are always immediate. */
|
|
126
128
|
export declare const PLUGIN_SECURITY_DIGEST_MODES: readonly ['immediate', 'daily', 'weekly'];
|
|
127
129
|
export type PluginSecurityDigestMode = (typeof PLUGIN_SECURITY_DIGEST_MODES)[number];
|
|
130
|
+
/**
|
|
131
|
+
* The coarse per-org membership label (`UserOrganization.role`,
|
|
132
|
+
* `Invitation.role`, the access token's `role`), highest authority first:
|
|
133
|
+
* `owner` created the org or received an ownership transfer, `admin` manages
|
|
134
|
+
* members and settings, `member` has standard access. DERIVED from the Roles a
|
|
135
|
+
* user is assigned (the highest `grantsRole` among them; `owner` only by
|
|
136
|
+
* transfer) — a display/authority label driving `isAdmin`, ownership and seat
|
|
137
|
+
* accounting, NOT a permission source (see `resolveUserPermissions`).
|
|
138
|
+
*/
|
|
139
|
+
export declare const ORG_ROLES: readonly ['owner', 'admin', 'member'];
|
|
140
|
+
export type OrgRole = (typeof ORG_ROLES)[number];
|
|
141
|
+
/**
|
|
142
|
+
* The membership roles that ADMINISTER an org: the token's `isAdmin`, the
|
|
143
|
+
* "notify this org's admins" lookups and the invite/approval authority checks
|
|
144
|
+
* all read this one list.
|
|
145
|
+
*/
|
|
146
|
+
export declare const ADMIN_ORG_ROLES: readonly ["owner", "admin"];
|
|
147
|
+
export type AdminOrgRole = (typeof ADMIN_ORG_ROLES)[number];
|
|
148
|
+
/** Whether `value` is a membership role, narrowing it. */
|
|
149
|
+
export declare function isOrgRole(value: unknown): value is OrgRole;
|
|
150
|
+
/** Whether `role` administers its org (`owner` or `admin`). */
|
|
151
|
+
export declare function isAdminOrgRole(role: unknown): role is AdminOrgRole;
|
|
152
|
+
/** Where an org's alert destination delivers (`alert_destinations.channel`). */
|
|
153
|
+
export declare const ALERT_CHANNELS: readonly ['slack', 'webhook', 'in-app', 'email'];
|
|
154
|
+
export type AlertChannel = (typeof ALERT_CHANNELS)[number];
|
|
155
|
+
/**
|
|
156
|
+
* The severity ladder an org sets on its alert rules and uses as a
|
|
157
|
+
* destination's `minSeverity` floor, least severe first (`warning` =
|
|
158
|
+
* warning+critical, `critical` = critical only). Mirrors Alertmanager severity
|
|
159
|
+
* ordering. An inbound alert may also carry `info`, which no rule can emit and
|
|
160
|
+
* no destination can subscribe to.
|
|
161
|
+
*/
|
|
162
|
+
export declare const ALERT_RULE_SEVERITIES: readonly ['warning', 'critical'];
|
|
163
|
+
export type AlertRuleSeverity = (typeof ALERT_RULE_SEVERITIES)[number];
|
|
164
|
+
/** A support case's lifecycle state (`support_cases.status`). */
|
|
165
|
+
export declare const SUPPORT_CASE_STATUSES: readonly ['open', 'awaiting_support', 'awaiting_customer', 'resolved', 'closed'];
|
|
166
|
+
export type SupportCaseStatus = (typeof SUPPORT_CASE_STATUSES)[number];
|
|
167
|
+
/**
|
|
168
|
+
* The statuses a TENANT may set on its own case. `awaiting_support` and
|
|
169
|
+
* `resolved` are the support desk's to set; `closed` is the tenant's way out
|
|
170
|
+
* (and, once there, a tenant cannot move the case back).
|
|
171
|
+
*/
|
|
172
|
+
export declare const TENANT_SUPPORT_CASE_STATUSES: readonly ["open", "awaiting_customer", "closed"];
|
|
173
|
+
export type TenantSupportCaseStatus = (typeof TENANT_SUPPORT_CASE_STATUSES)[number];
|
|
174
|
+
/** Statuses a tenant cannot move OUT of. */
|
|
175
|
+
export declare const TENANT_TERMINAL_SUPPORT_CASE_STATUSES: readonly ["closed"];
|
|
176
|
+
/** Statuses a case is still LIVE in (not resolved or closed). */
|
|
177
|
+
export declare const LIVE_SUPPORT_CASE_STATUSES: readonly ["open", "awaiting_support", "awaiting_customer"];
|
|
178
|
+
/** What a compliance scan (or a scan schedule) covers: one rule target, or every one. */
|
|
179
|
+
export declare const COMPLIANCE_SCAN_TARGETS: readonly ["plugin", "pipeline", "all"];
|
|
180
|
+
export type ComplianceScanTarget = (typeof COMPLIANCE_SCAN_TARGETS)[number];
|
|
181
|
+
export declare const COMPLIANCE_SCAN_STATUSES: readonly ['pending', 'running', 'completed', 'failed', 'cancelled'];
|
|
182
|
+
export type ComplianceScanStatus = (typeof COMPLIANCE_SCAN_STATUSES)[number];
|
|
183
|
+
/** Why a scan row exists. `rule-dry-run` scans evaluate without writing the check log or notifying. */
|
|
184
|
+
export declare const COMPLIANCE_SCAN_TRIGGERS: readonly ['manual', 'scheduled', 'rule-change', 'rule-dry-run'];
|
|
185
|
+
export type ComplianceScanTrigger = (typeof COMPLIANCE_SCAN_TRIGGERS)[number];
|
|
186
|
+
export declare const COMPLIANCE_EXEMPTION_STATUSES: readonly ['pending', 'approved', 'rejected', 'expired'];
|
|
187
|
+
export type ComplianceExemptionStatus = (typeof COMPLIANCE_EXEMPTION_STATUSES)[number];
|
|
188
|
+
/** The two decisions a reviewer can make on a pending exemption. */
|
|
189
|
+
export declare const COMPLIANCE_EXEMPTION_DECISIONS: readonly ["approved", "rejected"];
|
|
190
|
+
export type ComplianceExemptionDecision = (typeof COMPLIANCE_EXEMPTION_DECISIONS)[number];
|
|
191
|
+
/** A compliance check-log row's verdict (`compliance_check_log.result`). */
|
|
192
|
+
export declare const COMPLIANCE_CHECK_RESULTS: readonly ['pass', 'warn', 'block'];
|
|
193
|
+
export type ComplianceCheckVerdict = (typeof COMPLIANCE_CHECK_RESULTS)[number];
|
|
194
|
+
/** Whose key serves an AI call: the caller's own (`request`, BYOK), the org's, or the platform's. Only `platform` spends `aiCalls`. */
|
|
195
|
+
export declare const AI_KEY_SOURCES: readonly ['platform', 'org', 'request'];
|
|
196
|
+
export type AiKeySource = (typeof AI_KEY_SOURCES)[number];
|
|
197
|
+
/**
|
|
198
|
+
* How an AI call's `aiCalls` quota slot settled: `kept` (the call reached a
|
|
199
|
+
* provider), `refunded` (it never did), or `waived` (no unit was reserved — a
|
|
200
|
+
* BYOK key, an impersonated call or a weight-0 model).
|
|
201
|
+
*/
|
|
202
|
+
export declare const AI_QUOTA_SETTLEMENTS: readonly ['kept', 'refunded', 'waived'];
|
|
203
|
+
export type AiQuotaSettlement = (typeof AI_QUOTA_SETTLEMENTS)[number];
|
|
204
|
+
/** How loud a plugin-version vulnerability warning is, quietest first (see `services/version-vuln-policy.ts`). */
|
|
205
|
+
export declare const VULN_SEVERITIES: readonly ['info', 'warning', 'error', 'critical'];
|
|
206
|
+
export type VulnSeverity = (typeof VULN_SEVERITIES)[number];
|
|
@@ -5,8 +5,10 @@
|
|
|
5
5
|
* browser. Each is an `as const` array (the runtime list a Zod enum, a Mongoose
|
|
6
6
|
* enum or a drizzle `$type` builds from) plus the union type derived from it.
|
|
7
7
|
*
|
|
8
|
-
* Dependency-free on purpose
|
|
9
|
-
*
|
|
8
|
+
* Dependency-free on purpose (no imports at all): the browser imports it
|
|
9
|
+
* directly through the `@pipeline-builder/api-core/wire-vocabulary` subpath, so
|
|
10
|
+
* a frontend catalog derives its order and list from these tuples and a value
|
|
11
|
+
* added here reaches every exhaustive label map as a compile error instead of a
|
|
10
12
|
* silently unhandled string. The Postgres CHECK constraints in each deploy
|
|
11
13
|
* target's `postgres-init.sql` mirror the ones stored in SQL.
|
|
12
14
|
*/
|
|
@@ -122,4 +124,88 @@ export const PLUGIN_SECURITY_DIGEST_MODES = ['immediate', 'daily', 'weekly'];
|
|
|
122
124
|
// the labels were in a frontend mirror of both. One keyed catalog is importable
|
|
123
125
|
// by the browser, so the mirror and the test that parsed this package's source
|
|
124
126
|
// to detect drift are both gone.
|
|
125
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lyZS12b2NhYnVsYXJ5LmpzIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMvd2lyZS12b2NhYnVsYXJ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtDQUErQztBQUMvQyxzQ0FBc0M7QUFFdEM7Ozs7Ozs7OztHQVNHO0FBRUgsZ0ZBQWdGO0FBQ2hGLG1CQUFtQjtBQUNuQixnRkFBZ0Y7QUFFaEYsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLENBQUMsU0FBUyxFQUFFLE9BQU8sRUFBRSxVQUFVLENBQVUsQ0FBQztBQUd6RSxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsQ0FBQyxRQUFRLEVBQUUsVUFBVSxDQUFVLENBQUM7QUFHNUQsdUZBQXVGO0FBQ3ZGLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRztJQUM1QixJQUFJLEVBQUUsS0FBSztJQUNYLFVBQVUsRUFBRSxhQUFhO0lBQ3pCLE9BQU87SUFDUCxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLO0lBQ3hCLElBQUksRUFBRSxPQUFPO0lBQ2IsUUFBUSxFQUFFLFdBQVcsRUFBRSxVQUFVO0lBQ2pDLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFVBQVUsRUFBRSxVQUFVO0NBQ2QsQ0FBQztBQUdYLHNFQUFzRTtBQUN0RSxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxDQUFDLFFBQVEsRUFBRSxXQUFXLEVBQUUsVUFBVSxDQUE0QyxDQUFDO0FBRXZILDBEQUEwRDtBQUMxRCxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQVUsQ0FBQztBQUc1RCw0RUFBNEU7QUFDNUUsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBVSxDQUFDO0FBR3pELGdGQUFnRjtBQUNoRixXQUFXO0FBQ1gsZ0ZBQWdGO0FBRWhGLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxDQUFDLGNBQWMsRUFBRSxjQUFjLENBQVUsQ0FBQztB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cGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG4vKipcbiAqIENsb3NlZCBzdHJpbmcgdm9jYWJ1bGFyaWVzIHRoYXQgY3Jvc3MgdGhlIHdpcmUgYmV0d2VlbiB0aGUgc2VydmljZXMgYW5kIHRoZVxuICogYnJvd3Nlci4gRWFjaCBpcyBhbiBgYXMgY29uc3RgIGFycmF5ICh0aGUgcnVudGltZSBsaXN0IGEgWm9kIGVudW0sIGEgTW9uZ29vc2VcbiAqIGVudW0gb3IgYSBkcml6emxlIGAkdHlwZWAgYnVpbGRzIGZyb20pIHBsdXMgdGhlIHVuaW9uIHR5cGUgZGVyaXZlZCBmcm9tIGl0LlxuICpcbiAqIERlcGVuZGVuY3ktZnJlZSBvbiBwdXJwb3NlOiB0aGUgZnJvbnRlbmQgaW1wb3J0cyB0aGVzZSB0eXBlcywgc28gYSB2YWx1ZSBhZGRlZFxuICogaGVyZSByZWFjaGVzIHRoZSBVSSdzIGV4aGF1c3RpdmUgbGFiZWwgbWFwcyBhcyBhIGNvbXBpbGUgZXJyb3IgaW5zdGVhZCBvZiBhXG4gKiBzaWxlbnRseSB1bmhhbmRsZWQgc3RyaW5nLiBUaGUgUG9zdGdyZXMgQ0hFQ0sgY29uc3RyYWludHMgaW4gZWFjaCBkZXBsb3lcbiAqIHRhcmdldCdzIGBwb3N0Z3Jlcy1pbml0LnNxbGAgbWlycm9yIHRoZSBvbmVzIHN0b3JlZCBpbiBTUUwuXG4gKi9cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIENvbXBsaWFuY2UgcnVsZXNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbmV4cG9ydCBjb25zdCBSVUxFX1NFVkVSSVRJRVMgPSBbJ3dhcm5pbmcnLCAnZXJyb3InLCAnY3JpdGljYWwnXSBhcyBjb25zdDtcbmV4cG9ydCB0eXBlIFJ1bGVTZXZlcml0eSA9ICh0eXBlb2YgUlVMRV9TRVZFUklUSUVTKVtudW1iZXJdO1xuXG5leHBvcnQgY29uc3QgUlVMRV9UQVJHRVRTID0gWydwbHVnaW4nLCAncGlwZWxpbmUnXSBhcyBjb25zdDtcbmV4cG9ydCB0eXBlIFJ1bGVUYXJnZXQgPSAodHlwZW9mIFJVTEVfVEFSR0VUUylbbnVtYmVyXTtcblxuLyoqIEZpZWxkLWV2YWx1YXRpb24gb3BlcmF0b3JzOyB0aGUgZW5naW5lJ3MgaW1wbGVtZW50YXRpb25zIGxpdmUgaW4gYXBpL2NvbXBsaWFuY2UuICovXG5leHBvcnQgY29uc3QgUlVMRV9PUEVSQVRPUlMgPSBbXG4gICdlcScsICduZXEnLFxuICAnY29udGFpbnMnLCAnbm90Q29udGFpbnMnLFxuICAncmVnZXgnLFxuICAnZ3QnLCAnZ3RlJywgJ2x0JywgJ2x0ZScsXG4gICdpbicsICdub3RJbicsXG4gICdleGlzdHMnLCAnbm90RXhpc3RzJywgJ25vdEVtcHR5JyxcbiAgJ2NvdW50R3QnLCAnY291bnRMdCcsXG4gICdsZW5ndGhHdCcsICdsZW5ndGhMdCcsXG5dIGFzIGNvbnN0O1xuZXhwb3J0IHR5cGUgUnVsZU9wZXJhdG9yID0gKHR5cGVvZiBSVUxFX09QRVJBVE9SUylbbnVtYmVyXTtcblxuLyoqIE9wZXJhdG9ycyB0aGF0IHRlc3QgcHJlc2VuY2Ugb25seSBhbmQgdGFrZSBubyBjb21wYXJpc29uIHZhbHVlLiAqL1xuZXhwb3J0IGNvbnN0IFZBTFVFTEVTU19SVUxFX09QRVJBVE9SUyA9IFsnZXhpc3RzJywgJ25vdEV4aXN0cycsICdub3RFbXB0eSddIGFzIGNvbnN0IHNhdGlzZmllcyByZWFkb25seSBSdWxlT3BlcmF0b3JbXTtcblxuLyoqIEhvdyBhIG11bHRpLWNvbmRpdGlvbiBydWxlIGNvbWJpbmVzIGl0cyBjb25kaXRpb25zLiAqL1xuZXhwb3J0IGNvbnN0IFJVTEVfQ09ORElUSU9OX01PREVTID0gWydhbGwnLCAnYW55J10gYXMgY29uc3Q7XG5leHBvcnQgdHlwZSBSdWxlQ29uZGl0aW9uTW9kZSA9ICh0eXBlb2YgUlVMRV9DT05ESVRJT05fTU9ERVMpW251bWJlcl07XG5cbi8qKiBgcHVibGlzaGVkYCBydWxlcyBiZWxvbmcgdG8gdGhlIHN5c3RlbSBvcmcgYW5kIGFwcGx5IGJ5IHN1YnNjcmlwdGlvbi4gKi9cbmV4cG9ydCBjb25zdCBSVUxFX1NDT1BFUyA9IFsnb3JnJywgJ3B1Ymxpc2hlZCddIGFzIGNvbnN0O1xuZXhwb3J0IHR5cGUgUnVsZVNjb3BlID0gKHR5cGVvZiBSVUxFX1NDT1BFUylbbnVtYmVyXTtcblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIE1lc3NhZ2VzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5leHBvcnQgY29uc3QgTUVTU0FHRV9UWVBFUyA9IFsnYW5ub3VuY2VtZW50JywgJ2NvbnZlcnNhdGlvbiddIGFzIGNvbnN0O1xuZXhwb3J0IHR5cGUgTWVzc2FnZVR5cGUgPSAodHlwZW9mIE1FU1NBR0VfVFlQRVMpW251bWJlcl07XG5cbmV4cG9ydCBjb25zdCBNRVNTQUdFX1BSSU9SSVRJRVMgPSBbJ25vcm1hbCcsICdoaWdoJywgJ3VyZ2VudCddIGFzIGNvbnN0O1xuZXhwb3J0IHR5cGUgTWVzc2FnZVByaW9yaXR5ID0gKHR5cGVvZiBNRVNTQUdFX1BSSU9SSVRJRVMpW251bWJlcl07XG5cbi8qKlxuICogV2hvIFNFTlQgYSByb290IG1lc3NhZ2UsIHJlbGF0aXZlIHRvIHRoZSB2aWV3ZXI6IGBtZWAgKHRoZSB2aWV3aW5nIHVzZXJcbiAqIGF1dGhvcmVkIGl0KSwgYG9yZ2AgKHRoZSB2aWV3aW5nIG9yZyBzZW50IGl0IOKAlCBhbnkgbWVtYmVyKSwgYG90aGVyc2AgKGl0XG4gKiBhcnJpdmVkIGZyb20gYW5vdGhlciBvcmcsIGFubm91bmNlbWVudHMgaW5jbHVkZWQpLlxuICovXG5leHBvcnQgY29uc3QgTUVTU0FHRV9TRU5UX0JZID0gWydtZScsICdvcmcnLCAnb3RoZXJzJ10gYXMgY29uc3Q7XG5leHBvcnQgdHlwZSBNZXNzYWdlU2VudEJ5ID0gKHR5cGVvZiBNRVNTQUdFX1NFTlRfQlkpW251bWJlcl07XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBCaWxsaW5nXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5leHBvcnQgY29uc3QgU1VCU0NSSVBUSU9OX1NUQVRVU0VTID0gWydhY3RpdmUnLCAnY2FuY2VsZWQnLCAncGFzdF9kdWUnLCAndHJpYWxpbmcnLCAnaW5jb21wbGV0ZSddIGFzIGNvbnN0O1xuZXhwb3J0IHR5cGUgU3Vic2NyaXB0aW9uU3RhdHVzID0gKHR5cGVvZiBTVUJTQ1JJUFRJT05fU1RBVFVTRVMpW251bWJlcl07XG5cbmV4cG9ydCBjb25zdCBCSUxMSU5HX0lOVEVSVkFMUyA9IFsnbW9udGhseScsICdhbm51YWwnXSBhcyBjb25zdDtcbmV4cG9ydCB0eXBlIEJpbGxpbmdJbnRlcnZhbCA9ICh0eXBlb2YgQklMTElOR19JTlRFUlZBTFMpW251bWJlcl07XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBJZGVudGl0eVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLyoqIE9JREMgcHJvdmlkZXJzIGFuIG9yZyBJZFAgY29uZmlnIGNhbiBuYW1lIChHaXRIdWIgaXMgT0F1dGgtb25seSBhbmQgcmVmdXNlZCBieSB0aGUgT0lEQyBlbmdpbmUpLiAqL1xuZXhwb3J0IGNvbnN0IElEUF9QUk9WSURFUlMgPSBbJ2dlbmVyaWMtb2lkYycsICdjb2duaXRvJywgJ2dvb2dsZScsICdnaXRodWInXSBhcyBjb25zdDtcbmV4cG9ydCB0eXBlIElkcFByb3ZpZGVyID0gKHR5cGVvZiBJRFBfUFJPVklERVJTKVtudW1iZXJdO1xuXG4vKiogVGhlIGZlZGVyYXRpb24gcHJvdG9jb2wgYW4gb3JnIHNpZ25zIGluIG92ZXIg4oCUIG9uZSBwZXIgb3JnLiAqL1xuZXhwb3J0IGNvbnN0IElEUF9QUk9UT0NPTFMgPSBbJ29pZGMnLCAnc2FtbCddIGFzIGNvbnN0O1xuZXhwb3J0IHR5cGUgSWRwUHJvdG9jb2wgPSAodHlwZW9mIElEUF9QUk9UT0NPTFMpW251bWJlcl07XG5cbi8qKlxuICogV2hpY2ggU0FNTCBhc3NlcnRpb24gYXR0cmlidXRlIGNhcnJpZXMgd2hpY2ggaWRlbnRpdHkgZmllbGQuIEFuIGVtcHR5IG5hbWVcbiAqIG1lYW5zIFwidXNlIHRoZSBjb21tb24gc3BlbGxpbmdzXCIgKHNob3J0IG5hbWVzIHBsdXMgdGhlIEVudHJhL1NoaWJib2xldGggVVJJcykuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2FtbEF0dHJpYnV0ZU1hcHBpbmcge1xuICAvKiogQXR0cmlidXRlIGhvbGRpbmcgdGhlIHVzZXIncyBlbWFpbCBhZGRyZXNzLiAqL1xuICBlbWFpbD86IHN0cmluZztcbiAgLyoqIEF0dHJpYnV0ZSBob2xkaW5nIHRoZSBkaXNwbGF5IG5hbWUuICovXG4gIG5hbWU/OiBzdHJpbmc7XG4gIC8qKiBBdHRyaWJ1dGUgaG9sZGluZyBncm91cCBtZW1iZXJzaGlwcyAoZHJpdmVzIEpJVCByb2xlIG1hcHBpbmcpLiAqL1xuICBncm91cHM/OiBzdHJpbmc7XG59XG5cbi8qKiBUaGUgY29hcnNlIGdyYW50IGEgcGVybWlzc2lvbiByb2xlIGdpdmVzIGl0cyBtZW1iZXJzLiAqL1xuZXhwb3J0IGNvbnN0IFJPTEVfR1JBTlRTID0gWydzdXBlcmFkbWluJywgJ2FkbWluJywgJ21lbWJlciddIGFzIGNvbnN0O1xuZXhwb3J0IHR5cGUgUm9sZUdyYW50ID0gKHR5cGVvZiBST0xFX0dSQU5UUylbbnVtYmVyXTtcblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFBsdWdpbiBlY29zeXN0ZW0gKGVhY2ggbWlycm9yZWQgYnkgYSBDSEVDSyBpbiBwb3N0Z3Jlcy1pbml0LnNxbClcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8qKiBQdWJsaXNoZXIgdHJ1c3QgdGllci4gKi9cbmV4cG9ydCBjb25zdCBQVUJMSVNIRVJfVElFUlMgPSBbJ29mZmljaWFsJywgJ3ZlcmlmaWVkJywgJ2NvbW11bml0eScsICd1bnZlcmlmaWVkJ10gYXMgY29uc3Q7XG5leHBvcnQgdHlwZSBQdWJsaXNoZXJUaWVyID0gKHR5cGVvZiBQVUJMSVNIRVJfVElFUlMpW251bWJlcl07XG5cbi8qKiBBIGRpcmVjdG9yeSBsaXN0aW5nJ3MgbGlmZWN5Y2xlIHN0YXRlLiAqL1xuZXhwb3J0IGNvbnN0IExJU1RJTkdfU1RBVEVTID0gWydsaXN0ZWQnLCAndW5tYWludGFpbmVkJywgJ3N1c3BlbmRlZCcsICd0cmFuc2ZlcnJlZCddIGFzIGNvbnN0O1xuZXhwb3J0IHR5cGUgTGlzdGluZ1N0YXRlID0gKHR5cGVvZiBMSVNUSU5HX1NUQVRFUylbbnVtYmVyXTtcblxuLyoqIFdoYXQgYSBwdWJsaXNoIHJlcXVlc3QgYXNrcyB0aGUgc3lzdGVtIG9yZyB0byBkby4gKi9cbmV4cG9ydCBjb25zdCBQVUJMSVNIX1JFUVVFU1RfS0lORFMgPSBbXG4gICduZXdfbGlzdGluZycsICduZXdfdmVyc2lvbicsICdsaXN0aW5nX3VwZGF0ZScsICd5YW5rJywgJ3VucGF1c2UnLFxuICAndHJhbnNmZXInLCAnY2xhaW0nLCAncHJvZmlsZV9jaGFuZ2UnLCAnYWR2aXNvcnknLCAndmVyaWZ5JywgJ21vZGVyYXRpb24nLCAnc3VibWlzc2lvbicsXG5dIGFzIGNvbnN0O1xuZXhwb3J0IHR5cGUgUHVibGlzaFJlcXVlc3RLaW5kID0gKHR5cGVvZiBQVUJMSVNIX1JFUVVFU1RfS0lORFMpW251bWJlcl07XG5cbmV4cG9ydCBjb25zdCBQVUJMSVNIX1JFUVVFU1RfU1RBVFVTRVMgPSBbJ3BlbmRpbmcnLCAncGVuZGluZ19zZWNvbmRfYXBwcm92YWwnLCAnYXBwcm92ZWQnLCAncmVqZWN0ZWQnLCAnd2l0aGRyYXduJ10gYXMgY29uc3Q7XG5leHBvcnQgdHlwZSBQdWJsaXNoUmVxdWVzdFN0YXR1cyA9ICh0eXBlb2YgUFVCTElTSF9SRVFVRVNUX1NUQVRVU0VTKVtudW1iZXJdO1xuXG4vKiogVGhlIHN0YXR1c2VzIGEgcmVxdWVzdCBpcyBzdGlsbCBcIm9wZW5cIiBpbiAoZHJpdmVzIHRoZSBvbmUtb3Blbi1yZXF1ZXN0IGluZGV4KS4gKi9cbmV4cG9ydCBjb25zdCBPUEVOX1BVQkxJU0hfUkVRVUVTVF9TVEFUVVNFUyA9IFsncGVuZGluZycsICdwZW5kaW5nX3NlY29uZF9hcHByb3ZhbCddIGFzIGNvbnN0IHNhdGlzZmllcyByZWFkb25seSBQdWJsaXNoUmVxdWVzdFN0YXR1c1tdO1xuXG4vKiogYHNlY3VyaXR5YCByZXF1ZXN0cyBqdW1wIHRoZSBtb2RlcmF0aW9uIHF1ZXVlLiAqL1xuZXhwb3J0IGNvbnN0IFBVQkxJU0hfUkVRVUVTVF9MQU5FUyA9IFsnc3RhbmRhcmQnLCAnc2VjdXJpdHknXSBhcyBjb25zdDtcbmV4cG9ydCB0eXBlIFB1Ymxpc2hSZXF1ZXN0TGFuZSA9ICh0eXBlb2YgUFVCTElTSF9SRVFVRVNUX0xBTkVTKVtudW1iZXJdO1xuXG4vKiogSW5zdGFsbCB2ZXJzaW9uIHBvbGljeTogZXhhY3QsIGB+YCwgYF5gLCBvciBhbnl0aGluZyBub24tYnJlYWtpbmcuICovXG5leHBvcnQgY29uc3QgSU5TVEFMTF9WRVJTSU9OX1BPTElDSUVTID0gWydwaW5uZWQnLCAncGF0Y2gnLCAnbWlub3InLCAnbGF0ZXN0J10gYXMgY29uc3Q7XG5leHBvcnQgdHlwZSBJbnN0YWxsVmVyc2lvblBvbGljeSA9ICh0eXBlb2YgSU5TVEFMTF9WRVJTSU9OX1BPTElDSUVTKVtudW1iZXJdO1xuXG5leHBvcnQgY29uc3QgSU5TVEFMTF9TVEFUVVNFUyA9IFsnYWN0aXZlJywgJ3BlbmRpbmdfYXBwcm92YWwnLCAnZGVuaWVkJ10gYXMgY29uc3Q7XG5leHBvcnQgdHlwZSBJbnN0YWxsU3RhdHVzID0gKHR5cGVvZiBJTlNUQUxMX1NUQVRVU0VTKVtudW1iZXJdO1xuXG4vKiogVGhlIGFkdmlzb3J5IHNldmVyaXR5IGF0IHdoaWNoIGEgY29uc3VtcHRpb24gcG9saWN5IGJsb2NrcyBpbnN0YWxscy4gKi9cbmV4cG9ydCBjb25zdCBCTE9DS19PTl9BRFZJU09SWV9MRVZFTFMgPSBbJ2NyaXRpY2FsJywgJ2hpZ2gnLCAnbmV2ZXInXSBhcyBjb25zdDtcbmV4cG9ydCB0eXBlIEJsb2NrT25BZHZpc29yeSA9ICh0eXBlb2YgQkxPQ0tfT05fQURWSVNPUllfTEVWRUxTKVtudW1iZXJdO1xuXG4vKiogV2hldGhlciBvZmZpY2lhbCBwbHVnaW5zIG5lZWQgYW4gZXhwbGljaXQgaW5zdGFsbCBiZWZvcmUgYSBwaXBlbGluZSBjYW4gdXNlIHRoZW0uICovXG5leHBvcnQgY29uc3QgT0ZGSUNJQUxfSU5TVEFMTFNfTU9ERVMgPSBbJ2ltcGxpY2l0JywgJ2V4cGxpY2l0J10gYXMgY29uc3Q7XG5leHBvcnQgdHlwZSBPZmZpY2lhbEluc3RhbGxzID0gKHR5cGVvZiBPRkZJQ0lBTF9JTlNUQUxMU19NT0RFUylbbnVtYmVyXTtcblxuLyoqXG4gKiBXaGF0IGhhcHBlbnMgd2hlbiBhbiBvcmcgZGVmaW5lcyBhIHBsdWdpbiBOQU1FIHRoYXQgb3ZlcnJpZGVzIHNvbWV0aGluZyBpdFxuICogd291bGQgb3RoZXJ3aXNlIHJlc29sdmUg4oCUIGEgbGlzdGluZywgb3IgKGZvciBhIHRlYW0pIGl0cyBwYXJlbnQgb3JnJ3MgcGx1Z2luLlxuICpcbiAqIGBhbGxvd2Aga2VlcHMgdG9kYXkncyBiZWhhdmlvdXI6IHRoZSBvdmVycmlkZSBpcyBzaWxlbnQgYmV5b25kIHRoZSBkYXNoYm9hcmRcbiAqIGJhbm5lci4gYHdhcm5gIGlzIHRoZSBzYW1lIHJlc29sdXRpb24gd2l0aCB0aGUgZmFjdCByZWNvcmRlZCBwcm9taW5lbnRseS5cbiAqIGBkZW55YCByZWZ1c2VzIHRoZSB1cGxvYWQsIHdoaWNoIGlzIHRoZSBvbmx5IHNldHRpbmcgdGhhdCBhY3R1YWxseSBzdG9wcyBhXG4gKiB0ZWFtIHJlcGxhY2luZyB0aGUgT2ZmaWNpYWwgYHRyaXZ5YCBmb3IgZXZlcnkgcGlwZWxpbmUgdGhhdCBuYW1lcyBpdC5cbiAqL1xuZXhwb3J0IGNvbnN0IFNIQURPV0lOR19NT0RFUyA9IFsnYWxsb3cnLCAnd2FybicsICdkZW55J10gYXMgY29uc3Q7XG5leHBvcnQgdHlwZSBTaGFkb3dpbmdNb2RlID0gKHR5cGVvZiBTSEFET1dJTkdfTU9ERVMpW251bWJlcl07XG5cbmV4cG9ydCBjb25zdCBSRVZJRVdfU1RBVFVTRVMgPSBbJ3B1Ymxpc2hlZCcsICdoZWxkJywgJ3JlbW92ZWQnXSBhcyBjb25zdDtcbmV4cG9ydCB0eXBlIFJldmlld1N0YXR1cyA9ICh0eXBlb2YgUkVWSUVXX1NUQVRVU0VTKVtudW1iZXJdO1xuXG4vKiogV2h5IGEgaGVsZCByZXZpZXcgaXMgaGVsZC4gKi9cbmV4cG9ydCBjb25zdCBSRVZJRVdfSE9MRF9SRUFTT05TID0gWydyZXBvcnRzJywgJ2J1cnN0JywgJ2ZpbHRlcicsICdzZWN1cml0eScsICdtb2RlcmF0b3InXSBhcyBjb25zdDtcbmV4cG9ydCB0eXBlIFJldmlld0hvbGRSZWFzb24gPSAodHlwZW9mIFJFVklFV19IT0xEX1JFQVNPTlMpW251bWJlcl07XG5cbi8qKiBBIHJldmlldyByZXBvcnQncyBjYXRlZ29yeTsgYHNlY3VyaXR5YCByb3V0ZXMgcHJpdmF0ZWx5IHRvIHRoZSBhZHZpc29yeSBwYXRoLiAqL1xuZXhwb3J0IGNvbnN0IFJFVklFV19SRVBPUlRfQ0FURUdPUklFUyA9IFsnc3BhbScsICdhYnVzZScsICdvZmZfdG9waWMnLCAnc2VjdXJpdHknXSBhcyBjb25zdDtcbmV4cG9ydCB0eXBlIFJldmlld1JlcG9ydENhdGVnb3J5ID0gKHR5cGVvZiBSRVZJRVdfUkVQT1JUX0NBVEVHT1JJRVMpW251bWJlcl07XG5cbmV4cG9ydCBjb25zdCBBRFZJU09SWV9TRVZFUklUSUVTID0gWydjcml0aWNhbCcsICdoaWdoJywgJ21lZGl1bScsICdsb3cnXSBhcyBjb25zdDtcbmV4cG9ydCB0eXBlIEFkdmlzb3J5U2V2ZXJpdHkgPSAodHlwZW9mIEFEVklTT1JZX1NFVkVSSVRJRVMpW251bWJlcl07XG5cbmV4cG9ydCBjb25zdCBBRFZJU09SWV9TVEFURVMgPSBbJ2RyYWZ0JywgJ3B1Ymxpc2hlZCcsICd3aXRoZHJhd24nXSBhcyBjb25zdDtcbmV4cG9ydCB0eXBlIEFkdmlzb3J5U3RhdGUgPSAodHlwZW9mIEFEVklTT1JZX1NUQVRFUylbbnVtYmVyXTtcblxuZXhwb3J0IGNvbnN0IEFEVklTT1JZX1NPVVJDRVMgPSBbJ3B1Ymxpc2hlcicsICdtb2RlcmF0b3InLCAnY3ZlX3Jlc2NhbicsICdyZXZpZXcnXSBhcyBjb25zdDtcbmV4cG9ydCB0eXBlIEFkdmlzb3J5U291cmNlID0gKHR5cGVvZiBBRFZJU09SWV9TT1VSQ0VTKVtudW1iZXJdO1xuXG4vKipcbiAqIEFuIGFub255bW91cyBzdWJtaXNzaW9uJ3MgbGlmZWN5Y2xlLiBgcHVibGlzaGluZ2AgaXMgdGhlIHNob3J0IGNsYWltIGFuXG4gKiBhcHByb3ZhbCB0YWtlcyBiZWZvcmUgaXQgY29waWVzIHRoZSBxdWFyYW50aW5lZCBpbWFnZSBvdXQsIHNvIGFuIGV4cGlyeSBjYW5cbiAqIG5ldmVyIGRlbGV0ZSB0aGUgYXJ0aWZhY3RzIG9mIGEgc3VibWlzc2lvbiB0aGF0IGlzIGJlaW5nIHB1Ymxpc2hlZC5cbiAqL1xuZXhwb3J0IGNvbnN0IFNVQk1JU1NJT05fU1RBVFVTRVMgPSBbXG4gICdwZW5kaW5nX3ZlcmlmaWNhdGlvbicsICdwZW5kaW5nX3JldmlldycsICdwdWJsaXNoaW5nJywgJ2dhdGVfZmFpbGVkJywgJ2FwcHJvdmVkJywgJ3JlamVjdGVkJywgJ2V4cGlyZWQnLCAnY2xhaW1lZCcsXG5dIGFzIGNvbnN0O1xuZXhwb3J0IHR5cGUgU3VibWlzc2lvblN0YXR1cyA9ICh0eXBlb2YgU1VCTUlTU0lPTl9TVEFUVVNFUylbbnVtYmVyXTtcblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFBsdWdpbiBzZWN1cml0eSBub3RpZmljYXRpb25zIChwZXIgb3JnKVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLyoqIFdobyByZWNlaXZlcyBhbiBvcmcncyBwbHVnaW4gc2VjdXJpdHkgbm90aWNlczogYHdyaXRlcnNgID0gdGhlIHVwbG9hZGVyIHBsdXNcbiAqICBtZW1iZXJzIGhvbGRpbmcgYHBsdWdpbnM6d3JpdGVgOyBgdXNlcnNgID0gdGhlIG9yZydzIGNob3NlbiBtZW1iZXJzLiAqL1xuZXhwb3J0IGNvbnN0IFBMVUdJTl9TRUNVUklUWV9SRUNJUElFTlRfTU9ERVMgPSBbJ3dyaXRlcnMnLCAndXNlcnMnXSBhcyBjb25zdDtcbmV4cG9ydCB0eXBlIFBsdWdpblNlY3VyaXR5UmVjaXBpZW50TW9kZSA9ICh0eXBlb2YgUExVR0lOX1NFQ1VSSVRZX1JFQ0lQSUVOVF9NT0RFUylbbnVtYmVyXTtcblxuLyoqIEhvdyByZXNjYW4gZmluZGluZ3MgKE4zMSkgYXJlIGJhdGNoZWQ7IGJsb2NrZWQgYnVpbGRzIChOMzApIGFyZSBhbHdheXMgaW1tZWRpYXRlLiAqL1xuZXhwb3J0IGNvbnN0IFBMVUdJTl9TRUNVUklUWV9ESUdFU1RfTU9ERVMgPSBbJ2ltbWVkaWF0ZScsICdkYWlseScsICd3ZWVrbHknXSBhcyBjb25zdDtcbmV4cG9ydCB0eXBlIFBsdWdpblNlY3VyaXR5RGlnZXN0TW9kZSA9ICh0eXBlb2YgUExVR0lOX1NFQ1VSSVRZX0RJR0VTVF9NT0RFUylbbnVtYmVyXTtcblxuLy8gVGhlIGJ1aWxkIENMQVNTIGFuZCBTSVpFIHZvY2FidWxhcmllcyBsaXZlIGluIGBidWlsZC1jYXRhbG9nLnRzYCwgdG9nZXRoZXJcbi8vIHdpdGggdGhlaXIgbGFiZWxzLCBjcmVkaXQgbXVsdGlwbGllcnMsIHRpZXIgZmxvb3JzIGFuZCBwZXItY2xhc3Mgc2xvdFxuLy8gZGVmYXVsdHMuIFRoZXkgYXJlIG5vdCBoZXJlIGJlY2F1c2UgdGhlIGlkcyBhbG9uZSB3ZXJlIG5ldmVyIHRoZSB3aG9sZSBmYWN0OlxuLy8gdGhlIG11bHRpcGxpZXIgd2FzIGluIHRoaXMgZmlsZSwgdGhlIHRpZXIgZ2F0ZSB3YXMgaW4gYHF1b3RhLXRpZXJzLnRzYCwgYW5kXG4vLyB0aGUgbGFiZWxzIHdlcmUgaW4gYSBmcm9udGVuZCBtaXJyb3Igb2YgYm90aC4gT25lIGtleWVkIGNhdGFsb2cgaXMgaW1wb3J0YWJsZVxuLy8gYnkgdGhlIGJyb3dzZXIsIHNvIHRoZSBtaXJyb3IgYW5kIHRoZSB0ZXN0IHRoYXQgcGFyc2VkIHRoaXMgcGFja2FnZSdzIHNvdXJjZVxuLy8gdG8gZGV0ZWN0IGRyaWZ0IGFyZSBib3RoIGdvbmUuXG4iXX0=
|
|
127
|
+
// -----------------------------------------------------------------------------
|
|
128
|
+
// Org membership
|
|
129
|
+
// -----------------------------------------------------------------------------
|
|
130
|
+
/**
|
|
131
|
+
* The coarse per-org membership label (`UserOrganization.role`,
|
|
132
|
+
* `Invitation.role`, the access token's `role`), highest authority first:
|
|
133
|
+
* `owner` created the org or received an ownership transfer, `admin` manages
|
|
134
|
+
* members and settings, `member` has standard access. DERIVED from the Roles a
|
|
135
|
+
* user is assigned (the highest `grantsRole` among them; `owner` only by
|
|
136
|
+
* transfer) — a display/authority label driving `isAdmin`, ownership and seat
|
|
137
|
+
* accounting, NOT a permission source (see `resolveUserPermissions`).
|
|
138
|
+
*/
|
|
139
|
+
export const ORG_ROLES = ['owner', 'admin', 'member'];
|
|
140
|
+
/**
|
|
141
|
+
* The membership roles that ADMINISTER an org: the token's `isAdmin`, the
|
|
142
|
+
* "notify this org's admins" lookups and the invite/approval authority checks
|
|
143
|
+
* all read this one list.
|
|
144
|
+
*/
|
|
145
|
+
export const ADMIN_ORG_ROLES = ['owner', 'admin'];
|
|
146
|
+
/** Whether `value` is a membership role, narrowing it. */
|
|
147
|
+
export function isOrgRole(value) {
|
|
148
|
+
return ORG_ROLES.includes(value);
|
|
149
|
+
}
|
|
150
|
+
/** Whether `role` administers its org (`owner` or `admin`). */
|
|
151
|
+
export function isAdminOrgRole(role) {
|
|
152
|
+
return ADMIN_ORG_ROLES.includes(role);
|
|
153
|
+
}
|
|
154
|
+
// -----------------------------------------------------------------------------
|
|
155
|
+
// Alerting
|
|
156
|
+
// -----------------------------------------------------------------------------
|
|
157
|
+
/** Where an org's alert destination delivers (`alert_destinations.channel`). */
|
|
158
|
+
export const ALERT_CHANNELS = ['slack', 'webhook', 'in-app', 'email'];
|
|
159
|
+
/**
|
|
160
|
+
* The severity ladder an org sets on its alert rules and uses as a
|
|
161
|
+
* destination's `minSeverity` floor, least severe first (`warning` =
|
|
162
|
+
* warning+critical, `critical` = critical only). Mirrors Alertmanager severity
|
|
163
|
+
* ordering. An inbound alert may also carry `info`, which no rule can emit and
|
|
164
|
+
* no destination can subscribe to.
|
|
165
|
+
*/
|
|
166
|
+
export const ALERT_RULE_SEVERITIES = ['warning', 'critical'];
|
|
167
|
+
// -----------------------------------------------------------------------------
|
|
168
|
+
// Support cases
|
|
169
|
+
// -----------------------------------------------------------------------------
|
|
170
|
+
/** A support case's lifecycle state (`support_cases.status`). */
|
|
171
|
+
export const SUPPORT_CASE_STATUSES = ['open', 'awaiting_support', 'awaiting_customer', 'resolved', 'closed'];
|
|
172
|
+
/**
|
|
173
|
+
* The statuses a TENANT may set on its own case. `awaiting_support` and
|
|
174
|
+
* `resolved` are the support desk's to set; `closed` is the tenant's way out
|
|
175
|
+
* (and, once there, a tenant cannot move the case back).
|
|
176
|
+
*/
|
|
177
|
+
export const TENANT_SUPPORT_CASE_STATUSES = ['open', 'awaiting_customer', 'closed'];
|
|
178
|
+
/** Statuses a tenant cannot move OUT of. */
|
|
179
|
+
export const TENANT_TERMINAL_SUPPORT_CASE_STATUSES = ['closed'];
|
|
180
|
+
/** Statuses a case is still LIVE in (not resolved or closed). */
|
|
181
|
+
export const LIVE_SUPPORT_CASE_STATUSES = ['open', 'awaiting_support', 'awaiting_customer'];
|
|
182
|
+
// -----------------------------------------------------------------------------
|
|
183
|
+
// Compliance scans, exemptions and checks
|
|
184
|
+
// -----------------------------------------------------------------------------
|
|
185
|
+
/** What a compliance scan (or a scan schedule) covers: one rule target, or every one. */
|
|
186
|
+
export const COMPLIANCE_SCAN_TARGETS = [...RULE_TARGETS, 'all'];
|
|
187
|
+
export const COMPLIANCE_SCAN_STATUSES = ['pending', 'running', 'completed', 'failed', 'cancelled'];
|
|
188
|
+
/** Why a scan row exists. `rule-dry-run` scans evaluate without writing the check log or notifying. */
|
|
189
|
+
export const COMPLIANCE_SCAN_TRIGGERS = ['manual', 'scheduled', 'rule-change', 'rule-dry-run'];
|
|
190
|
+
export const COMPLIANCE_EXEMPTION_STATUSES = ['pending', 'approved', 'rejected', 'expired'];
|
|
191
|
+
/** The two decisions a reviewer can make on a pending exemption. */
|
|
192
|
+
export const COMPLIANCE_EXEMPTION_DECISIONS = ['approved', 'rejected'];
|
|
193
|
+
/** A compliance check-log row's verdict (`compliance_check_log.result`). */
|
|
194
|
+
export const COMPLIANCE_CHECK_RESULTS = ['pass', 'warn', 'block'];
|
|
195
|
+
// -----------------------------------------------------------------------------
|
|
196
|
+
// AI calls
|
|
197
|
+
// -----------------------------------------------------------------------------
|
|
198
|
+
/** Whose key serves an AI call: the caller's own (`request`, BYOK), the org's, or the platform's. Only `platform` spends `aiCalls`. */
|
|
199
|
+
export const AI_KEY_SOURCES = ['platform', 'org', 'request'];
|
|
200
|
+
/**
|
|
201
|
+
* How an AI call's `aiCalls` quota slot settled: `kept` (the call reached a
|
|
202
|
+
* provider), `refunded` (it never did), or `waived` (no unit was reserved — a
|
|
203
|
+
* BYOK key, an impersonated call or a weight-0 model).
|
|
204
|
+
*/
|
|
205
|
+
export const AI_QUOTA_SETTLEMENTS = ['kept', 'refunded', 'waived'];
|
|
206
|
+
// -----------------------------------------------------------------------------
|
|
207
|
+
// Plugin-version vulnerability grades
|
|
208
|
+
// -----------------------------------------------------------------------------
|
|
209
|
+
/** How loud a plugin-version vulnerability warning is, quietest first (see `services/version-vuln-policy.ts`). */
|
|
210
|
+
export const VULN_SEVERITIES = ['info', 'warning', 'error', 'critical'];
|
|
211
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lyZS12b2NhYnVsYXJ5LmpzIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMvd2lyZS12b2NhYnVsYXJ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtDQUErQztBQUMvQyxzQ0FBc0M7QUFFdEM7Ozs7Ozs7Ozs7O0dBV0c7QUFFSCxnRkFBZ0Y7QUFDaEYsbUJBQW1CO0FBQ25CLGdGQUFnRjtBQUVoRixNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsQ0FBQyxTQUFTLEVBQUUsT0FBTyxFQUFFLFVBQVUsQ0FBVSxDQUFDO0FBR3pFLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQVUsQ0FBQztBQUc1RCx1RkFBdUY7QUFDdkYsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHO0lBQzVCLElBQUksRUFBRSxLQUFLO0lBQ1gsVUFBVSxFQUFFLGFBQWE7SUFDekIsT0FBTztJQUNQLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEtBQUs7SUFDeEIsSUFBSSxFQUFFLE9BQU87SUFDYixRQUFRLEVBQUUsV0FBVyxFQUFFLFVBQVU7SUFDakMsU0FBUyxFQUFFLFNBQVM7SUFDcEIsVUFBVSxFQUFFLFVBQVU7Q0FDZCxDQUFDO0FBR1gsc0VBQXNFO0FBQ3RFLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLENBQUMsUUFBUSxFQUFFLFdBQVcsRUFBRSxVQUFVLENBQTRDLENBQUM7QUFFdkgsMERBQTBEO0FBQzFELE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBVSxDQUFDO0FBRzVELDRFQUE0RTtBQUM1RSxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsQ0FBQyxLQUFLLEVBQUUsV0FBVyxDQUFVLENBQUM7QUFHekQsZ0ZBQWdGO0FBQ2hGLFdBQVc7QUFDWCxnRkFBZ0Y7QUFFaEYsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLENBQUMsY0FBYyxFQUFFLGNBQWMsQ0FBVSxDQUFD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QUFNLGVBQWUsR0FBRyxDQUFDLE1BQU0sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFVBQVUsQ0FBVSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IDIwMjYgUGlwZWxpbmUgQnVpbGRlciBDb250cmlidXRvcnNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbi8qKlxuICogQ2xvc2VkIHN0cmluZyB2b2NhYnVsYXJpZXMgdGhhdCBjcm9zcyB0aGUgd2lyZSBiZXR3ZWVuIHRoZSBzZXJ2aWNlcyBhbmQgdGhlXG4gKiBicm93c2VyLiBFYWNoIGlzIGFuIGBhcyBjb25zdGAgYXJyYXkgKHRoZSBydW50aW1lIGxpc3QgYSBab2QgZW51bSwgYSBNb25nb29zZVxuICogZW51bSBvciBhIGRyaXp6bGUgYCR0eXBlYCBidWlsZHMgZnJvbSkgcGx1cyB0aGUgdW5pb24gdHlwZSBkZXJpdmVkIGZyb20gaXQuXG4gKlxuICogRGVwZW5kZW5jeS1mcmVlIG9uIHB1cnBvc2UgKG5vIGltcG9ydHMgYXQgYWxsKTogdGhlIGJyb3dzZXIgaW1wb3J0cyBpdFxuICogZGlyZWN0bHkgdGhyb3VnaCB0aGUgYEBwaXBlbGluZS1idWlsZGVyL2FwaS1jb3JlL3dpcmUtdm9jYWJ1bGFyeWAgc3VicGF0aCwgc29cbiAqIGEgZnJvbnRlbmQgY2F0YWxvZyBkZXJpdmVzIGl0cyBvcmRlciBhbmQgbGlzdCBmcm9tIHRoZXNlIHR1cGxlcyBhbmQgYSB2YWx1ZVxuICogYWRkZWQgaGVyZSByZWFjaGVzIGV2ZXJ5IGV4aGF1c3RpdmUgbGFiZWwgbWFwIGFzIGEgY29tcGlsZSBlcnJvciBpbnN0ZWFkIG9mIGFcbiAqIHNpbGVudGx5IHVuaGFuZGxlZCBzdHJpbmcuIFRoZSBQb3N0Z3JlcyBDSEVDSyBjb25zdHJhaW50cyBpbiBlYWNoIGRlcGxveVxuICogdGFyZ2V0J3MgYHBvc3RncmVzLWluaXQuc3FsYCBtaXJyb3IgdGhlIG9uZXMgc3RvcmVkIGluIFNRTC5cbiAqL1xuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gQ29tcGxpYW5jZSBydWxlc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuZXhwb3J0IGNvbnN0IFJVTEVfU0VWRVJJVElFUyA9IFsnd2FybmluZycsICdlcnJvcicsICdjcml0aWNhbCddIGFzIGNvbnN0O1xuZXhwb3J0IHR5cGUgUnVsZVNldmVyaXR5ID0gKHR5cGVvZiBSVUxFX1NFVkVSSVRJRVMpW251bWJlcl07XG5cbmV4cG9ydCBjb25zdCBSVUxFX1RBUkdFVFMgPSBbJ3BsdWdpbicsICdwaXBlbGluZSddIGFzIGNvbnN0O1xuZXhwb3J0IHR5cGUgUnVsZVRhcmdldCA9ICh0eXBlb2YgUlVMRV9UQVJHRVRTKVtudW1iZXJdO1xuXG4vKiogRmllbGQtZXZhbHVhdGlvbiBvcGVyYXRvcnM7IHRoZSBlbmdpbmUncyBpbXBsZW1lbnRhdGlvbnMgbGl2ZSBpbiBhcGkvY29tcGxpYW5jZS4gKi9cbmV4cG9ydCBjb25zdCBSVUxFX09QRVJBVE9SUyA9IFtcbiAgJ2VxJywgJ25lcScsXG4gICdjb250YWlucycsICdub3RDb250YWlucycsXG4gICdyZWdleCcsXG4gICdndCcsICdndGUnLCAnbHQnLCAnbHRlJyxcbiAgJ2luJywgJ25vdEluJyxcbiAgJ2V4aXN0cycsICdub3RFeGlzdHMnLCAnbm90RW1wdHknLFxuICAnY291bnRHdCcsICdjb3VudEx0JyxcbiAgJ2xlbmd0aEd0JywgJ2xlbmd0aEx0Jyxcbl0gYXMgY29uc3Q7XG5leHBvcnQgdHlwZSBSdWxlT3BlcmF0b3IgPSAodHlwZW9mIFJVTEVfT1BFUkFUT1JTKVtudW1iZXJdO1xuXG4vKiogT3BlcmF0b3JzIHRoYXQgdGVzdCBwcmVzZW5jZSBvbmx5IGFuZCB0YWtlIG5vIGNvbXBhcmlzb24gdmFsdWUuICovXG5leHBvcnQgY29uc3QgVkFMVUVMRVNTX1JVTEVfT1BFUkFUT1JTID0gWydleGlzdHMnLCAnbm90RXhpc3RzJywgJ25vdEVtcHR5J10gYXMgY29uc3Qgc2F0aXNmaWVzIHJlYWRvbmx5IFJ1bGVPcGVyYXRvcltdO1xuXG4vKiogSG93IGEgbXVsdGktY29uZGl0aW9uIHJ1bGUgY29tYmluZXMgaXRzIGNvbmRpdGlvbnMuICovXG5leHBvcnQgY29uc3QgUlVMRV9DT05ESVRJT05fTU9ERVMgPSBbJ2FsbCcsICdhbnknXSBhcyBjb25zdDtcbmV4cG9ydCB0eXBlIFJ1bGVDb25kaXRpb25Nb2RlID0gKHR5cGVvZiBSVUxFX0NPTkRJVElPTl9NT0RFUylbbnVtYmVyXTtcblxuLyoqIGBwdWJsaXNoZWRgIHJ1bGVzIGJlbG9uZyB0byB0aGUgc3lzdGVtIG9yZyBhbmQgYXBwbHkgYnkgc3Vic2NyaXB0aW9uLiAqL1xuZXhwb3J0IGNvbnN0IFJVTEVfU0NPUEVTID0gWydvcmcnLCAncHVibGlzaGVkJ10gYXMgY29uc3Q7XG5leHBvcnQgdHlwZSBSdWxlU2NvcGUgPSAodHlwZW9mIFJVTEVfU0NPUEVTKVtudW1iZXJdO1xuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gTWVzc2FnZXNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbmV4cG9ydCBjb25zdCBNRVNTQUdFX1RZUEVTID0gWydhbm5vdW5jZW1lbnQnLCAnY29udmVyc2F0aW9uJ10gYXMgY29uc3Q7XG5leHBvcnQgdHlwZSBNZXNzYWdlVHlwZSA9ICh0eXBlb2YgTUVTU0FHRV9UWVBFUylbbnVtYmVyXTtcblxuZXhwb3J0IGNvbnN0IE1FU1NBR0VfUFJJT1JJVElFUyA9IFsnbm9ybWFsJywgJ2hpZ2gnLCAndXJnZW50J10gYXMgY29uc3Q7XG5leHBvcnQgdHlwZSBNZXNzYWdlUHJpb3JpdHkgPSAodHlwZW9mIE1FU1NBR0VfUFJJT1JJVElFUylbbnVtYmVyXTtcblxuLyoqXG4gKiBXaG8gU0VOVCBhIHJvb3QgbWVzc2FnZSwgcmVsYXRpdmUgdG8gdGhlIHZpZXdlcjogYG1lYCAodGhlIHZpZXdpbmcgdXNlclxuICogYXV0aG9yZWQgaXQpLCBgb3JnYCAodGhlIHZpZXdpbmcgb3JnIHNlbnQgaXQg4oCUIGFueSBtZW1iZXIpLCBgb3RoZXJzYCAoaXRcbiAqIGFycml2ZWQgZnJvbSBhbm90aGVyIG9yZywgYW5ub3VuY2VtZW50cyBpbmNsdWRlZCkuXG4gKi9cbmV4cG9ydCBjb25zdCBNRVNTQUdFX1NFTlRfQlkgPSBbJ21lJywgJ29yZycsICdvdGhlcnMnXSBhcyBjb25zdDtcbmV4cG9ydCB0eXBlIE1lc3NhZ2VTZW50QnkgPSAodHlwZW9mIE1FU1NBR0VfU0VOVF9CWSlbbnVtYmVyXTtcblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIEJpbGxpbmdcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbmV4cG9ydCBjb25zdCBTVUJTQ1JJUFRJT05fU1RBVFVTRVMgPSBbJ2FjdGl2ZScsICdjYW5jZWxlZCcsICdwYXN0X2R1ZScsICd0cmlhbGluZycsICdpbmNvbXBsZXRlJ10gYXMgY29uc3Q7XG5leHBvcnQgdHlwZSBTdWJzY3JpcHRpb25TdGF0dXMgPSAodHlwZW9mIFNVQlNDUklQVElPTl9TVEFUVVNFUylbbnVtYmVyXTtcblxuZXhwb3J0IGNvbnN0IEJJTExJTkdfSU5URVJWQUxTID0gWydtb250aGx5JywgJ2FubnVhbCddIGFzIGNvbnN0O1xuZXhwb3J0IHR5cGUgQmlsbGluZ0ludGVydmFsID0gKHR5cGVvZiBCSUxMSU5HX0lOVEVSVkFMUylbbnVtYmVyXTtcblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIElkZW50aXR5XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vKiogT0lEQyBwcm92aWRlcnMgYW4gb3JnIElkUCBjb25maWcgY2FuIG5hbWUgKEdpdEh1YiBpcyBPQXV0aC1vbmx5IGFuZCByZWZ1c2VkIGJ5IHRoZSBPSURDIGVuZ2luZSkuICovXG5leHBvcnQgY29uc3QgSURQX1BST1ZJREVSUyA9IFsnZ2VuZXJpYy1vaWRjJywgJ2NvZ25pdG8nLCAnZ29vZ2xlJywgJ2dpdGh1YiddIGFzIGNvbnN0O1xuZXhwb3J0IHR5cGUgSWRwUHJvdmlkZXIgPSAodHlwZW9mIElEUF9QUk9WSURFUlMpW251bWJlcl07XG5cbi8qKiBUaGUgZmVkZXJhdGlvbiBwcm90b2NvbCBhbiBvcmcgc2lnbnMgaW4gb3ZlciDigJQgb25lIHBlciBvcmcuICovXG5leHBvcnQgY29uc3QgSURQX1BST1RPQ09MUyA9IFsnb2lkYycsICdzYW1sJ10gYXMgY29uc3Q7XG5leHBvcnQgdHlwZSBJZHBQcm90b2NvbCA9ICh0eXBlb2YgSURQX1BST1RPQ09MUylbbnVtYmVyXTtcblxuLyoqXG4gKiBXaGljaCBTQU1MIGFzc2VydGlvbiBhdHRyaWJ1dGUgY2FycmllcyB3aGljaCBpZGVudGl0eSBmaWVsZC4gQW4gZW1wdHkgbmFtZVxuICogbWVhbnMgXCJ1c2UgdGhlIGNvbW1vbiBzcGVsbGluZ3NcIiAoc2hvcnQgbmFtZXMgcGx1cyB0aGUgRW50cmEvU2hpYmJvbGV0aCBVUklzKS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTYW1sQXR0cmlidXRlTWFwcGluZyB7XG4gIC8qKiBBdHRyaWJ1dGUgaG9sZGluZyB0aGUgdXNlcidzIGVtYWlsIGFkZHJlc3MuICovXG4gIGVtYWlsPzogc3RyaW5nO1xuICAvKiogQXR0cmlidXRlIGhvbGRpbmcgdGhlIGRpc3BsYXkgbmFtZS4gKi9cbiAgbmFtZT86IHN0cmluZztcbiAgLyoqIEF0dHJpYnV0ZSBob2xkaW5nIGdyb3VwIG1lbWJlcnNoaXBzIChkcml2ZXMgSklUIHJvbGUgbWFwcGluZykuICovXG4gIGdyb3Vwcz86IHN0cmluZztcbn1cblxuLyoqIFRoZSBjb2Fyc2UgZ3JhbnQgYSBwZXJtaXNzaW9uIHJvbGUgZ2l2ZXMgaXRzIG1lbWJlcnMuICovXG5leHBvcnQgY29uc3QgUk9MRV9HUkFOVFMgPSBbJ3N1cGVyYWRtaW4nLCAnYWRtaW4nLCAnbWVtYmVyJ10gYXMgY29uc3Q7XG5leHBvcnQgdHlwZSBSb2xlR3JhbnQgPSAodHlwZW9mIFJPTEVfR1JBTlRTKVtudW1iZXJdO1xuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gUGx1Z2luIGVjb3N5c3RlbSAoZWFjaCBtaXJyb3JlZCBieSBhIENIRUNLIGluIHBvc3RncmVzLWluaXQuc3FsKVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLyoqIFB1Ymxpc2hlciB0cnVzdCB0aWVyLiAqL1xuZXhwb3J0IGNvbnN0IFBVQkxJU0hFUl9USUVSUyA9IFsnb2ZmaWNpYWwnLCAndmVyaWZpZWQnLCAnY29tbXVuaXR5JywgJ3VudmVyaWZpZWQnXSBhcyBjb25zdDtcbmV4cG9ydCB0eXBlIFB1Ymxpc2hlclRpZXIgPSAodHlwZW9mIFBVQkxJU0hFUl9USUVSUylbbnVtYmVyXTtcblxuLyoqIEEgZGlyZWN0b3J5IGxpc3RpbmcncyBsaWZlY3ljbGUgc3RhdGUuICovXG5leHBvcnQgY29uc3QgTElTVElOR19TVEFURVMgPSBbJ2xpc3RlZCcsICd1bm1haW50YWluZWQnLCAnc3VzcGVuZGVkJywgJ3RyYW5zZmVycmVkJ10gYXMgY29uc3Q7XG5leHBvcnQgdHlwZSBMaXN0aW5nU3RhdGUgPSAodHlwZW9mIExJU1RJTkdfU1RBVEVTKVtudW1iZXJdO1xuXG4vKiogV2hhdCBhIHB1Ymxpc2ggcmVxdWVzdCBhc2tzIHRoZSBzeXN0ZW0gb3JnIHRvIGRvLiAqL1xuZXhwb3J0IGNvbnN0IFBVQkxJU0hfUkVRVUVTVF9LSU5EUyA9IFtcbiAgJ25ld19saXN0aW5nJywgJ25ld192ZXJzaW9uJywgJ2xpc3RpbmdfdXBkYXRlJywgJ3lhbmsnLCAndW5wYXVzZScsXG4gICd0cmFuc2ZlcicsICdjbGFpbScsICdwcm9maWxlX2NoYW5nZScsICdhZHZpc29yeScsICd2ZXJpZnknLCAnbW9kZXJhdGlvbicsICdzdWJtaXNzaW9uJyxcbl0gYXMgY29uc3Q7XG5leHBvcnQgdHlwZSBQdWJsaXNoUmVxdWVzdEtpbmQgPSAodHlwZW9mIFBVQkxJU0hfUkVRVUVTVF9LSU5EUylbbnVtYmVyXTtcblxuZXhwb3J0IGNvbnN0IFBVQkxJU0hfUkVRVUVTVF9TVEFUVVNFUyA9IFsncGVuZGluZycsICdwZW5kaW5nX3NlY29uZF9hcHByb3ZhbCcsICdhcHByb3ZlZCcsICdyZWplY3RlZCcsICd3aXRoZHJhd24nXSBhcyBjb25zdDtcbmV4cG9ydCB0eXBlIFB1Ymxpc2hSZXF1ZXN0U3RhdHVzID0gKHR5cGVvZiBQVUJMSVNIX1JFUVVFU1RfU1RBVFVTRVMpW251bWJlcl07XG5cbi8qKiBUaGUgc3RhdHVzZXMgYSByZXF1ZXN0IGlzIHN0aWxsIFwib3BlblwiIGluIChkcml2ZXMgdGhlIG9uZS1vcGVuLXJlcXVlc3QgaW5kZXgpLiAqL1xuZXhwb3J0IGNvbnN0IE9QRU5fUFVCTElTSF9SRVFVRVNUX1NUQVRVU0VTID0gWydwZW5kaW5nJywgJ3BlbmRpbmdfc2Vjb25kX2FwcHJvdmFsJ10gYXMgY29uc3Qgc2F0aXNmaWVzIHJlYWRvbmx5IFB1Ymxpc2hSZXF1ZXN0U3RhdHVzW107XG5cbi8qKiBgc2VjdXJpdHlgIHJlcXVlc3RzIGp1bXAgdGhlIG1vZGVyYXRpb24gcXVldWUuICovXG5leHBvcnQgY29uc3QgUFVCTElTSF9SRVFVRVNUX0xBTkVTID0gWydzdGFuZGFyZCcsICdzZWN1cml0eSddIGFzIGNvbnN0O1xuZXhwb3J0IHR5cGUgUHVibGlzaFJlcXVlc3RMYW5lID0gKHR5cGVvZiBQVUJMSVNIX1JFUVVFU1RfTEFORVMpW251bWJlcl07XG5cbi8qKiBJbnN0YWxsIHZlcnNpb24gcG9saWN5OiBleGFjdCwgYH5gLCBgXmAsIG9yIGFueXRoaW5nIG5vbi1icmVha2luZy4gKi9cbmV4cG9ydCBjb25zdCBJTlNUQUxMX1ZFUlNJT05fUE9MSUNJRVMgPSBbJ3Bpbm5lZCcsICdwYXRjaCcsICdtaW5vcicsICdsYXRlc3QnXSBhcyBjb25zdDtcbmV4cG9ydCB0eXBlIEluc3RhbGxWZXJzaW9uUG9saWN5ID0gKHR5cGVvZiBJTlNUQUxMX1ZFUlNJT05fUE9MSUNJRVMpW251bWJlcl07XG5cbmV4cG9ydCBjb25zdCBJTlNUQUxMX1NUQVRVU0VTID0gWydhY3RpdmUnLCAncGVuZGluZ19hcHByb3ZhbCcsICdkZW5pZWQnXSBhcyBjb25zdDtcbmV4cG9ydCB0eXBlIEluc3RhbGxTdGF0dXMgPSAodHlwZW9mIElOU1RBTExfU1RBVFVTRVMpW251bWJlcl07XG5cbi8qKiBUaGUgYWR2aXNvcnkgc2V2ZXJpdHkgYXQgd2hpY2ggYSBjb25zdW1wdGlvbiBwb2xpY3kgYmxvY2tzIGluc3RhbGxzLiAqL1xuZXhwb3J0IGNvbnN0IEJMT0NLX09OX0FEVklTT1JZX0xFVkVMUyA9IFsnY3JpdGljYWwnLCAnaGlnaCcsICduZXZlciddIGFzIGNvbnN0O1xuZXhwb3J0IHR5cGUgQmxvY2tPbkFkdmlzb3J5ID0gKHR5cGVvZiBCTE9DS19PTl9BRFZJU09SWV9MRVZFTFMpW251bWJlcl07XG5cbi8qKiBXaGV0aGVyIG9mZmljaWFsIHBsdWdpbnMgbmVlZCBhbiBleHBsaWNpdCBpbnN0YWxsIGJlZm9yZSBhIHBpcGVsaW5lIGNhbiB1c2UgdGhlbS4gKi9cbmV4cG9ydCBjb25zdCBPRkZJQ0lBTF9JTlNUQUxMU19NT0RFUyA9IFsnaW1wbGljaXQnLCAnZXhwbGljaXQnXSBhcyBjb25zdDtcbmV4cG9ydCB0eXBlIE9mZmljaWFsSW5zdGFsbHMgPSAodHlwZW9mIE9GRklDSUFMX0lOU1RBTExTX01PREVTKVtudW1iZXJdO1xuXG4vKipcbiAqIFdoYXQgaGFwcGVucyB3aGVuIGFuIG9yZyBkZWZpbmVzIGEgcGx1Z2luIE5BTUUgdGhhdCBvdmVycmlkZXMgc29tZXRoaW5nIGl0XG4gKiB3b3VsZCBvdGhlcndpc2UgcmVzb2x2ZSDigJQgYSBsaXN0aW5nLCBvciAoZm9yIGEgdGVhbSkgaXRzIHBhcmVudCBvcmcncyBwbHVnaW4uXG4gKlxuICogYGFsbG93YCBrZWVwcyB0b2RheSdzIGJlaGF2aW91cjogdGhlIG92ZXJyaWRlIGlzIHNpbGVudCBiZXlvbmQgdGhlIGRhc2hib2FyZFxuICogYmFubmVyLiBgd2FybmAgaXMgdGhlIHNhbWUgcmVzb2x1dGlvbiB3aXRoIHRoZSBmYWN0IHJlY29yZGVkIHByb21pbmVudGx5LlxuICogYGRlbnlgIHJlZnVzZXMgdGhlIHVwbG9hZCwgd2hpY2ggaXMgdGhlIG9ubHkgc2V0dGluZyB0aGF0IGFjdHVhbGx5IHN0b3BzIGFcbiAqIHRlYW0gcmVwbGFjaW5nIHRoZSBPZmZpY2lhbCBgdHJpdnlgIGZvciBldmVyeSBwaXBlbGluZSB0aGF0IG5hbWVzIGl0LlxuICovXG5leHBvcnQgY29uc3QgU0hBRE9XSU5HX01PREVTID0gWydhbGxvdycsICd3YXJuJywgJ2RlbnknXSBhcyBjb25zdDtcbmV4cG9ydCB0eXBlIFNoYWRvd2luZ01vZGUgPSAodHlwZW9mIFNIQURPV0lOR19NT0RFUylbbnVtYmVyXTtcblxuZXhwb3J0IGNvbnN0IFJFVklFV19TVEFUVVNFUyA9IFsncHVibGlzaGVkJywgJ2hlbGQnLCAncmVtb3ZlZCddIGFzIGNvbnN0O1xuZXhwb3J0IHR5cGUgUmV2aWV3U3RhdHVzID0gKHR5cGVvZiBSRVZJRVdfU1RBVFVTRVMpW251bWJlcl07XG5cbi8qKiBXaHkgYSBoZWxkIHJldmlldyBpcyBoZWxkLiAqL1xuZXhwb3J0IGNvbnN0IFJFVklFV19IT0xEX1JFQVNPTlMgPSBbJ3JlcG9ydHMnLCAnYnVyc3QnLCAnZmlsdGVyJywgJ3NlY3VyaXR5JywgJ21vZGVyYXRvciddIGFzIGNvbnN0O1xuZXhwb3J0IHR5cGUgUmV2aWV3SG9sZFJlYXNvbiA9ICh0eXBlb2YgUkVWSUVXX0hPTERfUkVBU09OUylbbnVtYmVyXTtcblxuLyoqIEEgcmV2aWV3IHJlcG9ydCdzIGNhdGVnb3J5OyBgc2VjdXJpdHlgIHJvdXRlcyBwcml2YXRlbHkgdG8gdGhlIGFkdmlzb3J5IHBhdGguICovXG5leHBvcnQgY29uc3QgUkVWSUVXX1JFUE9SVF9DQVRFR09SSUVTID0gWydzcGFtJywgJ2FidXNlJywgJ29mZl90b3BpYycsICdzZWN1cml0eSddIGFzIGNvbnN0O1xuZXhwb3J0IHR5cGUgUmV2aWV3UmVwb3J0Q2F0ZWdvcnkgPSAodHlwZW9mIFJFVklFV19SRVBPUlRfQ0FURUdPUklFUylbbnVtYmVyXTtcblxuZXhwb3J0IGNvbnN0IEFEVklTT1JZX1NFVkVSSVRJRVMgPSBbJ2NyaXRpY2FsJywgJ2hpZ2gnLCAnbWVkaXVtJywgJ2xvdyddIGFzIGNvbnN0O1xuZXhwb3J0IHR5cGUgQWR2aXNvcnlTZXZlcml0eSA9ICh0eXBlb2YgQURWSVNPUllfU0VWRVJJVElFUylbbnVtYmVyXTtcblxuZXhwb3J0IGNvbnN0IEFEVklTT1JZX1NUQVRFUyA9IFsnZHJhZnQnLCAncHVibGlzaGVkJywgJ3dpdGhkcmF3biddIGFzIGNvbnN0O1xuZXhwb3J0IHR5cGUgQWR2aXNvcnlTdGF0ZSA9ICh0eXBlb2YgQURWSVNPUllfU1RBVEVTKVtudW1iZXJdO1xuXG5leHBvcnQgY29uc3QgQURWSVNPUllfU09VUkNFUyA9IFsncHVibGlzaGVyJywgJ21vZGVyYXRvcicsICdjdmVfcmVzY2FuJywgJ3JldmlldyddIGFzIGNvbnN0O1xuZXhwb3J0IHR5cGUgQWR2aXNvcnlTb3VyY2UgPSAodHlwZW9mIEFEVklTT1JZX1NPVVJDRVMpW251bWJlcl07XG5cbi8qKlxuICogQW4gYW5vbnltb3VzIHN1Ym1pc3Npb24ncyBsaWZlY3ljbGUuIGBwdWJsaXNoaW5nYCBpcyB0aGUgc2hvcnQgY2xhaW0gYW5cbiAqIGFwcHJvdmFsIHRha2VzIGJlZm9yZSBpdCBjb3BpZXMgdGhlIHF1YXJhbnRpbmVkIGltYWdlIG91dCwgc28gYW4gZXhwaXJ5IGNhblxuICogbmV2ZXIgZGVsZXRlIHRoZSBhcnRpZmFjdHMgb2YgYSBzdWJtaXNzaW9uIHRoYXQgaXMgYmVpbmcgcHVibGlzaGVkLlxuICovXG5leHBvcnQgY29uc3QgU1VCTUlTU0lPTl9TVEFUVVNFUyA9IFtcbiAgJ3BlbmRpbmdfdmVyaWZpY2F0aW9uJywgJ3BlbmRpbmdfcmV2aWV3JywgJ3B1Ymxpc2hpbmcnLCAnZ2F0ZV9mYWlsZWQnLCAnYXBwcm92ZWQnLCAncmVqZWN0ZWQnLCAnZXhwaXJlZCcsICdjbGFpbWVkJyxcbl0gYXMgY29uc3Q7XG5leHBvcnQgdHlwZSBTdWJtaXNzaW9uU3RhdHVzID0gKHR5cGVvZiBTVUJNSVNTSU9OX1NUQVRVU0VTKVtudW1iZXJdO1xuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gUGx1Z2luIHNlY3VyaXR5IG5vdGlmaWNhdGlvbnMgKHBlciBvcmcpXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vKiogV2hvIHJlY2VpdmVzIGFuIG9yZydzIHBsdWdpbiBzZWN1cml0eSBub3RpY2VzOiBgd3JpdGVyc2AgPSB0aGUgdXBsb2FkZXIgcGx1c1xuICogIG1lbWJlcnMgaG9sZGluZyBgcGx1Z2luczp3cml0ZWA7IGB1c2Vyc2AgPSB0aGUgb3JnJ3MgY2hvc2VuIG1lbWJlcnMuICovXG5leHBvcnQgY29uc3QgUExVR0lOX1NFQ1VSSVRZX1JFQ0lQSUVOVF9NT0RFUyA9IFsnd3JpdGVycycsICd1c2VycyddIGFzIGNvbnN0O1xuZXhwb3J0IHR5cGUgUGx1Z2luU2VjdXJpdHlSZWNpcGllbnRNb2RlID0gKHR5cGVvZiBQTFVHSU5fU0VDVVJJVFlfUkVDSVBJRU5UX01PREVTKVtudW1iZXJdO1xuXG4vKiogSG93IHJlc2NhbiBmaW5kaW5ncyAoTjMxKSBhcmUgYmF0Y2hlZDsgYmxvY2tlZCBidWlsZHMgKE4zMCkgYXJlIGFsd2F5cyBpbW1lZGlhdGUuICovXG5leHBvcnQgY29uc3QgUExVR0lOX1NFQ1VSSVRZX0RJR0VTVF9NT0RFUyA9IFsnaW1tZWRpYXRlJywgJ2RhaWx5JywgJ3dlZWtseSddIGFzIGNvbnN0O1xuZXhwb3J0IHR5cGUgUGx1Z2luU2VjdXJpdHlEaWdlc3RNb2RlID0gKHR5cGVvZiBQTFVHSU5fU0VDVVJJVFlfRElHRVNUX01PREVTKVtudW1iZXJdO1xuXG4vLyBUaGUgYnVpbGQgQ0xBU1MgYW5kIFNJWkUgdm9jYWJ1bGFyaWVzIGxpdmUgaW4gYGJ1aWxkLWNhdGFsb2cudHNgLCB0b2dldGhlclxuLy8gd2l0aCB0aGVpciBsYWJlbHMsIGNyZWRpdCBtdWx0aXBsaWVycywgdGllciBmbG9vcnMgYW5kIHBlci1jbGFzcyBzbG90XG4vLyBkZWZhdWx0cy4gVGhleSBhcmUgbm90IGhlcmUgYmVjYXVzZSB0aGUgaWRzIGFsb25lIHdlcmUgbmV2ZXIgdGhlIHdob2xlIGZhY3Q6XG4vLyB0aGUgbXVsdGlwbGllciB3YXMgaW4gdGhpcyBmaWxlLCB0aGUgdGllciBnYXRlIHdhcyBpbiBgcXVvdGEtdGllcnMudHNgLCBhbmRcbi8vIHRoZSBsYWJlbHMgd2VyZSBpbiBhIGZyb250ZW5kIG1pcnJvciBvZiBib3RoLiBPbmUga2V5ZWQgY2F0YWxvZyBpcyBpbXBvcnRhYmxlXG4vLyBieSB0aGUgYnJvd3Nlciwgc28gdGhlIG1pcnJvciBhbmQgdGhlIHRlc3QgdGhhdCBwYXJzZWQgdGhpcyBwYWNrYWdlJ3Mgc291cmNlXG4vLyB0byBkZXRlY3QgZHJpZnQgYXJlIGJvdGggZ29uZS5cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIE9yZyBtZW1iZXJzaGlwXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vKipcbiAqIFRoZSBjb2Fyc2UgcGVyLW9yZyBtZW1iZXJzaGlwIGxhYmVsIChgVXNlck9yZ2FuaXphdGlvbi5yb2xlYCxcbiAqIGBJbnZpdGF0aW9uLnJvbGVgLCB0aGUgYWNjZXNzIHRva2VuJ3MgYHJvbGVgKSwgaGlnaGVzdCBhdXRob3JpdHkgZmlyc3Q6XG4gKiBgb3duZXJgIGNyZWF0ZWQgdGhlIG9yZyBvciByZWNlaXZlZCBhbiBvd25lcnNoaXAgdHJhbnNmZXIsIGBhZG1pbmAgbWFuYWdlc1xuICogbWVtYmVycyBhbmQgc2V0dGluZ3MsIGBtZW1iZXJgIGhhcyBzdGFuZGFyZCBhY2Nlc3MuIERFUklWRUQgZnJvbSB0aGUgUm9sZXMgYVxuICogdXNlciBpcyBhc3NpZ25lZCAodGhlIGhpZ2hlc3QgYGdyYW50c1JvbGVgIGFtb25nIHRoZW07IGBvd25lcmAgb25seSBieVxuICogdHJhbnNmZXIpIOKAlCBhIGRpc3BsYXkvYXV0aG9yaXR5IGxhYmVsIGRyaXZpbmcgYGlzQWRtaW5gLCBvd25lcnNoaXAgYW5kIHNlYXRcbiAqIGFjY291bnRpbmcsIE5PVCBhIHBlcm1pc3Npb24gc291cmNlIChzZWUgYHJlc29sdmVVc2VyUGVybWlzc2lvbnNgKS5cbiAqL1xuZXhwb3J0IGNvbnN0IE9SR19ST0xFUyA9IFsnb3duZXInLCAnYWRtaW4nLCAnbWVtYmVyJ10gYXMgY29uc3Q7XG5leHBvcnQgdHlwZSBPcmdSb2xlID0gKHR5cGVvZiBPUkdfUk9MRVMpW251bWJlcl07XG5cbi8qKlxuICogVGhlIG1lbWJlcnNoaXAgcm9sZXMgdGhhdCBBRE1JTklTVEVSIGFuIG9yZzogdGhlIHRva2VuJ3MgYGlzQWRtaW5gLCB0aGVcbiAqIFwibm90aWZ5IHRoaXMgb3JnJ3MgYWRtaW5zXCIgbG9va3VwcyBhbmQgdGhlIGludml0ZS9hcHByb3ZhbCBhdXRob3JpdHkgY2hlY2tzXG4gKiBhbGwgcmVhZCB0aGlzIG9uZSBsaXN0LlxuICovXG5leHBvcnQgY29uc3QgQURNSU5fT1JHX1JPTEVTID0gWydvd25lcicsICdhZG1pbiddIGFzIGNvbnN0IHNhdGlzZmllcyByZWFkb25seSBPcmdSb2xlW107XG5leHBvcnQgdHlwZSBBZG1pbk9yZ1JvbGUgPSAodHlwZW9mIEFETUlOX09SR19ST0xFUylbbnVtYmVyXTtcblxuLyoqIFdoZXRoZXIgYHZhbHVlYCBpcyBhIG1lbWJlcnNoaXAgcm9sZSwgbmFycm93aW5nIGl0LiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzT3JnUm9sZSh2YWx1ZTogdW5rbm93bik6IHZhbHVlIGlzIE9yZ1JvbGUge1xuICByZXR1cm4gKE9SR19ST0xFUyBhcyByZWFkb25seSB1bmtub3duW10pLmluY2x1ZGVzKHZhbHVlKTtcbn1cblxuLyoqIFdoZXRoZXIgYHJvbGVgIGFkbWluaXN0ZXJzIGl0cyBvcmcgKGBvd25lcmAgb3IgYGFkbWluYCkuICovXG5leHBvcnQgZnVuY3Rpb24gaXNBZG1pbk9yZ1JvbGUocm9sZTogdW5rbm93bik6IHJvbGUgaXMgQWRtaW5PcmdSb2xlIHtcbiAgcmV0dXJuIChBRE1JTl9PUkdfUk9MRVMgYXMgcmVhZG9ubHkgdW5rbm93bltdKS5pbmNsdWRlcyhyb2xlKTtcbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIEFsZXJ0aW5nXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vKiogV2hlcmUgYW4gb3JnJ3MgYWxlcnQgZGVzdGluYXRpb24gZGVsaXZlcnMgKGBhbGVydF9kZXN0aW5hdGlvbnMuY2hhbm5lbGApLiAqL1xuZXhwb3J0IGNvbnN0IEFMRVJUX0NIQU5ORUxTID0gWydzbGFjaycsICd3ZWJob29rJywgJ2luLWFwcCcsICdlbWFpbCddIGFzIGNvbnN0O1xuZXhwb3J0IHR5cGUgQWxlcnRDaGFubmVsID0gKHR5cGVvZiBBTEVSVF9DSEFOTkVMUylbbnVtYmVyXTtcblxuLyoqXG4gKiBUaGUgc2V2ZXJpdHkgbGFkZGVyIGFuIG9yZyBzZXRzIG9uIGl0cyBhbGVydCBydWxlcyBhbmQgdXNlcyBhcyBhXG4gKiBkZXN0aW5hdGlvbidzIGBtaW5TZXZlcml0eWAgZmxvb3IsIGxlYXN0IHNldmVyZSBmaXJzdCAoYHdhcm5pbmdgID1cbiAqIHdhcm5pbmcrY3JpdGljYWwsIGBjcml0aWNhbGAgPSBjcml0aWNhbCBvbmx5KS4gTWlycm9ycyBBbGVydG1hbmFnZXIgc2V2ZXJpdHlcbiAqIG9yZGVyaW5nLiBBbiBpbmJvdW5kIGFsZXJ0IG1heSBhbHNvIGNhcnJ5IGBpbmZvYCwgd2hpY2ggbm8gcnVsZSBjYW4gZW1pdCBhbmRcbiAqIG5vIGRlc3RpbmF0aW9uIGNhbiBzdWJzY3JpYmUgdG8uXG4gKi9cbmV4cG9ydCBjb25zdCBBTEVSVF9SVUxFX1NFVkVSSVRJRVMgPSBbJ3dhcm5pbmcnLCAnY3JpdGljYWwnXSBhcyBjb25zdDtcbmV4cG9ydCB0eXBlIEFsZXJ0UnVsZVNldmVyaXR5ID0gKHR5cGVvZiBBTEVSVF9SVUxFX1NFVkVSSVRJRVMpW251bWJlcl07XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBTdXBwb3J0IGNhc2VzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vKiogQSBzdXBwb3J0IGNhc2UncyBsaWZlY3ljbGUgc3RhdGUgKGBzdXBwb3J0X2Nhc2VzLnN0YXR1c2ApLiAqL1xuZXhwb3J0IGNvbnN0IFNVUFBPUlRfQ0FTRV9TVEFUVVNFUyA9IFsnb3BlbicsICdhd2FpdGluZ19zdXBwb3J0JywgJ2F3YWl0aW5nX2N1c3RvbWVyJywgJ3Jlc29sdmVkJywgJ2Nsb3NlZCddIGFzIGNvbnN0O1xuZXhwb3J0IHR5cGUgU3VwcG9ydENhc2VTdGF0dXMgPSAodHlwZW9mIFNVUFBPUlRfQ0FTRV9TVEFUVVNFUylbbnVtYmVyXTtcblxuLyoqXG4gKiBUaGUgc3RhdHVzZXMgYSBURU5BTlQgbWF5IHNldCBvbiBpdHMgb3duIGNhc2UuIGBhd2FpdGluZ19zdXBwb3J0YCBhbmRcbiAqIGByZXNvbHZlZGAgYXJlIHRoZSBzdXBwb3J0IGRlc2sncyB0byBzZXQ7IGBjbG9zZWRgIGlzIHRoZSB0ZW5hbnQncyB3YXkgb3V0XG4gKiAoYW5kLCBvbmNlIHRoZXJlLCBhIHRlbmFudCBjYW5ub3QgbW92ZSB0aGUgY2FzZSBiYWNrKS5cbiAqL1xuZXhwb3J0IGNvbnN0IFRFTkFOVF9TVVBQT1JUX0NBU0VfU1RBVFVTRVMgPSBbJ29wZW4nLCAnYXdhaXRpbmdfY3VzdG9tZXInLCAnY2xvc2VkJ10gYXMgY29uc3Qgc2F0aXNmaWVzIHJlYWRvbmx5IFN1cHBvcnRDYXNlU3RhdHVzW107XG5leHBvcnQgdHlwZSBUZW5hbnRTdXBwb3J0Q2FzZVN0YXR1cyA9ICh0eXBlb2YgVEVOQU5UX1NVUFBPUlRfQ0FTRV9TVEFUVVNFUylbbnVtYmVyXTtcblxuLyoqIFN0YXR1c2VzIGEgdGVuYW50IGNhbm5vdCBtb3ZlIE9VVCBvZi4gKi9cbmV4cG9ydCBjb25zdCBURU5BTlRfVEVSTUlOQUxfU1VQUE9SVF9DQVNFX1NUQVRVU0VTID0gWydjbG9zZWQnXSBhcyBjb25zdCBzYXRpc2ZpZXMgcmVhZG9ubHkgVGVuYW50U3VwcG9ydENhc2VTdGF0dXNbXTtcblxuLyoqIFN0YXR1c2VzIGEgY2FzZSBpcyBzdGlsbCBMSVZFIGluIChub3QgcmVzb2x2ZWQgb3IgY2xvc2VkKS4gKi9cbmV4cG9ydCBjb25zdCBMSVZFX1NVUFBPUlRfQ0FTRV9TVEFUVVNFUyA9IFsnb3BlbicsICdhd2FpdGluZ19zdXBwb3J0JywgJ2F3YWl0aW5nX2N1c3RvbWVyJ10gYXMgY29uc3Qgc2F0aXNmaWVzIHJlYWRvbmx5IFN1cHBvcnRDYXNlU3RhdHVzW107XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBDb21wbGlhbmNlIHNjYW5zLCBleGVtcHRpb25zIGFuZCBjaGVja3Ncbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8qKiBXaGF0IGEgY29tcGxpYW5jZSBzY2FuIChvciBhIHNjYW4gc2NoZWR1bGUpIGNvdmVyczogb25lIHJ1bGUgdGFyZ2V0LCBvciBldmVyeSBvbmUuICovXG5leHBvcnQgY29uc3QgQ09NUExJQU5DRV9TQ0FOX1RBUkdFVFMgPSBbLi4uUlVMRV9UQVJHRVRTLCAnYWxsJ10gYXMgY29uc3Q7XG5leHBvcnQgdHlwZSBDb21wbGlhbmNlU2NhblRhcmdldCA9ICh0eXBlb2YgQ09NUExJQU5DRV9TQ0FOX1RBUkdFVFMpW251bWJlcl07XG5cbmV4cG9ydCBjb25zdCBDT01QTElBTkNFX1NDQU5fU1RBVFVTRVMgPSBbJ3BlbmRpbmcnLCAncnVubmluZycsICdjb21wbGV0ZWQnLCAnZmFpbGVkJywgJ2NhbmNlbGxlZCddIGFzIGNvbnN0O1xuZXhwb3J0IHR5cGUgQ29tcGxpYW5jZVNjYW5TdGF0dXMgPSAodHlwZW9mIENPTVBMSUFOQ0VfU0NBTl9TVEFUVVNFUylbbnVtYmVyXTtcblxuLyoqIFdoeSBhIHNjYW4gcm93IGV4aXN0cy4gYHJ1bGUtZHJ5LXJ1bmAgc2NhbnMgZXZhbHVhdGUgd2l0aG91dCB3cml0aW5nIHRoZSBjaGVjayBsb2cgb3Igbm90aWZ5aW5nLiAqL1xuZXhwb3J0IGNvbnN0IENPTVBMSUFOQ0VfU0NBTl9UUklHR0VSUyA9IFsnbWFudWFsJywgJ3NjaGVkdWxlZCcsICdydWxlLWNoYW5nZScsICdydWxlLWRyeS1ydW4nXSBhcyBjb25zdDtcbmV4cG9ydCB0eXBlIENvbXBsaWFuY2VTY2FuVHJpZ2dlciA9ICh0eXBlb2YgQ09NUExJQU5DRV9TQ0FOX1RSSUdHRVJTKVtudW1iZXJdO1xuXG5leHBvcnQgY29uc3QgQ09NUExJQU5DRV9FWEVNUFRJT05fU1RBVFVTRVMgPSBbJ3BlbmRpbmcnLCAnYXBwcm92ZWQnLCAncmVqZWN0ZWQnLCAnZXhwaXJlZCddIGFzIGNvbnN0O1xuZXhwb3J0IHR5cGUgQ29tcGxpYW5jZUV4ZW1wdGlvblN0YXR1cyA9ICh0eXBlb2YgQ09NUExJQU5DRV9FWEVNUFRJT05fU1RBVFVTRVMpW251bWJlcl07XG5cbi8qKiBUaGUgdHdvIGRlY2lzaW9ucyBhIHJldmlld2VyIGNhbiBtYWtlIG9uIGEgcGVuZGluZyBleGVtcHRpb24uICovXG5leHBvcnQgY29uc3QgQ09NUExJQU5DRV9FWEVNUFRJT05fREVDSVNJT05TID0gWydhcHByb3ZlZCcsICdyZWplY3RlZCddIGFzIGNvbnN0IHNhdGlzZmllcyByZWFkb25seSBDb21wbGlhbmNlRXhlbXB0aW9uU3RhdHVzW107XG5leHBvcnQgdHlwZSBDb21wbGlhbmNlRXhlbXB0aW9uRGVjaXNpb24gPSAodHlwZW9mIENPTVBMSUFOQ0VfRVhFTVBUSU9OX0RFQ0lTSU9OUylbbnVtYmVyXTtcblxuLyoqIEEgY29tcGxpYW5jZSBjaGVjay1sb2cgcm93J3MgdmVyZGljdCAoYGNvbXBsaWFuY2VfY2hlY2tfbG9nLnJlc3VsdGApLiAqL1xuZXhwb3J0IGNvbnN0IENPTVBMSUFOQ0VfQ0hFQ0tfUkVTVUxUUyA9IFsncGFzcycsICd3YXJuJywgJ2Jsb2NrJ10gYXMgY29uc3Q7XG5leHBvcnQgdHlwZSBDb21wbGlhbmNlQ2hlY2tWZXJkaWN0ID0gKHR5cGVvZiBDT01QTElBTkNFX0NIRUNLX1JFU1VMVFMpW251bWJlcl07XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBBSSBjYWxsc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLyoqIFdob3NlIGtleSBzZXJ2ZXMgYW4gQUkgY2FsbDogdGhlIGNhbGxlcidzIG93biAoYHJlcXVlc3RgLCBCWU9LKSwgdGhlIG9yZydzLCBvciB0aGUgcGxhdGZvcm0ncy4gT25seSBgcGxhdGZvcm1gIHNwZW5kcyBgYWlDYWxsc2AuICovXG5leHBvcnQgY29uc3QgQUlfS0VZX1NPVVJDRVMgPSBbJ3BsYXRmb3JtJywgJ29yZycsICdyZXF1ZXN0J10gYXMgY29uc3Q7XG5leHBvcnQgdHlwZSBBaUtleVNvdXJjZSA9ICh0eXBlb2YgQUlfS0VZX1NPVVJDRVMpW251bWJlcl07XG5cbi8qKlxuICogSG93IGFuIEFJIGNhbGwncyBgYWlDYWxsc2AgcXVvdGEgc2xvdCBzZXR0bGVkOiBga2VwdGAgKHRoZSBjYWxsIHJlYWNoZWQgYVxuICogcHJvdmlkZXIpLCBgcmVmdW5kZWRgIChpdCBuZXZlciBkaWQpLCBvciBgd2FpdmVkYCAobm8gdW5pdCB3YXMgcmVzZXJ2ZWQg4oCUIGFcbiAqIEJZT0sga2V5LCBhbiBpbXBlcnNvbmF0ZWQgY2FsbCBvciBhIHdlaWdodC0wIG1vZGVsKS5cbiAqL1xuZXhwb3J0IGNvbnN0IEFJX1FVT1RBX1NFVFRMRU1FTlRTID0gWydrZXB0JywgJ3JlZnVuZGVkJywgJ3dhaXZlZCddIGFzIGNvbnN0O1xuZXhwb3J0IHR5cGUgQWlRdW90YVNldHRsZW1lbnQgPSAodHlwZW9mIEFJX1FVT1RBX1NFVFRMRU1FTlRTKVtudW1iZXJdO1xuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gUGx1Z2luLXZlcnNpb24gdnVsbmVyYWJpbGl0eSBncmFkZXNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8qKiBIb3cgbG91ZCBhIHBsdWdpbi12ZXJzaW9uIHZ1bG5lcmFiaWxpdHkgd2FybmluZyBpcywgcXVpZXRlc3QgZmlyc3QgKHNlZSBgc2VydmljZXMvdmVyc2lvbi12dWxuLXBvbGljeS50c2ApLiAqL1xuZXhwb3J0IGNvbnN0IFZVTE5fU0VWRVJJVElFUyA9IFsnaW5mbycsICd3YXJuaW5nJywgJ2Vycm9yJywgJ2NyaXRpY2FsJ10gYXMgY29uc3Q7XG5leHBvcnQgdHlwZSBWdWxuU2V2ZXJpdHkgPSAodHlwZW9mIFZVTE5fU0VWRVJJVElFUylbbnVtYmVyXTtcbiJdfQ==
|
|
@@ -6,7 +6,7 @@ export { isAllowedSpdxId, projectUrlProblem, validateCatalogField, findContractK
|
|
|
6
6
|
export { isAllowedAttachmentType, MessageTypeSchema, MessagePrioritySchema, MessageSentBySchema, MessageFilterSchema, MESSAGE_ATTACHMENT_MAX_BYTES, MESSAGE_ATTACHMENT_ALLOWED_MIME, MessageCreateSchema, MessageReplySchema, MessageEditSchema, MessageHideSchema, MessageBulkIdsSchema, MessageBulkReadSchema, MESSAGE_BULK_MAX_IDS, } from './message-schemas.js';
|
|
7
7
|
export * from './ai-schemas.js';
|
|
8
8
|
export { validate, validateQuery, validateBody, } from './middleware.js';
|
|
9
|
-
export { isValidEgressHost, checkPluginSpec, checkPluginConfig, pluginSpecRequiredFieldsProblem, PLUGIN_TYPES, PLUGIN_COMPUTE_TYPES, type PluginBuildType, PLUGIN_NAME_PATTERN, PLUGIN_VERSION_PATTERN, type PluginSpecInput, type PackageCheck, } from './plugin-spec-schema.js';
|
|
9
|
+
export { isValidEgressHost, checkPluginSpec, checkPluginConfig, pluginSpecRequiredFieldsProblem, PLUGIN_TYPES, STEP_PLUGIN_TYPES, PluginToolchainSchema, type PluginToolchain, toolchainMetadata, toolchainFromMetadata, PLUGIN_SOURCE_DIGEST_PATTERN, PLUGIN_COMPUTE_TYPES, type PluginBuildType, PLUGIN_NAME_PATTERN, PLUGIN_VERSION_PATTERN, type PluginSpecInput, type PackageCheck, } from './plugin-spec-schema.js';
|
|
10
10
|
export { stripInlineMarkdown, readmeTitle, readmeFirstParagraph, firstSentence, detectCatalogMetadata, resolveCatalogMetadata, acceptAllCatalogMetadata, parseCatalogEdits, parseCatalogEditsPart, type DetectedField, type CatalogSpecFields, type ResolvedCatalog, } from './plugin-catalog-detect.js';
|
|
11
11
|
export { parseLabelArgs, parseDockerfile, OCI_LABELS, } from './dockerfile-static.js';
|
|
12
12
|
export { isPluginTemplatableField, checkPluginTemplates, formatPluginTemplateIssue, PLUGIN_TEMPLATE_SCOPE_ROOTS, type PluginTemplateEngine, type PluginTemplateIssue, } from './plugin-template-contract.js';
|
package/lib/validation/index.js
CHANGED
|
@@ -8,7 +8,7 @@ export { isAllowedSpdxId, projectUrlProblem, validateCatalogField, findContractK
|
|
|
8
8
|
export { isAllowedAttachmentType, MessageTypeSchema, MessagePrioritySchema, MessageSentBySchema, MessageFilterSchema, MESSAGE_ATTACHMENT_MAX_BYTES, MESSAGE_ATTACHMENT_ALLOWED_MIME, MessageCreateSchema, MessageReplySchema, MessageEditSchema, MessageHideSchema, MessageBulkIdsSchema, MessageBulkReadSchema, MESSAGE_BULK_MAX_IDS, } from './message-schemas.js';
|
|
9
9
|
export * from './ai-schemas.js';
|
|
10
10
|
export { validate, validateQuery, validateBody, } from './middleware.js';
|
|
11
|
-
export { isValidEgressHost, checkPluginSpec, checkPluginConfig, pluginSpecRequiredFieldsProblem, PLUGIN_TYPES, PLUGIN_COMPUTE_TYPES, PLUGIN_NAME_PATTERN, PLUGIN_VERSION_PATTERN, } from './plugin-spec-schema.js';
|
|
11
|
+
export { isValidEgressHost, checkPluginSpec, checkPluginConfig, pluginSpecRequiredFieldsProblem, PLUGIN_TYPES, STEP_PLUGIN_TYPES, PluginToolchainSchema, toolchainMetadata, toolchainFromMetadata, PLUGIN_SOURCE_DIGEST_PATTERN, PLUGIN_COMPUTE_TYPES, PLUGIN_NAME_PATTERN, PLUGIN_VERSION_PATTERN, } from './plugin-spec-schema.js';
|
|
12
12
|
export { stripInlineMarkdown, readmeTitle, readmeFirstParagraph, firstSentence, detectCatalogMetadata, resolveCatalogMetadata, acceptAllCatalogMetadata, parseCatalogEdits, parseCatalogEditsPart, } from './plugin-catalog-detect.js';
|
|
13
13
|
export { parseLabelArgs, parseDockerfile, OCI_LABELS, } from './dockerfile-static.js';
|
|
14
14
|
export { isPluginTemplatableField, checkPluginTemplates, formatPluginTemplateIssue, PLUGIN_TEMPLATE_SCOPE_ROOTS, } from './plugin-template-contract.js';
|
|
@@ -16,4 +16,4 @@ export { lintPluginDockerfile, lintPluginSpec } from './plugin-lint.js';
|
|
|
16
16
|
export * from './plugin-base-images.js';
|
|
17
17
|
export { shannonEntropy, scanPluginSourceHeuristics, blockingHeuristics, HEURISTICS_MAX_FILE_BYTES, HEURISTICS_MAX_FINDINGS, } from './plugin-heuristics.js';
|
|
18
18
|
export { findConfusableName } from './plugin-name-confusable.js';
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92YWxpZGF0aW9uL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtDQUErQztBQUMvQyxzQ0FBc0M7QUFFdEMsT0FBTyxFQUNMLGdCQUFnQixFQUNoQixjQUFjLEVBQ2Qsa0JBQWtCLEVBQ2xCLGdCQUFnQixHQUNqQixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsT0FBTyxFQUNMLDRCQUE0QixFQUM1Qiw0QkFBNEIsRUFDNUIsNEJBQTRCLEVBQzVCLHlCQUF5QixHQUMxQixNQUFNLGdDQUFnQyxDQUFDO0FBQ3hDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsT0FBTyxFQUNMLGVBQWUsRUFDZixpQkFBaUIsRUFDakIsb0JBQW9CLEVBQ3BCLGdCQUFnQixFQUNoQixtQkFBbUIsRUFDbkIsZ0JBQWdCLEVBQ2hCLHdCQUF3QixFQUV4QixzQkFBc0IsR0FDdkIsTUFBTSw4QkFBOEIsQ0FBQztBQUN0QyxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixxQkFBcUIsRUFDckIsbUJBQW1CLEVBQ25CLG1CQUFtQixFQUNuQiw0QkFBNEIsRUFDNUIsK0JBQStCLEVBQy9CLG1CQUFtQixFQUNuQixrQkFBa0IsRUFDbEIsaUJBQWlCLEVBQ2pCLGlCQUFpQixFQUNqQixvQkFBb0IsRUFDcEIscUJBQXFCLEVBQ3JCLG9CQUFvQixHQUNyQixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsT0FBTyxFQUNMLFFBQVEsRUFDUixhQUFhLEVBQ2IsWUFBWSxHQUNiLE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixlQUFlLEVBQ2YsaUJBQWlCLEVBQ2pCLCtCQUErQixFQUMvQixZQUFZLEVBQ1osaUJBQWlCLEVBQ2pCLHFCQUFxQixFQUVyQixpQkFBaUIsRUFDakIscUJBQXFCLEVBQ3JCLDRCQUE0QixFQUM1QixvQkFBb0IsRUFFcEIsbUJBQW1CLEVBQ25CLHNCQUFzQixHQUd2QixNQUFNLHlCQUF5QixDQUFDO0FBQ2pDLE9BQU8sRUFDTCxtQkFBbUIsRUFDbkIsV0FBVyxFQUNYLG9CQUFvQixFQUNwQixhQUFhLEVBQ2IscUJBQXFCLEVBQ3JCLHNCQUFzQixFQUN0Qix3QkFBd0IsRUFDeEIsaUJBQWlCLEVBQ2pCLHFCQUFxQixHQUl0QixNQUFNLDRCQUE0QixDQUFDO0FBQ3BDLE9BQU8sRUFDTCxjQUFjLEVBQ2QsZUFBZSxFQUNmLFVBQVUsR0FDWCxNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sRUFDTCx3QkFBd0IsRUFDeEIsb0JBQW9CLEVBQ3BCLHlCQUF5QixFQUN6QiwyQkFBMkIsR0FHNUIsTUFBTSwrQkFBK0IsQ0FBQztBQUN2QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsY0FBYyxFQUEwQixNQUFNLGtCQUFrQixDQUFDO0FBQ2hHLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsT0FBTyxFQUNMLGNBQWMsRUFDZCwwQkFBMEIsRUFDMUIsa0JBQWtCLEVBS2xCLHlCQUF5QixFQUN6Qix1QkFBdUIsR0FDeEIsTUFBTSx3QkFBd0IsQ0FBQztBQUNoQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG5leHBvcnQge1xuICBWaXNpYmlsaXR5U2NoZW1hLFxuICBNQVhfUEFHRV9MSU1JVCxcbiAgREVGQVVMVF9QQUdFX0xJTUlULFxuICBVVUlEUHJlZml4U2NoZW1hLFxufSBmcm9tICcuL2NvbW1vbi1zY2hlbWFzLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vcGlwZWxpbmUtc2NoZW1hcy5qcyc7XG5leHBvcnQge1xuICBQaXBlbGluZVRlbXBsYXRlRmlsdGVyU2NoZW1hLFxuICBQaXBlbGluZVRlbXBsYXRlQ3JlYXRlU2NoZW1hLFxuICBQaXBlbGluZVRlbXBsYXRlVXBkYXRlU2NoZW1hLFxuICBJbnN0YW50aWF0ZVRlbXBsYXRlU2NoZW1hLFxufSBmcm9tICcuL3BpcGVsaW5lLXRlbXBsYXRlLXNjaGVtYXMuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9wbHVnaW4tc2NoZW1hcy5qcyc7XG5leHBvcnQge1xuICBpc0FsbG93ZWRTcGR4SWQsXG4gIHByb2plY3RVcmxQcm9ibGVtLFxuICB2YWxpZGF0ZUNhdGFsb2dGaWVsZCxcbiAgZmluZENvbnRyYWN0S2V5cyxcbiAgY29udHJhY3RLZXlzTWVzc2FnZSxcbiAgSUNPTl9LRVlfUEFUVEVSTixcbiAgUGx1Z2luQ2F0YWxvZ0VkaXRzU2NoZW1hLFxuICB0eXBlIFBsdWdpbkNhdGFsb2dFZGl0cyxcbiAgUExVR0lOX0NPTlRSQUNUX0ZJRUxEUyxcbn0gZnJvbSAnLi9wbHVnaW4tY2F0YWxvZy1tZXRhZGF0YS5qcyc7XG5leHBvcnQge1xuICBpc0FsbG93ZWRBdHRhY2htZW50VHlwZSxcbiAgTWVzc2FnZVR5cGVTY2hlbWEsXG4gIE1lc3NhZ2VQcmlvcml0eVNjaGVtYSxcbiAgTWVzc2FnZVNlbnRCeVNjaGVtYSxcbiAgTWVzc2FnZUZpbHRlclNjaGVtYSxcbiAgTUVTU0FHRV9BVFRBQ0hNRU5UX01BWF9CWVRFUyxcbiAgTUVTU0FHRV9BVFRBQ0hNRU5UX0FMTE9XRURfTUlNRSxcbiAgTWVzc2FnZUNyZWF0ZVNjaGVtYSxcbiAgTWVzc2FnZVJlcGx5U2NoZW1hLFxuICBNZXNzYWdlRWRpdFNjaGVtYSxcbiAgTWVzc2FnZUhpZGVTY2hlbWEsXG4gIE1lc3NhZ2VCdWxrSWRzU2NoZW1hLFxuICBNZXNzYWdlQnVsa1JlYWRTY2hlbWEsXG4gIE1FU1NBR0VfQlVMS19NQVhfSURTLFxufSBmcm9tICcuL21lc3NhZ2Utc2NoZW1hcy5qcyc7XG5leHBvcnQgKiBmcm9tICcuL2FpLXNjaGVtYXMuanMnO1xuZXhwb3J0IHtcbiAgdmFsaWRhdGUsXG4gIHZhbGlkYXRlUXVlcnksXG4gIHZhbGlkYXRlQm9keSxcbn0gZnJvbSAnLi9taWRkbGV3YXJlLmpzJztcbmV4cG9ydCB7XG4gIGlzVmFsaWRFZ3Jlc3NIb3N0LFxuICBjaGVja1BsdWdpblNwZWMsXG4gIGNoZWNrUGx1Z2luQ29uZmlnLFxuICBwbHVnaW5TcGVjUmVxdWlyZWRGaWVsZHNQcm9ibGVtLFxuICBQTFVHSU5fVFlQRVMsXG4gIFNURVBfUExVR0lOX1RZUEVTLFxuICBQbHVnaW5Ub29sY2hhaW5TY2hlbWEsXG4gIHR5cGUgUGx1Z2luVG9vbGNoYWluLFxuICB0b29sY2hhaW5NZXRhZGF0YSxcbiAgdG9vbGNoYWluRnJvbU1ldGFkYXRhLFxuICBQTFVHSU5fU09VUkNFX0RJR0VTVF9QQVRURVJOLFxuICBQTFVHSU5fQ09NUFVURV9UWVBFUyxcbiAgdHlwZSBQbHVnaW5CdWlsZFR5cGUsXG4gIFBMVUdJTl9OQU1FX1BBVFRFUk4sXG4gIFBMVUdJTl9WRVJTSU9OX1BBVFRFUk4sXG4gIHR5cGUgUGx1Z2luU3BlY0lucHV0LFxuICB0eXBlIFBhY2thZ2VDaGVjayxcbn0gZnJvbSAnLi9wbHVnaW4tc3BlYy1zY2hlbWEuanMnO1xuZXhwb3J0IHtcbiAgc3RyaXBJbmxpbmVNYXJrZG93bixcbiAgcmVhZG1lVGl0bGUsXG4gIHJlYWRtZUZpcnN0UGFyYWdyYXBoLFxuICBmaXJzdFNlbnRlbmNlLFxuICBkZXRlY3RDYXRhbG9nTWV0YWRhdGEsXG4gIHJlc29sdmVDYXRhbG9nTWV0YWRhdGEsXG4gIGFjY2VwdEFsbENhdGFsb2dNZXRhZGF0YSxcbiAgcGFyc2VDYXRhbG9nRWRpdHMsXG4gIHBhcnNlQ2F0YWxvZ0VkaXRzUGFydCxcbiAgdHlwZSBEZXRlY3RlZEZpZWxkLFxuICB0eXBlIENhdGFsb2dTcGVjRmllbGRzLFxuICB0eXBlIFJlc29sdmVkQ2F0YWxvZyxcbn0gZnJvbSAnLi9wbHVnaW4tY2F0YWxvZy1kZXRlY3QuanMnO1xuZXhwb3J0IHtcbiAgcGFyc2VMYWJlbEFyZ3MsXG4gIHBhcnNlRG9ja2VyZmlsZSxcbiAgT0NJX0xBQkVMUyxcbn0gZnJvbSAnLi9kb2NrZXJmaWxlLXN0YXRpYy5qcyc7XG5leHBvcnQge1xuICBpc1BsdWdpblRlbXBsYXRhYmxlRmllbGQsXG4gIGNoZWNrUGx1Z2luVGVtcGxhdGVzLFxuICBmb3JtYXRQbHVnaW5UZW1wbGF0ZUlzc3VlLFxuICBQTFVHSU5fVEVNUExBVEVfU0NPUEVfUk9PVFMsXG4gIHR5cGUgUGx1Z2luVGVtcGxhdGVFbmdpbmUsXG4gIHR5cGUgUGx1Z2luVGVtcGxhdGVJc3N1ZSxcbn0gZnJvbSAnLi9wbHVnaW4tdGVtcGxhdGUtY29udHJhY3QuanMnO1xuZXhwb3J0IHsgbGludFBsdWdpbkRvY2tlcmZpbGUsIGxpbnRQbHVnaW5TcGVjLCB0eXBlIFBsdWdpbkxpbnRGaW5kaW5nIH0gZnJvbSAnLi9wbHVnaW4tbGludC5qcyc7XG5leHBvcnQgKiBmcm9tICcuL3BsdWdpbi1iYXNlLWltYWdlcy5qcyc7XG5leHBvcnQge1xuICBzaGFubm9uRW50cm9weSxcbiAgc2NhblBsdWdpblNvdXJjZUhldXJpc3RpY3MsXG4gIGJsb2NraW5nSGV1cmlzdGljcyxcbiAgdHlwZSBIZXVyaXN0aWNTZXZlcml0eSxcbiAgdHlwZSBIZXVyaXN0aWNGaW5kaW5nLFxuICB0eXBlIEhldXJpc3RpY3NSZXBvcnQsXG4gIHR5cGUgSGV1cmlzdGljc0lucHV0RmlsZSxcbiAgSEVVUklTVElDU19NQVhfRklMRV9CWVRFUyxcbiAgSEVVUklTVElDU19NQVhfRklORElOR1MsXG59IGZyb20gJy4vcGx1Z2luLWhldXJpc3RpY3MuanMnO1xuZXhwb3J0IHsgZmluZENvbmZ1c2FibGVOYW1lIH0gZnJvbSAnLi9wbHVnaW4tbmFtZS1jb25mdXNhYmxlLmpzJztcbiJdfQ==
|
|
@@ -29,6 +29,22 @@ export declare const PipelineFilterSchema: z.ZodObject<{
|
|
|
29
29
|
orgId: z.ZodOptional<z.ZodString>;
|
|
30
30
|
keyword: z.ZodOptional<z.ZodString>;
|
|
31
31
|
}, z.core.$strip>;
|
|
32
|
+
/**
|
|
33
|
+
* A managed toolchain RELEASE version (docs/plans/bootstrap-image-versioning.md
|
|
34
|
+
* §1): plain `MAJOR.MINOR.PATCH` — a managed name refuses prerelease uploads,
|
|
35
|
+
* so a release is never a range or a prerelease.
|
|
36
|
+
*/
|
|
37
|
+
export declare const TOOLCHAIN_RELEASE_VERSION_PATTERN: RegExp;
|
|
38
|
+
/**
|
|
39
|
+
* A pipeline's toolchain release pin (§5): `{ release: "1.4.2" }` pins BOTH
|
|
40
|
+
* halves of one release (`pipeline-bootstrap` + `cdk-synth`). Omitted = the
|
|
41
|
+
* org default, canary or platform default. Eligibility (D15) is checked by the
|
|
42
|
+
* pipeline service when the pin changes, not here. Never carried by a pipeline
|
|
43
|
+
* TEMPLATE (D12).
|
|
44
|
+
*/
|
|
45
|
+
export declare const PipelineToolchainPinSchema: z.ZodObject<{
|
|
46
|
+
release: z.ZodString;
|
|
47
|
+
}, z.core.$strict>;
|
|
32
48
|
/**
|
|
33
49
|
* Pipeline creation schema
|
|
34
50
|
*/
|
|
@@ -107,6 +123,9 @@ export declare const PipelineCreateSchema: z.ZodObject<{
|
|
|
107
123
|
}>>;
|
|
108
124
|
}, z.core.$loose>>;
|
|
109
125
|
}, z.core.$loose>>>;
|
|
126
|
+
toolchain: z.ZodOptional<z.ZodObject<{
|
|
127
|
+
release: z.ZodString;
|
|
128
|
+
}, z.core.$strict>>;
|
|
110
129
|
}, z.core.$loose>;
|
|
111
130
|
}, z.core.$strip>;
|
|
112
131
|
/**
|
|
@@ -176,6 +195,9 @@ export declare const PipelineUpdateSchema: z.ZodObject<{
|
|
|
176
195
|
}>>;
|
|
177
196
|
}, z.core.$loose>>;
|
|
178
197
|
}, z.core.$loose>>>;
|
|
198
|
+
toolchain: z.ZodOptional<z.ZodObject<{
|
|
199
|
+
release: z.ZodString;
|
|
200
|
+
}, z.core.$strict>>;
|
|
179
201
|
}, z.core.$loose>>;
|
|
180
202
|
isActive: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodPipe<z.ZodEnum<{
|
|
181
203
|
false: "false";
|
|
@@ -23,6 +23,22 @@ const PLUGIN_REF_NON_FIELDS = {
|
|
|
23
23
|
version: '`version` is not a plugin-reference field — it is ignored and the default version is used. '
|
|
24
24
|
+ 'Pin or range the version with `filter: { version: "1.2.3" }` (also ^, ~, 1.x, 1.2, latest).',
|
|
25
25
|
};
|
|
26
|
+
/**
|
|
27
|
+
* A managed toolchain RELEASE version (docs/plans/bootstrap-image-versioning.md
|
|
28
|
+
* §1): plain `MAJOR.MINOR.PATCH` — a managed name refuses prerelease uploads,
|
|
29
|
+
* so a release is never a range or a prerelease.
|
|
30
|
+
*/
|
|
31
|
+
export const TOOLCHAIN_RELEASE_VERSION_PATTERN = /^\d+\.\d+\.\d+$/;
|
|
32
|
+
/**
|
|
33
|
+
* A pipeline's toolchain release pin (§5): `{ release: "1.4.2" }` pins BOTH
|
|
34
|
+
* halves of one release (`pipeline-bootstrap` + `cdk-synth`). Omitted = the
|
|
35
|
+
* org default, canary or platform default. Eligibility (D15) is checked by the
|
|
36
|
+
* pipeline service when the pin changes, not here. Never carried by a pipeline
|
|
37
|
+
* TEMPLATE (D12).
|
|
38
|
+
*/
|
|
39
|
+
export const PipelineToolchainPinSchema = z.object({
|
|
40
|
+
release: z.string().regex(TOOLCHAIN_RELEASE_VERSION_PATTERN, 'toolchain.release must be a release version (MAJOR.MINOR.PATCH, e.g. 1.4.2)'),
|
|
41
|
+
}).strict();
|
|
26
42
|
/**
|
|
27
43
|
* Plugin options schema (name-based selection)
|
|
28
44
|
*/
|
|
@@ -104,6 +120,8 @@ const BuilderPropsSchema = z.object({
|
|
|
104
120
|
plugin: PluginOptionsSchema,
|
|
105
121
|
}).passthrough(),
|
|
106
122
|
stages: z.array(StageSchema).optional(),
|
|
123
|
+
/** Toolchain release pin (see {@link PipelineToolchainPinSchema}). */
|
|
124
|
+
toolchain: PipelineToolchainPinSchema.optional(),
|
|
107
125
|
}).passthrough().superRefine((props, ctx) => {
|
|
108
126
|
for (const key of Object.keys(props.tags ?? {})) {
|
|
109
127
|
if (!isReservedTagKey(key))
|
|
@@ -154,4 +172,4 @@ export const PipelineUpdateSchema = z.object({
|
|
|
154
172
|
isDefault: BooleanQuerySchema.optional(),
|
|
155
173
|
visibility: VisibilitySchema.optional(),
|
|
156
174
|
});
|
|
157
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlwZWxpbmUtc2NoZW1hcy5qcyIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3ZhbGlkYXRpb24vcGlwZWxpbmUtc2NoZW1hcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQ0FBK0M7QUFDL0Msc0NBQXNDO0FBRXRDLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFDeEIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGtCQUFrQixFQUFFLGdCQUFnQixFQUFFLG9CQUFvQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbkgsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDakUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGlCQUFpQixFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFdkc7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUM7SUFDMUQsT0FBTyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFO0lBQ3JDLFlBQVksRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRTtJQUMxQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUU7SUFDMUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFO0lBQ25DLE9BQU8sRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRTtDQUN0QyxDQUFDLENBQUM7QUFFSDs7OztHQUlHO0FBQ0gsTUFBTSxxQkFBcUIsR0FBMkI7SUFDcEQsT0FBTyxFQUNMLDZGQUE2RjtVQUMzRiw2RkFBNkY7Q0FDbEcsQ0FBQztBQUVGOztHQUVHO0FBQ0gsTUFBTSxtQkFBbUIsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQ25DLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUN2Qjs7OztPQUlHO0lBQ0gsU0FBUyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLHdCQUF3QixFQUFFLHFGQUFxRixDQUFDLENBQUMsUUFBUSxFQUFFO0lBQy9KLEtBQUssRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQzVCLE1BQU0sRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxRQUFRLEVBQUU7SUFDcEQsUUFBUSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRTtDQUN2RCxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsV0FBVyxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFO0lBQ3hDLEtBQUssTUFBTSxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLHFCQUFxQixDQUFDLEVBQUUsQ0FBQztRQUNuRSxJQUFJLEdBQUcsSUFBSyxHQUErQixFQUFFLENBQUM7WUFDNUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUN6RCxDQUFDO0lBQ0gsQ0FBQztBQUNILENBQUMsQ0FBQyxDQUFDO0FBRUg7Ozs7Ozs7R0FPRztBQUNILE1BQU0sZUFBZSxHQUEyQjtJQUM5QyxRQUFRLEVBQ04sNEZBQTRGO1VBQzFGLG1GQUFtRjtVQUNuRiw0RUFBNEU7VUFDNUUsOEVBQThFO0NBQ25GLENBQUM7QUFFRixNQUFNLGVBQWUsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQy9CLE1BQU0sRUFBRSxtQkFBbUI7SUFDM0IsUUFBUSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRTtJQUN0RCxPQUFPLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFO0lBQ3JELFFBQVEsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFO0NBQzdDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxXQUFXLENBQUMsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUU7SUFDekMsS0FBSyxNQUFNLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQztRQUM3RCxJQUFJLEdBQUcsSUFBSyxJQUFnQyxFQUFFLENBQUM7WUFDN0MsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUN6RCxDQUFDO0lBQ0gsQ0FBQztBQUNILENBQUMsQ0FBQyxDQUFDO0FBRUg7Ozs7R0FJRztBQUNILE1BQU0sV0FBVyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDM0IsU0FBUyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzVCLEtBQUssRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQzVCLHFGQUFxRjtJQUNyRixXQUFXLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFO0lBQ2pELEtBQUssRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7Q0FDdkMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO0FBRWpCOzs7R0FHRztBQUNILE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUNsQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDMUIsWUFBWSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQy9CLFlBQVksRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQ25DLE1BQU0sRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxRQUFRLEVBQUU7SUFDcEQsUUFBUSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRTtJQUN0RCxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFO0lBQ2xEOzs7O09BSUc7SUFDSCxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFO0lBQ2pELEtBQUssRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDO1FBQ2QsTUFBTSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRTtRQUNwRCxNQUFNLEVBQUUsbUJBQW1CO0tBQzVCLENBQUMsQ0FBQyxXQUFXLEVBQUU7SUFDaEIsTUFBTSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUMsUUFBUSxFQUFFO0NBQ3hDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxXQUFXLENBQUMsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLEVBQUU7SUFDMUMsS0FBSyxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFFLEtBQTJDLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUM7UUFDdkYsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQztZQUFFLFNBQVM7UUFDckMsR0FBRyxDQUFDLFFBQVEsQ0FBQztZQUNYLElBQUksRUFBRSxRQUFRO1lBQ2QsSUFBSSxFQUFFLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQztZQUNuQixPQUFPLEVBQ0wsS0FBSyxHQUFHLHdEQUF3RDtrQkFDOUQsR0FBRyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLCtCQUErQjtrQkFDOUQsR0FBRyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLHFDQUFxQztrQkFDMUUsZ0RBQWdEO1NBQ3JELENBQUMsQ0FBQztJQUNMLENBQUM7QUFDSCxDQUFDLENBQUMsQ0FBQztBQUVIOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUMzQyxHQUFHLG9CQUFvQjtJQUN2QixPQUFPLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUscUJBQXFCLENBQUM7SUFDakQsWUFBWSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLDBCQUEwQixDQUFDO0lBQzNELFlBQVksRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRTtJQUMxQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUNsQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxRQUFRLEVBQUU7SUFDeEMsVUFBVSxFQUFFLGdCQUFnQixDQUFDLFFBQVEsRUFBRTtJQUN2Qzs7Ozs7Ozs7T0FRRztJQUNILFFBQVEsRUFBRSxrQkFBa0IsQ0FBQyxRQUFRLEVBQUU7SUFDdkMsS0FBSyxFQUFFLGtCQUFrQjtDQUMxQixDQUFDLENBQUM7QUFFSDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDM0MsR0FBRyxvQkFBb0I7SUFDdkIsWUFBWSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFO0lBQzFDLFdBQVcsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQ2xDLFFBQVEsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRTtJQUN4QyxLQUFLLEVBQUUsa0JBQWtCLENBQUMsUUFBUSxFQUFFO0lBQ3BDLFFBQVEsRUFBRSxrQkFBa0IsQ0FBQyxRQUFRLEVBQUU7SUFDdkMsU0FBUyxFQUFFLGtCQUFrQixDQUFDLFFBQVEsRUFBRTtJQUN4QyxVQUFVLEVBQUUsZ0JBQWdCLENBQUMsUUFBUSxFQUFFO0NBQ3hDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG5pbXBvcnQgeyB6IH0gZnJvbSAnem9kJztcbmltcG9ydCB7IEJhc2VGaWx0ZXJTY2hlbWEsIEJvb2xlYW5RdWVyeVNjaGVtYSwgVmlzaWJpbGl0eVNjaGVtYSwgQ2F0YWxvZ01ldGFkYXRhU2hhcGUgfSBmcm9tICcuL2NvbW1vbi1zY2hlbWFzLmpzJztcbmltcG9ydCB7IFBVQkxJU0hFUl9IQU5ETEVfUEFUVEVSTiB9IGZyb20gJy4uL3R5cGVzL2Vjb3N5c3RlbS5qcyc7XG5pbXBvcnQgeyBpc1Jlc2VydmVkVGFnS2V5LCBSRVNFUlZFRF9UQUdfS0VZUywgUkVTRVJWRURfVEFHX1BSRUZJWEVTIH0gZnJvbSAnLi4vdHlwZXMvcmVzZXJ2ZWQtdGFncy5qcyc7XG5cbi8qKlxuICogUGlwZWxpbmUgZmlsdGVyIHNjaGVtYSBmb3IgcXVlcnkgcGFyYW1ldGVyc1xuICovXG5leHBvcnQgY29uc3QgUGlwZWxpbmVGaWx0ZXJTY2hlbWEgPSBCYXNlRmlsdGVyU2NoZW1hLmV4dGVuZCh7XG4gIHByb2plY3Q6IHouc3RyaW5nKCkubWluKDEpLm9wdGlvbmFsKCksXG4gIG9yZ2FuaXphdGlvbjogei5zdHJpbmcoKS5taW4oMSkub3B0aW9uYWwoKSxcbiAgcGlwZWxpbmVOYW1lOiB6LnN0cmluZygpLm1pbigxKS5vcHRpb25hbCgpLFxuICBvcmdJZDogei5zdHJpbmcoKS5taW4oMSkub3B0aW9uYWwoKSxcbiAga2V5d29yZDogei5zdHJpbmcoKS5taW4oMSkub3B0aW9uYWwoKSxcbn0pO1xuXG4vKipcbiAqIEtleXMgdGhhdCBsb29rIGxpa2UgcGx1Z2luLXJlZmVyZW5jZSBmaWVsZHMgYnV0IGFyZW4ndDogc3ludGggbmV2ZXIgcmVhZHNcbiAqIHRoZW0sIHNvIHdpdGhvdXQgYSBsb3VkIHJlZnVzYWwgdGhlIHJlZmVyZW5jZSBzaWxlbnRseSByZXNvbHZlcyB0byBzb21ldGhpbmdcbiAqIG90aGVyIHRoYW4gd2hhdCBpdHMgYXV0aG9yIG1lYW50LlxuICovXG5jb25zdCBQTFVHSU5fUkVGX05PTl9GSUVMRFM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIHZlcnNpb246XG4gICAgJ2B2ZXJzaW9uYCBpcyBub3QgYSBwbHVnaW4tcmVmZXJlbmNlIGZpZWxkIOKAlCBpdCBpcyBpZ25vcmVkIGFuZCB0aGUgZGVmYXVsdCB2ZXJzaW9uIGlzIHVzZWQuICdcbiAgICArICdQaW4gb3IgcmFuZ2UgdGhlIHZlcnNpb24gd2l0aCBgZmlsdGVyOiB7IHZlcnNpb246IFwiMS4yLjNcIiB9YCAoYWxzbyBeLCB+LCAxLngsIDEuMiwgbGF0ZXN0KS4nLFxufTtcblxuLyoqXG4gKiBQbHVnaW4gb3B0aW9ucyBzY2hlbWEgKG5hbWUtYmFzZWQgc2VsZWN0aW9uKVxuICovXG5jb25zdCBQbHVnaW5PcHRpb25zU2NoZW1hID0gei5vYmplY3Qoe1xuICBuYW1lOiB6LnN0cmluZygpLm1pbigxKSxcbiAgLyoqXG4gICAqIFRoZSBwdWJsaXNoZXIgd2hvc2UgaW5zdGFsbGVkIGxpc3RpbmcgdGhlIHJlZmVyZW5jZSByZXNvbHZlcyB0b1xuICAgKiAoZG9jcy9wbHVnaW4tcHVibGlzaGluZy5tZCkuIEFic2VudDogdGhlIG9yZydzIG93biBwbHVnaW4sIHRoZW5cbiAgICogaXRzIHBhcmVudCdzLCB0aGVuIHRoZSBPZmZpY2lhbCBsaXN0aW5nLlxuICAgKi9cbiAgcHVibGlzaGVyOiB6LnN0cmluZygpLm1heCgzOSkucmVnZXgoUFVCTElTSEVSX0hBTkRMRV9QQVRURVJOLCAncHVibGlzaGVyIG11c3QgYmUgYSBwdWJsaXNoZXIgaGFuZGxlIChsb3dlcmNhc2UgbGV0dGVycywgZGlnaXRzIGFuZCBzaW5nbGUgaHlwaGVucyknKS5vcHRpb25hbCgpLFxuICBhbGlhczogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBmaWx0ZXI6IHoucmVjb3JkKHouc3RyaW5nKCksIHoudW5rbm93bigpKS5vcHRpb25hbCgpLFxuICBtZXRhZGF0YTogei5yZWNvcmQoei5zdHJpbmcoKSwgei51bmtub3duKCkpLm9wdGlvbmFsKCksXG59KS5wYXNzdGhyb3VnaCgpLnN1cGVyUmVmaW5lKChyZWYsIGN0eCkgPT4ge1xuICBmb3IgKGNvbnN0IFtrZXksIG1lc3NhZ2VdIG9mIE9iamVjdC5lbnRyaWVzKFBMVUdJTl9SRUZfTk9OX0ZJRUxEUykpIHtcbiAgICBpZiAoa2V5IGluIChyZWYgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4pKSB7XG4gICAgICBjdHguYWRkSXNzdWUoeyBjb2RlOiAnY3VzdG9tJywgcGF0aDogW2tleV0sIG1lc3NhZ2UgfSk7XG4gICAgfVxuICB9XG59KTtcblxuLyoqXG4gKiBTdGFnZSBzdGVwIHNjaGVtYVxuICpcbiAqIGBwYXNzdGhyb3VnaCgpYCBrZWVwcyBmb3J3YXJkLWNvbXBhdGlibGUgZmllbGRzLCBidXQgYSBmZXcgY29tbW9uIG1pc3Rha2VzIGFyZVxuICogcmVqZWN0ZWQgbG91ZGx5IHJhdGhlciB0aGFuIHNpbGVudGx5IGlnbm9yZWQgYXQgc3ludGgg4oCUIG1vc3Qgbm90YWJseSBhXG4gKiB0b3AtbGV2ZWwgYGNvbW1hbmRzYCwgd2hpY2ggaXMgTk9UIGEgc3RlcCBmaWVsZCAodGhlIHBsdWdpbidzIG93biBjb21tYW5kcyBydW4pXG4gKiBhbmQgd291bGQgb3RoZXJ3aXNlIGRvIG5vdGhpbmcuXG4gKi9cbmNvbnN0IFNURVBfTk9OX0ZJRUxEUzogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgY29tbWFuZHM6XG4gICAgJ2Bjb21tYW5kc2AgaXMgbm90IGEgc3RlcCBmaWVsZCDigJQgaXQgaXMgaWdub3JlZCBhdCBzeW50aCAodGhlIHBsdWdpblxcJ3Mgb3duIGNvbW1hbmRzIHJ1bikuICdcbiAgICArICdUbyBjaGFuZ2Ugd2hhdCBhIHN0ZXAgcnVucywgdXNlIGEgcGx1Z2luIGVudiBrbm9iIChlLmcuIGBtZXRhZGF0YS5HUkFETEVfVEFTS2ApLCAnXG4gICAgKyAnYHByZUNvbW1hbmRzYC9gcG9zdENvbW1hbmRzYCB0byBhZGQgY29tbWFuZHMgYXJvdW5kIHRoZSBwbHVnaW5cXCdzLCBvciB0aGUgJ1xuICAgICsgJ2Bhd3M6Y2RrOnBpcGVsaW5lczpjb2RlYnVpbGRzdGVwOmNvbW1hbmRzYCBtZXRhZGF0YSBrZXkgZm9yIGEgZnVsbCBvdmVycmlkZS4nLFxufTtcblxuY29uc3QgU3RhZ2VTdGVwU2NoZW1hID0gei5vYmplY3Qoe1xuICBwbHVnaW46IFBsdWdpbk9wdGlvbnNTY2hlbWEsXG4gIG1ldGFkYXRhOiB6LnJlY29yZCh6LnN0cmluZygpLCB6LnVua25vd24oKSkub3B0aW9uYWwoKSxcbiAgbmV0d29yazogei5yZWNvcmQoei5zdHJpbmcoKSwgei51bmtub3duKCkpLm9wdGlvbmFsKCksXG4gIHBvc2l0aW9uOiB6LmVudW0oWydwcmUnLCAncG9zdCddKS5vcHRpb25hbCgpLFxufSkucGFzc3Rocm91Z2goKS5zdXBlclJlZmluZSgoc3RlcCwgY3R4KSA9PiB7XG4gIGZvciAoY29uc3QgW2tleSwgbWVzc2FnZV0gb2YgT2JqZWN0LmVudHJpZXMoU1RFUF9OT05fRklFTERTKSkge1xuICAgIGlmIChrZXkgaW4gKHN0ZXAgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4pKSB7XG4gICAgICBjdHguYWRkSXNzdWUoeyBjb2RlOiAnY3VzdG9tJywgcGF0aDogW2tleV0sIG1lc3NhZ2UgfSk7XG4gICAgfVxuICB9XG59KTtcblxuLyoqXG4gKiBTdGFnZSBzY2hlbWEuIGBwYXNzdGhyb3VnaCgpYCBsaWtlIGl0cyBzaWJsaW5nczogYSBzdHJpY3QtYnktZGVmYXVsdCBvYmplY3RcbiAqIGhlcmUgc3RyaXBwZWQgZXZlcnkgdW5kZWNsYXJlZCBzdGFnZSBmaWVsZCBiZWZvcmUgc3RvcmFnZSDigJQgaW5jbHVkaW5nXG4gKiBgZW52aXJvbm1lbnRgLCB3aGljaCBtYXJrcyBhIHN0YWdlIGFzIGEgRE9SQSBkZXBsb3kuXG4gKi9cbmNvbnN0IFN0YWdlU2NoZW1hID0gei5vYmplY3Qoe1xuICBzdGFnZU5hbWU6IHouc3RyaW5nKCkubWluKDEpLFxuICBhbGlhczogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICAvKiogRGVwbG95IGVudmlyb25tZW50IHRoaXMgc3RhZ2UgdGFyZ2V0cyAoRE9SQSBkZXBsb3kgYXR0cmlidXRpb24sIGBwYi5kZXBsb3lzYCkuICovXG4gIGVudmlyb25tZW50OiB6LnN0cmluZygpLm1pbigxKS5tYXgoNjQpLm9wdGlvbmFsKCksXG4gIHN0ZXBzOiB6LmFycmF5KFN0YWdlU3RlcFNjaGVtYSkubWluKDEpLFxufSkucGFzc3Rocm91Z2goKTtcblxuLyoqXG4gKiBCdWlsZGVyUHJvcHMgc2NoZW1hIOKAlCBzdHJ1Y3R1cmFsIHZhbGlkYXRpb24gZm9yIHBpcGVsaW5lIGNvbmZpZ3VyYXRpb24uXG4gKiBVc2VzIHBhc3N0aHJvdWdoKCkgdG8gYWxsb3cgYWRkaXRpb25hbCBmaWVsZHMgd2l0aG91dCByZWplY3RpbmcgdGhlbS5cbiAqL1xuY29uc3QgQnVpbGRlclByb3BzU2NoZW1hID0gei5vYmplY3Qoe1xuICBwcm9qZWN0OiB6LnN0cmluZygpLm1pbigxKSxcbiAgb3JnYW5pemF0aW9uOiB6LnN0cmluZygpLm1pbigxKSxcbiAgcGlwZWxpbmVOYW1lOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIGdsb2JhbDogei5yZWNvcmQoei5zdHJpbmcoKSwgei51bmtub3duKCkpLm9wdGlvbmFsKCksXG4gIGRlZmF1bHRzOiB6LnJlY29yZCh6LnN0cmluZygpLCB6LnVua25vd24oKSkub3B0aW9uYWwoKSxcbiAgcm9sZTogei5yZWNvcmQoei5zdHJpbmcoKSwgei51bmtub3duKCkpLm9wdGlvbmFsKCksXG4gIC8qKlxuICAgKiBDb3N0LWFsbG9jYXRpb24gdGFncyBhcHBsaWVkIHRvIHRoZSBwaXBlbGluZSdzIHN0YWNrLiBSZXNlcnZlZCBrZXlzIGFyZVxuICAgKiByZWZ1c2VkIHJhdGhlciB0aGFuIGRyb3BwZWQsIHNvIGEgY2FsbGVyIGxlYXJucyB3aGljaCBrZXkgaXQgbWF5IG5vdCBzZXQ7XG4gICAqIGBQaXBlbGluZUJ1aWxkZXJgIGRyb3BzIHRoZW0gYWdhaW4gYXQgc3ludGggZm9yIGNhbGxlcnMgdGhhdCBieXBhc3MgdGhlIEFQSS5cbiAgICovXG4gIHRhZ3M6IHoucmVjb3JkKHouc3RyaW5nKCksIHouc3RyaW5nKCkpLm9wdGlvbmFsKCksXG4gIHN5bnRoOiB6Lm9iamVjdCh7XG4gICAgc291cmNlOiB6LnJlY29yZCh6LnN0cmluZygpLCB6LnVua25vd24oKSkub3B0aW9uYWwoKSxcbiAgICBwbHVnaW46IFBsdWdpbk9wdGlvbnNTY2hlbWEsXG4gIH0pLnBhc3N0aHJvdWdoKCksXG4gIHN0YWdlczogei5hcnJheShTdGFnZVNjaGVtYSkub3B0aW9uYWwoKSxcbn0pLnBhc3N0aHJvdWdoKCkuc3VwZXJSZWZpbmUoKHByb3BzLCBjdHgpID0+IHtcbiAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMoKHByb3BzIGFzIHsgdGFncz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gfSkudGFncyA/PyB7fSkpIHtcbiAgICBpZiAoIWlzUmVzZXJ2ZWRUYWdLZXkoa2V5KSkgY29udGludWU7XG4gICAgY3R4LmFkZElzc3VlKHtcbiAgICAgIGNvZGU6ICdjdXN0b20nLFxuICAgICAgcGF0aDogWyd0YWdzJywga2V5XSxcbiAgICAgIG1lc3NhZ2U6XG4gICAgICAgIGBcXGAke2tleX1cXGAgaXMgYSByZXNlcnZlZCB0YWcga2V5IGFuZCBjYW5ub3QgYmUgc2V0LiBSZXNlcnZlZDogYFxuICAgICAgICArIGAke1JFU0VSVkVEX1RBR19LRVlTLmpvaW4oJywgJyl9LCBhbmQgYW55dGhpbmcgc3RhcnRpbmcgd2l0aCBgXG4gICAgICAgICsgYCR7UkVTRVJWRURfVEFHX1BSRUZJWEVTLmpvaW4oJyBvciAnKX0uIFRoZXNlIGNhcnJ5IHBpcGVsaW5lIHRlbmFuY3kgYW5kIGBcbiAgICAgICAgKyAnZGVwbG95IGF0dHJpYnV0aW9uLCBzbyB0aGUgcGxhdGZvcm0gb3ducyB0aGVtLicsXG4gICAgfSk7XG4gIH1cbn0pO1xuXG4vKipcbiAqIFBpcGVsaW5lIGNyZWF0aW9uIHNjaGVtYVxuICovXG5leHBvcnQgY29uc3QgUGlwZWxpbmVDcmVhdGVTY2hlbWEgPSB6Lm9iamVjdCh7XG4gIC4uLkNhdGFsb2dNZXRhZGF0YVNoYXBlLFxuICBwcm9qZWN0OiB6LnN0cmluZygpLm1pbigxLCAnUHJvamVjdCBpcyByZXF1aXJlZCcpLFxuICBvcmdhbml6YXRpb246IHouc3RyaW5nKCkubWluKDEsICdPcmdhbml6YXRpb24gaXMgcmVxdWlyZWQnKSxcbiAgcGlwZWxpbmVOYW1lOiB6LnN0cmluZygpLm1pbigxKS5vcHRpb25hbCgpLFxuICBkZXNjcmlwdGlvbjogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBrZXl3b3Jkczogei5hcnJheSh6LnN0cmluZygpKS5vcHRpb25hbCgpLFxuICB2aXNpYmlsaXR5OiBWaXNpYmlsaXR5U2NoZW1hLm9wdGlvbmFsKCksXG4gIC8qKlxuICAgKiBDcmVhdGUgdGhlIHBpcGVsaW5lIHBhdXNlZC4gRGVjbGFyZWQgaGVyZSBiZWNhdXNlIGl0IHVzZWQgdG8gYmUgc3RyaXBwZWQ6XG4gICAqIHRoZSBzY2hlbWEgaXMgc3RyaWN0LWJ5LWRlZmF1bHQsIHNvIHRoZSBDTEkncyBgLS1uby1hY3RpdmVgIHdhcyBzaWxlbnRseVxuICAgKiBkcm9wcGVkIGFuZCBldmVyeSBwaXBlbGluZSBjYW1lIHVwIGFjdGl2ZS5cbiAgICpcbiAgICogVGhlcmUgaXMgbm8gYGlzRGVmYXVsdGAgY291bnRlcnBhcnQuIGBwaXBlbGluZV9wcm9qZWN0X29yZ191bmlxdWVgIGFsbG93c1xuICAgKiBleGFjdGx5IG9uZSBwaXBlbGluZSBwZXIgKHByb2plY3QsIG9yZ2FuaXphdGlvbiwgb3JnKSwgc28gdGhlIHJvdyBjcmVhdGVkIGluXG4gICAqIGEgc2xvdCBJUyB0aGF0IHNsb3QncyBkZWZhdWx0IOKAlCBhIGBmYWxzZWAgY291bGQgbm90IGJlIGhvbm91cmVkLlxuICAgKi9cbiAgaXNBY3RpdmU6IEJvb2xlYW5RdWVyeVNjaGVtYS5vcHRpb25hbCgpLFxuICBwcm9wczogQnVpbGRlclByb3BzU2NoZW1hLFxufSk7XG5cbi8qKlxuICogUGlwZWxpbmUgdXBkYXRlIHNjaGVtYVxuICovXG5leHBvcnQgY29uc3QgUGlwZWxpbmVVcGRhdGVTY2hlbWEgPSB6Lm9iamVjdCh7XG4gIC4uLkNhdGFsb2dNZXRhZGF0YVNoYXBlLFxuICBwaXBlbGluZU5hbWU6IHouc3RyaW5nKCkubWluKDEpLm9wdGlvbmFsKCksXG4gIGRlc2NyaXB0aW9uOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIGtleXdvcmRzOiB6LmFycmF5KHouc3RyaW5nKCkpLm9wdGlvbmFsKCksXG4gIHByb3BzOiBCdWlsZGVyUHJvcHNTY2hlbWEub3B0aW9uYWwoKSxcbiAgaXNBY3RpdmU6IEJvb2xlYW5RdWVyeVNjaGVtYS5vcHRpb25hbCgpLFxuICBpc0RlZmF1bHQ6IEJvb2xlYW5RdWVyeVNjaGVtYS5vcHRpb25hbCgpLFxuICB2aXNpYmlsaXR5OiBWaXNpYmlsaXR5U2NoZW1hLm9wdGlvbmFsKCksXG59KTtcbiJdfQ==
|
|
175
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlwZWxpbmUtc2NoZW1hcy5qcyIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3ZhbGlkYXRpb24vcGlwZWxpbmUtc2NoZW1hcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQ0FBK0M7QUFDL0Msc0NBQXNDO0FBRXRDLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFDeEIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGtCQUFrQixFQUFFLGdCQUFnQixFQUFFLG9CQUFvQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbkgsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDakUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGlCQUFpQixFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFdkc7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUM7SUFDMUQsT0FBTyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFO0lBQ3JDLFlBQVksRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRTtJQUMxQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUU7SUFDMUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFO0lBQ25DLE9BQU8sRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRTtDQUN0QyxDQUFDLENBQUM7QUFFSDs7OztHQUlHO0FBQ0gsTUFBTSxxQkFBcUIsR0FBMkI7SUFDcEQsT0FBTyxFQUNMLDZGQUE2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QUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRTtJQUN4QyxLQUFLLEVBQUUsa0JBQWtCLENBQUMsUUFBUSxFQUFFO0lBQ3BDLFFBQVEsRUFBRSxrQkFBa0IsQ0FBQyxRQUFRLEVBQUU7SUFDdkMsU0FBUyxFQUFFLGtCQUFrQixDQUFDLFFBQVEsRUFBRTtJQUN4QyxVQUFVLEVBQUUsZ0JBQWdCLENBQUMsUUFBUSxFQUFFO0NBQ3hDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG5pbXBvcnQgeyB6IH0gZnJvbSAnem9kJztcbmltcG9ydCB7IEJhc2VGaWx0ZXJTY2hlbWEsIEJvb2xlYW5RdWVyeVNjaGVtYSwgVmlzaWJpbGl0eVNjaGVtYSwgQ2F0YWxvZ01ldGFkYXRhU2hhcGUgfSBmcm9tICcuL2NvbW1vbi1zY2hlbWFzLmpzJztcbmltcG9ydCB7IFBVQkxJU0hFUl9IQU5ETEVfUEFUVEVSTiB9IGZyb20gJy4uL3R5cGVzL2Vjb3N5c3RlbS5qcyc7XG5pbXBvcnQgeyBpc1Jlc2VydmVkVGFnS2V5LCBSRVNFUlZFRF9UQUdfS0VZUywgUkVTRVJWRURfVEFHX1BSRUZJWEVTIH0gZnJvbSAnLi4vdHlwZXMvcmVzZXJ2ZWQtdGFncy5qcyc7XG5cbi8qKlxuICogUGlwZWxpbmUgZmlsdGVyIHNjaGVtYSBmb3IgcXVlcnkgcGFyYW1ldGVyc1xuICovXG5leHBvcnQgY29uc3QgUGlwZWxpbmVGaWx0ZXJTY2hlbWEgPSBCYXNlRmlsdGVyU2NoZW1hLmV4dGVuZCh7XG4gIHByb2plY3Q6IHouc3RyaW5nKCkubWluKDEpLm9wdGlvbmFsKCksXG4gIG9yZ2FuaXphdGlvbjogei5zdHJpbmcoKS5taW4oMSkub3B0aW9uYWwoKSxcbiAgcGlwZWxpbmVOYW1lOiB6LnN0cmluZygpLm1pbigxKS5vcHRpb25hbCgpLFxuICBvcmdJZDogei5zdHJpbmcoKS5taW4oMSkub3B0aW9uYWwoKSxcbiAga2V5d29yZDogei5zdHJpbmcoKS5taW4oMSkub3B0aW9uYWwoKSxcbn0pO1xuXG4vKipcbiAqIEtleXMgdGhhdCBsb29rIGxpa2UgcGx1Z2luLXJlZmVyZW5jZSBmaWVsZHMgYnV0IGFyZW4ndDogc3ludGggbmV2ZXIgcmVhZHNcbiAqIHRoZW0sIHNvIHdpdGhvdXQgYSBsb3VkIHJlZnVzYWwgdGhlIHJlZmVyZW5jZSBzaWxlbnRseSByZXNvbHZlcyB0byBzb21ldGhpbmdcbiAqIG90aGVyIHRoYW4gd2hhdCBpdHMgYXV0aG9yIG1lYW50LlxuICovXG5jb25zdCBQTFVHSU5fUkVGX05PTl9GSUVMRFM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIHZlcnNpb246XG4gICAgJ2B2ZXJzaW9uYCBpcyBub3QgYSBwbHVnaW4tcmVmZXJlbmNlIGZpZWxkIOKAlCBpdCBpcyBpZ25vcmVkIGFuZCB0aGUgZGVmYXVsdCB2ZXJzaW9uIGlzIHVzZWQuICdcbiAgICArICdQaW4gb3IgcmFuZ2UgdGhlIHZlcnNpb24gd2l0aCBgZmlsdGVyOiB7IHZlcnNpb246IFwiMS4yLjNcIiB9YCAoYWxzbyBeLCB+LCAxLngsIDEuMiwgbGF0ZXN0KS4nLFxufTtcblxuLyoqXG4gKiBBIG1hbmFnZWQgdG9vbGNoYWluIFJFTEVBU0UgdmVyc2lvbiAoZG9jcy9wbGFucy9ib290c3RyYXAtaW1hZ2UtdmVyc2lvbmluZy5tZFxuICogwqcxKTogcGxhaW4gYE1BSk9SLk1JTk9SLlBBVENIYCDigJQgYSBtYW5hZ2VkIG5hbWUgcmVmdXNlcyBwcmVyZWxlYXNlIHVwbG9hZHMsXG4gKiBzbyBhIHJlbGVhc2UgaXMgbmV2ZXIgYSByYW5nZSBvciBhIHByZXJlbGVhc2UuXG4gKi9cbmV4cG9ydCBjb25zdCBUT09MQ0hBSU5fUkVMRUFTRV9WRVJTSU9OX1BBVFRFUk4gPSAvXlxcZCtcXC5cXGQrXFwuXFxkKyQvO1xuXG4vKipcbiAqIEEgcGlwZWxpbmUncyB0b29sY2hhaW4gcmVsZWFzZSBwaW4gKMKnNSk6IGB7IHJlbGVhc2U6IFwiMS40LjJcIiB9YCBwaW5zIEJPVEhcbiAqIGhhbHZlcyBvZiBvbmUgcmVsZWFzZSAoYHBpcGVsaW5lLWJvb3RzdHJhcGAgKyBgY2RrLXN5bnRoYCkuIE9taXR0ZWQgPSB0aGVcbiAqIG9yZyBkZWZhdWx0LCBjYW5hcnkgb3IgcGxhdGZvcm0gZGVmYXVsdC4gRWxpZ2liaWxpdHkgKEQxNSkgaXMgY2hlY2tlZCBieSB0aGVcbiAqIHBpcGVsaW5lIHNlcnZpY2Ugd2hlbiB0aGUgcGluIGNoYW5nZXMsIG5vdCBoZXJlLiBOZXZlciBjYXJyaWVkIGJ5IGEgcGlwZWxpbmVcbiAqIFRFTVBMQVRFIChEMTIpLlxuICovXG5leHBvcnQgY29uc3QgUGlwZWxpbmVUb29sY2hhaW5QaW5TY2hlbWEgPSB6Lm9iamVjdCh7XG4gIHJlbGVhc2U6IHouc3RyaW5nKCkucmVnZXgoVE9PTENIQUlOX1JFTEVBU0VfVkVSU0lPTl9QQVRURVJOLCAndG9vbGNoYWluLnJlbGVhc2UgbXVzdCBiZSBhIHJlbGVhc2UgdmVyc2lvbiAoTUFKT1IuTUlOT1IuUEFUQ0gsIGUuZy4gMS40LjIpJyksXG59KS5zdHJpY3QoKTtcblxuLyoqXG4gKiBQbHVnaW4gb3B0aW9ucyBzY2hlbWEgKG5hbWUtYmFzZWQgc2VsZWN0aW9uKVxuICovXG5jb25zdCBQbHVnaW5PcHRpb25zU2NoZW1hID0gei5vYmplY3Qoe1xuICBuYW1lOiB6LnN0cmluZygpLm1pbigxKSxcbiAgLyoqXG4gICAqIFRoZSBwdWJsaXNoZXIgd2hvc2UgaW5zdGFsbGVkIGxpc3RpbmcgdGhlIHJlZmVyZW5jZSByZXNvbHZlcyB0b1xuICAgKiAoZG9jcy9wbHVnaW4tcHVibGlzaGluZy5tZCkuIEFic2VudDogdGhlIG9yZydzIG93biBwbHVnaW4sIHRoZW5cbiAgICogaXRzIHBhcmVudCdzLCB0aGVuIHRoZSBPZmZpY2lhbCBsaXN0aW5nLlxuICAgKi9cbiAgcHVibGlzaGVyOiB6LnN0cmluZygpLm1heCgzOSkucmVnZXgoUFVCTElTSEVSX0hBTkRMRV9QQVRURVJOLCAncHVibGlzaGVyIG11c3QgYmUgYSBwdWJsaXNoZXIgaGFuZGxlIChsb3dlcmNhc2UgbGV0dGVycywgZGlnaXRzIGFuZCBzaW5nbGUgaHlwaGVucyknKS5vcHRpb25hbCgpLFxuICBhbGlhczogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBmaWx0ZXI6IHoucmVjb3JkKHouc3RyaW5nKCksIHoudW5rbm93bigpKS5vcHRpb25hbCgpLFxuICBtZXRhZGF0YTogei5yZWNvcmQoei5zdHJpbmcoKSwgei51bmtub3duKCkpLm9wdGlvbmFsKCksXG59KS5wYXNzdGhyb3VnaCgpLnN1cGVyUmVmaW5lKChyZWYsIGN0eCkgPT4ge1xuICBmb3IgKGNvbnN0IFtrZXksIG1lc3NhZ2VdIG9mIE9iamVjdC5lbnRyaWVzKFBMVUdJTl9SRUZfTk9OX0ZJRUxEUykpIHtcbiAgICBpZiAoa2V5IGluIChyZWYgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4pKSB7XG4gICAgICBjdHguYWRkSXNzdWUoeyBjb2RlOiAnY3VzdG9tJywgcGF0aDogW2tleV0sIG1lc3NhZ2UgfSk7XG4gICAgfVxuICB9XG59KTtcblxuLyoqXG4gKiBTdGFnZSBzdGVwIHNjaGVtYVxuICpcbiAqIGBwYXNzdGhyb3VnaCgpYCBrZWVwcyBmb3J3YXJkLWNvbXBhdGlibGUgZmllbGRzLCBidXQgYSBmZXcgY29tbW9uIG1pc3Rha2VzIGFyZVxuICogcmVqZWN0ZWQgbG91ZGx5IHJhdGhlciB0aGFuIHNpbGVudGx5IGlnbm9yZWQgYXQgc3ludGgg4oCUIG1vc3Qgbm90YWJseSBhXG4gKiB0b3AtbGV2ZWwgYGNvbW1hbmRzYCwgd2hpY2ggaXMgTk9UIGEgc3RlcCBmaWVsZCAodGhlIHBsdWdpbidzIG93biBjb21tYW5kcyBydW4pXG4gKiBhbmQgd291bGQgb3RoZXJ3aXNlIGRvIG5vdGhpbmcuXG4gKi9cbmNvbnN0IFNURVBfTk9OX0ZJRUxEUzogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgY29tbWFuZHM6XG4gICAgJ2Bjb21tYW5kc2AgaXMgbm90IGEgc3RlcCBmaWVsZCDigJQgaXQgaXMgaWdub3JlZCBhdCBzeW50aCAodGhlIHBsdWdpblxcJ3Mgb3duIGNvbW1hbmRzIHJ1bikuICdcbiAgICArICdUbyBjaGFuZ2Ugd2hhdCBhIHN0ZXAgcnVucywgdXNlIGEgcGx1Z2luIGVudiBrbm9iIChlLmcuIGBtZXRhZGF0YS5HUkFETEVfVEFTS2ApLCAnXG4gICAgKyAnYHByZUNvbW1hbmRzYC9gcG9zdENvbW1hbmRzYCB0byBhZGQgY29tbWFuZHMgYXJvdW5kIHRoZSBwbHVnaW5cXCdzLCBvciB0aGUgJ1xuICAgICsgJ2Bhd3M6Y2RrOnBpcGVsaW5lczpjb2RlYnVpbGRzdGVwOmNvbW1hbmRzYCBtZXRhZGF0YSBrZXkgZm9yIGEgZnVsbCBvdmVycmlkZS4nLFxufTtcblxuY29uc3QgU3RhZ2VTdGVwU2NoZW1hID0gei5vYmplY3Qoe1xuICBwbHVnaW46IFBsdWdpbk9wdGlvbnNTY2hlbWEsXG4gIG1ldGFkYXRhOiB6LnJlY29yZCh6LnN0cmluZygpLCB6LnVua25vd24oKSkub3B0aW9uYWwoKSxcbiAgbmV0d29yazogei5yZWNvcmQoei5zdHJpbmcoKSwgei51bmtub3duKCkpLm9wdGlvbmFsKCksXG4gIHBvc2l0aW9uOiB6LmVudW0oWydwcmUnLCAncG9zdCddKS5vcHRpb25hbCgpLFxufSkucGFzc3Rocm91Z2goKS5zdXBlclJlZmluZSgoc3RlcCwgY3R4KSA9PiB7XG4gIGZvciAoY29uc3QgW2tleSwgbWVzc2FnZV0gb2YgT2JqZWN0LmVudHJpZXMoU1RFUF9OT05fRklFTERTKSkge1xuICAgIGlmIChrZXkgaW4gKHN0ZXAgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4pKSB7XG4gICAgICBjdHguYWRkSXNzdWUoeyBjb2RlOiAnY3VzdG9tJywgcGF0aDogW2tleV0sIG1lc3NhZ2UgfSk7XG4gICAgfVxuICB9XG59KTtcblxuLyoqXG4gKiBTdGFnZSBzY2hlbWEuIGBwYXNzdGhyb3VnaCgpYCBsaWtlIGl0cyBzaWJsaW5nczogYSBzdHJpY3QtYnktZGVmYXVsdCBvYmplY3RcbiAqIGhlcmUgc3RyaXBwZWQgZXZlcnkgdW5kZWNsYXJlZCBzdGFnZSBmaWVsZCBiZWZvcmUgc3RvcmFnZSDigJQgaW5jbHVkaW5nXG4gKiBgZW52aXJvbm1lbnRgLCB3aGljaCBtYXJrcyBhIHN0YWdlIGFzIGEgRE9SQSBkZXBsb3kuXG4gKi9cbmNvbnN0IFN0YWdlU2NoZW1hID0gei5vYmplY3Qoe1xuICBzdGFnZU5hbWU6IHouc3RyaW5nKCkubWluKDEpLFxuICBhbGlhczogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICAvKiogRGVwbG95IGVudmlyb25tZW50IHRoaXMgc3RhZ2UgdGFyZ2V0cyAoRE9SQSBkZXBsb3kgYXR0cmlidXRpb24sIGBwYi5kZXBsb3lzYCkuICovXG4gIGVudmlyb25tZW50OiB6LnN0cmluZygpLm1pbigxKS5tYXgoNjQpLm9wdGlvbmFsKCksXG4gIHN0ZXBzOiB6LmFycmF5KFN0YWdlU3RlcFNjaGVtYSkubWluKDEpLFxufSkucGFzc3Rocm91Z2goKTtcblxuLyoqXG4gKiBCdWlsZGVyUHJvcHMgc2NoZW1hIOKAlCBzdHJ1Y3R1cmFsIHZhbGlkYXRpb24gZm9yIHBpcGVsaW5lIGNvbmZpZ3VyYXRpb24uXG4gKiBVc2VzIHBhc3N0aHJvdWdoKCkgdG8gYWxsb3cgYWRkaXRpb25hbCBmaWVsZHMgd2l0aG91dCByZWplY3RpbmcgdGhlbS5cbiAqL1xuY29uc3QgQnVpbGRlclByb3BzU2NoZW1hID0gei5vYmplY3Qoe1xuICBwcm9qZWN0OiB6LnN0cmluZygpLm1pbigxKSxcbiAgb3JnYW5pemF0aW9uOiB6LnN0cmluZygpLm1pbigxKSxcbiAgcGlwZWxpbmVOYW1lOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIGdsb2JhbDogei5yZWNvcmQoei5zdHJpbmcoKSwgei51bmtub3duKCkpLm9wdGlvbmFsKCksXG4gIGRlZmF1bHRzOiB6LnJlY29yZCh6LnN0cmluZygpLCB6LnVua25vd24oKSkub3B0aW9uYWwoKSxcbiAgcm9sZTogei5yZWNvcmQoei5zdHJpbmcoKSwgei51bmtub3duKCkpLm9wdGlvbmFsKCksXG4gIC8qKlxuICAgKiBDb3N0LWFsbG9jYXRpb24gdGFncyBhcHBsaWVkIHRvIHRoZSBwaXBlbGluZSdzIHN0YWNrLiBSZXNlcnZlZCBrZXlzIGFyZVxuICAgKiByZWZ1c2VkIHJhdGhlciB0aGFuIGRyb3BwZWQsIHNvIGEgY2FsbGVyIGxlYXJucyB3aGljaCBrZXkgaXQgbWF5IG5vdCBzZXQ7XG4gICAqIGBQaXBlbGluZUJ1aWxkZXJgIGRyb3BzIHRoZW0gYWdhaW4gYXQgc3ludGggZm9yIGNhbGxlcnMgdGhhdCBieXBhc3MgdGhlIEFQSS5cbiAgICovXG4gIHRhZ3M6IHoucmVjb3JkKHouc3RyaW5nKCksIHouc3RyaW5nKCkpLm9wdGlvbmFsKCksXG4gIHN5bnRoOiB6Lm9iamVjdCh7XG4gICAgc291cmNlOiB6LnJlY29yZCh6LnN0cmluZygpLCB6LnVua25vd24oKSkub3B0aW9uYWwoKSxcbiAgICBwbHVnaW46IFBsdWdpbk9wdGlvbnNTY2hlbWEsXG4gIH0pLnBhc3N0aHJvdWdoKCksXG4gIHN0YWdlczogei5hcnJheShTdGFnZVNjaGVtYSkub3B0aW9uYWwoKSxcbiAgLyoqIFRvb2xjaGFpbiByZWxlYXNlIHBpbiAoc2VlIHtAbGluayBQaXBlbGluZVRvb2xjaGFpblBpblNjaGVtYX0pLiAqL1xuICB0b29sY2hhaW46IFBpcGVsaW5lVG9vbGNoYWluUGluU2NoZW1hLm9wdGlvbmFsKCksXG59KS5wYXNzdGhyb3VnaCgpLnN1cGVyUmVmaW5lKChwcm9wcywgY3R4KSA9PiB7XG4gIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKChwcm9wcyBhcyB7IHRhZ3M/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IH0pLnRhZ3MgPz8ge30pKSB7XG4gICAgaWYgKCFpc1Jlc2VydmVkVGFnS2V5KGtleSkpIGNvbnRpbnVlO1xuICAgIGN0eC5hZGRJc3N1ZSh7XG4gICAgICBjb2RlOiAnY3VzdG9tJyxcbiAgICAgIHBhdGg6IFsndGFncycsIGtleV0sXG4gICAgICBtZXNzYWdlOlxuICAgICAgICBgXFxgJHtrZXl9XFxgIGlzIGEgcmVzZXJ2ZWQgdGFnIGtleSBhbmQgY2Fubm90IGJlIHNldC4gUmVzZXJ2ZWQ6IGBcbiAgICAgICAgKyBgJHtSRVNFUlZFRF9UQUdfS0VZUy5qb2luKCcsICcpfSwgYW5kIGFueXRoaW5nIHN0YXJ0aW5nIHdpdGggYFxuICAgICAgICArIGAke1JFU0VSVkVEX1RBR19QUkVGSVhFUy5qb2luKCcgb3IgJyl9LiBUaGVzZSBjYXJyeSBwaXBlbGluZSB0ZW5hbmN5IGFuZCBgXG4gICAgICAgICsgJ2RlcGxveSBhdHRyaWJ1dGlvbiwgc28gdGhlIHBsYXRmb3JtIG93bnMgdGhlbS4nLFxuICAgIH0pO1xuICB9XG59KTtcblxuLyoqXG4gKiBQaXBlbGluZSBjcmVhdGlvbiBzY2hlbWFcbiAqL1xuZXhwb3J0IGNvbnN0IFBpcGVsaW5lQ3JlYXRlU2NoZW1hID0gei5vYmplY3Qoe1xuICAuLi5DYXRhbG9nTWV0YWRhdGFTaGFwZSxcbiAgcHJvamVjdDogei5zdHJpbmcoKS5taW4oMSwgJ1Byb2plY3QgaXMgcmVxdWlyZWQnKSxcbiAgb3JnYW5pemF0aW9uOiB6LnN0cmluZygpLm1pbigxLCAnT3JnYW5pemF0aW9uIGlzIHJlcXVpcmVkJyksXG4gIHBpcGVsaW5lTmFtZTogei5zdHJpbmcoKS5taW4oMSkub3B0aW9uYWwoKSxcbiAgZGVzY3JpcHRpb246IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAga2V5d29yZHM6IHouYXJyYXkoei5zdHJpbmcoKSkub3B0aW9uYWwoKSxcbiAgdmlzaWJpbGl0eTogVmlzaWJpbGl0eVNjaGVtYS5vcHRpb25hbCgpLFxuICAvKipcbiAgICogQ3JlYXRlIHRoZSBwaXBlbGluZSBwYXVzZWQuIERlY2xhcmVkIGhlcmUgYmVjYXVzZSBpdCB1c2VkIHRvIGJlIHN0cmlwcGVkOlxuICAgKiB0aGUgc2NoZW1hIGlzIHN0cmljdC1ieS1kZWZhdWx0LCBzbyB0aGUgQ0xJJ3MgYC0tbm8tYWN0aXZlYCB3YXMgc2lsZW50bHlcbiAgICogZHJvcHBlZCBhbmQgZXZlcnkgcGlwZWxpbmUgY2FtZSB1cCBhY3RpdmUuXG4gICAqXG4gICAqIFRoZXJlIGlzIG5vIGBpc0RlZmF1bHRgIGNvdW50ZXJwYXJ0LiBgcGlwZWxpbmVfcHJvamVjdF9vcmdfdW5pcXVlYCBhbGxvd3NcbiAgICogZXhhY3RseSBvbmUgcGlwZWxpbmUgcGVyIChwcm9qZWN0LCBvcmdhbml6YXRpb24sIG9yZyksIHNvIHRoZSByb3cgY3JlYXRlZCBpblxuICAgKiBhIHNsb3QgSVMgdGhhdCBzbG90J3MgZGVmYXVsdCDigJQgYSBgZmFsc2VgIGNvdWxkIG5vdCBiZSBob25vdXJlZC5cbiAgICovXG4gIGlzQWN0aXZlOiBCb29sZWFuUXVlcnlTY2hlbWEub3B0aW9uYWwoKSxcbiAgcHJvcHM6IEJ1aWxkZXJQcm9wc1NjaGVtYSxcbn0pO1xuXG4vKipcbiAqIFBpcGVsaW5lIHVwZGF0ZSBzY2hlbWFcbiAqL1xuZXhwb3J0IGNvbnN0IFBpcGVsaW5lVXBkYXRlU2NoZW1hID0gei5vYmplY3Qoe1xuICAuLi5DYXRhbG9nTWV0YWRhdGFTaGFwZSxcbiAgcGlwZWxpbmVOYW1lOiB6LnN0cmluZygpLm1pbigxKS5vcHRpb25hbCgpLFxuICBkZXNjcmlwdGlvbjogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBrZXl3b3Jkczogei5hcnJheSh6LnN0cmluZygpKS5vcHRpb25hbCgpLFxuICBwcm9wczogQnVpbGRlclByb3BzU2NoZW1hLm9wdGlvbmFsKCksXG4gIGlzQWN0aXZlOiBCb29sZWFuUXVlcnlTY2hlbWEub3B0aW9uYWwoKSxcbiAgaXNEZWZhdWx0OiBCb29sZWFuUXVlcnlTY2hlbWEub3B0aW9uYWwoKSxcbiAgdmlzaWJpbGl0eTogVmlzaWJpbGl0eVNjaGVtYS5vcHRpb25hbCgpLFxufSk7XG4iXX0=
|
|
@@ -9,7 +9,15 @@
|
|
|
9
9
|
* {@link checkPluginConfig}.
|
|
10
10
|
*/
|
|
11
11
|
import { z } from 'zod';
|
|
12
|
-
|
|
12
|
+
/**
|
|
13
|
+
* `BuildImage` is the managed toolchain's build image (`pipeline-bootstrap`,
|
|
14
|
+
* docs/plans/bootstrap-image-versioning.md §1): a prebuilt image with no
|
|
15
|
+
* commands, never a pipeline step. {@link STEP_PLUGIN_TYPES} is the subset a
|
|
16
|
+
* step (or a generator) may use.
|
|
17
|
+
*/
|
|
18
|
+
export declare const PLUGIN_TYPES: readonly ['CodeBuildStep', 'ShellStep', 'ManualApprovalStep', 'BuildImage'];
|
|
19
|
+
/** The plugin types a pipeline step can use — every type except `BuildImage`. */
|
|
20
|
+
export declare const STEP_PLUGIN_TYPES: readonly ['CodeBuildStep', 'ShellStep', 'ManualApprovalStep'];
|
|
13
21
|
export declare const PLUGIN_COMPUTE_TYPES: readonly ['SMALL', 'MEDIUM', 'LARGE', 'X2_LARGE'];
|
|
14
22
|
export declare const PLUGIN_FAILURE_BEHAVIORS: readonly ['fail', 'warn', 'ignore'];
|
|
15
23
|
export declare const PLUGIN_BUILD_TYPES: readonly ['build_image', 'prebuilt', 'metadata_only'];
|
|
@@ -22,6 +30,30 @@ export declare const PLUGIN_VERSION_PATTERN: RegExp;
|
|
|
22
30
|
export declare const EGRESS_MAX_HOSTS = 50;
|
|
23
31
|
/** True when `host` is an acceptable `network.egress` entry. */
|
|
24
32
|
export declare function isValidEgressHost(host: string): boolean;
|
|
33
|
+
/**
|
|
34
|
+
* The tool versions a managed build image carries, written by
|
|
35
|
+
* `sync-image-tags.sh` from the Dockerfile `ARG`s. Every field is required and
|
|
36
|
+
* exact: this is what the release IS, not what it accepts.
|
|
37
|
+
*/
|
|
38
|
+
export declare const PluginToolchainSchema: z.ZodObject<{
|
|
39
|
+
pipelineManager: z.ZodString;
|
|
40
|
+
awsCdk: z.ZodString;
|
|
41
|
+
cdkAssets: z.ZodString;
|
|
42
|
+
esbuild: z.ZodString;
|
|
43
|
+
pnpm: z.ZodString;
|
|
44
|
+
node: z.ZodString;
|
|
45
|
+
}, z.core.$strict>;
|
|
46
|
+
export type PluginToolchain = z.infer<typeof PluginToolchainSchema>;
|
|
47
|
+
/** The flat `metadata` entries that persist `toolchain` on a build image's row. */
|
|
48
|
+
export declare function toolchainMetadata(toolchain: PluginToolchain): Record<string, string>;
|
|
49
|
+
/**
|
|
50
|
+
* The `toolchain` a build image's row carries, or `null` when its `metadata`
|
|
51
|
+
* holds no complete, valid one (every field required and exact — the same
|
|
52
|
+
* schema the upload validated).
|
|
53
|
+
*/
|
|
54
|
+
export declare function toolchainFromMetadata(metadata: unknown): PluginToolchain | null;
|
|
55
|
+
/** A build-input hash: 64 lowercase hex characters (sha256), optionally `sha256:`-prefixed. */
|
|
56
|
+
export declare const PLUGIN_SOURCE_DIGEST_PATTERN: RegExp;
|
|
25
57
|
export declare const PluginConfigSchema: z.ZodObject<{
|
|
26
58
|
pluginSpec: z.ZodOptional<z.ZodString>;
|
|
27
59
|
dockerfile: z.ZodOptional<z.ZodString>;
|
|
@@ -40,6 +72,7 @@ export declare const PluginSpecSchema: z.ZodObject<{
|
|
|
40
72
|
category: z.ZodOptional<z.ZodString>;
|
|
41
73
|
version: z.ZodOptional<z.ZodString>;
|
|
42
74
|
pluginType: z.ZodOptional<z.ZodEnum<{
|
|
75
|
+
BuildImage: "BuildImage";
|
|
43
76
|
CodeBuildStep: "CodeBuildStep";
|
|
44
77
|
ManualApprovalStep: "ManualApprovalStep";
|
|
45
78
|
ShellStep: "ShellStep";
|
|
@@ -86,6 +119,15 @@ export declare const PluginSpecSchema: z.ZodObject<{
|
|
|
86
119
|
network: z.ZodOptional<z.ZodObject<{
|
|
87
120
|
egress: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
88
121
|
}, z.core.$strict>>;
|
|
122
|
+
toolchain: z.ZodOptional<z.ZodObject<{
|
|
123
|
+
pipelineManager: z.ZodString;
|
|
124
|
+
awsCdk: z.ZodString;
|
|
125
|
+
cdkAssets: z.ZodString;
|
|
126
|
+
esbuild: z.ZodString;
|
|
127
|
+
pnpm: z.ZodString;
|
|
128
|
+
node: z.ZodString;
|
|
129
|
+
}, z.core.$strict>>;
|
|
130
|
+
sourceDigest: z.ZodOptional<z.ZodString>;
|
|
89
131
|
}, z.core.$strict>;
|
|
90
132
|
export type PluginSpecInput = z.infer<typeof PluginSpecSchema>;
|
|
91
133
|
/**
|
|
@@ -107,6 +149,7 @@ export declare function checkPluginSpec(raw: unknown): PackageCheck<PluginSpecIn
|
|
|
107
149
|
export declare function checkPluginConfig(raw: unknown): PackageCheck<PluginConfigInput>;
|
|
108
150
|
/**
|
|
109
151
|
* The required-field contract: `name` and `version` always, `commands` for
|
|
110
|
-
* every type except `ManualApprovalStep
|
|
152
|
+
* every type except `ManualApprovalStep` and `BuildImage` (neither runs
|
|
153
|
+
* commands). Returns the upload's message, or null.
|
|
111
154
|
*/
|
|
112
155
|
export declare function pluginSpecRequiredFieldsProblem(spec: Pick<PluginSpecInput, 'name' | 'version' | 'commands' | 'pluginType'>): string | null;
|