cdk-common 2.0.38 → 2.0.42
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/.jsii +3 -3
- package/changelog.md +1 -1
- package/lib/main.js +1 -1
- package/node_modules/@aws-cdk/assert/package.json +8 -8
- package/node_modules/@aws-cdk/cfnspec/coverage/build-tools/index.html +1 -1
- package/node_modules/@aws-cdk/cfnspec/coverage/build-tools/massage-spec.ts.html +1 -1
- package/node_modules/@aws-cdk/cfnspec/coverage/build-tools/patch-set.ts.html +1 -1
- package/node_modules/@aws-cdk/cfnspec/coverage/build-tools/scrutiny.ts.html +1 -1
- package/node_modules/@aws-cdk/cfnspec/coverage/build-tools/validate-cfn.ts.html +1 -1
- package/node_modules/@aws-cdk/cfnspec/coverage/index.html +1 -1
- package/node_modules/@aws-cdk/cfnspec/coverage/junit.xml +6030 -6030
- package/node_modules/@aws-cdk/cfnspec/coverage/lcov-report/build-tools/index.html +1 -1
- package/node_modules/@aws-cdk/cfnspec/coverage/lcov-report/build-tools/massage-spec.ts.html +1 -1
- package/node_modules/@aws-cdk/cfnspec/coverage/lcov-report/build-tools/patch-set.ts.html +1 -1
- package/node_modules/@aws-cdk/cfnspec/coverage/lcov-report/build-tools/scrutiny.ts.html +1 -1
- package/node_modules/@aws-cdk/cfnspec/coverage/lcov-report/build-tools/validate-cfn.ts.html +1 -1
- package/node_modules/@aws-cdk/cfnspec/coverage/lcov-report/index.html +1 -1
- package/node_modules/@aws-cdk/cfnspec/coverage/lcov-report/lib/canned-metrics/canned-metrics-schema.ts.html +1 -1
- package/node_modules/@aws-cdk/cfnspec/coverage/lcov-report/lib/canned-metrics/index.html +1 -1
- package/node_modules/@aws-cdk/cfnspec/coverage/lcov-report/lib/canned-metrics.ts.html +1 -1
- package/node_modules/@aws-cdk/cfnspec/coverage/lcov-report/lib/index.html +1 -1
- package/node_modules/@aws-cdk/cfnspec/coverage/lcov-report/lib/index.ts.html +1 -1
- package/node_modules/@aws-cdk/cfnspec/coverage/lcov-report/lib/schema/augmentation.ts.html +1 -1
- package/node_modules/@aws-cdk/cfnspec/coverage/lcov-report/lib/schema/base-types.ts.html +1 -1
- package/node_modules/@aws-cdk/cfnspec/coverage/lcov-report/lib/schema/index.html +1 -1
- package/node_modules/@aws-cdk/cfnspec/coverage/lcov-report/lib/schema/index.ts.html +1 -1
- package/node_modules/@aws-cdk/cfnspec/coverage/lcov-report/lib/schema/property.ts.html +1 -1
- package/node_modules/@aws-cdk/cfnspec/coverage/lcov-report/lib/schema/resource-type.ts.html +1 -1
- package/node_modules/@aws-cdk/cfnspec/coverage/lcov-report/lib/schema/specification.ts.html +1 -1
- package/node_modules/@aws-cdk/cfnspec/coverage/lib/canned-metrics/canned-metrics-schema.ts.html +1 -1
- package/node_modules/@aws-cdk/cfnspec/coverage/lib/canned-metrics/index.html +1 -1
- package/node_modules/@aws-cdk/cfnspec/coverage/lib/canned-metrics.ts.html +1 -1
- package/node_modules/@aws-cdk/cfnspec/coverage/lib/index.html +1 -1
- package/node_modules/@aws-cdk/cfnspec/coverage/lib/index.ts.html +1 -1
- package/node_modules/@aws-cdk/cfnspec/coverage/lib/schema/augmentation.ts.html +1 -1
- package/node_modules/@aws-cdk/cfnspec/coverage/lib/schema/base-types.ts.html +1 -1
- package/node_modules/@aws-cdk/cfnspec/coverage/lib/schema/index.html +1 -1
- package/node_modules/@aws-cdk/cfnspec/coverage/lib/schema/index.ts.html +1 -1
- package/node_modules/@aws-cdk/cfnspec/coverage/lib/schema/property.ts.html +1 -1
- package/node_modules/@aws-cdk/cfnspec/coverage/lib/schema/resource-type.ts.html +1 -1
- package/node_modules/@aws-cdk/cfnspec/coverage/lib/schema/specification.ts.html +1 -1
- package/node_modules/@aws-cdk/cfnspec/package.json +3 -3
- package/node_modules/@aws-cdk/cfnspec/tsconfig.tsbuildinfo +4 -4
- package/node_modules/@aws-cdk/cloudformation-diff/package.json +5 -5
- package/node_modules/table/node_modules/ajv/README.md +1 -1
- package/node_modules/table/node_modules/ajv/dist/compile/codegen/code.d.ts +1 -0
- package/node_modules/table/node_modules/ajv/dist/compile/codegen/code.js +9 -1
- package/node_modules/table/node_modules/ajv/dist/compile/codegen/code.js.map +1 -1
- package/node_modules/table/node_modules/ajv/dist/core.d.ts +1 -0
- package/node_modules/table/node_modules/ajv/dist/core.js.map +1 -1
- package/node_modules/table/node_modules/ajv/dist/standalone/index.js +8 -1
- package/node_modules/table/node_modules/ajv/dist/standalone/index.js.map +1 -1
- package/node_modules/table/node_modules/ajv/dist/types/jtd-schema.d.ts +2 -1
- package/node_modules/table/node_modules/ajv/dist/vocabularies/discriminator/index.js +10 -3
- package/node_modules/table/node_modules/ajv/dist/vocabularies/discriminator/index.js.map +1 -1
- package/node_modules/table/node_modules/ajv/lib/compile/codegen/code.ts +8 -0
- package/node_modules/table/node_modules/ajv/lib/core.ts +1 -0
- package/node_modules/table/node_modules/ajv/lib/standalone/index.ts +9 -2
- package/node_modules/table/node_modules/ajv/lib/types/json-schema.ts +1 -4
- package/node_modules/table/node_modules/ajv/lib/types/jtd-schema.ts +4 -5
- package/node_modules/table/node_modules/ajv/lib/vocabularies/discriminator/index.ts +11 -3
- package/node_modules/table/node_modules/ajv/package.json +4 -3
- package/package.json +3 -3
- package/releasetag.txt +1 -1
- package/version.txt +1 -1
|
@@ -22,6 +22,10 @@ function standaloneCode(ajv, refsOrFunc) {
|
|
|
22
22
|
const usedValues = {};
|
|
23
23
|
const n = source === null || source === void 0 ? void 0 : source.validateName;
|
|
24
24
|
const vCode = validateCode(usedValues, source);
|
|
25
|
+
if (ajv.opts.code.esm) {
|
|
26
|
+
// Always do named export as `validate` rather than the variable `n` which is `validateXX` for known export value
|
|
27
|
+
return `"use strict";${_n}export const validate = ${n};${_n}export default ${n};${_n}${vCode}`;
|
|
28
|
+
}
|
|
25
29
|
return `"use strict";${_n}module.exports = ${n};${_n}module.exports.default = ${n};${_n}${vCode}`;
|
|
26
30
|
}
|
|
27
31
|
function multiExportsCode(schemas, getValidateFunc) {
|
|
@@ -32,7 +36,10 @@ function standaloneCode(ajv, refsOrFunc) {
|
|
|
32
36
|
const v = getValidateFunc(schemas[name]);
|
|
33
37
|
if (v) {
|
|
34
38
|
const vCode = validateCode(usedValues, v.source);
|
|
35
|
-
|
|
39
|
+
const exportSyntax = ajv.opts.code.esm
|
|
40
|
+
? (0, code_1._) `export const ${(0, code_1.getEsmExportName)(name)}`
|
|
41
|
+
: (0, code_1._) `exports${(0, code_1.getProperty)(name)}`;
|
|
42
|
+
code = (0, code_1._) `${code}${_n}${exportSyntax} = ${(_a = v.source) === null || _a === void 0 ? void 0 : _a.validateName};${_n}${vCode}`;
|
|
36
43
|
}
|
|
37
44
|
}
|
|
38
45
|
return `${code}`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/standalone/index.ts"],"names":[],"mappings":";;AAGA,oDAAkG;AAClG,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/standalone/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -118,7 +118,8 @@ export declare type JTDSchemaType<T, D extends Record<string, unknown> = Record<
|
|
|
118
118
|
[K in keyof D]: JTDSchemaType<D[K], D>;
|
|
119
119
|
};
|
|
120
120
|
};
|
|
121
|
-
declare type JTDDataDef<S, D extends Record<string, unknown>> =
|
|
121
|
+
declare type JTDDataDef<S, D extends Record<string, unknown>> = // ref
|
|
122
|
+
(S extends {
|
|
122
123
|
ref: string;
|
|
123
124
|
} ? D extends {
|
|
124
125
|
[K in S["ref"]]: infer V;
|
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const codegen_1 = require("../../compile/codegen");
|
|
4
4
|
const types_1 = require("../discriminator/types");
|
|
5
|
+
const compile_1 = require("../../compile");
|
|
6
|
+
const util_1 = require("../../compile/util");
|
|
5
7
|
const error = {
|
|
6
8
|
message: ({ params: { discrError, tagName } }) => discrError === types_1.DiscrError.Tag
|
|
7
9
|
? `tag "${tagName}" must be string`
|
|
@@ -53,10 +55,15 @@ const def = {
|
|
|
53
55
|
const topRequired = hasRequired(parentSchema);
|
|
54
56
|
let tagRequired = true;
|
|
55
57
|
for (let i = 0; i < oneOf.length; i++) {
|
|
56
|
-
|
|
57
|
-
|
|
58
|
+
let sch = oneOf[i];
|
|
59
|
+
if ((sch === null || sch === void 0 ? void 0 : sch.$ref) && !(0, util_1.schemaHasRulesButRef)(sch, it.self.RULES)) {
|
|
60
|
+
sch = compile_1.resolveRef.call(it.self, it.schemaEnv, it.baseId, sch === null || sch === void 0 ? void 0 : sch.$ref);
|
|
61
|
+
if (sch instanceof compile_1.SchemaEnv)
|
|
62
|
+
sch = sch.schema;
|
|
63
|
+
}
|
|
64
|
+
const propSch = (_a = sch === null || sch === void 0 ? void 0 : sch.properties) === null || _a === void 0 ? void 0 : _a[tagName];
|
|
58
65
|
if (typeof propSch != "object") {
|
|
59
|
-
throw new Error(`discriminator: oneOf schemas must have "properties/${tagName}"`);
|
|
66
|
+
throw new Error(`discriminator: oneOf subschemas (or referenced schemas) must have "properties/${tagName}"`);
|
|
60
67
|
}
|
|
61
68
|
tagRequired = tagRequired && (topRequired || hasRequired(sch));
|
|
62
69
|
addMappings(propSch, i);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/vocabularies/discriminator/index.ts"],"names":[],"mappings":";;AAEA,mDAA0D;AAC1D,kDAAgE;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/vocabularies/discriminator/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -155,6 +155,14 @@ export function getProperty(key: Code | string | number): Code {
|
|
|
155
155
|
return typeof key == "string" && IDENTIFIER.test(key) ? new _Code(`.${key}`) : _`[${key}]`
|
|
156
156
|
}
|
|
157
157
|
|
|
158
|
+
//Does best effort to format the name properly
|
|
159
|
+
export function getEsmExportName(key: Code | string | number): Code {
|
|
160
|
+
if (typeof key == "string" && IDENTIFIER.test(key)) {
|
|
161
|
+
return new _Code(`${key}`)
|
|
162
|
+
}
|
|
163
|
+
throw new Error(`CodeGen: invalid export name: ${key}, use explicit $id name mapping`)
|
|
164
|
+
}
|
|
165
|
+
|
|
158
166
|
export function regexpCode(rx: RegExp): Code {
|
|
159
167
|
return new _Code(rx.toString())
|
|
160
168
|
}
|
|
@@ -140,6 +140,7 @@ export interface CurrentOptions {
|
|
|
140
140
|
|
|
141
141
|
export interface CodeOptions {
|
|
142
142
|
es5?: boolean
|
|
143
|
+
esm?: boolean
|
|
143
144
|
lines?: boolean
|
|
144
145
|
optimize?: boolean | number
|
|
145
146
|
formats?: Code // code to require (or construct) map of available formats - for standalone code
|
|
@@ -2,7 +2,7 @@ import type AjvCore from "../core"
|
|
|
2
2
|
import type {AnyValidateFunction, SourceCode} from "../types"
|
|
3
3
|
import type {SchemaEnv} from "../compile"
|
|
4
4
|
import {UsedScopeValues, UsedValueState, ValueScopeName, varKinds} from "../compile/codegen/scope"
|
|
5
|
-
import {_, nil, _Code, Code, getProperty} from "../compile/codegen/code"
|
|
5
|
+
import {_, nil, _Code, Code, getProperty, getEsmExportName} from "../compile/codegen/code"
|
|
6
6
|
|
|
7
7
|
function standaloneCode(
|
|
8
8
|
ajv: AjvCore,
|
|
@@ -30,6 +30,10 @@ function standaloneCode(
|
|
|
30
30
|
const usedValues: UsedScopeValues = {}
|
|
31
31
|
const n = source?.validateName
|
|
32
32
|
const vCode = validateCode(usedValues, source)
|
|
33
|
+
if (ajv.opts.code.esm) {
|
|
34
|
+
// Always do named export as `validate` rather than the variable `n` which is `validateXX` for known export value
|
|
35
|
+
return `"use strict";${_n}export const validate = ${n};${_n}export default ${n};${_n}${vCode}`
|
|
36
|
+
}
|
|
33
37
|
return `"use strict";${_n}module.exports = ${n};${_n}module.exports.default = ${n};${_n}${vCode}`
|
|
34
38
|
}
|
|
35
39
|
|
|
@@ -43,7 +47,10 @@ function standaloneCode(
|
|
|
43
47
|
const v = getValidateFunc(schemas[name] as T)
|
|
44
48
|
if (v) {
|
|
45
49
|
const vCode = validateCode(usedValues, v.source)
|
|
46
|
-
|
|
50
|
+
const exportSyntax = ajv.opts.code.esm
|
|
51
|
+
? _`export const ${getEsmExportName(name)}`
|
|
52
|
+
: _`exports${getProperty(name)}`
|
|
53
|
+
code = _`${code}${_n}${exportSyntax} = ${v.source?.validateName};${_n}${vCode}`
|
|
47
54
|
}
|
|
48
55
|
}
|
|
49
56
|
return `${code}`
|
|
@@ -113,10 +113,7 @@ type UncheckedJSONSchemaType<T, IsPartial extends boolean> = (
|
|
|
113
113
|
dependentSchemas?: {[K in keyof T]?: UncheckedPartialSchema<T>}
|
|
114
114
|
minProperties?: number
|
|
115
115
|
maxProperties?: number
|
|
116
|
-
} & (// "required" type does not guarantee that all required properties
|
|
117
|
-
// are listed it only asserts that optional cannot be listed.
|
|
118
|
-
// "required" is not necessary if it's a non-partial type with no required keys
|
|
119
|
-
IsPartial extends true
|
|
116
|
+
} & (IsPartial extends true // "required" is not necessary if it's a non-partial type with no required keys // are listed it only asserts that optional cannot be listed. // "required" type does not guarantee that all required properties
|
|
120
117
|
? {required: Readonly<(keyof T)[]>}
|
|
121
118
|
: [UncheckedRequiredMembers<T>] extends [never]
|
|
122
119
|
? {required?: Readonly<UncheckedRequiredMembers<T>[]>}
|
|
@@ -117,9 +117,8 @@ export type JTDSchemaType<T, D extends Record<string, unknown> = Record<string,
|
|
|
117
117
|
: never))
|
|
118
118
|
// empty - empty schemas also treat nullable differently in that it's now fully ignored
|
|
119
119
|
| (unknown extends T ? {nullable?: boolean} : never)
|
|
120
|
-
// all other types
|
|
121
|
-
| ((
|
|
122
|
-
true extends NullTypeEquality<T, number>
|
|
120
|
+
// all other types // numbers - only accepts the type number
|
|
121
|
+
| ((true extends NullTypeEquality<T, number>
|
|
123
122
|
? {type: NumberType}
|
|
124
123
|
: // booleans - accepts the type boolean
|
|
125
124
|
true extends NullTypeEquality<T, boolean>
|
|
@@ -198,8 +197,8 @@ export type JTDSchemaType<T, D extends Record<string, unknown> = Record<string,
|
|
|
198
197
|
}
|
|
199
198
|
|
|
200
199
|
type JTDDataDef<S, D extends Record<string, unknown>> =
|
|
201
|
-
|
|
|
202
|
-
|
|
200
|
+
| // ref
|
|
201
|
+
(S extends {ref: string}
|
|
203
202
|
? D extends {[K in S["ref"]]: infer V}
|
|
204
203
|
? JTDDataDef<V, D>
|
|
205
204
|
: never
|
|
@@ -2,6 +2,8 @@ import type {CodeKeywordDefinition, AnySchemaObject, KeywordErrorDefinition} fro
|
|
|
2
2
|
import type {KeywordCxt} from "../../compile/validate"
|
|
3
3
|
import {_, getProperty, Name} from "../../compile/codegen"
|
|
4
4
|
import {DiscrError, DiscrErrorObj} from "../discriminator/types"
|
|
5
|
+
import {resolveRef, SchemaEnv} from "../../compile"
|
|
6
|
+
import {schemaHasRulesButRef} from "../../compile/util"
|
|
5
7
|
|
|
6
8
|
export type DiscriminatorError = DiscrErrorObj<DiscrError.Tag> | DiscrErrorObj<DiscrError.Mapping>
|
|
7
9
|
|
|
@@ -62,10 +64,16 @@ const def: CodeKeywordDefinition = {
|
|
|
62
64
|
const topRequired = hasRequired(parentSchema)
|
|
63
65
|
let tagRequired = true
|
|
64
66
|
for (let i = 0; i < oneOf.length; i++) {
|
|
65
|
-
|
|
66
|
-
|
|
67
|
+
let sch = oneOf[i]
|
|
68
|
+
if (sch?.$ref && !schemaHasRulesButRef(sch, it.self.RULES)) {
|
|
69
|
+
sch = resolveRef.call(it.self, it.schemaEnv, it.baseId, sch?.$ref)
|
|
70
|
+
if (sch instanceof SchemaEnv) sch = sch.schema
|
|
71
|
+
}
|
|
72
|
+
const propSch = sch?.properties?.[tagName]
|
|
67
73
|
if (typeof propSch != "object") {
|
|
68
|
-
throw new Error(
|
|
74
|
+
throw new Error(
|
|
75
|
+
`discriminator: oneOf subschemas (or referenced schemas) must have "properties/${tagName}"`
|
|
76
|
+
)
|
|
69
77
|
}
|
|
70
78
|
tagRequired = tagRequired && (topRequired || hasRequired(sch))
|
|
71
79
|
addMappings(propSch, i)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ajv",
|
|
3
|
-
"version": "8.
|
|
3
|
+
"version": "8.9.0",
|
|
4
4
|
"description": "Another JSON Schema Validator",
|
|
5
5
|
"main": "dist/ajv.js",
|
|
6
6
|
"types": "dist/ajv.d.ts",
|
|
@@ -71,7 +71,7 @@
|
|
|
71
71
|
"@rollup/plugin-typescript": "^8.2.1",
|
|
72
72
|
"@types/chai": "^4.2.12",
|
|
73
73
|
"@types/mocha": "^9.0.0",
|
|
74
|
-
"@types/node": "^
|
|
74
|
+
"@types/node": "^17.0.0",
|
|
75
75
|
"@types/require-from-string": "^1.2.0",
|
|
76
76
|
"@typescript-eslint/eslint-plugin": "^3.8.0",
|
|
77
77
|
"@typescript-eslint/parser": "^3.8.0",
|
|
@@ -92,8 +92,9 @@
|
|
|
92
92
|
"karma": "^6.0.0",
|
|
93
93
|
"karma-chrome-launcher": "^3.0.0",
|
|
94
94
|
"karma-mocha": "^2.0.0",
|
|
95
|
-
"lint-staged": "^
|
|
95
|
+
"lint-staged": "^12.1.1",
|
|
96
96
|
"mocha": "^9.0.2",
|
|
97
|
+
"module-from-string": "^3.1.3",
|
|
97
98
|
"node-fetch": "^3.0.0",
|
|
98
99
|
"nyc": "^15.0.0",
|
|
99
100
|
"prettier": "^2.3.1",
|
package/package.json
CHANGED
|
@@ -57,7 +57,7 @@
|
|
|
57
57
|
"npm-check-updates": "^12",
|
|
58
58
|
"projen": "0.50.24",
|
|
59
59
|
"standard-version": "^9",
|
|
60
|
-
"ts-jest": "^27.1.
|
|
60
|
+
"ts-jest": "^27.1.3",
|
|
61
61
|
"typescript": "^4.5.4"
|
|
62
62
|
},
|
|
63
63
|
"peerDependencies": {
|
|
@@ -65,7 +65,7 @@
|
|
|
65
65
|
"constructs": "^10.0.5"
|
|
66
66
|
},
|
|
67
67
|
"dependencies": {
|
|
68
|
-
"@aws-cdk/assert": "^2.
|
|
68
|
+
"@aws-cdk/assert": "^2.8.0",
|
|
69
69
|
"case": "^1.6.3",
|
|
70
70
|
"sync-request": "^6.1.0"
|
|
71
71
|
},
|
|
@@ -83,7 +83,7 @@
|
|
|
83
83
|
],
|
|
84
84
|
"main": "lib/index.js",
|
|
85
85
|
"license": "Apache-2.0",
|
|
86
|
-
"version": "2.0.
|
|
86
|
+
"version": "2.0.42",
|
|
87
87
|
"jest": {
|
|
88
88
|
"testMatch": [
|
|
89
89
|
"<rootDir>/src/**/__tests__/**/*.ts?(x)",
|
package/releasetag.txt
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
v2.0.
|
|
1
|
+
v2.0.42
|
package/version.txt
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
2.0.
|
|
1
|
+
2.0.42
|