@rsdoctor/utils 1.2.2 → 1.2.4-beta.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 (211) hide show
  1. package/compiled/connect/index.d.ts +90 -0
  2. package/compiled/connect/index.js +2427 -0
  3. package/compiled/connect/license +25 -0
  4. package/compiled/connect/package.json +1 -0
  5. package/compiled/filesize/index.d.ts +58 -0
  6. package/compiled/filesize/index.js +255 -0
  7. package/compiled/filesize/license +28 -0
  8. package/compiled/filesize/package.json +1 -0
  9. package/dist/{type/build → build}/envinfo.d.ts +0 -1
  10. package/dist/{type/build → build}/file/cache.d.ts +0 -1
  11. package/dist/build/file/index.d.ts +3 -0
  12. package/dist/{type/build → build}/file/sharding.d.ts +0 -1
  13. package/dist/{type/build → build}/index.d.ts +0 -1
  14. package/dist/{type/build → build}/json.d.ts +0 -1
  15. package/dist/{type/build → build}/process.d.ts +0 -1
  16. package/dist/{type/build → build}/server.d.ts +0 -1
  17. package/dist/build.cjs +1310 -0
  18. package/dist/build.js +343 -0
  19. package/dist/{type/common → common}/alerts.d.ts +0 -1
  20. package/dist/{type/common → common}/algorithm.d.ts +0 -1
  21. package/dist/{type/common → common}/bundle.d.ts +0 -1
  22. package/dist/{type/common → common}/crypto.d.ts +0 -1
  23. package/dist/{type/common → common}/data/index.d.ts +0 -1
  24. package/dist/{type/common → common}/file.d.ts +0 -1
  25. package/dist/{type/common → common}/global-config.d.ts +0 -1
  26. package/dist/{type/common → common}/graph/assets.d.ts +0 -1
  27. package/dist/{type/common → common}/graph/chunk.d.ts +0 -1
  28. package/dist/{type/common → common}/graph/dependency.d.ts +0 -1
  29. package/dist/{type/common → common}/graph/entrypoints.d.ts +0 -1
  30. package/dist/{type/common → common}/graph/index.d.ts +0 -1
  31. package/dist/{type/common → common}/graph/modules.d.ts +0 -1
  32. package/dist/{type/common → common}/index.d.ts +0 -1
  33. package/dist/{type/common → common}/loader.d.ts +0 -1
  34. package/dist/{type/common → common}/lodash.d.ts +0 -1
  35. package/dist/{type/common → common}/manifest.d.ts +0 -1
  36. package/dist/{type/common → common}/package.d.ts +0 -1
  37. package/dist/{type/common → common}/plugin.d.ts +0 -1
  38. package/dist/{type/common → common}/resolver.d.ts +0 -1
  39. package/dist/{type/common → common}/rspack.d.ts +0 -1
  40. package/dist/{type/common → common}/summary.d.ts +0 -1
  41. package/dist/{type/common → common}/time.d.ts +0 -1
  42. package/dist/{type/common → common}/url.d.ts +0 -1
  43. package/dist/common.cjs +1328 -0
  44. package/dist/common.js +1255 -0
  45. package/dist/{type/error → error}/error.d.ts +0 -1
  46. package/dist/{type/error → error}/index.d.ts +0 -1
  47. package/dist/{type/error → error}/transform.d.ts +0 -1
  48. package/dist/{type/error → error}/utils.d.ts +0 -1
  49. package/dist/error.cjs +310 -0
  50. package/dist/error.js +232 -0
  51. package/dist/logger.cjs +82 -0
  52. package/dist/{type/logger.d.ts → logger.d.ts} +0 -1
  53. package/dist/{esm/logger.mjs → logger.js} +8 -13
  54. package/dist/{type/rule-utils → rule-utils}/document/document.d.ts +0 -1
  55. package/dist/{type/rule-utils → rule-utils}/document/index.d.ts +0 -1
  56. package/dist/{type/rule-utils → rule-utils}/document/server.d.ts +0 -1
  57. package/dist/{type/rule-utils → rule-utils}/document/types.d.ts +0 -1
  58. package/dist/{type/rule-utils → rule-utils}/index.d.ts +0 -1
  59. package/dist/{type/rule-utils → rule-utils}/parser/asserts.d.ts +0 -1
  60. package/dist/{type/rule-utils → rule-utils}/parser/index.d.ts +0 -1
  61. package/dist/{type/rule-utils → rule-utils}/parser/parser.d.ts +0 -1
  62. package/dist/{type/rule-utils → rule-utils}/parser/types.d.ts +0 -1
  63. package/dist/{type/rule-utils → rule-utils}/parser/utils.d.ts +0 -1
  64. package/dist/ruleUtils.cjs +320 -0
  65. package/dist/ruleUtils.js +256 -0
  66. package/package.json +35 -39
  67. package/dist/cjs/build/envinfo.js +0 -121
  68. package/dist/cjs/build/file/cache.js +0 -76
  69. package/dist/cjs/build/file/index.js +0 -81
  70. package/dist/cjs/build/file/sharding.js +0 -96
  71. package/dist/cjs/build/index.js +0 -52
  72. package/dist/cjs/build/json.js +0 -103
  73. package/dist/cjs/build/process.js +0 -54
  74. package/dist/cjs/build/server.js +0 -158
  75. package/dist/cjs/common/alerts.js +0 -51
  76. package/dist/cjs/common/algorithm.js +0 -75
  77. package/dist/cjs/common/bundle.js +0 -62
  78. package/dist/cjs/common/crypto.js +0 -54
  79. package/dist/cjs/common/data/index.js +0 -396
  80. package/dist/cjs/common/file.js +0 -44
  81. package/dist/cjs/common/global-config.js +0 -81
  82. package/dist/cjs/common/graph/assets.js +0 -314
  83. package/dist/cjs/common/graph/chunk.js +0 -81
  84. package/dist/cjs/common/graph/dependency.js +0 -50
  85. package/dist/cjs/common/graph/entrypoints.js +0 -38
  86. package/dist/cjs/common/graph/index.js +0 -96
  87. package/dist/cjs/common/graph/modules.js +0 -133
  88. package/dist/cjs/common/index.js +0 -104
  89. package/dist/cjs/common/loader.js +0 -320
  90. package/dist/cjs/common/lodash.js +0 -93
  91. package/dist/cjs/common/manifest.js +0 -70
  92. package/dist/cjs/common/package.js +0 -96
  93. package/dist/cjs/common/plugin.js +0 -91
  94. package/dist/cjs/common/resolver.js +0 -92
  95. package/dist/cjs/common/rspack.js +0 -65
  96. package/dist/cjs/common/summary.js +0 -42
  97. package/dist/cjs/common/time.js +0 -86
  98. package/dist/cjs/common/url.js +0 -54
  99. package/dist/cjs/error/error.js +0 -199
  100. package/dist/cjs/error/index.js +0 -73
  101. package/dist/cjs/error/transform.js +0 -182
  102. package/dist/cjs/error/utils.js +0 -62
  103. package/dist/cjs/index.js +0 -40
  104. package/dist/cjs/logger.js +0 -106
  105. package/dist/cjs/rule-utils/document/document.js +0 -92
  106. package/dist/cjs/rule-utils/document/index.js +0 -78
  107. package/dist/cjs/rule-utils/document/server.js +0 -49
  108. package/dist/cjs/rule-utils/document/types.js +0 -18
  109. package/dist/cjs/rule-utils/index.js +0 -69
  110. package/dist/cjs/rule-utils/parser/asserts.js +0 -138
  111. package/dist/cjs/rule-utils/parser/index.js +0 -87
  112. package/dist/cjs/rule-utils/parser/parser.js +0 -57
  113. package/dist/cjs/rule-utils/parser/types.js +0 -41
  114. package/dist/cjs/rule-utils/parser/utils.js +0 -170
  115. package/dist/esm/build/envinfo.mjs +0 -57
  116. package/dist/esm/build/file/cache.mjs +0 -23
  117. package/dist/esm/build/file/index.mjs +0 -4
  118. package/dist/esm/build/file/sharding.mjs +0 -50
  119. package/dist/esm/build/index.mjs +0 -6
  120. package/dist/esm/build/json.mjs +0 -66
  121. package/dist/esm/build/process.mjs +0 -17
  122. package/dist/esm/build/server.mjs +0 -96
  123. package/dist/esm/common/alerts.mjs +0 -17
  124. package/dist/esm/common/algorithm.mjs +0 -32
  125. package/dist/esm/common/bundle.mjs +0 -22
  126. package/dist/esm/common/crypto.mjs +0 -17
  127. package/dist/esm/common/data/index.mjs +0 -362
  128. package/dist/esm/common/file.mjs +0 -7
  129. package/dist/esm/common/global-config.mjs +0 -32
  130. package/dist/esm/common/graph/assets.mjs +0 -238
  131. package/dist/esm/common/graph/chunk.mjs +0 -32
  132. package/dist/esm/common/graph/dependency.mjs +0 -10
  133. package/dist/esm/common/graph/entrypoints.mjs +0 -4
  134. package/dist/esm/common/graph/index.mjs +0 -5
  135. package/dist/esm/common/graph/modules.mjs +0 -78
  136. package/dist/esm/common/index.mjs +0 -19
  137. package/dist/esm/common/loader.mjs +0 -247
  138. package/dist/esm/common/lodash.mjs +0 -32
  139. package/dist/esm/common/manifest.mjs +0 -30
  140. package/dist/esm/common/package.mjs +0 -56
  141. package/dist/esm/common/plugin.mjs +0 -48
  142. package/dist/esm/common/resolver.mjs +0 -46
  143. package/dist/esm/common/rspack.mjs +0 -25
  144. package/dist/esm/common/summary.mjs +0 -8
  145. package/dist/esm/common/time.mjs +0 -43
  146. package/dist/esm/common/url.mjs +0 -14
  147. package/dist/esm/error/error.mjs +0 -154
  148. package/dist/esm/error/index.mjs +0 -3
  149. package/dist/esm/error/transform.mjs +0 -138
  150. package/dist/esm/error/utils.mjs +0 -22
  151. package/dist/esm/index.mjs +0 -3
  152. package/dist/esm/rule-utils/document/document.mjs +0 -58
  153. package/dist/esm/rule-utils/document/index.mjs +0 -3
  154. package/dist/esm/rule-utils/document/server.mjs +0 -12
  155. package/dist/esm/rule-utils/document/types.mjs +0 -0
  156. package/dist/esm/rule-utils/index.mjs +0 -2
  157. package/dist/esm/rule-utils/parser/asserts.mjs +0 -104
  158. package/dist/esm/rule-utils/parser/index.mjs +0 -4
  159. package/dist/esm/rule-utils/parser/parser.mjs +0 -23
  160. package/dist/esm/rule-utils/parser/types.mjs +0 -7
  161. package/dist/esm/rule-utils/parser/utils.mjs +0 -109
  162. package/dist/type/build/envinfo.d.ts.map +0 -1
  163. package/dist/type/build/file/cache.d.ts.map +0 -1
  164. package/dist/type/build/file/index.d.ts +0 -4
  165. package/dist/type/build/file/index.d.ts.map +0 -1
  166. package/dist/type/build/file/sharding.d.ts.map +0 -1
  167. package/dist/type/build/index.d.ts.map +0 -1
  168. package/dist/type/build/json.d.ts.map +0 -1
  169. package/dist/type/build/process.d.ts.map +0 -1
  170. package/dist/type/build/server.d.ts.map +0 -1
  171. package/dist/type/common/alerts.d.ts.map +0 -1
  172. package/dist/type/common/algorithm.d.ts.map +0 -1
  173. package/dist/type/common/bundle.d.ts.map +0 -1
  174. package/dist/type/common/crypto.d.ts.map +0 -1
  175. package/dist/type/common/data/index.d.ts.map +0 -1
  176. package/dist/type/common/file.d.ts.map +0 -1
  177. package/dist/type/common/global-config.d.ts.map +0 -1
  178. package/dist/type/common/graph/assets.d.ts.map +0 -1
  179. package/dist/type/common/graph/chunk.d.ts.map +0 -1
  180. package/dist/type/common/graph/dependency.d.ts.map +0 -1
  181. package/dist/type/common/graph/entrypoints.d.ts.map +0 -1
  182. package/dist/type/common/graph/index.d.ts.map +0 -1
  183. package/dist/type/common/graph/modules.d.ts.map +0 -1
  184. package/dist/type/common/index.d.ts.map +0 -1
  185. package/dist/type/common/loader.d.ts.map +0 -1
  186. package/dist/type/common/lodash.d.ts.map +0 -1
  187. package/dist/type/common/manifest.d.ts.map +0 -1
  188. package/dist/type/common/package.d.ts.map +0 -1
  189. package/dist/type/common/plugin.d.ts.map +0 -1
  190. package/dist/type/common/resolver.d.ts.map +0 -1
  191. package/dist/type/common/rspack.d.ts.map +0 -1
  192. package/dist/type/common/summary.d.ts.map +0 -1
  193. package/dist/type/common/time.d.ts.map +0 -1
  194. package/dist/type/common/url.d.ts.map +0 -1
  195. package/dist/type/error/error.d.ts.map +0 -1
  196. package/dist/type/error/index.d.ts.map +0 -1
  197. package/dist/type/error/transform.d.ts.map +0 -1
  198. package/dist/type/error/utils.d.ts.map +0 -1
  199. package/dist/type/index.d.ts +0 -3
  200. package/dist/type/index.d.ts.map +0 -1
  201. package/dist/type/logger.d.ts.map +0 -1
  202. package/dist/type/rule-utils/document/document.d.ts.map +0 -1
  203. package/dist/type/rule-utils/document/index.d.ts.map +0 -1
  204. package/dist/type/rule-utils/document/server.d.ts.map +0 -1
  205. package/dist/type/rule-utils/document/types.d.ts.map +0 -1
  206. package/dist/type/rule-utils/index.d.ts.map +0 -1
  207. package/dist/type/rule-utils/parser/asserts.d.ts.map +0 -1
  208. package/dist/type/rule-utils/parser/index.d.ts.map +0 -1
  209. package/dist/type/rule-utils/parser/parser.d.ts.map +0 -1
  210. package/dist/type/rule-utils/parser/types.d.ts.map +0 -1
  211. package/dist/type/rule-utils/parser/utils.d.ts.map +0 -1
@@ -33,4 +33,3 @@ export declare class DevToolError extends Error implements Err.DevToolErrorInsta
33
33
  setCodeFrame(opt: Err.CodeFrameOption): void;
34
34
  isSame(error: Err.DevToolErrorInstance): boolean;
35
35
  }
36
- //# sourceMappingURL=error.d.ts.map
@@ -1,3 +1,2 @@
1
1
  export * from './error';
2
2
  export { printErrors } from './utils';
3
- //# sourceMappingURL=index.d.ts.map
@@ -1,4 +1,3 @@
1
1
  import { Err } from '@rsdoctor/types';
2
2
  import { DevToolError } from './error';
3
3
  export declare function transform(err: any, opt?: Err.DevToolErrorParams): DevToolError;
4
- //# sourceMappingURL=transform.d.ts.map
@@ -2,4 +2,3 @@ import { Err, Logger } from '@rsdoctor/types';
2
2
  export declare function toLevel(level: keyof typeof Err.ErrorLevel): Err.ErrorLevel;
3
3
  export declare function insertSpace(rawLines: string, line: number, width: number): string;
4
4
  export declare function printErrors({ errors, warnings }: Err.DevToolErrorsData, logLevel?: Logger.LogLevelName): string;
5
- //# sourceMappingURL=utils.d.ts.map
package/dist/error.cjs ADDED
@@ -0,0 +1,310 @@
1
+ "use strict";
2
+ let __rslib_import_meta_url__ = 'undefined' == typeof document ? new (require('url'.replace('', ''))).URL('file:' + __filename).href : document.currentScript && document.currentScript.src || new URL('main.js', document.baseURI).href;
3
+ var __webpack_require__ = {};
4
+ __webpack_require__.n = (module)=>{
5
+ var getter = module && module.__esModule ? ()=>module.default : ()=>module;
6
+ return __webpack_require__.d(getter, {
7
+ a: getter
8
+ }), getter;
9
+ }, __webpack_require__.d = (exports1, definition)=>{
10
+ for(var key in definition)__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key) && Object.defineProperty(exports1, key, {
11
+ enumerable: !0,
12
+ get: definition[key]
13
+ });
14
+ }, __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop), __webpack_require__.r = (exports1)=>{
15
+ 'undefined' != typeof Symbol && Symbol.toStringTag && Object.defineProperty(exports1, Symbol.toStringTag, {
16
+ value: 'Module'
17
+ }), Object.defineProperty(exports1, '__esModule', {
18
+ value: !0
19
+ });
20
+ };
21
+ var __webpack_exports__ = {};
22
+ __webpack_require__.r(__webpack_exports__), __webpack_require__.d(__webpack_exports__, {
23
+ DevToolError: ()=>DevToolError,
24
+ printErrors: ()=>printErrors
25
+ });
26
+ let code_frame_namespaceObject = require("@babel/code-frame"), types_namespaceObject = require("@rsdoctor/types"), external_picocolors_namespaceObject = require("picocolors"), external_deep_eql_namespaceObject = require("deep-eql");
27
+ var external_deep_eql_default = __webpack_require__.n(external_deep_eql_namespaceObject);
28
+ let external_strip_ansi_namespaceObject = require("strip-ansi");
29
+ var external_strip_ansi_default = __webpack_require__.n(external_strip_ansi_namespaceObject);
30
+ function isEsbuildError(err) {
31
+ return 'pluginName' in err && 'text' in err && 'location' in err;
32
+ }
33
+ function isBabelError(err) {
34
+ return 'code' in err && 'reasonCode' in err;
35
+ }
36
+ function isDiagnosticError(err) {
37
+ return 'severity' in err && 'title' in err;
38
+ }
39
+ function parseBabelErrorMessage(input) {
40
+ let lines = external_strip_ansi_default()(input).split('\n'), filePath = lines[0].replace(/^([^:]+):.*/, '$1');
41
+ return {
42
+ message: lines[0].replace(/.*: (.*) \(\d+:\d+\)*/, '$1'),
43
+ filePath,
44
+ lineText: lines.find((line)=>line.startsWith('> '))?.replace(/> \d+ \| /, '') ?? ''
45
+ };
46
+ }
47
+ function clearMessage(str) {
48
+ return external_strip_ansi_default()(str).replace(/.*: (.*)\n\n[\s\S]*/g, '$1');
49
+ }
50
+ function clearStack(str) {
51
+ return str.slice(str.indexOf(' at')).replace(/\s*at(.*) \((.*)\)/g, '$1\n$2\n');
52
+ }
53
+ function transformEsbuildError(err, opt) {
54
+ if (isEsbuildError(err)) {
55
+ let errorCode = opt?.code ?? 'ESBUILD_ERROR', speedyError = 'object' == typeof err.detail ? DevToolError.from(err.detail) : new DevToolError(errorCode, clearMessage(err.text), {
56
+ ...opt,
57
+ hint: err.location?.suggestion,
58
+ codeFrame: {
59
+ filePath: err.text.split(':')[0]
60
+ }
61
+ });
62
+ return err.location && speedyError.setCodeFrame({
63
+ filePath: err.location.file,
64
+ lineText: err.location.lineText,
65
+ length: err.location.length,
66
+ start: {
67
+ line: err.location.line,
68
+ column: err.location.column + 1
69
+ }
70
+ }), speedyError;
71
+ }
72
+ }
73
+ function transformBabelError(err, opt) {
74
+ if (isBabelError(err)) {
75
+ let errorCode = opt?.code ?? err.code ?? 'BABEL', title = err.reasonCode, errorParsed = parseBabelErrorMessage(err.message), speedyError = new DevToolError(title, errorParsed.message, {
76
+ ...opt,
77
+ code: errorCode,
78
+ stack: err.stack && clearStack(err.stack)
79
+ });
80
+ return err.loc && speedyError.setCodeFrame({
81
+ ...errorParsed,
82
+ start: {
83
+ line: err.loc.line,
84
+ column: err.loc.column + 1
85
+ }
86
+ }), speedyError;
87
+ }
88
+ }
89
+ function transformNormalError(err, opt) {
90
+ if (err instanceof Error) {
91
+ let filePath = [][0]?.getFileName?.();
92
+ return new DevToolError(err.name, clearMessage(err.message), {
93
+ ...opt,
94
+ codeFrame: filePath ? {
95
+ filePath
96
+ } : void 0,
97
+ stack: err.stack && clearStack(err.stack)
98
+ });
99
+ }
100
+ }
101
+ function transformErrorLike(err, opt) {
102
+ if (err && 'object' == typeof err && err.message) {
103
+ let filePath = [][0]?.getFileName?.();
104
+ return new DevToolError(err.name || 'UNKNOWN_ERROR', clearMessage(err.message), {
105
+ ...opt,
106
+ codeFrame: filePath ? {
107
+ filePath
108
+ } : void 0,
109
+ stack: err.stack && clearStack(err.stack)
110
+ });
111
+ }
112
+ }
113
+ function transformDiagnostic(err, opt) {
114
+ if (isDiagnosticError(err)) return new DevToolError(err.title, err.message, {
115
+ ...err,
116
+ ...opt,
117
+ hint: err.suggestions?.description,
118
+ fixData: err.suggestions?.fixData,
119
+ codeFrame: err.document ? {
120
+ filePath: err.document.path,
121
+ fileContent: err.document.content,
122
+ start: err.document.range.start,
123
+ end: err.document.range.end
124
+ } : void 0,
125
+ level: types_namespaceObject.Linter.Severity[err.severity]
126
+ });
127
+ }
128
+ function defaultError(err, opt) {
129
+ return new DevToolError('UNKNOWN_ERROR', JSON.stringify(err), opt);
130
+ }
131
+ function transform(err, opt) {
132
+ for (let fn of [
133
+ transformEsbuildError,
134
+ transformBabelError,
135
+ transformDiagnostic,
136
+ transformNormalError,
137
+ transformErrorLike
138
+ ]){
139
+ let result = fn(err, opt);
140
+ if (result) return result;
141
+ }
142
+ return defaultError(err, opt);
143
+ }
144
+ function toLevel(level) {
145
+ return types_namespaceObject.Err.ErrorLevel[level];
146
+ }
147
+ function insertSpace(rawLines, line, width) {
148
+ let lines = rawLines.split('\n');
149
+ return lines[line - 1] = Array(width).fill(' ').join('') + lines[line - 1], lines.join('\n');
150
+ }
151
+ function printErrors({ errors, warnings }, logLevel = 'Error') {
152
+ let onlyError = 'Error' === logLevel;
153
+ if ('Silent' === logLevel || onlyError && 0 === errors.length || !onlyError && 0 === errors.length && 0 === warnings.length) return '';
154
+ let msgs = [];
155
+ if (onlyError) msgs.push(`Build failed with ${errors.length} error:`, ...errors.map((item)=>item.toString()), '');
156
+ else {
157
+ let title = 0 === errors.length ? `Build succuss with ${warnings.length} warning:` : `Build failed with ${errors.length} error, ${warnings.length} warning:`;
158
+ msgs.push(title, ...errors.map((item)=>item.toString()), ...warnings.map((item)=>item.toString()), '');
159
+ }
160
+ return msgs.join('\n\n');
161
+ }
162
+ function isUndefined(value) {
163
+ return void 0 === value;
164
+ }
165
+ function isNumber(value) {
166
+ return 'number' == typeof value && !Number.isNaN(value);
167
+ }
168
+ function isObject(value) {
169
+ return 'object' == typeof value && null !== value;
170
+ }
171
+ function isEmpty(value) {
172
+ return null == value || Array.isArray(value) && 0 === value.length || 'object' == typeof value && 0 === Object.keys(value).length;
173
+ }
174
+ function last(array) {
175
+ return array[array.length - 1];
176
+ }
177
+ function compact(array) {
178
+ return array.filter((item)=>null != item || !item);
179
+ }
180
+ function isNil(value) {
181
+ return null == value;
182
+ }
183
+ let isPlainObject = (obj)=>null !== obj && 'object' == typeof obj && Object.getPrototypeOf(obj) === Object.prototype, isString = (v)=>'string' == typeof v || !!v && 'object' == typeof v && !Array.isArray(v) && '[object String]' === ({}).toString.call(v);
184
+ function pick(obj, keys) {
185
+ let result = {};
186
+ for(let i = 0; i < keys.length; i++){
187
+ let key = keys[i];
188
+ Object.hasOwn(obj, key) && (result[key] = obj[key]);
189
+ }
190
+ return result;
191
+ }
192
+ let id = 1;
193
+ class DevToolError extends Error {
194
+ static from(err, opt) {
195
+ return err instanceof DevToolError ? err : transform(err, opt);
196
+ }
197
+ id;
198
+ code;
199
+ category;
200
+ title;
201
+ detail;
202
+ fixData;
203
+ hint;
204
+ referenceUrl;
205
+ _codeFrame;
206
+ _controller = {
207
+ noStack: !0,
208
+ noColor: !1
209
+ };
210
+ _level;
211
+ constructor(title, message, opts){
212
+ super(message), this.id = id++, this.title = title, this.code = opts?.code, this.hint = opts?.hint, this.stack = opts?.stack, this.detail = opts?.detail, this.fixData = opts?.fixData, this.category = opts?.category, this.referenceUrl = opts?.referenceUrl, this._level = opts?.level ? toLevel(opts.level) : types_namespaceObject.Err.ErrorLevel.Error, this._codeFrame = opts?.codeFrame, this.setControllerOption(opts?.controller ?? {});
213
+ }
214
+ get level() {
215
+ return types_namespaceObject.Err.ErrorLevel[this._level];
216
+ }
217
+ get path() {
218
+ return this._codeFrame?.filePath;
219
+ }
220
+ set path(file) {
221
+ if (file) {
222
+ if (this._codeFrame) {
223
+ this._codeFrame.filePath = file;
224
+ return;
225
+ }
226
+ this._codeFrame = {
227
+ filePath: file
228
+ };
229
+ }
230
+ }
231
+ get codeFrame() {
232
+ return this._codeFrame;
233
+ }
234
+ printCodeFrame(print) {
235
+ let msgs = [], { _codeFrame: codeFrameOpt, _controller: controller } = this;
236
+ if (!codeFrameOpt) return msgs;
237
+ if ('start' in codeFrameOpt && codeFrameOpt.start) {
238
+ let { filePath, start } = codeFrameOpt;
239
+ if (msgs.push(`\n ${print.red(print.bold('File: '))}${print.bold(filePath)}:${start.line}${start.column ? `:${start.column}` : ''}`), 'fileContent' in codeFrameOpt) {
240
+ let { end, fileContent } = codeFrameOpt;
241
+ msgs.push((0, code_frame_namespaceObject.codeFrameColumns)(fileContent, {
242
+ start,
243
+ end
244
+ }, {
245
+ highlightCode: !controller.noColor
246
+ }));
247
+ } else if ('lineText' in codeFrameOpt) {
248
+ let { length, lineText } = codeFrameOpt, lineCodeFrame = (0, code_frame_namespaceObject.codeFrameColumns)(lineText, {
249
+ start: {
250
+ line: 1,
251
+ column: start.column
252
+ },
253
+ end: {
254
+ line: 1,
255
+ column: isNil(start.column) || isNil(length) ? void 0 : start.column + length
256
+ }
257
+ }, {
258
+ highlightCode: !controller.noColor
259
+ });
260
+ start.line > 1 && (lineCodeFrame = lineCodeFrame.replace(' 1 |', ` ${start.line} |`), start.line >= 10 && (lineCodeFrame = insertSpace(lineCodeFrame, 2, String(start.line).length - 1))), msgs.push(lineCodeFrame);
261
+ }
262
+ } else msgs.push(`\n ${print.red(print.bold('File: '))}${print.bold(codeFrameOpt.filePath)}\n`);
263
+ return msgs;
264
+ }
265
+ toString() {
266
+ let msgs = [], { code, title, message, hint, referenceUrl, _controller: controller } = this, print = (0, external_picocolors_namespaceObject.createColors)(!controller.noColor), mainColorPrint = this._level === types_namespaceObject.Err.ErrorLevel.Error ? print.red : print.yellow, codeText = code ? `${mainColorPrint(print.blue(code))}:` : '';
267
+ return msgs.push(mainColorPrint(print.bold(`[${codeText}${this.level}:${title.toUpperCase()}] `) + message)), msgs.push(...this.printCodeFrame(print)), (hint || referenceUrl) && msgs.push(''), hint && msgs.push(` ${print.blue(`HINT: ${hint}`)}`), referenceUrl && msgs.push(print.magenta(print.bold(` See: ${referenceUrl}`))), !controller.noStack && this.stack && msgs.push(print.red(print.bold(` Error Stack:\n${this.stack}\n`))), msgs.join('\n');
268
+ }
269
+ toData() {
270
+ return {
271
+ ...this.detail,
272
+ id: this.id,
273
+ category: this.category,
274
+ description: external_strip_ansi_default()(this.detail?.description ?? this.message),
275
+ title: this.title.toUpperCase(),
276
+ code: this.code,
277
+ level: this.level.toLowerCase()
278
+ };
279
+ }
280
+ toError() {
281
+ let error = Error();
282
+ return error.message = this.toString(), error.name = this.name, error.stack = this.stack, error;
283
+ }
284
+ toJSON() {
285
+ return {
286
+ message: this.toString(),
287
+ name: this.name,
288
+ stack: this.stack
289
+ };
290
+ }
291
+ setControllerOption(opt) {
292
+ this._controller = {
293
+ noStack: opt.noStack ?? this._controller.noStack ?? !0,
294
+ noColor: opt.noColor ?? this._controller.noColor ?? !1
295
+ };
296
+ }
297
+ setCodeFrame(opt) {
298
+ this._codeFrame = opt;
299
+ }
300
+ isSame(error) {
301
+ 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 && external_deep_eql_default()(this.codeFrame, error.codeFrame);
302
+ }
303
+ }
304
+ for(var __webpack_i__ in exports.DevToolError = __webpack_exports__.DevToolError, exports.printErrors = __webpack_exports__.printErrors, __webpack_exports__)-1 === [
305
+ "DevToolError",
306
+ "printErrors"
307
+ ].indexOf(__webpack_i__) && (exports[__webpack_i__] = __webpack_exports__[__webpack_i__]);
308
+ Object.defineProperty(exports, '__esModule', {
309
+ value: !0
310
+ });
package/dist/error.js ADDED
@@ -0,0 +1,232 @@
1
+ import { codeFrameColumns } from "@babel/code-frame";
2
+ import { Err, Linter } from "@rsdoctor/types";
3
+ import { createColors } from "picocolors";
4
+ import deep_eql from "deep-eql";
5
+ import strip_ansi from "strip-ansi";
6
+ function clearMessage(str) {
7
+ return strip_ansi(str).replace(/.*: (.*)\n\n[\s\S]*/g, '$1');
8
+ }
9
+ function clearStack(str) {
10
+ return str.slice(str.indexOf(' at')).replace(/\s*at(.*) \((.*)\)/g, '$1\n$2\n');
11
+ }
12
+ function transformEsbuildError(err, opt) {
13
+ if ('pluginName' in err && 'text' in err && 'location' in err) {
14
+ let errorCode = opt?.code ?? 'ESBUILD_ERROR', speedyError = 'object' == typeof err.detail ? DevToolError.from(err.detail) : new DevToolError(errorCode, clearMessage(err.text), {
15
+ ...opt,
16
+ hint: err.location?.suggestion,
17
+ codeFrame: {
18
+ filePath: err.text.split(':')[0]
19
+ }
20
+ });
21
+ return err.location && speedyError.setCodeFrame({
22
+ filePath: err.location.file,
23
+ lineText: err.location.lineText,
24
+ length: err.location.length,
25
+ start: {
26
+ line: err.location.line,
27
+ column: err.location.column + 1
28
+ }
29
+ }), speedyError;
30
+ }
31
+ }
32
+ function transformBabelError(err, opt) {
33
+ if ('code' in err && 'reasonCode' in err) {
34
+ let errorCode = opt?.code ?? err.code ?? 'BABEL', title = err.reasonCode, errorParsed = function(input) {
35
+ let lines = strip_ansi(input).split('\n'), filePath = lines[0].replace(/^([^:]+):.*/, '$1');
36
+ return {
37
+ message: lines[0].replace(/.*: (.*) \(\d+:\d+\)*/, '$1'),
38
+ filePath,
39
+ lineText: lines.find((line)=>line.startsWith('> '))?.replace(/> \d+ \| /, '') ?? ''
40
+ };
41
+ }(err.message), speedyError = new DevToolError(title, errorParsed.message, {
42
+ ...opt,
43
+ code: errorCode,
44
+ stack: err.stack && clearStack(err.stack)
45
+ });
46
+ return err.loc && speedyError.setCodeFrame({
47
+ ...errorParsed,
48
+ start: {
49
+ line: err.loc.line,
50
+ column: err.loc.column + 1
51
+ }
52
+ }), speedyError;
53
+ }
54
+ }
55
+ function transformNormalError(err, opt) {
56
+ if (err instanceof Error) {
57
+ let filePath = [][0]?.getFileName?.();
58
+ return new DevToolError(err.name, clearMessage(err.message), {
59
+ ...opt,
60
+ codeFrame: filePath ? {
61
+ filePath
62
+ } : void 0,
63
+ stack: err.stack && clearStack(err.stack)
64
+ });
65
+ }
66
+ }
67
+ function transformErrorLike(err, opt) {
68
+ if (err && 'object' == typeof err && err.message) {
69
+ let filePath = [][0]?.getFileName?.();
70
+ return new DevToolError(err.name || 'UNKNOWN_ERROR', clearMessage(err.message), {
71
+ ...opt,
72
+ codeFrame: filePath ? {
73
+ filePath
74
+ } : void 0,
75
+ stack: err.stack && clearStack(err.stack)
76
+ });
77
+ }
78
+ }
79
+ function transformDiagnostic(err, opt) {
80
+ if ('severity' in err && 'title' in err) return new DevToolError(err.title, err.message, {
81
+ ...err,
82
+ ...opt,
83
+ hint: err.suggestions?.description,
84
+ fixData: err.suggestions?.fixData,
85
+ codeFrame: err.document ? {
86
+ filePath: err.document.path,
87
+ fileContent: err.document.content,
88
+ start: err.document.range.start,
89
+ end: err.document.range.end
90
+ } : void 0,
91
+ level: Linter.Severity[err.severity]
92
+ });
93
+ }
94
+ function printErrors({ errors, warnings }, logLevel = 'Error') {
95
+ let onlyError = 'Error' === logLevel;
96
+ if ('Silent' === logLevel || onlyError && 0 === errors.length || !onlyError && 0 === errors.length && 0 === warnings.length) return '';
97
+ let msgs = [];
98
+ if (onlyError) msgs.push(`Build failed with ${errors.length} error:`, ...errors.map((item)=>item.toString()), '');
99
+ else {
100
+ let title = 0 === errors.length ? `Build succuss with ${warnings.length} warning:` : `Build failed with ${errors.length} error, ${warnings.length} warning:`;
101
+ msgs.push(title, ...errors.map((item)=>item.toString()), ...warnings.map((item)=>item.toString()), '');
102
+ }
103
+ return msgs.join('\n\n');
104
+ }
105
+ let id = 1;
106
+ class DevToolError extends Error {
107
+ static from(err, opt) {
108
+ if (err instanceof DevToolError) return err;
109
+ for (let fn of [
110
+ transformEsbuildError,
111
+ transformBabelError,
112
+ transformDiagnostic,
113
+ transformNormalError,
114
+ transformErrorLike
115
+ ]){
116
+ let result = fn(err, opt);
117
+ if (result) return result;
118
+ }
119
+ return new DevToolError('UNKNOWN_ERROR', JSON.stringify(err), opt);
120
+ }
121
+ id;
122
+ code;
123
+ category;
124
+ title;
125
+ detail;
126
+ fixData;
127
+ hint;
128
+ referenceUrl;
129
+ _codeFrame;
130
+ _controller = {
131
+ noStack: !0,
132
+ noColor: !1
133
+ };
134
+ _level;
135
+ constructor(title, message, opts){
136
+ var level;
137
+ super(message), this.id = id++, this.title = title, this.code = opts?.code, this.hint = opts?.hint, this.stack = opts?.stack, this.detail = opts?.detail, this.fixData = opts?.fixData, this.category = opts?.category, this.referenceUrl = opts?.referenceUrl, this._level = opts?.level ? (level = opts.level, Err.ErrorLevel[level]) : Err.ErrorLevel.Error, this._codeFrame = opts?.codeFrame, this.setControllerOption(opts?.controller ?? {});
138
+ }
139
+ get level() {
140
+ return Err.ErrorLevel[this._level];
141
+ }
142
+ get path() {
143
+ return this._codeFrame?.filePath;
144
+ }
145
+ set path(file) {
146
+ if (file) {
147
+ if (this._codeFrame) {
148
+ this._codeFrame.filePath = file;
149
+ return;
150
+ }
151
+ this._codeFrame = {
152
+ filePath: file
153
+ };
154
+ }
155
+ }
156
+ get codeFrame() {
157
+ return this._codeFrame;
158
+ }
159
+ printCodeFrame(print) {
160
+ let msgs = [], { _codeFrame: codeFrameOpt, _controller: controller } = this;
161
+ if (!codeFrameOpt) return msgs;
162
+ if ('start' in codeFrameOpt && codeFrameOpt.start) {
163
+ let { filePath, start } = codeFrameOpt;
164
+ if (msgs.push(`\n ${print.red(print.bold('File: '))}${print.bold(filePath)}:${start.line}${start.column ? `:${start.column}` : ''}`), 'fileContent' in codeFrameOpt) {
165
+ let { end, fileContent } = codeFrameOpt;
166
+ msgs.push(codeFrameColumns(fileContent, {
167
+ start,
168
+ end
169
+ }, {
170
+ highlightCode: !controller.noColor
171
+ }));
172
+ } else if ('lineText' in codeFrameOpt) {
173
+ let { length, lineText } = codeFrameOpt, lineCodeFrame = codeFrameColumns(lineText, {
174
+ start: {
175
+ line: 1,
176
+ column: start.column
177
+ },
178
+ end: {
179
+ line: 1,
180
+ column: null == start.column || null == length ? void 0 : start.column + length
181
+ }
182
+ }, {
183
+ highlightCode: !controller.noColor
184
+ });
185
+ start.line > 1 && (lineCodeFrame = lineCodeFrame.replace(' 1 |', ` ${start.line} |`), start.line >= 10 && (lineCodeFrame = function(rawLines, line, width) {
186
+ let lines = rawLines.split('\n');
187
+ return lines[1] = Array(width).fill(' ').join('') + lines[1], lines.join('\n');
188
+ }(lineCodeFrame, 2, String(start.line).length - 1))), msgs.push(lineCodeFrame);
189
+ }
190
+ } else msgs.push(`\n ${print.red(print.bold('File: '))}${print.bold(codeFrameOpt.filePath)}\n`);
191
+ return msgs;
192
+ }
193
+ toString() {
194
+ let msgs = [], { code, title, message, hint, referenceUrl, _controller: controller } = this, print = createColors(!controller.noColor), mainColorPrint = this._level === Err.ErrorLevel.Error ? print.red : print.yellow, codeText = code ? `${mainColorPrint(print.blue(code))}:` : '';
195
+ return msgs.push(mainColorPrint(print.bold(`[${codeText}${this.level}:${title.toUpperCase()}] `) + message)), msgs.push(...this.printCodeFrame(print)), (hint || referenceUrl) && msgs.push(''), hint && msgs.push(` ${print.blue(`HINT: ${hint}`)}`), referenceUrl && msgs.push(print.magenta(print.bold(` See: ${referenceUrl}`))), !controller.noStack && this.stack && msgs.push(print.red(print.bold(` Error Stack:\n${this.stack}\n`))), msgs.join('\n');
196
+ }
197
+ toData() {
198
+ return {
199
+ ...this.detail,
200
+ id: this.id,
201
+ category: this.category,
202
+ description: strip_ansi(this.detail?.description ?? this.message),
203
+ title: this.title.toUpperCase(),
204
+ code: this.code,
205
+ level: this.level.toLowerCase()
206
+ };
207
+ }
208
+ toError() {
209
+ let error = Error();
210
+ return error.message = this.toString(), error.name = this.name, error.stack = this.stack, error;
211
+ }
212
+ toJSON() {
213
+ return {
214
+ message: this.toString(),
215
+ name: this.name,
216
+ stack: this.stack
217
+ };
218
+ }
219
+ setControllerOption(opt) {
220
+ this._controller = {
221
+ noStack: opt.noStack ?? this._controller.noStack ?? !0,
222
+ noColor: opt.noColor ?? this._controller.noColor ?? !1
223
+ };
224
+ }
225
+ setCodeFrame(opt) {
226
+ this._codeFrame = opt;
227
+ }
228
+ isSame(error) {
229
+ 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 && deep_eql(this.codeFrame, error.codeFrame);
230
+ }
231
+ }
232
+ export { DevToolError, printErrors };
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+ let __rslib_import_meta_url__ = 'undefined' == typeof document ? new (require('url'.replace('', ''))).URL('file:' + __filename).href : document.currentScript && document.currentScript.src || new URL('main.js', document.baseURI).href;
3
+ var __webpack_require__ = {};
4
+ __webpack_require__.n = (module)=>{
5
+ var getter = module && module.__esModule ? ()=>module.default : ()=>module;
6
+ return __webpack_require__.d(getter, {
7
+ a: getter
8
+ }), getter;
9
+ }, __webpack_require__.d = (exports1, definition)=>{
10
+ for(var key in definition)__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key) && Object.defineProperty(exports1, key, {
11
+ enumerable: !0,
12
+ get: definition[key]
13
+ });
14
+ }, __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop), __webpack_require__.r = (exports1)=>{
15
+ 'undefined' != typeof Symbol && Symbol.toStringTag && Object.defineProperty(exports1, Symbol.toStringTag, {
16
+ value: 'Module'
17
+ }), Object.defineProperty(exports1, '__esModule', {
18
+ value: !0
19
+ });
20
+ };
21
+ var __webpack_exports__ = {};
22
+ __webpack_require__.r(__webpack_exports__), __webpack_require__.d(__webpack_exports__, {
23
+ debug: ()=>debug,
24
+ chalk: ()=>external_picocolors_default(),
25
+ logger: ()=>rsdoctorLogger,
26
+ timeEnd: ()=>timeEnd,
27
+ time: ()=>time
28
+ });
29
+ let external_picocolors_namespaceObject = require("picocolors");
30
+ var external_picocolors_default = __webpack_require__.n(external_picocolors_namespaceObject);
31
+ let external_rslog_namespaceObject = require("rslog"), types_namespaceObject = require("@rsdoctor/types");
32
+ function debug(getMsg, prefix = '') {
33
+ process.env.DEBUG && (external_rslog_namespaceObject.logger.level = 'verbose', external_rslog_namespaceObject.logger.debug(`${prefix} ${getMsg()}`));
34
+ }
35
+ let rsdoctorLogger = (0, external_rslog_namespaceObject.createLogger)();
36
+ rsdoctorLogger.override({
37
+ log: (message)=>{
38
+ console.log(`${external_picocolors_default().green('[RSDOCTOR LOG]')} ${message}`);
39
+ },
40
+ info: (message)=>{
41
+ console.log(`${external_picocolors_default().yellow('[RSDOCTOR INFO]')} ${message}`);
42
+ },
43
+ warn: (message)=>{
44
+ console.warn(`${external_picocolors_default().yellow('[RSDOCTOR WARN]')} ${message}`);
45
+ },
46
+ start: (message)=>{
47
+ console.log(`${external_picocolors_default().green('[RSDOCTOR START]')} ${message}`);
48
+ },
49
+ ready: (message)=>{
50
+ console.log(`${external_picocolors_default().green('[RSDOCTOR READY]')} ${message}`);
51
+ },
52
+ error: (message)=>{
53
+ console.error(`${external_picocolors_default().red('[RSDOCTOR ERROR]')} ${message}`);
54
+ },
55
+ success: (message)=>{
56
+ console.error(`${external_picocolors_default().green('[RSDOCTOR SUCCESS]')} ${message}`);
57
+ },
58
+ debug: (message)=>{
59
+ process.env.DEBUG && console.log(`${external_picocolors_default().blue('[RSDOCTOR DEBUG]')} ${message}`);
60
+ }
61
+ });
62
+ let _timers = new Map();
63
+ function time(label) {
64
+ process.env.DEBUG === types_namespaceObject.Constants.RsdoctorProcessEnvDebugKey && (_timers.has(label) || _timers.set(label, Date.now()));
65
+ }
66
+ function timeEnd(label) {
67
+ if (process.env.DEBUG !== types_namespaceObject.Constants.RsdoctorProcessEnvDebugKey) return;
68
+ let start = _timers.get(label);
69
+ if (null == start) return void external_rslog_namespaceObject.logger.debug(`Timer '${label}' does not exist.`);
70
+ let duration = Date.now() - start;
71
+ external_rslog_namespaceObject.logger.debug(`Timer '${label}' ended: ${duration}ms`), _timers.delete(label);
72
+ }
73
+ for(var __webpack_i__ in exports.chalk = __webpack_exports__.chalk, exports.debug = __webpack_exports__.debug, exports.logger = __webpack_exports__.logger, exports.time = __webpack_exports__.time, exports.timeEnd = __webpack_exports__.timeEnd, __webpack_exports__)-1 === [
74
+ "chalk",
75
+ "debug",
76
+ "logger",
77
+ "time",
78
+ "timeEnd"
79
+ ].indexOf(__webpack_i__) && (exports[__webpack_i__] = __webpack_exports__[__webpack_i__]);
80
+ Object.defineProperty(exports, '__esModule', {
81
+ value: !0
82
+ });
@@ -7,4 +7,3 @@ declare const rsdoctorLogger: import("rslog").Logger;
7
7
  declare function time(label: string): void;
8
8
  declare function timeEnd(label: string): void;
9
9
  export { time, timeEnd, c as chalk, rsdoctorLogger as logger };
10
- //# sourceMappingURL=logger.d.ts.map