@nodesecure/js-x-ray 11.2.0 → 11.3.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/dist/ShadyLink.d.ts +22 -0
- package/dist/ShadyLink.d.ts.map +1 -0
- package/dist/{ShadyURL.js → ShadyLink.js} +39 -11
- package/dist/ShadyLink.js.map +1 -0
- package/dist/probes/isLiteral.d.ts.map +1 -1
- package/dist/probes/isLiteral.js +24 -7
- package/dist/probes/isLiteral.js.map +1 -1
- package/dist/warnings.d.ts +4 -0
- package/dist/warnings.d.ts.map +1 -1
- package/dist/warnings.js +2 -1
- package/dist/warnings.js.map +1 -1
- package/package.json +1 -1
- package/dist/ShadyURL.d.ts +0 -13
- package/dist/ShadyURL.d.ts.map +0 -1
- package/dist/ShadyURL.js.map +0 -1
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { ESTree } from "meriyah";
|
|
2
|
+
import { type SourceArrayLocation } from "./utils/toArrayLocation.ts";
|
|
3
|
+
import { CollectableSetRegistry } from "./CollectableSetRegistry.ts";
|
|
4
|
+
type Options = {
|
|
5
|
+
collectableSetRegistry: CollectableSetRegistry;
|
|
6
|
+
file?: string | null;
|
|
7
|
+
location?: ESTree.SourceLocation;
|
|
8
|
+
};
|
|
9
|
+
export type ShadyLinkResult = {
|
|
10
|
+
safe: boolean;
|
|
11
|
+
isLocalAddress?: boolean;
|
|
12
|
+
};
|
|
13
|
+
export declare class ShadyLink {
|
|
14
|
+
#private;
|
|
15
|
+
static isURLSafe(input: string, options: Options): ShadyLinkResult;
|
|
16
|
+
static isValidIPAddress(input: string): boolean;
|
|
17
|
+
static isIpAddressSafe(input: string, options: Omit<Options, "location"> & {
|
|
18
|
+
location?: SourceArrayLocation | ESTree.SourceLocation;
|
|
19
|
+
}): ShadyLinkResult;
|
|
20
|
+
}
|
|
21
|
+
export {};
|
|
22
|
+
//# sourceMappingURL=ShadyLink.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ShadyLink.d.ts","sourceRoot":"","sources":["../src/ShadyLink.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAGtC,OAAO,EAAmB,KAAK,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACvF,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAyCrE,KAAK,OAAO,GAAG;IACb,sBAAsB,EAAE,sBAAsB,CAAC;IAC/C,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,OAAO,CAAC;IACd,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;AAEF,qBAAa,SAAS;;IACpB,MAAM,CAAC,SAAS,CACd,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,OAAO,GACf,eAAe;IAsDlB,MAAM,CAAC,gBAAgB,CAAC,KAAK,EAAE,MAAM;IAIrC,MAAM,CAAC,eAAe,CACpB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG;QACnC,QAAQ,CAAC,EAAE,mBAAmB,GAAG,MAAM,CAAC,cAAc,CAAC;KACxD,GACA,eAAe;CA6BnB"}
|
|
@@ -40,24 +40,37 @@ const kKnownProtocols = new Set([
|
|
|
40
40
|
// Security related
|
|
41
41
|
"acap:", "cap:", "cid:", "mid:", "urn:", "tag:", "dns:", "geo:", "ni:", "nih:"
|
|
42
42
|
]);
|
|
43
|
-
export class
|
|
44
|
-
static
|
|
43
|
+
export class ShadyLink {
|
|
44
|
+
static isURLSafe(input, options) {
|
|
45
45
|
if (!URL.canParse(input)) {
|
|
46
|
-
return true;
|
|
46
|
+
return { safe: true };
|
|
47
47
|
}
|
|
48
48
|
const parsedUrl = new URL(input);
|
|
49
49
|
// Unknown protocol, not a real URL
|
|
50
50
|
if (!kKnownProtocols.has(parsedUrl.protocol)) {
|
|
51
|
-
return true;
|
|
51
|
+
return { safe: true };
|
|
52
52
|
}
|
|
53
53
|
const { collectableSetRegistry, file, location } = options;
|
|
54
54
|
const sourceArrayLocation = toArrayLocation(location);
|
|
55
55
|
collectableSetRegistry.add("url", { value: parsedUrl.href, file, location: sourceArrayLocation });
|
|
56
56
|
const hostname = parsedUrl.hostname;
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
57
|
+
// Early check for localhost
|
|
58
|
+
if (hostname === "localhost") {
|
|
59
|
+
collectableSetRegistry.add("hostname", { value: hostname, file, location: sourceArrayLocation });
|
|
60
|
+
return { safe: false, isLocalAddress: true };
|
|
61
|
+
}
|
|
62
|
+
// Remove brackets from IPv6 addresses (e.g., "[::1]" -> "::1")
|
|
63
|
+
const cleanHostname = hostname.startsWith("[") && hostname.endsWith("]")
|
|
64
|
+
? hostname.slice(1, -1)
|
|
65
|
+
: hostname;
|
|
66
|
+
if (this.isValidIPAddress(cleanHostname)) {
|
|
67
|
+
const result = this.isIpAddressSafe(cleanHostname, {
|
|
68
|
+
collectableSetRegistry,
|
|
69
|
+
file,
|
|
70
|
+
location: sourceArrayLocation
|
|
71
|
+
});
|
|
72
|
+
if (!result.safe) {
|
|
73
|
+
return result;
|
|
61
74
|
}
|
|
62
75
|
}
|
|
63
76
|
else {
|
|
@@ -65,9 +78,24 @@ export class ShadyURL {
|
|
|
65
78
|
}
|
|
66
79
|
const scheme = parsedUrl.protocol.replace(":", "");
|
|
67
80
|
if (scheme !== "https") {
|
|
68
|
-
return false;
|
|
81
|
+
return { safe: false };
|
|
82
|
+
}
|
|
83
|
+
const isShadyLink = kShadyLinkRegExps.some((regex) => regex.test(input));
|
|
84
|
+
return { safe: !isShadyLink };
|
|
85
|
+
}
|
|
86
|
+
static isValidIPAddress(input) {
|
|
87
|
+
return ipaddress.isValid(input);
|
|
88
|
+
}
|
|
89
|
+
static isIpAddressSafe(input, options) {
|
|
90
|
+
const { collectableSetRegistry, file, location } = options;
|
|
91
|
+
collectableSetRegistry.add("ip", {
|
|
92
|
+
value: input, file,
|
|
93
|
+
location: Array.isArray(location) ? location : toArrayLocation(location)
|
|
94
|
+
});
|
|
95
|
+
if (this.#isPrivateIPAddress(input)) {
|
|
96
|
+
return { safe: false, isLocalAddress: true };
|
|
69
97
|
}
|
|
70
|
-
return
|
|
98
|
+
return { safe: true };
|
|
71
99
|
}
|
|
72
100
|
static #isPrivateIPAddress(ipAddress) {
|
|
73
101
|
let ip = ipaddress.parse(ipAddress);
|
|
@@ -81,4 +109,4 @@ export class ShadyURL {
|
|
|
81
109
|
return false;
|
|
82
110
|
}
|
|
83
111
|
}
|
|
84
|
-
//# sourceMappingURL=
|
|
112
|
+
//# sourceMappingURL=ShadyLink.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ShadyLink.js","sourceRoot":"","sources":["../src/ShadyLink.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"isLiteral.d.ts","sourceRoot":"","sources":["../../src/probes/isLiteral.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAItC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAI3E;;;;;GAKG;AACH,iBAAS,YAAY,CACnB,IAAI,EAAE,MAAM,CAAC,IAAI,GAChB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAIjB;AAED,iBAAS,IAAI,CACX,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,EACrB,OAAO,EAAE;IACP,UAAU,EAAE,UAAU,CAAC;IACvB,sBAAsB,EAAE,sBAAsB,CAAC;CAChD,
|
|
1
|
+
{"version":3,"file":"isLiteral.d.ts","sourceRoot":"","sources":["../../src/probes/isLiteral.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAItC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAI3E;;;;;GAKG;AACH,iBAAS,YAAY,CACnB,IAAI,EAAE,MAAM,CAAC,IAAI,GAChB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAIjB;AAED,iBAAS,IAAI,CACX,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,EACrB,OAAO,EAAE;IACP,UAAU,EAAE,UAAU,CAAC;IACvB,sBAAsB,EAAE,sBAAsB,CAAC;CAChD,QA8DF;;;;;;;AAED,wBAKE"}
|
package/dist/probes/isLiteral.js
CHANGED
|
@@ -3,7 +3,7 @@ import { builtinModules } from "node:module";
|
|
|
3
3
|
// Import Third-party Dependencies
|
|
4
4
|
import { Hex } from "@nodesecure/sec-literal";
|
|
5
5
|
// Import Internal Dependencies
|
|
6
|
-
import {
|
|
6
|
+
import { ShadyLink } from "../ShadyLink.js";
|
|
7
7
|
import { SourceFile } from "../SourceFile.js";
|
|
8
8
|
import { generateWarning } from "../warnings.js";
|
|
9
9
|
// CONSTANTS
|
|
@@ -22,6 +22,11 @@ function validateNode(node) {
|
|
|
22
22
|
function main(node, options) {
|
|
23
23
|
const { sourceFile, collectableSetRegistry } = options;
|
|
24
24
|
const location = node.loc ?? void 0;
|
|
25
|
+
const shadyLinkOptions = {
|
|
26
|
+
file: sourceFile.path.location,
|
|
27
|
+
collectableSetRegistry,
|
|
28
|
+
location
|
|
29
|
+
};
|
|
25
30
|
// We are searching for value obfuscated as hex of a minimum length of 4.
|
|
26
31
|
if (/^[0-9A-Fa-f]{4,}$/g.test(node.value)) {
|
|
27
32
|
const value = Buffer.from(node.value, "hex").toString();
|
|
@@ -36,14 +41,26 @@ function main(node, options) {
|
|
|
36
41
|
sourceFile.addEncodedLiteral(node.value, location);
|
|
37
42
|
}
|
|
38
43
|
}
|
|
44
|
+
else if (ShadyLink.isValidIPAddress(node.value)) {
|
|
45
|
+
const result = ShadyLink.isIpAddressSafe(node.value, shadyLinkOptions);
|
|
46
|
+
if (!result.safe) {
|
|
47
|
+
sourceFile.warnings.push(generateWarning("shady-link", {
|
|
48
|
+
value: node.value,
|
|
49
|
+
location,
|
|
50
|
+
severity: "Information"
|
|
51
|
+
}));
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
39
55
|
// Else we are checking all other string with our suspect method
|
|
40
56
|
else {
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
57
|
+
const result = ShadyLink.isURLSafe(node.value, shadyLinkOptions);
|
|
58
|
+
if (!result.safe) {
|
|
59
|
+
sourceFile.warnings.push(generateWarning("shady-link", {
|
|
60
|
+
value: node.value,
|
|
61
|
+
location,
|
|
62
|
+
severity: result.isLocalAddress ? "Information" : "Warning"
|
|
63
|
+
}));
|
|
47
64
|
return;
|
|
48
65
|
}
|
|
49
66
|
sourceFile.analyzeLiteral(node);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"isLiteral.js","sourceRoot":"","sources":["../../src/probes/isLiteral.ts"],"names":[],"mappings":"AAAA,8BAA8B;AAC9B,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,kCAAkC;AAClC,OAAO,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAC;AAG9C,+BAA+B;AAC/B,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"isLiteral.js","sourceRoot":"","sources":["../../src/probes/isLiteral.ts"],"names":[],"mappings":"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"}
|
package/dist/warnings.d.ts
CHANGED
|
@@ -94,6 +94,10 @@ export interface GenerateWarningOptions {
|
|
|
94
94
|
file?: string | null;
|
|
95
95
|
value: string | null;
|
|
96
96
|
source?: string;
|
|
97
|
+
/**
|
|
98
|
+
* Override the default severity level for this warning
|
|
99
|
+
*/
|
|
100
|
+
severity?: "Information" | "Warning" | "Critical";
|
|
97
101
|
}
|
|
98
102
|
export declare function generateWarning<T extends WarningName>(kind: T, options: GenerateWarningOptions): Warning<T>;
|
|
99
103
|
//# sourceMappingURL=warnings.d.ts.map
|
package/dist/warnings.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"warnings.d.ts","sourceRoot":"","sources":["../src/warnings.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAItC,OAAO,EAGL,KAAK,mBAAmB,EACzB,MAAM,4BAA4B,CAAC;AAEpC,MAAM,MAAM,mBAAmB,GAC3B,gBAAgB,CAAC;AAErB,MAAM,MAAM,WAAW,GACnB,eAAe,GACf,iBAAiB,GACjB,cAAc,GACd,aAAa,GACb,mBAAmB,GACnB,oBAAoB,GACpB,iBAAiB,GACjB,iBAAiB,GACjB,aAAa,GACb,YAAY,GACZ,gBAAgB,GAChB,eAAe,GACf,uBAAuB,GACvB,mBAAmB,GACnB,mBAAmB,CAAC;AAExB,MAAM,WAAW,OAAO,CAAC,CAAC,GAAG,WAAW;IACtC,IAAI,EAAE,CAAC,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,IAAI,GAAG,mBAAmB,GAAG,mBAAmB,EAAE,CAAC;IAC7D,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,aAAa,GAAG,SAAS,GAAG,UAAU,CAAC;IACjD,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4EgE,CAAC;AAEtF,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,EAAE,MAAM,CAAC,cAAc,GAAG,IAAI,CAAC;IACxC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"warnings.d.ts","sourceRoot":"","sources":["../src/warnings.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAItC,OAAO,EAGL,KAAK,mBAAmB,EACzB,MAAM,4BAA4B,CAAC;AAEpC,MAAM,MAAM,mBAAmB,GAC3B,gBAAgB,CAAC;AAErB,MAAM,MAAM,WAAW,GACnB,eAAe,GACf,iBAAiB,GACjB,cAAc,GACd,aAAa,GACb,mBAAmB,GACnB,oBAAoB,GACpB,iBAAiB,GACjB,iBAAiB,GACjB,aAAa,GACb,YAAY,GACZ,gBAAgB,GAChB,eAAe,GACf,uBAAuB,GACvB,mBAAmB,GACnB,mBAAmB,CAAC;AAExB,MAAM,WAAW,OAAO,CAAC,CAAC,GAAG,WAAW;IACtC,IAAI,EAAE,CAAC,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,IAAI,GAAG,mBAAmB,GAAG,mBAAmB,EAAE,CAAC;IAC7D,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,aAAa,GAAG,SAAS,GAAG,UAAU,CAAC;IACjD,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4EgE,CAAC;AAEtF,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,EAAE,MAAM,CAAC,cAAc,GAAG,IAAI,CAAC;IACxC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,QAAQ,CAAC,EAAE,aAAa,GAAG,SAAS,GAAG,UAAU,CAAC;CACnD;AAED,wBAAgB,eAAe,CAAC,CAAC,SAAS,WAAW,EACnD,IAAI,EAAE,CAAC,EACP,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAAC,CAAC,CAAC,CA4BZ"}
|
package/dist/warnings.js
CHANGED
|
@@ -79,7 +79,7 @@ export const warnings = Object.freeze({
|
|
|
79
79
|
}
|
|
80
80
|
});
|
|
81
81
|
export function generateWarning(kind, options) {
|
|
82
|
-
const { file = null, value, source = "JS-X-Ray" } = options;
|
|
82
|
+
const { file = null, value, source = "JS-X-Ray", severity = warnings[kind].severity } = options;
|
|
83
83
|
const location = options.location ?? rootLocation();
|
|
84
84
|
if (kind === "encoded-literal") {
|
|
85
85
|
return {
|
|
@@ -95,6 +95,7 @@ export function generateWarning(kind, options) {
|
|
|
95
95
|
location: toArrayLocation(location),
|
|
96
96
|
source,
|
|
97
97
|
...warnings[kind],
|
|
98
|
+
severity,
|
|
98
99
|
...(notNullOrUndefined(file) ? { file } : {}),
|
|
99
100
|
...(notNullOrUndefined(value) ? { value } : { value: null })
|
|
100
101
|
};
|
package/dist/warnings.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"warnings.js","sourceRoot":"","sources":["../src/warnings.ts"],"names":[],"mappings":"AAGA,+BAA+B;AAC/B,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EACL,YAAY,EACZ,eAAe,EAEhB,MAAM,4BAA4B,CAAC;AAiCpC,MAAM,CAAC,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC;IACpC,eAAe,EAAE;QACf,IAAI,EAAE,6BAA6B;QACnC,QAAQ,EAAE,aAAa;QACvB,YAAY,EAAE,KAAK;KACpB;IACD,eAAe,EAAE;QACf,IAAI,EAAE,6BAA6B;QACnC,QAAQ,EAAE,SAAS;QACnB,YAAY,EAAE,KAAK;KACpB;IACD,cAAc,EAAE;QACd,IAAI,EAAE,4BAA4B;QAClC,QAAQ,EAAE,SAAS;QACnB,YAAY,EAAE,KAAK;KACpB;IACD,aAAa,EAAE;QACb,IAAI,EAAE,2BAA2B;QACjC,QAAQ,EAAE,SAAS;QACnB,YAAY,EAAE,KAAK;KACpB;IACD,iBAAiB,EAAE;QACjB,IAAI,EAAE,+BAA+B;QACrC,QAAQ,EAAE,aAAa;QACvB,YAAY,EAAE,KAAK;KACpB;IACD,mBAAmB,EAAE;QACnB,IAAI,EAAE,iCAAiC;QACvC,QAAQ,EAAE,SAAS;QACnB,YAAY,EAAE,KAAK;KACpB;IACD,oBAAoB,EAAE;QACpB,IAAI,EAAE,kCAAkC;QACxC,QAAQ,EAAE,SAAS;QACnB,YAAY,EAAE,KAAK;KACpB;IACD,iBAAiB,EAAE;QACjB,IAAI,EAAE,+BAA+B;QACrC,QAAQ,EAAE,UAAU;QACpB,YAAY,EAAE,KAAK;KACpB;IACD,iBAAiB,EAAE;QACjB,IAAI,EAAE,+BAA+B;QACrC,QAAQ,EAAE,UAAU;QACpB,YAAY,EAAE,IAAI;KACnB;IACD,aAAa,EAAE;QACb,IAAI,EAAE,2BAA2B;QACjC,QAAQ,EAAE,aAAa;QACvB,YAAY,EAAE,KAAK;KACpB;IACD,YAAY,EAAE;QACZ,IAAI,EAAE,0BAA0B;QAChC,QAAQ,EAAE,SAAS;QACnB,YAAY,EAAE,KAAK;KACpB;IACD,gBAAgB,EAAE;QAChB,IAAI,EAAE,8BAA8B;QACpC,QAAQ,EAAE,SAAS;QACnB,YAAY,EAAE,IAAI;KACnB;IACD,gBAAgB,EAAE;QAChB,IAAI,EAAE,8BAA8B;QACpC,QAAQ,EAAE,SAAS;QACnB,YAAY,EAAE,IAAI;KACnB;IACD,uBAAuB,EAAE;QACvB,IAAI,EAAE,qCAAqC;QAC3C,QAAQ,EAAE,SAAS;QACnB,YAAY,EAAE,KAAK;KACpB;IACD,mBAAmB,EAAE;QACnB,IAAI,EAAE,iCAAiC;QACvC,QAAQ,EAAE,SAAS;QACnB,YAAY,EAAE,KAAK;KACpB;CACF,CAAoF,CAAC;
|
|
1
|
+
{"version":3,"file":"warnings.js","sourceRoot":"","sources":["../src/warnings.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/dist/ShadyURL.d.ts
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import type { ESTree } from "meriyah";
|
|
2
|
-
import { CollectableSetRegistry } from "./CollectableSetRegistry.ts";
|
|
3
|
-
type Options = {
|
|
4
|
-
collectableSetRegistry: CollectableSetRegistry;
|
|
5
|
-
file?: string | null;
|
|
6
|
-
location?: ESTree.SourceLocation;
|
|
7
|
-
};
|
|
8
|
-
export declare class ShadyURL {
|
|
9
|
-
#private;
|
|
10
|
-
static isSafe(input: string, options: Options): boolean;
|
|
11
|
-
}
|
|
12
|
-
export {};
|
|
13
|
-
//# sourceMappingURL=ShadyURL.d.ts.map
|
package/dist/ShadyURL.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ShadyURL.d.ts","sourceRoot":"","sources":["../src/ShadyURL.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAItC,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAyCrE,KAAK,OAAO,GAAG;IACb,sBAAsB,EAAE,sBAAsB,CAAC;IAC/C,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC;CAClC,CAAC;AAEF,qBAAa,QAAQ;;IACnB,MAAM,CAAC,MAAM,CACX,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,OAAO,GACf,OAAO;CAqDX"}
|
package/dist/ShadyURL.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ShadyURL.js","sourceRoot":"","sources":["../src/ShadyURL.ts"],"names":[],"mappings":"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"}
|