xdbc 1.0.217 → 1.0.219
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/.gitattributes +16 -8
- package/.vscode/settings.json +3 -3
- package/.vscode/tasks.json +23 -23
- package/ASSESSMENT.md +249 -0
- package/README.md +538 -408
- package/__tests__/DBC/AE.test.ts +62 -62
- package/__tests__/DBC/ARRAY.test.ts +91 -91
- package/__tests__/DBC/DEFINED.test.ts +53 -53
- package/__tests__/DBC/DOM.test.ts +786 -0
- package/__tests__/DBC/Decorators.test.ts +367 -367
- package/__tests__/DBC/EQ.test.ts +13 -13
- package/__tests__/DBC/GREATER.test.ts +31 -31
- package/__tests__/DBC/HasAttribute.test.ts +60 -60
- package/__tests__/DBC/IF.test.ts +62 -62
- package/__tests__/DBC/INSTANCE.test.ts +13 -13
- package/__tests__/DBC/JSON.OP.test.ts +47 -47
- package/__tests__/DBC/JSON.Parse.test.ts +17 -17
- package/__tests__/DBC/OR.test.ts +14 -14
- package/__tests__/DBC/PLAIN_OBJECT.test.ts +109 -109
- package/__tests__/DBC/REGEX.test.ts +17 -17
- package/__tests__/DBC/TYPE.test.ts +13 -13
- package/__tests__/DBC/UNDEFINED.test.ts +45 -45
- package/__tests__/DBC/ZOD.test.ts +54 -54
- package/__tests__/DBC/onInfringement.test.ts +262 -0
- package/biome.json +45 -40
- package/dist/DBC/AE.js +172 -0
- package/dist/DBC/ARR/PLAIN_OBJECT.d.ts +0 -3
- package/dist/DBC/ARR/PLAIN_OBJECT.js +95 -0
- package/dist/DBC/ARRAY.d.ts +0 -3
- package/dist/DBC/ARRAY.js +90 -0
- package/dist/DBC/COMPARISON/GREATER.js +21 -0
- package/dist/DBC/COMPARISON/GREATER_OR_EQUAL.js +21 -0
- package/dist/DBC/COMPARISON/LESS.js +21 -0
- package/dist/DBC/COMPARISON/LESS_OR_EQUAL.js +21 -0
- package/dist/DBC/COMPARISON.js +98 -0
- package/dist/DBC/DEFINED.js +87 -0
- package/dist/DBC/DOM.d.ts +123 -0
- package/dist/DBC/DOM.js +362 -0
- package/dist/DBC/EQ/DIFFERENT.js +34 -0
- package/dist/DBC/EQ.js +101 -0
- package/dist/DBC/GREATER.js +99 -0
- package/dist/DBC/HasAttribute.js +101 -0
- package/dist/DBC/IF.js +96 -0
- package/dist/DBC/INSTANCE.js +122 -0
- package/dist/DBC/JSON.OP.js +120 -0
- package/dist/DBC/JSON.Parse.js +104 -0
- package/dist/DBC/OR.js +125 -0
- package/dist/DBC/REGEX.js +136 -0
- package/dist/DBC/TYPE.js +112 -0
- package/dist/DBC/UNDEFINED.js +87 -0
- package/dist/DBC/ZOD.js +99 -0
- package/dist/DBC.d.ts +18 -4
- package/dist/DBC.js +645 -0
- package/dist/Demo.d.ts +10 -0
- package/dist/Demo.js +713 -0
- package/dist/Test.html +18 -0
- package/dist/bundle.js +6140 -405
- package/dist/index.d.ts +22 -0
- package/dist/index.html +18 -0
- package/dist/index.js +22 -0
- package/docs/assets/highlight.css +22 -22
- package/docs/assets/icons.js +17 -17
- package/docs/assets/main.js +60 -60
- package/docs/assets/style.css +1640 -1640
- package/docs/classes/DBC.DBC.html +98 -98
- package/docs/classes/DBC_AE.AE.html +160 -160
- package/docs/classes/DBC_EQ.EQ.html +131 -131
- package/docs/classes/DBC_GREATER.GREATER.html +139 -139
- package/docs/classes/DBC_INSTANCE.INSTANCE.html +130 -130
- package/docs/classes/DBC_JSON.OP.JSON_OP.html +138 -138
- package/docs/classes/DBC_JSON.Parse.JSON_Parse.html +129 -129
- package/docs/classes/DBC_OR.OR.html +137 -137
- package/docs/classes/DBC_REGEX.REGEX.html +136 -136
- package/docs/classes/DBC_TYPE.TYPE.html +130 -130
- package/docs/classes/Demo.Demo.html +14 -14
- package/docs/hierarchy.html +1 -1
- package/docs/index.html +1 -1
- package/docs/modules/DBC.html +1 -1
- package/docs/modules/DBC_AE.html +1 -1
- package/docs/modules/DBC_EQ.html +1 -1
- package/docs/modules/DBC_GREATER.html +1 -1
- package/docs/modules/DBC_INSTANCE.html +1 -1
- package/docs/modules/DBC_JSON.OP.html +1 -1
- package/docs/modules/DBC_JSON.Parse.html +1 -1
- package/docs/modules/DBC_OR.html +1 -1
- package/docs/modules/DBC_REGEX.html +1 -1
- package/docs/modules/DBC_TYPE.html +1 -1
- package/docs/modules/Demo.html +1 -1
- package/jest.config.js +32 -32
- package/package.json +71 -55
- package/src/DBC/AE.ts +269 -288
- package/src/DBC/ARR/PLAIN_OBJECT.ts +122 -133
- package/src/DBC/ARRAY.ts +117 -127
- package/src/DBC/COMPARISON/GREATER.ts +41 -46
- package/src/DBC/COMPARISON/GREATER_OR_EQUAL.ts +41 -45
- package/src/DBC/COMPARISON/LESS.ts +41 -45
- package/src/DBC/COMPARISON/LESS_OR_EQUAL.ts +41 -45
- package/src/DBC/COMPARISON.ts +149 -159
- package/src/DBC/DEFINED.ts +117 -122
- package/src/DBC/DOM.ts +453 -0
- package/src/DBC/EQ/DIFFERENT.ts +51 -57
- package/src/DBC/EQ.ts +154 -163
- package/src/DBC/HasAttribute.ts +149 -154
- package/src/DBC/IF.ts +173 -179
- package/src/DBC/INSTANCE.ts +168 -171
- package/src/DBC/JSON.OP.ts +178 -186
- package/src/DBC/JSON.Parse.ts +150 -157
- package/src/DBC/OR.ts +183 -187
- package/src/DBC/REGEX.ts +195 -196
- package/src/DBC/TYPE.ts +142 -149
- package/src/DBC/UNDEFINED.ts +115 -117
- package/src/DBC/ZOD.ts +130 -135
- package/src/DBC.ts +902 -904
- package/src/Demo.ts +537 -404
- package/src/index.ts +22 -0
- package/tsconfig.json +18 -18
- package/tsconfig.test.json +7 -7
- package/typedoc.json +16 -16
- package/webpack.config.js +27 -27
- package/Assessment.md +0 -507
package/src/DBC/JSON.Parse.ts
CHANGED
|
@@ -1,157 +1,150 @@
|
|
|
1
|
-
import { DBC } from "../DBC";
|
|
2
|
-
/**
|
|
3
|
-
* A {@link DBC } demanding that a {@link string } is {@link JSON.parse}able.
|
|
4
|
-
*
|
|
5
|
-
* @remarks
|
|
6
|
-
* Maintainer: Callari, Salvatore (XDBC@WaXCode.net) */
|
|
7
|
-
export class JSON_Parse extends DBC {
|
|
8
|
-
// #region Condition checking.
|
|
9
|
-
/**
|
|
10
|
-
* Tries to {@link JSON.parse } the {@link string } **toCheck** invoking the **receptor** with the result, if so.
|
|
11
|
-
*
|
|
12
|
-
* @param toCheck The {@link string } to be {@link JSON.parse }d.
|
|
13
|
-
* @param receptor The **( json : object ) => void** to receive the {@link JSON.parse }d {@link string } **toCheck**.
|
|
14
|
-
* check needs to have.
|
|
15
|
-
*
|
|
16
|
-
* @returns TRUE if the value **toCheck** is a valid JSON, otherwise a {@link string } to report the infringement. */
|
|
17
|
-
public static checkAlgorithm(
|
|
18
|
-
toCheck: string,
|
|
19
|
-
receptor: (json: object) => void,
|
|
20
|
-
): boolean | string {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
*
|
|
38
|
-
*
|
|
39
|
-
*
|
|
40
|
-
* @
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
)
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
*
|
|
65
|
-
*
|
|
66
|
-
*
|
|
67
|
-
* @
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
)
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
*
|
|
92
|
-
*
|
|
93
|
-
*
|
|
94
|
-
* @
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
//
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
*
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
if (typeof checkResult === "string") {
|
|
153
|
-
DBC.reportTsCheckInfringement(checkResult, dbc);
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
// #endregion In-Method checking.
|
|
157
|
-
}
|
|
1
|
+
import { DBC } from "../DBC";
|
|
2
|
+
/**
|
|
3
|
+
* A {@link DBC } demanding that a {@link string } is {@link JSON.parse}able.
|
|
4
|
+
*
|
|
5
|
+
* @remarks
|
|
6
|
+
* Maintainer: Callari, Salvatore (XDBC@WaXCode.net) */
|
|
7
|
+
export class JSON_Parse extends DBC {
|
|
8
|
+
// #region Condition checking.
|
|
9
|
+
/**
|
|
10
|
+
* Tries to {@link JSON.parse } the {@link string } **toCheck** invoking the **receptor** with the result, if so.
|
|
11
|
+
*
|
|
12
|
+
* @param toCheck The {@link string } to be {@link JSON.parse }d.
|
|
13
|
+
* @param receptor The **( json : object ) => void** to receive the {@link JSON.parse }d {@link string } **toCheck**.
|
|
14
|
+
* check needs to have.
|
|
15
|
+
*
|
|
16
|
+
* @returns TRUE if the value **toCheck** is a valid JSON, otherwise a {@link string } to report the infringement. */
|
|
17
|
+
public static checkAlgorithm(
|
|
18
|
+
toCheck: string,
|
|
19
|
+
receptor: (json: object) => void,
|
|
20
|
+
): boolean | string {
|
|
21
|
+
let parsed: any;
|
|
22
|
+
try {
|
|
23
|
+
parsed = JSON.parse(toCheck);
|
|
24
|
+
} catch (X: unknown) {
|
|
25
|
+
return `[ Following string is not a valid JSON: ${toCheck}]`;
|
|
26
|
+
}
|
|
27
|
+
if (receptor) {
|
|
28
|
+
receptor(parsed);
|
|
29
|
+
}
|
|
30
|
+
return true;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* A parameter-decorator factory using the {@link JSON_Parse.checkAlgorithm } to determine whether this {@link DBC } is fulfilled
|
|
34
|
+
* by the tagged parameter.
|
|
35
|
+
*
|
|
36
|
+
* @param receptor See {@link JSON.checkAlgorithm }.
|
|
37
|
+
* @param path See {@link DBC.decPrecondition }.
|
|
38
|
+
* @param dbc See {@link DBC.decPrecondition }.
|
|
39
|
+
*
|
|
40
|
+
* @returns See {@link DBC.decPrecondition }. */
|
|
41
|
+
public static PRE(
|
|
42
|
+
receptor: (json: object) => void,
|
|
43
|
+
path: string | undefined = undefined,
|
|
44
|
+
hint: string | undefined = undefined,
|
|
45
|
+
dbc: string | undefined = undefined,
|
|
46
|
+
): (
|
|
47
|
+
target: object,
|
|
48
|
+
methodName: string | symbol | undefined,
|
|
49
|
+
parameterIndex: number,
|
|
50
|
+
) => void {
|
|
51
|
+
return DBC.createPRE(
|
|
52
|
+
JSON_Parse.checkAlgorithm,
|
|
53
|
+
[receptor],
|
|
54
|
+
dbc,
|
|
55
|
+
path,
|
|
56
|
+
hint,
|
|
57
|
+
);
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* A method-decorator factory using the {@link JSON_Parse.checkAlgorithm } to determine whether this {@link DBC } is fulfilled
|
|
61
|
+
* by the tagged method's returnvalue.
|
|
62
|
+
*
|
|
63
|
+
* @param expression See {@link JSON.checkAlgorithm }.
|
|
64
|
+
* @param path See {@link DBC.Postcondition }.
|
|
65
|
+
* @param dbc See {@link DBC.decPostcondition }.
|
|
66
|
+
*
|
|
67
|
+
* @returns See {@link DBC.decPostcondition }. */
|
|
68
|
+
public static POST(
|
|
69
|
+
receptor: (json: object) => void,
|
|
70
|
+
path: string | undefined = undefined,
|
|
71
|
+
hint: string | undefined = undefined,
|
|
72
|
+
dbc: string | undefined = undefined,
|
|
73
|
+
): (
|
|
74
|
+
target: object,
|
|
75
|
+
propertyKey: string,
|
|
76
|
+
descriptor: PropertyDescriptor,
|
|
77
|
+
) => PropertyDescriptor {
|
|
78
|
+
return DBC.createPOST(
|
|
79
|
+
JSON_Parse.checkAlgorithm,
|
|
80
|
+
[receptor],
|
|
81
|
+
dbc,
|
|
82
|
+
path,
|
|
83
|
+
hint,
|
|
84
|
+
);
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* A field-decorator factory using the {@link JSON_Parse.checkAlgorithm } to determine whether this {@link DBC } is fulfilled
|
|
88
|
+
* by the tagged field.
|
|
89
|
+
*
|
|
90
|
+
* @param expression See {@link JSON.checkAlgorithm }.
|
|
91
|
+
* @param path See {@link DBC.decInvariant }.
|
|
92
|
+
* @param dbc See {@link DBC.decInvariant }.
|
|
93
|
+
*
|
|
94
|
+
* @returns See {@link DBC.decInvariant }. */
|
|
95
|
+
public static INVARIANT(
|
|
96
|
+
receptor: (json: object) => void,
|
|
97
|
+
path: string | undefined = undefined,
|
|
98
|
+
hint: string | undefined = undefined,
|
|
99
|
+
dbc: string | undefined = undefined,
|
|
100
|
+
) {
|
|
101
|
+
return DBC.createINVARIANT(JSON_Parse, [receptor], dbc, path, hint);
|
|
102
|
+
}
|
|
103
|
+
// #endregion Condition checking.
|
|
104
|
+
// #region Referenced Condition checking.
|
|
105
|
+
//
|
|
106
|
+
// For usage in dynamic scenarios (like with AE-DBC).
|
|
107
|
+
//
|
|
108
|
+
/**
|
|
109
|
+
* Invokes the {@link JSON_Parse.checkAlgorithm } passing the value **toCheck** and {@link JSON_Parse.receptor }.
|
|
110
|
+
*
|
|
111
|
+
* @param toCheck See {@link JSON_Parse.checkAlgorithm }.
|
|
112
|
+
*
|
|
113
|
+
* @returns See {@link JSON_Parse.checkAlgorithm}. */
|
|
114
|
+
public check(toCheck: any) {
|
|
115
|
+
return JSON_Parse.checkAlgorithm(
|
|
116
|
+
toCheck,
|
|
117
|
+
this.receptor as (json: object) => void,
|
|
118
|
+
);
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Creates this {@link JSON_Parse } by setting the protected property {@link JSON_Parse.necessaryProperties } and {@link checkElements } used by {@link JSON_Parse.check }.
|
|
122
|
+
*
|
|
123
|
+
* @param necessaryProperties See {@link JSON_Parse.check }.
|
|
124
|
+
* @param checkElements See {@link JSON_Parse.check }. */
|
|
125
|
+
public constructor(
|
|
126
|
+
public receptor: ((json: object) => void) | undefined = undefined,
|
|
127
|
+
) {
|
|
128
|
+
super();
|
|
129
|
+
}
|
|
130
|
+
// #endregion Referenced Condition checking.
|
|
131
|
+
// #region In-Method checking.
|
|
132
|
+
/**
|
|
133
|
+
* Invokes the {@link JSON_Parse.checkAlgorithm } passing the value **toCheck**, {@link JSON_Parse.necessaryProperties } and {@link JSON_Parse.checkElements }.
|
|
134
|
+
*
|
|
135
|
+
* @param toCheck See {@link JSON_Parse.checkAlgorithm} }.
|
|
136
|
+
* @param necessaryProperties See {@link JSON_Parse.checkAlgorithm} }.
|
|
137
|
+
* @param checkElements See {@link JSON_Parse.checkAlgorithm} }.
|
|
138
|
+
*/
|
|
139
|
+
public static check(
|
|
140
|
+
toCheck: any,
|
|
141
|
+
receptor: (json: object) => void,
|
|
142
|
+
dbc: string | undefined = undefined,
|
|
143
|
+
) {
|
|
144
|
+
const checkResult = JSON_Parse.checkAlgorithm(toCheck, receptor);
|
|
145
|
+
if (typeof checkResult === "string") {
|
|
146
|
+
DBC.reportTsCheckInfringement(checkResult, dbc);
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
// #endregion In-Method checking.
|
|
150
|
+
}
|