rasengan 1.0.0-beta.6 → 1.0.0-beta.60

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (162) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/README.md +36 -0
  3. package/bin.js +13 -0
  4. package/lib/esm/cli/index.js +40 -0
  5. package/lib/esm/client.js +2 -0
  6. package/lib/esm/core/config/index.js +3 -0
  7. package/lib/esm/core/config/type.js +6 -0
  8. package/lib/esm/core/config/utils/define-config.js +80 -0
  9. package/lib/esm/core/config/utils/load-modules.js +78 -0
  10. package/lib/esm/core/config/utils/path.js +16 -0
  11. package/lib/esm/core/config/vite/defaults.js +93 -0
  12. package/lib/esm/core/dynamic/index.js +21 -0
  13. package/lib/esm/core/index.js +2 -0
  14. package/lib/esm/core/middlewares/index.js +1 -0
  15. package/lib/esm/core/middlewares/logger.js +6 -0
  16. package/lib/esm/core/plugins/index.js +167 -0
  17. package/lib/esm/core/utils/log.js +9 -0
  18. package/lib/esm/entries/client/render.js +28 -0
  19. package/lib/esm/entries/server/entry.server.js +30 -0
  20. package/lib/esm/entries/server/index.js +31 -0
  21. package/lib/esm/index.js +5 -0
  22. package/lib/esm/plugin.js +2 -0
  23. package/lib/esm/routing/components/index.js +104 -0
  24. package/lib/esm/routing/components/template.js +64 -0
  25. package/lib/esm/routing/index.js +5 -0
  26. package/lib/{routing → esm/routing}/interfaces.js +19 -2
  27. package/lib/esm/routing/utils/define-router.js +78 -0
  28. package/lib/esm/routing/utils/define-routes-group.js +44 -0
  29. package/lib/esm/routing/utils/generate-metadata.js +83 -0
  30. package/lib/esm/routing/utils/generate-routes.js +301 -0
  31. package/lib/esm/routing/utils/index.js +4 -0
  32. package/lib/esm/scripts/build-command.js +17 -0
  33. package/lib/esm/scripts/generate-package-json.js +23 -0
  34. package/lib/esm/scripts/utils/check-os.js +7 -0
  35. package/lib/esm/scripts/utils/copy.js +16 -0
  36. package/lib/esm/server/build/index.js +11 -0
  37. package/lib/esm/server/build/manifest.js +91 -0
  38. package/lib/esm/server/build/rendering.js +18 -0
  39. package/lib/esm/server/dev/handlers.js +125 -0
  40. package/lib/esm/server/dev/server.js +174 -0
  41. package/lib/esm/server/dev/utils.js +192 -0
  42. package/lib/esm/server/node/index.js +69 -0
  43. package/lib/esm/server/node/rendering.js +44 -0
  44. package/lib/esm/server/node/stream.js +129 -0
  45. package/lib/esm/server/node/utils.js +91 -0
  46. package/lib/esm/server/runtime/mode.js +14 -0
  47. package/lib/esm/server/runtime/utils.js +5 -0
  48. package/lib/esm/server/virtual/index.js +8 -0
  49. package/lib/esm/server.js +4 -0
  50. package/lib/tsconfig.esm.tsbuildinfo +1 -0
  51. package/lib/tsconfig.types.tsbuildinfo +1 -0
  52. package/lib/types/client.d.ts +2 -0
  53. package/lib/types/core/config/index.d.ts +3 -0
  54. package/lib/types/core/config/type.d.ts +66 -0
  55. package/lib/types/core/config/utils/define-config.d.ts +7 -0
  56. package/lib/types/core/config/utils/load-modules.d.ts +19 -0
  57. package/lib/types/core/config/utils/path.d.ts +7 -0
  58. package/lib/types/core/config/vite/defaults.d.ts +3 -0
  59. package/lib/types/core/dynamic/index.d.ts +13 -0
  60. package/lib/types/core/index.d.ts +1 -0
  61. package/lib/types/core/middlewares/index.d.ts +1 -0
  62. package/lib/types/core/middlewares/logger.d.ts +2 -0
  63. package/lib/types/core/plugins/index.d.ts +18 -0
  64. package/lib/types/core/types.d.ts +15 -0
  65. package/lib/types/core/utils/log.d.ts +2 -0
  66. package/lib/types/entries/client/render.d.ts +5 -0
  67. package/lib/types/entries/server/entry.server.d.ts +20 -0
  68. package/lib/types/entries/server/index.d.ts +14 -0
  69. package/lib/types/index.d.ts +6 -0
  70. package/lib/types/plugin.d.ts +3 -0
  71. package/lib/types/routing/components/index.d.ts +22 -0
  72. package/lib/types/routing/components/template.d.ts +41 -0
  73. package/lib/types/routing/index.d.ts +6 -0
  74. package/lib/{routing → types/routing}/interfaces.d.ts +18 -6
  75. package/lib/types/routing/types.d.ts +213 -0
  76. package/lib/types/routing/utils/define-router.d.ts +8 -0
  77. package/lib/types/routing/utils/define-routes-group.d.ts +7 -0
  78. package/lib/types/routing/utils/generate-metadata.d.ts +7 -0
  79. package/lib/types/routing/utils/generate-routes.d.ts +13 -0
  80. package/lib/types/routing/utils/index.d.ts +4 -0
  81. package/lib/types/scripts/utils/check-os.d.ts +1 -0
  82. package/lib/types/scripts/utils/copy.d.ts +1 -0
  83. package/lib/types/server/build/index.d.ts +13 -0
  84. package/lib/types/server/build/manifest.d.ts +27 -0
  85. package/lib/types/server/build/rendering.d.ts +7 -0
  86. package/lib/types/server/dev/handlers.d.ts +27 -0
  87. package/lib/types/server/dev/server.d.ts +1 -0
  88. package/lib/types/server/dev/utils.d.ts +39 -0
  89. package/lib/types/server/node/index.d.ts +9 -0
  90. package/lib/types/server/node/rendering.d.ts +9 -0
  91. package/lib/types/server/node/stream.d.ts +7 -0
  92. package/lib/types/server/node/utils.d.ts +18 -0
  93. package/lib/types/server/runtime/mode.d.ts +9 -0
  94. package/lib/types/server/runtime/utils.d.ts +4 -0
  95. package/lib/types/server/virtual/index.d.ts +5 -0
  96. package/lib/types/server.d.ts +4 -0
  97. package/package.json +97 -47
  98. package/{tsconfig.json → tsconfig.base.json} +6 -16
  99. package/tsconfig.esm.json +8 -0
  100. package/tsconfig.types.json +10 -0
  101. package/types/client.d.ts +71 -0
  102. package/vite.config.ts +28 -65
  103. package/lib/cli/dirname.d.ts +0 -2
  104. package/lib/cli/dirname.js +0 -5
  105. package/lib/cli/index.d.ts +0 -2
  106. package/lib/cli/index.js +0 -99
  107. package/lib/config/index.d.ts +0 -58
  108. package/lib/config/index.js +0 -106
  109. package/lib/config/type.d.ts +0 -85
  110. package/lib/core/components/index.d.ts +0 -22
  111. package/lib/core/components/index.js +0 -67
  112. package/lib/core/index.d.ts +0 -2
  113. package/lib/core/index.js +0 -1
  114. package/lib/core/interfaces.d.ts +0 -93
  115. package/lib/core/interfaces.js +0 -114
  116. package/lib/core/types.d.ts +0 -45
  117. package/lib/decorators/index.d.ts +0 -2
  118. package/lib/decorators/index.js +0 -2
  119. package/lib/decorators/route.d.ts +0 -8
  120. package/lib/decorators/route.js +0 -20
  121. package/lib/decorators/router.d.ts +0 -8
  122. package/lib/decorators/router.js +0 -34
  123. package/lib/decorators/types.d.ts +0 -52
  124. package/lib/entries/entry-client.js +0 -14
  125. package/lib/entries/entry-server.d.ts +0 -6
  126. package/lib/entries/entry-server.js +0 -21
  127. package/lib/hooks/index.d.ts +0 -0
  128. package/lib/hooks/index.js +0 -0
  129. package/lib/index.d.ts +0 -6
  130. package/lib/index.js +0 -9
  131. package/lib/routing/components/index.d.ts +0 -38
  132. package/lib/routing/components/index.js +0 -81
  133. package/lib/routing/index.d.ts +0 -5
  134. package/lib/routing/index.js +0 -5
  135. package/lib/routing/types.d.ts +0 -9
  136. package/lib/routing/utils/index.d.ts +0 -38
  137. package/lib/routing/utils/index.js +0 -252
  138. package/lib/server/functions/vercel/_rasengan/server/index.d.ts +0 -2
  139. package/lib/server/functions/vercel/_rasengan/server/index.js +0 -91
  140. package/lib/server/functions/vercel/api/index.d.ts +0 -2
  141. package/lib/server/functions/vercel/api/index.js +0 -91
  142. package/lib/server/functions/vercel/vercel.json +0 -16
  143. package/lib/server/utils/createFetchRequest.d.ts +0 -5
  144. package/lib/server/utils/createFetchRequest.js +0 -33
  145. package/lib/server/utils/getIp.d.ts +0 -1
  146. package/lib/server/utils/getIp.js +0 -29
  147. package/lib/server/utils/handleError.d.ts +0 -2
  148. package/lib/server/utils/handleError.js +0 -27
  149. package/lib/server/utils/index.d.ts +0 -5
  150. package/lib/server/utils/index.js +0 -7
  151. package/lib/server/utils/log.d.ts +0 -7
  152. package/lib/server/utils/log.js +0 -74
  153. package/server.js +0 -238
  154. package/tsconfig.lib.json +0 -41
  155. package/tsconfig.node.json +0 -11
  156. package/types/image.d.ts +0 -44
  157. package/types/style.d.ts +0 -4
  158. /package/lib/{core → esm/core}/types.js +0 -0
  159. /package/lib/{decorators → esm/routing}/types.js +0 -0
  160. /package/lib/{config/type.js → types/cli/index.d.ts} +0 -0
  161. /package/lib/{entries/entry-client.d.ts → types/scripts/build-command.d.ts} +0 -0
  162. /package/lib/{routing/types.js → types/scripts/generate-package-json.d.ts} +0 -0
package/server.js DELETED
@@ -1,238 +0,0 @@
1
- import fs from "node:fs/promises";
2
- import express from "express";
3
- import { dirname, join } from "path";
4
- import { fileURLToPath } from "url";
5
- import {
6
- createStaticHandler,
7
- createStaticRouter,
8
- } from "react-router-dom/server.js";
9
- import chalk from "chalk";
10
- import inquirer from "inquirer";
11
-
12
- // Get config
13
- // @ts-ignore
14
- import config from "./../../rasengan.config.js";
15
-
16
- // Load utils
17
- import {
18
- createFetchRequest,
19
- logServerInfo,
20
- fix404,
21
- } from "./lib/server/utils/index.js";
22
-
23
- /**
24
- * This function is responsible for creating a server for the development environment.
25
- * @param {boolean} isProduction - Whether the server is in production mode or not.
26
- * @param {number} port - The port to run the server on.
27
- * @param {string} base - The base path for the server.
28
- */
29
- async function createServer({
30
- isProduction,
31
- port,
32
- base = "/",
33
- enableSearchingPort = false,
34
- open = false
35
- }) {
36
- // Get directory name
37
- const __dirname = dirname(fileURLToPath(import.meta.url));
38
-
39
- // Get app path
40
- const appPath = join(__dirname, "./../../");
41
-
42
- // Cached production assets
43
- const templateHtml = isProduction
44
- ? await fs.readFile(join(appPath, "dist/client/index.html"), "utf-8")
45
- : "";
46
- const ssrManifest = isProduction
47
- ? await fs.readFile(
48
- join(appPath, "dist/client/.vite/ssr-manifest.json"),
49
- "utf-8"
50
- )
51
- : undefined;
52
-
53
- // Create http server
54
- const app = express();
55
-
56
- // Add Vite or respective production middlewares
57
- let vite;
58
- if (!isProduction) {
59
- const { createServer } = await import("vite");
60
- vite = await createServer({
61
- server: { middlewareMode: true },
62
- appType: "custom",
63
- base,
64
- configFile: "node_modules/rasengan/vite.config.js",
65
- });
66
- app.use(vite.middlewares);
67
- } else {
68
- const compression = (await import("compression")).default;
69
- const sirv = (await import("sirv")).default;
70
- app.use(compression());
71
- app.use(base, sirv(join(appPath, "dist/client"), { extensions: [] }));
72
- }
73
-
74
- // Serve HTML
75
- app.use("*", async (req, res) => {
76
- try {
77
- // ! 404 Fix related to some files not being found
78
- fix404(req.originalUrl, res, appPath);
79
-
80
- // ! Service Worker Fix
81
-
82
- const url = req.originalUrl.replace(base, "");
83
-
84
- let template;
85
- let render;
86
- let staticRoutes;
87
- if (!isProduction) {
88
- // Always read fresh template in development
89
- template = await fs.readFile(join(appPath, "index.html"), "utf-8");
90
- template = await vite.transformIndexHtml(url, template);
91
-
92
- const entry = await vite.ssrLoadModule(
93
- join(appPath, "node_modules/rasengan/lib/entries/entry-server.js")
94
- );
95
-
96
- render = entry.render;
97
- staticRoutes = entry.staticRoutes;
98
- } else {
99
- template = templateHtml;
100
- const entry = await import(
101
- join(appPath, "dist/server/entry-server.js")
102
- );
103
- render = entry.render;
104
- staticRoutes = entry.staticRoutes;
105
- }
106
-
107
- // Create static handler
108
- let handler = createStaticHandler(staticRoutes);
109
-
110
- // Create fetch request for static routing
111
- let fetchRequest = createFetchRequest(req, req.get("host"));
112
- let context = await handler.query(fetchRequest);
113
-
114
- // Handle redirects
115
- const status = context.status;
116
-
117
- if (status === 302) {
118
- const redirect = context.headers.get("Location");
119
-
120
- return res.redirect(redirect);
121
- }
122
-
123
- // Helmet context
124
- const helmetContext = {};
125
-
126
- // Create static router
127
- let router = createStaticRouter(handler.dataRoutes, context);
128
-
129
- // const rendered = await render(url, ssrManifest);
130
- const rendered = await render(router, context, helmetContext);
131
-
132
- // Get metadata
133
- const helmet = helmetContext.helmet;
134
-
135
- const head = `
136
- ${helmet.title.toString()}
137
- ${helmet.meta.toString()}
138
- `;
139
-
140
- let html = template
141
- .replace(`<!--app-head-->`, head ?? "")
142
- .replace(`<!--app-html-->`, rendered.html ?? "");
143
-
144
- res
145
- .status(200)
146
- .set({
147
- "Content-Type": "text/html",
148
- "Cache-Control": "max-age=31536000",
149
- })
150
- .end(html);
151
- } catch (e) {
152
- vite?.ssrFixStacktrace(e);
153
- // console.log(e.stack);
154
- res.status(500).end(e.stack);
155
- }
156
- });
157
-
158
- // Start http server
159
- const server = app.listen(port, () => {
160
- setTimeout(() => {
161
- logServerInfo(port, isProduction, open);
162
- }, 100);
163
- });
164
-
165
- // Handle errors
166
- server.on("error", async (err) => {
167
- const multiplicationSymbol = "\u00D7";
168
-
169
- // Handle PORT in use error
170
- if (err.code === "EADDRINUSE") {
171
- const newPort = port + 1;
172
-
173
- console.error(
174
- chalk.red(
175
- `${chalk.bold.red(
176
- multiplicationSymbol
177
- )} Port ${port} is already in use. \n\n`
178
- )
179
- );
180
-
181
- // Check if user wants to use a different port
182
- if (!enableSearchingPort) {
183
- // Ask user if they want to use a different port
184
- const { useDifferentPort } = await inquirer.prompt([
185
- {
186
- type: "confirm",
187
- name: "useDifferentPort",
188
- message: `Do you want to use a different port?`,
189
- },
190
- ]);
191
-
192
- if (!useDifferentPort) {
193
- console.log(chalk.blue("Closing server... \n\n"));
194
- process.exit(0);
195
- }
196
-
197
- console.log(chalk.blue(`Trying port ${newPort}... \n\n`));
198
-
199
- await createServer({
200
- isProduction,
201
- port: newPort,
202
- base,
203
- enableSearchingPort: true,
204
- open
205
- });
206
- } else {
207
- console.log(chalk.blue(`Trying port ${newPort}... \n\n`));
208
-
209
- await createServer({
210
- isProduction,
211
- port: newPort,
212
- base,
213
- enableSearchingPort,
214
- open
215
- });
216
- }
217
- }
218
- });
219
- }
220
-
221
- // Constants
222
- const isProduction = process.env.NODE_ENV === "production";
223
- const port = !isProduction
224
- ? (process.env.PORT && Number(process.env.PORT)) ||
225
- config.server?.development?.port ||
226
- 5320
227
- : process.env.PORT || 4320;
228
- const base = process.env.BASE || "/";
229
-
230
- // Launch server
231
- (async function launchServer() {
232
- await createServer({
233
- isProduction,
234
- port,
235
- base,
236
- open: config.server?.development?.open,
237
- });
238
- })();
package/tsconfig.lib.json DELETED
@@ -1,41 +0,0 @@
1
- {
2
- "compilerOptions": {
3
- "outDir": "lib",
4
- "rootDir": "src",
5
- "target": "ESNext",
6
- "lib": [
7
- "ES2015",
8
- "ESNext",
9
- "dom",
10
- "dom.iterable",
11
- "esnext"
12
- ],
13
- "allowJs": true,
14
- "skipLibCheck": true,
15
- "esModuleInterop": true,
16
- "allowSyntheticDefaultImports": true,
17
- "strict": false,
18
- "forceConsistentCasingInFileNames": true,
19
- "noFallthroughCasesInSwitch": true,
20
- "module": "ESNext",
21
- "moduleResolution": "node",
22
- "resolveJsonModule": true,
23
- "isolatedModules": true,
24
- "noEmit": false,
25
- "jsx": "react-jsx",
26
- "declaration": true,
27
- "sourceMap": false,
28
-
29
- /* Plugins */
30
- "plugins": [{ "name": "typescript-plugin-css-modules" }],
31
-
32
- /* Types */
33
- "typeRoots": ["node_modules/@types", "types"]
34
- },
35
- "include": [
36
- "src",
37
- "types",
38
- "src/**/*.json",
39
- ],
40
- "exclude": ["node_modules", "lib"]
41
- }
@@ -1,11 +0,0 @@
1
- {
2
- "compilerOptions": {
3
- "composite": true,
4
- "skipLibCheck": true,
5
- "module": "ESNext",
6
- "moduleResolution": "bundler",
7
- "allowSyntheticDefaultImports": true,
8
- "jsx": "preserve"
9
- },
10
- "include": ["vite.config.ts", "src/entries/entry-server.tsx", "src/vite-env.d.ts"]
11
- }
package/types/image.d.ts DELETED
@@ -1,44 +0,0 @@
1
- declare module "*.png" {
2
- const value: string;
3
- export default value;
4
- }
5
-
6
- declare module "*.jpg" {
7
- const value: string;
8
- export default value;
9
- }
10
-
11
- declare module "*.jpeg" {
12
- const value: string;
13
- export default value;
14
- }
15
-
16
- declare module "*.gif" {
17
- const value: string;
18
- export default value;
19
- }
20
-
21
- declare module "*.svg" {
22
- const value: string;
23
- export default value;
24
- }
25
-
26
- declare module "*.webp" {
27
- const value: string;
28
- export default value;
29
- }
30
-
31
- declare module "*.ico" {
32
- const value: string;
33
- export default value;
34
- }
35
-
36
- declare module "*.bmp" {
37
- const value: string;
38
- export default value;
39
- }
40
-
41
- declare module "*.avif" {
42
- const value: string;
43
- export default value;
44
- }
package/types/style.d.ts DELETED
@@ -1,4 +0,0 @@
1
- declare module "*.module.css" {
2
- const classes: { [key: string]: string };
3
- export default classes;
4
- }
File without changes
File without changes
File without changes