@akanjs/cli 0.0.34 → 0.0.36
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/assets/app/akan.config.ts.template +5 -0
- package/assets/app/app/[lang]/(__appName__)/(public)/forgotpassword/page.tsx.template +16 -0
- package/assets/app/app/[lang]/(__appName__)/(public)/page.tsx.template +17 -0
- package/assets/app/app/[lang]/(__appName__)/(public)/privacy/page.tsx.template +10 -0
- package/assets/app/app/[lang]/(__appName__)/(public)/signin/page.tsx.template +19 -0
- package/assets/app/app/[lang]/(__appName__)/(public)/termsofservice/page.tsx.template +10 -0
- package/assets/app/app/[lang]/(__appName__)/(user)/layout.tsx.template +12 -0
- package/assets/app/app/[lang]/(__appName__)/(user)/self/page.tsx.template +29 -0
- package/assets/app/app/[lang]/(__appName__)/layout.tsx.template +21 -0
- package/assets/app/app/[lang]/admin/layout.tsx.template +22 -0
- package/assets/app/app/[lang]/admin/page.tsx.template +32 -0
- package/assets/app/app/csr.tsx.template +3 -0
- package/assets/app/app/index.html.template +13 -0
- package/assets/app/app/layout.tsx.template +7 -0
- package/assets/app/app/robots.ts.template +12 -0
- package/assets/app/app/sitemap.ts.template +8 -0
- package/assets/app/base/baseLogic.ts.template +7 -0
- package/assets/app/base/index.ts.template +1 -0
- package/assets/app/capacitor.config.ts.template +8 -0
- package/assets/app/client.ts.template +8 -0
- package/assets/app/common/commonLogic.ts.template +7 -0
- package/assets/app/common/index.ts.template +1 -0
- package/assets/app/config.yaml.template +19 -0
- package/assets/app/env/env.client.ts.template +10 -0
- package/assets/app/env/env.client.type.ts.template +7 -0
- package/assets/app/env/env.server.ts.template +10 -0
- package/assets/app/jest.config.ts.template +8 -0
- package/assets/app/lib/___appName__/__appName__.constant.ts.template +8 -0
- package/assets/app/lib/___appName__/__appName__.dictionary.ts.template +22 -0
- package/assets/app/lib/___appName__/__appName__.document.ts.template +6 -0
- package/assets/app/lib/___appName__/__appName__.service.ts.template +14 -0
- package/assets/app/lib/___appName__/__appName__.store.ts.template +8 -0
- package/assets/app/lib/___appName__/_server.ts.template +8 -0
- package/assets/app/lib/cnst.ts.template +4 -0
- package/assets/app/lib/cnst_.ts.template +38 -0
- package/assets/app/lib/db.ts.template +44 -0
- package/assets/app/lib/dict.ts.template +28 -0
- package/assets/app/lib/fetch.ts.template +18 -0
- package/assets/app/lib/option.ts.template +8 -0
- package/assets/app/lib/setting/Setting.Template.tsx.template +26 -0
- package/assets/app/lib/setting/Setting.Unit.tsx.template +7 -0
- package/assets/app/lib/setting/Setting.Util.tsx.template +3 -0
- package/assets/app/lib/setting/Setting.View.tsx.template +20 -0
- package/assets/app/lib/setting/Setting.Zone.tsx.template +49 -0
- package/assets/app/lib/setting/_server.ts.template +19 -0
- package/assets/app/lib/setting/index.tsx.template +30 -0
- package/assets/app/lib/setting/setting.constant.ts.template +17 -0
- package/assets/app/lib/setting/setting.dictionary.ts.template +18 -0
- package/assets/app/lib/setting/setting.document.ts.template +20 -0
- package/assets/app/lib/setting/setting.service.ts.template +12 -0
- package/assets/app/lib/setting/setting.signal.ts.template +6 -0
- package/assets/app/lib/setting/setting.store.ts.template +13 -0
- package/assets/app/lib/sig.ts.template +3 -0
- package/assets/app/lib/srv.ts.template +20 -0
- package/assets/app/lib/st.ts.template +6 -0
- package/assets/app/lib/store.ts.template +17 -0
- package/assets/app/lib/summary/Summary.Template.tsx.template +12 -0
- package/assets/app/lib/summary/Summary.Unit.tsx.template +7 -0
- package/assets/app/lib/summary/Summary.Util.tsx.template +2 -0
- package/assets/app/lib/summary/Summary.View.tsx.template +20 -0
- package/assets/app/lib/summary/Summary.Zone.tsx.template +31 -0
- package/assets/app/lib/summary/_server.ts.template +19 -0
- package/assets/app/lib/summary/index.tsx.template +36 -0
- package/assets/app/lib/summary/summary.constant.ts.template +16 -0
- package/assets/app/lib/summary/summary.dictionary.ts.template +21 -0
- package/assets/app/lib/summary/summary.document.ts.template +20 -0
- package/assets/app/lib/summary/summary.service.ts.template +26 -0
- package/assets/app/lib/summary/summary.signal.ts.template +6 -0
- package/assets/app/lib/summary/summary.store.ts.template +13 -0
- package/assets/app/lib/usePage.ts.template +5 -0
- package/assets/app/lib/user/User.Template.tsx.template +34 -0
- package/assets/app/lib/user/User.Unit.tsx.template +7 -0
- package/assets/app/lib/user/User.Util.tsx.template +63 -0
- package/assets/app/lib/user/User.View.tsx.template +35 -0
- package/assets/app/lib/user/User.Zone.tsx.template +43 -0
- package/assets/app/lib/user/_server.ts.template +19 -0
- package/assets/app/lib/user/index.tsx.template +30 -0
- package/assets/app/lib/user/user.constant.ts.template +31 -0
- package/assets/app/lib/user/user.dictionary.ts.template +24 -0
- package/assets/app/lib/user/user.document.ts.template +26 -0
- package/assets/app/lib/user/user.service.ts.template +14 -0
- package/assets/app/lib/user/user.signal.spec.ts.template +9 -0
- package/assets/app/lib/user/user.signal.test.ts.template +11 -0
- package/assets/app/lib/user/user.signal.ts.template +6 -0
- package/assets/app/lib/user/user.store.ts.template +11 -0
- package/assets/app/main.ts.template +12 -0
- package/assets/app/middleware.ts.template +4 -0
- package/assets/app/nest/backendLogic.ts.template +6 -0
- package/assets/app/nest/index.ts.template +1 -0
- package/assets/app/next/frontendLogic.ts.template +6 -0
- package/assets/app/next/index.ts.template +1 -0
- package/assets/app/page.test.ts.template +10 -0
- package/assets/app/playwright.config.ts.template +6 -0
- package/assets/app/postcss.config.js.template +10 -0
- package/assets/app/public/favicon.ico +0 -0
- package/assets/app/public/icons/icon-128x128.png +0 -0
- package/assets/app/public/icons/icon-144x144.png +0 -0
- package/assets/app/public/icons/icon-152x152.png +0 -0
- package/assets/app/public/icons/icon-192x192.png +0 -0
- package/assets/app/public/icons/icon-256x256.png +0 -0
- package/assets/app/public/icons/icon-384x384.png +0 -0
- package/assets/app/public/icons/icon-48x48.png +0 -0
- package/assets/app/public/icons/icon-512x512.png +0 -0
- package/assets/app/public/icons/icon-72x72.png +0 -0
- package/assets/app/public/icons/icon-96x96.png +0 -0
- package/assets/app/public/logo.svg +70 -0
- package/assets/app/public/manifest.json.template +67 -0
- package/assets/app/server.ts.template +30 -0
- package/assets/app/tsconfig.json.template +22 -0
- package/assets/app/tsconfig.spec.json.template +7 -0
- package/assets/app/ui/Footer.tsx.template +36 -0
- package/assets/app/ui/MainHeader.tsx.template +100 -0
- package/assets/app/ui/index.ts.template +2 -0
- package/assets/assets/app/akan.config.ts.template +5 -0
- package/assets/assets/app/app/[lang]/(__appName__)/(public)/forgotpassword/page.tsx.template +16 -0
- package/assets/assets/app/app/[lang]/(__appName__)/(public)/page.tsx.template +17 -0
- package/assets/assets/app/app/[lang]/(__appName__)/(public)/privacy/page.tsx.template +10 -0
- package/assets/assets/app/app/[lang]/(__appName__)/(public)/signin/page.tsx.template +19 -0
- package/assets/assets/app/app/[lang]/(__appName__)/(public)/termsofservice/page.tsx.template +10 -0
- package/assets/assets/app/app/[lang]/(__appName__)/(user)/layout.tsx.template +12 -0
- package/assets/assets/app/app/[lang]/(__appName__)/(user)/self/page.tsx.template +29 -0
- package/assets/assets/app/app/[lang]/(__appName__)/layout.tsx.template +21 -0
- package/assets/assets/app/app/[lang]/admin/layout.tsx.template +22 -0
- package/assets/assets/app/app/[lang]/admin/page.tsx.template +32 -0
- package/assets/assets/app/app/csr.tsx.template +3 -0
- package/assets/assets/app/app/index.html.template +13 -0
- package/assets/assets/app/app/layout.tsx.template +7 -0
- package/assets/assets/app/app/robots.ts.template +12 -0
- package/assets/assets/app/app/sitemap.ts.template +8 -0
- package/assets/assets/app/base/baseLogic.ts.template +7 -0
- package/assets/assets/app/base/index.ts.template +1 -0
- package/assets/assets/app/capacitor.config.ts.template +8 -0
- package/assets/assets/app/client.ts.template +8 -0
- package/assets/assets/app/common/commonLogic.ts.template +7 -0
- package/assets/assets/app/common/index.ts.template +1 -0
- package/assets/assets/app/config.yaml.template +19 -0
- package/assets/assets/app/env/env.client.ts.template +10 -0
- package/assets/assets/app/env/env.client.type.ts.template +7 -0
- package/assets/assets/app/env/env.server.ts.template +10 -0
- package/assets/assets/app/jest.config.ts.template +8 -0
- package/assets/assets/app/lib/___appName__/__appName__.constant.ts.template +8 -0
- package/assets/assets/app/lib/___appName__/__appName__.dictionary.ts.template +22 -0
- package/assets/assets/app/lib/___appName__/__appName__.document.ts.template +6 -0
- package/assets/assets/app/lib/___appName__/__appName__.service.ts.template +14 -0
- package/assets/assets/app/lib/___appName__/__appName__.store.ts.template +8 -0
- package/assets/assets/app/lib/___appName__/_server.ts.template +8 -0
- package/assets/assets/app/lib/cnst.ts.template +4 -0
- package/assets/assets/app/lib/cnst_.ts.template +38 -0
- package/assets/assets/app/lib/db.ts.template +44 -0
- package/assets/assets/app/lib/dict.ts.template +28 -0
- package/assets/assets/app/lib/fetch.ts.template +18 -0
- package/assets/assets/app/lib/option.ts.template +8 -0
- package/assets/assets/app/lib/setting/Setting.Template.tsx.template +26 -0
- package/assets/assets/app/lib/setting/Setting.Unit.tsx.template +7 -0
- package/assets/assets/app/lib/setting/Setting.Util.tsx.template +3 -0
- package/assets/assets/app/lib/setting/Setting.View.tsx.template +20 -0
- package/assets/assets/app/lib/setting/Setting.Zone.tsx.template +49 -0
- package/assets/assets/app/lib/setting/_server.ts.template +19 -0
- package/assets/assets/app/lib/setting/index.tsx.template +30 -0
- package/assets/assets/app/lib/setting/setting.constant.ts.template +17 -0
- package/assets/assets/app/lib/setting/setting.dictionary.ts.template +18 -0
- package/assets/assets/app/lib/setting/setting.document.ts.template +20 -0
- package/assets/assets/app/lib/setting/setting.service.ts.template +12 -0
- package/assets/assets/app/lib/setting/setting.signal.ts.template +6 -0
- package/assets/assets/app/lib/setting/setting.store.ts.template +13 -0
- package/assets/assets/app/lib/sig.ts.template +3 -0
- package/assets/assets/app/lib/srv.ts.template +20 -0
- package/assets/assets/app/lib/st.ts.template +6 -0
- package/assets/assets/app/lib/store.ts.template +17 -0
- package/assets/assets/app/lib/summary/Summary.Template.tsx.template +12 -0
- package/assets/assets/app/lib/summary/Summary.Unit.tsx.template +7 -0
- package/assets/assets/app/lib/summary/Summary.Util.tsx.template +2 -0
- package/assets/assets/app/lib/summary/Summary.View.tsx.template +20 -0
- package/assets/assets/app/lib/summary/Summary.Zone.tsx.template +31 -0
- package/assets/assets/app/lib/summary/_server.ts.template +19 -0
- package/assets/assets/app/lib/summary/index.tsx.template +36 -0
- package/assets/assets/app/lib/summary/summary.constant.ts.template +16 -0
- package/assets/assets/app/lib/summary/summary.dictionary.ts.template +21 -0
- package/assets/assets/app/lib/summary/summary.document.ts.template +20 -0
- package/assets/assets/app/lib/summary/summary.service.ts.template +26 -0
- package/assets/assets/app/lib/summary/summary.signal.ts.template +6 -0
- package/assets/assets/app/lib/summary/summary.store.ts.template +13 -0
- package/assets/assets/app/lib/usePage.ts.template +5 -0
- package/assets/assets/app/lib/user/User.Template.tsx.template +34 -0
- package/assets/assets/app/lib/user/User.Unit.tsx.template +7 -0
- package/assets/assets/app/lib/user/User.Util.tsx.template +63 -0
- package/assets/assets/app/lib/user/User.View.tsx.template +35 -0
- package/assets/assets/app/lib/user/User.Zone.tsx.template +43 -0
- package/assets/assets/app/lib/user/_server.ts.template +19 -0
- package/assets/assets/app/lib/user/index.tsx.template +30 -0
- package/assets/assets/app/lib/user/user.constant.ts.template +31 -0
- package/assets/assets/app/lib/user/user.dictionary.ts.template +24 -0
- package/assets/assets/app/lib/user/user.document.ts.template +26 -0
- package/assets/assets/app/lib/user/user.service.ts.template +14 -0
- package/assets/assets/app/lib/user/user.signal.spec.ts.template +9 -0
- package/assets/assets/app/lib/user/user.signal.test.ts.template +11 -0
- package/assets/assets/app/lib/user/user.signal.ts.template +6 -0
- package/assets/assets/app/lib/user/user.store.ts.template +11 -0
- package/assets/assets/app/main.ts.template +12 -0
- package/assets/assets/app/middleware.ts.template +4 -0
- package/assets/assets/app/nest/backendLogic.ts.template +6 -0
- package/assets/assets/app/nest/index.ts.template +1 -0
- package/assets/assets/app/next/frontendLogic.ts.template +6 -0
- package/assets/assets/app/next/index.ts.template +1 -0
- package/assets/assets/app/page.test.ts.template +10 -0
- package/assets/assets/app/playwright.config.ts.template +6 -0
- package/assets/assets/app/postcss.config.js.template +10 -0
- package/assets/assets/app/public/favicon.ico +0 -0
- package/assets/assets/app/public/icons/icon-128x128.png +0 -0
- package/assets/assets/app/public/icons/icon-144x144.png +0 -0
- package/assets/assets/app/public/icons/icon-152x152.png +0 -0
- package/assets/assets/app/public/icons/icon-192x192.png +0 -0
- package/assets/assets/app/public/icons/icon-256x256.png +0 -0
- package/assets/assets/app/public/icons/icon-384x384.png +0 -0
- package/assets/assets/app/public/icons/icon-48x48.png +0 -0
- package/assets/assets/app/public/icons/icon-512x512.png +0 -0
- package/assets/assets/app/public/icons/icon-72x72.png +0 -0
- package/assets/assets/app/public/icons/icon-96x96.png +0 -0
- package/assets/assets/app/public/logo.svg +70 -0
- package/assets/assets/app/public/manifest.json.template +67 -0
- package/assets/assets/app/server.ts.template +30 -0
- package/assets/assets/app/tsconfig.json.template +22 -0
- package/assets/assets/app/tsconfig.spec.json.template +7 -0
- package/assets/assets/app/ui/Footer.tsx.template +36 -0
- package/assets/assets/app/ui/MainHeader.tsx.template +100 -0
- package/assets/assets/app/ui/index.ts.template +2 -0
- package/assets/assets/crudPages/[__model__Id]/edit/page.tsx.template +42 -0
- package/assets/assets/crudPages/[__model__Id]/page.tsx.template +52 -0
- package/assets/assets/crudPages/new/page.tsx.template +39 -0
- package/assets/assets/crudPages/page.tsx.template +40 -0
- package/assets/assets/lib/.gitignore.template +15 -0
- package/assets/assets/lib/jest.config.ts.template +7 -0
- package/assets/assets/lib/package.json.template +5 -0
- package/assets/assets/lib/project.json.template +10 -0
- package/assets/assets/lib/tsconfig.json.template +11 -0
- package/assets/assets/lib/tsconfig.spec.json.template +7 -0
- package/assets/assets/module/__Model__.Template.tsx.template +23 -0
- package/assets/assets/module/__Model__.Unit.tsx.template +11 -0
- package/assets/assets/module/__Model__.Util.tsx.template +39 -0
- package/assets/assets/module/__Model__.View.tsx.template +17 -0
- package/assets/assets/module/__Model__.Zone.tsx.template +52 -0
- package/assets/assets/module/__model__.constant.ts.template +44 -0
- package/assets/assets/module/__model__.dictionary.ts.template +70 -0
- package/assets/assets/module/__model__.document.ts.template +25 -0
- package/assets/assets/module/__model__.service.ts.template +13 -0
- package/assets/assets/module/__model__.signal.spec.ts.template +11 -0
- package/assets/assets/module/__model__.signal.test.ts.template +20 -0
- package/assets/assets/module/__model__.signal.ts.template +30 -0
- package/assets/assets/module/__model__.store.ts.template +11 -0
- package/assets/assets/module/_server.ts.template +18 -0
- package/assets/assets/module/index.tsx.template +30 -0
- package/assets/assets/pkg/tsconfig.json.template +12 -0
- package/assets/assets/workplace/.gitignore.template +195 -0
- package/assets/assets/workplace/.prettierignore.template +10 -0
- package/assets/assets/workplace/.prettierrc.json.template +5 -0
- package/assets/assets/workplace/.swcrc.template +9 -0
- package/assets/assets/workplace/README.md.template +28 -0
- package/assets/assets/workplace/eslint.config.js.template +141 -0
- package/assets/assets/workplace/tsconfig.json.template +29 -0
- package/assets/crudPages/[__model__Id]/edit/page.tsx.template +42 -0
- package/assets/crudPages/[__model__Id]/page.tsx.template +52 -0
- package/assets/crudPages/new/page.tsx.template +39 -0
- package/assets/crudPages/page.tsx.template +40 -0
- package/assets/lib/.gitignore.template +15 -0
- package/assets/lib/jest.config.ts.template +7 -0
- package/assets/lib/package.json.template +5 -0
- package/assets/lib/project.json.template +10 -0
- package/assets/lib/tsconfig.json.template +11 -0
- package/assets/lib/tsconfig.spec.json.template +7 -0
- package/assets/module/__Model__.Template.tsx.template +23 -0
- package/assets/module/__Model__.Unit.tsx.template +11 -0
- package/assets/module/__Model__.Util.tsx.template +39 -0
- package/assets/module/__Model__.View.tsx.template +17 -0
- package/assets/module/__Model__.Zone.tsx.template +52 -0
- package/assets/module/__model__.constant.ts.template +44 -0
- package/assets/module/__model__.dictionary.ts.template +70 -0
- package/assets/module/__model__.document.ts.template +25 -0
- package/assets/module/__model__.service.ts.template +13 -0
- package/assets/module/__model__.signal.spec.ts.template +11 -0
- package/assets/module/__model__.signal.test.ts.template +20 -0
- package/assets/module/__model__.signal.ts.template +30 -0
- package/assets/module/__model__.store.ts.template +11 -0
- package/assets/module/_server.ts.template +18 -0
- package/assets/module/index.tsx.template +30 -0
- package/assets/pkg/tsconfig.json.template +12 -0
- package/assets/workplace/.gitignore.template +195 -0
- package/assets/workplace/.prettierignore.template +10 -0
- package/assets/workplace/.prettierrc.json.template +5 -0
- package/assets/workplace/.swcrc.template +9 -0
- package/assets/workplace/README.md.template +28 -0
- package/assets/workplace/eslint.config.js.template +141 -0
- package/assets/workplace/tsconfig.json.template +29 -0
- package/index.js +5025 -307
- package/package.json +35 -10
- package/templates/__scalar/__model__/__model__.constant.js +34 -0
- package/templates/__scalar/__model__/__model__.dictionary.js +45 -0
- package/templates/__scalar/__model__/__model__.document.js +32 -0
- package/templates/app/akan.config.ts.template +5 -0
- package/templates/app/app/[lang]/(__appName__)/(public)/forgotpassword/page.js +43 -0
- package/templates/app/app/[lang]/(__appName__)/(public)/page.js +44 -0
- package/templates/app/app/[lang]/(__appName__)/(public)/privacy/page.js +38 -0
- package/templates/app/app/[lang]/(__appName__)/(public)/signin/page.js +46 -0
- package/templates/app/app/[lang]/(__appName__)/(public)/termsofservice/page.js +37 -0
- package/templates/app/app/[lang]/(__appName__)/(user)/layout.js +39 -0
- package/templates/app/app/[lang]/(__appName__)/(user)/self/page.js +56 -0
- package/templates/app/app/[lang]/(__appName__)/layout.js +48 -0
- package/templates/app/app/[lang]/admin/layout.js +49 -0
- package/templates/app/app/[lang]/admin/page.js +59 -0
- package/templates/app/app/csr.js +30 -0
- package/templates/app/app/index.html.template +13 -0
- package/templates/app/app/layout.js +34 -0
- package/templates/app/app/robots.js +39 -0
- package/templates/app/app/sitemap.js +35 -0
- package/templates/app/base/baseLogic.js +34 -0
- package/templates/app/base/index.js +28 -0
- package/templates/app/capacitor.config.ts.template +8 -0
- package/templates/app/common/commonLogic.js +34 -0
- package/templates/app/common/index.js +28 -0
- package/templates/app/env/env.client.js +37 -0
- package/templates/app/env/env.client.type.js +34 -0
- package/templates/app/env/env.server.js +37 -0
- package/templates/app/jest.config.js +35 -0
- package/templates/app/lib/___appName__/__appName__.dictionary.js +30 -0
- package/templates/app/lib/___appName__/__appName__.service.js +41 -0
- package/templates/app/lib/___appName__/__appName__.store.js +35 -0
- package/templates/app/lib/___appName__/_server.js +33 -0
- package/templates/app/lib/option.js +41 -0
- package/templates/app/lib/setting/Setting.Template.js +53 -0
- package/templates/app/lib/setting/Setting.Unit.js +34 -0
- package/templates/app/lib/setting/Setting.Util.js +30 -0
- package/templates/app/lib/setting/Setting.View.js +47 -0
- package/templates/app/lib/setting/Setting.Zone.js +76 -0
- package/templates/app/lib/setting/_server.js +47 -0
- package/templates/app/lib/setting/index.js +57 -0
- package/templates/app/lib/setting/setting.constant.js +45 -0
- package/templates/app/lib/setting/setting.dictionary.js +45 -0
- package/templates/app/lib/setting/setting.document.js +47 -0
- package/templates/app/lib/setting/setting.service.js +36 -0
- package/templates/app/lib/setting/setting.signal.js +33 -0
- package/templates/app/lib/setting/setting.store.js +40 -0
- package/templates/app/lib/summary/Summary.Template.js +39 -0
- package/templates/app/lib/summary/Summary.Unit.js +34 -0
- package/templates/app/lib/summary/Summary.Util.js +29 -0
- package/templates/app/lib/summary/Summary.View.js +47 -0
- package/templates/app/lib/summary/Summary.Zone.js +58 -0
- package/templates/app/lib/summary/_server.js +47 -0
- package/templates/app/lib/summary/index.js +63 -0
- package/templates/app/lib/summary/summary.constant.js +43 -0
- package/templates/app/lib/summary/summary.dictionary.js +48 -0
- package/templates/app/lib/summary/summary.document.js +47 -0
- package/templates/app/lib/summary/summary.service.js +33 -0
- package/templates/app/lib/summary/summary.signal.js +33 -0
- package/templates/app/lib/summary/summary.store.js +40 -0
- package/templates/app/lib/user/User.Template.js +61 -0
- package/templates/app/lib/user/User.Unit.js +34 -0
- package/templates/app/lib/user/User.Util.js +90 -0
- package/templates/app/lib/user/User.View.js +62 -0
- package/templates/app/lib/user/User.Zone.js +70 -0
- package/templates/app/lib/user/_server.js +47 -0
- package/templates/app/lib/user/index.js +57 -0
- package/templates/app/lib/user/user.constant.js +66 -0
- package/templates/app/lib/user/user.dictionary.js +51 -0
- package/templates/app/lib/user/user.document.js +53 -0
- package/templates/app/lib/user/user.service.js +41 -0
- package/templates/app/lib/user/user.signal.js +33 -0
- package/templates/app/lib/user/user.signal.spec.js +36 -0
- package/templates/app/lib/user/user.signal.test.js +38 -0
- package/templates/app/lib/user/user.store.js +38 -0
- package/templates/app/main.js +39 -0
- package/templates/app/middleware.js +34 -0
- package/templates/app/nest/backendLogic.js +33 -0
- package/templates/app/nest/index.js +28 -0
- package/templates/app/next/frontendLogic.js +33 -0
- package/templates/app/next/index.js +28 -0
- package/templates/app/page.test.ts.template +10 -0
- package/templates/app/playwright.config.ts.template +6 -0
- package/templates/app/postcss.config.js.template +10 -0
- package/templates/app/public/favicon.ico +0 -0
- package/templates/app/public/icons/icon-128x128.png +0 -0
- package/templates/app/public/icons/icon-144x144.png +0 -0
- package/templates/app/public/icons/icon-152x152.png +0 -0
- package/templates/app/public/icons/icon-192x192.png +0 -0
- package/templates/app/public/icons/icon-256x256.png +0 -0
- package/templates/app/public/icons/icon-384x384.png +0 -0
- package/templates/app/public/icons/icon-48x48.png +0 -0
- package/templates/app/public/icons/icon-512x512.png +0 -0
- package/templates/app/public/icons/icon-72x72.png +0 -0
- package/templates/app/public/icons/icon-96x96.png +0 -0
- package/templates/app/public/logo.svg +70 -0
- package/templates/app/public/manifest.json.template +67 -0
- package/templates/app/tsconfig.json.template +22 -0
- package/templates/app/tsconfig.spec.json.template +7 -0
- package/templates/app/ui/Footer.js +63 -0
- package/templates/app/ui/MainHeader.js +127 -0
- package/templates/app/ui/index.js +29 -0
- package/templates/client.js +41 -0
- package/templates/crudPages/[__model__Id]/edit/page.js +69 -0
- package/templates/crudPages/[__model__Id]/page.js +79 -0
- package/templates/crudPages/new/page.js +66 -0
- package/templates/crudPages/page.js +67 -0
- package/templates/index.js +30 -0
- package/templates/lib/__lib/extends/summary.constant.js +42 -0
- package/templates/lib/__lib/lib.constant.js +52 -0
- package/templates/lib/__lib/lib.dictionary.js +41 -0
- package/templates/lib/__lib/lib.document.js +40 -0
- package/templates/lib/__lib/lib.service.js +82 -0
- package/templates/lib/__lib/lib.signal.js +35 -0
- package/templates/lib/__lib/lib.store.js +33 -0
- package/templates/lib/__scalar/_server.js +38 -0
- package/templates/lib/cnst.js +31 -0
- package/templates/lib/cnst_.js +50 -0
- package/templates/lib/db.js +52 -0
- package/templates/lib/dict.js +44 -0
- package/templates/lib/fetch.js +47 -0
- package/templates/lib/sig.js +36 -0
- package/templates/lib/srv.js +51 -0
- package/templates/lib/st.js +35 -0
- package/templates/lib/store.js +51 -0
- package/templates/lib/usePage.js +32 -0
- package/templates/libRoot/.gitignore.template +15 -0
- package/templates/libRoot/jest.config.js +35 -0
- package/templates/libRoot/package.json.template +5 -0
- package/templates/libRoot/tsconfig.json.template +11 -0
- package/templates/libRoot/tsconfig.spec.json.template +7 -0
- package/templates/module/__Model__.Template.js +50 -0
- package/templates/module/__Model__.Unit.js +38 -0
- package/templates/module/__Model__.Util.js +66 -0
- package/templates/module/__Model__.View.js +44 -0
- package/templates/module/__Model__.Zone.js +79 -0
- package/templates/module/__model__.constant.js +68 -0
- package/templates/module/__model__.dictionary.js +97 -0
- package/templates/module/__model__.document.js +52 -0
- package/templates/module/__model__.service.js +40 -0
- package/templates/module/__model__.signal.js +59 -0
- package/templates/module/__model__.signal.spec.js +38 -0
- package/templates/module/__model__.signal.test.js +47 -0
- package/templates/module/__model__.store.js +38 -0
- package/templates/module/_server.js +46 -0
- package/templates/module/index.js +57 -0
- package/templates/pkgRoot/tsconfig.json.template +12 -0
- package/templates/server.js +58 -0
- package/templates/workplaceRoot/.env.template +20 -0
- package/templates/workplaceRoot/.gitignore.template +195 -0
- package/templates/workplaceRoot/.prettierignore.template +10 -0
- package/templates/workplaceRoot/.prettierrc.json.template +5 -0
- package/templates/workplaceRoot/.swcrc.template +9 -0
- package/templates/workplaceRoot/README.md.template +37 -0
- package/templates/workplaceRoot/eslint.config.js.template +141 -0
- package/templates/workplaceRoot/tsconfig.json.template +29 -0
- package/README.md +0 -11
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { clsx } from "@akanjs/client";
|
|
2
|
+
import { usePage } from "@<%= appName %>/client";
|
|
3
|
+
|
|
4
|
+
import { cnst } from "../cnst";
|
|
5
|
+
|
|
6
|
+
interface SettingViewProps {
|
|
7
|
+
className?: string;
|
|
8
|
+
setting: cnst.Setting;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export const General = ({ className, setting }: SettingViewProps) => {
|
|
12
|
+
const { l } = usePage();
|
|
13
|
+
return (
|
|
14
|
+
<div className={clsx(className, `mr-12`)}>
|
|
15
|
+
<div>
|
|
16
|
+
{l("setting.resignupDays")}: {setting.resignupDays}
|
|
17
|
+
</div>
|
|
18
|
+
</div>
|
|
19
|
+
);
|
|
20
|
+
};
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { ModelsProps } from "@akanjs/client";
|
|
3
|
+
import { Setting, st, usePage } from "@<%= appName %>/client";
|
|
4
|
+
import { Model } from "@shared/ui";
|
|
5
|
+
import { Loading } from "@util/ui";
|
|
6
|
+
import { useEffect } from "react";
|
|
7
|
+
import { AiOutlineEdit } from "react-icons/ai";
|
|
8
|
+
|
|
9
|
+
import { cnst } from "../cnst";
|
|
10
|
+
import { msg } from "../dict";
|
|
11
|
+
|
|
12
|
+
export const Admin = ({ sliceName = "setting" }: ModelsProps<cnst.Setting>) => {
|
|
13
|
+
const { l } = usePage();
|
|
14
|
+
const setting = st.use.setting();
|
|
15
|
+
const settingModal = st.use.settingModal();
|
|
16
|
+
useEffect(() => {
|
|
17
|
+
void st.do.getActiveSetting();
|
|
18
|
+
}, []);
|
|
19
|
+
if (!setting) return <Loading.Skeleton active />;
|
|
20
|
+
|
|
21
|
+
return (
|
|
22
|
+
<div>
|
|
23
|
+
<div className="my-2 flex items-center gap-4 text-3xl">
|
|
24
|
+
{l("setting.modelName")}
|
|
25
|
+
{settingModal ? null : (
|
|
26
|
+
<button className="btn btn-sm" onClick={() => st.do.editSetting(setting.id)}>
|
|
27
|
+
<AiOutlineEdit /> {l("shared.edit")}
|
|
28
|
+
</button>
|
|
29
|
+
)}
|
|
30
|
+
</div>
|
|
31
|
+
{settingModal === "edit" ? (
|
|
32
|
+
<Model.EditModal
|
|
33
|
+
sliceName="setting"
|
|
34
|
+
type="form"
|
|
35
|
+
onSubmit={() => {
|
|
36
|
+
msg.success("setting.updateSuccessMsg");
|
|
37
|
+
}}
|
|
38
|
+
onCancel={() => {
|
|
39
|
+
st.do.resetSetting(setting);
|
|
40
|
+
}}
|
|
41
|
+
>
|
|
42
|
+
<Setting.Template.General />
|
|
43
|
+
</Model.EditModal>
|
|
44
|
+
) : (
|
|
45
|
+
<Setting.View.General setting={setting} />
|
|
46
|
+
)}
|
|
47
|
+
</div>
|
|
48
|
+
);
|
|
49
|
+
};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { databaseModuleOf } from "@akanjs/server";
|
|
2
|
+
|
|
3
|
+
import { cnst } from "../cnst";
|
|
4
|
+
import * as db from "../db";
|
|
5
|
+
import { allSrvs } from "../srv";
|
|
6
|
+
import { SettingService } from "./setting.service";
|
|
7
|
+
import { SettingSignal } from "./setting.signal";
|
|
8
|
+
|
|
9
|
+
export const registerSettingModule = () =>
|
|
10
|
+
databaseModuleOf(
|
|
11
|
+
{
|
|
12
|
+
constant: cnst.settingCnst,
|
|
13
|
+
database: db.settingDb,
|
|
14
|
+
signal: SettingSignal,
|
|
15
|
+
service: SettingService,
|
|
16
|
+
extended: true,
|
|
17
|
+
},
|
|
18
|
+
allSrvs
|
|
19
|
+
);
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { Signal } from "@util/ui";
|
|
2
|
+
import { AiOutlineSetting } from "react-icons/ai";
|
|
3
|
+
|
|
4
|
+
import * as Template from "./Setting.Template";
|
|
5
|
+
import * as Unit from "./Setting.Unit";
|
|
6
|
+
import * as Util from "./Setting.Util";
|
|
7
|
+
import * as View from "./Setting.View";
|
|
8
|
+
import * as Zone from "./Setting.Zone";
|
|
9
|
+
|
|
10
|
+
export const Setting = {
|
|
11
|
+
Menu: {
|
|
12
|
+
Admin: {
|
|
13
|
+
key: "setting",
|
|
14
|
+
label: "Setting",
|
|
15
|
+
icon: <AiOutlineSetting />,
|
|
16
|
+
render: () => <Zone.Admin />,
|
|
17
|
+
},
|
|
18
|
+
Doc: {
|
|
19
|
+
key: "setting",
|
|
20
|
+
label: "Setting",
|
|
21
|
+
icon: <AiOutlineSetting />,
|
|
22
|
+
render: () => <Signal.Doc.Zone refName="setting" />,
|
|
23
|
+
},
|
|
24
|
+
},
|
|
25
|
+
Template,
|
|
26
|
+
Unit,
|
|
27
|
+
Util,
|
|
28
|
+
View,
|
|
29
|
+
Zone,
|
|
30
|
+
};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { from, Model, via } from "@akanjs/constant";
|
|
2
|
+
<%= importCnstAsLibsScript %>
|
|
3
|
+
|
|
4
|
+
@Model.Input("<%= AppName %>SettingInput")
|
|
5
|
+
export class <%= AppName %>SettingInput {}
|
|
6
|
+
|
|
7
|
+
@Model.Input("SettingInput")
|
|
8
|
+
export class SettingInput extends from(<%= libSettingInputs %>, <%= AppName %>SettingInput) {}
|
|
9
|
+
|
|
10
|
+
@Model.Object("SettingObject")
|
|
11
|
+
export class SettingObject extends from(<%= libSettings %>, SettingInput) {}
|
|
12
|
+
|
|
13
|
+
@Model.Light("LightSetting")
|
|
14
|
+
export class LightSetting extends via(SettingObject, ["status"] as const) {}
|
|
15
|
+
|
|
16
|
+
@Model.Full("Setting")
|
|
17
|
+
export class Setting extends via(SettingObject, LightSetting, shared.Setting, shared.LightSetting) {}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { ExtendModelDictionary, SignalDictionary } from "@akanjs/dictionary";
|
|
2
|
+
|
|
3
|
+
import type { <%= AppName %>SettingInput } from "./setting.constant";
|
|
4
|
+
import type { SettingSignal } from "./setting.signal";
|
|
5
|
+
|
|
6
|
+
const modelDictionary = {
|
|
7
|
+
// * ==================== Model ==================== * //
|
|
8
|
+
// * ==================== Model ==================== * //
|
|
9
|
+
// * ==================== Etc ==================== * //
|
|
10
|
+
// * ==================== Etc ==================== * //
|
|
11
|
+
} satisfies ExtendModelDictionary<<%= AppName %>SettingInput>;
|
|
12
|
+
|
|
13
|
+
const signalDictionary = {
|
|
14
|
+
// * ==================== Endpoint ==================== * //
|
|
15
|
+
// * ==================== Endpoint ==================== * //
|
|
16
|
+
} satisfies SignalDictionary<SettingSignal, <%= AppName %>SettingInput>;
|
|
17
|
+
|
|
18
|
+
export const settingDictionary = { ...modelDictionary, ...signalDictionary };
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { beyond, by, Database, into, type SchemaOf } from "@akanjs/document";
|
|
2
|
+
import { db as shared } from "@shared/server";
|
|
3
|
+
|
|
4
|
+
import { cnst } from "../cnst";
|
|
5
|
+
|
|
6
|
+
@Database.Input(() => cnst.SettingInput)
|
|
7
|
+
export class SettingInput extends by(shared.settingDb.Input, cnst.SettingInput) {}
|
|
8
|
+
|
|
9
|
+
@Database.Document(() => cnst.Setting)
|
|
10
|
+
export class Setting extends by(shared.settingDb.Doc, cnst.Setting) {}
|
|
11
|
+
|
|
12
|
+
@Database.Model(() => cnst.Setting)
|
|
13
|
+
export class SettingModel extends into(Setting, cnst.settingCnst) {}
|
|
14
|
+
|
|
15
|
+
@Database.Middleware(() => cnst.Setting)
|
|
16
|
+
export class SettingMiddleware extends beyond(SettingModel, Setting) {
|
|
17
|
+
onSchema(schema: SchemaOf<SettingModel, Setting>) {
|
|
18
|
+
//
|
|
19
|
+
}
|
|
20
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ExtendedSettingService, MixSrvs, Service } from "@akanjs/service";
|
|
2
|
+
<%= importSrvAsLibsScript %>
|
|
3
|
+
|
|
4
|
+
import * as db from "../db";
|
|
5
|
+
|
|
6
|
+
@Service("SettingService")
|
|
7
|
+
export class SettingService extends ExtendedSettingService(
|
|
8
|
+
db.settingDb,
|
|
9
|
+
MixSrvs(<%= libSettingServices %>)
|
|
10
|
+
) {
|
|
11
|
+
//
|
|
12
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { stateOf, Store } from "@akanjs/store";
|
|
2
|
+
|
|
3
|
+
import { cnst } from "../cnst";
|
|
4
|
+
import { fetch, settingGql } from "../fetch";
|
|
5
|
+
|
|
6
|
+
@Store(() => cnst.Setting)
|
|
7
|
+
export class SettingStore extends stateOf(settingGql, {
|
|
8
|
+
// state
|
|
9
|
+
}) {
|
|
10
|
+
async getActiveSetting() {
|
|
11
|
+
this.set({ setting: (await fetch.getActiveSetting()) as cnst.Setting, settingLoading: false });
|
|
12
|
+
}
|
|
13
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { GetServices } from "@akanjs/service";
|
|
2
|
+
<%= importSrvAsLibsScript %>
|
|
3
|
+
|
|
4
|
+
import { SettingService } from "./setting/setting.service";
|
|
5
|
+
import { SummaryService } from "./summary/summary.service";
|
|
6
|
+
import { UserService } from "./user/user.service";
|
|
7
|
+
|
|
8
|
+
<%= exportSrvAsLibsScript %>
|
|
9
|
+
export { UserService } from "./user/user.service";
|
|
10
|
+
export { SummaryService } from "./summary/summary.service";
|
|
11
|
+
export { SettingService } from "./setting/setting.service";
|
|
12
|
+
|
|
13
|
+
export const allSrvs = {
|
|
14
|
+
<%= ...libAllSrvs %>,
|
|
15
|
+
UserService,
|
|
16
|
+
SummaryService,
|
|
17
|
+
SettingService,
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
export type AllSrvs = GetServices<typeof allSrvs>;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { MixStore, rootStoreOf } from "@akanjs/store";
|
|
3
|
+
<%= importStoreAsLibsScript %>
|
|
4
|
+
|
|
5
|
+
import { <%= AppName %>Store } from "./_<%= appName %>/<%= appName %>.store";
|
|
6
|
+
import { SettingStore } from "./setting/setting.store";
|
|
7
|
+
import { SummaryStore } from "./summary/summary.store";
|
|
8
|
+
import { UserStore } from "./user/user.store";
|
|
9
|
+
|
|
10
|
+
export class RootStore extends MixStore(
|
|
11
|
+
<%= libs %>,
|
|
12
|
+
<%= AppName %>Store,
|
|
13
|
+
UserStore,
|
|
14
|
+
SummaryStore,
|
|
15
|
+
SettingStore,
|
|
16
|
+
) {}
|
|
17
|
+
export const store = rootStoreOf(RootStore);
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { st, usePage } from "@<%= appName %>/client";
|
|
3
|
+
|
|
4
|
+
interface SummaryEditProps {
|
|
5
|
+
summaryId?: string | null;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
export const General = ({ summaryId = undefined }: SummaryEditProps) => {
|
|
9
|
+
const summaryForm = st.use.summaryForm();
|
|
10
|
+
const { l } = usePage();
|
|
11
|
+
return <div className="flex items-center mb-4"></div>;
|
|
12
|
+
};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { User, usePage } from "@<%= appName %>/client";
|
|
2
|
+
import { clsx } from "@akanjs/client";
|
|
3
|
+
|
|
4
|
+
import { cnst } from "../cnst";
|
|
5
|
+
|
|
6
|
+
interface SummaryViewProps {
|
|
7
|
+
className?: string;
|
|
8
|
+
summary: cnst.Summary;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export const General = ({ className, summary }: SummaryViewProps) => {
|
|
12
|
+
const { l } = usePage();
|
|
13
|
+
return (
|
|
14
|
+
<div className={clsx(className, `mr-12`)}>
|
|
15
|
+
<div className="grid grid-cols-5 gap-4">
|
|
16
|
+
<User.Util.Stat className="col-span-2 " summary={summary} />
|
|
17
|
+
</div>
|
|
18
|
+
</div>
|
|
19
|
+
);
|
|
20
|
+
};
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { ModelsProps } from "@akanjs/client";
|
|
3
|
+
import { DefaultOf } from "@akanjs/signal";
|
|
4
|
+
import { st, Summary } from "@<%= appName %>/client";
|
|
5
|
+
import { Data } from "@shared/ui";
|
|
6
|
+
import { Loading } from "@util/ui";
|
|
7
|
+
|
|
8
|
+
import { cnst } from "../cnst";
|
|
9
|
+
|
|
10
|
+
export const Admin = ({ sliceName = "summary", init, query }: ModelsProps<cnst.Summary>) => {
|
|
11
|
+
return (
|
|
12
|
+
<Data.ListContainer
|
|
13
|
+
init={init}
|
|
14
|
+
query={query}
|
|
15
|
+
sliceName={sliceName}
|
|
16
|
+
renderItem={Summary.Unit.Card}
|
|
17
|
+
renderTemplate={Summary.Template.General}
|
|
18
|
+
renderTitle={(summary: DefaultOf<cnst.Summary>) => `${summary.at}`}
|
|
19
|
+
renderView={(summary: cnst.Summary) => <Summary.View.General summary={summary} />}
|
|
20
|
+
type="list"
|
|
21
|
+
columns={["type", "status", "createdAt"]}
|
|
22
|
+
actions={(summary: cnst.LightSummary, idx) => ["remove", "edit"]}
|
|
23
|
+
/>
|
|
24
|
+
);
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
export const Dashboard = () => {
|
|
28
|
+
const summary = st.use.summary();
|
|
29
|
+
if (!summary) return <Loading.Skeleton active />;
|
|
30
|
+
return <Summary.View.General summary={summary} />;
|
|
31
|
+
};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { databaseModuleOf } from "@akanjs/server";
|
|
2
|
+
|
|
3
|
+
import { cnst } from "../cnst";
|
|
4
|
+
import * as db from "../db";
|
|
5
|
+
import { allSrvs } from "../srv";
|
|
6
|
+
import { SummaryService } from "./summary.service";
|
|
7
|
+
import { SummarySignal } from "./summary.signal";
|
|
8
|
+
|
|
9
|
+
export const registerSummaryModule = () =>
|
|
10
|
+
databaseModuleOf(
|
|
11
|
+
{
|
|
12
|
+
constant: cnst.summaryCnst,
|
|
13
|
+
database: db.summaryDb,
|
|
14
|
+
signal: SummarySignal,
|
|
15
|
+
service: SummaryService,
|
|
16
|
+
extended: true,
|
|
17
|
+
},
|
|
18
|
+
allSrvs
|
|
19
|
+
);
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { Signal } from "@util/ui";
|
|
2
|
+
import { AiOutlineLineChart } from "react-icons/ai";
|
|
3
|
+
|
|
4
|
+
import * as Template from "./Summary.Template";
|
|
5
|
+
import * as Unit from "./Summary.Unit";
|
|
6
|
+
import * as Util from "./Summary.Util";
|
|
7
|
+
import * as View from "./Summary.View";
|
|
8
|
+
import * as Zone from "./Summary.Zone";
|
|
9
|
+
|
|
10
|
+
export const Summary = {
|
|
11
|
+
Menu: {
|
|
12
|
+
Admin: {
|
|
13
|
+
key: "summary",
|
|
14
|
+
label: "Summary",
|
|
15
|
+
icon: <AiOutlineLineChart />,
|
|
16
|
+
render: () => <Zone.Admin />,
|
|
17
|
+
},
|
|
18
|
+
Doc: {
|
|
19
|
+
key: "summary",
|
|
20
|
+
label: "Summary",
|
|
21
|
+
icon: <AiOutlineLineChart />,
|
|
22
|
+
render: () => <Signal.Doc.Zone refName="summary" />,
|
|
23
|
+
},
|
|
24
|
+
Dashboard: {
|
|
25
|
+
key: "summary",
|
|
26
|
+
label: "Summary",
|
|
27
|
+
icon: <AiOutlineLineChart />,
|
|
28
|
+
render: () => <Zone.Dashboard />,
|
|
29
|
+
},
|
|
30
|
+
},
|
|
31
|
+
Template,
|
|
32
|
+
Unit,
|
|
33
|
+
Util,
|
|
34
|
+
View,
|
|
35
|
+
Zone,
|
|
36
|
+
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { from, Model, over, via } from "@akanjs/constant";
|
|
2
|
+
<%= importCnstAsLibsScript %>
|
|
3
|
+
|
|
4
|
+
import { <%= AppName %>UserSummary } from "../user/user.constant";
|
|
5
|
+
|
|
6
|
+
@Model.Summary("<%= AppName %>Summary")
|
|
7
|
+
export class <%= AppName %>Summary extends over(<%= AppName %>UserSummary, <%= AppName %>UserSummary) {}
|
|
8
|
+
|
|
9
|
+
export class SummaryObject extends from(<%= libSummaries %>, <%= AppName %>Summary) {}
|
|
10
|
+
export class SummaryInput extends shared.SummaryInput {}
|
|
11
|
+
|
|
12
|
+
@Model.Light("LightSummary")
|
|
13
|
+
export class LightSummary extends via(SummaryObject, ["at"] as const) {}
|
|
14
|
+
|
|
15
|
+
@Model.Full("Summary")
|
|
16
|
+
export class Summary extends via(SummaryObject, LightSummary, shared.Summary, shared.LightSummary) {}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { ExtendModelDictionary, SignalDictionary } from "@akanjs/dictionary";
|
|
2
|
+
|
|
3
|
+
import { userSummaryDictionary } from "../user/user.dictionary";
|
|
4
|
+
import type { <%= AppName %>Summary } from "./summary.constant";
|
|
5
|
+
import type { SummarySignal } from "./summary.signal";
|
|
6
|
+
|
|
7
|
+
const modelDictionary = {
|
|
8
|
+
// * ==================== Model ==================== * //
|
|
9
|
+
...userSummaryDictionary,
|
|
10
|
+
// * ==================== Model ==================== * //
|
|
11
|
+
|
|
12
|
+
// * ==================== Etc ==================== * //
|
|
13
|
+
// * ==================== Etc ==================== * //
|
|
14
|
+
} satisfies ExtendModelDictionary<<%= AppName %>Summary>;
|
|
15
|
+
|
|
16
|
+
const signalDictionary = {
|
|
17
|
+
// * ==================== Endpoint ==================== * //
|
|
18
|
+
// * ==================== Endpoint ==================== * //
|
|
19
|
+
} satisfies SignalDictionary<SummarySignal, <%= AppName %>Summary>;
|
|
20
|
+
|
|
21
|
+
export const summaryDictionary = { ...modelDictionary, ...signalDictionary };
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { beyond, by, Database, inside, type SchemaOf } from "@akanjs/document";
|
|
2
|
+
import { db as shared } from "@shared/server";
|
|
3
|
+
|
|
4
|
+
import { cnst } from "../cnst";
|
|
5
|
+
|
|
6
|
+
@Database.Input(() => cnst.SummaryInput)
|
|
7
|
+
export class SummaryInput extends by(shared.summaryDb.Input, cnst.SummaryInput) {}
|
|
8
|
+
|
|
9
|
+
@Database.Document(() => cnst.Summary)
|
|
10
|
+
export class Summary extends by(shared.summaryDb.Doc, cnst.Summary) {}
|
|
11
|
+
|
|
12
|
+
@Database.Model(() => cnst.Summary)
|
|
13
|
+
export class SummaryModel extends inside(shared.summaryDb.Model, cnst.summaryCnst) {}
|
|
14
|
+
|
|
15
|
+
@Database.Middleware(() => cnst.Summary)
|
|
16
|
+
export class SummaryMiddleware extends beyond(SummaryModel, Summary) {
|
|
17
|
+
onSchema(schema: SchemaOf<SummaryModel, Summary>) {
|
|
18
|
+
//
|
|
19
|
+
}
|
|
20
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { ExtendedSummaryService, MixSrvs, Service, Srv } from "@akanjs/server";
|
|
2
|
+
<%= importSrvAsLibsScript %>
|
|
3
|
+
|
|
4
|
+
import * as db from "../db";
|
|
5
|
+
import type * as srv from "../srv";
|
|
6
|
+
|
|
7
|
+
@Service("SummaryService")
|
|
8
|
+
export class SummaryService extends ExtendedSummaryService(
|
|
9
|
+
db.summaryDb,
|
|
10
|
+
MixSrvs(<%= libSummaryServices %>)
|
|
11
|
+
) {
|
|
12
|
+
@Srv() userService: srv.UserService;
|
|
13
|
+
|
|
14
|
+
async get<%= AppName %>Summary() {
|
|
15
|
+
return {
|
|
16
|
+
...(await this.userService.summarize<%= AppName %>()),
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
async makeSummary(archiveType: "periodic" | "non-periodic" = "non-periodic"): Promise<db.Summary> {
|
|
20
|
+
const summary = {
|
|
21
|
+
<%= thisGetLibsSummary %>
|
|
22
|
+
...(await this.get<%= AppName %>Summary()),
|
|
23
|
+
};
|
|
24
|
+
return (await this.summaryModel.archive(archiveType, summary)) as db.Summary;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { stateOf, Store } from "@akanjs/store";
|
|
2
|
+
|
|
3
|
+
import { cnst } from "../cnst";
|
|
4
|
+
import { fetch, summaryGql } from "../fetch";
|
|
5
|
+
|
|
6
|
+
@Store(() => cnst.Summary)
|
|
7
|
+
export class SummaryStore extends stateOf(summaryGql, {
|
|
8
|
+
// state
|
|
9
|
+
}) {
|
|
10
|
+
async getActiveSummary() {
|
|
11
|
+
this.set({ summary: (await fetch.getActiveSummary()) as cnst.Summary, summaryLoading: false });
|
|
12
|
+
}
|
|
13
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { clsx } from "@akanjs/client";
|
|
3
|
+
import { Field } from "@shared/ui";
|
|
4
|
+
import { Layout } from "@util/ui";
|
|
5
|
+
import { st, usePage } from "@<%= appName %>/client";
|
|
6
|
+
|
|
7
|
+
interface UserEditProps {
|
|
8
|
+
className?: string;
|
|
9
|
+
userId?: string | null;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export const General = ({ className, userId = undefined }: UserEditProps) => {
|
|
13
|
+
const userForm = st.use.userForm();
|
|
14
|
+
const { l } = usePage();
|
|
15
|
+
return (
|
|
16
|
+
<Layout.Template className={clsx(`flex flex-col gap-4`, className)}>
|
|
17
|
+
<div className="w-[150px] flex mt-10 md:mt-0">
|
|
18
|
+
<Field.Img
|
|
19
|
+
label={l.field("user", "image")}
|
|
20
|
+
desc={l.desc("user", "image")}
|
|
21
|
+
sliceName="user"
|
|
22
|
+
value={userForm.image}
|
|
23
|
+
onChange={st.do.setImageOnUser}
|
|
24
|
+
/>
|
|
25
|
+
</div>
|
|
26
|
+
<Field.Text
|
|
27
|
+
label={l.field("user", "nickname")}
|
|
28
|
+
desc={l.desc("user", "nickname")}
|
|
29
|
+
value={userForm.nickname}
|
|
30
|
+
onChange={st.do.setNicknameOnUser}
|
|
31
|
+
/>
|
|
32
|
+
</Layout.Template>
|
|
33
|
+
);
|
|
34
|
+
};
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { ModelDashboardProps, ModelInsightProps } from "@akanjs/client";
|
|
3
|
+
import { getQueryMap } from "@akanjs/constant";
|
|
4
|
+
import { cnst, st } from "@<%= appName %>/client";
|
|
5
|
+
import { Data } from "@shared/ui";
|
|
6
|
+
import { AiOutlineEdit, AiOutlineLock, AiOutlineUnlock } from "react-icons/ai";
|
|
7
|
+
|
|
8
|
+
export const Stat = ({
|
|
9
|
+
className,
|
|
10
|
+
summary,
|
|
11
|
+
sliceName = "user",
|
|
12
|
+
queryMap = getQueryMap(cnst.UserSummary),
|
|
13
|
+
hidePresents,
|
|
14
|
+
}: ModelDashboardProps<cnst.Summary>) => {
|
|
15
|
+
return (
|
|
16
|
+
<Data.Dashboard
|
|
17
|
+
className={className}
|
|
18
|
+
summary={summary}
|
|
19
|
+
sliceName={sliceName}
|
|
20
|
+
queryMap={queryMap}
|
|
21
|
+
columns={["totalUser", "dau"]}
|
|
22
|
+
hidePresents={hidePresents}
|
|
23
|
+
/>
|
|
24
|
+
);
|
|
25
|
+
};
|
|
26
|
+
export const Insight = ({ className, insight, sliceName = "user" }: ModelInsightProps<cnst.UserInsight>) => {
|
|
27
|
+
return <Data.Insight className={className} insight={insight} sliceName={sliceName} columns={["count"]} />;
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
interface RestrictProps {
|
|
31
|
+
id: string;
|
|
32
|
+
}
|
|
33
|
+
export const Restrict = ({ id }: RestrictProps) => {
|
|
34
|
+
return (
|
|
35
|
+
<button className="gap-2 btn btn-sm" onClick={() => st.do.restrictUser(id, "Violated Community Guidelines")}>
|
|
36
|
+
<AiOutlineLock />
|
|
37
|
+
Restrict
|
|
38
|
+
</button>
|
|
39
|
+
);
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
interface ReleaseProps {
|
|
43
|
+
id: string;
|
|
44
|
+
}
|
|
45
|
+
export const Release = ({ id }: ReleaseProps) => {
|
|
46
|
+
return (
|
|
47
|
+
<button className="gap-2 border-dashed btn btn-sm btn-outline" onClick={() => st.do.releaseUser(id)}>
|
|
48
|
+
<AiOutlineUnlock />
|
|
49
|
+
Release
|
|
50
|
+
</button>
|
|
51
|
+
);
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
export const EditSelf = () => {
|
|
55
|
+
const self = st.use.self();
|
|
56
|
+
const userModal = st.use.userModal();
|
|
57
|
+
return userModal !== "edit" ? (
|
|
58
|
+
<button className="gap-2 btn" onClick={() => st.do.editUser(self)}>
|
|
59
|
+
<AiOutlineEdit />
|
|
60
|
+
Edit
|
|
61
|
+
</button>
|
|
62
|
+
) : null;
|
|
63
|
+
};
|