@nestjslatam/ddd-lib 1.0.51 → 1.0.52
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 +21 -21
- package/README.md +30 -30
- package/dist/aggregate-root.d.ts +63 -0
- package/dist/aggregate-root.js +154 -0
- package/dist/broken-rules.manager.d.ts +21 -0
- package/dist/broken-rules.manager.js +95 -0
- package/dist/core/aggregate/aggregate-equality.d.ts +16 -0
- package/dist/core/aggregate/aggregate-equality.js +33 -0
- package/dist/core/aggregate/aggregate-identity.d.ts +11 -0
- package/dist/core/aggregate/aggregate-identity.js +40 -0
- package/dist/core/aggregate/aggregate-serializer.d.ts +28 -0
- package/dist/core/aggregate/aggregate-serializer.js +38 -0
- package/dist/core/aggregate/aggregate-validation-orchestrator.d.ts +14 -0
- package/dist/core/aggregate/aggregate-validation-orchestrator.js +36 -0
- package/dist/core/aggregate/index.d.ts +5 -0
- package/dist/core/aggregate/index.js +12 -0
- package/dist/core/business-rules/impl/broken-rule.d.ts +7 -0
- package/dist/core/business-rules/impl/broken-rule.js +15 -0
- package/dist/core/business-rules/impl/broken-rules-extension.d.ts +6 -0
- package/dist/core/business-rules/impl/broken-rules-extension.js +32 -0
- package/dist/core/business-rules/impl/index.d.ts +4 -0
- package/{ddd-core/broken-rules → dist/core/business-rules/impl}/index.js +2 -1
- package/dist/core/business-rules/impl/property-change/index.d.ts +5 -0
- package/dist/core/business-rules/impl/property-change/index.js +21 -0
- package/dist/core/business-rules/impl/property-change/notify-property-changed.base.d.ts +16 -0
- package/dist/core/business-rules/impl/property-change/notify-property-changed.base.js +64 -0
- package/dist/core/business-rules/impl/property-change/notify-property-changed.context-args.d.ts +7 -0
- package/dist/core/business-rules/impl/property-change/notify-property-changed.context-args.js +12 -0
- package/dist/core/business-rules/impl/property-change/notify-property-changed.context.d.ts +11 -0
- package/dist/core/business-rules/impl/property-change/notify-property-changed.context.js +21 -0
- package/dist/core/business-rules/impl/property-change/reflection-type-extensions.d.ts +5 -0
- package/dist/core/business-rules/impl/property-change/reflection-type-extensions.js +23 -0
- package/dist/core/business-rules/index.d.ts +2 -0
- package/dist/core/index.d.ts +6 -0
- package/{ddd-core → dist/core}/index.js +5 -5
- package/dist/core/repositories/index.d.ts +3 -0
- package/dist/core/repositories/index.js +19 -0
- package/dist/core/repositories/repository-read.interface.d.ts +7 -0
- package/{ddd-commands/interfaces/command-handler.interface.js → dist/core/repositories/repository-read.interface.js} +1 -1
- package/{ddd-ports/interfaces/domain-repository-write.interface.d.ts → dist/core/repositories/repository-write.interface.d.ts} +4 -3
- package/{ddd-commands/interfaces/command-metadata.interface.js → dist/core/repositories/repository-write.interface.js} +1 -1
- package/dist/core/tracking-state/impl/index.d.ts +4 -0
- package/{ddd-core → dist/core/tracking-state}/impl/index.js +2 -2
- package/dist/core/tracking-state/impl/nested-property-change-detector.d.ts +8 -0
- package/dist/core/tracking-state/impl/nested-property-change-detector.js +38 -0
- package/{ddd-core → dist/core/tracking-state}/impl/tracking-props.d.ts +3 -0
- package/{ddd-core → dist/core/tracking-state}/impl/tracking-props.js +11 -0
- package/dist/core/tracking-state/impl/tracking-state-transition.d.ts +9 -0
- package/dist/core/tracking-state/impl/tracking-state-transition.js +34 -0
- package/{ddd-commands → dist/core/tracking-state}/index.d.ts +1 -0
- package/dist/core/tracking-state/interfaces/ichange-detector.d.ts +8 -0
- package/{ddd-commands/interfaces/command.interface.js → dist/core/tracking-state/interfaces/ichange-detector.js} +1 -1
- package/dist/core/tracking-state/interfaces/idomain-primitive.d.ts +5 -0
- package/dist/core/tracking-state/interfaces/idomain-primitive.js +3 -0
- package/dist/core/tracking-state/interfaces/index.d.ts +6 -0
- package/dist/core/tracking-state/interfaces/index.js +22 -0
- package/{ddd-core/interfaces/tracking.interface.d.ts → dist/core/tracking-state/interfaces/itracking-props.d.ts} +2 -0
- package/{ddd-core/interfaces/saga.interface.js → dist/core/tracking-state/interfaces/itracking-props.js} +1 -1
- package/dist/core/tracking-state/interfaces/itracking-state-manager.d.ts +12 -0
- package/{ddd-commands/interfaces/command-bus.interface.js → dist/core/tracking-state/interfaces/itracking-state-manager.js} +1 -1
- package/dist/core/tracking-state/interfaces/itracking-state-transitions.d.ts +7 -0
- package/dist/core/tracking-state/interfaces/itracking-state-transitions.js +3 -0
- package/dist/core/validator-rules/impl/abstract-rule-validator.d.ts +13 -0
- package/dist/core/validator-rules/impl/abstract-rule-validator.js +34 -0
- package/dist/core/validator-rules/impl/abstract-validator.d.ts +4 -0
- package/dist/core/validator-rules/impl/abstract-validator.js +7 -0
- package/dist/core/validator-rules/impl/entity-validator.d.ts +5 -0
- package/dist/core/validator-rules/impl/entity-validator.js +12 -0
- package/dist/core/validator-rules/impl/index.d.ts +5 -0
- package/{ddd-core/interfaces → dist/core/validator-rules/impl}/index.js +4 -4
- package/dist/core/validator-rules/impl/value-object-validator.d.ts +7 -0
- package/dist/core/validator-rules/impl/value-object-validator.js +15 -0
- package/{ddd-events → dist/core/validator-rules}/index.d.ts +2 -1
- package/{ddd-events → dist/core/validator-rules}/index.js +1 -1
- package/dist/core/validator-rules/interfaces/index.d.ts +3 -0
- package/{ddd-ports → dist/core/validator-rules/interfaces}/index.js +2 -1
- package/dist/core/validator-rules/interfaces/irule-context.d.ts +5 -0
- package/{ddd-commands/impl/command-types.js → dist/core/validator-rules/interfaces/irule-context.js} +1 -1
- package/dist/core/validator-rules/interfaces/irule-validator.d.ts +8 -0
- package/{ddd-core/interfaces/ddd.options.js → dist/core/validator-rules/interfaces/irule-validator.js} +1 -1
- package/dist/ddd.module.d.ts +6 -0
- package/{ddd.module.js → dist/ddd.module.js} +4 -32
- package/dist/ddd.service.d.ts +7 -0
- package/{ddd.service.js → dist/ddd.service.js} +1 -16
- package/dist/domain-event.d.ts +56 -0
- package/dist/domain-event.js +175 -0
- package/dist/enum.d.ts +28 -0
- package/dist/enum.js +129 -0
- package/dist/exceptions/domain.exception.d.ts +19 -0
- package/dist/exceptions/domain.exception.js +45 -0
- package/{ddd-helpers → dist/helpers}/datetime.helper.d.ts +1 -0
- package/{ddd-helpers → dist/helpers}/datetime.helper.js +1 -1
- package/dist/helpers/domain-object.helper.d.ts +20 -0
- package/{ddd-helpers → dist/helpers}/domain-object.helper.js +14 -19
- package/{ddd-helpers → dist/helpers}/index.d.ts +1 -0
- package/dist/index.d.ts +13 -0
- package/{ddd-events/impl → dist}/index.js +11 -7
- package/dist/state-transition.manager.d.ts +23 -0
- package/dist/state-transition.manager.js +163 -0
- package/dist/tracking-state-manager.d.ts +25 -0
- package/dist/tracking-state-manager.js +70 -0
- package/dist/validator-rule.manager.d.ts +17 -0
- package/dist/validator-rule.manager.js +80 -0
- package/dist/valueobject.d.ts +23 -0
- package/dist/valueobject.js +93 -0
- package/dist/valueobjects/id.valueobject.d.ts +16 -0
- package/dist/valueobjects/id.valueobject.js +52 -0
- package/dist/valueobjects/index.d.ts +7 -0
- package/{ddd-commands/impl → dist/valueobjects}/index.js +6 -5
- package/dist/valueobjects/number-notnull.validator.d.ts +13 -0
- package/dist/valueobjects/number-notnull.validator.js +31 -0
- package/dist/valueobjects/number-positive.validator.d.ts +13 -0
- package/dist/valueobjects/number-positive.validator.js +43 -0
- package/dist/valueobjects/number.valueobject.d.ts +25 -0
- package/dist/valueobjects/number.valueobject.js +67 -0
- package/dist/valueobjects/string-notnullorempty.validator.d.ts +14 -0
- package/dist/valueobjects/string-notnullorempty.validator.js +36 -0
- package/dist/valueobjects/string.valueobject.d.ts +27 -0
- package/dist/valueobjects/string.valueobject.js +86 -0
- package/package.json +51 -26
- package/src/types.d.ts +7 -0
- package/ddd-aggregate-root.d.ts +0 -34
- package/ddd-aggregate-root.js +0 -85
- package/ddd-aggregate-root.js.map +0 -1
- package/ddd-commands/impl/command-types.d.ts +0 -3
- package/ddd-commands/impl/command-types.js.map +0 -1
- package/ddd-commands/impl/command.base.d.ts +0 -7
- package/ddd-commands/impl/command.base.js +0 -15
- package/ddd-commands/impl/command.base.js.map +0 -1
- package/ddd-commands/impl/default-command-publisher.d.ts +0 -7
- package/ddd-commands/impl/default-command-publisher.js +0 -13
- package/ddd-commands/impl/default-command-publisher.js.map +0 -1
- package/ddd-commands/impl/domain-command-bus.d.ts +0 -18
- package/ddd-commands/impl/domain-command-bus.js +0 -71
- package/ddd-commands/impl/domain-command-bus.js.map +0 -1
- package/ddd-commands/impl/index.d.ts +0 -5
- package/ddd-commands/impl/index.js.map +0 -1
- package/ddd-commands/index.js.map +0 -1
- package/ddd-commands/interfaces/command-bus.interface.d.ts +0 -4
- package/ddd-commands/interfaces/command-bus.interface.js.map +0 -1
- package/ddd-commands/interfaces/command-handler.interface.d.ts +0 -4
- package/ddd-commands/interfaces/command-handler.interface.js.map +0 -1
- package/ddd-commands/interfaces/command-metadata.interface.d.ts +0 -4
- package/ddd-commands/interfaces/command-metadata.interface.js.map +0 -1
- package/ddd-commands/interfaces/command-publisher.interface.d.ts +0 -4
- package/ddd-commands/interfaces/command-publisher.interface.js +0 -3
- package/ddd-commands/interfaces/command-publisher.interface.js.map +0 -1
- package/ddd-commands/interfaces/command.interface.d.ts +0 -4
- package/ddd-commands/interfaces/command.interface.js.map +0 -1
- package/ddd-commands/interfaces/index.d.ts +0 -5
- package/ddd-commands/interfaces/index.js +0 -22
- package/ddd-commands/interfaces/index.js.map +0 -1
- package/ddd-core/broken-rules/broken-rule-collection.d.ts +0 -13
- package/ddd-core/broken-rules/broken-rule-collection.js +0 -54
- package/ddd-core/broken-rules/broken-rule-collection.js.map +0 -1
- package/ddd-core/broken-rules/broken-rule.d.ts +0 -5
- package/ddd-core/broken-rules/broken-rule.js +0 -13
- package/ddd-core/broken-rules/broken-rule.js.map +0 -1
- package/ddd-core/broken-rules/index.d.ts +0 -2
- package/ddd-core/broken-rules/index.js.map +0 -1
- package/ddd-core/ddd-base-classes.d.ts +0 -52
- package/ddd-core/ddd-base-classes.js +0 -173
- package/ddd-core/ddd-base-classes.js.map +0 -1
- package/ddd-core/ddd-validators.d.ts +0 -15
- package/ddd-core/ddd-validators.js +0 -70
- package/ddd-core/ddd-validators.js.map +0 -1
- package/ddd-core/impl/index.d.ts +0 -3
- package/ddd-core/impl/index.js.map +0 -1
- package/ddd-core/impl/observable-bus.d.ts +0 -6
- package/ddd-core/impl/observable-bus.js +0 -16
- package/ddd-core/impl/observable-bus.js.map +0 -1
- package/ddd-core/impl/of-type.d.ts +0 -4
- package/ddd-core/impl/of-type.js +0 -9
- package/ddd-core/impl/of-type.js.map +0 -1
- package/ddd-core/impl/tracking-props.js.map +0 -1
- package/ddd-core/index.d.ts +0 -5
- package/ddd-core/index.js.map +0 -1
- package/ddd-core/interfaces/ddd.options.d.ts +0 -7
- package/ddd-core/interfaces/ddd.options.js.map +0 -1
- package/ddd-core/interfaces/index.d.ts +0 -4
- package/ddd-core/interfaces/index.js.map +0 -1
- package/ddd-core/interfaces/message-source.interface.d.ts +0 -5
- package/ddd-core/interfaces/message-source.interface.js +0 -3
- package/ddd-core/interfaces/message-source.interface.js.map +0 -1
- package/ddd-core/interfaces/saga.interface.d.ts +0 -4
- package/ddd-core/interfaces/saga.interface.js.map +0 -1
- package/ddd-core/interfaces/tracking.interface.js +0 -3
- package/ddd-core/interfaces/tracking.interface.js.map +0 -1
- package/ddd-decorators/command-handler.decorator.d.ts +0 -3
- package/ddd-decorators/command-handler.decorator.js +0 -16
- package/ddd-decorators/command-handler.decorator.js.map +0 -1
- package/ddd-decorators/constants.d.ts +0 -5
- package/ddd-decorators/constants.js +0 -9
- package/ddd-decorators/constants.js.map +0 -1
- package/ddd-decorators/events-handler.decorator.d.ts +0 -3
- package/ddd-decorators/events-handler.decorator.js +0 -18
- package/ddd-decorators/events-handler.decorator.js.map +0 -1
- package/ddd-decorators/index.d.ts +0 -6
- package/ddd-decorators/index.js +0 -23
- package/ddd-decorators/index.js.map +0 -1
- package/ddd-decorators/reflect-command.helper.d.ts +0 -6
- package/ddd-decorators/reflect-command.helper.js +0 -25
- package/ddd-decorators/reflect-command.helper.js.map +0 -1
- package/ddd-decorators/reflect-event.helper.d.ts +0 -7
- package/ddd-decorators/reflect-event.helper.js +0 -18
- package/ddd-decorators/reflect-event.helper.js.map +0 -1
- package/ddd-decorators/saga.decorator.d.ts +0 -2
- package/ddd-decorators/saga.decorator.js +0 -13
- package/ddd-decorators/saga.decorator.js.map +0 -1
- package/ddd-events/impl/default-event-publisher.d.ts +0 -9
- package/ddd-events/impl/default-event-publisher.js +0 -16
- package/ddd-events/impl/default-event-publisher.js.map +0 -1
- package/ddd-events/impl/domain-event-bus.d.ts +0 -32
- package/ddd-events/impl/domain-event-bus.js +0 -140
- package/ddd-events/impl/domain-event-bus.js.map +0 -1
- package/ddd-events/impl/domain-event-cli.registry.d.ts +0 -6
- package/ddd-events/impl/domain-event-cli.registry.js +0 -18
- package/ddd-events/impl/domain-event-cli.registry.js.map +0 -1
- package/ddd-events/impl/domain-event-collection.d.ts +0 -11
- package/ddd-events/impl/domain-event-collection.js +0 -33
- package/ddd-events/impl/domain-event-collection.js.map +0 -1
- package/ddd-events/impl/domain-event-publisher.d.ts +0 -12
- package/ddd-events/impl/domain-event-publisher.js +0 -48
- package/ddd-events/impl/domain-event-publisher.js.map +0 -1
- package/ddd-events/impl/domain-event-types.d.ts +0 -3
- package/ddd-events/impl/domain-event-types.js +0 -3
- package/ddd-events/impl/domain-event-types.js.map +0 -1
- package/ddd-events/impl/domain-event.d.ts +0 -19
- package/ddd-events/impl/domain-event.deserializer.d.ts +0 -8
- package/ddd-events/impl/domain-event.deserializer.js +0 -31
- package/ddd-events/impl/domain-event.deserializer.js.map +0 -1
- package/ddd-events/impl/domain-event.js +0 -29
- package/ddd-events/impl/domain-event.js.map +0 -1
- package/ddd-events/impl/domain-event.serializer.d.ts +0 -6
- package/ddd-events/impl/domain-event.serializer.js +0 -45
- package/ddd-events/impl/domain-event.serializer.js.map +0 -1
- package/ddd-events/impl/index.d.ts +0 -8
- package/ddd-events/impl/index.js.map +0 -1
- package/ddd-events/index.js.map +0 -1
- package/ddd-events/interfaces/domain-event-bus.interface.d.ts +0 -5
- package/ddd-events/interfaces/domain-event-bus.interface.js +0 -3
- package/ddd-events/interfaces/domain-event-bus.interface.js.map +0 -1
- package/ddd-events/interfaces/domain-event-handler.interface.d.ts +0 -4
- package/ddd-events/interfaces/domain-event-handler.interface.js +0 -3
- package/ddd-events/interfaces/domain-event-handler.interface.js.map +0 -1
- package/ddd-events/interfaces/domain-event-metadata.interface.d.ts +0 -7
- package/ddd-events/interfaces/domain-event-metadata.interface.js +0 -3
- package/ddd-events/interfaces/domain-event-metadata.interface.js.map +0 -1
- package/ddd-events/interfaces/domain-event-publisher.interface.d.ts +0 -5
- package/ddd-events/interfaces/domain-event-publisher.interface.js +0 -3
- package/ddd-events/interfaces/domain-event-publisher.interface.js.map +0 -1
- package/ddd-events/interfaces/domain-event-serializable.interface.d.ts +0 -11
- package/ddd-events/interfaces/domain-event-serializable.interface.js +0 -3
- package/ddd-events/interfaces/domain-event-serializable.interface.js.map +0 -1
- package/ddd-events/interfaces/domain-event.interface.d.ts +0 -2
- package/ddd-events/interfaces/domain-event.interface.js +0 -3
- package/ddd-events/interfaces/domain-event.interface.js.map +0 -1
- package/ddd-events/interfaces/index.d.ts +0 -6
- package/ddd-events/interfaces/index.js +0 -23
- package/ddd-events/interfaces/index.js.map +0 -1
- package/ddd-exceptions/constants.d.ts +0 -14
- package/ddd-exceptions/constants.js +0 -18
- package/ddd-exceptions/constants.js.map +0 -1
- package/ddd-exceptions/impl/arguments-exception.d.ts +0 -10
- package/ddd-exceptions/impl/arguments-exception.js +0 -27
- package/ddd-exceptions/impl/arguments-exception.js.map +0 -1
- package/ddd-exceptions/impl/broken-rules.exeption.d.ts +0 -6
- package/ddd-exceptions/impl/broken-rules.exeption.js +0 -14
- package/ddd-exceptions/impl/broken-rules.exeption.js.map +0 -1
- package/ddd-exceptions/impl/command-exception.d.ts +0 -7
- package/ddd-exceptions/impl/command-exception.js +0 -20
- package/ddd-exceptions/impl/command-exception.js.map +0 -1
- package/ddd-exceptions/impl/common.exception.d.ts +0 -14
- package/ddd-exceptions/impl/common.exception.js +0 -29
- package/ddd-exceptions/impl/common.exception.js.map +0 -1
- package/ddd-exceptions/impl/domain-bus.exception.d.ts +0 -7
- package/ddd-exceptions/impl/domain-bus.exception.js +0 -20
- package/ddd-exceptions/impl/domain-bus.exception.js.map +0 -1
- package/ddd-exceptions/impl/domain-publisher.exception.d.ts +0 -9
- package/ddd-exceptions/impl/domain-publisher.exception.js +0 -13
- package/ddd-exceptions/impl/domain-publisher.exception.js.map +0 -1
- package/ddd-exceptions/impl/domain-unhandled-bus.exeption.d.ts +0 -16
- package/ddd-exceptions/impl/domain-unhandled-bus.exeption.js +0 -45
- package/ddd-exceptions/impl/domain-unhandled-bus.exeption.js.map +0 -1
- package/ddd-exceptions/impl/index.d.ts +0 -8
- package/ddd-exceptions/impl/index.js +0 -25
- package/ddd-exceptions/impl/index.js.map +0 -1
- package/ddd-exceptions/impl/sagas.exception.d.ts +0 -4
- package/ddd-exceptions/impl/sagas.exception.js +0 -13
- package/ddd-exceptions/impl/sagas.exception.js.map +0 -1
- package/ddd-exceptions/index.d.ts +0 -3
- package/ddd-exceptions/index.js +0 -20
- package/ddd-exceptions/index.js.map +0 -1
- package/ddd-exceptions/interfaces/exception.base.d.ts +0 -17
- package/ddd-exceptions/interfaces/exception.base.js +0 -24
- package/ddd-exceptions/interfaces/exception.base.js.map +0 -1
- package/ddd-exceptions/interfaces/index.d.ts +0 -3
- package/ddd-exceptions/interfaces/index.js +0 -20
- package/ddd-exceptions/interfaces/index.js.map +0 -1
- package/ddd-exceptions/interfaces/unhandled-exception-info.interface.d.ts +0 -6
- package/ddd-exceptions/interfaces/unhandled-exception-info.interface.js +0 -3
- package/ddd-exceptions/interfaces/unhandled-exception-info.interface.js.map +0 -1
- package/ddd-exceptions/interfaces/unhandled-exception-publisher.interface.d.ts +0 -6
- package/ddd-exceptions/interfaces/unhandled-exception-publisher.interface.js +0 -3
- package/ddd-exceptions/interfaces/unhandled-exception-publisher.interface.js.map +0 -1
- package/ddd-helpers/datetime.helper.js.map +0 -1
- package/ddd-helpers/domain-object.helper.d.ts +0 -18
- package/ddd-helpers/domain-object.helper.js.map +0 -1
- package/ddd-helpers/index.js.map +0 -1
- package/ddd-ports/index.d.ts +0 -1
- package/ddd-ports/index.js.map +0 -1
- package/ddd-ports/interfaces/domain-repository-read.interface.d.ts +0 -6
- package/ddd-ports/interfaces/domain-repository-read.interface.js +0 -3
- package/ddd-ports/interfaces/domain-repository-read.interface.js.map +0 -1
- package/ddd-ports/interfaces/domain-repository-write.interface.js +0 -3
- package/ddd-ports/interfaces/domain-repository-write.interface.js.map +0 -1
- package/ddd-ports/interfaces/index.d.ts +0 -2
- package/ddd-ports/interfaces/index.js +0 -19
- package/ddd-ports/interfaces/index.js.map +0 -1
- package/ddd-validators/impl/domain-abstract.validator.d.ts +0 -5
- package/ddd-validators/impl/domain-abstract.validator.js +0 -34
- package/ddd-validators/impl/domain-abstract.validator.js.map +0 -1
- package/ddd-validators/impl/domain-entity.validator.d.ts +0 -5
- package/ddd-validators/impl/domain-entity.validator.js +0 -12
- package/ddd-validators/impl/domain-entity.validator.js.map +0 -1
- package/ddd-validators/impl/domain-value-object.validator.d.ts +0 -11
- package/ddd-validators/impl/domain-value-object.validator.js +0 -41
- package/ddd-validators/impl/domain-value-object.validator.js.map +0 -1
- package/ddd-validators/impl/index.d.ts +0 -3
- package/ddd-validators/impl/index.js +0 -20
- package/ddd-validators/impl/index.js.map +0 -1
- package/ddd-validators/index.d.ts +0 -1
- package/ddd-validators/index.js.map +0 -1
- package/ddd-valueobjects/domain-audit.valueobject.d.ts +0 -21
- package/ddd-valueobjects/domain-audit.valueobject.js +0 -63
- package/ddd-valueobjects/domain-audit.valueobject.js.map +0 -1
- package/ddd-valueobjects/domain-date.valueobject.d.ts +0 -6
- package/ddd-valueobjects/domain-date.valueobject.js +0 -20
- package/ddd-valueobjects/domain-date.valueobject.js.map +0 -1
- package/ddd-valueobjects/domain-enum-base.valueobject.d.ts +0 -5
- package/ddd-valueobjects/domain-enum-base.valueobject.js +0 -11
- package/ddd-valueobjects/domain-enum-base.valueobject.js.map +0 -1
- package/ddd-valueobjects/domain-number-base.valueobject.d.ts +0 -6
- package/ddd-valueobjects/domain-number-base.valueobject.js +0 -22
- package/ddd-valueobjects/domain-number-base.valueobject.js.map +0 -1
- package/ddd-valueobjects/domain-string-base.valueobject.d.ts +0 -6
- package/ddd-valueobjects/domain-string-base.valueobject.js +0 -22
- package/ddd-valueobjects/domain-string-base.valueobject.js.map +0 -1
- package/ddd-valueobjects/domain-uid.valueobject.d.ts +0 -7
- package/ddd-valueobjects/domain-uid.valueobject.js +0 -29
- package/ddd-valueobjects/domain-uid.valueobject.js.map +0 -1
- package/ddd-valueobjects/index.d.ts +0 -6
- package/ddd-valueobjects/index.js +0 -23
- package/ddd-valueobjects/index.js.map +0 -1
- package/ddd.module.d.ts +0 -11
- package/ddd.module.js.map +0 -1
- package/ddd.service.d.ts +0 -14
- package/ddd.service.js.map +0 -1
- package/index.d.ts +0 -14
- package/index.js +0 -31
- package/index.js.map +0 -1
- package/tsconfig.lib.tsbuildinfo +0 -1
- /package/{ddd-validators → dist/core/business-rules}/index.js +0 -0
- /package/{ddd-commands → dist/core/tracking-state}/index.js +0 -0
- /package/{ddd-helpers → dist/helpers}/index.js +0 -0
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export interface ITrackingStateManager {
|
|
2
|
+
readonly isNew: boolean;
|
|
3
|
+
readonly isDirty: boolean;
|
|
4
|
+
readonly isSelfDeleted: boolean;
|
|
5
|
+
readonly isDeleted: boolean;
|
|
6
|
+
markAsDirty(): void;
|
|
7
|
+
markAsNew(): void;
|
|
8
|
+
markAsSelfDeleted(): void;
|
|
9
|
+
markAsDeleted(): void;
|
|
10
|
+
markAsClean(): void;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=itracking-state-manager.d.ts.map
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { BrokenRule } from '../../business-rules';
|
|
2
|
+
import { ClassType, IRuleValidator } from '../interfaces';
|
|
3
|
+
export declare abstract class AbstractRuleValidator<TSubject> implements IRuleValidator {
|
|
4
|
+
readonly subject: TSubject;
|
|
5
|
+
private brokenRules;
|
|
6
|
+
constructor(subject: TSubject);
|
|
7
|
+
abstract addRules(): void;
|
|
8
|
+
validate(): ReadonlyArray<BrokenRule>;
|
|
9
|
+
addBrokenRule(propertyName: string, message: string): void;
|
|
10
|
+
getValidatorDescriptor(): ClassType;
|
|
11
|
+
getSubjectDescriptor(): ClassType;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=abstract-rule-validator.d.ts.map
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AbstractRuleValidator = void 0;
|
|
4
|
+
class AbstractRuleValidator {
|
|
5
|
+
constructor(subject) {
|
|
6
|
+
this.subject = subject;
|
|
7
|
+
this.brokenRules = [];
|
|
8
|
+
}
|
|
9
|
+
validate() {
|
|
10
|
+
this.brokenRules = [];
|
|
11
|
+
if (this.subject !== null && this.subject !== undefined) {
|
|
12
|
+
this.addRules();
|
|
13
|
+
}
|
|
14
|
+
return this.brokenRules;
|
|
15
|
+
}
|
|
16
|
+
addBrokenRule(propertyName, message) {
|
|
17
|
+
this.brokenRules.push({
|
|
18
|
+
property: propertyName,
|
|
19
|
+
message: message,
|
|
20
|
+
severity: 'Error',
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
getValidatorDescriptor() {
|
|
24
|
+
return this.constructor;
|
|
25
|
+
}
|
|
26
|
+
getSubjectDescriptor() {
|
|
27
|
+
if (!this.subject) {
|
|
28
|
+
throw new Error('Subject is null or undefined.');
|
|
29
|
+
}
|
|
30
|
+
return this.subject.constructor;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
exports.AbstractRuleValidator = AbstractRuleValidator;
|
|
34
|
+
//# sourceMappingURL=abstract-rule-validator.js.map
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EntityValidator = void 0;
|
|
4
|
+
const aggregate_root_1 = require("../../../aggregate-root");
|
|
5
|
+
const abstract_validator_1 = require("./abstract-validator");
|
|
6
|
+
class EntityValidator extends abstract_validator_1.AbstractValidator {
|
|
7
|
+
validate(obj) {
|
|
8
|
+
return obj instanceof aggregate_root_1.DddAggregateRoot;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
exports.EntityValidator = EntityValidator;
|
|
12
|
+
//# sourceMappingURL=entity-validator.js.map
|
|
@@ -14,8 +14,8 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./
|
|
18
|
-
__exportStar(require("./
|
|
19
|
-
__exportStar(require("./
|
|
20
|
-
__exportStar(require("./
|
|
17
|
+
__exportStar(require("./abstract-validator"), exports);
|
|
18
|
+
__exportStar(require("./entity-validator"), exports);
|
|
19
|
+
__exportStar(require("./value-object-validator"), exports);
|
|
20
|
+
__exportStar(require("./abstract-rule-validator"), exports);
|
|
21
21
|
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { DddValueObject } from '../../../valueobject';
|
|
2
|
+
import { AbstractValidator } from './abstract-validator';
|
|
3
|
+
export declare class ValueObjectValidator extends AbstractValidator {
|
|
4
|
+
validate(obj: unknown): boolean;
|
|
5
|
+
static isValueObject(obj: unknown): obj is DddValueObject<any>;
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=value-object-validator.d.ts.map
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ValueObjectValidator = void 0;
|
|
4
|
+
const valueobject_1 = require("../../../valueobject");
|
|
5
|
+
const abstract_validator_1 = require("./abstract-validator");
|
|
6
|
+
class ValueObjectValidator extends abstract_validator_1.AbstractValidator {
|
|
7
|
+
validate(obj) {
|
|
8
|
+
return obj instanceof valueobject_1.DddValueObject;
|
|
9
|
+
}
|
|
10
|
+
static isValueObject(obj) {
|
|
11
|
+
return obj instanceof valueobject_1.DddValueObject;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
exports.ValueObjectValidator = ValueObjectValidator;
|
|
15
|
+
//# sourceMappingURL=value-object-validator.js.map
|
|
@@ -14,6 +14,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./interfaces"), exports);
|
|
18
17
|
__exportStar(require("./impl"), exports);
|
|
18
|
+
__exportStar(require("./interfaces"), exports);
|
|
19
19
|
//# sourceMappingURL=index.js.map
|
|
@@ -14,5 +14,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./
|
|
17
|
+
__exportStar(require("./irule-validator"), exports);
|
|
18
|
+
__exportStar(require("./irule-context"), exports);
|
|
18
19
|
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { BrokenRule } from '../../business-rules';
|
|
2
|
+
export type ClassType<T = any> = new (...args: any[]) => T;
|
|
3
|
+
export interface IRuleValidator {
|
|
4
|
+
getValidatorDescriptor(): ClassType;
|
|
5
|
+
getSubjectDescriptor(): ClassType;
|
|
6
|
+
validate(): ReadonlyArray<BrokenRule>;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=irule-validator.d.ts.map
|
|
@@ -13,21 +13,9 @@ exports.DddModule = void 0;
|
|
|
13
13
|
const common_1 = require("@nestjs/common");
|
|
14
14
|
const core_1 = require("@nestjs/core");
|
|
15
15
|
const ddd_service_1 = require("./ddd.service");
|
|
16
|
-
const ddd_commands_1 = require("./ddd-commands");
|
|
17
|
-
const ddd_events_1 = require("./ddd-events");
|
|
18
|
-
const ddd_exceptions_1 = require("./ddd-exceptions");
|
|
19
16
|
let DddModule = class DddModule {
|
|
20
|
-
constructor(
|
|
21
|
-
|
|
22
|
-
this.eventBus = eventBus;
|
|
23
|
-
this.domainCommandBus = domainCommandBus;
|
|
24
|
-
}
|
|
25
|
-
onApplicationBootstrap() {
|
|
26
|
-
const { domainEvents, sagas, domainCommands } = this.explorerService.explore();
|
|
27
|
-
this.eventBus.register(domainEvents);
|
|
28
|
-
this.domainCommandBus.register(domainCommands);
|
|
29
|
-
this.eventBus.registerSagas(sagas);
|
|
30
|
-
}
|
|
17
|
+
constructor() { }
|
|
18
|
+
onApplicationBootstrap() { }
|
|
31
19
|
};
|
|
32
20
|
exports.DddModule = DddModule;
|
|
33
21
|
exports.DddModule = DddModule = __decorate([
|
|
@@ -41,25 +29,9 @@ exports.DddModule = DddModule = __decorate([
|
|
|
41
29
|
},
|
|
42
30
|
inject: [core_1.ModulesContainer],
|
|
43
31
|
},
|
|
44
|
-
ddd_commands_1.DomainCommandBus,
|
|
45
|
-
ddd_events_1.DomainEventBus,
|
|
46
|
-
ddd_events_1.DomainEventPublisher,
|
|
47
|
-
ddd_exceptions_1.UnhandledExceptionDomainBus,
|
|
48
|
-
ddd_events_1.DomainEventSerializer,
|
|
49
|
-
ddd_events_1.DomainEventDeserializer,
|
|
50
|
-
],
|
|
51
|
-
exports: [
|
|
52
|
-
ddd_service_1.DddService,
|
|
53
|
-
ddd_commands_1.DomainCommandBus,
|
|
54
|
-
ddd_events_1.DomainEventBus,
|
|
55
|
-
ddd_events_1.DomainEventPublisher,
|
|
56
|
-
ddd_exceptions_1.UnhandledExceptionDomainBus,
|
|
57
|
-
ddd_events_1.DomainEventSerializer,
|
|
58
|
-
ddd_events_1.DomainEventDeserializer,
|
|
59
32
|
],
|
|
33
|
+
exports: [ddd_service_1.DddService],
|
|
60
34
|
}),
|
|
61
|
-
__metadata("design:paramtypes", [
|
|
62
|
-
ddd_events_1.DomainEventBus,
|
|
63
|
-
ddd_commands_1.DomainCommandBus])
|
|
35
|
+
__metadata("design:paramtypes", [])
|
|
64
36
|
], DddModule);
|
|
65
37
|
//# sourceMappingURL=ddd.module.js.map
|
|
@@ -12,27 +12,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
12
12
|
exports.DddService = void 0;
|
|
13
13
|
const common_1 = require("@nestjs/common");
|
|
14
14
|
const core_1 = require("@nestjs/core");
|
|
15
|
-
const ddd_helpers_1 = require("./ddd-helpers");
|
|
16
|
-
const ddd_decorators_1 = require("./ddd-decorators");
|
|
17
15
|
let DddService = class DddService {
|
|
18
16
|
constructor(modulesContainer) {
|
|
19
17
|
this.modulesContainer = modulesContainer;
|
|
20
18
|
}
|
|
21
19
|
explore() {
|
|
22
|
-
|
|
23
|
-
const domainCommands = this.flatMap(modules, (instance) => this.filterProvider(instance, ddd_decorators_1.DOMAIN_COMMAND_HANDLER_METADATA));
|
|
24
|
-
const domainEvents = this.flatMap(modules, (instance) => this.filterProvider(instance, ddd_decorators_1.DOMAIN_EVENTS_HANDLER_METADATA));
|
|
25
|
-
const sagas = this.flatMap(modules, (instance) => this.filterProvider(instance, ddd_decorators_1.DOMAIN_SAGA_METADATA));
|
|
26
|
-
return { domainCommands, domainEvents, sagas };
|
|
27
|
-
}
|
|
28
|
-
flatMap(modules, callback) {
|
|
29
|
-
return ddd_helpers_1.DomainObjectHelper.flatMap(modules, callback);
|
|
30
|
-
}
|
|
31
|
-
filterProvider(wrapper, metadataKey) {
|
|
32
|
-
return ddd_helpers_1.DomainObjectHelper.filterProvider(wrapper, metadataKey);
|
|
33
|
-
}
|
|
34
|
-
extractMetadata(instance, metadataKey) {
|
|
35
|
-
return ddd_helpers_1.DomainObjectHelper.extractMetadata(instance, metadataKey);
|
|
20
|
+
return;
|
|
36
21
|
}
|
|
37
22
|
};
|
|
38
23
|
exports.DddService = DddService;
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
export type EventMetadata = {
|
|
2
|
+
readonly aggregateId: string;
|
|
3
|
+
readonly aggregateType: string;
|
|
4
|
+
readonly aggregateVersion: number;
|
|
5
|
+
readonly eventVersion: number;
|
|
6
|
+
readonly correlationId?: string;
|
|
7
|
+
readonly causationId?: string;
|
|
8
|
+
readonly userId?: string;
|
|
9
|
+
readonly timestamp: string;
|
|
10
|
+
};
|
|
11
|
+
export declare class EventMetadataBuilder {
|
|
12
|
+
private aggregateId;
|
|
13
|
+
private aggregateType;
|
|
14
|
+
private aggregateVersion;
|
|
15
|
+
private eventVersion;
|
|
16
|
+
private correlationId?;
|
|
17
|
+
private causationId?;
|
|
18
|
+
private userId?;
|
|
19
|
+
private timestamp;
|
|
20
|
+
private constructor();
|
|
21
|
+
static create(aggregateId: string, aggregateType: string, aggregateVersion: number): EventMetadataBuilder;
|
|
22
|
+
withEventVersion(version: number): this;
|
|
23
|
+
withCorrelationId(correlationId: string): this;
|
|
24
|
+
withCausationId(causationId: string): this;
|
|
25
|
+
withUserId(userId: string): this;
|
|
26
|
+
withTimestamp(timestamp: Date | string): this;
|
|
27
|
+
build(): EventMetadata;
|
|
28
|
+
}
|
|
29
|
+
export interface ISerializable {
|
|
30
|
+
toJSON(): Record<string, unknown>;
|
|
31
|
+
}
|
|
32
|
+
export declare abstract class DomainEvent implements ISerializable {
|
|
33
|
+
readonly eventId: string;
|
|
34
|
+
readonly occurredOn: Date;
|
|
35
|
+
readonly eventType: string;
|
|
36
|
+
readonly eventVersion: number;
|
|
37
|
+
readonly metadata: EventMetadata;
|
|
38
|
+
constructor(metadata: EventMetadata, occurredOn?: Date);
|
|
39
|
+
private validateMetadata;
|
|
40
|
+
toJSON(): Record<string, unknown>;
|
|
41
|
+
protected getEventData(): Record<string, unknown>;
|
|
42
|
+
protected static extractMetadata(json: Record<string, unknown>): EventMetadata;
|
|
43
|
+
protected static extractEventData(json: Record<string, unknown>): Record<string, unknown>;
|
|
44
|
+
protected static extractOccurredOn(json: Record<string, unknown>): Date;
|
|
45
|
+
get aggregateId(): string;
|
|
46
|
+
get aggregateType(): string;
|
|
47
|
+
get aggregateVersion(): number;
|
|
48
|
+
get hasCorrelationId(): boolean;
|
|
49
|
+
get hasCausationId(): boolean;
|
|
50
|
+
get hasUserId(): boolean;
|
|
51
|
+
equals(other: DomainEvent): boolean;
|
|
52
|
+
belongsToAggregate(aggregateId: string): boolean;
|
|
53
|
+
isAggregateType(aggregateType: string): boolean;
|
|
54
|
+
}
|
|
55
|
+
export declare const AbstractDomainEvent: typeof DomainEvent;
|
|
56
|
+
//# sourceMappingURL=domain-event.d.ts.map
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AbstractDomainEvent = exports.DomainEvent = exports.EventMetadataBuilder = void 0;
|
|
4
|
+
const uuid_1 = require("uuid");
|
|
5
|
+
const domain_exception_1 = require("./exceptions/domain.exception");
|
|
6
|
+
class EventMetadataBuilder {
|
|
7
|
+
constructor(aggregateId, aggregateType, aggregateVersion) {
|
|
8
|
+
this.eventVersion = 1;
|
|
9
|
+
this.aggregateId = aggregateId;
|
|
10
|
+
this.aggregateType = aggregateType;
|
|
11
|
+
this.aggregateVersion = aggregateVersion;
|
|
12
|
+
this.timestamp = new Date().toISOString();
|
|
13
|
+
}
|
|
14
|
+
static create(aggregateId, aggregateType, aggregateVersion) {
|
|
15
|
+
if (!aggregateId || !aggregateType) {
|
|
16
|
+
throw new domain_exception_1.ArgumentNullException('aggregateId and aggregateType are required');
|
|
17
|
+
}
|
|
18
|
+
if (aggregateVersion < 0) {
|
|
19
|
+
throw new Error('aggregateVersion must be non-negative');
|
|
20
|
+
}
|
|
21
|
+
return new EventMetadataBuilder(aggregateId, aggregateType, aggregateVersion);
|
|
22
|
+
}
|
|
23
|
+
withEventVersion(version) {
|
|
24
|
+
if (version < 1) {
|
|
25
|
+
throw new Error('eventVersion must be at least 1');
|
|
26
|
+
}
|
|
27
|
+
this.eventVersion = version;
|
|
28
|
+
return this;
|
|
29
|
+
}
|
|
30
|
+
withCorrelationId(correlationId) {
|
|
31
|
+
this.correlationId = correlationId;
|
|
32
|
+
return this;
|
|
33
|
+
}
|
|
34
|
+
withCausationId(causationId) {
|
|
35
|
+
this.causationId = causationId;
|
|
36
|
+
return this;
|
|
37
|
+
}
|
|
38
|
+
withUserId(userId) {
|
|
39
|
+
this.userId = userId;
|
|
40
|
+
return this;
|
|
41
|
+
}
|
|
42
|
+
withTimestamp(timestamp) {
|
|
43
|
+
this.timestamp =
|
|
44
|
+
timestamp instanceof Date ? timestamp.toISOString() : timestamp;
|
|
45
|
+
return this;
|
|
46
|
+
}
|
|
47
|
+
build() {
|
|
48
|
+
return {
|
|
49
|
+
aggregateId: this.aggregateId,
|
|
50
|
+
aggregateType: this.aggregateType,
|
|
51
|
+
aggregateVersion: this.aggregateVersion,
|
|
52
|
+
eventVersion: this.eventVersion,
|
|
53
|
+
correlationId: this.correlationId,
|
|
54
|
+
causationId: this.causationId,
|
|
55
|
+
userId: this.userId,
|
|
56
|
+
timestamp: this.timestamp,
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
exports.EventMetadataBuilder = EventMetadataBuilder;
|
|
61
|
+
class DomainEvent {
|
|
62
|
+
constructor(metadata, occurredOn) {
|
|
63
|
+
if (!metadata) {
|
|
64
|
+
throw new domain_exception_1.ArgumentNullException('metadata');
|
|
65
|
+
}
|
|
66
|
+
this.validateMetadata(metadata);
|
|
67
|
+
this.eventId = (0, uuid_1.v4)();
|
|
68
|
+
this.occurredOn = occurredOn || new Date();
|
|
69
|
+
this.eventType = this.constructor.name;
|
|
70
|
+
this.eventVersion = metadata.eventVersion;
|
|
71
|
+
this.metadata = {
|
|
72
|
+
...metadata,
|
|
73
|
+
timestamp: metadata.timestamp || this.occurredOn.toISOString(),
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
validateMetadata(metadata) {
|
|
77
|
+
if (!metadata.aggregateId) {
|
|
78
|
+
throw new Error('EventMetadata.aggregateId is required');
|
|
79
|
+
}
|
|
80
|
+
if (!metadata.aggregateType) {
|
|
81
|
+
throw new Error('EventMetadata.aggregateType is required');
|
|
82
|
+
}
|
|
83
|
+
if (metadata.aggregateVersion < 0) {
|
|
84
|
+
throw new Error('EventMetadata.aggregateVersion must be non-negative');
|
|
85
|
+
}
|
|
86
|
+
if (metadata.eventVersion < 1) {
|
|
87
|
+
throw new Error('EventMetadata.eventVersion must be at least 1');
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
toJSON() {
|
|
91
|
+
return {
|
|
92
|
+
eventId: this.eventId,
|
|
93
|
+
eventType: this.eventType,
|
|
94
|
+
eventVersion: this.eventVersion,
|
|
95
|
+
occurredOn: this.occurredOn.toISOString(),
|
|
96
|
+
metadata: this.metadata,
|
|
97
|
+
data: this.getEventData(),
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
getEventData() {
|
|
101
|
+
const data = {};
|
|
102
|
+
const excludeKeys = new Set([
|
|
103
|
+
'eventId',
|
|
104
|
+
'occurredOn',
|
|
105
|
+
'eventType',
|
|
106
|
+
'eventVersion',
|
|
107
|
+
'metadata',
|
|
108
|
+
'toJSON',
|
|
109
|
+
'fromJSON',
|
|
110
|
+
'getEventData',
|
|
111
|
+
]);
|
|
112
|
+
Object.keys(this).forEach((key) => {
|
|
113
|
+
if (!excludeKeys.has(key)) {
|
|
114
|
+
const value = this[key];
|
|
115
|
+
if (value instanceof Date) {
|
|
116
|
+
data[key] = value.toISOString();
|
|
117
|
+
}
|
|
118
|
+
else {
|
|
119
|
+
data[key] = value;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
});
|
|
123
|
+
return data;
|
|
124
|
+
}
|
|
125
|
+
static extractMetadata(json) {
|
|
126
|
+
const metadata = json.metadata;
|
|
127
|
+
if (!metadata) {
|
|
128
|
+
throw new Error('Event JSON missing metadata field');
|
|
129
|
+
}
|
|
130
|
+
return metadata;
|
|
131
|
+
}
|
|
132
|
+
static extractEventData(json) {
|
|
133
|
+
return json.data || {};
|
|
134
|
+
}
|
|
135
|
+
static extractOccurredOn(json) {
|
|
136
|
+
const occurredOn = json.occurredOn;
|
|
137
|
+
if (!occurredOn) {
|
|
138
|
+
throw new Error('Event JSON missing occurredOn field');
|
|
139
|
+
}
|
|
140
|
+
return new Date(occurredOn);
|
|
141
|
+
}
|
|
142
|
+
get aggregateId() {
|
|
143
|
+
return this.metadata.aggregateId;
|
|
144
|
+
}
|
|
145
|
+
get aggregateType() {
|
|
146
|
+
return this.metadata.aggregateType;
|
|
147
|
+
}
|
|
148
|
+
get aggregateVersion() {
|
|
149
|
+
return this.metadata.aggregateVersion;
|
|
150
|
+
}
|
|
151
|
+
get hasCorrelationId() {
|
|
152
|
+
return !!this.metadata.correlationId;
|
|
153
|
+
}
|
|
154
|
+
get hasCausationId() {
|
|
155
|
+
return !!this.metadata.causationId;
|
|
156
|
+
}
|
|
157
|
+
get hasUserId() {
|
|
158
|
+
return !!this.metadata.userId;
|
|
159
|
+
}
|
|
160
|
+
equals(other) {
|
|
161
|
+
if (!other) {
|
|
162
|
+
return false;
|
|
163
|
+
}
|
|
164
|
+
return this.eventId === other.eventId;
|
|
165
|
+
}
|
|
166
|
+
belongsToAggregate(aggregateId) {
|
|
167
|
+
return this.metadata.aggregateId === aggregateId;
|
|
168
|
+
}
|
|
169
|
+
isAggregateType(aggregateType) {
|
|
170
|
+
return this.metadata.aggregateType === aggregateType;
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
exports.DomainEvent = DomainEvent;
|
|
174
|
+
exports.AbstractDomainEvent = DomainEvent;
|
|
175
|
+
//# sourceMappingURL=domain-event.js.map
|
package/dist/enum.d.ts
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export declare abstract class DddEnum {
|
|
2
|
+
readonly id: number;
|
|
3
|
+
readonly name: string;
|
|
4
|
+
private static readonly _cache;
|
|
5
|
+
protected constructor(id: number, name: string);
|
|
6
|
+
private validateId;
|
|
7
|
+
private validateName;
|
|
8
|
+
toString(): string;
|
|
9
|
+
static getAll<T extends DddEnum>(): T[];
|
|
10
|
+
equals(other: unknown): boolean;
|
|
11
|
+
static absoluteDifference(firstValue: DddEnum, secondValue: DddEnum): number;
|
|
12
|
+
static fromValue<T extends DddEnum>(value: number): T | undefined;
|
|
13
|
+
static fromName<T extends DddEnum>(name: string): T | undefined;
|
|
14
|
+
static fromNameIgnoreCase<T extends DddEnum>(name: string): T | undefined;
|
|
15
|
+
static fromDisplayName<T extends DddEnum>(displayName: string): T | undefined;
|
|
16
|
+
compareTo(other: DddEnum): number;
|
|
17
|
+
isLessThan(other: DddEnum): boolean;
|
|
18
|
+
isLessThanOrEqual(other: DddEnum): boolean;
|
|
19
|
+
isGreaterThan(other: DddEnum): boolean;
|
|
20
|
+
isGreaterThanOrEqual(other: DddEnum): boolean;
|
|
21
|
+
static isDefined(value: number): boolean;
|
|
22
|
+
static getMinValue<T extends DddEnum>(): T | undefined;
|
|
23
|
+
static getMaxValue<T extends DddEnum>(): T | undefined;
|
|
24
|
+
isBetween(min: DddEnum, max: DddEnum): boolean;
|
|
25
|
+
static areEqual(left: DddEnum | null | undefined, right: DddEnum | null | undefined): boolean;
|
|
26
|
+
static areNotEqual(left: DddEnum | null | undefined, right: DddEnum | null | undefined): boolean;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=enum.d.ts.map
|