@znemz/cfn-include 4.6.27 → 4.6.29
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/dist/lib/schema.d.ts +12 -0
- package/dist/lib/schema.d.ts.map +1 -1
- package/dist/lib/schema.js +101 -23
- package/dist/lib/schema.js.map +1 -1
- package/dist/lib/yaml.d.ts.map +1 -1
- package/dist/lib/yaml.js +83 -2
- package/dist/lib/yaml.js.map +1 -1
- package/package.json +1 -1
package/dist/lib/schema.d.ts
CHANGED
|
@@ -1,3 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Merge keys (`<<:`) are resolved by cfn-include itself, not by js-yaml 5's
|
|
3
|
+
* built-in mergeTag. The built-in machinery only accepts merge sources whose
|
|
4
|
+
* NODE is an (alias to an) untagged mapping — it throws "cannot merge
|
|
5
|
+
* mappings" for `<<: !Include common.yml`, which js-yaml 4 supported (v4
|
|
6
|
+
* merged whatever the value RESOLVED to). So our merge tag resolves a plain
|
|
7
|
+
* `<<` key to this sentinel string, mappings accumulate it like any other
|
|
8
|
+
* key, and resolveMerges() in yaml.ts applies v4 merge semantics post-parse.
|
|
9
|
+
* The NUL bytes make an accidental collision with real template data
|
|
10
|
+
* effectively impossible (NUL is not representable in plain YAML scalars).
|
|
11
|
+
*/
|
|
12
|
+
export declare const MERGE_SENTINEL = "\0Fn::MergeKey\0";
|
|
1
13
|
export declare const BANG_AMAZON_FUNCS: string[];
|
|
2
14
|
export declare const EXPLICIT_AMAZON_FUNCS: string[];
|
|
3
15
|
declare const yamlSchema: import("js-yaml").Schema;
|
package/dist/lib/schema.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/lib/schema.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/lib/schema.ts"],"names":[],"mappings":"AAwFA;;;;;;;;;;GAUG;AACH,eAAO,MAAM,cAAc,qBAA6B,CAAC;AAiIzD,eAAO,MAAM,iBAAiB,UAmB7B,CAAC;AAEF,eAAO,MAAM,qBAAqB,UAA2C,CAAC;AA0B9E,QAAA,MAAM,UAAU,0BASd,CAAC;AAEH;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAErE;eAEc,UAAU"}
|
package/dist/lib/schema.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { CORE_SCHEMA, binaryTag, defineMappingTag, defineScalarTag, defineSequenceTag,
|
|
1
|
+
import { CORE_SCHEMA, NOT_RESOLVED, binaryTag, defineMappingTag, defineScalarTag, defineSequenceTag, omapTag, pairsTag, timestampTag, } from 'js-yaml';
|
|
2
2
|
import _ from 'lodash';
|
|
3
3
|
const tagDefinitions = [
|
|
4
4
|
{ short: 'Include', full: 'Fn::Include', type: 'scalar' },
|
|
@@ -65,6 +65,84 @@ const tagDefinitions = [
|
|
|
65
65
|
{ short: 'Or', full: 'Fn::Or', type: 'sequence' },
|
|
66
66
|
{ short: 'Condition', full: 'Condition', type: 'scalar' },
|
|
67
67
|
];
|
|
68
|
+
/**
|
|
69
|
+
* Merge keys (`<<:`) are resolved by cfn-include itself, not by js-yaml 5's
|
|
70
|
+
* built-in mergeTag. The built-in machinery only accepts merge sources whose
|
|
71
|
+
* NODE is an (alias to an) untagged mapping — it throws "cannot merge
|
|
72
|
+
* mappings" for `<<: !Include common.yml`, which js-yaml 4 supported (v4
|
|
73
|
+
* merged whatever the value RESOLVED to). So our merge tag resolves a plain
|
|
74
|
+
* `<<` key to this sentinel string, mappings accumulate it like any other
|
|
75
|
+
* key, and resolveMerges() in yaml.ts applies v4 merge semantics post-parse.
|
|
76
|
+
* The NUL bytes make an accidental collision with real template data
|
|
77
|
+
* effectively impossible (NUL is not representable in plain YAML scalars).
|
|
78
|
+
*/
|
|
79
|
+
export const MERGE_SENTINEL = '\u0000Fn::MergeKey\u0000';
|
|
80
|
+
function addPairMergeAware(carrier, key, value, complexKeyError) {
|
|
81
|
+
if (key !== null && typeof key === 'object') {
|
|
82
|
+
return complexKeyError;
|
|
83
|
+
}
|
|
84
|
+
const normalizedKey = String(key);
|
|
85
|
+
if (normalizedKey === MERGE_SENTINEL) {
|
|
86
|
+
// Accumulate every `<<:` in this mapping (YAML 1.1 allows repeats);
|
|
87
|
+
// resolveMerges() flattens and applies them in order.
|
|
88
|
+
const pending = carrier[MERGE_SENTINEL] ?? [];
|
|
89
|
+
pending.push(value);
|
|
90
|
+
carrier[MERGE_SENTINEL] = pending;
|
|
91
|
+
return '';
|
|
92
|
+
}
|
|
93
|
+
if (normalizedKey === '__proto__') {
|
|
94
|
+
Object.defineProperty(carrier, normalizedKey, {
|
|
95
|
+
value,
|
|
96
|
+
enumerable: true,
|
|
97
|
+
configurable: true,
|
|
98
|
+
writable: true,
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
else {
|
|
102
|
+
carrier[normalizedKey] = value;
|
|
103
|
+
}
|
|
104
|
+
return '';
|
|
105
|
+
}
|
|
106
|
+
// `has` must deny the sentinel so repeated `<<:` keys skip the core
|
|
107
|
+
// duplicated-mapping-key check (they accumulate in addPairMergeAware instead).
|
|
108
|
+
function hasMergeAware(carrier, key) {
|
|
109
|
+
if (key !== null && typeof key === 'object')
|
|
110
|
+
return false;
|
|
111
|
+
const normalizedKey = String(key);
|
|
112
|
+
if (normalizedKey === MERGE_SENTINEL)
|
|
113
|
+
return false;
|
|
114
|
+
return Object.prototype.hasOwnProperty.call(carrier, normalizedKey);
|
|
115
|
+
}
|
|
116
|
+
// Replaces js-yaml's mergeTag: same implicit resolution of a plain `<<` (a
|
|
117
|
+
// quoted "<<" stays a literal key), but yields MERGE_SENTINEL instead of the
|
|
118
|
+
// core MERGE_KEY symbol so the core merge machinery never runs.
|
|
119
|
+
const cfnMergeTag = defineScalarTag('tag:yaml.org,2002:merge', {
|
|
120
|
+
implicit: true,
|
|
121
|
+
implicitFirstChars: ['<'],
|
|
122
|
+
resolve: (source, isExplicit) => source === '<<' || (isExplicit && source === '') ? MERGE_SENTINEL : NOT_RESOLVED,
|
|
123
|
+
});
|
|
124
|
+
// Replaces js-yaml's default map tag: identical construction/dump behavior,
|
|
125
|
+
// plus MERGE_SENTINEL accumulation for plain mappings.
|
|
126
|
+
function isPlainObjectValue(v) {
|
|
127
|
+
if (v === null || typeof v !== 'object')
|
|
128
|
+
return false;
|
|
129
|
+
const proto = Object.getPrototypeOf(v);
|
|
130
|
+
return proto === Object.prototype || proto === null;
|
|
131
|
+
}
|
|
132
|
+
const mergeAwareMapTag = defineMappingTag('tag:yaml.org,2002:map', {
|
|
133
|
+
create: () => ({}),
|
|
134
|
+
identify: isPlainObjectValue,
|
|
135
|
+
represent: (data) => {
|
|
136
|
+
const map = new Map();
|
|
137
|
+
for (const key of Object.keys(data))
|
|
138
|
+
map.set(key, data[key]);
|
|
139
|
+
return map;
|
|
140
|
+
},
|
|
141
|
+
addPair: (carrier, key, value) => addPairMergeAware(carrier, key, value, 'object-based map does not support complex keys'),
|
|
142
|
+
has: hasMergeAware,
|
|
143
|
+
keys: (result) => Object.keys(result),
|
|
144
|
+
get: (result, key) => result[String(key)],
|
|
145
|
+
});
|
|
68
146
|
// js-yaml 5 replaced the v4 `new yaml.Type(tag, { kind, construct })` API with
|
|
69
147
|
// per-kind builder factories (defineScalarTag / defineSequenceTag /
|
|
70
148
|
// defineMappingTag). All our tags do the same thing construct() did before:
|
|
@@ -100,25 +178,8 @@ const tags = tagDefinitions.map((fn) => {
|
|
|
100
178
|
case 'mapping':
|
|
101
179
|
return defineMappingTag(tagName, {
|
|
102
180
|
create: () => ({}),
|
|
103
|
-
addPair: (carrier, key, value) => {
|
|
104
|
-
|
|
105
|
-
return `${tagName} does not support complex mapping keys`;
|
|
106
|
-
}
|
|
107
|
-
const normalizedKey = String(key);
|
|
108
|
-
if (normalizedKey === '__proto__') {
|
|
109
|
-
Object.defineProperty(carrier, normalizedKey, {
|
|
110
|
-
value,
|
|
111
|
-
enumerable: true,
|
|
112
|
-
configurable: true,
|
|
113
|
-
writable: true,
|
|
114
|
-
});
|
|
115
|
-
}
|
|
116
|
-
else {
|
|
117
|
-
carrier[normalizedKey] = value;
|
|
118
|
-
}
|
|
119
|
-
return '';
|
|
120
|
-
},
|
|
121
|
-
has: (carrier, key) => Object.prototype.hasOwnProperty.call(carrier, String(key)),
|
|
181
|
+
addPair: (carrier, key, value) => addPairMergeAware(carrier, key, value, `${tagName} does not support complex mapping keys`),
|
|
182
|
+
has: hasMergeAware,
|
|
122
183
|
keys: (result) => Object.keys(result),
|
|
123
184
|
get: (result, key) => result[String(key)],
|
|
124
185
|
finalize: (carrier) => wrap(carrier),
|
|
@@ -147,18 +208,35 @@ export const BANG_AMAZON_FUNCS = [
|
|
|
147
208
|
'Condition',
|
|
148
209
|
];
|
|
149
210
|
export const EXPLICIT_AMAZON_FUNCS = BANG_AMAZON_FUNCS.map((f) => `Fn::${f}`);
|
|
211
|
+
// v5's built-in setTag constructs a JS Set, which JSON-serializes to {} —
|
|
212
|
+
// templates are ultimately JSON, so keep v4's plain-object form
|
|
213
|
+
// ({key: null, ...}) instead.
|
|
214
|
+
const v4SetTag = defineMappingTag('tag:yaml.org,2002:set', {
|
|
215
|
+
create: () => ({}),
|
|
216
|
+
addPair: (carrier, key, value) => {
|
|
217
|
+
if (value !== null)
|
|
218
|
+
return 'cannot resolve a set item';
|
|
219
|
+
carrier[String(key)] = null;
|
|
220
|
+
return '';
|
|
221
|
+
},
|
|
222
|
+
has: (carrier, key) => Object.prototype.hasOwnProperty.call(carrier, String(key)),
|
|
223
|
+
keys: (result) => Object.keys(result),
|
|
224
|
+
get: () => null,
|
|
225
|
+
});
|
|
150
226
|
// v4's yaml.DEFAULT_SCHEMA.extend(tags) → v5's CORE_SCHEMA.withTags(tags).
|
|
151
227
|
// v5's CORE_SCHEMA is YAML 1.2 core only; v4's DEFAULT_SCHEMA additionally
|
|
152
228
|
// bundled the YAML 1.1 extras — merge keys (`<<:`), !!timestamp, !!binary,
|
|
153
229
|
// !!omap, !!pairs, !!set. Templates in the wild rely on `<<:` merge keys, so
|
|
154
|
-
// re-add all of them to keep v4 parse behavior.
|
|
230
|
+
// re-add all of them to keep v4 parse behavior. test/yaml-conformance.test.ts
|
|
231
|
+
// pins the resulting baseline; keep it in sync with any schema change here.
|
|
155
232
|
const yamlSchema = CORE_SCHEMA.withTags([
|
|
156
|
-
|
|
233
|
+
cfnMergeTag,
|
|
234
|
+
mergeAwareMapTag,
|
|
157
235
|
timestampTag,
|
|
158
236
|
binaryTag,
|
|
159
237
|
omapTag,
|
|
160
238
|
pairsTag,
|
|
161
|
-
|
|
239
|
+
v4SetTag,
|
|
162
240
|
...tags,
|
|
163
241
|
]);
|
|
164
242
|
/**
|
package/dist/lib/schema.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/lib/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,SAAS,EACT,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/lib/schema.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/yaml.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"yaml.d.ts","sourceRoot":"","sources":["../../src/lib/yaml.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"yaml.d.ts","sourceRoot":"","sources":["../../src/lib/yaml.ts"],"names":[],"mappings":"AAmIA,wBAAgB,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAoBzC;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,wBAAgB,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,GAAE,WAAgB,GAAG,MAAM,CAEjE"}
|
package/dist/lib/yaml.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as yaml from 'js-yaml';
|
|
2
|
-
import yamlSchema from './schema.js';
|
|
2
|
+
import yamlSchema, { MERGE_SENTINEL } from './schema.js';
|
|
3
3
|
/**
|
|
4
4
|
* Simple JSON minify - strips comments and whitespace.
|
|
5
5
|
* Handles JavaScript-style single-line (//) and multi-line comments.
|
|
@@ -51,6 +51,87 @@ function jsonMinify(json) {
|
|
|
51
51
|
}
|
|
52
52
|
return result;
|
|
53
53
|
}
|
|
54
|
+
function isPlainObject(v) {
|
|
55
|
+
if (v === null || typeof v !== 'object')
|
|
56
|
+
return false;
|
|
57
|
+
const proto = Object.getPrototypeOf(v);
|
|
58
|
+
return proto === Object.prototype || proto === null;
|
|
59
|
+
}
|
|
60
|
+
/** Collect merge sources, flattening `<<: [*a, *b]` lists and repeated `<<:` keys. */
|
|
61
|
+
function flattenMergeSources(value, out) {
|
|
62
|
+
if (Array.isArray(value)) {
|
|
63
|
+
for (const element of value)
|
|
64
|
+
flattenMergeSources(element, out);
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
out.push(value);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
function setKey(out, key, value) {
|
|
71
|
+
if (key === '__proto__') {
|
|
72
|
+
Object.defineProperty(out, key, {
|
|
73
|
+
value,
|
|
74
|
+
enumerable: true,
|
|
75
|
+
configurable: true,
|
|
76
|
+
writable: true,
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
out[key] = value;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Apply YAML merge keys (`<<:`) with js-yaml 4 semantics, post-parse.
|
|
85
|
+
*
|
|
86
|
+
* The schema resolves a plain `<<` key to MERGE_SENTINEL instead of letting
|
|
87
|
+
* js-yaml 5's core merge machinery run, because the core only accepts merge
|
|
88
|
+
* sources that are (aliases to) untagged mapping NODES. v4 merged whatever
|
|
89
|
+
* the source RESOLVED to — which is what makes `<<: !Include common.yml`
|
|
90
|
+
* work. Semantics: explicit keys always win over merged keys (whether they
|
|
91
|
+
* appear before or after the `<<`), and among multiple sources the earliest
|
|
92
|
+
* wins. A `<<` in value position resolves back to the literal string "<<",
|
|
93
|
+
* as in v4. The `seen` memo preserves alias identity and terminates cycles.
|
|
94
|
+
*/
|
|
95
|
+
function resolveMerges(node, seen = new Map()) {
|
|
96
|
+
if (node === MERGE_SENTINEL)
|
|
97
|
+
return '<<';
|
|
98
|
+
if (Array.isArray(node)) {
|
|
99
|
+
if (seen.has(node))
|
|
100
|
+
return seen.get(node);
|
|
101
|
+
const out = [];
|
|
102
|
+
seen.set(node, out);
|
|
103
|
+
for (const element of node)
|
|
104
|
+
out.push(resolveMerges(element, seen));
|
|
105
|
+
return out;
|
|
106
|
+
}
|
|
107
|
+
if (isPlainObject(node)) {
|
|
108
|
+
if (seen.has(node))
|
|
109
|
+
return seen.get(node);
|
|
110
|
+
const out = {};
|
|
111
|
+
seen.set(node, out);
|
|
112
|
+
for (const [key, value] of Object.entries(node)) {
|
|
113
|
+
if (key !== MERGE_SENTINEL) {
|
|
114
|
+
setKey(out, key, resolveMerges(value, seen));
|
|
115
|
+
continue;
|
|
116
|
+
}
|
|
117
|
+
const sources = [];
|
|
118
|
+
flattenMergeSources(value, sources);
|
|
119
|
+
for (const source of sources) {
|
|
120
|
+
const resolved = resolveMerges(source, seen);
|
|
121
|
+
if (!isPlainObject(resolved)) {
|
|
122
|
+
throw new yaml.YAMLException('cannot merge mappings; the provided source object is unacceptable');
|
|
123
|
+
}
|
|
124
|
+
for (const [sourceKey, sourceValue] of Object.entries(resolved)) {
|
|
125
|
+
if (!Object.prototype.hasOwnProperty.call(out, sourceKey)) {
|
|
126
|
+
setKey(out, sourceKey, sourceValue);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
return out;
|
|
132
|
+
}
|
|
133
|
+
return node;
|
|
134
|
+
}
|
|
54
135
|
export function load(res) {
|
|
55
136
|
// js-yaml 4 returned undefined for an empty document; v5 throws.
|
|
56
137
|
if (res.trim() === '')
|
|
@@ -66,7 +147,7 @@ export function load(res) {
|
|
|
66
147
|
}
|
|
67
148
|
catch (jsonErr) {
|
|
68
149
|
try {
|
|
69
|
-
return yaml.load(res, { schema: yamlSchema });
|
|
150
|
+
return resolveMerges(yaml.load(res, { schema: yamlSchema }));
|
|
70
151
|
}
|
|
71
152
|
catch (yamlErr) {
|
|
72
153
|
const err = new Error(String([yamlErr, jsonErr]));
|
package/dist/lib/yaml.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"yaml.js","sourceRoot":"","sources":["../../src/lib/yaml.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,SAAS,CAAC;AAChC,OAAO,UAAU,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"yaml.js","sourceRoot":"","sources":["../../src/lib/yaml.ts"],"names":[],"mappings":"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"}
|