@adobe/data 0.4.6 → 0.4.7
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/dist/README.md +310 -0
- package/dist/cache/functions/bind-functions.d.ts +6 -0
- package/dist/cache/functions/bind-functions.js +33 -0
- package/dist/cache/functions/bind-functions.js.map +1 -0
- package/dist/cache/functions/hashing/arrayBufferToHex.d.ts +1 -0
- package/dist/cache/functions/hashing/arrayBufferToHex.js +27 -0
- package/dist/cache/functions/hashing/arrayBufferToHex.js.map +1 -0
- package/dist/cache/functions/omit.d.ts +1 -0
- package/dist/cache/functions/omit.js +29 -0
- package/dist/cache/functions/omit.js.map +1 -0
- package/dist/cache/functions/types.d.ts +1 -0
- package/dist/{ecs/database/store-schema/store-schema.js → cache/functions/types.js} +1 -1
- package/dist/cache/functions/types.js.map +1 -0
- package/dist/core/data.d.ts +22 -0
- package/dist/core/data.js +52 -0
- package/dist/core/data.js.map +1 -0
- package/dist/{ecs/database/database-schema/create-store-schema-test.js → core/data.test.js} +26 -14
- package/dist/core/data.test.js.map +1 -0
- package/dist/core/functions/array-equals.d.ts +1 -0
- package/dist/core/functions/array-equals.js +34 -0
- package/dist/core/functions/array-equals.js.map +1 -0
- package/dist/core/functions/deep-merge.d.ts +32 -0
- package/dist/core/functions/deep-merge.js +54 -0
- package/dist/core/functions/deep-merge.js.map +1 -0
- package/dist/core/functions/deep-merge.test.js +94 -0
- package/dist/core/functions/deep-merge.test.js.map +1 -0
- package/dist/core/functions/index.d.ts +3 -0
- package/dist/core/functions/index.js +25 -0
- package/dist/core/functions/index.js.map +1 -0
- package/dist/core/functions/is-async-generator.d.ts +1 -0
- package/dist/{ecs/database/database-schema/create-store-schema.js → core/functions/is-async-generator.js} +3 -4
- package/dist/core/functions/is-async-generator.js.map +1 -0
- package/dist/core/functions/is-promise.d.ts +1 -0
- package/dist/core/functions/is-promise.js +26 -0
- package/dist/core/functions/is-promise.js.map +1 -0
- package/dist/core/functions/with-validation.d.ts +5 -0
- package/dist/core/functions/with-validation.js +38 -0
- package/dist/core/functions/with-validation.js.map +1 -0
- package/dist/core/functions/with-validation.test.js +96 -0
- package/dist/core/functions/with-validation.test.js.map +1 -0
- package/dist/core/index.d.ts +3 -0
- package/dist/core/index.js +25 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/schema/dynamic/dynamic-schema.d.ts +27 -0
- package/dist/core/schema/dynamic/dynamic-schema.js +2 -0
- package/dist/core/schema/dynamic/dynamic-schema.js.map +1 -0
- package/dist/core/schema/dynamic/enumerate-patches.d.ts +9 -0
- package/dist/core/schema/dynamic/enumerate-patches.js +50 -0
- package/dist/core/schema/dynamic/enumerate-patches.js.map +1 -0
- package/dist/core/schema/dynamic/enumerate-patches.test.d.ts +134 -0
- package/dist/core/schema/dynamic/enumerate-patches.test.js +209 -0
- package/dist/core/schema/dynamic/enumerate-patches.test.js.map +1 -0
- package/dist/core/schema/dynamic/get-dynamic-schema.d.ts +5 -0
- package/dist/core/schema/dynamic/get-dynamic-schema.js +26 -0
- package/dist/core/schema/dynamic/get-dynamic-schema.js.map +1 -0
- package/dist/core/schema/dynamic/get-dynamic-schema.test.d.ts +1 -0
- package/dist/core/schema/dynamic/get-dynamic-schema.test.js +94 -0
- package/dist/core/schema/dynamic/get-dynamic-schema.test.js.map +1 -0
- package/dist/core/schema/dynamic/index.d.ts +1 -0
- package/dist/core/schema/dynamic/index.js +2 -0
- package/dist/core/schema/dynamic/index.js.map +1 -0
- package/dist/core/schema/dynamic/schema-path-value-path.d.ts +5 -0
- package/dist/core/schema/dynamic/schema-path-value-path.js +12 -0
- package/dist/core/schema/dynamic/schema-path-value-path.js.map +1 -0
- package/dist/core/schema/dynamic-schema.d.ts +27 -0
- package/dist/core/schema/dynamic-schema.js +2 -0
- package/dist/core/schema/dynamic-schema.js.map +1 -0
- package/dist/core/schema/index.d.ts +4 -0
- package/dist/{ecs/database/store-schema/create-store-schema.js → core/schema/index.js} +5 -5
- package/dist/core/schema/index.js.map +1 -0
- package/dist/core/schema/schema.d.ts +122 -0
- package/dist/core/schema/schema.js +34 -0
- package/dist/core/schema/schema.js.map +1 -0
- package/dist/core/schema/schemas.d.ts +45 -0
- package/dist/core/schema/schemas.js +39 -0
- package/dist/core/schema/schemas.js.map +1 -0
- package/dist/core/schema/ui-schema.d.ts +25 -0
- package/dist/core/schema/ui-schema.js +2 -0
- package/dist/core/schema/ui-schema.js.map +1 -0
- package/dist/core/schema/validation/is-valid.d.ts +2 -0
- package/dist/core/schema/validation/is-valid.js +14 -0
- package/dist/core/schema/validation/is-valid.js.map +1 -0
- package/dist/core/schema/validation/is-valid.test.d.ts +1 -0
- package/dist/core/schema/validation/is-valid.test.js +40 -0
- package/dist/core/schema/validation/is-valid.test.js.map +1 -0
- package/dist/core/schema/validation/validate.d.ts +2 -0
- package/dist/core/schema/validation/validate.js +38 -0
- package/dist/core/schema/validation/validate.js.map +1 -0
- package/dist/core/schema/validation/validate.test.d.ts +1 -0
- package/dist/core/schema/validation/validate.test.js +106 -0
- package/dist/core/schema/validation/validate.test.js.map +1 -0
- package/dist/core/schema/validation/with-validation.d.ts +5 -0
- package/dist/core/schema/validation/with-validation.js +16 -0
- package/dist/core/schema/validation/with-validation.js.map +1 -0
- package/dist/core/schema/validation/with-validation.test.d.ts +1 -0
- package/dist/core/schema/validation/with-validation.test.js +96 -0
- package/dist/core/schema/validation/with-validation.test.js.map +1 -0
- package/dist/core/schema.d.ts +86 -0
- package/dist/core/schema.js +33 -0
- package/dist/core/schema.js.map +1 -0
- package/dist/core/schema.test.d.ts +1 -0
- package/dist/core/schema.test.js +16 -0
- package/dist/core/schema.test.js.map +1 -0
- package/dist/core/schemas.d.ts +45 -0
- package/dist/core/schemas.js +39 -0
- package/dist/core/schemas.js.map +1 -0
- package/dist/ecs/action-ecs/action-ecs.d.ts +19 -0
- package/dist/ecs/action-ecs/action-ecs.js +203 -0
- package/dist/ecs/action-ecs/action-ecs.js.map +1 -0
- package/dist/ecs/action-ecs/action-ecs.test.d.ts +1 -0
- package/dist/ecs/action-ecs/action-ecs.test.js +362 -0
- package/dist/ecs/action-ecs/action-ecs.test.js.map +1 -0
- package/dist/ecs/action-ecs/action-types.d.ts +106 -0
- package/dist/ecs/action-ecs/action-types.js +19 -0
- package/dist/ecs/action-ecs/action-types.js.map +1 -0
- package/dist/ecs/action-ecs/index.d.ts +2 -0
- package/dist/ecs/{database/store-schema → action-ecs}/index.js +1 -2
- package/dist/ecs/action-ecs/index.js.map +1 -0
- package/dist/ecs/component-schemas.d.ts +2 -1
- package/dist/ecs/core-ecs/core-ecs-serialization.test.d.ts +1 -0
- package/dist/ecs/core-ecs/core-ecs-serialization.test.js +230 -0
- package/dist/ecs/core-ecs/core-ecs-serialization.test.js.map +1 -0
- package/dist/ecs/core-ecs/core-ecs-types.d.ts +141 -0
- package/dist/ecs/core-ecs/core-ecs-types.js +23 -0
- package/dist/ecs/core-ecs/core-ecs-types.js.map +1 -0
- package/dist/ecs/core-ecs/core-ecs.d.ts +7 -0
- package/dist/ecs/core-ecs/core-ecs.js +492 -0
- package/dist/ecs/core-ecs/core-ecs.js.map +1 -0
- package/dist/ecs/core-ecs/core-ecs.test.d.ts +1 -0
- package/dist/ecs/core-ecs/core-ecs.test.js +425 -0
- package/dist/ecs/core-ecs/core-ecs.test.js.map +1 -0
- package/dist/ecs/core-ecs/index.d.ts +1 -0
- package/dist/ecs/core-ecs/index.js +2 -0
- package/dist/ecs/core-ecs/index.js.map +1 -0
- package/dist/ecs/database/database-schema/create-database-schema-test.js +2 -2
- package/dist/ecs/database/database-schema/create-database-schema-test.js.map +1 -1
- package/dist/ecs/database/database-schema/create-database-schema.d.ts +4 -1
- package/dist/ecs/database/database-schema/create-database-schema.js +2 -2
- package/dist/ecs/database/database-schema/create-database-schema.js.map +1 -1
- package/dist/ecs/database/database-schema/database-schema.d.ts +5 -2
- package/dist/ecs/database/database-schema/index.d.ts +2 -2
- package/dist/ecs/database/database-schema/index.js +2 -2
- package/dist/ecs/database/database-schema/index.js.map +1 -1
- package/dist/ecs/database/register-database-codec.d.ts +1 -0
- package/dist/ecs/database/register-database-codec.js +35 -0
- package/dist/ecs/database/register-database-codec.js.map +1 -0
- package/dist/ecs/database/register-database-codecs.d.ts +1 -0
- package/dist/ecs/database/register-database-codecs.js +35 -0
- package/dist/ecs/database/register-database-codecs.js.map +1 -0
- package/dist/ecs/database/register-store-codec.d.ts +1 -0
- package/dist/ecs/database/register-store-codec.js +35 -0
- package/dist/ecs/database/register-store-codec.js.map +1 -0
- package/dist/ecs/database/register-typed-buffer-codecs.d.ts +1 -0
- package/dist/ecs/database/register-typed-buffer-codecs.js +80 -0
- package/dist/ecs/database/register-typed-buffer-codecs.js.map +1 -0
- package/dist/ecs/database/transactional-store/apply-write-operations.d.ts +7 -0
- package/dist/ecs/database/transactional-store/apply-write-operations.js +20 -0
- package/dist/ecs/database/transactional-store/apply-write-operations.js.map +1 -0
- package/dist/ecs/database/transactional-store/applyWriteOperations.d.ts +7 -0
- package/dist/ecs/database/transactional-store/applyWriteOperations.js +20 -0
- package/dist/ecs/database/transactional-store/applyWriteOperations.js.map +1 -0
- package/dist/ecs/database/transactional-store/create-test-transaction.d.ts +1 -0
- package/dist/ecs/database/transactional-store/create-test-transaction.js.map +1 -1
- package/dist/ecs/database/transactional-store/patch.d.ts +3 -0
- package/dist/ecs/database/transactional-store/patch.js +7 -0
- package/dist/ecs/database/transactional-store/patch.js.map +1 -0
- package/dist/ecs/database/transactional-store/undoable.d.ts +13 -0
- package/dist/ecs/database/{database-schema/store-schema.js → transactional-store/undoable.js} +1 -1
- package/dist/ecs/database/transactional-store/undoable.js.map +1 -0
- package/dist/ecs/database/transactional-store/with-undoable.d.ts +10 -0
- package/dist/ecs/database/transactional-store/with-undoable.js +13 -0
- package/dist/ecs/database/transactional-store/with-undoable.js.map +1 -0
- package/dist/ecs/database/with-undoable.d.ts +10 -0
- package/dist/ecs/database/with-undoable.js +13 -0
- package/dist/ecs/database/with-undoable.js.map +1 -0
- package/dist/ecs/ecs/ecs-types.d.ts +132 -0
- package/dist/ecs/ecs/ecs-types.js +23 -0
- package/dist/ecs/ecs/ecs-types.js.map +1 -0
- package/dist/ecs/ecs/ecs-where-functions.d.ts +6 -0
- package/dist/ecs/ecs/ecs-where-functions.js +91 -0
- package/dist/ecs/ecs/ecs-where-functions.js.map +1 -0
- package/dist/ecs/ecs/ecs.d.ts +13 -0
- package/dist/ecs/ecs/ecs.js +177 -0
- package/dist/ecs/ecs/ecs.js.map +1 -0
- package/dist/ecs/ecs/ecs.test.d.ts +1 -0
- package/dist/ecs/ecs/ecs.test.js +399 -0
- package/dist/ecs/ecs/ecs.test.js.map +1 -0
- package/dist/ecs/ecs/index.d.ts +3 -0
- package/dist/ecs/ecs/index.js +3 -0
- package/dist/ecs/ecs/index.js.map +1 -0
- package/dist/ecs/entity-location-table/register-database-codec.d.ts +1 -0
- package/dist/ecs/entity-location-table/register-database-codec.js +35 -0
- package/dist/ecs/entity-location-table/register-database-codec.js.map +1 -0
- package/dist/ecs/entity-location-table/register-entity-location-table-codec.d.ts +1 -0
- package/dist/{functions/serialization.test.js → ecs/entity-location-table/register-entity-location-table-codec.js} +20 -22
- package/dist/ecs/entity-location-table/register-entity-location-table-codec.js.map +1 -0
- package/dist/ecs/entity-location-table/register-entity-location-table-codec.test.d.ts +1 -0
- package/dist/ecs/entity-location-table/register-entity-location-table-codec.test.js +70 -0
- package/dist/ecs/entity-location-table/register-entity-location-table-codec.test.js.map +1 -0
- package/dist/ecs/persistence-service/create-persistence-service.d.ts +6 -0
- package/dist/ecs/persistence-service/create-persistence-service.js +24 -0
- package/dist/ecs/persistence-service/create-persistence-service.js.map +1 -0
- package/dist/ecs/persistence-service/create-session-persistence-service.d.ts +8 -0
- package/dist/ecs/persistence-service/create-session-persistence-service.js +49 -0
- package/dist/ecs/persistence-service/create-session-persistence-service.js.map +1 -0
- package/dist/ecs/persistence-service/persistence-service copy.d.ts +5 -0
- package/dist/ecs/persistence-service/persistence-service copy.js +2 -0
- package/dist/ecs/persistence-service/persistence-service copy.js.map +1 -0
- package/dist/ecs/persistence-service/to-blob-refs.d.ts +2 -0
- package/dist/ecs/persistence-service/to-blob-refs.js +3 -0
- package/dist/ecs/persistence-service/to-blob-refs.js.map +1 -0
- package/dist/ecs/persistence-service/undo-redo-service.d.ts +11 -0
- package/dist/ecs/persistence-service/undo-redo-service.js +23 -0
- package/dist/ecs/persistence-service/undo-redo-service.js.map +1 -0
- package/dist/ecs/resource-schemas.d.ts +4 -3
- package/dist/ecs/resource-schemas.js +21 -0
- package/dist/ecs/resource-schemas.js.map +1 -1
- package/dist/ecs/store/core/core.d.ts +8 -0
- package/dist/ecs/store/core/create-core.js +5 -0
- package/dist/ecs/store/core/create-core.js.map +1 -1
- package/dist/ecs/store/core/create-core.test.js +109 -0
- package/dist/ecs/store/core/create-core.test.js.map +1 -1
- package/dist/ecs/store/core/register-core-codec.d.ts +1 -0
- package/dist/ecs/{database/store-schema/create-store-schema-test.js → store/core/register-core-codec.js} +24 -15
- package/dist/ecs/store/core/register-core-codec.js.map +1 -0
- package/dist/ecs/store/core/register-core-codec.test.d.ts +1 -0
- package/dist/ecs/store/core/register-core-codec.test.js +136 -0
- package/dist/ecs/store/core/register-core-codec.test.js.map +1 -0
- package/dist/ecs/store/query.d.ts +47 -0
- package/dist/ecs/store/query.js +2 -0
- package/dist/ecs/store/query.js.map +1 -0
- package/dist/ecs/store/register-core-codec.d.ts +1 -0
- package/dist/ecs/store/register-core-codec.js +38 -0
- package/dist/ecs/store/register-core-codec.js.map +1 -0
- package/dist/ecs/store/register-store-codec.d.ts +1 -0
- package/dist/ecs/store/register-store-codec.js +38 -0
- package/dist/ecs/store/register-store-codec.js.map +1 -0
- package/dist/ecs/store/restore-store.d.ts +12 -0
- package/dist/ecs/store/restore-store.js +91 -0
- package/dist/ecs/store/restore-store.js.map +1 -0
- package/dist/ecs/store/select-options.d.ts +1 -0
- package/dist/ecs/store/select-options.js +16 -0
- package/dist/ecs/store/select-options.js.map +1 -0
- package/dist/ecs/store/select.d.ts +44 -0
- package/dist/ecs/store/select.js +2 -0
- package/dist/ecs/store/select.js.map +1 -0
- package/dist/ecs/transaction-ecs/index.d.ts +2 -0
- package/dist/ecs/transaction-ecs/index.js +24 -0
- package/dist/ecs/transaction-ecs/index.js.map +1 -0
- package/dist/ecs/transaction-ecs/transaction-ecs.d.ts +11 -0
- package/dist/ecs/transaction-ecs/transaction-ecs.js +184 -0
- package/dist/ecs/transaction-ecs/transaction-ecs.js.map +1 -0
- package/dist/ecs/transaction-ecs/transaction-ecs.test.d.ts +1 -0
- package/dist/ecs/transaction-ecs/transaction-ecs.test.js +599 -0
- package/dist/ecs/transaction-ecs/transaction-ecs.test.js.map +1 -0
- package/dist/ecs/transaction-ecs/transaction-types.d.ts +135 -0
- package/dist/ecs/transaction-ecs/transaction-types.js +2 -0
- package/dist/ecs/transaction-ecs/transaction-types.js.map +1 -0
- package/dist/ecs/transaction-ecs/transactions.d.ts +5 -0
- package/dist/ecs/transaction-ecs/transactions.js +158 -0
- package/dist/ecs/transaction-ecs/transactions.js.map +1 -0
- package/dist/ecs/undo-redo/create-undo-redo-actions.js +21 -0
- package/dist/ecs/undo-redo/create-undo-redo-actions.js.map +1 -1
- package/dist/ecs/undo-redo/create-undo-redo-actions.test.js.map +1 -1
- package/dist/ecs/undo-redo/do.d.ts +3 -0
- package/dist/ecs/undo-redo/do.js +3 -0
- package/dist/ecs/undo-redo/do.js.map +1 -0
- package/dist/ecs/undo-redo/index.d.ts +1 -0
- package/dist/ecs/undo-redo/index.js +23 -0
- package/dist/ecs/undo-redo/index.js.map +1 -0
- package/dist/functions/serialization/deserialize.d.ts +1 -4
- package/dist/functions/serialization/deserialize.js +1 -14
- package/dist/functions/serialization/deserialize.js.map +1 -1
- package/dist/functions/serialization/register-typed-array-codecs copy.d.ts +1 -0
- package/dist/functions/serialization/register-typed-array-codecs copy.js +13 -0
- package/dist/functions/serialization/register-typed-array-codecs copy.js.map +1 -0
- package/dist/functions/serialization/serialize-to-blobs copy.d.ts +8 -0
- package/dist/functions/serialization/serialize-to-blobs copy.js +21 -0
- package/dist/functions/serialization/serialize-to-blobs copy.js.map +1 -0
- package/dist/functions/serialization/serialize-to-blobs.js.map +1 -1
- package/dist/observe/to-async-generator.js +0 -4
- package/dist/observe/to-async-generator.js.map +1 -1
- package/dist/observe/with-map copy.d.ts +5 -0
- package/dist/observe/with-map copy.js +14 -0
- package/dist/observe/with-map copy.js.map +1 -0
- package/dist/package.json +129 -0
- package/dist/schema/f32 copy.d.ts +6 -0
- package/dist/schema/f32 copy.js +6 -0
- package/dist/schema/f32 copy.js.map +1 -0
- package/dist/schemas/index.d.ts +1 -0
- package/dist/schemas/index.js +23 -0
- package/dist/schemas/index.js.map +1 -0
- package/dist/schemas/schemas.d.ts +45 -0
- package/dist/schemas/schemas.js +39 -0
- package/dist/schemas/schemas.js.map +1 -0
- package/dist/service/sequential-action.d.ts +18 -0
- package/dist/service/sequential-action.js +45 -0
- package/dist/service/sequential-action.js.map +1 -0
- package/dist/table/ensure-capacity copy.d.ts +2 -0
- package/dist/table/ensure-capacity copy.js +15 -0
- package/dist/table/ensure-capacity copy.js.map +1 -0
- package/dist/table/filter-rows.d.ts +2 -0
- package/dist/table/filter-rows.js +15 -0
- package/dist/table/filter-rows.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +3 -3
- package/dist/ecs/database/database-schema/create-database-from-schema.d.ts +0 -12
- package/dist/ecs/database/database-schema/create-database-from-schema.js +0 -8
- package/dist/ecs/database/database-schema/create-database-from-schema.js.map +0 -1
- package/dist/ecs/database/database-schema/create-store-schema-test.js.map +0 -1
- package/dist/ecs/database/database-schema/create-store-schema.d.ts +0 -9
- package/dist/ecs/database/database-schema/create-store-schema.js.map +0 -1
- package/dist/ecs/database/database-schema/store-schema.d.ts +0 -12
- package/dist/ecs/database/database-schema/store-schema.js.map +0 -1
- package/dist/ecs/database/store-schema/create-store-schema-test.js.map +0 -1
- package/dist/ecs/database/store-schema/create-store-schema.d.ts +0 -9
- package/dist/ecs/database/store-schema/create-store-schema.js.map +0 -1
- package/dist/ecs/database/store-schema/index.d.ts +0 -2
- package/dist/ecs/database/store-schema/index.js.map +0 -1
- package/dist/ecs/database/store-schema/store-schema.d.ts +0 -12
- package/dist/ecs/database/store-schema/store-schema.js.map +0 -1
- package/dist/functions/serialization/serialization.d.ts +0 -23
- package/dist/functions/serialization/serialization.js +0 -58
- package/dist/functions/serialization/serialization.js.map +0 -1
- package/dist/functions/serialization.d.ts +0 -23
- package/dist/functions/serialization.js +0 -58
- package/dist/functions/serialization.js.map +0 -1
- package/dist/functions/serialization.test.js.map +0 -1
- package/dist/functions/serialize.d.ts +0 -17
- package/dist/functions/serialize.js +0 -66
- package/dist/functions/serialize.js.map +0 -1
- /package/dist/{ecs/database/database-schema/create-store-schema-test.d.ts → core/data.test.d.ts} +0 -0
- /package/dist/{ecs/database/store-schema/create-store-schema-test.d.ts → core/functions/deep-merge.test.d.ts} +0 -0
- /package/dist/{functions/serialization.test.d.ts → core/functions/with-validation.test.d.ts} +0 -0
|
@@ -0,0 +1,492 @@
|
|
|
1
|
+
/*MIT License
|
|
2
|
+
|
|
3
|
+
© Copyright 2025 Adobe. All rights reserved.
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.*/
|
|
22
|
+
import { equals, normalize, } from "../../core/index.js";
|
|
23
|
+
import { createManagedArray, } from "../../cache/managed-array.js";
|
|
24
|
+
import { createSimpleMemoryAllocator, } from "../../cache/memory-allocator.js";
|
|
25
|
+
import { Uint32Schema } from "../../core/schema/schemas.js";
|
|
26
|
+
// This is a sentinel value used to indicate a component should be deleted.
|
|
27
|
+
export const DELETE = "_@_DELETE_@_";
|
|
28
|
+
export function createCoreECS(options = {}) {
|
|
29
|
+
const ELEMENTS_PER_RECORD = 2;
|
|
30
|
+
const DELETED_ARCHETYPE = 0xff;
|
|
31
|
+
const componentSchemas = {
|
|
32
|
+
id: Uint32Schema,
|
|
33
|
+
};
|
|
34
|
+
const getSchema = (name) => {
|
|
35
|
+
const schema = componentSchemas[name];
|
|
36
|
+
if (!schema) {
|
|
37
|
+
throw new Error(`Component "${String(name)}" not found`);
|
|
38
|
+
}
|
|
39
|
+
return schema;
|
|
40
|
+
};
|
|
41
|
+
const resources = {};
|
|
42
|
+
let recordCount = 0;
|
|
43
|
+
let recordCapacity = 1024;
|
|
44
|
+
let firstDeletedId = 0;
|
|
45
|
+
let records = new Uint32Array(recordCapacity * ELEMENTS_PER_RECORD);
|
|
46
|
+
const { allocator = createSimpleMemoryAllocator() } = options;
|
|
47
|
+
// What if we remove internal components?
|
|
48
|
+
// id, name, component, schema?
|
|
49
|
+
// We DO need id as a component since it gets it's own column.
|
|
50
|
+
// But do we need to track components internally?
|
|
51
|
+
// [x] This is safely derived as needed.
|
|
52
|
+
const archetypeLookup = {};
|
|
53
|
+
// [ ] the order of these is relevant for serialization currently.
|
|
54
|
+
const archetables = [];
|
|
55
|
+
// [x] This is created as archetypes are requested.
|
|
56
|
+
const componentsToArchetypes = new Map();
|
|
57
|
+
/**
|
|
58
|
+
* Returns the component with the least number of archetypes containing it.
|
|
59
|
+
*/
|
|
60
|
+
const getMostExclusiveComponent = (components) => {
|
|
61
|
+
if (components.length === 0) {
|
|
62
|
+
throw new Error("Cannot call with zero components");
|
|
63
|
+
}
|
|
64
|
+
let mostExclusive = components[0];
|
|
65
|
+
let size = Number.POSITIVE_INFINITY;
|
|
66
|
+
for (const component of components) {
|
|
67
|
+
const archetypes = getComponentsToArchetypes(component);
|
|
68
|
+
if (archetypes.size < size) {
|
|
69
|
+
size = archetypes.size;
|
|
70
|
+
mostExclusive = component;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
return mostExclusive;
|
|
74
|
+
};
|
|
75
|
+
const getAdjacentArchetype = (archetable, component, addOrRemove) => {
|
|
76
|
+
let newTable = archetable[addOrRemove].get(component);
|
|
77
|
+
if (!newTable) {
|
|
78
|
+
const add = addOrRemove === "addComponent";
|
|
79
|
+
const newComponents = (add
|
|
80
|
+
? [...archetable.components, component].sort()
|
|
81
|
+
: archetable.components.filter((c) => c !== component));
|
|
82
|
+
newTable = getArchetype(...newComponents);
|
|
83
|
+
// add the edge lookup to the new table
|
|
84
|
+
archetable[addOrRemove].set(component, newTable);
|
|
85
|
+
newTable[addOrRemove === "addComponent" ? "removeComponent" : "addComponent"].set(component, archetable);
|
|
86
|
+
}
|
|
87
|
+
return newTable;
|
|
88
|
+
};
|
|
89
|
+
const getComponentValue = (id, component) => {
|
|
90
|
+
const index = id * ELEMENTS_PER_RECORD;
|
|
91
|
+
const archetable = archetables[records[index + 0]];
|
|
92
|
+
const row = records[index + 1];
|
|
93
|
+
const array = archetable.columns[component];
|
|
94
|
+
if (array === undefined) {
|
|
95
|
+
return undefined;
|
|
96
|
+
}
|
|
97
|
+
return array.get(row);
|
|
98
|
+
};
|
|
99
|
+
const setComponentValue = (id, component, value) => {
|
|
100
|
+
if (value === undefined) {
|
|
101
|
+
value = DELETE;
|
|
102
|
+
}
|
|
103
|
+
const index = id * ELEMENTS_PER_RECORD;
|
|
104
|
+
const archetable = archetables[records[index + 0]];
|
|
105
|
+
const currentRow = records[index + 1];
|
|
106
|
+
const array = archetable.columns[component];
|
|
107
|
+
if (value !== DELETE) {
|
|
108
|
+
if (array === undefined) {
|
|
109
|
+
// add component
|
|
110
|
+
const newTable = getAdjacentArchetype(archetable, component, "addComponent");
|
|
111
|
+
const newRow = newTable.createRow();
|
|
112
|
+
// manually move values over
|
|
113
|
+
for (const name of archetable.components) {
|
|
114
|
+
const targetColumn = archetable.columns[name];
|
|
115
|
+
if (targetColumn !== undefined) {
|
|
116
|
+
newTable.columns[name].set(newRow, targetColumn.get(currentRow));
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
// set the new component value
|
|
120
|
+
newTable.columns[component].set(newRow, value);
|
|
121
|
+
archetable.deleteRow(currentRow);
|
|
122
|
+
records[index + 0] = newTable.id;
|
|
123
|
+
records[index + 1] = newRow;
|
|
124
|
+
}
|
|
125
|
+
else {
|
|
126
|
+
// updating value
|
|
127
|
+
array.set(currentRow, value);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
else if (array !== undefined) {
|
|
131
|
+
// remove component
|
|
132
|
+
const newTable = getAdjacentArchetype(archetable, component, "removeComponent");
|
|
133
|
+
const newRow = newTable.createRow();
|
|
134
|
+
// manually move values over, except for the removed one
|
|
135
|
+
for (const name of archetable.components) {
|
|
136
|
+
if (name !== component) {
|
|
137
|
+
newTable.columns[name].set(newRow, archetable.columns[name].get(currentRow));
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
archetable.deleteRow(currentRow);
|
|
141
|
+
records[index + 0] = newTable.id;
|
|
142
|
+
records[index + 1] = newRow;
|
|
143
|
+
}
|
|
144
|
+
};
|
|
145
|
+
const getArchetype = (...components) => {
|
|
146
|
+
components.sort();
|
|
147
|
+
const ids = new Set(components);
|
|
148
|
+
if (!ids.has("id")) {
|
|
149
|
+
ids.add("id");
|
|
150
|
+
components.unshift("id");
|
|
151
|
+
}
|
|
152
|
+
const key = components.join(",");
|
|
153
|
+
let archetype = archetypeLookup[key];
|
|
154
|
+
if (!archetype) {
|
|
155
|
+
const columns = Object.fromEntries(components.map((name) => [
|
|
156
|
+
name,
|
|
157
|
+
createManagedArray(getSchema(name), allocator),
|
|
158
|
+
]));
|
|
159
|
+
const id = archetables.length;
|
|
160
|
+
archetype =
|
|
161
|
+
archetables[id] =
|
|
162
|
+
archetypeLookup[key] =
|
|
163
|
+
{
|
|
164
|
+
components,
|
|
165
|
+
id,
|
|
166
|
+
rows: 0,
|
|
167
|
+
columns,
|
|
168
|
+
addComponent: new Map(),
|
|
169
|
+
removeComponent: new Map(),
|
|
170
|
+
readRow: (row) => {
|
|
171
|
+
const values = {};
|
|
172
|
+
for (const name of components) {
|
|
173
|
+
values[name] = columns[name].get(row);
|
|
174
|
+
}
|
|
175
|
+
return values;
|
|
176
|
+
},
|
|
177
|
+
createRow: (values) => {
|
|
178
|
+
const newRow = archetype.rows++;
|
|
179
|
+
for (const name of components) {
|
|
180
|
+
const column = columns[name];
|
|
181
|
+
column.ensureCapacity(archetype.rows);
|
|
182
|
+
if (values) {
|
|
183
|
+
const value = values[name];
|
|
184
|
+
if (value === undefined) {
|
|
185
|
+
throw new Error(`Missing value for column "${String(name)}"`);
|
|
186
|
+
}
|
|
187
|
+
column.set(newRow, value);
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
return newRow;
|
|
191
|
+
},
|
|
192
|
+
deleteRow: (row) => {
|
|
193
|
+
archetype.rows--;
|
|
194
|
+
// the main ecs records row pointer is updated to the new row
|
|
195
|
+
if (archetype.rows > 0) {
|
|
196
|
+
const movedRowId = columns.id.native[archetype.rows];
|
|
197
|
+
const movedRowIndex = movedRowId * ELEMENTS_PER_RECORD;
|
|
198
|
+
records[movedRowIndex + 1] = row;
|
|
199
|
+
}
|
|
200
|
+
// then we remove each columns row, moving the last to replace it.
|
|
201
|
+
for (const name of components) {
|
|
202
|
+
const column = columns[name];
|
|
203
|
+
if (column !== undefined) {
|
|
204
|
+
if (archetype.rows > 0) {
|
|
205
|
+
// the last row (at size) is moved to replace the deleted row
|
|
206
|
+
column.move(archetype.rows, row);
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
},
|
|
211
|
+
};
|
|
212
|
+
for (const name of components) {
|
|
213
|
+
getComponentsToArchetypes(name).add(archetype);
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
return archetype;
|
|
217
|
+
};
|
|
218
|
+
const getEntityArchetype = (id) => {
|
|
219
|
+
return archetables[records[id * ELEMENTS_PER_RECORD]];
|
|
220
|
+
};
|
|
221
|
+
const getComponentsToArchetypes = (name) => {
|
|
222
|
+
let set = componentsToArchetypes.get(name);
|
|
223
|
+
if (!set) {
|
|
224
|
+
componentsToArchetypes.set(name, (set = new Set()));
|
|
225
|
+
}
|
|
226
|
+
return set;
|
|
227
|
+
};
|
|
228
|
+
const withComponents = (components) => {
|
|
229
|
+
Object.entries(components).forEach(([name, newSchema]) => {
|
|
230
|
+
const oldSchema = componentSchemas[name];
|
|
231
|
+
// it's OK for a component to be defined more than once
|
|
232
|
+
// so long as the schema is the same.
|
|
233
|
+
if (oldSchema && !equals(normalize(oldSchema), normalize(newSchema))) {
|
|
234
|
+
console.warn(`Component "${name}" schema changed from ${JSON.stringify(oldSchema)} to ${JSON.stringify(newSchema)}`);
|
|
235
|
+
}
|
|
236
|
+
componentSchemas[name] = newSchema;
|
|
237
|
+
});
|
|
238
|
+
return ecs;
|
|
239
|
+
};
|
|
240
|
+
const withResources = (newResources) => {
|
|
241
|
+
Object.entries(newResources).forEach(([name, value]) => {
|
|
242
|
+
// register the resource as a component.
|
|
243
|
+
withComponents({ [name]: {} });
|
|
244
|
+
const archetype = getArchetype("id", name);
|
|
245
|
+
// resource row *may* already exist if loaded from disk.
|
|
246
|
+
const entityId = archetype.rows
|
|
247
|
+
? archetype.columns.id.get(archetype.rows)
|
|
248
|
+
: createEntity(archetype, { [name]: value });
|
|
249
|
+
const column = archetype.columns[name];
|
|
250
|
+
Object.defineProperty(resources, name, {
|
|
251
|
+
get: () => column.get(0),
|
|
252
|
+
set: (newValue) => {
|
|
253
|
+
updateEntity(entityId, { [name]: newValue });
|
|
254
|
+
},
|
|
255
|
+
});
|
|
256
|
+
});
|
|
257
|
+
return ecs;
|
|
258
|
+
};
|
|
259
|
+
function getTables(archetype, options) {
|
|
260
|
+
if (!archetype) {
|
|
261
|
+
return archetables.filter((a) => a.rows > 0);
|
|
262
|
+
}
|
|
263
|
+
if (options?.exact) {
|
|
264
|
+
return [archetype];
|
|
265
|
+
}
|
|
266
|
+
const components = archetype.components;
|
|
267
|
+
const tables = [];
|
|
268
|
+
const baseSet = getComponentsToArchetypes(getMostExclusiveComponent(components));
|
|
269
|
+
for (const archetable of baseSet) {
|
|
270
|
+
if (archetable.rows === 0) {
|
|
271
|
+
continue;
|
|
272
|
+
}
|
|
273
|
+
let hasAll = true;
|
|
274
|
+
for (const component of components) {
|
|
275
|
+
if (!archetable.columns[component]) {
|
|
276
|
+
hasAll = false;
|
|
277
|
+
break;
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
if (hasAll) {
|
|
281
|
+
tables.push(archetable);
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
return tables;
|
|
285
|
+
}
|
|
286
|
+
const countEntities = (archetype) => {
|
|
287
|
+
let count = 0;
|
|
288
|
+
for (const table of getTables(archetype, { mode: "read" })) {
|
|
289
|
+
count += table.rows;
|
|
290
|
+
}
|
|
291
|
+
return count;
|
|
292
|
+
};
|
|
293
|
+
const selectEntities = (archetype) => {
|
|
294
|
+
const tables = getTables(archetype, { mode: "read" });
|
|
295
|
+
const entities = [];
|
|
296
|
+
let offset = 0;
|
|
297
|
+
for (const table of tables) {
|
|
298
|
+
// this native array will probably be longer than the actual size.
|
|
299
|
+
const size = table.rows;
|
|
300
|
+
const nativeArray = table.columns.id.native;
|
|
301
|
+
// copy from 0 .. size to entities
|
|
302
|
+
for (let i = 0; i < size; i++) {
|
|
303
|
+
entities[offset++] = nativeArray[i];
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
return entities;
|
|
307
|
+
};
|
|
308
|
+
const getEntityValues = (id) => {
|
|
309
|
+
const index = id * ELEMENTS_PER_RECORD;
|
|
310
|
+
const archetypeId = records[index + 0];
|
|
311
|
+
if (archetypeId === undefined || archetypeId === DELETED_ARCHETYPE) {
|
|
312
|
+
return undefined;
|
|
313
|
+
}
|
|
314
|
+
const archetable = archetables[records[index + 0]];
|
|
315
|
+
const row = records[index + 1];
|
|
316
|
+
const values = {};
|
|
317
|
+
for (const name of archetable.components) {
|
|
318
|
+
values[name] = archetable.columns[name].get(row);
|
|
319
|
+
}
|
|
320
|
+
return values;
|
|
321
|
+
};
|
|
322
|
+
const updateEntity = (id, values) => {
|
|
323
|
+
for (const name in values) {
|
|
324
|
+
if (name === "id") {
|
|
325
|
+
throw new Error("Cannot update id");
|
|
326
|
+
}
|
|
327
|
+
let value = values[name];
|
|
328
|
+
if (value === undefined) {
|
|
329
|
+
value = DELETE;
|
|
330
|
+
}
|
|
331
|
+
setComponentValue(id, name, value);
|
|
332
|
+
}
|
|
333
|
+
};
|
|
334
|
+
function ensureRecordCapacity(capacity) {
|
|
335
|
+
if (recordCapacity < capacity) {
|
|
336
|
+
recordCapacity = Math.max(capacity, recordCapacity * 2);
|
|
337
|
+
const newRecords = new Uint32Array(recordCapacity * ELEMENTS_PER_RECORD);
|
|
338
|
+
newRecords.set(records);
|
|
339
|
+
records = newRecords;
|
|
340
|
+
}
|
|
341
|
+
}
|
|
342
|
+
const createEntity = (_archetype, values) => {
|
|
343
|
+
const archetype = _archetype ?? emptyArchetype;
|
|
344
|
+
let id;
|
|
345
|
+
if (firstDeletedId > 0 && recordCount > 0) {
|
|
346
|
+
id = firstDeletedId;
|
|
347
|
+
const index = id * ELEMENTS_PER_RECORD;
|
|
348
|
+
// point to the next deleted id
|
|
349
|
+
firstDeletedId = records[index + 1];
|
|
350
|
+
}
|
|
351
|
+
else {
|
|
352
|
+
// create new entity record
|
|
353
|
+
ensureRecordCapacity(recordCount + 1);
|
|
354
|
+
id = recordCount++;
|
|
355
|
+
}
|
|
356
|
+
// now put it directly into the archetype.
|
|
357
|
+
values = (values ? { ...values, id } : { id });
|
|
358
|
+
const row = archetype.createRow(values);
|
|
359
|
+
// now add the records entry
|
|
360
|
+
const index = id * ELEMENTS_PER_RECORD;
|
|
361
|
+
records[index + 0] = archetype.id;
|
|
362
|
+
records[index + 1] = row;
|
|
363
|
+
return id;
|
|
364
|
+
};
|
|
365
|
+
const createBatch = (archetype, count) => {
|
|
366
|
+
const table = getTables(archetype, { mode: "write", exact: true })[0];
|
|
367
|
+
ensureRecordCapacity(recordCount + count);
|
|
368
|
+
for (const name in table.columns) {
|
|
369
|
+
const column = table.columns[name];
|
|
370
|
+
column.ensureCapacity(table.rows + count);
|
|
371
|
+
}
|
|
372
|
+
const ids = table.columns.id.native;
|
|
373
|
+
// we are only going to rapidly create main record entries *and* the archetype id values.
|
|
374
|
+
let created = 0;
|
|
375
|
+
// first recycle any deleted ids
|
|
376
|
+
while (created < count && firstDeletedId > 0 && recordCount > 0) {
|
|
377
|
+
const id = firstDeletedId;
|
|
378
|
+
const index = id * ELEMENTS_PER_RECORD;
|
|
379
|
+
// point to the next deleted id
|
|
380
|
+
firstDeletedId = records[index + 1];
|
|
381
|
+
const row = table.rows + created++;
|
|
382
|
+
records[index + 0] = table.id;
|
|
383
|
+
records[index + 1] = row;
|
|
384
|
+
ids[row] = id;
|
|
385
|
+
}
|
|
386
|
+
recordCount += created;
|
|
387
|
+
// then quickly create the rest
|
|
388
|
+
for (; created < count; created++) {
|
|
389
|
+
const id = recordCount++;
|
|
390
|
+
const row = table.rows + created;
|
|
391
|
+
records[id * ELEMENTS_PER_RECORD + 0] = table.id;
|
|
392
|
+
records[id * ELEMENTS_PER_RECORD + 1] = row;
|
|
393
|
+
ids[row] = id;
|
|
394
|
+
}
|
|
395
|
+
table.rows += count;
|
|
396
|
+
return table;
|
|
397
|
+
};
|
|
398
|
+
const deleteEntity = (id) => {
|
|
399
|
+
const index = id * ELEMENTS_PER_RECORD;
|
|
400
|
+
const archetype = archetables[records[index + 0]];
|
|
401
|
+
const row = records[index + 1];
|
|
402
|
+
archetype.deleteRow(row);
|
|
403
|
+
const nextDeletedId = firstDeletedId;
|
|
404
|
+
firstDeletedId = id;
|
|
405
|
+
records[index + 0] = DELETED_ARCHETYPE;
|
|
406
|
+
records[index + 1] = nextDeletedId;
|
|
407
|
+
};
|
|
408
|
+
// this first archetype in the table must be the empty entity archetype which contains only the id.
|
|
409
|
+
const emptyArchetype = getArchetype("id");
|
|
410
|
+
// 1 = initial
|
|
411
|
+
// 2 = simplified format
|
|
412
|
+
// 3 = Numbers default to Float64Array instead of Float32Array
|
|
413
|
+
// 4 = bug fix for createRow not ensuring capacity
|
|
414
|
+
const SERIALIZATION_VERSION = 4;
|
|
415
|
+
const toJSON = () => {
|
|
416
|
+
return {
|
|
417
|
+
ecs: true,
|
|
418
|
+
version: SERIALIZATION_VERSION,
|
|
419
|
+
components: componentSchemas,
|
|
420
|
+
entities: [...records.slice(0, recordCount * 2)],
|
|
421
|
+
tables: archetables.map((table, index) => {
|
|
422
|
+
if (index !== table.id) {
|
|
423
|
+
throw new Error(`Table id mismatch: ${index} !== ${table.id}`);
|
|
424
|
+
}
|
|
425
|
+
const { rows, columns } = table;
|
|
426
|
+
return {
|
|
427
|
+
rows,
|
|
428
|
+
columns: Object.fromEntries(Object.entries(columns).map(([name, column]) => {
|
|
429
|
+
const value = column.toJSON(rows, name !== "id");
|
|
430
|
+
return [name, value];
|
|
431
|
+
})),
|
|
432
|
+
};
|
|
433
|
+
}),
|
|
434
|
+
};
|
|
435
|
+
};
|
|
436
|
+
const fromJSON = (json) => {
|
|
437
|
+
const { ecs, version, entities, tables } = json;
|
|
438
|
+
if (!ecs) {
|
|
439
|
+
throw new Error("Not an ECS");
|
|
440
|
+
}
|
|
441
|
+
if (version !== SERIALIZATION_VERSION) {
|
|
442
|
+
return false;
|
|
443
|
+
}
|
|
444
|
+
recordCount = entities.length / 2;
|
|
445
|
+
ensureRecordCapacity(recordCount);
|
|
446
|
+
records.set(entities);
|
|
447
|
+
Object.assign(componentSchemas, json.components);
|
|
448
|
+
for (let i = 0; i < tables.length; i++) {
|
|
449
|
+
const persistedTable = tables[i];
|
|
450
|
+
const { rows, columns } = persistedTable;
|
|
451
|
+
const components = Object.keys(columns);
|
|
452
|
+
const archetype = getArchetype(...components);
|
|
453
|
+
const [archetable] = getTables(archetype, {
|
|
454
|
+
mode: "write",
|
|
455
|
+
exact: true,
|
|
456
|
+
});
|
|
457
|
+
if (archetable.id !== i) {
|
|
458
|
+
throw new Error("Expected archetable to have the same id as the persisted table index");
|
|
459
|
+
}
|
|
460
|
+
archetable.rows = rows;
|
|
461
|
+
for (const [name, columnData] of Object.entries(columns)) {
|
|
462
|
+
const column = archetable.columns[name];
|
|
463
|
+
column.fromJSON(columnData, rows);
|
|
464
|
+
}
|
|
465
|
+
}
|
|
466
|
+
return true;
|
|
467
|
+
};
|
|
468
|
+
const ecs = {
|
|
469
|
+
components: componentSchemas,
|
|
470
|
+
resources,
|
|
471
|
+
getComponentValue,
|
|
472
|
+
setComponentValue,
|
|
473
|
+
countEntities,
|
|
474
|
+
selectEntities,
|
|
475
|
+
getTables,
|
|
476
|
+
getArchetype: getArchetype,
|
|
477
|
+
getEntityArchetype,
|
|
478
|
+
withComponents,
|
|
479
|
+
withResources,
|
|
480
|
+
getEntityValues,
|
|
481
|
+
createBatch,
|
|
482
|
+
createEntity,
|
|
483
|
+
updateEntity,
|
|
484
|
+
deleteEntity,
|
|
485
|
+
toJSON,
|
|
486
|
+
};
|
|
487
|
+
if (options.data) {
|
|
488
|
+
fromJSON(options.data);
|
|
489
|
+
}
|
|
490
|
+
return ecs;
|
|
491
|
+
}
|
|
492
|
+
//# sourceMappingURL=core-ecs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"core-ecs.js","sourceRoot":"","sources":["../../../src/ecs/core-ecs/core-ecs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;WAoBW;AAEX,OAAO,EAIL,MAAM,EACN,SAAS,GACV,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAEL,kBAAkB,GACnB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAEL,2BAA2B,GAC5B,MAAM,iCAAiC,CAAC;AAWzC,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAE5D,4EAA4E;AAC5E,MAAM,CAAC,MAAM,MAAM,GAAY,cAAc,CAAC;AAkB9C,MAAM,UAAU,aAAa,CAI3B,UAGI,EAAE;IAGN,MAAM,mBAAmB,GAAG,CAAC,CAAC;IAC9B,MAAM,iBAAiB,GAAG,IAAI,CAAC;IAE/B,MAAM,gBAAgB,GAAG;QACvB,EAAE,EAAE,YAAY;KACa,CAAC;IAChC,MAAM,SAAS,GAAG,CAAC,IAAe,EAAE,EAAE;QACpC,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,cAAc,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC3D,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;IAEF,MAAM,SAAS,GAAG,EAAO,CAAC;IAE1B,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,IAAI,cAAc,GAAG,IAAI,CAAC;IAC1B,IAAI,cAAc,GAAG,CAAC,CAAC;IACvB,IAAI,OAAO,GAAG,IAAI,WAAW,CAAC,cAAc,GAAG,mBAAmB,CAAC,CAAC;IAEpE,MAAM,EAAE,SAAS,GAAG,2BAA2B,EAAE,EAAE,GAAG,OAAO,CAAC;IAC9D,0CAA0C;IAC1C,gCAAgC;IAChC,+DAA+D;IAC/D,kDAAkD;IAClD,yCAAyC;IACzC,MAAM,eAAe,GAAyC,EAAE,CAAC;IACjE,mEAAmE;IACnE,MAAM,WAAW,GAA2B,EAAE,CAAC;IAC/C,oDAAoD;IACpD,MAAM,sBAAsB,GAAG,IAAI,GAAG,EAAsC,CAAC;IAE7E;;OAEG;IACH,MAAM,yBAAyB,GAAG,CAAC,UAAuB,EAAa,EAAE;QACvE,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;QACtD,CAAC;QACD,IAAI,aAAa,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QAClC,IAAI,IAAI,GAAG,MAAM,CAAC,iBAAiB,CAAC;QACpC,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACnC,MAAM,UAAU,GAAG,yBAAyB,CAAC,SAAS,CAAE,CAAC;YACzD,IAAI,UAAU,CAAC,IAAI,GAAG,IAAI,EAAE,CAAC;gBAC3B,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;gBACvB,aAAa,GAAG,SAAS,CAAC;YAC5B,CAAC;QACH,CAAC;QACD,OAAO,aAAa,CAAC;IACvB,CAAC,CAAC;IAEF,MAAM,oBAAoB,GAAG,CAC3B,UAAgC,EAChC,SAAoB,EACpB,WAA+C,EACzB,EAAE;QACxB,IAAI,QAAQ,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACtD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,GAAG,GAAG,WAAW,KAAK,cAAc,CAAC;YAC3C,MAAM,aAAa,GAAG,CACpB,GAAG;gBACD,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,IAAI,EAAE;gBAC9C,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAC1C,CAAC;YACjB,QAAQ,GAAG,YAAY,CAAC,GAAG,aAAa,CAAC,CAAC;YAC1C,wCAAwC;YACxC,UAAU,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YACjD,QAAQ,CACN,WAAW,KAAK,cAAc,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,cAAc,CACpE,CAAC,GAAG,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QAC/B,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC,CAAC;IAEF,MAAM,iBAAiB,GAAG,CACxB,EAAU,EACV,SAAe,EACM,EAAE;QACvB,MAAM,KAAK,GAAG,EAAE,GAAG,mBAAmB,CAAC;QACvC,MAAM,UAAU,GAAG,WAAW,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;QACnD,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QAC/B,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC5C,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAY,CAAC;IACnC,CAAC,CAAC;IAEF,MAAM,iBAAiB,GAAG,CACxB,EAAU,EACV,SAAe,EACf,KAAc,EACR,EAAE;QACR,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,KAAK,GAAG,MAAa,CAAC;QACxB,CAAC;QACD,MAAM,KAAK,GAAG,EAAE,GAAG,mBAAmB,CAAC;QACvC,MAAM,UAAU,GAAG,WAAW,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;QACnD,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QACtC,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC5C,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;YACrB,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxB,iBAAiB;gBACjB,MAAM,QAAQ,GAAG,oBAAoB,CACnC,UAAU,EACV,SAAS,EACT,cAAc,CACf,CAAC;gBACF,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,EAAE,CAAC;gBACpC,6BAA6B;gBAC7B,KAAK,MAAM,IAAI,IAAI,UAAU,CAAC,UAAyB,EAAE,CAAC;oBACxD,MAAM,YAAY,GAAG,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;oBAC9C,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;wBAC/B,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;oBACnE,CAAC;gBACH,CAAC;gBACD,+BAA+B;gBAC/B,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;gBAE/C,UAAU,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;gBACjC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC;gBACjC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC;YAC9B,CAAC;iBAAM,CAAC;gBACN,kBAAkB;gBAClB,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC;aAAM,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YAC/B,oBAAoB;YACpB,MAAM,QAAQ,GAAG,oBAAoB,CACnC,UAAU,EACV,SAAS,EACT,iBAAiB,CAClB,CAAC;YACF,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,EAAE,CAAC;YACpC,yDAAyD;YACzD,KAAK,MAAM,IAAI,IAAI,UAAU,CAAC,UAAyB,EAAE,CAAC;gBACxD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;oBACvB,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CACxB,MAAM,EACN,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CACzC,CAAC;gBACJ,CAAC;YACH,CAAC;YACD,UAAU,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;YACjC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC;YACjC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC;QAC9B,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,YAAY,GAAG,CAAC,GAAG,UAAuB,EAAwB,EAAE;QACxE,UAAU,CAAC,IAAI,EAAE,CAAC;QAClB,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC;QAChC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACnB,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACd,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC;QACD,MAAM,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,SAAS,GAAyB,eAAe,CAAC,GAAG,CAAC,CAAC;QAC3D,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,MAAM,CAAC,WAAW,CAChC,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;gBACvB,IAAI;gBACJ,kBAAkB,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC;aAC/C,CAAC,CAC4B,CAAC;YAEjC,MAAM,EAAE,GAAG,WAAW,CAAC,MAAM,CAAC;YAC9B,SAAS;gBACP,WAAW,CAAC,EAAE,CAAC;oBACf,eAAe,CAAC,GAAG,CAAC;wBACpB;4BACE,UAAU;4BACV,EAAE;4BACF,IAAI,EAAE,CAAC;4BACP,OAAO;4BACP,YAAY,EAAE,IAAI,GAAG,EAAE;4BACvB,eAAe,EAAE,IAAI,GAAG,EAAE;4BAC1B,OAAO,EAAE,CAAC,GAAW,EAAE,EAAE;gCACvB,MAAM,MAAM,GAAQ,EAAE,CAAC;gCACvB,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;oCAC9B,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gCACxC,CAAC;gCACD,OAAO,MAAM,CAAC;4BAChB,CAAC;4BACD,SAAS,EAAE,CAAC,MAAqB,EAAE,EAAE;gCACnC,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC;gCAChC,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;oCAC9B,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAsB,CAAC;oCAClD,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;oCACtC,IAAI,MAAM,EAAE,CAAC;wCACX,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;wCAC3B,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;4CACxB,MAAM,IAAI,KAAK,CACb,6BAA6B,MAAM,CAAC,IAAI,CAAC,GAAG,CAC7C,CAAC;wCACJ,CAAC;wCACD,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;oCAC5B,CAAC;gCACH,CAAC;gCACD,OAAO,MAAM,CAAC;4BAChB,CAAC;4BACD,SAAS,EAAE,CAAC,GAAW,EAAE,EAAE;gCACzB,SAAS,CAAC,IAAI,EAAE,CAAC;gCACjB,6DAA6D;gCAC7D,IAAI,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;oCACvB,MAAM,UAAU,GAAG,OAAO,CAAC,EAAE,CAAC,MAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;oCACtD,MAAM,aAAa,GAAG,UAAU,GAAG,mBAAmB,CAAC;oCACvD,OAAO,CAAC,aAAa,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;gCACnC,CAAC;gCACD,mEAAmE;gCACnE,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;oCAC9B,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;oCAC7B,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;wCACzB,IAAI,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;4CACvB,6DAA6D;4CAC7D,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;wCACnC,CAAC;oCACH,CAAC;gCACH,CAAC;4BACH,CAAC;yBACF,CAAC;YACJ,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;gBAC9B,yBAAyB,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACjD,CAAC;QACH,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC;IAEF,MAAM,kBAAkB,GAAG,CAAC,EAAU,EAAiB,EAAE;QACvD,OAAO,WAAW,CAAC,OAAO,CAAC,EAAE,GAAG,mBAAmB,CAAC,CAAQ,CAAC;IAC/D,CAAC,CAAC;IAEF,MAAM,yBAAyB,GAAG,CAChC,IAAa,EACc,EAAE;QAC7B,IAAI,GAAG,GAAG,sBAAsB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,sBAAsB,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC;QACtD,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC,CAAC;IAEF,MAAM,cAAc,GAAG,CAIrB,UAAa,EACb,EAAE;QACF,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,EAAE;YACvD,MAAM,SAAS,GAAG,gBAAgB,CAAC,IAAe,CAAC,CAAC;YACpD,wDAAwD;YACxD,sCAAsC;YACtC,IAAI,SAAS,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;gBACrE,OAAO,CAAC,IAAI,CAAC,cAAc,IAAI,yBAAyB,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YACvH,CAAC;YACD,gBAAgB,CAAC,IAAe,CAAC,GAAG,SAAS,CAAC;QAChD,CAAC,CAAC,CAAC;QACH,OAAO,GAAkC,CAAC;IAC5C,CAAC,CAAC;IAEF,MAAM,aAAa,GAAG,CACpB,YAAe,EACV,EAAE;QACP,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE;YACrD,yCAAyC;YACzC,cAAc,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YAC/B,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,EAAE,IAAiB,CAAC,CAAC;YACxD,yDAAyD;YACzD,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI;gBAC7B,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC;gBAC1C,CAAC,CAAC,YAAY,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,EAAS,CAAC,CAAC;YACtD,MAAM,MAAM,GAAI,SAAS,CAAC,OAAe,CAAC,IAAI,CAAuB,CAAC;YACtE,MAAM,CAAC,cAAc,CAAC,SAAS,EAAE,IAAI,EAAE;gBACrC,GAAG,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;gBACxB,GAAG,EAAE,CAAC,QAAQ,EAAE,EAAE;oBAChB,YAAY,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;gBAC/C,CAAC;aACF,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,OAAO,GAAU,CAAC;IACpB,CAAC,CAAC;IAOF,SAAS,SAAS,CAChB,SAA4B,EAC5B,OAAqD;QAErD,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;QAC/C,CAAC;QACD,IAAI,OAAO,EAAE,KAAK,EAAE,CAAC;YACnB,OAAO,CAAC,SAAiC,CAAC,CAAC;QAC7C,CAAC;QACD,MAAM,UAAU,GAAG,SAAS,CAAC,UAAyB,CAAC;QACvD,MAAM,MAAM,GAAuB,EAAE,CAAC;QACtC,MAAM,OAAO,GAAG,yBAAyB,CACvC,yBAAyB,CAAC,UAAU,CAAC,CACrC,CAAC;QACH,KAAK,MAAM,UAAU,IAAI,OAAO,EAAE,CAAC;YACjC,IAAI,UAAU,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;gBAC1B,SAAS;YACX,CAAC;YACD,IAAI,MAAM,GAAG,IAAI,CAAC;YAClB,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;gBACnC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;oBACnC,MAAM,GAAG,KAAK,CAAC;oBACf,MAAM;gBACR,CAAC;YACH,CAAC;YACD,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,MAAM,aAAa,GAAG,CAAC,SAAwB,EAAE,EAAE;QACjD,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAK,MAAM,KAAK,IAAI,SAAS,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;YAC3D,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC;QACtB,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IAEF,MAAM,cAAc,GAAG,CAAC,SAAwB,EAAE,EAAE;QAClD,MAAM,MAAM,GAAG,SAAS,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QACtD,MAAM,QAAQ,GAAa,EAAE,CAAC;QAC9B,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,kEAAkE;YAClE,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;YACxB,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,MAAO,CAAC;YAC7C,kCAAkC;YAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC9B,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;YACtC,CAAC;QACH,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC,CAAC;IAEF,MAAM,eAAe,GAAG,CACtB,EAAU,EACgC,EAAE;QAC5C,MAAM,KAAK,GAAG,EAAE,GAAG,mBAAmB,CAAC;QACvC,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QACvC,IAAI,WAAW,KAAK,SAAS,IAAI,WAAW,KAAK,iBAAiB,EAAE,CAAC;YACnE,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,MAAM,UAAU,GAAG,WAAW,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;QACnD,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QAC/B,MAAM,MAAM,GAAQ,EAAE,CAAC;QACvB,KAAK,MAAM,IAAI,IAAI,UAAU,CAAC,UAAU,EAAE,CAAC;YACzC,MAAM,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACnD,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;IAEF,MAAM,YAAY,GAAG,CACnB,EAAU,EACV,MAAuE,EACvE,EAAE;QACF,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;YAC1B,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;gBAClB,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;YACtC,CAAC;YACD,IAAI,KAAK,GAAG,MAAM,CAAC,IAA4B,CAAQ,CAAC;YACxD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxB,KAAK,GAAG,MAAM,CAAC;YACjB,CAAC;YACD,iBAAiB,CAAC,EAAE,EAAE,IAAe,EAAE,KAAK,CAAC,CAAC;QAChD,CAAC;IACH,CAAC,CAAC;IAEF,SAAS,oBAAoB,CAAC,QAAgB;QAC5C,IAAI,cAAc,GAAG,QAAQ,EAAE,CAAC;YAC9B,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,cAAc,GAAG,CAAC,CAAC,CAAC;YACxD,MAAM,UAAU,GAAG,IAAI,WAAW,CAAC,cAAc,GAAG,mBAAmB,CAAC,CAAC;YACzE,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACxB,OAAO,GAAG,UAAU,CAAC;QACvB,CAAC;IACH,CAAC;IAED,MAAM,YAAY,GAAG,CACnB,UAA6B,EAC7B,MAAsB,EACtB,EAAE;QACF,MAAM,SAAS,GAAI,UAAmC,IAAI,cAAc,CAAC;QACzE,IAAI,EAAU,CAAC;QACf,IAAI,cAAc,GAAG,CAAC,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;YAC1C,EAAE,GAAG,cAAc,CAAC;YACpB,MAAM,KAAK,GAAG,EAAE,GAAG,mBAAmB,CAAC;YACvC,gCAAgC;YAChC,cAAc,GAAG,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QACtC,CAAC;aAAM,CAAC;YACN,4BAA4B;YAC5B,oBAAoB,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;YACtC,EAAE,GAAG,WAAW,EAAE,CAAC;QACrB,CAAC;QACD,2CAA2C;QAC3C,MAAM,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAQ,CAAC;QACtD,MAAM,GAAG,GAAG,SAAS,CAAC,SAAS,CAAC,MAAa,CAAC,CAAC;QAE/C,6BAA6B;QAC7B,MAAM,KAAK,GAAG,EAAE,GAAG,mBAAmB,CAAC;QAEvC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,EAAE,CAAC;QAClC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;QAEzB,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC;IAEF,MAAM,WAAW,GAAG,CAClB,SAA2B,EAC3B,KAAa,EACb,EAAE;QACF,MAAM,KAAK,GAAG,SAAS,CAAC,SAAgB,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAoC,CAAC;QAChH,oBAAoB,CAAC,WAAW,GAAG,KAAK,CAAC,CAAC;QAC1C,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YACjC,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACnC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC;QAC5C,CAAC;QACD,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,MAAO,CAAC;QACrC,0FAA0F;QAC1F,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,iCAAiC;QACjC,OAAO,OAAO,GAAG,KAAK,IAAI,cAAc,GAAG,CAAC,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;YAChE,MAAM,EAAE,GAAG,cAAc,CAAC;YAC1B,MAAM,KAAK,GAAG,EAAE,GAAG,mBAAmB,CAAC;YACvC,gCAAgC;YAChC,cAAc,GAAG,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;YACpC,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,GAAG,OAAO,EAAE,CAAC;YACnC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC;YAC9B,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;YACzB,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;QAChB,CAAC;QACD,WAAW,IAAI,OAAO,CAAC;QACvB,gCAAgC;QAChC,OAAO,OAAO,GAAG,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC;YAClC,MAAM,EAAE,GAAG,WAAW,EAAE,CAAC;YACzB,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,GAAG,OAAO,CAAC;YACjC,OAAO,CAAC,EAAE,GAAG,mBAAmB,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC;YACjD,OAAO,CAAC,EAAE,GAAG,mBAAmB,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;YAC5C,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;QAChB,CAAC;QAED,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC;QAEpB,OAAO,KAAiB,CAAC;IAC3B,CAAC,CAAC;IAEF,MAAM,YAAY,GAAG,CAAC,EAAU,EAAE,EAAE;QAClC,MAAM,KAAK,GAAG,EAAE,GAAG,mBAAmB,CAAC;QACvC,MAAM,SAAS,GAAG,WAAW,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;QAClD,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QAC/B,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QACzB,MAAM,aAAa,GAAG,cAAc,CAAC;QACrC,cAAc,GAAG,EAAE,CAAC;QACpB,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,iBAAiB,CAAC;QACvC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,aAAa,CAAC;IACrC,CAAC,CAAC;IAEF,oGAAoG;IACpG,MAAM,cAAc,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IAE1C,eAAe;IACf,yBAAyB;IACzB,+DAA+D;IAC/D,mDAAmD;IACnD,MAAM,qBAAqB,GAAG,CAAC,CAAC;IAChC,MAAM,MAAM,GAAG,GAAG,EAAE;QAClB,OAAO;YACL,GAAG,EAAE,IAAI;YACT,OAAO,EAAE,qBAAqB;YAC9B,UAAU,EAAE,gBAAgB;YAC5B,QAAQ,EAAE,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,WAAW,GAAG,CAAC,CAAC,CAAC;YAChD,MAAM,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;gBACvC,IAAI,KAAK,KAAK,KAAK,CAAC,EAAE,EAAE,CAAC;oBACvB,MAAM,IAAI,KAAK,CAAC,sBAAsB,KAAK,QAAQ,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;gBACjE,CAAC;gBACD,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;gBAChC,OAAO;oBACL,IAAI;oBACJ,OAAO,EAAE,MAAM,CAAC,WAAW,CACzB,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,EAAE;wBAC7C,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC,CAAC;wBACjD,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;oBACvB,CAAC,CAAC,CACH;iBACF,CAAC;YACJ,CAAC,CAAC;SACM,CAAC;IACb,CAAC,CAAC;IAEF,MAAM,QAAQ,GAAG,CAAC,IAAS,EAAE,EAAE;QAC7B,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QAChD,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;QAChC,CAAC;QACD,IAAI,OAAO,KAAK,qBAAqB,EAAE,CAAC;YACtC,OAAO,KAAK,CAAC;QACf,CAAC;QAED,WAAW,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;QAClC,oBAAoB,CAAC,WAAW,CAAC,CAAC;QAClC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACtB,MAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAEjD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACvC,MAAM,cAAc,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACjC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,cAAc,CAAC;YACzC,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAgB,CAAC;YACvD,MAAM,SAAS,GAAG,YAAY,CAAC,GAAG,UAAU,CAAC,CAAC;YAC9C,MAAM,CAAC,UAAU,CAAC,GAAG,SAAS,CAAC,SAAS,EAAE;gBACxC,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,IAAI;aACZ,CAA2B,CAAC;YAC7B,IAAI,UAAU,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC;gBACxB,MAAM,IAAI,KAAK,CACb,sEAAsE,CACvE,CAAC;YACJ,CAAC;YACD,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC;YACvB,KAAK,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;gBACzD,MAAM,MAAM,GAAI,UAAU,CAAC,OAAe,CAAC,IAAI,CAAC,CAAC;gBACjD,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;YACpC,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IAEF,MAAM,GAAG,GAAY;QACnB,UAAU,EAAE,gBAAgB;QAC5B,SAAS;QACT,iBAAiB;QACjB,iBAAiB;QACjB,aAAa;QACb,cAAc;QACd,SAAS;QACT,YAAY,EAAE,YAAmB;QACjC,kBAAkB;QAClB,cAAc;QACd,aAAa;QACb,eAAe;QACf,WAAW;QACX,YAAY;QACZ,YAAY;QACZ,YAAY;QACZ,MAAM;KACP,CAAC;IAEF,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|