@rsdoctor/utils 0.0.0-next-20240620044732

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 (183) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +22 -0
  3. package/dist/cjs/build/envinfo.js +109 -0
  4. package/dist/cjs/build/file/cache.js +67 -0
  5. package/dist/cjs/build/file/index.js +44 -0
  6. package/dist/cjs/build/file/sharding.js +84 -0
  7. package/dist/cjs/build/index.js +50 -0
  8. package/dist/cjs/build/json.js +52 -0
  9. package/dist/cjs/build/process.js +49 -0
  10. package/dist/cjs/build/server.js +127 -0
  11. package/dist/cjs/common/alerts.js +49 -0
  12. package/dist/cjs/common/algorithm.js +60 -0
  13. package/dist/cjs/common/bundle.js +56 -0
  14. package/dist/cjs/common/crypto.js +53 -0
  15. package/dist/cjs/common/data/index.js +299 -0
  16. package/dist/cjs/common/graph/assets.js +322 -0
  17. package/dist/cjs/common/graph/chunk.js +67 -0
  18. package/dist/cjs/common/graph/dependency.js +40 -0
  19. package/dist/cjs/common/graph/entrypoints.js +30 -0
  20. package/dist/cjs/common/graph/index.js +30 -0
  21. package/dist/cjs/common/graph/modules.js +98 -0
  22. package/dist/cjs/common/index.js +80 -0
  23. package/dist/cjs/common/loader.js +261 -0
  24. package/dist/cjs/common/manifest.js +72 -0
  25. package/dist/cjs/common/package.js +97 -0
  26. package/dist/cjs/common/plugin.js +86 -0
  27. package/dist/cjs/common/resolver.js +82 -0
  28. package/dist/cjs/common/rspack.js +37 -0
  29. package/dist/cjs/common/summary.js +34 -0
  30. package/dist/cjs/common/time.js +91 -0
  31. package/dist/cjs/common/url.js +46 -0
  32. package/dist/cjs/error/error.js +236 -0
  33. package/dist/cjs/error/index.js +31 -0
  34. package/dist/cjs/error/transform.js +175 -0
  35. package/dist/cjs/error/utils.js +66 -0
  36. package/dist/cjs/index.js +41 -0
  37. package/dist/cjs/logger.js +51 -0
  38. package/dist/cjs/rule-utils/document/document.js +91 -0
  39. package/dist/cjs/rule-utils/document/index.js +26 -0
  40. package/dist/cjs/rule-utils/document/server.js +42 -0
  41. package/dist/cjs/rule-utils/document/types.js +16 -0
  42. package/dist/cjs/rule-utils/index.js +24 -0
  43. package/dist/cjs/rule-utils/parser/asserts.js +156 -0
  44. package/dist/cjs/rule-utils/parser/index.js +28 -0
  45. package/dist/cjs/rule-utils/parser/parser.js +92 -0
  46. package/dist/cjs/rule-utils/parser/types.js +33 -0
  47. package/dist/cjs/rule-utils/parser/utils.js +197 -0
  48. package/dist/esm/build/envinfo.js +75 -0
  49. package/dist/esm/build/file/cache.js +30 -0
  50. package/dist/esm/build/file/index.js +7 -0
  51. package/dist/esm/build/file/sharding.js +50 -0
  52. package/dist/esm/build/index.js +12 -0
  53. package/dist/esm/build/json.js +28 -0
  54. package/dist/esm/build/process.js +24 -0
  55. package/dist/esm/build/server.js +88 -0
  56. package/dist/esm/common/alerts.js +25 -0
  57. package/dist/esm/common/algorithm.js +33 -0
  58. package/dist/esm/common/bundle.js +30 -0
  59. package/dist/esm/common/crypto.js +28 -0
  60. package/dist/esm/common/data/index.js +265 -0
  61. package/dist/esm/common/graph/assets.js +286 -0
  62. package/dist/esm/common/graph/chunk.js +38 -0
  63. package/dist/esm/common/graph/dependency.js +14 -0
  64. package/dist/esm/common/graph/entrypoints.js +6 -0
  65. package/dist/esm/common/graph/index.js +5 -0
  66. package/dist/esm/common/graph/modules.js +70 -0
  67. package/dist/esm/common/index.js +32 -0
  68. package/dist/esm/common/loader.js +225 -0
  69. package/dist/esm/common/manifest.js +46 -0
  70. package/dist/esm/common/package.js +71 -0
  71. package/dist/esm/common/plugin.js +59 -0
  72. package/dist/esm/common/resolver.js +54 -0
  73. package/dist/esm/common/rspack.js +12 -0
  74. package/dist/esm/common/summary.js +10 -0
  75. package/dist/esm/common/time.js +64 -0
  76. package/dist/esm/common/url.js +20 -0
  77. package/dist/esm/error/error.js +202 -0
  78. package/dist/esm/error/index.js +5 -0
  79. package/dist/esm/error/transform.js +141 -0
  80. package/dist/esm/error/utils.js +40 -0
  81. package/dist/esm/index.js +6 -0
  82. package/dist/esm/logger.js +15 -0
  83. package/dist/esm/rule-utils/document/document.js +67 -0
  84. package/dist/esm/rule-utils/document/index.js +3 -0
  85. package/dist/esm/rule-utils/document/server.js +17 -0
  86. package/dist/esm/rule-utils/document/types.js +0 -0
  87. package/dist/esm/rule-utils/index.js +2 -0
  88. package/dist/esm/rule-utils/parser/asserts.js +132 -0
  89. package/dist/esm/rule-utils/parser/index.js +4 -0
  90. package/dist/esm/rule-utils/parser/parser.js +58 -0
  91. package/dist/esm/rule-utils/parser/types.js +9 -0
  92. package/dist/esm/rule-utils/parser/utils.js +164 -0
  93. package/dist/type/build/envinfo.d.ts +14 -0
  94. package/dist/type/build/envinfo.d.ts.map +1 -0
  95. package/dist/type/build/file/cache.d.ts +6 -0
  96. package/dist/type/build/file/cache.d.ts.map +1 -0
  97. package/dist/type/build/file/index.d.ts +4 -0
  98. package/dist/type/build/file/index.d.ts.map +1 -0
  99. package/dist/type/build/file/sharding.d.ts +23 -0
  100. package/dist/type/build/file/sharding.d.ts.map +1 -0
  101. package/dist/type/build/index.d.ts +6 -0
  102. package/dist/type/build/index.d.ts.map +1 -0
  103. package/dist/type/build/json.d.ts +2 -0
  104. package/dist/type/build/json.d.ts.map +1 -0
  105. package/dist/type/build/process.d.ts +4 -0
  106. package/dist/type/build/process.d.ts.map +1 -0
  107. package/dist/type/build/server.d.ts +16 -0
  108. package/dist/type/build/server.d.ts.map +1 -0
  109. package/dist/type/common/alerts.d.ts +3 -0
  110. package/dist/type/common/alerts.d.ts.map +1 -0
  111. package/dist/type/common/algorithm.d.ts +5 -0
  112. package/dist/type/common/algorithm.d.ts.map +1 -0
  113. package/dist/type/common/bundle.d.ts +4 -0
  114. package/dist/type/common/bundle.d.ts.map +1 -0
  115. package/dist/type/common/crypto.d.ts +3 -0
  116. package/dist/type/common/crypto.d.ts.map +1 -0
  117. package/dist/type/common/data/index.d.ts +11 -0
  118. package/dist/type/common/data/index.d.ts.map +1 -0
  119. package/dist/type/common/graph/assets.d.ts +53 -0
  120. package/dist/type/common/graph/assets.d.ts.map +1 -0
  121. package/dist/type/common/graph/chunk.d.ts +8 -0
  122. package/dist/type/common/graph/chunk.d.ts.map +1 -0
  123. package/dist/type/common/graph/dependency.d.ts +5 -0
  124. package/dist/type/common/graph/dependency.d.ts.map +1 -0
  125. package/dist/type/common/graph/entrypoints.d.ts +3 -0
  126. package/dist/type/common/graph/entrypoints.d.ts.map +1 -0
  127. package/dist/type/common/graph/index.d.ts +6 -0
  128. package/dist/type/common/graph/index.d.ts.map +1 -0
  129. package/dist/type/common/graph/modules.d.ts +10 -0
  130. package/dist/type/common/graph/modules.d.ts.map +1 -0
  131. package/dist/type/common/index.d.ts +16 -0
  132. package/dist/type/common/index.d.ts.map +1 -0
  133. package/dist/type/common/loader.d.ts +19 -0
  134. package/dist/type/common/loader.d.ts.map +1 -0
  135. package/dist/type/common/manifest.d.ts +5 -0
  136. package/dist/type/common/manifest.d.ts.map +1 -0
  137. package/dist/type/common/package.d.ts +8 -0
  138. package/dist/type/common/package.d.ts.map +1 -0
  139. package/dist/type/common/plugin.d.ts +6 -0
  140. package/dist/type/common/plugin.d.ts.map +1 -0
  141. package/dist/type/common/resolver.d.ts +7 -0
  142. package/dist/type/common/resolver.d.ts.map +1 -0
  143. package/dist/type/common/rspack.d.ts +8 -0
  144. package/dist/type/common/rspack.d.ts.map +1 -0
  145. package/dist/type/common/summary.d.ts +7 -0
  146. package/dist/type/common/summary.d.ts.map +1 -0
  147. package/dist/type/common/time.d.ts +5 -0
  148. package/dist/type/common/time.d.ts.map +1 -0
  149. package/dist/type/common/url.d.ts +4 -0
  150. package/dist/type/common/url.d.ts.map +1 -0
  151. package/dist/type/error/error.d.ts +36 -0
  152. package/dist/type/error/error.d.ts.map +1 -0
  153. package/dist/type/error/index.d.ts +3 -0
  154. package/dist/type/error/index.d.ts.map +1 -0
  155. package/dist/type/error/transform.d.ts +4 -0
  156. package/dist/type/error/transform.d.ts.map +1 -0
  157. package/dist/type/error/utils.d.ts +5 -0
  158. package/dist/type/error/utils.d.ts.map +1 -0
  159. package/dist/type/index.d.ts +3 -0
  160. package/dist/type/index.d.ts.map +1 -0
  161. package/dist/type/logger.d.ts +8 -0
  162. package/dist/type/logger.d.ts.map +1 -0
  163. package/dist/type/rule-utils/document/document.d.ts +17 -0
  164. package/dist/type/rule-utils/document/document.d.ts.map +1 -0
  165. package/dist/type/rule-utils/document/index.d.ts +4 -0
  166. package/dist/type/rule-utils/document/index.d.ts.map +1 -0
  167. package/dist/type/rule-utils/document/server.d.ts +5 -0
  168. package/dist/type/rule-utils/document/server.d.ts.map +1 -0
  169. package/dist/type/rule-utils/document/types.d.ts +32 -0
  170. package/dist/type/rule-utils/document/types.d.ts.map +1 -0
  171. package/dist/type/rule-utils/index.d.ts +3 -0
  172. package/dist/type/rule-utils/index.d.ts.map +1 -0
  173. package/dist/type/rule-utils/parser/asserts.d.ts +82 -0
  174. package/dist/type/rule-utils/parser/asserts.d.ts.map +1 -0
  175. package/dist/type/rule-utils/parser/index.d.ts +5 -0
  176. package/dist/type/rule-utils/parser/index.d.ts.map +1 -0
  177. package/dist/type/rule-utils/parser/parser.d.ts +119 -0
  178. package/dist/type/rule-utils/parser/parser.d.ts.map +1 -0
  179. package/dist/type/rule-utils/parser/types.d.ts +31 -0
  180. package/dist/type/rule-utils/parser/types.d.ts.map +1 -0
  181. package/dist/type/rule-utils/parser/utils.d.ts +31 -0
  182. package/dist/type/rule-utils/parser/utils.d.ts.map +1 -0
  183. package/package.json +111 -0
@@ -0,0 +1,91 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var time_exports = {};
20
+ __export(time_exports, {
21
+ formatCosts: () => formatCosts,
22
+ getCurrentTimestamp: () => getCurrentTimestamp,
23
+ getUnit: () => getUnit,
24
+ toFixedDigits: () => toFixedDigits
25
+ });
26
+ module.exports = __toCommonJS(time_exports);
27
+ var import_process = require("process");
28
+ function toFixedDigits(num, digits = 2) {
29
+ if (digits === 0) {
30
+ return Math.floor(num);
31
+ }
32
+ return +num.toFixed(digits);
33
+ }
34
+ function getUnit(num, type) {
35
+ let unit;
36
+ if (type === "m") {
37
+ unit = num > 1 ? "mins" : "min";
38
+ } else {
39
+ unit = num > 1 ? "hours" : "hour";
40
+ }
41
+ return unit;
42
+ }
43
+ function formatCosts(costs) {
44
+ costs = Number(costs);
45
+ if (costs >= 1e3) {
46
+ const sec = costs / 1e3;
47
+ if (sec >= 60) {
48
+ let mins = sec / 60;
49
+ if (mins >= 60) {
50
+ const hours = toFixedDigits(mins / 60, 0);
51
+ const restMins = toFixedDigits(mins % 60, 1);
52
+ const hUnit = getUnit(hours, "h");
53
+ if (restMins > 0) {
54
+ return `${hours}${hUnit} ${restMins}${getUnit(restMins, "m")}`;
55
+ }
56
+ return `${hours}${hUnit}`;
57
+ }
58
+ mins = toFixedDigits(mins, 0);
59
+ const mUnit = getUnit(mins, "m");
60
+ const restSec = toFixedDigits(sec % 60, 0);
61
+ if (restSec > 0) {
62
+ return `${mins}${mUnit} ${restSec}s`;
63
+ }
64
+ return `${mins}${mUnit}`;
65
+ }
66
+ return `${toFixedDigits(sec, 1)}s`;
67
+ }
68
+ if (costs >= 10) {
69
+ return `${+toFixedDigits(costs, 0)}ms`;
70
+ }
71
+ if (costs >= 1) {
72
+ return `${+toFixedDigits(costs, 1)}ms`;
73
+ }
74
+ let r = +toFixedDigits(costs, 2);
75
+ if (r === 0) {
76
+ r = +toFixedDigits(costs, 3);
77
+ }
78
+ return `${r}ms`;
79
+ }
80
+ function getCurrentTimestamp(start, startHRTime) {
81
+ const endHRTime = (0, import_process.hrtime)(startHRTime);
82
+ const end = start + endHRTime[0] * 1e3 + (process.env.VITEST ? Math.round(endHRTime[1] / 1e6) : endHRTime[1] / 1e6);
83
+ return end;
84
+ }
85
+ // Annotate the CommonJS export names for ESM import in node:
86
+ 0 && (module.exports = {
87
+ formatCosts,
88
+ getCurrentTimestamp,
89
+ getUnit,
90
+ toFixedDigits
91
+ });
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var url_exports = {};
20
+ __export(url_exports, {
21
+ isFilePath: () => isFilePath,
22
+ isRemoteUrl: () => isRemoteUrl,
23
+ isUrl: () => isUrl
24
+ });
25
+ module.exports = __toCommonJS(url_exports);
26
+ var import_path = require("path");
27
+ function isUrl(uri) {
28
+ return /^https?:\/\//.test(uri);
29
+ }
30
+ function isFilePath(uri) {
31
+ return (0, import_path.isAbsolute)(uri);
32
+ }
33
+ function isRemoteUrl(uri) {
34
+ if (typeof uri === "string") {
35
+ if (isUrl(uri) || isFilePath(uri)) {
36
+ return true;
37
+ }
38
+ }
39
+ return false;
40
+ }
41
+ // Annotate the CommonJS export names for ESM import in node:
42
+ 0 && (module.exports = {
43
+ isFilePath,
44
+ isRemoteUrl,
45
+ isUrl
46
+ });
@@ -0,0 +1,236 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var error_exports = {};
30
+ __export(error_exports, {
31
+ DevToolError: () => DevToolError
32
+ });
33
+ module.exports = __toCommonJS(error_exports);
34
+ var import_code_frame = require("@babel/code-frame");
35
+ var import_types = require("@rsdoctor/types");
36
+ var import_chalk = require("chalk");
37
+ var import_deep_eql = __toESM(require("deep-eql"));
38
+ var import_lodash = require("lodash");
39
+ var import_strip_ansi = __toESM(require("strip-ansi"));
40
+ var import_transform = require("./transform");
41
+ var import_utils = require("./utils");
42
+ let id = 1;
43
+ class DevToolError extends Error {
44
+ constructor(title, message, opts) {
45
+ super(message);
46
+ this._controller = {
47
+ noStack: true,
48
+ noColor: false
49
+ };
50
+ this.id = id++;
51
+ this.title = title;
52
+ this.code = opts?.code;
53
+ this.hint = opts?.hint;
54
+ this.stack = opts?.stack;
55
+ this.detail = opts?.detail;
56
+ this.fixData = opts?.fixData;
57
+ this.category = opts?.category;
58
+ this.referenceUrl = opts?.referenceUrl;
59
+ this._level = opts?.level ? (0, import_utils.toLevel)(opts.level) : import_types.Err.ErrorLevel.Error;
60
+ this._codeFrame = opts?.codeFrame;
61
+ this.setControllerOption(opts?.controller ?? {});
62
+ }
63
+ static from(err, opt) {
64
+ if (err instanceof DevToolError) {
65
+ return err;
66
+ }
67
+ return (0, import_transform.transform)(err, opt);
68
+ }
69
+ get level() {
70
+ return import_types.Err.ErrorLevel[this._level];
71
+ }
72
+ get path() {
73
+ return this._codeFrame?.filePath;
74
+ }
75
+ set path(file) {
76
+ if (!file) {
77
+ return;
78
+ }
79
+ if (this._codeFrame) {
80
+ this._codeFrame.filePath = file;
81
+ return;
82
+ }
83
+ this._codeFrame = {
84
+ filePath: file
85
+ };
86
+ }
87
+ get codeFrame() {
88
+ return this._codeFrame;
89
+ }
90
+ printCodeFrame(print) {
91
+ const msgs = [];
92
+ const { _codeFrame: codeFrameOpt, _controller: controller } = this;
93
+ if (!codeFrameOpt) {
94
+ return msgs;
95
+ }
96
+ if ("start" in codeFrameOpt && codeFrameOpt.start) {
97
+ const { filePath, start } = codeFrameOpt;
98
+ msgs.push(
99
+ `
100
+ ${print.red(print.bold("File: "))}${print.bold(filePath)}:${start.line}${start.column ? `:${start.column}` : ""}`
101
+ );
102
+ if ("fileContent" in codeFrameOpt) {
103
+ const { end, fileContent } = codeFrameOpt;
104
+ msgs.push(
105
+ (0, import_code_frame.codeFrameColumns)(
106
+ fileContent,
107
+ {
108
+ start,
109
+ end
110
+ },
111
+ {
112
+ highlightCode: !controller.noColor
113
+ }
114
+ )
115
+ );
116
+ } else if ("lineText" in codeFrameOpt) {
117
+ const { length, lineText } = codeFrameOpt;
118
+ let lineCodeFrame = (0, import_code_frame.codeFrameColumns)(
119
+ lineText,
120
+ {
121
+ start: {
122
+ line: 1,
123
+ column: start.column
124
+ },
125
+ end: {
126
+ line: 1,
127
+ column: (0, import_lodash.isNil)(start.column) || (0, import_lodash.isNil)(length) ? void 0 : start.column + length
128
+ }
129
+ },
130
+ {
131
+ highlightCode: !controller.noColor
132
+ }
133
+ );
134
+ if (start.line > 1) {
135
+ lineCodeFrame = lineCodeFrame.replace(" 1 |", ` ${start.line} |`);
136
+ if (start.line >= 10) {
137
+ lineCodeFrame = (0, import_utils.insertSpace)(
138
+ lineCodeFrame,
139
+ 2,
140
+ String(start.line).length - 1
141
+ );
142
+ }
143
+ }
144
+ msgs.push(lineCodeFrame);
145
+ }
146
+ } else {
147
+ msgs.push(
148
+ `
149
+ ${print.red(print.bold("File: "))}${print.bold(
150
+ codeFrameOpt.filePath
151
+ )}
152
+ `
153
+ );
154
+ }
155
+ return msgs;
156
+ }
157
+ toString() {
158
+ const msgs = [];
159
+ const {
160
+ code,
161
+ title,
162
+ message,
163
+ hint,
164
+ referenceUrl,
165
+ _controller: controller
166
+ } = this;
167
+ const print = controller.noColor ? new import_chalk.Instance({ level: 0 }) : new import_chalk.Instance({ level: 3 });
168
+ const mainColorPrint = this._level === import_types.Err.ErrorLevel.Error ? print.red : print.yellow;
169
+ const codeText = code ? `${mainColorPrint.blue(code)}:` : "";
170
+ msgs.push(
171
+ mainColorPrint.bold(
172
+ `[${codeText}${this.level}:${title.toUpperCase()}] `
173
+ ) + message
174
+ );
175
+ msgs.push(...this.printCodeFrame(print));
176
+ if (hint || referenceUrl) {
177
+ msgs.push("");
178
+ }
179
+ if (hint) {
180
+ msgs.push(` ${print.blue(`HINT: ${hint}`)}`);
181
+ }
182
+ if (referenceUrl) {
183
+ msgs.push(print.magenta.bold(` See: ${referenceUrl}`));
184
+ }
185
+ if (!controller.noStack && this.stack) {
186
+ msgs.push(print.red.bold(` Error Stack:
187
+ ${this.stack}
188
+ `));
189
+ }
190
+ return msgs.join("\n");
191
+ }
192
+ toData() {
193
+ return {
194
+ ...this.detail,
195
+ id: this.id,
196
+ category: this.category,
197
+ description: (0, import_strip_ansi.default)(this.detail?.description ?? this.message),
198
+ title: this.title.toUpperCase(),
199
+ code: this.code,
200
+ level: this.level.toLowerCase()
201
+ };
202
+ }
203
+ toError() {
204
+ const error = new Error();
205
+ error.message = this.toString();
206
+ error.name = this.name;
207
+ error.stack = this.stack;
208
+ return error;
209
+ }
210
+ /**
211
+ * for json stringify
212
+ */
213
+ toJSON() {
214
+ return {
215
+ message: this.toString(),
216
+ name: this.name,
217
+ stack: this.stack
218
+ };
219
+ }
220
+ setControllerOption(opt) {
221
+ this._controller = {
222
+ noStack: opt.noStack ?? this._controller.noStack ?? true,
223
+ noColor: opt.noColor ?? this._controller.noColor ?? false
224
+ };
225
+ }
226
+ setCodeFrame(opt) {
227
+ this._codeFrame = opt;
228
+ }
229
+ isSame(error) {
230
+ return this.code === error.code && this.message === error.message && this.hint === error.hint && this.level === error.level && this.title === error.title && this.referenceUrl === error.referenceUrl && this.code === error.code && (0, import_deep_eql.default)(this.codeFrame, error.codeFrame);
231
+ }
232
+ }
233
+ // Annotate the CommonJS export names for ESM import in node:
234
+ 0 && (module.exports = {
235
+ DevToolError
236
+ });
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
19
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
20
+ var error_exports = {};
21
+ __export(error_exports, {
22
+ printErrors: () => import_utils.printErrors
23
+ });
24
+ module.exports = __toCommonJS(error_exports);
25
+ __reExport(error_exports, require("./error"), module.exports);
26
+ var import_utils = require("./utils");
27
+ // Annotate the CommonJS export names for ESM import in node:
28
+ 0 && (module.exports = {
29
+ printErrors,
30
+ ...require("./error")
31
+ });
@@ -0,0 +1,175 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var transform_exports = {};
30
+ __export(transform_exports, {
31
+ transform: () => transform
32
+ });
33
+ module.exports = __toCommonJS(transform_exports);
34
+ var import_strip_ansi = __toESM(require("strip-ansi"));
35
+ var import_types = require("@rsdoctor/types");
36
+ var import_error = require("./error");
37
+ function isEsbuildError(err) {
38
+ return "pluginName" in err && "text" in err && "location" in err;
39
+ }
40
+ function isBabelError(err) {
41
+ return "code" in err && "reasonCode" in err;
42
+ }
43
+ function isDiagnosticError(err) {
44
+ return "severity" in err && "title" in err;
45
+ }
46
+ function parseBabelErrorMessage(input) {
47
+ const lines = (0, import_strip_ansi.default)(input).split("\n");
48
+ const filePath = lines[0].replace(/^([^:]+):.*/, "$1");
49
+ const message = lines[0].replace(/.*: (.*) \(\d+:\d+\)*/, "$1");
50
+ const lineText = lines.find((line) => line.startsWith("> "))?.replace(/> \d+ \| /, "") ?? "";
51
+ return {
52
+ message,
53
+ filePath,
54
+ lineText
55
+ };
56
+ }
57
+ function clearMessage(str) {
58
+ return (0, import_strip_ansi.default)(str).replace(/.*: (.*)\n\n[\s\S]*/g, "$1");
59
+ }
60
+ function clearStack(str) {
61
+ return str.slice(str.indexOf(" at")).replace(/\s*at(.*) \((.*)\)/g, "$1\n$2\n");
62
+ }
63
+ function transformEsbuildError(err, opt) {
64
+ if (isEsbuildError(err)) {
65
+ const errorCode = opt?.code ?? "ESBUILD_ERROR";
66
+ const speedyError = typeof err.detail === "object" ? import_error.DevToolError.from(err.detail) : new import_error.DevToolError(errorCode, clearMessage(err.text), {
67
+ ...opt,
68
+ hint: err.location?.suggestion,
69
+ codeFrame: {
70
+ filePath: err.text.split(":")[0]
71
+ }
72
+ });
73
+ if (err.location) {
74
+ speedyError.setCodeFrame({
75
+ filePath: err.location.file,
76
+ lineText: err.location.lineText,
77
+ length: err.location.length,
78
+ start: {
79
+ line: err.location.line,
80
+ column: err.location.column + 1
81
+ }
82
+ });
83
+ }
84
+ return speedyError;
85
+ }
86
+ }
87
+ function transformBabelError(err, opt) {
88
+ if (isBabelError(err)) {
89
+ const errorCode = opt?.code ?? err.code ?? "BABEL";
90
+ const title = err.reasonCode;
91
+ const errorParsed = parseBabelErrorMessage(err.message);
92
+ const speedyError = new import_error.DevToolError(title, errorParsed.message, {
93
+ ...opt,
94
+ code: errorCode,
95
+ stack: err.stack && clearStack(err.stack)
96
+ });
97
+ if (err.loc) {
98
+ speedyError.setCodeFrame({
99
+ ...errorParsed,
100
+ start: {
101
+ line: err.loc.line,
102
+ column: err.loc.column + 1
103
+ }
104
+ });
105
+ }
106
+ return speedyError;
107
+ }
108
+ }
109
+ function transformNormalError(err, opt) {
110
+ if (err instanceof Error) {
111
+ const stacks = [];
112
+ const filePath = stacks?.[0]?.getFileName?.();
113
+ return new import_error.DevToolError(err.name, clearMessage(err.message), {
114
+ ...opt,
115
+ codeFrame: filePath ? { filePath } : void 0,
116
+ stack: err.stack && clearStack(err.stack)
117
+ });
118
+ }
119
+ }
120
+ function transformErrorLike(err, opt) {
121
+ const isErrorLike = err && typeof err === "object" && err.message;
122
+ if (isErrorLike) {
123
+ const stacks = [];
124
+ const filePath = stacks?.[0]?.getFileName?.();
125
+ return new import_error.DevToolError(
126
+ err.name || "UNKNOWN_ERROR",
127
+ clearMessage(err.message),
128
+ {
129
+ ...opt,
130
+ codeFrame: filePath ? { filePath } : void 0,
131
+ stack: err.stack && clearStack(err.stack)
132
+ }
133
+ );
134
+ }
135
+ }
136
+ function transformDiagnostic(err, opt) {
137
+ if (isDiagnosticError(err)) {
138
+ return new import_error.DevToolError(err.title, err.message, {
139
+ ...err,
140
+ ...opt,
141
+ hint: err.suggestions?.description,
142
+ fixData: err.suggestions?.fixData,
143
+ codeFrame: err.document ? {
144
+ filePath: err.document.path,
145
+ fileContent: err.document.content,
146
+ start: err.document.range.start,
147
+ end: err.document.range.end
148
+ } : void 0,
149
+ level: import_types.Linter.Severity[err.severity]
150
+ });
151
+ }
152
+ }
153
+ function defaultError(err, opt) {
154
+ return new import_error.DevToolError("UNKNOWN_ERROR", JSON.stringify(err), opt);
155
+ }
156
+ function transform(err, opt) {
157
+ const transformers = [
158
+ transformEsbuildError,
159
+ transformBabelError,
160
+ transformDiagnostic,
161
+ transformNormalError,
162
+ transformErrorLike
163
+ ];
164
+ for (const fn of transformers) {
165
+ const result = fn(err, opt);
166
+ if (result) {
167
+ return result;
168
+ }
169
+ }
170
+ return defaultError(err, opt);
171
+ }
172
+ // Annotate the CommonJS export names for ESM import in node:
173
+ 0 && (module.exports = {
174
+ transform
175
+ });
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var utils_exports = {};
20
+ __export(utils_exports, {
21
+ insertSpace: () => insertSpace,
22
+ printErrors: () => printErrors,
23
+ toLevel: () => toLevel
24
+ });
25
+ module.exports = __toCommonJS(utils_exports);
26
+ var import_types = require("@rsdoctor/types");
27
+ function toLevel(level) {
28
+ return import_types.Err.ErrorLevel[level];
29
+ }
30
+ function insertSpace(rawLines, line, width) {
31
+ const lines = rawLines.split("\n");
32
+ lines[line - 1] = Array(width).fill(" ").join("") + lines[line - 1];
33
+ return lines.join("\n");
34
+ }
35
+ function printErrors({ errors, warnings }, logLevel = "Error") {
36
+ const onlyError = logLevel === "Error";
37
+ if (logLevel === "Silent") {
38
+ return "";
39
+ }
40
+ if (onlyError && errors.length === 0 || !onlyError && errors.length === 0 && warnings.length === 0) {
41
+ return "";
42
+ }
43
+ const msgs = [];
44
+ if (onlyError) {
45
+ msgs.push(
46
+ `Build failed with ${errors.length} error:`,
47
+ ...errors.map((item) => item.toString()),
48
+ ""
49
+ );
50
+ } else {
51
+ const title = errors.length === 0 ? `Build succuss with ${warnings.length} warning:` : `Build failed with ${errors.length} error, ${warnings.length} warning:`;
52
+ msgs.push(
53
+ title,
54
+ ...errors.map((item) => item.toString()),
55
+ ...warnings.map((item) => item.toString()),
56
+ ""
57
+ );
58
+ }
59
+ return msgs.join("\n\n");
60
+ }
61
+ // Annotate the CommonJS export names for ESM import in node:
62
+ 0 && (module.exports = {
63
+ insertSpace,
64
+ printErrors,
65
+ toLevel
66
+ });
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var src_exports = {};
30
+ __export(src_exports, {
31
+ Logger: () => Logger,
32
+ RuleUtils: () => RuleUtils
33
+ });
34
+ module.exports = __toCommonJS(src_exports);
35
+ var RuleUtils = __toESM(require("./rule-utils"));
36
+ var Logger = __toESM(require("./logger"));
37
+ // Annotate the CommonJS export names for ESM import in node:
38
+ 0 && (module.exports = {
39
+ Logger,
40
+ RuleUtils
41
+ });