@ac-kit/core 0.1.0 → 0.2.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/CHANGELOG.md +74 -0
- package/dist/big-int/is-safe-number.d.ts +20 -0
- package/dist/big-int/is-safe-number.d.ts.map +1 -0
- package/dist/big-int/is-safe-number.js +24 -0
- package/dist/big-int/is-safe-number.js.map +1 -0
- package/dist/guards/has-object-prototype.d.ts +27 -0
- package/dist/guards/has-object-prototype.d.ts.map +1 -0
- package/dist/guards/has-object-prototype.js +30 -0
- package/dist/guards/has-object-prototype.js.map +1 -0
- package/dist/guards/is-object.d.ts +28 -2
- package/dist/guards/is-object.d.ts.map +1 -1
- package/dist/guards/is-object.js +28 -2
- package/dist/guards/is-object.js.map +1 -1
- package/dist/guards/is-pojo.d.ts +27 -2
- package/dist/guards/is-pojo.d.ts.map +1 -1
- package/dist/guards/is-pojo.js +27 -2
- package/dist/guards/is-pojo.js.map +1 -1
- package/dist/index.d.ts +11 -13
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -13
- package/dist/index.js.map +1 -1
- package/dist/json/replacers/big-int.d.ts.map +1 -1
- package/dist/json/replacers/big-int.js +2 -5
- package/dist/json/replacers/big-int.js.map +1 -1
- package/dist/number/parse-number-or-big-int.d.ts +30 -0
- package/dist/number/parse-number-or-big-int.d.ts.map +1 -0
- package/dist/number/parse-number-or-big-int.js +44 -0
- package/dist/number/parse-number-or-big-int.js.map +1 -0
- package/dist/object/defaults.d.ts.map +1 -1
- package/dist/object/defaults.js +11 -4
- package/dist/object/defaults.js.map +1 -1
- package/dist/object/get-at-path.d.ts +5 -0
- package/dist/object/get-at-path.d.ts.map +1 -1
- package/dist/object/get-at-path.js +5 -0
- package/dist/object/get-at-path.js.map +1 -1
- package/dist/object/is-unsafe-record-key.d.ts +26 -0
- package/dist/object/is-unsafe-record-key.d.ts.map +1 -0
- package/dist/object/is-unsafe-record-key.js +28 -0
- package/dist/object/is-unsafe-record-key.js.map +1 -0
- package/dist/object/merge-inplace.d.ts.map +1 -1
- package/dist/object/merge-inplace.js +4 -2
- package/dist/object/merge-inplace.js.map +1 -1
- package/dist/object/merge.d.ts.map +1 -1
- package/dist/object/merge.js +4 -2
- package/dist/object/merge.js.map +1 -1
- package/dist/object/null-if-empty.d.ts +12 -0
- package/dist/object/null-if-empty.d.ts.map +1 -0
- package/dist/object/null-if-empty.js +17 -0
- package/dist/object/null-if-empty.js.map +1 -0
- package/dist/object/set-at-path.d.ts +5 -0
- package/dist/object/set-at-path.d.ts.map +1 -1
- package/dist/object/set-at-path.js +10 -3
- package/dist/object/set-at-path.js.map +1 -1
- package/dist/object/set-record-entry.d.ts +32 -0
- package/dist/object/set-record-entry.d.ts.map +1 -0
- package/dist/object/set-record-entry.js +43 -0
- package/dist/object/set-record-entry.js.map +1 -0
- package/dist/object/traverse.js +3 -3
- package/dist/object/traverse.js.map +1 -1
- package/dist/system/fs/escape-posix-path.d.ts.map +1 -0
- package/dist/system/fs/escape-posix-path.js.map +1 -0
- package/dist/system/fs/escape-win32-path.d.ts.map +1 -0
- package/dist/system/fs/escape-win32-path.js.map +1 -0
- package/dist/system/net/ephemeral-port.d.ts.map +1 -0
- package/dist/system/net/ephemeral-port.js.map +1 -0
- package/dist/system/net/inet-address.d.ts.map +1 -0
- package/dist/system/net/inet-address.js.map +1 -0
- package/dist/system/net/inet-endpoint.d.ts.map +1 -0
- package/dist/system/net/inet-endpoint.js.map +1 -0
- package/package.json +2 -2
- package/dist/guards/is-plain-object.d.ts +0 -8
- package/dist/guards/is-plain-object.d.ts.map +0 -1
- package/dist/guards/is-plain-object.js +0 -11
- package/dist/guards/is-plain-object.js.map +0 -1
- package/dist/net/ephemeral-port.d.ts.map +0 -1
- package/dist/net/ephemeral-port.js.map +0 -1
- package/dist/net/inet-address.d.ts.map +0 -1
- package/dist/net/inet-address.js.map +0 -1
- package/dist/net/inet-endpoint.d.ts.map +0 -1
- package/dist/net/inet-endpoint.js.map +0 -1
- package/dist/shell/fs/escape-posix-path.d.ts.map +0 -1
- package/dist/shell/fs/escape-posix-path.js.map +0 -1
- package/dist/shell/fs/escape-win32-path.d.ts.map +0 -1
- package/dist/shell/fs/escape-win32-path.js.map +0 -1
- package/dist/shell/process/parse-env-variable.d.ts +0 -43
- package/dist/shell/process/parse-env-variable.d.ts.map +0 -1
- package/dist/shell/process/parse-env-variable.js +0 -109
- package/dist/shell/process/parse-env-variable.js.map +0 -1
- package/dist/shell/process/stringify-env-variable.d.ts +0 -50
- package/dist/shell/process/stringify-env-variable.d.ts.map +0 -1
- package/dist/shell/process/stringify-env-variable.js +0 -86
- package/dist/shell/process/stringify-env-variable.js.map +0 -1
- package/dist/shell/process/types.d.ts +0 -7
- package/dist/shell/process/types.d.ts.map +0 -1
- package/dist/shell/process/types.js +0 -2
- package/dist/shell/process/types.js.map +0 -1
- package/dist/shell/shell/escape-posix-sh-command-arg.d.ts +0 -20
- package/dist/shell/shell/escape-posix-sh-command-arg.d.ts.map +0 -1
- package/dist/shell/shell/escape-posix-sh-command-arg.js +0 -26
- package/dist/shell/shell/escape-posix-sh-command-arg.js.map +0 -1
- package/dist/shell/shell/escape-posix-sh-command.d.ts +0 -19
- package/dist/shell/shell/escape-posix-sh-command.d.ts.map +0 -1
- package/dist/shell/shell/escape-posix-sh-command.js +0 -55
- package/dist/shell/shell/escape-posix-sh-command.js.map +0 -1
- package/dist/shell/shell/escape-posix-sh-sqe.d.ts +0 -13
- package/dist/shell/shell/escape-posix-sh-sqe.d.ts.map +0 -1
- package/dist/shell/shell/escape-posix-sh-sqe.js +0 -15
- package/dist/shell/shell/escape-posix-sh-sqe.js.map +0 -1
- package/dist/shell/shell/escape-win32-cmd-command-arg.d.ts +0 -20
- package/dist/shell/shell/escape-win32-cmd-command-arg.d.ts.map +0 -1
- package/dist/shell/shell/escape-win32-cmd-command-arg.js +0 -29
- package/dist/shell/shell/escape-win32-cmd-command-arg.js.map +0 -1
- package/dist/shell/shell/escape-win32-cmd-command.d.ts +0 -18
- package/dist/shell/shell/escape-win32-cmd-command.d.ts.map +0 -1
- package/dist/shell/shell/escape-win32-cmd-command.js +0 -20
- package/dist/shell/shell/escape-win32-cmd-command.js.map +0 -1
- /package/dist/{shell → system}/fs/escape-posix-path.d.ts +0 -0
- /package/dist/{shell → system}/fs/escape-posix-path.js +0 -0
- /package/dist/{shell → system}/fs/escape-win32-path.d.ts +0 -0
- /package/dist/{shell → system}/fs/escape-win32-path.js +0 -0
- /package/dist/{net → system/net}/ephemeral-port.d.ts +0 -0
- /package/dist/{net → system/net}/ephemeral-port.js +0 -0
- /package/dist/{net → system/net}/inet-address.d.ts +0 -0
- /package/dist/{net → system/net}/inet-address.js +0 -0
- /package/dist/{net → system/net}/inet-endpoint.d.ts +0 -0
- /package/dist/{net → system/net}/inet-endpoint.js +0 -0
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Parse a numeric literal, widening to `bigint` rather than rounding.
|
|
3
|
+
*
|
|
4
|
+
* An integer the double range cannot hold exactly comes back as a `bigint`, so
|
|
5
|
+
* no value is silently rounded; everything else comes back as a `number`, so a
|
|
6
|
+
* caller only ever meets a `bigint` where it changes the answer.
|
|
7
|
+
*
|
|
8
|
+
* Accepts what `BigInt()` accepts — an optional sign, decimal digits, and the
|
|
9
|
+
* `0b`/`0o`/`0x` prefixes — and otherwise what `Number()` accepts: a fractional
|
|
10
|
+
* part, an exponent, and `Infinity`. Surrounding whitespace is ignored by both.
|
|
11
|
+
* Blank text is `null` here, where `Number("")` answers `0`.
|
|
12
|
+
*
|
|
13
|
+
* Use this to read a number out of text a human wrote — an environment
|
|
14
|
+
* variable, a config field, a CLI argument. Prefer `bigIntParse` when the value
|
|
15
|
+
* must be an integer, or when the radix is known and not spelled in the text;
|
|
16
|
+
* it reports a malformed input by throwing instead of by returning `null`.
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* ```ts
|
|
20
|
+
* parseNumberOrBigInt("42"); // 42
|
|
21
|
+
* parseNumberOrBigInt("1.5e3"); // 1500
|
|
22
|
+
* parseNumberOrBigInt("9007199254740993"); // 9007199254740993n
|
|
23
|
+
* parseNumberOrBigInt("abc"); // null
|
|
24
|
+
* ```;
|
|
25
|
+
*
|
|
26
|
+
* @param text The text to parse.
|
|
27
|
+
* @returns The number or bigint it spells, or null if it spells neither.
|
|
28
|
+
*/
|
|
29
|
+
export declare function parseNumberOrBigInt(text: string): number | bigint | null;
|
|
30
|
+
//# sourceMappingURL=parse-number-or-big-int.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parse-number-or-big-int.d.ts","sourceRoot":"","sources":["../../src/number/parse-number-or-big-int.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,CAaxE"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { bigIntIsSafeNumber } from "../big-int/is-safe-number.js";
|
|
2
|
+
/**
|
|
3
|
+
* Parse a numeric literal, widening to `bigint` rather than rounding.
|
|
4
|
+
*
|
|
5
|
+
* An integer the double range cannot hold exactly comes back as a `bigint`, so
|
|
6
|
+
* no value is silently rounded; everything else comes back as a `number`, so a
|
|
7
|
+
* caller only ever meets a `bigint` where it changes the answer.
|
|
8
|
+
*
|
|
9
|
+
* Accepts what `BigInt()` accepts — an optional sign, decimal digits, and the
|
|
10
|
+
* `0b`/`0o`/`0x` prefixes — and otherwise what `Number()` accepts: a fractional
|
|
11
|
+
* part, an exponent, and `Infinity`. Surrounding whitespace is ignored by both.
|
|
12
|
+
* Blank text is `null` here, where `Number("")` answers `0`.
|
|
13
|
+
*
|
|
14
|
+
* Use this to read a number out of text a human wrote — an environment
|
|
15
|
+
* variable, a config field, a CLI argument. Prefer `bigIntParse` when the value
|
|
16
|
+
* must be an integer, or when the radix is known and not spelled in the text;
|
|
17
|
+
* it reports a malformed input by throwing instead of by returning `null`.
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* ```ts
|
|
21
|
+
* parseNumberOrBigInt("42"); // 42
|
|
22
|
+
* parseNumberOrBigInt("1.5e3"); // 1500
|
|
23
|
+
* parseNumberOrBigInt("9007199254740993"); // 9007199254740993n
|
|
24
|
+
* parseNumberOrBigInt("abc"); // null
|
|
25
|
+
* ```;
|
|
26
|
+
*
|
|
27
|
+
* @param text The text to parse.
|
|
28
|
+
* @returns The number or bigint it spells, or null if it spells neither.
|
|
29
|
+
*/
|
|
30
|
+
export function parseNumberOrBigInt(text) {
|
|
31
|
+
// `BigInt("")` and `Number("")` both answer 0, which no caller means by blank.
|
|
32
|
+
if (text.trim().length === 0) {
|
|
33
|
+
return null;
|
|
34
|
+
}
|
|
35
|
+
try {
|
|
36
|
+
const integer = BigInt(text);
|
|
37
|
+
return bigIntIsSafeNumber(integer) ? Number(integer) : integer;
|
|
38
|
+
}
|
|
39
|
+
catch {
|
|
40
|
+
const float = Number(text);
|
|
41
|
+
return Number.isNaN(float) ? null : float;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=parse-number-or-big-int.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parse-number-or-big-int.js","sourceRoot":"","sources":["../../src/number/parse-number-or-big-int.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAElE;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAY;IAC/C,+EAA+E;IAC/E,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC;IACb,CAAC;IAED,IAAI,CAAC;QACJ,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QAC7B,OAAO,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IAChE,CAAC;IAAC,MAAM,CAAC;QACR,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QAC3B,OAAO,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;IAC3C,CAAC;AACF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../src/object/defaults.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../src/object/defaults.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,QAAQ,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,EACvE,GAAG,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC,GACvC,CAAC,CAmBH"}
|
package/dist/object/defaults.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { setRecordEntry } from "./set-record-entry.js";
|
|
1
2
|
/**
|
|
2
3
|
* Assign default options to an object.
|
|
3
4
|
*
|
|
@@ -20,10 +21,16 @@
|
|
|
20
21
|
export function defaults(...args) {
|
|
21
22
|
return args.reduce((result, arg) => {
|
|
22
23
|
if (arg) {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
24
|
+
// Own keys only: `for...in` would walk a hostile source's prototype too,
|
|
25
|
+
// and reading `result[key]` through the chain hides `__proto__` behind a
|
|
26
|
+
// value that is never `undefined`.
|
|
27
|
+
for (const key of Object.keys(arg)) {
|
|
28
|
+
const value = arg[key];
|
|
29
|
+
const current = Object.hasOwn(result, key)
|
|
30
|
+
? result[key]
|
|
31
|
+
: undefined;
|
|
32
|
+
if (current === undefined && value !== undefined) {
|
|
33
|
+
setRecordEntry(result, key, value);
|
|
27
34
|
}
|
|
28
35
|
}
|
|
29
36
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../src/object/defaults.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,QAAQ,CACvB,GAAG,IAAsC;IAEzC,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,MAAa,EAAE,GAAG,EAAE,EAAE;QACzC,IAAI,GAAG,EAAE,CAAC;YACT,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../src/object/defaults.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,QAAQ,CACvB,GAAG,IAAsC;IAEzC,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,MAAa,EAAE,GAAG,EAAE,EAAE;QACzC,IAAI,GAAG,EAAE,CAAC;YACT,yEAAyE;YACzE,yEAAyE;YACzE,mCAAmC;YACnC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;gBACpC,MAAM,KAAK,GAAI,GAAqB,CAAC,GAAG,CAAC,CAAC;gBAC1C,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;oBACzC,CAAC,CAAE,MAAwB,CAAC,GAAG,CAAC;oBAChC,CAAC,CAAC,SAAS,CAAC;gBAEb,IAAI,OAAO,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;oBAClD,cAAc,CAAC,MAAuB,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;gBACrD,CAAC;YACF,CAAC;QACF,CAAC;QACD,OAAO,MAAM,CAAC;IACf,CAAC,EAAE,EAAO,CAAM,CAAC;AAClB,CAAC"}
|
|
@@ -6,6 +6,11 @@ export type PropertyPath = readonly (string | number)[];
|
|
|
6
6
|
/**
|
|
7
7
|
* Gets the value at `path` inside `root`.
|
|
8
8
|
*
|
|
9
|
+
* Unlike `setAtPath`, this does not refuse a path through `__proto__`,
|
|
10
|
+
* `constructor` or `prototype`: reading one hands back a prototype the caller
|
|
11
|
+
* could already reach through any object it holds, so refusing it would cost an
|
|
12
|
+
* honest lookup and prevent nothing.
|
|
13
|
+
*
|
|
9
14
|
* @param root The root object/array to traverse
|
|
10
15
|
* @param path The path to traverse
|
|
11
16
|
* @returns The value at the path, or `undefined` if the path does not exist.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-at-path.d.ts","sourceRoot":"","sources":["../../src/object/get-at-path.ts"],"names":[],"mappings":"AAIA;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;AAExD
|
|
1
|
+
{"version":3,"file":"get-at-path.d.ts","sourceRoot":"","sources":["../../src/object/get-at-path.ts"],"names":[],"mappings":"AAIA;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;AAExD;;;;;;;;;;;GAWG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,GAAG,OAAO,CAkBpE"}
|
|
@@ -2,6 +2,11 @@ import { isObject } from "../guards/is-object.js";
|
|
|
2
2
|
/**
|
|
3
3
|
* Gets the value at `path` inside `root`.
|
|
4
4
|
*
|
|
5
|
+
* Unlike `setAtPath`, this does not refuse a path through `__proto__`,
|
|
6
|
+
* `constructor` or `prototype`: reading one hands back a prototype the caller
|
|
7
|
+
* could already reach through any object it holds, so refusing it would cost an
|
|
8
|
+
* honest lookup and prevent nothing.
|
|
9
|
+
*
|
|
5
10
|
* @param root The root object/array to traverse
|
|
6
11
|
* @param path The path to traverse
|
|
7
12
|
* @returns The value at the path, or `undefined` if the path does not exist.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-at-path.js","sourceRoot":"","sources":["../../src/object/get-at-path.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAQlD
|
|
1
|
+
{"version":3,"file":"get-at-path.js","sourceRoot":"","sources":["../../src/object/get-at-path.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAQlD;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,SAAS,CAAC,IAAa,EAAE,IAAkB;IAC1D,IAAI,OAAO,GAAG,IAAI,CAAC;IAEnB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACxB,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5B,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC;YACnB,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;gBACzB,OAAO;YACR,CAAC;YACD,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;aAAM,IAAI,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YAC9B,OAAO,GAAI,OAAyB,CAAC,GAAG,CAAC,CAAC;QAC3C,CAAC;aAAM,CAAC;YACP,OAAO;QACR,CAAC;IACF,CAAC;IAED,OAAO,OAAO,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Check whether a key may be followed while walking a record built from
|
|
3
|
+
* untrusted input.
|
|
4
|
+
*
|
|
5
|
+
* `__proto__` reaches the prototype setter when assigned to; `constructor`
|
|
6
|
+
* followed by `prototype` reaches `Object.prototype` when merely read, and a
|
|
7
|
+
* path-walking writer then mutates it. All three names are rejected together
|
|
8
|
+
* because a walk cannot tell which position it is in until the damage is done.
|
|
9
|
+
*
|
|
10
|
+
* Use this for a **path**. A single leaf assignment wants `setRecordEntry`
|
|
11
|
+
* instead, which stores such a key rather than refusing it — a record of
|
|
12
|
+
* environment variables or INI settings should still be able to hold one named
|
|
13
|
+
* `constructor`.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```ts
|
|
17
|
+
* isUnsafeRecordKey("__proto__"); // true
|
|
18
|
+
* isUnsafeRecordKey("constructor"); // true
|
|
19
|
+
* isUnsafeRecordKey("toString"); // false — shadowing is not pollution
|
|
20
|
+
* ```;
|
|
21
|
+
*
|
|
22
|
+
* @param key The key to check.
|
|
23
|
+
* @returns True if following the key can reach a shared prototype.
|
|
24
|
+
*/
|
|
25
|
+
export declare function isUnsafeRecordKey(key: PropertyKey): boolean;
|
|
26
|
+
//# sourceMappingURL=is-unsafe-record-key.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"is-unsafe-record-key.d.ts","sourceRoot":"","sources":["../../src/object/is-unsafe-record-key.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,CAE3D"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Check whether a key may be followed while walking a record built from
|
|
3
|
+
* untrusted input.
|
|
4
|
+
*
|
|
5
|
+
* `__proto__` reaches the prototype setter when assigned to; `constructor`
|
|
6
|
+
* followed by `prototype` reaches `Object.prototype` when merely read, and a
|
|
7
|
+
* path-walking writer then mutates it. All three names are rejected together
|
|
8
|
+
* because a walk cannot tell which position it is in until the damage is done.
|
|
9
|
+
*
|
|
10
|
+
* Use this for a **path**. A single leaf assignment wants `setRecordEntry`
|
|
11
|
+
* instead, which stores such a key rather than refusing it — a record of
|
|
12
|
+
* environment variables or INI settings should still be able to hold one named
|
|
13
|
+
* `constructor`.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```ts
|
|
17
|
+
* isUnsafeRecordKey("__proto__"); // true
|
|
18
|
+
* isUnsafeRecordKey("constructor"); // true
|
|
19
|
+
* isUnsafeRecordKey("toString"); // false — shadowing is not pollution
|
|
20
|
+
* ```;
|
|
21
|
+
*
|
|
22
|
+
* @param key The key to check.
|
|
23
|
+
* @returns True if following the key can reach a shared prototype.
|
|
24
|
+
*/
|
|
25
|
+
export function isUnsafeRecordKey(key) {
|
|
26
|
+
return key === "__proto__" || key === "constructor" || key === "prototype";
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=is-unsafe-record-key.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"is-unsafe-record-key.js","sourceRoot":"","sources":["../../src/object/is-unsafe-record-key.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,UAAU,iBAAiB,CAAC,GAAgB;IACjD,OAAO,GAAG,KAAK,WAAW,IAAI,GAAG,KAAK,aAAa,IAAI,GAAG,KAAK,WAAW,CAAC;AAC5E,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"merge-inplace.d.ts","sourceRoot":"","sources":["../../src/object/merge-inplace.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAOlD,OAAO,EAEN,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"merge-inplace.d.ts","sourceRoot":"","sources":["../../src/object/merge-inplace.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAOlD,OAAO,EAEN,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,MAAM,oBAAoB,CAAC;AA6B5B;;;;;;;;;;;GAWG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EACvD,MAAM,EAAE,CAAC,EACT,MAAM,EAAE,CAAC,EACT,OAAO,CAAC,EAAE,YAAY,GAAG;IAAE,SAAS,CAAC,EAAE,KAAK,CAAA;CAAE,GAC5C,CAAC,CAAC;AACL,wBAAgB,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAC3D,MAAM,EAAE,CAAC,EACT,MAAM,EAAE,CAAC,EACT,OAAO,EAAE,YAAY,GAAG;IAAE,SAAS,EAAE,IAAI,CAAA;CAAE,GACzC,CAAC,CAAC;AASL;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,QAAQ,SAAS,SAAS,OAAO,EAAE,EAC3E,MAAM,EAAE,OAAO,EACf,OAAO,EAAE,QAAQ,EACjB,OAAO,CAAC,EAAE,YAAY,GACpB,OAAO,GAAG,aAAa,CAAC,QAAQ,CAAC,CASnC"}
|
|
@@ -4,6 +4,7 @@ import { isPojo } from "../guards/is-pojo.js";
|
|
|
4
4
|
import { isSet } from "../guards/is-set.js";
|
|
5
5
|
import { clone } from "./clone.js";
|
|
6
6
|
import { MERGE_DEFAULT_OPTIONS, } from "./merge-options.js";
|
|
7
|
+
import { setRecordEntry } from "./set-record-entry.js";
|
|
7
8
|
function resolve_(options) {
|
|
8
9
|
return {
|
|
9
10
|
recursive: options?.recursive ?? MERGE_DEFAULT_OPTIONS.recursive,
|
|
@@ -65,8 +66,9 @@ function mergeInplace_(target, source, options) {
|
|
|
65
66
|
return fromSource_(source, options);
|
|
66
67
|
}
|
|
67
68
|
function mergePojoInplace_(target, source, options) {
|
|
68
|
-
|
|
69
|
-
|
|
69
|
+
// Own keys only: `for...in` would walk a hostile source's prototype too.
|
|
70
|
+
for (const key of Object.keys(source)) {
|
|
71
|
+
setRecordEntry(target, key, nested_(target[key], source[key], options));
|
|
70
72
|
}
|
|
71
73
|
}
|
|
72
74
|
function mergeSetInplace_(target, source, options) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"merge-inplace.js","sourceRoot":"","sources":["../../src/object/merge-inplace.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EACN,qBAAqB,GAGrB,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"merge-inplace.js","sourceRoot":"","sources":["../../src/object/merge-inplace.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"merge.d.ts","sourceRoot":"","sources":["../../src/object/merge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAOlD,OAAO,EAEN,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"merge.d.ts","sourceRoot":"","sources":["../../src/object/merge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAOlD,OAAO,EAEN,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,MAAM,oBAAoB,CAAC;AA6B5B;;;;;;;;;;;GAWG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAChD,MAAM,EAAE,CAAC,EACT,MAAM,EAAE,CAAC,EACT,OAAO,CAAC,EAAE,YAAY,GAAG;IAAE,SAAS,CAAC,EAAE,KAAK,CAAA;CAAE,GAC5C,CAAC,CAAC;AACL,wBAAgB,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EACpD,MAAM,EAAE,CAAC,EACT,MAAM,EAAE,CAAC,EACT,OAAO,EAAE,YAAY,GAAG;IAAE,SAAS,EAAE,IAAI,CAAA;CAAE,GACzC,CAAC,CAAC;AASL;;;;;;;;;GASG;AACH,wBAAgB,QAAQ,CAAC,QAAQ,SAAS,SAAS,OAAO,EAAE,EAC3D,OAAO,EAAE,QAAQ,EACjB,OAAO,CAAC,EAAE,YAAY,GACpB,aAAa,CAAC,QAAQ,CAAC,CASzB"}
|
package/dist/object/merge.js
CHANGED
|
@@ -4,6 +4,7 @@ import { isPojo } from "../guards/is-pojo.js";
|
|
|
4
4
|
import { isSet } from "../guards/is-set.js";
|
|
5
5
|
import { clone } from "./clone.js";
|
|
6
6
|
import { MERGE_DEFAULT_OPTIONS, } from "./merge-options.js";
|
|
7
|
+
import { setRecordEntry } from "./set-record-entry.js";
|
|
7
8
|
function resolve_(options) {
|
|
8
9
|
return {
|
|
9
10
|
recursive: options?.recursive ?? MERGE_DEFAULT_OPTIONS.recursive,
|
|
@@ -60,8 +61,9 @@ function merge_(target, source, options) {
|
|
|
60
61
|
}
|
|
61
62
|
function mergePojo_(target, source, options) {
|
|
62
63
|
const output = { ...target };
|
|
63
|
-
|
|
64
|
-
|
|
64
|
+
// Own keys only: `for...in` would walk a hostile source's prototype too.
|
|
65
|
+
for (const key of Object.keys(source)) {
|
|
66
|
+
setRecordEntry(output, key, nested_(target[key], source[key], options));
|
|
65
67
|
}
|
|
66
68
|
return output;
|
|
67
69
|
}
|
package/dist/object/merge.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"merge.js","sourceRoot":"","sources":["../../src/object/merge.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EACN,qBAAqB,GAGrB,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"merge.js","sourceRoot":"","sources":["../../src/object/merge.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Normalizes an object with no own enumerable property to `null`.
|
|
3
|
+
*
|
|
4
|
+
* Useful against APIs that report "no value" as an empty object rather than as
|
|
5
|
+
* `null` or `undefined`, so that callers only have one absent form to test.
|
|
6
|
+
*
|
|
7
|
+
* @param value The object to normalize.
|
|
8
|
+
* @returns The object, or `null` when it is absent or has no own enumerable
|
|
9
|
+
* property.
|
|
10
|
+
*/
|
|
11
|
+
export declare function nullIfEmpty<T extends object>(value: T | null | undefined): T | null;
|
|
12
|
+
//# sourceMappingURL=null-if-empty.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"null-if-empty.d.ts","sourceRoot":"","sources":["../../src/object/null-if-empty.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CAAC,CAAC,SAAS,MAAM,EAC3C,KAAK,EAAE,CAAC,GAAG,IAAI,GAAG,SAAS,GACzB,CAAC,GAAG,IAAI,CAMV"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Normalizes an object with no own enumerable property to `null`.
|
|
3
|
+
*
|
|
4
|
+
* Useful against APIs that report "no value" as an empty object rather than as
|
|
5
|
+
* `null` or `undefined`, so that callers only have one absent form to test.
|
|
6
|
+
*
|
|
7
|
+
* @param value The object to normalize.
|
|
8
|
+
* @returns The object, or `null` when it is absent or has no own enumerable
|
|
9
|
+
* property.
|
|
10
|
+
*/
|
|
11
|
+
export function nullIfEmpty(value) {
|
|
12
|
+
if (value === null || value === undefined) {
|
|
13
|
+
return null;
|
|
14
|
+
}
|
|
15
|
+
return Object.keys(value).length === 0 ? null : value;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=null-if-empty.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"null-if-empty.js","sourceRoot":"","sources":["../../src/object/null-if-empty.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,MAAM,UAAU,WAAW,CAC1B,KAA2B;IAE3B,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QAC3C,OAAO,IAAI,CAAC;IACb,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;AACvD,CAAC"}
|
|
@@ -6,6 +6,11 @@ import { PropertyPath } from "./get-at-path.js";
|
|
|
6
6
|
* the next key (`number` → array, `string` → object). Existing `null` or
|
|
7
7
|
* `undefined` intermediates are replaced.
|
|
8
8
|
*
|
|
9
|
+
* A path containing `__proto__`, `constructor` or `prototype` is refused
|
|
10
|
+
* outright and nothing is written, because walking one reaches a prototype
|
|
11
|
+
* shared with every other object. The refusal is silent, like the one for a
|
|
12
|
+
* non-numeric index into an array.
|
|
13
|
+
*
|
|
9
14
|
* @param root The root object/array to mutate
|
|
10
15
|
* @param path The path to traverse
|
|
11
16
|
* @param value The value to set at the path
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"set-at-path.d.ts","sourceRoot":"","sources":["../../src/object/set-at-path.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"set-at-path.d.ts","sourceRoot":"","sources":["../../src/object/set-at-path.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAIhD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,SAAS,CACxB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,EAAE,EACzC,IAAI,EAAE,YAAY,EAClB,KAAK,EAAE,OAAO,GACZ,IAAI,CAyCN"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { isObject } from "../guards/is-object.js";
|
|
2
|
+
import { isUnsafeRecordKey } from "./is-unsafe-record-key.js";
|
|
3
|
+
import { setRecordEntry } from "./set-record-entry.js";
|
|
2
4
|
/**
|
|
3
5
|
* Mutates `root` by setting the value at `path`.
|
|
4
6
|
*
|
|
@@ -6,12 +8,17 @@ import { isObject } from "../guards/is-object.js";
|
|
|
6
8
|
* the next key (`number` → array, `string` → object). Existing `null` or
|
|
7
9
|
* `undefined` intermediates are replaced.
|
|
8
10
|
*
|
|
11
|
+
* A path containing `__proto__`, `constructor` or `prototype` is refused
|
|
12
|
+
* outright and nothing is written, because walking one reaches a prototype
|
|
13
|
+
* shared with every other object. The refusal is silent, like the one for a
|
|
14
|
+
* non-numeric index into an array.
|
|
15
|
+
*
|
|
9
16
|
* @param root The root object/array to mutate
|
|
10
17
|
* @param path The path to traverse
|
|
11
18
|
* @param value The value to set at the path
|
|
12
19
|
*/
|
|
13
20
|
export function setAtPath(root, path, value) {
|
|
14
|
-
if (path.length === 0) {
|
|
21
|
+
if (path.length === 0 || path.some(isUnsafeRecordKey)) {
|
|
15
22
|
return;
|
|
16
23
|
}
|
|
17
24
|
let current = root;
|
|
@@ -31,7 +38,7 @@ export function setAtPath(root, path, value) {
|
|
|
31
38
|
else {
|
|
32
39
|
const obj = current;
|
|
33
40
|
if (!isObject(obj[key]) && !Array.isArray(obj[key])) {
|
|
34
|
-
obj
|
|
41
|
+
setRecordEntry(obj, String(key), typeof nextKey === "number" ? [] : {});
|
|
35
42
|
}
|
|
36
43
|
current = obj[key];
|
|
37
44
|
}
|
|
@@ -45,7 +52,7 @@ export function setAtPath(root, path, value) {
|
|
|
45
52
|
current[lastIndex] = value;
|
|
46
53
|
}
|
|
47
54
|
else {
|
|
48
|
-
current
|
|
55
|
+
setRecordEntry(current, String(lastKey), value);
|
|
49
56
|
}
|
|
50
57
|
}
|
|
51
58
|
//# sourceMappingURL=set-at-path.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"set-at-path.js","sourceRoot":"","sources":["../../src/object/set-at-path.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"set-at-path.js","sourceRoot":"","sources":["../../src/object/set-at-path.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAElD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,SAAS,CACxB,IAAyC,EACzC,IAAkB,EAClB,KAAc;IAEd,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC;QACvD,OAAO;IACR,CAAC;IAED,IAAI,OAAO,GAAY,IAAI,CAAC;IAE5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAE,CAAC;QACrB,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAE,CAAC;QAE7B,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5B,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC;YACnB,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;gBACzB,OAAO;YACR,CAAC;YAED,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;gBACjE,OAAO,CAAC,KAAK,CAAC,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACxD,CAAC;YACD,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;aAAM,CAAC;YACP,MAAM,GAAG,GAAG,OAAwB,CAAC;YAErC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;gBACrD,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACzE,CAAC;YACD,OAAO,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;QACpB,CAAC;IACF,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC;IACvC,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5B,MAAM,SAAS,GAAG,CAAC,OAAO,CAAC;QAC3B,IAAI,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;YAC7B,OAAO;QACR,CAAC;QACD,OAAO,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC;IAC5B,CAAC;SAAM,CAAC;QACP,cAAc,CAAC,OAAwB,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC;IAClE,CAAC;AACF,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Assign into a record whose keys come from untrusted input.
|
|
3
|
+
*
|
|
4
|
+
* `record[key] = value` runs the `__proto__` setter inherited from
|
|
5
|
+
* `Object.prototype`, so one key out of parsed text can replace the prototype
|
|
6
|
+
* of every object built afterwards. Defining the property instead stores an
|
|
7
|
+
* ordinary own `__proto__` entry and reaches no setter, leaving the record an
|
|
8
|
+
* otherwise normal object: same prototype, same spread, same `deepEqual`.
|
|
9
|
+
*
|
|
10
|
+
* Costs one string comparison over a plain assignment for every other key, so
|
|
11
|
+
* it is safe to call from a parser loop — `Object.defineProperty` is far slower
|
|
12
|
+
* and is taken only for the single key that needs it.
|
|
13
|
+
*
|
|
14
|
+
* This guards a **write**. A caller walking a path of untrusted keys must also
|
|
15
|
+
* guard its reads with `isUnsafeRecordKey`: stepping through `constructor` and
|
|
16
|
+
* then `prototype` pollutes without ever assigning to `__proto__`.
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* ```ts
|
|
20
|
+
* const parsed: Record<string, unknown> = {};
|
|
21
|
+
* setRecordEntry(parsed, "__proto__", { polluted: true });
|
|
22
|
+
*
|
|
23
|
+
* parsed["__proto__"]; // { polluted: true } — an own entry
|
|
24
|
+
* Object.getPrototypeOf(parsed) === Object.prototype; // true — untouched
|
|
25
|
+
* ```;
|
|
26
|
+
*
|
|
27
|
+
* @param record The record to assign into.
|
|
28
|
+
* @param key The key, which may come from untrusted input.
|
|
29
|
+
* @param value The value to store.
|
|
30
|
+
*/
|
|
31
|
+
export declare function setRecordEntry<T>(record: Record<string, T>, key: string, value: NoInfer<T>): void;
|
|
32
|
+
//# sourceMappingURL=set-record-entry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"set-record-entry.d.ts","sourceRoot":"","sources":["../../src/object/set-record-entry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAC/B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,EACzB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,GACf,IAAI,CAYN"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Assign into a record whose keys come from untrusted input.
|
|
3
|
+
*
|
|
4
|
+
* `record[key] = value` runs the `__proto__` setter inherited from
|
|
5
|
+
* `Object.prototype`, so one key out of parsed text can replace the prototype
|
|
6
|
+
* of every object built afterwards. Defining the property instead stores an
|
|
7
|
+
* ordinary own `__proto__` entry and reaches no setter, leaving the record an
|
|
8
|
+
* otherwise normal object: same prototype, same spread, same `deepEqual`.
|
|
9
|
+
*
|
|
10
|
+
* Costs one string comparison over a plain assignment for every other key, so
|
|
11
|
+
* it is safe to call from a parser loop — `Object.defineProperty` is far slower
|
|
12
|
+
* and is taken only for the single key that needs it.
|
|
13
|
+
*
|
|
14
|
+
* This guards a **write**. A caller walking a path of untrusted keys must also
|
|
15
|
+
* guard its reads with `isUnsafeRecordKey`: stepping through `constructor` and
|
|
16
|
+
* then `prototype` pollutes without ever assigning to `__proto__`.
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* ```ts
|
|
20
|
+
* const parsed: Record<string, unknown> = {};
|
|
21
|
+
* setRecordEntry(parsed, "__proto__", { polluted: true });
|
|
22
|
+
*
|
|
23
|
+
* parsed["__proto__"]; // { polluted: true } — an own entry
|
|
24
|
+
* Object.getPrototypeOf(parsed) === Object.prototype; // true — untouched
|
|
25
|
+
* ```;
|
|
26
|
+
*
|
|
27
|
+
* @param record The record to assign into.
|
|
28
|
+
* @param key The key, which may come from untrusted input.
|
|
29
|
+
* @param value The value to store.
|
|
30
|
+
*/
|
|
31
|
+
export function setRecordEntry(record, key, value) {
|
|
32
|
+
if (key === "__proto__") {
|
|
33
|
+
Object.defineProperty(record, key, {
|
|
34
|
+
value,
|
|
35
|
+
enumerable: true,
|
|
36
|
+
writable: true,
|
|
37
|
+
configurable: true,
|
|
38
|
+
});
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
record[key] = value;
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=set-record-entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"set-record-entry.js","sourceRoot":"","sources":["../../src/object/set-record-entry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,UAAU,cAAc,CAC7B,MAAyB,EACzB,GAAW,EACX,KAAiB;IAEjB,IAAI,GAAG,KAAK,WAAW,EAAE,CAAC;QACzB,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE;YAClC,KAAK;YACL,UAAU,EAAE,IAAI;YAChB,QAAQ,EAAE,IAAI;YACd,YAAY,EAAE,IAAI;SAClB,CAAC,CAAC;QACH,OAAO;IACR,CAAC;IAED,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AACrB,CAAC"}
|
package/dist/object/traverse.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
+
import { hasObjectPrototype } from "../guards/has-object-prototype.js";
|
|
1
2
|
import { isMap } from "../guards/is-map.js";
|
|
2
|
-
import { isPlainObject } from "../guards/is-plain-object.js";
|
|
3
3
|
import { isSet } from "../guards/is-set.js";
|
|
4
4
|
import { defaults } from "./defaults.js";
|
|
5
5
|
import { getObjectKeys, } from "./get-object-keys.js";
|
|
@@ -95,8 +95,8 @@ function traverseValue_(value, visitor, options, context) {
|
|
|
95
95
|
return value;
|
|
96
96
|
}
|
|
97
97
|
// Check if we should traverse this object's properties
|
|
98
|
-
const shouldTraverseObject = (
|
|
99
|
-
(!
|
|
98
|
+
const shouldTraverseObject = (hasObjectPrototype(value) && options.traversePlainObjects) ||
|
|
99
|
+
(!hasObjectPrototype(value) &&
|
|
100
100
|
shouldTraverseCustomObject(value, options.traverseCustomObjects));
|
|
101
101
|
if (shouldTraverseObject) {
|
|
102
102
|
return traverseObjectProperties_(value, visitor, options, parentPath);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"traverse.js","sourceRoot":"","sources":["../../src/object/traverse.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"traverse.js","sourceRoot":"","sources":["../../src/object/traverse.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"escape-posix-path.d.ts","sourceRoot":"","sources":["../../../src/system/fs/escape-posix-path.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,SAAM,GAAG,MAAM,CAOtE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"escape-posix-path.js","sourceRoot":"","sources":["../../../src/system/fs/escape-posix-path.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAAC,GAAW,EAAE,WAAW,GAAG,GAAG;IAC7D,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QACjC,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;IACjB,CAAC;IAED,4CAA4C;IAC5C,OAAO,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAC/D,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"escape-win32-path.d.ts","sourceRoot":"","sources":["../../../src/system/fs/escape-win32-path.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,SAAM,GAAG,MAAM,CAYtE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"escape-win32-path.js","sourceRoot":"","sources":["../../../src/system/fs/escape-win32-path.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAAC,GAAW,EAAE,WAAW,GAAG,GAAG;IAC7D,IAAI,+CAA+C,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/D,GAAG,GAAG,GAAG,WAAW,GAAG,GAAG,EAAE,CAAC;IAC9B,CAAC;IAED,OAAO,CACN,GAAG;QACF,4CAA4C;SAC3C,OAAO,CAAC,wBAAwB,EAAE,WAAW,CAAC;SAC9C,OAAO,CAAC,QAAQ,EAAE,WAAW,CAAC;SAC9B,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,CACnB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ephemeral-port.d.ts","sourceRoot":"","sources":["../../../src/system/net/ephemeral-port.ts"],"names":[],"mappings":"AAAA,0DAA0D;AAC1D,eAAO,MAAM,wBAAwB,QAAQ,CAAC;AAE9C,yDAAyD;AACzD,eAAO,MAAM,wBAAwB,QAAQ,CAAC;AAK9C;;;;;;GAMG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,CAK/C"}
|