Compare commits
2 Commits
31adb09d58
...
ce3ea75fe0
| Author | SHA1 | Date | |
|---|---|---|---|
| ce3ea75fe0 | |||
| a6f4891c41 |
9
.gitignore
vendored
9
.gitignore
vendored
@ -1,7 +1,3 @@
|
||||
node_modules
|
||||
build
|
||||
.vscode
|
||||
|
||||
# Output
|
||||
.output
|
||||
.vercel
|
||||
@ -22,3 +18,8 @@ Thumbs.db
|
||||
# Vite
|
||||
vite.config.js.timestamp-*
|
||||
vite.config.ts.timestamp-*
|
||||
node_modules
|
||||
.vscode
|
||||
.vscode
|
||||
node_modules/postcss-load-config/node_modules/yaml
|
||||
node_modules/.vite/deps
|
||||
|
||||
5
.vscode/settings.json
vendored
5
.vscode/settings.json
vendored
@ -1,5 +0,0 @@
|
||||
{
|
||||
"files.associations": {
|
||||
"*.css": "tailwindcss"
|
||||
}
|
||||
}
|
||||
2544
node_modules/.package-lock.json
generated
vendored
2544
node_modules/.package-lock.json
generated
vendored
File diff suppressed because it is too large
Load Diff
32
node_modules/.vite/deps/_metadata.json
generated
vendored
32
node_modules/.vite/deps/_metadata.json
generated
vendored
@ -7,25 +7,25 @@
|
||||
"svelte": {
|
||||
"src": "../../svelte/src/index-client.js",
|
||||
"file": "svelte.js",
|
||||
"fileHash": "53977409",
|
||||
"fileHash": "3c17267d",
|
||||
"needsInterop": false
|
||||
},
|
||||
"svelte/animate": {
|
||||
"src": "../../svelte/src/animate/index.js",
|
||||
"file": "svelte_animate.js",
|
||||
"fileHash": "02dcfa4f",
|
||||
"fileHash": "845d34e4",
|
||||
"needsInterop": false
|
||||
},
|
||||
"svelte/attachments": {
|
||||
"src": "../../svelte/src/attachments/index.js",
|
||||
"file": "svelte_attachments.js",
|
||||
"fileHash": "7b0828ea",
|
||||
"fileHash": "8d7a35e2",
|
||||
"needsInterop": false
|
||||
},
|
||||
"svelte/easing": {
|
||||
"src": "../../svelte/src/easing/index.js",
|
||||
"file": "svelte_easing.js",
|
||||
"fileHash": "cb4eedfd",
|
||||
"fileHash": "5f2fb126",
|
||||
"needsInterop": false
|
||||
},
|
||||
"svelte/internal": {
|
||||
@ -37,7 +37,7 @@
|
||||
"svelte/internal/client": {
|
||||
"src": "../../svelte/src/internal/client/index.js",
|
||||
"file": "svelte_internal_client.js",
|
||||
"fileHash": "7b5d67cf",
|
||||
"fileHash": "396070ff",
|
||||
"needsInterop": false
|
||||
},
|
||||
"svelte/internal/disclose-version": {
|
||||
@ -49,67 +49,67 @@
|
||||
"svelte/internal/flags/async": {
|
||||
"src": "../../svelte/src/internal/flags/async.js",
|
||||
"file": "svelte_internal_flags_async.js",
|
||||
"fileHash": "2fbd9877",
|
||||
"fileHash": "6bc7047e",
|
||||
"needsInterop": false
|
||||
},
|
||||
"svelte/internal/flags/legacy": {
|
||||
"src": "../../svelte/src/internal/flags/legacy.js",
|
||||
"file": "svelte_internal_flags_legacy.js",
|
||||
"fileHash": "ea0e9dbb",
|
||||
"fileHash": "d3290eb0",
|
||||
"needsInterop": false
|
||||
},
|
||||
"svelte/internal/flags/tracing": {
|
||||
"src": "../../svelte/src/internal/flags/tracing.js",
|
||||
"file": "svelte_internal_flags_tracing.js",
|
||||
"fileHash": "cf8979f3",
|
||||
"fileHash": "2e543cea",
|
||||
"needsInterop": false
|
||||
},
|
||||
"svelte/legacy": {
|
||||
"src": "../../svelte/src/legacy/legacy-client.js",
|
||||
"file": "svelte_legacy.js",
|
||||
"fileHash": "546000d1",
|
||||
"fileHash": "e3faabd9",
|
||||
"needsInterop": false
|
||||
},
|
||||
"svelte/motion": {
|
||||
"src": "../../svelte/src/motion/index.js",
|
||||
"file": "svelte_motion.js",
|
||||
"fileHash": "05adda84",
|
||||
"fileHash": "9528d25e",
|
||||
"needsInterop": false
|
||||
},
|
||||
"svelte/reactivity": {
|
||||
"src": "../../svelte/src/reactivity/index-client.js",
|
||||
"file": "svelte_reactivity.js",
|
||||
"fileHash": "7e923dc6",
|
||||
"fileHash": "57529941",
|
||||
"needsInterop": false
|
||||
},
|
||||
"svelte/reactivity/window": {
|
||||
"src": "../../svelte/src/reactivity/window/index.js",
|
||||
"file": "svelte_reactivity_window.js",
|
||||
"fileHash": "1edea278",
|
||||
"fileHash": "6433cf4c",
|
||||
"needsInterop": false
|
||||
},
|
||||
"svelte/store": {
|
||||
"src": "../../svelte/src/store/index-client.js",
|
||||
"file": "svelte_store.js",
|
||||
"fileHash": "dcd0cff0",
|
||||
"fileHash": "8ff3a889",
|
||||
"needsInterop": false
|
||||
},
|
||||
"svelte/transition": {
|
||||
"src": "../../svelte/src/transition/index.js",
|
||||
"file": "svelte_transition.js",
|
||||
"fileHash": "36fcf21c",
|
||||
"fileHash": "bad1d415",
|
||||
"needsInterop": false
|
||||
},
|
||||
"svelte/events": {
|
||||
"src": "../../svelte/src/events/index.js",
|
||||
"file": "svelte_events.js",
|
||||
"fileHash": "2f9b40d4",
|
||||
"fileHash": "aa7d2843",
|
||||
"needsInterop": false
|
||||
},
|
||||
"svelte > clsx": {
|
||||
"src": "../../clsx/dist/clsx.mjs",
|
||||
"file": "svelte___clsx.js",
|
||||
"fileHash": "2d3ed10b",
|
||||
"fileHash": "31cf5338",
|
||||
"needsInterop": false
|
||||
}
|
||||
},
|
||||
|
||||
13
node_modules/postcss-load-config/node_modules/yaml/LICENSE
generated
vendored
13
node_modules/postcss-load-config/node_modules/yaml/LICENSE
generated
vendored
@ -1,13 +0,0 @@
|
||||
Copyright 2018 Eemeli Aro <eemeli@gmail.com>
|
||||
|
||||
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.
|
||||
127
node_modules/postcss-load-config/node_modules/yaml/README.md
generated
vendored
127
node_modules/postcss-load-config/node_modules/yaml/README.md
generated
vendored
@ -1,127 +0,0 @@
|
||||
# YAML <a href="https://www.npmjs.com/package/yaml"><img align="right" src="https://badge.fury.io/js/yaml.svg" title="npm package" /></a>
|
||||
|
||||
`yaml` is a JavaScript parser and stringifier for [YAML](http://yaml.org/), a human friendly data serialization standard. It supports both parsing and stringifying data using all versions of YAML, along with all common data schemas. As a particularly distinguishing feature, `yaml` fully supports reading and writing comments and blank lines in YAML documents.
|
||||
|
||||
The library is released under the ISC open source license, and the code is [available on GitHub](https://github.com/eemeli/yaml/). It has no external dependencies and runs on Node.js 6 and later, and in browsers from IE 11 upwards.
|
||||
|
||||
For the purposes of versioning, any changes that break any of the endpoints or APIs documented here will be considered semver-major breaking changes. Undocumented library internals may change between minor versions, and previous APIs may be deprecated (but not removed).
|
||||
|
||||
For more information, see the project's documentation site: [**eemeli.org/yaml/v1**](https://eemeli.org/yaml/v1/)
|
||||
|
||||
To install:
|
||||
|
||||
```sh
|
||||
npm install yaml
|
||||
```
|
||||
|
||||
**Note:** This is `yaml@1`. You may also be interested in the next version, currently available as [`yaml@next`](https://www.npmjs.com/package/yaml/v/next).
|
||||
|
||||
## API Overview
|
||||
|
||||
The API provided by `yaml` has three layers, depending on how deep you need to go: [Parse & Stringify](https://eemeli.org/yaml/v1/#parse-amp-stringify), [Documents](https://eemeli.org/yaml/#documents), and the [CST Parser](https://eemeli.org/yaml/#cst-parser). The first has the simplest API and "just works", the second gets you all the bells and whistles supported by the library along with a decent [AST](https://eemeli.org/yaml/#content-nodes), and the third is the closest to YAML source, making it fast, raw, and crude.
|
||||
|
||||
```js
|
||||
import YAML from 'yaml'
|
||||
// or
|
||||
const YAML = require('yaml')
|
||||
```
|
||||
|
||||
### Parse & Stringify
|
||||
|
||||
- [`YAML.parse(str, options): value`](https://eemeli.org/yaml/v1/#yaml-parse)
|
||||
- [`YAML.stringify(value, options): string`](https://eemeli.org/yaml/v1/#yaml-stringify)
|
||||
|
||||
### YAML Documents
|
||||
|
||||
- [`YAML.createNode(value, wrapScalars, tag): Node`](https://eemeli.org/yaml/v1/#creating-nodes)
|
||||
- [`YAML.defaultOptions`](https://eemeli.org/yaml/v1/#options)
|
||||
- [`YAML.Document`](https://eemeli.org/yaml/v1/#yaml-documents)
|
||||
- [`constructor(options)`](https://eemeli.org/yaml/v1/#creating-documents)
|
||||
- [`defaults`](https://eemeli.org/yaml/v1/#options)
|
||||
- [`#anchors`](https://eemeli.org/yaml/v1/#working-with-anchors)
|
||||
- [`#contents`](https://eemeli.org/yaml/v1/#content-nodes)
|
||||
- [`#errors`](https://eemeli.org/yaml/v1/#errors)
|
||||
- [`YAML.parseAllDocuments(str, options): YAML.Document[]`](https://eemeli.org/yaml/v1/#parsing-documents)
|
||||
- [`YAML.parseDocument(str, options): YAML.Document`](https://eemeli.org/yaml/v1/#parsing-documents)
|
||||
|
||||
```js
|
||||
import { Pair, YAMLMap, YAMLSeq } from 'yaml/types'
|
||||
```
|
||||
|
||||
- [`new Pair(key, value)`](https://eemeli.org/yaml/v1/#creating-nodes)
|
||||
- [`new YAMLMap()`](https://eemeli.org/yaml/v1/#creating-nodes)
|
||||
- [`new YAMLSeq()`](https://eemeli.org/yaml/v1/#creating-nodes)
|
||||
|
||||
### CST Parser
|
||||
|
||||
```js
|
||||
import parseCST from 'yaml/parse-cst'
|
||||
```
|
||||
|
||||
- [`parseCST(str): CSTDocument[]`](https://eemeli.org/yaml/v1/#parsecst)
|
||||
- [`YAML.parseCST(str): CSTDocument[]`](https://eemeli.org/yaml/v1/#parsecst)
|
||||
|
||||
## YAML.parse
|
||||
|
||||
```yaml
|
||||
# file.yml
|
||||
YAML:
|
||||
- A human-readable data serialization language
|
||||
- https://en.wikipedia.org/wiki/YAML
|
||||
yaml:
|
||||
- A complete JavaScript implementation
|
||||
- https://www.npmjs.com/package/yaml
|
||||
```
|
||||
|
||||
```js
|
||||
import fs from 'fs'
|
||||
import YAML from 'yaml'
|
||||
|
||||
YAML.parse('3.14159')
|
||||
// 3.14159
|
||||
|
||||
YAML.parse('[ true, false, maybe, null ]\n')
|
||||
// [ true, false, 'maybe', null ]
|
||||
|
||||
const file = fs.readFileSync('./file.yml', 'utf8')
|
||||
YAML.parse(file)
|
||||
// { YAML:
|
||||
// [ 'A human-readable data serialization language',
|
||||
// 'https://en.wikipedia.org/wiki/YAML' ],
|
||||
// yaml:
|
||||
// [ 'A complete JavaScript implementation',
|
||||
// 'https://www.npmjs.com/package/yaml' ] }
|
||||
```
|
||||
|
||||
## YAML.stringify
|
||||
|
||||
```js
|
||||
import YAML from 'yaml'
|
||||
|
||||
YAML.stringify(3.14159)
|
||||
// '3.14159\n'
|
||||
|
||||
YAML.stringify([true, false, 'maybe', null])
|
||||
// `- true
|
||||
// - false
|
||||
// - maybe
|
||||
// - null
|
||||
// `
|
||||
|
||||
YAML.stringify({ number: 3, plain: 'string', block: 'two\nlines\n' })
|
||||
// `number: 3
|
||||
// plain: string
|
||||
// block: >
|
||||
// two
|
||||
//
|
||||
// lines
|
||||
// `
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
Browser testing provided by:
|
||||
|
||||
<a href="https://www.browserstack.com/open-source">
|
||||
<img width=200 src="https://eemeli.org/yaml/images/browserstack.svg" />
|
||||
</a>
|
||||
1275
node_modules/postcss-load-config/node_modules/yaml/browser/dist/PlainValue-b8036b75.js
generated
vendored
1275
node_modules/postcss-load-config/node_modules/yaml/browser/dist/PlainValue-b8036b75.js
generated
vendored
File diff suppressed because it is too large
Load Diff
682
node_modules/postcss-load-config/node_modules/yaml/browser/dist/Schema-e94716c8.js
generated
vendored
682
node_modules/postcss-load-config/node_modules/yaml/browser/dist/Schema-e94716c8.js
generated
vendored
@ -1,682 +0,0 @@
|
||||
import { _ as _createForOfIteratorHelper, h as _slicedToArray, a as _typeof, b as _createClass, e as _defineProperty, c as _classCallCheck, d as defaultTagPrefix, n as defaultTags } from './PlainValue-b8036b75.js';
|
||||
import { d as YAMLMap, g as resolveMap, Y as YAMLSeq, h as resolveSeq, j as resolveString, c as stringifyString, s as strOptions, S as Scalar, n as nullOptions, a as boolOptions, i as intOptions, k as stringifyNumber, N as Node, A as Alias, P as Pair } from './resolveSeq-492ab440.js';
|
||||
import { b as binary, o as omap, p as pairs, s as set, i as intTime, f as floatTime, t as timestamp, a as warnOptionDeprecation } from './warnings-df54cb69.js';
|
||||
|
||||
function createMap(schema, obj, ctx) {
|
||||
var map = new YAMLMap(schema);
|
||||
|
||||
if (obj instanceof Map) {
|
||||
var _iterator = _createForOfIteratorHelper(obj),
|
||||
_step;
|
||||
|
||||
try {
|
||||
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
||||
var _step$value = _slicedToArray(_step.value, 2),
|
||||
key = _step$value[0],
|
||||
value = _step$value[1];
|
||||
|
||||
map.items.push(schema.createPair(key, value, ctx));
|
||||
}
|
||||
} catch (err) {
|
||||
_iterator.e(err);
|
||||
} finally {
|
||||
_iterator.f();
|
||||
}
|
||||
} else if (obj && _typeof(obj) === 'object') {
|
||||
for (var _i = 0, _Object$keys = Object.keys(obj); _i < _Object$keys.length; _i++) {
|
||||
var _key = _Object$keys[_i];
|
||||
map.items.push(schema.createPair(_key, obj[_key], ctx));
|
||||
}
|
||||
}
|
||||
|
||||
if (typeof schema.sortMapEntries === 'function') {
|
||||
map.items.sort(schema.sortMapEntries);
|
||||
}
|
||||
|
||||
return map;
|
||||
}
|
||||
|
||||
var map = {
|
||||
createNode: createMap,
|
||||
default: true,
|
||||
nodeClass: YAMLMap,
|
||||
tag: 'tag:yaml.org,2002:map',
|
||||
resolve: resolveMap
|
||||
};
|
||||
|
||||
function createSeq(schema, obj, ctx) {
|
||||
var seq = new YAMLSeq(schema);
|
||||
|
||||
if (obj && obj[Symbol.iterator]) {
|
||||
var _iterator = _createForOfIteratorHelper(obj),
|
||||
_step;
|
||||
|
||||
try {
|
||||
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
||||
var it = _step.value;
|
||||
var v = schema.createNode(it, ctx.wrapScalars, null, ctx);
|
||||
seq.items.push(v);
|
||||
}
|
||||
} catch (err) {
|
||||
_iterator.e(err);
|
||||
} finally {
|
||||
_iterator.f();
|
||||
}
|
||||
}
|
||||
|
||||
return seq;
|
||||
}
|
||||
|
||||
var seq = {
|
||||
createNode: createSeq,
|
||||
default: true,
|
||||
nodeClass: YAMLSeq,
|
||||
tag: 'tag:yaml.org,2002:seq',
|
||||
resolve: resolveSeq
|
||||
};
|
||||
|
||||
var string = {
|
||||
identify: function identify(value) {
|
||||
return typeof value === 'string';
|
||||
},
|
||||
default: true,
|
||||
tag: 'tag:yaml.org,2002:str',
|
||||
resolve: resolveString,
|
||||
stringify: function stringify(item, ctx, onComment, onChompKeep) {
|
||||
ctx = Object.assign({
|
||||
actualString: true
|
||||
}, ctx);
|
||||
return stringifyString(item, ctx, onComment, onChompKeep);
|
||||
},
|
||||
options: strOptions
|
||||
};
|
||||
|
||||
var failsafe = [map, seq, string];
|
||||
|
||||
/* global BigInt */
|
||||
|
||||
var intIdentify$2 = function intIdentify(value) {
|
||||
return typeof value === 'bigint' || Number.isInteger(value);
|
||||
};
|
||||
|
||||
var intResolve$1 = function intResolve(src, part, radix) {
|
||||
return intOptions.asBigInt ? BigInt(src) : parseInt(part, radix);
|
||||
};
|
||||
|
||||
function intStringify$1(node, radix, prefix) {
|
||||
var value = node.value;
|
||||
if (intIdentify$2(value) && value >= 0) return prefix + value.toString(radix);
|
||||
return stringifyNumber(node);
|
||||
}
|
||||
|
||||
var nullObj = {
|
||||
identify: function identify(value) {
|
||||
return value == null;
|
||||
},
|
||||
createNode: function createNode(schema, value, ctx) {
|
||||
return ctx.wrapScalars ? new Scalar(null) : null;
|
||||
},
|
||||
default: true,
|
||||
tag: 'tag:yaml.org,2002:null',
|
||||
test: /^(?:~|[Nn]ull|NULL)?$/,
|
||||
resolve: function resolve() {
|
||||
return null;
|
||||
},
|
||||
options: nullOptions,
|
||||
stringify: function stringify() {
|
||||
return nullOptions.nullStr;
|
||||
}
|
||||
};
|
||||
var boolObj = {
|
||||
identify: function identify(value) {
|
||||
return typeof value === 'boolean';
|
||||
},
|
||||
default: true,
|
||||
tag: 'tag:yaml.org,2002:bool',
|
||||
test: /^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,
|
||||
resolve: function resolve(str) {
|
||||
return str[0] === 't' || str[0] === 'T';
|
||||
},
|
||||
options: boolOptions,
|
||||
stringify: function stringify(_ref) {
|
||||
var value = _ref.value;
|
||||
return value ? boolOptions.trueStr : boolOptions.falseStr;
|
||||
}
|
||||
};
|
||||
var octObj = {
|
||||
identify: function identify(value) {
|
||||
return intIdentify$2(value) && value >= 0;
|
||||
},
|
||||
default: true,
|
||||
tag: 'tag:yaml.org,2002:int',
|
||||
format: 'OCT',
|
||||
test: /^0o([0-7]+)$/,
|
||||
resolve: function resolve(str, oct) {
|
||||
return intResolve$1(str, oct, 8);
|
||||
},
|
||||
options: intOptions,
|
||||
stringify: function stringify(node) {
|
||||
return intStringify$1(node, 8, '0o');
|
||||
}
|
||||
};
|
||||
var intObj = {
|
||||
identify: intIdentify$2,
|
||||
default: true,
|
||||
tag: 'tag:yaml.org,2002:int',
|
||||
test: /^[-+]?[0-9]+$/,
|
||||
resolve: function resolve(str) {
|
||||
return intResolve$1(str, str, 10);
|
||||
},
|
||||
options: intOptions,
|
||||
stringify: stringifyNumber
|
||||
};
|
||||
var hexObj = {
|
||||
identify: function identify(value) {
|
||||
return intIdentify$2(value) && value >= 0;
|
||||
},
|
||||
default: true,
|
||||
tag: 'tag:yaml.org,2002:int',
|
||||
format: 'HEX',
|
||||
test: /^0x([0-9a-fA-F]+)$/,
|
||||
resolve: function resolve(str, hex) {
|
||||
return intResolve$1(str, hex, 16);
|
||||
},
|
||||
options: intOptions,
|
||||
stringify: function stringify(node) {
|
||||
return intStringify$1(node, 16, '0x');
|
||||
}
|
||||
};
|
||||
var nanObj = {
|
||||
identify: function identify(value) {
|
||||
return typeof value === 'number';
|
||||
},
|
||||
default: true,
|
||||
tag: 'tag:yaml.org,2002:float',
|
||||
test: /^(?:[-+]?\.inf|(\.nan))$/i,
|
||||
resolve: function resolve(str, nan) {
|
||||
return nan ? NaN : str[0] === '-' ? Number.NEGATIVE_INFINITY : Number.POSITIVE_INFINITY;
|
||||
},
|
||||
stringify: stringifyNumber
|
||||
};
|
||||
var expObj = {
|
||||
identify: function identify(value) {
|
||||
return typeof value === 'number';
|
||||
},
|
||||
default: true,
|
||||
tag: 'tag:yaml.org,2002:float',
|
||||
format: 'EXP',
|
||||
test: /^[-+]?(?:\.[0-9]+|[0-9]+(?:\.[0-9]*)?)[eE][-+]?[0-9]+$/,
|
||||
resolve: function resolve(str) {
|
||||
return parseFloat(str);
|
||||
},
|
||||
stringify: function stringify(_ref2) {
|
||||
var value = _ref2.value;
|
||||
return Number(value).toExponential();
|
||||
}
|
||||
};
|
||||
var floatObj = {
|
||||
identify: function identify(value) {
|
||||
return typeof value === 'number';
|
||||
},
|
||||
default: true,
|
||||
tag: 'tag:yaml.org,2002:float',
|
||||
test: /^[-+]?(?:\.([0-9]+)|[0-9]+\.([0-9]*))$/,
|
||||
resolve: function resolve(str, frac1, frac2) {
|
||||
var frac = frac1 || frac2;
|
||||
var node = new Scalar(parseFloat(str));
|
||||
if (frac && frac[frac.length - 1] === '0') node.minFractionDigits = frac.length;
|
||||
return node;
|
||||
},
|
||||
stringify: stringifyNumber
|
||||
};
|
||||
var core = failsafe.concat([nullObj, boolObj, octObj, intObj, hexObj, nanObj, expObj, floatObj]);
|
||||
|
||||
/* global BigInt */
|
||||
|
||||
var intIdentify$1 = function intIdentify(value) {
|
||||
return typeof value === 'bigint' || Number.isInteger(value);
|
||||
};
|
||||
|
||||
var stringifyJSON = function stringifyJSON(_ref) {
|
||||
var value = _ref.value;
|
||||
return JSON.stringify(value);
|
||||
};
|
||||
|
||||
var json = [map, seq, {
|
||||
identify: function identify(value) {
|
||||
return typeof value === 'string';
|
||||
},
|
||||
default: true,
|
||||
tag: 'tag:yaml.org,2002:str',
|
||||
resolve: resolveString,
|
||||
stringify: stringifyJSON
|
||||
}, {
|
||||
identify: function identify(value) {
|
||||
return value == null;
|
||||
},
|
||||
createNode: function createNode(schema, value, ctx) {
|
||||
return ctx.wrapScalars ? new Scalar(null) : null;
|
||||
},
|
||||
default: true,
|
||||
tag: 'tag:yaml.org,2002:null',
|
||||
test: /^null$/,
|
||||
resolve: function resolve() {
|
||||
return null;
|
||||
},
|
||||
stringify: stringifyJSON
|
||||
}, {
|
||||
identify: function identify(value) {
|
||||
return typeof value === 'boolean';
|
||||
},
|
||||
default: true,
|
||||
tag: 'tag:yaml.org,2002:bool',
|
||||
test: /^true|false$/,
|
||||
resolve: function resolve(str) {
|
||||
return str === 'true';
|
||||
},
|
||||
stringify: stringifyJSON
|
||||
}, {
|
||||
identify: intIdentify$1,
|
||||
default: true,
|
||||
tag: 'tag:yaml.org,2002:int',
|
||||
test: /^-?(?:0|[1-9][0-9]*)$/,
|
||||
resolve: function resolve(str) {
|
||||
return intOptions.asBigInt ? BigInt(str) : parseInt(str, 10);
|
||||
},
|
||||
stringify: function stringify(_ref2) {
|
||||
var value = _ref2.value;
|
||||
return intIdentify$1(value) ? value.toString() : JSON.stringify(value);
|
||||
}
|
||||
}, {
|
||||
identify: function identify(value) {
|
||||
return typeof value === 'number';
|
||||
},
|
||||
default: true,
|
||||
tag: 'tag:yaml.org,2002:float',
|
||||
test: /^-?(?:0|[1-9][0-9]*)(?:\.[0-9]*)?(?:[eE][-+]?[0-9]+)?$/,
|
||||
resolve: function resolve(str) {
|
||||
return parseFloat(str);
|
||||
},
|
||||
stringify: stringifyJSON
|
||||
}];
|
||||
|
||||
json.scalarFallback = function (str) {
|
||||
throw new SyntaxError("Unresolved plain scalar ".concat(JSON.stringify(str)));
|
||||
};
|
||||
|
||||
/* global BigInt */
|
||||
|
||||
var boolStringify = function boolStringify(_ref) {
|
||||
var value = _ref.value;
|
||||
return value ? boolOptions.trueStr : boolOptions.falseStr;
|
||||
};
|
||||
|
||||
var intIdentify = function intIdentify(value) {
|
||||
return typeof value === 'bigint' || Number.isInteger(value);
|
||||
};
|
||||
|
||||
function intResolve(sign, src, radix) {
|
||||
var str = src.replace(/_/g, '');
|
||||
|
||||
if (intOptions.asBigInt) {
|
||||
switch (radix) {
|
||||
case 2:
|
||||
str = "0b".concat(str);
|
||||
break;
|
||||
|
||||
case 8:
|
||||
str = "0o".concat(str);
|
||||
break;
|
||||
|
||||
case 16:
|
||||
str = "0x".concat(str);
|
||||
break;
|
||||
}
|
||||
|
||||
var _n = BigInt(str);
|
||||
|
||||
return sign === '-' ? BigInt(-1) * _n : _n;
|
||||
}
|
||||
|
||||
var n = parseInt(str, radix);
|
||||
return sign === '-' ? -1 * n : n;
|
||||
}
|
||||
|
||||
function intStringify(node, radix, prefix) {
|
||||
var value = node.value;
|
||||
|
||||
if (intIdentify(value)) {
|
||||
var str = value.toString(radix);
|
||||
return value < 0 ? '-' + prefix + str.substr(1) : prefix + str;
|
||||
}
|
||||
|
||||
return stringifyNumber(node);
|
||||
}
|
||||
|
||||
var yaml11 = failsafe.concat([{
|
||||
identify: function identify(value) {
|
||||
return value == null;
|
||||
},
|
||||
createNode: function createNode(schema, value, ctx) {
|
||||
return ctx.wrapScalars ? new Scalar(null) : null;
|
||||
},
|
||||
default: true,
|
||||
tag: 'tag:yaml.org,2002:null',
|
||||
test: /^(?:~|[Nn]ull|NULL)?$/,
|
||||
resolve: function resolve() {
|
||||
return null;
|
||||
},
|
||||
options: nullOptions,
|
||||
stringify: function stringify() {
|
||||
return nullOptions.nullStr;
|
||||
}
|
||||
}, {
|
||||
identify: function identify(value) {
|
||||
return typeof value === 'boolean';
|
||||
},
|
||||
default: true,
|
||||
tag: 'tag:yaml.org,2002:bool',
|
||||
test: /^(?:Y|y|[Yy]es|YES|[Tt]rue|TRUE|[Oo]n|ON)$/,
|
||||
resolve: function resolve() {
|
||||
return true;
|
||||
},
|
||||
options: boolOptions,
|
||||
stringify: boolStringify
|
||||
}, {
|
||||
identify: function identify(value) {
|
||||
return typeof value === 'boolean';
|
||||
},
|
||||
default: true,
|
||||
tag: 'tag:yaml.org,2002:bool',
|
||||
test: /^(?:N|n|[Nn]o|NO|[Ff]alse|FALSE|[Oo]ff|OFF)$/i,
|
||||
resolve: function resolve() {
|
||||
return false;
|
||||
},
|
||||
options: boolOptions,
|
||||
stringify: boolStringify
|
||||
}, {
|
||||
identify: intIdentify,
|
||||
default: true,
|
||||
tag: 'tag:yaml.org,2002:int',
|
||||
format: 'BIN',
|
||||
test: /^([-+]?)0b([0-1_]+)$/,
|
||||
resolve: function resolve(str, sign, bin) {
|
||||
return intResolve(sign, bin, 2);
|
||||
},
|
||||
stringify: function stringify(node) {
|
||||
return intStringify(node, 2, '0b');
|
||||
}
|
||||
}, {
|
||||
identify: intIdentify,
|
||||
default: true,
|
||||
tag: 'tag:yaml.org,2002:int',
|
||||
format: 'OCT',
|
||||
test: /^([-+]?)0([0-7_]+)$/,
|
||||
resolve: function resolve(str, sign, oct) {
|
||||
return intResolve(sign, oct, 8);
|
||||
},
|
||||
stringify: function stringify(node) {
|
||||
return intStringify(node, 8, '0');
|
||||
}
|
||||
}, {
|
||||
identify: intIdentify,
|
||||
default: true,
|
||||
tag: 'tag:yaml.org,2002:int',
|
||||
test: /^([-+]?)([0-9][0-9_]*)$/,
|
||||
resolve: function resolve(str, sign, abs) {
|
||||
return intResolve(sign, abs, 10);
|
||||
},
|
||||
stringify: stringifyNumber
|
||||
}, {
|
||||
identify: intIdentify,
|
||||
default: true,
|
||||
tag: 'tag:yaml.org,2002:int',
|
||||
format: 'HEX',
|
||||
test: /^([-+]?)0x([0-9a-fA-F_]+)$/,
|
||||
resolve: function resolve(str, sign, hex) {
|
||||
return intResolve(sign, hex, 16);
|
||||
},
|
||||
stringify: function stringify(node) {
|
||||
return intStringify(node, 16, '0x');
|
||||
}
|
||||
}, {
|
||||
identify: function identify(value) {
|
||||
return typeof value === 'number';
|
||||
},
|
||||
default: true,
|
||||
tag: 'tag:yaml.org,2002:float',
|
||||
test: /^(?:[-+]?\.inf|(\.nan))$/i,
|
||||
resolve: function resolve(str, nan) {
|
||||
return nan ? NaN : str[0] === '-' ? Number.NEGATIVE_INFINITY : Number.POSITIVE_INFINITY;
|
||||
},
|
||||
stringify: stringifyNumber
|
||||
}, {
|
||||
identify: function identify(value) {
|
||||
return typeof value === 'number';
|
||||
},
|
||||
default: true,
|
||||
tag: 'tag:yaml.org,2002:float',
|
||||
format: 'EXP',
|
||||
test: /^[-+]?([0-9][0-9_]*)?(\.[0-9_]*)?[eE][-+]?[0-9]+$/,
|
||||
resolve: function resolve(str) {
|
||||
return parseFloat(str.replace(/_/g, ''));
|
||||
},
|
||||
stringify: function stringify(_ref2) {
|
||||
var value = _ref2.value;
|
||||
return Number(value).toExponential();
|
||||
}
|
||||
}, {
|
||||
identify: function identify(value) {
|
||||
return typeof value === 'number';
|
||||
},
|
||||
default: true,
|
||||
tag: 'tag:yaml.org,2002:float',
|
||||
test: /^[-+]?(?:[0-9][0-9_]*)?\.([0-9_]*)$/,
|
||||
resolve: function resolve(str, frac) {
|
||||
var node = new Scalar(parseFloat(str.replace(/_/g, '')));
|
||||
|
||||
if (frac) {
|
||||
var f = frac.replace(/_/g, '');
|
||||
if (f[f.length - 1] === '0') node.minFractionDigits = f.length;
|
||||
}
|
||||
|
||||
return node;
|
||||
},
|
||||
stringify: stringifyNumber
|
||||
}], binary, omap, pairs, set, intTime, floatTime, timestamp);
|
||||
|
||||
var schemas = {
|
||||
core: core,
|
||||
failsafe: failsafe,
|
||||
json: json,
|
||||
yaml11: yaml11
|
||||
};
|
||||
var tags = {
|
||||
binary: binary,
|
||||
bool: boolObj,
|
||||
float: floatObj,
|
||||
floatExp: expObj,
|
||||
floatNaN: nanObj,
|
||||
floatTime: floatTime,
|
||||
int: intObj,
|
||||
intHex: hexObj,
|
||||
intOct: octObj,
|
||||
intTime: intTime,
|
||||
map: map,
|
||||
null: nullObj,
|
||||
omap: omap,
|
||||
pairs: pairs,
|
||||
seq: seq,
|
||||
set: set,
|
||||
timestamp: timestamp
|
||||
};
|
||||
|
||||
function findTagObject(value, tagName, tags) {
|
||||
if (tagName) {
|
||||
var match = tags.filter(function (t) {
|
||||
return t.tag === tagName;
|
||||
});
|
||||
var tagObj = match.find(function (t) {
|
||||
return !t.format;
|
||||
}) || match[0];
|
||||
if (!tagObj) throw new Error("Tag ".concat(tagName, " not found"));
|
||||
return tagObj;
|
||||
} // TODO: deprecate/remove class check
|
||||
|
||||
|
||||
return tags.find(function (t) {
|
||||
return (t.identify && t.identify(value) || t.class && value instanceof t.class) && !t.format;
|
||||
});
|
||||
}
|
||||
|
||||
function createNode(value, tagName, ctx) {
|
||||
if (value instanceof Node) return value;
|
||||
var defaultPrefix = ctx.defaultPrefix,
|
||||
onTagObj = ctx.onTagObj,
|
||||
prevObjects = ctx.prevObjects,
|
||||
schema = ctx.schema,
|
||||
wrapScalars = ctx.wrapScalars;
|
||||
if (tagName && tagName.startsWith('!!')) tagName = defaultPrefix + tagName.slice(2);
|
||||
var tagObj = findTagObject(value, tagName, schema.tags);
|
||||
|
||||
if (!tagObj) {
|
||||
if (typeof value.toJSON === 'function') value = value.toJSON();
|
||||
if (!value || _typeof(value) !== 'object') return wrapScalars ? new Scalar(value) : value;
|
||||
tagObj = value instanceof Map ? map : value[Symbol.iterator] ? seq : map;
|
||||
}
|
||||
|
||||
if (onTagObj) {
|
||||
onTagObj(tagObj);
|
||||
delete ctx.onTagObj;
|
||||
} // Detect duplicate references to the same object & use Alias nodes for all
|
||||
// after first. The `obj` wrapper allows for circular references to resolve.
|
||||
|
||||
|
||||
var obj = {
|
||||
value: undefined,
|
||||
node: undefined
|
||||
};
|
||||
|
||||
if (value && _typeof(value) === 'object' && prevObjects) {
|
||||
var prev = prevObjects.get(value);
|
||||
|
||||
if (prev) {
|
||||
var alias = new Alias(prev); // leaves source dirty; must be cleaned by caller
|
||||
|
||||
ctx.aliasNodes.push(alias); // defined along with prevObjects
|
||||
|
||||
return alias;
|
||||
}
|
||||
|
||||
obj.value = value;
|
||||
prevObjects.set(value, obj);
|
||||
}
|
||||
|
||||
obj.node = tagObj.createNode ? tagObj.createNode(ctx.schema, value, ctx) : wrapScalars ? new Scalar(value) : value;
|
||||
if (tagName && obj.node instanceof Node) obj.node.tag = tagName;
|
||||
return obj.node;
|
||||
}
|
||||
|
||||
function getSchemaTags(schemas, knownTags, customTags, schemaId) {
|
||||
var tags = schemas[schemaId.replace(/\W/g, '')]; // 'yaml-1.1' -> 'yaml11'
|
||||
|
||||
if (!tags) {
|
||||
var keys = Object.keys(schemas).map(function (key) {
|
||||
return JSON.stringify(key);
|
||||
}).join(', ');
|
||||
throw new Error("Unknown schema \"".concat(schemaId, "\"; use one of ").concat(keys));
|
||||
}
|
||||
|
||||
if (Array.isArray(customTags)) {
|
||||
var _iterator = _createForOfIteratorHelper(customTags),
|
||||
_step;
|
||||
|
||||
try {
|
||||
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
||||
var tag = _step.value;
|
||||
tags = tags.concat(tag);
|
||||
}
|
||||
} catch (err) {
|
||||
_iterator.e(err);
|
||||
} finally {
|
||||
_iterator.f();
|
||||
}
|
||||
} else if (typeof customTags === 'function') {
|
||||
tags = customTags(tags.slice());
|
||||
}
|
||||
|
||||
for (var i = 0; i < tags.length; ++i) {
|
||||
var _tag = tags[i];
|
||||
|
||||
if (typeof _tag === 'string') {
|
||||
var tagObj = knownTags[_tag];
|
||||
|
||||
if (!tagObj) {
|
||||
var _keys = Object.keys(knownTags).map(function (key) {
|
||||
return JSON.stringify(key);
|
||||
}).join(', ');
|
||||
|
||||
throw new Error("Unknown custom tag \"".concat(_tag, "\"; use one of ").concat(_keys));
|
||||
}
|
||||
|
||||
tags[i] = tagObj;
|
||||
}
|
||||
}
|
||||
|
||||
return tags;
|
||||
}
|
||||
|
||||
var sortMapEntriesByKey = function sortMapEntriesByKey(a, b) {
|
||||
return a.key < b.key ? -1 : a.key > b.key ? 1 : 0;
|
||||
};
|
||||
|
||||
var Schema = /*#__PURE__*/function () {
|
||||
// TODO: remove in v2
|
||||
// TODO: remove in v2
|
||||
function Schema(_ref) {
|
||||
var customTags = _ref.customTags,
|
||||
merge = _ref.merge,
|
||||
schema = _ref.schema,
|
||||
sortMapEntries = _ref.sortMapEntries,
|
||||
deprecatedCustomTags = _ref.tags;
|
||||
|
||||
_classCallCheck(this, Schema);
|
||||
|
||||
this.merge = !!merge;
|
||||
this.name = schema;
|
||||
this.sortMapEntries = sortMapEntries === true ? sortMapEntriesByKey : sortMapEntries || null;
|
||||
if (!customTags && deprecatedCustomTags) warnOptionDeprecation('tags', 'customTags');
|
||||
this.tags = getSchemaTags(schemas, tags, customTags || deprecatedCustomTags, schema);
|
||||
}
|
||||
|
||||
_createClass(Schema, [{
|
||||
key: "createNode",
|
||||
value: function createNode$1(value, wrapScalars, tagName, ctx) {
|
||||
var baseCtx = {
|
||||
defaultPrefix: Schema.defaultPrefix,
|
||||
schema: this,
|
||||
wrapScalars: wrapScalars
|
||||
};
|
||||
var createCtx = ctx ? Object.assign(ctx, baseCtx) : baseCtx;
|
||||
return createNode(value, tagName, createCtx);
|
||||
}
|
||||
}, {
|
||||
key: "createPair",
|
||||
value: function createPair(key, value, ctx) {
|
||||
if (!ctx) ctx = {
|
||||
wrapScalars: true
|
||||
};
|
||||
var k = this.createNode(key, ctx.wrapScalars, null, ctx);
|
||||
var v = this.createNode(value, ctx.wrapScalars, null, ctx);
|
||||
return new Pair(k, v);
|
||||
}
|
||||
}]);
|
||||
|
||||
return Schema;
|
||||
}();
|
||||
|
||||
_defineProperty(Schema, "defaultPrefix", defaultTagPrefix);
|
||||
|
||||
_defineProperty(Schema, "defaultTags", defaultTags);
|
||||
|
||||
export { Schema as S };
|
||||
1002
node_modules/postcss-load-config/node_modules/yaml/browser/dist/index.js
generated
vendored
1002
node_modules/postcss-load-config/node_modules/yaml/browser/dist/index.js
generated
vendored
File diff suppressed because it is too large
Load Diff
3
node_modules/postcss-load-config/node_modules/yaml/browser/dist/legacy-exports.js
generated
vendored
3
node_modules/postcss-load-config/node_modules/yaml/browser/dist/legacy-exports.js
generated
vendored
@ -1,3 +0,0 @@
|
||||
export { b as binary, f as floatTime, i as intTime, o as omap, p as pairs, s as set, t as timestamp, c as warnFileDeprecation } from './warnings-df54cb69.js';
|
||||
import './PlainValue-b8036b75.js';
|
||||
import './resolveSeq-492ab440.js';
|
||||
1
node_modules/postcss-load-config/node_modules/yaml/browser/dist/package.json
generated
vendored
1
node_modules/postcss-load-config/node_modules/yaml/browser/dist/package.json
generated
vendored
@ -1 +0,0 @@
|
||||
{ "type": "module" }
|
||||
1904
node_modules/postcss-load-config/node_modules/yaml/browser/dist/parse-cst.js
generated
vendored
1904
node_modules/postcss-load-config/node_modules/yaml/browser/dist/parse-cst.js
generated
vendored
File diff suppressed because it is too large
Load Diff
2419
node_modules/postcss-load-config/node_modules/yaml/browser/dist/resolveSeq-492ab440.js
generated
vendored
2419
node_modules/postcss-load-config/node_modules/yaml/browser/dist/resolveSeq-492ab440.js
generated
vendored
File diff suppressed because it is too large
Load Diff
4
node_modules/postcss-load-config/node_modules/yaml/browser/dist/types.js
generated
vendored
4
node_modules/postcss-load-config/node_modules/yaml/browser/dist/types.js
generated
vendored
@ -1,4 +0,0 @@
|
||||
export { A as Alias, C as Collection, M as Merge, N as Node, P as Pair, S as Scalar, d as YAMLMap, Y as YAMLSeq, b as binaryOptions, a as boolOptions, i as intOptions, n as nullOptions, s as strOptions } from './resolveSeq-492ab440.js';
|
||||
export { S as Schema } from './Schema-e94716c8.js';
|
||||
import './PlainValue-b8036b75.js';
|
||||
import './warnings-df54cb69.js';
|
||||
2
node_modules/postcss-load-config/node_modules/yaml/browser/dist/util.js
generated
vendored
2
node_modules/postcss-load-config/node_modules/yaml/browser/dist/util.js
generated
vendored
@ -1,2 +0,0 @@
|
||||
export { l as findPair, g as parseMap, h as parseSeq, k as stringifyNumber, c as stringifyString, t as toJSON } from './resolveSeq-492ab440.js';
|
||||
export { T as Type, i as YAMLError, o as YAMLReferenceError, g as YAMLSemanticError, Y as YAMLSyntaxError, f as YAMLWarning } from './PlainValue-b8036b75.js';
|
||||
499
node_modules/postcss-load-config/node_modules/yaml/browser/dist/warnings-df54cb69.js
generated
vendored
499
node_modules/postcss-load-config/node_modules/yaml/browser/dist/warnings-df54cb69.js
generated
vendored
@ -1,499 +0,0 @@
|
||||
import { o as YAMLReferenceError, T as Type, g as YAMLSemanticError, _ as _createForOfIteratorHelper, e as _defineProperty, j as _inherits, k as _createSuper, c as _classCallCheck, p as _assertThisInitialized, b as _createClass, a as _typeof, l as _get, m as _getPrototypeOf } from './PlainValue-b8036b75.js';
|
||||
import { j as resolveString, b as binaryOptions, c as stringifyString, h as resolveSeq, P as Pair, d as YAMLMap, Y as YAMLSeq, t as toJSON, S as Scalar, l as findPair, g as resolveMap, k as stringifyNumber } from './resolveSeq-492ab440.js';
|
||||
|
||||
/* global atob, btoa, Buffer */
|
||||
var binary = {
|
||||
identify: function identify(value) {
|
||||
return value instanceof Uint8Array;
|
||||
},
|
||||
// Buffer inherits from Uint8Array
|
||||
default: false,
|
||||
tag: 'tag:yaml.org,2002:binary',
|
||||
|
||||
/**
|
||||
* Returns a Buffer in node and an Uint8Array in browsers
|
||||
*
|
||||
* To use the resulting buffer as an image, you'll want to do something like:
|
||||
*
|
||||
* const blob = new Blob([buffer], { type: 'image/jpeg' })
|
||||
* document.querySelector('#photo').src = URL.createObjectURL(blob)
|
||||
*/
|
||||
resolve: function resolve(doc, node) {
|
||||
var src = resolveString(doc, node);
|
||||
|
||||
if (typeof Buffer === 'function') {
|
||||
return Buffer.from(src, 'base64');
|
||||
} else if (typeof atob === 'function') {
|
||||
// On IE 11, atob() can't handle newlines
|
||||
var str = atob(src.replace(/[\n\r]/g, ''));
|
||||
var buffer = new Uint8Array(str.length);
|
||||
|
||||
for (var i = 0; i < str.length; ++i) {
|
||||
buffer[i] = str.charCodeAt(i);
|
||||
}
|
||||
|
||||
return buffer;
|
||||
} else {
|
||||
var msg = 'This environment does not support reading binary tags; either Buffer or atob is required';
|
||||
doc.errors.push(new YAMLReferenceError(node, msg));
|
||||
return null;
|
||||
}
|
||||
},
|
||||
options: binaryOptions,
|
||||
stringify: function stringify(_ref, ctx, onComment, onChompKeep) {
|
||||
var comment = _ref.comment,
|
||||
type = _ref.type,
|
||||
value = _ref.value;
|
||||
var src;
|
||||
|
||||
if (typeof Buffer === 'function') {
|
||||
src = value instanceof Buffer ? value.toString('base64') : Buffer.from(value.buffer).toString('base64');
|
||||
} else if (typeof btoa === 'function') {
|
||||
var s = '';
|
||||
|
||||
for (var i = 0; i < value.length; ++i) {
|
||||
s += String.fromCharCode(value[i]);
|
||||
}
|
||||
|
||||
src = btoa(s);
|
||||
} else {
|
||||
throw new Error('This environment does not support writing binary tags; either Buffer or btoa is required');
|
||||
}
|
||||
|
||||
if (!type) type = binaryOptions.defaultType;
|
||||
|
||||
if (type === Type.QUOTE_DOUBLE) {
|
||||
value = src;
|
||||
} else {
|
||||
var lineWidth = binaryOptions.lineWidth;
|
||||
var n = Math.ceil(src.length / lineWidth);
|
||||
var lines = new Array(n);
|
||||
|
||||
for (var _i = 0, o = 0; _i < n; ++_i, o += lineWidth) {
|
||||
lines[_i] = src.substr(o, lineWidth);
|
||||
}
|
||||
|
||||
value = lines.join(type === Type.BLOCK_LITERAL ? '\n' : ' ');
|
||||
}
|
||||
|
||||
return stringifyString({
|
||||
comment: comment,
|
||||
type: type,
|
||||
value: value
|
||||
}, ctx, onComment, onChompKeep);
|
||||
}
|
||||
};
|
||||
|
||||
function parsePairs(doc, cst) {
|
||||
var seq = resolveSeq(doc, cst);
|
||||
|
||||
for (var i = 0; i < seq.items.length; ++i) {
|
||||
var item = seq.items[i];
|
||||
if (item instanceof Pair) continue;else if (item instanceof YAMLMap) {
|
||||
if (item.items.length > 1) {
|
||||
var msg = 'Each pair must have its own sequence indicator';
|
||||
throw new YAMLSemanticError(cst, msg);
|
||||
}
|
||||
|
||||
var pair = item.items[0] || new Pair();
|
||||
if (item.commentBefore) pair.commentBefore = pair.commentBefore ? "".concat(item.commentBefore, "\n").concat(pair.commentBefore) : item.commentBefore;
|
||||
if (item.comment) pair.comment = pair.comment ? "".concat(item.comment, "\n").concat(pair.comment) : item.comment;
|
||||
item = pair;
|
||||
}
|
||||
seq.items[i] = item instanceof Pair ? item : new Pair(item);
|
||||
}
|
||||
|
||||
return seq;
|
||||
}
|
||||
function createPairs(schema, iterable, ctx) {
|
||||
var pairs = new YAMLSeq(schema);
|
||||
pairs.tag = 'tag:yaml.org,2002:pairs';
|
||||
|
||||
var _iterator = _createForOfIteratorHelper(iterable),
|
||||
_step;
|
||||
|
||||
try {
|
||||
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
||||
var it = _step.value;
|
||||
var key = void 0,
|
||||
value = void 0;
|
||||
|
||||
if (Array.isArray(it)) {
|
||||
if (it.length === 2) {
|
||||
key = it[0];
|
||||
value = it[1];
|
||||
} else throw new TypeError("Expected [key, value] tuple: ".concat(it));
|
||||
} else if (it && it instanceof Object) {
|
||||
var keys = Object.keys(it);
|
||||
|
||||
if (keys.length === 1) {
|
||||
key = keys[0];
|
||||
value = it[key];
|
||||
} else throw new TypeError("Expected { key: value } tuple: ".concat(it));
|
||||
} else {
|
||||
key = it;
|
||||
}
|
||||
|
||||
var pair = schema.createPair(key, value, ctx);
|
||||
pairs.items.push(pair);
|
||||
}
|
||||
} catch (err) {
|
||||
_iterator.e(err);
|
||||
} finally {
|
||||
_iterator.f();
|
||||
}
|
||||
|
||||
return pairs;
|
||||
}
|
||||
var pairs = {
|
||||
default: false,
|
||||
tag: 'tag:yaml.org,2002:pairs',
|
||||
resolve: parsePairs,
|
||||
createNode: createPairs
|
||||
};
|
||||
|
||||
var YAMLOMap = /*#__PURE__*/function (_YAMLSeq) {
|
||||
_inherits(YAMLOMap, _YAMLSeq);
|
||||
|
||||
var _super = _createSuper(YAMLOMap);
|
||||
|
||||
function YAMLOMap() {
|
||||
var _this;
|
||||
|
||||
_classCallCheck(this, YAMLOMap);
|
||||
|
||||
_this = _super.call(this);
|
||||
|
||||
_defineProperty(_assertThisInitialized(_this), "add", YAMLMap.prototype.add.bind(_assertThisInitialized(_this)));
|
||||
|
||||
_defineProperty(_assertThisInitialized(_this), "delete", YAMLMap.prototype.delete.bind(_assertThisInitialized(_this)));
|
||||
|
||||
_defineProperty(_assertThisInitialized(_this), "get", YAMLMap.prototype.get.bind(_assertThisInitialized(_this)));
|
||||
|
||||
_defineProperty(_assertThisInitialized(_this), "has", YAMLMap.prototype.has.bind(_assertThisInitialized(_this)));
|
||||
|
||||
_defineProperty(_assertThisInitialized(_this), "set", YAMLMap.prototype.set.bind(_assertThisInitialized(_this)));
|
||||
|
||||
_this.tag = YAMLOMap.tag;
|
||||
return _this;
|
||||
}
|
||||
|
||||
_createClass(YAMLOMap, [{
|
||||
key: "toJSON",
|
||||
value: function toJSON$1(_, ctx) {
|
||||
var map = new Map();
|
||||
if (ctx && ctx.onCreate) ctx.onCreate(map);
|
||||
|
||||
var _iterator = _createForOfIteratorHelper(this.items),
|
||||
_step;
|
||||
|
||||
try {
|
||||
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
||||
var pair = _step.value;
|
||||
var key = void 0,
|
||||
value = void 0;
|
||||
|
||||
if (pair instanceof Pair) {
|
||||
key = toJSON(pair.key, '', ctx);
|
||||
value = toJSON(pair.value, key, ctx);
|
||||
} else {
|
||||
key = toJSON(pair, '', ctx);
|
||||
}
|
||||
|
||||
if (map.has(key)) throw new Error('Ordered maps must not include duplicate keys');
|
||||
map.set(key, value);
|
||||
}
|
||||
} catch (err) {
|
||||
_iterator.e(err);
|
||||
} finally {
|
||||
_iterator.f();
|
||||
}
|
||||
|
||||
return map;
|
||||
}
|
||||
}]);
|
||||
|
||||
return YAMLOMap;
|
||||
}(YAMLSeq);
|
||||
|
||||
_defineProperty(YAMLOMap, "tag", 'tag:yaml.org,2002:omap');
|
||||
|
||||
function parseOMap(doc, cst) {
|
||||
var pairs = parsePairs(doc, cst);
|
||||
var seenKeys = [];
|
||||
|
||||
var _iterator2 = _createForOfIteratorHelper(pairs.items),
|
||||
_step2;
|
||||
|
||||
try {
|
||||
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
||||
var key = _step2.value.key;
|
||||
|
||||
if (key instanceof Scalar) {
|
||||
if (seenKeys.includes(key.value)) {
|
||||
var msg = 'Ordered maps must not include duplicate keys';
|
||||
throw new YAMLSemanticError(cst, msg);
|
||||
} else {
|
||||
seenKeys.push(key.value);
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (err) {
|
||||
_iterator2.e(err);
|
||||
} finally {
|
||||
_iterator2.f();
|
||||
}
|
||||
|
||||
return Object.assign(new YAMLOMap(), pairs);
|
||||
}
|
||||
|
||||
function createOMap(schema, iterable, ctx) {
|
||||
var pairs = createPairs(schema, iterable, ctx);
|
||||
var omap = new YAMLOMap();
|
||||
omap.items = pairs.items;
|
||||
return omap;
|
||||
}
|
||||
|
||||
var omap = {
|
||||
identify: function identify(value) {
|
||||
return value instanceof Map;
|
||||
},
|
||||
nodeClass: YAMLOMap,
|
||||
default: false,
|
||||
tag: 'tag:yaml.org,2002:omap',
|
||||
resolve: parseOMap,
|
||||
createNode: createOMap
|
||||
};
|
||||
|
||||
var YAMLSet = /*#__PURE__*/function (_YAMLMap) {
|
||||
_inherits(YAMLSet, _YAMLMap);
|
||||
|
||||
var _super = _createSuper(YAMLSet);
|
||||
|
||||
function YAMLSet() {
|
||||
var _this;
|
||||
|
||||
_classCallCheck(this, YAMLSet);
|
||||
|
||||
_this = _super.call(this);
|
||||
_this.tag = YAMLSet.tag;
|
||||
return _this;
|
||||
}
|
||||
|
||||
_createClass(YAMLSet, [{
|
||||
key: "add",
|
||||
value: function add(key) {
|
||||
var pair = key instanceof Pair ? key : new Pair(key);
|
||||
var prev = findPair(this.items, pair.key);
|
||||
if (!prev) this.items.push(pair);
|
||||
}
|
||||
}, {
|
||||
key: "get",
|
||||
value: function get(key, keepPair) {
|
||||
var pair = findPair(this.items, key);
|
||||
return !keepPair && pair instanceof Pair ? pair.key instanceof Scalar ? pair.key.value : pair.key : pair;
|
||||
}
|
||||
}, {
|
||||
key: "set",
|
||||
value: function set(key, value) {
|
||||
if (typeof value !== 'boolean') throw new Error("Expected boolean value for set(key, value) in a YAML set, not ".concat(_typeof(value)));
|
||||
var prev = findPair(this.items, key);
|
||||
|
||||
if (prev && !value) {
|
||||
this.items.splice(this.items.indexOf(prev), 1);
|
||||
} else if (!prev && value) {
|
||||
this.items.push(new Pair(key));
|
||||
}
|
||||
}
|
||||
}, {
|
||||
key: "toJSON",
|
||||
value: function toJSON(_, ctx) {
|
||||
return _get(_getPrototypeOf(YAMLSet.prototype), "toJSON", this).call(this, _, ctx, Set);
|
||||
}
|
||||
}, {
|
||||
key: "toString",
|
||||
value: function toString(ctx, onComment, onChompKeep) {
|
||||
if (!ctx) return JSON.stringify(this);
|
||||
if (this.hasAllNullValues()) return _get(_getPrototypeOf(YAMLSet.prototype), "toString", this).call(this, ctx, onComment, onChompKeep);else throw new Error('Set items must all have null values');
|
||||
}
|
||||
}]);
|
||||
|
||||
return YAMLSet;
|
||||
}(YAMLMap);
|
||||
|
||||
_defineProperty(YAMLSet, "tag", 'tag:yaml.org,2002:set');
|
||||
|
||||
function parseSet(doc, cst) {
|
||||
var map = resolveMap(doc, cst);
|
||||
if (!map.hasAllNullValues()) throw new YAMLSemanticError(cst, 'Set items must all have null values');
|
||||
return Object.assign(new YAMLSet(), map);
|
||||
}
|
||||
|
||||
function createSet(schema, iterable, ctx) {
|
||||
var set = new YAMLSet();
|
||||
|
||||
var _iterator = _createForOfIteratorHelper(iterable),
|
||||
_step;
|
||||
|
||||
try {
|
||||
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
||||
var value = _step.value;
|
||||
set.items.push(schema.createPair(value, null, ctx));
|
||||
}
|
||||
} catch (err) {
|
||||
_iterator.e(err);
|
||||
} finally {
|
||||
_iterator.f();
|
||||
}
|
||||
|
||||
return set;
|
||||
}
|
||||
|
||||
var set = {
|
||||
identify: function identify(value) {
|
||||
return value instanceof Set;
|
||||
},
|
||||
nodeClass: YAMLSet,
|
||||
default: false,
|
||||
tag: 'tag:yaml.org,2002:set',
|
||||
resolve: parseSet,
|
||||
createNode: createSet
|
||||
};
|
||||
|
||||
var parseSexagesimal = function parseSexagesimal(sign, parts) {
|
||||
var n = parts.split(':').reduce(function (n, p) {
|
||||
return n * 60 + Number(p);
|
||||
}, 0);
|
||||
return sign === '-' ? -n : n;
|
||||
}; // hhhh:mm:ss.sss
|
||||
|
||||
|
||||
var stringifySexagesimal = function stringifySexagesimal(_ref) {
|
||||
var value = _ref.value;
|
||||
if (isNaN(value) || !isFinite(value)) return stringifyNumber(value);
|
||||
var sign = '';
|
||||
|
||||
if (value < 0) {
|
||||
sign = '-';
|
||||
value = Math.abs(value);
|
||||
}
|
||||
|
||||
var parts = [value % 60]; // seconds, including ms
|
||||
|
||||
if (value < 60) {
|
||||
parts.unshift(0); // at least one : is required
|
||||
} else {
|
||||
value = Math.round((value - parts[0]) / 60);
|
||||
parts.unshift(value % 60); // minutes
|
||||
|
||||
if (value >= 60) {
|
||||
value = Math.round((value - parts[0]) / 60);
|
||||
parts.unshift(value); // hours
|
||||
}
|
||||
}
|
||||
|
||||
return sign + parts.map(function (n) {
|
||||
return n < 10 ? '0' + String(n) : String(n);
|
||||
}).join(':').replace(/000000\d*$/, '') // % 60 may introduce error
|
||||
;
|
||||
};
|
||||
|
||||
var intTime = {
|
||||
identify: function identify(value) {
|
||||
return typeof value === 'number';
|
||||
},
|
||||
default: true,
|
||||
tag: 'tag:yaml.org,2002:int',
|
||||
format: 'TIME',
|
||||
test: /^([-+]?)([0-9][0-9_]*(?::[0-5]?[0-9])+)$/,
|
||||
resolve: function resolve(str, sign, parts) {
|
||||
return parseSexagesimal(sign, parts.replace(/_/g, ''));
|
||||
},
|
||||
stringify: stringifySexagesimal
|
||||
};
|
||||
var floatTime = {
|
||||
identify: function identify(value) {
|
||||
return typeof value === 'number';
|
||||
},
|
||||
default: true,
|
||||
tag: 'tag:yaml.org,2002:float',
|
||||
format: 'TIME',
|
||||
test: /^([-+]?)([0-9][0-9_]*(?::[0-5]?[0-9])+\.[0-9_]*)$/,
|
||||
resolve: function resolve(str, sign, parts) {
|
||||
return parseSexagesimal(sign, parts.replace(/_/g, ''));
|
||||
},
|
||||
stringify: stringifySexagesimal
|
||||
};
|
||||
var timestamp = {
|
||||
identify: function identify(value) {
|
||||
return value instanceof Date;
|
||||
},
|
||||
default: true,
|
||||
tag: 'tag:yaml.org,2002:timestamp',
|
||||
// If the time zone is omitted, the timestamp is assumed to be specified in UTC. The time part
|
||||
// may be omitted altogether, resulting in a date format. In such a case, the time part is
|
||||
// assumed to be 00:00:00Z (start of day, UTC).
|
||||
test: RegExp('^(?:' + '([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})' + // YYYY-Mm-Dd
|
||||
'(?:(?:t|T|[ \\t]+)' + // t | T | whitespace
|
||||
'([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2}(\\.[0-9]+)?)' + // Hh:Mm:Ss(.ss)?
|
||||
'(?:[ \\t]*(Z|[-+][012]?[0-9](?::[0-9]{2})?))?' + // Z | +5 | -03:30
|
||||
')?' + ')$'),
|
||||
resolve: function resolve(str, year, month, day, hour, minute, second, millisec, tz) {
|
||||
if (millisec) millisec = (millisec + '00').substr(1, 3);
|
||||
var date = Date.UTC(year, month - 1, day, hour || 0, minute || 0, second || 0, millisec || 0);
|
||||
|
||||
if (tz && tz !== 'Z') {
|
||||
var d = parseSexagesimal(tz[0], tz.slice(1));
|
||||
if (Math.abs(d) < 30) d *= 60;
|
||||
date -= 60000 * d;
|
||||
}
|
||||
|
||||
return new Date(date);
|
||||
},
|
||||
stringify: function stringify(_ref2) {
|
||||
var value = _ref2.value;
|
||||
return value.toISOString().replace(/((T00:00)?:00)?\.000Z$/, '');
|
||||
}
|
||||
};
|
||||
|
||||
/* global console, process, YAML_SILENCE_DEPRECATION_WARNINGS, YAML_SILENCE_WARNINGS */
|
||||
function shouldWarn(deprecation) {
|
||||
var env = typeof process !== 'undefined' && process.env || {};
|
||||
|
||||
if (deprecation) {
|
||||
if (typeof YAML_SILENCE_DEPRECATION_WARNINGS !== 'undefined') return !YAML_SILENCE_DEPRECATION_WARNINGS;
|
||||
return !env.YAML_SILENCE_DEPRECATION_WARNINGS;
|
||||
}
|
||||
|
||||
if (typeof YAML_SILENCE_WARNINGS !== 'undefined') return !YAML_SILENCE_WARNINGS;
|
||||
return !env.YAML_SILENCE_WARNINGS;
|
||||
}
|
||||
|
||||
function warn(warning, type) {
|
||||
if (shouldWarn(false)) {
|
||||
var emit = typeof process !== 'undefined' && process.emitWarning; // This will throw in Jest if `warning` is an Error instance due to
|
||||
// https://github.com/facebook/jest/issues/2549
|
||||
|
||||
if (emit) emit(warning, type);else {
|
||||
// eslint-disable-next-line no-console
|
||||
console.warn(type ? "".concat(type, ": ").concat(warning) : warning);
|
||||
}
|
||||
}
|
||||
}
|
||||
function warnFileDeprecation(filename) {
|
||||
if (shouldWarn(true)) {
|
||||
var path = filename.replace(/.*yaml[/\\]/i, '').replace(/\.js$/, '').replace(/\\/g, '/');
|
||||
warn("The endpoint 'yaml/".concat(path, "' will be removed in a future release."), 'DeprecationWarning');
|
||||
}
|
||||
}
|
||||
var warned = {};
|
||||
function warnOptionDeprecation(name, alternative) {
|
||||
if (!warned[name] && shouldWarn(true)) {
|
||||
warned[name] = true;
|
||||
var msg = "The option '".concat(name, "' will be removed in a future release");
|
||||
msg += alternative ? ", use '".concat(alternative, "' instead.") : '.';
|
||||
warn(msg, 'DeprecationWarning');
|
||||
}
|
||||
}
|
||||
|
||||
export { warnOptionDeprecation as a, binary as b, warnFileDeprecation as c, floatTime as f, intTime as i, omap as o, pairs as p, set as s, timestamp as t, warn as w };
|
||||
1
node_modules/postcss-load-config/node_modules/yaml/browser/index.js
generated
vendored
1
node_modules/postcss-load-config/node_modules/yaml/browser/index.js
generated
vendored
@ -1 +0,0 @@
|
||||
module.exports = require('./dist').YAML
|
||||
2
node_modules/postcss-load-config/node_modules/yaml/browser/map.js
generated
vendored
2
node_modules/postcss-load-config/node_modules/yaml/browser/map.js
generated
vendored
@ -1,2 +0,0 @@
|
||||
module.exports = require('./dist/types').YAMLMap
|
||||
require('./dist/legacy-exports').warnFileDeprecation(__filename)
|
||||
2
node_modules/postcss-load-config/node_modules/yaml/browser/pair.js
generated
vendored
2
node_modules/postcss-load-config/node_modules/yaml/browser/pair.js
generated
vendored
@ -1,2 +0,0 @@
|
||||
module.exports = require('./dist/types').Pair
|
||||
require('./dist/legacy-exports').warnFileDeprecation(__filename)
|
||||
1
node_modules/postcss-load-config/node_modules/yaml/browser/parse-cst.js
generated
vendored
1
node_modules/postcss-load-config/node_modules/yaml/browser/parse-cst.js
generated
vendored
@ -1 +0,0 @@
|
||||
module.exports = require('./dist/parse-cst').parse
|
||||
2
node_modules/postcss-load-config/node_modules/yaml/browser/scalar.js
generated
vendored
2
node_modules/postcss-load-config/node_modules/yaml/browser/scalar.js
generated
vendored
@ -1,2 +0,0 @@
|
||||
module.exports = require('./dist/types').Scalar
|
||||
require('./dist/legacy-exports').warnFileDeprecation(__filename)
|
||||
9
node_modules/postcss-load-config/node_modules/yaml/browser/schema.js
generated
vendored
9
node_modules/postcss-load-config/node_modules/yaml/browser/schema.js
generated
vendored
@ -1,9 +0,0 @@
|
||||
const types = require('./dist/types')
|
||||
const util = require('./dist/util')
|
||||
|
||||
module.exports = types.Schema
|
||||
module.exports.nullOptions = types.nullOptions
|
||||
module.exports.strOptions = types.strOptions
|
||||
module.exports.stringify = util.stringifyString
|
||||
|
||||
require('./dist/legacy-exports').warnFileDeprecation(__filename)
|
||||
2
node_modules/postcss-load-config/node_modules/yaml/browser/seq.js
generated
vendored
2
node_modules/postcss-load-config/node_modules/yaml/browser/seq.js
generated
vendored
@ -1,2 +0,0 @@
|
||||
module.exports = require('./dist/types').YAMLSeq
|
||||
require('./dist/legacy-exports').warnFileDeprecation(__filename)
|
||||
1
node_modules/postcss-load-config/node_modules/yaml/browser/types.js
generated
vendored
1
node_modules/postcss-load-config/node_modules/yaml/browser/types.js
generated
vendored
@ -1 +0,0 @@
|
||||
module.exports = require('./dist/types')
|
||||
8
node_modules/postcss-load-config/node_modules/yaml/browser/types/binary.js
generated
vendored
8
node_modules/postcss-load-config/node_modules/yaml/browser/types/binary.js
generated
vendored
@ -1,8 +0,0 @@
|
||||
'use strict'
|
||||
Object.defineProperty(exports, '__esModule', { value: true })
|
||||
|
||||
const legacy = require('../dist/legacy-exports')
|
||||
exports.binary = legacy.binary
|
||||
exports.default = [exports.binary]
|
||||
|
||||
legacy.warnFileDeprecation(__filename)
|
||||
3
node_modules/postcss-load-config/node_modules/yaml/browser/types/omap.js
generated
vendored
3
node_modules/postcss-load-config/node_modules/yaml/browser/types/omap.js
generated
vendored
@ -1,3 +0,0 @@
|
||||
const legacy = require('../dist/legacy-exports')
|
||||
module.exports = legacy.omap
|
||||
legacy.warnFileDeprecation(__filename)
|
||||
3
node_modules/postcss-load-config/node_modules/yaml/browser/types/pairs.js
generated
vendored
3
node_modules/postcss-load-config/node_modules/yaml/browser/types/pairs.js
generated
vendored
@ -1,3 +0,0 @@
|
||||
const legacy = require('../dist/legacy-exports')
|
||||
module.exports = legacy.pairs
|
||||
legacy.warnFileDeprecation(__filename)
|
||||
3
node_modules/postcss-load-config/node_modules/yaml/browser/types/set.js
generated
vendored
3
node_modules/postcss-load-config/node_modules/yaml/browser/types/set.js
generated
vendored
@ -1,3 +0,0 @@
|
||||
const legacy = require('../dist/legacy-exports')
|
||||
module.exports = legacy.set
|
||||
legacy.warnFileDeprecation(__filename)
|
||||
10
node_modules/postcss-load-config/node_modules/yaml/browser/types/timestamp.js
generated
vendored
10
node_modules/postcss-load-config/node_modules/yaml/browser/types/timestamp.js
generated
vendored
@ -1,10 +0,0 @@
|
||||
'use strict'
|
||||
Object.defineProperty(exports, '__esModule', { value: true })
|
||||
|
||||
const legacy = require('../dist/legacy-exports')
|
||||
exports.default = [legacy.intTime, legacy.floatTime, legacy.timestamp]
|
||||
exports.floatTime = legacy.floatTime
|
||||
exports.intTime = legacy.intTime
|
||||
exports.timestamp = legacy.timestamp
|
||||
|
||||
legacy.warnFileDeprecation(__filename)
|
||||
1
node_modules/postcss-load-config/node_modules/yaml/browser/util.js
generated
vendored
1
node_modules/postcss-load-config/node_modules/yaml/browser/util.js
generated
vendored
@ -1 +0,0 @@
|
||||
module.exports = require('./dist/util')
|
||||
757
node_modules/postcss-load-config/node_modules/yaml/dist/Document-9b4560a1.js
generated
vendored
757
node_modules/postcss-load-config/node_modules/yaml/dist/Document-9b4560a1.js
generated
vendored
@ -1,757 +0,0 @@
|
||||
'use strict';
|
||||
|
||||
var PlainValue = require('./PlainValue-ec8e588e.js');
|
||||
var resolveSeq = require('./resolveSeq-d03cb037.js');
|
||||
var Schema = require('./Schema-88e323a7.js');
|
||||
|
||||
const defaultOptions = {
|
||||
anchorPrefix: 'a',
|
||||
customTags: null,
|
||||
indent: 2,
|
||||
indentSeq: true,
|
||||
keepCstNodes: false,
|
||||
keepNodeTypes: true,
|
||||
keepBlobsInJSON: true,
|
||||
mapAsMap: false,
|
||||
maxAliasCount: 100,
|
||||
prettyErrors: false,
|
||||
// TODO Set true in v2
|
||||
simpleKeys: false,
|
||||
version: '1.2'
|
||||
};
|
||||
const scalarOptions = {
|
||||
get binary() {
|
||||
return resolveSeq.binaryOptions;
|
||||
},
|
||||
|
||||
set binary(opt) {
|
||||
Object.assign(resolveSeq.binaryOptions, opt);
|
||||
},
|
||||
|
||||
get bool() {
|
||||
return resolveSeq.boolOptions;
|
||||
},
|
||||
|
||||
set bool(opt) {
|
||||
Object.assign(resolveSeq.boolOptions, opt);
|
||||
},
|
||||
|
||||
get int() {
|
||||
return resolveSeq.intOptions;
|
||||
},
|
||||
|
||||
set int(opt) {
|
||||
Object.assign(resolveSeq.intOptions, opt);
|
||||
},
|
||||
|
||||
get null() {
|
||||
return resolveSeq.nullOptions;
|
||||
},
|
||||
|
||||
set null(opt) {
|
||||
Object.assign(resolveSeq.nullOptions, opt);
|
||||
},
|
||||
|
||||
get str() {
|
||||
return resolveSeq.strOptions;
|
||||
},
|
||||
|
||||
set str(opt) {
|
||||
Object.assign(resolveSeq.strOptions, opt);
|
||||
}
|
||||
|
||||
};
|
||||
const documentOptions = {
|
||||
'1.0': {
|
||||
schema: 'yaml-1.1',
|
||||
merge: true,
|
||||
tagPrefixes: [{
|
||||
handle: '!',
|
||||
prefix: PlainValue.defaultTagPrefix
|
||||
}, {
|
||||
handle: '!!',
|
||||
prefix: 'tag:private.yaml.org,2002:'
|
||||
}]
|
||||
},
|
||||
1.1: {
|
||||
schema: 'yaml-1.1',
|
||||
merge: true,
|
||||
tagPrefixes: [{
|
||||
handle: '!',
|
||||
prefix: '!'
|
||||
}, {
|
||||
handle: '!!',
|
||||
prefix: PlainValue.defaultTagPrefix
|
||||
}]
|
||||
},
|
||||
1.2: {
|
||||
schema: 'core',
|
||||
merge: false,
|
||||
tagPrefixes: [{
|
||||
handle: '!',
|
||||
prefix: '!'
|
||||
}, {
|
||||
handle: '!!',
|
||||
prefix: PlainValue.defaultTagPrefix
|
||||
}]
|
||||
}
|
||||
};
|
||||
|
||||
function stringifyTag(doc, tag) {
|
||||
if ((doc.version || doc.options.version) === '1.0') {
|
||||
const priv = tag.match(/^tag:private\.yaml\.org,2002:([^:/]+)$/);
|
||||
if (priv) return '!' + priv[1];
|
||||
const vocab = tag.match(/^tag:([a-zA-Z0-9-]+)\.yaml\.org,2002:(.*)/);
|
||||
return vocab ? `!${vocab[1]}/${vocab[2]}` : `!${tag.replace(/^tag:/, '')}`;
|
||||
}
|
||||
|
||||
let p = doc.tagPrefixes.find(p => tag.indexOf(p.prefix) === 0);
|
||||
|
||||
if (!p) {
|
||||
const dtp = doc.getDefaults().tagPrefixes;
|
||||
p = dtp && dtp.find(p => tag.indexOf(p.prefix) === 0);
|
||||
}
|
||||
|
||||
if (!p) return tag[0] === '!' ? tag : `!<${tag}>`;
|
||||
const suffix = tag.substr(p.prefix.length).replace(/[!,[\]{}]/g, ch => ({
|
||||
'!': '%21',
|
||||
',': '%2C',
|
||||
'[': '%5B',
|
||||
']': '%5D',
|
||||
'{': '%7B',
|
||||
'}': '%7D'
|
||||
})[ch]);
|
||||
return p.handle + suffix;
|
||||
}
|
||||
|
||||
function getTagObject(tags, item) {
|
||||
if (item instanceof resolveSeq.Alias) return resolveSeq.Alias;
|
||||
|
||||
if (item.tag) {
|
||||
const match = tags.filter(t => t.tag === item.tag);
|
||||
if (match.length > 0) return match.find(t => t.format === item.format) || match[0];
|
||||
}
|
||||
|
||||
let tagObj, obj;
|
||||
|
||||
if (item instanceof resolveSeq.Scalar) {
|
||||
obj = item.value; // TODO: deprecate/remove class check
|
||||
|
||||
const match = tags.filter(t => t.identify && t.identify(obj) || t.class && obj instanceof t.class);
|
||||
tagObj = match.find(t => t.format === item.format) || match.find(t => !t.format);
|
||||
} else {
|
||||
obj = item;
|
||||
tagObj = tags.find(t => t.nodeClass && obj instanceof t.nodeClass);
|
||||
}
|
||||
|
||||
if (!tagObj) {
|
||||
const name = obj && obj.constructor ? obj.constructor.name : typeof obj;
|
||||
throw new Error(`Tag not resolved for ${name} value`);
|
||||
}
|
||||
|
||||
return tagObj;
|
||||
} // needs to be called before value stringifier to allow for circular anchor refs
|
||||
|
||||
|
||||
function stringifyProps(node, tagObj, {
|
||||
anchors,
|
||||
doc
|
||||
}) {
|
||||
const props = [];
|
||||
const anchor = doc.anchors.getName(node);
|
||||
|
||||
if (anchor) {
|
||||
anchors[anchor] = node;
|
||||
props.push(`&${anchor}`);
|
||||
}
|
||||
|
||||
if (node.tag) {
|
||||
props.push(stringifyTag(doc, node.tag));
|
||||
} else if (!tagObj.default) {
|
||||
props.push(stringifyTag(doc, tagObj.tag));
|
||||
}
|
||||
|
||||
return props.join(' ');
|
||||
}
|
||||
|
||||
function stringify(item, ctx, onComment, onChompKeep) {
|
||||
const {
|
||||
anchors,
|
||||
schema
|
||||
} = ctx.doc;
|
||||
let tagObj;
|
||||
|
||||
if (!(item instanceof resolveSeq.Node)) {
|
||||
const createCtx = {
|
||||
aliasNodes: [],
|
||||
onTagObj: o => tagObj = o,
|
||||
prevObjects: new Map()
|
||||
};
|
||||
item = schema.createNode(item, true, null, createCtx);
|
||||
|
||||
for (const alias of createCtx.aliasNodes) {
|
||||
alias.source = alias.source.node;
|
||||
let name = anchors.getName(alias.source);
|
||||
|
||||
if (!name) {
|
||||
name = anchors.newName();
|
||||
anchors.map[name] = alias.source;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (item instanceof resolveSeq.Pair) return item.toString(ctx, onComment, onChompKeep);
|
||||
if (!tagObj) tagObj = getTagObject(schema.tags, item);
|
||||
const props = stringifyProps(item, tagObj, ctx);
|
||||
if (props.length > 0) ctx.indentAtStart = (ctx.indentAtStart || 0) + props.length + 1;
|
||||
const str = typeof tagObj.stringify === 'function' ? tagObj.stringify(item, ctx, onComment, onChompKeep) : item instanceof resolveSeq.Scalar ? resolveSeq.stringifyString(item, ctx, onComment, onChompKeep) : item.toString(ctx, onComment, onChompKeep);
|
||||
if (!props) return str;
|
||||
return item instanceof resolveSeq.Scalar || str[0] === '{' || str[0] === '[' ? `${props} ${str}` : `${props}\n${ctx.indent}${str}`;
|
||||
}
|
||||
|
||||
class Anchors {
|
||||
static validAnchorNode(node) {
|
||||
return node instanceof resolveSeq.Scalar || node instanceof resolveSeq.YAMLSeq || node instanceof resolveSeq.YAMLMap;
|
||||
}
|
||||
|
||||
constructor(prefix) {
|
||||
PlainValue._defineProperty(this, "map", Object.create(null));
|
||||
|
||||
this.prefix = prefix;
|
||||
}
|
||||
|
||||
createAlias(node, name) {
|
||||
this.setAnchor(node, name);
|
||||
return new resolveSeq.Alias(node);
|
||||
}
|
||||
|
||||
createMergePair(...sources) {
|
||||
const merge = new resolveSeq.Merge();
|
||||
merge.value.items = sources.map(s => {
|
||||
if (s instanceof resolveSeq.Alias) {
|
||||
if (s.source instanceof resolveSeq.YAMLMap) return s;
|
||||
} else if (s instanceof resolveSeq.YAMLMap) {
|
||||
return this.createAlias(s);
|
||||
}
|
||||
|
||||
throw new Error('Merge sources must be Map nodes or their Aliases');
|
||||
});
|
||||
return merge;
|
||||
}
|
||||
|
||||
getName(node) {
|
||||
const {
|
||||
map
|
||||
} = this;
|
||||
return Object.keys(map).find(a => map[a] === node);
|
||||
}
|
||||
|
||||
getNames() {
|
||||
return Object.keys(this.map);
|
||||
}
|
||||
|
||||
getNode(name) {
|
||||
return this.map[name];
|
||||
}
|
||||
|
||||
newName(prefix) {
|
||||
if (!prefix) prefix = this.prefix;
|
||||
const names = Object.keys(this.map);
|
||||
|
||||
for (let i = 1; true; ++i) {
|
||||
const name = `${prefix}${i}`;
|
||||
if (!names.includes(name)) return name;
|
||||
}
|
||||
} // During parsing, map & aliases contain CST nodes
|
||||
|
||||
|
||||
resolveNodes() {
|
||||
const {
|
||||
map,
|
||||
_cstAliases
|
||||
} = this;
|
||||
Object.keys(map).forEach(a => {
|
||||
map[a] = map[a].resolved;
|
||||
});
|
||||
|
||||
_cstAliases.forEach(a => {
|
||||
a.source = a.source.resolved;
|
||||
});
|
||||
|
||||
delete this._cstAliases;
|
||||
}
|
||||
|
||||
setAnchor(node, name) {
|
||||
if (node != null && !Anchors.validAnchorNode(node)) {
|
||||
throw new Error('Anchors may only be set for Scalar, Seq and Map nodes');
|
||||
}
|
||||
|
||||
if (name && /[\x00-\x19\s,[\]{}]/.test(name)) {
|
||||
throw new Error('Anchor names must not contain whitespace or control characters');
|
||||
}
|
||||
|
||||
const {
|
||||
map
|
||||
} = this;
|
||||
const prev = node && Object.keys(map).find(a => map[a] === node);
|
||||
|
||||
if (prev) {
|
||||
if (!name) {
|
||||
return prev;
|
||||
} else if (prev !== name) {
|
||||
delete map[prev];
|
||||
map[name] = node;
|
||||
}
|
||||
} else {
|
||||
if (!name) {
|
||||
if (!node) return null;
|
||||
name = this.newName();
|
||||
}
|
||||
|
||||
map[name] = node;
|
||||
}
|
||||
|
||||
return name;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
const visit = (node, tags) => {
|
||||
if (node && typeof node === 'object') {
|
||||
const {
|
||||
tag
|
||||
} = node;
|
||||
|
||||
if (node instanceof resolveSeq.Collection) {
|
||||
if (tag) tags[tag] = true;
|
||||
node.items.forEach(n => visit(n, tags));
|
||||
} else if (node instanceof resolveSeq.Pair) {
|
||||
visit(node.key, tags);
|
||||
visit(node.value, tags);
|
||||
} else if (node instanceof resolveSeq.Scalar) {
|
||||
if (tag) tags[tag] = true;
|
||||
}
|
||||
}
|
||||
|
||||
return tags;
|
||||
};
|
||||
|
||||
const listTagNames = node => Object.keys(visit(node, {}));
|
||||
|
||||
function parseContents(doc, contents) {
|
||||
const comments = {
|
||||
before: [],
|
||||
after: []
|
||||
};
|
||||
let body = undefined;
|
||||
let spaceBefore = false;
|
||||
|
||||
for (const node of contents) {
|
||||
if (node.valueRange) {
|
||||
if (body !== undefined) {
|
||||
const msg = 'Document contains trailing content not separated by a ... or --- line';
|
||||
doc.errors.push(new PlainValue.YAMLSyntaxError(node, msg));
|
||||
break;
|
||||
}
|
||||
|
||||
const res = resolveSeq.resolveNode(doc, node);
|
||||
|
||||
if (spaceBefore) {
|
||||
res.spaceBefore = true;
|
||||
spaceBefore = false;
|
||||
}
|
||||
|
||||
body = res;
|
||||
} else if (node.comment !== null) {
|
||||
const cc = body === undefined ? comments.before : comments.after;
|
||||
cc.push(node.comment);
|
||||
} else if (node.type === PlainValue.Type.BLANK_LINE) {
|
||||
spaceBefore = true;
|
||||
|
||||
if (body === undefined && comments.before.length > 0 && !doc.commentBefore) {
|
||||
// space-separated comments at start are parsed as document comments
|
||||
doc.commentBefore = comments.before.join('\n');
|
||||
comments.before = [];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
doc.contents = body || null;
|
||||
|
||||
if (!body) {
|
||||
doc.comment = comments.before.concat(comments.after).join('\n') || null;
|
||||
} else {
|
||||
const cb = comments.before.join('\n');
|
||||
|
||||
if (cb) {
|
||||
const cbNode = body instanceof resolveSeq.Collection && body.items[0] ? body.items[0] : body;
|
||||
cbNode.commentBefore = cbNode.commentBefore ? `${cb}\n${cbNode.commentBefore}` : cb;
|
||||
}
|
||||
|
||||
doc.comment = comments.after.join('\n') || null;
|
||||
}
|
||||
}
|
||||
|
||||
function resolveTagDirective({
|
||||
tagPrefixes
|
||||
}, directive) {
|
||||
const [handle, prefix] = directive.parameters;
|
||||
|
||||
if (!handle || !prefix) {
|
||||
const msg = 'Insufficient parameters given for %TAG directive';
|
||||
throw new PlainValue.YAMLSemanticError(directive, msg);
|
||||
}
|
||||
|
||||
if (tagPrefixes.some(p => p.handle === handle)) {
|
||||
const msg = 'The %TAG directive must only be given at most once per handle in the same document.';
|
||||
throw new PlainValue.YAMLSemanticError(directive, msg);
|
||||
}
|
||||
|
||||
return {
|
||||
handle,
|
||||
prefix
|
||||
};
|
||||
}
|
||||
|
||||
function resolveYamlDirective(doc, directive) {
|
||||
let [version] = directive.parameters;
|
||||
if (directive.name === 'YAML:1.0') version = '1.0';
|
||||
|
||||
if (!version) {
|
||||
const msg = 'Insufficient parameters given for %YAML directive';
|
||||
throw new PlainValue.YAMLSemanticError(directive, msg);
|
||||
}
|
||||
|
||||
if (!documentOptions[version]) {
|
||||
const v0 = doc.version || doc.options.version;
|
||||
const msg = `Document will be parsed as YAML ${v0} rather than YAML ${version}`;
|
||||
doc.warnings.push(new PlainValue.YAMLWarning(directive, msg));
|
||||
}
|
||||
|
||||
return version;
|
||||
}
|
||||
|
||||
function parseDirectives(doc, directives, prevDoc) {
|
||||
const directiveComments = [];
|
||||
let hasDirectives = false;
|
||||
|
||||
for (const directive of directives) {
|
||||
const {
|
||||
comment,
|
||||
name
|
||||
} = directive;
|
||||
|
||||
switch (name) {
|
||||
case 'TAG':
|
||||
try {
|
||||
doc.tagPrefixes.push(resolveTagDirective(doc, directive));
|
||||
} catch (error) {
|
||||
doc.errors.push(error);
|
||||
}
|
||||
|
||||
hasDirectives = true;
|
||||
break;
|
||||
|
||||
case 'YAML':
|
||||
case 'YAML:1.0':
|
||||
if (doc.version) {
|
||||
const msg = 'The %YAML directive must only be given at most once per document.';
|
||||
doc.errors.push(new PlainValue.YAMLSemanticError(directive, msg));
|
||||
}
|
||||
|
||||
try {
|
||||
doc.version = resolveYamlDirective(doc, directive);
|
||||
} catch (error) {
|
||||
doc.errors.push(error);
|
||||
}
|
||||
|
||||
hasDirectives = true;
|
||||
break;
|
||||
|
||||
default:
|
||||
if (name) {
|
||||
const msg = `YAML only supports %TAG and %YAML directives, and not %${name}`;
|
||||
doc.warnings.push(new PlainValue.YAMLWarning(directive, msg));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if (comment) directiveComments.push(comment);
|
||||
}
|
||||
|
||||
if (prevDoc && !hasDirectives && '1.1' === (doc.version || prevDoc.version || doc.options.version)) {
|
||||
const copyTagPrefix = ({
|
||||
handle,
|
||||
prefix
|
||||
}) => ({
|
||||
handle,
|
||||
prefix
|
||||
});
|
||||
|
||||
doc.tagPrefixes = prevDoc.tagPrefixes.map(copyTagPrefix);
|
||||
doc.version = prevDoc.version;
|
||||
}
|
||||
|
||||
doc.commentBefore = directiveComments.join('\n') || null;
|
||||
}
|
||||
|
||||
function assertCollection(contents) {
|
||||
if (contents instanceof resolveSeq.Collection) return true;
|
||||
throw new Error('Expected a YAML collection as document contents');
|
||||
}
|
||||
|
||||
class Document {
|
||||
constructor(options) {
|
||||
this.anchors = new Anchors(options.anchorPrefix);
|
||||
this.commentBefore = null;
|
||||
this.comment = null;
|
||||
this.contents = null;
|
||||
this.directivesEndMarker = null;
|
||||
this.errors = [];
|
||||
this.options = options;
|
||||
this.schema = null;
|
||||
this.tagPrefixes = [];
|
||||
this.version = null;
|
||||
this.warnings = [];
|
||||
}
|
||||
|
||||
add(value) {
|
||||
assertCollection(this.contents);
|
||||
return this.contents.add(value);
|
||||
}
|
||||
|
||||
addIn(path, value) {
|
||||
assertCollection(this.contents);
|
||||
this.contents.addIn(path, value);
|
||||
}
|
||||
|
||||
delete(key) {
|
||||
assertCollection(this.contents);
|
||||
return this.contents.delete(key);
|
||||
}
|
||||
|
||||
deleteIn(path) {
|
||||
if (resolveSeq.isEmptyPath(path)) {
|
||||
if (this.contents == null) return false;
|
||||
this.contents = null;
|
||||
return true;
|
||||
}
|
||||
|
||||
assertCollection(this.contents);
|
||||
return this.contents.deleteIn(path);
|
||||
}
|
||||
|
||||
getDefaults() {
|
||||
return Document.defaults[this.version] || Document.defaults[this.options.version] || {};
|
||||
}
|
||||
|
||||
get(key, keepScalar) {
|
||||
return this.contents instanceof resolveSeq.Collection ? this.contents.get(key, keepScalar) : undefined;
|
||||
}
|
||||
|
||||
getIn(path, keepScalar) {
|
||||
if (resolveSeq.isEmptyPath(path)) return !keepScalar && this.contents instanceof resolveSeq.Scalar ? this.contents.value : this.contents;
|
||||
return this.contents instanceof resolveSeq.Collection ? this.contents.getIn(path, keepScalar) : undefined;
|
||||
}
|
||||
|
||||
has(key) {
|
||||
return this.contents instanceof resolveSeq.Collection ? this.contents.has(key) : false;
|
||||
}
|
||||
|
||||
hasIn(path) {
|
||||
if (resolveSeq.isEmptyPath(path)) return this.contents !== undefined;
|
||||
return this.contents instanceof resolveSeq.Collection ? this.contents.hasIn(path) : false;
|
||||
}
|
||||
|
||||
set(key, value) {
|
||||
assertCollection(this.contents);
|
||||
this.contents.set(key, value);
|
||||
}
|
||||
|
||||
setIn(path, value) {
|
||||
if (resolveSeq.isEmptyPath(path)) this.contents = value;else {
|
||||
assertCollection(this.contents);
|
||||
this.contents.setIn(path, value);
|
||||
}
|
||||
}
|
||||
|
||||
setSchema(id, customTags) {
|
||||
if (!id && !customTags && this.schema) return;
|
||||
if (typeof id === 'number') id = id.toFixed(1);
|
||||
|
||||
if (id === '1.0' || id === '1.1' || id === '1.2') {
|
||||
if (this.version) this.version = id;else this.options.version = id;
|
||||
delete this.options.schema;
|
||||
} else if (id && typeof id === 'string') {
|
||||
this.options.schema = id;
|
||||
}
|
||||
|
||||
if (Array.isArray(customTags)) this.options.customTags = customTags;
|
||||
const opt = Object.assign({}, this.getDefaults(), this.options);
|
||||
this.schema = new Schema.Schema(opt);
|
||||
}
|
||||
|
||||
parse(node, prevDoc) {
|
||||
if (this.options.keepCstNodes) this.cstNode = node;
|
||||
if (this.options.keepNodeTypes) this.type = 'DOCUMENT';
|
||||
const {
|
||||
directives = [],
|
||||
contents = [],
|
||||
directivesEndMarker,
|
||||
error,
|
||||
valueRange
|
||||
} = node;
|
||||
|
||||
if (error) {
|
||||
if (!error.source) error.source = this;
|
||||
this.errors.push(error);
|
||||
}
|
||||
|
||||
parseDirectives(this, directives, prevDoc);
|
||||
if (directivesEndMarker) this.directivesEndMarker = true;
|
||||
this.range = valueRange ? [valueRange.start, valueRange.end] : null;
|
||||
this.setSchema();
|
||||
this.anchors._cstAliases = [];
|
||||
parseContents(this, contents);
|
||||
this.anchors.resolveNodes();
|
||||
|
||||
if (this.options.prettyErrors) {
|
||||
for (const error of this.errors) if (error instanceof PlainValue.YAMLError) error.makePretty();
|
||||
|
||||
for (const warn of this.warnings) if (warn instanceof PlainValue.YAMLError) warn.makePretty();
|
||||
}
|
||||
|
||||
return this;
|
||||
}
|
||||
|
||||
listNonDefaultTags() {
|
||||
return listTagNames(this.contents).filter(t => t.indexOf(Schema.Schema.defaultPrefix) !== 0);
|
||||
}
|
||||
|
||||
setTagPrefix(handle, prefix) {
|
||||
if (handle[0] !== '!' || handle[handle.length - 1] !== '!') throw new Error('Handle must start and end with !');
|
||||
|
||||
if (prefix) {
|
||||
const prev = this.tagPrefixes.find(p => p.handle === handle);
|
||||
if (prev) prev.prefix = prefix;else this.tagPrefixes.push({
|
||||
handle,
|
||||
prefix
|
||||
});
|
||||
} else {
|
||||
this.tagPrefixes = this.tagPrefixes.filter(p => p.handle !== handle);
|
||||
}
|
||||
}
|
||||
|
||||
toJSON(arg, onAnchor) {
|
||||
const {
|
||||
keepBlobsInJSON,
|
||||
mapAsMap,
|
||||
maxAliasCount
|
||||
} = this.options;
|
||||
const keep = keepBlobsInJSON && (typeof arg !== 'string' || !(this.contents instanceof resolveSeq.Scalar));
|
||||
const ctx = {
|
||||
doc: this,
|
||||
indentStep: ' ',
|
||||
keep,
|
||||
mapAsMap: keep && !!mapAsMap,
|
||||
maxAliasCount,
|
||||
stringify // Requiring directly in Pair would create circular dependencies
|
||||
|
||||
};
|
||||
const anchorNames = Object.keys(this.anchors.map);
|
||||
if (anchorNames.length > 0) ctx.anchors = new Map(anchorNames.map(name => [this.anchors.map[name], {
|
||||
alias: [],
|
||||
aliasCount: 0,
|
||||
count: 1
|
||||
}]));
|
||||
const res = resolveSeq.toJSON(this.contents, arg, ctx);
|
||||
if (typeof onAnchor === 'function' && ctx.anchors) for (const {
|
||||
count,
|
||||
res
|
||||
} of ctx.anchors.values()) onAnchor(res, count);
|
||||
return res;
|
||||
}
|
||||
|
||||
toString() {
|
||||
if (this.errors.length > 0) throw new Error('Document with errors cannot be stringified');
|
||||
const indentSize = this.options.indent;
|
||||
|
||||
if (!Number.isInteger(indentSize) || indentSize <= 0) {
|
||||
const s = JSON.stringify(indentSize);
|
||||
throw new Error(`"indent" option must be a positive integer, not ${s}`);
|
||||
}
|
||||
|
||||
this.setSchema();
|
||||
const lines = [];
|
||||
let hasDirectives = false;
|
||||
|
||||
if (this.version) {
|
||||
let vd = '%YAML 1.2';
|
||||
|
||||
if (this.schema.name === 'yaml-1.1') {
|
||||
if (this.version === '1.0') vd = '%YAML:1.0';else if (this.version === '1.1') vd = '%YAML 1.1';
|
||||
}
|
||||
|
||||
lines.push(vd);
|
||||
hasDirectives = true;
|
||||
}
|
||||
|
||||
const tagNames = this.listNonDefaultTags();
|
||||
this.tagPrefixes.forEach(({
|
||||
handle,
|
||||
prefix
|
||||
}) => {
|
||||
if (tagNames.some(t => t.indexOf(prefix) === 0)) {
|
||||
lines.push(`%TAG ${handle} ${prefix}`);
|
||||
hasDirectives = true;
|
||||
}
|
||||
});
|
||||
if (hasDirectives || this.directivesEndMarker) lines.push('---');
|
||||
|
||||
if (this.commentBefore) {
|
||||
if (hasDirectives || !this.directivesEndMarker) lines.unshift('');
|
||||
lines.unshift(this.commentBefore.replace(/^/gm, '#'));
|
||||
}
|
||||
|
||||
const ctx = {
|
||||
anchors: Object.create(null),
|
||||
doc: this,
|
||||
indent: '',
|
||||
indentStep: ' '.repeat(indentSize),
|
||||
stringify // Requiring directly in nodes would create circular dependencies
|
||||
|
||||
};
|
||||
let chompKeep = false;
|
||||
let contentComment = null;
|
||||
|
||||
if (this.contents) {
|
||||
if (this.contents instanceof resolveSeq.Node) {
|
||||
if (this.contents.spaceBefore && (hasDirectives || this.directivesEndMarker)) lines.push('');
|
||||
if (this.contents.commentBefore) lines.push(this.contents.commentBefore.replace(/^/gm, '#')); // top-level block scalars need to be indented if followed by a comment
|
||||
|
||||
ctx.forceBlockIndent = !!this.comment;
|
||||
contentComment = this.contents.comment;
|
||||
}
|
||||
|
||||
const onChompKeep = contentComment ? null : () => chompKeep = true;
|
||||
const body = stringify(this.contents, ctx, () => contentComment = null, onChompKeep);
|
||||
lines.push(resolveSeq.addComment(body, '', contentComment));
|
||||
} else if (this.contents !== undefined) {
|
||||
lines.push(stringify(this.contents, ctx));
|
||||
}
|
||||
|
||||
if (this.comment) {
|
||||
if ((!chompKeep || contentComment) && lines[lines.length - 1] !== '') lines.push('');
|
||||
lines.push(this.comment.replace(/^/gm, '#'));
|
||||
}
|
||||
|
||||
return lines.join('\n') + '\n';
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
PlainValue._defineProperty(Document, "defaults", documentOptions);
|
||||
|
||||
exports.Document = Document;
|
||||
exports.defaultOptions = defaultOptions;
|
||||
exports.scalarOptions = scalarOptions;
|
||||
876
node_modules/postcss-load-config/node_modules/yaml/dist/PlainValue-ec8e588e.js
generated
vendored
876
node_modules/postcss-load-config/node_modules/yaml/dist/PlainValue-ec8e588e.js
generated
vendored
@ -1,876 +0,0 @@
|
||||
'use strict';
|
||||
|
||||
const Char = {
|
||||
ANCHOR: '&',
|
||||
COMMENT: '#',
|
||||
TAG: '!',
|
||||
DIRECTIVES_END: '-',
|
||||
DOCUMENT_END: '.'
|
||||
};
|
||||
const Type = {
|
||||
ALIAS: 'ALIAS',
|
||||
BLANK_LINE: 'BLANK_LINE',
|
||||
BLOCK_FOLDED: 'BLOCK_FOLDED',
|
||||
BLOCK_LITERAL: 'BLOCK_LITERAL',
|
||||
COMMENT: 'COMMENT',
|
||||
DIRECTIVE: 'DIRECTIVE',
|
||||
DOCUMENT: 'DOCUMENT',
|
||||
FLOW_MAP: 'FLOW_MAP',
|
||||
FLOW_SEQ: 'FLOW_SEQ',
|
||||
MAP: 'MAP',
|
||||
MAP_KEY: 'MAP_KEY',
|
||||
MAP_VALUE: 'MAP_VALUE',
|
||||
PLAIN: 'PLAIN',
|
||||
QUOTE_DOUBLE: 'QUOTE_DOUBLE',
|
||||
QUOTE_SINGLE: 'QUOTE_SINGLE',
|
||||
SEQ: 'SEQ',
|
||||
SEQ_ITEM: 'SEQ_ITEM'
|
||||
};
|
||||
const defaultTagPrefix = 'tag:yaml.org,2002:';
|
||||
const defaultTags = {
|
||||
MAP: 'tag:yaml.org,2002:map',
|
||||
SEQ: 'tag:yaml.org,2002:seq',
|
||||
STR: 'tag:yaml.org,2002:str'
|
||||
};
|
||||
|
||||
function findLineStarts(src) {
|
||||
const ls = [0];
|
||||
let offset = src.indexOf('\n');
|
||||
|
||||
while (offset !== -1) {
|
||||
offset += 1;
|
||||
ls.push(offset);
|
||||
offset = src.indexOf('\n', offset);
|
||||
}
|
||||
|
||||
return ls;
|
||||
}
|
||||
|
||||
function getSrcInfo(cst) {
|
||||
let lineStarts, src;
|
||||
|
||||
if (typeof cst === 'string') {
|
||||
lineStarts = findLineStarts(cst);
|
||||
src = cst;
|
||||
} else {
|
||||
if (Array.isArray(cst)) cst = cst[0];
|
||||
|
||||
if (cst && cst.context) {
|
||||
if (!cst.lineStarts) cst.lineStarts = findLineStarts(cst.context.src);
|
||||
lineStarts = cst.lineStarts;
|
||||
src = cst.context.src;
|
||||
}
|
||||
}
|
||||
|
||||
return {
|
||||
lineStarts,
|
||||
src
|
||||
};
|
||||
}
|
||||
/**
|
||||
* @typedef {Object} LinePos - One-indexed position in the source
|
||||
* @property {number} line
|
||||
* @property {number} col
|
||||
*/
|
||||
|
||||
/**
|
||||
* Determine the line/col position matching a character offset.
|
||||
*
|
||||
* Accepts a source string or a CST document as the second parameter. With
|
||||
* the latter, starting indices for lines are cached in the document as
|
||||
* `lineStarts: number[]`.
|
||||
*
|
||||
* Returns a one-indexed `{ line, col }` location if found, or
|
||||
* `undefined` otherwise.
|
||||
*
|
||||
* @param {number} offset
|
||||
* @param {string|Document|Document[]} cst
|
||||
* @returns {?LinePos}
|
||||
*/
|
||||
|
||||
|
||||
function getLinePos(offset, cst) {
|
||||
if (typeof offset !== 'number' || offset < 0) return null;
|
||||
const {
|
||||
lineStarts,
|
||||
src
|
||||
} = getSrcInfo(cst);
|
||||
if (!lineStarts || !src || offset > src.length) return null;
|
||||
|
||||
for (let i = 0; i < lineStarts.length; ++i) {
|
||||
const start = lineStarts[i];
|
||||
|
||||
if (offset < start) {
|
||||
return {
|
||||
line: i,
|
||||
col: offset - lineStarts[i - 1] + 1
|
||||
};
|
||||
}
|
||||
|
||||
if (offset === start) return {
|
||||
line: i + 1,
|
||||
col: 1
|
||||
};
|
||||
}
|
||||
|
||||
const line = lineStarts.length;
|
||||
return {
|
||||
line,
|
||||
col: offset - lineStarts[line - 1] + 1
|
||||
};
|
||||
}
|
||||
/**
|
||||
* Get a specified line from the source.
|
||||
*
|
||||
* Accepts a source string or a CST document as the second parameter. With
|
||||
* the latter, starting indices for lines are cached in the document as
|
||||
* `lineStarts: number[]`.
|
||||
*
|
||||
* Returns the line as a string if found, or `null` otherwise.
|
||||
*
|
||||
* @param {number} line One-indexed line number
|
||||
* @param {string|Document|Document[]} cst
|
||||
* @returns {?string}
|
||||
*/
|
||||
|
||||
function getLine(line, cst) {
|
||||
const {
|
||||
lineStarts,
|
||||
src
|
||||
} = getSrcInfo(cst);
|
||||
if (!lineStarts || !(line >= 1) || line > lineStarts.length) return null;
|
||||
const start = lineStarts[line - 1];
|
||||
let end = lineStarts[line]; // undefined for last line; that's ok for slice()
|
||||
|
||||
while (end && end > start && src[end - 1] === '\n') --end;
|
||||
|
||||
return src.slice(start, end);
|
||||
}
|
||||
/**
|
||||
* Pretty-print the starting line from the source indicated by the range `pos`
|
||||
*
|
||||
* Trims output to `maxWidth` chars while keeping the starting column visible,
|
||||
* using `…` at either end to indicate dropped characters.
|
||||
*
|
||||
* Returns a two-line string (or `null`) with `\n` as separator; the second line
|
||||
* will hold appropriately indented `^` marks indicating the column range.
|
||||
*
|
||||
* @param {Object} pos
|
||||
* @param {LinePos} pos.start
|
||||
* @param {LinePos} [pos.end]
|
||||
* @param {string|Document|Document[]*} cst
|
||||
* @param {number} [maxWidth=80]
|
||||
* @returns {?string}
|
||||
*/
|
||||
|
||||
function getPrettyContext({
|
||||
start,
|
||||
end
|
||||
}, cst, maxWidth = 80) {
|
||||
let src = getLine(start.line, cst);
|
||||
if (!src) return null;
|
||||
let {
|
||||
col
|
||||
} = start;
|
||||
|
||||
if (src.length > maxWidth) {
|
||||
if (col <= maxWidth - 10) {
|
||||
src = src.substr(0, maxWidth - 1) + '…';
|
||||
} else {
|
||||
const halfWidth = Math.round(maxWidth / 2);
|
||||
if (src.length > col + halfWidth) src = src.substr(0, col + halfWidth - 1) + '…';
|
||||
col -= src.length - maxWidth;
|
||||
src = '…' + src.substr(1 - maxWidth);
|
||||
}
|
||||
}
|
||||
|
||||
let errLen = 1;
|
||||
let errEnd = '';
|
||||
|
||||
if (end) {
|
||||
if (end.line === start.line && col + (end.col - start.col) <= maxWidth + 1) {
|
||||
errLen = end.col - start.col;
|
||||
} else {
|
||||
errLen = Math.min(src.length + 1, maxWidth) - col;
|
||||
errEnd = '…';
|
||||
}
|
||||
}
|
||||
|
||||
const offset = col > 1 ? ' '.repeat(col - 1) : '';
|
||||
const err = '^'.repeat(errLen);
|
||||
return `${src}\n${offset}${err}${errEnd}`;
|
||||
}
|
||||
|
||||
class Range {
|
||||
static copy(orig) {
|
||||
return new Range(orig.start, orig.end);
|
||||
}
|
||||
|
||||
constructor(start, end) {
|
||||
this.start = start;
|
||||
this.end = end || start;
|
||||
}
|
||||
|
||||
isEmpty() {
|
||||
return typeof this.start !== 'number' || !this.end || this.end <= this.start;
|
||||
}
|
||||
/**
|
||||
* Set `origStart` and `origEnd` to point to the original source range for
|
||||
* this node, which may differ due to dropped CR characters.
|
||||
*
|
||||
* @param {number[]} cr - Positions of dropped CR characters
|
||||
* @param {number} offset - Starting index of `cr` from the last call
|
||||
* @returns {number} - The next offset, matching the one found for `origStart`
|
||||
*/
|
||||
|
||||
|
||||
setOrigRange(cr, offset) {
|
||||
const {
|
||||
start,
|
||||
end
|
||||
} = this;
|
||||
|
||||
if (cr.length === 0 || end <= cr[0]) {
|
||||
this.origStart = start;
|
||||
this.origEnd = end;
|
||||
return offset;
|
||||
}
|
||||
|
||||
let i = offset;
|
||||
|
||||
while (i < cr.length) {
|
||||
if (cr[i] > start) break;else ++i;
|
||||
}
|
||||
|
||||
this.origStart = start + i;
|
||||
const nextOffset = i;
|
||||
|
||||
while (i < cr.length) {
|
||||
// if end was at \n, it should now be at \r
|
||||
if (cr[i] >= end) break;else ++i;
|
||||
}
|
||||
|
||||
this.origEnd = end + i;
|
||||
return nextOffset;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/** Root class of all nodes */
|
||||
|
||||
class Node {
|
||||
static addStringTerminator(src, offset, str) {
|
||||
if (str[str.length - 1] === '\n') return str;
|
||||
const next = Node.endOfWhiteSpace(src, offset);
|
||||
return next >= src.length || src[next] === '\n' ? str + '\n' : str;
|
||||
} // ^(---|...)
|
||||
|
||||
|
||||
static atDocumentBoundary(src, offset, sep) {
|
||||
const ch0 = src[offset];
|
||||
if (!ch0) return true;
|
||||
const prev = src[offset - 1];
|
||||
if (prev && prev !== '\n') return false;
|
||||
|
||||
if (sep) {
|
||||
if (ch0 !== sep) return false;
|
||||
} else {
|
||||
if (ch0 !== Char.DIRECTIVES_END && ch0 !== Char.DOCUMENT_END) return false;
|
||||
}
|
||||
|
||||
const ch1 = src[offset + 1];
|
||||
const ch2 = src[offset + 2];
|
||||
if (ch1 !== ch0 || ch2 !== ch0) return false;
|
||||
const ch3 = src[offset + 3];
|
||||
return !ch3 || ch3 === '\n' || ch3 === '\t' || ch3 === ' ';
|
||||
}
|
||||
|
||||
static endOfIdentifier(src, offset) {
|
||||
let ch = src[offset];
|
||||
const isVerbatim = ch === '<';
|
||||
const notOk = isVerbatim ? ['\n', '\t', ' ', '>'] : ['\n', '\t', ' ', '[', ']', '{', '}', ','];
|
||||
|
||||
while (ch && notOk.indexOf(ch) === -1) ch = src[offset += 1];
|
||||
|
||||
if (isVerbatim && ch === '>') offset += 1;
|
||||
return offset;
|
||||
}
|
||||
|
||||
static endOfIndent(src, offset) {
|
||||
let ch = src[offset];
|
||||
|
||||
while (ch === ' ') ch = src[offset += 1];
|
||||
|
||||
return offset;
|
||||
}
|
||||
|
||||
static endOfLine(src, offset) {
|
||||
let ch = src[offset];
|
||||
|
||||
while (ch && ch !== '\n') ch = src[offset += 1];
|
||||
|
||||
return offset;
|
||||
}
|
||||
|
||||
static endOfWhiteSpace(src, offset) {
|
||||
let ch = src[offset];
|
||||
|
||||
while (ch === '\t' || ch === ' ') ch = src[offset += 1];
|
||||
|
||||
return offset;
|
||||
}
|
||||
|
||||
static startOfLine(src, offset) {
|
||||
let ch = src[offset - 1];
|
||||
if (ch === '\n') return offset;
|
||||
|
||||
while (ch && ch !== '\n') ch = src[offset -= 1];
|
||||
|
||||
return offset + 1;
|
||||
}
|
||||
/**
|
||||
* End of indentation, or null if the line's indent level is not more
|
||||
* than `indent`
|
||||
*
|
||||
* @param {string} src
|
||||
* @param {number} indent
|
||||
* @param {number} lineStart
|
||||
* @returns {?number}
|
||||
*/
|
||||
|
||||
|
||||
static endOfBlockIndent(src, indent, lineStart) {
|
||||
const inEnd = Node.endOfIndent(src, lineStart);
|
||||
|
||||
if (inEnd > lineStart + indent) {
|
||||
return inEnd;
|
||||
} else {
|
||||
const wsEnd = Node.endOfWhiteSpace(src, inEnd);
|
||||
const ch = src[wsEnd];
|
||||
if (!ch || ch === '\n') return wsEnd;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
static atBlank(src, offset, endAsBlank) {
|
||||
const ch = src[offset];
|
||||
return ch === '\n' || ch === '\t' || ch === ' ' || endAsBlank && !ch;
|
||||
}
|
||||
|
||||
static nextNodeIsIndented(ch, indentDiff, indicatorAsIndent) {
|
||||
if (!ch || indentDiff < 0) return false;
|
||||
if (indentDiff > 0) return true;
|
||||
return indicatorAsIndent && ch === '-';
|
||||
} // should be at line or string end, or at next non-whitespace char
|
||||
|
||||
|
||||
static normalizeOffset(src, offset) {
|
||||
const ch = src[offset];
|
||||
return !ch ? offset : ch !== '\n' && src[offset - 1] === '\n' ? offset - 1 : Node.endOfWhiteSpace(src, offset);
|
||||
} // fold single newline into space, multiple newlines to N - 1 newlines
|
||||
// presumes src[offset] === '\n'
|
||||
|
||||
|
||||
static foldNewline(src, offset, indent) {
|
||||
let inCount = 0;
|
||||
let error = false;
|
||||
let fold = '';
|
||||
let ch = src[offset + 1];
|
||||
|
||||
while (ch === ' ' || ch === '\t' || ch === '\n') {
|
||||
switch (ch) {
|
||||
case '\n':
|
||||
inCount = 0;
|
||||
offset += 1;
|
||||
fold += '\n';
|
||||
break;
|
||||
|
||||
case '\t':
|
||||
if (inCount <= indent) error = true;
|
||||
offset = Node.endOfWhiteSpace(src, offset + 2) - 1;
|
||||
break;
|
||||
|
||||
case ' ':
|
||||
inCount += 1;
|
||||
offset += 1;
|
||||
break;
|
||||
}
|
||||
|
||||
ch = src[offset + 1];
|
||||
}
|
||||
|
||||
if (!fold) fold = ' ';
|
||||
if (ch && inCount <= indent) error = true;
|
||||
return {
|
||||
fold,
|
||||
offset,
|
||||
error
|
||||
};
|
||||
}
|
||||
|
||||
constructor(type, props, context) {
|
||||
Object.defineProperty(this, 'context', {
|
||||
value: context || null,
|
||||
writable: true
|
||||
});
|
||||
this.error = null;
|
||||
this.range = null;
|
||||
this.valueRange = null;
|
||||
this.props = props || [];
|
||||
this.type = type;
|
||||
this.value = null;
|
||||
}
|
||||
|
||||
getPropValue(idx, key, skipKey) {
|
||||
if (!this.context) return null;
|
||||
const {
|
||||
src
|
||||
} = this.context;
|
||||
const prop = this.props[idx];
|
||||
return prop && src[prop.start] === key ? src.slice(prop.start + (skipKey ? 1 : 0), prop.end) : null;
|
||||
}
|
||||
|
||||
get anchor() {
|
||||
for (let i = 0; i < this.props.length; ++i) {
|
||||
const anchor = this.getPropValue(i, Char.ANCHOR, true);
|
||||
if (anchor != null) return anchor;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
get comment() {
|
||||
const comments = [];
|
||||
|
||||
for (let i = 0; i < this.props.length; ++i) {
|
||||
const comment = this.getPropValue(i, Char.COMMENT, true);
|
||||
if (comment != null) comments.push(comment);
|
||||
}
|
||||
|
||||
return comments.length > 0 ? comments.join('\n') : null;
|
||||
}
|
||||
|
||||
commentHasRequiredWhitespace(start) {
|
||||
const {
|
||||
src
|
||||
} = this.context;
|
||||
if (this.header && start === this.header.end) return false;
|
||||
if (!this.valueRange) return false;
|
||||
const {
|
||||
end
|
||||
} = this.valueRange;
|
||||
return start !== end || Node.atBlank(src, end - 1);
|
||||
}
|
||||
|
||||
get hasComment() {
|
||||
if (this.context) {
|
||||
const {
|
||||
src
|
||||
} = this.context;
|
||||
|
||||
for (let i = 0; i < this.props.length; ++i) {
|
||||
if (src[this.props[i].start] === Char.COMMENT) return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
get hasProps() {
|
||||
if (this.context) {
|
||||
const {
|
||||
src
|
||||
} = this.context;
|
||||
|
||||
for (let i = 0; i < this.props.length; ++i) {
|
||||
if (src[this.props[i].start] !== Char.COMMENT) return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
get includesTrailingLines() {
|
||||
return false;
|
||||
}
|
||||
|
||||
get jsonLike() {
|
||||
const jsonLikeTypes = [Type.FLOW_MAP, Type.FLOW_SEQ, Type.QUOTE_DOUBLE, Type.QUOTE_SINGLE];
|
||||
return jsonLikeTypes.indexOf(this.type) !== -1;
|
||||
}
|
||||
|
||||
get rangeAsLinePos() {
|
||||
if (!this.range || !this.context) return undefined;
|
||||
const start = getLinePos(this.range.start, this.context.root);
|
||||
if (!start) return undefined;
|
||||
const end = getLinePos(this.range.end, this.context.root);
|
||||
return {
|
||||
start,
|
||||
end
|
||||
};
|
||||
}
|
||||
|
||||
get rawValue() {
|
||||
if (!this.valueRange || !this.context) return null;
|
||||
const {
|
||||
start,
|
||||
end
|
||||
} = this.valueRange;
|
||||
return this.context.src.slice(start, end);
|
||||
}
|
||||
|
||||
get tag() {
|
||||
for (let i = 0; i < this.props.length; ++i) {
|
||||
const tag = this.getPropValue(i, Char.TAG, false);
|
||||
|
||||
if (tag != null) {
|
||||
if (tag[1] === '<') {
|
||||
return {
|
||||
verbatim: tag.slice(2, -1)
|
||||
};
|
||||
} else {
|
||||
// eslint-disable-next-line no-unused-vars
|
||||
const [_, handle, suffix] = tag.match(/^(.*!)([^!]*)$/);
|
||||
return {
|
||||
handle,
|
||||
suffix
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
get valueRangeContainsNewline() {
|
||||
if (!this.valueRange || !this.context) return false;
|
||||
const {
|
||||
start,
|
||||
end
|
||||
} = this.valueRange;
|
||||
const {
|
||||
src
|
||||
} = this.context;
|
||||
|
||||
for (let i = start; i < end; ++i) {
|
||||
if (src[i] === '\n') return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
parseComment(start) {
|
||||
const {
|
||||
src
|
||||
} = this.context;
|
||||
|
||||
if (src[start] === Char.COMMENT) {
|
||||
const end = Node.endOfLine(src, start + 1);
|
||||
const commentRange = new Range(start, end);
|
||||
this.props.push(commentRange);
|
||||
return end;
|
||||
}
|
||||
|
||||
return start;
|
||||
}
|
||||
/**
|
||||
* Populates the `origStart` and `origEnd` values of all ranges for this
|
||||
* node. Extended by child classes to handle descendant nodes.
|
||||
*
|
||||
* @param {number[]} cr - Positions of dropped CR characters
|
||||
* @param {number} offset - Starting index of `cr` from the last call
|
||||
* @returns {number} - The next offset, matching the one found for `origStart`
|
||||
*/
|
||||
|
||||
|
||||
setOrigRanges(cr, offset) {
|
||||
if (this.range) offset = this.range.setOrigRange(cr, offset);
|
||||
if (this.valueRange) this.valueRange.setOrigRange(cr, offset);
|
||||
this.props.forEach(prop => prop.setOrigRange(cr, offset));
|
||||
return offset;
|
||||
}
|
||||
|
||||
toString() {
|
||||
const {
|
||||
context: {
|
||||
src
|
||||
},
|
||||
range,
|
||||
value
|
||||
} = this;
|
||||
if (value != null) return value;
|
||||
const str = src.slice(range.start, range.end);
|
||||
return Node.addStringTerminator(src, range.end, str);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
class YAMLError extends Error {
|
||||
constructor(name, source, message) {
|
||||
if (!message || !(source instanceof Node)) throw new Error(`Invalid arguments for new ${name}`);
|
||||
super();
|
||||
this.name = name;
|
||||
this.message = message;
|
||||
this.source = source;
|
||||
}
|
||||
|
||||
makePretty() {
|
||||
if (!this.source) return;
|
||||
this.nodeType = this.source.type;
|
||||
const cst = this.source.context && this.source.context.root;
|
||||
|
||||
if (typeof this.offset === 'number') {
|
||||
this.range = new Range(this.offset, this.offset + 1);
|
||||
const start = cst && getLinePos(this.offset, cst);
|
||||
|
||||
if (start) {
|
||||
const end = {
|
||||
line: start.line,
|
||||
col: start.col + 1
|
||||
};
|
||||
this.linePos = {
|
||||
start,
|
||||
end
|
||||
};
|
||||
}
|
||||
|
||||
delete this.offset;
|
||||
} else {
|
||||
this.range = this.source.range;
|
||||
this.linePos = this.source.rangeAsLinePos;
|
||||
}
|
||||
|
||||
if (this.linePos) {
|
||||
const {
|
||||
line,
|
||||
col
|
||||
} = this.linePos.start;
|
||||
this.message += ` at line ${line}, column ${col}`;
|
||||
const ctx = cst && getPrettyContext(this.linePos, cst);
|
||||
if (ctx) this.message += `:\n\n${ctx}\n`;
|
||||
}
|
||||
|
||||
delete this.source;
|
||||
}
|
||||
|
||||
}
|
||||
class YAMLReferenceError extends YAMLError {
|
||||
constructor(source, message) {
|
||||
super('YAMLReferenceError', source, message);
|
||||
}
|
||||
|
||||
}
|
||||
class YAMLSemanticError extends YAMLError {
|
||||
constructor(source, message) {
|
||||
super('YAMLSemanticError', source, message);
|
||||
}
|
||||
|
||||
}
|
||||
class YAMLSyntaxError extends YAMLError {
|
||||
constructor(source, message) {
|
||||
super('YAMLSyntaxError', source, message);
|
||||
}
|
||||
|
||||
}
|
||||
class YAMLWarning extends YAMLError {
|
||||
constructor(source, message) {
|
||||
super('YAMLWarning', source, message);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function _defineProperty(obj, key, value) {
|
||||
if (key in obj) {
|
||||
Object.defineProperty(obj, key, {
|
||||
value: value,
|
||||
enumerable: true,
|
||||
configurable: true,
|
||||
writable: true
|
||||
});
|
||||
} else {
|
||||
obj[key] = value;
|
||||
}
|
||||
|
||||
return obj;
|
||||
}
|
||||
|
||||
class PlainValue extends Node {
|
||||
static endOfLine(src, start, inFlow) {
|
||||
let ch = src[start];
|
||||
let offset = start;
|
||||
|
||||
while (ch && ch !== '\n') {
|
||||
if (inFlow && (ch === '[' || ch === ']' || ch === '{' || ch === '}' || ch === ',')) break;
|
||||
const next = src[offset + 1];
|
||||
if (ch === ':' && (!next || next === '\n' || next === '\t' || next === ' ' || inFlow && next === ',')) break;
|
||||
if ((ch === ' ' || ch === '\t') && next === '#') break;
|
||||
offset += 1;
|
||||
ch = next;
|
||||
}
|
||||
|
||||
return offset;
|
||||
}
|
||||
|
||||
get strValue() {
|
||||
if (!this.valueRange || !this.context) return null;
|
||||
let {
|
||||
start,
|
||||
end
|
||||
} = this.valueRange;
|
||||
const {
|
||||
src
|
||||
} = this.context;
|
||||
let ch = src[end - 1];
|
||||
|
||||
while (start < end && (ch === '\n' || ch === '\t' || ch === ' ')) ch = src[--end - 1];
|
||||
|
||||
let str = '';
|
||||
|
||||
for (let i = start; i < end; ++i) {
|
||||
const ch = src[i];
|
||||
|
||||
if (ch === '\n') {
|
||||
const {
|
||||
fold,
|
||||
offset
|
||||
} = Node.foldNewline(src, i, -1);
|
||||
str += fold;
|
||||
i = offset;
|
||||
} else if (ch === ' ' || ch === '\t') {
|
||||
// trim trailing whitespace
|
||||
const wsStart = i;
|
||||
let next = src[i + 1];
|
||||
|
||||
while (i < end && (next === ' ' || next === '\t')) {
|
||||
i += 1;
|
||||
next = src[i + 1];
|
||||
}
|
||||
|
||||
if (next !== '\n') str += i > wsStart ? src.slice(wsStart, i + 1) : ch;
|
||||
} else {
|
||||
str += ch;
|
||||
}
|
||||
}
|
||||
|
||||
const ch0 = src[start];
|
||||
|
||||
switch (ch0) {
|
||||
case '\t':
|
||||
{
|
||||
const msg = 'Plain value cannot start with a tab character';
|
||||
const errors = [new YAMLSemanticError(this, msg)];
|
||||
return {
|
||||
errors,
|
||||
str
|
||||
};
|
||||
}
|
||||
|
||||
case '@':
|
||||
case '`':
|
||||
{
|
||||
const msg = `Plain value cannot start with reserved character ${ch0}`;
|
||||
const errors = [new YAMLSemanticError(this, msg)];
|
||||
return {
|
||||
errors,
|
||||
str
|
||||
};
|
||||
}
|
||||
|
||||
default:
|
||||
return str;
|
||||
}
|
||||
}
|
||||
|
||||
parseBlockValue(start) {
|
||||
const {
|
||||
indent,
|
||||
inFlow,
|
||||
src
|
||||
} = this.context;
|
||||
let offset = start;
|
||||
let valueEnd = start;
|
||||
|
||||
for (let ch = src[offset]; ch === '\n'; ch = src[offset]) {
|
||||
if (Node.atDocumentBoundary(src, offset + 1)) break;
|
||||
const end = Node.endOfBlockIndent(src, indent, offset + 1);
|
||||
if (end === null || src[end] === '#') break;
|
||||
|
||||
if (src[end] === '\n') {
|
||||
offset = end;
|
||||
} else {
|
||||
valueEnd = PlainValue.endOfLine(src, end, inFlow);
|
||||
offset = valueEnd;
|
||||
}
|
||||
}
|
||||
|
||||
if (this.valueRange.isEmpty()) this.valueRange.start = start;
|
||||
this.valueRange.end = valueEnd;
|
||||
return valueEnd;
|
||||
}
|
||||
/**
|
||||
* Parses a plain value from the source
|
||||
*
|
||||
* Accepted forms are:
|
||||
* ```
|
||||
* #comment
|
||||
*
|
||||
* first line
|
||||
*
|
||||
* first line #comment
|
||||
*
|
||||
* first line
|
||||
* block
|
||||
* lines
|
||||
*
|
||||
* #comment
|
||||
* block
|
||||
* lines
|
||||
* ```
|
||||
* where block lines are empty or have an indent level greater than `indent`.
|
||||
*
|
||||
* @param {ParseContext} context
|
||||
* @param {number} start - Index of first character
|
||||
* @returns {number} - Index of the character after this scalar, may be `\n`
|
||||
*/
|
||||
|
||||
|
||||
parse(context, start) {
|
||||
this.context = context;
|
||||
const {
|
||||
inFlow,
|
||||
src
|
||||
} = context;
|
||||
let offset = start;
|
||||
const ch = src[offset];
|
||||
|
||||
if (ch && ch !== '#' && ch !== '\n') {
|
||||
offset = PlainValue.endOfLine(src, start, inFlow);
|
||||
}
|
||||
|
||||
this.valueRange = new Range(start, offset);
|
||||
offset = Node.endOfWhiteSpace(src, offset);
|
||||
offset = this.parseComment(offset);
|
||||
|
||||
if (!this.hasComment || this.valueRange.isEmpty()) {
|
||||
offset = this.parseBlockValue(offset);
|
||||
}
|
||||
|
||||
return offset;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
exports.Char = Char;
|
||||
exports.Node = Node;
|
||||
exports.PlainValue = PlainValue;
|
||||
exports.Range = Range;
|
||||
exports.Type = Type;
|
||||
exports.YAMLError = YAMLError;
|
||||
exports.YAMLReferenceError = YAMLReferenceError;
|
||||
exports.YAMLSemanticError = YAMLSemanticError;
|
||||
exports.YAMLSyntaxError = YAMLSyntaxError;
|
||||
exports.YAMLWarning = YAMLWarning;
|
||||
exports._defineProperty = _defineProperty;
|
||||
exports.defaultTagPrefix = defaultTagPrefix;
|
||||
exports.defaultTags = defaultTags;
|
||||
525
node_modules/postcss-load-config/node_modules/yaml/dist/Schema-88e323a7.js
generated
vendored
525
node_modules/postcss-load-config/node_modules/yaml/dist/Schema-88e323a7.js
generated
vendored
@ -1,525 +0,0 @@
|
||||
'use strict';
|
||||
|
||||
var PlainValue = require('./PlainValue-ec8e588e.js');
|
||||
var resolveSeq = require('./resolveSeq-d03cb037.js');
|
||||
var warnings = require('./warnings-1000a372.js');
|
||||
|
||||
function createMap(schema, obj, ctx) {
|
||||
const map = new resolveSeq.YAMLMap(schema);
|
||||
|
||||
if (obj instanceof Map) {
|
||||
for (const [key, value] of obj) map.items.push(schema.createPair(key, value, ctx));
|
||||
} else if (obj && typeof obj === 'object') {
|
||||
for (const key of Object.keys(obj)) map.items.push(schema.createPair(key, obj[key], ctx));
|
||||
}
|
||||
|
||||
if (typeof schema.sortMapEntries === 'function') {
|
||||
map.items.sort(schema.sortMapEntries);
|
||||
}
|
||||
|
||||
return map;
|
||||
}
|
||||
|
||||
const map = {
|
||||
createNode: createMap,
|
||||
default: true,
|
||||
nodeClass: resolveSeq.YAMLMap,
|
||||
tag: 'tag:yaml.org,2002:map',
|
||||
resolve: resolveSeq.resolveMap
|
||||
};
|
||||
|
||||
function createSeq(schema, obj, ctx) {
|
||||
const seq = new resolveSeq.YAMLSeq(schema);
|
||||
|
||||
if (obj && obj[Symbol.iterator]) {
|
||||
for (const it of obj) {
|
||||
const v = schema.createNode(it, ctx.wrapScalars, null, ctx);
|
||||
seq.items.push(v);
|
||||
}
|
||||
}
|
||||
|
||||
return seq;
|
||||
}
|
||||
|
||||
const seq = {
|
||||
createNode: createSeq,
|
||||
default: true,
|
||||
nodeClass: resolveSeq.YAMLSeq,
|
||||
tag: 'tag:yaml.org,2002:seq',
|
||||
resolve: resolveSeq.resolveSeq
|
||||
};
|
||||
|
||||
const string = {
|
||||
identify: value => typeof value === 'string',
|
||||
default: true,
|
||||
tag: 'tag:yaml.org,2002:str',
|
||||
resolve: resolveSeq.resolveString,
|
||||
|
||||
stringify(item, ctx, onComment, onChompKeep) {
|
||||
ctx = Object.assign({
|
||||
actualString: true
|
||||
}, ctx);
|
||||
return resolveSeq.stringifyString(item, ctx, onComment, onChompKeep);
|
||||
},
|
||||
|
||||
options: resolveSeq.strOptions
|
||||
};
|
||||
|
||||
const failsafe = [map, seq, string];
|
||||
|
||||
/* global BigInt */
|
||||
|
||||
const intIdentify$2 = value => typeof value === 'bigint' || Number.isInteger(value);
|
||||
|
||||
const intResolve$1 = (src, part, radix) => resolveSeq.intOptions.asBigInt ? BigInt(src) : parseInt(part, radix);
|
||||
|
||||
function intStringify$1(node, radix, prefix) {
|
||||
const {
|
||||
value
|
||||
} = node;
|
||||
if (intIdentify$2(value) && value >= 0) return prefix + value.toString(radix);
|
||||
return resolveSeq.stringifyNumber(node);
|
||||
}
|
||||
|
||||
const nullObj = {
|
||||
identify: value => value == null,
|
||||
createNode: (schema, value, ctx) => ctx.wrapScalars ? new resolveSeq.Scalar(null) : null,
|
||||
default: true,
|
||||
tag: 'tag:yaml.org,2002:null',
|
||||
test: /^(?:~|[Nn]ull|NULL)?$/,
|
||||
resolve: () => null,
|
||||
options: resolveSeq.nullOptions,
|
||||
stringify: () => resolveSeq.nullOptions.nullStr
|
||||
};
|
||||
const boolObj = {
|
||||
identify: value => typeof value === 'boolean',
|
||||
default: true,
|
||||
tag: 'tag:yaml.org,2002:bool',
|
||||
test: /^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,
|
||||
resolve: str => str[0] === 't' || str[0] === 'T',
|
||||
options: resolveSeq.boolOptions,
|
||||
stringify: ({
|
||||
value
|
||||
}) => value ? resolveSeq.boolOptions.trueStr : resolveSeq.boolOptions.falseStr
|
||||
};
|
||||
const octObj = {
|
||||
identify: value => intIdentify$2(value) && value >= 0,
|
||||
default: true,
|
||||
tag: 'tag:yaml.org,2002:int',
|
||||
format: 'OCT',
|
||||
test: /^0o([0-7]+)$/,
|
||||
resolve: (str, oct) => intResolve$1(str, oct, 8),
|
||||
options: resolveSeq.intOptions,
|
||||
stringify: node => intStringify$1(node, 8, '0o')
|
||||
};
|
||||
const intObj = {
|
||||
identify: intIdentify$2,
|
||||
default: true,
|
||||
tag: 'tag:yaml.org,2002:int',
|
||||
test: /^[-+]?[0-9]+$/,
|
||||
resolve: str => intResolve$1(str, str, 10),
|
||||
options: resolveSeq.intOptions,
|
||||
stringify: resolveSeq.stringifyNumber
|
||||
};
|
||||
const hexObj = {
|
||||
identify: value => intIdentify$2(value) && value >= 0,
|
||||
default: true,
|
||||
tag: 'tag:yaml.org,2002:int',
|
||||
format: 'HEX',
|
||||
test: /^0x([0-9a-fA-F]+)$/,
|
||||
resolve: (str, hex) => intResolve$1(str, hex, 16),
|
||||
options: resolveSeq.intOptions,
|
||||
stringify: node => intStringify$1(node, 16, '0x')
|
||||
};
|
||||
const nanObj = {
|
||||
identify: value => typeof value === 'number',
|
||||
default: true,
|
||||
tag: 'tag:yaml.org,2002:float',
|
||||
test: /^(?:[-+]?\.inf|(\.nan))$/i,
|
||||
resolve: (str, nan) => nan ? NaN : str[0] === '-' ? Number.NEGATIVE_INFINITY : Number.POSITIVE_INFINITY,
|
||||
stringify: resolveSeq.stringifyNumber
|
||||
};
|
||||
const expObj = {
|
||||
identify: value => typeof value === 'number',
|
||||
default: true,
|
||||
tag: 'tag:yaml.org,2002:float',
|
||||
format: 'EXP',
|
||||
test: /^[-+]?(?:\.[0-9]+|[0-9]+(?:\.[0-9]*)?)[eE][-+]?[0-9]+$/,
|
||||
resolve: str => parseFloat(str),
|
||||
stringify: ({
|
||||
value
|
||||
}) => Number(value).toExponential()
|
||||
};
|
||||
const floatObj = {
|
||||
identify: value => typeof value === 'number',
|
||||
default: true,
|
||||
tag: 'tag:yaml.org,2002:float',
|
||||
test: /^[-+]?(?:\.([0-9]+)|[0-9]+\.([0-9]*))$/,
|
||||
|
||||
resolve(str, frac1, frac2) {
|
||||
const frac = frac1 || frac2;
|
||||
const node = new resolveSeq.Scalar(parseFloat(str));
|
||||
if (frac && frac[frac.length - 1] === '0') node.minFractionDigits = frac.length;
|
||||
return node;
|
||||
},
|
||||
|
||||
stringify: resolveSeq.stringifyNumber
|
||||
};
|
||||
const core = failsafe.concat([nullObj, boolObj, octObj, intObj, hexObj, nanObj, expObj, floatObj]);
|
||||
|
||||
/* global BigInt */
|
||||
|
||||
const intIdentify$1 = value => typeof value === 'bigint' || Number.isInteger(value);
|
||||
|
||||
const stringifyJSON = ({
|
||||
value
|
||||
}) => JSON.stringify(value);
|
||||
|
||||
const json = [map, seq, {
|
||||
identify: value => typeof value === 'string',
|
||||
default: true,
|
||||
tag: 'tag:yaml.org,2002:str',
|
||||
resolve: resolveSeq.resolveString,
|
||||
stringify: stringifyJSON
|
||||
}, {
|
||||
identify: value => value == null,
|
||||
createNode: (schema, value, ctx) => ctx.wrapScalars ? new resolveSeq.Scalar(null) : null,
|
||||
default: true,
|
||||
tag: 'tag:yaml.org,2002:null',
|
||||
test: /^null$/,
|
||||
resolve: () => null,
|
||||
stringify: stringifyJSON
|
||||
}, {
|
||||
identify: value => typeof value === 'boolean',
|
||||
default: true,
|
||||
tag: 'tag:yaml.org,2002:bool',
|
||||
test: /^true|false$/,
|
||||
resolve: str => str === 'true',
|
||||
stringify: stringifyJSON
|
||||
}, {
|
||||
identify: intIdentify$1,
|
||||
default: true,
|
||||
tag: 'tag:yaml.org,2002:int',
|
||||
test: /^-?(?:0|[1-9][0-9]*)$/,
|
||||
resolve: str => resolveSeq.intOptions.asBigInt ? BigInt(str) : parseInt(str, 10),
|
||||
stringify: ({
|
||||
value
|
||||
}) => intIdentify$1(value) ? value.toString() : JSON.stringify(value)
|
||||
}, {
|
||||
identify: value => typeof value === 'number',
|
||||
default: true,
|
||||
tag: 'tag:yaml.org,2002:float',
|
||||
test: /^-?(?:0|[1-9][0-9]*)(?:\.[0-9]*)?(?:[eE][-+]?[0-9]+)?$/,
|
||||
resolve: str => parseFloat(str),
|
||||
stringify: stringifyJSON
|
||||
}];
|
||||
|
||||
json.scalarFallback = str => {
|
||||
throw new SyntaxError(`Unresolved plain scalar ${JSON.stringify(str)}`);
|
||||
};
|
||||
|
||||
/* global BigInt */
|
||||
|
||||
const boolStringify = ({
|
||||
value
|
||||
}) => value ? resolveSeq.boolOptions.trueStr : resolveSeq.boolOptions.falseStr;
|
||||
|
||||
const intIdentify = value => typeof value === 'bigint' || Number.isInteger(value);
|
||||
|
||||
function intResolve(sign, src, radix) {
|
||||
let str = src.replace(/_/g, '');
|
||||
|
||||
if (resolveSeq.intOptions.asBigInt) {
|
||||
switch (radix) {
|
||||
case 2:
|
||||
str = `0b${str}`;
|
||||
break;
|
||||
|
||||
case 8:
|
||||
str = `0o${str}`;
|
||||
break;
|
||||
|
||||
case 16:
|
||||
str = `0x${str}`;
|
||||
break;
|
||||
}
|
||||
|
||||
const n = BigInt(str);
|
||||
return sign === '-' ? BigInt(-1) * n : n;
|
||||
}
|
||||
|
||||
const n = parseInt(str, radix);
|
||||
return sign === '-' ? -1 * n : n;
|
||||
}
|
||||
|
||||
function intStringify(node, radix, prefix) {
|
||||
const {
|
||||
value
|
||||
} = node;
|
||||
|
||||
if (intIdentify(value)) {
|
||||
const str = value.toString(radix);
|
||||
return value < 0 ? '-' + prefix + str.substr(1) : prefix + str;
|
||||
}
|
||||
|
||||
return resolveSeq.stringifyNumber(node);
|
||||
}
|
||||
|
||||
const yaml11 = failsafe.concat([{
|
||||
identify: value => value == null,
|
||||
createNode: (schema, value, ctx) => ctx.wrapScalars ? new resolveSeq.Scalar(null) : null,
|
||||
default: true,
|
||||
tag: 'tag:yaml.org,2002:null',
|
||||
test: /^(?:~|[Nn]ull|NULL)?$/,
|
||||
resolve: () => null,
|
||||
options: resolveSeq.nullOptions,
|
||||
stringify: () => resolveSeq.nullOptions.nullStr
|
||||
}, {
|
||||
identify: value => typeof value === 'boolean',
|
||||
default: true,
|
||||
tag: 'tag:yaml.org,2002:bool',
|
||||
test: /^(?:Y|y|[Yy]es|YES|[Tt]rue|TRUE|[Oo]n|ON)$/,
|
||||
resolve: () => true,
|
||||
options: resolveSeq.boolOptions,
|
||||
stringify: boolStringify
|
||||
}, {
|
||||
identify: value => typeof value === 'boolean',
|
||||
default: true,
|
||||
tag: 'tag:yaml.org,2002:bool',
|
||||
test: /^(?:N|n|[Nn]o|NO|[Ff]alse|FALSE|[Oo]ff|OFF)$/i,
|
||||
resolve: () => false,
|
||||
options: resolveSeq.boolOptions,
|
||||
stringify: boolStringify
|
||||
}, {
|
||||
identify: intIdentify,
|
||||
default: true,
|
||||
tag: 'tag:yaml.org,2002:int',
|
||||
format: 'BIN',
|
||||
test: /^([-+]?)0b([0-1_]+)$/,
|
||||
resolve: (str, sign, bin) => intResolve(sign, bin, 2),
|
||||
stringify: node => intStringify(node, 2, '0b')
|
||||
}, {
|
||||
identify: intIdentify,
|
||||
default: true,
|
||||
tag: 'tag:yaml.org,2002:int',
|
||||
format: 'OCT',
|
||||
test: /^([-+]?)0([0-7_]+)$/,
|
||||
resolve: (str, sign, oct) => intResolve(sign, oct, 8),
|
||||
stringify: node => intStringify(node, 8, '0')
|
||||
}, {
|
||||
identify: intIdentify,
|
||||
default: true,
|
||||
tag: 'tag:yaml.org,2002:int',
|
||||
test: /^([-+]?)([0-9][0-9_]*)$/,
|
||||
resolve: (str, sign, abs) => intResolve(sign, abs, 10),
|
||||
stringify: resolveSeq.stringifyNumber
|
||||
}, {
|
||||
identify: intIdentify,
|
||||
default: true,
|
||||
tag: 'tag:yaml.org,2002:int',
|
||||
format: 'HEX',
|
||||
test: /^([-+]?)0x([0-9a-fA-F_]+)$/,
|
||||
resolve: (str, sign, hex) => intResolve(sign, hex, 16),
|
||||
stringify: node => intStringify(node, 16, '0x')
|
||||
}, {
|
||||
identify: value => typeof value === 'number',
|
||||
default: true,
|
||||
tag: 'tag:yaml.org,2002:float',
|
||||
test: /^(?:[-+]?\.inf|(\.nan))$/i,
|
||||
resolve: (str, nan) => nan ? NaN : str[0] === '-' ? Number.NEGATIVE_INFINITY : Number.POSITIVE_INFINITY,
|
||||
stringify: resolveSeq.stringifyNumber
|
||||
}, {
|
||||
identify: value => typeof value === 'number',
|
||||
default: true,
|
||||
tag: 'tag:yaml.org,2002:float',
|
||||
format: 'EXP',
|
||||
test: /^[-+]?([0-9][0-9_]*)?(\.[0-9_]*)?[eE][-+]?[0-9]+$/,
|
||||
resolve: str => parseFloat(str.replace(/_/g, '')),
|
||||
stringify: ({
|
||||
value
|
||||
}) => Number(value).toExponential()
|
||||
}, {
|
||||
identify: value => typeof value === 'number',
|
||||
default: true,
|
||||
tag: 'tag:yaml.org,2002:float',
|
||||
test: /^[-+]?(?:[0-9][0-9_]*)?\.([0-9_]*)$/,
|
||||
|
||||
resolve(str, frac) {
|
||||
const node = new resolveSeq.Scalar(parseFloat(str.replace(/_/g, '')));
|
||||
|
||||
if (frac) {
|
||||
const f = frac.replace(/_/g, '');
|
||||
if (f[f.length - 1] === '0') node.minFractionDigits = f.length;
|
||||
}
|
||||
|
||||
return node;
|
||||
},
|
||||
|
||||
stringify: resolveSeq.stringifyNumber
|
||||
}], warnings.binary, warnings.omap, warnings.pairs, warnings.set, warnings.intTime, warnings.floatTime, warnings.timestamp);
|
||||
|
||||
const schemas = {
|
||||
core,
|
||||
failsafe,
|
||||
json,
|
||||
yaml11
|
||||
};
|
||||
const tags = {
|
||||
binary: warnings.binary,
|
||||
bool: boolObj,
|
||||
float: floatObj,
|
||||
floatExp: expObj,
|
||||
floatNaN: nanObj,
|
||||
floatTime: warnings.floatTime,
|
||||
int: intObj,
|
||||
intHex: hexObj,
|
||||
intOct: octObj,
|
||||
intTime: warnings.intTime,
|
||||
map,
|
||||
null: nullObj,
|
||||
omap: warnings.omap,
|
||||
pairs: warnings.pairs,
|
||||
seq,
|
||||
set: warnings.set,
|
||||
timestamp: warnings.timestamp
|
||||
};
|
||||
|
||||
function findTagObject(value, tagName, tags) {
|
||||
if (tagName) {
|
||||
const match = tags.filter(t => t.tag === tagName);
|
||||
const tagObj = match.find(t => !t.format) || match[0];
|
||||
if (!tagObj) throw new Error(`Tag ${tagName} not found`);
|
||||
return tagObj;
|
||||
} // TODO: deprecate/remove class check
|
||||
|
||||
|
||||
return tags.find(t => (t.identify && t.identify(value) || t.class && value instanceof t.class) && !t.format);
|
||||
}
|
||||
|
||||
function createNode(value, tagName, ctx) {
|
||||
if (value instanceof resolveSeq.Node) return value;
|
||||
const {
|
||||
defaultPrefix,
|
||||
onTagObj,
|
||||
prevObjects,
|
||||
schema,
|
||||
wrapScalars
|
||||
} = ctx;
|
||||
if (tagName && tagName.startsWith('!!')) tagName = defaultPrefix + tagName.slice(2);
|
||||
let tagObj = findTagObject(value, tagName, schema.tags);
|
||||
|
||||
if (!tagObj) {
|
||||
if (typeof value.toJSON === 'function') value = value.toJSON();
|
||||
if (!value || typeof value !== 'object') return wrapScalars ? new resolveSeq.Scalar(value) : value;
|
||||
tagObj = value instanceof Map ? map : value[Symbol.iterator] ? seq : map;
|
||||
}
|
||||
|
||||
if (onTagObj) {
|
||||
onTagObj(tagObj);
|
||||
delete ctx.onTagObj;
|
||||
} // Detect duplicate references to the same object & use Alias nodes for all
|
||||
// after first. The `obj` wrapper allows for circular references to resolve.
|
||||
|
||||
|
||||
const obj = {
|
||||
value: undefined,
|
||||
node: undefined
|
||||
};
|
||||
|
||||
if (value && typeof value === 'object' && prevObjects) {
|
||||
const prev = prevObjects.get(value);
|
||||
|
||||
if (prev) {
|
||||
const alias = new resolveSeq.Alias(prev); // leaves source dirty; must be cleaned by caller
|
||||
|
||||
ctx.aliasNodes.push(alias); // defined along with prevObjects
|
||||
|
||||
return alias;
|
||||
}
|
||||
|
||||
obj.value = value;
|
||||
prevObjects.set(value, obj);
|
||||
}
|
||||
|
||||
obj.node = tagObj.createNode ? tagObj.createNode(ctx.schema, value, ctx) : wrapScalars ? new resolveSeq.Scalar(value) : value;
|
||||
if (tagName && obj.node instanceof resolveSeq.Node) obj.node.tag = tagName;
|
||||
return obj.node;
|
||||
}
|
||||
|
||||
function getSchemaTags(schemas, knownTags, customTags, schemaId) {
|
||||
let tags = schemas[schemaId.replace(/\W/g, '')]; // 'yaml-1.1' -> 'yaml11'
|
||||
|
||||
if (!tags) {
|
||||
const keys = Object.keys(schemas).map(key => JSON.stringify(key)).join(', ');
|
||||
throw new Error(`Unknown schema "${schemaId}"; use one of ${keys}`);
|
||||
}
|
||||
|
||||
if (Array.isArray(customTags)) {
|
||||
for (const tag of customTags) tags = tags.concat(tag);
|
||||
} else if (typeof customTags === 'function') {
|
||||
tags = customTags(tags.slice());
|
||||
}
|
||||
|
||||
for (let i = 0; i < tags.length; ++i) {
|
||||
const tag = tags[i];
|
||||
|
||||
if (typeof tag === 'string') {
|
||||
const tagObj = knownTags[tag];
|
||||
|
||||
if (!tagObj) {
|
||||
const keys = Object.keys(knownTags).map(key => JSON.stringify(key)).join(', ');
|
||||
throw new Error(`Unknown custom tag "${tag}"; use one of ${keys}`);
|
||||
}
|
||||
|
||||
tags[i] = tagObj;
|
||||
}
|
||||
}
|
||||
|
||||
return tags;
|
||||
}
|
||||
|
||||
const sortMapEntriesByKey = (a, b) => a.key < b.key ? -1 : a.key > b.key ? 1 : 0;
|
||||
|
||||
class Schema {
|
||||
// TODO: remove in v2
|
||||
// TODO: remove in v2
|
||||
constructor({
|
||||
customTags,
|
||||
merge,
|
||||
schema,
|
||||
sortMapEntries,
|
||||
tags: deprecatedCustomTags
|
||||
}) {
|
||||
this.merge = !!merge;
|
||||
this.name = schema;
|
||||
this.sortMapEntries = sortMapEntries === true ? sortMapEntriesByKey : sortMapEntries || null;
|
||||
if (!customTags && deprecatedCustomTags) warnings.warnOptionDeprecation('tags', 'customTags');
|
||||
this.tags = getSchemaTags(schemas, tags, customTags || deprecatedCustomTags, schema);
|
||||
}
|
||||
|
||||
createNode(value, wrapScalars, tagName, ctx) {
|
||||
const baseCtx = {
|
||||
defaultPrefix: Schema.defaultPrefix,
|
||||
schema: this,
|
||||
wrapScalars
|
||||
};
|
||||
const createCtx = ctx ? Object.assign(ctx, baseCtx) : baseCtx;
|
||||
return createNode(value, tagName, createCtx);
|
||||
}
|
||||
|
||||
createPair(key, value, ctx) {
|
||||
if (!ctx) ctx = {
|
||||
wrapScalars: true
|
||||
};
|
||||
const k = this.createNode(key, ctx.wrapScalars, null, ctx);
|
||||
const v = this.createNode(value, ctx.wrapScalars, null, ctx);
|
||||
return new resolveSeq.Pair(k, v);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
PlainValue._defineProperty(Schema, "defaultPrefix", PlainValue.defaultTagPrefix);
|
||||
|
||||
PlainValue._defineProperty(Schema, "defaultTags", PlainValue.defaultTags);
|
||||
|
||||
exports.Schema = Schema;
|
||||
79
node_modules/postcss-load-config/node_modules/yaml/dist/index.js
generated
vendored
79
node_modules/postcss-load-config/node_modules/yaml/dist/index.js
generated
vendored
@ -1,79 +0,0 @@
|
||||
'use strict';
|
||||
|
||||
var parseCst = require('./parse-cst.js');
|
||||
var Document$1 = require('./Document-9b4560a1.js');
|
||||
var Schema = require('./Schema-88e323a7.js');
|
||||
var PlainValue = require('./PlainValue-ec8e588e.js');
|
||||
var warnings = require('./warnings-1000a372.js');
|
||||
require('./resolveSeq-d03cb037.js');
|
||||
|
||||
function createNode(value, wrapScalars = true, tag) {
|
||||
if (tag === undefined && typeof wrapScalars === 'string') {
|
||||
tag = wrapScalars;
|
||||
wrapScalars = true;
|
||||
}
|
||||
|
||||
const options = Object.assign({}, Document$1.Document.defaults[Document$1.defaultOptions.version], Document$1.defaultOptions);
|
||||
const schema = new Schema.Schema(options);
|
||||
return schema.createNode(value, wrapScalars, tag);
|
||||
}
|
||||
|
||||
class Document extends Document$1.Document {
|
||||
constructor(options) {
|
||||
super(Object.assign({}, Document$1.defaultOptions, options));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function parseAllDocuments(src, options) {
|
||||
const stream = [];
|
||||
let prev;
|
||||
|
||||
for (const cstDoc of parseCst.parse(src)) {
|
||||
const doc = new Document(options);
|
||||
doc.parse(cstDoc, prev);
|
||||
stream.push(doc);
|
||||
prev = doc;
|
||||
}
|
||||
|
||||
return stream;
|
||||
}
|
||||
|
||||
function parseDocument(src, options) {
|
||||
const cst = parseCst.parse(src);
|
||||
const doc = new Document(options).parse(cst[0]);
|
||||
|
||||
if (cst.length > 1) {
|
||||
const errMsg = 'Source contains multiple documents; please use YAML.parseAllDocuments()';
|
||||
doc.errors.unshift(new PlainValue.YAMLSemanticError(cst[1], errMsg));
|
||||
}
|
||||
|
||||
return doc;
|
||||
}
|
||||
|
||||
function parse(src, options) {
|
||||
const doc = parseDocument(src, options);
|
||||
doc.warnings.forEach(warning => warnings.warn(warning));
|
||||
if (doc.errors.length > 0) throw doc.errors[0];
|
||||
return doc.toJSON();
|
||||
}
|
||||
|
||||
function stringify(value, options) {
|
||||
const doc = new Document(options);
|
||||
doc.contents = value;
|
||||
return String(doc);
|
||||
}
|
||||
|
||||
const YAML = {
|
||||
createNode,
|
||||
defaultOptions: Document$1.defaultOptions,
|
||||
Document,
|
||||
parse,
|
||||
parseAllDocuments,
|
||||
parseCST: parseCst.parse,
|
||||
parseDocument,
|
||||
scalarOptions: Document$1.scalarOptions,
|
||||
stringify
|
||||
};
|
||||
|
||||
exports.YAML = YAML;
|
||||
16
node_modules/postcss-load-config/node_modules/yaml/dist/legacy-exports.js
generated
vendored
16
node_modules/postcss-load-config/node_modules/yaml/dist/legacy-exports.js
generated
vendored
@ -1,16 +0,0 @@
|
||||
'use strict';
|
||||
|
||||
var warnings = require('./warnings-1000a372.js');
|
||||
require('./PlainValue-ec8e588e.js');
|
||||
require('./resolveSeq-d03cb037.js');
|
||||
|
||||
|
||||
|
||||
exports.binary = warnings.binary;
|
||||
exports.floatTime = warnings.floatTime;
|
||||
exports.intTime = warnings.intTime;
|
||||
exports.omap = warnings.omap;
|
||||
exports.pairs = warnings.pairs;
|
||||
exports.set = warnings.set;
|
||||
exports.timestamp = warnings.timestamp;
|
||||
exports.warnFileDeprecation = warnings.warnFileDeprecation;
|
||||
1753
node_modules/postcss-load-config/node_modules/yaml/dist/parse-cst.js
generated
vendored
1753
node_modules/postcss-load-config/node_modules/yaml/dist/parse-cst.js
generated
vendored
File diff suppressed because it is too large
Load Diff
2161
node_modules/postcss-load-config/node_modules/yaml/dist/resolveSeq-d03cb037.js
generated
vendored
2161
node_modules/postcss-load-config/node_modules/yaml/dist/resolveSeq-d03cb037.js
generated
vendored
File diff suppressed because it is too large
Load Diff
162
node_modules/postcss-load-config/node_modules/yaml/dist/test-events.js
generated
vendored
162
node_modules/postcss-load-config/node_modules/yaml/dist/test-events.js
generated
vendored
@ -1,162 +0,0 @@
|
||||
'use strict';
|
||||
|
||||
var parseCst = require('./parse-cst.js');
|
||||
var Document = require('./Document-9b4560a1.js');
|
||||
require('./PlainValue-ec8e588e.js');
|
||||
require('./resolveSeq-d03cb037.js');
|
||||
require('./Schema-88e323a7.js');
|
||||
require('./warnings-1000a372.js');
|
||||
|
||||
function testEvents(src, options) {
|
||||
const opt = Object.assign({
|
||||
keepCstNodes: true,
|
||||
keepNodeTypes: true,
|
||||
version: '1.2'
|
||||
}, options);
|
||||
const docs = parseCst.parse(src).map(cstDoc => new Document.Document(opt).parse(cstDoc));
|
||||
const errDoc = docs.find(doc => doc.errors.length > 0);
|
||||
const error = errDoc ? errDoc.errors[0].message : null;
|
||||
const events = ['+STR'];
|
||||
|
||||
try {
|
||||
for (let i = 0; i < docs.length; ++i) {
|
||||
const doc = docs[i];
|
||||
let root = doc.contents;
|
||||
if (Array.isArray(root)) root = root[0];
|
||||
const [rootStart, rootEnd] = doc.range || [0, 0];
|
||||
let e = doc.errors[0] && doc.errors[0].source;
|
||||
if (e && e.type === 'SEQ_ITEM') e = e.node;
|
||||
if (e && (e.type === 'DOCUMENT' || e.range.start < rootStart)) throw new Error();
|
||||
let docStart = '+DOC';
|
||||
const pre = src.slice(0, rootStart);
|
||||
const explicitDoc = /---\s*$/.test(pre);
|
||||
if (explicitDoc) docStart += ' ---';else if (!doc.contents) continue;
|
||||
events.push(docStart);
|
||||
addEvents(events, doc, e, root);
|
||||
if (doc.contents && doc.contents.length > 1) throw new Error();
|
||||
let docEnd = '-DOC';
|
||||
|
||||
if (rootEnd) {
|
||||
const post = src.slice(rootEnd);
|
||||
if (/^\.\.\./.test(post)) docEnd += ' ...';
|
||||
}
|
||||
|
||||
events.push(docEnd);
|
||||
}
|
||||
} catch (e) {
|
||||
return {
|
||||
events,
|
||||
error: error || e
|
||||
};
|
||||
}
|
||||
|
||||
events.push('-STR');
|
||||
return {
|
||||
events,
|
||||
error
|
||||
};
|
||||
}
|
||||
|
||||
function addEvents(events, doc, e, node) {
|
||||
if (!node) {
|
||||
events.push('=VAL :');
|
||||
return;
|
||||
}
|
||||
|
||||
if (e && node.cstNode === e) throw new Error();
|
||||
let props = '';
|
||||
let anchor = doc.anchors.getName(node);
|
||||
|
||||
if (anchor) {
|
||||
if (/\d$/.test(anchor)) {
|
||||
const alt = anchor.replace(/\d$/, '');
|
||||
if (doc.anchors.getNode(alt)) anchor = alt;
|
||||
}
|
||||
|
||||
props = ` &${anchor}`;
|
||||
}
|
||||
|
||||
if (node.cstNode && node.cstNode.tag) {
|
||||
const {
|
||||
handle,
|
||||
suffix
|
||||
} = node.cstNode.tag;
|
||||
props += handle === '!' && !suffix ? ' <!>' : ` <${node.tag}>`;
|
||||
}
|
||||
|
||||
let scalar = null;
|
||||
|
||||
switch (node.type) {
|
||||
case 'ALIAS':
|
||||
{
|
||||
let alias = doc.anchors.getName(node.source);
|
||||
|
||||
if (/\d$/.test(alias)) {
|
||||
const alt = alias.replace(/\d$/, '');
|
||||
if (doc.anchors.getNode(alt)) alias = alt;
|
||||
}
|
||||
|
||||
events.push(`=ALI${props} *${alias}`);
|
||||
}
|
||||
break;
|
||||
|
||||
case 'BLOCK_FOLDED':
|
||||
scalar = '>';
|
||||
break;
|
||||
|
||||
case 'BLOCK_LITERAL':
|
||||
scalar = '|';
|
||||
break;
|
||||
|
||||
case 'PLAIN':
|
||||
scalar = ':';
|
||||
break;
|
||||
|
||||
case 'QUOTE_DOUBLE':
|
||||
scalar = '"';
|
||||
break;
|
||||
|
||||
case 'QUOTE_SINGLE':
|
||||
scalar = "'";
|
||||
break;
|
||||
|
||||
case 'PAIR':
|
||||
events.push(`+MAP${props}`);
|
||||
addEvents(events, doc, e, node.key);
|
||||
addEvents(events, doc, e, node.value);
|
||||
events.push('-MAP');
|
||||
break;
|
||||
|
||||
case 'FLOW_SEQ':
|
||||
case 'SEQ':
|
||||
events.push(`+SEQ${props}`);
|
||||
node.items.forEach(item => {
|
||||
addEvents(events, doc, e, item);
|
||||
});
|
||||
events.push('-SEQ');
|
||||
break;
|
||||
|
||||
case 'FLOW_MAP':
|
||||
case 'MAP':
|
||||
events.push(`+MAP${props}`);
|
||||
node.items.forEach(({
|
||||
key,
|
||||
value
|
||||
}) => {
|
||||
addEvents(events, doc, e, key);
|
||||
addEvents(events, doc, e, value);
|
||||
});
|
||||
events.push('-MAP');
|
||||
break;
|
||||
|
||||
default:
|
||||
throw new Error(`Unexpected node type ${node.type}`);
|
||||
}
|
||||
|
||||
if (scalar) {
|
||||
const value = node.cstNode.strValue.replace(/\\/g, '\\\\').replace(/\0/g, '\\0').replace(/\x07/g, '\\a').replace(/\x08/g, '\\b').replace(/\t/g, '\\t').replace(/\n/g, '\\n').replace(/\v/g, '\\v').replace(/\f/g, '\\f').replace(/\r/g, '\\r').replace(/\x1b/g, '\\e');
|
||||
events.push(`=VAL${props} ${scalar}${value}`);
|
||||
}
|
||||
}
|
||||
|
||||
exports.testEvents = testEvents;
|
||||
23
node_modules/postcss-load-config/node_modules/yaml/dist/types.js
generated
vendored
23
node_modules/postcss-load-config/node_modules/yaml/dist/types.js
generated
vendored
@ -1,23 +0,0 @@
|
||||
'use strict';
|
||||
|
||||
var resolveSeq = require('./resolveSeq-d03cb037.js');
|
||||
var Schema = require('./Schema-88e323a7.js');
|
||||
require('./PlainValue-ec8e588e.js');
|
||||
require('./warnings-1000a372.js');
|
||||
|
||||
|
||||
|
||||
exports.Alias = resolveSeq.Alias;
|
||||
exports.Collection = resolveSeq.Collection;
|
||||
exports.Merge = resolveSeq.Merge;
|
||||
exports.Node = resolveSeq.Node;
|
||||
exports.Pair = resolveSeq.Pair;
|
||||
exports.Scalar = resolveSeq.Scalar;
|
||||
exports.YAMLMap = resolveSeq.YAMLMap;
|
||||
exports.YAMLSeq = resolveSeq.YAMLSeq;
|
||||
exports.binaryOptions = resolveSeq.binaryOptions;
|
||||
exports.boolOptions = resolveSeq.boolOptions;
|
||||
exports.intOptions = resolveSeq.intOptions;
|
||||
exports.nullOptions = resolveSeq.nullOptions;
|
||||
exports.strOptions = resolveSeq.strOptions;
|
||||
exports.Schema = Schema.Schema;
|
||||
19
node_modules/postcss-load-config/node_modules/yaml/dist/util.js
generated
vendored
19
node_modules/postcss-load-config/node_modules/yaml/dist/util.js
generated
vendored
@ -1,19 +0,0 @@
|
||||
'use strict';
|
||||
|
||||
var resolveSeq = require('./resolveSeq-d03cb037.js');
|
||||
var PlainValue = require('./PlainValue-ec8e588e.js');
|
||||
|
||||
|
||||
|
||||
exports.findPair = resolveSeq.findPair;
|
||||
exports.parseMap = resolveSeq.resolveMap;
|
||||
exports.parseSeq = resolveSeq.resolveSeq;
|
||||
exports.stringifyNumber = resolveSeq.stringifyNumber;
|
||||
exports.stringifyString = resolveSeq.stringifyString;
|
||||
exports.toJSON = resolveSeq.toJSON;
|
||||
exports.Type = PlainValue.Type;
|
||||
exports.YAMLError = PlainValue.YAMLError;
|
||||
exports.YAMLReferenceError = PlainValue.YAMLReferenceError;
|
||||
exports.YAMLSemanticError = PlainValue.YAMLSemanticError;
|
||||
exports.YAMLSyntaxError = PlainValue.YAMLSyntaxError;
|
||||
exports.YAMLWarning = PlainValue.YAMLWarning;
|
||||
416
node_modules/postcss-load-config/node_modules/yaml/dist/warnings-1000a372.js
generated
vendored
416
node_modules/postcss-load-config/node_modules/yaml/dist/warnings-1000a372.js
generated
vendored
@ -1,416 +0,0 @@
|
||||
'use strict';
|
||||
|
||||
var PlainValue = require('./PlainValue-ec8e588e.js');
|
||||
var resolveSeq = require('./resolveSeq-d03cb037.js');
|
||||
|
||||
/* global atob, btoa, Buffer */
|
||||
const binary = {
|
||||
identify: value => value instanceof Uint8Array,
|
||||
// Buffer inherits from Uint8Array
|
||||
default: false,
|
||||
tag: 'tag:yaml.org,2002:binary',
|
||||
|
||||
/**
|
||||
* Returns a Buffer in node and an Uint8Array in browsers
|
||||
*
|
||||
* To use the resulting buffer as an image, you'll want to do something like:
|
||||
*
|
||||
* const blob = new Blob([buffer], { type: 'image/jpeg' })
|
||||
* document.querySelector('#photo').src = URL.createObjectURL(blob)
|
||||
*/
|
||||
resolve: (doc, node) => {
|
||||
const src = resolveSeq.resolveString(doc, node);
|
||||
|
||||
if (typeof Buffer === 'function') {
|
||||
return Buffer.from(src, 'base64');
|
||||
} else if (typeof atob === 'function') {
|
||||
// On IE 11, atob() can't handle newlines
|
||||
const str = atob(src.replace(/[\n\r]/g, ''));
|
||||
const buffer = new Uint8Array(str.length);
|
||||
|
||||
for (let i = 0; i < str.length; ++i) buffer[i] = str.charCodeAt(i);
|
||||
|
||||
return buffer;
|
||||
} else {
|
||||
const msg = 'This environment does not support reading binary tags; either Buffer or atob is required';
|
||||
doc.errors.push(new PlainValue.YAMLReferenceError(node, msg));
|
||||
return null;
|
||||
}
|
||||
},
|
||||
options: resolveSeq.binaryOptions,
|
||||
stringify: ({
|
||||
comment,
|
||||
type,
|
||||
value
|
||||
}, ctx, onComment, onChompKeep) => {
|
||||
let src;
|
||||
|
||||
if (typeof Buffer === 'function') {
|
||||
src = value instanceof Buffer ? value.toString('base64') : Buffer.from(value.buffer).toString('base64');
|
||||
} else if (typeof btoa === 'function') {
|
||||
let s = '';
|
||||
|
||||
for (let i = 0; i < value.length; ++i) s += String.fromCharCode(value[i]);
|
||||
|
||||
src = btoa(s);
|
||||
} else {
|
||||
throw new Error('This environment does not support writing binary tags; either Buffer or btoa is required');
|
||||
}
|
||||
|
||||
if (!type) type = resolveSeq.binaryOptions.defaultType;
|
||||
|
||||
if (type === PlainValue.Type.QUOTE_DOUBLE) {
|
||||
value = src;
|
||||
} else {
|
||||
const {
|
||||
lineWidth
|
||||
} = resolveSeq.binaryOptions;
|
||||
const n = Math.ceil(src.length / lineWidth);
|
||||
const lines = new Array(n);
|
||||
|
||||
for (let i = 0, o = 0; i < n; ++i, o += lineWidth) {
|
||||
lines[i] = src.substr(o, lineWidth);
|
||||
}
|
||||
|
||||
value = lines.join(type === PlainValue.Type.BLOCK_LITERAL ? '\n' : ' ');
|
||||
}
|
||||
|
||||
return resolveSeq.stringifyString({
|
||||
comment,
|
||||
type,
|
||||
value
|
||||
}, ctx, onComment, onChompKeep);
|
||||
}
|
||||
};
|
||||
|
||||
function parsePairs(doc, cst) {
|
||||
const seq = resolveSeq.resolveSeq(doc, cst);
|
||||
|
||||
for (let i = 0; i < seq.items.length; ++i) {
|
||||
let item = seq.items[i];
|
||||
if (item instanceof resolveSeq.Pair) continue;else if (item instanceof resolveSeq.YAMLMap) {
|
||||
if (item.items.length > 1) {
|
||||
const msg = 'Each pair must have its own sequence indicator';
|
||||
throw new PlainValue.YAMLSemanticError(cst, msg);
|
||||
}
|
||||
|
||||
const pair = item.items[0] || new resolveSeq.Pair();
|
||||
if (item.commentBefore) pair.commentBefore = pair.commentBefore ? `${item.commentBefore}\n${pair.commentBefore}` : item.commentBefore;
|
||||
if (item.comment) pair.comment = pair.comment ? `${item.comment}\n${pair.comment}` : item.comment;
|
||||
item = pair;
|
||||
}
|
||||
seq.items[i] = item instanceof resolveSeq.Pair ? item : new resolveSeq.Pair(item);
|
||||
}
|
||||
|
||||
return seq;
|
||||
}
|
||||
function createPairs(schema, iterable, ctx) {
|
||||
const pairs = new resolveSeq.YAMLSeq(schema);
|
||||
pairs.tag = 'tag:yaml.org,2002:pairs';
|
||||
|
||||
for (const it of iterable) {
|
||||
let key, value;
|
||||
|
||||
if (Array.isArray(it)) {
|
||||
if (it.length === 2) {
|
||||
key = it[0];
|
||||
value = it[1];
|
||||
} else throw new TypeError(`Expected [key, value] tuple: ${it}`);
|
||||
} else if (it && it instanceof Object) {
|
||||
const keys = Object.keys(it);
|
||||
|
||||
if (keys.length === 1) {
|
||||
key = keys[0];
|
||||
value = it[key];
|
||||
} else throw new TypeError(`Expected { key: value } tuple: ${it}`);
|
||||
} else {
|
||||
key = it;
|
||||
}
|
||||
|
||||
const pair = schema.createPair(key, value, ctx);
|
||||
pairs.items.push(pair);
|
||||
}
|
||||
|
||||
return pairs;
|
||||
}
|
||||
const pairs = {
|
||||
default: false,
|
||||
tag: 'tag:yaml.org,2002:pairs',
|
||||
resolve: parsePairs,
|
||||
createNode: createPairs
|
||||
};
|
||||
|
||||
class YAMLOMap extends resolveSeq.YAMLSeq {
|
||||
constructor() {
|
||||
super();
|
||||
|
||||
PlainValue._defineProperty(this, "add", resolveSeq.YAMLMap.prototype.add.bind(this));
|
||||
|
||||
PlainValue._defineProperty(this, "delete", resolveSeq.YAMLMap.prototype.delete.bind(this));
|
||||
|
||||
PlainValue._defineProperty(this, "get", resolveSeq.YAMLMap.prototype.get.bind(this));
|
||||
|
||||
PlainValue._defineProperty(this, "has", resolveSeq.YAMLMap.prototype.has.bind(this));
|
||||
|
||||
PlainValue._defineProperty(this, "set", resolveSeq.YAMLMap.prototype.set.bind(this));
|
||||
|
||||
this.tag = YAMLOMap.tag;
|
||||
}
|
||||
|
||||
toJSON(_, ctx) {
|
||||
const map = new Map();
|
||||
if (ctx && ctx.onCreate) ctx.onCreate(map);
|
||||
|
||||
for (const pair of this.items) {
|
||||
let key, value;
|
||||
|
||||
if (pair instanceof resolveSeq.Pair) {
|
||||
key = resolveSeq.toJSON(pair.key, '', ctx);
|
||||
value = resolveSeq.toJSON(pair.value, key, ctx);
|
||||
} else {
|
||||
key = resolveSeq.toJSON(pair, '', ctx);
|
||||
}
|
||||
|
||||
if (map.has(key)) throw new Error('Ordered maps must not include duplicate keys');
|
||||
map.set(key, value);
|
||||
}
|
||||
|
||||
return map;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
PlainValue._defineProperty(YAMLOMap, "tag", 'tag:yaml.org,2002:omap');
|
||||
|
||||
function parseOMap(doc, cst) {
|
||||
const pairs = parsePairs(doc, cst);
|
||||
const seenKeys = [];
|
||||
|
||||
for (const {
|
||||
key
|
||||
} of pairs.items) {
|
||||
if (key instanceof resolveSeq.Scalar) {
|
||||
if (seenKeys.includes(key.value)) {
|
||||
const msg = 'Ordered maps must not include duplicate keys';
|
||||
throw new PlainValue.YAMLSemanticError(cst, msg);
|
||||
} else {
|
||||
seenKeys.push(key.value);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return Object.assign(new YAMLOMap(), pairs);
|
||||
}
|
||||
|
||||
function createOMap(schema, iterable, ctx) {
|
||||
const pairs = createPairs(schema, iterable, ctx);
|
||||
const omap = new YAMLOMap();
|
||||
omap.items = pairs.items;
|
||||
return omap;
|
||||
}
|
||||
|
||||
const omap = {
|
||||
identify: value => value instanceof Map,
|
||||
nodeClass: YAMLOMap,
|
||||
default: false,
|
||||
tag: 'tag:yaml.org,2002:omap',
|
||||
resolve: parseOMap,
|
||||
createNode: createOMap
|
||||
};
|
||||
|
||||
class YAMLSet extends resolveSeq.YAMLMap {
|
||||
constructor() {
|
||||
super();
|
||||
this.tag = YAMLSet.tag;
|
||||
}
|
||||
|
||||
add(key) {
|
||||
const pair = key instanceof resolveSeq.Pair ? key : new resolveSeq.Pair(key);
|
||||
const prev = resolveSeq.findPair(this.items, pair.key);
|
||||
if (!prev) this.items.push(pair);
|
||||
}
|
||||
|
||||
get(key, keepPair) {
|
||||
const pair = resolveSeq.findPair(this.items, key);
|
||||
return !keepPair && pair instanceof resolveSeq.Pair ? pair.key instanceof resolveSeq.Scalar ? pair.key.value : pair.key : pair;
|
||||
}
|
||||
|
||||
set(key, value) {
|
||||
if (typeof value !== 'boolean') throw new Error(`Expected boolean value for set(key, value) in a YAML set, not ${typeof value}`);
|
||||
const prev = resolveSeq.findPair(this.items, key);
|
||||
|
||||
if (prev && !value) {
|
||||
this.items.splice(this.items.indexOf(prev), 1);
|
||||
} else if (!prev && value) {
|
||||
this.items.push(new resolveSeq.Pair(key));
|
||||
}
|
||||
}
|
||||
|
||||
toJSON(_, ctx) {
|
||||
return super.toJSON(_, ctx, Set);
|
||||
}
|
||||
|
||||
toString(ctx, onComment, onChompKeep) {
|
||||
if (!ctx) return JSON.stringify(this);
|
||||
if (this.hasAllNullValues()) return super.toString(ctx, onComment, onChompKeep);else throw new Error('Set items must all have null values');
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
PlainValue._defineProperty(YAMLSet, "tag", 'tag:yaml.org,2002:set');
|
||||
|
||||
function parseSet(doc, cst) {
|
||||
const map = resolveSeq.resolveMap(doc, cst);
|
||||
if (!map.hasAllNullValues()) throw new PlainValue.YAMLSemanticError(cst, 'Set items must all have null values');
|
||||
return Object.assign(new YAMLSet(), map);
|
||||
}
|
||||
|
||||
function createSet(schema, iterable, ctx) {
|
||||
const set = new YAMLSet();
|
||||
|
||||
for (const value of iterable) set.items.push(schema.createPair(value, null, ctx));
|
||||
|
||||
return set;
|
||||
}
|
||||
|
||||
const set = {
|
||||
identify: value => value instanceof Set,
|
||||
nodeClass: YAMLSet,
|
||||
default: false,
|
||||
tag: 'tag:yaml.org,2002:set',
|
||||
resolve: parseSet,
|
||||
createNode: createSet
|
||||
};
|
||||
|
||||
const parseSexagesimal = (sign, parts) => {
|
||||
const n = parts.split(':').reduce((n, p) => n * 60 + Number(p), 0);
|
||||
return sign === '-' ? -n : n;
|
||||
}; // hhhh:mm:ss.sss
|
||||
|
||||
|
||||
const stringifySexagesimal = ({
|
||||
value
|
||||
}) => {
|
||||
if (isNaN(value) || !isFinite(value)) return resolveSeq.stringifyNumber(value);
|
||||
let sign = '';
|
||||
|
||||
if (value < 0) {
|
||||
sign = '-';
|
||||
value = Math.abs(value);
|
||||
}
|
||||
|
||||
const parts = [value % 60]; // seconds, including ms
|
||||
|
||||
if (value < 60) {
|
||||
parts.unshift(0); // at least one : is required
|
||||
} else {
|
||||
value = Math.round((value - parts[0]) / 60);
|
||||
parts.unshift(value % 60); // minutes
|
||||
|
||||
if (value >= 60) {
|
||||
value = Math.round((value - parts[0]) / 60);
|
||||
parts.unshift(value); // hours
|
||||
}
|
||||
}
|
||||
|
||||
return sign + parts.map(n => n < 10 ? '0' + String(n) : String(n)).join(':').replace(/000000\d*$/, '') // % 60 may introduce error
|
||||
;
|
||||
};
|
||||
|
||||
const intTime = {
|
||||
identify: value => typeof value === 'number',
|
||||
default: true,
|
||||
tag: 'tag:yaml.org,2002:int',
|
||||
format: 'TIME',
|
||||
test: /^([-+]?)([0-9][0-9_]*(?::[0-5]?[0-9])+)$/,
|
||||
resolve: (str, sign, parts) => parseSexagesimal(sign, parts.replace(/_/g, '')),
|
||||
stringify: stringifySexagesimal
|
||||
};
|
||||
const floatTime = {
|
||||
identify: value => typeof value === 'number',
|
||||
default: true,
|
||||
tag: 'tag:yaml.org,2002:float',
|
||||
format: 'TIME',
|
||||
test: /^([-+]?)([0-9][0-9_]*(?::[0-5]?[0-9])+\.[0-9_]*)$/,
|
||||
resolve: (str, sign, parts) => parseSexagesimal(sign, parts.replace(/_/g, '')),
|
||||
stringify: stringifySexagesimal
|
||||
};
|
||||
const timestamp = {
|
||||
identify: value => value instanceof Date,
|
||||
default: true,
|
||||
tag: 'tag:yaml.org,2002:timestamp',
|
||||
// If the time zone is omitted, the timestamp is assumed to be specified in UTC. The time part
|
||||
// may be omitted altogether, resulting in a date format. In such a case, the time part is
|
||||
// assumed to be 00:00:00Z (start of day, UTC).
|
||||
test: RegExp('^(?:' + '([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})' + // YYYY-Mm-Dd
|
||||
'(?:(?:t|T|[ \\t]+)' + // t | T | whitespace
|
||||
'([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2}(\\.[0-9]+)?)' + // Hh:Mm:Ss(.ss)?
|
||||
'(?:[ \\t]*(Z|[-+][012]?[0-9](?::[0-9]{2})?))?' + // Z | +5 | -03:30
|
||||
')?' + ')$'),
|
||||
resolve: (str, year, month, day, hour, minute, second, millisec, tz) => {
|
||||
if (millisec) millisec = (millisec + '00').substr(1, 3);
|
||||
let date = Date.UTC(year, month - 1, day, hour || 0, minute || 0, second || 0, millisec || 0);
|
||||
|
||||
if (tz && tz !== 'Z') {
|
||||
let d = parseSexagesimal(tz[0], tz.slice(1));
|
||||
if (Math.abs(d) < 30) d *= 60;
|
||||
date -= 60000 * d;
|
||||
}
|
||||
|
||||
return new Date(date);
|
||||
},
|
||||
stringify: ({
|
||||
value
|
||||
}) => value.toISOString().replace(/((T00:00)?:00)?\.000Z$/, '')
|
||||
};
|
||||
|
||||
/* global console, process, YAML_SILENCE_DEPRECATION_WARNINGS, YAML_SILENCE_WARNINGS */
|
||||
function shouldWarn(deprecation) {
|
||||
const env = typeof process !== 'undefined' && process.env || {};
|
||||
|
||||
if (deprecation) {
|
||||
if (typeof YAML_SILENCE_DEPRECATION_WARNINGS !== 'undefined') return !YAML_SILENCE_DEPRECATION_WARNINGS;
|
||||
return !env.YAML_SILENCE_DEPRECATION_WARNINGS;
|
||||
}
|
||||
|
||||
if (typeof YAML_SILENCE_WARNINGS !== 'undefined') return !YAML_SILENCE_WARNINGS;
|
||||
return !env.YAML_SILENCE_WARNINGS;
|
||||
}
|
||||
|
||||
function warn(warning, type) {
|
||||
if (shouldWarn(false)) {
|
||||
const emit = typeof process !== 'undefined' && process.emitWarning; // This will throw in Jest if `warning` is an Error instance due to
|
||||
// https://github.com/facebook/jest/issues/2549
|
||||
|
||||
if (emit) emit(warning, type);else {
|
||||
// eslint-disable-next-line no-console
|
||||
console.warn(type ? `${type}: ${warning}` : warning);
|
||||
}
|
||||
}
|
||||
}
|
||||
function warnFileDeprecation(filename) {
|
||||
if (shouldWarn(true)) {
|
||||
const path = filename.replace(/.*yaml[/\\]/i, '').replace(/\.js$/, '').replace(/\\/g, '/');
|
||||
warn(`The endpoint 'yaml/${path}' will be removed in a future release.`, 'DeprecationWarning');
|
||||
}
|
||||
}
|
||||
const warned = {};
|
||||
function warnOptionDeprecation(name, alternative) {
|
||||
if (!warned[name] && shouldWarn(true)) {
|
||||
warned[name] = true;
|
||||
let msg = `The option '${name}' will be removed in a future release`;
|
||||
msg += alternative ? `, use '${alternative}' instead.` : '.';
|
||||
warn(msg, 'DeprecationWarning');
|
||||
}
|
||||
}
|
||||
|
||||
exports.binary = binary;
|
||||
exports.floatTime = floatTime;
|
||||
exports.intTime = intTime;
|
||||
exports.omap = omap;
|
||||
exports.pairs = pairs;
|
||||
exports.set = set;
|
||||
exports.timestamp = timestamp;
|
||||
exports.warn = warn;
|
||||
exports.warnFileDeprecation = warnFileDeprecation;
|
||||
exports.warnOptionDeprecation = warnOptionDeprecation;
|
||||
372
node_modules/postcss-load-config/node_modules/yaml/index.d.ts
generated
vendored
372
node_modules/postcss-load-config/node_modules/yaml/index.d.ts
generated
vendored
@ -1,372 +0,0 @@
|
||||
import { CST } from './parse-cst'
|
||||
import {
|
||||
AST,
|
||||
Alias,
|
||||
Collection,
|
||||
Merge,
|
||||
Node,
|
||||
Scalar,
|
||||
Schema,
|
||||
YAMLMap,
|
||||
YAMLSeq
|
||||
} from './types'
|
||||
import { Type, YAMLError, YAMLWarning } from './util'
|
||||
|
||||
export { AST, CST }
|
||||
export { default as parseCST } from './parse-cst'
|
||||
|
||||
/**
|
||||
* `yaml` defines document-specific options in three places: as an argument of
|
||||
* parse, create and stringify calls, in the values of `YAML.defaultOptions`,
|
||||
* and in the version-dependent `YAML.Document.defaults` object. Values set in
|
||||
* `YAML.defaultOptions` override version-dependent defaults, and argument
|
||||
* options override both.
|
||||
*/
|
||||
export const defaultOptions: Options
|
||||
|
||||
export interface Options extends Schema.Options {
|
||||
/**
|
||||
* Default prefix for anchors.
|
||||
*
|
||||
* Default: `'a'`, resulting in anchors `a1`, `a2`, etc.
|
||||
*/
|
||||
anchorPrefix?: string
|
||||
/**
|
||||
* The number of spaces to use when indenting code.
|
||||
*
|
||||
* Default: `2`
|
||||
*/
|
||||
indent?: number
|
||||
/**
|
||||
* Whether block sequences should be indented.
|
||||
*
|
||||
* Default: `true`
|
||||
*/
|
||||
indentSeq?: boolean
|
||||
/**
|
||||
* Allow non-JSON JavaScript objects to remain in the `toJSON` output.
|
||||
* Relevant with the YAML 1.1 `!!timestamp` and `!!binary` tags as well as BigInts.
|
||||
*
|
||||
* Default: `true`
|
||||
*/
|
||||
keepBlobsInJSON?: boolean
|
||||
/**
|
||||
* Include references in the AST to each node's corresponding CST node.
|
||||
*
|
||||
* Default: `false`
|
||||
*/
|
||||
keepCstNodes?: boolean
|
||||
/**
|
||||
* Store the original node type when parsing documents.
|
||||
*
|
||||
* Default: `true`
|
||||
*/
|
||||
keepNodeTypes?: boolean
|
||||
/**
|
||||
* When outputting JS, use Map rather than Object to represent mappings.
|
||||
*
|
||||
* Default: `false`
|
||||
*/
|
||||
mapAsMap?: boolean
|
||||
/**
|
||||
* Prevent exponential entity expansion attacks by limiting data aliasing count;
|
||||
* set to `-1` to disable checks; `0` disallows all alias nodes.
|
||||
*
|
||||
* Default: `100`
|
||||
*/
|
||||
maxAliasCount?: number
|
||||
/**
|
||||
* Include line position & node type directly in errors; drop their verbose source and context.
|
||||
*
|
||||
* Default: `false`
|
||||
*/
|
||||
prettyErrors?: boolean
|
||||
/**
|
||||
* When stringifying, require keys to be scalars and to use implicit rather than explicit notation.
|
||||
*
|
||||
* Default: `false`
|
||||
*/
|
||||
simpleKeys?: boolean
|
||||
/**
|
||||
* The YAML version used by documents without a `%YAML` directive.
|
||||
*
|
||||
* Default: `"1.2"`
|
||||
*/
|
||||
version?: '1.0' | '1.1' | '1.2'
|
||||
}
|
||||
|
||||
/**
|
||||
* Some customization options are availabe to control the parsing and
|
||||
* stringification of scalars. Note that these values are used by all documents.
|
||||
*/
|
||||
export const scalarOptions: {
|
||||
binary: scalarOptions.Binary
|
||||
bool: scalarOptions.Bool
|
||||
int: scalarOptions.Int
|
||||
null: scalarOptions.Null
|
||||
str: scalarOptions.Str
|
||||
}
|
||||
export namespace scalarOptions {
|
||||
interface Binary {
|
||||
/**
|
||||
* The type of string literal used to stringify `!!binary` values.
|
||||
*
|
||||
* Default: `'BLOCK_LITERAL'`
|
||||
*/
|
||||
defaultType: Scalar.Type
|
||||
/**
|
||||
* Maximum line width for `!!binary`.
|
||||
*
|
||||
* Default: `76`
|
||||
*/
|
||||
lineWidth: number
|
||||
}
|
||||
|
||||
interface Bool {
|
||||
/**
|
||||
* String representation for `true`. With the core schema, use `'true' | 'True' | 'TRUE'`.
|
||||
*
|
||||
* Default: `'true'`
|
||||
*/
|
||||
trueStr: string
|
||||
/**
|
||||
* String representation for `false`. With the core schema, use `'false' | 'False' | 'FALSE'`.
|
||||
*
|
||||
* Default: `'false'`
|
||||
*/
|
||||
falseStr: string
|
||||
}
|
||||
|
||||
interface Int {
|
||||
/**
|
||||
* Whether integers should be parsed into BigInt values.
|
||||
*
|
||||
* Default: `false`
|
||||
*/
|
||||
asBigInt: boolean
|
||||
}
|
||||
|
||||
interface Null {
|
||||
/**
|
||||
* String representation for `null`. With the core schema, use `'null' | 'Null' | 'NULL' | '~' | ''`.
|
||||
*
|
||||
* Default: `'null'`
|
||||
*/
|
||||
nullStr: string
|
||||
}
|
||||
|
||||
interface Str {
|
||||
/**
|
||||
* The default type of string literal used to stringify values
|
||||
*
|
||||
* Default: `'PLAIN'`
|
||||
*/
|
||||
defaultType: Scalar.Type
|
||||
doubleQuoted: {
|
||||
/**
|
||||
* Whether to restrict double-quoted strings to use JSON-compatible syntax.
|
||||
*
|
||||
* Default: `false`
|
||||
*/
|
||||
jsonEncoding: boolean
|
||||
/**
|
||||
* Minimum length to use multiple lines to represent the value.
|
||||
*
|
||||
* Default: `40`
|
||||
*/
|
||||
minMultiLineLength: number
|
||||
}
|
||||
fold: {
|
||||
/**
|
||||
* Maximum line width (set to `0` to disable folding).
|
||||
*
|
||||
* Default: `80`
|
||||
*/
|
||||
lineWidth: number
|
||||
/**
|
||||
* Minimum width for highly-indented content.
|
||||
*
|
||||
* Default: `20`
|
||||
*/
|
||||
minContentWidth: number
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export class Document extends Collection {
|
||||
cstNode?: CST.Document
|
||||
constructor(options?: Options)
|
||||
tag: never
|
||||
directivesEndMarker?: boolean
|
||||
type: Type.DOCUMENT
|
||||
/**
|
||||
* Anchors associated with the document's nodes;
|
||||
* also provides alias & merge node creators.
|
||||
*/
|
||||
anchors: Document.Anchors
|
||||
/** The document contents. */
|
||||
contents: any
|
||||
/** Errors encountered during parsing. */
|
||||
errors: YAMLError[]
|
||||
/**
|
||||
* The schema used with the document. Use `setSchema()` to change or
|
||||
* initialise.
|
||||
*/
|
||||
schema?: Schema
|
||||
/**
|
||||
* Array of prefixes; each will have a string `handle` that
|
||||
* starts and ends with `!` and a string `prefix` that the handle will be replaced by.
|
||||
*/
|
||||
tagPrefixes: Document.TagPrefix[]
|
||||
/**
|
||||
* The parsed version of the source document;
|
||||
* if true-ish, stringified output will include a `%YAML` directive.
|
||||
*/
|
||||
version?: string
|
||||
/** Warnings encountered during parsing. */
|
||||
warnings: YAMLWarning[]
|
||||
/**
|
||||
* List the tags used in the document that are not in the default
|
||||
* `tag:yaml.org,2002:` namespace.
|
||||
*/
|
||||
listNonDefaultTags(): string[]
|
||||
/** Parse a CST into this document */
|
||||
parse(cst: CST.Document): this
|
||||
/**
|
||||
* When a document is created with `new YAML.Document()`, the schema object is
|
||||
* not set as it may be influenced by parsed directives; call this with no
|
||||
* arguments to set it manually, or with arguments to change the schema used
|
||||
* by the document.
|
||||
**/
|
||||
setSchema(
|
||||
id?: Options['version'] | Schema.Name,
|
||||
customTags?: (Schema.TagId | Schema.Tag)[]
|
||||
): void
|
||||
/** Set `handle` as a shorthand string for the `prefix` tag namespace. */
|
||||
setTagPrefix(handle: string, prefix: string): void
|
||||
/**
|
||||
* A plain JavaScript representation of the document `contents`.
|
||||
*
|
||||
* @param arg Used by `JSON.stringify` to indicate the array index or property
|
||||
* name. If its value is a `string` and the document `contents` has a scalar
|
||||
* value, the `keepBlobsInJSON` option has no effect.
|
||||
* @param onAnchor If defined, called with the resolved `value` and reference
|
||||
* `count` for each anchor in the document.
|
||||
* */
|
||||
toJSON(arg?: string, onAnchor?: (value: any, count: number) => void): any
|
||||
/** A YAML representation of the document. */
|
||||
toString(): string
|
||||
}
|
||||
|
||||
export namespace Document {
|
||||
interface Parsed extends Document {
|
||||
contents: Scalar | YAMLMap | YAMLSeq | null
|
||||
/** The schema used with the document. */
|
||||
schema: Schema
|
||||
}
|
||||
|
||||
interface Anchors {
|
||||
/**
|
||||
* Create a new `Alias` node, adding the required anchor for `node`.
|
||||
* If `name` is empty, a new anchor name will be generated.
|
||||
*/
|
||||
createAlias(node: Node, name?: string): Alias
|
||||
/**
|
||||
* Create a new `Merge` node with the given source nodes.
|
||||
* Non-`Alias` sources will be automatically wrapped.
|
||||
*/
|
||||
createMergePair(...nodes: Node[]): Merge
|
||||
/** The anchor name associated with `node`, if set. */
|
||||
getName(node: Node): undefined | string
|
||||
/** List of all defined anchor names. */
|
||||
getNames(): string[]
|
||||
/** The node associated with the anchor `name`, if set. */
|
||||
getNode(name: string): undefined | Node
|
||||
/**
|
||||
* Find an available anchor name with the given `prefix` and a
|
||||
* numerical suffix.
|
||||
*/
|
||||
newName(prefix: string): string
|
||||
/**
|
||||
* Associate an anchor with `node`. If `name` is empty, a new name will be generated.
|
||||
* To remove an anchor, use `setAnchor(null, name)`.
|
||||
*/
|
||||
setAnchor(node: Node | null, name?: string): void | string
|
||||
}
|
||||
|
||||
interface TagPrefix {
|
||||
handle: string
|
||||
prefix: string
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Recursively turns objects into collections. Generic objects as well as `Map`
|
||||
* and its descendants become mappings, while arrays and other iterable objects
|
||||
* result in sequences.
|
||||
*
|
||||
* The primary purpose of this function is to enable attaching comments or other
|
||||
* metadata to a value, or to otherwise exert more fine-grained control over the
|
||||
* stringified output. To that end, you'll need to assign its return value to
|
||||
* the `contents` of a Document (or somewhere within said contents), as the
|
||||
* document's schema is required for YAML string output.
|
||||
*
|
||||
* @param wrapScalars If undefined or `true`, also wraps plain values in
|
||||
* `Scalar` objects; if `false` and `value` is not an object, it will be
|
||||
* returned directly.
|
||||
* @param tag Use to specify the collection type, e.g. `"!!omap"`. Note that
|
||||
* this requires the corresponding tag to be available based on the default
|
||||
* options. To use a specific document's schema, use `doc.schema.createNode`.
|
||||
*/
|
||||
export function createNode(
|
||||
value: any,
|
||||
wrapScalars?: true,
|
||||
tag?: string
|
||||
): YAMLMap | YAMLSeq | Scalar
|
||||
|
||||
/**
|
||||
* YAML.createNode recursively turns objects into Map and arrays to Seq collections.
|
||||
* Its primary use is to enable attaching comments or other metadata to a value,
|
||||
* or to otherwise exert more fine-grained control over the stringified output.
|
||||
*
|
||||
* Doesn't wrap plain values in Scalar objects.
|
||||
*/
|
||||
export function createNode(
|
||||
value: any,
|
||||
wrapScalars: false,
|
||||
tag?: string
|
||||
): YAMLMap | YAMLSeq | string | number | boolean | null
|
||||
|
||||
/**
|
||||
* Parse an input string into a single YAML.Document.
|
||||
*/
|
||||
export function parseDocument(str: string, options?: Options): Document.Parsed
|
||||
|
||||
/**
|
||||
* Parse the input as a stream of YAML documents.
|
||||
*
|
||||
* Documents should be separated from each other by `...` or `---` marker lines.
|
||||
*/
|
||||
export function parseAllDocuments(
|
||||
str: string,
|
||||
options?: Options
|
||||
): Document.Parsed[]
|
||||
|
||||
/**
|
||||
* Parse an input string into JavaScript.
|
||||
*
|
||||
* Only supports input consisting of a single YAML document; for multi-document
|
||||
* support you should use `YAML.parseAllDocuments`. May throw on error, and may
|
||||
* log warnings using `console.warn`.
|
||||
*
|
||||
* @param str A string with YAML formatting.
|
||||
* @returns The value will match the type of the root value of the parsed YAML
|
||||
* document, so Maps become objects, Sequences arrays, and scalars result in
|
||||
* nulls, booleans, numbers and strings.
|
||||
*/
|
||||
export function parse(str: string, options?: Options): any
|
||||
|
||||
/**
|
||||
* @returns Will always include \n as the last character, as is expected of YAML documents.
|
||||
*/
|
||||
export function stringify(value: any, options?: Options): string
|
||||
1
node_modules/postcss-load-config/node_modules/yaml/index.js
generated
vendored
1
node_modules/postcss-load-config/node_modules/yaml/index.js
generated
vendored
@ -1 +0,0 @@
|
||||
module.exports = require('./dist').YAML
|
||||
2
node_modules/postcss-load-config/node_modules/yaml/map.js
generated
vendored
2
node_modules/postcss-load-config/node_modules/yaml/map.js
generated
vendored
@ -1,2 +0,0 @@
|
||||
module.exports = require('./dist/types').YAMLMap
|
||||
require('./dist/legacy-exports').warnFileDeprecation(__filename)
|
||||
106
node_modules/postcss-load-config/node_modules/yaml/package.json
generated
vendored
106
node_modules/postcss-load-config/node_modules/yaml/package.json
generated
vendored
@ -1,106 +0,0 @@
|
||||
{
|
||||
"name": "yaml",
|
||||
"version": "1.10.2",
|
||||
"license": "ISC",
|
||||
"author": "Eemeli Aro <eemeli@gmail.com>",
|
||||
"repository": "github:eemeli/yaml",
|
||||
"description": "JavaScript parser and stringifier for YAML",
|
||||
"keywords": [
|
||||
"YAML",
|
||||
"parser",
|
||||
"stringifier"
|
||||
],
|
||||
"homepage": "https://eemeli.org/yaml/v1/",
|
||||
"files": [
|
||||
"browser/",
|
||||
"dist/",
|
||||
"types/",
|
||||
"*.d.ts",
|
||||
"*.js",
|
||||
"*.mjs",
|
||||
"!*config.js"
|
||||
],
|
||||
"type": "commonjs",
|
||||
"main": "./index.js",
|
||||
"browser": {
|
||||
"./index.js": "./browser/index.js",
|
||||
"./map.js": "./browser/map.js",
|
||||
"./pair.js": "./browser/pair.js",
|
||||
"./parse-cst.js": "./browser/parse-cst.js",
|
||||
"./scalar.js": "./browser/scalar.js",
|
||||
"./schema.js": "./browser/schema.js",
|
||||
"./seq.js": "./browser/seq.js",
|
||||
"./types.js": "./browser/types.js",
|
||||
"./types.mjs": "./browser/types.js",
|
||||
"./types/binary.js": "./browser/types/binary.js",
|
||||
"./types/omap.js": "./browser/types/omap.js",
|
||||
"./types/pairs.js": "./browser/types/pairs.js",
|
||||
"./types/set.js": "./browser/types/set.js",
|
||||
"./types/timestamp.js": "./browser/types/timestamp.js",
|
||||
"./util.js": "./browser/util.js",
|
||||
"./util.mjs": "./browser/util.js"
|
||||
},
|
||||
"exports": {
|
||||
".": "./index.js",
|
||||
"./parse-cst": "./parse-cst.js",
|
||||
"./types": [
|
||||
{
|
||||
"import": "./types.mjs"
|
||||
},
|
||||
"./types.js"
|
||||
],
|
||||
"./util": [
|
||||
{
|
||||
"import": "./util.mjs"
|
||||
},
|
||||
"./util.js"
|
||||
],
|
||||
"./": "./"
|
||||
},
|
||||
"scripts": {
|
||||
"build": "npm run build:node && npm run build:browser",
|
||||
"build:browser": "rollup -c rollup.browser-config.js",
|
||||
"build:node": "rollup -c rollup.node-config.js",
|
||||
"clean": "git clean -fdxe node_modules",
|
||||
"lint": "eslint src/",
|
||||
"prettier": "prettier --write .",
|
||||
"start": "cross-env TRACE_LEVEL=log npm run build:node && node -i -e 'YAML=require(\".\")'",
|
||||
"test": "jest",
|
||||
"test:browsers": "cd playground && npm test",
|
||||
"test:dist": "npm run build:node && jest",
|
||||
"test:types": "tsc --lib ES2017 --noEmit tests/typings.ts",
|
||||
"docs:install": "cd docs-slate && bundle install",
|
||||
"docs:deploy": "cd docs-slate && ./deploy.sh",
|
||||
"docs": "cd docs-slate && bundle exec middleman server",
|
||||
"preversion": "npm test && npm run build",
|
||||
"prepublishOnly": "npm run clean && npm test && npm run build"
|
||||
},
|
||||
"browserslist": "> 0.5%, not dead",
|
||||
"prettier": {
|
||||
"arrowParens": "avoid",
|
||||
"semi": false,
|
||||
"singleQuote": true,
|
||||
"trailingComma": "none"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/core": "^7.12.10",
|
||||
"@babel/plugin-proposal-class-properties": "^7.12.1",
|
||||
"@babel/preset-env": "^7.12.11",
|
||||
"@rollup/plugin-babel": "^5.2.3",
|
||||
"babel-eslint": "^10.1.0",
|
||||
"babel-jest": "^26.6.3",
|
||||
"babel-plugin-trace": "^1.1.0",
|
||||
"common-tags": "^1.8.0",
|
||||
"cross-env": "^7.0.3",
|
||||
"eslint": "^7.19.0",
|
||||
"eslint-config-prettier": "^7.2.0",
|
||||
"fast-check": "^2.12.0",
|
||||
"jest": "^26.6.3",
|
||||
"prettier": "^2.2.1",
|
||||
"rollup": "^2.38.2",
|
||||
"typescript": "^4.1.3"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 6"
|
||||
}
|
||||
}
|
||||
2
node_modules/postcss-load-config/node_modules/yaml/pair.js
generated
vendored
2
node_modules/postcss-load-config/node_modules/yaml/pair.js
generated
vendored
@ -1,2 +0,0 @@
|
||||
module.exports = require('./dist/types').Pair
|
||||
require('./dist/legacy-exports').warnFileDeprecation(__filename)
|
||||
191
node_modules/postcss-load-config/node_modules/yaml/parse-cst.d.ts
generated
vendored
191
node_modules/postcss-load-config/node_modules/yaml/parse-cst.d.ts
generated
vendored
@ -1,191 +0,0 @@
|
||||
import { Type, YAMLSyntaxError } from './util'
|
||||
|
||||
export default function parseCST(str: string): ParsedCST
|
||||
|
||||
export interface ParsedCST extends Array<CST.Document> {
|
||||
setOrigRanges(): boolean
|
||||
}
|
||||
|
||||
export namespace CST {
|
||||
interface Range {
|
||||
start: number
|
||||
end: number
|
||||
origStart?: number
|
||||
origEnd?: number
|
||||
isEmpty(): boolean
|
||||
}
|
||||
|
||||
interface ParseContext {
|
||||
/** Node starts at beginning of line */
|
||||
atLineStart: boolean
|
||||
/** true if currently in a collection context */
|
||||
inCollection: boolean
|
||||
/** true if currently in a flow context */
|
||||
inFlow: boolean
|
||||
/** Current level of indentation */
|
||||
indent: number
|
||||
/** Start of the current line */
|
||||
lineStart: number
|
||||
/** The parent of the node */
|
||||
parent: Node
|
||||
/** Source of the YAML document */
|
||||
src: string
|
||||
}
|
||||
|
||||
interface Node {
|
||||
context: ParseContext | null
|
||||
/** if not null, indicates a parser failure */
|
||||
error: YAMLSyntaxError | null
|
||||
/** span of context.src parsed into this node */
|
||||
range: Range | null
|
||||
valueRange: Range | null
|
||||
/** anchors, tags and comments */
|
||||
props: Range[]
|
||||
/** specific node type */
|
||||
type: Type
|
||||
/** if non-null, overrides source value */
|
||||
value: string | null
|
||||
|
||||
readonly anchor: string | null
|
||||
readonly comment: string | null
|
||||
readonly hasComment: boolean
|
||||
readonly hasProps: boolean
|
||||
readonly jsonLike: boolean
|
||||
readonly rangeAsLinePos: null | {
|
||||
start: { line: number; col: number }
|
||||
end?: { line: number; col: number }
|
||||
}
|
||||
readonly rawValue: string | null
|
||||
readonly tag:
|
||||
| null
|
||||
| { verbatim: string }
|
||||
| { handle: string; suffix: string }
|
||||
readonly valueRangeContainsNewline: boolean
|
||||
}
|
||||
|
||||
interface Alias extends Node {
|
||||
type: Type.ALIAS
|
||||
/** contain the anchor without the * prefix */
|
||||
readonly rawValue: string
|
||||
}
|
||||
|
||||
type Scalar = BlockValue | PlainValue | QuoteValue
|
||||
|
||||
interface BlockValue extends Node {
|
||||
type: Type.BLOCK_FOLDED | Type.BLOCK_LITERAL
|
||||
chomping: 'CLIP' | 'KEEP' | 'STRIP'
|
||||
blockIndent: number | null
|
||||
header: Range
|
||||
readonly strValue: string | null
|
||||
}
|
||||
|
||||
interface BlockFolded extends BlockValue {
|
||||
type: Type.BLOCK_FOLDED
|
||||
}
|
||||
|
||||
interface BlockLiteral extends BlockValue {
|
||||
type: Type.BLOCK_LITERAL
|
||||
}
|
||||
|
||||
interface PlainValue extends Node {
|
||||
type: Type.PLAIN
|
||||
readonly strValue: string | null
|
||||
}
|
||||
|
||||
interface QuoteValue extends Node {
|
||||
type: Type.QUOTE_DOUBLE | Type.QUOTE_SINGLE
|
||||
readonly strValue:
|
||||
| null
|
||||
| string
|
||||
| { str: string; errors: YAMLSyntaxError[] }
|
||||
}
|
||||
|
||||
interface QuoteDouble extends QuoteValue {
|
||||
type: Type.QUOTE_DOUBLE
|
||||
}
|
||||
|
||||
interface QuoteSingle extends QuoteValue {
|
||||
type: Type.QUOTE_SINGLE
|
||||
}
|
||||
|
||||
interface Comment extends Node {
|
||||
type: Type.COMMENT
|
||||
readonly anchor: null
|
||||
readonly comment: string
|
||||
readonly rawValue: null
|
||||
readonly tag: null
|
||||
}
|
||||
|
||||
interface BlankLine extends Node {
|
||||
type: Type.BLANK_LINE
|
||||
}
|
||||
|
||||
interface MapItem extends Node {
|
||||
type: Type.MAP_KEY | Type.MAP_VALUE
|
||||
node: ContentNode | null
|
||||
}
|
||||
|
||||
interface MapKey extends MapItem {
|
||||
type: Type.MAP_KEY
|
||||
}
|
||||
|
||||
interface MapValue extends MapItem {
|
||||
type: Type.MAP_VALUE
|
||||
}
|
||||
|
||||
interface Map extends Node {
|
||||
type: Type.MAP
|
||||
/** implicit keys are not wrapped */
|
||||
items: Array<BlankLine | Comment | Alias | Scalar | MapItem>
|
||||
}
|
||||
|
||||
interface SeqItem extends Node {
|
||||
type: Type.SEQ_ITEM
|
||||
node: ContentNode | null
|
||||
}
|
||||
|
||||
interface Seq extends Node {
|
||||
type: Type.SEQ
|
||||
items: Array<BlankLine | Comment | SeqItem>
|
||||
}
|
||||
|
||||
interface FlowChar {
|
||||
char: '{' | '}' | '[' | ']' | ',' | '?' | ':'
|
||||
offset: number
|
||||
origOffset?: number
|
||||
}
|
||||
|
||||
interface FlowCollection extends Node {
|
||||
type: Type.FLOW_MAP | Type.FLOW_SEQ
|
||||
items: Array<
|
||||
FlowChar | BlankLine | Comment | Alias | Scalar | FlowCollection
|
||||
>
|
||||
}
|
||||
|
||||
interface FlowMap extends FlowCollection {
|
||||
type: Type.FLOW_MAP
|
||||
}
|
||||
|
||||
interface FlowSeq extends FlowCollection {
|
||||
type: Type.FLOW_SEQ
|
||||
}
|
||||
|
||||
type ContentNode = Alias | Scalar | Map | Seq | FlowCollection
|
||||
|
||||
interface Directive extends Node {
|
||||
type: Type.DIRECTIVE
|
||||
name: string
|
||||
readonly anchor: null
|
||||
readonly parameters: string[]
|
||||
readonly tag: null
|
||||
}
|
||||
|
||||
interface Document extends Node {
|
||||
type: Type.DOCUMENT
|
||||
directives: Array<BlankLine | Comment | Directive>
|
||||
contents: Array<BlankLine | Comment | ContentNode>
|
||||
readonly anchor: null
|
||||
readonly comment: null
|
||||
readonly tag: null
|
||||
}
|
||||
}
|
||||
1
node_modules/postcss-load-config/node_modules/yaml/parse-cst.js
generated
vendored
1
node_modules/postcss-load-config/node_modules/yaml/parse-cst.js
generated
vendored
@ -1 +0,0 @@
|
||||
module.exports = require('./dist/parse-cst').parse
|
||||
2
node_modules/postcss-load-config/node_modules/yaml/scalar.js
generated
vendored
2
node_modules/postcss-load-config/node_modules/yaml/scalar.js
generated
vendored
@ -1,2 +0,0 @@
|
||||
module.exports = require('./dist/types').Scalar
|
||||
require('./dist/legacy-exports').warnFileDeprecation(__filename)
|
||||
9
node_modules/postcss-load-config/node_modules/yaml/schema.js
generated
vendored
9
node_modules/postcss-load-config/node_modules/yaml/schema.js
generated
vendored
@ -1,9 +0,0 @@
|
||||
const types = require('./dist/types')
|
||||
const util = require('./dist/util')
|
||||
|
||||
module.exports = types.Schema
|
||||
module.exports.nullOptions = types.nullOptions
|
||||
module.exports.strOptions = types.strOptions
|
||||
module.exports.stringify = util.stringifyString
|
||||
|
||||
require('./dist/legacy-exports').warnFileDeprecation(__filename)
|
||||
2
node_modules/postcss-load-config/node_modules/yaml/seq.js
generated
vendored
2
node_modules/postcss-load-config/node_modules/yaml/seq.js
generated
vendored
@ -1,2 +0,0 @@
|
||||
module.exports = require('./dist/types').YAMLSeq
|
||||
require('./dist/legacy-exports').warnFileDeprecation(__filename)
|
||||
407
node_modules/postcss-load-config/node_modules/yaml/types.d.ts
generated
vendored
407
node_modules/postcss-load-config/node_modules/yaml/types.d.ts
generated
vendored
@ -1,407 +0,0 @@
|
||||
import { Document, scalarOptions } from './index'
|
||||
import { CST } from './parse-cst'
|
||||
import { Type } from './util'
|
||||
|
||||
export const binaryOptions: scalarOptions.Binary
|
||||
export const boolOptions: scalarOptions.Bool
|
||||
export const intOptions: scalarOptions.Int
|
||||
export const nullOptions: scalarOptions.Null
|
||||
export const strOptions: scalarOptions.Str
|
||||
|
||||
export class Schema {
|
||||
/** Default: `'tag:yaml.org,2002:'` */
|
||||
static defaultPrefix: string
|
||||
static defaultTags: {
|
||||
/** Default: `'tag:yaml.org,2002:map'` */
|
||||
MAP: string
|
||||
/** Default: `'tag:yaml.org,2002:seq'` */
|
||||
SEQ: string
|
||||
/** Default: `'tag:yaml.org,2002:str'` */
|
||||
STR: string
|
||||
}
|
||||
constructor(options: Schema.Options)
|
||||
/**
|
||||
* Convert any value into a `Node` using this schema, recursively turning
|
||||
* objects into collections.
|
||||
*
|
||||
* @param wrapScalars If `true`, also wraps plain values in `Scalar` objects;
|
||||
* if undefined or `false` and `value` is not an object, it will be returned
|
||||
* directly.
|
||||
* @param tag Use to specify the collection type, e.g. `"!!omap"`. Note that
|
||||
* this requires the corresponding tag to be available in this schema.
|
||||
*/
|
||||
createNode(
|
||||
value: any,
|
||||
wrapScalars?: boolean,
|
||||
tag?: string,
|
||||
ctx?: Schema.CreateNodeContext
|
||||
): Node
|
||||
/**
|
||||
* Convert a key and a value into a `Pair` using this schema, recursively
|
||||
* wrapping all values as `Scalar` or `Collection` nodes.
|
||||
*
|
||||
* @param ctx To not wrap scalars, use a context `{ wrapScalars: false }`
|
||||
*/
|
||||
createPair(key: any, value: any, ctx?: Schema.CreateNodeContext): Pair
|
||||
merge: boolean
|
||||
name: Schema.Name
|
||||
sortMapEntries: ((a: Pair, b: Pair) => number) | null
|
||||
tags: Schema.Tag[]
|
||||
}
|
||||
|
||||
export namespace Schema {
|
||||
type Name = 'core' | 'failsafe' | 'json' | 'yaml-1.1'
|
||||
|
||||
interface Options {
|
||||
/**
|
||||
* Array of additional tags to include in the schema, or a function that may
|
||||
* modify the schema's base tag array.
|
||||
*/
|
||||
customTags?: (TagId | Tag)[] | ((tags: Tag[]) => Tag[])
|
||||
/**
|
||||
* Enable support for `<<` merge keys.
|
||||
*
|
||||
* Default: `false` for YAML 1.2, `true` for earlier versions
|
||||
*/
|
||||
merge?: boolean
|
||||
/**
|
||||
* The base schema to use.
|
||||
*
|
||||
* Default: `"core"` for YAML 1.2, `"yaml-1.1"` for earlier versions
|
||||
*/
|
||||
schema?: Name
|
||||
/**
|
||||
* When stringifying, sort map entries. If `true`, sort by comparing key values with `<`.
|
||||
*
|
||||
* Default: `false`
|
||||
*/
|
||||
sortMapEntries?: boolean | ((a: Pair, b: Pair) => number)
|
||||
/**
|
||||
* @deprecated Use `customTags` instead.
|
||||
*/
|
||||
tags?: Options['customTags']
|
||||
}
|
||||
|
||||
interface CreateNodeContext {
|
||||
wrapScalars?: boolean
|
||||
[key: string]: any
|
||||
}
|
||||
|
||||
interface StringifyContext {
|
||||
forceBlockIndent?: boolean
|
||||
implicitKey?: boolean
|
||||
indent?: string
|
||||
indentAtStart?: number
|
||||
inFlow?: boolean
|
||||
[key: string]: any
|
||||
}
|
||||
|
||||
type TagId =
|
||||
| 'binary'
|
||||
| 'bool'
|
||||
| 'float'
|
||||
| 'floatExp'
|
||||
| 'floatNaN'
|
||||
| 'floatTime'
|
||||
| 'int'
|
||||
| 'intHex'
|
||||
| 'intOct'
|
||||
| 'intTime'
|
||||
| 'null'
|
||||
| 'omap'
|
||||
| 'pairs'
|
||||
| 'set'
|
||||
| 'timestamp'
|
||||
|
||||
type Tag = CustomTag | DefaultTag
|
||||
|
||||
interface BaseTag {
|
||||
/**
|
||||
* An optional factory function, used e.g. by collections when wrapping JS objects as AST nodes.
|
||||
*/
|
||||
createNode?: (
|
||||
schema: Schema,
|
||||
value: any,
|
||||
ctx: Schema.CreateNodeContext
|
||||
) => YAMLMap | YAMLSeq | Scalar
|
||||
/**
|
||||
* If a tag has multiple forms that should be parsed and/or stringified differently, use `format` to identify them.
|
||||
*/
|
||||
format?: string
|
||||
/**
|
||||
* Used by `YAML.createNode` to detect your data type, e.g. using `typeof` or
|
||||
* `instanceof`.
|
||||
*/
|
||||
identify(value: any): boolean
|
||||
/**
|
||||
* The `Node` child class that implements this tag. Required for collections and tags that have overlapping JS representations.
|
||||
*/
|
||||
nodeClass?: new () => any
|
||||
/**
|
||||
* Used by some tags to configure their stringification, where applicable.
|
||||
*/
|
||||
options?: object
|
||||
/**
|
||||
* Optional function stringifying the AST node in the current context. If your
|
||||
* data includes a suitable `.toString()` method, you can probably leave this
|
||||
* undefined and use the default stringifier.
|
||||
*
|
||||
* @param item The node being stringified.
|
||||
* @param ctx Contains the stringifying context variables.
|
||||
* @param onComment Callback to signal that the stringifier includes the
|
||||
* item's comment in its output.
|
||||
* @param onChompKeep Callback to signal that the output uses a block scalar
|
||||
* type with the `+` chomping indicator.
|
||||
*/
|
||||
stringify?: (
|
||||
item: Node,
|
||||
ctx: Schema.StringifyContext,
|
||||
onComment?: () => void,
|
||||
onChompKeep?: () => void
|
||||
) => string
|
||||
/**
|
||||
* The identifier for your data type, with which its stringified form will be
|
||||
* prefixed. Should either be a !-prefixed local `!tag`, or a fully qualified
|
||||
* `tag:domain,date:foo`.
|
||||
*/
|
||||
tag: string
|
||||
}
|
||||
|
||||
interface CustomTag extends BaseTag {
|
||||
/**
|
||||
* A JavaScript class that should be matched to this tag, e.g. `Date` for `!!timestamp`.
|
||||
* @deprecated Use `Tag.identify` instead
|
||||
*/
|
||||
class?: new () => any
|
||||
/**
|
||||
* Turns a CST node into an AST node. If returning a non-`Node` value, the
|
||||
* output will be wrapped as a `Scalar`.
|
||||
*/
|
||||
resolve(doc: Document, cstNode: CST.Node): Node | any
|
||||
}
|
||||
|
||||
interface DefaultTag extends BaseTag {
|
||||
/**
|
||||
* If `true`, together with `test` allows for values to be stringified without
|
||||
* an explicit tag. For most cases, it's unlikely that you'll actually want to
|
||||
* use this, even if you first think you do.
|
||||
*/
|
||||
default: true
|
||||
/**
|
||||
* Alternative form used by default tags; called with `test` match results.
|
||||
*/
|
||||
resolve(...match: string[]): Node | any
|
||||
/**
|
||||
* Together with `default` allows for values to be stringified without an
|
||||
* explicit tag and detected using a regular expression. For most cases, it's
|
||||
* unlikely that you'll actually want to use these, even if you first think
|
||||
* you do.
|
||||
*/
|
||||
test: RegExp
|
||||
}
|
||||
}
|
||||
|
||||
export class Node {
|
||||
/** A comment on or immediately after this */
|
||||
comment?: string | null
|
||||
/** A comment before this */
|
||||
commentBefore?: string | null
|
||||
/** Only available when `keepCstNodes` is set to `true` */
|
||||
cstNode?: CST.Node
|
||||
/**
|
||||
* The [start, end] range of characters of the source parsed
|
||||
* into this node (undefined for pairs or if not parsed)
|
||||
*/
|
||||
range?: [number, number] | null
|
||||
/** A blank line before this node and its commentBefore */
|
||||
spaceBefore?: boolean
|
||||
/** A fully qualified tag, if required */
|
||||
tag?: string
|
||||
/** A plain JS representation of this node */
|
||||
toJSON(arg?: any): any
|
||||
/** The type of this node */
|
||||
type?: Type | Pair.Type
|
||||
}
|
||||
|
||||
export class Scalar extends Node {
|
||||
constructor(value: any)
|
||||
type?: Scalar.Type
|
||||
/**
|
||||
* By default (undefined), numbers use decimal notation.
|
||||
* The YAML 1.2 core schema only supports 'HEX' and 'OCT'.
|
||||
*/
|
||||
format?: 'BIN' | 'HEX' | 'OCT' | 'TIME'
|
||||
value: any
|
||||
toJSON(arg?: any, ctx?: AST.NodeToJsonContext): any
|
||||
toString(): string
|
||||
}
|
||||
export namespace Scalar {
|
||||
type Type =
|
||||
| Type.BLOCK_FOLDED
|
||||
| Type.BLOCK_LITERAL
|
||||
| Type.PLAIN
|
||||
| Type.QUOTE_DOUBLE
|
||||
| Type.QUOTE_SINGLE
|
||||
}
|
||||
|
||||
export class Alias extends Node {
|
||||
type: Type.ALIAS
|
||||
source: Node
|
||||
cstNode?: CST.Alias
|
||||
toString(ctx: Schema.StringifyContext): string
|
||||
}
|
||||
|
||||
export class Pair extends Node {
|
||||
constructor(key: any, value?: any)
|
||||
type: Pair.Type.PAIR | Pair.Type.MERGE_PAIR
|
||||
/** Always Node or null when parsed, but can be set to anything. */
|
||||
key: any
|
||||
/** Always Node or null when parsed, but can be set to anything. */
|
||||
value: any
|
||||
cstNode?: never // no corresponding cstNode
|
||||
toJSON(arg?: any, ctx?: AST.NodeToJsonContext): object | Map<any, any>
|
||||
toString(
|
||||
ctx?: Schema.StringifyContext,
|
||||
onComment?: () => void,
|
||||
onChompKeep?: () => void
|
||||
): string
|
||||
}
|
||||
export namespace Pair {
|
||||
enum Type {
|
||||
PAIR = 'PAIR',
|
||||
MERGE_PAIR = 'MERGE_PAIR'
|
||||
}
|
||||
}
|
||||
|
||||
export class Merge extends Pair {
|
||||
type: Pair.Type.MERGE_PAIR
|
||||
/** Always Scalar('<<'), defined by the type specification */
|
||||
key: AST.PlainValue
|
||||
/** Always YAMLSeq<Alias(Map)>, stringified as *A if length = 1 */
|
||||
value: YAMLSeq
|
||||
toString(ctx?: Schema.StringifyContext, onComment?: () => void): string
|
||||
}
|
||||
|
||||
export class Collection extends Node {
|
||||
type?: Type.MAP | Type.FLOW_MAP | Type.SEQ | Type.FLOW_SEQ | Type.DOCUMENT
|
||||
items: any[]
|
||||
schema?: Schema
|
||||
|
||||
/**
|
||||
* Adds a value to the collection. For `!!map` and `!!omap` the value must
|
||||
* be a Pair instance or a `{ key, value }` object, which may not have a key
|
||||
* that already exists in the map.
|
||||
*/
|
||||
add(value: any): void
|
||||
addIn(path: Iterable<any>, value: any): void
|
||||
/**
|
||||
* Removes a value from the collection.
|
||||
* @returns `true` if the item was found and removed.
|
||||
*/
|
||||
delete(key: any): boolean
|
||||
deleteIn(path: Iterable<any>): boolean
|
||||
/**
|
||||
* Returns item at `key`, or `undefined` if not found. By default unwraps
|
||||
* scalar values from their surrounding node; to disable set `keepScalar` to
|
||||
* `true` (collections are always returned intact).
|
||||
*/
|
||||
get(key: any, keepScalar?: boolean): any
|
||||
getIn(path: Iterable<any>, keepScalar?: boolean): any
|
||||
/**
|
||||
* Checks if the collection includes a value with the key `key`.
|
||||
*/
|
||||
has(key: any): boolean
|
||||
hasIn(path: Iterable<any>): boolean
|
||||
/**
|
||||
* Sets a value in this collection. For `!!set`, `value` needs to be a
|
||||
* boolean to add/remove the item from the set.
|
||||
*/
|
||||
set(key: any, value: any): void
|
||||
setIn(path: Iterable<any>, value: any): void
|
||||
}
|
||||
|
||||
export class YAMLMap extends Collection {
|
||||
type?: Type.FLOW_MAP | Type.MAP
|
||||
items: Array<Pair>
|
||||
hasAllNullValues(): boolean
|
||||
toJSON(arg?: any, ctx?: AST.NodeToJsonContext): object | Map<any, any>
|
||||
toString(
|
||||
ctx?: Schema.StringifyContext,
|
||||
onComment?: () => void,
|
||||
onChompKeep?: () => void
|
||||
): string
|
||||
}
|
||||
|
||||
export class YAMLSeq extends Collection {
|
||||
type?: Type.FLOW_SEQ | Type.SEQ
|
||||
delete(key: number | string | Scalar): boolean
|
||||
get(key: number | string | Scalar, keepScalar?: boolean): any
|
||||
has(key: number | string | Scalar): boolean
|
||||
set(key: number | string | Scalar, value: any): void
|
||||
hasAllNullValues(): boolean
|
||||
toJSON(arg?: any, ctx?: AST.NodeToJsonContext): any[]
|
||||
toString(
|
||||
ctx?: Schema.StringifyContext,
|
||||
onComment?: () => void,
|
||||
onChompKeep?: () => void
|
||||
): string
|
||||
}
|
||||
|
||||
export namespace AST {
|
||||
interface NodeToJsonContext {
|
||||
anchors?: any[]
|
||||
doc: Document
|
||||
keep?: boolean
|
||||
mapAsMap?: boolean
|
||||
maxAliasCount?: number
|
||||
onCreate?: (node: Node) => void
|
||||
[key: string]: any
|
||||
}
|
||||
|
||||
interface BlockFolded extends Scalar {
|
||||
type: Type.BLOCK_FOLDED
|
||||
cstNode?: CST.BlockFolded
|
||||
}
|
||||
|
||||
interface BlockLiteral extends Scalar {
|
||||
type: Type.BLOCK_LITERAL
|
||||
cstNode?: CST.BlockLiteral
|
||||
}
|
||||
|
||||
interface PlainValue extends Scalar {
|
||||
type: Type.PLAIN
|
||||
cstNode?: CST.PlainValue
|
||||
}
|
||||
|
||||
interface QuoteDouble extends Scalar {
|
||||
type: Type.QUOTE_DOUBLE
|
||||
cstNode?: CST.QuoteDouble
|
||||
}
|
||||
|
||||
interface QuoteSingle extends Scalar {
|
||||
type: Type.QUOTE_SINGLE
|
||||
cstNode?: CST.QuoteSingle
|
||||
}
|
||||
|
||||
interface FlowMap extends YAMLMap {
|
||||
type: Type.FLOW_MAP
|
||||
cstNode?: CST.FlowMap
|
||||
}
|
||||
|
||||
interface BlockMap extends YAMLMap {
|
||||
type: Type.MAP
|
||||
cstNode?: CST.Map
|
||||
}
|
||||
|
||||
interface FlowSeq extends YAMLSeq {
|
||||
type: Type.FLOW_SEQ
|
||||
items: Array<Node>
|
||||
cstNode?: CST.FlowSeq
|
||||
}
|
||||
|
||||
interface BlockSeq extends YAMLSeq {
|
||||
type: Type.SEQ
|
||||
items: Array<Node | null>
|
||||
cstNode?: CST.Seq
|
||||
}
|
||||
}
|
||||
17
node_modules/postcss-load-config/node_modules/yaml/types.js
generated
vendored
17
node_modules/postcss-load-config/node_modules/yaml/types.js
generated
vendored
@ -1,17 +0,0 @@
|
||||
const types = require('./dist/types')
|
||||
|
||||
exports.binaryOptions = types.binaryOptions
|
||||
exports.boolOptions = types.boolOptions
|
||||
exports.intOptions = types.intOptions
|
||||
exports.nullOptions = types.nullOptions
|
||||
exports.strOptions = types.strOptions
|
||||
|
||||
exports.Schema = types.Schema
|
||||
exports.Alias = types.Alias
|
||||
exports.Collection = types.Collection
|
||||
exports.Merge = types.Merge
|
||||
exports.Node = types.Node
|
||||
exports.Pair = types.Pair
|
||||
exports.Scalar = types.Scalar
|
||||
exports.YAMLMap = types.YAMLMap
|
||||
exports.YAMLSeq = types.YAMLSeq
|
||||
17
node_modules/postcss-load-config/node_modules/yaml/types.mjs
generated
vendored
17
node_modules/postcss-load-config/node_modules/yaml/types.mjs
generated
vendored
@ -1,17 +0,0 @@
|
||||
import types from './dist/types.js'
|
||||
|
||||
export const binaryOptions = types.binaryOptions
|
||||
export const boolOptions = types.boolOptions
|
||||
export const intOptions = types.intOptions
|
||||
export const nullOptions = types.nullOptions
|
||||
export const strOptions = types.strOptions
|
||||
|
||||
export const Schema = types.Schema
|
||||
export const Alias = types.Alias
|
||||
export const Collection = types.Collection
|
||||
export const Merge = types.Merge
|
||||
export const Node = types.Node
|
||||
export const Pair = types.Pair
|
||||
export const Scalar = types.Scalar
|
||||
export const YAMLMap = types.YAMLMap
|
||||
export const YAMLSeq = types.YAMLSeq
|
||||
8
node_modules/postcss-load-config/node_modules/yaml/types/binary.js
generated
vendored
8
node_modules/postcss-load-config/node_modules/yaml/types/binary.js
generated
vendored
@ -1,8 +0,0 @@
|
||||
'use strict'
|
||||
Object.defineProperty(exports, '__esModule', { value: true })
|
||||
|
||||
const legacy = require('../dist/legacy-exports')
|
||||
exports.binary = legacy.binary
|
||||
exports.default = [exports.binary]
|
||||
|
||||
legacy.warnFileDeprecation(__filename)
|
||||
3
node_modules/postcss-load-config/node_modules/yaml/types/omap.js
generated
vendored
3
node_modules/postcss-load-config/node_modules/yaml/types/omap.js
generated
vendored
@ -1,3 +0,0 @@
|
||||
const legacy = require('../dist/legacy-exports')
|
||||
module.exports = legacy.omap
|
||||
legacy.warnFileDeprecation(__filename)
|
||||
3
node_modules/postcss-load-config/node_modules/yaml/types/pairs.js
generated
vendored
3
node_modules/postcss-load-config/node_modules/yaml/types/pairs.js
generated
vendored
@ -1,3 +0,0 @@
|
||||
const legacy = require('../dist/legacy-exports')
|
||||
module.exports = legacy.pairs
|
||||
legacy.warnFileDeprecation(__filename)
|
||||
3
node_modules/postcss-load-config/node_modules/yaml/types/set.js
generated
vendored
3
node_modules/postcss-load-config/node_modules/yaml/types/set.js
generated
vendored
@ -1,3 +0,0 @@
|
||||
const legacy = require('../dist/legacy-exports')
|
||||
module.exports = legacy.set
|
||||
legacy.warnFileDeprecation(__filename)
|
||||
10
node_modules/postcss-load-config/node_modules/yaml/types/timestamp.js
generated
vendored
10
node_modules/postcss-load-config/node_modules/yaml/types/timestamp.js
generated
vendored
@ -1,10 +0,0 @@
|
||||
'use strict'
|
||||
Object.defineProperty(exports, '__esModule', { value: true })
|
||||
|
||||
const legacy = require('../dist/legacy-exports')
|
||||
exports.default = [legacy.intTime, legacy.floatTime, legacy.timestamp]
|
||||
exports.floatTime = legacy.floatTime
|
||||
exports.intTime = legacy.intTime
|
||||
exports.timestamp = legacy.timestamp
|
||||
|
||||
legacy.warnFileDeprecation(__filename)
|
||||
86
node_modules/postcss-load-config/node_modules/yaml/util.d.ts
generated
vendored
86
node_modules/postcss-load-config/node_modules/yaml/util.d.ts
generated
vendored
@ -1,86 +0,0 @@
|
||||
import { Document } from './index'
|
||||
import { CST } from './parse-cst'
|
||||
import { AST, Pair, Scalar, Schema } from './types'
|
||||
|
||||
export function findPair(items: any[], key: Scalar | any): Pair | undefined
|
||||
|
||||
export function parseMap(doc: Document, cst: CST.Map): AST.BlockMap
|
||||
export function parseMap(doc: Document, cst: CST.FlowMap): AST.FlowMap
|
||||
export function parseSeq(doc: Document, cst: CST.Seq): AST.BlockSeq
|
||||
export function parseSeq(doc: Document, cst: CST.FlowSeq): AST.FlowSeq
|
||||
|
||||
export function stringifyNumber(item: Scalar): string
|
||||
export function stringifyString(
|
||||
item: Scalar,
|
||||
ctx: Schema.StringifyContext,
|
||||
onComment?: () => void,
|
||||
onChompKeep?: () => void
|
||||
): string
|
||||
|
||||
export function toJSON(
|
||||
value: any,
|
||||
arg?: any,
|
||||
ctx?: Schema.CreateNodeContext
|
||||
): any
|
||||
|
||||
export enum Type {
|
||||
ALIAS = 'ALIAS',
|
||||
BLANK_LINE = 'BLANK_LINE',
|
||||
BLOCK_FOLDED = 'BLOCK_FOLDED',
|
||||
BLOCK_LITERAL = 'BLOCK_LITERAL',
|
||||
COMMENT = 'COMMENT',
|
||||
DIRECTIVE = 'DIRECTIVE',
|
||||
DOCUMENT = 'DOCUMENT',
|
||||
FLOW_MAP = 'FLOW_MAP',
|
||||
FLOW_SEQ = 'FLOW_SEQ',
|
||||
MAP = 'MAP',
|
||||
MAP_KEY = 'MAP_KEY',
|
||||
MAP_VALUE = 'MAP_VALUE',
|
||||
PLAIN = 'PLAIN',
|
||||
QUOTE_DOUBLE = 'QUOTE_DOUBLE',
|
||||
QUOTE_SINGLE = 'QUOTE_SINGLE',
|
||||
SEQ = 'SEQ',
|
||||
SEQ_ITEM = 'SEQ_ITEM'
|
||||
}
|
||||
|
||||
interface LinePos {
|
||||
line: number
|
||||
col: number
|
||||
}
|
||||
|
||||
export class YAMLError extends Error {
|
||||
name:
|
||||
| 'YAMLReferenceError'
|
||||
| 'YAMLSemanticError'
|
||||
| 'YAMLSyntaxError'
|
||||
| 'YAMLWarning'
|
||||
message: string
|
||||
source?: CST.Node
|
||||
|
||||
nodeType?: Type
|
||||
range?: CST.Range
|
||||
linePos?: { start: LinePos; end: LinePos }
|
||||
|
||||
/**
|
||||
* Drops `source` and adds `nodeType`, `range` and `linePos`, as well as
|
||||
* adding details to `message`. Run automatically for document errors if
|
||||
* the `prettyErrors` option is set.
|
||||
*/
|
||||
makePretty(): void
|
||||
}
|
||||
|
||||
export class YAMLReferenceError extends YAMLError {
|
||||
name: 'YAMLReferenceError'
|
||||
}
|
||||
|
||||
export class YAMLSemanticError extends YAMLError {
|
||||
name: 'YAMLSemanticError'
|
||||
}
|
||||
|
||||
export class YAMLSyntaxError extends YAMLError {
|
||||
name: 'YAMLSyntaxError'
|
||||
}
|
||||
|
||||
export class YAMLWarning extends YAMLError {
|
||||
name: 'YAMLWarning'
|
||||
}
|
||||
16
node_modules/postcss-load-config/node_modules/yaml/util.js
generated
vendored
16
node_modules/postcss-load-config/node_modules/yaml/util.js
generated
vendored
@ -1,16 +0,0 @@
|
||||
const util = require('./dist/util')
|
||||
|
||||
exports.findPair = util.findPair
|
||||
exports.toJSON = util.toJSON
|
||||
exports.parseMap = util.parseMap
|
||||
exports.parseSeq = util.parseSeq
|
||||
|
||||
exports.stringifyNumber = util.stringifyNumber
|
||||
exports.stringifyString = util.stringifyString
|
||||
exports.Type = util.Type
|
||||
|
||||
exports.YAMLError = util.YAMLError
|
||||
exports.YAMLReferenceError = util.YAMLReferenceError
|
||||
exports.YAMLSemanticError = util.YAMLSemanticError
|
||||
exports.YAMLSyntaxError = util.YAMLSyntaxError
|
||||
exports.YAMLWarning = util.YAMLWarning
|
||||
18
node_modules/postcss-load-config/node_modules/yaml/util.mjs
generated
vendored
18
node_modules/postcss-load-config/node_modules/yaml/util.mjs
generated
vendored
@ -1,18 +0,0 @@
|
||||
import util from './dist/util.js'
|
||||
|
||||
export const findPair = util.findPair
|
||||
export const toJSON = util.toJSON
|
||||
|
||||
export const parseMap = util.parseMap
|
||||
export const parseSeq = util.parseSeq
|
||||
|
||||
export const stringifyNumber = util.stringifyNumber
|
||||
export const stringifyString = util.stringifyString
|
||||
|
||||
export const Type = util.Type
|
||||
|
||||
export const YAMLError = util.YAMLError
|
||||
export const YAMLReferenceError = util.YAMLReferenceError
|
||||
export const YAMLSemanticError = util.YAMLSemanticError
|
||||
export const YAMLSyntaxError = util.YAMLSyntaxError
|
||||
export const YAMLWarning = util.YAMLWarning
|
||||
21
node_modules/typescript-eslint/LICENSE
generated
vendored
21
node_modules/typescript-eslint/LICENSE
generated
vendored
@ -1,21 +0,0 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2019 typescript-eslint and other contributors
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
12
node_modules/typescript-eslint/README.md
generated
vendored
12
node_modules/typescript-eslint/README.md
generated
vendored
@ -1,12 +0,0 @@
|
||||
# `typescript-eslint`
|
||||
|
||||
> Tooling which enables you to use TypeScript with ESLint
|
||||
|
||||
[](https://www.npmjs.com/package/typescript-eslint)
|
||||
[](https://www.npmjs.com/package/typescript-eslint)
|
||||
|
||||
👉 See **https://typescript-eslint.io/packages/typescript-eslint** for documentation on this package.
|
||||
|
||||
> See https://typescript-eslint.io for general documentation on typescript-eslint, the tooling that allows you to run ESLint and Prettier on TypeScript code.
|
||||
|
||||
<!-- Local path for docs: docs/packages/typescript-eslint.mdx -->
|
||||
154
node_modules/typescript-eslint/dist/index.d.ts
generated
vendored
154
node_modules/typescript-eslint/dist/index.d.ts
generated
vendored
@ -1,154 +0,0 @@
|
||||
import type { TSESLint } from '@typescript-eslint/utils';
|
||||
import type { CompatibleConfig, CompatibleConfigArray, CompatibleParser, CompatiblePlugin } from './compatibility-types';
|
||||
import { config } from './config-helper';
|
||||
export type { FlatConfig } from '@typescript-eslint/utils/ts-eslint';
|
||||
export declare const parser: CompatibleParser;
|
||||
export declare const plugin: CompatiblePlugin;
|
||||
export declare const configs: {
|
||||
/**
|
||||
* Enables each the rules provided as a part of typescript-eslint. Note that many rules are not applicable in all codebases, or are meant to be configured.
|
||||
* @see {@link https://typescript-eslint.io/users/configs#all}
|
||||
*/
|
||||
all: CompatibleConfigArray;
|
||||
/**
|
||||
* A minimal ruleset that sets only the required parser and plugin options needed to run typescript-eslint.
|
||||
* We don't recommend using this directly; instead, extend from an earlier recommended rule.
|
||||
* @see {@link https://typescript-eslint.io/users/configs#base}
|
||||
*/
|
||||
base: CompatibleConfig;
|
||||
/**
|
||||
* A utility ruleset that will disable type-aware linting and all type-aware rules available in our project.
|
||||
* @see {@link https://typescript-eslint.io/users/configs#disable-type-checked}
|
||||
*/
|
||||
disableTypeChecked: CompatibleConfig;
|
||||
/**
|
||||
* This is a compatibility ruleset that:
|
||||
* - disables rules from eslint:recommended which are already handled by TypeScript.
|
||||
* - enables rules that make sense due to TS's typechecking / transpilation.
|
||||
* @see {@link https://typescript-eslint.io/users/configs/#eslint-recommended}
|
||||
*/
|
||||
eslintRecommended: CompatibleConfig;
|
||||
/**
|
||||
* Recommended rules for code correctness that you can drop in without additional configuration.
|
||||
* @see {@link https://typescript-eslint.io/users/configs#recommended}
|
||||
*/
|
||||
recommended: CompatibleConfigArray;
|
||||
/**
|
||||
* Contains all of `recommended` along with additional recommended rules that require type information.
|
||||
* @see {@link https://typescript-eslint.io/users/configs#recommended-type-checked}
|
||||
*/
|
||||
recommendedTypeChecked: CompatibleConfigArray;
|
||||
/**
|
||||
* A version of `recommended` that only contains type-checked rules and disables of any corresponding core ESLint rules.
|
||||
* @see {@link https://typescript-eslint.io/users/configs#recommended-type-checked-only}
|
||||
*/
|
||||
recommendedTypeCheckedOnly: CompatibleConfigArray;
|
||||
/**
|
||||
* Contains all of `recommended`, as well as additional strict rules that can also catch bugs.
|
||||
* @see {@link https://typescript-eslint.io/users/configs#strict}
|
||||
*/
|
||||
strict: CompatibleConfigArray;
|
||||
/**
|
||||
* Contains all of `recommended`, `recommended-type-checked`, and `strict`, along with additional strict rules that require type information.
|
||||
* @see {@link https://typescript-eslint.io/users/configs#strict-type-checked}
|
||||
*/
|
||||
strictTypeChecked: CompatibleConfigArray;
|
||||
/**
|
||||
* A version of `strict` that only contains type-checked rules and disables of any corresponding core ESLint rules.
|
||||
* @see {@link https://typescript-eslint.io/users/configs#strict-type-checked-only}
|
||||
*/
|
||||
strictTypeCheckedOnly: CompatibleConfigArray;
|
||||
/**
|
||||
* Rules considered to be best practice for modern TypeScript codebases, but that do not impact program logic.
|
||||
* @see {@link https://typescript-eslint.io/users/configs#stylistic}
|
||||
*/
|
||||
stylistic: CompatibleConfigArray;
|
||||
/**
|
||||
* Contains all of `stylistic`, along with additional stylistic rules that require type information.
|
||||
* @see {@link https://typescript-eslint.io/users/configs#stylistic-type-checked}
|
||||
*/
|
||||
stylisticTypeChecked: CompatibleConfigArray;
|
||||
/**
|
||||
* A version of `stylistic` that only contains type-checked rules and disables of any corresponding core ESLint rules.
|
||||
* @see {@link https://typescript-eslint.io/users/configs#stylistic-type-checked-only}
|
||||
*/
|
||||
stylisticTypeCheckedOnly: CompatibleConfigArray;
|
||||
};
|
||||
export type Config = TSESLint.FlatConfig.ConfigFile;
|
||||
declare const _default: {
|
||||
config: typeof config;
|
||||
configs: {
|
||||
/**
|
||||
* Enables each the rules provided as a part of typescript-eslint. Note that many rules are not applicable in all codebases, or are meant to be configured.
|
||||
* @see {@link https://typescript-eslint.io/users/configs#all}
|
||||
*/
|
||||
all: CompatibleConfigArray;
|
||||
/**
|
||||
* A minimal ruleset that sets only the required parser and plugin options needed to run typescript-eslint.
|
||||
* We don't recommend using this directly; instead, extend from an earlier recommended rule.
|
||||
* @see {@link https://typescript-eslint.io/users/configs#base}
|
||||
*/
|
||||
base: CompatibleConfig;
|
||||
/**
|
||||
* A utility ruleset that will disable type-aware linting and all type-aware rules available in our project.
|
||||
* @see {@link https://typescript-eslint.io/users/configs#disable-type-checked}
|
||||
*/
|
||||
disableTypeChecked: CompatibleConfig;
|
||||
/**
|
||||
* This is a compatibility ruleset that:
|
||||
* - disables rules from eslint:recommended which are already handled by TypeScript.
|
||||
* - enables rules that make sense due to TS's typechecking / transpilation.
|
||||
* @see {@link https://typescript-eslint.io/users/configs/#eslint-recommended}
|
||||
*/
|
||||
eslintRecommended: CompatibleConfig;
|
||||
/**
|
||||
* Recommended rules for code correctness that you can drop in without additional configuration.
|
||||
* @see {@link https://typescript-eslint.io/users/configs#recommended}
|
||||
*/
|
||||
recommended: CompatibleConfigArray;
|
||||
/**
|
||||
* Contains all of `recommended` along with additional recommended rules that require type information.
|
||||
* @see {@link https://typescript-eslint.io/users/configs#recommended-type-checked}
|
||||
*/
|
||||
recommendedTypeChecked: CompatibleConfigArray;
|
||||
/**
|
||||
* A version of `recommended` that only contains type-checked rules and disables of any corresponding core ESLint rules.
|
||||
* @see {@link https://typescript-eslint.io/users/configs#recommended-type-checked-only}
|
||||
*/
|
||||
recommendedTypeCheckedOnly: CompatibleConfigArray;
|
||||
/**
|
||||
* Contains all of `recommended`, as well as additional strict rules that can also catch bugs.
|
||||
* @see {@link https://typescript-eslint.io/users/configs#strict}
|
||||
*/
|
||||
strict: CompatibleConfigArray;
|
||||
/**
|
||||
* Contains all of `recommended`, `recommended-type-checked`, and `strict`, along with additional strict rules that require type information.
|
||||
* @see {@link https://typescript-eslint.io/users/configs#strict-type-checked}
|
||||
*/
|
||||
strictTypeChecked: CompatibleConfigArray;
|
||||
/**
|
||||
* A version of `strict` that only contains type-checked rules and disables of any corresponding core ESLint rules.
|
||||
* @see {@link https://typescript-eslint.io/users/configs#strict-type-checked-only}
|
||||
*/
|
||||
strictTypeCheckedOnly: CompatibleConfigArray;
|
||||
/**
|
||||
* Rules considered to be best practice for modern TypeScript codebases, but that do not impact program logic.
|
||||
* @see {@link https://typescript-eslint.io/users/configs#stylistic}
|
||||
*/
|
||||
stylistic: CompatibleConfigArray;
|
||||
/**
|
||||
* Contains all of `stylistic`, along with additional stylistic rules that require type information.
|
||||
* @see {@link https://typescript-eslint.io/users/configs#stylistic-type-checked}
|
||||
*/
|
||||
stylisticTypeChecked: CompatibleConfigArray;
|
||||
/**
|
||||
* A version of `stylistic` that only contains type-checked rules and disables of any corresponding core ESLint rules.
|
||||
* @see {@link https://typescript-eslint.io/users/configs#stylistic-type-checked-only}
|
||||
*/
|
||||
stylisticTypeCheckedOnly: CompatibleConfigArray;
|
||||
};
|
||||
parser: CompatibleParser;
|
||||
plugin: CompatiblePlugin;
|
||||
};
|
||||
export default _default;
|
||||
export { config, type ConfigWithExtends, type InfiniteDepthConfigWithExtends, type ConfigArray, } from './config-helper';
|
||||
173
node_modules/typescript-eslint/dist/index.js
generated
vendored
173
node_modules/typescript-eslint/dist/index.js
generated
vendored
@ -1,173 +0,0 @@
|
||||
"use strict";
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.config = exports.configs = exports.plugin = exports.parser = void 0;
|
||||
const eslint_plugin_1 = __importDefault(require("@typescript-eslint/eslint-plugin"));
|
||||
const raw_plugin_1 = __importDefault(require("@typescript-eslint/eslint-plugin/use-at-your-own-risk/raw-plugin"));
|
||||
const typescript_estree_1 = require("@typescript-eslint/typescript-estree");
|
||||
const config_helper_1 = require("./config-helper");
|
||||
const getTSConfigRootDirFromStack_1 = require("./getTSConfigRootDirFromStack");
|
||||
exports.parser = raw_plugin_1.default.parser;
|
||||
/*
|
||||
we could build a plugin object here without the `configs` key - but if we do
|
||||
that then we create a situation in which
|
||||
```
|
||||
require('typescript-eslint').plugin !== require('@typescript-eslint/eslint-plugin')
|
||||
```
|
||||
|
||||
This is bad because it means that 3rd party configs would be required to use
|
||||
`typescript-eslint` or else they would break a user's config if the user either
|
||||
used `tseslint.configs.recommended` et al or
|
||||
```
|
||||
{
|
||||
plugins: {
|
||||
'@typescript-eslint': tseslint.plugin,
|
||||
},
|
||||
}
|
||||
```
|
||||
|
||||
This might be something we could consider okay (eg 3rd party flat configs must
|
||||
use our new package); however legacy configs consumed via `@eslint/eslintrc`
|
||||
would never be able to satisfy this constraint and thus users would be blocked
|
||||
from using them.
|
||||
*/
|
||||
exports.plugin = eslint_plugin_1.default;
|
||||
exports.configs = createConfigsGetters({
|
||||
/**
|
||||
* Enables each the rules provided as a part of typescript-eslint. Note that many rules are not applicable in all codebases, or are meant to be configured.
|
||||
* @see {@link https://typescript-eslint.io/users/configs#all}
|
||||
*/
|
||||
all: raw_plugin_1.default.flatConfigs['flat/all'],
|
||||
/**
|
||||
* A minimal ruleset that sets only the required parser and plugin options needed to run typescript-eslint.
|
||||
* We don't recommend using this directly; instead, extend from an earlier recommended rule.
|
||||
* @see {@link https://typescript-eslint.io/users/configs#base}
|
||||
*/
|
||||
base: raw_plugin_1.default.flatConfigs['flat/base'],
|
||||
/**
|
||||
* A utility ruleset that will disable type-aware linting and all type-aware rules available in our project.
|
||||
* @see {@link https://typescript-eslint.io/users/configs#disable-type-checked}
|
||||
*/
|
||||
disableTypeChecked: raw_plugin_1.default.flatConfigs['flat/disable-type-checked'],
|
||||
/**
|
||||
* This is a compatibility ruleset that:
|
||||
* - disables rules from eslint:recommended which are already handled by TypeScript.
|
||||
* - enables rules that make sense due to TS's typechecking / transpilation.
|
||||
* @see {@link https://typescript-eslint.io/users/configs/#eslint-recommended}
|
||||
*/
|
||||
eslintRecommended: raw_plugin_1.default.flatConfigs['flat/eslint-recommended'],
|
||||
/**
|
||||
* Recommended rules for code correctness that you can drop in without additional configuration.
|
||||
* @see {@link https://typescript-eslint.io/users/configs#recommended}
|
||||
*/
|
||||
recommended: raw_plugin_1.default.flatConfigs['flat/recommended'],
|
||||
/**
|
||||
* Contains all of `recommended` along with additional recommended rules that require type information.
|
||||
* @see {@link https://typescript-eslint.io/users/configs#recommended-type-checked}
|
||||
*/
|
||||
recommendedTypeChecked: raw_plugin_1.default.flatConfigs['flat/recommended-type-checked'],
|
||||
/**
|
||||
* A version of `recommended` that only contains type-checked rules and disables of any corresponding core ESLint rules.
|
||||
* @see {@link https://typescript-eslint.io/users/configs#recommended-type-checked-only}
|
||||
*/
|
||||
recommendedTypeCheckedOnly: raw_plugin_1.default.flatConfigs['flat/recommended-type-checked-only'],
|
||||
/**
|
||||
* Contains all of `recommended`, as well as additional strict rules that can also catch bugs.
|
||||
* @see {@link https://typescript-eslint.io/users/configs#strict}
|
||||
*/
|
||||
strict: raw_plugin_1.default.flatConfigs['flat/strict'],
|
||||
/**
|
||||
* Contains all of `recommended`, `recommended-type-checked`, and `strict`, along with additional strict rules that require type information.
|
||||
* @see {@link https://typescript-eslint.io/users/configs#strict-type-checked}
|
||||
*/
|
||||
strictTypeChecked: raw_plugin_1.default.flatConfigs['flat/strict-type-checked'],
|
||||
/**
|
||||
* A version of `strict` that only contains type-checked rules and disables of any corresponding core ESLint rules.
|
||||
* @see {@link https://typescript-eslint.io/users/configs#strict-type-checked-only}
|
||||
*/
|
||||
strictTypeCheckedOnly: raw_plugin_1.default.flatConfigs['flat/strict-type-checked-only'],
|
||||
/**
|
||||
* Rules considered to be best practice for modern TypeScript codebases, but that do not impact program logic.
|
||||
* @see {@link https://typescript-eslint.io/users/configs#stylistic}
|
||||
*/
|
||||
stylistic: raw_plugin_1.default.flatConfigs['flat/stylistic'],
|
||||
/**
|
||||
* Contains all of `stylistic`, along with additional stylistic rules that require type information.
|
||||
* @see {@link https://typescript-eslint.io/users/configs#stylistic-type-checked}
|
||||
*/
|
||||
stylisticTypeChecked: raw_plugin_1.default.flatConfigs['flat/stylistic-type-checked'],
|
||||
/**
|
||||
* A version of `stylistic` that only contains type-checked rules and disables of any corresponding core ESLint rules.
|
||||
* @see {@link https://typescript-eslint.io/users/configs#stylistic-type-checked-only}
|
||||
*/
|
||||
stylisticTypeCheckedOnly: raw_plugin_1.default.flatConfigs['flat/stylistic-type-checked-only'],
|
||||
});
|
||||
function createConfigsGetters(values) {
|
||||
const configs = {};
|
||||
Object.defineProperties(configs, Object.fromEntries(Object.entries(values).map(([key, value]) => [
|
||||
key,
|
||||
{
|
||||
enumerable: true,
|
||||
get: () => {
|
||||
const candidateRootDir = (0, getTSConfigRootDirFromStack_1.getTSConfigRootDirFromStack)();
|
||||
if (candidateRootDir) {
|
||||
(0, typescript_estree_1.addCandidateTSConfigRootDir)(candidateRootDir);
|
||||
}
|
||||
return value;
|
||||
},
|
||||
},
|
||||
])));
|
||||
return configs;
|
||||
}
|
||||
/*
|
||||
we do both a default and named exports to allow people to use this package from
|
||||
both CJS and ESM in very natural ways.
|
||||
|
||||
EG it means that all of the following are valid:
|
||||
|
||||
```ts
|
||||
import tseslint from 'typescript-eslint';
|
||||
|
||||
export default tseslint.config(
|
||||
...tseslint.configs.recommended,
|
||||
);
|
||||
```
|
||||
```ts
|
||||
import { config, parser, plugin } from 'typescript-eslint';
|
||||
|
||||
export default config(
|
||||
{
|
||||
languageOptions: { parser }
|
||||
plugins: { ts: plugin },
|
||||
}
|
||||
);
|
||||
```
|
||||
```ts
|
||||
const tseslint = require('typescript-eslint');
|
||||
|
||||
module.exports = tseslint.config(
|
||||
...tseslint.configs.recommended,
|
||||
);
|
||||
```
|
||||
```ts
|
||||
const { config, parser, plugin } = require('typescript-eslint');
|
||||
|
||||
module.exports = config(
|
||||
{
|
||||
languageOptions: { parser }
|
||||
plugins: { ts: plugin },
|
||||
}
|
||||
);
|
||||
```
|
||||
*/
|
||||
exports.default = {
|
||||
config: config_helper_1.config,
|
||||
configs: exports.configs,
|
||||
parser: exports.parser,
|
||||
plugin: exports.plugin,
|
||||
};
|
||||
var config_helper_2 = require("./config-helper");
|
||||
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
||||
Object.defineProperty(exports, "config", { enumerable: true, get: function () { return config_helper_2.config; } });
|
||||
96
node_modules/typescript-eslint/package.json
generated
vendored
96
node_modules/typescript-eslint/package.json
generated
vendored
@ -1,96 +0,0 @@
|
||||
{
|
||||
"name": "typescript-eslint",
|
||||
"version": "8.48.0",
|
||||
"description": "Tooling which enables you to use TypeScript with ESLint",
|
||||
"files": [
|
||||
"dist",
|
||||
"!*.tsbuildinfo",
|
||||
"README.md",
|
||||
"LICENSE"
|
||||
],
|
||||
"type": "commonjs",
|
||||
"exports": {
|
||||
".": {
|
||||
"types": "./dist/index.d.ts",
|
||||
"default": "./dist/index.js"
|
||||
},
|
||||
"./package.json": "./package.json"
|
||||
},
|
||||
"types": "./dist/index.d.ts",
|
||||
"engines": {
|
||||
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/typescript-eslint/typescript-eslint.git",
|
||||
"directory": "packages/typescript-eslint"
|
||||
},
|
||||
"bugs": {
|
||||
"url": "https://github.com/typescript-eslint/typescript-eslint/issues"
|
||||
},
|
||||
"homepage": "https://typescript-eslint.io/packages/typescript-eslint",
|
||||
"license": "MIT",
|
||||
"keywords": [
|
||||
"ast",
|
||||
"ecmascript",
|
||||
"javascript",
|
||||
"typescript",
|
||||
"parser",
|
||||
"syntax",
|
||||
"eslint",
|
||||
"eslintplugin",
|
||||
"eslint-plugin"
|
||||
],
|
||||
"scripts": {
|
||||
"build": "yarn run -BT nx build",
|
||||
"clean": "rimraf dist/ coverage/",
|
||||
"format": "yarn run -T format",
|
||||
"lint": "yarn run -BT nx lint",
|
||||
"test": "yarn run -BT nx test",
|
||||
"typecheck": "yarn run -BT nx typecheck"
|
||||
},
|
||||
"dependencies": {
|
||||
"@typescript-eslint/eslint-plugin": "8.48.0",
|
||||
"@typescript-eslint/parser": "8.48.0",
|
||||
"@typescript-eslint/typescript-estree": "8.48.0",
|
||||
"@typescript-eslint/utils": "8.48.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"eslint": "^8.57.0 || ^9.0.0",
|
||||
"typescript": ">=4.8.4 <6.0.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@vitest/coverage-v8": "^3.1.3",
|
||||
"eslint": "*",
|
||||
"rimraf": "*",
|
||||
"typescript": "*",
|
||||
"vitest": "^3.1.3"
|
||||
},
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/typescript-eslint"
|
||||
},
|
||||
"nx": {
|
||||
"name": "typescript-eslint",
|
||||
"includedScripts": [
|
||||
"clean"
|
||||
],
|
||||
"targets": {
|
||||
"lint": {
|
||||
"command": "eslint"
|
||||
},
|
||||
"typecheck": {
|
||||
"outputs": [
|
||||
"{workspaceRoot}/dist",
|
||||
"{projectRoot}/dist"
|
||||
]
|
||||
},
|
||||
"test": {
|
||||
"dependsOn": [
|
||||
"^build",
|
||||
"typecheck"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
21
node_modules/undici-types/LICENSE
generated
vendored
21
node_modules/undici-types/LICENSE
generated
vendored
@ -1,21 +0,0 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) Matteo Collina and Undici contributors
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
6
node_modules/undici-types/README.md
generated
vendored
6
node_modules/undici-types/README.md
generated
vendored
@ -1,6 +0,0 @@
|
||||
# undici-types
|
||||
|
||||
This package is a dual-publish of the [undici](https://www.npmjs.com/package/undici) library types. The `undici` package **still contains types**. This package is for users who _only_ need undici types (such as for `@types/node`). It is published alongside every release of `undici`, so you can always use the same version.
|
||||
|
||||
- [GitHub nodejs/undici](https://github.com/nodejs/undici)
|
||||
- [Undici Documentation](https://undici.nodejs.org/#/)
|
||||
32
node_modules/undici-types/agent.d.ts
generated
vendored
32
node_modules/undici-types/agent.d.ts
generated
vendored
@ -1,32 +0,0 @@
|
||||
import { URL } from 'url'
|
||||
import Pool from './pool'
|
||||
import Dispatcher from './dispatcher'
|
||||
import TClientStats from './client-stats'
|
||||
import TPoolStats from './pool-stats'
|
||||
|
||||
export default Agent
|
||||
|
||||
declare class Agent extends Dispatcher {
|
||||
constructor (opts?: Agent.Options)
|
||||
/** `true` after `dispatcher.close()` has been called. */
|
||||
closed: boolean
|
||||
/** `true` after `dispatcher.destroyed()` has been called or `dispatcher.close()` has been called and the dispatcher shutdown has completed. */
|
||||
destroyed: boolean
|
||||
/** Dispatches a request. */
|
||||
dispatch (options: Agent.DispatchOptions, handler: Dispatcher.DispatchHandler): boolean
|
||||
/** Aggregate stats for a Agent by origin. */
|
||||
readonly stats: Record<string, TClientStats | TPoolStats>
|
||||
}
|
||||
|
||||
declare namespace Agent {
|
||||
export interface Options extends Pool.Options {
|
||||
/** Default: `(origin, opts) => new Pool(origin, opts)`. */
|
||||
factory?(origin: string | URL, opts: Object): Dispatcher;
|
||||
|
||||
interceptors?: { Agent?: readonly Dispatcher.DispatchInterceptor[] } & Pool.Options['interceptors']
|
||||
maxOrigins?: number
|
||||
}
|
||||
|
||||
export interface DispatchOptions extends Dispatcher.DispatchOptions {
|
||||
}
|
||||
}
|
||||
43
node_modules/undici-types/api.d.ts
generated
vendored
43
node_modules/undici-types/api.d.ts
generated
vendored
@ -1,43 +0,0 @@
|
||||
import { URL, UrlObject } from 'url'
|
||||
import { Duplex } from 'stream'
|
||||
import Dispatcher from './dispatcher'
|
||||
|
||||
/** Performs an HTTP request. */
|
||||
declare function request<TOpaque = null> (
|
||||
url: string | URL | UrlObject,
|
||||
options?: { dispatcher?: Dispatcher } & Omit<Dispatcher.RequestOptions<TOpaque>, 'origin' | 'path' | 'method'> & Partial<Pick<Dispatcher.RequestOptions, 'method'>>,
|
||||
): Promise<Dispatcher.ResponseData<TOpaque>>
|
||||
|
||||
/** A faster version of `request`. */
|
||||
declare function stream<TOpaque = null> (
|
||||
url: string | URL | UrlObject,
|
||||
options: { dispatcher?: Dispatcher } & Omit<Dispatcher.RequestOptions<TOpaque>, 'origin' | 'path'>,
|
||||
factory: Dispatcher.StreamFactory<TOpaque>
|
||||
): Promise<Dispatcher.StreamData<TOpaque>>
|
||||
|
||||
/** For easy use with `stream.pipeline`. */
|
||||
declare function pipeline<TOpaque = null> (
|
||||
url: string | URL | UrlObject,
|
||||
options: { dispatcher?: Dispatcher } & Omit<Dispatcher.PipelineOptions<TOpaque>, 'origin' | 'path'>,
|
||||
handler: Dispatcher.PipelineHandler<TOpaque>
|
||||
): Duplex
|
||||
|
||||
/** Starts two-way communications with the requested resource. */
|
||||
declare function connect<TOpaque = null> (
|
||||
url: string | URL | UrlObject,
|
||||
options?: { dispatcher?: Dispatcher } & Omit<Dispatcher.ConnectOptions<TOpaque>, 'origin' | 'path'>
|
||||
): Promise<Dispatcher.ConnectData<TOpaque>>
|
||||
|
||||
/** Upgrade to a different protocol. */
|
||||
declare function upgrade (
|
||||
url: string | URL | UrlObject,
|
||||
options?: { dispatcher?: Dispatcher } & Omit<Dispatcher.UpgradeOptions, 'origin' | 'path'>
|
||||
): Promise<Dispatcher.UpgradeData>
|
||||
|
||||
export {
|
||||
request,
|
||||
stream,
|
||||
pipeline,
|
||||
connect,
|
||||
upgrade
|
||||
}
|
||||
29
node_modules/undici-types/balanced-pool.d.ts
generated
vendored
29
node_modules/undici-types/balanced-pool.d.ts
generated
vendored
@ -1,29 +0,0 @@
|
||||
import Pool from './pool'
|
||||
import Dispatcher from './dispatcher'
|
||||
import { URL } from 'url'
|
||||
|
||||
export default BalancedPool
|
||||
|
||||
type BalancedPoolConnectOptions = Omit<Dispatcher.ConnectOptions, 'origin'>
|
||||
|
||||
declare class BalancedPool extends Dispatcher {
|
||||
constructor (url: string | string[] | URL | URL[], options?: Pool.Options)
|
||||
|
||||
addUpstream (upstream: string | URL): BalancedPool
|
||||
removeUpstream (upstream: string | URL): BalancedPool
|
||||
upstreams: Array<string>
|
||||
|
||||
/** `true` after `pool.close()` has been called. */
|
||||
closed: boolean
|
||||
/** `true` after `pool.destroyed()` has been called or `pool.close()` has been called and the pool shutdown has completed. */
|
||||
destroyed: boolean
|
||||
|
||||
// Override dispatcher APIs.
|
||||
override connect (
|
||||
options: BalancedPoolConnectOptions
|
||||
): Promise<Dispatcher.ConnectData>
|
||||
override connect (
|
||||
options: BalancedPoolConnectOptions,
|
||||
callback: (err: Error | null, data: Dispatcher.ConnectData) => void
|
||||
): void
|
||||
}
|
||||
172
node_modules/undici-types/cache-interceptor.d.ts
generated
vendored
172
node_modules/undici-types/cache-interceptor.d.ts
generated
vendored
@ -1,172 +0,0 @@
|
||||
import { Readable, Writable } from 'node:stream'
|
||||
|
||||
export default CacheHandler
|
||||
|
||||
declare namespace CacheHandler {
|
||||
export type CacheMethods = 'GET' | 'HEAD' | 'OPTIONS' | 'TRACE'
|
||||
|
||||
export interface CacheHandlerOptions {
|
||||
store: CacheStore
|
||||
|
||||
cacheByDefault?: number
|
||||
|
||||
type?: CacheOptions['type']
|
||||
}
|
||||
|
||||
export interface CacheOptions {
|
||||
store?: CacheStore
|
||||
|
||||
/**
|
||||
* The methods to cache
|
||||
* Note we can only cache safe methods. Unsafe methods (i.e. PUT, POST)
|
||||
* invalidate the cache for a origin.
|
||||
* @see https://www.rfc-editor.org/rfc/rfc9111.html#name-invalidating-stored-respons
|
||||
* @see https://www.rfc-editor.org/rfc/rfc9110#section-9.2.1
|
||||
*/
|
||||
methods?: CacheMethods[]
|
||||
|
||||
/**
|
||||
* RFC9111 allows for caching responses that we aren't explicitly told to
|
||||
* cache or to not cache.
|
||||
* @see https://www.rfc-editor.org/rfc/rfc9111.html#section-3-5
|
||||
* @default undefined
|
||||
*/
|
||||
cacheByDefault?: number
|
||||
|
||||
/**
|
||||
* TODO docs
|
||||
* @default 'shared'
|
||||
*/
|
||||
type?: 'shared' | 'private'
|
||||
}
|
||||
|
||||
export interface CacheControlDirectives {
|
||||
'max-stale'?: number;
|
||||
'min-fresh'?: number;
|
||||
'max-age'?: number;
|
||||
's-maxage'?: number;
|
||||
'stale-while-revalidate'?: number;
|
||||
'stale-if-error'?: number;
|
||||
public?: true;
|
||||
private?: true | string[];
|
||||
'no-store'?: true;
|
||||
'no-cache'?: true | string[];
|
||||
'must-revalidate'?: true;
|
||||
'proxy-revalidate'?: true;
|
||||
immutable?: true;
|
||||
'no-transform'?: true;
|
||||
'must-understand'?: true;
|
||||
'only-if-cached'?: true;
|
||||
}
|
||||
|
||||
export interface CacheKey {
|
||||
origin: string
|
||||
method: string
|
||||
path: string
|
||||
headers?: Record<string, string | string[]>
|
||||
}
|
||||
|
||||
export interface CacheValue {
|
||||
statusCode: number
|
||||
statusMessage: string
|
||||
headers: Record<string, string | string[]>
|
||||
vary?: Record<string, string | string[] | null>
|
||||
etag?: string
|
||||
cacheControlDirectives?: CacheControlDirectives
|
||||
cachedAt: number
|
||||
staleAt: number
|
||||
deleteAt: number
|
||||
}
|
||||
|
||||
export interface DeleteByUri {
|
||||
origin: string
|
||||
method: string
|
||||
path: string
|
||||
}
|
||||
|
||||
type GetResult = {
|
||||
statusCode: number
|
||||
statusMessage: string
|
||||
headers: Record<string, string | string[]>
|
||||
vary?: Record<string, string | string[] | null>
|
||||
etag?: string
|
||||
body?: Readable | Iterable<Buffer> | AsyncIterable<Buffer> | Buffer | Iterable<string> | AsyncIterable<string> | string
|
||||
cacheControlDirectives: CacheControlDirectives,
|
||||
cachedAt: number
|
||||
staleAt: number
|
||||
deleteAt: number
|
||||
}
|
||||
|
||||
/**
|
||||
* Underlying storage provider for cached responses
|
||||
*/
|
||||
export interface CacheStore {
|
||||
get(key: CacheKey): GetResult | Promise<GetResult | undefined> | undefined
|
||||
|
||||
createWriteStream(key: CacheKey, val: CacheValue): Writable | undefined
|
||||
|
||||
delete(key: CacheKey): void | Promise<void>
|
||||
}
|
||||
|
||||
export interface MemoryCacheStoreOpts {
|
||||
/**
|
||||
* @default Infinity
|
||||
*/
|
||||
maxCount?: number
|
||||
|
||||
/**
|
||||
* @default Infinity
|
||||
*/
|
||||
maxSize?: number
|
||||
|
||||
/**
|
||||
* @default Infinity
|
||||
*/
|
||||
maxEntrySize?: number
|
||||
|
||||
errorCallback?: (err: Error) => void
|
||||
}
|
||||
|
||||
export class MemoryCacheStore implements CacheStore {
|
||||
constructor (opts?: MemoryCacheStoreOpts)
|
||||
|
||||
get (key: CacheKey): GetResult | Promise<GetResult | undefined> | undefined
|
||||
|
||||
createWriteStream (key: CacheKey, value: CacheValue): Writable | undefined
|
||||
|
||||
delete (key: CacheKey): void | Promise<void>
|
||||
}
|
||||
|
||||
export interface SqliteCacheStoreOpts {
|
||||
/**
|
||||
* Location of the database
|
||||
* @default ':memory:'
|
||||
*/
|
||||
location?: string
|
||||
|
||||
/**
|
||||
* @default Infinity
|
||||
*/
|
||||
maxCount?: number
|
||||
|
||||
/**
|
||||
* @default Infinity
|
||||
*/
|
||||
maxEntrySize?: number
|
||||
}
|
||||
|
||||
export class SqliteCacheStore implements CacheStore {
|
||||
constructor (opts?: SqliteCacheStoreOpts)
|
||||
|
||||
/**
|
||||
* Closes the connection to the database
|
||||
*/
|
||||
close (): void
|
||||
|
||||
get (key: CacheKey): GetResult | Promise<GetResult | undefined> | undefined
|
||||
|
||||
createWriteStream (key: CacheKey, value: CacheValue): Writable | undefined
|
||||
|
||||
delete (key: CacheKey): void | Promise<void>
|
||||
}
|
||||
}
|
||||
36
node_modules/undici-types/cache.d.ts
generated
vendored
36
node_modules/undici-types/cache.d.ts
generated
vendored
@ -1,36 +0,0 @@
|
||||
import type { RequestInfo, Response, Request } from './fetch'
|
||||
|
||||
export interface CacheStorage {
|
||||
match (request: RequestInfo, options?: MultiCacheQueryOptions): Promise<Response | undefined>,
|
||||
has (cacheName: string): Promise<boolean>,
|
||||
open (cacheName: string): Promise<Cache>,
|
||||
delete (cacheName: string): Promise<boolean>,
|
||||
keys (): Promise<string[]>
|
||||
}
|
||||
|
||||
declare const CacheStorage: {
|
||||
prototype: CacheStorage
|
||||
new(): CacheStorage
|
||||
}
|
||||
|
||||
export interface Cache {
|
||||
match (request: RequestInfo, options?: CacheQueryOptions): Promise<Response | undefined>,
|
||||
matchAll (request?: RequestInfo, options?: CacheQueryOptions): Promise<readonly Response[]>,
|
||||
add (request: RequestInfo): Promise<undefined>,
|
||||
addAll (requests: RequestInfo[]): Promise<undefined>,
|
||||
put (request: RequestInfo, response: Response): Promise<undefined>,
|
||||
delete (request: RequestInfo, options?: CacheQueryOptions): Promise<boolean>,
|
||||
keys (request?: RequestInfo, options?: CacheQueryOptions): Promise<readonly Request[]>
|
||||
}
|
||||
|
||||
export interface CacheQueryOptions {
|
||||
ignoreSearch?: boolean,
|
||||
ignoreMethod?: boolean,
|
||||
ignoreVary?: boolean
|
||||
}
|
||||
|
||||
export interface MultiCacheQueryOptions extends CacheQueryOptions {
|
||||
cacheName?: string
|
||||
}
|
||||
|
||||
export declare const caches: CacheStorage
|
||||
15
node_modules/undici-types/client-stats.d.ts
generated
vendored
15
node_modules/undici-types/client-stats.d.ts
generated
vendored
@ -1,15 +0,0 @@
|
||||
import Client from './client'
|
||||
|
||||
export default ClientStats
|
||||
|
||||
declare class ClientStats {
|
||||
constructor (pool: Client)
|
||||
/** If socket has open connection. */
|
||||
connected: boolean
|
||||
/** Number of open socket connections in this client that do not have an active request. */
|
||||
pending: number
|
||||
/** Number of currently active requests of this client. */
|
||||
running: number
|
||||
/** Number of active, pending, or queued requests of this client. */
|
||||
size: number
|
||||
}
|
||||
108
node_modules/undici-types/client.d.ts
generated
vendored
108
node_modules/undici-types/client.d.ts
generated
vendored
@ -1,108 +0,0 @@
|
||||
import { URL } from 'url'
|
||||
import Dispatcher from './dispatcher'
|
||||
import buildConnector from './connector'
|
||||
import TClientStats from './client-stats'
|
||||
|
||||
type ClientConnectOptions = Omit<Dispatcher.ConnectOptions, 'origin'>
|
||||
|
||||
/**
|
||||
* A basic HTTP/1.1 client, mapped on top a single TCP/TLS connection. Pipelining is disabled by default.
|
||||
*/
|
||||
export class Client extends Dispatcher {
|
||||
constructor (url: string | URL, options?: Client.Options)
|
||||
/** Property to get and set the pipelining factor. */
|
||||
pipelining: number
|
||||
/** `true` after `client.close()` has been called. */
|
||||
closed: boolean
|
||||
/** `true` after `client.destroyed()` has been called or `client.close()` has been called and the client shutdown has completed. */
|
||||
destroyed: boolean
|
||||
/** Aggregate stats for a Client. */
|
||||
readonly stats: TClientStats
|
||||
|
||||
// Override dispatcher APIs.
|
||||
override connect (
|
||||
options: ClientConnectOptions
|
||||
): Promise<Dispatcher.ConnectData>
|
||||
override connect (
|
||||
options: ClientConnectOptions,
|
||||
callback: (err: Error | null, data: Dispatcher.ConnectData) => void
|
||||
): void
|
||||
}
|
||||
|
||||
export declare namespace Client {
|
||||
export interface OptionsInterceptors {
|
||||
Client: readonly Dispatcher.DispatchInterceptor[];
|
||||
}
|
||||
export interface Options {
|
||||
/** TODO */
|
||||
interceptors?: OptionsInterceptors;
|
||||
/** The maximum length of request headers in bytes. Default: Node.js' `--max-http-header-size` or `16384` (16KiB). */
|
||||
maxHeaderSize?: number;
|
||||
/** The amount of time, in milliseconds, the parser will wait to receive the complete HTTP headers (Node 14 and above only). Default: `300e3` milliseconds (300s). */
|
||||
headersTimeout?: number;
|
||||
/** @deprecated unsupported socketTimeout, use headersTimeout & bodyTimeout instead */
|
||||
socketTimeout?: never;
|
||||
/** @deprecated unsupported requestTimeout, use headersTimeout & bodyTimeout instead */
|
||||
requestTimeout?: never;
|
||||
/** TODO */
|
||||
connectTimeout?: number;
|
||||
/** The timeout after which a request will time out, in milliseconds. Monitors time between receiving body data. Use `0` to disable it entirely. Default: `300e3` milliseconds (300s). */
|
||||
bodyTimeout?: number;
|
||||
/** @deprecated unsupported idleTimeout, use keepAliveTimeout instead */
|
||||
idleTimeout?: never;
|
||||
/** @deprecated unsupported keepAlive, use pipelining=0 instead */
|
||||
keepAlive?: never;
|
||||
/** the timeout, in milliseconds, after which a socket without active requests will time out. Monitors time between activity on a connected socket. This value may be overridden by *keep-alive* hints from the server. Default: `4e3` milliseconds (4s). */
|
||||
keepAliveTimeout?: number;
|
||||
/** @deprecated unsupported maxKeepAliveTimeout, use keepAliveMaxTimeout instead */
|
||||
maxKeepAliveTimeout?: never;
|
||||
/** the maximum allowed `idleTimeout`, in milliseconds, when overridden by *keep-alive* hints from the server. Default: `600e3` milliseconds (10min). */
|
||||
keepAliveMaxTimeout?: number;
|
||||
/** A number of milliseconds subtracted from server *keep-alive* hints when overriding `idleTimeout` to account for timing inaccuracies caused by e.g. transport latency. Default: `1e3` milliseconds (1s). */
|
||||
keepAliveTimeoutThreshold?: number;
|
||||
/** TODO */
|
||||
socketPath?: string;
|
||||
/** The amount of concurrent requests to be sent over the single TCP/TLS connection according to [RFC7230](https://tools.ietf.org/html/rfc7230#section-6.3.2). Default: `1`. */
|
||||
pipelining?: number;
|
||||
/** @deprecated use the connect option instead */
|
||||
tls?: never;
|
||||
/** If `true`, an error is thrown when the request content-length header doesn't match the length of the request body. Default: `true`. */
|
||||
strictContentLength?: boolean;
|
||||
/** TODO */
|
||||
maxCachedSessions?: number;
|
||||
/** TODO */
|
||||
connect?: Partial<buildConnector.BuildOptions> | buildConnector.connector;
|
||||
/** TODO */
|
||||
maxRequestsPerClient?: number;
|
||||
/** TODO */
|
||||
localAddress?: string;
|
||||
/** Max response body size in bytes, -1 is disabled */
|
||||
maxResponseSize?: number;
|
||||
/** Enables a family autodetection algorithm that loosely implements section 5 of RFC 8305. */
|
||||
autoSelectFamily?: boolean;
|
||||
/** The amount of time in milliseconds to wait for a connection attempt to finish before trying the next address when using the `autoSelectFamily` option. */
|
||||
autoSelectFamilyAttemptTimeout?: number;
|
||||
/**
|
||||
* @description Enables support for H2 if the server has assigned bigger priority to it through ALPN negotiation.
|
||||
* @default false
|
||||
*/
|
||||
allowH2?: boolean;
|
||||
/**
|
||||
* @description Dictates the maximum number of concurrent streams for a single H2 session. It can be overridden by a SETTINGS remote frame.
|
||||
* @default 100
|
||||
*/
|
||||
maxConcurrentStreams?: number;
|
||||
}
|
||||
export interface SocketInfo {
|
||||
localAddress?: string
|
||||
localPort?: number
|
||||
remoteAddress?: string
|
||||
remotePort?: number
|
||||
remoteFamily?: string
|
||||
timeout?: number
|
||||
bytesWritten?: number
|
||||
bytesRead?: number
|
||||
}
|
||||
}
|
||||
|
||||
export default Client
|
||||
34
node_modules/undici-types/connector.d.ts
generated
vendored
34
node_modules/undici-types/connector.d.ts
generated
vendored
@ -1,34 +0,0 @@
|
||||
import { TLSSocket, ConnectionOptions } from 'tls'
|
||||
import { IpcNetConnectOpts, Socket, TcpNetConnectOpts } from 'net'
|
||||
|
||||
export default buildConnector
|
||||
declare function buildConnector (options?: buildConnector.BuildOptions): buildConnector.connector
|
||||
|
||||
declare namespace buildConnector {
|
||||
export type BuildOptions = (ConnectionOptions | TcpNetConnectOpts | IpcNetConnectOpts) & {
|
||||
allowH2?: boolean;
|
||||
maxCachedSessions?: number | null;
|
||||
socketPath?: string | null;
|
||||
timeout?: number | null;
|
||||
port?: number;
|
||||
keepAlive?: boolean | null;
|
||||
keepAliveInitialDelay?: number | null;
|
||||
}
|
||||
|
||||
export interface Options {
|
||||
hostname: string
|
||||
host?: string
|
||||
protocol: string
|
||||
port: string
|
||||
servername?: string
|
||||
localAddress?: string | null
|
||||
httpSocket?: Socket
|
||||
}
|
||||
|
||||
export type Callback = (...args: CallbackArgs) => void
|
||||
type CallbackArgs = [null, Socket | TLSSocket] | [Error, null]
|
||||
|
||||
export interface connector {
|
||||
(options: buildConnector.Options, callback: buildConnector.Callback): void
|
||||
}
|
||||
}
|
||||
21
node_modules/undici-types/content-type.d.ts
generated
vendored
21
node_modules/undici-types/content-type.d.ts
generated
vendored
@ -1,21 +0,0 @@
|
||||
/// <reference types="node" />
|
||||
|
||||
interface MIMEType {
|
||||
type: string
|
||||
subtype: string
|
||||
parameters: Map<string, string>
|
||||
essence: string
|
||||
}
|
||||
|
||||
/**
|
||||
* Parse a string to a {@link MIMEType} object. Returns `failure` if the string
|
||||
* couldn't be parsed.
|
||||
* @see https://mimesniff.spec.whatwg.org/#parse-a-mime-type
|
||||
*/
|
||||
export function parseMIMEType (input: string): 'failure' | MIMEType
|
||||
|
||||
/**
|
||||
* Convert a MIMEType object to a string.
|
||||
* @see https://mimesniff.spec.whatwg.org/#serialize-a-mime-type
|
||||
*/
|
||||
export function serializeAMimeType (mimeType: MIMEType): string
|
||||
30
node_modules/undici-types/cookies.d.ts
generated
vendored
30
node_modules/undici-types/cookies.d.ts
generated
vendored
@ -1,30 +0,0 @@
|
||||
/// <reference types="node" />
|
||||
|
||||
import type { Headers } from './fetch'
|
||||
|
||||
export interface Cookie {
|
||||
name: string
|
||||
value: string
|
||||
expires?: Date | number
|
||||
maxAge?: number
|
||||
domain?: string
|
||||
path?: string
|
||||
secure?: boolean
|
||||
httpOnly?: boolean
|
||||
sameSite?: 'Strict' | 'Lax' | 'None'
|
||||
unparsed?: string[]
|
||||
}
|
||||
|
||||
export function deleteCookie (
|
||||
headers: Headers,
|
||||
name: string,
|
||||
attributes?: { name?: string, domain?: string }
|
||||
): void
|
||||
|
||||
export function getCookies (headers: Headers): Record<string, string>
|
||||
|
||||
export function getSetCookies (headers: Headers): Cookie[]
|
||||
|
||||
export function setCookie (headers: Headers, cookie: Cookie): void
|
||||
|
||||
export function parseCookie (cookie: string): Cookie | null
|
||||
74
node_modules/undici-types/diagnostics-channel.d.ts
generated
vendored
74
node_modules/undici-types/diagnostics-channel.d.ts
generated
vendored
@ -1,74 +0,0 @@
|
||||
import { Socket } from 'net'
|
||||
import { URL } from 'url'
|
||||
import buildConnector from './connector'
|
||||
import Dispatcher from './dispatcher'
|
||||
|
||||
declare namespace DiagnosticsChannel {
|
||||
interface Request {
|
||||
origin?: string | URL;
|
||||
completed: boolean;
|
||||
method?: Dispatcher.HttpMethod;
|
||||
path: string;
|
||||
headers: any;
|
||||
}
|
||||
interface Response {
|
||||
statusCode: number;
|
||||
statusText: string;
|
||||
headers: Array<Buffer>;
|
||||
}
|
||||
interface ConnectParams {
|
||||
host: URL['host'];
|
||||
hostname: URL['hostname'];
|
||||
protocol: URL['protocol'];
|
||||
port: URL['port'];
|
||||
servername: string | null;
|
||||
}
|
||||
type Connector = buildConnector.connector
|
||||
export interface RequestCreateMessage {
|
||||
request: Request;
|
||||
}
|
||||
export interface RequestBodySentMessage {
|
||||
request: Request;
|
||||
}
|
||||
|
||||
export interface RequestBodyChunkSentMessage {
|
||||
request: Request;
|
||||
chunk: Uint8Array | string;
|
||||
}
|
||||
export interface RequestBodyChunkReceivedMessage {
|
||||
request: Request;
|
||||
chunk: Buffer;
|
||||
}
|
||||
export interface RequestHeadersMessage {
|
||||
request: Request;
|
||||
response: Response;
|
||||
}
|
||||
export interface RequestTrailersMessage {
|
||||
request: Request;
|
||||
trailers: Array<Buffer>;
|
||||
}
|
||||
export interface RequestErrorMessage {
|
||||
request: Request;
|
||||
error: Error;
|
||||
}
|
||||
export interface ClientSendHeadersMessage {
|
||||
request: Request;
|
||||
headers: string;
|
||||
socket: Socket;
|
||||
}
|
||||
export interface ClientBeforeConnectMessage {
|
||||
connectParams: ConnectParams;
|
||||
connector: Connector;
|
||||
}
|
||||
export interface ClientConnectedMessage {
|
||||
socket: Socket;
|
||||
connectParams: ConnectParams;
|
||||
connector: Connector;
|
||||
}
|
||||
export interface ClientConnectErrorMessage {
|
||||
error: Error;
|
||||
socket: Socket;
|
||||
connectParams: ConnectParams;
|
||||
connector: Connector;
|
||||
}
|
||||
}
|
||||
276
node_modules/undici-types/dispatcher.d.ts
generated
vendored
276
node_modules/undici-types/dispatcher.d.ts
generated
vendored
@ -1,276 +0,0 @@
|
||||
import { URL } from 'url'
|
||||
import { Duplex, Readable, Writable } from 'stream'
|
||||
import { EventEmitter } from 'events'
|
||||
import { Blob } from 'buffer'
|
||||
import { IncomingHttpHeaders } from './header'
|
||||
import BodyReadable from './readable'
|
||||
import { FormData } from './formdata'
|
||||
import Errors from './errors'
|
||||
import { Autocomplete } from './utility'
|
||||
|
||||
type AbortSignal = unknown
|
||||
|
||||
export default Dispatcher
|
||||
|
||||
export type UndiciHeaders = Record<string, string | string[]> | IncomingHttpHeaders | string[] | Iterable<[string, string | string[] | undefined]> | null
|
||||
|
||||
/** Dispatcher is the core API used to dispatch requests. */
|
||||
declare class Dispatcher extends EventEmitter {
|
||||
/** Dispatches a request. This API is expected to evolve through semver-major versions and is less stable than the preceding higher level APIs. It is primarily intended for library developers who implement higher level APIs on top of this. */
|
||||
dispatch (options: Dispatcher.DispatchOptions, handler: Dispatcher.DispatchHandler): boolean
|
||||
/** Starts two-way communications with the requested resource. */
|
||||
connect<TOpaque = null>(options: Dispatcher.ConnectOptions<TOpaque>): Promise<Dispatcher.ConnectData<TOpaque>>
|
||||
connect<TOpaque = null>(options: Dispatcher.ConnectOptions<TOpaque>, callback: (err: Error | null, data: Dispatcher.ConnectData<TOpaque>) => void): void
|
||||
/** Compose a chain of dispatchers */
|
||||
compose (dispatchers: Dispatcher.DispatcherComposeInterceptor[]): Dispatcher.ComposedDispatcher
|
||||
compose (...dispatchers: Dispatcher.DispatcherComposeInterceptor[]): Dispatcher.ComposedDispatcher
|
||||
/** Performs an HTTP request. */
|
||||
request<TOpaque = null>(options: Dispatcher.RequestOptions<TOpaque>): Promise<Dispatcher.ResponseData<TOpaque>>
|
||||
request<TOpaque = null>(options: Dispatcher.RequestOptions<TOpaque>, callback: (err: Error | null, data: Dispatcher.ResponseData<TOpaque>) => void): void
|
||||
/** For easy use with `stream.pipeline`. */
|
||||
pipeline<TOpaque = null>(options: Dispatcher.PipelineOptions<TOpaque>, handler: Dispatcher.PipelineHandler<TOpaque>): Duplex
|
||||
/** A faster version of `Dispatcher.request`. */
|
||||
stream<TOpaque = null>(options: Dispatcher.RequestOptions<TOpaque>, factory: Dispatcher.StreamFactory<TOpaque>): Promise<Dispatcher.StreamData<TOpaque>>
|
||||
stream<TOpaque = null>(options: Dispatcher.RequestOptions<TOpaque>, factory: Dispatcher.StreamFactory<TOpaque>, callback: (err: Error | null, data: Dispatcher.StreamData<TOpaque>) => void): void
|
||||
/** Upgrade to a different protocol. */
|
||||
upgrade (options: Dispatcher.UpgradeOptions): Promise<Dispatcher.UpgradeData>
|
||||
upgrade (options: Dispatcher.UpgradeOptions, callback: (err: Error | null, data: Dispatcher.UpgradeData) => void): void
|
||||
/** Closes the client and gracefully waits for enqueued requests to complete before invoking the callback (or returning a promise if no callback is provided). */
|
||||
close (): Promise<void>
|
||||
close (callback: () => void): void
|
||||
/** Destroy the client abruptly with the given err. All the pending and running requests will be asynchronously aborted and error. Waits until socket is closed before invoking the callback (or returning a promise if no callback is provided). Since this operation is asynchronously dispatched there might still be some progress on dispatched requests. */
|
||||
destroy (): Promise<void>
|
||||
destroy (err: Error | null): Promise<void>
|
||||
destroy (callback: () => void): void
|
||||
destroy (err: Error | null, callback: () => void): void
|
||||
|
||||
on (eventName: 'connect', callback: (origin: URL, targets: readonly Dispatcher[]) => void): this
|
||||
on (eventName: 'disconnect', callback: (origin: URL, targets: readonly Dispatcher[], error: Errors.UndiciError) => void): this
|
||||
on (eventName: 'connectionError', callback: (origin: URL, targets: readonly Dispatcher[], error: Errors.UndiciError) => void): this
|
||||
on (eventName: 'drain', callback: (origin: URL) => void): this
|
||||
|
||||
once (eventName: 'connect', callback: (origin: URL, targets: readonly Dispatcher[]) => void): this
|
||||
once (eventName: 'disconnect', callback: (origin: URL, targets: readonly Dispatcher[], error: Errors.UndiciError) => void): this
|
||||
once (eventName: 'connectionError', callback: (origin: URL, targets: readonly Dispatcher[], error: Errors.UndiciError) => void): this
|
||||
once (eventName: 'drain', callback: (origin: URL) => void): this
|
||||
|
||||
off (eventName: 'connect', callback: (origin: URL, targets: readonly Dispatcher[]) => void): this
|
||||
off (eventName: 'disconnect', callback: (origin: URL, targets: readonly Dispatcher[], error: Errors.UndiciError) => void): this
|
||||
off (eventName: 'connectionError', callback: (origin: URL, targets: readonly Dispatcher[], error: Errors.UndiciError) => void): this
|
||||
off (eventName: 'drain', callback: (origin: URL) => void): this
|
||||
|
||||
addListener (eventName: 'connect', callback: (origin: URL, targets: readonly Dispatcher[]) => void): this
|
||||
addListener (eventName: 'disconnect', callback: (origin: URL, targets: readonly Dispatcher[], error: Errors.UndiciError) => void): this
|
||||
addListener (eventName: 'connectionError', callback: (origin: URL, targets: readonly Dispatcher[], error: Errors.UndiciError) => void): this
|
||||
addListener (eventName: 'drain', callback: (origin: URL) => void): this
|
||||
|
||||
removeListener (eventName: 'connect', callback: (origin: URL, targets: readonly Dispatcher[]) => void): this
|
||||
removeListener (eventName: 'disconnect', callback: (origin: URL, targets: readonly Dispatcher[], error: Errors.UndiciError) => void): this
|
||||
removeListener (eventName: 'connectionError', callback: (origin: URL, targets: readonly Dispatcher[], error: Errors.UndiciError) => void): this
|
||||
removeListener (eventName: 'drain', callback: (origin: URL) => void): this
|
||||
|
||||
prependListener (eventName: 'connect', callback: (origin: URL, targets: readonly Dispatcher[]) => void): this
|
||||
prependListener (eventName: 'disconnect', callback: (origin: URL, targets: readonly Dispatcher[], error: Errors.UndiciError) => void): this
|
||||
prependListener (eventName: 'connectionError', callback: (origin: URL, targets: readonly Dispatcher[], error: Errors.UndiciError) => void): this
|
||||
prependListener (eventName: 'drain', callback: (origin: URL) => void): this
|
||||
|
||||
prependOnceListener (eventName: 'connect', callback: (origin: URL, targets: readonly Dispatcher[]) => void): this
|
||||
prependOnceListener (eventName: 'disconnect', callback: (origin: URL, targets: readonly Dispatcher[], error: Errors.UndiciError) => void): this
|
||||
prependOnceListener (eventName: 'connectionError', callback: (origin: URL, targets: readonly Dispatcher[], error: Errors.UndiciError) => void): this
|
||||
prependOnceListener (eventName: 'drain', callback: (origin: URL) => void): this
|
||||
|
||||
listeners (eventName: 'connect'): ((origin: URL, targets: readonly Dispatcher[]) => void)[]
|
||||
listeners (eventName: 'disconnect'): ((origin: URL, targets: readonly Dispatcher[], error: Errors.UndiciError) => void)[]
|
||||
listeners (eventName: 'connectionError'): ((origin: URL, targets: readonly Dispatcher[], error: Errors.UndiciError) => void)[]
|
||||
listeners (eventName: 'drain'): ((origin: URL) => void)[]
|
||||
|
||||
rawListeners (eventName: 'connect'): ((origin: URL, targets: readonly Dispatcher[]) => void)[]
|
||||
rawListeners (eventName: 'disconnect'): ((origin: URL, targets: readonly Dispatcher[], error: Errors.UndiciError) => void)[]
|
||||
rawListeners (eventName: 'connectionError'): ((origin: URL, targets: readonly Dispatcher[], error: Errors.UndiciError) => void)[]
|
||||
rawListeners (eventName: 'drain'): ((origin: URL) => void)[]
|
||||
|
||||
emit (eventName: 'connect', origin: URL, targets: readonly Dispatcher[]): boolean
|
||||
emit (eventName: 'disconnect', origin: URL, targets: readonly Dispatcher[], error: Errors.UndiciError): boolean
|
||||
emit (eventName: 'connectionError', origin: URL, targets: readonly Dispatcher[], error: Errors.UndiciError): boolean
|
||||
emit (eventName: 'drain', origin: URL): boolean
|
||||
}
|
||||
|
||||
declare namespace Dispatcher {
|
||||
export interface ComposedDispatcher extends Dispatcher {}
|
||||
export type Dispatch = Dispatcher['dispatch']
|
||||
export type DispatcherComposeInterceptor = (dispatch: Dispatch) => Dispatch
|
||||
export interface DispatchOptions {
|
||||
origin?: string | URL;
|
||||
path: string;
|
||||
method: HttpMethod;
|
||||
/** Default: `null` */
|
||||
body?: string | Buffer | Uint8Array | Readable | null | FormData;
|
||||
/** Default: `null` */
|
||||
headers?: UndiciHeaders;
|
||||
/** Query string params to be embedded in the request URL. Default: `null` */
|
||||
query?: Record<string, any>;
|
||||
/** Whether the requests can be safely retried or not. If `false` the request won't be sent until all preceding requests in the pipeline have completed. Default: `true` if `method` is `HEAD` or `GET`. */
|
||||
idempotent?: boolean;
|
||||
/** Whether the response is expected to take a long time and would end up blocking the pipeline. When this is set to `true` further pipelining will be avoided on the same connection until headers have been received. Defaults to `method !== 'HEAD'`. */
|
||||
blocking?: boolean;
|
||||
/** Upgrade the request. Should be used to specify the kind of upgrade i.e. `'Websocket'`. Default: `method === 'CONNECT' || null`. */
|
||||
upgrade?: boolean | string | null;
|
||||
/** The amount of time, in milliseconds, the parser will wait to receive the complete HTTP headers. Defaults to 300 seconds. */
|
||||
headersTimeout?: number | null;
|
||||
/** The timeout after which a request will time out, in milliseconds. Monitors time between receiving body data. Use 0 to disable it entirely. Defaults to 300 seconds. */
|
||||
bodyTimeout?: number | null;
|
||||
/** Whether the request should stablish a keep-alive or not. Default `false` */
|
||||
reset?: boolean;
|
||||
/** Whether Undici should throw an error upon receiving a 4xx or 5xx response from the server. Defaults to false */
|
||||
throwOnError?: boolean;
|
||||
/** For H2, it appends the expect: 100-continue header, and halts the request body until a 100-continue is received from the remote server */
|
||||
expectContinue?: boolean;
|
||||
}
|
||||
export interface ConnectOptions<TOpaque = null> {
|
||||
origin: string | URL;
|
||||
path: string;
|
||||
/** Default: `null` */
|
||||
headers?: UndiciHeaders;
|
||||
/** Default: `null` */
|
||||
signal?: AbortSignal | EventEmitter | null;
|
||||
/** This argument parameter is passed through to `ConnectData` */
|
||||
opaque?: TOpaque;
|
||||
/** Default: false */
|
||||
redirectionLimitReached?: boolean;
|
||||
/** Default: `null` */
|
||||
responseHeaders?: 'raw' | null;
|
||||
}
|
||||
export interface RequestOptions<TOpaque = null> extends DispatchOptions {
|
||||
/** Default: `null` */
|
||||
opaque?: TOpaque;
|
||||
/** Default: `null` */
|
||||
signal?: AbortSignal | EventEmitter | null;
|
||||
/** Default: false */
|
||||
redirectionLimitReached?: boolean;
|
||||
/** Default: `null` */
|
||||
onInfo?: (info: { statusCode: number, headers: Record<string, string | string[]> }) => void;
|
||||
/** Default: `null` */
|
||||
responseHeaders?: 'raw' | null;
|
||||
/** Default: `64 KiB` */
|
||||
highWaterMark?: number;
|
||||
}
|
||||
export interface PipelineOptions<TOpaque = null> extends RequestOptions<TOpaque> {
|
||||
/** `true` if the `handler` will return an object stream. Default: `false` */
|
||||
objectMode?: boolean;
|
||||
}
|
||||
export interface UpgradeOptions {
|
||||
path: string;
|
||||
/** Default: `'GET'` */
|
||||
method?: string;
|
||||
/** Default: `null` */
|
||||
headers?: UndiciHeaders;
|
||||
/** A string of comma separated protocols, in descending preference order. Default: `'Websocket'` */
|
||||
protocol?: string;
|
||||
/** Default: `null` */
|
||||
signal?: AbortSignal | EventEmitter | null;
|
||||
/** Default: false */
|
||||
redirectionLimitReached?: boolean;
|
||||
/** Default: `null` */
|
||||
responseHeaders?: 'raw' | null;
|
||||
}
|
||||
export interface ConnectData<TOpaque = null> {
|
||||
statusCode: number;
|
||||
headers: IncomingHttpHeaders;
|
||||
socket: Duplex;
|
||||
opaque: TOpaque;
|
||||
}
|
||||
export interface ResponseData<TOpaque = null> {
|
||||
statusCode: number;
|
||||
headers: IncomingHttpHeaders;
|
||||
body: BodyReadable & BodyMixin;
|
||||
trailers: Record<string, string>;
|
||||
opaque: TOpaque;
|
||||
context: object;
|
||||
}
|
||||
export interface PipelineHandlerData<TOpaque = null> {
|
||||
statusCode: number;
|
||||
headers: IncomingHttpHeaders;
|
||||
opaque: TOpaque;
|
||||
body: BodyReadable;
|
||||
context: object;
|
||||
}
|
||||
export interface StreamData<TOpaque = null> {
|
||||
opaque: TOpaque;
|
||||
trailers: Record<string, string>;
|
||||
}
|
||||
export interface UpgradeData<TOpaque = null> {
|
||||
headers: IncomingHttpHeaders;
|
||||
socket: Duplex;
|
||||
opaque: TOpaque;
|
||||
}
|
||||
export interface StreamFactoryData<TOpaque = null> {
|
||||
statusCode: number;
|
||||
headers: IncomingHttpHeaders;
|
||||
opaque: TOpaque;
|
||||
context: object;
|
||||
}
|
||||
export type StreamFactory<TOpaque = null> = (data: StreamFactoryData<TOpaque>) => Writable
|
||||
|
||||
export interface DispatchController {
|
||||
get aborted () : boolean
|
||||
get paused () : boolean
|
||||
get reason () : Error | null
|
||||
abort (reason: Error): void
|
||||
pause(): void
|
||||
resume(): void
|
||||
}
|
||||
|
||||
export interface DispatchHandler {
|
||||
onRequestStart?(controller: DispatchController, context: any): void;
|
||||
onRequestUpgrade?(controller: DispatchController, statusCode: number, headers: IncomingHttpHeaders, socket: Duplex): void;
|
||||
onResponseStart?(controller: DispatchController, statusCode: number, headers: IncomingHttpHeaders, statusMessage?: string): void;
|
||||
onResponseData?(controller: DispatchController, chunk: Buffer): void;
|
||||
onResponseEnd?(controller: DispatchController, trailers: IncomingHttpHeaders): void;
|
||||
onResponseError?(controller: DispatchController, error: Error): void;
|
||||
|
||||
/** Invoked before request is dispatched on socket. May be invoked multiple times when a request is retried when the request at the head of the pipeline fails. */
|
||||
/** @deprecated */
|
||||
onConnect?(abort: (err?: Error) => void): void;
|
||||
/** Invoked when an error has occurred. */
|
||||
/** @deprecated */
|
||||
onError?(err: Error): void;
|
||||
/** Invoked when request is upgraded either due to a `Upgrade` header or `CONNECT` method. */
|
||||
/** @deprecated */
|
||||
onUpgrade?(statusCode: number, headers: Buffer[] | string[] | null, socket: Duplex): void;
|
||||
/** Invoked when response is received, before headers have been read. **/
|
||||
/** @deprecated */
|
||||
onResponseStarted?(): void;
|
||||
/** Invoked when statusCode and headers have been received. May be invoked multiple times due to 1xx informational headers. */
|
||||
/** @deprecated */
|
||||
onHeaders?(statusCode: number, headers: Buffer[], resume: () => void, statusText: string): boolean;
|
||||
/** Invoked when response payload data is received. */
|
||||
/** @deprecated */
|
||||
onData?(chunk: Buffer): boolean;
|
||||
/** Invoked when response payload and trailers have been received and the request has completed. */
|
||||
/** @deprecated */
|
||||
onComplete?(trailers: string[] | null): void;
|
||||
/** Invoked when a body chunk is sent to the server. May be invoked multiple times for chunked requests */
|
||||
/** @deprecated */
|
||||
onBodySent?(chunkSize: number, totalBytesSent: number): void;
|
||||
}
|
||||
export type PipelineHandler<TOpaque = null> = (data: PipelineHandlerData<TOpaque>) => Readable
|
||||
export type HttpMethod = Autocomplete<'GET' | 'HEAD' | 'POST' | 'PUT' | 'DELETE' | 'CONNECT' | 'OPTIONS' | 'TRACE' | 'PATCH'>
|
||||
|
||||
/**
|
||||
* @link https://fetch.spec.whatwg.org/#body-mixin
|
||||
*/
|
||||
interface BodyMixin {
|
||||
readonly body?: never;
|
||||
readonly bodyUsed: boolean;
|
||||
arrayBuffer(): Promise<ArrayBuffer>;
|
||||
blob(): Promise<Blob>;
|
||||
bytes(): Promise<Uint8Array>;
|
||||
formData(): Promise<never>;
|
||||
json(): Promise<unknown>;
|
||||
text(): Promise<string>;
|
||||
}
|
||||
|
||||
export interface DispatchInterceptor {
|
||||
(dispatch: Dispatch): Dispatch
|
||||
}
|
||||
}
|
||||
22
node_modules/undici-types/env-http-proxy-agent.d.ts
generated
vendored
22
node_modules/undici-types/env-http-proxy-agent.d.ts
generated
vendored
@ -1,22 +0,0 @@
|
||||
import Agent from './agent'
|
||||
import ProxyAgent from './proxy-agent'
|
||||
import Dispatcher from './dispatcher'
|
||||
|
||||
export default EnvHttpProxyAgent
|
||||
|
||||
declare class EnvHttpProxyAgent extends Dispatcher {
|
||||
constructor (opts?: EnvHttpProxyAgent.Options)
|
||||
|
||||
dispatch (options: Agent.DispatchOptions, handler: Dispatcher.DispatchHandler): boolean
|
||||
}
|
||||
|
||||
declare namespace EnvHttpProxyAgent {
|
||||
export interface Options extends Omit<ProxyAgent.Options, 'uri'> {
|
||||
/** Overrides the value of the HTTP_PROXY environment variable */
|
||||
httpProxy?: string;
|
||||
/** Overrides the value of the HTTPS_PROXY environment variable */
|
||||
httpsProxy?: string;
|
||||
/** Overrides the value of the NO_PROXY environment variable */
|
||||
noProxy?: string;
|
||||
}
|
||||
}
|
||||
161
node_modules/undici-types/errors.d.ts
generated
vendored
161
node_modules/undici-types/errors.d.ts
generated
vendored
@ -1,161 +0,0 @@
|
||||
import { IncomingHttpHeaders } from './header'
|
||||
import Client from './client'
|
||||
|
||||
export default Errors
|
||||
|
||||
declare namespace Errors {
|
||||
export class UndiciError extends Error {
|
||||
name: string
|
||||
code: string
|
||||
}
|
||||
|
||||
/** Connect timeout error. */
|
||||
export class ConnectTimeoutError extends UndiciError {
|
||||
name: 'ConnectTimeoutError'
|
||||
code: 'UND_ERR_CONNECT_TIMEOUT'
|
||||
}
|
||||
|
||||
/** A header exceeds the `headersTimeout` option. */
|
||||
export class HeadersTimeoutError extends UndiciError {
|
||||
name: 'HeadersTimeoutError'
|
||||
code: 'UND_ERR_HEADERS_TIMEOUT'
|
||||
}
|
||||
|
||||
/** Headers overflow error. */
|
||||
export class HeadersOverflowError extends UndiciError {
|
||||
name: 'HeadersOverflowError'
|
||||
code: 'UND_ERR_HEADERS_OVERFLOW'
|
||||
}
|
||||
|
||||
/** A body exceeds the `bodyTimeout` option. */
|
||||
export class BodyTimeoutError extends UndiciError {
|
||||
name: 'BodyTimeoutError'
|
||||
code: 'UND_ERR_BODY_TIMEOUT'
|
||||
}
|
||||
|
||||
export class ResponseError extends UndiciError {
|
||||
constructor (
|
||||
message: string,
|
||||
code: number,
|
||||
options: {
|
||||
headers?: IncomingHttpHeaders | string[] | null,
|
||||
body?: null | Record<string, any> | string
|
||||
}
|
||||
)
|
||||
name: 'ResponseError'
|
||||
code: 'UND_ERR_RESPONSE'
|
||||
statusCode: number
|
||||
body: null | Record<string, any> | string
|
||||
headers: IncomingHttpHeaders | string[] | null
|
||||
}
|
||||
|
||||
/** Passed an invalid argument. */
|
||||
export class InvalidArgumentError extends UndiciError {
|
||||
name: 'InvalidArgumentError'
|
||||
code: 'UND_ERR_INVALID_ARG'
|
||||
}
|
||||
|
||||
/** Returned an invalid value. */
|
||||
export class InvalidReturnValueError extends UndiciError {
|
||||
name: 'InvalidReturnValueError'
|
||||
code: 'UND_ERR_INVALID_RETURN_VALUE'
|
||||
}
|
||||
|
||||
/** The request has been aborted by the user. */
|
||||
export class RequestAbortedError extends UndiciError {
|
||||
name: 'AbortError'
|
||||
code: 'UND_ERR_ABORTED'
|
||||
}
|
||||
|
||||
/** Expected error with reason. */
|
||||
export class InformationalError extends UndiciError {
|
||||
name: 'InformationalError'
|
||||
code: 'UND_ERR_INFO'
|
||||
}
|
||||
|
||||
/** Request body length does not match content-length header. */
|
||||
export class RequestContentLengthMismatchError extends UndiciError {
|
||||
name: 'RequestContentLengthMismatchError'
|
||||
code: 'UND_ERR_REQ_CONTENT_LENGTH_MISMATCH'
|
||||
}
|
||||
|
||||
/** Response body length does not match content-length header. */
|
||||
export class ResponseContentLengthMismatchError extends UndiciError {
|
||||
name: 'ResponseContentLengthMismatchError'
|
||||
code: 'UND_ERR_RES_CONTENT_LENGTH_MISMATCH'
|
||||
}
|
||||
|
||||
/** Trying to use a destroyed client. */
|
||||
export class ClientDestroyedError extends UndiciError {
|
||||
name: 'ClientDestroyedError'
|
||||
code: 'UND_ERR_DESTROYED'
|
||||
}
|
||||
|
||||
/** Trying to use a closed client. */
|
||||
export class ClientClosedError extends UndiciError {
|
||||
name: 'ClientClosedError'
|
||||
code: 'UND_ERR_CLOSED'
|
||||
}
|
||||
|
||||
/** There is an error with the socket. */
|
||||
export class SocketError extends UndiciError {
|
||||
name: 'SocketError'
|
||||
code: 'UND_ERR_SOCKET'
|
||||
socket: Client.SocketInfo | null
|
||||
}
|
||||
|
||||
/** Encountered unsupported functionality. */
|
||||
export class NotSupportedError extends UndiciError {
|
||||
name: 'NotSupportedError'
|
||||
code: 'UND_ERR_NOT_SUPPORTED'
|
||||
}
|
||||
|
||||
/** No upstream has been added to the BalancedPool. */
|
||||
export class BalancedPoolMissingUpstreamError extends UndiciError {
|
||||
name: 'MissingUpstreamError'
|
||||
code: 'UND_ERR_BPL_MISSING_UPSTREAM'
|
||||
}
|
||||
|
||||
export class HTTPParserError extends UndiciError {
|
||||
name: 'HTTPParserError'
|
||||
code: string
|
||||
}
|
||||
|
||||
/** The response exceed the length allowed. */
|
||||
export class ResponseExceededMaxSizeError extends UndiciError {
|
||||
name: 'ResponseExceededMaxSizeError'
|
||||
code: 'UND_ERR_RES_EXCEEDED_MAX_SIZE'
|
||||
}
|
||||
|
||||
export class RequestRetryError extends UndiciError {
|
||||
constructor (
|
||||
message: string,
|
||||
statusCode: number,
|
||||
headers?: IncomingHttpHeaders | string[] | null,
|
||||
body?: null | Record<string, any> | string
|
||||
)
|
||||
name: 'RequestRetryError'
|
||||
code: 'UND_ERR_REQ_RETRY'
|
||||
statusCode: number
|
||||
data: {
|
||||
count: number;
|
||||
}
|
||||
|
||||
headers: Record<string, string | string[]>
|
||||
}
|
||||
|
||||
export class SecureProxyConnectionError extends UndiciError {
|
||||
constructor (
|
||||
cause?: Error,
|
||||
message?: string,
|
||||
options?: Record<any, any>
|
||||
)
|
||||
name: 'SecureProxyConnectionError'
|
||||
code: 'UND_ERR_PRX_TLS'
|
||||
}
|
||||
|
||||
class MaxOriginsReachedError extends UndiciError {
|
||||
name: 'MaxOriginsReachedError'
|
||||
code: 'UND_ERR_MAX_ORIGINS_REACHED'
|
||||
}
|
||||
}
|
||||
66
node_modules/undici-types/eventsource.d.ts
generated
vendored
66
node_modules/undici-types/eventsource.d.ts
generated
vendored
@ -1,66 +0,0 @@
|
||||
import { MessageEvent, ErrorEvent } from './websocket'
|
||||
import Dispatcher from './dispatcher'
|
||||
|
||||
import {
|
||||
EventListenerOptions,
|
||||
AddEventListenerOptions,
|
||||
EventListenerOrEventListenerObject
|
||||
} from './patch'
|
||||
|
||||
interface EventSourceEventMap {
|
||||
error: ErrorEvent
|
||||
message: MessageEvent
|
||||
open: Event
|
||||
}
|
||||
|
||||
interface EventSource extends EventTarget {
|
||||
close(): void
|
||||
readonly CLOSED: 2
|
||||
readonly CONNECTING: 0
|
||||
readonly OPEN: 1
|
||||
onerror: ((this: EventSource, ev: ErrorEvent) => any) | null
|
||||
onmessage: ((this: EventSource, ev: MessageEvent) => any) | null
|
||||
onopen: ((this: EventSource, ev: Event) => any) | null
|
||||
readonly readyState: 0 | 1 | 2
|
||||
readonly url: string
|
||||
readonly withCredentials: boolean
|
||||
|
||||
addEventListener<K extends keyof EventSourceEventMap>(
|
||||
type: K,
|
||||
listener: (this: EventSource, ev: EventSourceEventMap[K]) => any,
|
||||
options?: boolean | AddEventListenerOptions
|
||||
): void
|
||||
addEventListener(
|
||||
type: string,
|
||||
listener: EventListenerOrEventListenerObject,
|
||||
options?: boolean | AddEventListenerOptions
|
||||
): void
|
||||
removeEventListener<K extends keyof EventSourceEventMap>(
|
||||
type: K,
|
||||
listener: (this: EventSource, ev: EventSourceEventMap[K]) => any,
|
||||
options?: boolean | EventListenerOptions
|
||||
): void
|
||||
removeEventListener(
|
||||
type: string,
|
||||
listener: EventListenerOrEventListenerObject,
|
||||
options?: boolean | EventListenerOptions
|
||||
): void
|
||||
}
|
||||
|
||||
export declare const EventSource: {
|
||||
prototype: EventSource
|
||||
new (url: string | URL, init?: EventSourceInit): EventSource
|
||||
readonly CLOSED: 2
|
||||
readonly CONNECTING: 0
|
||||
readonly OPEN: 1
|
||||
}
|
||||
|
||||
interface EventSourceInit {
|
||||
withCredentials?: boolean
|
||||
// @deprecated use `node.dispatcher` instead
|
||||
dispatcher?: Dispatcher
|
||||
node?: {
|
||||
dispatcher?: Dispatcher
|
||||
reconnectionTime?: number
|
||||
}
|
||||
}
|
||||
211
node_modules/undici-types/fetch.d.ts
generated
vendored
211
node_modules/undici-types/fetch.d.ts
generated
vendored
@ -1,211 +0,0 @@
|
||||
// based on https://github.com/Ethan-Arrowood/undici-fetch/blob/249269714db874351589d2d364a0645d5160ae71/index.d.ts (MIT license)
|
||||
// and https://github.com/node-fetch/node-fetch/blob/914ce6be5ec67a8bab63d68510aabf07cb818b6d/index.d.ts (MIT license)
|
||||
/// <reference types="node" />
|
||||
|
||||
import { Blob } from 'buffer'
|
||||
import { URL, URLSearchParams } from 'url'
|
||||
import { ReadableStream } from 'stream/web'
|
||||
import { FormData } from './formdata'
|
||||
import { HeaderRecord } from './header'
|
||||
import Dispatcher from './dispatcher'
|
||||
|
||||
export type RequestInfo = string | URL | Request
|
||||
|
||||
export declare function fetch (
|
||||
input: RequestInfo,
|
||||
init?: RequestInit
|
||||
): Promise<Response>
|
||||
|
||||
export type BodyInit =
|
||||
| ArrayBuffer
|
||||
| AsyncIterable<Uint8Array>
|
||||
| Blob
|
||||
| FormData
|
||||
| Iterable<Uint8Array>
|
||||
| NodeJS.ArrayBufferView
|
||||
| URLSearchParams
|
||||
| null
|
||||
| string
|
||||
|
||||
export class BodyMixin {
|
||||
readonly body: ReadableStream | null
|
||||
readonly bodyUsed: boolean
|
||||
|
||||
readonly arrayBuffer: () => Promise<ArrayBuffer>
|
||||
readonly blob: () => Promise<Blob>
|
||||
readonly bytes: () => Promise<Uint8Array>
|
||||
/**
|
||||
* @deprecated This method is not recommended for parsing multipart/form-data bodies in server environments.
|
||||
* It is recommended to use a library such as [@fastify/busboy](https://www.npmjs.com/package/@fastify/busboy) as follows:
|
||||
*
|
||||
* @example
|
||||
* ```js
|
||||
* import { Busboy } from '@fastify/busboy'
|
||||
* import { Readable } from 'node:stream'
|
||||
*
|
||||
* const response = await fetch('...')
|
||||
* const busboy = new Busboy({ headers: { 'content-type': response.headers.get('content-type') } })
|
||||
*
|
||||
* // handle events emitted from `busboy`
|
||||
*
|
||||
* Readable.fromWeb(response.body).pipe(busboy)
|
||||
* ```
|
||||
*/
|
||||
readonly formData: () => Promise<FormData>
|
||||
readonly json: () => Promise<unknown>
|
||||
readonly text: () => Promise<string>
|
||||
}
|
||||
|
||||
export interface SpecIterator<T, TReturn = any, TNext = undefined> {
|
||||
next(...args: [] | [TNext]): IteratorResult<T, TReturn>;
|
||||
}
|
||||
|
||||
export interface SpecIterableIterator<T> extends SpecIterator<T> {
|
||||
[Symbol.iterator](): SpecIterableIterator<T>;
|
||||
}
|
||||
|
||||
export interface SpecIterable<T> {
|
||||
[Symbol.iterator](): SpecIterator<T>;
|
||||
}
|
||||
|
||||
export type HeadersInit = [string, string][] | HeaderRecord | Headers
|
||||
|
||||
export declare class Headers implements SpecIterable<[string, string]> {
|
||||
constructor (init?: HeadersInit)
|
||||
readonly append: (name: string, value: string) => void
|
||||
readonly delete: (name: string) => void
|
||||
readonly get: (name: string) => string | null
|
||||
readonly has: (name: string) => boolean
|
||||
readonly set: (name: string, value: string) => void
|
||||
readonly getSetCookie: () => string[]
|
||||
readonly forEach: (
|
||||
callbackfn: (value: string, key: string, iterable: Headers) => void,
|
||||
thisArg?: unknown
|
||||
) => void
|
||||
|
||||
readonly keys: () => SpecIterableIterator<string>
|
||||
readonly values: () => SpecIterableIterator<string>
|
||||
readonly entries: () => SpecIterableIterator<[string, string]>
|
||||
readonly [Symbol.iterator]: () => SpecIterableIterator<[string, string]>
|
||||
}
|
||||
|
||||
export type RequestCache =
|
||||
| 'default'
|
||||
| 'force-cache'
|
||||
| 'no-cache'
|
||||
| 'no-store'
|
||||
| 'only-if-cached'
|
||||
| 'reload'
|
||||
|
||||
export type RequestCredentials = 'omit' | 'include' | 'same-origin'
|
||||
|
||||
type RequestDestination =
|
||||
| ''
|
||||
| 'audio'
|
||||
| 'audioworklet'
|
||||
| 'document'
|
||||
| 'embed'
|
||||
| 'font'
|
||||
| 'image'
|
||||
| 'manifest'
|
||||
| 'object'
|
||||
| 'paintworklet'
|
||||
| 'report'
|
||||
| 'script'
|
||||
| 'sharedworker'
|
||||
| 'style'
|
||||
| 'track'
|
||||
| 'video'
|
||||
| 'worker'
|
||||
| 'xslt'
|
||||
|
||||
export interface RequestInit {
|
||||
body?: BodyInit | null
|
||||
cache?: RequestCache
|
||||
credentials?: RequestCredentials
|
||||
dispatcher?: Dispatcher
|
||||
duplex?: RequestDuplex
|
||||
headers?: HeadersInit
|
||||
integrity?: string
|
||||
keepalive?: boolean
|
||||
method?: string
|
||||
mode?: RequestMode
|
||||
redirect?: RequestRedirect
|
||||
referrer?: string
|
||||
referrerPolicy?: ReferrerPolicy
|
||||
signal?: AbortSignal | null
|
||||
window?: null
|
||||
}
|
||||
|
||||
export type ReferrerPolicy =
|
||||
| ''
|
||||
| 'no-referrer'
|
||||
| 'no-referrer-when-downgrade'
|
||||
| 'origin'
|
||||
| 'origin-when-cross-origin'
|
||||
| 'same-origin'
|
||||
| 'strict-origin'
|
||||
| 'strict-origin-when-cross-origin'
|
||||
| 'unsafe-url'
|
||||
|
||||
export type RequestMode = 'cors' | 'navigate' | 'no-cors' | 'same-origin'
|
||||
|
||||
export type RequestRedirect = 'error' | 'follow' | 'manual'
|
||||
|
||||
export type RequestDuplex = 'half'
|
||||
|
||||
export declare class Request extends BodyMixin {
|
||||
constructor (input: RequestInfo, init?: RequestInit)
|
||||
|
||||
readonly cache: RequestCache
|
||||
readonly credentials: RequestCredentials
|
||||
readonly destination: RequestDestination
|
||||
readonly headers: Headers
|
||||
readonly integrity: string
|
||||
readonly method: string
|
||||
readonly mode: RequestMode
|
||||
readonly redirect: RequestRedirect
|
||||
readonly referrer: string
|
||||
readonly referrerPolicy: ReferrerPolicy
|
||||
readonly url: string
|
||||
|
||||
readonly keepalive: boolean
|
||||
readonly signal: AbortSignal
|
||||
readonly duplex: RequestDuplex
|
||||
|
||||
readonly clone: () => Request
|
||||
}
|
||||
|
||||
export interface ResponseInit {
|
||||
readonly status?: number
|
||||
readonly statusText?: string
|
||||
readonly headers?: HeadersInit
|
||||
}
|
||||
|
||||
export type ResponseType =
|
||||
| 'basic'
|
||||
| 'cors'
|
||||
| 'default'
|
||||
| 'error'
|
||||
| 'opaque'
|
||||
| 'opaqueredirect'
|
||||
|
||||
export type ResponseRedirectStatus = 301 | 302 | 303 | 307 | 308
|
||||
|
||||
export declare class Response extends BodyMixin {
|
||||
constructor (body?: BodyInit, init?: ResponseInit)
|
||||
|
||||
readonly headers: Headers
|
||||
readonly ok: boolean
|
||||
readonly status: number
|
||||
readonly statusText: string
|
||||
readonly type: ResponseType
|
||||
readonly url: string
|
||||
readonly redirected: boolean
|
||||
|
||||
readonly clone: () => Response
|
||||
|
||||
static error (): Response
|
||||
static json (data: any, init?: ResponseInit): Response
|
||||
static redirect (url: string | URL, status: ResponseRedirectStatus): Response
|
||||
}
|
||||
108
node_modules/undici-types/formdata.d.ts
generated
vendored
108
node_modules/undici-types/formdata.d.ts
generated
vendored
@ -1,108 +0,0 @@
|
||||
// Based on https://github.com/octet-stream/form-data/blob/2d0f0dc371517444ce1f22cdde13f51995d0953a/lib/FormData.ts (MIT)
|
||||
/// <reference types="node" />
|
||||
|
||||
import { File } from 'buffer'
|
||||
import { SpecIterableIterator } from './fetch'
|
||||
|
||||
/**
|
||||
* A `string` or `File` that represents a single value from a set of `FormData` key-value pairs.
|
||||
*/
|
||||
declare type FormDataEntryValue = string | File
|
||||
|
||||
/**
|
||||
* Provides a way to easily construct a set of key/value pairs representing form fields and their values, which can then be easily sent using fetch().
|
||||
*/
|
||||
export declare class FormData {
|
||||
/**
|
||||
* Appends a new value onto an existing key inside a FormData object,
|
||||
* or adds the key if it does not already exist.
|
||||
*
|
||||
* The difference between `set()` and `append()` is that if the specified key already exists, `set()` will overwrite all existing values with the new one, whereas `append()` will append the new value onto the end of the existing set of values.
|
||||
*
|
||||
* @param name The name of the field whose data is contained in `value`.
|
||||
* @param value The field's value. This can be [`Blob`](https://developer.mozilla.org/en-US/docs/Web/API/Blob)
|
||||
or [`File`](https://developer.mozilla.org/en-US/docs/Web/API/File). If none of these are specified the value is converted to a string.
|
||||
* @param fileName The filename reported to the server, when a Blob or File is passed as the second parameter. The default filename for Blob objects is "blob". The default filename for File objects is the file's filename.
|
||||
*/
|
||||
append (name: string, value: unknown, fileName?: string): void
|
||||
|
||||
/**
|
||||
* Set a new value for an existing key inside FormData,
|
||||
* or add the new field if it does not already exist.
|
||||
*
|
||||
* @param name The name of the field whose data is contained in `value`.
|
||||
* @param value The field's value. This can be [`Blob`](https://developer.mozilla.org/en-US/docs/Web/API/Blob)
|
||||
or [`File`](https://developer.mozilla.org/en-US/docs/Web/API/File). If none of these are specified the value is converted to a string.
|
||||
* @param fileName The filename reported to the server, when a Blob or File is passed as the second parameter. The default filename for Blob objects is "blob". The default filename for File objects is the file's filename.
|
||||
*
|
||||
*/
|
||||
set (name: string, value: unknown, fileName?: string): void
|
||||
|
||||
/**
|
||||
* Returns the first value associated with a given key from within a `FormData` object.
|
||||
* If you expect multiple values and want all of them, use the `getAll()` method instead.
|
||||
*
|
||||
* @param {string} name A name of the value you want to retrieve.
|
||||
*
|
||||
* @returns A `FormDataEntryValue` containing the value. If the key doesn't exist, the method returns null.
|
||||
*/
|
||||
get (name: string): FormDataEntryValue | null
|
||||
|
||||
/**
|
||||
* Returns all the values associated with a given key from within a `FormData` object.
|
||||
*
|
||||
* @param {string} name A name of the value you want to retrieve.
|
||||
*
|
||||
* @returns An array of `FormDataEntryValue` whose key matches the value passed in the `name` parameter. If the key doesn't exist, the method returns an empty list.
|
||||
*/
|
||||
getAll (name: string): FormDataEntryValue[]
|
||||
|
||||
/**
|
||||
* Returns a boolean stating whether a `FormData` object contains a certain key.
|
||||
*
|
||||
* @param name A string representing the name of the key you want to test for.
|
||||
*
|
||||
* @return A boolean value.
|
||||
*/
|
||||
has (name: string): boolean
|
||||
|
||||
/**
|
||||
* Deletes a key and its value(s) from a `FormData` object.
|
||||
*
|
||||
* @param name The name of the key you want to delete.
|
||||
*/
|
||||
delete (name: string): void
|
||||
|
||||
/**
|
||||
* Executes given callback function for each field of the FormData instance
|
||||
*/
|
||||
forEach: (
|
||||
callbackfn: (value: FormDataEntryValue, key: string, iterable: FormData) => void,
|
||||
thisArg?: unknown
|
||||
) => void
|
||||
|
||||
/**
|
||||
* Returns an [`iterator`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols) allowing to go through all keys contained in this `FormData` object.
|
||||
* Each key is a `string`.
|
||||
*/
|
||||
keys: () => SpecIterableIterator<string>
|
||||
|
||||
/**
|
||||
* Returns an [`iterator`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols) allowing to go through all values contained in this object `FormData` object.
|
||||
* Each value is a [`FormDataValue`](https://developer.mozilla.org/en-US/docs/Web/API/FormDataEntryValue).
|
||||
*/
|
||||
values: () => SpecIterableIterator<FormDataEntryValue>
|
||||
|
||||
/**
|
||||
* Returns an [`iterator`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols) allowing to go through the `FormData` key/value pairs.
|
||||
* The key of each pair is a string; the value is a [`FormDataValue`](https://developer.mozilla.org/en-US/docs/Web/API/FormDataEntryValue).
|
||||
*/
|
||||
entries: () => SpecIterableIterator<[string, FormDataEntryValue]>
|
||||
|
||||
/**
|
||||
* An alias for FormData#entries()
|
||||
*/
|
||||
[Symbol.iterator]: () => SpecIterableIterator<[string, FormDataEntryValue]>
|
||||
|
||||
readonly [Symbol.toStringTag]: string
|
||||
}
|
||||
9
node_modules/undici-types/global-dispatcher.d.ts
generated
vendored
9
node_modules/undici-types/global-dispatcher.d.ts
generated
vendored
@ -1,9 +0,0 @@
|
||||
import Dispatcher from './dispatcher'
|
||||
|
||||
declare function setGlobalDispatcher<DispatcherImplementation extends Dispatcher> (dispatcher: DispatcherImplementation): void
|
||||
declare function getGlobalDispatcher (): Dispatcher
|
||||
|
||||
export {
|
||||
getGlobalDispatcher,
|
||||
setGlobalDispatcher
|
||||
}
|
||||
7
node_modules/undici-types/global-origin.d.ts
generated
vendored
7
node_modules/undici-types/global-origin.d.ts
generated
vendored
@ -1,7 +0,0 @@
|
||||
declare function setGlobalOrigin (origin: string | URL | undefined): void
|
||||
declare function getGlobalOrigin (): URL | undefined
|
||||
|
||||
export {
|
||||
setGlobalOrigin,
|
||||
getGlobalOrigin
|
||||
}
|
||||
73
node_modules/undici-types/h2c-client.d.ts
generated
vendored
73
node_modules/undici-types/h2c-client.d.ts
generated
vendored
@ -1,73 +0,0 @@
|
||||
import { URL } from 'url'
|
||||
import Dispatcher from './dispatcher'
|
||||
import buildConnector from './connector'
|
||||
|
||||
type H2ClientOptions = Omit<Dispatcher.ConnectOptions, 'origin'>
|
||||
|
||||
/**
|
||||
* A basic H2C client, mapped on top a single TCP connection. Pipelining is disabled by default.
|
||||
*/
|
||||
export class H2CClient extends Dispatcher {
|
||||
constructor (url: string | URL, options?: H2CClient.Options)
|
||||
/** Property to get and set the pipelining factor. */
|
||||
pipelining: number
|
||||
/** `true` after `client.close()` has been called. */
|
||||
closed: boolean
|
||||
/** `true` after `client.destroyed()` has been called or `client.close()` has been called and the client shutdown has completed. */
|
||||
destroyed: boolean
|
||||
|
||||
// Override dispatcher APIs.
|
||||
override connect (
|
||||
options: H2ClientOptions
|
||||
): Promise<Dispatcher.ConnectData>
|
||||
override connect (
|
||||
options: H2ClientOptions,
|
||||
callback: (err: Error | null, data: Dispatcher.ConnectData) => void
|
||||
): void
|
||||
}
|
||||
|
||||
export declare namespace H2CClient {
|
||||
export interface Options {
|
||||
/** The maximum length of request headers in bytes. Default: Node.js' `--max-http-header-size` or `16384` (16KiB). */
|
||||
maxHeaderSize?: number;
|
||||
/** The amount of time, in milliseconds, the parser will wait to receive the complete HTTP headers (Node 14 and above only). Default: `300e3` milliseconds (300s). */
|
||||
headersTimeout?: number;
|
||||
/** TODO */
|
||||
connectTimeout?: number;
|
||||
/** The timeout after which a request will time out, in milliseconds. Monitors time between receiving body data. Use `0` to disable it entirely. Default: `300e3` milliseconds (300s). */
|
||||
bodyTimeout?: number;
|
||||
/** the timeout, in milliseconds, after which a socket without active requests will time out. Monitors time between activity on a connected socket. This value may be overridden by *keep-alive* hints from the server. Default: `4e3` milliseconds (4s). */
|
||||
keepAliveTimeout?: number;
|
||||
/** the maximum allowed `idleTimeout`, in milliseconds, when overridden by *keep-alive* hints from the server. Default: `600e3` milliseconds (10min). */
|
||||
keepAliveMaxTimeout?: number;
|
||||
/** A number of milliseconds subtracted from server *keep-alive* hints when overriding `idleTimeout` to account for timing inaccuracies caused by e.g. transport latency. Default: `1e3` milliseconds (1s). */
|
||||
keepAliveTimeoutThreshold?: number;
|
||||
/** TODO */
|
||||
socketPath?: string;
|
||||
/** The amount of concurrent requests to be sent over the single TCP/TLS connection according to [RFC7230](https://tools.ietf.org/html/rfc7230#section-6.3.2). Default: `1`. */
|
||||
pipelining?: number;
|
||||
/** If `true`, an error is thrown when the request content-length header doesn't match the length of the request body. Default: `true`. */
|
||||
strictContentLength?: boolean;
|
||||
/** TODO */
|
||||
maxCachedSessions?: number;
|
||||
/** TODO */
|
||||
connect?: Omit<Partial<buildConnector.BuildOptions>, 'allowH2'> | buildConnector.connector;
|
||||
/** TODO */
|
||||
maxRequestsPerClient?: number;
|
||||
/** TODO */
|
||||
localAddress?: string;
|
||||
/** Max response body size in bytes, -1 is disabled */
|
||||
maxResponseSize?: number;
|
||||
/** Enables a family autodetection algorithm that loosely implements section 5 of RFC 8305. */
|
||||
autoSelectFamily?: boolean;
|
||||
/** The amount of time in milliseconds to wait for a connection attempt to finish before trying the next address when using the `autoSelectFamily` option. */
|
||||
autoSelectFamilyAttemptTimeout?: number;
|
||||
/**
|
||||
* @description Dictates the maximum number of concurrent streams for a single H2 session. It can be overridden by a SETTINGS remote frame.
|
||||
* @default 100
|
||||
*/
|
||||
maxConcurrentStreams?: number
|
||||
}
|
||||
}
|
||||
|
||||
export default H2CClient
|
||||
15
node_modules/undici-types/handlers.d.ts
generated
vendored
15
node_modules/undici-types/handlers.d.ts
generated
vendored
@ -1,15 +0,0 @@
|
||||
import Dispatcher from './dispatcher'
|
||||
|
||||
export declare class RedirectHandler implements Dispatcher.DispatchHandler {
|
||||
constructor (
|
||||
dispatch: Dispatcher.Dispatch,
|
||||
maxRedirections: number,
|
||||
opts: Dispatcher.DispatchOptions,
|
||||
handler: Dispatcher.DispatchHandler,
|
||||
redirectionLimitReached: boolean
|
||||
)
|
||||
}
|
||||
|
||||
export declare class DecoratorHandler implements Dispatcher.DispatchHandler {
|
||||
constructor (handler: Dispatcher.DispatchHandler)
|
||||
}
|
||||
160
node_modules/undici-types/header.d.ts
generated
vendored
160
node_modules/undici-types/header.d.ts
generated
vendored
@ -1,160 +0,0 @@
|
||||
import { Autocomplete } from './utility'
|
||||
|
||||
/**
|
||||
* The header type declaration of `undici`.
|
||||
*/
|
||||
export type IncomingHttpHeaders = Record<string, string | string[] | undefined>
|
||||
|
||||
type HeaderNames = Autocomplete<
|
||||
| 'Accept'
|
||||
| 'Accept-CH'
|
||||
| 'Accept-Charset'
|
||||
| 'Accept-Encoding'
|
||||
| 'Accept-Language'
|
||||
| 'Accept-Patch'
|
||||
| 'Accept-Post'
|
||||
| 'Accept-Ranges'
|
||||
| 'Access-Control-Allow-Credentials'
|
||||
| 'Access-Control-Allow-Headers'
|
||||
| 'Access-Control-Allow-Methods'
|
||||
| 'Access-Control-Allow-Origin'
|
||||
| 'Access-Control-Expose-Headers'
|
||||
| 'Access-Control-Max-Age'
|
||||
| 'Access-Control-Request-Headers'
|
||||
| 'Access-Control-Request-Method'
|
||||
| 'Age'
|
||||
| 'Allow'
|
||||
| 'Alt-Svc'
|
||||
| 'Alt-Used'
|
||||
| 'Authorization'
|
||||
| 'Cache-Control'
|
||||
| 'Clear-Site-Data'
|
||||
| 'Connection'
|
||||
| 'Content-Disposition'
|
||||
| 'Content-Encoding'
|
||||
| 'Content-Language'
|
||||
| 'Content-Length'
|
||||
| 'Content-Location'
|
||||
| 'Content-Range'
|
||||
| 'Content-Security-Policy'
|
||||
| 'Content-Security-Policy-Report-Only'
|
||||
| 'Content-Type'
|
||||
| 'Cookie'
|
||||
| 'Cross-Origin-Embedder-Policy'
|
||||
| 'Cross-Origin-Opener-Policy'
|
||||
| 'Cross-Origin-Resource-Policy'
|
||||
| 'Date'
|
||||
| 'Device-Memory'
|
||||
| 'ETag'
|
||||
| 'Expect'
|
||||
| 'Expect-CT'
|
||||
| 'Expires'
|
||||
| 'Forwarded'
|
||||
| 'From'
|
||||
| 'Host'
|
||||
| 'If-Match'
|
||||
| 'If-Modified-Since'
|
||||
| 'If-None-Match'
|
||||
| 'If-Range'
|
||||
| 'If-Unmodified-Since'
|
||||
| 'Keep-Alive'
|
||||
| 'Last-Modified'
|
||||
| 'Link'
|
||||
| 'Location'
|
||||
| 'Max-Forwards'
|
||||
| 'Origin'
|
||||
| 'Permissions-Policy'
|
||||
| 'Priority'
|
||||
| 'Proxy-Authenticate'
|
||||
| 'Proxy-Authorization'
|
||||
| 'Range'
|
||||
| 'Referer'
|
||||
| 'Referrer-Policy'
|
||||
| 'Retry-After'
|
||||
| 'Sec-Fetch-Dest'
|
||||
| 'Sec-Fetch-Mode'
|
||||
| 'Sec-Fetch-Site'
|
||||
| 'Sec-Fetch-User'
|
||||
| 'Sec-Purpose'
|
||||
| 'Sec-WebSocket-Accept'
|
||||
| 'Server'
|
||||
| 'Server-Timing'
|
||||
| 'Service-Worker-Navigation-Preload'
|
||||
| 'Set-Cookie'
|
||||
| 'SourceMap'
|
||||
| 'Strict-Transport-Security'
|
||||
| 'TE'
|
||||
| 'Timing-Allow-Origin'
|
||||
| 'Trailer'
|
||||
| 'Transfer-Encoding'
|
||||
| 'Upgrade'
|
||||
| 'Upgrade-Insecure-Requests'
|
||||
| 'User-Agent'
|
||||
| 'Vary'
|
||||
| 'Via'
|
||||
| 'WWW-Authenticate'
|
||||
| 'X-Content-Type-Options'
|
||||
| 'X-Frame-Options'
|
||||
>
|
||||
|
||||
type IANARegisteredMimeType = Autocomplete<
|
||||
| 'audio/aac'
|
||||
| 'video/x-msvideo'
|
||||
| 'image/avif'
|
||||
| 'video/av1'
|
||||
| 'application/octet-stream'
|
||||
| 'image/bmp'
|
||||
| 'text/css'
|
||||
| 'text/csv'
|
||||
| 'application/vnd.ms-fontobject'
|
||||
| 'application/epub+zip'
|
||||
| 'image/gif'
|
||||
| 'application/gzip'
|
||||
| 'text/html'
|
||||
| 'image/x-icon'
|
||||
| 'text/calendar'
|
||||
| 'image/jpeg'
|
||||
| 'text/javascript'
|
||||
| 'application/json'
|
||||
| 'application/ld+json'
|
||||
| 'audio/x-midi'
|
||||
| 'audio/mpeg'
|
||||
| 'video/mp4'
|
||||
| 'video/mpeg'
|
||||
| 'audio/ogg'
|
||||
| 'video/ogg'
|
||||
| 'application/ogg'
|
||||
| 'audio/opus'
|
||||
| 'font/otf'
|
||||
| 'application/pdf'
|
||||
| 'image/png'
|
||||
| 'application/rtf'
|
||||
| 'image/svg+xml'
|
||||
| 'image/tiff'
|
||||
| 'video/mp2t'
|
||||
| 'font/ttf'
|
||||
| 'text/plain'
|
||||
| 'application/wasm'
|
||||
| 'video/webm'
|
||||
| 'audio/webm'
|
||||
| 'image/webp'
|
||||
| 'font/woff'
|
||||
| 'font/woff2'
|
||||
| 'application/xhtml+xml'
|
||||
| 'application/xml'
|
||||
| 'application/zip'
|
||||
| 'video/3gpp'
|
||||
| 'video/3gpp2'
|
||||
| 'model/gltf+json'
|
||||
| 'model/gltf-binary'
|
||||
>
|
||||
|
||||
type KnownHeaderValues = {
|
||||
'content-type': IANARegisteredMimeType
|
||||
}
|
||||
|
||||
export type HeaderRecord = {
|
||||
[K in HeaderNames | Lowercase<HeaderNames>]?: Lowercase<K> extends keyof KnownHeaderValues
|
||||
? KnownHeaderValues[Lowercase<K>]
|
||||
: string
|
||||
}
|
||||
80
node_modules/undici-types/index.d.ts
generated
vendored
80
node_modules/undici-types/index.d.ts
generated
vendored
@ -1,80 +0,0 @@
|
||||
import Dispatcher from './dispatcher'
|
||||
import { setGlobalDispatcher, getGlobalDispatcher } from './global-dispatcher'
|
||||
import { setGlobalOrigin, getGlobalOrigin } from './global-origin'
|
||||
import Pool from './pool'
|
||||
import { RedirectHandler, DecoratorHandler } from './handlers'
|
||||
|
||||
import BalancedPool from './balanced-pool'
|
||||
import Client from './client'
|
||||
import H2CClient from './h2c-client'
|
||||
import buildConnector from './connector'
|
||||
import errors from './errors'
|
||||
import Agent from './agent'
|
||||
import MockClient from './mock-client'
|
||||
import MockPool from './mock-pool'
|
||||
import MockAgent from './mock-agent'
|
||||
import { SnapshotAgent } from './snapshot-agent'
|
||||
import { MockCallHistory, MockCallHistoryLog } from './mock-call-history'
|
||||
import mockErrors from './mock-errors'
|
||||
import ProxyAgent from './proxy-agent'
|
||||
import EnvHttpProxyAgent from './env-http-proxy-agent'
|
||||
import RetryHandler from './retry-handler'
|
||||
import RetryAgent from './retry-agent'
|
||||
import { request, pipeline, stream, connect, upgrade } from './api'
|
||||
import interceptors from './interceptors'
|
||||
|
||||
export * from './util'
|
||||
export * from './cookies'
|
||||
export * from './eventsource'
|
||||
export * from './fetch'
|
||||
export * from './formdata'
|
||||
export * from './diagnostics-channel'
|
||||
export * from './websocket'
|
||||
export * from './content-type'
|
||||
export * from './cache'
|
||||
export { Interceptable } from './mock-interceptor'
|
||||
|
||||
declare function globalThisInstall (): void
|
||||
|
||||
export { Dispatcher, BalancedPool, Pool, Client, buildConnector, errors, Agent, request, stream, pipeline, connect, upgrade, setGlobalDispatcher, getGlobalDispatcher, setGlobalOrigin, getGlobalOrigin, interceptors, MockClient, MockPool, MockAgent, SnapshotAgent, MockCallHistory, MockCallHistoryLog, mockErrors, ProxyAgent, EnvHttpProxyAgent, RedirectHandler, DecoratorHandler, RetryHandler, RetryAgent, H2CClient, globalThisInstall as install }
|
||||
export default Undici
|
||||
|
||||
declare namespace Undici {
|
||||
const Dispatcher: typeof import('./dispatcher').default
|
||||
const Pool: typeof import('./pool').default
|
||||
const RedirectHandler: typeof import ('./handlers').RedirectHandler
|
||||
const DecoratorHandler: typeof import ('./handlers').DecoratorHandler
|
||||
const RetryHandler: typeof import ('./retry-handler').default
|
||||
const BalancedPool: typeof import('./balanced-pool').default
|
||||
const Client: typeof import('./client').default
|
||||
const H2CClient: typeof import('./h2c-client').default
|
||||
const buildConnector: typeof import('./connector').default
|
||||
const errors: typeof import('./errors').default
|
||||
const Agent: typeof import('./agent').default
|
||||
const setGlobalDispatcher: typeof import('./global-dispatcher').setGlobalDispatcher
|
||||
const getGlobalDispatcher: typeof import('./global-dispatcher').getGlobalDispatcher
|
||||
const request: typeof import('./api').request
|
||||
const stream: typeof import('./api').stream
|
||||
const pipeline: typeof import('./api').pipeline
|
||||
const connect: typeof import('./api').connect
|
||||
const upgrade: typeof import('./api').upgrade
|
||||
const MockClient: typeof import('./mock-client').default
|
||||
const MockPool: typeof import('./mock-pool').default
|
||||
const MockAgent: typeof import('./mock-agent').default
|
||||
const SnapshotAgent: typeof import('./snapshot-agent').SnapshotAgent
|
||||
const MockCallHistory: typeof import('./mock-call-history').MockCallHistory
|
||||
const MockCallHistoryLog: typeof import('./mock-call-history').MockCallHistoryLog
|
||||
const mockErrors: typeof import('./mock-errors').default
|
||||
const fetch: typeof import('./fetch').fetch
|
||||
const Headers: typeof import('./fetch').Headers
|
||||
const Response: typeof import('./fetch').Response
|
||||
const Request: typeof import('./fetch').Request
|
||||
const FormData: typeof import('./formdata').FormData
|
||||
const caches: typeof import('./cache').caches
|
||||
const interceptors: typeof import('./interceptors').default
|
||||
const cacheStores: {
|
||||
MemoryCacheStore: typeof import('./cache-interceptor').default.MemoryCacheStore,
|
||||
SqliteCacheStore: typeof import('./cache-interceptor').default.SqliteCacheStore
|
||||
}
|
||||
const install: typeof globalThisInstall
|
||||
}
|
||||
39
node_modules/undici-types/interceptors.d.ts
generated
vendored
39
node_modules/undici-types/interceptors.d.ts
generated
vendored
@ -1,39 +0,0 @@
|
||||
import CacheHandler from './cache-interceptor'
|
||||
import Dispatcher from './dispatcher'
|
||||
import RetryHandler from './retry-handler'
|
||||
import { LookupOptions } from 'node:dns'
|
||||
|
||||
export default Interceptors
|
||||
|
||||
declare namespace Interceptors {
|
||||
export type DumpInterceptorOpts = { maxSize?: number }
|
||||
export type RetryInterceptorOpts = RetryHandler.RetryOptions
|
||||
export type RedirectInterceptorOpts = { maxRedirections?: number }
|
||||
export type DecompressInterceptorOpts = {
|
||||
skipErrorResponses?: boolean
|
||||
skipStatusCodes?: number[]
|
||||
}
|
||||
|
||||
export type ResponseErrorInterceptorOpts = { throwOnError: boolean }
|
||||
export type CacheInterceptorOpts = CacheHandler.CacheOptions
|
||||
|
||||
// DNS interceptor
|
||||
export type DNSInterceptorRecord = { address: string, ttl: number, family: 4 | 6 }
|
||||
export type DNSInterceptorOriginRecords = { 4: { ips: DNSInterceptorRecord[] } | null, 6: { ips: DNSInterceptorRecord[] } | null }
|
||||
export type DNSInterceptorOpts = {
|
||||
maxTTL?: number
|
||||
maxItems?: number
|
||||
lookup?: (hostname: string, options: LookupOptions, callback: (err: NodeJS.ErrnoException | null, addresses: DNSInterceptorRecord[]) => void) => void
|
||||
pick?: (origin: URL, records: DNSInterceptorOriginRecords, affinity: 4 | 6) => DNSInterceptorRecord
|
||||
dualStack?: boolean
|
||||
affinity?: 4 | 6
|
||||
}
|
||||
|
||||
export function dump (opts?: DumpInterceptorOpts): Dispatcher.DispatcherComposeInterceptor
|
||||
export function retry (opts?: RetryInterceptorOpts): Dispatcher.DispatcherComposeInterceptor
|
||||
export function redirect (opts?: RedirectInterceptorOpts): Dispatcher.DispatcherComposeInterceptor
|
||||
export function decompress (opts?: DecompressInterceptorOpts): Dispatcher.DispatcherComposeInterceptor
|
||||
export function responseError (opts?: ResponseErrorInterceptorOpts): Dispatcher.DispatcherComposeInterceptor
|
||||
export function dns (opts?: DNSInterceptorOpts): Dispatcher.DispatcherComposeInterceptor
|
||||
export function cache (opts?: CacheInterceptorOpts): Dispatcher.DispatcherComposeInterceptor
|
||||
}
|
||||
68
node_modules/undici-types/mock-agent.d.ts
generated
vendored
68
node_modules/undici-types/mock-agent.d.ts
generated
vendored
@ -1,68 +0,0 @@
|
||||
import Agent from './agent'
|
||||
import Dispatcher from './dispatcher'
|
||||
import { Interceptable, MockInterceptor } from './mock-interceptor'
|
||||
import MockDispatch = MockInterceptor.MockDispatch
|
||||
import { MockCallHistory } from './mock-call-history'
|
||||
|
||||
export default MockAgent
|
||||
|
||||
interface PendingInterceptor extends MockDispatch {
|
||||
origin: string;
|
||||
}
|
||||
|
||||
/** A mocked Agent class that implements the Agent API. It allows one to intercept HTTP requests made through undici and return mocked responses instead. */
|
||||
declare class MockAgent<TMockAgentOptions extends MockAgent.Options = MockAgent.Options> extends Dispatcher {
|
||||
constructor (options?: TMockAgentOptions)
|
||||
/** Creates and retrieves mock Dispatcher instances which can then be used to intercept HTTP requests. If the number of connections on the mock agent is set to 1, a MockClient instance is returned. Otherwise a MockPool instance is returned. */
|
||||
get<TInterceptable extends Interceptable>(origin: string): TInterceptable
|
||||
get<TInterceptable extends Interceptable>(origin: RegExp): TInterceptable
|
||||
get<TInterceptable extends Interceptable>(origin: ((origin: string) => boolean)): TInterceptable
|
||||
/** Dispatches a mocked request. */
|
||||
dispatch (options: Agent.DispatchOptions, handler: Dispatcher.DispatchHandler): boolean
|
||||
/** Closes the mock agent and waits for registered mock pools and clients to also close before resolving. */
|
||||
close (): Promise<void>
|
||||
/** Disables mocking in MockAgent. */
|
||||
deactivate (): void
|
||||
/** Enables mocking in a MockAgent instance. When instantiated, a MockAgent is automatically activated. Therefore, this method is only effective after `MockAgent.deactivate` has been called. */
|
||||
activate (): void
|
||||
/** Define host matchers so only matching requests that aren't intercepted by the mock dispatchers will be attempted. */
|
||||
enableNetConnect (): void
|
||||
enableNetConnect (host: string): void
|
||||
enableNetConnect (host: RegExp): void
|
||||
enableNetConnect (host: ((host: string) => boolean)): void
|
||||
/** Causes all requests to throw when requests are not matched in a MockAgent intercept. */
|
||||
disableNetConnect (): void
|
||||
/** get call history. returns the MockAgent call history or undefined if the option is not enabled. */
|
||||
getCallHistory (): MockCallHistory | undefined
|
||||
/** clear every call history. Any MockCallHistoryLog will be deleted on the MockCallHistory instance */
|
||||
clearCallHistory (): void
|
||||
/** Enable call history. Any subsequence calls will then be registered. */
|
||||
enableCallHistory (): this
|
||||
/** Disable call history. Any subsequence calls will then not be registered. */
|
||||
disableCallHistory (): this
|
||||
pendingInterceptors (): PendingInterceptor[]
|
||||
assertNoPendingInterceptors (options?: {
|
||||
pendingInterceptorsFormatter?: PendingInterceptorsFormatter;
|
||||
}): void
|
||||
}
|
||||
|
||||
interface PendingInterceptorsFormatter {
|
||||
format(pendingInterceptors: readonly PendingInterceptor[]): string;
|
||||
}
|
||||
|
||||
declare namespace MockAgent {
|
||||
/** MockAgent options. */
|
||||
export interface Options extends Agent.Options {
|
||||
/** A custom agent to be encapsulated by the MockAgent. */
|
||||
agent?: Dispatcher;
|
||||
|
||||
/** Ignore trailing slashes in the path */
|
||||
ignoreTrailingSlash?: boolean;
|
||||
|
||||
/** Accept URLs with search parameters using non standard syntaxes. default false */
|
||||
acceptNonStandardSearchParameters?: boolean;
|
||||
|
||||
/** Enable call history. you can either call MockAgent.enableCallHistory(). default false */
|
||||
enableCallHistory?: boolean
|
||||
}
|
||||
}
|
||||
111
node_modules/undici-types/mock-call-history.d.ts
generated
vendored
111
node_modules/undici-types/mock-call-history.d.ts
generated
vendored
@ -1,111 +0,0 @@
|
||||
import Dispatcher from './dispatcher'
|
||||
|
||||
declare namespace MockCallHistoryLog {
|
||||
/** request's configuration properties */
|
||||
export type MockCallHistoryLogProperties = 'protocol' | 'host' | 'port' | 'origin' | 'path' | 'hash' | 'fullUrl' | 'method' | 'searchParams' | 'body' | 'headers'
|
||||
}
|
||||
|
||||
/** a log reflecting request configuration */
|
||||
declare class MockCallHistoryLog {
|
||||
constructor (requestInit: Dispatcher.DispatchOptions)
|
||||
/** protocol used. ie. 'https:' or 'http:' etc... */
|
||||
protocol: string
|
||||
/** request's host. */
|
||||
host: string
|
||||
/** request's port. */
|
||||
port: string
|
||||
/** request's origin. ie. https://localhost:3000. */
|
||||
origin: string
|
||||
/** path. never contains searchParams. */
|
||||
path: string
|
||||
/** request's hash. */
|
||||
hash: string
|
||||
/** the full url requested. */
|
||||
fullUrl: string
|
||||
/** request's method. */
|
||||
method: string
|
||||
/** search params. */
|
||||
searchParams: Record<string, string>
|
||||
/** request's body */
|
||||
body: string | null | undefined
|
||||
/** request's headers */
|
||||
headers: Record<string, string | string[]> | null | undefined
|
||||
|
||||
/** returns an Map of property / value pair */
|
||||
toMap (): Map<MockCallHistoryLog.MockCallHistoryLogProperties, string | Record<string, string | string[]> | null | undefined>
|
||||
|
||||
/** returns a string computed with all key value pair */
|
||||
toString (): string
|
||||
}
|
||||
|
||||
declare namespace MockCallHistory {
|
||||
export type FilterCallsOperator = 'AND' | 'OR'
|
||||
|
||||
/** modify the filtering behavior */
|
||||
export interface FilterCallsOptions {
|
||||
/** the operator to apply when filtering. 'OR' will adds any MockCallHistoryLog matching any criteria given. 'AND' will adds only MockCallHistoryLog matching every criteria given. (default 'OR') */
|
||||
operator?: FilterCallsOperator | Lowercase<FilterCallsOperator>
|
||||
}
|
||||
/** a function to be executed for filtering MockCallHistoryLog */
|
||||
export type FilterCallsFunctionCriteria = (log: MockCallHistoryLog) => boolean
|
||||
|
||||
/** parameter to filter MockCallHistoryLog */
|
||||
export type FilterCallsParameter = string | RegExp | undefined | null
|
||||
|
||||
/** an object to execute multiple filtering at once */
|
||||
export interface FilterCallsObjectCriteria extends Record<string, FilterCallsParameter> {
|
||||
/** filter by request protocol. ie https: */
|
||||
protocol?: FilterCallsParameter;
|
||||
/** filter by request host. */
|
||||
host?: FilterCallsParameter;
|
||||
/** filter by request port. */
|
||||
port?: FilterCallsParameter;
|
||||
/** filter by request origin. */
|
||||
origin?: FilterCallsParameter;
|
||||
/** filter by request path. */
|
||||
path?: FilterCallsParameter;
|
||||
/** filter by request hash. */
|
||||
hash?: FilterCallsParameter;
|
||||
/** filter by request fullUrl. */
|
||||
fullUrl?: FilterCallsParameter;
|
||||
/** filter by request method. */
|
||||
method?: FilterCallsParameter;
|
||||
}
|
||||
}
|
||||
|
||||
/** a call history to track requests configuration */
|
||||
declare class MockCallHistory {
|
||||
constructor (name: string)
|
||||
/** returns an array of MockCallHistoryLog. */
|
||||
calls (): Array<MockCallHistoryLog>
|
||||
/** returns the first MockCallHistoryLog */
|
||||
firstCall (): MockCallHistoryLog | undefined
|
||||
/** returns the last MockCallHistoryLog. */
|
||||
lastCall (): MockCallHistoryLog | undefined
|
||||
/** returns the nth MockCallHistoryLog. */
|
||||
nthCall (position: number): MockCallHistoryLog | undefined
|
||||
/** return all MockCallHistoryLog matching any of criteria given. if an object is used with multiple properties, you can change the operator to apply during filtering on options */
|
||||
filterCalls (criteria: MockCallHistory.FilterCallsFunctionCriteria | MockCallHistory.FilterCallsObjectCriteria | RegExp, options?: MockCallHistory.FilterCallsOptions): Array<MockCallHistoryLog>
|
||||
/** return all MockCallHistoryLog matching the given protocol. if a string is given, it is matched with includes */
|
||||
filterCallsByProtocol (protocol: MockCallHistory.FilterCallsParameter): Array<MockCallHistoryLog>
|
||||
/** return all MockCallHistoryLog matching the given host. if a string is given, it is matched with includes */
|
||||
filterCallsByHost (host: MockCallHistory.FilterCallsParameter): Array<MockCallHistoryLog>
|
||||
/** return all MockCallHistoryLog matching the given port. if a string is given, it is matched with includes */
|
||||
filterCallsByPort (port: MockCallHistory.FilterCallsParameter): Array<MockCallHistoryLog>
|
||||
/** return all MockCallHistoryLog matching the given origin. if a string is given, it is matched with includes */
|
||||
filterCallsByOrigin (origin: MockCallHistory.FilterCallsParameter): Array<MockCallHistoryLog>
|
||||
/** return all MockCallHistoryLog matching the given path. if a string is given, it is matched with includes */
|
||||
filterCallsByPath (path: MockCallHistory.FilterCallsParameter): Array<MockCallHistoryLog>
|
||||
/** return all MockCallHistoryLog matching the given hash. if a string is given, it is matched with includes */
|
||||
filterCallsByHash (hash: MockCallHistory.FilterCallsParameter): Array<MockCallHistoryLog>
|
||||
/** return all MockCallHistoryLog matching the given fullUrl. if a string is given, it is matched with includes */
|
||||
filterCallsByFullUrl (fullUrl: MockCallHistory.FilterCallsParameter): Array<MockCallHistoryLog>
|
||||
/** return all MockCallHistoryLog matching the given method. if a string is given, it is matched with includes */
|
||||
filterCallsByMethod (method: MockCallHistory.FilterCallsParameter): Array<MockCallHistoryLog>
|
||||
/** clear all MockCallHistoryLog on this MockCallHistory. */
|
||||
clear (): void
|
||||
/** use it with for..of loop or spread operator */
|
||||
[Symbol.iterator]: () => Generator<MockCallHistoryLog>
|
||||
}
|
||||
|
||||
export { MockCallHistoryLog, MockCallHistory }
|
||||
27
node_modules/undici-types/mock-client.d.ts
generated
vendored
27
node_modules/undici-types/mock-client.d.ts
generated
vendored
@ -1,27 +0,0 @@
|
||||
import Client from './client'
|
||||
import Dispatcher from './dispatcher'
|
||||
import MockAgent from './mock-agent'
|
||||
import { MockInterceptor, Interceptable } from './mock-interceptor'
|
||||
|
||||
export default MockClient
|
||||
|
||||
/** MockClient extends the Client API and allows one to mock requests. */
|
||||
declare class MockClient extends Client implements Interceptable {
|
||||
constructor (origin: string, options: MockClient.Options)
|
||||
/** Intercepts any matching requests that use the same origin as this mock client. */
|
||||
intercept (options: MockInterceptor.Options): MockInterceptor
|
||||
/** Dispatches a mocked request. */
|
||||
dispatch (options: Dispatcher.DispatchOptions, handlers: Dispatcher.DispatchHandler): boolean
|
||||
/** Closes the mock client and gracefully waits for enqueued requests to complete. */
|
||||
close (): Promise<void>
|
||||
/** Clean up all the prepared mocks. */
|
||||
cleanMocks (): void
|
||||
}
|
||||
|
||||
declare namespace MockClient {
|
||||
/** MockClient options. */
|
||||
export interface Options extends Client.Options {
|
||||
/** The agent to associate this MockClient with. */
|
||||
agent: MockAgent;
|
||||
}
|
||||
}
|
||||
12
node_modules/undici-types/mock-errors.d.ts
generated
vendored
12
node_modules/undici-types/mock-errors.d.ts
generated
vendored
@ -1,12 +0,0 @@
|
||||
import Errors from './errors'
|
||||
|
||||
export default MockErrors
|
||||
|
||||
declare namespace MockErrors {
|
||||
/** The request does not match any registered mock dispatches. */
|
||||
export class MockNotMatchedError extends Errors.UndiciError {
|
||||
constructor (message?: string)
|
||||
name: 'MockNotMatchedError'
|
||||
code: 'UND_MOCK_ERR_MOCK_NOT_MATCHED'
|
||||
}
|
||||
}
|
||||
94
node_modules/undici-types/mock-interceptor.d.ts
generated
vendored
94
node_modules/undici-types/mock-interceptor.d.ts
generated
vendored
@ -1,94 +0,0 @@
|
||||
import { IncomingHttpHeaders } from './header'
|
||||
import Dispatcher from './dispatcher'
|
||||
import { BodyInit, Headers } from './fetch'
|
||||
|
||||
/** The scope associated with a mock dispatch. */
|
||||
declare class MockScope<TData extends object = object> {
|
||||
constructor (mockDispatch: MockInterceptor.MockDispatch<TData>)
|
||||
/** Delay a reply by a set amount of time in ms. */
|
||||
delay (waitInMs: number): MockScope<TData>
|
||||
/** Persist the defined mock data for the associated reply. It will return the defined mock data indefinitely. */
|
||||
persist (): MockScope<TData>
|
||||
/** Define a reply for a set amount of matching requests. */
|
||||
times (repeatTimes: number): MockScope<TData>
|
||||
}
|
||||
|
||||
/** The interceptor for a Mock. */
|
||||
declare class MockInterceptor {
|
||||
constructor (options: MockInterceptor.Options, mockDispatches: MockInterceptor.MockDispatch[])
|
||||
/** Mock an undici request with the defined reply. */
|
||||
reply<TData extends object = object>(replyOptionsCallback: MockInterceptor.MockReplyOptionsCallback<TData>): MockScope<TData>
|
||||
reply<TData extends object = object>(
|
||||
statusCode: number,
|
||||
data?: TData | Buffer | string | MockInterceptor.MockResponseDataHandler<TData>,
|
||||
responseOptions?: MockInterceptor.MockResponseOptions
|
||||
): MockScope<TData>
|
||||
/** Mock an undici request by throwing the defined reply error. */
|
||||
replyWithError<TError extends Error = Error>(error: TError): MockScope
|
||||
/** Set default reply headers on the interceptor for subsequent mocked replies. */
|
||||
defaultReplyHeaders (headers: IncomingHttpHeaders): MockInterceptor
|
||||
/** Set default reply trailers on the interceptor for subsequent mocked replies. */
|
||||
defaultReplyTrailers (trailers: Record<string, string>): MockInterceptor
|
||||
/** Set automatically calculated content-length header on subsequent mocked replies. */
|
||||
replyContentLength (): MockInterceptor
|
||||
}
|
||||
|
||||
declare namespace MockInterceptor {
|
||||
/** MockInterceptor options. */
|
||||
export interface Options {
|
||||
/** Path to intercept on. */
|
||||
path: string | RegExp | ((path: string) => boolean);
|
||||
/** Method to intercept on. Defaults to GET. */
|
||||
method?: string | RegExp | ((method: string) => boolean);
|
||||
/** Body to intercept on. */
|
||||
body?: string | RegExp | ((body: string) => boolean);
|
||||
/** Headers to intercept on. */
|
||||
headers?: Record<string, string | RegExp | ((body: string) => boolean)> | ((headers: Record<string, string>) => boolean);
|
||||
/** Query params to intercept on */
|
||||
query?: Record<string, any>;
|
||||
}
|
||||
export interface MockDispatch<TData extends object = object, TError extends Error = Error> extends Options {
|
||||
times: number | null;
|
||||
persist: boolean;
|
||||
consumed: boolean;
|
||||
data: MockDispatchData<TData, TError>;
|
||||
}
|
||||
export interface MockDispatchData<TData extends object = object, TError extends Error = Error> extends MockResponseOptions {
|
||||
error: TError | null;
|
||||
statusCode?: number;
|
||||
data?: TData | string;
|
||||
}
|
||||
export interface MockResponseOptions {
|
||||
headers?: IncomingHttpHeaders;
|
||||
trailers?: Record<string, string>;
|
||||
}
|
||||
|
||||
export interface MockResponseCallbackOptions {
|
||||
path: string;
|
||||
method: string;
|
||||
headers?: Headers | Record<string, string>;
|
||||
origin?: string;
|
||||
body?: BodyInit | Dispatcher.DispatchOptions['body'] | null;
|
||||
}
|
||||
|
||||
export type MockResponseDataHandler<TData extends object = object> = (
|
||||
opts: MockResponseCallbackOptions
|
||||
) => TData | Buffer | string
|
||||
|
||||
export type MockReplyOptionsCallback<TData extends object = object> = (
|
||||
opts: MockResponseCallbackOptions
|
||||
) => { statusCode: number, data?: TData | Buffer | string, responseOptions?: MockResponseOptions }
|
||||
}
|
||||
|
||||
interface Interceptable extends Dispatcher {
|
||||
/** Intercepts any matching requests that use the same origin as this mock client. */
|
||||
intercept(options: MockInterceptor.Options): MockInterceptor;
|
||||
/** Clean up all the prepared mocks. */
|
||||
cleanMocks (): void
|
||||
}
|
||||
|
||||
export {
|
||||
Interceptable,
|
||||
MockInterceptor,
|
||||
MockScope
|
||||
}
|
||||
27
node_modules/undici-types/mock-pool.d.ts
generated
vendored
27
node_modules/undici-types/mock-pool.d.ts
generated
vendored
@ -1,27 +0,0 @@
|
||||
import Pool from './pool'
|
||||
import MockAgent from './mock-agent'
|
||||
import { Interceptable, MockInterceptor } from './mock-interceptor'
|
||||
import Dispatcher from './dispatcher'
|
||||
|
||||
export default MockPool
|
||||
|
||||
/** MockPool extends the Pool API and allows one to mock requests. */
|
||||
declare class MockPool extends Pool implements Interceptable {
|
||||
constructor (origin: string, options: MockPool.Options)
|
||||
/** Intercepts any matching requests that use the same origin as this mock pool. */
|
||||
intercept (options: MockInterceptor.Options): MockInterceptor
|
||||
/** Dispatches a mocked request. */
|
||||
dispatch (options: Dispatcher.DispatchOptions, handlers: Dispatcher.DispatchHandler): boolean
|
||||
/** Closes the mock pool and gracefully waits for enqueued requests to complete. */
|
||||
close (): Promise<void>
|
||||
/** Clean up all the prepared mocks. */
|
||||
cleanMocks (): void
|
||||
}
|
||||
|
||||
declare namespace MockPool {
|
||||
/** MockPool options. */
|
||||
export interface Options extends Pool.Options {
|
||||
/** The agent to associate this MockPool with. */
|
||||
agent: MockAgent;
|
||||
}
|
||||
}
|
||||
55
node_modules/undici-types/package.json
generated
vendored
55
node_modules/undici-types/package.json
generated
vendored
@ -1,55 +0,0 @@
|
||||
{
|
||||
"name": "undici-types",
|
||||
"version": "7.16.0",
|
||||
"description": "A stand-alone types package for Undici",
|
||||
"homepage": "https://undici.nodejs.org",
|
||||
"bugs": {
|
||||
"url": "https://github.com/nodejs/undici/issues"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/nodejs/undici.git"
|
||||
},
|
||||
"license": "MIT",
|
||||
"types": "index.d.ts",
|
||||
"files": [
|
||||
"*.d.ts"
|
||||
],
|
||||
"contributors": [
|
||||
{
|
||||
"name": "Daniele Belardi",
|
||||
"url": "https://github.com/dnlup",
|
||||
"author": true
|
||||
},
|
||||
{
|
||||
"name": "Ethan Arrowood",
|
||||
"url": "https://github.com/ethan-arrowood",
|
||||
"author": true
|
||||
},
|
||||
{
|
||||
"name": "Matteo Collina",
|
||||
"url": "https://github.com/mcollina",
|
||||
"author": true
|
||||
},
|
||||
{
|
||||
"name": "Matthew Aitken",
|
||||
"url": "https://github.com/KhafraDev",
|
||||
"author": true
|
||||
},
|
||||
{
|
||||
"name": "Robert Nagy",
|
||||
"url": "https://github.com/ronag",
|
||||
"author": true
|
||||
},
|
||||
{
|
||||
"name": "Szymon Marczak",
|
||||
"url": "https://github.com/szmarczak",
|
||||
"author": true
|
||||
},
|
||||
{
|
||||
"name": "Tomas Della Vedova",
|
||||
"url": "https://github.com/delvedor",
|
||||
"author": true
|
||||
}
|
||||
]
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user