step-node-agent 3.26.4 → 3.26.5
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/node_modules/call-bind/CHANGELOG.md +13 -0
- package/node_modules/call-bind/index.js +6 -17
- package/node_modules/call-bind/package.json +14 -16
- package/node_modules/call-bind/test/index.js +4 -10
- package/node_modules/call-bind-apply-helpers/.eslintrc +16 -0
- package/node_modules/call-bind-apply-helpers/.github/FUNDING.yml +12 -0
- package/node_modules/call-bind-apply-helpers/.nycrc +9 -0
- package/node_modules/call-bind-apply-helpers/CHANGELOG.md +23 -0
- package/node_modules/{has-proto → call-bind-apply-helpers}/LICENSE +1 -1
- package/node_modules/call-bind-apply-helpers/README.md +62 -0
- package/node_modules/call-bind-apply-helpers/actualApply.d.ts +1 -0
- package/node_modules/call-bind-apply-helpers/actualApply.js +10 -0
- package/node_modules/call-bind-apply-helpers/applyBind.d.ts +19 -0
- package/node_modules/call-bind-apply-helpers/applyBind.js +10 -0
- package/node_modules/call-bind-apply-helpers/functionApply.d.ts +1 -0
- package/node_modules/call-bind-apply-helpers/functionApply.js +4 -0
- package/node_modules/call-bind-apply-helpers/functionCall.d.ts +1 -0
- package/node_modules/call-bind-apply-helpers/functionCall.js +4 -0
- package/node_modules/call-bind-apply-helpers/index.d.ts +46 -0
- package/node_modules/call-bind-apply-helpers/index.js +15 -0
- package/node_modules/call-bind-apply-helpers/package.json +85 -0
- package/node_modules/call-bind-apply-helpers/reflectApply.d.ts +3 -0
- package/node_modules/call-bind-apply-helpers/reflectApply.js +4 -0
- package/node_modules/call-bind-apply-helpers/test/index.js +63 -0
- package/node_modules/call-bind-apply-helpers/tsconfig.json +9 -0
- package/node_modules/{has-proto → dunder-proto}/.github/FUNDING.yml +1 -1
- package/node_modules/dunder-proto/.nycrc +13 -0
- package/node_modules/dunder-proto/CHANGELOG.md +15 -0
- package/node_modules/dunder-proto/LICENSE +21 -0
- package/node_modules/dunder-proto/README.md +54 -0
- package/node_modules/dunder-proto/get.d.ts +5 -0
- package/node_modules/dunder-proto/get.js +23 -0
- package/node_modules/{has-proto → dunder-proto}/package.json +34 -36
- package/node_modules/dunder-proto/set.d.ts +5 -0
- package/node_modules/dunder-proto/set.js +29 -0
- package/node_modules/dunder-proto/test/get.js +34 -0
- package/node_modules/dunder-proto/test/index.js +4 -0
- package/node_modules/dunder-proto/test/set.js +41 -0
- package/node_modules/dunder-proto/tsconfig.json +9 -0
- package/node_modules/es-define-property/CHANGELOG.md +14 -0
- package/node_modules/es-define-property/index.js +1 -3
- package/node_modules/es-define-property/package.json +12 -12
- package/node_modules/es-define-property/test/index.js +1 -0
- package/node_modules/es-define-property/tsconfig.json +2 -42
- package/node_modules/express/History.md +10 -1
- package/node_modules/express/package.json +6 -2
- package/node_modules/get-intrinsic/CHANGELOG.md +18 -0
- package/node_modules/get-intrinsic/index.js +20 -20
- package/node_modules/get-intrinsic/package.json +21 -19
- package/node_modules/get-intrinsic/test/GetIntrinsic.js +2 -2
- package/node_modules/gopd/CHANGELOG.md +20 -0
- package/node_modules/gopd/gOPD.d.ts +1 -0
- package/node_modules/gopd/gOPD.js +4 -0
- package/node_modules/gopd/index.d.ts +5 -0
- package/node_modules/gopd/index.js +2 -3
- package/node_modules/gopd/package.json +16 -10
- package/node_modules/gopd/test/index.js +2 -1
- package/node_modules/gopd/tsconfig.json +9 -0
- package/node_modules/has-symbols/CHANGELOG.md +16 -0
- package/node_modules/has-symbols/index.d.ts +3 -0
- package/node_modules/has-symbols/index.js +1 -0
- package/node_modules/has-symbols/package.json +19 -9
- package/node_modules/has-symbols/shams.d.ts +3 -0
- package/node_modules/has-symbols/shams.js +5 -2
- package/node_modules/has-symbols/test/shams/core-js.js +1 -0
- package/node_modules/has-symbols/test/shams/get-own-property-symbols.js +1 -0
- package/node_modules/has-symbols/test/tests.js +4 -2
- package/node_modules/has-symbols/tsconfig.json +10 -0
- package/node_modules/path-to-regexp/index.js +13 -3
- package/node_modules/path-to-regexp/package.json +1 -1
- package/node_modules/psl/README.md +7 -14
- package/node_modules/psl/SECURITY.md +13 -0
- package/node_modules/psl/data/rules.js +536 -529
- package/node_modules/psl/dist/psl.cjs +1 -1
- package/node_modules/psl/dist/psl.mjs +726 -715
- package/node_modules/psl/dist/psl.umd.cjs +1 -1
- package/node_modules/psl/index.js +52 -74
- package/node_modules/psl/package.json +10 -7
- package/package.json +1 -1
- package/node_modules/has-proto/CHANGELOG.md +0 -38
- package/node_modules/has-proto/README.md +0 -38
- package/node_modules/has-proto/index.d.ts +0 -3
- package/node_modules/has-proto/index.js +0 -15
- package/node_modules/has-proto/test/index.js +0 -19
- package/node_modules/has-proto/tsconfig.json +0 -49
- /package/node_modules/{has-proto → dunder-proto}/.eslintrc +0 -0
|
@@ -1,62 +1,49 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
1
|
+
import punycode from 'punycode/punycode.js';
|
|
3
2
|
import rules from './data/rules.js';
|
|
4
3
|
|
|
5
|
-
|
|
6
|
-
var internals = {};
|
|
7
|
-
|
|
8
|
-
|
|
9
4
|
//
|
|
10
5
|
// Parse rules from file.
|
|
11
6
|
//
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
punySuffix: -1,
|
|
18
|
-
wildcard: rule.charAt(0) === '*',
|
|
19
|
-
exception: rule.charAt(0) === '!'
|
|
20
|
-
};
|
|
21
|
-
});
|
|
22
|
-
|
|
7
|
+
const rulesByPunySuffix = rules.reduce(
|
|
8
|
+
(map, rule) => {
|
|
9
|
+
const suffix = rule.replace(/^(\*\.|\!)/, '');
|
|
10
|
+
const punySuffix = punycode.toASCII(suffix);
|
|
11
|
+
const firstChar = rule.charAt(0);
|
|
23
12
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
internals.endsWith = function (str, suffix) {
|
|
13
|
+
if (map.has(punySuffix)) {
|
|
14
|
+
throw new Error(`Multiple rules found for ${rule} (${punySuffix})`);
|
|
15
|
+
}
|
|
28
16
|
|
|
29
|
-
|
|
30
|
-
|
|
17
|
+
map.set(punySuffix, {
|
|
18
|
+
rule,
|
|
19
|
+
suffix,
|
|
20
|
+
punySuffix,
|
|
21
|
+
wildcard: firstChar === '*',
|
|
22
|
+
exception: firstChar === '!'
|
|
23
|
+
});
|
|
31
24
|
|
|
25
|
+
return map;
|
|
26
|
+
},
|
|
27
|
+
new Map(),
|
|
28
|
+
);
|
|
32
29
|
|
|
33
30
|
//
|
|
34
31
|
// Find rule for a given domain.
|
|
35
32
|
//
|
|
36
|
-
|
|
33
|
+
const findRule = (domain) => {
|
|
34
|
+
const punyDomain = punycode.toASCII(domain);
|
|
35
|
+
const punyDomainChunks = punyDomain.split('.');
|
|
37
36
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
if (
|
|
42
|
-
|
|
43
|
-
}
|
|
44
|
-
if (!internals.endsWith(punyDomain, '.' + rule.punySuffix) && punyDomain !== rule.punySuffix) {
|
|
45
|
-
return memo;
|
|
37
|
+
for (let i = 0; i < punyDomainChunks.length; i++) {
|
|
38
|
+
const suffix = punyDomainChunks.slice(i).join('.');
|
|
39
|
+
const matchingRules = rulesByPunySuffix.get(suffix);
|
|
40
|
+
if (matchingRules) {
|
|
41
|
+
return matchingRules;
|
|
46
42
|
}
|
|
47
|
-
|
|
48
|
-
// sub tlds always appear after their parents and we never find a shorter
|
|
49
|
-
// match.
|
|
50
|
-
//if (memo) {
|
|
51
|
-
// var memoSuffix = Punycode.toASCII(memo.suffix);
|
|
52
|
-
// if (memoSuffix.length >= punySuffix.length) {
|
|
53
|
-
// return memo;
|
|
54
|
-
// }
|
|
55
|
-
//}
|
|
56
|
-
return rule;
|
|
57
|
-
}, null);
|
|
58
|
-
};
|
|
43
|
+
}
|
|
59
44
|
|
|
45
|
+
return null;
|
|
46
|
+
};
|
|
60
47
|
|
|
61
48
|
//
|
|
62
49
|
// Error codes and messages.
|
|
@@ -71,7 +58,6 @@ export const errorCodes = {
|
|
|
71
58
|
LABEL_INVALID_CHARS: 'Domain name label can only contain alphanumeric characters or dashes.'
|
|
72
59
|
};
|
|
73
60
|
|
|
74
|
-
|
|
75
61
|
//
|
|
76
62
|
// Validate domain name and throw if not valid.
|
|
77
63
|
//
|
|
@@ -91,10 +77,9 @@ export const errorCodes = {
|
|
|
91
77
|
// * http://en.wikipedia.org/wiki/Domain_name
|
|
92
78
|
// * http://en.wikipedia.org/wiki/Hostname
|
|
93
79
|
//
|
|
94
|
-
|
|
95
|
-
|
|
80
|
+
const validate = (input) => {
|
|
96
81
|
// Before we can validate we need to take care of IDNs with unicode chars.
|
|
97
|
-
|
|
82
|
+
const ascii = punycode.toASCII(input);
|
|
98
83
|
|
|
99
84
|
if (ascii.length < 1) {
|
|
100
85
|
return 'DOMAIN_TOO_SHORT';
|
|
@@ -104,10 +89,10 @@ internals.validate = function (input) {
|
|
|
104
89
|
}
|
|
105
90
|
|
|
106
91
|
// Check each part's length and allowed chars.
|
|
107
|
-
|
|
108
|
-
|
|
92
|
+
const labels = ascii.split('.');
|
|
93
|
+
let label;
|
|
109
94
|
|
|
110
|
-
for (
|
|
95
|
+
for (let i = 0; i < labels.length; ++i) {
|
|
111
96
|
label = labels[i];
|
|
112
97
|
if (!label.length) {
|
|
113
98
|
return 'LABEL_TOO_SHORT';
|
|
@@ -121,29 +106,26 @@ internals.validate = function (input) {
|
|
|
121
106
|
if (label.charAt(label.length - 1) === '-') {
|
|
122
107
|
return 'LABEL_ENDS_WITH_DASH';
|
|
123
108
|
}
|
|
124
|
-
if (!/^[a-z0-9\-]+$/.test(label)) {
|
|
109
|
+
if (!/^[a-z0-9\-_]+$/.test(label)) {
|
|
125
110
|
return 'LABEL_INVALID_CHARS';
|
|
126
111
|
}
|
|
127
112
|
}
|
|
128
113
|
};
|
|
129
114
|
|
|
130
|
-
|
|
131
115
|
//
|
|
132
116
|
// Public API
|
|
133
117
|
//
|
|
134
118
|
|
|
135
|
-
|
|
136
119
|
//
|
|
137
120
|
// Parse domain.
|
|
138
121
|
//
|
|
139
|
-
export const parse =
|
|
140
|
-
|
|
122
|
+
export const parse = (input) => {
|
|
141
123
|
if (typeof input !== 'string') {
|
|
142
124
|
throw new TypeError('Domain name must be a string.');
|
|
143
125
|
}
|
|
144
126
|
|
|
145
127
|
// Force domain to lowercase.
|
|
146
|
-
|
|
128
|
+
let domain = input.slice(0).toLowerCase();
|
|
147
129
|
|
|
148
130
|
// Handle FQDN.
|
|
149
131
|
// TODO: Simply remove trailing dot?
|
|
@@ -152,7 +134,7 @@ export const parse = function (input) {
|
|
|
152
134
|
}
|
|
153
135
|
|
|
154
136
|
// Validate and sanitise input.
|
|
155
|
-
|
|
137
|
+
const error = validate(domain);
|
|
156
138
|
if (error) {
|
|
157
139
|
return {
|
|
158
140
|
input: input,
|
|
@@ -163,7 +145,7 @@ export const parse = function (input) {
|
|
|
163
145
|
};
|
|
164
146
|
}
|
|
165
147
|
|
|
166
|
-
|
|
148
|
+
const parsed = {
|
|
167
149
|
input: input,
|
|
168
150
|
tld: null,
|
|
169
151
|
sld: null,
|
|
@@ -172,28 +154,27 @@ export const parse = function (input) {
|
|
|
172
154
|
listed: false
|
|
173
155
|
};
|
|
174
156
|
|
|
175
|
-
|
|
157
|
+
const domainParts = domain.split('.');
|
|
176
158
|
|
|
177
159
|
// Non-Internet TLD
|
|
178
160
|
if (domainParts[domainParts.length - 1] === 'local') {
|
|
179
161
|
return parsed;
|
|
180
162
|
}
|
|
181
163
|
|
|
182
|
-
|
|
183
|
-
|
|
164
|
+
const handlePunycode = () => {
|
|
184
165
|
if (!/xn--/.test(domain)) {
|
|
185
166
|
return parsed;
|
|
186
167
|
}
|
|
187
168
|
if (parsed.domain) {
|
|
188
|
-
parsed.domain =
|
|
169
|
+
parsed.domain = punycode.toASCII(parsed.domain);
|
|
189
170
|
}
|
|
190
171
|
if (parsed.subdomain) {
|
|
191
|
-
parsed.subdomain =
|
|
172
|
+
parsed.subdomain = punycode.toASCII(parsed.subdomain);
|
|
192
173
|
}
|
|
193
174
|
return parsed;
|
|
194
175
|
};
|
|
195
176
|
|
|
196
|
-
|
|
177
|
+
const rule = findRule(domain);
|
|
197
178
|
|
|
198
179
|
// Unlisted tld.
|
|
199
180
|
if (!rule) {
|
|
@@ -206,14 +187,15 @@ export const parse = function (input) {
|
|
|
206
187
|
if (domainParts.length) {
|
|
207
188
|
parsed.subdomain = domainParts.pop();
|
|
208
189
|
}
|
|
190
|
+
|
|
209
191
|
return handlePunycode();
|
|
210
192
|
}
|
|
211
193
|
|
|
212
194
|
// At this point we know the public suffix is listed.
|
|
213
195
|
parsed.listed = true;
|
|
214
196
|
|
|
215
|
-
|
|
216
|
-
|
|
197
|
+
const tldParts = rule.suffix.split('.');
|
|
198
|
+
const privateParts = domainParts.slice(0, domainParts.length - tldParts.length);
|
|
217
199
|
|
|
218
200
|
if (rule.exception) {
|
|
219
201
|
privateParts.push(tldParts.shift());
|
|
@@ -244,25 +226,21 @@ export const parse = function (input) {
|
|
|
244
226
|
return handlePunycode();
|
|
245
227
|
};
|
|
246
228
|
|
|
247
|
-
|
|
248
229
|
//
|
|
249
230
|
// Get domain.
|
|
250
231
|
//
|
|
251
|
-
export const get =
|
|
252
|
-
|
|
232
|
+
export const get = (domain) => {
|
|
253
233
|
if (!domain) {
|
|
254
234
|
return null;
|
|
255
235
|
}
|
|
256
236
|
return parse(domain).domain || null;
|
|
257
237
|
};
|
|
258
238
|
|
|
259
|
-
|
|
260
239
|
//
|
|
261
240
|
// Check whether domain belongs to a known public suffix.
|
|
262
241
|
//
|
|
263
|
-
export const isValid =
|
|
264
|
-
|
|
265
|
-
var parsed = parse(domain);
|
|
242
|
+
export const isValid = (domain) => {
|
|
243
|
+
const parsed = parse(domain);
|
|
266
244
|
return Boolean(parsed.domain && parsed.listed);
|
|
267
245
|
};
|
|
268
246
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "psl",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.15.0",
|
|
4
4
|
"description": "Domain name parser based on the Public Suffix List",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -23,6 +23,7 @@
|
|
|
23
23
|
"update-rules": "./scripts/update-rules.js",
|
|
24
24
|
"build": "vite build",
|
|
25
25
|
"postbuild": "ln -s ./psl.umd.cjs dist/psl.js && ln -s ./psl.umd.cjs dist/psl.min.js",
|
|
26
|
+
"benchmark": "node --experimental-vm-modules --no-warnings benchmark/suite.js",
|
|
26
27
|
"changelog": "git log $(git describe --tags --abbrev=0)..HEAD --oneline --format=\"%h %s (%an <%ae>)\""
|
|
27
28
|
},
|
|
28
29
|
"keywords": [
|
|
@@ -30,19 +31,21 @@
|
|
|
30
31
|
"publicsuffixlist"
|
|
31
32
|
],
|
|
32
33
|
"author": "Lupo Montero <lupomontero@gmail.com> (https://lupomontero.com/)",
|
|
34
|
+
"funding": "https://github.com/sponsors/lupomontero",
|
|
33
35
|
"license": "MIT",
|
|
34
36
|
"dependencies": {
|
|
35
37
|
"punycode": "^2.3.1"
|
|
36
38
|
},
|
|
37
39
|
"devDependencies": {
|
|
38
|
-
"@eslint/js": "^9.
|
|
40
|
+
"@eslint/js": "^9.16.0",
|
|
39
41
|
"@playwright/test": "^1.49.0",
|
|
40
42
|
"@types/eslint__js": "^8.42.3",
|
|
41
|
-
"
|
|
42
|
-
"
|
|
43
|
+
"benchmark": "^2.1.4",
|
|
44
|
+
"browserstack-node-sdk": "^1.34.27",
|
|
45
|
+
"eslint": "^9.16.0",
|
|
43
46
|
"mocha": "^10.8.2",
|
|
44
|
-
"typescript": "^5.
|
|
45
|
-
"typescript-eslint": "^8.
|
|
46
|
-
"vite": "^
|
|
47
|
+
"typescript": "^5.7.2",
|
|
48
|
+
"typescript-eslint": "^8.16.0",
|
|
49
|
+
"vite": "^6.0.2"
|
|
47
50
|
}
|
|
48
51
|
}
|
package/package.json
CHANGED
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
# Changelog
|
|
2
|
-
|
|
3
|
-
All notable changes to this project will be documented in this file.
|
|
4
|
-
|
|
5
|
-
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
|
|
6
|
-
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
|
-
|
|
8
|
-
## [v1.0.3](https://github.com/inspect-js/has-proto/compare/v1.0.2...v1.0.3) - 2024-02-19
|
|
9
|
-
|
|
10
|
-
### Commits
|
|
11
|
-
|
|
12
|
-
- [types] add missing declaration file [`26ecade`](https://github.com/inspect-js/has-proto/commit/26ecade05d253bb5dc376945ee3186d1fbe334f8)
|
|
13
|
-
|
|
14
|
-
## [v1.0.2](https://github.com/inspect-js/has-proto/compare/v1.0.1...v1.0.2) - 2024-02-19
|
|
15
|
-
|
|
16
|
-
### Commits
|
|
17
|
-
|
|
18
|
-
- add types [`6435262`](https://github.com/inspect-js/has-proto/commit/64352626cf511c0276d5f4bb6be770a0bf0f8524)
|
|
19
|
-
- [Dev Deps] update `@ljharb/eslint-config`, `aud`, `npmignore`, `tape` [`f16a5e4`](https://github.com/inspect-js/has-proto/commit/f16a5e4121651e551271419f9d60fdd3561fd82c)
|
|
20
|
-
- [Refactor] tiny cleanup [`d1f1a4b`](https://github.com/inspect-js/has-proto/commit/d1f1a4bdc135f115a10f148ce302676224534702)
|
|
21
|
-
- [meta] add `sideEffects` flag [`e7ab1a6`](https://github.com/inspect-js/has-proto/commit/e7ab1a6f153b3e80dee68d1748b71e46767a0531)
|
|
22
|
-
|
|
23
|
-
## [v1.0.1](https://github.com/inspect-js/has-proto/compare/v1.0.0...v1.0.1) - 2022-12-21
|
|
24
|
-
|
|
25
|
-
### Commits
|
|
26
|
-
|
|
27
|
-
- [meta] correct URLs and description [`ef34483`](https://github.com/inspect-js/has-proto/commit/ef34483ca0d35680f271b6b96e35526151b25dfc)
|
|
28
|
-
- [patch] add an additional criteria [`e81959e`](https://github.com/inspect-js/has-proto/commit/e81959ed7c7a77fbf459f00cb4ef824f1099497f)
|
|
29
|
-
- [Dev Deps] update `aud` [`2bec2c4`](https://github.com/inspect-js/has-proto/commit/2bec2c47b072b122ff5443fba0263f6dc649531f)
|
|
30
|
-
|
|
31
|
-
## v1.0.0 - 2022-12-12
|
|
32
|
-
|
|
33
|
-
### Commits
|
|
34
|
-
|
|
35
|
-
- Initial implementation, tests, readme [`6886fea`](https://github.com/inspect-js/has-proto/commit/6886fea578f67daf69a7920b2eb7637ea6ebb0bc)
|
|
36
|
-
- Initial commit [`99129c8`](https://github.com/inspect-js/has-proto/commit/99129c8f42471ac89cb681ba9cb9d52a583eb94f)
|
|
37
|
-
- npm init [`2844ad8`](https://github.com/inspect-js/has-proto/commit/2844ad8e75b84d66a46765b3bab9d2e8ea692e10)
|
|
38
|
-
- Only apps should have lockfiles [`c65bc5e`](https://github.com/inspect-js/has-proto/commit/c65bc5e40b9004463f7336d47c67245fb139a36a)
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
# has-proto <sup>[![Version Badge][npm-version-svg]][package-url]</sup>
|
|
2
|
-
|
|
3
|
-
[![github actions][actions-image]][actions-url]
|
|
4
|
-
[![coverage][codecov-image]][codecov-url]
|
|
5
|
-
[![License][license-image]][license-url]
|
|
6
|
-
[![Downloads][downloads-image]][downloads-url]
|
|
7
|
-
|
|
8
|
-
[![npm badge][npm-badge-png]][package-url]
|
|
9
|
-
|
|
10
|
-
Does this environment have the ability to set the [[Prototype]] of an object on creation with `__proto__`?
|
|
11
|
-
|
|
12
|
-
## Example
|
|
13
|
-
|
|
14
|
-
```js
|
|
15
|
-
var hasProto = require('has-proto');
|
|
16
|
-
var assert = require('assert');
|
|
17
|
-
|
|
18
|
-
assert.equal(typeof hasProto(), 'boolean');
|
|
19
|
-
```
|
|
20
|
-
|
|
21
|
-
## Tests
|
|
22
|
-
Simply clone the repo, `npm install`, and run `npm test`
|
|
23
|
-
|
|
24
|
-
[package-url]: https://npmjs.org/package/has-proto
|
|
25
|
-
[npm-version-svg]: https://versionbadg.es/inspect-js/has-proto.svg
|
|
26
|
-
[deps-svg]: https://david-dm.org/inspect-js/has-proto.svg
|
|
27
|
-
[deps-url]: https://david-dm.org/inspect-js/has-proto
|
|
28
|
-
[dev-deps-svg]: https://david-dm.org/inspect-js/has-proto/dev-status.svg
|
|
29
|
-
[dev-deps-url]: https://david-dm.org/inspect-js/has-proto#info=devDependencies
|
|
30
|
-
[npm-badge-png]: https://nodei.co/npm/has-proto.png?downloads=true&stars=true
|
|
31
|
-
[license-image]: https://img.shields.io/npm/l/has-proto.svg
|
|
32
|
-
[license-url]: LICENSE
|
|
33
|
-
[downloads-image]: https://img.shields.io/npm/dm/has-proto.svg
|
|
34
|
-
[downloads-url]: https://npm-stat.com/charts.html?package=has-proto
|
|
35
|
-
[codecov-image]: https://codecov.io/gh/inspect-js/has-proto/branch/main/graphs/badge.svg
|
|
36
|
-
[codecov-url]: https://app.codecov.io/gh/inspect-js/has-proto/
|
|
37
|
-
[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/inspect-js/has-proto
|
|
38
|
-
[actions-url]: https://github.com/inspect-js/has-proto/actions
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var test = {
|
|
4
|
-
__proto__: null,
|
|
5
|
-
foo: {}
|
|
6
|
-
};
|
|
7
|
-
|
|
8
|
-
var $Object = Object;
|
|
9
|
-
|
|
10
|
-
/** @type {import('.')} */
|
|
11
|
-
module.exports = function hasProto() {
|
|
12
|
-
// @ts-expect-error: TS errors on an inherited property for some reason
|
|
13
|
-
return { __proto__: test }.foo === test.foo
|
|
14
|
-
&& !(test instanceof $Object);
|
|
15
|
-
};
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var test = require('tape');
|
|
4
|
-
var hasProto = require('../');
|
|
5
|
-
|
|
6
|
-
test('hasProto', function (t) {
|
|
7
|
-
var result = hasProto();
|
|
8
|
-
t.equal(typeof result, 'boolean', 'returns a boolean (' + result + ')');
|
|
9
|
-
|
|
10
|
-
var obj = { __proto__: null };
|
|
11
|
-
if (result) {
|
|
12
|
-
t.notOk('toString' in obj, 'null object lacks toString');
|
|
13
|
-
} else {
|
|
14
|
-
t.ok('toString' in obj, 'without proto, null object has toString');
|
|
15
|
-
t.equal(obj.__proto__, null); // eslint-disable-line no-proto
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
t.end();
|
|
19
|
-
});
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"compilerOptions": {
|
|
3
|
-
/* Visit https://aka.ms/tsconfig to read more about this file */
|
|
4
|
-
|
|
5
|
-
/* Projects */
|
|
6
|
-
|
|
7
|
-
/* Language and Environment */
|
|
8
|
-
"target": "ESNext", /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */
|
|
9
|
-
// "lib": [], /* Specify a set of bundled library declaration files that describe the target runtime environment. */
|
|
10
|
-
// "noLib": true, /* Disable including any library files, including the default lib.d.ts. */
|
|
11
|
-
"useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */
|
|
12
|
-
// "moduleDetection": "auto", /* Control what method is used to detect module-format JS files. */
|
|
13
|
-
|
|
14
|
-
/* Modules */
|
|
15
|
-
"module": "commonjs", /* Specify what module code is generated. */
|
|
16
|
-
// "rootDir": "./", /* Specify the root folder within your source files. */
|
|
17
|
-
// "moduleResolution": "node10", /* Specify how TypeScript looks up a file from a given module specifier. */
|
|
18
|
-
// "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */
|
|
19
|
-
// "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */
|
|
20
|
-
// "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */
|
|
21
|
-
"typeRoots": ["types"], /* Specify multiple folders that act like './node_modules/@types'. */
|
|
22
|
-
"resolveJsonModule": true, /* Enable importing .json files. */
|
|
23
|
-
// "allowArbitraryExtensions": true, /* Enable importing files with any extension, provided a declaration file is present. */
|
|
24
|
-
|
|
25
|
-
/* JavaScript Support */
|
|
26
|
-
"allowJs": true, /* Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. */
|
|
27
|
-
"checkJs": true, /* Enable error reporting in type-checked JavaScript files. */
|
|
28
|
-
"maxNodeModuleJsDepth": 0, /* Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'. */
|
|
29
|
-
|
|
30
|
-
/* Emit */
|
|
31
|
-
"declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */
|
|
32
|
-
"declarationMap": true, /* Create sourcemaps for d.ts files. */
|
|
33
|
-
"noEmit": true, /* Disable emitting files from a compilation. */
|
|
34
|
-
|
|
35
|
-
/* Interop Constraints */
|
|
36
|
-
"allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */
|
|
37
|
-
"esModuleInterop": true, /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */
|
|
38
|
-
"forceConsistentCasingInFileNames": true, /* Ensure that casing is correct in imports. */
|
|
39
|
-
|
|
40
|
-
/* Type Checking */
|
|
41
|
-
"strict": true, /* Enable all strict type-checking options. */
|
|
42
|
-
|
|
43
|
-
/* Completeness */
|
|
44
|
-
//"skipLibCheck": true /* Skip type checking all .d.ts files. */
|
|
45
|
-
},
|
|
46
|
-
"exclude": [
|
|
47
|
-
"coverage"
|
|
48
|
-
]
|
|
49
|
-
}
|
|
File without changes
|