@pipeline-builder/api-core 4.1.13 → 4.1.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -2
- package/lib/constants/index.d.ts +0 -1
- package/lib/constants/index.js +1 -2
- package/lib/errors/app-errors.d.ts +8 -3
- package/lib/errors/app-errors.js +10 -5
- package/lib/helpers/access-helpers.d.ts +4 -6
- package/lib/helpers/access-helpers.js +6 -8
- package/lib/helpers/index.d.ts +3 -3
- package/lib/helpers/index.js +4 -4
- package/lib/helpers/org-hierarchy-http.d.ts +11 -10
- package/lib/helpers/org-hierarchy-http.js +24 -35
- package/lib/helpers/org-hierarchy.d.ts +37 -3
- package/lib/helpers/org-hierarchy.js +45 -4
- package/lib/helpers/restore-helpers.d.ts +44 -24
- package/lib/helpers/restore-helpers.js +41 -52
- package/lib/helpers/sse-helpers.d.ts +29 -7
- package/lib/helpers/sse-helpers.js +36 -9
- package/lib/index.d.ts +16 -14
- package/lib/index.js +17 -15
- package/lib/middleware/assurance.d.ts +116 -0
- package/lib/middleware/assurance.js +176 -0
- package/lib/middleware/auth.d.ts +5 -427
- package/lib/middleware/auth.js +36 -789
- package/lib/middleware/ecosystem-guard.d.ts +47 -0
- package/lib/middleware/ecosystem-guard.js +60 -0
- package/lib/middleware/index.d.ts +11 -4
- package/lib/middleware/index.js +12 -5
- package/lib/middleware/jwt-verify.d.ts +52 -0
- package/lib/middleware/jwt-verify.js +105 -0
- package/lib/middleware/permission-gates.d.ts +133 -0
- package/lib/middleware/permission-gates.js +260 -0
- package/lib/middleware/revocation.d.ts +96 -0
- package/lib/middleware/revocation.js +162 -0
- package/lib/middleware/route-table.d.ts +11 -0
- package/lib/middleware/route-table.js +4 -1
- package/lib/middleware/service-tokens.d.ts +83 -0
- package/lib/middleware/service-tokens.js +158 -0
- package/lib/middleware/step-up.d.ts +2 -2
- package/lib/middleware/step-up.js +8 -7
- package/lib/middleware/system-org.d.ts +20 -0
- package/lib/middleware/system-org.js +25 -0
- package/lib/openapi/routes/plugin-routes.js +133 -10
- package/lib/openapi/schema-registry.js +2 -5
- package/lib/routes/index.d.ts +1 -1
- package/lib/routes/index.js +2 -2
- package/lib/services/api-key-exchange.js +7 -5
- package/lib/services/audit-spool.d.ts +34 -10
- package/lib/services/audit-spool.js +75 -34
- package/lib/services/cache-service.d.ts +7 -0
- package/lib/services/cache-service.js +1 -1
- package/lib/services/circuit-breaker.d.ts +14 -1
- package/lib/services/circuit-breaker.js +36 -10
- package/lib/services/compliance-client.d.ts +10 -2
- package/lib/services/compliance-client.js +17 -10
- package/lib/services/compliance-event-subscriber.js +6 -6
- package/lib/services/durable-event-bus.js +8 -11
- package/lib/services/ecosystem-notify-client.d.ts +32 -0
- package/lib/services/ecosystem-notify-client.js +71 -0
- package/lib/services/env-redis.d.ts +4 -1
- package/lib/services/env-redis.js +32 -3
- package/lib/services/http-client.d.ts +19 -0
- package/lib/services/http-client.js +98 -19
- package/lib/services/index.d.ts +25 -24
- package/lib/services/index.js +25 -22
- package/lib/services/jwks-cache.js +5 -4
- package/lib/services/leader-lock.d.ts +22 -5
- package/lib/services/leader-lock.js +61 -6
- package/lib/services/quota.d.ts +9 -4
- package/lib/services/quota.js +34 -40
- package/lib/services/remote-audit-client.d.ts +28 -32
- package/lib/services/remote-audit-client.js +166 -49
- package/lib/services/retry-forever.js +5 -11
- package/lib/services/retry-strategy.d.ts +1 -1
- package/lib/services/retry-strategy.js +5 -4
- package/lib/services/scheduler.d.ts +8 -3
- package/lib/services/scheduler.js +17 -5
- package/lib/services/service-boot.d.ts +14 -13
- package/lib/services/service-boot.js +18 -15
- package/lib/services/service-keys.d.ts +1 -1
- package/lib/services/service-keys.js +12 -18
- package/lib/services/sse-ticket-store.d.ts +9 -1
- package/lib/services/sse-ticket-store.js +24 -9
- package/lib/services/system-notification.d.ts +27 -0
- package/lib/services/system-notification.js +50 -0
- package/lib/services/token-revocation.d.ts +50 -1
- package/lib/services/token-revocation.js +103 -3
- package/lib/types/audit-events.d.ts +6 -6
- package/lib/types/audit-events.js +1 -1
- package/lib/types/common.d.ts +32 -13
- package/lib/types/common.js +2 -1
- package/lib/types/ecosystem-notifications.d.ts +142 -0
- package/lib/types/ecosystem-notifications.js +210 -0
- package/lib/types/ecosystem.d.ts +77 -0
- package/lib/types/ecosystem.js +119 -0
- package/lib/types/error-codes.d.ts +81 -0
- package/lib/types/error-codes.js +108 -1
- package/lib/types/feature-flags.d.ts +21 -1
- package/lib/types/feature-flags.js +36 -2
- package/lib/types/index.d.ts +14 -9
- package/lib/types/index.js +15 -10
- package/lib/types/permissions.d.ts +46 -8
- package/lib/types/permissions.js +75 -12
- package/lib/types/plugin-catalog.d.ts +35 -0
- package/lib/types/plugin-catalog.js +39 -0
- package/lib/types/plugin-health.d.ts +102 -0
- package/lib/types/plugin-health.js +184 -0
- package/lib/types/quota-tiers.d.ts +15 -0
- package/lib/types/quota-tiers.js +23 -3
- package/lib/types/wire-vocabulary.d.ts +102 -0
- package/lib/types/wire-vocabulary.js +94 -0
- package/lib/utils/alias-resolver.js +2 -2
- package/lib/utils/audit.d.ts +5 -2
- package/lib/utils/audit.js +6 -3
- package/lib/utils/compliance-attributes.js +3 -4
- package/lib/utils/concurrency.d.ts +7 -0
- package/lib/utils/concurrency.js +13 -1
- package/lib/utils/env.d.ts +3 -4
- package/lib/utils/env.js +4 -5
- package/lib/utils/identity.d.ts +13 -4
- package/lib/utils/identity.js +18 -10
- package/lib/utils/index.d.ts +13 -10
- package/lib/utils/index.js +13 -10
- package/lib/utils/jwk.d.ts +4 -0
- package/lib/utils/jwk.js +13 -1
- package/lib/utils/logger.d.ts +1 -1
- package/lib/utils/logger.js +1 -1
- package/lib/utils/object.d.ts +11 -0
- package/lib/utils/object.js +24 -1
- package/lib/utils/params.d.ts +8 -22
- package/lib/utils/params.js +15 -43
- package/lib/utils/plugin-compliance.d.ts +98 -0
- package/lib/utils/plugin-compliance.js +78 -0
- package/lib/utils/proof-of-work.d.ts +69 -0
- package/lib/utils/proof-of-work.js +139 -0
- package/lib/utils/response.d.ts +16 -6
- package/lib/utils/response.js +18 -15
- package/lib/utils/retention.d.ts +17 -0
- package/lib/utils/retention.js +30 -0
- package/lib/utils/secret-encryption.d.ts +7 -7
- package/lib/utils/secret-encryption.js +9 -10
- package/lib/utils/secret-rotation.js +2 -2
- package/lib/utils/sensitive-patterns.js +4 -5
- package/lib/utils/service-registry.d.ts +15 -0
- package/lib/utils/service-registry.js +24 -0
- package/lib/utils/ssrf.d.ts +11 -2
- package/lib/utils/ssrf.js +112 -33
- package/lib/validation/ai-schemas.js +3 -2
- package/lib/validation/common-schemas.d.ts +0 -9
- package/lib/validation/common-schemas.js +1 -7
- package/lib/validation/dockerfile-static.d.ts +26 -0
- package/lib/validation/dockerfile-static.js +210 -0
- package/lib/validation/index.d.ts +13 -4
- package/lib/validation/index.js +14 -5
- package/lib/validation/message-schemas.js +6 -4
- package/lib/validation/pipeline-schemas.d.ts +8 -2
- package/lib/validation/pipeline-schemas.js +30 -4
- package/lib/validation/plugin-base-images.d.ts +20 -0
- package/lib/validation/plugin-base-images.js +17 -0
- package/lib/validation/plugin-catalog-detect.d.ts +86 -0
- package/lib/validation/plugin-catalog-detect.js +237 -0
- package/lib/validation/plugin-catalog-metadata.d.ts +141 -0
- package/lib/validation/plugin-catalog-metadata.js +162 -0
- package/lib/validation/plugin-heuristics.d.ts +41 -0
- package/lib/validation/plugin-heuristics.js +211 -0
- package/lib/validation/plugin-lint.d.ts +18 -0
- package/lib/validation/plugin-lint.js +136 -0
- package/lib/validation/plugin-name-confusable.d.ts +15 -0
- package/lib/validation/plugin-name-confusable.js +81 -0
- package/lib/validation/plugin-schemas.d.ts +40 -26
- package/lib/validation/plugin-schemas.js +26 -23
- package/lib/validation/plugin-spec-schema.d.ts +112 -0
- package/lib/validation/plugin-spec-schema.js +163 -0
- package/lib/validation/plugin-template-contract.d.ts +64 -0
- package/lib/validation/plugin-template-contract.js +113 -0
- package/package.json +69 -4
- package/lib/testing/mock-api-core.d.ts +0 -150
- package/lib/testing/mock-api-core.js +0 -246
- package/lib/testing/mock-drizzle.d.ts +0 -6
- package/lib/testing/mock-drizzle.js +0 -57
- package/lib/testing/route-coverage.d.ts +0 -64
- package/lib/testing/route-coverage.js +0 -183
- package/lib/testing/service-tokens.d.ts +0 -66
- package/lib/testing/service-tokens.js +0 -137
- package/lib/testing/tier-mock.d.ts +0 -44
- package/lib/testing/tier-mock.js +0 -65
- package/lib/testing/user-tokens.d.ts +0 -75
- package/lib/testing/user-tokens.js +0 -115
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
// Copyright 2026 Pipeline Builder Contributors
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
/**
|
|
4
|
+
* STATIC reading of a plugin's own Dockerfile (catalog detection and the
|
|
5
|
+
* `runAsRoot` compliance fact): its `LABEL` instructions and its final `USER`, without
|
|
6
|
+
* building anything.
|
|
7
|
+
*
|
|
8
|
+
* - Only the plugin's OWN instructions count. The built image's config also
|
|
9
|
+
* carries every label inherited from its base image, and those describe the
|
|
10
|
+
* base image, not the plugin — so labels are never read from an image.
|
|
11
|
+
* - Only the FINAL stage counts (plus any earlier stage it is built `FROM`):
|
|
12
|
+
* labels and `USER` set in a discarded build stage never reach the image.
|
|
13
|
+
* - A value containing `$` is ignored: build arguments aren't known at upload,
|
|
14
|
+
* so the static text is not what the image would carry.
|
|
15
|
+
* - Values are untrusted text, exactly like the spec.
|
|
16
|
+
*
|
|
17
|
+
* Handles the `# escape=` parser directive, line continuations (with comment
|
|
18
|
+
* lines inside a continuation skipped, as Docker does), `key=value` pairs with
|
|
19
|
+
* double quotes (backslash escapes) or single quotes (literal), and the legacy
|
|
20
|
+
* `LABEL key value` form.
|
|
21
|
+
*/
|
|
22
|
+
/** Max Dockerfile text read (bytes). Larger inputs are truncated, never parsed whole. */
|
|
23
|
+
const MAX_DOCKERFILE_CHARS = 256 * 1024;
|
|
24
|
+
/** The escape character from a leading `# escape=` directive (default `\`). */
|
|
25
|
+
function escapeCharOf(lines) {
|
|
26
|
+
for (const line of lines) {
|
|
27
|
+
const t = line.trim();
|
|
28
|
+
if (t === '')
|
|
29
|
+
continue;
|
|
30
|
+
const m = /^#\s*escape\s*=\s*([`\\])\s*$/i.exec(t);
|
|
31
|
+
if (m)
|
|
32
|
+
return m[1];
|
|
33
|
+
// Parser directives must come first; any other directive-shaped comment is
|
|
34
|
+
// skipped, anything else ends the directive block.
|
|
35
|
+
if (!/^#\s*\w+\s*=/.test(t))
|
|
36
|
+
break;
|
|
37
|
+
}
|
|
38
|
+
return '\\';
|
|
39
|
+
}
|
|
40
|
+
/** Physical lines → logical instructions (continuations joined, comments dropped). */
|
|
41
|
+
function logicalLines(content) {
|
|
42
|
+
const lines = content.slice(0, MAX_DOCKERFILE_CHARS).replace(/\r\n?/g, '\n').split('\n');
|
|
43
|
+
const esc = escapeCharOf(lines);
|
|
44
|
+
const out = [];
|
|
45
|
+
let current = null;
|
|
46
|
+
for (const raw of lines) {
|
|
47
|
+
const trimmed = raw.trim();
|
|
48
|
+
if (current === null && (trimmed === '' || trimmed.startsWith('#')))
|
|
49
|
+
continue;
|
|
50
|
+
// Docker skips comment and empty lines inside a continuation.
|
|
51
|
+
if (current !== null && (trimmed === '' || trimmed.startsWith('#')))
|
|
52
|
+
continue;
|
|
53
|
+
const continued = raw.replace(/\s+$/, '').endsWith(esc);
|
|
54
|
+
const body = continued ? raw.replace(/\s+$/, '').slice(0, -1) : raw;
|
|
55
|
+
current = current === null ? body : `${current}${body}`;
|
|
56
|
+
if (!continued) {
|
|
57
|
+
out.push(current.trim());
|
|
58
|
+
current = null;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
if (current !== null && current.trim())
|
|
62
|
+
out.push(current.trim());
|
|
63
|
+
return out;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Split `LABEL` arguments into words, honouring double quotes (with backslash
|
|
67
|
+
* escapes) and single quotes (literal). Returns null on an unterminated quote.
|
|
68
|
+
*/
|
|
69
|
+
function splitWords(args) {
|
|
70
|
+
const words = [];
|
|
71
|
+
let word = '';
|
|
72
|
+
let inWord = false;
|
|
73
|
+
for (let i = 0; i < args.length; i++) {
|
|
74
|
+
const c = args[i];
|
|
75
|
+
if (c === '"') {
|
|
76
|
+
inWord = true;
|
|
77
|
+
let j = i + 1;
|
|
78
|
+
for (; j < args.length && args[j] !== '"'; j++) {
|
|
79
|
+
if (args[j] === '\\' && j + 1 < args.length)
|
|
80
|
+
j++;
|
|
81
|
+
word += args[j];
|
|
82
|
+
}
|
|
83
|
+
if (j >= args.length)
|
|
84
|
+
return null;
|
|
85
|
+
i = j;
|
|
86
|
+
}
|
|
87
|
+
else if (c === '\'') {
|
|
88
|
+
inWord = true;
|
|
89
|
+
const end = args.indexOf('\'', i + 1);
|
|
90
|
+
if (end < 0)
|
|
91
|
+
return null;
|
|
92
|
+
word += args.slice(i + 1, end);
|
|
93
|
+
i = end;
|
|
94
|
+
}
|
|
95
|
+
else if (c === '\\' && i + 1 < args.length) {
|
|
96
|
+
inWord = true;
|
|
97
|
+
word += args[++i];
|
|
98
|
+
}
|
|
99
|
+
else if (/\s/.test(c)) {
|
|
100
|
+
if (inWord)
|
|
101
|
+
words.push(word);
|
|
102
|
+
word = '';
|
|
103
|
+
inWord = false;
|
|
104
|
+
}
|
|
105
|
+
else {
|
|
106
|
+
inWord = true;
|
|
107
|
+
word += c;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
if (inWord)
|
|
111
|
+
words.push(word);
|
|
112
|
+
return words;
|
|
113
|
+
}
|
|
114
|
+
/** The `key → value` pairs of one `LABEL` instruction's arguments. */
|
|
115
|
+
export function parseLabelArgs(args) {
|
|
116
|
+
const trimmed = args.trim();
|
|
117
|
+
// Legacy form: `LABEL key value with spaces` (no `=` in the first word).
|
|
118
|
+
const firstWord = /^\S+/.exec(trimmed)?.[0] ?? '';
|
|
119
|
+
if (firstWord && !firstWord.includes('=')) {
|
|
120
|
+
const words = splitWords(trimmed);
|
|
121
|
+
if (!words || words.length < 2)
|
|
122
|
+
return [];
|
|
123
|
+
return [[words[0], words.slice(1).join(' ')]];
|
|
124
|
+
}
|
|
125
|
+
const words = splitWords(trimmed);
|
|
126
|
+
if (!words)
|
|
127
|
+
return [];
|
|
128
|
+
const pairs = [];
|
|
129
|
+
for (const w of words) {
|
|
130
|
+
const eq = w.indexOf('=');
|
|
131
|
+
if (eq <= 0)
|
|
132
|
+
continue;
|
|
133
|
+
pairs.push([w.slice(0, eq), w.slice(eq + 1)]);
|
|
134
|
+
}
|
|
135
|
+
return pairs;
|
|
136
|
+
}
|
|
137
|
+
/** Parse what `content` declares for its final image. Never throws. */
|
|
138
|
+
export function parseDockerfile(content) {
|
|
139
|
+
const stages = [];
|
|
140
|
+
for (const line of logicalLines(content ?? '')) {
|
|
141
|
+
const m = /^(\S+)\s*(.*)$/s.exec(line);
|
|
142
|
+
if (!m)
|
|
143
|
+
continue;
|
|
144
|
+
const instruction = m[1].toUpperCase();
|
|
145
|
+
const args = m[2] ?? '';
|
|
146
|
+
if (instruction === 'FROM') {
|
|
147
|
+
// FROM [--platform=…] <image> [AS <name>]
|
|
148
|
+
const words = args.split(/\s+/).filter((w) => w && !w.startsWith('--'));
|
|
149
|
+
const asIdx = words.findIndex((w) => w.toLowerCase() === 'as');
|
|
150
|
+
stages.push({
|
|
151
|
+
base: (words[0] ?? '').toLowerCase(),
|
|
152
|
+
rawBase: words[0] ?? '',
|
|
153
|
+
alias: asIdx >= 0 && words[asIdx + 1] ? words[asIdx + 1].toLowerCase() : null,
|
|
154
|
+
labels: new Map(),
|
|
155
|
+
user: null,
|
|
156
|
+
});
|
|
157
|
+
continue;
|
|
158
|
+
}
|
|
159
|
+
const stage = stages[stages.length - 1];
|
|
160
|
+
if (!stage)
|
|
161
|
+
continue; // Instructions before the first FROM (ARG) set nothing on the image.
|
|
162
|
+
if (instruction === 'LABEL') {
|
|
163
|
+
for (const [k, v] of parseLabelArgs(args)) {
|
|
164
|
+
if (v.includes('$') || k.includes('$')) {
|
|
165
|
+
stage.labels.delete(k);
|
|
166
|
+
continue;
|
|
167
|
+
}
|
|
168
|
+
stage.labels.set(k, v);
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
else if (instruction === 'USER') {
|
|
172
|
+
stage.user = args.trim() || null;
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
if (stages.length === 0)
|
|
176
|
+
return { labels: {}, finalUser: null, baseImage: null };
|
|
177
|
+
// The final stage, preceded by the chain of earlier stages it is built FROM
|
|
178
|
+
// (its own content, not a base image's), oldest first.
|
|
179
|
+
const chain = [];
|
|
180
|
+
let cursor = stages[stages.length - 1];
|
|
181
|
+
const seen = new Set();
|
|
182
|
+
while (cursor && !seen.has(cursor)) {
|
|
183
|
+
seen.add(cursor);
|
|
184
|
+
chain.unshift(cursor);
|
|
185
|
+
const base = cursor.base;
|
|
186
|
+
const idx = stages.indexOf(cursor);
|
|
187
|
+
cursor = stages.slice(0, idx).reverse().find((s) => s.alias !== null && s.alias === base);
|
|
188
|
+
}
|
|
189
|
+
const labels = {};
|
|
190
|
+
let finalUser = null;
|
|
191
|
+
for (const s of chain) {
|
|
192
|
+
for (const [k, v] of s.labels)
|
|
193
|
+
labels[k] = v;
|
|
194
|
+
if (s.user !== null)
|
|
195
|
+
finalUser = s.user;
|
|
196
|
+
}
|
|
197
|
+
const root = chain[0].rawBase;
|
|
198
|
+
const baseImage = root === '' || root.includes('$') || root.toLowerCase() === 'scratch' ? null : root;
|
|
199
|
+
return { labels, finalUser, baseImage };
|
|
200
|
+
}
|
|
201
|
+
/** The OCI annotation keys the catalog reads. */
|
|
202
|
+
export const OCI_LABELS = {
|
|
203
|
+
title: 'org.opencontainers.image.title',
|
|
204
|
+
description: 'org.opencontainers.image.description',
|
|
205
|
+
licenses: 'org.opencontainers.image.licenses',
|
|
206
|
+
url: 'org.opencontainers.image.url',
|
|
207
|
+
source: 'org.opencontainers.image.source',
|
|
208
|
+
documentation: 'org.opencontainers.image.documentation',
|
|
209
|
+
};
|
|
210
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9ja2VyZmlsZS1zdGF0aWMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdmFsaWRhdGlvbi9kb2NrZXJmaWxlLXN0YXRpYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQ0FBK0M7QUFDL0Msc0NBQXNDO0FBRXRDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FrQkc7QUFFSCx5RkFBeUY7QUFDekYsTUFBTSxvQkFBb0IsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDO0FBNEJ4QywrRUFBK0U7QUFDL0UsU0FBUyxZQUFZLENBQUMsS0FBZTtJQUNuQyxLQUFLLE1BQU0sSUFBSSxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQ3pCLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsS0FBSyxFQUFFO1lBQUUsU0FBUztRQUN2QixNQUFNLENBQUMsR0FBRyxnQ0FBZ0MsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbkQsSUFBSSxDQUFDO1lBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFFLENBQUM7UUFDcEIsMkVBQTJFO1FBQzNFLG1EQUFtRDtRQUNuRCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7WUFBRSxNQUFNO0lBQ3JDLENBQUM7SUFDRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUM7QUFFRCxzRkFBc0Y7QUFDdEYsU0FBUyxZQUFZLENBQUMsT0FBZTtJQUNuQyxNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxvQkFBb0IsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3pGLE1BQU0sR0FBRyxHQUFHLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNoQyxNQUFNLEdBQUcsR0FBYSxFQUFFLENBQUM7SUFDekIsSUFBSSxPQUFP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UUFBUSxFQUFFLG1DQUFtQztJQUM3QyxHQUFHLEVBQUUsOEJBQThCO0lBQ25DLE1BQU0sRUFBRSxpQ0FBaUM7SUFDekMsYUFBYSxFQUFFLHdDQUF3QztDQUMvQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IDIwMjYgUGlwZWxpbmUgQnVpbGRlciBDb250cmlidXRvcnNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbi8qKlxuICogU1RBVElDIHJlYWRpbmcgb2YgYSBwbHVnaW4ncyBvd24gRG9ja2VyZmlsZSAoY2F0YWxvZyBkZXRlY3Rpb24gYW5kIHRoZVxuICogYHJ1bkFzUm9vdGAgY29tcGxpYW5jZSBmYWN0KTogaXRzIGBMQUJFTGAgaW5zdHJ1Y3Rpb25zIGFuZCBpdHMgZmluYWwgYFVTRVJgLCB3aXRob3V0XG4gKiBidWlsZGluZyBhbnl0aGluZy5cbiAqXG4gKiAtIE9ubHkgdGhlIHBsdWdpbidzIE9XTiBpbnN0cnVjdGlvbnMgY291bnQuIFRoZSBidWlsdCBpbWFnZSdzIGNvbmZpZyBhbHNvXG4gKiAgIGNhcnJpZXMgZXZlcnkgbGFiZWwgaW5oZXJpdGVkIGZyb20gaXRzIGJhc2UgaW1hZ2UsIGFuZCB0aG9zZSBkZXNjcmliZSB0aGVcbiAqICAgYmFzZSBpbWFnZSwgbm90IHRoZSBwbHVnaW4g4oCUIHNvIGxhYmVscyBhcmUgbmV2ZXIgcmVhZCBmcm9tIGFuIGltYWdlLlxuICogLSBPbmx5IHRoZSBGSU5BTCBzdGFnZSBjb3VudHMgKHBsdXMgYW55IGVhcmxpZXIgc3RhZ2UgaXQgaXMgYnVpbHQgYEZST01gKTpcbiAqICAgbGFiZWxzIGFuZCBgVVNFUmAgc2V0IGluIGEgZGlzY2FyZGVkIGJ1aWxkIHN0YWdlIG5ldmVyIHJlYWNoIHRoZSBpbWFnZS5cbiAqIC0gQSB2YWx1ZSBjb250YWluaW5nIGAkYCBpcyBpZ25vcmVkOiBidWlsZCBhcmd1bWVudHMgYXJlbid0IGtub3duIGF0IHVwbG9hZCxcbiAqICAgc28gdGhlIHN0YXRpYyB0ZXh0IGlzIG5vdCB3aGF0IHRoZSBpbWFnZSB3b3VsZCBjYXJyeS5cbiAqIC0gVmFsdWVzIGFyZSB1bnRydXN0ZWQgdGV4dCwgZXhhY3RseSBsaWtlIHRoZSBzcGVjLlxuICpcbiAqIEhhbmRsZXMgdGhlIGAjIGVzY2FwZT1gIHBhcnNlciBkaXJlY3RpdmUsIGxpbmUgY29udGludWF0aW9ucyAod2l0aCBjb21tZW50XG4gKiBsaW5lcyBpbnNpZGUgYSBjb250aW51YXRpb24gc2tpcHBlZCwgYXMgRG9ja2VyIGRvZXMpLCBga2V5PXZhbHVlYCBwYWlycyB3aXRoXG4gKiBkb3VibGUgcXVvdGVzIChiYWNrc2xhc2ggZXNjYXBlcykgb3Igc2luZ2xlIHF1b3RlcyAobGl0ZXJhbCksIGFuZCB0aGUgbGVnYWN5XG4gKiBgTEFCRUwga2V5IHZhbHVlYCBmb3JtLlxuICovXG5cbi8qKiBNYXggRG9ja2VyZmlsZSB0ZXh0IHJlYWQgKGJ5dGVzKS4gTGFyZ2VyIGlucHV0cyBhcmUgdHJ1bmNhdGVkLCBuZXZlciBwYXJzZWQgd2hvbGUuICovXG5jb25zdCBNQVhfRE9DS0VSRklMRV9DSEFSUyA9IDI1NiAqIDEwMjQ7XG5cbmludGVyZmFjZSBTdGFnZSB7XG4gIC8qKiBMb3dlcmNhc2VkIGBBU2AgYWxpYXMsIGlmIGFueS4gKi9cbiAgYWxpYXM6IHN0cmluZyB8IG51bGw7XG4gIC8qKiBMb3dlcmNhc2VkIGJhc2UgcmVmZXJlbmNlIChgRlJPTSA8YmFzZT5gKS4gKi9cbiAgYmFzZTogc3RyaW5nO1xuICAvKiogVGhlIGJhc2UgcmVmZXJlbmNlIGFzIHdyaXR0ZW4gKGltYWdlIHJlZnMgYXJlIGNhc2Utc2Vuc2l0aXZlIGluIHRhZ3MpLiAqL1xuICByYXdCYXNlOiBzdHJpbmc7XG4gIGxhYmVsczogTWFwPHN0cmluZywgc3RyaW5nPjtcbiAgLyoqIExhc3QgYFVTRVJgIGluIHRoZSBzdGFnZSAocmF3KSwgb3IgbnVsbCB3aGVuIHRoZSBzdGFnZSBzZXRzIG5vbmUuICovXG4gIHVzZXI6IHN0cmluZyB8IG51bGw7XG59XG5cbi8qKiBXaGF0IHRoZSBwbHVnaW4ncyBEb2NrZXJmaWxlIGl0c2VsZiBkZWNsYXJlcyBmb3IgaXRzIGZpbmFsIGltYWdlLiAqL1xuZXhwb3J0IGludGVyZmFjZSBEb2NrZXJmaWxlRmFjdHMge1xuICAvKiogVGhlIGZpbmFsIGltYWdlJ3Mgb3duIGxhYmVscyAobGF0ZXIgaW5zdHJ1Y3Rpb25zIHdpbikuICovXG4gIGxhYmVsczogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgLyoqIFRoZSBmaW5hbCBpbWFnZSdzIG93biBgVVNFUmAsIG9yIG51bGwgd2hlbiB0aGUgRG9ja2VyZmlsZSBzZXRzIG5vbmUuICovXG4gIGZpbmFsVXNlcjogc3RyaW5nIHwgbnVsbDtcbiAgLyoqXG4gICAqIFRoZSBleHRlcm5hbCBpbWFnZSB0aGUgZmluYWwgc3RhZ2UgaXMgdWx0aW1hdGVseSBidWlsdCBgRlJPTWAgKGZvbGxvd2luZ1xuICAgKiBzdGFnZSBhbGlhc2VzKSwgYXMgd3JpdHRlbjsgbnVsbCB3aGVuIHRoZXJlIGlzIG5vIGBGUk9NYCwgaXQgaXMgYHNjcmF0Y2hgLFxuICAgKiBvciBpdCBkZXBlbmRzIG9uIGEgYnVpbGQgYXJndW1lbnQgKGAkYCksIHdoaWNoIGlzbid0IGtub3duIHN0YXRpY2FsbHkuXG4gICAqL1xuICBiYXNlSW1hZ2U6IHN0cmluZyB8IG51bGw7XG59XG5cbi8qKiBUaGUgZXNjYXBlIGNoYXJhY3RlciBmcm9tIGEgbGVhZGluZyBgIyBlc2NhcGU9YCBkaXJlY3RpdmUgKGRlZmF1bHQgYFxcYCkuICovXG5mdW5jdGlvbiBlc2NhcGVDaGFyT2YobGluZXM6IHN0cmluZ1tdKTogc3RyaW5nIHtcbiAgZm9yIChjb25zdCBsaW5lIG9mIGxpbmVzKSB7XG4gICAgY29uc3QgdCA9IGxpbmUudHJpbSgpO1xuICAgIGlmICh0ID09PSAnJykgY29udGludWU7XG4gICAgY29uc3QgbSA9IC9eI1xccyplc2NhcGVcXHMqPVxccyooW2BcXFxcXSlcXHMqJC9pLmV4ZWModCk7XG4gICAgaWYgKG0pIHJldHVybiBtWzFdITtcbiAgICAvLyBQYXJzZXIgZGlyZWN0aXZlcyBtdXN0IGNvbWUgZmlyc3Q7IGFueSBvdGhlciBkaXJlY3RpdmUtc2hhcGVkIGNvbW1lbnQgaXNcbiAgICAvLyBza2lwcGVkLCBhbnl0aGluZyBlbHNlIGVuZHMgdGhlIGRpcmVjdGl2ZSBibG9jay5cbiAgICBpZiAoIS9eI1xccypcXHcrXFxzKj0vLnRlc3QodCkpIGJyZWFrO1xuICB9XG4gIHJldHVybiAnXFxcXCc7XG59XG5cbi8qKiBQaHlzaWNhbCBsaW5lcyDihpIgbG9naWNhbCBpbnN0cnVjdGlvbnMgKGNvbnRpbnVhdGlvbnMgam9pbmVkLCBjb21tZW50cyBkcm9wcGVkKS4gKi9cbmZ1bmN0aW9uIGxvZ2ljYWxMaW5lcyhjb250ZW50OiBzdHJpbmcpOiBzdHJpbmdbXSB7XG4gIGNvbnN0IGxpbmVzID0gY29udGVudC5zbGljZSgwLCBNQVhfRE9DS0VSRklMRV9DSEFSUykucmVwbGFjZSgvXFxyXFxuPy9nLCAnXFxuJykuc3BsaXQoJ1xcbicpO1xuICBjb25zdCBlc2MgPSBlc2NhcGVDaGFyT2YobGluZXMpO1xuICBjb25zdCBvdXQ6IHN0cmluZ1tdID0gW107XG4gIGxldCBjdXJyZW50OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgZm9yIChjb25zdCByYXcgb2YgbGluZXMpIHtcbiAgICBjb25zdCB0cmltbWVkID0gcmF3LnRyaW0oKTtcbiAgICBpZiAoY3VycmVudCA9PT0gbnVsbCAmJiAodHJpbW1lZCA9PT0gJycgfHwgdHJpbW1lZC5zdGFydHNXaXRoKCcjJykpKSBjb250aW51ZTtcbiAgICAvLyBEb2NrZXIgc2tpcHMgY29tbWVudCBhbmQgZW1wdHkgbGluZXMgaW5zaWRlIGEgY29udGludWF0aW9uLlxuICAgIGlmIChjdXJyZW50ICE9PSBudWxsICYmICh0cmltbWVkID09PSAnJyB8fCB0cmltbWVkLnN0YXJ0c1dpdGgoJyMnKSkpIGNvbnRpbnVlO1xuICAgIGNvbnN0IGNvbnRpbnVlZCA9IHJhdy5yZXBsYWNlKC9cXHMrJC8sICcnKS5lbmRzV2l0aChlc2MpO1xuICAgIGNvbnN0IGJvZHkgPSBjb250aW51ZWQgPyByYXcucmVwbGFjZSgvXFxzKyQvLCAnJykuc2xpY2UoMCwgLTEpIDogcmF3O1xuICAgIGN1cnJlbnQgPSBjdXJyZW50ID09PSBudWxsID8gYm9keSA6IGAke2N1cnJlbnR9JHtib2R5fWA7XG4gICAgaWYgKCFjb250aW51ZWQpIHtcbiAgICAgIG91dC5wdXNoKGN1cnJlbnQudHJpbSgpKTtcbiAgICAgIGN1cnJlbnQgPSBudWxsO1xuICAgIH1cbiAgfVxuICBpZiAoY3VycmVudCAhPT0gbnVsbCAmJiBjdXJyZW50LnRyaW0oKSkgb3V0LnB1c2goY3VycmVudC50cmltKCkpO1xuICByZXR1cm4gb3V0O1xufVxuXG4vKipcbiAqIFNwbGl0IGBMQUJFTGAgYXJndW1lbnRzIGludG8gd29yZHMsIGhvbm91cmluZyBkb3VibGUgcXVvdGVzICh3aXRoIGJhY2tzbGFzaFxuICogZXNjYXBlcykgYW5kIHNpbmdsZSBxdW90ZXMgKGxpdGVyYWwpLiBSZXR1cm5zIG51bGwgb24gYW4gdW50ZXJtaW5hdGVkIHF1b3RlLlxuICovXG5mdW5jdGlvbiBzcGxpdFdvcmRzKGFyZ3M6IHN0cmluZyk6IHN0cmluZ1tdIHwgbnVsbCB7XG4gIGNvbnN0IHdvcmRzOiBzdHJpbmdbXSA9IFtdO1xuICBsZXQgd29yZCA9ICcnO1xuICBsZXQgaW5Xb3JkID0gZmFsc2U7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgYXJncy5sZW5ndGg7IGkrKykge1xuICAgIGNvbnN0IGMgPSBhcmdzW2ldITtcbiAgICBpZiAoYyA9PT0gJ1wiJykge1xuICAgICAgaW5Xb3JkID0gdHJ1ZTtcbiAgICAgIGxldCBqID0gaSArIDE7XG4gICAgICBmb3IgKDsgaiA8IGFyZ3MubGVuZ3RoICYmIGFyZ3Nbal0gIT09ICdcIic7IGorKykge1xuICAgICAgICBpZiAoYXJnc1tqXSA9PT0gJ1xcXFwnICYmIGogKyAxIDwgYXJncy5sZW5ndGgpIGorKztcbiAgICAgICAgd29yZCArPSBhcmdzW2pdO1xuICAgICAgfVxuICAgICAgaWYgKGogPj0gYXJncy5sZW5ndGgpIHJldHVybiBudWxsO1xuICAgICAgaSA9IGo7XG4gICAgfSBlbHNlIGlmIChjID09PSAnXFwnJykge1xuICAgICAgaW5Xb3JkID0gdHJ1ZTtcbiAgICAgIGNvbnN0IGVuZCA9IGFyZ3MuaW5kZXhPZignXFwnJywgaSArIDEpO1xuICAgICAgaWYgKGVuZCA8IDApIHJldHVybiBudWxsO1xuICAgICAgd29yZCArPSBhcmdzLnNsaWNlKGkgKyAxLCBlbmQpO1xuICAgICAgaSA9IGVuZDtcbiAgICB9IGVsc2UgaWYgKGMgPT09ICdcXFxcJyAmJiBpICsgMSA8IGFyZ3MubGVuZ3RoKSB7XG4gICAgICBpbldvcmQgPSB0cnVlO1xuICAgICAgd29yZCArPSBhcmdzWysraV07XG4gICAgfSBlbHNlIGlmICgvXFxzLy50ZXN0KGMpKSB7XG4gICAgICBpZiAoaW5Xb3JkKSB3b3Jkcy5wdXNoKHdvcmQpO1xuICAgICAgd29yZCA9ICcnO1xuICAgICAgaW5Xb3JkID0gZmFsc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIGluV29yZCA9IHRydWU7XG4gICAgICB3b3JkICs9IGM7XG4gICAgfVxuICB9XG4gIGlmIChpbldvcmQpIHdvcmRzLnB1c2god29yZCk7XG4gIHJldHVybiB3b3Jkcztcbn1cblxuLyoqIFRoZSBga2V5IOKGkiB2YWx1ZWAgcGFpcnMgb2Ygb25lIGBMQUJFTGAgaW5zdHJ1Y3Rpb24ncyBhcmd1bWVudHMuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VMYWJlbEFyZ3MoYXJnczogc3RyaW5nKTogQXJyYXk8W3N0cmluZywgc3RyaW5nXT4ge1xuICBjb25zdCB0cmltbWVkID0gYXJncy50cmltKCk7XG4gIC8vIExlZ2FjeSBmb3JtOiBgTEFCRUwga2V5IHZhbHVlIHdpdGggc3BhY2VzYCAobm8gYD1gIGluIHRoZSBmaXJzdCB3b3JkKS5cbiAgY29uc3QgZmlyc3RXb3JkID0gL15cXFMrLy5leGVjKHRyaW1tZWQpPy5bMF0gPz8gJyc7XG4gIGlmIChmaXJzdFdvcmQgJiYgIWZpcnN0V29yZC5pbmNsdWRlcygnPScpKSB7XG4gICAgY29uc3Qgd29yZHMgPSBzcGxpdFdvcmRzKHRyaW1tZWQpO1xuICAgIGlmICghd29yZHMgfHwgd29yZHMubGVuZ3RoIDwgMikgcmV0dXJuIFtdO1xuICAgIHJldHVybiBbW3dvcmRzWzBdISwgd29yZHMuc2xpY2UoMSkuam9pbignICcpXV07XG4gIH1cbiAgY29uc3Qgd29yZHMgPSBzcGxpdFdvcmRzKHRyaW1tZWQpO1xuICBpZiAoIXdvcmRzKSByZXR1cm4gW107XG4gIGNvbnN0IHBhaXJzOiBBcnJheTxbc3RyaW5nLCBzdHJpbmddPiA9IFtdO1xuICBmb3IgKGNvbnN0IHcgb2Ygd29yZHMpIHtcbiAgICBjb25zdCBlcSA9IHcuaW5kZXhPZignPScpO1xuICAgIGlmIChlcSA8PSAwKSBjb250aW51ZTtcbiAgICBwYWlycy5wdXNoKFt3LnNsaWNlKDAsIGVxKSwgdy5zbGljZShlcSArIDEpXSk7XG4gIH1cbiAgcmV0dXJuIHBhaXJzO1xufVxuXG4vKiogUGFyc2Ugd2hhdCBgY29udGVudGAgZGVjbGFyZXMgZm9yIGl0cyBmaW5hbCBpbWFnZS4gTmV2ZXIgdGhyb3dzLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlRG9ja2VyZmlsZShjb250ZW50OiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkKTogRG9ja2VyZmlsZUZhY3RzIHtcbiAgY29uc3Qgc3RhZ2VzOiBTdGFnZVtdID0gW107XG4gIGZvciAoY29uc3QgbGluZSBvZiBsb2dpY2FsTGluZXMoY29udGVudCA/PyAnJykpIHtcbiAgICBjb25zdCBtID0gL14oXFxTKylcXHMqKC4qKSQvcy5leGVjKGxpbmUpO1xuICAgIGlmICghbSkgY29udGludWU7XG4gICAgY29uc3QgaW5zdHJ1Y3Rpb24gPSBtWzFdIS50b1VwcGVyQ2FzZSgpO1xuICAgIGNvbnN0IGFyZ3MgPSBtWzJdID8/ICcnO1xuICAgIGlmIChpbnN0cnVjdGlvbiA9PT0gJ0ZST00nKSB7XG4gICAgICAvLyBGUk9NIFstLXBsYXRmb3JtPeKApl0gPGltYWdlPiBbQVMgPG5hbWU+XVxuICAgICAgY29uc3Qgd29yZHMgPSBhcmdzLnNwbGl0KC9cXHMrLykuZmlsdGVyKCh3KSA9PiB3ICYmICF3LnN0YXJ0c1dpdGgoJy0tJykpO1xuICAgICAgY29uc3QgYXNJZHggPSB3b3Jkcy5maW5kSW5kZXgoKHcpID0+IHcudG9Mb3dlckNhc2UoKSA9PT0gJ2FzJyk7XG4gICAgICBzdGFnZXMucHVzaCh7XG4gICAgICAgIGJhc2U6ICh3b3Jkc1swXSA/PyAnJykudG9Mb3dlckNhc2UoKSxcbiAgICAgICAgcmF3QmFzZTogd29yZHNbMF0gPz8gJycsXG4gICAgICAgIGFsaWFzOiBhc0lkeCA+PSAwICYmIHdvcmRzW2FzSWR4ICsgMV0gPyB3b3Jkc1thc0lkeCArIDFdIS50b0xvd2VyQ2FzZSgpIDogbnVsbCxcbiAgICAgICAgbGFiZWxzOiBuZXcgTWFwKCksXG4gICAgICAgIHVzZXI6IG51bGwsXG4gICAgICB9KTtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBjb25zdCBzdGFnZSA9IHN0YWdlc1tzdGFnZXMubGVuZ3RoIC0gMV07XG4gICAgaWYgKCFzdGFnZSkgY29udGludWU7IC8vIEluc3RydWN0aW9ucyBiZWZvcmUgdGhlIGZpcnN0IEZST00gKEFSRykgc2V0IG5vdGhpbmcgb24gdGhlIGltYWdlLlxuICAgIGlmIChpbnN0cnVjdGlvbiA9PT0gJ0xBQkVMJykge1xuICAgICAgZm9yIChjb25zdCBbaywgdl0gb2YgcGFyc2VMYWJlbEFyZ3MoYXJncykpIHtcbiAgICAgICAgaWYgKHYuaW5jbHVkZXMoJyQnKSB8fCBrLmluY2x1ZGVzKCckJykpIHtcbiAgICAgICAgICBzdGFnZS5sYWJlbHMuZGVsZXRlKGspO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIHN0YWdlLmxhYmVscy5zZXQoaywgdik7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChpbnN0cnVjdGlvbiA9PT0gJ1VTRVInKSB7XG4gICAgICBzdGFnZS51c2VyID0gYXJncy50cmltKCkgfHwgbnVsbDtcbiAgICB9XG4gIH1cblxuICBpZiAoc3RhZ2VzLmxlbmd0aCA9PT0gMCkgcmV0dXJuIHsgbGFiZWxzOiB7fSwgZmluYWxVc2VyOiBudWxsLCBiYXNlSW1hZ2U6IG51bGwgfTtcblxuICAvLyBUaGUgZmluYWwgc3RhZ2UsIHByZWNlZGVkIGJ5IHRoZSBjaGFpbiBvZiBlYXJsaWVyIHN0YWdlcyBpdCBpcyBidWlsdCBGUk9NXG4gIC8vIChpdHMgb3duIGNvbnRlbnQsIG5vdCBhIGJhc2UgaW1hZ2UncyksIG9sZGVzdCBmaXJzdC5cbiAgY29uc3QgY2hhaW46IFN0YWdlW10gPSBbXTtcbiAgbGV0IGN1cnNvcjogU3RhZ2UgfCB1bmRlZmluZWQgPSBzdGFnZXNbc3RhZ2VzLmxlbmd0aCAtIDFdO1xuICBjb25zdCBzZWVuID0gbmV3IFNldDxTdGFnZT4oKTtcbiAgd2hpbGUgKGN1cnNvciAmJiAhc2Vlbi5oYXMoY3Vyc29yKSkge1xuICAgIHNlZW4uYWRkKGN1cnNvcik7XG4gICAgY2hhaW4udW5zaGlmdChjdXJzb3IpO1xuICAgIGNvbnN0IGJhc2U6IHN0cmluZyA9IGN1cnNvci5iYXNlO1xuICAgIGNvbnN0IGlkeCA9IHN0YWdlcy5pbmRleE9mKGN1cnNvcik7XG4gICAgY3Vyc29yID0gc3RhZ2VzLnNsaWNlKDAsIGlkeCkucmV2ZXJzZSgpLmZpbmQoKHMpID0+IHMuYWxpYXMgIT09IG51bGwgJiYgcy5hbGlhcyA9PT0gYmFzZSk7XG4gIH1cblxuICBjb25zdCBsYWJlbHM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTtcbiAgbGV0IGZpbmFsVXNlcjogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gIGZvciAoY29uc3QgcyBvZiBjaGFpbikge1xuICAgIGZvciAoY29uc3QgW2ssIHZdIG9mIHMubGFiZWxzKSBsYWJlbHNba10gPSB2O1xuICAgIGlmIChzLnVzZXIgIT09IG51bGwpIGZpbmFsVXNlciA9IHMudXNlcjtcbiAgfVxuICBjb25zdCByb290ID0gY2hhaW5bMF0hLnJhd0Jhc2U7XG4gIGNvbnN0IGJhc2VJbWFnZSA9IHJvb3QgPT09ICcnIHx8IHJvb3QuaW5jbHVkZXMoJyQnKSB8fCByb290LnRvTG93ZXJDYXNlKCkgPT09ICdzY3JhdGNoJyA/IG51bGwgOiByb290O1xuICByZXR1cm4geyBsYWJlbHMsIGZpbmFsVXNlciwgYmFzZUltYWdlIH07XG59XG5cbi8qKiBUaGUgT0NJIGFubm90YXRpb24ga2V5cyB0aGUgY2F0YWxvZyByZWFkcy4gKi9cbmV4cG9ydCBjb25zdCBPQ0lfTEFCRUxTID0ge1xuICB0aXRsZTogJ29yZy5vcGVuY29udGFpbmVycy5pbWFnZS50aXRsZScsXG4gIGRlc2NyaXB0aW9uOiAnb3JnLm9wZW5jb250YWluZXJzLmltYWdlLmRlc2NyaXB0aW9uJyxcbiAgbGljZW5zZXM6ICdvcmcub3BlbmNvbnRhaW5lcnMuaW1hZ2UubGljZW5zZXMnLFxuICB1cmw6ICdvcmcub3BlbmNvbnRhaW5lcnMuaW1hZ2UudXJsJyxcbiAgc291cmNlOiAnb3JnLm9wZW5jb250YWluZXJzLmltYWdlLnNvdXJjZScsXG4gIGRvY3VtZW50YXRpb246ICdvcmcub3BlbmNvbnRhaW5lcnMuaW1hZ2UuZG9jdW1lbnRhdGlvbicsXG59IGFzIGNvbnN0O1xuIl19
|
|
@@ -1,7 +1,16 @@
|
|
|
1
|
-
export
|
|
1
|
+
export { VisibilitySchema, MAX_PAGE_LIMIT, DEFAULT_PAGE_LIMIT, UUIDPrefixSchema, } from './common-schemas.js';
|
|
2
2
|
export * from './pipeline-schemas.js';
|
|
3
|
-
export
|
|
3
|
+
export { PipelineTemplateFilterSchema, PipelineTemplateCreateSchema, PipelineTemplateUpdateSchema, InstantiateTemplateSchema, } from './pipeline-template-schemas.js';
|
|
4
4
|
export * from './plugin-schemas.js';
|
|
5
|
-
export
|
|
5
|
+
export { isAllowedSpdxId, projectUrlProblem, validateCatalogField, findContractKeys, contractKeysMessage, SPDX_LICENSE_IDS, URL_SHORTENER_HOSTS, ICON_KEY_PATTERN, PluginCatalogEditsSchema, type PluginCatalogEdits, PLUGIN_CONTRACT_FIELDS, } from './plugin-catalog-metadata.js';
|
|
6
|
+
export { isAllowedAttachmentType, MessageTypeSchema, MessagePrioritySchema, MessageFilterSchema, MESSAGE_ATTACHMENT_MAX_BYTES, MESSAGE_ATTACHMENT_ALLOWED_MIME, MessageCreateSchema, MessageReplySchema, MessageEditSchema, } from './message-schemas.js';
|
|
6
7
|
export * from './ai-schemas.js';
|
|
7
|
-
export
|
|
8
|
+
export { validate, validateQuery, validateBody, } from './middleware.js';
|
|
9
|
+
export { isValidEgressHost, checkPluginSpec, checkPluginConfig, pluginSpecRequiredFieldsProblem, PLUGIN_TYPES, PLUGIN_COMPUTE_TYPES, PLUGIN_FAILURE_BEHAVIORS, PLUGIN_BUILD_TYPES, type PluginBuildType, PLUGIN_NAME_PATTERN, PLUGIN_VERSION_PATTERN, EGRESS_MAX_HOSTS, type PluginSpecInput, type PackageCheck, } from './plugin-spec-schema.js';
|
|
10
|
+
export { stripInlineMarkdown, readmeTitle, readmeFirstParagraph, firstSentence, detectCatalogMetadata, resolveCatalogMetadata, acceptAllCatalogMetadata, parseCatalogEdits, parseCatalogEditsPart, type DetectedField, type CatalogSpecFields, type ResolvedCatalog, } from './plugin-catalog-detect.js';
|
|
11
|
+
export { parseLabelArgs, parseDockerfile, OCI_LABELS, } from './dockerfile-static.js';
|
|
12
|
+
export { isPluginTemplatableField, checkPluginTemplates, formatPluginTemplateIssue, PLUGIN_TEMPLATE_SCOPE_ROOTS, type PluginTemplateEngine, type PluginTemplateIssue, } from './plugin-template-contract.js';
|
|
13
|
+
export { lintPluginDockerfile, lintPluginSpec, type PluginLintFinding } from './plugin-lint.js';
|
|
14
|
+
export * from './plugin-base-images.js';
|
|
15
|
+
export { shannonEntropy, scanPluginSourceHeuristics, blockingHeuristics, type HeuristicSeverity, type HeuristicFinding, type HeuristicsReport, type HeuristicsInputFile, HEURISTICS_MAX_FILE_BYTES, HEURISTICS_MAX_FINDINGS, } from './plugin-heuristics.js';
|
|
16
|
+
export { findConfusableName } from './plugin-name-confusable.js';
|
package/lib/validation/index.js
CHANGED
|
@@ -1,10 +1,19 @@
|
|
|
1
1
|
// Copyright 2026 Pipeline Builder Contributors
|
|
2
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
-
export
|
|
3
|
+
export { VisibilitySchema, MAX_PAGE_LIMIT, DEFAULT_PAGE_LIMIT, UUIDPrefixSchema, } from './common-schemas.js';
|
|
4
4
|
export * from './pipeline-schemas.js';
|
|
5
|
-
export
|
|
5
|
+
export { PipelineTemplateFilterSchema, PipelineTemplateCreateSchema, PipelineTemplateUpdateSchema, InstantiateTemplateSchema, } from './pipeline-template-schemas.js';
|
|
6
6
|
export * from './plugin-schemas.js';
|
|
7
|
-
export
|
|
7
|
+
export { isAllowedSpdxId, projectUrlProblem, validateCatalogField, findContractKeys, contractKeysMessage, SPDX_LICENSE_IDS, URL_SHORTENER_HOSTS, ICON_KEY_PATTERN, PluginCatalogEditsSchema, PLUGIN_CONTRACT_FIELDS, } from './plugin-catalog-metadata.js';
|
|
8
|
+
export { isAllowedAttachmentType, MessageTypeSchema, MessagePrioritySchema, MessageFilterSchema, MESSAGE_ATTACHMENT_MAX_BYTES, MESSAGE_ATTACHMENT_ALLOWED_MIME, MessageCreateSchema, MessageReplySchema, MessageEditSchema, } from './message-schemas.js';
|
|
8
9
|
export * from './ai-schemas.js';
|
|
9
|
-
export
|
|
10
|
-
|
|
10
|
+
export { validate, validateQuery, validateBody, } from './middleware.js';
|
|
11
|
+
export { isValidEgressHost, checkPluginSpec, checkPluginConfig, pluginSpecRequiredFieldsProblem, PLUGIN_TYPES, PLUGIN_COMPUTE_TYPES, PLUGIN_FAILURE_BEHAVIORS, PLUGIN_BUILD_TYPES, PLUGIN_NAME_PATTERN, PLUGIN_VERSION_PATTERN, EGRESS_MAX_HOSTS, } from './plugin-spec-schema.js';
|
|
12
|
+
export { stripInlineMarkdown, readmeTitle, readmeFirstParagraph, firstSentence, detectCatalogMetadata, resolveCatalogMetadata, acceptAllCatalogMetadata, parseCatalogEdits, parseCatalogEditsPart, } from './plugin-catalog-detect.js';
|
|
13
|
+
export { parseLabelArgs, parseDockerfile, OCI_LABELS, } from './dockerfile-static.js';
|
|
14
|
+
export { isPluginTemplatableField, checkPluginTemplates, formatPluginTemplateIssue, PLUGIN_TEMPLATE_SCOPE_ROOTS, } from './plugin-template-contract.js';
|
|
15
|
+
export { lintPluginDockerfile, lintPluginSpec } from './plugin-lint.js';
|
|
16
|
+
export * from './plugin-base-images.js';
|
|
17
|
+
export { shannonEntropy, scanPluginSourceHeuristics, blockingHeuristics, HEURISTICS_MAX_FILE_BYTES, HEURISTICS_MAX_FINDINGS, } from './plugin-heuristics.js';
|
|
18
|
+
export { findConfusableName } from './plugin-name-confusable.js';
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdmFsaWRhdGlvbi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQ0FBK0M7QUFDL0Msc0NBQXNDO0FBRXRDLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsY0FBYyxFQUNkLGtCQUFrQixFQUNsQixnQkFBZ0IsR0FDakIsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLE9BQU8sRUFDTCw0QkFBNEIsRUFDNUIsNEJBQTRCLEVBQzVCLDRCQUE0QixFQUM1Qix5QkFBeUIsR0FDMUIsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN4QyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLE9BQU8sRUFDTCxlQUFlLEVBQ2YsaUJBQWlCLEVBQ2pCLG9CQUFvQixFQUNwQixnQkFBZ0IsRUFDaEIsbUJBQW1CLEVBQ25CLGdCQUFnQixFQUNoQixtQkFBbUIsRUFDbkIsZ0JBQWdCLEVBQ2hCLHdCQUF3QixFQUV4QixzQkFBc0IsR0FDdkIsTUFBTSw4QkFBOEIsQ0FBQztBQUN0QyxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixxQkFBcUIsRUFDckIsbUJBQW1CLEVBQ25CLDRCQUE0QixFQUM1QiwrQkFBK0IsRUFDL0IsbUJBQW1CLEVBQ25CLGtCQUFrQixFQUNsQixpQkFBaUIsR0FDbEIsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLE9BQU8sRUFDTCxRQUFRLEVBQ1IsYUFBYSxFQUNiLFlBQVksR0FDYixNQUFNLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsZUFBZSxFQUNmLGlCQUFpQixFQUNqQiwrQkFBK0IsRUFDL0IsWUFBWSxFQUNaLG9CQUFvQixFQUNwQix3QkFBd0IsRUFDeEIsa0JBQWtCLEVBRWxCLG1CQUFtQixFQUNuQixzQkFBc0IsRUFDdEIsZ0JBQWdCLEdBR2pCLE1BQU0seUJBQXlCLENBQUM7QUFDakMsT0FBTyxFQUNMLG1CQUFtQixFQUNuQixXQUFXLEVBQ1gsb0JBQW9CLEVBQ3BCLGFBQWEsRUFDYixxQkFBcUIsRUFDckIsc0JBQXNCLEVBQ3RCLHdCQUF3QixFQUN4QixpQkFBaUIsRUFDakIscUJBQXFCLEdBSXRCLE1BQU0sNEJBQTRCLENBQUM7QUFDcEMsT0FBTyxFQUNMLGNBQWMsRUFDZCxlQUFlLEVBQ2YsVUFBVSxHQUNYLE1BQU0sd0JBQXdCLENBQUM7QUFDaEMsT0FBTyxFQUNMLHdCQUF3QixFQUN4QixvQkFBb0IsRUFDcEIseUJBQXlCLEVBQ3pCLDJCQUEyQixHQUc1QixNQUFNLCtCQUErQixDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxjQUFjLEVBQTBCLE1BQU0sa0JBQWtCLENBQUM7QUFDaEcsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxPQUFPLEVBQ0wsY0FBYyxFQUNkLDBCQUEwQixFQUMxQixrQkFBa0IsRUFLbEIseUJBQXlCLEVBQ3pCLHVCQUF1QixHQUN4QixNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IDIwMjYgUGlwZWxpbmUgQnVpbGRlciBDb250cmlidXRvcnNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbmV4cG9ydCB7XG4gIFZpc2liaWxpdHlTY2hlbWEsXG4gIE1BWF9QQUdFX0xJTUlULFxuICBERUZBVUxUX1BBR0VfTElNSVQsXG4gIFVVSURQcmVmaXhTY2hlbWEsXG59IGZyb20gJy4vY29tbW9uLXNjaGVtYXMuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9waXBlbGluZS1zY2hlbWFzLmpzJztcbmV4cG9ydCB7XG4gIFBpcGVsaW5lVGVtcGxhdGVGaWx0ZXJTY2hlbWEsXG4gIFBpcGVsaW5lVGVtcGxhdGVDcmVhdGVTY2hlbWEsXG4gIFBpcGVsaW5lVGVtcGxhdGVVcGRhdGVTY2hlbWEsXG4gIEluc3RhbnRpYXRlVGVtcGxhdGVTY2hlbWEsXG59IGZyb20gJy4vcGlwZWxpbmUtdGVtcGxhdGUtc2NoZW1hcy5qcyc7XG5leHBvcnQgKiBmcm9tICcuL3BsdWdpbi1zY2hlbWFzLmpzJztcbmV4cG9ydCB7XG4gIGlzQWxsb3dlZFNwZHhJZCxcbiAgcHJvamVjdFVybFByb2JsZW0sXG4gIHZhbGlkYXRlQ2F0YWxvZ0ZpZWxkLFxuICBmaW5kQ29udHJhY3RLZXlzLFxuICBjb250cmFjdEtleXNNZXNzYWdlLFxuICBTUERYX0xJQ0VOU0VfSURTLFxuICBVUkxfU0hPUlRFTkVSX0hPU1RTLFxuICBJQ09OX0tFWV9QQVRURVJOLFxuICBQbHVnaW5DYXRhbG9nRWRpdHNTY2hlbWEsXG4gIHR5cGUgUGx1Z2luQ2F0YWxvZ0VkaXRzLFxuICBQTFVHSU5fQ09OVFJBQ1RfRklFTERTLFxufSBmcm9tICcuL3BsdWdpbi1jYXRhbG9nLW1ldGFkYXRhLmpzJztcbmV4cG9ydCB7XG4gIGlzQWxsb3dlZEF0dGFjaG1lbnRUeXBlLFxuICBNZXNzYWdlVHlwZVNjaGVtYSxcbiAgTWVzc2FnZVByaW9yaXR5U2NoZW1hLFxuICBNZXNzYWdlRmlsdGVyU2NoZW1hLFxuICBNRVNTQUdFX0FUVEFDSE1FTlRfTUFYX0JZVEVTLFxuICBNRVNTQUdFX0FUVEFDSE1FTlRfQUxMT1dFRF9NSU1FLFxuICBNZXNzYWdlQ3JlYXRlU2NoZW1hLFxuICBNZXNzYWdlUmVwbHlTY2hlbWEsXG4gIE1lc3NhZ2VFZGl0U2NoZW1hLFxufSBmcm9tICcuL21lc3NhZ2Utc2NoZW1hcy5qcyc7XG5leHBvcnQgKiBmcm9tICcuL2FpLXNjaGVtYXMuanMnO1xuZXhwb3J0IHtcbiAgdmFsaWRhdGUsXG4gIHZhbGlkYXRlUXVlcnksXG4gIHZhbGlkYXRlQm9keSxcbn0gZnJvbSAnLi9taWRkbGV3YXJlLmpzJztcbmV4cG9ydCB7XG4gIGlzVmFsaWRFZ3Jlc3NIb3N0LFxuICBjaGVja1BsdWdpblNwZWMsXG4gIGNoZWNrUGx1Z2luQ29uZmlnLFxuICBwbHVnaW5TcGVjUmVxdWlyZWRGaWVsZHNQcm9ibGVtLFxuICBQTFVHSU5fVFlQRVMsXG4gIFBMVUdJTl9DT01QVVRFX1RZUEVTLFxuICBQTFVHSU5fRkFJTFVSRV9CRUhBVklPUlMsXG4gIFBMVUdJTl9CVUlMRF9UWVBFUyxcbiAgdHlwZSBQbHVnaW5CdWlsZFR5cGUsXG4gIFBMVUdJTl9OQU1FX1BBVFRFUk4sXG4gIFBMVUdJTl9WRVJTSU9OX1BBVFRFUk4sXG4gIEVHUkVTU19NQVhfSE9TVFMsXG4gIHR5cGUgUGx1Z2luU3BlY0lucHV0LFxuICB0eXBlIFBhY2thZ2VDaGVjayxcbn0gZnJvbSAnLi9wbHVnaW4tc3BlYy1zY2hlbWEuanMnO1xuZXhwb3J0IHtcbiAgc3RyaXBJbmxpbmVNYXJrZG93bixcbiAgcmVhZG1lVGl0bGUsXG4gIHJlYWRtZUZpcnN0UGFyYWdyYXBoLFxuICBmaXJzdFNlbnRlbmNlLFxuICBkZXRlY3RDYXRhbG9nTWV0YWRhdGEsXG4gIHJlc29sdmVDYXRhbG9nTWV0YWRhdGEsXG4gIGFjY2VwdEFsbENhdGFsb2dNZXRhZGF0YSxcbiAgcGFyc2VDYXRhbG9nRWRpdHMsXG4gIHBhcnNlQ2F0YWxvZ0VkaXRzUGFydCxcbiAgdHlwZSBEZXRlY3RlZEZpZWxkLFxuICB0eXBlIENhdGFsb2dTcGVjRmllbGRzLFxuICB0eXBlIFJlc29sdmVkQ2F0YWxvZyxcbn0gZnJvbSAnLi9wbHVnaW4tY2F0YWxvZy1kZXRlY3QuanMnO1xuZXhwb3J0IHtcbiAgcGFyc2VMYWJlbEFyZ3MsXG4gIHBhcnNlRG9ja2VyZmlsZSxcbiAgT0NJX0xBQkVMUyxcbn0gZnJvbSAnLi9kb2NrZXJmaWxlLXN0YXRpYy5qcyc7XG5leHBvcnQge1xuICBpc1BsdWdpblRlbXBsYXRhYmxlRmllbGQsXG4gIGNoZWNrUGx1Z2luVGVtcGxhdGVzLFxuICBmb3JtYXRQbHVnaW5UZW1wbGF0ZUlzc3VlLFxuICBQTFVHSU5fVEVNUExBVEVfU0NPUEVfUk9PVFMsXG4gIHR5cGUgUGx1Z2luVGVtcGxhdGVFbmdpbmUsXG4gIHR5cGUgUGx1Z2luVGVtcGxhdGVJc3N1ZSxcbn0gZnJvbSAnLi9wbHVnaW4tdGVtcGxhdGUtY29udHJhY3QuanMnO1xuZXhwb3J0IHsgbGludFBsdWdpbkRvY2tlcmZpbGUsIGxpbnRQbHVnaW5TcGVjLCB0eXBlIFBsdWdpbkxpbnRGaW5kaW5nIH0gZnJvbSAnLi9wbHVnaW4tbGludC5qcyc7XG5leHBvcnQgKiBmcm9tICcuL3BsdWdpbi1iYXNlLWltYWdlcy5qcyc7XG5leHBvcnQge1xuICBzaGFubm9uRW50cm9weSxcbiAgc2NhblBsdWdpblNvdXJjZUhldXJpc3RpY3MsXG4gIGJsb2NraW5nSGV1cmlzdGljcyxcbiAgdHlwZSBIZXVyaXN0aWNTZXZlcml0eSxcbiAgdHlwZSBIZXVyaXN0aWNGaW5kaW5nLFxuICB0eXBlIEhldXJpc3RpY3NSZXBvcnQsXG4gIHR5cGUgSGV1cmlzdGljc0lucHV0RmlsZSxcbiAgSEVVUklTVElDU19NQVhfRklMRV9CWVRFUyxcbiAgSEVVUklTVElDU19NQVhfRklORElOR1MsXG59IGZyb20gJy4vcGx1Z2luLWhldXJpc3RpY3MuanMnO1xuZXhwb3J0IHsgZmluZENvbmZ1c2FibGVOYW1lIH0gZnJvbSAnLi9wbHVnaW4tbmFtZS1jb25mdXNhYmxlLmpzJztcbiJdfQ==
|
|
@@ -1,15 +1,17 @@
|
|
|
1
1
|
// Copyright 2026 Pipeline Builder Contributors
|
|
2
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
3
3
|
import { z } from 'zod';
|
|
4
|
+
import { MESSAGE_PRIORITIES, MESSAGE_TYPES } from '../types/wire-vocabulary.js';
|
|
4
5
|
import { BaseFilterSchema, BooleanQuerySchema } from './common-schemas.js';
|
|
6
|
+
import { envInt } from '../utils/env.js';
|
|
5
7
|
/**
|
|
6
8
|
* Message type schema
|
|
7
9
|
*/
|
|
8
|
-
export const MessageTypeSchema = z.enum(
|
|
10
|
+
export const MessageTypeSchema = z.enum(MESSAGE_TYPES);
|
|
9
11
|
/**
|
|
10
12
|
* Message priority schema
|
|
11
13
|
*/
|
|
12
|
-
export const MessagePrioritySchema = z.enum(
|
|
14
|
+
export const MessagePrioritySchema = z.enum(MESSAGE_PRIORITIES);
|
|
13
15
|
/**
|
|
14
16
|
* Channel/inbox-bucket schema. Open-ended string up to 50 chars so we
|
|
15
17
|
* can add new channels (support, help, billing, …) without a schema
|
|
@@ -58,7 +60,7 @@ export const MESSAGE_MAX_ATTACHMENTS = 5;
|
|
|
58
60
|
* (multer `fileSize`); kept here so the bound lives with the other message
|
|
59
61
|
* limits rather than only inline in the route.
|
|
60
62
|
*/
|
|
61
|
-
export const MESSAGE_ATTACHMENT_MAX_MB =
|
|
63
|
+
export const MESSAGE_ATTACHMENT_MAX_MB = envInt('MESSAGE_ATTACHMENT_MAX_MB', 10, { min: 1 });
|
|
62
64
|
export const MESSAGE_ATTACHMENT_MAX_BYTES = MESSAGE_ATTACHMENT_MAX_MB * 1024 * 1024;
|
|
63
65
|
/**
|
|
64
66
|
* Allow-list of attachment MIME types — common images + documents + zip/yaml/json.
|
|
@@ -153,4 +155,4 @@ export const MessageReplySchema = z.object({
|
|
|
153
155
|
export const MessageEditSchema = z.object({
|
|
154
156
|
content: z.string().min(1, 'Content is required').max(MESSAGE_CONTENT_MAX, `Content must be at most ${MESSAGE_CONTENT_MAX} characters`),
|
|
155
157
|
});
|
|
156
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS1zY2hlbWFzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3ZhbGlkYXRpb24vbWVzc2FnZS1zY2hlbWFzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtDQUErQztBQUMvQyxzQ0FBc0M7QUFFdEMsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUN4QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUUzRTs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxjQUFjLEVBQUUsY0FBYyxDQUFDLENBQUMsQ0FBQztBQUUxRTs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7QUFFMUU7Ozs7O0dBS0c7QUFDSCxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLENBQUM7QUFFckY7Ozs7Ozs7Ozs7Ozs7R0FhRztBQUNILE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLGdCQUFnQixDQUFDLE1BQU0sQ0FBQztJQUN6RCxRQUFRLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFO0lBQzlFLGNBQWMsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFD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QjtDQUNuQyxDQUFDLENBQUM7QUFFSDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDekMsT0FBTyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLHFCQUFxQixDQUFDLENBQUMsR0FBRyxDQUFDLG1CQUFtQixFQUFFLDJCQUEyQixtQkFBbUIsYUFBYSxDQUFDO0lBQ3ZJLGFBQWEsRUFBRSxtQkFBbUI7Q0FDbkMsQ0FBQyxDQUFDO0FBRUg7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDeEMsT0FBTyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLHFCQUFxQixDQUFDLENBQUMsR0FBRyxDQUFDLG1CQUFtQixFQUFFLDJCQUEyQixtQkFBbUIsYUFBYSxDQUFDO0NBQ3hJLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG5pbXBvcnQgeyB6IH0gZnJvbSAnem9kJztcbmltcG9ydCB7IEJhc2VGaWx0ZXJTY2hlbWEsIEJvb2xlYW5RdWVyeVNjaGVtYSB9IGZyb20gJy4vY29tbW9uLXNjaGVtYXMuanMnO1xuXG4vKipcbiAqIE1lc3NhZ2UgdHlwZSBzY2hlbWFcbiAqL1xuZXhwb3J0IGNvbnN0IE1lc3NhZ2VUeXBlU2NoZW1hID0gei5lbnVtKFsnYW5ub3VuY2VtZW50JywgJ2NvbnZlcnNhdGlvbiddKTtcblxuLyoqXG4gKiBNZXNzYWdlIHByaW9yaXR5IHNjaGVtYVxuICovXG5leHBvcnQgY29uc3QgTWVzc2FnZVByaW9yaXR5U2NoZW1hID0gei5lbnVtKFsnbm9ybWFsJywgJ2hpZ2gnLCAndXJnZW50J10pO1xuXG4vKipcbiAqIENoYW5uZWwvaW5ib3gtYnVja2V0IHNjaGVtYS4gT3Blbi1lbmRlZCBzdHJpbmcgdXAgdG8gNTAgY2hhcnMgc28gd2VcbiAqIGNhbiBhZGQgbmV3IGNoYW5uZWxzIChzdXBwb3J0LCBoZWxwLCBiaWxsaW5nLCDigKYpIHdpdGhvdXQgYSBzY2hlbWFcbiAqIG1pZ3JhdGlvbi4gQ29uc3RyYWluZWQgdG8gYS16LzAtOS9kYXNoL3VuZGVyc2NvcmUgZm9yIFVSTCBzYWZldHkgYW5kXG4gKiB0byBrZWVwIGZpbHRlciBjb25kaXRpb25zIHRyaXZpYWxseSBpbmRleGFibGUuXG4gKi9cbmV4cG9ydCBjb25zdCBNZXNzYWdlQ2hhbm5lbFNjaGVtYSA9IHouc3RyaW5nKCkubWluKDEpLm1heCg1MCkucmVnZXgoL15bYS16MC05Xy1dKyQvKTtcblxuLyoqXG4gKiBNZXNzYWdlIGZpbHRlciBzY2hlbWEgZm9yIHF1ZXJ5IHBhcmFtZXRlcnMuXG4gKlxuICogQ29udmVudGlvbiBmb3IgYHRocmVhZElkYDpcbiAqIC0gT21pdHRlZCAodW5kZWZpbmVkKTogbm8gZmlsdGVyIGFwcGxpZWQg4oCUIHJldHVybnMgbWVzc2FnZXMgcmVnYXJkbGVzcyBvZiB0aHJlYWQuXG4gKiAtIGAncm9vdCdgIG9yIGBudWxsYDogZmlsdGVyIGZvciByb290IG1lc3NhZ2VzIG9ubHkgKHRyYW5zbGF0ZWQgdG8gYHRocmVhZElkIElTIE5VTExgXG4gKiAgIGJ5IHRoZSByb3V0ZSBsYXllciAvIHF1ZXJ5IGJ1aWxkZXIpLiBUaGUgc3RyaW5nIHNlbnRpbmVsIGAncm9vdCdgIGlzIHRoZVxuICogICB3aXJlIGZvcm0sIHNpbmNlIFVSTCBxdWVyeSBwYXJhbXMgY2FuJ3QgY2FycnkgYSB0cnVlIGBudWxsYC5cbiAqIC0gQSBVVUlEOiBmaWx0ZXIgZm9yIG1lc3NhZ2VzIGluIHRoYXQgc3BlY2lmaWMgdGhyZWFkLlxuICpcbiAqIGBpc1JlYWRgIGlzIGhvbm9yZWQgYnkgYGJ1aWxkTWVzc2FnZUNvbmRpdGlvbnNgIGluIHBpcGVsaW5lLWRhdGEgdmlhIGFcbiAqIGBqc29uYl9leGlzdHMocmVhZF9ieSwgJG9yZ0lkKWAgY2hlY2sgb24gYG1lc3NhZ2VzLnJlYWRfYnlgIGZvciB0aGUgcmVxdWVzdGluZ1xuICogb3JnICh0aGUgZnVuY3Rpb24gZm9ybSwgbm90IHRoZSBgP2Agb3BlcmF0b3IsIHRvIGF2b2lkIHBhcmFtLWJpbmRpbmcgY2xhc2hlcykuXG4gKi9cbmV4cG9ydCBjb25zdCBNZXNzYWdlRmlsdGVyU2NoZW1hID0gQmFzZUZpbHRlclNjaGVtYS5leHRlbmQoe1xuICB0aHJlYWRJZDogei51bmlvbihbei5zdHJpbmcoKS51dWlkKCksIHoubGl0ZXJhbCgncm9vdCcpLCB6Lm51bGwoKV0pLm9wdGlvbmFsKCksXG4gIHJlY2lwaWVudE9yZ0lkOiB6LnN0cmluZygpLm1pbigxKS5vcHRpb25hbCgpLFxuICBtZXNzYWdlVHlwZTogTWVzc2FnZVR5cGVTY2hlbWEub3B0aW9uYWwoKSxcbiAgaXNSZWFkOiBCb29sZWFuUXVlcnlTY2hlbWEub3B0aW9uYWwoKSxcbiAgcHJpb3JpdHk6IE1lc3NhZ2VQcmlvcml0eVNjaGVtYS5vcHRpb25hbCgpLFxuICBjaGFubmVsOiBNZXNzYWdlQ2hhbm5lbFNjaGVtYS5vcHRpb25hbCgpLFxuICAvLyBGcmVlLXRleHQgaW5ib3ggc2VhcmNoIG92ZXIgc3ViamVjdC9jb250ZW50LiBCb3VuZGVkIHNvIGEgcGF0aG9sb2dpY2FsIHRlcm1cbiAgLy8gY2FuJ3QgYmxvdyB1cCB0aGUgTElLRTsgdGhlIHF1ZXJ5IGJ1aWxkZXIgZXNjYXBlcyB3aWxkY2FyZHMgKyBpZ25vcmVzIGJsYW5rcy5cbiAgc2VhcmNoOiB6LnN0cmluZygpLnRyaW0oKS5taW4oMSkubWF4KDIwMCkub3B0aW9uYWwoKSxcbn0pO1xuXG4vKipcbiAqIFVwcGVyIGJvdW5kcyBvbiBmcmVlLXRleHQgbWVzc2FnZSBmaWVsZHMuIFdpdGhvdXQgdGhlc2UgYW4gdW5ib3VuZGVkXG4gKiBzdWJqZWN0L2NvbnRlbnQgKGUuZy4gYSAxTUIgYW5ub3VuY2VtZW50KSBpcyBwZXJzaXN0ZWQgQU5EIFNTRS1icm9hZGNhc3QgdG9cbiAqIGV2ZXJ5IG9yZy4gYHN1YmplY3RgIG1hdGNoZXMgdGhlIGB2YXJjaGFyKDUwMClgIERCIGNvbHVtbiBzbyB3ZSByZWplY3QgcmF0aGVyXG4gKiB0aGFuIHNpbGVudGx5IHRydW5jYXRlOyBgY29udGVudGAgaXMgYSBgdGV4dGAgY29sdW1uIHdpdGggbm8gREIgYm91bmQsIHNvIHdlXG4gKiBjYXAgaXQgYXQgYSBzYW5lIDMyIEtpQiBhdCB0aGUgYXBwIGxheWVyLlxuICovXG5leHBvcnQgY29uc3QgTUVTU0FHRV9TVUJKRUNUX01BWCA9IDUwMDtcbmV4cG9ydCBjb25zdCBNRVNTQUdFX0NPTlRFTlRfTUFYID0gMzI3Njg7XG5cbi8qKiBNYXggYXR0YWNobWVudHMgbGlua2FibGUgdG8gYSBzaW5nbGUgbWVzc2FnZS9yZXBseS4gKi9cbmV4cG9ydCBjb25zdCBNRVNTQUdFX01BWF9BVFRBQ0hNRU5UUyA9IDU7XG5cbi8qKlxuICogTWF4IGF0dGFjaG1lbnQgc2l6ZSAoTWlCKSDigJQgZW52LW92ZXJyaWRhYmxlLiBUaGUgdXBsb2FkIHJvdXRlIGVuZm9yY2VzIHRoaXNcbiAqIChtdWx0ZXIgYGZpbGVTaXplYCk7IGtlcHQgaGVyZSBzbyB0aGUgYm91bmQgbGl2ZXMgd2l0aCB0aGUgb3RoZXIgbWVzc2FnZVxuICogbGltaXRzIHJhdGhlciB0aGFuIG9ubHkgaW5saW5lIGluIHRoZSByb3V0ZS5cbiAqL1xuZXhwb3J0IGNvbnN0IE1FU1NBR0VfQVRUQUNITUVOVF9NQVhfTUIgPSBNYXRoLm1heCgxLCBOdW1iZXIucGFyc2VJbnQocHJvY2Vzcy5lbnYuTUVTU0FHRV9BVFRBQ0hNRU5UX01BWF9NQiA/PyAnMTAnLCAxMCkgfHwgMTApO1xuZXhwb3J0IGNvbnN0IE1FU1NBR0VfQVRUQUNITUVOVF9NQVhfQllURVMgPSBNRVNTQUdFX0FUVEFDSE1FTlRfTUFYX01CICogMTAyNCAqIDEwMjQ7XG5cbi8qKlxuICogQWxsb3ctbGlzdCBvZiBhdHRhY2htZW50IE1JTUUgdHlwZXMg4oCUIGNvbW1vbiBpbWFnZXMgKyBkb2N1bWVudHMgKyB6aXAveWFtbC9qc29uLlxuICogRGVsaWJlcmF0ZWx5IGV4Y2x1ZGVzIGV4ZWN1dGFibGVzL3NjcmlwdHMvSFRNTC9TVkcgKHN0b3JlZC1YU1MgLyBkcml2ZS1ieSkuXG4gKiB6aXAgaXMgYSBkb3dubG9hZCBjb250YWluZXIgKGRvZXNuJ3QgcmVuZGVyIGluLWJyb3dzZXIpOyB5YW1sL2pzb24gYXJlIHBsYWluXG4gKiB0ZXh0IOKAlCBub25lIGNhcnJ5IHRoZSBkcml2ZS1ieSByaXNrIG9mIHRoZSBleGNsdWRlZCB0eXBlcy4gRXh0ZW5kIGhlcmUuXG4gKi9cbmV4cG9ydCBjb25zdCBNRVNTQUdFX0FUVEFDSE1FTlRfQUxMT1dFRF9NSU1FOiBSZWFkb25seVNldDxzdHJpbmc+ID0gbmV3IFNldChbXG4gICdpbWFnZS9wbmcnLCAnaW1hZ2UvanBlZycsICdpbWFnZS9naWYnLCAnaW1hZ2Uvd2VicCcsXG4gICdhcHBsaWNhdGlvbi9wZGYnLCAndGV4dC9wbGFpbicsICd0ZXh0L2NzdicsXG4gICdhcHBsaWNhdGlvbi9tc3dvcmQnLFxuICAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LndvcmRwcm9jZXNzaW5nbWwuZG9jdW1lbnQnLFxuICAnYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsJyxcbiAgJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0JyxcbiAgJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC5wcmVzZW50YXRpb24nLFxuICAvLyBBcmNoaXZlcyAoemlwIC8gZ3ogLyB0YXIgLyB0YXIuZ3opIOKAlCBicm93c2VycyByZXBvcnQgdGhlc2UgdmFyaW91c2x5IGJ5IE9TO1xuICAvLyBjb3ZlciB0aGUgY29tbW9uIHZhcmlhbnRzLiBUaGV5IGRvd25sb2FkIHJhdGhlciB0aGFuIHJlbmRlciBpbi1icm93c2VyLlxuICAnYXBwbGljYXRpb24vemlwJywgJ2FwcGxpY2F0aW9uL3gtemlwLWNvbXByZXNzZWQnLFxuICAnYXBwbGljYXRpb24vZ3ppcCcsICdhcHBsaWNhdGlvbi94LWd6aXAnLFxuICAnYXBwbGljYXRpb24veC10YXInLCAnYXBwbGljYXRpb24vdGFyJyxcbiAgJ2FwcGxpY2F0aW9uL3gtY29tcHJlc3NlZC10YXInLFxuICAvLyBqc29uIChicm93c2VycyBtYXkgc2VuZCBhcHBsaWNhdGlvbi9qc29uIG9yIHRleHQvanNvbikuXG4gICdhcHBsaWNhdGlvbi9qc29uJywgJ3RleHQvanNvbicsXG4gIC8vIHlhbWwveW1sIOKAlCBubyBzaW5nbGUgcmVnaXN0ZXJlZCB0eXBlOyBjb3ZlciB0aGUgY29tbW9uIHZhcmlhbnRzLlxuICAnYXBwbGljYXRpb24veC15YW1sJywgJ2FwcGxpY2F0aW9uL3lhbWwnLCAndGV4dC95YW1sJywgJ3RleHQveC15YW1sJyxcbl0pO1xuXG4vKipcbiAqIFNhZmUgZmlsZW5hbWUgZXh0ZW5zaW9ucy4gQnJvd3NlcnMgZnJlcXVlbnRseSBzZW5kIGBhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW1gXG4gKiBmb3IgYXJjaGl2ZXMgKyBjb25maWcgZmlsZXMgKC50YXIvLmd6Ly50Z3ovLnlhbWwv4oCmKSBiZWNhdXNlIHRoZXkgaGF2ZSBub1xuICogcmVsaWFibGUgcmVnaXN0ZXJlZCBNSU1FIHR5cGUsIHNvIHRoZSBNSU1FIGFsbG93LWxpc3QgYWxvbmUgcmVqZWN0cyB0aGVtLiBUaGVzZVxuICogZXh0ZW5zaW9ucyBhcmUgYWNjZXB0ZWQgYXMgYSBmYWxsYmFjayBPTkxZIHdoZW4gdGhlIHJlcG9ydGVkIE1JTUUgaXMgdGhhdFxuICogZ2VuZXJpYyB0eXBlIChzZWUgaXNBbGxvd2VkQXR0YWNobWVudFR5cGUpIOKAlCBzbyBhIGtub3duIHJlbmRlci9leGVjdXRlIE1JTUVcbiAqIChpbWFnZS9zdmcreG1sLCB0ZXh0L2h0bWwsIOKApikgaXMgbmV2ZXIgcmVzY3VlZCBieSBhIHNwb29mZWQgZXh0ZW5zaW9uLiBTdGlsbFxuICogZXhjbHVkZXMgLmh0bWwvLnN2Zy8uanMvLmV4ZS/igKYgKG5ldmVyIGxpc3RlZCBoZXJlKS5cbiAqL1xuZXhwb3J0IGNvbnN0IE1FU1NBR0VfQVRUQUNITUVOVF9BTExPV0VEX0VYVDogUmVhZG9ubHlTZXQ8c3RyaW5nPiA9IG5ldyBTZXQoW1xuICAnLnBuZycsICcuanBnJywgJy5qcGVnJywgJy5naWYnLCAnLndlYnAnLFxuICAnLnBkZicsICcudHh0JywgJy5jc3YnLCAnLmRvYycsICcuZG9jeCcsICcueGxzJywgJy54bHN4JywgJy5wcHQnLCAnLnBwdHgnLFxuICAnLnppcCcsICcuZ3onLCAnLnRneicsICcudGFyJywgJy5qc29uJywgJy55YW1sJywgJy55bWwnLFxuXSk7XG5cbi8qKlxuICogVHJ1ZSBpZiBhbiBhdHRhY2htZW50IGlzIGFjY2VwdGVkLiBBY2NlcHRzIGJ5IE1JTUUgYWxsb3ctbGlzdCwgT1Ig4oCUIHdoZW4gdGhlXG4gKiBicm93c2VyIHJlcG9ydHMgdGhlIGdlbmVyaWMgYGFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbWAgKHVua25vd24gYmluYXJ5KSDigJQgYnkgYVxuICogc2FmZSBmaWxlbmFtZSBleHRlbnNpb24uIG9jdGV0LXN0cmVhbSBpcyBzZXJ2ZWQgYXMgYSBkb3dubG9hZCAobmV2ZXIgcmVuZGVyZWQpLFxuICogc28gdGhlIGV4dGVuc2lvbiBmYWxsYmFjayBjYW4ndCB0dXJuIGludG8gYSBzdG9yZWQtWFNTIHZlY3Rvci5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzQWxsb3dlZEF0dGFjaG1lbnRUeXBlKG1pbWV0eXBlOiBzdHJpbmcsIGZpbGVuYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgaWYgKE1FU1NBR0VfQVRUQUNITUVOVF9BTExPV0VEX01JTUUuaGFzKG1pbWV0eXBlKSkgcmV0dXJuIHRydWU7XG4gIGlmIChtaW1ldHlwZSAhPT0gJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbScpIHJldHVybiBmYWxzZTtcbiAgY29uc3QgZG90ID0gKGZpbGVuYW1lIHx8ICcnKS5sYXN0SW5kZXhPZignLicpO1xuICBpZiAoZG90IDwgMCkgcmV0dXJuIGZhbHNlO1xuICByZXR1cm4gTUVTU0FHRV9BVFRBQ0hNRU5UX0FMTE9XRURfRVhULmhhcyhmaWxlbmFtZS5zbGljZShkb3QpLnRvTG93ZXJDYXNlKCkpO1xufVxuXG4vKiogQXR0YWNobWVudCBtZXRhZGF0YSBEVE8gcmV0dXJuZWQgdG8gY2xpZW50cyAobmV2ZXIgZXhwb3NlcyB0aGUgc3RvcmFnZSBrZXkpLiAqL1xuZXhwb3J0IGludGVyZmFjZSBNZXNzYWdlQXR0YWNobWVudERUTyB7XG4gIGlkOiBzdHJpbmc7XG4gIGZpbGVuYW1lOiBzdHJpbmc7XG4gIGNvbnRlbnRUeXBlOiBzdHJpbmc7XG4gIHNpemVCeXRlczogbnVtYmVyO1xufVxuXG4vKipcbiAqIEF0dGFjaG1lbnQgaWRzIHRvIGxpbmsgdG8gYSBtZXNzYWdlLiBFYWNoIGlzIHRoZSBpZCByZXR1cm5lZCBieSBhIHByaW9yXG4gKiBQT1NUIC9tZXNzYWdlcy9hdHRhY2htZW50cyB1cGxvYWQ7IHRoZSBjcmVhdGUgcm91dGUgbGlua3Mgb25seSBpZHMgdGhhdCBiZWxvbmdcbiAqIHRvIHRoZSBjYWxsZXIgKG93biBvcmcgKyB1cGxvYWRlcikgYW5kIGFyZSBzdGlsbCB1bmF0dGFjaGVkLlxuICovXG5jb25zdCBBdHRhY2htZW50SWRzU2NoZW1hID0gei5hcnJheSh6LnN0cmluZygpLnV1aWQoKSkubWF4KE1FU1NBR0VfTUFYX0FUVEFDSE1FTlRTKS5vcHRpb25hbCgpO1xuXG4vKipcbiAqIE1lc3NhZ2UgY3JlYXRpb24gc2NoZW1hXG4gKi9cbmV4cG9ydCBjb25zdCBNZXNzYWdlQ3JlYXRlU2NoZW1hID0gei5vYmplY3Qoe1xuICByZWNpcGllbnRPcmdJZDogei5zdHJpbmcoKS5taW4oMSwgJ1JlY2lwaWVudCBvcmdhbml6YXRpb24gSUQgaXMgcmVxdWlyZWQnKSxcbiAgLy8gT3B0aW9uYWwgcGVyLXVzZXIgdGFyZ2V0aW5nIFdJVEhJTiByZWNpcGllbnRPcmdJZC4gV2hlbiBzZXQsIG9ubHkgdGhpcyB1c2VyXG4gIC8vIHNlZXMgdGhlIGNvbnZlcnNhdGlvbiAoZW5mb3JjZWQgaW4gYnVpbGRNZXNzYWdlQ29uZGl0aW9ucykuIENvbnZlcnNhdGlvbi1vbmx5XG4gIC8vIGFuZCByZXF1aXJlcyBhIGNvbmNyZXRlIHJlY2lwaWVudCBvcmcg4oCUIHRoZSByb3V0ZSByZWplY3RzIGl0IG9uIGFubm91bmNlbWVudHNcbiAgLy8gYW5kICcqJyBicm9hZGNhc3RzLiBCb3VuZGVkIHRvIHRoZSByZWNpcGllbnRfdXNlcl9pZCBjb2x1bW4gd2lkdGguXG4gIHJlY2lwaWVudFVzZXJJZDogei5zdHJpbmcoKS5taW4oMSkubWF4KDI1NSkub3B0aW9uYWwoKSxcbiAgbWVzc2FnZVR5cGU6IE1lc3NhZ2VUeXBlU2NoZW1hLm9wdGlvbmFsKCkuZGVmYXVsdCgnY29udmVyc2F0aW9uJyksXG4gIGNoYW5uZWw6IE1lc3NhZ2VDaGFubmVsU2NoZW1hLm9wdGlvbmFsKCksXG4gIHN1YmplY3Q6IHouc3RyaW5nKCkubWluKDEsICdTdWJqZWN0IGlzIHJlcXVpcmVkJykubWF4KE1FU1NBR0VfU1VCSkVDVF9NQVgsIGBTdWJqZWN0IG11c3QgYmUgYXQgbW9zdCAke01FU1NBR0VfU1VCSkVDVF9NQVh9IGNoYXJhY3RlcnNgKSxcbiAgY29udGVudDogei5zdHJpbmcoKS5taW4oMSwgJ0NvbnRlbnQgaXMgcmVxdWlyZWQnKS5tYXgoTUVTU0FHRV9DT05URU5UX01BWCwgYENvbnRlbnQgbXVzdCBiZSBhdCBtb3N0ICR7TUVTU0FHRV9DT05URU5UX01BWH0gY2hhcmFjdGVyc2ApLFxuICBwcmlvcml0eTogTWVzc2FnZVByaW9yaXR5U2NoZW1hLm9wdGlvbmFsKCkuZGVmYXVsdCgnbm9ybWFsJyksXG4gIGF0dGFjaG1lbnRJZHM6IEF0dGFjaG1lbnRJZHNTY2hlbWEsXG59KTtcblxuLyoqXG4gKiBNZXNzYWdlIHJlcGx5IHNjaGVtYVxuICovXG5leHBvcnQgY29uc3QgTWVzc2FnZVJlcGx5U2NoZW1hID0gei5vYmplY3Qoe1xuICBjb250ZW50OiB6LnN0cmluZygpLm1pbigxLCAnQ29udGVudCBpcyByZXF1aXJlZCcpLm1heChNRVNTQUdFX0NPTlRFTlRfTUFYLCBgQ29udGVudCBtdXN0IGJlIGF0IG1vc3QgJHtNRVNTQUdFX0NPTlRFTlRfTUFYfSBjaGFyYWN0ZXJzYCksXG4gIGF0dGFjaG1lbnRJZHM6IEF0dGFjaG1lbnRJZHNTY2hlbWEsXG59KTtcblxuLyoqXG4gKiBFZGl0IGFuIGFscmVhZHktc2VudCBtZXNzYWdlJ3MgQ09OVEVOVCAoYXV0aG9yLW9ubHksIGVuZm9yY2VkIHNlcnZlci1zaWRlKS5cbiAqIE9ubHkgdGhlIGJvZHkgaXMgZWRpdGFibGUg4oCUIHN1YmplY3QvcmVjaXBpZW50L3R5cGUvYXR0YWNobWVudHMgYXJlIGltbXV0YWJsZVxuICogYWZ0ZXIgc2VuZCAoY2hhbmdpbmcgdGhlbSB3b3VsZCByZXdyaXRlIHRoZSBjb252ZXJzYXRpb24ncyByb3V0aW5nL21lYW5pbmcpLlxuICovXG5leHBvcnQgY29uc3QgTWVzc2FnZUVkaXRTY2hlbWEgPSB6Lm9iamVjdCh7XG4gIGNvbnRlbnQ6IHouc3RyaW5nKCkubWluKDEsICdDb250ZW50IGlzIHJlcXVpcmVkJykubWF4KE1FU1NBR0VfQ09OVEVOVF9NQVgsIGBDb250ZW50IG11c3QgYmUgYXQgbW9zdCAke01FU1NBR0VfQ09OVEVOVF9NQVh9IGNoYXJhY3RlcnNgKSxcbn0pO1xuIl19
|
|
158
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS1zY2hlbWFzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3ZhbGlkYXRpb24vbWVzc2FnZS1zY2hlbWFzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtDQUErQztBQUMvQyxzQ0FBc0M7QUFFdEMsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUN4QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsYUFBYSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDaEYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGtCQUFrQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDM0UsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXpDOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztBQUV2RDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztBQUVoRTs7Ozs7R0FLRztBQUNILE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsQ0FBQztBQUVyRjs7Ozs7Ozs7Ozs7OztHQWFHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsZ0JBQWdCLENBQUMsTUFBTSxDQUFDO0lBQ3pELFFBQVEsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUU7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bkMsQ0FBQyxDQUFDO0FBRUg7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQ3pDLE9BQU8sRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxxQkFBcUIsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsRUFBRSwyQkFBMkIsbUJBQW1CLGFBQWEsQ0FBQztJQUN2SSxhQUFhLEVBQUUsbUJBQW1CO0NBQ25DLENBQUMsQ0FBQztBQUVIOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQ3hDLE9BQU8sRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxxQkFBcUIsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsRUFBRSwyQkFBMkIsbUJBQW1CLGFBQWEsQ0FBQztDQUN4SSxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgMjAyNiBQaXBlbGluZSBCdWlsZGVyIENvbnRyaWJ1dG9yc1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuaW1wb3J0IHsgeiB9IGZyb20gJ3pvZCc7XG5pbXBvcnQgeyBNRVNTQUdFX1BSSU9SSVRJRVMsIE1FU1NBR0VfVFlQRVMgfSBmcm9tICcuLi90eXBlcy93aXJlLXZvY2FidWxhcnkuanMnO1xuaW1wb3J0IHsgQmFzZUZpbHRlclNjaGVtYSwgQm9vbGVhblF1ZXJ5U2NoZW1hIH0gZnJvbSAnLi9jb21tb24tc2NoZW1hcy5qcyc7XG5pbXBvcnQgeyBlbnZJbnQgfSBmcm9tICcuLi91dGlscy9lbnYuanMnO1xuXG4vKipcbiAqIE1lc3NhZ2UgdHlwZSBzY2hlbWFcbiAqL1xuZXhwb3J0IGNvbnN0IE1lc3NhZ2VUeXBlU2NoZW1hID0gei5lbnVtKE1FU1NBR0VfVFlQRVMpO1xuXG4vKipcbiAqIE1lc3NhZ2UgcHJpb3JpdHkgc2NoZW1hXG4gKi9cbmV4cG9ydCBjb25zdCBNZXNzYWdlUHJpb3JpdHlTY2hlbWEgPSB6LmVudW0oTUVTU0FHRV9QUklPUklUSUVTKTtcblxuLyoqXG4gKiBDaGFubmVsL2luYm94LWJ1Y2tldCBzY2hlbWEuIE9wZW4tZW5kZWQgc3RyaW5nIHVwIHRvIDUwIGNoYXJzIHNvIHdlXG4gKiBjYW4gYWRkIG5ldyBjaGFubmVscyAoc3VwcG9ydCwgaGVscCwgYmlsbGluZywg4oCmKSB3aXRob3V0IGEgc2NoZW1hXG4gKiBtaWdyYXRpb24uIENvbnN0cmFpbmVkIHRvIGEtei8wLTkvZGFzaC91bmRlcnNjb3JlIGZvciBVUkwgc2FmZXR5IGFuZFxuICogdG8ga2VlcCBmaWx0ZXIgY29uZGl0aW9ucyB0cml2aWFsbHkgaW5kZXhhYmxlLlxuICovXG5leHBvcnQgY29uc3QgTWVzc2FnZUNoYW5uZWxTY2hlbWEgPSB6LnN0cmluZygpLm1pbigxKS5tYXgoNTApLnJlZ2V4KC9eW2EtejAtOV8tXSskLyk7XG5cbi8qKlxuICogTWVzc2FnZSBmaWx0ZXIgc2NoZW1hIGZvciBxdWVyeSBwYXJhbWV0ZXJzLlxuICpcbiAqIENvbnZlbnRpb24gZm9yIGB0aHJlYWRJZGA6XG4gKiAtIE9taXR0ZWQgKHVuZGVmaW5lZCk6IG5vIGZpbHRlciBhcHBsaWVkIOKAlCByZXR1cm5zIG1lc3NhZ2VzIHJlZ2FyZGxlc3Mgb2YgdGhyZWFkLlxuICogLSBgJ3Jvb3QnYCBvciBgbnVsbGA6IGZpbHRlciBmb3Igcm9vdCBtZXNzYWdlcyBvbmx5ICh0cmFuc2xhdGVkIHRvIGB0aHJlYWRJZCBJUyBOVUxMYFxuICogICBieSB0aGUgcm91dGUgbGF5ZXIgLyBxdWVyeSBidWlsZGVyKS4gVGhlIHN0cmluZyBzZW50aW5lbCBgJ3Jvb3QnYCBpcyB0aGVcbiAqICAgd2lyZSBmb3JtLCBzaW5jZSBVUkwgcXVlcnkgcGFyYW1zIGNhbid0IGNhcnJ5IGEgdHJ1ZSBgbnVsbGAuXG4gKiAtIEEgVVVJRDogZmlsdGVyIGZvciBtZXNzYWdlcyBpbiB0aGF0IHNwZWNpZmljIHRocmVhZC5cbiAqXG4gKiBgaXNSZWFkYCBpcyBob25vcmVkIGJ5IGBidWlsZE1lc3NhZ2VDb25kaXRpb25zYCBpbiBwaXBlbGluZS1kYXRhIHZpYSBhXG4gKiBganNvbmJfZXhpc3RzKHJlYWRfYnksICRvcmdJZClgIGNoZWNrIG9uIGBtZXNzYWdlcy5yZWFkX2J5YCBmb3IgdGhlIHJlcXVlc3RpbmdcbiAqIG9yZyAodGhlIGZ1bmN0aW9uIGZvcm0sIG5vdCB0aGUgYD9gIG9wZXJhdG9yLCB0byBhdm9pZCBwYXJhbS1iaW5kaW5nIGNsYXNoZXMpLlxuICovXG5leHBvcnQgY29uc3QgTWVzc2FnZUZpbHRlclNjaGVtYSA9IEJhc2VGaWx0ZXJTY2hlbWEuZXh0ZW5kKHtcbiAgdGhyZWFkSWQ6IHoudW5pb24oW3ouc3RyaW5nKCkudXVpZCgpLCB6LmxpdGVyYWwoJ3Jvb3QnKSwgei5udWxsKCldKS5vcHRpb25hbCgpLFxuICByZWNpcGllbnRPcmdJZDogei5zdHJpbmcoKS5taW4oMSkub3B0aW9uYWwoKSxcbiAgbWVzc2FnZVR5cGU6IE1lc3NhZ2VUeXBlU2NoZW1hLm9wdGlvbmFsKCksXG4gIGlzUmVhZDogQm9vbGVhblF1ZXJ5U2NoZW1hLm9wdGlvbmFsKCksXG4gIHByaW9yaXR5OiBNZXNzYWdlUHJpb3JpdHlTY2hlbWEub3B0aW9uYWwoKSxcbiAgY2hhbm5lbDogTWVzc2FnZUNoYW5uZWxTY2hlbWEub3B0aW9uYWwoKSxcbiAgLy8gRnJlZS10ZXh0IGluYm94IHNlYXJjaCBvdmVyIHN1YmplY3QvY29udGVudC4gQm91bmRlZCBzbyBhIHBhdGhvbG9naWNhbCB0ZXJtXG4gIC8vIGNhbid0IGJsb3cgdXAgdGhlIExJS0U7IHRoZSBxdWVyeSBidWlsZGVyIGVzY2FwZXMgd2lsZGNhcmRzICsgaWdub3JlcyBibGFua3MuXG4gIHNlYXJjaDogei5zdHJpbmcoKS50cmltKCkubWluKDEpLm1heCgyMDApLm9wdGlvbmFsKCksXG59KTtcblxuLyoqXG4gKiBVcHBlciBib3VuZHMgb24gZnJlZS10ZXh0IG1lc3NhZ2UgZmllbGRzLiBXaXRob3V0IHRoZXNlIGFuIHVuYm91bmRlZFxuICogc3ViamVjdC9jb250ZW50IChlLmcuIGEgMU1CIGFubm91bmNlbWVudCkgaXMgcGVyc2lzdGVkIEFORCBTU0UtYnJvYWRjYXN0IHRvXG4gKiBldmVyeSBvcmcuIGBzdWJqZWN0YCBtYXRjaGVzIHRoZSBgdmFyY2hhcig1MDApYCBEQiBjb2x1bW4gc28gd2UgcmVqZWN0IHJhdGhlclxuICogdGhhbiBzaWxlbnRseSB0cnVuY2F0ZTsgYGNvbnRlbnRgIGlzIGEgYHRleHRgIGNvbHVtbiB3aXRoIG5vIERCIGJvdW5kLCBzbyB3ZVxuICogY2FwIGl0IGF0IGEgc2FuZSAzMiBLaUIgYXQgdGhlIGFwcCBsYXllci5cbiAqL1xuZXhwb3J0IGNvbnN0IE1FU1NBR0VfU1VCSkVDVF9NQVggPSA1MDA7XG5leHBvcnQgY29uc3QgTUVTU0FHRV9DT05URU5UX01BWCA9IDMyNzY4O1xuXG4vKiogTWF4IGF0dGFjaG1lbnRzIGxpbmthYmxlIHRvIGEgc2luZ2xlIG1lc3NhZ2UvcmVwbHkuICovXG5leHBvcnQgY29uc3QgTUVTU0FHRV9NQVhfQVRUQUNITUVOVFMgPSA1O1xuXG4vKipcbiAqIE1heCBhdHRhY2htZW50IHNpemUgKE1pQikg4oCUIGVudi1vdmVycmlkYWJsZS4gVGhlIHVwbG9hZCByb3V0ZSBlbmZvcmNlcyB0aGlzXG4gKiAobXVsdGVyIGBmaWxlU2l6ZWApOyBrZXB0IGhlcmUgc28gdGhlIGJvdW5kIGxpdmVzIHdpdGggdGhlIG90aGVyIG1lc3NhZ2VcbiAqIGxpbWl0cyByYXRoZXIgdGhhbiBvbmx5IGlubGluZSBpbiB0aGUgcm91dGUuXG4gKi9cbmV4cG9ydCBjb25zdCBNRVNTQUdFX0FUVEFDSE1FTlRfTUFYX01CID0gZW52SW50KCdNRVNTQUdFX0FUVEFDSE1FTlRfTUFYX01CJywgMTAsIHsgbWluOiAxIH0pO1xuZXhwb3J0IGNvbnN0IE1FU1NBR0VfQVRUQUNITUVOVF9NQVhfQllURVMgPSBNRVNTQUdFX0FUVEFDSE1FTlRfTUFYX01CICogMTAyNCAqIDEwMjQ7XG5cbi8qKlxuICogQWxsb3ctbGlzdCBvZiBhdHRhY2htZW50IE1JTUUgdHlwZXMg4oCUIGNvbW1vbiBpbWFnZXMgKyBkb2N1bWVudHMgKyB6aXAveWFtbC9qc29uLlxuICogRGVsaWJlcmF0ZWx5IGV4Y2x1ZGVzIGV4ZWN1dGFibGVzL3NjcmlwdHMvSFRNTC9TVkcgKHN0b3JlZC1YU1MgLyBkcml2ZS1ieSkuXG4gKiB6aXAgaXMgYSBkb3dubG9hZCBjb250YWluZXIgKGRvZXNuJ3QgcmVuZGVyIGluLWJyb3dzZXIpOyB5YW1sL2pzb24gYXJlIHBsYWluXG4gKiB0ZXh0IOKAlCBub25lIGNhcnJ5IHRoZSBkcml2ZS1ieSByaXNrIG9mIHRoZSBleGNsdWRlZCB0eXBlcy4gRXh0ZW5kIGhlcmUuXG4gKi9cbmV4cG9ydCBjb25zdCBNRVNTQUdFX0FUVEFDSE1FTlRfQUxMT1dFRF9NSU1FOiBSZWFkb25seVNldDxzdHJpbmc+ID0gbmV3IFNldChbXG4gICdpbWFnZS9wbmcnLCAnaW1hZ2UvanBlZycsICdpbWFnZS9naWYnLCAnaW1hZ2Uvd2VicCcsXG4gICdhcHBsaWNhdGlvbi9wZGYnLCAndGV4dC9wbGFpbicsICd0ZXh0L2NzdicsXG4gICdhcHBsaWNhdGlvbi9tc3dvcmQnLFxuICAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LndvcmRwcm9jZXNzaW5nbWwuZG9jdW1lbnQnLFxuICAnYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsJyxcbiAgJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0JyxcbiAgJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC5wcmVzZW50YXRpb24nLFxuICAvLyBBcmNoaXZlcyAoemlwIC8gZ3ogLyB0YXIgLyB0YXIuZ3opIOKAlCBicm93c2VycyByZXBvcnQgdGhlc2UgdmFyaW91c2x5IGJ5IE9TO1xuICAvLyBjb3ZlciB0aGUgY29tbW9uIHZhcmlhbnRzLiBUaGV5IGRvd25sb2FkIHJhdGhlciB0aGFuIHJlbmRlciBpbi1icm93c2VyLlxuICAnYXBwbGljYXRpb24vemlwJywgJ2FwcGxpY2F0aW9uL3gtemlwLWNvbXByZXNzZWQnLFxuICAnYXBwbGljYXRpb24vZ3ppcCcsICdhcHBsaWNhdGlvbi94LWd6aXAnLFxuICAnYXBwbGljYXRpb24veC10YXInLCAnYXBwbGljYXRpb24vdGFyJyxcbiAgJ2FwcGxpY2F0aW9uL3gtY29tcHJlc3NlZC10YXInLFxuICAvLyBqc29uIChicm93c2VycyBtYXkgc2VuZCBhcHBsaWNhdGlvbi9qc29uIG9yIHRleHQvanNvbikuXG4gICdhcHBsaWNhdGlvbi9qc29uJywgJ3RleHQvanNvbicsXG4gIC8vIHlhbWwveW1sIOKAlCBubyBzaW5nbGUgcmVnaXN0ZXJlZCB0eXBlOyBjb3ZlciB0aGUgY29tbW9uIHZhcmlhbnRzLlxuICAnYXBwbGljYXRpb24veC15YW1sJywgJ2FwcGxpY2F0aW9uL3lhbWwnLCAndGV4dC95YW1sJywgJ3RleHQveC15YW1sJyxcbl0pO1xuXG4vKipcbiAqIFNhZmUgZmlsZW5hbWUgZXh0ZW5zaW9ucy4gQnJvd3NlcnMgZnJlcXVlbnRseSBzZW5kIGBhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW1gXG4gKiBmb3IgYXJjaGl2ZXMgKyBjb25maWcgZmlsZXMgKC50YXIvLmd6Ly50Z3ovLnlhbWwv4oCmKSBiZWNhdXNlIHRoZXkgaGF2ZSBub1xuICogcmVsaWFibGUgcmVnaXN0ZXJlZCBNSU1FIHR5cGUsIHNvIHRoZSBNSU1FIGFsbG93LWxpc3QgYWxvbmUgcmVqZWN0cyB0aGVtLiBUaGVzZVxuICogZXh0ZW5zaW9ucyBhcmUgYWNjZXB0ZWQgYXMgYSBmYWxsYmFjayBPTkxZIHdoZW4gdGhlIHJlcG9ydGVkIE1JTUUgaXMgdGhhdFxuICogZ2VuZXJpYyB0eXBlIChzZWUgaXNBbGxvd2VkQXR0YWNobWVudFR5cGUpIOKAlCBzbyBhIGtub3duIHJlbmRlci9leGVjdXRlIE1JTUVcbiAqIChpbWFnZS9zdmcreG1sLCB0ZXh0L2h0bWwsIOKApikgaXMgbmV2ZXIgcmVzY3VlZCBieSBhIHNwb29mZWQgZXh0ZW5zaW9uLiBTdGlsbFxuICogZXhjbHVkZXMgLmh0bWwvLnN2Zy8uanMvLmV4ZS/igKYgKG5ldmVyIGxpc3RlZCBoZXJlKS5cbiAqL1xuZXhwb3J0IGNvbnN0IE1FU1NBR0VfQVRUQUNITUVOVF9BTExPV0VEX0VYVDogUmVhZG9ubHlTZXQ8c3RyaW5nPiA9IG5ldyBTZXQoW1xuICAnLnBuZycsICcuanBnJywgJy5qcGVnJywgJy5naWYnLCAnLndlYnAnLFxuICAnLnBkZicsICcudHh0JywgJy5jc3YnLCAnLmRvYycsICcuZG9jeCcsICcueGxzJywgJy54bHN4JywgJy5wcHQnLCAnLnBwdHgnLFxuICAnLnppcCcsICcuZ3onLCAnLnRneicsICcudGFyJywgJy5qc29uJywgJy55YW1sJywgJy55bWwnLFxuXSk7XG5cbi8qKlxuICogVHJ1ZSBpZiBhbiBhdHRhY2htZW50IGlzIGFjY2VwdGVkLiBBY2NlcHRzIGJ5IE1JTUUgYWxsb3ctbGlzdCwgT1Ig4oCUIHdoZW4gdGhlXG4gKiBicm93c2VyIHJlcG9ydHMgdGhlIGdlbmVyaWMgYGFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbWAgKHVua25vd24gYmluYXJ5KSDigJQgYnkgYVxuICogc2FmZSBmaWxlbmFtZSBleHRlbnNpb24uIG9jdGV0LXN0cmVhbSBpcyBzZXJ2ZWQgYXMgYSBkb3dubG9hZCAobmV2ZXIgcmVuZGVyZWQpLFxuICogc28gdGhlIGV4dGVuc2lvbiBmYWxsYmFjayBjYW4ndCB0dXJuIGludG8gYSBzdG9yZWQtWFNTIHZlY3Rvci5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzQWxsb3dlZEF0dGFjaG1lbnRUeXBlKG1pbWV0eXBlOiBzdHJpbmcsIGZpbGVuYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgaWYgKE1FU1NBR0VfQVRUQUNITUVOVF9BTExPV0VEX01JTUUuaGFzKG1pbWV0eXBlKSkgcmV0dXJuIHRydWU7XG4gIGlmIChtaW1ldHlwZSAhPT0gJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbScpIHJldHVybiBmYWxzZTtcbiAgY29uc3QgZG90ID0gKGZpbGVuYW1lIHx8ICcnKS5sYXN0SW5kZXhPZignLicpO1xuICBpZiAoZG90IDwgMCkgcmV0dXJuIGZhbHNlO1xuICByZXR1cm4gTUVTU0FHRV9BVFRBQ0hNRU5UX0FMTE9XRURfRVhULmhhcyhmaWxlbmFtZS5zbGljZShkb3QpLnRvTG93ZXJDYXNlKCkpO1xufVxuXG4vKiogQXR0YWNobWVudCBtZXRhZGF0YSBEVE8gcmV0dXJuZWQgdG8gY2xpZW50cyAobmV2ZXIgZXhwb3NlcyB0aGUgc3RvcmFnZSBrZXkpLiAqL1xuZXhwb3J0IGludGVyZmFjZSBNZXNzYWdlQXR0YWNobWVudERUTyB7XG4gIGlkOiBzdHJpbmc7XG4gIGZpbGVuYW1lOiBzdHJpbmc7XG4gIGNvbnRlbnRUeXBlOiBzdHJpbmc7XG4gIHNpemVCeXRlczogbnVtYmVyO1xufVxuXG4vKipcbiAqIEF0dGFjaG1lbnQgaWRzIHRvIGxpbmsgdG8gYSBtZXNzYWdlLiBFYWNoIGlzIHRoZSBpZCByZXR1cm5lZCBieSBhIHByaW9yXG4gKiBQT1NUIC9tZXNzYWdlcy9hdHRhY2htZW50cyB1cGxvYWQ7IHRoZSBjcmVhdGUgcm91dGUgbGlua3Mgb25seSBpZHMgdGhhdCBiZWxvbmdcbiAqIHRvIHRoZSBjYWxsZXIgKG93biBvcmcgKyB1cGxvYWRlcikgYW5kIGFyZSBzdGlsbCB1bmF0dGFjaGVkLlxuICovXG5jb25zdCBBdHRhY2htZW50SWRzU2NoZW1hID0gei5hcnJheSh6LnN0cmluZygpLnV1aWQoKSkubWF4KE1FU1NBR0VfTUFYX0FUVEFDSE1FTlRTKS5vcHRpb25hbCgpO1xuXG4vKipcbiAqIE1lc3NhZ2UgY3JlYXRpb24gc2NoZW1hXG4gKi9cbmV4cG9ydCBjb25zdCBNZXNzYWdlQ3JlYXRlU2NoZW1hID0gei5vYmplY3Qoe1xuICByZWNpcGllbnRPcmdJZDogei5zdHJpbmcoKS5taW4oMSwgJ1JlY2lwaWVudCBvcmdhbml6YXRpb24gSUQgaXMgcmVxdWlyZWQnKSxcbiAgLy8gT3B0aW9uYWwgcGVyLXVzZXIgdGFyZ2V0aW5nIFdJVEhJTiByZWNpcGllbnRPcmdJZC4gV2hlbiBzZXQsIG9ubHkgdGhpcyB1c2VyXG4gIC8vIHNlZXMgdGhlIGNvbnZlcnNhdGlvbiAoZW5mb3JjZWQgaW4gYnVpbGRNZXNzYWdlQ29uZGl0aW9ucykuIENvbnZlcnNhdGlvbi1vbmx5XG4gIC8vIGFuZCByZXF1aXJlcyBhIGNvbmNyZXRlIHJlY2lwaWVudCBvcmcg4oCUIHRoZSByb3V0ZSByZWplY3RzIGl0IG9uIGFubm91bmNlbWVudHNcbiAgLy8gYW5kICcqJyBicm9hZGNhc3RzLiBCb3VuZGVkIHRvIHRoZSByZWNpcGllbnRfdXNlcl9pZCBjb2x1bW4gd2lkdGguXG4gIHJlY2lwaWVudFVzZXJJZDogei5zdHJpbmcoKS5taW4oMSkubWF4KDI1NSkub3B0aW9uYWwoKSxcbiAgbWVzc2FnZVR5cGU6IE1lc3NhZ2VUeXBlU2NoZW1hLm9wdGlvbmFsKCkuZGVmYXVsdCgnY29udmVyc2F0aW9uJyksXG4gIGNoYW5uZWw6IE1lc3NhZ2VDaGFubmVsU2NoZW1hLm9wdGlvbmFsKCksXG4gIHN1YmplY3Q6IHouc3RyaW5nKCkubWluKDEsICdTdWJqZWN0IGlzIHJlcXVpcmVkJykubWF4KE1FU1NBR0VfU1VCSkVDVF9NQVgsIGBTdWJqZWN0IG11c3QgYmUgYXQgbW9zdCAke01FU1NBR0VfU1VCSkVDVF9NQVh9IGNoYXJhY3RlcnNgKSxcbiAgY29udGVudDogei5zdHJpbmcoKS5taW4oMSwgJ0NvbnRlbnQgaXMgcmVxdWlyZWQnKS5tYXgoTUVTU0FHRV9DT05URU5UX01BWCwgYENvbnRlbnQgbXVzdCBiZSBhdCBtb3N0ICR7TUVTU0FHRV9DT05URU5UX01BWH0gY2hhcmFjdGVyc2ApLFxuICBwcmlvcml0eTogTWVzc2FnZVByaW9yaXR5U2NoZW1hLm9wdGlvbmFsKCkuZGVmYXVsdCgnbm9ybWFsJyksXG4gIGF0dGFjaG1lbnRJZHM6IEF0dGFjaG1lbnRJZHNTY2hlbWEsXG59KTtcblxuLyoqXG4gKiBNZXNzYWdlIHJlcGx5IHNjaGVtYVxuICovXG5leHBvcnQgY29uc3QgTWVzc2FnZVJlcGx5U2NoZW1hID0gei5vYmplY3Qoe1xuICBjb250ZW50OiB6LnN0cmluZygpLm1pbigxLCAnQ29udGVudCBpcyByZXF1aXJlZCcpLm1heChNRVNTQUdFX0NPTlRFTlRfTUFYLCBgQ29udGVudCBtdXN0IGJlIGF0IG1vc3QgJHtNRVNTQUdFX0NPTlRFTlRfTUFYfSBjaGFyYWN0ZXJzYCksXG4gIGF0dGFjaG1lbnRJZHM6IEF0dGFjaG1lbnRJZHNTY2hlbWEsXG59KTtcblxuLyoqXG4gKiBFZGl0IGFuIGFscmVhZHktc2VudCBtZXNzYWdlJ3MgQ09OVEVOVCAoYXV0aG9yLW9ubHksIGVuZm9yY2VkIHNlcnZlci1zaWRlKS5cbiAqIE9ubHkgdGhlIGJvZHkgaXMgZWRpdGFibGUg4oCUIHN1YmplY3QvcmVjaXBpZW50L3R5cGUvYXR0YWNobWVudHMgYXJlIGltbXV0YWJsZVxuICogYWZ0ZXIgc2VuZCAoY2hhbmdpbmcgdGhlbSB3b3VsZCByZXdyaXRlIHRoZSBjb252ZXJzYXRpb24ncyByb3V0aW5nL21lYW5pbmcpLlxuICovXG5leHBvcnQgY29uc3QgTWVzc2FnZUVkaXRTY2hlbWEgPSB6Lm9iamVjdCh7XG4gIGNvbnRlbnQ6IHouc3RyaW5nKCkubWluKDEsICdDb250ZW50IGlzIHJlcXVpcmVkJykubWF4KE1FU1NBR0VfQ09OVEVOVF9NQVgsIGBDb250ZW50IG11c3QgYmUgYXQgbW9zdCAke01FU1NBR0VfQ09OVEVOVF9NQVh9IGNoYXJhY3RlcnNgKSxcbn0pO1xuIl19
|
|
@@ -76,6 +76,7 @@ export declare const PipelineCreateSchema: z.ZodObject<{
|
|
|
76
76
|
source: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
77
77
|
plugin: z.ZodObject<{
|
|
78
78
|
name: z.ZodString;
|
|
79
|
+
publisher: z.ZodOptional<z.ZodString>;
|
|
79
80
|
alias: z.ZodOptional<z.ZodString>;
|
|
80
81
|
filter: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
81
82
|
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
@@ -84,9 +85,11 @@ export declare const PipelineCreateSchema: z.ZodObject<{
|
|
|
84
85
|
stages: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
85
86
|
stageName: z.ZodString;
|
|
86
87
|
alias: z.ZodOptional<z.ZodString>;
|
|
88
|
+
environment: z.ZodOptional<z.ZodString>;
|
|
87
89
|
steps: z.ZodArray<z.ZodObject<{
|
|
88
90
|
plugin: z.ZodObject<{
|
|
89
91
|
name: z.ZodString;
|
|
92
|
+
publisher: z.ZodOptional<z.ZodString>;
|
|
90
93
|
alias: z.ZodOptional<z.ZodString>;
|
|
91
94
|
filter: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
92
95
|
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
@@ -98,7 +101,7 @@ export declare const PipelineCreateSchema: z.ZodObject<{
|
|
|
98
101
|
pre: "pre";
|
|
99
102
|
}>>;
|
|
100
103
|
}, z.core.$loose>>;
|
|
101
|
-
}, z.core.$
|
|
104
|
+
}, z.core.$loose>>>;
|
|
102
105
|
}, z.core.$loose>;
|
|
103
106
|
}, z.core.$strip>;
|
|
104
107
|
/**
|
|
@@ -141,6 +144,7 @@ export declare const PipelineUpdateSchema: z.ZodObject<{
|
|
|
141
144
|
source: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
142
145
|
plugin: z.ZodObject<{
|
|
143
146
|
name: z.ZodString;
|
|
147
|
+
publisher: z.ZodOptional<z.ZodString>;
|
|
144
148
|
alias: z.ZodOptional<z.ZodString>;
|
|
145
149
|
filter: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
146
150
|
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
@@ -149,9 +153,11 @@ export declare const PipelineUpdateSchema: z.ZodObject<{
|
|
|
149
153
|
stages: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
150
154
|
stageName: z.ZodString;
|
|
151
155
|
alias: z.ZodOptional<z.ZodString>;
|
|
156
|
+
environment: z.ZodOptional<z.ZodString>;
|
|
152
157
|
steps: z.ZodArray<z.ZodObject<{
|
|
153
158
|
plugin: z.ZodObject<{
|
|
154
159
|
name: z.ZodString;
|
|
160
|
+
publisher: z.ZodOptional<z.ZodString>;
|
|
155
161
|
alias: z.ZodOptional<z.ZodString>;
|
|
156
162
|
filter: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
157
163
|
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
@@ -163,7 +169,7 @@ export declare const PipelineUpdateSchema: z.ZodObject<{
|
|
|
163
169
|
pre: "pre";
|
|
164
170
|
}>>;
|
|
165
171
|
}, z.core.$loose>>;
|
|
166
|
-
}, z.core.$
|
|
172
|
+
}, z.core.$loose>>>;
|
|
167
173
|
}, z.core.$loose>>;
|
|
168
174
|
isActive: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodPipe<z.ZodEnum<{
|
|
169
175
|
false: "false";
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
3
3
|
import { z } from 'zod';
|
|
4
4
|
import { BaseFilterSchema, BooleanQuerySchema, VisibilitySchema, CatalogMetadataShape } from './common-schemas.js';
|
|
5
|
+
import { PUBLISHER_HANDLE_PATTERN } from '../types/ecosystem.js';
|
|
5
6
|
/**
|
|
6
7
|
* Pipeline filter schema for query parameters
|
|
7
8
|
*/
|
|
@@ -12,15 +13,36 @@ export const PipelineFilterSchema = BaseFilterSchema.extend({
|
|
|
12
13
|
orgId: z.string().min(1).optional(),
|
|
13
14
|
keyword: z.string().min(1).optional(),
|
|
14
15
|
});
|
|
16
|
+
/**
|
|
17
|
+
* Keys that look like plugin-reference fields but aren't: synth never reads
|
|
18
|
+
* them, so without a loud refusal the reference silently resolves to something
|
|
19
|
+
* other than what its author meant.
|
|
20
|
+
*/
|
|
21
|
+
const PLUGIN_REF_NON_FIELDS = {
|
|
22
|
+
version: '`version` is not a plugin-reference field — it is ignored and the default version is used. '
|
|
23
|
+
+ 'Pin or range the version with `filter: { version: "1.2.3" }` (also ^, ~, 1.x, 1.2, latest).',
|
|
24
|
+
};
|
|
15
25
|
/**
|
|
16
26
|
* Plugin options schema (name-based selection)
|
|
17
27
|
*/
|
|
18
28
|
const PluginOptionsSchema = z.object({
|
|
19
29
|
name: z.string().min(1),
|
|
30
|
+
/**
|
|
31
|
+
* The publisher whose installed listing the reference resolves to
|
|
32
|
+
* (docs/plugin-publishing.md). Absent: the org's own plugin, then
|
|
33
|
+
* its parent's, then the Official listing.
|
|
34
|
+
*/
|
|
35
|
+
publisher: z.string().max(39).regex(PUBLISHER_HANDLE_PATTERN, 'publisher must be a publisher handle (lowercase letters, digits and single hyphens)').optional(),
|
|
20
36
|
alias: z.string().optional(),
|
|
21
37
|
filter: z.record(z.string(), z.unknown()).optional(),
|
|
22
38
|
metadata: z.record(z.string(), z.unknown()).optional(),
|
|
23
|
-
}).passthrough()
|
|
39
|
+
}).passthrough().superRefine((ref, ctx) => {
|
|
40
|
+
for (const [key, message] of Object.entries(PLUGIN_REF_NON_FIELDS)) {
|
|
41
|
+
if (key in ref) {
|
|
42
|
+
ctx.addIssue({ code: 'custom', path: [key], message });
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
});
|
|
24
46
|
/**
|
|
25
47
|
* Stage step schema
|
|
26
48
|
*
|
|
@@ -48,13 +70,17 @@ const StageStepSchema = z.object({
|
|
|
48
70
|
}
|
|
49
71
|
});
|
|
50
72
|
/**
|
|
51
|
-
* Stage schema
|
|
73
|
+
* Stage schema. `passthrough()` like its siblings: a strict-by-default object
|
|
74
|
+
* here stripped every undeclared stage field before storage — including
|
|
75
|
+
* `environment`, which marks a stage as a DORA deploy.
|
|
52
76
|
*/
|
|
53
77
|
const StageSchema = z.object({
|
|
54
78
|
stageName: z.string().min(1),
|
|
55
79
|
alias: z.string().optional(),
|
|
80
|
+
/** Deploy environment this stage targets (DORA deploy attribution, `pb.deploys`). */
|
|
81
|
+
environment: z.string().min(1).max(64).optional(),
|
|
56
82
|
steps: z.array(StageStepSchema).min(1),
|
|
57
|
-
});
|
|
83
|
+
}).passthrough();
|
|
58
84
|
/**
|
|
59
85
|
* BuilderProps schema — structural validation for pipeline configuration.
|
|
60
86
|
* Uses passthrough() to allow additional fields without rejecting them.
|
|
@@ -98,4 +124,4 @@ export const PipelineUpdateSchema = z.object({
|
|
|
98
124
|
isDefault: BooleanQuerySchema.optional(),
|
|
99
125
|
visibility: VisibilitySchema.optional(),
|
|
100
126
|
});
|
|
101
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlwZWxpbmUtc2NoZW1hcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92YWxpZGF0aW9uL3BpcGVsaW5lLXNjaGVtYXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHNDQUFzQztBQUV0QyxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBQ3hCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxrQkFBa0IsRUFBRSxnQkFBZ0IsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRW5IOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsZ0JBQWdCLENBQUMsTUFBTSxDQUFDO0lBQzFELE9BQU8sRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRTtJQUNyQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUU7SUFDMUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFO0lBQzFDLEtBQUssRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRTtJQUNuQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUU7Q0FDdEMsQ0FBQyxDQUFDO0FBRUg7O0dBRUc7QUFDSCxNQUFNLG1CQUFtQixHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDbkMsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ3ZCLEtBQUssRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMs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QUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFO0lBQzFDLFdBQVcsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQ2xDLFFBQVEsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRTtJQUN4QyxLQUFLLEVBQUUsa0JBQWtCLENBQUMsUUFBUSxFQUFFO0lBQ3BDLFFBQVEsRUFBRSxrQkFBa0IsQ0FBQyxRQUFRLEVBQUU7SUFDdkMsU0FBUyxFQUFFLGtCQUFrQixDQUFDLFFBQVEsRUFBRTtJQUN4QyxVQUFVLEVBQUUsZ0JBQWdCLENBQUMsUUFBUSxFQUFFO0NBQ3hDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG5pbXBvcnQgeyB6IH0gZnJvbSAnem9kJztcbmltcG9ydCB7IEJhc2VGaWx0ZXJTY2hlbWEsIEJvb2xlYW5RdWVyeVNjaGVtYSwgVmlzaWJpbGl0eVNjaGVtYSwgQ2F0YWxvZ01ldGFkYXRhU2hhcGUgfSBmcm9tICcuL2NvbW1vbi1zY2hlbWFzLmpzJztcblxuLyoqXG4gKiBQaXBlbGluZSBmaWx0ZXIgc2NoZW1hIGZvciBxdWVyeSBwYXJhbWV0ZXJzXG4gKi9cbmV4cG9ydCBjb25zdCBQaXBlbGluZUZpbHRlclNjaGVtYSA9IEJhc2VGaWx0ZXJTY2hlbWEuZXh0ZW5kKHtcbiAgcHJvamVjdDogei5zdHJpbmcoKS5taW4oMSkub3B0aW9uYWwoKSxcbiAgb3JnYW5pemF0aW9uOiB6LnN0cmluZygpLm1pbigxKS5vcHRpb25hbCgpLFxuICBwaXBlbGluZU5hbWU6IHouc3RyaW5nKCkubWluKDEpLm9wdGlvbmFsKCksXG4gIG9yZ0lkOiB6LnN0cmluZygpLm1pbigxKS5vcHRpb25hbCgpLFxuICBrZXl3b3JkOiB6LnN0cmluZygpLm1pbigxKS5vcHRpb25hbCgpLFxufSk7XG5cbi8qKlxuICogUGx1Z2luIG9wdGlvbnMgc2NoZW1hIChuYW1lLWJhc2VkIHNlbGVjdGlvbilcbiAqL1xuY29uc3QgUGx1Z2luT3B0aW9uc1NjaGVtYSA9IHoub2JqZWN0KHtcbiAgbmFtZTogei5zdHJpbmcoKS5taW4oMSksXG4gIGFsaWFzOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIGZpbHRlcjogei5yZWNvcmQoei5zdHJpbmcoKSwgei51bmtub3duKCkpLm9wdGlvbmFsKCksXG4gIG1ldGFkYXRhOiB6LnJlY29yZCh6LnN0cmluZygpLCB6LnVua25vd24oKSkub3B0aW9uYWwoKSxcbn0pLnBhc3N0aHJvdWdoKCk7XG5cbi8qKlxuICogU3RhZ2Ugc3RlcCBzY2hlbWFcbiAqXG4gKiBgcGFzc3Rocm91Z2goKWAga2VlcHMgZm9yd2FyZC1jb21wYXRpYmxlIGZpZWxkcywgYnV0IGEgZmV3IGNvbW1vbiBtaXN0YWtlcyBhcmVcbiAqIHJlamVjdGVkIGxvdWRseSByYXRoZXIgdGhhbiBzaWxlbnRseSBpZ25vcmVkIGF0IHN5bnRoIOKAlCBtb3N0IG5vdGFibHkgYVxuICogdG9wLWxldmVsIGBjb21tYW5kc2AsIHdoaWNoIGlzIE5PVCBhIHN0ZXAgZmllbGQgKHRoZSBwbHVnaW4ncyBvd24gY29tbWFuZHMgcnVuKVxuICogYW5kIHdvdWxkIG90aGVyd2lzZSBkbyBub3RoaW5nLlxuICovXG5jb25zdCBTVEVQX05PTl9GSUVMRFM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGNvbW1hbmRzOlxuICAgICdgY29tbWFuZHNgIGlzIG5vdCBhIHN0ZXAgZmllbGQg4oCUIGl0IGlzIGlnbm9yZWQgYXQgc3ludGggKHRoZSBwbHVnaW5cXCdzIG93biBjb21tYW5kcyBydW4pLiAnXG4gICAgKyAnVG8gY2hhbmdlIHdoYXQgYSBzdGVwIHJ1bnMsIHVzZSBhIHBsdWdpbiBlbnYga25vYiAoZS5nLiBgbWV0YWRhdGEuR1JBRExFX1RBU0tgKSwgJ1xuICAgICsgJ2BwcmVDb21tYW5kc2AvYHBvc3RDb21tYW5kc2AgdG8gYWRkIGNvbW1hbmRzIGFyb3VuZCB0aGUgcGx1Z2luXFwncywgb3IgdGhlICdcbiAgICArICdgYXdzOmNkazpwaXBlbGluZXM6Y29kZWJ1aWxkc3RlcDpjb21tYW5kc2AgbWV0YWRhdGEga2V5IGZvciBhIGZ1bGwgb3ZlcnJpZGUuJyxcbn07XG5cbmNvbnN0IFN0YWdlU3RlcFNjaGVtYSA9IHoub2JqZWN0KHtcbiAgcGx1Z2luOiBQbHVnaW5PcHRpb25zU2NoZW1hLFxuICBtZXRhZGF0YTogei5yZWNvcmQoei5zdHJpbmcoKSwgei51bmtub3duKCkpLm9wdGlvbmFsKCksXG4gIG5ldHdvcms6IHoucmVjb3JkKHouc3RyaW5nKCksIHoudW5rbm93bigpKS5vcHRpb25hbCgpLFxuICBwb3NpdGlvbjogei5lbnVtKFsncHJlJywgJ3Bvc3QnXSkub3B0aW9uYWwoKSxcbn0pLnBhc3N0aHJvdWdoKCkuc3VwZXJSZWZpbmUoKHN0ZXAsIGN0eCkgPT4ge1xuICBmb3IgKGNvbnN0IFtrZXksIG1lc3NhZ2VdIG9mIE9iamVjdC5lbnRyaWVzKFNURVBfTk9OX0ZJRUxEUykpIHtcbiAgICBpZiAoa2V5IGluIChzdGVwIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KSkge1xuICAgICAgY3R4LmFkZElzc3VlKHsgY29kZTogJ2N1c3RvbScsIHBhdGg6IFtrZXldLCBtZXNzYWdlIH0pO1xuICAgIH1cbiAgfVxufSk7XG5cbi8qKlxuICogU3RhZ2Ugc2NoZW1hXG4gKi9cbmNvbnN0IFN0YWdlU2NoZW1hID0gei5vYmplY3Qoe1xuICBzdGFnZU5hbWU6IHouc3RyaW5nKCkubWluKDEpLFxuICBhbGlhczogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBzdGVwczogei5hcnJheShTdGFnZVN0ZXBTY2hlbWEpLm1pbigxKSxcbn0pO1xuXG4vKipcbiAqIEJ1aWxkZXJQcm9wcyBzY2hlbWEg4oCUIHN0cnVjdHVyYWwgdmFsaWRhdGlvbiBmb3IgcGlwZWxpbmUgY29uZmlndXJhdGlvbi5cbiAqIFVzZXMgcGFzc3Rocm91Z2goKSB0byBhbGxvdyBhZGRpdGlvbmFsIGZpZWxkcyB3aXRob3V0IHJlamVjdGluZyB0aGVtLlxuICovXG5jb25zdCBCdWlsZGVyUHJvcHNTY2hlbWEgPSB6Lm9iamVjdCh7XG4gIHByb2plY3Q6IHouc3RyaW5nKCkubWluKDEpLFxuICBvcmdhbml6YXRpb246IHouc3RyaW5nKCkubWluKDEpLFxuICBwaXBlbGluZU5hbWU6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgZ2xvYmFsOiB6LnJlY29yZCh6LnN0cmluZygpLCB6LnVua25vd24oKSkub3B0aW9uYWwoKSxcbiAgZGVmYXVsdHM6IHoucmVjb3JkKHouc3RyaW5nKCksIHoudW5rbm93bigpKS5vcHRpb25hbCgpLFxuICByb2xlOiB6LnJlY29yZCh6LnN0cmluZygpLCB6LnVua25vd24oKSkub3B0aW9uYWwoKSxcbiAgc3ludGg6IHoub2JqZWN0KHtcbiAgICBzb3VyY2U6IHoucmVjb3JkKHouc3RyaW5nKCksIHoudW5rbm93bigpKS5vcHRpb25hbCgpLFxuICAgIHBsdWdpbjogUGx1Z2luT3B0aW9uc1NjaGVtYSxcbiAgfSkucGFzc3Rocm91Z2goKSxcbiAgc3RhZ2VzOiB6LmFycmF5KFN0YWdlU2NoZW1hKS5vcHRpb25hbCgpLFxufSkucGFzc3Rocm91Z2goKTtcblxuLyoqXG4gKiBQaXBlbGluZSBjcmVhdGlvbiBzY2hlbWFcbiAqL1xuZXhwb3J0IGNvbnN0IFBpcGVsaW5lQ3JlYXRlU2NoZW1hID0gei5vYmplY3Qoe1xuICAuLi5DYXRhbG9nTWV0YWRhdGFTaGFwZSxcbiAgcHJvamVjdDogei5zdHJpbmcoKS5taW4oMSwgJ1Byb2plY3QgaXMgcmVxdWlyZWQnKSxcbiAgb3JnYW5pemF0aW9uOiB6LnN0cmluZygpLm1pbigxLCAnT3JnYW5pemF0aW9uIGlzIHJlcXVpcmVkJyksXG4gIHBpcGVsaW5lTmFtZTogei5zdHJpbmcoKS5taW4oMSkub3B0aW9uYWwoKSxcbiAgZGVzY3JpcHRpb246IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAga2V5d29yZHM6IHouYXJyYXkoei5zdHJpbmcoKSkub3B0aW9uYWwoKSxcbiAgdmlzaWJpbGl0eTogVmlzaWJpbGl0eVNjaGVtYS5vcHRpb25hbCgpLFxuICBwcm9wczogQnVpbGRlclByb3BzU2NoZW1hLFxufSk7XG5cbi8qKlxuICogUGlwZWxpbmUgdXBkYXRlIHNjaGVtYVxuICovXG5leHBvcnQgY29uc3QgUGlwZWxpbmVVcGRhdGVTY2hlbWEgPSB6Lm9iamVjdCh7XG4gIC4uLkNhdGFsb2dNZXRhZGF0YVNoYXBlLFxuICBwaXBlbGluZU5hbWU6IHouc3RyaW5nKCkubWluKDEpLm9wdGlvbmFsKCksXG4gIGRlc2NyaXB0aW9uOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIGtleXdvcmRzOiB6LmFycmF5KHouc3RyaW5nKCkpLm9wdGlvbmFsKCksXG4gIHByb3BzOiBCdWlsZGVyUHJvcHNTY2hlbWEub3B0aW9uYWwoKSxcbiAgaXNBY3RpdmU6IEJvb2xlYW5RdWVyeVNjaGVtYS5vcHRpb25hbCgpLFxuICBpc0RlZmF1bHQ6IEJvb2xlYW5RdWVyeVNjaGVtYS5vcHRpb25hbCgpLFxuICB2aXNpYmlsaXR5OiBWaXNpYmlsaXR5U2NoZW1hLm9wdGlvbmFsKCksXG59KTtcbiJdfQ==
|
|
127
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlwZWxpbmUtc2NoZW1hcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92YWxpZGF0aW9uL3BpcGVsaW5lLXNjaGVtYXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHNDQUFzQztBQUV0QyxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBQ3hCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxrQkFBa0IsRUFBRSxnQkFBZ0IsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ25ILE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRWpFOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsZ0JBQWdCLENBQUMsTUFBTSxDQUFDO0lBQzFELE9BQU8sRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRTtJQUNyQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUU7SUFDMUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFO0lBQzFDLEtBQUssRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRTtJQUNuQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUU7Q0FDdEMsQ0FBQyxDQUFDO0FBRUg7Ozs7R0FJRztBQUNILE1BQU0scUJBQXFCLEdBQTJCO0lBQ3BELE9BQU8sRUFDTCw2RkFBNkY7VUFDM0YsNkZBQTZGO0NBQ2xHLENBQUM7QUFFRjs7R0FFRztBQUNILE1BQU0sbUJBQW1C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QixDQUFDLFFBQVEsRUFBRTtJQUNwQyxRQUFRLEVBQUUsa0JBQWtCLENBQUMsUUFBUSxFQUFFO0lBQ3ZDLFNBQVMsRUFBRSxrQkFBa0IsQ0FBQyxRQUFRLEVBQUU7SUFDeEMsVUFBVSxFQUFFLGdCQUFnQixDQUFDLFFBQVEsRUFBRTtDQUN4QyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgMjAyNiBQaXBlbGluZSBCdWlsZGVyIENvbnRyaWJ1dG9yc1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuaW1wb3J0IHsgeiB9IGZyb20gJ3pvZCc7XG5pbXBvcnQgeyBCYXNlRmlsdGVyU2NoZW1hLCBCb29sZWFuUXVlcnlTY2hlbWEsIFZpc2liaWxpdHlTY2hlbWEsIENhdGFsb2dNZXRhZGF0YVNoYXBlIH0gZnJvbSAnLi9jb21tb24tc2NoZW1hcy5qcyc7XG5pbXBvcnQgeyBQVUJMSVNIRVJfSEFORExFX1BBVFRFUk4gfSBmcm9tICcuLi90eXBlcy9lY29zeXN0ZW0uanMnO1xuXG4vKipcbiAqIFBpcGVsaW5lIGZpbHRlciBzY2hlbWEgZm9yIHF1ZXJ5IHBhcmFtZXRlcnNcbiAqL1xuZXhwb3J0IGNvbnN0IFBpcGVsaW5lRmlsdGVyU2NoZW1hID0gQmFzZUZpbHRlclNjaGVtYS5leHRlbmQoe1xuICBwcm9qZWN0OiB6LnN0cmluZygpLm1pbigxKS5vcHRpb25hbCgpLFxuICBvcmdhbml6YXRpb246IHouc3RyaW5nKCkubWluKDEpLm9wdGlvbmFsKCksXG4gIHBpcGVsaW5lTmFtZTogei5zdHJpbmcoKS5taW4oMSkub3B0aW9uYWwoKSxcbiAgb3JnSWQ6IHouc3RyaW5nKCkubWluKDEpLm9wdGlvbmFsKCksXG4gIGtleXdvcmQ6IHouc3RyaW5nKCkubWluKDEpLm9wdGlvbmFsKCksXG59KTtcblxuLyoqXG4gKiBLZXlzIHRoYXQgbG9vayBsaWtlIHBsdWdpbi1yZWZlcmVuY2UgZmllbGRzIGJ1dCBhcmVuJ3Q6IHN5bnRoIG5ldmVyIHJlYWRzXG4gKiB0aGVtLCBzbyB3aXRob3V0IGEgbG91ZCByZWZ1c2FsIHRoZSByZWZlcmVuY2Ugc2lsZW50bHkgcmVzb2x2ZXMgdG8gc29tZXRoaW5nXG4gKiBvdGhlciB0aGFuIHdoYXQgaXRzIGF1dGhvciBtZWFudC5cbiAqL1xuY29uc3QgUExVR0lOX1JFRl9OT05fRklFTERTOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICB2ZXJzaW9uOlxuICAgICdgdmVyc2lvbmAgaXMgbm90IGEgcGx1Z2luLXJlZmVyZW5jZSBmaWVsZCDigJQgaXQgaXMgaWdub3JlZCBhbmQgdGhlIGRlZmF1bHQgdmVyc2lvbiBpcyB1c2VkLiAnXG4gICAgKyAnUGluIG9yIHJhbmdlIHRoZSB2ZXJzaW9uIHdpdGggYGZpbHRlcjogeyB2ZXJzaW9uOiBcIjEuMi4zXCIgfWAgKGFsc28gXiwgfiwgMS54LCAxLjIsIGxhdGVzdCkuJyxcbn07XG5cbi8qKlxuICogUGx1Z2luIG9wdGlvbnMgc2NoZW1hIChuYW1lLWJhc2VkIHNlbGVjdGlvbilcbiAqL1xuY29uc3QgUGx1Z2luT3B0aW9uc1NjaGVtYSA9IHoub2JqZWN0KHtcbiAgbmFtZTogei5zdHJpbmcoKS5taW4oMSksXG4gIC8qKlxuICAgKiBUaGUgcHVibGlzaGVyIHdob3NlIGluc3RhbGxlZCBsaXN0aW5nIHRoZSByZWZlcmVuY2UgcmVzb2x2ZXMgdG9cbiAgICogKGRvY3MvcGx1Z2luLXB1Ymxpc2hpbmcubWQpLiBBYnNlbnQ6IHRoZSBvcmcncyBvd24gcGx1Z2luLCB0aGVuXG4gICAqIGl0cyBwYXJlbnQncywgdGhlbiB0aGUgT2ZmaWNpYWwgbGlzdGluZy5cbiAgICovXG4gIHB1Ymxpc2hlcjogei5zdHJpbmcoKS5tYXgoMzkpLnJlZ2V4KFBVQkxJU0hFUl9IQU5ETEVfUEFUVEVSTiwgJ3B1Ymxpc2hlciBtdXN0IGJlIGEgcHVibGlzaGVyIGhhbmRsZSAobG93ZXJjYXNlIGxldHRlcnMsIGRpZ2l0cyBhbmQgc2luZ2xlIGh5cGhlbnMpJykub3B0aW9uYWwoKSxcbiAgYWxpYXM6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgZmlsdGVyOiB6LnJlY29yZCh6LnN0cmluZygpLCB6LnVua25vd24oKSkub3B0aW9uYWwoKSxcbiAgbWV0YWRhdGE6IHoucmVjb3JkKHouc3RyaW5nKCksIHoudW5rbm93bigpKS5vcHRpb25hbCgpLFxufSkucGFzc3Rocm91Z2goKS5zdXBlclJlZmluZSgocmVmLCBjdHgpID0+IHtcbiAgZm9yIChjb25zdCBba2V5LCBtZXNzYWdlXSBvZiBPYmplY3QuZW50cmllcyhQTFVHSU5fUkVGX05PTl9GSUVMRFMpKSB7XG4gICAgaWYgKGtleSBpbiAocmVmIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KSkge1xuICAgICAgY3R4LmFkZElzc3VlKHsgY29kZTogJ2N1c3RvbScsIHBhdGg6IFtrZXldLCBtZXNzYWdlIH0pO1xuICAgIH1cbiAgfVxufSk7XG5cbi8qKlxuICogU3RhZ2Ugc3RlcCBzY2hlbWFcbiAqXG4gKiBgcGFzc3Rocm91Z2goKWAga2VlcHMgZm9yd2FyZC1jb21wYXRpYmxlIGZpZWxkcywgYnV0IGEgZmV3IGNvbW1vbiBtaXN0YWtlcyBhcmVcbiAqIHJlamVjdGVkIGxvdWRseSByYXRoZXIgdGhhbiBzaWxlbnRseSBpZ25vcmVkIGF0IHN5bnRoIOKAlCBtb3N0IG5vdGFibHkgYVxuICogdG9wLWxldmVsIGBjb21tYW5kc2AsIHdoaWNoIGlzIE5PVCBhIHN0ZXAgZmllbGQgKHRoZSBwbHVnaW4ncyBvd24gY29tbWFuZHMgcnVuKVxuICogYW5kIHdvdWxkIG90aGVyd2lzZSBkbyBub3RoaW5nLlxuICovXG5jb25zdCBTVEVQX05PTl9GSUVMRFM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGNvbW1hbmRzOlxuICAgICdgY29tbWFuZHNgIGlzIG5vdCBhIHN0ZXAgZmllbGQg4oCUIGl0IGlzIGlnbm9yZWQgYXQgc3ludGggKHRoZSBwbHVnaW5cXCdzIG93biBjb21tYW5kcyBydW4pLiAnXG4gICAgKyAnVG8gY2hhbmdlIHdoYXQgYSBzdGVwIHJ1bnMsIHVzZSBhIHBsdWdpbiBlbnYga25vYiAoZS5nLiBgbWV0YWRhdGEuR1JBRExFX1RBU0tgKSwgJ1xuICAgICsgJ2BwcmVDb21tYW5kc2AvYHBvc3RDb21tYW5kc2AgdG8gYWRkIGNvbW1hbmRzIGFyb3VuZCB0aGUgcGx1Z2luXFwncywgb3IgdGhlICdcbiAgICArICdgYXdzOmNkazpwaXBlbGluZXM6Y29kZWJ1aWxkc3RlcDpjb21tYW5kc2AgbWV0YWRhdGEga2V5IGZvciBhIGZ1bGwgb3ZlcnJpZGUuJyxcbn07XG5cbmNvbnN0IFN0YWdlU3RlcFNjaGVtYSA9IHoub2JqZWN0KHtcbiAgcGx1Z2luOiBQbHVnaW5PcHRpb25zU2NoZW1hLFxuICBtZXRhZGF0YTogei5yZWNvcmQoei5zdHJpbmcoKSwgei51bmtub3duKCkpLm9wdGlvbmFsKCksXG4gIG5ldHdvcms6IHoucmVjb3JkKHouc3RyaW5nKCksIHoudW5rbm93bigpKS5vcHRpb25hbCgpLFxuICBwb3NpdGlvbjogei5lbnVtKFsncHJlJywgJ3Bvc3QnXSkub3B0aW9uYWwoKSxcbn0pLnBhc3N0aHJvdWdoKCkuc3VwZXJSZWZpbmUoKHN0ZXAsIGN0eCkgPT4ge1xuICBmb3IgKGNvbnN0IFtrZXksIG1lc3NhZ2VdIG9mIE9iamVjdC5lbnRyaWVzKFNURVBfTk9OX0ZJRUxEUykpIHtcbiAgICBpZiAoa2V5IGluIChzdGVwIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KSkge1xuICAgICAgY3R4LmFkZElzc3VlKHsgY29kZTogJ2N1c3RvbScsIHBhdGg6IFtrZXldLCBtZXNzYWdlIH0pO1xuICAgIH1cbiAgfVxufSk7XG5cbi8qKlxuICogU3RhZ2Ugc2NoZW1hLiBgcGFzc3Rocm91Z2goKWAgbGlrZSBpdHMgc2libGluZ3M6IGEgc3RyaWN0LWJ5LWRlZmF1bHQgb2JqZWN0XG4gKiBoZXJlIHN0cmlwcGVkIGV2ZXJ5IHVuZGVjbGFyZWQgc3RhZ2UgZmllbGQgYmVmb3JlIHN0b3JhZ2Ug4oCUIGluY2x1ZGluZ1xuICogYGVudmlyb25tZW50YCwgd2hpY2ggbWFya3MgYSBzdGFnZSBhcyBhIERPUkEgZGVwbG95LlxuICovXG5jb25zdCBTdGFnZVNjaGVtYSA9IHoub2JqZWN0KHtcbiAgc3RhZ2VOYW1lOiB6LnN0cmluZygpLm1pbigxKSxcbiAgYWxpYXM6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgLyoqIERlcGxveSBlbnZpcm9ubWVudCB0aGlzIHN0YWdlIHRhcmdldHMgKERPUkEgZGVwbG95IGF0dHJpYnV0aW9uLCBgcGIuZGVwbG95c2ApLiAqL1xuICBlbnZpcm9ubWVudDogei5zdHJpbmcoKS5taW4oMSkubWF4KDY0KS5vcHRpb25hbCgpLFxuICBzdGVwczogei5hcnJheShTdGFnZVN0ZXBTY2hlbWEpLm1pbigxKSxcbn0pLnBhc3N0aHJvdWdoKCk7XG5cbi8qKlxuICogQnVpbGRlclByb3BzIHNjaGVtYSDigJQgc3RydWN0dXJhbCB2YWxpZGF0aW9uIGZvciBwaXBlbGluZSBjb25maWd1cmF0aW9uLlxuICogVXNlcyBwYXNzdGhyb3VnaCgpIHRvIGFsbG93IGFkZGl0aW9uYWwgZmllbGRzIHdpdGhvdXQgcmVqZWN0aW5nIHRoZW0uXG4gKi9cbmNvbnN0IEJ1aWxkZXJQcm9wc1NjaGVtYSA9IHoub2JqZWN0KHtcbiAgcHJvamVjdDogei5zdHJpbmcoKS5taW4oMSksXG4gIG9yZ2FuaXphdGlvbjogei5zdHJpbmcoKS5taW4oMSksXG4gIHBpcGVsaW5lTmFtZTogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBnbG9iYWw6IHoucmVjb3JkKHouc3RyaW5nKCksIHoudW5rbm93bigpKS5vcHRpb25hbCgpLFxuICBkZWZhdWx0czogei5yZWNvcmQoei5zdHJpbmcoKSwgei51bmtub3duKCkpLm9wdGlvbmFsKCksXG4gIHJvbGU6IHoucmVjb3JkKHouc3RyaW5nKCksIHoudW5rbm93bigpKS5vcHRpb25hbCgpLFxuICBzeW50aDogei5vYmplY3Qoe1xuICAgIHNvdXJjZTogei5yZWNvcmQoei5zdHJpbmcoKSwgei51bmtub3duKCkpLm9wdGlvbmFsKCksXG4gICAgcGx1Z2luOiBQbHVnaW5PcHRpb25zU2NoZW1hLFxuICB9KS5wYXNzdGhyb3VnaCgpLFxuICBzdGFnZXM6IHouYXJyYXkoU3RhZ2VTY2hlbWEpLm9wdGlvbmFsKCksXG59KS5wYXNzdGhyb3VnaCgpO1xuXG4vKipcbiAqIFBpcGVsaW5lIGNyZWF0aW9uIHNjaGVtYVxuICovXG5leHBvcnQgY29uc3QgUGlwZWxpbmVDcmVhdGVTY2hlbWEgPSB6Lm9iamVjdCh7XG4gIC4uLkNhdGFsb2dNZXRhZGF0YVNoYXBlLFxuICBwcm9qZWN0OiB6LnN0cmluZygpLm1pbigxLCAnUHJvamVjdCBpcyByZXF1aXJlZCcpLFxuICBvcmdhbml6YXRpb246IHouc3RyaW5nKCkubWluKDEsICdPcmdhbml6YXRpb24gaXMgcmVxdWlyZWQnKSxcbiAgcGlwZWxpbmVOYW1lOiB6LnN0cmluZygpLm1pbigxKS5vcHRpb25hbCgpLFxuICBkZXNjcmlwdGlvbjogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBrZXl3b3Jkczogei5hcnJheSh6LnN0cmluZygpKS5vcHRpb25hbCgpLFxuICB2aXNpYmlsaXR5OiBWaXNpYmlsaXR5U2NoZW1hLm9wdGlvbmFsKCksXG4gIHByb3BzOiBCdWlsZGVyUHJvcHNTY2hlbWEsXG59KTtcblxuLyoqXG4gKiBQaXBlbGluZSB1cGRhdGUgc2NoZW1hXG4gKi9cbmV4cG9ydCBjb25zdCBQaXBlbGluZVVwZGF0ZVNjaGVtYSA9IHoub2JqZWN0KHtcbiAgLi4uQ2F0YWxvZ01ldGFkYXRhU2hhcGUsXG4gIHBpcGVsaW5lTmFtZTogei5zdHJpbmcoKS5taW4oMSkub3B0aW9uYWwoKSxcbiAgZGVzY3JpcHRpb246IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAga2V5d29yZHM6IHouYXJyYXkoei5zdHJpbmcoKSkub3B0aW9uYWwoKSxcbiAgcHJvcHM6IEJ1aWxkZXJQcm9wc1NjaGVtYS5vcHRpb25hbCgpLFxuICBpc0FjdGl2ZTogQm9vbGVhblF1ZXJ5U2NoZW1hLm9wdGlvbmFsKCksXG4gIGlzRGVmYXVsdDogQm9vbGVhblF1ZXJ5U2NoZW1hLm9wdGlvbmFsKCksXG4gIHZpc2liaWxpdHk6IFZpc2liaWxpdHlTY2hlbWEub3B0aW9uYWwoKSxcbn0pO1xuIl19
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The shared plugin base images (deploy/plugins/_base): what `plugin new`
|
|
3
|
+
* scaffolds `FROM` and what AI plugin generation tells the model to start
|
|
4
|
+
* from. Listed here because neither the CLI nor the plugin service ships the
|
|
5
|
+
* repo; a pipeline-manager test fails when the list drifts from the tree.
|
|
6
|
+
*/
|
|
7
|
+
/** One `pipeline-<eco>-base` image a plugin can start `FROM`. */
|
|
8
|
+
export interface PluginBaseImage {
|
|
9
|
+
/** `--base` value. */
|
|
10
|
+
key: string;
|
|
11
|
+
/** Image tag the Dockerfile's `FROM` names. */
|
|
12
|
+
image: string;
|
|
13
|
+
/** Directory under deploy/plugins/_base. */
|
|
14
|
+
dir: string;
|
|
15
|
+
/** What the base provides on top of the root base. */
|
|
16
|
+
provides: string;
|
|
17
|
+
/** A command that proves the runtime is on PATH (the scaffold's smokeTest). */
|
|
18
|
+
smokeTest: string;
|
|
19
|
+
}
|
|
20
|
+
export declare const PLUGIN_BASE_IMAGES: readonly PluginBaseImage[];
|