@angular-devkit/core 0.0.10 → 0.0.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.
Files changed (54) hide show
  1. package/{src/logger → node}/cli-logger.d.ts +2 -2
  2. package/node/cli-logger.js +43 -0
  3. package/node/fs.d.ts +1 -0
  4. package/node/fs.js +25 -0
  5. package/node/index.d.ts +11 -0
  6. package/node/index.js +17 -0
  7. package/node/resolve.d.ts +58 -0
  8. package/node/resolve.js +214 -0
  9. package/package.json +4 -2
  10. package/src/index.d.ts +3 -1
  11. package/src/index.js +4 -2
  12. package/src/json/index.d.ts +2 -0
  13. package/src/json/index.js +3 -1
  14. package/src/json/schema/index.d.ts +14 -0
  15. package/src/json/schema/index.js +19 -0
  16. package/src/json/schema/registry.d.ts +19 -0
  17. package/src/json/schema/registry.js +34 -0
  18. package/src/json/schema/schema.d.ts +83 -0
  19. package/src/json/schema/schema.js +3 -0
  20. package/src/json/schema/serializers/interface.d.ts +11 -0
  21. package/src/json/schema/serializers/interface.js +6 -0
  22. package/src/json/schema/serializers/javascript.d.ts +46 -0
  23. package/src/json/schema/serializers/javascript.js +94 -0
  24. package/src/json/schema/serializers/javascript_benchmark.d.ts +0 -0
  25. package/src/json/schema/serializers/javascript_benchmark.js +45 -0
  26. package/src/json/schema/serializers/templates/javascript/index.d.ts +11 -0
  27. package/src/json/schema/serializers/templates/javascript/index.js +21 -0
  28. package/src/json/schema/serializers/templates/javascript/prop-any.js +40 -0
  29. package/src/json/schema/serializers/templates/javascript/prop-array.js +166 -0
  30. package/src/json/schema/serializers/templates/javascript/prop-boolean.js +54 -0
  31. package/src/json/schema/serializers/templates/javascript/prop-number.js +130 -0
  32. package/src/json/schema/serializers/templates/javascript/prop-object.js +231 -0
  33. package/src/json/schema/serializers/templates/javascript/prop-string.js +98 -0
  34. package/src/json/schema/serializers/templates/javascript/root.js +41 -0
  35. package/src/json/schema/serializers/templates/javascript/subschema.js +65 -0
  36. package/src/logger/index.d.ts +0 -1
  37. package/src/logger/index.js +1 -2
  38. package/src/logger/logger.d.ts +12 -1
  39. package/src/logger/logger.js +17 -1
  40. package/src/logger/null-logger.d.ts +2 -1
  41. package/src/logger/null-logger.js +12 -1
  42. package/src/utils/index.d.ts +3 -0
  43. package/src/utils/index.js +4 -1
  44. package/src/utils/literals.d.ts +12 -0
  45. package/src/utils/literals.js +42 -0
  46. package/src/utils/template.d.ts +82 -0
  47. package/src/utils/template.js +258 -0
  48. package/src/virtual-fs/index.d.ts +8 -0
  49. package/src/virtual-fs/index.js +14 -0
  50. package/src/virtual-fs/path.d.ts +90 -0
  51. package/src/virtual-fs/path.js +233 -0
  52. package/src/virtual-fs/path_benchmark.d.ts +0 -0
  53. package/src/virtual-fs/path_benchmark.js +18 -0
  54. package/src/logger/cli-logger.js +0 -44
@@ -0,0 +1,83 @@
1
+ /**
2
+ * @license
3
+ * Copyright Google Inc. All Rights Reserved.
4
+ *
5
+ * Use of this source code is governed by an MIT-style license that can be
6
+ * found in the LICENSE file at https://angular.io/license
7
+ */
8
+ import { JsonArray, JsonObject, JsonValue } from '../interface';
9
+ export interface JsonSchemaBase extends Partial<JsonObject> {
10
+ $schema?: string;
11
+ $id?: string;
12
+ id?: string;
13
+ title?: string;
14
+ description?: string;
15
+ readonly?: boolean;
16
+ $ref?: string;
17
+ allOf?: (JsonObject & JsonSchema)[];
18
+ anyOf?: (JsonObject & JsonSchema)[];
19
+ oneOf?: (JsonObject & JsonSchema)[];
20
+ definitions?: {
21
+ [name: string]: (JsonObject & JsonSchema);
22
+ };
23
+ }
24
+ export interface JsonSchemaString {
25
+ type: 'string';
26
+ default?: string;
27
+ minLength?: number;
28
+ maxLength?: number;
29
+ pattern?: string;
30
+ format?: string;
31
+ }
32
+ export interface JsonSchemaNumberBase {
33
+ default?: number;
34
+ multipleOf?: number;
35
+ minimum?: number;
36
+ maximum?: number;
37
+ exclusiveMinimum?: boolean;
38
+ exclusiveMaximum?: boolean;
39
+ }
40
+ export interface JsonSchemaNumber extends JsonSchemaNumberBase {
41
+ type: 'number';
42
+ }
43
+ export interface JsonSchemaInteger extends JsonSchemaNumberBase {
44
+ type: 'integer';
45
+ }
46
+ export interface JsonSchemaBoolean {
47
+ type: 'boolean';
48
+ default?: boolean;
49
+ }
50
+ export interface JsonSchemaObject extends JsonSchemaBase {
51
+ type: 'object';
52
+ properties?: {
53
+ [name: string]: (JsonObject & JsonSchema);
54
+ };
55
+ patternProperties?: {
56
+ [pattern: string]: (JsonObject & JsonSchema);
57
+ };
58
+ required?: string[];
59
+ minProperties?: number;
60
+ maxProperties?: number;
61
+ dependencies?: {
62
+ [name: string]: (string & JsonSchema) | string[];
63
+ };
64
+ additionalProperties?: boolean | (JsonObject & JsonSchema);
65
+ }
66
+ export interface JsonSchemaArray extends JsonSchemaBase {
67
+ type: 'array';
68
+ additionalItems?: boolean | (JsonObject & JsonSchema);
69
+ items?: JsonArray;
70
+ maxItems?: number;
71
+ minItems?: number;
72
+ uniqueItems?: boolean;
73
+ }
74
+ export interface JsonSchemaOneOfType extends JsonSchemaBase {
75
+ type: JsonArray & (JsonSchemaBaseType[]);
76
+ }
77
+ export interface JsonSchemaAny {
78
+ type: undefined;
79
+ default?: JsonValue;
80
+ enum?: JsonArray;
81
+ }
82
+ export declare type JsonSchema = JsonSchemaString | JsonSchemaNumber | JsonSchemaInteger | JsonSchemaObject | JsonSchemaArray | JsonSchemaOneOfType | JsonSchemaAny;
83
+ export declare type JsonSchemaBaseType = undefined | 'string' | 'number' | 'object' | 'array' | 'boolean';
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hLmpzIiwic291cmNlUm9vdCI6Ii9Vc2Vycy9oYW5zbC9Tb3VyY2VzL2RldmtpdC8iLCJzb3VyY2VzIjpbInBhY2thZ2VzL2FuZ3VsYXJfZGV2a2l0L2NvcmUvc3JjL2pzb24vc2NoZW1hL3NjaGVtYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuaW1wb3J0IHsgSnNvbkFycmF5LCBKc29uT2JqZWN0LCBKc29uVmFsdWUgfSBmcm9tICcuLi9pbnRlcmZhY2UnO1xuXG5cbmV4cG9ydCBpbnRlcmZhY2UgSnNvblNjaGVtYUJhc2UgZXh0ZW5kcyBQYXJ0aWFsPEpzb25PYmplY3Q+IHtcbiAgJHNjaGVtYT86IHN0cmluZztcbiAgJGlkPzogc3RyaW5nO1xuXG4gIC8vIE1ldGFkYXRhLlxuICBpZD86IHN0cmluZztcbiAgdGl0bGU/OiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICByZWFkb25seT86IGJvb2xlYW47XG5cbiAgLy8gUmVmZXJlbmNlIHByb3BlcnRpZXMuXG4gICRyZWY/OiBzdHJpbmc7XG4gIGFsbE9mPzogKEpzb25PYmplY3QgJiBKc29uU2NoZW1hKVtdO1xuICBhbnlPZj86IChKc29uT2JqZWN0ICYgSnNvblNjaGVtYSlbXTtcbiAgb25lT2Y/OiAoSnNvbk9iamVjdCAmIEpzb25TY2hlbWEpW107XG5cbiAgLy8gU3RydWN0dXJhbCBwcm9wZXJ0aWVzLlxuICBkZWZpbml0aW9ucz86IHsgW25hbWU6IHN0cmluZ106IChKc29uT2JqZWN0ICYgSnNvblNjaGVtYSkgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBKc29uU2NoZW1hU3RyaW5nIHtcbiAgdHlwZTogJ3N0cmluZyc7XG4gIGRlZmF1bHQ/OiBzdHJpbmc7XG5cbiAgbWluTGVuZ3RoPzogbnVtYmVyO1xuICBtYXhMZW5ndGg/OiBudW1iZXI7XG4gIHBhdHRlcm4/OiBzdHJpbmc7XG4gIGZvcm1hdD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBKc29uU2NoZW1hTnVtYmVyQmFzZSB7XG4gIGRlZmF1bHQ/OiBudW1iZXI7XG4gIG11bHRpcGxlT2Y/OiBudW1iZXI7XG5cbiAgLy8gUmFuZ2UuXG4gIG1pbmltdW0/OiBudW1iZXI7XG4gIG1heGltdW0/OiBudW1iZXI7XG4gIGV4Y2x1c2l2ZU1pbmltdW0/OiBib29sZWFuO1xuICBleGNsdXNpdmVNYXhpbXVtPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBKc29uU2NoZW1hTnVtYmVyIGV4dGVuZHMgSnNvblNjaGVtYU51bWJlckJhc2Uge1xuICB0eXBlOiAnbnVtYmVyJztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBKc29uU2NoZW1hSW50ZWdlciBleHRlbmRzIEpzb25TY2hlbWFOdW1iZXJCYXNlIHtcbiAgdHlwZTogJ2ludGVnZXInO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEpzb25TY2hlbWFCb29sZWFuIHtcbiAgdHlwZTogJ2Jvb2xlYW4nO1xuICBkZWZhdWx0PzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBKc29uU2NoZW1hT2JqZWN0IGV4dGVuZHMgSnNvblNjaGVtYUJhc2Uge1xuICB0eXBlOiAnb2JqZWN0JztcblxuICAvLyBPYmplY3QgcHJvcGVydGllcy5cbiAgcHJvcGVydGllcz86IHsgW25hbWU6IHN0cmluZ106IChKc29uT2JqZWN0ICYgSnNvblNjaGVtYSkgfTtcbiAgcGF0dGVyblByb3BlcnRpZXM/OiB7IFtwYXR0ZXJuOiBzdHJpbmddOiAoSnNvbk9iamVjdCAmIEpzb25TY2hlbWEpIH07XG4gIHJlcXVpcmVkPzogc3RyaW5nW107XG4gIG1pblByb3BlcnRpZXM/OiBudW1iZXI7XG4gIG1heFByb3BlcnRpZXM/OiBudW1iZXI7XG5cbiAgZGVwZW5kZW5jaWVzPzogeyBbbmFtZTogc3RyaW5nXTogKHN0cmluZyAmIEpzb25TY2hlbWEpIHwgc3RyaW5nW107IH07XG5cbiAgYWRkaXRpb25hbFByb3BlcnRpZXM/OiBib29sZWFuIHwgKEpzb25PYmplY3QgJiBKc29uU2NoZW1hKTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBKc29uU2NoZW1hQXJyYXkgZXh0ZW5kcyBKc29uU2NoZW1hQmFzZSB7XG4gIHR5cGU6ICdhcnJheSc7XG5cbiAgYWRkaXRpb25hbEl0ZW1zPzogYm9vbGVhbiB8IChKc29uT2JqZWN0ICYgSnNvblNjaGVtYSk7XG4gIGl0ZW1zPzogSnNvbkFycmF5O1xuICBtYXhJdGVtcz86IG51bWJlcjtcbiAgbWluSXRlbXM/OiBudW1iZXI7XG4gIHVuaXF1ZUl0ZW1zPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBKc29uU2NoZW1hT25lT2ZUeXBlIGV4dGVuZHMgSnNvblNjaGVtYUJhc2Uge1xuICB0eXBlOiBKc29uQXJyYXkgJiAoSnNvblNjaGVtYUJhc2VUeXBlW10pO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEpzb25TY2hlbWFBbnkge1xuICAvLyBUeXBlIHJlbGF0ZWQgcHJvcGVydGllcy5cbiAgdHlwZTogdW5kZWZpbmVkO1xuICBkZWZhdWx0PzogSnNvblZhbHVlO1xuICBlbnVtPzogSnNvbkFycmF5O1xufVxuXG5cbmV4cG9ydCB0eXBlIEpzb25TY2hlbWEgPSBKc29uU2NoZW1hU3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgIHwgSnNvblNjaGVtYU51bWJlclxuICAgICAgICAgICAgICAgICAgICAgICB8IEpzb25TY2hlbWFJbnRlZ2VyXG4gICAgICAgICAgICAgICAgICAgICAgIHwgSnNvblNjaGVtYU9iamVjdFxuICAgICAgICAgICAgICAgICAgICAgICB8IEpzb25TY2hlbWFBcnJheVxuICAgICAgICAgICAgICAgICAgICAgICB8IEpzb25TY2hlbWFPbmVPZlR5cGVcbiAgICAgICAgICAgICAgICAgICAgICAgfCBKc29uU2NoZW1hQW55O1xuZXhwb3J0IHR5cGUgSnNvblNjaGVtYUJhc2VUeXBlID0gdW5kZWZpbmVkIHwgJ3N0cmluZycgfCAnbnVtYmVyJyB8ICdvYmplY3QnIHwgJ2FycmF5JyB8ICdib29sZWFuJztcbiJdfQ==
@@ -0,0 +1,11 @@
1
+ /**
2
+ * @license
3
+ * Copyright Google Inc. All Rights Reserved.
4
+ *
5
+ * Use of this source code is governed by an MIT-style license that can be
6
+ * found in the LICENSE file at https://angular.io/license
7
+ */
8
+ import { JsonSchemaRegistry } from '../registry';
9
+ export declare abstract class JsonSchemaSerializer<T> {
10
+ abstract serialize(ref: string, registry: JsonSchemaRegistry): T;
11
+ }
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ class JsonSchemaSerializer {
4
+ }
5
+ exports.JsonSchemaSerializer = JsonSchemaSerializer;
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6Ii9Vc2Vycy9oYW5zbC9Tb3VyY2VzL2RldmtpdC8iLCJzb3VyY2VzIjpbInBhY2thZ2VzL2FuZ3VsYXJfZGV2a2l0L2NvcmUvc3JjL2pzb24vc2NoZW1hL3NlcmlhbGl6ZXJzL2ludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQVVBO0NBRUM7QUFGRCxvREFFQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cbmltcG9ydCB7IEpzb25TY2hlbWFSZWdpc3RyeSB9IGZyb20gJy4uL3JlZ2lzdHJ5JztcblxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgSnNvblNjaGVtYVNlcmlhbGl6ZXI8VD4ge1xuICBhYnN0cmFjdCBzZXJpYWxpemUocmVmOiBzdHJpbmcsIHJlZ2lzdHJ5OiBKc29uU2NoZW1hUmVnaXN0cnkpOiBUO1xufVxuIl19
@@ -0,0 +1,46 @@
1
+ /**
2
+ * @license
3
+ * Copyright Google Inc. All Rights Reserved.
4
+ *
5
+ * Use of this source code is governed by an MIT-style license that can be
6
+ * found in the LICENSE file at https://angular.io/license
7
+ */
8
+ import { BaseException } from '../../../exception/exception';
9
+ import { JsonSchemaRegistry } from '../registry';
10
+ import { JsonSchema } from '../schema';
11
+ import { JsonSchemaSerializer } from './interface';
12
+ export declare class InvalidRangeException<T> extends BaseException {
13
+ constructor(name: string, value: T, comparator: string, expected: T);
14
+ }
15
+ export declare class InvalidValueException extends BaseException {
16
+ constructor(name: string, value: {}, expected: string);
17
+ }
18
+ export declare class InvalidSchemaException extends BaseException {
19
+ constructor(schema: JsonSchema);
20
+ }
21
+ export declare class InvalidPropertyNameException extends BaseException {
22
+ readonly path: string;
23
+ constructor(path: string);
24
+ }
25
+ export declare class RequiredValueMissingException extends BaseException {
26
+ readonly path: string;
27
+ constructor(path: string);
28
+ }
29
+ export declare const exceptions: {
30
+ InvalidRangeException: typeof InvalidRangeException;
31
+ InvalidSchemaException: typeof InvalidSchemaException;
32
+ InvalidValueException: typeof InvalidValueException;
33
+ InvalidPropertyNameException: typeof InvalidPropertyNameException;
34
+ RequiredValueMissingException: typeof RequiredValueMissingException;
35
+ };
36
+ export interface JavascriptSerializerOptions {
37
+ ignoreExtraProperties?: boolean;
38
+ allowAccessUndefinedObjects?: boolean;
39
+ }
40
+ export declare class JavascriptSerializer<T> extends JsonSchemaSerializer<(value: T) => T> {
41
+ private _options;
42
+ private _uniqueSet;
43
+ constructor(_options?: JavascriptSerializerOptions);
44
+ protected _unique(name: string): string;
45
+ serialize(ref: string, registry: JsonSchemaRegistry): (value: T) => any;
46
+ }
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ /**
4
+ * @license
5
+ * Copyright Google Inc. All Rights Reserved.
6
+ *
7
+ * Use of this source code is governed by an MIT-style license that can be
8
+ * found in the LICENSE file at https://angular.io/license
9
+ */
10
+ const exception_1 = require("../../../exception/exception");
11
+ const strings_1 = require("../../../utils/strings");
12
+ const interface_1 = require("./interface");
13
+ class InvalidRangeException extends exception_1.BaseException {
14
+ constructor(name, value, comparator, expected) {
15
+ super(`Property ${JSON.stringify(name)} expected a value `
16
+ + `${comparator} ${JSON.stringify(expected)}, received ${JSON.stringify(value)}.`);
17
+ }
18
+ }
19
+ exports.InvalidRangeException = InvalidRangeException;
20
+ class InvalidValueException extends exception_1.BaseException {
21
+ constructor(name, value, expected) {
22
+ super(`Property ${JSON.stringify(name)} expected a value of type ${expected}, `
23
+ + `received ${value}.`);
24
+ }
25
+ }
26
+ exports.InvalidValueException = InvalidValueException;
27
+ class InvalidSchemaException extends exception_1.BaseException {
28
+ constructor(schema) {
29
+ super(`Invalid schema: ${JSON.stringify(schema)}`);
30
+ }
31
+ }
32
+ exports.InvalidSchemaException = InvalidSchemaException;
33
+ class InvalidPropertyNameException extends exception_1.BaseException {
34
+ constructor(path) {
35
+ super(`Property ${JSON.stringify(path)} does not exist in the schema, and no additional `
36
+ + `properties are allowed.`);
37
+ this.path = path;
38
+ }
39
+ }
40
+ exports.InvalidPropertyNameException = InvalidPropertyNameException;
41
+ class RequiredValueMissingException extends exception_1.BaseException {
42
+ constructor(path) {
43
+ super(`Property ${JSON.stringify(path)} is required but missing.`);
44
+ this.path = path;
45
+ }
46
+ }
47
+ exports.RequiredValueMissingException = RequiredValueMissingException;
48
+ exports.exceptions = {
49
+ InvalidRangeException,
50
+ InvalidSchemaException,
51
+ InvalidValueException,
52
+ InvalidPropertyNameException,
53
+ RequiredValueMissingException,
54
+ };
55
+ const symbols = {
56
+ Schema: Symbol('schema'),
57
+ };
58
+ class JavascriptSerializer extends interface_1.JsonSchemaSerializer {
59
+ constructor(_options) {
60
+ super();
61
+ this._options = _options;
62
+ this._uniqueSet = new Set();
63
+ }
64
+ _unique(name) {
65
+ let i = 1;
66
+ let result = name;
67
+ while (this._uniqueSet.has(result)) {
68
+ result = name + i;
69
+ i++;
70
+ }
71
+ this._uniqueSet.add(result);
72
+ return result;
73
+ }
74
+ serialize(ref, registry) {
75
+ const rootSchema = registry.getSchemaFromRef(ref);
76
+ const { root, templates } = require('./templates/javascript');
77
+ const source = root({
78
+ exceptions: exports.exceptions,
79
+ name: '',
80
+ options: this._options || {},
81
+ schema: rootSchema,
82
+ strings: {
83
+ classify: strings_1.classify,
84
+ camelize: strings_1.camelize,
85
+ },
86
+ symbols,
87
+ templates,
88
+ });
89
+ const fn = new Function('registry', 'exceptions', 'symbols', 'value', source);
90
+ return (value) => fn(registry, exports.exceptions, symbols, value);
91
+ }
92
+ }
93
+ exports.JavascriptSerializer = JavascriptSerializer;
94
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiamF2YXNjcmlwdC5qcyIsInNvdXJjZVJvb3QiOiIvVXNlcnMvaGFuc2wvU291cmNlcy9kZXZraXQvIiwic291cmNlcyI6WyJwYWNrYWdlcy9hbmd1bGFyX2RldmtpdC9jb3JlL3NyYy9qc29uL3NjaGVtYS9zZXJpYWxpemVycy9qYXZhc2NyaXB0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUE7Ozs7OztHQU1HO0FBQ0gsNERBQTZEO0FBQzdELG9EQUE0RDtBQUc1RCwyQ0FBbUQ7QUFHbkQsMkJBQXNDLFNBQVEseUJBQWE7SUFDekQsWUFBWSxJQUFZLEVBQUUsS0FBUSxFQUFFLFVBQWtCLEVBQUUsUUFBVztRQUNqRSxLQUFLLENBQUMsWUFBWSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxvQkFBb0I7Y0FDdEQsR0FBRyxVQUFVLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsY0FBYyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN2RixDQUFDO0NBQ0Y7QUFMRCxzREFLQztBQUNELDJCQUFtQyxTQUFRLHlCQUFhO0lBQ3RELFlBQVksSUFBWSxFQUFFLEtBQVMsRUFBRSxRQUFnQjtRQUNuRCxLQUFLLENBQUMsWUFBWSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyw2QkFBNkIsUUFBUSxJQUFJO2NBQ3pFLFlBQVksS0FBSyxHQUFHLENBQUMsQ0FBQztJQUM5QixDQUFDO0NBQ0Y7QUFMRCxzREFLQztBQUNELDRCQUFvQyxTQUFRLHlCQUFhO0lBQ3ZELFlBQVksTUFBa0I7UUFDNUIsS0FBSyxDQUFDLG1CQUFtQixJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNyRCxDQUFDO0NBQ0Y7QUFKRCx3REFJQztBQUNELGtDQUEwQyxTQUFRLHlCQUFhO0lBQzdELFlBQTRCLElBQVk7UUFDdEMsS0FBSyxDQUFDLFlBQVksSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsbURBQW1EO2NBQ25GLHlCQUF5QixDQUFDLENBQUM7UUFGUCxTQUFJLEdBQUosSUFBSSxDQUFRO0lBR3hDLENBQUM7Q0FDRjtBQUxELG9FQUtDO0FBQ0QsbUNBQTJDLFNBQVEseUJBQWE7SUFDOUQsWUFBNEIsSUFBWTtRQUN0QyxLQUFLLENBQUMsWUFBWSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO1FBRHpDLFNBQUksR0FBSixJQUFJLENBQVE7SUFFeEMsQ0FBQztDQUNGO0FBSkQsc0VBSUM7QUFHWSxRQUFBLFVBQVUsR0FBRztJQUN4QixxQkFBcUI7SUFDckIsc0JBQXNCO0lBQ3RCLHFCQUFxQjtJQUNyQiw0QkFBNEI7SUFDNUIsNkJBQTZCO0NBQzlCLENBQUM7QUFHRixNQUFNLE9BQU8sR0FBRztJQUNkLE1BQU0sRUFBRSxNQUFNLENBQUMsUUFBUSxDQUFDO0NBQ3pCLENBQUM7QUFXRiwwQkFBcUMsU0FBUSxnQ0FBcUM7SUFHaEYsWUFBb0IsUUFBc0M7UUFBSSxLQUFLLEVBQUUsQ0FBQztRQUFsRCxhQUFRLEdBQVIsUUFBUSxDQUE4QjtRQUZsRCxlQUFVLEdBQUcsSUFBSSxHQUFHLEVBQVUsQ0FBQztJQUVnQyxDQUFDO0lBRTlELE9BQU8sQ0FBQyxJQUFZO1FBQzVCLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNWLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQztRQUNsQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDbkMsTUFBTSxHQUFHLElBQUksR0FBRyxDQUFDLENBQUM7WUFDbEIsQ0FBQyxFQUFFLENBQUM7UUFDTixDQUFDO1FBQ0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFNUIsTUFBTSxDQUFDLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsU0FBUyxDQUFDLEdBQVcsRUFBRSxRQUE0QjtRQUNqRCxNQUFNLFVBQVUsR0FBRyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbEQsTUFBTSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsR0FBRyxPQUFPLENBQUMsd0JBQXdCLENBQUMsQ0FBQztRQUU5RCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUM7WUFDbEIsVUFBVSxFQUFWLGtCQUFVO1lBQ1YsSUFBSSxFQUFFLEVBQUU7WUFDUixPQUFPLEVBQUUsSUFBSSxDQUFDLFFBQVEsSUFBSSxFQUFFO1lBQzVCLE1BQU0sRUFBRSxVQUFVO1lBQ2xCLE9BQU8sRUFBRTtnQkFDUCxRQUFRLEVBQVIsa0JBQVE7Z0JBQ1IsUUFBUSxFQUFSLGtCQUFRO2FBQ1Q7WUFDRCxPQUFPO1lBQ1AsU0FBUztTQUNWLENBQUMsQ0FBQztRQUVILE1BQU0sRUFBRSxHQUFHLElBQUksUUFBUSxDQUFDLFVBQVUsRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUU5RSxNQUFNLENBQUMsQ0FBQyxLQUFRLEtBQUssRUFBRSxDQUFDLFFBQVEsRUFBRSxrQkFBVSxFQUFFLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNoRSxDQUFDO0NBQ0Y7QUF0Q0Qsb0RBc0NDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuaW1wb3J0IHsgQmFzZUV4Y2VwdGlvbiB9IGZyb20gJy4uLy4uLy4uL2V4Y2VwdGlvbi9leGNlcHRpb24nO1xuaW1wb3J0IHsgY2FtZWxpemUsIGNsYXNzaWZ5IH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvc3RyaW5ncyc7XG5pbXBvcnQgeyBKc29uU2NoZW1hUmVnaXN0cnkgfSBmcm9tICcuLi9yZWdpc3RyeSc7XG5pbXBvcnQgeyBKc29uU2NoZW1hIH0gZnJvbSAnLi4vc2NoZW1hJztcbmltcG9ydCB7IEpzb25TY2hlbWFTZXJpYWxpemVyIH0gZnJvbSAnLi9pbnRlcmZhY2UnO1xuXG5cbmV4cG9ydCBjbGFzcyBJbnZhbGlkUmFuZ2VFeGNlcHRpb248VD4gZXh0ZW5kcyBCYXNlRXhjZXB0aW9uIHtcbiAgY29uc3RydWN0b3IobmFtZTogc3RyaW5nLCB2YWx1ZTogVCwgY29tcGFyYXRvcjogc3RyaW5nLCBleHBlY3RlZDogVCkge1xuICAgIHN1cGVyKGBQcm9wZXJ0eSAke0pTT04uc3RyaW5naWZ5KG5hbWUpfSBleHBlY3RlZCBhIHZhbHVlIGBcbiAgICAgICsgYCR7Y29tcGFyYXRvcn0gJHtKU09OLnN0cmluZ2lmeShleHBlY3RlZCl9LCByZWNlaXZlZCAke0pTT04uc3RyaW5naWZ5KHZhbHVlKX0uYCk7XG4gIH1cbn1cbmV4cG9ydCBjbGFzcyBJbnZhbGlkVmFsdWVFeGNlcHRpb24gZXh0ZW5kcyBCYXNlRXhjZXB0aW9uIHtcbiAgY29uc3RydWN0b3IobmFtZTogc3RyaW5nLCB2YWx1ZToge30sIGV4cGVjdGVkOiBzdHJpbmcpIHtcbiAgICBzdXBlcihgUHJvcGVydHkgJHtKU09OLnN0cmluZ2lmeShuYW1lKX0gZXhwZWN0ZWQgYSB2YWx1ZSBvZiB0eXBlICR7ZXhwZWN0ZWR9LCBgXG4gICAgICAgICsgYHJlY2VpdmVkICR7dmFsdWV9LmApO1xuICB9XG59XG5leHBvcnQgY2xhc3MgSW52YWxpZFNjaGVtYUV4Y2VwdGlvbiBleHRlbmRzIEJhc2VFeGNlcHRpb24ge1xuICBjb25zdHJ1Y3RvcihzY2hlbWE6IEpzb25TY2hlbWEpIHtcbiAgICBzdXBlcihgSW52YWxpZCBzY2hlbWE6ICR7SlNPTi5zdHJpbmdpZnkoc2NoZW1hKX1gKTtcbiAgfVxufVxuZXhwb3J0IGNsYXNzIEludmFsaWRQcm9wZXJ0eU5hbWVFeGNlcHRpb24gZXh0ZW5kcyBCYXNlRXhjZXB0aW9uIHtcbiAgY29uc3RydWN0b3IocHVibGljIHJlYWRvbmx5IHBhdGg6IHN0cmluZykge1xuICAgIHN1cGVyKGBQcm9wZXJ0eSAke0pTT04uc3RyaW5naWZ5KHBhdGgpfSBkb2VzIG5vdCBleGlzdCBpbiB0aGUgc2NoZW1hLCBhbmQgbm8gYWRkaXRpb25hbCBgXG4gICAgICAgICsgYHByb3BlcnRpZXMgYXJlIGFsbG93ZWQuYCk7XG4gIH1cbn1cbmV4cG9ydCBjbGFzcyBSZXF1aXJlZFZhbHVlTWlzc2luZ0V4Y2VwdGlvbiBleHRlbmRzIEJhc2VFeGNlcHRpb24ge1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgcGF0aDogc3RyaW5nKSB7XG4gICAgc3VwZXIoYFByb3BlcnR5ICR7SlNPTi5zdHJpbmdpZnkocGF0aCl9IGlzIHJlcXVpcmVkIGJ1dCBtaXNzaW5nLmApO1xuICB9XG59XG5cblxuZXhwb3J0IGNvbnN0IGV4Y2VwdGlvbnMgPSB7XG4gIEludmFsaWRSYW5nZUV4Y2VwdGlvbixcbiAgSW52YWxpZFNjaGVtYUV4Y2VwdGlvbixcbiAgSW52YWxpZFZhbHVlRXhjZXB0aW9uLFxuICBJbnZhbGlkUHJvcGVydHlOYW1lRXhjZXB0aW9uLFxuICBSZXF1aXJlZFZhbHVlTWlzc2luZ0V4Y2VwdGlvbixcbn07XG5cblxuY29uc3Qgc3ltYm9scyA9IHtcbiAgU2NoZW1hOiBTeW1ib2woJ3NjaGVtYScpLFxufTtcblxuXG5leHBvcnQgaW50ZXJmYWNlIEphdmFzY3JpcHRTZXJpYWxpemVyT3B0aW9ucyB7XG4gIC8vIERvIG5vdCB0aHJvdyBhbiBleGNlcHRpb24gaWYgYW4gZXh0cmEgcHJvcGVydHkgaXMgcGFzc2VkLCBzaW1wbHkgaWdub3JlIGl0LlxuICBpZ25vcmVFeHRyYVByb3BlcnRpZXM/OiBib29sZWFuO1xuICAvLyBBbGxvdyBhY2Nlc3NpbmcgdW5kZWZpbmVkIG9iamVjdHMsIHdoaWNoIG1pZ2h0IGhhdmUgZGVmYXVsdCBwcm9wZXJ0eSB2YWx1ZXMuXG4gIGFsbG93QWNjZXNzVW5kZWZpbmVkT2JqZWN0cz86IGJvb2xlYW47XG59XG5cblxuZXhwb3J0IGNsYXNzIEphdmFzY3JpcHRTZXJpYWxpemVyPFQ+IGV4dGVuZHMgSnNvblNjaGVtYVNlcmlhbGl6ZXI8KHZhbHVlOiBUKSA9PiBUPiB7XG4gIHByaXZhdGUgX3VuaXF1ZVNldCA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX29wdGlvbnM/OiBKYXZhc2NyaXB0U2VyaWFsaXplck9wdGlvbnMpIHsgc3VwZXIoKTsgfVxuXG4gIHByb3RlY3RlZCBfdW5pcXVlKG5hbWU6IHN0cmluZykge1xuICAgIGxldCBpID0gMTtcbiAgICBsZXQgcmVzdWx0ID0gbmFtZTtcbiAgICB3aGlsZSAodGhpcy5fdW5pcXVlU2V0LmhhcyhyZXN1bHQpKSB7XG4gICAgICByZXN1bHQgPSBuYW1lICsgaTtcbiAgICAgIGkrKztcbiAgICB9XG4gICAgdGhpcy5fdW5pcXVlU2V0LmFkZChyZXN1bHQpO1xuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHNlcmlhbGl6ZShyZWY6IHN0cmluZywgcmVnaXN0cnk6IEpzb25TY2hlbWFSZWdpc3RyeSkge1xuICAgIGNvbnN0IHJvb3RTY2hlbWEgPSByZWdpc3RyeS5nZXRTY2hlbWFGcm9tUmVmKHJlZik7XG4gICAgY29uc3QgeyByb290LCB0ZW1wbGF0ZXMgfSA9IHJlcXVpcmUoJy4vdGVtcGxhdGVzL2phdmFzY3JpcHQnKTtcblxuICAgIGNvbnN0IHNvdXJjZSA9IHJvb3Qoe1xuICAgICAgZXhjZXB0aW9ucyxcbiAgICAgIG5hbWU6ICcnLFxuICAgICAgb3B0aW9uczogdGhpcy5fb3B0aW9ucyB8fCB7fSxcbiAgICAgIHNjaGVtYTogcm9vdFNjaGVtYSxcbiAgICAgIHN0cmluZ3M6IHtcbiAgICAgICAgY2xhc3NpZnksXG4gICAgICAgIGNhbWVsaXplLFxuICAgICAgfSxcbiAgICAgIHN5bWJvbHMsXG4gICAgICB0ZW1wbGF0ZXMsXG4gICAgfSk7XG5cbiAgICBjb25zdCBmbiA9IG5ldyBGdW5jdGlvbigncmVnaXN0cnknLCAnZXhjZXB0aW9ucycsICdzeW1ib2xzJywgJ3ZhbHVlJywgc291cmNlKTtcblxuICAgIHJldHVybiAodmFsdWU6IFQpID0+IGZuKHJlZ2lzdHJ5LCBleGNlcHRpb25zLCBzeW1ib2xzLCB2YWx1ZSk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ /**
4
+ * @license
5
+ * Copyright Google Inc. All Rights Reserved.
6
+ *
7
+ * Use of this source code is governed by an MIT-style license that can be
8
+ * found in the LICENSE file at https://angular.io/license
9
+ */
10
+ // tslint:disable:no-any
11
+ const benchmark_1 = require("@_/benchmark");
12
+ const json_schema_1 = require("@ngtools/json-schema");
13
+ const fs = require("fs");
14
+ const path = require("path");
15
+ const registry_1 = require("../registry");
16
+ const javascript_1 = require("./javascript");
17
+ describe('JavaScript Serializer', () => {
18
+ // Schema for the Angular-CLI config.
19
+ const jsonPath = path.join(global._DevKitRoot, 'tests/@angular_devkit/core/json/schema/serializers/schema_benchmark.json');
20
+ const jsonContent = fs.readFileSync(jsonPath).toString();
21
+ const complexSchema = JSON.parse(jsonContent);
22
+ const registry = new registry_1.JsonSchemaRegistry();
23
+ registry.addSchema('', complexSchema);
24
+ benchmark_1.benchmark('schema parsing', () => {
25
+ new javascript_1.JavascriptSerializer().serialize('', registry)({});
26
+ }, () => {
27
+ const SchemaMetaClass = json_schema_1.SchemaClassFactory(complexSchema);
28
+ const schemaClass = new SchemaMetaClass({});
29
+ schemaClass.$$root();
30
+ });
31
+ (function () {
32
+ const registry = new registry_1.JsonSchemaRegistry();
33
+ registry.addSchema('', complexSchema);
34
+ const coreRoot = new javascript_1.JavascriptSerializer().serialize('', registry)({});
35
+ const SchemaMetaClass = json_schema_1.SchemaClassFactory(complexSchema);
36
+ const schemaClass = new SchemaMetaClass({});
37
+ const ngtoolsRoot = schemaClass.$$root();
38
+ benchmark_1.benchmark('schema access', () => {
39
+ coreRoot.project = { name: 'abc' };
40
+ }, () => {
41
+ ngtoolsRoot.project = { name: 'abc' };
42
+ });
43
+ })();
44
+ });
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiamF2YXNjcmlwdF9iZW5jaG1hcmsuanMiLCJzb3VyY2VSb290IjoiL1VzZXJzL2hhbnNsL1NvdXJjZXMvZGV2a2l0LyIsInNvdXJjZXMiOlsicGFja2FnZXMvYW5ndWxhcl9kZXZraXQvY29yZS9zcmMvanNvbi9zY2hlbWEvc2VyaWFsaXplcnMvamF2YXNjcmlwdF9iZW5jaG1hcmsudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQTs7Ozs7O0dBTUc7QUFDSCx3QkFBd0I7QUFDeEIsNENBQXlDO0FBQ3pDLHNEQUEwRDtBQUMxRCx5QkFBeUI7QUFDekIsNkJBQTZCO0FBQzdCLDBDQUFpRDtBQUVqRCw2Q0FBb0Q7QUFFcEQsUUFBUSxDQUFDLHVCQUF1QixFQUFFO0lBQ2hDLHFDQUFxQztJQUNyQyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUN2QixNQUFjLENBQUMsV0FBVyxFQUMzQiwwRUFBMEUsQ0FDM0UsQ0FBQztJQUNGLE1BQU0sV0FBVyxHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDekQsTUFBTSxhQUFhLEdBQWUsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUUxRCxNQUFNLFFBQVEsR0FBRyxJQUFJLDZCQUFrQixFQUFFLENBQUM7SUFDMUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFFdEMscUJBQVMsQ0FBQyxnQkFBZ0IsRUFBRTtRQUMxQixJQUFJLGlDQUFvQixFQUFFLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxRQUFRLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN6RCxDQUFDLEVBQUU7UUFDRCxNQUFNLGVBQWUsR0FBRyxnQ0FBa0IsQ0FBTSxhQUFhLENBQUMsQ0FBQztRQUMvRCxNQUFNLFdBQVcsR0FBRyxJQUFJLGVBQWUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM1QyxXQUFXLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDdkIsQ0FBQyxDQUFDLENBQUM7SUFFSCxDQUFDO1FBQ0MsTUFBTSxRQUFRLEdBQUcsSUFBSSw2QkFBa0IsRUFBRSxDQUFDO1FBQzFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBQ3RDLE1BQU0sUUFBUSxHQUFHLElBQUksaUNBQW9CLEVBQUUsQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLFFBQVEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRXhFLE1BQU0sZUFBZSxHQUFHLGdDQUFrQixDQUFNLGFBQWEsQ0FBQyxDQUFDO1FBQy9ELE1BQU0sV0FBVyxHQUFHLElBQUksZUFBZSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzVDLE1BQU0sV0FBVyxHQUFHLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUV6QyxxQkFBUyxDQUFDLGVBQWUsRUFBRTtZQUN6QixRQUFRLENBQUMsT0FBTyxHQUFHLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDO1FBQ3JDLENBQUMsRUFBRTtZQUNELFdBQVcsQ0FBQyxPQUFPLEdBQUcsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUM7UUFDeEMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsRUFBRSxDQUFDO0FBQ1AsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG4vLyB0c2xpbnQ6ZGlzYWJsZTpuby1hbnlcbmltcG9ydCB7IGJlbmNobWFyayB9IGZyb20gJ0BfL2JlbmNobWFyayc7XG5pbXBvcnQgeyBTY2hlbWFDbGFzc0ZhY3RvcnkgfSBmcm9tICdAbmd0b29scy9qc29uLXNjaGVtYSc7XG5pbXBvcnQgKiBhcyBmcyBmcm9tICdmcyc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgSnNvblNjaGVtYVJlZ2lzdHJ5IH0gZnJvbSAnLi4vcmVnaXN0cnknO1xuaW1wb3J0IHsgSnNvblNjaGVtYSB9IGZyb20gJy4uL3NjaGVtYSc7XG5pbXBvcnQgeyBKYXZhc2NyaXB0U2VyaWFsaXplciB9IGZyb20gJy4vamF2YXNjcmlwdCc7XG5cbmRlc2NyaWJlKCdKYXZhU2NyaXB0IFNlcmlhbGl6ZXInLCAoKSA9PiB7XG4gIC8vIFNjaGVtYSBmb3IgdGhlIEFuZ3VsYXItQ0xJIGNvbmZpZy5cbiAgY29uc3QganNvblBhdGggPSBwYXRoLmpvaW4oXG4gICAgKGdsb2JhbCBhcyBhbnkpLl9EZXZLaXRSb290LFxuICAgICd0ZXN0cy9AYW5ndWxhcl9kZXZraXQvY29yZS9qc29uL3NjaGVtYS9zZXJpYWxpemVycy9zY2hlbWFfYmVuY2htYXJrLmpzb24nLFxuICApO1xuICBjb25zdCBqc29uQ29udGVudCA9IGZzLnJlYWRGaWxlU3luYyhqc29uUGF0aCkudG9TdHJpbmcoKTtcbiAgY29uc3QgY29tcGxleFNjaGVtYTogSnNvblNjaGVtYSA9IEpTT04ucGFyc2UoanNvbkNvbnRlbnQpO1xuXG4gIGNvbnN0IHJlZ2lzdHJ5ID0gbmV3IEpzb25TY2hlbWFSZWdpc3RyeSgpO1xuICByZWdpc3RyeS5hZGRTY2hlbWEoJycsIGNvbXBsZXhTY2hlbWEpO1xuXG4gIGJlbmNobWFyaygnc2NoZW1hIHBhcnNpbmcnLCAoKSA9PiB7XG4gICAgbmV3IEphdmFzY3JpcHRTZXJpYWxpemVyKCkuc2VyaWFsaXplKCcnLCByZWdpc3RyeSkoe30pO1xuICB9LCAoKSA9PiB7XG4gICAgY29uc3QgU2NoZW1hTWV0YUNsYXNzID0gU2NoZW1hQ2xhc3NGYWN0b3J5PGFueT4oY29tcGxleFNjaGVtYSk7XG4gICAgY29uc3Qgc2NoZW1hQ2xhc3MgPSBuZXcgU2NoZW1hTWV0YUNsYXNzKHt9KTtcbiAgICBzY2hlbWFDbGFzcy4kJHJvb3QoKTtcbiAgfSk7XG5cbiAgKGZ1bmN0aW9uKCkge1xuICAgIGNvbnN0IHJlZ2lzdHJ5ID0gbmV3IEpzb25TY2hlbWFSZWdpc3RyeSgpO1xuICAgIHJlZ2lzdHJ5LmFkZFNjaGVtYSgnJywgY29tcGxleFNjaGVtYSk7XG4gICAgY29uc3QgY29yZVJvb3QgPSBuZXcgSmF2YXNjcmlwdFNlcmlhbGl6ZXIoKS5zZXJpYWxpemUoJycsIHJlZ2lzdHJ5KSh7fSk7XG5cbiAgICBjb25zdCBTY2hlbWFNZXRhQ2xhc3MgPSBTY2hlbWFDbGFzc0ZhY3Rvcnk8YW55Pihjb21wbGV4U2NoZW1hKTtcbiAgICBjb25zdCBzY2hlbWFDbGFzcyA9IG5ldyBTY2hlbWFNZXRhQ2xhc3Moe30pO1xuICAgIGNvbnN0IG5ndG9vbHNSb290ID0gc2NoZW1hQ2xhc3MuJCRyb290KCk7XG5cbiAgICBiZW5jaG1hcmsoJ3NjaGVtYSBhY2Nlc3MnLCAoKSA9PiB7XG4gICAgICBjb3JlUm9vdC5wcm9qZWN0ID0geyBuYW1lOiAnYWJjJyB9O1xuICAgIH0sICgpID0+IHtcbiAgICAgIG5ndG9vbHNSb290LnByb2plY3QgPSB7IG5hbWU6ICdhYmMnIH07XG4gICAgfSk7XG4gIH0pKCk7XG59KTtcbiJdfQ==
@@ -0,0 +1,11 @@
1
+ /**
2
+ * @license
3
+ * Copyright Google Inc. All Rights Reserved.
4
+ *
5
+ * Use of this source code is governed by an MIT-style license that can be
6
+ * found in the LICENSE file at https://angular.io/license
7
+ */
8
+ export declare const templates: {
9
+ [name: string]: (value: {}) => string;
10
+ };
11
+ export declare const root: (value: {}) => string;
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ /**
3
+ * @license
4
+ * Copyright Google Inc. All Rights Reserved.
5
+ *
6
+ * Use of this source code is governed by an MIT-style license that can be
7
+ * found in the LICENSE file at https://angular.io/license
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.templates = {
11
+ subschema: require('./subschema').default,
12
+ prop_any: require('./prop-any').default,
13
+ prop_array: require('./prop-array').default,
14
+ prop_boolean: require('./prop-boolean').default,
15
+ prop_number: require('./prop-number').default,
16
+ prop_integer: require('./prop-number').default,
17
+ prop_object: require('./prop-object').default,
18
+ prop_string: require('./prop-string').default,
19
+ };
20
+ exports.root = require('./root').default;
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiL1VzZXJzL2hhbnNsL1NvdXJjZXMvZGV2a2l0LyIsInNvdXJjZXMiOlsicGFja2FnZXMvYW5ndWxhcl9kZXZraXQvY29yZS9zcmMvanNvbi9zY2hlbWEvc2VyaWFsaXplcnMvdGVtcGxhdGVzL2phdmFzY3JpcHQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7QUFFVSxRQUFBLFNBQVMsR0FBOEM7SUFDbEUsU0FBUyxFQUFFLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQyxPQUFPO0lBRXpDLFFBQVEsRUFBRSxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUMsT0FBTztJQUN2QyxVQUFVLEVBQUUsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDLE9BQU87SUFDM0MsWUFBWSxFQUFFLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLE9BQU87SUFDL0MsV0FBVyxFQUFFLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQyxPQUFPO0lBQzdDLFlBQVksRUFBRSxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUMsT0FBTztJQUM5QyxXQUFXLEVBQUUsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDLE9BQU87SUFDN0MsV0FBVyxFQUFFLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQyxPQUFPO0NBQzlDLENBQUM7QUFFVyxRQUFBLElBQUksR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsT0FBZ0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuZXhwb3J0IGNvbnN0IHRlbXBsYXRlczogeyBbbmFtZTogc3RyaW5nXTogKHZhbHVlOiB7fSkgPT4gc3RyaW5nIH0gPSB7XG4gIHN1YnNjaGVtYTogcmVxdWlyZSgnLi9zdWJzY2hlbWEnKS5kZWZhdWx0LFxuXG4gIHByb3BfYW55OiByZXF1aXJlKCcuL3Byb3AtYW55JykuZGVmYXVsdCxcbiAgcHJvcF9hcnJheTogcmVxdWlyZSgnLi9wcm9wLWFycmF5JykuZGVmYXVsdCxcbiAgcHJvcF9ib29sZWFuOiByZXF1aXJlKCcuL3Byb3AtYm9vbGVhbicpLmRlZmF1bHQsXG4gIHByb3BfbnVtYmVyOiByZXF1aXJlKCcuL3Byb3AtbnVtYmVyJykuZGVmYXVsdCxcbiAgcHJvcF9pbnRlZ2VyOiByZXF1aXJlKCcuL3Byb3AtbnVtYmVyJykuZGVmYXVsdCxcbiAgcHJvcF9vYmplY3Q6IHJlcXVpcmUoJy4vcHJvcC1vYmplY3QnKS5kZWZhdWx0LFxuICBwcm9wX3N0cmluZzogcmVxdWlyZSgnLi9wcm9wLXN0cmluZycpLmRlZmF1bHQsXG59O1xuXG5leHBvcnQgY29uc3Qgcm9vdCA9IHJlcXVpcmUoJy4vcm9vdCcpLmRlZmF1bHQgYXMgKHZhbHVlOiB7fSkgPT4gc3RyaW5nO1xuIl19
@@ -0,0 +1,40 @@
1
+ return module.exports.default = function(obj) {
2
+ obj || (obj = {});
3
+ let __t;
4
+ let __p = "";
5
+ const __escapes = {"&":"&amp;","<":"&lt;",">":"&gt;","\"":"&quot;","'":"&#39;","`":"&#96;"};
6
+ const __escapesre = new RegExp('[&<>"\\\'`]', 'g');
7
+
8
+ const __e = function(s) { return s ? s.replace(__escapesre, function(key) { return __escapes[key]; }) : ''; };
9
+ with (obj) {
10
+ __p = __p
11
+ + "{\n"
12
+ + " value: undefined,\n"
13
+ + " get() { return this.value === undefined ? ";
14
+ __p += ((__t = 'default' in schema ? JSON.stringify(schema.default) : 'undefined' ) == null ? "" : __t);
15
+ __p = __p
16
+ + " : this.value; },\n"
17
+ + " set(v) {\n"
18
+ + " if (v === undefined && ";
19
+ __p += ((__t = !required ) == null ? "" : __t);
20
+ __p = __p
21
+ + ") {\n"
22
+ + " this.value = undefined;\n"
23
+ + " return;\n"
24
+ + " }\n"
25
+ + " this.value = v;\n"
26
+ + " },\n"
27
+ + " isDefined() { return this.value !== undefined; },\n"
28
+ + " remove() { this.set(undefined); },\n"
29
+ + " schema() { return ";
30
+ __p += ((__t = JSON.stringify(schema) ) == null ? "" : __t);
31
+ __p = __p
32
+ + "; },\n"
33
+ + "}\n"
34
+ + "";
35
+ };
36
+
37
+ return __p;
38
+ }
39
+
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBhY2thZ2VzL2FuZ3VsYXJfZGV2a2l0L2NvcmUvc3JjL2pzb24vc2NoZW1hL3NlcmlhbGl6ZXJzL3RlbXBsYXRlcy9qYXZhc2NyaXB0L3Byb3AtYW55LmVqcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFdBQ0E7QUFBQSw2QkFDQTtBQUFBLG9EQUEyQztBQUFBLG1GQUF5RTtBQUFBO0FBQUEsMkJBQ3BIO0FBQUEsb0JBQ0E7QUFBQSxtQ0FBMEI7QUFBQSwwQkFBZ0I7QUFBQTtBQUFBLGFBQzFDO0FBQUEsdUNBQ0E7QUFBQSx1QkFDQTtBQUFBLGVBQ0E7QUFBQSw2QkFDQTtBQUFBLGNBQ0E7QUFBQSw2REFDQTtBQUFBLDhDQUNBO0FBQUEsNEJBQW1CO0FBQUEsdUNBQTZCO0FBQUE7QUFBQSxjQUNoRDtBQUFBLFdBQ0E7QUFBQSxRQURDO0FBQUE7QUFBQTtBQUFBO0FBQUEiLCJmaWxlIjoicGFja2FnZXMvYW5ndWxhcl9kZXZraXQvY29yZS9zcmMvanNvbi9zY2hlbWEvc2VyaWFsaXplcnMvdGVtcGxhdGVzL2phdmFzY3JpcHQvcHJvcC1hbnkuZWpzIiwic291cmNlUm9vdCI6Ii9Vc2Vycy9oYW5zbC9Tb3VyY2VzL2RldmtpdCIsInNvdXJjZXNDb250ZW50IjpbIntcbiAgdmFsdWU6IHVuZGVmaW5lZCxcbiAgZ2V0KCkgeyByZXR1cm4gdGhpcy52YWx1ZSA9PT0gdW5kZWZpbmVkID8gPCU9ICdkZWZhdWx0JyBpbiBzY2hlbWEgPyBKU09OLnN0cmluZ2lmeShzY2hlbWEuZGVmYXVsdCkgOiAndW5kZWZpbmVkJyAlPiA6IHRoaXMudmFsdWU7IH0sXG4gIHNldCh2KSB7XG4gICAgaWYgKHYgPT09IHVuZGVmaW5lZCAmJiA8JT0gIXJlcXVpcmVkICU+KSB7XG4gICAgICB0aGlzLnZhbHVlID0gdW5kZWZpbmVkO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnZhbHVlID0gdjtcbiAgfSxcbiAgaXNEZWZpbmVkKCkgeyByZXR1cm4gdGhpcy52YWx1ZSAhPT0gdW5kZWZpbmVkOyB9LFxuICByZW1vdmUoKSB7IHRoaXMuc2V0KHVuZGVmaW5lZCk7IH0sXG4gIHNjaGVtYSgpIHsgcmV0dXJuIDwlPSBKU09OLnN0cmluZ2lmeShzY2hlbWEpICU+OyB9LFxufVxuIl19
@@ -0,0 +1,166 @@
1
+ return module.exports.default = function(obj) {
2
+ obj || (obj = {});
3
+ let __t;
4
+ let __p = "";
5
+ const __escapes = {"&":"&amp;","<":"&lt;",">":"&gt;","\"":"&quot;","'":"&#39;","`":"&#96;"};
6
+ const __escapesre = new RegExp('[&<>"\\\'`]', 'g');
7
+
8
+ const __e = function(s) { return s ? s.replace(__escapesre, function(key) { return __escapes[key]; }) : ''; };
9
+ with (obj) {
10
+ __p = __p
11
+ + "(function() {\n"
12
+ + "";
13
+
14
+ if ('default' in schema && !Array.isArray(schema.default)
15
+ || 'minItems' in schema && (typeof schema.minItems != 'number' || schema.minItems < 0)
16
+ || 'maxItems' in schema && (typeof schema.maxItems != 'number' || schema.maxItems < 0)
17
+ || 'uniqueItems' in schema && typeof schema.uniqueItems != 'boolean') {
18
+ throw new exceptions.InvalidSchemaException(schema);
19
+ }
20
+
21
+ const required = (schema.required || []);
22
+ const extras = {
23
+ exceptions: exceptions,
24
+ options: options,
25
+ path: path,
26
+ strings: strings,
27
+ symbols: symbols,
28
+ templates: templates,
29
+ };
30
+
31
+ __p = __p
32
+ + "\n"
33
+ + "\n"
34
+ + "const itemHandler = function() { return (";
35
+ __p += ((__t =
36
+ templates.subschema(Object.assign({
37
+ name: '???',
38
+ required: false,
39
+ schema: schema.additionalProperties,
40
+ }, extras))
41
+ ) == null ? "" : __t);
42
+ __p = __p
43
+ + "); };\n"
44
+ + "\n"
45
+ + "\n"
46
+ + "const items = [];\n"
47
+ + "const arrayFunctions = {\n"
48
+ + " get length() { return items.length; },\n"
49
+ + " push() { items.push.apply(items, arguments); },\n"
50
+ + " pop() { return items.pop(); },\n"
51
+ + " shift() { return items.shift(); },\n"
52
+ + " unshift() { return items.unshift(); },\n"
53
+ + " slice(start, end) { return items.slice(start, end); },\n"
54
+ + "};\n"
55
+ + "\n"
56
+ + "\n"
57
+ + "let defined = false;\n"
58
+ + "const proxy = new Proxy({}, {\n"
59
+ + " isExtensible() { return false; },\n"
60
+ + " has(target, prop) {\n"
61
+ + " return (prop in items);\n"
62
+ + " },\n"
63
+ + " get(target, prop) {\n"
64
+ + " if (prop === symbols.Schema) {\n"
65
+ + " return arrayHandler.schema;\n"
66
+ + " }\n"
67
+ + "\n"
68
+ + " if (prop >= 0 && prop in value) {\n"
69
+ + " return value[prop].get();\n"
70
+ + " }\n"
71
+ + " if (prop in arrayFunctions) {\n"
72
+ + " return arrayFunctions[prop];\n"
73
+ + " }\n"
74
+ + " return undefined;\n"
75
+ + " },\n"
76
+ + " set(target, prop, v) {\n"
77
+ + " if (prop >= 0) {\n"
78
+ + " if (!(prop in items)) {\n"
79
+ + " items[prop] = itemHandler();\n"
80
+ + " }\n"
81
+ + " items[prop].set(v);\n"
82
+ + " return true;\n"
83
+ + " }\n"
84
+ + " return false;\n"
85
+ + " },\n"
86
+ + " deleteProperty(target, prop) {\n"
87
+ + " if (prop >= 0 && prop in value) {\n"
88
+ + " value[prop].remove();\n"
89
+ + " return true;\n"
90
+ + " }\n"
91
+ + " return false;\n"
92
+ + " },\n"
93
+ + " defineProperty(target, prop, descriptor) {\n"
94
+ + " return false;\n"
95
+ + " },\n"
96
+ + " getOwnPropertyDescriptor(target, prop) {\n"
97
+ + " if (prop >= 0 && prop in value) {\n"
98
+ + " return { configurable: true, enumerable: true };\n"
99
+ + " }\n"
100
+ + " },\n"
101
+ + " ownKeys(target) {\n"
102
+ + " return Object.keys(items);\n"
103
+ + " },\n"
104
+ + "});\n"
105
+ + "\n"
106
+ + "const arrayHandler = {\n"
107
+ + " set(v) {\n"
108
+ + " if (v === undefined) {\n"
109
+ + " defined = false;\n"
110
+ + " return;\n"
111
+ + " }\n"
112
+ + "\n"
113
+ + " defined = true;\n"
114
+ + " for (const key of Object.keys(v)) {\n"
115
+ + " proxy[key] = v[key];\n"
116
+ + " }\n"
117
+ + "\n"
118
+ + " // Validate required fields.\n"
119
+ + " ";
120
+ for (const key of required) {
121
+ __p = __p
122
+ + "\n"
123
+ + " if (!(";
124
+ __p += ((__t = JSON.stringify(key) ) == null ? "" : __t);
125
+ __p = __p
126
+ + " in v)) {\n"
127
+ + " throw new exceptions.RequiredValueMissingException(";
128
+ __p += ((__t = JSON.stringify(path) ) == null ? "" : __t);
129
+ __p = __p
130
+ + " + '/' + ";
131
+ __p += ((__t = JSON.stringify(key) ) == null ? "" : __t);
132
+ __p = __p
133
+ + ");\n"
134
+ + " }";
135
+ }
136
+ __p = __p
137
+ + "\n"
138
+ + " },\n"
139
+ + " get() {\n"
140
+ + " if (defined) {\n"
141
+ + " return proxy;\n"
142
+ + " } else {\n"
143
+ + " return ";
144
+ __p += ((__t = 'default' in schema ? JSON.stringify(schema.default) : 'undefined' ) == null ? "" : __t);
145
+ __p = __p
146
+ + ";\n"
147
+ + " }\n"
148
+ + " },\n"
149
+ + " isDefined() { return defined; },\n"
150
+ + " remove() { this.set(undefined); },\n"
151
+ + " schema: ";
152
+ __p += ((__t = JSON.stringify(schema) ) == null ? "" : __t);
153
+ __p = __p
154
+ + ",\n"
155
+ + "};\n"
156
+ + "\n"
157
+ + "return arrayHandler;\n"
158
+ + "\n"
159
+ + "})()\n"
160
+ + "";
161
+ };
162
+
163
+ return __p;
164
+ }
165
+
166
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBhY2thZ2VzL2FuZ3VsYXJfZGV2a2l0L2NvcmUvc3JjL2pzb24vc2NoZW1hL3NlcmlhbGl6ZXJzL3RlbXBsYXRlcy9qYXZhc2NyaXB0L3Byb3AtYXJyYXkuZWpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsdUJBQ0E7QUFBQSxRQURhO0FBQUE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVFO0FBQUE7QUFBQSxVQUNGO0FBQUEsVUFDQTtBQUFBLGlEQUF5QztBQUFBO0FBQ3pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDRTtBQUFBO0FBQUEsZUFDRjtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsMkJBQ0E7QUFBQSxrQ0FDQTtBQUFBLGtEQUNBO0FBQUEsMkRBQ0E7QUFBQSwwQ0FDQTtBQUFBLDhDQUNBO0FBQUEsa0RBQ0E7QUFBQSxrRUFDQTtBQUFBLFlBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLDhCQUNBO0FBQUEsdUNBQ0E7QUFBQSw2Q0FDQTtBQUFBLCtCQUNBO0FBQUEscUNBQ0E7QUFBQSxjQUNBO0FBQUEsK0JBQ0E7QUFBQSw0Q0FDQTtBQUFBLDJDQUNBO0FBQUEsZUFDQTtBQUFBLFVBQ0E7QUFBQSwrQ0FDQTtBQUFBLHlDQUNBO0FBQUEsZUFDQTtBQUFBLDJDQUNBO0FBQUEsNENBQ0E7QUFBQSxlQUNBO0FBQUEsK0JBQ0E7QUFBQSxjQUNBO0FBQUEsa0NBQ0E7QUFBQSw4QkFDQTtBQUFBLHVDQUNBO0FBQUEsOENBQ0E7QUFBQSxpQkFDQTtBQUFBLG1DQUNBO0FBQUEsNEJBQ0E7QUFBQSxlQUNBO0FBQUEsMkJBQ0E7QUFBQSxjQUNBO0FBQUEsMENBQ0E7QUFBQSwrQ0FDQTtBQUFBLHFDQUNBO0FBQUEsNEJBQ0E7QUFBQSxlQUNBO0FBQUEsMkJBQ0E7QUFBQSxjQUNBO0FBQUEsc0RBQ0E7QUFBQSwyQkFDQTtBQUFBLGNBQ0E7QUFBQSxvREFDQTtBQUFBLCtDQUNBO0FBQUEsZ0VBQ0E7QUFBQSxlQUNBO0FBQUEsY0FDQTtBQUFBLDZCQUNBO0FBQUEsd0NBQ0E7QUFBQSxjQUNBO0FBQUEsYUFDQTtBQUFBLFVBQ0E7QUFBQSxnQ0FDQTtBQUFBLG9CQUNBO0FBQUEsb0NBQ0E7QUFBQSxnQ0FDQTtBQUFBLHVCQUNBO0FBQUEsZUFDQTtBQUFBLFVBQ0E7QUFBQSw2QkFDQTtBQUFBLGlEQUNBO0FBQUEsb0NBQ0E7QUFBQSxlQUNBO0FBQUEsVUFDQTtBQUFBLDBDQUNBO0FBQUEsWUFBSTtBQUFBLCtCQUNKO0FBQUE7QUFBQSxVQUNBO0FBQUEsa0JBRFc7QUFBQSxvQ0FBMEI7QUFBQTtBQUFBLG1CQUNyQztBQUFBLGlFQUEwRDtBQUFBLHFDQUEyQjtBQUFBO0FBQUEsaUJBQVM7QUFBQSxvQ0FBMEI7QUFBQTtBQUFBLFlBQ3hIO0FBQUEsYUFBTTtBQUFBLEdBQ0w7QUFBQTtBQUFBLFVBQ0Q7QUFBQSxjQUNBO0FBQUEsbUJBQ0E7QUFBQSw0QkFDQTtBQUFBLDZCQUNBO0FBQUEsc0JBQ0E7QUFBQSxxQkFEZTtBQUFBLG1GQUNmO0FBQUE7QUFBQSxXQUNBO0FBQUEsZUFDQTtBQUFBLGNBQ0E7QUFBQSw0Q0FDQTtBQUFBLDhDQUNBO0FBQUEsa0JBRFk7QUFBQSx1Q0FDWjtBQUFBO0FBQUEsV0FDQTtBQUFBLFlBQ0E7QUFBQSxVQUNBO0FBQUEsOEJBQ0E7QUFBQSxVQUNBO0FBQUEsY0FDQTtBQUFBLFFBREU7QUFBQTtBQUFBO0FBQUE7QUFBQSIsImZpbGUiOiJwYWNrYWdlcy9hbmd1bGFyX2RldmtpdC9jb3JlL3NyYy9qc29uL3NjaGVtYS9zZXJpYWxpemVycy90ZW1wbGF0ZXMvamF2YXNjcmlwdC9wcm9wLWFycmF5LmVqcyIsInNvdXJjZVJvb3QiOiIvVXNlcnMvaGFuc2wvU291cmNlcy9kZXZraXQiLCJzb3VyY2VzQ29udGVudCI6WyIoZnVuY3Rpb24oKSB7XG48JVxuICBpZiAoJ2RlZmF1bHQnIGluIHNjaGVtYSAmJiAhQXJyYXkuaXNBcnJheShzY2hlbWEuZGVmYXVsdClcbiAgICB8fCAnbWluSXRlbXMnIGluIHNjaGVtYSAmJiAodHlwZW9mIHNjaGVtYS5taW5JdGVtcyAhPSAnbnVtYmVyJyB8fCBzY2hlbWEubWluSXRlbXMgPCAwKVxuICAgIHx8ICdtYXhJdGVtcycgaW4gc2NoZW1hICYmICh0eXBlb2Ygc2NoZW1hLm1heEl0ZW1zICE9ICdudW1iZXInIHx8IHNjaGVtYS5tYXhJdGVtcyA8IDApXG4gICAgfHwgJ3VuaXF1ZUl0ZW1zJyBpbiBzY2hlbWEgJiYgdHlwZW9mIHNjaGVtYS51bmlxdWVJdGVtcyAhPSAnYm9vbGVhbicpIHtcbiAgICB0aHJvdyBuZXcgZXhjZXB0aW9ucy5JbnZhbGlkU2NoZW1hRXhjZXB0aW9uKHNjaGVtYSk7XG4gIH1cblxuICBjb25zdCByZXF1aXJlZCA9IChzY2hlbWEucmVxdWlyZWQgfHwgW10pO1xuICBjb25zdCBleHRyYXMgPSB7XG4gICAgZXhjZXB0aW9uczogZXhjZXB0aW9ucyxcbiAgICBvcHRpb25zOiBvcHRpb25zLFxuICAgIHBhdGg6IHBhdGgsXG4gICAgc3RyaW5nczogc3RyaW5ncyxcbiAgICBzeW1ib2xzOiBzeW1ib2xzLFxuICAgIHRlbXBsYXRlczogdGVtcGxhdGVzLFxuICB9O1xuJT5cblxuY29uc3QgaXRlbUhhbmRsZXIgPSBmdW5jdGlvbigpIHsgcmV0dXJuICg8JT1cbiAgdGVtcGxhdGVzLnN1YnNjaGVtYShPYmplY3QuYXNzaWduKHtcbiAgICBuYW1lOiAnPz8/JyxcbiAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgc2NoZW1hOiBzY2hlbWEuYWRkaXRpb25hbFByb3BlcnRpZXMsXG4gIH0sIGV4dHJhcykpXG4lPik7IH07XG5cblxuY29uc3QgaXRlbXMgPSBbXTtcbmNvbnN0IGFycmF5RnVuY3Rpb25zID0ge1xuICBnZXQgbGVuZ3RoKCkgeyByZXR1cm4gaXRlbXMubGVuZ3RoOyB9LFxuICBwdXNoKCkgeyBpdGVtcy5wdXNoLmFwcGx5KGl0ZW1zLCBhcmd1bWVudHMpOyB9LFxuICBwb3AoKSB7IHJldHVybiBpdGVtcy5wb3AoKTsgfSxcbiAgc2hpZnQoKSB7IHJldHVybiBpdGVtcy5zaGlmdCgpOyB9LFxuICB1bnNoaWZ0KCkgeyByZXR1cm4gaXRlbXMudW5zaGlmdCgpOyB9LFxuICBzbGljZShzdGFydCwgZW5kKSB7IHJldHVybiBpdGVtcy5zbGljZShzdGFydCwgZW5kKTsgfSxcbn07XG5cblxubGV0IGRlZmluZWQgPSBmYWxzZTtcbmNvbnN0IHByb3h5ID0gbmV3IFByb3h5KHt9LCB7XG4gIGlzRXh0ZW5zaWJsZSgpIHsgcmV0dXJuIGZhbHNlOyB9LFxuICBoYXModGFyZ2V0LCBwcm9wKSB7XG4gICAgcmV0dXJuIChwcm9wIGluIGl0ZW1zKTtcbiAgfSxcbiAgZ2V0KHRhcmdldCwgcHJvcCkge1xuICAgIGlmIChwcm9wID09PSBzeW1ib2xzLlNjaGVtYSkge1xuICAgICAgcmV0dXJuIGFycmF5SGFuZGxlci5zY2hlbWE7XG4gICAgfVxuXG4gICAgaWYgKHByb3AgPj0gMCAmJiBwcm9wIGluIHZhbHVlKSB7XG4gICAgICByZXR1cm4gdmFsdWVbcHJvcF0uZ2V0KCk7XG4gICAgfVxuICAgIGlmIChwcm9wIGluIGFycmF5RnVuY3Rpb25zKSB7XG4gICAgICByZXR1cm4gYXJyYXlGdW5jdGlvbnNbcHJvcF07XG4gICAgfVxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH0sXG4gIHNldCh0YXJnZXQsIHByb3AsIHYpIHtcbiAgICBpZiAocHJvcCA+PSAwKSB7XG4gICAgICBpZiAoIShwcm9wIGluIGl0ZW1zKSkge1xuICAgICAgICBpdGVtc1twcm9wXSA9IGl0ZW1IYW5kbGVyKCk7XG4gICAgICB9XG4gICAgICBpdGVtc1twcm9wXS5zZXQodik7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9LFxuICBkZWxldGVQcm9wZXJ0eSh0YXJnZXQsIHByb3ApIHtcbiAgICBpZiAocHJvcCA+PSAwICYmIHByb3AgaW4gdmFsdWUpIHtcbiAgICAgIHZhbHVlW3Byb3BdLnJlbW92ZSgpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfSxcbiAgZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBwcm9wLCBkZXNjcmlwdG9yKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9LFxuICBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodGFyZ2V0LCBwcm9wKSB7XG4gICAgaWYgKHByb3AgPj0gMCAmJiBwcm9wIGluIHZhbHVlKSB7XG4gICAgICByZXR1cm4geyBjb25maWd1cmFibGU6IHRydWUsIGVudW1lcmFibGU6IHRydWUgfTtcbiAgICB9XG4gIH0sXG4gIG93bktleXModGFyZ2V0KSB7XG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKGl0ZW1zKTtcbiAgfSxcbn0pO1xuXG5jb25zdCBhcnJheUhhbmRsZXIgPSB7XG4gIHNldCh2KSB7XG4gICAgaWYgKHYgPT09IHVuZGVmaW5lZCkge1xuICAgICAgZGVmaW5lZCA9IGZhbHNlO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGRlZmluZWQgPSB0cnVlO1xuICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHYpKSB7XG4gICAgICBwcm94eVtrZXldID0gdltrZXldO1xuICAgIH1cblxuICAgIC8vIFZhbGlkYXRlIHJlcXVpcmVkIGZpZWxkcy5cbiAgICA8JSBmb3IgKGNvbnN0IGtleSBvZiByZXF1aXJlZCkgeyAlPlxuICAgIGlmICghKDwlPSBKU09OLnN0cmluZ2lmeShrZXkpICU+IGluIHYpKSB7XG4gICAgICB0aHJvdyBuZXcgZXhjZXB0aW9ucy5SZXF1aXJlZFZhbHVlTWlzc2luZ0V4Y2VwdGlvbig8JT0gSlNPTi5zdHJpbmdpZnkocGF0aCkgJT4gKyAnLycgKyA8JT0gSlNPTi5zdHJpbmdpZnkoa2V5KSAlPik7XG4gICAgfTwlIH0gJT5cbiAgfSxcbiAgZ2V0KCkge1xuICAgIGlmIChkZWZpbmVkKSB7XG4gICAgICByZXR1cm4gcHJveHk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiA8JT0gJ2RlZmF1bHQnIGluIHNjaGVtYSA/IEpTT04uc3RyaW5naWZ5KHNjaGVtYS5kZWZhdWx0KSA6ICd1bmRlZmluZWQnICU+O1xuICAgIH1cbiAgfSxcbiAgaXNEZWZpbmVkKCkgeyByZXR1cm4gZGVmaW5lZDsgfSxcbiAgcmVtb3ZlKCkgeyB0aGlzLnNldCh1bmRlZmluZWQpOyB9LFxuICBzY2hlbWE6IDwlPSBKU09OLnN0cmluZ2lmeShzY2hlbWEpICU+LFxufTtcblxucmV0dXJuIGFycmF5SGFuZGxlcjtcblxufSkoKVxuIl19
@@ -0,0 +1,54 @@
1
+ return module.exports.default = function(obj) {
2
+ obj || (obj = {});
3
+ let __t;
4
+ let __p = "";
5
+ const __escapes = {"&":"&amp;","<":"&lt;",">":"&gt;","\"":"&quot;","'":"&#39;","`":"&#96;"};
6
+ const __escapesre = new RegExp('[&<>"\\\'`]', 'g');
7
+
8
+ const __e = function(s) { return s ? s.replace(__escapesre, function(key) { return __escapes[key]; }) : ''; };
9
+ with (obj) {
10
+ __p = __p
11
+ + "{\n"
12
+ + "";
13
+
14
+ if ('default' in schema && typeof schema.default != 'boolean') {
15
+ throw new exceptions.InvalidSchemaException(schema);
16
+ }
17
+
18
+ __p = __p
19
+ + "\n"
20
+ + " value: undefined,\n"
21
+ + " get() { return this.value === undefined ? ";
22
+ __p += ((__t = schema.default || 'undefined' ) == null ? "" : __t);
23
+ __p = __p
24
+ + " : this.value; },\n"
25
+ + " set(v) {\n"
26
+ + " if (v === undefined && ";
27
+ __p += ((__t = !required ) == null ? "" : __t);
28
+ __p = __p
29
+ + ") {\n"
30
+ + " this.value = undefined;\n"
31
+ + " return;\n"
32
+ + " }\n"
33
+ + " if (typeof v != 'boolean') {\n"
34
+ + " throw new exceptions.InvalidValueException(";
35
+ __p += ((__t = JSON.stringify(name) ) == null ? "" : __t);
36
+ __p = __p
37
+ + ", typeof v, 'boolean');\n"
38
+ + " }\n"
39
+ + " this.value = v;\n"
40
+ + " },\n"
41
+ + " isDefined() { return this.value !== undefined; },\n"
42
+ + " remove() { this.set(undefined); },\n"
43
+ + " schema() { return ";
44
+ __p += ((__t = JSON.stringify(schema) ) == null ? "" : __t);
45
+ __p = __p
46
+ + "; },\n"
47
+ + "}\n"
48
+ + "";
49
+ };
50
+
51
+ return __p;
52
+ }
53
+
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBhY2thZ2VzL2FuZ3VsYXJfZGV2a2l0L2NvcmUvc3JjL2pzb24vc2NoZW1hL3NlcmlhbGl6ZXJzL3RlbXBsYXRlcy9qYXZhc2NyaXB0L3Byb3AtYm9vbGVhbi5lanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxXQUNBO0FBQUEsUUFEQztBQUFBO0FBQ0Q7QUFDQTtBQUNBO0FBRUU7QUFBQTtBQUFBLFVBQ0Y7QUFBQSw2QkFDQTtBQUFBLG9EQUE0QztBQUFBLDhDQUFvQztBQUFBO0FBQUEsMkJBQ2hGO0FBQUEsb0JBQ0E7QUFBQSxtQ0FBMkI7QUFBQSwwQkFBZ0I7QUFBQTtBQUFBLGFBQzNDO0FBQUEsdUNBQ0E7QUFBQSx1QkFDQTtBQUFBLGVBQ0E7QUFBQSwwQ0FDQTtBQUFBLHlEQUFpRDtBQUFBLHFDQUEyQjtBQUFBO0FBQUEsaUNBQzVFO0FBQUEsZUFDQTtBQUFBLDZCQUNBO0FBQUEsY0FDQTtBQUFBLDZEQUNBO0FBQUEsOENBQ0E7QUFBQSw0QkFBb0I7QUFBQSx1Q0FBNkI7QUFBQTtBQUFBLGNBQ2pEO0FBQUEsV0FDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEiLCJmaWxlIjoicGFja2FnZXMvYW5ndWxhcl9kZXZraXQvY29yZS9zcmMvanNvbi9zY2hlbWEvc2VyaWFsaXplcnMvdGVtcGxhdGVzL2phdmFzY3JpcHQvcHJvcC1ib29sZWFuLmVqcyIsInNvdXJjZVJvb3QiOiIvVXNlcnMvaGFuc2wvU291cmNlcy9kZXZraXQiLCJzb3VyY2VzQ29udGVudCI6WyJ7XG48JVxuICBpZiAoJ2RlZmF1bHQnIGluIHNjaGVtYSAmJiB0eXBlb2Ygc2NoZW1hLmRlZmF1bHQgIT0gJ2Jvb2xlYW4nKSB7XG4gICAgdGhyb3cgbmV3IGV4Y2VwdGlvbnMuSW52YWxpZFNjaGVtYUV4Y2VwdGlvbihzY2hlbWEpO1xuICB9XG4lPlxuICB2YWx1ZTogdW5kZWZpbmVkLFxuICBnZXQoKSB7IHJldHVybiB0aGlzLnZhbHVlID09PSB1bmRlZmluZWQgPyA8JT0gc2NoZW1hLmRlZmF1bHQgfHwgJ3VuZGVmaW5lZCcgJT4gOiB0aGlzLnZhbHVlOyB9LFxuICBzZXQodikge1xuICAgIGlmICh2ID09PSB1bmRlZmluZWQgJiYgPCU9ICFyZXF1aXJlZCAlPikge1xuICAgICAgdGhpcy52YWx1ZSA9IHVuZGVmaW5lZDtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiB2ICE9ICdib29sZWFuJykge1xuICAgICAgdGhyb3cgbmV3IGV4Y2VwdGlvbnMuSW52YWxpZFZhbHVlRXhjZXB0aW9uKDwlPSBKU09OLnN0cmluZ2lmeShuYW1lKSAlPiwgdHlwZW9mIHYsICdib29sZWFuJyk7XG4gICAgfVxuICAgIHRoaXMudmFsdWUgPSB2O1xuICB9LFxuICBpc0RlZmluZWQoKSB7IHJldHVybiB0aGlzLnZhbHVlICE9PSB1bmRlZmluZWQ7IH0sXG4gIHJlbW92ZSgpIHsgdGhpcy5zZXQodW5kZWZpbmVkKTsgfSxcbiAgc2NoZW1hKCkgeyByZXR1cm4gPCU9IEpTT04uc3RyaW5naWZ5KHNjaGVtYSkgJT47IH0sXG59XG4iXX0=