raiton 1.1.1 → 3.0.1
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/CHANGELOG.md +55 -0
- package/README.md +97 -1
- package/build/bin/index.mjs +7012 -47
- package/deno.json +9 -0
- package/package.json +28 -44
- package/scripts/update-version.ts +97 -0
- package/source/bin/bootstrapper.ts +15 -0
- package/source/bin/cli-tools.ts +68 -0
- package/source/bin/cli.ts +12 -0
- package/source/bin/constants.ts +5 -0
- package/source/bin/index.ts +6 -0
- package/source/commands/artifact.command.ts +28 -0
- package/source/commands/build.command.ts +31 -0
- package/source/commands/develop.command.ts +47 -0
- package/source/commands/grafts.command.ts +27 -0
- package/source/commands/start.command.ts +28 -0
- package/source/core/application.ts +163 -0
- package/source/core/builder.ts +144 -0
- package/source/core/bytes.util.ts +17 -0
- package/source/core/command.ts +24 -0
- package/source/core/commands.ts +44 -0
- package/source/core/config/config.ts +51 -0
- package/source/core/config/define.ts +13 -0
- package/source/core/config/index.ts +2 -0
- package/source/core/context.ts +33 -0
- package/source/core/controller/builder.ts +41 -0
- package/source/core/controller/compiler.ts +22 -0
- package/source/core/controller/index.ts +3 -0
- package/source/core/controller/metadata.ts +13 -0
- package/source/core/directories.ts +30 -0
- package/source/core/helpers/index.ts +1 -0
- package/source/core/helpers/raiton.ts +3 -0
- package/source/core/hooks.ts +28 -0
- package/source/core/index.ts +14 -0
- package/source/core/injection/index.ts +1 -0
- package/source/core/injection/injection.ts +219 -0
- package/source/core/middleware/compose.ts +40 -0
- package/source/core/middleware/index.ts +2 -0
- package/source/core/middleware/pipeline.ts +27 -0
- package/source/core/plugins/index.ts +2 -0
- package/source/core/plugins/plugin.ts +8 -0
- package/source/core/plugins/scope.ts +46 -0
- package/source/core/process.util.ts +12 -0
- package/source/core/raiton.ts +20 -0
- package/source/core/router/handler.ts +115 -0
- package/source/core/router/index.ts +4 -0
- package/source/core/router/matcher.ts +51 -0
- package/source/core/router/route.ts +63 -0
- package/source/core/router/router.ts +31 -0
- package/source/core/server.ts +26 -0
- package/source/core/thread.ts +112 -0
- package/source/env.d.ts +3 -0
- package/source/requirements.ts +27 -0
- package/source/sdk/artifacts.ts +79 -0
- package/source/sdk/constants/decorators.constant.ts +8 -0
- package/source/sdk/constants/index.ts +2 -0
- package/source/sdk/constants/microservices.constant.ts +4 -0
- package/source/sdk/controllers.ts +4 -0
- package/source/sdk/data-transfer-object.ts +15 -0
- package/source/sdk/decorators/access-guard.decorator.ts +9 -0
- package/source/sdk/decorators/controllable.decorator.ts +20 -0
- package/source/sdk/decorators/index.ts +5 -0
- package/source/sdk/decorators/injection.decorator.ts +46 -0
- package/source/sdk/decorators/middleware.decorator.ts +15 -0
- package/source/sdk/decorators/parametrable.ts +28 -0
- package/source/sdk/decorators/routable.decorator.ts +45 -0
- package/source/sdk/encryption.ts +157 -0
- package/source/sdk/enums/encrypted.enum.ts +23 -0
- package/source/sdk/enums/event.message.enum.ts +4 -0
- package/source/sdk/enums/http-method.enum.ts +10 -0
- package/{build/sdk/enums/http-parameters.enum.d.ts → source/sdk/enums/http-parameters.enum.ts} +3 -5
- package/source/sdk/enums/http-status.enum.ts +73 -0
- package/source/sdk/enums/index.ts +7 -0
- package/{build/sdk/enums/runtime.enum.d.ts → source/sdk/enums/runtime.enum.ts} +2 -4
- package/{build/sdk/enums/timestamp.enum.d.ts → source/sdk/enums/timestamp.enum.ts} +2 -4
- package/source/sdk/env.ts +40 -0
- package/source/sdk/exceptions/http-exception.ts +28 -0
- package/source/sdk/exceptions/index.ts +2 -0
- package/{build/sdk/throwable.d.ts → source/sdk/exceptions/throwable.ts} +35 -12
- package/source/sdk/index.ts +14 -0
- package/source/sdk/parameter-bag.ts +55 -0
- package/source/sdk/plugins/body-parser.plugin.ts +160 -0
- package/source/sdk/plugins/index.ts +2 -0
- package/source/sdk/plugins/security/body-limit.ts +19 -0
- package/source/sdk/plugins/security/cors.ts +44 -0
- package/source/sdk/plugins/security/headers.ts +14 -0
- package/source/sdk/plugins/security/index.ts +13 -0
- package/source/sdk/plugins/security/method-guard.ts +14 -0
- package/source/sdk/plugins/security/rate-limit.ts +42 -0
- package/source/sdk/repositories.ts +14 -0
- package/source/sdk/responses/error.ts +52 -0
- package/source/sdk/responses/helpers.ts +28 -0
- package/source/sdk/responses/http-throwable.ts +28 -0
- package/source/sdk/responses/http.ts +48 -0
- package/source/sdk/responses/index.ts +4 -0
- package/source/sdk/runtime/bun/server.ts +73 -0
- package/source/sdk/runtime/deno/server.ts +53 -0
- package/source/sdk/runtime/index.ts +47 -0
- package/source/sdk/runtime/node/server.ts +60 -0
- package/source/sdk/runtime/web/server.ts +57 -0
- package/source/sdk/services.ts +9 -0
- package/source/sdk/utilities/alias-path.util.ts +49 -0
- package/source/sdk/utilities/artifact.util.ts +18 -0
- package/source/sdk/utilities/callable.util.ts +27 -0
- package/source/sdk/utilities/index.ts +5 -0
- package/source/sdk/utilities/json.util.ts +21 -0
- package/source/sdk/utilities/path.util.ts +19 -0
- package/source/sdk/utilities/url.ts +5 -0
- package/source/sdk/utilities/utilities.util.ts +25 -0
- package/source/types/access-guards.ts +4 -0
- package/{build/types/application.d.ts → source/types/application.ts} +23 -7
- package/source/types/artifact.ts +44 -0
- package/source/types/builder.ts +44 -0
- package/source/types/config.ts +7 -0
- package/source/types/controller.ts +33 -0
- package/source/types/contruct.ts +3 -0
- package/source/types/core.ts +28 -0
- package/{build/types/directory.d.ts → source/types/directory.ts} +4 -4
- package/source/types/encryption.ts +17 -0
- package/source/types/generic.ts +3 -0
- package/source/types/http-responses.ts +8 -0
- package/source/types/index.ts +25 -0
- package/source/types/injection.ts +13 -0
- package/source/types/lifecycle.ts +11 -0
- package/source/types/middleware.ts +18 -0
- package/source/types/parseable.ts +7 -0
- package/source/types/plugin.ts +10 -0
- package/source/types/raiton.ts +7 -0
- package/source/types/responses.ts +20 -0
- package/source/types/router.ts +11 -0
- package/source/types/runtime.ts +56 -0
- package/{build/types/scheme.d.ts → source/types/scheme.ts} +33 -8
- package/source/types/server.ts +12 -0
- package/source/types/thread.ts +31 -0
- package/source/types/utilities.ts +4 -0
- package/source/types/values.ts +3 -0
- package/.releaserc.json +0 -39
- package/build/bin/bootstrapper.d.ts +0 -5
- package/build/bin/bootstrapper.mjs +0 -46
- package/build/bin/cli.d.ts +0 -5
- package/build/bin/cli.mjs +0 -6
- package/build/bin/index.d.ts +0 -1
- package/build/chunk-3PWMRP6G.mjs +0 -16
- package/build/chunk-52JR26TI.mjs +0 -29
- package/build/chunk-5LNOA4SK.mjs +0 -16
- package/build/chunk-AUGL35CF.mjs +0 -24
- package/build/chunk-BYYJRCB4.mjs +0 -10
- package/build/chunk-FFRJ4AUA.mjs +0 -16
- package/build/chunk-GPJSLV3Q.mjs +0 -50
- package/build/chunk-HVFHDVAH.mjs +0 -20
- package/build/chunk-IOCHNQMF.mjs +0 -13
- package/build/chunk-JATYBWHL.mjs +0 -36
- package/build/chunk-JWNBO7XV.mjs +0 -53
- package/build/chunk-K4IQQ2KF.mjs +0 -55
- package/build/chunk-K4KLOLSO.mjs +0 -645
- package/build/chunk-M2RZZJQR.mjs +0 -27
- package/build/chunk-MLFGBJDV.mjs +0 -12
- package/build/chunk-NB62GSFI.mjs +0 -27
- package/build/chunk-O7R3NJQN.mjs +0 -19
- package/build/chunk-P2YCCBFR.mjs +0 -14
- package/build/chunk-P3IRIFPT.mjs +0 -53
- package/build/chunk-QFSXFOEN.mjs +0 -56
- package/build/chunk-QHCQ4AUA.mjs +0 -14
- package/build/chunk-QI7OFSXB.mjs +0 -37
- package/build/chunk-RVH2YBNU.mjs +0 -111
- package/build/chunk-RXG7754R.mjs +0 -25
- package/build/chunk-S3ONGVNZ.mjs +0 -11
- package/build/chunk-SRR4467I.mjs +0 -29
- package/build/chunk-T6L55AUG.mjs +0 -32
- package/build/chunk-TOJFTPAY.mjs +0 -83
- package/build/chunk-UAPCBU3J.mjs +0 -12
- package/build/chunk-UCHBN3DV.mjs +0 -52
- package/build/chunk-UWM46HLZ.mjs +0 -18
- package/build/chunk-UZFCGVHP.mjs +0 -8
- package/build/chunk-VQINCGLQ.mjs +0 -59
- package/build/chunk-VRL4S7UF.mjs +0 -74
- package/build/chunk-WAWFDMOH.mjs +0 -72
- package/build/chunk-X3JFRRRQ.mjs +0 -45
- package/build/chunk-XFBLELHI.mjs +0 -34
- package/build/chunk-XIGE72LC.mjs +0 -34
- package/build/chunk-XW7EPAD7.mjs +0 -0
- package/build/chunk-YGIZFKLJ.mjs +0 -20
- package/build/chunk-YRVIAORI.mjs +0 -8
- package/build/chunk-YXU5W2CB.mjs +0 -12
- package/build/commands/artifact.command.d.ts +0 -14
- package/build/commands/artifact.command.mjs +0 -59
- package/build/commands/build.command.d.ts +0 -14
- package/build/commands/build.command.mjs +0 -65
- package/build/commands/develop.command.d.ts +0 -13
- package/build/commands/develop.command.mjs +0 -75
- package/build/commands/grafts.command.d.ts +0 -12
- package/build/commands/grafts.command.mjs +0 -58
- package/build/commands/start.command.d.ts +0 -12
- package/build/commands/start.command.mjs +0 -64
- package/build/core/application.d.ts +0 -27
- package/build/core/application.mjs +0 -124
- package/build/core/artifact.d.ts +0 -19
- package/build/core/artifact.mjs +0 -133
- package/build/core/builder.d.ts +0 -35
- package/build/core/builder.mjs +0 -45
- package/build/core/bytes.util.d.ts +0 -6
- package/build/core/bytes.util.mjs +0 -8
- package/build/core/command.d.ts +0 -15
- package/build/core/command.mjs +0 -6
- package/build/core/commands.d.ts +0 -13
- package/build/core/commands.mjs +0 -7
- package/build/core/config.d.ts +0 -10
- package/build/core/config.mjs +0 -7
- package/build/core/context.d.ts +0 -15
- package/build/core/context.mjs +0 -6
- package/build/core/controller/builder.d.ts +0 -10
- package/build/core/controller/builder.mjs +0 -45
- package/build/core/controller/compiler.d.ts +0 -6
- package/build/core/controller/compiler.mjs +0 -45
- package/build/core/controller/index.d.ts +0 -13
- package/build/core/controller/index.mjs +0 -50
- package/build/core/controller/metadata.d.ts +0 -10
- package/build/core/controller/metadata.mjs +0 -6
- package/build/core/directories.d.ts +0 -11
- package/build/core/directories.mjs +0 -8
- package/build/core/hmr.d.ts +0 -22
- package/build/core/hmr.mjs +0 -6
- package/build/core/hooks.d.ts +0 -12
- package/build/core/hooks.mjs +0 -6
- package/build/core/index.d.ts +0 -41
- package/build/core/index.mjs +0 -100
- package/build/core/middleware/compose.d.ts +0 -8
- package/build/core/middleware/compose.mjs +0 -6
- package/build/core/middleware/index.d.ts +0 -6
- package/build/core/middleware/index.mjs +0 -11
- package/build/core/middleware/pipeline.d.ts +0 -14
- package/build/core/middleware/pipeline.mjs +0 -7
- package/build/core/plugins/index.d.ts +0 -14
- package/build/core/plugins/index.mjs +0 -48
- package/build/core/plugins/plugin.d.ts +0 -17
- package/build/core/plugins/plugin.mjs +0 -6
- package/build/core/plugins/scope.d.ts +0 -24
- package/build/core/plugins/scope.mjs +0 -45
- package/build/core/process.util.d.ts +0 -3
- package/build/core/process.util.mjs +0 -6
- package/build/core/raiton.d.ts +0 -20
- package/build/core/raiton.mjs +0 -6
- package/build/core/router/handler.d.ts +0 -10
- package/build/core/router/handler.mjs +0 -45
- package/build/core/router/index.d.ts +0 -12
- package/build/core/router/index.mjs +0 -54
- package/build/core/router/matcher.d.ts +0 -21
- package/build/core/router/matcher.mjs +0 -6
- package/build/core/router/route.d.ts +0 -20
- package/build/core/router/route.mjs +0 -6
- package/build/core/router/router.d.ts +0 -16
- package/build/core/router/router.mjs +0 -8
- package/build/core/thread.d.ts +0 -30
- package/build/core/thread.mjs +0 -45
- package/build/env.d.d.ts +0 -2
- package/build/env.d.mjs +0 -0
- package/build/raiton-1.1.1.tgz +0 -0
- package/build/requirements.d.ts +0 -2
- package/build/requirements.mjs +0 -19
- package/build/sdk/artifacts.d.ts +0 -13
- package/build/sdk/artifacts.mjs +0 -45
- package/build/sdk/constants/decorators.constant.d.ts +0 -11
- package/build/sdk/constants/decorators.constant.mjs +0 -6
- package/build/sdk/constants/index.d.ts +0 -2
- package/build/sdk/constants/index.mjs +0 -11
- package/build/sdk/constants/microservices.constant.d.ts +0 -5
- package/build/sdk/constants/microservices.constant.mjs +0 -6
- package/build/sdk/controllers.d.ts +0 -4
- package/build/sdk/controllers.mjs +0 -6
- package/build/sdk/data-transfer-object.d.ts +0 -7
- package/build/sdk/data-transfer-object.mjs +0 -7
- package/build/sdk/decorators/access-guard.decorator.d.ts +0 -2
- package/build/sdk/decorators/access-guard.decorator.mjs +0 -0
- package/build/sdk/decorators/controllable.d.ts +0 -3
- package/build/sdk/decorators/controllable.mjs +0 -45
- package/build/sdk/decorators/controllers.decorator.d.ts +0 -2
- package/build/sdk/decorators/controllers.decorator.mjs +0 -0
- package/build/sdk/decorators/grafts.decorator.d.ts +0 -2
- package/build/sdk/decorators/grafts.decorator.mjs +0 -0
- package/build/sdk/decorators/index.d.ts +0 -3
- package/build/sdk/decorators/index.mjs +0 -75
- package/build/sdk/decorators/parameters.decorator.d.ts +0 -2
- package/build/sdk/decorators/parameters.decorator.mjs +0 -0
- package/build/sdk/decorators/parametrable.d.ts +0 -9
- package/build/sdk/decorators/parametrable.mjs +0 -57
- package/build/sdk/decorators/payload.decorator.d.ts +0 -2
- package/build/sdk/decorators/payload.decorator.mjs +0 -0
- package/build/sdk/decorators/routable.d.ts +0 -10
- package/build/sdk/decorators/routable.mjs +0 -59
- package/build/sdk/dependency-container.d.ts +0 -19
- package/build/sdk/dependency-container.mjs +0 -46
- package/build/sdk/encryption.d.ts +0 -27
- package/build/sdk/encryption.mjs +0 -141
- package/build/sdk/enums/encrypted.enum.d.ts +0 -15
- package/build/sdk/enums/encrypted.enum.mjs +0 -6
- package/build/sdk/enums/event.message.enum.d.ts +0 -6
- package/build/sdk/enums/event.message.enum.mjs +0 -6
- package/build/sdk/enums/http-parameters.enum.mjs +0 -6
- package/build/sdk/enums/http.enum.d.ts +0 -12
- package/build/sdk/enums/http.enum.mjs +0 -6
- package/build/sdk/enums/index.d.ts +0 -6
- package/build/sdk/enums/index.mjs +0 -27
- package/build/sdk/enums/runtime.enum.mjs +0 -6
- package/build/sdk/enums/timestamp.enum.mjs +0 -6
- package/build/sdk/env.d.ts +0 -6
- package/build/sdk/env.mjs +0 -74
- package/build/sdk/fastify.d.ts +0 -11
- package/build/sdk/fastify.mjs +0 -9
- package/build/sdk/grafts.d.ts +0 -15
- package/build/sdk/grafts.mjs +0 -71
- package/build/sdk/index.d.ts +0 -34
- package/build/sdk/index.mjs +0 -126
- package/build/sdk/json.d.ts +0 -17
- package/build/sdk/json.mjs +0 -87
- package/build/sdk/plugins/body-parser.plugin.d.ts +0 -17
- package/build/sdk/plugins/body-parser.plugin.mjs +0 -7
- package/build/sdk/plugins/index.d.ts +0 -17
- package/build/sdk/plugins/index.mjs +0 -48
- package/build/sdk/plugins/security/body-limit.d.ts +0 -17
- package/build/sdk/plugins/security/body-limit.mjs +0 -45
- package/build/sdk/plugins/security/cors.d.ts +0 -22
- package/build/sdk/plugins/security/cors.mjs +0 -45
- package/build/sdk/plugins/security/headers.d.ts +0 -17
- package/build/sdk/plugins/security/headers.mjs +0 -45
- package/build/sdk/plugins/security/index.d.ts +0 -25
- package/build/sdk/plugins/security/index.mjs +0 -45
- package/build/sdk/plugins/security/method-guard.d.ts +0 -17
- package/build/sdk/plugins/security/method-guard.mjs +0 -45
- package/build/sdk/plugins/security/rate-limit.d.ts +0 -21
- package/build/sdk/plugins/security/rate-limit.mjs +0 -45
- package/build/sdk/repositories.d.ts +0 -7
- package/build/sdk/repositories.mjs +0 -17
- package/build/sdk/request.d.ts +0 -4
- package/build/sdk/request.mjs +0 -6
- package/build/sdk/responses.d.ts +0 -8
- package/build/sdk/responses.mjs +0 -20
- package/build/sdk/routes.d.ts +0 -7
- package/build/sdk/routes.mjs +0 -61
- package/build/sdk/runtime/bun/server.d.ts +0 -6
- package/build/sdk/runtime/bun/server.mjs +0 -6
- package/build/sdk/runtime/deno/server.d.ts +0 -6
- package/build/sdk/runtime/deno/server.mjs +0 -6
- package/build/sdk/runtime/index.d.ts +0 -15
- package/build/sdk/runtime/index.mjs +0 -11
- package/build/sdk/runtime/node/reply.d.ts +0 -2
- package/build/sdk/runtime/node/reply.mjs +0 -0
- package/build/sdk/runtime/node/request.d.ts +0 -2
- package/build/sdk/runtime/node/request.mjs +0 -0
- package/build/sdk/runtime/node/server.d.ts +0 -6
- package/build/sdk/runtime/node/server.mjs +0 -6
- package/build/sdk/runtime/web/server.d.ts +0 -6
- package/build/sdk/runtime/web/server.mjs +0 -6
- package/build/sdk/schemes.d.ts +0 -120
- package/build/sdk/schemes.mjs +0 -129
- package/build/sdk/services.d.ts +0 -8
- package/build/sdk/services.mjs +0 -10
- package/build/sdk/throwable.mjs +0 -14
- package/build/sdk/utilities/alias-path.util.d.ts +0 -9
- package/build/sdk/utilities/alias-path.util.mjs +0 -6
- package/build/sdk/utilities/artifacts.util.d.ts +0 -3
- package/build/sdk/utilities/artifacts.util.mjs +0 -45
- package/build/sdk/utilities/callable.util.d.ts +0 -3
- package/build/sdk/utilities/callable.util.mjs +0 -6
- package/build/sdk/utilities/controller.util.d.ts +0 -3
- package/build/sdk/utilities/controller.util.mjs +0 -6
- package/build/sdk/utilities/index.d.ts +0 -7
- package/build/sdk/utilities/index.mjs +0 -62
- package/build/sdk/utilities/json.util.d.ts +0 -3
- package/build/sdk/utilities/json.util.mjs +0 -6
- package/build/sdk/utilities/parameters-arguments.util.d.ts +0 -2
- package/build/sdk/utilities/parameters-arguments.util.mjs +0 -0
- package/build/sdk/utilities/url.d.ts +0 -3
- package/build/sdk/utilities/url.mjs +0 -7
- package/build/sdk/utilities/utilities.util.d.ts +0 -6
- package/build/sdk/utilities/utilities.util.mjs +0 -8
- package/build/types/access-guards.d.ts +0 -6
- package/build/types/access-guards.mjs +0 -0
- package/build/types/application.mjs +0 -0
- package/build/types/artifact.d.ts +0 -21
- package/build/types/artifact.mjs +0 -0
- package/build/types/builder.d.ts +0 -32
- package/build/types/builder.mjs +0 -0
- package/build/types/config.d.ts +0 -6
- package/build/types/config.mjs +0 -0
- package/build/types/controller.d.ts +0 -25
- package/build/types/controller.mjs +0 -0
- package/build/types/contruct.d.ts +0 -3
- package/build/types/contruct.mjs +0 -0
- package/build/types/core.d.ts +0 -15
- package/build/types/core.mjs +0 -0
- package/build/types/data-transfer-object.d.ts +0 -5
- package/build/types/data-transfer-object.mjs +0 -0
- package/build/types/dependency-container.d.ts +0 -20
- package/build/types/dependency-container.mjs +0 -0
- package/build/types/directory.mjs +0 -0
- package/build/types/encryption.d.ts +0 -16
- package/build/types/encryption.mjs +0 -0
- package/build/types/generic.d.ts +0 -4
- package/build/types/generic.mjs +0 -0
- package/build/types/hmr.d.ts +0 -25
- package/build/types/hmr.mjs +0 -0
- package/build/types/http-responses.d.ts +0 -10
- package/build/types/http-responses.mjs +0 -0
- package/build/types/index.d.ts +0 -45
- package/build/types/index.mjs +0 -0
- package/build/types/middleware.d.ts +0 -12
- package/build/types/middleware.mjs +0 -0
- package/build/types/parameters.d.ts +0 -19
- package/build/types/parameters.mjs +0 -0
- package/build/types/parseable.d.ts +0 -5
- package/build/types/parseable.mjs +0 -0
- package/build/types/payload.d.ts +0 -6
- package/build/types/payload.mjs +0 -0
- package/build/types/plugin.d.ts +0 -20
- package/build/types/plugin.mjs +0 -0
- package/build/types/raiton.d.ts +0 -12
- package/build/types/raiton.mjs +0 -0
- package/build/types/repositories.d.ts +0 -8
- package/build/types/repositories.mjs +0 -0
- package/build/types/router.d.ts +0 -14
- package/build/types/router.mjs +0 -0
- package/build/types/runtime.d.ts +0 -37
- package/build/types/runtime.mjs +0 -0
- package/build/types/scheme.mjs +0 -0
- package/build/types/server.d.ts +0 -57
- package/build/types/server.mjs +0 -0
- package/build/types/services.d.ts +0 -8
- package/build/types/services.mjs +0 -0
- package/build/types/thread.d.ts +0 -24
- package/build/types/thread.mjs +0 -0
- package/build/types/utilities.d.ts +0 -6
- package/build/types/utilities.mjs +0 -0
- package/build/types/values.d.ts +0 -4
- package/build/types/values.mjs +0 -0
- /package/{build/chunk-4OWCGDUD.mjs → source/sdk/runtime/node/reply.ts} +0 -0
- /package/{build/chunk-DIWD7ZCJ.mjs → source/sdk/runtime/node/request.ts} +0 -0
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
import {RaitonConfig} from "./config";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import {RaitonDirectories} from "./directories";
|
|
4
|
+
import fs, {WatchEventType} from "node:fs";
|
|
5
|
+
import type {BuilderConfig, BuilderInterface,} from "@/types";
|
|
6
|
+
import {RaitonThread} from "./thread";
|
|
7
|
+
import {Raiton} from "@/core/raiton";
|
|
8
|
+
import {isControllerArtifact, isServiceArtifact} from "@/sdk";
|
|
9
|
+
import {ControllerBuilder} from "@/core/controller";
|
|
10
|
+
import {watch} from "fs";
|
|
11
|
+
import {LBadge, Logger} from "@protorians/logger";
|
|
12
|
+
import {Throwable} from "@/sdk/exceptions";
|
|
13
|
+
import {Injection} from "@/core/injection";
|
|
14
|
+
import {Artifacts} from "@/sdk/artifacts";
|
|
15
|
+
|
|
16
|
+
export class RaitonBuilder implements BuilderInterface {
|
|
17
|
+
protected _source: string | null = null;
|
|
18
|
+
protected _out: string | null = null;
|
|
19
|
+
protected _bootstrapper: string | null = null;
|
|
20
|
+
protected _bootstrapperFile: string | null = null;
|
|
21
|
+
protected _compiledVersionNumber: number = 1;
|
|
22
|
+
protected _watcher?: fs.FSWatcher;
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
constructor(
|
|
26
|
+
public readonly workdir: string,
|
|
27
|
+
public readonly options: BuilderConfig = {},
|
|
28
|
+
) {
|
|
29
|
+
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
public get source(): string | null {
|
|
33
|
+
return this._source;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
public get out(): string | null {
|
|
37
|
+
return this._out;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
public get bootstrapper(): string | null {
|
|
41
|
+
return this._bootstrapper;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
public get bootstrapperFile(): string | null {
|
|
45
|
+
return this._bootstrapperFile
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
public get watcher(): fs.FSWatcher | undefined {
|
|
49
|
+
return this._watcher;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
protected async parse(filename: string, type?: WatchEventType) {
|
|
53
|
+
if (!fs.existsSync(filename)) return;
|
|
54
|
+
|
|
55
|
+
const payload = {
|
|
56
|
+
filename,
|
|
57
|
+
timestamp: Date.now(),
|
|
58
|
+
version: this._compiledVersionNumber,
|
|
59
|
+
type
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
Logger.log(LBadge.info('HMR'), 'activated');
|
|
63
|
+
|
|
64
|
+
if (isControllerArtifact(filename)) {
|
|
65
|
+
Raiton.signals.dispatch('hmr:controller', payload)
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
if (Artifacts.is(filename))
|
|
69
|
+
Artifacts.reload(
|
|
70
|
+
await import(`${filename}?v=${payload.version || 1}&t=${payload.timestamp || Date.now()}`),
|
|
71
|
+
filename
|
|
72
|
+
)
|
|
73
|
+
|
|
74
|
+
return payload;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
protected async parsing(): Promise<this> {
|
|
78
|
+
if (typeof this._source != 'string') throw new Throwable('Application source not found');
|
|
79
|
+
|
|
80
|
+
for (const filename of [...fs.readdirSync(this._source, {recursive: true})])
|
|
81
|
+
await this.parse(path.join(this._source, String(filename)));
|
|
82
|
+
|
|
83
|
+
return this;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
protected watching(): this {
|
|
87
|
+
if (typeof this._source != 'string') throw new Throwable('Application source not found');
|
|
88
|
+
|
|
89
|
+
this._watcher = watch(this._source, {recursive: true}, (event, relativePath) => {
|
|
90
|
+
if (this._source && relativePath) {
|
|
91
|
+
this.parse(path.join(this._source, relativePath));
|
|
92
|
+
}
|
|
93
|
+
});
|
|
94
|
+
|
|
95
|
+
return this;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
protected async initialize(): Promise<this> {
|
|
99
|
+
const rootDir = RaitonConfig.get('rootDir') || './';
|
|
100
|
+
this._source = path.resolve(this.workdir, rootDir);
|
|
101
|
+
this._out = path.resolve(this.workdir, RaitonDirectories.server(this.workdir));
|
|
102
|
+
|
|
103
|
+
if (!fs.existsSync(this._source))
|
|
104
|
+
throw new Error(`Source directory "${this._source}" does not exists`)
|
|
105
|
+
|
|
106
|
+
if (!fs.existsSync(this._out))
|
|
107
|
+
fs.mkdirSync(this._out, {recursive: true})
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
this._bootstrapper = path.join(this._source, RaitonDirectories.bootstrapFile)
|
|
111
|
+
this._bootstrapperFile = path.join(RaitonDirectories.server('./'), RaitonDirectories.bootstrapFile)
|
|
112
|
+
|
|
113
|
+
return this;
|
|
114
|
+
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
public async prepare(): Promise<this> {
|
|
118
|
+
await this.initialize()
|
|
119
|
+
Raiton.signals.listen(
|
|
120
|
+
'hmr:controller',
|
|
121
|
+
async ({filename, version, timestamp}) => {
|
|
122
|
+
await ControllerBuilder.build({filename, version, timestamp})
|
|
123
|
+
}
|
|
124
|
+
)
|
|
125
|
+
// this.parsing();
|
|
126
|
+
this.watching();
|
|
127
|
+
return this;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
public async boot(): Promise<any> {
|
|
131
|
+
if (!this.bootstrapper) throw new Error('Bootstrapper not found')
|
|
132
|
+
if (!fs.existsSync(this.bootstrapper))
|
|
133
|
+
throw new Error(`Bootstrapper file "${this.bootstrapper}" does not exists`)
|
|
134
|
+
|
|
135
|
+
const bootstrapper = await import(this.bootstrapper);
|
|
136
|
+
if (!('default' in bootstrapper))
|
|
137
|
+
throw new Error('Bootstrapper not supported! Please export to "default"')
|
|
138
|
+
|
|
139
|
+
const thread = new RaitonThread(this, {})
|
|
140
|
+
Raiton.thread = thread;
|
|
141
|
+
return await bootstrapper.default(thread);
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import {FileSizeFormated} from "../types";
|
|
2
|
+
|
|
3
|
+
export function parseBytes(bytes: number, decimals = 2): FileSizeFormated {
|
|
4
|
+
if (bytes === 0) return {size: 0, unit: "o"};
|
|
5
|
+
|
|
6
|
+
const k = 1024;
|
|
7
|
+
const units = ["o", "Ko", "Mo", "Go", "To"];
|
|
8
|
+
const i = Math.floor(Math.log(bytes) / Math.log(k));
|
|
9
|
+
|
|
10
|
+
const size = parseFloat((bytes / Math.pow(k, i)).toFixed(decimals));
|
|
11
|
+
return {size, unit: units[i]}
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export function formatBytes(bytes: number, decimals = 2): string {
|
|
15
|
+
const {size, unit} = parseBytes(bytes, decimals);
|
|
16
|
+
return `${size.toString().trim()}${unit.trim()}`;
|
|
17
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import {Command} from "commander";
|
|
2
|
+
|
|
3
|
+
export class RaitonCommand {
|
|
4
|
+
|
|
5
|
+
public readonly name: string = '';
|
|
6
|
+
public readonly description?: string;
|
|
7
|
+
public readonly version: string = '0.0.0';
|
|
8
|
+
public readonly enabled: boolean = true;
|
|
9
|
+
|
|
10
|
+
public constructor(
|
|
11
|
+
public readonly cli: Command,
|
|
12
|
+
public readonly workdir: string,
|
|
13
|
+
public readonly appdir: string = ''
|
|
14
|
+
) {
|
|
15
|
+
this.construct()
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
public construct(): void {
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
public register(): void {
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import {Command} from "commander";
|
|
2
|
+
import {RaitonCommand} from "./command";
|
|
3
|
+
import fs from 'node:fs';
|
|
4
|
+
import path from "node:path";
|
|
5
|
+
import {Logger} from "@protorians/logger";
|
|
6
|
+
|
|
7
|
+
export class RaitonCommands {
|
|
8
|
+
|
|
9
|
+
public readonly stack: Set<RaitonCommand> = new Set();
|
|
10
|
+
|
|
11
|
+
constructor(
|
|
12
|
+
public readonly cli: Command,
|
|
13
|
+
public readonly appdir: string,
|
|
14
|
+
public readonly workdir: string
|
|
15
|
+
) {
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
public async harvest(): Promise<void> {
|
|
19
|
+
const dir = path.join(this.appdir, 'commands');
|
|
20
|
+
|
|
21
|
+
if (!fs.existsSync(dir)) {
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
const files = fs.readdirSync(dir);
|
|
26
|
+
|
|
27
|
+
for (const file of files) {
|
|
28
|
+
if (file.startsWith('~')) continue;
|
|
29
|
+
if (file.endsWith('.d.ts')) continue;
|
|
30
|
+
if (!file.includes('.command.')) continue;
|
|
31
|
+
|
|
32
|
+
const filepath = path.join(dir, file);
|
|
33
|
+
const mod = await import(filepath);
|
|
34
|
+
|
|
35
|
+
const capability = new mod.default(this.cli, this.workdir, this.appdir)
|
|
36
|
+
|
|
37
|
+
if (!(capability instanceof RaitonCommand)) continue;
|
|
38
|
+
|
|
39
|
+
capability.register();
|
|
40
|
+
this.stack.add(capability);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
}
|
|
44
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import path from "node:path";
|
|
2
|
+
import fs from "node:fs";
|
|
3
|
+
import {Configurable} from "@/types";
|
|
4
|
+
import {Logger} from "@protorians/logger";
|
|
5
|
+
import {Raiton} from "@/core/raiton";
|
|
6
|
+
|
|
7
|
+
export class RaitonConfig {
|
|
8
|
+
static readonly current: Map<keyof Configurable, Configurable[keyof Configurable]> = new Map();
|
|
9
|
+
|
|
10
|
+
protected static _extensions: string[] = ['.js', '.mjs'];
|
|
11
|
+
|
|
12
|
+
static get<K extends keyof Configurable>(key: K): Configurable[K] | undefined {
|
|
13
|
+
return this.current.get(key) as Configurable[K];
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
static defaultConfig: Configurable = {
|
|
17
|
+
rootDir: '.',
|
|
18
|
+
version: '0.0.1'
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
static async sync(workdir: string) {
|
|
22
|
+
try {
|
|
23
|
+
if (!this.current.size) {
|
|
24
|
+
const configJsonPath = path.join(workdir, `${Raiton.identifier}.config.json`);
|
|
25
|
+
|
|
26
|
+
if (fs.existsSync(configJsonPath)) {
|
|
27
|
+
const configContent = fs.readFileSync(configJsonPath, 'utf-8');
|
|
28
|
+
for (const [key, value] of Object.entries({...this.defaultConfig, ...(JSON.parse(configContent) || {})}))
|
|
29
|
+
this.current.set(key as keyof Configurable, value as Configurable[keyof Configurable]);
|
|
30
|
+
} else {
|
|
31
|
+
for (const ext of this._extensions) {
|
|
32
|
+
const configPath = path.join(workdir, `${Raiton.identifier}.config${ext}`);
|
|
33
|
+
if (fs.existsSync(configPath)) {
|
|
34
|
+
const configModule = await import(configPath);
|
|
35
|
+
const config = await configModule?.default || configModule;
|
|
36
|
+
for (const [key, value] of Object.entries(config)) {
|
|
37
|
+
this.current.set(key as keyof Configurable, value as Configurable[keyof Configurable]);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
return this.current;
|
|
45
|
+
} catch (e: any) {
|
|
46
|
+
Logger.error(`Failed to load ${Raiton.identifier} config:`, e.message ?? e);
|
|
47
|
+
return this.current;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
}
|
|
51
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import {Configurable} from "@/types/config";
|
|
2
|
+
import {JsonUtil} from "@/sdk/utilities";
|
|
3
|
+
|
|
4
|
+
export async function defineConfig(config?: Configurable) {
|
|
5
|
+
const workdir = process.cwd();
|
|
6
|
+
const pkg = JsonUtil.import(workdir + '/package.json');
|
|
7
|
+
|
|
8
|
+
config = {...config || {}, ...pkg.raitonConfig || {}} as Configurable;
|
|
9
|
+
config.rootDir = config.rootDir || './';
|
|
10
|
+
config.version = config.version || pkg.version || '0.0.1';
|
|
11
|
+
|
|
12
|
+
return config;
|
|
13
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type {
|
|
2
|
+
RuntimeRequestInterface,
|
|
3
|
+
RuntimeReplyInterface
|
|
4
|
+
} from '@/types'
|
|
5
|
+
|
|
6
|
+
export class RequestContext {
|
|
7
|
+
public state: Record<string, any> = {}
|
|
8
|
+
private decorations = new Map<string, any>()
|
|
9
|
+
|
|
10
|
+
constructor(
|
|
11
|
+
public req: RuntimeRequestInterface,
|
|
12
|
+
public reply: RuntimeReplyInterface
|
|
13
|
+
) {}
|
|
14
|
+
|
|
15
|
+
decorate<T = any>(key: string, value: T) {
|
|
16
|
+
if (this.decorations.has(key)) {
|
|
17
|
+
throw new Error(`Decoration "${key}" already exists`)
|
|
18
|
+
}
|
|
19
|
+
this.decorations.set(key, value)
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
get<T = any>(key: string): T {
|
|
23
|
+
if (key in this.state) return this.state[key]
|
|
24
|
+
if (this.decorations.has(key)) {
|
|
25
|
+
return this.decorations.get(key)
|
|
26
|
+
}
|
|
27
|
+
throw new Error(`Context value "${key}" not found`)
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
send(body: any) {
|
|
31
|
+
this.reply.send(body)
|
|
32
|
+
}
|
|
33
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import fs from "node:fs";
|
|
2
|
+
import {BuilderHMRDeclaration} from "@/types";
|
|
3
|
+
import {LBadge, Logger} from "@protorians/logger";
|
|
4
|
+
import {compileController} from "@/core/controller/compiler";
|
|
5
|
+
import {RaitonThread} from "@/core/thread";
|
|
6
|
+
import {Injection} from "@/core/injection";
|
|
7
|
+
import {isControllerArtifact} from "@/sdk";
|
|
8
|
+
import path from "node:path";
|
|
9
|
+
|
|
10
|
+
export class ControllerBuilder {
|
|
11
|
+
|
|
12
|
+
static async scan(workdir: string) {
|
|
13
|
+
const files = fs.readdirSync(workdir, {recursive: true})
|
|
14
|
+
.map(file => file.toString());
|
|
15
|
+
const output: any[] = []
|
|
16
|
+
|
|
17
|
+
for (const file of files) {
|
|
18
|
+
output.push(await this.build<any>({filename: path.join(workdir, file), version: 1, timestamp: Date.now()}))
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
return output.filter(f => typeof f !== 'undefined');
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
static async build<T>({filename, version, timestamp}: BuilderHMRDeclaration): Promise<T | undefined> {
|
|
25
|
+
if (!isControllerArtifact(filename))
|
|
26
|
+
return undefined;
|
|
27
|
+
|
|
28
|
+
const imported = await import(`${filename}?v=${version || 1}&t=${timestamp || Date.now()}`)
|
|
29
|
+
const controller = imported.default || imported || undefined;
|
|
30
|
+
|
|
31
|
+
if (!controller) return undefined;
|
|
32
|
+
if (!RaitonThread.current?.application) return undefined;
|
|
33
|
+
|
|
34
|
+
const compilated = compileController(controller, RaitonThread.current.application);
|
|
35
|
+
const name = controller.name || (typeof controller === 'function' ? controller.name : undefined);
|
|
36
|
+
if (name) Injection.registerArtifactPath(name, filename);
|
|
37
|
+
|
|
38
|
+
return compilated;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import {ApplicationInterface} from "@/types/application";
|
|
2
|
+
import {getControllerMetadata} from "@/core";
|
|
3
|
+
import {createHandler} from "@/core/router";
|
|
4
|
+
import {Injection} from "@/core/injection";
|
|
5
|
+
import {ControllerMetaInterface} from "@/types";
|
|
6
|
+
|
|
7
|
+
export function compileController(
|
|
8
|
+
ControllerClass: any,
|
|
9
|
+
app: ApplicationInterface
|
|
10
|
+
) {
|
|
11
|
+
const instance: any = Injection.resolve<typeof ControllerClass>(ControllerClass)
|
|
12
|
+
const metadata: ControllerMetaInterface = getControllerMetadata(ControllerClass.prototype)
|
|
13
|
+
|
|
14
|
+
for (const route of metadata.routes)
|
|
15
|
+
app.route(
|
|
16
|
+
route.method as any,
|
|
17
|
+
`${metadata.prefix ?? ''}${route.path}`,
|
|
18
|
+
createHandler(instance, route, metadata),
|
|
19
|
+
)
|
|
20
|
+
|
|
21
|
+
return instance;
|
|
22
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import {ControllerMetaInterface} from "@/types";
|
|
2
|
+
import {METADATA_KEYS} from "@/sdk";
|
|
3
|
+
import "reflect-metadata";
|
|
4
|
+
|
|
5
|
+
export function getControllerMetadata(target: any): ControllerMetaInterface {
|
|
6
|
+
let metadata = Reflect.getMetadata(METADATA_KEYS.CONTROLLERS, target);
|
|
7
|
+
if (!metadata) {
|
|
8
|
+
metadata = {routes: [], middlewares: {}};
|
|
9
|
+
Reflect.defineMetadata(METADATA_KEYS.CONTROLLERS, metadata, target);
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
return metadata;
|
|
13
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import path from "node:path";
|
|
2
|
+
import {RaitonConfig} from "./config";
|
|
3
|
+
import {Raiton} from "@/core/raiton";
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
export class RaitonDirectories {
|
|
7
|
+
public static readonly index = `.${Raiton.identifier}`;
|
|
8
|
+
public static readonly bootstrapFile = 'main.ts';
|
|
9
|
+
// public static readonly bootstrapFile = 'main.js';
|
|
10
|
+
|
|
11
|
+
public static caches(workdir: string): string {
|
|
12
|
+
return path.join(workdir, this.index, 'caches');
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
public static artifacts(workdir: string): string {
|
|
16
|
+
return path.join(workdir, this.index, 'artifacts');
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
public static server(workdir: string): string {
|
|
20
|
+
return path.join(workdir, this.index, 'server');
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
public static root(workdir: string): string {
|
|
24
|
+
return path.join(workdir, this.index);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
public static app(): string {
|
|
28
|
+
return path.join(Raiton.thread?.builder.workdir || '', RaitonConfig.get('rootDir') || './');
|
|
29
|
+
}
|
|
30
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './raiton';
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import {HookName, HookHandler} from '@/types'
|
|
2
|
+
|
|
3
|
+
export class HookStore {
|
|
4
|
+
private hooks = new Map<HookName, HookHandler[]>()
|
|
5
|
+
|
|
6
|
+
add(name: HookName, handler: HookHandler) {
|
|
7
|
+
const list = this.hooks.get(name) ?? []
|
|
8
|
+
list.push(handler)
|
|
9
|
+
this.hooks.set(name, list)
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
async run(name: HookName, ctx: any) {
|
|
13
|
+
const list = this.hooks.get(name)
|
|
14
|
+
if (!list) return
|
|
15
|
+
|
|
16
|
+
for (const hook of list) {
|
|
17
|
+
await hook(ctx)
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
clone() {
|
|
22
|
+
const store = new HookStore()
|
|
23
|
+
for (const [key, value] of this.hooks) {
|
|
24
|
+
store.hooks.set(key, [...value])
|
|
25
|
+
}
|
|
26
|
+
return store
|
|
27
|
+
}
|
|
28
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export * from "./config"
|
|
2
|
+
export * from "./process.util"
|
|
3
|
+
export * from "./builder"
|
|
4
|
+
export * from "./bytes.util"
|
|
5
|
+
export * from "./commands"
|
|
6
|
+
export * from "./command"
|
|
7
|
+
export * from "./directories"
|
|
8
|
+
export * from "./raiton"
|
|
9
|
+
export * from "./thread"
|
|
10
|
+
export * from "./application"
|
|
11
|
+
export * from "./controller"
|
|
12
|
+
export * from "./plugins"
|
|
13
|
+
export * from "./middleware"
|
|
14
|
+
export * from "./router"
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './injection';
|