waku 0.15.1 → 0.17.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 (98) hide show
  1. package/dist/cjs/cli.js +34 -73
  2. package/dist/cjs/client.js +28 -19
  3. package/dist/cjs/config.js +0 -9
  4. package/dist/cjs/lib/builder.js +117 -147
  5. package/dist/cjs/lib/config.js +68 -56
  6. package/dist/cjs/lib/middleware/rsc/ssr.js +713 -0
  7. package/dist/cjs/lib/middleware/rsc/utils.js +29 -33
  8. package/dist/cjs/lib/middleware/rsc/worker-api.js +361 -44
  9. package/dist/cjs/lib/middleware/rsc/worker-impl.js +454 -230
  10. package/dist/cjs/lib/middleware/rsc.js +375 -171
  11. package/dist/cjs/lib/vite-plugin/patch-react-refresh.js +114 -0
  12. package/dist/cjs/lib/vite-plugin/rsc-analyze-plugin.js +5 -2
  13. package/dist/cjs/lib/vite-plugin/rsc-delegate-plugin.js +3 -1
  14. package/dist/cjs/lib/vite-plugin/rsc-hmr-plugin.js +3 -3
  15. package/dist/cjs/lib/vite-plugin/rsc-index-plugin.js +3 -2
  16. package/dist/cjs/lib/vite-plugin/rsc-reload-plugin.js +3 -1
  17. package/dist/cjs/lib/vite-plugin/rsc-transform-plugin.js +5 -3
  18. package/dist/cjs/main.js +192 -12
  19. package/dist/cjs/node-loader.js +14 -15
  20. package/dist/cjs/router/client.js +12 -16
  21. package/dist/cjs/router/common.js +3 -4
  22. package/dist/cjs/router/server.js +63 -166
  23. package/dist/cjs/server.js +0 -15
  24. package/dist/cli.js +31 -66
  25. package/dist/client.js +20 -14
  26. package/dist/config.js +1 -3
  27. package/dist/lib/builder.js +120 -150
  28. package/dist/lib/config.js +22 -45
  29. package/dist/lib/middleware/rsc/ssr.js +641 -0
  30. package/dist/lib/middleware/rsc/utils.js +18 -26
  31. package/dist/lib/middleware/rsc/worker-api.js +354 -34
  32. package/dist/lib/middleware/rsc/worker-impl.js +401 -230
  33. package/dist/lib/middleware/rsc.js +328 -173
  34. package/dist/lib/vite-plugin/patch-react-refresh.js +104 -0
  35. package/dist/lib/vite-plugin/rsc-analyze-plugin.js +2 -1
  36. package/dist/lib/vite-plugin/rsc-index-plugin.js +3 -2
  37. package/dist/lib/vite-plugin/rsc-transform-plugin.js +2 -2
  38. package/dist/main.js +146 -3
  39. package/dist/node-loader.js +14 -15
  40. package/dist/router/client.js +7 -9
  41. package/dist/router/common.js +3 -4
  42. package/dist/router/server.js +62 -157
  43. package/dist/server.js +0 -11
  44. package/package.json +24 -11
  45. package/src/cli.ts +28 -44
  46. package/src/client.ts +22 -16
  47. package/src/config.ts +17 -33
  48. package/src/lib/builder.ts +136 -128
  49. package/src/lib/config.ts +13 -32
  50. package/src/lib/middleware/rsc/ssr.ts +367 -0
  51. package/src/lib/middleware/rsc/utils.ts +18 -28
  52. package/src/lib/middleware/rsc/worker-api.ts +59 -57
  53. package/src/lib/middleware/rsc/worker-impl.ts +176 -117
  54. package/src/lib/middleware/rsc.ts +168 -51
  55. package/src/lib/vite-plugin/patch-react-refresh.ts +26 -0
  56. package/src/lib/vite-plugin/rsc-analyze-plugin.ts +1 -1
  57. package/src/lib/vite-plugin/rsc-index-plugin.ts +2 -2
  58. package/src/main.ts +4 -3
  59. package/src/node-loader.ts +7 -5
  60. package/src/router/client.ts +16 -22
  61. package/src/router/common.ts +4 -14
  62. package/src/router/server.ts +29 -89
  63. package/src/server.ts +5 -39
  64. package/src/types.d.ts +0 -8
  65. package/dist/cjs/lib/middleware/devServer.js +0 -288
  66. package/dist/cjs/lib/middleware/ssr/utils.js +0 -148
  67. package/dist/cjs/lib/middleware/ssr.js +0 -452
  68. package/dist/cli.d.ts +0 -2
  69. package/dist/client.d.ts +0 -15
  70. package/dist/config.d.ts +0 -64
  71. package/dist/lib/builder.d.ts +0 -1
  72. package/dist/lib/config.d.ts +0 -61
  73. package/dist/lib/middleware/devServer.d.ts +0 -5
  74. package/dist/lib/middleware/devServer.js +0 -273
  75. package/dist/lib/middleware/rsc/utils.d.ts +0 -9
  76. package/dist/lib/middleware/rsc/worker-api.d.ts +0 -70
  77. package/dist/lib/middleware/rsc/worker-impl.d.ts +0 -1
  78. package/dist/lib/middleware/rsc.d.ts +0 -9
  79. package/dist/lib/middleware/ssr/utils.d.ts +0 -2
  80. package/dist/lib/middleware/ssr/utils.js +0 -133
  81. package/dist/lib/middleware/ssr.d.ts +0 -7
  82. package/dist/lib/middleware/ssr.js +0 -439
  83. package/dist/lib/vite-plugin/nonjs-resolve-plugin.d.ts +0 -2
  84. package/dist/lib/vite-plugin/rsc-analyze-plugin.d.ts +0 -2
  85. package/dist/lib/vite-plugin/rsc-delegate-plugin.d.ts +0 -2
  86. package/dist/lib/vite-plugin/rsc-hmr-plugin.d.ts +0 -3
  87. package/dist/lib/vite-plugin/rsc-index-plugin.d.ts +0 -2
  88. package/dist/lib/vite-plugin/rsc-reload-plugin.d.ts +0 -2
  89. package/dist/lib/vite-plugin/rsc-transform-plugin.d.ts +0 -2
  90. package/dist/main.d.ts +0 -4
  91. package/dist/node-loader.d.ts +0 -1
  92. package/dist/router/client.d.ts +0 -26
  93. package/dist/router/common.d.ts +0 -19
  94. package/dist/router/server.d.ts +0 -7
  95. package/dist/server.d.ts +0 -49
  96. package/src/lib/middleware/devServer.ts +0 -63
  97. package/src/lib/middleware/ssr/utils.ts +0 -88
  98. package/src/lib/middleware/ssr.ts +0 -126
package/dist/cjs/cli.js CHANGED
@@ -3,7 +3,6 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- var _nodefs = /*#__PURE__*/ _interop_require_default(require("node:fs"));
7
6
  var _nodepath = /*#__PURE__*/ _interop_require_default(require("node:path"));
8
7
  var _nodeutil = require("node:util");
9
8
  var _nodemodule = require("node:module");
@@ -62,7 +61,9 @@ function _interop_require_wildcard(obj, nodeInterop) {
62
61
  if (cache && cache.has(obj)) {
63
62
  return cache.get(obj);
64
63
  }
65
- var newObj = {};
64
+ var newObj = {
65
+ __proto__: null
66
+ };
66
67
  var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
67
68
  for(var key in obj){
68
69
  if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
@@ -180,9 +181,6 @@ var _parseArgs = (0, _nodeutil.parseArgs)({
180
181
  args: process.argv.splice(2),
181
182
  allowPositionals: true,
182
183
  options: {
183
- config: {
184
- type: "string"
185
- },
186
184
  "with-ssr": {
187
185
  type: "boolean"
188
186
  },
@@ -197,13 +195,6 @@ var _parseArgs = (0, _nodeutil.parseArgs)({
197
195
  }
198
196
  }), values = _parseArgs.values, positionals = _parseArgs.positionals;
199
197
  var cmd = positionals[0];
200
- if (values.config) {
201
- if (!_nodefs.default.existsSync(values.config)) {
202
- throw new Error("config file does not exist");
203
- } else {
204
- process.env.CONFIG_FILE = values.config;
205
- }
206
- }
207
198
  if (values.version) {
208
199
  var version = require1("../package.json").version;
209
200
  console.log(version);
@@ -217,7 +208,9 @@ if (values.version) {
217
208
  });
218
209
  break;
219
210
  case "build":
220
- runBuild();
211
+ runBuild({
212
+ ssr: !!values["with-ssr"]
213
+ });
221
214
  break;
222
215
  case "start":
223
216
  runStart({
@@ -237,7 +230,7 @@ function runDev(options) {
237
230
  }
238
231
  function _runDev() {
239
232
  _runDev = _async_to_generator(function(options) {
240
- var _options, _ref, express, rsc, devServer, app, ssr, port;
233
+ var _ref, express, rsc, app, port;
241
234
  return _ts_generator(this, function(_state) {
242
235
  switch(_state.label){
243
236
  case 0:
@@ -257,40 +250,13 @@ function _runDev() {
257
250
  ];
258
251
  case 2:
259
252
  rsc = _state.sent().rsc;
260
- return [
261
- 4,
262
- Promise.resolve().then(function() {
263
- return /*#__PURE__*/ _interop_require_wildcard(require("./lib/middleware/devServer.js"));
264
- })
265
- ];
266
- case 3:
267
- devServer = _state.sent().devServer;
268
253
  app = express();
269
254
  app.use(rsc({
270
- command: "dev"
271
- }));
272
- if (!((_options = options) === null || _options === void 0 ? void 0 : _options.ssr)) return [
273
- 3,
274
- 5
275
- ];
276
- return [
277
- 4,
278
- Promise.resolve().then(function() {
279
- return /*#__PURE__*/ _interop_require_wildcard(require("./lib/middleware/ssr.js"));
280
- })
281
- ];
282
- case 4:
283
- ssr = _state.sent().ssr;
284
- app.use(ssr({
285
- command: "dev"
255
+ command: "dev",
256
+ ssr: options.ssr
286
257
  }));
287
- _state.label = 5;
288
- case 5:
289
- app.use(devServer());
290
- port = process.env.PORT || 3000;
291
- app.listen(port, function() {
292
- console.info("Listening on", port);
293
- });
258
+ port = parseInt(process.env.PORT || "3000", 10);
259
+ startServer(app, port);
294
260
  return [
295
261
  2
296
262
  ];
@@ -299,11 +265,11 @@ function _runDev() {
299
265
  });
300
266
  return _runDev.apply(this, arguments);
301
267
  }
302
- function runBuild() {
268
+ function runBuild(options) {
303
269
  return _runBuild.apply(this, arguments);
304
270
  }
305
271
  function _runBuild() {
306
- _runBuild = _async_to_generator(function() {
272
+ _runBuild = _async_to_generator(function(options) {
307
273
  var build;
308
274
  return _ts_generator(this, function(_state) {
309
275
  switch(_state.label){
@@ -318,7 +284,7 @@ function _runBuild() {
318
284
  build = _state.sent().build;
319
285
  return [
320
286
  4,
321
- build()
287
+ build(options)
322
288
  ];
323
289
  case 2:
324
290
  _state.sent();
@@ -335,7 +301,7 @@ function runStart(options) {
335
301
  }
336
302
  function _runStart() {
337
303
  _runStart = _async_to_generator(function(options) {
338
- var _options, _ref, express, resolveConfig, config, rsc, app, ssr, port;
304
+ var _ref, express, resolveConfig, config, rsc, app, port;
339
305
  return _ts_generator(this, function(_state) {
340
306
  switch(_state.label){
341
307
  case 0:
@@ -357,7 +323,7 @@ function _runStart() {
357
323
  resolveConfig = _state.sent().resolveConfig;
358
324
  return [
359
325
  4,
360
- resolveConfig("serve")
326
+ resolveConfig()
361
327
  ];
362
328
  case 3:
363
329
  config = _state.sent();
@@ -371,31 +337,13 @@ function _runStart() {
371
337
  rsc = _state.sent().rsc;
372
338
  app = express();
373
339
  app.use(rsc({
374
- command: "start"
340
+ command: "start",
341
+ ssr: options.ssr
375
342
  }));
376
- if (!((_options = options) === null || _options === void 0 ? void 0 : _options.ssr)) return [
377
- 3,
378
- 6
379
- ];
380
- return [
381
- 4,
382
- Promise.resolve().then(function() {
383
- return /*#__PURE__*/ _interop_require_wildcard(require("./lib/middleware/ssr.js"));
384
- })
385
- ];
386
- case 5:
387
- ssr = _state.sent().ssr;
388
- app.use(ssr({
389
- command: "start"
390
- }));
391
- _state.label = 6;
392
- case 6:
393
- app.use(express.static(_nodepath.default.join(config.root, config.framework.distDir, config.framework.publicDir)));
343
+ app.use(express.static(_nodepath.default.join(config.rootDir, config.distDir, config.publicDir)));
394
344
  express.static.mime.default_type = "";
395
- port = process.env.PORT || 8080;
396
- app.listen(port, function() {
397
- console.info("Listening on", port);
398
- });
345
+ port = parseInt(process.env.PORT || "8080", 10);
346
+ startServer(app, port);
399
347
  return [
400
348
  2
401
349
  ];
@@ -404,6 +352,19 @@ function _runStart() {
404
352
  });
405
353
  return _runStart.apply(this, arguments);
406
354
  }
355
+ function startServer(app, port) {
356
+ var server = app.listen(port, function() {
357
+ console.log("ready: Listening on http://localhost:".concat(port, "/"));
358
+ });
359
+ server.on("error", function(err) {
360
+ if (err.code === "EADDRINUSE") {
361
+ console.log("warn: Port ".concat(port, " is in use, trying ").concat(port + 1, " instead."));
362
+ startServer(app, port + 1);
363
+ } else {
364
+ console.error("Failed to start server");
365
+ }
366
+ });
367
+ }
407
368
  function displayUsage() {
408
369
  console.log("\nUsage: waku [options] <command>\n\nCommands:\n dev Start the development server\n build Build the application for production\n start Start the production server\n\nOptions:\n -c, --config <path> Path to the configuration file\n --with-ssr Use opt-in SSR\n -v, --version Display the version number\n -h, --help Display this help message\n");
409
370
  }
@@ -11,24 +11,28 @@ function _export(target, all) {
11
11
  });
12
12
  }
13
13
  _export(exports, {
14
- fetchRSC: function() {
15
- return fetchRSC;
14
+ Children: function() {
15
+ return Children;
16
16
  },
17
17
  Root: function() {
18
18
  return Root;
19
19
  },
20
- useRefetch: function() {
21
- return useRefetch;
20
+ ServerRoot: function() {
21
+ return ServerRoot;
22
22
  },
23
23
  Slot: function() {
24
24
  return Slot;
25
25
  },
26
- Children: function() {
27
- return Children;
26
+ fetchRSC: function() {
27
+ return fetchRSC;
28
+ },
29
+ useRefetch: function() {
30
+ return useRefetch;
28
31
  }
29
32
  });
30
33
  var _react = require("react");
31
34
  var _client = /*#__PURE__*/ _interop_require_default(require("react-server-dom-webpack/client"));
35
+ var _utils = require("./lib/middleware/rsc/utils.js");
32
36
  function _array_like_to_array(arr, len) {
33
37
  if (len == null || len > arr.length) len = arr.length;
34
38
  for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
@@ -147,13 +151,13 @@ function _ts_generator(thisArg, body) {
147
151
  trys: [],
148
152
  ops: []
149
153
  };
150
- return(g = {
154
+ return g = {
151
155
  next: verb(0),
152
156
  "throw": verb(1),
153
157
  "return": verb(2)
154
158
  }, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
155
159
  return this;
156
- }), g);
160
+ }), g;
157
161
  function verb(n) {
158
162
  return function(v) {
159
163
  return step([
@@ -275,7 +279,9 @@ var mergeElements = (0, _react.cache)(function() {
275
279
  a
276
280
  ];
277
281
  case 1:
278
- _tmp = _tmp.concat(_state.sent());
282
+ _tmp = _tmp.concat([
283
+ _state.sent()
284
+ ]);
279
285
  return [
280
286
  4,
281
287
  b
@@ -307,7 +313,7 @@ var fetchRSC = (0, _react.cache)(function(input, rerender) {
307
313
  switch(_state.label){
308
314
  case 0:
309
315
  _tmp = [
310
- basePath + encodeURIComponent(actionId)
316
+ basePath + (0, _utils.encodeInput)(encodeURIComponent(actionId))
311
317
  ];
312
318
  _tmp1 = {
313
319
  method: "POST"
@@ -342,19 +348,20 @@ var fetchRSC = (0, _react.cache)(function(input, rerender) {
342
348
  }
343
349
  };
344
350
  var prefetched = (_globalThis = globalThis).__WAKU_PREFETCHED__ || (_globalThis.__WAKU_PREFETCHED__ = {});
345
- var response = prefetched[input] || fetch(basePath + (input || "__DEFAULT__"));
351
+ var response = prefetched[input] || fetch(basePath + (0, _utils.encodeInput)(input));
346
352
  delete prefetched[input];
347
353
  var data = createFromFetch(checkStatus(response), options);
348
354
  return data;
349
355
  });
350
- var RefetchContext = (0, _react.createContext)(null);
356
+ var RefetchContext = (0, _react.createContext)(function() {
357
+ throw new Error("Missing Root component");
358
+ });
351
359
  var ElementsContext = (0, _react.createContext)(null);
352
360
  // HACK there should be a better way...
353
361
  var createRerender = (0, _react.cache)(function() {
354
362
  var rerender;
355
363
  var stableRerender = function(fn) {
356
- var _rerender;
357
- (_rerender = rerender) === null || _rerender === void 0 ? void 0 : _rerender(fn);
364
+ rerender === null || rerender === void 0 ? void 0 : rerender(fn);
358
365
  };
359
366
  var getRerender = function() {
360
367
  return stableRerender;
@@ -390,11 +397,7 @@ var Root = function(param) {
390
397
  }, children));
391
398
  };
392
399
  var useRefetch = function() {
393
- var refetch = (0, _react.use)(RefetchContext);
394
- if (!refetch) {
395
- throw new Error("Missing Root component");
396
- }
397
- return refetch;
400
+ return (0, _react.use)(RefetchContext);
398
401
  };
399
402
  var ChildrenContext = (0, _react.createContext)(undefined);
400
403
  var ChildrenContextProvider = (0, _react.memo)(ChildrenContext.Provider);
@@ -415,3 +418,9 @@ var Slot = function(param) {
415
418
  var Children = function() {
416
419
  return (0, _react.use)(ChildrenContext);
417
420
  };
421
+ var ServerRoot = function(param) {
422
+ var elements = param.elements, children = param.children;
423
+ return (0, _react.createElement)(ElementsContext.Provider, {
424
+ value: elements
425
+ }, children);
426
+ };
@@ -2,12 +2,3 @@
2
2
  Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
- Object.defineProperty(exports, "defineConfig", {
6
- enumerable: true,
7
- get: function() {
8
- return defineConfig;
9
- }
10
- });
11
- function defineConfig(config) {
12
- return config;
13
- }