@rsdoctor/utils 1.1.9 → 1.2.0-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 (151) hide show
  1. package/dist/cjs/build/envinfo.js +107 -95
  2. package/dist/cjs/build/file/cache.js +65 -56
  3. package/dist/cjs/build/file/index.js +78 -41
  4. package/dist/cjs/build/file/sharding.js +90 -78
  5. package/dist/cjs/build/index.js +49 -47
  6. package/dist/cjs/build/json.js +91 -98
  7. package/dist/cjs/build/process.js +47 -42
  8. package/dist/cjs/build/server.js +110 -87
  9. package/dist/cjs/common/alerts.js +46 -44
  10. package/dist/cjs/common/algorithm.js +63 -54
  11. package/dist/cjs/common/bundle.js +52 -46
  12. package/dist/cjs/common/crypto.js +47 -46
  13. package/dist/cjs/common/data/index.js +381 -455
  14. package/dist/cjs/common/file.js +44 -0
  15. package/dist/cjs/common/global-config.js +72 -64
  16. package/dist/cjs/common/graph/assets.js +274 -308
  17. package/dist/cjs/common/graph/chunk.js +66 -63
  18. package/dist/cjs/common/graph/dependency.js +42 -32
  19. package/dist/cjs/common/graph/entrypoints.js +33 -25
  20. package/dist/cjs/common/graph/index.js +93 -27
  21. package/dist/cjs/common/graph/modules.js +113 -98
  22. package/dist/cjs/common/index.js +101 -83
  23. package/dist/cjs/common/loader.js +277 -273
  24. package/dist/cjs/common/lodash.js +73 -62
  25. package/dist/cjs/common/manifest.js +57 -59
  26. package/dist/cjs/common/package.js +79 -80
  27. package/dist/cjs/common/plugin.js +78 -73
  28. package/dist/cjs/common/resolver.js +79 -69
  29. package/dist/cjs/common/rspack.js +43 -34
  30. package/dist/cjs/common/summary.js +39 -31
  31. package/dist/cjs/common/time.js +73 -78
  32. package/dist/cjs/common/url.js +44 -36
  33. package/dist/cjs/error/error.js +183 -220
  34. package/dist/cjs/error/index.js +70 -28
  35. package/dist/cjs/error/transform.js +150 -143
  36. package/dist/cjs/error/utils.js +54 -58
  37. package/dist/cjs/index.js +37 -38
  38. package/dist/cjs/logger.js +99 -73
  39. package/dist/cjs/rule-utils/document/document.js +83 -82
  40. package/dist/cjs/rule-utils/document/index.js +75 -23
  41. package/dist/cjs/rule-utils/document/server.js +42 -35
  42. package/dist/cjs/rule-utils/document/types.js +17 -15
  43. package/dist/cjs/rule-utils/index.js +66 -21
  44. package/dist/cjs/rule-utils/parser/asserts.js +129 -147
  45. package/dist/cjs/rule-utils/parser/index.js +84 -25
  46. package/dist/cjs/rule-utils/parser/parser.js +50 -85
  47. package/dist/cjs/rule-utils/parser/types.js +38 -30
  48. package/dist/cjs/rule-utils/parser/utils.js +141 -168
  49. package/dist/esm/build/envinfo.mjs +57 -0
  50. package/dist/esm/build/file/cache.mjs +23 -0
  51. package/dist/esm/build/file/index.mjs +4 -0
  52. package/dist/esm/build/file/sharding.mjs +50 -0
  53. package/dist/esm/build/index.mjs +6 -0
  54. package/dist/esm/build/json.mjs +66 -0
  55. package/dist/esm/build/process.mjs +17 -0
  56. package/dist/esm/build/server.mjs +96 -0
  57. package/dist/esm/common/alerts.mjs +17 -0
  58. package/dist/esm/common/algorithm.mjs +32 -0
  59. package/dist/esm/common/bundle.mjs +22 -0
  60. package/dist/esm/common/crypto.mjs +17 -0
  61. package/dist/esm/common/data/index.mjs +354 -0
  62. package/dist/esm/common/file.mjs +7 -0
  63. package/dist/esm/common/global-config.mjs +32 -0
  64. package/dist/esm/common/graph/assets.mjs +238 -0
  65. package/dist/esm/common/graph/chunk.mjs +32 -0
  66. package/dist/esm/common/graph/dependency.mjs +10 -0
  67. package/dist/esm/common/graph/entrypoints.mjs +4 -0
  68. package/dist/esm/common/graph/index.mjs +5 -0
  69. package/dist/esm/common/graph/modules.mjs +78 -0
  70. package/dist/esm/common/index.mjs +19 -0
  71. package/dist/esm/common/loader.mjs +247 -0
  72. package/dist/esm/common/lodash.mjs +32 -0
  73. package/dist/esm/common/manifest.mjs +30 -0
  74. package/dist/esm/common/package.mjs +56 -0
  75. package/dist/esm/common/plugin.mjs +48 -0
  76. package/dist/esm/common/resolver.mjs +46 -0
  77. package/dist/esm/common/rspack.mjs +9 -0
  78. package/dist/esm/common/summary.mjs +8 -0
  79. package/dist/esm/common/time.mjs +43 -0
  80. package/dist/esm/common/url.mjs +14 -0
  81. package/dist/esm/error/error.mjs +154 -0
  82. package/dist/esm/error/index.mjs +3 -0
  83. package/dist/esm/error/transform.mjs +138 -0
  84. package/dist/esm/error/utils.mjs +22 -0
  85. package/dist/esm/index.mjs +3 -0
  86. package/dist/esm/logger.mjs +49 -0
  87. package/dist/esm/rule-utils/document/document.mjs +58 -0
  88. package/dist/esm/rule-utils/document/index.mjs +3 -0
  89. package/dist/esm/rule-utils/document/server.mjs +12 -0
  90. package/dist/esm/rule-utils/index.mjs +2 -0
  91. package/dist/esm/rule-utils/parser/asserts.mjs +104 -0
  92. package/dist/esm/rule-utils/parser/index.mjs +4 -0
  93. package/dist/esm/rule-utils/parser/parser.mjs +23 -0
  94. package/dist/esm/rule-utils/parser/types.mjs +7 -0
  95. package/dist/esm/rule-utils/parser/utils.mjs +109 -0
  96. package/dist/type/common/file.d.ts +3 -0
  97. package/dist/type/common/file.d.ts.map +1 -0
  98. package/dist/type/common/graph/modules.d.ts +1 -1
  99. package/dist/type/common/graph/modules.d.ts.map +1 -1
  100. package/dist/type/common/index.d.ts +1 -0
  101. package/dist/type/common/index.d.ts.map +1 -1
  102. package/dist/type/logger.d.ts +3 -0
  103. package/dist/type/logger.d.ts.map +1 -1
  104. package/package.json +13 -12
  105. package/dist/esm/build/envinfo.js +0 -75
  106. package/dist/esm/build/file/cache.js +0 -30
  107. package/dist/esm/build/file/index.js +0 -7
  108. package/dist/esm/build/file/sharding.js +0 -50
  109. package/dist/esm/build/index.js +0 -12
  110. package/dist/esm/build/json.js +0 -85
  111. package/dist/esm/build/process.js +0 -24
  112. package/dist/esm/build/server.js +0 -96
  113. package/dist/esm/common/alerts.js +0 -25
  114. package/dist/esm/common/algorithm.js +0 -39
  115. package/dist/esm/common/bundle.js +0 -30
  116. package/dist/esm/common/crypto.js +0 -28
  117. package/dist/esm/common/data/index.js +0 -428
  118. package/dist/esm/common/global-config.js +0 -38
  119. package/dist/esm/common/graph/assets.js +0 -310
  120. package/dist/esm/common/graph/chunk.js +0 -49
  121. package/dist/esm/common/graph/dependency.js +0 -14
  122. package/dist/esm/common/graph/entrypoints.js +0 -6
  123. package/dist/esm/common/graph/index.js +0 -5
  124. package/dist/esm/common/graph/modules.js +0 -90
  125. package/dist/esm/common/index.js +0 -36
  126. package/dist/esm/common/loader.js +0 -279
  127. package/dist/esm/common/lodash.js +0 -49
  128. package/dist/esm/common/manifest.js +0 -46
  129. package/dist/esm/common/package.js +0 -71
  130. package/dist/esm/common/plugin.js +0 -59
  131. package/dist/esm/common/resolver.js +0 -54
  132. package/dist/esm/common/rspack.js +0 -12
  133. package/dist/esm/common/summary.js +0 -10
  134. package/dist/esm/common/time.js +0 -64
  135. package/dist/esm/common/url.js +0 -20
  136. package/dist/esm/error/error.js +0 -202
  137. package/dist/esm/error/index.js +0 -5
  138. package/dist/esm/error/transform.js +0 -141
  139. package/dist/esm/error/utils.js +0 -40
  140. package/dist/esm/index.js +0 -6
  141. package/dist/esm/logger.js +0 -43
  142. package/dist/esm/rule-utils/document/document.js +0 -67
  143. package/dist/esm/rule-utils/document/index.js +0 -3
  144. package/dist/esm/rule-utils/document/server.js +0 -17
  145. package/dist/esm/rule-utils/index.js +0 -2
  146. package/dist/esm/rule-utils/parser/asserts.js +0 -132
  147. package/dist/esm/rule-utils/parser/index.js +0 -4
  148. package/dist/esm/rule-utils/parser/parser.js +0 -58
  149. package/dist/esm/rule-utils/parser/types.js +0 -9
  150. package/dist/esm/rule-utils/parser/utils.js +0 -164
  151. /package/dist/esm/rule-utils/document/{types.js → types.mjs} +0 -0
@@ -1,85 +0,0 @@
1
- import { JsonStreamStringify } from "json-stream-stringify";
2
- import { dirname, join } from "path";
3
- import { Package } from "../common";
4
- import { Transform } from "stream";
5
- const maxFileSize = 1024 * 1024 * 400;
6
- function stringify(json, replacer, space, cycle) {
7
- const jsonList = [];
8
- if (json && typeof json === "object") {
9
- return new Promise((resolve, reject) => {
10
- const stream = new JsonStreamStringify(json, replacer, space, cycle);
11
- let currentLength = 0;
12
- let currentContent = "";
13
- const batchProcessor = new Transform({
14
- readableObjectMode: true,
15
- transform(chunk, _encoding, callback) {
16
- const lines = chunk.toString().split("\\n");
17
- lines.forEach((line) => {
18
- if (currentLength + line.length > maxFileSize) {
19
- jsonList.push(currentContent);
20
- currentContent = "";
21
- currentLength = 0;
22
- }
23
- if (line.length) {
24
- currentContent += line;
25
- currentLength += line.length;
26
- }
27
- });
28
- callback();
29
- }
30
- });
31
- stream.pipe(batchProcessor).on("data", (line) => {
32
- if (currentLength + line.length > maxFileSize) {
33
- jsonList.push(currentContent);
34
- currentContent = "";
35
- currentLength = 0;
36
- }
37
- if (line.length) {
38
- currentContent += line;
39
- currentLength += line.length;
40
- }
41
- }).on("end", () => {
42
- if (jsonList.length < 1) {
43
- jsonList.push(currentContent);
44
- }
45
- resolve(jsonList);
46
- }).on("error", (err) => {
47
- return reject(err);
48
- });
49
- });
50
- }
51
- return Promise.resolve(JSON.stringify(json, replacer, space));
52
- }
53
- const readPackageJson = (file, readFile) => {
54
- let result;
55
- let current = file;
56
- while (current !== "/" && !result) {
57
- const parent = dirname(current);
58
- if (parent === current) {
59
- break;
60
- }
61
- current = parent;
62
- if (readFile) {
63
- result = readFile(join(current, "package.json"));
64
- }
65
- if (!readFile) {
66
- result = Package.getPackageMetaFromModulePath(file);
67
- } else if (!result?.name) {
68
- result = void 0;
69
- }
70
- }
71
- if (!result) {
72
- return;
73
- }
74
- if (readFile && (!result.name || !result.version)) {
75
- return readPackageJson(dirname(current), readFile);
76
- }
77
- return {
78
- ...result,
79
- root: current
80
- };
81
- };
82
- export {
83
- readPackageJson,
84
- stringify
85
- };
@@ -1,24 +0,0 @@
1
- import { filesize } from "filesize";
2
- import { memoryUsage, pid } from "process";
3
- function getMemoryUsage() {
4
- return memoryUsage();
5
- }
6
- function getMemoryUsageMessage() {
7
- const usage = getMemoryUsage();
8
- const msgs = [
9
- `RSS: ${filesize(usage.rss)}`,
10
- `Heap Total: ${filesize(usage.heapTotal)}`,
11
- `Heap Used: ${filesize(usage.heapUsed)}`
12
- ];
13
- if (usage.arrayBuffers) {
14
- msgs.push(`ArrayBuffers: ${filesize(usage.arrayBuffers)}`);
15
- }
16
- if (usage.external) {
17
- msgs.push(`External: ${filesize(usage.external)}`);
18
- }
19
- return `["${pid}" Memory Usage] ${msgs.join(", ")}`;
20
- }
21
- export {
22
- getMemoryUsage,
23
- getMemoryUsageMessage
24
- };
@@ -1,96 +0,0 @@
1
- import connect from "connect";
2
- import http from "http";
3
- import os from "os";
4
- import gp from "get-port";
5
- import { execSync } from "child_process";
6
- import { random } from "../common/algorithm";
7
- const RESTRICTED_PORTS = [3659, 4045, 6e3, 6665, 6666, 6667, 6668, 6669];
8
- function getRandomPort(min, max) {
9
- let port;
10
- do {
11
- port = random(min, max);
12
- } while (RESTRICTED_PORTS.includes(port));
13
- return port;
14
- }
15
- const defaultPort = getRandomPort(3e3, 8999);
16
- async function getPort(expectPort) {
17
- return gp({ port: expectPort });
18
- }
19
- const createGetPortSyncFunctionString = (expectPort) => `
20
- (() => {
21
- const net = require('net');
22
-
23
- function getPort(expectPort) {
24
- return new Promise((resolve, reject) => {
25
- const server = net.createServer();
26
- server.unref();
27
- server.on('error', reject);
28
- server.listen(expectPort, () => {
29
- const { port } = server.address();
30
- server.close(() => {
31
- resolve(port);
32
- });
33
- });
34
- });
35
- }
36
-
37
- async function getAvailablePort(expectPort) {
38
- let port = expectPort;
39
- while (true) {
40
- try {
41
- const res = await getPort(port);
42
- return res;
43
- } catch (error) {
44
- port += Math.floor(Math.random() * 100 + 1);
45
- }
46
- }
47
- }
48
-
49
- getAvailablePort(${expectPort}).then(port => process.stdout.write(port.toString()));
50
- })();
51
- `.trim();
52
- function getPortSync(expectPort) {
53
- const statement = os.EOL === "\n" ? createGetPortSyncFunctionString(expectPort) : createGetPortSyncFunctionString(expectPort).replace(/\n/g, "");
54
- const port = execSync(`node -e "${statement}"`, { encoding: "utf-8" });
55
- return Number(port);
56
- }
57
- function createApp() {
58
- return connect();
59
- }
60
- async function createServer(port) {
61
- const app = createApp();
62
- const server = http.createServer(app);
63
- const res = {
64
- app,
65
- server,
66
- port,
67
- close() {
68
- return new Promise((resolve, reject) => {
69
- if ("closeAllConnections" in server) {
70
- server.closeAllConnections();
71
- }
72
- if ("closeIdleConnections" in server) {
73
- server.closeIdleConnections();
74
- }
75
- server.close((err) => {
76
- if (err)
77
- reject(err);
78
- resolve();
79
- });
80
- });
81
- }
82
- };
83
- return new Promise((resolve) => {
84
- server.listen(port, () => {
85
- resolve(res);
86
- });
87
- });
88
- }
89
- export {
90
- createApp,
91
- createGetPortSyncFunctionString,
92
- createServer,
93
- defaultPort,
94
- getPort,
95
- getPortSync
96
- };
@@ -1,25 +0,0 @@
1
- import { relative } from "path";
2
- function getPackageRelationAlertDetails(modules, dependencies, root, packageDependencies, moduleCodeMap) {
3
- return packageDependencies.slice().reverse().map((dep) => {
4
- const dependency = dependencies.find(
5
- (item) => item.id === dep.dependencyId
6
- );
7
- if (!dependency) {
8
- return null;
9
- }
10
- const module = modules.find((item) => item.id === dependency.module);
11
- if (!module) {
12
- return null;
13
- }
14
- return {
15
- group: dep.group,
16
- module,
17
- dependency,
18
- relativePath: relative(root, module.path),
19
- moduleCode: moduleCodeMap?.[module.id]
20
- };
21
- }).filter(Boolean);
22
- }
23
- export {
24
- getPackageRelationAlertDetails
25
- };
@@ -1,39 +0,0 @@
1
- import { deflateSync, inflateSync } from "zlib";
2
- import { Buffer } from "buffer";
3
- import { debug } from "../logger";
4
- function mergeIntervals(intervals) {
5
- intervals.sort((a, b) => a[0] - b[0]);
6
- let previous;
7
- let current;
8
- const result = [];
9
- for (let i = 0; i < intervals.length; i++) {
10
- current = intervals[i];
11
- if (!previous || current[0] > previous[1]) {
12
- previous = current;
13
- result.push(current);
14
- } else {
15
- previous[1] = Math.max(previous[1], current[1]);
16
- }
17
- }
18
- return result;
19
- }
20
- function compressText(input) {
21
- try {
22
- return deflateSync(input).toString("base64");
23
- } catch (e) {
24
- debug(() => `compressText error: ${e}`);
25
- return "";
26
- }
27
- }
28
- function decompressText(input) {
29
- return inflateSync(Buffer.from(input, "base64")).toString();
30
- }
31
- function random(min, max) {
32
- return Math.floor(Math.random() * (max - min + 1) + min);
33
- }
34
- export {
35
- compressText,
36
- decompressText,
37
- mergeIntervals,
38
- random
39
- };
@@ -1,30 +0,0 @@
1
- import { Client } from "@rsdoctor/types";
2
- const sep = ",";
3
- function getBundleDiffPageQueryString(files) {
4
- let qs = encodeURIComponent(files.join(sep));
5
- if (qs) {
6
- qs = `?${Client.RsdoctorClientUrlQuery.BundleDiffFiles}=${qs}`;
7
- }
8
- return qs;
9
- }
10
- function getBundleDiffPageUrl(files) {
11
- let qs = getBundleDiffPageQueryString(files);
12
- if (process.env.NODE_ENV === "development") {
13
- if (typeof location !== "undefined") {
14
- const { search = "", origin } = location;
15
- if (search) {
16
- qs += `&${search.slice(1)}`;
17
- }
18
- return `${origin}${qs}#${Client.RsdoctorClientRoutes.BundleDiff}`;
19
- }
20
- }
21
- return `${qs}#${Client.RsdoctorClientRoutes.BundleDiff}`;
22
- }
23
- function parseFilesFromBundlePageUrlQuery(queryValue) {
24
- return decodeURIComponent(queryValue).split(sep);
25
- }
26
- export {
27
- getBundleDiffPageQueryString,
28
- getBundleDiffPageUrl,
29
- parseFilesFromBundlePageUrlQuery
30
- };
@@ -1,28 +0,0 @@
1
- const sep = "!";
2
- function encode(str) {
3
- let res = `${str.charCodeAt(0)}`;
4
- for (let i = 1; i < str.length; i++) {
5
- res += `${sep}${str.charCodeAt(i)}`;
6
- }
7
- return res;
8
- }
9
- function decode(str) {
10
- let res = "";
11
- let tmp = "";
12
- for (let i = 0; i < str.length; i++) {
13
- if (str[i] === sep) {
14
- res += String.fromCharCode(+tmp);
15
- tmp = "";
16
- } else {
17
- tmp += str[i];
18
- }
19
- }
20
- if (tmp) {
21
- res += String.fromCharCode(+tmp);
22
- }
23
- return res;
24
- }
25
- export {
26
- decode,
27
- encode
28
- };