fix-briven-auth-exports.mjs 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. /**
  2. * @briven/auth ships package.json "exports" pointing at raw src/*.ts.
  3. * Next.js then fails (or hard-crashes under Turbopack). Point exports at dist/*.js.
  4. * Run after install: node scripts/fix-briven-auth-exports.mjs
  5. */
  6. import { existsSync, readFileSync, writeFileSync } from "node:fs";
  7. import { dirname, join } from "node:path";
  8. import { fileURLToPath } from "node:url";
  9. const portalRoot = join(dirname(fileURLToPath(import.meta.url)), "..");
  10. const pkgPath = join(portalRoot, "node_modules", "@briven", "auth", "package.json");
  11. if (!existsSync(pkgPath)) {
  12. console.warn("[fix-briven-auth-exports] @briven/auth not installed — skip");
  13. process.exit(0);
  14. }
  15. const distIndex = join(portalRoot, "node_modules", "@briven", "auth", "dist", "index.js");
  16. if (!existsSync(distIndex)) {
  17. console.warn("[fix-briven-auth-exports] dist/ missing — skip");
  18. process.exit(0);
  19. }
  20. const pkg = JSON.parse(readFileSync(pkgPath, "utf8"));
  21. pkg.exports = {
  22. ".": { types: "./dist/index.d.ts", default: "./dist/index.js" },
  23. "./react": {
  24. types: "./dist/react/index.d.ts",
  25. default: "./dist/react/index.js",
  26. },
  27. "./vue": { types: "./dist/vue/index.d.ts", default: "./dist/vue/index.js" },
  28. "./svelte": {
  29. types: "./dist/svelte/index.d.ts",
  30. default: "./dist/svelte/index.js",
  31. },
  32. "./server": {
  33. types: "./dist/server/index.d.ts",
  34. default: "./dist/server/index.js",
  35. },
  36. "./engine": {
  37. types: "./dist/engine/index.d.ts",
  38. default: "./dist/engine/index.js",
  39. },
  40. "./engine/server": {
  41. types: "./dist/engine/server.d.ts",
  42. default: "./dist/engine/server.js",
  43. },
  44. "./engine/proxy": {
  45. types: "./dist/engine/proxy.d.ts",
  46. default: "./dist/engine/proxy.js",
  47. },
  48. };
  49. pkg.main = "./dist/index.js";
  50. pkg.types = "./dist/index.d.ts";
  51. writeFileSync(pkgPath, `${JSON.stringify(pkg, null, 2)}\n`);
  52. console.log("[fix-briven-auth-exports] @briven/auth exports → dist/");