@bleedingdev/modern-js-create 3.2.0-ultramodern.12 → 3.2.0-ultramodern.121

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 (165) hide show
  1. package/README.md +167 -72
  2. package/bin/run.js +0 -0
  3. package/dist/cjs/create-package-root.cjs +63 -0
  4. package/dist/cjs/index.cjs +528 -0
  5. package/dist/cjs/locale/en.cjs +93 -0
  6. package/dist/cjs/locale/index.cjs +50 -0
  7. package/dist/cjs/locale/zh.cjs +93 -0
  8. package/dist/cjs/ultramodern-package-source.cjs +135 -0
  9. package/dist/cjs/ultramodern-workspace/add-vertical.cjs +337 -0
  10. package/dist/cjs/ultramodern-workspace/app-files.cjs +223 -0
  11. package/dist/cjs/ultramodern-workspace/contracts.cjs +836 -0
  12. package/dist/cjs/ultramodern-workspace/demo-components.cjs +422 -0
  13. package/dist/cjs/ultramodern-workspace/descriptors.cjs +222 -0
  14. package/dist/cjs/ultramodern-workspace/effect-api.cjs +952 -0
  15. package/dist/cjs/ultramodern-workspace/fs-io.cjs +191 -0
  16. package/dist/cjs/ultramodern-workspace/index.cjs +48 -0
  17. package/dist/cjs/ultramodern-workspace/locales.cjs +173 -0
  18. package/dist/cjs/ultramodern-workspace/module-federation.cjs +487 -0
  19. package/dist/cjs/ultramodern-workspace/naming.cjs +161 -0
  20. package/dist/cjs/ultramodern-workspace/package-json.cjs +406 -0
  21. package/dist/cjs/ultramodern-workspace/package-source.cjs +59 -0
  22. package/dist/cjs/ultramodern-workspace/policy.cjs +248 -0
  23. package/dist/cjs/ultramodern-workspace/public-surface.cjs +268 -0
  24. package/dist/cjs/ultramodern-workspace/routes.cjs +375 -0
  25. package/dist/cjs/ultramodern-workspace/types.cjs +61 -0
  26. package/dist/cjs/ultramodern-workspace/versions.cjs +153 -0
  27. package/dist/cjs/ultramodern-workspace/workspace-scripts.cjs +153 -0
  28. package/dist/cjs/ultramodern-workspace/write-workspace.cjs +175 -0
  29. package/dist/esm/create-package-root.js +14 -0
  30. package/dist/esm/index.js +491 -0
  31. package/dist/esm/locale/en.js +55 -0
  32. package/dist/esm/locale/index.js +9 -0
  33. package/dist/esm/locale/zh.js +55 -0
  34. package/dist/esm/ultramodern-package-source.js +63 -0
  35. package/dist/esm/ultramodern-workspace/add-vertical.js +252 -0
  36. package/dist/esm/ultramodern-workspace/app-files.js +149 -0
  37. package/dist/esm/ultramodern-workspace/contracts.js +741 -0
  38. package/dist/esm/ultramodern-workspace/demo-components.js +363 -0
  39. package/dist/esm/ultramodern-workspace/descriptors.js +133 -0
  40. package/dist/esm/ultramodern-workspace/effect-api.js +854 -0
  41. package/dist/esm/ultramodern-workspace/fs-io.js +90 -0
  42. package/dist/esm/ultramodern-workspace/index.js +3 -0
  43. package/dist/esm/ultramodern-workspace/locales.js +122 -0
  44. package/dist/esm/ultramodern-workspace/module-federation.js +415 -0
  45. package/dist/esm/ultramodern-workspace/naming.js +71 -0
  46. package/dist/esm/ultramodern-workspace/package-json.js +338 -0
  47. package/dist/esm/ultramodern-workspace/package-source.js +21 -0
  48. package/dist/esm/ultramodern-workspace/policy.js +183 -0
  49. package/dist/esm/ultramodern-workspace/public-surface.js +183 -0
  50. package/dist/esm/ultramodern-workspace/routes.js +280 -0
  51. package/dist/esm/ultramodern-workspace/types.js +16 -0
  52. package/dist/esm/ultramodern-workspace/versions.js +34 -0
  53. package/dist/esm/ultramodern-workspace/workspace-scripts.js +91 -0
  54. package/dist/esm/ultramodern-workspace/write-workspace.js +121 -0
  55. package/dist/esm-node/create-package-root.js +15 -0
  56. package/dist/esm-node/index.js +492 -0
  57. package/dist/esm-node/locale/en.js +56 -0
  58. package/dist/esm-node/locale/index.js +10 -0
  59. package/dist/esm-node/locale/zh.js +56 -0
  60. package/dist/esm-node/ultramodern-package-source.js +64 -0
  61. package/dist/esm-node/ultramodern-workspace/add-vertical.js +253 -0
  62. package/dist/esm-node/ultramodern-workspace/app-files.js +150 -0
  63. package/dist/esm-node/ultramodern-workspace/contracts.js +742 -0
  64. package/dist/esm-node/ultramodern-workspace/demo-components.js +364 -0
  65. package/dist/esm-node/ultramodern-workspace/descriptors.js +134 -0
  66. package/dist/esm-node/ultramodern-workspace/effect-api.js +855 -0
  67. package/dist/esm-node/ultramodern-workspace/fs-io.js +91 -0
  68. package/dist/esm-node/ultramodern-workspace/index.js +4 -0
  69. package/dist/esm-node/ultramodern-workspace/locales.js +123 -0
  70. package/dist/esm-node/ultramodern-workspace/module-federation.js +416 -0
  71. package/dist/esm-node/ultramodern-workspace/naming.js +72 -0
  72. package/dist/esm-node/ultramodern-workspace/package-json.js +339 -0
  73. package/dist/esm-node/ultramodern-workspace/package-source.js +22 -0
  74. package/dist/esm-node/ultramodern-workspace/policy.js +184 -0
  75. package/dist/esm-node/ultramodern-workspace/public-surface.js +184 -0
  76. package/dist/esm-node/ultramodern-workspace/routes.js +281 -0
  77. package/dist/esm-node/ultramodern-workspace/types.js +17 -0
  78. package/dist/esm-node/ultramodern-workspace/versions.js +35 -0
  79. package/dist/esm-node/ultramodern-workspace/workspace-scripts.js +92 -0
  80. package/dist/esm-node/ultramodern-workspace/write-workspace.js +122 -0
  81. package/dist/types/create-package-root.d.ts +1 -0
  82. package/dist/types/locale/en.d.ts +8 -9
  83. package/dist/types/locale/index.d.ts +109 -2
  84. package/dist/types/locale/zh.d.ts +8 -9
  85. package/dist/types/ultramodern-package-source.d.ts +28 -0
  86. package/dist/types/ultramodern-workspace/add-vertical.d.ts +19 -0
  87. package/dist/types/ultramodern-workspace/app-files.d.ts +14 -0
  88. package/dist/types/ultramodern-workspace/contracts.d.ts +21 -0
  89. package/dist/types/ultramodern-workspace/demo-components.d.ts +9 -0
  90. package/dist/types/ultramodern-workspace/descriptors.d.ts +39 -0
  91. package/dist/types/ultramodern-workspace/effect-api.d.ts +73 -0
  92. package/dist/types/ultramodern-workspace/fs-io.d.ts +18 -0
  93. package/dist/types/ultramodern-workspace/index.d.ts +4 -0
  94. package/dist/types/ultramodern-workspace/locales.d.ts +183 -0
  95. package/dist/types/ultramodern-workspace/module-federation.d.ts +16 -0
  96. package/dist/types/ultramodern-workspace/naming.d.ts +16 -0
  97. package/dist/types/ultramodern-workspace/package-json.d.ts +12 -0
  98. package/dist/types/ultramodern-workspace/package-source.d.ts +2 -0
  99. package/dist/types/ultramodern-workspace/policy.d.ts +60 -0
  100. package/dist/types/ultramodern-workspace/public-surface.d.ts +37 -0
  101. package/dist/types/ultramodern-workspace/routes.d.ts +25 -0
  102. package/dist/types/ultramodern-workspace/types.d.ts +95 -0
  103. package/dist/types/ultramodern-workspace/versions.d.ts +38 -0
  104. package/dist/types/ultramodern-workspace/workspace-scripts.d.ts +10 -0
  105. package/dist/types/ultramodern-workspace/write-workspace.d.ts +4 -0
  106. package/package.json +34 -15
  107. package/template-workspace/.agents/agent-reference-repos.json +24 -0
  108. package/template-workspace/.agents/skills-lock.json +19 -0
  109. package/template-workspace/.codex/hooks.json +16 -0
  110. package/template-workspace/.github/renovate.json +29 -0
  111. package/template-workspace/.github/workflows/ultramodern-workspace-gates.yml.handlebars +67 -0
  112. package/template-workspace/.gitignore.handlebars +5 -0
  113. package/template-workspace/.mise.toml.handlebars +3 -0
  114. package/template-workspace/AGENTS.md.handlebars +87 -0
  115. package/template-workspace/README.md.handlebars +132 -11
  116. package/template-workspace/lefthook.yml +24 -0
  117. package/template-workspace/oxfmt.config.ts +1 -0
  118. package/template-workspace/oxlint.config.ts +1 -0
  119. package/template-workspace/pnpm-workspace.yaml.handlebars +40 -0
  120. package/template-workspace/scripts/bootstrap-agent-skills.mjs +184 -21
  121. package/template-workspace/scripts/setup-agent-reference-repos.mjs +370 -0
  122. package/templates/app/shell-frame.tsx +49 -0
  123. package/templates/app/ultramodern-route-head.tsx.handlebars +142 -0
  124. package/templates/packages/shared-contracts-index.ts +466 -0
  125. package/templates/workspace-scripts/assert-mf-types.mjs.handlebars +69 -0
  126. package/templates/workspace-scripts/check-ultramodern-i18n-boundaries.mjs +9 -0
  127. package/templates/workspace-scripts/generate-public-surface-assets.mjs +529 -0
  128. package/templates/workspace-scripts/proof-cloudflare-version.mjs +125 -0
  129. package/templates/workspace-scripts/ultramodern-cloudflare-proof.mjs +851 -0
  130. package/templates/workspace-scripts/ultramodern-performance-readiness.config.mjs +7 -0
  131. package/templates/workspace-scripts/ultramodern-performance-readiness.mjs +223 -0
  132. package/templates/workspace-scripts/validate-ultramodern-workspace.mjs.handlebars +593 -0
  133. package/dist/index.js +0 -2626
  134. package/dist/types/ultramodern-workspace.d.ts +0 -20
  135. package/template/.agents/skills-lock.json +0 -34
  136. package/template/.browserslistrc +0 -4
  137. package/template/.github/workflows/ultramodern-gates.yml.handlebars +0 -30
  138. package/template/.gitignore.handlebars +0 -30
  139. package/template/.nvmrc +0 -2
  140. package/template/AGENTS.md +0 -25
  141. package/template/README.md +0 -79
  142. package/template/api/effect/index.ts.handlebars +0 -23
  143. package/template/api/lambda/hello.ts.handlebars +0 -6
  144. package/template/config/public/locales/cs/translation.json +0 -39
  145. package/template/config/public/locales/en/translation.json +0 -39
  146. package/template/modern.config.ts.handlebars +0 -53
  147. package/template/oxfmt.config.ts +0 -8
  148. package/template/oxlint.config.ts +0 -12
  149. package/template/package.json.handlebars +0 -67
  150. package/template/postcss.config.mjs.handlebars +0 -6
  151. package/template/scripts/bootstrap-agent-skills.mjs +0 -95
  152. package/template/scripts/check-i18n-strings.mjs +0 -83
  153. package/template/scripts/validate-ultramodern.mjs.handlebars +0 -178
  154. package/template/shared/effect/api.ts.handlebars +0 -17
  155. package/template/src/modern-app-env.d.ts +0 -1
  156. package/template/src/modern.runtime.ts.handlebars +0 -23
  157. package/template/src/routes/index.css.handlebars +0 -129
  158. package/template/src/routes/layout.tsx.handlebars +0 -9
  159. package/template/src/routes/page.tsx.handlebars +0 -155
  160. package/template/tailwind.config.ts.handlebars +0 -10
  161. package/template/tsconfig.json +0 -120
  162. package/template-workspace/AGENTS.md +0 -50
  163. package/template-workspace/pnpm-workspace.yaml +0 -17
  164. package/template-workspace/scripts/check-i18n-strings.mjs +0 -83
  165. package/template-workspace/scripts/validate-ultramodern-workspace.mjs.handlebars +0 -433
@@ -0,0 +1,223 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.d = (exports1, getters, values)=>{
5
+ var define = (defs, kind)=>{
6
+ for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
7
+ enumerable: true,
8
+ [kind]: defs[key]
9
+ });
10
+ };
11
+ define(getters, "get");
12
+ define(values, "value");
13
+ };
14
+ })();
15
+ (()=>{
16
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
17
+ })();
18
+ (()=>{
19
+ __webpack_require__.r = (exports1)=>{
20
+ if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
21
+ value: 'Module'
22
+ });
23
+ Object.defineProperty(exports1, '__esModule', {
24
+ value: true
25
+ });
26
+ };
27
+ })();
28
+ var __webpack_exports__ = {};
29
+ __webpack_require__.r(__webpack_exports__);
30
+ __webpack_require__.d(__webpack_exports__, {
31
+ createAppEnvDts: ()=>createAppEnvDts,
32
+ createAppRuntimeConfig: ()=>createAppRuntimeConfig,
33
+ createAppStyles: ()=>createAppStyles,
34
+ createBoundaryDebugMetadata: ()=>createBoundaryDebugMetadata,
35
+ createCssTokenImport: ()=>createCssTokenImport,
36
+ createPostcssConfig: ()=>createPostcssConfig,
37
+ createRemoteStyles: ()=>createRemoteStyles,
38
+ createRouteHeadModule: ()=>createRouteHeadModule,
39
+ createSharedDesignTokensCss: ()=>createSharedDesignTokensCss,
40
+ createShellFrameComponent: ()=>createShellFrameComponent,
41
+ createShellStyles: ()=>createShellStyles,
42
+ createTailwindConfig: ()=>createTailwindConfig,
43
+ createTailwindImport: ()=>createTailwindImport
44
+ });
45
+ const external_descriptors_cjs_namespaceObject = require("./descriptors.cjs");
46
+ const external_fs_io_cjs_namespaceObject = require("./fs-io.cjs");
47
+ const external_naming_cjs_namespaceObject = require("./naming.cjs");
48
+ function createBoundaryDebugMetadata(scope, remotes = []) {
49
+ return {
50
+ appId: external_descriptors_cjs_namespaceObject.shellApp.id,
51
+ boundaries: [
52
+ external_descriptors_cjs_namespaceObject.shellApp,
53
+ ...remotes
54
+ ].map((app)=>({
55
+ appId: app.id,
56
+ label: app.displayName,
57
+ mfName: app.mfName,
58
+ ownerTeam: app.ownership.team,
59
+ packageName: (0, external_naming_cjs_namespaceObject.packageName)(scope, app.packageSuffix),
60
+ role: 'shell' === app.kind ? 'host' : 'vertical'
61
+ })),
62
+ schemaVersion: 1
63
+ };
64
+ }
65
+ function createAppEnvDts(app, remotes = []) {
66
+ const remoteModuleDeclarations = (0, external_descriptors_cjs_namespaceObject.resolveRemoteRefs)(app, remotes).flatMap((remote)=>Object.keys(remote.exposes ?? {}).filter((expose)=>'./Route' !== expose).map((expose)=>{
67
+ const moduleName = `${(0, external_descriptors_cjs_namespaceObject.remoteDependencyAlias)(remote)}/${expose.replace(/^\.\//u, '')}`;
68
+ return `declare module '${moduleName}' {
69
+ const Component: React.ComponentType<Record<string, never>>;
70
+ export default Component;
71
+ }
72
+ `;
73
+ })).join('\n');
74
+ const reactTypeReference = remoteModuleDeclarations ? "/// <reference types='react' />\n" : '';
75
+ const siteUrlDeclaration = 'declare const ULTRAMODERN_SITE_URL: string;';
76
+ return `${reactTypeReference}/// <reference types='@modern-js/app-tools/types' />
77
+
78
+ ${siteUrlDeclaration}
79
+ declare module '*.svg' {
80
+ const url: string;
81
+ export default url;
82
+ }
83
+ declare module '*.css';
84
+ ${remoteModuleDeclarations ? `\n${remoteModuleDeclarations}` : ''}`;
85
+ }
86
+ function createAppRuntimeConfig(app, scope, remotes = []) {
87
+ const pluginsConfig = 'shell' === app.kind ? ` plugins: [
88
+ ultramodernBoundaryDebuggerPlugin({
89
+ metadata: ${JSON.stringify(createBoundaryDebugMetadata(scope, remotes), null, 6).split('\n').join('\n ')},
90
+ }),
91
+ ],
92
+ ` : '';
93
+ return `import { defineRuntimeConfig } from '@modern-js/runtime';
94
+ ${'shell' === app.kind ? "import { ultramodernBoundaryDebuggerPlugin } from '@modern-js/runtime/boundary-debugger';\n" : ''}import { createInstance } from 'i18next';
95
+ import csResource from '../locales/cs/${(0, external_descriptors_cjs_namespaceObject.appI18nNamespace)(app)}.json';
96
+ import enResource from '../locales/en/${(0, external_descriptors_cjs_namespaceObject.appI18nNamespace)(app)}.json';
97
+ import { ultramodernRouteNamespace } from './routes/ultramodern-route-metadata';
98
+
99
+ type LocaleResource = string | { readonly [key: string]: LocaleResource };
100
+
101
+ const flattenLocaleResource = (
102
+ resource: LocaleResource,
103
+ prefix = '',
104
+ ): Record<string, string> => {
105
+ if (typeof resource === 'string') {
106
+ return prefix.length > 0 ? { [prefix]: resource } : {};
107
+ }
108
+
109
+ return Object.fromEntries(
110
+ Object.entries(resource).flatMap(([key, value]) => {
111
+ const nextKey = prefix.length > 0 ? \`\${prefix}.\${key}\` : key;
112
+ return typeof value === 'string'
113
+ ? [[nextKey, value]]
114
+ : Object.entries(flattenLocaleResource(value, nextKey));
115
+ }),
116
+ );
117
+ };
118
+
119
+ const i18nInstance = createInstance();
120
+ const resources = {
121
+ cs: { [ultramodernRouteNamespace]: flattenLocaleResource(csResource) },
122
+ en: { [ultramodernRouteNamespace]: flattenLocaleResource(enResource) },
123
+ } as const;
124
+
125
+ export default defineRuntimeConfig({
126
+ i18n: {
127
+ i18nInstance,
128
+ initOptions: {
129
+ defaultNS: ultramodernRouteNamespace,
130
+ fallbackLng: 'en',
131
+ interpolation: {
132
+ escapeValue: false,
133
+ },
134
+ ns: [ultramodernRouteNamespace, 'translation'],
135
+ resources,
136
+ supportedLngs: ['en', 'cs'],
137
+ },
138
+ },
139
+ ${pluginsConfig}
140
+ router: {
141
+ framework: 'tanstack',
142
+ },
143
+ });
144
+ `;
145
+ }
146
+ function createCssTokenImport(scope) {
147
+ return `@import '${(0, external_naming_cjs_namespaceObject.packageName)(scope, 'shared-design-tokens')}/tokens.css';\n`;
148
+ }
149
+ function createTailwindImport(prefix) {
150
+ return `@import 'tailwindcss' prefix(${prefix}) source(none);\n@source '..';\n`;
151
+ }
152
+ function createShellStyles(enableTailwind, scope) {
153
+ return `${enableTailwind ? createTailwindImport((0, external_naming_cjs_namespaceObject.tailwindPrefixForApp)(external_descriptors_cjs_namespaceObject.shellApp)) : ''}${createCssTokenImport(scope)}`;
154
+ }
155
+ function createRemoteStyles(enableTailwind, scope, app) {
156
+ return `${enableTailwind ? createTailwindImport((0, external_naming_cjs_namespaceObject.tailwindPrefixForApp)(app)) : ''}${createCssTokenImport(scope)}`;
157
+ }
158
+ function createAppStyles(enableTailwind, scope, app) {
159
+ return 'shell' === app.kind ? createShellStyles(enableTailwind, scope) : createRemoteStyles(enableTailwind, scope, app);
160
+ }
161
+ function createPostcssConfig() {
162
+ return `export default {
163
+ plugins: {
164
+ '@tailwindcss/postcss': {},
165
+ },
166
+ };
167
+ `;
168
+ }
169
+ function createTailwindConfig() {
170
+ return `import type { Config } from 'tailwindcss';
171
+
172
+ export default {} satisfies Config;
173
+ `;
174
+ }
175
+ function createSharedDesignTokensCss() {
176
+ return `@theme {
177
+ --color-um-accent: #2f8f68;
178
+ --color-um-canvas: #f1eadc;
179
+ --color-um-foreground: #133225;
180
+ --color-um-link: #166b4b;
181
+ --color-um-surface: #f6fbf7;
182
+ }
183
+ `;
184
+ }
185
+ function createRouteHeadModule(app) {
186
+ return (0, external_fs_io_cjs_namespaceObject.renderFileTemplate)('app/ultramodern-route-head.tsx', {
187
+ appDisplayNameJson: JSON.stringify(app.displayName)
188
+ });
189
+ }
190
+ function createShellFrameComponent() {
191
+ return (0, external_fs_io_cjs_namespaceObject.readFileTemplate)('app/shell-frame.tsx');
192
+ }
193
+ exports.createAppEnvDts = __webpack_exports__.createAppEnvDts;
194
+ exports.createAppRuntimeConfig = __webpack_exports__.createAppRuntimeConfig;
195
+ exports.createAppStyles = __webpack_exports__.createAppStyles;
196
+ exports.createBoundaryDebugMetadata = __webpack_exports__.createBoundaryDebugMetadata;
197
+ exports.createCssTokenImport = __webpack_exports__.createCssTokenImport;
198
+ exports.createPostcssConfig = __webpack_exports__.createPostcssConfig;
199
+ exports.createRemoteStyles = __webpack_exports__.createRemoteStyles;
200
+ exports.createRouteHeadModule = __webpack_exports__.createRouteHeadModule;
201
+ exports.createSharedDesignTokensCss = __webpack_exports__.createSharedDesignTokensCss;
202
+ exports.createShellFrameComponent = __webpack_exports__.createShellFrameComponent;
203
+ exports.createShellStyles = __webpack_exports__.createShellStyles;
204
+ exports.createTailwindConfig = __webpack_exports__.createTailwindConfig;
205
+ exports.createTailwindImport = __webpack_exports__.createTailwindImport;
206
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
207
+ "createAppEnvDts",
208
+ "createAppRuntimeConfig",
209
+ "createAppStyles",
210
+ "createBoundaryDebugMetadata",
211
+ "createCssTokenImport",
212
+ "createPostcssConfig",
213
+ "createRemoteStyles",
214
+ "createRouteHeadModule",
215
+ "createSharedDesignTokensCss",
216
+ "createShellFrameComponent",
217
+ "createShellStyles",
218
+ "createTailwindConfig",
219
+ "createTailwindImport"
220
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
221
+ Object.defineProperty(exports, '__esModule', {
222
+ value: true
223
+ });