mirror of
https://code.forgejo.org/actions/setup-node.git
synced 2025-05-20 13:14:44 +00:00
.
This commit is contained in:
parent
a004f0ae58
commit
fc725ba36b
7280 changed files with 19 additions and 1796407 deletions
1
node_modules/json-stringify-safe/.npmignore
generated
vendored
1
node_modules/json-stringify-safe/.npmignore
generated
vendored
|
@ -1 +0,0 @@
|
|||
/*.tgz
|
14
node_modules/json-stringify-safe/CHANGELOG.md
generated
vendored
14
node_modules/json-stringify-safe/CHANGELOG.md
generated
vendored
|
@ -1,14 +0,0 @@
|
|||
## Unreleased
|
||||
- Fixes stringify to only take ancestors into account when checking
|
||||
circularity.
|
||||
It previously assumed every visited object was circular which led to [false
|
||||
positives][issue9].
|
||||
Uses the tiny serializer I wrote for [Must.js][must] a year and a half ago.
|
||||
- Fixes calling the `replacer` function in the proper context (`thisArg`).
|
||||
- Fixes calling the `cycleReplacer` function in the proper context (`thisArg`).
|
||||
- Speeds serializing by a factor of
|
||||
Big-O(h-my-god-it-linearly-searched-every-object) it had ever seen. Searching
|
||||
only the ancestors for a circular references speeds up things considerably.
|
||||
|
||||
[must]: https://github.com/moll/js-must
|
||||
[issue9]: https://github.com/isaacs/json-stringify-safe/issues/9
|
15
node_modules/json-stringify-safe/LICENSE
generated
vendored
15
node_modules/json-stringify-safe/LICENSE
generated
vendored
|
@ -1,15 +0,0 @@
|
|||
The ISC License
|
||||
|
||||
Copyright (c) Isaac Z. Schlueter and Contributors
|
||||
|
||||
Permission to use, copy, modify, and/or distribute this software for any
|
||||
purpose with or without fee is hereby granted, provided that the above
|
||||
copyright notice and this permission notice appear in all copies.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
|
||||
IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
35
node_modules/json-stringify-safe/Makefile
generated
vendored
35
node_modules/json-stringify-safe/Makefile
generated
vendored
|
@ -1,35 +0,0 @@
|
|||
NODE_OPTS =
|
||||
TEST_OPTS =
|
||||
|
||||
love:
|
||||
@echo "Feel like makin' love."
|
||||
|
||||
test:
|
||||
@node $(NODE_OPTS) ./node_modules/.bin/_mocha -R dot $(TEST_OPTS)
|
||||
|
||||
spec:
|
||||
@node $(NODE_OPTS) ./node_modules/.bin/_mocha -R spec $(TEST_OPTS)
|
||||
|
||||
autotest:
|
||||
@node $(NODE_OPTS) ./node_modules/.bin/_mocha -R dot --watch $(TEST_OPTS)
|
||||
|
||||
autospec:
|
||||
@node $(NODE_OPTS) ./node_modules/.bin/_mocha -R spec --watch $(TEST_OPTS)
|
||||
|
||||
pack:
|
||||
@file=$$(npm pack); echo "$$file"; tar tf "$$file"
|
||||
|
||||
publish:
|
||||
npm publish
|
||||
|
||||
tag:
|
||||
git tag "v$$(node -e 'console.log(require("./package").version)')"
|
||||
|
||||
clean:
|
||||
rm -f *.tgz
|
||||
npm prune --production
|
||||
|
||||
.PHONY: love
|
||||
.PHONY: test spec autotest autospec
|
||||
.PHONY: pack publish tag
|
||||
.PHONY: clean
|
52
node_modules/json-stringify-safe/README.md
generated
vendored
52
node_modules/json-stringify-safe/README.md
generated
vendored
|
@ -1,52 +0,0 @@
|
|||
# json-stringify-safe
|
||||
|
||||
Like JSON.stringify, but doesn't throw on circular references.
|
||||
|
||||
## Usage
|
||||
|
||||
Takes the same arguments as `JSON.stringify`.
|
||||
|
||||
```javascript
|
||||
var stringify = require('json-stringify-safe');
|
||||
var circularObj = {};
|
||||
circularObj.circularRef = circularObj;
|
||||
circularObj.list = [ circularObj, circularObj ];
|
||||
console.log(stringify(circularObj, null, 2));
|
||||
```
|
||||
|
||||
Output:
|
||||
|
||||
```json
|
||||
{
|
||||
"circularRef": "[Circular]",
|
||||
"list": [
|
||||
"[Circular]",
|
||||
"[Circular]"
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
## Details
|
||||
|
||||
```
|
||||
stringify(obj, serializer, indent, decycler)
|
||||
```
|
||||
|
||||
The first three arguments are the same as to JSON.stringify. The last
|
||||
is an argument that's only used when the object has been seen already.
|
||||
|
||||
The default `decycler` function returns the string `'[Circular]'`.
|
||||
If, for example, you pass in `function(k,v){}` (return nothing) then it
|
||||
will prune cycles. If you pass in `function(k,v){ return {foo: 'bar'}}`,
|
||||
then cyclical objects will always be represented as `{"foo":"bar"}` in
|
||||
the result.
|
||||
|
||||
```
|
||||
stringify.getSerialize(serializer, decycler)
|
||||
```
|
||||
|
||||
Returns a serializer that can be used elsewhere. This is the actual
|
||||
function that's passed to JSON.stringify.
|
||||
|
||||
**Note** that the function returned from `getSerialize` is stateful for now, so
|
||||
do **not** use it more than once.
|
70
node_modules/json-stringify-safe/package.json
generated
vendored
70
node_modules/json-stringify-safe/package.json
generated
vendored
|
@ -1,70 +0,0 @@
|
|||
{
|
||||
"_args": [
|
||||
[
|
||||
"json-stringify-safe@5.0.1",
|
||||
"/Users/eric/repos/actions/setup-node"
|
||||
]
|
||||
],
|
||||
"_development": true,
|
||||
"_from": "json-stringify-safe@5.0.1",
|
||||
"_id": "json-stringify-safe@5.0.1",
|
||||
"_inBundle": false,
|
||||
"_integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=",
|
||||
"_location": "/json-stringify-safe",
|
||||
"_phantomChildren": {},
|
||||
"_requested": {
|
||||
"type": "version",
|
||||
"registry": true,
|
||||
"raw": "json-stringify-safe@5.0.1",
|
||||
"name": "json-stringify-safe",
|
||||
"escapedName": "json-stringify-safe",
|
||||
"rawSpec": "5.0.1",
|
||||
"saveSpec": null,
|
||||
"fetchSpec": "5.0.1"
|
||||
},
|
||||
"_requiredBy": [
|
||||
"/request"
|
||||
],
|
||||
"_resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
|
||||
"_spec": "5.0.1",
|
||||
"_where": "/Users/eric/repos/actions/setup-node",
|
||||
"author": {
|
||||
"name": "Isaac Z. Schlueter",
|
||||
"email": "i@izs.me",
|
||||
"url": "http://blog.izs.me"
|
||||
},
|
||||
"bugs": {
|
||||
"url": "https://github.com/isaacs/json-stringify-safe/issues"
|
||||
},
|
||||
"contributors": [
|
||||
{
|
||||
"name": "Andri Möll",
|
||||
"email": "andri@dot.ee",
|
||||
"url": "http://themoll.com"
|
||||
}
|
||||
],
|
||||
"description": "Like JSON.stringify, but doesn't blow up on circular refs.",
|
||||
"devDependencies": {
|
||||
"mocha": ">= 2.1.0 < 3",
|
||||
"must": ">= 0.12 < 0.13",
|
||||
"sinon": ">= 1.12.2 < 2"
|
||||
},
|
||||
"homepage": "https://github.com/isaacs/json-stringify-safe",
|
||||
"keywords": [
|
||||
"json",
|
||||
"stringify",
|
||||
"circular",
|
||||
"safe"
|
||||
],
|
||||
"license": "ISC",
|
||||
"main": "stringify.js",
|
||||
"name": "json-stringify-safe",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git://github.com/isaacs/json-stringify-safe.git"
|
||||
},
|
||||
"scripts": {
|
||||
"test": "node test.js"
|
||||
},
|
||||
"version": "5.0.1"
|
||||
}
|
27
node_modules/json-stringify-safe/stringify.js
generated
vendored
27
node_modules/json-stringify-safe/stringify.js
generated
vendored
|
@ -1,27 +0,0 @@
|
|||
exports = module.exports = stringify
|
||||
exports.getSerialize = serializer
|
||||
|
||||
function stringify(obj, replacer, spaces, cycleReplacer) {
|
||||
return JSON.stringify(obj, serializer(replacer, cycleReplacer), spaces)
|
||||
}
|
||||
|
||||
function serializer(replacer, cycleReplacer) {
|
||||
var stack = [], keys = []
|
||||
|
||||
if (cycleReplacer == null) cycleReplacer = function(key, value) {
|
||||
if (stack[0] === value) return "[Circular ~]"
|
||||
return "[Circular ~." + keys.slice(0, stack.indexOf(value)).join(".") + "]"
|
||||
}
|
||||
|
||||
return function(key, value) {
|
||||
if (stack.length > 0) {
|
||||
var thisPos = stack.indexOf(this)
|
||||
~thisPos ? stack.splice(thisPos + 1) : stack.push(this)
|
||||
~thisPos ? keys.splice(thisPos, Infinity, key) : keys.push(key)
|
||||
if (~stack.indexOf(value)) value = cycleReplacer.call(this, key, value)
|
||||
}
|
||||
else stack.push(value)
|
||||
|
||||
return replacer == null ? value : replacer.call(this, key, value)
|
||||
}
|
||||
}
|
2
node_modules/json-stringify-safe/test/mocha.opts
generated
vendored
2
node_modules/json-stringify-safe/test/mocha.opts
generated
vendored
|
@ -1,2 +0,0 @@
|
|||
--recursive
|
||||
--require must
|
246
node_modules/json-stringify-safe/test/stringify_test.js
generated
vendored
246
node_modules/json-stringify-safe/test/stringify_test.js
generated
vendored
|
@ -1,246 +0,0 @@
|
|||
var Sinon = require("sinon")
|
||||
var stringify = require("..")
|
||||
function jsonify(obj) { return JSON.stringify(obj, null, 2) }
|
||||
|
||||
describe("Stringify", function() {
|
||||
it("must stringify circular objects", function() {
|
||||
var obj = {name: "Alice"}
|
||||
obj.self = obj
|
||||
var json = stringify(obj, null, 2)
|
||||
json.must.eql(jsonify({name: "Alice", self: "[Circular ~]"}))
|
||||
})
|
||||
|
||||
it("must stringify circular objects with intermediaries", function() {
|
||||
var obj = {name: "Alice"}
|
||||
obj.identity = {self: obj}
|
||||
var json = stringify(obj, null, 2)
|
||||
json.must.eql(jsonify({name: "Alice", identity: {self: "[Circular ~]"}}))
|
||||
})
|
||||
|
||||
it("must stringify circular objects deeper", function() {
|
||||
var obj = {name: "Alice", child: {name: "Bob"}}
|
||||
obj.child.self = obj.child
|
||||
|
||||
stringify(obj, null, 2).must.eql(jsonify({
|
||||
name: "Alice",
|
||||
child: {name: "Bob", self: "[Circular ~.child]"}
|
||||
}))
|
||||
})
|
||||
|
||||
it("must stringify circular objects deeper with intermediaries", function() {
|
||||
var obj = {name: "Alice", child: {name: "Bob"}}
|
||||
obj.child.identity = {self: obj.child}
|
||||
|
||||
stringify(obj, null, 2).must.eql(jsonify({
|
||||
name: "Alice",
|
||||
child: {name: "Bob", identity: {self: "[Circular ~.child]"}}
|
||||
}))
|
||||
})
|
||||
|
||||
it("must stringify circular objects in an array", function() {
|
||||
var obj = {name: "Alice"}
|
||||
obj.self = [obj, obj]
|
||||
|
||||
stringify(obj, null, 2).must.eql(jsonify({
|
||||
name: "Alice", self: ["[Circular ~]", "[Circular ~]"]
|
||||
}))
|
||||
})
|
||||
|
||||
it("must stringify circular objects deeper in an array", function() {
|
||||
var obj = {name: "Alice", children: [{name: "Bob"}, {name: "Eve"}]}
|
||||
obj.children[0].self = obj.children[0]
|
||||
obj.children[1].self = obj.children[1]
|
||||
|
||||
stringify(obj, null, 2).must.eql(jsonify({
|
||||
name: "Alice",
|
||||
children: [
|
||||
{name: "Bob", self: "[Circular ~.children.0]"},
|
||||
{name: "Eve", self: "[Circular ~.children.1]"}
|
||||
]
|
||||
}))
|
||||
})
|
||||
|
||||
it("must stringify circular arrays", function() {
|
||||
var obj = []
|
||||
obj.push(obj)
|
||||
obj.push(obj)
|
||||
var json = stringify(obj, null, 2)
|
||||
json.must.eql(jsonify(["[Circular ~]", "[Circular ~]"]))
|
||||
})
|
||||
|
||||
it("must stringify circular arrays with intermediaries", function() {
|
||||
var obj = []
|
||||
obj.push({name: "Alice", self: obj})
|
||||
obj.push({name: "Bob", self: obj})
|
||||
|
||||
stringify(obj, null, 2).must.eql(jsonify([
|
||||
{name: "Alice", self: "[Circular ~]"},
|
||||
{name: "Bob", self: "[Circular ~]"}
|
||||
]))
|
||||
})
|
||||
|
||||
it("must stringify repeated objects in objects", function() {
|
||||
var obj = {}
|
||||
var alice = {name: "Alice"}
|
||||
obj.alice1 = alice
|
||||
obj.alice2 = alice
|
||||
|
||||
stringify(obj, null, 2).must.eql(jsonify({
|
||||
alice1: {name: "Alice"},
|
||||
alice2: {name: "Alice"}
|
||||
}))
|
||||
})
|
||||
|
||||
it("must stringify repeated objects in arrays", function() {
|
||||
var alice = {name: "Alice"}
|
||||
var obj = [alice, alice]
|
||||
var json = stringify(obj, null, 2)
|
||||
json.must.eql(jsonify([{name: "Alice"}, {name: "Alice"}]))
|
||||
})
|
||||
|
||||
it("must call given decycler and use its output", function() {
|
||||
var obj = {}
|
||||
obj.a = obj
|
||||
obj.b = obj
|
||||
|
||||
var decycle = Sinon.spy(function() { return decycle.callCount })
|
||||
var json = stringify(obj, null, 2, decycle)
|
||||
json.must.eql(jsonify({a: 1, b: 2}, null, 2))
|
||||
|
||||
decycle.callCount.must.equal(2)
|
||||
decycle.thisValues[0].must.equal(obj)
|
||||
decycle.args[0][0].must.equal("a")
|
||||
decycle.args[0][1].must.equal(obj)
|
||||
decycle.thisValues[1].must.equal(obj)
|
||||
decycle.args[1][0].must.equal("b")
|
||||
decycle.args[1][1].must.equal(obj)
|
||||
})
|
||||
|
||||
it("must call replacer and use its output", function() {
|
||||
var obj = {name: "Alice", child: {name: "Bob"}}
|
||||
|
||||
var replacer = Sinon.spy(bangString)
|
||||
var json = stringify(obj, replacer, 2)
|
||||
json.must.eql(jsonify({name: "Alice!", child: {name: "Bob!"}}))
|
||||
|
||||
replacer.callCount.must.equal(4)
|
||||
replacer.args[0][0].must.equal("")
|
||||
replacer.args[0][1].must.equal(obj)
|
||||
replacer.thisValues[1].must.equal(obj)
|
||||
replacer.args[1][0].must.equal("name")
|
||||
replacer.args[1][1].must.equal("Alice")
|
||||
replacer.thisValues[2].must.equal(obj)
|
||||
replacer.args[2][0].must.equal("child")
|
||||
replacer.args[2][1].must.equal(obj.child)
|
||||
replacer.thisValues[3].must.equal(obj.child)
|
||||
replacer.args[3][0].must.equal("name")
|
||||
replacer.args[3][1].must.equal("Bob")
|
||||
})
|
||||
|
||||
it("must call replacer after describing circular references", function() {
|
||||
var obj = {name: "Alice"}
|
||||
obj.self = obj
|
||||
|
||||
var replacer = Sinon.spy(bangString)
|
||||
var json = stringify(obj, replacer, 2)
|
||||
json.must.eql(jsonify({name: "Alice!", self: "[Circular ~]!"}))
|
||||
|
||||
replacer.callCount.must.equal(3)
|
||||
replacer.args[0][0].must.equal("")
|
||||
replacer.args[0][1].must.equal(obj)
|
||||
replacer.thisValues[1].must.equal(obj)
|
||||
replacer.args[1][0].must.equal("name")
|
||||
replacer.args[1][1].must.equal("Alice")
|
||||
replacer.thisValues[2].must.equal(obj)
|
||||
replacer.args[2][0].must.equal("self")
|
||||
replacer.args[2][1].must.equal("[Circular ~]")
|
||||
})
|
||||
|
||||
it("must call given decycler and use its output for nested objects",
|
||||
function() {
|
||||
var obj = {}
|
||||
obj.a = obj
|
||||
obj.b = {self: obj}
|
||||
|
||||
var decycle = Sinon.spy(function() { return decycle.callCount })
|
||||
var json = stringify(obj, null, 2, decycle)
|
||||
json.must.eql(jsonify({a: 1, b: {self: 2}}))
|
||||
|
||||
decycle.callCount.must.equal(2)
|
||||
decycle.args[0][0].must.equal("a")
|
||||
decycle.args[0][1].must.equal(obj)
|
||||
decycle.args[1][0].must.equal("self")
|
||||
decycle.args[1][1].must.equal(obj)
|
||||
})
|
||||
|
||||
it("must use decycler's output when it returned null", function() {
|
||||
var obj = {a: "b"}
|
||||
obj.self = obj
|
||||
obj.selves = [obj, obj]
|
||||
|
||||
function decycle() { return null }
|
||||
stringify(obj, null, 2, decycle).must.eql(jsonify({
|
||||
a: "b",
|
||||
self: null,
|
||||
selves: [null, null]
|
||||
}))
|
||||
})
|
||||
|
||||
it("must use decycler's output when it returned undefined", function() {
|
||||
var obj = {a: "b"}
|
||||
obj.self = obj
|
||||
obj.selves = [obj, obj]
|
||||
|
||||
function decycle() {}
|
||||
stringify(obj, null, 2, decycle).must.eql(jsonify({
|
||||
a: "b",
|
||||
selves: [null, null]
|
||||
}))
|
||||
})
|
||||
|
||||
it("must throw given a decycler that returns a cycle", function() {
|
||||
var obj = {}
|
||||
obj.self = obj
|
||||
var err
|
||||
function identity(key, value) { return value }
|
||||
try { stringify(obj, null, 2, identity) } catch (ex) { err = ex }
|
||||
err.must.be.an.instanceof(TypeError)
|
||||
})
|
||||
|
||||
describe(".getSerialize", function() {
|
||||
it("must stringify circular objects", function() {
|
||||
var obj = {a: "b"}
|
||||
obj.circularRef = obj
|
||||
obj.list = [obj, obj]
|
||||
|
||||
var json = JSON.stringify(obj, stringify.getSerialize(), 2)
|
||||
json.must.eql(jsonify({
|
||||
"a": "b",
|
||||
"circularRef": "[Circular ~]",
|
||||
"list": ["[Circular ~]", "[Circular ~]"]
|
||||
}))
|
||||
})
|
||||
|
||||
// This is the behavior as of Mar 3, 2015.
|
||||
// The serializer function keeps state inside the returned function and
|
||||
// so far I'm not sure how to not do that. JSON.stringify's replacer is not
|
||||
// called _after_ serialization.
|
||||
xit("must return a function that could be called twice", function() {
|
||||
var obj = {name: "Alice"}
|
||||
obj.self = obj
|
||||
|
||||
var json
|
||||
var serializer = stringify.getSerialize()
|
||||
|
||||
json = JSON.stringify(obj, serializer, 2)
|
||||
json.must.eql(jsonify({name: "Alice", self: "[Circular ~]"}))
|
||||
|
||||
json = JSON.stringify(obj, serializer, 2)
|
||||
json.must.eql(jsonify({name: "Alice", self: "[Circular ~]"}))
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
function bangString(key, value) {
|
||||
return typeof value == "string" ? value + "!" : value
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue