@sleekcms/json-zen 1.0.0

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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/lib/lib.d.ts ADDED
@@ -0,0 +1,9 @@
1
+ export declare function isArray(value: unknown): value is unknown[];
2
+ export declare function isObject(value: unknown): value is Record<string, unknown>;
3
+ export declare function isString(value: unknown): value is string;
4
+ export declare function isNumber(value: unknown): value is number;
5
+ export declare function isBoolean(value: unknown): value is boolean;
6
+ export declare function isInteger(value: unknown): value is number;
7
+ export declare function isFunction(value: unknown): value is Function;
8
+ export declare function isRegExp(value: unknown): value is RegExp;
9
+ //# sourceMappingURL=lib.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../src/lib.ts"],"names":[],"mappings":"AAAA,wBAAgB,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,OAAO,EAAE,CAE1D;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEzE;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAExD;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAExD;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,OAAO,CAE1D;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAEzD;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,QAAQ,CAE5D;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAExD"}
package/lib/lib.js ADDED
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isArray = isArray;
4
+ exports.isObject = isObject;
5
+ exports.isString = isString;
6
+ exports.isNumber = isNumber;
7
+ exports.isBoolean = isBoolean;
8
+ exports.isInteger = isInteger;
9
+ exports.isFunction = isFunction;
10
+ exports.isRegExp = isRegExp;
11
+ function isArray(value) {
12
+ return Array.isArray(value);
13
+ }
14
+ function isObject(value) {
15
+ return value !== null && typeof value === 'object' && !Array.isArray(value);
16
+ }
17
+ function isString(value) {
18
+ return typeof value === 'string' || value instanceof String;
19
+ }
20
+ function isNumber(value) {
21
+ return typeof value === 'number' || value instanceof Number;
22
+ }
23
+ function isBoolean(value) {
24
+ return typeof value === 'boolean' || value instanceof Boolean;
25
+ }
26
+ function isInteger(value) {
27
+ return Number.isInteger(value);
28
+ }
29
+ function isFunction(value) {
30
+ return typeof value === 'function';
31
+ }
32
+ function isRegExp(value) {
33
+ return value instanceof RegExp;
34
+ }
35
+ //# sourceMappingURL=lib.js.map
package/lib/lib.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lib.js","sourceRoot":"","sources":["../src/lib.ts"],"names":[],"mappings":";;AAAA,0BAEC;AAED,4BAEC;AAED,4BAEC;AAED,4BAEC;AAED,8BAEC;AAED,8BAEC;AAED,gCAEC;AAED,4BAEC;AA9BD,SAAgB,OAAO,CAAC,KAAc;IACpC,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9B,CAAC;AAED,SAAgB,QAAQ,CAAC,KAAc;IACrC,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED,SAAgB,QAAQ,CAAC,KAAc;IACrC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,YAAY,MAAM,CAAC;AAC9D,CAAC;AAED,SAAgB,QAAQ,CAAC,KAAc;IACrC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,YAAY,MAAM,CAAC;AAC9D,CAAC;AAED,SAAgB,SAAS,CAAC,KAAc;IACtC,OAAO,OAAO,KAAK,KAAK,SAAS,IAAI,KAAK,YAAY,OAAO,CAAC;AAChE,CAAC;AAED,SAAgB,SAAS,CAAC,KAAc;IACtC,OAAO,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AACjC,CAAC;AAED,SAAgB,UAAU,CAAC,KAAc;IACvC,OAAO,OAAO,KAAK,KAAK,UAAU,CAAC;AACrC,CAAC;AAED,SAAgB,QAAQ,CAAC,KAAc;IACrC,OAAO,KAAK,YAAY,MAAM,CAAC;AACjC,CAAC"}
package/lib/types.d.ts ADDED
@@ -0,0 +1,24 @@
1
+ export interface CheckOptions {
2
+ path?: string;
3
+ json?: unknown;
4
+ parent?: unknown;
5
+ }
6
+ export type TypeValidatorFunction = (value?: unknown, opts?: CheckOptions) => boolean | unknown;
7
+ export interface TypesMap {
8
+ [key: string]: TypeValidatorFunction;
9
+ }
10
+ declare class ZenTypes {
11
+ types: TypesMap;
12
+ static TYPES: TypesMap;
13
+ constructor(types?: Record<string, unknown>);
14
+ static _toType(fn: unknown): TypeValidatorFunction;
15
+ static extend(obj: Record<string, unknown>): void;
16
+ static toSchema(obj: unknown): string;
17
+ sample(k: string): unknown;
18
+ has(k: string): boolean;
19
+ cast(k: string, value: unknown): unknown;
20
+ check(k: string, obj: unknown, opts?: CheckOptions): boolean;
21
+ show(): Record<string, unknown>;
22
+ }
23
+ export default ZenTypes;
24
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,MAAM,qBAAqB,GAAG,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,YAAY,KAAK,OAAO,GAAG,OAAO,CAAC;AAEhG,MAAM,WAAW,QAAQ;IACvB,CAAC,GAAG,EAAE,MAAM,GAAG,qBAAqB,CAAC;CACtC;AAED,cAAM,QAAQ;IACZ,KAAK,EAAE,QAAQ,CAAC;IAEhB,MAAM,CAAC,KAAK,EAAE,QAAQ,CAWpB;gBAEU,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAW3C,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,GAAG,qBAAqB;IAiBlD,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAMjD,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM;IAarC,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO;IAK1B,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO;IAIvB,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO;IAYxC,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,YAAY,GAAG,OAAO;IAK5D,IAAI,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAOhC;AAED,eAAe,QAAQ,CAAC"}
package/lib/types.js ADDED
@@ -0,0 +1,111 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const lib_1 = require("./lib");
4
+ class ZenTypes {
5
+ constructor(types) {
6
+ this.types = Object.assign({}, ZenTypes.TYPES);
7
+ if (types) {
8
+ for (const k in types) {
9
+ if (k.match(/^_/))
10
+ continue;
11
+ const fn = types[k];
12
+ this.types[k] = ZenTypes._toType(fn);
13
+ }
14
+ }
15
+ }
16
+ static _toType(fn) {
17
+ if ((0, lib_1.isArray)(fn)) {
18
+ const lookup = fn;
19
+ return (v) => {
20
+ if (v !== undefined)
21
+ return !(0, lib_1.isString)(v) || lookup.indexOf(v) >= 0;
22
+ else
23
+ return lookup[(Math.random() * lookup.length) | 0];
24
+ };
25
+ }
26
+ else if ((0, lib_1.isRegExp)(fn)) {
27
+ const regex = fn;
28
+ return (v) => {
29
+ if (v !== undefined)
30
+ return !(0, lib_1.isString)(v) || regex.test(v);
31
+ else
32
+ return regex.source.replace(/\\(.)/g, "$1");
33
+ };
34
+ }
35
+ return fn;
36
+ }
37
+ static extend(obj) {
38
+ for (const k in obj) {
39
+ this.TYPES[k] = this._toType(obj[k]);
40
+ }
41
+ }
42
+ static toSchema(obj) {
43
+ if (obj === null)
44
+ return "?";
45
+ if (obj === undefined)
46
+ return "?";
47
+ if ((0, lib_1.isArray)(obj))
48
+ return "array";
49
+ if ((0, lib_1.isObject)(obj))
50
+ return "object";
51
+ if ((0, lib_1.isString)(obj))
52
+ return "string";
53
+ if ((0, lib_1.isInteger)(obj))
54
+ return "integer";
55
+ if ((0, lib_1.isBoolean)(obj))
56
+ return "boolean";
57
+ if ((0, lib_1.isNumber)(obj))
58
+ return "number";
59
+ if ((0, lib_1.isFunction)(obj))
60
+ return "function";
61
+ return "?";
62
+ }
63
+ sample(k) {
64
+ if (!this.has(k))
65
+ return null;
66
+ return this.types[k]();
67
+ }
68
+ has(k) {
69
+ return !!this.types[k];
70
+ }
71
+ cast(k, value) {
72
+ if (!this.has(k))
73
+ return null;
74
+ if (["b", "boolean"].indexOf(k) >= 0) {
75
+ if (["true", "1", "yes", true].indexOf(value) >= 0)
76
+ return true;
77
+ return false;
78
+ }
79
+ if (["i", "integer"].indexOf(k) >= 0)
80
+ return parseInt(value);
81
+ if (["n", "number"].indexOf(k) >= 0)
82
+ return parseFloat(value);
83
+ return value;
84
+ }
85
+ check(k, obj, opts) {
86
+ if (!this.has(k))
87
+ return false;
88
+ return this.types[k](obj, opts);
89
+ }
90
+ show() {
91
+ const obj = {};
92
+ for (const k in this.types) {
93
+ obj[k] = this.types[k]();
94
+ }
95
+ return obj;
96
+ }
97
+ }
98
+ ZenTypes.TYPES = {
99
+ "s": (v) => v !== undefined ? (0, lib_1.isString)(v) : "",
100
+ "string": (v) => v !== undefined ? (0, lib_1.isString)(v) : "",
101
+ "n": (v) => v !== undefined ? (0, lib_1.isNumber)(v) : 0,
102
+ "number": (v) => v !== undefined ? (0, lib_1.isNumber)(v) : 0,
103
+ "b": (v) => v !== undefined ? (0, lib_1.isBoolean)(v) : true,
104
+ "boolean": (v) => v !== undefined ? (0, lib_1.isBoolean)(v) : true,
105
+ "i": (v) => v !== undefined ? (0, lib_1.isInteger)(v) : 0,
106
+ "integer": (v) => v !== undefined ? (0, lib_1.isInteger)(v) : 0,
107
+ "f": (v) => v !== undefined ? (0, lib_1.isFunction)(v) : () => { },
108
+ "function": (v) => v !== undefined ? (0, lib_1.isFunction)(v) : () => { }
109
+ };
110
+ exports.default = ZenTypes;
111
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export type ValidationError = [string, string];
2
+ export declare class ZenError extends Error {
3
+ errors: ValidationError[];
4
+ constructor(errors: ValidationError[]);
5
+ }
6
+ export default ZenError;
7
+ //# sourceMappingURL=zen-error.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zen-error.d.ts","sourceRoot":"","sources":["../src/zen-error.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,eAAe,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAE/C,qBAAa,QAAS,SAAQ,KAAK;IACjC,MAAM,EAAE,eAAe,EAAE,CAAC;gBAEd,MAAM,EAAE,eAAe,EAAE;CAQtC;AAED,eAAe,QAAQ,CAAC"}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ZenError = void 0;
4
+ class ZenError extends Error {
5
+ constructor(errors) {
6
+ if (errors.length === 1) {
7
+ super(errors[0].join(": "));
8
+ }
9
+ else {
10
+ super(`Validation failed: ${errors.length} errors found`);
11
+ }
12
+ this.errors = errors;
13
+ }
14
+ }
15
+ exports.ZenError = ZenError;
16
+ exports.default = ZenError;
17
+ //# sourceMappingURL=zen-error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zen-error.js","sourceRoot":"","sources":["../src/zen-error.ts"],"names":[],"mappings":";;;AAEA,MAAa,QAAS,SAAQ,KAAK;IAGjC,YAAY,MAAyB;QACnC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC9B,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,sBAAsB,MAAM,CAAC,MAAM,eAAe,CAAC,CAAC;QAC5D,CAAC;QACD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;CACF;AAXD,4BAWC;AAED,kBAAe,QAAQ,CAAC"}
package/package.json ADDED
@@ -0,0 +1,55 @@
1
+ {
2
+ "name": "@sleekcms/json-zen",
3
+ "version": "1.0.0",
4
+ "description": "Easify verify and shape JSON objects using a simplified alternative JSON schema",
5
+ "main": "./lib/index.js",
6
+ "types": "./lib/index.d.ts",
7
+ "scripts": {
8
+ "clean": "rimraf lib",
9
+ "test": "npm run cover",
10
+ "test:only": "mocha --require ts-node/register --recursive 'test/**/*.ts'",
11
+ "test:watch": "npm test -- --watch",
12
+ "cover": "nyc npm run test:only",
13
+ "lint": "eslint src test --ext .ts",
14
+ "build": "tsc",
15
+ "prepublish": "npm run clean && npm run test && npm run build"
16
+ },
17
+ "files": [
18
+ "lib",
19
+ "src"
20
+ ],
21
+ "repository": {
22
+ "type": "git",
23
+ "url": "git+https://github.com/sleekcms/json-zen.git"
24
+ },
25
+ "keywords": [
26
+ "json",
27
+ "json-schema",
28
+ "json-zen",
29
+ "validator",
30
+ "jsonschema",
31
+ "json-schema-validator",
32
+ "json-schema-validation"
33
+ ],
34
+ "author": "Yusuf Bhabhrawala",
35
+ "license": "BSD-3-Clause",
36
+ "bugs": {
37
+ "url": "https://github.com/sleekcms/json-zen/issues"
38
+ },
39
+ "homepage": "https://github.com/sleekcms/json-zen#readme",
40
+ "devDependencies": {
41
+ "@types/chai": "^4.3.0",
42
+ "@types/lodash": "^4.14.182",
43
+ "@types/mocha": "^9.1.0",
44
+ "@types/node": "^18.0.0",
45
+ "@typescript-eslint/eslint-plugin": "^5.0.0",
46
+ "@typescript-eslint/parser": "^5.0.0",
47
+ "chai": "^4.3.4",
48
+ "eslint": "^8.3.0",
49
+ "mocha": "^9.1.3",
50
+ "nyc": "^15.1.0",
51
+ "rimraf": "^3.0.2",
52
+ "ts-node": "^10.9.0",
53
+ "typescript": "^5.0.0"
54
+ }
55
+ }
package/src/index.ts ADDED
@@ -0,0 +1,334 @@
1
+ /**
2
+ * Author: Yusuf Bhabhrawala
3
+ */
4
+
5
+ import ZenTypes from "./types";
6
+ import ZenError from "./zen-error";
7
+
8
+ const RX = {
9
+ FLAT_ARRAY: /(\[([^\[\]\{\}]*)\])/,
10
+ FLAT_OBJECT: /(\{([^\{\}\[\]]*)\})/,
11
+ MALFORMED: /[\[\]\{\}]/,
12
+ FLAT_SCALAR: /^[^\[\]\{\}]*$/,
13
+ OPTIONAL: /^[\?]/,
14
+ LOOKUP: /^[0-9]+$/,
15
+ DEFAULTS: /^\$([0-9]+)$/
16
+ };
17
+
18
+ type FlattenResult = [string, string[], string[]];
19
+
20
+ export const _flatten = (schema: string): FlattenResult => {
21
+ const lookups: string[] = [];
22
+ const default_strings: string[] = [];
23
+ let m: RegExpMatchArray | null;
24
+
25
+ // convert "hello world" to $0. remote " (quotes)
26
+ while ((m = schema.match(/"([^"]+)"/))) {
27
+ schema = schema.slice(0, m.index!) + `$${default_strings.length}` + schema.slice(m.index! + m[0].length);
28
+ default_strings.push(m[1]);
29
+ }
30
+ while ((m = schema.match(/'([^']+)'/))) {
31
+ schema = schema.slice(0, m.index!) + `$${default_strings.length}` + schema.slice(m.index! + m[0].length);
32
+ default_strings.push(m[1]);
33
+ }
34
+ if (schema.match(/"/)) throw new Error("Missing closing quote");
35
+
36
+ // strip all white spaces
37
+ schema = schema.replace(/\s/g, "");
38
+
39
+ function reduce(schema: string): string {
40
+ let m: RegExpMatchArray | null;
41
+ let found = false;
42
+ while ((m = schema.match(RX.FLAT_ARRAY)) || (m = schema.match(RX.FLAT_OBJECT))) {
43
+ schema = schema.slice(0, m.index!) + lookups.length + schema.slice(m.index! + m[0].length);
44
+ lookups.push(m[0]);
45
+ found = true;
46
+ }
47
+
48
+ if (found) return reduce(schema);
49
+ if (!found && schema.match(RX.MALFORMED)) {
50
+ throw new Error("Schema error: probably invalid braces or brackets");
51
+ }
52
+ return schema;
53
+ }
54
+
55
+ schema = reduce(schema);
56
+ return [schema, lookups, default_strings];
57
+ };
58
+
59
+ function splitOnce(str: string, delim: string): [string, string] {
60
+ const parts = str.split(delim);
61
+ const first = parts.shift()!;
62
+ return [first, parts.join(delim)];
63
+ }
64
+
65
+ export type TypeShape = string | TypeShape[] | { [key: string]: TypeShape };
66
+
67
+ // Set leaf types to format "optional:type:default_value" tuple. Eg. "?:boolean:false" or ":integer:"
68
+ export const typeShape = (schema: string): TypeShape => {
69
+ let [sch, lookups, default_strings] = _flatten(schema);
70
+
71
+ function traverse(sch: string): TypeShape {
72
+ if (!sch) return "";
73
+ let m: RegExpMatchArray | null;
74
+ if (sch.match(RX.LOOKUP)) return traverse(lookups[Number(sch)]);
75
+ if ((m = sch.match(RX.FLAT_ARRAY))) {
76
+ sch = m[2];
77
+ const schema_parts = sch.split(",");
78
+ return schema_parts.length > 0 ? [traverse(schema_parts[0])] : [traverse("")];
79
+ }
80
+ if ((m = sch.match(RX.FLAT_OBJECT))) {
81
+ sch = m[2];
82
+ return sch.split(",").reduce((acc: { [key: string]: TypeShape }, name) => {
83
+ let [k, v] = splitOnce(name, ":");
84
+ if (k.match(RX.DEFAULTS)) k = default_strings[Number(k.slice(1))];
85
+ acc[k] = traverse(v);
86
+ return acc;
87
+ }, {});
88
+ }
89
+ if (sch.match(RX.FLAT_SCALAR)) {
90
+ let [type, def] = sch.split(":");
91
+ if (!def) def = "";
92
+ if (def && def.match(RX.DEFAULTS)) def = default_strings[Number(def.substr(1))];
93
+ let optional = '';
94
+ if (type.match(RX.OPTIONAL)) {
95
+ optional = '?';
96
+ type = type.slice(1);
97
+ }
98
+ const type_lookup: { [key: string]: string } = ZenTypes.ALIASES;
99
+ if (type_lookup[type]) type = type_lookup[type];
100
+ return [optional, type, def].join(':');
101
+ }
102
+ return "";
103
+ }
104
+ return traverse(sch);
105
+ };
106
+
107
+ export const toSchema = (json: unknown): string => {
108
+ function traverse(obj: unknown): string {
109
+ const type = ZenTypes.toSchema(obj);
110
+ if (type === "array") {
111
+ const arr = obj as unknown[];
112
+ const sch = arr.length > 0 ? traverse(arr[0]) : "";
113
+ return `[${sch}]`;
114
+ }
115
+ if (type === "object") {
116
+ const objRecord = obj as Record<string, unknown>;
117
+ return '{' + Object.keys(objRecord).map((k) => {
118
+ return `${k}:${traverse(objRecord[k])}`;
119
+ }).join(",") + '}';
120
+ }
121
+ return type;
122
+ }
123
+ return traverse(json);
124
+ };
125
+
126
+ export interface ShapeOptions {
127
+ _optional?: boolean;
128
+ [key: string]: unknown;
129
+ }
130
+
131
+ export const shape = <T = unknown>(json: unknown, schema: string, options: ShapeOptions = {}): T => {
132
+ const types = new ZenTypes(options);
133
+
134
+ options._optional = options._optional || false;
135
+ let lookups: string[];
136
+ let default_strings: string[];
137
+ [schema, lookups, default_strings] = _flatten(schema);
138
+
139
+ const getValue = (type: string, value: unknown, def: string | undefined): unknown => {
140
+ let m: RegExpMatchArray | null;
141
+ if (def && (m = def.match(RX.DEFAULTS))) def = default_strings[Number(m[1])];
142
+
143
+ if (types.has(type)) {
144
+ return (value && types.check(type, value)) ? value : (def !== undefined) ? types.cast(type, def) : types.sample(type);
145
+ }
146
+
147
+ return value || def || "Not defined!";
148
+ };
149
+
150
+ interface TraverseArgs {
151
+ value: unknown;
152
+ schema: string;
153
+ }
154
+
155
+ // flat validator value = {k:t:d,..} [t:d,..] t:d
156
+ function traverse({ value, schema }: TraverseArgs): unknown {
157
+ if (!schema) schema = "";
158
+ let m: RegExpMatchArray | null;
159
+ let optional = false;
160
+ if (schema.match(RX.OPTIONAL)) {
161
+ schema = schema.slice(1);
162
+ optional = true;
163
+ }
164
+
165
+ // if lookup, validate further
166
+ if (schema.match(RX.LOOKUP)) return traverse({ value, schema: `${optional ? '?' : ''}${lookups[Number(schema)]}` });
167
+
168
+ if ((value === null || value === undefined) && optional && !options._optional) return null;
169
+
170
+ if (schema.match(RX.FLAT_SCALAR)) {
171
+ // if scalar
172
+ let type: string;
173
+ let def: string | undefined;
174
+ [type, def] = schema.split(":");
175
+ return getValue(type, value, def);
176
+
177
+ } else if ((m = schema.match(RX.FLAT_ARRAY))) {
178
+ // if array
179
+ schema = m[2];
180
+ const schema_parts = schema.split(",");
181
+ let arr = value as unknown[];
182
+ if (!Array.isArray(value)) arr = schema_parts.map(() => null);
183
+ if (arr.length < schema_parts.length) {
184
+ arr = arr.concat(schema_parts.slice(arr.length).map(() => null));
185
+ }
186
+
187
+ return arr.map((v, i) => traverse({ value: v, schema: schema_parts[i % schema_parts.length] }));
188
+
189
+ } else if ((m = schema.match(RX.FLAT_OBJECT))) {
190
+ // if object
191
+ let obj = value as Record<string, unknown>;
192
+ if (typeof value !== 'object' || Array.isArray(value)) {
193
+ obj = {};
194
+ }
195
+ schema = m[2];
196
+ if (schema === "") return obj;
197
+
198
+ let wildcard: string | false = false;
199
+ const shp = schema.split(",").reduce((acc: Record<string, unknown>, name) => {
200
+ let [k, t, d] = name.split(":");
201
+ if (!t) t = "";
202
+ if (d) t += ":" + d;
203
+ if (k === "*") wildcard = t;
204
+ else acc[k] = traverse({ value: obj[k], schema: t });
205
+ return acc;
206
+ }, {});
207
+ if (wildcard !== false) {
208
+ for (const k in obj) if (shp[k] === undefined) shp[k] = traverse({ value: obj[k], schema: wildcard });
209
+ }
210
+ return shp;
211
+ }
212
+ return value;
213
+ }
214
+
215
+ const result = traverse({ value: json, schema });
216
+ return result as T;
217
+ };
218
+
219
+ export interface VerifyOptions {
220
+ _path?: string;
221
+ [key: string]: unknown;
222
+ }
223
+
224
+ export const verify = (json: unknown, schema: string, options: VerifyOptions = {}): boolean => {
225
+ const types = new ZenTypes(options);
226
+ const errors: [string, string][] = [];
227
+ const jsonPath = options._path || 'json';
228
+
229
+ let lookups: string[];
230
+ [schema, lookups] = _flatten(schema);
231
+
232
+ interface ValidateArgs {
233
+ path: string;
234
+ value: unknown;
235
+ schema: string;
236
+ parent?: unknown;
237
+ }
238
+
239
+ // flat validator value = {k:t:d,..} [t:d,..] t:d
240
+ function validate({ path, value, schema, parent = null }: ValidateArgs): boolean {
241
+ let m: RegExpMatchArray | null;
242
+
243
+ let optional = false;
244
+ if (schema.match(RX.OPTIONAL)) {
245
+ schema = schema.slice(1);
246
+ if (value === undefined || value === null) return true;
247
+ optional = true;
248
+ }
249
+
250
+ // if lookup, validate further
251
+ if (schema.match(RX.LOOKUP)) return validate({ path: `${path}`, value, schema: `${optional ? '?' : ''}${lookups[Number(schema)]}`, parent: parent });
252
+
253
+ if (schema.match(RX.FLAT_SCALAR)) {
254
+ // if scalar
255
+ let def: string;
256
+ [schema, def] = schema.split(":");
257
+ if (value === undefined || value === null) {
258
+ errors.push([path, 'is required']);
259
+ return false;
260
+ }
261
+
262
+ if (schema === "") return true; // no validation needed
263
+
264
+ if (!types.has(schema)) throw new Error(`Schema error: Validator - ${schema} - not found`);
265
+ else if (types.check(schema, value, { path, json, parent })) return true;
266
+ else {
267
+ errors.push([path, 'validation failed']);
268
+ return false;
269
+ }
270
+ } else if ((m = schema.match(RX.FLAT_ARRAY))) {
271
+ // if array
272
+ if (!Array.isArray(value)) {
273
+ errors.push([path, 'should be array']);
274
+ return false;
275
+ }
276
+ schema = m[2];
277
+ const schema_parts = schema.split(",");
278
+ for (const i in value) {
279
+ validate({ path: `${path}.${i}`, value: value[i], schema: schema_parts[Number(i) % schema_parts.length], parent: value });
280
+ }
281
+ return true;
282
+ } else if ((m = schema.match(RX.FLAT_OBJECT))) {
283
+ // if object
284
+ if (typeof value !== 'object' || Array.isArray(value)) {
285
+ errors.push([path, 'should be object']);
286
+ return false;
287
+ }
288
+ schema = m[2];
289
+ let wildcard: string | false = false;
290
+ if (schema !== "") {
291
+ const obj = value as Record<string, unknown>;
292
+ const keys = schema.split(",").reduce((acc: Record<string, string>, name) => {
293
+ let [k, t] = name.split(":");
294
+ if (!t) t = "";
295
+ if (k === '*') wildcard = t;
296
+ else acc[k] = t;
297
+ return acc;
298
+ }, {});
299
+
300
+ if (wildcard !== false) {
301
+ for (const k in obj) if (keys[k] === undefined) keys[k] = wildcard;
302
+ }
303
+
304
+ // if object, validate for all k-v
305
+ for (const k in keys) validate({ path: `${path}.${k}`, value: obj[k], schema: keys[k], parent: value });
306
+ }
307
+ return true;
308
+ }
309
+ return true;
310
+ }
311
+
312
+ validate({ path: jsonPath, value: json, schema });
313
+ if (errors.length > 0) throw new ZenError(errors);
314
+
315
+ return true;
316
+ };
317
+
318
+ // same as verify. returns boolean. won't throw.
319
+ export const check = (json: unknown, schema: string, options?: VerifyOptions): boolean => {
320
+ try {
321
+ verify(json, schema, options);
322
+ return true;
323
+ } catch (error) {
324
+ if (error instanceof Error && error.message.match(/^Schema error/)) throw error;
325
+ return false;
326
+ }
327
+ };
328
+
329
+ export const extendTypes = (types: Record<string, unknown>): void => {
330
+ ZenTypes.extend(types);
331
+ };
332
+
333
+ // CommonJS compatibility
334
+ module.exports = { verify, check, shape, toSchema, _flatten, typeShape, extendTypes };