@warlock.js/cascade 4.0.31 → 4.0.39
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/cjs/index.js +15 -1
- package/cjs/index.js.map +1 -1
- package/esm/index.js +15 -1
- package/esm/index.js.map +1 -1
- package/package.json +52 -61
- package/cjs/aggregate/DeselectPipeline.d.ts +0 -10
- package/cjs/aggregate/DeselectPipeline.d.ts.map +0 -1
- package/cjs/aggregate/DeselectPipeline.js +0 -17
- package/cjs/aggregate/DeselectPipeline.js.map +0 -1
- package/cjs/aggregate/GeoNearPipeline.d.ts +0 -34
- package/cjs/aggregate/GeoNearPipeline.d.ts.map +0 -1
- package/cjs/aggregate/GeoNearPipeline.js +0 -44
- package/cjs/aggregate/GeoNearPipeline.js.map +0 -1
- package/cjs/aggregate/GroupByPipeline.d.ts +0 -12
- package/cjs/aggregate/GroupByPipeline.d.ts.map +0 -1
- package/cjs/aggregate/GroupByPipeline.js +0 -28
- package/cjs/aggregate/GroupByPipeline.js.map +0 -1
- package/cjs/aggregate/LimitPipeline.d.ts +0 -10
- package/cjs/aggregate/LimitPipeline.d.ts.map +0 -1
- package/cjs/aggregate/LimitPipeline.js +0 -14
- package/cjs/aggregate/LimitPipeline.js.map +0 -1
- package/cjs/aggregate/LookupPipeline.d.ts +0 -19
- package/cjs/aggregate/LookupPipeline.d.ts.map +0 -1
- package/cjs/aggregate/LookupPipeline.js +0 -23
- package/cjs/aggregate/LookupPipeline.js.map +0 -1
- package/cjs/aggregate/OrWherePipeline.d.ts +0 -21
- package/cjs/aggregate/OrWherePipeline.d.ts.map +0 -1
- package/cjs/aggregate/OrWherePipeline.js +0 -63
- package/cjs/aggregate/OrWherePipeline.js.map +0 -1
- package/cjs/aggregate/SelectPipeline.d.ts +0 -10
- package/cjs/aggregate/SelectPipeline.d.ts.map +0 -1
- package/cjs/aggregate/SelectPipeline.js +0 -26
- package/cjs/aggregate/SelectPipeline.js.map +0 -1
- package/cjs/aggregate/SkipPipeline.d.ts +0 -10
- package/cjs/aggregate/SkipPipeline.d.ts.map +0 -1
- package/cjs/aggregate/SkipPipeline.js +0 -14
- package/cjs/aggregate/SkipPipeline.js.map +0 -1
- package/cjs/aggregate/SortByPipeline.d.ts +0 -10
- package/cjs/aggregate/SortByPipeline.d.ts.map +0 -1
- package/cjs/aggregate/SortByPipeline.js +0 -18
- package/cjs/aggregate/SortByPipeline.js.map +0 -1
- package/cjs/aggregate/SortPipeline.d.ts +0 -11
- package/cjs/aggregate/SortPipeline.d.ts.map +0 -1
- package/cjs/aggregate/SortPipeline.js +0 -18
- package/cjs/aggregate/SortPipeline.js.map +0 -1
- package/cjs/aggregate/SortRandomPipeline.d.ts +0 -10
- package/cjs/aggregate/SortRandomPipeline.d.ts.map +0 -1
- package/cjs/aggregate/SortRandomPipeline.js +0 -16
- package/cjs/aggregate/SortRandomPipeline.js.map +0 -1
- package/cjs/aggregate/UnwindPipeline.d.ts +0 -14
- package/cjs/aggregate/UnwindPipeline.d.ts.map +0 -1
- package/cjs/aggregate/UnwindPipeline.js +0 -19
- package/cjs/aggregate/UnwindPipeline.js.map +0 -1
- package/cjs/aggregate/WhereExpression.d.ts +0 -17
- package/cjs/aggregate/WhereExpression.d.ts.map +0 -1
- package/cjs/aggregate/WhereExpression.js +0 -149
- package/cjs/aggregate/WhereExpression.js.map +0 -1
- package/cjs/aggregate/WhereExpressionPipeline.d.ts +0 -10
- package/cjs/aggregate/WhereExpressionPipeline.d.ts.map +0 -1
- package/cjs/aggregate/WhereExpressionPipeline.js +0 -15
- package/cjs/aggregate/WhereExpressionPipeline.js.map +0 -1
- package/cjs/aggregate/WherePipeline.d.ts +0 -13
- package/cjs/aggregate/WherePipeline.d.ts.map +0 -1
- package/cjs/aggregate/WherePipeline.js +0 -12
- package/cjs/aggregate/WherePipeline.js.map +0 -1
- package/cjs/aggregate/aggregate.d.ts +0 -409
- package/cjs/aggregate/aggregate.d.ts.map +0 -1
- package/cjs/aggregate/aggregate.js +0 -911
- package/cjs/aggregate/aggregate.js.map +0 -1
- package/cjs/aggregate/expressions.d.ts +0 -361
- package/cjs/aggregate/expressions.d.ts.map +0 -1
- package/cjs/aggregate/expressions.js +0 -536
- package/cjs/aggregate/expressions.js.map +0 -1
- package/cjs/aggregate/filters/apply-filters.d.ts +0 -3
- package/cjs/aggregate/filters/apply-filters.d.ts.map +0 -1
- package/cjs/aggregate/filters/apply-filters.js +0 -75
- package/cjs/aggregate/filters/apply-filters.js.map +0 -1
- package/cjs/aggregate/filters/boolean-filters.d.ts +0 -3
- package/cjs/aggregate/filters/boolean-filters.d.ts.map +0 -1
- package/cjs/aggregate/filters/boolean-filters.js +0 -33
- package/cjs/aggregate/filters/boolean-filters.js.map +0 -1
- package/cjs/aggregate/filters/date-filters.d.ts +0 -3
- package/cjs/aggregate/filters/date-filters.d.ts.map +0 -1
- package/cjs/aggregate/filters/date-filters.js +0 -128
- package/cjs/aggregate/filters/date-filters.js.map +0 -1
- package/cjs/aggregate/filters/index.d.ts +0 -3
- package/cjs/aggregate/filters/index.d.ts.map +0 -1
- package/cjs/aggregate/filters/numeric-filters.d.ts +0 -3
- package/cjs/aggregate/filters/numeric-filters.d.ts.map +0 -1
- package/cjs/aggregate/filters/numeric-filters.js +0 -99
- package/cjs/aggregate/filters/numeric-filters.js.map +0 -1
- package/cjs/aggregate/filters/types.d.ts +0 -46
- package/cjs/aggregate/filters/types.d.ts.map +0 -1
- package/cjs/aggregate/filters/utils.d.ts +0 -13
- package/cjs/aggregate/filters/utils.d.ts.map +0 -1
- package/cjs/aggregate/filters/utils.js +0 -38
- package/cjs/aggregate/filters/utils.js.map +0 -1
- package/cjs/aggregate/index.d.ts +0 -21
- package/cjs/aggregate/index.d.ts.map +0 -1
- package/cjs/aggregate/parsePipelines.d.ts +0 -5
- package/cjs/aggregate/parsePipelines.d.ts.map +0 -1
- package/cjs/aggregate/parsePipelines.js +0 -6
- package/cjs/aggregate/parsePipelines.js.map +0 -1
- package/cjs/aggregate/pipeline.d.ts +0 -31
- package/cjs/aggregate/pipeline.d.ts.map +0 -1
- package/cjs/aggregate/pipeline.js +0 -42
- package/cjs/aggregate/pipeline.js.map +0 -1
- package/cjs/aggregate/types.d.ts +0 -8
- package/cjs/aggregate/types.d.ts.map +0 -1
- package/cjs/aggregate/types.js +0 -31
- package/cjs/aggregate/types.js.map +0 -1
- package/cjs/blueprint/blueprint-column.d.ts +0 -82
- package/cjs/blueprint/blueprint-column.d.ts.map +0 -1
- package/cjs/blueprint/blueprint.d.ts +0 -162
- package/cjs/blueprint/blueprint.d.ts.map +0 -1
- package/cjs/blueprint/blueprint.js +0 -340
- package/cjs/blueprint/blueprint.js.map +0 -1
- package/cjs/blueprint/index.d.ts +0 -3
- package/cjs/blueprint/index.d.ts.map +0 -1
- package/cjs/blueprint/model-blueprint.d.ts +0 -15
- package/cjs/blueprint/model-blueprint.d.ts.map +0 -1
- package/cjs/blueprint/model-blueprint.js +0 -16
- package/cjs/blueprint/model-blueprint.js.map +0 -1
- package/cjs/casts/arrayOf.d.ts +0 -5
- package/cjs/casts/arrayOf.d.ts.map +0 -1
- package/cjs/casts/arrayOf.js +0 -18
- package/cjs/casts/arrayOf.js.map +0 -1
- package/cjs/casts/cast-email.d.ts +0 -2
- package/cjs/casts/cast-email.d.ts.map +0 -1
- package/cjs/casts/cast-email.js +0 -5
- package/cjs/casts/cast-email.js.map +0 -1
- package/cjs/casts/castModel.d.ts +0 -3
- package/cjs/casts/castModel.d.ts.map +0 -1
- package/cjs/casts/castModel.js +0 -49
- package/cjs/casts/castModel.js.map +0 -1
- package/cjs/casts/expiresAfter.d.ts +0 -3
- package/cjs/casts/expiresAfter.d.ts.map +0 -1
- package/cjs/casts/expiresAfter.js +0 -5
- package/cjs/casts/expiresAfter.js.map +0 -1
- package/cjs/casts/index.d.ts +0 -9
- package/cjs/casts/index.d.ts.map +0 -1
- package/cjs/casts/oneOf.d.ts +0 -3
- package/cjs/casts/oneOf.d.ts.map +0 -1
- package/cjs/casts/oneOf.js +0 -22
- package/cjs/casts/oneOf.js.map +0 -1
- package/cjs/casts/random-string.d.ts +0 -2
- package/cjs/casts/random-string.d.ts.map +0 -1
- package/cjs/casts/random-string.js +0 -5
- package/cjs/casts/random-string.js.map +0 -1
- package/cjs/casts/randomInteger.d.ts +0 -2
- package/cjs/casts/randomInteger.d.ts.map +0 -1
- package/cjs/casts/randomInteger.js +0 -7
- package/cjs/casts/randomInteger.js.map +0 -1
- package/cjs/casts/shapedArray.d.ts +0 -26
- package/cjs/casts/shapedArray.d.ts.map +0 -1
- package/cjs/casts/shapedArray.js +0 -100
- package/cjs/casts/shapedArray.js.map +0 -1
- package/cjs/config.d.ts +0 -6
- package/cjs/config.d.ts.map +0 -1
- package/cjs/config.js +0 -16
- package/cjs/config.js.map +0 -1
- package/cjs/connection.d.ts +0 -49
- package/cjs/connection.d.ts.map +0 -1
- package/cjs/connection.js +0 -108
- package/cjs/connection.js.map +0 -1
- package/cjs/database.d.ts +0 -97
- package/cjs/database.d.ts.map +0 -1
- package/cjs/database.js +0 -164
- package/cjs/database.js.map +0 -1
- package/cjs/index.d.ts +0 -13
- package/cjs/index.d.ts.map +0 -1
- package/cjs/migration/index.d.ts +0 -4
- package/cjs/migration/index.d.ts.map +0 -1
- package/cjs/migration/migrate.d.ts +0 -13
- package/cjs/migration/migrate.d.ts.map +0 -1
- package/cjs/migration/migrate.js +0 -72
- package/cjs/migration/migrate.js.map +0 -1
- package/cjs/migration/migration-office.d.ts +0 -21
- package/cjs/migration/migration-office.d.ts.map +0 -1
- package/cjs/migration/migration-office.js +0 -39
- package/cjs/migration/migration-office.js.map +0 -1
- package/cjs/migration/migration-officer.d.ts +0 -33
- package/cjs/migration/migration-officer.d.ts.map +0 -1
- package/cjs/migration/migration-officer.js +0 -55
- package/cjs/migration/migration-officer.js.map +0 -1
- package/cjs/migration/types.d.ts +0 -34
- package/cjs/migration/types.d.ts.map +0 -1
- package/cjs/model/ModelAggregate.d.ts +0 -114
- package/cjs/model/ModelAggregate.d.ts.map +0 -1
- package/cjs/model/ModelAggregate.js +0 -182
- package/cjs/model/ModelAggregate.js.map +0 -1
- package/cjs/model/ModelSync.d.ts +0 -73
- package/cjs/model/ModelSync.d.ts.map +0 -1
- package/cjs/model/ModelSync.js +0 -215
- package/cjs/model/ModelSync.js.map +0 -1
- package/cjs/model/RelationshipWithMany.d.ts +0 -24
- package/cjs/model/RelationshipWithMany.d.ts.map +0 -1
- package/cjs/model/RelationshipWithMany.js +0 -42
- package/cjs/model/RelationshipWithMany.js.map +0 -1
- package/cjs/model/base-model.d.ts +0 -161
- package/cjs/model/base-model.d.ts.map +0 -1
- package/cjs/model/base-model.js +0 -265
- package/cjs/model/base-model.js.map +0 -1
- package/cjs/model/crud-model.d.ts +0 -122
- package/cjs/model/crud-model.d.ts.map +0 -1
- package/cjs/model/crud-model.js +0 -366
- package/cjs/model/crud-model.js.map +0 -1
- package/cjs/model/index.d.ts +0 -10
- package/cjs/model/index.d.ts.map +0 -1
- package/cjs/model/joinable.d.ts +0 -87
- package/cjs/model/joinable.d.ts.map +0 -1
- package/cjs/model/joinable.js +0 -158
- package/cjs/model/joinable.js.map +0 -1
- package/cjs/model/master-mind.d.ts +0 -44
- package/cjs/model/master-mind.d.ts.map +0 -1
- package/cjs/model/master-mind.js +0 -118
- package/cjs/model/master-mind.js.map +0 -1
- package/cjs/model/model-events.d.ts +0 -57
- package/cjs/model/model-events.d.ts.map +0 -1
- package/cjs/model/model-events.js +0 -102
- package/cjs/model/model-events.js.map +0 -1
- package/cjs/model/model.d.ts +0 -464
- package/cjs/model/model.d.ts.map +0 -1
- package/cjs/model/model.js +0 -1134
- package/cjs/model/model.js.map +0 -1
- package/cjs/model/types.d.ts +0 -149
- package/cjs/model/types.d.ts.map +0 -1
- package/cjs/model/types.js +0 -11
- package/cjs/model/types.js.map +0 -1
- package/cjs/query/index.d.ts +0 -2
- package/cjs/query/index.d.ts.map +0 -1
- package/cjs/query/query.d.ts +0 -218
- package/cjs/query/query.d.ts.map +0 -1
- package/cjs/query/query.js +0 -672
- package/cjs/query/query.js.map +0 -1
- package/cjs/query/types.d.ts +0 -60
- package/cjs/query/types.d.ts.map +0 -1
- package/cjs/types.d.ts +0 -75
- package/cjs/types.d.ts.map +0 -1
- package/cjs/utils/connectToDatabase.d.ts +0 -3
- package/cjs/utils/connectToDatabase.d.ts.map +0 -1
- package/cjs/utils/connectToDatabase.js +0 -3
- package/cjs/utils/connectToDatabase.js.map +0 -1
- package/cjs/utils/deep-diff.d.ts +0 -9
- package/cjs/utils/deep-diff.d.ts.map +0 -1
- package/cjs/utils/deep-diff.js +0 -44
- package/cjs/utils/deep-diff.js.map +0 -1
- package/cjs/utils/dropAllDatabaseIndexes.d.ts +0 -2
- package/cjs/utils/dropAllDatabaseIndexes.d.ts.map +0 -1
- package/cjs/utils/dropAllDatabaseIndexes.js +0 -10
- package/cjs/utils/dropAllDatabaseIndexes.js.map +0 -1
- package/cjs/utils/index.d.ts +0 -6
- package/cjs/utils/index.d.ts.map +0 -1
- package/cjs/utils/joinable-proxy.d.ts +0 -3
- package/cjs/utils/joinable-proxy.d.ts.map +0 -1
- package/cjs/utils/joinable-proxy.js +0 -14
- package/cjs/utils/joinable-proxy.js.map +0 -1
- package/cjs/utils/listDatabaseIndexes.d.ts +0 -4
- package/cjs/utils/listDatabaseIndexes.d.ts.map +0 -1
- package/cjs/utils/listDatabaseIndexes.js +0 -101
- package/cjs/utils/listDatabaseIndexes.js.map +0 -1
- package/cjs/utils/onceConnected.d.ts +0 -2
- package/cjs/utils/onceConnected.d.ts.map +0 -1
- package/cjs/utils/onceConnected.js +0 -8
- package/cjs/utils/onceConnected.js.map +0 -1
- package/cjs/utils/sync-with.d.ts +0 -27
- package/cjs/utils/sync-with.d.ts.map +0 -1
- package/cjs/utils/sync-with.js +0 -60
- package/cjs/utils/sync-with.js.map +0 -1
- package/esm/aggregate/DeselectPipeline.d.ts +0 -10
- package/esm/aggregate/DeselectPipeline.d.ts.map +0 -1
- package/esm/aggregate/DeselectPipeline.js +0 -17
- package/esm/aggregate/DeselectPipeline.js.map +0 -1
- package/esm/aggregate/GeoNearPipeline.d.ts +0 -34
- package/esm/aggregate/GeoNearPipeline.d.ts.map +0 -1
- package/esm/aggregate/GeoNearPipeline.js +0 -44
- package/esm/aggregate/GeoNearPipeline.js.map +0 -1
- package/esm/aggregate/GroupByPipeline.d.ts +0 -12
- package/esm/aggregate/GroupByPipeline.d.ts.map +0 -1
- package/esm/aggregate/GroupByPipeline.js +0 -28
- package/esm/aggregate/GroupByPipeline.js.map +0 -1
- package/esm/aggregate/LimitPipeline.d.ts +0 -10
- package/esm/aggregate/LimitPipeline.d.ts.map +0 -1
- package/esm/aggregate/LimitPipeline.js +0 -14
- package/esm/aggregate/LimitPipeline.js.map +0 -1
- package/esm/aggregate/LookupPipeline.d.ts +0 -19
- package/esm/aggregate/LookupPipeline.d.ts.map +0 -1
- package/esm/aggregate/LookupPipeline.js +0 -23
- package/esm/aggregate/LookupPipeline.js.map +0 -1
- package/esm/aggregate/OrWherePipeline.d.ts +0 -21
- package/esm/aggregate/OrWherePipeline.d.ts.map +0 -1
- package/esm/aggregate/OrWherePipeline.js +0 -63
- package/esm/aggregate/OrWherePipeline.js.map +0 -1
- package/esm/aggregate/SelectPipeline.d.ts +0 -10
- package/esm/aggregate/SelectPipeline.d.ts.map +0 -1
- package/esm/aggregate/SelectPipeline.js +0 -26
- package/esm/aggregate/SelectPipeline.js.map +0 -1
- package/esm/aggregate/SkipPipeline.d.ts +0 -10
- package/esm/aggregate/SkipPipeline.d.ts.map +0 -1
- package/esm/aggregate/SkipPipeline.js +0 -14
- package/esm/aggregate/SkipPipeline.js.map +0 -1
- package/esm/aggregate/SortByPipeline.d.ts +0 -10
- package/esm/aggregate/SortByPipeline.d.ts.map +0 -1
- package/esm/aggregate/SortByPipeline.js +0 -18
- package/esm/aggregate/SortByPipeline.js.map +0 -1
- package/esm/aggregate/SortPipeline.d.ts +0 -11
- package/esm/aggregate/SortPipeline.d.ts.map +0 -1
- package/esm/aggregate/SortPipeline.js +0 -18
- package/esm/aggregate/SortPipeline.js.map +0 -1
- package/esm/aggregate/SortRandomPipeline.d.ts +0 -10
- package/esm/aggregate/SortRandomPipeline.d.ts.map +0 -1
- package/esm/aggregate/SortRandomPipeline.js +0 -16
- package/esm/aggregate/SortRandomPipeline.js.map +0 -1
- package/esm/aggregate/UnwindPipeline.d.ts +0 -14
- package/esm/aggregate/UnwindPipeline.d.ts.map +0 -1
- package/esm/aggregate/UnwindPipeline.js +0 -19
- package/esm/aggregate/UnwindPipeline.js.map +0 -1
- package/esm/aggregate/WhereExpression.d.ts +0 -17
- package/esm/aggregate/WhereExpression.d.ts.map +0 -1
- package/esm/aggregate/WhereExpression.js +0 -149
- package/esm/aggregate/WhereExpression.js.map +0 -1
- package/esm/aggregate/WhereExpressionPipeline.d.ts +0 -10
- package/esm/aggregate/WhereExpressionPipeline.d.ts.map +0 -1
- package/esm/aggregate/WhereExpressionPipeline.js +0 -15
- package/esm/aggregate/WhereExpressionPipeline.js.map +0 -1
- package/esm/aggregate/WherePipeline.d.ts +0 -13
- package/esm/aggregate/WherePipeline.d.ts.map +0 -1
- package/esm/aggregate/WherePipeline.js +0 -12
- package/esm/aggregate/WherePipeline.js.map +0 -1
- package/esm/aggregate/aggregate.d.ts +0 -409
- package/esm/aggregate/aggregate.d.ts.map +0 -1
- package/esm/aggregate/aggregate.js +0 -911
- package/esm/aggregate/aggregate.js.map +0 -1
- package/esm/aggregate/expressions.d.ts +0 -361
- package/esm/aggregate/expressions.d.ts.map +0 -1
- package/esm/aggregate/expressions.js +0 -536
- package/esm/aggregate/expressions.js.map +0 -1
- package/esm/aggregate/filters/apply-filters.d.ts +0 -3
- package/esm/aggregate/filters/apply-filters.d.ts.map +0 -1
- package/esm/aggregate/filters/apply-filters.js +0 -75
- package/esm/aggregate/filters/apply-filters.js.map +0 -1
- package/esm/aggregate/filters/boolean-filters.d.ts +0 -3
- package/esm/aggregate/filters/boolean-filters.d.ts.map +0 -1
- package/esm/aggregate/filters/boolean-filters.js +0 -33
- package/esm/aggregate/filters/boolean-filters.js.map +0 -1
- package/esm/aggregate/filters/date-filters.d.ts +0 -3
- package/esm/aggregate/filters/date-filters.d.ts.map +0 -1
- package/esm/aggregate/filters/date-filters.js +0 -128
- package/esm/aggregate/filters/date-filters.js.map +0 -1
- package/esm/aggregate/filters/index.d.ts +0 -3
- package/esm/aggregate/filters/index.d.ts.map +0 -1
- package/esm/aggregate/filters/numeric-filters.d.ts +0 -3
- package/esm/aggregate/filters/numeric-filters.d.ts.map +0 -1
- package/esm/aggregate/filters/numeric-filters.js +0 -99
- package/esm/aggregate/filters/numeric-filters.js.map +0 -1
- package/esm/aggregate/filters/types.d.ts +0 -46
- package/esm/aggregate/filters/types.d.ts.map +0 -1
- package/esm/aggregate/filters/utils.d.ts +0 -13
- package/esm/aggregate/filters/utils.d.ts.map +0 -1
- package/esm/aggregate/filters/utils.js +0 -38
- package/esm/aggregate/filters/utils.js.map +0 -1
- package/esm/aggregate/index.d.ts +0 -21
- package/esm/aggregate/index.d.ts.map +0 -1
- package/esm/aggregate/parsePipelines.d.ts +0 -5
- package/esm/aggregate/parsePipelines.d.ts.map +0 -1
- package/esm/aggregate/parsePipelines.js +0 -6
- package/esm/aggregate/parsePipelines.js.map +0 -1
- package/esm/aggregate/pipeline.d.ts +0 -31
- package/esm/aggregate/pipeline.d.ts.map +0 -1
- package/esm/aggregate/pipeline.js +0 -42
- package/esm/aggregate/pipeline.js.map +0 -1
- package/esm/aggregate/types.d.ts +0 -8
- package/esm/aggregate/types.d.ts.map +0 -1
- package/esm/aggregate/types.js +0 -31
- package/esm/aggregate/types.js.map +0 -1
- package/esm/blueprint/blueprint-column.d.ts +0 -82
- package/esm/blueprint/blueprint-column.d.ts.map +0 -1
- package/esm/blueprint/blueprint.d.ts +0 -162
- package/esm/blueprint/blueprint.d.ts.map +0 -1
- package/esm/blueprint/blueprint.js +0 -340
- package/esm/blueprint/blueprint.js.map +0 -1
- package/esm/blueprint/index.d.ts +0 -3
- package/esm/blueprint/index.d.ts.map +0 -1
- package/esm/blueprint/model-blueprint.d.ts +0 -15
- package/esm/blueprint/model-blueprint.d.ts.map +0 -1
- package/esm/blueprint/model-blueprint.js +0 -16
- package/esm/blueprint/model-blueprint.js.map +0 -1
- package/esm/casts/arrayOf.d.ts +0 -5
- package/esm/casts/arrayOf.d.ts.map +0 -1
- package/esm/casts/arrayOf.js +0 -18
- package/esm/casts/arrayOf.js.map +0 -1
- package/esm/casts/cast-email.d.ts +0 -2
- package/esm/casts/cast-email.d.ts.map +0 -1
- package/esm/casts/cast-email.js +0 -5
- package/esm/casts/cast-email.js.map +0 -1
- package/esm/casts/castModel.d.ts +0 -3
- package/esm/casts/castModel.d.ts.map +0 -1
- package/esm/casts/castModel.js +0 -49
- package/esm/casts/castModel.js.map +0 -1
- package/esm/casts/expiresAfter.d.ts +0 -3
- package/esm/casts/expiresAfter.d.ts.map +0 -1
- package/esm/casts/expiresAfter.js +0 -5
- package/esm/casts/expiresAfter.js.map +0 -1
- package/esm/casts/index.d.ts +0 -9
- package/esm/casts/index.d.ts.map +0 -1
- package/esm/casts/oneOf.d.ts +0 -3
- package/esm/casts/oneOf.d.ts.map +0 -1
- package/esm/casts/oneOf.js +0 -22
- package/esm/casts/oneOf.js.map +0 -1
- package/esm/casts/random-string.d.ts +0 -2
- package/esm/casts/random-string.d.ts.map +0 -1
- package/esm/casts/random-string.js +0 -5
- package/esm/casts/random-string.js.map +0 -1
- package/esm/casts/randomInteger.d.ts +0 -2
- package/esm/casts/randomInteger.d.ts.map +0 -1
- package/esm/casts/randomInteger.js +0 -7
- package/esm/casts/randomInteger.js.map +0 -1
- package/esm/casts/shapedArray.d.ts +0 -26
- package/esm/casts/shapedArray.d.ts.map +0 -1
- package/esm/casts/shapedArray.js +0 -100
- package/esm/casts/shapedArray.js.map +0 -1
- package/esm/config.d.ts +0 -6
- package/esm/config.d.ts.map +0 -1
- package/esm/config.js +0 -16
- package/esm/config.js.map +0 -1
- package/esm/connection.d.ts +0 -49
- package/esm/connection.d.ts.map +0 -1
- package/esm/connection.js +0 -108
- package/esm/connection.js.map +0 -1
- package/esm/database.d.ts +0 -97
- package/esm/database.d.ts.map +0 -1
- package/esm/database.js +0 -164
- package/esm/database.js.map +0 -1
- package/esm/index.d.ts +0 -13
- package/esm/index.d.ts.map +0 -1
- package/esm/migration/index.d.ts +0 -4
- package/esm/migration/index.d.ts.map +0 -1
- package/esm/migration/migrate.d.ts +0 -13
- package/esm/migration/migrate.d.ts.map +0 -1
- package/esm/migration/migrate.js +0 -72
- package/esm/migration/migrate.js.map +0 -1
- package/esm/migration/migration-office.d.ts +0 -21
- package/esm/migration/migration-office.d.ts.map +0 -1
- package/esm/migration/migration-office.js +0 -39
- package/esm/migration/migration-office.js.map +0 -1
- package/esm/migration/migration-officer.d.ts +0 -33
- package/esm/migration/migration-officer.d.ts.map +0 -1
- package/esm/migration/migration-officer.js +0 -55
- package/esm/migration/migration-officer.js.map +0 -1
- package/esm/migration/types.d.ts +0 -34
- package/esm/migration/types.d.ts.map +0 -1
- package/esm/model/ModelAggregate.d.ts +0 -114
- package/esm/model/ModelAggregate.d.ts.map +0 -1
- package/esm/model/ModelAggregate.js +0 -182
- package/esm/model/ModelAggregate.js.map +0 -1
- package/esm/model/ModelSync.d.ts +0 -73
- package/esm/model/ModelSync.d.ts.map +0 -1
- package/esm/model/ModelSync.js +0 -215
- package/esm/model/ModelSync.js.map +0 -1
- package/esm/model/RelationshipWithMany.d.ts +0 -24
- package/esm/model/RelationshipWithMany.d.ts.map +0 -1
- package/esm/model/RelationshipWithMany.js +0 -42
- package/esm/model/RelationshipWithMany.js.map +0 -1
- package/esm/model/base-model.d.ts +0 -161
- package/esm/model/base-model.d.ts.map +0 -1
- package/esm/model/base-model.js +0 -265
- package/esm/model/base-model.js.map +0 -1
- package/esm/model/crud-model.d.ts +0 -122
- package/esm/model/crud-model.d.ts.map +0 -1
- package/esm/model/crud-model.js +0 -366
- package/esm/model/crud-model.js.map +0 -1
- package/esm/model/index.d.ts +0 -10
- package/esm/model/index.d.ts.map +0 -1
- package/esm/model/joinable.d.ts +0 -87
- package/esm/model/joinable.d.ts.map +0 -1
- package/esm/model/joinable.js +0 -158
- package/esm/model/joinable.js.map +0 -1
- package/esm/model/master-mind.d.ts +0 -44
- package/esm/model/master-mind.d.ts.map +0 -1
- package/esm/model/master-mind.js +0 -118
- package/esm/model/master-mind.js.map +0 -1
- package/esm/model/model-events.d.ts +0 -57
- package/esm/model/model-events.d.ts.map +0 -1
- package/esm/model/model-events.js +0 -102
- package/esm/model/model-events.js.map +0 -1
- package/esm/model/model.d.ts +0 -464
- package/esm/model/model.d.ts.map +0 -1
- package/esm/model/model.js +0 -1134
- package/esm/model/model.js.map +0 -1
- package/esm/model/types.d.ts +0 -149
- package/esm/model/types.d.ts.map +0 -1
- package/esm/model/types.js +0 -11
- package/esm/model/types.js.map +0 -1
- package/esm/query/index.d.ts +0 -2
- package/esm/query/index.d.ts.map +0 -1
- package/esm/query/query.d.ts +0 -218
- package/esm/query/query.d.ts.map +0 -1
- package/esm/query/query.js +0 -672
- package/esm/query/query.js.map +0 -1
- package/esm/query/types.d.ts +0 -60
- package/esm/query/types.d.ts.map +0 -1
- package/esm/types.d.ts +0 -75
- package/esm/types.d.ts.map +0 -1
- package/esm/utils/connectToDatabase.d.ts +0 -3
- package/esm/utils/connectToDatabase.d.ts.map +0 -1
- package/esm/utils/connectToDatabase.js +0 -3
- package/esm/utils/connectToDatabase.js.map +0 -1
- package/esm/utils/deep-diff.d.ts +0 -9
- package/esm/utils/deep-diff.d.ts.map +0 -1
- package/esm/utils/deep-diff.js +0 -44
- package/esm/utils/deep-diff.js.map +0 -1
- package/esm/utils/dropAllDatabaseIndexes.d.ts +0 -2
- package/esm/utils/dropAllDatabaseIndexes.d.ts.map +0 -1
- package/esm/utils/dropAllDatabaseIndexes.js +0 -10
- package/esm/utils/dropAllDatabaseIndexes.js.map +0 -1
- package/esm/utils/index.d.ts +0 -6
- package/esm/utils/index.d.ts.map +0 -1
- package/esm/utils/joinable-proxy.d.ts +0 -3
- package/esm/utils/joinable-proxy.d.ts.map +0 -1
- package/esm/utils/joinable-proxy.js +0 -14
- package/esm/utils/joinable-proxy.js.map +0 -1
- package/esm/utils/listDatabaseIndexes.d.ts +0 -4
- package/esm/utils/listDatabaseIndexes.d.ts.map +0 -1
- package/esm/utils/listDatabaseIndexes.js +0 -101
- package/esm/utils/listDatabaseIndexes.js.map +0 -1
- package/esm/utils/onceConnected.d.ts +0 -2
- package/esm/utils/onceConnected.d.ts.map +0 -1
- package/esm/utils/onceConnected.js +0 -8
- package/esm/utils/onceConnected.js.map +0 -1
- package/esm/utils/sync-with.d.ts +0 -27
- package/esm/utils/sync-with.d.ts.map +0 -1
- package/esm/utils/sync-with.js +0 -60
- package/esm/utils/sync-with.js.map +0 -1
|
@@ -1,182 +0,0 @@
|
|
|
1
|
-
import {colors}from'@mongez/copper';import {$agg}from'../aggregate/expressions.js';import'@mongez/supportive-is';import'@mongez/time-wizard';import {Aggregate}from'../aggregate/aggregate.js';import {joinableProxy}from'../utils/joinable-proxy.js';class ModelAggregate extends Aggregate {
|
|
2
|
-
model;
|
|
3
|
-
/**
|
|
4
|
-
* Joining list
|
|
5
|
-
* Each key will have the model as a value reference to it
|
|
6
|
-
*/
|
|
7
|
-
joiningList = {};
|
|
8
|
-
/**
|
|
9
|
-
* Constructor
|
|
10
|
-
*/
|
|
11
|
-
constructor(model) {
|
|
12
|
-
super(model.collection);
|
|
13
|
-
this.model = model;
|
|
14
|
-
this.query = model.query;
|
|
15
|
-
}
|
|
16
|
-
/**
|
|
17
|
-
* {@inheritDoc}
|
|
18
|
-
*/
|
|
19
|
-
async get(mapData) {
|
|
20
|
-
if (!mapData) {
|
|
21
|
-
mapData = (record) => {
|
|
22
|
-
const model = new this.model(record);
|
|
23
|
-
for (const relation in this.joiningList) {
|
|
24
|
-
const data = model.get(relation);
|
|
25
|
-
if (!data)
|
|
26
|
-
continue;
|
|
27
|
-
model.set(relation, this.joiningList[relation](data));
|
|
28
|
-
}
|
|
29
|
-
return model;
|
|
30
|
-
};
|
|
31
|
-
}
|
|
32
|
-
return (await super.get(mapData));
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* Find or create
|
|
36
|
-
*/
|
|
37
|
-
async findOrCreate(data) {
|
|
38
|
-
return (await this.first()) || (await this.model.create(data));
|
|
39
|
-
}
|
|
40
|
-
/**
|
|
41
|
-
* Find and update the given data
|
|
42
|
-
* Please note that the filter should be done via where() methods
|
|
43
|
-
* This method returns the updated records
|
|
44
|
-
* If you need just to update the records directly in the database, then use `update` method directly.
|
|
45
|
-
*/
|
|
46
|
-
async findAndUpdate(data) {
|
|
47
|
-
const records = await this.get();
|
|
48
|
-
await Promise.all(records.map(async (model) => await model.save(data)));
|
|
49
|
-
return records;
|
|
50
|
-
}
|
|
51
|
-
/**
|
|
52
|
-
* {@inheritdoc}
|
|
53
|
-
*/
|
|
54
|
-
async chunk(limit, callback, mapData) {
|
|
55
|
-
return super.chunk(limit, callback, mapData);
|
|
56
|
-
}
|
|
57
|
-
/**
|
|
58
|
-
* {@inheritDoc}
|
|
59
|
-
*/
|
|
60
|
-
async first(mapData) {
|
|
61
|
-
return (await super.first(mapData));
|
|
62
|
-
}
|
|
63
|
-
/**
|
|
64
|
-
* {@inheritDoc}
|
|
65
|
-
*/
|
|
66
|
-
async last(filters) {
|
|
67
|
-
return (await super.last(filters));
|
|
68
|
-
}
|
|
69
|
-
/**
|
|
70
|
-
* {@inheritDoc}
|
|
71
|
-
*/
|
|
72
|
-
async paginate(page = 1, limit = this.model.perPage) {
|
|
73
|
-
return await super.paginate(page, limit);
|
|
74
|
-
}
|
|
75
|
-
/**
|
|
76
|
-
* Delete records
|
|
77
|
-
*/
|
|
78
|
-
async delete() {
|
|
79
|
-
const records = await this.get();
|
|
80
|
-
records.forEach(async (model) => {
|
|
81
|
-
await model.destroy();
|
|
82
|
-
});
|
|
83
|
-
return records.length;
|
|
84
|
-
}
|
|
85
|
-
/**
|
|
86
|
-
* Include a related collection in the query results based on a defined relationship.
|
|
87
|
-
*
|
|
88
|
-
* @param relationName - The name of the relationship as defined in the static relations property
|
|
89
|
-
* @param options - Optional. Override or extend the base relationship configuration
|
|
90
|
-
* @returns The query builder for chaining
|
|
91
|
-
*
|
|
92
|
-
* @example
|
|
93
|
-
* // Basic usage with defaults from relation definition
|
|
94
|
-
* Post.aggregate().joining("author").get();
|
|
95
|
-
*
|
|
96
|
-
* // With overrides
|
|
97
|
-
* Post.aggregate().joining("author", {
|
|
98
|
-
* select: ["id", "name", "avatar"],
|
|
99
|
-
* where: { isActive: true }
|
|
100
|
-
* }).get();
|
|
101
|
-
*
|
|
102
|
-
* @example
|
|
103
|
-
* // Using a function to override the query
|
|
104
|
-
* Post.aggregate().joining("author", query => {
|
|
105
|
-
* query.where("id", 1);
|
|
106
|
-
* }).get();
|
|
107
|
-
*
|
|
108
|
-
* @example
|
|
109
|
-
* // Using multiple options
|
|
110
|
-
* Post.aggregate().joining("author", {
|
|
111
|
-
* select: ["id", "name", "avatar"],
|
|
112
|
-
* where: { isActive: true },
|
|
113
|
-
* query: query => {
|
|
114
|
-
* query.where("id", 1);
|
|
115
|
-
* }
|
|
116
|
-
* }).get();
|
|
117
|
-
*/
|
|
118
|
-
joining(joining, options) {
|
|
119
|
-
joining = this.getJoinable(joining);
|
|
120
|
-
if (typeof options === "function") {
|
|
121
|
-
options(joining);
|
|
122
|
-
}
|
|
123
|
-
else {
|
|
124
|
-
if (options?.where) {
|
|
125
|
-
joining.where(options.where);
|
|
126
|
-
}
|
|
127
|
-
if (options?.query) {
|
|
128
|
-
options.query(joining);
|
|
129
|
-
}
|
|
130
|
-
if (options?.select) {
|
|
131
|
-
joining.select(...options.select);
|
|
132
|
-
}
|
|
133
|
-
if (options?.as) {
|
|
134
|
-
joining.as(options.as);
|
|
135
|
-
}
|
|
136
|
-
if (options?.joining) ;
|
|
137
|
-
if (options?.pipeline) {
|
|
138
|
-
joining.addPipelines(options.pipeline);
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
const data = joining.parse();
|
|
142
|
-
this.joiningList[data.as] = joining.getReturnAs();
|
|
143
|
-
return this.lookup(data);
|
|
144
|
-
}
|
|
145
|
-
/**
|
|
146
|
-
* Get joinable instance for current model
|
|
147
|
-
*/
|
|
148
|
-
getJoinable(joinable) {
|
|
149
|
-
let joinableObject;
|
|
150
|
-
if (typeof joinable === "string") {
|
|
151
|
-
joinableObject = this.model.relations[joinable];
|
|
152
|
-
if (!joinableObject) {
|
|
153
|
-
throw new Error(`Call to undefined joinable ${colors.redBright(joinable)} in ${this.model.name} model relations`);
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
else {
|
|
157
|
-
joinableObject = joinable;
|
|
158
|
-
}
|
|
159
|
-
return joinableProxy(joinableObject.clone());
|
|
160
|
-
}
|
|
161
|
-
/**
|
|
162
|
-
* Perform a join and count the records of the joined collection
|
|
163
|
-
*/
|
|
164
|
-
countJoining(joining, options) {
|
|
165
|
-
const joiningObject = this.getJoinable(joining);
|
|
166
|
-
const as = joiningObject.get("as");
|
|
167
|
-
const returnAs = options?.as || (as || "document") + "Count";
|
|
168
|
-
return this.joining(joiningObject, options)
|
|
169
|
-
.addField(returnAs, {
|
|
170
|
-
$size: $agg.columnName(as),
|
|
171
|
-
})
|
|
172
|
-
.deselect([as]);
|
|
173
|
-
}
|
|
174
|
-
/**
|
|
175
|
-
* Clone the aggregate model class
|
|
176
|
-
*/
|
|
177
|
-
clone() {
|
|
178
|
-
const aggregate = new ModelAggregate(this.model);
|
|
179
|
-
aggregate.pipelines = this.pipelines.slice();
|
|
180
|
-
return aggregate;
|
|
181
|
-
}
|
|
182
|
-
}export{ModelAggregate};//# sourceMappingURL=ModelAggregate.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ModelAggregate.js","sources":["../../src/model/ModelAggregate.ts"],"sourcesContent":[null],"names":[],"mappings":"sPAuBM,MAAO,cAAgC,SAAQ,SAAS,CAAA;AAUtB,IAAA,KAAA,CAAA;AATtC;;;AAGG;IACO,WAAW,GAAkB,EAAE,CAAC;AAE1C;;AAEG;AACH,IAAA,WAAA,CAAsC,KAAmB,EAAA;AACvD,QAAA,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QADY,IAAK,CAAA,KAAA,GAAL,KAAK,CAAc;AAEvD,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;KAC1B;AAED;;AAEG;IACI,MAAM,GAAG,CACd,OAA8B,EAAA;QAE9B,IAAI,CAAC,OAAO,EAAE;AACZ,YAAA,OAAO,GAAG,CAAC,MAAW,KAAI;gBACxB,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AAErC,gBAAA,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,WAAW,EAAE;oBACvC,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AAEjC,oBAAA,IAAI,CAAC,IAAI;wBAAE,SAAS;AAEpB,oBAAA,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACvD,iBAAA;AAED,gBAAA,OAAO,KAAK,CAAC;AACf,aAAC,CAAC;AACH,SAAA;QACD,QAAQ,MAAM,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,EAAc;KAC/C;AAED;;AAEG;IACI,MAAM,YAAY,CACvB,IAAU,EAAA;AAEV,QAAA,OAAO,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,MAAO,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAO,CAAC;KACvE;AAED;;;;;AAKG;IACI,MAAM,aAAa,CACxB,IAAU,EAAA;AAEV,QAAA,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC;QAEjC,MAAM,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,OAAM,KAAK,KAAI,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAEtE,QAAA,OAAO,OAAO,CAAC;KAChB;AAED;;AAEG;AACI,IAAA,MAAM,KAAK,CAChB,KAAa,EACb,QAA+B,EAC/B,OAA4B,EAAA;QAE5B,OAAO,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;KAC9C;AAED;;AAEG;IACI,MAAM,KAAK,CAAC,OAA4B,EAAA;QAC7C,QAAQ,MAAM,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,EAAmB;KACtD;AAED;;AAEG;IACI,MAAM,IAAI,CAAC,OAAgB,EAAA;QAChC,QAAQ,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,EAAmB;KACrD;AAED;;AAEG;AACI,IAAA,MAAM,QAAQ,CACnB,IAAI,GAAG,CAAC,EACR,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAA;QAE1B,OAAO,MAAM,KAAK,CAAC,QAAQ,CAAI,IAAI,EAAE,KAAK,CAAC,CAAC;KAC7C;AAED;;AAEG;AACI,IAAA,MAAM,MAAM,GAAA;AACjB,QAAA,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC;AAEjC,QAAA,OAAO,CAAC,OAAO,CAAC,OAAO,KAAU,KAAI;AACnC,YAAA,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC;AACxB,SAAC,CAAC,CAAC;QAEH,OAAO,OAAO,CAAC,MAAM,CAAC;KACvB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgCG;IACI,OAAO,CACZ,OAA+B,EAC/B,OAA0D,EAAA;AAE1D,QAAA,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;AAEpC,QAAA,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE;YACjC,OAAO,CAAC,OAAO,CAAC,CAAC;AAClB,SAAA;AAAM,aAAA;YACL,IAAI,OAAO,EAAE,KAAK,EAAE;AAClB,gBAAA,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9B,aAAA;YAED,IAAI,OAAO,EAAE,KAAK,EAAE;AAClB,gBAAA,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AACxB,aAAA;YAED,IAAI,OAAO,EAAE,MAAM,EAAE;gBACnB,OAAO,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;AACnC,aAAA;YAED,IAAI,OAAO,EAAE,EAAE,EAAE;AACf,gBAAA,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;AACxB,aAAA;YAED,IAAI,OAAO,EAAE,OAAO,EAAE,CAErB;YAED,IAAI,OAAO,EAAE,QAAQ,EAAE;AACrB,gBAAA,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AACxC,aAAA;AACF,SAAA;AAED,QAAA,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;AAE7B,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;AAElD,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;KAC1B;AAED;;AAEG;AACO,IAAA,WAAW,CAAC,QAA2B,EAAA;AAC/C,QAAA,IAAI,cAAwB,CAAC;AAC7B,QAAA,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;YAChC,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAa,CAAC;YAC5D,IAAI,CAAC,cAAc,EAAE;AACnB,gBAAA,MAAM,IAAI,KAAK,CACb,8BAA8B,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA,IAAA,EAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAA,gBAAA,CAAkB,CACjG,CAAC;AACH,aAAA;AACF,SAAA;AAAM,aAAA;YACL,cAAc,GAAG,QAAQ,CAAC;AAC3B,SAAA;AAED,QAAA,OAAO,aAAa,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC,CAAC;KAC9C;AAED;;AAEG;IACI,YAAY,CACjB,OAA+B,EAC/B,OAKC,EAAA;QAED,MAAM,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAEhD,MAAM,EAAE,GAAG,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAEnC,QAAA,MAAM,QAAQ,GAAG,OAAO,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,UAAU,IAAI,OAAO,CAAC;AAE7D,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,OAAO,CAAC;aACxC,QAAQ,CAAC,QAAQ,EAAE;AAClB,YAAA,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;SAC3B,CAAC;AACD,aAAA,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;KACnB;AAED;;AAEG;IACI,KAAK,GAAA;QACV,MAAM,SAAS,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEjD,SAAS,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;AAE7C,QAAA,OAAO,SAAiB,CAAC;KAC1B;AACF"}
|
package/esm/model/ModelSync.d.ts
DELETED
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
import type { ModelAggregate } from "./ModelAggregate";
|
|
2
|
-
import type { Model } from "./model";
|
|
3
|
-
import type { CascadeOnDelete } from "./types";
|
|
4
|
-
export declare class ModelSync {
|
|
5
|
-
protected model: typeof Model;
|
|
6
|
-
protected columns: string | string[];
|
|
7
|
-
protected embedMethod: string;
|
|
8
|
-
/**
|
|
9
|
-
* What do do when model is deleted
|
|
10
|
-
*/
|
|
11
|
-
protected whenDelete: CascadeOnDelete;
|
|
12
|
-
/**
|
|
13
|
-
* Embed on create
|
|
14
|
-
*/
|
|
15
|
-
protected embedOnCreate: string;
|
|
16
|
-
/**
|
|
17
|
-
* Sync mode
|
|
18
|
-
*/
|
|
19
|
-
protected syncMode: "single" | "many";
|
|
20
|
-
/**
|
|
21
|
-
* Query runner using `when` method
|
|
22
|
-
*/
|
|
23
|
-
protected queryRunner?: (query: ModelAggregate<Model>) => void;
|
|
24
|
-
/**
|
|
25
|
-
* Define when should the synced model starts to update when any of the given columns is updated in the original model
|
|
26
|
-
*/
|
|
27
|
-
protected _updateWhenChange?: string[];
|
|
28
|
-
/**
|
|
29
|
-
* Constructor
|
|
30
|
-
*/
|
|
31
|
-
constructor(model: typeof Model, columns: string | string[], embedMethod?: string);
|
|
32
|
-
/**
|
|
33
|
-
* Define when should the synced model starts to update when any of the given columns is updated in the original model
|
|
34
|
-
*/
|
|
35
|
-
updateWhenChange(columns: string | string[]): this;
|
|
36
|
-
/**
|
|
37
|
-
* Set query runner
|
|
38
|
-
*/
|
|
39
|
-
where(queryRunner: (query: ModelAggregate<Model>) => void): this;
|
|
40
|
-
/**
|
|
41
|
-
* Unset on delete
|
|
42
|
-
*/
|
|
43
|
-
unsetOnDelete(): this;
|
|
44
|
-
/**
|
|
45
|
-
* Ignore on delete
|
|
46
|
-
*/
|
|
47
|
-
ignoreOnDelete(): this;
|
|
48
|
-
/**
|
|
49
|
-
* Remove all matched documents on delete to be fully deleted
|
|
50
|
-
*/
|
|
51
|
-
removeOnDelete(): this;
|
|
52
|
-
/**
|
|
53
|
-
* Embed on create to injected model one the original model is created
|
|
54
|
-
*/
|
|
55
|
-
embedOnCreateFrom(column: string): this;
|
|
56
|
-
/**
|
|
57
|
-
* Mark as many sync
|
|
58
|
-
*/
|
|
59
|
-
syncMany(): this;
|
|
60
|
-
/**
|
|
61
|
-
* Start syncing the model
|
|
62
|
-
*/
|
|
63
|
-
sync(model: Model, saveMode: "create" | "update", oldModel?: Model): Promise<void>;
|
|
64
|
-
/**
|
|
65
|
-
* Sync update
|
|
66
|
-
*/
|
|
67
|
-
syncUpdate(model: Model, oldModel?: Model): Promise<void>;
|
|
68
|
-
/**
|
|
69
|
-
* Sync model destruction
|
|
70
|
-
*/
|
|
71
|
-
syncDestruction(model: Model): Promise<void>;
|
|
72
|
-
}
|
|
73
|
-
//# sourceMappingURL=ModelSync.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ModelSync.d.ts","sourceRoot":"","sources":["../../src/model/ModelSync.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE/C,qBAAa,SAAS;IA+BlB,SAAS,CAAC,KAAK,EAAE,OAAO,KAAK;IAC7B,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE;IACpC,SAAS,CAAC,WAAW;IAhCvB;;OAEG;IACH,SAAS,CAAC,UAAU,EAAE,eAAe,CACoB;IAEzD;;OAEG;IACH,SAAS,CAAC,aAAa,SAAM;IAE7B;;OAEG;IACH,SAAS,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAAY;IAEjD;;OAEG;IACH,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC;IAE/D;;OAEG;IACH,SAAS,CAAC,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAEvC;;OAEG;gBAES,KAAK,EAAE,OAAO,KAAK,EACnB,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,EAC1B,WAAW,SAAc;IAKrC;;OAEG;IACI,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE;IAMlD;;OAEG;IACI,KAAK,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,cAAc,CAAC,KAAK,CAAC,KAAK,IAAI;IAMhE;;OAEG;IACI,aAAa;IAMpB;;OAEG;IACI,cAAc;IAMrB;;OAEG;IACI,cAAc;IAMrB;;OAEG;IACI,iBAAiB,CAAC,MAAM,EAAE,MAAM;IAMvC;;OAEG;IACI,QAAQ;IAMf;;OAEG;IACU,IAAI,CACf,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,GAAG,QAAQ,EAC7B,QAAQ,CAAC,EAAE,KAAK;IAsClB;;OAEG;IACU,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK;IA8EtD;;OAEG;IACU,eAAe,CAAC,KAAK,EAAE,KAAK;CA8B1C"}
|
package/esm/model/ModelSync.js
DELETED
|
@@ -1,215 +0,0 @@
|
|
|
1
|
-
import {areEqual}from'@mongez/reinforcements';import {getDatabaseConfig}from'../config.js';class ModelSync {
|
|
2
|
-
model;
|
|
3
|
-
columns;
|
|
4
|
-
embedMethod;
|
|
5
|
-
/**
|
|
6
|
-
* What do do when model is deleted
|
|
7
|
-
*/
|
|
8
|
-
whenDelete = getDatabaseConfig("model")?.cascadeOnDelete || "unset";
|
|
9
|
-
/**
|
|
10
|
-
* Embed on create
|
|
11
|
-
*/
|
|
12
|
-
embedOnCreate = "";
|
|
13
|
-
/**
|
|
14
|
-
* Sync mode
|
|
15
|
-
*/
|
|
16
|
-
syncMode = "single";
|
|
17
|
-
/**
|
|
18
|
-
* Query runner using `when` method
|
|
19
|
-
*/
|
|
20
|
-
queryRunner;
|
|
21
|
-
/**
|
|
22
|
-
* Define when should the synced model starts to update when any of the given columns is updated in the original model
|
|
23
|
-
*/
|
|
24
|
-
_updateWhenChange;
|
|
25
|
-
/**
|
|
26
|
-
* Constructor
|
|
27
|
-
*/
|
|
28
|
-
constructor(model, columns, embedMethod = "embedData") {
|
|
29
|
-
this.model = model;
|
|
30
|
-
this.columns = columns;
|
|
31
|
-
this.embedMethod = embedMethod;
|
|
32
|
-
//
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* Define when should the synced model starts to update when any of the given columns is updated in the original model
|
|
36
|
-
*/
|
|
37
|
-
updateWhenChange(columns) {
|
|
38
|
-
this._updateWhenChange = Array.isArray(columns) ? columns : [columns];
|
|
39
|
-
return this;
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* Set query runner
|
|
43
|
-
*/
|
|
44
|
-
where(queryRunner) {
|
|
45
|
-
this.queryRunner = queryRunner;
|
|
46
|
-
return this;
|
|
47
|
-
}
|
|
48
|
-
/**
|
|
49
|
-
* Unset on delete
|
|
50
|
-
*/
|
|
51
|
-
unsetOnDelete() {
|
|
52
|
-
this.whenDelete = "unset";
|
|
53
|
-
return this;
|
|
54
|
-
}
|
|
55
|
-
/**
|
|
56
|
-
* Ignore on delete
|
|
57
|
-
*/
|
|
58
|
-
ignoreOnDelete() {
|
|
59
|
-
this.whenDelete = "ignore";
|
|
60
|
-
return this;
|
|
61
|
-
}
|
|
62
|
-
/**
|
|
63
|
-
* Remove all matched documents on delete to be fully deleted
|
|
64
|
-
*/
|
|
65
|
-
removeOnDelete() {
|
|
66
|
-
this.whenDelete = "remove";
|
|
67
|
-
return this;
|
|
68
|
-
}
|
|
69
|
-
/**
|
|
70
|
-
* Embed on create to injected model one the original model is created
|
|
71
|
-
*/
|
|
72
|
-
embedOnCreateFrom(column) {
|
|
73
|
-
this.embedOnCreate = column;
|
|
74
|
-
return this;
|
|
75
|
-
}
|
|
76
|
-
/**
|
|
77
|
-
* Mark as many sync
|
|
78
|
-
*/
|
|
79
|
-
syncMany() {
|
|
80
|
-
this.syncMode = "many";
|
|
81
|
-
return this;
|
|
82
|
-
}
|
|
83
|
-
/**
|
|
84
|
-
* Start syncing the model
|
|
85
|
-
*/
|
|
86
|
-
async sync(model, saveMode, oldModel) {
|
|
87
|
-
if (saveMode === "update") {
|
|
88
|
-
return this.syncUpdate(model, oldModel);
|
|
89
|
-
}
|
|
90
|
-
if (!this.embedOnCreate)
|
|
91
|
-
return;
|
|
92
|
-
const columns = Array.isArray(this.columns) ? this.columns : [this.columns];
|
|
93
|
-
const syncedModel = await this.model.first({
|
|
94
|
-
id: model.get(this.embedOnCreate + ".id"),
|
|
95
|
-
});
|
|
96
|
-
if (!syncedModel)
|
|
97
|
-
return;
|
|
98
|
-
try {
|
|
99
|
-
const modelData = typeof model[this.embedMethod] !== "undefined"
|
|
100
|
-
? model[this.embedMethod]
|
|
101
|
-
: model.data;
|
|
102
|
-
for (const column of columns) {
|
|
103
|
-
if (this.syncMode === "single") {
|
|
104
|
-
syncedModel.set(column, modelData);
|
|
105
|
-
}
|
|
106
|
-
else {
|
|
107
|
-
syncedModel.associate(column, modelData);
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
await syncedModel.save();
|
|
111
|
-
}
|
|
112
|
-
catch (error) {
|
|
113
|
-
console.log("Error in Sync", error.message);
|
|
114
|
-
console.log(model);
|
|
115
|
-
throw error;
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
/**
|
|
119
|
-
* Sync update
|
|
120
|
-
*/
|
|
121
|
-
async syncUpdate(model, oldModel) {
|
|
122
|
-
if (this._updateWhenChange && oldModel) {
|
|
123
|
-
// now check if any of the columns has changed
|
|
124
|
-
// if all of them are the same, then we don't need to update
|
|
125
|
-
if (this._updateWhenChange.every(column => areEqual(model.get(column), oldModel.get(column)))) {
|
|
126
|
-
return;
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
const columns = Array.isArray(this.columns) ? this.columns : [this.columns];
|
|
130
|
-
const whereOptions = {};
|
|
131
|
-
for (const column of columns) {
|
|
132
|
-
whereOptions[column + ".id"] = model.id;
|
|
133
|
-
}
|
|
134
|
-
const query = this.model.aggregate().orWhere(whereOptions);
|
|
135
|
-
if (this.queryRunner) {
|
|
136
|
-
this.queryRunner(query);
|
|
137
|
-
}
|
|
138
|
-
const models = await query.get();
|
|
139
|
-
try {
|
|
140
|
-
const modelData = typeof model[this.embedMethod] !== "undefined"
|
|
141
|
-
? model[this.embedMethod]
|
|
142
|
-
: model.embeddedData;
|
|
143
|
-
for (const updatingModel of models) {
|
|
144
|
-
for (const column of columns) {
|
|
145
|
-
if (this.syncMode === "single") {
|
|
146
|
-
updatingModel.set(column, modelData);
|
|
147
|
-
}
|
|
148
|
-
else {
|
|
149
|
-
if (column.includes(".")) {
|
|
150
|
-
// if column includes dot, then it's a nested column
|
|
151
|
-
// so we need to get the top document key as it should be an array.
|
|
152
|
-
const [topKey, nestedKey] = column.split(".");
|
|
153
|
-
const documentsList = updatingModel.get(topKey) || [];
|
|
154
|
-
// as we're updating, so there should be at least one document
|
|
155
|
-
if (documentsList?.length === 0)
|
|
156
|
-
continue;
|
|
157
|
-
// now we need to find the document that has the same id as the model we're updating
|
|
158
|
-
const documentIndex = documentsList.findIndex((document) => document[nestedKey]?.id === model.get("id"));
|
|
159
|
-
// if document is not found, then we don't need to update
|
|
160
|
-
if (documentIndex === -1)
|
|
161
|
-
continue;
|
|
162
|
-
// now we need to update the document
|
|
163
|
-
documentsList[documentIndex][nestedKey] = modelData;
|
|
164
|
-
// and finally set the updated documents list
|
|
165
|
-
updatingModel.set(topKey, documentsList);
|
|
166
|
-
}
|
|
167
|
-
else {
|
|
168
|
-
// otherwise, it is a direct column update so we can just set it
|
|
169
|
-
updatingModel.reassociate(column, modelData);
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
}
|
|
173
|
-
// disable casting so we can save the data as it is
|
|
174
|
-
await updatingModel.save(undefined, {
|
|
175
|
-
cast: false,
|
|
176
|
-
});
|
|
177
|
-
}
|
|
178
|
-
}
|
|
179
|
-
catch (error) {
|
|
180
|
-
console.log("Error in Sync", error.message);
|
|
181
|
-
console.log(model);
|
|
182
|
-
throw error;
|
|
183
|
-
}
|
|
184
|
-
}
|
|
185
|
-
/**
|
|
186
|
-
* Sync model destruction
|
|
187
|
-
*/
|
|
188
|
-
async syncDestruction(model) {
|
|
189
|
-
const columns = Array.isArray(this.columns) ? this.columns : [this.columns];
|
|
190
|
-
const query = {};
|
|
191
|
-
for (const column of columns) {
|
|
192
|
-
query[column + ".id"] = model.get("id");
|
|
193
|
-
}
|
|
194
|
-
const models = await this.model
|
|
195
|
-
.aggregate()
|
|
196
|
-
.orWhere(query)
|
|
197
|
-
.get();
|
|
198
|
-
for (const currentModel of models) {
|
|
199
|
-
if (this.whenDelete === "unset") {
|
|
200
|
-
for (const column of columns) {
|
|
201
|
-
if (this.syncMode === "single") {
|
|
202
|
-
currentModel.unset(column);
|
|
203
|
-
}
|
|
204
|
-
else {
|
|
205
|
-
currentModel.disassociate(column, model);
|
|
206
|
-
}
|
|
207
|
-
}
|
|
208
|
-
await currentModel.save();
|
|
209
|
-
}
|
|
210
|
-
else if (this.whenDelete === "remove") {
|
|
211
|
-
await currentModel.destroy();
|
|
212
|
-
}
|
|
213
|
-
}
|
|
214
|
-
}
|
|
215
|
-
}export{ModelSync};//# sourceMappingURL=ModelSync.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ModelSync.js","sources":["../../src/model/ModelSync.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import type { Model } from "./model";
|
|
2
|
-
import type { Filter } from "./types";
|
|
3
|
-
export declare class RelationshipWithMany<T> {
|
|
4
|
-
protected model: Model;
|
|
5
|
-
protected relatedModel: typeof Model;
|
|
6
|
-
protected column: string;
|
|
7
|
-
/**
|
|
8
|
-
* Constructor
|
|
9
|
-
*/
|
|
10
|
-
constructor(model: Model, relatedModel: typeof Model, column: string);
|
|
11
|
-
/**
|
|
12
|
-
* Create and add the given model to the relationship
|
|
13
|
-
*/
|
|
14
|
-
create(data: any): Promise<Model>;
|
|
15
|
-
/**
|
|
16
|
-
* Remove the given model from the relationship
|
|
17
|
-
*/
|
|
18
|
-
remove(model: Model): Promise<void>;
|
|
19
|
-
/**
|
|
20
|
-
* Get all related models
|
|
21
|
-
*/
|
|
22
|
-
list(filter?: Filter): Promise<T[]>;
|
|
23
|
-
}
|
|
24
|
-
//# sourceMappingURL=RelationshipWithMany.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"RelationshipWithMany.d.ts","sourceRoot":"","sources":["../../src/model/RelationshipWithMany.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,KAAK,EAAE,MAAM,EAAiB,MAAM,SAAS,CAAC;AAErD,qBAAa,oBAAoB,CAAC,CAAC;IAK/B,SAAS,CAAC,KAAK,EAAE,KAAK;IACtB,SAAS,CAAC,YAAY,EAAE,OAAO,KAAK;IACpC,SAAS,CAAC,MAAM,EAAE,MAAM;IAN1B;;OAEG;gBAES,KAAK,EAAE,KAAK,EACZ,YAAY,EAAE,OAAO,KAAK,EAC1B,MAAM,EAAE,MAAM;IAK1B;;OAEG;IACU,MAAM,CAAC,IAAI,EAAE,GAAG;IAM7B;;OAEG;IACU,MAAM,CAAC,KAAK,EAAE,KAAK;IAIhC;;OAEG;IACU,IAAI,CAAC,MAAM,GAAE,MAAW;CAiBtC"}
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
class RelationshipWithMany {
|
|
2
|
-
model;
|
|
3
|
-
relatedModel;
|
|
4
|
-
column;
|
|
5
|
-
/**
|
|
6
|
-
* Constructor
|
|
7
|
-
*/
|
|
8
|
-
constructor(model, relatedModel, column) {
|
|
9
|
-
this.model = model;
|
|
10
|
-
this.relatedModel = relatedModel;
|
|
11
|
-
this.column = column;
|
|
12
|
-
//
|
|
13
|
-
}
|
|
14
|
-
/**
|
|
15
|
-
* Create and add the given model to the relationship
|
|
16
|
-
*/
|
|
17
|
-
async create(data) {
|
|
18
|
-
data[this.column] = this.model.id;
|
|
19
|
-
return await this.relatedModel.create(data);
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
* Remove the given model from the relationship
|
|
23
|
-
*/
|
|
24
|
-
async remove(model) {
|
|
25
|
-
await this.model.disassociate(this.column, model).save();
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* Get all related models
|
|
29
|
-
*/
|
|
30
|
-
async list(filter = {}) {
|
|
31
|
-
const embeddedDocuments = this.model.get(this.column) || [];
|
|
32
|
-
const embeddedDocumentsIds = embeddedDocuments.map(
|
|
33
|
-
// because it may be an array of ids or an array of documents
|
|
34
|
-
(document) => document.id || document);
|
|
35
|
-
const documents = (await this.relatedModel.list({
|
|
36
|
-
id: embeddedDocumentsIds,
|
|
37
|
-
...filter,
|
|
38
|
-
}));
|
|
39
|
-
this.model.set(this.column, documents);
|
|
40
|
-
return documents;
|
|
41
|
-
}
|
|
42
|
-
}export{RelationshipWithMany};//# sourceMappingURL=RelationshipWithMany.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"RelationshipWithMany.js","sources":["../../src/model/RelationshipWithMany.ts"],"sourcesContent":[null],"names":[],"mappings":"MAGa,oBAAoB,CAAA;AAKnB,IAAA,KAAA,CAAA;AACA,IAAA,YAAA,CAAA;AACA,IAAA,MAAA,CAAA;AANZ;;AAEG;AACH,IAAA,WAAA,CACY,KAAY,EACZ,YAA0B,EAC1B,MAAc,EAAA;QAFd,IAAK,CAAA,KAAA,GAAL,KAAK,CAAO;QACZ,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAc;QAC1B,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;;KAGzB;AAED;;AAEG;IACI,MAAM,MAAM,CAAC,IAAS,EAAA;QAC3B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAElC,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;KAC7C;AAED;;AAEG;IACI,MAAM,MAAM,CAAC,KAAY,EAAA;AAC9B,QAAA,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;KAC1D;AAED;;AAEG;AACI,IAAA,MAAM,IAAI,CAAC,MAAA,GAAiB,EAAE,EAAA;AACnC,QAAA,MAAM,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;AAE5D,QAAA,MAAM,oBAAoB,GAAG,iBAAiB,CAAC,GAAG;;QAEhD,CAAC,QAAuB,KAAK,QAAQ,CAAC,EAAE,IAAI,QAAQ,CACrD,CAAC;QAEF,MAAM,SAAS,IAAI,MAAO,IAAI,CAAC,YAAoB,CAAC,IAAI,CAAC;AACvD,YAAA,EAAE,EAAE,oBAAoB;AACxB,YAAA,GAAG,MAAM;AACV,SAAA,CAAC,CAAQ,CAAC;QAEX,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;AAEvC,QAAA,OAAO,SAAS,CAAC;KAClB;AACF"}
|