@common-stack/generate-plugin 6.0.1-alpha.9 → 6.0.2-alpha.10

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 (265) hide show
  1. package/.eslintrc.json +1 -1
  2. package/CHANGELOG.md +44 -0
  3. package/README.md +280 -10
  4. package/cde-config.json +86 -0
  5. package/executors.json +14 -0
  6. package/generators.json +15 -0
  7. package/lib/constants/index.cjs +2 -1
  8. package/lib/constants/index.cjs.map +1 -1
  9. package/lib/constants/index.d.ts +1 -0
  10. package/lib/constants/index.mjs +2 -1
  11. package/lib/constants/index.mjs.map +1 -1
  12. package/lib/executors/sort-package-json/executor.cjs +46 -0
  13. package/lib/executors/sort-package-json/executor.cjs.map +1 -0
  14. package/lib/executors/sort-package-json/executor.d.ts +4 -0
  15. package/lib/executors/sort-package-json/executor.mjs +46 -0
  16. package/lib/executors/sort-package-json/executor.mjs.map +1 -0
  17. package/lib/executors/sort-package-json/executor.spec.d.ts +1 -0
  18. package/lib/executors/sort-package-json/schema.json +9 -0
  19. package/lib/executors/update-deploy-version/executor.cjs +22 -0
  20. package/lib/executors/update-deploy-version/executor.cjs.map +1 -0
  21. package/lib/executors/update-deploy-version/executor.d.ts +4 -0
  22. package/lib/executors/update-deploy-version/executor.mjs +22 -0
  23. package/lib/executors/update-deploy-version/executor.mjs.map +1 -0
  24. package/lib/executors/update-deploy-version/executor.spec.d.ts +1 -0
  25. package/lib/executors/update-deploy-version/schema.json +14 -0
  26. package/lib/generators/add-backend/files/CHANGELOG.md +0 -0
  27. package/lib/generators/add-backend/files/Dockerfile +1 -1
  28. package/lib/generators/add-backend/files/config.json +0 -1
  29. package/lib/generators/add-backend/files/package.json +1 -53
  30. package/lib/generators/add-backend/files/src/api/root-schema.graphqls +9 -0
  31. package/lib/generators/add-backend/files/src/config/env-config.ts.template +2 -24
  32. package/lib/generators/add-backend/files/src/service.ts.template +4 -5
  33. package/lib/generators/add-backend/files/tsconfig.json +1 -1
  34. package/lib/generators/add-backend/files/webpack.config.js +6 -10
  35. package/lib/generators/add-backend/generator.cjs +21 -17
  36. package/lib/generators/add-backend/generator.cjs.map +1 -1
  37. package/lib/generators/add-backend/generator.d.ts +1 -0
  38. package/lib/generators/add-backend/generator.mjs +21 -17
  39. package/lib/generators/add-backend/generator.mjs.map +1 -1
  40. package/lib/generators/add-browser-package/files/package.json +2 -2
  41. package/lib/generators/add-browser-package/generator.cjs +14 -16
  42. package/lib/generators/add-browser-package/generator.cjs.map +1 -1
  43. package/lib/generators/add-browser-package/generator.d.ts +1 -0
  44. package/lib/generators/add-browser-package/generator.mjs +14 -16
  45. package/lib/generators/add-browser-package/generator.mjs.map +1 -1
  46. package/lib/generators/add-client-package/files/CHANGELOG.md +807 -0
  47. package/lib/generators/add-client-package/files/LICENSE +674 -0
  48. package/lib/generators/add-client-package/files/jest.config.js +13 -0
  49. package/lib/generators/add-client-package/files/package.json +30 -0
  50. package/lib/generators/add-client-package/files/rollup.config.mjs +29 -0
  51. package/lib/generators/add-client-package/files/src/components/index.tsx.template +1 -0
  52. package/lib/generators/add-client-package/files/src/index.ts.template +1 -0
  53. package/lib/generators/add-client-package/files/tsconfig.json +27 -0
  54. package/lib/generators/add-client-package/files/webpack.config.js +72 -0
  55. package/lib/generators/add-client-package/generator.cjs +17 -0
  56. package/lib/generators/add-client-package/generator.cjs.map +1 -0
  57. package/lib/generators/add-client-package/generator.d.ts +5 -0
  58. package/lib/generators/add-client-package/generator.mjs +17 -0
  59. package/lib/generators/add-client-package/generator.mjs.map +1 -0
  60. package/lib/generators/add-client-package/generator.spec.d.ts +1 -0
  61. package/lib/generators/add-client-package/schema.json +19 -0
  62. package/lib/generators/add-core-package/files/CHANGELOG.md +1076 -0
  63. package/lib/generators/add-core-package/files/LICENSE +39 -0
  64. package/lib/generators/add-core-package/files/jest.config.js +3 -0
  65. package/lib/generators/add-core-package/files/package.json +30 -0
  66. package/lib/generators/add-core-package/files/rollup.config.mjs +65 -0
  67. package/lib/generators/add-core-package/files/src/constants/index.ts.template +1 -0
  68. package/lib/generators/add-core-package/files/src/constants/types.ts.template +3 -0
  69. package/lib/generators/add-core-package/files/src/index.ts.template +2 -0
  70. package/lib/generators/add-core-package/files/src/types/index.ts.template +1 -0
  71. package/lib/generators/add-core-package/files/src/types/types.ts.template +17 -0
  72. package/lib/generators/add-core-package/files/tsconfig.json +22 -0
  73. package/lib/generators/add-core-package/files/webpack.config.js +53 -0
  74. package/lib/generators/add-core-package/generator.cjs +17 -0
  75. package/lib/generators/add-core-package/generator.cjs.map +1 -0
  76. package/lib/generators/add-core-package/generator.d.ts +5 -0
  77. package/lib/generators/add-core-package/generator.mjs +17 -0
  78. package/lib/generators/add-core-package/generator.mjs.map +1 -0
  79. package/lib/generators/add-core-package/generator.spec.d.ts +1 -0
  80. package/lib/generators/add-core-package/schema.json +19 -0
  81. package/lib/generators/add-frontend/frameworks/chakraui/entry.client.tsx.template +30 -24
  82. package/lib/generators/add-frontend/frameworks/chakraui/entry.server.tsx.template +5 -8
  83. package/lib/generators/add-frontend/frameworks/chakraui/root.tsx.template +3 -3
  84. package/lib/generators/add-frontend/frameworks/tailwindui/entry.client.tsx.template +90 -0
  85. package/lib/generators/add-frontend/frameworks/tailwindui/entry.server.tsx.template +238 -0
  86. package/lib/generators/add-frontend/frameworks/tailwindui/root.tsx.template +117 -0
  87. package/lib/generators/add-frontend/frameworks/tailwindui/tailwind.css +3 -0
  88. package/lib/generators/add-frontend/generator.cjs +60 -42
  89. package/lib/generators/add-frontend/generator.cjs.map +1 -1
  90. package/lib/generators/add-frontend/generator.d.ts +1 -0
  91. package/lib/generators/add-frontend/generator.mjs +60 -42
  92. package/lib/generators/add-frontend/generator.mjs.map +1 -1
  93. package/lib/generators/add-frontend/schema.json +1 -1
  94. package/lib/generators/add-frontend/templates/Dockerfile +1 -1
  95. package/lib/generators/add-frontend/templates/package.json +4 -80
  96. package/lib/generators/add-frontend/templates/postcss.config.js +6 -0
  97. package/lib/generators/add-frontend/templates/src/config/public-config.ts.template +6 -0
  98. package/lib/generators/add-frontend/templates/tailwind.config.ts.template +12 -0
  99. package/lib/generators/add-fullstack/files/Jenkinsfile +4 -7
  100. package/lib/generators/add-fullstack/files/jest-mongodb-config.js +3 -2
  101. package/lib/generators/add-fullstack/files/jest.config.base.js +43 -4
  102. package/lib/generators/add-fullstack/files/jest.config.base.mjs +99 -0
  103. package/lib/generators/add-fullstack/files/jest.config.mongodb.mjs +3 -0
  104. package/lib/generators/add-fullstack/files/lint-staged.config.js +4 -1
  105. package/lib/generators/add-fullstack/files/nx.json +18 -13
  106. package/lib/generators/add-fullstack/files/package.json +12 -24
  107. package/lib/generators/add-fullstack/files/tools/cli/helpers/util.js +1 -1
  108. package/lib/generators/add-fullstack/files/tools/deploy-cli/updateLernaVersion.js +1 -1
  109. package/lib/generators/add-fullstack/files/tools/deploy-cli/updateYamlSettings.js +14 -15
  110. package/lib/generators/add-fullstack/files/tools/prettier.config.js +8 -0
  111. package/lib/generators/add-fullstack/files/tools/rollup/rollupPluginGenerateJson.mjs +48 -0
  112. package/lib/generators/add-fullstack/files/tools/rollup/rollupPluginModifyLibFiles.mjs +410 -0
  113. package/lib/generators/add-fullstack/files/tools/runLint.mjs +15 -0
  114. package/lib/generators/add-fullstack/files/tools/sortPackageJson.mjs +8 -2
  115. package/lib/generators/add-fullstack/files/tools/update-dependencies.mjs +95 -0
  116. package/lib/generators/add-fullstack/files/tools/update-dependency-link.mjs +138 -0
  117. package/lib/generators/add-fullstack/files/tools/update-dependency-version.js +104 -89
  118. package/lib/generators/add-fullstack/files/tools/updateUtils.mjs +77 -0
  119. package/lib/generators/add-fullstack/generator.cjs +71 -13
  120. package/lib/generators/add-fullstack/generator.cjs.map +1 -1
  121. package/lib/generators/add-fullstack/generator.mjs +71 -13
  122. package/lib/generators/add-fullstack/generator.mjs.map +1 -1
  123. package/lib/generators/add-fullstack/schema.json +9 -0
  124. package/lib/generators/add-fullstack/updates/index.d.ts +2 -0
  125. package/lib/generators/add-fullstack/updates/jenkinsfileUpdate.cjs +36 -0
  126. package/lib/generators/add-fullstack/updates/jenkinsfileUpdate.cjs.map +1 -0
  127. package/lib/generators/add-fullstack/updates/jenkinsfileUpdate.d.ts +1 -0
  128. package/lib/generators/add-fullstack/updates/jenkinsfileUpdate.mjs +36 -0
  129. package/lib/generators/add-fullstack/updates/jenkinsfileUpdate.mjs.map +1 -0
  130. package/lib/generators/add-fullstack/updates/packageJsonUpdate.cjs +8 -0
  131. package/lib/generators/add-fullstack/updates/packageJsonUpdate.cjs.map +1 -0
  132. package/lib/generators/add-fullstack/updates/packageJsonUpdate.d.ts +2 -0
  133. package/lib/generators/add-fullstack/updates/packageJsonUpdate.mjs +8 -0
  134. package/lib/generators/add-fullstack/updates/packageJsonUpdate.mjs.map +1 -0
  135. package/lib/generators/add-moleculer/files/Dockerfile +1 -1
  136. package/lib/generators/add-moleculer/files/package.json +6 -25
  137. package/lib/generators/add-moleculer/generator.cjs +14 -16
  138. package/lib/generators/add-moleculer/generator.cjs.map +1 -1
  139. package/lib/generators/add-moleculer/generator.d.ts +1 -0
  140. package/lib/generators/add-moleculer/generator.mjs +14 -16
  141. package/lib/generators/add-moleculer/generator.mjs.map +1 -1
  142. package/lib/generators/add-server-package/files/CHANGELOG.md +2599 -0
  143. package/lib/generators/add-server-package/files/LICENSE +674 -0
  144. package/lib/generators/add-server-package/files/jest.config.js +32 -0
  145. package/lib/generators/add-server-package/files/package.json +78 -0
  146. package/lib/generators/add-server-package/files/rollup.config.mjs +30 -0
  147. package/lib/generators/add-server-package/files/src/constants/constants.ts.template +62 -0
  148. package/lib/generators/add-server-package/files/src/constants/index.ts.template +1 -0
  149. package/lib/generators/add-server-package/files/src/constants/types.ts.template +21 -0
  150. package/lib/generators/add-server-package/files/src/index.ts.template +6 -0
  151. package/lib/generators/add-server-package/files/src/module.ts.template +6 -0
  152. package/lib/generators/add-server-package/files/tsconfig.json +27 -0
  153. package/lib/generators/add-server-package/generator.cjs +17 -0
  154. package/lib/generators/add-server-package/generator.cjs.map +1 -0
  155. package/lib/generators/add-server-package/generator.d.ts +5 -0
  156. package/lib/generators/add-server-package/generator.mjs +17 -0
  157. package/lib/generators/add-server-package/generator.mjs.map +1 -0
  158. package/lib/generators/add-server-package/generator.spec.d.ts +1 -0
  159. package/lib/generators/add-server-package/schema.json +19 -0
  160. package/lib/index.cjs +1 -1
  161. package/lib/index.d.ts +5 -0
  162. package/lib/index.mjs +1 -1
  163. package/package.json +4 -2
  164. package/project.json +12 -1
  165. package/rollup.config.mjs +8 -0
  166. package/src/constants/index.ts +2 -1
  167. package/src/executors/sort-package-json/executor.spec.ts +18 -0
  168. package/src/executors/sort-package-json/executor.ts +53 -0
  169. package/src/executors/sort-package-json/schema.d.ts +1 -0
  170. package/src/executors/sort-package-json/schema.json +9 -0
  171. package/src/executors/update-deploy-version/executor.spec.ts +18 -0
  172. package/src/executors/update-deploy-version/executor.ts +36 -0
  173. package/src/executors/update-deploy-version/schema.d.ts +3 -0
  174. package/src/executors/update-deploy-version/schema.json +14 -0
  175. package/src/generators/add-backend/generator.ts +8 -4
  176. package/src/generators/add-browser-package/generator.ts +7 -6
  177. package/src/generators/add-client-package/generator.spec.ts +20 -0
  178. package/src/generators/add-client-package/generator.ts +24 -0
  179. package/src/generators/add-client-package/schema.d.ts +4 -0
  180. package/src/generators/add-client-package/schema.json +19 -0
  181. package/src/generators/add-core-package/generator.spec.ts +20 -0
  182. package/src/generators/add-core-package/generator.ts +24 -0
  183. package/src/generators/add-core-package/schema.d.ts +4 -0
  184. package/src/generators/add-core-package/schema.json +19 -0
  185. package/src/generators/add-frontend/frameworks/chakraui/entry.client.tsx.template +30 -24
  186. package/src/generators/add-frontend/frameworks/chakraui/entry.server.tsx.template +5 -8
  187. package/src/generators/add-frontend/frameworks/chakraui/root.tsx.template +3 -3
  188. package/src/generators/add-frontend/frameworks/tailwindui/entry.client.tsx.template +90 -0
  189. package/src/generators/add-frontend/frameworks/tailwindui/entry.server.tsx.template +238 -0
  190. package/src/generators/add-frontend/frameworks/tailwindui/root.tsx.template +117 -0
  191. package/src/generators/add-frontend/frameworks/tailwindui/tailwind.css +3 -0
  192. package/src/generators/add-frontend/generator.ts +24 -2
  193. package/src/generators/add-frontend/schema.json +1 -1
  194. package/src/generators/add-fullstack/files/Jenkinsfile +4 -7
  195. package/src/generators/add-fullstack/files/jest-mongodb-config.js +3 -2
  196. package/src/generators/add-fullstack/files/jest.config.base.js +43 -4
  197. package/src/generators/add-fullstack/files/jest.config.base.mjs +99 -0
  198. package/src/generators/add-fullstack/files/jest.config.mongodb.mjs +3 -0
  199. package/src/generators/add-fullstack/files/lint-staged.config.js +4 -1
  200. package/src/generators/add-fullstack/files/nx.json +18 -13
  201. package/src/generators/add-fullstack/files/package.json +12 -24
  202. package/src/generators/add-fullstack/files/tools/cli/helpers/util.js +1 -1
  203. package/src/generators/add-fullstack/files/tools/deploy-cli/updateLernaVersion.js +1 -1
  204. package/src/generators/add-fullstack/files/tools/deploy-cli/updateYamlSettings.js +14 -15
  205. package/src/generators/add-fullstack/files/tools/prettier.config.js +8 -0
  206. package/src/generators/add-fullstack/files/tools/rollup/rollupPluginGenerateJson.mjs +48 -0
  207. package/src/generators/add-fullstack/files/tools/rollup/rollupPluginModifyLibFiles.mjs +410 -0
  208. package/src/generators/add-fullstack/files/tools/runLint.mjs +15 -0
  209. package/src/generators/add-fullstack/files/tools/sortPackageJson.mjs +8 -2
  210. package/src/generators/add-fullstack/files/tools/update-dependencies.mjs +95 -0
  211. package/src/generators/add-fullstack/files/tools/update-dependency-link.mjs +138 -0
  212. package/src/generators/add-fullstack/files/tools/update-dependency-version.js +104 -89
  213. package/src/generators/add-fullstack/files/tools/updateUtils.mjs +77 -0
  214. package/src/generators/add-fullstack/generator.ts +101 -13
  215. package/src/generators/add-fullstack/schema.d.ts +3 -1
  216. package/src/generators/add-fullstack/schema.json +9 -0
  217. package/src/generators/add-fullstack/updates/index.ts +2 -0
  218. package/src/generators/add-fullstack/updates/jenkinsfileUpdate.ts +47 -0
  219. package/src/generators/add-fullstack/updates/packageJsonUpdate.ts +11 -0
  220. package/src/generators/add-moleculer/files/Dockerfile +1 -1
  221. package/src/generators/add-moleculer/files/package.json +6 -25
  222. package/src/generators/add-moleculer/generator.ts +7 -6
  223. package/src/generators/add-server-package/generator.spec.ts +20 -0
  224. package/src/generators/add-server-package/generator.ts +24 -0
  225. package/src/generators/add-server-package/schema.d.ts +4 -0
  226. package/src/generators/add-server-package/schema.json +19 -0
  227. package/src/index.ts +5 -0
  228. package/lib/generators/add-backend/files/generated-schema.graphql +0 -235
  229. package/lib/generators/add-backend/files/knexfile.js +0 -63
  230. package/lib/generators/add-backend/files/src/api/remote-config.ts.template +0 -11
  231. package/lib/generators/add-backend/files/src/api/resolver.ts.template +0 -15
  232. package/lib/generators/add-backend/files/src/api/scalar.ts.template +0 -16
  233. package/lib/generators/add-backend/files/src/api/schema-builder.ts.template +0 -189
  234. package/lib/generators/add-backend/files/src/api/utils.ts.template +0 -44
  235. package/lib/generators/add-backend/files/src/config/moleculer.config.ts.template +0 -228
  236. package/lib/generators/add-backend/files/src/connectors/connection-broker.ts.template +0 -80
  237. package/lib/generators/add-backend/files/src/connectors/graphql-pubsub-connector.ts.template +0 -43
  238. package/lib/generators/add-backend/files/src/connectors/mongo-connector.ts.template +0 -78
  239. package/lib/generators/add-backend/files/src/connectors/nats-connector.ts.template +0 -82
  240. package/lib/generators/add-backend/files/src/connectors/redis-connector.ts.template +0 -73
  241. package/lib/generators/add-backend/files/src/express-app.ts.template +0 -67
  242. package/lib/generators/add-backend/files/src/interfaces/index.ts.template +0 -1
  243. package/lib/generators/add-backend/files/src/interfaces/module-interface.ts.template +0 -16
  244. package/lib/generators/add-backend/files/src/main.spec.ts.template +0 -129
  245. package/lib/generators/add-backend/files/src/middleware/__tests__/cors.test.ts.template +0 -12
  246. package/lib/generators/add-backend/files/src/middleware/cors.ts.template +0 -31
  247. package/lib/generators/add-backend/files/src/middleware/error.ts.template +0 -63
  248. package/lib/generators/add-backend/files/src/middleware/moleculer-inter-namespace.ts.template +0 -60
  249. package/lib/generators/add-backend/files/src/middleware/persistedQuery.ts.template +0 -40
  250. package/lib/generators/add-backend/files/src/middleware/sentry.ts.template +0 -9
  251. package/lib/generators/add-backend/files/src/middleware/services.ts.template +0 -16
  252. package/lib/generators/add-backend/files/src/middleware/tracer.ts.template +0 -24
  253. package/lib/generators/add-backend/files/src/modules/auth/schema/auth-schema.graphql +0 -25
  254. package/lib/generators/add-backend/files/src/server-setup/graphql-server.ts.template +0 -185
  255. package/lib/generators/add-backend/files/src/server-setup/graphql-subscription-server.ts.template +0 -113
  256. package/lib/generators/add-backend/files/src/server-setup/graphql-ws.ts.template +0 -158
  257. package/lib/generators/add-backend/files/src/server-setup/mongodb-migration-update.ts.template +0 -47
  258. package/lib/generators/add-backend/files/src/server-setup/utils.ts.template +0 -43
  259. package/lib/generators/add-backend/files/src/server-setup/websocket-multipath-update.ts.template +0 -88
  260. package/lib/generators/add-backend/files/src/stack-server.ts.template +0 -277
  261. package/lib/generators/add-backend/files/src/utils/migrations.ts.template +0 -32
  262. package/lib/generators/add-backend/files/uploads/3986781.ppt +0 -0
  263. package/lib/generators/add-frontend/templates/public/css/dashboard.css +0 -491
  264. package/lib/generators/add-fullstack/files/tools/update-dependency-link.js +0 -107
  265. package/src/generators/add-fullstack/files/tools/update-dependency-link.js +0 -107
@@ -0,0 +1,238 @@
1
+ /**
2
+ * By default, Remix will handle generating the HTTP Response for you.
3
+ * You are free to delete this file if you'd like to, but if you ever want it revealed again, you can run `npx remix reveal` ✨
4
+ * For more information, see https://remix.run/file-conventions/entry.server
5
+ */
6
+ import * as React from 'react';
7
+ (global as any).__CLIENT__ = false;
8
+ (global as any).__SERVER__ = true;
9
+ import { PassThrough, Transform } from 'node:stream';
10
+ import type { EntryContext } from '@remix-run/node';
11
+ import { createReadableStreamFromReadable } from '@remix-run/node';
12
+ import { RemixServer } from '@remix-run/react';
13
+ import { isbot } from 'isbot';
14
+ import { ApolloProvider } from '@apollo/client/index.js';
15
+ import { SlotFillProvider } from '@common-stack/components-pro';
16
+ import { InversifyProvider } from '@common-stack/client-react';
17
+ import { renderToPipeableStream } from 'react-dom/server';
18
+ import { Provider as ReduxProvider } from 'react-redux';
19
+ import { LOCATION_CHANGE } from '@common-stack/remix-router-redux';
20
+ import serialize from 'serialize-javascript';
21
+ import { createInstance } from 'i18next';
22
+ import { I18nextProvider, initReactI18next } from 'react-i18next';
23
+ import Backend from 'i18next-fs-backend';
24
+ import { resolve } from 'node:path';
25
+ // @ts-ignore
26
+ import { i18nextInstance as i18next } from '@app/frontend-stack-react/i18n-localization/i18next.server.js';
27
+ import config from '@app/cde-webconfig.json';
28
+ // @ts-ignore
29
+ import type { IAppLoadContext } from '@common-stack/client-core';
30
+
31
+ const ABORT_DELAY = 5_000;
32
+
33
+ class ConstantsTransform extends Transform {
34
+ _fills: string[];
35
+ _apolloState: any;
36
+ _reduxState: any;
37
+ _styleSheet: string;
38
+
39
+ constructor(fills: string[], apolloState: any, reduxState: any, styleSheet: any) {
40
+ super();
41
+ this._fills = fills;
42
+ this._apolloState = apolloState;
43
+ this._reduxState = reduxState;
44
+ this._styleSheet = styleSheet;
45
+ }
46
+
47
+ _transform(chunk, encoding, callback) {
48
+ let transformedChunk = chunk.toString();
49
+
50
+ if (transformedChunk.includes('[__APOLLO_STATE__]')) {
51
+ transformedChunk = transformedChunk.replace(
52
+ '[__APOLLO_STATE__]',
53
+ serialize(this._apolloState, { isJSON: true }),
54
+ );
55
+ }
56
+ if (transformedChunk.includes('[__PRELOADED_STATE__]')) {
57
+ transformedChunk = transformedChunk.replace(
58
+ '[__PRELOADED_STATE__]',
59
+ serialize(this._reduxState, { isJSON: true }),
60
+ );
61
+ }
62
+ if (transformedChunk.includes('[__SLOT_FILLS__]')) {
63
+ transformedChunk = transformedChunk.replace('[__SLOT_FILLS__]', serialize(this._fills, { isJSON: true }));
64
+ }
65
+ if (transformedChunk.includes('[__STYLESHEET__]')) {
66
+ transformedChunk = transformedChunk.replace('[__STYLESHEET__]', this._styleSheet);
67
+ }
68
+
69
+ callback(null, transformedChunk);
70
+ }
71
+ }
72
+
73
+ export default async function handleRequest(
74
+ request: Request,
75
+ responseStatusCode: number,
76
+ responseHeaders: Headers,
77
+ remixContext: EntryContext,
78
+ // This is ignored so we can keep it in the template for visibility. Feel
79
+ // free to delete this parameter in your app if you're not using it!
80
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
81
+ loadContext: IAppLoadContext,
82
+ ) {
83
+ const instance = createInstance();
84
+ const lng = await i18next.getLocale(request);
85
+ const ns = i18next.getRouteNamespaces(remixContext);
86
+
87
+ // First, we create a new instance of i18next so every request will have a
88
+ // completely unique instance and not share any state.
89
+ if (config.i18n.enabled) {
90
+ await instance
91
+ .use(initReactI18next) // Tell our instance to use react-i18next
92
+ .use(Backend) // Setup our backend.init({
93
+ .init({
94
+ fallbackLng: config.i18n.fallbackLng,
95
+ defaultNS: config.i18n.defaultNS,
96
+ react: config.i18n.react,
97
+ supportedLngs: config.i18n.supportedLngs,
98
+ lng, // The locale we detected above
99
+ ns, // The namespaces the routes about to render want to use
100
+ backend: {
101
+ loadPath: resolve(config.i18n.backend.loadServerPath),
102
+ },
103
+ });
104
+ }
105
+
106
+ return isbot(request.headers.get('user-agent') || '')
107
+ ? handleBotRequest(request, responseStatusCode, responseHeaders, remixContext, loadContext, instance)
108
+ : handleBrowserRequest(request, responseStatusCode, responseHeaders, remixContext, loadContext, instance);
109
+ }
110
+
111
+ function handleBotRequest(
112
+ request: Request,
113
+ responseStatusCode: number,
114
+ responseHeaders: Headers,
115
+ remixContext: EntryContext,
116
+ loadContext: IAppLoadContext,
117
+ i18nInstance: i18next,
118
+ ) {
119
+ return new Promise((resolve, reject) => {
120
+ let shellRendered = false;
121
+ const { pipe, abort } = renderToPipeableStream(
122
+ <I18nextProvider i18n={i18nInstance}>
123
+ <RemixServer context={remixContext} url={request.url} abortDelay={ABORT_DELAY} />
124
+ </I18nextProvider>,
125
+ {
126
+ onAllReady() {
127
+ shellRendered = true;
128
+ const body = new PassThrough();
129
+ const stream = createReadableStreamFromReadable(body);
130
+
131
+ responseHeaders.set('Content-Type', 'text/html');
132
+
133
+ resolve(
134
+ new Response(stream, {
135
+ headers: responseHeaders,
136
+ status: responseStatusCode,
137
+ }),
138
+ );
139
+
140
+ pipe(body);
141
+ },
142
+ onShellError(error: unknown) {
143
+ reject(error);
144
+ },
145
+ onError(error: unknown) {
146
+ responseStatusCode = 500;
147
+ // Log streaming rendering errors from inside the shell. Don't log
148
+ // errors encountered during initial shell rendering since they'll
149
+ // reject and get logged in handleDocumentRequest.
150
+ if (shellRendered) {
151
+ console.error(error);
152
+ }
153
+ },
154
+ },
155
+ );
156
+
157
+ setTimeout(abort, ABORT_DELAY);
158
+ });
159
+ }
160
+
161
+ function handleBrowserRequest(
162
+ request: Request,
163
+ responseStatusCode: number,
164
+ responseHeaders: Headers,
165
+ remixContext: EntryContext,
166
+ loadContext: IAppLoadContext,
167
+ i18nInstance: i18next,
168
+ ) {
169
+ return new Promise((resolve, reject) => {
170
+ let shellRendered = false;
171
+ const slotFillContext = { fills: {} };
172
+ const { modules: clientModules, container, apolloClient: client, store } = loadContext;
173
+
174
+ const { pathname, search, hash } = new URL(request.url);
175
+ store.dispatch({
176
+ type: LOCATION_CHANGE,
177
+ payload: { location: { pathname, search, hash }, action: 'POP' },
178
+ });
179
+
180
+ const { pipe, abort } = renderToPipeableStream(
181
+ (
182
+ <I18nextProvider i18n={i18nInstance}>
183
+ <ReduxProvider store={store}>
184
+ <SlotFillProvider context={slotFillContext}>
185
+ <InversifyProvider container={container} modules={clientModules as any}>
186
+ <ApolloProvider client={client}>
187
+ <RemixServer
188
+ context={remixContext}
189
+ url={request.url}
190
+ abortDelay={ABORT_DELAY}
191
+ />
192
+ </ApolloProvider>
193
+ </InversifyProvider>
194
+ </SlotFillProvider>
195
+ </ReduxProvider>
196
+ </I18nextProvider>
197
+ ) as any,
198
+ {
199
+ onShellReady() {
200
+ shellRendered = true;
201
+ const body = new PassThrough();
202
+ const stream = createReadableStreamFromReadable(body);
203
+ const apolloState = { ...client.extract() };
204
+ const reduxState = { ...store.getState() };
205
+ const fills = Object.keys(slotFillContext.fills);
206
+
207
+ const transform = new ConstantsTransform(fills, apolloState, reduxState, []);
208
+
209
+ responseHeaders.set('Content-Type', 'text/html');
210
+
211
+ resolve(
212
+ new Response(stream, {
213
+ headers: responseHeaders,
214
+ status: responseStatusCode,
215
+ }),
216
+ );
217
+
218
+ pipe(transform).pipe(body);
219
+ },
220
+ onShellError(error: unknown) {
221
+ reject(error);
222
+ },
223
+ onError(error: unknown) {
224
+ responseStatusCode = 500;
225
+ // Log streaming rendering errors from inside the shell. Don't log
226
+ // errors encountered during initial shell rendering since they'll
227
+ // reject and get logged in handleDocumentRequest.
228
+ if (shellRendered) {
229
+ console.error(error);
230
+ }
231
+ reject(error);
232
+ },
233
+ },
234
+ );
235
+
236
+ setTimeout(abort, ABORT_DELAY);
237
+ });
238
+ }
@@ -0,0 +1,117 @@
1
+ import 'reflect-metadata';
2
+ import * as React from 'react';
3
+ import { Links, Meta, Outlet, Scripts, ScrollRestoration, useLoaderData, useRouteError, json } from '@remix-run/react';
4
+ import type { LinksFunction } from "@remix-run/node";
5
+ // @ts-ignore
6
+ import publicEnv from '@src/config/public-config';
7
+ import { PluginArea } from '@common-stack/client-react';
8
+ import { subscribeReduxRouter } from '@common-stack/remix-router-redux';
9
+ // @ts-ignore
10
+ import clientModules, { plugins } from '@app/frontend-stack-react/modules.js';
11
+ // @ts-ignore
12
+ import { useChangeLanguage } from 'remix-i18next/react';
13
+ import { useTranslation } from 'react-i18next';
14
+ // @ts-ignore
15
+ import { i18nextInstance as i18next } from '@app/frontend-stack-react/i18n-localization/i18next.server.js';
16
+ import stylesheet from "./tailwind.css?url";
17
+
18
+ export const links: LinksFunction = () => [
19
+ { rel: "stylesheet", href: stylesheet },
20
+ ];
21
+
22
+ export const loader = async ({ request }) => {
23
+ const locale = await i18next.getLocale(request);
24
+ return json({
25
+ __ENV__: publicEnv,
26
+ locale,
27
+ });
28
+ };
29
+
30
+ export const handle = {
31
+ i18n: 'common',
32
+ };
33
+
34
+ export function shouldRevalidate(params: any) {
35
+ return params.defaultShouldRevalidate && params.currentUrl.pathname !== params.nextUrl.pathname;
36
+ }
37
+
38
+ export function Layout({ children }: { children: React.ReactNode }) {
39
+ const data = useLoaderData<{ locale: any }>();
40
+ const locale = data?.locale;
41
+
42
+ const { i18n } = useTranslation();
43
+
44
+ useChangeLanguage(locale);
45
+
46
+ React.useEffect(() => {
47
+ subscribeReduxRouter({ store: (window as any).__remixStore, router: window.__remixRouter } as any);
48
+ }, []);
49
+
50
+ const getConstants = () => {
51
+ if (typeof window === 'undefined') {
52
+ return (
53
+ <>
54
+ <script
55
+ dangerouslySetInnerHTML={{
56
+ __html: `window.__ENV__ = ${JSON.stringify((data as any)?.__ENV__)}`,
57
+ }}
58
+ />
59
+ <script
60
+ src="https://cdnjs.cloudflare.com/ajax/libs/reflect-metadata/0.1.13/Reflect.min.js"
61
+ integrity="sha512-jvbPH2TH5BSZumEfOJZn9IV+5bSwwN+qG4dvthYe3KCGC3/9HmxZ4phADbt9Pfcp+XSyyfc2vGZ/RMsSUZ9tbQ=="
62
+ crossOrigin="anonymous"
63
+ referrerPolicy="no-referrer"
64
+ ></script>
65
+ <script>window.__APOLLO_STATE__=[__APOLLO_STATE__]</script>
66
+ <script>window.__PRELOADED_STATE__=[__PRELOADED_STATE__]</script>
67
+ <script>window.__SLOT_FILLS__=[__SLOT_FILLS__]</script>
68
+ <script
69
+ dangerouslySetInnerHTML={{
70
+ __html: `if (global === undefined) { var global = window; }`,
71
+ }}
72
+ />
73
+ </>
74
+ );
75
+ }
76
+ return null;
77
+ };
78
+
79
+ return (
80
+ <html lang={locale} dir={i18n.dir()}>
81
+ <head>
82
+ <meta charSet="utf-8" />
83
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
84
+ <Meta />
85
+ <Links />
86
+ {typeof window === 'undefined' ? `[__STYLESHEET__]` : ''}
87
+ </head>
88
+ <body>
89
+ <PluginArea />
90
+ {clientModules.getWrappedRoot(children)}
91
+ <ScrollRestoration />
92
+ <Scripts />
93
+ {getConstants()}
94
+ </body>
95
+ </html>
96
+ );
97
+ }
98
+
99
+ const TestComponent = () => {
100
+ return (
101
+ <div className="min-h-screen flex items-center justify-center bg-gray-100">
102
+ <div className="p-6 max-w-sm mx-auto bg-white rounded-xl shadow-md space-y-4">
103
+ <h1 className="text-2xl font-bold text-center">Hello, Tailwind CSS!</h1>
104
+ <p className="text-gray-500 text-center">This is a test page using React and Tailwind CSS.</p>
105
+ </div>
106
+ </div>
107
+ );
108
+ }
109
+
110
+ export default function App() {
111
+ return (
112
+ // <Outlet />
113
+ <TestComponent />
114
+ );
115
+ }
116
+
117
+ // export { ErrorBoundary };
@@ -0,0 +1,3 @@
1
+ @tailwind base;
2
+ @tailwind components;
3
+ @tailwind utilities;
@@ -1,46 +1,64 @@
1
- 'use strict';Object.defineProperty(exports,'__esModule',{value:true});var tslib=require('tslib'),devkit=require('@nx/devkit'),path=require('path'),index=require('../../utils/index.cjs'),index$1=require('../../constants/index.cjs');function _interopNamespaceDefault(e){var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var path__namespace=/*#__PURE__*/_interopNamespaceDefault(path);const DEFAULT_FRAMEWORK = index$1.FRAMEWORK_ANTUI;
1
+ 'use strict';Object.defineProperty(exports,'__esModule',{value:true});var tslib=require('tslib'),devkit=require('@nx/devkit'),path=require('path'),setupConfig_cjs=require('@common-stack/rollup-vite-utils/lib/utils/setupConfig.cjs'),index=require('../../utils/index.cjs'),index$1=require('../../constants/index.cjs');function _interopNamespaceDefault(e){var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var path__namespace=/*#__PURE__*/_interopNamespaceDefault(path);const DEFAULT_FRAMEWORK = index$1.FRAMEWORK_ANTUI;
2
2
  function addFrontendGenerator(tree, options) {
3
3
  return tslib.__awaiter(this, void 0, void 0, function* () {
4
- var _a;
5
- // const basePath = process.cwd();
6
4
  const projectName = index.isValid(options.ns) ? `frontend-${index.getValid(options.ns)}-server` : 'frontend-server';
7
- const projectRoot = index.isValid(options.directory) ? `${index.getValid(options.directory)}/${projectName}` : projectName;
8
- const projectSrc = `${projectRoot}/src`;
9
- const framework = (_a = index.getValid(options.framework)) !== null && _a !== void 0 ? _a : DEFAULT_FRAMEWORK;
10
- console.log('UI framework specified: ', framework);
11
- // resetProject(`${basePath}/${projectRoot}`);
12
- // addProjectConfiguration(tree, framework, {
13
- // root: projectRoot,
14
- // projectType: 'library',
15
- // sourceRoot: projectSrc,
16
- // targets: {},
17
- // });
18
- devkit.generateFiles(tree, path__namespace.join(__dirname, 'templates'), projectRoot, {});
19
- devkit.generateFiles(tree, path__namespace.join(__dirname, 'frameworks', framework), projectSrc, options);
20
- devkit.updateJson(tree, `${projectRoot}/package.json`, (packageJson) => {
21
- packageJson['name'] = projectName;
22
- if (framework === index$1.FRAMEWORK_ANTUI) {
23
- packageJson['dependencies']["@admin-layout/ant-design-pro"] = "latest";
24
- packageJson['dependencies']["@admin-layout/ant-ui"] = "latest";
25
- packageJson['dependencies']["@adminide-stack/user-auth0-browser-ant"] = "latest";
26
- }
27
- else if (framework === index$1.FRAMEWORK_CHAKRAUI) {
28
- packageJson['dependencies']["@admin-layout/chakra-design-pro"] = "latest";
29
- packageJson['dependencies']["@admin-layout/chakra-ui"] = "latest";
30
- packageJson['dependencies']["@adminide-stack/user-auth0-browser-chakra"] = "latest";
31
- }
32
- return packageJson;
33
- });
34
- devkit.updateJson(tree, `${projectRoot}/config.json`, (configJson) => {
35
- configJson['uiFramework'] = framework;
36
- if (framework === index$1.FRAMEWORK_ANTUI) {
37
- configJson['modules'].push("@admin-layout/ant-design-pro");
38
- }
39
- else if (framework === index$1.FRAMEWORK_CHAKRAUI) {
40
- configJson['modules'].push("@admin-layout/chakra-design-pro");
41
- }
42
- return configJson;
43
- });
44
- yield devkit.formatFiles(tree);
5
+ const configs = Object.assign(Object.assign({}, options), { name: projectName });
6
+ return yield generateFrontend(tree, configs);
45
7
  });
46
- }exports.addFrontendGenerator=addFrontendGenerator;exports.default=addFrontendGenerator;//# sourceMappingURL=generator.cjs.map
8
+ }
9
+ const generateFrontend = (tree, options) => tslib.__awaiter(void 0, void 0, void 0, function* () {
10
+ var _a, _b;
11
+ const projectName = (_a = index.getValid(options.name)) !== null && _a !== void 0 ? _a : 'frontend-server';
12
+ const projectRoot = index.isValid(options.directory) ? `${index.getValid(options.directory)}/${projectName}` : projectName;
13
+ const projectSrc = `${projectRoot}/src`;
14
+ const framework = (_b = index.getValid(options.framework)) !== null && _b !== void 0 ? _b : DEFAULT_FRAMEWORK;
15
+ console.log('UI framework specified: ', framework);
16
+ // resetProject(`${basePath}/${projectRoot}`);
17
+ // addProjectConfiguration(tree, framework, {
18
+ // root: projectRoot,
19
+ // projectType: 'library',
20
+ // sourceRoot: projectSrc,
21
+ // targets: {},
22
+ // });
23
+ devkit.generateFiles(tree, path__namespace.join(__dirname, 'templates'), projectRoot, {});
24
+ devkit.generateFiles(tree, path__namespace.join(__dirname, 'frameworks', framework), projectSrc, options);
25
+ devkit.updateJson(tree, `${projectRoot}/package.json`, (packageJson) => {
26
+ packageJson['name'] = projectName;
27
+ if (framework === index$1.FRAMEWORK_ANTUI) {
28
+ packageJson['dependencies']["@admin-layout/ant-design-pro"] = "latest";
29
+ packageJson['dependencies']["@admin-layout/ant-ui"] = "latest";
30
+ packageJson['dependencies']["@adminide-stack/user-auth0-browser-ant"] = "latest";
31
+ packageJson['dependencies']["@ant-design/pro-layout"] = "^7.6.1";
32
+ packageJson['dependencies']["@ant-design/static-style-extract"] = "^1.0.2";
33
+ packageJson['dependencies']["antd"] = "^5.14.0";
34
+ }
35
+ else if (framework === index$1.FRAMEWORK_CHAKRAUI) {
36
+ packageJson['dependencies']["@admin-layout/chakra-design-pro"] = "latest";
37
+ packageJson['dependencies']["@admin-layout/chakra-ui"] = "latest";
38
+ packageJson['dependencies']["@adminide-stack/user-auth0-browser-chakra"] = "latest";
39
+ packageJson['dependencies']["@emotion/css"] = "^11.10.0";
40
+ packageJson['dependencies']["@emotion/styled"] = "^11.10.4";
41
+ }
42
+ else if (framework === index$1.FRAMEWORK_TAILWINDUI) {
43
+ packageJson['devDependencies']["tailwindcss"] = "^3.4.10";
44
+ packageJson['devDependencies']["postcss"] = "^8.4.41";
45
+ packageJson['devDependencies']["autoprefixer"] = "^10.4.20";
46
+ }
47
+ return packageJson;
48
+ });
49
+ devkit.updateJson(tree, `${projectRoot}/config.json`, (configJson) => {
50
+ configJson['uiFramework'] = framework;
51
+ if (framework === index$1.FRAMEWORK_ANTUI) {
52
+ configJson['modules'].push("@admin-layout/ant-design-pro");
53
+ }
54
+ else if (framework === index$1.FRAMEWORK_CHAKRAUI) {
55
+ configJson['modules'].push("@admin-layout/chakra-design-pro");
56
+ }
57
+ if (options['config.json']) {
58
+ const addtionalConfigs = options['config.json'];
59
+ configJson = setupConfig_cjs.deepMerge(configJson, addtionalConfigs);
60
+ }
61
+ return configJson;
62
+ });
63
+ yield devkit.formatFiles(tree);
64
+ });exports.addFrontendGenerator=addFrontendGenerator;exports.default=addFrontendGenerator;exports.generateFrontend=generateFrontend;//# sourceMappingURL=generator.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"generator.cjs","sources":["../../../src/generators/add-frontend/generator.ts"],"sourcesContent":[null],"names":["FRAMEWORK_ANTUI","isValid","getValid","generateFiles","path","updateJson","FRAMEWORK_CHAKRAUI","formatFiles"],"mappings":"qkBAMA,MAAM,iBAAiB,GAAGA,uBAAe,CAAC;AAEpB,SAAA,oBAAoB,CAAC,IAAU,EAAE,OAAmC,EAAA;;;;QAEtF,MAAM,WAAW,GAAGC,aAAO,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,YAAYC,cAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,SAAS,GAAG,iBAAiB,CAAC;QACxG,MAAM,WAAW,GAAGD,aAAO,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAA,EAAGC,cAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA,CAAA,EAAI,WAAW,CAAA,CAAE,GAAG,WAAW,CAAC;AAC/G,QAAA,MAAM,UAAU,GAAG,CAAG,EAAA,WAAW,MAAM,CAAC;QAExC,MAAM,SAAS,GAAG,CAAA,EAAA,GAAAA,cAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,iBAAiB,CAAC;AACnE,QAAA,OAAO,CAAC,GAAG,CAAC,0BAA0B,EAAE,SAAS,CAAC,CAAC;;;;;;;;AAWnD,QAAAC,oBAAa,CAAC,IAAI,EAAEC,eAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC;AACxE,QAAAD,oBAAa,CAAC,IAAI,EAAEC,eAAI,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,EAAE,SAAS,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;QACxFC,iBAAU,CAAC,IAAI,EAAE,CAAG,EAAA,WAAW,eAAe,EAAE,CAAC,WAAW,KAAI;AAC5D,YAAA,WAAW,CAAC,MAAM,CAAC,GAAG,WAAW,CAAC;AAClC,YAAA,IAAI,SAAS,KAAKL,uBAAe,EAAE;gBAC/B,WAAW,CAAC,cAAc,CAAC,CAAC,8BAA8B,CAAC,GAAG,QAAQ,CAAC;gBACvE,WAAW,CAAC,cAAc,CAAC,CAAC,sBAAsB,CAAC,GAAG,QAAQ,CAAC;gBAC/D,WAAW,CAAC,cAAc,CAAC,CAAC,wCAAwC,CAAC,GAAG,QAAQ,CAAC;aACpF;AAAM,iBAAA,IAAI,SAAS,KAAKM,0BAAkB,EAAE;gBACzC,WAAW,CAAC,cAAc,CAAC,CAAC,iCAAiC,CAAC,GAAG,QAAQ,CAAC;gBAC1E,WAAW,CAAC,cAAc,CAAC,CAAC,yBAAyB,CAAC,GAAG,QAAQ,CAAC;gBAClE,WAAW,CAAC,cAAc,CAAC,CAAC,2CAA2C,CAAC,GAAG,QAAQ,CAAC;aACvF;AAED,YAAA,OAAO,WAAW,CAAC;AACvB,SAAC,CAAC,CAAC;QACHD,iBAAU,CAAC,IAAI,EAAE,CAAG,EAAA,WAAW,cAAc,EAAE,CAAC,UAAU,KAAI;AAC1D,YAAA,UAAU,CAAC,aAAa,CAAC,GAAG,SAAS,CAAC;AACtC,YAAA,IAAI,SAAS,KAAKL,uBAAe,EAAE;gBAC/B,UAAU,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;aAC9D;AAAM,iBAAA,IAAI,SAAS,KAAKM,0BAAkB,EAAE;gBACzC,UAAU,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;aACjE;AAED,YAAA,OAAO,UAAU,CAAC;AACtB,SAAC,CAAC,CAAC;AAEH,QAAA,MAAMC,kBAAW,CAAC,IAAI,CAAC,CAAC;KAC3B,CAAA,CAAA;AAAA"}
1
+ {"version":3,"file":"generator.cjs","sources":["../../../src/generators/add-frontend/generator.ts"],"sourcesContent":[null],"names":["FRAMEWORK_ANTUI","isValid","getValid","__awaiter","generateFiles","path","updateJson","FRAMEWORK_CHAKRAUI","FRAMEWORK_TAILWINDUI","deepMerge","formatFiles"],"mappings":"0pBAQA,MAAM,iBAAiB,GAAGA,uBAAe,CAAC;AAEpB,SAAA,oBAAoB,CAAC,IAAU,EAAE,OAAmC,EAAA;;QACtF,MAAM,WAAW,GAAGC,aAAO,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,YAAYC,cAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,SAAS,GAAG,iBAAiB,CAAC;QACxG,MAAM,OAAO,mCAAY,OAAO,CAAA,EAAA,EAAE,IAAI,EAAE,WAAW,GAAC,CAAC;AAErD,QAAA,OAAO,MAAM,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;KAChD,CAAA,CAAA;AAAA,CAAA;MAEY,gBAAgB,GAAG,CAAO,IAAU,EAAE,OAAY,KAAIC,eAAA,CAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,aAAA;;IAC/D,MAAM,WAAW,GAAG,CAAA,EAAA,GAAAD,cAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,iBAAiB,CAAC;IAChE,MAAM,WAAW,GAAGD,aAAO,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAA,EAAGC,cAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA,CAAA,EAAI,WAAW,CAAA,CAAE,GAAG,WAAW,CAAC;AAC/G,IAAA,MAAM,UAAU,GAAG,CAAG,EAAA,WAAW,MAAM,CAAC;IAExC,MAAM,SAAS,GAAG,CAAA,EAAA,GAAAA,cAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,iBAAiB,CAAC;AACnE,IAAA,OAAO,CAAC,GAAG,CAAC,0BAA0B,EAAE,SAAS,CAAC,CAAC;;;;;;;;AAWnD,IAAAE,oBAAa,CAAC,IAAI,EAAEC,eAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC;AACxE,IAAAD,oBAAa,CAAC,IAAI,EAAEC,eAAI,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,EAAE,SAAS,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;IACxFC,iBAAU,CAAC,IAAI,EAAE,CAAG,EAAA,WAAW,eAAe,EAAE,CAAC,WAAW,KAAI;AAC5D,QAAA,WAAW,CAAC,MAAM,CAAC,GAAG,WAAW,CAAC;AAClC,QAAA,IAAI,SAAS,KAAKN,uBAAe,EAAE;YAC/B,WAAW,CAAC,cAAc,CAAC,CAAC,8BAA8B,CAAC,GAAG,QAAQ,CAAC;YACvE,WAAW,CAAC,cAAc,CAAC,CAAC,sBAAsB,CAAC,GAAG,QAAQ,CAAC;YAC/D,WAAW,CAAC,cAAc,CAAC,CAAC,wCAAwC,CAAC,GAAG,QAAQ,CAAC;YACjF,WAAW,CAAC,cAAc,CAAC,CAAC,wBAAwB,CAAC,GAAG,QAAQ,CAAC;YACjE,WAAW,CAAC,cAAc,CAAC,CAAC,kCAAkC,CAAC,GAAG,QAAQ,CAAC;YAC3E,WAAW,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;SACnD;AAAM,aAAA,IAAI,SAAS,KAAKO,0BAAkB,EAAE;YACzC,WAAW,CAAC,cAAc,CAAC,CAAC,iCAAiC,CAAC,GAAG,QAAQ,CAAC;YAC1E,WAAW,CAAC,cAAc,CAAC,CAAC,yBAAyB,CAAC,GAAG,QAAQ,CAAC;YAClE,WAAW,CAAC,cAAc,CAAC,CAAC,2CAA2C,CAAC,GAAG,QAAQ,CAAC;YACpF,WAAW,CAAC,cAAc,CAAC,CAAC,cAAc,CAAC,GAAG,UAAU,CAAC;YACzD,WAAW,CAAC,cAAc,CAAC,CAAC,iBAAiB,CAAC,GAAG,UAAU,CAAC;SAC/D;AAAM,aAAA,IAAI,SAAS,KAAKC,4BAAoB,EAAE;YAC3C,WAAW,CAAC,iBAAiB,CAAC,CAAC,aAAa,CAAC,GAAG,SAAS,CAAC;YAC1D,WAAW,CAAC,iBAAiB,CAAC,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC;YACtD,WAAW,CAAC,iBAAiB,CAAC,CAAC,cAAc,CAAC,GAAG,UAAU,CAAC;SAC/D;AAED,QAAA,OAAO,WAAW,CAAC;AACvB,KAAC,CAAC,CAAC;IACHF,iBAAU,CAAC,IAAI,EAAE,CAAG,EAAA,WAAW,cAAc,EAAE,CAAC,UAAU,KAAI;AAC1D,QAAA,UAAU,CAAC,aAAa,CAAC,GAAG,SAAS,CAAC;AACtC,QAAA,IAAI,SAAS,KAAKN,uBAAe,EAAE;YAC/B,UAAU,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;SAC9D;AAAM,aAAA,IAAI,SAAS,KAAKO,0BAAkB,EAAE;YACzC,UAAU,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;SACjE;AAED,QAAA,IAAI,OAAO,CAAC,aAAa,CAAC,EAAE;AACxB,YAAA,MAAM,gBAAgB,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;AAChD,YAAA,UAAU,GAAGE,yBAAS,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC;SACxD;AAED,QAAA,OAAO,UAAU,CAAC;AACtB,KAAC,CAAC,CAAC;AAEH,IAAA,MAAMC,kBAAW,CAAC,IAAI,CAAC,CAAC;AAC5B,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import { Tree } from '@nx/devkit';
2
2
  import { AddFrontendGeneratorSchema } from './schema';
3
3
  export declare function addFrontendGenerator(tree: Tree, options: AddFrontendGeneratorSchema): Promise<void>;
4
+ export declare const generateFrontend: (tree: Tree, options: any) => Promise<void>;
4
5
  export default addFrontendGenerator;
@@ -1,46 +1,64 @@
1
- import {__awaiter}from'tslib';import {generateFiles,updateJson,formatFiles}from'@nx/devkit';import*as path from'path';import {isValid,getValid}from'../../utils/index.mjs';import {FRAMEWORK_ANTUI,FRAMEWORK_CHAKRAUI}from'../../constants/index.mjs';const DEFAULT_FRAMEWORK = FRAMEWORK_ANTUI;
1
+ import {__awaiter}from'tslib';import {generateFiles,updateJson,formatFiles}from'@nx/devkit';import*as path from'path';import {deepMerge}from'@common-stack/rollup-vite-utils/lib/utils/setupConfig.cjs';import {isValid,getValid}from'../../utils/index.mjs';import {FRAMEWORK_ANTUI,FRAMEWORK_CHAKRAUI,FRAMEWORK_TAILWINDUI}from'../../constants/index.mjs';const DEFAULT_FRAMEWORK = FRAMEWORK_ANTUI;
2
2
  function addFrontendGenerator(tree, options) {
3
3
  return __awaiter(this, void 0, void 0, function* () {
4
- var _a;
5
- // const basePath = process.cwd();
6
4
  const projectName = isValid(options.ns) ? `frontend-${getValid(options.ns)}-server` : 'frontend-server';
7
- const projectRoot = isValid(options.directory) ? `${getValid(options.directory)}/${projectName}` : projectName;
8
- const projectSrc = `${projectRoot}/src`;
9
- const framework = (_a = getValid(options.framework)) !== null && _a !== void 0 ? _a : DEFAULT_FRAMEWORK;
10
- console.log('UI framework specified: ', framework);
11
- // resetProject(`${basePath}/${projectRoot}`);
12
- // addProjectConfiguration(tree, framework, {
13
- // root: projectRoot,
14
- // projectType: 'library',
15
- // sourceRoot: projectSrc,
16
- // targets: {},
17
- // });
18
- generateFiles(tree, path.join(__dirname, 'templates'), projectRoot, {});
19
- generateFiles(tree, path.join(__dirname, 'frameworks', framework), projectSrc, options);
20
- updateJson(tree, `${projectRoot}/package.json`, (packageJson) => {
21
- packageJson['name'] = projectName;
22
- if (framework === FRAMEWORK_ANTUI) {
23
- packageJson['dependencies']["@admin-layout/ant-design-pro"] = "latest";
24
- packageJson['dependencies']["@admin-layout/ant-ui"] = "latest";
25
- packageJson['dependencies']["@adminide-stack/user-auth0-browser-ant"] = "latest";
26
- }
27
- else if (framework === FRAMEWORK_CHAKRAUI) {
28
- packageJson['dependencies']["@admin-layout/chakra-design-pro"] = "latest";
29
- packageJson['dependencies']["@admin-layout/chakra-ui"] = "latest";
30
- packageJson['dependencies']["@adminide-stack/user-auth0-browser-chakra"] = "latest";
31
- }
32
- return packageJson;
33
- });
34
- updateJson(tree, `${projectRoot}/config.json`, (configJson) => {
35
- configJson['uiFramework'] = framework;
36
- if (framework === FRAMEWORK_ANTUI) {
37
- configJson['modules'].push("@admin-layout/ant-design-pro");
38
- }
39
- else if (framework === FRAMEWORK_CHAKRAUI) {
40
- configJson['modules'].push("@admin-layout/chakra-design-pro");
41
- }
42
- return configJson;
43
- });
44
- yield formatFiles(tree);
5
+ const configs = Object.assign(Object.assign({}, options), { name: projectName });
6
+ return yield generateFrontend(tree, configs);
45
7
  });
46
- }export{addFrontendGenerator,addFrontendGenerator as default};//# sourceMappingURL=generator.mjs.map
8
+ }
9
+ const generateFrontend = (tree, options) => __awaiter(void 0, void 0, void 0, function* () {
10
+ var _a, _b;
11
+ const projectName = (_a = getValid(options.name)) !== null && _a !== void 0 ? _a : 'frontend-server';
12
+ const projectRoot = isValid(options.directory) ? `${getValid(options.directory)}/${projectName}` : projectName;
13
+ const projectSrc = `${projectRoot}/src`;
14
+ const framework = (_b = getValid(options.framework)) !== null && _b !== void 0 ? _b : DEFAULT_FRAMEWORK;
15
+ console.log('UI framework specified: ', framework);
16
+ // resetProject(`${basePath}/${projectRoot}`);
17
+ // addProjectConfiguration(tree, framework, {
18
+ // root: projectRoot,
19
+ // projectType: 'library',
20
+ // sourceRoot: projectSrc,
21
+ // targets: {},
22
+ // });
23
+ generateFiles(tree, path.join(__dirname, 'templates'), projectRoot, {});
24
+ generateFiles(tree, path.join(__dirname, 'frameworks', framework), projectSrc, options);
25
+ updateJson(tree, `${projectRoot}/package.json`, (packageJson) => {
26
+ packageJson['name'] = projectName;
27
+ if (framework === FRAMEWORK_ANTUI) {
28
+ packageJson['dependencies']["@admin-layout/ant-design-pro"] = "latest";
29
+ packageJson['dependencies']["@admin-layout/ant-ui"] = "latest";
30
+ packageJson['dependencies']["@adminide-stack/user-auth0-browser-ant"] = "latest";
31
+ packageJson['dependencies']["@ant-design/pro-layout"] = "^7.6.1";
32
+ packageJson['dependencies']["@ant-design/static-style-extract"] = "^1.0.2";
33
+ packageJson['dependencies']["antd"] = "^5.14.0";
34
+ }
35
+ else if (framework === FRAMEWORK_CHAKRAUI) {
36
+ packageJson['dependencies']["@admin-layout/chakra-design-pro"] = "latest";
37
+ packageJson['dependencies']["@admin-layout/chakra-ui"] = "latest";
38
+ packageJson['dependencies']["@adminide-stack/user-auth0-browser-chakra"] = "latest";
39
+ packageJson['dependencies']["@emotion/css"] = "^11.10.0";
40
+ packageJson['dependencies']["@emotion/styled"] = "^11.10.4";
41
+ }
42
+ else if (framework === FRAMEWORK_TAILWINDUI) {
43
+ packageJson['devDependencies']["tailwindcss"] = "^3.4.10";
44
+ packageJson['devDependencies']["postcss"] = "^8.4.41";
45
+ packageJson['devDependencies']["autoprefixer"] = "^10.4.20";
46
+ }
47
+ return packageJson;
48
+ });
49
+ updateJson(tree, `${projectRoot}/config.json`, (configJson) => {
50
+ configJson['uiFramework'] = framework;
51
+ if (framework === FRAMEWORK_ANTUI) {
52
+ configJson['modules'].push("@admin-layout/ant-design-pro");
53
+ }
54
+ else if (framework === FRAMEWORK_CHAKRAUI) {
55
+ configJson['modules'].push("@admin-layout/chakra-design-pro");
56
+ }
57
+ if (options['config.json']) {
58
+ const addtionalConfigs = options['config.json'];
59
+ configJson = deepMerge(configJson, addtionalConfigs);
60
+ }
61
+ return configJson;
62
+ });
63
+ yield formatFiles(tree);
64
+ });export{addFrontendGenerator,addFrontendGenerator as default,generateFrontend};//# sourceMappingURL=generator.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"generator.mjs","sources":["../../../src/generators/add-frontend/generator.ts"],"sourcesContent":[null],"names":[],"mappings":"sPAMA,MAAM,iBAAiB,GAAG,eAAe,CAAC;AAEpB,SAAA,oBAAoB,CAAC,IAAU,EAAE,OAAmC,EAAA;;;;QAEtF,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,YAAY,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,SAAS,GAAG,iBAAiB,CAAC;QACxG,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAA,EAAG,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA,CAAA,EAAI,WAAW,CAAA,CAAE,GAAG,WAAW,CAAC;AAC/G,QAAA,MAAM,UAAU,GAAG,CAAG,EAAA,WAAW,MAAM,CAAC;QAExC,MAAM,SAAS,GAAG,CAAA,EAAA,GAAA,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,iBAAiB,CAAC;AACnE,QAAA,OAAO,CAAC,GAAG,CAAC,0BAA0B,EAAE,SAAS,CAAC,CAAC;;;;;;;;AAWnD,QAAA,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC;AACxE,QAAA,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,EAAE,SAAS,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;QACxF,UAAU,CAAC,IAAI,EAAE,CAAG,EAAA,WAAW,eAAe,EAAE,CAAC,WAAW,KAAI;AAC5D,YAAA,WAAW,CAAC,MAAM,CAAC,GAAG,WAAW,CAAC;AAClC,YAAA,IAAI,SAAS,KAAK,eAAe,EAAE;gBAC/B,WAAW,CAAC,cAAc,CAAC,CAAC,8BAA8B,CAAC,GAAG,QAAQ,CAAC;gBACvE,WAAW,CAAC,cAAc,CAAC,CAAC,sBAAsB,CAAC,GAAG,QAAQ,CAAC;gBAC/D,WAAW,CAAC,cAAc,CAAC,CAAC,wCAAwC,CAAC,GAAG,QAAQ,CAAC;aACpF;AAAM,iBAAA,IAAI,SAAS,KAAK,kBAAkB,EAAE;gBACzC,WAAW,CAAC,cAAc,CAAC,CAAC,iCAAiC,CAAC,GAAG,QAAQ,CAAC;gBAC1E,WAAW,CAAC,cAAc,CAAC,CAAC,yBAAyB,CAAC,GAAG,QAAQ,CAAC;gBAClE,WAAW,CAAC,cAAc,CAAC,CAAC,2CAA2C,CAAC,GAAG,QAAQ,CAAC;aACvF;AAED,YAAA,OAAO,WAAW,CAAC;AACvB,SAAC,CAAC,CAAC;QACH,UAAU,CAAC,IAAI,EAAE,CAAG,EAAA,WAAW,cAAc,EAAE,CAAC,UAAU,KAAI;AAC1D,YAAA,UAAU,CAAC,aAAa,CAAC,GAAG,SAAS,CAAC;AACtC,YAAA,IAAI,SAAS,KAAK,eAAe,EAAE;gBAC/B,UAAU,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;aAC9D;AAAM,iBAAA,IAAI,SAAS,KAAK,kBAAkB,EAAE;gBACzC,UAAU,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;aACjE;AAED,YAAA,OAAO,UAAU,CAAC;AACtB,SAAC,CAAC,CAAC;AAEH,QAAA,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC;KAC3B,CAAA,CAAA;AAAA"}
1
+ {"version":3,"file":"generator.mjs","sources":["../../../src/generators/add-frontend/generator.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -17,7 +17,7 @@
17
17
  "framework": {
18
18
  "type": "string",
19
19
  "description": "",
20
- "x-prompt": "What UI framework would you like to use in [antui, chakraui]?"
20
+ "x-prompt": "What UI framework would you like to use in [antui, chakraui, tailwindui]?"
21
21
  }
22
22
  },
23
23
  "required": ["ns", "directory", "framework"]
@@ -1,5 +1,5 @@
1
1
  # The official nodejs docker image
2
- FROM node:18.20-bullseye
2
+ FROM node:20:16-bullseye
3
3
  ENV PYTHON /usr/bin/python
4
4
 
5
5
  # Copy package.json only to temp folder, install its dependencies,