@common-stack/generate-plugin 6.0.8-alpha.5 → 6.0.8-alpha.51

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 (85) hide show
  1. package/CHANGELOG.md +188 -4
  2. package/lib/common/package-releases/package.json +26 -0
  3. package/lib/common/package-releases/package.json.cjs +33 -0
  4. package/lib/common/package-releases/package.json.cjs.map +1 -0
  5. package/lib/common/package-releases/package.json.mjs +33 -0
  6. package/lib/common/package-releases/package.json.mjs.map +1 -0
  7. package/lib/generators/add-backend/files/Dockerfile +2 -0
  8. package/lib/generators/add-backend/files/package.json +4 -2
  9. package/lib/generators/add-backend/files/webpack.config.js +3 -1
  10. package/lib/generators/add-frontend/frameworks/antui/src/context.tsx.template +8 -0
  11. package/lib/generators/add-frontend/frameworks/antui/{entry.client.tsx.template → src/entry.client.tsx.template} +12 -12
  12. package/{src/generators/add-frontend/frameworks/antui → lib/generators/add-frontend/frameworks/antui/src}/entry.server.tsx.template +61 -51
  13. package/{src/generators/add-frontend/frameworks/antui → lib/generators/add-frontend/frameworks/antui/src}/root.tsx.template +6 -15
  14. package/lib/generators/add-frontend/frameworks/chakraui/{context.tsx.template → src/context.tsx.template} +6 -0
  15. package/lib/generators/add-frontend/frameworks/chakraui/{entry.client.tsx.template → src/entry.client.tsx.template} +21 -18
  16. package/{src/generators/add-frontend/frameworks/chakraui → lib/generators/add-frontend/frameworks/chakraui/src}/entry.server.tsx.template +33 -30
  17. package/lib/generators/add-frontend/frameworks/chakraui/{root.tsx.template → src/root.tsx.template} +8 -4
  18. package/{src/generators/add-frontend/frameworks/tailwindui → lib/generators/add-frontend/frameworks/tailwindui/src}/entry.client.tsx.template +3 -10
  19. package/lib/generators/add-frontend/generator.cjs +83 -36
  20. package/lib/generators/add-frontend/generator.cjs.map +1 -1
  21. package/lib/generators/add-frontend/generator.mjs +83 -36
  22. package/lib/generators/add-frontend/generator.mjs.map +1 -1
  23. package/lib/generators/add-frontend/templates/Dockerfile +4 -0
  24. package/lib/generators/add-frontend/templates/package.json +7 -3
  25. package/lib/generators/add-frontend/templates/vite.config.ts.template +18 -1
  26. package/lib/generators/add-fullstack/files/Jenkinsfile +2 -2
  27. package/lib/generators/add-fullstack/files/cdecode-config.json +126 -0
  28. package/lib/generators/add-fullstack/files/package.json +31 -18
  29. package/lib/generators/add-fullstack/files/rollup.config.base.mjs +17 -95
  30. package/lib/generators/add-fullstack/files/tools/codegenGenerator.mjs +36 -0
  31. package/lib/generators/add-fullstack/generator.cjs +8 -4
  32. package/lib/generators/add-fullstack/generator.cjs.map +1 -1
  33. package/lib/generators/add-fullstack/generator.mjs +8 -4
  34. package/lib/generators/add-fullstack/generator.mjs.map +1 -1
  35. package/lib/generators/add-fullstack/schema.json +1 -1
  36. package/lib/generators/add-moleculer/files/Dockerfile +2 -0
  37. package/lib/generators/add-moleculer/files/config.json +5 -0
  38. package/lib/generators/add-moleculer/files/package.json +10 -6
  39. package/lib/generators/add-moleculer/files/rollup.config.mjs +14 -1
  40. package/package.json +3 -3
  41. package/rollup.config.mjs +3 -0
  42. package/src/common/package-releases/package.json +26 -0
  43. package/src/generators/add-frontend/__snapshots__/generator.test.ts.snap +33 -0
  44. package/src/generators/add-frontend/frameworks/antui/src/context.tsx.template +8 -0
  45. package/src/generators/add-frontend/frameworks/antui/{entry.client.tsx.template → src/entry.client.tsx.template} +12 -12
  46. package/{lib/generators/add-frontend/frameworks/antui → src/generators/add-frontend/frameworks/antui/src}/entry.server.tsx.template +61 -51
  47. package/{lib/generators/add-frontend/frameworks/antui → src/generators/add-frontend/frameworks/antui/src}/root.tsx.template +6 -15
  48. package/src/generators/add-frontend/frameworks/chakraui/{context.tsx.template → src/context.tsx.template} +6 -0
  49. package/src/generators/add-frontend/frameworks/chakraui/{entry.client.tsx.template → src/entry.client.tsx.template} +21 -18
  50. package/{lib/generators/add-frontend/frameworks/chakraui → src/generators/add-frontend/frameworks/chakraui/src}/entry.server.tsx.template +33 -30
  51. package/src/generators/add-frontend/frameworks/chakraui/{root.tsx.template → src/root.tsx.template} +8 -4
  52. package/src/generators/add-frontend/frameworks/tailwindui/postcss.config.js +6 -0
  53. package/{lib/generators/add-frontend/frameworks/tailwindui → src/generators/add-frontend/frameworks/tailwindui/src}/entry.client.tsx.template +3 -10
  54. package/src/generators/add-frontend/frameworks/tailwindui/tailwind.config.ts.template +12 -0
  55. package/src/generators/add-frontend/generator.test.ts +79 -0
  56. package/src/generators/add-frontend/generator.ts +109 -44
  57. package/src/generators/add-fullstack/files/Jenkinsfile +2 -2
  58. package/src/generators/add-fullstack/files/cdecode-config.json +126 -0
  59. package/src/generators/add-fullstack/files/package.json +31 -18
  60. package/src/generators/add-fullstack/files/rollup.config.base.mjs +17 -95
  61. package/src/generators/add-fullstack/files/tools/codegenGenerator.mjs +36 -0
  62. package/src/generators/add-fullstack/generator.ts +8 -4
  63. package/src/generators/add-fullstack/schema.json +1 -1
  64. package/src/generators/add-moleculer/files/.dockerignore +2 -1
  65. package/src/generators/add-moleculer/files/Dockerfile +2 -0
  66. package/src/generators/add-moleculer/files/config.json +5 -0
  67. package/src/generators/add-moleculer/files/package.json +10 -6
  68. package/src/generators/add-moleculer/files/rollup.config.mjs +14 -1
  69. package/tsconfig.spec.json +9 -0
  70. package/docker-releases/backend/package.json +0 -134
  71. package/docker-releases/frontend/antd/package.json +0 -121
  72. package/lib/generators/add-fullstack/files/codegen.yml +0 -47
  73. package/lib/generators/add-moleculer/files/src/modules/module.ts.template +0 -31
  74. package/src/generators/add-frontend/generator.spec.ts +0 -20
  75. package/src/generators/add-fullstack/files/codegen.yml +0 -47
  76. package/src/generators/add-moleculer/files/src/modules/module.ts.template +0 -31
  77. /package/lib/generators/add-frontend/{templates → frameworks/tailwindui}/postcss.config.js +0 -0
  78. /package/lib/generators/add-frontend/frameworks/tailwindui/{entry.server.tsx.template → src/entry.server.tsx.template} +0 -0
  79. /package/lib/generators/add-frontend/frameworks/tailwindui/{root.tsx.template → src/root.tsx.template} +0 -0
  80. /package/lib/generators/add-frontend/frameworks/tailwindui/{tailwind.css → src/tailwind.css} +0 -0
  81. /package/lib/generators/add-frontend/{templates → frameworks/tailwindui}/tailwind.config.ts.template +0 -0
  82. /package/lib/generators/add-frontend/{generator.spec.d.ts → generator.test.d.ts} +0 -0
  83. /package/src/generators/add-frontend/frameworks/tailwindui/{entry.server.tsx.template → src/entry.server.tsx.template} +0 -0
  84. /package/src/generators/add-frontend/frameworks/tailwindui/{root.tsx.template → src/root.tsx.template} +0 -0
  85. /package/src/generators/add-frontend/frameworks/tailwindui/{tailwind.css → src/tailwind.css} +0 -0
package/CHANGELOG.md CHANGED
@@ -3,6 +3,190 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [6.0.8-alpha.51](https://github.com/cdmbase/common-stack/compare/v6.0.8-alpha.50...v6.0.8-alpha.51) (2025-02-13)
7
+
8
+ **Note:** Version bump only for package @common-stack/generate-plugin
9
+
10
+ ## [6.0.8-alpha.50](https://github.com/cdmbase/common-stack/compare/v6.0.8-alpha.49...v6.0.8-alpha.50) (2025-02-13)
11
+
12
+ **Note:** Version bump only for package @common-stack/generate-plugin
13
+
14
+ ## [6.0.8-alpha.49](https://github.com/cdmbase/common-stack/compare/v6.0.8-alpha.48...v6.0.8-alpha.49) (2025-02-11)
15
+
16
+ **Note:** Version bump only for package @common-stack/generate-plugin
17
+
18
+ ## [6.0.8-alpha.48](https://github.com/cdmbase/common-stack/compare/v6.0.8-alpha.47...v6.0.8-alpha.48) (2025-02-10)
19
+
20
+ **Note:** Version bump only for package @common-stack/generate-plugin
21
+
22
+ ## [6.0.8-alpha.47](https://github.com/cdmbase/common-stack/compare/v6.0.8-alpha.46...v6.0.8-alpha.47) (2025-02-09)
23
+
24
+ **Note:** Version bump only for package @common-stack/generate-plugin
25
+
26
+ ## [6.0.8-alpha.46](https://github.com/cdmbase/common-stack/compare/v6.0.8-alpha.45...v6.0.8-alpha.46) (2025-02-07)
27
+
28
+ **Note:** Version bump only for package @common-stack/generate-plugin
29
+
30
+ ## [6.0.8-alpha.45](https://github.com/cdmbase/common-stack/compare/v6.0.8-alpha.44...v6.0.8-alpha.45) (2025-02-07)
31
+
32
+ **Note:** Version bump only for package @common-stack/generate-plugin
33
+
34
+ ## [6.0.8-alpha.44](https://github.com/cdmbase/common-stack/compare/v6.0.8-alpha.43...v6.0.8-alpha.44) (2025-02-05)
35
+
36
+ **Note:** Version bump only for package @common-stack/generate-plugin
37
+
38
+ ## [6.0.8-alpha.43](https://github.com/cdmbase/common-stack/compare/v6.0.8-alpha.42...v6.0.8-alpha.43) (2025-02-04)
39
+
40
+ **Note:** Version bump only for package @common-stack/generate-plugin
41
+
42
+ ## [6.0.8-alpha.42](https://github.com/cdmbase/common-stack/compare/v6.0.8-alpha.41...v6.0.8-alpha.42) (2025-02-03)
43
+
44
+ **Note:** Version bump only for package @common-stack/generate-plugin
45
+
46
+ ## [6.0.8-alpha.41](https://github.com/cdmbase/common-stack/compare/v6.0.8-alpha.40...v6.0.8-alpha.41) (2025-02-02)
47
+
48
+ **Note:** Version bump only for package @common-stack/generate-plugin
49
+
50
+ ## [6.0.8-alpha.40](https://github.com/cdmbase/common-stack/compare/v6.0.8-alpha.39...v6.0.8-alpha.40) (2025-02-02)
51
+
52
+ **Note:** Version bump only for package @common-stack/generate-plugin
53
+
54
+ ## [6.0.8-alpha.39](https://github.com/cdmbase/common-stack/compare/v6.0.8-alpha.38...v6.0.8-alpha.39) (2025-02-01)
55
+
56
+ **Note:** Version bump only for package @common-stack/generate-plugin
57
+
58
+ ## [6.0.8-alpha.38](https://github.com/cdmbase/common-stack/compare/v6.0.8-alpha.37...v6.0.8-alpha.38) (2025-02-01)
59
+
60
+ **Note:** Version bump only for package @common-stack/generate-plugin
61
+
62
+ ## [6.0.8-alpha.37](https://github.com/cdmbase/common-stack/compare/v6.0.8-alpha.36...v6.0.8-alpha.37) (2025-02-01)
63
+
64
+ **Note:** Version bump only for package @common-stack/generate-plugin
65
+
66
+ ## [6.0.8-alpha.36](https://github.com/cdmbase/common-stack/compare/v6.0.8-alpha.35...v6.0.8-alpha.36) (2025-02-01)
67
+
68
+ **Note:** Version bump only for package @common-stack/generate-plugin
69
+
70
+ ## [6.0.8-alpha.35](https://github.com/cdmbase/common-stack/compare/v6.0.8-alpha.34...v6.0.8-alpha.35) (2025-01-31)
71
+
72
+ **Note:** Version bump only for package @common-stack/generate-plugin
73
+
74
+ ## [6.0.8-alpha.34](https://github.com/cdmbase/common-stack/compare/v6.0.8-alpha.33...v6.0.8-alpha.34) (2025-01-31)
75
+
76
+ **Note:** Version bump only for package @common-stack/generate-plugin
77
+
78
+ ## [6.0.8-alpha.33](https://github.com/cdmbase/common-stack/compare/v6.0.8-alpha.32...v6.0.8-alpha.33) (2025-01-31)
79
+
80
+ **Note:** Version bump only for package @common-stack/generate-plugin
81
+
82
+ ## [6.0.8-alpha.32](https://github.com/cdmbase/common-stack/compare/v6.0.8-alpha.31...v6.0.8-alpha.32) (2025-01-31)
83
+
84
+ **Note:** Version bump only for package @common-stack/generate-plugin
85
+
86
+ ## [6.0.8-alpha.31](https://github.com/cdmbase/common-stack/compare/v6.0.8-alpha.30...v6.0.8-alpha.31) (2025-01-27)
87
+
88
+ **Note:** Version bump only for package @common-stack/generate-plugin
89
+
90
+ ## [6.0.8-alpha.30](https://github.com/cdmbase/common-stack/compare/v6.0.8-alpha.29...v6.0.8-alpha.30) (2025-01-27)
91
+
92
+ **Note:** Version bump only for package @common-stack/generate-plugin
93
+
94
+ ## [6.0.8-alpha.29](https://github.com/cdmbase/common-stack/compare/v6.0.8-alpha.28...v6.0.8-alpha.29) (2025-01-27)
95
+
96
+ **Note:** Version bump only for package @common-stack/generate-plugin
97
+
98
+ ## [6.0.8-alpha.28](https://github.com/cdmbase/common-stack/compare/v6.0.8-alpha.27...v6.0.8-alpha.28) (2025-01-27)
99
+
100
+ **Note:** Version bump only for package @common-stack/generate-plugin
101
+
102
+ ## [6.0.8-alpha.27](https://github.com/cdmbase/common-stack/compare/v6.0.8-alpha.26...v6.0.8-alpha.27) (2025-01-27)
103
+
104
+ **Note:** Version bump only for package @common-stack/generate-plugin
105
+
106
+ ## [6.0.8-alpha.26](https://github.com/cdmbase/common-stack/compare/v6.0.8-alpha.25...v6.0.8-alpha.26) (2025-01-27)
107
+
108
+ **Note:** Version bump only for package @common-stack/generate-plugin
109
+
110
+ ## [6.0.8-alpha.25](https://github.com/cdmbase/common-stack/compare/v6.0.8-alpha.24...v6.0.8-alpha.25) (2025-01-27)
111
+
112
+ **Note:** Version bump only for package @common-stack/generate-plugin
113
+
114
+ ## [6.0.8-alpha.24](https://github.com/cdmbase/common-stack/compare/v6.0.8-alpha.23...v6.0.8-alpha.24) (2025-01-27)
115
+
116
+ **Note:** Version bump only for package @common-stack/generate-plugin
117
+
118
+ ## [6.0.8-alpha.23](https://github.com/cdmbase/common-stack/compare/v6.0.8-alpha.22...v6.0.8-alpha.23) (2025-01-22)
119
+
120
+ **Note:** Version bump only for package @common-stack/generate-plugin
121
+
122
+ ## [6.0.8-alpha.22](https://github.com/cdmbase/common-stack/compare/v6.0.8-alpha.21...v6.0.8-alpha.22) (2025-01-20)
123
+
124
+ **Note:** Version bump only for package @common-stack/generate-plugin
125
+
126
+ ## [6.0.8-alpha.21](https://github.com/cdmbase/common-stack/compare/v6.0.8-alpha.20...v6.0.8-alpha.21) (2025-01-19)
127
+
128
+ **Note:** Version bump only for package @common-stack/generate-plugin
129
+
130
+ ## [6.0.8-alpha.20](https://github.com/cdmbase/common-stack/compare/v6.0.8-alpha.19...v6.0.8-alpha.20) (2025-01-17)
131
+
132
+ **Note:** Version bump only for package @common-stack/generate-plugin
133
+
134
+ ## [6.0.8-alpha.19](https://github.com/cdmbase/common-stack/compare/v6.0.8-alpha.18...v6.0.8-alpha.19) (2025-01-14)
135
+
136
+ **Note:** Version bump only for package @common-stack/generate-plugin
137
+
138
+ ## [6.0.8-alpha.18](https://github.com/cdmbase/common-stack/compare/v6.0.8-alpha.17...v6.0.8-alpha.18) (2025-01-11)
139
+
140
+ **Note:** Version bump only for package @common-stack/generate-plugin
141
+
142
+ ## [6.0.8-alpha.17](https://github.com/cdmbase/common-stack/compare/v6.0.8-alpha.16...v6.0.8-alpha.17) (2025-01-08)
143
+
144
+ **Note:** Version bump only for package @common-stack/generate-plugin
145
+
146
+ ## [6.0.8-alpha.16](https://github.com/cdmbase/common-stack/compare/v6.0.8-alpha.15...v6.0.8-alpha.16) (2025-01-08)
147
+
148
+ **Note:** Version bump only for package @common-stack/generate-plugin
149
+
150
+ ## [6.0.8-alpha.15](https://github.com/cdmbase/common-stack/compare/v6.0.8-alpha.14...v6.0.8-alpha.15) (2025-01-03)
151
+
152
+ **Note:** Version bump only for package @common-stack/generate-plugin
153
+
154
+ ## [6.0.8-alpha.14](https://github.com/cdmbase/common-stack/compare/v6.0.8-alpha.13...v6.0.8-alpha.14) (2024-12-30)
155
+
156
+ **Note:** Version bump only for package @common-stack/generate-plugin
157
+
158
+ ## [6.0.8-alpha.13](https://github.com/cdmbase/common-stack/compare/v6.0.8-alpha.12...v6.0.8-alpha.13) (2024-12-30)
159
+
160
+ **Note:** Version bump only for package @common-stack/generate-plugin
161
+
162
+ ## [6.0.8-alpha.12](https://github.com/cdmbase/common-stack/compare/v6.0.8-alpha.11...v6.0.8-alpha.12) (2024-12-29)
163
+
164
+ **Note:** Version bump only for package @common-stack/generate-plugin
165
+
166
+ ## [6.0.8-alpha.11](https://github.com/cdmbase/common-stack/compare/v6.0.8-alpha.10...v6.0.8-alpha.11) (2024-12-29)
167
+
168
+ **Note:** Version bump only for package @common-stack/generate-plugin
169
+
170
+ ## [6.0.8-alpha.10](https://github.com/cdmbase/common-stack/compare/v6.0.8-alpha.9...v6.0.8-alpha.10) (2024-12-20)
171
+
172
+ **Note:** Version bump only for package @common-stack/generate-plugin
173
+
174
+ ## [6.0.8-alpha.9](https://github.com/cdmbase/common-stack/compare/v6.0.8-alpha.8...v6.0.8-alpha.9) (2024-12-20)
175
+
176
+ **Note:** Version bump only for package @common-stack/generate-plugin
177
+
178
+ ## [6.0.8-alpha.8](https://github.com/cdmbase/common-stack/compare/v6.0.8-alpha.7...v6.0.8-alpha.8) (2024-12-19)
179
+
180
+ **Note:** Version bump only for package @common-stack/generate-plugin
181
+
182
+ ## [6.0.8-alpha.7](https://github.com/cdmbase/common-stack/compare/v6.0.8-alpha.6...v6.0.8-alpha.7) (2024-12-19)
183
+
184
+ **Note:** Version bump only for package @common-stack/generate-plugin
185
+
186
+ ## [6.0.8-alpha.6](https://github.com/cdmbase/common-stack/compare/v6.0.8-alpha.5...v6.0.8-alpha.6) (2024-12-19)
187
+
188
+ **Note:** Version bump only for package @common-stack/generate-plugin
189
+
6
190
  ## [6.0.8-alpha.5](https://github.com/cdmbase/common-stack/compare/v6.0.8-alpha.4...v6.0.8-alpha.5) (2024-12-19)
7
191
 
8
192
  **Note:** Version bump only for package @common-stack/generate-plugin
@@ -261,18 +445,18 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
261
445
 
262
446
  ### Bug Fixes
263
447
 
264
- - **server-stack:** apollo server redis cache ([2ef1df3](https://github.com/cdmbase/common-stack/commit/2ef1df30176616baf9816c47168687577f7aa8ff))
448
+ - **server-stack:** apollo server redis cache ([2ef1df3](https://github.com/cdmbase/common-stack/commit/2ef1df30176616baf9816c47168687577f7aa8ff))
265
449
 
266
450
  ### Features
267
451
 
268
- - enable docker layer caching ([ce2c742](https://github.com/cdmbase/common-stack/commit/ce2c74271a107d5c73580523a4e1822b80e04c8d))
452
+ - enable docker layer caching ([ce2c742](https://github.com/cdmbase/common-stack/commit/ce2c74271a107d5c73580523a4e1822b80e04c8d))
269
453
 
270
454
  ## [6.0.6-alpha.0](https://github.com/cdmbase/common-stack/compare/v0.0.251...v6.0.6-alpha.0) (2024-12-16)
271
455
 
272
456
  ### Bug Fixes
273
457
 
274
- - **server-stack:** apollo server redis cache ([2ef1df3](https://github.com/cdmbase/common-stack/commit/2ef1df30176616baf9816c47168687577f7aa8ff))
458
+ - **server-stack:** apollo server redis cache ([2ef1df3](https://github.com/cdmbase/common-stack/commit/2ef1df30176616baf9816c47168687577f7aa8ff))
275
459
 
276
460
  ### Features
277
461
 
278
- - enable docker layer caching ([ce2c742](https://github.com/cdmbase/common-stack/commit/ce2c74271a107d5c73580523a4e1822b80e04c8d))
462
+ - enable docker layer caching ([ce2c742](https://github.com/cdmbase/common-stack/commit/ce2c74271a107d5c73580523a4e1822b80e04c8d))
@@ -0,0 +1,26 @@
1
+ {
2
+ "name": "sample-stack-frontend-server",
3
+ "version": "1.0.0",
4
+ "private": true,
5
+ "resolutions": {
6
+ "common": "link:./common"
7
+ },
8
+ "dependencies": {
9
+ "@admin-layout/ant-design-pro": "10.0.2-alpha.4",
10
+ "@ant-design/static-style-extract": "^1.0.3",
11
+ "@chakra-ui/react": "^2.8.0",
12
+ "@emotion/css": "^11.13.5",
13
+ "@emotion/react": "^11.14.0",
14
+ "@emotion/server": "^11.11.0",
15
+ "@emotion/styled": "^11.14.0",
16
+ "antd": "^5.23.4",
17
+ "autoprefixer": "^10.4.20",
18
+ "framer-motion": "^12.4.1",
19
+ "postcss": "^8.5.1",
20
+ "tailwindcss": "^4.0.4"
21
+ },
22
+ "devDependencies": {},
23
+ "peerDependencies": {
24
+ "body-parser": "*"
25
+ }
26
+ }
@@ -0,0 +1,33 @@
1
+ 'use strict';Object.defineProperty(exports,'__esModule',{value:true});var name = "sample-stack-frontend-server";
2
+ var version = "1.0.0";
3
+ var resolutions = {
4
+ common: "link:./common"
5
+ };
6
+ var dependencies = {
7
+ "@admin-layout/ant-design-pro": "10.0.2-alpha.4",
8
+ "@ant-design/static-style-extract": "^1.0.3",
9
+ "@chakra-ui/react": "^2.8.0",
10
+ "@emotion/css": "^11.13.5",
11
+ "@emotion/react": "^11.14.0",
12
+ "@emotion/server": "^11.11.0",
13
+ "@emotion/styled": "^11.14.0",
14
+ antd: "^5.23.4",
15
+ autoprefixer: "^10.4.20",
16
+ "framer-motion": "^12.4.1",
17
+ postcss: "^8.5.1",
18
+ tailwindcss: "^4.0.4"
19
+ };
20
+ var devDependencies = {
21
+ };
22
+ var peerDependencies = {
23
+ "body-parser": "*"
24
+ };
25
+ var pluginPkg = {
26
+ name: name,
27
+ version: version,
28
+ "private": true,
29
+ resolutions: resolutions,
30
+ dependencies: dependencies,
31
+ devDependencies: devDependencies,
32
+ peerDependencies: peerDependencies
33
+ };exports.default=pluginPkg;exports.dependencies=dependencies;exports.devDependencies=devDependencies;exports.name=name;exports.peerDependencies=peerDependencies;exports.resolutions=resolutions;exports.version=version;//# sourceMappingURL=package.json.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package.json.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,33 @@
1
+ var name = "sample-stack-frontend-server";
2
+ var version = "1.0.0";
3
+ var resolutions = {
4
+ common: "link:./common"
5
+ };
6
+ var dependencies = {
7
+ "@admin-layout/ant-design-pro": "10.0.2-alpha.4",
8
+ "@ant-design/static-style-extract": "^1.0.3",
9
+ "@chakra-ui/react": "^2.8.0",
10
+ "@emotion/css": "^11.13.5",
11
+ "@emotion/react": "^11.14.0",
12
+ "@emotion/server": "^11.11.0",
13
+ "@emotion/styled": "^11.14.0",
14
+ antd: "^5.23.4",
15
+ autoprefixer: "^10.4.20",
16
+ "framer-motion": "^12.4.1",
17
+ postcss: "^8.5.1",
18
+ tailwindcss: "^4.0.4"
19
+ };
20
+ var devDependencies = {
21
+ };
22
+ var peerDependencies = {
23
+ "body-parser": "*"
24
+ };
25
+ var pluginPkg = {
26
+ name: name,
27
+ version: version,
28
+ "private": true,
29
+ resolutions: resolutions,
30
+ dependencies: dependencies,
31
+ devDependencies: devDependencies,
32
+ peerDependencies: peerDependencies
33
+ };export{pluginPkg as default,dependencies,devDependencies,name,peerDependencies,resolutions,version};//# sourceMappingURL=package.json.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package.json.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -4,6 +4,7 @@ FROM node:20.16-bullseye
4
4
  ENV PYTHON=/usr/bin/python
5
5
 
6
6
  COPY .npmrc package.json /tmp/
7
+ COPY common /tmp/common
7
8
 
8
9
  RUN set -ex \
9
10
  && cd /tmp \
@@ -13,6 +14,7 @@ RUN set -ex \
13
14
  && rm -f /tmp/.npmrc \
14
15
  && mkdir -p /home/app \
15
16
  && cp -a /tmp/node_modules /home/app/ \
17
+ && cp -a /tmp/common /home/app/common \
16
18
  && rm -Rf /tmp/*
17
19
 
18
20
  WORKDIR /home/app
@@ -29,10 +29,11 @@
29
29
  "build": "cross-env NODE_ENV=production webpack --config webpack.config.js",
30
30
  "build:clean": "rimraf dist .awcache",
31
31
  "build:dev": "cross-env NODE_ENV=development ENV_FILE=../../config/development/dev.env webpack --config webpack.config.js",
32
+ "copycommon": "cp -r ../../packages/common .",
32
33
  "db:migrate": "knex -- migrate:latest --cwd . --knexfile ./knexfile.js",
33
34
  "db:migrate:rollback": "knex -- migrate:rollback --cwd . --knexfile ./knexfile.js",
34
35
  "db:seed": "yarn db:migrate && knex -- seed:run --cwd . --knexfile ./knexfile.js",
35
- "docker:build": "yarn build && docker build . -t $npm_package_name:$npm_package_version",
36
+ "docker:build": "yarn copycommon && yarn build && docker build . -t $npm_package_name:$npm_package_version",
36
37
  "docker:build:debug": "yarn build:debug && docker build . -t $npm_package_name:$npm_package_version",
37
38
  "docker:run": "docker run --env-file ../../config/staging/docker-staging.env -p 8080:8080 -it $npm_package_name:$npm_package_version",
38
39
  "docker:run:debug": "cross-env NODE_ENV=development docker run --env-file ../../config/staging/docker-staging.env -p 8080:8080 -it $npm_package_name:$npm_package_version",
@@ -57,12 +58,13 @@
57
58
  "watch:test": "cross-env NODE_ENV=test ENV_FILE=../../config/test/test.env yarn build:test && yarn start:test"
58
59
  },
59
60
  "resolutions": {
61
+ "common": "link:./common",
60
62
  "html-to-text": "^8.0.0"
61
63
  },
62
64
  "dependencies": {
63
65
  "@apollo/client": "^3.9.0",
64
66
  "@babel/runtime": "^7.20.1",
65
- "@common-stack/server-stack": "6.0.8-alpha.4",
67
+ "@common-stack/server-stack": "6.0.8-alpha.50",
66
68
  "@remix-run/node": "~2.10.1",
67
69
  "lodash": "^4.17.15",
68
70
  "react": "18.2.0"
@@ -1,4 +1,6 @@
1
- process.env.ENV_FILE !== null && require('dotenv').config({ path: process.env.ENV_FILE });
1
+ if (process.env.ENV_FILE) {
2
+ require('dotenv').config({ path: process.env.ENV_FILE });
3
+ }
2
4
  const webpack = require('webpack');
3
5
  const path = require('path');
4
6
  const { CleanWebpackPlugin } = require('clean-webpack-plugin');
@@ -0,0 +1,8 @@
1
+ // context.tsx
2
+ import React, { createContext } from 'react';
3
+
4
+ export interface LocaleContextData {
5
+ locale: string;
6
+ }
7
+
8
+ export const LocaleContext = createContext<LocaleContextData | null>(null);
@@ -13,8 +13,6 @@ import { ApolloProvider } from '@apollo/client/index.js';
13
13
  import { SlotFillProvider, removeUniversalPortals } from '@common-stack/components-pro';
14
14
  import { InversifyProvider } from '@common-stack/client-react';
15
15
  import { Provider as ReduxProvider } from 'react-redux';
16
- import { PersistGate } from 'redux-persist/integration/react';
17
- import { persistStore } from 'redux-persist';
18
16
  import { CacheProvider } from '@emotion/react';
19
17
  import i18next from 'i18next';
20
18
  import { I18nextProvider, initReactI18next } from 'react-i18next';
@@ -32,16 +30,22 @@ import clientModules from '@app/frontend-stack-react/modules.js';
32
30
  import createEmotionCache from '@app/frontend-stack-react/entries/common/createEmotionCache.js';
33
31
  // @ts-ignore
34
32
  import config from '@app/cde-webconfig.json';
33
+ import { LocaleContext } from './context';
35
34
 
36
35
  const { apolloClient: client, container, serviceFunc } = createClientContainer();
37
36
  const { store } = createReduxStore(client, serviceFunc(), container);
38
- const persistor = persistStore(store);
39
37
  const antCache = createCache();
40
38
  const cache = createEmotionCache();
41
39
 
42
40
  (window as any).__remixStore = store;
43
41
  removeUniversalPortals((window as any).__SLOT_FILLS__ || []);
44
42
 
43
+ function LocaleProvider({ children }: any) {
44
+ const locale = (window as any).__LOCALE__ || '';
45
+
46
+ return <LocaleContext.Provider value={locale}>{children}</LocaleContext.Provider>;
47
+ }
48
+
45
49
  async function hydrate() {
46
50
  if (!i18next.isInitialized && config.i18n.enabled) {
47
51
  await i18next
@@ -66,25 +70,21 @@ async function hydrate() {
66
70
  document,
67
71
  (
68
72
  <I18nextProvider i18n={i18next}>
69
- <StrictMode>
73
+ <LocaleProvider>
70
74
  <CacheProvider value={cache}>
71
75
  <StyleProvider cache={antCache}>
72
76
  <ReduxProvider store={store}>
73
77
  <SlotFillProvider>
74
78
  <InversifyProvider container={container} modules={clientModules}>
75
- <PersistGate loading={null} persistor={persistor}>
76
- {() => (
77
- <ApolloProvider client={client}>
78
- <RemixBrowser />
79
- </ApolloProvider>
80
- )}
81
- </PersistGate>
79
+ <ApolloProvider client={client}>
80
+ <RemixBrowser />
81
+ </ApolloProvider>
82
82
  </InversifyProvider>
83
83
  </SlotFillProvider>
84
84
  </ReduxProvider>
85
85
  </StyleProvider>
86
86
  </CacheProvider>
87
- </StrictMode>
87
+ </LocaleProvider>
88
88
  </I18nextProvider>
89
89
  ) as any,
90
90
  );
@@ -27,10 +27,14 @@ import Backend from 'i18next-fs-backend';
27
27
  import { resolve } from 'node:path';
28
28
  // @ts-ignore
29
29
  import { i18nextInstance as i18next } from '@app/frontend-stack-react/i18n-localization/i18next.server.js';
30
+ // @ts-ignore
30
31
  import config from '@app/cde-webconfig.json';
31
32
  // @ts-ignore
32
33
  import createEmotionCache from '@app/frontend-stack-react/entries/common/createEmotionCache';
33
34
  import type { IAppLoadContext } from '@common-stack/client-core';
35
+ // @ts-ignore
36
+ import publicEnv from '@src/config/public-config';
37
+ import { LocaleContext } from './context';
34
38
 
35
39
  const ABORT_DELAY = 5_000;
36
40
  const antdCache = createAntdCache();
@@ -41,18 +45,23 @@ class ConstantsTransform extends Transform {
41
45
  _apolloState: any;
42
46
  _reduxState: any;
43
47
  _styleSheet: string;
48
+ _lng: string;
44
49
 
45
- constructor(fills: string[], apolloState: any, reduxState: any, styleSheet: any) {
50
+ constructor(fills: string[], apolloState: any, reduxState: any, styleSheet: any, lng: string) {
46
51
  super();
47
52
  this._fills = fills;
48
53
  this._apolloState = apolloState;
49
54
  this._reduxState = reduxState;
50
55
  this._styleSheet = styleSheet;
56
+ this._lng = lng;
51
57
  }
52
58
 
53
59
  _transform(chunk, encoding, callback) {
54
60
  let transformedChunk = chunk.toString();
55
61
 
62
+ if (transformedChunk.includes('[__ENV__]')) {
63
+ transformedChunk = transformedChunk.replace('[__ENV__]', JSON.stringify(publicEnv));
64
+ }
56
65
  if (transformedChunk.includes('[__APOLLO_STATE__]')) {
57
66
  transformedChunk = transformedChunk.replace(
58
67
  '[__APOLLO_STATE__]',
@@ -71,6 +80,9 @@ class ConstantsTransform extends Transform {
71
80
  if (transformedChunk.includes('[__STYLESHEET__]')) {
72
81
  transformedChunk = transformedChunk.replace('[__STYLESHEET__]', this._styleSheet);
73
82
  }
83
+ if (transformedChunk.includes('[__LOCALE__]')) {
84
+ transformedChunk = transformedChunk.replace('[__LOCALE__]', `"${this._lng}"`);
85
+ }
74
86
 
75
87
  callback(null, transformedChunk);
76
88
  }
@@ -86,32 +98,9 @@ export default async function handleRequest(
86
98
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
87
99
  loadContext: IAppLoadContext,
88
100
  ) {
89
- const instance = createInstance();
90
- const lng = await i18next.getLocale(request);
91
- const ns = i18next.getRouteNamespaces(remixContext);
92
-
93
- // First, we create a new instance of i18next so every request will have a
94
- // completely unique instance and not share any state.
95
- if (config.i18n.enabled) {
96
- await instance
97
- .use(initReactI18next) // Tell our instance to use react-i18next
98
- .use(Backend) // Setup our backend.init({
99
- .init({
100
- fallbackLng: config.i18n.fallbackLng,
101
- defaultNS: config.i18n.defaultNS,
102
- react: config.i18n.react,
103
- supportedLngs: config.i18n.supportedLngs,
104
- lng, // The locale we detected above
105
- ns, // The namespaces the routes about to render want to use
106
- backend: {
107
- loadPath: resolve(config.i18n.backend.loadServerPath),
108
- },
109
- });
110
- }
111
-
112
101
  return isbot(request.headers.get('user-agent') || '')
113
- ? handleBotRequest(request, responseStatusCode, responseHeaders, remixContext, loadContext, instance)
114
- : handleBrowserRequest(request, responseStatusCode, responseHeaders, remixContext, loadContext, instance);
102
+ ? handleBotRequest(request, responseStatusCode, responseHeaders, remixContext, loadContext)
103
+ : handleBrowserRequest(request, responseStatusCode, responseHeaders, remixContext, loadContext);
115
104
  }
116
105
 
117
106
  function handleBotRequest(
@@ -120,14 +109,11 @@ function handleBotRequest(
120
109
  responseHeaders: Headers,
121
110
  remixContext: EntryContext,
122
111
  loadContext: IAppLoadContext,
123
- i18nInstance: i18next,
124
112
  ) {
125
113
  return new Promise((resolve, reject) => {
126
114
  let shellRendered = false;
127
115
  const { pipe, abort } = renderToPipeableStream(
128
- <I18nextProvider i18n={i18nInstance}>
129
- <RemixServer context={remixContext} url={request.url} abortDelay={ABORT_DELAY} />
130
- </I18nextProvider>,
116
+ <RemixServer context={remixContext} url={request.url} abortDelay={ABORT_DELAY} />,
131
117
  {
132
118
  onAllReady() {
133
119
  shellRendered = true;
@@ -164,14 +150,36 @@ function handleBotRequest(
164
150
  });
165
151
  }
166
152
 
167
- function handleBrowserRequest(
153
+ async function handleBrowserRequest(
168
154
  request: Request,
169
155
  responseStatusCode: number,
170
156
  responseHeaders: Headers,
171
157
  remixContext: EntryContext,
172
158
  loadContext: IAppLoadContext,
173
- i18nInstance: i18next,
174
159
  ) {
160
+ const instance = createInstance();
161
+ const lng = await i18next.getLocale(request);
162
+ const ns = i18next.getRouteNamespaces(remixContext);
163
+
164
+ // First, we create a new instance of i18next so every request will have a
165
+ // completely unique instance and not share any state.
166
+ if (config.i18n.enabled) {
167
+ await instance
168
+ .use(initReactI18next) // Tell our instance to use react-i18next
169
+ .use(Backend) // Setup our backend.init({
170
+ .init({
171
+ fallbackLng: config.i18n.fallbackLng,
172
+ defaultNS: config.i18n.defaultNS,
173
+ react: config.i18n.react,
174
+ supportedLngs: config.i18n.supportedLngs,
175
+ lng, // The locale we detected above
176
+ ns, // The namespaces the routes about to render want to use
177
+ backend: {
178
+ loadPath: resolve(config.i18n.backend.loadServerPath),
179
+ },
180
+ });
181
+ }
182
+
175
183
  return new Promise((resolve, reject) => {
176
184
  let shellRendered = false;
177
185
  const slotFillContext = { fills: {} };
@@ -190,24 +198,26 @@ function handleBrowserRequest(
190
198
 
191
199
  const { pipe, abort } = renderToPipeableStream(
192
200
  (
193
- <I18nextProvider i18n={i18nInstance}>
194
- <CacheProvider value={cache}>
195
- <StyleProvider cache={antdCache}>
196
- <ReduxProvider store={store}>
197
- <SlotFillProvider context={slotFillContext}>
198
- <InversifyProvider container={container} modules={clientModules as any}>
199
- <ApolloProvider client={client}>
200
- <RemixServer
201
- context={remixContext}
202
- url={request.url}
203
- abortDelay={ABORT_DELAY}
204
- />
205
- </ApolloProvider>
206
- </InversifyProvider>
207
- </SlotFillProvider>
208
- </ReduxProvider>
209
- </StyleProvider>
210
- </CacheProvider>
201
+ <I18nextProvider i18n={instance}>
202
+ <LocaleContext.Provider value={lng}>
203
+ <CacheProvider value={cache}>
204
+ <StyleProvider cache={antdCache}>
205
+ <ReduxProvider store={store}>
206
+ <SlotFillProvider context={slotFillContext}>
207
+ <InversifyProvider container={container} modules={clientModules as any}>
208
+ <ApolloProvider client={client}>
209
+ <RemixServer
210
+ context={remixContext}
211
+ url={request.url}
212
+ abortDelay={ABORT_DELAY}
213
+ />
214
+ </ApolloProvider>
215
+ </InversifyProvider>
216
+ </SlotFillProvider>
217
+ </ReduxProvider>
218
+ </StyleProvider>
219
+ </CacheProvider>
220
+ </LocaleContext.Provider>
211
221
  </I18nextProvider>
212
222
  ) as any,
213
223
  {
@@ -220,7 +230,7 @@ function handleBrowserRequest(
220
230
  const fills = Object.keys(slotFillContext.fills);
221
231
  const styleSheet = extractStyle(antdCache);
222
232
 
223
- const transform = new ConstantsTransform(fills, apolloState, reduxState, styleSheet);
233
+ const transform = new ConstantsTransform(fills, apolloState, reduxState, styleSheet, lng);
224
234
 
225
235
  responseHeaders.set('Content-Type', 'text/html');
226
236