llonebot-dist 7.0.1 → 7.1.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.
Files changed (85) hide show
  1. package/llonebot.js +2336 -10459
  2. package/llonebot.js.map +1 -1
  3. package/node_modules/cosmokit/LICENSE +21 -0
  4. package/node_modules/cosmokit/README.md +24 -0
  5. package/node_modules/cosmokit/lib/index.cjs +463 -0
  6. package/node_modules/cosmokit/lib/index.cjs.map +6 -0
  7. package/node_modules/cosmokit/lib/index.d.ts +142 -0
  8. package/node_modules/cosmokit/lib/index.mjs +403 -0
  9. package/node_modules/cosmokit/lib/index.mjs.map +6 -0
  10. package/node_modules/cosmokit/package.json +56 -0
  11. package/node_modules/cosmokit/src/array.ts +35 -0
  12. package/node_modules/cosmokit/src/index.ts +5 -0
  13. package/node_modules/cosmokit/src/misc.ts +57 -0
  14. package/node_modules/cosmokit/src/string.ts +101 -0
  15. package/node_modules/cosmokit/src/time.ts +91 -0
  16. package/node_modules/cosmokit/src/types.ts +129 -0
  17. package/node_modules/has-flag/index.d.ts +39 -0
  18. package/node_modules/has-flag/index.js +8 -0
  19. package/node_modules/has-flag/license +9 -0
  20. package/node_modules/has-flag/package.json +46 -0
  21. package/node_modules/has-flag/readme.md +89 -0
  22. package/node_modules/object-inspect/CHANGELOG.md +424 -0
  23. package/node_modules/object-inspect/LICENSE +21 -0
  24. package/node_modules/object-inspect/example/all.js +23 -0
  25. package/node_modules/object-inspect/example/circular.js +6 -0
  26. package/node_modules/object-inspect/example/fn.js +5 -0
  27. package/node_modules/object-inspect/example/inspect.js +10 -0
  28. package/node_modules/object-inspect/index.js +544 -0
  29. package/node_modules/object-inspect/package-support.json +20 -0
  30. package/node_modules/object-inspect/package.json +105 -0
  31. package/node_modules/object-inspect/readme.markdown +84 -0
  32. package/node_modules/object-inspect/test/bigint.js +58 -0
  33. package/node_modules/object-inspect/test/browser/dom.js +15 -0
  34. package/node_modules/object-inspect/test/circular.js +16 -0
  35. package/node_modules/object-inspect/test/deep.js +12 -0
  36. package/node_modules/object-inspect/test/element.js +53 -0
  37. package/node_modules/object-inspect/test/err.js +48 -0
  38. package/node_modules/object-inspect/test/fakes.js +29 -0
  39. package/node_modules/object-inspect/test/fn.js +76 -0
  40. package/node_modules/object-inspect/test/global.js +17 -0
  41. package/node_modules/object-inspect/test/has.js +15 -0
  42. package/node_modules/object-inspect/test/holes.js +15 -0
  43. package/node_modules/object-inspect/test/indent-option.js +271 -0
  44. package/node_modules/object-inspect/test/inspect.js +139 -0
  45. package/node_modules/object-inspect/test/lowbyte.js +12 -0
  46. package/node_modules/object-inspect/test/number.js +58 -0
  47. package/node_modules/object-inspect/test/quoteStyle.js +26 -0
  48. package/node_modules/object-inspect/test/toStringTag.js +40 -0
  49. package/node_modules/object-inspect/test/undef.js +12 -0
  50. package/node_modules/object-inspect/test/values.js +261 -0
  51. package/node_modules/object-inspect/test-core-js.js +26 -0
  52. package/node_modules/object-inspect/util.inspect.js +1 -0
  53. package/node_modules/reggol/LICENSE +21 -0
  54. package/node_modules/reggol/README.md +8 -0
  55. package/node_modules/reggol/index.d.ts +79 -0
  56. package/node_modules/reggol/lib/browser.mjs +299 -0
  57. package/node_modules/reggol/lib/node.js +31 -0
  58. package/node_modules/reggol/lib/shared.js +258 -0
  59. package/node_modules/reggol/lib/shared.mjs +266 -0
  60. package/node_modules/reggol/node_modules/supports-color/browser.js +24 -0
  61. package/node_modules/reggol/node_modules/supports-color/index.js +152 -0
  62. package/node_modules/reggol/node_modules/supports-color/license +9 -0
  63. package/node_modules/reggol/node_modules/supports-color/package.json +58 -0
  64. package/node_modules/reggol/node_modules/supports-color/readme.md +77 -0
  65. package/node_modules/reggol/package.json +65 -0
  66. package/node_modules/reggol/src/browser.ts +8 -0
  67. package/node_modules/reggol/src/index.ts +3 -0
  68. package/node_modules/reggol/src/node.ts +8 -0
  69. package/node_modules/reggol/src/shared.ts +249 -0
  70. package/node_modules/supports-color/browser.d.ts +1 -0
  71. package/node_modules/supports-color/browser.js +35 -0
  72. package/node_modules/supports-color/index.d.ts +55 -0
  73. package/node_modules/supports-color/index.js +202 -0
  74. package/node_modules/supports-color/license +9 -0
  75. package/node_modules/supports-color/package.json +64 -0
  76. package/node_modules/supports-color/readme.md +75 -0
  77. package/package.json +1 -1
  78. package/webui/assets/index-CO7Tbtyt.css +1 -0
  79. package/webui/assets/index-D7SfQ8t3.js +308 -0
  80. package/webui/favicon.ico +0 -0
  81. package/webui/index.html +2 -2
  82. package//344/275/277/347/224/250/350/257/264/346/230/216.txt +2 -2
  83. package//346/233/264/346/226/260/346/227/245/345/277/227.txt +24 -0
  84. package/webui/assets/index-DH65Wt1j.css +0 -1
  85. package/webui/assets/index-fRyBxWld.js +0 -273
@@ -0,0 +1,271 @@
1
+ var test = require('tape');
2
+ var forEach = require('for-each');
3
+
4
+ var inspect = require('../');
5
+
6
+ test('bad indent options', function (t) {
7
+ forEach([
8
+ undefined,
9
+ true,
10
+ false,
11
+ -1,
12
+ 1.2,
13
+ Infinity,
14
+ -Infinity,
15
+ NaN
16
+ ], function (indent) {
17
+ t['throws'](
18
+ function () { inspect('', { indent: indent }); },
19
+ TypeError,
20
+ inspect(indent) + ' is invalid'
21
+ );
22
+ });
23
+
24
+ t.end();
25
+ });
26
+
27
+ test('simple object with indent', function (t) {
28
+ t.plan(2);
29
+
30
+ var obj = { a: 1, b: 2 };
31
+
32
+ var expectedSpaces = [
33
+ '{',
34
+ ' a: 1,',
35
+ ' b: 2',
36
+ '}'
37
+ ].join('\n');
38
+ var expectedTabs = [
39
+ '{',
40
+ ' a: 1,',
41
+ ' b: 2',
42
+ '}'
43
+ ].join('\n');
44
+
45
+ t.equal(inspect(obj, { indent: 2 }), expectedSpaces, 'two');
46
+ t.equal(inspect(obj, { indent: '\t' }), expectedTabs, 'tabs');
47
+ });
48
+
49
+ test('two deep object with indent', function (t) {
50
+ t.plan(2);
51
+
52
+ var obj = { a: 1, b: { c: 3, d: 4 } };
53
+
54
+ var expectedSpaces = [
55
+ '{',
56
+ ' a: 1,',
57
+ ' b: {',
58
+ ' c: 3,',
59
+ ' d: 4',
60
+ ' }',
61
+ '}'
62
+ ].join('\n');
63
+ var expectedTabs = [
64
+ '{',
65
+ ' a: 1,',
66
+ ' b: {',
67
+ ' c: 3,',
68
+ ' d: 4',
69
+ ' }',
70
+ '}'
71
+ ].join('\n');
72
+
73
+ t.equal(inspect(obj, { indent: 2 }), expectedSpaces, 'two');
74
+ t.equal(inspect(obj, { indent: '\t' }), expectedTabs, 'tabs');
75
+ });
76
+
77
+ test('simple array with all single line elements', function (t) {
78
+ t.plan(2);
79
+
80
+ var obj = [1, 2, 3, 'asdf\nsdf'];
81
+
82
+ var expected = '[ 1, 2, 3, \'asdf\\nsdf\' ]';
83
+
84
+ t.equal(inspect(obj, { indent: 2 }), expected, 'two');
85
+ t.equal(inspect(obj, { indent: '\t' }), expected, 'tabs');
86
+ });
87
+
88
+ test('array with complex elements', function (t) {
89
+ t.plan(2);
90
+
91
+ var obj = [1, { a: 1, b: { c: 1 } }, 'asdf\nsdf'];
92
+
93
+ var expectedSpaces = [
94
+ '[',
95
+ ' 1,',
96
+ ' {',
97
+ ' a: 1,',
98
+ ' b: {',
99
+ ' c: 1',
100
+ ' }',
101
+ ' },',
102
+ ' \'asdf\\nsdf\'',
103
+ ']'
104
+ ].join('\n');
105
+ var expectedTabs = [
106
+ '[',
107
+ ' 1,',
108
+ ' {',
109
+ ' a: 1,',
110
+ ' b: {',
111
+ ' c: 1',
112
+ ' }',
113
+ ' },',
114
+ ' \'asdf\\nsdf\'',
115
+ ']'
116
+ ].join('\n');
117
+
118
+ t.equal(inspect(obj, { indent: 2 }), expectedSpaces, 'two');
119
+ t.equal(inspect(obj, { indent: '\t' }), expectedTabs, 'tabs');
120
+ });
121
+
122
+ test('values', function (t) {
123
+ t.plan(2);
124
+ var obj = [{}, [], { 'a-b': 5 }];
125
+
126
+ var expectedSpaces = [
127
+ '[',
128
+ ' {},',
129
+ ' [],',
130
+ ' {',
131
+ ' \'a-b\': 5',
132
+ ' }',
133
+ ']'
134
+ ].join('\n');
135
+ var expectedTabs = [
136
+ '[',
137
+ ' {},',
138
+ ' [],',
139
+ ' {',
140
+ ' \'a-b\': 5',
141
+ ' }',
142
+ ']'
143
+ ].join('\n');
144
+
145
+ t.equal(inspect(obj, { indent: 2 }), expectedSpaces, 'two');
146
+ t.equal(inspect(obj, { indent: '\t' }), expectedTabs, 'tabs');
147
+ });
148
+
149
+ test('Map', { skip: typeof Map !== 'function' }, function (t) {
150
+ var map = new Map();
151
+ map.set({ a: 1 }, ['b']);
152
+ map.set(3, NaN);
153
+
154
+ var expectedStringSpaces = [
155
+ 'Map (2) {',
156
+ ' { a: 1 } => [ \'b\' ],',
157
+ ' 3 => NaN',
158
+ '}'
159
+ ].join('\n');
160
+ var expectedStringTabs = [
161
+ 'Map (2) {',
162
+ ' { a: 1 } => [ \'b\' ],',
163
+ ' 3 => NaN',
164
+ '}'
165
+ ].join('\n');
166
+ var expectedStringTabsDoubleQuotes = [
167
+ 'Map (2) {',
168
+ ' { a: 1 } => [ "b" ],',
169
+ ' 3 => NaN',
170
+ '}'
171
+ ].join('\n');
172
+
173
+ t.equal(
174
+ inspect(map, { indent: 2 }),
175
+ expectedStringSpaces,
176
+ 'Map keys are not indented (two)'
177
+ );
178
+ t.equal(
179
+ inspect(map, { indent: '\t' }),
180
+ expectedStringTabs,
181
+ 'Map keys are not indented (tabs)'
182
+ );
183
+ t.equal(
184
+ inspect(map, { indent: '\t', quoteStyle: 'double' }),
185
+ expectedStringTabsDoubleQuotes,
186
+ 'Map keys are not indented (tabs + double quotes)'
187
+ );
188
+
189
+ t.equal(inspect(new Map(), { indent: 2 }), 'Map (0) {}', 'empty Map should show as empty (two)');
190
+ t.equal(inspect(new Map(), { indent: '\t' }), 'Map (0) {}', 'empty Map should show as empty (tabs)');
191
+
192
+ var nestedMap = new Map();
193
+ nestedMap.set(nestedMap, map);
194
+ var expectedNestedSpaces = [
195
+ 'Map (1) {',
196
+ ' [Circular] => Map (2) {',
197
+ ' { a: 1 } => [ \'b\' ],',
198
+ ' 3 => NaN',
199
+ ' }',
200
+ '}'
201
+ ].join('\n');
202
+ var expectedNestedTabs = [
203
+ 'Map (1) {',
204
+ ' [Circular] => Map (2) {',
205
+ ' { a: 1 } => [ \'b\' ],',
206
+ ' 3 => NaN',
207
+ ' }',
208
+ '}'
209
+ ].join('\n');
210
+ t.equal(inspect(nestedMap, { indent: 2 }), expectedNestedSpaces, 'Map containing a Map should work (two)');
211
+ t.equal(inspect(nestedMap, { indent: '\t' }), expectedNestedTabs, 'Map containing a Map should work (tabs)');
212
+
213
+ t.end();
214
+ });
215
+
216
+ test('Set', { skip: typeof Set !== 'function' }, function (t) {
217
+ var set = new Set();
218
+ set.add({ a: 1 });
219
+ set.add(['b']);
220
+ var expectedStringSpaces = [
221
+ 'Set (2) {',
222
+ ' {',
223
+ ' a: 1',
224
+ ' },',
225
+ ' [ \'b\' ]',
226
+ '}'
227
+ ].join('\n');
228
+ var expectedStringTabs = [
229
+ 'Set (2) {',
230
+ ' {',
231
+ ' a: 1',
232
+ ' },',
233
+ ' [ \'b\' ]',
234
+ '}'
235
+ ].join('\n');
236
+ t.equal(inspect(set, { indent: 2 }), expectedStringSpaces, 'new Set([{ a: 1 }, ["b"]]) should show size and contents (two)');
237
+ t.equal(inspect(set, { indent: '\t' }), expectedStringTabs, 'new Set([{ a: 1 }, ["b"]]) should show size and contents (tabs)');
238
+
239
+ t.equal(inspect(new Set(), { indent: 2 }), 'Set (0) {}', 'empty Set should show as empty (two)');
240
+ t.equal(inspect(new Set(), { indent: '\t' }), 'Set (0) {}', 'empty Set should show as empty (tabs)');
241
+
242
+ var nestedSet = new Set();
243
+ nestedSet.add(set);
244
+ nestedSet.add(nestedSet);
245
+ var expectedNestedSpaces = [
246
+ 'Set (2) {',
247
+ ' Set (2) {',
248
+ ' {',
249
+ ' a: 1',
250
+ ' },',
251
+ ' [ \'b\' ]',
252
+ ' },',
253
+ ' [Circular]',
254
+ '}'
255
+ ].join('\n');
256
+ var expectedNestedTabs = [
257
+ 'Set (2) {',
258
+ ' Set (2) {',
259
+ ' {',
260
+ ' a: 1',
261
+ ' },',
262
+ ' [ \'b\' ]',
263
+ ' },',
264
+ ' [Circular]',
265
+ '}'
266
+ ].join('\n');
267
+ t.equal(inspect(nestedSet, { indent: 2 }), expectedNestedSpaces, 'Set containing a Set should work (two)');
268
+ t.equal(inspect(nestedSet, { indent: '\t' }), expectedNestedTabs, 'Set containing a Set should work (tabs)');
269
+
270
+ t.end();
271
+ });
@@ -0,0 +1,139 @@
1
+ var test = require('tape');
2
+ var hasSymbols = require('has-symbols/shams')();
3
+ var utilInspect = require('../util.inspect');
4
+ var repeat = require('string.prototype.repeat');
5
+
6
+ var inspect = require('..');
7
+
8
+ test('inspect', function (t) {
9
+ t.plan(5);
10
+
11
+ var obj = [{ inspect: function xyzInspect() { return '!XYZ¡'; } }, []];
12
+ var stringResult = '[ !XYZ¡, [] ]';
13
+ var falseResult = '[ { inspect: [Function: xyzInspect] }, [] ]';
14
+
15
+ t.equal(inspect(obj), stringResult);
16
+ t.equal(inspect(obj, { customInspect: true }), stringResult);
17
+ t.equal(inspect(obj, { customInspect: 'symbol' }), falseResult);
18
+ t.equal(inspect(obj, { customInspect: false }), falseResult);
19
+ t['throws'](
20
+ function () { inspect(obj, { customInspect: 'not a boolean or "symbol"' }); },
21
+ TypeError,
22
+ '`customInspect` must be a boolean or the string "symbol"'
23
+ );
24
+ });
25
+
26
+ test('inspect custom symbol', { skip: !hasSymbols || !utilInspect || !utilInspect.custom }, function (t) {
27
+ t.plan(4);
28
+
29
+ var obj = { inspect: function stringInspect() { return 'string'; } };
30
+ obj[utilInspect.custom] = function custom() { return 'symbol'; };
31
+
32
+ var symbolResult = '[ symbol, [] ]';
33
+ var stringResult = '[ string, [] ]';
34
+ var falseResult = '[ { inspect: [Function: stringInspect]' + (utilInspect.custom ? ', [' + inspect(utilInspect.custom) + ']: [Function: custom]' : '') + ' }, [] ]';
35
+
36
+ var symbolStringFallback = utilInspect.custom ? symbolResult : stringResult;
37
+ var symbolFalseFallback = utilInspect.custom ? symbolResult : falseResult;
38
+
39
+ t.equal(inspect([obj, []]), symbolStringFallback);
40
+ t.equal(inspect([obj, []], { customInspect: true }), symbolStringFallback);
41
+ t.equal(inspect([obj, []], { customInspect: 'symbol' }), symbolFalseFallback);
42
+ t.equal(inspect([obj, []], { customInspect: false }), falseResult);
43
+ });
44
+
45
+ test('symbols', { skip: !hasSymbols }, function (t) {
46
+ t.plan(2);
47
+
48
+ var obj = { a: 1 };
49
+ obj[Symbol('test')] = 2;
50
+ obj[Symbol.iterator] = 3;
51
+ Object.defineProperty(obj, Symbol('non-enum'), {
52
+ enumerable: false,
53
+ value: 4
54
+ });
55
+
56
+ if (typeof Symbol.iterator === 'symbol') {
57
+ t.equal(inspect(obj), '{ a: 1, [Symbol(test)]: 2, [Symbol(Symbol.iterator)]: 3 }', 'object with symbols');
58
+ t.equal(inspect([obj, []]), '[ { a: 1, [Symbol(test)]: 2, [Symbol(Symbol.iterator)]: 3 }, [] ]', 'object with symbols in array');
59
+ } else {
60
+ // symbol sham key ordering is unreliable
61
+ t.match(
62
+ inspect(obj),
63
+ /^(?:{ a: 1, \[Symbol\(test\)\]: 2, \[Symbol\(Symbol.iterator\)\]: 3 }|{ a: 1, \[Symbol\(Symbol.iterator\)\]: 3, \[Symbol\(test\)\]: 2 })$/,
64
+ 'object with symbols (nondeterministic symbol sham key ordering)'
65
+ );
66
+ t.match(
67
+ inspect([obj, []]),
68
+ /^\[ (?:{ a: 1, \[Symbol\(test\)\]: 2, \[Symbol\(Symbol.iterator\)\]: 3 }|{ a: 1, \[Symbol\(Symbol.iterator\)\]: 3, \[Symbol\(test\)\]: 2 }), \[\] \]$/,
69
+ 'object with symbols in array (nondeterministic symbol sham key ordering)'
70
+ );
71
+ }
72
+ });
73
+
74
+ test('maxStringLength', function (t) {
75
+ t['throws'](
76
+ function () { inspect('', { maxStringLength: -1 }); },
77
+ TypeError,
78
+ 'maxStringLength must be >= 0, or Infinity, not negative'
79
+ );
80
+
81
+ var str = repeat('a', 1e8);
82
+
83
+ t.equal(
84
+ inspect([str], { maxStringLength: 10 }),
85
+ '[ \'aaaaaaaaaa\'... 99999990 more characters ]',
86
+ 'maxStringLength option limits output'
87
+ );
88
+
89
+ t.equal(
90
+ inspect(['f'], { maxStringLength: null }),
91
+ '[ \'\'... 1 more character ]',
92
+ 'maxStringLength option accepts `null`'
93
+ );
94
+
95
+ t.equal(
96
+ inspect([str], { maxStringLength: Infinity }),
97
+ '[ \'' + str + '\' ]',
98
+ 'maxStringLength option accepts ∞'
99
+ );
100
+
101
+ t.end();
102
+ });
103
+
104
+ test('inspect options', { skip: !utilInspect.custom }, function (t) {
105
+ var obj = {};
106
+ obj[utilInspect.custom] = function () {
107
+ return JSON.stringify(arguments);
108
+ };
109
+ t.equal(
110
+ inspect(obj),
111
+ utilInspect(obj, { depth: 5 }),
112
+ 'custom symbols will use node\'s inspect'
113
+ );
114
+ t.equal(
115
+ inspect(obj, { depth: 2 }),
116
+ utilInspect(obj, { depth: 2 }),
117
+ 'a reduced depth will be passed to node\'s inspect'
118
+ );
119
+ t.equal(
120
+ inspect({ d1: obj }, { depth: 3 }),
121
+ '{ d1: ' + utilInspect(obj, { depth: 2 }) + ' }',
122
+ 'deep objects will receive a reduced depth'
123
+ );
124
+ t.equal(
125
+ inspect({ d1: obj }, { depth: 1 }),
126
+ '{ d1: [Object] }',
127
+ 'unlike nodejs inspect, customInspect will not be used once the depth is exceeded.'
128
+ );
129
+ t.end();
130
+ });
131
+
132
+ test('inspect URL', { skip: typeof URL === 'undefined' }, function (t) {
133
+ t.match(
134
+ inspect(new URL('https://nodejs.org')),
135
+ /nodejs\.org/, // Different environments stringify it differently
136
+ 'url can be inspected'
137
+ );
138
+ t.end();
139
+ });
@@ -0,0 +1,12 @@
1
+ var test = require('tape');
2
+ var inspect = require('../');
3
+
4
+ var obj = { x: 'a\r\nb', y: '\x05! \x1f \x12' };
5
+
6
+ test('interpolate low bytes', function (t) {
7
+ t.plan(1);
8
+ t.equal(
9
+ inspect(obj),
10
+ "{ x: 'a\\r\\nb', y: '\\x05! \\x1F \\x12' }"
11
+ );
12
+ });
@@ -0,0 +1,58 @@
1
+ var test = require('tape');
2
+ var v = require('es-value-fixtures');
3
+ var forEach = require('for-each');
4
+
5
+ var inspect = require('../');
6
+
7
+ test('negative zero', function (t) {
8
+ t.equal(inspect(0), '0', 'inspect(0) === "0"');
9
+ t.equal(inspect(Object(0)), 'Object(0)', 'inspect(Object(0)) === "Object(0)"');
10
+
11
+ t.equal(inspect(-0), '-0', 'inspect(-0) === "-0"');
12
+ t.equal(inspect(Object(-0)), 'Object(-0)', 'inspect(Object(-0)) === "Object(-0)"');
13
+
14
+ t.end();
15
+ });
16
+
17
+ test('numericSeparator', function (t) {
18
+ forEach(v.nonBooleans, function (nonBoolean) {
19
+ t['throws'](
20
+ function () { inspect(true, { numericSeparator: nonBoolean }); },
21
+ TypeError,
22
+ inspect(nonBoolean) + ' is not a boolean'
23
+ );
24
+ });
25
+
26
+ t.test('3 digit numbers', function (st) {
27
+ var failed = false;
28
+ for (var i = -999; i < 1000; i += 1) {
29
+ var actual = inspect(i);
30
+ var actualSepNo = inspect(i, { numericSeparator: false });
31
+ var actualSepYes = inspect(i, { numericSeparator: true });
32
+ var expected = String(i);
33
+ if (actual !== expected || actualSepNo !== expected || actualSepYes !== expected) {
34
+ failed = true;
35
+ t.equal(actual, expected);
36
+ t.equal(actualSepNo, expected);
37
+ t.equal(actualSepYes, expected);
38
+ }
39
+ }
40
+
41
+ st.notOk(failed, 'all 3 digit numbers passed');
42
+
43
+ st.end();
44
+ });
45
+
46
+ t.equal(inspect(1e3), '1000', '1000');
47
+ t.equal(inspect(1e3, { numericSeparator: false }), '1000', '1000, numericSeparator false');
48
+ t.equal(inspect(1e3, { numericSeparator: true }), '1_000', '1000, numericSeparator true');
49
+ t.equal(inspect(-1e3), '-1000', '-1000');
50
+ t.equal(inspect(-1e3, { numericSeparator: false }), '-1000', '-1000, numericSeparator false');
51
+ t.equal(inspect(-1e3, { numericSeparator: true }), '-1_000', '-1000, numericSeparator true');
52
+
53
+ t.equal(inspect(1234.5678, { numericSeparator: true }), '1_234.567_8', 'fractional numbers get separators');
54
+ t.equal(inspect(1234.56789, { numericSeparator: true }), '1_234.567_89', 'fractional numbers get separators');
55
+ t.equal(inspect(1234.567891, { numericSeparator: true }), '1_234.567_891', 'fractional numbers get separators');
56
+
57
+ t.end();
58
+ });
@@ -0,0 +1,26 @@
1
+ 'use strict';
2
+
3
+ var inspect = require('../');
4
+ var test = require('tape');
5
+
6
+ test('quoteStyle option', function (t) {
7
+ t['throws'](function () { inspect(null, { quoteStyle: false }); }, 'false is not a valid value');
8
+ t['throws'](function () { inspect(null, { quoteStyle: true }); }, 'true is not a valid value');
9
+ t['throws'](function () { inspect(null, { quoteStyle: '' }); }, '"" is not a valid value');
10
+ t['throws'](function () { inspect(null, { quoteStyle: {} }); }, '{} is not a valid value');
11
+ t['throws'](function () { inspect(null, { quoteStyle: [] }); }, '[] is not a valid value');
12
+ t['throws'](function () { inspect(null, { quoteStyle: 42 }); }, '42 is not a valid value');
13
+ t['throws'](function () { inspect(null, { quoteStyle: NaN }); }, 'NaN is not a valid value');
14
+ t['throws'](function () { inspect(null, { quoteStyle: function () {} }); }, 'a function is not a valid value');
15
+
16
+ t.equal(inspect('"', { quoteStyle: 'single' }), '\'"\'', 'double quote, quoteStyle: "single"');
17
+ t.equal(inspect('"', { quoteStyle: 'double' }), '"\\""', 'double quote, quoteStyle: "double"');
18
+
19
+ t.equal(inspect('\'', { quoteStyle: 'single' }), '\'\\\'\'', 'single quote, quoteStyle: "single"');
20
+ t.equal(inspect('\'', { quoteStyle: 'double' }), '"\'"', 'single quote, quoteStyle: "double"');
21
+
22
+ t.equal(inspect('`', { quoteStyle: 'single' }), '\'`\'', 'backtick, quoteStyle: "single"');
23
+ t.equal(inspect('`', { quoteStyle: 'double' }), '"`"', 'backtick, quoteStyle: "double"');
24
+
25
+ t.end();
26
+ });
@@ -0,0 +1,40 @@
1
+ 'use strict';
2
+
3
+ var test = require('tape');
4
+ var hasToStringTag = require('has-tostringtag/shams')();
5
+
6
+ var inspect = require('../');
7
+
8
+ test('Symbol.toStringTag', { skip: !hasToStringTag }, function (t) {
9
+ t.plan(4);
10
+
11
+ var obj = { a: 1 };
12
+ t.equal(inspect(obj), '{ a: 1 }', 'object, no Symbol.toStringTag');
13
+
14
+ obj[Symbol.toStringTag] = 'foo';
15
+ t.equal(inspect(obj), '{ a: 1, [Symbol(Symbol.toStringTag)]: \'foo\' }', 'object with Symbol.toStringTag');
16
+
17
+ t.test('null objects', { skip: 'toString' in { __proto__: null } }, function (st) {
18
+ st.plan(2);
19
+
20
+ var dict = { __proto__: null, a: 1 };
21
+ st.equal(inspect(dict), '[Object: null prototype] { a: 1 }', 'null object with Symbol.toStringTag');
22
+
23
+ dict[Symbol.toStringTag] = 'Dict';
24
+ st.equal(inspect(dict), '[Dict: null prototype] { a: 1, [Symbol(Symbol.toStringTag)]: \'Dict\' }', 'null object with Symbol.toStringTag');
25
+ });
26
+
27
+ t.test('instances', function (st) {
28
+ st.plan(4);
29
+
30
+ function C() {
31
+ this.a = 1;
32
+ }
33
+ st.equal(Object.prototype.toString.call(new C()), '[object Object]', 'instance, no toStringTag, Object.prototype.toString');
34
+ st.equal(inspect(new C()), 'C { a: 1 }', 'instance, no toStringTag');
35
+
36
+ C.prototype[Symbol.toStringTag] = 'Class!';
37
+ st.equal(Object.prototype.toString.call(new C()), '[object Class!]', 'instance, with toStringTag, Object.prototype.toString');
38
+ st.equal(inspect(new C()), 'C [Class!] { a: 1 }', 'instance, with toStringTag');
39
+ });
40
+ });
@@ -0,0 +1,12 @@
1
+ var test = require('tape');
2
+ var inspect = require('../');
3
+
4
+ var obj = { a: 1, b: [3, 4, undefined, null], c: undefined, d: null };
5
+
6
+ test('undef and null', function (t) {
7
+ t.plan(1);
8
+ t.equal(
9
+ inspect(obj),
10
+ '{ a: 1, b: [ 3, 4, undefined, null ], c: undefined, d: null }'
11
+ );
12
+ });