@pipeline-builder/pipeline-core 3.4.69 → 3.4.71
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 +62 -33
- package/lib/config/app-config.d.ts +1 -1
- package/lib/config/app-config.js +20 -25
- package/lib/config/billing-config.d.ts +1 -1
- package/lib/config/billing-config.js +2 -5
- package/lib/config/config-types.d.ts +1 -1
- package/lib/config/config-types.js +2 -3
- package/lib/config/infrastructure-config.d.ts +1 -1
- package/lib/config/infrastructure-config.js +25 -38
- package/lib/config/server-config.d.ts +1 -1
- package/lib/config/server-config.js +12 -19
- package/lib/core/artifact-manager.js +3 -6
- package/lib/core/id-generator.js +4 -8
- package/lib/core/metadata-builder.d.ts +4 -4
- package/lib/core/metadata-builder.js +32 -44
- package/lib/core/network-types.d.ts +2 -2
- package/lib/core/network-types.js +2 -3
- package/lib/core/network.d.ts +3 -3
- package/lib/core/network.js +18 -20
- package/lib/core/pipeline-helpers.d.ts +3 -3
- package/lib/core/pipeline-helpers.js +73 -79
- package/lib/core/pipeline-types.d.ts +2 -2
- package/lib/core/pipeline-types.js +5 -11
- package/lib/core/role-types.js +2 -3
- package/lib/core/role.d.ts +3 -3
- package/lib/core/role.js +24 -25
- package/lib/core/security-group-types.js +2 -3
- package/lib/core/security-group.d.ts +3 -3
- package/lib/core/security-group.js +8 -9
- package/lib/handlers/plugin-lookup-handler.d.ts +1 -1
- package/lib/handlers/plugin-lookup-handler.js +18 -56
- package/lib/index.d.ts +17 -17
- package/lib/index.js +28 -71
- package/lib/pipeline/pipeline-builder.d.ts +5 -5
- package/lib/pipeline/pipeline-builder.js +73 -110
- package/lib/pipeline/pipeline-configuration.d.ts +5 -5
- package/lib/pipeline/pipeline-configuration.js +15 -19
- package/lib/pipeline/plugin-lookup.d.ts +3 -3
- package/lib/pipeline/plugin-lookup.js +32 -31
- package/lib/pipeline/source-builder.d.ts +2 -2
- package/lib/pipeline/source-builder.js +27 -29
- package/lib/pipeline/source-types.d.ts +1 -1
- package/lib/pipeline/source-types.js +2 -3
- package/lib/pipeline/stage-builder.d.ts +5 -5
- package/lib/pipeline/stage-builder.js +9 -9
- package/lib/pipeline/step-types.d.ts +4 -4
- package/lib/pipeline/step-types.js +2 -3
- package/lib/template/cache.d.ts +1 -1
- package/lib/template/cache.js +5 -9
- package/lib/template/evaluator.d.ts +1 -1
- package/lib/template/evaluator.js +11 -16
- package/lib/template/index.d.ts +9 -9
- package/lib/template/index.js +31 -56
- package/lib/template/metrics.d.ts +0 -7
- package/lib/template/metrics.js +17 -10
- package/lib/template/plugin-resolver.js +5 -9
- package/lib/template/tokenizer.js +13 -19
- package/lib/template/topo-sort.js +2 -5
- package/lib/template/validate.d.ts +1 -1
- package/lib/template/validate.js +20 -25
- package/lib/template/walker.d.ts +1 -1
- package/lib/template/walker.js +6 -10
- package/package.json +20 -14
package/lib/template/validate.js
CHANGED
|
@@ -1,15 +1,10 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
// Copyright 2026 Pipeline Builder Contributors
|
|
3
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
const evaluator_1 = require("./evaluator");
|
|
10
|
-
const tokenizer_1 = require("./tokenizer");
|
|
11
|
-
const topo_sort_1 = require("./topo-sort");
|
|
12
|
-
const walker_1 = require("./walker");
|
|
3
|
+
import { ErrorCode } from '@pipeline-builder/api-core';
|
|
4
|
+
import { dependencies } from './evaluator.js';
|
|
5
|
+
import { TokenizerError, tokenize } from './tokenizer.js';
|
|
6
|
+
import { topoSort } from './topo-sort.js';
|
|
7
|
+
import { visitStrings, walkAndBind } from './walker.js';
|
|
13
8
|
/**
|
|
14
9
|
* Build a predicate that accepts a template path when its root is in the
|
|
15
10
|
* given allow-list. Used by the validator to check that every `{{ path }}`
|
|
@@ -19,7 +14,7 @@ const walker_1 = require("./walker");
|
|
|
19
14
|
* existence here because metadata / vars keys are user-provided per pipeline
|
|
20
15
|
* and not known at plugin upload time.
|
|
21
16
|
*/
|
|
22
|
-
function allowedScopeRoots(roots) {
|
|
17
|
+
export function allowedScopeRoots(roots) {
|
|
23
18
|
const allowed = new Set(roots);
|
|
24
19
|
return (path) => {
|
|
25
20
|
const root = path[0];
|
|
@@ -35,21 +30,21 @@ function allowedScopeRoots(roots) {
|
|
|
35
30
|
* `isKnownPath` (the scope-shape predicate). Template text is parsed
|
|
36
31
|
* fresh; use a TokenCache externally if repeated parsing is a concern.
|
|
37
32
|
*/
|
|
38
|
-
function validateTemplates(doc, isTemplatable, isKnownPath) {
|
|
33
|
+
export function validateTemplates(doc, isTemplatable, isKnownPath) {
|
|
39
34
|
const errors = [];
|
|
40
35
|
const entries = [];
|
|
41
36
|
// Pass 1: parse every templatable field, collecting parse errors instead
|
|
42
37
|
// of throwing on the first one.
|
|
43
|
-
|
|
38
|
+
visitStrings(doc, isTemplatable, (field, source) => {
|
|
44
39
|
try {
|
|
45
|
-
entries.push({ field, tokens:
|
|
40
|
+
entries.push({ field, tokens: tokenize(source) });
|
|
46
41
|
}
|
|
47
42
|
catch (err) {
|
|
48
|
-
if (err instanceof
|
|
49
|
-
errors.push({ field, line: err.pos.line, col: err.pos.col, code:
|
|
43
|
+
if (err instanceof TokenizerError) {
|
|
44
|
+
errors.push({ field, line: err.pos.line, col: err.pos.col, code: ErrorCode.TEMPLATE_PARSE_ERROR, message: err.message });
|
|
50
45
|
}
|
|
51
46
|
else {
|
|
52
|
-
errors.push({ field, code:
|
|
47
|
+
errors.push({ field, code: ErrorCode.TEMPLATE_PARSE_ERROR, message: String(err) });
|
|
53
48
|
}
|
|
54
49
|
}
|
|
55
50
|
});
|
|
@@ -59,11 +54,11 @@ function validateTemplates(doc, isTemplatable, isKnownPath) {
|
|
|
59
54
|
if (tok.kind !== 'expr')
|
|
60
55
|
continue;
|
|
61
56
|
if (tok.path[0] === 'secrets') {
|
|
62
|
-
errors.push(mkErr(field, tok.pos,
|
|
57
|
+
errors.push(mkErr(field, tok.pos, ErrorCode.TEMPLATE_SECRETS_RESERVED, '\'secrets\' is a reserved scope — use the plugin\'s \'secrets:\' field instead', tok.path.join('.')));
|
|
63
58
|
continue;
|
|
64
59
|
}
|
|
65
60
|
if (!isKnownPath(tok.path)) {
|
|
66
|
-
errors.push(mkErr(field, tok.pos,
|
|
61
|
+
errors.push(mkErr(field, tok.pos, ErrorCode.TEMPLATE_UNKNOWN_PATH, `Template references unknown scope root '${tok.path[0]}'`, tok.path.join('.')));
|
|
67
62
|
}
|
|
68
63
|
}
|
|
69
64
|
}
|
|
@@ -78,18 +73,18 @@ function validateTemplates(doc, isTemplatable, isKnownPath) {
|
|
|
78
73
|
* path `metadata.env`; a template `{{ metadata.region }}` in that field
|
|
79
74
|
* declares a dependency on `metadata.region`.
|
|
80
75
|
*/
|
|
81
|
-
function detectCycles(doc, isTemplatable, fieldToScopePath) {
|
|
76
|
+
export function detectCycles(doc, isTemplatable, fieldToScopePath) {
|
|
82
77
|
const nodes = [];
|
|
83
|
-
for (const entry of
|
|
78
|
+
for (const entry of walkAndBind(doc, isTemplatable)) {
|
|
84
79
|
const key = fieldToScopePath(entry.field);
|
|
85
80
|
if (!key)
|
|
86
81
|
continue;
|
|
87
|
-
nodes.push({ key, deps:
|
|
82
|
+
nodes.push({ key, deps: dependencies(entry.tokens) });
|
|
88
83
|
}
|
|
89
|
-
const { cycles } =
|
|
84
|
+
const { cycles } = topoSort(nodes);
|
|
90
85
|
return cycles.map(c => ({
|
|
91
86
|
field: c[0],
|
|
92
|
-
code:
|
|
87
|
+
code: ErrorCode.TEMPLATE_CYCLE,
|
|
93
88
|
message: `Template cycle detected: ${c.join(' -> ')}`,
|
|
94
89
|
cycle: c,
|
|
95
90
|
}));
|
|
@@ -98,4 +93,4 @@ function detectCycles(doc, isTemplatable, fieldToScopePath) {
|
|
|
98
93
|
function mkErr(field, pos, code, message, path) {
|
|
99
94
|
return { field, line: pos.line, col: pos.col, code, message, ...(path && { path }) };
|
|
100
95
|
}
|
|
101
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGVtcGxhdGUvdmFsaWRhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLCtDQUErQztBQUMvQyxzQ0FBc0M7O0FBZ0N0Qyw4Q0FNQztBQVdELDhDQXlDQztBQVdELG9DQWtCQztBQXJIRCx5REFBdUQ7QUFDdkQsMkNBQTJDO0FBQzNDLDJDQUE4RTtBQUM5RSwyQ0FBdUM7QUFDdkMscUNBQXFFO0FBaUJyRTs7Ozs7Ozs7R0FRRztBQUNILFNBQWdCLGlCQUFpQixDQUFDLEtBQWU7SUFDL0MsTUFBTSxPQUFPLEdBQUcsSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDL0IsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFO1FBQ2QsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3JCLE9BQU8sQ0FBQyxDQUFDLElBQUksSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3JDLENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILFNBQWdCLGlCQUFpQixDQUMvQixHQUFNLEVBQ04sYUFBNkIsRUFDN0IsV0FBd0M7SUFFeEMsTUFBTSxNQUFNLEdBQW9CLEVBQUUsQ0FBQztJQUNuQyxNQUFNLE9BQU8sR0FBeUMsRUFBRSxDQUFDO0lBRXpELHlFQUF5RTtJQUN6RSxnQ0FBZ0M7SUFDaEMsSUFBQSxxQkFBWSxFQUFDLEdBQUcsRUFBRSxhQUFhLEVBQUUsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLEVBQUU7UUFDakQsSUFBSSxDQUFDO1lBQ0gsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsSUFBQSxvQkFBUSxFQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNwRCxDQUFDO1FBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztZQUNiLElBQUksR0FB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S0FDVCxDQUFDLENBQUMsQ0FBQztBQUNOLENBQUM7QUFFRCwrRUFBK0U7QUFFL0UsU0FBUyxLQUFLLENBQ1osS0FBYSxFQUNiLEdBQW1CLEVBQ25CLElBQWUsRUFDZixPQUFlLEVBQ2YsSUFBYTtJQUViLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxHQUFHLENBQUMsSUFBSSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDO0FBQ3ZGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgMjAyNiBQaXBlbGluZSBCdWlsZGVyIENvbnRyaWJ1dG9yc1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuaW1wb3J0IHsgRXJyb3JDb2RlIH0gZnJvbSAnQHBpcGVsaW5lLWJ1aWxkZXIvYXBpLWNvcmUnO1xuaW1wb3J0IHsgZGVwZW5kZW5jaWVzIH0gZnJvbSAnLi9ldmFsdWF0b3InO1xuaW1wb3J0IHsgU291cmNlUG9zaXRpb24sIFRva2VuLCBUb2tlbml6ZXJFcnJvciwgdG9rZW5pemUgfSBmcm9tICcuL3Rva2VuaXplcic7XG5pbXBvcnQgeyB0b3BvU29ydCB9IGZyb20gJy4vdG9wby1zb3J0JztcbmltcG9ydCB7IEZpZWxkUHJlZGljYXRlLCB2aXNpdFN0cmluZ3MsIHdhbGtBbmRCaW5kIH0gZnJvbSAnLi93YWxrZXInO1xuXG5leHBvcnQgaW50ZXJmYWNlIFRlbXBsYXRlRXJyb3Ige1xuICBmaWVsZDogc3RyaW5nO1xuICBsaW5lPzogbnVtYmVyO1xuICBjb2w/OiBudW1iZXI7XG4gIGNvZGU6IEVycm9yQ29kZTtcbiAgbWVzc2FnZTogc3RyaW5nO1xuICBwYXRoPzogc3RyaW5nO1xuICBjeWNsZT86IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFZhbGlkYXRpb25SZXN1bHQge1xuICB2YWxpZDogYm9vbGVhbjtcbiAgZXJyb3JzOiBUZW1wbGF0ZUVycm9yW107XG59XG5cbi8qKlxuICogQnVpbGQgYSBwcmVkaWNhdGUgdGhhdCBhY2NlcHRzIGEgdGVtcGxhdGUgcGF0aCB3aGVuIGl0cyByb290IGlzIGluIHRoZVxuICogZ2l2ZW4gYWxsb3ctbGlzdC4gVXNlZCBieSB0aGUgdmFsaWRhdG9yIHRvIGNoZWNrIHRoYXQgZXZlcnkgYHt7IHBhdGggfX1gXG4gKiByZXNvbHZlcyB0byBhIGtub3duIHNjb3BlIHJvb3QgKGBwaXBlbGluZWAsIGBwbHVnaW5gLCBgZW52YCwg4oCmKS5cbiAqXG4gKiBPbmx5IHRoZSByb290IHNlZ21lbnQgaXMgY2hlY2tlZCDigJQgd2UgZG9uJ3QgZW5mb3JjZSBleGFjdCBuZXN0ZWQta2V5XG4gKiBleGlzdGVuY2UgaGVyZSBiZWNhdXNlIG1ldGFkYXRhIC8gdmFycyBrZXlzIGFyZSB1c2VyLXByb3ZpZGVkIHBlciBwaXBlbGluZVxuICogYW5kIG5vdCBrbm93biBhdCBwbHVnaW4gdXBsb2FkIHRpbWUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhbGxvd2VkU2NvcGVSb290cyhyb290czogc3RyaW5nW10pOiAocGF0aDogc3RyaW5nW10pID0+IGJvb2xlYW4ge1xuICBjb25zdCBhbGxvd2VkID0gbmV3IFNldChyb290cyk7XG4gIHJldHVybiAocGF0aCkgPT4ge1xuICAgIGNvbnN0IHJvb3QgPSBwYXRoWzBdO1xuICAgIHJldHVybiAhIXJvb3QgJiYgYWxsb3dlZC5oYXMocm9vdCk7XG4gIH07XG59XG5cbi8qKlxuICogVmFsaWRhdGUgYWxsIHRlbXBsYXRlIHRva2VucyBpbiBhIGRvY3VtZW50IGhhdmUgd2VsbC1mb3JtZWQgcGF0aHMgYW5kXG4gKiBwb2ludCBhdCBhbGxvd2VkIHNjb3BlIHJvb3RzLiBSZXR1cm5zIGFsbCBlcnJvcnMgZm91bmQg4oCUIGRvZXMgTk9UIHN0b3BcbiAqIG9uIGZpcnN0LlxuICpcbiAqIENhbGxlciBzdXBwbGllcyBgaXNUZW1wbGF0YWJsZWAgKHRoZSBzY2hlbWEgYWxsb3ctbGlzdCkgYW5kXG4gKiBgaXNLbm93blBhdGhgICh0aGUgc2NvcGUtc2hhcGUgcHJlZGljYXRlKS4gVGVtcGxhdGUgdGV4dCBpcyBwYXJzZWRcbiAqIGZyZXNoOyB1c2UgYSBUb2tlbkNhY2hlIGV4dGVybmFsbHkgaWYgcmVwZWF0ZWQgcGFyc2luZyBpcyBhIGNvbmNlcm4uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZVRlbXBsYXRlczxUIGV4dGVuZHMgb2JqZWN0PihcbiAgZG9jOiBULFxuICBpc1RlbXBsYXRhYmxlOiBGaWVsZFByZWRpY2F0ZSxcbiAgaXNLbm93blBhdGg6IChwYXRoOiBzdHJpbmdbXSkgPT4gYm9vbGVhbixcbik6IFZhbGlkYXRpb25SZXN1bHQge1xuICBjb25zdCBlcnJvcnM6IFRlbXBsYXRlRXJyb3JbXSA9IFtdO1xuICBjb25zdCBlbnRyaWVzOiB7IGZpZWxkOiBzdHJpbmc7IHRva2VuczogVG9rZW5bXSB9W10gPSBbXTtcblxuICAvLyBQYXNzIDE6IHBhcnNlIGV2ZXJ5IHRlbXBsYXRhYmxlIGZpZWxkLCBjb2xsZWN0aW5nIHBhcnNlIGVycm9ycyBpbnN0ZWFkXG4gIC8vIG9mIHRocm93aW5nIG9uIHRoZSBmaXJzdCBvbmUuXG4gIHZpc2l0U3RyaW5ncyhkb2MsIGlzVGVtcGxhdGFibGUsIChmaWVsZCwgc291cmNlKSA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGVudHJpZXMucHVzaCh7IGZpZWxkLCB0b2tlbnM6IHRva2VuaXplKHNvdXJjZSkgfSk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBpZiAoZXJyIGluc3RhbmNlb2YgVG9rZW5pemVyRXJyb3IpIHtcbiAgICAgICAgZXJyb3JzLnB1c2goeyBmaWVsZCwgbGluZTogZXJyLnBvcy5saW5lLCBjb2w6IGVyci5wb3MuY29sLCBjb2RlOiBFcnJvckNvZGUuVEVNUExBVEVfUEFSU0VfRVJST1IsIG1lc3NhZ2U6IGVyci5tZXNzYWdlIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZXJyb3JzLnB1c2goeyBmaWVsZCwgY29kZTogRXJyb3JDb2RlLlRFTVBMQVRFX1BBUlNFX0VSUk9SLCBtZXNzYWdlOiBTdHJpbmcoZXJyKSB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH0pO1xuXG4gIC8vIFBhc3MgMjogdmFsaWRhdGUgZWFjaCBleHByJ3MgcGF0aCBpcyBzaGFwZS1hbGxvd2VkIGFuZCBub3QgcmVzZXJ2ZWRcbiAgZm9yIChjb25zdCB7IGZpZWxkLCB0b2tlbnMgfSBvZiBlbnRyaWVzKSB7XG4gICAgZm9yIChjb25zdCB0b2sgb2YgdG9rZW5zKSB7XG4gICAgICBpZiAodG9rLmtpbmQgIT09ICdleHByJykgY29udGludWU7XG4gICAgICBpZiAodG9rLnBhdGhbMF0gPT09ICdzZWNyZXRzJykge1xuICAgICAgICBlcnJvcnMucHVzaChta0VycihmaWVsZCwgdG9rLnBvcywgRXJyb3JDb2RlLlRFTVBMQVRFX1NFQ1JFVFNfUkVTRVJWRUQsXG4gICAgICAgICAgJ1xcJ3NlY3JldHNcXCcgaXMgYSByZXNlcnZlZCBzY29wZSDigJQgdXNlIHRoZSBwbHVnaW5cXCdzIFxcJ3NlY3JldHM6XFwnIGZpZWxkIGluc3RlYWQnLFxuICAgICAgICAgIHRvay5wYXRoLmpvaW4oJy4nKSkpO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIGlmICghaXNLbm93blBhdGgodG9rLnBhdGgpKSB7XG4gICAgICAgIGVycm9ycy5wdXNoKG1rRXJyKGZpZWxkLCB0b2sucG9zLCBFcnJvckNvZGUuVEVNUExBVEVfVU5LTk9XTl9QQVRILFxuICAgICAgICAgIGBUZW1wbGF0ZSByZWZlcmVuY2VzIHVua25vd24gc2NvcGUgcm9vdCAnJHt0b2sucGF0aFswXX0nYCxcbiAgICAgICAgICB0b2sucGF0aC5qb2luKCcuJykpKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4geyB2YWxpZDogZXJyb3JzLmxlbmd0aCA9PT0gMCwgZXJyb3JzIH07XG59XG5cbi8qKlxuICogRGV0ZWN0IGN5Y2xlcyBpbiBhIHNlbGYtcmVmZXJlbmNpbmcgZG9jdW1lbnQuIENhbGxlciBzdXBwbGllcyB0aGVcbiAqIHRlbXBsYXRhYmxlIHByZWRpY2F0ZSBhbmQgYSBmdW5jdGlvbiB0byBleHRyYWN0IHRoZSBzY29wZS1wYXRoIHRoYXRcbiAqIGVhY2ggdGVtcGxhdGUgZmllbGQgd3JpdGVzIHRvIChzYW1lIHZhbHVlIHVzZWQgYXMgYSBrZXkgaW4gZGVwcykuXG4gKlxuICogRXhhbXBsZSBmb3IgcGlwZWxpbmUuanNvbjogdGhlIGZpZWxkIGBtZXRhZGF0YS5lbnZgIHdyaXRlcyB0byBzY29wZVxuICogcGF0aCBgbWV0YWRhdGEuZW52YDsgYSB0ZW1wbGF0ZSBge3sgbWV0YWRhdGEucmVnaW9uIH19YCBpbiB0aGF0IGZpZWxkXG4gKiBkZWNsYXJlcyBhIGRlcGVuZGVuY3kgb24gYG1ldGFkYXRhLnJlZ2lvbmAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZXRlY3RDeWNsZXM8VCBleHRlbmRzIG9iamVjdD4oXG4gIGRvYzogVCxcbiAgaXNUZW1wbGF0YWJsZTogRmllbGRQcmVkaWNhdGUsXG4gIGZpZWxkVG9TY29wZVBhdGg6IChmaWVsZDogc3RyaW5nKSA9PiBzdHJpbmcgfCBudWxsLFxuKTogVGVtcGxhdGVFcnJvcltdIHtcbiAgY29uc3Qgbm9kZXMgPSBbXTtcbiAgZm9yIChjb25zdCBlbnRyeSBvZiB3YWxrQW5kQmluZChkb2MsIGlzVGVtcGxhdGFibGUpKSB7XG4gICAgY29uc3Qga2V5ID0gZmllbGRUb1Njb3BlUGF0aChlbnRyeS5maWVsZCk7XG4gICAgaWYgKCFrZXkpIGNvbnRpbnVlO1xuICAgIG5vZGVzLnB1c2goeyBrZXksIGRlcHM6IGRlcGVuZGVuY2llcyhlbnRyeS50b2tlbnMpIH0pO1xuICB9XG4gIGNvbnN0IHsgY3ljbGVzIH0gPSB0b3BvU29ydChub2Rlcyk7XG4gIHJldHVybiBjeWNsZXMubWFwKGMgPT4gKHtcbiAgICBmaWVsZDogY1swXSEsXG4gICAgY29kZTogRXJyb3JDb2RlLlRFTVBMQVRFX0NZQ0xFLFxuICAgIG1lc3NhZ2U6IGBUZW1wbGF0ZSBjeWNsZSBkZXRlY3RlZDogJHtjLmpvaW4oJyAtPiAnKX1gLFxuICAgIGN5Y2xlOiBjLFxuICB9KSk7XG59XG5cbi8vIC0tIGhlbHBlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuZnVuY3Rpb24gbWtFcnIoXG4gIGZpZWxkOiBzdHJpbmcsXG4gIHBvczogU291cmNlUG9zaXRpb24sXG4gIGNvZGU6IEVycm9yQ29kZSxcbiAgbWVzc2FnZTogc3RyaW5nLFxuICBwYXRoPzogc3RyaW5nLFxuKTogVGVtcGxhdGVFcnJvciB7XG4gIHJldHVybiB7IGZpZWxkLCBsaW5lOiBwb3MubGluZSwgY29sOiBwb3MuY29sLCBjb2RlLCBtZXNzYWdlLCAuLi4ocGF0aCAmJiB7IHBhdGggfSkgfTtcbn1cblxuIl19
|
|
96
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGVtcGxhdGUvdmFsaWRhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHNDQUFzQztBQUV0QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBbUMsY0FBYyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMxQyxPQUFPLEVBQXVCLFlBQVksRUFBRSxXQUFXLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFpQjdFOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxVQUFVLGlCQUFpQixDQUFDLEtBQWU7SUFDL0MsTUFBTSxPQUFPLEdBQUcsSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDL0IsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFO1FBQ2QsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3JCLE9BQU8sQ0FBQyxDQUFDLElBQUksSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3JDLENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sVUFBVSxpQkFBaUIsQ0FDL0IsR0FBTSxFQUNOLGFBQTZCLEVBQzdCLFdBQXdDO0lBRXhDLE1BQU0sTUFBTSxHQUFvQixFQUFFLENBQUM7SUFDbkMsTUFBTSxPQUFPLEdBQXlDLEVBQUUsQ0FBQztJQUV6RCx5RUFBeUU7SUFDekUsZ0NBQWdDO0lBQ2hDLFlBQVksQ0FBQyxHQUFHLEVBQUUsYUFBYSxFQUFFLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxFQUFFO1FBQ2pELElBQUksQ0FBQztZQUNILE9B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Q1osSUFBSSxFQUFFLFNBQVMsQ0FBQyxjQUFjO1FBQzlCLE9BQU8sRUFBRSw0QkFBNEIsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRTtRQUNyRCxLQUFLLEVBQUUsQ0FBQztLQUNULENBQUMsQ0FBQyxDQUFDO0FBQ04sQ0FBQztBQUVELCtFQUErRTtBQUUvRSxTQUFTLEtBQUssQ0FDWixLQUFhLEVBQ2IsR0FBbUIsRUFDbkIsSUFBZSxFQUNmLE9BQWUsRUFDZixJQUFhO0lBRWIsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEdBQUcsQ0FBQyxJQUFJLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUM7QUFDdkYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG5pbXBvcnQgeyBFcnJvckNvZGUgfSBmcm9tICdAcGlwZWxpbmUtYnVpbGRlci9hcGktY29yZSc7XG5pbXBvcnQgeyBkZXBlbmRlbmNpZXMgfSBmcm9tICcuL2V2YWx1YXRvci5qcyc7XG5pbXBvcnQgeyB0eXBlIFNvdXJjZVBvc2l0aW9uLCB0eXBlIFRva2VuLCBUb2tlbml6ZXJFcnJvciwgdG9rZW5pemUgfSBmcm9tICcuL3Rva2VuaXplci5qcyc7XG5pbXBvcnQgeyB0b3BvU29ydCB9IGZyb20gJy4vdG9wby1zb3J0LmpzJztcbmltcG9ydCB7IHR5cGUgRmllbGRQcmVkaWNhdGUsIHZpc2l0U3RyaW5ncywgd2Fsa0FuZEJpbmQgfSBmcm9tICcuL3dhbGtlci5qcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGVtcGxhdGVFcnJvciB7XG4gIGZpZWxkOiBzdHJpbmc7XG4gIGxpbmU/OiBudW1iZXI7XG4gIGNvbD86IG51bWJlcjtcbiAgY29kZTogRXJyb3JDb2RlO1xuICBtZXNzYWdlOiBzdHJpbmc7XG4gIHBhdGg/OiBzdHJpbmc7XG4gIGN5Y2xlPzogc3RyaW5nW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVmFsaWRhdGlvblJlc3VsdCB7XG4gIHZhbGlkOiBib29sZWFuO1xuICBlcnJvcnM6IFRlbXBsYXRlRXJyb3JbXTtcbn1cblxuLyoqXG4gKiBCdWlsZCBhIHByZWRpY2F0ZSB0aGF0IGFjY2VwdHMgYSB0ZW1wbGF0ZSBwYXRoIHdoZW4gaXRzIHJvb3QgaXMgaW4gdGhlXG4gKiBnaXZlbiBhbGxvdy1saXN0LiBVc2VkIGJ5IHRoZSB2YWxpZGF0b3IgdG8gY2hlY2sgdGhhdCBldmVyeSBge3sgcGF0aCB9fWBcbiAqIHJlc29sdmVzIHRvIGEga25vd24gc2NvcGUgcm9vdCAoYHBpcGVsaW5lYCwgYHBsdWdpbmAsIGBlbnZgLCDigKYpLlxuICpcbiAqIE9ubHkgdGhlIHJvb3Qgc2VnbWVudCBpcyBjaGVja2VkIOKAlCB3ZSBkb24ndCBlbmZvcmNlIGV4YWN0IG5lc3RlZC1rZXlcbiAqIGV4aXN0ZW5jZSBoZXJlIGJlY2F1c2UgbWV0YWRhdGEgLyB2YXJzIGtleXMgYXJlIHVzZXItcHJvdmlkZWQgcGVyIHBpcGVsaW5lXG4gKiBhbmQgbm90IGtub3duIGF0IHBsdWdpbiB1cGxvYWQgdGltZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFsbG93ZWRTY29wZVJvb3RzKHJvb3RzOiBzdHJpbmdbXSk6IChwYXRoOiBzdHJpbmdbXSkgPT4gYm9vbGVhbiB7XG4gIGNvbnN0IGFsbG93ZWQgPSBuZXcgU2V0KHJvb3RzKTtcbiAgcmV0dXJuIChwYXRoKSA9PiB7XG4gICAgY29uc3Qgcm9vdCA9IHBhdGhbMF07XG4gICAgcmV0dXJuICEhcm9vdCAmJiBhbGxvd2VkLmhhcyhyb290KTtcbiAgfTtcbn1cblxuLyoqXG4gKiBWYWxpZGF0ZSBhbGwgdGVtcGxhdGUgdG9rZW5zIGluIGEgZG9jdW1lbnQgaGF2ZSB3ZWxsLWZvcm1lZCBwYXRocyBhbmRcbiAqIHBvaW50IGF0IGFsbG93ZWQgc2NvcGUgcm9vdHMuIFJldHVybnMgYWxsIGVycm9ycyBmb3VuZCDigJQgZG9lcyBOT1Qgc3RvcFxuICogb24gZmlyc3QuXG4gKlxuICogQ2FsbGVyIHN1cHBsaWVzIGBpc1RlbXBsYXRhYmxlYCAodGhlIHNjaGVtYSBhbGxvdy1saXN0KSBhbmRcbiAqIGBpc0tub3duUGF0aGAgKHRoZSBzY29wZS1zaGFwZSBwcmVkaWNhdGUpLiBUZW1wbGF0ZSB0ZXh0IGlzIHBhcnNlZFxuICogZnJlc2g7IHVzZSBhIFRva2VuQ2FjaGUgZXh0ZXJuYWxseSBpZiByZXBlYXRlZCBwYXJzaW5nIGlzIGEgY29uY2Vybi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlVGVtcGxhdGVzPFQgZXh0ZW5kcyBvYmplY3Q+KFxuICBkb2M6IFQsXG4gIGlzVGVtcGxhdGFibGU6IEZpZWxkUHJlZGljYXRlLFxuICBpc0tub3duUGF0aDogKHBhdGg6IHN0cmluZ1tdKSA9PiBib29sZWFuLFxuKTogVmFsaWRhdGlvblJlc3VsdCB7XG4gIGNvbnN0IGVycm9yczogVGVtcGxhdGVFcnJvcltdID0gW107XG4gIGNvbnN0IGVudHJpZXM6IHsgZmllbGQ6IHN0cmluZzsgdG9rZW5zOiBUb2tlbltdIH1bXSA9IFtdO1xuXG4gIC8vIFBhc3MgMTogcGFyc2UgZXZlcnkgdGVtcGxhdGFibGUgZmllbGQsIGNvbGxlY3RpbmcgcGFyc2UgZXJyb3JzIGluc3RlYWRcbiAgLy8gb2YgdGhyb3dpbmcgb24gdGhlIGZpcnN0IG9uZS5cbiAgdmlzaXRTdHJpbmdzKGRvYywgaXNUZW1wbGF0YWJsZSwgKGZpZWxkLCBzb3VyY2UpID0+IHtcbiAgICB0cnkge1xuICAgICAgZW50cmllcy5wdXNoKHsgZmllbGQsIHRva2VuczogdG9rZW5pemUoc291cmNlKSB9KTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGlmIChlcnIgaW5zdGFuY2VvZiBUb2tlbml6ZXJFcnJvcikge1xuICAgICAgICBlcnJvcnMucHVzaCh7IGZpZWxkLCBsaW5lOiBlcnIucG9zLmxpbmUsIGNvbDogZXJyLnBvcy5jb2wsIGNvZGU6IEVycm9yQ29kZS5URU1QTEFURV9QQVJTRV9FUlJPUiwgbWVzc2FnZTogZXJyLm1lc3NhZ2UgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBlcnJvcnMucHVzaCh7IGZpZWxkLCBjb2RlOiBFcnJvckNvZGUuVEVNUExBVEVfUEFSU0VfRVJST1IsIG1lc3NhZ2U6IFN0cmluZyhlcnIpIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfSk7XG5cbiAgLy8gUGFzcyAyOiB2YWxpZGF0ZSBlYWNoIGV4cHIncyBwYXRoIGlzIHNoYXBlLWFsbG93ZWQgYW5kIG5vdCByZXNlcnZlZFxuICBmb3IgKGNvbnN0IHsgZmllbGQsIHRva2VucyB9IG9mIGVudHJpZXMpIHtcbiAgICBmb3IgKGNvbnN0IHRvayBvZiB0b2tlbnMpIHtcbiAgICAgIGlmICh0b2sua2luZCAhPT0gJ2V4cHInKSBjb250aW51ZTtcbiAgICAgIGlmICh0b2sucGF0aFswXSA9PT0gJ3NlY3JldHMnKSB7XG4gICAgICAgIGVycm9ycy5wdXNoKG1rRXJyKGZpZWxkLCB0b2sucG9zLCBFcnJvckNvZGUuVEVNUExBVEVfU0VDUkVUU19SRVNFUlZFRCxcbiAgICAgICAgICAnXFwnc2VjcmV0c1xcJyBpcyBhIHJlc2VydmVkIHNjb3BlIOKAlCB1c2UgdGhlIHBsdWdpblxcJ3MgXFwnc2VjcmV0czpcXCcgZmllbGQgaW5zdGVhZCcsXG4gICAgICAgICAgdG9rLnBhdGguam9pbignLicpKSk7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgaWYgKCFpc0tub3duUGF0aCh0b2sucGF0aCkpIHtcbiAgICAgICAgZXJyb3JzLnB1c2gobWtFcnIoZmllbGQsIHRvay5wb3MsIEVycm9yQ29kZS5URU1QTEFURV9VTktOT1dOX1BBVEgsXG4gICAgICAgICAgYFRlbXBsYXRlIHJlZmVyZW5jZXMgdW5rbm93biBzY29wZSByb290ICcke3Rvay5wYXRoWzBdfSdgLFxuICAgICAgICAgIHRvay5wYXRoLmpvaW4oJy4nKSkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7IHZhbGlkOiBlcnJvcnMubGVuZ3RoID09PSAwLCBlcnJvcnMgfTtcbn1cblxuLyoqXG4gKiBEZXRlY3QgY3ljbGVzIGluIGEgc2VsZi1yZWZlcmVuY2luZyBkb2N1bWVudC4gQ2FsbGVyIHN1cHBsaWVzIHRoZVxuICogdGVtcGxhdGFibGUgcHJlZGljYXRlIGFuZCBhIGZ1bmN0aW9uIHRvIGV4dHJhY3QgdGhlIHNjb3BlLXBhdGggdGhhdFxuICogZWFjaCB0ZW1wbGF0ZSBmaWVsZCB3cml0ZXMgdG8gKHNhbWUgdmFsdWUgdXNlZCBhcyBhIGtleSBpbiBkZXBzKS5cbiAqXG4gKiBFeGFtcGxlIGZvciBwaXBlbGluZS5qc29uOiB0aGUgZmllbGQgYG1ldGFkYXRhLmVudmAgd3JpdGVzIHRvIHNjb3BlXG4gKiBwYXRoIGBtZXRhZGF0YS5lbnZgOyBhIHRlbXBsYXRlIGB7eyBtZXRhZGF0YS5yZWdpb24gfX1gIGluIHRoYXQgZmllbGRcbiAqIGRlY2xhcmVzIGEgZGVwZW5kZW5jeSBvbiBgbWV0YWRhdGEucmVnaW9uYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRldGVjdEN5Y2xlczxUIGV4dGVuZHMgb2JqZWN0PihcbiAgZG9jOiBULFxuICBpc1RlbXBsYXRhYmxlOiBGaWVsZFByZWRpY2F0ZSxcbiAgZmllbGRUb1Njb3BlUGF0aDogKGZpZWxkOiBzdHJpbmcpID0+IHN0cmluZyB8IG51bGwsXG4pOiBUZW1wbGF0ZUVycm9yW10ge1xuICBjb25zdCBub2RlcyA9IFtdO1xuICBmb3IgKGNvbnN0IGVudHJ5IG9mIHdhbGtBbmRCaW5kKGRvYywgaXNUZW1wbGF0YWJsZSkpIHtcbiAgICBjb25zdCBrZXkgPSBmaWVsZFRvU2NvcGVQYXRoKGVudHJ5LmZpZWxkKTtcbiAgICBpZiAoIWtleSkgY29udGludWU7XG4gICAgbm9kZXMucHVzaCh7IGtleSwgZGVwczogZGVwZW5kZW5jaWVzKGVudHJ5LnRva2VucykgfSk7XG4gIH1cbiAgY29uc3QgeyBjeWNsZXMgfSA9IHRvcG9Tb3J0KG5vZGVzKTtcbiAgcmV0dXJuIGN5Y2xlcy5tYXAoYyA9PiAoe1xuICAgIGZpZWxkOiBjWzBdISxcbiAgICBjb2RlOiBFcnJvckNvZGUuVEVNUExBVEVfQ1lDTEUsXG4gICAgbWVzc2FnZTogYFRlbXBsYXRlIGN5Y2xlIGRldGVjdGVkOiAke2Muam9pbignIC0+ICcpfWAsXG4gICAgY3ljbGU6IGMsXG4gIH0pKTtcbn1cblxuLy8gLS0gaGVscGVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5mdW5jdGlvbiBta0VycihcbiAgZmllbGQ6IHN0cmluZyxcbiAgcG9zOiBTb3VyY2VQb3NpdGlvbixcbiAgY29kZTogRXJyb3JDb2RlLFxuICBtZXNzYWdlOiBzdHJpbmcsXG4gIHBhdGg/OiBzdHJpbmcsXG4pOiBUZW1wbGF0ZUVycm9yIHtcbiAgcmV0dXJuIHsgZmllbGQsIGxpbmU6IHBvcy5saW5lLCBjb2w6IHBvcy5jb2wsIGNvZGUsIG1lc3NhZ2UsIC4uLihwYXRoICYmIHsgcGF0aCB9KSB9O1xufVxuXG4iXX0=
|
package/lib/template/walker.d.ts
CHANGED
package/lib/template/walker.js
CHANGED
|
@@ -1,16 +1,12 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
// Copyright 2026 Pipeline Builder Contributors
|
|
3
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
4
|
-
|
|
5
|
-
exports.visitStrings = visitStrings;
|
|
6
|
-
exports.walkAndBind = walkAndBind;
|
|
7
|
-
const tokenizer_1 = require("./tokenizer");
|
|
3
|
+
import { hasTemplate, tokenize } from './tokenizer.js';
|
|
8
4
|
/**
|
|
9
5
|
* Visit every templatable string leaf under `root`. Calls `handler(field, source)`
|
|
10
6
|
* for each string whose field path satisfies `isTemplatable` and contains `{{`.
|
|
11
7
|
* Does NOT tokenize — callers decide whether to throw or collect errors.
|
|
12
8
|
*/
|
|
13
|
-
function visitStrings(root, isTemplatable, handler) {
|
|
9
|
+
export function visitStrings(root, isTemplatable, handler) {
|
|
14
10
|
step(root, '', isTemplatable, handler);
|
|
15
11
|
}
|
|
16
12
|
function step(node, field, isTemplatable, handler) {
|
|
@@ -24,7 +20,7 @@ function step(node, field, isTemplatable, handler) {
|
|
|
24
20
|
}
|
|
25
21
|
return;
|
|
26
22
|
}
|
|
27
|
-
if (typeof node === 'string' && isTemplatable(field) &&
|
|
23
|
+
if (typeof node === 'string' && isTemplatable(field) && hasTemplate(node)) {
|
|
28
24
|
handler(field, node);
|
|
29
25
|
}
|
|
30
26
|
}
|
|
@@ -33,10 +29,10 @@ function step(node, field, isTemplatable, handler) {
|
|
|
33
29
|
* templated field with a bound `set()` that mutates `root` in place.
|
|
34
30
|
* Tokenization happens eagerly here — parse errors throw.
|
|
35
31
|
*/
|
|
36
|
-
function walkAndBind(root, isTemplatable) {
|
|
32
|
+
export function walkAndBind(root, isTemplatable) {
|
|
37
33
|
const entries = [];
|
|
38
34
|
visitStrings(root, isTemplatable, (field, source) => {
|
|
39
|
-
const tokens =
|
|
35
|
+
const tokens = tokenize(source);
|
|
40
36
|
if (!tokens.some(t => t.kind === 'expr'))
|
|
41
37
|
return;
|
|
42
38
|
entries.push({
|
|
@@ -73,4 +69,4 @@ function writeField(root, parts, value) {
|
|
|
73
69
|
return;
|
|
74
70
|
cur[parts[parts.length - 1]] = value;
|
|
75
71
|
}
|
|
76
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
72
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2Fsa2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3RlbXBsYXRlL3dhbGtlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQ0FBK0M7QUFDL0Msc0NBQXNDO0FBRXRDLE9BQU8sRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFjLE1BQU0sZ0JBQWdCLENBQUM7QUFlbkU7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxZQUFZLENBQzFCLElBQWEsRUFDYixhQUE2QixFQUM3QixPQUFnRDtJQUVoRCxJQUFJLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxhQUFhLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDekMsQ0FBQztBQUVELFNBQVMsSUFBSSxDQUNYLElBQWEsRUFDYixLQUFhLEVBQ2IsYUFBNkIsRUFDN0IsT0FBZ0Q7SUFFaEQsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsR0FBRyxLQUFLLElBQUksR0FBRyxHQUFHLEVBQUUsYUFBYSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDdEYsT0FBTztJQUNULENBQUM7SUFDRCxJQUFJLElBQUksS0FBSyxJQUFJLElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDOUMsS0FBSyxNQUFNLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBK0IsQ0FBQyxFQUFFLENBQUM7WUFDM0UsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxJQUFJLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsYUFBYSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3ZFLENBQUM7UUFDRCxPQUFPO0lBQ1QsQ0FBQztJQUNELElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxJQUFJLGFBQWEsQ0FBQyxLQUFLLENBQUMsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUMxRSxPQUFPLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7QUFDSCxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxXQUFXLENBQ3pCLElBQU8sRUFDUCxhQUE2QjtJQUU3QixNQUFNLE9BQU8sR0FBZ0IsRUFBRSxDQUFDO0lBQ2hDLFlBQVksQ0FBQyxJQUFJLEVBQUUsYUFBYSxFQUFFLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxFQUFFO1FBQ2xELE1BQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNoQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssTUFBTSxDQUFDO1lBQUUsT0FBTztRQUNqRCxPQUFPLENBQUMsSUFBSSxDQUFDO1lBQ1gsS0FBSztZQUNMLE1BQU07WUFDTixNQUFNO1lBQ04sR0FBRyxFQUFFLENBQUMsS0FBYyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLGNBQWMsQ0FBQyxLQUFLLENBQUMsRUFBRSxLQUFLLENBQUM7U0FDeEUsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDSCxPQUFPLE9BQU8sQ0FBQztBQUNqQixDQUFDO0FBRUQsU0FBUyxjQUFjLENBQUMsS0FBYTtJQUNuQyxNQUFNLEtBQUssR0FBMkIsRUFBRSxDQUFDO0lBQ3pDLE1BQU0sRUFBRSxHQUFHLHdCQUF3QixDQUFDO0lBQ3BDLElBQUksQ0FBeUIsQ0FBQztJQUM5QixPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQztRQUNyQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxTQUFTO1lBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNwQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxTQUFTO1lBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBQ0QsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDO0FBRUQsU0FBUyxVQUFVLENBQUMsSUFBYSxFQUFFLEtBQTZCLEVBQUUsS0FBYztJQUM5RSxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQztRQUFFLE9BQU87SUFDL0IsSUFBSSxHQUFHLEdBQVksSUFBSSxDQUFDO0lBQ3hCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQzFDLElBQUksR0FBRyxJQUFJLElBQUksSUFBSSxPQUFPLEdBQUcsS0FBSyxRQUFRO1lBQUUsT0FBTztRQUNuRCxHQUFHLEdBQUksR0FBd0MsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFFLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBQ0QsSUFBSSxHQUFHLElBQUksSUFBSSxJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVE7UUFBRSxPQUFPO0lBQ2xELEdBQXdDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFFLENBQUMsR0FBRyxLQUFLLENBQUM7QUFDOUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG5pbXBvcnQgeyBoYXNUZW1wbGF0ZSwgdG9rZW5pemUsIHR5cGUgVG9rZW4gfSBmcm9tICcuL3Rva2VuaXplci5qcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgV2Fsa0VudHJ5IHtcbiAgLyoqIERvdHRlZCBwYXRoIHRvIHRoZSBmaWVsZCBpbnNpZGUgdGhlIGRvY3VtZW50LCBlLmcuICdjb21tYW5kc1szXScgb3IgJ2Vudi5TVEFHRScgKi9cbiAgZmllbGQ6IHN0cmluZztcbiAgLyoqIFJhdyBzb3VyY2Ugc3RyaW5nIGNvbnRhaW5pbmcgdGVtcGxhdGUgdG9rZW5zICovXG4gIHNvdXJjZTogc3RyaW5nO1xuICAvKiogUGFyc2VkIHRva2VuIHN0cmVhbSAqL1xuICB0b2tlbnM6IFRva2VuW107XG4gIC8qKiBTZXR0ZXIgdG8gd3JpdGUgYmFjayBhIHJlc29sdmVkIHZhbHVlIGludG8gdGhlIG9yaWdpbmFsIGByb290YCBvYmplY3QgKi9cbiAgc2V0OiAodmFsdWU6IHVua25vd24pID0+IHZvaWQ7XG59XG5cbmV4cG9ydCB0eXBlIEZpZWxkUHJlZGljYXRlID0gKGZpZWxkOiBzdHJpbmcpID0+IGJvb2xlYW47XG5cbi8qKlxuICogVmlzaXQgZXZlcnkgdGVtcGxhdGFibGUgc3RyaW5nIGxlYWYgdW5kZXIgYHJvb3RgLiBDYWxscyBgaGFuZGxlcihmaWVsZCwgc291cmNlKWBcbiAqIGZvciBlYWNoIHN0cmluZyB3aG9zZSBmaWVsZCBwYXRoIHNhdGlzZmllcyBgaXNUZW1wbGF0YWJsZWAgYW5kIGNvbnRhaW5zIGB7e2AuXG4gKiBEb2VzIE5PVCB0b2tlbml6ZSDigJQgY2FsbGVycyBkZWNpZGUgd2hldGhlciB0byB0aHJvdyBvciBjb2xsZWN0IGVycm9ycy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZpc2l0U3RyaW5ncyhcbiAgcm9vdDogdW5rbm93bixcbiAgaXNUZW1wbGF0YWJsZTogRmllbGRQcmVkaWNhdGUsXG4gIGhhbmRsZXI6IChmaWVsZDogc3RyaW5nLCBzb3VyY2U6IHN0cmluZykgPT4gdm9pZCxcbik6IHZvaWQge1xuICBzdGVwKHJvb3QsICcnLCBpc1RlbXBsYXRhYmxlLCBoYW5kbGVyKTtcbn1cblxuZnVuY3Rpb24gc3RlcChcbiAgbm9kZTogdW5rbm93bixcbiAgZmllbGQ6IHN0cmluZyxcbiAgaXNUZW1wbGF0YWJsZTogRmllbGRQcmVkaWNhdGUsXG4gIGhhbmRsZXI6IChmaWVsZDogc3RyaW5nLCBzb3VyY2U6IHN0cmluZykgPT4gdm9pZCxcbik6IHZvaWQge1xuICBpZiAoQXJyYXkuaXNBcnJheShub2RlKSkge1xuICAgIG5vZGUuZm9yRWFjaCgoY2hpbGQsIGlkeCkgPT4gc3RlcChjaGlsZCwgYCR7ZmllbGR9WyR7aWR4fV1gLCBpc1RlbXBsYXRhYmxlLCBoYW5kbGVyKSk7XG4gICAgcmV0dXJuO1xuICB9XG4gIGlmIChub2RlICE9PSBudWxsICYmIHR5cGVvZiBub2RlID09PSAnb2JqZWN0Jykge1xuICAgIGZvciAoY29uc3QgW2tleSwgY2hpbGRdIG9mIE9iamVjdC5lbnRyaWVzKG5vZGUgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4pKSB7XG4gICAgICBzdGVwKGNoaWxkLCBmaWVsZCA/IGAke2ZpZWxkfS4ke2tleX1gIDoga2V5LCBpc1RlbXBsYXRhYmxlLCBoYW5kbGVyKTtcbiAgICB9XG4gICAgcmV0dXJuO1xuICB9XG4gIGlmICh0eXBlb2Ygbm9kZSA9PT0gJ3N0cmluZycgJiYgaXNUZW1wbGF0YWJsZShmaWVsZCkgJiYgaGFzVGVtcGxhdGUobm9kZSkpIHtcbiAgICBoYW5kbGVyKGZpZWxkLCBub2RlKTtcbiAgfVxufVxuXG4vKipcbiAqIFdhbGsgYWxsIHRlbXBsYXRhYmxlIHN0cmluZyBmaWVsZHMgdW5kZXIgYHJvb3RgLCByZXR1cm5pbmcgb25lIGVudHJ5IHBlclxuICogdGVtcGxhdGVkIGZpZWxkIHdpdGggYSBib3VuZCBgc2V0KClgIHRoYXQgbXV0YXRlcyBgcm9vdGAgaW4gcGxhY2UuXG4gKiBUb2tlbml6YXRpb24gaGFwcGVucyBlYWdlcmx5IGhlcmUg4oCUIHBhcnNlIGVycm9ycyB0aHJvdy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHdhbGtBbmRCaW5kPFQgZXh0ZW5kcyBvYmplY3Q+KFxuICByb290OiBULFxuICBpc1RlbXBsYXRhYmxlOiBGaWVsZFByZWRpY2F0ZSxcbik6IFdhbGtFbnRyeVtdIHtcbiAgY29uc3QgZW50cmllczogV2Fsa0VudHJ5W10gPSBbXTtcbiAgdmlzaXRTdHJpbmdzKHJvb3QsIGlzVGVtcGxhdGFibGUsIChmaWVsZCwgc291cmNlKSA9PiB7XG4gICAgY29uc3QgdG9rZW5zID0gdG9rZW5pemUoc291cmNlKTtcbiAgICBpZiAoIXRva2Vucy5zb21lKHQgPT4gdC5raW5kID09PSAnZXhwcicpKSByZXR1cm47XG4gICAgZW50cmllcy5wdXNoKHtcbiAgICAgIGZpZWxkLFxuICAgICAgc291cmNlLFxuICAgICAgdG9rZW5zLFxuICAgICAgc2V0OiAodmFsdWU6IHVua25vd24pID0+IHdyaXRlRmllbGQocm9vdCwgcGFyc2VGaWVsZFBhdGgoZmllbGQpLCB2YWx1ZSksXG4gICAgfSk7XG4gIH0pO1xuICByZXR1cm4gZW50cmllcztcbn1cblxuZnVuY3Rpb24gcGFyc2VGaWVsZFBhdGgoZmllbGQ6IHN0cmluZyk6IEFycmF5PHN0cmluZyB8IG51bWJlcj4ge1xuICBjb25zdCBwYXJ0czogQXJyYXk8c3RyaW5nIHwgbnVtYmVyPiA9IFtdO1xuICBjb25zdCByZSA9IC8oW14uXFxbXFxdXSspfFxcWyhcXGQrKVxcXS9nO1xuICBsZXQgbTogUmVnRXhwRXhlY0FycmF5IHwgbnVsbDtcbiAgd2hpbGUgKChtID0gcmUuZXhlYyhmaWVsZCkpICE9PSBudWxsKSB7XG4gICAgaWYgKG1bMV0gIT09IHVuZGVmaW5lZCkgcGFydHMucHVzaChtWzFdKTtcbiAgICBlbHNlIGlmIChtWzJdICE9PSB1bmRlZmluZWQpIHBhcnRzLnB1c2goTnVtYmVyKG1bMl0pKTtcbiAgfVxuICByZXR1cm4gcGFydHM7XG59XG5cbmZ1bmN0aW9uIHdyaXRlRmllbGQocm9vdDogdW5rbm93biwgcGFydHM6IEFycmF5PHN0cmluZyB8IG51bWJlcj4sIHZhbHVlOiB1bmtub3duKTogdm9pZCB7XG4gIGlmIChwYXJ0cy5sZW5ndGggPT09IDApIHJldHVybjtcbiAgbGV0IGN1cjogdW5rbm93biA9IHJvb3Q7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgcGFydHMubGVuZ3RoIC0gMTsgaSsrKSB7XG4gICAgaWYgKGN1ciA9PSBudWxsIHx8IHR5cGVvZiBjdXIgIT09ICdvYmplY3QnKSByZXR1cm47XG4gICAgY3VyID0gKGN1ciBhcyBSZWNvcmQ8c3RyaW5nIHwgbnVtYmVyLCB1bmtub3duPilbcGFydHNbaV0hXTtcbiAgfVxuICBpZiAoY3VyID09IG51bGwgfHwgdHlwZW9mIGN1ciAhPT0gJ29iamVjdCcpIHJldHVybjtcbiAgKGN1ciBhcyBSZWNvcmQ8c3RyaW5nIHwgbnVtYmVyLCB1bmtub3duPilbcGFydHNbcGFydHMubGVuZ3RoIC0gMV0hXSA9IHZhbHVlO1xufVxuIl19
|
package/package.json
CHANGED
|
@@ -6,32 +6,31 @@
|
|
|
6
6
|
"url": "git+https://github.com/mwashburn160/pipeline-builder.git"
|
|
7
7
|
},
|
|
8
8
|
"devDependencies": {
|
|
9
|
-
"@aws-sdk/client-secrets-manager": "3.
|
|
9
|
+
"@aws-sdk/client-secrets-manager": "3.1064.0",
|
|
10
10
|
"@jest/globals": "30.2.0",
|
|
11
11
|
"@stylistic/eslint-plugin": "^2",
|
|
12
|
-
"@types/aws-lambda": "8.10.
|
|
13
|
-
"@types/jest": "30.0.0",
|
|
12
|
+
"@types/aws-lambda": "8.10.162",
|
|
14
13
|
"@types/jsonwebtoken": "9.0.10",
|
|
15
|
-
"@types/node": "25.
|
|
14
|
+
"@types/node": "25.9.2",
|
|
16
15
|
"@typescript-eslint/eslint-plugin": "^8",
|
|
17
16
|
"@typescript-eslint/parser": "^8",
|
|
18
17
|
"copyfiles": "2.4.1",
|
|
19
18
|
"eslint": "^9",
|
|
20
19
|
"eslint-import-resolver-typescript": "^4.4.4",
|
|
21
20
|
"eslint-plugin-import": "^2.32.0",
|
|
22
|
-
"jest": "30.
|
|
21
|
+
"jest": "30.4.2",
|
|
23
22
|
"jest-junit": "^17",
|
|
24
23
|
"ts-jest": "^29",
|
|
25
|
-
"typescript": "
|
|
24
|
+
"typescript": "6.0.3"
|
|
26
25
|
},
|
|
27
26
|
"dependencies": {
|
|
28
|
-
"aws-cdk-lib": "2.
|
|
29
|
-
"axios": "1.
|
|
30
|
-
"constructs": "10.
|
|
27
|
+
"aws-cdk-lib": "2.258.1",
|
|
28
|
+
"axios": "1.17.0",
|
|
29
|
+
"constructs": "10.6.0",
|
|
31
30
|
"jsonwebtoken": "9.0.3",
|
|
32
|
-
"uuid": "
|
|
33
|
-
"@pipeline-builder/api-core": "3.4.
|
|
34
|
-
"@pipeline-builder/pipeline-data": "3.4.
|
|
31
|
+
"uuid": "14.0.0",
|
|
32
|
+
"@pipeline-builder/api-core": "3.4.65",
|
|
33
|
+
"@pipeline-builder/pipeline-data": "3.4.66"
|
|
35
34
|
},
|
|
36
35
|
"keywords": [
|
|
37
36
|
"aws",
|
|
@@ -75,7 +74,7 @@
|
|
|
75
74
|
"access": "public",
|
|
76
75
|
"registry": "https://registry.npmjs.org/"
|
|
77
76
|
},
|
|
78
|
-
"version": "3.4.
|
|
77
|
+
"version": "3.4.71",
|
|
79
78
|
"bugs": {
|
|
80
79
|
"url": "https://github.com/mwashburn160/pipeline-builder/issues"
|
|
81
80
|
},
|
|
@@ -117,6 +116,7 @@
|
|
|
117
116
|
"^.+\\.[t]sx?$": [
|
|
118
117
|
"ts-jest",
|
|
119
118
|
{
|
|
119
|
+
"useESM": true,
|
|
120
120
|
"tsconfig": "tsconfig.dev.json",
|
|
121
121
|
"diagnostics": {
|
|
122
122
|
"ignoreCodes": [
|
|
@@ -126,12 +126,18 @@
|
|
|
126
126
|
}
|
|
127
127
|
]
|
|
128
128
|
},
|
|
129
|
+
"extensionsToTreatAsEsm": [
|
|
130
|
+
".ts",
|
|
131
|
+
".tsx"
|
|
132
|
+
],
|
|
129
133
|
"moduleNameMapper": {
|
|
130
|
-
"^uuid$": "<rootDir>/../../jest-uuid-stub.js"
|
|
134
|
+
"^uuid$": "<rootDir>/../../jest-uuid-stub.js",
|
|
135
|
+
"^(\\.{1,2}/.*)\\.js$": "$1"
|
|
131
136
|
},
|
|
132
137
|
"maxWorkers": 1
|
|
133
138
|
},
|
|
134
139
|
"types": "lib/index.d.ts",
|
|
140
|
+
"type": "module",
|
|
135
141
|
"//": "~~ Generated by projen. To modify, edit .projenrc.js and run \"pnpm dlx projen\".",
|
|
136
142
|
"scripts": {
|
|
137
143
|
"build": "pnpm dlx projen build",
|