@kosdev-code/kos-nx-plugin 0.1.0-dev.5053
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/README.md +11 -0
- package/generators.json +80 -0
- package/migrations.json +86 -0
- package/package.json +25 -0
- package/src/generators/kos-add-future-to-model/README.md +106 -0
- package/src/generators/kos-add-future-to-model/generator.d.ts +5 -0
- package/src/generators/kos-add-future-to-model/generator.d.ts.map +1 -0
- package/src/generators/kos-add-future-to-model/generator.js +63 -0
- package/src/generators/kos-add-future-to-model/generator.js.map +1 -0
- package/src/generators/kos-add-future-to-model/lib/model-transformer.d.ts +22 -0
- package/src/generators/kos-add-future-to-model/lib/model-transformer.d.ts.map +1 -0
- package/src/generators/kos-add-future-to-model/lib/model-transformer.js +313 -0
- package/src/generators/kos-add-future-to-model/lib/model-transformer.js.map +1 -0
- package/src/generators/kos-add-future-to-model/lib/normalize-options.d.ts +4 -0
- package/src/generators/kos-add-future-to-model/lib/normalize-options.d.ts.map +1 -0
- package/src/generators/kos-add-future-to-model/lib/normalize-options.js +54 -0
- package/src/generators/kos-add-future-to-model/lib/normalize-options.js.map +1 -0
- package/src/generators/kos-add-future-to-model/lib/registration-transformer.d.ts +11 -0
- package/src/generators/kos-add-future-to-model/lib/registration-transformer.d.ts.map +1 -0
- package/src/generators/kos-add-future-to-model/lib/registration-transformer.js +73 -0
- package/src/generators/kos-add-future-to-model/lib/registration-transformer.js.map +1 -0
- package/src/generators/kos-add-future-to-model/lib/service-transformer.d.ts +13 -0
- package/src/generators/kos-add-future-to-model/lib/service-transformer.d.ts.map +1 -0
- package/src/generators/kos-add-future-to-model/lib/service-transformer.js +178 -0
- package/src/generators/kos-add-future-to-model/lib/service-transformer.js.map +1 -0
- package/src/generators/kos-add-future-to-model/schema.d.ts +24 -0
- package/src/generators/kos-add-future-to-model/schema.json +59 -0
- package/src/generators/kos-companion-model/files/types/index.d.ts.template +11 -0
- package/src/generators/kos-companion-model/generator.d.ts +5 -0
- package/src/generators/kos-companion-model/generator.d.ts.map +1 -0
- package/src/generators/kos-companion-model/generator.js +45 -0
- package/src/generators/kos-companion-model/generator.js.map +1 -0
- package/src/generators/kos-companion-model/schema.d.ts +7 -0
- package/src/generators/kos-companion-model/schema.json +36 -0
- package/src/generators/kos-component/README.md +474 -0
- package/src/generators/kos-component/control-pour/__nameDashCase__.stories.tsx__template__ +30 -0
- package/src/generators/kos-component/control-pour/__nameDashCase__.tsx__template__ +35 -0
- package/src/generators/kos-component/control-pour/index.ts__template__ +1 -0
- package/src/generators/kos-component/cui/__nameDashCase__.stories.tsx__template__ +30 -0
- package/src/generators/kos-component/cui/__nameDashCase__.tsx__template__ +35 -0
- package/src/generators/kos-component/cui/index.ts__template__ +1 -0
- package/src/generators/kos-component/custom/__nameDashCase__.stories.tsx__template__ +31 -0
- package/src/generators/kos-component/custom/__nameDashCase__.tsx__template__ +53 -0
- package/src/generators/kos-component/custom/index.ts__template__ +1 -0
- package/src/generators/kos-component/files/__nameDashCase__.css__template__ +2 -0
- package/src/generators/kos-component/files/__nameDashCase__.tsx__template__ +26 -0
- package/src/generators/kos-component/files/index.ts__template__ +1 -0
- package/src/generators/kos-component/generator.d.ts +8 -0
- package/src/generators/kos-component/generator.d.ts.map +1 -0
- package/src/generators/kos-component/generator.js +100 -0
- package/src/generators/kos-component/generator.js.map +1 -0
- package/src/generators/kos-component/index.d.ts +5 -0
- package/src/generators/kos-component/index.d.ts.map +1 -0
- package/src/generators/kos-component/index.js +12 -0
- package/src/generators/kos-component/index.js.map +1 -0
- package/src/generators/kos-component/nav/__nameDashCase__.stories.tsx__template__ +30 -0
- package/src/generators/kos-component/nav/__nameDashCase__.tsx__template__ +27 -0
- package/src/generators/kos-component/nav/index.ts__template__ +1 -0
- package/src/generators/kos-component/plugin-handlers/base.d.ts +47 -0
- package/src/generators/kos-component/plugin-handlers/base.d.ts.map +1 -0
- package/src/generators/kos-component/plugin-handlers/base.js +42 -0
- package/src/generators/kos-component/plugin-handlers/base.js.map +1 -0
- package/src/generators/kos-component/plugin-handlers/control-pour-handler.d.ts +9 -0
- package/src/generators/kos-component/plugin-handlers/control-pour-handler.d.ts.map +1 -0
- package/src/generators/kos-component/plugin-handlers/control-pour-handler.js +31 -0
- package/src/generators/kos-component/plugin-handlers/control-pour-handler.js.map +1 -0
- package/src/generators/kos-component/plugin-handlers/cui-handler.d.ts +9 -0
- package/src/generators/kos-component/plugin-handlers/cui-handler.d.ts.map +1 -0
- package/src/generators/kos-component/plugin-handlers/cui-handler.js +31 -0
- package/src/generators/kos-component/plugin-handlers/cui-handler.js.map +1 -0
- package/src/generators/kos-component/plugin-handlers/custom-handler.d.ts +11 -0
- package/src/generators/kos-component/plugin-handlers/custom-handler.d.ts.map +1 -0
- package/src/generators/kos-component/plugin-handlers/custom-handler.js +45 -0
- package/src/generators/kos-component/plugin-handlers/custom-handler.js.map +1 -0
- package/src/generators/kos-component/plugin-handlers/default-handler.d.ts +14 -0
- package/src/generators/kos-component/plugin-handlers/default-handler.d.ts.map +1 -0
- package/src/generators/kos-component/plugin-handlers/default-handler.js +37 -0
- package/src/generators/kos-component/plugin-handlers/default-handler.js.map +1 -0
- package/src/generators/kos-component/plugin-handlers/factory.d.ts +10 -0
- package/src/generators/kos-component/plugin-handlers/factory.d.ts.map +1 -0
- package/src/generators/kos-component/plugin-handlers/factory.js +44 -0
- package/src/generators/kos-component/plugin-handlers/factory.js.map +1 -0
- package/src/generators/kos-component/plugin-handlers/nav-handler.d.ts +9 -0
- package/src/generators/kos-component/plugin-handlers/nav-handler.d.ts.map +1 -0
- package/src/generators/kos-component/plugin-handlers/nav-handler.js +32 -0
- package/src/generators/kos-component/plugin-handlers/nav-handler.js.map +1 -0
- package/src/generators/kos-component/plugin-handlers/setting-handler.d.ts +9 -0
- package/src/generators/kos-component/plugin-handlers/setting-handler.d.ts.map +1 -0
- package/src/generators/kos-component/plugin-handlers/setting-handler.js +32 -0
- package/src/generators/kos-component/plugin-handlers/setting-handler.js.map +1 -0
- package/src/generators/kos-component/plugin-handlers/setup-handler.d.ts +9 -0
- package/src/generators/kos-component/plugin-handlers/setup-handler.d.ts.map +1 -0
- package/src/generators/kos-component/plugin-handlers/setup-handler.js +32 -0
- package/src/generators/kos-component/plugin-handlers/setup-handler.js.map +1 -0
- package/src/generators/kos-component/plugin-handlers/trouble-action-handler.d.ts +9 -0
- package/src/generators/kos-component/plugin-handlers/trouble-action-handler.d.ts.map +1 -0
- package/src/generators/kos-component/plugin-handlers/trouble-action-handler.js +32 -0
- package/src/generators/kos-component/plugin-handlers/trouble-action-handler.js.map +1 -0
- package/src/generators/kos-component/plugin-handlers/utility-handler.d.ts +9 -0
- package/src/generators/kos-component/plugin-handlers/utility-handler.d.ts.map +1 -0
- package/src/generators/kos-component/plugin-handlers/utility-handler.js +32 -0
- package/src/generators/kos-component/plugin-handlers/utility-handler.js.map +1 -0
- package/src/generators/kos-component/schema.d.ts +21 -0
- package/src/generators/kos-component/schema.json +100 -0
- package/src/generators/kos-component/setting/__nameDashCase__.stories.tsx__template__ +30 -0
- package/src/generators/kos-component/setting/__nameDashCase__.tsx__template__ +27 -0
- package/src/generators/kos-component/setting/index.ts__template__ +1 -0
- package/src/generators/kos-component/setup/__nameDashCase__.stories.tsx__template__ +30 -0
- package/src/generators/kos-component/setup/__nameDashCase__.tsx__template__ +33 -0
- package/src/generators/kos-component/setup/index.ts__template__ +1 -0
- package/src/generators/kos-component/trouble-action/__nameDashCase__.stories.tsx__template__ +30 -0
- package/src/generators/kos-component/trouble-action/__nameDashCase__.tsx__template__ +58 -0
- package/src/generators/kos-component/trouble-action/index.ts__template__ +1 -0
- package/src/generators/kos-component/types.d.ts +55 -0
- package/src/generators/kos-component/types.d.ts.map +1 -0
- package/src/generators/kos-component/types.js +48 -0
- package/src/generators/kos-component/types.js.map +1 -0
- package/src/generators/kos-component/utility/__nameDashCase__.stories.tsx__template__ +30 -0
- package/src/generators/kos-component/utility/__nameDashCase__.tsx__template__ +47 -0
- package/src/generators/kos-component/utility/index.ts__template__ +1 -0
- package/src/generators/kos-component/utils/file-generator.d.ts +7 -0
- package/src/generators/kos-component/utils/file-generator.d.ts.map +1 -0
- package/src/generators/kos-component/utils/file-generator.js +26 -0
- package/src/generators/kos-component/utils/file-generator.js.map +1 -0
- package/src/generators/kos-component/utils/kos-config-builder.d.ts +27 -0
- package/src/generators/kos-component/utils/kos-config-builder.d.ts.map +1 -0
- package/src/generators/kos-component/utils/kos-config-builder.js +82 -0
- package/src/generators/kos-component/utils/kos-config-builder.js.map +1 -0
- package/src/generators/kos-component/utils/localization.d.ts +7 -0
- package/src/generators/kos-component/utils/localization.d.ts.map +1 -0
- package/src/generators/kos-component/utils/localization.js +29 -0
- package/src/generators/kos-component/utils/localization.js.map +1 -0
- package/src/generators/kos-component/utils/validation.d.ts +18 -0
- package/src/generators/kos-component/utils/validation.d.ts.map +1 -0
- package/src/generators/kos-component/utils/validation.js +65 -0
- package/src/generators/kos-component/utils/validation.js.map +1 -0
- package/src/generators/kos-container-model/files/model/__nameDashCase__-model.ts.template +68 -0
- package/src/generators/kos-container-model/files/model/index.ts.template +13 -0
- package/src/generators/kos-container-model/files/model/types/index.d.ts.template +24 -0
- package/src/generators/kos-container-model/files/services/__modelNameDashCase__-services.ts.template +22 -0
- package/src/generators/kos-container-model/files/services/index.ts.template +1 -0
- package/src/generators/kos-container-model/generator.d.ts +5 -0
- package/src/generators/kos-container-model/generator.d.ts.map +1 -0
- package/src/generators/kos-container-model/generator.js +74 -0
- package/src/generators/kos-container-model/generator.js.map +1 -0
- package/src/generators/kos-container-model/lib/normalize-options.d.ts +4 -0
- package/src/generators/kos-container-model/lib/normalize-options.d.ts.map +1 -0
- package/src/generators/kos-container-model/lib/normalize-options.js +32 -0
- package/src/generators/kos-container-model/lib/normalize-options.js.map +1 -0
- package/src/generators/kos-container-model/lib/normalize-value.d.ts +7 -0
- package/src/generators/kos-container-model/lib/normalize-value.d.ts.map +1 -0
- package/src/generators/kos-container-model/lib/normalize-value.js +28 -0
- package/src/generators/kos-container-model/lib/normalize-value.js.map +1 -0
- package/src/generators/kos-container-model/lib/utils/name-utils.d.ts +6 -0
- package/src/generators/kos-container-model/lib/utils/name-utils.d.ts.map +1 -0
- package/src/generators/kos-container-model/lib/utils/name-utils.js +53 -0
- package/src/generators/kos-container-model/lib/utils/name-utils.js.map +1 -0
- package/src/generators/kos-container-model/lib/utils/ts-visitor.d.ts +8 -0
- package/src/generators/kos-container-model/lib/utils/ts-visitor.d.ts.map +1 -0
- package/src/generators/kos-container-model/lib/utils/ts-visitor.js +122 -0
- package/src/generators/kos-container-model/lib/utils/ts-visitor.js.map +1 -0
- package/src/generators/kos-container-model/schema.d.ts +35 -0
- package/src/generators/kos-container-model/schema.json +50 -0
- package/src/generators/kos-content-project/files/assets/.gitkeep +2 -0
- package/src/generators/kos-content-project/files/vite.config.ts.template +48 -0
- package/src/generators/kos-content-project/generator.d.ts +5 -0
- package/src/generators/kos-content-project/generator.d.ts.map +1 -0
- package/src/generators/kos-content-project/generator.js +55 -0
- package/src/generators/kos-content-project/generator.js.map +1 -0
- package/src/generators/kos-content-project/schema.d.ts +3 -0
- package/src/generators/kos-content-project/schema.json +18 -0
- package/src/generators/kos-context/files/__nameDashCase__-provider.tsx.template +40 -0
- package/src/generators/kos-context/files/index.ts.template +1 -0
- package/src/generators/kos-context/generator.d.ts +5 -0
- package/src/generators/kos-context/generator.d.ts.map +1 -0
- package/src/generators/kos-context/generator.js +56 -0
- package/src/generators/kos-context/generator.js.map +1 -0
- package/src/generators/kos-context/schema.d.ts +14 -0
- package/src/generators/kos-context/schema.json +36 -0
- package/src/generators/kos-hook/files/index.ts.template +2 -0
- package/src/generators/kos-hook/files/use-__nameDashCase__.ts.template +13 -0
- package/src/generators/kos-hook/files/with-__nameDashCase__.tsx.template +28 -0
- package/src/generators/kos-hook/generator.d.ts +5 -0
- package/src/generators/kos-hook/generator.d.ts.map +1 -0
- package/src/generators/kos-hook/generator.js +56 -0
- package/src/generators/kos-hook/generator.js.map +1 -0
- package/src/generators/kos-hook/schema.d.ts +21 -0
- package/src/generators/kos-hook/schema.json +36 -0
- package/src/generators/kos-i18n-project/files/.kos.json.template +8 -0
- package/src/generators/kos-i18n-project/files/src/assets/locales/en/__nameDashCase__.json.template +3 -0
- package/src/generators/kos-i18n-project/generator.d.ts +5 -0
- package/src/generators/kos-i18n-project/generator.d.ts.map +1 -0
- package/src/generators/kos-i18n-project/generator.js +82 -0
- package/src/generators/kos-i18n-project/generator.js.map +1 -0
- package/src/generators/kos-i18n-project/schema.d.ts +3 -0
- package/src/generators/kos-i18n-project/schema.json +18 -0
- package/src/generators/kos-init/generator.d.ts +5 -0
- package/src/generators/kos-init/generator.d.ts.map +1 -0
- package/src/generators/kos-init/generator.js +43 -0
- package/src/generators/kos-init/generator.js.map +1 -0
- package/src/generators/kos-init/schema.d.ts +5 -0
- package/src/generators/kos-init/schema.json +29 -0
- package/src/generators/kos-model/files/model/__nameDashCase__-model.ts.template +135 -0
- package/src/generators/kos-model/files/model/index.ts__template__ +9 -0
- package/src/generators/kos-model/files/model/types/index.d.ts.template +7 -0
- package/src/generators/kos-model/files/services/__nameDashCase__-services.ts.template +58 -0
- package/src/generators/kos-model/files/services/index.ts.template +1 -0
- package/src/generators/kos-model/generator.d.ts +5 -0
- package/src/generators/kos-model/generator.d.ts.map +1 -0
- package/src/generators/kos-model/generator.js +117 -0
- package/src/generators/kos-model/generator.js.map +1 -0
- package/src/generators/kos-model/lib/normalize-options.d.ts +4 -0
- package/src/generators/kos-model/lib/normalize-options.d.ts.map +1 -0
- package/src/generators/kos-model/lib/normalize-options.js +35 -0
- package/src/generators/kos-model/lib/normalize-options.js.map +1 -0
- package/src/generators/kos-model/lib/normalize-value.d.ts +7 -0
- package/src/generators/kos-model/lib/normalize-value.d.ts.map +1 -0
- package/src/generators/kos-model/lib/normalize-value.js +28 -0
- package/src/generators/kos-model/lib/normalize-value.js.map +1 -0
- package/src/generators/kos-model/lib/utils/name-utils.d.ts +6 -0
- package/src/generators/kos-model/lib/utils/name-utils.d.ts.map +1 -0
- package/src/generators/kos-model/lib/utils/name-utils.js +42 -0
- package/src/generators/kos-model/lib/utils/name-utils.js.map +1 -0
- package/src/generators/kos-model/lib/utils/ts-visitor.d.ts +8 -0
- package/src/generators/kos-model/lib/utils/ts-visitor.d.ts.map +1 -0
- package/src/generators/kos-model/lib/utils/ts-visitor.js +126 -0
- package/src/generators/kos-model/lib/utils/ts-visitor.js.map +1 -0
- package/src/generators/kos-model/schema.d.ts +44 -0
- package/src/generators/kos-model/schema.json +137 -0
- package/src/generators/kos-plugin-project/files/.env.template +7 -0
- package/src/generators/kos-plugin-project/files/.kos.json.template +41 -0
- package/src/generators/kos-plugin-project/files/.storybook/main.ts.template +45 -0
- package/src/generators/kos-plugin-project/files/.storybook/preview.tsx.template +80 -0
- package/src/generators/kos-plugin-project/files/.storybook/registration.ts.template +40 -0
- package/src/generators/kos-plugin-project/files/index.html.template +15 -0
- package/src/generators/kos-plugin-project/files/module-federation.config.ts.template +1 -0
- package/src/generators/kos-plugin-project/files/src/app/app.css.template +2 -0
- package/src/generators/kos-plugin-project/files/src/app/app.tsx.template +54 -0
- package/src/generators/kos-plugin-project/files/src/app/components/main-view/index.ts.template +1 -0
- package/src/generators/kos-plugin-project/files/src/app/components/main-view/main-view.tsx.template +14 -0
- package/src/generators/kos-plugin-project/files/src/app/tools/experience-resolver.ts.template +10 -0
- package/src/generators/kos-plugin-project/files/src/app/tools/index.ts.template +2 -0
- package/src/generators/kos-plugin-project/files/src/app/tools/kOSJSON.ts.template +1 -0
- package/src/generators/kos-plugin-project/files/src/assets/kos-logo.svg.template +4 -0
- package/src/generators/kos-plugin-project/files/src/assets/locales/en/__nameDashCase__.json.template +3 -0
- package/src/generators/kos-plugin-project/files/src/registration.ts.template +13 -0
- package/src/generators/kos-plugin-project/files/webpack.config.prod.ts.template +24 -0
- package/src/generators/kos-plugin-project/files/webpack.config.ts.template +7 -0
- package/src/generators/kos-plugin-project/generator.d.ts +5 -0
- package/src/generators/kos-plugin-project/generator.d.ts.map +1 -0
- package/src/generators/kos-plugin-project/generator.js +108 -0
- package/src/generators/kos-plugin-project/generator.js.map +1 -0
- package/src/generators/kos-plugin-project/schema.d.ts +5 -0
- package/src/generators/kos-plugin-project/schema.json +33 -0
- package/src/generators/kos-splash-project/files/project/.kos.json.template +8 -0
- package/src/generators/kos-splash-project/files/project/project.json.template +17 -0
- package/src/generators/kos-splash-project/files/project/src/start.html.template +13 -0
- package/src/generators/kos-splash-project/files/tools/splashtool.mjs.template +247 -0
- package/src/generators/kos-splash-project/generator.d.ts +5 -0
- package/src/generators/kos-splash-project/generator.d.ts.map +1 -0
- package/src/generators/kos-splash-project/generator.js +17 -0
- package/src/generators/kos-splash-project/generator.js.map +1 -0
- package/src/generators/kos-splash-project/schema.d.ts +3 -0
- package/src/generators/kos-splash-project/schema.json +18 -0
- package/src/generators/kos-theme-project/files/.kos.json.template +8 -0
- package/src/generators/kos-theme-project/files/theme/component.css.template +2 -0
- package/src/generators/kos-theme-project/files/theme/generic.css.template +2 -0
- package/src/generators/kos-theme-project/files/theme/semantic.css.template +2 -0
- package/src/generators/kos-theme-project/files/theme/theme-overlay.css.template +7 -0
- package/src/generators/kos-theme-project/files/vite.config.ts.template +48 -0
- package/src/generators/kos-theme-project/generator.d.ts +5 -0
- package/src/generators/kos-theme-project/generator.d.ts.map +1 -0
- package/src/generators/kos-theme-project/generator.js +54 -0
- package/src/generators/kos-theme-project/generator.js.map +1 -0
- package/src/generators/kos-theme-project/schema.d.ts +3 -0
- package/src/generators/kos-theme-project/schema.json +18 -0
- package/src/generators/kos-ui-project/files/.env.template +7 -0
- package/src/generators/kos-ui-project/files/.kos.json.template +8 -0
- package/src/generators/kos-ui-project/files/bootstrap.tsx.template +13 -0
- package/src/generators/kos-ui-project/files/main.ts.template +18 -0
- package/src/generators/kos-ui-project/files/src/app/app.css.template +129 -0
- package/src/generators/kos-ui-project/files/src/app/app.tsx.template +45 -0
- package/src/generators/kos-ui-project/files/src/app/components/main-view/index.ts.template +1 -0
- package/src/generators/kos-ui-project/files/src/app/components/main-view/main-view.tsx.template +79 -0
- package/src/generators/kos-ui-project/files/src/app/registration.ts.template +17 -0
- package/src/generators/kos-ui-project/files/src/assets/graphics.png.template +0 -0
- package/src/generators/kos-ui-project/files/src/assets/kos-logo.svg.template +4 -0
- package/src/generators/kos-ui-project/files/src/assets/locales/en/__nameDashCase__.json.template +4 -0
- package/src/generators/kos-ui-project/files/src/bootstrap.tsx.template +13 -0
- package/src/generators/kos-ui-project/files/src/index.html.template +14 -0
- package/src/generators/kos-ui-project/files/webpack.config.ts.template +45 -0
- package/src/generators/kos-ui-project/generator.d.ts +5 -0
- package/src/generators/kos-ui-project/generator.d.ts.map +1 -0
- package/src/generators/kos-ui-project/generator.js +135 -0
- package/src/generators/kos-ui-project/generator.js.map +1 -0
- package/src/generators/kos-ui-project/internal/vite.config.ts.template +49 -0
- package/src/generators/kos-ui-project/schema.d.ts +7 -0
- package/src/generators/kos-ui-project/schema.json +34 -0
- package/src/generators/preset/api/utils/service.ts.template +20 -0
- package/src/generators/preset/files/.env.template +7 -0
- package/src/generators/preset/files/.kos.json.template +8 -0
- package/src/generators/preset/files/src/app/app.css.template +128 -0
- package/src/generators/preset/files/src/app/app.tsx.template +38 -0
- package/src/generators/preset/files/src/app/components/main-view/index.ts.template +1 -0
- package/src/generators/preset/files/src/app/components/main-view/main-view.tsx.template +79 -0
- package/src/generators/preset/files/src/app/registration.ts.template +20 -0
- package/src/generators/preset/files/src/assets/graphics.png +0 -0
- package/src/generators/preset/files/src/assets/kos-logo.svg.template +30 -0
- package/src/generators/preset/files/src/assets/locales/en/__nameDashCase__.json.template +4 -0
- package/src/generators/preset/files/src/bootstrap.tsx.template +13 -0
- package/src/generators/preset/files/src/index.html.template +15 -0
- package/src/generators/preset/files/src/main.ts.template +6 -0
- package/src/generators/preset/files/webpack.config.ts.template +45 -0
- package/src/generators/preset/generator.d.ts +5 -0
- package/src/generators/preset/generator.d.ts.map +1 -0
- package/src/generators/preset/generator.js +275 -0
- package/src/generators/preset/generator.js.map +1 -0
- package/src/generators/preset/local/.env.local.template +5 -0
- package/src/generators/preset/local/README.md.template +88 -0
- package/src/generators/preset/model/.kos.json.template +15 -0
- package/src/generators/preset/model-components/.kos.json.template +8 -0
- package/src/generators/preset/root/.kos.json.template +10 -0
- package/src/generators/preset/schema.d.ts +8 -0
- package/src/generators/preset/schema.json +14 -0
- package/src/generators/preset/tools/tools/scripts/archiver.js.template +79 -0
- package/src/generators/preset/tools/tools/scripts/descriptor.mjs.template +114 -0
- package/src/generators/preset/tools/tools/scripts/generate-api-types.mjs.template +25 -0
- package/src/generators/preset/tools/tools/scripts/kabtool.mjs.template +87 -0
- package/src/generators/preset/tools/tools/scripts/update.mjs.template +88 -0
- package/src/generators/preset/tools/tools/tsconfig.tools.json.template +12 -0
- package/src/index.d.ts +1 -0
- package/src/index.d.ts.map +1 -0
- package/src/index.js +2 -0
- package/src/index.js.map +1 -0
- package/src/migrations/add-overrides/add-overrides.d.ts +3 -0
- package/src/migrations/add-overrides/add-overrides.d.ts.map +1 -0
- package/src/migrations/add-overrides/add-overrides.js +85 -0
- package/src/migrations/add-overrides/add-overrides.js.map +1 -0
- package/src/migrations/add-overrides/files/.env.local__template__ +5 -0
- package/src/migrations/add-overrides/files/tools/scripts/archiver.js__template__ +79 -0
- package/src/migrations/add-overrides/files/tools/scripts/kabtool.mjs__template__ +85 -0
- package/src/migrations/add-overrides/projectFiles/.kos.json__template__ +5 -0
- package/src/migrations/add-update-tool/files/tools/scripts/update.mjs.template +67 -0
- package/src/migrations/add-update-tool/migrate.d.ts +3 -0
- package/src/migrations/add-update-tool/migrate.d.ts.map +1 -0
- package/src/migrations/add-update-tool/migrate.js +24 -0
- package/src/migrations/add-update-tool/migrate.js.map +1 -0
- package/src/migrations/cms-sdk/cms-sdk.d.ts +3 -0
- package/src/migrations/cms-sdk/cms-sdk.d.ts.map +1 -0
- package/src/migrations/cms-sdk/cms-sdk.js +22 -0
- package/src/migrations/cms-sdk/cms-sdk.js.map +1 -0
- package/src/migrations/consolidate-sdk/api/utils/service.ts.template +15 -0
- package/src/migrations/consolidate-sdk/consolidate-sdk.d.ts +3 -0
- package/src/migrations/consolidate-sdk/consolidate-sdk.d.ts.map +1 -0
- package/src/migrations/consolidate-sdk/consolidate-sdk.js +100 -0
- package/src/migrations/consolidate-sdk/consolidate-sdk.js.map +1 -0
- package/src/migrations/consolidate-sdk/files/tools/scripts/generate-api-types.mjs.template +25 -0
- package/src/migrations/default-projects/default-projects.d.ts +3 -0
- package/src/migrations/default-projects/default-projects.d.ts.map +1 -0
- package/src/migrations/default-projects/default-projects.js +45 -0
- package/src/migrations/default-projects/default-projects.js.map +1 -0
- package/src/migrations/default-projects/files/index.ts__template__ +2 -0
- package/src/migrations/freestyle-sdk/freestyle-sdk.d.ts +3 -0
- package/src/migrations/freestyle-sdk/freestyle-sdk.d.ts.map +1 -0
- package/src/migrations/freestyle-sdk/freestyle-sdk.js +18 -0
- package/src/migrations/freestyle-sdk/freestyle-sdk.js.map +1 -0
- package/src/migrations/kabtool-env/migrate.d.ts +3 -0
- package/src/migrations/kabtool-env/migrate.d.ts.map +1 -0
- package/src/migrations/kabtool-env/migrate.js +11 -0
- package/src/migrations/kabtool-env/migrate.js.map +1 -0
- package/src/migrations/migrate-extensions/migrate-extensions.d.ts +3 -0
- package/src/migrations/migrate-extensions/migrate-extensions.d.ts.map +1 -0
- package/src/migrations/migrate-extensions/migrate-extensions.js +77 -0
- package/src/migrations/migrate-extensions/migrate-extensions.js.map +1 -0
- package/src/migrations/translation-format/translation-format.d.ts +3 -0
- package/src/migrations/translation-format/translation-format.d.ts.map +1 -0
- package/src/migrations/translation-format/translation-format.js +56 -0
- package/src/migrations/translation-format/translation-format.js.map +1 -0
- package/src/migrations/translations/add-descriptor.d.ts +3 -0
- package/src/migrations/translations/add-descriptor.d.ts.map +1 -0
- package/src/migrations/translations/add-descriptor.js +48 -0
- package/src/migrations/translations/add-descriptor.js.map +1 -0
- package/src/migrations/translations/files/tools/scripts/descriptor.mjs.template +114 -0
- package/src/migrations/update-kabtool/files/tools/scripts/kabtool.mjs.template +87 -0
- package/src/migrations/update-kabtool/update-kabtool.d.ts +3 -0
- package/src/migrations/update-kabtool/update-kabtool.d.ts.map +1 -0
- package/src/migrations/update-kabtool/update-kabtool.js +11 -0
- package/src/migrations/update-kabtool/update-kabtool.js.map +1 -0
- package/src/migrations/update-sdk/update-sdk.d.ts +3 -0
- package/src/migrations/update-sdk/update-sdk.d.ts.map +1 -0
- package/src/migrations/update-sdk/update-sdk.js +17 -0
- package/src/migrations/update-sdk/update-sdk.js.map +1 -0
- package/src/migrations/update-sdk-2.0/update.d.ts +3 -0
- package/src/migrations/update-sdk-2.0/update.d.ts.map +1 -0
- package/src/migrations/update-sdk-2.0/update.js +37 -0
- package/src/migrations/update-sdk-2.0/update.js.map +1 -0
- package/src/utils/java-home.d.ts +2 -0
- package/src/utils/java-home.d.ts.map +1 -0
- package/src/utils/java-home.js +44 -0
- package/src/utils/java-home.js.map +1 -0
- package/src/utils/logger.d.ts +9 -0
- package/src/utils/logger.d.ts.map +1 -0
- package/src/utils/logger.js +46 -0
- package/src/utils/logger.js.map +1 -0
- package/src/utils/name-utils.d.ts +6 -0
- package/src/utils/name-utils.d.ts.map +1 -0
- package/src/utils/name-utils.js +60 -0
- package/src/utils/name-utils.js.map +1 -0
- package/src/utils/normalize-value.d.ts +7 -0
- package/src/utils/normalize-value.d.ts.map +1 -0
- package/src/utils/normalize-value.js +33 -0
- package/src/utils/normalize-value.js.map +1 -0
- package/src/utils/project-utils.d.ts +36 -0
- package/src/utils/project-utils.d.ts.map +1 -0
- package/src/utils/project-utils.js +102 -0
- package/src/utils/project-utils.js.map +1 -0
|
@@ -0,0 +1,313 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ModelFileTransformer = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Transformer that updates existing models to use the new @kosFutureAware decorator pattern
|
|
6
|
+
* with TypeScript interface merging for type safety.
|
|
7
|
+
*/
|
|
8
|
+
class ModelFileTransformer {
|
|
9
|
+
tree;
|
|
10
|
+
options;
|
|
11
|
+
constructor(tree, options) {
|
|
12
|
+
this.tree = tree;
|
|
13
|
+
this.options = options;
|
|
14
|
+
}
|
|
15
|
+
transform() {
|
|
16
|
+
const { modelFilePath } = this.options;
|
|
17
|
+
if (!this.tree.exists(modelFilePath)) {
|
|
18
|
+
throw new Error(`Model file not found: ${modelFilePath}`);
|
|
19
|
+
}
|
|
20
|
+
let content = this.tree.read(modelFilePath, "utf-8");
|
|
21
|
+
content = this.addESLintDisable(content);
|
|
22
|
+
content = this.addImports(content);
|
|
23
|
+
content = this.addServiceImport(content);
|
|
24
|
+
content = this.addInterfaceMerging(content);
|
|
25
|
+
content = this.addDecorator(content);
|
|
26
|
+
content = this.updatePublicType(content);
|
|
27
|
+
content = this.removeLegacySetup(content);
|
|
28
|
+
content = this.addFutureMethod(content);
|
|
29
|
+
if (this.options.futureType === "complete") {
|
|
30
|
+
content = this.addOnFutureUpdateMethod(content);
|
|
31
|
+
}
|
|
32
|
+
this.tree.write(modelFilePath, content);
|
|
33
|
+
}
|
|
34
|
+
addESLintDisable(content) {
|
|
35
|
+
// Check if ESLint disable comment already exists
|
|
36
|
+
if (content.includes("@typescript-eslint/no-unsafe-declaration-merging")) {
|
|
37
|
+
return content;
|
|
38
|
+
}
|
|
39
|
+
// Add the ESLint disable comment at the top of the file
|
|
40
|
+
const eslintDisable = "/* eslint-disable @typescript-eslint/no-unsafe-declaration-merging */\n";
|
|
41
|
+
return eslintDisable + content;
|
|
42
|
+
}
|
|
43
|
+
addImports(content) {
|
|
44
|
+
const { internal, futureType } = this.options;
|
|
45
|
+
const isComplete = futureType === "complete";
|
|
46
|
+
// Find the kosModel import line
|
|
47
|
+
const kosModelImportRegex = internal
|
|
48
|
+
? /import\s*{\s*([^}]*kosModel[^}]*)\s*}\s*from\s*"\.\.\/\.\.\/\.\.\/core\/core\/decorators"/
|
|
49
|
+
: /import\s*{\s*([^}]*kosModel[^}]*)\s*}\s*from\s*"@kosdev-code\/kos-ui-sdk"/;
|
|
50
|
+
const kosModelMatch = content.match(kosModelImportRegex);
|
|
51
|
+
if (kosModelMatch) {
|
|
52
|
+
const existingImportsStr = kosModelMatch[1] || "";
|
|
53
|
+
const newImports = [
|
|
54
|
+
"kosFuture",
|
|
55
|
+
"kosFutureAware",
|
|
56
|
+
isComplete ? "KosFutureAwareFull" : "KosFutureAwareMinimal",
|
|
57
|
+
];
|
|
58
|
+
// Parse existing imports and add new ones
|
|
59
|
+
const existingImports = existingImportsStr
|
|
60
|
+
.split(",")
|
|
61
|
+
.map((s) => s.trim())
|
|
62
|
+
.filter(Boolean);
|
|
63
|
+
// Remove old setup functions if they exist
|
|
64
|
+
const importsToRemove = [
|
|
65
|
+
"setupCompleteFutureSupport",
|
|
66
|
+
"setupMinimalFutureSupport",
|
|
67
|
+
];
|
|
68
|
+
const cleanedImports = existingImports.filter((imp) => !importsToRemove.includes(imp));
|
|
69
|
+
// Only add imports that don't already exist
|
|
70
|
+
const importsToAdd = newImports.filter((imp) => !cleanedImports.includes(imp));
|
|
71
|
+
const allImports = [...cleanedImports, ...importsToAdd];
|
|
72
|
+
const newImportLine = internal
|
|
73
|
+
? `import { ${allImports.join(", ")} } from "../../../core/core/decorators"`
|
|
74
|
+
: `import { ${allImports.join(", ")} } from "@kosdev-code/kos-ui-sdk"`;
|
|
75
|
+
content = content.replace(kosModelImportRegex, newImportLine);
|
|
76
|
+
}
|
|
77
|
+
// Add type imports
|
|
78
|
+
const typeImportsBase = internal
|
|
79
|
+
? "../../../models/types/future-interfaces"
|
|
80
|
+
: "@kosdev-code/kos-ui-sdk";
|
|
81
|
+
const futureTypeImports = ["ExternalFutureInterface", "IFutureModel"];
|
|
82
|
+
// Find existing type import or add new one
|
|
83
|
+
const typeImportRegex = internal
|
|
84
|
+
? /import type {([^}]*)} from "\.\.\/\.\.\/\.\.\/models\/types\/future-interfaces"/
|
|
85
|
+
: /import type {([^}]*)} from "@kosdev-code\/kos-ui-sdk"/;
|
|
86
|
+
const typeImportMatch = content.match(typeImportRegex);
|
|
87
|
+
if (typeImportMatch) {
|
|
88
|
+
// Update existing import
|
|
89
|
+
const existingTypes = typeImportMatch[1] || "";
|
|
90
|
+
const existingTypesList = existingTypes
|
|
91
|
+
.split(",")
|
|
92
|
+
.map((s) => s.trim())
|
|
93
|
+
.filter(Boolean);
|
|
94
|
+
// Remove old types that are no longer needed
|
|
95
|
+
const typesToRemove = [
|
|
96
|
+
"FutureAwareContainer",
|
|
97
|
+
"FutureHandlerContainer",
|
|
98
|
+
"FutureStateAccessor",
|
|
99
|
+
"FutureUpdateHandler",
|
|
100
|
+
];
|
|
101
|
+
const cleanedTypes = existingTypesList.filter((type) => !typesToRemove.includes(type));
|
|
102
|
+
const typesToAdd = futureTypeImports.filter((type) => !cleanedTypes.includes(type));
|
|
103
|
+
const allTypes = [...cleanedTypes, ...typesToAdd].join(", ");
|
|
104
|
+
const newTypeImport = `import type { ${allTypes} } from "${typeImportsBase}"`;
|
|
105
|
+
content = content.replace(typeImportRegex, newTypeImport);
|
|
106
|
+
}
|
|
107
|
+
else {
|
|
108
|
+
// Add new type import after other imports
|
|
109
|
+
const importLines = content.split("\n");
|
|
110
|
+
const lastImportIndex = importLines.findLastIndex((line) => line.trim().startsWith("import"));
|
|
111
|
+
if (lastImportIndex >= 0) {
|
|
112
|
+
const newTypeImport = `import type { ${futureTypeImports.join(", ")} } from "${typeImportsBase}";`;
|
|
113
|
+
importLines.splice(lastImportIndex + 1, 0, newTypeImport);
|
|
114
|
+
content = importLines.join("\n");
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
return content;
|
|
118
|
+
}
|
|
119
|
+
addServiceImport(content) {
|
|
120
|
+
const { nameProperCase, updateServices } = this.options;
|
|
121
|
+
// If updateServices is false, we don't need to import the progress type
|
|
122
|
+
if (!updateServices) {
|
|
123
|
+
return content;
|
|
124
|
+
}
|
|
125
|
+
// Check if progress type is already imported
|
|
126
|
+
if (content.includes(`${nameProperCase}OperationProgress`)) {
|
|
127
|
+
return content;
|
|
128
|
+
}
|
|
129
|
+
// Look for existing "./services" import
|
|
130
|
+
const servicesImportRegex = /import\s*{([^}]*)}\s*from\s*["']\.\/services["'];?/s;
|
|
131
|
+
const servicesMatch = content.match(servicesImportRegex);
|
|
132
|
+
if (servicesMatch) {
|
|
133
|
+
// Add to existing services import
|
|
134
|
+
const existingImports = servicesMatch[1];
|
|
135
|
+
const cleanedImports = existingImports
|
|
136
|
+
.split(",")
|
|
137
|
+
.map((s) => s.trim())
|
|
138
|
+
.filter(Boolean);
|
|
139
|
+
cleanedImports.push(`${nameProperCase}OperationProgress`);
|
|
140
|
+
const newImport = `import { ${cleanedImports.join(", ")} } from "./services";`;
|
|
141
|
+
content = content.replace(servicesImportRegex, newImport);
|
|
142
|
+
}
|
|
143
|
+
else {
|
|
144
|
+
// Add new services import after types import
|
|
145
|
+
const typesImportRegex = /import\s+type\s+{[^}]*}\s+from\s+["']\.\/types["'];?/;
|
|
146
|
+
const typesMatch = content.match(typesImportRegex);
|
|
147
|
+
if (typesMatch) {
|
|
148
|
+
const newImport = `\nimport type { ${nameProperCase}OperationProgress } from "./services";`;
|
|
149
|
+
content = content.replace(typesMatch[0], typesMatch[0] + newImport);
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
return content;
|
|
153
|
+
}
|
|
154
|
+
addInterfaceMerging(content) {
|
|
155
|
+
const { nameProperCase, futureType } = this.options;
|
|
156
|
+
const isComplete = futureType === "complete";
|
|
157
|
+
const interfaceType = isComplete
|
|
158
|
+
? "KosFutureAwareFull"
|
|
159
|
+
: "KosFutureAwareMinimal";
|
|
160
|
+
const progressType = this.options.updateServices
|
|
161
|
+
? `${nameProperCase}OperationProgress`
|
|
162
|
+
: "Record<string, unknown>";
|
|
163
|
+
// Find the class declaration
|
|
164
|
+
const classRegex = new RegExp(`(@kosModel[^\\n]*\\n)([^\\n]*export\\s+class\\s+${nameProperCase}ModelImpl)`, "m");
|
|
165
|
+
const classMatch = content.match(classRegex);
|
|
166
|
+
if (classMatch) {
|
|
167
|
+
// Check if interface merging already exists
|
|
168
|
+
const interfaceRegex = new RegExp(`interface\\s+${nameProperCase}ModelImpl\\s+extends`);
|
|
169
|
+
if (!content.match(interfaceRegex)) {
|
|
170
|
+
// Add interface merging before the class declaration
|
|
171
|
+
const interfaceMerging = `\n// Interface merging for Future Container type safety\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface ${nameProperCase}ModelImpl extends ${interfaceType}<${progressType}> {}\n\n`;
|
|
172
|
+
content = content.replace(classMatch[0], interfaceMerging + classMatch[0]);
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
return content;
|
|
176
|
+
}
|
|
177
|
+
addDecorator(content) {
|
|
178
|
+
const { nameProperCase, futureType } = this.options;
|
|
179
|
+
const isComplete = futureType === "complete";
|
|
180
|
+
// Find the class declaration with existing decorators
|
|
181
|
+
const classRegex = new RegExp(`(@kosModel[^\\n]*\\n)((?:@[^\\n]*\\n)*)([^\\n]*export\\s+class\\s+${nameProperCase}ModelImpl)`, "m");
|
|
182
|
+
const classMatch = content.match(classRegex);
|
|
183
|
+
if (classMatch) {
|
|
184
|
+
// Check if @kosFutureAware already exists
|
|
185
|
+
if (!classMatch[2].includes("@kosFutureAware")) {
|
|
186
|
+
const decoratorOptions = isComplete ? "" : "{ mode: 'minimal' }";
|
|
187
|
+
const futureDecorator = `@kosFutureAware(${decoratorOptions})\n`;
|
|
188
|
+
content = content.replace(classMatch[0], classMatch[1] + classMatch[2] + futureDecorator + classMatch[3]);
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
return content;
|
|
192
|
+
}
|
|
193
|
+
updatePublicType(content) {
|
|
194
|
+
const { nameProperCase, updateServices } = this.options;
|
|
195
|
+
const progressType = updateServices
|
|
196
|
+
? `${nameProperCase}OperationProgress`
|
|
197
|
+
: "Record<string, unknown>";
|
|
198
|
+
// Find the public type declaration
|
|
199
|
+
const typeRegex = new RegExp(`export\\s+type\\s+${nameProperCase}Model\\s*=\\s*PublicModelInterface<${nameProperCase}ModelImpl>([^;]*);`, "s");
|
|
200
|
+
const typeMatch = content.match(typeRegex);
|
|
201
|
+
if (typeMatch) {
|
|
202
|
+
// Check if ExternalFutureInterface is already added
|
|
203
|
+
if (!typeMatch[1].includes("ExternalFutureInterface")) {
|
|
204
|
+
const newType = `export type ${nameProperCase}Model = PublicModelInterface<${nameProperCase}ModelImpl> & ExternalFutureInterface<${progressType}>;`;
|
|
205
|
+
content = content.replace(typeMatch[0], newType);
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
return content;
|
|
209
|
+
}
|
|
210
|
+
removeLegacySetup(content) {
|
|
211
|
+
// Remove old setup function calls from constructor
|
|
212
|
+
const setupRegex = /\s*setup(Complete|Minimal)FutureSupport\(this\);?\s*/g;
|
|
213
|
+
content = content.replace(setupRegex, "");
|
|
214
|
+
// Remove old property declarations
|
|
215
|
+
const propertyRegex = /\s*(public|private|protected)?\s*(declare\s+)?futureHandler[!?]?:\s*FutureAwareContainer[^;]*;\s*/g;
|
|
216
|
+
content = content.replace(propertyRegex, "");
|
|
217
|
+
const futurePropertyRegex = /\s*(public|private|protected)?\s*(declare\s+)?future\??:\s*IFutureModel[^;]*;\s*/g;
|
|
218
|
+
content = content.replace(futurePropertyRegex, "");
|
|
219
|
+
// Remove old interface implementations
|
|
220
|
+
const implementsRegex = new RegExp(`(implements\\s+[^{]*?)\\s*,?\\s*(FutureUpdateHandler|FutureHandlerContainer|FutureStateAccessor)`, "g");
|
|
221
|
+
content = content.replace(implementsRegex, "$1");
|
|
222
|
+
// Clean up duplicate commas in implements clause
|
|
223
|
+
content = content.replace(/,\s*,/g, ",");
|
|
224
|
+
content = content.replace(/implements\s*,/g, "implements");
|
|
225
|
+
return content;
|
|
226
|
+
}
|
|
227
|
+
addFutureMethod(content) {
|
|
228
|
+
const { nameProperCase } = this.options;
|
|
229
|
+
// Check if a @kosFuture method already exists
|
|
230
|
+
if (content.includes("@kosFuture()")) {
|
|
231
|
+
return content;
|
|
232
|
+
}
|
|
233
|
+
// Find the end of the class to add the method
|
|
234
|
+
const classRegex = new RegExp(`class\\s+${nameProperCase}ModelImpl[^{]*{([\\s\\S]*)}\\s*$`, "m");
|
|
235
|
+
const classMatch = content.match(classRegex);
|
|
236
|
+
if (classMatch) {
|
|
237
|
+
const methodCode = `
|
|
238
|
+
/**
|
|
239
|
+
* Placeholder method for Future operations
|
|
240
|
+
* Replace this with your actual long-running operation
|
|
241
|
+
*/
|
|
242
|
+
@kosFuture()
|
|
243
|
+
async performLongRunningOperation(): Promise<void> {
|
|
244
|
+
// TODO: Implement your long-running operation here
|
|
245
|
+
// This method should use a service that returns a Future for progress tracking
|
|
246
|
+
|
|
247
|
+
this.logger.debug(\`Starting long-running operation for \${this.id}\`);
|
|
248
|
+
|
|
249
|
+
// Example implementation pattern using services:
|
|
250
|
+
// import { perform${nameProperCase}Operation } from './services';
|
|
251
|
+
//
|
|
252
|
+
// const future = await perform${nameProperCase}Operation();
|
|
253
|
+
// return this.futureHandler.setFuture(future);
|
|
254
|
+
|
|
255
|
+
// Placeholder that doesn't actually do anything
|
|
256
|
+
await new Promise(resolve => setTimeout(resolve, 1000));
|
|
257
|
+
|
|
258
|
+
this.logger.debug(\`Completed long-running operation for \${this.id}\`);
|
|
259
|
+
}
|
|
260
|
+
`;
|
|
261
|
+
// Insert before the closing brace
|
|
262
|
+
const classContent = classMatch[1];
|
|
263
|
+
const lastBraceIndex = classContent.lastIndexOf("}");
|
|
264
|
+
if (lastBraceIndex >= 0) {
|
|
265
|
+
const updatedContent = classContent.slice(0, lastBraceIndex) +
|
|
266
|
+
methodCode +
|
|
267
|
+
classContent.slice(lastBraceIndex);
|
|
268
|
+
content = content.replace(classMatch[0], `class ${nameProperCase}ModelImpl${classMatch[0].match(/[^{]*/)?.[0]}{${updatedContent}}`);
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
return content;
|
|
272
|
+
}
|
|
273
|
+
addOnFutureUpdateMethod(content) {
|
|
274
|
+
const { nameProperCase, updateServices } = this.options;
|
|
275
|
+
const progressType = updateServices
|
|
276
|
+
? `${nameProperCase}OperationProgress`
|
|
277
|
+
: "Record<string, unknown>";
|
|
278
|
+
// Check if onFutureUpdate already exists
|
|
279
|
+
if (content.includes("onFutureUpdate")) {
|
|
280
|
+
return content;
|
|
281
|
+
}
|
|
282
|
+
// Find a good place to add the method (after performLongRunningOperation if it exists)
|
|
283
|
+
const futureMethodRegex = /@kosFuture\(\)[^}]*}/s;
|
|
284
|
+
const futureMethodMatch = content.match(futureMethodRegex);
|
|
285
|
+
if (futureMethodMatch) {
|
|
286
|
+
const methodCode = `
|
|
287
|
+
|
|
288
|
+
/**
|
|
289
|
+
* Optional: Custom Future update handling
|
|
290
|
+
* Called whenever the Future state changes (progress, status, completion, etc.)
|
|
291
|
+
*/
|
|
292
|
+
onFutureUpdate?(update: IFutureModel<${progressType}>): void {
|
|
293
|
+
// Add custom Future update logic here
|
|
294
|
+
// Examples:
|
|
295
|
+
// - Log progress milestones
|
|
296
|
+
// - Update derived state based on progress
|
|
297
|
+
// - Handle specific error conditions
|
|
298
|
+
// - Trigger notifications at certain thresholds
|
|
299
|
+
|
|
300
|
+
this.logger.debug(\`Future update for \${this.id}:\`, {
|
|
301
|
+
progress: update.progress,
|
|
302
|
+
status: update.status,
|
|
303
|
+
endState: update.endState,
|
|
304
|
+
clientData: update.clientData
|
|
305
|
+
});
|
|
306
|
+
}`;
|
|
307
|
+
content = content.replace(futureMethodMatch[0], futureMethodMatch[0] + methodCode);
|
|
308
|
+
}
|
|
309
|
+
return content;
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
exports.ModelFileTransformer = ModelFileTransformer;
|
|
313
|
+
//# sourceMappingURL=model-transformer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model-transformer.js","sourceRoot":"","sources":["../../../../../../../../packages/plugins/kos-nx-plugin/src/generators/kos-add-future-to-model/lib/model-transformer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { Tree } from "@nx/devkit";
|
|
2
|
+
import { KosAddFutureToModelSchema, NormalizedKosAddFutureToModelSchema } from "../schema";
|
|
3
|
+
export declare function normalizeOptions(tree: Tree, options: KosAddFutureToModelSchema): NormalizedKosAddFutureToModelSchema;
|
|
4
|
+
//# sourceMappingURL=normalize-options.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalize-options.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/plugins/kos-nx-plugin/src/generators/kos-add-future-to-model/lib/normalize-options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAA4B,MAAM,YAAY,CAAC;AAI5D,OAAO,EACL,yBAAyB,EACzB,mCAAmC,EACpC,MAAM,WAAW,CAAC;AAEnB,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,yBAAyB,GACjC,mCAAmC,CA0DrC"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.normalizeOptions = void 0;
|
|
4
|
+
const devkit_1 = require("@nx/devkit");
|
|
5
|
+
const path = require("path");
|
|
6
|
+
const normalize_value_1 = require("../../../utils/normalize-value");
|
|
7
|
+
const project_utils_1 = require("../../../utils/project-utils");
|
|
8
|
+
function normalizeOptions(tree, options) {
|
|
9
|
+
const projectConfiguration = (0, devkit_1.readProjectConfiguration)(tree, options.modelProject);
|
|
10
|
+
const kosConfig = (0, project_utils_1.getKosProjectConfiguration)(tree, options.modelProject);
|
|
11
|
+
const internal = !!kosConfig?.generator?.internal;
|
|
12
|
+
// Normalize name variations
|
|
13
|
+
const normalizedValues = (0, normalize_value_1.normalizeAllValues)({
|
|
14
|
+
modelName: options.modelName,
|
|
15
|
+
});
|
|
16
|
+
const nameDashCase = normalizedValues.modelNameDashCase;
|
|
17
|
+
const nameProperCase = normalizedValues.modelNameProperCase;
|
|
18
|
+
const nameCamelCase = normalizedValues.modelNameCamelCase;
|
|
19
|
+
const namePascalCase = normalizedValues.modelNamePascalCase;
|
|
20
|
+
const nameConstantCase = normalizedValues.modelNameConstantCase;
|
|
21
|
+
const nameLowerCase = normalizedValues.modelNameLowerCase;
|
|
22
|
+
const projectRoot = projectConfiguration.root;
|
|
23
|
+
const sourceRoot = projectConfiguration.sourceRoot || path.join(projectRoot, "src");
|
|
24
|
+
// Determine model file path
|
|
25
|
+
const modelLocation = kosConfig?.generator?.defaults?.model?.folder || "";
|
|
26
|
+
const modelDirectory = path.join(sourceRoot, modelLocation, nameDashCase);
|
|
27
|
+
const modelFilePath = path.join(modelDirectory, `${nameDashCase}-model.ts`);
|
|
28
|
+
// Determine services file path
|
|
29
|
+
const servicesDirectory = path.join(modelDirectory, "services");
|
|
30
|
+
const servicesFilePath = tree.exists(servicesDirectory)
|
|
31
|
+
? path.join(servicesDirectory, `${nameDashCase}-services.ts`)
|
|
32
|
+
: undefined;
|
|
33
|
+
// Determine registration file path
|
|
34
|
+
const registrationFilePath = path.join(modelDirectory, `${nameDashCase}-registration.ts`);
|
|
35
|
+
return {
|
|
36
|
+
...options,
|
|
37
|
+
nameDashCase,
|
|
38
|
+
nameProperCase,
|
|
39
|
+
nameCamelCase,
|
|
40
|
+
namePascalCase,
|
|
41
|
+
nameConstantCase,
|
|
42
|
+
nameLowerCase,
|
|
43
|
+
projectRoot,
|
|
44
|
+
sourceRoot,
|
|
45
|
+
modelFilePath,
|
|
46
|
+
servicesFilePath,
|
|
47
|
+
registrationFilePath: tree.exists(registrationFilePath)
|
|
48
|
+
? registrationFilePath
|
|
49
|
+
: undefined,
|
|
50
|
+
internal,
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
exports.normalizeOptions = normalizeOptions;
|
|
54
|
+
//# sourceMappingURL=normalize-options.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalize-options.js","sourceRoot":"","sources":["../../../../../../../../packages/plugins/kos-nx-plugin/src/generators/kos-add-future-to-model/lib/normalize-options.ts"],"names":[],"mappings":";;;AAAA,uCAA4D;AAC5D,6BAA6B;AAC7B,oEAAoE;AACpE,gEAA0E;AAM1E,SAAgB,gBAAgB,CAC9B,IAAU,EACV,OAAkC;IAElC,MAAM,oBAAoB,GAAG,IAAA,iCAAwB,EACnD,IAAI,EACJ,OAAO,CAAC,YAAY,CACrB,CAAC;IACF,MAAM,SAAS,GAAG,IAAA,0CAA0B,EAAC,IAAI,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IACzE,MAAM,QAAQ,GAAG,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC;IAElD,4BAA4B;IAC5B,MAAM,gBAAgB,GAAG,IAAA,oCAAkB,EAAC;QAC1C,SAAS,EAAE,OAAO,CAAC,SAAS;KAC7B,CAAC,CAAC;IAEH,MAAM,YAAY,GAAG,gBAAgB,CAAC,iBAAiB,CAAC;IACxD,MAAM,cAAc,GAAG,gBAAgB,CAAC,mBAAmB,CAAC;IAC5D,MAAM,aAAa,GAAG,gBAAgB,CAAC,kBAAkB,CAAC;IAC1D,MAAM,cAAc,GAAG,gBAAgB,CAAC,mBAAmB,CAAC;IAC5D,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,qBAAqB,CAAC;IAChE,MAAM,aAAa,GAAG,gBAAgB,CAAC,kBAAkB,CAAC;IAE1D,MAAM,WAAW,GAAG,oBAAoB,CAAC,IAAI,CAAC;IAC9C,MAAM,UAAU,GACd,oBAAoB,CAAC,UAAU,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IAEnE,4BAA4B;IAC5B,MAAM,aAAa,GAAG,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,IAAI,EAAE,CAAC;IAC1E,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,aAAa,EAAE,YAAY,CAAC,CAAC;IAC1E,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,GAAG,YAAY,WAAW,CAAC,CAAC;IAE5E,+BAA+B;IAC/B,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;IAChE,MAAM,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC;QACrD,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,GAAG,YAAY,cAAc,CAAC;QAC7D,CAAC,CAAC,SAAS,CAAC;IAEd,mCAAmC;IACnC,MAAM,oBAAoB,GAAG,IAAI,CAAC,IAAI,CACpC,cAAc,EACd,GAAG,YAAY,kBAAkB,CAClC,CAAC;IAEF,OAAO;QACL,GAAG,OAAO;QACV,YAAY;QACZ,cAAc;QACd,aAAa;QACb,cAAc;QACd,gBAAgB;QAChB,aAAa;QACb,WAAW;QACX,UAAU;QACV,aAAa;QACb,gBAAgB;QAChB,oBAAoB,EAAE,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC;YACrD,CAAC,CAAC,oBAAoB;YACtB,CAAC,CAAC,SAAS;QACb,QAAQ;KACT,CAAC;AACJ,CAAC;AA7DD,4CA6DC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Tree } from "@nx/devkit";
|
|
2
|
+
import { NormalizedKosAddFutureToModelSchema } from "../schema";
|
|
3
|
+
export declare class RegistrationFileTransformer {
|
|
4
|
+
private tree;
|
|
5
|
+
private options;
|
|
6
|
+
constructor(tree: Tree, options: NormalizedKosAddFutureToModelSchema);
|
|
7
|
+
transform(): void;
|
|
8
|
+
private addTypeCast;
|
|
9
|
+
private updateDocumentation;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=registration-transformer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registration-transformer.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/plugins/kos-nx-plugin/src/generators/kos-add-future-to-model/lib/registration-transformer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,mCAAmC,EAAE,MAAM,WAAW,CAAC;AAEhE,qBAAa,2BAA2B;IAEpC,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,OAAO;gBADP,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,mCAAmC;IAGtD,SAAS,IAAI,IAAI;IAkBjB,OAAO,CAAC,WAAW;IAWnB,OAAO,CAAC,mBAAmB;CAyD5B"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RegistrationFileTransformer = void 0;
|
|
4
|
+
class RegistrationFileTransformer {
|
|
5
|
+
tree;
|
|
6
|
+
options;
|
|
7
|
+
constructor(tree, options) {
|
|
8
|
+
this.tree = tree;
|
|
9
|
+
this.options = options;
|
|
10
|
+
}
|
|
11
|
+
transform() {
|
|
12
|
+
const { registrationFilePath } = this.options;
|
|
13
|
+
if (!registrationFilePath || !this.tree.exists(registrationFilePath)) {
|
|
14
|
+
console.warn("Registration file not found, skipping registration updates");
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
let content = this.tree.read(registrationFilePath, "utf-8");
|
|
18
|
+
content = this.addTypeCast(content);
|
|
19
|
+
content = this.updateDocumentation(content);
|
|
20
|
+
this.tree.write(registrationFilePath, content);
|
|
21
|
+
}
|
|
22
|
+
addTypeCast(content) {
|
|
23
|
+
const { nameProperCase } = this.options;
|
|
24
|
+
// Find the registration factory instantiation and add type cast
|
|
25
|
+
const factoryRegex = new RegExp(`class: ${nameProperCase}ModelImpl,`);
|
|
26
|
+
const replacement = `class: ${nameProperCase}ModelImpl as any, // Type cast needed for Future intersection`;
|
|
27
|
+
return content.replace(factoryRegex, replacement);
|
|
28
|
+
}
|
|
29
|
+
updateDocumentation(content) {
|
|
30
|
+
const { nameProperCase, futureType } = this.options;
|
|
31
|
+
// Add Future support documentation after the main description
|
|
32
|
+
const descriptionRegex = new RegExp(`(\\* The registration bean includes convenience methods for creating and working with ${nameProperCase}Model instances\\.)`);
|
|
33
|
+
const futureDocumentation = `$1
|
|
34
|
+
*
|
|
35
|
+
* ## Future Support
|
|
36
|
+
* This model includes ${futureType} Future support for tracking long-running operations with:
|
|
37
|
+
* - Progress tracking (0-1) with reactive updates
|
|
38
|
+
* - Status messages during operation
|
|
39
|
+
* - Cancellation support with bi-directional AbortController integration
|
|
40
|
+
* - Reactive integration for UI updates${futureType === "complete"
|
|
41
|
+
? "\n * - Internal access to Future state for custom logic and computed properties"
|
|
42
|
+
: ""}`;
|
|
43
|
+
if (content.match(descriptionRegex)) {
|
|
44
|
+
content = content.replace(descriptionRegex, futureDocumentation);
|
|
45
|
+
}
|
|
46
|
+
// Add Future usage examples to factory documentation
|
|
47
|
+
const factoryExampleRegex = /(\*\s+\}\);?\s*\*\s+```)/;
|
|
48
|
+
const futureExample = `$1
|
|
49
|
+
*
|
|
50
|
+
* // Example: Accessing Future state (when a Future is active)
|
|
51
|
+
* const isRunning = model.futureIsRunning;
|
|
52
|
+
* const progress = model.futureProgress; // 0-1
|
|
53
|
+
* const status = model.futureStatus; // Current status message
|
|
54
|
+
* \`\`\``;
|
|
55
|
+
if (content.match(factoryExampleRegex)) {
|
|
56
|
+
content = content.replace(factoryExampleRegex, futureExample);
|
|
57
|
+
}
|
|
58
|
+
// Add Future capabilities to predicate examples
|
|
59
|
+
const predicateExampleRegex = /(\*\s+model\.updateAvailability\(false\);?\s*\*\s+\})/;
|
|
60
|
+
const predicateFutureExample = `$1
|
|
61
|
+
*
|
|
62
|
+
* // Future capabilities are also available
|
|
63
|
+
* const isRunning = model.futureIsRunning;
|
|
64
|
+
* const progress = model.futureProgress;
|
|
65
|
+
* }`;
|
|
66
|
+
if (content.match(predicateExampleRegex)) {
|
|
67
|
+
content = content.replace(predicateExampleRegex, predicateFutureExample);
|
|
68
|
+
}
|
|
69
|
+
return content;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
exports.RegistrationFileTransformer = RegistrationFileTransformer;
|
|
73
|
+
//# sourceMappingURL=registration-transformer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registration-transformer.js","sourceRoot":"","sources":["../../../../../../../../packages/plugins/kos-nx-plugin/src/generators/kos-add-future-to-model/lib/registration-transformer.ts"],"names":[],"mappings":";;;AAGA,MAAa,2BAA2B;IAE5B;IACA;IAFV,YACU,IAAU,EACV,OAA4C;QAD5C,SAAI,GAAJ,IAAI,CAAM;QACV,YAAO,GAAP,OAAO,CAAqC;IACnD,CAAC;IAEJ,SAAS;QACP,MAAM,EAAE,oBAAoB,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;QAE9C,IAAI,CAAC,oBAAoB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,EAAE,CAAC;YACrE,OAAO,CAAC,IAAI,CACV,4DAA4D,CAC7D,CAAC;YACF,OAAO;QACT,CAAC;QAED,IAAI,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,OAAO,CAAE,CAAC;QAE7D,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACpC,OAAO,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAE5C,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAC;IACjD,CAAC;IAEO,WAAW,CAAC,OAAe;QACjC,MAAM,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;QAExC,gEAAgE;QAChE,MAAM,YAAY,GAAG,IAAI,MAAM,CAAC,UAAU,cAAc,YAAY,CAAC,CAAC;QAEtE,MAAM,WAAW,GAAG,UAAU,cAAc,gEAAgE,CAAC;QAE7G,OAAO,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;IACpD,CAAC;IAEO,mBAAmB,CAAC,OAAe;QACzC,MAAM,EAAE,cAAc,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;QAEpD,8DAA8D;QAC9D,MAAM,gBAAgB,GAAG,IAAI,MAAM,CACjC,yFAAyF,cAAc,qBAAqB,CAC7H,CAAC;QAEF,MAAM,mBAAmB,GAAG;;;yBAGP,UAAU;;;;0CAKhC,UAAU,KAAK,UAAU;YACvB,CAAC,CAAC,iFAAiF;YACnF,CAAC,CAAC,EACN,EAAE,CAAC;QAEA,IAAI,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE,CAAC;YACpC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,CAAC;QACnE,CAAC;QAED,qDAAqD;QACrD,MAAM,mBAAmB,GAAG,0BAA0B,CAAC;QAEvD,MAAM,aAAa,GAAG;;;;;;UAMhB,CAAC;QAEP,IAAI,OAAO,CAAC,KAAK,CAAC,mBAAmB,CAAC,EAAE,CAAC;YACvC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,mBAAmB,EAAE,aAAa,CAAC,CAAC;QAChE,CAAC;QAED,gDAAgD;QAChD,MAAM,qBAAqB,GACzB,uDAAuD,CAAC;QAE1D,MAAM,sBAAsB,GAAG;;;;;KAK9B,CAAC;QAEF,IAAI,OAAO,CAAC,KAAK,CAAC,qBAAqB,CAAC,EAAE,CAAC;YACzC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,qBAAqB,EAAE,sBAAsB,CAAC,CAAC;QAC3E,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;CACF;AA5FD,kEA4FC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Tree } from "@nx/devkit";
|
|
2
|
+
import { NormalizedKosAddFutureToModelSchema } from "../schema";
|
|
3
|
+
export declare class ServiceFileTransformer {
|
|
4
|
+
private tree;
|
|
5
|
+
private options;
|
|
6
|
+
constructor(tree: Tree, options: NormalizedKosAddFutureToModelSchema);
|
|
7
|
+
transform(): void;
|
|
8
|
+
private createServicesFile;
|
|
9
|
+
private addFutureImports;
|
|
10
|
+
private addFutureService;
|
|
11
|
+
private addProgressTypes;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=service-transformer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service-transformer.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/plugins/kos-nx-plugin/src/generators/kos-add-future-to-model/lib/service-transformer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,mCAAmC,EAAE,MAAM,WAAW,CAAC;AAEhE,qBAAa,sBAAsB;IAE/B,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,OAAO;gBADP,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,mCAAmC;IAGtD,SAAS,IAAI,IAAI;IAkBjB,OAAO,CAAC,kBAAkB;IA+E1B,OAAO,CAAC,gBAAgB;IA8BxB,OAAO,CAAC,gBAAgB;IAkCxB,OAAO,CAAC,gBAAgB;CA4BzB"}
|