dinou 6.1.1 → 7.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (135) hide show
  1. package/CHANGELOG.md +94 -0
  2. package/README.md +9461 -1080
  3. package/cli.js +392 -169
  4. package/dinou/adapters/bun.js +62 -0
  5. package/dinou/adapters/cloudflare.js +65 -0
  6. package/dinou/adapters/deno.js +48 -0
  7. package/dinou/adapters/netlify.js +85 -0
  8. package/dinou/adapters/node.mjs +31 -0
  9. package/dinou/bun/build.mjs +1077 -0
  10. package/dinou/cloudflare/build.mjs +1121 -0
  11. package/dinou/cloudflare/shims/child_process.js +14 -0
  12. package/dinou/cloudflare/shims/empty.js +2 -0
  13. package/dinou/cloudflare/shims/fs.js +99 -0
  14. package/dinou/cloudflare/shims/os.js +29 -0
  15. package/dinou/config.js +1 -0
  16. package/dinou/config.mjs +2 -0
  17. package/dinou/constants.js +29 -4
  18. package/dinou/core/babel-esm-loader.js +66 -37
  19. package/dinou/core/bailout-proxy.js +61 -0
  20. package/dinou/core/build-static-pages.js +309 -157
  21. package/dinou/core/cache-revalidate.js +471 -144
  22. package/dinou/core/cache-slot.js +387 -0
  23. package/dinou/core/client-redirect.jsx +12 -7
  24. package/dinou/core/client-webpack.jsx +457 -82
  25. package/dinou/core/client.jsx +452 -82
  26. package/dinou/core/config.js +11 -0
  27. package/dinou/core/dinou-paths.js +52 -0
  28. package/dinou/core/edge-ssr.js +122 -0
  29. package/dinou/core/export-static.mjs +64 -0
  30. package/dinou/core/generate-route-types.js +252 -0
  31. package/dinou/core/generate-static-page.js +55 -94
  32. package/dinou/core/generate-static-rsc.js +47 -15
  33. package/dinou/core/generate-static.js +212 -10
  34. package/dinou/core/generating-isg.js +5 -0
  35. package/dinou/core/get-asset-from-manifest.js +9 -3
  36. package/dinou/core/get-error-jsx.js +221 -41
  37. package/dinou/core/get-file-path-and-dynamic-params.js +9 -13
  38. package/dinou/core/get-jsx.js +172 -95
  39. package/dinou/core/handler.js +2296 -0
  40. package/dinou/core/http-adapter.js +115 -0
  41. package/dinou/core/import-module.js +83 -53
  42. package/dinou/core/layout-functions.js +181 -0
  43. package/dinou/core/link.jsx +18 -6
  44. package/dinou/core/load-dinou-config.js +60 -0
  45. package/dinou/core/manifest-provider.js +261 -0
  46. package/dinou/core/navigation-utils.js +4 -0
  47. package/dinou/core/navigation.js +50 -39
  48. package/dinou/core/parse-exports.js +207 -2
  49. package/dinou/core/ppr-context.js +105 -0
  50. package/dinou/core/ppr-runtime.js +263 -0
  51. package/dinou/core/redirect.jsx +20 -19
  52. package/dinou/core/render-jsx-to-client-jsx.js +133 -15
  53. package/dinou/core/request-context.js +47 -13
  54. package/dinou/core/resolve-module-ppr.js +32 -0
  55. package/dinou/core/revalidating.js +28 -9
  56. package/dinou/core/route-generator.js +107 -0
  57. package/dinou/core/rsc-renderer.js +90 -0
  58. package/dinou/core/run-ssg.js +19 -0
  59. package/dinou/core/scan-dependency-components.js +218 -0
  60. package/dinou/core/server-function-proxy-webpack.js +3 -0
  61. package/dinou/core/server-function-proxy.js +3 -0
  62. package/dinou/core/slot.js +302 -0
  63. package/dinou/core/status-manifest.js +41 -1
  64. package/dinou/core/storage-adapter.js +522 -0
  65. package/dinou/core/url-resolver.js +16 -16
  66. package/dinou/core/vfs.js +139 -68
  67. package/dinou/deno/build.mjs +1112 -0
  68. package/dinou/deno/seed-kv.js +115 -0
  69. package/dinou/esbuild/build.mjs +51 -1
  70. package/dinou/esbuild/dev.mjs +290 -224
  71. package/dinou/esbuild/helpers-esbuild/get-config-esbuild-prod.mjs +3 -2
  72. package/dinou/esbuild/helpers-esbuild/get-config-esbuild.mjs +104 -16
  73. package/dinou/esbuild/helpers-esbuild/get-esbuild-entries.mjs +31 -19
  74. package/dinou/esbuild/helpers-esbuild/strip-namespace.mjs +9 -0
  75. package/dinou/esbuild/helpers-esbuild/swc-disk-cache.mjs +225 -0
  76. package/dinou/esbuild/helpers-esbuild/update-manifest-for-module.mjs +7 -0
  77. package/dinou/esbuild/helpers-esbuild/write.mjs +111 -2
  78. package/dinou/esbuild/plugins-esbuild/assets-plugin.mjs +236 -161
  79. package/dinou/esbuild/plugins-esbuild/css-processor-plugin.mjs +101 -5
  80. package/dinou/esbuild/plugins-esbuild/react-client-manifest-plugin.mjs +63 -24
  81. package/dinou/esbuild/plugins-esbuild/server-functions-plugin.mjs +177 -56
  82. package/dinou/esbuild/plugins-esbuild/skip-missing-entry-points-plugin.mjs +3 -0
  83. package/dinou/esbuild/plugins-esbuild/stable-chunk-names-and-maps-plugin.mjs +182 -137
  84. package/dinou/esbuild/plugins-postcss/postcss-extract-plugin.js +38 -11
  85. package/dinou/esbuild/react-refresh/esm-hmr/client.mjs +55 -8
  86. package/dinou/esbuild/react-refresh/esm-hmr/server.js +1 -1
  87. package/dinou/esbuild/react-refresh/esm-hmr-plugin.mjs +238 -101
  88. package/dinou/esbuild/react-refresh/is-react-refresh-boundary.mjs +18 -4
  89. package/dinou/index.d.ts +315 -11
  90. package/dinou/index.js +12 -6
  91. package/dinou/index.mjs +9 -0
  92. package/dinou/node/build.mjs +195 -0
  93. package/dinou/node/bundle-dual-engine.mjs +1012 -0
  94. package/dinou/node/dev.mjs +2589 -0
  95. package/dinou/node/port-selector.mjs +164 -0
  96. package/dinou/node/terminal-status.mjs +345 -0
  97. package/dinou/package.json +16 -14
  98. package/dinou/rollup/react-refresh/esm-hmr/client.js +66 -10
  99. package/dinou/rollup/react-refresh/esm-hmr/server.js +1 -1
  100. package/dinou/rollup/react-refresh/is-react-refresh-boundary.js +24 -5
  101. package/dinou/rollup/react-refresh/react-refresh-runtime.js +13 -6
  102. package/dinou/rollup/react-refresh/react-refresh-wrap-modules.js +56 -11
  103. package/dinou/rollup/react-refresh/rollup-plugin-esm-hmr.js +176 -48
  104. package/dinou/rollup/rollup-plugins/dinou-asset-plugin.js +9 -5
  105. package/dinou/rollup/rollup-plugins/rollup-plugin-memory.js +66 -0
  106. package/dinou/rollup/rollup-plugins/rollup-plugin-react-client-manifest.js +468 -123
  107. package/dinou/rollup/rollup-plugins/rollup-plugin-server-functions.js +44 -12
  108. package/dinou/rollup/rollup-plugins/rollup-plugin-swc.js +100 -0
  109. package/dinou/rollup/rollup.config.js +155 -43
  110. package/dinou/server.d.ts +114 -12
  111. package/dinou/server.js +35 -10
  112. package/dinou/server.mjs +30 -9
  113. package/dinou/webpack/helpers/get-webpack-entries.js +14 -19
  114. package/dinou/webpack/loaders/server-functions-loader.js +22 -1
  115. package/dinou/webpack/loaders/swc-loader.js +76 -0
  116. package/dinou/webpack/plugins/manifest-generator-plugin.js +1 -0
  117. package/dinou/webpack/plugins/server-functions-plugin.js +75 -19
  118. package/dinou/webpack/plugins/webpack-memory-plugin.js +66 -0
  119. package/dinou/webpack/webpack.config.js +227 -29
  120. package/eject.js +173 -94
  121. package/package.json +110 -108
  122. package/dinou/core/asset-require-hook.js +0 -58
  123. package/dinou/core/client-error-webpack.jsx +0 -432
  124. package/dinou/core/client-error.jsx +0 -432
  125. package/dinou/core/concurrency-manager.js +0 -48
  126. package/dinou/core/context-proxy.js +0 -68
  127. package/dinou/core/generate-static-pages.js +0 -130
  128. package/dinou/core/generate-static-rscs.js +0 -151
  129. package/dinou/core/get-ssg-metadata.js +0 -31
  130. package/dinou/core/register-loader.mjs +0 -11
  131. package/dinou/core/register-paths.js +0 -27
  132. package/dinou/core/render-app-to-html.js +0 -430
  133. package/dinou/core/render-html.js +0 -407
  134. package/dinou/core/server.js +0 -1542
  135. package/dinou/esbuild/plugins-esbuild/write-metafile-plugin.mjs +0 -16
package/package.json CHANGED
@@ -1,108 +1,110 @@
1
- {
2
- "name": "dinou",
3
- "version": "6.1.1",
4
- "description": "Lightweight-Ejectable Full-Stack React 19 Framework with support for React Server Components (RSC), Server Functions, Server-Side Rendering (SSR), Static Generation (SSG), Incremental Static Generation (ISG), and Incremental Static Regeneration (ISR)",
5
- "main": "index.js",
6
- "bin": {
7
- "dinou": "./cli.js"
8
- },
9
- "exports": {
10
- ".": {
11
- "types": "./dinou/index.d.ts",
12
- "import": "./dinou/index.mjs",
13
- "require": "./dinou/index.js"
14
- },
15
- "./env": {
16
- "types": "./dinou/env.d.ts"
17
- },
18
- "./server": {
19
- "types": "./dinou/server.d.ts",
20
- "import": "./dinou/server.mjs",
21
- "require": "./dinou/server.js"
22
- }
23
- },
24
- "types": "./dinou/index.d.ts",
25
- "scripts": {
26
- "test": "echo \"Error: no test specified\" && exit 1"
27
- },
28
- "keywords": [
29
- "react",
30
- "react-19",
31
- "react-server-components",
32
- "rsc",
33
- "react-server-functions",
34
- "framework",
35
- "react-framework",
36
- "esbuild",
37
- "rollup",
38
- "webpack",
39
- "ssr",
40
- "streaming",
41
- "dinou"
42
- ],
43
- "author": "Roger Gomez Castells (@roggc)",
44
- "license": "MIT",
45
- "repository": {
46
- "type": "git",
47
- "url": "https://github.com/roggc/dinou.git"
48
- },
49
- "dependencies": {
50
- "@babel/core": "^7.27.4",
51
- "@babel/parser": "^7.28.3",
52
- "@babel/plugin-syntax-import-meta": "^7.10.4",
53
- "@babel/plugin-transform-modules-commonjs": "^7.27.1",
54
- "@babel/preset-react": "^7.27.1",
55
- "@babel/preset-typescript": "^7.27.1",
56
- "@babel/register": "^7.27.1",
57
- "@babel/traverse": "^7.28.3",
58
- "@esbuild-plugins/tsconfig-paths": "^0.1.2",
59
- "@roggc/react-server-dom-esm": "^0.0.0-b061b597-20251212",
60
- "@rollup/plugin-babel": "^6.0.4",
61
- "@rollup/plugin-commonjs": "^28.0.6",
62
- "@rollup/plugin-json": "^6.1.0",
63
- "@rollup/plugin-node-resolve": "^16.0.1",
64
- "@rollup/plugin-replace": "^6.0.2",
65
- "@swc/core": "^1.15.10",
66
- "@tailwindcss/postcss": "^4.1.10",
67
- "autoprefixer": "^10.4.21",
68
- "babel-loader": "^10.0.0",
69
- "babel-plugin-react-compiler": "^1.0.0",
70
- "chokidar": "^4.0.3",
71
- "commander": "^14.0.0",
72
- "concurrently": "^10.0.3",
73
- "cookie-parser": "^1.4.7",
74
- "copy-webpack-plugin": "^14.0.0",
75
- "cross-env": "^7.0.3",
76
- "css-loader": "^7.1.2",
77
- "dotenv": "^16.5.0",
78
- "esbuild": "^0.27.0",
79
- "esbuild-copy-static-files": "^0.1.0",
80
- "express": "^5.1.0",
81
- "generic-names": "^4.0.0",
82
- "loader-utils": "^3.3.1",
83
- "mini-css-extract-plugin": "^2.9.4",
84
- "multer": "^2.0.2",
85
- "postcss": "^8.5.5",
86
- "postcss-import": "^16.1.1",
87
- "postcss-loader": "^8.2.0",
88
- "postcss-modules": "^6.0.1",
89
- "react-refresh": "^0.17.0",
90
- "react-server-dom-webpack": "^19.2.3",
91
- "rollup": "^4.46.2",
92
- "rollup-plugin-copy": "^3.5.0",
93
- "rollup-plugin-delete": "^3.0.1",
94
- "rollup-plugin-postcss": "^4.0.2",
95
- "rollup-plugin-tsconfig-paths": "^1.5.2",
96
- "tailwindcss": "^4.1.10",
97
- "tsconfig-paths": "^4.2.0",
98
- "tsconfig-paths-webpack-plugin": "^4.2.0",
99
- "webpack": "^5.103.0",
100
- "webpack-cli": "^6.0.1",
101
- "webpack-dev-server": "^5.2.2",
102
- "ws": "^8.18.3"
103
- },
104
- "peerDependencies": {
105
- "react": ">=19.2.3",
106
- "react-dom": ">=19.2.3"
107
- }
108
- }
1
+ {
2
+ "name": "dinou",
3
+ "version": "7.0.0",
4
+ "description": "Full-stack React 19 framework with native RSC, Server Functions, progressive streaming, and zero vendor lock-in.",
5
+ "main": "index.js",
6
+ "bin": {
7
+ "dinou": "./cli.js"
8
+ },
9
+ "exports": {
10
+ ".": {
11
+ "types": "./dinou/index.d.ts",
12
+ "import": "./dinou/index.mjs",
13
+ "require": "./dinou/index.js"
14
+ },
15
+ "./env": {
16
+ "types": "./dinou/env.d.ts"
17
+ },
18
+ "./server": {
19
+ "types": "./dinou/server.d.ts",
20
+ "import": "./dinou/server.mjs",
21
+ "require": "./dinou/server.js"
22
+ },
23
+ "./config": {
24
+ "types": "./dinou/index.d.ts",
25
+ "import": "./dinou/core/config.js",
26
+ "require": "./dinou/core/config.js"
27
+ },
28
+ "./adapters/node": "./dinou/adapters/node.mjs",
29
+ "./adapters/bun": "./dinou/adapters/bun.js",
30
+ "./adapters/deno": "./dinou/adapters/deno.js",
31
+ "./adapters/cloudflare": "./dinou/adapters/cloudflare.js",
32
+ "./adapters/netlify": "./dinou/adapters/netlify.js"
33
+ },
34
+ "types": "./dinou/index.d.ts",
35
+ "scripts": {
36
+ "test": "echo \"Error: no test specified\" && exit 1"
37
+ },
38
+ "keywords": [
39
+ "react",
40
+ "react-19",
41
+ "react-server-components",
42
+ "rsc",
43
+ "react-server-functions",
44
+ "framework",
45
+ "react-framework",
46
+ "esbuild",
47
+ "rollup",
48
+ "webpack",
49
+ "ssr",
50
+ "streaming",
51
+ "dinou"
52
+ ],
53
+ "author": "Roger Gomez Castells (https://github.com/roggc)",
54
+ "license": "MIT",
55
+ "repository": {
56
+ "type": "git",
57
+ "url": "https://github.com/roggc/dinou.git"
58
+ },
59
+ "dependencies": {
60
+ "@babel/core": "^7.27.4",
61
+ "@babel/parser": "^7.28.3",
62
+ "@babel/plugin-syntax-import-meta": "^7.10.4",
63
+ "@babel/preset-react": "^7.27.1",
64
+ "@babel/preset-typescript": "^7.27.1",
65
+ "@babel/traverse": "^7.28.3",
66
+ "@esbuild-plugins/tsconfig-paths": "^0.1.2",
67
+ "@roggc/react-server-dom-esm": "^19.3.0",
68
+ "@rollup/plugin-babel": "^6.0.4",
69
+ "@rollup/plugin-commonjs": "^28.0.6",
70
+ "@rollup/plugin-json": "^6.1.0",
71
+ "@rollup/plugin-node-resolve": "^16.0.1",
72
+ "@rollup/plugin-replace": "^6.0.2",
73
+ "@swc/core": "^1.15.10",
74
+ "@tailwindcss/postcss": "^4.1.10",
75
+ "autoprefixer": "^10.4.21",
76
+ "babel-loader": "^10.0.0",
77
+ "babel-plugin-react-compiler": "^1.0.0",
78
+ "chokidar": "^4.0.3",
79
+ "commander": "^14.0.0",
80
+ "copy-webpack-plugin": "^14.0.0",
81
+ "cross-env": "^7.0.3",
82
+ "css-loader": "^7.1.2",
83
+ "dotenv": "^16.5.0",
84
+ "esbuild": "^0.27.0",
85
+ "esbuild-copy-static-files": "^0.1.0",
86
+ "generic-names": "^4.0.0",
87
+ "mini-css-extract-plugin": "^2.9.4",
88
+ "postcss": "^8.5.5",
89
+ "postcss-import": "^16.1.1",
90
+ "postcss-loader": "^8.2.0",
91
+ "postcss-modules": "^6.0.1",
92
+ "react-refresh": "^0.17.0",
93
+ "react-server-dom-webpack": "^19.3.0",
94
+ "rollup": "^4.46.2",
95
+ "rollup-plugin-copy": "^3.5.0",
96
+ "rollup-plugin-delete": "^3.0.1",
97
+ "rollup-plugin-postcss": "^4.0.2",
98
+ "rollup-plugin-tsconfig-paths": "^1.5.2",
99
+ "tailwindcss": "^4.1.10",
100
+ "tsconfig-paths-webpack-plugin": "^4.2.0",
101
+ "webpack": "^5.103.0",
102
+ "webpack-cli": "^6.0.1",
103
+ "webpack-dev-server": "^5.2.2",
104
+ "ws": "^8.18.3"
105
+ },
106
+ "peerDependencies": {
107
+ "react": ">=19.3.0",
108
+ "react-dom": ">=19.3.0"
109
+ }
110
+ }
@@ -1,58 +0,0 @@
1
- var fs = require("fs");
2
- var path = require("path");
3
- var interpolateName = require("loader-utils").interpolateName;
4
-
5
- function compiler(name, options) {
6
- return function compile(file) {
7
- var content = fs.readFileSync(file);
8
- var context = { resourcePath: file };
9
-
10
- var resolvedName;
11
- if (typeof name === "function") {
12
- var localName = path.basename(file, path.extname(file));
13
- resolvedName = name(localName, file);
14
- } else {
15
- resolvedName = name;
16
- }
17
-
18
- var result = interpolateName(context, resolvedName, {
19
- content: content,
20
- regExp: options.regExp,
21
- });
22
-
23
- if (options.publicPath) {
24
- result =
25
- typeof options.publicPath === "function"
26
- ? options.publicPath(result)
27
- : options.publicPath + result;
28
- }
29
-
30
- return result;
31
- };
32
- }
33
-
34
- function hook(extension, compile) {
35
- require.extensions[extension] = function (module, file) {
36
- try {
37
- const url = compile(file);
38
- module._compile("module.exports = " + JSON.stringify(url), file);
39
- } catch (err) {
40
- console.error("Error processing file", file, err);
41
- throw err;
42
- }
43
- };
44
- }
45
-
46
- function addHook(opts) {
47
- opts = opts || {};
48
- var extensions = (opts.extensions || []).map(function (ext) {
49
- return ext.replace(".", "");
50
- });
51
- var comp = compiler(opts.name, opts);
52
-
53
- extensions.forEach(function (ext) {
54
- hook("." + ext, comp);
55
- });
56
- }
57
-
58
- module.exports = addHook;