@woltz/rich-domain 1.3.2 → 1.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +21 -0
- package/dist/{aggregate-changes.d.ts → cjs/aggregate-changes.d.ts} +2 -2
- package/dist/cjs/aggregate-changes.d.ts.map +1 -0
- package/dist/cjs/aggregate-changes.js +365 -0
- package/dist/cjs/aggregate-changes.js.map +1 -0
- package/dist/{base-entity.d.ts → cjs/base-entity.d.ts} +5 -5
- package/dist/cjs/base-entity.d.ts.map +1 -0
- package/dist/cjs/base-entity.js +328 -0
- package/dist/cjs/base-entity.js.map +1 -0
- package/dist/{change-tracker.d.ts → cjs/change-tracker.d.ts} +2 -2
- package/dist/cjs/change-tracker.d.ts.map +1 -0
- package/dist/cjs/change-tracker.js +789 -0
- package/dist/cjs/change-tracker.js.map +1 -0
- package/dist/cjs/constants.d.ts.map +1 -0
- package/dist/cjs/constants.js +74 -0
- package/dist/cjs/constants.js.map +1 -0
- package/dist/{criteria.d.ts → cjs/criteria.d.ts} +1 -1
- package/dist/cjs/criteria.d.ts.map +1 -0
- package/dist/cjs/criteria.js +335 -0
- package/dist/{criteria.js.map → cjs/criteria.js.map} +1 -1
- package/dist/cjs/crypto.d.ts.map +1 -0
- package/dist/cjs/crypto.js +32 -0
- package/dist/cjs/crypto.js.map +1 -0
- package/dist/cjs/domain-event-bus.d.ts.map +1 -0
- package/dist/cjs/domain-event-bus.js +108 -0
- package/dist/cjs/domain-event-bus.js.map +1 -0
- package/dist/{domain-event.d.ts → cjs/domain-event.d.ts} +1 -1
- package/dist/cjs/domain-event.d.ts.map +1 -0
- package/dist/cjs/domain-event.js +47 -0
- package/dist/cjs/domain-event.js.map +1 -0
- package/dist/{entity-changes.d.ts → cjs/entity-changes.d.ts} +1 -1
- package/dist/cjs/entity-changes.d.ts.map +1 -0
- package/dist/cjs/entity-changes.js +136 -0
- package/dist/cjs/entity-changes.js.map +1 -0
- package/dist/{entity-schema-registry.d.ts → cjs/entity-schema-registry.d.ts} +2 -2
- package/dist/cjs/entity-schema-registry.d.ts.map +1 -0
- package/dist/cjs/entity-schema-registry.js +370 -0
- package/dist/cjs/entity-schema-registry.js.map +1 -0
- package/dist/{entity.d.ts → cjs/entity.d.ts} +2 -2
- package/dist/cjs/entity.d.ts.map +1 -0
- package/dist/cjs/entity.js +11 -0
- package/dist/cjs/entity.js.map +1 -0
- package/dist/cjs/exceptions.d.ts.map +1 -0
- package/dist/cjs/exceptions.js +365 -0
- package/dist/cjs/exceptions.js.map +1 -0
- package/dist/cjs/id.d.ts.map +1 -0
- package/dist/cjs/id.js +80 -0
- package/dist/cjs/id.js.map +1 -0
- package/dist/{index.d.ts → cjs/index.d.ts} +16 -16
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js +47 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/mapper.d.ts.map +1 -0
- package/dist/cjs/mapper.js +7 -0
- package/dist/cjs/mapper.js.map +1 -0
- package/dist/{paginated-result.d.ts → cjs/paginated-result.d.ts} +2 -2
- package/dist/cjs/paginated-result.d.ts.map +1 -0
- package/dist/cjs/paginated-result.js +194 -0
- package/dist/cjs/paginated-result.js.map +1 -0
- package/dist/{repository → cjs/repository}/base-repository.d.ts +6 -6
- package/dist/cjs/repository/base-repository.d.ts.map +1 -0
- package/dist/cjs/repository/base-repository.js +16 -0
- package/dist/cjs/repository/base-repository.js.map +1 -0
- package/dist/cjs/repository/index.d.ts +4 -0
- package/dist/cjs/repository/index.d.ts.map +1 -0
- package/dist/cjs/repository/index.js +24 -0
- package/dist/cjs/repository/index.js.map +1 -0
- package/dist/{repository → cjs/repository}/unit-of-work.d.ts +1 -1
- package/dist/cjs/repository/unit-of-work.d.ts.map +1 -0
- package/dist/cjs/repository/unit-of-work.js +60 -0
- package/dist/cjs/repository/unit-of-work.js.map +1 -0
- package/dist/cjs/types/change-tracker.d.ts +226 -0
- package/dist/cjs/types/change-tracker.d.ts.map +1 -0
- package/dist/cjs/types/change-tracker.js +3 -0
- package/dist/cjs/types/change-tracker.js.map +1 -0
- package/dist/cjs/types/criteria.d.ts +60 -0
- package/dist/cjs/types/criteria.d.ts.map +1 -0
- package/dist/cjs/types/criteria.js +20 -0
- package/dist/cjs/types/criteria.js.map +1 -0
- package/dist/cjs/types/domain-event.d.ts +32 -0
- package/dist/cjs/types/domain-event.d.ts.map +1 -0
- package/dist/cjs/types/domain-event.js +3 -0
- package/dist/{types → cjs/types}/domain-event.js.map +1 -1
- package/dist/{types → cjs/types}/domain.d.ts +2 -2
- package/dist/cjs/types/domain.d.ts.map +1 -0
- package/dist/cjs/types/domain.js +3 -0
- package/dist/{types → cjs/types}/domain.js.map +1 -1
- package/dist/cjs/types/index.d.ts +8 -0
- package/dist/cjs/types/index.d.ts.map +1 -0
- package/dist/cjs/types/index.js +24 -0
- package/dist/cjs/types/index.js.map +1 -0
- package/dist/cjs/types/standard-schema.d.ts.map +1 -0
- package/dist/cjs/types/standard-schema.js +3 -0
- package/dist/cjs/types/standard-schema.js.map +1 -0
- package/dist/{types → cjs/types}/unit-of-work.d.ts +2 -2
- package/dist/cjs/types/unit-of-work.d.ts.map +1 -0
- package/dist/cjs/types/unit-of-work.js +3 -0
- package/dist/{types → cjs/types}/unit-of-work.js.map +1 -1
- package/dist/{types → cjs/types}/utils.d.ts +1 -1
- package/dist/cjs/types/utils.d.ts.map +1 -0
- package/dist/cjs/types/utils.js +3 -0
- package/dist/{types → cjs/types}/utils.js.map +1 -1
- package/dist/{utils → cjs/utils}/criteria-operator-validation.d.ts +1 -1
- package/dist/cjs/utils/criteria-operator-validation.d.ts.map +1 -0
- package/dist/cjs/utils/criteria-operator-validation.js +171 -0
- package/dist/cjs/utils/criteria-operator-validation.js.map +1 -0
- package/dist/cjs/utils/helpers.d.ts.map +1 -0
- package/dist/cjs/utils/helpers.js +37 -0
- package/dist/cjs/utils/helpers.js.map +1 -0
- package/dist/cjs/validation-error.d.ts.map +1 -0
- package/dist/cjs/validation-error.js +117 -0
- package/dist/cjs/validation-error.js.map +1 -0
- package/dist/{value-object.d.ts → cjs/value-object.d.ts} +2 -2
- package/dist/cjs/value-object.d.ts.map +1 -0
- package/dist/cjs/value-object.js +192 -0
- package/dist/cjs/value-object.js.map +1 -0
- package/dist/esm/aggregate-changes.d.ts +206 -0
- package/dist/esm/aggregate-changes.d.ts.map +1 -0
- package/dist/{aggregate-changes.js → esm/aggregate-changes.js} +1 -1
- package/dist/esm/aggregate-changes.js.map +1 -0
- package/dist/esm/base-entity.d.ts +91 -0
- package/dist/esm/base-entity.d.ts.map +1 -0
- package/dist/{base-entity.js → esm/base-entity.js} +5 -5
- package/dist/esm/base-entity.js.map +1 -0
- package/dist/esm/change-tracker.d.ts +98 -0
- package/dist/esm/change-tracker.d.ts.map +1 -0
- package/dist/{change-tracker.js → esm/change-tracker.js} +4 -4
- package/dist/esm/change-tracker.js.map +1 -0
- package/dist/esm/constants.d.ts +9 -0
- package/dist/esm/constants.d.ts.map +1 -0
- package/dist/esm/constants.js.map +1 -0
- package/dist/esm/criteria.d.ts +62 -0
- package/dist/esm/criteria.d.ts.map +1 -0
- package/dist/{criteria.js → esm/criteria.js} +3 -3
- package/dist/esm/criteria.js.map +1 -0
- package/dist/esm/crypto.d.ts +3 -0
- package/dist/esm/crypto.d.ts.map +1 -0
- package/dist/esm/crypto.js.map +1 -0
- package/dist/esm/domain-event-bus.d.ts +56 -0
- package/dist/esm/domain-event-bus.d.ts.map +1 -0
- package/dist/esm/domain-event-bus.js.map +1 -0
- package/dist/esm/domain-event.d.ts +25 -0
- package/dist/esm/domain-event.d.ts.map +1 -0
- package/dist/{domain-event.js → esm/domain-event.js} +1 -1
- package/dist/esm/domain-event.js.map +1 -0
- package/dist/esm/entity-changes.d.ts +84 -0
- package/dist/esm/entity-changes.d.ts.map +1 -0
- package/dist/esm/entity-changes.js.map +1 -0
- package/dist/esm/entity-schema-registry.d.ts +282 -0
- package/dist/esm/entity-schema-registry.d.ts.map +1 -0
- package/dist/{entity-schema-registry.js → esm/entity-schema-registry.js} +5 -5
- package/dist/esm/entity-schema-registry.js.map +1 -0
- package/dist/esm/entity.d.ts +7 -0
- package/dist/esm/entity.d.ts.map +1 -0
- package/dist/{entity.js → esm/entity.js} +1 -1
- package/dist/esm/entity.js.map +1 -0
- package/dist/esm/exceptions.d.ts +251 -0
- package/dist/esm/exceptions.d.ts.map +1 -0
- package/dist/esm/exceptions.js.map +1 -0
- package/dist/esm/id.d.ts +52 -0
- package/dist/esm/id.d.ts.map +1 -0
- package/dist/{id.js → esm/id.js} +1 -1
- package/dist/esm/id.js.map +1 -0
- package/dist/esm/index.d.ts +17 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +16 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/mapper.d.ts +4 -0
- package/dist/esm/mapper.d.ts.map +1 -0
- package/dist/esm/mapper.js.map +1 -0
- package/dist/esm/package.json +3 -0
- package/dist/esm/paginated-result.d.ts +62 -0
- package/dist/esm/paginated-result.d.ts.map +1 -0
- package/dist/{paginated-result.js → esm/paginated-result.js} +1 -1
- package/dist/esm/paginated-result.js.map +1 -0
- package/dist/esm/repository/base-repository.d.ts +28 -0
- package/dist/esm/repository/base-repository.d.ts.map +1 -0
- package/dist/esm/repository/base-repository.js.map +1 -0
- package/dist/esm/repository/index.d.ts +4 -0
- package/dist/esm/repository/index.d.ts.map +1 -0
- package/dist/esm/repository/index.js +4 -0
- package/dist/esm/repository/index.js.map +1 -0
- package/dist/esm/repository/unit-of-work.d.ts +34 -0
- package/dist/esm/repository/unit-of-work.d.ts.map +1 -0
- package/dist/esm/repository/unit-of-work.js.map +1 -0
- package/dist/esm/types/change-tracker.d.ts +226 -0
- package/dist/esm/types/change-tracker.d.ts.map +1 -0
- package/dist/esm/types/change-tracker.js.map +1 -0
- package/dist/esm/types/criteria.d.ts +60 -0
- package/dist/esm/types/criteria.d.ts.map +1 -0
- package/dist/esm/types/criteria.js.map +1 -0
- package/dist/esm/types/domain-event.d.ts +32 -0
- package/dist/esm/types/domain-event.d.ts.map +1 -0
- package/dist/esm/types/domain-event.js.map +1 -0
- package/dist/esm/types/domain.d.ts +29 -0
- package/dist/esm/types/domain.d.ts.map +1 -0
- package/dist/esm/types/domain.js.map +1 -0
- package/dist/esm/types/index.d.ts +8 -0
- package/dist/esm/types/index.d.ts.map +1 -0
- package/dist/esm/types/index.js +8 -0
- package/dist/esm/types/index.js.map +1 -0
- package/dist/esm/types/standard-schema.d.ts +15 -0
- package/dist/esm/types/standard-schema.d.ts.map +1 -0
- package/dist/esm/types/standard-schema.js.map +1 -0
- package/dist/esm/types/unit-of-work.d.ts +39 -0
- package/dist/esm/types/unit-of-work.d.ts.map +1 -0
- package/dist/esm/types/unit-of-work.js.map +1 -0
- package/dist/esm/types/utils.d.ts +13 -0
- package/dist/esm/types/utils.d.ts.map +1 -0
- package/dist/esm/types/utils.js.map +1 -0
- package/dist/esm/utils/criteria-operator-validation.d.ts +6 -0
- package/dist/esm/utils/criteria-operator-validation.d.ts.map +1 -0
- package/dist/{utils → esm/utils}/criteria-operator-validation.js +1 -1
- package/dist/esm/utils/criteria-operator-validation.js.map +1 -0
- package/dist/esm/utils/helpers.d.ts +3 -0
- package/dist/esm/utils/helpers.d.ts.map +1 -0
- package/dist/esm/utils/helpers.js.map +1 -0
- package/dist/esm/validation-error.d.ts +56 -0
- package/dist/esm/validation-error.d.ts.map +1 -0
- package/dist/esm/validation-error.js.map +1 -0
- package/dist/esm/value-object.d.ts +96 -0
- package/dist/esm/value-object.d.ts.map +1 -0
- package/dist/{value-object.js → esm/value-object.js} +3 -3
- package/dist/esm/value-object.js.map +1 -0
- package/dist/tsconfig.cjs.tsbuildinfo +1 -0
- package/dist/tsconfig.esm.tsbuildinfo +1 -0
- package/dist/tsconfig.types.tsbuildinfo +1 -0
- package/dist/types/aggregate-changes.d.ts +206 -0
- package/dist/types/aggregate-changes.d.ts.map +1 -0
- package/dist/types/base-entity.d.ts +91 -0
- package/dist/types/base-entity.d.ts.map +1 -0
- package/dist/types/change-tracker.d.ts +90 -218
- package/dist/types/change-tracker.d.ts.map +1 -1
- package/dist/types/constants.d.ts +9 -0
- package/dist/types/constants.d.ts.map +1 -0
- package/dist/types/criteria.d.ts +59 -57
- package/dist/types/criteria.d.ts.map +1 -1
- package/dist/types/crypto.d.ts +3 -0
- package/dist/types/crypto.d.ts.map +1 -0
- package/dist/types/domain-event-bus.d.ts +56 -0
- package/dist/types/domain-event-bus.d.ts.map +1 -0
- package/dist/types/domain-event.d.ts +14 -21
- package/dist/types/domain-event.d.ts.map +1 -1
- package/dist/types/entity-changes.d.ts +84 -0
- package/dist/types/entity-changes.d.ts.map +1 -0
- package/dist/types/entity-schema-registry.d.ts +282 -0
- package/dist/types/entity-schema-registry.d.ts.map +1 -0
- package/dist/types/entity.d.ts +7 -0
- package/dist/types/entity.d.ts.map +1 -0
- package/dist/types/exceptions.d.ts +251 -0
- package/dist/types/exceptions.d.ts.map +1 -0
- package/dist/types/id.d.ts +52 -0
- package/dist/types/id.d.ts.map +1 -0
- package/dist/types/index.d.ts +16 -7
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/mapper.d.ts +4 -0
- package/dist/types/mapper.d.ts.map +1 -0
- package/dist/types/paginated-result.d.ts +62 -0
- package/dist/types/paginated-result.d.ts.map +1 -0
- package/dist/types/repository/base-repository.d.ts +28 -0
- package/dist/types/repository/base-repository.d.ts.map +1 -0
- package/dist/types/repository/index.d.ts +4 -0
- package/dist/types/repository/index.d.ts.map +1 -0
- package/dist/types/repository/unit-of-work.d.ts +34 -0
- package/dist/types/repository/unit-of-work.d.ts.map +1 -0
- package/dist/types/types/change-tracker.d.ts +226 -0
- package/dist/types/types/change-tracker.d.ts.map +1 -0
- package/dist/types/types/criteria.d.ts +60 -0
- package/dist/types/types/criteria.d.ts.map +1 -0
- package/dist/types/types/domain-event.d.ts +32 -0
- package/dist/types/types/domain-event.d.ts.map +1 -0
- package/dist/types/types/domain.d.ts +29 -0
- package/dist/types/types/domain.d.ts.map +1 -0
- package/dist/types/types/index.d.ts +8 -0
- package/dist/types/types/index.d.ts.map +1 -0
- package/dist/types/types/standard-schema.d.ts +15 -0
- package/dist/types/types/standard-schema.d.ts.map +1 -0
- package/dist/types/types/unit-of-work.d.ts +39 -0
- package/dist/types/types/unit-of-work.d.ts.map +1 -0
- package/dist/types/types/utils.d.ts +13 -0
- package/dist/types/types/utils.d.ts.map +1 -0
- package/dist/types/utils/criteria-operator-validation.d.ts +6 -0
- package/dist/types/utils/criteria-operator-validation.d.ts.map +1 -0
- package/dist/types/utils/helpers.d.ts +3 -0
- package/dist/types/utils/helpers.d.ts.map +1 -0
- package/dist/types/validation-error.d.ts +56 -0
- package/dist/types/validation-error.d.ts.map +1 -0
- package/dist/types/value-object.d.ts +96 -0
- package/dist/types/value-object.d.ts.map +1 -0
- package/package.json +13 -8
- package/dist/aggregate-changes.d.ts.map +0 -1
- package/dist/aggregate-changes.js.map +0 -1
- package/dist/base-entity.d.ts.map +0 -1
- package/dist/base-entity.js.map +0 -1
- package/dist/change-tracker.d.ts.map +0 -1
- package/dist/change-tracker.js.map +0 -1
- package/dist/constants.d.ts.map +0 -1
- package/dist/constants.js.map +0 -1
- package/dist/criteria.d.ts.map +0 -1
- package/dist/crypto.d.ts.map +0 -1
- package/dist/crypto.js.map +0 -1
- package/dist/domain-event-bus.d.ts.map +0 -1
- package/dist/domain-event-bus.js.map +0 -1
- package/dist/domain-event.d.ts.map +0 -1
- package/dist/domain-event.js.map +0 -1
- package/dist/entity-changes.d.ts.map +0 -1
- package/dist/entity-changes.js.map +0 -1
- package/dist/entity-schema-registry.d.ts.map +0 -1
- package/dist/entity-schema-registry.js.map +0 -1
- package/dist/entity.d.ts.map +0 -1
- package/dist/entity.js.map +0 -1
- package/dist/exceptions.d.ts.map +0 -1
- package/dist/exceptions.js.map +0 -1
- package/dist/id.d.ts.map +0 -1
- package/dist/id.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -16
- package/dist/index.js.map +0 -1
- package/dist/mapper.d.ts.map +0 -1
- package/dist/mapper.js.map +0 -1
- package/dist/paginated-result.d.ts.map +0 -1
- package/dist/paginated-result.js.map +0 -1
- package/dist/repository/base-repository.d.ts.map +0 -1
- package/dist/repository/base-repository.js.map +0 -1
- package/dist/repository/index.d.ts +0 -4
- package/dist/repository/index.d.ts.map +0 -1
- package/dist/repository/index.js +0 -4
- package/dist/repository/index.js.map +0 -1
- package/dist/repository/unit-of-work.d.ts.map +0 -1
- package/dist/repository/unit-of-work.js.map +0 -1
- package/dist/types/change-tracker.js.map +0 -1
- package/dist/types/criteria.js.map +0 -1
- package/dist/types/domain.d.ts.map +0 -1
- package/dist/types/index.js +0 -8
- package/dist/types/index.js.map +0 -1
- package/dist/types/standard-schema.d.ts.map +0 -1
- package/dist/types/standard-schema.js.map +0 -1
- package/dist/types/unit-of-work.d.ts.map +0 -1
- package/dist/types/utils.d.ts.map +0 -1
- package/dist/utils/criteria-operator-validation.d.ts.map +0 -1
- package/dist/utils/criteria-operator-validation.js.map +0 -1
- package/dist/utils/helpers.d.ts.map +0 -1
- package/dist/utils/helpers.js.map +0 -1
- package/dist/validation-error.d.ts.map +0 -1
- package/dist/validation-error.js.map +0 -1
- package/dist/value-object.d.ts.map +0 -1
- package/dist/value-object.js.map +0 -1
- /package/dist/{constants.d.ts → cjs/constants.d.ts} +0 -0
- /package/dist/{crypto.d.ts → cjs/crypto.d.ts} +0 -0
- /package/dist/{domain-event-bus.d.ts → cjs/domain-event-bus.d.ts} +0 -0
- /package/dist/{exceptions.d.ts → cjs/exceptions.d.ts} +0 -0
- /package/dist/{id.d.ts → cjs/id.d.ts} +0 -0
- /package/dist/{mapper.d.ts → cjs/mapper.d.ts} +0 -0
- /package/dist/{types → cjs/types}/standard-schema.d.ts +0 -0
- /package/dist/{utils → cjs/utils}/helpers.d.ts +0 -0
- /package/dist/{validation-error.d.ts → cjs/validation-error.d.ts} +0 -0
- /package/dist/{constants.js → esm/constants.js} +0 -0
- /package/dist/{crypto.js → esm/crypto.js} +0 -0
- /package/dist/{domain-event-bus.js → esm/domain-event-bus.js} +0 -0
- /package/dist/{entity-changes.js → esm/entity-changes.js} +0 -0
- /package/dist/{exceptions.js → esm/exceptions.js} +0 -0
- /package/dist/{mapper.js → esm/mapper.js} +0 -0
- /package/dist/{repository → esm/repository}/base-repository.js +0 -0
- /package/dist/{repository → esm/repository}/unit-of-work.js +0 -0
- /package/dist/{types → esm/types}/change-tracker.js +0 -0
- /package/dist/{types → esm/types}/criteria.js +0 -0
- /package/dist/{types → esm/types}/domain-event.js +0 -0
- /package/dist/{types → esm/types}/domain.js +0 -0
- /package/dist/{types → esm/types}/standard-schema.js +0 -0
- /package/dist/{types → esm/types}/unit-of-work.js +0 -0
- /package/dist/{types → esm/types}/utils.js +0 -0
- /package/dist/{utils → esm/utils}/helpers.js +0 -0
- /package/dist/{validation-error.js → esm/validation-error.js} +0 -0
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { Id } from "./id.js";
|
|
2
|
+
import { ValidationError } from "./validation-error.js";
|
|
3
|
+
import { IDomainEvent } from ".";
|
|
4
|
+
import { BaseProps, HistoryEntry, DeepJsonResult, EntityHooks, EntityValidation } from "./types/index.js";
|
|
5
|
+
import { DomainEventBus } from "./domain-event-bus.js";
|
|
6
|
+
import { AggregateChanges } from "./aggregate-changes.js";
|
|
7
|
+
export declare abstract class BaseEntity<T extends BaseProps> {
|
|
8
|
+
private _props;
|
|
9
|
+
private tracker;
|
|
10
|
+
private proxiedProps;
|
|
11
|
+
private snapshot;
|
|
12
|
+
private validationConfig;
|
|
13
|
+
private entityHooks?;
|
|
14
|
+
private entitySchema?;
|
|
15
|
+
private domainEvents;
|
|
16
|
+
protected static validation?: EntityValidation<any>;
|
|
17
|
+
protected static hooks?: EntityHooks<any, any>;
|
|
18
|
+
constructor(props: Omit<T, "id"> & {
|
|
19
|
+
id?: Id;
|
|
20
|
+
});
|
|
21
|
+
private validateProps;
|
|
22
|
+
private extractPathKey;
|
|
23
|
+
/**
|
|
24
|
+
* Setup validation that runs on every property change.
|
|
25
|
+
* Uses the ChangeTracker's onChangeValidator callback.
|
|
26
|
+
*/
|
|
27
|
+
private setupUpdateValidation;
|
|
28
|
+
private takeSnapshot;
|
|
29
|
+
private deepCloneProps;
|
|
30
|
+
get id(): Id;
|
|
31
|
+
isNew(): boolean;
|
|
32
|
+
/**
|
|
33
|
+
* Check equality with another entity by comparing IDs
|
|
34
|
+
*/
|
|
35
|
+
equals(other: BaseEntity<T> | Id | string): boolean;
|
|
36
|
+
get props(): T;
|
|
37
|
+
/**
|
|
38
|
+
* Check if entity has validation errors (when throwOnError is false)
|
|
39
|
+
*/
|
|
40
|
+
get hasValidationErrors(): boolean;
|
|
41
|
+
/**
|
|
42
|
+
* Get validation errors (when throwOnError is false)
|
|
43
|
+
*/
|
|
44
|
+
get validationErrors(): ValidationError | undefined;
|
|
45
|
+
/**
|
|
46
|
+
* Returns all detected changes as AggregateChanges.
|
|
47
|
+
*
|
|
48
|
+
* @example
|
|
49
|
+
* ```typescript
|
|
50
|
+
* const changes = user.getChanges();
|
|
51
|
+
* const batch = changes.toBatchOperations();
|
|
52
|
+
*
|
|
53
|
+
* for (const del of batch.deletes) { ... }
|
|
54
|
+
* for (const create of batch.creates) { ... }
|
|
55
|
+
* for (const upd of batch.updates) { ... }
|
|
56
|
+
* ```
|
|
57
|
+
*/
|
|
58
|
+
getChanges<TEntityMap = Record<string, any>>(): AggregateChanges<TEntityMap>;
|
|
59
|
+
/**
|
|
60
|
+
* Returns the change history (for debugging).
|
|
61
|
+
*/
|
|
62
|
+
getHistory(): HistoryEntry[];
|
|
63
|
+
/**
|
|
64
|
+
* Clears history and marks entity as "clean".
|
|
65
|
+
* Call this after successfully persisting to the database.
|
|
66
|
+
*/
|
|
67
|
+
markAsClean(): void;
|
|
68
|
+
/**
|
|
69
|
+
* Add a domain event to this entity
|
|
70
|
+
*/
|
|
71
|
+
protected addDomainEvent(event: IDomainEvent): void;
|
|
72
|
+
/**
|
|
73
|
+
* Dispatch all events through the event bus
|
|
74
|
+
*/
|
|
75
|
+
dispatchAll(bus: DomainEventBus): Promise<void>;
|
|
76
|
+
/**
|
|
77
|
+
* Get all uncommitted domain events
|
|
78
|
+
*/
|
|
79
|
+
getUncommittedEvents(): IDomainEvent[];
|
|
80
|
+
/**
|
|
81
|
+
* Clear all domain events (call after publishing)
|
|
82
|
+
*/
|
|
83
|
+
clearEvents(): void;
|
|
84
|
+
/**
|
|
85
|
+
* Check if entity has uncommitted events
|
|
86
|
+
*/
|
|
87
|
+
hasUncommittedEvents(): boolean;
|
|
88
|
+
toJSON(): DeepJsonResult<T>;
|
|
89
|
+
private deepToJson;
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=base-entity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-entity.d.ts","sourceRoot":"","sources":["../../src/base-entity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAC7B,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,GAAG,CAAC;AACjC,OAAO,EACL,SAAS,EACT,YAAY,EACZ,cAAc,EACd,WAAW,EAGX,gBAAgB,EACjB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAIvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAS1D,8BAAsB,UAAU,CAAC,CAAC,SAAS,SAAS;IAClD,OAAO,CAAC,MAAM,CAAI;IAClB,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,YAAY,CAAI;IACxB,OAAO,CAAC,QAAQ,CAAkB;IAClC,OAAO,CAAC,gBAAgB,CAA6B;IACrD,OAAO,CAAC,WAAW,CAAC,CAAsB;IAC1C,OAAO,CAAC,YAAY,CAAC,CAAoB;IACzC,OAAO,CAAC,YAAY,CAAsB;IAE1C,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,gBAAgB,CAAC,GAAG,CAAC,CAAC;IACpD,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;gBAEnC,KAAK,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG;QAAE,EAAE,CAAC,EAAE,EAAE,CAAA;KAAE;IAqD9C,OAAO,CAAC,aAAa;IA8BrB,OAAO,CAAC,cAAc;IAgBtB;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IA4E7B,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,cAAc;IAkDtB,IAAI,EAAE,IAAI,EAAE,CAEX;IAEM,KAAK,IAAI,OAAO;IAIvB;;OAEG;IACH,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,MAAM,GAAG,OAAO;IAoBnD,IAAW,KAAK,IAAI,CAAC,CAEpB;IAED;;OAEG;IACH,IAAI,mBAAmB,IAAI,OAAO,CAEjC;IAED;;OAEG;IACH,IAAI,gBAAgB,IAAI,eAAe,GAAG,SAAS,CAElD;IAED;;;;;;;;;;;;OAYG;IACH,UAAU,CAAC,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,gBAAgB,CAAC,UAAU,CAAC;IAI5E;;OAEG;IACH,UAAU,IAAI,YAAY,EAAE;IAI5B;;;OAGG;IACH,WAAW,IAAI,IAAI;IAKnB;;OAEG;IACH,SAAS,CAAC,cAAc,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI;IAInD;;OAEG;IACU,WAAW,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAK5D;;OAEG;IACH,oBAAoB,IAAI,YAAY,EAAE;IAItC;;OAEG;IACH,WAAW,IAAI,IAAI;IAInB;;OAEG;IACH,oBAAoB,IAAI,OAAO;IAI/B,MAAM,IAAI,cAAc,CAAC,CAAC,CAAC;IAI3B,OAAO,CAAC,UAAU;CAgBnB"}
|
|
@@ -1,226 +1,98 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
/**
|
|
4
|
-
*
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
*
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
data: T;
|
|
35
|
-
/** Only fields that have changed */
|
|
36
|
-
changedFields: Record<string, any>;
|
|
37
|
-
}
|
|
38
|
-
/**
|
|
39
|
-
* Delete operation.
|
|
40
|
-
*/
|
|
41
|
-
export interface DeleteOperation<T = any> extends BaseOperation {
|
|
42
|
-
type: "delete";
|
|
43
|
-
/** Entity ID to be deleted */
|
|
44
|
-
id: string;
|
|
45
|
-
/** Entity data (for reference) */
|
|
46
|
-
data: T;
|
|
47
|
-
/** Parent entity name */
|
|
48
|
-
parentEntity?: string;
|
|
49
|
-
/** Parent ID */
|
|
50
|
-
parentId?: string;
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* Union of all possible operations.
|
|
54
|
-
*/
|
|
55
|
-
export type Operation<T = any> = CreateOperation<T> | UpdateOperation<T> | DeleteOperation<T>;
|
|
56
|
-
/**
|
|
57
|
-
* Item for batch creation.
|
|
58
|
-
*/
|
|
59
|
-
export interface BatchCreateItem<T = any> {
|
|
60
|
-
/** Entity data */
|
|
61
|
-
data: T;
|
|
62
|
-
/** Parent ID (for FK) */
|
|
63
|
-
parentId?: string;
|
|
64
|
-
/** Parent entity name */
|
|
65
|
-
parentEntity?: string;
|
|
66
|
-
/** Relation field name */
|
|
67
|
-
relationField?: string;
|
|
68
|
-
}
|
|
69
|
-
/**
|
|
70
|
-
* Item for batch update.
|
|
71
|
-
*/
|
|
72
|
-
export interface BatchUpdateItem {
|
|
73
|
-
/** Entity ID */
|
|
74
|
-
id: string;
|
|
75
|
-
/** Fields that have changed */
|
|
76
|
-
changedFields: Record<string, any>;
|
|
77
|
-
}
|
|
78
|
-
/**
|
|
79
|
-
* Item for batch delete.
|
|
80
|
-
*/
|
|
81
|
-
export interface BatchDeleteItem {
|
|
82
|
-
/** Entity ID */
|
|
83
|
-
id: string;
|
|
84
|
-
/** Relation field name */
|
|
85
|
-
relationField?: string;
|
|
86
|
-
}
|
|
87
|
-
/**
|
|
88
|
-
* Grouped and ordered operations for batch execution.
|
|
89
|
-
*/
|
|
90
|
-
export interface BatchOperations {
|
|
1
|
+
import { HistoryEntry } from "./types/index.js";
|
|
2
|
+
import { AggregateChanges } from "./aggregate-changes.js";
|
|
3
|
+
/**
|
|
4
|
+
* Callback for validation on property change.
|
|
5
|
+
* Return false to reject the change, or throw an error.
|
|
6
|
+
*/
|
|
7
|
+
export type OnChangeValidator = (path: string, newValue: any) => boolean | void;
|
|
8
|
+
/**
|
|
9
|
+
* Tracks changes in Aggregates using Proxy.
|
|
10
|
+
*
|
|
11
|
+
* Features:
|
|
12
|
+
* - Tracks changes in primitive properties
|
|
13
|
+
* - Tracks changes in nested entities (1:1)
|
|
14
|
+
* - Tracks changes in collections (1:N)
|
|
15
|
+
* - Supports Value Objects with identityKey
|
|
16
|
+
* - Calculates depth automatically
|
|
17
|
+
* - Generates AggregateChanges for persistence
|
|
18
|
+
* - Supports validation on change via onChangeValidator
|
|
19
|
+
*/
|
|
20
|
+
export declare class ChangeTracker {
|
|
21
|
+
private target;
|
|
22
|
+
private rootEntityName;
|
|
23
|
+
private path;
|
|
24
|
+
private depth;
|
|
25
|
+
private parentId?;
|
|
26
|
+
private parentEntity?;
|
|
27
|
+
private rootTracker?;
|
|
28
|
+
private history;
|
|
29
|
+
private originalValues;
|
|
30
|
+
private trackedArrays;
|
|
31
|
+
private trackedEntities;
|
|
32
|
+
private onChangeValidator?;
|
|
33
|
+
constructor(target: any, rootEntityName: string, path?: string, depth?: number, parentId?: string | undefined, parentEntity?: string | undefined, rootTracker?: ChangeTracker | undefined);
|
|
91
34
|
/**
|
|
92
|
-
*
|
|
35
|
+
* Sets a validator callback that will be called on every property change.
|
|
36
|
+
* The validator can:
|
|
37
|
+
* - Return false to reject the change (value will be reverted)
|
|
38
|
+
* - Throw an error to reject the change with an error
|
|
39
|
+
* - Return true/undefined to accept the change
|
|
93
40
|
*/
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
relationField?: string;
|
|
101
|
-
/** Parent entity name */
|
|
102
|
-
parentEntity?: string;
|
|
103
|
-
/** Individual items with their relation fields (when mixed) */
|
|
104
|
-
items?: BatchDeleteItem[];
|
|
105
|
-
}>;
|
|
41
|
+
setOnChangeValidator(validator: OnChangeValidator): void;
|
|
42
|
+
private captureInitialState;
|
|
43
|
+
private captureEntityState;
|
|
44
|
+
private captureArrayState;
|
|
45
|
+
createProxy(): any;
|
|
46
|
+
private createArrayProxy;
|
|
106
47
|
/**
|
|
107
|
-
*
|
|
48
|
+
* Returns all detected changes as AggregateChanges.
|
|
108
49
|
*/
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
items: BatchCreateItem[];
|
|
113
|
-
/** Relation field name (for determining owned vs reference) */
|
|
114
|
-
relationField?: string;
|
|
115
|
-
/** Parent entity name */
|
|
116
|
-
parentEntity?: string;
|
|
117
|
-
}>;
|
|
50
|
+
getChanges<TEntityMap = Record<string, any>>(): AggregateChanges<TEntityMap>;
|
|
51
|
+
private analyzeRootChanges;
|
|
52
|
+
private analyzeCollectionChanges;
|
|
118
53
|
/**
|
|
119
|
-
*
|
|
54
|
+
* Recursively marks all nested items as created when a parent is created.
|
|
120
55
|
*/
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
/**
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
}
|
|
163
|
-
/**
|
|
164
|
-
* Change in a primitive field.
|
|
165
|
-
*/
|
|
166
|
-
export interface FieldChange<T = any> {
|
|
167
|
-
from: T;
|
|
168
|
-
to: T;
|
|
169
|
-
}
|
|
170
|
-
/**
|
|
171
|
-
* Extracts the props type from an Entity or ValueObject.
|
|
172
|
-
*/
|
|
173
|
-
export type ExtractProps<T> = T extends Entity<infer P> ? P : T extends ValueObject<infer P> ? P : never;
|
|
174
|
-
/**
|
|
175
|
-
* Keys of primitive properties (not Entity, ValueObject or Array).
|
|
176
|
-
*/
|
|
177
|
-
export type PrimitiveKeys<T> = {
|
|
178
|
-
[K in keyof T]: T[K] extends Entity<any> | ValueObject<any> | Array<any> | undefined ? never : K;
|
|
179
|
-
}[keyof T];
|
|
180
|
-
/**
|
|
181
|
-
* Keys of collections (arrays).
|
|
182
|
-
*/
|
|
183
|
-
export type CollectionKeys<T> = {
|
|
184
|
-
[K in keyof T]: T[K] extends Array<any> ? K : never;
|
|
185
|
-
}[keyof T];
|
|
186
|
-
/**
|
|
187
|
-
* Keys of single entities (1:1).
|
|
188
|
-
*/
|
|
189
|
-
export type SingleEntityKeys<T> = {
|
|
190
|
-
[K in keyof T]: T[K] extends Entity<any> | ValueObject<any> | null | undefined ? T[K] extends Array<any> ? never : K : never;
|
|
191
|
-
}[keyof T];
|
|
192
|
-
/**
|
|
193
|
-
* Change history entry.
|
|
194
|
-
*/
|
|
195
|
-
export interface HistoryEntry {
|
|
196
|
-
path: string;
|
|
197
|
-
previousValue: any;
|
|
198
|
-
currentValue: any;
|
|
199
|
-
timestamp: number;
|
|
200
|
-
}
|
|
201
|
-
/**
|
|
202
|
-
* Metadata from a tracked entity/VO.
|
|
203
|
-
*/
|
|
204
|
-
export interface TrackedEntityMetadata {
|
|
205
|
-
/** Entity name */
|
|
206
|
-
entityName: string;
|
|
207
|
-
/** Depth in the tree */
|
|
208
|
-
depth: number;
|
|
209
|
-
/** Parent ID */
|
|
210
|
-
parentId?: string;
|
|
211
|
-
/** Parent entity name */
|
|
212
|
-
parentEntity?: string;
|
|
213
|
-
/** Path in the object (e.g., 'posts[0].comments[1]') */
|
|
214
|
-
path: string;
|
|
215
|
-
}
|
|
216
|
-
export interface TrackedItem {
|
|
217
|
-
entity: any;
|
|
218
|
-
metadata: TrackedEntityMetadata;
|
|
219
|
-
originalState: any;
|
|
220
|
-
}
|
|
221
|
-
export interface ArrayState {
|
|
222
|
-
cloned: any[];
|
|
223
|
-
original: any[];
|
|
224
|
-
metadata: TrackedEntityMetadata;
|
|
56
|
+
private markNestedItemsAsCreated;
|
|
57
|
+
/**
|
|
58
|
+
* Recursively marks all nested items as deleted when a parent is deleted.
|
|
59
|
+
* Uses the original captured state to find nested items.
|
|
60
|
+
*/
|
|
61
|
+
private markNestedItemsAsDeleted;
|
|
62
|
+
/**
|
|
63
|
+
* Recursively marks nested items as deleted from a JSON object.
|
|
64
|
+
* This is used when processing cloned (JSON) state.
|
|
65
|
+
*/
|
|
66
|
+
private markNestedJsonItemAsDeleted;
|
|
67
|
+
/**
|
|
68
|
+
* Extracts identity key from a JSON object by looking at the original ValueObject instances.
|
|
69
|
+
*/
|
|
70
|
+
private extractIdentityKeyFromJson;
|
|
71
|
+
private collectNestedArrays;
|
|
72
|
+
private analyzeEntityChanges;
|
|
73
|
+
private detectEntityChangeState;
|
|
74
|
+
private detectArrayChanges;
|
|
75
|
+
private detectChangedFields;
|
|
76
|
+
private handleArrayAssignment;
|
|
77
|
+
private handleEntityChange;
|
|
78
|
+
private getRootTracker;
|
|
79
|
+
private buildPath;
|
|
80
|
+
private shouldSkipProperty;
|
|
81
|
+
private getValueAtPath;
|
|
82
|
+
private extractRelationField;
|
|
83
|
+
private getItemKey;
|
|
84
|
+
private getEntityId;
|
|
85
|
+
private getEntityName;
|
|
86
|
+
private isEntityOrVO;
|
|
87
|
+
private isEqual;
|
|
88
|
+
private deepEqual;
|
|
89
|
+
private hasChanged;
|
|
90
|
+
private cloneArray;
|
|
91
|
+
private deepClone;
|
|
92
|
+
private normalizeAndStringify;
|
|
93
|
+
getHistory(): HistoryEntry[];
|
|
94
|
+
clearHistory(): void;
|
|
95
|
+
markAsClean(): void;
|
|
96
|
+
getTarget(): any;
|
|
225
97
|
}
|
|
226
98
|
//# sourceMappingURL=change-tracker.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"change-tracker.d.ts","sourceRoot":"","sources":["../../src/
|
|
1
|
+
{"version":3,"file":"change-tracker.d.ts","sourceRoot":"","sources":["../../src/change-tracker.ts"],"names":[],"mappings":"AAGA,OAAO,EAAc,YAAY,EAAe,MAAM,kBAAkB,CAAC;AAEzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE1D;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,KAAK,OAAO,GAAG,IAAI,CAAC;AAEhF;;;;;;;;;;;GAWG;AACH,qBAAa,aAAa;IAQtB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,KAAK;IAEb,OAAO,CAAC,QAAQ,CAAC;IAEjB,OAAO,CAAC,YAAY,CAAC;IACrB,OAAO,CAAC,WAAW,CAAC;IAftB,OAAO,CAAC,OAAO,CAAsB;IACrC,OAAO,CAAC,cAAc,CAA+B;IACrD,OAAO,CAAC,aAAa,CAAsC;IAC3D,OAAO,CAAC,eAAe,CAAuC;IAC9D,OAAO,CAAC,iBAAiB,CAAC,CAAoB;gBAGpC,MAAM,EAAE,GAAG,EACX,cAAc,EAAE,MAAM,EACtB,IAAI,GAAE,MAAW,EACjB,KAAK,GAAE,MAAU,EAEjB,QAAQ,CAAC,EAAE,MAAM,YAAA,EAEjB,YAAY,CAAC,EAAE,MAAM,YAAA,EACrB,WAAW,CAAC,EAAE,aAAa,YAAA;IAQrC;;;;;;OAMG;IACH,oBAAoB,CAAC,SAAS,EAAE,iBAAiB,GAAG,IAAI;IAIxD,OAAO,CAAC,mBAAmB;IAK3B,OAAO,CAAC,kBAAkB;IAgD1B,OAAO,CAAC,iBAAiB;IAoCzB,WAAW,IAAI,GAAG;IAmFlB,OAAO,CAAC,gBAAgB;IA+GxB;;OAEG;IACH,UAAU,CAAC,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,gBAAgB,CAAC,UAAU,CAAC;IAW5E,OAAO,CAAC,kBAAkB;IAgC1B,OAAO,CAAC,wBAAwB;IAsFhC;;OAEG;IACH,OAAO,CAAC,wBAAwB;IA8ChC;;;OAGG;IACH,OAAO,CAAC,wBAAwB;IA8ChC;;;OAGG;IACH,OAAO,CAAC,2BAA2B;IA0DnC;;OAEG;IACH,OAAO,CAAC,0BAA0B;IAmBlC,OAAO,CAAC,mBAAmB;IA+B3B,OAAO,CAAC,oBAAoB;IA0F5B,OAAO,CAAC,uBAAuB;IA0B/B,OAAO,CAAC,kBAAkB;IA2C1B,OAAO,CAAC,mBAAmB;IA6B3B,OAAO,CAAC,qBAAqB;IAe7B,OAAO,CAAC,kBAAkB;IAqB1B,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,kBAAkB;IAY1B,OAAO,CAAC,cAAc;IAgBtB,OAAO,CAAC,oBAAoB;IAM5B,OAAO,CAAC,UAAU;IAWlB,OAAO,CAAC,WAAW;IAOnB,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,YAAY;IAKpB,OAAO,CAAC,OAAO;IAaf,OAAO,CAAC,SAAS;IA4CjB,OAAO,CAAC,UAAU;IAMlB,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,SAAS;IAkCjB,OAAO,CAAC,qBAAqB;IAkB7B,UAAU,IAAI,YAAY,EAAE;IAI5B,YAAY,IAAI,IAAI;IASpB,WAAW,IAAI,IAAI;IAInB,SAAS,IAAI,GAAG;CAGjB"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ArrayOperators, BooleanOperators, DateOperators, FilterOperator, NumberOperators, StringOperators, ValidationConfig } from ".";
|
|
2
|
+
export declare const DEFAULT_VALIDATION_CONFIG: Required<ValidationConfig>;
|
|
3
|
+
export declare const ARRAY_OPERATORS: ArrayOperators[];
|
|
4
|
+
export declare const BOOLEAN_OPERATORS: BooleanOperators[];
|
|
5
|
+
export declare const DATE_OPERATORS: DateOperators[];
|
|
6
|
+
export declare const NUMBER_OPERATORS: NumberOperators[];
|
|
7
|
+
export declare const STRING_OPERATORS: StringOperators[];
|
|
8
|
+
export declare const FILTER_OPERATORS: FilterOperator[];
|
|
9
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,aAAa,EACb,cAAc,EACd,eAAe,EACf,eAAe,EACf,gBAAgB,EACjB,MAAM,GAAG,CAAC;AAEX,eAAO,MAAM,yBAAyB,EAAE,QAAQ,CAAC,gBAAgB,CAIhE,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,cAAc,EAK3C,CAAC;AACF,eAAO,MAAM,iBAAiB,EAAE,gBAAgB,EAK/C,CAAC;AACF,eAAO,MAAM,cAAc,EAAE,aAAa,EAYzC,CAAC;AACF,eAAO,MAAM,gBAAgB,EAAE,eAAe,EAY7C,CAAC;AACF,eAAO,MAAM,gBAAgB,EAAE,eAAe,EAU7C,CAAC;AACF,eAAO,MAAM,gBAAgB,EAAE,cAAc,EAe5C,CAAC"}
|
package/dist/types/criteria.d.ts
CHANGED
|
@@ -1,60 +1,62 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export declare
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
field:
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
1
|
+
import { CriteriaAdapter, CriteriaOptions, FieldPath, Filter, FilterValueFor, OperatorsForType, Order, OrderDirection, Pagination, PathValue, Search, TypedFilter, TypedOrder } from "./types/index.js";
|
|
2
|
+
export declare class Criteria<T = any> {
|
|
3
|
+
private _filters;
|
|
4
|
+
private _orders;
|
|
5
|
+
private _pagination;
|
|
6
|
+
private _search?;
|
|
7
|
+
private _adapter?;
|
|
8
|
+
private constructor();
|
|
9
|
+
static create<T = any>(): Criteria<T>;
|
|
10
|
+
useAdapter<A extends CriteriaAdapter<any, any>>(map: A): this;
|
|
11
|
+
getAdapter(): CriteriaAdapter<any, any> | undefined;
|
|
12
|
+
where<K extends FieldPath<T>>(field: K, operator: OperatorsForType<NonNullable<PathValue<T, K>>>, value?: FilterValueFor<PathValue<T, K>>, options?: CriteriaOptions): this;
|
|
13
|
+
whereEquals<K extends FieldPath<T>>(field: K, value: PathValue<T, K>): this;
|
|
14
|
+
whereContains<K extends FieldPath<T>>(field: K, value: PathValue<T, K>): this;
|
|
15
|
+
whereIn<K extends FieldPath<T>>(field: K, values: PathValue<T, K>[]): this;
|
|
16
|
+
whereBetween<K extends FieldPath<T>>(field: K, min: PathValue<T, K>, max: PathValue<T, K>): this;
|
|
17
|
+
whereNull<K extends FieldPath<T>>(field: K): this;
|
|
18
|
+
whereNotNull<K extends FieldPath<T>>(field: K): this;
|
|
19
|
+
whereSome<K extends FieldPath<T>>(field: K, operator: OperatorsForType<NonNullable<PathValue<T, K>>>, value?: FilterValueFor<PathValue<T, K>>): this;
|
|
20
|
+
whereEvery<K extends FieldPath<T>>(field: K, operator: OperatorsForType<NonNullable<PathValue<T, K>>>, value?: FilterValueFor<PathValue<T, K>>): this;
|
|
21
|
+
whereNone<K extends FieldPath<T>>(field: K, operator: OperatorsForType<NonNullable<PathValue<T, K>>>, value?: FilterValueFor<PathValue<T, K>>): this;
|
|
22
|
+
orderBy<K extends FieldPath<T>>(field: K, direction?: OrderDirection): this;
|
|
23
|
+
orderByAsc<K extends FieldPath<T>>(field: K): this;
|
|
24
|
+
orderByDesc<K extends FieldPath<T>>(field: K): this;
|
|
25
|
+
search(value: string): this;
|
|
26
|
+
hasSearch(): boolean;
|
|
27
|
+
getSearch(): Search | undefined;
|
|
28
|
+
paginate(page: number, limit: number): this;
|
|
29
|
+
limit(limit: number): this;
|
|
30
|
+
getFilters(): Filter[];
|
|
31
|
+
getOrders(): Order[];
|
|
32
|
+
getPagination(): Pagination;
|
|
33
|
+
hasFilters(): boolean;
|
|
34
|
+
hasOrders(): boolean;
|
|
35
|
+
hasPagination(): boolean;
|
|
36
|
+
clone(): Criteria<T>;
|
|
37
|
+
toJSON(): {
|
|
38
|
+
filters: {
|
|
39
|
+
field: FieldPath<T>;
|
|
40
|
+
operator: "equals" | "notEquals" | "greaterThan" | "greaterThanOrEqual" | "lessThan" | "lessThanOrEqual" | "contains" | "startsWith" | "endsWith" | "in" | "notIn" | "between" | "isNull" | "isNotNull";
|
|
41
|
+
value: any;
|
|
42
|
+
options: CriteriaOptions | undefined;
|
|
43
|
+
}[];
|
|
44
|
+
orders: {
|
|
45
|
+
field: FieldPath<T>;
|
|
46
|
+
direction: OrderDirection;
|
|
47
|
+
}[];
|
|
48
|
+
pagination: Pagination;
|
|
49
|
+
search: string | undefined;
|
|
24
50
|
};
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
field:
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
field: FieldPath<T>;
|
|
36
|
-
direction: OrderDirection;
|
|
37
|
-
};
|
|
38
|
-
export interface Pagination {
|
|
39
|
-
page: number;
|
|
40
|
-
limit: number;
|
|
41
|
-
offset: number;
|
|
42
|
-
}
|
|
43
|
-
export type Search = string;
|
|
44
|
-
export interface PaginationMeta {
|
|
45
|
-
page: number;
|
|
46
|
-
limit: number;
|
|
47
|
-
total: number;
|
|
48
|
-
totalPages: number;
|
|
49
|
-
hasNext: boolean;
|
|
50
|
-
hasPrevious: boolean;
|
|
51
|
-
}
|
|
52
|
-
export interface CriteriaOptions {
|
|
53
|
-
quantifier?: "some" | "every" | "none";
|
|
51
|
+
static fromObject<T>(obj: {
|
|
52
|
+
filters?: TypedFilter<T>[];
|
|
53
|
+
orders?: TypedOrder<T>[];
|
|
54
|
+
pagination?: Pagination;
|
|
55
|
+
search?: Search;
|
|
56
|
+
}, adapter?: CriteriaAdapter<any, any>): Criteria<T>;
|
|
57
|
+
protected resolveFieldPath(field: FieldPath<T>): FieldPath<T>;
|
|
58
|
+
static fromQueryParams<T = any>(query: Record<string, any> | undefined, adapter?: CriteriaAdapter<any, any>): Criteria<T>;
|
|
59
|
+
private validateOperator;
|
|
60
|
+
private parseFilterValue;
|
|
54
61
|
}
|
|
55
|
-
type ExcludeBuiltInKeys<T> = Exclude<keyof T, keyof any[] | number | symbol>;
|
|
56
|
-
export type FieldPath<T> = T extends Primitive ? never : {
|
|
57
|
-
[K in ExcludeBuiltInKeys<T> & string]: NonNullable<T[K]> extends Primitive ? K : NonNullable<T[K]> extends Array<infer U> ? U extends Primitive ? K : K | `${K}.${FieldPath<U>}` : `${K}.${FieldPath<NonNullable<T[K]>>}`;
|
|
58
|
-
}[ExcludeBuiltInKeys<T> & string];
|
|
59
|
-
export {};
|
|
60
62
|
//# sourceMappingURL=criteria.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"criteria.d.ts","sourceRoot":"","sources":["../../src/
|
|
1
|
+
{"version":3,"file":"criteria.d.ts","sourceRoot":"","sources":["../../src/criteria.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"crypto.d.ts","sourceRoot":"","sources":["../../src/crypto.ts"],"names":[],"mappings":"AA6BA,eAAO,MAAM,IAAI,cAA0B,CAAC;AAC5C,eAAe,IAAI,CAAC"}
|