@atlaspack/utils 2.17.3 → 2.17.4-typescript-17c3d1dec.0

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 (113) hide show
  1. package/LICENSE +201 -0
  2. package/lib/DefaultMap.d.ts +13 -0
  3. package/lib/DefaultMap.js +0 -4
  4. package/lib/Deferred.d.ts +8 -0
  5. package/lib/PromiseQueue.d.ts +25 -0
  6. package/lib/TapStream.d.ts +6 -0
  7. package/lib/alternatives.d.ts +3 -0
  8. package/lib/ansi-html.d.ts +1 -0
  9. package/lib/ansi-html.js +2 -0
  10. package/lib/blob.d.ts +4 -0
  11. package/lib/bundle-url.d.ts +4 -0
  12. package/lib/collection.d.ts +33 -0
  13. package/lib/config.d.ts +17 -0
  14. package/lib/config.js +3 -1
  15. package/lib/countLines.d.ts +1 -0
  16. package/lib/debounce.d.ts +1 -0
  17. package/lib/debug-tools.d.ts +6 -0
  18. package/lib/debug-tools.js +1 -0
  19. package/lib/dependency-location.d.ts +14 -0
  20. package/lib/escape-html.d.ts +1 -0
  21. package/lib/generateBuildMetrics.d.ts +18 -0
  22. package/lib/generateCertificate.d.ts +5 -0
  23. package/lib/getCertificate.d.ts +6 -0
  24. package/lib/getExisting.d.ts +8 -0
  25. package/lib/getModuleParts.d.ts +4 -0
  26. package/lib/getRootDir.d.ts +2 -0
  27. package/lib/glob.d.ts +10 -0
  28. package/lib/glob.js +12 -4
  29. package/lib/hash.d.ts +7 -0
  30. package/lib/http-server.d.ts +19 -0
  31. package/lib/index.d.ts +48 -0
  32. package/lib/index.js +164 -9
  33. package/lib/is-url.d.ts +1 -0
  34. package/lib/is-url.js +2 -0
  35. package/lib/isDirectoryInside.d.ts +2 -0
  36. package/lib/objectHash.d.ts +3 -0
  37. package/lib/objectHash.js +0 -1
  38. package/lib/openInBrowser.d.ts +1 -0
  39. package/lib/parseCSSImport.d.ts +1 -0
  40. package/lib/path.d.ts +8 -0
  41. package/lib/prettifyTime.d.ts +1 -0
  42. package/lib/prettyDiagnostic.d.ts +17 -0
  43. package/lib/prettyDiagnostic.js +3 -5
  44. package/lib/progress-message.d.ts +3 -0
  45. package/lib/relativeBundlePath.d.ts +4 -0
  46. package/lib/relativeUrl.d.ts +1 -0
  47. package/lib/replaceBundleReferences.d.ts +39 -0
  48. package/lib/schema.d.ts +107 -0
  49. package/lib/schema.js +38 -19
  50. package/lib/shared-buffer.d.ts +2 -0
  51. package/lib/shared-buffer.js +5 -1
  52. package/lib/sourcemap.d.ts +16 -0
  53. package/lib/stream.d.ts +8 -0
  54. package/lib/throttle.d.ts +1 -0
  55. package/lib/urlJoin.d.ts +5 -0
  56. package/lib/urlJoin.js +1 -1
  57. package/package.json +22 -15
  58. package/src/{DefaultMap.js → DefaultMap.ts} +8 -12
  59. package/src/Deferred.ts +26 -0
  60. package/src/{PromiseQueue.js → PromiseQueue.ts} +40 -35
  61. package/src/{TapStream.js → TapStream.ts} +8 -7
  62. package/src/{alternatives.js → alternatives.ts} +14 -15
  63. package/src/{ansi-html.js → ansi-html.ts} +1 -1
  64. package/src/{blob.js → blob.ts} +2 -4
  65. package/src/{bundle-url.js → bundle-url.ts} +3 -5
  66. package/src/{collection.js → collection.ts} +14 -21
  67. package/src/{config.js → config.ts} +18 -19
  68. package/src/{countLines.js → countLines.ts} +0 -2
  69. package/src/{debounce.js → debounce.ts} +3 -5
  70. package/src/{debug-tools.js → debug-tools.ts} +6 -8
  71. package/src/{dependency-location.js → dependency-location.ts} +15 -11
  72. package/src/{escape-html.js → escape-html.ts} +5 -3
  73. package/src/{generateBuildMetrics.js → generateBuildMetrics.ts} +16 -18
  74. package/src/{generateCertificate.js → generateCertificate.ts} +7 -5
  75. package/src/{getCertificate.js → getCertificate.ts} +5 -3
  76. package/src/{getExisting.js → getExisting.ts} +4 -3
  77. package/src/{getModuleParts.js → getModuleParts.ts} +3 -2
  78. package/src/{getRootDir.js → getRootDir.ts} +0 -2
  79. package/src/{glob.js → glob.ts} +14 -10
  80. package/src/{hash.js → hash.ts} +22 -17
  81. package/src/{http-server.js → http-server.ts} +32 -38
  82. package/src/{index.js → index.ts} +7 -8
  83. package/src/{is-url.js → is-url.ts} +1 -2
  84. package/src/{isDirectoryInside.js → isDirectoryInside.ts} +0 -1
  85. package/src/{objectHash.js → objectHash.ts} +1 -4
  86. package/src/{openInBrowser.js → openInBrowser.ts} +2 -4
  87. package/src/{parseCSSImport.js → parseCSSImport.ts} +0 -2
  88. package/src/{path.js → path.ts} +1 -3
  89. package/src/{prettifyTime.js → prettifyTime.ts} +0 -2
  90. package/src/{prettyDiagnostic.js → prettyDiagnostic.ts} +22 -20
  91. package/src/{progress-message.js → progress-message.ts} +3 -2
  92. package/src/{relativeBundlePath.js → relativeBundlePath.ts} +3 -3
  93. package/src/{relativeUrl.js → relativeUrl.ts} +0 -1
  94. package/src/{replaceBundleReferences.js → replaceBundleReferences.ts} +54 -36
  95. package/src/{schema.js → schema.ts} +158 -141
  96. package/src/{shared-buffer.js → shared-buffer.ts} +5 -3
  97. package/src/{sourcemap.js → sourcemap.ts} +16 -6
  98. package/src/{stream.js → stream.ts} +29 -21
  99. package/src/throttle.ts +13 -0
  100. package/src/{urlJoin.js → urlJoin.ts} +1 -3
  101. package/test/{DefaultMap.test.js → DefaultMap.test.ts} +4 -6
  102. package/test/{PromiseQueue.test.js → PromiseQueue.test.ts} +5 -6
  103. package/test/{collection.test.js → collection.test.ts} +0 -2
  104. package/test/{config.test.js → config.test.ts} +0 -3
  105. package/test/{objectHash.test.js → objectHash.test.ts} +4 -5
  106. package/test/{prettifyTime.test.js → prettifyTime.test.ts} +0 -1
  107. package/test/{replaceBundleReferences.test.js → replaceBundleReferences.test.ts} +0 -32
  108. package/test/{sourcemap.test.js → sourcemap.test.ts} +0 -1
  109. package/test/{throttle.test.js → throttle.test.ts} +1 -3
  110. package/test/{urlJoin.test.js → urlJoin.test.ts} +0 -2
  111. package/tsconfig.json +4 -0
  112. package/src/Deferred.js +0 -23
  113. package/src/throttle.js +0 -15
package/lib/index.js CHANGED
@@ -3,6 +3,84 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ var _exportNames = {
7
+ resolveConfig: true,
8
+ resolveConfigSync: true,
9
+ loadConfig: true,
10
+ readConfig: true,
11
+ makeDeferredWithPromise: true,
12
+ generateBuildMetrics: true,
13
+ createHTTPServer: true,
14
+ normalizePath: true,
15
+ normalizeSeparators: true,
16
+ relativePath: true,
17
+ prettyDiagnostic: true,
18
+ validateSchema: true,
19
+ fuzzySearch: true,
20
+ countLines: true,
21
+ generateCertificate: true,
22
+ getCertificate: true,
23
+ getModuleParts: true,
24
+ getRootDir: true,
25
+ isDirectoryInside: true,
26
+ isURL: true,
27
+ objectHash: true,
28
+ prettifyTime: true,
29
+ PromiseQueue: true,
30
+ TapStream: true,
31
+ urlJoin: true,
32
+ relativeUrl: true,
33
+ createDependencyLocation: true,
34
+ debounce: true,
35
+ throttle: true,
36
+ openInBrowser: true,
37
+ findAlternativeNodeModules: true,
38
+ findAlternativeFiles: true,
39
+ blobToBuffer: true,
40
+ blobToString: true,
41
+ unique: true,
42
+ objectSortedEntries: true,
43
+ objectSortedEntriesDeep: true,
44
+ setDifference: true,
45
+ setSymmetricDifference: true,
46
+ setEqual: true,
47
+ setIntersect: true,
48
+ setIntersectStatic: true,
49
+ setUnion: true,
50
+ debugTools: true,
51
+ DefaultMap: true,
52
+ DefaultWeakMap: true,
53
+ getProgressMessage: true,
54
+ getPackageProgressMessage: true,
55
+ isGlob: true,
56
+ isGlobMatch: true,
57
+ globMatch: true,
58
+ globSync: true,
59
+ glob: true,
60
+ globToRegex: true,
61
+ hashStream: true,
62
+ hashObject: true,
63
+ hashFile: true,
64
+ SharedBuffer: true,
65
+ replaceURLReferences: true,
66
+ replaceInlineReferences: true,
67
+ measureStreamLength: true,
68
+ readableFromStringOrBuffer: true,
69
+ bufferStream: true,
70
+ blobToStream: true,
71
+ streamFromPromise: true,
72
+ fallbackStream: true,
73
+ relativeBundlePath: true,
74
+ ansiHtml: true,
75
+ escapeHTML: true,
76
+ SOURCEMAP_RE: true,
77
+ SOURCEMAP_EXTENSIONS: true,
78
+ matchSourceMappingURL: true,
79
+ loadSourceMapUrl: true,
80
+ loadSourceMap: true,
81
+ remapSourceLocation: true,
82
+ stripAnsi: true
83
+ };
6
84
  Object.defineProperty(exports, "DefaultMap", {
7
85
  enumerable: true,
8
86
  get: function () {
@@ -459,8 +537,91 @@ Object.defineProperty(exports, "validateSchema", {
459
537
  return _schema.default;
460
538
  }
461
539
  });
540
+ var _config = require("./config");
541
+ Object.keys(_config).forEach(function (key) {
542
+ if (key === "default" || key === "__esModule") return;
543
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
544
+ if (key in exports && exports[key] === _config[key]) return;
545
+ Object.defineProperty(exports, key, {
546
+ enumerable: true,
547
+ get: function () {
548
+ return _config[key];
549
+ }
550
+ });
551
+ });
552
+ var _Deferred = require("./Deferred");
553
+ Object.keys(_Deferred).forEach(function (key) {
554
+ if (key === "default" || key === "__esModule") return;
555
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
556
+ if (key in exports && exports[key] === _Deferred[key]) return;
557
+ Object.defineProperty(exports, key, {
558
+ enumerable: true,
559
+ get: function () {
560
+ return _Deferred[key];
561
+ }
562
+ });
563
+ });
564
+ var _generateBuildMetrics = _interopRequireWildcard(require("./generateBuildMetrics"));
565
+ Object.keys(_generateBuildMetrics).forEach(function (key) {
566
+ if (key === "default" || key === "__esModule") return;
567
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
568
+ if (key in exports && exports[key] === _generateBuildMetrics[key]) return;
569
+ Object.defineProperty(exports, key, {
570
+ enumerable: true,
571
+ get: function () {
572
+ return _generateBuildMetrics[key];
573
+ }
574
+ });
575
+ });
576
+ var _httpServer = require("./http-server");
577
+ Object.keys(_httpServer).forEach(function (key) {
578
+ if (key === "default" || key === "__esModule") return;
579
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
580
+ if (key in exports && exports[key] === _httpServer[key]) return;
581
+ Object.defineProperty(exports, key, {
582
+ enumerable: true,
583
+ get: function () {
584
+ return _httpServer[key];
585
+ }
586
+ });
587
+ });
588
+ var _path = require("./path");
589
+ Object.keys(_path).forEach(function (key) {
590
+ if (key === "default" || key === "__esModule") return;
591
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
592
+ if (key in exports && exports[key] === _path[key]) return;
593
+ Object.defineProperty(exports, key, {
594
+ enumerable: true,
595
+ get: function () {
596
+ return _path[key];
597
+ }
598
+ });
599
+ });
600
+ var _prettyDiagnostic = _interopRequireWildcard(require("./prettyDiagnostic"));
601
+ Object.keys(_prettyDiagnostic).forEach(function (key) {
602
+ if (key === "default" || key === "__esModule") return;
603
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
604
+ if (key in exports && exports[key] === _prettyDiagnostic[key]) return;
605
+ Object.defineProperty(exports, key, {
606
+ enumerable: true,
607
+ get: function () {
608
+ return _prettyDiagnostic[key];
609
+ }
610
+ });
611
+ });
612
+ var _schema = _interopRequireWildcard(require("./schema"));
613
+ Object.keys(_schema).forEach(function (key) {
614
+ if (key === "default" || key === "__esModule") return;
615
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
616
+ if (key in exports && exports[key] === _schema[key]) return;
617
+ Object.defineProperty(exports, key, {
618
+ enumerable: true,
619
+ get: function () {
620
+ return _schema[key];
621
+ }
622
+ });
623
+ });
462
624
  var _countLines = _interopRequireDefault(require("./countLines"));
463
- var _generateBuildMetrics = _interopRequireDefault(require("./generateBuildMetrics"));
464
625
  var _generateCertificate = _interopRequireDefault(require("./generateCertificate"));
465
626
  var _getCertificate = _interopRequireDefault(require("./getCertificate"));
466
627
  var _getModuleParts = _interopRequireDefault(require("./getModuleParts"));
@@ -469,9 +630,7 @@ var _isDirectoryInside = _interopRequireDefault(require("./isDirectoryInside"));
469
630
  var _isUrl = _interopRequireDefault(require("./is-url"));
470
631
  var _objectHash = _interopRequireDefault(require("./objectHash"));
471
632
  var _prettifyTime = _interopRequireDefault(require("./prettifyTime"));
472
- var _prettyDiagnostic = _interopRequireDefault(require("./prettyDiagnostic"));
473
633
  var _PromiseQueue = _interopRequireDefault(require("./PromiseQueue"));
474
- var _schema = _interopRequireWildcard(require("./schema"));
475
634
  var _TapStream = _interopRequireDefault(require("./TapStream"));
476
635
  var _urlJoin = _interopRequireDefault(require("./urlJoin"));
477
636
  var _relativeUrl = _interopRequireDefault(require("./relativeUrl"));
@@ -482,16 +641,12 @@ var _openInBrowser = _interopRequireDefault(require("./openInBrowser"));
482
641
  var _alternatives = require("./alternatives");
483
642
  var _blob = require("./blob");
484
643
  var _collection = require("./collection");
485
- var _config = require("./config");
486
644
  var _debugTools = require("./debug-tools");
487
645
  var _DefaultMap = require("./DefaultMap");
488
- var _Deferred = require("./Deferred");
489
646
  var _progressMessage = require("./progress-message");
490
647
  var _glob = require("./glob");
491
648
  var _hash = require("./hash");
492
649
  var _sharedBuffer = require("./shared-buffer");
493
- var _httpServer = require("./http-server");
494
- var _path = require("./path");
495
650
  var _replaceBundleReferences = require("./replaceBundleReferences");
496
651
  var _stream = require("./stream");
497
652
  var _relativeBundlePath = require("./relativeBundlePath");
@@ -505,6 +660,6 @@ function _stripAnsi() {
505
660
  };
506
661
  return data;
507
662
  }
663
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
508
664
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
509
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
510
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
665
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
@@ -0,0 +1 @@
1
+ export default function isURL(url: string): boolean;
package/lib/is-url.js CHANGED
@@ -12,6 +12,8 @@ function _isUrl() {
12
12
  return data;
13
13
  }
14
14
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
+ // @ts-expect-error TS7016
16
+
15
17
  // Matches anchor (ie: #raptors)
16
18
  const ANCHOR_REGEXP = /^#/;
17
19
 
@@ -0,0 +1,2 @@
1
+ import type { FilePath } from '@atlaspack/types';
2
+ export default function isDirectoryInside(child: FilePath, parent: FilePath): boolean;
@@ -0,0 +1,3 @@
1
+ type Hashable = any;
2
+ export default function objectHash(object: Hashable): string;
3
+ export {};
package/lib/objectHash.js CHANGED
@@ -12,7 +12,6 @@ function _crypto() {
12
12
  return data;
13
13
  }
14
14
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
- // $FlowFixMe
16
15
  function objectHash(object) {
17
16
  let hash = _crypto().default.createHash('md5');
18
17
  for (let key of Object.keys(object).sort()) {
@@ -0,0 +1 @@
1
+ export default function openInBrowser(url: string, browser: string): Promise<void>;
@@ -0,0 +1 @@
1
+ export default function parseCSSImport(url: string): string;
package/lib/path.d.ts ADDED
@@ -0,0 +1,8 @@
1
+ import type { FilePath } from '@atlaspack/types';
2
+ export declare function isAbsolute(filepath: string): boolean;
3
+ export declare function normalizeSeparators(filePath: FilePath): FilePath;
4
+ export type PathOptions = {
5
+ noLeadingDotSlash?: boolean;
6
+ };
7
+ export declare function normalizePath(filePath: FilePath, leadingDotSlash?: boolean): FilePath;
8
+ export declare function relativePath(from: string, to: string, leadingDotSlash?: boolean): FilePath;
@@ -0,0 +1 @@
1
+ export default function prettifyTime(timeInMs: number): string;
@@ -0,0 +1,17 @@
1
+ import type { Diagnostic } from '@atlaspack/diagnostic';
2
+ import type { PluginOptions } from '@atlaspack/types';
3
+ export type FormattedCodeFrame = {
4
+ location: string;
5
+ code: string;
6
+ };
7
+ export type AnsiDiagnosticResult = {
8
+ message: string;
9
+ stack: string;
10
+ /** A formatted string containing all code frames, including their file locations. */
11
+ codeframe: string;
12
+ /** A list of code frames with highlighted code and file locations separately. */
13
+ frames: Array<FormattedCodeFrame>;
14
+ hints: Array<string>;
15
+ documentation: string;
16
+ };
17
+ export default function prettyDiagnostic(diagnostic: Diagnostic, options?: PluginOptions, terminalWidth?: number, format?: 'ansi' | 'html'): Promise<AnsiDiagnosticResult>;
@@ -47,10 +47,10 @@ function _snarkdown() {
47
47
  return data;
48
48
  }
49
49
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
50
- // $FlowFixMe
51
50
  /* eslint-disable import/no-extraneous-dependencies */
52
- // $FlowFixMe
51
+
53
52
  /* eslint-enable import/no-extraneous-dependencies */
53
+
54
54
  async function prettyDiagnostic(diagnostic, options, terminalWidth, format = 'ansi') {
55
55
  let {
56
56
  origin,
@@ -94,9 +94,7 @@ async function prettyDiagnostic(diagnostic, options, terminalWidth, format = 'an
94
94
  formattedCodeFrame = (0, _codeframe().default)(code, highlights, {
95
95
  useColor: true,
96
96
  syntaxHighlighting: true,
97
- language:
98
- // $FlowFixMe sketchy null checks do not matter here...
99
- codeFrame.language || (filePath != null ? _path().default.extname(filePath).substr(1) : undefined),
97
+ language: codeFrame.language || (filePath != null ? _path().default.extname(filePath).substr(1) : undefined),
100
98
  terminalWidth
101
99
  });
102
100
  }
@@ -0,0 +1,3 @@
1
+ import type { BuildProgressEvent } from '@atlaspack/types';
2
+ export declare function getProgressMessage(event: BuildProgressEvent): string | null | undefined;
3
+ export declare function getPackageProgressMessage(completeBundles: number, totalBundles: number): string;
@@ -0,0 +1,4 @@
1
+ import type { FilePath, NamedBundle } from '@atlaspack/types';
2
+ export declare function relativeBundlePath(from: NamedBundle, to: NamedBundle, opts?: {
3
+ leadingDotSlash: boolean;
4
+ }): FilePath;
@@ -0,0 +1 @@
1
+ export default function relativeUrl(from: string, to: string): string;
@@ -0,0 +1,39 @@
1
+ import type SourceMap from '@parcel/source-map';
2
+ import type { Async, Blob, Bundle, BundleGraph, Dependency, NamedBundle } from '@atlaspack/types';
3
+ export declare function replaceURLReferences({ bundle, bundleGraph, contents, map, getReplacement, relative, }: {
4
+ bundle: NamedBundle;
5
+ bundleGraph: BundleGraph<NamedBundle>;
6
+ contents: string;
7
+ relative?: boolean;
8
+ map?: SourceMap | null | undefined;
9
+ getReplacement?: (arg1: string) => string;
10
+ }): {
11
+ readonly contents: string;
12
+ readonly map: SourceMap | null | undefined;
13
+ };
14
+ export declare function replaceInlineReferences({ bundle, bundleGraph, contents, map, getInlineReplacement, getInlineBundleContents, }: {
15
+ bundle: Bundle;
16
+ bundleGraph: BundleGraph<NamedBundle>;
17
+ contents: string;
18
+ getInlineReplacement: (arg1: Dependency, arg2: 'string' | null | undefined, arg3: string) => {
19
+ from: string;
20
+ to: string;
21
+ };
22
+ getInlineBundleContents: (arg1: Bundle, arg2: BundleGraph<NamedBundle>) => Async<{
23
+ contents: Blob;
24
+ }>;
25
+ map?: SourceMap | null | undefined;
26
+ }): Promise<{
27
+ readonly contents: string;
28
+ readonly map: SourceMap | null | undefined;
29
+ }>;
30
+ export declare function getURLReplacement({ dependency, fromBundle, toBundle, relative, getReplacement, }: {
31
+ dependency: Dependency;
32
+ fromBundle: NamedBundle;
33
+ toBundle: NamedBundle;
34
+ relative: boolean;
35
+ getReplacement?: (arg1: string) => string;
36
+ }): {
37
+ from: string;
38
+ to: string;
39
+ };
@@ -0,0 +1,107 @@
1
+ import type { Mapping } from '@mischnic/json-sourcemap';
2
+ export type SchemaEntity = SchemaObject | SchemaArray | SchemaBoolean | SchemaString | SchemaNumber | SchemaEnum | SchemaOneOf | SchemaAllOf | SchemaNot | SchemaAny;
3
+ export type SchemaArray = {
4
+ type: 'array';
5
+ items?: SchemaEntity;
6
+ __type?: string;
7
+ };
8
+ export type SchemaBoolean = {
9
+ type: 'boolean';
10
+ __type?: string;
11
+ };
12
+ export type SchemaOneOf = {
13
+ oneOf: Array<SchemaEntity>;
14
+ };
15
+ export type SchemaAllOf = {
16
+ allOf: Array<SchemaEntity>;
17
+ };
18
+ export type SchemaNot = {
19
+ not: SchemaEntity;
20
+ __message: string;
21
+ };
22
+ export type SchemaString = {
23
+ type: 'string';
24
+ enum?: Array<string>;
25
+ __validate?: (val: string) => string | null | undefined;
26
+ __type?: string;
27
+ };
28
+ export type SchemaNumber = {
29
+ type: 'number';
30
+ enum?: Array<number>;
31
+ __type?: string;
32
+ };
33
+ export type SchemaEnum = {
34
+ enum: Array<unknown>;
35
+ };
36
+ export type SchemaObject = {
37
+ type: 'object';
38
+ properties: {
39
+ [key: string]: SchemaEntity;
40
+ };
41
+ additionalProperties?: boolean | SchemaEntity;
42
+ required?: Array<string>;
43
+ __forbiddenProperties?: Array<string>;
44
+ __type?: string;
45
+ };
46
+ export type SchemaAny = Record<any, any>;
47
+ export type SchemaError = {
48
+ type: 'type';
49
+ expectedTypes: Array<string>;
50
+ dataType: 'key' | null | undefined | 'value';
51
+ dataPath: string;
52
+ ancestors: Array<SchemaEntity>;
53
+ prettyType?: string;
54
+ } | {
55
+ type: 'enum';
56
+ expectedValues: Array<unknown>;
57
+ dataType: 'key' | 'value';
58
+ actualValue: unknown;
59
+ dataPath: string;
60
+ ancestors: Array<SchemaEntity>;
61
+ prettyType?: string;
62
+ } | {
63
+ type: 'forbidden-prop';
64
+ prop: string;
65
+ expectedProps: Array<string>;
66
+ actualProps: Array<string>;
67
+ dataType: 'key';
68
+ dataPath: string;
69
+ ancestors: Array<SchemaEntity>;
70
+ prettyType?: string;
71
+ } | {
72
+ type: 'missing-prop';
73
+ prop: string;
74
+ expectedProps: Array<string>;
75
+ actualProps: Array<string>;
76
+ dataType: 'key' | 'value';
77
+ dataPath: string;
78
+ ancestors: Array<SchemaEntity>;
79
+ prettyType?: string;
80
+ } | {
81
+ type: 'other';
82
+ actualValue: unknown;
83
+ dataType: 'key' | null | undefined | 'value';
84
+ message?: string;
85
+ dataPath: string;
86
+ ancestors: Array<SchemaEntity>;
87
+ };
88
+ declare function validateSchema(schema: SchemaEntity, data: unknown): Array<SchemaError>;
89
+ declare namespace validateSchema {
90
+ var diagnostic: (schema: SchemaEntity, data: ({
91
+ source?: string | null | undefined;
92
+ data?: unknown;
93
+ } | {
94
+ source: string;
95
+ map: {
96
+ data: unknown;
97
+ pointers: {
98
+ [key: string]: Mapping;
99
+ };
100
+ };
101
+ }) & {
102
+ filePath?: string | null | undefined;
103
+ prependKey?: string | null | undefined;
104
+ }, origin: string, message: string) => undefined;
105
+ }
106
+ export default validateSchema;
107
+ export declare function fuzzySearch(expectedValues: Array<string>, actualValue: string): Array<string>;
package/lib/schema.js CHANGED
@@ -30,7 +30,9 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
30
30
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
31
31
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
32
32
  function validateSchema(schema, data) {
33
- function walk(schemaAncestors, dataNode, dataPath) {
33
+ function walk(
34
+ // @ts-expect-error TS7006
35
+ schemaAncestors, dataNode, dataPath) {
34
36
  let [schemaNode] = schemaAncestors;
35
37
  if (schemaNode.type) {
36
38
  let type = Array.isArray(dataNode) ? 'array' : typeof dataNode;
@@ -49,10 +51,10 @@ function validateSchema(schema, data) {
49
51
  {
50
52
  if (schemaNode.items) {
51
53
  let results = [];
52
- // $FlowFixMe type was already checked
54
+ // @ts-expect-error TS18046
53
55
  for (let i = 0; i < dataNode.length; i++) {
54
56
  let result = walk([schemaNode.items].concat(schemaAncestors),
55
- // $FlowFixMe type was already checked
57
+ // @ts-expect-error TS18046
56
58
  dataNode[i], dataPath + '/' + i);
57
59
  if (result) results.push(result);
58
60
  }
@@ -62,7 +64,7 @@ function validateSchema(schema, data) {
62
64
  }
63
65
  case 'string':
64
66
  {
65
- // $FlowFixMe type was already checked
67
+ // @ts-expect-error TS2322
66
68
  let value = dataNode;
67
69
  if (schemaNode.enum) {
68
70
  if (!schemaNode.enum.includes(value)) {
@@ -92,7 +94,7 @@ function validateSchema(schema, data) {
92
94
  }
93
95
  case 'number':
94
96
  {
95
- // $FlowFixMe type was already checked
97
+ // @ts-expect-error TS2322
96
98
  let value = dataNode;
97
99
  if (schemaNode.enum) {
98
100
  if (!schemaNode.enum.includes(value)) {
@@ -113,10 +115,13 @@ function validateSchema(schema, data) {
113
115
  let results = [];
114
116
  let invalidProps;
115
117
  if (schemaNode.__forbiddenProperties) {
116
- // $FlowFixMe type was already checked
118
+ // @ts-expect-error TS2769
117
119
  let keys = Object.keys(dataNode);
120
+ // @ts-expect-error TS7006
118
121
  invalidProps = schemaNode.__forbiddenProperties.filter(val => keys.includes(val));
119
- results.push(...invalidProps.map(k => ({
122
+ results.push(...invalidProps.map(
123
+ // @ts-expect-error TS7006
124
+ k => ({
120
125
  type: 'forbidden-prop',
121
126
  dataPath: dataPath + '/' + (0, _diagnostic().encodeJSONKeyComponent)(k),
122
127
  dataType: 'key',
@@ -127,10 +132,14 @@ function validateSchema(schema, data) {
127
132
  })));
128
133
  }
129
134
  if (schemaNode.required) {
130
- // $FlowFixMe type was already checked
135
+ // @ts-expect-error TS2769
131
136
  let keys = Object.keys(dataNode);
132
- let missingKeys = schemaNode.required.filter(val => !keys.includes(val));
133
- results.push(...missingKeys.map(k => ({
137
+ let missingKeys = schemaNode.required.filter(
138
+ // @ts-expect-error TS7006
139
+ val => !keys.includes(val));
140
+ results.push(...missingKeys.map(
141
+ // @ts-expect-error TS7006
142
+ k => ({
134
143
  type: 'missing-prop',
135
144
  dataPath,
136
145
  dataType: 'value',
@@ -144,14 +153,14 @@ function validateSchema(schema, data) {
144
153
  let {
145
154
  additionalProperties = true
146
155
  } = schemaNode;
147
- // $FlowFixMe type was already checked
156
+ // @ts-expect-error TS2407
148
157
  for (let k in dataNode) {
149
158
  if (invalidProps && invalidProps.includes(k)) {
150
159
  // Don't check type on forbidden props
151
160
  continue;
152
161
  } else if (k in schemaNode.properties) {
153
162
  let result = walk([schemaNode.properties[k]].concat(schemaAncestors),
154
- // $FlowFixMe type was already checked
163
+ // @ts-expect-error TS18046
155
164
  dataNode[k], dataPath + '/' + (0, _diagnostic().encodeJSONKeyComponent)(k));
156
165
  if (result) results.push(result);
157
166
  } else {
@@ -161,9 +170,9 @@ function validateSchema(schema, data) {
161
170
  type: 'enum',
162
171
  dataType: 'key',
163
172
  dataPath: dataPath + '/' + (0, _diagnostic().encodeJSONKeyComponent)(k),
164
- expectedValues: Object.keys(schemaNode.properties).filter(
165
- // $FlowFixMe type was already checked
166
- p => !(p in dataNode)),
173
+ expectedValues: Object.keys(schemaNode.properties
174
+ // @ts-expect-error TS18046
175
+ ).filter(p => !(p in dataNode)),
167
176
  actualValue: k,
168
177
  ancestors: schemaAncestors,
169
178
  prettyType: schemaNode.__type
@@ -171,7 +180,7 @@ function validateSchema(schema, data) {
171
180
  }
172
181
  } else {
173
182
  let result = walk([additionalProperties].concat(schemaAncestors),
174
- // $FlowFixMe type was already checked
183
+ // @ts-expect-error TS18046
175
184
  dataNode[k], dataPath + '/' + (0, _diagnostic().encodeJSONKeyComponent)(k));
176
185
  if (result) results.push(result);
177
186
  }
@@ -213,6 +222,7 @@ function validateSchema(schema, data) {
213
222
  }
214
223
  } else if (schemaNode.not) {
215
224
  let result = walk([schemaNode.not].concat(schemaAncestors), dataNode, dataPath);
225
+ // @ts-expect-error TS2339
216
226
  if (!result || result.length == 0) {
217
227
  return {
218
228
  type: 'other',
@@ -234,16 +244,22 @@ var _default = exports.default = validateSchema;
234
244
  function fuzzySearch(expectedValues, actualValue) {
235
245
  let result = expectedValues.map(exp => [exp, levenshtein().distance(exp, actualValue)]).filter(
236
246
  // Remove if more than half of the string would need to be changed
247
+ // @ts-expect-error TS2769
237
248
  ([, d]) => d * 2 < actualValue.length);
249
+ // @ts-expect-error TS2345
238
250
  result.sort(([, a], [, b]) => a - b);
251
+ // @ts-expect-error TS2345
239
252
  return result.map(([v]) => v);
240
253
  }
241
254
  validateSchema.diagnostic = function (schema, data, origin, message) {
242
255
  if ('source' in data && 'data' in data && typeof data.source !== 'string' && !data) {
243
256
  throw new Error('At least one of data.source and data.data must be defined!');
244
257
  }
245
- let object = data.map ? data.map.data :
246
- // $FlowFixMe we can assume it's a JSON object
258
+ // @ts-expect-error TS2339
259
+ let object = data.map ?
260
+ // @ts-expect-error TS2339
261
+ data.map.data :
262
+ // @ts-expect-error TS2339
247
263
  data.data ?? JSON.parse(data.source);
248
264
  let errors = validateSchema(schema, object);
249
265
  if (errors.length) {
@@ -303,11 +319,13 @@ validateSchema.diagnostic = function (schema, data, origin, message) {
303
319
  };
304
320
  });
305
321
  let map, code;
322
+ // @ts-expect-error TS2339
306
323
  if (data.map) {
324
+ // @ts-expect-error TS2339
307
325
  map = data.map;
308
326
  code = data.source;
309
327
  } else {
310
- // $FlowFixMe we can assume that data is valid JSON
328
+ // @ts-expect-error TS2339
311
329
  map = data.source ?? JSON.stringify((0, _nullthrows().default)(data.data), 0, '\t');
312
330
  code = map;
313
331
  }
@@ -329,6 +347,7 @@ validateSchema.diagnostic = function (schema, data, origin, message) {
329
347
  diagnostic: {
330
348
  message: message,
331
349
  origin,
350
+ // @ts-expect-error TS2322
332
351
  codeFrames
333
352
  }
334
353
  });
@@ -0,0 +1,2 @@
1
+ export type Class<T> = new (...args: any[]) => T;
2
+ export declare let SharedBuffer: Class<ArrayBuffer> | Class<SharedArrayBuffer>;
@@ -4,9 +4,13 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.SharedBuffer = void 0;
7
+ // flow-to-ts helpers
8
+
9
+ // /flow-to-ts helpers
10
+
7
11
  let SharedBuffer = exports.SharedBuffer = void 0;
8
12
 
9
- // $FlowFixMe[prop-missing]
13
+ // @ts-expect-error process.browser is a browser-specific property
10
14
  if (process.browser) {
11
15
  exports.SharedBuffer = SharedBuffer = ArrayBuffer;
12
16
  // Safari has removed the constructor