@ctrl/magnet-link 2.0.1 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/{index.d.ts → src/index.d.ts} +12 -12
- package/dist/{module → src}/index.js +7 -7
- package/package.json +41 -45
- package/dist/index.js +0 -148
- package/dist/index.js.map +0 -1
- package/dist/module/index.js.map +0 -1
package/README.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# magnet-link [](https://www.npmjs.com/package/@ctrl/magnet-link) [](https://www.npmjs.com/package/@ctrl/magnet-link) [](https://circleci.com/gh/scttcper/magnet-link) [](https://codecov.io/gh/scttcper/magnet-link) [](https://bundlephobia.com/result?p=@ctrl/magnet-link)
|
2
2
|
|
3
3
|
> Parse a magnet URI into an object
|
4
4
|
|
@@ -7,37 +7,37 @@ export interface MagnetData {
|
|
7
7
|
* Is the multihash formatted, hex encoded full infohash for torrents in the new metadata format. 'btmh' and 'btih' exact topics may exist in the same magnet if they describe the same hybrid torrent.
|
8
8
|
* @link http://www.bittorrent.org/beps/bep_0009.html
|
9
9
|
*/
|
10
|
-
xt
|
10
|
+
xt?: string | string[];
|
11
11
|
/**
|
12
|
-
*
|
12
|
+
* Parsed xt= parameter see xt
|
13
13
|
*/
|
14
14
|
infoHash?: string;
|
15
15
|
/**
|
16
|
-
*
|
16
|
+
* The display name that may be used by the client to display while waiting for metadata
|
17
17
|
*/
|
18
18
|
name?: string | string[];
|
19
19
|
/**
|
20
|
-
*
|
20
|
+
* The display name that may be used by the client to display while waiting for metadata
|
21
21
|
*/
|
22
22
|
dn?: string | string[];
|
23
23
|
/**
|
24
|
-
*
|
24
|
+
* Tracker url, if there is one. If there are multiple trackers, multiple tr entries may be included
|
25
25
|
*/
|
26
26
|
tr?: string | string[];
|
27
27
|
/**
|
28
|
-
*
|
28
|
+
* Tracker url, if there is one. If there are multiple trackers, multiple tr entries may be included
|
29
29
|
*/
|
30
30
|
announce?: string[];
|
31
31
|
/**
|
32
|
-
*
|
32
|
+
* An array of where the actual torrent file can be downloaded
|
33
33
|
*/
|
34
34
|
xs?: string | string[];
|
35
35
|
/**
|
36
|
-
*
|
36
|
+
* An array of where the actual torrent file can be downloaded
|
37
37
|
*/
|
38
38
|
as?: string | string[];
|
39
39
|
/**
|
40
|
-
*
|
40
|
+
* An array of where the actual torrent file can be downloaded
|
41
41
|
*/
|
42
42
|
ws?: string | string[];
|
43
43
|
/**
|
@@ -49,15 +49,15 @@ export interface MagnetData {
|
|
49
49
|
*/
|
50
50
|
keywords?: string | string[];
|
51
51
|
/**
|
52
|
-
*
|
52
|
+
* File index
|
53
53
|
*/
|
54
54
|
ix?: number | number[];
|
55
55
|
/**
|
56
|
-
*
|
56
|
+
* Size in bytes
|
57
57
|
*/
|
58
58
|
xl?: string;
|
59
59
|
/**
|
60
|
-
*
|
60
|
+
* Combined as= and ws= parameters if they exist
|
61
61
|
*/
|
62
62
|
urlList?: string[];
|
63
63
|
}
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import { base32Decode } from '@ctrl/ts-base32';
|
2
2
|
const start = 'magnet:?';
|
3
3
|
export function magnetDecode(uri) {
|
4
|
-
//
|
4
|
+
// Support 'stream-magnet:' as well
|
5
5
|
const data = uri.substr(uri.indexOf(start) + start.length);
|
6
6
|
const params = data && data.length >= 0 ? data.split('&') : [];
|
7
7
|
const result = {};
|
@@ -23,18 +23,19 @@ export function magnetDecode(uri) {
|
|
23
23
|
}
|
24
24
|
// If there are repeated parameters, return an array of values
|
25
25
|
if (r && Array.isArray(r)) {
|
26
|
-
|
26
|
+
r.push(val);
|
27
|
+
return;
|
27
28
|
}
|
28
29
|
result[key] = [r, val];
|
30
|
+
// eslint-disable-next-line no-useless-return
|
31
|
+
return;
|
29
32
|
});
|
30
33
|
if (result.xt) {
|
31
34
|
let m;
|
32
35
|
const xts = Array.isArray(result.xt) ? result.xt : [result.xt];
|
33
36
|
xts.forEach((xt) => {
|
34
|
-
// tslint:disable-next-line:no-conditional-assignment
|
35
37
|
if ((m = xt.match(/^urn:btih:(.{40})/))) {
|
36
38
|
result.infoHash = m[1].toLowerCase();
|
37
|
-
// tslint:disable-next-line:no-conditional-assignment
|
38
39
|
}
|
39
40
|
else if ((m = xt.match(/^urn:btih:(.{32})/))) {
|
40
41
|
const decodedStr = base32Decode(m[1]);
|
@@ -69,7 +70,7 @@ export function magnetDecode(uri) {
|
|
69
70
|
return result;
|
70
71
|
}
|
71
72
|
/**
|
72
|
-
*
|
73
|
+
* Specific query parameters have expected formats, this attempts to parse them in the correct way
|
73
74
|
*/
|
74
75
|
function parseQueryParamValue(key, val) {
|
75
76
|
// Clean up torrent name
|
@@ -92,7 +93,7 @@ function parseQueryParamValue(key, val) {
|
|
92
93
|
return val;
|
93
94
|
}
|
94
95
|
export function magnetEncode(data) {
|
95
|
-
const obj = { ...data }; //
|
96
|
+
const obj = { ...data }; // Shallow clone object
|
96
97
|
// Support using convenience names, in addition to spec names
|
97
98
|
// (example: `infoHash` for `xt`, `name` for `dn`)
|
98
99
|
if (obj.infoHash) {
|
@@ -140,4 +141,3 @@ export function magnetEncode(data) {
|
|
140
141
|
return acc;
|
141
142
|
}, `${start}`);
|
142
143
|
}
|
143
|
-
//# sourceMappingURL=index.js.map
|
package/package.json
CHANGED
@@ -1,73 +1,69 @@
|
|
1
1
|
{
|
2
2
|
"name": "@ctrl/magnet-link",
|
3
|
-
"version": "
|
3
|
+
"version": "3.0.0",
|
4
4
|
"description": "Parse a magnet URI into an object",
|
5
5
|
"author": "Scott Cooper <scttcper@gmail.com>",
|
6
6
|
"homepage": "https://magnet-link.vercel.app",
|
7
7
|
"license": "MIT",
|
8
|
-
"repository": "
|
8
|
+
"repository": "scttcper/magnet-link",
|
9
9
|
"keywords": [
|
10
10
|
"torrent",
|
11
11
|
"magnet",
|
12
12
|
"link",
|
13
13
|
"magnet-uri"
|
14
14
|
],
|
15
|
-
"
|
16
|
-
"
|
17
|
-
"
|
15
|
+
"type": "module",
|
16
|
+
"exports": "./dist/src/index.js",
|
17
|
+
"types": "./dist/src/index.d.ts",
|
18
18
|
"files": [
|
19
|
-
"dist"
|
19
|
+
"dist/src"
|
20
20
|
],
|
21
21
|
"sideEffects": false,
|
22
|
-
"publishConfig": {
|
23
|
-
"access": "public"
|
24
|
-
},
|
25
22
|
"scripts": {
|
26
|
-
"build
|
27
|
-
"watch
|
28
|
-
"lint": "eslint --ext .
|
29
|
-
"lint:fix": "eslint --fix --ext .
|
23
|
+
"demo:build": "npm run build --workspace=demo",
|
24
|
+
"demo:watch": "npm run dev --workspace=demo",
|
25
|
+
"lint": "eslint --ext .ts .",
|
26
|
+
"lint:fix": "eslint --fix --ext .ts .",
|
30
27
|
"prepare": "npm run build",
|
31
|
-
"build": "tsc
|
32
|
-
"test": "
|
33
|
-
"test:watch": "
|
34
|
-
"test:ci": "
|
35
|
-
"semantic-release": "semantic-release"
|
28
|
+
"build": "tsc",
|
29
|
+
"test": "ava",
|
30
|
+
"test:watch": "ava --watch",
|
31
|
+
"test:ci": "c8 --reporter=text --reporter=lcov ava"
|
36
32
|
},
|
37
33
|
"dependencies": {
|
38
|
-
"@ctrl/ts-base32": "^
|
34
|
+
"@ctrl/ts-base32": "^2.1.1"
|
39
35
|
},
|
40
36
|
"devDependencies": {
|
41
|
-
"@
|
42
|
-
"@
|
43
|
-
"@
|
44
|
-
"
|
45
|
-
"buffer": "
|
46
|
-
"
|
47
|
-
"
|
48
|
-
"
|
49
|
-
|
50
|
-
|
51
|
-
"
|
52
|
-
|
53
|
-
|
54
|
-
"
|
55
|
-
|
56
|
-
|
57
|
-
"
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
37
|
+
"@ctrl/eslint-config": "3.2.0",
|
38
|
+
"@sindresorhus/tsconfig": "2.0.0",
|
39
|
+
"@types/node": "17.0.1",
|
40
|
+
"ava": "4.0.0-rc.1",
|
41
|
+
"buffer": "6.0.3",
|
42
|
+
"c8": "7.10.0",
|
43
|
+
"tsm": "2.2.1",
|
44
|
+
"typescript": "4.5.4"
|
45
|
+
},
|
46
|
+
"ava": {
|
47
|
+
"files": [
|
48
|
+
"test/**/*.spec.ts"
|
49
|
+
],
|
50
|
+
"extensions": {
|
51
|
+
"ts": "module"
|
52
|
+
},
|
53
|
+
"nodeArguments": [
|
54
|
+
"--loader=tsm"
|
55
|
+
]
|
56
|
+
},
|
57
|
+
"workspaces": [
|
58
|
+
"demo"
|
59
|
+
],
|
60
|
+
"publishConfig": {
|
61
|
+
"access": "public"
|
62
62
|
},
|
63
63
|
"release": {
|
64
64
|
"branch": "master"
|
65
65
|
},
|
66
|
-
"jest": {
|
67
|
-
"preset": "ts-jest",
|
68
|
-
"testEnvironment": "node"
|
69
|
-
},
|
70
66
|
"engines": {
|
71
|
-
"node": ">=
|
67
|
+
"node": ">=14.16"
|
72
68
|
}
|
73
69
|
}
|
package/dist/index.js
DELETED
@@ -1,148 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.magnetEncode = exports.magnetDecode = void 0;
|
4
|
-
const ts_base32_1 = require("@ctrl/ts-base32");
|
5
|
-
const start = 'magnet:?';
|
6
|
-
function magnetDecode(uri) {
|
7
|
-
// support 'stream-magnet:' as well
|
8
|
-
const data = uri.substr(uri.indexOf(start) + start.length);
|
9
|
-
const params = data && data.length >= 0 ? data.split('&') : [];
|
10
|
-
const result = {};
|
11
|
-
params.forEach(param => {
|
12
|
-
const keyval = param.split('=');
|
13
|
-
// This keyval is invalid, skip it
|
14
|
-
if (keyval.length !== 2) {
|
15
|
-
return;
|
16
|
-
}
|
17
|
-
const key = keyval[0];
|
18
|
-
const val = parseQueryParamValue(key, keyval[1]);
|
19
|
-
if (val === undefined) {
|
20
|
-
return;
|
21
|
-
}
|
22
|
-
const r = result[key];
|
23
|
-
if (!r) {
|
24
|
-
result[key] = val;
|
25
|
-
return result;
|
26
|
-
}
|
27
|
-
// If there are repeated parameters, return an array of values
|
28
|
-
if (r && Array.isArray(r)) {
|
29
|
-
return r.push(val);
|
30
|
-
}
|
31
|
-
result[key] = [r, val];
|
32
|
-
});
|
33
|
-
if (result.xt) {
|
34
|
-
let m;
|
35
|
-
const xts = Array.isArray(result.xt) ? result.xt : [result.xt];
|
36
|
-
xts.forEach((xt) => {
|
37
|
-
// tslint:disable-next-line:no-conditional-assignment
|
38
|
-
if ((m = xt.match(/^urn:btih:(.{40})/))) {
|
39
|
-
result.infoHash = m[1].toLowerCase();
|
40
|
-
// tslint:disable-next-line:no-conditional-assignment
|
41
|
-
}
|
42
|
-
else if ((m = xt.match(/^urn:btih:(.{32})/))) {
|
43
|
-
const decodedStr = ts_base32_1.base32Decode(m[1]);
|
44
|
-
result.infoHash = Buffer.from(decodedStr).toString('hex');
|
45
|
-
}
|
46
|
-
});
|
47
|
-
}
|
48
|
-
if (result.dn) {
|
49
|
-
result.name = result.dn;
|
50
|
-
}
|
51
|
-
if (result.kt) {
|
52
|
-
result.keywords = result.kt;
|
53
|
-
}
|
54
|
-
if (typeof result.tr === 'string') {
|
55
|
-
result.announce = [result.tr];
|
56
|
-
}
|
57
|
-
else if (Array.isArray(result.tr)) {
|
58
|
-
result.announce = result.tr;
|
59
|
-
}
|
60
|
-
else {
|
61
|
-
result.announce = [];
|
62
|
-
}
|
63
|
-
result.urlList = [];
|
64
|
-
if (typeof result.as === 'string' || Array.isArray(result.as)) {
|
65
|
-
result.urlList = result.urlList.concat(result.as);
|
66
|
-
}
|
67
|
-
if (typeof result.ws === 'string' || Array.isArray(result.ws)) {
|
68
|
-
result.urlList = result.urlList.concat(result.ws);
|
69
|
-
}
|
70
|
-
result.announce = [...new Set(result.announce)].sort((a, b) => a.localeCompare(b));
|
71
|
-
result.urlList = [...new Set(result.urlList)].sort((a, b) => a.localeCompare(b));
|
72
|
-
return result;
|
73
|
-
}
|
74
|
-
exports.magnetDecode = magnetDecode;
|
75
|
-
/**
|
76
|
-
* specific query parameters have expected formats, this attempts to parse them in the correct way
|
77
|
-
*/
|
78
|
-
function parseQueryParamValue(key, val) {
|
79
|
-
// Clean up torrent name
|
80
|
-
if (key === 'dn') {
|
81
|
-
return decodeURIComponent(val).replace(/\+/g, ' ');
|
82
|
-
}
|
83
|
-
// Address tracker (tr), exact source (xs), and acceptable source (as) are encoded
|
84
|
-
// URIs, so decode them
|
85
|
-
if (key === 'tr' || key === 'xs' || key === 'as' || key === 'ws') {
|
86
|
-
return decodeURIComponent(val);
|
87
|
-
}
|
88
|
-
// Return keywords as an array
|
89
|
-
if (key === 'kt') {
|
90
|
-
return decodeURIComponent(val).split('+');
|
91
|
-
}
|
92
|
-
// Cast file index (ix) to a number
|
93
|
-
if (key === 'ix') {
|
94
|
-
return Number(val);
|
95
|
-
}
|
96
|
-
return val;
|
97
|
-
}
|
98
|
-
function magnetEncode(data) {
|
99
|
-
const obj = { ...data }; // shallow clone object
|
100
|
-
// Support using convenience names, in addition to spec names
|
101
|
-
// (example: `infoHash` for `xt`, `name` for `dn`)
|
102
|
-
if (obj.infoHash) {
|
103
|
-
obj.xt = `urn:btih:${obj.infoHash}`;
|
104
|
-
}
|
105
|
-
if (obj.name) {
|
106
|
-
obj.dn = obj.name;
|
107
|
-
}
|
108
|
-
if (obj.keywords) {
|
109
|
-
obj.kt = obj.keywords;
|
110
|
-
}
|
111
|
-
if (obj.announce) {
|
112
|
-
obj.tr = obj.announce;
|
113
|
-
}
|
114
|
-
if (obj.urlList) {
|
115
|
-
obj.ws = obj.urlList;
|
116
|
-
delete obj.as;
|
117
|
-
}
|
118
|
-
return Object.keys(obj)
|
119
|
-
.filter(key => key.length === 2)
|
120
|
-
.reduce((prev, key, i) => {
|
121
|
-
let acc = prev;
|
122
|
-
const values = Array.isArray(obj[key]) ? obj[key] : [obj[key]];
|
123
|
-
values.forEach((val, j) => {
|
124
|
-
if ((i > 0 || j > 0) && (key !== 'kt' || j === 0)) {
|
125
|
-
acc = `${acc}&`;
|
126
|
-
}
|
127
|
-
let res = val;
|
128
|
-
if (key === 'dn') {
|
129
|
-
res = encodeURIComponent(val).replace(/%20/g, '+');
|
130
|
-
}
|
131
|
-
if (key === 'tr' || key === 'xs' || key === 'as' || key === 'ws') {
|
132
|
-
res = encodeURIComponent(val);
|
133
|
-
}
|
134
|
-
if (key === 'kt') {
|
135
|
-
res = encodeURIComponent(val);
|
136
|
-
}
|
137
|
-
if (key === 'kt' && j > 0) {
|
138
|
-
acc = `${acc}+${res}`;
|
139
|
-
}
|
140
|
-
else {
|
141
|
-
acc = `${acc}${key}=${res}`;
|
142
|
-
}
|
143
|
-
});
|
144
|
-
return acc;
|
145
|
-
}, `${start}`);
|
146
|
-
}
|
147
|
-
exports.magnetEncode = magnetEncode;
|
148
|
-
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,+CAA+C;AAkE/C,MAAM,KAAK,GAAG,UAAU,CAAC;AAEzB,SAAgB,YAAY,CAAC,GAAW;IACtC,mCAAmC;IACnC,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;IAE3D,MAAM,MAAM,GAAG,IAAI,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAE/D,MAAM,MAAM,GAAwB,EAAE,CAAC;IACvC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QACrB,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAEhC,kCAAkC;QAClC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;YACvB,OAAO;SACR;QAED,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAqB,CAAC;QAC1C,MAAM,GAAG,GAAG,oBAAoB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAEjD,IAAI,GAAG,KAAK,SAAS,EAAE;YACrB,OAAO;SACR;QAED,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAEtB,IAAI,CAAC,CAAC,EAAE;YACN,MAAM,CAAC,GAAG,CAAC,GAAG,GAAU,CAAC;YACzB,OAAO,MAAM,CAAC;SACf;QAED,8DAA8D;QAC9D,IAAI,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YACzB,OAAQ,CAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SAC/B;QAED,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAQ,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,IAAI,MAAM,CAAC,EAAE,EAAE;QACb,IAAI,CAAC,CAAC;QACN,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC/D,GAAG,CAAC,OAAO,CAAC,CAAC,EAAO,EAAE,EAAE;YACtB,qDAAqD;YACrD,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,EAAE;gBACvC,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;gBACrC,qDAAqD;aACtD;iBAAM,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,EAAE;gBAC9C,MAAM,UAAU,GAAG,wBAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACtC,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;aAC3D;QACH,CAAC,CAAC,CAAC;KACJ;IAED,IAAI,MAAM,CAAC,EAAE,EAAE;QACb,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,EAAE,CAAC;KACzB;IAED,IAAI,MAAM,CAAC,EAAE,EAAE;QACb,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC;KAC7B;IAED,IAAI,OAAO,MAAM,CAAC,EAAE,KAAK,QAAQ,EAAE;QACjC,MAAM,CAAC,QAAQ,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;KAC/B;SAAM,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE;QACnC,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC;KAC7B;SAAM;QACL,MAAM,CAAC,QAAQ,GAAG,EAAE,CAAC;KACtB;IAED,MAAM,CAAC,OAAO,GAAG,EAAE,CAAC;IACpB,IAAI,OAAO,MAAM,CAAC,EAAE,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE;QAC7D,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;KACnD;IAED,IAAI,OAAO,MAAM,CAAC,EAAE,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE;QAC7D,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;KACnD;IAED,MAAM,CAAC,QAAQ,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;IACnF,MAAM,CAAC,OAAO,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;IAEjF,OAAO,MAAoB,CAAC;AAC9B,CAAC;AAjFD,oCAiFC;AAED;;GAEG;AACH,SAAS,oBAAoB,CAAC,GAAW,EAAE,GAAW;IACpD,wBAAwB;IACxB,IAAI,GAAG,KAAK,IAAI,EAAE;QAChB,OAAO,kBAAkB,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;KACpD;IAED,kFAAkF;IAClF,uBAAuB;IACvB,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,IAAI,EAAE;QAChE,OAAO,kBAAkB,CAAC,GAAG,CAAC,CAAC;KAChC;IAED,8BAA8B;IAC9B,IAAI,GAAG,KAAK,IAAI,EAAE;QAChB,OAAO,kBAAkB,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;KAC3C;IAED,mCAAmC;IACnC,IAAI,GAAG,KAAK,IAAI,EAAE;QAChB,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;KACpB;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAgB,YAAY,CAAC,IAAgB;IAC3C,MAAM,GAAG,GAAQ,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC,uBAAuB;IAErD,6DAA6D;IAC7D,kDAAkD;IAClD,IAAI,GAAG,CAAC,QAAQ,EAAE;QAChB,GAAG,CAAC,EAAE,GAAG,YAAY,GAAG,CAAC,QAAkB,EAAE,CAAC;KAC/C;IAED,IAAI,GAAG,CAAC,IAAI,EAAE;QACZ,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC;KACnB;IAED,IAAI,GAAG,CAAC,QAAQ,EAAE;QAChB,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,QAAQ,CAAC;KACvB;IAED,IAAI,GAAG,CAAC,QAAQ,EAAE;QAChB,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,QAAQ,CAAC;KACvB;IAED,IAAI,GAAG,CAAC,OAAO,EAAE;QACf,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC;QACrB,OAAO,GAAG,CAAC,EAAE,CAAC;KACf;IAED,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;SACpB,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,CAAC;SAC/B,MAAM,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE;QACvB,IAAI,GAAG,GAAG,IAAI,CAAC;QAEf,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QAC/D,MAAM,CAAC,OAAO,CAAC,CAAC,GAAQ,EAAE,CAAM,EAAE,EAAE;YAClC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE;gBACjD,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;aACjB;YAED,IAAI,GAAG,GAAW,GAAG,CAAC;YACtB,IAAI,GAAG,KAAK,IAAI,EAAE;gBAChB,GAAG,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;aACpD;YAED,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,IAAI,EAAE;gBAChE,GAAG,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;aAC/B;YAED,IAAI,GAAG,KAAK,IAAI,EAAE;gBAChB,GAAG,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;aAC/B;YAED,IAAI,GAAG,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE;gBACzB,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;aACvB;iBAAM;gBACL,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;aAC7B;QACH,CAAC,CAAC,CAAC;QACH,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;AACnB,CAAC;AA1DD,oCA0DC"}
|
package/dist/module/index.js.map
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|