oak-domain 4.0.1 → 4.0.2
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/actions/action.d.ts +16 -16
- package/lib/actions/action.js +17 -17
- package/lib/actions/relation.d.ts +5 -5
- package/lib/actions/relation.js +25 -25
- package/lib/base-app-domain/ActionAuth/Schema.d.ts +186 -186
- package/lib/base-app-domain/ActionAuth/Storage.js +39 -39
- package/lib/base-app-domain/ActionDefDict.d.ts +8 -8
- package/lib/base-app-domain/ActionDefDict.js +9 -9
- package/lib/base-app-domain/EntityDict.d.ts +28 -28
- package/lib/base-app-domain/I18n/Schema.d.ts +129 -129
- package/lib/base-app-domain/I18n/Schema.js +2 -2
- package/lib/base-app-domain/I18n/Storage.d.ts +3 -3
- package/lib/base-app-domain/I18n/Storage.js +59 -59
- package/lib/base-app-domain/Modi/Action.d.ts +10 -10
- package/lib/base-app-domain/Modi/Action.js +14 -14
- package/lib/base-app-domain/Modi/Schema.d.ts +136 -136
- package/lib/base-app-domain/Modi/Storage.js +63 -63
- package/lib/base-app-domain/ModiEntity/Schema.d.ts +384 -384
- package/lib/base-app-domain/ModiEntity/Storage.js +30 -30
- package/lib/base-app-domain/Oper/Schema.d.ts +153 -153
- package/lib/base-app-domain/Oper/Storage.js +38 -38
- package/lib/base-app-domain/OperEntity/Schema.d.ts +373 -373
- package/lib/base-app-domain/OperEntity/Storage.js +30 -30
- package/lib/base-app-domain/Path/Schema.d.ts +149 -149
- package/lib/base-app-domain/Path/Schema.js +2 -2
- package/lib/base-app-domain/Path/Storage.d.ts +3 -3
- package/lib/base-app-domain/Path/Storage.js +54 -54
- package/lib/base-app-domain/Relation/Schema.d.ts +188 -188
- package/lib/base-app-domain/Relation/Storage.js +54 -54
- package/lib/base-app-domain/Relation.d.ts +2 -2
- package/lib/base-app-domain/Relation.js +4 -4
- package/lib/base-app-domain/RelationAuth/Schema.d.ts +214 -214
- package/lib/base-app-domain/RelationAuth/Storage.js +44 -44
- package/lib/base-app-domain/Storage.js +31 -31
- package/lib/base-app-domain/User/Action.d.ts +10 -10
- package/lib/base-app-domain/User/Action.js +12 -12
- package/lib/base-app-domain/User/Schema.d.ts +210 -210
- package/lib/base-app-domain/User/Storage.js +33 -33
- package/lib/base-app-domain/UserEntityClaim/Schema.d.ts +264 -264
- package/lib/base-app-domain/UserEntityClaim/Schema.js +2 -2
- package/lib/base-app-domain/UserEntityClaim/Storage.d.ts +3 -3
- package/lib/base-app-domain/UserEntityClaim/Storage.js +37 -37
- package/lib/base-app-domain/UserEntityGrant/Schema.d.ts +131 -131
- package/lib/base-app-domain/UserEntityGrant/Storage.js +25 -25
- package/lib/base-app-domain/UserRelation/Schema.d.ts +208 -208
- package/lib/base-app-domain/UserRelation/Storage.js +56 -56
- package/lib/base-app-domain/_SubQuery.d.ts +142 -142
- package/lib/base-app-domain/index.d.ts +4 -4
- package/lib/base-app-domain/index.js +7 -7
- package/lib/checkers/index.d.ts +5 -5
- package/lib/checkers/index.js +13 -13
- package/lib/compiler/entities.d.ts +2 -2
- package/lib/compiler/entities.js +7 -7
- package/lib/compiler/env.d.ts +13 -13
- package/lib/compiler/env.js +45 -45
- package/lib/compiler/localeBuilder.d.ts +27 -27
- package/lib/compiler/localeBuilder.js +37 -8
- package/lib/compiler/routerBuilder.d.ts +1 -0
- package/lib/compiler/routerBuilder.js +257 -0
- package/lib/compiler/schemalBuilder.d.ts +27 -27
- package/lib/compiler/schemalBuilder.js +3565 -3565
- package/lib/entities/ActionAuth.d.ts +10 -10
- package/lib/entities/ActionAuth.js +31 -31
- package/lib/entities/I18n.d.ts +9 -9
- package/lib/entities/I18n.js +36 -36
- package/lib/entities/Modi.js +49 -49
- package/lib/entities/ModiEntity.js +18 -18
- package/lib/entities/Oper.js +21 -21
- package/lib/entities/OperEntity.js +18 -18
- package/lib/entities/Path.d.ts +8 -8
- package/lib/entities/Path.js +35 -35
- package/lib/entities/Relation.d.ts +8 -8
- package/lib/entities/Relation.js +35 -35
- package/lib/entities/RelationAuth.d.ts +8 -8
- package/lib/entities/RelationAuth.js +34 -34
- package/lib/entities/User.js +31 -31
- package/lib/entities/UserEntityClaim.d.ts +13 -13
- package/lib/entities/UserEntityClaim.js +17 -17
- package/lib/entities/UserEntityGrant.d.ts +9 -9
- package/lib/entities/UserEntityGrant.js +15 -15
- package/lib/entities/UserRelation.d.ts +10 -10
- package/lib/entities/UserRelation.js +38 -38
- package/lib/index.d.ts +23 -23
- package/lib/index.js +37 -37
- package/lib/store/AsyncRowStore.d.ts +65 -65
- package/lib/store/AsyncRowStore.js +176 -176
- package/lib/store/CascadeStore.d.ts +4 -1
- package/lib/store/CascadeStore.js +9 -1
- package/lib/store/RelationAuth.d.ts +96 -96
- package/lib/store/RelationAuth.js +1336 -1336
- package/lib/store/SyncRowStore.d.ts +29 -29
- package/lib/store/SyncRowStore.js +50 -50
- package/lib/store/TriggerExecutor.d.ts +41 -41
- package/lib/store/TriggerExecutor.js +1 -1
- package/lib/store/actionAuth.d.ts +4 -4
- package/lib/store/actionAuth.js +25 -25
- package/lib/store/actionDef.d.ts +10 -10
- package/lib/store/actionDef.js +4 -4
- package/lib/store/checker.d.ts +26 -26
- package/lib/store/checker.js +487 -487
- package/lib/store/filter.d.ts +85 -85
- package/lib/store/filter.js +1652 -1652
- package/lib/store/modi.d.ts +13 -13
- package/lib/store/modi.js +254 -254
- package/lib/store/relation.d.ts +12 -12
- package/lib/store/relation.js +67 -67
- package/lib/timers/oper.d.ts +18 -18
- package/lib/timers/oper.js +57 -57
- package/lib/timers/vaccum.d.ts +20 -20
- package/lib/timers/vaccum.js +111 -111
- package/lib/triggers/index.d.ts +5 -5
- package/lib/triggers/index.js +8 -8
- package/lib/types/Action.d.ts +20 -20
- package/lib/types/AppLoader.d.ts +17 -17
- package/lib/types/AppLoader.js +10 -10
- package/lib/types/Auth.d.ts +70 -70
- package/lib/types/Cluster.d.ts +5 -5
- package/lib/types/Cluster.js +2 -2
- package/lib/types/Connector.d.ts +38 -38
- package/lib/types/Connector.js +2 -2
- package/lib/types/DataType.d.ts +25 -25
- package/lib/types/DataType.js +6 -6
- package/lib/types/Demand.d.ts +89 -89
- package/lib/types/Demand.js +10 -10
- package/lib/types/Endpoint.d.ts +11 -11
- package/lib/types/Entity.d.ts +209 -209
- package/lib/types/Entity.js +15 -15
- package/lib/types/EntityDesc.d.ts +9 -9
- package/lib/types/EntityDesc.js +2 -2
- package/lib/types/Environment.d.ts +90 -90
- package/lib/types/Environment.js +2 -2
- package/lib/types/Exception.d.ts +147 -147
- package/lib/types/Exception.js +406 -406
- package/lib/types/Expression.d.ts +163 -163
- package/lib/types/Expression.js +397 -397
- package/lib/types/Geo.d.ts +18 -18
- package/lib/types/Locale.d.ts +25 -25
- package/lib/types/Logger.d.ts +6 -6
- package/lib/types/Polyfill.d.ts +24 -24
- package/lib/types/Port.d.ts +18 -18
- package/lib/types/RowStore.d.ts +19 -19
- package/lib/types/RowStore.js +33 -33
- package/lib/types/Storage.d.ts +58 -58
- package/lib/types/Style.d.ts +11 -11
- package/lib/types/Timer.d.ts +20 -20
- package/lib/types/Trigger.d.ts +118 -118
- package/lib/types/Trigger.js +35 -35
- package/lib/types/Watcher.d.ts +19 -19
- package/lib/types/index.d.ts +26 -26
- package/lib/types/index.js +29 -29
- package/lib/types/schema/DataTypes.d.ts +34 -34
- package/lib/utils/SimpleConnector.d.ts +64 -64
- package/lib/utils/SimpleConnector.js +1 -1
- package/lib/utils/assert.d.ts +1 -0
- package/lib/utils/assert.js +9 -9
- package/lib/utils/concurrent.d.ts +15 -15
- package/lib/utils/concurrent.js +63 -63
- package/lib/utils/date.js +18 -18
- package/lib/utils/domain.d.ts +1 -1
- package/lib/utils/domain.js +11 -11
- package/lib/utils/geo.js +24 -24
- package/lib/utils/lodash.d.ts +24 -24
- package/lib/utils/lodash.js +46 -46
- package/lib/utils/mask.js +34 -34
- package/lib/utils/money.d.ts +6 -6
- package/lib/utils/money.js +51 -51
- package/lib/utils/projection.d.ts +4 -4
- package/lib/utils/projection.js +15 -15
- package/lib/utils/random/random.js +19 -19
- package/lib/utils/random/random.mp.js +14 -14
- package/lib/utils/random/random.native.d.ts +1 -1
- package/lib/utils/random/random.native.js +14 -14
- package/lib/utils/random/random.web.js +11 -11
- package/lib/utils/string.d.ts +28 -28
- package/lib/utils/string.js +69 -69
- package/lib/utils/url/index.d.ts +7 -7
- package/lib/utils/url/index.js +8 -8
- package/lib/utils/url/index.mp.d.ts +3 -3
- package/lib/utils/url/index.mp.js +8 -8
- package/lib/utils/url/index.native.d.ts +12 -12
- package/lib/utils/url/index.native.js +7 -7
- package/lib/utils/url/index.web.d.ts +12 -12
- package/lib/utils/url/index.web.js +7 -7
- package/lib/utils/url/whatwg-url/index.d.ts +3 -3
- package/lib/utils/url/whatwg-url/index.js +16 -16
- package/lib/utils/url/whatwg-url/lib/URL-impl.d.ts +20 -20
- package/lib/utils/url/whatwg-url/lib/URL-impl.js +175 -175
- package/lib/utils/url/whatwg-url/lib/URL.d.ts +1 -1
- package/lib/utils/url/whatwg-url/lib/URL.js +298 -298
- package/lib/utils/url/whatwg-url/lib/URLSearchParams-impl.d.ts +19 -19
- package/lib/utils/url/whatwg-url/lib/URLSearchParams-impl.js +126 -126
- package/lib/utils/url/whatwg-url/lib/URLSearchParams.d.ts +1 -1
- package/lib/utils/url/whatwg-url/lib/URLSearchParams.js +426 -426
- package/lib/utils/url/whatwg-url/lib/infra.d.ts +12 -12
- package/lib/utils/url/whatwg-url/lib/infra.js +25 -25
- package/lib/utils/url/whatwg-url/lib/url-state-machine.d.ts +24 -24
- package/lib/utils/url/whatwg-url/lib/url-state-machine.js +1238 -1238
- package/lib/utils/url/whatwg-url/lib/urlencoded.d.ts +15 -15
- package/lib/utils/url/whatwg-url/lib/urlencoded.js +162 -162
- package/lib/utils/url/whatwg-url/lib/utils.d.ts +37 -37
- package/lib/utils/url/whatwg-url/lib/utils.js +101 -101
- package/lib/utils/uuid.d.ts +17 -17
- package/lib/utils/uuid.js +218 -218
- package/lib/utils/validator.d.ts +26 -26
- package/lib/utils/validator.js +131 -131
- package/lib/utils/version.js +21 -21
- package/package.json +2 -1
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
|
-
import { Buffer } from 'buffer';
|
|
3
|
-
declare function percentEncode(c: number): string;
|
|
4
|
-
declare function percentDecode(input: Buffer): Buffer;
|
|
5
|
-
declare function serializeUrlencoded(tuples: any[], encodingOverride?: undefined): string;
|
|
6
|
-
declare function parseUrlencoded(input: WithImplicitCoercion<ArrayBuffer | SharedArrayBuffer>): string[][];
|
|
7
|
-
declare function ucs2decode(string: string): number[];
|
|
8
|
-
declare const _default: {
|
|
9
|
-
percentEncode: typeof percentEncode;
|
|
10
|
-
percentDecode: typeof percentDecode;
|
|
11
|
-
parseUrlencoded: typeof parseUrlencoded;
|
|
12
|
-
serializeUrlencoded: typeof serializeUrlencoded;
|
|
13
|
-
ucs2decode: typeof ucs2decode;
|
|
14
|
-
};
|
|
15
|
-
export default _default;
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { Buffer } from 'buffer';
|
|
3
|
+
declare function percentEncode(c: number): string;
|
|
4
|
+
declare function percentDecode(input: Buffer): Buffer;
|
|
5
|
+
declare function serializeUrlencoded(tuples: any[], encodingOverride?: undefined): string;
|
|
6
|
+
declare function parseUrlencoded(input: WithImplicitCoercion<ArrayBuffer | SharedArrayBuffer>): string[][];
|
|
7
|
+
declare function ucs2decode(string: string): number[];
|
|
8
|
+
declare const _default: {
|
|
9
|
+
percentEncode: typeof percentEncode;
|
|
10
|
+
percentDecode: typeof percentDecode;
|
|
11
|
+
parseUrlencoded: typeof parseUrlencoded;
|
|
12
|
+
serializeUrlencoded: typeof serializeUrlencoded;
|
|
13
|
+
ucs2decode: typeof ucs2decode;
|
|
14
|
+
};
|
|
15
|
+
export default _default;
|
|
@@ -1,162 +1,162 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const buffer_1 = require("buffer");
|
|
4
|
-
const infra_1 = require("./infra");
|
|
5
|
-
function strictlySplitByteSequence(buf, cp) {
|
|
6
|
-
const list = [];
|
|
7
|
-
let last = 0;
|
|
8
|
-
let i = buf.indexOf(cp);
|
|
9
|
-
while (i >= 0) {
|
|
10
|
-
list.push(buf.slice(last, i));
|
|
11
|
-
last = i + 1;
|
|
12
|
-
i = buf.indexOf(cp, last);
|
|
13
|
-
}
|
|
14
|
-
if (last !== buf.length) {
|
|
15
|
-
list.push(buf.slice(last));
|
|
16
|
-
}
|
|
17
|
-
return list;
|
|
18
|
-
}
|
|
19
|
-
function replaceByteInByteSequence(buf, from, to) {
|
|
20
|
-
let i = buf.indexOf(from);
|
|
21
|
-
while (i >= 0) {
|
|
22
|
-
buf[i] = to;
|
|
23
|
-
i = buf.indexOf(from, i + 1);
|
|
24
|
-
}
|
|
25
|
-
return buf;
|
|
26
|
-
}
|
|
27
|
-
function percentEncode(c) {
|
|
28
|
-
let hex = c.toString(16).toUpperCase();
|
|
29
|
-
if (hex.length === 1) {
|
|
30
|
-
hex = '0' + hex;
|
|
31
|
-
}
|
|
32
|
-
return '%' + hex;
|
|
33
|
-
}
|
|
34
|
-
function percentDecode(input) {
|
|
35
|
-
const output = buffer_1.Buffer.alloc(input.byteLength);
|
|
36
|
-
let ptr = 0;
|
|
37
|
-
for (let i = 0; i < input.length; ++i) {
|
|
38
|
-
if (input[i] !== 37 ||
|
|
39
|
-
!(0, infra_1.isASCIIHex)(input[i + 1]) ||
|
|
40
|
-
!(0, infra_1.isASCIIHex)(input[i + 2])) {
|
|
41
|
-
output[ptr++] = input[i];
|
|
42
|
-
}
|
|
43
|
-
else {
|
|
44
|
-
output[ptr++] = parseInt(input.slice(i + 1, i + 3).toString(), 16);
|
|
45
|
-
i += 2;
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
return output.slice(0, ptr);
|
|
49
|
-
}
|
|
50
|
-
function parseUrlencoded2(input) {
|
|
51
|
-
const sequences = strictlySplitByteSequence(input, 38);
|
|
52
|
-
const output = [];
|
|
53
|
-
for (const bytes of sequences) {
|
|
54
|
-
if (bytes.length === 0) {
|
|
55
|
-
continue;
|
|
56
|
-
}
|
|
57
|
-
let name;
|
|
58
|
-
let value;
|
|
59
|
-
const indexOfEqual = bytes.indexOf(61);
|
|
60
|
-
if (indexOfEqual >= 0) {
|
|
61
|
-
name = bytes.slice(0, indexOfEqual);
|
|
62
|
-
value = bytes.slice(indexOfEqual + 1);
|
|
63
|
-
}
|
|
64
|
-
else {
|
|
65
|
-
name = bytes;
|
|
66
|
-
value = buffer_1.Buffer.alloc(0);
|
|
67
|
-
}
|
|
68
|
-
name = replaceByteInByteSequence(buffer_1.Buffer.from(name), 43, 32);
|
|
69
|
-
value = replaceByteInByteSequence(buffer_1.Buffer.from(value), 43, 32);
|
|
70
|
-
output.push([
|
|
71
|
-
percentDecode(name).toString(),
|
|
72
|
-
percentDecode(value).toString(),
|
|
73
|
-
]);
|
|
74
|
-
}
|
|
75
|
-
return output;
|
|
76
|
-
}
|
|
77
|
-
function serializeUrlencodedByte(input) {
|
|
78
|
-
let output = '';
|
|
79
|
-
for (const byte of input) {
|
|
80
|
-
if (byte === 32) {
|
|
81
|
-
output += '+';
|
|
82
|
-
}
|
|
83
|
-
else if (byte === 42 ||
|
|
84
|
-
byte === 45 ||
|
|
85
|
-
byte === 46 ||
|
|
86
|
-
(byte >= 48 && byte <= 57) ||
|
|
87
|
-
(byte >= 65 && byte <= 90) ||
|
|
88
|
-
byte === 95 ||
|
|
89
|
-
(byte >= 97 && byte <= 122)) {
|
|
90
|
-
output += String.fromCodePoint(byte);
|
|
91
|
-
}
|
|
92
|
-
else {
|
|
93
|
-
output += percentEncode(byte);
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
return output;
|
|
97
|
-
}
|
|
98
|
-
function serializeUrlencoded(tuples, encodingOverride = undefined) {
|
|
99
|
-
let encoding = 'utf-8';
|
|
100
|
-
if (encodingOverride !== undefined) {
|
|
101
|
-
encoding = encodingOverride;
|
|
102
|
-
}
|
|
103
|
-
let output = '';
|
|
104
|
-
for (const [i, tuple] of tuples.entries()) {
|
|
105
|
-
// TODO: handle encoding override
|
|
106
|
-
const name = serializeUrlencodedByte(buffer_1.Buffer.from(tuple[0]));
|
|
107
|
-
let value = tuple[1];
|
|
108
|
-
if (tuple.length > 2 && tuple[2] !== undefined) {
|
|
109
|
-
if (tuple[2] === 'hidden' && name === '_charset_') {
|
|
110
|
-
value = encoding;
|
|
111
|
-
}
|
|
112
|
-
else if (tuple[2] === 'file') {
|
|
113
|
-
// value is a File object
|
|
114
|
-
value = value.name;
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
value = serializeUrlencodedByte(buffer_1.Buffer.from(value));
|
|
118
|
-
if (i !== 0) {
|
|
119
|
-
output += '&';
|
|
120
|
-
}
|
|
121
|
-
output += `${name}=${value}`;
|
|
122
|
-
}
|
|
123
|
-
return output;
|
|
124
|
-
}
|
|
125
|
-
function parseUrlencoded(input) {
|
|
126
|
-
return parseUrlencoded2(buffer_1.Buffer.from(input));
|
|
127
|
-
}
|
|
128
|
-
function ucs2decode(string) {
|
|
129
|
-
const output = [];
|
|
130
|
-
let counter = 0;
|
|
131
|
-
const length = string.length;
|
|
132
|
-
while (counter < length) {
|
|
133
|
-
const value = string.charCodeAt(counter++);
|
|
134
|
-
if (value >= 0xd800 && value <= 0xdbff && counter < length) {
|
|
135
|
-
// It's a high surrogate, and there is a next character.
|
|
136
|
-
const extra = string.charCodeAt(counter++);
|
|
137
|
-
if ((extra & 0xfc00) == 0xdc00) {
|
|
138
|
-
// Low surrogate.
|
|
139
|
-
output.push(((value & 0x3ff) << 10) + (extra & 0x3ff) + 0x10000);
|
|
140
|
-
}
|
|
141
|
-
else {
|
|
142
|
-
// It's an unmatched surrogate; only append this code unit, in case the
|
|
143
|
-
// next code unit is the high surrogate of a surrogate pair.
|
|
144
|
-
output.push(value);
|
|
145
|
-
counter--;
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
else {
|
|
149
|
-
output.push(value);
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
return output;
|
|
153
|
-
}
|
|
154
|
-
exports.default = {
|
|
155
|
-
percentEncode,
|
|
156
|
-
percentDecode,
|
|
157
|
-
// application/x-www-form-urlencoded string parser
|
|
158
|
-
parseUrlencoded,
|
|
159
|
-
// application/x-www-form-urlencoded serializer
|
|
160
|
-
serializeUrlencoded,
|
|
161
|
-
ucs2decode,
|
|
162
|
-
};
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const buffer_1 = require("buffer");
|
|
4
|
+
const infra_1 = require("./infra");
|
|
5
|
+
function strictlySplitByteSequence(buf, cp) {
|
|
6
|
+
const list = [];
|
|
7
|
+
let last = 0;
|
|
8
|
+
let i = buf.indexOf(cp);
|
|
9
|
+
while (i >= 0) {
|
|
10
|
+
list.push(buf.slice(last, i));
|
|
11
|
+
last = i + 1;
|
|
12
|
+
i = buf.indexOf(cp, last);
|
|
13
|
+
}
|
|
14
|
+
if (last !== buf.length) {
|
|
15
|
+
list.push(buf.slice(last));
|
|
16
|
+
}
|
|
17
|
+
return list;
|
|
18
|
+
}
|
|
19
|
+
function replaceByteInByteSequence(buf, from, to) {
|
|
20
|
+
let i = buf.indexOf(from);
|
|
21
|
+
while (i >= 0) {
|
|
22
|
+
buf[i] = to;
|
|
23
|
+
i = buf.indexOf(from, i + 1);
|
|
24
|
+
}
|
|
25
|
+
return buf;
|
|
26
|
+
}
|
|
27
|
+
function percentEncode(c) {
|
|
28
|
+
let hex = c.toString(16).toUpperCase();
|
|
29
|
+
if (hex.length === 1) {
|
|
30
|
+
hex = '0' + hex;
|
|
31
|
+
}
|
|
32
|
+
return '%' + hex;
|
|
33
|
+
}
|
|
34
|
+
function percentDecode(input) {
|
|
35
|
+
const output = buffer_1.Buffer.alloc(input.byteLength);
|
|
36
|
+
let ptr = 0;
|
|
37
|
+
for (let i = 0; i < input.length; ++i) {
|
|
38
|
+
if (input[i] !== 37 ||
|
|
39
|
+
!(0, infra_1.isASCIIHex)(input[i + 1]) ||
|
|
40
|
+
!(0, infra_1.isASCIIHex)(input[i + 2])) {
|
|
41
|
+
output[ptr++] = input[i];
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
output[ptr++] = parseInt(input.slice(i + 1, i + 3).toString(), 16);
|
|
45
|
+
i += 2;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
return output.slice(0, ptr);
|
|
49
|
+
}
|
|
50
|
+
function parseUrlencoded2(input) {
|
|
51
|
+
const sequences = strictlySplitByteSequence(input, 38);
|
|
52
|
+
const output = [];
|
|
53
|
+
for (const bytes of sequences) {
|
|
54
|
+
if (bytes.length === 0) {
|
|
55
|
+
continue;
|
|
56
|
+
}
|
|
57
|
+
let name;
|
|
58
|
+
let value;
|
|
59
|
+
const indexOfEqual = bytes.indexOf(61);
|
|
60
|
+
if (indexOfEqual >= 0) {
|
|
61
|
+
name = bytes.slice(0, indexOfEqual);
|
|
62
|
+
value = bytes.slice(indexOfEqual + 1);
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
name = bytes;
|
|
66
|
+
value = buffer_1.Buffer.alloc(0);
|
|
67
|
+
}
|
|
68
|
+
name = replaceByteInByteSequence(buffer_1.Buffer.from(name), 43, 32);
|
|
69
|
+
value = replaceByteInByteSequence(buffer_1.Buffer.from(value), 43, 32);
|
|
70
|
+
output.push([
|
|
71
|
+
percentDecode(name).toString(),
|
|
72
|
+
percentDecode(value).toString(),
|
|
73
|
+
]);
|
|
74
|
+
}
|
|
75
|
+
return output;
|
|
76
|
+
}
|
|
77
|
+
function serializeUrlencodedByte(input) {
|
|
78
|
+
let output = '';
|
|
79
|
+
for (const byte of input) {
|
|
80
|
+
if (byte === 32) {
|
|
81
|
+
output += '+';
|
|
82
|
+
}
|
|
83
|
+
else if (byte === 42 ||
|
|
84
|
+
byte === 45 ||
|
|
85
|
+
byte === 46 ||
|
|
86
|
+
(byte >= 48 && byte <= 57) ||
|
|
87
|
+
(byte >= 65 && byte <= 90) ||
|
|
88
|
+
byte === 95 ||
|
|
89
|
+
(byte >= 97 && byte <= 122)) {
|
|
90
|
+
output += String.fromCodePoint(byte);
|
|
91
|
+
}
|
|
92
|
+
else {
|
|
93
|
+
output += percentEncode(byte);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
return output;
|
|
97
|
+
}
|
|
98
|
+
function serializeUrlencoded(tuples, encodingOverride = undefined) {
|
|
99
|
+
let encoding = 'utf-8';
|
|
100
|
+
if (encodingOverride !== undefined) {
|
|
101
|
+
encoding = encodingOverride;
|
|
102
|
+
}
|
|
103
|
+
let output = '';
|
|
104
|
+
for (const [i, tuple] of tuples.entries()) {
|
|
105
|
+
// TODO: handle encoding override
|
|
106
|
+
const name = serializeUrlencodedByte(buffer_1.Buffer.from(tuple[0]));
|
|
107
|
+
let value = tuple[1];
|
|
108
|
+
if (tuple.length > 2 && tuple[2] !== undefined) {
|
|
109
|
+
if (tuple[2] === 'hidden' && name === '_charset_') {
|
|
110
|
+
value = encoding;
|
|
111
|
+
}
|
|
112
|
+
else if (tuple[2] === 'file') {
|
|
113
|
+
// value is a File object
|
|
114
|
+
value = value.name;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
value = serializeUrlencodedByte(buffer_1.Buffer.from(value));
|
|
118
|
+
if (i !== 0) {
|
|
119
|
+
output += '&';
|
|
120
|
+
}
|
|
121
|
+
output += `${name}=${value}`;
|
|
122
|
+
}
|
|
123
|
+
return output;
|
|
124
|
+
}
|
|
125
|
+
function parseUrlencoded(input) {
|
|
126
|
+
return parseUrlencoded2(buffer_1.Buffer.from(input));
|
|
127
|
+
}
|
|
128
|
+
function ucs2decode(string) {
|
|
129
|
+
const output = [];
|
|
130
|
+
let counter = 0;
|
|
131
|
+
const length = string.length;
|
|
132
|
+
while (counter < length) {
|
|
133
|
+
const value = string.charCodeAt(counter++);
|
|
134
|
+
if (value >= 0xd800 && value <= 0xdbff && counter < length) {
|
|
135
|
+
// It's a high surrogate, and there is a next character.
|
|
136
|
+
const extra = string.charCodeAt(counter++);
|
|
137
|
+
if ((extra & 0xfc00) == 0xdc00) {
|
|
138
|
+
// Low surrogate.
|
|
139
|
+
output.push(((value & 0x3ff) << 10) + (extra & 0x3ff) + 0x10000);
|
|
140
|
+
}
|
|
141
|
+
else {
|
|
142
|
+
// It's an unmatched surrogate; only append this code unit, in case the
|
|
143
|
+
// next code unit is the high surrogate of a surrogate pair.
|
|
144
|
+
output.push(value);
|
|
145
|
+
counter--;
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
else {
|
|
149
|
+
output.push(value);
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
return output;
|
|
153
|
+
}
|
|
154
|
+
exports.default = {
|
|
155
|
+
percentEncode,
|
|
156
|
+
percentDecode,
|
|
157
|
+
// application/x-www-form-urlencoded string parser
|
|
158
|
+
parseUrlencoded,
|
|
159
|
+
// application/x-www-form-urlencoded serializer
|
|
160
|
+
serializeUrlencoded,
|
|
161
|
+
ucs2decode,
|
|
162
|
+
};
|
|
@@ -1,37 +1,37 @@
|
|
|
1
|
-
declare function isObject(value: null): boolean;
|
|
2
|
-
declare function hasOwn(obj: any, prop: PropertyKey): boolean;
|
|
3
|
-
declare function getSameObject(wrapper: any, prop: string, creator: () => any): any;
|
|
4
|
-
declare function wrapperForImpl(impl: any): any;
|
|
5
|
-
declare function implForWrapper(wrapper: any): any;
|
|
6
|
-
declare function tryWrapperForImpl(impl: any): any;
|
|
7
|
-
declare function tryImplForWrapper(wrapper: any): any;
|
|
8
|
-
declare function isArrayIndexPropName(P: any): boolean;
|
|
9
|
-
declare function isArrayBuffer(value: any): boolean;
|
|
10
|
-
declare const _default: {
|
|
11
|
-
isObject: typeof isObject;
|
|
12
|
-
hasOwn: typeof hasOwn;
|
|
13
|
-
wrapperSymbol: symbol;
|
|
14
|
-
implSymbol: symbol;
|
|
15
|
-
getSameObject: typeof getSameObject;
|
|
16
|
-
ctorRegistrySymbol: symbol;
|
|
17
|
-
wrapperForImpl: typeof wrapperForImpl;
|
|
18
|
-
implForWrapper: typeof implForWrapper;
|
|
19
|
-
tryWrapperForImpl: typeof tryWrapperForImpl;
|
|
20
|
-
tryImplForWrapper: typeof tryImplForWrapper;
|
|
21
|
-
iterInternalSymbol: symbol;
|
|
22
|
-
IteratorPrototype: any;
|
|
23
|
-
isArrayBuffer: typeof isArrayBuffer;
|
|
24
|
-
isArrayIndexPropName: typeof isArrayIndexPropName;
|
|
25
|
-
supportsPropertyIndex: symbol;
|
|
26
|
-
supportedPropertyIndices: symbol;
|
|
27
|
-
supportsPropertyName: symbol;
|
|
28
|
-
supportedPropertyNames: symbol;
|
|
29
|
-
indexedGet: symbol;
|
|
30
|
-
indexedSetNew: symbol;
|
|
31
|
-
indexedSetExisting: symbol;
|
|
32
|
-
namedGet: symbol;
|
|
33
|
-
namedSetNew: symbol;
|
|
34
|
-
namedSetExisting: symbol;
|
|
35
|
-
namedDelete: symbol;
|
|
36
|
-
};
|
|
37
|
-
export default _default;
|
|
1
|
+
declare function isObject(value: null): boolean;
|
|
2
|
+
declare function hasOwn(obj: any, prop: PropertyKey): boolean;
|
|
3
|
+
declare function getSameObject(wrapper: any, prop: string, creator: () => any): any;
|
|
4
|
+
declare function wrapperForImpl(impl: any): any;
|
|
5
|
+
declare function implForWrapper(wrapper: any): any;
|
|
6
|
+
declare function tryWrapperForImpl(impl: any): any;
|
|
7
|
+
declare function tryImplForWrapper(wrapper: any): any;
|
|
8
|
+
declare function isArrayIndexPropName(P: any): boolean;
|
|
9
|
+
declare function isArrayBuffer(value: any): boolean;
|
|
10
|
+
declare const _default: {
|
|
11
|
+
isObject: typeof isObject;
|
|
12
|
+
hasOwn: typeof hasOwn;
|
|
13
|
+
wrapperSymbol: symbol;
|
|
14
|
+
implSymbol: symbol;
|
|
15
|
+
getSameObject: typeof getSameObject;
|
|
16
|
+
ctorRegistrySymbol: symbol;
|
|
17
|
+
wrapperForImpl: typeof wrapperForImpl;
|
|
18
|
+
implForWrapper: typeof implForWrapper;
|
|
19
|
+
tryWrapperForImpl: typeof tryWrapperForImpl;
|
|
20
|
+
tryImplForWrapper: typeof tryImplForWrapper;
|
|
21
|
+
iterInternalSymbol: symbol;
|
|
22
|
+
IteratorPrototype: any;
|
|
23
|
+
isArrayBuffer: typeof isArrayBuffer;
|
|
24
|
+
isArrayIndexPropName: typeof isArrayIndexPropName;
|
|
25
|
+
supportsPropertyIndex: symbol;
|
|
26
|
+
supportedPropertyIndices: symbol;
|
|
27
|
+
supportsPropertyName: symbol;
|
|
28
|
+
supportedPropertyNames: symbol;
|
|
29
|
+
indexedGet: symbol;
|
|
30
|
+
indexedSetNew: symbol;
|
|
31
|
+
indexedSetExisting: symbol;
|
|
32
|
+
namedGet: symbol;
|
|
33
|
+
namedSetNew: symbol;
|
|
34
|
+
namedSetExisting: symbol;
|
|
35
|
+
namedDelete: symbol;
|
|
36
|
+
};
|
|
37
|
+
export default _default;
|
|
@@ -1,101 +1,101 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
// Returns "Type(value) is Object" in ES terminology.
|
|
4
|
-
function isObject(value) {
|
|
5
|
-
return typeof value === "object" && value !== null || typeof value === "function";
|
|
6
|
-
}
|
|
7
|
-
function hasOwn(obj, prop) {
|
|
8
|
-
return Object.prototype.hasOwnProperty.call(obj, prop);
|
|
9
|
-
}
|
|
10
|
-
const wrapperSymbol = Symbol("wrapper");
|
|
11
|
-
const implSymbol = Symbol("impl");
|
|
12
|
-
const sameObjectCaches = Symbol("SameObject caches");
|
|
13
|
-
const ctorRegistrySymbol = Symbol.for("[webidl2js] constructor registry");
|
|
14
|
-
function getSameObject(wrapper, prop, creator) {
|
|
15
|
-
if (!wrapper[sameObjectCaches]) {
|
|
16
|
-
wrapper[sameObjectCaches] = Object.create(null);
|
|
17
|
-
}
|
|
18
|
-
if (prop in wrapper[sameObjectCaches]) {
|
|
19
|
-
return wrapper[sameObjectCaches][prop];
|
|
20
|
-
}
|
|
21
|
-
wrapper[sameObjectCaches][prop] = creator();
|
|
22
|
-
return wrapper[sameObjectCaches][prop];
|
|
23
|
-
}
|
|
24
|
-
function wrapperForImpl(impl) {
|
|
25
|
-
return impl ? impl[wrapperSymbol] : null;
|
|
26
|
-
}
|
|
27
|
-
function implForWrapper(wrapper) {
|
|
28
|
-
return wrapper ? wrapper[implSymbol] : null;
|
|
29
|
-
}
|
|
30
|
-
function tryWrapperForImpl(impl) {
|
|
31
|
-
const wrapper = wrapperForImpl(impl);
|
|
32
|
-
return wrapper ? wrapper : impl;
|
|
33
|
-
}
|
|
34
|
-
function tryImplForWrapper(wrapper) {
|
|
35
|
-
const impl = implForWrapper(wrapper);
|
|
36
|
-
return impl ? impl : wrapper;
|
|
37
|
-
}
|
|
38
|
-
const iterInternalSymbol = Symbol("internal");
|
|
39
|
-
const IteratorPrototype = Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]()));
|
|
40
|
-
function isArrayIndexPropName(P) {
|
|
41
|
-
if (typeof P !== 'string') {
|
|
42
|
-
return false;
|
|
43
|
-
}
|
|
44
|
-
const i = P >>> 0;
|
|
45
|
-
if (i === Math.pow(2, 32) - 1) {
|
|
46
|
-
return false;
|
|
47
|
-
}
|
|
48
|
-
const s = `${i}`;
|
|
49
|
-
if (P !== s) {
|
|
50
|
-
return false;
|
|
51
|
-
}
|
|
52
|
-
return true;
|
|
53
|
-
}
|
|
54
|
-
const byteLengthGetter = Object.getOwnPropertyDescriptor(ArrayBuffer.prototype, "byteLength").get;
|
|
55
|
-
function isArrayBuffer(value) {
|
|
56
|
-
try {
|
|
57
|
-
byteLengthGetter.call(value);
|
|
58
|
-
return true;
|
|
59
|
-
}
|
|
60
|
-
catch (e) {
|
|
61
|
-
return false;
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
const supportsPropertyIndex = Symbol("supports property index");
|
|
65
|
-
const supportedPropertyIndices = Symbol("supported property indices");
|
|
66
|
-
const supportsPropertyName = Symbol("supports property name");
|
|
67
|
-
const supportedPropertyNames = Symbol("supported property names");
|
|
68
|
-
const indexedGet = Symbol("indexed property get");
|
|
69
|
-
const indexedSetNew = Symbol("indexed property set new");
|
|
70
|
-
const indexedSetExisting = Symbol("indexed property set existing");
|
|
71
|
-
const namedGet = Symbol("named property get");
|
|
72
|
-
const namedSetNew = Symbol("named property set new");
|
|
73
|
-
const namedSetExisting = Symbol("named property set existing");
|
|
74
|
-
const namedDelete = Symbol("named property delete");
|
|
75
|
-
exports.default = {
|
|
76
|
-
isObject,
|
|
77
|
-
hasOwn,
|
|
78
|
-
wrapperSymbol,
|
|
79
|
-
implSymbol,
|
|
80
|
-
getSameObject,
|
|
81
|
-
ctorRegistrySymbol,
|
|
82
|
-
wrapperForImpl,
|
|
83
|
-
implForWrapper,
|
|
84
|
-
tryWrapperForImpl,
|
|
85
|
-
tryImplForWrapper,
|
|
86
|
-
iterInternalSymbol,
|
|
87
|
-
IteratorPrototype,
|
|
88
|
-
isArrayBuffer,
|
|
89
|
-
isArrayIndexPropName,
|
|
90
|
-
supportsPropertyIndex,
|
|
91
|
-
supportedPropertyIndices,
|
|
92
|
-
supportsPropertyName,
|
|
93
|
-
supportedPropertyNames,
|
|
94
|
-
indexedGet,
|
|
95
|
-
indexedSetNew,
|
|
96
|
-
indexedSetExisting,
|
|
97
|
-
namedGet,
|
|
98
|
-
namedSetNew,
|
|
99
|
-
namedSetExisting,
|
|
100
|
-
namedDelete
|
|
101
|
-
};
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
// Returns "Type(value) is Object" in ES terminology.
|
|
4
|
+
function isObject(value) {
|
|
5
|
+
return typeof value === "object" && value !== null || typeof value === "function";
|
|
6
|
+
}
|
|
7
|
+
function hasOwn(obj, prop) {
|
|
8
|
+
return Object.prototype.hasOwnProperty.call(obj, prop);
|
|
9
|
+
}
|
|
10
|
+
const wrapperSymbol = Symbol("wrapper");
|
|
11
|
+
const implSymbol = Symbol("impl");
|
|
12
|
+
const sameObjectCaches = Symbol("SameObject caches");
|
|
13
|
+
const ctorRegistrySymbol = Symbol.for("[webidl2js] constructor registry");
|
|
14
|
+
function getSameObject(wrapper, prop, creator) {
|
|
15
|
+
if (!wrapper[sameObjectCaches]) {
|
|
16
|
+
wrapper[sameObjectCaches] = Object.create(null);
|
|
17
|
+
}
|
|
18
|
+
if (prop in wrapper[sameObjectCaches]) {
|
|
19
|
+
return wrapper[sameObjectCaches][prop];
|
|
20
|
+
}
|
|
21
|
+
wrapper[sameObjectCaches][prop] = creator();
|
|
22
|
+
return wrapper[sameObjectCaches][prop];
|
|
23
|
+
}
|
|
24
|
+
function wrapperForImpl(impl) {
|
|
25
|
+
return impl ? impl[wrapperSymbol] : null;
|
|
26
|
+
}
|
|
27
|
+
function implForWrapper(wrapper) {
|
|
28
|
+
return wrapper ? wrapper[implSymbol] : null;
|
|
29
|
+
}
|
|
30
|
+
function tryWrapperForImpl(impl) {
|
|
31
|
+
const wrapper = wrapperForImpl(impl);
|
|
32
|
+
return wrapper ? wrapper : impl;
|
|
33
|
+
}
|
|
34
|
+
function tryImplForWrapper(wrapper) {
|
|
35
|
+
const impl = implForWrapper(wrapper);
|
|
36
|
+
return impl ? impl : wrapper;
|
|
37
|
+
}
|
|
38
|
+
const iterInternalSymbol = Symbol("internal");
|
|
39
|
+
const IteratorPrototype = Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]()));
|
|
40
|
+
function isArrayIndexPropName(P) {
|
|
41
|
+
if (typeof P !== 'string') {
|
|
42
|
+
return false;
|
|
43
|
+
}
|
|
44
|
+
const i = P >>> 0;
|
|
45
|
+
if (i === Math.pow(2, 32) - 1) {
|
|
46
|
+
return false;
|
|
47
|
+
}
|
|
48
|
+
const s = `${i}`;
|
|
49
|
+
if (P !== s) {
|
|
50
|
+
return false;
|
|
51
|
+
}
|
|
52
|
+
return true;
|
|
53
|
+
}
|
|
54
|
+
const byteLengthGetter = Object.getOwnPropertyDescriptor(ArrayBuffer.prototype, "byteLength").get;
|
|
55
|
+
function isArrayBuffer(value) {
|
|
56
|
+
try {
|
|
57
|
+
byteLengthGetter.call(value);
|
|
58
|
+
return true;
|
|
59
|
+
}
|
|
60
|
+
catch (e) {
|
|
61
|
+
return false;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
const supportsPropertyIndex = Symbol("supports property index");
|
|
65
|
+
const supportedPropertyIndices = Symbol("supported property indices");
|
|
66
|
+
const supportsPropertyName = Symbol("supports property name");
|
|
67
|
+
const supportedPropertyNames = Symbol("supported property names");
|
|
68
|
+
const indexedGet = Symbol("indexed property get");
|
|
69
|
+
const indexedSetNew = Symbol("indexed property set new");
|
|
70
|
+
const indexedSetExisting = Symbol("indexed property set existing");
|
|
71
|
+
const namedGet = Symbol("named property get");
|
|
72
|
+
const namedSetNew = Symbol("named property set new");
|
|
73
|
+
const namedSetExisting = Symbol("named property set existing");
|
|
74
|
+
const namedDelete = Symbol("named property delete");
|
|
75
|
+
exports.default = {
|
|
76
|
+
isObject,
|
|
77
|
+
hasOwn,
|
|
78
|
+
wrapperSymbol,
|
|
79
|
+
implSymbol,
|
|
80
|
+
getSameObject,
|
|
81
|
+
ctorRegistrySymbol,
|
|
82
|
+
wrapperForImpl,
|
|
83
|
+
implForWrapper,
|
|
84
|
+
tryWrapperForImpl,
|
|
85
|
+
tryImplForWrapper,
|
|
86
|
+
iterInternalSymbol,
|
|
87
|
+
IteratorPrototype,
|
|
88
|
+
isArrayBuffer,
|
|
89
|
+
isArrayIndexPropName,
|
|
90
|
+
supportsPropertyIndex,
|
|
91
|
+
supportedPropertyIndices,
|
|
92
|
+
supportsPropertyName,
|
|
93
|
+
supportedPropertyNames,
|
|
94
|
+
indexedGet,
|
|
95
|
+
indexedSetNew,
|
|
96
|
+
indexedSetExisting,
|
|
97
|
+
namedGet,
|
|
98
|
+
namedSetNew,
|
|
99
|
+
namedSetExisting,
|
|
100
|
+
namedDelete
|
|
101
|
+
};
|
package/lib/utils/uuid.d.ts
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
export declare function sequentialUuid({ random }: {
|
|
2
|
-
random: Uint8Array;
|
|
3
|
-
}): string;
|
|
4
|
-
export declare function shrinkUuidTo32Bytes(uuid: string): string;
|
|
5
|
-
export declare function expandUuidTo36Bytes(uuidShrinked: string): string;
|
|
6
|
-
export type GenerateIdOption = {
|
|
7
|
-
shuffle?: boolean;
|
|
8
|
-
};
|
|
9
|
-
export declare function generateNewIdAsync(option?: GenerateIdOption): Promise<string>;
|
|
10
|
-
export declare function produceIds(): Promise<void>;
|
|
11
|
-
export declare function setGenerateIdOption(option: GenerateIdOption): Promise<void>;
|
|
12
|
-
export declare function generateNewId(): string;
|
|
13
|
-
/**
|
|
14
|
-
* 在一些特殊场景下根据数据生成指定的uuid,长度不能超过36byte
|
|
15
|
-
* @param: input: 输入的数据数组,应保证唯一性
|
|
16
|
-
*/
|
|
17
|
-
export declare function formUuid(...input: string[]): string;
|
|
1
|
+
export declare function sequentialUuid({ random }: {
|
|
2
|
+
random: Uint8Array;
|
|
3
|
+
}): string;
|
|
4
|
+
export declare function shrinkUuidTo32Bytes(uuid: string): string;
|
|
5
|
+
export declare function expandUuidTo36Bytes(uuidShrinked: string): string;
|
|
6
|
+
export type GenerateIdOption = {
|
|
7
|
+
shuffle?: boolean;
|
|
8
|
+
};
|
|
9
|
+
export declare function generateNewIdAsync(option?: GenerateIdOption): Promise<string>;
|
|
10
|
+
export declare function produceIds(): Promise<void>;
|
|
11
|
+
export declare function setGenerateIdOption(option: GenerateIdOption): Promise<void>;
|
|
12
|
+
export declare function generateNewId(): string;
|
|
13
|
+
/**
|
|
14
|
+
* 在一些特殊场景下根据数据生成指定的uuid,长度不能超过36byte
|
|
15
|
+
* @param: input: 输入的数据数组,应保证唯一性
|
|
16
|
+
*/
|
|
17
|
+
export declare function formUuid(...input: string[]): string;
|