Spaces:
Build error
Build error
freemt
commited on
Commit
•
2f6222b
1
Parent(s):
e31b328
Update min_samples esp
Browse filesThis view is limited to 50 files because it contains too many changes.
See raw diff
- .gitignore +1 -0
- node_modules/.modules.yaml +22 -0
- node_modules/.pnpm/ansi-styles@3.2.1/node_modules/ansi-styles/index.js +165 -0
- node_modules/.pnpm/ansi-styles@3.2.1/node_modules/ansi-styles/license +9 -0
- node_modules/.pnpm/ansi-styles@3.2.1/node_modules/ansi-styles/package.json +56 -0
- node_modules/.pnpm/ansi-styles@3.2.1/node_modules/ansi-styles/readme.md +147 -0
- node_modules/.pnpm/ansi-styles@3.2.1/node_modules/color-convert/CHANGELOG.md +54 -0
- node_modules/.pnpm/ansi-styles@3.2.1/node_modules/color-convert/LICENSE +21 -0
- node_modules/.pnpm/ansi-styles@3.2.1/node_modules/color-convert/README.md +68 -0
- node_modules/.pnpm/ansi-styles@3.2.1/node_modules/color-convert/conversions.js +868 -0
- node_modules/.pnpm/ansi-styles@3.2.1/node_modules/color-convert/index.js +78 -0
- node_modules/.pnpm/ansi-styles@3.2.1/node_modules/color-convert/package.json +46 -0
- node_modules/.pnpm/ansi-styles@3.2.1/node_modules/color-convert/route.js +97 -0
- node_modules/.pnpm/balanced-match@1.0.2/node_modules/balanced-match/.github/FUNDING.yml +2 -0
- node_modules/.pnpm/balanced-match@1.0.2/node_modules/balanced-match/LICENSE.md +21 -0
- node_modules/.pnpm/balanced-match@1.0.2/node_modules/balanced-match/README.md +97 -0
- node_modules/.pnpm/balanced-match@1.0.2/node_modules/balanced-match/index.js +62 -0
- node_modules/.pnpm/balanced-match@1.0.2/node_modules/balanced-match/package.json +48 -0
- node_modules/.pnpm/brace-expansion@1.1.11/node_modules/balanced-match/.github/FUNDING.yml +2 -0
- node_modules/.pnpm/brace-expansion@1.1.11/node_modules/balanced-match/LICENSE.md +21 -0
- node_modules/.pnpm/brace-expansion@1.1.11/node_modules/balanced-match/README.md +97 -0
- node_modules/.pnpm/brace-expansion@1.1.11/node_modules/balanced-match/index.js +62 -0
- node_modules/.pnpm/brace-expansion@1.1.11/node_modules/balanced-match/package.json +48 -0
- node_modules/.pnpm/brace-expansion@1.1.11/node_modules/brace-expansion/LICENSE +21 -0
- node_modules/.pnpm/brace-expansion@1.1.11/node_modules/brace-expansion/README.md +129 -0
- node_modules/.pnpm/brace-expansion@1.1.11/node_modules/brace-expansion/index.js +201 -0
- node_modules/.pnpm/brace-expansion@1.1.11/node_modules/brace-expansion/package.json +47 -0
- node_modules/.pnpm/brace-expansion@1.1.11/node_modules/concat-map/.travis.yml +4 -0
- node_modules/.pnpm/brace-expansion@1.1.11/node_modules/concat-map/LICENSE +18 -0
- node_modules/.pnpm/brace-expansion@1.1.11/node_modules/concat-map/README.markdown +62 -0
- node_modules/.pnpm/brace-expansion@1.1.11/node_modules/concat-map/example/map.js +6 -0
- node_modules/.pnpm/brace-expansion@1.1.11/node_modules/concat-map/index.js +13 -0
- node_modules/.pnpm/brace-expansion@1.1.11/node_modules/concat-map/package.json +43 -0
- node_modules/.pnpm/brace-expansion@1.1.11/node_modules/concat-map/test/map.js +39 -0
- node_modules/.pnpm/call-bind@1.0.2/node_modules/call-bind/.eslintignore +1 -0
- node_modules/.pnpm/call-bind@1.0.2/node_modules/call-bind/.eslintrc +17 -0
- node_modules/.pnpm/call-bind@1.0.2/node_modules/call-bind/.github/FUNDING.yml +12 -0
- node_modules/.pnpm/call-bind@1.0.2/node_modules/call-bind/.nycrc +13 -0
- node_modules/.pnpm/call-bind@1.0.2/node_modules/call-bind/CHANGELOG.md +42 -0
- node_modules/.pnpm/call-bind@1.0.2/node_modules/call-bind/LICENSE +21 -0
- node_modules/.pnpm/call-bind@1.0.2/node_modules/call-bind/README.md +2 -0
- node_modules/.pnpm/call-bind@1.0.2/node_modules/call-bind/callBound.js +15 -0
- node_modules/.pnpm/call-bind@1.0.2/node_modules/call-bind/index.js +47 -0
- node_modules/.pnpm/call-bind@1.0.2/node_modules/call-bind/package.json +80 -0
- node_modules/.pnpm/call-bind@1.0.2/node_modules/call-bind/test/callBound.js +55 -0
- node_modules/.pnpm/call-bind@1.0.2/node_modules/call-bind/test/index.js +66 -0
- node_modules/.pnpm/call-bind@1.0.2/node_modules/function-bind/.editorconfig +20 -0
- node_modules/.pnpm/call-bind@1.0.2/node_modules/function-bind/.eslintrc +15 -0
- node_modules/.pnpm/call-bind@1.0.2/node_modules/function-bind/.jscs.json +176 -0
- node_modules/.pnpm/call-bind@1.0.2/node_modules/function-bind/.npmignore +22 -0
.gitignore
CHANGED
@@ -4,3 +4,4 @@ radiobee-aligner-pad.txt
|
|
4 |
radiobee\en2zh_tokens.py
|
5 |
radiobee/en2zh_tokens.py
|
6 |
**/__pycache__/
|
|
|
|
4 |
radiobee\en2zh_tokens.py
|
5 |
radiobee/en2zh_tokens.py
|
6 |
**/__pycache__/
|
7 |
+
node_modules
|
node_modules/.modules.yaml
ADDED
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
hoistPattern:
|
2 |
+
- '*'
|
3 |
+
hoistedDependencies: {}
|
4 |
+
included:
|
5 |
+
dependencies: true
|
6 |
+
devDependencies: true
|
7 |
+
optionalDependencies: true
|
8 |
+
layoutVersion: 5
|
9 |
+
packageManager: pnpm@6.24.2
|
10 |
+
pendingBuilds: []
|
11 |
+
prunedAt: Sat, 25 Dec 2021 02:50:37 GMT
|
12 |
+
publicHoistPattern:
|
13 |
+
- '*types*'
|
14 |
+
- '*eslint*'
|
15 |
+
- '@prettier/plugin-*'
|
16 |
+
- '*prettier-plugin-*'
|
17 |
+
registries:
|
18 |
+
'@bit': https://node.bit.dev/
|
19 |
+
default: https://registry.npmjs.org/
|
20 |
+
skipped: []
|
21 |
+
storeDir: C:\Users\mike\.pnpm-store\v3
|
22 |
+
virtualStoreDir: C:\dl\Dropbox\mat-dir\myapps\pypi-projects\radiobee-aligner\node_modules\.pnpm
|
node_modules/.pnpm/ansi-styles@3.2.1/node_modules/ansi-styles/index.js
ADDED
@@ -0,0 +1,165 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
'use strict';
|
2 |
+
const colorConvert = require('color-convert');
|
3 |
+
|
4 |
+
const wrapAnsi16 = (fn, offset) => function () {
|
5 |
+
const code = fn.apply(colorConvert, arguments);
|
6 |
+
return `\u001B[${code + offset}m`;
|
7 |
+
};
|
8 |
+
|
9 |
+
const wrapAnsi256 = (fn, offset) => function () {
|
10 |
+
const code = fn.apply(colorConvert, arguments);
|
11 |
+
return `\u001B[${38 + offset};5;${code}m`;
|
12 |
+
};
|
13 |
+
|
14 |
+
const wrapAnsi16m = (fn, offset) => function () {
|
15 |
+
const rgb = fn.apply(colorConvert, arguments);
|
16 |
+
return `\u001B[${38 + offset};2;${rgb[0]};${rgb[1]};${rgb[2]}m`;
|
17 |
+
};
|
18 |
+
|
19 |
+
function assembleStyles() {
|
20 |
+
const codes = new Map();
|
21 |
+
const styles = {
|
22 |
+
modifier: {
|
23 |
+
reset: [0, 0],
|
24 |
+
// 21 isn't widely supported and 22 does the same thing
|
25 |
+
bold: [1, 22],
|
26 |
+
dim: [2, 22],
|
27 |
+
italic: [3, 23],
|
28 |
+
underline: [4, 24],
|
29 |
+
inverse: [7, 27],
|
30 |
+
hidden: [8, 28],
|
31 |
+
strikethrough: [9, 29]
|
32 |
+
},
|
33 |
+
color: {
|
34 |
+
black: [30, 39],
|
35 |
+
red: [31, 39],
|
36 |
+
green: [32, 39],
|
37 |
+
yellow: [33, 39],
|
38 |
+
blue: [34, 39],
|
39 |
+
magenta: [35, 39],
|
40 |
+
cyan: [36, 39],
|
41 |
+
white: [37, 39],
|
42 |
+
gray: [90, 39],
|
43 |
+
|
44 |
+
// Bright color
|
45 |
+
redBright: [91, 39],
|
46 |
+
greenBright: [92, 39],
|
47 |
+
yellowBright: [93, 39],
|
48 |
+
blueBright: [94, 39],
|
49 |
+
magentaBright: [95, 39],
|
50 |
+
cyanBright: [96, 39],
|
51 |
+
whiteBright: [97, 39]
|
52 |
+
},
|
53 |
+
bgColor: {
|
54 |
+
bgBlack: [40, 49],
|
55 |
+
bgRed: [41, 49],
|
56 |
+
bgGreen: [42, 49],
|
57 |
+
bgYellow: [43, 49],
|
58 |
+
bgBlue: [44, 49],
|
59 |
+
bgMagenta: [45, 49],
|
60 |
+
bgCyan: [46, 49],
|
61 |
+
bgWhite: [47, 49],
|
62 |
+
|
63 |
+
// Bright color
|
64 |
+
bgBlackBright: [100, 49],
|
65 |
+
bgRedBright: [101, 49],
|
66 |
+
bgGreenBright: [102, 49],
|
67 |
+
bgYellowBright: [103, 49],
|
68 |
+
bgBlueBright: [104, 49],
|
69 |
+
bgMagentaBright: [105, 49],
|
70 |
+
bgCyanBright: [106, 49],
|
71 |
+
bgWhiteBright: [107, 49]
|
72 |
+
}
|
73 |
+
};
|
74 |
+
|
75 |
+
// Fix humans
|
76 |
+
styles.color.grey = styles.color.gray;
|
77 |
+
|
78 |
+
for (const groupName of Object.keys(styles)) {
|
79 |
+
const group = styles[groupName];
|
80 |
+
|
81 |
+
for (const styleName of Object.keys(group)) {
|
82 |
+
const style = group[styleName];
|
83 |
+
|
84 |
+
styles[styleName] = {
|
85 |
+
open: `\u001B[${style[0]}m`,
|
86 |
+
close: `\u001B[${style[1]}m`
|
87 |
+
};
|
88 |
+
|
89 |
+
group[styleName] = styles[styleName];
|
90 |
+
|
91 |
+
codes.set(style[0], style[1]);
|
92 |
+
}
|
93 |
+
|
94 |
+
Object.defineProperty(styles, groupName, {
|
95 |
+
value: group,
|
96 |
+
enumerable: false
|
97 |
+
});
|
98 |
+
|
99 |
+
Object.defineProperty(styles, 'codes', {
|
100 |
+
value: codes,
|
101 |
+
enumerable: false
|
102 |
+
});
|
103 |
+
}
|
104 |
+
|
105 |
+
const ansi2ansi = n => n;
|
106 |
+
const rgb2rgb = (r, g, b) => [r, g, b];
|
107 |
+
|
108 |
+
styles.color.close = '\u001B[39m';
|
109 |
+
styles.bgColor.close = '\u001B[49m';
|
110 |
+
|
111 |
+
styles.color.ansi = {
|
112 |
+
ansi: wrapAnsi16(ansi2ansi, 0)
|
113 |
+
};
|
114 |
+
styles.color.ansi256 = {
|
115 |
+
ansi256: wrapAnsi256(ansi2ansi, 0)
|
116 |
+
};
|
117 |
+
styles.color.ansi16m = {
|
118 |
+
rgb: wrapAnsi16m(rgb2rgb, 0)
|
119 |
+
};
|
120 |
+
|
121 |
+
styles.bgColor.ansi = {
|
122 |
+
ansi: wrapAnsi16(ansi2ansi, 10)
|
123 |
+
};
|
124 |
+
styles.bgColor.ansi256 = {
|
125 |
+
ansi256: wrapAnsi256(ansi2ansi, 10)
|
126 |
+
};
|
127 |
+
styles.bgColor.ansi16m = {
|
128 |
+
rgb: wrapAnsi16m(rgb2rgb, 10)
|
129 |
+
};
|
130 |
+
|
131 |
+
for (let key of Object.keys(colorConvert)) {
|
132 |
+
if (typeof colorConvert[key] !== 'object') {
|
133 |
+
continue;
|
134 |
+
}
|
135 |
+
|
136 |
+
const suite = colorConvert[key];
|
137 |
+
|
138 |
+
if (key === 'ansi16') {
|
139 |
+
key = 'ansi';
|
140 |
+
}
|
141 |
+
|
142 |
+
if ('ansi16' in suite) {
|
143 |
+
styles.color.ansi[key] = wrapAnsi16(suite.ansi16, 0);
|
144 |
+
styles.bgColor.ansi[key] = wrapAnsi16(suite.ansi16, 10);
|
145 |
+
}
|
146 |
+
|
147 |
+
if ('ansi256' in suite) {
|
148 |
+
styles.color.ansi256[key] = wrapAnsi256(suite.ansi256, 0);
|
149 |
+
styles.bgColor.ansi256[key] = wrapAnsi256(suite.ansi256, 10);
|
150 |
+
}
|
151 |
+
|
152 |
+
if ('rgb' in suite) {
|
153 |
+
styles.color.ansi16m[key] = wrapAnsi16m(suite.rgb, 0);
|
154 |
+
styles.bgColor.ansi16m[key] = wrapAnsi16m(suite.rgb, 10);
|
155 |
+
}
|
156 |
+
}
|
157 |
+
|
158 |
+
return styles;
|
159 |
+
}
|
160 |
+
|
161 |
+
// Make the export immutable
|
162 |
+
Object.defineProperty(module, 'exports', {
|
163 |
+
enumerable: true,
|
164 |
+
get: assembleStyles
|
165 |
+
});
|
node_modules/.pnpm/ansi-styles@3.2.1/node_modules/ansi-styles/license
ADDED
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
MIT License
|
2 |
+
|
3 |
+
Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)
|
4 |
+
|
5 |
+
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:
|
6 |
+
|
7 |
+
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
8 |
+
|
9 |
+
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.
|
node_modules/.pnpm/ansi-styles@3.2.1/node_modules/ansi-styles/package.json
ADDED
@@ -0,0 +1,56 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"name": "ansi-styles",
|
3 |
+
"version": "3.2.1",
|
4 |
+
"description": "ANSI escape codes for styling strings in the terminal",
|
5 |
+
"license": "MIT",
|
6 |
+
"repository": "chalk/ansi-styles",
|
7 |
+
"author": {
|
8 |
+
"name": "Sindre Sorhus",
|
9 |
+
"email": "sindresorhus@gmail.com",
|
10 |
+
"url": "sindresorhus.com"
|
11 |
+
},
|
12 |
+
"engines": {
|
13 |
+
"node": ">=4"
|
14 |
+
},
|
15 |
+
"scripts": {
|
16 |
+
"test": "xo && ava",
|
17 |
+
"screenshot": "svg-term --command='node screenshot' --out=screenshot.svg --padding=3 --width=55 --height=3 --at=1000 --no-cursor"
|
18 |
+
},
|
19 |
+
"files": [
|
20 |
+
"index.js"
|
21 |
+
],
|
22 |
+
"keywords": [
|
23 |
+
"ansi",
|
24 |
+
"styles",
|
25 |
+
"color",
|
26 |
+
"colour",
|
27 |
+
"colors",
|
28 |
+
"terminal",
|
29 |
+
"console",
|
30 |
+
"cli",
|
31 |
+
"string",
|
32 |
+
"tty",
|
33 |
+
"escape",
|
34 |
+
"formatting",
|
35 |
+
"rgb",
|
36 |
+
"256",
|
37 |
+
"shell",
|
38 |
+
"xterm",
|
39 |
+
"log",
|
40 |
+
"logging",
|
41 |
+
"command-line",
|
42 |
+
"text"
|
43 |
+
],
|
44 |
+
"dependencies": {
|
45 |
+
"color-convert": "^1.9.0"
|
46 |
+
},
|
47 |
+
"devDependencies": {
|
48 |
+
"ava": "*",
|
49 |
+
"babel-polyfill": "^6.23.0",
|
50 |
+
"svg-term-cli": "^2.1.1",
|
51 |
+
"xo": "*"
|
52 |
+
},
|
53 |
+
"ava": {
|
54 |
+
"require": "babel-polyfill"
|
55 |
+
}
|
56 |
+
}
|
node_modules/.pnpm/ansi-styles@3.2.1/node_modules/ansi-styles/readme.md
ADDED
@@ -0,0 +1,147 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# ansi-styles [![Build Status](https://travis-ci.org/chalk/ansi-styles.svg?branch=master)](https://travis-ci.org/chalk/ansi-styles)
|
2 |
+
|
3 |
+
> [ANSI escape codes](http://en.wikipedia.org/wiki/ANSI_escape_code#Colors_and_Styles) for styling strings in the terminal
|
4 |
+
|
5 |
+
You probably want the higher-level [chalk](https://github.com/chalk/chalk) module for styling your strings.
|
6 |
+
|
7 |
+
<img src="https://cdn.rawgit.com/chalk/ansi-styles/8261697c95bf34b6c7767e2cbe9941a851d59385/screenshot.svg" width="900">
|
8 |
+
|
9 |
+
|
10 |
+
## Install
|
11 |
+
|
12 |
+
```
|
13 |
+
$ npm install ansi-styles
|
14 |
+
```
|
15 |
+
|
16 |
+
|
17 |
+
## Usage
|
18 |
+
|
19 |
+
```js
|
20 |
+
const style = require('ansi-styles');
|
21 |
+
|
22 |
+
console.log(`${style.green.open}Hello world!${style.green.close}`);
|
23 |
+
|
24 |
+
|
25 |
+
// Color conversion between 16/256/truecolor
|
26 |
+
// NOTE: If conversion goes to 16 colors or 256 colors, the original color
|
27 |
+
// may be degraded to fit that color palette. This means terminals
|
28 |
+
// that do not support 16 million colors will best-match the
|
29 |
+
// original color.
|
30 |
+
console.log(style.bgColor.ansi.hsl(120, 80, 72) + 'Hello world!' + style.bgColor.close);
|
31 |
+
console.log(style.color.ansi256.rgb(199, 20, 250) + 'Hello world!' + style.color.close);
|
32 |
+
console.log(style.color.ansi16m.hex('#ABCDEF') + 'Hello world!' + style.color.close);
|
33 |
+
```
|
34 |
+
|
35 |
+
## API
|
36 |
+
|
37 |
+
Each style has an `open` and `close` property.
|
38 |
+
|
39 |
+
|
40 |
+
## Styles
|
41 |
+
|
42 |
+
### Modifiers
|
43 |
+
|
44 |
+
- `reset`
|
45 |
+
- `bold`
|
46 |
+
- `dim`
|
47 |
+
- `italic` *(Not widely supported)*
|
48 |
+
- `underline`
|
49 |
+
- `inverse`
|
50 |
+
- `hidden`
|
51 |
+
- `strikethrough` *(Not widely supported)*
|
52 |
+
|
53 |
+
### Colors
|
54 |
+
|
55 |
+
- `black`
|
56 |
+
- `red`
|
57 |
+
- `green`
|
58 |
+
- `yellow`
|
59 |
+
- `blue`
|
60 |
+
- `magenta`
|
61 |
+
- `cyan`
|
62 |
+
- `white`
|
63 |
+
- `gray` ("bright black")
|
64 |
+
- `redBright`
|
65 |
+
- `greenBright`
|
66 |
+
- `yellowBright`
|
67 |
+
- `blueBright`
|
68 |
+
- `magentaBright`
|
69 |
+
- `cyanBright`
|
70 |
+
- `whiteBright`
|
71 |
+
|
72 |
+
### Background colors
|
73 |
+
|
74 |
+
- `bgBlack`
|
75 |
+
- `bgRed`
|
76 |
+
- `bgGreen`
|
77 |
+
- `bgYellow`
|
78 |
+
- `bgBlue`
|
79 |
+
- `bgMagenta`
|
80 |
+
- `bgCyan`
|
81 |
+
- `bgWhite`
|
82 |
+
- `bgBlackBright`
|
83 |
+
- `bgRedBright`
|
84 |
+
- `bgGreenBright`
|
85 |
+
- `bgYellowBright`
|
86 |
+
- `bgBlueBright`
|
87 |
+
- `bgMagentaBright`
|
88 |
+
- `bgCyanBright`
|
89 |
+
- `bgWhiteBright`
|
90 |
+
|
91 |
+
|
92 |
+
## Advanced usage
|
93 |
+
|
94 |
+
By default, you get a map of styles, but the styles are also available as groups. They are non-enumerable so they don't show up unless you access them explicitly. This makes it easier to expose only a subset in a higher-level module.
|
95 |
+
|
96 |
+
- `style.modifier`
|
97 |
+
- `style.color`
|
98 |
+
- `style.bgColor`
|
99 |
+
|
100 |
+
###### Example
|
101 |
+
|
102 |
+
```js
|
103 |
+
console.log(style.color.green.open);
|
104 |
+
```
|
105 |
+
|
106 |
+
Raw escape codes (i.e. without the CSI escape prefix `\u001B[` and render mode postfix `m`) are available under `style.codes`, which returns a `Map` with the open codes as keys and close codes as values.
|
107 |
+
|
108 |
+
###### Example
|
109 |
+
|
110 |
+
```js
|
111 |
+
console.log(style.codes.get(36));
|
112 |
+
//=> 39
|
113 |
+
```
|
114 |
+
|
115 |
+
|
116 |
+
## [256 / 16 million (TrueColor) support](https://gist.github.com/XVilka/8346728)
|
117 |
+
|
118 |
+
`ansi-styles` uses the [`color-convert`](https://github.com/Qix-/color-convert) package to allow for converting between various colors and ANSI escapes, with support for 256 and 16 million colors.
|
119 |
+
|
120 |
+
To use these, call the associated conversion function with the intended output, for example:
|
121 |
+
|
122 |
+
```js
|
123 |
+
style.color.ansi.rgb(100, 200, 15); // RGB to 16 color ansi foreground code
|
124 |
+
style.bgColor.ansi.rgb(100, 200, 15); // RGB to 16 color ansi background code
|
125 |
+
|
126 |
+
style.color.ansi256.hsl(120, 100, 60); // HSL to 256 color ansi foreground code
|
127 |
+
style.bgColor.ansi256.hsl(120, 100, 60); // HSL to 256 color ansi foreground code
|
128 |
+
|
129 |
+
style.color.ansi16m.hex('#C0FFEE'); // Hex (RGB) to 16 million color foreground code
|
130 |
+
style.bgColor.ansi16m.hex('#C0FFEE'); // Hex (RGB) to 16 million color background code
|
131 |
+
```
|
132 |
+
|
133 |
+
|
134 |
+
## Related
|
135 |
+
|
136 |
+
- [ansi-escapes](https://github.com/sindresorhus/ansi-escapes) - ANSI escape codes for manipulating the terminal
|
137 |
+
|
138 |
+
|
139 |
+
## Maintainers
|
140 |
+
|
141 |
+
- [Sindre Sorhus](https://github.com/sindresorhus)
|
142 |
+
- [Josh Junon](https://github.com/qix-)
|
143 |
+
|
144 |
+
|
145 |
+
## License
|
146 |
+
|
147 |
+
MIT
|
node_modules/.pnpm/ansi-styles@3.2.1/node_modules/color-convert/CHANGELOG.md
ADDED
@@ -0,0 +1,54 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# 1.0.0 - 2016-01-07
|
2 |
+
|
3 |
+
- Removed: unused speed test
|
4 |
+
- Added: Automatic routing between previously unsupported conversions
|
5 |
+
([#27](https://github.com/Qix-/color-convert/pull/27))
|
6 |
+
- Removed: `xxx2xxx()` and `xxx2xxxRaw()` functions
|
7 |
+
([#27](https://github.com/Qix-/color-convert/pull/27))
|
8 |
+
- Removed: `convert()` class
|
9 |
+
([#27](https://github.com/Qix-/color-convert/pull/27))
|
10 |
+
- Changed: all functions to lookup dictionary
|
11 |
+
([#27](https://github.com/Qix-/color-convert/pull/27))
|
12 |
+
- Changed: `ansi` to `ansi256`
|
13 |
+
([#27](https://github.com/Qix-/color-convert/pull/27))
|
14 |
+
- Fixed: argument grouping for functions requiring only one argument
|
15 |
+
([#27](https://github.com/Qix-/color-convert/pull/27))
|
16 |
+
|
17 |
+
# 0.6.0 - 2015-07-23
|
18 |
+
|
19 |
+
- Added: methods to handle
|
20 |
+
[ANSI](https://en.wikipedia.org/wiki/ANSI_escape_code#Colors) 16/256 colors:
|
21 |
+
- rgb2ansi16
|
22 |
+
- rgb2ansi
|
23 |
+
- hsl2ansi16
|
24 |
+
- hsl2ansi
|
25 |
+
- hsv2ansi16
|
26 |
+
- hsv2ansi
|
27 |
+
- hwb2ansi16
|
28 |
+
- hwb2ansi
|
29 |
+
- cmyk2ansi16
|
30 |
+
- cmyk2ansi
|
31 |
+
- keyword2ansi16
|
32 |
+
- keyword2ansi
|
33 |
+
- ansi162rgb
|
34 |
+
- ansi162hsl
|
35 |
+
- ansi162hsv
|
36 |
+
- ansi162hwb
|
37 |
+
- ansi162cmyk
|
38 |
+
- ansi162keyword
|
39 |
+
- ansi2rgb
|
40 |
+
- ansi2hsl
|
41 |
+
- ansi2hsv
|
42 |
+
- ansi2hwb
|
43 |
+
- ansi2cmyk
|
44 |
+
- ansi2keyword
|
45 |
+
([#18](https://github.com/harthur/color-convert/pull/18))
|
46 |
+
|
47 |
+
# 0.5.3 - 2015-06-02
|
48 |
+
|
49 |
+
- Fixed: hsl2hsv does not return `NaN` anymore when using `[0,0,0]`
|
50 |
+
([#15](https://github.com/harthur/color-convert/issues/15))
|
51 |
+
|
52 |
+
---
|
53 |
+
|
54 |
+
Check out commit logs for older releases
|
node_modules/.pnpm/ansi-styles@3.2.1/node_modules/color-convert/LICENSE
ADDED
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
Copyright (c) 2011-2016 Heather Arthur <fayearthur@gmail.com>
|
2 |
+
|
3 |
+
Permission is hereby granted, free of charge, to any person obtaining
|
4 |
+
a copy of this software and associated documentation files (the
|
5 |
+
"Software"), to deal in the Software without restriction, including
|
6 |
+
without limitation the rights to use, copy, modify, merge, publish,
|
7 |
+
distribute, sublicense, and/or sell copies of the Software, and to
|
8 |
+
permit persons to whom the Software is furnished to do so, subject to
|
9 |
+
the following conditions:
|
10 |
+
|
11 |
+
The above copyright notice and this permission notice shall be
|
12 |
+
included in all copies or substantial portions of the Software.
|
13 |
+
|
14 |
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15 |
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16 |
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17 |
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18 |
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19 |
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20 |
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
21 |
+
|
node_modules/.pnpm/ansi-styles@3.2.1/node_modules/color-convert/README.md
ADDED
@@ -0,0 +1,68 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# color-convert
|
2 |
+
|
3 |
+
[![Build Status](https://travis-ci.org/Qix-/color-convert.svg?branch=master)](https://travis-ci.org/Qix-/color-convert)
|
4 |
+
|
5 |
+
Color-convert is a color conversion library for JavaScript and node.
|
6 |
+
It converts all ways between `rgb`, `hsl`, `hsv`, `hwb`, `cmyk`, `ansi`, `ansi16`, `hex` strings, and CSS `keyword`s (will round to closest):
|
7 |
+
|
8 |
+
```js
|
9 |
+
var convert = require('color-convert');
|
10 |
+
|
11 |
+
convert.rgb.hsl(140, 200, 100); // [96, 48, 59]
|
12 |
+
convert.keyword.rgb('blue'); // [0, 0, 255]
|
13 |
+
|
14 |
+
var rgbChannels = convert.rgb.channels; // 3
|
15 |
+
var cmykChannels = convert.cmyk.channels; // 4
|
16 |
+
var ansiChannels = convert.ansi16.channels; // 1
|
17 |
+
```
|
18 |
+
|
19 |
+
# Install
|
20 |
+
|
21 |
+
```console
|
22 |
+
$ npm install color-convert
|
23 |
+
```
|
24 |
+
|
25 |
+
# API
|
26 |
+
|
27 |
+
Simply get the property of the _from_ and _to_ conversion that you're looking for.
|
28 |
+
|
29 |
+
All functions have a rounded and unrounded variant. By default, return values are rounded. To get the unrounded (raw) results, simply tack on `.raw` to the function.
|
30 |
+
|
31 |
+
All 'from' functions have a hidden property called `.channels` that indicates the number of channels the function expects (not including alpha).
|
32 |
+
|
33 |
+
```js
|
34 |
+
var convert = require('color-convert');
|
35 |
+
|
36 |
+
// Hex to LAB
|
37 |
+
convert.hex.lab('DEADBF'); // [ 76, 21, -2 ]
|
38 |
+
convert.hex.lab.raw('DEADBF'); // [ 75.56213190997677, 20.653827952644754, -2.290532499330533 ]
|
39 |
+
|
40 |
+
// RGB to CMYK
|
41 |
+
convert.rgb.cmyk(167, 255, 4); // [ 35, 0, 98, 0 ]
|
42 |
+
convert.rgb.cmyk.raw(167, 255, 4); // [ 34.509803921568626, 0, 98.43137254901961, 0 ]
|
43 |
+
```
|
44 |
+
|
45 |
+
### Arrays
|
46 |
+
All functions that accept multiple arguments also support passing an array.
|
47 |
+
|
48 |
+
Note that this does **not** apply to functions that convert from a color that only requires one value (e.g. `keyword`, `ansi256`, `hex`, etc.)
|
49 |
+
|
50 |
+
```js
|
51 |
+
var convert = require('color-convert');
|
52 |
+
|
53 |
+
convert.rgb.hex(123, 45, 67); // '7B2D43'
|
54 |
+
convert.rgb.hex([123, 45, 67]); // '7B2D43'
|
55 |
+
```
|
56 |
+
|
57 |
+
## Routing
|
58 |
+
|
59 |
+
Conversions that don't have an _explicitly_ defined conversion (in [conversions.js](conversions.js)), but can be converted by means of sub-conversions (e.g. XYZ -> **RGB** -> CMYK), are automatically routed together. This allows just about any color model supported by `color-convert` to be converted to any other model, so long as a sub-conversion path exists. This is also true for conversions requiring more than one step in between (e.g. LCH -> **LAB** -> **XYZ** -> **RGB** -> Hex).
|
60 |
+
|
61 |
+
Keep in mind that extensive conversions _may_ result in a loss of precision, and exist only to be complete. For a list of "direct" (single-step) conversions, see [conversions.js](conversions.js).
|
62 |
+
|
63 |
+
# Contribute
|
64 |
+
|
65 |
+
If there is a new model you would like to support, or want to add a direct conversion between two existing models, please send us a pull request.
|
66 |
+
|
67 |
+
# License
|
68 |
+
Copyright © 2011-2016, Heather Arthur and Josh Junon. Licensed under the [MIT License](LICENSE).
|
node_modules/.pnpm/ansi-styles@3.2.1/node_modules/color-convert/conversions.js
ADDED
@@ -0,0 +1,868 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* MIT license */
|
2 |
+
var cssKeywords = require('color-name');
|
3 |
+
|
4 |
+
// NOTE: conversions should only return primitive values (i.e. arrays, or
|
5 |
+
// values that give correct `typeof` results).
|
6 |
+
// do not use box values types (i.e. Number(), String(), etc.)
|
7 |
+
|
8 |
+
var reverseKeywords = {};
|
9 |
+
for (var key in cssKeywords) {
|
10 |
+
if (cssKeywords.hasOwnProperty(key)) {
|
11 |
+
reverseKeywords[cssKeywords[key]] = key;
|
12 |
+
}
|
13 |
+
}
|
14 |
+
|
15 |
+
var convert = module.exports = {
|
16 |
+
rgb: {channels: 3, labels: 'rgb'},
|
17 |
+
hsl: {channels: 3, labels: 'hsl'},
|
18 |
+
hsv: {channels: 3, labels: 'hsv'},
|
19 |
+
hwb: {channels: 3, labels: 'hwb'},
|
20 |
+
cmyk: {channels: 4, labels: 'cmyk'},
|
21 |
+
xyz: {channels: 3, labels: 'xyz'},
|
22 |
+
lab: {channels: 3, labels: 'lab'},
|
23 |
+
lch: {channels: 3, labels: 'lch'},
|
24 |
+
hex: {channels: 1, labels: ['hex']},
|
25 |
+
keyword: {channels: 1, labels: ['keyword']},
|
26 |
+
ansi16: {channels: 1, labels: ['ansi16']},
|
27 |
+
ansi256: {channels: 1, labels: ['ansi256']},
|
28 |
+
hcg: {channels: 3, labels: ['h', 'c', 'g']},
|
29 |
+
apple: {channels: 3, labels: ['r16', 'g16', 'b16']},
|
30 |
+
gray: {channels: 1, labels: ['gray']}
|
31 |
+
};
|
32 |
+
|
33 |
+
// hide .channels and .labels properties
|
34 |
+
for (var model in convert) {
|
35 |
+
if (convert.hasOwnProperty(model)) {
|
36 |
+
if (!('channels' in convert[model])) {
|
37 |
+
throw new Error('missing channels property: ' + model);
|
38 |
+
}
|
39 |
+
|
40 |
+
if (!('labels' in convert[model])) {
|
41 |
+
throw new Error('missing channel labels property: ' + model);
|
42 |
+
}
|
43 |
+
|
44 |
+
if (convert[model].labels.length !== convert[model].channels) {
|
45 |
+
throw new Error('channel and label counts mismatch: ' + model);
|
46 |
+
}
|
47 |
+
|
48 |
+
var channels = convert[model].channels;
|
49 |
+
var labels = convert[model].labels;
|
50 |
+
delete convert[model].channels;
|
51 |
+
delete convert[model].labels;
|
52 |
+
Object.defineProperty(convert[model], 'channels', {value: channels});
|
53 |
+
Object.defineProperty(convert[model], 'labels', {value: labels});
|
54 |
+
}
|
55 |
+
}
|
56 |
+
|
57 |
+
convert.rgb.hsl = function (rgb) {
|
58 |
+
var r = rgb[0] / 255;
|
59 |
+
var g = rgb[1] / 255;
|
60 |
+
var b = rgb[2] / 255;
|
61 |
+
var min = Math.min(r, g, b);
|
62 |
+
var max = Math.max(r, g, b);
|
63 |
+
var delta = max - min;
|
64 |
+
var h;
|
65 |
+
var s;
|
66 |
+
var l;
|
67 |
+
|
68 |
+
if (max === min) {
|
69 |
+
h = 0;
|
70 |
+
} else if (r === max) {
|
71 |
+
h = (g - b) / delta;
|
72 |
+
} else if (g === max) {
|
73 |
+
h = 2 + (b - r) / delta;
|
74 |
+
} else if (b === max) {
|
75 |
+
h = 4 + (r - g) / delta;
|
76 |
+
}
|
77 |
+
|
78 |
+
h = Math.min(h * 60, 360);
|
79 |
+
|
80 |
+
if (h < 0) {
|
81 |
+
h += 360;
|
82 |
+
}
|
83 |
+
|
84 |
+
l = (min + max) / 2;
|
85 |
+
|
86 |
+
if (max === min) {
|
87 |
+
s = 0;
|
88 |
+
} else if (l <= 0.5) {
|
89 |
+
s = delta / (max + min);
|
90 |
+
} else {
|
91 |
+
s = delta / (2 - max - min);
|
92 |
+
}
|
93 |
+
|
94 |
+
return [h, s * 100, l * 100];
|
95 |
+
};
|
96 |
+
|
97 |
+
convert.rgb.hsv = function (rgb) {
|
98 |
+
var rdif;
|
99 |
+
var gdif;
|
100 |
+
var bdif;
|
101 |
+
var h;
|
102 |
+
var s;
|
103 |
+
|
104 |
+
var r = rgb[0] / 255;
|
105 |
+
var g = rgb[1] / 255;
|
106 |
+
var b = rgb[2] / 255;
|
107 |
+
var v = Math.max(r, g, b);
|
108 |
+
var diff = v - Math.min(r, g, b);
|
109 |
+
var diffc = function (c) {
|
110 |
+
return (v - c) / 6 / diff + 1 / 2;
|
111 |
+
};
|
112 |
+
|
113 |
+
if (diff === 0) {
|
114 |
+
h = s = 0;
|
115 |
+
} else {
|
116 |
+
s = diff / v;
|
117 |
+
rdif = diffc(r);
|
118 |
+
gdif = diffc(g);
|
119 |
+
bdif = diffc(b);
|
120 |
+
|
121 |
+
if (r === v) {
|
122 |
+
h = bdif - gdif;
|
123 |
+
} else if (g === v) {
|
124 |
+
h = (1 / 3) + rdif - bdif;
|
125 |
+
} else if (b === v) {
|
126 |
+
h = (2 / 3) + gdif - rdif;
|
127 |
+
}
|
128 |
+
if (h < 0) {
|
129 |
+
h += 1;
|
130 |
+
} else if (h > 1) {
|
131 |
+
h -= 1;
|
132 |
+
}
|
133 |
+
}
|
134 |
+
|
135 |
+
return [
|
136 |
+
h * 360,
|
137 |
+
s * 100,
|
138 |
+
v * 100
|
139 |
+
];
|
140 |
+
};
|
141 |
+
|
142 |
+
convert.rgb.hwb = function (rgb) {
|
143 |
+
var r = rgb[0];
|
144 |
+
var g = rgb[1];
|
145 |
+
var b = rgb[2];
|
146 |
+
var h = convert.rgb.hsl(rgb)[0];
|
147 |
+
var w = 1 / 255 * Math.min(r, Math.min(g, b));
|
148 |
+
|
149 |
+
b = 1 - 1 / 255 * Math.max(r, Math.max(g, b));
|
150 |
+
|
151 |
+
return [h, w * 100, b * 100];
|
152 |
+
};
|
153 |
+
|
154 |
+
convert.rgb.cmyk = function (rgb) {
|
155 |
+
var r = rgb[0] / 255;
|
156 |
+
var g = rgb[1] / 255;
|
157 |
+
var b = rgb[2] / 255;
|
158 |
+
var c;
|
159 |
+
var m;
|
160 |
+
var y;
|
161 |
+
var k;
|
162 |
+
|
163 |
+
k = Math.min(1 - r, 1 - g, 1 - b);
|
164 |
+
c = (1 - r - k) / (1 - k) || 0;
|
165 |
+
m = (1 - g - k) / (1 - k) || 0;
|
166 |
+
y = (1 - b - k) / (1 - k) || 0;
|
167 |
+
|
168 |
+
return [c * 100, m * 100, y * 100, k * 100];
|
169 |
+
};
|
170 |
+
|
171 |
+
/**
|
172 |
+
* See https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance
|
173 |
+
* */
|
174 |
+
function comparativeDistance(x, y) {
|
175 |
+
return (
|
176 |
+
Math.pow(x[0] - y[0], 2) +
|
177 |
+
Math.pow(x[1] - y[1], 2) +
|
178 |
+
Math.pow(x[2] - y[2], 2)
|
179 |
+
);
|
180 |
+
}
|
181 |
+
|
182 |
+
convert.rgb.keyword = function (rgb) {
|
183 |
+
var reversed = reverseKeywords[rgb];
|
184 |
+
if (reversed) {
|
185 |
+
return reversed;
|
186 |
+
}
|
187 |
+
|
188 |
+
var currentClosestDistance = Infinity;
|
189 |
+
var currentClosestKeyword;
|
190 |
+
|
191 |
+
for (var keyword in cssKeywords) {
|
192 |
+
if (cssKeywords.hasOwnProperty(keyword)) {
|
193 |
+
var value = cssKeywords[keyword];
|
194 |
+
|
195 |
+
// Compute comparative distance
|
196 |
+
var distance = comparativeDistance(rgb, value);
|
197 |
+
|
198 |
+
// Check if its less, if so set as closest
|
199 |
+
if (distance < currentClosestDistance) {
|
200 |
+
currentClosestDistance = distance;
|
201 |
+
currentClosestKeyword = keyword;
|
202 |
+
}
|
203 |
+
}
|
204 |
+
}
|
205 |
+
|
206 |
+
return currentClosestKeyword;
|
207 |
+
};
|
208 |
+
|
209 |
+
convert.keyword.rgb = function (keyword) {
|
210 |
+
return cssKeywords[keyword];
|
211 |
+
};
|
212 |
+
|
213 |
+
convert.rgb.xyz = function (rgb) {
|
214 |
+
var r = rgb[0] / 255;
|
215 |
+
var g = rgb[1] / 255;
|
216 |
+
var b = rgb[2] / 255;
|
217 |
+
|
218 |
+
// assume sRGB
|
219 |
+
r = r > 0.04045 ? Math.pow(((r + 0.055) / 1.055), 2.4) : (r / 12.92);
|
220 |
+
g = g > 0.04045 ? Math.pow(((g + 0.055) / 1.055), 2.4) : (g / 12.92);
|
221 |
+
b = b > 0.04045 ? Math.pow(((b + 0.055) / 1.055), 2.4) : (b / 12.92);
|
222 |
+
|
223 |
+
var x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805);
|
224 |
+
var y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722);
|
225 |
+
var z = (r * 0.0193) + (g * 0.1192) + (b * 0.9505);
|
226 |
+
|
227 |
+
return [x * 100, y * 100, z * 100];
|
228 |
+
};
|
229 |
+
|
230 |
+
convert.rgb.lab = function (rgb) {
|
231 |
+
var xyz = convert.rgb.xyz(rgb);
|
232 |
+
var x = xyz[0];
|
233 |
+
var y = xyz[1];
|
234 |
+
var z = xyz[2];
|
235 |
+
var l;
|
236 |
+
var a;
|
237 |
+
var b;
|
238 |
+
|
239 |
+
x /= 95.047;
|
240 |
+
y /= 100;
|
241 |
+
z /= 108.883;
|
242 |
+
|
243 |
+
x = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116);
|
244 |
+
y = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116);
|
245 |
+
z = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116);
|
246 |
+
|
247 |
+
l = (116 * y) - 16;
|
248 |
+
a = 500 * (x - y);
|
249 |
+
b = 200 * (y - z);
|
250 |
+
|
251 |
+
return [l, a, b];
|
252 |
+
};
|
253 |
+
|
254 |
+
convert.hsl.rgb = function (hsl) {
|
255 |
+
var h = hsl[0] / 360;
|
256 |
+
var s = hsl[1] / 100;
|
257 |
+
var l = hsl[2] / 100;
|
258 |
+
var t1;
|
259 |
+
var t2;
|
260 |
+
var t3;
|
261 |
+
var rgb;
|
262 |
+
var val;
|
263 |
+
|
264 |
+
if (s === 0) {
|
265 |
+
val = l * 255;
|
266 |
+
return [val, val, val];
|
267 |
+
}
|
268 |
+
|
269 |
+
if (l < 0.5) {
|
270 |
+
t2 = l * (1 + s);
|
271 |
+
} else {
|
272 |
+
t2 = l + s - l * s;
|
273 |
+
}
|
274 |
+
|
275 |
+
t1 = 2 * l - t2;
|
276 |
+
|
277 |
+
rgb = [0, 0, 0];
|
278 |
+
for (var i = 0; i < 3; i++) {
|
279 |
+
t3 = h + 1 / 3 * -(i - 1);
|
280 |
+
if (t3 < 0) {
|
281 |
+
t3++;
|
282 |
+
}
|
283 |
+
if (t3 > 1) {
|
284 |
+
t3--;
|
285 |
+
}
|
286 |
+
|
287 |
+
if (6 * t3 < 1) {
|
288 |
+
val = t1 + (t2 - t1) * 6 * t3;
|
289 |
+
} else if (2 * t3 < 1) {
|
290 |
+
val = t2;
|
291 |
+
} else if (3 * t3 < 2) {
|
292 |
+
val = t1 + (t2 - t1) * (2 / 3 - t3) * 6;
|
293 |
+
} else {
|
294 |
+
val = t1;
|
295 |
+
}
|
296 |
+
|
297 |
+
rgb[i] = val * 255;
|
298 |
+
}
|
299 |
+
|
300 |
+
return rgb;
|
301 |
+
};
|
302 |
+
|
303 |
+
convert.hsl.hsv = function (hsl) {
|
304 |
+
var h = hsl[0];
|
305 |
+
var s = hsl[1] / 100;
|
306 |
+
var l = hsl[2] / 100;
|
307 |
+
var smin = s;
|
308 |
+
var lmin = Math.max(l, 0.01);
|
309 |
+
var sv;
|
310 |
+
var v;
|
311 |
+
|
312 |
+
l *= 2;
|
313 |
+
s *= (l <= 1) ? l : 2 - l;
|
314 |
+
smin *= lmin <= 1 ? lmin : 2 - lmin;
|
315 |
+
v = (l + s) / 2;
|
316 |
+
sv = l === 0 ? (2 * smin) / (lmin + smin) : (2 * s) / (l + s);
|
317 |
+
|
318 |
+
return [h, sv * 100, v * 100];
|
319 |
+
};
|
320 |
+
|
321 |
+
convert.hsv.rgb = function (hsv) {
|
322 |
+
var h = hsv[0] / 60;
|
323 |
+
var s = hsv[1] / 100;
|
324 |
+
var v = hsv[2] / 100;
|
325 |
+
var hi = Math.floor(h) % 6;
|
326 |
+
|
327 |
+
var f = h - Math.floor(h);
|
328 |
+
var p = 255 * v * (1 - s);
|
329 |
+
var q = 255 * v * (1 - (s * f));
|
330 |
+
var t = 255 * v * (1 - (s * (1 - f)));
|
331 |
+
v *= 255;
|
332 |
+
|
333 |
+
switch (hi) {
|
334 |
+
case 0:
|
335 |
+
return [v, t, p];
|
336 |
+
case 1:
|
337 |
+
return [q, v, p];
|
338 |
+
case 2:
|
339 |
+
return [p, v, t];
|
340 |
+
case 3:
|
341 |
+
return [p, q, v];
|
342 |
+
case 4:
|
343 |
+
return [t, p, v];
|
344 |
+
case 5:
|
345 |
+
return [v, p, q];
|
346 |
+
}
|
347 |
+
};
|
348 |
+
|
349 |
+
convert.hsv.hsl = function (hsv) {
|
350 |
+
var h = hsv[0];
|
351 |
+
var s = hsv[1] / 100;
|
352 |
+
var v = hsv[2] / 100;
|
353 |
+
var vmin = Math.max(v, 0.01);
|
354 |
+
var lmin;
|
355 |
+
var sl;
|
356 |
+
var l;
|
357 |
+
|
358 |
+
l = (2 - s) * v;
|
359 |
+
lmin = (2 - s) * vmin;
|
360 |
+
sl = s * vmin;
|
361 |
+
sl /= (lmin <= 1) ? lmin : 2 - lmin;
|
362 |
+
sl = sl || 0;
|
363 |
+
l /= 2;
|
364 |
+
|
365 |
+
return [h, sl * 100, l * 100];
|
366 |
+
};
|
367 |
+
|
368 |
+
// http://dev.w3.org/csswg/css-color/#hwb-to-rgb
|
369 |
+
convert.hwb.rgb = function (hwb) {
|
370 |
+
var h = hwb[0] / 360;
|
371 |
+
var wh = hwb[1] / 100;
|
372 |
+
var bl = hwb[2] / 100;
|
373 |
+
var ratio = wh + bl;
|
374 |
+
var i;
|
375 |
+
var v;
|
376 |
+
var f;
|
377 |
+
var n;
|
378 |
+
|
379 |
+
// wh + bl cant be > 1
|
380 |
+
if (ratio > 1) {
|
381 |
+
wh /= ratio;
|
382 |
+
bl /= ratio;
|
383 |
+
}
|
384 |
+
|
385 |
+
i = Math.floor(6 * h);
|
386 |
+
v = 1 - bl;
|
387 |
+
f = 6 * h - i;
|
388 |
+
|
389 |
+
if ((i & 0x01) !== 0) {
|
390 |
+
f = 1 - f;
|
391 |
+
}
|
392 |
+
|
393 |
+
n = wh + f * (v - wh); // linear interpolation
|
394 |
+
|
395 |
+
var r;
|
396 |
+
var g;
|
397 |
+
var b;
|
398 |
+
switch (i) {
|
399 |
+
default:
|
400 |
+
case 6:
|
401 |
+
case 0: r = v; g = n; b = wh; break;
|
402 |
+
case 1: r = n; g = v; b = wh; break;
|
403 |
+
case 2: r = wh; g = v; b = n; break;
|
404 |
+
case 3: r = wh; g = n; b = v; break;
|
405 |
+
case 4: r = n; g = wh; b = v; break;
|
406 |
+
case 5: r = v; g = wh; b = n; break;
|
407 |
+
}
|
408 |
+
|
409 |
+
return [r * 255, g * 255, b * 255];
|
410 |
+
};
|
411 |
+
|
412 |
+
convert.cmyk.rgb = function (cmyk) {
|
413 |
+
var c = cmyk[0] / 100;
|
414 |
+
var m = cmyk[1] / 100;
|
415 |
+
var y = cmyk[2] / 100;
|
416 |
+
var k = cmyk[3] / 100;
|
417 |
+
var r;
|
418 |
+
var g;
|
419 |
+
var b;
|
420 |
+
|
421 |
+
r = 1 - Math.min(1, c * (1 - k) + k);
|
422 |
+
g = 1 - Math.min(1, m * (1 - k) + k);
|
423 |
+
b = 1 - Math.min(1, y * (1 - k) + k);
|
424 |
+
|
425 |
+
return [r * 255, g * 255, b * 255];
|
426 |
+
};
|
427 |
+
|
428 |
+
convert.xyz.rgb = function (xyz) {
|
429 |
+
var x = xyz[0] / 100;
|
430 |
+
var y = xyz[1] / 100;
|
431 |
+
var z = xyz[2] / 100;
|
432 |
+
var r;
|
433 |
+
var g;
|
434 |
+
var b;
|
435 |
+
|
436 |
+
r = (x * 3.2406) + (y * -1.5372) + (z * -0.4986);
|
437 |
+
g = (x * -0.9689) + (y * 1.8758) + (z * 0.0415);
|
438 |
+
b = (x * 0.0557) + (y * -0.2040) + (z * 1.0570);
|
439 |
+
|
440 |
+
// assume sRGB
|
441 |
+
r = r > 0.0031308
|
442 |
+
? ((1.055 * Math.pow(r, 1.0 / 2.4)) - 0.055)
|
443 |
+
: r * 12.92;
|
444 |
+
|
445 |
+
g = g > 0.0031308
|
446 |
+
? ((1.055 * Math.pow(g, 1.0 / 2.4)) - 0.055)
|
447 |
+
: g * 12.92;
|
448 |
+
|
449 |
+
b = b > 0.0031308
|
450 |
+
? ((1.055 * Math.pow(b, 1.0 / 2.4)) - 0.055)
|
451 |
+
: b * 12.92;
|
452 |
+
|
453 |
+
r = Math.min(Math.max(0, r), 1);
|
454 |
+
g = Math.min(Math.max(0, g), 1);
|
455 |
+
b = Math.min(Math.max(0, b), 1);
|
456 |
+
|
457 |
+
return [r * 255, g * 255, b * 255];
|
458 |
+
};
|
459 |
+
|
460 |
+
convert.xyz.lab = function (xyz) {
|
461 |
+
var x = xyz[0];
|
462 |
+
var y = xyz[1];
|
463 |
+
var z = xyz[2];
|
464 |
+
var l;
|
465 |
+
var a;
|
466 |
+
var b;
|
467 |
+
|
468 |
+
x /= 95.047;
|
469 |
+
y /= 100;
|
470 |
+
z /= 108.883;
|
471 |
+
|
472 |
+
x = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116);
|
473 |
+
y = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116);
|
474 |
+
z = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116);
|
475 |
+
|
476 |
+
l = (116 * y) - 16;
|
477 |
+
a = 500 * (x - y);
|
478 |
+
b = 200 * (y - z);
|
479 |
+
|
480 |
+
return [l, a, b];
|
481 |
+
};
|
482 |
+
|
483 |
+
convert.lab.xyz = function (lab) {
|
484 |
+
var l = lab[0];
|
485 |
+
var a = lab[1];
|
486 |
+
var b = lab[2];
|
487 |
+
var x;
|
488 |
+
var y;
|
489 |
+
var z;
|
490 |
+
|
491 |
+
y = (l + 16) / 116;
|
492 |
+
x = a / 500 + y;
|
493 |
+
z = y - b / 200;
|
494 |
+
|
495 |
+
var y2 = Math.pow(y, 3);
|
496 |
+
var x2 = Math.pow(x, 3);
|
497 |
+
var z2 = Math.pow(z, 3);
|
498 |
+
y = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787;
|
499 |
+
x = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787;
|
500 |
+
z = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787;
|
501 |
+
|
502 |
+
x *= 95.047;
|
503 |
+
y *= 100;
|
504 |
+
z *= 108.883;
|
505 |
+
|
506 |
+
return [x, y, z];
|
507 |
+
};
|
508 |
+
|
509 |
+
convert.lab.lch = function (lab) {
|
510 |
+
var l = lab[0];
|
511 |
+
var a = lab[1];
|
512 |
+
var b = lab[2];
|
513 |
+
var hr;
|
514 |
+
var h;
|
515 |
+
var c;
|
516 |
+
|
517 |
+
hr = Math.atan2(b, a);
|
518 |
+
h = hr * 360 / 2 / Math.PI;
|
519 |
+
|
520 |
+
if (h < 0) {
|
521 |
+
h += 360;
|
522 |
+
}
|
523 |
+
|
524 |
+
c = Math.sqrt(a * a + b * b);
|
525 |
+
|
526 |
+
return [l, c, h];
|
527 |
+
};
|
528 |
+
|
529 |
+
convert.lch.lab = function (lch) {
|
530 |
+
var l = lch[0];
|
531 |
+
var c = lch[1];
|
532 |
+
var h = lch[2];
|
533 |
+
var a;
|
534 |
+
var b;
|
535 |
+
var hr;
|
536 |
+
|
537 |
+
hr = h / 360 * 2 * Math.PI;
|
538 |
+
a = c * Math.cos(hr);
|
539 |
+
b = c * Math.sin(hr);
|
540 |
+
|
541 |
+
return [l, a, b];
|
542 |
+
};
|
543 |
+
|
544 |
+
convert.rgb.ansi16 = function (args) {
|
545 |
+
var r = args[0];
|
546 |
+
var g = args[1];
|
547 |
+
var b = args[2];
|
548 |
+
var value = 1 in arguments ? arguments[1] : convert.rgb.hsv(args)[2]; // hsv -> ansi16 optimization
|
549 |
+
|
550 |
+
value = Math.round(value / 50);
|
551 |
+
|
552 |
+
if (value === 0) {
|
553 |
+
return 30;
|
554 |
+
}
|
555 |
+
|
556 |
+
var ansi = 30
|
557 |
+
+ ((Math.round(b / 255) << 2)
|
558 |
+
| (Math.round(g / 255) << 1)
|
559 |
+
| Math.round(r / 255));
|
560 |
+
|
561 |
+
if (value === 2) {
|
562 |
+
ansi += 60;
|
563 |
+
}
|
564 |
+
|
565 |
+
return ansi;
|
566 |
+
};
|
567 |
+
|
568 |
+
convert.hsv.ansi16 = function (args) {
|
569 |
+
// optimization here; we already know the value and don't need to get
|
570 |
+
// it converted for us.
|
571 |
+
return convert.rgb.ansi16(convert.hsv.rgb(args), args[2]);
|
572 |
+
};
|
573 |
+
|
574 |
+
convert.rgb.ansi256 = function (args) {
|
575 |
+
var r = args[0];
|
576 |
+
var g = args[1];
|
577 |
+
var b = args[2];
|
578 |
+
|
579 |
+
// we use the extended greyscale palette here, with the exception of
|
580 |
+
// black and white. normal palette only has 4 greyscale shades.
|
581 |
+
if (r === g && g === b) {
|
582 |
+
if (r < 8) {
|
583 |
+
return 16;
|
584 |
+
}
|
585 |
+
|
586 |
+
if (r > 248) {
|
587 |
+
return 231;
|
588 |
+
}
|
589 |
+
|
590 |
+
return Math.round(((r - 8) / 247) * 24) + 232;
|
591 |
+
}
|
592 |
+
|
593 |
+
var ansi = 16
|
594 |
+
+ (36 * Math.round(r / 255 * 5))
|
595 |
+
+ (6 * Math.round(g / 255 * 5))
|
596 |
+
+ Math.round(b / 255 * 5);
|
597 |
+
|
598 |
+
return ansi;
|
599 |
+
};
|
600 |
+
|
601 |
+
convert.ansi16.rgb = function (args) {
|
602 |
+
var color = args % 10;
|
603 |
+
|
604 |
+
// handle greyscale
|
605 |
+
if (color === 0 || color === 7) {
|
606 |
+
if (args > 50) {
|
607 |
+
color += 3.5;
|
608 |
+
}
|
609 |
+
|
610 |
+
color = color / 10.5 * 255;
|
611 |
+
|
612 |
+
return [color, color, color];
|
613 |
+
}
|
614 |
+
|
615 |
+
var mult = (~~(args > 50) + 1) * 0.5;
|
616 |
+
var r = ((color & 1) * mult) * 255;
|
617 |
+
var g = (((color >> 1) & 1) * mult) * 255;
|
618 |
+
var b = (((color >> 2) & 1) * mult) * 255;
|
619 |
+
|
620 |
+
return [r, g, b];
|
621 |
+
};
|
622 |
+
|
623 |
+
convert.ansi256.rgb = function (args) {
|
624 |
+
// handle greyscale
|
625 |
+
if (args >= 232) {
|
626 |
+
var c = (args - 232) * 10 + 8;
|
627 |
+
return [c, c, c];
|
628 |
+
}
|
629 |
+
|
630 |
+
args -= 16;
|
631 |
+
|
632 |
+
var rem;
|
633 |
+
var r = Math.floor(args / 36) / 5 * 255;
|
634 |
+
var g = Math.floor((rem = args % 36) / 6) / 5 * 255;
|
635 |
+
var b = (rem % 6) / 5 * 255;
|
636 |
+
|
637 |
+
return [r, g, b];
|
638 |
+
};
|
639 |
+
|
640 |
+
convert.rgb.hex = function (args) {
|
641 |
+
var integer = ((Math.round(args[0]) & 0xFF) << 16)
|
642 |
+
+ ((Math.round(args[1]) & 0xFF) << 8)
|
643 |
+
+ (Math.round(args[2]) & 0xFF);
|
644 |
+
|
645 |
+
var string = integer.toString(16).toUpperCase();
|
646 |
+
return '000000'.substring(string.length) + string;
|
647 |
+
};
|
648 |
+
|
649 |
+
convert.hex.rgb = function (args) {
|
650 |
+
var match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);
|
651 |
+
if (!match) {
|
652 |
+
return [0, 0, 0];
|
653 |
+
}
|
654 |
+
|
655 |
+
var colorString = match[0];
|
656 |
+
|
657 |
+
if (match[0].length === 3) {
|
658 |
+
colorString = colorString.split('').map(function (char) {
|
659 |
+
return char + char;
|
660 |
+
}).join('');
|
661 |
+
}
|
662 |
+
|
663 |
+
var integer = parseInt(colorString, 16);
|
664 |
+
var r = (integer >> 16) & 0xFF;
|
665 |
+
var g = (integer >> 8) & 0xFF;
|
666 |
+
var b = integer & 0xFF;
|
667 |
+
|
668 |
+
return [r, g, b];
|
669 |
+
};
|
670 |
+
|
671 |
+
convert.rgb.hcg = function (rgb) {
|
672 |
+
var r = rgb[0] / 255;
|
673 |
+
var g = rgb[1] / 255;
|
674 |
+
var b = rgb[2] / 255;
|
675 |
+
var max = Math.max(Math.max(r, g), b);
|
676 |
+
var min = Math.min(Math.min(r, g), b);
|
677 |
+
var chroma = (max - min);
|
678 |
+
var grayscale;
|
679 |
+
var hue;
|
680 |
+
|
681 |
+
if (chroma < 1) {
|
682 |
+
grayscale = min / (1 - chroma);
|
683 |
+
} else {
|
684 |
+
grayscale = 0;
|
685 |
+
}
|
686 |
+
|
687 |
+
if (chroma <= 0) {
|
688 |
+
hue = 0;
|
689 |
+
} else
|
690 |
+
if (max === r) {
|
691 |
+
hue = ((g - b) / chroma) % 6;
|
692 |
+
} else
|
693 |
+
if (max === g) {
|
694 |
+
hue = 2 + (b - r) / chroma;
|
695 |
+
} else {
|
696 |
+
hue = 4 + (r - g) / chroma + 4;
|
697 |
+
}
|
698 |
+
|
699 |
+
hue /= 6;
|
700 |
+
hue %= 1;
|
701 |
+
|
702 |
+
return [hue * 360, chroma * 100, grayscale * 100];
|
703 |
+
};
|
704 |
+
|
705 |
+
convert.hsl.hcg = function (hsl) {
|
706 |
+
var s = hsl[1] / 100;
|
707 |
+
var l = hsl[2] / 100;
|
708 |
+
var c = 1;
|
709 |
+
var f = 0;
|
710 |
+
|
711 |
+
if (l < 0.5) {
|
712 |
+
c = 2.0 * s * l;
|
713 |
+
} else {
|
714 |
+
c = 2.0 * s * (1.0 - l);
|
715 |
+
}
|
716 |
+
|
717 |
+
if (c < 1.0) {
|
718 |
+
f = (l - 0.5 * c) / (1.0 - c);
|
719 |
+
}
|
720 |
+
|
721 |
+
return [hsl[0], c * 100, f * 100];
|
722 |
+
};
|
723 |
+
|
724 |
+
convert.hsv.hcg = function (hsv) {
|
725 |
+
var s = hsv[1] / 100;
|
726 |
+
var v = hsv[2] / 100;
|
727 |
+
|
728 |
+
var c = s * v;
|
729 |
+
var f = 0;
|
730 |
+
|
731 |
+
if (c < 1.0) {
|
732 |
+
f = (v - c) / (1 - c);
|
733 |
+
}
|
734 |
+
|
735 |
+
return [hsv[0], c * 100, f * 100];
|
736 |
+
};
|
737 |
+
|
738 |
+
convert.hcg.rgb = function (hcg) {
|
739 |
+
var h = hcg[0] / 360;
|
740 |
+
var c = hcg[1] / 100;
|
741 |
+
var g = hcg[2] / 100;
|
742 |
+
|
743 |
+
if (c === 0.0) {
|
744 |
+
return [g * 255, g * 255, g * 255];
|
745 |
+
}
|
746 |
+
|
747 |
+
var pure = [0, 0, 0];
|
748 |
+
var hi = (h % 1) * 6;
|
749 |
+
var v = hi % 1;
|
750 |
+
var w = 1 - v;
|
751 |
+
var mg = 0;
|
752 |
+
|
753 |
+
switch (Math.floor(hi)) {
|
754 |
+
case 0:
|
755 |
+
pure[0] = 1; pure[1] = v; pure[2] = 0; break;
|
756 |
+
case 1:
|
757 |
+
pure[0] = w; pure[1] = 1; pure[2] = 0; break;
|
758 |
+
case 2:
|
759 |
+
pure[0] = 0; pure[1] = 1; pure[2] = v; break;
|
760 |
+
case 3:
|
761 |
+
pure[0] = 0; pure[1] = w; pure[2] = 1; break;
|
762 |
+
case 4:
|
763 |
+
pure[0] = v; pure[1] = 0; pure[2] = 1; break;
|
764 |
+
default:
|
765 |
+
pure[0] = 1; pure[1] = 0; pure[2] = w;
|
766 |
+
}
|
767 |
+
|
768 |
+
mg = (1.0 - c) * g;
|
769 |
+
|
770 |
+
return [
|
771 |
+
(c * pure[0] + mg) * 255,
|
772 |
+
(c * pure[1] + mg) * 255,
|
773 |
+
(c * pure[2] + mg) * 255
|
774 |
+
];
|
775 |
+
};
|
776 |
+
|
777 |
+
convert.hcg.hsv = function (hcg) {
|
778 |
+
var c = hcg[1] / 100;
|
779 |
+
var g = hcg[2] / 100;
|
780 |
+
|
781 |
+
var v = c + g * (1.0 - c);
|
782 |
+
var f = 0;
|
783 |
+
|
784 |
+
if (v > 0.0) {
|
785 |
+
f = c / v;
|
786 |
+
}
|
787 |
+
|
788 |
+
return [hcg[0], f * 100, v * 100];
|
789 |
+
};
|
790 |
+
|
791 |
+
convert.hcg.hsl = function (hcg) {
|
792 |
+
var c = hcg[1] / 100;
|
793 |
+
var g = hcg[2] / 100;
|
794 |
+
|
795 |
+
var l = g * (1.0 - c) + 0.5 * c;
|
796 |
+
var s = 0;
|
797 |
+
|
798 |
+
if (l > 0.0 && l < 0.5) {
|
799 |
+
s = c / (2 * l);
|
800 |
+
} else
|
801 |
+
if (l >= 0.5 && l < 1.0) {
|
802 |
+
s = c / (2 * (1 - l));
|
803 |
+
}
|
804 |
+
|
805 |
+
return [hcg[0], s * 100, l * 100];
|
806 |
+
};
|
807 |
+
|
808 |
+
convert.hcg.hwb = function (hcg) {
|
809 |
+
var c = hcg[1] / 100;
|
810 |
+
var g = hcg[2] / 100;
|
811 |
+
var v = c + g * (1.0 - c);
|
812 |
+
return [hcg[0], (v - c) * 100, (1 - v) * 100];
|
813 |
+
};
|
814 |
+
|
815 |
+
convert.hwb.hcg = function (hwb) {
|
816 |
+
var w = hwb[1] / 100;
|
817 |
+
var b = hwb[2] / 100;
|
818 |
+
var v = 1 - b;
|
819 |
+
var c = v - w;
|
820 |
+
var g = 0;
|
821 |
+
|
822 |
+
if (c < 1) {
|
823 |
+
g = (v - c) / (1 - c);
|
824 |
+
}
|
825 |
+
|
826 |
+
return [hwb[0], c * 100, g * 100];
|
827 |
+
};
|
828 |
+
|
829 |
+
convert.apple.rgb = function (apple) {
|
830 |
+
return [(apple[0] / 65535) * 255, (apple[1] / 65535) * 255, (apple[2] / 65535) * 255];
|
831 |
+
};
|
832 |
+
|
833 |
+
convert.rgb.apple = function (rgb) {
|
834 |
+
return [(rgb[0] / 255) * 65535, (rgb[1] / 255) * 65535, (rgb[2] / 255) * 65535];
|
835 |
+
};
|
836 |
+
|
837 |
+
convert.gray.rgb = function (args) {
|
838 |
+
return [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255];
|
839 |
+
};
|
840 |
+
|
841 |
+
convert.gray.hsl = convert.gray.hsv = function (args) {
|
842 |
+
return [0, 0, args[0]];
|
843 |
+
};
|
844 |
+
|
845 |
+
convert.gray.hwb = function (gray) {
|
846 |
+
return [0, 100, gray[0]];
|
847 |
+
};
|
848 |
+
|
849 |
+
convert.gray.cmyk = function (gray) {
|
850 |
+
return [0, 0, 0, gray[0]];
|
851 |
+
};
|
852 |
+
|
853 |
+
convert.gray.lab = function (gray) {
|
854 |
+
return [gray[0], 0, 0];
|
855 |
+
};
|
856 |
+
|
857 |
+
convert.gray.hex = function (gray) {
|
858 |
+
var val = Math.round(gray[0] / 100 * 255) & 0xFF;
|
859 |
+
var integer = (val << 16) + (val << 8) + val;
|
860 |
+
|
861 |
+
var string = integer.toString(16).toUpperCase();
|
862 |
+
return '000000'.substring(string.length) + string;
|
863 |
+
};
|
864 |
+
|
865 |
+
convert.rgb.gray = function (rgb) {
|
866 |
+
var val = (rgb[0] + rgb[1] + rgb[2]) / 3;
|
867 |
+
return [val / 255 * 100];
|
868 |
+
};
|
node_modules/.pnpm/ansi-styles@3.2.1/node_modules/color-convert/index.js
ADDED
@@ -0,0 +1,78 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
var conversions = require('./conversions');
|
2 |
+
var route = require('./route');
|
3 |
+
|
4 |
+
var convert = {};
|
5 |
+
|
6 |
+
var models = Object.keys(conversions);
|
7 |
+
|
8 |
+
function wrapRaw(fn) {
|
9 |
+
var wrappedFn = function (args) {
|
10 |
+
if (args === undefined || args === null) {
|
11 |
+
return args;
|
12 |
+
}
|
13 |
+
|
14 |
+
if (arguments.length > 1) {
|
15 |
+
args = Array.prototype.slice.call(arguments);
|
16 |
+
}
|
17 |
+
|
18 |
+
return fn(args);
|
19 |
+
};
|
20 |
+
|
21 |
+
// preserve .conversion property if there is one
|
22 |
+
if ('conversion' in fn) {
|
23 |
+
wrappedFn.conversion = fn.conversion;
|
24 |
+
}
|
25 |
+
|
26 |
+
return wrappedFn;
|
27 |
+
}
|
28 |
+
|
29 |
+
function wrapRounded(fn) {
|
30 |
+
var wrappedFn = function (args) {
|
31 |
+
if (args === undefined || args === null) {
|
32 |
+
return args;
|
33 |
+
}
|
34 |
+
|
35 |
+
if (arguments.length > 1) {
|
36 |
+
args = Array.prototype.slice.call(arguments);
|
37 |
+
}
|
38 |
+
|
39 |
+
var result = fn(args);
|
40 |
+
|
41 |
+
// we're assuming the result is an array here.
|
42 |
+
// see notice in conversions.js; don't use box types
|
43 |
+
// in conversion functions.
|
44 |
+
if (typeof result === 'object') {
|
45 |
+
for (var len = result.length, i = 0; i < len; i++) {
|
46 |
+
result[i] = Math.round(result[i]);
|
47 |
+
}
|
48 |
+
}
|
49 |
+
|
50 |
+
return result;
|
51 |
+
};
|
52 |
+
|
53 |
+
// preserve .conversion property if there is one
|
54 |
+
if ('conversion' in fn) {
|
55 |
+
wrappedFn.conversion = fn.conversion;
|
56 |
+
}
|
57 |
+
|
58 |
+
return wrappedFn;
|
59 |
+
}
|
60 |
+
|
61 |
+
models.forEach(function (fromModel) {
|
62 |
+
convert[fromModel] = {};
|
63 |
+
|
64 |
+
Object.defineProperty(convert[fromModel], 'channels', {value: conversions[fromModel].channels});
|
65 |
+
Object.defineProperty(convert[fromModel], 'labels', {value: conversions[fromModel].labels});
|
66 |
+
|
67 |
+
var routes = route(fromModel);
|
68 |
+
var routeModels = Object.keys(routes);
|
69 |
+
|
70 |
+
routeModels.forEach(function (toModel) {
|
71 |
+
var fn = routes[toModel];
|
72 |
+
|
73 |
+
convert[fromModel][toModel] = wrapRounded(fn);
|
74 |
+
convert[fromModel][toModel].raw = wrapRaw(fn);
|
75 |
+
});
|
76 |
+
});
|
77 |
+
|
78 |
+
module.exports = convert;
|
node_modules/.pnpm/ansi-styles@3.2.1/node_modules/color-convert/package.json
ADDED
@@ -0,0 +1,46 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"name": "color-convert",
|
3 |
+
"description": "Plain color conversion functions",
|
4 |
+
"version": "1.9.3",
|
5 |
+
"author": "Heather Arthur <fayearthur@gmail.com>",
|
6 |
+
"license": "MIT",
|
7 |
+
"repository": "Qix-/color-convert",
|
8 |
+
"scripts": {
|
9 |
+
"pretest": "xo",
|
10 |
+
"test": "node test/basic.js"
|
11 |
+
},
|
12 |
+
"keywords": [
|
13 |
+
"color",
|
14 |
+
"colour",
|
15 |
+
"convert",
|
16 |
+
"converter",
|
17 |
+
"conversion",
|
18 |
+
"rgb",
|
19 |
+
"hsl",
|
20 |
+
"hsv",
|
21 |
+
"hwb",
|
22 |
+
"cmyk",
|
23 |
+
"ansi",
|
24 |
+
"ansi16"
|
25 |
+
],
|
26 |
+
"files": [
|
27 |
+
"index.js",
|
28 |
+
"conversions.js",
|
29 |
+
"css-keywords.js",
|
30 |
+
"route.js"
|
31 |
+
],
|
32 |
+
"xo": {
|
33 |
+
"rules": {
|
34 |
+
"default-case": 0,
|
35 |
+
"no-inline-comments": 0,
|
36 |
+
"operator-linebreak": 0
|
37 |
+
}
|
38 |
+
},
|
39 |
+
"devDependencies": {
|
40 |
+
"chalk": "1.1.1",
|
41 |
+
"xo": "0.11.2"
|
42 |
+
},
|
43 |
+
"dependencies": {
|
44 |
+
"color-name": "1.1.3"
|
45 |
+
}
|
46 |
+
}
|
node_modules/.pnpm/ansi-styles@3.2.1/node_modules/color-convert/route.js
ADDED
@@ -0,0 +1,97 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
var conversions = require('./conversions');
|
2 |
+
|
3 |
+
/*
|
4 |
+
this function routes a model to all other models.
|
5 |
+
|
6 |
+
all functions that are routed have a property `.conversion` attached
|
7 |
+
to the returned synthetic function. This property is an array
|
8 |
+
of strings, each with the steps in between the 'from' and 'to'
|
9 |
+
color models (inclusive).
|
10 |
+
|
11 |
+
conversions that are not possible simply are not included.
|
12 |
+
*/
|
13 |
+
|
14 |
+
function buildGraph() {
|
15 |
+
var graph = {};
|
16 |
+
// https://jsperf.com/object-keys-vs-for-in-with-closure/3
|
17 |
+
var models = Object.keys(conversions);
|
18 |
+
|
19 |
+
for (var len = models.length, i = 0; i < len; i++) {
|
20 |
+
graph[models[i]] = {
|
21 |
+
// http://jsperf.com/1-vs-infinity
|
22 |
+
// micro-opt, but this is simple.
|
23 |
+
distance: -1,
|
24 |
+
parent: null
|
25 |
+
};
|
26 |
+
}
|
27 |
+
|
28 |
+
return graph;
|
29 |
+
}
|
30 |
+
|
31 |
+
// https://en.wikipedia.org/wiki/Breadth-first_search
|
32 |
+
function deriveBFS(fromModel) {
|
33 |
+
var graph = buildGraph();
|
34 |
+
var queue = [fromModel]; // unshift -> queue -> pop
|
35 |
+
|
36 |
+
graph[fromModel].distance = 0;
|
37 |
+
|
38 |
+
while (queue.length) {
|
39 |
+
var current = queue.pop();
|
40 |
+
var adjacents = Object.keys(conversions[current]);
|
41 |
+
|
42 |
+
for (var len = adjacents.length, i = 0; i < len; i++) {
|
43 |
+
var adjacent = adjacents[i];
|
44 |
+
var node = graph[adjacent];
|
45 |
+
|
46 |
+
if (node.distance === -1) {
|
47 |
+
node.distance = graph[current].distance + 1;
|
48 |
+
node.parent = current;
|
49 |
+
queue.unshift(adjacent);
|
50 |
+
}
|
51 |
+
}
|
52 |
+
}
|
53 |
+
|
54 |
+
return graph;
|
55 |
+
}
|
56 |
+
|
57 |
+
function link(from, to) {
|
58 |
+
return function (args) {
|
59 |
+
return to(from(args));
|
60 |
+
};
|
61 |
+
}
|
62 |
+
|
63 |
+
function wrapConversion(toModel, graph) {
|
64 |
+
var path = [graph[toModel].parent, toModel];
|
65 |
+
var fn = conversions[graph[toModel].parent][toModel];
|
66 |
+
|
67 |
+
var cur = graph[toModel].parent;
|
68 |
+
while (graph[cur].parent) {
|
69 |
+
path.unshift(graph[cur].parent);
|
70 |
+
fn = link(conversions[graph[cur].parent][cur], fn);
|
71 |
+
cur = graph[cur].parent;
|
72 |
+
}
|
73 |
+
|
74 |
+
fn.conversion = path;
|
75 |
+
return fn;
|
76 |
+
}
|
77 |
+
|
78 |
+
module.exports = function (fromModel) {
|
79 |
+
var graph = deriveBFS(fromModel);
|
80 |
+
var conversion = {};
|
81 |
+
|
82 |
+
var models = Object.keys(graph);
|
83 |
+
for (var len = models.length, i = 0; i < len; i++) {
|
84 |
+
var toModel = models[i];
|
85 |
+
var node = graph[toModel];
|
86 |
+
|
87 |
+
if (node.parent === null) {
|
88 |
+
// no possible conversion, or this node is the source model.
|
89 |
+
continue;
|
90 |
+
}
|
91 |
+
|
92 |
+
conversion[toModel] = wrapConversion(toModel, graph);
|
93 |
+
}
|
94 |
+
|
95 |
+
return conversion;
|
96 |
+
};
|
97 |
+
|
node_modules/.pnpm/balanced-match@1.0.2/node_modules/balanced-match/.github/FUNDING.yml
ADDED
@@ -0,0 +1,2 @@
|
|
|
|
|
|
|
1 |
+
tidelift: "npm/balanced-match"
|
2 |
+
patreon: juliangruber
|
node_modules/.pnpm/balanced-match@1.0.2/node_modules/balanced-match/LICENSE.md
ADDED
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
(MIT)
|
2 |
+
|
3 |
+
Copyright (c) 2013 Julian Gruber <julian@juliangruber.com>
|
4 |
+
|
5 |
+
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
6 |
+
this software and associated documentation files (the "Software"), to deal in
|
7 |
+
the Software without restriction, including without limitation the rights to
|
8 |
+
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
9 |
+
of the Software, and to permit persons to whom the Software is furnished to do
|
10 |
+
so, subject to the following conditions:
|
11 |
+
|
12 |
+
The above copyright notice and this permission notice shall be included in all
|
13 |
+
copies or substantial portions of the Software.
|
14 |
+
|
15 |
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16 |
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17 |
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18 |
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19 |
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20 |
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
21 |
+
SOFTWARE.
|
node_modules/.pnpm/balanced-match@1.0.2/node_modules/balanced-match/README.md
ADDED
@@ -0,0 +1,97 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# balanced-match
|
2 |
+
|
3 |
+
Match balanced string pairs, like `{` and `}` or `<b>` and `</b>`. Supports regular expressions as well!
|
4 |
+
|
5 |
+
[![build status](https://secure.travis-ci.org/juliangruber/balanced-match.svg)](http://travis-ci.org/juliangruber/balanced-match)
|
6 |
+
[![downloads](https://img.shields.io/npm/dm/balanced-match.svg)](https://www.npmjs.org/package/balanced-match)
|
7 |
+
|
8 |
+
[![testling badge](https://ci.testling.com/juliangruber/balanced-match.png)](https://ci.testling.com/juliangruber/balanced-match)
|
9 |
+
|
10 |
+
## Example
|
11 |
+
|
12 |
+
Get the first matching pair of braces:
|
13 |
+
|
14 |
+
```js
|
15 |
+
var balanced = require('balanced-match');
|
16 |
+
|
17 |
+
console.log(balanced('{', '}', 'pre{in{nested}}post'));
|
18 |
+
console.log(balanced('{', '}', 'pre{first}between{second}post'));
|
19 |
+
console.log(balanced(/\s+\{\s+/, /\s+\}\s+/, 'pre { in{nest} } post'));
|
20 |
+
```
|
21 |
+
|
22 |
+
The matches are:
|
23 |
+
|
24 |
+
```bash
|
25 |
+
$ node example.js
|
26 |
+
{ start: 3, end: 14, pre: 'pre', body: 'in{nested}', post: 'post' }
|
27 |
+
{ start: 3,
|
28 |
+
end: 9,
|
29 |
+
pre: 'pre',
|
30 |
+
body: 'first',
|
31 |
+
post: 'between{second}post' }
|
32 |
+
{ start: 3, end: 17, pre: 'pre', body: 'in{nest}', post: 'post' }
|
33 |
+
```
|
34 |
+
|
35 |
+
## API
|
36 |
+
|
37 |
+
### var m = balanced(a, b, str)
|
38 |
+
|
39 |
+
For the first non-nested matching pair of `a` and `b` in `str`, return an
|
40 |
+
object with those keys:
|
41 |
+
|
42 |
+
* **start** the index of the first match of `a`
|
43 |
+
* **end** the index of the matching `b`
|
44 |
+
* **pre** the preamble, `a` and `b` not included
|
45 |
+
* **body** the match, `a` and `b` not included
|
46 |
+
* **post** the postscript, `a` and `b` not included
|
47 |
+
|
48 |
+
If there's no match, `undefined` will be returned.
|
49 |
+
|
50 |
+
If the `str` contains more `a` than `b` / there are unmatched pairs, the first match that was closed will be used. For example, `{{a}` will match `['{', 'a', '']` and `{a}}` will match `['', 'a', '}']`.
|
51 |
+
|
52 |
+
### var r = balanced.range(a, b, str)
|
53 |
+
|
54 |
+
For the first non-nested matching pair of `a` and `b` in `str`, return an
|
55 |
+
array with indexes: `[ <a index>, <b index> ]`.
|
56 |
+
|
57 |
+
If there's no match, `undefined` will be returned.
|
58 |
+
|
59 |
+
If the `str` contains more `a` than `b` / there are unmatched pairs, the first match that was closed will be used. For example, `{{a}` will match `[ 1, 3 ]` and `{a}}` will match `[0, 2]`.
|
60 |
+
|
61 |
+
## Installation
|
62 |
+
|
63 |
+
With [npm](https://npmjs.org) do:
|
64 |
+
|
65 |
+
```bash
|
66 |
+
npm install balanced-match
|
67 |
+
```
|
68 |
+
|
69 |
+
## Security contact information
|
70 |
+
|
71 |
+
To report a security vulnerability, please use the
|
72 |
+
[Tidelift security contact](https://tidelift.com/security).
|
73 |
+
Tidelift will coordinate the fix and disclosure.
|
74 |
+
|
75 |
+
## License
|
76 |
+
|
77 |
+
(MIT)
|
78 |
+
|
79 |
+
Copyright (c) 2013 Julian Gruber <julian@juliangruber.com>
|
80 |
+
|
81 |
+
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
82 |
+
this software and associated documentation files (the "Software"), to deal in
|
83 |
+
the Software without restriction, including without limitation the rights to
|
84 |
+
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
85 |
+
of the Software, and to permit persons to whom the Software is furnished to do
|
86 |
+
so, subject to the following conditions:
|
87 |
+
|
88 |
+
The above copyright notice and this permission notice shall be included in all
|
89 |
+
copies or substantial portions of the Software.
|
90 |
+
|
91 |
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
92 |
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
93 |
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
94 |
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
95 |
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
96 |
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
97 |
+
SOFTWARE.
|
node_modules/.pnpm/balanced-match@1.0.2/node_modules/balanced-match/index.js
ADDED
@@ -0,0 +1,62 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
'use strict';
|
2 |
+
module.exports = balanced;
|
3 |
+
function balanced(a, b, str) {
|
4 |
+
if (a instanceof RegExp) a = maybeMatch(a, str);
|
5 |
+
if (b instanceof RegExp) b = maybeMatch(b, str);
|
6 |
+
|
7 |
+
var r = range(a, b, str);
|
8 |
+
|
9 |
+
return r && {
|
10 |
+
start: r[0],
|
11 |
+
end: r[1],
|
12 |
+
pre: str.slice(0, r[0]),
|
13 |
+
body: str.slice(r[0] + a.length, r[1]),
|
14 |
+
post: str.slice(r[1] + b.length)
|
15 |
+
};
|
16 |
+
}
|
17 |
+
|
18 |
+
function maybeMatch(reg, str) {
|
19 |
+
var m = str.match(reg);
|
20 |
+
return m ? m[0] : null;
|
21 |
+
}
|
22 |
+
|
23 |
+
balanced.range = range;
|
24 |
+
function range(a, b, str) {
|
25 |
+
var begs, beg, left, right, result;
|
26 |
+
var ai = str.indexOf(a);
|
27 |
+
var bi = str.indexOf(b, ai + 1);
|
28 |
+
var i = ai;
|
29 |
+
|
30 |
+
if (ai >= 0 && bi > 0) {
|
31 |
+
if(a===b) {
|
32 |
+
return [ai, bi];
|
33 |
+
}
|
34 |
+
begs = [];
|
35 |
+
left = str.length;
|
36 |
+
|
37 |
+
while (i >= 0 && !result) {
|
38 |
+
if (i == ai) {
|
39 |
+
begs.push(i);
|
40 |
+
ai = str.indexOf(a, i + 1);
|
41 |
+
} else if (begs.length == 1) {
|
42 |
+
result = [ begs.pop(), bi ];
|
43 |
+
} else {
|
44 |
+
beg = begs.pop();
|
45 |
+
if (beg < left) {
|
46 |
+
left = beg;
|
47 |
+
right = bi;
|
48 |
+
}
|
49 |
+
|
50 |
+
bi = str.indexOf(b, i + 1);
|
51 |
+
}
|
52 |
+
|
53 |
+
i = ai < bi && ai >= 0 ? ai : bi;
|
54 |
+
}
|
55 |
+
|
56 |
+
if (begs.length) {
|
57 |
+
result = [ left, right ];
|
58 |
+
}
|
59 |
+
}
|
60 |
+
|
61 |
+
return result;
|
62 |
+
}
|
node_modules/.pnpm/balanced-match@1.0.2/node_modules/balanced-match/package.json
ADDED
@@ -0,0 +1,48 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"name": "balanced-match",
|
3 |
+
"description": "Match balanced character pairs, like \"{\" and \"}\"",
|
4 |
+
"version": "1.0.2",
|
5 |
+
"repository": {
|
6 |
+
"type": "git",
|
7 |
+
"url": "git://github.com/juliangruber/balanced-match.git"
|
8 |
+
},
|
9 |
+
"homepage": "https://github.com/juliangruber/balanced-match",
|
10 |
+
"main": "index.js",
|
11 |
+
"scripts": {
|
12 |
+
"test": "tape test/test.js",
|
13 |
+
"bench": "matcha test/bench.js"
|
14 |
+
},
|
15 |
+
"devDependencies": {
|
16 |
+
"matcha": "^0.7.0",
|
17 |
+
"tape": "^4.6.0"
|
18 |
+
},
|
19 |
+
"keywords": [
|
20 |
+
"match",
|
21 |
+
"regexp",
|
22 |
+
"test",
|
23 |
+
"balanced",
|
24 |
+
"parse"
|
25 |
+
],
|
26 |
+
"author": {
|
27 |
+
"name": "Julian Gruber",
|
28 |
+
"email": "mail@juliangruber.com",
|
29 |
+
"url": "http://juliangruber.com"
|
30 |
+
},
|
31 |
+
"license": "MIT",
|
32 |
+
"testling": {
|
33 |
+
"files": "test/*.js",
|
34 |
+
"browsers": [
|
35 |
+
"ie/8..latest",
|
36 |
+
"firefox/20..latest",
|
37 |
+
"firefox/nightly",
|
38 |
+
"chrome/25..latest",
|
39 |
+
"chrome/canary",
|
40 |
+
"opera/12..latest",
|
41 |
+
"opera/next",
|
42 |
+
"safari/5.1..latest",
|
43 |
+
"ipad/6.0..latest",
|
44 |
+
"iphone/6.0..latest",
|
45 |
+
"android-browser/4.2..latest"
|
46 |
+
]
|
47 |
+
}
|
48 |
+
}
|
node_modules/.pnpm/brace-expansion@1.1.11/node_modules/balanced-match/.github/FUNDING.yml
ADDED
@@ -0,0 +1,2 @@
|
|
|
|
|
|
|
1 |
+
tidelift: "npm/balanced-match"
|
2 |
+
patreon: juliangruber
|
node_modules/.pnpm/brace-expansion@1.1.11/node_modules/balanced-match/LICENSE.md
ADDED
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
(MIT)
|
2 |
+
|
3 |
+
Copyright (c) 2013 Julian Gruber <julian@juliangruber.com>
|
4 |
+
|
5 |
+
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
6 |
+
this software and associated documentation files (the "Software"), to deal in
|
7 |
+
the Software without restriction, including without limitation the rights to
|
8 |
+
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
9 |
+
of the Software, and to permit persons to whom the Software is furnished to do
|
10 |
+
so, subject to the following conditions:
|
11 |
+
|
12 |
+
The above copyright notice and this permission notice shall be included in all
|
13 |
+
copies or substantial portions of the Software.
|
14 |
+
|
15 |
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16 |
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17 |
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18 |
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19 |
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20 |
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
21 |
+
SOFTWARE.
|
node_modules/.pnpm/brace-expansion@1.1.11/node_modules/balanced-match/README.md
ADDED
@@ -0,0 +1,97 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# balanced-match
|
2 |
+
|
3 |
+
Match balanced string pairs, like `{` and `}` or `<b>` and `</b>`. Supports regular expressions as well!
|
4 |
+
|
5 |
+
[![build status](https://secure.travis-ci.org/juliangruber/balanced-match.svg)](http://travis-ci.org/juliangruber/balanced-match)
|
6 |
+
[![downloads](https://img.shields.io/npm/dm/balanced-match.svg)](https://www.npmjs.org/package/balanced-match)
|
7 |
+
|
8 |
+
[![testling badge](https://ci.testling.com/juliangruber/balanced-match.png)](https://ci.testling.com/juliangruber/balanced-match)
|
9 |
+
|
10 |
+
## Example
|
11 |
+
|
12 |
+
Get the first matching pair of braces:
|
13 |
+
|
14 |
+
```js
|
15 |
+
var balanced = require('balanced-match');
|
16 |
+
|
17 |
+
console.log(balanced('{', '}', 'pre{in{nested}}post'));
|
18 |
+
console.log(balanced('{', '}', 'pre{first}between{second}post'));
|
19 |
+
console.log(balanced(/\s+\{\s+/, /\s+\}\s+/, 'pre { in{nest} } post'));
|
20 |
+
```
|
21 |
+
|
22 |
+
The matches are:
|
23 |
+
|
24 |
+
```bash
|
25 |
+
$ node example.js
|
26 |
+
{ start: 3, end: 14, pre: 'pre', body: 'in{nested}', post: 'post' }
|
27 |
+
{ start: 3,
|
28 |
+
end: 9,
|
29 |
+
pre: 'pre',
|
30 |
+
body: 'first',
|
31 |
+
post: 'between{second}post' }
|
32 |
+
{ start: 3, end: 17, pre: 'pre', body: 'in{nest}', post: 'post' }
|
33 |
+
```
|
34 |
+
|
35 |
+
## API
|
36 |
+
|
37 |
+
### var m = balanced(a, b, str)
|
38 |
+
|
39 |
+
For the first non-nested matching pair of `a` and `b` in `str`, return an
|
40 |
+
object with those keys:
|
41 |
+
|
42 |
+
* **start** the index of the first match of `a`
|
43 |
+
* **end** the index of the matching `b`
|
44 |
+
* **pre** the preamble, `a` and `b` not included
|
45 |
+
* **body** the match, `a` and `b` not included
|
46 |
+
* **post** the postscript, `a` and `b` not included
|
47 |
+
|
48 |
+
If there's no match, `undefined` will be returned.
|
49 |
+
|
50 |
+
If the `str` contains more `a` than `b` / there are unmatched pairs, the first match that was closed will be used. For example, `{{a}` will match `['{', 'a', '']` and `{a}}` will match `['', 'a', '}']`.
|
51 |
+
|
52 |
+
### var r = balanced.range(a, b, str)
|
53 |
+
|
54 |
+
For the first non-nested matching pair of `a` and `b` in `str`, return an
|
55 |
+
array with indexes: `[ <a index>, <b index> ]`.
|
56 |
+
|
57 |
+
If there's no match, `undefined` will be returned.
|
58 |
+
|
59 |
+
If the `str` contains more `a` than `b` / there are unmatched pairs, the first match that was closed will be used. For example, `{{a}` will match `[ 1, 3 ]` and `{a}}` will match `[0, 2]`.
|
60 |
+
|
61 |
+
## Installation
|
62 |
+
|
63 |
+
With [npm](https://npmjs.org) do:
|
64 |
+
|
65 |
+
```bash
|
66 |
+
npm install balanced-match
|
67 |
+
```
|
68 |
+
|
69 |
+
## Security contact information
|
70 |
+
|
71 |
+
To report a security vulnerability, please use the
|
72 |
+
[Tidelift security contact](https://tidelift.com/security).
|
73 |
+
Tidelift will coordinate the fix and disclosure.
|
74 |
+
|
75 |
+
## License
|
76 |
+
|
77 |
+
(MIT)
|
78 |
+
|
79 |
+
Copyright (c) 2013 Julian Gruber <julian@juliangruber.com>
|
80 |
+
|
81 |
+
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
82 |
+
this software and associated documentation files (the "Software"), to deal in
|
83 |
+
the Software without restriction, including without limitation the rights to
|
84 |
+
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
85 |
+
of the Software, and to permit persons to whom the Software is furnished to do
|
86 |
+
so, subject to the following conditions:
|
87 |
+
|
88 |
+
The above copyright notice and this permission notice shall be included in all
|
89 |
+
copies or substantial portions of the Software.
|
90 |
+
|
91 |
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
92 |
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
93 |
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
94 |
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
95 |
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
96 |
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
97 |
+
SOFTWARE.
|
node_modules/.pnpm/brace-expansion@1.1.11/node_modules/balanced-match/index.js
ADDED
@@ -0,0 +1,62 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
'use strict';
|
2 |
+
module.exports = balanced;
|
3 |
+
function balanced(a, b, str) {
|
4 |
+
if (a instanceof RegExp) a = maybeMatch(a, str);
|
5 |
+
if (b instanceof RegExp) b = maybeMatch(b, str);
|
6 |
+
|
7 |
+
var r = range(a, b, str);
|
8 |
+
|
9 |
+
return r && {
|
10 |
+
start: r[0],
|
11 |
+
end: r[1],
|
12 |
+
pre: str.slice(0, r[0]),
|
13 |
+
body: str.slice(r[0] + a.length, r[1]),
|
14 |
+
post: str.slice(r[1] + b.length)
|
15 |
+
};
|
16 |
+
}
|
17 |
+
|
18 |
+
function maybeMatch(reg, str) {
|
19 |
+
var m = str.match(reg);
|
20 |
+
return m ? m[0] : null;
|
21 |
+
}
|
22 |
+
|
23 |
+
balanced.range = range;
|
24 |
+
function range(a, b, str) {
|
25 |
+
var begs, beg, left, right, result;
|
26 |
+
var ai = str.indexOf(a);
|
27 |
+
var bi = str.indexOf(b, ai + 1);
|
28 |
+
var i = ai;
|
29 |
+
|
30 |
+
if (ai >= 0 && bi > 0) {
|
31 |
+
if(a===b) {
|
32 |
+
return [ai, bi];
|
33 |
+
}
|
34 |
+
begs = [];
|
35 |
+
left = str.length;
|
36 |
+
|
37 |
+
while (i >= 0 && !result) {
|
38 |
+
if (i == ai) {
|
39 |
+
begs.push(i);
|
40 |
+
ai = str.indexOf(a, i + 1);
|
41 |
+
} else if (begs.length == 1) {
|
42 |
+
result = [ begs.pop(), bi ];
|
43 |
+
} else {
|
44 |
+
beg = begs.pop();
|
45 |
+
if (beg < left) {
|
46 |
+
left = beg;
|
47 |
+
right = bi;
|
48 |
+
}
|
49 |
+
|
50 |
+
bi = str.indexOf(b, i + 1);
|
51 |
+
}
|
52 |
+
|
53 |
+
i = ai < bi && ai >= 0 ? ai : bi;
|
54 |
+
}
|
55 |
+
|
56 |
+
if (begs.length) {
|
57 |
+
result = [ left, right ];
|
58 |
+
}
|
59 |
+
}
|
60 |
+
|
61 |
+
return result;
|
62 |
+
}
|
node_modules/.pnpm/brace-expansion@1.1.11/node_modules/balanced-match/package.json
ADDED
@@ -0,0 +1,48 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"name": "balanced-match",
|
3 |
+
"description": "Match balanced character pairs, like \"{\" and \"}\"",
|
4 |
+
"version": "1.0.2",
|
5 |
+
"repository": {
|
6 |
+
"type": "git",
|
7 |
+
"url": "git://github.com/juliangruber/balanced-match.git"
|
8 |
+
},
|
9 |
+
"homepage": "https://github.com/juliangruber/balanced-match",
|
10 |
+
"main": "index.js",
|
11 |
+
"scripts": {
|
12 |
+
"test": "tape test/test.js",
|
13 |
+
"bench": "matcha test/bench.js"
|
14 |
+
},
|
15 |
+
"devDependencies": {
|
16 |
+
"matcha": "^0.7.0",
|
17 |
+
"tape": "^4.6.0"
|
18 |
+
},
|
19 |
+
"keywords": [
|
20 |
+
"match",
|
21 |
+
"regexp",
|
22 |
+
"test",
|
23 |
+
"balanced",
|
24 |
+
"parse"
|
25 |
+
],
|
26 |
+
"author": {
|
27 |
+
"name": "Julian Gruber",
|
28 |
+
"email": "mail@juliangruber.com",
|
29 |
+
"url": "http://juliangruber.com"
|
30 |
+
},
|
31 |
+
"license": "MIT",
|
32 |
+
"testling": {
|
33 |
+
"files": "test/*.js",
|
34 |
+
"browsers": [
|
35 |
+
"ie/8..latest",
|
36 |
+
"firefox/20..latest",
|
37 |
+
"firefox/nightly",
|
38 |
+
"chrome/25..latest",
|
39 |
+
"chrome/canary",
|
40 |
+
"opera/12..latest",
|
41 |
+
"opera/next",
|
42 |
+
"safari/5.1..latest",
|
43 |
+
"ipad/6.0..latest",
|
44 |
+
"iphone/6.0..latest",
|
45 |
+
"android-browser/4.2..latest"
|
46 |
+
]
|
47 |
+
}
|
48 |
+
}
|
node_modules/.pnpm/brace-expansion@1.1.11/node_modules/brace-expansion/LICENSE
ADDED
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
MIT License
|
2 |
+
|
3 |
+
Copyright (c) 2013 Julian Gruber <julian@juliangruber.com>
|
4 |
+
|
5 |
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6 |
+
of this software and associated documentation files (the "Software"), to deal
|
7 |
+
in the Software without restriction, including without limitation the rights
|
8 |
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9 |
+
copies of the Software, and to permit persons to whom the Software is
|
10 |
+
furnished to do so, subject to the following conditions:
|
11 |
+
|
12 |
+
The above copyright notice and this permission notice shall be included in all
|
13 |
+
copies or substantial portions of the Software.
|
14 |
+
|
15 |
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16 |
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17 |
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18 |
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19 |
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20 |
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
21 |
+
SOFTWARE.
|
node_modules/.pnpm/brace-expansion@1.1.11/node_modules/brace-expansion/README.md
ADDED
@@ -0,0 +1,129 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# brace-expansion
|
2 |
+
|
3 |
+
[Brace expansion](https://www.gnu.org/software/bash/manual/html_node/Brace-Expansion.html),
|
4 |
+
as known from sh/bash, in JavaScript.
|
5 |
+
|
6 |
+
[![build status](https://secure.travis-ci.org/juliangruber/brace-expansion.svg)](http://travis-ci.org/juliangruber/brace-expansion)
|
7 |
+
[![downloads](https://img.shields.io/npm/dm/brace-expansion.svg)](https://www.npmjs.org/package/brace-expansion)
|
8 |
+
[![Greenkeeper badge](https://badges.greenkeeper.io/juliangruber/brace-expansion.svg)](https://greenkeeper.io/)
|
9 |
+
|
10 |
+
[![testling badge](https://ci.testling.com/juliangruber/brace-expansion.png)](https://ci.testling.com/juliangruber/brace-expansion)
|
11 |
+
|
12 |
+
## Example
|
13 |
+
|
14 |
+
```js
|
15 |
+
var expand = require('brace-expansion');
|
16 |
+
|
17 |
+
expand('file-{a,b,c}.jpg')
|
18 |
+
// => ['file-a.jpg', 'file-b.jpg', 'file-c.jpg']
|
19 |
+
|
20 |
+
expand('-v{,,}')
|
21 |
+
// => ['-v', '-v', '-v']
|
22 |
+
|
23 |
+
expand('file{0..2}.jpg')
|
24 |
+
// => ['file0.jpg', 'file1.jpg', 'file2.jpg']
|
25 |
+
|
26 |
+
expand('file-{a..c}.jpg')
|
27 |
+
// => ['file-a.jpg', 'file-b.jpg', 'file-c.jpg']
|
28 |
+
|
29 |
+
expand('file{2..0}.jpg')
|
30 |
+
// => ['file2.jpg', 'file1.jpg', 'file0.jpg']
|
31 |
+
|
32 |
+
expand('file{0..4..2}.jpg')
|
33 |
+
// => ['file0.jpg', 'file2.jpg', 'file4.jpg']
|
34 |
+
|
35 |
+
expand('file-{a..e..2}.jpg')
|
36 |
+
// => ['file-a.jpg', 'file-c.jpg', 'file-e.jpg']
|
37 |
+
|
38 |
+
expand('file{00..10..5}.jpg')
|
39 |
+
// => ['file00.jpg', 'file05.jpg', 'file10.jpg']
|
40 |
+
|
41 |
+
expand('{{A..C},{a..c}}')
|
42 |
+
// => ['A', 'B', 'C', 'a', 'b', 'c']
|
43 |
+
|
44 |
+
expand('ppp{,config,oe{,conf}}')
|
45 |
+
// => ['ppp', 'pppconfig', 'pppoe', 'pppoeconf']
|
46 |
+
```
|
47 |
+
|
48 |
+
## API
|
49 |
+
|
50 |
+
```js
|
51 |
+
var expand = require('brace-expansion');
|
52 |
+
```
|
53 |
+
|
54 |
+
### var expanded = expand(str)
|
55 |
+
|
56 |
+
Return an array of all possible and valid expansions of `str`. If none are
|
57 |
+
found, `[str]` is returned.
|
58 |
+
|
59 |
+
Valid expansions are:
|
60 |
+
|
61 |
+
```js
|
62 |
+
/^(.*,)+(.+)?$/
|
63 |
+
// {a,b,...}
|
64 |
+
```
|
65 |
+
|
66 |
+
A comma separated list of options, like `{a,b}` or `{a,{b,c}}` or `{,a,}`.
|
67 |
+
|
68 |
+
```js
|
69 |
+
/^-?\d+\.\.-?\d+(\.\.-?\d+)?$/
|
70 |
+
// {x..y[..incr]}
|
71 |
+
```
|
72 |
+
|
73 |
+
A numeric sequence from `x` to `y` inclusive, with optional increment.
|
74 |
+
If `x` or `y` start with a leading `0`, all the numbers will be padded
|
75 |
+
to have equal length. Negative numbers and backwards iteration work too.
|
76 |
+
|
77 |
+
```js
|
78 |
+
/^-?\d+\.\.-?\d+(\.\.-?\d+)?$/
|
79 |
+
// {x..y[..incr]}
|
80 |
+
```
|
81 |
+
|
82 |
+
An alphabetic sequence from `x` to `y` inclusive, with optional increment.
|
83 |
+
`x` and `y` must be exactly one character, and if given, `incr` must be a
|
84 |
+
number.
|
85 |
+
|
86 |
+
For compatibility reasons, the string `${` is not eligible for brace expansion.
|
87 |
+
|
88 |
+
## Installation
|
89 |
+
|
90 |
+
With [npm](https://npmjs.org) do:
|
91 |
+
|
92 |
+
```bash
|
93 |
+
npm install brace-expansion
|
94 |
+
```
|
95 |
+
|
96 |
+
## Contributors
|
97 |
+
|
98 |
+
- [Julian Gruber](https://github.com/juliangruber)
|
99 |
+
- [Isaac Z. Schlueter](https://github.com/isaacs)
|
100 |
+
|
101 |
+
## Sponsors
|
102 |
+
|
103 |
+
This module is proudly supported by my [Sponsors](https://github.com/juliangruber/sponsors)!
|
104 |
+
|
105 |
+
Do you want to support modules like this to improve their quality, stability and weigh in on new features? Then please consider donating to my [Patreon](https://www.patreon.com/juliangruber). Not sure how much of my modules you're using? Try [feross/thanks](https://github.com/feross/thanks)!
|
106 |
+
|
107 |
+
## License
|
108 |
+
|
109 |
+
(MIT)
|
110 |
+
|
111 |
+
Copyright (c) 2013 Julian Gruber <julian@juliangruber.com>
|
112 |
+
|
113 |
+
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
114 |
+
this software and associated documentation files (the "Software"), to deal in
|
115 |
+
the Software without restriction, including without limitation the rights to
|
116 |
+
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
117 |
+
of the Software, and to permit persons to whom the Software is furnished to do
|
118 |
+
so, subject to the following conditions:
|
119 |
+
|
120 |
+
The above copyright notice and this permission notice shall be included in all
|
121 |
+
copies or substantial portions of the Software.
|
122 |
+
|
123 |
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
124 |
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
125 |
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
126 |
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
127 |
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
128 |
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
129 |
+
SOFTWARE.
|
node_modules/.pnpm/brace-expansion@1.1.11/node_modules/brace-expansion/index.js
ADDED
@@ -0,0 +1,201 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
var concatMap = require('concat-map');
|
2 |
+
var balanced = require('balanced-match');
|
3 |
+
|
4 |
+
module.exports = expandTop;
|
5 |
+
|
6 |
+
var escSlash = '\0SLASH'+Math.random()+'\0';
|
7 |
+
var escOpen = '\0OPEN'+Math.random()+'\0';
|
8 |
+
var escClose = '\0CLOSE'+Math.random()+'\0';
|
9 |
+
var escComma = '\0COMMA'+Math.random()+'\0';
|
10 |
+
var escPeriod = '\0PERIOD'+Math.random()+'\0';
|
11 |
+
|
12 |
+
function numeric(str) {
|
13 |
+
return parseInt(str, 10) == str
|
14 |
+
? parseInt(str, 10)
|
15 |
+
: str.charCodeAt(0);
|
16 |
+
}
|
17 |
+
|
18 |
+
function escapeBraces(str) {
|
19 |
+
return str.split('\\\\').join(escSlash)
|
20 |
+
.split('\\{').join(escOpen)
|
21 |
+
.split('\\}').join(escClose)
|
22 |
+
.split('\\,').join(escComma)
|
23 |
+
.split('\\.').join(escPeriod);
|
24 |
+
}
|
25 |
+
|
26 |
+
function unescapeBraces(str) {
|
27 |
+
return str.split(escSlash).join('\\')
|
28 |
+
.split(escOpen).join('{')
|
29 |
+
.split(escClose).join('}')
|
30 |
+
.split(escComma).join(',')
|
31 |
+
.split(escPeriod).join('.');
|
32 |
+
}
|
33 |
+
|
34 |
+
|
35 |
+
// Basically just str.split(","), but handling cases
|
36 |
+
// where we have nested braced sections, which should be
|
37 |
+
// treated as individual members, like {a,{b,c},d}
|
38 |
+
function parseCommaParts(str) {
|
39 |
+
if (!str)
|
40 |
+
return [''];
|
41 |
+
|
42 |
+
var parts = [];
|
43 |
+
var m = balanced('{', '}', str);
|
44 |
+
|
45 |
+
if (!m)
|
46 |
+
return str.split(',');
|
47 |
+
|
48 |
+
var pre = m.pre;
|
49 |
+
var body = m.body;
|
50 |
+
var post = m.post;
|
51 |
+
var p = pre.split(',');
|
52 |
+
|
53 |
+
p[p.length-1] += '{' + body + '}';
|
54 |
+
var postParts = parseCommaParts(post);
|
55 |
+
if (post.length) {
|
56 |
+
p[p.length-1] += postParts.shift();
|
57 |
+
p.push.apply(p, postParts);
|
58 |
+
}
|
59 |
+
|
60 |
+
parts.push.apply(parts, p);
|
61 |
+
|
62 |
+
return parts;
|
63 |
+
}
|
64 |
+
|
65 |
+
function expandTop(str) {
|
66 |
+
if (!str)
|
67 |
+
return [];
|
68 |
+
|
69 |
+
// I don't know why Bash 4.3 does this, but it does.
|
70 |
+
// Anything starting with {} will have the first two bytes preserved
|
71 |
+
// but *only* at the top level, so {},a}b will not expand to anything,
|
72 |
+
// but a{},b}c will be expanded to [a}c,abc].
|
73 |
+
// One could argue that this is a bug in Bash, but since the goal of
|
74 |
+
// this module is to match Bash's rules, we escape a leading {}
|
75 |
+
if (str.substr(0, 2) === '{}') {
|
76 |
+
str = '\\{\\}' + str.substr(2);
|
77 |
+
}
|
78 |
+
|
79 |
+
return expand(escapeBraces(str), true).map(unescapeBraces);
|
80 |
+
}
|
81 |
+
|
82 |
+
function identity(e) {
|
83 |
+
return e;
|
84 |
+
}
|
85 |
+
|
86 |
+
function embrace(str) {
|
87 |
+
return '{' + str + '}';
|
88 |
+
}
|
89 |
+
function isPadded(el) {
|
90 |
+
return /^-?0\d/.test(el);
|
91 |
+
}
|
92 |
+
|
93 |
+
function lte(i, y) {
|
94 |
+
return i <= y;
|
95 |
+
}
|
96 |
+
function gte(i, y) {
|
97 |
+
return i >= y;
|
98 |
+
}
|
99 |
+
|
100 |
+
function expand(str, isTop) {
|
101 |
+
var expansions = [];
|
102 |
+
|
103 |
+
var m = balanced('{', '}', str);
|
104 |
+
if (!m || /\$$/.test(m.pre)) return [str];
|
105 |
+
|
106 |
+
var isNumericSequence = /^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(m.body);
|
107 |
+
var isAlphaSequence = /^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(m.body);
|
108 |
+
var isSequence = isNumericSequence || isAlphaSequence;
|
109 |
+
var isOptions = m.body.indexOf(',') >= 0;
|
110 |
+
if (!isSequence && !isOptions) {
|
111 |
+
// {a},b}
|
112 |
+
if (m.post.match(/,.*\}/)) {
|
113 |
+
str = m.pre + '{' + m.body + escClose + m.post;
|
114 |
+
return expand(str);
|
115 |
+
}
|
116 |
+
return [str];
|
117 |
+
}
|
118 |
+
|
119 |
+
var n;
|
120 |
+
if (isSequence) {
|
121 |
+
n = m.body.split(/\.\./);
|
122 |
+
} else {
|
123 |
+
n = parseCommaParts(m.body);
|
124 |
+
if (n.length === 1) {
|
125 |
+
// x{{a,b}}y ==> x{a}y x{b}y
|
126 |
+
n = expand(n[0], false).map(embrace);
|
127 |
+
if (n.length === 1) {
|
128 |
+
var post = m.post.length
|
129 |
+
? expand(m.post, false)
|
130 |
+
: [''];
|
131 |
+
return post.map(function(p) {
|
132 |
+
return m.pre + n[0] + p;
|
133 |
+
});
|
134 |
+
}
|
135 |
+
}
|
136 |
+
}
|
137 |
+
|
138 |
+
// at this point, n is the parts, and we know it's not a comma set
|
139 |
+
// with a single entry.
|
140 |
+
|
141 |
+
// no need to expand pre, since it is guaranteed to be free of brace-sets
|
142 |
+
var pre = m.pre;
|
143 |
+
var post = m.post.length
|
144 |
+
? expand(m.post, false)
|
145 |
+
: [''];
|
146 |
+
|
147 |
+
var N;
|
148 |
+
|
149 |
+
if (isSequence) {
|
150 |
+
var x = numeric(n[0]);
|
151 |
+
var y = numeric(n[1]);
|
152 |
+
var width = Math.max(n[0].length, n[1].length)
|
153 |
+
var incr = n.length == 3
|
154 |
+
? Math.abs(numeric(n[2]))
|
155 |
+
: 1;
|
156 |
+
var test = lte;
|
157 |
+
var reverse = y < x;
|
158 |
+
if (reverse) {
|
159 |
+
incr *= -1;
|
160 |
+
test = gte;
|
161 |
+
}
|
162 |
+
var pad = n.some(isPadded);
|
163 |
+
|
164 |
+
N = [];
|
165 |
+
|
166 |
+
for (var i = x; test(i, y); i += incr) {
|
167 |
+
var c;
|
168 |
+
if (isAlphaSequence) {
|
169 |
+
c = String.fromCharCode(i);
|
170 |
+
if (c === '\\')
|
171 |
+
c = '';
|
172 |
+
} else {
|
173 |
+
c = String(i);
|
174 |
+
if (pad) {
|
175 |
+
var need = width - c.length;
|
176 |
+
if (need > 0) {
|
177 |
+
var z = new Array(need + 1).join('0');
|
178 |
+
if (i < 0)
|
179 |
+
c = '-' + z + c.slice(1);
|
180 |
+
else
|
181 |
+
c = z + c;
|
182 |
+
}
|
183 |
+
}
|
184 |
+
}
|
185 |
+
N.push(c);
|
186 |
+
}
|
187 |
+
} else {
|
188 |
+
N = concatMap(n, function(el) { return expand(el, false) });
|
189 |
+
}
|
190 |
+
|
191 |
+
for (var j = 0; j < N.length; j++) {
|
192 |
+
for (var k = 0; k < post.length; k++) {
|
193 |
+
var expansion = pre + N[j] + post[k];
|
194 |
+
if (!isTop || isSequence || expansion)
|
195 |
+
expansions.push(expansion);
|
196 |
+
}
|
197 |
+
}
|
198 |
+
|
199 |
+
return expansions;
|
200 |
+
}
|
201 |
+
|
node_modules/.pnpm/brace-expansion@1.1.11/node_modules/brace-expansion/package.json
ADDED
@@ -0,0 +1,47 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"name": "brace-expansion",
|
3 |
+
"description": "Brace expansion as known from sh/bash",
|
4 |
+
"version": "1.1.11",
|
5 |
+
"repository": {
|
6 |
+
"type": "git",
|
7 |
+
"url": "git://github.com/juliangruber/brace-expansion.git"
|
8 |
+
},
|
9 |
+
"homepage": "https://github.com/juliangruber/brace-expansion",
|
10 |
+
"main": "index.js",
|
11 |
+
"scripts": {
|
12 |
+
"test": "tape test/*.js",
|
13 |
+
"gentest": "bash test/generate.sh",
|
14 |
+
"bench": "matcha test/perf/bench.js"
|
15 |
+
},
|
16 |
+
"dependencies": {
|
17 |
+
"balanced-match": "^1.0.0",
|
18 |
+
"concat-map": "0.0.1"
|
19 |
+
},
|
20 |
+
"devDependencies": {
|
21 |
+
"matcha": "^0.7.0",
|
22 |
+
"tape": "^4.6.0"
|
23 |
+
},
|
24 |
+
"keywords": [],
|
25 |
+
"author": {
|
26 |
+
"name": "Julian Gruber",
|
27 |
+
"email": "mail@juliangruber.com",
|
28 |
+
"url": "http://juliangruber.com"
|
29 |
+
},
|
30 |
+
"license": "MIT",
|
31 |
+
"testling": {
|
32 |
+
"files": "test/*.js",
|
33 |
+
"browsers": [
|
34 |
+
"ie/8..latest",
|
35 |
+
"firefox/20..latest",
|
36 |
+
"firefox/nightly",
|
37 |
+
"chrome/25..latest",
|
38 |
+
"chrome/canary",
|
39 |
+
"opera/12..latest",
|
40 |
+
"opera/next",
|
41 |
+
"safari/5.1..latest",
|
42 |
+
"ipad/6.0..latest",
|
43 |
+
"iphone/6.0..latest",
|
44 |
+
"android-browser/4.2..latest"
|
45 |
+
]
|
46 |
+
}
|
47 |
+
}
|
node_modules/.pnpm/brace-expansion@1.1.11/node_modules/concat-map/.travis.yml
ADDED
@@ -0,0 +1,4 @@
|
|
|
|
|
|
|
|
|
|
|
1 |
+
language: node_js
|
2 |
+
node_js:
|
3 |
+
- 0.4
|
4 |
+
- 0.6
|
node_modules/.pnpm/brace-expansion@1.1.11/node_modules/concat-map/LICENSE
ADDED
@@ -0,0 +1,18 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
This software is released under the MIT license:
|
2 |
+
|
3 |
+
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
4 |
+
this software and associated documentation files (the "Software"), to deal in
|
5 |
+
the Software without restriction, including without limitation the rights to
|
6 |
+
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
7 |
+
the Software, and to permit persons to whom the Software is furnished to do so,
|
8 |
+
subject to the following conditions:
|
9 |
+
|
10 |
+
The above copyright notice and this permission notice shall be included in all
|
11 |
+
copies or substantial portions of the Software.
|
12 |
+
|
13 |
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
14 |
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
15 |
+
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
16 |
+
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
17 |
+
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
18 |
+
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
node_modules/.pnpm/brace-expansion@1.1.11/node_modules/concat-map/README.markdown
ADDED
@@ -0,0 +1,62 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
concat-map
|
2 |
+
==========
|
3 |
+
|
4 |
+
Concatenative mapdashery.
|
5 |
+
|
6 |
+
[![browser support](http://ci.testling.com/substack/node-concat-map.png)](http://ci.testling.com/substack/node-concat-map)
|
7 |
+
|
8 |
+
[![build status](https://secure.travis-ci.org/substack/node-concat-map.png)](http://travis-ci.org/substack/node-concat-map)
|
9 |
+
|
10 |
+
example
|
11 |
+
=======
|
12 |
+
|
13 |
+
``` js
|
14 |
+
var concatMap = require('concat-map');
|
15 |
+
var xs = [ 1, 2, 3, 4, 5, 6 ];
|
16 |
+
var ys = concatMap(xs, function (x) {
|
17 |
+
return x % 2 ? [ x - 0.1, x, x + 0.1 ] : [];
|
18 |
+
});
|
19 |
+
console.dir(ys);
|
20 |
+
```
|
21 |
+
|
22 |
+
***
|
23 |
+
|
24 |
+
```
|
25 |
+
[ 0.9, 1, 1.1, 2.9, 3, 3.1, 4.9, 5, 5.1 ]
|
26 |
+
```
|
27 |
+
|
28 |
+
methods
|
29 |
+
=======
|
30 |
+
|
31 |
+
``` js
|
32 |
+
var concatMap = require('concat-map')
|
33 |
+
```
|
34 |
+
|
35 |
+
concatMap(xs, fn)
|
36 |
+
-----------------
|
37 |
+
|
38 |
+
Return an array of concatenated elements by calling `fn(x, i)` for each element
|
39 |
+
`x` and each index `i` in the array `xs`.
|
40 |
+
|
41 |
+
When `fn(x, i)` returns an array, its result will be concatenated with the
|
42 |
+
result array. If `fn(x, i)` returns anything else, that value will be pushed
|
43 |
+
onto the end of the result array.
|
44 |
+
|
45 |
+
install
|
46 |
+
=======
|
47 |
+
|
48 |
+
With [npm](http://npmjs.org) do:
|
49 |
+
|
50 |
+
```
|
51 |
+
npm install concat-map
|
52 |
+
```
|
53 |
+
|
54 |
+
license
|
55 |
+
=======
|
56 |
+
|
57 |
+
MIT
|
58 |
+
|
59 |
+
notes
|
60 |
+
=====
|
61 |
+
|
62 |
+
This module was written while sitting high above the ground in a tree.
|
node_modules/.pnpm/brace-expansion@1.1.11/node_modules/concat-map/example/map.js
ADDED
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
var concatMap = require('../');
|
2 |
+
var xs = [ 1, 2, 3, 4, 5, 6 ];
|
3 |
+
var ys = concatMap(xs, function (x) {
|
4 |
+
return x % 2 ? [ x - 0.1, x, x + 0.1 ] : [];
|
5 |
+
});
|
6 |
+
console.dir(ys);
|
node_modules/.pnpm/brace-expansion@1.1.11/node_modules/concat-map/index.js
ADDED
@@ -0,0 +1,13 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
module.exports = function (xs, fn) {
|
2 |
+
var res = [];
|
3 |
+
for (var i = 0; i < xs.length; i++) {
|
4 |
+
var x = fn(xs[i], i);
|
5 |
+
if (isArray(x)) res.push.apply(res, x);
|
6 |
+
else res.push(x);
|
7 |
+
}
|
8 |
+
return res;
|
9 |
+
};
|
10 |
+
|
11 |
+
var isArray = Array.isArray || function (xs) {
|
12 |
+
return Object.prototype.toString.call(xs) === '[object Array]';
|
13 |
+
};
|
node_modules/.pnpm/brace-expansion@1.1.11/node_modules/concat-map/package.json
ADDED
@@ -0,0 +1,43 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"name" : "concat-map",
|
3 |
+
"description" : "concatenative mapdashery",
|
4 |
+
"version" : "0.0.1",
|
5 |
+
"repository" : {
|
6 |
+
"type" : "git",
|
7 |
+
"url" : "git://github.com/substack/node-concat-map.git"
|
8 |
+
},
|
9 |
+
"main" : "index.js",
|
10 |
+
"keywords" : [
|
11 |
+
"concat",
|
12 |
+
"concatMap",
|
13 |
+
"map",
|
14 |
+
"functional",
|
15 |
+
"higher-order"
|
16 |
+
],
|
17 |
+
"directories" : {
|
18 |
+
"example" : "example",
|
19 |
+
"test" : "test"
|
20 |
+
},
|
21 |
+
"scripts" : {
|
22 |
+
"test" : "tape test/*.js"
|
23 |
+
},
|
24 |
+
"devDependencies" : {
|
25 |
+
"tape" : "~2.4.0"
|
26 |
+
},
|
27 |
+
"license" : "MIT",
|
28 |
+
"author" : {
|
29 |
+
"name" : "James Halliday",
|
30 |
+
"email" : "mail@substack.net",
|
31 |
+
"url" : "http://substack.net"
|
32 |
+
},
|
33 |
+
"testling" : {
|
34 |
+
"files" : "test/*.js",
|
35 |
+
"browsers" : {
|
36 |
+
"ie" : [ 6, 7, 8, 9 ],
|
37 |
+
"ff" : [ 3.5, 10, 15.0 ],
|
38 |
+
"chrome" : [ 10, 22 ],
|
39 |
+
"safari" : [ 5.1 ],
|
40 |
+
"opera" : [ 12 ]
|
41 |
+
}
|
42 |
+
}
|
43 |
+
}
|
node_modules/.pnpm/brace-expansion@1.1.11/node_modules/concat-map/test/map.js
ADDED
@@ -0,0 +1,39 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
var concatMap = require('../');
|
2 |
+
var test = require('tape');
|
3 |
+
|
4 |
+
test('empty or not', function (t) {
|
5 |
+
var xs = [ 1, 2, 3, 4, 5, 6 ];
|
6 |
+
var ixes = [];
|
7 |
+
var ys = concatMap(xs, function (x, ix) {
|
8 |
+
ixes.push(ix);
|
9 |
+
return x % 2 ? [ x - 0.1, x, x + 0.1 ] : [];
|
10 |
+
});
|
11 |
+
t.same(ys, [ 0.9, 1, 1.1, 2.9, 3, 3.1, 4.9, 5, 5.1 ]);
|
12 |
+
t.same(ixes, [ 0, 1, 2, 3, 4, 5 ]);
|
13 |
+
t.end();
|
14 |
+
});
|
15 |
+
|
16 |
+
test('always something', function (t) {
|
17 |
+
var xs = [ 'a', 'b', 'c', 'd' ];
|
18 |
+
var ys = concatMap(xs, function (x) {
|
19 |
+
return x === 'b' ? [ 'B', 'B', 'B' ] : [ x ];
|
20 |
+
});
|
21 |
+
t.same(ys, [ 'a', 'B', 'B', 'B', 'c', 'd' ]);
|
22 |
+
t.end();
|
23 |
+
});
|
24 |
+
|
25 |
+
test('scalars', function (t) {
|
26 |
+
var xs = [ 'a', 'b', 'c', 'd' ];
|
27 |
+
var ys = concatMap(xs, function (x) {
|
28 |
+
return x === 'b' ? [ 'B', 'B', 'B' ] : x;
|
29 |
+
});
|
30 |
+
t.same(ys, [ 'a', 'B', 'B', 'B', 'c', 'd' ]);
|
31 |
+
t.end();
|
32 |
+
});
|
33 |
+
|
34 |
+
test('undefs', function (t) {
|
35 |
+
var xs = [ 'a', 'b', 'c', 'd' ];
|
36 |
+
var ys = concatMap(xs, function () {});
|
37 |
+
t.same(ys, [ undefined, undefined, undefined, undefined ]);
|
38 |
+
t.end();
|
39 |
+
});
|
node_modules/.pnpm/call-bind@1.0.2/node_modules/call-bind/.eslintignore
ADDED
@@ -0,0 +1 @@
|
|
|
|
|
1 |
+
coverage/
|
node_modules/.pnpm/call-bind@1.0.2/node_modules/call-bind/.eslintrc
ADDED
@@ -0,0 +1,17 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"root": true,
|
3 |
+
|
4 |
+
"extends": "@ljharb",
|
5 |
+
|
6 |
+
"rules": {
|
7 |
+
"func-name-matching": 0,
|
8 |
+
"id-length": 0,
|
9 |
+
"new-cap": [2, {
|
10 |
+
"capIsNewExceptions": [
|
11 |
+
"GetIntrinsic",
|
12 |
+
],
|
13 |
+
}],
|
14 |
+
"no-magic-numbers": 0,
|
15 |
+
"operator-linebreak": [2, "before"],
|
16 |
+
},
|
17 |
+
}
|
node_modules/.pnpm/call-bind@1.0.2/node_modules/call-bind/.github/FUNDING.yml
ADDED
@@ -0,0 +1,12 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# These are supported funding model platforms
|
2 |
+
|
3 |
+
github: [ljharb]
|
4 |
+
patreon: # Replace with a single Patreon username
|
5 |
+
open_collective: # Replace with a single Open Collective username
|
6 |
+
ko_fi: # Replace with a single Ko-fi username
|
7 |
+
tidelift: npm/call-bind
|
8 |
+
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
|
9 |
+
liberapay: # Replace with a single Liberapay username
|
10 |
+
issuehunt: # Replace with a single IssueHunt username
|
11 |
+
otechie: # Replace with a single Otechie username
|
12 |
+
custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
|
node_modules/.pnpm/call-bind@1.0.2/node_modules/call-bind/.nycrc
ADDED
@@ -0,0 +1,13 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"all": true,
|
3 |
+
"check-coverage": false,
|
4 |
+
"reporter": ["text-summary", "text", "html", "json"],
|
5 |
+
"lines": 86,
|
6 |
+
"statements": 85.93,
|
7 |
+
"functions": 82.43,
|
8 |
+
"branches": 76.06,
|
9 |
+
"exclude": [
|
10 |
+
"coverage",
|
11 |
+
"test"
|
12 |
+
]
|
13 |
+
}
|
node_modules/.pnpm/call-bind@1.0.2/node_modules/call-bind/CHANGELOG.md
ADDED
@@ -0,0 +1,42 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# Changelog
|
2 |
+
|
3 |
+
All notable changes to this project will be documented in this file.
|
4 |
+
|
5 |
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
|
6 |
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
7 |
+
|
8 |
+
## [v1.0.2](https://github.com/ljharb/call-bind/compare/v1.0.1...v1.0.2) - 2021-01-11
|
9 |
+
|
10 |
+
### Commits
|
11 |
+
|
12 |
+
- [Fix] properly include the receiver in the bound length [`dbae7bc`](https://github.com/ljharb/call-bind/commit/dbae7bc676c079a0d33c0a43e9ef92cb7b01345d)
|
13 |
+
|
14 |
+
## [v1.0.1](https://github.com/ljharb/call-bind/compare/v1.0.0...v1.0.1) - 2021-01-08
|
15 |
+
|
16 |
+
### Commits
|
17 |
+
|
18 |
+
- [Tests] migrate tests to Github Actions [`b6db284`](https://github.com/ljharb/call-bind/commit/b6db284c36f8ccd195b88a6764fe84b7223a0da1)
|
19 |
+
- [meta] do not publish github action workflow files [`ec7fe46`](https://github.com/ljharb/call-bind/commit/ec7fe46e60cfa4764ee943d2755f5e5a366e578e)
|
20 |
+
- [Fix] preserve original function’s length when possible [`adbceaa`](https://github.com/ljharb/call-bind/commit/adbceaa3cac4b41ea78bb19d7ccdbaaf7e0bdadb)
|
21 |
+
- [Tests] gather coverage data on every job [`d69e23c`](https://github.com/ljharb/call-bind/commit/d69e23cc65f101ba1d4c19bb07fa8eb0ec624be8)
|
22 |
+
- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `tape` [`2fd3586`](https://github.com/ljharb/call-bind/commit/2fd3586c5d47b335364c14293114c6b625ae1f71)
|
23 |
+
- [Deps] update `get-intrinsic` [`f23e931`](https://github.com/ljharb/call-bind/commit/f23e9318cc271c2add8bb38cfded85ee7baf8eee)
|
24 |
+
- [Deps] update `get-intrinsic` [`72d9f44`](https://github.com/ljharb/call-bind/commit/72d9f44e184465ba8dd3fb48260bbcff234985f2)
|
25 |
+
- [meta] fix FUNDING.yml [`e723573`](https://github.com/ljharb/call-bind/commit/e723573438c5a68dcec31fb5d96ea6b7e4a93be8)
|
26 |
+
- [eslint] ignore coverage output [`15e76d2`](https://github.com/ljharb/call-bind/commit/15e76d28a5f43e504696401e5b31ebb78ee1b532)
|
27 |
+
- [meta] add Automatic Rebase and Require Allow Edits workflows [`8fa4dab`](https://github.com/ljharb/call-bind/commit/8fa4dabb23ba3dd7bb92c9571c1241c08b56e4b6)
|
28 |
+
|
29 |
+
## v1.0.0 - 2020-10-30
|
30 |
+
|
31 |
+
### Commits
|
32 |
+
|
33 |
+
- Initial commit [`306cf98`](https://github.com/ljharb/call-bind/commit/306cf98c7ec9e7ef66b653ec152277ac1381eb50)
|
34 |
+
- Tests [`e10d0bb`](https://github.com/ljharb/call-bind/commit/e10d0bbdadc7a10ecedc9a1c035112d3e368b8df)
|
35 |
+
- Implementation [`43852ed`](https://github.com/ljharb/call-bind/commit/43852eda0f187327b7fad2423ca972149a52bd65)
|
36 |
+
- npm init [`408f860`](https://github.com/ljharb/call-bind/commit/408f860b773a2f610805fd3613d0d71bac1b6249)
|
37 |
+
- [meta] add Automatic Rebase and Require Allow Edits workflows [`fb349b2`](https://github.com/ljharb/call-bind/commit/fb349b2e48defbec8b5ec8a8395cc8f69f220b13)
|
38 |
+
- [meta] add `auto-changelog` [`c4001fc`](https://github.com/ljharb/call-bind/commit/c4001fc43031799ef908211c98d3b0fb2b60fde4)
|
39 |
+
- [meta] add "funding"; create `FUNDING.yml` [`d4d6d29`](https://github.com/ljharb/call-bind/commit/d4d6d2974a14bc2e98830468eda7fe6d6a776717)
|
40 |
+
- [Tests] add `npm run lint` [`dedfb98`](https://github.com/ljharb/call-bind/commit/dedfb98bd0ecefb08ddb9a94061bd10cde4332af)
|
41 |
+
- Only apps should have lockfiles [`54ac776`](https://github.com/ljharb/call-bind/commit/54ac77653db45a7361dc153d2f478e743f110650)
|
42 |
+
- [meta] add `safe-publish-latest` [`9ea8e43`](https://github.com/ljharb/call-bind/commit/9ea8e435b950ce9b705559cd651039f9bf40140f)
|
node_modules/.pnpm/call-bind@1.0.2/node_modules/call-bind/LICENSE
ADDED
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
MIT License
|
2 |
+
|
3 |
+
Copyright (c) 2020 Jordan Harband
|
4 |
+
|
5 |
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6 |
+
of this software and associated documentation files (the "Software"), to deal
|
7 |
+
in the Software without restriction, including without limitation the rights
|
8 |
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9 |
+
copies of the Software, and to permit persons to whom the Software is
|
10 |
+
furnished to do so, subject to the following conditions:
|
11 |
+
|
12 |
+
The above copyright notice and this permission notice shall be included in all
|
13 |
+
copies or substantial portions of the Software.
|
14 |
+
|
15 |
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16 |
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17 |
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18 |
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19 |
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20 |
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
21 |
+
SOFTWARE.
|
node_modules/.pnpm/call-bind@1.0.2/node_modules/call-bind/README.md
ADDED
@@ -0,0 +1,2 @@
|
|
|
|
|
|
|
1 |
+
# call-bind
|
2 |
+
Robustly `.call.bind()` a function.
|
node_modules/.pnpm/call-bind@1.0.2/node_modules/call-bind/callBound.js
ADDED
@@ -0,0 +1,15 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
'use strict';
|
2 |
+
|
3 |
+
var GetIntrinsic = require('get-intrinsic');
|
4 |
+
|
5 |
+
var callBind = require('./');
|
6 |
+
|
7 |
+
var $indexOf = callBind(GetIntrinsic('String.prototype.indexOf'));
|
8 |
+
|
9 |
+
module.exports = function callBoundIntrinsic(name, allowMissing) {
|
10 |
+
var intrinsic = GetIntrinsic(name, !!allowMissing);
|
11 |
+
if (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) {
|
12 |
+
return callBind(intrinsic);
|
13 |
+
}
|
14 |
+
return intrinsic;
|
15 |
+
};
|
node_modules/.pnpm/call-bind@1.0.2/node_modules/call-bind/index.js
ADDED
@@ -0,0 +1,47 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
'use strict';
|
2 |
+
|
3 |
+
var bind = require('function-bind');
|
4 |
+
var GetIntrinsic = require('get-intrinsic');
|
5 |
+
|
6 |
+
var $apply = GetIntrinsic('%Function.prototype.apply%');
|
7 |
+
var $call = GetIntrinsic('%Function.prototype.call%');
|
8 |
+
var $reflectApply = GetIntrinsic('%Reflect.apply%', true) || bind.call($call, $apply);
|
9 |
+
|
10 |
+
var $gOPD = GetIntrinsic('%Object.getOwnPropertyDescriptor%', true);
|
11 |
+
var $defineProperty = GetIntrinsic('%Object.defineProperty%', true);
|
12 |
+
var $max = GetIntrinsic('%Math.max%');
|
13 |
+
|
14 |
+
if ($defineProperty) {
|
15 |
+
try {
|
16 |
+
$defineProperty({}, 'a', { value: 1 });
|
17 |
+
} catch (e) {
|
18 |
+
// IE 8 has a broken defineProperty
|
19 |
+
$defineProperty = null;
|
20 |
+
}
|
21 |
+
}
|
22 |
+
|
23 |
+
module.exports = function callBind(originalFunction) {
|
24 |
+
var func = $reflectApply(bind, $call, arguments);
|
25 |
+
if ($gOPD && $defineProperty) {
|
26 |
+
var desc = $gOPD(func, 'length');
|
27 |
+
if (desc.configurable) {
|
28 |
+
// original length, plus the receiver, minus any additional arguments (after the receiver)
|
29 |
+
$defineProperty(
|
30 |
+
func,
|
31 |
+
'length',
|
32 |
+
{ value: 1 + $max(0, originalFunction.length - (arguments.length - 1)) }
|
33 |
+
);
|
34 |
+
}
|
35 |
+
}
|
36 |
+
return func;
|
37 |
+
};
|
38 |
+
|
39 |
+
var applyBind = function applyBind() {
|
40 |
+
return $reflectApply(bind, $apply, arguments);
|
41 |
+
};
|
42 |
+
|
43 |
+
if ($defineProperty) {
|
44 |
+
$defineProperty(module.exports, 'apply', { value: applyBind });
|
45 |
+
} else {
|
46 |
+
module.exports.apply = applyBind;
|
47 |
+
}
|
node_modules/.pnpm/call-bind@1.0.2/node_modules/call-bind/package.json
ADDED
@@ -0,0 +1,80 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"name": "call-bind",
|
3 |
+
"version": "1.0.2",
|
4 |
+
"description": "Robustly `.call.bind()` a function",
|
5 |
+
"main": "index.js",
|
6 |
+
"exports": {
|
7 |
+
".": [
|
8 |
+
{
|
9 |
+
"default": "./index.js"
|
10 |
+
},
|
11 |
+
"./index.js"
|
12 |
+
],
|
13 |
+
"./callBound": [
|
14 |
+
{
|
15 |
+
"default": "./callBound.js"
|
16 |
+
},
|
17 |
+
"./callBound.js"
|
18 |
+
],
|
19 |
+
"./package.json": "./package.json"
|
20 |
+
},
|
21 |
+
"scripts": {
|
22 |
+
"prepublish": "safe-publish-latest",
|
23 |
+
"lint": "eslint --ext=.js,.mjs .",
|
24 |
+
"pretest": "npm run lint",
|
25 |
+
"tests-only": "nyc tape 'test/*'",
|
26 |
+
"test": "npm run tests-only",
|
27 |
+
"posttest": "aud --production",
|
28 |
+
"version": "auto-changelog && git add CHANGELOG.md",
|
29 |
+
"postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\""
|
30 |
+
},
|
31 |
+
"repository": {
|
32 |
+
"type": "git",
|
33 |
+
"url": "git+https://github.com/ljharb/call-bind.git"
|
34 |
+
},
|
35 |
+
"keywords": [
|
36 |
+
"javascript",
|
37 |
+
"ecmascript",
|
38 |
+
"es",
|
39 |
+
"js",
|
40 |
+
"callbind",
|
41 |
+
"callbound",
|
42 |
+
"call",
|
43 |
+
"bind",
|
44 |
+
"bound",
|
45 |
+
"call-bind",
|
46 |
+
"call-bound",
|
47 |
+
"function",
|
48 |
+
"es-abstract"
|
49 |
+
],
|
50 |
+
"author": "Jordan Harband <ljharb@gmail.com>",
|
51 |
+
"funding": {
|
52 |
+
"url": "https://github.com/sponsors/ljharb"
|
53 |
+
},
|
54 |
+
"license": "MIT",
|
55 |
+
"bugs": {
|
56 |
+
"url": "https://github.com/ljharb/call-bind/issues"
|
57 |
+
},
|
58 |
+
"homepage": "https://github.com/ljharb/call-bind#readme",
|
59 |
+
"devDependencies": {
|
60 |
+
"@ljharb/eslint-config": "^17.3.0",
|
61 |
+
"aud": "^1.1.3",
|
62 |
+
"auto-changelog": "^2.2.1",
|
63 |
+
"eslint": "^7.17.0",
|
64 |
+
"nyc": "^10.3.2",
|
65 |
+
"safe-publish-latest": "^1.1.4",
|
66 |
+
"tape": "^5.1.1"
|
67 |
+
},
|
68 |
+
"dependencies": {
|
69 |
+
"function-bind": "^1.1.1",
|
70 |
+
"get-intrinsic": "^1.0.2"
|
71 |
+
},
|
72 |
+
"auto-changelog": {
|
73 |
+
"output": "CHANGELOG.md",
|
74 |
+
"template": "keepachangelog",
|
75 |
+
"unreleased": false,
|
76 |
+
"commitLimit": false,
|
77 |
+
"backfillLimit": false,
|
78 |
+
"hideCredit": true
|
79 |
+
}
|
80 |
+
}
|
node_modules/.pnpm/call-bind@1.0.2/node_modules/call-bind/test/callBound.js
ADDED
@@ -0,0 +1,55 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
'use strict';
|
2 |
+
|
3 |
+
var test = require('tape');
|
4 |
+
|
5 |
+
var callBound = require('../callBound');
|
6 |
+
|
7 |
+
test('callBound', function (t) {
|
8 |
+
// static primitive
|
9 |
+
t.equal(callBound('Array.length'), Array.length, 'Array.length yields itself');
|
10 |
+
t.equal(callBound('%Array.length%'), Array.length, '%Array.length% yields itself');
|
11 |
+
|
12 |
+
// static non-function object
|
13 |
+
t.equal(callBound('Array.prototype'), Array.prototype, 'Array.prototype yields itself');
|
14 |
+
t.equal(callBound('%Array.prototype%'), Array.prototype, '%Array.prototype% yields itself');
|
15 |
+
t.equal(callBound('Array.constructor'), Array.constructor, 'Array.constructor yields itself');
|
16 |
+
t.equal(callBound('%Array.constructor%'), Array.constructor, '%Array.constructor% yields itself');
|
17 |
+
|
18 |
+
// static function
|
19 |
+
t.equal(callBound('Date.parse'), Date.parse, 'Date.parse yields itself');
|
20 |
+
t.equal(callBound('%Date.parse%'), Date.parse, '%Date.parse% yields itself');
|
21 |
+
|
22 |
+
// prototype primitive
|
23 |
+
t.equal(callBound('Error.prototype.message'), Error.prototype.message, 'Error.prototype.message yields itself');
|
24 |
+
t.equal(callBound('%Error.prototype.message%'), Error.prototype.message, '%Error.prototype.message% yields itself');
|
25 |
+
|
26 |
+
// prototype function
|
27 |
+
t.notEqual(callBound('Object.prototype.toString'), Object.prototype.toString, 'Object.prototype.toString does not yield itself');
|
28 |
+
t.notEqual(callBound('%Object.prototype.toString%'), Object.prototype.toString, '%Object.prototype.toString% does not yield itself');
|
29 |
+
t.equal(callBound('Object.prototype.toString')(true), Object.prototype.toString.call(true), 'call-bound Object.prototype.toString calls into the original');
|
30 |
+
t.equal(callBound('%Object.prototype.toString%')(true), Object.prototype.toString.call(true), 'call-bound %Object.prototype.toString% calls into the original');
|
31 |
+
|
32 |
+
t['throws'](
|
33 |
+
function () { callBound('does not exist'); },
|
34 |
+
SyntaxError,
|
35 |
+
'nonexistent intrinsic throws'
|
36 |
+
);
|
37 |
+
t['throws'](
|
38 |
+
function () { callBound('does not exist', true); },
|
39 |
+
SyntaxError,
|
40 |
+
'allowMissing arg still throws for unknown intrinsic'
|
41 |
+
);
|
42 |
+
|
43 |
+
/* globals WeakRef: false */
|
44 |
+
t.test('real but absent intrinsic', { skip: typeof WeakRef !== 'undefined' }, function (st) {
|
45 |
+
st['throws'](
|
46 |
+
function () { callBound('WeakRef'); },
|
47 |
+
TypeError,
|
48 |
+
'real but absent intrinsic throws'
|
49 |
+
);
|
50 |
+
st.equal(callBound('WeakRef', true), undefined, 'allowMissing arg avoids exception');
|
51 |
+
st.end();
|
52 |
+
});
|
53 |
+
|
54 |
+
t.end();
|
55 |
+
});
|
node_modules/.pnpm/call-bind@1.0.2/node_modules/call-bind/test/index.js
ADDED
@@ -0,0 +1,66 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
'use strict';
|
2 |
+
|
3 |
+
var callBind = require('../');
|
4 |
+
var bind = require('function-bind');
|
5 |
+
|
6 |
+
var test = require('tape');
|
7 |
+
|
8 |
+
/*
|
9 |
+
* older engines have length nonconfigurable
|
10 |
+
* in io.js v3, it is configurable except on bound functions, hence the .bind()
|
11 |
+
*/
|
12 |
+
var functionsHaveConfigurableLengths = !!(
|
13 |
+
Object.getOwnPropertyDescriptor
|
14 |
+
&& Object.getOwnPropertyDescriptor(bind.call(function () {}), 'length').configurable
|
15 |
+
);
|
16 |
+
|
17 |
+
test('callBind', function (t) {
|
18 |
+
var sentinel = { sentinel: true };
|
19 |
+
var func = function (a, b) {
|
20 |
+
// eslint-disable-next-line no-invalid-this
|
21 |
+
return [this, a, b];
|
22 |
+
};
|
23 |
+
t.equal(func.length, 2, 'original function length is 2');
|
24 |
+
t.deepEqual(func(), [undefined, undefined, undefined], 'unbound func with too few args');
|
25 |
+
t.deepEqual(func(1, 2), [undefined, 1, 2], 'unbound func with right args');
|
26 |
+
t.deepEqual(func(1, 2, 3), [undefined, 1, 2], 'unbound func with too many args');
|
27 |
+
|
28 |
+
var bound = callBind(func);
|
29 |
+
t.equal(bound.length, func.length + 1, 'function length is preserved', { skip: !functionsHaveConfigurableLengths });
|
30 |
+
t.deepEqual(bound(), [undefined, undefined, undefined], 'bound func with too few args');
|
31 |
+
t.deepEqual(bound(1, 2), [1, 2, undefined], 'bound func with right args');
|
32 |
+
t.deepEqual(bound(1, 2, 3), [1, 2, 3], 'bound func with too many args');
|
33 |
+
|
34 |
+
var boundR = callBind(func, sentinel);
|
35 |
+
t.equal(boundR.length, func.length, 'function length is preserved', { skip: !functionsHaveConfigurableLengths });
|
36 |
+
t.deepEqual(boundR(), [sentinel, undefined, undefined], 'bound func with receiver, with too few args');
|
37 |
+
t.deepEqual(boundR(1, 2), [sentinel, 1, 2], 'bound func with receiver, with right args');
|
38 |
+
t.deepEqual(boundR(1, 2, 3), [sentinel, 1, 2], 'bound func with receiver, with too many args');
|
39 |
+
|
40 |
+
var boundArg = callBind(func, sentinel, 1);
|
41 |
+
t.equal(boundArg.length, func.length - 1, 'function length is preserved', { skip: !functionsHaveConfigurableLengths });
|
42 |
+
t.deepEqual(boundArg(), [sentinel, 1, undefined], 'bound func with receiver and arg, with too few args');
|
43 |
+
t.deepEqual(boundArg(2), [sentinel, 1, 2], 'bound func with receiver and arg, with right arg');
|
44 |
+
t.deepEqual(boundArg(2, 3), [sentinel, 1, 2], 'bound func with receiver and arg, with too many args');
|
45 |
+
|
46 |
+
t.test('callBind.apply', function (st) {
|
47 |
+
var aBound = callBind.apply(func);
|
48 |
+
st.deepEqual(aBound(sentinel), [sentinel, undefined, undefined], 'apply-bound func with no args');
|
49 |
+
st.deepEqual(aBound(sentinel, [1], 4), [sentinel, 1, undefined], 'apply-bound func with too few args');
|
50 |
+
st.deepEqual(aBound(sentinel, [1, 2], 4), [sentinel, 1, 2], 'apply-bound func with right args');
|
51 |
+
|
52 |
+
var aBoundArg = callBind.apply(func);
|
53 |
+
st.deepEqual(aBoundArg(sentinel, [1, 2, 3], 4), [sentinel, 1, 2], 'apply-bound func with too many args');
|
54 |
+
st.deepEqual(aBoundArg(sentinel, [1, 2], 4), [sentinel, 1, 2], 'apply-bound func with right args');
|
55 |
+
st.deepEqual(aBoundArg(sentinel, [1], 4), [sentinel, 1, undefined], 'apply-bound func with too few args');
|
56 |
+
|
57 |
+
var aBoundR = callBind.apply(func, sentinel);
|
58 |
+
st.deepEqual(aBoundR([1, 2, 3], 4), [sentinel, 1, 2], 'apply-bound func with receiver and too many args');
|
59 |
+
st.deepEqual(aBoundR([1, 2], 4), [sentinel, 1, 2], 'apply-bound func with receiver and right args');
|
60 |
+
st.deepEqual(aBoundR([1], 4), [sentinel, 1, undefined], 'apply-bound func with receiver and too few args');
|
61 |
+
|
62 |
+
st.end();
|
63 |
+
});
|
64 |
+
|
65 |
+
t.end();
|
66 |
+
});
|
node_modules/.pnpm/call-bind@1.0.2/node_modules/function-bind/.editorconfig
ADDED
@@ -0,0 +1,20 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
root = true
|
2 |
+
|
3 |
+
[*]
|
4 |
+
indent_style = tab
|
5 |
+
indent_size = 4
|
6 |
+
end_of_line = lf
|
7 |
+
charset = utf-8
|
8 |
+
trim_trailing_whitespace = true
|
9 |
+
insert_final_newline = true
|
10 |
+
max_line_length = 120
|
11 |
+
|
12 |
+
[CHANGELOG.md]
|
13 |
+
indent_style = space
|
14 |
+
indent_size = 2
|
15 |
+
|
16 |
+
[*.json]
|
17 |
+
max_line_length = off
|
18 |
+
|
19 |
+
[Makefile]
|
20 |
+
max_line_length = off
|
node_modules/.pnpm/call-bind@1.0.2/node_modules/function-bind/.eslintrc
ADDED
@@ -0,0 +1,15 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"root": true,
|
3 |
+
|
4 |
+
"extends": "@ljharb",
|
5 |
+
|
6 |
+
"rules": {
|
7 |
+
"func-name-matching": 0,
|
8 |
+
"indent": [2, 4],
|
9 |
+
"max-nested-callbacks": [2, 3],
|
10 |
+
"max-params": [2, 3],
|
11 |
+
"max-statements": [2, 20],
|
12 |
+
"no-new-func": [1],
|
13 |
+
"strict": [0]
|
14 |
+
}
|
15 |
+
}
|
node_modules/.pnpm/call-bind@1.0.2/node_modules/function-bind/.jscs.json
ADDED
@@ -0,0 +1,176 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"es3": true,
|
3 |
+
|
4 |
+
"additionalRules": [],
|
5 |
+
|
6 |
+
"requireSemicolons": true,
|
7 |
+
|
8 |
+
"disallowMultipleSpaces": true,
|
9 |
+
|
10 |
+
"disallowIdentifierNames": [],
|
11 |
+
|
12 |
+
"requireCurlyBraces": {
|
13 |
+
"allExcept": [],
|
14 |
+
"keywords": ["if", "else", "for", "while", "do", "try", "catch"]
|
15 |
+
},
|
16 |
+
|
17 |
+
"requireSpaceAfterKeywords": ["if", "else", "for", "while", "do", "switch", "return", "try", "catch", "function"],
|
18 |
+
|
19 |
+
"disallowSpaceAfterKeywords": [],
|
20 |
+
|
21 |
+
"disallowSpaceBeforeComma": true,
|
22 |
+
"disallowSpaceAfterComma": false,
|
23 |
+
"disallowSpaceBeforeSemicolon": true,
|
24 |
+
|
25 |
+
"disallowNodeTypes": [
|
26 |
+
"DebuggerStatement",
|
27 |
+
"ForInStatement",
|
28 |
+
"LabeledStatement",
|
29 |
+
"SwitchCase",
|
30 |
+
"SwitchStatement",
|
31 |
+
"WithStatement"
|
32 |
+
],
|
33 |
+
|
34 |
+
"requireObjectKeysOnNewLine": { "allExcept": ["sameLine"] },
|
35 |
+
|
36 |
+
"requireSpacesInAnonymousFunctionExpression": { "beforeOpeningRoundBrace": true, "beforeOpeningCurlyBrace": true },
|
37 |
+
"requireSpacesInNamedFunctionExpression": { "beforeOpeningCurlyBrace": true },
|
38 |
+
"disallowSpacesInNamedFunctionExpression": { "beforeOpeningRoundBrace": true },
|
39 |
+
"requireSpacesInFunctionDeclaration": { "beforeOpeningCurlyBrace": true },
|
40 |
+
"disallowSpacesInFunctionDeclaration": { "beforeOpeningRoundBrace": true },
|
41 |
+
|
42 |
+
"requireSpaceBetweenArguments": true,
|
43 |
+
|
44 |
+
"disallowSpacesInsideParentheses": true,
|
45 |
+
|
46 |
+
"disallowSpacesInsideArrayBrackets": true,
|
47 |
+
|
48 |
+
"disallowQuotedKeysInObjects": { "allExcept": ["reserved"] },
|
49 |
+
|
50 |
+
"disallowSpaceAfterObjectKeys": true,
|
51 |
+
|
52 |
+
"requireCommaBeforeLineBreak": true,
|
53 |
+
|
54 |
+
"disallowSpaceAfterPrefixUnaryOperators": ["++", "--", "+", "-", "~", "!"],
|
55 |
+
"requireSpaceAfterPrefixUnaryOperators": [],
|
56 |
+
|
57 |
+
"disallowSpaceBeforePostfixUnaryOperators": ["++", "--"],
|
58 |
+
"requireSpaceBeforePostfixUnaryOperators": [],
|
59 |
+
|
60 |
+
"disallowSpaceBeforeBinaryOperators": [],
|
61 |
+
"requireSpaceBeforeBinaryOperators": ["+", "-", "/", "*", "=", "==", "===", "!=", "!=="],
|
62 |
+
|
63 |
+
"requireSpaceAfterBinaryOperators": ["+", "-", "/", "*", "=", "==", "===", "!=", "!=="],
|
64 |
+
"disallowSpaceAfterBinaryOperators": [],
|
65 |
+
|
66 |
+
"disallowImplicitTypeConversion": ["binary", "string"],
|
67 |
+
|
68 |
+
"disallowKeywords": ["with", "eval"],
|
69 |
+
|
70 |
+
"requireKeywordsOnNewLine": [],
|
71 |
+
"disallowKeywordsOnNewLine": ["else"],
|
72 |
+
|
73 |
+
"requireLineFeedAtFileEnd": true,
|
74 |
+
|
75 |
+
"disallowTrailingWhitespace": true,
|
76 |
+
|
77 |
+
"disallowTrailingComma": true,
|
78 |
+
|
79 |
+
"excludeFiles": ["node_modules/**", "vendor/**"],
|
80 |
+
|
81 |
+
"disallowMultipleLineStrings": true,
|
82 |
+
|
83 |
+
"requireDotNotation": { "allExcept": ["keywords"] },
|
84 |
+
|
85 |
+
"requireParenthesesAroundIIFE": true,
|
86 |
+
|
87 |
+
"validateLineBreaks": "LF",
|
88 |
+
|
89 |
+
"validateQuoteMarks": {
|
90 |
+
"escape": true,
|
91 |
+
"mark": "'"
|
92 |
+
},
|
93 |
+
|
94 |
+
"disallowOperatorBeforeLineBreak": [],
|
95 |
+
|
96 |
+
"requireSpaceBeforeKeywords": [
|
97 |
+
"do",
|
98 |
+
"for",
|
99 |
+
"if",
|
100 |
+
"else",
|
101 |
+
"switch",
|
102 |
+
"case",
|
103 |
+
"try",
|
104 |
+
"catch",
|
105 |
+
"finally",
|
106 |
+
"while",
|
107 |
+
"with",
|
108 |
+
"return"
|
109 |
+
],
|
110 |
+
|
111 |
+
"validateAlignedFunctionParameters": {
|
112 |
+
"lineBreakAfterOpeningBraces": true,
|
113 |
+
"lineBreakBeforeClosingBraces": true
|
114 |
+
},
|
115 |
+
|
116 |
+
"requirePaddingNewLinesBeforeExport": true,
|
117 |
+
|
118 |
+
"validateNewlineAfterArrayElements": {
|
119 |
+
"maximum": 8
|
120 |
+
},
|
121 |
+
|
122 |
+
"requirePaddingNewLinesAfterUseStrict": true,
|
123 |
+
|
124 |
+
"disallowArrowFunctions": true,
|
125 |
+
|
126 |
+
"disallowMultiLineTernary": true,
|
127 |
+
|
128 |
+
"validateOrderInObjectKeys": "asc-insensitive",
|
129 |
+
|
130 |
+
"disallowIdenticalDestructuringNames": true,
|
131 |
+
|
132 |
+
"disallowNestedTernaries": { "maxLevel": 1 },
|
133 |
+
|
134 |
+
"requireSpaceAfterComma": { "allExcept": ["trailing"] },
|
135 |
+
"requireAlignedMultilineParams": false,
|
136 |
+
|
137 |
+
"requireSpacesInGenerator": {
|
138 |
+
"afterStar": true
|
139 |
+
},
|
140 |
+
|
141 |
+
"disallowSpacesInGenerator": {
|
142 |
+
"beforeStar": true
|
143 |
+
},
|
144 |
+
|
145 |
+
"disallowVar": false,
|
146 |
+
|
147 |
+
"requireArrayDestructuring": false,
|
148 |
+
|
149 |
+
"requireEnhancedObjectLiterals": false,
|
150 |
+
|
151 |
+
"requireObjectDestructuring": false,
|
152 |
+
|
153 |
+
"requireEarlyReturn": false,
|
154 |
+
|
155 |
+
"requireCapitalizedConstructorsNew": {
|
156 |
+
"allExcept": ["Function", "String", "Object", "Symbol", "Number", "Date", "RegExp", "Error", "Boolean", "Array"]
|
157 |
+
},
|
158 |
+
|
159 |
+
"requireImportAlphabetized": false,
|
160 |
+
|
161 |
+
"requireSpaceBeforeObjectValues": true,
|
162 |
+
"requireSpaceBeforeDestructuredValues": true,
|
163 |
+
|
164 |
+
"disallowSpacesInsideTemplateStringPlaceholders": true,
|
165 |
+
|
166 |
+
"disallowArrayDestructuringReturn": false,
|
167 |
+
|
168 |
+
"requireNewlineBeforeSingleStatementsInIf": false,
|
169 |
+
|
170 |
+
"disallowUnusedVariables": true,
|
171 |
+
|
172 |
+
"requireSpacesInsideImportedObjectBraces": true,
|
173 |
+
|
174 |
+
"requireUseStrict": true
|
175 |
+
}
|
176 |
+
|
node_modules/.pnpm/call-bind@1.0.2/node_modules/function-bind/.npmignore
ADDED
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# gitignore
|
2 |
+
.DS_Store
|
3 |
+
.monitor
|
4 |
+
.*.swp
|
5 |
+
.nodemonignore
|
6 |
+
releases
|
7 |
+
*.log
|
8 |
+
*.err
|
9 |
+
fleet.json
|
10 |
+
public/browserify
|
11 |
+
bin/*.json
|
12 |
+
.bin
|
13 |
+
build
|
14 |
+
compile
|
15 |
+
.lock-wscript
|
16 |
+
coverage
|
17 |
+
node_modules
|
18 |
+
|
19 |
+
# Only apps should have lockfiles
|
20 |
+
npm-shrinkwrap.json
|
21 |
+
package-lock.json
|
22 |
+
yarn.lock
|