@oj-module/cli 0.2.64 → 0.2.67
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/bin/.oj-version +1 -0
- package/bin/oj +4 -0
- package/devkit/README.md +18 -4
- package/devkit/SKILL.md +35 -3
- package/devkit/framework-dev.md +22 -11
- package/devkit/manual.md +161 -68
- package/devkit/menu-rules.md +4 -1
- package/devkit/publish-walkthrough.md +110 -37
- package/devkit/wecom-internal-app.md +7 -2
- package/devkit/wecom-multi-corp-links.md +163 -0
- package/package.json +3 -2
- package/shell-dist/assets/ahooks.2l850ymmh0.js +18 -0
- package/shell-dist/assets/antd-es-locale-zh_CN.1gjjsvxbf0.js +1 -0
- package/shell-dist/assets/antd-img-crop.196rkty480.js +99 -0
- package/shell-dist/assets/antd-locale-en_US.561tozx860.js +1 -0
- package/shell-dist/assets/antd-locale-zh_CN.1cmpmgzh70.js +1 -0
- package/shell-dist/assets/antd.uw1coq15l0.js +348 -0
- package/shell-dist/assets/clsx.jotilrt2e0.js +1 -0
- package/shell-dist/assets/contract-errors.2o17vz9u50.js +1 -0
- package/shell-dist/assets/contract.3h327o3mj0.js +57 -0
- package/shell-dist/assets/cssinjs.atgmhan7m0.js +3 -0
- package/shell-dist/assets/dayjs-plugin-advancedFormat.3vsyd2eis0.js +1 -0
- package/shell-dist/assets/dayjs-plugin-customParseFormat.13xhghv1d0.js +1 -0
- package/shell-dist/assets/dayjs-plugin-isoWeek.1fn1tw82p0.js +1 -0
- package/shell-dist/assets/dayjs-plugin-localeData.2rwbjp9nk0.js +1 -0
- package/shell-dist/assets/dayjs-plugin-quarterOfYear.2oqo1lcx80.js +1 -0
- package/shell-dist/assets/dayjs-plugin-relativeTime.2pqs3et4y0.js +1 -0
- package/shell-dist/assets/dayjs-plugin-weekOfYear.gvn9iph080.js +1 -0
- package/shell-dist/assets/dayjs-plugin-weekYear.2u78l3ex10.js +1 -0
- package/shell-dist/assets/dayjs-plugin-weekday.2d56a4tml0.js +1 -0
- package/shell-dist/assets/dayjs.pa60l6wjo0.js +1 -0
- package/shell-dist/assets/dnd-kit-core.1xyreig6r0.js +5 -0
- package/shell-dist/assets/dnd-kit-sortable.s94qciuft0.js +1 -0
- package/shell-dist/assets/dnd-kit-utilities.1umw4xphb0.js +1 -0
- package/shell-dist/assets/i18next.33zqofapj0.js +1 -0
- package/shell-dist/assets/icons-es-components-Context.365qmflwg0.js +1 -0
- package/shell-dist/assets/icons.159wjwals0.js +57 -0
- package/shell-dist/assets/{index-xZhmujjM.js → index.6alqyx6ae0.js} +21 -1
- package/shell-dist/assets/jsx-dev-runtime.3uibuc82f0.js +14 -0
- package/shell-dist/assets/jsx-runtime.h40xu4o5b0.js +14 -0
- package/shell-dist/assets/keepalive-for-react.xenu5vam70.js +1 -0
- package/shell-dist/assets/kit.37kr8ui390.js +1 -0
- package/shell-dist/assets/ky.1cgch7gu60.js +6 -0
- package/shell-dist/assets/motion-react.pjsxytvjs0.js +12 -0
- package/shell-dist/assets/motion.21tciqutg0.js +4 -0
- package/shell-dist/assets/nprogress.2nz76n9ny0.js +7 -0
- package/shell-dist/assets/ojm-dayjs-locale-zh-cn.3vr3beiyp0.js +9 -0
- package/shell-dist/assets/pinyin-pro.3v0mnxczn0.js +1 -0
- package/shell-dist/assets/pro-components.2kyot1vcl0.js +83 -0
- package/shell-dist/assets/react-countup.2x8idnr8y0.js +10 -0
- package/shell-dist/assets/react-dom-client.ick0v05ob0.js +43 -0
- package/shell-dist/assets/react-dom.2so9uxg3f0.js +22 -0
- package/shell-dist/assets/react-error-boundary.2dncdfj3b0.js +1 -0
- package/shell-dist/assets/react-i18next.auhvjhqv00.js +1 -0
- package/shell-dist/assets/react-jss.1ei6dr9e00.js +29 -0
- package/shell-dist/assets/react-query.3rln45ow00.js +1 -0
- package/shell-dist/assets/react-router-dom.3c6zld8h40.js +44 -0
- package/shell-dist/assets/react-router.2h9rebcv50.js +56 -0
- package/shell-dist/assets/react.1ew63mwts0.js +14 -0
- package/shell-dist/assets/runtime.2dgstpjsu0.js +21702 -0
- package/shell-dist/assets/simplebar-react.2g739uvai0.js +1 -0
- package/shell-dist/assets/spin-delay.yjeyj6iwp0.js +9 -0
- package/shell-dist/assets/tailwind-merge.125ehiqjw0.js +1 -0
- package/shell-dist/assets/use-sync-external-store-shim.1nz1pi9bb0.js +22 -0
- package/shell-dist/assets/zustand-middleware.1xaxjueme0.js +6 -0
- package/shell-dist/assets/zustand-react-shallow.pybayv1hx0.js +1 -0
- package/shell-dist/assets/zustand-react.9fsl9brxy0.js +1 -0
- package/shell-dist/assets/zustand-shallow.6cz0yyv9x0.js +1 -0
- package/shell-dist/assets/zustand-vanilla-shallow.3424monv50.js +1 -0
- package/shell-dist/assets/zustand-vanilla.1mo3ka3g30.js +1 -0
- package/shell-dist/assets/zustand.3gjgzlnqo0.js +1 -0
- package/shell-dist/index.html +67 -118
- package/shell-dist/versions.json +3 -3
- package/src/__tests__/publish-keygen.test.ts +157 -0
- package/src/__tests__/templates-migration-schema-parity.test.ts +540 -0
- package/src/__tests__/templates-schema-columns.test.ts +15 -2
- package/src/__tests__/templates-tenant-scope.test.ts +6 -2
- package/src/bundle.ts +8 -3
- package/src/cli.ts +17 -5
- package/src/dev.ts +15 -10
- package/src/esm-exports.ts +152 -70
- package/src/install.ts +11 -4
- package/src/keygen.ts +54 -0
- package/src/lifecycle/__tests__/bundle.test.ts +21 -3
- package/src/lifecycle/__tests__/fixtures/fixture-valid/api/src/demo-solution/manifest.yaml +1 -1
- package/src/lifecycle/__tests__/fixtures/fixture-valid/api/src/demo-solution/migrations/0001__init.sql +2 -2
- package/src/lifecycle/__tests__/fixtures/fixture-valid/api/src/demo-solution/schema.yaml +5 -2
- package/src/lifecycle/__tests__/fixtures/fixture-valid/manifest.yaml +1 -1
- package/src/lifecycle/__tests__/manifest-contract.test.ts +75 -3
- package/src/lifecycle/__tests__/smoke.test.ts +2 -2
- package/src/manifest-contract.ts +91 -8
- package/src/market/bootstrap.ts +26 -2
- package/src/market/command.ts +1 -0
- package/src/market/publish.ts +5 -1
- package/src/market/walkthrough.ts +24 -8
- package/src/shared-deps.ts +69 -19
- package/src/site-base.ts +4 -0
- package/src/site.ts +2 -0
- package/src/usage.ts +8 -4
- package/src/vendor.ts +5 -1
- package/templates/config.yaml +4 -2
- package/templates/init.include.yaml +8 -3
- package/templates/openapi.json +460 -1
- package/templates/src/app/api/_platform/_lifecycle/compensate.ts +136 -0
- package/templates/src/app/api/_platform/_lifecycle/installer.ts +71 -22
- package/templates/src/app/api/_platform/_lifecycle/lock.ts +23 -0
- package/templates/src/app/api/_platform/_lifecycle/steps/deploy-web.ts +28 -0
- package/templates/src/app/api/_platform/_lifecycle/steps/preflight.ts +46 -0
- package/templates/src/app/api/_platform/_lifecycle/steps/reload.ts +100 -36
- package/templates/src/app/api/_platform/_lifecycle/steps/smoke.ts +7 -15
- package/templates/src/app/api/_platform/_lifecycle/text-edit.ts +71 -19
- package/templates/src/app/api/_platform/_lifecycle/types.ts +26 -2
- package/templates/src/app/api/_platform/_lifecycle/uninstall.ts +93 -14
- package/templates/src/app/api/_platform/_shared/service/domain/settings.ts +8 -4
- package/templates/src/app/api/_platform/manifest.yaml +1 -0
- package/templates/src/app/api/_platform/market/api.ts +235 -10
- package/templates/src/app/api/_platform/migrations/0001__baseline.mysql.sql +178 -0
- package/templates/src/app/api/_platform/migrations/0001__baseline.pg.sql +173 -0
- package/templates/src/app/api/_platform/migrations/0001__baseline.sql +188 -0
- package/templates/src/app/api/_platform/migrations/0002__market_release.mysql.sql +17 -0
- package/templates/src/app/api/_platform/migrations/0002__market_release.pg.sql +16 -0
- package/templates/src/app/api/_platform/migrations/0002__market_release.sql +33 -0
- package/templates/src/app/api/_platform/schema.yaml +18 -0
- package/templates/src/app/api/_platform/seed.mysql.sql +10 -0
- package/templates/src/app/api/_platform/seed.pg.sql +10 -0
- package/templates/src/app/api/auth/_shared/wecom/client.ts +24 -4
- package/templates/src/app/api/home/migrations/0001__create_home_tables.mysql.sql +14 -0
- package/templates/src/app/api/home/migrations/0001__create_home_tables.pg.sql +14 -0
- package/templates/src/app/api/home/migrations/0002__tenant.pg.sql +4 -0
- package/templates/src/app/api/home/seed.mysql.sql +71 -0
- package/templates/src/app/api/home/seed.pg.sql +71 -0
- package/templates/src/app/api/notification/_shared/notify.ts +6 -6
- package/templates/src/app/api/notification/migrations/0001__create_notifications.mysql.sql +11 -0
- package/templates/src/app/api/notification/migrations/0001__create_notifications.pg.sql +11 -0
- package/templates/src/app/api/notification/migrations/0002__notifications_user.mysql.sql +8 -0
- package/templates/src/app/api/notification/migrations/0003__notifications_broadcast.mysql.sql +21 -0
- package/templates/src/app/api/notification/migrations/0003__notifications_broadcast.pg.sql +22 -0
- package/templates/src/app/api/notification/migrations/0004__notifications_broadcast_hidden.mysql.sql +10 -0
- package/templates/src/app/api/notification/migrations/0004__notifications_broadcast_hidden.pg.sql +11 -0
- package/templates/src/app/api/notification/migrations/0005__tenant.pg.sql +6 -0
- package/templates/src/app/api/notification/seed.mysql.sql +8 -0
- package/templates/src/app/api/notification/seed.pg.sql +11 -0
- package/templates/src/app/api/publish/_shared/identity.ts +69 -0
- package/templates/src/app/api/publish/api.ts +349 -0
- package/templates/src/app/api/publish/manifest.yaml +8 -0
- package/templates/src/app/api/publish/migrations/0001__publish_credential.mysql.sql +23 -0
- package/templates/src/app/api/publish/migrations/0001__publish_credential.pg.sql +23 -0
- package/templates/src/app/api/publish/migrations/0001__publish_credential.sql +39 -0
- package/templates/src/app/api/publish/schema.yaml +33 -0
- package/templates/src/app/api/system/login-methods/api.ts +2 -1
- package/templates/src/app/web/_platform/__client/api.schemas.ts +15 -0
- package/templates/src/app/web/_platform/__client/index.ts +25 -1
- package/templates/src/app/web/entry.ts +9 -5
- package/templates/src/app/web/home/pages/components/bar-chart.tsx +5 -3
- package/templates/src/app/web/home/pages/components/echarts-setup.ts +30 -0
- package/templates/src/app/web/home/pages/components/line-chart.tsx +5 -3
- package/templates/src/app/web/home/pages/components/pie-chart.tsx +6 -3
- package/templates/src/app/web/home/pages/index.tsx +3 -2
- package/templates/src/app/web/home/routes.ts +8 -2
- package/templates/src/app/web/login/locales/en-US.json +7 -1
- package/templates/src/app/web/login/locales/zh-CN.json +7 -1
- package/templates/src/app/web/login/pages/login.tsx +79 -86
- package/templates/src/app/web/login/routes.ts +54 -1
- package/templates/src/app/web/personal-center/locales/en-US.json +1 -0
- package/templates/src/app/web/personal-center/locales/zh-CN.json +1 -0
- package/templates/src/app/web/personal-center/pages/my-profile/index.tsx +5 -0
- package/templates/src/app/web/system/__client/api.schemas.ts +2 -1
- package/templates/src/app/web/system/locales/en-US.json +1 -8
- package/templates/src/app/web/system/locales/zh-CN.json +1 -8
- package/templates/src/app/web/system/pages/settings/index.tsx +17 -4
- package/templates/src/app/web/system/routes.ts +0 -6
- package/templates/src/oj-market/web/__tests__/CardGrid.test.tsx +33 -0
- package/templates/src/oj-market/web/__tests__/DetailDrawer.test.tsx +69 -0
- package/templates/src/oj-market/web/__tests__/marketClient.fake.ts +7 -1
- package/templates/src/oj-market/web/api/client.ts +3 -0
- package/templates/src/oj-market/web/api/defaultClient.ts +5 -0
- package/templates/src/oj-market/web/components/CardItem.tsx +44 -1
- package/templates/src/oj-market/web/components/DetailDrawer.tsx +17 -1
- package/templates/src/oj-market/web/entry.ts +31 -2
- package/templates/src/oj-market/web/locales/en-US.json +5 -1
- package/templates/src/oj-market/web/locales/zh-CN.json +5 -1
- package/templates/src/oj-market/web/publish/__client/api.schemas.ts +61 -0
- package/templates/src/oj-market/web/publish/__client/index.ts +164 -0
- package/templates/src/oj-market/web/publish/locales/en-US.json +80 -0
- package/templates/src/oj-market/web/publish/locales/zh-CN.json +80 -0
- package/templates/src/oj-market/web/publish/pages/history.tsx +112 -0
- package/templates/src/oj-market/web/publish/pages/index.tsx +196 -0
- package/templates/src/oj-market/web/publish/pages/model.ts +52 -0
- package/templates/src/oj-market/web/publish/pages/token-modal.tsx +82 -0
- package/templates/src/oj-market/web/publish/routes.ts +41 -0
- package/templates/src/oj-market/web/types.ts +30 -0
- package/templates/tests/lifecycle/compensate.spec.ts +207 -0
- package/templates/tests/lifecycle/deploy-smoke.spec.ts +38 -14
- package/templates/tests/lifecycle/installer.spec.ts +28 -9
- package/templates/tests/lifecycle/market-api.spec.ts +164 -12
- package/templates/tests/lifecycle/preflight.spec.ts +68 -0
- package/templates/tests/lifecycle/role-title-translate.spec.ts +2 -32
- package/templates/tests/lifecycle/text-edit.spec.ts +45 -27
- package/templates/tests/lifecycle/uninstall.spec.ts +36 -0
- package/templates/tests/publish-credential.spec.ts +354 -0
- package/templates/tests/publish-identity.spec.ts +44 -0
- package/templates/tests/wecom-client-timeout.spec.ts +33 -3
- package/templates/tests/wecom-landing.spec.ts +63 -1
- package/templates/tsconfig.paths.json +1 -0
- package/templates/web.config.ts +6 -4
- package/vendor/host-versions.json +3 -3
- package/shell-dist/assets/ahooks.js +0 -6909
- package/shell-dist/assets/antd-es-locale-zh_CN.js +0 -257
- package/shell-dist/assets/antd-img-crop.js +0 -1495
- package/shell-dist/assets/antd-locale-en_US.js +0 -374
- package/shell-dist/assets/antd-locale-zh_CN.js +0 -379
- package/shell-dist/assets/antd.js +0 -106874
- package/shell-dist/assets/clsx.js +0 -33
- package/shell-dist/assets/contract-errors.js +0 -30
- package/shell-dist/assets/contract.js +0 -18900
- package/shell-dist/assets/cssinjs.js +0 -2595
- package/shell-dist/assets/dayjs-plugin-advancedFormat.js +0 -98
- package/shell-dist/assets/dayjs-plugin-customParseFormat.js +0 -173
- package/shell-dist/assets/dayjs-plugin-isoWeek.js +0 -77
- package/shell-dist/assets/dayjs-plugin-localeData.js +0 -126
- package/shell-dist/assets/dayjs-plugin-quarterOfYear.js +0 -77
- package/shell-dist/assets/dayjs-plugin-relativeTime.js +0 -92
- package/shell-dist/assets/dayjs-plugin-weekOfYear.js +0 -73
- package/shell-dist/assets/dayjs-plugin-weekYear.js +0 -63
- package/shell-dist/assets/dayjs-plugin-weekday.js +0 -63
- package/shell-dist/assets/dayjs.js +0 -326
- package/shell-dist/assets/dnd-kit-core.js +0 -3601
- package/shell-dist/assets/dnd-kit-sortable.js +0 -717
- package/shell-dist/assets/dnd-kit-utilities.js +0 -340
- package/shell-dist/assets/i18next.js +0 -2321
- package/shell-dist/assets/icons-es-components-Context.js +0 -20
- package/shell-dist/assets/icons.js +0 -34961
- package/shell-dist/assets/jsx-dev-runtime.js +0 -75
- package/shell-dist/assets/jsx-runtime.js +0 -97
- package/shell-dist/assets/keepalive-for-react.js +0 -283
- package/shell-dist/assets/kit.js +0 -151
- package/shell-dist/assets/ky.js +0 -1427
- package/shell-dist/assets/motion-react.js +0 -13589
- package/shell-dist/assets/motion.js +0 -9959
- package/shell-dist/assets/nprogress.js +0 -314
- package/shell-dist/assets/ojm--ant-design-icons-es-icons-BarsOutlined.js +0 -7
- package/shell-dist/assets/ojm--ant-design-icons-es-icons-CalendarOutlined.js +0 -7
- package/shell-dist/assets/ojm--ant-design-icons-es-icons-CaretDownFilled.js +0 -7
- package/shell-dist/assets/ojm--ant-design-icons-es-icons-CaretDownOutlined.js +0 -7
- package/shell-dist/assets/ojm--ant-design-icons-es-icons-CaretUpOutlined.js +0 -7
- package/shell-dist/assets/ojm--ant-design-icons-es-icons-CheckCircleFilled.js +0 -7
- package/shell-dist/assets/ojm--ant-design-icons-es-icons-CheckOutlined.js +0 -7
- package/shell-dist/assets/ojm--ant-design-icons-es-icons-ClockCircleOutlined.js +0 -7
- package/shell-dist/assets/ojm--ant-design-icons-es-icons-CloseCircleFilled.js +0 -7
- package/shell-dist/assets/ojm--ant-design-icons-es-icons-CloseOutlined.js +0 -7
- package/shell-dist/assets/ojm--ant-design-icons-es-icons-CopyOutlined.js +0 -7
- package/shell-dist/assets/ojm--ant-design-icons-es-icons-DeleteOutlined.js +0 -7
- package/shell-dist/assets/ojm--ant-design-icons-es-icons-DoubleLeftOutlined.js +0 -7
- package/shell-dist/assets/ojm--ant-design-icons-es-icons-DoubleRightOutlined.js +0 -7
- package/shell-dist/assets/ojm--ant-design-icons-es-icons-DownOutlined.js +0 -7
- package/shell-dist/assets/ojm--ant-design-icons-es-icons-DownloadOutlined.js +0 -7
- package/shell-dist/assets/ojm--ant-design-icons-es-icons-EditOutlined.js +0 -7
- package/shell-dist/assets/ojm--ant-design-icons-es-icons-EllipsisOutlined.js +0 -7
- package/shell-dist/assets/ojm--ant-design-icons-es-icons-EnterOutlined.js +0 -7
- package/shell-dist/assets/ojm--ant-design-icons-es-icons-ExclamationCircleFilled.js +0 -7
- package/shell-dist/assets/ojm--ant-design-icons-es-icons-EyeInvisibleOutlined.js +0 -7
- package/shell-dist/assets/ojm--ant-design-icons-es-icons-EyeOutlined.js +0 -7
- package/shell-dist/assets/ojm--ant-design-icons-es-icons-FileOutlined.js +0 -7
- package/shell-dist/assets/ojm--ant-design-icons-es-icons-FileTextOutlined.js +0 -7
- package/shell-dist/assets/ojm--ant-design-icons-es-icons-FilterFilled.js +0 -7
- package/shell-dist/assets/ojm--ant-design-icons-es-icons-FolderOpenOutlined.js +0 -7
- package/shell-dist/assets/ojm--ant-design-icons-es-icons-FolderOutlined.js +0 -7
- package/shell-dist/assets/ojm--ant-design-icons-es-icons-HolderOutlined.js +0 -7
- package/shell-dist/assets/ojm--ant-design-icons-es-icons-InfoCircleFilled.js +0 -7
- package/shell-dist/assets/ojm--ant-design-icons-es-icons-LeftOutlined.js +0 -7
- package/shell-dist/assets/ojm--ant-design-icons-es-icons-LoadingOutlined.js +0 -7
- package/shell-dist/assets/ojm--ant-design-icons-es-icons-MinusOutlined.js +0 -7
- package/shell-dist/assets/ojm--ant-design-icons-es-icons-MinusSquareOutlined.js +0 -7
- package/shell-dist/assets/ojm--ant-design-icons-es-icons-PaperClipOutlined.js +0 -7
- package/shell-dist/assets/ojm--ant-design-icons-es-icons-PictureOutlined.js +0 -7
- package/shell-dist/assets/ojm--ant-design-icons-es-icons-PlusOutlined.js +0 -7
- package/shell-dist/assets/ojm--ant-design-icons-es-icons-PlusSquareOutlined.js +0 -7
- package/shell-dist/assets/ojm--ant-design-icons-es-icons-QuestionCircleOutlined.js +0 -7
- package/shell-dist/assets/ojm--ant-design-icons-es-icons-ReloadOutlined.js +0 -7
- package/shell-dist/assets/ojm--ant-design-icons-es-icons-RightOutlined.js +0 -7
- package/shell-dist/assets/ojm--ant-design-icons-es-icons-RotateLeftOutlined.js +0 -7
- package/shell-dist/assets/ojm--ant-design-icons-es-icons-RotateRightOutlined.js +0 -7
- package/shell-dist/assets/ojm--ant-design-icons-es-icons-SearchOutlined.js +0 -7
- package/shell-dist/assets/ojm--ant-design-icons-es-icons-StarFilled.js +0 -7
- package/shell-dist/assets/ojm--ant-design-icons-es-icons-SwapOutlined.js +0 -7
- package/shell-dist/assets/ojm--ant-design-icons-es-icons-SwapRightOutlined.js +0 -7
- package/shell-dist/assets/ojm--ant-design-icons-es-icons-UpOutlined.js +0 -7
- package/shell-dist/assets/ojm--ant-design-icons-es-icons-VerticalAlignTopOutlined.js +0 -7
- package/shell-dist/assets/ojm--ant-design-icons-es-icons-WarningFilled.js +0 -7
- package/shell-dist/assets/ojm--ant-design-icons-es-icons-ZoomInOutlined.js +0 -7
- package/shell-dist/assets/ojm--ant-design-icons-es-icons-ZoomOutOutlined.js +0 -7
- package/shell-dist/assets/ojm-dayjs-locale-zh-cn.js +0 -81
- package/shell-dist/assets/pinyin-pro.js +0 -25175
- package/shell-dist/assets/pro-components.js +0 -44627
- package/shell-dist/assets/react-countup.js +0 -525
- package/shell-dist/assets/react-dom-client.js +0 -12134
- package/shell-dist/assets/react-dom.js +0 -266
- package/shell-dist/assets/react-error-boundary.js +0 -141
- package/shell-dist/assets/react-i18next.js +0 -1773
- package/shell-dist/assets/react-jss.js +0 -4089
- package/shell-dist/assets/react-query.js +0 -3072
- package/shell-dist/assets/react-router-dom.js +0 -9927
- package/shell-dist/assets/react-router.js +0 -14584
- package/shell-dist/assets/react.js +0 -590
- package/shell-dist/assets/runtime.js +0 -28311
- package/shell-dist/assets/simplebar-react.js +0 -1119
- package/shell-dist/assets/spin-delay.js +0 -111
- package/shell-dist/assets/tailwind-merge.js +0 -3364
- package/shell-dist/assets/use-sync-external-store-shim.js +0 -130
- package/shell-dist/assets/zustand-middleware.js +0 -513
- package/shell-dist/assets/zustand-react-shallow.js +0 -27
- package/shell-dist/assets/zustand-react.js +0 -39
- package/shell-dist/assets/zustand-shallow.js +0 -22
- package/shell-dist/assets/zustand-vanilla-shallow.js +0 -71
- package/shell-dist/assets/zustand-vanilla.js +0 -40
- package/shell-dist/assets/zustand.js +0 -32
- package/templates/seed.mysql.sql +0 -6
- package/templates/seed.pg.sql +0 -6
- package/templates/src/app/api/_platform/migrations/0001__create_users.mysql.sql +0 -9
- package/templates/src/app/api/_platform/migrations/0001__create_users.pg.sql +0 -9
- package/templates/src/app/api/_platform/migrations/0001__create_users.sql +0 -7
- package/templates/src/app/api/_platform/migrations/0002__add_users_avatar_base64.mysql.sql +0 -3
- package/templates/src/app/api/_platform/migrations/0002__add_users_avatar_base64.sql +0 -2
- package/templates/src/app/api/_platform/migrations/0003__users_source_display_name.mysql.sql +0 -5
- package/templates/src/app/api/_platform/migrations/0003__users_source_display_name.sql +0 -5
- package/templates/src/app/api/_platform/migrations/0004__sys_rbac.mysql.sql +0 -70
- package/templates/src/app/api/_platform/migrations/0004__sys_rbac.pg.sql +0 -67
- package/templates/src/app/api/_platform/migrations/0004__sys_rbac.sql +0 -67
- package/templates/src/app/api/_platform/migrations/0005__users_must_change.mysql.sql +0 -3
- package/templates/src/app/api/_platform/migrations/0005__users_must_change.sql +0 -2
- package/templates/src/app/api/_platform/migrations/0006__users_is_forbidden.mysql.sql +0 -3
- package/templates/src/app/api/_platform/migrations/0006__users_is_forbidden.sql +0 -3
- package/templates/src/app/api/_platform/migrations/0007__users_email.sql +0 -3
- package/templates/src/app/api/_platform/migrations/0008__sys_refresh_token.mysql.sql +0 -10
- package/templates/src/app/api/_platform/migrations/0008__sys_refresh_token.pg.sql +0 -10
- package/templates/src/app/api/_platform/migrations/0008__sys_refresh_token.sql +0 -11
- package/templates/src/app/api/_platform/migrations/0009__sys_throttle.mysql.sql +0 -12
- package/templates/src/app/api/_platform/migrations/0009__sys_throttle.pg.sql +0 -12
- package/templates/src/app/api/_platform/migrations/0009__sys_throttle.sql +0 -13
- package/templates/src/app/api/_platform/migrations/0010__sys_solution_route.mysql.sql +0 -17
- package/templates/src/app/api/_platform/migrations/0010__sys_solution_route.pg.sql +0 -16
- package/templates/src/app/api/_platform/migrations/0010__sys_solution_route.sql +0 -18
- package/templates/src/app/api/_platform/migrations/0011__sys_setting_group_label.mysql.sql +0 -2
- package/templates/src/app/api/_platform/migrations/0011__sys_setting_group_label.sql +0 -4
- package/templates/src/app/api/_platform/migrations/0012__market_history.mysql.sql +0 -13
- package/templates/src/app/api/_platform/migrations/0012__market_history.pg.sql +0 -12
- package/templates/src/app/api/_platform/migrations/0012__market_history.sql +0 -14
- package/templates/src/app/api/_platform/migrations/0013__users_profile.sql +0 -4
- package/templates/src/app/api/_platform/migrations/0014__reg_source_seq.mysql.sql +0 -9
- package/templates/src/app/api/_platform/migrations/0014__reg_source_seq.pg.sql +0 -7
- package/templates/src/app/api/_platform/migrations/0014__reg_source_seq.sql +0 -8
- package/templates/src/app/api/_platform/migrations/0015__tenant.mysql.sql +0 -12
- package/templates/src/app/api/_platform/migrations/0015__tenant.pg.sql +0 -11
- package/templates/src/app/api/_platform/migrations/0015__tenant.sql +0 -44
- package/templates/src/app/api/_platform/migrations/0016__org.mysql.sql +0 -41
- package/templates/src/app/api/_platform/migrations/0016__org.pg.sql +0 -40
- package/templates/src/app/api/_platform/migrations/0016__org.sql +0 -62
- package/templates/src/app/api/_platform/migrations/0017__users_employee_no.mysql.sql +0 -7
- package/templates/src/app/api/_platform/migrations/0017__users_employee_no.pg.sql +0 -4
- package/templates/src/app/api/_platform/migrations/0017__users_employee_no.sql +0 -8
- package/templates/src/app/api/_platform/migrations/0018__sys_role_title_key.mysql.sql +0 -3
- package/templates/src/app/api/_platform/migrations/0018__sys_role_title_key.pg.sql +0 -3
- package/templates/src/app/api/_platform/migrations/0018__sys_role_title_key.sql +0 -8
- package/templates/src/app/web/system/pages/login-methods/index.tsx +0 -30
- /package/shell-dist/assets/{nprogress-css.js → nprogress-css.1cq2pzkre0.js} +0 -0
- /package/shell-dist/assets/{ojm-antd-es-button.js → ojm-antd-es-button.2uriphio50.js} +0 -0
- /package/shell-dist/assets/{ojm-antd-es-modal.js → ojm-antd-es-modal.bf3tgdh8v0.js} +0 -0
- /package/shell-dist/assets/{ojm-antd-es-slider.js → ojm-antd-es-slider.xyvptuhid0.js} +0 -0
- /package/shell-dist/assets/{ojm-antd-es-upload.js → ojm-antd-es-upload.13gx45e0g0.js} +0 -0
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
var __defProp = Object.defineProperty;
|
|
2
|
-
var __export = (target, all) => {
|
|
3
|
-
for (var name in all)
|
|
4
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
5
|
-
};
|
|
6
|
-
|
|
7
|
-
// ../../node_modules/.pnpm/zustand@5.0.15_@types+react@19.2.18_react@19.2.8_use-sync-external-store@1.6.0_react@19.2.8_/node_modules/zustand/esm/react.mjs
|
|
8
|
-
var react_exports = {};
|
|
9
|
-
__export(react_exports, {
|
|
10
|
-
create: () => create,
|
|
11
|
-
useStore: () => useStore
|
|
12
|
-
});
|
|
13
|
-
import React from "react";
|
|
14
|
-
import { createStore } from "zustand/vanilla";
|
|
15
|
-
var identity = (arg) => arg;
|
|
16
|
-
function useStore(api, selector = identity) {
|
|
17
|
-
const slice = React.useSyncExternalStore(
|
|
18
|
-
api.subscribe,
|
|
19
|
-
React.useCallback(() => selector(api.getState()), [api, selector]),
|
|
20
|
-
React.useCallback(() => selector(api.getInitialState()), [api, selector])
|
|
21
|
-
);
|
|
22
|
-
React.useDebugValue(slice);
|
|
23
|
-
return slice;
|
|
24
|
-
}
|
|
25
|
-
var createImpl = (createState) => {
|
|
26
|
-
const api = createStore(createState);
|
|
27
|
-
const useBoundStore = (selector) => useStore(api, selector);
|
|
28
|
-
Object.assign(useBoundStore, api);
|
|
29
|
-
return useBoundStore;
|
|
30
|
-
};
|
|
31
|
-
var create = ((createState) => createState ? createImpl(createState) : createImpl);
|
|
32
|
-
|
|
33
|
-
// shell/.ojm-shim-zustand-react.mjs
|
|
34
|
-
var ojm_shim_zustand_react_default = void 0 ?? react_exports;
|
|
35
|
-
export {
|
|
36
|
-
create,
|
|
37
|
-
ojm_shim_zustand_react_default as default,
|
|
38
|
-
useStore
|
|
39
|
-
};
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
var __defProp = Object.defineProperty;
|
|
2
|
-
var __export = (target, all) => {
|
|
3
|
-
for (var name in all)
|
|
4
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
5
|
-
};
|
|
6
|
-
|
|
7
|
-
// ../../node_modules/.pnpm/zustand@5.0.15_@types+react@19.2.18_react@19.2.8_use-sync-external-store@1.6.0_react@19.2.8_/node_modules/zustand/esm/shallow.mjs
|
|
8
|
-
var shallow_exports = {};
|
|
9
|
-
__export(shallow_exports, {
|
|
10
|
-
shallow: () => shallow,
|
|
11
|
-
useShallow: () => useShallow
|
|
12
|
-
});
|
|
13
|
-
import { shallow } from "zustand/vanilla/shallow";
|
|
14
|
-
import { useShallow } from "zustand/react/shallow";
|
|
15
|
-
|
|
16
|
-
// shell/.ojm-shim-zustand-shallow.mjs
|
|
17
|
-
var ojm_shim_zustand_shallow_default = void 0 ?? shallow_exports;
|
|
18
|
-
export {
|
|
19
|
-
ojm_shim_zustand_shallow_default as default,
|
|
20
|
-
shallow,
|
|
21
|
-
useShallow
|
|
22
|
-
};
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
var __defProp = Object.defineProperty;
|
|
2
|
-
var __export = (target, all) => {
|
|
3
|
-
for (var name in all)
|
|
4
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
5
|
-
};
|
|
6
|
-
|
|
7
|
-
// ../../node_modules/.pnpm/zustand@5.0.15_@types+react@19.2.18_react@19.2.8_use-sync-external-store@1.6.0_react@19.2.8_/node_modules/zustand/esm/vanilla/shallow.mjs
|
|
8
|
-
var shallow_exports = {};
|
|
9
|
-
__export(shallow_exports, {
|
|
10
|
-
shallow: () => shallow
|
|
11
|
-
});
|
|
12
|
-
var isIterable = (obj) => Symbol.iterator in obj;
|
|
13
|
-
var hasIterableEntries = (value) => (
|
|
14
|
-
// HACK: avoid checking entries type
|
|
15
|
-
"entries" in value
|
|
16
|
-
);
|
|
17
|
-
var compareEntries = (valueA, valueB) => {
|
|
18
|
-
const mapA = valueA instanceof Map ? valueA : new Map(valueA.entries());
|
|
19
|
-
const mapB = valueB instanceof Map ? valueB : new Map(valueB.entries());
|
|
20
|
-
if (mapA.size !== mapB.size) {
|
|
21
|
-
return false;
|
|
22
|
-
}
|
|
23
|
-
for (const [key, value] of mapA) {
|
|
24
|
-
if (!mapB.has(key) || !Object.is(value, mapB.get(key))) {
|
|
25
|
-
return false;
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
return true;
|
|
29
|
-
};
|
|
30
|
-
var compareIterables = (valueA, valueB) => {
|
|
31
|
-
const iteratorA = valueA[Symbol.iterator]();
|
|
32
|
-
const iteratorB = valueB[Symbol.iterator]();
|
|
33
|
-
let nextA = iteratorA.next();
|
|
34
|
-
let nextB = iteratorB.next();
|
|
35
|
-
while (!nextA.done && !nextB.done) {
|
|
36
|
-
if (!Object.is(nextA.value, nextB.value)) {
|
|
37
|
-
return false;
|
|
38
|
-
}
|
|
39
|
-
nextA = iteratorA.next();
|
|
40
|
-
nextB = iteratorB.next();
|
|
41
|
-
}
|
|
42
|
-
return !!nextA.done && !!nextB.done;
|
|
43
|
-
};
|
|
44
|
-
function shallow(valueA, valueB) {
|
|
45
|
-
if (Object.is(valueA, valueB)) {
|
|
46
|
-
return true;
|
|
47
|
-
}
|
|
48
|
-
if (typeof valueA !== "object" || valueA === null || typeof valueB !== "object" || valueB === null) {
|
|
49
|
-
return false;
|
|
50
|
-
}
|
|
51
|
-
if (Object.getPrototypeOf(valueA) !== Object.getPrototypeOf(valueB)) {
|
|
52
|
-
return false;
|
|
53
|
-
}
|
|
54
|
-
if (isIterable(valueA) && isIterable(valueB)) {
|
|
55
|
-
if (hasIterableEntries(valueA) && hasIterableEntries(valueB)) {
|
|
56
|
-
return compareEntries(valueA, valueB);
|
|
57
|
-
}
|
|
58
|
-
return compareIterables(valueA, valueB);
|
|
59
|
-
}
|
|
60
|
-
return compareEntries(
|
|
61
|
-
{ entries: () => Object.entries(valueA) },
|
|
62
|
-
{ entries: () => Object.entries(valueB) }
|
|
63
|
-
);
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
// shell/.ojm-shim-zustand-vanilla-shallow.mjs
|
|
67
|
-
var ojm_shim_zustand_vanilla_shallow_default = void 0 ?? shallow_exports;
|
|
68
|
-
export {
|
|
69
|
-
ojm_shim_zustand_vanilla_shallow_default as default,
|
|
70
|
-
shallow
|
|
71
|
-
};
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
var __defProp = Object.defineProperty;
|
|
2
|
-
var __export = (target, all) => {
|
|
3
|
-
for (var name in all)
|
|
4
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
5
|
-
};
|
|
6
|
-
|
|
7
|
-
// ../../node_modules/.pnpm/zustand@5.0.15_@types+react@19.2.18_react@19.2.8_use-sync-external-store@1.6.0_react@19.2.8_/node_modules/zustand/esm/vanilla.mjs
|
|
8
|
-
var vanilla_exports = {};
|
|
9
|
-
__export(vanilla_exports, {
|
|
10
|
-
createStore: () => createStore
|
|
11
|
-
});
|
|
12
|
-
var createStoreImpl = (createState) => {
|
|
13
|
-
let state;
|
|
14
|
-
const listeners = /* @__PURE__ */ new Set();
|
|
15
|
-
const setState = (partial, replace) => {
|
|
16
|
-
const nextState = typeof partial === "function" ? partial(state) : partial;
|
|
17
|
-
if (!Object.is(nextState, state)) {
|
|
18
|
-
const previousState = state;
|
|
19
|
-
state = (replace != null ? replace : typeof nextState !== "object" || nextState === null) ? nextState : Object.assign({}, state, nextState);
|
|
20
|
-
listeners.forEach((listener) => listener(state, previousState));
|
|
21
|
-
}
|
|
22
|
-
};
|
|
23
|
-
const getState = () => state;
|
|
24
|
-
const getInitialState = () => initialState;
|
|
25
|
-
const subscribe = (listener) => {
|
|
26
|
-
listeners.add(listener);
|
|
27
|
-
return () => listeners.delete(listener);
|
|
28
|
-
};
|
|
29
|
-
const api = { setState, getState, getInitialState, subscribe };
|
|
30
|
-
const initialState = state = createState(setState, getState, api);
|
|
31
|
-
return api;
|
|
32
|
-
};
|
|
33
|
-
var createStore = ((createState) => createState ? createStoreImpl(createState) : createStoreImpl);
|
|
34
|
-
|
|
35
|
-
// shell/.ojm-shim-zustand-vanilla.mjs
|
|
36
|
-
var ojm_shim_zustand_vanilla_default = void 0 ?? vanilla_exports;
|
|
37
|
-
export {
|
|
38
|
-
createStore,
|
|
39
|
-
ojm_shim_zustand_vanilla_default as default
|
|
40
|
-
};
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
var __defProp = Object.defineProperty;
|
|
2
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
-
var __copyProps = (to, from, except, desc) => {
|
|
6
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
7
|
-
for (let key of __getOwnPropNames(from))
|
|
8
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
9
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
10
|
-
}
|
|
11
|
-
return to;
|
|
12
|
-
};
|
|
13
|
-
var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
|
14
|
-
|
|
15
|
-
// ../../node_modules/.pnpm/zustand@5.0.15_@types+react@19.2.18_react@19.2.8_use-sync-external-store@1.6.0_react@19.2.8_/node_modules/zustand/esm/index.mjs
|
|
16
|
-
var esm_exports = {};
|
|
17
|
-
__reExport(esm_exports, vanilla_star);
|
|
18
|
-
__reExport(esm_exports, react_star);
|
|
19
|
-
import * as vanilla_star from "zustand/vanilla";
|
|
20
|
-
import * as react_star from "zustand/react";
|
|
21
|
-
|
|
22
|
-
// shell/.ojm-shim-zustand.mjs
|
|
23
|
-
var create2 = esm_exports["create"];
|
|
24
|
-
var createStore2 = esm_exports["createStore"];
|
|
25
|
-
var useStore2 = esm_exports["useStore"];
|
|
26
|
-
var ojm_shim_zustand_default = esm_exports.default ?? esm_exports;
|
|
27
|
-
export {
|
|
28
|
-
create2 as create,
|
|
29
|
-
createStore2 as createStore,
|
|
30
|
-
ojm_shim_zustand_default as default,
|
|
31
|
-
useStore2 as useStore
|
|
32
|
-
};
|
package/templates/seed.mysql.sql
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
-- 系统设置默认值(PRD §4.3;注释内禁英文分号)
|
|
2
|
-
INSERT IGNORE INTO sys_setting (key, module, `group`, type, value, default_value, label_key, secret, update_time) VALUES ('framework.site_title', 'framework', 'general', 'string', 'React Antd Admin', 'React Antd Admin', 'system:setting.site_title', 0, 0);
|
|
3
|
-
-- 系统设置默认值(PRD §4.3;注释内禁英文分号;framework.market_cdn_url 缺省 /cdn = 本站点自供,免 setup)
|
|
4
|
-
INSERT IGNORE INTO sys_setting (key, module, `group`, type, value, default_value, label_key, secret, update_time) VALUES ('framework.market_cdn_url', 'framework', 'security', 'string', '/cdn', '/cdn', 'system:setting.market_cdn_url', 0, 0);
|
|
5
|
-
INSERT IGNORE INTO sys_setting (key, module, `group`, type, value, default_value, label_key, secret, update_time) VALUES ('ldap.enabled', 'ldap', 'login', 'bool', '0', '0', 'system:setting.ldap_enabled', 0, 0);
|
|
6
|
-
INSERT IGNORE INTO sys_setting (key, module, `group`, type, value, default_value, label_key, secret, update_time) VALUES ('sso.enabled', 'sso', 'login', 'bool', '0', '0', 'system:setting.sso_enabled', 0, 0);
|
package/templates/seed.pg.sql
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
-- 系统设置默认值(PRD §4.3;注释内禁英文分号)
|
|
2
|
-
INSERT INTO sys_setting (key, module, "group", type, value, default_value, label_key, secret, update_time) VALUES ('framework.site_title', 'framework', 'general', 'string', 'React Antd Admin', 'React Antd Admin', 'system:setting.site_title', 0, 0) ON CONFLICT DO NOTHING;
|
|
3
|
-
-- 系统设置默认值(PRD §4.3;注释内禁英文分号;framework.market_cdn_url 缺省 /cdn = 本站点自供,免 setup)
|
|
4
|
-
INSERT INTO sys_setting (key, module, "group", type, value, default_value, label_key, secret, update_time) VALUES ('framework.market_cdn_url', 'framework', 'security', 'string', '/cdn', '/cdn', 'system:setting.market_cdn_url', 0, 0) ON CONFLICT DO NOTHING;
|
|
5
|
-
INSERT INTO sys_setting (key, module, "group", type, value, default_value, label_key, secret, update_time) VALUES ('ldap.enabled', 'ldap', 'login', 'bool', '0', '0', 'system:setting.ldap_enabled', 0, 0) ON CONFLICT DO NOTHING;
|
|
6
|
-
INSERT INTO sys_setting (key, module, "group", type, value, default_value, label_key, secret, update_time) VALUES ('sso.enabled', 'sso', 'login', 'bool', '0', '0', 'system:setting.sso_enabled', 0, 0) ON CONFLICT DO NOTHING;
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
-- users 表 mysql 方言覆盖(方言覆盖文件必胜,通用文件兜底,oj-bin docs/migration.md §3.1;约定同 oj-wiki 先例)。
|
|
2
|
-
-- 差异:AUTOINCREMENT → BIGINT AUTO_INCREMENT;username TEXT 改 VARCHAR(255)(mysql TEXT 不能带 UNIQUE);
|
|
3
|
-
-- roles TEXT 默认值写表达式 DEFAULT ('[]')(mysql ≥8.0.13 对 TEXT/BLOB 只允许表达式默认值)。
|
|
4
|
-
CREATE TABLE IF NOT EXISTS users (
|
|
5
|
-
id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
|
6
|
-
username VARCHAR(255) NOT NULL UNIQUE,
|
|
7
|
-
password_hash TEXT NOT NULL,
|
|
8
|
-
roles TEXT NOT NULL DEFAULT ('[]')
|
|
9
|
-
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
-- users 表 pg 方言覆盖(方言覆盖文件必胜,oj-bin docs/migration.md §3.1;约定同 oj-wiki 先例)。
|
|
2
|
-
-- 差异:AUTOINCREMENT → BIGSERIAL(GENERATED ALWAYS 系显式插值受限,SERIAL 系允许 seed 显式 id);
|
|
3
|
-
-- username TEXT UNIQUE 在 pg 合法,保留 TEXT。
|
|
4
|
-
CREATE TABLE IF NOT EXISTS users (
|
|
5
|
-
id BIGSERIAL PRIMARY KEY,
|
|
6
|
-
username TEXT NOT NULL UNIQUE,
|
|
7
|
-
password_hash TEXT NOT NULL,
|
|
8
|
-
roles TEXT NOT NULL DEFAULT '[]'
|
|
9
|
-
);
|
package/templates/src/app/api/_platform/migrations/0003__users_source_display_name.mysql.sql
DELETED
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
-- users 扩展列 mysql 方言覆盖(oj-wiki 0005/0006 先例同型)。
|
|
2
|
-
-- 差异:TEXT 默认值写表达式 DEFAULT ('local');DROP COLUMN mysql 8 原生支持,与基线同语法。
|
|
3
|
-
ALTER TABLE users ADD COLUMN source TEXT NOT NULL DEFAULT ('local');
|
|
4
|
-
ALTER TABLE users ADD COLUMN display_name TEXT;
|
|
5
|
-
ALTER TABLE users DROP COLUMN roles;
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
-- RBAC 地基:users 扩展列 + 移除 roles JSON 列(D10:sys_user_role 表为唯一权威源)
|
|
2
|
-
-- sqlite 方言(ALTER TABLE DROP COLUMN 需 sqlite ≥ 3.35,Node 22 内建满足)
|
|
3
|
-
ALTER TABLE users ADD COLUMN source TEXT NOT NULL DEFAULT 'local';
|
|
4
|
-
ALTER TABLE users ADD COLUMN display_name TEXT;
|
|
5
|
-
ALTER TABLE users DROP COLUMN roles;
|
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
-- 框架 RBAC 六表 mysql 方言覆盖(sqlite 版见 0004__sys_rbac.sql;oj-wiki 先例同型)。
|
|
2
|
-
-- 差异:保留字反引号(mysql 默认 sql_mode 下双引号是字符串字面量);
|
|
3
|
-
-- AUTO_INCREMENT 替 AUTOINCREMENT,id 取 BIGINT(与 users 同宽度口径);
|
|
4
|
-
-- 主键/默认值 TEXT → VARCHAR(255) / 表达式默认值(mysql TEXT 不能作主键、不能直接带默认值)。
|
|
5
|
-
CREATE TABLE IF NOT EXISTS sys_setting (
|
|
6
|
-
`key` VARCHAR(255) PRIMARY KEY,
|
|
7
|
-
module TEXT NOT NULL,
|
|
8
|
-
`group` TEXT NOT NULL,
|
|
9
|
-
type TEXT NOT NULL DEFAULT ('string'),
|
|
10
|
-
value TEXT,
|
|
11
|
-
default_value TEXT,
|
|
12
|
-
label_key TEXT,
|
|
13
|
-
options TEXT,
|
|
14
|
-
secret BIGINT NOT NULL DEFAULT 0,
|
|
15
|
-
update_time BIGINT NOT NULL DEFAULT 0
|
|
16
|
-
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
17
|
-
|
|
18
|
-
CREATE TABLE IF NOT EXISTS sys_oplog (
|
|
19
|
-
id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
|
20
|
-
create_time BIGINT NOT NULL,
|
|
21
|
-
user_id BIGINT NOT NULL DEFAULT 0,
|
|
22
|
-
username TEXT NOT NULL DEFAULT ('system'),
|
|
23
|
-
action TEXT NOT NULL,
|
|
24
|
-
module TEXT NOT NULL DEFAULT ('framework'),
|
|
25
|
-
version TEXT,
|
|
26
|
-
target TEXT,
|
|
27
|
-
detail TEXT,
|
|
28
|
-
level BIGINT NOT NULL DEFAULT 6
|
|
29
|
-
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
30
|
-
-- mysql 无 CREATE INDEX IF NOT EXISTS;迁移账本保证一次应用(oj-bin docs/migration.md 语义)
|
|
31
|
-
CREATE INDEX idx_sys_oplog_time ON sys_oplog (create_time, id);
|
|
32
|
-
|
|
33
|
-
CREATE TABLE IF NOT EXISTS sys_solution_route (
|
|
34
|
-
name VARCHAR(255) NOT NULL,
|
|
35
|
-
version VARCHAR(255) NOT NULL,
|
|
36
|
-
category TEXT NOT NULL,
|
|
37
|
-
path VARCHAR(255) NOT NULL,
|
|
38
|
-
`order` BIGINT NOT NULL DEFAULT 0,
|
|
39
|
-
title_key TEXT,
|
|
40
|
-
enabled BIGINT NOT NULL DEFAULT 1,
|
|
41
|
-
PRIMARY KEY (name, version, path)
|
|
42
|
-
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
43
|
-
|
|
44
|
-
CREATE TABLE IF NOT EXISTS sys_role (
|
|
45
|
-
name VARCHAR(255) PRIMARY KEY,
|
|
46
|
-
module TEXT NOT NULL,
|
|
47
|
-
title TEXT,
|
|
48
|
-
description TEXT,
|
|
49
|
-
builtin BIGINT NOT NULL DEFAULT 0,
|
|
50
|
-
deprecated BIGINT NOT NULL DEFAULT 0
|
|
51
|
-
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
52
|
-
|
|
53
|
-
CREATE TABLE IF NOT EXISTS sys_permission (
|
|
54
|
-
code VARCHAR(255) PRIMARY KEY,
|
|
55
|
-
module TEXT NOT NULL,
|
|
56
|
-
title_key TEXT,
|
|
57
|
-
deprecated BIGINT NOT NULL DEFAULT 0
|
|
58
|
-
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
59
|
-
|
|
60
|
-
CREATE TABLE IF NOT EXISTS sys_role_permission (
|
|
61
|
-
role_name VARCHAR(255) NOT NULL,
|
|
62
|
-
permission_code VARCHAR(255) NOT NULL,
|
|
63
|
-
PRIMARY KEY (role_name, permission_code)
|
|
64
|
-
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
65
|
-
|
|
66
|
-
CREATE TABLE IF NOT EXISTS sys_user_role (
|
|
67
|
-
user_id BIGINT NOT NULL,
|
|
68
|
-
role_name VARCHAR(255) NOT NULL,
|
|
69
|
-
PRIMARY KEY (user_id, role_name)
|
|
70
|
-
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
-- 框架 RBAC 六表 pg 方言覆盖(sqlite 版见 0004__sys_rbac.sql;oj-wiki 先例同型)。
|
|
2
|
-
-- 差异:双引号保留字与 TEXT 主键 pg 原生支持(与 sqlite 同语法);id 取 BIGSERIAL(同 0001.pg 先例)。
|
|
3
|
-
CREATE TABLE IF NOT EXISTS sys_setting (
|
|
4
|
-
key TEXT PRIMARY KEY,
|
|
5
|
-
module TEXT NOT NULL,
|
|
6
|
-
"group" TEXT NOT NULL,
|
|
7
|
-
type TEXT NOT NULL DEFAULT 'string',
|
|
8
|
-
value TEXT,
|
|
9
|
-
default_value TEXT,
|
|
10
|
-
label_key TEXT,
|
|
11
|
-
options TEXT,
|
|
12
|
-
secret INTEGER NOT NULL DEFAULT 0,
|
|
13
|
-
update_time INTEGER NOT NULL DEFAULT 0
|
|
14
|
-
);
|
|
15
|
-
|
|
16
|
-
CREATE TABLE IF NOT EXISTS sys_oplog (
|
|
17
|
-
id BIGSERIAL PRIMARY KEY,
|
|
18
|
-
create_time INTEGER NOT NULL,
|
|
19
|
-
user_id INTEGER NOT NULL DEFAULT 0,
|
|
20
|
-
username TEXT NOT NULL DEFAULT 'system',
|
|
21
|
-
action TEXT NOT NULL,
|
|
22
|
-
module TEXT NOT NULL DEFAULT 'framework',
|
|
23
|
-
version TEXT,
|
|
24
|
-
target TEXT,
|
|
25
|
-
detail TEXT,
|
|
26
|
-
level INTEGER NOT NULL DEFAULT 6
|
|
27
|
-
);
|
|
28
|
-
CREATE INDEX IF NOT EXISTS idx_sys_oplog_time ON sys_oplog (create_time, id);
|
|
29
|
-
|
|
30
|
-
CREATE TABLE IF NOT EXISTS sys_solution_route (
|
|
31
|
-
name TEXT NOT NULL,
|
|
32
|
-
version TEXT NOT NULL,
|
|
33
|
-
category TEXT NOT NULL,
|
|
34
|
-
path TEXT NOT NULL,
|
|
35
|
-
"order" INTEGER NOT NULL DEFAULT 0,
|
|
36
|
-
title_key TEXT,
|
|
37
|
-
enabled INTEGER NOT NULL DEFAULT 1,
|
|
38
|
-
PRIMARY KEY (name, version, path)
|
|
39
|
-
);
|
|
40
|
-
|
|
41
|
-
CREATE TABLE IF NOT EXISTS sys_role (
|
|
42
|
-
name TEXT PRIMARY KEY,
|
|
43
|
-
module TEXT NOT NULL,
|
|
44
|
-
title TEXT,
|
|
45
|
-
description TEXT,
|
|
46
|
-
builtin INTEGER NOT NULL DEFAULT 0,
|
|
47
|
-
deprecated INTEGER NOT NULL DEFAULT 0
|
|
48
|
-
);
|
|
49
|
-
|
|
50
|
-
CREATE TABLE IF NOT EXISTS sys_permission (
|
|
51
|
-
code TEXT PRIMARY KEY,
|
|
52
|
-
module TEXT NOT NULL,
|
|
53
|
-
title_key TEXT,
|
|
54
|
-
deprecated INTEGER NOT NULL DEFAULT 0
|
|
55
|
-
);
|
|
56
|
-
|
|
57
|
-
CREATE TABLE IF NOT EXISTS sys_role_permission (
|
|
58
|
-
role_name TEXT NOT NULL,
|
|
59
|
-
permission_code TEXT NOT NULL,
|
|
60
|
-
PRIMARY KEY (role_name, permission_code)
|
|
61
|
-
);
|
|
62
|
-
|
|
63
|
-
CREATE TABLE IF NOT EXISTS sys_user_role (
|
|
64
|
-
user_id INTEGER NOT NULL,
|
|
65
|
-
role_name TEXT NOT NULL,
|
|
66
|
-
PRIMARY KEY (user_id, role_name)
|
|
67
|
-
);
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
-- 框架 RBAC 六表(设计文档 §5.9.2;判权权威源 + 升级稳定性 deprecated 的地基)
|
|
2
|
-
-- sqlite 方言;mysql/pg 方言变体在阶段 A 冒烟时补齐
|
|
3
|
-
CREATE TABLE IF NOT EXISTS sys_setting (
|
|
4
|
-
key TEXT PRIMARY KEY,
|
|
5
|
-
module TEXT NOT NULL,
|
|
6
|
-
"group" TEXT NOT NULL,
|
|
7
|
-
type TEXT NOT NULL DEFAULT 'string',
|
|
8
|
-
value TEXT,
|
|
9
|
-
default_value TEXT,
|
|
10
|
-
label_key TEXT,
|
|
11
|
-
options TEXT,
|
|
12
|
-
secret INTEGER NOT NULL DEFAULT 0,
|
|
13
|
-
update_time INTEGER NOT NULL DEFAULT 0
|
|
14
|
-
);
|
|
15
|
-
|
|
16
|
-
CREATE TABLE IF NOT EXISTS sys_oplog (
|
|
17
|
-
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
18
|
-
create_time INTEGER NOT NULL,
|
|
19
|
-
user_id INTEGER NOT NULL DEFAULT 0,
|
|
20
|
-
username TEXT NOT NULL DEFAULT 'system',
|
|
21
|
-
action TEXT NOT NULL,
|
|
22
|
-
module TEXT NOT NULL DEFAULT 'framework',
|
|
23
|
-
version TEXT,
|
|
24
|
-
target TEXT,
|
|
25
|
-
detail TEXT,
|
|
26
|
-
level INTEGER NOT NULL DEFAULT 6
|
|
27
|
-
);
|
|
28
|
-
CREATE INDEX IF NOT EXISTS idx_sys_oplog_time ON sys_oplog (create_time, id);
|
|
29
|
-
|
|
30
|
-
CREATE TABLE IF NOT EXISTS sys_solution_route (
|
|
31
|
-
name TEXT NOT NULL,
|
|
32
|
-
version TEXT NOT NULL,
|
|
33
|
-
category TEXT NOT NULL,
|
|
34
|
-
path TEXT NOT NULL,
|
|
35
|
-
"order" INTEGER NOT NULL DEFAULT 0,
|
|
36
|
-
title_key TEXT,
|
|
37
|
-
enabled INTEGER NOT NULL DEFAULT 1,
|
|
38
|
-
PRIMARY KEY (name, version, path)
|
|
39
|
-
);
|
|
40
|
-
|
|
41
|
-
CREATE TABLE IF NOT EXISTS sys_role (
|
|
42
|
-
name TEXT PRIMARY KEY,
|
|
43
|
-
module TEXT NOT NULL,
|
|
44
|
-
title TEXT,
|
|
45
|
-
description TEXT,
|
|
46
|
-
builtin INTEGER NOT NULL DEFAULT 0,
|
|
47
|
-
deprecated INTEGER NOT NULL DEFAULT 0
|
|
48
|
-
);
|
|
49
|
-
|
|
50
|
-
CREATE TABLE IF NOT EXISTS sys_permission (
|
|
51
|
-
code TEXT PRIMARY KEY,
|
|
52
|
-
module TEXT NOT NULL,
|
|
53
|
-
title_key TEXT,
|
|
54
|
-
deprecated INTEGER NOT NULL DEFAULT 0
|
|
55
|
-
);
|
|
56
|
-
|
|
57
|
-
CREATE TABLE IF NOT EXISTS sys_role_permission (
|
|
58
|
-
role_name TEXT NOT NULL,
|
|
59
|
-
permission_code TEXT NOT NULL,
|
|
60
|
-
PRIMARY KEY (role_name, permission_code)
|
|
61
|
-
);
|
|
62
|
-
|
|
63
|
-
CREATE TABLE IF NOT EXISTS sys_user_role (
|
|
64
|
-
user_id INTEGER NOT NULL,
|
|
65
|
-
role_name TEXT NOT NULL,
|
|
66
|
-
PRIMARY KEY (user_id, role_name)
|
|
67
|
-
);
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
-- refresh token 存储 mysql 方言覆盖(sqlite 版见 0008__sys_refresh_token.sql;oj-wiki 先例同型)。
|
|
2
|
-
-- 差异:整型列取 BIGINT;CREATE INDEX 无 IF NOT EXISTS(迁移账本一次应用语义兜底)。
|
|
3
|
-
CREATE TABLE IF NOT EXISTS sys_refresh_token (
|
|
4
|
-
token_hash VARCHAR(255) PRIMARY KEY,
|
|
5
|
-
user_id BIGINT NOT NULL,
|
|
6
|
-
expires_at BIGINT NOT NULL,
|
|
7
|
-
revoked BIGINT NOT NULL DEFAULT 0,
|
|
8
|
-
created_at BIGINT NOT NULL
|
|
9
|
-
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
10
|
-
CREATE INDEX idx_sys_refresh_token_user ON sys_refresh_token (user_id);
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
-- refresh token 存储 pg 方言覆盖(sqlite 版见 0008__sys_refresh_token.sql;oj-wiki 先例同型)。
|
|
2
|
-
-- 差异:无(TEXT 主键与 CREATE INDEX IF NOT EXISTS pg 原生支持,与 sqlite 同语法)。
|
|
3
|
-
CREATE TABLE IF NOT EXISTS sys_refresh_token (
|
|
4
|
-
token_hash TEXT PRIMARY KEY,
|
|
5
|
-
user_id INTEGER NOT NULL,
|
|
6
|
-
expires_at INTEGER NOT NULL,
|
|
7
|
-
revoked INTEGER NOT NULL DEFAULT 0,
|
|
8
|
-
created_at INTEGER NOT NULL
|
|
9
|
-
);
|
|
10
|
-
CREATE INDEX IF NOT EXISTS idx_sys_refresh_token_user ON sys_refresh_token (user_id);
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
-- refresh token 存储(设计 §3.1:不透明随机串,DB 存 SHA-256 哈希——A1 六表未含,B1 实现期补)。
|
|
2
|
-
-- 轮换作旧(revoked 标记);reuse 检测 = 已吊销串二次出现 → 按 user_id 全族吊销 + 审计;
|
|
3
|
-
-- is_forbidden=1 或重置口令 → 级联删该用户全部记录(§3.1 吊销联动)。
|
|
4
|
-
CREATE TABLE IF NOT EXISTS sys_refresh_token (
|
|
5
|
-
token_hash TEXT PRIMARY KEY,
|
|
6
|
-
user_id INTEGER NOT NULL,
|
|
7
|
-
expires_at INTEGER NOT NULL,
|
|
8
|
-
revoked INTEGER NOT NULL DEFAULT 0,
|
|
9
|
-
created_at INTEGER NOT NULL
|
|
10
|
-
);
|
|
11
|
-
CREATE INDEX IF NOT EXISTS idx_sys_refresh_token_user ON sys_refresh_token (user_id);
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
-- 限速/登录节流状态落库 mysql 方言覆盖(sqlite 版见 0009__sys_throttle.sql;oj-wiki 先例同型)。
|
|
2
|
-
-- 差异:整型列取 BIGINT;rate_key 避开 MySQL 保留字 key。
|
|
3
|
-
CREATE TABLE IF NOT EXISTS sys_rate_window (
|
|
4
|
-
rate_key VARCHAR(255) PRIMARY KEY,
|
|
5
|
-
window_start BIGINT NOT NULL,
|
|
6
|
-
count BIGINT NOT NULL
|
|
7
|
-
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
8
|
-
CREATE TABLE IF NOT EXISTS sys_login_throttle (
|
|
9
|
-
pair_key VARCHAR(255) PRIMARY KEY,
|
|
10
|
-
fail_count BIGINT NOT NULL,
|
|
11
|
-
blocked_until BIGINT NOT NULL DEFAULT 0
|
|
12
|
-
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
-- 限速/登录节流状态落库 pg 方言覆盖(sqlite 版见 0009__sys_throttle.sql;oj-wiki 先例同型)。
|
|
2
|
-
-- 差异:无(TEXT 主键三方言同语法)。
|
|
3
|
-
CREATE TABLE IF NOT EXISTS sys_rate_window (
|
|
4
|
-
rate_key TEXT PRIMARY KEY,
|
|
5
|
-
window_start INTEGER NOT NULL,
|
|
6
|
-
count INTEGER NOT NULL
|
|
7
|
-
);
|
|
8
|
-
CREATE TABLE IF NOT EXISTS sys_login_throttle (
|
|
9
|
-
pair_key TEXT PRIMARY KEY,
|
|
10
|
-
fail_count INTEGER NOT NULL,
|
|
11
|
-
blocked_until INTEGER NOT NULL DEFAULT 0
|
|
12
|
-
);
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
-- 限速/登录节流状态落库(反常识修正:oj 运行时每请求重建模块实例,进程内 Map 不跨请求存活——
|
|
2
|
-
-- B5 连败阈值与接口滑动窗口在真实运行时恒失效;状态持久化后重启保留、多实例天然同源,
|
|
3
|
-
-- 原先「多实例换 Redis」的已知上限就此消除)。
|
|
4
|
-
CREATE TABLE IF NOT EXISTS sys_rate_window (
|
|
5
|
-
rate_key TEXT PRIMARY KEY,
|
|
6
|
-
window_start INTEGER NOT NULL,
|
|
7
|
-
count INTEGER NOT NULL
|
|
8
|
-
);
|
|
9
|
-
CREATE TABLE IF NOT EXISTS sys_login_throttle (
|
|
10
|
-
pair_key TEXT PRIMARY KEY,
|
|
11
|
-
fail_count INTEGER NOT NULL,
|
|
12
|
-
blocked_until INTEGER NOT NULL DEFAULT 0
|
|
13
|
-
);
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
-- 方案注册路由表重构 mysql 方言覆盖(sqlite 版见 0010__sys_solution_route.sql)。
|
|
2
|
-
-- 差异:保留字反引号;整型列取 BIGINT;主键 TEXT → VARCHAR(255);
|
|
3
|
-
-- ALTER ADD COLUMN / CREATE INDEX 无 IF NOT EXISTS(迁移账本一次应用语义兜底,同 0008)。
|
|
4
|
-
ALTER TABLE sys_setting ADD COLUMN deprecated BIGINT NOT NULL DEFAULT 0;
|
|
5
|
-
|
|
6
|
-
DROP TABLE IF EXISTS sys_solution_route;
|
|
7
|
-
CREATE TABLE sys_solution_route (
|
|
8
|
-
path VARCHAR(255) PRIMARY KEY,
|
|
9
|
-
module TEXT NOT NULL,
|
|
10
|
-
category TEXT NOT NULL,
|
|
11
|
-
`order` BIGINT NOT NULL DEFAULT 0,
|
|
12
|
-
title_key TEXT,
|
|
13
|
-
required_permission TEXT,
|
|
14
|
-
deprecated BIGINT NOT NULL DEFAULT 0,
|
|
15
|
-
enabled BIGINT NOT NULL DEFAULT 1
|
|
16
|
-
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
17
|
-
CREATE INDEX idx_sys_solution_route_module ON sys_solution_route (module);
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
-- 方案注册路由表重构 pg 方言覆盖(sqlite 版见 0010__sys_solution_route.sql)。
|
|
2
|
-
-- 差异:无(ADD COLUMN / DROP TABLE / 双引号保留字 / CREATE INDEX IF NOT EXISTS pg 原生支持)。
|
|
3
|
-
ALTER TABLE sys_setting ADD COLUMN deprecated INTEGER NOT NULL DEFAULT 0;
|
|
4
|
-
|
|
5
|
-
DROP TABLE IF EXISTS sys_solution_route;
|
|
6
|
-
CREATE TABLE sys_solution_route (
|
|
7
|
-
path TEXT PRIMARY KEY,
|
|
8
|
-
module TEXT NOT NULL,
|
|
9
|
-
category TEXT NOT NULL,
|
|
10
|
-
"order" INTEGER NOT NULL DEFAULT 0,
|
|
11
|
-
title_key TEXT,
|
|
12
|
-
required_permission TEXT,
|
|
13
|
-
deprecated INTEGER NOT NULL DEFAULT 0,
|
|
14
|
-
enabled INTEGER NOT NULL DEFAULT 1
|
|
15
|
-
);
|
|
16
|
-
CREATE INDEX IF NOT EXISTS idx_sys_solution_route_module ON sys_solution_route (module);
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
-- 方案注册路由表重构(P1-8,D10 注册唯一出口的落点):0004 版以 (name, version, path) 为主键、
|
|
2
|
-
-- 无 module/required_permission/deprecated 列,与「站点级路由注册(path 唯一 + 声明消失标
|
|
3
|
-
-- deprecated,镜像 AC2-3/4)」的语义不兼容;旧表从未被运行时读写(仅存在性断言),DROP 重建零数据损失。
|
|
4
|
-
-- 同时为 sys_setting 补 deprecated 列:设置定义行声明消失同样保留标 deprecated(P1-8 register 语义)。
|
|
5
|
-
ALTER TABLE sys_setting ADD COLUMN deprecated INTEGER NOT NULL DEFAULT 0;
|
|
6
|
-
|
|
7
|
-
DROP TABLE IF EXISTS sys_solution_route;
|
|
8
|
-
CREATE TABLE sys_solution_route (
|
|
9
|
-
path TEXT PRIMARY KEY,
|
|
10
|
-
module TEXT NOT NULL,
|
|
11
|
-
category TEXT NOT NULL,
|
|
12
|
-
"order" INTEGER NOT NULL DEFAULT 0,
|
|
13
|
-
title_key TEXT,
|
|
14
|
-
required_permission TEXT,
|
|
15
|
-
deprecated INTEGER NOT NULL DEFAULT 0,
|
|
16
|
-
enabled INTEGER NOT NULL DEFAULT 1
|
|
17
|
-
);
|
|
18
|
-
CREATE INDEX IF NOT EXISTS idx_sys_solution_route_module ON sys_solution_route (module);
|