@rpcbase/vite 0.140.0 → 0.142.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.
package/dist/index.js CHANGED
@@ -17,26 +17,39 @@ import { globSync } from "glob";
17
17
  const envFilePath = path.resolve(process.cwd(), ".env");
18
18
  if (fs.existsSync(envFilePath)) {
19
19
  const parsedFile = dotenv.parse(fs.readFileSync(envFilePath));
20
- const expanded = expand({ parsed: parsedFile }).parsed || {};
20
+ const expanded = expand({
21
+ parsed: parsedFile
22
+ }).parsed || {};
21
23
  Object.assign(process.env, expanded);
22
24
  }
23
25
  const require$1 = createRequire(import.meta.url);
24
26
  const splitPackageSpecifier = (specifier) => {
25
- if (!specifier) return { pkgName: specifier, subpath: "" };
27
+ if (!specifier) return {
28
+ pkgName: specifier,
29
+ subpath: ""
30
+ };
26
31
  if (specifier.startsWith("@")) {
27
32
  const segments = specifier.split("/");
28
- if (segments.length < 2) return { pkgName: specifier, subpath: "" };
33
+ if (segments.length < 2) return {
34
+ pkgName: specifier,
35
+ subpath: ""
36
+ };
29
37
  return {
30
38
  pkgName: `${segments[0]}/${segments[1]}`,
31
39
  subpath: segments.slice(2).join("/")
32
40
  };
33
41
  }
34
42
  const [pkgName, ...rest] = specifier.split("/");
35
- return { pkgName, subpath: rest.join("/") };
43
+ return {
44
+ pkgName,
45
+ subpath: rest.join("/")
46
+ };
36
47
  };
37
48
  const withTrailingSep = (p) => p.endsWith(path.sep) ? p : p + path.sep;
38
49
  const resolvePackageRoot = (pkg) => {
39
- const { pkgName } = splitPackageSpecifier(pkg);
50
+ const {
51
+ pkgName
52
+ } = splitPackageSpecifier(pkg);
40
53
  if (!pkgName) return pkg;
41
54
  try {
42
55
  const pkgJson = require$1.resolve(`${pkgName}/package.json`);
@@ -67,7 +80,10 @@ const resolvePackageRoot = (pkg) => {
67
80
  }
68
81
  };
69
82
  const resolveIntegratedPackagePath = (specifier) => {
70
- const { pkgName, subpath } = splitPackageSpecifier(specifier);
83
+ const {
84
+ pkgName,
85
+ subpath
86
+ } = splitPackageSpecifier(specifier);
71
87
  if (!pkgName) return specifier;
72
88
  const root = resolvePackageRoot(pkgName);
73
89
  if (!subpath) {
@@ -94,7 +110,9 @@ const resolveIntegratedPackagePath = (specifier) => {
94
110
  const __dirname$1 = path$1.dirname(fileURLToPath(import.meta.url));
95
111
  function run(bin, args) {
96
112
  return new Promise((resolve, reject) => {
97
- const p = spawn(bin, args, { stdio: "inherit" });
113
+ const p = spawn(bin, args, {
114
+ stdio: "inherit"
115
+ });
98
116
  p.on("close", (code) => code === 0 ? resolve() : reject(new Error(`posthog-cli exited ${code}`)));
99
117
  });
100
118
  }
@@ -202,7 +220,10 @@ function rewriteRpcbaseDbImport(importDeclaration, forbiddenIdentifiers) {
202
220
  if (!zLocals.has(local)) forbiddenIdentifiers.add(local);
203
221
  }
204
222
  if (zLocals.size === 0) {
205
- return { rewriteText: null, remainingValueLocals: [] };
223
+ return {
224
+ rewriteText: null,
225
+ remainingValueLocals: []
226
+ };
206
227
  }
207
228
  const specifierText = Array.from(zLocals).map((local) => local === "z" ? "z" : `z as ${local}`).join(", ");
208
229
  return {
@@ -307,7 +328,10 @@ function collectRuntimeIdentifierReferences(statement, out) {
307
328
  visit(statement);
308
329
  }
309
330
  function createTransformSource() {
310
- return ({ code, filePath }) => {
331
+ return ({
332
+ code,
333
+ filePath
334
+ }) => {
311
335
  const forbiddenIdentifiers = /* @__PURE__ */ new Set();
312
336
  const scriptKind = scriptKindFromFilePath(filePath);
313
337
  const sourceFile = ts.createSourceFile(filePath, code, ts.ScriptTarget.Latest, true, scriptKind);
@@ -317,14 +341,25 @@ function createTransformSource() {
317
341
  const source = getModuleSpecifierValue(statement);
318
342
  if (!source) continue;
319
343
  if (source === "@rpcbase/db") {
320
- const { rewriteText, remainingValueLocals } = rewriteRpcbaseDbImport(statement, forbiddenIdentifiers);
321
- if (!rewriteText) importActions.set(statement, { type: "remove" });
322
- else importActions.set(statement, { type: "overwrite", text: rewriteText, remainingValueLocals });
344
+ const {
345
+ rewriteText,
346
+ remainingValueLocals
347
+ } = rewriteRpcbaseDbImport(statement, forbiddenIdentifiers);
348
+ if (!rewriteText) importActions.set(statement, {
349
+ type: "remove"
350
+ });
351
+ else importActions.set(statement, {
352
+ type: "overwrite",
353
+ text: rewriteText,
354
+ remainingValueLocals
355
+ });
323
356
  continue;
324
357
  }
325
358
  if (!isForbiddenModuleSource(source)) continue;
326
359
  getImportValueLocals(statement).forEach((local) => forbiddenIdentifiers.add(local));
327
- importActions.set(statement, { type: "remove" });
360
+ importActions.set(statement, {
361
+ type: "remove"
362
+ });
328
363
  }
329
364
  let changed = true;
330
365
  const statementsToRemove = /* @__PURE__ */ new Set();
@@ -352,7 +387,9 @@ function createTransformSource() {
352
387
  const remainingValueLocals = currentAction?.type === "overwrite" ? currentAction.remainingValueLocals : getImportValueLocals(statement);
353
388
  if (remainingValueLocals.length === 0) continue;
354
389
  if (remainingValueLocals.some((local) => usedRuntimeIdentifiers.has(local))) continue;
355
- importActions.set(statement, { type: "remove" });
390
+ importActions.set(statement, {
391
+ type: "remove"
392
+ });
356
393
  }
357
394
  const s = new MagicString(code);
358
395
  for (const [importDeclaration, action] of importActions) {
@@ -367,7 +404,12 @@ function createTransformSource() {
367
404
  s.remove(statement.pos, statement.end);
368
405
  }
369
406
  if (!s.hasChanged()) return null;
370
- const map = JSON.parse(s.generateMap({ hires: true, includeContent: true, source: filePath, file: filePath }).toString());
407
+ const map = JSON.parse(s.generateMap({
408
+ hires: true,
409
+ includeContent: true,
410
+ source: filePath,
411
+ file: filePath
412
+ }).toString());
371
413
  map.file = filePath;
372
414
  map.sources = [filePath];
373
415
  return {
@@ -400,7 +442,10 @@ function pruneModelsForClientPlugin() {
400
442
  if (inferIsSsrTransform(transformOptions)) return;
401
443
  const filePath = id.split("?", 1)[0] ?? id;
402
444
  if (!isPrunableModelsFilePath(filePath)) return;
403
- const result = prune({ code, filePath });
445
+ const result = prune({
446
+ code,
447
+ filePath
448
+ });
404
449
  if (!result) return;
405
450
  return result;
406
451
  }
@@ -408,7 +453,11 @@ function pruneModelsForClientPlugin() {
408
453
  }
409
454
  const toPosixPath = (p) => p.split(path$1.sep).join("/");
410
455
  const computeInputs = (args) => {
411
- const { root, pattern, specDir } = args;
456
+ const {
457
+ root,
458
+ pattern,
459
+ specDir
460
+ } = args;
412
461
  const specDirAbs = path$1.resolve(root, specDir);
413
462
  const filesAbs = globSync(pattern, {
414
463
  cwd: root,
@@ -432,7 +481,10 @@ const hasRollupInput = (input) => {
432
481
  return false;
433
482
  };
434
483
  function specInputsPlugin(opts = {}) {
435
- const { pattern = "spec/**/*.spec{,.desktop,.mobile}.ts", specDir = "spec" } = opts;
484
+ const {
485
+ pattern = "spec/**/*.spec{,.desktop,.mobile}.ts",
486
+ specDir = "spec"
487
+ } = opts;
436
488
  let rootAbs;
437
489
  let specDirAbs;
438
490
  let outDirAbs;
@@ -453,7 +505,11 @@ function specInputsPlugin(opts = {}) {
453
505
  active = !hasRollupInput(inputOptions.input);
454
506
  if (!active) return;
455
507
  if (!currentInputs || inputsDirty) {
456
- currentInputs = computeInputs({ root: rootAbs, pattern, specDir });
508
+ currentInputs = computeInputs({
509
+ root: rootAbs,
510
+ pattern,
511
+ specDir
512
+ });
457
513
  inputsDirty = false;
458
514
  }
459
515
  inputOptions.input = currentInputs;
@@ -487,7 +543,10 @@ function specInputsPlugin(opts = {}) {
487
543
  if (!outDirAbs || !currentInputs) return;
488
544
  const key = inputsKey(currentInputs);
489
545
  if (lastInputsKey && lastInputsKey !== key) {
490
- fs.rmSync(outDirAbs, { recursive: true, force: true });
546
+ fs.rmSync(outDirAbs, {
547
+ recursive: true,
548
+ force: true
549
+ });
491
550
  }
492
551
  lastInputsKey = key;
493
552
  }
@@ -498,7 +557,9 @@ const ensureEnvPolyfillInjectPath = () => {
498
557
  const injectDir = path.resolve(process.cwd(), "node_modules/.rpcbase");
499
558
  const injectPath = path.join(injectDir, "rb-env-polyfill-inject.js");
500
559
  const injectContents = 'import "@rpcbase/env/polyfill"\n';
501
- fs.mkdirSync(injectDir, { recursive: true });
560
+ fs.mkdirSync(injectDir, {
561
+ recursive: true
562
+ });
502
563
  try {
503
564
  const existing = fs.readFileSync(injectPath, "utf8");
504
565
  if (existing === injectContents) {
@@ -511,26 +572,26 @@ const ensureEnvPolyfillInjectPath = () => {
511
572
  };
512
573
  const esbuildInjectPath = ensureEnvPolyfillInjectPath();
513
574
  const esbuildInject = [esbuildInjectPath];
514
- const esbuildInjectPlugins = [
515
- {
516
- name: "rb-env-polyfill-inject",
517
- setup(build) {
518
- build.onResolve({ filter: /.*/ }, (args) => {
519
- if (args.path === esbuildInjectPath) {
520
- return { path: esbuildInjectPath, namespace: "file" };
521
- }
522
- return void 0;
523
- });
524
- }
575
+ const esbuildInjectPlugins = [{
576
+ name: "rb-env-polyfill-inject",
577
+ setup(build) {
578
+ build.onResolve({
579
+ filter: /.*/
580
+ }, (args) => {
581
+ if (args.path === esbuildInjectPath) {
582
+ return {
583
+ path: esbuildInjectPath,
584
+ namespace: "file"
585
+ };
586
+ }
587
+ return void 0;
588
+ });
525
589
  }
526
- ];
590
+ }];
527
591
  const isCI = ["true", "yes", "1"].includes(process.env.CI?.trim());
528
592
  const isProduction = process.env.NODE_ENV === "production";
529
593
  const ALLOWED_DEV_ENV = ["NODE_ENV", "APP_NAME"];
530
- const ALLOWED_ENV_PREFIXES = [
531
- "RB_PUBLIC_",
532
- ...isProduction ? [] : ALLOWED_DEV_ENV
533
- ];
594
+ const ALLOWED_ENV_PREFIXES = ["RB_PUBLIC_", ...isProduction ? [] : ALLOWED_DEV_ENV];
534
595
  const htmlMinifyOptions = {
535
596
  collapseWhitespace: true,
536
597
  keepClosingSlash: true,
@@ -548,17 +609,7 @@ const resolveAliases = {
548
609
  "@/types": path.resolve(process.cwd(), "./src/types/"),
549
610
  "@": path.resolve(process.cwd(), "./src/client/")
550
611
  };
551
- const integratedPackages = [
552
- "@hookform/resolvers",
553
- "axios",
554
- "events",
555
- "libphonenumber-js",
556
- "posthog-js",
557
- "posthog-js/react",
558
- "posthog-node",
559
- "react-router",
560
- "react-hook-form"
561
- ];
612
+ const integratedPackages = ["@hookform/resolvers", "axios", "events", "libphonenumber-js", "posthog-js", "posthog-js/react", "posthog-node", "react-router", "react-hook-form"];
562
613
  integratedPackages.forEach((pkg) => {
563
614
  const resolved = resolveIntegratedPackagePath(pkg);
564
615
  resolveAliases[pkg] = resolved;
@@ -575,26 +626,18 @@ const rbPackagesNeedingEnvPolyfill = [
575
626
  "@rpcbase/form",
576
627
  "@rpcbase/router"
577
628
  ];
578
- const rbSsrNoExternalPackages = [
579
- ...rbPackagesNeedingEnvPolyfill,
580
- "@rpcbase/server"
581
- ];
582
- const rpcbaseDedupePackages = [
583
- "@rpcbase/api",
584
- "@rpcbase/auth",
585
- "@rpcbase/client",
586
- "@rpcbase/db",
587
- "@rpcbase/debug",
588
- "@rpcbase/env",
589
- "@rpcbase/form",
590
- "@rpcbase/router",
591
- "@rpcbase/server",
592
- "@rpcbase/ui",
593
- "@rpcbase/worker"
594
- ];
629
+ const rbSsrNoExternalPackages = [...rbPackagesNeedingEnvPolyfill, "@rpcbase/server"];
630
+ const rpcbaseDedupePackages = ["@rpcbase/api", "@rpcbase/auth", "@rpcbase/client", "@rpcbase/db", "@rpcbase/debug", "@rpcbase/env", "@rpcbase/form", "@rpcbase/router", "@rpcbase/server", "@rpcbase/ui", "@rpcbase/worker"];
595
631
  const createRuntimeEnv = (args) => {
596
- const { env, configEnv } = args;
597
- const { command, mode, isSsrBuild } = configEnv;
632
+ const {
633
+ env,
634
+ configEnv
635
+ } = args;
636
+ const {
637
+ command,
638
+ mode,
639
+ isSsrBuild
640
+ } = configEnv;
598
641
  const isDevCommand = command === "serve";
599
642
  const mergedEnv = {
600
643
  ...env
@@ -609,33 +652,31 @@ const createRuntimeEnv = (args) => {
609
652
  };
610
653
  };
611
654
  const getBaseConfig = (configEnv) => {
612
- const { mode } = configEnv;
655
+ const {
656
+ mode
657
+ } = configEnv;
613
658
  const env = loadEnv(mode, process.cwd(), ALLOWED_ENV_PREFIXES);
614
- const runtimeEnv = createRuntimeEnv({ env, configEnv });
659
+ const runtimeEnv = createRuntimeEnv({
660
+ env,
661
+ configEnv
662
+ });
615
663
  return {
616
664
  clearScreen: false,
617
- plugins: [
618
- pruneModelsForClientPlugin(),
619
- react({
620
- babel: {
621
- plugins: [
622
- ["babel-plugin-react-compiler", { target: "19" }]
623
- ]
624
- }
625
- }),
626
- createHtmlPlugin({
627
- // IMPORTANT: minify removes comments by default, which are used by the app ssr
628
- minify: htmlMinifyOptions
629
- }),
630
- viteSingleFile({
631
- useRecommendedBuildConfig: false,
632
- deleteInlinedFiles: true,
633
- inlinePattern: ["**/*.css"],
634
- removeViteModuleLoader: false
635
- }),
636
- isProduction && isCI && posthogSourcemapsPlugin({}),
637
- shouldAnalyze && analyzer()
638
- ].filter(Boolean),
665
+ plugins: [pruneModelsForClientPlugin(), react({
666
+ babel: {
667
+ plugins: [["babel-plugin-react-compiler", {
668
+ target: "19"
669
+ }]]
670
+ }
671
+ }), createHtmlPlugin({
672
+ // IMPORTANT: minify removes comments by default, which are used by the app ssr
673
+ minify: htmlMinifyOptions
674
+ }), viteSingleFile({
675
+ useRecommendedBuildConfig: false,
676
+ deleteInlinedFiles: true,
677
+ inlinePattern: ["**/*.css"],
678
+ removeViteModuleLoader: false
679
+ }), isProduction && isCI && posthogSourcemapsPlugin({}), shouldAnalyze && analyzer()].filter(Boolean),
639
680
  define: {
640
681
  __vite_env__: runtimeEnv
641
682
  },
@@ -650,7 +691,9 @@ const getBaseConfig = (configEnv) => {
650
691
  app: "./src/client/index.html"
651
692
  }
652
693
  },
653
- commonjsOptions: { transformMixedEsModules: true }
694
+ commonjsOptions: {
695
+ transformMixedEsModules: true
696
+ }
654
697
  },
655
698
  server: {
656
699
  allowedHosts: true,
@@ -665,13 +708,7 @@ const getBaseConfig = (configEnv) => {
665
708
  alias: {
666
709
  ...resolveAliases
667
710
  },
668
- dedupe: [
669
- "react",
670
- "react-dom",
671
- "react-router",
672
- "react-hook-form",
673
- ...rpcbaseDedupePackages
674
- ],
711
+ dedupe: ["react", "react-dom", "react-router", "react-hook-form", ...rpcbaseDedupePackages],
675
712
  preserveSymlinks: true
676
713
  },
677
714
  ssr: {
@@ -720,37 +757,36 @@ const extendConfig = (userConfig) => {
720
757
  };
721
758
  };
722
759
  const getSpecBaseConfig = (configEnv) => {
723
- const { mode } = configEnv;
760
+ const {
761
+ mode
762
+ } = configEnv;
724
763
  const env = loadEnv(mode, process.cwd(), ALLOWED_ENV_PREFIXES);
725
- const runtimeEnv = createRuntimeEnv({ env, configEnv });
764
+ const runtimeEnv = createRuntimeEnv({
765
+ env,
766
+ configEnv
767
+ });
726
768
  return {
727
769
  clearScreen: false,
728
770
  define: {
729
771
  __vite_env__: runtimeEnv
730
772
  },
731
773
  envPrefix: ALLOWED_ENV_PREFIXES,
732
- plugins: [
733
- specInputsPlugin()
734
- ],
774
+ plugins: [specInputsPlugin()],
735
775
  build: {
736
776
  outDir: "./build/spec/",
737
777
  ssr: true,
738
778
  rollupOptions: {
739
779
  input: {}
740
780
  },
741
- commonjsOptions: { transformMixedEsModules: true }
781
+ commonjsOptions: {
782
+ transformMixedEsModules: true
783
+ }
742
784
  },
743
785
  resolve: {
744
786
  alias: {
745
787
  ...resolveAliases
746
788
  },
747
- dedupe: [
748
- "react",
749
- "react-dom",
750
- "react-router",
751
- "react-hook-form",
752
- ...rpcbaseDedupePackages
753
- ],
789
+ dedupe: ["react", "react-dom", "react-router", "react-hook-form", ...rpcbaseDedupePackages],
754
790
  preserveSymlinks: true
755
791
  },
756
792
  ssr: {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/dotEnvExpand.ts","../src/resolveIntegratedPackagePath.ts","../src/plugins/posthog-sourcemaps/index.ts","../src/plugins/prune-models-for-client/transformSource.ts","../src/plugins/prune-models-for-client/index.ts","../src/plugins/spec-inputs/index.ts","../src/index.ts"],"sourcesContent":["import fs from \"node:fs\"\nimport path from \"path\"\n\nimport dotenv from \"dotenv\"\nimport { expand } from \"dotenv-expand\"\n\n\nconst envFilePath = path.resolve(process.cwd(), \".env\")\n\nif (fs.existsSync(envFilePath)) {\n const parsedFile = dotenv.parse(fs.readFileSync(envFilePath))\n const expanded = expand({ parsed: parsedFile }).parsed || {}\n Object.assign(process.env, expanded)\n}\n","import path from \"path\"\nimport { createRequire } from \"node:module\"\nimport { existsSync, readFileSync } from \"node:fs\"\n\n\nconst require = createRequire(import.meta.url)\n\nconst splitPackageSpecifier = (specifier: string) => {\n if (!specifier) return { pkgName: specifier, subpath: \"\" }\n\n if (specifier.startsWith(\"@\")) {\n const segments = specifier.split(\"/\")\n if (segments.length < 2) return { pkgName: specifier, subpath: \"\" }\n return {\n pkgName: `${segments[0]}/${segments[1]}`,\n subpath: segments.slice(2).join(\"/\"),\n }\n }\n\n const [pkgName, ...rest] = specifier.split(\"/\")\n return { pkgName, subpath: rest.join(\"/\") }\n}\n\nconst withTrailingSep = (p: string) => (p.endsWith(path.sep) ? p : p + path.sep)\n\nconst resolvePackageRoot = (pkg: string) => {\n const { pkgName } = splitPackageSpecifier(pkg)\n if (!pkgName) return pkg\n\n // 1) chemin rapide: si le package exporte son package.json\n try {\n const pkgJson = require.resolve(`${pkgName}/package.json`)\n return path.dirname(pkgJson)\n } catch (err) {\n // 2) fallback: résoudre l'entrée du package puis remonter jusqu'à sa racine\n const entry = require.resolve(pkgName) // ex: .../node_modules/<pkg>/dist/...\n let dir = path.dirname(entry)\n\n // remonter jusqu'à un package.json dont \"name\" === pkg\n while (true) {\n const pkgJsonPath = path.join(dir, \"package.json\")\n if (existsSync(pkgJsonPath)) {\n try {\n const json = JSON.parse(readFileSync(pkgJsonPath, \"utf8\"))\n if (json && json.name === pkgName) return dir\n } catch {\n // ignore parsing errors\n }\n }\n const parent = path.dirname(dir)\n if (parent === dir) break\n dir = parent\n }\n\n // 3) dernier recours: reconstruire depuis le segment node_modules (ok avec pnpm)\n const nmMarker = `${path.sep}node_modules${path.sep}`\n const idx = entry.lastIndexOf(nmMarker)\n if (idx !== -1) {\n const nmRoot = entry.slice(0, idx + nmMarker.length)\n return path.join(nmRoot, pkgName)\n }\n\n // si vraiment rien trouvé, relancer l'erreur d'origine\n throw err\n }\n}\n\nexport const resolveIntegratedPackagePath = (specifier: string) => {\n const { pkgName, subpath } = splitPackageSpecifier(specifier)\n if (!pkgName) return specifier\n\n const root = resolvePackageRoot(pkgName)\n if (!subpath) {\n return withTrailingSep(root)\n }\n\n const subDir = path.join(root, subpath)\n const pkgJsonPath = path.join(subDir, \"package.json\")\n if (existsSync(pkgJsonPath)) {\n try {\n const pkgJson = JSON.parse(readFileSync(pkgJsonPath, \"utf8\"))\n const entry = pkgJson.module || pkgJson.main\n if (entry) {\n return path.join(subDir, entry)\n }\n } catch {\n // ignore parsing errors\n }\n }\n\n try {\n return require.resolve(specifier)\n } catch {\n return withTrailingSep(subDir)\n }\n}\n","import { spawn } from \"node:child_process\"\nimport path from \"node:path\"\nimport fs from \"node:fs\"\nimport { fileURLToPath } from \"node:url\"\n\nimport type { Plugin } from \"vite\"\n\n\nconst __dirname = path.dirname(fileURLToPath(import.meta.url))\n\nfunction run(bin: string, args: string[]) {\n return new Promise<void>((resolve, reject) => {\n const p = spawn(bin, args, { stdio: \"inherit\" })\n p.on(\"close\", (code) => code === 0 ? resolve() : reject(new Error(`posthog-cli exited ${code}`)))\n })\n}\n\nfunction resolvePosthogCliBin() {\n const binName = \"posthog-cli\"\n\n const fromCwd = path.join(process.cwd(), \"node_modules\", \".bin\", binName)\n if (fs.existsSync(fromCwd)) return fromCwd\n\n let dir = __dirname\n while (true) {\n const candidate = path.join(dir, \"node_modules\", \".bin\", binName)\n if (fs.existsSync(candidate)) return candidate\n\n const parent = path.dirname(dir)\n if (parent === dir) break\n dir = parent\n }\n\n return binName\n}\n\nexport function posthogSourcemapsPlugin(opts: {\n directory?: string\n version?: string\n host?: string\n deleteAfterUpload?: boolean\n} = {}): Plugin {\n const {\n directory = \"build/dist\",\n version,\n host = process.env.RB_PUBLIC_POSTHOG_HOST || \"https://eu.posthog.com\",\n deleteAfterUpload = true\n } = opts\n\n const bin = resolvePosthogCliBin()\n const globalArgs = [\"--host\", host]\n\n return {\n name: \"posthog-sourcemaps\",\n apply: \"build\",\n closeBundle: async () => {\n const orange = \"\\x1b[38;5;208m\"\n const reset = \"\\x1b[0m\"\n\n const envId = process.env.POSTHOG_CLI_ENV_ID\n const token = process.env.POSTHOG_CLI_TOKEN\n if (!envId || !token) {\n\n console.warn(`${orange}posthog-sourcemaps: plugin is enabled but no env vars for auth configured (POSTHOG_CLI_ENV_ID/POSTHOG_CLI_TOKEN). Skipping without failing.${reset}`)\n return\n }\n\n // if (!process.env.CI) {\n // console.warn(`${orange}posthog-sourcemaps: plugin has correct configuration, but refusing to run when process.env.CI is not set. Skipping without failing.${reset}`)\n // return\n // }\n\n const injectArgs = [\"sourcemap\", \"inject\", \"--directory\", directory]\n if (version) injectArgs.push(\"--version\", version)\n\n const uploadArgs = [\"sourcemap\", \"upload\", \"--directory\", directory]\n if (deleteAfterUpload) uploadArgs.push(\"--delete-after\")\n\n await run(bin, [...globalArgs, ...injectArgs])\n await run(bin, [...globalArgs, ...uploadArgs])\n }\n }\n}\n","import path from \"node:path\"\n\nimport MagicString from \"magic-string\"\nimport type { SourceMapInput } from \"rollup\"\nimport * as ts from \"typescript\"\n\n\nexport type PruneModelsForClientTransformResult = { code: string; map: SourceMapInput }\nexport type PruneModelsForClientTransform = (args: { code: string; filePath: string }) => PruneModelsForClientTransformResult | null\n\nfunction isForbiddenModuleSource(source: string): boolean {\n if (source === \"mongoose\") return true\n if (source.startsWith(\"node:\")) return true\n if (source.endsWith(\"/extendMongooseSchema\") || source.endsWith(\"./extendMongooseSchema\") || source.endsWith(\"extendMongooseSchema\")) {\n return true\n }\n return false\n}\n\nfunction getModuleSpecifierValue(importDeclaration: ts.ImportDeclaration): string | null {\n const moduleSpecifier = importDeclaration.moduleSpecifier\n if (!ts.isStringLiteralLike(moduleSpecifier)) return null\n return moduleSpecifier.text\n}\n\nfunction isTypeOnlyImport(importDeclaration: ts.ImportDeclaration): boolean {\n const importClause = importDeclaration.importClause\n if (!importClause) return false\n return importClause.isTypeOnly === true\n}\n\nfunction getImportValueLocals(importDeclaration: ts.ImportDeclaration): string[] {\n if (isTypeOnlyImport(importDeclaration)) return []\n\n const importClause = importDeclaration.importClause\n if (!importClause) return []\n\n const locals: string[] = []\n\n if (importClause.name) locals.push(importClause.name.text)\n\n const namedBindings = importClause.namedBindings\n if (namedBindings) {\n if (ts.isNamespaceImport(namedBindings)) {\n locals.push(namedBindings.name.text)\n } else if (ts.isNamedImports(namedBindings)) {\n for (const specifier of namedBindings.elements) {\n if (specifier.isTypeOnly) continue\n locals.push(specifier.name.text)\n }\n }\n }\n\n return locals\n}\n\nfunction getNamedImportSpecifiers(importDeclaration: ts.ImportDeclaration): ts.NodeArray<ts.ImportSpecifier> | null {\n const importClause = importDeclaration.importClause\n if (!importClause) return null\n if (!importClause.namedBindings) return null\n if (!ts.isNamedImports(importClause.namedBindings)) return null\n return importClause.namedBindings.elements\n}\n\nfunction rewriteRpcbaseDbImport(importDeclaration: ts.ImportDeclaration, forbiddenIdentifiers: Set<string>): {\n rewriteText: string | null\n remainingValueLocals: string[]\n} {\n const valueLocals = getImportValueLocals(importDeclaration)\n\n const zLocals = new Set<string>()\n\n const namedImports = getNamedImportSpecifiers(importDeclaration)\n if (namedImports && !isTypeOnlyImport(importDeclaration)) {\n for (const specifier of namedImports) {\n if (specifier.isTypeOnly) continue\n const imported = specifier.propertyName?.text ?? specifier.name.text\n if (imported !== \"z\") continue\n zLocals.add(specifier.name.text)\n }\n }\n\n for (const local of valueLocals) {\n if (!zLocals.has(local)) forbiddenIdentifiers.add(local)\n }\n\n if (zLocals.size === 0) {\n return { rewriteText: null, remainingValueLocals: [] }\n }\n\n const specifierText = Array.from(zLocals)\n .map((local) => (local === \"z\" ? \"z\" : `z as ${local}`))\n .join(\", \")\n\n return {\n rewriteText: `import { ${specifierText} } from \"@rpcbase/db\"`,\n remainingValueLocals: Array.from(zLocals),\n }\n}\n\nfunction collectBindingNames(name: ts.BindingName, out: string[]): void {\n if (ts.isIdentifier(name)) {\n out.push(name.text)\n return\n }\n\n for (const element of name.elements) {\n if (ts.isOmittedExpression(element)) continue\n collectBindingNames(element.name, out)\n }\n}\n\nfunction getTopLevelBindings(statement: ts.Statement): string[] {\n if (ts.isVariableStatement(statement)) {\n const names: string[] = []\n for (const decl of statement.declarationList.declarations) {\n collectBindingNames(decl.name, names)\n }\n return names\n }\n\n if (ts.isFunctionDeclaration(statement) || ts.isClassDeclaration(statement) || ts.isEnumDeclaration(statement)) {\n return statement.name ? [statement.name.text] : []\n }\n\n return []\n}\n\nfunction isRuntimeReferenceIdentifier(identifier: ts.Identifier): boolean {\n const parent = identifier.parent\n if (!parent) return true\n\n if (ts.isVariableDeclaration(parent) && parent.name === identifier) return false\n if (ts.isParameter(parent) && parent.name === identifier) return false\n\n if ((ts.isFunctionDeclaration(parent) || ts.isFunctionExpression(parent)) && parent.name === identifier) return false\n if ((ts.isClassDeclaration(parent) || ts.isClassExpression(parent)) && parent.name === identifier) return false\n if (ts.isEnumDeclaration(parent) && parent.name === identifier) return false\n\n if (ts.isTypeAliasDeclaration(parent) && parent.name === identifier) return false\n if (ts.isInterfaceDeclaration(parent) && parent.name === identifier) return false\n if (ts.isModuleDeclaration(parent) && parent.name === identifier) return false\n if (ts.isTypeParameterDeclaration(parent) && parent.name === identifier) return false\n\n if (ts.isImportClause(parent) && parent.name === identifier) return false\n if (ts.isNamespaceImport(parent) && parent.name === identifier) return false\n if (ts.isImportSpecifier(parent) && parent.name === identifier) return false\n if (ts.isImportEqualsDeclaration(parent) && parent.name === identifier) return false\n\n if (ts.isBindingElement(parent)) {\n if (parent.name === identifier) return false\n if (parent.propertyName === identifier) return false\n }\n\n if (ts.isPropertyAccessExpression(parent) && parent.name === identifier) return false\n if (ts.isQualifiedName(parent)) return false\n\n if (ts.isPropertyAssignment(parent) && parent.name === identifier) return false\n if (ts.isPropertyDeclaration(parent) && parent.name === identifier) return false\n if (ts.isPropertySignature(parent) && parent.name === identifier) return false\n\n if (ts.isMethodDeclaration(parent) && parent.name === identifier) return false\n if (ts.isMethodSignature(parent) && parent.name === identifier) return false\n if (ts.isGetAccessorDeclaration(parent) && parent.name === identifier) return false\n if (ts.isSetAccessorDeclaration(parent) && parent.name === identifier) return false\n\n if (ts.isShorthandPropertyAssignment(parent) && parent.name === identifier) return true\n\n if (ts.isExportSpecifier(parent)) {\n const local = parent.propertyName ?? parent.name\n return identifier === local\n }\n\n if (ts.isLabeledStatement(parent) && parent.label === identifier) return false\n if ((ts.isBreakStatement(parent) || ts.isContinueStatement(parent)) && parent.label === identifier) return false\n\n return true\n}\n\nfunction referencesForbiddenRuntime(statement: ts.Statement, forbidden: Set<string>): boolean {\n if (forbidden.size === 0) return false\n\n if (ts.isInterfaceDeclaration(statement) || ts.isTypeAliasDeclaration(statement)) return false\n\n let found = false\n\n const visit = (node: ts.Node): void => {\n if (found) return\n\n if (ts.isTypeNode(node)) return\n\n if (ts.isHeritageClause(node) && node.token === ts.SyntaxKind.ImplementsKeyword) return\n\n if (ts.isIdentifier(node)) {\n if (forbidden.has(node.text) && isRuntimeReferenceIdentifier(node)) {\n found = true\n return\n }\n }\n\n ts.forEachChild(node, visit)\n }\n\n visit(statement)\n\n return found\n}\n\nfunction scriptKindFromFilePath(filePath: string): ts.ScriptKind {\n const ext = path.extname(filePath).toLowerCase()\n if (ext === \".tsx\") return ts.ScriptKind.TSX\n return ts.ScriptKind.TS\n}\n\nfunction collectRuntimeIdentifierReferences(statement: ts.Statement, out: Set<string>): void {\n const visit = (node: ts.Node): void => {\n if (ts.isTypeNode(node)) return\n if (ts.isHeritageClause(node) && node.token === ts.SyntaxKind.ImplementsKeyword) return\n\n if (ts.isIdentifier(node) && isRuntimeReferenceIdentifier(node)) {\n out.add(node.text)\n }\n\n ts.forEachChild(node, visit)\n }\n\n visit(statement)\n}\n\nexport function createTransformSource(): PruneModelsForClientTransform {\n return ({ code, filePath }) => {\n const forbiddenIdentifiers = new Set<string>()\n const scriptKind = scriptKindFromFilePath(filePath)\n const sourceFile = ts.createSourceFile(filePath, code, ts.ScriptTarget.Latest, true, scriptKind)\n\n const importActions = new Map<ts.ImportDeclaration, { type: \"remove\" } | { type: \"overwrite\"; text: string; remainingValueLocals: string[] }>()\n\n for (const statement of sourceFile.statements) {\n if (!ts.isImportDeclaration(statement)) continue\n\n const source = getModuleSpecifierValue(statement)\n if (!source) continue\n\n if (source === \"@rpcbase/db\") {\n const { rewriteText, remainingValueLocals } = rewriteRpcbaseDbImport(statement, forbiddenIdentifiers)\n if (!rewriteText) importActions.set(statement, { type: \"remove\" })\n else importActions.set(statement, { type: \"overwrite\", text: rewriteText, remainingValueLocals })\n continue\n }\n\n if (!isForbiddenModuleSource(source)) continue\n\n getImportValueLocals(statement).forEach((local) => forbiddenIdentifiers.add(local))\n importActions.set(statement, { type: \"remove\" })\n }\n\n let changed = true\n const statementsToRemove = new Set<ts.Statement>()\n while (changed) {\n changed = false\n\n for (const statement of sourceFile.statements) {\n if (ts.isImportDeclaration(statement)) continue\n if (statementsToRemove.has(statement)) continue\n if (!referencesForbiddenRuntime(statement, forbiddenIdentifiers)) continue\n\n getTopLevelBindings(statement).forEach((name) => forbiddenIdentifiers.add(name))\n statementsToRemove.add(statement)\n changed = true\n }\n }\n\n const usedRuntimeIdentifiers = new Set<string>()\n for (const statement of sourceFile.statements) {\n if (ts.isImportDeclaration(statement)) continue\n if (statementsToRemove.has(statement)) continue\n collectRuntimeIdentifierReferences(statement, usedRuntimeIdentifiers)\n }\n\n for (const statement of sourceFile.statements) {\n if (!ts.isImportDeclaration(statement)) continue\n\n const currentAction = importActions.get(statement)\n if (currentAction?.type === \"remove\") continue\n\n const remainingValueLocals = currentAction?.type === \"overwrite\"\n ? currentAction.remainingValueLocals\n : getImportValueLocals(statement)\n\n if (remainingValueLocals.length === 0) continue\n if (remainingValueLocals.some((local) => usedRuntimeIdentifiers.has(local))) continue\n\n importActions.set(statement, { type: \"remove\" })\n }\n\n const s = new MagicString(code)\n\n for (const [importDeclaration, action] of importActions) {\n if (action.type === \"remove\") {\n s.remove(importDeclaration.pos, importDeclaration.end)\n continue\n }\n\n const start = importDeclaration.getStart(sourceFile)\n s.overwrite(start, importDeclaration.end, action.text)\n }\n\n for (const statement of statementsToRemove) {\n s.remove(statement.pos, statement.end)\n }\n\n if (!s.hasChanged()) return null\n\n const map = JSON.parse(s.generateMap({ hires: true, includeContent: true, source: filePath, file: filePath }).toString())\n map.file = filePath\n map.sources = [filePath]\n\n return {\n code: s.toString(),\n map: JSON.stringify(map),\n }\n }\n}\n","import path from \"node:path\"\n\nimport type { Plugin } from \"vite\"\n\nimport { createTransformSource } from \"./transformSource\"\n\n\ntype TransformOptionsLike = boolean | { ssr?: boolean } | undefined\n\nfunction inferIsSsrTransform(transformOptions: TransformOptionsLike): boolean {\n if (typeof transformOptions === \"boolean\") return transformOptions\n if (!transformOptions || typeof transformOptions !== \"object\") return false\n return transformOptions.ssr === true\n}\n\nfunction isPrunableModelsFilePath(filePath: string): boolean {\n const normalized = filePath.replaceAll(\"\\\\\", \"/\")\n\n const parts = normalized.split(\"/\")\n if (parts.includes(\"node_modules\")) return false\n if (parts.length < 2) return false\n if (!parts.some((part, index) => part === \"models\" && index < parts.length - 1)) return false\n\n if (normalized.endsWith(\".d.ts\")) return false\n\n const ext = path.posix.extname(normalized)\n return ext === \".ts\" || ext === \".tsx\"\n}\n\nexport function pruneModelsForClientPlugin(): Plugin {\n const prune = createTransformSource()\n\n return {\n name: \"lz-models-prune-for-browser\",\n enforce: \"pre\",\n transform(code, id, transformOptions) {\n if (inferIsSsrTransform(transformOptions as TransformOptionsLike)) return\n\n const filePath = id.split(\"?\", 1)[0] ?? id\n if (!isPrunableModelsFilePath(filePath)) return\n\n const result = prune({ code, filePath })\n if (!result) return\n return result\n },\n }\n}\n","import fs from \"node:fs\"\nimport path from \"node:path\"\n\nimport { globSync } from \"glob\"\nimport type { Plugin } from \"vite\"\n\n\ntype SpecInputsPluginOpts = {\n pattern?: string\n specDir?: string\n}\n\nconst toPosixPath = (p: string) => p.split(path.sep).join(\"/\")\n\nconst computeInputs = (args: { root: string; pattern: string; specDir: string }) => {\n const { root, pattern, specDir } = args\n const specDirAbs = path.resolve(root, specDir)\n\n const filesAbs = globSync(pattern, {\n cwd: root,\n absolute: true,\n nodir: true,\n })\n\n const inputs: Record<string, string> = {}\n for (const fileAbs of filesAbs) {\n const relFromSpec = path.relative(specDirAbs, fileAbs)\n const outputName = toPosixPath(relFromSpec).replace(/\\.ts$/, \"\")\n inputs[outputName] = fileAbs\n }\n\n return inputs\n}\n\nconst inputsKey = (inputs: Record<string, string>) => Object.keys(inputs).sort().join(\"\\n\")\n\nconst hasRollupInput = (input: unknown) => {\n if (!input) return false\n if (typeof input === \"string\") return true\n if (Array.isArray(input)) return input.length > 0\n if (typeof input === \"object\") return Object.keys(input as any).length > 0\n return false\n}\n\nexport function specInputsPlugin(opts: SpecInputsPluginOpts = {}): Plugin {\n const { pattern = \"spec/**/*.spec{,.desktop,.mobile}.ts\", specDir = \"spec\" } = opts\n\n let rootAbs: string | undefined\n let specDirAbs: string | undefined\n let outDirAbs: string | undefined\n\n let active = false\n let inputsDirty = true\n let currentInputs: Record<string, string> | undefined\n let lastInputsKey: string | undefined\n\n return {\n name: \"rb-spec-inputs\",\n apply: \"build\",\n configResolved(config) {\n rootAbs = config.root\n specDirAbs = path.resolve(rootAbs, specDir)\n outDirAbs = path.resolve(rootAbs, config.build.outDir)\n },\n options(inputOptions) {\n if (!rootAbs) return\n\n active = !hasRollupInput((inputOptions as any).input)\n if (!active) return\n\n if (!currentInputs || inputsDirty) {\n currentInputs = computeInputs({ root: rootAbs, pattern, specDir })\n inputsDirty = false\n }\n ;(inputOptions as any).input = currentInputs\n\n return inputOptions\n },\n watchChange(id, change) {\n if (!active) return\n if (!rootAbs || !specDirAbs) return\n\n const absId = path.isAbsolute(id) ? id : path.resolve(rootAbs, id)\n\n if (absId === specDirAbs) {\n inputsDirty = true\n return\n }\n\n if (!absId.startsWith(specDirAbs + path.sep)) return\n if (!/\\.spec(?:\\.(?:desktop|mobile))?\\.ts$/.test(absId)) return\n if (change.event === \"create\" || change.event === \"delete\") {\n inputsDirty = true\n }\n if (change.event === \"update\") {\n const relFromSpec = path.relative(specDirAbs, absId)\n const outputName = toPosixPath(relFromSpec).replace(/\\.ts$/, \"\")\n if (!currentInputs || currentInputs[outputName] !== absId) {\n inputsDirty = true\n }\n }\n },\n buildStart() {\n if (!active) return\n if (!specDirAbs) return\n\n this.addWatchFile(specDirAbs)\n\n if (!outDirAbs || !currentInputs) return\n\n const key = inputsKey(currentInputs)\n if (lastInputsKey && lastInputsKey !== key) {\n fs.rmSync(outDirAbs, { recursive: true, force: true })\n }\n lastInputsKey = key\n },\n }\n}\n","import \"./dotEnvExpand\"\n\nimport path from \"path\"\nimport fs from \"node:fs\"\n\nimport {\n createServer as viteCreateServer,\n mergeConfig,\n loadEnv,\n} from \"vite\"\nimport type { ConfigEnv, UserConfig, UserConfigExport, UserConfigFn } from \"vite\"\nimport { viteSingleFile } from \"vite-plugin-singlefile\"\nimport react from \"@vitejs/plugin-react\"\nimport { createHtmlPlugin } from \"vite-plugin-html\"\nimport { analyzer } from \"vite-bundle-analyzer\"\n\nimport { resolveIntegratedPackagePath } from \"./resolveIntegratedPackagePath\"\nimport { posthogSourcemapsPlugin } from \"./plugins/posthog-sourcemaps\"\nimport { pruneModelsForClientPlugin } from \"./plugins/prune-models-for-client\"\nimport { specInputsPlugin } from \"./plugins/spec-inputs\"\n\n\nexport { pruneModelsForClientPlugin }\n\n\nconst shouldAnalyze = process.env.ANALYZE === \"1\"\n\nconst ensureEnvPolyfillInjectPath = () => {\n const injectDir = path.resolve(process.cwd(), \"node_modules/.rpcbase\")\n const injectPath = path.join(injectDir, \"rb-env-polyfill-inject.js\")\n const injectContents = \"import \\\"@rpcbase/env/polyfill\\\"\\n\"\n\n fs.mkdirSync(injectDir, { recursive: true })\n try {\n const existing = fs.readFileSync(injectPath, \"utf8\")\n if (existing === injectContents) {\n return injectPath\n }\n } catch {\n // file does not exist yet\n }\n\n fs.writeFileSync(injectPath, injectContents, \"utf8\")\n return injectPath\n}\n\nconst esbuildInjectPath = ensureEnvPolyfillInjectPath()\nconst esbuildInject = [esbuildInjectPath]\nconst esbuildInjectPlugins: any[] = [\n {\n name: \"rb-env-polyfill-inject\",\n setup(build: any) {\n build.onResolve({ filter: /.*/ }, (args: any) => {\n if (args.path === esbuildInjectPath) {\n return { path: esbuildInjectPath, namespace: \"file\" }\n }\n\n return undefined\n })\n },\n },\n]\n\nconst isCI = [\"true\", \"yes\", \"1\"].includes((process.env.CI as string)?.trim())\nconst isProduction = process.env.NODE_ENV === \"production\"\n\nconst ALLOWED_DEV_ENV = [\"NODE_ENV\", \"APP_NAME\"]\n// workaround vite.ssrLoadModule not setting ssrBuild properly\nconst ALLOWED_ENV_PREFIXES = [\n \"RB_PUBLIC_\",\n ...(isProduction ? [] : ALLOWED_DEV_ENV),\n]\n\n// https://github.com/vbenjs/vite-plugin-html?tab=readme-ov-file#minifyoptions\nconst htmlMinifyOptions = {\n collapseWhitespace: true,\n keepClosingSlash: true,\n removeComments: false,\n removeRedundantAttributes: true,\n removeScriptTypeAttributes: true,\n removeStyleLinkTypeAttributes: true,\n useShortDoctype: true,\n minifyCSS: true,\n}\n\nconst resolveAliases: Record<string, string> = {\n \"@/api\": path.resolve(process.cwd(), \"./src/api/\"),\n \"@/models\": path.resolve(process.cwd(), \"./src/models/\"),\n \"@/shared\": path.resolve(process.cwd(), \"./src/shared/\"),\n \"@/types\": path.resolve(process.cwd(), \"./src/types/\"),\n \"@\": path.resolve(process.cwd(), \"./src/client/\"),\n}\n\nconst integratedPackages = [\n \"@hookform/resolvers\",\n \"axios\",\n \"events\",\n \"libphonenumber-js\",\n \"posthog-js\",\n \"posthog-js/react\",\n \"posthog-node\",\n \"react-router\",\n \"react-hook-form\",\n]\n\n// Add each integrated package to resolveAliases\nintegratedPackages.forEach((pkg) => {\n const resolved = resolveIntegratedPackagePath(pkg)\n resolveAliases[pkg] = resolved\n})\n\nresolveAliases[\"node:events\"] = resolveIntegratedPackagePath(\"events\")\n\n// Force PostHog React imports to resolve to the ESM bundle to avoid Node ESM\n// directory import errors while keeping SSR compatibility.\nconst posthogReactEsm = resolveIntegratedPackagePath(\"posthog-js/react/dist/esm/index.js\")\nresolveAliases[\"posthog-js/react\"] = posthogReactEsm\nresolveAliases[\"posthog-js/react/dist/esm/index.js\"] = posthogReactEsm\n\nexport { resolveAliases }\n\nconst rbPackagesNeedingEnvPolyfill = [\n \"@rpcbase/auth\",\n \"@rpcbase/env\",\n // \"@rpcbase/env/polyfill\",\n \"@rpcbase/client\",\n \"@rpcbase/form\",\n \"@rpcbase/router\",\n]\n\nconst rbSsrNoExternalPackages = [\n ...rbPackagesNeedingEnvPolyfill,\n \"@rpcbase/server\",\n]\n\nconst rpcbaseDedupePackages = [\n \"@rpcbase/api\",\n \"@rpcbase/auth\",\n \"@rpcbase/client\",\n \"@rpcbase/db\",\n \"@rpcbase/debug\",\n \"@rpcbase/env\",\n \"@rpcbase/form\",\n \"@rpcbase/router\",\n \"@rpcbase/server\",\n \"@rpcbase/ui\",\n \"@rpcbase/worker\",\n]\n\nconst createRuntimeEnv = (args: {\n env: Record<string, string>\n configEnv: ConfigEnv\n}) => {\n const { env, configEnv } = args\n const { command, mode, isSsrBuild } = configEnv\n const isDevCommand = command === \"serve\"\n\n const mergedEnv = {\n ...env,\n }\n\n return {\n ...mergedEnv,\n BASE_URL: mergedEnv.BASE_URL ?? \"/\",\n MODE: mode,\n DEV: isDevCommand,\n PROD: !isDevCommand,\n SSR: Boolean(isSsrBuild),\n }\n}\n\n// https://vite.dev/config/\nconst getBaseConfig = (configEnv: ConfigEnv): UserConfig => {\n const { mode } = configEnv\n const env = loadEnv(mode, process.cwd(), ALLOWED_ENV_PREFIXES)\n const runtimeEnv = createRuntimeEnv({ env, configEnv })\n\n return {\n clearScreen: false,\n plugins: [\n pruneModelsForClientPlugin(),\n react({\n babel: {\n plugins: [\n [\"babel-plugin-react-compiler\", { target: \"19\" }],\n ],\n },\n }),\n createHtmlPlugin({\n // IMPORTANT: minify removes comments by default, which are used by the app ssr\n minify: htmlMinifyOptions,\n }),\n viteSingleFile({\n useRecommendedBuildConfig: false,\n deleteInlinedFiles: true,\n inlinePattern: [\"**/*.css\"],\n removeViteModuleLoader: false,\n }),\n isProduction && isCI && posthogSourcemapsPlugin({}),\n shouldAnalyze && analyzer(),\n ].filter(Boolean),\n define: {\n __vite_env__: runtimeEnv,\n },\n envPrefix: ALLOWED_ENV_PREFIXES,\n publicDir: path.join(process.cwd(), \"./src/client/public\"),\n build: {\n sourcemap: isProduction ? \"hidden\" : false,\n cssCodeSplit: false,\n outDir: \"./build/dist/\",\n rollupOptions: {\n input: {\n app: \"./src/client/index.html\",\n },\n },\n commonjsOptions: { transformMixedEsModules: true },\n },\n server: {\n allowedHosts: true,\n headers: {\n // \"X-Custom-Header\": \"test-custom\",\n },\n watch: {\n ignored: [\"**/build/playwright/**\"],\n },\n },\n resolve: {\n alias: {\n ...resolveAliases,\n },\n dedupe: [\n \"react\",\n \"react-dom\",\n \"react-router\",\n \"react-hook-form\",\n ...rpcbaseDedupePackages,\n ],\n preserveSymlinks: true,\n },\n ssr: {\n external: [\n // \"react\", \"react-dom\",\n \"cookie\",\n \"mongoose\",\n \"mongodb\",\n ],\n noExternal: [\n ...rbSsrNoExternalPackages,\n // \"react-use\",\n ],\n },\n optimizeDeps: {\n include: [\n // Force RPC Base packages through esbuild so rb-env-polyfill injects before their dist code touches globalThis.__rb_env__\n ...rbPackagesNeedingEnvPolyfill,\n \"hoist-non-react-statics\",\n // \"react\", \"react-dom\", \"react-dom/server\"\n // \"cookie\"\n ],\n exclude: [\n \"@radix-ui/*\",\n \"@rpcbase/ui\",\n // TMP only in sample app?\n // \"react\", \"react-dom/server\",\n // \"react-hook-form\",\n // \"react-dom\"\n ],\n esbuildOptions: {\n inject: esbuildInject,\n plugins: esbuildInjectPlugins,\n },\n },\n // future: {\n // removeSsrLoadModule: true\n // },\n }\n}\n\nexport const extendConfig = (userConfig: UserConfigExport): UserConfigFn => {\n return async (configEnv) => {\n const config =\n typeof userConfig === \"function\"\n ? await (userConfig as UserConfigFn)(configEnv)\n : userConfig\n\n const baseConfig = getBaseConfig(configEnv)\n\n return mergeConfig(baseConfig, config as any)\n }\n}\n\nconst getSpecBaseConfig = (configEnv: ConfigEnv): UserConfig => {\n const { mode } = configEnv\n const env = loadEnv(mode, process.cwd(), ALLOWED_ENV_PREFIXES)\n const runtimeEnv = createRuntimeEnv({ env, configEnv })\n\n return {\n clearScreen: false,\n define: {\n __vite_env__: runtimeEnv,\n },\n envPrefix: ALLOWED_ENV_PREFIXES,\n plugins: [\n specInputsPlugin(),\n ],\n build: {\n outDir: \"./build/spec/\",\n ssr: true,\n rollupOptions: {\n input: {},\n },\n commonjsOptions: { transformMixedEsModules: true },\n },\n resolve: {\n alias: {\n ...resolveAliases,\n },\n dedupe: [\n \"react\",\n \"react-dom\",\n \"react-router\",\n \"react-hook-form\",\n ...rpcbaseDedupePackages,\n ],\n preserveSymlinks: true,\n },\n ssr: {\n external: [\"mongoose\"],\n noExternal: [\"@rpcbase/*\"],\n },\n }\n}\n\nexport const extendSpecConfig = (userConfig: UserConfigExport): UserConfigFn => {\n return async (configEnv) => {\n const config =\n typeof userConfig === \"function\"\n ? await (userConfig as UserConfigFn)(configEnv)\n : userConfig\n\n const baseConfig = getSpecBaseConfig(configEnv)\n\n return mergeConfig(baseConfig, config as any)\n }\n}\n\nexport const createServer = viteCreateServer\n"],"names":["require","__dirname","path","viteCreateServer"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../src/dotEnvExpand.ts","../src/resolveIntegratedPackagePath.ts","../src/plugins/posthog-sourcemaps/index.ts","../src/plugins/prune-models-for-client/transformSource.ts","../src/plugins/prune-models-for-client/index.ts","../src/plugins/spec-inputs/index.ts","../src/index.ts"],"sourcesContent":["import fs from \"node:fs\"\nimport path from \"path\"\n\nimport dotenv from \"dotenv\"\nimport { expand } from \"dotenv-expand\"\n\n\nconst envFilePath = path.resolve(process.cwd(), \".env\")\n\nif (fs.existsSync(envFilePath)) {\n const parsedFile = dotenv.parse(fs.readFileSync(envFilePath))\n const expanded = expand({ parsed: parsedFile }).parsed || {}\n Object.assign(process.env, expanded)\n}\n","import path from \"path\"\nimport { createRequire } from \"node:module\"\nimport { existsSync, readFileSync } from \"node:fs\"\n\n\nconst require = createRequire(import.meta.url)\n\nconst splitPackageSpecifier = (specifier: string) => {\n if (!specifier) return { pkgName: specifier, subpath: \"\" }\n\n if (specifier.startsWith(\"@\")) {\n const segments = specifier.split(\"/\")\n if (segments.length < 2) return { pkgName: specifier, subpath: \"\" }\n return {\n pkgName: `${segments[0]}/${segments[1]}`,\n subpath: segments.slice(2).join(\"/\"),\n }\n }\n\n const [pkgName, ...rest] = specifier.split(\"/\")\n return { pkgName, subpath: rest.join(\"/\") }\n}\n\nconst withTrailingSep = (p: string) => (p.endsWith(path.sep) ? p : p + path.sep)\n\nconst resolvePackageRoot = (pkg: string) => {\n const { pkgName } = splitPackageSpecifier(pkg)\n if (!pkgName) return pkg\n\n // 1) chemin rapide: si le package exporte son package.json\n try {\n const pkgJson = require.resolve(`${pkgName}/package.json`)\n return path.dirname(pkgJson)\n } catch (err) {\n // 2) fallback: résoudre l'entrée du package puis remonter jusqu'à sa racine\n const entry = require.resolve(pkgName) // ex: .../node_modules/<pkg>/dist/...\n let dir = path.dirname(entry)\n\n // remonter jusqu'à un package.json dont \"name\" === pkg\n while (true) {\n const pkgJsonPath = path.join(dir, \"package.json\")\n if (existsSync(pkgJsonPath)) {\n try {\n const json = JSON.parse(readFileSync(pkgJsonPath, \"utf8\"))\n if (json && json.name === pkgName) return dir\n } catch {\n // ignore parsing errors\n }\n }\n const parent = path.dirname(dir)\n if (parent === dir) break\n dir = parent\n }\n\n // 3) dernier recours: reconstruire depuis le segment node_modules (ok avec pnpm)\n const nmMarker = `${path.sep}node_modules${path.sep}`\n const idx = entry.lastIndexOf(nmMarker)\n if (idx !== -1) {\n const nmRoot = entry.slice(0, idx + nmMarker.length)\n return path.join(nmRoot, pkgName)\n }\n\n // si vraiment rien trouvé, relancer l'erreur d'origine\n throw err\n }\n}\n\nexport const resolveIntegratedPackagePath = (specifier: string) => {\n const { pkgName, subpath } = splitPackageSpecifier(specifier)\n if (!pkgName) return specifier\n\n const root = resolvePackageRoot(pkgName)\n if (!subpath) {\n return withTrailingSep(root)\n }\n\n const subDir = path.join(root, subpath)\n const pkgJsonPath = path.join(subDir, \"package.json\")\n if (existsSync(pkgJsonPath)) {\n try {\n const pkgJson = JSON.parse(readFileSync(pkgJsonPath, \"utf8\"))\n const entry = pkgJson.module || pkgJson.main\n if (entry) {\n return path.join(subDir, entry)\n }\n } catch {\n // ignore parsing errors\n }\n }\n\n try {\n return require.resolve(specifier)\n } catch {\n return withTrailingSep(subDir)\n }\n}\n","import { spawn } from \"node:child_process\"\nimport path from \"node:path\"\nimport fs from \"node:fs\"\nimport { fileURLToPath } from \"node:url\"\n\nimport type { Plugin } from \"vite\"\n\n\nconst __dirname = path.dirname(fileURLToPath(import.meta.url))\n\nfunction run(bin: string, args: string[]) {\n return new Promise<void>((resolve, reject) => {\n const p = spawn(bin, args, { stdio: \"inherit\" })\n p.on(\"close\", (code) => code === 0 ? resolve() : reject(new Error(`posthog-cli exited ${code}`)))\n })\n}\n\nfunction resolvePosthogCliBin() {\n const binName = \"posthog-cli\"\n\n const fromCwd = path.join(process.cwd(), \"node_modules\", \".bin\", binName)\n if (fs.existsSync(fromCwd)) return fromCwd\n\n let dir = __dirname\n while (true) {\n const candidate = path.join(dir, \"node_modules\", \".bin\", binName)\n if (fs.existsSync(candidate)) return candidate\n\n const parent = path.dirname(dir)\n if (parent === dir) break\n dir = parent\n }\n\n return binName\n}\n\nexport function posthogSourcemapsPlugin(opts: {\n directory?: string\n version?: string\n host?: string\n deleteAfterUpload?: boolean\n} = {}): Plugin {\n const {\n directory = \"build/dist\",\n version,\n host = process.env.RB_PUBLIC_POSTHOG_HOST || \"https://eu.posthog.com\",\n deleteAfterUpload = true\n } = opts\n\n const bin = resolvePosthogCliBin()\n const globalArgs = [\"--host\", host]\n\n return {\n name: \"posthog-sourcemaps\",\n apply: \"build\",\n closeBundle: async () => {\n const orange = \"\\x1b[38;5;208m\"\n const reset = \"\\x1b[0m\"\n\n const envId = process.env.POSTHOG_CLI_ENV_ID\n const token = process.env.POSTHOG_CLI_TOKEN\n if (!envId || !token) {\n\n console.warn(`${orange}posthog-sourcemaps: plugin is enabled but no env vars for auth configured (POSTHOG_CLI_ENV_ID/POSTHOG_CLI_TOKEN). Skipping without failing.${reset}`)\n return\n }\n\n // if (!process.env.CI) {\n // console.warn(`${orange}posthog-sourcemaps: plugin has correct configuration, but refusing to run when process.env.CI is not set. Skipping without failing.${reset}`)\n // return\n // }\n\n const injectArgs = [\"sourcemap\", \"inject\", \"--directory\", directory]\n if (version) injectArgs.push(\"--version\", version)\n\n const uploadArgs = [\"sourcemap\", \"upload\", \"--directory\", directory]\n if (deleteAfterUpload) uploadArgs.push(\"--delete-after\")\n\n await run(bin, [...globalArgs, ...injectArgs])\n await run(bin, [...globalArgs, ...uploadArgs])\n }\n }\n}\n","import path from \"node:path\"\n\nimport MagicString from \"magic-string\"\nimport type { SourceMapInput } from \"rollup\"\nimport * as ts from \"typescript\"\n\n\nexport type PruneModelsForClientTransformResult = { code: string; map: SourceMapInput }\nexport type PruneModelsForClientTransform = (args: { code: string; filePath: string }) => PruneModelsForClientTransformResult | null\n\nfunction isForbiddenModuleSource(source: string): boolean {\n if (source === \"mongoose\") return true\n if (source.startsWith(\"node:\")) return true\n if (source.endsWith(\"/extendMongooseSchema\") || source.endsWith(\"./extendMongooseSchema\") || source.endsWith(\"extendMongooseSchema\")) {\n return true\n }\n return false\n}\n\nfunction getModuleSpecifierValue(importDeclaration: ts.ImportDeclaration): string | null {\n const moduleSpecifier = importDeclaration.moduleSpecifier\n if (!ts.isStringLiteralLike(moduleSpecifier)) return null\n return moduleSpecifier.text\n}\n\nfunction isTypeOnlyImport(importDeclaration: ts.ImportDeclaration): boolean {\n const importClause = importDeclaration.importClause\n if (!importClause) return false\n return importClause.isTypeOnly === true\n}\n\nfunction getImportValueLocals(importDeclaration: ts.ImportDeclaration): string[] {\n if (isTypeOnlyImport(importDeclaration)) return []\n\n const importClause = importDeclaration.importClause\n if (!importClause) return []\n\n const locals: string[] = []\n\n if (importClause.name) locals.push(importClause.name.text)\n\n const namedBindings = importClause.namedBindings\n if (namedBindings) {\n if (ts.isNamespaceImport(namedBindings)) {\n locals.push(namedBindings.name.text)\n } else if (ts.isNamedImports(namedBindings)) {\n for (const specifier of namedBindings.elements) {\n if (specifier.isTypeOnly) continue\n locals.push(specifier.name.text)\n }\n }\n }\n\n return locals\n}\n\nfunction getNamedImportSpecifiers(importDeclaration: ts.ImportDeclaration): ts.NodeArray<ts.ImportSpecifier> | null {\n const importClause = importDeclaration.importClause\n if (!importClause) return null\n if (!importClause.namedBindings) return null\n if (!ts.isNamedImports(importClause.namedBindings)) return null\n return importClause.namedBindings.elements\n}\n\nfunction rewriteRpcbaseDbImport(importDeclaration: ts.ImportDeclaration, forbiddenIdentifiers: Set<string>): {\n rewriteText: string | null\n remainingValueLocals: string[]\n} {\n const valueLocals = getImportValueLocals(importDeclaration)\n\n const zLocals = new Set<string>()\n\n const namedImports = getNamedImportSpecifiers(importDeclaration)\n if (namedImports && !isTypeOnlyImport(importDeclaration)) {\n for (const specifier of namedImports) {\n if (specifier.isTypeOnly) continue\n const imported = specifier.propertyName?.text ?? specifier.name.text\n if (imported !== \"z\") continue\n zLocals.add(specifier.name.text)\n }\n }\n\n for (const local of valueLocals) {\n if (!zLocals.has(local)) forbiddenIdentifiers.add(local)\n }\n\n if (zLocals.size === 0) {\n return { rewriteText: null, remainingValueLocals: [] }\n }\n\n const specifierText = Array.from(zLocals)\n .map((local) => (local === \"z\" ? \"z\" : `z as ${local}`))\n .join(\", \")\n\n return {\n rewriteText: `import { ${specifierText} } from \"@rpcbase/db\"`,\n remainingValueLocals: Array.from(zLocals),\n }\n}\n\nfunction collectBindingNames(name: ts.BindingName, out: string[]): void {\n if (ts.isIdentifier(name)) {\n out.push(name.text)\n return\n }\n\n for (const element of name.elements) {\n if (ts.isOmittedExpression(element)) continue\n collectBindingNames(element.name, out)\n }\n}\n\nfunction getTopLevelBindings(statement: ts.Statement): string[] {\n if (ts.isVariableStatement(statement)) {\n const names: string[] = []\n for (const decl of statement.declarationList.declarations) {\n collectBindingNames(decl.name, names)\n }\n return names\n }\n\n if (ts.isFunctionDeclaration(statement) || ts.isClassDeclaration(statement) || ts.isEnumDeclaration(statement)) {\n return statement.name ? [statement.name.text] : []\n }\n\n return []\n}\n\nfunction isRuntimeReferenceIdentifier(identifier: ts.Identifier): boolean {\n const parent = identifier.parent\n if (!parent) return true\n\n if (ts.isVariableDeclaration(parent) && parent.name === identifier) return false\n if (ts.isParameter(parent) && parent.name === identifier) return false\n\n if ((ts.isFunctionDeclaration(parent) || ts.isFunctionExpression(parent)) && parent.name === identifier) return false\n if ((ts.isClassDeclaration(parent) || ts.isClassExpression(parent)) && parent.name === identifier) return false\n if (ts.isEnumDeclaration(parent) && parent.name === identifier) return false\n\n if (ts.isTypeAliasDeclaration(parent) && parent.name === identifier) return false\n if (ts.isInterfaceDeclaration(parent) && parent.name === identifier) return false\n if (ts.isModuleDeclaration(parent) && parent.name === identifier) return false\n if (ts.isTypeParameterDeclaration(parent) && parent.name === identifier) return false\n\n if (ts.isImportClause(parent) && parent.name === identifier) return false\n if (ts.isNamespaceImport(parent) && parent.name === identifier) return false\n if (ts.isImportSpecifier(parent) && parent.name === identifier) return false\n if (ts.isImportEqualsDeclaration(parent) && parent.name === identifier) return false\n\n if (ts.isBindingElement(parent)) {\n if (parent.name === identifier) return false\n if (parent.propertyName === identifier) return false\n }\n\n if (ts.isPropertyAccessExpression(parent) && parent.name === identifier) return false\n if (ts.isQualifiedName(parent)) return false\n\n if (ts.isPropertyAssignment(parent) && parent.name === identifier) return false\n if (ts.isPropertyDeclaration(parent) && parent.name === identifier) return false\n if (ts.isPropertySignature(parent) && parent.name === identifier) return false\n\n if (ts.isMethodDeclaration(parent) && parent.name === identifier) return false\n if (ts.isMethodSignature(parent) && parent.name === identifier) return false\n if (ts.isGetAccessorDeclaration(parent) && parent.name === identifier) return false\n if (ts.isSetAccessorDeclaration(parent) && parent.name === identifier) return false\n\n if (ts.isShorthandPropertyAssignment(parent) && parent.name === identifier) return true\n\n if (ts.isExportSpecifier(parent)) {\n const local = parent.propertyName ?? parent.name\n return identifier === local\n }\n\n if (ts.isLabeledStatement(parent) && parent.label === identifier) return false\n if ((ts.isBreakStatement(parent) || ts.isContinueStatement(parent)) && parent.label === identifier) return false\n\n return true\n}\n\nfunction referencesForbiddenRuntime(statement: ts.Statement, forbidden: Set<string>): boolean {\n if (forbidden.size === 0) return false\n\n if (ts.isInterfaceDeclaration(statement) || ts.isTypeAliasDeclaration(statement)) return false\n\n let found = false\n\n const visit = (node: ts.Node): void => {\n if (found) return\n\n if (ts.isTypeNode(node)) return\n\n if (ts.isHeritageClause(node) && node.token === ts.SyntaxKind.ImplementsKeyword) return\n\n if (ts.isIdentifier(node)) {\n if (forbidden.has(node.text) && isRuntimeReferenceIdentifier(node)) {\n found = true\n return\n }\n }\n\n ts.forEachChild(node, visit)\n }\n\n visit(statement)\n\n return found\n}\n\nfunction scriptKindFromFilePath(filePath: string): ts.ScriptKind {\n const ext = path.extname(filePath).toLowerCase()\n if (ext === \".tsx\") return ts.ScriptKind.TSX\n return ts.ScriptKind.TS\n}\n\nfunction collectRuntimeIdentifierReferences(statement: ts.Statement, out: Set<string>): void {\n const visit = (node: ts.Node): void => {\n if (ts.isTypeNode(node)) return\n if (ts.isHeritageClause(node) && node.token === ts.SyntaxKind.ImplementsKeyword) return\n\n if (ts.isIdentifier(node) && isRuntimeReferenceIdentifier(node)) {\n out.add(node.text)\n }\n\n ts.forEachChild(node, visit)\n }\n\n visit(statement)\n}\n\nexport function createTransformSource(): PruneModelsForClientTransform {\n return ({ code, filePath }) => {\n const forbiddenIdentifiers = new Set<string>()\n const scriptKind = scriptKindFromFilePath(filePath)\n const sourceFile = ts.createSourceFile(filePath, code, ts.ScriptTarget.Latest, true, scriptKind)\n\n const importActions = new Map<ts.ImportDeclaration, { type: \"remove\" } | { type: \"overwrite\"; text: string; remainingValueLocals: string[] }>()\n\n for (const statement of sourceFile.statements) {\n if (!ts.isImportDeclaration(statement)) continue\n\n const source = getModuleSpecifierValue(statement)\n if (!source) continue\n\n if (source === \"@rpcbase/db\") {\n const { rewriteText, remainingValueLocals } = rewriteRpcbaseDbImport(statement, forbiddenIdentifiers)\n if (!rewriteText) importActions.set(statement, { type: \"remove\" })\n else importActions.set(statement, { type: \"overwrite\", text: rewriteText, remainingValueLocals })\n continue\n }\n\n if (!isForbiddenModuleSource(source)) continue\n\n getImportValueLocals(statement).forEach((local) => forbiddenIdentifiers.add(local))\n importActions.set(statement, { type: \"remove\" })\n }\n\n let changed = true\n const statementsToRemove = new Set<ts.Statement>()\n while (changed) {\n changed = false\n\n for (const statement of sourceFile.statements) {\n if (ts.isImportDeclaration(statement)) continue\n if (statementsToRemove.has(statement)) continue\n if (!referencesForbiddenRuntime(statement, forbiddenIdentifiers)) continue\n\n getTopLevelBindings(statement).forEach((name) => forbiddenIdentifiers.add(name))\n statementsToRemove.add(statement)\n changed = true\n }\n }\n\n const usedRuntimeIdentifiers = new Set<string>()\n for (const statement of sourceFile.statements) {\n if (ts.isImportDeclaration(statement)) continue\n if (statementsToRemove.has(statement)) continue\n collectRuntimeIdentifierReferences(statement, usedRuntimeIdentifiers)\n }\n\n for (const statement of sourceFile.statements) {\n if (!ts.isImportDeclaration(statement)) continue\n\n const currentAction = importActions.get(statement)\n if (currentAction?.type === \"remove\") continue\n\n const remainingValueLocals = currentAction?.type === \"overwrite\"\n ? currentAction.remainingValueLocals\n : getImportValueLocals(statement)\n\n if (remainingValueLocals.length === 0) continue\n if (remainingValueLocals.some((local) => usedRuntimeIdentifiers.has(local))) continue\n\n importActions.set(statement, { type: \"remove\" })\n }\n\n const s = new MagicString(code)\n\n for (const [importDeclaration, action] of importActions) {\n if (action.type === \"remove\") {\n s.remove(importDeclaration.pos, importDeclaration.end)\n continue\n }\n\n const start = importDeclaration.getStart(sourceFile)\n s.overwrite(start, importDeclaration.end, action.text)\n }\n\n for (const statement of statementsToRemove) {\n s.remove(statement.pos, statement.end)\n }\n\n if (!s.hasChanged()) return null\n\n const map = JSON.parse(s.generateMap({ hires: true, includeContent: true, source: filePath, file: filePath }).toString())\n map.file = filePath\n map.sources = [filePath]\n\n return {\n code: s.toString(),\n map: JSON.stringify(map),\n }\n }\n}\n","import path from \"node:path\"\n\nimport type { Plugin } from \"vite\"\n\nimport { createTransformSource } from \"./transformSource\"\n\n\ntype TransformOptionsLike = boolean | { ssr?: boolean } | undefined\n\nfunction inferIsSsrTransform(transformOptions: TransformOptionsLike): boolean {\n if (typeof transformOptions === \"boolean\") return transformOptions\n if (!transformOptions || typeof transformOptions !== \"object\") return false\n return transformOptions.ssr === true\n}\n\nfunction isPrunableModelsFilePath(filePath: string): boolean {\n const normalized = filePath.replaceAll(\"\\\\\", \"/\")\n\n const parts = normalized.split(\"/\")\n if (parts.includes(\"node_modules\")) return false\n if (parts.length < 2) return false\n if (!parts.some((part, index) => part === \"models\" && index < parts.length - 1)) return false\n\n if (normalized.endsWith(\".d.ts\")) return false\n\n const ext = path.posix.extname(normalized)\n return ext === \".ts\" || ext === \".tsx\"\n}\n\nexport function pruneModelsForClientPlugin(): Plugin {\n const prune = createTransformSource()\n\n return {\n name: \"lz-models-prune-for-browser\",\n enforce: \"pre\",\n transform(code, id, transformOptions) {\n if (inferIsSsrTransform(transformOptions as TransformOptionsLike)) return\n\n const filePath = id.split(\"?\", 1)[0] ?? id\n if (!isPrunableModelsFilePath(filePath)) return\n\n const result = prune({ code, filePath })\n if (!result) return\n return result\n },\n }\n}\n","import fs from \"node:fs\"\nimport path from \"node:path\"\n\nimport { globSync } from \"glob\"\nimport type { Plugin } from \"vite\"\n\n\ntype SpecInputsPluginOpts = {\n pattern?: string\n specDir?: string\n}\n\nconst toPosixPath = (p: string) => p.split(path.sep).join(\"/\")\n\nconst computeInputs = (args: { root: string; pattern: string; specDir: string }) => {\n const { root, pattern, specDir } = args\n const specDirAbs = path.resolve(root, specDir)\n\n const filesAbs = globSync(pattern, {\n cwd: root,\n absolute: true,\n nodir: true,\n })\n\n const inputs: Record<string, string> = {}\n for (const fileAbs of filesAbs) {\n const relFromSpec = path.relative(specDirAbs, fileAbs)\n const outputName = toPosixPath(relFromSpec).replace(/\\.ts$/, \"\")\n inputs[outputName] = fileAbs\n }\n\n return inputs\n}\n\nconst inputsKey = (inputs: Record<string, string>) => Object.keys(inputs).sort().join(\"\\n\")\n\nconst hasRollupInput = (input: unknown) => {\n if (!input) return false\n if (typeof input === \"string\") return true\n if (Array.isArray(input)) return input.length > 0\n if (typeof input === \"object\") return Object.keys(input as any).length > 0\n return false\n}\n\nexport function specInputsPlugin(opts: SpecInputsPluginOpts = {}): Plugin {\n const { pattern = \"spec/**/*.spec{,.desktop,.mobile}.ts\", specDir = \"spec\" } = opts\n\n let rootAbs: string | undefined\n let specDirAbs: string | undefined\n let outDirAbs: string | undefined\n\n let active = false\n let inputsDirty = true\n let currentInputs: Record<string, string> | undefined\n let lastInputsKey: string | undefined\n\n return {\n name: \"rb-spec-inputs\",\n apply: \"build\",\n configResolved(config) {\n rootAbs = config.root\n specDirAbs = path.resolve(rootAbs, specDir)\n outDirAbs = path.resolve(rootAbs, config.build.outDir)\n },\n options(inputOptions) {\n if (!rootAbs) return\n\n active = !hasRollupInput((inputOptions as any).input)\n if (!active) return\n\n if (!currentInputs || inputsDirty) {\n currentInputs = computeInputs({ root: rootAbs, pattern, specDir })\n inputsDirty = false\n }\n ;(inputOptions as any).input = currentInputs\n\n return inputOptions\n },\n watchChange(id, change) {\n if (!active) return\n if (!rootAbs || !specDirAbs) return\n\n const absId = path.isAbsolute(id) ? id : path.resolve(rootAbs, id)\n\n if (absId === specDirAbs) {\n inputsDirty = true\n return\n }\n\n if (!absId.startsWith(specDirAbs + path.sep)) return\n if (!/\\.spec(?:\\.(?:desktop|mobile))?\\.ts$/.test(absId)) return\n if (change.event === \"create\" || change.event === \"delete\") {\n inputsDirty = true\n }\n if (change.event === \"update\") {\n const relFromSpec = path.relative(specDirAbs, absId)\n const outputName = toPosixPath(relFromSpec).replace(/\\.ts$/, \"\")\n if (!currentInputs || currentInputs[outputName] !== absId) {\n inputsDirty = true\n }\n }\n },\n buildStart() {\n if (!active) return\n if (!specDirAbs) return\n\n this.addWatchFile(specDirAbs)\n\n if (!outDirAbs || !currentInputs) return\n\n const key = inputsKey(currentInputs)\n if (lastInputsKey && lastInputsKey !== key) {\n fs.rmSync(outDirAbs, { recursive: true, force: true })\n }\n lastInputsKey = key\n },\n }\n}\n","import \"./dotEnvExpand\"\n\nimport path from \"path\"\nimport fs from \"node:fs\"\n\nimport {\n createServer as viteCreateServer,\n mergeConfig,\n loadEnv,\n} from \"vite\"\nimport type { ConfigEnv, UserConfig, UserConfigExport, UserConfigFn } from \"vite\"\nimport { viteSingleFile } from \"vite-plugin-singlefile\"\nimport react from \"@vitejs/plugin-react\"\nimport { createHtmlPlugin } from \"vite-plugin-html\"\nimport { analyzer } from \"vite-bundle-analyzer\"\n\nimport { resolveIntegratedPackagePath } from \"./resolveIntegratedPackagePath\"\nimport { posthogSourcemapsPlugin } from \"./plugins/posthog-sourcemaps\"\nimport { pruneModelsForClientPlugin } from \"./plugins/prune-models-for-client\"\nimport { specInputsPlugin } from \"./plugins/spec-inputs\"\n\n\nexport { pruneModelsForClientPlugin }\n\n\nconst shouldAnalyze = process.env.ANALYZE === \"1\"\n\nconst ensureEnvPolyfillInjectPath = () => {\n const injectDir = path.resolve(process.cwd(), \"node_modules/.rpcbase\")\n const injectPath = path.join(injectDir, \"rb-env-polyfill-inject.js\")\n const injectContents = \"import \\\"@rpcbase/env/polyfill\\\"\\n\"\n\n fs.mkdirSync(injectDir, { recursive: true })\n try {\n const existing = fs.readFileSync(injectPath, \"utf8\")\n if (existing === injectContents) {\n return injectPath\n }\n } catch {\n // file does not exist yet\n }\n\n fs.writeFileSync(injectPath, injectContents, \"utf8\")\n return injectPath\n}\n\nconst esbuildInjectPath = ensureEnvPolyfillInjectPath()\nconst esbuildInject = [esbuildInjectPath]\nconst esbuildInjectPlugins: any[] = [\n {\n name: \"rb-env-polyfill-inject\",\n setup(build: any) {\n build.onResolve({ filter: /.*/ }, (args: any) => {\n if (args.path === esbuildInjectPath) {\n return { path: esbuildInjectPath, namespace: \"file\" }\n }\n\n return undefined\n })\n },\n },\n]\n\nconst isCI = [\"true\", \"yes\", \"1\"].includes((process.env.CI as string)?.trim())\nconst isProduction = process.env.NODE_ENV === \"production\"\n\nconst ALLOWED_DEV_ENV = [\"NODE_ENV\", \"APP_NAME\"]\n// workaround vite.ssrLoadModule not setting ssrBuild properly\nconst ALLOWED_ENV_PREFIXES = [\n \"RB_PUBLIC_\",\n ...(isProduction ? [] : ALLOWED_DEV_ENV),\n]\n\n// https://github.com/vbenjs/vite-plugin-html?tab=readme-ov-file#minifyoptions\nconst htmlMinifyOptions = {\n collapseWhitespace: true,\n keepClosingSlash: true,\n removeComments: false,\n removeRedundantAttributes: true,\n removeScriptTypeAttributes: true,\n removeStyleLinkTypeAttributes: true,\n useShortDoctype: true,\n minifyCSS: true,\n}\n\nconst resolveAliases: Record<string, string> = {\n \"@/api\": path.resolve(process.cwd(), \"./src/api/\"),\n \"@/models\": path.resolve(process.cwd(), \"./src/models/\"),\n \"@/shared\": path.resolve(process.cwd(), \"./src/shared/\"),\n \"@/types\": path.resolve(process.cwd(), \"./src/types/\"),\n \"@\": path.resolve(process.cwd(), \"./src/client/\"),\n}\n\nconst integratedPackages = [\n \"@hookform/resolvers\",\n \"axios\",\n \"events\",\n \"libphonenumber-js\",\n \"posthog-js\",\n \"posthog-js/react\",\n \"posthog-node\",\n \"react-router\",\n \"react-hook-form\",\n]\n\n// Add each integrated package to resolveAliases\nintegratedPackages.forEach((pkg) => {\n const resolved = resolveIntegratedPackagePath(pkg)\n resolveAliases[pkg] = resolved\n})\n\nresolveAliases[\"node:events\"] = resolveIntegratedPackagePath(\"events\")\n\n// Force PostHog React imports to resolve to the ESM bundle to avoid Node ESM\n// directory import errors while keeping SSR compatibility.\nconst posthogReactEsm = resolveIntegratedPackagePath(\"posthog-js/react/dist/esm/index.js\")\nresolveAliases[\"posthog-js/react\"] = posthogReactEsm\nresolveAliases[\"posthog-js/react/dist/esm/index.js\"] = posthogReactEsm\n\nexport { resolveAliases }\n\nconst rbPackagesNeedingEnvPolyfill = [\n \"@rpcbase/auth\",\n \"@rpcbase/env\",\n // \"@rpcbase/env/polyfill\",\n \"@rpcbase/client\",\n \"@rpcbase/form\",\n \"@rpcbase/router\",\n]\n\nconst rbSsrNoExternalPackages = [\n ...rbPackagesNeedingEnvPolyfill,\n \"@rpcbase/server\",\n]\n\nconst rpcbaseDedupePackages = [\n \"@rpcbase/api\",\n \"@rpcbase/auth\",\n \"@rpcbase/client\",\n \"@rpcbase/db\",\n \"@rpcbase/debug\",\n \"@rpcbase/env\",\n \"@rpcbase/form\",\n \"@rpcbase/router\",\n \"@rpcbase/server\",\n \"@rpcbase/ui\",\n \"@rpcbase/worker\",\n]\n\nconst createRuntimeEnv = (args: {\n env: Record<string, string>\n configEnv: ConfigEnv\n}) => {\n const { env, configEnv } = args\n const { command, mode, isSsrBuild } = configEnv\n const isDevCommand = command === \"serve\"\n\n const mergedEnv = {\n ...env,\n }\n\n return {\n ...mergedEnv,\n BASE_URL: mergedEnv.BASE_URL ?? \"/\",\n MODE: mode,\n DEV: isDevCommand,\n PROD: !isDevCommand,\n SSR: Boolean(isSsrBuild),\n }\n}\n\n// https://vite.dev/config/\nconst getBaseConfig = (configEnv: ConfigEnv): UserConfig => {\n const { mode } = configEnv\n const env = loadEnv(mode, process.cwd(), ALLOWED_ENV_PREFIXES)\n const runtimeEnv = createRuntimeEnv({ env, configEnv })\n\n return {\n clearScreen: false,\n plugins: [\n pruneModelsForClientPlugin(),\n react({\n babel: {\n plugins: [\n [\"babel-plugin-react-compiler\", { target: \"19\" }],\n ],\n },\n }),\n createHtmlPlugin({\n // IMPORTANT: minify removes comments by default, which are used by the app ssr\n minify: htmlMinifyOptions,\n }),\n viteSingleFile({\n useRecommendedBuildConfig: false,\n deleteInlinedFiles: true,\n inlinePattern: [\"**/*.css\"],\n removeViteModuleLoader: false,\n }),\n isProduction && isCI && posthogSourcemapsPlugin({}),\n shouldAnalyze && analyzer(),\n ].filter(Boolean),\n define: {\n __vite_env__: runtimeEnv,\n },\n envPrefix: ALLOWED_ENV_PREFIXES,\n publicDir: path.join(process.cwd(), \"./src/client/public\"),\n build: {\n sourcemap: isProduction ? \"hidden\" : false,\n cssCodeSplit: false,\n outDir: \"./build/dist/\",\n rollupOptions: {\n input: {\n app: \"./src/client/index.html\",\n },\n },\n commonjsOptions: { transformMixedEsModules: true },\n },\n server: {\n allowedHosts: true,\n headers: {\n // \"X-Custom-Header\": \"test-custom\",\n },\n watch: {\n ignored: [\"**/build/playwright/**\"],\n },\n },\n resolve: {\n alias: {\n ...resolveAliases,\n },\n dedupe: [\n \"react\",\n \"react-dom\",\n \"react-router\",\n \"react-hook-form\",\n ...rpcbaseDedupePackages,\n ],\n preserveSymlinks: true,\n },\n ssr: {\n external: [\n // \"react\", \"react-dom\",\n \"cookie\",\n \"mongoose\",\n \"mongodb\",\n ],\n noExternal: [\n ...rbSsrNoExternalPackages,\n // \"react-use\",\n ],\n },\n optimizeDeps: {\n include: [\n // Force RPC Base packages through esbuild so rb-env-polyfill injects before their dist code touches globalThis.__rb_env__\n ...rbPackagesNeedingEnvPolyfill,\n \"hoist-non-react-statics\",\n // \"react\", \"react-dom\", \"react-dom/server\"\n // \"cookie\"\n ],\n exclude: [\n \"@radix-ui/*\",\n \"@rpcbase/ui\",\n // TMP only in sample app?\n // \"react\", \"react-dom/server\",\n // \"react-hook-form\",\n // \"react-dom\"\n ],\n esbuildOptions: {\n inject: esbuildInject,\n plugins: esbuildInjectPlugins,\n },\n },\n // future: {\n // removeSsrLoadModule: true\n // },\n }\n}\n\nexport const extendConfig = (userConfig: UserConfigExport): UserConfigFn => {\n return async (configEnv) => {\n const config =\n typeof userConfig === \"function\"\n ? await (userConfig as UserConfigFn)(configEnv)\n : userConfig\n\n const baseConfig = getBaseConfig(configEnv)\n\n return mergeConfig(baseConfig, config as any)\n }\n}\n\nconst getSpecBaseConfig = (configEnv: ConfigEnv): UserConfig => {\n const { mode } = configEnv\n const env = loadEnv(mode, process.cwd(), ALLOWED_ENV_PREFIXES)\n const runtimeEnv = createRuntimeEnv({ env, configEnv })\n\n return {\n clearScreen: false,\n define: {\n __vite_env__: runtimeEnv,\n },\n envPrefix: ALLOWED_ENV_PREFIXES,\n plugins: [\n specInputsPlugin(),\n ],\n build: {\n outDir: \"./build/spec/\",\n ssr: true,\n rollupOptions: {\n input: {},\n },\n commonjsOptions: { transformMixedEsModules: true },\n },\n resolve: {\n alias: {\n ...resolveAliases,\n },\n dedupe: [\n \"react\",\n \"react-dom\",\n \"react-router\",\n \"react-hook-form\",\n ...rpcbaseDedupePackages,\n ],\n preserveSymlinks: true,\n },\n ssr: {\n external: [\"mongoose\"],\n noExternal: [\"@rpcbase/*\"],\n },\n }\n}\n\nexport const extendSpecConfig = (userConfig: UserConfigExport): UserConfigFn => {\n return async (configEnv) => {\n const config =\n typeof userConfig === \"function\"\n ? await (userConfig as UserConfigFn)(configEnv)\n : userConfig\n\n const baseConfig = getSpecBaseConfig(configEnv)\n\n return mergeConfig(baseConfig, config as any)\n }\n}\n\nexport const createServer = viteCreateServer\n"],"names":["envFilePath","path","resolve","process","cwd","fs","existsSync","parsedFile","dotenv","parse","readFileSync","expanded","expand","parsed","Object","assign","env","require","createRequire","import","url","splitPackageSpecifier","specifier","pkgName","subpath","startsWith","segments","split","length","slice","join","rest","withTrailingSep","p","endsWith","sep","resolvePackageRoot","pkg","pkgJson","dirname","err","entry","dir","pkgJsonPath","json","JSON","name","parent","nmMarker","idx","lastIndexOf","nmRoot","resolveIntegratedPackagePath","root","subDir","module","main","__dirname","fileURLToPath","run","bin","args","Promise","reject","spawn","stdio","on","code","Error","resolvePosthogCliBin","binName","fromCwd","candidate","posthogSourcemapsPlugin","opts","directory","version","host","RB_PUBLIC_POSTHOG_HOST","deleteAfterUpload","globalArgs","apply","closeBundle","orange","reset","envId","POSTHOG_CLI_ENV_ID","token","POSTHOG_CLI_TOKEN","console","warn","injectArgs","push","uploadArgs","isForbiddenModuleSource","source","getModuleSpecifierValue","importDeclaration","moduleSpecifier","ts","isStringLiteralLike","text","isTypeOnlyImport","importClause","isTypeOnly","getImportValueLocals","locals","namedBindings","isNamespaceImport","isNamedImports","elements","getNamedImportSpecifiers","rewriteRpcbaseDbImport","forbiddenIdentifiers","valueLocals","zLocals","Set","namedImports","imported","propertyName","add","local","has","size","rewriteText","remainingValueLocals","specifierText","Array","from","map","collectBindingNames","out","isIdentifier","element","isOmittedExpression","getTopLevelBindings","statement","isVariableStatement","names","decl","declarationList","declarations","isFunctionDeclaration","isClassDeclaration","isEnumDeclaration","isRuntimeReferenceIdentifier","identifier","isVariableDeclaration","isParameter","isFunctionExpression","isClassExpression","isTypeAliasDeclaration","isInterfaceDeclaration","isModuleDeclaration","isTypeParameterDeclaration","isImportClause","isImportSpecifier","isImportEqualsDeclaration","isBindingElement","isPropertyAccessExpression","isQualifiedName","isPropertyAssignment","isPropertyDeclaration","isPropertySignature","isMethodDeclaration","isMethodSignature","isGetAccessorDeclaration","isSetAccessorDeclaration","isShorthandPropertyAssignment","isExportSpecifier","isLabeledStatement","label","isBreakStatement","isContinueStatement","referencesForbiddenRuntime","forbidden","found","visit","node","isTypeNode","isHeritageClause","SyntaxKind","ImplementsKeyword","forEachChild","scriptKindFromFilePath","filePath","ext","extname","toLowerCase","ScriptKind","TSX","TS","collectRuntimeIdentifierReferences","createTransformSource","scriptKind","sourceFile","createSourceFile","ScriptTarget","Latest","importActions","Map","statements","isImportDeclaration","set","type","forEach","changed","statementsToRemove","usedRuntimeIdentifiers","currentAction","get","some","s","MagicString","action","remove","pos","end","start","getStart","overwrite","hasChanged","generateMap","hires","includeContent","file","toString","sources","stringify","inferIsSsrTransform","transformOptions","ssr","isPrunableModelsFilePath","normalized","replaceAll","parts","includes","part","index","posix","pruneModelsForClientPlugin","prune","enforce","transform","id","result","toPosixPath","computeInputs","pattern","specDir","specDirAbs","filesAbs","globSync","absolute","nodir","inputs","fileAbs","relFromSpec","relative","outputName","replace","inputsKey","keys","sort","hasRollupInput","input","isArray","specInputsPlugin","rootAbs","outDirAbs","active","inputsDirty","currentInputs","lastInputsKey","configResolved","config","build","outDir","options","inputOptions","watchChange","change","absId","isAbsolute","test","event","buildStart","addWatchFile","key","rmSync","recursive","force","shouldAnalyze","ANALYZE","ensureEnvPolyfillInjectPath","injectDir","injectPath","injectContents","mkdirSync","existing","writeFileSync","esbuildInjectPath","esbuildInject","esbuildInjectPlugins","setup","onResolve","filter","namespace","undefined","isCI","CI","trim","isProduction","NODE_ENV","ALLOWED_DEV_ENV","ALLOWED_ENV_PREFIXES","htmlMinifyOptions","collapseWhitespace","keepClosingSlash","removeComments","removeRedundantAttributes","removeScriptTypeAttributes","removeStyleLinkTypeAttributes","useShortDoctype","minifyCSS","resolveAliases","integratedPackages","resolved","posthogReactEsm","rbPackagesNeedingEnvPolyfill","rbSsrNoExternalPackages","rpcbaseDedupePackages","createRuntimeEnv","configEnv","command","mode","isSsrBuild","isDevCommand","mergedEnv","BASE_URL","MODE","DEV","PROD","SSR","Boolean","getBaseConfig","loadEnv","runtimeEnv","clearScreen","plugins","react","babel","target","createHtmlPlugin","minify","viteSingleFile","useRecommendedBuildConfig","deleteInlinedFiles","inlinePattern","removeViteModuleLoader","analyzer","define","__vite_env__","envPrefix","publicDir","sourcemap","cssCodeSplit","rollupOptions","app","commonjsOptions","transformMixedEsModules","server","allowedHosts","headers","watch","ignored","alias","dedupe","preserveSymlinks","external","noExternal","optimizeDeps","include","exclude","esbuildOptions","inject","extendConfig","userConfig","baseConfig","mergeConfig","getSpecBaseConfig","extendSpecConfig","createServer","viteCreateServer"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rpcbase/vite",
3
- "version": "0.140.0",
3
+ "version": "0.142.0",
4
4
  "type": "module",
5
5
  "files": [
6
6
  "dist"