@_tc/template-core 0.2.11 → 0.3.0
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.
- package/.skills/tc-component-usage-skills/SKILL.md +7 -9
- package/.skills/tc-component-usage-skills/reference/component-api.md +2 -2
- package/.skills/tc-component-usage-skills/reference/examples.md +9 -9
- package/.skills/tc-component-usage-skills/reference/patterns.md +5 -5
- package/.skills/tc-component-usage-skills/reference/template-core-frontend.md +1 -1
- package/.skills/tc-generator/SKILL.md +30 -14
- package/.skills/tc-generator/reference/example.md +4 -4
- package/.skills/tc-generator/reference/model-schema.md +9 -5
- package/.skills/tc-generator/reference/runtime-extensions.md +9 -7
- package/AGENT_README.md +52 -33
- package/CHANGE.md +91 -0
- package/README.md +147 -46
- package/cjs/app/controller/ssr.js +1 -0
- package/cjs/app/controller/view.js +1 -1
- package/cjs/app/html/shell.js +36 -0
- package/cjs/app/middleware.js +1 -1
- package/cjs/app/router/ssr.js +1 -0
- package/cjs/app/router/view.js +1 -1
- package/cjs/app/ssr/html.js +17 -0
- package/cjs/app/ssr/manifest.js +2 -0
- package/cjs/app/view/entry.tpl +2 -37
- package/cjs/bundler/buildBE.js +1 -1
- package/cjs/bundler/buildSSR.js +1 -0
- package/cjs/bundler/entryCollect.js +1 -0
- package/cjs/bundler/feSharedConfig.js +1 -0
- package/cjs/bundler/index.js +1 -1
- package/cjs/bundler/ssrClientManifest.js +1 -0
- package/cjs/bundler/ssrEntries.js +1 -0
- package/cjs/bundler/utils.js +3 -3
- package/cjs/packages/common/i18n/index.js +1 -1
- package/cjs/packages/common/index.js +1 -1
- package/cjs/packages/common/ssr/hydration.js +1 -0
- package/cjs/packages/common/ssr/index.js +1 -0
- package/cjs/packages/core/index.js +1 -1
- package/cjs/packages/core/loader/controller.js +1 -1
- package/cjs/packages/core/loader/extend.js +1 -1
- package/cjs/packages/core/loader/merge.js +1 -0
- package/cjs/packages/core/loader/middleware.js +1 -1
- package/cjs/packages/core/loader/model.js +1 -1
- package/cjs/packages/core/loader/router-schema.js +1 -1
- package/cjs/packages/core/loader/router.js +1 -1
- package/cjs/packages/core/loader/service.js +1 -1
- package/cjs/packages/core/paths.js +1 -1
- package/cjs/scripts/vite-build/build.js +3 -3
- package/cjs/scripts/vite-build/collect.js +1 -1
- package/cjs/scripts/vite-build/dts.js +1 -1
- package/cjs/scripts/vite-build/normalize.js +1 -1
- package/cjs/ssrSharedData/outputPaths.js +1 -0
- package/esm/app/controller/ssr.js +215 -0
- package/esm/app/controller/view.js +26 -25
- package/esm/app/html/shell.js +69 -0
- package/esm/app/middleware.js +18 -9
- package/esm/app/router/ssr.js +8 -0
- package/esm/app/router/view.js +5 -4
- package/esm/app/ssr/html.js +90 -0
- package/esm/app/ssr/manifest.js +47 -0
- package/esm/app/view/entry.tpl +2 -37
- package/esm/bundler/buildBE.js +1 -1
- package/esm/bundler/buildSSR.js +126 -0
- package/esm/bundler/entryCollect.js +45 -0
- package/esm/bundler/feSharedConfig.js +143 -0
- package/esm/bundler/index.js +4 -2
- package/esm/bundler/ssrClientManifest.js +14 -0
- package/esm/bundler/ssrEntries.js +13 -0
- package/esm/bundler/utils.js +248 -255
- package/esm/packages/common/i18n/index.js +5 -1
- package/esm/packages/common/index.js +4 -2
- package/esm/packages/common/ssr/hydration.js +55 -0
- package/esm/packages/common/ssr/index.js +20 -0
- package/esm/packages/core/index.js +42 -42
- package/esm/packages/core/loader/controller.js +11 -9
- package/esm/packages/core/loader/extend.js +20 -16
- package/esm/packages/core/loader/merge.js +7 -0
- package/esm/packages/core/loader/middleware.js +11 -12
- package/esm/packages/core/loader/model.js +2 -2
- package/esm/packages/core/loader/router-schema.js +22 -15
- package/esm/packages/core/loader/router.js +32 -26
- package/esm/packages/core/loader/service.js +11 -9
- package/esm/packages/core/paths.js +9 -1
- package/esm/scripts/vite-build/build.js +88 -83
- package/esm/scripts/vite-build/collect.js +31 -27
- package/esm/scripts/vite-build/dts.js +1 -1
- package/esm/scripts/vite-build/normalize.js +6 -3
- package/esm/ssrSharedData/outputPaths.js +33 -0
- package/fe/frontend/apps/dash/Dashboard.d.ts +5 -1
- package/fe/frontend/apps/dash/Dashboard.js +22 -13
- package/fe/frontend/apps/dash/types.d.ts +2 -0
- package/fe/frontend/src/api/baseInfo.d.ts +1 -1
- package/fe/frontend/src/common/CRUD/CRUD.js +1 -1
- package/fe/frontend/src/common/CRUD/index.js +1 -1
- package/fe/frontend/src/common/menu.d.ts +1 -1
- package/fe/frontend/src/common/menu.js +8 -7
- package/fe/frontend/src/common/request.js +1 -1
- package/fe/frontend/src/common/schemaForm.d.ts +1 -0
- package/fe/frontend/src/common/schemaForm.js +12 -0
- package/fe/frontend/src/components/AsyncSelect/AsyncSelect.d.ts +1 -1
- package/fe/frontend/src/components/Router/basename.d.ts +3 -0
- package/fe/frontend/src/components/Router/basename.js +11 -0
- package/fe/frontend/src/components/Router/index.d.ts +1 -1
- package/fe/frontend/src/components/Router/index.js +3 -1
- package/fe/frontend/src/defaultPages/SchemaPage/components/CallCom/builtIn.d.ts +1 -1
- package/fe/frontend/src/defaultPages/SchemaPage/components/SchemaTable/data.d.ts +1 -1
- package/fe/frontend/src/defaultPages/SchemaPage/schemaType.d.ts +2 -2
- package/fe/frontend/src/defaultPages/SchemaPage/utils/schemaConversion.d.ts +1 -1
- package/fe/frontend/src/defaultPages/SidebarSlotPage/SidebarSlotContainer.d.ts +2 -1
- package/fe/frontend/src/defaultPages/SidebarSlotPage/SidebarSlotContainer.js +8 -4
- package/fe/frontend/src/defaultPages/SidebarSlotPageTmp.js +2 -1
- package/fe/frontend/src/exportStore.js +2 -2
- package/fe/frontend/src/hooks/useCurrentMenuData.d.ts +1 -1
- package/fe/frontend/src/hooks/useCurrentMenuData.js +2 -2
- package/fe/frontend/src/hooks/useRouterParams.js +4 -3
- package/fe/frontend/src/index.d.ts +1 -0
- package/fe/frontend/src/index.js +4 -3
- package/fe/frontend/src/main.js +2 -0
- package/fe/frontend/src/stores/mode.d.ts +15 -2
- package/fe/frontend/src/stores/mode.js +19 -5
- package/fe/frontend/src/typing/window.d.ts +2 -0
- package/fe/packages/common/LRUCache.js +2 -0
- package/fe/packages/common/array/index.js +37 -0
- package/fe/packages/common/cache/index.js +2 -0
- package/fe/packages/common/guards/index.js +19 -1
- package/fe/packages/common/http/index.js +1 -1
- package/fe/packages/common/i18n/index.js +8 -4
- package/fe/packages/common/i18n/locales.js +1 -1
- package/fe/packages/common/i18n/types.d.ts +1 -0
- package/fe/packages/common/i18n/types.js +0 -0
- package/fe/packages/common/index.d.ts +1 -0
- package/fe/packages/common/index.js +17 -0
- package/fe/packages/common/log/index.js +146 -0
- package/fe/packages/common/number/index.js +11 -0
- package/fe/packages/common/object/filterEmpty.js +2 -1
- package/fe/packages/common/object/filtereEmpty.js +2 -0
- package/fe/packages/common/object/index.js +20 -0
- package/fe/packages/common/ssr/hydration.d.ts +23 -0
- package/fe/packages/common/ssr/hydration.js +88 -0
- package/fe/packages/common/ssr/index.d.ts +8 -0
- package/fe/packages/common/ssr/index.js +52 -0
- package/fe/packages/common/string/index.js +32 -0
- package/fe/packages/common/types/index.js +0 -0
- package/fe/packages/react/hooks/index.d.ts +2 -0
- package/fe/packages/react/hooks/index.js +3 -1
- package/fe/packages/react/hooks/useHydrationData.d.ts +2 -0
- package/fe/packages/react/hooks/useHydrationData.js +23 -0
- package/fe/packages/react/hooks/useSSR.d.ts +6 -0
- package/fe/packages/react/hooks/useSSR.js +46 -0
- package/fe/packages/react/ui/components/DataTable/index.js +16 -15
- package/fe/packages/react/ui/components/Form/SchemaForm/data.d.ts +3 -2
- package/fe/packages/react/ui/components/Form/SchemaForm/data.js +5 -6
- package/fe/packages/react/ui/components/Form/SchemaForm/index.d.ts +1 -0
- package/fe/packages/react/ui/components/Form/SchemaForm/index.js +2 -2
- package/fe/packages/react/ui/components/Form/index.js +2 -1
- package/fe/packages/react/ui/components/Input/Input.js +5 -1
- package/fe/packages/react/ui/components/Popup/Popup.js +6 -1
- package/fe/packages/react/ui/components/index.js +2 -1
- package/fe/packages/react/ui/components/testPage/demos/core/DataTableDemo.js +241 -211
- package/fe/packages/react/ui/components/testPage/demos/core/DataTableDemo2.js +1 -1
- package/fe/packages/react/ui/i18n/I18nProvider.js +4 -0
- package/fe/packages/react/ui/index.js +2 -1
- package/fe/ssr/apps/dash/dash.entry.d.ts +13 -0
- package/fe/ssr/apps/dash/dash.entry.js +162 -0
- package/fe/ssr/apps/demo/demo.entry.d.ts +13 -0
- package/fe/ssr/apps/demo/demo.entry.js +38 -0
- package/fe/ssr/apps/server-data/server-data.entry.d.ts +26 -0
- package/fe/ssr/apps/server-data/server-data.entry.js +275 -0
- package/fe/ssr/apps/ui-components/ui-components.entry.d.ts +5 -0
- package/fe/ssr/apps/ui-components/ui-components.entry.js +17 -0
- package/fe/ssr/components/StreamingRender/StreamingCache.d.ts +2 -0
- package/fe/ssr/components/StreamingRender/StreamingCache.js +31 -0
- package/fe/ssr/components/StreamingRender/StreamingRender.d.ts +3 -0
- package/fe/ssr/components/StreamingRender/StreamingRender.js +48 -0
- package/fe/ssr/components/StreamingRender/StreamingScript.d.ts +8 -0
- package/fe/ssr/components/StreamingRender/StreamingScript.js +58 -0
- package/fe/ssr/components/StreamingRender/index.d.ts +4 -0
- package/fe/ssr/components/StreamingRender/index.js +5 -0
- package/fe/ssr/components/StreamingRender/type.d.ts +9 -0
- package/fe/ssr/components/StreamingRender/type.js +0 -0
- package/fe/ssr/components/index.d.ts +2 -0
- package/fe/ssr/components/index.js +2 -0
- package/fe/ssr/createSSREntry.d.ts +6 -0
- package/fe/ssr/createSSREntry.js +42 -0
- package/fe/ssr/hooks/index.d.ts +1 -0
- package/fe/ssr/hooks/index.js +2 -0
- package/fe/ssr/hooks/useSuspensePromise.d.ts +1 -0
- package/fe/ssr/hooks/useSuspensePromise.js +31 -0
- package/fe/ssr/index.d.ts +4 -0
- package/fe/ssr/index.js +6 -0
- package/fe/ssr/types.d.ts +13 -0
- package/fe/ssr/types.js +0 -0
- package/{model → models}/frontend/src/typing/window.d.ts +2 -0
- package/{model → models}/packages/common/i18n/types.d.ts +1 -0
- package/{model → models}/packages/common/index.d.ts +1 -0
- package/models/packages/common/ssr/hydration.d.ts +23 -0
- package/models/packages/common/ssr/index.d.ts +8 -0
- package/{model → models}/packages/react/ui/components/Form/SchemaForm/data.d.ts +3 -2
- package/{model → models}/packages/react/ui/components/Form/SchemaForm/index.d.ts +1 -0
- package/package.json +43 -6
- package/types/app/controller/ssr.d.ts +14 -0
- package/types/app/html/shell.d.ts +101 -0
- package/types/app/router/ssr.d.ts +6 -0
- package/types/app/ssr/html.d.ts +53 -0
- package/types/app/ssr/manifest.d.ts +17 -0
- package/types/app/typings.d.ts +2 -0
- package/types/bundler/buildSSR.d.ts +56 -0
- package/types/bundler/entryCollect.d.ts +36 -0
- package/types/bundler/feSharedConfig.d.ts +35 -0
- package/types/bundler/index.d.ts +4 -0
- package/types/bundler/ssrClientManifest.d.ts +4 -0
- package/types/bundler/ssrEntries.d.ts +23 -0
- package/types/bundler/state.d.ts +2 -2
- package/types/bundler/utils.d.ts +35 -2
- package/types/config/config.default.d.ts +10 -0
- package/types/packages/common/i18n/types.d.ts +2 -0
- package/types/packages/common/index.d.ts +1 -0
- package/types/packages/common/ssr/hydration.d.ts +72 -0
- package/types/packages/common/ssr/index.d.ts +34 -0
- package/types/packages/core/loader/merge.d.ts +3 -0
- package/types/packages/core/loader/model.d.ts +2 -2
- package/types/packages/core/paths.d.ts +5 -0
- package/types/packages/core/types.d.ts +10 -1
- package/types/scripts/vite-build/build.d.ts +1 -0
- package/types/scripts/vite-build/types.d.ts +3 -0
- package/types/ssrSharedData/outputPaths.d.ts +59 -0
- package/fe/packages/react/hooks/useWatch.test.js +0 -24
- package/fe/packages/react/ui/assets/table/no-result.js +0 -4
- package/fe/packages/react/ui/components/DataTable/dataTableWidth.test.js +0 -39
- package/fe/packages/react/ui/components/InputNumber/inputNumberUtils.test.js +0 -59
- /package/.skills/tc-generator/reference/project-template/{model → models}/product/mode.js +0 -0
- /package/.skills/tc-generator/reference/project-template/{model → models}/product/project/default.js +0 -0
- /package/fe/{model → models}/types/data/button.d.ts +0 -0
- /package/fe/{model → models}/types/data/component.d.ts +0 -0
- /package/fe/{model → models}/types/data/fetchInfo.d.ts +0 -0
- /package/fe/{model → models}/types/data/schema.d.ts +0 -0
- /package/fe/{model → models}/types/data/search.d.ts +0 -0
- /package/fe/{model → models}/types/index.d.ts +0 -0
- /package/fe/{model → models}/types/menuType.d.ts +0 -0
- /package/fe/{model → models}/types/model.d.ts +0 -0
- /package/{model → models}/frontend/extended/SchemaForm/data.d.ts +0 -0
- /package/{model → models}/frontend/src/common/auth/index.d.ts +0 -0
- /package/{model → models}/frontend/src/common/fetchErrorShow.d.ts +0 -0
- /package/{model → models}/frontend/src/common/language.d.ts +0 -0
- /package/{model → models}/frontend/src/common/logFn/index.d.ts +0 -0
- /package/{model → models}/frontend/src/common/request.d.ts +0 -0
- /package/{model → models}/frontend/src/components/AsyncSelect/AsyncSelect.d.ts +0 -0
- /package/{model → models}/frontend/src/components/AsyncSelect/index.d.ts +0 -0
- /package/{model → models}/frontend/src/defaultPages/SchemaPage/components/CallCom/DetailPanel.d.ts +0 -0
- /package/{model → models}/frontend/src/defaultPages/SchemaPage/components/CallCom/PopFrom.d.ts +0 -0
- /package/{model → models}/frontend/src/defaultPages/SchemaPage/components/CallCom/builtIn.d.ts +0 -0
- /package/{model → models}/frontend/src/defaultPages/SchemaPage/data/eventInfo.d.ts +0 -0
- /package/{model → models}/frontend/src/defaultPages/SchemaPage/data/index.d.ts +0 -0
- /package/{model → models}/frontend/src/defaultPages/SchemaPage/hooks/useComConfig.d.ts +0 -0
- /package/{model → models}/frontend/src/defaultPages/SchemaPage/schemaType.d.ts +0 -0
- /package/{model → models}/frontend/src/defaultPages/SchemaPage/utils/permissions.d.ts +0 -0
- /package/{model → models}/frontend/src/defaultPages/SchemaPage/utils/validator.d.ts +0 -0
- /package/{model → models}/frontend/src/hooks/useText.d.ts +0 -0
- /package/{model → models}/frontend/src/language/en-US.d.ts +0 -0
- /package/{model → models}/frontend/src/language/index.d.ts +0 -0
- /package/{model → models}/frontend/src/language/resources.d.ts +0 -0
- /package/{model → models}/frontend/src/language/zh-CN.d.ts +0 -0
- /package/{model → models}/frontend/src/stores/apiFreezer.d.ts +0 -0
- /package/{model → models}/frontend/src/stores/schemaEventBus.d.ts +0 -0
- /package/{model → models}/frontend/src/stores/schemaStore.d.ts +0 -0
- /package/{model → models}/frontend/src/typing/scalability.d.ts +0 -0
- /package/{model/model → models/models}/index.d.ts +0 -0
- /package/{model/model → models/models}/test.d.ts +0 -0
- /package/{model/model → models/models}/types/data/button.d.ts +0 -0
- /package/{model/model → models/models}/types/data/component.d.ts +0 -0
- /package/{model/model → models/models}/types/data/fetchInfo.d.ts +0 -0
- /package/{model/model → models/models}/types/data/schema.d.ts +0 -0
- /package/{model/model → models/models}/types/data/search.d.ts +0 -0
- /package/{model/model → models/models}/types/index.d.ts +0 -0
- /package/{model/model → models/models}/types/menuType.d.ts +0 -0
- /package/{model/model → models/models}/types/model.d.ts +0 -0
- /package/{model → models}/packages/common/array/index.d.ts +0 -0
- /package/{model → models}/packages/common/cache/LRUCache.d.ts +0 -0
- /package/{model → models}/packages/common/cache/index.d.ts +0 -0
- /package/{model → models}/packages/common/guards/index.d.ts +0 -0
- /package/{model → models}/packages/common/http/index.d.ts +0 -0
- /package/{model → models}/packages/common/i18n/default.d.ts +0 -0
- /package/{model → models}/packages/common/i18n/en-US.d.ts +0 -0
- /package/{model → models}/packages/common/i18n/index.d.ts +0 -0
- /package/{model → models}/packages/common/i18n/locales.d.ts +0 -0
- /package/{model → models}/packages/common/log/index.d.ts +0 -0
- /package/{model → models}/packages/common/number/index.d.ts +0 -0
- /package/{model → models}/packages/common/object/filterEmpty.d.ts +0 -0
- /package/{model → models}/packages/common/object/index.d.ts +0 -0
- /package/{model → models}/packages/common/rafTimer.d.ts +0 -0
- /package/{model → models}/packages/common/string/index.d.ts +0 -0
- /package/{model → models}/packages/common/types/index.d.ts +0 -0
- /package/{model → models}/packages/react/hooks/useBreadcrumb.d.ts +0 -0
- /package/{model → models}/packages/react/hooks/useExecuteOnce.d.ts +0 -0
- /package/{model → models}/packages/react/hooks/useLanguage.d.ts +0 -0
- /package/{model → models}/packages/react/ui/components/Button/Button.d.ts +0 -0
- /package/{model → models}/packages/react/ui/components/Button/SubmitButton.d.ts +0 -0
- /package/{model → models}/packages/react/ui/components/Button/index.d.ts +0 -0
- /package/{model → models}/packages/react/ui/components/Card/Card.d.ts +0 -0
- /package/{model → models}/packages/react/ui/components/Card/index.d.ts +0 -0
- /package/{model → models}/packages/react/ui/components/Checkbox/Checkbox.d.ts +0 -0
- /package/{model → models}/packages/react/ui/components/Checkbox/index.d.ts +0 -0
- /package/{model → models}/packages/react/ui/components/ConfirmDialog/ConfirmDialog.d.ts +0 -0
- /package/{model → models}/packages/react/ui/components/ConfirmDialog/index.d.ts +0 -0
- /package/{model → models}/packages/react/ui/components/DataTable/ActionBtn.d.ts +0 -0
- /package/{model → models}/packages/react/ui/components/DataTable/dataTableWidth.d.ts +0 -0
- /package/{model → models}/packages/react/ui/components/DataTable/index.d.ts +0 -0
- /package/{model → models}/packages/react/ui/components/Date/Calendar.d.ts +0 -0
- /package/{model → models}/packages/react/ui/components/Date/Date.d.ts +0 -0
- /package/{model → models}/packages/react/ui/components/Date/LocaleContext.d.ts +0 -0
- /package/{model → models}/packages/react/ui/components/Date/LocaleProvider.d.ts +0 -0
- /package/{model → models}/packages/react/ui/components/Date/TimePicker.d.ts +0 -0
- /package/{model → models}/packages/react/ui/components/Date/data.d.ts +0 -0
- /package/{model → models}/packages/react/ui/components/Date/dateLocaleStore.d.ts +0 -0
- /package/{model → models}/packages/react/ui/components/Date/dropdownPositioning.d.ts +0 -0
- /package/{model → models}/packages/react/ui/components/Date/index.d.ts +0 -0
- /package/{model → models}/packages/react/ui/components/Date/locales.d.ts +0 -0
- /package/{model → models}/packages/react/ui/components/Drawer/Drawer.d.ts +0 -0
- /package/{model → models}/packages/react/ui/components/Drawer/index.d.ts +0 -0
- /package/{model → models}/packages/react/ui/components/Dropdown/Dropdown.d.ts +0 -0
- /package/{model → models}/packages/react/ui/components/Dropdown/index.d.ts +0 -0
- /package/{model → models}/packages/react/ui/components/Form/Form.d.ts +0 -0
- /package/{model → models}/packages/react/ui/components/Form/FormItem.d.ts +0 -0
- /package/{model → models}/packages/react/ui/components/Form/index.d.ts +0 -0
- /package/{model → models}/packages/react/ui/components/Form/useForm.d.ts +0 -0
- /package/{model → models}/packages/react/ui/components/ImagePreview/ImagePreview.d.ts +0 -0
- /package/{model → models}/packages/react/ui/components/ImagePreview/PreviewImage.d.ts +0 -0
- /package/{model → models}/packages/react/ui/components/ImagePreview/index.d.ts +0 -0
- /package/{model → models}/packages/react/ui/components/Input/Input.d.ts +0 -0
- /package/{model → models}/packages/react/ui/components/Input/index.d.ts +0 -0
- /package/{model → models}/packages/react/ui/components/InputNumber/InputNumber.d.ts +0 -0
- /package/{model → models}/packages/react/ui/components/InputNumber/index.d.ts +0 -0
- /package/{model → models}/packages/react/ui/components/InputNumber/inputNumberUtils.d.ts +0 -0
- /package/{model → models}/packages/react/ui/components/Label/Label.d.ts +0 -0
- /package/{model → models}/packages/react/ui/components/Label/index.d.ts +0 -0
- /package/{model → models}/packages/react/ui/components/Layout/Layout.d.ts +0 -0
- /package/{model → models}/packages/react/ui/components/Layout/index.d.ts +0 -0
- /package/{model → models}/packages/react/ui/components/Loading/Loading.d.ts +0 -0
- /package/{model → models}/packages/react/ui/components/Loading/index.d.ts +0 -0
- /package/{model → models}/packages/react/ui/components/Menu/Menu.d.ts +0 -0
- /package/{model → models}/packages/react/ui/components/Menu/MenuContext.d.ts +0 -0
- /package/{model → models}/packages/react/ui/components/Menu/MenuItem.d.ts +0 -0
- /package/{model → models}/packages/react/ui/components/Menu/SubMenu.d.ts +0 -0
- /package/{model → models}/packages/react/ui/components/Menu/index.d.ts +0 -0
- /package/{model → models}/packages/react/ui/components/Menu/menuTypes.d.ts +0 -0
- /package/{model → models}/packages/react/ui/components/Menu/utils.d.ts +0 -0
- /package/{model → models}/packages/react/ui/components/Message/Message.d.ts +0 -0
- /package/{model → models}/packages/react/ui/components/Message/MessageManager.d.ts +0 -0
- /package/{model → models}/packages/react/ui/components/Message/data.d.ts +0 -0
- /package/{model → models}/packages/react/ui/components/Message/index.d.ts +0 -0
- /package/{model → models}/packages/react/ui/components/Modal/Modal.d.ts +0 -0
- /package/{model → models}/packages/react/ui/components/Modal/ModalManager.d.ts +0 -0
- /package/{model → models}/packages/react/ui/components/Modal/index.d.ts +0 -0
- /package/{model → models}/packages/react/ui/components/Notification/Notification.d.ts +0 -0
- /package/{model → models}/packages/react/ui/components/Notification/index.d.ts +0 -0
- /package/{model → models}/packages/react/ui/components/Overlay/Overlay.d.ts +0 -0
- /package/{model → models}/packages/react/ui/components/Overlay/index.d.ts +0 -0
- /package/{model → models}/packages/react/ui/components/Pagination/Pagination.d.ts +0 -0
- /package/{model → models}/packages/react/ui/components/Pagination/index.d.ts +0 -0
- /package/{model → models}/packages/react/ui/components/Popup/Popup.d.ts +0 -0
- /package/{model → models}/packages/react/ui/components/Popup/index.d.ts +0 -0
- /package/{model → models}/packages/react/ui/components/Radio/Radio.d.ts +0 -0
- /package/{model → models}/packages/react/ui/components/Radio/RadioGroup.d.ts +0 -0
- /package/{model → models}/packages/react/ui/components/Radio/index.d.ts +0 -0
- /package/{model → models}/packages/react/ui/components/Search/Search.d.ts +0 -0
- /package/{model → models}/packages/react/ui/components/Search/index.d.ts +0 -0
- /package/{model → models}/packages/react/ui/components/Select/Select.d.ts +0 -0
- /package/{model → models}/packages/react/ui/components/Select/dropdownPositioning.d.ts +0 -0
- /package/{model → models}/packages/react/ui/components/Select/index.d.ts +0 -0
- /package/{model → models}/packages/react/ui/components/Skeleton/Skeleton.d.ts +0 -0
- /package/{model → models}/packages/react/ui/components/Skeleton/index.d.ts +0 -0
- /package/{model → models}/packages/react/ui/components/Switch/Switch.d.ts +0 -0
- /package/{model → models}/packages/react/ui/components/Switch/index.d.ts +0 -0
- /package/{model → models}/packages/react/ui/components/TableSearch/TableSearch.d.ts +0 -0
- /package/{model → models}/packages/react/ui/components/TableSearch/index.d.ts +0 -0
- /package/{model → models}/packages/react/ui/components/TableSearch/lang.d.ts +0 -0
- /package/{model → models}/packages/react/ui/components/TableSearch/tableSearchLocaleStore.d.ts +0 -0
- /package/{model → models}/packages/react/ui/components/Tabs/Tabs.d.ts +0 -0
- /package/{model → models}/packages/react/ui/components/Tabs/index.d.ts +0 -0
- /package/{model → models}/packages/react/ui/components/Textarea/Textarea.d.ts +0 -0
- /package/{model → models}/packages/react/ui/components/Textarea/index.d.ts +0 -0
- /package/{model → models}/packages/react/ui/components/Tooltip/Tooltip.d.ts +0 -0
- /package/{model → models}/packages/react/ui/components/Tooltip/index.d.ts +0 -0
- /package/{model → models}/packages/react/ui/components/TreeSelect/TreeSelect.d.ts +0 -0
- /package/{model → models}/packages/react/ui/components/TreeSelect/index.d.ts +0 -0
- /package/{model → models}/packages/react/ui/components/Upload/ImageUpload.d.ts +0 -0
- /package/{model → models}/packages/react/ui/components/Upload/Upload.d.ts +0 -0
- /package/{model → models}/packages/react/ui/components/Upload/index.d.ts +0 -0
- /package/{model → models}/packages/react/ui/components/breadcrumb/breadcrumb.d.ts +0 -0
- /package/{model → models}/packages/react/ui/components/breadcrumb/index.d.ts +0 -0
- /package/{model → models}/packages/react/ui/components/hooks/useDropdownPositioning.d.ts +0 -0
- /package/{model → models}/packages/react/ui/components/hooks/useInputController.d.ts +0 -0
- /package/{model → models}/packages/react/ui/components/index.d.ts +0 -0
- /package/{model → models}/packages/react/ui/components/table/index.d.ts +0 -0
- /package/{model → models}/packages/react/ui/components/table/table.d.ts +0 -0
- /package/{model → models}/packages/react/ui/components/types/baseType.d.ts +0 -0
- /package/{model → models}/packages/react/ui/i18n/I18nProvider.d.ts +0 -0
- /package/{model → models}/packages/react/ui/i18n/index.d.ts +0 -0
- /package/{model → models}/packages/react/ui/i18n/useI18n.d.ts +0 -0
- /package/{model → models}/packages/react/ui/index.d.ts +0 -0
- /package/{model → models}/packages/react/ui/lib/createStoreHook.d.ts +0 -0
- /package/{model → models}/packages/react/ui/lib/export.d.ts +0 -0
- /package/{model → models}/packages/react/ui/lib/utils.d.ts +0 -0
- /package/{model → models}/packages/react/ui/stores/breadcrumb.d.ts +0 -0
- /package/{model → models}/packages/react/ui/stores/language.d.ts +0 -0
- /package/{model → models}/packages/react/ui/types/index.d.ts +0 -0
- /package/{model → models}/typings/type.d.ts +0 -0
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
//#region app/html/shell.ts
|
|
2
|
+
var e = {
|
|
3
|
+
head: "<!-- TC_SHARED_HEAD -->",
|
|
4
|
+
runtimeContext: "<!-- TC_RUNTIME_CONTEXT -->"
|
|
5
|
+
}, t = (e) => JSON.stringify(e).replace(/</g, "\\u003c").replace(/>/g, "\\u003e").replace(/&/g, "\\u0026").replace(/\u2028/g, "\\u2028").replace(/\u2029/g, "\\u2029");
|
|
6
|
+
function n(e) {
|
|
7
|
+
return String(e).replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """).replace(/'/g, "'");
|
|
8
|
+
}
|
|
9
|
+
function r(e) {
|
|
10
|
+
return n(e);
|
|
11
|
+
}
|
|
12
|
+
function i() {
|
|
13
|
+
return ";(() => {\n const storageKey = 'tc_theme'\n let mode = 'dark'\n\n try {\n const storedMode = localStorage.getItem(storageKey)\n if (storedMode === 'light' || storedMode === 'dark') {\n mode = storedMode\n }\n } catch (error) {\n // Keep the template default when localStorage is unavailable.\n }\n\n const root = document.documentElement\n root.classList.toggle('dark', mode === 'dark')\n root.style.colorScheme = mode\n})()";
|
|
14
|
+
}
|
|
15
|
+
function a() {
|
|
16
|
+
return `<script>${i()}<\/script>`;
|
|
17
|
+
}
|
|
18
|
+
function o({ titleHtml: e, descriptionAttr: t, preloadLinks: n = "" }) {
|
|
19
|
+
let r = typeof t == "string" ? `\n <meta name="description" content="${t}" />` : "", i = n ? `\n ${n}` : "";
|
|
20
|
+
return ` <meta charset="UTF-8" />
|
|
21
|
+
${a()}
|
|
22
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
23
|
+
<link rel="icon" type="image/x-icon" href="/static/logo.png" />
|
|
24
|
+
<title>${e}</title>${r}${i}`;
|
|
25
|
+
}
|
|
26
|
+
function s() {
|
|
27
|
+
return o({ titleHtml: "{{ name }}" });
|
|
28
|
+
}
|
|
29
|
+
function c({ basePathExpression: e, feBasePageExpression: t, projKeyExpression: n, signKeyExpression: r, renderModeExpression: i }) {
|
|
30
|
+
return `window['_basePath'] = ${e}
|
|
31
|
+
window['_FEBasePage'] = ${t}
|
|
32
|
+
window['_projKey'] = ${n}
|
|
33
|
+
window['_signKey'] = ${r}
|
|
34
|
+
window['_renderMode'] = ${i}
|
|
35
|
+
window['_isSSR'] = window['_renderMode'] === 'ssr'
|
|
36
|
+
const s = document.getElementById('input')
|
|
37
|
+
s.parentElement.removeChild(s)`;
|
|
38
|
+
}
|
|
39
|
+
function l() {
|
|
40
|
+
return "const appOptionsScript = document.getElementById('app-options-data')\nwindow['appOptions'] = JSON.parse(appOptionsScript.textContent || '{}')\nappOptionsScript.parentElement.removeChild(appOptionsScript)";
|
|
41
|
+
}
|
|
42
|
+
function u(e) {
|
|
43
|
+
return `<script id="input">
|
|
44
|
+
${c(e)}
|
|
45
|
+
<\/script>
|
|
46
|
+
<script type="application/json" id="app-options-data">${e.optionsJsonHtml}<\/script>
|
|
47
|
+
<script>
|
|
48
|
+
${l()}
|
|
49
|
+
<\/script>`;
|
|
50
|
+
}
|
|
51
|
+
function d() {
|
|
52
|
+
return u({
|
|
53
|
+
basePathExpression: "{{basePath | safe}}",
|
|
54
|
+
feBasePageExpression: "{{FEBasePage | safe}}",
|
|
55
|
+
projKeyExpression: "{{projKeyJson | safe}}",
|
|
56
|
+
signKeyExpression: "{{signKey | safe}}",
|
|
57
|
+
renderModeExpression: t("csr"),
|
|
58
|
+
optionsJsonHtml: "{{ options | safe }}"
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
function f(e, t, n) {
|
|
62
|
+
if (!e.includes(t)) throw Error(`CSR entry template is missing shared shell marker: ${t}`);
|
|
63
|
+
return e.replace(t, n);
|
|
64
|
+
}
|
|
65
|
+
function p(t) {
|
|
66
|
+
return f(f(t, e.head, s()), e.runtimeContext, d());
|
|
67
|
+
}
|
|
68
|
+
//#endregion
|
|
69
|
+
export { p as applySharedCSRShellTemplate, n as escapeHtml, r as escapeHtmlAttr, l as renderAppOptionsScriptContent, s as renderCSRDocumentHeadTemplate, d as renderCSRRuntimeContextScriptsTemplate, o as renderDocumentHeadHtml, u as renderRuntimeContextScriptsFromExpressions, c as renderRuntimeInputScriptContentFromExpressions, a as renderThemeScript, i as renderThemeScriptContent, t as serializeForHtmlScript, e as sharedCSRShellMarkers };
|
package/esm/app/middleware.js
CHANGED
|
@@ -1,22 +1,31 @@
|
|
|
1
|
-
import e from "
|
|
2
|
-
import t from "koa-
|
|
3
|
-
import n from "koa-
|
|
1
|
+
import { SSR_SERVER_OUT_DIR as e } from "../ssrSharedData/outputPaths.js";
|
|
2
|
+
import t from "koa-compress";
|
|
3
|
+
import n from "koa-bodyparser";
|
|
4
|
+
import r from "koa-static";
|
|
4
5
|
//#region app/middleware.ts
|
|
5
|
-
var
|
|
6
|
+
var i = n({
|
|
6
7
|
formLimit: "1000mb",
|
|
7
8
|
enableTypes: [
|
|
8
9
|
"form",
|
|
9
10
|
"json",
|
|
10
11
|
"text"
|
|
11
12
|
]
|
|
12
|
-
}),
|
|
13
|
-
let
|
|
13
|
+
}), a = (n) => {
|
|
14
|
+
let a = n.envs.isLocal() ? {
|
|
14
15
|
maxage: 0,
|
|
15
16
|
setHeaders(e) {
|
|
16
17
|
e.setHeader("Cache-Control", "no-store, no-cache, must-revalidate, proxy-revalidate"), e.setHeader("Pragma", "no-cache"), e.setHeader("Expires", "0");
|
|
17
18
|
}
|
|
18
|
-
} : { maxage:
|
|
19
|
-
|
|
19
|
+
} : { maxage: n.config.resourceCacheTimeMs ?? 300 * 1e3 };
|
|
20
|
+
n.use(n.middlewares.errorHandle), n.use(t({ threshold: 2048 }));
|
|
21
|
+
let o = [`/dist/${e}`, "/dist/.vite"];
|
|
22
|
+
n.use(async (e, t) => {
|
|
23
|
+
if (o.some((t) => e.path === t || e.path.startsWith(`${t}/`))) {
|
|
24
|
+
e.status = 404;
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
await t();
|
|
28
|
+
}), n.publicsPath.forEach((e) => n.use(r(e, a))), n.use(i), n.use(n.middlewares.requestParameterParsing), n.use(n.middlewares.projectHandler), !n.envs.isLocal() && n.use(n.middlewares.apiSignVerify), n.use(n.middlewares.apiParamsVerify);
|
|
20
29
|
};
|
|
21
30
|
//#endregion
|
|
22
|
-
export {
|
|
31
|
+
export { a as default };
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { normalizeRouteBasePath as e } from "../../packages/core/paths.js";
|
|
2
|
+
//#region app/router/ssr.ts
|
|
3
|
+
var t = (t, n) => {
|
|
4
|
+
let r = e(t.options.ssrPageBasePath, "/fessr");
|
|
5
|
+
n.level = 1, n.get([`${r}/:page`, `${r}/:page/:rest(.*)`], t.controller.ssr.renderSSRPage.bind(t.controller.ssr));
|
|
6
|
+
};
|
|
7
|
+
//#endregion
|
|
8
|
+
export { t as default };
|
package/esm/app/router/view.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
+
import { normalizeRouteBasePath as e } from "../../packages/core/paths.js";
|
|
1
2
|
//#region app/router/view.ts
|
|
2
|
-
var
|
|
3
|
-
let
|
|
4
|
-
|
|
3
|
+
var t = (t, n) => {
|
|
4
|
+
let r = e(t.options.pageBasePath);
|
|
5
|
+
n.level = 2, n.get([`${r}/:page`, `${r}/:page/:r(.*)`], t.controller.view.renderPage.bind(t.controller.view));
|
|
5
6
|
};
|
|
6
7
|
//#endregion
|
|
7
|
-
export {
|
|
8
|
+
export { t as default };
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { normalizeRouteBasePath as e } from "../../packages/core/paths.js";
|
|
2
|
+
import { escapeHtml as t, escapeHtmlAttr as n, renderAppOptionsScriptContent as r, renderDocumentHeadHtml as i, renderRuntimeContextScriptsFromExpressions as a, renderRuntimeInputScriptContentFromExpressions as o, serializeForHtmlScript as s } from "../html/shell.js";
|
|
3
|
+
//#region app/ssr/html.ts
|
|
4
|
+
function c(...e) {
|
|
5
|
+
return `/${e.filter(Boolean).map((e) => e.replace(/^\/+|\/+$/g, "")).filter(Boolean).join("/")}`;
|
|
6
|
+
}
|
|
7
|
+
function l(e) {
|
|
8
|
+
let t = e.query.projk;
|
|
9
|
+
return Array.isArray(t) ? t.join("") : String(t ?? "");
|
|
10
|
+
}
|
|
11
|
+
function u(t, n, r) {
|
|
12
|
+
let i = e(t.options.pageBasePath) || "/", a = c(e(t.options.ssrPageBasePath, "/fessr") || "/fessr", r), o = l(n);
|
|
13
|
+
return {
|
|
14
|
+
basePathExpression: s(a),
|
|
15
|
+
feBasePageExpression: s(i),
|
|
16
|
+
projKeyExpression: s(o),
|
|
17
|
+
signKeyExpression: s(t.config.signKey),
|
|
18
|
+
renderModeExpression: s("ssr"),
|
|
19
|
+
optionsJsonHtml: s(t.options)
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
function d(e, t, n) {
|
|
23
|
+
return o(u(e, t, n));
|
|
24
|
+
}
|
|
25
|
+
function f(e, t, n) {
|
|
26
|
+
return a(u(e, t, n));
|
|
27
|
+
}
|
|
28
|
+
function p(e) {
|
|
29
|
+
let { app: t, ctx: n, page: r, hydrationScript: i = "", clientScript: a = "" } = e;
|
|
30
|
+
return {
|
|
31
|
+
beforeAppHtml: `<!DOCTYPE html>
|
|
32
|
+
<html lang="en" class="dark" style="color-scheme: dark">
|
|
33
|
+
<head>
|
|
34
|
+
${m(e)}
|
|
35
|
+
</head>
|
|
36
|
+
${f(t, n, r)}
|
|
37
|
+
<body>
|
|
38
|
+
<div id="root">`,
|
|
39
|
+
afterAppHtml: `</div>
|
|
40
|
+
${i}
|
|
41
|
+
${a}
|
|
42
|
+
</body>
|
|
43
|
+
</html>`
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
function m(e) {
|
|
47
|
+
let { title: r, description: a = "", preloadLinks: o = "" } = e;
|
|
48
|
+
return i({
|
|
49
|
+
titleHtml: t(r),
|
|
50
|
+
descriptionAttr: n(a),
|
|
51
|
+
preloadLinks: o
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
function h(e, t) {
|
|
55
|
+
let { app: n, ctx: i, page: a, appNode: o, hydrationScriptContent: c = "" } = t;
|
|
56
|
+
return e.createElement("html", {
|
|
57
|
+
lang: "en",
|
|
58
|
+
className: "dark",
|
|
59
|
+
style: { colorScheme: "dark" }
|
|
60
|
+
}, e.createElement("head", { dangerouslySetInnerHTML: { __html: m(t) } }), e.createElement("body", null, e.createElement("script", {
|
|
61
|
+
id: "input",
|
|
62
|
+
dangerouslySetInnerHTML: { __html: d(n, i, a) }
|
|
63
|
+
}), e.createElement("script", {
|
|
64
|
+
type: "application/json",
|
|
65
|
+
id: "app-options-data",
|
|
66
|
+
dangerouslySetInnerHTML: { __html: s(n.options) }
|
|
67
|
+
}), e.createElement("script", { dangerouslySetInnerHTML: { __html: r() } }), c ? e.createElement("script", { dangerouslySetInnerHTML: { __html: c } }) : null, e.createElement("div", { id: "root" }, o)));
|
|
68
|
+
}
|
|
69
|
+
function g(e) {
|
|
70
|
+
let { appHtml: t, ...n } = e, { beforeAppHtml: r, afterAppHtml: i } = p(n);
|
|
71
|
+
return `${r}${t}${i}`;
|
|
72
|
+
}
|
|
73
|
+
function _(e) {
|
|
74
|
+
let { app: n, ctx: r, page: i, status: a, title: o, message: s, error: c } = e, l = n.config.ssr?.exposeErrorDetails ?? n.envs.isLocal(), u = c instanceof Error ? c.stack || c.message : String(c ?? ""), d = l && u ? `<pre style="white-space:pre-wrap;margin-top:16px;padding:12px;border:1px solid #d8dee4;background:#f6f8fa;color:#24292f;overflow:auto">${t(u)}</pre>` : "";
|
|
75
|
+
return g({
|
|
76
|
+
app: n,
|
|
77
|
+
ctx: r,
|
|
78
|
+
page: i,
|
|
79
|
+
title: o,
|
|
80
|
+
description: s,
|
|
81
|
+
appHtml: `<main style="font-family:system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;max-width:720px;margin:72px auto;padding:0 24px;line-height:1.5;color:#24292f">
|
|
82
|
+
<p style="margin:0 0 8px;color:#57606a;font-size:14px">SSR ${a}</p>
|
|
83
|
+
<h1 style="margin:0 0 12px;font-size:28px;line-height:1.2">${t(o)}</h1>
|
|
84
|
+
<p style="margin:0;color:#57606a">${t(s)}</p>
|
|
85
|
+
${d}
|
|
86
|
+
</main>`
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
//#endregion
|
|
90
|
+
export { h as createSSRDocumentElement, t as escapeHtml, n as escapeHtmlAttr, _ as renderSSRErrorHtml, g as renderSSRHtmlShell, p as renderSSRHtmlShellParts, s as serializeForHtmlScript };
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { ssrClientAssetUrl as e } from "../../ssrSharedData/outputPaths.js";
|
|
2
|
+
import t from "node:path";
|
|
3
|
+
//#region app/ssr/manifest.ts
|
|
4
|
+
function n(e) {
|
|
5
|
+
return String(e).replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """).replace(/'/g, "'");
|
|
6
|
+
}
|
|
7
|
+
function r(e, n, r) {
|
|
8
|
+
let i = n.split(t.sep).join("/"), a = r.src?.split(t.sep).join("/");
|
|
9
|
+
return [
|
|
10
|
+
r.name,
|
|
11
|
+
i,
|
|
12
|
+
a
|
|
13
|
+
].filter((e) => !!e).some((n) => {
|
|
14
|
+
let r = n.split(t.sep).join("/"), i = t.basename(r).replace(/\.entry\.[^.]+$/, "");
|
|
15
|
+
return r === e || i === e || t.basename(t.dirname(r)) === e;
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
function i(e, t) {
|
|
19
|
+
if (!e) return null;
|
|
20
|
+
let n = Object.entries(e), i = n.find(([, e]) => e.isEntry && e.name === t);
|
|
21
|
+
if (i) return i[1];
|
|
22
|
+
let a = n.find(([e, n]) => n.isEntry && r(t, e, n));
|
|
23
|
+
return a ? a[1] : n.find(([e, n]) => r(t, e, n))?.[1] ?? null;
|
|
24
|
+
}
|
|
25
|
+
function a(t, r) {
|
|
26
|
+
if (!t || !r) return "";
|
|
27
|
+
let i = t, a = [], o = /* @__PURE__ */ new Set(), s = /* @__PURE__ */ new Set();
|
|
28
|
+
function c(t) {
|
|
29
|
+
o.has(t) || (o.add(t), a.push(`<link rel="modulepreload" href="${n(e(t))}" />`));
|
|
30
|
+
}
|
|
31
|
+
function l(t) {
|
|
32
|
+
o.has(t) || (o.add(t), a.push(`<link rel="stylesheet" href="${n(e(t))}" />`));
|
|
33
|
+
}
|
|
34
|
+
function u(e) {
|
|
35
|
+
if (!s.has(e)) {
|
|
36
|
+
s.add(e), e.file && c(e.file);
|
|
37
|
+
for (let t of e.css ?? []) l(t);
|
|
38
|
+
for (let t of e.imports ?? []) {
|
|
39
|
+
let e = i[t];
|
|
40
|
+
e && u(e);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
return u(r), a.join("\n");
|
|
45
|
+
}
|
|
46
|
+
//#endregion
|
|
47
|
+
export { i as findSSRClientEntry, a as generateSSRPreloadLinks };
|
package/esm/app/view/entry.tpl
CHANGED
|
@@ -1,46 +1,11 @@
|
|
|
1
1
|
<!DOCTYPE html>
|
|
2
2
|
<html lang="en" class="dark" style="color-scheme: dark">
|
|
3
3
|
<head>
|
|
4
|
-
|
|
5
|
-
<script>
|
|
6
|
-
;(() => {
|
|
7
|
-
const storageKey = 'tc_theme'
|
|
8
|
-
let mode = 'dark'
|
|
9
|
-
|
|
10
|
-
try {
|
|
11
|
-
const storedMode = localStorage.getItem(storageKey)
|
|
12
|
-
if (storedMode === 'light' || storedMode === 'dark') {
|
|
13
|
-
mode = storedMode
|
|
14
|
-
}
|
|
15
|
-
} catch (error) {
|
|
16
|
-
// Keep the template default when localStorage is unavailable.
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
const root = document.documentElement
|
|
20
|
-
root.classList.toggle('dark', mode === 'dark')
|
|
21
|
-
root.style.colorScheme = mode
|
|
22
|
-
})()
|
|
23
|
-
</script>
|
|
24
|
-
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
25
|
-
<link rel="icon" type="image/x-icon" href="/static/logo.png" />
|
|
26
|
-
<title>{{ name }}</title>
|
|
4
|
+
<!-- TC_SHARED_HEAD -->
|
|
27
5
|
<!-- TC_HEAD_SLOT -->
|
|
28
6
|
</head>
|
|
29
7
|
|
|
30
|
-
|
|
31
|
-
window['_basePath'] = {{basePath | safe}}
|
|
32
|
-
window['_FEBasePage'] = {{FEBasePage | safe}}
|
|
33
|
-
window['_projKey'] = {{projKeyJson | safe}}
|
|
34
|
-
window['_signKey'] = {{signKey | safe}}
|
|
35
|
-
const s = document.getElementById('input')
|
|
36
|
-
s.parentElement.removeChild(s)
|
|
37
|
-
</script>
|
|
38
|
-
<script type="application/json" id="app-options-data">{{ options | safe }}</script>
|
|
39
|
-
<script>
|
|
40
|
-
const appOptionsScript = document.getElementById('app-options-data')
|
|
41
|
-
window['appOptions'] = JSON.parse(appOptionsScript.textContent || '{}')
|
|
42
|
-
appOptionsScript.parentElement.removeChild(appOptionsScript)
|
|
43
|
-
</script>
|
|
8
|
+
<!-- TC_RUNTIME_CONTEXT -->
|
|
44
9
|
|
|
45
10
|
<body>
|
|
46
11
|
<!-- TC_BODY_BEFORE_ROOT_SLOT -->
|
package/esm/bundler/buildBE.js
CHANGED
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import { logGreen as e, logRed as t, logYellow as n } from "../packages/common/log/index.js";
|
|
2
|
+
import { resolveRunPath as r, resolveSSRClientOutDir as i, resolveSSRManifestOutDir as a, resolveSSRServerOutDir as o } from "../ssrSharedData/outputPaths.js";
|
|
3
|
+
import { createBundlerPaths as s, createFEBasePlugins as c, createSSRNoExternal as l, createSSRResolveAlias as u, ssrReactExternal as d } from "./feSharedConfig.js";
|
|
4
|
+
import { collectBundlerSSREntries as f } from "./ssrEntries.js";
|
|
5
|
+
import { buildFESharedState as p, setBuildFEOptions as m } from "./state.js";
|
|
6
|
+
import { VBuildFE as h, createFECodeSplittingGroups as g, entries as _ } from "./utils.js";
|
|
7
|
+
import v from "path";
|
|
8
|
+
import { build as y } from "vite";
|
|
9
|
+
//#region bundler/buildSSR.ts
|
|
10
|
+
var b = s();
|
|
11
|
+
function x(e) {
|
|
12
|
+
return f(b, e);
|
|
13
|
+
}
|
|
14
|
+
function S(e) {
|
|
15
|
+
return o({
|
|
16
|
+
...e,
|
|
17
|
+
frameNodePath: b.frameNodePath
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
function C(e) {
|
|
21
|
+
return i({
|
|
22
|
+
...e,
|
|
23
|
+
frameNodePath: b.frameNodePath
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
function w(e) {
|
|
27
|
+
return a({
|
|
28
|
+
...e,
|
|
29
|
+
frameNodePath: b.frameNodePath
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
async function T(t, n) {
|
|
33
|
+
e("[SSR] Building server bundle..."), await y({
|
|
34
|
+
configFile: !1,
|
|
35
|
+
plugins: c(),
|
|
36
|
+
build: {
|
|
37
|
+
outDir: S(n),
|
|
38
|
+
emptyOutDir: !0,
|
|
39
|
+
ssr: !0,
|
|
40
|
+
rolldownOptions: {
|
|
41
|
+
input: t,
|
|
42
|
+
external: d,
|
|
43
|
+
output: { codeSplitting: { groups: g() } }
|
|
44
|
+
}
|
|
45
|
+
},
|
|
46
|
+
ssr: {
|
|
47
|
+
external: d,
|
|
48
|
+
noExternal: l(b, n?.ssrNoExternal)
|
|
49
|
+
},
|
|
50
|
+
resolve: { alias: u(b, n) }
|
|
51
|
+
}), e("[SSR] Server bundle done.");
|
|
52
|
+
}
|
|
53
|
+
async function E(t, n) {
|
|
54
|
+
e("[SSR] Building shared browser client bundle...");
|
|
55
|
+
let r = { ...p.options };
|
|
56
|
+
m({
|
|
57
|
+
...r,
|
|
58
|
+
baseDir: n?.baseDir ?? r.baseDir,
|
|
59
|
+
output: n?.output ?? r.output,
|
|
60
|
+
minifyHtml: n?.minifyHtml ?? r.minifyHtml
|
|
61
|
+
});
|
|
62
|
+
try {
|
|
63
|
+
await h(_(p.options), void 0, {
|
|
64
|
+
ssrInput: t,
|
|
65
|
+
ssrManifestOutDir: w(n)
|
|
66
|
+
});
|
|
67
|
+
} finally {
|
|
68
|
+
m(r);
|
|
69
|
+
}
|
|
70
|
+
e("[SSR] Shared browser client bundle done.");
|
|
71
|
+
}
|
|
72
|
+
async function D(n) {
|
|
73
|
+
let r = x(n);
|
|
74
|
+
if (Object.keys(r).length) try {
|
|
75
|
+
await T(r, n), await E(r, n), e("[SSR] All builds completed.");
|
|
76
|
+
} catch (e) {
|
|
77
|
+
throw t("[SSR] Build failed:"), t(e), e;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
async function O(e) {
|
|
81
|
+
let i = await import("chokidar"), a = e?.debounceMs ?? 200, o = v.resolve(r(e), "./ssr/apps"), s = [...new Set([b.frameSSRAppsPath, o])], c = i.watch(s, {
|
|
82
|
+
ignored: (e) => {
|
|
83
|
+
let t = e.split(v.sep).join("/");
|
|
84
|
+
return /(^|\/)\./.test(t) || /(^|\/)node_modules(\/|$)/.test(t) || /(^|\/)(dist|build|coverage)(\/|$)/.test(t) || /(^|\/)ssr-(server|client)(\/|$)/.test(t);
|
|
85
|
+
},
|
|
86
|
+
depth: 8,
|
|
87
|
+
persistent: !0,
|
|
88
|
+
ignoreInitial: !0,
|
|
89
|
+
usePolling: !0,
|
|
90
|
+
interval: 300
|
|
91
|
+
}), l, u = !1, d = !1, f = async () => {
|
|
92
|
+
if (u) {
|
|
93
|
+
d = !0;
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
u = !0;
|
|
97
|
+
try {
|
|
98
|
+
do {
|
|
99
|
+
d = !1;
|
|
100
|
+
try {
|
|
101
|
+
await D(e);
|
|
102
|
+
} catch (e) {
|
|
103
|
+
t(e);
|
|
104
|
+
}
|
|
105
|
+
} while (d);
|
|
106
|
+
} finally {
|
|
107
|
+
u = !1;
|
|
108
|
+
}
|
|
109
|
+
}, p = (e) => {
|
|
110
|
+
n(`[SSR] changed: ${e}`), l && clearTimeout(l), l = setTimeout(() => {
|
|
111
|
+
l = void 0, f();
|
|
112
|
+
}, a);
|
|
113
|
+
};
|
|
114
|
+
return c.on("all", (e, t) => {
|
|
115
|
+
[
|
|
116
|
+
"add",
|
|
117
|
+
"change",
|
|
118
|
+
"unlink",
|
|
119
|
+
"unlinkDir"
|
|
120
|
+
].includes(e) && p(t);
|
|
121
|
+
}), c.on("error", (e) => {
|
|
122
|
+
t("[SSR] watcher error:"), t(e);
|
|
123
|
+
}), n(`[SSR] watching ${s.join(", ")}/...`), c;
|
|
124
|
+
}
|
|
125
|
+
//#endregion
|
|
126
|
+
export { D as buildSSR, C as ssrClientOutDir, x as ssrEntries, w as ssrManifestOutDir, S as ssrServerOutDir, O as watchSSRFiles };
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import e from "path";
|
|
2
|
+
import * as t from "glob";
|
|
3
|
+
//#region bundler/entryCollect.ts
|
|
4
|
+
var n = [
|
|
5
|
+
"js",
|
|
6
|
+
"jsx",
|
|
7
|
+
"ts",
|
|
8
|
+
"tsx"
|
|
9
|
+
], r = (e) => e.replace(/\\/g, "/"), i = (e) => {
|
|
10
|
+
let t = r(e).split("/");
|
|
11
|
+
return t.some((e, n) => e === "ssr" && t[n + 1] === "apps");
|
|
12
|
+
}, a = (t) => e.basename(t).replace(/\.entry\.[^.]+$/, "");
|
|
13
|
+
function o(e, i) {
|
|
14
|
+
return e.flatMap((e) => {
|
|
15
|
+
let a = r(e), o = n.map((e) => `${a}/**/*.${e}`);
|
|
16
|
+
return t.sync(o, { nodir: !0 }).filter((e) => e.includes(".entry.")).filter((e) => !e.includes(".d.ts")).filter(i).sort();
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
function s(e) {
|
|
20
|
+
return o(e, (e) => !i(e));
|
|
21
|
+
}
|
|
22
|
+
function c(e) {
|
|
23
|
+
return o(e, i);
|
|
24
|
+
}
|
|
25
|
+
function l(e) {
|
|
26
|
+
return e.reduce((e, t) => (e[a(t)] = t, e), {});
|
|
27
|
+
}
|
|
28
|
+
function u(t, n) {
|
|
29
|
+
return e.resolve(n?.baseDir ?? process.cwd(), t);
|
|
30
|
+
}
|
|
31
|
+
function d(e) {
|
|
32
|
+
let t = e?.ssrEntries;
|
|
33
|
+
return t ? Object.entries(t).reduce((t, [n, r]) => (t[n] = u(r, e), t), {}) : {};
|
|
34
|
+
}
|
|
35
|
+
function f(e, t) {
|
|
36
|
+
let n = d(t);
|
|
37
|
+
if (t?.ssrEntriesMode === "replace") return n;
|
|
38
|
+
let r = l(c(e));
|
|
39
|
+
return t?.ssrEntries ? {
|
|
40
|
+
...r,
|
|
41
|
+
...n
|
|
42
|
+
} : r;
|
|
43
|
+
}
|
|
44
|
+
//#endregion
|
|
45
|
+
export { s as collectCSREntryFiles, f as collectSSREntries, c as collectSSREntryFiles, l as createEntryMap, i as isSSRAppsPath, d as normalizeConfiguredSSREntries, a as toEntryName };
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
import { resolveRunPath as e } from "../ssrSharedData/outputPaths.js";
|
|
2
|
+
import { existsSync as t } from "fs";
|
|
3
|
+
import n from "path";
|
|
4
|
+
import * as r from "glob";
|
|
5
|
+
import i from "@tailwindcss/vite";
|
|
6
|
+
import { createRequire as a } from "module";
|
|
7
|
+
import { fileURLToPath as o } from "url";
|
|
8
|
+
//#region bundler/feSharedConfig.ts
|
|
9
|
+
var s = typeof __filename == "string" ? __filename : o(import.meta.url), c = n.dirname(s), l = a(s), u = [
|
|
10
|
+
"",
|
|
11
|
+
".ts",
|
|
12
|
+
".tsx",
|
|
13
|
+
".js",
|
|
14
|
+
".jsx"
|
|
15
|
+
];
|
|
16
|
+
function d() {
|
|
17
|
+
let e = n.resolve(c, "../"), i = n.resolve(e, "../"), a = n.resolve(e, "./ssr"), o = n.resolve(i, "./fe/ssr"), s = n.resolve(o, "./apps"), l = r.sync(n.resolve(s, "**/*.entry.*")).length > 0, u = l ? o : a, d = n.resolve(e, "./frontend"), f = n.resolve(i, "./fe/frontend"), p = n.resolve(e, "./packages/react/ui"), m = n.resolve(i, "./fe/packages/react/ui"), h = n.resolve(e, "./packages/react/hooks"), g = n.resolve(i, "./fe/packages/react/hooks"), _ = n.resolve(e, "./packages/common"), v = n.resolve(i, "./fe/packages/common");
|
|
18
|
+
return {
|
|
19
|
+
currentDir: c,
|
|
20
|
+
frameNodePath: e,
|
|
21
|
+
framePackagePath: i,
|
|
22
|
+
frameFEPath: t(f) ? f : d,
|
|
23
|
+
frameSSRPath: u,
|
|
24
|
+
frameSSRAppsPath: n.resolve(u, "./apps"),
|
|
25
|
+
frameReactUIPath: t(m) ? m : p,
|
|
26
|
+
frameReactHooksPath: t(g) ? g : h,
|
|
27
|
+
frameCommonPath: t(v) ? v : _,
|
|
28
|
+
hasFramePublishedSSREntries: l
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
function f(e) {
|
|
32
|
+
return n.dirname(l.resolve(`${e}/package.json`));
|
|
33
|
+
}
|
|
34
|
+
function p() {
|
|
35
|
+
return {
|
|
36
|
+
react: f("react"),
|
|
37
|
+
"react-dom": f("react-dom")
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
function m(e, r) {
|
|
41
|
+
return e.reduce((e, [i, a, o, s = "./defaultAlias"]) => (e[i] = u.map((e) => n.resolve(o, a + e)).find((e) => t(e)) ?? n.resolve(r.currentDir, s), e), {});
|
|
42
|
+
}
|
|
43
|
+
function h(e, t) {
|
|
44
|
+
return m([
|
|
45
|
+
[
|
|
46
|
+
"@tc/scalability/SchemaPage/CallCom/data",
|
|
47
|
+
"./extended/SchemaPage/CallCom/data",
|
|
48
|
+
e
|
|
49
|
+
],
|
|
50
|
+
[
|
|
51
|
+
"@tc/scalability/SchemaPage/SchemaTable/data",
|
|
52
|
+
"./extended/SchemaPage/SchemaTable/data",
|
|
53
|
+
e
|
|
54
|
+
],
|
|
55
|
+
[
|
|
56
|
+
"@tc/scalability/dash/customRoutes",
|
|
57
|
+
"./extended/dash/customRoutes",
|
|
58
|
+
e
|
|
59
|
+
],
|
|
60
|
+
[
|
|
61
|
+
"@tc/scalability/dash/init",
|
|
62
|
+
"./extended/dash/init",
|
|
63
|
+
e
|
|
64
|
+
],
|
|
65
|
+
[
|
|
66
|
+
"@tc/scalability/dash/components",
|
|
67
|
+
"./extended/dash/components",
|
|
68
|
+
e
|
|
69
|
+
],
|
|
70
|
+
[
|
|
71
|
+
"@tc/scalability/dash/routeGuard",
|
|
72
|
+
"./extended/dash/routeGuard",
|
|
73
|
+
e,
|
|
74
|
+
"./defaultRouteGuard"
|
|
75
|
+
]
|
|
76
|
+
], t);
|
|
77
|
+
}
|
|
78
|
+
function g(e) {
|
|
79
|
+
let { runFEPath: t, paths: r, includeSourceOnlyAliases: i = !1 } = e;
|
|
80
|
+
return {
|
|
81
|
+
...p(),
|
|
82
|
+
...i ? {
|
|
83
|
+
"@fe": r.frameFEPath,
|
|
84
|
+
"@": n.resolve(r.frameFEPath, "./src"),
|
|
85
|
+
"@ssr": r.frameSSRPath,
|
|
86
|
+
"@model": n.resolve(r.frameNodePath, "./models/types"),
|
|
87
|
+
typings: n.resolve(r.frameNodePath, "./typings")
|
|
88
|
+
} : {},
|
|
89
|
+
"@tc/common": r.frameCommonPath,
|
|
90
|
+
"@tc/ui-react/hooks": r.frameReactHooksPath,
|
|
91
|
+
"@tc/ui-react": r.frameReactUIPath,
|
|
92
|
+
"@tc/schema-page-call-com/builtIn": n.resolve(r.frameFEPath, "./src/defaultPages/SchemaPage/components/CallCom/builtIn"),
|
|
93
|
+
...h(t, r)
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
function _(t, r) {
|
|
97
|
+
let i = e(r);
|
|
98
|
+
return {
|
|
99
|
+
...g({
|
|
100
|
+
runFEPath: n.resolve(i, "./frontend"),
|
|
101
|
+
paths: t
|
|
102
|
+
}),
|
|
103
|
+
"@fe": t.frameFEPath,
|
|
104
|
+
"@": n.resolve(t.frameFEPath, "./src"),
|
|
105
|
+
"@ssr": t.frameSSRPath,
|
|
106
|
+
"@store": n.resolve(t.frameFEPath, "./src/stores"),
|
|
107
|
+
"@model": n.resolve(t.frameNodePath, "./models/types"),
|
|
108
|
+
typings: n.resolve(t.frameNodePath, "./typings")
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
function v(t, r) {
|
|
112
|
+
return g({
|
|
113
|
+
runFEPath: n.resolve(e(r), "./frontend"),
|
|
114
|
+
paths: t,
|
|
115
|
+
includeSourceOnlyAliases: !0
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
var y = [
|
|
119
|
+
"react",
|
|
120
|
+
"react-dom",
|
|
121
|
+
"react-dom/server",
|
|
122
|
+
"react-dom/client",
|
|
123
|
+
"react/jsx-runtime",
|
|
124
|
+
"react/jsx-dev-runtime"
|
|
125
|
+
];
|
|
126
|
+
function b(e, t) {
|
|
127
|
+
let r = n.basename(e.framePackagePath), i = n.basename(n.dirname(e.framePackagePath)), a = i.startsWith("@") ? `${i}/${r}` : r;
|
|
128
|
+
return [...new Set([
|
|
129
|
+
a,
|
|
130
|
+
`${a}/fe`,
|
|
131
|
+
"rc-field-form",
|
|
132
|
+
"rc-util",
|
|
133
|
+
"tailwind-merge",
|
|
134
|
+
"@babel/runtime",
|
|
135
|
+
"async-validator",
|
|
136
|
+
...t ?? []
|
|
137
|
+
])];
|
|
138
|
+
}
|
|
139
|
+
function x() {
|
|
140
|
+
return [i()];
|
|
141
|
+
}
|
|
142
|
+
//#endregion
|
|
143
|
+
export { d as createBundlerPaths, _ as createCSRResolveAlias, x as createFEBasePlugins, g as createFECompatibleResolveAlias, p as createReactResolveAlias, b as createSSRNoExternal, v as createSSRResolveAlias, h as createScalabilityAliases, m as resolveAliasWithFallback, f as resolvePackageDir, y as ssrReactExternal };
|
package/esm/bundler/index.js
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
1
|
import { buildBE as e } from "./buildBE.js";
|
|
2
|
-
import {
|
|
3
|
-
|
|
2
|
+
import { resolveFEOutDir as t } from "./utils.js";
|
|
3
|
+
import { buildFE as n } from "./buildFE.js";
|
|
4
|
+
import { buildSSR as r, ssrClientOutDir as i, ssrEntries as a, ssrManifestOutDir as o, ssrServerOutDir as s, watchSSRFiles as c } from "./buildSSR.js";
|
|
5
|
+
export { e as buildBE, n as buildFE, r as buildSSR, t as resolveFEOutDir, i as ssrClientOutDir, a as ssrEntries, o as ssrManifestOutDir, s as ssrServerOutDir, c as watchSSRFiles };
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { SSR_CLIENT_MANIFEST_FILE as e } from "../ssrSharedData/outputPaths.js";
|
|
2
|
+
import { copyFileSync as t, existsSync as n, mkdirSync as r, rmSync as i } from "fs";
|
|
3
|
+
import a from "path";
|
|
4
|
+
//#region bundler/ssrClientManifest.ts
|
|
5
|
+
function o(o, s) {
|
|
6
|
+
let c = a.join(o, ".vite"), l = a.join(c, e), u = a.join(s, e);
|
|
7
|
+
if (!n(l)) throw Error(`Vite client manifest was not generated: ${l}`);
|
|
8
|
+
r(s, { recursive: !0 }), t(l, u), i(c, {
|
|
9
|
+
recursive: !0,
|
|
10
|
+
force: !0
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
//#endregion
|
|
14
|
+
export { o as moveClientManifestToSSRPrivate };
|