poe-code 12.0.11 → 13.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +6 -3
- package/dist/index.js.map +2 -2
- package/dist/metafile.json +1 -1
- package/node_modules/esprima/LICENSE.BSD +21 -0
- package/node_modules/esprima/README.md +46 -0
- package/node_modules/esprima/bin/esparse.js +139 -0
- package/node_modules/esprima/bin/esvalidate.js +236 -0
- package/node_modules/esprima/dist/esprima.js +6709 -0
- package/node_modules/esprima/package.json +112 -0
- package/node_modules/extend-shallow/LICENSE +21 -0
- package/node_modules/extend-shallow/README.md +61 -0
- package/node_modules/extend-shallow/index.js +33 -0
- package/node_modules/extend-shallow/package.json +56 -0
- package/node_modules/gray-matter/LICENSE +21 -0
- package/node_modules/gray-matter/README.md +565 -0
- package/node_modules/gray-matter/gray-matter.d.ts +114 -0
- package/node_modules/gray-matter/index.js +228 -0
- package/node_modules/gray-matter/lib/defaults.js +18 -0
- package/node_modules/gray-matter/lib/engine.js +30 -0
- package/node_modules/gray-matter/lib/engines.js +54 -0
- package/node_modules/gray-matter/lib/excerpt.js +32 -0
- package/node_modules/gray-matter/lib/parse.js +13 -0
- package/node_modules/gray-matter/lib/stringify.js +56 -0
- package/node_modules/gray-matter/lib/to-file.js +43 -0
- package/node_modules/gray-matter/lib/utils.js +66 -0
- package/node_modules/gray-matter/node_modules/argparse/LICENSE +21 -0
- package/node_modules/gray-matter/node_modules/argparse/README.md +257 -0
- package/node_modules/gray-matter/node_modules/argparse/index.js +3 -0
- package/node_modules/gray-matter/node_modules/argparse/lib/action/append/constant.js +47 -0
- package/node_modules/gray-matter/node_modules/argparse/lib/action/append.js +53 -0
- package/node_modules/gray-matter/node_modules/argparse/lib/action/count.js +40 -0
- package/node_modules/gray-matter/node_modules/argparse/lib/action/help.js +47 -0
- package/node_modules/gray-matter/node_modules/argparse/lib/action/store/constant.js +43 -0
- package/node_modules/gray-matter/node_modules/argparse/lib/action/store/false.js +27 -0
- package/node_modules/gray-matter/node_modules/argparse/lib/action/store/true.js +26 -0
- package/node_modules/gray-matter/node_modules/argparse/lib/action/store.js +50 -0
- package/node_modules/gray-matter/node_modules/argparse/lib/action/subparsers.js +149 -0
- package/node_modules/gray-matter/node_modules/argparse/lib/action/version.js +47 -0
- package/node_modules/gray-matter/node_modules/argparse/lib/action.js +146 -0
- package/node_modules/gray-matter/node_modules/argparse/lib/action_container.js +482 -0
- package/node_modules/gray-matter/node_modules/argparse/lib/argparse.js +14 -0
- package/node_modules/gray-matter/node_modules/argparse/lib/argument/error.js +50 -0
- package/node_modules/gray-matter/node_modules/argparse/lib/argument/exclusive.js +54 -0
- package/node_modules/gray-matter/node_modules/argparse/lib/argument/group.js +75 -0
- package/node_modules/gray-matter/node_modules/argparse/lib/argument_parser.js +1161 -0
- package/node_modules/gray-matter/node_modules/argparse/lib/const.js +21 -0
- package/node_modules/gray-matter/node_modules/argparse/lib/help/added_formatters.js +87 -0
- package/node_modules/gray-matter/node_modules/argparse/lib/help/formatter.js +795 -0
- package/node_modules/gray-matter/node_modules/argparse/lib/namespace.js +76 -0
- package/node_modules/gray-matter/node_modules/argparse/lib/utils.js +57 -0
- package/node_modules/gray-matter/node_modules/argparse/package.json +34 -0
- package/node_modules/gray-matter/node_modules/js-yaml/LICENSE +21 -0
- package/node_modules/gray-matter/node_modules/js-yaml/README.md +302 -0
- package/node_modules/gray-matter/node_modules/js-yaml/bin/js-yaml.js +132 -0
- package/node_modules/gray-matter/node_modules/js-yaml/dist/js-yaml.js +4011 -0
- package/node_modules/gray-matter/node_modules/js-yaml/dist/js-yaml.min.js +1 -0
- package/node_modules/gray-matter/node_modules/js-yaml/index.js +7 -0
- package/node_modules/gray-matter/node_modules/js-yaml/lib/js-yaml/common.js +59 -0
- package/node_modules/gray-matter/node_modules/js-yaml/lib/js-yaml/dumper.js +850 -0
- package/node_modules/gray-matter/node_modules/js-yaml/lib/js-yaml/exception.js +43 -0
- package/node_modules/gray-matter/node_modules/js-yaml/lib/js-yaml/loader.js +1666 -0
- package/node_modules/gray-matter/node_modules/js-yaml/lib/js-yaml/mark.js +76 -0
- package/node_modules/gray-matter/node_modules/js-yaml/lib/js-yaml/schema/core.js +18 -0
- package/node_modules/gray-matter/node_modules/js-yaml/lib/js-yaml/schema/default_full.js +25 -0
- package/node_modules/gray-matter/node_modules/js-yaml/lib/js-yaml/schema/default_safe.js +28 -0
- package/node_modules/gray-matter/node_modules/js-yaml/lib/js-yaml/schema/failsafe.js +17 -0
- package/node_modules/gray-matter/node_modules/js-yaml/lib/js-yaml/schema/json.js +25 -0
- package/node_modules/gray-matter/node_modules/js-yaml/lib/js-yaml/schema.js +108 -0
- package/node_modules/gray-matter/node_modules/js-yaml/lib/js-yaml/type/binary.js +138 -0
- package/node_modules/gray-matter/node_modules/js-yaml/lib/js-yaml/type/bool.js +35 -0
- package/node_modules/gray-matter/node_modules/js-yaml/lib/js-yaml/type/float.js +116 -0
- package/node_modules/gray-matter/node_modules/js-yaml/lib/js-yaml/type/int.js +173 -0
- package/node_modules/gray-matter/node_modules/js-yaml/lib/js-yaml/type/js/function.js +93 -0
- package/node_modules/gray-matter/node_modules/js-yaml/lib/js-yaml/type/js/regexp.js +60 -0
- package/node_modules/gray-matter/node_modules/js-yaml/lib/js-yaml/type/js/undefined.js +28 -0
- package/node_modules/gray-matter/node_modules/js-yaml/lib/js-yaml/type/map.js +8 -0
- package/node_modules/gray-matter/node_modules/js-yaml/lib/js-yaml/type/merge.js +12 -0
- package/node_modules/gray-matter/node_modules/js-yaml/lib/js-yaml/type/null.js +34 -0
- package/node_modules/gray-matter/node_modules/js-yaml/lib/js-yaml/type/omap.js +44 -0
- package/node_modules/gray-matter/node_modules/js-yaml/lib/js-yaml/type/pairs.js +53 -0
- package/node_modules/gray-matter/node_modules/js-yaml/lib/js-yaml/type/seq.js +8 -0
- package/node_modules/gray-matter/node_modules/js-yaml/lib/js-yaml/type/set.js +29 -0
- package/node_modules/gray-matter/node_modules/js-yaml/lib/js-yaml/type/str.js +8 -0
- package/node_modules/gray-matter/node_modules/js-yaml/lib/js-yaml/type/timestamp.js +88 -0
- package/node_modules/gray-matter/node_modules/js-yaml/lib/js-yaml/type.js +61 -0
- package/node_modules/gray-matter/node_modules/js-yaml/lib/js-yaml.js +39 -0
- package/node_modules/gray-matter/node_modules/js-yaml/package.json +52 -0
- package/node_modules/gray-matter/package.json +127 -0
- package/node_modules/is-extendable/LICENSE +21 -0
- package/node_modules/is-extendable/README.md +72 -0
- package/node_modules/is-extendable/index.js +13 -0
- package/node_modules/is-extendable/package.json +51 -0
- package/node_modules/kind-of/LICENSE +21 -0
- package/node_modules/kind-of/README.md +367 -0
- package/node_modules/kind-of/index.js +129 -0
- package/node_modules/kind-of/package.json +88 -0
- package/node_modules/section-matter/LICENSE +21 -0
- package/node_modules/section-matter/README.md +236 -0
- package/node_modules/section-matter/index.js +136 -0
- package/node_modules/section-matter/package.json +55 -0
- package/node_modules/sprintf-js/.npmignore +1 -0
- package/node_modules/sprintf-js/LICENSE +24 -0
- package/node_modules/sprintf-js/README.md +88 -0
- package/node_modules/sprintf-js/bower.json +14 -0
- package/node_modules/sprintf-js/demo/angular.html +20 -0
- package/node_modules/sprintf-js/dist/angular-sprintf.min.js +4 -0
- package/node_modules/sprintf-js/dist/angular-sprintf.min.js.map +1 -0
- package/node_modules/sprintf-js/dist/angular-sprintf.min.map +1 -0
- package/node_modules/sprintf-js/dist/sprintf.min.js +4 -0
- package/node_modules/sprintf-js/dist/sprintf.min.js.map +1 -0
- package/node_modules/sprintf-js/dist/sprintf.min.map +1 -0
- package/node_modules/sprintf-js/gruntfile.js +36 -0
- package/node_modules/sprintf-js/package.json +22 -0
- package/node_modules/sprintf-js/src/angular-sprintf.js +18 -0
- package/node_modules/sprintf-js/src/sprintf.js +208 -0
- package/node_modules/sprintf-js/test/test.js +82 -0
- package/node_modules/strip-bom-string/LICENSE +21 -0
- package/node_modules/strip-bom-string/README.md +66 -0
- package/node_modules/strip-bom-string/index.js +15 -0
- package/node_modules/strip-bom-string/package.json +60 -0
- package/package.json +6 -3
- package/packages/safe-fs/dist/fs/webdav/webdav.d.ts +2 -0
- package/packages/safe-js/dist/browser/chunks/{chunk-MUKMA7ZY.js → chunk-GJWMQ42Z.js} +35 -2
- package/packages/safe-js/dist/browser/chunks/{chunk-MUKMA7ZY.js.map → chunk-GJWMQ42Z.js.map} +2 -2
- package/packages/safe-js/dist/browser/safe-fs-core.js +1 -1
- package/packages/safe-js/dist/browser/safe-fs.js +1 -1
- package/packages/safe-js/dist/chunks/{chunk-HCODJUGF.js → chunk-EL23VF23.js} +3 -3
- package/packages/safe-js/dist/chunks/{chunk-YBQUQPZV.js → chunk-WVN5MMDR.js} +35 -2
- package/packages/safe-js/dist/chunks/chunk-WVN5MMDR.js.map +7 -0
- package/packages/safe-js/dist/chunks/{chunk-F7NY24BF.js → chunk-ZRX5HT5L.js} +2 -2
- package/packages/safe-js/dist/cli.js +3 -3
- package/packages/safe-js/dist/index.js +3 -3
- package/packages/safe-js/dist/safe-fs-core.js +1 -1
- package/packages/safe-js/dist/safe-fs-node.js +2 -2
- package/packages/safe-js/dist/safe-fs.js +2 -2
- package/packages/safe-js/dist/chunks/chunk-YBQUQPZV.js.map +0 -7
- /package/packages/safe-js/dist/chunks/{chunk-HCODJUGF.js.map → chunk-EL23VF23.js.map} +0 -0
- /package/packages/safe-js/dist/chunks/{chunk-F7NY24BF.js.map → chunk-ZRX5HT5L.js.map} +0 -0
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var common = require('../common');
|
|
4
|
+
var Type = require('../type');
|
|
5
|
+
|
|
6
|
+
function isHexCode(c) {
|
|
7
|
+
return ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) ||
|
|
8
|
+
((0x41/* A */ <= c) && (c <= 0x46/* F */)) ||
|
|
9
|
+
((0x61/* a */ <= c) && (c <= 0x66/* f */));
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
function isOctCode(c) {
|
|
13
|
+
return ((0x30/* 0 */ <= c) && (c <= 0x37/* 7 */));
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
function isDecCode(c) {
|
|
17
|
+
return ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */));
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
function resolveYamlInteger(data) {
|
|
21
|
+
if (data === null) return false;
|
|
22
|
+
|
|
23
|
+
var max = data.length,
|
|
24
|
+
index = 0,
|
|
25
|
+
hasDigits = false,
|
|
26
|
+
ch;
|
|
27
|
+
|
|
28
|
+
if (!max) return false;
|
|
29
|
+
|
|
30
|
+
ch = data[index];
|
|
31
|
+
|
|
32
|
+
// sign
|
|
33
|
+
if (ch === '-' || ch === '+') {
|
|
34
|
+
ch = data[++index];
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
if (ch === '0') {
|
|
38
|
+
// 0
|
|
39
|
+
if (index + 1 === max) return true;
|
|
40
|
+
ch = data[++index];
|
|
41
|
+
|
|
42
|
+
// base 2, base 8, base 16
|
|
43
|
+
|
|
44
|
+
if (ch === 'b') {
|
|
45
|
+
// base 2
|
|
46
|
+
index++;
|
|
47
|
+
|
|
48
|
+
for (; index < max; index++) {
|
|
49
|
+
ch = data[index];
|
|
50
|
+
if (ch === '_') continue;
|
|
51
|
+
if (ch !== '0' && ch !== '1') return false;
|
|
52
|
+
hasDigits = true;
|
|
53
|
+
}
|
|
54
|
+
return hasDigits && ch !== '_';
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
if (ch === 'x') {
|
|
59
|
+
// base 16
|
|
60
|
+
index++;
|
|
61
|
+
|
|
62
|
+
for (; index < max; index++) {
|
|
63
|
+
ch = data[index];
|
|
64
|
+
if (ch === '_') continue;
|
|
65
|
+
if (!isHexCode(data.charCodeAt(index))) return false;
|
|
66
|
+
hasDigits = true;
|
|
67
|
+
}
|
|
68
|
+
return hasDigits && ch !== '_';
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
// base 8
|
|
72
|
+
for (; index < max; index++) {
|
|
73
|
+
ch = data[index];
|
|
74
|
+
if (ch === '_') continue;
|
|
75
|
+
if (!isOctCode(data.charCodeAt(index))) return false;
|
|
76
|
+
hasDigits = true;
|
|
77
|
+
}
|
|
78
|
+
return hasDigits && ch !== '_';
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
// base 10 (except 0) or base 60
|
|
82
|
+
|
|
83
|
+
// value should not start with `_`;
|
|
84
|
+
if (ch === '_') return false;
|
|
85
|
+
|
|
86
|
+
for (; index < max; index++) {
|
|
87
|
+
ch = data[index];
|
|
88
|
+
if (ch === '_') continue;
|
|
89
|
+
if (ch === ':') break;
|
|
90
|
+
if (!isDecCode(data.charCodeAt(index))) {
|
|
91
|
+
return false;
|
|
92
|
+
}
|
|
93
|
+
hasDigits = true;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
// Should have digits and should not end with `_`
|
|
97
|
+
if (!hasDigits || ch === '_') return false;
|
|
98
|
+
|
|
99
|
+
// if !base60 - done;
|
|
100
|
+
if (ch !== ':') return true;
|
|
101
|
+
|
|
102
|
+
// base60 almost not used, no needs to optimize
|
|
103
|
+
return /^(:[0-5]?[0-9])+$/.test(data.slice(index));
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
function constructYamlInteger(data) {
|
|
107
|
+
var value = data, sign = 1, ch, base, digits = [];
|
|
108
|
+
|
|
109
|
+
if (value.indexOf('_') !== -1) {
|
|
110
|
+
value = value.replace(/_/g, '');
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
ch = value[0];
|
|
114
|
+
|
|
115
|
+
if (ch === '-' || ch === '+') {
|
|
116
|
+
if (ch === '-') sign = -1;
|
|
117
|
+
value = value.slice(1);
|
|
118
|
+
ch = value[0];
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
if (value === '0') return 0;
|
|
122
|
+
|
|
123
|
+
if (ch === '0') {
|
|
124
|
+
if (value[1] === 'b') return sign * parseInt(value.slice(2), 2);
|
|
125
|
+
if (value[1] === 'x') return sign * parseInt(value, 16);
|
|
126
|
+
return sign * parseInt(value, 8);
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
if (value.indexOf(':') !== -1) {
|
|
130
|
+
value.split(':').forEach(function (v) {
|
|
131
|
+
digits.unshift(parseInt(v, 10));
|
|
132
|
+
});
|
|
133
|
+
|
|
134
|
+
value = 0;
|
|
135
|
+
base = 1;
|
|
136
|
+
|
|
137
|
+
digits.forEach(function (d) {
|
|
138
|
+
value += (d * base);
|
|
139
|
+
base *= 60;
|
|
140
|
+
});
|
|
141
|
+
|
|
142
|
+
return sign * value;
|
|
143
|
+
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
return sign * parseInt(value, 10);
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
function isInteger(object) {
|
|
150
|
+
return (Object.prototype.toString.call(object)) === '[object Number]' &&
|
|
151
|
+
(object % 1 === 0 && !common.isNegativeZero(object));
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
module.exports = new Type('tag:yaml.org,2002:int', {
|
|
155
|
+
kind: 'scalar',
|
|
156
|
+
resolve: resolveYamlInteger,
|
|
157
|
+
construct: constructYamlInteger,
|
|
158
|
+
predicate: isInteger,
|
|
159
|
+
represent: {
|
|
160
|
+
binary: function (obj) { return obj >= 0 ? '0b' + obj.toString(2) : '-0b' + obj.toString(2).slice(1); },
|
|
161
|
+
octal: function (obj) { return obj >= 0 ? '0' + obj.toString(8) : '-0' + obj.toString(8).slice(1); },
|
|
162
|
+
decimal: function (obj) { return obj.toString(10); },
|
|
163
|
+
/* eslint-disable max-len */
|
|
164
|
+
hexadecimal: function (obj) { return obj >= 0 ? '0x' + obj.toString(16).toUpperCase() : '-0x' + obj.toString(16).toUpperCase().slice(1); }
|
|
165
|
+
},
|
|
166
|
+
defaultStyle: 'decimal',
|
|
167
|
+
styleAliases: {
|
|
168
|
+
binary: [ 2, 'bin' ],
|
|
169
|
+
octal: [ 8, 'oct' ],
|
|
170
|
+
decimal: [ 10, 'dec' ],
|
|
171
|
+
hexadecimal: [ 16, 'hex' ]
|
|
172
|
+
}
|
|
173
|
+
});
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var esprima;
|
|
4
|
+
|
|
5
|
+
// Browserified version does not have esprima
|
|
6
|
+
//
|
|
7
|
+
// 1. For node.js just require module as deps
|
|
8
|
+
// 2. For browser try to require mudule via external AMD system.
|
|
9
|
+
// If not found - try to fallback to window.esprima. If not
|
|
10
|
+
// found too - then fail to parse.
|
|
11
|
+
//
|
|
12
|
+
try {
|
|
13
|
+
// workaround to exclude package from browserify list.
|
|
14
|
+
var _require = require;
|
|
15
|
+
esprima = _require('esprima');
|
|
16
|
+
} catch (_) {
|
|
17
|
+
/* eslint-disable no-redeclare */
|
|
18
|
+
/* global window */
|
|
19
|
+
if (typeof window !== 'undefined') esprima = window.esprima;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
var Type = require('../../type');
|
|
23
|
+
|
|
24
|
+
function resolveJavascriptFunction(data) {
|
|
25
|
+
if (data === null) return false;
|
|
26
|
+
|
|
27
|
+
try {
|
|
28
|
+
var source = '(' + data + ')',
|
|
29
|
+
ast = esprima.parse(source, { range: true });
|
|
30
|
+
|
|
31
|
+
if (ast.type !== 'Program' ||
|
|
32
|
+
ast.body.length !== 1 ||
|
|
33
|
+
ast.body[0].type !== 'ExpressionStatement' ||
|
|
34
|
+
(ast.body[0].expression.type !== 'ArrowFunctionExpression' &&
|
|
35
|
+
ast.body[0].expression.type !== 'FunctionExpression')) {
|
|
36
|
+
return false;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
return true;
|
|
40
|
+
} catch (err) {
|
|
41
|
+
return false;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
function constructJavascriptFunction(data) {
|
|
46
|
+
/*jslint evil:true*/
|
|
47
|
+
|
|
48
|
+
var source = '(' + data + ')',
|
|
49
|
+
ast = esprima.parse(source, { range: true }),
|
|
50
|
+
params = [],
|
|
51
|
+
body;
|
|
52
|
+
|
|
53
|
+
if (ast.type !== 'Program' ||
|
|
54
|
+
ast.body.length !== 1 ||
|
|
55
|
+
ast.body[0].type !== 'ExpressionStatement' ||
|
|
56
|
+
(ast.body[0].expression.type !== 'ArrowFunctionExpression' &&
|
|
57
|
+
ast.body[0].expression.type !== 'FunctionExpression')) {
|
|
58
|
+
throw new Error('Failed to resolve function');
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
ast.body[0].expression.params.forEach(function (param) {
|
|
62
|
+
params.push(param.name);
|
|
63
|
+
});
|
|
64
|
+
|
|
65
|
+
body = ast.body[0].expression.body.range;
|
|
66
|
+
|
|
67
|
+
// Esprima's ranges include the first '{' and the last '}' characters on
|
|
68
|
+
// function expressions. So cut them out.
|
|
69
|
+
if (ast.body[0].expression.body.type === 'BlockStatement') {
|
|
70
|
+
/*eslint-disable no-new-func*/
|
|
71
|
+
return new Function(params, source.slice(body[0] + 1, body[1] - 1));
|
|
72
|
+
}
|
|
73
|
+
// ES6 arrow functions can omit the BlockStatement. In that case, just return
|
|
74
|
+
// the body.
|
|
75
|
+
/*eslint-disable no-new-func*/
|
|
76
|
+
return new Function(params, 'return ' + source.slice(body[0], body[1]));
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
function representJavascriptFunction(object /*, style*/) {
|
|
80
|
+
return object.toString();
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
function isFunction(object) {
|
|
84
|
+
return Object.prototype.toString.call(object) === '[object Function]';
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
module.exports = new Type('tag:yaml.org,2002:js/function', {
|
|
88
|
+
kind: 'scalar',
|
|
89
|
+
resolve: resolveJavascriptFunction,
|
|
90
|
+
construct: constructJavascriptFunction,
|
|
91
|
+
predicate: isFunction,
|
|
92
|
+
represent: representJavascriptFunction
|
|
93
|
+
});
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var Type = require('../../type');
|
|
4
|
+
|
|
5
|
+
function resolveJavascriptRegExp(data) {
|
|
6
|
+
if (data === null) return false;
|
|
7
|
+
if (data.length === 0) return false;
|
|
8
|
+
|
|
9
|
+
var regexp = data,
|
|
10
|
+
tail = /\/([gim]*)$/.exec(data),
|
|
11
|
+
modifiers = '';
|
|
12
|
+
|
|
13
|
+
// if regexp starts with '/' it can have modifiers and must be properly closed
|
|
14
|
+
// `/foo/gim` - modifiers tail can be maximum 3 chars
|
|
15
|
+
if (regexp[0] === '/') {
|
|
16
|
+
if (tail) modifiers = tail[1];
|
|
17
|
+
|
|
18
|
+
if (modifiers.length > 3) return false;
|
|
19
|
+
// if expression starts with /, is should be properly terminated
|
|
20
|
+
if (regexp[regexp.length - modifiers.length - 1] !== '/') return false;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
return true;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
function constructJavascriptRegExp(data) {
|
|
27
|
+
var regexp = data,
|
|
28
|
+
tail = /\/([gim]*)$/.exec(data),
|
|
29
|
+
modifiers = '';
|
|
30
|
+
|
|
31
|
+
// `/foo/gim` - tail can be maximum 4 chars
|
|
32
|
+
if (regexp[0] === '/') {
|
|
33
|
+
if (tail) modifiers = tail[1];
|
|
34
|
+
regexp = regexp.slice(1, regexp.length - modifiers.length - 1);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
return new RegExp(regexp, modifiers);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
function representJavascriptRegExp(object /*, style*/) {
|
|
41
|
+
var result = '/' + object.source + '/';
|
|
42
|
+
|
|
43
|
+
if (object.global) result += 'g';
|
|
44
|
+
if (object.multiline) result += 'm';
|
|
45
|
+
if (object.ignoreCase) result += 'i';
|
|
46
|
+
|
|
47
|
+
return result;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
function isRegExp(object) {
|
|
51
|
+
return Object.prototype.toString.call(object) === '[object RegExp]';
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
module.exports = new Type('tag:yaml.org,2002:js/regexp', {
|
|
55
|
+
kind: 'scalar',
|
|
56
|
+
resolve: resolveJavascriptRegExp,
|
|
57
|
+
construct: constructJavascriptRegExp,
|
|
58
|
+
predicate: isRegExp,
|
|
59
|
+
represent: representJavascriptRegExp
|
|
60
|
+
});
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var Type = require('../../type');
|
|
4
|
+
|
|
5
|
+
function resolveJavascriptUndefined() {
|
|
6
|
+
return true;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
function constructJavascriptUndefined() {
|
|
10
|
+
/*eslint-disable no-undefined*/
|
|
11
|
+
return undefined;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
function representJavascriptUndefined() {
|
|
15
|
+
return '';
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
function isUndefined(object) {
|
|
19
|
+
return typeof object === 'undefined';
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
module.exports = new Type('tag:yaml.org,2002:js/undefined', {
|
|
23
|
+
kind: 'scalar',
|
|
24
|
+
resolve: resolveJavascriptUndefined,
|
|
25
|
+
construct: constructJavascriptUndefined,
|
|
26
|
+
predicate: isUndefined,
|
|
27
|
+
represent: representJavascriptUndefined
|
|
28
|
+
});
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var Type = require('../type');
|
|
4
|
+
|
|
5
|
+
function resolveYamlNull(data) {
|
|
6
|
+
if (data === null) return true;
|
|
7
|
+
|
|
8
|
+
var max = data.length;
|
|
9
|
+
|
|
10
|
+
return (max === 1 && data === '~') ||
|
|
11
|
+
(max === 4 && (data === 'null' || data === 'Null' || data === 'NULL'));
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
function constructYamlNull() {
|
|
15
|
+
return null;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
function isNull(object) {
|
|
19
|
+
return object === null;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
module.exports = new Type('tag:yaml.org,2002:null', {
|
|
23
|
+
kind: 'scalar',
|
|
24
|
+
resolve: resolveYamlNull,
|
|
25
|
+
construct: constructYamlNull,
|
|
26
|
+
predicate: isNull,
|
|
27
|
+
represent: {
|
|
28
|
+
canonical: function () { return '~'; },
|
|
29
|
+
lowercase: function () { return 'null'; },
|
|
30
|
+
uppercase: function () { return 'NULL'; },
|
|
31
|
+
camelcase: function () { return 'Null'; }
|
|
32
|
+
},
|
|
33
|
+
defaultStyle: 'lowercase'
|
|
34
|
+
});
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var Type = require('../type');
|
|
4
|
+
|
|
5
|
+
var _hasOwnProperty = Object.prototype.hasOwnProperty;
|
|
6
|
+
var _toString = Object.prototype.toString;
|
|
7
|
+
|
|
8
|
+
function resolveYamlOmap(data) {
|
|
9
|
+
if (data === null) return true;
|
|
10
|
+
|
|
11
|
+
var objectKeys = {}, index, length, pair, pairKey, pairHasKey,
|
|
12
|
+
object = data;
|
|
13
|
+
|
|
14
|
+
for (index = 0, length = object.length; index < length; index += 1) {
|
|
15
|
+
pair = object[index];
|
|
16
|
+
pairHasKey = false;
|
|
17
|
+
|
|
18
|
+
if (_toString.call(pair) !== '[object Object]') return false;
|
|
19
|
+
|
|
20
|
+
for (pairKey in pair) {
|
|
21
|
+
if (_hasOwnProperty.call(pair, pairKey)) {
|
|
22
|
+
if (!pairHasKey) pairHasKey = true;
|
|
23
|
+
else return false;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
if (!pairHasKey) return false;
|
|
28
|
+
|
|
29
|
+
if (_hasOwnProperty.call(objectKeys, pairKey)) return false;
|
|
30
|
+
Object.defineProperty(objectKeys, pairKey, { value: true });
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
return true;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
function constructYamlOmap(data) {
|
|
37
|
+
return data !== null ? data : [];
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
module.exports = new Type('tag:yaml.org,2002:omap', {
|
|
41
|
+
kind: 'sequence',
|
|
42
|
+
resolve: resolveYamlOmap,
|
|
43
|
+
construct: constructYamlOmap
|
|
44
|
+
});
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var Type = require('../type');
|
|
4
|
+
|
|
5
|
+
var _toString = Object.prototype.toString;
|
|
6
|
+
|
|
7
|
+
function resolveYamlPairs(data) {
|
|
8
|
+
if (data === null) return true;
|
|
9
|
+
|
|
10
|
+
var index, length, pair, keys, result,
|
|
11
|
+
object = data;
|
|
12
|
+
|
|
13
|
+
result = new Array(object.length);
|
|
14
|
+
|
|
15
|
+
for (index = 0, length = object.length; index < length; index += 1) {
|
|
16
|
+
pair = object[index];
|
|
17
|
+
|
|
18
|
+
if (_toString.call(pair) !== '[object Object]') return false;
|
|
19
|
+
|
|
20
|
+
keys = Object.keys(pair);
|
|
21
|
+
|
|
22
|
+
if (keys.length !== 1) return false;
|
|
23
|
+
|
|
24
|
+
result[index] = [ keys[0], pair[keys[0]] ];
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
return true;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
function constructYamlPairs(data) {
|
|
31
|
+
if (data === null) return [];
|
|
32
|
+
|
|
33
|
+
var index, length, pair, keys, result,
|
|
34
|
+
object = data;
|
|
35
|
+
|
|
36
|
+
result = new Array(object.length);
|
|
37
|
+
|
|
38
|
+
for (index = 0, length = object.length; index < length; index += 1) {
|
|
39
|
+
pair = object[index];
|
|
40
|
+
|
|
41
|
+
keys = Object.keys(pair);
|
|
42
|
+
|
|
43
|
+
result[index] = [ keys[0], pair[keys[0]] ];
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
return result;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
module.exports = new Type('tag:yaml.org,2002:pairs', {
|
|
50
|
+
kind: 'sequence',
|
|
51
|
+
resolve: resolveYamlPairs,
|
|
52
|
+
construct: constructYamlPairs
|
|
53
|
+
});
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var Type = require('../type');
|
|
4
|
+
|
|
5
|
+
var _hasOwnProperty = Object.prototype.hasOwnProperty;
|
|
6
|
+
|
|
7
|
+
function resolveYamlSet(data) {
|
|
8
|
+
if (data === null) return true;
|
|
9
|
+
|
|
10
|
+
var key, object = data;
|
|
11
|
+
|
|
12
|
+
for (key in object) {
|
|
13
|
+
if (_hasOwnProperty.call(object, key)) {
|
|
14
|
+
if (object[key] !== null) return false;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
return true;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
function constructYamlSet(data) {
|
|
22
|
+
return data !== null ? data : {};
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
module.exports = new Type('tag:yaml.org,2002:set', {
|
|
26
|
+
kind: 'mapping',
|
|
27
|
+
resolve: resolveYamlSet,
|
|
28
|
+
construct: constructYamlSet
|
|
29
|
+
});
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var Type = require('../type');
|
|
4
|
+
|
|
5
|
+
var YAML_DATE_REGEXP = new RegExp(
|
|
6
|
+
'^([0-9][0-9][0-9][0-9])' + // [1] year
|
|
7
|
+
'-([0-9][0-9])' + // [2] month
|
|
8
|
+
'-([0-9][0-9])$'); // [3] day
|
|
9
|
+
|
|
10
|
+
var YAML_TIMESTAMP_REGEXP = new RegExp(
|
|
11
|
+
'^([0-9][0-9][0-9][0-9])' + // [1] year
|
|
12
|
+
'-([0-9][0-9]?)' + // [2] month
|
|
13
|
+
'-([0-9][0-9]?)' + // [3] day
|
|
14
|
+
'(?:[Tt]|[ \\t]+)' + // ...
|
|
15
|
+
'([0-9][0-9]?)' + // [4] hour
|
|
16
|
+
':([0-9][0-9])' + // [5] minute
|
|
17
|
+
':([0-9][0-9])' + // [6] second
|
|
18
|
+
'(?:\\.([0-9]*))?' + // [7] fraction
|
|
19
|
+
'(?:[ \\t]*(Z|([-+])([0-9][0-9]?)' + // [8] tz [9] tz_sign [10] tz_hour
|
|
20
|
+
'(?::([0-9][0-9]))?))?$'); // [11] tz_minute
|
|
21
|
+
|
|
22
|
+
function resolveYamlTimestamp(data) {
|
|
23
|
+
if (data === null) return false;
|
|
24
|
+
if (YAML_DATE_REGEXP.exec(data) !== null) return true;
|
|
25
|
+
if (YAML_TIMESTAMP_REGEXP.exec(data) !== null) return true;
|
|
26
|
+
return false;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
function constructYamlTimestamp(data) {
|
|
30
|
+
var match, year, month, day, hour, minute, second, fraction = 0,
|
|
31
|
+
delta = null, tz_hour, tz_minute, date;
|
|
32
|
+
|
|
33
|
+
match = YAML_DATE_REGEXP.exec(data);
|
|
34
|
+
if (match === null) match = YAML_TIMESTAMP_REGEXP.exec(data);
|
|
35
|
+
|
|
36
|
+
if (match === null) throw new Error('Date resolve error');
|
|
37
|
+
|
|
38
|
+
// match: [1] year [2] month [3] day
|
|
39
|
+
|
|
40
|
+
year = +(match[1]);
|
|
41
|
+
month = +(match[2]) - 1; // JS month starts with 0
|
|
42
|
+
day = +(match[3]);
|
|
43
|
+
|
|
44
|
+
if (!match[4]) { // no hour
|
|
45
|
+
return new Date(Date.UTC(year, month, day));
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
// match: [4] hour [5] minute [6] second [7] fraction
|
|
49
|
+
|
|
50
|
+
hour = +(match[4]);
|
|
51
|
+
minute = +(match[5]);
|
|
52
|
+
second = +(match[6]);
|
|
53
|
+
|
|
54
|
+
if (match[7]) {
|
|
55
|
+
fraction = match[7].slice(0, 3);
|
|
56
|
+
while (fraction.length < 3) { // milli-seconds
|
|
57
|
+
fraction += '0';
|
|
58
|
+
}
|
|
59
|
+
fraction = +fraction;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
// match: [8] tz [9] tz_sign [10] tz_hour [11] tz_minute
|
|
63
|
+
|
|
64
|
+
if (match[9]) {
|
|
65
|
+
tz_hour = +(match[10]);
|
|
66
|
+
tz_minute = +(match[11] || 0);
|
|
67
|
+
delta = (tz_hour * 60 + tz_minute) * 60000; // delta in mili-seconds
|
|
68
|
+
if (match[9] === '-') delta = -delta;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
date = new Date(Date.UTC(year, month, day, hour, minute, second, fraction));
|
|
72
|
+
|
|
73
|
+
if (delta) date.setTime(date.getTime() - delta);
|
|
74
|
+
|
|
75
|
+
return date;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
function representYamlTimestamp(object /*, style*/) {
|
|
79
|
+
return object.toISOString();
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
module.exports = new Type('tag:yaml.org,2002:timestamp', {
|
|
83
|
+
kind: 'scalar',
|
|
84
|
+
resolve: resolveYamlTimestamp,
|
|
85
|
+
construct: constructYamlTimestamp,
|
|
86
|
+
instanceOf: Date,
|
|
87
|
+
represent: representYamlTimestamp
|
|
88
|
+
});
|