taon 0.0.0 → 18.0.12
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 +115 -0
- package/assets/shared/shared_folder_info.txt +7 -0
- package/bin/start.js +279 -0
- package/bin/taon +2 -1
- package/bin/taon-debug +2 -2
- package/bin/taon-debug-brk +3 -2
- package/browser/README.md +24 -0
- package/browser/esm2022/lib/base-classes/base-abstract-entity.mjs +18 -0
- package/browser/esm2022/lib/base-classes/base-class.mjs +17 -0
- package/browser/esm2022/lib/base-classes/base-context.mjs +14 -0
- package/browser/esm2022/lib/base-classes/base-controller.mjs +18 -0
- package/browser/esm2022/lib/base-classes/base-crud-controller.mjs +279 -0
- package/browser/esm2022/lib/base-classes/base-entity.mjs +18 -0
- package/browser/esm2022/lib/base-classes/base-injector.mjs +160 -0
- package/browser/esm2022/lib/base-classes/base-provider.mjs +6 -0
- package/browser/esm2022/lib/base-classes/base-repository.mjs +514 -0
- package/browser/esm2022/lib/base-classes/base-subscriber-for-entity.mjs +137 -0
- package/browser/esm2022/lib/base-classes/base-subscriber.mjs +27 -0
- package/browser/esm2022/lib/base-classes/base.mjs +26 -0
- package/browser/esm2022/lib/constants.mjs +4 -0
- package/browser/esm2022/lib/create-context.mjs +87 -0
- package/browser/esm2022/lib/decorators/classes/controller-decorator.mjs +15 -0
- package/browser/esm2022/lib/decorators/classes/entity-decorator.mjs +27 -0
- package/browser/esm2022/lib/decorators/classes/provider-decorator.mjs +15 -0
- package/browser/esm2022/lib/decorators/classes/repository-decorator.mjs +15 -0
- package/browser/esm2022/lib/decorators/classes/subscriber-decorator.mjs +41 -0
- package/browser/esm2022/lib/decorators/http/http-decorators.mjs +22 -0
- package/browser/esm2022/lib/decorators/http/http-methods-decorators.mjs +78 -0
- package/browser/esm2022/lib/decorators/http/http-params-decorators.mjs +47 -0
- package/browser/esm2022/lib/dependency-injection/di-container.mjs +32 -0
- package/browser/esm2022/lib/endpoint-context.mjs +1746 -0
- package/browser/esm2022/lib/entity-process.mjs +207 -0
- package/browser/esm2022/lib/env.mjs +6 -0
- package/browser/esm2022/lib/get-response-value.mjs +41 -0
- package/browser/esm2022/lib/helpers/class-helpers.mjs +183 -0
- package/browser/esm2022/lib/helpers/taon-helpers.mjs +120 -0
- package/browser/esm2022/lib/index.mjs +79 -0
- package/browser/esm2022/lib/inject.mjs +70 -0
- package/browser/esm2022/lib/models.mjs +77 -0
- package/browser/esm2022/lib/orm.mjs +6 -0
- package/browser/esm2022/lib/realtime/realtime-client.mjs +129 -0
- package/browser/esm2022/lib/realtime/realtime-core.mjs +54 -0
- package/browser/esm2022/lib/realtime/realtime-server.mjs +274 -0
- package/browser/esm2022/lib/realtime/realtime-strategy/index.mjs +7 -0
- package/browser/esm2022/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-namespace.mjs +98 -0
- package/browser/esm2022/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-wrapper.mjs +45 -0
- package/browser/esm2022/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-namespace.mjs +40 -0
- package/browser/esm2022/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-wrapper.mjs +25 -0
- package/browser/esm2022/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc.models.mjs +4 -0
- package/browser/esm2022/lib/realtime/realtime-strategy/realtime-strategy-ipc.mjs +49 -0
- package/browser/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock-models/index.mjs +5 -0
- package/browser/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-client.mjs +50 -0
- package/browser/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-namespaces.mjs +48 -0
- package/browser/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-server.mjs +35 -0
- package/browser/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-socket.mjs +43 -0
- package/browser/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock.models.mjs +4 -0
- package/browser/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock.mjs +28 -0
- package/browser/esm2022/lib/realtime/realtime-strategy/realtime-strategy-socket-io.mjs +33 -0
- package/browser/esm2022/lib/realtime/realtime-strategy/realtime-strategy.mjs +10 -0
- package/browser/esm2022/lib/realtime/realtime-subs-manager.mjs +79 -0
- package/browser/esm2022/lib/realtime/realtime.models.mjs +4 -0
- package/browser/esm2022/lib/storage.mjs +5 -0
- package/browser/esm2022/lib/symbols.mjs +89 -0
- package/browser/esm2022/lib/ui/taon-admin-mode-configuration/models/taon-admin-mode-tabs.mjs +4 -0
- package/browser/esm2022/lib/ui/taon-admin-mode-configuration/taon-admin-control.service.mjs +32 -0
- package/browser/esm2022/lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.component.mjs +167 -0
- package/browser/esm2022/lib/ui/taon-admin-mode-configuration/taon-admin.service.mjs +64 -0
- package/browser/esm2022/lib/validators.mjs +76 -0
- package/browser/esm2022/public-api.mjs +2 -0
- package/browser/esm2022/taon.mjs +5 -0
- package/browser/fesm2022/taon.mjs +4901 -0
- package/browser/fesm2022/taon.mjs.map +1 -0
- package/browser/index.d.ts +6 -0
- package/browser/lib/base-classes/base-abstract-entity.d.ts +7 -0
- package/browser/lib/base-classes/base-class.d.ts +9 -0
- package/browser/lib/base-classes/base-context.d.ts +17 -0
- package/browser/lib/base-classes/base-controller.d.ts +8 -0
- package/browser/lib/base-classes/base-crud-controller.d.ts +28 -0
- package/browser/lib/base-classes/base-entity.d.ts +8 -0
- package/browser/lib/base-classes/base-injector.d.ts +60 -0
- package/browser/lib/base-classes/base-provider.d.ts +4 -0
- package/browser/lib/base-classes/base-repository.d.ts +249 -0
- package/browser/lib/base-classes/base-subscriber-for-entity.d.ts +82 -0
- package/browser/lib/base-classes/base-subscriber.d.ts +5 -0
- package/browser/lib/base-classes/base.d.ts +36 -0
- package/browser/lib/constants.d.ts +2 -0
- package/browser/lib/create-context.d.ts +25 -0
- package/browser/lib/decorators/classes/controller-decorator.d.ts +13 -0
- package/browser/lib/decorators/classes/entity-decorator.d.ts +17 -0
- package/browser/lib/decorators/classes/provider-decorator.d.ts +5 -0
- package/browser/lib/decorators/classes/repository-decorator.d.ts +5 -0
- package/browser/lib/decorators/classes/subscriber-decorator.d.ts +6 -0
- package/browser/lib/decorators/http/http-decorators.d.ts +18 -0
- package/browser/lib/decorators/http/http-methods-decorators.d.ts +15 -0
- package/browser/lib/decorators/http/http-params-decorators.d.ts +6 -0
- package/browser/lib/dependency-injection/di-container.d.ts +6 -0
- package/browser/lib/endpoint-context.d.ts +117 -0
- package/browser/lib/entity-process.d.ts +40 -0
- package/browser/lib/env.d.ts +3 -0
- package/browser/lib/get-response-value.d.ts +7 -0
- package/browser/lib/helpers/class-helpers.d.ts +19 -0
- package/browser/lib/helpers/taon-helpers.d.ts +17 -0
- package/browser/lib/index.d.ts +113 -0
- package/browser/lib/inject.d.ts +9 -0
- package/browser/lib/models.d.ts +175 -0
- package/browser/lib/orm.d.ts +3 -0
- package/browser/lib/realtime/realtime-client.d.ts +32 -0
- package/browser/lib/realtime/realtime-core.d.ts +41 -0
- package/browser/lib/realtime/realtime-server.d.ts +14 -0
- package/browser/lib/realtime/realtime-strategy/index.d.ts +5 -0
- package/browser/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-namespace.d.ts +22 -0
- package/browser/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-wrapper.d.ts +17 -0
- package/browser/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-namespace.d.ts +11 -0
- package/browser/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-wrapper.d.ts +11 -0
- package/browser/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc.models.d.ts +14 -0
- package/browser/lib/realtime/realtime-strategy/realtime-strategy-ipc.d.ts +23 -0
- package/browser/lib/realtime/realtime-strategy/realtime-strategy-mock-models/index.d.ts +3 -0
- package/browser/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-client.d.ts +17 -0
- package/browser/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-namespaces.d.ts +18 -0
- package/browser/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-server.d.ts +12 -0
- package/browser/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-socket.d.ts +14 -0
- package/browser/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock.models.d.ts +12 -0
- package/browser/lib/realtime/realtime-strategy/realtime-strategy-mock.d.ts +15 -0
- package/browser/lib/realtime/realtime-strategy/realtime-strategy-socket-io.d.ts +17 -0
- package/browser/lib/realtime/realtime-strategy/realtime-strategy.d.ts +13 -0
- package/browser/lib/realtime/realtime-subs-manager.d.ts +15 -0
- package/browser/lib/realtime/realtime.models.d.ts +14 -0
- package/browser/lib/storage.d.ts +2 -0
- package/browser/lib/symbols.d.ts +73 -0
- package/browser/lib/ui/taon-admin-mode-configuration/models/taon-admin-mode-tabs.d.ts +6 -0
- package/browser/lib/ui/taon-admin-mode-configuration/taon-admin-control.service.d.ts +18 -0
- package/browser/lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.component.d.ts +51 -0
- package/browser/lib/ui/taon-admin-mode-configuration/taon-admin.service.d.ts +25 -0
- package/browser/lib/validators.d.ts +8 -0
- package/browser/package.json +25 -0
- package/browser/public-api.d.ts +2 -0
- package/cli.d.ts +1 -0
- package/cli.js +24 -0
- package/cli.js.map +1 -0
- package/client/README.md +24 -0
- package/client/esm2022/lib/base-classes/base-abstract-entity.mjs +18 -0
- package/client/esm2022/lib/base-classes/base-class.mjs +17 -0
- package/client/esm2022/lib/base-classes/base-context.mjs +14 -0
- package/client/esm2022/lib/base-classes/base-controller.mjs +18 -0
- package/client/esm2022/lib/base-classes/base-crud-controller.mjs +279 -0
- package/client/esm2022/lib/base-classes/base-entity.mjs +18 -0
- package/client/esm2022/lib/base-classes/base-injector.mjs +160 -0
- package/client/esm2022/lib/base-classes/base-provider.mjs +6 -0
- package/client/esm2022/lib/base-classes/base-repository.mjs +514 -0
- package/client/esm2022/lib/base-classes/base-subscriber-for-entity.mjs +137 -0
- package/client/esm2022/lib/base-classes/base-subscriber.mjs +27 -0
- package/client/esm2022/lib/base-classes/base.mjs +26 -0
- package/client/esm2022/lib/constants.mjs +4 -0
- package/client/esm2022/lib/create-context.mjs +87 -0
- package/client/esm2022/lib/decorators/classes/controller-decorator.mjs +15 -0
- package/client/esm2022/lib/decorators/classes/entity-decorator.mjs +27 -0
- package/client/esm2022/lib/decorators/classes/provider-decorator.mjs +15 -0
- package/client/esm2022/lib/decorators/classes/repository-decorator.mjs +15 -0
- package/client/esm2022/lib/decorators/classes/subscriber-decorator.mjs +41 -0
- package/client/esm2022/lib/decorators/http/http-decorators.mjs +22 -0
- package/client/esm2022/lib/decorators/http/http-methods-decorators.mjs +78 -0
- package/client/esm2022/lib/decorators/http/http-params-decorators.mjs +47 -0
- package/client/esm2022/lib/dependency-injection/di-container.mjs +32 -0
- package/client/esm2022/lib/endpoint-context.mjs +1746 -0
- package/client/esm2022/lib/entity-process.mjs +207 -0
- package/client/esm2022/lib/env.mjs +6 -0
- package/client/esm2022/lib/get-response-value.mjs +41 -0
- package/client/esm2022/lib/helpers/class-helpers.mjs +183 -0
- package/client/esm2022/lib/helpers/taon-helpers.mjs +120 -0
- package/client/esm2022/lib/index.mjs +79 -0
- package/client/esm2022/lib/inject.mjs +70 -0
- package/client/esm2022/lib/models.mjs +77 -0
- package/client/esm2022/lib/orm.mjs +6 -0
- package/client/esm2022/lib/realtime/realtime-client.mjs +129 -0
- package/client/esm2022/lib/realtime/realtime-core.mjs +54 -0
- package/client/esm2022/lib/realtime/realtime-server.mjs +274 -0
- package/client/esm2022/lib/realtime/realtime-strategy/index.mjs +7 -0
- package/client/esm2022/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-namespace.mjs +98 -0
- package/client/esm2022/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-wrapper.mjs +45 -0
- package/client/esm2022/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-namespace.mjs +40 -0
- package/client/esm2022/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-wrapper.mjs +25 -0
- package/client/esm2022/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc.models.mjs +4 -0
- package/client/esm2022/lib/realtime/realtime-strategy/realtime-strategy-ipc.mjs +49 -0
- package/client/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock-models/index.mjs +5 -0
- package/client/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-client.mjs +50 -0
- package/client/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-namespaces.mjs +48 -0
- package/client/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-server.mjs +35 -0
- package/client/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-socket.mjs +43 -0
- package/client/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock.models.mjs +4 -0
- package/client/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock.mjs +28 -0
- package/client/esm2022/lib/realtime/realtime-strategy/realtime-strategy-socket-io.mjs +33 -0
- package/client/esm2022/lib/realtime/realtime-strategy/realtime-strategy.mjs +10 -0
- package/client/esm2022/lib/realtime/realtime-subs-manager.mjs +79 -0
- package/client/esm2022/lib/realtime/realtime.models.mjs +4 -0
- package/client/esm2022/lib/storage.mjs +5 -0
- package/client/esm2022/lib/symbols.mjs +89 -0
- package/client/esm2022/lib/ui/taon-admin-mode-configuration/models/taon-admin-mode-tabs.mjs +4 -0
- package/client/esm2022/lib/ui/taon-admin-mode-configuration/taon-admin-control.service.mjs +32 -0
- package/client/esm2022/lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.component.mjs +167 -0
- package/client/esm2022/lib/ui/taon-admin-mode-configuration/taon-admin.service.mjs +64 -0
- package/client/esm2022/lib/validators.mjs +76 -0
- package/client/esm2022/public-api.mjs +2 -0
- package/client/esm2022/taon.mjs +5 -0
- package/client/fesm2022/taon.mjs +4901 -0
- package/client/fesm2022/taon.mjs.map +1 -0
- package/client/index.d.ts +6 -0
- package/client/lib/base-classes/base-abstract-entity.d.ts +7 -0
- package/client/lib/base-classes/base-class.d.ts +9 -0
- package/client/lib/base-classes/base-context.d.ts +17 -0
- package/client/lib/base-classes/base-controller.d.ts +8 -0
- package/client/lib/base-classes/base-crud-controller.d.ts +28 -0
- package/client/lib/base-classes/base-entity.d.ts +8 -0
- package/client/lib/base-classes/base-injector.d.ts +60 -0
- package/client/lib/base-classes/base-provider.d.ts +4 -0
- package/client/lib/base-classes/base-repository.d.ts +249 -0
- package/client/lib/base-classes/base-subscriber-for-entity.d.ts +82 -0
- package/client/lib/base-classes/base-subscriber.d.ts +5 -0
- package/client/lib/base-classes/base.d.ts +36 -0
- package/client/lib/constants.d.ts +2 -0
- package/client/lib/create-context.d.ts +25 -0
- package/client/lib/decorators/classes/controller-decorator.d.ts +13 -0
- package/client/lib/decorators/classes/entity-decorator.d.ts +17 -0
- package/client/lib/decorators/classes/provider-decorator.d.ts +5 -0
- package/client/lib/decorators/classes/repository-decorator.d.ts +5 -0
- package/client/lib/decorators/classes/subscriber-decorator.d.ts +6 -0
- package/client/lib/decorators/http/http-decorators.d.ts +18 -0
- package/client/lib/decorators/http/http-methods-decorators.d.ts +15 -0
- package/client/lib/decorators/http/http-params-decorators.d.ts +6 -0
- package/client/lib/dependency-injection/di-container.d.ts +6 -0
- package/client/lib/endpoint-context.d.ts +117 -0
- package/client/lib/entity-process.d.ts +40 -0
- package/client/lib/env.d.ts +3 -0
- package/client/lib/get-response-value.d.ts +7 -0
- package/client/lib/helpers/class-helpers.d.ts +19 -0
- package/client/lib/helpers/taon-helpers.d.ts +17 -0
- package/client/lib/index.d.ts +113 -0
- package/client/lib/inject.d.ts +9 -0
- package/client/lib/models.d.ts +175 -0
- package/client/lib/orm.d.ts +3 -0
- package/client/lib/realtime/realtime-client.d.ts +32 -0
- package/client/lib/realtime/realtime-core.d.ts +41 -0
- package/client/lib/realtime/realtime-server.d.ts +14 -0
- package/client/lib/realtime/realtime-strategy/index.d.ts +5 -0
- package/client/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-namespace.d.ts +22 -0
- package/client/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-wrapper.d.ts +17 -0
- package/client/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-namespace.d.ts +11 -0
- package/client/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-wrapper.d.ts +11 -0
- package/client/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc.models.d.ts +14 -0
- package/client/lib/realtime/realtime-strategy/realtime-strategy-ipc.d.ts +23 -0
- package/client/lib/realtime/realtime-strategy/realtime-strategy-mock-models/index.d.ts +3 -0
- package/client/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-client.d.ts +17 -0
- package/client/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-namespaces.d.ts +18 -0
- package/client/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-server.d.ts +12 -0
- package/client/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-socket.d.ts +14 -0
- package/client/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock.models.d.ts +12 -0
- package/client/lib/realtime/realtime-strategy/realtime-strategy-mock.d.ts +15 -0
- package/client/lib/realtime/realtime-strategy/realtime-strategy-socket-io.d.ts +17 -0
- package/client/lib/realtime/realtime-strategy/realtime-strategy.d.ts +13 -0
- package/client/lib/realtime/realtime-subs-manager.d.ts +15 -0
- package/client/lib/realtime/realtime.models.d.ts +14 -0
- package/client/lib/storage.d.ts +2 -0
- package/client/lib/symbols.d.ts +73 -0
- package/client/lib/ui/taon-admin-mode-configuration/models/taon-admin-mode-tabs.d.ts +6 -0
- package/client/lib/ui/taon-admin-mode-configuration/taon-admin-control.service.d.ts +18 -0
- package/client/lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.component.d.ts +51 -0
- package/client/lib/ui/taon-admin-mode-configuration/taon-admin.service.d.ts +25 -0
- package/client/lib/validators.d.ts +8 -0
- package/client/public-api.d.ts +2 -0
- package/index.d.ts +1 -0
- package/index.js +5 -1
- package/index.js.map +1 -0
- package/lib/base-classes/base-abstract-entity.d.ts +6 -0
- package/lib/base-classes/base-abstract-entity.js +40 -0
- package/lib/base-classes/base-abstract-entity.js.map +1 -0
- package/lib/base-classes/base-class.d.ts +8 -0
- package/lib/base-classes/base-class.js +35 -0
- package/lib/base-classes/base-class.js.map +1 -0
- package/lib/base-classes/base-context.d.ts +16 -0
- package/lib/base-classes/base-context.js +15 -0
- package/lib/base-classes/base-context.js.map +1 -0
- package/lib/base-classes/base-controller.d.ts +7 -0
- package/lib/base-classes/base-controller.js +24 -0
- package/lib/base-classes/base-controller.js.map +1 -0
- package/lib/base-classes/base-crud-controller.d.ts +27 -0
- package/lib/base-classes/base-crud-controller.js +385 -0
- package/lib/base-classes/base-crud-controller.js.map +1 -0
- package/lib/base-classes/base-entity.d.ts +7 -0
- package/lib/base-classes/base-entity.js +25 -0
- package/lib/base-classes/base-entity.js.map +1 -0
- package/lib/base-classes/base-injector.d.ts +59 -0
- package/lib/base-classes/base-injector.js +220 -0
- package/lib/base-classes/base-injector.js.map +1 -0
- package/lib/base-classes/base-provider.d.ts +3 -0
- package/lib/base-classes/base-provider.js +14 -0
- package/lib/base-classes/base-provider.js.map +1 -0
- package/lib/base-classes/base-repository.d.ts +254 -0
- package/lib/base-classes/base-repository.js +780 -0
- package/lib/base-classes/base-repository.js.map +1 -0
- package/lib/base-classes/base-subscriber-for-entity.d.ts +81 -0
- package/lib/base-classes/base-subscriber-for-entity.js +136 -0
- package/lib/base-classes/base-subscriber-for-entity.js.map +1 -0
- package/lib/base-classes/base-subscriber.d.ts +4 -0
- package/lib/base-classes/base-subscriber.js +25 -0
- package/lib/base-classes/base-subscriber.js.map +1 -0
- package/lib/base-classes/base.d.ts +35 -0
- package/lib/base-classes/base.js +27 -0
- package/lib/base-classes/base.js.map +1 -0
- package/lib/build-info._auto-generated_.d.ts +1 -0
- package/lib/build-info._auto-generated_.js +5 -0
- package/lib/build-info._auto-generated_.js.map +1 -0
- package/lib/constants.d.ts +1 -0
- package/lib/constants.js +3 -0
- package/lib/constants.js.map +1 -0
- package/lib/create-context.d.ts +24 -0
- package/lib/create-context.js +183 -0
- package/lib/create-context.js.map +1 -0
- package/lib/decorators/classes/controller-decorator.d.ts +12 -0
- package/lib/decorators/classes/controller-decorator.js +24 -0
- package/lib/decorators/classes/controller-decorator.js.map +1 -0
- package/lib/decorators/classes/entity-decorator.d.ts +16 -0
- package/lib/decorators/classes/entity-decorator.js +39 -0
- package/lib/decorators/classes/entity-decorator.js.map +1 -0
- package/lib/decorators/classes/provider-decorator.d.ts +4 -0
- package/lib/decorators/classes/provider-decorator.js +24 -0
- package/lib/decorators/classes/provider-decorator.js.map +1 -0
- package/lib/decorators/classes/repository-decorator.d.ts +4 -0
- package/lib/decorators/classes/repository-decorator.js +24 -0
- package/lib/decorators/classes/repository-decorator.js.map +1 -0
- package/lib/decorators/classes/subscriber-decorator.d.ts +5 -0
- package/lib/decorators/classes/subscriber-decorator.js +75 -0
- package/lib/decorators/classes/subscriber-decorator.js.map +1 -0
- package/lib/decorators/http/http-decorators.d.ts +17 -0
- package/lib/decorators/http/http-decorators.js +23 -0
- package/lib/decorators/http/http-decorators.js.map +1 -0
- package/lib/decorators/http/http-methods-decorators.d.ts +14 -0
- package/lib/decorators/http/http-methods-decorators.js +91 -0
- package/lib/decorators/http/http-methods-decorators.js.map +1 -0
- package/lib/decorators/http/http-params-decorators.d.ts +5 -0
- package/lib/decorators/http/http-params-decorators.js +55 -0
- package/lib/decorators/http/http-params-decorators.js.map +1 -0
- package/lib/dependency-injection/di-container.d.ts +5 -0
- package/lib/dependency-injection/di-container.js +40 -0
- package/lib/dependency-injection/di-container.js.map +1 -0
- package/lib/endpoint-context.d.ts +117 -0
- package/lib/endpoint-context.js +2128 -0
- package/lib/endpoint-context.js.map +1 -0
- package/lib/entity-process.d.ts +39 -0
- package/lib/entity-process.js +261 -0
- package/lib/entity-process.js.map +1 -0
- package/lib/env.d.ts +2 -0
- package/lib/env.js +7 -0
- package/lib/env.js.map +1 -0
- package/lib/formly/formly-group-wrapper-component.d.ts +5 -0
- package/lib/formly/formly-group-wrapper-component.js +28 -0
- package/lib/formly/formly-group-wrapper-component.js.map +1 -0
- package/lib/formly/formly-repeat-component.d.ts +5 -0
- package/lib/formly/formly-repeat-component.js +47 -0
- package/lib/formly/formly-repeat-component.js.map +1 -0
- package/lib/formly/formly.models.d.ts +1 -0
- package/lib/formly/formly.models.js +3 -0
- package/lib/formly/formly.models.js.map +1 -0
- package/lib/formly/fromly.d.ts +16 -0
- package/lib/formly/fromly.js +213 -0
- package/lib/formly/fromly.js.map +1 -0
- package/lib/formly/type-from-entity.d.ts +20 -0
- package/lib/formly/type-from-entity.js +65 -0
- package/lib/formly/type-from-entity.js.map +1 -0
- package/lib/get-response-value.d.ts +6 -0
- package/lib/get-response-value.js +65 -0
- package/lib/get-response-value.js.map +1 -0
- package/lib/helpers/class-helpers.d.ts +18 -0
- package/lib/helpers/class-helpers.js +227 -0
- package/lib/helpers/class-helpers.js.map +1 -0
- package/lib/helpers/taon-helpers.d.ts +16 -0
- package/lib/helpers/taon-helpers.js +144 -0
- package/lib/helpers/taon-helpers.js.map +1 -0
- package/lib/index.d.ts +112 -0
- package/lib/index.js +113 -0
- package/lib/index.js.map +1 -0
- package/lib/inject.d.ts +8 -0
- package/lib/inject.js +84 -0
- package/lib/inject.js.map +1 -0
- package/lib/models.d.ts +180 -0
- package/lib/models.js +107 -0
- package/lib/models.js.map +1 -0
- package/lib/orm.d.ts +51 -0
- package/lib/orm.js +79 -0
- package/lib/orm.js.map +1 -0
- package/lib/realtime/realtime-client.d.ts +31 -0
- package/lib/realtime/realtime-client.js +158 -0
- package/lib/realtime/realtime-client.js.map +1 -0
- package/lib/realtime/realtime-core.d.ts +40 -0
- package/lib/realtime/realtime-core.js +72 -0
- package/lib/realtime/realtime-core.js.map +1 -0
- package/lib/realtime/realtime-server.d.ts +13 -0
- package/lib/realtime/realtime-server.js +193 -0
- package/lib/realtime/realtime-server.js.map +1 -0
- package/lib/realtime/realtime-strategy/index.d.ts +4 -0
- package/lib/realtime/realtime-strategy/index.js +8 -0
- package/lib/realtime/realtime-strategy/index.js.map +1 -0
- package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/index.d.ts +0 -0
- package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/index.js +5 -0
- package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/index.js.map +1 -0
- package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-namespace.d.ts +22 -0
- package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-namespace.js +139 -0
- package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-namespace.js.map +1 -0
- package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-wrapper.d.ts +16 -0
- package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-wrapper.js +68 -0
- package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-wrapper.js.map +1 -0
- package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-namespace.d.ts +10 -0
- package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-namespace.js +56 -0
- package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-namespace.js.map +1 -0
- package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-wrapper.d.ts +10 -0
- package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-wrapper.js +50 -0
- package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-wrapper.js.map +1 -0
- package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc.models.d.ts +13 -0
- package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc.models.js +3 -0
- package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc.models.js.map +1 -0
- package/lib/realtime/realtime-strategy/realtime-strategy-ipc.d.ts +22 -0
- package/lib/realtime/realtime-strategy/realtime-strategy-ipc.js +68 -0
- package/lib/realtime/realtime-strategy/realtime-strategy-ipc.js.map +1 -0
- package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/index.d.ts +2 -0
- package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/index.js +6 -0
- package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/index.js.map +1 -0
- package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-client.d.ts +16 -0
- package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-client.js +54 -0
- package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-client.js.map +1 -0
- package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-namespaces.d.ts +17 -0
- package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-namespaces.js +52 -0
- package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-namespaces.js.map +1 -0
- package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-server.d.ts +11 -0
- package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-server.js +39 -0
- package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-server.js.map +1 -0
- package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-socket.d.ts +13 -0
- package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-socket.js +46 -0
- package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-socket.js.map +1 -0
- package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock.models.d.ts +11 -0
- package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock.models.js +3 -0
- package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock.models.js.map +1 -0
- package/lib/realtime/realtime-strategy/realtime-strategy-mock.d.ts +14 -0
- package/lib/realtime/realtime-strategy/realtime-strategy-mock.js +42 -0
- package/lib/realtime/realtime-strategy/realtime-strategy-mock.js.map +1 -0
- package/lib/realtime/realtime-strategy/realtime-strategy-socket-io.d.ts +17 -0
- package/lib/realtime/realtime-strategy/realtime-strategy-socket-io.js +48 -0
- package/lib/realtime/realtime-strategy/realtime-strategy-socket-io.js.map +1 -0
- package/lib/realtime/realtime-strategy/realtime-strategy.d.ts +12 -0
- package/lib/realtime/realtime-strategy/realtime-strategy.js +14 -0
- package/lib/realtime/realtime-strategy/realtime-strategy.js.map +1 -0
- package/lib/realtime/realtime-subs-manager.d.ts +14 -0
- package/lib/realtime/realtime-subs-manager.js +102 -0
- package/lib/realtime/realtime-subs-manager.js.map +1 -0
- package/lib/realtime/realtime.models.d.ts +13 -0
- package/lib/realtime/realtime.models.js +3 -0
- package/lib/realtime/realtime.models.js.map +1 -0
- package/lib/storage.d.ts +1 -0
- package/lib/storage.js +6 -0
- package/lib/storage.js.map +1 -0
- package/lib/symbols.d.ts +72 -0
- package/lib/symbols.js +91 -0
- package/lib/symbols.js.map +1 -0
- package/lib/ui/directives/firedev-inject-html.directive.d.ts +6 -0
- package/lib/ui/directives/firedev-long-press.directive.d.ts +22 -0
- package/lib/ui/directives/index.d.ts +4 -0
- package/lib/ui/directives/index.js +5 -0
- package/lib/ui/directives/index.js.map +1 -0
- package/lib/ui/directives/safe.pipe.d.ts +7 -0
- package/lib/ui/directives/view-mode.d.ts +5 -0
- package/lib/ui/directives/view-mode.js +10 -0
- package/lib/ui/directives/view-mode.js.map +1 -0
- package/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/index.d.ts +2 -0
- package/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/index.js +5 -0
- package/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/index.js.map +1 -0
- package/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/taon-admin-edit-mode.component.d.ts +31 -0
- package/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/taon-admin-edit-mode.module.d.ts +2 -0
- package/lib/ui/taon-admin-mode-configuration/components/taon-db-admin/index.d.ts +1 -0
- package/lib/ui/taon-admin-mode-configuration/components/taon-db-admin/index.js +5 -0
- package/lib/ui/taon-admin-mode-configuration/components/taon-db-admin/index.js.map +1 -0
- package/lib/ui/taon-admin-mode-configuration/components/taon-db-admin/taon-db-admin.component.d.ts +9 -0
- package/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/index.d.ts +2 -0
- package/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/index.js +5 -0
- package/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/index.js.map +1 -0
- package/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/taon-file-general-opt.component.d.ts +14 -0
- package/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/taon-file-general-opt.module.d.ts +2 -0
- package/lib/ui/taon-admin-mode-configuration/index.d.ts +4 -0
- package/lib/ui/taon-admin-mode-configuration/index.js +5 -0
- package/lib/ui/taon-admin-mode-configuration/index.js.map +1 -0
- package/lib/ui/taon-admin-mode-configuration/models/taon-admin-mode-tabs.d.ts +5 -0
- package/lib/ui/taon-admin-mode-configuration/models/taon-admin-mode-tabs.js +3 -0
- package/lib/ui/taon-admin-mode-configuration/models/taon-admin-mode-tabs.js.map +1 -0
- package/lib/ui/taon-admin-mode-configuration/taon-admin-control.service.d.ts +14 -0
- package/lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.component.d.ts +47 -0
- package/lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.module.d.ts +2 -0
- package/lib/ui/taon-admin-mode-configuration/taon-admin.service.d.ts +21 -0
- package/lib/ui/taon-github-fork-me-corner/index.d.ts +2 -0
- package/lib/ui/taon-github-fork-me-corner/index.js +5 -0
- package/lib/ui/taon-github-fork-me-corner/index.js.map +1 -0
- package/lib/ui/taon-github-fork-me-corner/taon-github-fork-me-corner.component.d.ts +3 -0
- package/lib/ui/taon-github-fork-me-corner/taon-github-fork-me-corner.module.d.ts +2 -0
- package/lib/ui/taon-github-fork-me-ribbon/index.d.ts +2 -0
- package/lib/ui/taon-github-fork-me-ribbon/index.js +5 -0
- package/lib/ui/taon-github-fork-me-ribbon/index.js.map +1 -0
- package/lib/ui/taon-github-fork-me-ribbon/taon-github-fork-me-ribbon.component.d.ts +3 -0
- package/lib/ui/taon-github-fork-me-ribbon/taon-github-fork-me-ribbon.module.d.ts +2 -0
- package/lib/ui/taon-notifications/index.d.ts +4 -0
- package/lib/ui/taon-notifications/index.js +11 -0
- package/lib/ui/taon-notifications/index.js.map +1 -0
- package/lib/ui/taon-notifications/taon-notifications.component.d.ts +9 -0
- package/lib/ui/taon-notifications/taon-notifications.models.d.ts +6 -0
- package/lib/ui/taon-notifications/taon-notifications.models.js +5 -0
- package/lib/ui/taon-notifications/taon-notifications.models.js.map +1 -0
- package/lib/ui/taon-notifications/taon-notifications.module.d.ts +2 -0
- package/lib/ui/taon-notifications/taon-notifications.service.d.ts +11 -0
- package/lib/ui/taon-progress-bar/index.d.ts +2 -0
- package/lib/ui/taon-progress-bar/index.js +5 -0
- package/lib/ui/taon-progress-bar/index.js.map +1 -0
- package/lib/ui/taon-progress-bar/taon-progress-bar.component.d.ts +14 -0
- package/lib/ui/taon-progress-bar/taon-progress-bar.module.d.ts +2 -0
- package/lib/ui/taon-session-passcode/index.d.ts +1 -0
- package/lib/ui/taon-session-passcode/index.js +5 -0
- package/lib/ui/taon-session-passcode/index.js.map +1 -0
- package/lib/ui/taon-session-passcode/taon-session-passcode.component.d.ts +35 -0
- package/lib/ui/taon.models.d.ts +11 -0
- package/lib/ui/taon.models.js +3 -0
- package/lib/ui/taon.models.js.map +1 -0
- package/lib/ui/toan-full-material.module.d.ts +2 -0
- package/lib/validators.d.ts +7 -0
- package/lib/validators.js +53 -0
- package/lib/validators.js.map +1 -0
- package/old-app .d.ts +0 -0
- package/old-app .js +115 -0
- package/old-app .js.map +1 -0
- package/package.json +74 -11
- package/playground.d.ts +0 -0
- package/playground.js +172 -0
- package/playground.js.map +1 -0
- package/src.d.ts +6 -0
- package/taon.jsonc +48 -0
- package/tmp-environment.json +393 -0
- package/websql/README.md +24 -0
- package/websql/esm2022/lib/base-classes/base-abstract-entity.mjs +25 -0
- package/websql/esm2022/lib/base-classes/base-class.mjs +17 -0
- package/websql/esm2022/lib/base-classes/base-context.mjs +14 -0
- package/websql/esm2022/lib/base-classes/base-controller.mjs +18 -0
- package/websql/esm2022/lib/base-classes/base-crud-controller.mjs +238 -0
- package/websql/esm2022/lib/base-classes/base-entity.mjs +16 -0
- package/websql/esm2022/lib/base-classes/base-injector.mjs +160 -0
- package/websql/esm2022/lib/base-classes/base-provider.mjs +6 -0
- package/websql/esm2022/lib/base-classes/base-repository.mjs +431 -0
- package/websql/esm2022/lib/base-classes/base-subscriber-for-entity.mjs +137 -0
- package/websql/esm2022/lib/base-classes/base-subscriber.mjs +27 -0
- package/websql/esm2022/lib/base-classes/base.mjs +26 -0
- package/websql/esm2022/lib/constants.mjs +4 -0
- package/websql/esm2022/lib/create-context.mjs +86 -0
- package/websql/esm2022/lib/decorators/classes/controller-decorator.mjs +15 -0
- package/websql/esm2022/lib/decorators/classes/entity-decorator.mjs +25 -0
- package/websql/esm2022/lib/decorators/classes/provider-decorator.mjs +15 -0
- package/websql/esm2022/lib/decorators/classes/repository-decorator.mjs +15 -0
- package/websql/esm2022/lib/decorators/classes/subscriber-decorator.mjs +41 -0
- package/websql/esm2022/lib/decorators/http/http-decorators.mjs +22 -0
- package/websql/esm2022/lib/decorators/http/http-methods-decorators.mjs +78 -0
- package/websql/esm2022/lib/decorators/http/http-params-decorators.mjs +47 -0
- package/websql/esm2022/lib/dependency-injection/di-container.mjs +32 -0
- package/websql/esm2022/lib/endpoint-context.mjs +1506 -0
- package/websql/esm2022/lib/entity-process.mjs +207 -0
- package/websql/esm2022/lib/env.mjs +6 -0
- package/websql/esm2022/lib/get-response-value.mjs +45 -0
- package/websql/esm2022/lib/helpers/class-helpers.mjs +183 -0
- package/websql/esm2022/lib/helpers/taon-helpers.mjs +120 -0
- package/websql/esm2022/lib/index.mjs +81 -0
- package/websql/esm2022/lib/inject.mjs +70 -0
- package/websql/esm2022/lib/models.mjs +70 -0
- package/websql/esm2022/lib/orm.mjs +60 -0
- package/websql/esm2022/lib/realtime/realtime-client.mjs +129 -0
- package/websql/esm2022/lib/realtime/realtime-core.mjs +54 -0
- package/websql/esm2022/lib/realtime/realtime-server.mjs +158 -0
- package/websql/esm2022/lib/realtime/realtime-strategy/index.mjs +7 -0
- package/websql/esm2022/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-namespace.mjs +98 -0
- package/websql/esm2022/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-wrapper.mjs +45 -0
- package/websql/esm2022/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-namespace.mjs +40 -0
- package/websql/esm2022/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-wrapper.mjs +25 -0
- package/websql/esm2022/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc.models.mjs +4 -0
- package/websql/esm2022/lib/realtime/realtime-strategy/realtime-strategy-ipc.mjs +48 -0
- package/websql/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock-models/index.mjs +5 -0
- package/websql/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-client.mjs +50 -0
- package/websql/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-namespaces.mjs +48 -0
- package/websql/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-server.mjs +35 -0
- package/websql/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-socket.mjs +43 -0
- package/websql/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock.models.mjs +4 -0
- package/websql/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock.mjs +28 -0
- package/websql/esm2022/lib/realtime/realtime-strategy/realtime-strategy-socket-io.mjs +33 -0
- package/websql/esm2022/lib/realtime/realtime-strategy/realtime-strategy.mjs +10 -0
- package/websql/esm2022/lib/realtime/realtime-subs-manager.mjs +79 -0
- package/websql/esm2022/lib/realtime/realtime.models.mjs +4 -0
- package/websql/esm2022/lib/storage.mjs +5 -0
- package/websql/esm2022/lib/symbols.mjs +89 -0
- package/websql/esm2022/lib/ui/taon-admin-mode-configuration/models/taon-admin-mode-tabs.mjs +4 -0
- package/websql/esm2022/lib/ui/taon-admin-mode-configuration/taon-admin-control.service.mjs +32 -0
- package/websql/esm2022/lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.component.mjs +167 -0
- package/websql/esm2022/lib/ui/taon-admin-mode-configuration/taon-admin.service.mjs +64 -0
- package/websql/esm2022/lib/validators.mjs +76 -0
- package/websql/esm2022/public-api.mjs +2 -0
- package/websql/esm2022/taon.mjs +5 -0
- package/websql/fesm2022/taon.mjs +4595 -0
- package/websql/fesm2022/taon.mjs.map +1 -0
- package/websql/index.d.ts +6 -0
- package/websql/lib/base-classes/base-abstract-entity.d.ts +7 -0
- package/websql/lib/base-classes/base-class.d.ts +9 -0
- package/websql/lib/base-classes/base-context.d.ts +17 -0
- package/websql/lib/base-classes/base-controller.d.ts +8 -0
- package/websql/lib/base-classes/base-crud-controller.d.ts +28 -0
- package/websql/lib/base-classes/base-entity.d.ts +8 -0
- package/websql/lib/base-classes/base-injector.d.ts +60 -0
- package/websql/lib/base-classes/base-provider.d.ts +4 -0
- package/websql/lib/base-classes/base-repository.d.ts +255 -0
- package/websql/lib/base-classes/base-subscriber-for-entity.d.ts +82 -0
- package/websql/lib/base-classes/base-subscriber.d.ts +5 -0
- package/websql/lib/base-classes/base.d.ts +36 -0
- package/websql/lib/constants.d.ts +2 -0
- package/websql/lib/create-context.d.ts +25 -0
- package/websql/lib/decorators/classes/controller-decorator.d.ts +13 -0
- package/websql/lib/decorators/classes/entity-decorator.d.ts +17 -0
- package/websql/lib/decorators/classes/provider-decorator.d.ts +5 -0
- package/websql/lib/decorators/classes/repository-decorator.d.ts +5 -0
- package/websql/lib/decorators/classes/subscriber-decorator.d.ts +6 -0
- package/websql/lib/decorators/http/http-decorators.d.ts +18 -0
- package/websql/lib/decorators/http/http-methods-decorators.d.ts +15 -0
- package/websql/lib/decorators/http/http-params-decorators.d.ts +6 -0
- package/websql/lib/dependency-injection/di-container.d.ts +6 -0
- package/websql/lib/endpoint-context.d.ts +117 -0
- package/websql/lib/entity-process.d.ts +40 -0
- package/websql/lib/env.d.ts +3 -0
- package/websql/lib/get-response-value.d.ts +7 -0
- package/websql/lib/helpers/class-helpers.d.ts +19 -0
- package/websql/lib/helpers/taon-helpers.d.ts +17 -0
- package/websql/lib/index.d.ts +113 -0
- package/websql/lib/inject.d.ts +9 -0
- package/websql/lib/models.d.ts +181 -0
- package/websql/lib/orm.d.ts +52 -0
- package/websql/lib/realtime/realtime-client.d.ts +32 -0
- package/websql/lib/realtime/realtime-core.d.ts +41 -0
- package/websql/lib/realtime/realtime-server.d.ts +14 -0
- package/websql/lib/realtime/realtime-strategy/index.d.ts +5 -0
- package/websql/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-namespace.d.ts +22 -0
- package/websql/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-wrapper.d.ts +17 -0
- package/websql/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-namespace.d.ts +11 -0
- package/websql/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-wrapper.d.ts +11 -0
- package/websql/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc.models.d.ts +14 -0
- package/websql/lib/realtime/realtime-strategy/realtime-strategy-ipc.d.ts +23 -0
- package/websql/lib/realtime/realtime-strategy/realtime-strategy-mock-models/index.d.ts +3 -0
- package/websql/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-client.d.ts +17 -0
- package/websql/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-namespaces.d.ts +18 -0
- package/websql/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-server.d.ts +12 -0
- package/websql/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-socket.d.ts +14 -0
- package/websql/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock.models.d.ts +12 -0
- package/websql/lib/realtime/realtime-strategy/realtime-strategy-mock.d.ts +15 -0
- package/websql/lib/realtime/realtime-strategy/realtime-strategy-socket-io.d.ts +17 -0
- package/websql/lib/realtime/realtime-strategy/realtime-strategy.d.ts +13 -0
- package/websql/lib/realtime/realtime-subs-manager.d.ts +15 -0
- package/websql/lib/realtime/realtime.models.d.ts +14 -0
- package/websql/lib/storage.d.ts +2 -0
- package/websql/lib/symbols.d.ts +73 -0
- package/websql/lib/ui/taon-admin-mode-configuration/models/taon-admin-mode-tabs.d.ts +6 -0
- package/websql/lib/ui/taon-admin-mode-configuration/taon-admin-control.service.d.ts +18 -0
- package/websql/lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.component.d.ts +51 -0
- package/websql/lib/ui/taon-admin-mode-configuration/taon-admin.service.d.ts +25 -0
- package/websql/lib/validators.d.ts +8 -0
- package/websql/package.json +25 -0
- package/websql/public-api.d.ts +2 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"taon.mjs","sources":["../../../tmp-libs-for-dist/taon/projects/taon/src/lib/symbols.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/validators.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/helpers/taon-helpers.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/helpers/class-helpers.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/models.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/decorators/http/http-methods-decorators.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/decorators/http/http-params-decorators.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/decorators/http/http-decorators.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/decorators/classes/controller-decorator.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/base-classes/base-injector.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/base-classes/base-controller.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/base-classes/base-crud-controller.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/base-classes/base-class.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/base-classes/base-entity.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/base-classes/base-abstract-entity.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/decorators/classes/repository-decorator.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/base-classes/base-repository.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/base-classes/base-provider.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/dependency-injection/di-container.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/get-response-value.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/env.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/realtime/realtime-subs-manager.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/realtime/realtime-client.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/realtime/realtime-server.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/realtime/realtime-strategy/realtime-strategy.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-namespace.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-wrapper.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/realtime/realtime-strategy/realtime-strategy-ipc.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-namespaces.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-socket.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-server.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-client.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/realtime/realtime-strategy/realtime-strategy-mock-models/index.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/realtime/realtime-strategy/realtime-strategy-mock.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/realtime/realtime-strategy/realtime-strategy-socket-io.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/realtime/realtime-strategy/index.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/realtime/realtime-core.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/endpoint-context.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/storage.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/ui/taon-admin-mode-configuration/taon-admin.service.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/create-context.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/base-classes/base-context.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/decorators/classes/subscriber-decorator.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/base-classes/base-subscriber.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/base-classes/base-subscriber-for-entity.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/base-classes/base.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/decorators/classes/entity-decorator.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/decorators/classes/provider-decorator.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/inject.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/constants.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/index.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/taon.ts"],"sourcesContent":["\n\nimport { _ } from 'tnp-core/browser';\nimport { OrignalClassKey } from 'taon-typeorm/browser';\nimport { SYMBOL } from 'typescript-class-helpers/browser';\n\nexport namespace Symbols {\n export const ctxInClassOrClassObj = Symbol();\n export const classNameStaticProperty: string = SYMBOL.ClassNameStaticProperty;\n export const fullClassNameStaticProperty: string = `$$fullclassName$$`;\n export const orignalClass: string = OrignalClassKey;\n export const orignalClassClonesObj: string = `$$originalClassClonesObj$$`;\n export const classMethodsNames: string = `$$classMethodsNames$$`;\n\n export const REALTIME = {\n NAMESPACE: (contextName: string) => `${contextName}:taonRealtimeNsp`,\n TABLE_CHANGE(contextName: string, tableName: string) {\n return `${contextName}:listentablename${tableName}`;\n },\n /**\n * for backendSocket.in(ROOM_NAME).emit(EVENT)\n *\n * Room names are uniqe..\n * here I am limiting number of event for clients.\n */\n ROOM_NAME: {\n\n CUSTOM(contextName: string, customEvent: string) {\n return `${contextName}:roomcustomevnet${customEvent}`;\n },\n /**\n * @LAST TODO\n */\n SUBSCRIBER_EVENT(\n contextName: string,\n className: string,\n propertyName: string,\n ) {\n return `${contextName}:room${_.camelCase(className)}${propertyName}`.toLowerCase();\n },\n UPDATE_ENTITY(\n contextName: string,\n className: string,\n entityId: number | string,\n ) {\n return `${contextName}:room${_.camelCase(className)}${entityId}`.toLowerCase();\n },\n UPDATE_ENTITY_PROPERTY(\n contextName: string,\n className: string,\n property: string,\n entityId: number | string,\n ) {\n return `${contextName}:room${_.camelCase(className)}${_.camelCase(property)}${entityId}`.toLowerCase();\n },\n\n SUBSCRIBE: {\n CUSTOM: (contextName:string) => `${contextName}:roomSubscribeCustomRoomEvent`,\n ENTITY_UPDATE_EVENTS:(contextName:string) => `${contextName}:roomSubscribeEntityEvents`,\n ENTITY_PROPERTY_UPDATE_EVENTS:(contextName:string) => `${contextName}:roomSubscribeEntityPropertyEvents`,\n },\n UNSUBSCRIBE: {\n CUSTOM:(contextName:string) => `${contextName}:roomUnsubscribeCustomRoomEvent`,\n ENTITY_UPDATE_EVENTS:(contextName:string) => `${contextName}:roomUnsubscribeEntityEvents`,\n ENTITY_PROPERTY_UPDATE_EVENTS:(contextName:string) => `${contextName}:roomUnsubscribeEntityPropertyEvents`,\n },\n },\n };\n\n export const metadata = {\n className: `class:realname`,\n options: {\n runtimeController: `runtime:controller:options`,\n controller: `controller:options`,\n controllerMethod: `controller:method:options`,\n entity: `entity:options`,\n repository: `repository:options`,\n provider: `provider:options`,\n subscriber: `subscriber:options`,\n },\n };\n\n export const old = {\n HAS_TABLE_IN_DB: Symbol(),\n MDC_KEY: `modeldataconfig`,\n WEBSQL_REST_PROGRESS_FUN: Symbol(),\n WEBSQL_REST_PROGRESS_FUN_START: Symbol(),\n WEBSQL_REST_PROGRESS_FUN_DONE: Symbol(),\n WEBSQL_REST_PROGRESS_TIMEOUT: Symbol(),\n\n X_TOTAL_COUNT: `x-total-count`,\n CIRCURAL_OBJECTS_MAP_BODY: `circuralmapbody`,\n CIRCURAL_OBJECTS_MAP_QUERY_PARAM: `circuralmapbody`,\n MAPPING_CONFIG_HEADER: `mappingheader`,\n MAPPING_CONFIG_HEADER_BODY_PARAMS: `mhbodyparams`,\n MAPPING_CONFIG_HEADER_QUERY_PARAMS: `mhqueryparams`,\n ENDPOINT_META_CONFIG: `ng2_rest_endpoint_config`,\n CLASS_DECORATOR_CONTEXT: `$$ng2_rest_class_context`,\n SOCKET_MSG: `socketmessageng2rest`,\n ANGULAR: {\n INPUT_NAMES: Symbol(),\n },\n ERROR_MESSAGES: {\n CLASS_NAME_MATCH: `Please check if your \"class name\" matches @Controller( className ) or @Entity( className )`,\n },\n };\n}\n\n ;({}); // @--end-of-file-for-module=taon lib/symbols.ts","\n\nimport { _ } from 'tnp-core/browser';\nimport { Models } from './models';\n\nexport namespace Validators {\n\n export const classNameVlidation = (className, target: Function) => {\n setTimeout(() => {\n\n if (_.isUndefined(className)) {\n throw `[Taon]\n Please provide \"className\" property for each Controller and Entity:\n\n @Taon.Controller({ className: 'MyExampleCtrl' })\n class MyExampleCtrl {\n ...\n }\n\n @Taon.Entity({ className: 'MyExampleEntity' })\n class MyExampleEntity {\n ...\n }\n\n Notice that minified javascript code does not preserve\n Functions/Classes names -this is only solution to preserve classes names.\n\n `;\n }\n });\n\n return _.isUndefined(className) ? target.name : className;\n };\n\n\n\n export const checkIfMethodsWithReponseTYpeAlowed = (\n methods: Models.MethodConfig[],\n current: Models.MethodConfig,\n ) => {\n const defaultResponseType = 'text or JSON';\n if (!current.responseType) {\n return;\n }\n for (let index = 0; index < methods.length; index++) {\n const m = methods[index];\n if (m.path === current.path && m.responseType !== current.responseType) {\n throw new Error(`\n [taon] you can have 2 methods with same path but differetn reponseType-s\n\n ${m.methodName}( ... path: ${m.path} ) -> responseType: ${m.responseType || defaultResponseType}\n ${current.methodName}( ... path: ${current.path} ) -> responseType: ${current.responseType}\n\n Please change path name on of the methods.\n\n `);\n }\n }\n };\n\n\n\n\n export const validateClassFunctions = (\n controllers: any[],\n entities: any[],\n proviers: any[],\n repositories: any[],\n ) => {\n if (\n _.isArray(controllers) &&\n controllers.filter(f => !_.isFunction(f)).length > 0\n ) {\n console.error('controllers', controllers);\n throw `\n\n Incorect value for property \"controllers\" inside Taon.Init(...)\n\n `;\n }\n\n if (\n _.isArray(entities) &&\n entities.filter(f => !_.isFunction(f)).length > 0\n ) {\n console.error('entites', entities);\n throw `\n\n Incorect value for property \"entities\" inside Taon.Init(...)\n\n `;\n }\n };\n\n\n export const preventUndefinedModel = (model, id) => {\n if (_.isUndefined(model)) {\n throw `Bad update by id, config, id: ${id}`;\n }\n };\n}\n\n ;({}); // @--end-of-file-for-module=taon lib/validators.ts","\n\nimport { _ } from 'tnp-core/browser';\nimport * as JSON5 from 'json5';\nimport { Models } from '../models';\nimport { ClassHelpers } from './class-helpers';\n\nexport namespace TaonHelpers {\n\n export const fillUpTo = (s: string, nCharacters: number) => {\n return _.times(nCharacters, n => {\n if (s.charAt(n)) {\n return s.charAt(n);\n }\n return ' ';\n }).join('');\n };\n\n\n\n export const isGoodPath = (p: string) => {\n return p && typeof p === 'string' && p.trim() !== '';\n };\n\n\n\n export const tryTransformParam = param => {\n if (typeof param === 'string') {\n let n = Number(param);\n if (!isNaN(n)) return n;\n const bool = param.trim().toLowerCase();\n if (bool === 'true') {\n return true;\n }\n if (bool === 'false') {\n return false;\n }\n try {\n const t = JSON5.parse(param);\n return t;\n } catch (e) {\n return param;\n }\n }\n return param;\n };\n\n\n\n export const getExpressPath = (\n c: Models.RuntimeControllerConfig,\n pathOrClassConfig: Models.MethodConfig,\n ) => {\n if (typeof pathOrClassConfig === 'string')\n return `${c.calculatedPath}${pathOrClassConfig}`.replace(/\\/$/, '');\n return `${c.calculatedPath}${pathOrClassConfig.path}`.replace(/\\/$/, '');\n };\n\n\n\n export const defaultType = value => {\n if (typeof value === 'string') return '';\n if (typeof value === 'boolean') return false;\n if (Array.isArray(value)) return {};\n if (typeof value === 'object') return {};\n };\n\n\n\n export const parseJSONwithStringJSONs = (\n object: Object,\n waring = false,\n ): Object => {\n\n if (!_.isObject(object)) {\n if (waring) {\n console.error(\n `\n parseJSONwithStringJSONs(...)\n Parameter should be a object, but is ${typeof object}\n `,\n object,\n );\n }\n\n return object;\n }\n\n let res = _.cloneDeep(object);\n\n Object.keys(res).forEach(key => {\n let isJson = false;\n try {\n const possibleJSON = JSON.parse(res[key]);\n res[key] = possibleJSON;\n isJson = true;\n } catch (e) {\n isJson = false;\n }\n\n if (isJson) {\n res[key] = parseJSONwithStringJSONs(res[key], false);\n }\n });\n\n return res;\n };\n\n\n\n export const isPlainFileOrFolder = filePath => {\n return /^([a-zA-Z]|\\-|\\_|\\@|\\#|\\$|\\!|\\^|\\&|\\*|\\(|\\))+$/.test(filePath);\n };\n\n\n\n export const ipcKeyNameResponse = (\n target: Function,\n methodConfig: Models.MethodConfig,\n expressPath: string,\n ) => {\n return [\n 'response',\n ClassHelpers.getName(target),\n methodConfig.methodName,\n methodConfig.type,\n expressPath,\n ].join('--');\n };\n\n\n\n export const ipcKeyNameRequest = (\n target: Function,\n methodConfig: Models.MethodConfig,\n expressPath: string,\n ) => {\n return [\n 'request',\n ClassHelpers.getName(target),\n methodConfig.methodName,\n methodConfig.type,\n expressPath,\n ].join('--');\n };\n\n\n\n export const websqlMocks = headers => {\n const response: Express.Response = {\n status(status: any) {\n\n return {\n send(send: any) {\n\n },\n };\n },\n setHeader(key: string, value: any) {\n\n headers[key] = value;\n },\n };\n const request: Express.Request = {};\n return { request, response };\n };\n\n}\n\n ;({}); // @--end-of-file-for-module=taon lib/helpers/taon-helpers.ts","\n\nimport { Symbols } from '../symbols';\nimport { Validators } from '../validators';\nimport { _ } from 'tnp-core/browser';\nimport { Models } from '../models';\nimport { TaonControllerOptions } from '../decorators/classes/controller-decorator';\nimport { TaonHelpers } from './taon-helpers';\nimport { TaonEntityOptions } from '../decorators/classes/entity-decorator';\nimport { CLASS } from 'typescript-class-helpers/browser';\n/* */\n/* */\n \n\nexport namespace ClassHelpers {\n\n /**\n * TODO - repalce in every place when getting class fn from object\n */\n export const getClassFnFromObject = (json: Object) => {\n if (_.isUndefined(json) || _.isNull(json)) {\n return;\n }\n if (json.constructor) {\n return json.constructor;\n }\n const p = Object.getPrototypeOf(json);\n return p && p.constructor && p.constructor.name !== 'Object'\n ? p.constructor\n : void 0;\n };\n\n\n\n export const getName = (classFnOrObject: any): string => {\n\n if (classFnOrObject instanceof FormData) {\n return 'FormData';\n }\n if (!classFnOrObject) {\n console.error('OBJECT OR CLASS', classFnOrObject);\n throw new Error(`Cannot get name from this object or class.`);\n }\n return (\n (classFnOrObject[Symbols.classNameStaticProperty]\n ? classFnOrObject[Symbols.classNameStaticProperty]\n : classFnOrObject?.constructor[Symbols.classNameStaticProperty]) ||\n CLASS.getName(classFnOrObject)\n );\n };\n\n\n export const getOrginalClass = (classFnOrObject: any): any => {\n const org = classFnOrObject[Symbols.orignalClass];\n if (!org) {\n return classFnOrObject;\n }\n return getOrginalClass(org);\n };\n\n\n export const getFullInternalName = (classFnOrObject: any): string => {\n\n\n if (!classFnOrObject) {\n throw new Error(`Cannot get name from: ${classFnOrObject}`);\n }\n return (\n (classFnOrObject[Symbols.fullClassNameStaticProperty]\n ? classFnOrObject[Symbols.fullClassNameStaticProperty]\n : classFnOrObject?.constructor[Symbols.fullClassNameStaticProperty]) ||\n void 0\n );\n };\n\n\n\n export const getUniquKey = (classFnOrObject: any): string => {\n const classFn = _.isFunction(classFnOrObject)\n ? classFnOrObject\n : classFnOrObject.constructor;\n const config = Reflect.getMetadata(\n Symbols.metadata.options.controller,\n classFn,\n ) as TaonEntityOptions;\n return config.uniqueKeyProp;\n };\n\n\n\n export const isContextClassObject = (obj: any): boolean => {\n if (\n !_.isObject(obj) ||\n _.isArray(obj) ||\n _.isRegExp(obj) ||\n _.isBuffer(obj) ||\n _.isArrayBuffer(obj)\n ) {\n return false;\n }\n if (_.isDate(obj)) {\n return true;\n }\n const className = getName(obj);\n return _.isString(className) && className !== 'Object';\n };\n\n\n\n\n export const setName = (target: Function, className: string): void => {\n\n Validators.classNameVlidation(className, target);\n target[Symbols.classNameStaticProperty] = className;\n };\n\n\n\n export const hasParentClassWithName = (\n target: Function,\n className: string,\n targets = [],\n ): boolean => {\n if (!target) {\n return false;\n }\n targets.push(target);\n let targetProto = Object.getPrototypeOf(target);\n\n if (\n _.isFunction(targetProto) &&\n ClassHelpers.getName(targetProto) === className\n ) {\n\n return true;\n }\n return hasParentClassWithName(targetProto, className, targets);\n };\n\n\n\n export const getControllerConfig = (\n target: Function,\n ): Models.ControllerConfig | undefined => {\n const classMetadataOptions: TaonControllerOptions = Reflect.getMetadata(\n Symbols.metadata.options.controller,\n target,\n );\n const classMetadata: Models.ControllerConfig = _.merge(\n new Models.ControllerConfig(),\n classMetadataOptions,\n );\n\n\n const methodNames = ClassHelpers.getMethodsNames(target); // Object.getOwnPropertyNames(target.prototype);\n\n for (const methodName of methodNames) {\n const methodMetadata: Models.MethodConfig = Reflect.getMetadata(\n Symbols.metadata.options.controllerMethod,\n target,\n methodName,\n );\n\n if (methodMetadata) {\n classMetadata.methods[methodName] = methodMetadata;\n }\n }\n return classMetadata;\n };\n\n\n\n\n\n const notAllowedAsMethodName = [\n 'length',\n 'name',\n 'arguments',\n 'caller',\n 'constructor',\n 'apply',\n 'bind',\n 'call',\n 'toString',\n '__defineGetter__',\n '__defineSetter__',\n 'hasOwnProperty',\n '__lookupGetter__',\n '__lookupSetter__',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'valueOf',\n '__proto__',\n 'toLocaleString',\n ];\n\n\n export const getMethodsNames = (\n classOrClassInstance: any,\n allMethodsNames = [],\n ): string[] => {\n if (!classOrClassInstance) {\n return allMethodsNames;\n }\n\n const isClassFunction = _.isFunction(classOrClassInstance);\n const classFun = isClassFunction\n ? classOrClassInstance\n : Object.getPrototypeOf(classOrClassInstance);\n const objectToCheck = isClassFunction\n ? (classOrClassInstance as Function)?.prototype\n : classOrClassInstance;\n const prototypeObj = Object.getPrototypeOf(objectToCheck || {});\n\n const properties = _.uniq([\n ...Object.getOwnPropertyNames(objectToCheck || {}),\n ...Object.getOwnPropertyNames(prototypeObj || {}),\n ...Object.keys(objectToCheck || {}),\n ...Object.keys(prototypeObj || {}),\n ]).filter(f => !!f && !notAllowedAsMethodName.includes(f));\n\n properties\n .filter(methodName => typeof objectToCheck[methodName] === 'function')\n .forEach(p => allMethodsNames.push(p));\n\n if (\n !classFun ||\n !classFun.constructor ||\n classFun?.constructor?.name === 'Object'\n ) {\n return allMethodsNames;\n }\n return getMethodsNames(Object.getPrototypeOf(classFun), allMethodsNames);\n };\n\n\n\n export const getControllerConfigs = (\n target: Function,\n configs: Models.ControllerConfig[] = [],\n callerTarget?: Function,\n ): Models.RuntimeControllerConfig[] => {\n if (!_.isFunction(target)) {\n throw `[typescript-class-helper][getClassConfig] Cannot get class config from: ${target}`;\n }\n\n let config: Models.RuntimeControllerConfig;\n const parentClass = Object.getPrototypeOf(target);\n const parentName = parentClass ? ClassHelpers.getName(parentClass) : void 0;\n const isValidParent = _.isFunction(parentClass) && parentName !== '';\n\n config = getControllerConfig(target);\n\n configs.push(config);\n\n return isValidParent\n ? getControllerConfigs(parentClass, configs, target)\n : configs;\n };\n\n\n\n export const getCalculatedPathFor = (target: Function) => {\n const configs = getControllerConfigs(target);\n\n const parentscalculatedPath = _.slice(configs, 1)\n .reverse()\n .map(bc => {\n if (TaonHelpers.isGoodPath(bc.path)) {\n return bc.path;\n }\n return bc.className;\n })\n .join('/');\n\n return `/${parentscalculatedPath}/${ClassHelpers.getName(target)}`;\n };\n\n}\n\n ;({}); // @--end-of-file-for-module=taon lib/helpers/class-helpers.ts","\n\nimport { CoreModels } from 'tnp-core/browser';\nimport { Response, RequestHandler } from 'express';\nimport { Response as ExpressResponse, Request as ExpressRequest, } from 'express';/* */\n/* */\n/* */\n\nimport { Models as ModelsNg2Rest } from 'ng2-rest/browser';\nimport { ClassHelpers } from './helpers/class-helpers';\nimport type { TaonControllerOptions } from './decorators/classes/controller-decorator';\nimport type { TaonEntityOptions } from './decorators/classes/entity-decorator';\n\nexport namespace Models {\n export type FrameworkMode =\n | 'backend-frontend(tcp+udp)'\n | 'remote-backend(tcp+udp)'\n | 'backend-frontend(ipc-electron)'\n | 'backend-frontend(websql)';\n\n\n export enum ClassType {\n ENTITY = 'ENTITY',\n CONTROLLER = 'CONTROLLER',\n REPOSITORY = 'REPOSITORY',\n PROVIDER = 'PROVIDER',\n SUBSCRIBER = 'SUBSCRIBER',\n }\n\n export const ClassTypeKey = {\n [ClassType.ENTITY]: 'entities',\n [ClassType.CONTROLLER]: 'controllers',\n [ClassType.REPOSITORY]: 'repositories',\n [ClassType.PROVIDER]: 'providers',\n [ClassType.SUBSCRIBER]: 'subscribers',\n } as {\n [key in ClassType]: keyof ContextOptions<any, any, any, any, any, any>;\n };\n\n\n\n\n export type MiddlewareType = [Function, any[]];\n\n\n\n export interface DatabaseConfig {\n /**\n * database name\n */\n database?: string;\n /**\n * only for file base db: sqlite, sqljs\n */\n location?: string;\n synchronize: boolean;\n dropSchema: boolean;\n type?: CoreModels.DatabaseType;\n\n autoSave: boolean; // TODO what is this ?\n /**\n * for websql db mode\n */\n useLocalForage?: boolean;\n logging: boolean;\n\n databasePort?: number;\n databaseHost?: string;\n databaseUsername?: string;\n databasePassword?: string;\n }\n\n\n\n\n export type ISession = {\n secret?: string;\n saveUninitialized?: boolean;\n /**\n * max age of session\n */\n cookieMaxAge?: number;\n secure?: boolean;\n resave?: boolean;\n };\n\n\n\n export type ContectionOptionsLogs = {\n http: boolean;\n realtime: boolean;\n framework: boolean;\n db: boolean;\n };\n export interface ContextOptions<\n CONTEXTS,\n CONTROLLERS,\n ENTITIES,\n REPOSITORIES,\n PROVIDERS,\n SUBSCRIBERS,\n > {\n contextName: string;\n host?: string;\n /**\n * frontend host only needed when we are using\n * withCredentials for axios\n * and session cookie\n */\n frontendHost?: string;\n remoteHost?: string;\n useIpcWhenElectron?: boolean;\n contexts?: CONTEXTS;\n controllers?: CONTROLLERS;\n entities?: ENTITIES;\n repositories?: REPOSITORIES;\n providers?: PROVIDERS;\n subscribers?: SUBSCRIBERS;\n session?: ISession;\n productionMode?: boolean;\n abstract?: boolean;\n logs?: boolean | ContectionOptionsLogs;\n database?: boolean | DatabaseConfig;\n disabledRealtime?: boolean;\n https?: {\n key: string;\n cert: string;\n };\n publicAssets?: { serverPath: string; locationOnDisk: string }[];\n middlewares?: MiddlewareType[];\n /**\n * @deprecated\n * only for debugging purpose\n */\n override?: {\n entities?: Function[];\n controllers?: Function[];\n repositories?: Function[];\n providers?: Function[];\n subscribers?: Function[];\n };\n }\n\n\n\n export class DecoratorAbstractOpt {\n className: string;\n }\n\n\n\n export class ParamConfig {\n paramName: string;\n paramType: CoreModels.ParamType;\n index: number;\n defaultType: any;\n expireInSeconds?: number;\n }\n\n\n\n export class MethodConfig {\n methodName: string;\n /**\n * path is global in express app\n */\n global?: boolean;\n /**\n * override default content type\n */\n contentType?: any;\n /**\n * override default axiso response type\n */\n responseType?: any;\n path: string;\n descriptor: PropertyDescriptor;\n type: CoreModels.HttpMethod;\n/* */\n/* */\n \n parameters: { [paramName: string]: ParamConfig } = {};\n }\n\n\n\n export class ControllerConfig extends DecoratorAbstractOpt {\n realtime?: boolean;\n path: string;\n uniqueKey?: string;\n methods: { [methodName: string]: MethodConfig } = {};\n }\n\n\n\n export class RuntimeControllerConfig extends ControllerConfig {\n calculatedPath?: string;\n browserTransformFn?: (entity: any) => any;\n }\n\n\n\n export namespace Http {\n export import Rest = ModelsNg2Rest;\n\n export type ContextENDPOINT = { target: Function; initFN: Function };\n\n export type FormlyFromType = 'material' | 'bootstrap';\n\n export type ExpressContext<T> = (\n req: ExpressRequest,\n res: ExpressResponse,\n ) => T;\n\n export type SyncResponse<T> = string | T;\n\n export type ResponseFuncOpt<T> = {\n limitSize?: (\n enties: Function | Function[],\n include: string[],\n exclude: string[],\n ) => void;\n };\n\n export type SyncResponseFunc<T> = (\n options?: ResponseFuncOpt<T>,\n ) => SyncResponse<T>;\n export type MixResponse<T> = SyncResponse<T> | ExpressContext<T>;\n\n export interface ClientAction<T> {\n received?: Rest.PromiseObservableMix<Rest.HttpResponse<T>>;\n }\n\n export interface __Response<T> {\n/* */\n/* */\n \n }\n\n export interface AsyncResponse<T> {\n (\n req?: ExpressRequest,\n res?: ExpressResponse,\n ): Promise<SyncResponse<T> | SyncResponseFunc<T>>;\n }\n\n export type Response<T = string> = (__Response<T> | AsyncResponse<T>) &\n ClientAction<T> &\n __Response<T>;\n\n export class Errors {\n public toString = (): string => {\n return this.message;\n };\n\n private constructor(\n public message: string,\n private code: ModelsNg2Rest.HttpCode = 400,\n ) {}\n\n private static create(\n message: string,\n code: ModelsNg2Rest.HttpCode = 400,\n ) {\n return new Errors(message, code);\n }\n\n public static entityNotFound(entity?: Function) {\n return Errors.create(\n `Entity ${ClassHelpers.getName(entity)} not found`,\n );\n }\n\n public static custom(\n message: string,\n code: ModelsNg2Rest.HttpCode = 400,\n ) {\n return Errors.create(message, code);\n }\n }\n\n/* */\n/* */\n/* */\n/* */\n/* */\n \n }\n\n}\n\n ;({}); // @--end-of-file-for-module=taon lib/models.ts","\n\nimport { CoreModels, _ } from 'tnp-core/browser';\nimport { Models } from '../../models';\nimport { Symbols } from '../../symbols';\nimport { Models as ModelsNg2Rest } from 'ng2-rest/browser';\nconst metaReq = (\n method: Models.Http.Rest.HttpMethod,\n path: string,\n target: Function,\n propertyKey: string,\n descriptor: PropertyDescriptor,\n pathOrOptions: string | TaonHttpDecoratorOptions,\n pathIsGlobal: boolean,\n) => {\n let options: TaonHttpDecoratorOptions;\n if (typeof pathOrOptions === 'object') {\n options = pathOrOptions;\n pathOrOptions = options.path as any;\n pathIsGlobal = !!options.pathIsGlobal;\n path = options.path;\n } else {\n options = { pathOrOptions, pathIsGlobal } as any;\n }\n\n const { overrideContentType, overridResponseType } = options;\n\n let methodConfig: Models.MethodConfig = Reflect.getMetadata(\n Symbols.metadata.options.controllerMethod,\n target.constructor,\n propertyKey,\n );\n if (!methodConfig) {\n methodConfig = new Models.MethodConfig();\n Reflect.defineMetadata(\n Symbols.metadata.options.controllerMethod,\n methodConfig,\n target.constructor,\n propertyKey,\n );\n }\n\n methodConfig.methodName = propertyKey;\n methodConfig.type = method;\n if (!path) {\n let paramsPathConcatedPath = '';\n for (const key in methodConfig.parameters) {\n if (methodConfig.parameters.hasOwnProperty(key)) {\n const element = methodConfig.parameters[key];\n if (\n element.paramType === 'Path' &&\n _.isString(element.paramName) &&\n element.paramName.trim().length > 0\n ) {\n paramsPathConcatedPath += `/${element.paramName}/:${element.paramName}`;\n }\n }\n }\n methodConfig.path = `/${propertyKey}${paramsPathConcatedPath}`;\n } else {\n methodConfig.path = path;\n }\n\n methodConfig.descriptor = descriptor;\n methodConfig.global = pathIsGlobal;\n methodConfig.contentType = overrideContentType;\n methodConfig.responseType = overridResponseType;\n Reflect.defineMetadata(\n Symbols.metadata.options.controllerMethod,\n methodConfig,\n target.constructor,\n propertyKey,\n );\n\n};\n\nexport interface TaonHttpDecoratorOptions {\n path?: string;\n pathIsGlobal?: boolean;\n overrideContentType?: CoreModels.ContentType;\n overridResponseType?: ModelsNg2Rest.ResponseTypeAxios;\n}\n\nexport function GET(\n pathOrOptions?: string | TaonHttpDecoratorOptions,\n pathIsGlobal = false,\n) {\n return function (\n target: any,\n propertyKey: string,\n descriptor: PropertyDescriptor,\n ) {\n metaReq(\n 'get',\n pathOrOptions as string,\n target,\n propertyKey,\n descriptor,\n pathOrOptions,\n pathIsGlobal,\n );\n };\n}\n\nexport function HEAD(\n pathOrOptions?: string | TaonHttpDecoratorOptions,\n pathIsGlobal = false,\n) {\n return function (\n target: any,\n propertyKey: string,\n descriptor: PropertyDescriptor,\n ) {\n metaReq(\n 'head',\n pathOrOptions as string,\n target,\n propertyKey,\n descriptor,\n pathOrOptions,\n pathIsGlobal,\n );\n };\n}\n\nexport function POST(\n pathOrOptions?: string | TaonHttpDecoratorOptions,\n pathIsGlobal = false,\n) {\n return function (\n target: any,\n propertyKey: string,\n descriptor: PropertyDescriptor,\n ) {\n metaReq(\n 'post',\n pathOrOptions as string,\n target,\n propertyKey,\n descriptor,\n pathOrOptions,\n pathIsGlobal,\n );\n };\n}\n\nexport function PUT(\n pathOrOptions?: string | TaonHttpDecoratorOptions,\n pathIsGlobal = false,\n) {\n return function (\n target: any,\n propertyKey: string,\n descriptor: PropertyDescriptor,\n ) {\n metaReq(\n 'put',\n pathOrOptions as string,\n target,\n propertyKey,\n descriptor,\n pathOrOptions,\n pathIsGlobal,\n );\n };\n}\n\nexport function PATCH(\n pathOrOptions?: string | TaonHttpDecoratorOptions,\n pathIsGlobal = false,\n) {\n return function (\n target: any,\n propertyKey: string,\n descriptor: PropertyDescriptor,\n ) {\n metaReq(\n 'patch',\n pathOrOptions as string,\n target,\n propertyKey,\n descriptor,\n pathOrOptions,\n pathIsGlobal,\n );\n };\n}\n\nexport function DELETE(\n pathOrOptions?: string | TaonHttpDecoratorOptions,\n pathIsGlobal = false,\n) {\n return function (\n target: any,\n propertyKey: string,\n descriptor: PropertyDescriptor,\n ) {\n metaReq(\n 'delete',\n pathOrOptions as string,\n target,\n propertyKey,\n descriptor,\n pathOrOptions,\n pathIsGlobal,\n );\n };\n}\n\n ;({}); // @--end-of-file-for-module=taon lib/decorators/http/http-methods-decorators.ts","\n\nimport { Models } from '../../models';\nimport { Symbols } from '../../symbols';\n\nfunction metaParam(\n param: Models.Http.Rest.ParamType,\n name: string,\n expire: number,\n defaultValue = undefined,\n target: Function,\n propertyKey: string | symbol,\n parameterIndex: number,\n) {\n let methodConfig: Models.MethodConfig = Reflect.getMetadata(\n Symbols.metadata.options.controllerMethod,\n target.constructor,\n propertyKey,\n );\n if (!methodConfig) {\n methodConfig = new Models.MethodConfig();\n Reflect.defineMetadata(\n Symbols.metadata.options.controllerMethod,\n methodConfig,\n target.constructor,\n propertyKey,\n );\n }\n\n const nameKey = name ? name : param;\n const p = (methodConfig.parameters[nameKey] = !methodConfig.parameters[\n nameKey\n ]\n ? new Models.ParamConfig()\n : methodConfig.parameters[nameKey]);\n p.index = parameterIndex;\n p.paramName = name;\n p.paramType = param;\n p.defaultType = defaultValue;\n p.expireInSeconds = expire;\n Reflect.defineMetadata(\n Symbols.metadata.options.controllerMethod,\n methodConfig,\n target.constructor,\n propertyKey,\n );\n\n}\n\nexport function Path(name: string) {\n return function (\n target: any,\n propertyKey: string | symbol,\n parameterIndex: number,\n ) {\n metaParam('Path', name, undefined, {}, target, propertyKey, parameterIndex);\n };\n}\n\nexport function Query(name?: string) {\n return function (\n target: any,\n propertyKey: string | symbol,\n parameterIndex: number,\n ) {\n metaParam(\n 'Query',\n name,\n undefined,\n {},\n target,\n propertyKey,\n parameterIndex,\n );\n };\n}\n\nexport function Cookie(name: string, expireInSecond: number = 3600) {\n return function (\n target: any,\n propertyKey: string | symbol,\n parameterIndex: number,\n ) {\n metaParam(\n 'Cookie',\n name,\n expireInSecond,\n {},\n target,\n propertyKey,\n parameterIndex,\n );\n };\n}\n\nexport function Header(name?: string) {\n return function (\n target: any,\n propertyKey: string | symbol,\n parameterIndex: number,\n ) {\n metaParam(\n 'Header',\n name,\n undefined,\n {},\n target,\n propertyKey,\n parameterIndex,\n );\n };\n}\n\nexport function Body(name?: string) {\n return function (\n target: any,\n propertyKey: string | symbol,\n parameterIndex: number,\n ) {\n metaParam('Body', name, undefined, {}, target, propertyKey, parameterIndex);\n };\n}\n\n ;({}); // @--end-of-file-for-module=taon lib/decorators/http/http-params-decorators.ts","\n\nimport * as methods from './http-methods-decorators';\nimport * as params from './http-params-decorators';\n\nexport namespace Http {\n export import GET = methods.GET;\n export import POST = methods.POST;\n export import PUT = methods.PUT;\n export import DELETE = methods.DELETE;\n export import PATCH = methods.PATCH;\n export import HEAD = methods.HEAD;\n export namespace Param {\n export import Query = params.Query;\n export import Path = params.Path;\n export import Body = params.Body;\n export import Cookie = params.Cookie;\n export import Header = params.Header;\n }\n}\n\n ;({}); // @--end-of-file-for-module=taon lib/decorators/http/http-decorators.ts","\n\nimport { ClassHelpers } from '../../helpers/class-helpers';\nimport { Symbols } from '../../symbols';\nimport { Models } from '../../models';\n\nexport function TaonController(options?: TaonControllerOptions) {\n return function (constructor: Function) {\n ClassHelpers.setName(constructor, options?.className);\n Reflect.defineMetadata(\n Symbols.metadata.options.controller,\n options,\n constructor,\n );\n Reflect.defineMetadata(\n Symbols.metadata.className,\n options?.className || constructor.name,\n constructor,\n );\n };\n}\n\nexport class TaonControllerOptions extends Models.DecoratorAbstractOpt {\n /**\n * typeorm realtime subscribtion // TODO disabled for now, does not make sense ?s\n */\n realtime?: boolean;\n /**\n * override default path for controller api\n */\n path?: string;\n}\n\n ;({}); // @--end-of-file-for-module=taon lib/decorators/classes/controller-decorator.ts","\n\n\nimport { Helpers, _ } from 'tnp-core/browser';\nimport { EndpointContext } from '../endpoint-context';\nimport { Symbols } from '../symbols';\nimport { ClassHelpers } from '../helpers/class-helpers';\nimport type { BaseRepository } from './base-repository';\nimport { BaseClass } from './base-class';\n\n\nexport class BaseInjector<CloneT extends BaseClass = any> {\n /**\n * for proxy purposes\n */\n getOriginalPrototype: () => any;\n /**\n * for proxy purposes\n */\n getOriginalConstructor: () => any;\n\n\n /**\n * class initialization hook\n * taon after class instace creation\n */\n async _() {\n const reposToInit = this.__repositories_to_init__;\n for (const repo of reposToInit) {\n await repo.__init(this);\n }\n }\n\n\n\n /**\n * Current endpoint context\n */\n get __endpoint_context__() {\n return this[Symbols.ctxInClassOrClassObj] as EndpointContext;\n }\n\n\n\n\n\n /**\n * inject crud repo for entity\n */\n injectRepo<T>(entityForCrud: new (...args: any[]) => T): BaseRepository<T> {\n const repoProxy = this.__inject(void 0, {\n localInstance: true,\n resolveClassFromContext: 'BaseRepository',\n locaInstanceConstructorArgs: [() => entityForCrud],\n });\n this.__repositories_to_init__.push(repoProxy as any);\n return repoProxy as any;\n }\n\n\n\n injectCustomRepository<T>(\n cutomRepositoryClass: new (...args: any[]) => T,\n ): T {\n const repoProxy = this.__inject<T>(cutomRepositoryClass, {\n localInstance: true,\n locaInstanceConstructorArgs: [\n () => cutomRepositoryClass.prototype.entityClassResolveFn(),\n ],\n });\n this.__repositories_to_init__.push(repoProxy as any);\n return repoProxy;\n }\n\n\n\n /**\n * aliast to .injectRepository()\n */\n injectCustomRepo<T>(cutomRepositoryClass: new (...args: any[]) => T): T {\n const repoProxy = this.injectCustomRepository<T>(cutomRepositoryClass);\n this.__repositories_to_init__.push(repoProxy as any);\n return repoProxy;\n }\n\n\n\n injectController<T>(ctor: new (...args: any[]) => T): T {\n return this.__inject<T>(ctor, { localInstance: false });\n }\n\n\n\n\n /**\n * aliast to .injectController()\n */\n injectSubscriber<T>(ctor: new (...args: any[]) => T): T {\n return this.__inject<T>(ctor, { localInstance: false });\n }\n\n\n\n /**\n * aliast to .injectController()\n */\n injectCtrl<T>(ctor: new (...args: any[]) => T): T {\n return this.injectController<T>(ctor);\n }\n\n\n\n /**\n * global provider available in every context\n */\n injectGlobalProvider<T>(ctor: new (...args: any[]) => T): T {\n return this.__inject<T>(ctor, { localInstance: false });\n }\n\n\n\n /**\n * context scoped provider\n * TODO\n */\n injectContextProvider<T>(ctor: new (...args: any[]) => T): T {\n return this.__inject<T>(ctor, { localInstance: false });\n }\n\n\n /**\n * Repositories to init (by controller)\n */\n protected __repositories_to_init__ = [] as BaseRepository<any>[];\n\n\n /**\n * Inject: Controllers, Providers, Repositories, Services, etc.\n * TODO addd nest js injecting\n */\n private __inject<T>(\n ctor: new (...args: any[]) => T,\n options?: {\n /**\n * (repositories are ONLY/ALWAYS local instances)\n * If true, then local instance will be created\n * controllers, providers can be local or global\n */\n localInstance: boolean;\n resolveClassFromContext?: string;\n locaInstanceConstructorArgs?: ConstructorParameters<typeof ctor>;\n },\n ): T {\n if (!options) {\n options = {} as any;\n }\n\n const contextClassInstance = this;\n return new Proxy(\n {},\n {\n get: (__, propName) => {\n const contextFromClass: EndpointContext =\n ctor && ctor[Symbols.ctxInClassOrClassObj];\n\n const resultContext: EndpointContext = contextFromClass\n ? contextFromClass\n : this.__endpoint_context__;\n\n if (options.resolveClassFromContext) {\n const resolvedClass = resultContext.getClassFunByClassName(\n options.resolveClassFromContext,\n );\n ctor = resolvedClass as any;\n }\n\n if (resultContext) {\n var instance: T = resultContext.inject(ctor, {\n ...options,\n contextClassInstance,\n });\n if (!instance) {\n throw new Error(\n `Not able to inject \"${\n ClassHelpers.getName(ctor) || ctor.name\n }\" inside ` +\n `property \"${propName?.toString()}\" on class \"${ClassHelpers.getName(\n this,\n )}\".\n\n Please add \"${\n ClassHelpers.getName(ctor) || ctor.name\n }\" to (entites or contorllers or providers or repositories)\n\n `,\n );\n }\n\n const result =\n typeof instance[propName] === 'function'\n ? instance[propName].bind(instance)\n : instance[propName];\n\n\n return result;\n }\n\n\n\n },\n set: (__, propName, value) => {\n const contextFromClass = ctor && ctor[Symbols.ctxInClassOrClassObj];\n const resultContext: EndpointContext = contextFromClass\n ? contextFromClass\n : this.__endpoint_context__;\n\n if (options.resolveClassFromContext) {\n const resolvedClass = resultContext.getClassFunByClassName(\n options.resolveClassFromContext,\n );\n ctor = resolvedClass as any;\n }\n\n if (resultContext) {\n var instance: T = resultContext.inject(ctor, {\n ...options,\n contextClassInstance,\n });\n if (!instance) {\n const classNameNotResolved =\n ClassHelpers.getName(ctor) || ctor.name;\n throw new Error(\n `Not able to inject \"${classNameNotResolved}\" inside ` +\n `property \"${propName?.toString()}\" on class \"${ClassHelpers.getName(\n this,\n )}\".\n\n Please add \"${\n ClassHelpers.getName(ctor) || ctor.name\n }\" to (entites or contorllers or providers or repositories)\n\n `,\n );\n }\n instance[propName] = value;\n }\n return true;\n },\n },\n ) as T;\n }\n\n\n\n\n\n public clone(override: Partial<CloneT>): CloneT {\n const classFn = ClassHelpers.getClassFnFromObject(this);\n const result = _.merge(new classFn(), _.merge(_.cloneDeep(this), override));\n\n return result;\n }\n\n}\n\n ;({}); // @--end-of-file-for-module=taon lib/base-classes/base-injector.ts","\n\nimport { TaonController } from '../decorators/classes/controller-decorator';\nimport { BaseInjector } from './base-injector';\n\n@TaonController({ className: 'BaseController' })\nexport class BaseController extends BaseInjector {\n /**\n * init example data for db\n */\n initExampleDbData(): Promise<any> {\n return void 0;\n }\n\n\n}\n\n ;({}); // @--end-of-file-for-module=taon lib/base-classes/base-controller.ts","\n\n\nimport { Symbols } from '../symbols';\nimport { BaseController } from './base-controller';\nimport { BaseRepository } from './base-repository';\nimport { GET, PUT, DELETE, POST, HEAD, PATCH, } from '../decorators/http/http-methods-decorators';/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n\nimport { Query, Path, Body } from '../decorators/http/http-params-decorators';\nimport { MySqlQuerySource } from 'taon-type-sql/browser';\nimport { Models } from '../models';\nimport { Helpers, _ } from 'tnp-core/browser';\nimport { TaonController, TaonControllerOptions, } from '../decorators/classes/controller-decorator';/* */\n/* */\n/* */\n\nimport { ClassHelpers } from '../helpers/class-helpers';\n\nimport { Validators } from '../validators';\nimport { TaonEntityOptions } from '../decorators/classes/entity-decorator';\n\n\n/**\n * Please override property entityClassFn with entity class.\n */\n@TaonController({ className: 'BaseCrudController' })\nexport abstract class BaseCrudController<Entity> extends BaseController {\n\n protected db?: BaseRepository<Entity>;\n\n /**\n * Please provide entity as class propery entityClassFn:\n * @returns class function\n *\n */\n abstract entityClassResolveFn: () => any;\n\n\n\n async _() {\n if (!_.isFunction(this.entityClassResolveFn)) {\n Helpers.warn(\n `Skipping initing CRUD controller ${ClassHelpers.getName(\n this,\n )} because entityClassResolveFn is not provided.`,\n );\n return;\n }\n\n let entityClassFn = this.entityClassResolveFn();\n this.db = this.injectRepo(entityClassFn);\n\n if (entityClassFn) {\n const configEntity = Reflect.getMetadata(\n Symbols.metadata.options.entity,\n ClassHelpers.getClassFnFromObject(this),\n ) as TaonEntityOptions;\n if (configEntity?.createTable === false) {\n Helpers.warn(\n `Table for entity ${ClassHelpers.getName(\n entityClassFn,\n )} will not be created. Crud will not work properly.`,\n );\n }\n } else {\n Helpers.error(`Entity class not provided for controller ${ClassHelpers.getName(\n this,\n )}.\n\n Please provide entity as class propery entityClassFn:\n\n class ${ClassHelpers.getName(this)} extends BaseCrudController<Entity> {\n\n entityClassResolveFn = ()=> MyEntityClass;\n\n }\n\n `);\n }\n await super._();\n }\n\n\n\n @GET(`/:id/property/:property`)\n bufforedChanges(\n @Path(`id`) id: number | string,\n @Path(`property`) property: string,\n @Query('alreadyLength') alreadyLength?: number,\n ): Models.Http.Response<string | any[]> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n\n\n @GET()\n pagination(\n @Query('pageNumber') pageNumber: number = 1,\n @Query('pageSize') pageSize: number = 10,\n @Query('search') search: string = '',\n ): Models.Http.Response<Entity[]> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n\n\n @GET()\n getAll(): Models.Http.Response<Entity[]> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n\n\n @GET(`/:id`)\n getBy(@Path(`id`) id: number | string): Models.Http.Response<Entity> {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n\n\n @PUT(`/:id`)\n updateById(\n @Path(`id`) id: number | string,\n @Body() item: Entity,\n ): Models.Http.Response<Entity> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n\n\n @PATCH(`/:id`)\n patchById(\n @Path(`id`) id: number | string,\n @Body() item: Entity,\n ): Models.Http.Response<Entity> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n\n\n @PUT()\n bulkUpdate(@Body() items: Entity[]): Models.Http.Response<Entity[]> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n\n\n @DELETE(`/:id`)\n deleteById(@Path(`id`) id: number): Models.Http.Response<Entity> {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n\n\n @DELETE(`/bulkDelete/:ids`)\n bulkDelete(\n @Path(`ids`) ids: (number | string)[],\n ): Models.Http.Response<(number | string | Entity)[]> {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n\n\n @POST()\n create(@Body() item: Entity): Models.Http.Response<Entity> {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n\n\n @POST()\n bulkCreate(@Body() items: Entity): Models.Http.Response<Entity[]> {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n}\n\n ;({}); // @--end-of-file-for-module=taon lib/base-classes/base-crud-controller.ts","\n\n\nimport { Helpers, _ } from 'tnp-core/browser';\nimport { EndpointContext } from '../endpoint-context';\nimport { Symbols } from '../symbols';\nimport { ClassHelpers } from '../helpers/class-helpers';\nimport type { BaseRepository } from './base-repository';\n\nimport { inject } from '@angular/core';\n\n\n\nexport class BaseClass<CloneT extends BaseClass = any> {\n\n /**\n * class initialization hook\n * taon after class instace creation\n */\n async _() {}\n\n\n\n public clone(override: Partial<CloneT>): CloneT {\n const classFn = ClassHelpers.getClassFnFromObject(this);\n const result = _.merge(new classFn(), _.merge(_.cloneDeep(this), override));\n\n return result;\n }\n\n}\n\n ;({}); // @--end-of-file-for-module=taon lib/base-classes/base-class.ts","\n\n/* */\n/* */\n \nimport { EndpointContext } from '../endpoint-context';\nimport { Symbols } from '../symbols';\nimport { BaseClass } from './base-class';\n\nlet EntityDecorator = () => {\n return (target: any) => {};\n};\n\n/* */\n/* */\n \n\n@EntityDecorator()\nexport abstract class BaseEntity<\n /**\n * type for cloning\n */\n CloneT extends BaseClass = any,\n> extends BaseClass<CloneT> {}\n\n ;({}); // @--end-of-file-for-module=taon lib/base-classes/base-entity.ts","\n\n/* */\n/* */\n \nimport { Orm } from '../orm';\nimport { BaseEntity } from './base-entity';\nimport type { BaseClass } from './base-class';\n\n\nlet EntityDecorator = () => {\n return (target: any) => {};\n};\n\n/* */\n/* */\n \n\n@EntityDecorator()\nexport abstract class BaseAbstractEntity<\n CloneT extends BaseClass = any,\n> extends BaseEntity<CloneT> {\n/* */\n/* */\n \n id: string;\n\n/* */\n/* */\n \n version: number;\n}\n\n ;({}); // @--end-of-file-for-module=taon lib/base-classes/base-abstract-entity.ts","\n\nimport { ClassHelpers } from '../../helpers/class-helpers';\nimport { Symbols } from '../../symbols';\nimport { Models } from '../../models';\nimport { Repository as TypeormRepository, EntityRepository, } from 'taon-typeorm/browser';/* */\n/* */\n/* */\n\nimport { _ } from 'tnp-core/browser';\n\nexport function TaonRepository(options: TaonRepositoryOptions) {\n return function (constructor: Function) {\n Reflect.defineMetadata(\n Symbols.metadata.options.repository,\n options,\n constructor,\n );\n Reflect.defineMetadata(\n Symbols.metadata.className,\n options?.className || constructor.name,\n constructor,\n );\n ClassHelpers.setName(constructor, options?.className);\n };\n}\n\nexport class TaonRepositoryOptions<\n T = any,\n> extends Models.DecoratorAbstractOpt {}\n\n ;({}); // @--end-of-file-for-module=taon lib/decorators/classes/repository-decorator.ts","\n\n\nimport type {\n DataSource,\n DeepPartial,\n DeleteResult,\n FindManyOptions,\n FindOneOptions,\n FindOptionsWhere,\n InsertResult,\n\n RemoveOptions,\n Repository,\n SaveOptions,\n UpdateResult,\n} from 'taon-typeorm';\n\nimport type { QueryDeepPartialEntity } from 'taon-typeorm/lib/typeorm/query-builder/QueryPartialEntity';\n\nimport type { UpsertOptions } from 'taon-typeorm/lib/typeorm/repository/UpsertOptions';\n\n\n\nimport type { DataSource as DataSourceType } from 'taon-typeorm/browser';\nimport { EndpointContext } from '../endpoint-context';\nimport { Helpers } from 'tnp-core/browser';\nimport { _ } from 'tnp-core/browser';\nimport { ClassHelpers } from '../helpers/class-helpers';\nimport { MySqlQuerySource } from 'taon-type-sql/browser';\nimport { TaonRepository } from '../decorators/classes/repository-decorator';\nimport { BaseInjector } from './base-injector';\n\n\nconst INDEX_KEYS_NO_FOR_UPDATE = ['id'];\n\n@TaonRepository({ className: 'BaseRepository' })\nexport abstract class BaseRepository<\n Entity extends { id?: any },\n> extends BaseInjector {\n\n\n\n\n\n\n abstract entityClassResolveFn: () => any;\n constructor(\n\n private __entityClassResolveFn: () => any,\n ) {\n super();\n // @ts-ignore\n this.entityClassResolveFn = __entityClassResolveFn;\n }\n\n\n\n private __dbQuery: MySqlQuerySource;\n\n public get dbQuery(): MySqlQuerySource {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n\n\n public get connection(): DataSourceType {\n/* */\n/* */\n return (void 0);\n }\n\n\n\n/* */\n/* */\n \n protected get repository() {\n/* */\n/* */\n return (void 0);\n }\n\n /**\n * target for repository\n */\n public get target(): Function {\n/* */\n/* */\n return (void 0);\n }\n\n /**\n * alias to repository\n */\n protected get repo() {\n/* */\n/* */\n return (void 0);\n }\n\n public get repositoryExists(): boolean {\n/* */\n/* */\n return (void 0);\n }\n\n\n\n\n\n async __init(context?: any) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n }\n\n\n\n /**\n * Checks if entity has an id.\n * If entity composite compose ids, it will check them all.\n */\n hasId(entity: Entity): boolean {\n return this.repo.hasId(entity);\n }\n\n\n\n /**\n * Gets entity mixed id.\n */\n getId(entity: Entity): any {\n return this.repo.getId(entity);\n }\n\n\n\n /**\n Saves a given entity in the database.\n * If entity does not exist in the database then inserts, otherwise updates.\n */\n async save(\n item: Entity,\n options?: SaveOptions & {\n reload: false;\n },\n ): Promise<Entity> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n /**\n * alias to save\n * -> it will actuall create new entity in db\n * in oposite to typeorm create method\n */\n async create(\n item: Entity,\n options?: SaveOptions & {\n reload: false;\n },\n ): Promise<Entity> {\n return this.save(item, options);\n }\n\n async bulkSave(\n items: Entity[],\n options?: SaveOptions & {\n reload: false;\n },\n ): Promise<Entity[]> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async bulkCreate(\n items: Entity[],\n options?: SaveOptions & {\n reload: false;\n },\n ): Promise<Entity[]> {\n return this.bulkSave(items, options);\n }\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n /**\n * Saves all given entities in the database.\n * If entities do not exist in the database then inserts, otherwise updates.\n */\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n /**\n * Merges multiple entities (or entity-like objects) into a given entity.\n */\n merge(mergeIntoEntity: Entity, ...entityLikes: Entity[]): Entity {\n return this.repo.merge(mergeIntoEntity, ...entityLikes);\n }\n\n\n\n /**\n * Creates a new entity from the given plain javascript object. If entity already exist in the database, then\n * it loads it (and everything related to it), replaces all values with the new ones from the given object\n * and returns this new entity. This new entity is actually a loaded from the db entity with all properties\n * replaced from the new object.\n *\n * Note that given entity-like object must have an entity id / primary key to find entity by.\n * Returns undefined if entity with given id was not found.\n */\n preload(entityLike: Entity): Promise<Entity | undefined> {\n return this.repo.preload(entityLike);\n }\n\n\n\n\n /**\n * Removes a given entities from the database.\n */\n async remove(idOrEntity: number | string | Entity): Promise<Entity> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n /**\n * alias to remove\n */\n async delete(idOrEntity: number | string | Entity): Promise<Entity> {\n return this.remove(idOrEntity);\n }\n\n /**\n * alias to removeById\n */\n async deleteById(id: number | string): Promise<Entity> {\n return this.remove(id);\n }\n async bulkRemove(\n idsOrEntities: (number | string | Entity)[],\n ): Promise<Entity[]> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async bulkDelete(ids: (number | string | Entity)[]): Promise<Entity[]> {\n return this.bulkRemove(ids);\n }\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n /**\n * Records the delete date of all given entities.\n */\n softRemove<T extends Entity>(\n entities: T[],\n options: SaveOptions & {\n reload: false;\n },\n ): Promise<T[]>;\n /**\n * Records the delete date of all given entities.\n */\n softRemove<T extends Entity>(\n entities: T[],\n options?: SaveOptions,\n ): Promise<(T & Entity)[]>;\n /**\n * Records the delete date of a given entity.\n */\n softRemove<T extends Entity>(\n entity: T,\n options: SaveOptions & {\n reload: false;\n },\n ): Promise<T>;\n /**\n * Records the delete date of a given entity.\n */\n softRemove<T extends Entity>(\n entity: T,\n options?: SaveOptions,\n ): Promise<T & Entity> {\n return this.repo.softRemove(entity, options);\n }\n\n\n\n /**\n * Recovers all given entities in the database.\n */\n recover<T extends Entity>(\n entities: T[],\n options: SaveOptions & {\n reload: false;\n },\n ): Promise<T[]>;\n /**\n * Recovers all given entities in the database.\n */\n recover<T extends Entity>(\n entities: T[],\n options?: SaveOptions,\n ): Promise<(T & Entity)[]>;\n /**\n * Recovers a given entity in the database.\n */\n recover<T extends Entity>(\n entity: T,\n options: SaveOptions & {\n reload: false;\n },\n ): Promise<T>;\n /**\n * Recovers a given entity in the database.\n */\n recover<T extends Entity>(\n entity: T,\n options?: SaveOptions,\n ): Promise<T & Entity> {\n return this.repo.recover(entity, options);\n }\n\n\n\n /**\n * Inserts a given entity into the database.\n * Unlike save method executes a primitive operation without cascades, relations and other operations included.\n * Executes fast and efficient INSERT query.\n * Does not check if entity exist in the database, so query will fail if duplicate entity is being inserted.\n */\n insert(\n entity: QueryDeepPartialEntity<Entity> | QueryDeepPartialEntity<Entity>[],\n ): Promise<InsertResult> {\n return this.repo.insert(entity);\n }\n\n\n\n async update(item: Entity) {\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async updateById(id: number | string, item: Entity) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n async bulkUpdate(items: Entity[]) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n /**\n * Inserts a given entity into the database, unless a unique constraint conflicts then updates the entity\n * Unlike save method executes a primitive operation without cascades, relations and other operations included.\n * Executes fast and efficient INSERT ... ON CONFLICT DO UPDATE/ON DUPLICATE KEY UPDATE query.\n */\n upsert(\n entityOrEntities:\n | QueryDeepPartialEntity<Entity>\n | QueryDeepPartialEntity<Entity>[],\n conflictPathsOrOptions: string[] | UpsertOptions<Entity>,\n ): Promise<InsertResult> {\n return this.repo.upsert(entityOrEntities, conflictPathsOrOptions);\n }\n\n\n\n /**\n * Records the delete date of entities by a given criteria.\n * Unlike save method executes a primitive operation without cascades, relations and other operations included.\n * Executes fast and efficient SOFT-DELETE query.\n * Does not check if entity exist in the database.\n */\n softDelete(\n criteria:\n | string\n | string[]\n | number\n | number[]\n | Date\n | Date[]\n\n\n | FindOptionsWhere<Entity>,\n ): Promise<UpdateResult> {\n return this.repo.softDelete(criteria);\n }\n\n\n\n /**\n * Restores entities by a given criteria.\n * Unlike save method executes a primitive operation without cascades, relations and other operations included.\n * Executes fast and efficient SOFT-DELETE query.\n * Does not check if entity exist in the database.\n */\n restore(\n criteria:\n | string\n | string[]\n | number\n | number[]\n | Date\n | Date[]\n\n\n | FindOptionsWhere<Entity>,\n ): Promise<UpdateResult> {\n return this.repo.restore(criteria);\n }\n\n\n\n /**\n * Counts entities that match given options.\n * Useful for pagination.\n */\n count(options?: FindManyOptions<Entity>): Promise<number> {\n return this.repo.count(options);\n }\n\n\n\n /**\n * Counts entities that match given conditions.\n * Useful for pagination.\n */\n countBy(\n where: FindOptionsWhere<Entity> | FindOptionsWhere<Entity>[],\n ): Promise<number> {\n return this.repo.countBy(where);\n }\n\n\n\n /**\n * Finds entities that match given find options.\n */\n find(options?: FindManyOptions<Entity>): Promise<Entity[]> {\n return this.repo.find(options);\n }\n\n\n\n /**\n * Finds entities that match given find options.\n */\n findBy(\n where: FindOptionsWhere<Entity> | FindOptionsWhere<Entity>[],\n ): Promise<Entity[]> {\n return this.repo.findBy(where);\n }\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n //\n /**\n * Finds entities that match given find options.\n * Also counts all entities that match given conditions,\n * but ignores pagination settings (from and take options).\n */\n findAndCount(options?: FindManyOptions<Entity>): Promise<[Entity[], number]> {\n return this.repo.findAndCount(options);\n }\n\n\n\n /**\n * Finds entities that match given WHERE conditions.\n * Also counts all entities that match given conditions,\n * but ignores pagination settings (from and take options).\n */\n findAndCountBy(\n where: FindOptionsWhere<Entity> | FindOptionsWhere<Entity>[],\n ): Promise<[Entity[], number]> {\n return this.repo.findAndCountBy(where);\n }\n\n\n\n /**\n * Finds entities with ids.\n * Optionally find options or conditions can be applied.\n *\n * @deprecated use `findBy` method instead in conjunction with `In` operator, for example:\n *\n * .findBy({\n * id: In([1, 2, 3])\n * })\n */\n findByIds(ids: any[]): Promise<Entity[]> {\n return this.repo.findByIds(ids);\n }\n\n\n\n /**\n * Finds first entity by a given find options.\n * If entity was not found in the database - returns null.\n */\n findOne(options: FindOneOptions<Entity>): Promise<Entity | null> {\n return this.repo.findOne(options);\n }\n\n\n\n /**\n * Finds first entity that matches given where condition.\n * If entity was not found in the database - returns null.\n */\n findOneBy(\n where: FindOptionsWhere<Entity> | FindOptionsWhere<Entity>[],\n ): Promise<Entity | null> {\n return this.repo.findOneBy(where);\n }\n\n\n\n /**\n * Finds first entity that matches given id.\n * If entity was not found in the database - returns null.\n *\n * @deprecated use `findOneBy` method instead in conjunction with `In` operator, for example:\n *\n * .findOneBy({\n * id: 1 // where \"id\" is your primary column name\n * })\n */\n findOneById(\n id: number | string | Date,\n\n ): Promise<Entity | null> {\n return this.repo.findOneById(id);\n }\n\n\n\n /**\n * Finds first entity by a given find options.\n * If entity was not found in the database - rejects with error.\n */\n findOneOrFail(options: FindOneOptions<Entity>): Promise<Entity> {\n return this.repo.findOneOrFail(options);\n }\n\n\n\n /**\n * Finds first entity that matches given where condition.\n * If entity was not found in the database - rejects with error.\n */\n findOneByOrFail(\n where: FindOptionsWhere<Entity> | FindOptionsWhere<Entity>[],\n ): Promise<Entity> {\n return this.repo.findOneByOrFail(where);\n }\n\n\n\n /**\n * Executes a raw SQL query and returns a raw database results.\n * Raw query execution is supported only by relational databases (MongoDB is not supported).\n */\n query(query: string, parameters?: any[]): Promise<any> {\n return this.repo.query(query, parameters);\n }\n\n\n\n /**\n * Clears all the data from the given table/collection (truncates/drops it).\n *\n * Note: this method uses TRUNCATE and may not work as you expect in transactions on some platforms.\n * @see https://stackoverflow.com/a/5972738/925151\n */\n clear(): Promise<void> {\n return this.repo.clear();\n }\n\n\n\n /**\n * Increments some column by provided value of the entities matched given conditions.\n */\n increment(\n conditions: FindOptionsWhere<Entity>,\n propertyPath: string,\n value: number | string,\n ): Promise<UpdateResult> {\n return this.repo.increment(conditions, propertyPath, value);\n }\n\n\n\n /**\n * Decrements some column by provided value of the entities matched given conditions.\n */\n decrement(\n conditions: FindOptionsWhere<Entity>,\n propertyPath: string,\n value: number | string,\n ): Promise<UpdateResult> {\n return this.repo.decrement(conditions, propertyPath, value);\n }\n\n\n\n /**\n * @deprecated use findAndCount instead\n */\n async getAll() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n\n\n async getBy(id: number | string): Promise<Entity> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n}\n\n ;({}); // @--end-of-file-for-module=taon lib/base-classes/base-repository.ts","\n\nimport { BaseInjector } from './base-injector';\n\nexport class BaseProvider extends BaseInjector {}\n\n ;({}); // @--end-of-file-for-module=taon lib/base-classes/base-provider.ts","\n\nexport class DITaonContainer {\n private static instances = new Map();\n\n static resolve<T>(target: Function): T {\n if (DITaonContainer.instances.has(target)) {\n return DITaonContainer.instances.get(target);\n }\n\n\n const injections = []; // tokens.map(token => Container.inject<any>(token));\n\n const instance = new (target as any)(...injections);\n DITaonContainer.instances.set(target, instance);\n return instance;\n }\n\n static inject<T>(target: new (...args: any[]) => T): T {\n return new Proxy(\n {},\n {\n get: (_, propName) => {\n let instance: T =\n DITaonContainer.instances.get(target) ||\n DITaonContainer.resolve(target);\n return typeof instance[propName] === 'function'\n ? instance[propName].bind(instance)\n : instance[propName];\n },\n set: (_, propName, value) => {\n let instance: T =\n DITaonContainer.instances.get(target) ||\n DITaonContainer.resolve(target);\n instance[propName] = value;\n return true;\n },\n },\n ) as T;\n }\n}\n\n ;({}); // @--end-of-file-for-module=taon lib/dependency-injection/di-container.ts","\n\nimport { Models } from './models';\nimport { Response as ExpressResponse, Request as ExpressRequest, } from 'express';/* */\n/* */\n/* */\n\nimport { TaonHelpers } from './helpers/taon-helpers';\nimport { Helpers } from 'tnp-core/browser';\n\nexport const getResponseValue = <T>(\n response: Models.Http.Response<T>,\n options?: { req: ExpressRequest; res: ExpressResponse },\n): Promise<T> => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n};\n\n ;({}); // @--end-of-file-for-module=taon lib/get-response-value.ts","\n\nimport { Helpers } from 'tnp-core/browser';\n\nconst ENV = Helpers.isBrowser ? window['ENV'] : global['ENV'];\n\nexport { ENV };\n\n ;({}); // @--end-of-file-for-module=taon lib/env.ts","\n\n\n/* */\n/* */\n \nimport { _ } from 'tnp-core/browser';\nimport { Subscriber } from 'rxjs';\nimport { Symbols } from '../symbols';\nimport { Socket as SocketClient } from 'socket.io-client';\nimport { DefaultEventsMap } from 'socket.io/dist/typed-events';\nimport { RealtimeModels } from './realtime.models';\n\n\nexport class RealtimeSubsManager {\n private isListening = false;\n private observers: Subscriber<any>[] = [];\n constructor(private options: RealtimeModels.SubsManagerOpt) {}\n\n\n startListenIfNotStarted(\n realtime: SocketClient<DefaultEventsMap, DefaultEventsMap>,\n ) {\n if (this.options.core.ctx.disabledRealtime) {\n console.warn(`[Taon][startListenIfNotStarted] sockets are disabled`);\n return;\n }\n\n if (!realtime) {\n console.warn(\n `[Taon][startListenIfNotStarted] invalid socket connection`,\n );\n return;\n }\n\n if (!this.isListening) {\n const subscribeEvent = Symbols.REALTIME.ROOM_NAME.SUBSCRIBE.CUSTOM(\n this.options.core.ctx.contextName,\n );\n\n this.isListening = true;\n\n if (this.options.customEvent) {\n\n realtime.emit(\n subscribeEvent,\n this.options.roomName,\n );\n } else {\n if (_.isString(this.options.property)) {\n\n realtime.emit(\n Symbols.REALTIME.ROOM_NAME.SUBSCRIBE.ENTITY_PROPERTY_UPDATE_EVENTS(\n this.options.core.ctx.contextName,\n ),\n this.options.roomName,\n );\n } else {\n\n realtime.emit(\n Symbols.REALTIME.ROOM_NAME.SUBSCRIBE.ENTITY_UPDATE_EVENTS(\n this.options.core.ctx.contextName,\n ),\n this.options.roomName,\n );\n }\n }\n\n\n realtime.on(this.options.roomName, data => {\n this.update(data);\n });\n }\n }\n\n\n\n add(observer: Subscriber<any>) {\n\n this.observers.push(observer);\n }\n\n\n\n remove(observer: Subscriber<any>) {\n\n this.observers = this.observers.filter(obs => obs !== observer);\n if (this.observers.length === 0) {\n\n this.isListening = false;\n const { core, customEvent, roomName, property } = this.options;\n\n const realtime = core.FE_REALTIME;\n\n if (customEvent) {\n realtime.emit(\n Symbols.REALTIME.ROOM_NAME.UNSUBSCRIBE.CUSTOM(\n this.options.core.ctx.contextName,\n ),\n roomName,\n );\n } else {\n if (_.isString(property)) {\n realtime.emit(\n Symbols.REALTIME.ROOM_NAME.UNSUBSCRIBE.ENTITY_PROPERTY_UPDATE_EVENTS(\n this.options.core.ctx.contextName,\n ),\n roomName,\n );\n } else {\n realtime.emit(\n Symbols.REALTIME.ROOM_NAME.UNSUBSCRIBE.ENTITY_UPDATE_EVENTS(\n this.options.core.ctx.contextName,\n ),\n roomName,\n );\n }\n }\n }\n }\n\n\n\n private update(data: any) {\n\n const ngZone = this.options.core.ctx.ngZone;\n\n\n this.observers.forEach(observer => {\n\n if (!observer.closed) {\n if (ngZone) {\n ngZone.run(() => {\n observer.next(data);\n });\n } else {\n observer.next(data);\n }\n }\n });\n }\n\n}\n\n ;({}); // @--end-of-file-for-module=taon lib/realtime/realtime-subs-manager.ts","\n\n\nimport { _ } from 'tnp-core/browser';\nimport { RealtimeCore } from './realtime-core';\nimport { Symbols } from '../symbols';\nimport { Observable } from 'rxjs';\nimport { ClassHelpers } from '../helpers/class-helpers';\nimport { RealtimeSubsManager } from './realtime-subs-manager';\nimport { RealtimeModels } from './realtime.models';\nimport type { BaseEntity } from '../base-classes/base-entity';\nimport { Helpers } from 'tnp-core/browser';\n\n\nexport class RealtimeClient {\n private subsmanagers: { [path: string]: RealtimeSubsManager } = {};\n constructor(private core: RealtimeCore) {\n this.core = core;\n if (!core.ctx.disabledRealtime) {\n\n this.init();\n\n }\n }\n\n\n private init() {\n\n const nspPath = {\n global: this.core.pathFor(),\n realtime: this.core.pathFor(\n Symbols.REALTIME.NAMESPACE(this.core.ctx.contextName),\n ),\n };\n\n this.core.ctx.logRealtime &&\n console.info(\n '[CLIENT] NAMESPACE GLOBAL ',\n nspPath.global.href + ` host: ${this.core.ctx.host}`,\n );\n\n this.core.ctx.logRealtime &&\n console.info(\n '[CLIENT] NAMESPACE REALTIME',\n nspPath.realtime.href + ` host: ${this.core.ctx.host}`,\n );\n\n\n\n this.core.FE = this.core.strategy.io(nspPath.global.origin, {\n path: nspPath.global.pathname,\n });\n\n if (this.core.FE.on) {\n this.core.FE.on('connect', () => {\n\n\n\n console.info(\n `[CLIENT] conented to GLOBAL namespace ${this.core.FE.id} of host: ${this.core.ctx.host}`,\n );\n });\n }\n\n\n\n\n this.core.FE_REALTIME = this.core.strategy.io(nspPath.realtime.origin, {\n path: nspPath.realtime.pathname,\n });\n\n if (this.core.FE_REALTIME.on) {\n this.core.FE_REALTIME.on('connect', () => {\n\n\n\n console.info(\n `[CLIENT] conented to REALTIME namespace ${this.core.FE_REALTIME.id} host: ${this.core.ctx.host}`,\n );\n });\n }\n\n\n }\n\n\n\n /**\n * Changes trigger on backend needs to be done manually.. example code:\n *\n * ...\n * Context.Realtime.Server.TrigggerEntityChanges(myEntityInstance);\n * ...\n */\n listenChangesEntity(\n entityClassFn: Function,\n idOrUniqValue: any,\n options: RealtimeModels.ChangeOption,\n ) {\n options = options || ({} as any);\n\n\n const { property, customEvent } = options;\n const className = !customEvent && ClassHelpers.getName(entityClassFn);\n\n if (_.isString(property)) {\n if (property.trim() === '') {\n throw new Error(\n `[Taon][listenChangesEntity.. incorect property '' for ${className}`,\n );\n }\n }\n\n\n return new Observable(observer => {\n\n\n if (this.core.ctx.disabledRealtime) {\n console.error(`[Taon][realtime rxjs] remove taon config flag:\n\n ...\n disabledRealtime: true\n ...\n\nto use socket realtime connection;\n `);\n return () => {\n\n };\n }\n\n let roomName: string;\n\n if (customEvent) {\n roomName = Symbols.REALTIME.ROOM_NAME.CUSTOM(\n this.core.ctx.contextName,\n customEvent,\n );\n } else {\n roomName = _.isString(property)\n ? Symbols.REALTIME.ROOM_NAME.UPDATE_ENTITY_PROPERTY(\n this.core.ctx.contextName,\n className,\n property,\n idOrUniqValue,\n )\n : Symbols.REALTIME.ROOM_NAME.UPDATE_ENTITY(\n this.core.ctx.contextName,\n className,\n idOrUniqValue,\n );\n }\n\n const roomSubOptions: RealtimeModels.SubsManagerOpt = {\n core: this.core,\n property,\n roomName,\n customEvent,\n };\n\n\n const subManagerId = this.getRoomIdFrom(roomSubOptions);\n if (!this.subsmanagers[subManagerId]) {\n this.subsmanagers[subManagerId] = new RealtimeSubsManager(\n roomSubOptions,\n );\n }\n const inst = this.subsmanagers[subManagerId];\n inst.add(observer);\n\n inst.startListenIfNotStarted(this.core.FE_REALTIME);\n\n return () => {\n inst.remove(observer);\n };\n });\n }\n\n\n\n\n listenChangesEntityTable(entityClassFn: Function) {\n const className = ClassHelpers.getName(entityClassFn);\n return this.listenChangesEntity(entityClassFn, void 0, {\n customEvent: Symbols.REALTIME.TABLE_CHANGE(\n this.core.ctx.contextName,\n className,\n ),\n });\n }\n\n\n\n\n /**\n * Changes trigger on backend needs to be done manually.. example code:\n *\n * ...\n * Context.Realtime.Server.TrigggerEntityChanges(myEntityInstance);\n * // or\n * Context.Realtime.Server.TrigggerEntityPropertyChanges(myEntityInstance,{ property: 'geolocationX' });\n * ...\n */\n listenChangesEntityObj<T extends BaseEntity>(\n entity: T,\n options?: RealtimeModels.ChangeOption,\n ) {\n const classFn = ClassHelpers.getClassFnFromObject(entity);\n const uniqueKey = ClassHelpers.getUniquKey(classFn);\n return this.listenChangesEntity(classFn, entity[uniqueKey], options);\n }\n\n\n\n listenChangesCustomEvent(customEvent: string) {\n return this.listenChangesEntity(void 0, void 0, {\n customEvent,\n });\n }\n\n\n\n private getRoomIdFrom(options: RealtimeModels.SubsManagerOpt) {\n const url = new URL(options.core.ctx.host);\n return `${this.core.ctx.contextName}:${url.origin}|${options.roomName}|${options.property}|${options.customEvent}`;\n }\n\n}\n\n ;({}); // @--end-of-file-for-module=taon lib/realtime/realtime-client.ts","\n\n\nimport { Symbols } from '../symbols';\nimport { Helpers, _ } from 'tnp-core/browser';\nimport { RealtimeCore } from './realtime-core';\nimport { ClassHelpers } from '../helpers/class-helpers';\nimport type { BaseEntity } from '../base-classes/base-entity';\n\n\nconst SOCKET_EVENT_DEBOUNCE = 500;\n\nexport class RealtimeServer {\n private jobs = {};\n constructor(private core: RealtimeCore) {\n this.core = core;\n if (!core.ctx.disabledRealtime) {\n/* */\n/* */\n \n }\n }\n\n\n private init() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n }\n\n\n\n\n private triggerChanges(\n entityObjOrClass: Function,\n property?: string,\n valueOfUniquPropery?: number | string,\n customEvent?: string,\n customEventData?: any,\n ) {\n\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n }\n\n\n\n public trigggerEntityChanges(\n entityObjOrClass: Function,\n idToTrigger?: number | string,\n ) {\n if (this.core.ctx.disabledRealtime) {\n const className = ClassHelpers.getName(entityObjOrClass);\n\n console.warn(\n `[Taon][TrigggerEntityChanges] Entity \"${className}' is not realtime`,\n );\n return;\n }\n this.triggerChanges(entityObjOrClass as any, void 0, idToTrigger);\n }\n\n\n\n public trigggerEntityPropertyChanges<ENTITY extends BaseEntity>(\n entityObjOrClass: new (...args) => ENTITY,\n property: keyof ENTITY | (keyof ENTITY)[],\n idToTrigger?: number | string,\n ) {\n if (this.core.ctx.disabledRealtime) {\n const className = ClassHelpers.getName(entityObjOrClass);\n\n console.warn(\n `[Taon][TrigggerEntityPropertyChanges][property=${\n property as string\n }] Entity \"${className}' is not realtime`,\n );\n return;\n }\n\n if (_.isArray(property)) {\n property.forEach(propertyFromArr => {\n this.triggerChanges(\n entityObjOrClass,\n propertyFromArr as any,\n idToTrigger,\n );\n });\n } else {\n this.triggerChanges(entityObjOrClass, property as any, idToTrigger);\n }\n }\n\n\n\n public triggerCustomEvent(customEvent: string, dataToPush: any) {\n this.triggerChanges(void 0, void 0, void 0, customEvent, dataToPush);\n }\n\n\n\n public trigggerEntityTableChanges(entityClass: Function) {\n const className = ClassHelpers.getName(entityClass);\n if (this.core.ctx.disabledRealtime) {\n console.warn(\n `[Taon][TrigggerEntityTableChanges] Entity \"${className}' is not realtime`,\n );\n return;\n }\n\n this.triggerChanges(\n entityClass as any,\n void 0,\n void 0,\n Symbols.REALTIME.TABLE_CHANGE(this.core.ctx.contextName, className),\n );\n }\n\n}\n\n ;({}); // @--end-of-file-for-module=taon lib/realtime/realtime-server.ts","\n\nimport { EndpointContext } from '../../endpoint-context';\nimport type { Server } from 'socket.io';\nimport type { io } from 'socket.io-client';\n\nexport abstract class RealtimeStrategy {\n constructor(protected ctx: EndpointContext) {}\n\n private testTypes() {\n\n }\n\n abstract establishConnection(): void;\n\n abstract readonly io: typeof io;\n abstract readonly Server: typeof Server;\n abstract toString(): string;\n}\n\n ;({}); // @--end-of-file-for-module=taon lib/realtime/realtime-strategy/realtime-strategy.ts","\n\nimport { ipcRenderer } from 'electron';\n\nimport { RendererEventListeners } from './realtime-strategy-ipc.models';\nimport { Helpers } from 'tnp-core/browser';\n\nexport class IpcRendererNamespace {\n ipcRenderer!: typeof ipcRenderer;\n private listeners: RendererEventListeners = {};\n\n constructor(public name: string) {\n this.ipcRenderer = (window as any).require('electron').ipcRenderer;\n }\n\n on(eventName: string, callback: (event: any, ...args: any[]) => void) {\n if (!this.listeners[eventName]) {\n this.listeners[eventName] = [];\n }\n this.listeners[eventName].push(callback);\n const listenToEvent = `(${this.name}) \"${eventName}\"`;\n\n this.ipcRenderer.on(listenToEvent, callback);\n if (eventName === 'connect') {\n this.emit('connection');\n } else {\n this.emit(eventName);\n }\n }\n\n off(event: string, callback?: (event: any, ...args: any[]) => void) {\n if (!this.listeners[event]) return;\n\n if (callback) {\n this.listeners[event] = this.listeners[event].filter(\n listener => listener !== callback,\n );\n } else {\n delete this.listeners[event];\n }\n const removeListener = `(${this.name}) \"${event}\"`;\n\n\n\n\n this.ipcRenderer.removeListener(removeListener, callback);\n }\n\n emit(event: string, ...args: any[]) {\n const emitEvent = `(${this.name}) \"${event}\"`;\n\n\n this.ipcRenderer.send(emitEvent, ...args);\n }\n}\n\n ;({}); // @--end-of-file-for-module=taon lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-namespace.ts","\n\nimport { IpcRendererNamespace } from './realtime-strategy-ipc-renderer-namespace';\n\nexport class IpcRendererWrapper {\n private namespaces: { [namespace: string]: IpcRendererNamespace } = {\n '/': new IpcRendererNamespace('/'),\n };\n private connected = false;\n\n constructor(public contextName: string) {\n\n }\n\n of(namespace: string): IpcRendererNamespace {\n\n\n\n if (!this.namespaces[namespace]) {\n this.namespaces[namespace] = new IpcRendererNamespace(\n namespace\n );\n }\n return this.namespaces[namespace];\n }\n\n on(event: string, callback: (event: any, ...args: any[]) => void) {\n\n\n\n\n\n\n\n\n\n this.namespaces['/'].on(event, callback);\n }\n\n emit(event: string, ...args: any[]) {\n\n\n\n this.namespaces['/'].emit(event, ...args);\n }\n}\n\n ;({}); // @--end-of-file-for-module=taon lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-wrapper.ts","\n\nimport { Server } from 'socket.io';\nimport { EndpointContext } from '../../endpoint-context';\nimport { RealtimeStrategy } from './realtime-strategy';\nimport { ioIpcStrategy as IoIpcStrategy } from './realtime-strategy-ipc-models/realtime-strategy-ipc-main-wrapper';\nimport { IpcRendererWrapper } from './realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-wrapper';\nimport type { io } from 'socket.io-client';\n\n/**\n * Purpose:\n * - backend-browser communication between 2 processes in electron mode\n */\nexport class RealtimeStrategyIpc extends RealtimeStrategy {\n toString(): string {\n return 'ipc';\n }\n establishConnection(): void {\n throw new Error('Method not implemented.');\n }\n constructor(protected ctx: EndpointContext) {\n super(ctx);\n }\n\n contextsServers: { [contextName: string]: Server } = {};\n contextsIO: { [contextName: string]: typeof io } = {};\n\n get io() {\n\n return ((__, { path: namespacePath }) => {\n if (this.contextsIO[namespacePath]) {\n return this.contextsIO[namespacePath];\n }\n const wrap = new IpcRendererWrapper(this.ctx.contextName);\n\n const nsp = wrap.of(namespacePath);\n this.contextsIO[namespacePath] = nsp as any;\n return nsp;\n }) as any;\n\n return void 0;\n }\n get Server() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n return void 0;\n }\n}\n\n ;({}); // @--end-of-file-for-module=taon lib/realtime/realtime-strategy/realtime-strategy-ipc.ts","\n\nimport { MockSocket } from \"./realtime-strategy-mock-socket\";\nimport { Rooms } from \"./realtime-strategy-mock.models\";\nexport class MockNamespace {\n private rooms: Rooms = {};\n private sockets: Set<MockSocket> = new Set();\n\n constructor(public name: string, public contextName: string) {}\n\n on(event: string, callback: (socket: MockSocket) => void) {\n if (event === 'connection') {\n this.sockets.forEach(socket => callback(socket));\n }\n }\n\n emit(event: string, data?: any) {\n this.sockets.forEach(socket => socket.emit(event, data));\n }\n\n to(room: string) {\n return {\n emit: (event: string, data?: any) => {\n if (this.rooms[room]) {\n this.rooms[room].forEach(socket => socket.emit(event, data));\n }\n }\n };\n }\n\n joinRoom(socket: MockSocket, room: string) {\n if (!this.rooms[room]) {\n this.rooms[room] = new Set();\n }\n this.rooms[room].add(socket);\n }\n\n leaveRoom(socket: MockSocket, room: string) {\n if (this.rooms[room]) {\n this.rooms[room].delete(socket);\n if (this.rooms[room].size === 0) {\n delete this.rooms[room];\n }\n }\n }\n\n addSocket(socket: MockSocket) {\n this.sockets.add(socket);\n }\n\n removeSocket(socket: MockSocket) {\n this.sockets.delete(socket);\n }\n}\n\n ;({}); // @--end-of-file-for-module=taon lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-namespaces.ts","\n\nimport { MockNamespace } from \"./realtime-strategy-mock-namespaces\";\nimport { EventListeners } from \"./realtime-strategy-mock.models\";\n\n\nexport class MockSocket {\n private listeners: EventListeners = {};\n\n constructor(public id: string, private namespace: MockNamespace) {\n this.namespace.addSocket(this);\n }\n\n on(event: string, callback: (data?: any) => void) {\n if (!this.listeners[event]) {\n this.listeners[event] = [];\n }\n this.listeners[event].push(callback);\n }\n\n off(event: string, callback?: (data?: any) => void) {\n if (!this.listeners[event]) return;\n\n if (callback) {\n this.listeners[event] = this.listeners[event].filter(listener => listener !== callback);\n } else {\n delete this.listeners[event];\n }\n }\n\n emit(event: string, data?: any) {\n if (this.listeners[event]) {\n this.listeners[event].forEach(listener => listener(data));\n }\n }\n\n join(room: string) {\n this.namespace.joinRoom(this, room);\n }\n\n leave(room: string) {\n this.namespace.leaveRoom(this, room);\n }\n\n disconnect() {\n this.emit('disconnect');\n this.namespace.removeSocket(this);\n this.listeners = {};\n }\n}\n\n ;({}); // @--end-of-file-for-module=taon lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-socket.ts","\n\nimport { MockNamespace } from \"./realtime-strategy-mock-namespaces\";\nimport { MockSocket } from \"./realtime-strategy-mock-socket\";\nimport { Namespaces } from \"./realtime-strategy-mock.models\";\n\nexport class MockServer {\n private namespaces: Namespaces = {\n '/': new MockNamespace('/', this.contextName)\n };\n\n constructor(public contextName: string) {}\n\n of(namespace: string): MockNamespace {\n if (!this.namespaces[namespace]) {\n this.namespaces[namespace] = new MockNamespace(namespace, this.contextName);\n }\n return this.namespaces[namespace];\n }\n\n on(event: string, callback: (socket: MockSocket) => void) {\n if (event === 'connection') {\n this.namespaces['/'].on('connection', callback);\n }\n }\n\n emit(event: string, data?: any) {\n this.namespaces['/'].emit(event, data);\n }\n\n connect(id: string, namespace: string = '/'): MockSocket {\n const ns = this.of(namespace);\n const socket = new MockSocket(id, ns);\n ns.on('connection', (socket: MockSocket) => {\n socket.emit('connect');\n });\n return socket;\n }\n}\n\n ;({}); // @--end-of-file-for-module=taon lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-server.ts","\n\nimport { MockServer } from \"./realtime-strategy-mock-server\";\nimport { MockSocket } from \"./realtime-strategy-mock-socket\";\nimport { EventListeners } from \"./realtime-strategy-mock.models\";\n\n\nclass MockClientSocket {\n private listeners: EventListeners = {};\n\n constructor(private serverSocket: MockSocket, public contextName: string) {\n serverSocket.on('message', (data) => this.emit('message', data));\n }\n\n on(event: string, callback: (data?: any) => void) {\n if (!this.listeners[event]) {\n this.listeners[event] = [];\n }\n this.listeners[event].push(callback);\n }\n\n off(event: string, callback?: (data?: any) => void) {\n if (!this.listeners[event]) return;\n\n if (callback) {\n this.listeners[event] = this.listeners[event].filter(listener => listener !== callback);\n } else {\n delete this.listeners[event];\n }\n }\n\n emit(event: string, data?: any) {\n this.serverSocket.emit(event, data);\n if (this.listeners[event]) {\n this.listeners[event].forEach(listener => listener(data));\n }\n }\n\n disconnect() {\n this.serverSocket.disconnect();\n this.listeners = {};\n }\n\n join(room: string) {\n this.serverSocket.join(room);\n }\n\n leave(room: string) {\n this.serverSocket.leave(room);\n }\n}\n\nexport function mockIo(server: MockServer) {\n return (namespace: string = '/'): MockClientSocket => {\n const socketId = Math.random().toString(36).substring(2);\n const serverSocket = server.connect(socketId, namespace);\n return new MockClientSocket(serverSocket, server.contextName);\n };\n}\n\n\n ;({}); // @--end-of-file-for-module=taon lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-client.ts","\n\nexport * from './realtime-strategy-mock-server';\nexport * from './realtime-strategy-mock-client';\n\n\n ;({}); // @--end-of-file-for-module=taon lib/realtime/realtime-strategy/realtime-strategy-mock-models/index.ts","\n\nimport { Server } from 'socket.io';\nimport { EndpointContext } from '../../endpoint-context';\nimport { RealtimeStrategy } from './realtime-strategy';\nimport { MockServer, mockIo } from './realtime-strategy-mock-models'\n\n/**\n * Purpose:\n * - browser-browser communication mock (in websql mode)\n */\nexport class RealtimeStrategyMock extends RealtimeStrategy {\n toString(): string {\n return 'mock';\n }\n\n\n constructor(protected ctx: EndpointContext) {\n super(ctx);\n }\n\n get Server() {\n return MockServer as any;\n };\n\n get io() {\n return mockIo as any;\n }\n\n establishConnection(): void {\n throw new Error('Method not implemented.');\n }\n\n}\n\n ;({}); // @--end-of-file-for-module=taon lib/realtime/realtime-strategy/realtime-strategy-mock.ts","\n\nimport { EndpointContext } from '../../endpoint-context';\nimport { RealtimeStrategy } from './realtime-strategy';\n/* */\n/* */\n \nimport { io } from 'socket.io-client';\n\n/**\n * Purpose:\n * - backend-browser communication\n * - backend-backend communication\n */\nexport class RealtimeStrategySocketIO extends RealtimeStrategy {\n toString(): string {\n return 'socket-io';\n }\n constructor(protected ctx: EndpointContext) {\n super(ctx);\n }\n\n get Server() {\n/* */\n/* */\n return (void 0);\n };\n\n get io() {\n return io;\n }\n\n establishConnection(): void {\n throw new Error('Method not implemented.');\n }\n}\n\n\n\n ;({}); // @--end-of-file-for-module=taon lib/realtime/realtime-strategy/realtime-strategy-socket-io.ts","\n\nexport * from './realtime-strategy';\nexport * from './realtime-strategy-ipc';\nexport * from './realtime-strategy-mock';\nexport * from './realtime-strategy-socket-io';\n\n ;({}); // @--end-of-file-for-module=taon lib/realtime/realtime-strategy/index.ts","\n\n\nimport { Socket as SocketClient } from 'socket.io-client';\nimport type { EndpointContext } from '../endpoint-context';\nimport { RealtimeClient } from './realtime-client';\nimport { RealtimeServer } from './realtime-server';\nimport type { RealtimeStrategy } from './realtime-strategy';\nimport { RealtimeStrategyIpc, RealtimeStrategyMock, RealtimeStrategySocketIO, } from './realtime-strategy';/* */\n/* */\n/* */\n/* */\n\nimport { DefaultEventsMap } from 'socket.io/dist/typed-events';\nimport { Server } from 'socket.io';\nimport { Helpers } from 'tnp-core/browser';\n\n\n/**\n * Realtime class\n * - mock (when browser-browser)\n * - sockets (from socket io when backend-browser)\n * - ipc (when electron is used or between processes)\n * - webworker (when webworker is used in browser or nodejs)\n */\nexport class RealtimeCore {\n\n readonly allHttpMethods = [\n 'GET',\n 'POST',\n 'PUT',\n 'DELETE',\n 'PATCH',\n 'OPTIONS',\n 'HEAD',\n ];\n public readonly client: RealtimeClient;\n public readonly server: RealtimeServer;\n public readonly strategy: RealtimeStrategy;\n /**\n * global FE socket\n */\n public FE: SocketClient<DefaultEventsMap, DefaultEventsMap>;\n /**\n * socket for namespaces and rooms\n */\n public FE_REALTIME: SocketClient<DefaultEventsMap, DefaultEventsMap>;\n /**\n * global BE socket\n */\n public BE: Server<DefaultEventsMap, DefaultEventsMap, DefaultEventsMap, any>;\n /**\n * socket for namespaces and rooms\n */\n public BE_REALTIME: Server<\n DefaultEventsMap,\n DefaultEventsMap,\n DefaultEventsMap,\n any\n >;\n\n\n\n constructor(public ctx: EndpointContext) {\n this.strategy = this.resolveStrategy();\n ctx.logFramework &&\n console.log(`[taon] realtime strategy: ${this.strategy}`);\n this.client = new RealtimeClient(this);\n this.server = new RealtimeServer(this);\n }\n\n\n\n private resolveStrategy(): RealtimeStrategy {\n if (this.ctx.mode === 'backend-frontend(websql)') {\n return new RealtimeStrategyMock(this.ctx);\n }\n if (this.ctx.mode === 'backend-frontend(ipc-electron)') {\n return new RealtimeStrategyIpc(this.ctx);\n }\n\n\n\n\n\n\n return new RealtimeStrategySocketIO(this.ctx);\n }\n\n\n\n public pathFor(namespace?: string) {\n const uri = this.ctx.uri;\n let nsp = namespace ? namespace : '';\n nsp = nsp === '/' ? '' : nsp;\n const pathname = uri.pathname !== '/' ? uri.pathname : '';\n let prefix = `taonContext-`;\n if (Helpers.isElectron) {\n prefix = ``;\n }\n const href = `${uri.origin}${pathname}/${prefix}${nsp}`;\n\n return new URL(href) as URL;\n }\n\n}\n\n ;({}); // @--end-of-file-for-module=taon lib/realtime/realtime-core.ts","\n\n/* eslint-disable @typescript-eslint/typedef */\n\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n\nimport { TaonAdmin } from './ui/taon-admin-mode-configuration/taon-admin.service';\n\nimport { Models } from './models';\nimport { ClassHelpers } from './helpers/class-helpers';\nimport { Symbols } from './symbols';\nimport { _, Helpers } from 'tnp-core/browser';\nimport type { createContext } from './create-context';\nimport { DITaonContainer } from './dependency-injection/di-container';\nimport { TaonControllerOptions } from './decorators/classes/controller-decorator';\nimport { TaonHelpers } from './helpers/taon-helpers';\nimport { Mapping, Models as ModelsNg2Rest, Resource, RestHeaders, } from 'ng2-rest/browser';/* */\n/* */\n/* */\n/* */\n/* */\n\nimport { JSON10 } from 'json10/browser';\nimport { path } from 'tnp-core/browser';\nimport { from, Subject } from 'rxjs';\nimport { EntityProcess } from './entity-process';\nimport { getResponseValue } from './get-response-value';\nimport type { Application } from 'express';\nimport axios from 'axios';\nimport type { NgZone } from '@angular/core';\n\nimport { DataSource, DataSourceOptions, getMetadataArgsStorage, } from 'taon-typeorm/browser';/* */\n/* */\n/* */\n/* */\n\nimport { TaonEntityOptions } from './decorators/classes/entity-decorator';\nimport type { Server } from 'http';\nimport { ENV } from './env';\nimport type { BaseClass } from './base-classes/base-class';\nimport { RealtimeCore } from './realtime/realtime-core';\nimport { TaonSubscriberOptions } from './decorators/classes/subscriber-decorator';\nimport { BaseSubscriberForEntity } from './base-classes/base-subscriber-for-entity';\n\n\nexport class EndpointContext {\n\n\n\n private static ngZone: NgZone;\n\n static initNgZone(ngZone: NgZone) {\n\n this.ngZone = ngZone;\n\n }\n public static findForTraget(classFnOrObject: any): EndpointContext {\n const obj = ClassHelpers.getClassFnFromObject(classFnOrObject) || {};\n return (\n classFnOrObject[Symbols.ctxInClassOrClassObj] ||\n obj[Symbols.ctxInClassOrClassObj]\n );\n }\n\n\n\n\n\n disabledRealtime: boolean = false;\n /**\n * check whether context is inited\n * (with init() function )\n */\n public inited: boolean = false;\n\n\n private readonly localInstaceObjSymbol = Symbol('localInstaceObjSymbol');\n\n\n /**\n * all instances of classes from context\n * key is class name\n */\n public readonly allClassesInstances = {};\n\n\n\n private readonly classInstancesByNameObj = {};\n\n\n\n private readonly objWithClassesInstancesArr = {};\n\n\n\n public readonly activeRoutes: {\n routePath: string;\n method: Models.Http.Rest.HttpMethod;\n }[] = [];\n\n\n\n private injectableTypesfromContexts = [\n Models.ClassType.CONTROLLER,\n Models.ClassType.PROVIDER,\n Models.ClassType.REPOSITORY,\n Models.ClassType.SUBSCRIBER,\n ];\n\n\n private allTypesfromContexts = [\n ...this.injectableTypesfromContexts,\n Models.ClassType.ENTITY,\n ];\n\n\n public expressApp: Application = {} as any;\n\n\n\n public serverTcpUdp: Server;\n\n\n\n databaseConfig?: Models.DatabaseConfig;\n private autoGeneratedConfig?: Models.DatabaseConfig;\n\n\n\n mode: Models.FrameworkMode;\n\n\n\n session?: Models.ISession;\n\n\n\n public connection: DataSource;\n\n\n\n private entitiesTriggers = {};\n\n\n\n private realtime: RealtimeCore;\n get realtimeClient() {\n return this.realtime.client;\n }\n get realtimeServer() {\n return this.realtime.server;\n }\n\n\n\n /**\n * available after init()\n */\n public config: Models.ContextOptions<any, any, any, any, any, any>;\n\n\n\n get logHttp(): boolean {\n if (_.isObject(this.config?.logs)) {\n return !!(this.config.logs as Models.ContectionOptionsLogs).http;\n }\n return this.config?.logs === true;\n }\n\n get logRealtime(): boolean {\n if (_.isObject(this.config?.logs)) {\n return !!(this.config.logs as Models.ContectionOptionsLogs).realtime;\n }\n return this.config?.logs === true;\n }\n\n get logFramework(): boolean {\n if (_.isObject(this.config?.logs)) {\n return !!(this.config.logs as Models.ContectionOptionsLogs).framework;\n }\n return this.config?.logs === true;\n }\n\n get logDb(): boolean {\n if (_.isObject(this.config?.logs)) {\n return !!(this.config.logs as Models.ContectionOptionsLogs).db;\n }\n return this.config?.logs === true;\n }\n\n\n\n\n\n constructor(\n private originalConfig: Models.ContextOptions<any, any, any, any, any, any>,\n private configFn: (\n env: any,\n ) => Models.ContextOptions<any, any, any, any, any, any>,\n ) {}\n\n\n\n public async init(options?: { initFromRecrusiveContextResovle?: boolean }) {\n const { initFromRecrusiveContextResovle } = options || {}; // TODO use it ?\n\n this.inited = true;\n this.config = this.configFn(ENV);\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n if (this.config.host) {\n this.mode = 'backend-frontend(tcp+udp)';\n/* */\n/* */\n \n }\n if (this.config.remoteHost) {\n if (this.config.host) {\n Helpers.error(\n `[taon] You can't have remoteHost and host at the same time`,\n false,\n true,\n );\n }\n this.mode = 'remote-backend(tcp+udp)';\n }\n\n if (this.config.useIpcWhenElectron && Helpers.isElectron) {\n this.mode = 'backend-frontend(ipc-electron)';\n }\n\n if (!this.mode && !this.config.abstract) {\n Helpers.error(\n `[taon] Context \"${this.contextName}\": You need to provide host or remoteHost or useIpcWhenElectron`,\n false,\n true,\n );\n/* */\n/* */\n \n }\n\n\n\n if (this.config.database === true) {\n this.databaseConfig = this.getAutoGeneratedConfig();\n } else if (_.isObject(this.config.database)) {\n this.databaseConfig = _.cloneDeep(\n this.config.database,\n ) as Models.DatabaseConfig;\n }\n\n\n\n if (this.config.session) {\n this.session = _.cloneDeep(this.config.session);\n const oneHour = 1000 * 60 * 60 * 1; // 24;\n if (!this.session.cookieMaxAge) {\n this.session.cookieMaxAge = oneHour;\n }\n\n axios.defaults.withCredentials = true;\n }\n\n\n\n this.config.contexts = this.config.contexts || {};\n this.config.entities = this.config.entities || {};\n this.config.controllers = this.config.controllers || {};\n this.config.repositories = this.config.repositories || {};\n this.config.providers = this.config.providers || {};\n this.config.subscribers = this.config.subscribers || {};\n\n this.config.entities = {\n ...(await this.getRecrusiveClassesfromContextsObj(\n Models.ClassType.ENTITY,\n )),\n ...this.config.entities,\n };\n\n this.config.controllers = {\n ...(await this.getRecrusiveClassesfromContextsObj(\n Models.ClassType.CONTROLLER,\n )),\n ...this.config.controllers,\n };\n\n this.config.providers = {\n ...(await this.getRecrusiveClassesfromContextsObj(\n Models.ClassType.PROVIDER,\n )),\n ...this.config.providers,\n };\n\n this.config.subscribers = {\n ...(await this.getRecrusiveClassesfromContextsObj(\n Models.ClassType.SUBSCRIBER,\n )),\n ...this.config.subscribers,\n };\n\n this.config.repositories = {\n ...(await this.getRecrusiveClassesfromContextsObj(\n Models.ClassType.REPOSITORY,\n )),\n ...this.config.repositories,\n };\n\n\n\n\n\n this.config.controllers = this.cloneClassesObjWithNewMetadata({\n classesInput: this.config.controllers,\n config: this.config,\n ctx: this,\n classType: Models.ClassType.CONTROLLER,\n });\n this.config.repositories = this.cloneClassesObjWithNewMetadata({\n classesInput: this.config.repositories,\n config: this.config,\n ctx: this,\n classType: Models.ClassType.REPOSITORY,\n });\n this.config.providers = this.cloneClassesObjWithNewMetadata({\n classesInput: this.config.providers,\n config: this.config,\n ctx: this,\n classType: Models.ClassType.PROVIDER,\n });\n this.config.subscribers = this.cloneClassesObjWithNewMetadata({\n classesInput: this.config.subscribers,\n config: this.config,\n ctx: this,\n classType: Models.ClassType.SUBSCRIBER,\n });\n\n\n\n for (const classTypeName of this.injectableTypesfromContexts) {\n this.classInstancesByNameObj[classTypeName] = {};\n this.objWithClassesInstancesArr[classTypeName] = [];\n }\n\n for (const classTypeName of this.injectableTypesfromContexts) {\n await this.createInstances(\n this.config[Models.ClassTypeKey[classTypeName]],\n classTypeName,\n );\n }\n\n\n\n if (this.mode === 'backend-frontend(tcp+udp)' && !this.config.abstract) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n }\n\n\n\n if (!this.config.abstract) {\n this.disabledRealtime = !!this.config.disabledRealtime;\n/* */\n/* */\n/* */\n/* */\n/* */\n \n this.realtime = new RealtimeCore(this);\n }\n\n\n\n\n if (this.config.abstract) {\n this.logFramework &&\n Helpers.info(\n `[taon] Create abstract context: ${this.config.contextName}`,\n );\n } else {\n if (this.config.remoteHost) {\n this.logFramework &&\n Helpers.info(\n `[taon] Create context for remote host: ${this.config.remoteHost}`,\n );\n } else {\n this.logFramework &&\n Helpers.info(\n `[taon] Create context for host: ${this.config.host}`,\n );\n }\n }\n\n\n\n Object.keys(this.config).forEach(key => {\n this.originalConfig[key] = this.config[key];\n });\n }\n\n\n\n private getAutoGeneratedConfig(): Models.DatabaseConfig {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n\n\n get ngZone(): any {\n\n return EndpointContext.ngZone;\n\n return;\n }\n\n\n\n startServer() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n\n\n displayRoutes(app) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n }\n\n\n\n get modeAllowsDatabaseCreation() {\n return (\n this.mode === 'backend-frontend(tcp+udp)' ||\n this.mode === 'backend-frontend(websql)' ||\n this.mode === 'backend-frontend(ipc-electron)'\n );\n }\n\n\n\n\n private cloneClassWithNewMetadata = <\n T extends { new (...args: any[]): any },\n >({\n BaseClass,\n className,\n config,\n ctx,\n classType,\n }: {\n BaseClass: T;\n className: string;\n config: Models.ContextOptions<any, any, any, any, any, any>;\n ctx: EndpointContext;\n classType: Models.ClassType;\n }): T => {\n\n const cloneClass = () => {\n if (\n BaseClass[Symbols.fullClassNameStaticProperty] ===\n `${ctx.contextName}.${className}`\n ) {\n return BaseClass;\n }\n return class extends BaseClass {\n\n\n // @ts-ignore\n static [Symbols.orignalClass] = BaseClass;\n\n // @ts-ignore\n static [Symbols.fullClassNameStaticProperty] = `${ctx.contextName}.${className}`;\n\n // @ts-ignore\n static [Symbols.classNameStaticProperty] = className;\n\n static [Symbols.ctxInClassOrClassObj] = ctx;\n\n static __getFullPathForClass__(arr = []) {\n const name = this[Symbols.fullClassNameStaticProperty];\n arr.push(name);\n // @ts-ignore\n if (\n this[Symbols.orignalClass] && // @ts-ignore\n this[Symbols.orignalClass].__getFullPathForClass__\n ) {\n // @ts-ignore\n this[Symbols.orignalClass].__getFullPathForClass__(arr);\n }\n return arr.join('/');\n }\n static get fullPathForClass(): string {\n return this.__getFullPathForClass__();\n }\n [Symbols.ctxInClassOrClassObj] = ctx;\n\n\n };\n };\n\n const cloneClassFunction = cloneClass();\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n return cloneClassFunction;\n };\n\n\n\n\n\n private cloneClassesObjWithNewMetadata = ({\n classesInput,\n config,\n ctx,\n classType,\n }: {\n classesInput: any;\n config: Models.ContextOptions<any, any, any, any, any, any>;\n ctx: EndpointContext;\n classType: Models.ClassType;\n }) => {\n const classes = {};\n\n for (const key of Object.keys(classesInput || {})) {\n const BaseClass = classesInput[key];\n\n if (!BaseClass) {\n Helpers.error(`Class ${key} is not defined in context ${ctx.contextName}\n\n Please check if you have correct import in context file\n\n `);\n }\n\n var className = Reflect.getMetadata(\n Symbols.metadata.className,\n BaseClass,\n );\n\n\n\n\n\n className = className || key;\n BaseClass[Symbols.classNameStaticProperty] = className;\n\n const clonedClass = this.cloneClassWithNewMetadata({\n BaseClass,\n className,\n config,\n ctx,\n classType,\n });\n classes[className] = clonedClass;\n }\n return classes;\n };\n\n\n\n private async getRecrusiveClassesfromContextsObj(\n classType: Models.ClassType,\n ) {\n const arr = await this.getRecrusiveClassesfromContexts(classType);\n return arr.reduce((acc, c) => {\n acc[ClassHelpers.getName(c)] = c;\n return acc;\n }, {});\n }\n\n private async getRecrusiveClassesfromContexts(\n classType: Models.ClassType,\n arr = [],\n ) {\n const contexts = Object.values(this.config.contexts || {}) as ReturnType<\n typeof createContext\n >[];\n\n\n\n for (const ctx of contexts) {\n\n const ref = await ctx.__ref();\n\n const classesInput = ref.getClassFunBy(classType);\n\n\n const clonedClasses = Object.values(\n this.cloneClassesObjWithNewMetadata({\n classesInput,\n config: this.config,\n ctx: this,\n classType,\n }),\n );\n\n clonedClasses.forEach(c => arr.push(c));\n\n await ref.getRecrusiveClassesfromContexts(classType, arr);\n }\n return arr as Function[];\n }\n\n\n\n getClassInstanceObjBy(classType: Models.ClassType): any {\n return this.classInstancesByNameObj[classType];\n }\n\n\n\n private getClassesInstancesArrBy(classType: Models.ClassType): any[] {\n return this.objWithClassesInstancesArr[classType];\n }\n\n\n\n inject<T>(\n ctor: new (...args: any[]) => T,\n options?: {\n localInstance?: boolean;\n contextClassInstance?: BaseClass;\n locaInstanceConstructorArgs?: ConstructorParameters<typeof ctor>;\n },\n ): T {\n if (!options) {\n options = {} as any;\n }\n const className = ClassHelpers.getName(ctor);\n\n const locaInstanceConstructorArgs =\n options.locaInstanceConstructorArgs || [];\n\n if (this.isCLassType(Models.ClassType.REPOSITORY, ctor)) {\n options.localInstance = true;\n }\n\n if (options?.localInstance) {\n const ctxClassFn = this.getClassFunByClassName(className);\n let entityName: string = '';\n\n if (className === 'BaseRepository') {\n const entityFn = locaInstanceConstructorArgs[0];\n const entity = entityFn && entityFn();\n entityName = entity && ClassHelpers.getName(entity);\n }\n\n if (!options.contextClassInstance[this.localInstaceObjSymbol]) {\n options.contextClassInstance[this.localInstaceObjSymbol] = {};\n }\n const instanceKey = className + (entityName ? `.${entityName}` : '');\n const existed =\n options.contextClassInstance[this.localInstaceObjSymbol][instanceKey];\n if (existed) {\n\n return existed;\n }\n\n if (!ctxClassFn) {\n throw new Error(`Not able to inject \"${className}\" inside context \"${this.contextName}\"\n\n Make sure they share the same context or import context where \"${className}\" is defined.\n\n `);\n }\n\n const injectedInstance = new (ctxClassFn as any)(\n ...locaInstanceConstructorArgs,\n );\n options.contextClassInstance[this.localInstaceObjSymbol][instanceKey] =\n injectedInstance;\n\n return injectedInstance;\n }\n\n const contextScopeInstance = this.allClassesInstances[className];\n\n\n\n return contextScopeInstance;\n }\n\n /**\n * alias for inject\n */\n getInstanceBy<T>(ctor: new (...args: any[]) => T): T {\n return this.inject(ctor, { localInstance: false });\n }\n\n\n checkIfContextInitialized() {\n if (_.isUndefined(this.config)) {\n throw new Error(`Please check if your context has been initilized.\n\n\n await Context.initialize();\n\n\n\n `);\n }\n }\n\n\n getClassFunBy(classType: Models.ClassType) {\n this.checkIfContextInitialized();\n switch (classType) {\n case Models.ClassType.CONTROLLER:\n return this.config.controllers;\n case Models.ClassType.ENTITY:\n return this.config.entities;\n case Models.ClassType.PROVIDER:\n return this.config.providers;\n case Models.ClassType.REPOSITORY:\n return this.config.repositories;\n case Models.ClassType.SUBSCRIBER:\n return this.config.subscribers;\n }\n }\n\n isCLassType(classType: Models.ClassType, classFn: Function): boolean {\n return !!this.getClassFunBy(classType)[ClassHelpers.getName(classFn)];\n }\n\n /**\n * Only for injectable types\n * Only for classType: CONTROLLER, REPOSITORY, PROVIDER\n */\n getClassFunByClassName(className: string): Function {\n for (const classTypeName of this.allTypesfromContexts) {\n const classesForInjectableType =\n this.config[Models.ClassTypeKey[classTypeName]];\n\n if (classesForInjectableType[className]) {\n return classesForInjectableType[className];\n }\n }\n }\n\n getClassFunByClass(classFunction: Function): Function {\n const className = ClassHelpers.getName(classFunction);\n return this.getClassFunByClassName(className);\n }\n\n getClassFunByArr(classType: Models.ClassType) {\n return Object.values(this.getClassFunBy(classType) || {}) as Function[];\n }\n\n\n\n private async createInstances(classes: any, classType: Models.ClassType) {\n\n\n\n\n\n for (const classFn of [\n\n ...Object.values(classes),\n ]) {\n const instance = DITaonContainer.resolve(classFn as any) as any;\n const classInstancesByNameObj = this.classInstancesByNameObj[classType];\n const className = ClassHelpers.getName(classFn);\n\n classInstancesByNameObj[className] = instance;\n\n this.config[Models.ClassTypeKey[classType]][className] = classFn;\n this.objWithClassesInstancesArr[classType].push(instance);\n this.allClassesInstances[className] = instance;\n }\n }\n\n\n\n async reinitControllers() {\n\n\n\n const controllers = this.getClassesInstancesArrBy(\n Models.ClassType.CONTROLLER,\n );\n\n for (const ctrl of controllers) {\n if (_.isFunction(ctrl.initExampleDbData)) {\n await Helpers.runSyncOrAsync({\n functionFn: ctrl.initExampleDbData,\n context: ctrl,\n });\n }\n }\n\n\n\n }\n async initClasses() {\n for (const classTypeName of [\n Models.ClassType.PROVIDER,\n Models.ClassType.REPOSITORY,\n Models.ClassType.CONTROLLER,\n Models.ClassType.ENTITY,\n ]) {\n\n\n\n\n for (const classFun of this.getClassFunByArr(classTypeName) as any[]) {\n if (_.isFunction(classFun._)) {\n await Helpers.runSyncOrAsync({\n functionFn: classFun._,\n context: classFun,\n });\n\n\n\n\n\n\n }\n }\n\n\n\n\n }\n\n for (const classTypeName of [\n Models.ClassType.PROVIDER,\n Models.ClassType.REPOSITORY,\n Models.ClassType.CONTROLLER,\n ]) {\n\n\n\n\n for (const ctrl of this.getClassesInstancesArrBy(classTypeName)) {\n if (_.isFunction(ctrl._)) {\n await Helpers.runSyncOrAsync({\n functionFn: ctrl._,\n context: ctrl,\n });\n }\n }\n\n\n\n\n }\n }\n\n\n\n isActiveOn(classInstance: object): boolean {\n let contextRef: EndpointContext =\n classInstance[Symbols.ctxInClassOrClassObj];\n return this === contextRef;\n }\n\n\n\n get uri() {\n const url = this.host\n ? new URL(this.host)\n : this.remoteHost\n ? new URL(this.remoteHost)\n : void 0;\n return url;\n }\n\n\n\n get isHttpServer() {\n return this.uri.protocol === 'https:';\n }\n\n\n\n /**\n * ipc/udp needs this\n */\n public get contextName() {\n return this.config.contextName;\n }\n\n\n\n public get publicAssets() {\n return this.config?.publicAssets || [];\n }\n\n\n\n get isProductionMode() {\n return this.config.productionMode;\n }\n\n\n\n get remoteHost() {\n return this.config.remoteHost;\n }\n\n\n\n get host() {\n return this.config.host;\n }\n\n\n\n get orgin() {\n return this.uri?.origin;\n }\n\n\n\n async initSubscribers() {\n return; // TODO\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n }\n\n\n\n async initEntities() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n }\n\n\n\n\n async initDatabaseConnection() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n\n\n\n initMetadata() {\n const allControllers = this.getClassFunByArr(Models.ClassType.CONTROLLER);\n\n for (const controllerClassFn of allControllers) {\n controllerClassFn[Symbols.classMethodsNames] =\n ClassHelpers.getMethodsNames(controllerClassFn);\n const configs = ClassHelpers.getControllerConfigs(controllerClassFn);\n\n const classConfig: Models.RuntimeControllerConfig = configs[0];\n\n const parentscalculatedPath = _.slice(configs, 1)\n .reverse()\n .map(bc => {\n if (TaonHelpers.isGoodPath(bc.path)) {\n return bc.path;\n }\n return bc.className;\n })\n .join('/');\n\n if (TaonHelpers.isGoodPath(classConfig.path)) {\n classConfig.calculatedPath = classConfig.path;\n } else {\n classConfig.calculatedPath =\n `${parentscalculatedPath}/${ClassHelpers.getName(controllerClassFn)}`\n .replace(/\\/\\//g, '/')\n .split('/')\n .reduce((acc, bc) => {\n return _.last(acc) === bc ? acc : [...acc, bc];\n }, [])\n .join('/');\n }\n\n _.slice(configs, 1).forEach(bc => {\n const alreadyIs = classConfig.methods;\n const toMerge = _.cloneDeep(bc.methods);\n for (const key in toMerge) {\n if (toMerge.hasOwnProperty(key) && !alreadyIs[key]) {\n const element = toMerge[key];\n alreadyIs[key] = element;\n }\n }\n });\n\n/* */\n/* */\n \n this.logHttp &&\n console.groupCollapsed(\n `[taon][express-server] routes [${classConfig.className}]`,\n );\n/* */\n/* */\n \n\n\n Object.keys(classConfig.methods).forEach(methodName => {\n const methodConfig: Models.MethodConfig =\n classConfig.methods[methodName];\n\n const type: Models.Http.Rest.HttpMethod = methodConfig.type;\n const expressPath = methodConfig.global\n ? `/${methodConfig.path?.replace(/\\//, '')}`\n : TaonHelpers.getExpressPath(classConfig, methodConfig);\n\n\n if (Helpers.isNode || Helpers.isWebSQL) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n }\n\n const shouldInitClient =\n Helpers.isBrowser || this.remoteHost || Helpers.isWebSQL;\n\n if (shouldInitClient) {\n\n\n\n\n\n\n\n this.initClient(controllerClassFn, type, methodConfig, expressPath);\n }\n });\n\n/* */\n/* */\n \n this.logHttp && console.groupEnd();\n/* */\n/* */\n \n }\n }\n\n\n\n public writeActiveRoutes() {\n const contexts: EndpointContext[] = [this];\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n }\n\n\n\n public get middlewares(): Models.MiddlewareType[] {\n/* */\n/* */\n return (void 0);\n }\n\n\n\n private initMidleware() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n }\n\n\n\n private initServer(\n\n type: Models.Http.Rest.HttpMethod,\n methodConfig: Models.MethodConfig,\n classConfig: Models.RuntimeControllerConfig,\n expressPath: string,\n target: Function,\n\n ): any {\n\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n\n const url = this.uri;\n\n\n const getResult = async (resolvedParams, req, res) => {\n const response: Models.Http.Response<any> =\n methodConfig.descriptor.value.apply(\n /**\n * Context for method @GET,@PUT etc.\n */\n this.getInstanceBy(target as any),\n /**\n * Params for metjod @GET, @PUT etc.\n */\n resolvedParams,\n );\n let result = await getResponseValue(response, { req, res });\n return result;\n };\n\n\n url.pathname = url.pathname.replace(/\\/$/, '');\n expressPath = url.pathname.startsWith('/')\n ? `${url.pathname}${expressPath}`\n : expressPath;\n expressPath = expressPath.replace(/\\/\\//g, '/');\n\n\n\n if (Helpers.isElectron) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n }\n\n if (!this.remoteHost) {\n\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n\n\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n }\n\n return {\n routePath: expressPath,\n method: methodConfig.type,\n };\n }\n\n\n\n /**\n * client can be browser or nodejs (when remote host)\n */\n private initClient(\n\n target: Function,\n type: Models.Http.Rest.HttpMethod,\n methodConfig: Models.Http.Rest.MethodConfig,\n expressPath: string,\n\n ): void {\n const ctx = this;\n\n this.logHttp && console.log(`${type?.toUpperCase()} ${expressPath} `);\n\n\n let storage: any;\n if (Helpers.isBrowser) {\n storage = window;\n }\n/* */\n/* */\n/* */\n/* */\n \n\n\n const orgMethods = target.prototype[methodConfig.methodName];\n\n\n\n if (Helpers.isElectron) {\n target.prototype[methodConfig.methodName] = function (...args) {\n const received = new Promise(async (resolve, reject) => {\n const headers = {};\n const { request, response } = TaonHelpers.websqlMocks(headers);\n\n Helpers.ipcRenderer.once(\n TaonHelpers.ipcKeyNameResponse(\n target,\n methodConfig,\n expressPath,\n ),\n (event, responseData) => {\n let res: any = responseData;\n console.log({ responseData });\n try {\n const body = res;\n res = new ModelsNg2Rest.HttpResponse(\n {\n body: void 0,\n isArray: void 0 as any,\n method: methodConfig.type,\n url: `${ctx.uri.origin}${\n '' // TODO express path\n }${methodConfig.path} `,\n },\n Helpers.isBlob(body) || _.isString(body)\n ? body\n : JSON.stringify(body),\n RestHeaders.from(headers),\n void 0,\n () => body,\n );\n\n resolve(res);\n } catch (error) {\n console.error(error);\n reject(error);\n }\n },\n );\n Helpers.ipcRenderer.send(\n TaonHelpers.ipcKeyNameRequest(target, methodConfig, expressPath),\n args,\n );\n });\n received['observable'] = from(received);\n return {\n received,\n };\n };\n return;\n }\n\n\n\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n\n\n\n\n target.prototype[methodConfig.methodName] = function (this: {}, ...args) {\n\n\n\n\n\n if (!storage[Symbols.old.ENDPOINT_META_CONFIG])\n storage[Symbols.old.ENDPOINT_META_CONFIG] = {};\n if (!storage[Symbols.old.ENDPOINT_META_CONFIG][ctx.uri.href])\n storage[Symbols.old.ENDPOINT_META_CONFIG][ctx.uri.href] = {};\n const endpoints = storage[Symbols.old.ENDPOINT_META_CONFIG];\n let rest: ModelsNg2Rest.ResourceModel<any, any>;\n if (!endpoints[ctx.uri.href][expressPath]) {\n let headers = {};\n if (methodConfig.contentType && !methodConfig.responseType) {\n rest = Resource.create(\n ctx.uri.href,\n expressPath,\n Symbols.old.MAPPING_CONFIG_HEADER as any,\n Symbols.old.CIRCURAL_OBJECTS_MAP_BODY as any,\n RestHeaders.from({\n 'Content-Type': methodConfig.contentType,\n Accept: methodConfig.contentType,\n }),\n );\n } else if (methodConfig.contentType && methodConfig.responseType) {\n rest = Resource.create(\n ctx.uri.href,\n expressPath,\n Symbols.old.MAPPING_CONFIG_HEADER as any,\n Symbols.old.CIRCURAL_OBJECTS_MAP_BODY as any,\n RestHeaders.from({\n 'Content-Type': methodConfig.contentType,\n Accept: methodConfig.contentType,\n responsetypeaxios: methodConfig.responseType,\n }),\n );\n } else if (!methodConfig.contentType && methodConfig.responseType) {\n rest = Resource.create(\n ctx.uri.href,\n expressPath,\n Symbols.old.MAPPING_CONFIG_HEADER as any,\n Symbols.old.CIRCURAL_OBJECTS_MAP_BODY as any,\n RestHeaders.from({\n responsetypeaxios: methodConfig.responseType,\n }),\n );\n } else {\n rest = Resource.create(\n ctx.uri.href,\n expressPath,\n Symbols.old.MAPPING_CONFIG_HEADER as any,\n Symbols.old.CIRCURAL_OBJECTS_MAP_BODY as any,\n );\n }\n\n endpoints[ctx.uri.href][expressPath] = rest;\n } else {\n rest = endpoints[ctx.uri.href][expressPath] as any;\n }\n\n const method = type.toLowerCase();\n const isWithBody = method === 'put' || method === 'post';\n const pathPrams = {};\n let queryParams = {};\n let bodyObject = {};\n args.forEach((param, i) => {\n let currentParam: Models.Http.Rest.ParamConfig = void 0 as any;\n\n for (let pp in methodConfig.parameters) {\n let v = methodConfig.parameters[pp];\n if (v.index === i) {\n currentParam = v;\n break;\n }\n }\n\n if (currentParam.paramType === 'Path') {\n pathPrams[currentParam.paramName] = param;\n }\n if (currentParam.paramType === 'Query') {\n if (currentParam.paramName) {\n const mapping = Mapping.decode(param, !ctx.isProductionMode);\n if (mapping) {\n rest.headers.set(\n `${Symbols.old.MAPPING_CONFIG_HEADER_QUERY_PARAMS}${currentParam.paramName} `,\n JSON.stringify(mapping),\n );\n }\n queryParams[currentParam.paramName] = param;\n } else {\n const mapping = Mapping.decode(param, !ctx.isProductionMode);\n if (mapping) {\n rest.headers.set(\n Symbols.old.MAPPING_CONFIG_HEADER_QUERY_PARAMS,\n JSON.stringify(mapping),\n );\n }\n queryParams = _.cloneDeep(param);\n }\n }\n if (currentParam.paramType === 'Header') {\n if (currentParam.paramName) {\n if (currentParam.paramName === Symbols.old.MDC_KEY) {\n\n rest.headers.set(\n currentParam.paramName,\n encodeURIComponent(JSON.stringify(param)),\n );\n } else {\n rest.headers.set(currentParam.paramName, param);\n }\n } else {\n for (let header in param) {\n rest.headers.set(header, param[header]);\n }\n }\n }\n if (currentParam.paramType === 'Cookie') {\n Resource.Cookies.write(\n currentParam.paramName,\n param,\n currentParam.expireInSeconds,\n );\n }\n if (currentParam.paramType === 'Body') {\n if (currentParam.paramName) {\n if (ClassHelpers.getName(bodyObject) === 'FormData') {\n throw new Error(`[taon - framework] Don use param names when posting / putting FormData.\n Use this:\n\n(@Taon.Http.Param.Body() formData: FormData) ...\n\n\ninstead\n\n (@Taon.Http.Param.Body('${currentParam.paramName}') formData: FormData) ...\n\n`);\n }\n const mapping = Mapping.decode(param, !ctx.isProductionMode);\n if (mapping) {\n rest.headers.set(\n `${Symbols.old.MAPPING_CONFIG_HEADER_BODY_PARAMS}${currentParam.paramName} `,\n JSON.stringify(mapping),\n );\n }\n bodyObject[currentParam.paramName] = param;\n } else {\n const mapping = Mapping.decode(param, !ctx.isProductionMode);\n if (mapping) {\n rest.headers.set(\n Symbols.old.MAPPING_CONFIG_HEADER_BODY_PARAMS,\n JSON.stringify(mapping),\n );\n }\n bodyObject = param;\n }\n }\n });\n\n if (\n typeof bodyObject === 'object' &&\n ClassHelpers.getName(bodyObject) !== 'FormData'\n ) {\n let circuralFromItem = [];\n bodyObject = JSON10.parse(\n JSON10.stringify(bodyObject, void 0, void 0, circs => {\n circuralFromItem = circs;\n }),\n );\n rest.headers.set(\n Symbols.old.CIRCURAL_OBJECTS_MAP_BODY,\n JSON10.stringify(circuralFromItem),\n );\n }\n\n if (typeof queryParams === 'object') {\n let circuralFromQueryParams = [];\n queryParams = JSON10.parse(\n JSON10.stringify(queryParams, void 0, void 0, circs => {\n circuralFromQueryParams = circs;\n }),\n );\n\n rest.headers.set(\n Symbols.old.CIRCURAL_OBJECTS_MAP_QUERY_PARAM,\n JSON10.stringify(circuralFromQueryParams),\n );\n }\n\n\n const httpResultObj = {\n received: isWithBody\n ? rest.model(pathPrams)[method](bodyObject, [queryParams])\n : rest.model(pathPrams)[method]([queryParams]),\n };\n return httpResultObj;\n };\n\n }\n\n}\n\n ;({}); // @--end-of-file-for-module=taon lib/endpoint-context.ts","\n\nimport { Helpers } from 'tnp-core/browser';\n\nexport const globalPublicStorage = Helpers.isBrowser ? window : global;\n\n ;({}); // @--end-of-file-for-module=taon lib/storage.ts","\n\n\n\nimport { Stor } from 'taon-storage/browser';\nimport { Helpers, _ } from 'tnp-core/browser';\nimport { Subject, take, takeUntil, tap } from 'rxjs';\nimport type { TaonAdminModeConfigurationComponent } from './taon-admin-mode-configuration.component';\nimport { globalPublicStorage } from '../../storage';\nimport { config } from 'tnp-config/browser';\nimport { Injectable } from '@angular/core';\n\n\nconst ENV = Helpers.isBrowser ? window['ENV'] : global['ENV'];\n\n@Injectable({ providedIn: 'root' })\nexport class TaonAdmin {\n public scrollableEnabled = false; // TOOD false by default\n\n\n private constructor() {\n\n this.scrollableEnabled = !!ENV?.useGlobalNgxScrollbar;\n }\n public static get Instance(): TaonAdmin {\n if (!globalPublicStorage[config.frameworkNames.taon]) {\n globalPublicStorage[config.frameworkNames.taon] = new TaonAdmin();\n }\n return globalPublicStorage[config.frameworkNames.taon];\n }\n\n\n\n public cmp: TaonAdminModeConfigurationComponent;\n private onEditMode = new Subject();\n onEditMode$ = this.onEditMode.asObservable();\n\n\n\n // @ts-ignore\n @Stor.property.in.localstorage.for(TaonAdmin).withDefaultValue(false)\n public adminPanelIsOpen: boolean;\n\n\n\n // @ts-ignore\n @Stor.property.in.localstorage.for(TaonAdmin).withDefaultValue(false)\n public draggablePopupMode: boolean;\n\n\n\n // @ts-ignore\n @Stor.property.in.localstorage.for(TaonAdmin).withDefaultValue(false)\n public draggablePopupModeFullScreen: boolean;\n\n\n\n /**\n * Property used in taon\n */ // @ts-ignore\n @Stor.property.in.localstorage.for(TaonAdmin).withDefaultValue(false)\n public keepWebsqlDbDataAfterReload: boolean;\n\n\n\n setEditMode(value: boolean) {\n this.onEditMode.next(value);\n }\n\n setKeepWebsqlDbDataAfterReload(value: boolean) {\n\n\n\n this.keepWebsqlDbDataAfterReload = value;\n }\n\n enabledTabs = [];\n\n hide() {\n this.draggablePopupMode = false;\n this.adminPanelIsOpen = false;\n }\n\n show() {\n this.draggablePopupMode = false;\n this.adminPanelIsOpen = true;\n }\n\n logout() {}\n\n}\n\n ;({}); // @--end-of-file-for-module=taon lib/ui/taon-admin-mode-configuration/taon-admin.service.ts","\n\n\nimport { Helpers } from 'tnp-core/browser';\nimport { EndpointContext } from './endpoint-context';\nimport { Models } from './models';\n\nimport { ENV } from './env';\n\nimport { TaonAdmin } from './ui/taon-admin-mode-configuration/taon-admin.service';\n\n\n\n\n\n\nexport const createContext = <\n\n CTX extends Record<string, object>,\n CTRL extends Record<string, new (...args: any[]) => any>,\n ENTITY extends Record<string, new (...args: any[]) => any>,\n REPO extends Record<string, new (...args: any[]) => any>,\n PROVIDER extends Record<string, new (...args: any[]) => any>,\n SUBSCRIBER extends Record<string, new (...args: any[]) => any>,\n\n>(\n configFn: (\n env: any,\n ) => Models.ContextOptions<CTX, CTRL, ENTITY, REPO, PROVIDER, SUBSCRIBER>,\n) => {\n let config = configFn(ENV);\n\n\n\n\n\n const endpointContextRef = new EndpointContext(config, configFn);\n\n\n\n\n\n const res = {\n\n types: {\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n get controllers() {\n return config.controllers;\n },\n get repositories() {\n return config.repositories;\n },\n get providers() {\n return config.providers;\n },\n get subscribers() {\n return config.subscribers;\n },\n },\n\n\n get contexts() {\n return config.contexts;\n },\n get contextName() {\n return config.contextName;\n },\n\n\n /**\n * - get reference to internal context\n */\n async __ref() {\n if (!endpointContextRef.inited) {\n await endpointContextRef.init({\n initFromRecrusiveContextResovle: true,\n });\n }\n return endpointContextRef;\n },\n get __refSync() {\n return endpointContextRef;\n },\n getClassInstance<T>(ctor: new (...args: any[]) => T): T {\n return endpointContextRef.getInstanceBy(ctor);\n },\n\n getClass<T>(ctor: new (...args: any[]) => T): new (...args: any[]) => T {\n const classFun = endpointContextRef.getClassFunByClass(ctor);\n return classFun as any;\n\n\n\n\n\n\n\n\n\n\n\n\n\n },\n\n\n /**\n * - create controller instances for context\n * - init database (if enable) + migation scripts\n */\n initialize: async (): Promise<EndpointContext> => {\n return await new Promise(async (resolve, reject) => {\n setTimeout(async () => {\n await endpointContextRef.init();\n if (config.abstract) {\n throw new Error(`Abstract context can not be initialized`);\n }\n await endpointContextRef.initEntities();\n await endpointContextRef.initSubscribers();\n await endpointContextRef.initDatabaseConnection();\n\n\n\n\n\n endpointContextRef.initMetadata();\n endpointContextRef.startServer();\n/* */\n/* */\n \n\n await endpointContextRef.initClasses();\n let keepWebsqlDbDataAfterReload = false;\n\n keepWebsqlDbDataAfterReload =\n TaonAdmin.Instance.keepWebsqlDbDataAfterReload;\n\n if (!Helpers.isNode && keepWebsqlDbDataAfterReload) {\n Helpers.info(`[taon] Keep websql data after reload`);\n } else {\n await endpointContextRef.reinitControllers();\n }\n resolve(endpointContextRef);\n });\n });\n },\n\n };\n return res;\n};\n\n\n ;({}); // @--end-of-file-for-module=taon lib/create-context.ts","\n\nimport { createContext } from '../create-context';\nimport { BaseRepository } from './base-repository';\n\nconst BaseContext = createContext(() => ({\n contextName: 'BaseContext',\n abstract: true,\n repositories: {\n // @ts-ignore\n BaseRepository,\n },\n}));\n\nexport { BaseContext };\n\n ;({}); // @--end-of-file-for-module=taon lib/base-classes/base-context.ts","\n\nimport { ClassHelpers } from '../../helpers/class-helpers';\nimport { Symbols } from '../../symbols';\nimport { Models } from '../../models';\nimport { _ } from 'tnp-core/browser';\nimport type { BaseSubscriber } from '../../base-classes/base-subscriber';\n\nexport class TaonSubscriberOptions<\n T = any,\n> extends Models.DecoratorAbstractOpt {\n allowedEvents?: (keyof T)[];\n}\n\nexport function TaonSubscriber(options: TaonSubscriberOptions) {\n return function <T extends { new (...args: any[]): {} }>(constructor: T) {\n Reflect.defineMetadata(\n Symbols.metadata.options.repository,\n options,\n constructor,\n );\n Reflect.defineMetadata(\n Symbols.metadata.className,\n options?.className || constructor.name,\n constructor,\n );\n ClassHelpers.setName(constructor, options?.className);\n return class extends constructor {\n constructor(...args: any[]) {\n super(...args);\n\n\n const methodNamesAll = ClassHelpers.getMethodsNames(\n constructor.prototype,\n );\n\n const methodNames = methodNamesAll.filter(m => {\n return (\n !['__trigger_event__', 'clone'].includes(m) &&\n !m.startsWith('_') &&\n !m.startsWith('inject')\n );\n });\n\n\n methodNames.forEach(methodName => {\n const originalMethod = (this as any)[methodName];\n\n (this as any)[methodName] = async (...methodArgs: any[]) => {\n const result = originalMethod.apply(this, methodArgs);\n\n\n if (result instanceof Promise) {\n await result;\n }\n\n\n if (\n options.allowedEvents === undefined ||\n options.allowedEvents.includes(methodName)\n ) {\n // @ts-ignore\n (this as BaseSubscriber).__trigger_event__(methodName as any);\n }\n\n return result;\n };\n });\n }\n } as any;\n } as any;\n}\n\n ;({}); // @--end-of-file-for-module=taon lib/decorators/classes/subscriber-decorator.ts","\n\nimport { EntitySubscriberInterface, RecoverEvent, SoftRemoveEvent, InsertEvent, TransactionStartEvent, TransactionCommitEvent, TransactionRollbackEvent, RemoveEvent, UpdateEvent, } from 'taon-typeorm/browser';/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n\nimport { BaseInjector } from './base-injector';\nimport { TaonSubscriber } from '../decorators/classes/subscriber-decorator';\n\n@TaonSubscriber({\n className: 'BaseSubscriber',\n})\nexport abstract class BaseSubscriber<Entity = any> extends BaseInjector {\n protected __trigger_event__(eventName: keyof Entity) {\n const ctx = this.__endpoint_context__;\n console.log('Trigger event', eventName, ctx);\n\n }\n}\n\n ;({}); // @--end-of-file-for-module=taon lib/base-classes/base-subscriber.ts","\n\nimport { EntitySubscriberInterface, RecoverEvent, SoftRemoveEvent, InsertEvent, TransactionStartEvent, TransactionCommitEvent, TransactionRollbackEvent, RemoveEvent, UpdateEvent, } from 'taon-typeorm/browser';/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n\nimport { BaseInjector } from './base-injector';\nimport { TaonSubscriber } from '../decorators/classes/subscriber-decorator';\n\n@TaonSubscriber({\n className: 'BaseSubscriberForEntity',\n})\nexport abstract class BaseSubscriberForEntity<Entity = any>\n extends BaseInjector\n implements EntitySubscriberInterface\n{\n abstract listenTo(): new (...args) => Entity;\n\n /**\n * Called after entity is loaded.\n */\n afterLoad(entity: any) {\n console.log(`AFTER ENTITY LOADED: `, entity);\n }\n\n /**\n * Called before query execution.\n */\n beforeQuery(event: any) {\n\n console.log(`BEFORE QUERY: `, event.query);\n }\n\n /**\n * Called after query execution.\n */\n afterQuery(event: any) {\n\n console.log(`AFTER QUERY: `, event.query);\n }\n\n /**\n * Called before entity insertion.\n */\n beforeInsert(event: InsertEvent<any>) {\n console.log(`BEFORE ENTITY INSERTED: `, event.entity);\n }\n\n /**\n * Called after entity insertion.\n */\n afterInsert(event: InsertEvent<any>) {\n console.log(`AFTER ENTITY INSERTED: `, event.entity);\n }\n\n /**\n * Called before entity update.\n */\n beforeUpdate(event: UpdateEvent<any>) {\n console.log(`BEFORE ENTITY UPDATED: `, event.entity);\n }\n\n /**\n * Called after entity update.\n */\n afterUpdate(event: UpdateEvent<any>) {\n console.log(`AFTER ENTITY UPDATED: `, event.entity);\n }\n\n /**\n * Called before entity removal.\n */\n beforeRemove(event: RemoveEvent<any>) {\n console.log(\n `BEFORE ENTITY WITH ID ${event.entityId} REMOVED: `,\n event.entity,\n );\n }\n\n /**\n * Called after entity removal.\n */\n afterRemove(event: RemoveEvent<any>) {\n console.log(\n `AFTER ENTITY WITH ID ${event.entityId} REMOVED: `,\n event.entity,\n );\n }\n\n /**\n * Called before entity removal.\n */\n beforeSoftRemove(event: SoftRemoveEvent<any>) {\n console.log(\n `BEFORE ENTITY WITH ID ${event.entityId} SOFT REMOVED: `,\n event.entity,\n );\n }\n\n /**\n * Called after entity removal.\n */\n afterSoftRemove(event: SoftRemoveEvent<any>) {\n console.log(\n `AFTER ENTITY WITH ID ${event.entityId} SOFT REMOVED: `,\n event.entity,\n );\n }\n\n /**\n * Called before entity recovery.\n */\n beforeRecover(event: RecoverEvent<any>) {\n console.log(\n `BEFORE ENTITY WITH ID ${event.entityId} RECOVERED: `,\n event.entity,\n );\n }\n\n /**\n * Called after entity recovery.\n */\n afterRecover(event: RecoverEvent<any>) {\n console.log(\n `AFTER ENTITY WITH ID ${event.entityId} RECOVERED: `,\n event.entity,\n );\n }\n\n /**\n * Called before transaction start.\n */\n beforeTransactionStart(event: TransactionStartEvent) {\n console.log(`BEFORE TRANSACTION STARTED: `, event);\n }\n\n /**\n * Called after transaction start.\n */\n afterTransactionStart(event: TransactionStartEvent) {\n console.log(`AFTER TRANSACTION STARTED: `, event);\n }\n\n /**\n * Called before transaction commit.\n */\n beforeTransactionCommit(event: TransactionCommitEvent) {\n console.log(`BEFORE TRANSACTION COMMITTED: `, event);\n }\n\n /**\n * Called after transaction commit.\n */\n afterTransactionCommit(event: TransactionCommitEvent) {\n console.log(`AFTER TRANSACTION COMMITTED: `, event);\n }\n\n /**\n * Called before transaction rollback.\n */\n beforeTransactionRollback(event: TransactionRollbackEvent) {\n console.log(`BEFORE TRANSACTION ROLLBACK: `, event);\n }\n\n /**\n * Called after transaction rollback.\n */\n afterTransactionRollback(event: TransactionRollbackEvent) {\n console.log(`AFTER TRANSACTION ROLLBACK: `, event);\n }\n}\n\n ;({}); // @--end-of-file-for-module=taon lib/base-classes/base-subscriber-for-entity.ts","\n\nimport * as controller from './base-controller';\nimport * as crudController from './base-crud-controller';\nimport * as entity from './base-entity';\nimport * as abstractEntity from './base-abstract-entity';\nimport * as repository from './base-repository';\nimport * as provider from './base-provider';\nimport * as baseclass from './base-class';\nimport * as baseContext from './base-context';\nimport * as baseSubscriber from './base-subscriber';\nimport * as baseSubscriberEntity from './base-subscriber-for-entity';\nexport namespace Base {\n export import Controller = controller.BaseController;\n export import CrudController = crudController.BaseCrudController;\n export import Entity = entity.BaseEntity;\n export import AbstractEntity = abstractEntity.BaseAbstractEntity;\n export import Provider = provider.BaseProvider;\n export import Class = baseclass.BaseClass;\n export import Repository = repository.BaseRepository;\n export import Subscriber = baseSubscriber.BaseSubscriber;\n export import SubscriberForEntity = baseSubscriberEntity.BaseSubscriberForEntity;\n export const Context = baseContext.BaseContext;\n}\n\n ;({}); // @--end-of-file-for-module=taon lib/base-classes/base.ts","\n\nimport { Mapping } from 'ng2-rest/browser';\nimport { ClassHelpers } from '../../helpers/class-helpers';\nimport { CLASS } from 'typescript-class-helpers/browser';\nimport { Symbols } from '../../symbols';\nimport { _ } from 'tnp-core/browser';\nimport { Models } from '../../models';\n/* */\n/* */\n \n\nexport function TaonEntity<T = any>(options?: TaonEntityOptions<T>) {\n return function (constructor: Function) {\n options = options || ({} as any);\n options.uniqueKeyProp = options.uniqueKeyProp || ('id' as any);\n ClassHelpers.setName(constructor, options?.className);\n\n Mapping.DefaultModelWithMapping<T>(\n options?.defaultModelValues || {},\n _.merge(\n options?.defaultModelMapping || {},\n (options?.defaultModelMappingDeep || {}) as any,\n ),\n )(constructor);\n\n\n Mapping.DefaultModelWithMapping<T>(void 0, {})(constructor);\n\n Reflect.defineMetadata(\n Symbols.metadata.options.entity,\n options,\n constructor,\n );\n Reflect.defineMetadata(\n Symbols.metadata.className,\n options?.className || constructor.name,\n constructor,\n );\n/* */\n/* */\n \n CLASS.setName(constructor, options?.className); // TODO QUICK_FIX for ng2-rest\n };\n}\n\nexport class TaonEntityOptions<T = any> extends Models.DecoratorAbstractOpt {\n /**\n * default unique property is \"id\"\n * for your entity it may be something else\n */\n uniqueKeyProp?: string;\n createTable?: boolean;\n defaultModelValues?: Mapping.ModelValue<T>;\n defaultModelMapping?: Mapping.Mapping<T>;\n defaultModelMappingDeep?: { [lodashPathes: string]: string | [string] };\n}\n\n ;({}); // @--end-of-file-for-module=taon lib/decorators/classes/entity-decorator.ts","\n\nimport { ClassHelpers } from '../../helpers/class-helpers';\nimport { Symbols } from '../../symbols';\nimport { Models } from '../../models';\n\nexport function TaonProvider<T = any>(options?: TaonProviderOptions<T>) {\n return function (constructor: Function) {\n Reflect.defineMetadata(\n Symbols.metadata.options.provider,\n options,\n constructor,\n );\n Reflect.defineMetadata(\n Symbols.metadata.className,\n options?.className || constructor.name,\n constructor,\n );\n ClassHelpers.setName(constructor, options?.className || constructor.name);\n };\n}\n\nexport class TaonProviderOptions<\n T = any,\n> extends Models.DecoratorAbstractOpt {\n\n}\n\n ;({}); // @--end-of-file-for-module=taon lib/decorators/classes/provider-decorator.ts","\n\n\nimport { inject as angularInject } from '@angular/core';\n\nimport { Symbols } from './symbols';\nimport type { EndpointContext } from './endpoint-context';\nimport type { BaseInjector } from './base-classes/base-injector';\nimport { Observable, Subject } from 'rxjs';\nimport type { BaseClass } from './base-classes/base-class';\n\nexport const inject = <T>(entity: () => new (...args: any[]) => T): T => {\n return new Proxy(\n {},\n {\n get: (_, propName) => {\n if (propName === 'hasOwnProperty') {\n return () => false;\n }\n\n const ctor = entity();\n const contextFromClass = ctor[\n Symbols.ctxInClassOrClassObj\n ] as EndpointContext;\n const resultContext = contextFromClass;\n if (resultContext) {\n let instance = resultContext.inject(ctor) as BaseInjector;\n\n\n if (propName === 'getOriginalPrototype') {\n return () => Object.getPrototypeOf(instance);\n }\n if (propName === 'getOriginalConstructor') {\n return () => instance.constructor;\n }\n\n const methods = ctor[Symbols.classMethodsNames] || [];\n const isMethods = methods.includes(propName);\n\n const methodOrProperty = isMethods\n ? instance[propName].bind(instance)\n : instance[propName];\n\n\n\n\n\n return methodOrProperty;\n }\n\n\n return angularInject(ctor)[propName];\n\n },\n },\n ) as T;\n};\n\nexport const injectController = inject;\n\nexport type SubscbtionEvent<T> = {\n name: keyof T;\n data: any;\n};\n\nexport const injectSubscriberEvents = <T>(\n subscriberClassResolveFn: () => new (...args: any[]) => T,\n eventName: keyof T,\n): Observable<SubscbtionEvent<T>> => {\n const eventsSrc = new Subject<SubscbtionEvent<T>>();\n const obs = eventsSrc.asObservable();\n\n let isFirstSubscription = true;\n\n const proxiedObservable = new Proxy(obs, {\n get(target, prop, receiver) {\n if (prop === 'subscribe') {\n return (...args: any[]) => {\n if (isFirstSubscription) {\n isFirstSubscription = false;\n const subscriberClassFN: typeof BaseClass =\n subscriberClassResolveFn() as any;\n const ctx = subscriberClassFN[\n Symbols.ctxInClassOrClassObj\n ] as EndpointContext;\n if (!ctx) {\n throw new Error(\n `You are trying to inject class without context. Use context like this;\n\n Taon.injectSubscriberEvents( ()=> ` +\n `MyContext.getInstance(${subscriberClassFN?.name}), '${eventName as any}' )\n\n\n `,\n );\n }\n const subscriberInstance = ctx.getInstanceBy(subscriberClassFN);\n\n\n console.log('First subscription, you can access arguments here:', {\n subscriberClassFN,\n eventName,\n });\n\n }\n return target.subscribe(...args);\n };\n }\n return Reflect.get(target, prop, receiver);\n },\n });\n\n return proxiedObservable as Observable<SubscbtionEvent<T>>;\n};\n\n ;({}); // @--end-of-file-for-module=taon lib/inject.ts","\n\nexport type TaonEntityKeysToOmit =\n | 'ctrl'\n | 'clone'\n | '__endpoint_context__'\n | 'inject'\n | '_';\n\n ;({}); // @--end-of-file-for-module=taon lib/constants.ts","\n\nimport 'reflect-metadata';\nimport * as http from './decorators/http/http-decorators';\nimport * as base from './base-classes/base';\nimport * as controllerDecorator from './decorators/classes/controller-decorator';\nimport * as entityDecorator from './decorators/classes/entity-decorator';\nimport * as providerDecorator from './decorators/classes/provider-decorator';\nimport * as repositoryDecorator from './decorators/classes/repository-decorator';\nimport * as subscriberDecorator from './decorators/classes/subscriber-decorator';\nimport * as createContextFn from './create-context';\nimport * as orm from './orm';\nimport * as models from './models';\nimport * as coreHelpers from 'tnp-core/browser';\nimport * as injectFn from './inject';\nimport * as endpointContext from './endpoint-context';\nimport * as allSymbols from './symbols';\nimport * as getResponse from './get-response-value';\n\nimport { NgZone } from '@angular/core';\n\n\n\nexport { BaseRepository } from './base-classes/base-repository';\nexport { BaseController } from './base-classes/base-controller';\nexport { BaseProvider } from './base-classes/base-provider';\nexport { BaseSubscriber } from './base-classes/base-subscriber';\nexport { BaseEntity } from './base-classes/base-entity';\nexport { BaseContext } from './base-classes/base-context';\nexport { createContext } from './create-context';\nexport { inject } from './inject';\nexport { Models } from './models';\nexport * from './constants';\nexport { ClassHelpers } from './helpers/class-helpers';\n\n\nexport namespace Taon {\n export import Response = models.Models.Http.Response;\n export import Http = http.Http;\n export import Base = base.Base;\n export import Orm = orm.Orm;\n\n export const getResponseValue = getResponse.getResponseValue;\n\n\n export import Controller = controllerDecorator.TaonController;\n export import Entity = entityDecorator.TaonEntity;\n export import Provider = providerDecorator.TaonProvider;\n export import Repository = repositoryDecorator.TaonRepository;\n export import Subscriber = subscriberDecorator.TaonSubscriber;\n\n\n /**\n * @deprecated\n */\n export const isBrowser = coreHelpers.Helpers.isBrowser;\n /**\n * @deprecated\n */\n export const isNode = coreHelpers.Helpers.isNode;\n /**\n * @deprecated\n */\n export const isWebSQL = coreHelpers.Helpers.isWebSQL;\n /**\n * @deprecated\n */\n export const isElectron = coreHelpers.Helpers.isElectron;\n\n export const createContext = createContextFn.createContext;\n\n export const inject = injectFn.inject;\n\n\n\n\n export const initNgZone = (ngZone: NgZone) => {\n endpointContext.EndpointContext.initNgZone(ngZone);\n };\n\n\n export const symbols = allSymbols.Symbols;\n\n /**\n * @deprecated\n * use createContext instead\n */\n export const init = async (options: {\n host: string;\n entities: Function[];\n controllers: Function[];\n }) => {\n const BaseContext = (await import('./base-classes/base-context'))\n .BaseContext;\n const context = createContext(() => ({\n contextName: 'default',\n host: options.host,\n contexts: { BaseContext },\n database: true,\n entities: Array.from(options.entities) as any,\n controllers: Array.from(options.controllers) as any,\n }));\n\n await context.initialize();\n return context;\n };\n}\n\n ;({}); // @--end-of-file-for-module=taon lib/index.ts","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["ModelsNg2Rest","methods.GET","methods.POST","methods.PUT","methods.DELETE","methods.PATCH","methods.HEAD","params.Query","params.Path","params.Body","params.Cookie","params.Header","EntityDecorator","ENV","controller.BaseController","crudController.BaseCrudController","entity.BaseEntity","abstractEntity.BaseAbstractEntity","provider.BaseProvider","baseclass.BaseClass","repository.BaseRepository","baseSubscriber.BaseSubscriber","baseSubscriberEntity.BaseSubscriberForEntity","baseContext.BaseContext","angularInject","http.Http","base.Base","getResponse.getResponseValue","controllerDecorator.TaonController","entityDecorator.TaonEntity","providerDecorator.TaonProvider","repositoryDecorator.TaonRepository","subscriberDecorator.TaonSubscriber","createContextFn.createContext","injectFn.inject","endpointContext.EndpointContext","allSymbols.Symbols"],"mappings":"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"}
|