typia 6.3.3 → 6.4.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.
- package/lib/TypeGuardError.mjs +26 -0
- package/lib/TypeGuardError.mjs.map +1 -0
- package/lib/_external/node_modules_drange_lib/index.mjs +180 -0
- package/lib/_external/node_modules_drange_lib/index.mjs.map +1 -0
- package/lib/_external/node_modules_randexp_lib/randexp.mjs +270 -0
- package/lib/_external/node_modules_randexp_lib/randexp.mjs.map +1 -0
- package/lib/_external/node_modules_ret_lib/index.mjs +296 -0
- package/lib/_external/node_modules_ret_lib/index.mjs.map +1 -0
- package/lib/_external/node_modules_ret_lib/positions.mjs +11 -0
- package/lib/_external/node_modules_ret_lib/positions.mjs.map +1 -0
- package/lib/_external/node_modules_ret_lib/sets.mjs +55 -0
- package/lib/_external/node_modules_ret_lib/sets.mjs.map +1 -0
- package/lib/_external/node_modules_ret_lib/types.mjs +13 -0
- package/lib/_external/node_modules_ret_lib/types.mjs.map +1 -0
- package/lib/_external/node_modules_ret_lib/util.mjs +116 -0
- package/lib/_external/node_modules_ret_lib/util.mjs.map +1 -0
- package/lib/_virtual/_commonjsHelpers.mjs +6 -0
- package/lib/_virtual/_commonjsHelpers.mjs.map +1 -0
- package/lib/_virtual/index.mjs +4 -0
- package/lib/_virtual/index.mjs.map +1 -0
- package/lib/_virtual/positions.mjs +4 -0
- package/lib/_virtual/positions.mjs.map +1 -0
- package/lib/_virtual/sets.mjs +4 -0
- package/lib/_virtual/sets.mjs.map +1 -0
- package/lib/_virtual/util.mjs +4 -0
- package/lib/_virtual/util.mjs.map +1 -0
- package/lib/functional/Namespace/functional.mjs +8 -0
- package/lib/functional/Namespace/functional.mjs.map +1 -0
- package/lib/functional/Namespace/http.mjs +12 -0
- package/lib/functional/Namespace/http.mjs.map +1 -0
- package/lib/functional/Namespace/index.mjs +54 -0
- package/lib/functional/Namespace/index.mjs.map +1 -0
- package/lib/functional/Namespace/json.mjs +18 -0
- package/lib/functional/Namespace/json.mjs.map +1 -0
- package/lib/functional/Namespace/misc.mjs +16 -0
- package/lib/functional/Namespace/misc.mjs.map +1 -0
- package/lib/functional/Namespace/notations.mjs +24 -0
- package/lib/functional/Namespace/notations.mjs.map +1 -0
- package/lib/functional/Namespace/protobuf.mjs +22 -0
- package/lib/functional/Namespace/protobuf.mjs.map +1 -0
- package/lib/functional/_FormDataReader/_FormDataReader.mjs +64 -0
- package/lib/functional/_FormDataReader/_FormDataReader.mjs.map +1 -0
- package/lib/functional/_HeadersReader/_HeadersReader.mjs +25 -0
- package/lib/functional/_HeadersReader/_HeadersReader.mjs.map +1 -0
- package/lib/functional/_ParameterReader/_ParameterReader.mjs +25 -0
- package/lib/functional/_ParameterReader/_ParameterReader.mjs.map +1 -0
- package/lib/functional/_ProtobufReader.mjs +177 -0
- package/lib/functional/_ProtobufReader.mjs.map +1 -0
- package/lib/functional/_ProtobufSizer.mjs +133 -0
- package/lib/functional/_ProtobufSizer.mjs.map +1 -0
- package/lib/functional/_ProtobufWriter.mjs +125 -0
- package/lib/functional/_ProtobufWriter.mjs.map +1 -0
- package/lib/functional/_QueryReader/_QueryReader.mjs +38 -0
- package/lib/functional/_QueryReader/_QueryReader.mjs.map +1 -0
- package/lib/functional/_any.mjs +6 -0
- package/lib/functional/_any.mjs.map +1 -0
- package/lib/functional/_clone.mjs +4 -0
- package/lib/functional/_clone.mjs.map +1 -0
- package/lib/functional/_convention.mjs +37 -0
- package/lib/functional/_convention.mjs.map +1 -0
- package/lib/functional/_every.mjs +10 -0
- package/lib/functional/_every.mjs.map +1 -0
- package/lib/functional/_guard.mjs +18 -0
- package/lib/functional/_guard.mjs.map +1 -0
- package/lib/functional/_is_between.mjs +4 -0
- package/lib/functional/_is_between.mjs.map +1 -0
- package/lib/functional/_join.mjs +44 -0
- package/lib/functional/_join.mjs.map +1 -0
- package/lib/functional/_number.mjs +15 -0
- package/lib/functional/_number.mjs.map +1 -0
- package/lib/functional/_report.mjs +16 -0
- package/lib/functional/_report.mjs.map +1 -0
- package/lib/functional/_rest.mjs +6 -0
- package/lib/functional/_rest.mjs.map +1 -0
- package/lib/functional/_stoll.mjs +12 -0
- package/lib/functional/_stoll.mjs.map +1 -0
- package/lib/functional/_string.mjs +41 -0
- package/lib/functional/_string.mjs.map +1 -0
- package/lib/functional/_strlen.mjs +11 -0
- package/lib/functional/_strlen.mjs.map +1 -0
- package/lib/functional/_tail.mjs +7 -0
- package/lib/functional/_tail.mjs.map +1 -0
- package/lib/functional/_throws.mjs +11 -0
- package/lib/functional/_throws.mjs.map +1 -0
- package/lib/functional/is.mjs +13 -0
- package/lib/functional/is.mjs.map +1 -0
- package/lib/functional.mjs +150 -0
- package/lib/functional.mjs.map +1 -0
- package/lib/http.mjs +239 -0
- package/lib/http.mjs.map +1 -0
- package/lib/index.mjs +23 -2681
- package/lib/index.mjs.map +1 -1
- package/lib/json.mjs +126 -0
- package/lib/json.mjs.map +1 -0
- package/lib/misc.mjs +154 -0
- package/lib/misc.mjs.map +1 -0
- package/lib/module.mjs +161 -0
- package/lib/module.mjs.map +1 -0
- package/lib/notations.mjs +222 -0
- package/lib/notations.mjs.map +1 -0
- package/lib/protobuf.mjs +157 -0
- package/lib/protobuf.mjs.map +1 -0
- package/lib/reflect.mjs +19 -0
- package/lib/reflect.mjs.map +1 -0
- package/lib/tags/index.mjs +2 -0
- package/lib/tags/index.mjs.map +1 -0
- package/lib/utils/NamingConvention/NamingConvention.mjs +98 -0
- package/lib/utils/NamingConvention/NamingConvention.mjs.map +1 -0
- package/lib/utils/RandomGenerator/RandomGenerator.mjs +104 -0
- package/lib/utils/RandomGenerator/RandomGenerator.mjs.map +1 -0
- package/lib/utils/StringUtil/StringUtil.mjs +4 -0
- package/lib/utils/StringUtil/StringUtil.mjs.map +1 -0
- package/package.json +5 -6
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
class TypeGuardError extends Error {
|
|
2
|
+
method;
|
|
3
|
+
path;
|
|
4
|
+
expected;
|
|
5
|
+
value;
|
|
6
|
+
fake_expected_typed_value_;
|
|
7
|
+
constructor(props) {
|
|
8
|
+
// MESSAGE CONSTRUCTION
|
|
9
|
+
super(props.message ||
|
|
10
|
+
`Error on ${props.method}(): invalid type${props.path ? ` on ${props.path}` : ""}, expect to be ${props.expected}`);
|
|
11
|
+
// INHERITANCE POLYFILL
|
|
12
|
+
const proto = new.target.prototype;
|
|
13
|
+
if (Object.setPrototypeOf)
|
|
14
|
+
Object.setPrototypeOf(this, proto);
|
|
15
|
+
else
|
|
16
|
+
this.__proto__ = proto;
|
|
17
|
+
// ASSIGN MEMBERS
|
|
18
|
+
this.method = props.method;
|
|
19
|
+
this.path = props.path;
|
|
20
|
+
this.expected = props.expected;
|
|
21
|
+
this.value = props.value;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export { TypeGuardError };
|
|
26
|
+
//# sourceMappingURL=TypeGuardError.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TypeGuardError.mjs","sources":["../src/TypeGuardError.ts"],"sourcesContent":[null],"names":[],"mappings":"AAAM,MAAO,cAAwB,SAAQ,KAAK,CAAA;AAChC,IAAA,MAAM,CAAS;AACf,IAAA,IAAI,CAAqB;AACzB,IAAA,QAAQ,CAAS;AACjB,IAAA,KAAK,CAAM;AACR,IAAA,0BAA0B,CAAiB;AAE9D,IAAA,WAAA,CAAmB,KAA4B,EAAA;;QAE7C,KAAK,CACH,KAAK,CAAC,OAAO;YACX,CAAY,SAAA,EAAA,KAAK,CAAC,MAAM,CACtB,gBAAA,EAAA,KAAK,CAAC,IAAI,GAAG,CAAO,IAAA,EAAA,KAAK,CAAC,IAAI,CAAA,CAAE,GAAG,EACrC,CAAkB,eAAA,EAAA,KAAK,CAAC,QAAQ,CAAE,CAAA,CACrC,CAAC;;AAGF,QAAA,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC;QACnC,IAAI,MAAM,CAAC,cAAc;AAAE,YAAA,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;;AACxD,YAAA,IAAY,CAAC,SAAS,GAAG,KAAK,CAAC;;AAGrC,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;AAC3B,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;AACvB,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;AAC/B,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;KAC1B;AACF;;;;"}
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
/* eslint indent: 4 */
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
// Private helper class
|
|
5
|
+
class SubRange {
|
|
6
|
+
constructor(low, high) {
|
|
7
|
+
this.low = low;
|
|
8
|
+
this.high = high;
|
|
9
|
+
this.length = 1 + high - low;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
overlaps(range) {
|
|
13
|
+
return !(this.high < range.low || this.low > range.high);
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
touches(range) {
|
|
17
|
+
return !(this.high + 1 < range.low || this.low - 1 > range.high);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
// Returns inclusive combination of SubRanges as a SubRange.
|
|
21
|
+
add(range) {
|
|
22
|
+
return new SubRange(
|
|
23
|
+
Math.min(this.low, range.low),
|
|
24
|
+
Math.max(this.high, range.high)
|
|
25
|
+
);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
// Returns subtraction of SubRanges as an array of SubRanges.
|
|
29
|
+
// (There's a case where subtraction divides it in 2)
|
|
30
|
+
subtract(range) {
|
|
31
|
+
if (range.low <= this.low && range.high >= this.high) {
|
|
32
|
+
return [];
|
|
33
|
+
} else if (range.low > this.low && range.high < this.high) {
|
|
34
|
+
return [
|
|
35
|
+
new SubRange(this.low, range.low - 1),
|
|
36
|
+
new SubRange(range.high + 1, this.high)
|
|
37
|
+
];
|
|
38
|
+
} else if (range.low <= this.low) {
|
|
39
|
+
return [new SubRange(range.high + 1, this.high)];
|
|
40
|
+
} else {
|
|
41
|
+
return [new SubRange(this.low, range.low - 1)];
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
toString() {
|
|
46
|
+
return this.low == this.high ?
|
|
47
|
+
this.low.toString() : this.low + '-' + this.high;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
class DRange {
|
|
53
|
+
constructor(a, b) {
|
|
54
|
+
this.ranges = [];
|
|
55
|
+
this.length = 0;
|
|
56
|
+
if (a != null) this.add(a, b);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
_update_length() {
|
|
60
|
+
this.length = this.ranges.reduce((previous, range) => {
|
|
61
|
+
return previous + range.length;
|
|
62
|
+
}, 0);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
add(a, b) {
|
|
66
|
+
var _add = (subrange) => {
|
|
67
|
+
var i = 0;
|
|
68
|
+
while (i < this.ranges.length && !subrange.touches(this.ranges[i])) {
|
|
69
|
+
i++;
|
|
70
|
+
}
|
|
71
|
+
var newRanges = this.ranges.slice(0, i);
|
|
72
|
+
while (i < this.ranges.length && subrange.touches(this.ranges[i])) {
|
|
73
|
+
subrange = subrange.add(this.ranges[i]);
|
|
74
|
+
i++;
|
|
75
|
+
}
|
|
76
|
+
newRanges.push(subrange);
|
|
77
|
+
this.ranges = newRanges.concat(this.ranges.slice(i));
|
|
78
|
+
this._update_length();
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
if (a instanceof DRange) {
|
|
82
|
+
a.ranges.forEach(_add);
|
|
83
|
+
} else {
|
|
84
|
+
if (b == null) b = a;
|
|
85
|
+
_add(new SubRange(a, b));
|
|
86
|
+
}
|
|
87
|
+
return this;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
subtract(a, b) {
|
|
91
|
+
var _subtract = (subrange) => {
|
|
92
|
+
var i = 0;
|
|
93
|
+
while (i < this.ranges.length && !subrange.overlaps(this.ranges[i])) {
|
|
94
|
+
i++;
|
|
95
|
+
}
|
|
96
|
+
var newRanges = this.ranges.slice(0, i);
|
|
97
|
+
while (i < this.ranges.length && subrange.overlaps(this.ranges[i])) {
|
|
98
|
+
newRanges = newRanges.concat(this.ranges[i].subtract(subrange));
|
|
99
|
+
i++;
|
|
100
|
+
}
|
|
101
|
+
this.ranges = newRanges.concat(this.ranges.slice(i));
|
|
102
|
+
this._update_length();
|
|
103
|
+
};
|
|
104
|
+
|
|
105
|
+
if (a instanceof DRange) {
|
|
106
|
+
a.ranges.forEach(_subtract);
|
|
107
|
+
} else {
|
|
108
|
+
if (b == null) b = a;
|
|
109
|
+
_subtract(new SubRange(a, b));
|
|
110
|
+
}
|
|
111
|
+
return this;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
intersect(a, b) {
|
|
115
|
+
var newRanges = [];
|
|
116
|
+
var _intersect = (subrange) => {
|
|
117
|
+
var i = 0;
|
|
118
|
+
while (i < this.ranges.length && !subrange.overlaps(this.ranges[i])) {
|
|
119
|
+
i++;
|
|
120
|
+
}
|
|
121
|
+
while (i < this.ranges.length && subrange.overlaps(this.ranges[i])) {
|
|
122
|
+
var low = Math.max(this.ranges[i].low, subrange.low);
|
|
123
|
+
var high = Math.min(this.ranges[i].high, subrange.high);
|
|
124
|
+
newRanges.push(new SubRange(low, high));
|
|
125
|
+
i++;
|
|
126
|
+
}
|
|
127
|
+
};
|
|
128
|
+
|
|
129
|
+
if (a instanceof DRange) {
|
|
130
|
+
a.ranges.forEach(_intersect);
|
|
131
|
+
} else {
|
|
132
|
+
if (b == null) b = a;
|
|
133
|
+
_intersect(new SubRange(a, b));
|
|
134
|
+
}
|
|
135
|
+
this.ranges = newRanges;
|
|
136
|
+
this._update_length();
|
|
137
|
+
return this;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
index(index) {
|
|
141
|
+
var i = 0;
|
|
142
|
+
while (i < this.ranges.length && this.ranges[i].length <= index) {
|
|
143
|
+
index -= this.ranges[i].length;
|
|
144
|
+
i++;
|
|
145
|
+
}
|
|
146
|
+
return this.ranges[i].low + index;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
toString() {
|
|
150
|
+
return '[ ' + this.ranges.join(', ') + ' ]';
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
clone() {
|
|
154
|
+
return new DRange(this);
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
numbers() {
|
|
158
|
+
return this.ranges.reduce((result, subrange) => {
|
|
159
|
+
var i = subrange.low;
|
|
160
|
+
while (i <= subrange.high) {
|
|
161
|
+
result.push(i);
|
|
162
|
+
i++;
|
|
163
|
+
}
|
|
164
|
+
return result;
|
|
165
|
+
}, []);
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
subranges() {
|
|
169
|
+
return this.ranges.map((subrange) => ({
|
|
170
|
+
low: subrange.low,
|
|
171
|
+
high: subrange.high,
|
|
172
|
+
length: 1 + subrange.high - subrange.low
|
|
173
|
+
}));
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
var lib = DRange;
|
|
178
|
+
|
|
179
|
+
export { lib as l };
|
|
180
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../../node_modules/drange/lib/index.js"],"sourcesContent":["'use strict';\n/* eslint indent: 4 */\n\n\n// Private helper class\nclass SubRange {\n constructor(low, high) {\n this.low = low;\n this.high = high;\n this.length = 1 + high - low;\n }\n\n overlaps(range) {\n return !(this.high < range.low || this.low > range.high);\n }\n\n touches(range) {\n return !(this.high + 1 < range.low || this.low - 1 > range.high);\n }\n\n // Returns inclusive combination of SubRanges as a SubRange.\n add(range) {\n return new SubRange(\n Math.min(this.low, range.low),\n Math.max(this.high, range.high)\n );\n }\n\n // Returns subtraction of SubRanges as an array of SubRanges.\n // (There's a case where subtraction divides it in 2)\n subtract(range) {\n if (range.low <= this.low && range.high >= this.high) {\n return [];\n } else if (range.low > this.low && range.high < this.high) {\n return [\n new SubRange(this.low, range.low - 1),\n new SubRange(range.high + 1, this.high)\n ];\n } else if (range.low <= this.low) {\n return [new SubRange(range.high + 1, this.high)];\n } else {\n return [new SubRange(this.low, range.low - 1)];\n }\n }\n\n toString() {\n return this.low == this.high ?\n this.low.toString() : this.low + '-' + this.high;\n }\n}\n\n\nclass DRange {\n constructor(a, b) {\n this.ranges = [];\n this.length = 0;\n if (a != null) this.add(a, b);\n }\n\n _update_length() {\n this.length = this.ranges.reduce((previous, range) => {\n return previous + range.length;\n }, 0);\n }\n\n add(a, b) {\n var _add = (subrange) => {\n var i = 0;\n while (i < this.ranges.length && !subrange.touches(this.ranges[i])) {\n i++;\n }\n var newRanges = this.ranges.slice(0, i);\n while (i < this.ranges.length && subrange.touches(this.ranges[i])) {\n subrange = subrange.add(this.ranges[i]);\n i++;\n }\n newRanges.push(subrange);\n this.ranges = newRanges.concat(this.ranges.slice(i));\n this._update_length();\n }\n\n if (a instanceof DRange) {\n a.ranges.forEach(_add);\n } else {\n if (b == null) b = a;\n _add(new SubRange(a, b));\n }\n return this;\n }\n\n subtract(a, b) {\n var _subtract = (subrange) => {\n var i = 0;\n while (i < this.ranges.length && !subrange.overlaps(this.ranges[i])) {\n i++;\n }\n var newRanges = this.ranges.slice(0, i);\n while (i < this.ranges.length && subrange.overlaps(this.ranges[i])) {\n newRanges = newRanges.concat(this.ranges[i].subtract(subrange));\n i++;\n }\n this.ranges = newRanges.concat(this.ranges.slice(i));\n this._update_length();\n };\n\n if (a instanceof DRange) {\n a.ranges.forEach(_subtract);\n } else {\n if (b == null) b = a;\n _subtract(new SubRange(a, b));\n }\n return this;\n }\n\n intersect(a, b) {\n var newRanges = [];\n var _intersect = (subrange) => {\n var i = 0;\n while (i < this.ranges.length && !subrange.overlaps(this.ranges[i])) {\n i++;\n }\n while (i < this.ranges.length && subrange.overlaps(this.ranges[i])) {\n var low = Math.max(this.ranges[i].low, subrange.low);\n var high = Math.min(this.ranges[i].high, subrange.high);\n newRanges.push(new SubRange(low, high));\n i++;\n }\n };\n\n if (a instanceof DRange) {\n a.ranges.forEach(_intersect);\n } else {\n if (b == null) b = a;\n _intersect(new SubRange(a, b));\n }\n this.ranges = newRanges;\n this._update_length();\n return this;\n }\n\n index(index) {\n var i = 0;\n while (i < this.ranges.length && this.ranges[i].length <= index) {\n index -= this.ranges[i].length;\n i++;\n }\n return this.ranges[i].low + index;\n }\n\n toString() {\n return '[ ' + this.ranges.join(', ') + ' ]';\n }\n\n clone() {\n return new DRange(this);\n }\n\n numbers() {\n return this.ranges.reduce((result, subrange) => {\n var i = subrange.low;\n while (i <= subrange.high) {\n result.push(i);\n i++;\n }\n return result;\n }, []);\n }\n\n subranges() {\n return this.ranges.map((subrange) => ({\n low: subrange.low,\n high: subrange.high,\n length: 1 + subrange.high - subrange.low\n }));\n }\n}\n\nmodule.exports = DRange;\n"],"names":[],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1,270 @@
|
|
|
1
|
+
import { getDefaultExportFromCjs } from '../../_virtual/_commonjsHelpers.mjs';
|
|
2
|
+
import { l as libExports } from '../node_modules_ret_lib/index.mjs';
|
|
3
|
+
import { l as lib } from '../node_modules_drange_lib/index.mjs';
|
|
4
|
+
|
|
5
|
+
const ret = libExports;
|
|
6
|
+
const DRange = lib;
|
|
7
|
+
const types = ret.types;
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
var randexp = class RandExp {
|
|
11
|
+
/**
|
|
12
|
+
* @constructor
|
|
13
|
+
* @param {RegExp|String} regexp
|
|
14
|
+
* @param {String} m
|
|
15
|
+
*/
|
|
16
|
+
constructor(regexp, m) {
|
|
17
|
+
this._setDefaults(regexp);
|
|
18
|
+
if (regexp instanceof RegExp) {
|
|
19
|
+
this.ignoreCase = regexp.ignoreCase;
|
|
20
|
+
this.multiline = regexp.multiline;
|
|
21
|
+
regexp = regexp.source;
|
|
22
|
+
|
|
23
|
+
} else if (typeof regexp === 'string') {
|
|
24
|
+
this.ignoreCase = m && m.indexOf('i') !== -1;
|
|
25
|
+
this.multiline = m && m.indexOf('m') !== -1;
|
|
26
|
+
} else {
|
|
27
|
+
throw new Error('Expected a regexp or string');
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
this.tokens = ret(regexp);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Checks if some custom properties have been set for this regexp.
|
|
36
|
+
*
|
|
37
|
+
* @param {RandExp} randexp
|
|
38
|
+
* @param {RegExp} regexp
|
|
39
|
+
*/
|
|
40
|
+
_setDefaults(regexp) {
|
|
41
|
+
// When a repetitional token has its max set to Infinite,
|
|
42
|
+
// randexp won't actually generate a random amount between min and Infinite
|
|
43
|
+
// instead it will see Infinite as min + 100.
|
|
44
|
+
this.max = regexp.max != null ? regexp.max :
|
|
45
|
+
RandExp.prototype.max != null ? RandExp.prototype.max : 100;
|
|
46
|
+
|
|
47
|
+
// This allows expanding to include additional characters
|
|
48
|
+
// for instance: RandExp.defaultRange.add(0, 65535);
|
|
49
|
+
this.defaultRange = regexp.defaultRange ?
|
|
50
|
+
regexp.defaultRange : this.defaultRange.clone();
|
|
51
|
+
|
|
52
|
+
if (regexp.randInt) {
|
|
53
|
+
this.randInt = regexp.randInt;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* Generates the random string.
|
|
60
|
+
*
|
|
61
|
+
* @return {String}
|
|
62
|
+
*/
|
|
63
|
+
gen() {
|
|
64
|
+
return this._gen(this.tokens, []);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* Generate random string modeled after given tokens.
|
|
70
|
+
*
|
|
71
|
+
* @param {Object} token
|
|
72
|
+
* @param {Array.<String>} groups
|
|
73
|
+
* @return {String}
|
|
74
|
+
*/
|
|
75
|
+
_gen(token, groups) {
|
|
76
|
+
var stack, str, n, i, l;
|
|
77
|
+
|
|
78
|
+
switch (token.type) {
|
|
79
|
+
case types.ROOT:
|
|
80
|
+
case types.GROUP:
|
|
81
|
+
// Ignore lookaheads for now.
|
|
82
|
+
if (token.followedBy || token.notFollowedBy) { return ''; }
|
|
83
|
+
|
|
84
|
+
// Insert placeholder until group string is generated.
|
|
85
|
+
if (token.remember && token.groupNumber === undefined) {
|
|
86
|
+
token.groupNumber = groups.push(null) - 1;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
stack = token.options ?
|
|
90
|
+
this._randSelect(token.options) : token.stack;
|
|
91
|
+
|
|
92
|
+
str = '';
|
|
93
|
+
for (i = 0, l = stack.length; i < l; i++) {
|
|
94
|
+
str += this._gen(stack[i], groups);
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
if (token.remember) {
|
|
98
|
+
groups[token.groupNumber] = str;
|
|
99
|
+
}
|
|
100
|
+
return str;
|
|
101
|
+
|
|
102
|
+
case types.POSITION:
|
|
103
|
+
// Do nothing for now.
|
|
104
|
+
return '';
|
|
105
|
+
|
|
106
|
+
case types.SET:
|
|
107
|
+
var expandedSet = this._expand(token);
|
|
108
|
+
if (!expandedSet.length) { return ''; }
|
|
109
|
+
return String.fromCharCode(this._randSelect(expandedSet));
|
|
110
|
+
|
|
111
|
+
case types.REPETITION:
|
|
112
|
+
// Randomly generate number between min and max.
|
|
113
|
+
n = this.randInt(token.min,
|
|
114
|
+
token.max === Infinity ? token.min + this.max : token.max);
|
|
115
|
+
|
|
116
|
+
str = '';
|
|
117
|
+
for (i = 0; i < n; i++) {
|
|
118
|
+
str += this._gen(token.value, groups);
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
return str;
|
|
122
|
+
|
|
123
|
+
case types.REFERENCE:
|
|
124
|
+
return groups[token.value - 1] || '';
|
|
125
|
+
|
|
126
|
+
case types.CHAR:
|
|
127
|
+
var code = this.ignoreCase && this._randBool() ?
|
|
128
|
+
this._toOtherCase(token.value) : token.value;
|
|
129
|
+
return String.fromCharCode(code);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
|
|
134
|
+
/**
|
|
135
|
+
* If code is alphabetic, converts to other case.
|
|
136
|
+
* If not alphabetic, returns back code.
|
|
137
|
+
*
|
|
138
|
+
* @param {Number} code
|
|
139
|
+
* @return {Number}
|
|
140
|
+
*/
|
|
141
|
+
_toOtherCase(code) {
|
|
142
|
+
return code + (97 <= code && code <= 122 ? -32 :
|
|
143
|
+
65 <= code && code <= 90 ? 32 : 0);
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
|
|
147
|
+
/**
|
|
148
|
+
* Randomly returns a true or false value.
|
|
149
|
+
*
|
|
150
|
+
* @return {Boolean}
|
|
151
|
+
*/
|
|
152
|
+
_randBool() {
|
|
153
|
+
return !this.randInt(0, 1);
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
|
|
157
|
+
/**
|
|
158
|
+
* Randomly selects and returns a value from the array.
|
|
159
|
+
*
|
|
160
|
+
* @param {Array.<Object>} arr
|
|
161
|
+
* @return {Object}
|
|
162
|
+
*/
|
|
163
|
+
_randSelect(arr) {
|
|
164
|
+
if (arr instanceof DRange) {
|
|
165
|
+
return arr.index(this.randInt(0, arr.length - 1));
|
|
166
|
+
}
|
|
167
|
+
return arr[this.randInt(0, arr.length - 1)];
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
|
|
171
|
+
/**
|
|
172
|
+
* expands a token to a DiscontinuousRange of characters which has a
|
|
173
|
+
* length and an index function (for random selecting)
|
|
174
|
+
*
|
|
175
|
+
* @param {Object} token
|
|
176
|
+
* @return {DiscontinuousRange}
|
|
177
|
+
*/
|
|
178
|
+
_expand(token) {
|
|
179
|
+
if (token.type === ret.types.CHAR) {
|
|
180
|
+
return new DRange(token.value);
|
|
181
|
+
} else if (token.type === ret.types.RANGE) {
|
|
182
|
+
return new DRange(token.from, token.to);
|
|
183
|
+
} else {
|
|
184
|
+
let drange = new DRange();
|
|
185
|
+
for (let i = 0; i < token.set.length; i++) {
|
|
186
|
+
let subrange = this._expand(token.set[i]);
|
|
187
|
+
drange.add(subrange);
|
|
188
|
+
if (this.ignoreCase) {
|
|
189
|
+
for (let j = 0; j < subrange.length; j++) {
|
|
190
|
+
let code = subrange.index(j);
|
|
191
|
+
let otherCaseCode = this._toOtherCase(code);
|
|
192
|
+
if (code !== otherCaseCode) {
|
|
193
|
+
drange.add(otherCaseCode);
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
if (token.not) {
|
|
199
|
+
return this.defaultRange.clone().subtract(drange);
|
|
200
|
+
} else {
|
|
201
|
+
return this.defaultRange.clone().intersect(drange);
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
|
|
207
|
+
/**
|
|
208
|
+
* Randomly generates and returns a number between a and b (inclusive).
|
|
209
|
+
*
|
|
210
|
+
* @param {Number} a
|
|
211
|
+
* @param {Number} b
|
|
212
|
+
* @return {Number}
|
|
213
|
+
*/
|
|
214
|
+
randInt(a, b) {
|
|
215
|
+
return a + Math.floor(Math.random() * (1 + b - a));
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
|
|
219
|
+
/**
|
|
220
|
+
* Default range of characters to generate from.
|
|
221
|
+
*/
|
|
222
|
+
get defaultRange() {
|
|
223
|
+
return this._range = this._range || new DRange(32, 126);
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
set defaultRange(range) {
|
|
227
|
+
this._range = range;
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
|
|
231
|
+
/**
|
|
232
|
+
*
|
|
233
|
+
* Enables use of randexp with a shorter call.
|
|
234
|
+
*
|
|
235
|
+
* @param {RegExp|String| regexp}
|
|
236
|
+
* @param {String} m
|
|
237
|
+
* @return {String}
|
|
238
|
+
*/
|
|
239
|
+
static randexp(regexp, m) {
|
|
240
|
+
var randexp;
|
|
241
|
+
if(typeof regexp === 'string') {
|
|
242
|
+
regexp = new RegExp(regexp, m);
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
if (regexp._randexp === undefined) {
|
|
246
|
+
randexp = new RandExp(regexp, m);
|
|
247
|
+
regexp._randexp = randexp;
|
|
248
|
+
} else {
|
|
249
|
+
randexp = regexp._randexp;
|
|
250
|
+
randexp._setDefaults(regexp);
|
|
251
|
+
}
|
|
252
|
+
return randexp.gen();
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
|
|
256
|
+
/**
|
|
257
|
+
* Enables sugary /regexp/.gen syntax.
|
|
258
|
+
*/
|
|
259
|
+
static sugar() {
|
|
260
|
+
/* eshint freeze:false */
|
|
261
|
+
RegExp.prototype.gen = function() {
|
|
262
|
+
return RandExp.randexp(this);
|
|
263
|
+
};
|
|
264
|
+
}
|
|
265
|
+
};
|
|
266
|
+
|
|
267
|
+
var RandExp = /*@__PURE__*/getDefaultExportFromCjs(randexp);
|
|
268
|
+
|
|
269
|
+
export { RandExp as default };
|
|
270
|
+
//# sourceMappingURL=randexp.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"randexp.mjs","sources":["../../../node_modules/randexp/lib/randexp.js"],"sourcesContent":["const ret = require('ret');\nconst DRange = require('drange');\nconst types = ret.types;\n\n\nmodule.exports = class RandExp {\n /**\n * @constructor\n * @param {RegExp|String} regexp\n * @param {String} m\n */\n constructor(regexp, m) {\n this._setDefaults(regexp);\n if (regexp instanceof RegExp) {\n this.ignoreCase = regexp.ignoreCase;\n this.multiline = regexp.multiline;\n regexp = regexp.source;\n\n } else if (typeof regexp === 'string') {\n this.ignoreCase = m && m.indexOf('i') !== -1;\n this.multiline = m && m.indexOf('m') !== -1;\n } else {\n throw new Error('Expected a regexp or string');\n }\n\n this.tokens = ret(regexp);\n }\n\n\n /**\n * Checks if some custom properties have been set for this regexp.\n *\n * @param {RandExp} randexp\n * @param {RegExp} regexp\n */\n _setDefaults(regexp) {\n // When a repetitional token has its max set to Infinite,\n // randexp won't actually generate a random amount between min and Infinite\n // instead it will see Infinite as min + 100.\n this.max = regexp.max != null ? regexp.max :\n RandExp.prototype.max != null ? RandExp.prototype.max : 100;\n\n // This allows expanding to include additional characters\n // for instance: RandExp.defaultRange.add(0, 65535);\n this.defaultRange = regexp.defaultRange ?\n regexp.defaultRange : this.defaultRange.clone();\n\n if (regexp.randInt) {\n this.randInt = regexp.randInt;\n }\n }\n\n\n /**\n * Generates the random string.\n *\n * @return {String}\n */\n gen() {\n return this._gen(this.tokens, []);\n }\n\n\n /**\n * Generate random string modeled after given tokens.\n *\n * @param {Object} token\n * @param {Array.<String>} groups\n * @return {String}\n */\n _gen(token, groups) {\n var stack, str, n, i, l;\n\n switch (token.type) {\n case types.ROOT:\n case types.GROUP:\n // Ignore lookaheads for now.\n if (token.followedBy || token.notFollowedBy) { return ''; }\n\n // Insert placeholder until group string is generated.\n if (token.remember && token.groupNumber === undefined) {\n token.groupNumber = groups.push(null) - 1;\n }\n\n stack = token.options ?\n this._randSelect(token.options) : token.stack;\n\n str = '';\n for (i = 0, l = stack.length; i < l; i++) {\n str += this._gen(stack[i], groups);\n }\n\n if (token.remember) {\n groups[token.groupNumber] = str;\n }\n return str;\n\n case types.POSITION:\n // Do nothing for now.\n return '';\n\n case types.SET:\n var expandedSet = this._expand(token);\n if (!expandedSet.length) { return ''; }\n return String.fromCharCode(this._randSelect(expandedSet));\n\n case types.REPETITION:\n // Randomly generate number between min and max.\n n = this.randInt(token.min,\n token.max === Infinity ? token.min + this.max : token.max);\n\n str = '';\n for (i = 0; i < n; i++) {\n str += this._gen(token.value, groups);\n }\n\n return str;\n\n case types.REFERENCE:\n return groups[token.value - 1] || '';\n\n case types.CHAR:\n var code = this.ignoreCase && this._randBool() ?\n this._toOtherCase(token.value) : token.value;\n return String.fromCharCode(code);\n }\n }\n\n\n /**\n * If code is alphabetic, converts to other case.\n * If not alphabetic, returns back code.\n *\n * @param {Number} code\n * @return {Number}\n */\n _toOtherCase(code) {\n return code + (97 <= code && code <= 122 ? -32 :\n 65 <= code && code <= 90 ? 32 : 0);\n }\n\n\n /**\n * Randomly returns a true or false value.\n *\n * @return {Boolean}\n */\n _randBool() {\n return !this.randInt(0, 1);\n }\n\n\n /**\n * Randomly selects and returns a value from the array.\n *\n * @param {Array.<Object>} arr\n * @return {Object}\n */\n _randSelect(arr) {\n if (arr instanceof DRange) {\n return arr.index(this.randInt(0, arr.length - 1));\n }\n return arr[this.randInt(0, arr.length - 1)];\n }\n\n\n /**\n * expands a token to a DiscontinuousRange of characters which has a\n * length and an index function (for random selecting)\n *\n * @param {Object} token\n * @return {DiscontinuousRange}\n */\n _expand(token) {\n if (token.type === ret.types.CHAR) {\n return new DRange(token.value);\n } else if (token.type === ret.types.RANGE) {\n return new DRange(token.from, token.to);\n } else {\n let drange = new DRange();\n for (let i = 0; i < token.set.length; i++) {\n let subrange = this._expand(token.set[i]);\n drange.add(subrange);\n if (this.ignoreCase) {\n for (let j = 0; j < subrange.length; j++) {\n let code = subrange.index(j);\n let otherCaseCode = this._toOtherCase(code);\n if (code !== otherCaseCode) {\n drange.add(otherCaseCode);\n }\n }\n }\n }\n if (token.not) {\n return this.defaultRange.clone().subtract(drange);\n } else {\n return this.defaultRange.clone().intersect(drange);\n }\n }\n }\n\n\n /**\n * Randomly generates and returns a number between a and b (inclusive).\n *\n * @param {Number} a\n * @param {Number} b\n * @return {Number}\n */\n randInt(a, b) {\n return a + Math.floor(Math.random() * (1 + b - a));\n }\n\n\n /**\n * Default range of characters to generate from.\n */\n get defaultRange() {\n return this._range = this._range || new DRange(32, 126);\n }\n\n set defaultRange(range) {\n this._range = range;\n }\n\n\n /**\n *\n * Enables use of randexp with a shorter call.\n *\n * @param {RegExp|String| regexp}\n * @param {String} m\n * @return {String}\n */\n static randexp(regexp, m) {\n var randexp;\n if(typeof regexp === 'string') {\n regexp = new RegExp(regexp, m);\n }\n\n if (regexp._randexp === undefined) {\n randexp = new RandExp(regexp, m);\n regexp._randexp = randexp;\n } else {\n randexp = regexp._randexp;\n randexp._setDefaults(regexp);\n }\n return randexp.gen();\n }\n\n\n /**\n * Enables sugary /regexp/.gen syntax.\n */\n static sugar() {\n /* eshint freeze:false */\n RegExp.prototype.gen = function() {\n return RandExp.randexp(this);\n };\n }\n};\n"],"names":["require$$0","require$$1"],"mappings":"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","x_google_ignoreList":[0]}
|