@common-stack/generate-plugin 5.0.6-alpha.5 → 5.0.6-alpha.8

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 (140) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/README.md +280 -10
  3. package/cde-config.json +86 -0
  4. package/lib/constants/index.cjs +2 -1
  5. package/lib/constants/index.cjs.map +1 -1
  6. package/lib/constants/index.d.ts +1 -0
  7. package/lib/constants/index.mjs +2 -1
  8. package/lib/constants/index.mjs.map +1 -1
  9. package/lib/generators/add-backend/files/CHANGELOG.md +0 -0
  10. package/lib/generators/add-backend/files/Dockerfile +1 -1
  11. package/lib/generators/add-backend/files/__tests__/test.ts.template +3 -2
  12. package/lib/generators/add-backend/files/package.json +2 -48
  13. package/lib/generators/add-backend/generator.cjs +21 -17
  14. package/lib/generators/add-backend/generator.cjs.map +1 -1
  15. package/lib/generators/add-backend/generator.d.ts +1 -0
  16. package/lib/generators/add-backend/generator.mjs +21 -17
  17. package/lib/generators/add-backend/generator.mjs.map +1 -1
  18. package/lib/generators/add-browser-package/files/package.json +1 -1
  19. package/lib/generators/add-browser-package/generator.cjs +14 -16
  20. package/lib/generators/add-browser-package/generator.cjs.map +1 -1
  21. package/lib/generators/add-browser-package/generator.d.ts +1 -0
  22. package/lib/generators/add-browser-package/generator.mjs +14 -16
  23. package/lib/generators/add-browser-package/generator.mjs.map +1 -1
  24. package/lib/generators/add-client-package/files/package.json +2 -3
  25. package/lib/generators/add-client-package/generator.cjs +14 -16
  26. package/lib/generators/add-client-package/generator.cjs.map +1 -1
  27. package/lib/generators/add-client-package/generator.d.ts +1 -0
  28. package/lib/generators/add-client-package/generator.mjs +14 -16
  29. package/lib/generators/add-client-package/generator.mjs.map +1 -1
  30. package/lib/generators/add-core-package/files/package.json +2 -3
  31. package/lib/generators/add-core-package/generator.cjs +14 -16
  32. package/lib/generators/add-core-package/generator.cjs.map +1 -1
  33. package/lib/generators/add-core-package/generator.d.ts +1 -0
  34. package/lib/generators/add-core-package/generator.mjs +14 -16
  35. package/lib/generators/add-core-package/generator.mjs.map +1 -1
  36. package/lib/generators/add-frontend/frameworks/chakraui/entry.client.tsx.template +30 -24
  37. package/lib/generators/add-frontend/frameworks/chakraui/entry.server.tsx.template +5 -8
  38. package/lib/generators/add-frontend/frameworks/chakraui/root.tsx.template +3 -3
  39. package/lib/generators/add-frontend/frameworks/tailwindui/entry.client.tsx.template +90 -0
  40. package/lib/generators/add-frontend/frameworks/tailwindui/entry.server.tsx.template +238 -0
  41. package/lib/generators/add-frontend/frameworks/tailwindui/root.tsx.template +117 -0
  42. package/lib/generators/add-frontend/frameworks/tailwindui/tailwind.css +3 -0
  43. package/lib/generators/add-frontend/generator.cjs +60 -42
  44. package/lib/generators/add-frontend/generator.cjs.map +1 -1
  45. package/lib/generators/add-frontend/generator.d.ts +1 -0
  46. package/lib/generators/add-frontend/generator.mjs +60 -42
  47. package/lib/generators/add-frontend/generator.mjs.map +1 -1
  48. package/lib/generators/add-frontend/schema.json +1 -1
  49. package/lib/generators/add-frontend/templates/package.json +18 -77
  50. package/lib/generators/add-frontend/templates/postcss.config.js +6 -0
  51. package/lib/generators/add-frontend/templates/tailwind.config.ts.template +12 -0
  52. package/lib/generators/add-fullstack/files/Jenkinsfile +3 -6
  53. package/lib/generators/add-fullstack/files/jest-mongodb-config.js +3 -2
  54. package/lib/generators/add-fullstack/files/jest.config.base.js +43 -4
  55. package/lib/generators/add-fullstack/files/jest.config.base.mjs +99 -0
  56. package/lib/generators/add-fullstack/files/jest.config.mongodb.mjs +3 -0
  57. package/lib/generators/add-fullstack/files/lint-staged.config.js +4 -1
  58. package/lib/generators/add-fullstack/files/nx.json +18 -13
  59. package/lib/generators/add-fullstack/files/package.json +12 -24
  60. package/lib/generators/add-fullstack/files/tools/cli/helpers/util.js +1 -1
  61. package/lib/generators/add-fullstack/files/tools/deploy-cli/updateLernaVersion.js +1 -1
  62. package/lib/generators/add-fullstack/files/tools/deploy-cli/updateYamlSettings.js +14 -15
  63. package/lib/generators/add-fullstack/files/tools/prettier.config.js +8 -0
  64. package/lib/generators/add-fullstack/files/tools/rollup/rollupPluginGenerateJson.mjs +48 -0
  65. package/lib/generators/add-fullstack/files/tools/rollup/rollupPluginModifyLibFiles.mjs +410 -0
  66. package/lib/generators/add-fullstack/files/tools/runLint.mjs +15 -0
  67. package/lib/generators/add-fullstack/files/tools/sortPackageJson.mjs +8 -2
  68. package/lib/generators/add-fullstack/files/tools/update-dependencies.mjs +95 -0
  69. package/lib/generators/add-fullstack/files/tools/update-dependency-link.mjs +138 -0
  70. package/lib/generators/add-fullstack/files/tools/update-dependency-version.js +104 -89
  71. package/lib/generators/add-fullstack/files/tools/updateUtils.mjs +77 -0
  72. package/lib/generators/add-fullstack/generator.cjs +71 -13
  73. package/lib/generators/add-fullstack/generator.cjs.map +1 -1
  74. package/lib/generators/add-fullstack/generator.mjs +71 -13
  75. package/lib/generators/add-fullstack/generator.mjs.map +1 -1
  76. package/lib/generators/add-fullstack/schema.json +9 -0
  77. package/lib/generators/add-fullstack/updates/index.d.ts +2 -0
  78. package/lib/generators/add-fullstack/updates/jenkinsfileUpdate.cjs +36 -0
  79. package/lib/generators/add-fullstack/updates/jenkinsfileUpdate.cjs.map +1 -0
  80. package/lib/generators/add-fullstack/updates/jenkinsfileUpdate.d.ts +1 -0
  81. package/lib/generators/add-fullstack/updates/jenkinsfileUpdate.mjs +36 -0
  82. package/lib/generators/add-fullstack/updates/jenkinsfileUpdate.mjs.map +1 -0
  83. package/lib/generators/add-fullstack/updates/packageJsonUpdate.cjs +8 -0
  84. package/lib/generators/add-fullstack/updates/packageJsonUpdate.cjs.map +1 -0
  85. package/lib/generators/add-fullstack/updates/packageJsonUpdate.d.ts +2 -0
  86. package/lib/generators/add-fullstack/updates/packageJsonUpdate.mjs +8 -0
  87. package/lib/generators/add-fullstack/updates/packageJsonUpdate.mjs.map +1 -0
  88. package/lib/generators/add-moleculer/files/package.json +3 -3
  89. package/lib/generators/add-moleculer/generator.cjs +14 -16
  90. package/lib/generators/add-moleculer/generator.cjs.map +1 -1
  91. package/lib/generators/add-moleculer/generator.d.ts +1 -0
  92. package/lib/generators/add-moleculer/generator.mjs +14 -16
  93. package/lib/generators/add-moleculer/generator.mjs.map +1 -1
  94. package/lib/generators/add-server-package/files/package.json +2 -2
  95. package/lib/generators/add-server-package/generator.cjs +14 -16
  96. package/lib/generators/add-server-package/generator.cjs.map +1 -1
  97. package/lib/generators/add-server-package/generator.d.ts +1 -0
  98. package/lib/generators/add-server-package/generator.mjs +14 -16
  99. package/lib/generators/add-server-package/generator.mjs.map +1 -1
  100. package/lib/index.cjs +1 -1
  101. package/lib/index.mjs +1 -1
  102. package/package.json +3 -2
  103. package/src/constants/index.ts +2 -1
  104. package/src/generators/add-backend/generator.ts +8 -4
  105. package/src/generators/add-browser-package/generator.ts +7 -6
  106. package/src/generators/add-client-package/generator.ts +7 -6
  107. package/src/generators/add-core-package/generator.ts +7 -6
  108. package/src/generators/add-frontend/frameworks/tailwindui/entry.client.tsx.template +90 -0
  109. package/src/generators/add-frontend/frameworks/tailwindui/entry.server.tsx.template +238 -0
  110. package/src/generators/add-frontend/frameworks/tailwindui/root.tsx.template +117 -0
  111. package/src/generators/add-frontend/frameworks/tailwindui/tailwind.css +3 -0
  112. package/src/generators/add-frontend/generator.ts +24 -2
  113. package/src/generators/add-frontend/schema.json +1 -1
  114. package/src/generators/add-fullstack/files/jest-mongodb-config.js +3 -2
  115. package/src/generators/add-fullstack/files/jest.config copy.js +27 -0
  116. package/src/generators/add-fullstack/files/jest.config.base.js +43 -4
  117. package/src/generators/add-fullstack/files/jest.config.base.mjs +99 -0
  118. package/src/generators/add-fullstack/files/jest.config.mongodb.mjs +3 -0
  119. package/src/generators/add-fullstack/files/lint-staged.config.js +4 -1
  120. package/src/generators/add-fullstack/files/nx.json +18 -13
  121. package/src/generators/add-fullstack/files/tools/cli/helpers/util.js +1 -1
  122. package/src/generators/add-fullstack/files/tools/deploy-cli/updateLernaVersion.js +1 -1
  123. package/src/generators/add-fullstack/files/tools/html-plugin-template.ejs +28 -0
  124. package/src/generators/add-fullstack/files/tools/prettier.config.js +8 -0
  125. package/src/generators/add-fullstack/files/tools/rollup/rollupPluginGenerateJson.mjs +48 -0
  126. package/src/generators/add-fullstack/files/tools/rollup/rollupPluginModifyLibFiles.mjs +410 -0
  127. package/src/generators/add-fullstack/files/tools/runLint.mjs +15 -0
  128. package/src/generators/add-fullstack/files/tools/sortPackageJson.mjs +0 -1
  129. package/src/generators/add-fullstack/files/tools/update-dependencies.mjs +95 -0
  130. package/src/generators/add-fullstack/files/tools/update-dependency-link.mjs +138 -0
  131. package/src/generators/add-fullstack/files/tools/update-dependency-version.js +104 -89
  132. package/src/generators/add-fullstack/files/tools/updateUtils.mjs +77 -0
  133. package/src/generators/add-fullstack/generator.ts +83 -1
  134. package/src/generators/add-fullstack/schema.d.ts +1 -0
  135. package/src/generators/add-fullstack/schema.json +4 -0
  136. package/src/generators/add-moleculer/files/package.json +1 -1
  137. package/src/generators/add-moleculer/generator.ts +7 -6
  138. package/src/generators/add-server-package/generator.ts +7 -6
  139. package/lib/generators/add-fullstack/files/tools/update-dependency-link.js +0 -107
  140. 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":"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"}
@@ -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"]