xdbc 1.0.93 → 1.0.95

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 (97) hide show
  1. package/.parcel-cache/bf96c58b6061a62a-BundleGraph +0 -0
  2. package/.parcel-cache/d7c812d65aeeac59-AssetGraph +0 -0
  3. package/.parcel-cache/data.mdb +0 -0
  4. package/.parcel-cache/e81759c1f106a17f-RequestGraph +0 -0
  5. package/.parcel-cache/fe0db3c4eb428be2-AssetGraph +0 -0
  6. package/.parcel-cache/lock.mdb +0 -0
  7. package/.parcel-cache/snapshot-e81759c1f106a17f.txt +4609 -0
  8. package/CODE_OF_CONDUCT.md +128 -0
  9. package/CONTRIBUTING.md +40 -0
  10. package/FUNDING.yml +3 -0
  11. package/LICENSE +21 -0
  12. package/README.md +96 -0
  13. package/SECURITY.md +36 -0
  14. package/Test.html +1 -1
  15. package/__tests__/DBC/AE.test.ts +62 -0
  16. package/__tests__/DBC/EQ.test.ts +13 -0
  17. package/__tests__/DBC/GREATER.test.ts +29 -0
  18. package/__tests__/DBC/INSTANCE.test.ts +13 -0
  19. package/__tests__/DBC/JSON.OP.test.ts +47 -0
  20. package/__tests__/DBC/JSON.Parse.test.ts +17 -0
  21. package/__tests__/DBC/OR.test.ts +14 -0
  22. package/__tests__/DBC/REGEX.test.ts +13 -0
  23. package/__tests__/DBC/TYPE.test.ts +13 -0
  24. package/babel.rc +12 -0
  25. package/dist/DBC/AE.js +39 -23
  26. package/dist/DBC/COMPARISON/GREATER.js +22 -0
  27. package/dist/DBC/COMPARISON.js +99 -0
  28. package/dist/DBC/EQ.js +21 -7
  29. package/dist/DBC/GREATER.js +19 -6
  30. package/dist/DBC/INSTANCE.js +22 -9
  31. package/dist/DBC/JSON.OP.js +19 -7
  32. package/dist/DBC/JSON.Parse.js +19 -7
  33. package/dist/DBC/OR.js +35 -23
  34. package/dist/DBC/REGEX.js +21 -9
  35. package/dist/DBC/TYPE.js +19 -7
  36. package/dist/DBC.js +112 -39
  37. package/dist/Demo.js +267 -0
  38. package/dist/bundle.js +1329 -0
  39. package/docs/.nojekyll +1 -0
  40. package/docs/assets/hierarchy.js +1 -0
  41. package/docs/assets/highlight.css +22 -0
  42. package/docs/assets/icons.js +18 -0
  43. package/docs/assets/icons.svg +1 -0
  44. package/docs/assets/main.js +60 -0
  45. package/docs/assets/navigation.js +1 -0
  46. package/docs/assets/search.js +1 -0
  47. package/docs/assets/style.css +1640 -0
  48. package/docs/classes/DBC.DBC.html +98 -0
  49. package/docs/classes/DBC_AE.AE.html +160 -0
  50. package/docs/classes/DBC_EQ.EQ.html +131 -0
  51. package/docs/classes/DBC_GREATER.GREATER.html +139 -0
  52. package/docs/classes/DBC_INSTANCE.INSTANCE.html +130 -0
  53. package/docs/classes/DBC_JSON.OP.JSON_OP.html +138 -0
  54. package/docs/classes/DBC_JSON.Parse.JSON_Parse.html +129 -0
  55. package/docs/classes/DBC_OR.OR.html +137 -0
  56. package/docs/classes/DBC_REGEX.REGEX.html +136 -0
  57. package/docs/classes/DBC_TYPE.TYPE.html +130 -0
  58. package/docs/classes/Demo.Demo.html +14 -0
  59. package/docs/hierarchy.html +1 -0
  60. package/docs/index.html +1 -0
  61. package/docs/modules/DBC.html +1 -0
  62. package/docs/modules/DBC_AE.html +1 -0
  63. package/docs/modules/DBC_EQ.html +1 -0
  64. package/docs/modules/DBC_GREATER.html +1 -0
  65. package/docs/modules/DBC_INSTANCE.html +1 -0
  66. package/docs/modules/DBC_JSON.OP.html +1 -0
  67. package/docs/modules/DBC_JSON.Parse.html +1 -0
  68. package/docs/modules/DBC_OR.html +1 -0
  69. package/docs/modules/DBC_REGEX.html +1 -0
  70. package/docs/modules/DBC_TYPE.html +1 -0
  71. package/docs/modules/Demo.html +1 -0
  72. package/jest.config.ts +20 -0
  73. package/package.json +23 -5
  74. package/src/DBC/AE.ts +49 -24
  75. package/src/DBC/COMPARISON/GREATER.ts +38 -0
  76. package/src/DBC/COMPARISON/GREATER_OR_EQUAL.ts +38 -0
  77. package/src/DBC/COMPARISON/LESS.ts +38 -0
  78. package/src/DBC/COMPARISON/LESS_OR_EQUAL.ts +38 -0
  79. package/src/DBC/COMPARISON.ts +150 -0
  80. package/src/DBC/EQ.ts +26 -8
  81. package/src/DBC/GREATER.ts +30 -7
  82. package/src/DBC/INSTANCE.ts +26 -10
  83. package/src/DBC/JSON.OP.ts +29 -8
  84. package/src/DBC/JSON.Parse.ts +24 -8
  85. package/src/DBC/OR.ts +42 -24
  86. package/src/DBC/REGEX.ts +26 -10
  87. package/src/DBC/TYPE.ts +24 -8
  88. package/src/DBC.ts +138 -46
  89. package/src/Demo.ts +211 -0
  90. package/tsconfig.json +3 -1
  91. package/typedoc.json +16 -0
  92. package/webpack.config.js +26 -0
  93. package/dist/DBC.min.js +0 -2
  94. package/dist/test.js +0 -110
  95. package/src/test.ts +0 -61
  96. package/test.js +0 -14
  97. package/test.ts +0 -11
package/dist/Demo.js ADDED
@@ -0,0 +1,267 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
11
+ return function (target, key) { decorator(target, key, paramIndex); }
12
+ };
13
+ import { DBC } from "./DBC";
14
+ import { REGEX } from "./DBC/REGEX";
15
+ import { EQ } from "./DBC/EQ";
16
+ import { TYPE } from "./DBC/TYPE";
17
+ import { AE } from "./DBC/AE";
18
+ import { INSTANCE } from "./DBC/INSTANCE";
19
+ /** Demonstrative use of **D**esign **B**y **C**ontract Decorators */
20
+ export class Demo {
21
+ constructor() {
22
+ // #region Check Property Decorator
23
+ this.testProperty = "a";
24
+ // #endregion Check AE Index
25
+ }
26
+ // #endregion Check Property Decorator
27
+ // #region Check Parameter. & Returnvalue Decorator
28
+ testParamvalueAndReturnvalue(a) {
29
+ return `xxxx${a}`;
30
+ }
31
+ // #endregion Check Parameter. & Returnvalue Decorator
32
+ // #region Check Returnvalue Decorator
33
+ testReturnvalue(a) {
34
+ return a;
35
+ }
36
+ // #endregion Check Returnvalue Decorator
37
+ // #region Check EQ-DBC & Path to property of Parameter-value
38
+ testEQAndPath(o) { }
39
+ // #endregion Check EQ-DBC & Path to property of Parameter-value
40
+ // #region Check EQ-DBC & Path to property of Parameter-value with Inversion
41
+ testEQAndPathWithInversion(o) { }
42
+ // #endregion Check EQ-DBC & Path to property of Parameter-value with Inversion
43
+ // #region Check TYPE
44
+ testTYPE(o) { }
45
+ // #endregion Check TYPE
46
+ // #region Check AE
47
+ testAE(x) { }
48
+ // #endregion Check AE
49
+ // #region Check REGEX with AE
50
+ testREGEXWithAE(x) { }
51
+ // #endregion Check REGEX with AE
52
+ // #region Check INSTANCE
53
+ testINSTANCE(candidate) { }
54
+ // #endregion Check INSTANCE
55
+ // #region Check AE Range
56
+ testAERange(x) { }
57
+ // #endregion Check AE Range
58
+ // #region Check AE Index
59
+ testAEIndex(x) { }
60
+ }
61
+ __decorate([
62
+ REGEX.INVARIANT(/^a$/),
63
+ __metadata("design:type", Object)
64
+ ], Demo.prototype, "testProperty", void 0);
65
+ __decorate([
66
+ REGEX.POST(/^xxxx.*$/),
67
+ DBC.ParamvalueProvider,
68
+ __param(0, REGEX.PRE(/holla*/g)),
69
+ __metadata("design:type", Function),
70
+ __metadata("design:paramtypes", [String]),
71
+ __metadata("design:returntype", String)
72
+ ], Demo.prototype, "testParamvalueAndReturnvalue", null);
73
+ __decorate([
74
+ REGEX.POST(/^xxxx.*$/),
75
+ __metadata("design:type", Function),
76
+ __metadata("design:paramtypes", [String]),
77
+ __metadata("design:returntype", String)
78
+ ], Demo.prototype, "testReturnvalue", null);
79
+ __decorate([
80
+ DBC.ParamvalueProvider,
81
+ __param(0, EQ.PRE("SELECT", false, "tagName")),
82
+ __metadata("design:type", Function),
83
+ __metadata("design:paramtypes", [HTMLElement]),
84
+ __metadata("design:returntype", void 0)
85
+ ], Demo.prototype, "testEQAndPath", null);
86
+ __decorate([
87
+ DBC.ParamvalueProvider,
88
+ __param(0, EQ.PRE("SELECT", true, "tagName")),
89
+ __metadata("design:type", Function),
90
+ __metadata("design:paramtypes", [HTMLElement]),
91
+ __metadata("design:returntype", void 0)
92
+ ], Demo.prototype, "testEQAndPathWithInversion", null);
93
+ __decorate([
94
+ DBC.ParamvalueProvider,
95
+ __param(0, TYPE.PRE("string")),
96
+ __metadata("design:type", Function),
97
+ __metadata("design:paramtypes", [Object]),
98
+ __metadata("design:returntype", void 0)
99
+ ], Demo.prototype, "testTYPE", null);
100
+ __decorate([
101
+ DBC.ParamvalueProvider,
102
+ __param(0, AE.PRE([new TYPE("string")])),
103
+ __metadata("design:type", Function),
104
+ __metadata("design:paramtypes", [Array]),
105
+ __metadata("design:returntype", void 0)
106
+ ], Demo.prototype, "testAE", null);
107
+ __decorate([
108
+ DBC.ParamvalueProvider,
109
+ __param(0, AE.PRE(new REGEX(/^(?i:(NOW)|([+-]\d+[dmy]))$/i))),
110
+ __metadata("design:type", Function),
111
+ __metadata("design:paramtypes", [Array]),
112
+ __metadata("design:returntype", void 0)
113
+ ], Demo.prototype, "testREGEXWithAE", null);
114
+ __decorate([
115
+ DBC.ParamvalueProvider
116
+ // biome-ignore lint/suspicious/noExplicitAny: Test
117
+ ,
118
+ __param(0, INSTANCE.PRE(Date)),
119
+ __metadata("design:type", Function),
120
+ __metadata("design:paramtypes", [Object]),
121
+ __metadata("design:returntype", void 0)
122
+ ], Demo.prototype, "testINSTANCE", null);
123
+ __decorate([
124
+ DBC.ParamvalueProvider,
125
+ __param(0, AE.PRE([new TYPE("string"), new REGEX(/^abc$/)], 1, 2)),
126
+ __metadata("design:type", Function),
127
+ __metadata("design:paramtypes", [Array]),
128
+ __metadata("design:returntype", void 0)
129
+ ], Demo.prototype, "testAERange", null);
130
+ __decorate([
131
+ DBC.ParamvalueProvider,
132
+ __param(0, AE.PRE([new TYPE("string"), new REGEX(/^abc$/)], 1)),
133
+ __metadata("design:type", Function),
134
+ __metadata("design:paramtypes", [Array]),
135
+ __metadata("design:returntype", void 0)
136
+ ], Demo.prototype, "testAEIndex", null);
137
+ const demo = new Demo();
138
+ try {
139
+ demo.testProperty = "abd";
140
+ }
141
+ catch (X) {
142
+ console.log("⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄");
143
+ console.log("INVARIANT Infringement", "OK");
144
+ console.log(X);
145
+ console.log("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^");
146
+ }
147
+ demo.testProperty = "a";
148
+ console.log("⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄");
149
+ console.log("INVARIANT OK");
150
+ console.log("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^");
151
+ demo.testParamvalueAndReturnvalue("holla");
152
+ console.log("⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄");
153
+ console.log("PARAMETER- & RETURNVALUE OK");
154
+ console.log("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^");
155
+ try {
156
+ demo.testParamvalueAndReturnvalue("yyyy");
157
+ }
158
+ catch (X) {
159
+ console.log("⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄");
160
+ console.log("PARAMETER- & RETURNVALUE Infringement", "OK");
161
+ console.log(X);
162
+ console.log("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^");
163
+ }
164
+ demo.testReturnvalue("xxxx");
165
+ console.log("⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄");
166
+ console.log("RETURNVALUE OK");
167
+ console.log("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^");
168
+ try {
169
+ demo.testReturnvalue("yyyy");
170
+ }
171
+ catch (X) {
172
+ console.log("⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄");
173
+ console.log("RETURNVALUE Infringement", "OK");
174
+ console.log(X);
175
+ console.log("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^");
176
+ }
177
+ demo.testEQAndPath(document.createElement("select"));
178
+ console.log("⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄");
179
+ console.log("EQ with Path Infringement OK");
180
+ console.log("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^");
181
+ try {
182
+ demo.testEQAndPathWithInversion(document.createElement("select"));
183
+ }
184
+ catch (X) {
185
+ console.log("⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄");
186
+ console.log("EQ with Path and Inversion Infringement OK");
187
+ console.log(X);
188
+ console.log("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^");
189
+ }
190
+ demo.testTYPE("x");
191
+ console.log("⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄");
192
+ console.log("TYPE OK");
193
+ console.log("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^");
194
+ try {
195
+ demo.testTYPE(0);
196
+ }
197
+ catch (X) {
198
+ console.log("⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄");
199
+ console.log("TYPE Infringement OK");
200
+ console.log(X);
201
+ console.log("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^");
202
+ }
203
+ demo.testAE(["11", "10", "b"]);
204
+ console.log("⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄");
205
+ console.log("AE OK");
206
+ console.log("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^");
207
+ try {
208
+ demo.testAE(["11", 11, "b"]);
209
+ }
210
+ catch (X) {
211
+ console.log("⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄");
212
+ console.log("AE Infringement OK");
213
+ console.log(X);
214
+ console.log("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^");
215
+ }
216
+ demo.testREGEXWithAE(["+1d", "NOW", "-10y"]);
217
+ console.log("⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄");
218
+ console.log("REGEX with AE OK");
219
+ console.log("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^");
220
+ try {
221
+ demo.testREGEXWithAE(["+1d", "+5d", "-x10y"]);
222
+ }
223
+ catch (X) {
224
+ console.log("⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄");
225
+ console.log("REGEX with AE Infringement OK");
226
+ console.log(X);
227
+ console.log("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^");
228
+ }
229
+ demo.testINSTANCE(new Date());
230
+ console.log("⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄");
231
+ console.log("INSTANCE OK");
232
+ console.log("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^");
233
+ try {
234
+ demo.testINSTANCE(demo);
235
+ }
236
+ catch (X) {
237
+ console.log("⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄");
238
+ console.log("INSTANCE Infringement OK");
239
+ console.log(X);
240
+ console.log("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^");
241
+ }
242
+ demo.testAERange([11, "abc", "abc"]);
243
+ console.log("⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄");
244
+ console.log("AE Range OK");
245
+ console.log("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^");
246
+ try {
247
+ demo.testAERange([11, "abc", /a/g]);
248
+ }
249
+ catch (X) {
250
+ console.log("⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄");
251
+ console.log("AE Range Infringement OK");
252
+ console.log(X);
253
+ console.log("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^");
254
+ }
255
+ demo.testAEIndex([11, "abc", "abc"]);
256
+ console.log("⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄");
257
+ console.log("AE Index OK");
258
+ console.log("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^");
259
+ try {
260
+ demo.testAEIndex(["11", 12, "/a/g"]);
261
+ }
262
+ catch (X) {
263
+ console.log("⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄");
264
+ console.log("AE Index Infringement OK");
265
+ console.log(X);
266
+ console.log("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^");
267
+ }