@common-stack/generate-plugin 8.2.2-alpha.0 → 8.2.2-alpha.2

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 (28) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/lib/generators/add-backend/files/package.json +1 -1
  3. package/lib/generators/add-frontend/frameworks/tailwindui/src/entry.client.tsx.template +11 -15
  4. package/lib/generators/add-frontend/frameworks/tailwindui/src/entry.server.tsx.template +9 -10
  5. package/lib/generators/add-frontend/frameworks/tailwindui/src/root.tsx.template +68 -42
  6. package/lib/generators/add-frontend/frameworks/tailwindui/tailwind.config.ts.template +288 -9
  7. package/lib/generators/add-frontend/templates/package.json +3 -7
  8. package/lib/generators/add-frontend/templates/server.js +11 -10
  9. package/lib/generators/add-frontend/templates/src/routes.ts.template +38 -0
  10. package/lib/generators/add-frontend/templates/vite.config.ts.template +91 -48
  11. package/lib/generators/add-fullstack/files/package.json +3 -3
  12. package/lib/generators/add-moleculer/files/package.json +5 -5
  13. package/lib/generators/add-package/files/browser/package.json +1 -1
  14. package/lib/generators/add-package/files/server/package.json +3 -3
  15. package/package.json +3 -3
  16. package/src/generators/add-backend/files/package.json +1 -1
  17. package/src/generators/add-frontend/frameworks/tailwindui/src/entry.client.tsx.template +11 -15
  18. package/src/generators/add-frontend/frameworks/tailwindui/src/entry.server.tsx.template +9 -10
  19. package/src/generators/add-frontend/frameworks/tailwindui/src/root.tsx.template +68 -42
  20. package/src/generators/add-frontend/frameworks/tailwindui/tailwind.config.ts.template +288 -9
  21. package/src/generators/add-frontend/templates/package.json +3 -7
  22. package/src/generators/add-frontend/templates/server.js +11 -10
  23. package/src/generators/add-frontend/templates/src/routes.ts.template +38 -0
  24. package/src/generators/add-frontend/templates/vite.config.ts.template +91 -48
  25. package/src/generators/add-fullstack/files/package.json +3 -3
  26. package/src/generators/add-moleculer/files/package.json +5 -5
  27. package/src/generators/add-package/files/browser/package.json +1 -1
  28. package/src/generators/add-package/files/server/package.json +3 -3
@@ -1,12 +1,291 @@
1
- import type { Config } from 'tailwindcss'
1
+ /** @type {import('tailwindcss').Config} */
2
+
3
+ import path from 'node:path';
2
4
 
3
5
  export default {
4
- content: [
5
- "./src/**/{**,.client,.server}/**/*.{js,jsx,ts,tsx}",
6
- ],
7
- theme: {
8
- extend: {},
9
- },
10
- plugins: [],
11
- } satisfies Config
6
+ darkMode: ['class'],
7
+ variants: {
8
+ typography: ['dark'],
9
+ },
10
+ content: [
11
+ './src/**/*.{ts,tsx}',
12
+ './src/**/{**,.client,.server}/**/*.{js,jsx,ts,tsx}',
13
+ './app/**/{**,.client,.server}/**/*.{js,jsx,ts,tsx}',
14
+ './node_modules/@tremor/**/*.{js,ts,jsx,tsx}',
15
+ ],
16
+ important: true,
17
+ theme: {
18
+ container: {
19
+ center: true,
20
+ padding: '2rem',
21
+ screens: {
22
+ '2xl': '1400px',
23
+ },
24
+ },
25
+ extend: {
26
+ colors: {
27
+ // light mode
28
+ tremor: {
29
+ brand: {
30
+ faint: '#eff6ff', // blue-50
31
+ muted: '#bfdbfe', // blue-200
32
+ subtle: '#60a5fa', // blue-400
33
+ DEFAULT: '#3b82f6', // blue-500
34
+ emphasis: '#1d4ed8', // blue-700
35
+ inverted: '#ffffff', // white
36
+ },
37
+ background: {
38
+ muted: '#f9fafb', // gray-50
39
+ subtle: '#f3f4f6', // gray-100
40
+ DEFAULT: '#ffffff', // white
41
+ emphasis: '#374151', // gray-700
42
+ },
43
+ border: {
44
+ DEFAULT: '#e5e7eb', // gray-200
45
+ },
46
+ ring: {
47
+ DEFAULT: '#e5e7eb', // gray-200
48
+ },
49
+ content: {
50
+ subtle: '#9ca3af', // gray-400
51
+ DEFAULT: '#6b7280', // gray-500
52
+ emphasis: '#374151', // gray-700
53
+ strong: '#111827', // gray-900
54
+ inverted: '#ffffff', // white
55
+ },
56
+ },
57
+ // dark mode
58
+ 'dark-tremor': {
59
+ brand: {
60
+ faint: '#0B1229', // custom
61
+ muted: '#172554', // blue-950
62
+ subtle: '#1e40af', // blue-800
63
+ DEFAULT: '#3b82f6', // blue-500
64
+ emphasis: '#60a5fa', // blue-400
65
+ inverted: '#030712', // gray-950
66
+ },
67
+ background: {
68
+ muted: '#131A2B', // custom
69
+ subtle: '#1f2937', // gray-800
70
+ DEFAULT: '#111827', // gray-900
71
+ emphasis: '#d1d5db', // gray-300
72
+ },
73
+ border: {
74
+ DEFAULT: '#1f2937', // gray-800
75
+ },
76
+ ring: {
77
+ DEFAULT: '#1f2937', // gray-800
78
+ },
79
+ content: {
80
+ subtle: '#4b5563', // gray-600
81
+ DEFAULT: '#6b7280', // gray-600
82
+ emphasis: '#e5e7eb', // gray-200
83
+ strong: '#f9fafb', // gray-50
84
+ inverted: '#000000', // black
85
+ },
86
+ },
87
+
88
+ border: 'hsl(var(--border))',
89
+ input: 'hsl(var(--input))',
90
+ ring: 'hsl(var(--ring))',
91
+ background: 'hsl(var(--background))',
92
+ foreground: 'hsl(var(--foreground))',
93
+ primary: {
94
+ DEFAULT: 'hsl(var(--primary))',
95
+ foreground: 'hsl(var(--primary-foreground))',
96
+ },
97
+ secondary: {
98
+ DEFAULT: 'hsl(var(--secondary))',
99
+ foreground: 'hsl(var(--secondary-foreground))',
100
+ },
101
+ destructive: {
102
+ DEFAULT: 'hsl(var(--destructive))',
103
+ foreground: 'hsl(var(--destructive-foreground))',
104
+ },
105
+ muted: {
106
+ DEFAULT: 'hsl(var(--muted))',
107
+ foreground: 'hsl(var(--muted-foreground))',
108
+ },
109
+ accent: {
110
+ DEFAULT: 'hsl(var(--accent))',
111
+ foreground: 'hsl(var(--accent-foreground))',
112
+ },
113
+ popover: {
114
+ DEFAULT: 'hsl(var(--popover))',
115
+ foreground: 'hsl(var(--popover-foreground))',
116
+ },
117
+ card: {
118
+ DEFAULT: 'hsl(var(--card))',
119
+ foreground: 'hsl(var(--card-foreground))',
120
+ },
121
+ },
122
+ borderRadius: {
123
+ lg: 'var(--radius)',
124
+ md: 'calc(var(--radius) - 2px)',
125
+ sm: 'calc(var(--radius) - 4px)',
126
+ 'tremor-small': '0.375rem',
127
+ 'tremor-default': '0.5rem',
128
+ 'tremor-full': '9999px',
129
+ },
130
+ keyframes: {
131
+ 'accordion-down': {
132
+ from: { height: 0 },
133
+ to: { height: 'var(--radix-accordion-content-height)' },
134
+ },
135
+ 'accordion-up': {
136
+ from: { height: 'var(--radix-accordion-content-height)' },
137
+ to: { height: 0 },
138
+ },
139
+ grid: {
140
+ '0%': { transform: 'translateY(-50%)' },
141
+ '100%': { transform: 'translateY(0)' },
142
+ },
143
+ marquee: {
144
+ from: { transform: 'translateX(0)' },
145
+ to: { transform: 'translateX(calc(-100% - var(--gap)))' },
146
+ },
147
+ 'marquee-vertical': {
148
+ from: { transform: 'translateY(0)' },
149
+ to: { transform: 'translateY(calc(-100% - var(--gap)))' },
150
+ },
151
+ shimmer: {
152
+ from: {
153
+ backgroundPosition: '0 0',
154
+ },
155
+ to: {
156
+ backgroundPosition: '-200% 0',
157
+ },
158
+ },
159
+ 'spin-around': {
160
+ '0%': {
161
+ transform: 'translateZ(0) rotate(0)',
162
+ },
163
+ '15%, 35%': {
164
+ transform: 'translateZ(0) rotate(90deg)',
165
+ },
166
+ '65%, 85%': {
167
+ transform: 'translateZ(0) rotate(270deg)',
168
+ },
169
+ '100%': {
170
+ transform: 'translateZ(0) rotate(360deg)',
171
+ },
172
+ },
173
+ slide: {
174
+ to: {
175
+ transform: 'translate(calc(100cqw - 100%), 0)',
176
+ },
177
+ },
178
+ },
179
+ animation: {
180
+ 'accordion-down': 'accordion-down 0.2s ease-out',
181
+ 'accordion-up': 'accordion-up 0.2s ease-out',
182
+ grid: 'grid 15s linear infinite',
183
+ marquee: 'marquee var(--duration) linear infinite',
184
+ 'marquee-vertical': 'marquee-vertical var(--duration) linear infinite',
185
+ shimmer: 'shimmer 2s linear infinite',
186
+ 'spin-around': 'spin-around calc(var(--speed) * 2) infinite linear',
187
+ slide: 'slide var(--speed) ease-in-out infinite alternate',
188
+ },
189
+ boxShadow: {
190
+ // light
191
+ 'tremor-input': '0 1px 2px 0 rgb(0 0 0 / 0.05)',
192
+ 'tremor-card': '0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)',
193
+ 'tremor-dropdown': '0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)',
194
+ // dark
195
+ 'dark-tremor-input': '0 1px 2px 0 rgb(0 0 0 / 0.05)',
196
+ 'dark-tremor-card': '0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)',
197
+ 'dark-tremor-dropdown': '0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)',
198
+ // custom shadows
199
+ glass: '0 8px 32px 0 rgba(31, 38, 135, 0.37)',
200
+ light: 'rgba(50, 50, 93, 0.25) 0px 6px 12px -2px, rgba(0, 0, 0, 0.3) 0px 3px 7px -3px',
201
+ dark: 'rgba(205, 205, 162, 0.25) 0px 6px 12px -2px, rgba(255,255,255, 0.3) 0px 3px 7px -3px',
202
+ },
203
+ fontSize: {
204
+ 'tremor-label': ['0.75rem'],
205
+ 'tremor-default': ['0.875rem', { lineHeight: '1.25rem' }],
206
+ 'tremor-title': ['1.125rem', { lineHeight: '1.75rem' }],
207
+ 'tremor-metric': ['1.875rem', { lineHeight: '2.25rem' }],
208
+ },
209
+ backgroundImage: {
210
+ 'gradient-radial': 'radial-gradient(var(--tw-gradient-stops))',
211
+ },
212
+ backdropBlur: {
213
+ glass: '4px',
214
+ },
215
+ },
216
+ },
217
+ safelist: [
218
+ {
219
+ pattern:
220
+ /^(bg-(?:slate|gray|zinc|neutral|stone|red|orange|amber|yellow|lime|green|emerald|teal|cyan|sky|blue|indigo|violet|purple|fuchsia|pink|rose)-(?:50|100|200|300|400|500|600|700|800|900|950))$/,
221
+ variants: ['hover', 'ui-selected'],
222
+ },
223
+ {
224
+ pattern:
225
+ /^(text-(?:slate|gray|zinc|neutral|stone|red|orange|amber|yellow|lime|green|emerald|teal|cyan|sky|blue|indigo|violet|purple|fuchsia|pink|rose)-(?:50|100|200|300|400|500|600|700|800|900|950))$/,
226
+ variants: ['hover', 'ui-selected'],
227
+ },
228
+ {
229
+ pattern:
230
+ /^(border-(?:slate|gray|zinc|neutral|stone|red|orange|amber|yellow|lime|green|emerald|teal|cyan|sky|blue|indigo|violet|purple|fuchsia|pink|rose)-(?:50|100|200|300|400|500|600|700|800|900|950))$/,
231
+ variants: ['hover', 'ui-selected'],
232
+ },
233
+ {
234
+ pattern:
235
+ /^(ring-(?:slate|gray|zinc|neutral|stone|red|orange|amber|yellow|lime|green|emerald|teal|cyan|sky|blue|indigo|violet|purple|fuchsia|pink|rose)-(?:50|100|200|300|400|500|600|700|800|900|950))$/,
236
+ },
237
+ {
238
+ pattern:
239
+ /^(stroke-(?:slate|gray|zinc|neutral|stone|red|orange|amber|yellow|lime|green|emerald|teal|cyan|sky|blue|indigo|violet|purple|fuchsia|pink|rose)-(?:50|100|200|300|400|500|600|700|800|900|950))$/,
240
+ },
241
+ {
242
+ pattern:
243
+ /^(fill-(?:slate|gray|zinc|neutral|stone|red|orange|amber|yellow|lime|green|emerald|teal|cyan|sky|blue|indigo|violet|purple|fuchsia|pink|rose)-(?:50|100|200|300|400|500|600|700|800|900|950))$/,
244
+ },
245
+ // Additional utility classes
246
+ 'w-full',
247
+ 'max-w-4xl',
248
+ 'mx-auto',
249
+ 'px-4',
250
+ 'animate-fade-in-up-delay-3',
251
+ 'animate-fade-in-up-delay-4',
252
+ 'bg-white/10',
253
+ 'backdrop-blur-lg',
254
+ 'rounded-2xl',
255
+ 'p-8',
256
+ 'text-center',
257
+ 'border',
258
+ 'border-white/20',
259
+ 'text-white',
260
+ 'text-2xl',
261
+ 'font-semibold',
262
+ 'mb-4',
263
+ 'text-gray-300',
264
+ 'mb-6',
265
+ 'bg-white',
266
+ 'text-[#1C2536]',
267
+ 'px-8',
268
+ 'py-3',
269
+ 'rounded-full',
270
+ 'hover:bg-gray-100',
271
+ 'transition-all',
272
+ 'duration-300',
273
+ 'transform',
274
+ 'hover:scale-105',
275
+ 'hover:shadow-lg',
276
+ 'inline-flex',
277
+ 'items-center',
278
+ 'gap-2',
279
+ 'group',
280
+ 'group-hover:translate-x-1',
281
+ 'transition-transform',
282
+ '!h-[calc(100vh_-_150px)]',
283
+ ],
284
+ plugins: [
285
+ require('tailwindcss-animate'),
286
+ require('@tailwindcss/forms'),
287
+ require('@tailwindcss/aspect-ratio'),
288
+ require('@tailwindcss/typography'),
289
+ ],
290
+ };
12
291
 
@@ -17,7 +17,7 @@
17
17
  "main": "index.js",
18
18
  "scripts": {
19
19
  "prebuild": "yarn build:clean && yarn genconfig",
20
- "build": "cross-env SSR=true NODE_OPTIONS='--max_old_space_size=4096' NODE_ENV=production remix vite:build",
20
+ "build": "cross-env SSR=true NODE_OPTIONS='--max_old_space_size=6096' NODE_ENV=production remix vite:build",
21
21
  "build:SSR": "cross-env SSR=true NODE_ENV=production remix vite:build",
22
22
  "build:clean": "rimraf dist build node_modules/.vite",
23
23
  "build:debug": "cross-env DEBUGGING=true NODE_ENV=production remix vite:build",
@@ -56,16 +56,12 @@
56
56
  "common": "link:./common"
57
57
  },
58
58
  "dependencies": {
59
- "@common-stack/frontend-stack-react": "7.2.1-alpha.81",
59
+ "@common-stack/frontend-stack-react": "8.2.2-alpha.1",
60
60
  "@react-icons/all-files": "^4.1.0",
61
61
  "classnames": "^2.2.6",
62
- "compression": "^1.7.4",
63
62
  "glob-all": "^3.3.1",
64
63
  "immutability-helper": "^3.0.1",
65
64
  "is-plain-obj": "^3.0.0",
66
- "isomorphic-fetch": "^2.2.1",
67
- "lodash": "^4.17.15",
68
- "lodash-es": "^4.17.21",
69
65
  "moment": "2.29.1",
70
66
  "ramda": "^0.30.1",
71
67
  "react-ga4": "^2.1.0",
@@ -81,7 +77,7 @@
81
77
  },
82
78
  "devDependencies": {
83
79
  "@cdmbase/vite-plugin-i18next-loader": "^2.0.12",
84
- "@common-stack/rollup-vite-utils": "7.2.1-alpha.81",
80
+ "@common-stack/rollup-vite-utils": "8.2.2-alpha.1",
85
81
  "@remix-run/dev": "~2.15.3",
86
82
  "@remix-run/serve": "~2.15.3",
87
83
  "cross-env": "^7.0.3",
@@ -1,14 +1,9 @@
1
1
  import express from 'express';
2
2
  import compression from 'compression';
3
3
  import { createRequestHandler } from '@remix-run/express';
4
- import { installGlobals } from '@remix-run/node';
5
4
  import './env.js';
6
- import {
7
- performCopyOperations,
8
- } from '@common-stack/rollup-vite-utils/lib/preStartup/configLoader/configLoader.js';
9
- import config from './app/cde-webconfig.json' assert { type: 'json' };
10
-
11
- installGlobals();
5
+ import { performCopyOperations } from '@common-stack/rollup-vite-utils/lib/preStartup/configLoader/configLoader.js';
6
+ import config from './app/cde-webconfig.json' with { type: 'json' };
12
7
 
13
8
  Object.keys(config.buildConfig).forEach((key) => {
14
9
  global[key] = config.buildConfig[key];
@@ -17,9 +12,15 @@ Object.keys(config.buildConfig).forEach((key) => {
17
12
  const startServer = async () => {
18
13
  await performCopyOperations(config);
19
14
 
20
- const { corsMiddleware } = await import(`./${config.commonPaths.appPath}/${config.commonPaths.frontendStackPath}/backend/middlewares/cors.js`);
21
- const { containerMiddleware } = await import(`./${config.commonPaths.appPath}/${config.commonPaths.frontendStackPath}/backend/middlewares/container.js`);
22
- const { loadContext } = await import(`./${config.commonPaths.appPath}/${config.commonPaths.frontendStackPath}/load-context.server.js`);
15
+ const { corsMiddleware } = await import(
16
+ `./${config.commonPaths.appPath}/${config.commonPaths.frontendStackPath}/backend/middlewares/cors.js`
17
+ );
18
+ const { containerMiddleware } = await import(
19
+ `./${config.commonPaths.appPath}/${config.commonPaths.frontendStackPath}/backend/middlewares/container.js`
20
+ );
21
+ const { loadContext } = await import(
22
+ `./${config.commonPaths.appPath}/${config.commonPaths.frontendStackPath}/load-context.server.js`
23
+ );
23
24
 
24
25
  const viteDevServer =
25
26
  process.env.NODE_ENV === 'production'
@@ -0,0 +1,38 @@
1
+ // import { flatRoutes } from "@remix-run/fs-routes";
2
+ import { type RouteConfig } from '@remix-run/route-config';
3
+ import { remixRoutesOptionAdapter } from '@remix-run/routes-option-adapter';
4
+ import { dirname, resolve } from 'path';
5
+ import { fileURLToPath } from 'url';
6
+ import { defineRoutesConfig } from '@common-stack/rollup-vite-utils/lib/vite-wrappers/json-wrappers.js';
7
+ import { performCopyOperations } from '@common-stack/rollup-vite-utils/lib/preStartup/configLoader/configLoader.js';
8
+ import config from '../app/cde-webconfig.json' with { type: 'json' };
9
+
10
+ const directoryName = dirname(fileURLToPath(import.meta.url));
11
+
12
+ export default remixRoutesOptionAdapter(async (defineRoutes) => {
13
+ if (process.env.NODE_ENV === 'production') {
14
+ await performCopyOperations(config);
15
+ }
16
+ let metaJson = null;
17
+ try {
18
+ metaJson = await import('../app/sync-meta.json');
19
+ } catch {
20
+ console.warn('No sync-meta.json found, continuing without metadata.');
21
+ }
22
+ return defineRoutes((routeFn) => {
23
+ defineRoutesConfig(
24
+ routeFn,
25
+ {
26
+ routesFileName: 'routes.json',
27
+ packages: config.modules,
28
+ paths: config.paths,
29
+ iconsRepository: config?.iconsRepository,
30
+ rootPath: resolve(directoryName, '../../..'),
31
+ settings: {
32
+ _useFutureCommonPackage: true,
33
+ },
34
+ },
35
+ metaJson,
36
+ );
37
+ });
38
+ }) satisfies RouteConfig;
@@ -1,23 +1,26 @@
1
- import { defineConfig } from 'vite';
1
+ import { defineConfig, ConfigEnv, UserConfig } from 'vite';
2
2
  import { vitePlugin as remix } from '@remix-run/dev';
3
3
  import { dirname, resolve } from 'path';
4
- import { installGlobals } from '@remix-run/node';
5
4
  import { fileURLToPath } from 'url';
6
- import { defineRoutesConfig } from '@common-stack/rollup-vite-utils/lib/vite-wrappers/json-wrappers.js';
5
+ // import { remixDevTools } from 'remix-development-tools';
7
6
  import tsconfigPaths from 'vite-tsconfig-paths';
8
7
  import { i18nInternationalizationPlugin } from '@common-stack/rollup-vite-utils/lib/vite-plugins/i18n-internationalization-plugin.js';
9
- import { performCopyOperations } from '@common-stack/rollup-vite-utils/lib/preStartup/configLoader/configLoader.js';
8
+ // import { visualizer } from 'rollup-plugin-visualizer';
10
9
  import { loadEnvConfig } from '@common-stack/rollup-vite-utils/lib/preStartup/configLoader/envLoader.js';
11
10
  import { cjsInterop } from 'vite-plugin-cjs-interop';
12
11
  import { mergeWith } from 'lodash-es';
13
- import config from './app/cde-webconfig.json' assert { type: 'json' };
12
+ import config from './app/cde-webconfig.json' with { type: 'json' };
14
13
 
15
- // This installs globals such as "fetch", "Response", "Request" and "Headers".
16
- installGlobals();
14
+ declare module '@remix-run/node' {
15
+ // or cloudflare, deno, etc.
16
+ interface Future {
17
+ v3_singleFetch: true;
18
+ }
19
+ }
17
20
 
18
21
  const directoryName = dirname(fileURLToPath(import.meta.url));
19
22
 
20
- export default defineConfig(async ({ isSsrBuild }) => {
23
+ export default defineConfig(async ({ isSsrBuild }: ConfigEnv): Promise<UserConfig> => {
21
24
  console.log('--- IS SSR BUILD:', isSsrBuild);
22
25
 
23
26
  // Load environment variables from dotenv or other config
@@ -32,69 +35,105 @@ export default defineConfig(async ({ isSsrBuild }) => {
32
35
  Object.entries(config.buildConfig).map(([key, value]) => [
33
36
  key,
34
37
  typeof value === 'string' ? `"${value.replace(/\\/g, '\\\\')}"` : value,
35
- ])
38
+ ]),
36
39
  ),
37
40
  };
38
41
 
39
- // Define routes configuration
40
- const routesConfig = async (defineRoutes) => {
41
- // In production, perform required file copy operations
42
- if (process.env.NODE_ENV === 'production') {
43
- await performCopyOperations(config);
44
- }
45
-
46
- // Load metadata for routes
47
- let metaJson = null;
48
- try {
49
- metaJson = await import('./app/sync-meta.json');
50
- } catch {
51
- console.warn('No sync-meta.json found, continuing without metadata.');
52
- }
53
-
54
- // Return routes definition
55
- return defineRoutes((routeFn) =>
56
- defineRoutesConfig(
57
- routeFn,
58
- {
59
- routesFileName: 'routes.json',
60
- packages: config.modules,
61
- paths: config.paths,
62
- iconsRepository: config?.iconsRepository,
63
- rootPath: resolve(directoryName, '../..'),
64
- settings: {
65
- _useFutureCommonPackage: true,
66
- },
67
- },
68
- metaJson
69
- )
70
- );
71
- };
72
-
73
42
  // Vite configuration
74
43
  const viteConfig = {
75
44
  define: envVariables,
45
+ ssr: {
46
+ // Keep small client-only libraries bundled, including all @radix-ui packages
47
+ // to ensure proper CommonJS to ESM interop handled by cjsInterop plugin
48
+ noExternal: [
49
+ 'react-datepicker',
50
+ /^@radix-ui\//,
51
+ '@radix-ui/react-slot',
52
+ '@radix-ui/react-primitive',
53
+ '@radix-ui/react-compose-refs',
54
+ '@radix-ui/react-context',
55
+ '@radix-ui/react-collection',
56
+ '@radix-ui/react-separator',
57
+ ],
58
+ },
76
59
  plugins: [
60
+ // remixDevTools({
61
+ // server: {
62
+ // logs: {
63
+ // cookies: true,
64
+ // defer: true,
65
+ // actions: true,
66
+ // loaders: true,
67
+ // cache: true,
68
+ // siteClear: true,
69
+ // },
70
+ // },
71
+ // }),
77
72
  i18nInternationalizationPlugin({
78
73
  folderName: 'cdm-locales',
79
74
  packages: [...config.modules, ...config.i18n.packages],
80
- namespaceResolution: 'basename',
75
+ namespaceResolution: 'basename' as any,
81
76
  }),
77
+ // visualizer({
78
+ // open: true,
79
+ // filename: 'bundle-analysis.html',
80
+ // }),
81
+ // cjsInterop({
82
+ // dependencies: ['@apollo/client', '@ant-design/pro-utils', '@rjsf/**',],
83
+ // }),
82
84
  cjsInterop({
83
- dependencies: ['@apollo/client'],
85
+ dependencies: [
86
+ '@rjsf/**',
87
+ 'react-timer-hook',
88
+ 'rc-util/lib/hooks/useMergedState.js',
89
+ '@ant-design/icons',
90
+ 'rc-picker',
91
+ '@monaco-editor/loader',
92
+ 'react-google-calendar-api',
93
+ '@apollo/client',
94
+ ],
84
95
  }),
85
96
  remix({
86
97
  appDirectory: 'src',
87
- routes: routesConfig,
98
+ // routes: routesConfig,
99
+ future: {
100
+ unstable_optimizeDeps: true,
101
+ v3_fetcherPersist: true,
102
+ v3_relativeSplatPath: true,
103
+ v3_throwAbortReason: true,
104
+ v3_lazyRouteDiscovery: true,
105
+ v3_singleFetch: true,
106
+ v3_routeConfig: true,
107
+ },
88
108
  }),
89
109
  tsconfigPaths({ ignoreConfigErrors: true }),
90
110
  ],
91
111
  optimizeDeps: {
112
+ include: [
113
+ '@radix-ui/react-slot',
114
+ '@radix-ui/react-compose-refs',
115
+ '@radix-ui/react-primitive',
116
+ '@radix-ui/react-collection',
117
+ '@radix-ui/react-dialog',
118
+ '@radix-ui/react-select',
119
+ '@radix-ui/react-alert-dialog',
120
+ '@radix-ui/react-popover',
121
+ '@radix-ui/react-tooltip',
122
+ '@radix-ui/react-context-menu',
123
+ ],
92
124
  esbuildOptions: {
93
125
  target: 'esnext',
94
126
  },
127
+ force: true, // Force dependency optimization on every build
95
128
  },
96
129
  build: {
97
130
  target: 'esnext',
131
+ rollupOptions: {
132
+ output: {
133
+ // Ensure that worker files are properly bundled
134
+ format: 'es',
135
+ },
136
+ },
98
137
  },
99
138
  resolve: {
100
139
  alias: {
@@ -102,14 +141,18 @@ export default defineConfig(async ({ isSsrBuild }) => {
102
141
  '@src': resolve(directoryName, 'src'),
103
142
  },
104
143
  },
144
+ worker: {
145
+ format: 'es', // Use ES modules format for workers
146
+ plugins: () => [], // Return an empty array of plugins
147
+ },
105
148
  };
106
149
 
107
150
  // Deep merge custom Vite config from config.json
108
- // to merge Arrays properly need to concat.
151
+ // to merge Arrays properly need to concat.
109
152
  const result = mergeWith(config.viteConfig, viteConfig, (objValue, srcValue) => {
110
153
  if (Array.isArray(objValue)) {
111
154
  return objValue.concat(srcValue);
112
155
  }
113
156
  });
114
- return result;
157
+ return result as UserConfig;
115
158
  });
@@ -136,9 +136,9 @@
136
136
  "@babel/preset-typescript": "^7.18.6",
137
137
  "@babel/register": "^7.18.9",
138
138
  "@babel/runtime": "^7.20.1",
139
- "@common-stack/env-list-loader": "7.2.1-alpha.66",
140
- "@common-stack/generate-plugin": "7.2.1-alpha.82",
141
- "@common-stack/rollup-vite-utils": "7.2.1-alpha.81",
139
+ "@common-stack/env-list-loader": "8.2.2-alpha.0",
140
+ "@common-stack/generate-plugin": "8.2.2-alpha.1",
141
+ "@common-stack/rollup-vite-utils": "8.2.2-alpha.1",
142
142
  "@emotion/babel-plugin": "^11.11.0",
143
143
  "@graphql-codegen/add": "^5.0.3",
144
144
  "@graphql-codegen/cli": "^5.0.4",
@@ -29,11 +29,11 @@
29
29
  "common": "link:./common"
30
30
  },
31
31
  "dependencies": {
32
- "@common-stack/client-core": "7.2.1-alpha.81",
33
- "@common-stack/core": "7.2.1-alpha.81",
34
- "@common-stack/server-core": "7.2.1-alpha.81",
35
- "@common-stack/server-stack": "7.2.1-alpha.82",
36
- "@common-stack/store-mongo": "7.2.1-alpha.81",
32
+ "@common-stack/client-core": "8.2.2-alpha.1",
33
+ "@common-stack/core": "8.2.2-alpha.1",
34
+ "@common-stack/server-core": "8.2.2-alpha.1",
35
+ "@common-stack/server-stack": "8.2.2-alpha.1",
36
+ "@common-stack/store-mongo": "8.2.2-alpha.1",
37
37
  "@container-stack/mailing-api": "5.2.1-alpha.1",
38
38
  "helmet": "^3.21.2",
39
39
  "react": "18.2.0",
@@ -29,7 +29,7 @@
29
29
  },
30
30
  "peerDependencies": {
31
31
  "@cdm-logger/client": "*",
32
- "@common-stack/client-react": "7.2.1-alpha.81",
32
+ "@common-stack/client-react": "8.2.2-alpha.1",
33
33
  "@remix-run/react": "*",
34
34
  "antd": ">=5.1.6",
35
35
  "lodash": "*",
@@ -62,9 +62,9 @@
62
62
  "peerDependencies": {
63
63
  "@apollo/client": ">=3.0.0",
64
64
  "@cdm-logger/server": ">=9.0.3",
65
- "@common-stack/core": "7.2.1-alpha.81",
66
- "@common-stack/server-core": "7.2.1-alpha.81",
67
- "@common-stack/store-mongo": "7.2.1-alpha.81",
65
+ "@common-stack/core": "8.2.2-alpha.1",
66
+ "@common-stack/server-core": "8.2.2-alpha.1",
67
+ "@common-stack/store-mongo": "8.2.2-alpha.1",
68
68
  "@container-stack/mailing-api": ">=0.0.35-alpha.1",
69
69
  "@vscode-alt/monaco-editor": "^0.21.4",
70
70
  "inversify": "^5.0.1",