@connexia/application 1.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/LICENSE +190 -0
- package/dist/commands/command-dispatcher.d.ts +10 -0
- package/dist/commands/command-dispatcher.d.ts.map +1 -0
- package/dist/commands/command-dispatcher.js +16 -0
- package/dist/commands/command-dispatcher.js.map +1 -0
- package/dist/commands/command-dispatcher.test.d.ts +2 -0
- package/dist/commands/command-dispatcher.test.d.ts.map +1 -0
- package/dist/commands/command-dispatcher.test.js +32 -0
- package/dist/commands/command-dispatcher.test.js.map +1 -0
- package/dist/commands/command.d.ts +18 -0
- package/dist/commands/command.d.ts.map +1 -0
- package/dist/commands/command.js +9 -0
- package/dist/commands/command.js.map +1 -0
- package/dist/commands/command.test.d.ts +2 -0
- package/dist/commands/command.test.d.ts.map +1 -0
- package/dist/commands/command.test.js +25 -0
- package/dist/commands/command.test.js.map +1 -0
- package/dist/context/application-context.d.ts +30 -0
- package/dist/context/application-context.d.ts.map +1 -0
- package/dist/context/application-context.js +15 -0
- package/dist/context/application-context.js.map +1 -0
- package/dist/context/application-context.test.d.ts +2 -0
- package/dist/context/application-context.test.d.ts.map +1 -0
- package/dist/context/application-context.test.js +36 -0
- package/dist/context/application-context.test.js.map +1 -0
- package/dist/contracts/contracts.d.ts +45 -0
- package/dist/contracts/contracts.d.ts.map +1 -0
- package/dist/contracts/contracts.js +2 -0
- package/dist/contracts/contracts.js.map +1 -0
- package/dist/errors/application-errors.d.ts +63 -0
- package/dist/errors/application-errors.d.ts.map +1 -0
- package/dist/errors/application-errors.js +22 -0
- package/dist/errors/application-errors.js.map +1 -0
- package/dist/events/domain-event-middleware.d.ts +16 -0
- package/dist/events/domain-event-middleware.d.ts.map +1 -0
- package/dist/events/domain-event-middleware.js +19 -0
- package/dist/events/domain-event-middleware.js.map +1 -0
- package/dist/handlers/handler-registry.d.ts +16 -0
- package/dist/handlers/handler-registry.d.ts.map +1 -0
- package/dist/handlers/handler-registry.js +29 -0
- package/dist/handlers/handler-registry.js.map +1 -0
- package/dist/handlers/handler-registry.test.d.ts +2 -0
- package/dist/handlers/handler-registry.test.d.ts.map +1 -0
- package/dist/handlers/handler-registry.test.js +33 -0
- package/dist/handlers/handler-registry.test.js.map +1 -0
- package/dist/idempotency/idempotency-middleware.d.ts +17 -0
- package/dist/idempotency/idempotency-middleware.d.ts.map +1 -0
- package/dist/idempotency/idempotency-middleware.js +33 -0
- package/dist/idempotency/idempotency-middleware.js.map +1 -0
- package/dist/index.d.ts +25 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +17 -0
- package/dist/index.js.map +1 -0
- package/dist/infrastructure/event-adapter.d.ts +26 -0
- package/dist/infrastructure/event-adapter.d.ts.map +1 -0
- package/dist/infrastructure/event-adapter.js +35 -0
- package/dist/infrastructure/event-adapter.js.map +1 -0
- package/dist/infrastructure/event-publisher.d.ts +27 -0
- package/dist/infrastructure/event-publisher.d.ts.map +1 -0
- package/dist/infrastructure/event-publisher.js +79 -0
- package/dist/infrastructure/event-publisher.js.map +1 -0
- package/dist/infrastructure/execution-metrics.d.ts +15 -0
- package/dist/infrastructure/execution-metrics.d.ts.map +1 -0
- package/dist/infrastructure/execution-metrics.js +47 -0
- package/dist/infrastructure/execution-metrics.js.map +1 -0
- package/dist/infrastructure/idempotency-store.d.ts +24 -0
- package/dist/infrastructure/idempotency-store.d.ts.map +1 -0
- package/dist/infrastructure/idempotency-store.js +43 -0
- package/dist/infrastructure/idempotency-store.js.map +1 -0
- package/dist/infrastructure/index.d.ts +7 -0
- package/dist/infrastructure/index.d.ts.map +1 -0
- package/dist/infrastructure/index.js +7 -0
- package/dist/infrastructure/index.js.map +1 -0
- package/dist/infrastructure/infrastructure-config.d.ts +12 -0
- package/dist/infrastructure/infrastructure-config.d.ts.map +1 -0
- package/dist/infrastructure/infrastructure-config.js +22 -0
- package/dist/infrastructure/infrastructure-config.js.map +1 -0
- package/dist/infrastructure/transaction-manager.d.ts +6 -0
- package/dist/infrastructure/transaction-manager.d.ts.map +1 -0
- package/dist/infrastructure/transaction-manager.js +7 -0
- package/dist/infrastructure/transaction-manager.js.map +1 -0
- package/dist/pipeline/execution-pipeline.d.ts +10 -0
- package/dist/pipeline/execution-pipeline.d.ts.map +1 -0
- package/dist/pipeline/execution-pipeline.js +32 -0
- package/dist/pipeline/execution-pipeline.js.map +1 -0
- package/dist/pipeline/execution-pipeline.test.d.ts +2 -0
- package/dist/pipeline/execution-pipeline.test.d.ts.map +1 -0
- package/dist/pipeline/execution-pipeline.test.js +53 -0
- package/dist/pipeline/execution-pipeline.test.js.map +1 -0
- package/dist/queries/query-dispatcher.d.ts +10 -0
- package/dist/queries/query-dispatcher.d.ts.map +1 -0
- package/dist/queries/query-dispatcher.js +16 -0
- package/dist/queries/query-dispatcher.js.map +1 -0
- package/dist/queries/query-dispatcher.test.d.ts +2 -0
- package/dist/queries/query-dispatcher.test.d.ts.map +1 -0
- package/dist/queries/query-dispatcher.test.js +32 -0
- package/dist/queries/query-dispatcher.test.js.map +1 -0
- package/dist/queries/query.d.ts +18 -0
- package/dist/queries/query.d.ts.map +1 -0
- package/dist/queries/query.js +9 -0
- package/dist/queries/query.js.map +1 -0
- package/dist/results/execution-result.d.ts +18 -0
- package/dist/results/execution-result.d.ts.map +1 -0
- package/dist/results/execution-result.js +4 -0
- package/dist/results/execution-result.js.map +1 -0
- package/dist/runtime/application-runtime.d.ts +41 -0
- package/dist/runtime/application-runtime.d.ts.map +1 -0
- package/dist/runtime/application-runtime.js +135 -0
- package/dist/runtime/application-runtime.js.map +1 -0
- package/dist/runtime/application-runtime.test.d.ts +2 -0
- package/dist/runtime/application-runtime.test.d.ts.map +1 -0
- package/dist/runtime/application-runtime.test.js +91 -0
- package/dist/runtime/application-runtime.test.js.map +1 -0
- package/dist/shared/index.d.ts +12 -0
- package/dist/shared/index.d.ts.map +1 -0
- package/dist/shared/index.js +6 -0
- package/dist/shared/index.js.map +1 -0
- package/dist/transactions/transaction-middleware.d.ts +16 -0
- package/dist/transactions/transaction-middleware.d.ts.map +1 -0
- package/dist/transactions/transaction-middleware.js +26 -0
- package/dist/transactions/transaction-middleware.js.map +1 -0
- package/dist/usecases/audit/get-audit-event-count.d.ts +23 -0
- package/dist/usecases/audit/get-audit-event-count.d.ts.map +1 -0
- package/dist/usecases/audit/get-audit-event-count.js +19 -0
- package/dist/usecases/audit/get-audit-event-count.js.map +1 -0
- package/dist/usecases/audit/get-audit-events-by-resource.d.ts +33 -0
- package/dist/usecases/audit/get-audit-events-by-resource.d.ts.map +1 -0
- package/dist/usecases/audit/get-audit-events-by-resource.js +20 -0
- package/dist/usecases/audit/get-audit-events-by-resource.js.map +1 -0
- package/dist/usecases/audit/index.d.ts +4 -0
- package/dist/usecases/audit/index.d.ts.map +1 -0
- package/dist/usecases/audit/index.js +4 -0
- package/dist/usecases/audit/index.js.map +1 -0
- package/dist/usecases/audit/list-audit-events.d.ts +35 -0
- package/dist/usecases/audit/list-audit-events.d.ts.map +1 -0
- package/dist/usecases/audit/list-audit-events.js +20 -0
- package/dist/usecases/audit/list-audit-events.js.map +1 -0
- package/dist/usecases/build/cancel-build.d.ts +24 -0
- package/dist/usecases/build/cancel-build.d.ts.map +1 -0
- package/dist/usecases/build/cancel-build.js +19 -0
- package/dist/usecases/build/cancel-build.js.map +1 -0
- package/dist/usecases/build/get-build.d.ts +26 -0
- package/dist/usecases/build/get-build.d.ts.map +1 -0
- package/dist/usecases/build/get-build.js +19 -0
- package/dist/usecases/build/get-build.js.map +1 -0
- package/dist/usecases/build/index.d.ts +5 -0
- package/dist/usecases/build/index.d.ts.map +1 -0
- package/dist/usecases/build/index.js +5 -0
- package/dist/usecases/build/index.js.map +1 -0
- package/dist/usecases/build/list-builds.d.ts +32 -0
- package/dist/usecases/build/list-builds.d.ts.map +1 -0
- package/dist/usecases/build/list-builds.js +20 -0
- package/dist/usecases/build/list-builds.js.map +1 -0
- package/dist/usecases/build/trigger-build.d.ts +19 -0
- package/dist/usecases/build/trigger-build.d.ts.map +1 -0
- package/dist/usecases/build/trigger-build.js +19 -0
- package/dist/usecases/build/trigger-build.js.map +1 -0
- package/dist/usecases/deployment/create-deployment.d.ts +20 -0
- package/dist/usecases/deployment/create-deployment.d.ts.map +1 -0
- package/dist/usecases/deployment/create-deployment.js +19 -0
- package/dist/usecases/deployment/create-deployment.js.map +1 -0
- package/dist/usecases/deployment/get-deployment.d.ts +26 -0
- package/dist/usecases/deployment/get-deployment.d.ts.map +1 -0
- package/dist/usecases/deployment/get-deployment.js +19 -0
- package/dist/usecases/deployment/get-deployment.js.map +1 -0
- package/dist/usecases/deployment/index.d.ts +6 -0
- package/dist/usecases/deployment/index.d.ts.map +1 -0
- package/dist/usecases/deployment/index.js +6 -0
- package/dist/usecases/deployment/index.js.map +1 -0
- package/dist/usecases/deployment/list-deployments.d.ts +32 -0
- package/dist/usecases/deployment/list-deployments.d.ts.map +1 -0
- package/dist/usecases/deployment/list-deployments.js +20 -0
- package/dist/usecases/deployment/list-deployments.js.map +1 -0
- package/dist/usecases/deployment/promote-deployment.d.ts +26 -0
- package/dist/usecases/deployment/promote-deployment.d.ts.map +1 -0
- package/dist/usecases/deployment/promote-deployment.js +20 -0
- package/dist/usecases/deployment/promote-deployment.js.map +1 -0
- package/dist/usecases/deployment/rollback-deployment.d.ts +25 -0
- package/dist/usecases/deployment/rollback-deployment.d.ts.map +1 -0
- package/dist/usecases/deployment/rollback-deployment.js +20 -0
- package/dist/usecases/deployment/rollback-deployment.js.map +1 -0
- package/dist/usecases/environment/create-environment.d.ts +23 -0
- package/dist/usecases/environment/create-environment.d.ts.map +1 -0
- package/dist/usecases/environment/create-environment.js +19 -0
- package/dist/usecases/environment/create-environment.js.map +1 -0
- package/dist/usecases/environment/delete-environment.d.ts +23 -0
- package/dist/usecases/environment/delete-environment.d.ts.map +1 -0
- package/dist/usecases/environment/delete-environment.js +19 -0
- package/dist/usecases/environment/delete-environment.js.map +1 -0
- package/dist/usecases/environment/get-environment.d.ts +26 -0
- package/dist/usecases/environment/get-environment.d.ts.map +1 -0
- package/dist/usecases/environment/get-environment.js +19 -0
- package/dist/usecases/environment/get-environment.js.map +1 -0
- package/dist/usecases/environment/index.d.ts +6 -0
- package/dist/usecases/environment/index.d.ts.map +1 -0
- package/dist/usecases/environment/index.js +6 -0
- package/dist/usecases/environment/index.js.map +1 -0
- package/dist/usecases/environment/list-environments.d.ts +26 -0
- package/dist/usecases/environment/list-environments.d.ts.map +1 -0
- package/dist/usecases/environment/list-environments.js +22 -0
- package/dist/usecases/environment/list-environments.js.map +1 -0
- package/dist/usecases/environment/update-environment.d.ts +24 -0
- package/dist/usecases/environment/update-environment.d.ts.map +1 -0
- package/dist/usecases/environment/update-environment.js +19 -0
- package/dist/usecases/environment/update-environment.js.map +1 -0
- package/dist/usecases/index.d.ts +8 -0
- package/dist/usecases/index.d.ts.map +1 -0
- package/dist/usecases/index.js +8 -0
- package/dist/usecases/index.js.map +1 -0
- package/dist/usecases/organization/create-organization.d.ts +23 -0
- package/dist/usecases/organization/create-organization.d.ts.map +1 -0
- package/dist/usecases/organization/create-organization.js +19 -0
- package/dist/usecases/organization/create-organization.js.map +1 -0
- package/dist/usecases/organization/get-organization.d.ts +25 -0
- package/dist/usecases/organization/get-organization.d.ts.map +1 -0
- package/dist/usecases/organization/get-organization.js +19 -0
- package/dist/usecases/organization/get-organization.js.map +1 -0
- package/dist/usecases/organization/index.d.ts +4 -0
- package/dist/usecases/organization/index.d.ts.map +1 -0
- package/dist/usecases/organization/index.js +4 -0
- package/dist/usecases/organization/index.js.map +1 -0
- package/dist/usecases/organization/list-organizations.d.ts +27 -0
- package/dist/usecases/organization/list-organizations.d.ts.map +1 -0
- package/dist/usecases/organization/list-organizations.js +22 -0
- package/dist/usecases/organization/list-organizations.js.map +1 -0
- package/dist/usecases/project/create-project.d.ts +20 -0
- package/dist/usecases/project/create-project.d.ts.map +1 -0
- package/dist/usecases/project/create-project.js +19 -0
- package/dist/usecases/project/create-project.js.map +1 -0
- package/dist/usecases/project/get-project.d.ts +21 -0
- package/dist/usecases/project/get-project.d.ts.map +1 -0
- package/dist/usecases/project/get-project.js +19 -0
- package/dist/usecases/project/get-project.js.map +1 -0
- package/dist/usecases/project/index.d.ts +3 -0
- package/dist/usecases/project/index.d.ts.map +1 -0
- package/dist/usecases/project/index.js +3 -0
- package/dist/usecases/project/index.js.map +1 -0
- package/dist/usecases/secret/create-secret.d.ts +22 -0
- package/dist/usecases/secret/create-secret.d.ts.map +1 -0
- package/dist/usecases/secret/create-secret.js +19 -0
- package/dist/usecases/secret/create-secret.js.map +1 -0
- package/dist/usecases/secret/delete-secret.d.ts +23 -0
- package/dist/usecases/secret/delete-secret.d.ts.map +1 -0
- package/dist/usecases/secret/delete-secret.js +19 -0
- package/dist/usecases/secret/delete-secret.js.map +1 -0
- package/dist/usecases/secret/get-secret.d.ts +25 -0
- package/dist/usecases/secret/get-secret.d.ts.map +1 -0
- package/dist/usecases/secret/get-secret.js +19 -0
- package/dist/usecases/secret/get-secret.js.map +1 -0
- package/dist/usecases/secret/index.d.ts +6 -0
- package/dist/usecases/secret/index.d.ts.map +1 -0
- package/dist/usecases/secret/index.js +6 -0
- package/dist/usecases/secret/index.js.map +1 -0
- package/dist/usecases/secret/list-secrets.d.ts +31 -0
- package/dist/usecases/secret/list-secrets.d.ts.map +1 -0
- package/dist/usecases/secret/list-secrets.js +20 -0
- package/dist/usecases/secret/list-secrets.js.map +1 -0
- package/dist/usecases/secret/update-secret.d.ts +24 -0
- package/dist/usecases/secret/update-secret.d.ts.map +1 -0
- package/dist/usecases/secret/update-secret.js +19 -0
- package/dist/usecases/secret/update-secret.js.map +1 -0
- package/dist/validation/validation-middleware.d.ts +14 -0
- package/dist/validation/validation-middleware.d.ts.map +1 -0
- package/dist/validation/validation-middleware.js +28 -0
- package/dist/validation/validation-middleware.js.map +1 -0
- package/dist/validation/validation-middleware.test.d.ts +2 -0
- package/dist/validation/validation-middleware.test.d.ts.map +1 -0
- package/dist/validation/validation-middleware.test.js +26 -0
- package/dist/validation/validation-middleware.test.js.map +1 -0
- package/package.json +61 -0
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { Result, DomainError } from "@connexia/domain";
|
|
2
|
+
import type { Command, CommandHandler } from "../../commands/command.js";
|
|
3
|
+
import type { ApplicationContext } from "../../context/application-context.js";
|
|
4
|
+
import type { SecretService } from "@connexia/services";
|
|
5
|
+
export interface UpdateSecretInput {
|
|
6
|
+
readonly secretId: string;
|
|
7
|
+
readonly value: string;
|
|
8
|
+
}
|
|
9
|
+
export interface UpdateSecretOutput {
|
|
10
|
+
readonly secretId: string;
|
|
11
|
+
}
|
|
12
|
+
export declare class UpdateSecretCommand implements Command<UpdateSecretInput, UpdateSecretOutput> {
|
|
13
|
+
readonly input: UpdateSecretInput;
|
|
14
|
+
readonly commandType = "secret.update";
|
|
15
|
+
readonly version = 1;
|
|
16
|
+
constructor(input: UpdateSecretInput);
|
|
17
|
+
}
|
|
18
|
+
export declare class UpdateSecretCommandHandler implements CommandHandler<UpdateSecretInput, UpdateSecretOutput> {
|
|
19
|
+
private readonly secretService;
|
|
20
|
+
readonly commandType = "secret.update";
|
|
21
|
+
constructor(secretService: SecretService);
|
|
22
|
+
handle(command: Command<UpdateSecretInput, UpdateSecretOutput>, _context: ApplicationContext): Promise<Result<UpdateSecretOutput, DomainError>>;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=update-secret.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update-secret.d.ts","sourceRoot":"","sources":["../../../src/usecases/secret/update-secret.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AACzE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAC/E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,qBAAa,mBAAoB,YAAW,OAAO,CAAC,iBAAiB,EAAE,kBAAkB,CAAC;IAG5E,QAAQ,CAAC,KAAK,EAAE,iBAAiB;IAF7C,QAAQ,CAAC,WAAW,mBAAmB;IACvC,QAAQ,CAAC,OAAO,KAAK;gBACA,KAAK,EAAE,iBAAiB;CAC9C;AAED,qBAAa,0BAA2B,YAAW,cAAc,CAAC,iBAAiB,EAAE,kBAAkB,CAAC;IAG1F,OAAO,CAAC,QAAQ,CAAC,aAAa;IAF1C,QAAQ,CAAC,WAAW,mBAAmB;gBAEV,aAAa,EAAE,aAAa;IAEnD,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,iBAAiB,EAAE,kBAAkB,CAAC,EAAE,QAAQ,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC,kBAAkB,EAAE,WAAW,CAAC,CAAC;CAGtJ"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export class UpdateSecretCommand {
|
|
2
|
+
input;
|
|
3
|
+
commandType = "secret.update";
|
|
4
|
+
version = 1;
|
|
5
|
+
constructor(input) {
|
|
6
|
+
this.input = input;
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
export class UpdateSecretCommandHandler {
|
|
10
|
+
secretService;
|
|
11
|
+
commandType = "secret.update";
|
|
12
|
+
constructor(secretService) {
|
|
13
|
+
this.secretService = secretService;
|
|
14
|
+
}
|
|
15
|
+
async handle(command, _context) {
|
|
16
|
+
return this.secretService.updateSecret(command.input.secretId, command.input.value);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=update-secret.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update-secret.js","sourceRoot":"","sources":["../../../src/usecases/secret/update-secret.ts"],"names":[],"mappings":"AAcA,MAAM,OAAO,mBAAmB;IAGT;IAFZ,WAAW,GAAG,eAAe,CAAC;IAC9B,OAAO,GAAG,CAAC,CAAC;IACrB,YAAqB,KAAwB;QAAxB,UAAK,GAAL,KAAK,CAAmB;IAAG,CAAC;CAClD;AAED,MAAM,OAAO,0BAA0B;IAGR;IAFpB,WAAW,GAAG,eAAe,CAAC;IAEvC,YAA6B,aAA4B;QAA5B,kBAAa,GAAb,aAAa,CAAe;IAAG,CAAC;IAE7D,KAAK,CAAC,MAAM,CAAC,OAAuD,EAAE,QAA4B;QAChG,OAAO,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACtF,CAAC;CACF"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { Result, DomainError } from "@connexia/domain";
|
|
2
|
+
import type { z } from "zod";
|
|
3
|
+
import type { PipelineMiddleware } from "../contracts/contracts.js";
|
|
4
|
+
export interface Validatable {
|
|
5
|
+
readonly schema?: z.ZodType;
|
|
6
|
+
readonly input: unknown;
|
|
7
|
+
}
|
|
8
|
+
export declare class ValidationMiddleware implements PipelineMiddleware {
|
|
9
|
+
readonly name = "validation";
|
|
10
|
+
readonly order = 10;
|
|
11
|
+
validate(input: unknown, schema?: z.ZodType): Result<void, DomainError>;
|
|
12
|
+
execute(context: unknown, next: () => Promise<void>): Promise<void>;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=validation-middleware.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation-middleware.d.ts","sourceRoot":"","sources":["../../src/validation/validation-middleware.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE5D,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAGpE,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB;AAED,qBAAa,oBAAqB,YAAW,kBAAkB;IAC7D,QAAQ,CAAC,IAAI,gBAAgB;IAC7B,QAAQ,CAAC,KAAK,MAAM;IAEpB,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,GAAG,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC;IAajE,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;CAQ1E"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { ok, err } from "@connexia/domain";
|
|
2
|
+
import { createValidationError } from "../errors/application-errors.js";
|
|
3
|
+
export class ValidationMiddleware {
|
|
4
|
+
name = "validation";
|
|
5
|
+
order = 10;
|
|
6
|
+
validate(input, schema) {
|
|
7
|
+
if (!schema)
|
|
8
|
+
return ok(undefined);
|
|
9
|
+
const result = schema.safeParse(input);
|
|
10
|
+
if (result.success)
|
|
11
|
+
return ok(undefined);
|
|
12
|
+
const errors = result.error.issues.map((issue) => ({
|
|
13
|
+
field: issue.path.join("."),
|
|
14
|
+
message: issue.message,
|
|
15
|
+
}));
|
|
16
|
+
return err(createValidationError(errors));
|
|
17
|
+
}
|
|
18
|
+
async execute(context, next) {
|
|
19
|
+
const validatable = context;
|
|
20
|
+
if (validatable.schema) {
|
|
21
|
+
const result = this.validate(validatable.input, validatable.schema);
|
|
22
|
+
if (!result.ok)
|
|
23
|
+
throw result.error;
|
|
24
|
+
}
|
|
25
|
+
await next();
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=validation-middleware.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation-middleware.js","sourceRoot":"","sources":["../../src/validation/validation-middleware.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAG3C,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAOxE,MAAM,OAAO,oBAAoB;IACtB,IAAI,GAAG,YAAY,CAAC;IACpB,KAAK,GAAG,EAAE,CAAC;IAEpB,QAAQ,CAAC,KAAc,EAAE,MAAkB;QACzC,IAAI,CAAC,MAAM;YAAE,OAAO,EAAE,CAAC,SAAS,CAAC,CAAC;QAElC,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACvC,IAAI,MAAM,CAAC,OAAO;YAAE,OAAO,EAAE,CAAC,SAAS,CAAC,CAAC;QAEzC,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACjD,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;YAC3B,OAAO,EAAE,KAAK,CAAC,OAAO;SACvB,CAAC,CAAC,CAAC;QACJ,OAAO,GAAG,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,OAAgB,EAAE,IAAyB;QACvD,MAAM,WAAW,GAAG,OAAsB,CAAC;QAC3C,IAAI,WAAW,CAAC,MAAM,EAAE,CAAC;YACvB,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;YACpE,IAAI,CAAC,MAAM,CAAC,EAAE;gBAAE,MAAM,MAAM,CAAC,KAAK,CAAC;QACrC,CAAC;QACD,MAAM,IAAI,EAAE,CAAC;IACf,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation-middleware.test.d.ts","sourceRoot":"","sources":["../../src/validation/validation-middleware.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { describe, it, expect } from "vitest";
|
|
2
|
+
import { ValidationMiddleware } from "./validation-middleware.js";
|
|
3
|
+
import { z } from "zod";
|
|
4
|
+
describe("ValidationMiddleware", () => {
|
|
5
|
+
it("passes validation with no schema", () => {
|
|
6
|
+
const middleware = new ValidationMiddleware();
|
|
7
|
+
const result = middleware.validate({ anything: true });
|
|
8
|
+
expect(result.ok).toBe(true);
|
|
9
|
+
});
|
|
10
|
+
it("passes validation with valid input", () => {
|
|
11
|
+
const middleware = new ValidationMiddleware();
|
|
12
|
+
const schema = z.object({ name: z.string(), age: z.number() });
|
|
13
|
+
const result = middleware.validate({ name: "Test", age: 25 }, schema);
|
|
14
|
+
expect(result.ok).toBe(true);
|
|
15
|
+
});
|
|
16
|
+
it("fails validation with invalid input", () => {
|
|
17
|
+
const middleware = new ValidationMiddleware();
|
|
18
|
+
const schema = z.object({ name: z.string(), age: z.number() });
|
|
19
|
+
const result = middleware.validate({ name: 123, age: "not a number" }, schema);
|
|
20
|
+
expect(result.ok).toBe(false);
|
|
21
|
+
if (!result.ok) {
|
|
22
|
+
expect(result.error.code).toBe("VALIDATION_ERROR");
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
});
|
|
26
|
+
//# sourceMappingURL=validation-middleware.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation-middleware.test.js","sourceRoot":"","sources":["../../src/validation/validation-middleware.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;IACpC,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAC1C,MAAM,UAAU,GAAG,IAAI,oBAAoB,EAAE,CAAC;QAC9C,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QACvD,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;QAC5C,MAAM,UAAU,GAAG,IAAI,oBAAoB,EAAE,CAAC;QAC9C,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAC/D,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;QACtE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;QAC7C,MAAM,UAAU,GAAG,IAAI,oBAAoB,EAAE,CAAC;QAC9C,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAC/D,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,cAAc,EAAE,EAAE,MAAM,CAAC,CAAC;QAC/E,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9B,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACf,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACrD,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@connexia/application",
|
|
3
|
+
"version": "1.0.1",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"main": "./dist/index.js",
|
|
6
|
+
"types": "./dist/index.d.ts",
|
|
7
|
+
"exports": {
|
|
8
|
+
".": {
|
|
9
|
+
"types": "./dist/index.d.ts",
|
|
10
|
+
"import": "./dist/index.js"
|
|
11
|
+
}
|
|
12
|
+
},
|
|
13
|
+
"files": [
|
|
14
|
+
"dist"
|
|
15
|
+
],
|
|
16
|
+
"dependencies": {
|
|
17
|
+
"@connexia/domain": "^1.0.0",
|
|
18
|
+
"@connexia/infrastructure": "^1.0.1",
|
|
19
|
+
"@connexia/services": "^1.0.1",
|
|
20
|
+
"zod": "^3.23.8"
|
|
21
|
+
},
|
|
22
|
+
"devDependencies": {
|
|
23
|
+
"@types/node": "^22.20.0",
|
|
24
|
+
"typescript": "^5.6.3",
|
|
25
|
+
"vitest": "^3.1.1",
|
|
26
|
+
"@vitest/coverage-v8": "^3.1.1"
|
|
27
|
+
},
|
|
28
|
+
"engines": {
|
|
29
|
+
"node": ">=22.0.0"
|
|
30
|
+
},
|
|
31
|
+
"description": "Application lifecycle management for Connexia",
|
|
32
|
+
"license": "Apache-2.0",
|
|
33
|
+
"repository": {
|
|
34
|
+
"type": "git",
|
|
35
|
+
"url": "https://github.com/connexia/connexia.git",
|
|
36
|
+
"directory": "packages/application"
|
|
37
|
+
},
|
|
38
|
+
"publishConfig": {
|
|
39
|
+
"access": "public"
|
|
40
|
+
},
|
|
41
|
+
"homepage": "https://github.com/connexia/Connexia/tree/main/packages/application",
|
|
42
|
+
"bugs": {
|
|
43
|
+
"url": "https://github.com/connexia/Connexia/issues"
|
|
44
|
+
},
|
|
45
|
+
"keywords": [
|
|
46
|
+
"Connexia",
|
|
47
|
+
"mcp",
|
|
48
|
+
"ai",
|
|
49
|
+
"application",
|
|
50
|
+
"lifecycle",
|
|
51
|
+
"management",
|
|
52
|
+
"platform"
|
|
53
|
+
],
|
|
54
|
+
"scripts": {
|
|
55
|
+
"build": "tsc",
|
|
56
|
+
"clean": "node -e \"const fs=require('fs');fs.rmSync('dist',{recursive:true,force:true})\"",
|
|
57
|
+
"typecheck": "tsc --noEmit",
|
|
58
|
+
"test": "vitest run",
|
|
59
|
+
"test:watch": "vitest"
|
|
60
|
+
}
|
|
61
|
+
}
|