litzjs 0.0.0 → 0.0.1

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.
package/dist/client.js CHANGED
@@ -477,7 +477,7 @@ async function performPreparedResourceRequest(resourcePath, operation, preparedR
477
477
  notify(entry);
478
478
  entry.inFlight = (async () => {
479
479
  try {
480
- const response = operation === "action" ? await fetch("/_litz/resource", {
480
+ const response = operation === "action" ? await fetch("/_litzjs/resource", {
481
481
  method: "POST",
482
482
  ...require_internal_transport.createInternalActionRequestInit({
483
483
  path: resourcePath,
@@ -487,7 +487,7 @@ async function performPreparedResourceRequest(resourcePath, operation, preparedR
487
487
  search: normalizedRequest.search
488
488
  }
489
489
  }, payload)
490
- }) : await fetch("/_litz/resource", {
490
+ }) : await fetch("/_litzjs/resource", {
491
491
  method: "POST",
492
492
  headers: {
493
493
  "content-type": "application/json",
@@ -894,7 +894,7 @@ function createRouteFormComponent(routeId) {
894
894
  //#endregion
895
895
  //#region src/client/runtime.tsx
896
896
  async function fetchRouteLoader(path, request, target) {
897
- return parseLoaderResponse(await fetch("/_litz/route", {
897
+ return parseLoaderResponse(await fetch("/_litzjs/route", {
898
898
  method: "POST",
899
899
  headers: {
900
900
  "content-type": "application/json",
@@ -914,7 +914,7 @@ async function fetchRouteAction(path, request, payload) {
914
914
  operation: "action",
915
915
  request: normalizeRequest(request)
916
916
  }, payload);
917
- return parseActionResponse(await fetch("/_litz/action", {
917
+ return parseActionResponse(await fetch("/_litzjs/action", {
918
918
  method: "POST",
919
919
  headers: actionRequest.headers,
920
920
  body: actionRequest.body
package/dist/client.mjs CHANGED
@@ -474,7 +474,7 @@ async function performPreparedResourceRequest(resourcePath, operation, preparedR
474
474
  notify(entry);
475
475
  entry.inFlight = (async () => {
476
476
  try {
477
- const response = operation === "action" ? await fetch("/_litz/resource", {
477
+ const response = operation === "action" ? await fetch("/_litzjs/resource", {
478
478
  method: "POST",
479
479
  ...createInternalActionRequestInit({
480
480
  path: resourcePath,
@@ -484,7 +484,7 @@ async function performPreparedResourceRequest(resourcePath, operation, preparedR
484
484
  search: normalizedRequest.search
485
485
  }
486
486
  }, payload)
487
- }) : await fetch("/_litz/resource", {
487
+ }) : await fetch("/_litzjs/resource", {
488
488
  method: "POST",
489
489
  headers: {
490
490
  "content-type": "application/json",
@@ -891,7 +891,7 @@ function createRouteFormComponent(routeId) {
891
891
  //#endregion
892
892
  //#region src/client/runtime.tsx
893
893
  async function fetchRouteLoader(path, request, target) {
894
- return parseLoaderResponse(await fetch("/_litz/route", {
894
+ return parseLoaderResponse(await fetch("/_litzjs/route", {
895
895
  method: "POST",
896
896
  headers: {
897
897
  "content-type": "application/json",
@@ -911,7 +911,7 @@ async function fetchRouteAction(path, request, payload) {
911
911
  operation: "action",
912
912
  request: normalizeRequest(request)
913
913
  }, payload);
914
- return parseActionResponse(await fetch("/_litz/action", {
914
+ return parseActionResponse(await fetch("/_litzjs/action", {
915
915
  method: "POST",
916
916
  headers: actionRequest.headers,
917
917
  body: actionRequest.body
package/dist/vite.d.mts CHANGED
@@ -10032,6 +10032,7 @@ type LitzPluginOptions = {
10032
10032
  api?: string[];
10033
10033
  resources?: string[];
10034
10034
  server?: string;
10035
+ embedAssets?: boolean;
10035
10036
  };
10036
10037
  declare function litz(options?: LitzPluginOptions): Plugin[];
10037
10038
  declare function discoverServerEntry(root: string, configuredPath?: string): Promise<string | null>;
package/dist/vite.d.ts CHANGED
@@ -10032,6 +10032,7 @@ type LitzPluginOptions = {
10032
10032
  api?: string[];
10033
10033
  resources?: string[];
10034
10034
  server?: string;
10035
+ embedAssets?: boolean;
10035
10036
  };
10036
10037
  declare function litz(options?: LitzPluginOptions): Plugin[];
10037
10038
  declare function discoverServerEntry(root: string, configuredPath?: string): Promise<string | null>;
package/dist/vite.js CHANGED
@@ -282,7 +282,6 @@ function litz(options = {}) {
282
282
  let outputRootDir = node_path.default.resolve(root, "dist");
283
283
  let clientOutDir = node_path.default.resolve(root, "dist/client");
284
284
  let serverOutDir = node_path.default.resolve(root, "dist/server");
285
- let serverRscOutDir = node_path.default.resolve(root, "dist/server/_rsc");
286
285
  let routeManifest = [];
287
286
  let layoutManifest = [];
288
287
  let resourceManifest = [];
@@ -313,16 +312,18 @@ function litz(options = {}) {
313
312
  outDir: node_path.default.join(baseOutDir, "client"),
314
313
  manifest: true
315
314
  } },
316
- rsc: { build: { outDir: node_path.default.join(baseOutDir, "server", "_rsc") } },
317
- ssr: { build: { outDir: node_path.default.join(baseOutDir, "server", "_ssr") } }
315
+ rsc: { build: { outDir: node_path.default.join(baseOutDir, "server") } },
316
+ ssr: { build: {
317
+ outDir: node_path.default.join(baseOutDir, "server"),
318
+ emptyOutDir: false
319
+ } }
318
320
  } };
319
321
  },
320
322
  async configResolved(config) {
321
323
  root = config.root;
322
324
  outputRootDir = node_path.default.resolve(root, config.build.outDir || "dist");
323
325
  clientOutDir = node_path.default.resolve(root, config.environments.client?.build.outDir || node_path.default.join("dist", "client"));
324
- serverOutDir = node_path.default.resolve(root, node_path.default.join(config.build.outDir || "dist", "server"));
325
- serverRscOutDir = node_path.default.resolve(root, config.environments.rsc?.build.outDir || node_path.default.join("dist", "server", "_rsc"));
326
+ serverOutDir = node_path.default.resolve(root, config.environments.rsc?.build.outDir || node_path.default.join("dist", "server"));
326
327
  browserEntryPath = await discoverBrowserEntry(root);
327
328
  serverEntryPath = await discoverServerEntry(root, options.server);
328
329
  serverEntryFilePath = serverEntryPath ? node_path.default.resolve(root, serverEntryPath) : null;
@@ -440,10 +441,10 @@ export async function renderView(node, metadata = {}) {
440
441
  hasRegisteredExitFinalizer = true;
441
442
  process.once("exit", () => {
442
443
  if (hasFinalizedServerArtifacts) return;
443
- hasFinalizedServerArtifacts = finalizeServerArtifacts(serverOutDir, serverRscOutDir, clientOutDir, !serverEntryPath);
444
+ hasFinalizedServerArtifacts = finalizeServerArtifacts(serverOutDir, clientOutDir, options.embedAssets ?? false);
444
445
  });
445
446
  }
446
- hasFinalizedServerArtifacts = finalizeServerArtifacts(serverOutDir, serverRscOutDir, clientOutDir, !serverEntryPath);
447
+ hasFinalizedServerArtifacts = finalizeServerArtifacts(serverOutDir, clientOutDir, options.embedAssets ?? false);
447
448
  }
448
449
  };
449
450
  return [...rscPlugins, litzPlugin];
@@ -1125,21 +1126,11 @@ async function readJson(filePath) {
1125
1126
  return JSON.parse(await (0, node_fs_promises.readFile)(filePath, "utf8"));
1126
1127
  }
1127
1128
  async function removeLegacyBuildArtifacts(outputRootDir) {
1128
- await Promise.all([
1129
- (0, node_fs_promises.rm)(node_path.default.join(outputRootDir, "index.html"), { force: true }),
1130
- (0, node_fs_promises.rm)(node_path.default.join(outputRootDir, "rsc"), {
1131
- force: true,
1132
- recursive: true
1133
- }),
1134
- (0, node_fs_promises.rm)(node_path.default.join(outputRootDir, "ssr"), {
1135
- force: true,
1136
- recursive: true
1137
- })
1138
- ]);
1129
+ await (0, node_fs_promises.rm)(node_path.default.join(outputRootDir, "index.html"), { force: true });
1139
1130
  }
1140
- function finalizeServerArtifacts(serverOutDir, serverRscOutDir, clientOutDir, inlineClientAssets) {
1141
- const rscIndexPath = node_path.default.join(serverRscOutDir, "index.mjs");
1142
- const rscAssetsManifestPath = node_path.default.join(serverRscOutDir, "__vite_rsc_assets_manifest.js");
1131
+ function finalizeServerArtifacts(serverOutDir, clientOutDir, inlineClientAssets) {
1132
+ const rscIndexPath = node_path.default.join(serverOutDir, "index.js");
1133
+ const rscAssetsManifestPath = node_path.default.join(serverOutDir, "__vite_rsc_assets_manifest.js");
1143
1134
  let rscEntrySource;
1144
1135
  let rscAssetsManifestSource;
1145
1136
  let documentHtml = "";
@@ -1178,18 +1169,10 @@ function finalizeServerArtifacts(serverOutDir, serverRscOutDir, clientOutDir, in
1178
1169
  "globalThis.AsyncLocalStorage ??= __LitzAsyncLocalStorage;"
1179
1170
  ].join("\n");
1180
1171
  const inlinedServerSource = rscEntrySource.replace("import assetsManifest from \"./__vite_rsc_assets_manifest.js\";", manifestBindingSource).replace(/import \* as __viteRscAsyncHooks from "node:async_hooks";\s*/g, "").replace(/const __viteRscAsyncHooks = require\("node:async_hooks"\);\s*/g, "").replace(/globalThis\.AsyncLocalStorage = __viteRscAsyncHooks\.AsyncLocalStorage;/g, asyncLocalStorageShimSource);
1181
- const bundledWrapperSource = bundleServerWrapper(serverRscOutDir, inlineClientAssets ? createInlineAssetServerWrapper(inlinedServerSource, documentHtml, clientAssets) : createServerModuleWrapper(inlinedServerSource));
1172
+ const bundledWrapperSource = bundleServerWrapper(serverOutDir, inlineClientAssets ? createInlineAssetServerWrapper(inlinedServerSource, documentHtml, clientAssets) : createServerModuleWrapper(inlinedServerSource));
1182
1173
  if (!bundledWrapperSource) return false;
1183
1174
  (0, node_fs.mkdirSync)(serverOutDir, { recursive: true });
1184
1175
  (0, node_fs.writeFileSync)(node_path.default.join(serverOutDir, "index.js"), bundledWrapperSource, "utf8");
1185
- (0, node_fs.rmSync)(serverRscOutDir, {
1186
- force: true,
1187
- recursive: true
1188
- });
1189
- (0, node_fs.rmSync)(node_path.default.join(serverOutDir, "_ssr"), {
1190
- force: true,
1191
- recursive: true
1192
- });
1193
1176
  return true;
1194
1177
  }
1195
1178
  function createServerModuleWrapper(serverModuleSource) {
@@ -1269,7 +1252,8 @@ function transformServerModuleSource(serverModuleSource) {
1269
1252
  }
1270
1253
  if (!handlerDeclared) {
1271
1254
  if (!defaultBinding) throw new Error("Unable to locate the default export in the bundled Litz server module.");
1272
- transformedStatements.push(createHandlerDeclaration(defaultBinding));
1255
+ const binding = defaultBinding;
1256
+ if (!(typescript.default.isIdentifier(binding) && binding.text === handlerName)) transformedStatements.push(createHandlerDeclaration(binding));
1273
1257
  }
1274
1258
  const printer = typescript.default.createPrinter({ newLine: typescript.default.NewLineKind.LineFeed });
1275
1259
  const transformedSourceFile = typescript.default.factory.updateSourceFile(sourceFile, transformedStatements);
@@ -1317,7 +1301,7 @@ function createInlineAssetServerWrapper(serverModuleSource, documentHtml, client
1317
1301
  "}",
1318
1302
  "",
1319
1303
  "function __litzjsShouldServeDocument(request, pathname) {",
1320
- " if (pathname.startsWith('/_litz/') || pathname.startsWith('/api/')) {",
1304
+ " if (pathname.startsWith('/_litzjs/') || pathname.startsWith('/api/')) {",
1321
1305
  " return false;",
1322
1306
  " }",
1323
1307
  "",
@@ -1355,9 +1339,9 @@ function createInlineAssetServerWrapper(serverModuleSource, documentHtml, client
1355
1339
  ""
1356
1340
  ].join("\n");
1357
1341
  }
1358
- function bundleServerWrapper(serverRscOutDir, wrapperSource) {
1359
- const wrapperEntryPath = node_path.default.join(serverRscOutDir, "__litzjs_wrapped_server_entry.mjs");
1360
- const bundleOutDir = node_path.default.join(serverRscOutDir, "__litzjs_bundle_out");
1342
+ function bundleServerWrapper(serverOutDir, wrapperSource) {
1343
+ const wrapperEntryPath = node_path.default.join(serverOutDir, "__litzjs_wrapped_server_entry.mjs");
1344
+ const bundleOutDir = node_path.default.join(serverOutDir, "__litzjs_bundle_out");
1361
1345
  const bundleScript = `
1362
1346
  const entryPath = process.env.LITZ_SERVER_ENTRY_PATH;
1363
1347
  const outDir = process.env.LITZ_SERVER_OUT_DIR;
@@ -1403,7 +1387,7 @@ if (!entryPath || !outDir) {
1403
1387
  });
1404
1388
  (0, node_fs.mkdirSync)(bundleOutDir, { recursive: true });
1405
1389
  const result = (0, node_child_process.spawnSync)(process.execPath, ["-e", bundleScript], {
1406
- cwd: serverRscOutDir,
1390
+ cwd: serverOutDir,
1407
1391
  encoding: "utf8",
1408
1392
  env: {
1409
1393
  ...process.env,
package/dist/vite.mjs CHANGED
@@ -277,7 +277,6 @@ function litz(options = {}) {
277
277
  let outputRootDir = path.resolve(root, "dist");
278
278
  let clientOutDir = path.resolve(root, "dist/client");
279
279
  let serverOutDir = path.resolve(root, "dist/server");
280
- let serverRscOutDir = path.resolve(root, "dist/server/_rsc");
281
280
  let routeManifest = [];
282
281
  let layoutManifest = [];
283
282
  let resourceManifest = [];
@@ -308,16 +307,18 @@ function litz(options = {}) {
308
307
  outDir: path.join(baseOutDir, "client"),
309
308
  manifest: true
310
309
  } },
311
- rsc: { build: { outDir: path.join(baseOutDir, "server", "_rsc") } },
312
- ssr: { build: { outDir: path.join(baseOutDir, "server", "_ssr") } }
310
+ rsc: { build: { outDir: path.join(baseOutDir, "server") } },
311
+ ssr: { build: {
312
+ outDir: path.join(baseOutDir, "server"),
313
+ emptyOutDir: false
314
+ } }
313
315
  } };
314
316
  },
315
317
  async configResolved(config) {
316
318
  root = config.root;
317
319
  outputRootDir = path.resolve(root, config.build.outDir || "dist");
318
320
  clientOutDir = path.resolve(root, config.environments.client?.build.outDir || path.join("dist", "client"));
319
- serverOutDir = path.resolve(root, path.join(config.build.outDir || "dist", "server"));
320
- serverRscOutDir = path.resolve(root, config.environments.rsc?.build.outDir || path.join("dist", "server", "_rsc"));
321
+ serverOutDir = path.resolve(root, config.environments.rsc?.build.outDir || path.join("dist", "server"));
321
322
  browserEntryPath = await discoverBrowserEntry(root);
322
323
  serverEntryPath = await discoverServerEntry(root, options.server);
323
324
  serverEntryFilePath = serverEntryPath ? path.resolve(root, serverEntryPath) : null;
@@ -435,10 +436,10 @@ export async function renderView(node, metadata = {}) {
435
436
  hasRegisteredExitFinalizer = true;
436
437
  process.once("exit", () => {
437
438
  if (hasFinalizedServerArtifacts) return;
438
- hasFinalizedServerArtifacts = finalizeServerArtifacts(serverOutDir, serverRscOutDir, clientOutDir, !serverEntryPath);
439
+ hasFinalizedServerArtifacts = finalizeServerArtifacts(serverOutDir, clientOutDir, options.embedAssets ?? false);
439
440
  });
440
441
  }
441
- hasFinalizedServerArtifacts = finalizeServerArtifacts(serverOutDir, serverRscOutDir, clientOutDir, !serverEntryPath);
442
+ hasFinalizedServerArtifacts = finalizeServerArtifacts(serverOutDir, clientOutDir, options.embedAssets ?? false);
442
443
  }
443
444
  };
444
445
  return [...rscPlugins, litzPlugin];
@@ -1120,21 +1121,11 @@ async function readJson(filePath) {
1120
1121
  return JSON.parse(await readFile(filePath, "utf8"));
1121
1122
  }
1122
1123
  async function removeLegacyBuildArtifacts(outputRootDir) {
1123
- await Promise.all([
1124
- rm(path.join(outputRootDir, "index.html"), { force: true }),
1125
- rm(path.join(outputRootDir, "rsc"), {
1126
- force: true,
1127
- recursive: true
1128
- }),
1129
- rm(path.join(outputRootDir, "ssr"), {
1130
- force: true,
1131
- recursive: true
1132
- })
1133
- ]);
1124
+ await rm(path.join(outputRootDir, "index.html"), { force: true });
1134
1125
  }
1135
- function finalizeServerArtifacts(serverOutDir, serverRscOutDir, clientOutDir, inlineClientAssets) {
1136
- const rscIndexPath = path.join(serverRscOutDir, "index.mjs");
1137
- const rscAssetsManifestPath = path.join(serverRscOutDir, "__vite_rsc_assets_manifest.js");
1126
+ function finalizeServerArtifacts(serverOutDir, clientOutDir, inlineClientAssets) {
1127
+ const rscIndexPath = path.join(serverOutDir, "index.js");
1128
+ const rscAssetsManifestPath = path.join(serverOutDir, "__vite_rsc_assets_manifest.js");
1138
1129
  let rscEntrySource;
1139
1130
  let rscAssetsManifestSource;
1140
1131
  let documentHtml = "";
@@ -1173,18 +1164,10 @@ function finalizeServerArtifacts(serverOutDir, serverRscOutDir, clientOutDir, in
1173
1164
  "globalThis.AsyncLocalStorage ??= __LitzAsyncLocalStorage;"
1174
1165
  ].join("\n");
1175
1166
  const inlinedServerSource = rscEntrySource.replace("import assetsManifest from \"./__vite_rsc_assets_manifest.js\";", manifestBindingSource).replace(/import \* as __viteRscAsyncHooks from "node:async_hooks";\s*/g, "").replace(/const __viteRscAsyncHooks = require\("node:async_hooks"\);\s*/g, "").replace(/globalThis\.AsyncLocalStorage = __viteRscAsyncHooks\.AsyncLocalStorage;/g, asyncLocalStorageShimSource);
1176
- const bundledWrapperSource = bundleServerWrapper(serverRscOutDir, inlineClientAssets ? createInlineAssetServerWrapper(inlinedServerSource, documentHtml, clientAssets) : createServerModuleWrapper(inlinedServerSource));
1167
+ const bundledWrapperSource = bundleServerWrapper(serverOutDir, inlineClientAssets ? createInlineAssetServerWrapper(inlinedServerSource, documentHtml, clientAssets) : createServerModuleWrapper(inlinedServerSource));
1177
1168
  if (!bundledWrapperSource) return false;
1178
1169
  mkdirSync(serverOutDir, { recursive: true });
1179
1170
  writeFileSync(path.join(serverOutDir, "index.js"), bundledWrapperSource, "utf8");
1180
- rmSync(serverRscOutDir, {
1181
- force: true,
1182
- recursive: true
1183
- });
1184
- rmSync(path.join(serverOutDir, "_ssr"), {
1185
- force: true,
1186
- recursive: true
1187
- });
1188
1171
  return true;
1189
1172
  }
1190
1173
  function createServerModuleWrapper(serverModuleSource) {
@@ -1264,7 +1247,8 @@ function transformServerModuleSource(serverModuleSource) {
1264
1247
  }
1265
1248
  if (!handlerDeclared) {
1266
1249
  if (!defaultBinding) throw new Error("Unable to locate the default export in the bundled Litz server module.");
1267
- transformedStatements.push(createHandlerDeclaration(defaultBinding));
1250
+ const binding = defaultBinding;
1251
+ if (!(ts.isIdentifier(binding) && binding.text === handlerName)) transformedStatements.push(createHandlerDeclaration(binding));
1268
1252
  }
1269
1253
  const printer = ts.createPrinter({ newLine: ts.NewLineKind.LineFeed });
1270
1254
  const transformedSourceFile = ts.factory.updateSourceFile(sourceFile, transformedStatements);
@@ -1312,7 +1296,7 @@ function createInlineAssetServerWrapper(serverModuleSource, documentHtml, client
1312
1296
  "}",
1313
1297
  "",
1314
1298
  "function __litzjsShouldServeDocument(request, pathname) {",
1315
- " if (pathname.startsWith('/_litz/') || pathname.startsWith('/api/')) {",
1299
+ " if (pathname.startsWith('/_litzjs/') || pathname.startsWith('/api/')) {",
1316
1300
  " return false;",
1317
1301
  " }",
1318
1302
  "",
@@ -1350,9 +1334,9 @@ function createInlineAssetServerWrapper(serverModuleSource, documentHtml, client
1350
1334
  ""
1351
1335
  ].join("\n");
1352
1336
  }
1353
- function bundleServerWrapper(serverRscOutDir, wrapperSource) {
1354
- const wrapperEntryPath = path.join(serverRscOutDir, "__litzjs_wrapped_server_entry.mjs");
1355
- const bundleOutDir = path.join(serverRscOutDir, "__litzjs_bundle_out");
1337
+ function bundleServerWrapper(serverOutDir, wrapperSource) {
1338
+ const wrapperEntryPath = path.join(serverOutDir, "__litzjs_wrapped_server_entry.mjs");
1339
+ const bundleOutDir = path.join(serverOutDir, "__litzjs_bundle_out");
1356
1340
  const bundleScript = `
1357
1341
  const entryPath = process.env.LITZ_SERVER_ENTRY_PATH;
1358
1342
  const outDir = process.env.LITZ_SERVER_OUT_DIR;
@@ -1398,7 +1382,7 @@ if (!entryPath || !outDir) {
1398
1382
  });
1399
1383
  mkdirSync(bundleOutDir, { recursive: true });
1400
1384
  const result = spawnSync(process.execPath, ["-e", bundleScript], {
1401
- cwd: serverRscOutDir,
1385
+ cwd: serverOutDir,
1402
1386
  encoding: "utf8",
1403
1387
  env: {
1404
1388
  ...process.env,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "litzjs",
3
- "version": "0.0.0",
3
+ "version": "0.0.1",
4
4
  "description": "Client-first React framework with RSC support built on Vite",
5
5
  "keywords": [
6
6
  "framework",