set-object-value 0.0.8 → 0.1.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.
|
File without changes
|
package/package.json
CHANGED
|
@@ -1,10 +1,19 @@
|
|
|
1
1
|
{
|
|
2
|
+
"version": "0.1.0",
|
|
2
3
|
"name": "set-object-value",
|
|
3
|
-
"
|
|
4
|
+
"repository": {
|
|
5
|
+
"type": "git",
|
|
6
|
+
"url": "https://github.com/react-atomic/react-atomic-organism",
|
|
7
|
+
"directory": "packages/lib/set-object-value"
|
|
8
|
+
},
|
|
9
|
+
"homepage": "https://github.com/react-atomic/react-atomic-organism/tree/main/packages/lib/set-object-value",
|
|
4
10
|
"description": "set object nested value",
|
|
5
|
-
"repository": "react-atomic/react-atomic-organism",
|
|
6
11
|
"main": "./build/cjs/src/index.js",
|
|
7
|
-
"module": "./build/es/src/index.
|
|
12
|
+
"module": "./build/es/src/index.mjs",
|
|
13
|
+
"exports": {
|
|
14
|
+
"require": "./build/cjs/src/index.js",
|
|
15
|
+
"import": "./build/es/src/index.mjs"
|
|
16
|
+
},
|
|
8
17
|
"keywords": [],
|
|
9
18
|
"author": "Hill <hill@kimo.com>",
|
|
10
19
|
"license": "MIT",
|
|
@@ -16,13 +25,17 @@
|
|
|
16
25
|
},
|
|
17
26
|
"scripts": {
|
|
18
27
|
"clean": "find ./build -name '*.*' | xargs rm -rf",
|
|
28
|
+
"build:cjs": "BABEL_ENV=cjs babel src -d build/cjs/src --ignore /**/__tests__ --root-mode upward",
|
|
29
|
+
"build:es": "BABEL_ENV=es babel src -d build/es/src --out-file-extension .mjs --root-mode upward",
|
|
19
30
|
"build": "npm run clean && npm run build:cjs && npm run build:es",
|
|
20
|
-
"build:cjs": "BABEL_ENV=cjs babel src -d build/cjs/src --root-mode upward",
|
|
21
|
-
"build:es": "BABEL_ENV=es babel src -d build/es/src --root-mode upward",
|
|
22
31
|
"mochaFor": "mocha",
|
|
23
|
-
"mocha": "npm run mochaFor -- 'build/
|
|
32
|
+
"mocha": "npm run mochaFor -- 'build/es/**/__tests__/*.mjs'",
|
|
24
33
|
"test": "npm run build && npm run mocha",
|
|
25
34
|
"prepublishOnly": "npm run test"
|
|
26
35
|
},
|
|
27
|
-
"files": [
|
|
36
|
+
"files": [
|
|
37
|
+
"build",
|
|
38
|
+
"package.json",
|
|
39
|
+
"README.md"
|
|
40
|
+
]
|
|
28
41
|
}
|
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireWildcard = require("reshow-runtime/helpers/interopRequireWildcard");
|
|
4
|
-
|
|
5
|
-
var _index = _interopRequireWildcard(require("../index.js"));
|
|
6
|
-
|
|
7
|
-
var _chai = require("chai");
|
|
8
|
-
|
|
9
|
-
describe("Test set", function () {
|
|
10
|
-
it("check set result", function () {
|
|
11
|
-
var obj = {};
|
|
12
|
-
(0, _index["default"])(obj, ["a", "b"], "c");
|
|
13
|
-
(0, _chai.expect)(obj).to.deep.equal({
|
|
14
|
-
a: {
|
|
15
|
-
b: "c"
|
|
16
|
-
}
|
|
17
|
-
});
|
|
18
|
-
});
|
|
19
|
-
});
|
|
20
|
-
describe("CVE-2020-28281", function () {
|
|
21
|
-
it("should not overwrite prototype", function () {
|
|
22
|
-
var obj = {};
|
|
23
|
-
(0, _chai.expect)(obj.isAdmin).to.be.undefined;
|
|
24
|
-
(0, _chai.expect)(function () {
|
|
25
|
-
return (0, _index["default"])(obj, ["__proto__", "isAdmin"], true);
|
|
26
|
-
}).to["throw"]();
|
|
27
|
-
(0, _chai.expect)(function () {
|
|
28
|
-
return (0, _index["default"])(obj, ["constructor", "isAdmin"], true);
|
|
29
|
-
}).to["throw"]();
|
|
30
|
-
(0, _chai.expect)(function () {
|
|
31
|
-
return (0, _index["default"])(obj, ["prototype", "isAdmin"], true);
|
|
32
|
-
}).to["throw"]();
|
|
33
|
-
(0, _chai.expect)(obj.isAdmin).to.be.undefined;
|
|
34
|
-
(0, _chai.expect)({}.isAdmin).to.be.undefined;
|
|
35
|
-
(0, _index["default"])(obj, ["isAdmin"], true);
|
|
36
|
-
(0, _chai.expect)(obj.isAdmin).to.be["true"];
|
|
37
|
-
});
|
|
38
|
-
it("should force overwrite prototype with unsafe mode", function () {
|
|
39
|
-
var obj = {};
|
|
40
|
-
(0, _index.unsafeSet)(obj, ["__proto__", "fake"], true);
|
|
41
|
-
(0, _chai.expect)(obj.fake).to.be["true"];
|
|
42
|
-
});
|
|
43
|
-
it("safe way with unsafe set", function () {
|
|
44
|
-
var obj = Object.create(null);
|
|
45
|
-
(0, _index.unsafeSet)(obj, ["__proto__", "fake"], true);
|
|
46
|
-
(0, _chai.expect)(obj.fake).to.be.undefined;
|
|
47
|
-
(0, _chai.expect)(obj.__proto__.fake).to.be["true"];
|
|
48
|
-
var obj2 = Object.create(null);
|
|
49
|
-
(0, _chai.expect)({}.fake).to.be["true"]; // bad case
|
|
50
|
-
|
|
51
|
-
(0, _chai.expect)(obj2.fake).to.be.undefined;
|
|
52
|
-
});
|
|
53
|
-
});
|
|
54
|
-
describe("Test append", function () {
|
|
55
|
-
it("test simple append", function () {
|
|
56
|
-
var obj = {};
|
|
57
|
-
(0, _index["default"])(obj, ["a"], "a1", true);
|
|
58
|
-
(0, _index["default"])(obj, ["a"], "a2", true);
|
|
59
|
-
(0, _chai.expect)(obj).to.deep.equal({
|
|
60
|
-
a: ["a1", "a2"]
|
|
61
|
-
});
|
|
62
|
-
});
|
|
63
|
-
it("should keep origin value", function () {
|
|
64
|
-
var obj = {};
|
|
65
|
-
(0, _index["default"])(obj, ["a"], "a3");
|
|
66
|
-
(0, _index["default"])(obj, ["a"], "a4", true);
|
|
67
|
-
(0, _chai.expect)(obj).to.deep.equal({
|
|
68
|
-
a: ["a3", "a4"]
|
|
69
|
-
});
|
|
70
|
-
});
|
|
71
|
-
it("last is not array", function () {
|
|
72
|
-
var obj = {
|
|
73
|
-
a: {
|
|
74
|
-
b: "foo"
|
|
75
|
-
}
|
|
76
|
-
};
|
|
77
|
-
(0, _index["default"])(obj, ["a", "b"], "bar", true);
|
|
78
|
-
(0, _chai.expect)(obj.a.b).to.deep.equal(["foo", "bar"]);
|
|
79
|
-
});
|
|
80
|
-
});
|