@andersbakken/fisk 4.0.27 → 4.0.29

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.
@@ -1,26 +1,26 @@
1
1
  #!/usr/bin/env node
2
2
  'use strict';
3
3
 
4
- var require$$0 = require('fs');
4
+ var require$$1$2 = require('fs');
5
5
  var require$$1$1 = require('path');
6
6
  var require$$1 = require('module');
7
7
  var os$1 = require('os');
8
8
  var EventEmitter = require('events');
9
- var require$$0$1 = require('constants');
10
- var require$$0$2 = require('stream');
9
+ var require$$0 = require('constants');
10
+ var require$$0$1 = require('stream');
11
11
  var require$$4 = require('util');
12
12
  var assert$1 = require('assert');
13
13
  var net = require('net');
14
14
 
15
15
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
16
16
 
17
- var require$$0__default = /*#__PURE__*/_interopDefaultLegacy(require$$0);
17
+ var require$$1__default$2 = /*#__PURE__*/_interopDefaultLegacy(require$$1$2);
18
18
  var require$$1__default$1 = /*#__PURE__*/_interopDefaultLegacy(require$$1$1);
19
19
  var require$$1__default = /*#__PURE__*/_interopDefaultLegacy(require$$1);
20
20
  var os__default = /*#__PURE__*/_interopDefaultLegacy(os$1);
21
21
  var EventEmitter__default = /*#__PURE__*/_interopDefaultLegacy(EventEmitter);
22
+ var require$$0__default = /*#__PURE__*/_interopDefaultLegacy(require$$0);
22
23
  var require$$0__default$1 = /*#__PURE__*/_interopDefaultLegacy(require$$0$1);
23
- var require$$0__default$2 = /*#__PURE__*/_interopDefaultLegacy(require$$0$2);
24
24
  var require$$4__default = /*#__PURE__*/_interopDefaultLegacy(require$$4);
25
25
  var assert__default = /*#__PURE__*/_interopDefaultLegacy(assert$1);
26
26
  var net__default = /*#__PURE__*/_interopDefaultLegacy(net);
@@ -191,273 +191,269 @@ var xdgBasedir = {};
191
191
  }
192
192
  } (xdgBasedir));
193
193
 
194
- var minimist;
195
- var hasRequiredMinimist;
196
-
197
- function requireMinimist () {
198
- if (hasRequiredMinimist) return minimist;
199
- hasRequiredMinimist = 1;
200
- minimist = function (args, opts) {
201
- if (!opts) opts = {};
202
-
203
- var flags = { bools : {}, strings : {}, unknownFn: null };
204
-
205
- if (typeof opts['unknown'] === 'function') {
206
- flags.unknownFn = opts['unknown'];
207
- }
208
-
209
- if (typeof opts['boolean'] === 'boolean' && opts['boolean']) {
210
- flags.allBools = true;
211
- } else {
212
- [].concat(opts['boolean']).filter(Boolean).forEach(function (key) {
213
- flags.bools[key] = true;
214
- });
215
- }
216
-
217
- var aliases = {};
218
- Object.keys(opts.alias || {}).forEach(function (key) {
219
- aliases[key] = [].concat(opts.alias[key]);
220
- aliases[key].forEach(function (x) {
221
- aliases[x] = [key].concat(aliases[key].filter(function (y) {
222
- return x !== y;
223
- }));
224
- });
225
- });
194
+ function hasKey(obj, keys) {
195
+ var o = obj;
196
+ keys.slice(0, -1).forEach(function (key) {
197
+ o = o[key] || {};
198
+ });
226
199
 
227
- [].concat(opts.string).filter(Boolean).forEach(function (key) {
228
- flags.strings[key] = true;
229
- if (aliases[key]) {
230
- flags.strings[aliases[key]] = true;
231
- }
232
- });
233
-
234
- var defaults = opts['default'] || {};
235
-
236
- var argv = { _ : [] };
237
- Object.keys(flags.bools).forEach(function (key) {
238
- setArg(key, defaults[key] === undefined ? false : defaults[key]);
239
- });
240
-
241
- var notFlags = [];
242
-
243
- if (args.indexOf('--') !== -1) {
244
- notFlags = args.slice(args.indexOf('--')+1);
245
- args = args.slice(0, args.indexOf('--'));
246
- }
247
-
248
- function argDefined(key, arg) {
249
- return (flags.allBools && /^--[^=]+$/.test(arg)) ||
250
- flags.strings[key] || flags.bools[key] || aliases[key];
251
- }
252
-
253
- function setArg (key, val, arg) {
254
- if (arg && flags.unknownFn && !argDefined(key, arg)) {
255
- if (flags.unknownFn(arg) === false) return;
256
- }
257
-
258
- var value = !flags.strings[key] && isNumber(val)
259
- ? Number(val) : val
260
- ;
261
- setKey(argv, key.split('.'), value);
262
-
263
- (aliases[key] || []).forEach(function (x) {
264
- setKey(argv, x.split('.'), value);
265
- });
266
- }
267
-
268
- function setKey (obj, keys, value) {
269
- var o = obj;
270
- for (var i = 0; i < keys.length-1; i++) {
271
- var key = keys[i];
272
- if (isConstructorOrProto(o, key)) return;
273
- if (o[key] === undefined) o[key] = {};
274
- if (o[key] === Object.prototype || o[key] === Number.prototype
275
- || o[key] === String.prototype) o[key] = {};
276
- if (o[key] === Array.prototype) o[key] = [];
277
- o = o[key];
278
- }
279
-
280
- var key = keys[keys.length - 1];
281
- if (isConstructorOrProto(o, key)) return;
282
- if (o === Object.prototype || o === Number.prototype
283
- || o === String.prototype) o = {};
284
- if (o === Array.prototype) o = [];
285
- if (o[key] === undefined || flags.bools[key] || typeof o[key] === 'boolean') {
286
- o[key] = value;
287
- }
288
- else if (Array.isArray(o[key])) {
289
- o[key].push(value);
290
- }
291
- else {
292
- o[key] = [ o[key], value ];
293
- }
294
- }
295
-
296
- function aliasIsBoolean(key) {
297
- return aliases[key].some(function (x) {
298
- return flags.bools[x];
299
- });
300
- }
301
-
302
- for (var i = 0; i < args.length; i++) {
303
- var arg = args[i];
304
-
305
- if (/^--.+=/.test(arg)) {
306
- // Using [\s\S] instead of . because js doesn't support the
307
- // 'dotall' regex modifier. See:
308
- // http://stackoverflow.com/a/1068308/13216
309
- var m = arg.match(/^--([^=]+)=([\s\S]*)$/);
310
- var key = m[1];
311
- var value = m[2];
312
- if (flags.bools[key]) {
313
- value = value !== 'false';
314
- }
315
- setArg(key, value, arg);
316
- }
317
- else if (/^--no-.+/.test(arg)) {
318
- var key = arg.match(/^--no-(.+)/)[1];
319
- setArg(key, false, arg);
320
- }
321
- else if (/^--.+/.test(arg)) {
322
- var key = arg.match(/^--(.+)/)[1];
323
- var next = args[i + 1];
324
- if (next !== undefined && !/^-/.test(next)
325
- && !flags.bools[key]
326
- && !flags.allBools
327
- && (aliases[key] ? !aliasIsBoolean(key) : true)) {
328
- setArg(key, next, arg);
329
- i++;
330
- }
331
- else if (/^(true|false)$/.test(next)) {
332
- setArg(key, next === 'true', arg);
333
- i++;
334
- }
335
- else {
336
- setArg(key, flags.strings[key] ? '' : true, arg);
337
- }
338
- }
339
- else if (/^-[^-]+/.test(arg)) {
340
- var letters = arg.slice(1,-1).split('');
341
-
342
- var broken = false;
343
- for (var j = 0; j < letters.length; j++) {
344
- var next = arg.slice(j+2);
345
-
346
- if (next === '-') {
347
- setArg(letters[j], next, arg);
348
- continue;
349
- }
350
-
351
- if (/[A-Za-z]/.test(letters[j]) && /=/.test(next)) {
352
- setArg(letters[j], next.split('=')[1], arg);
353
- broken = true;
354
- break;
355
- }
356
-
357
- if (/[A-Za-z]/.test(letters[j])
358
- && /-?\d+(\.\d*)?(e-?\d+)?$/.test(next)) {
359
- setArg(letters[j], next, arg);
360
- broken = true;
361
- break;
362
- }
363
-
364
- if (letters[j+1] && letters[j+1].match(/\W/)) {
365
- setArg(letters[j], arg.slice(j+2), arg);
366
- broken = true;
367
- break;
368
- }
369
- else {
370
- setArg(letters[j], flags.strings[letters[j]] ? '' : true, arg);
371
- }
372
- }
373
-
374
- var key = arg.slice(-1)[0];
375
- if (!broken && key !== '-') {
376
- if (args[i+1] && !/^(-|--)[^-]/.test(args[i+1])
377
- && !flags.bools[key]
378
- && (aliases[key] ? !aliasIsBoolean(key) : true)) {
379
- setArg(key, args[i+1], arg);
380
- i++;
381
- }
382
- else if (args[i+1] && /^(true|false)$/.test(args[i+1])) {
383
- setArg(key, args[i+1] === 'true', arg);
384
- i++;
385
- }
386
- else {
387
- setArg(key, flags.strings[key] ? '' : true, arg);
388
- }
389
- }
390
- }
391
- else {
392
- if (!flags.unknownFn || flags.unknownFn(arg) !== false) {
393
- argv._.push(
394
- flags.strings['_'] || !isNumber(arg) ? arg : Number(arg)
395
- );
396
- }
397
- if (opts.stopEarly) {
398
- argv._.push.apply(argv._, args.slice(i + 1));
399
- break;
400
- }
401
- }
402
- }
403
-
404
- Object.keys(defaults).forEach(function (key) {
405
- if (!hasKey(argv, key.split('.'))) {
406
- setKey(argv, key.split('.'), defaults[key]);
407
-
408
- (aliases[key] || []).forEach(function (x) {
409
- setKey(argv, x.split('.'), defaults[key]);
410
- });
411
- }
412
- });
413
-
414
- if (opts['--']) {
415
- argv['--'] = new Array();
416
- notFlags.forEach(function(key) {
417
- argv['--'].push(key);
418
- });
419
- }
420
- else {
421
- notFlags.forEach(function(key) {
422
- argv._.push(key);
423
- });
424
- }
425
-
426
- return argv;
200
+ var key = keys[keys.length - 1];
201
+ return key in o;
202
+ }
203
+
204
+ function isNumber(x) {
205
+ if (typeof x === 'number') { return true; }
206
+ if ((/^0x[0-9a-f]+$/i).test(x)) { return true; }
207
+ return (/^[-+]?(?:\d+(?:\.\d*)?|\.\d+)(e[-+]?\d+)?$/).test(x);
208
+ }
209
+
210
+ function isConstructorOrProto(obj, key) {
211
+ return (key === 'constructor' && typeof obj[key] === 'function') || key === '__proto__';
212
+ }
213
+
214
+ var minimist = function (args, opts) {
215
+ if (!opts) { opts = {}; }
216
+
217
+ var flags = {
218
+ bools: {},
219
+ strings: {},
220
+ unknownFn: null,
427
221
  };
428
222
 
429
- function hasKey (obj, keys) {
430
- var o = obj;
431
- keys.slice(0,-1).forEach(function (key) {
432
- o = (o[key] || {});
433
- });
223
+ if (typeof opts.unknown === 'function') {
224
+ flags.unknownFn = opts.unknown;
225
+ }
434
226
 
435
- var key = keys[keys.length - 1];
436
- return key in o;
227
+ if (typeof opts.boolean === 'boolean' && opts.boolean) {
228
+ flags.allBools = true;
229
+ } else {
230
+ [].concat(opts.boolean).filter(Boolean).forEach(function (key) {
231
+ flags.bools[key] = true;
232
+ });
437
233
  }
438
234
 
439
- function isNumber (x) {
440
- if (typeof x === 'number') return true;
441
- if (/^0x[0-9a-f]+$/i.test(x)) return true;
442
- return /^[-+]?(?:\d+(?:\.\d*)?|\.\d+)(e[-+]?\d+)?$/.test(x);
235
+ var aliases = {};
236
+
237
+ function aliasIsBoolean(key) {
238
+ return aliases[key].some(function (x) {
239
+ return flags.bools[x];
240
+ });
443
241
  }
444
242
 
243
+ Object.keys(opts.alias || {}).forEach(function (key) {
244
+ aliases[key] = [].concat(opts.alias[key]);
245
+ aliases[key].forEach(function (x) {
246
+ aliases[x] = [key].concat(aliases[key].filter(function (y) {
247
+ return x !== y;
248
+ }));
249
+ });
250
+ });
445
251
 
446
- function isConstructorOrProto (obj, key) {
447
- return key === 'constructor' && typeof obj[key] === 'function' || key === '__proto__';
252
+ [].concat(opts.string).filter(Boolean).forEach(function (key) {
253
+ flags.strings[key] = true;
254
+ if (aliases[key]) {
255
+ [].concat(aliases[key]).forEach(function (k) {
256
+ flags.strings[k] = true;
257
+ });
258
+ }
259
+ });
260
+
261
+ var defaults = opts.default || {};
262
+
263
+ var argv = { _: [] };
264
+
265
+ function argDefined(key, arg) {
266
+ return (flags.allBools && (/^--[^=]+$/).test(arg))
267
+ || flags.strings[key]
268
+ || flags.bools[key]
269
+ || aliases[key];
448
270
  }
449
- return minimist;
450
- }
451
271
 
452
- /*global require,module,process*/
272
+ function setKey(obj, keys, value) {
273
+ var o = obj;
274
+ for (var i = 0; i < keys.length - 1; i++) {
275
+ var key = keys[i];
276
+ if (isConstructorOrProto(o, key)) { return; }
277
+ if (o[key] === undefined) { o[key] = {}; }
278
+ if (
279
+ o[key] === Object.prototype
280
+ || o[key] === Number.prototype
281
+ || o[key] === String.prototype
282
+ ) {
283
+ o[key] = {};
284
+ }
285
+ if (o[key] === Array.prototype) { o[key] = []; }
286
+ o = o[key];
287
+ }
288
+
289
+ var lastKey = keys[keys.length - 1];
290
+ if (isConstructorOrProto(o, lastKey)) { return; }
291
+ if (
292
+ o === Object.prototype
293
+ || o === Number.prototype
294
+ || o === String.prototype
295
+ ) {
296
+ o = {};
297
+ }
298
+ if (o === Array.prototype) { o = []; }
299
+ if (o[lastKey] === undefined || flags.bools[lastKey] || typeof o[lastKey] === 'boolean') {
300
+ o[lastKey] = value;
301
+ } else if (Array.isArray(o[lastKey])) {
302
+ o[lastKey].push(value);
303
+ } else {
304
+ o[lastKey] = [o[lastKey], value];
305
+ }
306
+ }
307
+
308
+ function setArg(key, val, arg) {
309
+ if (arg && flags.unknownFn && !argDefined(key, arg)) {
310
+ if (flags.unknownFn(arg) === false) { return; }
311
+ }
312
+
313
+ var value = !flags.strings[key] && isNumber(val)
314
+ ? Number(val)
315
+ : val;
316
+ setKey(argv, key.split('.'), value);
317
+
318
+ (aliases[key] || []).forEach(function (x) {
319
+ setKey(argv, x.split('.'), value);
320
+ });
321
+ }
322
+
323
+ Object.keys(flags.bools).forEach(function (key) {
324
+ setArg(key, defaults[key] === undefined ? false : defaults[key]);
325
+ });
326
+
327
+ var notFlags = [];
328
+
329
+ if (args.indexOf('--') !== -1) {
330
+ notFlags = args.slice(args.indexOf('--') + 1);
331
+ args = args.slice(0, args.indexOf('--'));
332
+ }
333
+
334
+ for (var i = 0; i < args.length; i++) {
335
+ var arg = args[i];
336
+ var key;
337
+ var next;
338
+
339
+ if ((/^--.+=/).test(arg)) {
340
+ // Using [\s\S] instead of . because js doesn't support the
341
+ // 'dotall' regex modifier. See:
342
+ // http://stackoverflow.com/a/1068308/13216
343
+ var m = arg.match(/^--([^=]+)=([\s\S]*)$/);
344
+ key = m[1];
345
+ var value = m[2];
346
+ if (flags.bools[key]) {
347
+ value = value !== 'false';
348
+ }
349
+ setArg(key, value, arg);
350
+ } else if ((/^--no-.+/).test(arg)) {
351
+ key = arg.match(/^--no-(.+)/)[1];
352
+ setArg(key, false, arg);
353
+ } else if ((/^--.+/).test(arg)) {
354
+ key = arg.match(/^--(.+)/)[1];
355
+ next = args[i + 1];
356
+ if (
357
+ next !== undefined
358
+ && !(/^(-|--)[^-]/).test(next)
359
+ && !flags.bools[key]
360
+ && !flags.allBools
361
+ && (aliases[key] ? !aliasIsBoolean(key) : true)
362
+ ) {
363
+ setArg(key, next, arg);
364
+ i += 1;
365
+ } else if ((/^(true|false)$/).test(next)) {
366
+ setArg(key, next === 'true', arg);
367
+ i += 1;
368
+ } else {
369
+ setArg(key, flags.strings[key] ? '' : true, arg);
370
+ }
371
+ } else if ((/^-[^-]+/).test(arg)) {
372
+ var letters = arg.slice(1, -1).split('');
373
+
374
+ var broken = false;
375
+ for (var j = 0; j < letters.length; j++) {
376
+ next = arg.slice(j + 2);
377
+
378
+ if (next === '-') {
379
+ setArg(letters[j], next, arg);
380
+ continue;
381
+ }
382
+
383
+ if ((/[A-Za-z]/).test(letters[j]) && next[0] === '=') {
384
+ setArg(letters[j], next.slice(1), arg);
385
+ broken = true;
386
+ break;
387
+ }
388
+
389
+ if (
390
+ (/[A-Za-z]/).test(letters[j])
391
+ && (/-?\d+(\.\d*)?(e-?\d+)?$/).test(next)
392
+ ) {
393
+ setArg(letters[j], next, arg);
394
+ broken = true;
395
+ break;
396
+ }
397
+
398
+ if (letters[j + 1] && letters[j + 1].match(/\W/)) {
399
+ setArg(letters[j], arg.slice(j + 2), arg);
400
+ broken = true;
401
+ break;
402
+ } else {
403
+ setArg(letters[j], flags.strings[letters[j]] ? '' : true, arg);
404
+ }
405
+ }
453
406
 
454
- const fs$k = require$$0__default["default"];
455
- const path$h = require$$1__default$1["default"];
456
- const appPath = appRootPath;
457
- const xdg = xdgBasedir;
407
+ key = arg.slice(-1)[0];
408
+ if (!broken && key !== '-') {
409
+ if (
410
+ args[i + 1]
411
+ && !(/^(-|--)[^-]/).test(args[i + 1])
412
+ && !flags.bools[key]
413
+ && (aliases[key] ? !aliasIsBoolean(key) : true)
414
+ ) {
415
+ setArg(key, args[i + 1], arg);
416
+ i += 1;
417
+ } else if (args[i + 1] && (/^(true|false)$/).test(args[i + 1])) {
418
+ setArg(key, args[i + 1] === 'true', arg);
419
+ i += 1;
420
+ } else {
421
+ setArg(key, flags.strings[key] ? '' : true, arg);
422
+ }
423
+ }
424
+ } else {
425
+ if (!flags.unknownFn || flags.unknownFn(arg) !== false) {
426
+ argv._.push(flags.strings._ || !isNumber(arg) ? arg : Number(arg));
427
+ }
428
+ if (opts.stopEarly) {
429
+ argv._.push.apply(argv._, args.slice(i + 1));
430
+ break;
431
+ }
432
+ }
433
+ }
458
434
 
459
- function split(data)
460
- {
435
+ Object.keys(defaults).forEach(function (k) {
436
+ if (!hasKey(argv, k.split('.'))) {
437
+ setKey(argv, k.split('.'), defaults[k]);
438
+
439
+ (aliases[k] || []).forEach(function (x) {
440
+ setKey(argv, x.split('.'), defaults[k]);
441
+ });
442
+ }
443
+ });
444
+
445
+ if (opts['--']) {
446
+ argv['--'] = notFlags.slice();
447
+ } else {
448
+ notFlags.forEach(function (k) {
449
+ argv._.push(k);
450
+ });
451
+ }
452
+
453
+ return argv;
454
+ };
455
+
456
+ function split(data) {
461
457
  const pre = data.split("\n");
462
458
  // rejoin with lines that starts with a whitespace
463
459
  const out = [];
@@ -476,7 +472,8 @@ function split(data)
476
472
  --idx;
477
473
  if (idx < cur.length - 1)
478
474
  cur = cur.substr(0, idx + 1);
479
- } else if (cur.length > 0) {
475
+ }
476
+ else if (cur.length > 0) {
480
477
  out.push(cur.trim());
481
478
  cur = line.trim();
482
479
  }
@@ -486,9 +483,7 @@ function split(data)
486
483
  }
487
484
  return out;
488
485
  }
489
-
490
- function realValue(v)
491
- {
486
+ function realValue(v) {
492
487
  if (typeof v !== "string")
493
488
  return v;
494
489
  if (/^[-0-9.]+$/.exec(v)) {
@@ -497,119 +492,130 @@ function realValue(v)
497
492
  return vf;
498
493
  }
499
494
  switch (v) {
500
- case "true":
501
- return true;
502
- case "false":
503
- return false;
495
+ case "true":
496
+ return true;
497
+ case "false":
498
+ return false;
504
499
  }
505
500
  return v;
506
501
  }
507
-
508
- class Options {
502
+ class Engine {
503
+ argv;
504
+ prefix;
505
+ additionalFiles;
506
+ applicationPath;
507
+ debug;
508
+ options;
509
+ configDirs;
509
510
  constructor(options, argv) {
510
511
  this.argv = Object.assign({}, argv);
511
512
  this.prefix = options.prefix;
512
513
  this.additionalFiles = options.additionalFiles || [];
513
- this.applicationPath = options.noApplicationPath ? "" : appPath.toString();
514
- this.debug = options.debug;
514
+ this.applicationPath = options.noApplicationPath ? "" : appRootPath.toString();
515
+ this.debug = options.debug ?? false;
515
516
  this.options = {};
516
- this.configDirs = this.argv["config-dir"] || options.configDirs || xdg.configDirs;
517
+ this.configDirs = this.argv["config-dir"] || options.configDirs || xdgBasedir.configDirs;
517
518
  this._read();
518
519
  }
519
-
520
520
  value(name) {
521
521
  // foo-bar becomes FOO_BAR as env
522
- if (name in this.argv)
522
+ if (name in this.argv) {
523
523
  return this.argv[name];
524
+ }
524
525
  const envname = (this.prefix + "_" + name).replace(/-/g, "_").toUpperCase();
525
- if (envname in process.env)
526
+ if (envname in process.env) {
526
527
  return realValue(process.env[envname]);
527
-
528
- if (name in this.options)
528
+ }
529
+ if (name in this.options) {
529
530
  return this.options[name];
531
+ }
530
532
  return undefined;
531
533
  }
532
-
534
+ string(name) {
535
+ const ret = this.value(name);
536
+ if (ret === undefined) {
537
+ return undefined;
538
+ }
539
+ return String(ret);
540
+ }
533
541
  _homedir() {
534
542
  let home = process.env.home;
535
543
  if (home) {
536
- return path$h.join(home, ".config");
544
+ return require$$1__default$1["default"].join(home, ".config");
537
545
  }
538
546
  return undefined;
539
547
  }
540
-
541
548
  _log(...args) {
542
549
  if (this.debug)
543
550
  console.log(...args);
544
551
  }
545
-
546
552
  _read() {
547
553
  // if we have a config file passed, read it
548
- let file = this.value("config-file");
554
+ let file = this.string("config-file");
549
555
  if (!file && this.prefix)
550
556
  file = this.prefix + ".conf";
551
557
  if (!file)
552
558
  return;
553
-
554
559
  let data = [];
555
560
  let seen = new Set();
556
- const Failed = 0;
557
- const Success = 1;
558
- const Seen = 2;
559
- const read = file => {
561
+ const read = (file) => {
560
562
  if (seen.has(file))
561
- return Seen;
563
+ return 2 /* OptionsReadResult.Seen */;
562
564
  seen.add(file);
563
565
  try {
564
- const contents = fs$k.readFileSync(file, "utf8");
566
+ const contents = require$$1__default$2["default"].readFileSync(file, "utf8");
565
567
  this._log(`Loaded ${contents.length} bytes from ${file}`);
566
-
567
568
  if (contents) {
568
- data.push({ file: file, contents: contents });
569
- return Success;
569
+ data.push({ file, contents });
570
+ return 1 /* OptionsReadResult.Success */;
570
571
  }
571
- } catch (e) {
572
+ }
573
+ catch (e) {
572
574
  this._log(`Failed to load ${file}`);
573
575
  }
574
- return Failed;
576
+ return 0 /* OptionsReadResult.Failed */;
575
577
  };
576
-
577
578
  // console.log("about to read file", file, "additionalFiles", this.additionalFiles, "configDirs", this.configDirs, "applicationPath", this.applicationPath, "homedir", this._homedir());
578
- if (path$h.isAbsolute(file)) {
579
+ if (require$$1__default$1["default"].isAbsolute(file)) {
579
580
  read(file);
580
- } else {
581
+ }
582
+ else {
581
583
  this.additionalFiles.forEach(file => {
582
- if (path$h.isAbsolute(file) && read(file) == Failed)
584
+ if (require$$1__default$1["default"].isAbsolute(file) && read(file) == 0 /* OptionsReadResult.Failed */) {
583
585
  read(file + ".conf");
586
+ }
584
587
  });
585
588
  ([this.applicationPath, this._homedir()].concat(this.configDirs)).forEach(root => {
586
589
  // in case we appended with undefined
587
- if (!root)
590
+ if (!root) {
588
591
  return;
592
+ }
589
593
  this.additionalFiles.forEach(additional => {
590
- if (!path$h.isAbsolute(additional)) {
591
- let file = path$h.join(root, additional);
592
- if (read(file) == Failed)
594
+ if (!require$$1__default$1["default"].isAbsolute(additional)) {
595
+ let file = require$$1__default$1["default"].join(root, additional);
596
+ if (read(file) == 0 /* OptionsReadResult.Failed */)
593
597
  read(file + ".conf");
594
598
  }
595
599
  });
596
-
597
- let filePath = path$h.join(root, file);
598
- if (read(filePath) == Failed)
600
+ let filePath = require$$1__default$1["default"].join(root, file);
601
+ if (read(filePath) == 0 /* OptionsReadResult.Failed */) {
599
602
  read(filePath + ".conf");
603
+ }
600
604
  });
601
605
  }
602
606
  for (let i = data.length - 1; i >= 0; --i) {
603
607
  let str = data[i].contents;
604
- if (!str)
608
+ if (!str) {
605
609
  continue;
610
+ }
606
611
  try {
607
612
  let obj = JSON.parse(str);
608
613
  for (let key in obj) {
609
614
  this._log(`Assigning ${JSON.stringify(obj[key])} over ${JSON.stringify(this.options[key])} for ${key} from ${data[i].file} (JSON)`);
610
615
  this.options[key] = obj[key];
611
616
  }
612
- } catch (err) {
617
+ }
618
+ catch (err) {
613
619
  const items = split(str);
614
620
  for (let j = 0; j < items.length; ++j) {
615
621
  const item = items[j].trim();
@@ -622,12 +628,12 @@ class Options {
622
628
  this._log("Couldn't find =", item);
623
629
  continue;
624
630
  }
625
- const key = item.substr(0, eq).trim();
631
+ const key = item.substring(0, eq).trim();
626
632
  if (!key.length) {
627
633
  this._log("empty key", item);
628
634
  continue;
629
635
  }
630
- const value = item.substr(eq + 1).trim();
636
+ const value = item.substring(eq + 1).trim();
631
637
  this._log(`Assigning ${value} over ${this.options[key]} for ${key} from ${data[i].file} (INI)`);
632
638
  this.options[key] = value;
633
639
  }
@@ -635,37 +641,34 @@ class Options {
635
641
  }
636
642
  }
637
643
  }
638
-
639
- const data = {};
640
-
641
- var options = function(options, argv) {
642
- if (!argv)
643
- argv = requireMinimist()(process.argv.slice(2));
644
- if (!(options instanceof Object))
645
- options = { prefix: options || "" };
646
-
647
- data.options = new Options(options, argv);
648
- let ret = function(name, defaultValue) {
649
- const val = data.options.value(name);
650
- if (typeof val === "undefined")
644
+ function options (optionsOptions, argv) {
645
+ if (!argv) {
646
+ argv = minimist(process.argv.slice(2));
647
+ }
648
+ if (!(optionsOptions instanceof Object)) {
649
+ optionsOptions = { prefix: optionsOptions || "" };
650
+ }
651
+ const engine = new Engine(optionsOptions, argv);
652
+ function value(name, defaultValue) {
653
+ const val = engine.value(name);
654
+ if (val === undefined)
651
655
  return defaultValue;
652
656
  return val;
653
- };
654
- ret.prefix = options.prefix;
655
- ret.int = function(name, defaultValue) {
656
- const v = parseInt(data.options.value(name));
657
+ }
658
+ function float(name, defaultValue) {
659
+ const v = parseFloat(engine.string(name) || "");
657
660
  if (typeof v === "number" && !isNaN(v))
658
661
  return v;
659
662
  return defaultValue;
660
- };
661
- ret.float = function(name, defaultValue) {
662
- const v = parseFloat(data.options.value(name));
663
+ }
664
+ function int(name, defaultValue) {
665
+ const v = parseInt(engine.string(name) || "");
663
666
  if (typeof v === "number" && !isNaN(v))
664
667
  return v;
665
668
  return defaultValue;
666
- };
667
- ret.json = function(name, defaultValue) {
668
- const opt = data.options.value(name);
669
+ }
670
+ function json(name, defaultValue) {
671
+ const opt = engine.value(name);
669
672
  if (opt === undefined)
670
673
  return defaultValue;
671
674
  if (typeof opt !== "string")
@@ -673,12 +676,22 @@ var options = function(options, argv) {
673
676
  try {
674
677
  const json = JSON.parse(opt);
675
678
  return json;
676
- } catch (e) {
679
+ }
680
+ catch (e) {
677
681
  }
678
682
  return defaultValue;
679
- };
680
- return ret;
681
- };
683
+ }
684
+ function string(name, defaultValue) {
685
+ return engine.string(name) ?? defaultValue;
686
+ }
687
+ return Object.assign(value, {
688
+ prefix: optionsOptions.prefix,
689
+ float,
690
+ int,
691
+ json,
692
+ string,
693
+ });
694
+ }
682
695
 
683
696
  const Constants = {
684
697
  // client codes
@@ -714,6 +727,9 @@ class ClientBuffer {
714
727
  this.buffers = [];
715
728
  this.offset = 0;
716
729
  }
730
+ get available() {
731
+ return this.buffers.reduce((total, buf) => total + buf.length, 0) - this.offset;
732
+ }
717
733
  write(buffer) {
718
734
  this.buffers.push(buffer);
719
735
  // console.log("write", buffer.length, this.buffers.length, this.available);
@@ -768,17 +784,14 @@ class ClientBuffer {
768
784
  }
769
785
  return ret;
770
786
  }
771
- get available() {
772
- return this.buffers.reduce((total, buf) => total + buf.length, 0) - this.offset;
773
- }
774
787
  }
775
788
 
776
789
  class Compile extends EventEmitter__default["default"] {
777
- constructor(conn, id, option) {
790
+ constructor(connection, id, option) {
778
791
  super();
779
- this.debug = option("debug");
792
+ this.connection = connection;
780
793
  this.id = id;
781
- this.connection = conn;
794
+ this.debug = option("debug");
782
795
  this.buffer = new ClientBuffer();
783
796
  this.messageLength = 0;
784
797
  this.pid = undefined;
@@ -934,7 +947,7 @@ universalify.fromPromise = function (fn) {
934
947
  }, 'name', { value: fn.name })
935
948
  };
936
949
 
937
- var constants = require$$0__default$1["default"];
950
+ var constants = require$$0__default["default"];
938
951
 
939
952
  var origCwd = process.cwd;
940
953
  var cwd = null;
@@ -1290,7 +1303,7 @@ function patch$1 (fs) {
1290
1303
  }
1291
1304
  }
1292
1305
 
1293
- var Stream = require$$0__default$2["default"].Stream;
1306
+ var Stream = require$$0__default$1["default"].Stream;
1294
1307
 
1295
1308
  var legacyStreams = legacy$1;
1296
1309
 
@@ -1431,7 +1444,7 @@ function clone$1 (obj) {
1431
1444
  return copy
1432
1445
  }
1433
1446
 
1434
- var fs$i = require$$0__default["default"];
1447
+ var fs$i = require$$1__default$2["default"];
1435
1448
  var polyfills = polyfills$1;
1436
1449
  var legacy = legacyStreams;
1437
1450
  var clone = clone_1;
@@ -3064,7 +3077,7 @@ var remove$2 = {
3064
3077
  };
3065
3078
 
3066
3079
  const u$7 = universalify.fromCallback;
3067
- const fs$a = require$$0__default["default"];
3080
+ const fs$a = require$$1__default$2["default"];
3068
3081
  const path$9 = require$$1__default$1["default"];
3069
3082
  const mkdir$5 = mkdirs_1;
3070
3083
  const remove$1 = remove$2;
@@ -3434,7 +3447,7 @@ var _fs;
3434
3447
  try {
3435
3448
  _fs = gracefulFs;
3436
3449
  } catch (_) {
3437
- _fs = require$$0__default["default"];
3450
+ _fs = require$$1__default$2["default"];
3438
3451
  }
3439
3452
 
3440
3453
  function readFile (file, options, callback) {
@@ -3892,7 +3905,7 @@ var output = {
3892
3905
 
3893
3906
  // Export fs.promises as a getter property so that we don't trigger
3894
3907
  // ExperimentalWarning before fs.promises is actually accessed.
3895
- const fs = require$$0__default["default"];
3908
+ const fs = require$$1__default$2["default"];
3896
3909
  if (Object.getOwnPropertyDescriptor(fs, 'promises')) {
3897
3910
  Object.defineProperty(module.exports, 'promises', {
3898
3911
  get () { return fs.promises }
@@ -3905,6 +3918,7 @@ var fs = libExports;
3905
3918
  class Server extends EventEmitter__default["default"] {
3906
3919
  constructor(option, common) {
3907
3920
  super();
3921
+ this.option = option;
3908
3922
  this.debug = option("debug");
3909
3923
  this.file = option("socket", require$$1__default$1["default"].join(common.cacheDir(), "socket"));
3910
3924
  this.server = undefined;
@@ -3979,8 +3993,8 @@ class Slots extends EventEmitter__default["default"] {
3979
3993
  super();
3980
3994
  this.count = count;
3981
3995
  this.name = name;
3982
- this.used = new Map();
3983
3996
  this.debug = debug;
3997
+ this.used = new Map();
3984
3998
  this.pending = new Map();
3985
3999
  if (this.debug) {
3986
4000
  console.log("Slots created", this.toString());