@rindo/core 1.17.4 → 2.5.2

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 (164) hide show
  1. package/LICENSE.md +27 -27
  2. package/bin/cli.ts +20 -0
  3. package/bin/rindo +51 -56
  4. package/cli/index.cjs +1263 -0
  5. package/cli/index.d.ts +1 -1
  6. package/cli/index.js +1232 -495
  7. package/cli/package.json +9 -4
  8. package/compiler/lib.d.ts +24 -0
  9. package/compiler/lib.dom.d.ts +20230 -0
  10. package/compiler/lib.dom.iterable.d.ts +351 -0
  11. package/compiler/lib.es2015.collection.d.ts +89 -0
  12. package/compiler/lib.es2015.core.d.ts +517 -0
  13. package/compiler/lib.es2015.d.ts +30 -0
  14. package/compiler/lib.es2015.generator.d.ts +79 -0
  15. package/compiler/lib.es2015.iterable.d.ts +505 -0
  16. package/compiler/lib.es2015.promise.d.ts +150 -0
  17. package/compiler/lib.es2015.proxy.d.ts +41 -0
  18. package/compiler/lib.es2015.reflect.d.ts +123 -0
  19. package/compiler/lib.es2015.symbol.d.ts +48 -0
  20. package/compiler/lib.es2015.symbol.wellknown.d.ts +324 -0
  21. package/compiler/lib.es2016.array.include.d.ts +118 -0
  22. package/compiler/lib.es2016.d.ts +22 -0
  23. package/compiler/lib.es2016.full.d.ts +25 -0
  24. package/compiler/lib.es2017.d.ts +26 -0
  25. package/compiler/lib.es2017.full.d.ts +25 -0
  26. package/compiler/lib.es2017.intl.d.ts +32 -0
  27. package/compiler/lib.es2017.object.d.ts +51 -0
  28. package/compiler/lib.es2017.sharedmemory.d.ts +137 -0
  29. package/compiler/lib.es2017.string.d.ts +47 -0
  30. package/compiler/lib.es2017.typedarrays.d.ts +55 -0
  31. package/compiler/lib.es2018.asyncgenerator.d.ts +79 -0
  32. package/compiler/lib.es2018.asynciterable.d.ts +45 -0
  33. package/compiler/lib.es2018.d.ts +26 -0
  34. package/compiler/lib.es2018.full.d.ts +25 -0
  35. package/compiler/lib.es2018.intl.d.ts +61 -0
  36. package/compiler/lib.es2018.promise.d.ts +32 -0
  37. package/compiler/lib.es2018.regexp.d.ts +39 -0
  38. package/compiler/lib.es2019.array.d.ts +85 -0
  39. package/compiler/lib.es2019.d.ts +25 -0
  40. package/compiler/lib.es2019.full.d.ts +25 -0
  41. package/compiler/lib.es2019.object.d.ts +35 -0
  42. package/compiler/lib.es2019.string.d.ts +33 -0
  43. package/compiler/lib.es2019.symbol.d.ts +26 -0
  44. package/compiler/lib.es2020.bigint.d.ts +728 -0
  45. package/compiler/lib.es2020.d.ts +27 -0
  46. package/compiler/lib.es2020.full.d.ts +25 -0
  47. package/compiler/lib.es2020.intl.d.ts +310 -0
  48. package/compiler/lib.es2020.promise.d.ts +50 -0
  49. package/compiler/lib.es2020.sharedmemory.d.ts +99 -0
  50. package/compiler/lib.es2020.string.d.ts +30 -0
  51. package/compiler/lib.es2020.symbol.wellknown.d.ts +39 -0
  52. package/compiler/lib.es5.d.ts +4435 -0
  53. package/compiler/lib.es6.d.ts +25 -0
  54. package/compiler/lib.esnext.d.ts +25 -0
  55. package/compiler/lib.esnext.full.d.ts +25 -0
  56. package/compiler/lib.esnext.intl.d.ts +32 -0
  57. package/compiler/lib.esnext.promise.d.ts +43 -0
  58. package/compiler/lib.esnext.string.d.ts +35 -0
  59. package/compiler/lib.esnext.weakref.d.ts +75 -0
  60. package/compiler/lib.scripthost.d.ts +327 -0
  61. package/compiler/lib.webworker.d.ts +6042 -0
  62. package/compiler/lib.webworker.importscripts.d.ts +26 -0
  63. package/compiler/lib.webworker.iterable.d.ts +166 -0
  64. package/compiler/package.json +3 -3
  65. package/compiler/rindo.d.ts +0 -16
  66. package/compiler/rindo.js +42738 -40541
  67. package/compiler/rindo.min.js +2 -15
  68. package/dependencies.json +73 -50
  69. package/dev-server/client/index.js +33 -10
  70. package/dev-server/client/package.json +3 -3
  71. package/dev-server/connector.html +3 -3
  72. package/dev-server/index.d.ts +3 -6
  73. package/dev-server/index.js +256 -252
  74. package/dev-server/package.json +3 -3
  75. package/dev-server/server-process.js +1738 -0
  76. package/dev-server/server-worker-thread.js +39 -0
  77. package/dev-server/templates/initial-load.html +160 -160
  78. package/dev-server/ws.js +1 -1
  79. package/internal/app-data/{index.cjs.js → index.cjs} +7 -5
  80. package/internal/app-data/index.d.ts +1 -0
  81. package/internal/app-data/index.js +7 -6
  82. package/internal/app-data/package.json +11 -5
  83. package/internal/client/css-shim.js +2 -2
  84. package/internal/client/dom.js +1 -1
  85. package/internal/client/index.js +193 -119
  86. package/internal/client/package.json +4 -3
  87. package/internal/client/{patch.js → patch-browser.js} +8 -24
  88. package/internal/client/patch-esm.js +23 -0
  89. package/internal/client/polyfills/css-shim.js +1 -1
  90. package/internal/client/polyfills/index.js +34 -34
  91. package/internal/client/shadow-css.js +9 -3
  92. package/internal/hydrate/index.js +305 -281
  93. package/internal/hydrate/package.json +2 -2
  94. package/internal/hydrate/runner.d.ts +24 -12
  95. package/internal/hydrate/runner.js +153 -124
  96. package/internal/hydrate/shadow-css.js +24 -24
  97. package/internal/package.json +5 -4
  98. package/internal/rindo-core/index.cjs +1 -0
  99. package/internal/rindo-core/index.d.ts +51 -2
  100. package/internal/rindo-core/index.js +15 -1
  101. package/internal/rindo-ext-modules.d.ts +41 -39
  102. package/internal/rindo-private.d.ts +93 -148
  103. package/internal/rindo-public-compiler.d.ts +231 -155
  104. package/internal/rindo-public-runtime.d.ts +42 -39
  105. package/internal/testing/index.js +144 -121
  106. package/internal/testing/package.json +2 -2
  107. package/internal/testing/shadow-css.js +24 -24
  108. package/mock-doc/index.cjs +4610 -0
  109. package/mock-doc/index.d.ts +12 -1
  110. package/mock-doc/index.js +177 -67
  111. package/mock-doc/package.json +11 -5
  112. package/package.json +132 -133
  113. package/readme.md +21 -95
  114. package/screenshot/compare/build/app.js +33 -33
  115. package/screenshot/compare/build/p-f4745c2f.entry.js +1 -1
  116. package/screenshot/connector-base.d.ts +1 -1
  117. package/screenshot/connector-local.d.ts +1 -1
  118. package/screenshot/index.js +63 -46
  119. package/screenshot/package.json +10 -3
  120. package/screenshot/pixel-match.js +54 -57
  121. package/screenshot/screenshot-compare.d.ts +1 -1
  122. package/screenshot/screenshot-fs.d.ts +1 -1
  123. package/sys/deno/index.js +1785 -0
  124. package/sys/deno/node-compat.js +2654 -0
  125. package/sys/deno/worker.js +44 -0
  126. package/sys/node/autoprefixer.js +8 -1
  127. package/sys/node/glob.js +1 -1
  128. package/sys/node/graceful-fs.js +1 -1
  129. package/sys/node/index.d.ts +1 -1
  130. package/sys/node/index.js +689 -705
  131. package/sys/node/node-fetch.js +1 -1
  132. package/sys/node/package.json +3 -3
  133. package/sys/node/prompts.js +1 -1
  134. package/sys/node/worker.js +38 -19
  135. package/testing/index.d.ts +3 -3
  136. package/testing/index.js +863 -749
  137. package/testing/jest/jest-config.d.ts +2 -89
  138. package/testing/jest/jest-environment.d.ts +1 -1
  139. package/testing/jest/jest-runner.d.ts +1 -1
  140. package/testing/jest/jest-screenshot.d.ts +1 -1
  141. package/testing/jest-preset.js +32 -32
  142. package/testing/matchers/events.d.ts +1 -1
  143. package/testing/matchers/screenshot.d.ts +1 -1
  144. package/testing/mock-fetch.d.ts +1 -1
  145. package/testing/mocks.d.ts +1 -1
  146. package/testing/package.json +3 -3
  147. package/testing/puppeteer/index.d.ts +1 -1
  148. package/testing/puppeteer/puppeteer-browser.d.ts +2 -2
  149. package/testing/puppeteer/puppeteer-declarations.d.ts +11 -11
  150. package/testing/puppeteer/puppeteer-element.d.ts +3 -3
  151. package/testing/puppeteer/puppeteer-emulate.d.ts +1 -1
  152. package/testing/puppeteer/puppeteer-events.d.ts +3 -3
  153. package/testing/puppeteer/puppeteer-page.d.ts +1 -1
  154. package/testing/puppeteer/puppeteer-screenshot.d.ts +2 -2
  155. package/testing/reset-build-conditionals.d.ts +1 -1
  156. package/testing/spec-page.d.ts +1 -1
  157. package/testing/test-transpile.d.ts +1 -1
  158. package/testing/testing-logger.d.ts +1 -1
  159. package/testing/testing-utils.d.ts +1 -1
  160. package/testing/testing.d.ts +1 -1
  161. package/cli/index.cjs.js +0 -524
  162. package/dev-server/content-type-db.json +0 -1
  163. package/dev-server/server-worker.js +0 -1570
  164. package/mock-doc/index.cjs.js +0 -4500
@@ -1,260 +1,264 @@
1
- function _interopDefault(e) {
2
- return e && "object" == typeof e && "default" in e ? e.default : e;
3
- }
1
+ /*!
2
+ Rindo Dev Server v2.5.2 | MIT Licensed | https://rindojs.web.app
3
+ */
4
+ 'use strict';
4
5
 
5
- function emitMessageToClient(e, r, t, s) {
6
- if ("buildFinish" === t) {
7
- r.isActivelyBuilding = !1, r.lastBuildResults = Object.assign({}, s);
8
- const t = {
9
- buildResults: Object.assign({}, s)
10
- };
11
- e.send(t);
12
- } else if ("buildStart" === t) r.isActivelyBuilding = !0; else if ("buildLog" === t) {
13
- const r = {
14
- buildLog: Object.assign({}, s)
15
- };
16
- e.send(r);
17
- }
18
- }
6
+ const child_process = require('child_process');
7
+ const path = require('path');
19
8
 
20
- async function openInBrowser(e) {
21
- await open(e.url);
22
- }
9
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
23
10
 
24
- var isDocker_1, isWsl_1, open;
25
-
26
- const child_process = require("child_process"), child_process__default = _interopDefault(child_process), path = _interopDefault(require("path")), util = _interopDefault(require("util")), fs = _interopDefault(require("fs")), url = _interopDefault(require("url")), os = _interopDefault(require("os")), backslashRegExp = /\\/g, getEncodedRootLength = e => {
27
- if (!e) return 0;
28
- const r = e.charCodeAt(0);
29
- if (47 === r || 92 === r) {
30
- if (e.charCodeAt(1) !== r) return 1;
31
- const t = e.indexOf(47 === r ? "/" : "\\", 2);
32
- return t < 0 ? e.length : t + 1;
33
- }
34
- if (isVolumeCharacter(r) && 58 === e.charCodeAt(1)) {
35
- const r = e.charCodeAt(2);
36
- if (47 === r || 92 === r) return 3;
37
- if (2 === e.length) return 2;
38
- }
39
- const t = e.indexOf("://");
40
- if (-1 !== t) {
41
- const r = t + "://".length, s = e.indexOf("/", r);
42
- if (-1 !== s) {
43
- const o = e.slice(0, t), i = e.slice(r, s);
44
- if ("file" === o && ("" === i || "localhost" === i) && isVolumeCharacter(e.charCodeAt(s + 1))) {
45
- const r = getFileUrlVolumeSeparatorEnd(e, s + 2);
46
- if (-1 !== r) {
47
- if (47 === e.charCodeAt(r)) return ~(r + 1);
48
- if (r === e.length) return ~r;
11
+ function _interopNamespace(e) {
12
+ if (e && e.__esModule) return e;
13
+ var n = Object.create(null);
14
+ if (e) {
15
+ Object.keys(e).forEach(function (k) {
16
+ if (k !== 'default') {
17
+ var d = Object.getOwnPropertyDescriptor(e, k);
18
+ Object.defineProperty(n, k, d.get ? d : {
19
+ enumerable: true,
20
+ get: function () {
21
+ return e[k];
22
+ }
23
+ });
24
+ }
25
+ });
49
26
  }
50
- }
51
- return ~(s + 1);
52
- }
53
- return ~e.length;
54
- }
55
- return 0;
56
- }, isVolumeCharacter = e => e >= 97 && e <= 122 || e >= 65 && e <= 90, getFileUrlVolumeSeparatorEnd = (e, r) => {
57
- const t = e.charCodeAt(r);
58
- if (58 === t) return r + 1;
59
- if (37 === t && 51 === e.charCodeAt(r + 1)) {
60
- const t = e.charCodeAt(r + 2);
61
- if (97 === t || 65 === t) return r + 3;
62
- }
63
- return -1;
64
- };
27
+ n['default'] = e;
28
+ return Object.freeze(n);
29
+ }
65
30
 
66
- let isDocker;
31
+ const path__default = /*#__PURE__*/_interopDefaultLegacy(path);
67
32
 
68
- isDocker_1 = () => (void 0 === isDocker && (isDocker = function e() {
69
- try {
70
- return fs.statSync("/.dockerenv"), !0;
71
- } catch (e) {
72
- return !1;
73
- }
74
- }() || function r() {
75
- try {
76
- return fs.readFileSync("/proc/self/cgroup", "utf8").includes("docker");
77
- } catch (e) {
78
- return !1;
79
- }
80
- }()), isDocker), isWsl_1 = function createCommonjsModule(e, r, t) {
81
- return e(t = {
82
- path: r,
83
- exports: {},
84
- require: function(e, r) {
85
- return function s() {
86
- throw new Error("Dynamic requires are not currently supported by @rollup/plugin-commonjs");
87
- }(null == r && t.path);
88
- }
89
- }, t.exports), t.exports;
90
- }((function(e) {
91
- const r = () => {
92
- if ("linux" !== process.platform) return !1;
93
- if (os.release().toLowerCase().includes("microsoft")) return !isDocker_1();
94
- try {
95
- return !!fs.readFileSync("/proc/version", "utf8").toLowerCase().includes("microsoft") && !isDocker_1();
96
- } catch (e) {
97
- return !1;
98
- }
99
- };
100
- process.env.__IS_WSL_TEST__ ? e.exports = r : e.exports = r();
101
- }));
33
+ function initServerProcessWorkerProxy(sendToMain) {
34
+ const workerPath = require.resolve(path__default['default'].join(__dirname, 'server-worker-thread.js'));
35
+ const filteredExecArgs = process.execArgv.filter(v => !/^--(debug|inspect)/.test(v));
36
+ const forkOpts = {
37
+ execArgv: filteredExecArgs,
38
+ env: process.env,
39
+ cwd: process.cwd(),
40
+ stdio: ['pipe', 'pipe', 'pipe', 'ipc'],
41
+ };
42
+ // start a new child process of the CLI process
43
+ // for the http and web socket server
44
+ let serverProcess = child_process.fork(workerPath, [], forkOpts);
45
+ const receiveFromMain = (msg) => {
46
+ // get a message from main to send to the worker
47
+ if (serverProcess) {
48
+ serverProcess.send(msg);
49
+ }
50
+ else if (msg.closeServer) {
51
+ sendToMain({ serverClosed: true });
52
+ }
53
+ };
54
+ // get a message from the worker and send it to main
55
+ serverProcess.on('message', (msg) => {
56
+ if (msg.serverClosed && serverProcess) {
57
+ serverProcess.kill('SIGINT');
58
+ serverProcess = null;
59
+ }
60
+ sendToMain(msg);
61
+ });
62
+ serverProcess.stdout.on('data', (data) => {
63
+ // the child server process has console logged data
64
+ console.log(`dev server: ${data}`);
65
+ });
66
+ serverProcess.stderr.on('data', (data) => {
67
+ // the child server process has console logged an error
68
+ sendToMain({ error: { message: 'stderr: ' + data } });
69
+ });
70
+ return receiveFromMain;
71
+ }
102
72
 
103
- const {promisify} = util, pAccess = promisify(fs.access), pExecFile = promisify(child_process__default.execFile), localXdgOpenPath = path.join(__dirname, "xdg-open");
73
+ function start(rindoDevServerConfig, logger, watcher) {
74
+ return new Promise(async (resolve, reject) => {
75
+ try {
76
+ const devServerConfig = {
77
+ devServerDir: __dirname,
78
+ ...rindoDevServerConfig,
79
+ };
80
+ if (!path__default['default'].isAbsolute(devServerConfig.root)) {
81
+ devServerConfig.root = path__default['default'].join(process.cwd(), devServerConfig.root);
82
+ }
83
+ let initServerProcess;
84
+ if (rindoDevServerConfig.worker === true || rindoDevServerConfig.worker === undefined) {
85
+ // fork a worker process
86
+ initServerProcess = initServerProcessWorkerProxy;
87
+ }
88
+ else {
89
+ // same process
90
+ const devServerProcess = await Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(require('./server-process.js')); });
91
+ initServerProcess = devServerProcess.initServerProcess;
92
+ }
93
+ startServer(devServerConfig, logger, watcher, initServerProcess, resolve, reject);
94
+ }
95
+ catch (e) {
96
+ reject(e);
97
+ }
98
+ });
99
+ }
100
+ function startServer(devServerConfig, logger, watcher, initServerProcess, resolve, reject) {
101
+ var _a;
102
+ const timespan = logger.createTimeSpan(`starting dev server`, true);
103
+ const startupTimeout = logger.getLevel() !== 'debug' || devServerConfig.startupTimeout !== 0
104
+ ? setTimeout(() => {
105
+ reject(`dev server startup timeout`);
106
+ }, (_a = devServerConfig.startupTimeout) !== null && _a !== void 0 ? _a : 15000)
107
+ : null;
108
+ let isActivelyBuilding = false;
109
+ let lastBuildResults = null;
110
+ let devServer = null;
111
+ let removeWatcher = null;
112
+ let closeResolve = null;
113
+ let hasStarted = false;
114
+ let browserUrl = '';
115
+ let sendToWorker = null;
116
+ const closePromise = new Promise(resolve => (closeResolve = resolve));
117
+ const close = async () => {
118
+ clearTimeout(startupTimeout);
119
+ isActivelyBuilding = false;
120
+ if (removeWatcher) {
121
+ removeWatcher();
122
+ }
123
+ if (devServer) {
124
+ devServer = null;
125
+ }
126
+ if (sendToWorker) {
127
+ sendToWorker({
128
+ closeServer: true,
129
+ });
130
+ sendToWorker = null;
131
+ }
132
+ return closePromise;
133
+ };
134
+ const emit = async (eventName, data) => {
135
+ if (sendToWorker) {
136
+ if (eventName === 'buildFinish') {
137
+ isActivelyBuilding = false;
138
+ lastBuildResults = { ...data };
139
+ sendToWorker({ buildResults: { ...lastBuildResults }, isActivelyBuilding });
140
+ }
141
+ else if (eventName === 'buildLog') {
142
+ sendToWorker({
143
+ buildLog: { ...data },
144
+ });
145
+ }
146
+ else if (eventName === 'buildStart') {
147
+ isActivelyBuilding = true;
148
+ }
149
+ }
150
+ };
151
+ const serverStarted = (msg) => {
152
+ hasStarted = true;
153
+ clearTimeout(startupTimeout);
154
+ devServerConfig = msg.serverStarted;
155
+ devServer = {
156
+ address: devServerConfig.address,
157
+ basePath: devServerConfig.basePath,
158
+ browserUrl: devServerConfig.browserUrl,
159
+ protocol: devServerConfig.protocol,
160
+ port: devServerConfig.port,
161
+ root: devServerConfig.root,
162
+ emit,
163
+ close,
164
+ };
165
+ browserUrl = devServerConfig.browserUrl;
166
+ timespan.finish(`dev server started: ${browserUrl}`);
167
+ resolve(devServer);
168
+ };
169
+ const requestLog = (msg) => {
170
+ if (devServerConfig.logRequests) {
171
+ if (msg.requestLog.status >= 500) {
172
+ logger.info(logger.red(`${msg.requestLog.method} ${msg.requestLog.url} (${msg.requestLog.status})`));
173
+ }
174
+ else if (msg.requestLog.status >= 400) {
175
+ logger.info(logger.dim(logger.red(`${msg.requestLog.method} ${msg.requestLog.url} (${msg.requestLog.status})`)));
176
+ }
177
+ else if (msg.requestLog.status >= 300) {
178
+ logger.info(logger.dim(logger.magenta(`${msg.requestLog.method} ${msg.requestLog.url} (${msg.requestLog.status})`)));
179
+ }
180
+ else {
181
+ logger.info(logger.dim(`${logger.cyan(msg.requestLog.method)} ${msg.requestLog.url}`));
182
+ }
183
+ }
184
+ };
185
+ const serverError = async (msg) => {
186
+ if (hasStarted) {
187
+ logger.error(msg.error.message + ' ' + msg.error.stack);
188
+ }
189
+ else {
190
+ await close();
191
+ reject(msg.error.message);
192
+ }
193
+ };
194
+ const requestBuildResults = () => {
195
+ // we received a request to send up the latest build results
196
+ if (sendToWorker) {
197
+ if (lastBuildResults != null) {
198
+ // we do have build results, so let's send them to the child process
199
+ const msg = {
200
+ buildResults: { ...lastBuildResults },
201
+ isActivelyBuilding: isActivelyBuilding,
202
+ };
203
+ // but don't send any previous live reload data
204
+ delete msg.buildResults.hmr;
205
+ sendToWorker(msg);
206
+ }
207
+ else {
208
+ sendToWorker({
209
+ isActivelyBuilding: true,
210
+ });
211
+ }
212
+ }
213
+ };
214
+ const compilerRequest = async (compilerRequestPath) => {
215
+ if (watcher && watcher.request && sendToWorker) {
216
+ const compilerRequestResults = await watcher.request({ path: compilerRequestPath });
217
+ sendToWorker({ compilerRequestResults });
218
+ }
219
+ };
220
+ const receiveFromWorker = (msg) => {
221
+ try {
222
+ if (msg.serverStarted) {
223
+ serverStarted(msg);
224
+ }
225
+ else if (msg.serverClosed) {
226
+ logger.debug(`dev server closed: ${browserUrl}`);
227
+ closeResolve();
228
+ }
229
+ else if (msg.requestBuildResults) {
230
+ requestBuildResults();
231
+ }
232
+ else if (msg.compilerRequestPath) {
233
+ compilerRequest(msg.compilerRequestPath);
234
+ }
235
+ else if (msg.requestLog) {
236
+ requestLog(msg);
237
+ }
238
+ else if (msg.error) {
239
+ serverError(msg);
240
+ }
241
+ else {
242
+ logger.debug(`server msg not handled: ${JSON.stringify(msg)}`);
243
+ }
244
+ }
245
+ catch (e) {
246
+ logger.error('receiveFromWorker: ' + e);
247
+ }
248
+ };
249
+ try {
250
+ if (watcher) {
251
+ removeWatcher = watcher.on(emit);
252
+ }
253
+ sendToWorker = initServerProcess(receiveFromWorker);
254
+ sendToWorker({
255
+ startServer: devServerConfig,
256
+ });
257
+ }
258
+ catch (e) {
259
+ close();
260
+ reject(e);
261
+ }
262
+ }
104
263
 
105
- open = async (e, r) => {
106
- if ("string" != typeof e) throw new TypeError("Expected a `target`");
107
- let t;
108
- r = {
109
- wait: !1,
110
- background: !1,
111
- url: !1,
112
- allowNonzeroExitCode: !1,
113
- ...r
114
- };
115
- let s = [];
116
- const o = [], i = {};
117
- if (Array.isArray(r.app) && (s = r.app.slice(1), r.app = r.app[0]), r.url && (e = new url.URL(e).href,
118
- isWsl_1 && (e = e.replace(/&/g, "^&"))), "darwin" === process.platform) t = "open",
119
- r.wait && o.push("--wait-apps"), r.background && o.push("--background"), r.app && o.push("-a", r.app); else if ("win32" === process.platform || isWsl_1 && !isDocker_1()) {
120
- if (t = "cmd" + (isWsl_1 ? ".exe" : ""), o.push("/s", "/c", "start", '""', "/b"),
121
- isWsl_1 || (e = `"${e}"`, i.windowsVerbatimArguments = !0, r.app && (r.app = `"${r.app}"`)),
122
- r.wait && o.push("/wait"), r.app) {
123
- if (isWsl_1 && r.app.startsWith("/mnt/")) {
124
- const e = await (async e => {
125
- const {stdout: r} = await pExecFile("wslpath", [ "-w", e ]);
126
- return r.trim();
127
- })(r.app);
128
- r.app = e;
129
- }
130
- o.push(r.app);
131
- }
132
- s.length > 0 && o.push(...s);
133
- } else {
134
- if (r.app) t = r.app; else {
135
- const e = !__dirname || "/" === __dirname;
136
- let r = !1;
137
- try {
138
- await pAccess(localXdgOpenPath, fs.constants.X_OK), r = !0;
139
- } catch (e) {}
140
- t = process.versions.electron || "android" === process.platform || e || !r ? "xdg-open" : localXdgOpenPath;
141
- }
142
- s.length > 0 && o.push(...s), r.wait || (i.stdio = "ignore", i.detached = !0);
143
- }
144
- o.push(e), "darwin" === process.platform && s.length > 0 && o.push("--args", ...s);
145
- const n = child_process__default.spawn(t, o, i);
146
- return r.wait ? new Promise((e, t) => {
147
- n.once("error", t), n.once("close", s => {
148
- r.allowNonzeroExitCode && s > 0 ? t(new Error("Exited with code " + s)) : e(n);
149
- });
150
- }) : (n.unref(), n);
151
- }, exports.openInBrowser = openInBrowser, exports.start = async function start(e, r, t) {
152
- let s = null;
153
- const o = Object.assign({}, e), i = r.createTimeSpan("starting dev server", !0);
154
- try {
155
- o.devServerDir = __dirname;
156
- const e = require.resolve(path.join(o.devServerDir, "server-worker.js")), n = {
157
- execArgv: process.execArgv.filter(e => !/^--(debug|inspect)/.test(e)),
158
- env: process.env,
159
- cwd: process.cwd(),
160
- stdio: [ "pipe", "pipe", "pipe", "ipc" ]
161
- }, l = child_process.fork(e, [], n), a = {
162
- isActivelyBuilding: !1,
163
- lastBuildResults: null
164
- }, c = await function n(e, r, t, s, o) {
165
- let i = !1;
166
- return new Promise((n, l) => (s.stdout.on("data", e => {
167
- r.debug("dev server: " + e);
168
- }), s.stderr.on("data", e => {
169
- r.error(`dev server error: ${e}, hasStarted: ${i}`), i || l("dev server error: " + e);
170
- }), s.on("message", async a => {
171
- if (a.serverStarted) a.serverStarted.error ? l(a.serverStarted.error) : (i = !0,
172
- e.openBrowser && a.serverStarted.initialLoadUrl && openInBrowser({
173
- url: a.serverStarted.initialLoadUrl
174
- }), n(a.serverStarted)); else if (a.requestBuildResults) if (null != o.lastBuildResults) {
175
- const e = {
176
- buildResults: Object.assign({}, o.lastBuildResults),
177
- isActivelyBuilding: o.isActivelyBuilding
178
- };
179
- delete e.buildResults.hmr, s.send(e);
180
- } else {
181
- const e = {
182
- isActivelyBuilding: !0
183
- };
184
- s.send(e);
185
- } else if (a.compilerRequestPath && t && t.request) {
186
- const e = {
187
- resolveId: a.resolveId,
188
- compilerRequestResults: await t.request({
189
- path: a.compilerRequestPath
190
- })
191
- };
192
- s.send(e);
193
- } else if (a.error) {
194
- if (a.error.message) if ("string" == typeof a.error.message) r.error(a.error.message); else try {
195
- r.error(JSON.stringify(a.error.message));
196
- } catch (e) {
197
- console.error(e);
198
- }
199
- r.debug(a.error);
200
- } else if (a.requestLog) {
201
- const e = a.requestLog;
202
- let t;
203
- return t = e.status >= 400 ? r.red(e.method) : e.status >= 300 ? r.magenta(e.method) : r.cyan(e.method),
204
- void r.info(r.dim(`${t} ${e.url}`));
205
- }
206
- }), s.send({
207
- startServer: e
208
- }), e));
209
- }(o, r, t, l, a);
210
- let u = null;
211
- t && (u = t.on((e, r) => {
212
- emitMessageToClient(l, a, e, r);
213
- })), path.isAbsolute(c.root) || (c.root = path.join(process.cwd(), c.root)), c.root = (e => {
214
- if ("string" != typeof e) throw new Error("invalid path to normalize");
215
- const r = (e => {
216
- if (!Array.isArray(e) || 0 === e.length) return [];
217
- const r = [ e[0] ];
218
- for (let t = 1; t < e.length; t++) {
219
- const s = e[t];
220
- if (s && "." !== s) {
221
- if (".." === s) if (r.length > 1) {
222
- if (".." !== r[r.length - 1]) {
223
- r.pop();
224
- continue;
225
- }
226
- } else if (r[0]) continue;
227
- r.push(s);
228
- }
229
- }
230
- return r;
231
- })(((e, r) => {
232
- const t = e.substring(0, r), s = e.substring(r).split("/"), o = s.length;
233
- return o > 0 && !s[o - 1] && s.pop(), [ t, ...s ];
234
- })(e = (e => e.replace(backslashRegExp, "/"))(e.trim()), (e => {
235
- const r = getEncodedRootLength(e);
236
- return r < 0 ? ~r : r;
237
- })(e))), t = r[0], s = r[1], o = t + r.slice(1).join("/");
238
- return "" === o ? "." : "" === t && s && e.includes("/") && !s.startsWith(".") && !s.startsWith("@") ? "./" + o : o;
239
- })(c.root), s = {
240
- address: c.address,
241
- basePath: c.basePath,
242
- browserUrl: c.browserUrl,
243
- port: c.port,
244
- protocol: c.protocol,
245
- root: c.root,
246
- close() {
247
- try {
248
- l && l.kill("SIGINT"), u && (u(), u = null);
249
- } catch (e) {}
250
- return r.debug("dev server closed, port " + c.port), Promise.resolve();
251
- },
252
- emit(e, r) {
253
- emitMessageToClient(l, a, e, r);
254
- }
255
- }, i.finish("dev server started: " + c.browserUrl);
256
- } catch (e) {
257
- console.error("dev server error: " + e);
258
- }
259
- return s;
260
- };
264
+ exports.start = start;
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "@rindo/core/dev-server",
3
- "version": "0.0.0-dev.20221104122636",
3
+ "version": "2.5.2",
4
4
  "description": "Rindo Development Server which communicates with the Rindo Compiler.",
5
- "main": "index.js",
6
- "types": "index.d.ts",
5
+ "main": "./index.js",
6
+ "types": "./index.d.ts",
7
7
  "private": true
8
8
  }