@adobe/data 0.2.1 → 0.2.2
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/assembly/index.d.ts +30 -0
- package/dist/assembly/index.js +18 -0
- package/dist/assembly/index.wasm +0 -0
- package/dist/assembly/index.wasm.map +1 -0
- package/dist/assembly-test/assembly.test.d.ts +1 -0
- package/dist/assembly-test/assembly.test.js +29 -0
- package/dist/assembly-test/assembly.test.js.map +1 -0
- package/dist/cache/async-cache.d.ts +15 -0
- package/dist/cache/async-cache.js +23 -0
- package/dist/cache/async-cache.js.map +1 -0
- package/dist/cache/blob-store.d.ts +94 -0
- package/dist/cache/blob-store.js +194 -0
- package/dist/cache/blob-store.js.map +1 -0
- package/dist/cache/blob-store.test.d.ts +1 -0
- package/dist/cache/blob-store.test.js +142 -0
- package/dist/cache/blob-store.test.js.map +1 -0
- package/dist/cache/data-cache.d.ts +38 -0
- package/dist/cache/data-cache.js +96 -0
- package/dist/cache/data-cache.js.map +1 -0
- package/dist/cache/data-cache.test.d.ts +1 -0
- package/dist/cache/data-cache.test.js +50 -0
- package/dist/cache/data-cache.test.js.map +1 -0
- package/dist/cache/expiring-data-cache.d.ts +6 -0
- package/dist/cache/expiring-data-cache.js +49 -0
- package/dist/cache/expiring-data-cache.js.map +1 -0
- package/dist/cache/expiring-data-cache.test.d.ts +1 -0
- package/dist/cache/expiring-data-cache.test.js +62 -0
- package/dist/cache/expiring-data-cache.test.js.map +1 -0
- package/dist/cache/fallback-async-cache.d.ts +7 -0
- package/dist/cache/fallback-async-cache.js +22 -0
- package/dist/cache/fallback-async-cache.js.map +1 -0
- package/dist/cache/functions/async-data-function.d.ts +1 -0
- package/dist/cache/functions/async-data-function.js +23 -0
- package/dist/cache/functions/async-data-function.js.map +1 -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/functions.test.d.ts +1 -0
- package/dist/cache/functions/functions.test.js +79 -0
- package/dist/cache/functions/functions.test.js.map +1 -0
- package/dist/cache/functions/get-cached.d.ts +11 -0
- package/dist/cache/functions/get-cached.js +49 -0
- package/dist/cache/functions/get-cached.js.map +1 -0
- package/dist/cache/functions/get-cached.test.d.ts +1 -0
- package/dist/cache/functions/get-cached.test.js +96 -0
- package/dist/cache/functions/get-cached.test.js.map +1 -0
- package/dist/cache/functions/hashing/blob-to-hash.d.ts +4 -0
- package/dist/cache/functions/hashing/blob-to-hash.js +44 -0
- package/dist/cache/functions/hashing/blob-to-hash.js.map +1 -0
- package/dist/cache/functions/hashing/buffer-to-hash.d.ts +4 -0
- package/dist/cache/functions/hashing/buffer-to-hash.js +33 -0
- package/dist/cache/functions/hashing/buffer-to-hash.js.map +1 -0
- package/dist/cache/functions/hashing/hashing.test.d.ts +1 -0
- package/dist/cache/functions/hashing/hashing.test.js +95 -0
- package/dist/cache/functions/hashing/hashing.test.js.map +1 -0
- package/dist/cache/functions/hashing/index.d.ts +4 -0
- package/dist/cache/functions/hashing/index.js +26 -0
- package/dist/cache/functions/hashing/index.js.map +1 -0
- package/dist/cache/functions/hashing/json-to-hash.d.ts +4 -0
- package/dist/cache/functions/hashing/json-to-hash.js +29 -0
- package/dist/cache/functions/hashing/json-to-hash.js.map +1 -0
- package/dist/cache/functions/hashing/string-to-hash.d.ts +4 -0
- package/dist/cache/functions/hashing/string-to-hash.js +37 -0
- package/dist/cache/functions/hashing/string-to-hash.js.map +1 -0
- package/dist/cache/functions/index.d.ts +5 -0
- package/dist/cache/functions/index.js +27 -0
- package/dist/cache/functions/index.js.map +1 -0
- package/dist/cache/functions/memoize.d.ts +12 -0
- package/dist/cache/functions/memoize.js +48 -0
- package/dist/cache/functions/memoize.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/prevent-parallel-execution.d.ts +7 -0
- package/dist/cache/functions/prevent-parallel-execution.js +25 -0
- package/dist/cache/functions/prevent-parallel-execution.js.map +1 -0
- package/dist/cache/functions/types.d.ts +1 -0
- package/dist/cache/functions/types.js +23 -0
- package/dist/cache/functions/types.js.map +1 -0
- package/dist/cache/get-persistent-cache.d.ts +12 -0
- package/dist/cache/get-persistent-cache.js +23 -0
- package/dist/cache/get-persistent-cache.js.map +1 -0
- package/dist/cache/index.d.ts +3 -0
- package/dist/cache/index.js +25 -0
- package/dist/cache/index.js.map +1 -0
- package/dist/cache/managed-array.d.ts +23 -0
- package/dist/cache/managed-array.js +160 -0
- package/dist/cache/managed-array.js.map +1 -0
- package/dist/cache/managed-async-cache.browser.test.d.ts +1 -0
- package/dist/cache/managed-async-cache.browser.test.js +50 -0
- package/dist/cache/managed-async-cache.browser.test.js.map +1 -0
- package/dist/cache/managed-async-cache.d.ts +4 -0
- package/dist/cache/managed-async-cache.js +45 -0
- package/dist/cache/managed-async-cache.js.map +1 -0
- package/dist/cache/memory-allocator.d.ts +23 -0
- package/dist/cache/memory-allocator.js +94 -0
- package/dist/cache/memory-allocator.js.map +1 -0
- package/dist/cache/memory-async-cache.d.ts +6 -0
- package/dist/cache/memory-async-cache.js +23 -0
- package/dist/cache/memory-async-cache.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/core/data.test.d.ts +1 -0
- package/dist/core/data.test.js +48 -0
- 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.d.ts +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/core/functions/is-async-generator.js +25 -0
- 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.d.ts +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/core/schema/index.js +26 -0
- 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/data.d.ts +11 -0
- package/dist/data.js +23 -0
- package/dist/data.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/action-ecs/index.js +23 -0
- package/dist/ecs/action-ecs/index.js.map +1 -0
- package/dist/ecs/archetype/archetype.d.ts +15 -0
- package/dist/ecs/archetype/archetype.js +2 -0
- package/dist/ecs/archetype/archetype.js.map +1 -0
- package/dist/ecs/archetype/create-archetype.d.ts +8 -0
- package/dist/ecs/archetype/create-archetype.js +21 -0
- package/dist/ecs/archetype/create-archetype.js.map +1 -0
- package/dist/ecs/archetype/create-archetype.test.d.ts +1 -0
- package/dist/ecs/archetype/create-archetype.test.js +101 -0
- package/dist/ecs/archetype/create-archetype.test.js.map +1 -0
- package/dist/ecs/archetype/delete-row.d.ts +8 -0
- package/dist/ecs/archetype/delete-row.js +34 -0
- package/dist/ecs/archetype/delete-row.js.map +1 -0
- package/dist/ecs/archetype/delete-row.test.d.ts +1 -0
- package/dist/ecs/archetype/delete-row.test.js +83 -0
- package/dist/ecs/archetype/delete-row.test.js.map +1 -0
- package/dist/ecs/archetype/index.d.ts +3 -0
- package/dist/ecs/archetype/index.js +25 -0
- package/dist/ecs/archetype/index.js.map +1 -0
- package/dist/ecs/component-schemas.d.ts +4 -0
- package/dist/ecs/component-schemas.js +2 -0
- package/dist/ecs/component-schemas.js.map +1 -0
- package/dist/ecs/core-components.d.ts +3 -0
- package/dist/ecs/core-components.js +23 -0
- package/dist/ecs/core-components.js.map +1 -0
- 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/create-database.d.ts +5 -0
- package/dist/ecs/database/create-database.js +145 -0
- package/dist/ecs/database/create-database.js.map +1 -0
- package/dist/ecs/database/create-database.test.d.ts +1 -0
- package/dist/ecs/database/create-database.test.js +578 -0
- package/dist/ecs/database/create-database.test.js.map +1 -0
- package/dist/ecs/database/database.d.ts +37 -0
- package/dist/ecs/database/database.js +2 -0
- package/dist/ecs/database/database.js.map +1 -0
- package/dist/ecs/database/index.d.ts +3 -0
- package/dist/ecs/database/index.js +25 -0
- package/dist/ecs/database/index.js.map +1 -0
- package/dist/ecs/database/observe-dependent-value.d.ts +7 -0
- package/dist/ecs/database/observe-dependent-value.js +61 -0
- package/dist/ecs/database/observe-dependent-value.js.map +1 -0
- package/dist/ecs/database/observe-dependent-value.test.d.ts +1 -0
- package/dist/ecs/database/observe-dependent-value.test.js +153 -0
- package/dist/ecs/database/observe-dependent-value.test.js.map +1 -0
- package/dist/ecs/database/transactional-store/create-transactional-store.d.ts +5 -0
- package/dist/ecs/database/transactional-store/create-transactional-store.js +209 -0
- package/dist/ecs/database/transactional-store/create-transactional-store.js.map +1 -0
- package/dist/ecs/database/transactional-store/create-transactional-store.test.d.ts +1 -0
- package/dist/ecs/database/transactional-store/create-transactional-store.test.js +186 -0
- package/dist/ecs/database/transactional-store/create-transactional-store.test.js.map +1 -0
- package/dist/ecs/database/transactional-store/index.d.ts +1 -0
- package/dist/ecs/database/transactional-store/index.js +23 -0
- package/dist/ecs/database/transactional-store/index.js.map +1 -0
- package/dist/ecs/database/transactional-store/transactional-store.d.ts +44 -0
- package/dist/ecs/database/transactional-store/transactional-store.js +2 -0
- package/dist/ecs/database/transactional-store/transactional-store.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/create-entity-location-table.d.ts +2 -0
- package/dist/ecs/entity-location-table/create-entity-location-table.js +84 -0
- package/dist/ecs/entity-location-table/create-entity-location-table.js.map +1 -0
- package/dist/ecs/entity-location-table/create-entity-location-table.test.d.ts +1 -0
- package/dist/ecs/entity-location-table/create-entity-location-table.test.js +138 -0
- package/dist/ecs/entity-location-table/create-entity-location-table.test.js.map +1 -0
- package/dist/ecs/entity-location-table/entity-location-table.d.ts +8 -0
- package/dist/ecs/entity-location-table/entity-location-table.js +2 -0
- package/dist/ecs/entity-location-table/entity-location-table.js.map +1 -0
- package/dist/ecs/entity-location-table/entity-location.d.ts +20 -0
- package/dist/ecs/entity-location-table/entity-location.js +10 -0
- package/dist/ecs/entity-location-table/entity-location.js.map +1 -0
- package/dist/ecs/entity-location-table/index.d.ts +2 -0
- package/dist/ecs/entity-location-table/index.js +24 -0
- package/dist/ecs/entity-location-table/index.js.map +1 -0
- package/dist/ecs/entity.d.ts +8 -0
- package/dist/ecs/entity.js +3 -0
- package/dist/ecs/entity.js.map +1 -0
- package/dist/ecs/index.d.ts +3 -0
- package/dist/ecs/index.js +25 -0
- package/dist/ecs/index.js.map +1 -0
- package/dist/ecs/store/core/core.d.ts +37 -0
- package/dist/ecs/store/core/core.js +2 -0
- package/dist/ecs/store/core/core.js.map +1 -0
- package/dist/ecs/store/core/create-core.d.ts +8 -0
- package/dist/ecs/store/core/create-core.js +114 -0
- package/dist/ecs/store/core/create-core.js.map +1 -0
- package/dist/ecs/store/core/create-core.test.d.ts +41 -0
- package/dist/ecs/store/core/create-core.test.js +355 -0
- package/dist/ecs/store/core/create-core.test.js.map +1 -0
- package/dist/ecs/store/core/index.d.ts +1 -0
- package/dist/ecs/store/core/index.js +23 -0
- package/dist/ecs/store/core/index.js.map +1 -0
- package/dist/ecs/store/create-store.d.ts +12 -0
- package/dist/ecs/store/create-store.js +50 -0
- package/dist/ecs/store/create-store.js.map +1 -0
- package/dist/ecs/store/create-store.test.d.ts +1 -0
- package/dist/ecs/store/create-store.test.js +442 -0
- package/dist/ecs/store/create-store.test.js.map +1 -0
- package/dist/ecs/store/index.d.ts +2 -0
- package/dist/ecs/store/index.js +24 -0
- package/dist/ecs/store/index.js.map +1 -0
- package/dist/ecs/store/resource-components.d.ts +1 -0
- package/dist/ecs/store/resource-components.js +23 -0
- package/dist/ecs/store/resource-components.js.map +1 -0
- package/dist/ecs/store/store.d.ts +23 -0
- package/dist/ecs/store/store.js +2 -0
- package/dist/ecs/store/store.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/equals-shallow.d.ts +1 -0
- package/dist/equals-shallow.js +37 -0
- package/dist/equals-shallow.js.map +1 -0
- package/dist/equals-shallow.test.d.ts +1 -0
- package/dist/equals-shallow.test.js +113 -0
- package/dist/equals-shallow.test.js.map +1 -0
- package/dist/equals.d.ts +11 -0
- package/dist/equals.js +73 -0
- package/dist/equals.js.map +1 -0
- package/dist/equals.test.d.ts +1 -0
- package/dist/equals.test.js +150 -0
- package/dist/equals.test.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.js +25 -0
- package/dist/index.js.map +1 -0
- package/dist/internal/array-buffer-like/copy.d.ts +1 -0
- package/dist/internal/array-buffer-like/copy.js +469 -0
- package/dist/internal/array-buffer-like/copy.js.map +1 -0
- package/dist/internal/array-buffer-like/grow.d.ts +1 -0
- package/dist/internal/array-buffer-like/grow.js +53 -0
- package/dist/internal/array-buffer-like/grow.js.map +1 -0
- package/dist/internal/array-buffer-like/index.d.ts +4 -0
- package/dist/internal/array-buffer-like/index.js +26 -0
- package/dist/internal/array-buffer-like/index.js.map +1 -0
- package/dist/internal/array-buffer-like/is-array-buffer.d.ts +1 -0
- package/dist/internal/array-buffer-like/is-array-buffer.js +445 -0
- package/dist/internal/array-buffer-like/is-array-buffer.js.map +1 -0
- package/dist/internal/array-buffer-like/is-shared-array-buffer.d.ts +1 -0
- package/dist/internal/array-buffer-like/is-shared-array-buffer.js +445 -0
- package/dist/internal/array-buffer-like/is-shared-array-buffer.js.map +1 -0
- package/dist/internal/async-generator/is-async-generator.d.ts +1 -0
- package/dist/internal/async-generator/is-async-generator.js +25 -0
- package/dist/internal/async-generator/is-async-generator.js.map +1 -0
- package/dist/internal/data-view-32/create-data-view-32.d.ts +2 -0
- package/dist/internal/data-view-32/create-data-view-32.js +8 -0
- package/dist/internal/data-view-32/create-data-view-32.js.map +1 -0
- package/dist/internal/data-view-32/data-view-32.d.ts +5 -0
- package/dist/internal/data-view-32/data-view-32.js +23 -0
- package/dist/internal/data-view-32/data-view-32.js.map +1 -0
- package/dist/internal/data-view-32/index.d.ts +2 -0
- package/dist/internal/data-view-32/index.js +24 -0
- package/dist/internal/data-view-32/index.js.map +1 -0
- package/dist/internal/function/memoize-factory.d.ts +1 -0
- package/dist/internal/function/memoize-factory.js +12 -0
- package/dist/internal/function/memoize-factory.js.map +1 -0
- package/dist/internal/object/index.d.ts +1 -0
- package/dist/internal/object/index.js +23 -0
- package/dist/internal/object/index.js.map +1 -0
- package/dist/internal/object/map-entries.d.ts +5 -0
- package/dist/internal/object/map-entries.js +29 -0
- package/dist/internal/object/map-entries.js.map +1 -0
- package/dist/internal/promise/is-promise.d.ts +1 -0
- package/dist/internal/promise/is-promise.js +26 -0
- package/dist/internal/promise/is-promise.js.map +1 -0
- package/dist/internal/typed-array/get-byte-size.d.ts +2 -0
- package/dist/internal/typed-array/get-byte-size.js +28 -0
- package/dist/internal/typed-array/get-byte-size.js.map +1 -0
- package/dist/internal/typed-array/index.d.ts +3 -0
- package/dist/internal/typed-array/index.js +25 -0
- package/dist/internal/typed-array/index.js.map +1 -0
- package/dist/internal/typed-array/typed-array-constructer.d.ts +7 -0
- package/dist/internal/typed-array/typed-array-constructer.js +2 -0
- package/dist/internal/typed-array/typed-array-constructer.js.map +1 -0
- package/dist/internal/typed-array/typed-array.d.ts +1 -0
- package/dist/internal/typed-array/typed-array.js +23 -0
- package/dist/internal/typed-array/typed-array.js.map +1 -0
- package/dist/is-data.d.ts +11 -0
- package/dist/is-data.js +2 -0
- package/dist/is-data.js.map +1 -0
- package/dist/lit/decorators/apply-decorator.d.ts +1 -0
- package/dist/lit/decorators/apply-decorator.js +18 -0
- package/dist/lit/decorators/apply-decorator.js.map +1 -0
- package/dist/lit/decorators/apply-service-decorators.d.ts +1 -0
- package/dist/lit/decorators/apply-service-decorators.js +12 -0
- package/dist/lit/decorators/apply-service-decorators.js.map +1 -0
- package/dist/lit/decorators/index.d.ts +3 -0
- package/dist/lit/decorators/index.js +25 -0
- package/dist/lit/decorators/index.js.map +1 -0
- package/dist/lit/decorators/require-service.d.ts +1 -0
- package/dist/lit/decorators/require-service.js +13 -0
- package/dist/lit/decorators/require-service.js.map +1 -0
- package/dist/lit/elements/index.js +4 -0
- package/dist/lit/elements/index.js.map +1 -0
- package/dist/lit/elements/service-application.d.ts +8 -0
- package/dist/lit/elements/service-application.js +27 -0
- package/dist/lit/elements/service-application.js.map +1 -0
- package/dist/lit/elements/service-context.d.ts +1 -0
- package/dist/lit/elements/service-context.js +3 -0
- package/dist/lit/elements/service-context.js.map +1 -0
- package/dist/lit/elements/service-element.d.ts +6 -0
- package/dist/lit/elements/service-element.js +22 -0
- package/dist/lit/elements/service-element.js.map +1 -0
- package/dist/lit/hooks/component/component.d.ts +9 -0
- package/dist/lit/hooks/component/component.js +2 -0
- package/dist/lit/hooks/component/component.js.map +1 -0
- package/dist/lit/hooks/component/stack.d.ts +6 -0
- package/dist/lit/hooks/component/stack.js +15 -0
- package/dist/lit/hooks/component/stack.js.map +1 -0
- package/dist/lit/hooks/index.js +14 -0
- package/dist/lit/hooks/index.js.map +1 -0
- package/dist/lit/hooks/use-connected.d.ts +2 -0
- package/dist/lit/hooks/use-connected.js +31 -0
- package/dist/lit/hooks/use-connected.js.map +1 -0
- package/dist/lit/hooks/use-effect.d.ts +3 -0
- package/dist/lit/hooks/use-effect.js +13 -0
- package/dist/lit/hooks/use-effect.js.map +1 -0
- package/dist/lit/hooks/use-element.d.ts +4 -0
- package/dist/lit/hooks/use-element.js +8 -0
- package/dist/lit/hooks/use-element.js.map +1 -0
- package/dist/lit/hooks/use-memo.d.ts +1 -0
- package/dist/lit/hooks/use-memo.js +12 -0
- package/dist/lit/hooks/use-memo.js.map +1 -0
- package/dist/lit/hooks/use-observable-values.d.ts +5 -0
- package/dist/lit/hooks/use-observable-values.js +8 -0
- package/dist/lit/hooks/use-observable-values.js.map +1 -0
- package/dist/lit/hooks/use-observable.d.ts +2 -0
- package/dist/lit/hooks/use-observable.js +12 -0
- package/dist/lit/hooks/use-observable.js.map +1 -0
- package/dist/lit/hooks/use-ref.d.ts +3 -0
- package/dist/lit/hooks/use-ref.js +6 -0
- package/dist/lit/hooks/use-ref.js.map +1 -0
- package/dist/lit/hooks/use-resize-observer.d.ts +10 -0
- package/dist/lit/hooks/use-resize-observer.js +20 -0
- package/dist/lit/hooks/use-resize-observer.js.map +1 -0
- package/dist/lit/hooks/use-state.d.ts +2 -0
- package/dist/lit/hooks/use-state.js +14 -0
- package/dist/lit/hooks/use-state.js.map +1 -0
- package/dist/lit/hooks/use-window-event.d.ts +1 -0
- package/dist/lit/hooks/use-window-event.js +10 -0
- package/dist/lit/hooks/use-window-event.js.map +1 -0
- package/dist/lit/hooks/with-hooks.d.ts +2 -0
- package/dist/lit/hooks/with-hooks.js +15 -0
- package/dist/lit/hooks/with-hooks.js.map +1 -0
- package/dist/lit/index.js +4 -0
- package/dist/lit/index.js.map +1 -0
- package/dist/mutable-clone.d.ts +5 -0
- package/dist/mutable-clone.js +4 -0
- package/dist/mutable-clone.js.map +1 -0
- package/dist/normalize.d.ts +1 -0
- package/dist/normalize.js +34 -0
- package/dist/normalize.js.map +1 -0
- package/dist/normalize.test.d.ts +1 -0
- package/dist/normalize.test.js +48 -0
- package/dist/normalize.test.js.map +1 -0
- package/dist/observe/create-observable-event.d.ts +10 -0
- package/dist/observe/create-observable-event.js +22 -0
- package/dist/observe/create-observable-event.js.map +1 -0
- package/dist/observe/create-observable-state.d.ts +7 -0
- package/dist/observe/create-observable-state.js +27 -0
- package/dist/observe/create-observable-state.js.map +1 -0
- package/dist/observe/create-persisted-state.d.ts +11 -0
- package/dist/observe/create-persisted-state.js +31 -0
- package/dist/observe/create-persisted-state.js.map +1 -0
- package/dist/observe/create-persisted-state.test.d.ts +1 -0
- package/dist/observe/create-persisted-state.test.js +124 -0
- package/dist/observe/create-persisted-state.test.js.map +1 -0
- package/dist/observe/create-query-state.d.ts +16 -0
- package/dist/observe/create-query-state.js +49 -0
- package/dist/observe/create-query-state.js.map +1 -0
- package/dist/observe/from-array.d.ts +5 -0
- package/dist/observe/from-array.js +30 -0
- package/dist/observe/from-array.js.map +1 -0
- package/dist/observe/from-constant.d.ts +5 -0
- package/dist/observe/from-constant.js +12 -0
- package/dist/observe/from-constant.js.map +1 -0
- package/dist/observe/from-element-id.d.ts +7 -0
- package/dist/observe/from-element-id.js +70 -0
- package/dist/observe/from-element-id.js.map +1 -0
- package/dist/observe/from-element-properties-and-events.d.ts +2 -0
- package/dist/observe/from-element-properties-and-events.js +18 -0
- package/dist/observe/from-element-properties-and-events.js.map +1 -0
- package/dist/observe/from-element-property.d.ts +11 -0
- package/dist/observe/from-element-property.js +60 -0
- package/dist/observe/from-element-property.js.map +1 -0
- package/dist/observe/from-promise-with-error.d.ts +7 -0
- package/dist/observe/from-promise-with-error.js +27 -0
- package/dist/observe/from-promise-with-error.js.map +1 -0
- package/dist/observe/from-promise.d.ts +6 -0
- package/dist/observe/from-promise.js +22 -0
- package/dist/observe/from-promise.js.map +1 -0
- package/dist/observe/from-properties.d.ts +10 -0
- package/dist/observe/from-properties.js +33 -0
- package/dist/observe/from-properties.js.map +1 -0
- package/dist/observe/index.d.ts +30 -0
- package/dist/observe/index.js +52 -0
- package/dist/observe/index.js.map +1 -0
- package/dist/observe/observe.test.d.ts +7 -0
- package/dist/observe/observe.test.js +417 -0
- package/dist/observe/observe.test.js.map +1 -0
- package/dist/observe/to-promise.d.ts +8 -0
- package/dist/observe/to-promise.js +18 -0
- package/dist/observe/to-promise.js.map +1 -0
- package/dist/observe/to-properties.d.ts +11 -0
- package/dist/observe/to-properties.js +9 -0
- package/dist/observe/to-properties.js.map +1 -0
- package/dist/observe/types.d.ts +17 -0
- package/dist/observe/types.js +2 -0
- package/dist/observe/types.js.map +1 -0
- package/dist/observe/with-async-map.d.ts +6 -0
- package/dist/observe/with-async-map.js +12 -0
- package/dist/observe/with-async-map.js.map +1 -0
- package/dist/observe/with-batch.d.ts +7 -0
- package/dist/observe/with-batch.js +43 -0
- package/dist/observe/with-batch.js.map +1 -0
- package/dist/observe/with-batch.test.d.ts +1 -0
- package/dist/observe/with-batch.test.js +111 -0
- package/dist/observe/with-batch.test.js.map +1 -0
- package/dist/observe/with-cache.d.ts +6 -0
- package/dist/observe/with-cache.js +33 -0
- package/dist/observe/with-cache.js.map +1 -0
- package/dist/observe/with-copy.d.ts +5 -0
- package/dist/observe/with-copy.js +10 -0
- package/dist/observe/with-copy.js.map +1 -0
- package/dist/observe/with-deduplicate-data.d.ts +7 -0
- package/dist/observe/with-deduplicate-data.js +18 -0
- package/dist/observe/with-deduplicate-data.js.map +1 -0
- package/dist/observe/with-deduplicate.d.ts +6 -0
- package/dist/observe/with-deduplicate.js +19 -0
- package/dist/observe/with-deduplicate.js.map +1 -0
- package/dist/observe/with-default.d.ts +6 -0
- package/dist/observe/with-default.js +21 -0
- package/dist/observe/with-default.js.map +1 -0
- package/dist/observe/with-lazy.d.ts +7 -0
- package/dist/observe/with-lazy.js +15 -0
- package/dist/observe/with-lazy.js.map +1 -0
- package/dist/observe/with-lazy.test.d.ts +1 -0
- package/dist/observe/with-lazy.test.js +59 -0
- package/dist/observe/with-lazy.test.js.map +1 -0
- package/dist/observe/with-map-data.d.ts +7 -0
- package/dist/observe/with-map-data.js +32 -0
- package/dist/observe/with-map-data.js.map +1 -0
- package/dist/observe/with-map.d.ts +5 -0
- package/dist/observe/with-map.js +11 -0
- package/dist/observe/with-map.js.map +1 -0
- package/dist/observe/with-optional.d.ts +5 -0
- package/dist/observe/with-optional.js +20 -0
- package/dist/observe/with-optional.js.map +1 -0
- package/dist/observe/with-unwrap.d.ts +5 -0
- package/dist/observe/with-unwrap.js +26 -0
- package/dist/observe/with-unwrap.js.map +1 -0
- package/dist/old-ecs/action-ecs/action-ecs.d.ts +19 -0
- package/dist/old-ecs/action-ecs/action-ecs.js +203 -0
- package/dist/old-ecs/action-ecs/action-ecs.js.map +1 -0
- package/dist/old-ecs/action-ecs/action-ecs.test.d.ts +1 -0
- package/dist/old-ecs/action-ecs/action-ecs.test.js +363 -0
- package/dist/old-ecs/action-ecs/action-ecs.test.js.map +1 -0
- package/dist/old-ecs/action-ecs/action-types.d.ts +106 -0
- package/dist/old-ecs/action-ecs/action-types.js +19 -0
- package/dist/old-ecs/action-ecs/action-types.js.map +1 -0
- package/dist/old-ecs/action-ecs/index.d.ts +3 -0
- package/dist/old-ecs/action-ecs/index.js +24 -0
- package/dist/old-ecs/action-ecs/index.js.map +1 -0
- package/dist/old-ecs/action-ecs/sequential-action.d.ts +18 -0
- package/dist/old-ecs/action-ecs/sequential-action.js +45 -0
- package/dist/old-ecs/action-ecs/sequential-action.js.map +1 -0
- package/dist/old-ecs/core-ecs/core-ecs-serialization.test.d.ts +1 -0
- package/dist/old-ecs/core-ecs/core-ecs-serialization.test.js +231 -0
- package/dist/old-ecs/core-ecs/core-ecs-serialization.test.js.map +1 -0
- package/dist/old-ecs/core-ecs/core-ecs-types.d.ts +142 -0
- package/dist/old-ecs/core-ecs/core-ecs-types.js +23 -0
- package/dist/old-ecs/core-ecs/core-ecs-types.js.map +1 -0
- package/dist/old-ecs/core-ecs/core-ecs.d.ts +7 -0
- package/dist/old-ecs/core-ecs/core-ecs.js +492 -0
- package/dist/old-ecs/core-ecs/core-ecs.js.map +1 -0
- package/dist/old-ecs/core-ecs/core-ecs.test.d.ts +1 -0
- package/dist/old-ecs/core-ecs/core-ecs.test.js +426 -0
- package/dist/old-ecs/core-ecs/core-ecs.test.js.map +1 -0
- package/dist/old-ecs/core-ecs/index.d.ts +1 -0
- package/dist/old-ecs/core-ecs/index.js +2 -0
- package/dist/old-ecs/core-ecs/index.js.map +1 -0
- package/dist/old-ecs/ecs/ecs-types.d.ts +133 -0
- package/dist/old-ecs/ecs/ecs-types.js +23 -0
- package/dist/old-ecs/ecs/ecs-types.js.map +1 -0
- package/dist/old-ecs/ecs/ecs-where-functions.d.ts +6 -0
- package/dist/old-ecs/ecs/ecs-where-functions.js +91 -0
- package/dist/old-ecs/ecs/ecs-where-functions.js.map +1 -0
- package/dist/old-ecs/ecs/ecs.d.ts +13 -0
- package/dist/old-ecs/ecs/ecs.js +177 -0
- package/dist/old-ecs/ecs/ecs.js.map +1 -0
- package/dist/old-ecs/ecs/ecs.test.d.ts +1 -0
- package/dist/old-ecs/ecs/ecs.test.js +399 -0
- package/dist/old-ecs/ecs/ecs.test.js.map +1 -0
- package/dist/old-ecs/ecs/index.d.ts +2 -0
- package/dist/old-ecs/ecs/index.js +24 -0
- package/dist/old-ecs/ecs/index.js.map +1 -0
- package/dist/old-ecs/entity.d.ts +8 -0
- package/dist/old-ecs/entity.js +3 -0
- package/dist/old-ecs/entity.js.map +1 -0
- package/dist/old-ecs/index.d.ts +4 -0
- package/dist/old-ecs/index.js +26 -0
- package/dist/old-ecs/index.js.map +1 -0
- package/dist/old-ecs/transaction-ecs/index.d.ts +2 -0
- package/dist/old-ecs/transaction-ecs/index.js +24 -0
- package/dist/old-ecs/transaction-ecs/index.js.map +1 -0
- package/dist/old-ecs/transaction-ecs/transaction-ecs.d.ts +11 -0
- package/dist/old-ecs/transaction-ecs/transaction-ecs.js +184 -0
- package/dist/old-ecs/transaction-ecs/transaction-ecs.js.map +1 -0
- package/dist/old-ecs/transaction-ecs/transaction-ecs.test.d.ts +1 -0
- package/dist/old-ecs/transaction-ecs/transaction-ecs.test.js +599 -0
- package/dist/old-ecs/transaction-ecs/transaction-ecs.test.js.map +1 -0
- package/dist/old-ecs/transaction-ecs/transaction-types.d.ts +136 -0
- package/dist/old-ecs/transaction-ecs/transaction-types.js +2 -0
- package/dist/old-ecs/transaction-ecs/transaction-types.js.map +1 -0
- package/dist/old-ecs/transaction-ecs/transactions.d.ts +5 -0
- package/dist/old-ecs/transaction-ecs/transactions.js +158 -0
- package/dist/old-ecs/transaction-ecs/transactions.js.map +1 -0
- package/dist/package.json +129 -0
- package/dist/perftest/ecs-perf.d.ts +49 -0
- package/dist/perftest/ecs-perf.js +230 -0
- package/dist/perftest/ecs-perf.js.map +1 -0
- package/dist/perftest/helper-functions.d.ts +1 -0
- package/dist/perftest/helper-functions.js +31 -0
- package/dist/perftest/helper-functions.js.map +1 -0
- package/dist/perftest/horizon-perf.d.ts +22 -0
- package/dist/perftest/horizon-perf.js +126 -0
- package/dist/perftest/horizon-perf.js.map +1 -0
- package/dist/perftest/index.d.ts +1 -0
- package/dist/perftest/index.js +35 -0
- package/dist/perftest/index.js.map +1 -0
- package/dist/perftest/perf-test.d.ts +18 -0
- package/dist/perftest/perf-test.js +124 -0
- package/dist/perftest/perf-test.js.map +1 -0
- package/dist/perftest/vanilla-perf.d.ts +38 -0
- package/dist/perftest/vanilla-perf.js +128 -0
- package/dist/perftest/vanilla-perf.js.map +1 -0
- package/dist/schema/boolean.d.ts +3 -0
- package/dist/schema/boolean.js +4 -0
- package/dist/schema/boolean.js.map +1 -0
- package/dist/schema/dynamic/deep-merge.d.ts +23 -0
- package/dist/schema/dynamic/deep-merge.js +45 -0
- package/dist/schema/dynamic/deep-merge.js.map +1 -0
- package/dist/schema/dynamic/deep-merge.test.d.ts +1 -0
- package/dist/schema/dynamic/deep-merge.test.js +94 -0
- package/dist/schema/dynamic/deep-merge.test.js.map +1 -0
- package/dist/schema/dynamic/enumerate-patches.d.ts +9 -0
- package/dist/schema/dynamic/enumerate-patches.js +50 -0
- package/dist/schema/dynamic/enumerate-patches.js.map +1 -0
- package/dist/schema/dynamic/enumerate-patches.test.d.ts +134 -0
- package/dist/schema/dynamic/enumerate-patches.test.js +230 -0
- package/dist/schema/dynamic/enumerate-patches.test.js.map +1 -0
- package/dist/schema/dynamic/get-dynamic-schema.d.ts +5 -0
- package/dist/schema/dynamic/get-dynamic-schema.js +47 -0
- package/dist/schema/dynamic/get-dynamic-schema.js.map +1 -0
- package/dist/schema/dynamic/get-dynamic-schema.test.d.ts +1 -0
- package/dist/schema/dynamic/get-dynamic-schema.test.js +115 -0
- package/dist/schema/dynamic/get-dynamic-schema.test.js.map +1 -0
- package/dist/schema/dynamic/index.d.ts +1 -0
- package/dist/schema/dynamic/index.js +23 -0
- package/dist/schema/dynamic/index.js.map +1 -0
- package/dist/schema/f32.d.ts +6 -0
- package/dist/schema/f32.js +6 -0
- package/dist/schema/f32.js.map +1 -0
- package/dist/schema/i32.d.ts +7 -0
- package/dist/schema/i32.js +7 -0
- package/dist/schema/i32.js.map +1 -0
- package/dist/schema/index.d.ts +10 -0
- package/dist/schema/index.js +30 -0
- package/dist/schema/index.js.map +1 -0
- package/dist/schema/nullable.d.ts +6 -0
- package/dist/schema/nullable.js +6 -0
- package/dist/schema/nullable.js.map +1 -0
- package/dist/schema/schema.d.ts +122 -0
- package/dist/schema/schema.js +33 -0
- package/dist/schema/schema.js.map +1 -0
- package/dist/schema/time.d.ts +7 -0
- package/dist/schema/time.js +3 -0
- package/dist/schema/time.js.map +1 -0
- package/dist/schema/true.d.ts +6 -0
- package/dist/schema/true.js +2 -0
- package/dist/schema/true.js.map +1 -0
- package/dist/schema/tuple.d.ts +7 -0
- package/dist/schema/tuple.js +4 -0
- package/dist/schema/tuple.js.map +1 -0
- package/dist/schema/u32.d.ts +7 -0
- package/dist/schema/u32.js +7 -0
- package/dist/schema/u32.js.map +1 -0
- package/dist/schema/validation/is-valid.d.ts +2 -0
- package/dist/schema/validation/is-valid.js +11 -0
- package/dist/schema/validation/is-valid.js.map +1 -0
- package/dist/schema/validation/is-valid.test.d.ts +1 -0
- package/dist/schema/validation/is-valid.test.js +40 -0
- package/dist/schema/validation/is-valid.test.js.map +1 -0
- package/dist/schema/validation/validate.d.ts +2 -0
- package/dist/schema/validation/validate.js +38 -0
- package/dist/schema/validation/validate.js.map +1 -0
- package/dist/schema/validation/validate.test.d.ts +1 -0
- package/dist/schema/validation/validate.test.js +106 -0
- package/dist/schema/validation/validate.test.js.map +1 -0
- package/dist/schema/validation/with-validation.d.ts +5 -0
- package/dist/schema/validation/with-validation.js +16 -0
- package/dist/schema/validation/with-validation.js.map +1 -0
- package/dist/schema/validation/with-validation.test.d.ts +1 -0
- package/dist/schema/validation/with-validation.test.js +96 -0
- package/dist/schema/validation/with-validation.test.js.map +1 -0
- package/dist/schema.test.d.ts +1 -0
- package/dist/schema.test.js +16 -0
- package/dist/schema.test.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/add-observable-actions.d.ts +29 -0
- package/dist/service/add-observable-actions.js +108 -0
- package/dist/service/add-observable-actions.js.map +1 -0
- package/dist/service/index.d.ts +4 -0
- package/dist/service/index.js +25 -0
- package/dist/service/index.js.map +1 -0
- package/dist/service/is-service.d.ts +2 -0
- package/dist/service/is-service.js +5 -0
- package/dist/service/is-service.js.map +1 -0
- package/dist/service/progressive-result.d.ts +96 -0
- package/dist/service/progressive-result.js +99 -0
- package/dist/service/progressive-result.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/service/service.d.ts +4 -0
- package/dist/service/service.js +23 -0
- package/dist/service/service.js.map +1 -0
- package/dist/table/add-row.d.ts +8 -0
- package/dist/table/add-row.js +40 -0
- package/dist/table/add-row.js.map +1 -0
- package/dist/table/create-table.d.ts +3 -0
- package/dist/table/create-table.js +33 -0
- package/dist/table/create-table.js.map +1 -0
- package/dist/table/delete-row.d.ts +9 -0
- package/dist/table/delete-row.js +18 -0
- package/dist/table/delete-row.js.map +1 -0
- package/dist/table/ensure-capacity.d.ts +2 -0
- package/dist/table/ensure-capacity.js +15 -0
- package/dist/table/ensure-capacity.js.map +1 -0
- package/dist/table/get-row-data.d.ts +3 -0
- package/dist/table/get-row-data.js +8 -0
- package/dist/table/get-row-data.js.map +1 -0
- package/dist/table/index.d.ts +8 -0
- package/dist/table/index.js +30 -0
- package/dist/table/index.js.map +1 -0
- package/dist/table/row-index.d.ts +8 -0
- package/dist/table/row-index.js +3 -0
- package/dist/table/row-index.js.map +1 -0
- package/dist/table/table.d.ts +13 -0
- package/dist/table/table.js +2 -0
- package/dist/table/table.js.map +1 -0
- package/dist/table/update-row.d.ts +8 -0
- package/dist/table/update-row.js +12 -0
- package/dist/table/update-row.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/dist/typed-buffer/copy-to-gpu-buffer.d.ts +2 -0
- package/dist/typed-buffer/copy-to-gpu-buffer.js +16 -0
- package/dist/typed-buffer/copy-to-gpu-buffer.js.map +1 -0
- package/dist/typed-buffer/create-array-buffer.d.ts +4 -0
- package/dist/typed-buffer/create-array-buffer.js +29 -0
- package/dist/typed-buffer/create-array-buffer.js.map +1 -0
- package/dist/typed-buffer/create-number-buffer.d.ts +8 -0
- package/dist/typed-buffer/create-number-buffer.js +75 -0
- package/dist/typed-buffer/create-number-buffer.js.map +1 -0
- package/dist/typed-buffer/create-struct-buffer.d.ts +10 -0
- package/dist/typed-buffer/create-struct-buffer.js +78 -0
- package/dist/typed-buffer/create-struct-buffer.js.map +1 -0
- package/dist/typed-buffer/create-typed-buffer.d.ts +7 -0
- package/dist/typed-buffer/create-typed-buffer.js +17 -0
- package/dist/typed-buffer/create-typed-buffer.js.map +1 -0
- package/dist/typed-buffer/index.d.ts +5 -0
- package/dist/typed-buffer/index.js +27 -0
- package/dist/typed-buffer/index.js.map +1 -0
- package/dist/typed-buffer/structs/assert-struct.d.ts +8 -0
- package/dist/typed-buffer/structs/assert-struct.js +15 -0
- package/dist/typed-buffer/structs/assert-struct.js.map +1 -0
- package/dist/typed-buffer/structs/create-read-struct.d.ts +3 -0
- package/dist/typed-buffer/structs/create-read-struct.js +62 -0
- package/dist/typed-buffer/structs/create-read-struct.js.map +1 -0
- package/dist/typed-buffer/structs/create-read-struct.test.d.ts +1 -0
- package/dist/typed-buffer/structs/create-read-struct.test.js +189 -0
- package/dist/typed-buffer/structs/create-read-struct.test.js.map +1 -0
- package/dist/typed-buffer/structs/create-write-struct.d.ts +3 -0
- package/dist/typed-buffer/structs/create-write-struct.js +58 -0
- package/dist/typed-buffer/structs/create-write-struct.js.map +1 -0
- package/dist/typed-buffer/structs/get-field-offset.d.ts +2 -0
- package/dist/typed-buffer/structs/get-field-offset.js +14 -0
- package/dist/typed-buffer/structs/get-field-offset.js.map +1 -0
- package/dist/typed-buffer/structs/get-struct-layout.d.ts +5 -0
- package/dist/typed-buffer/structs/get-struct-layout.js +198 -0
- package/dist/typed-buffer/structs/get-struct-layout.js.map +1 -0
- package/dist/typed-buffer/structs/get-struct-layout.test.d.ts +1 -0
- package/dist/typed-buffer/structs/get-struct-layout.test.js +133 -0
- package/dist/typed-buffer/structs/get-struct-layout.test.js.map +1 -0
- package/dist/typed-buffer/structs/index.d.ts +1 -0
- package/dist/typed-buffer/structs/index.js +23 -0
- package/dist/typed-buffer/structs/index.js.map +1 -0
- package/dist/typed-buffer/structs/read-struct.d.ts +2 -0
- package/dist/typed-buffer/structs/read-struct.js +2 -0
- package/dist/typed-buffer/structs/read-struct.js.map +1 -0
- package/dist/typed-buffer/structs/struct-layout.d.ts +21 -0
- package/dist/typed-buffer/structs/struct-layout.js +23 -0
- package/dist/typed-buffer/structs/struct-layout.js.map +1 -0
- package/dist/typed-buffer/structs/write-struct.d.ts +2 -0
- package/dist/typed-buffer/structs/write-struct.js +2 -0
- package/dist/typed-buffer/structs/write-struct.js.map +1 -0
- package/dist/typed-buffer/structs/write-struct.test.d.ts +1 -0
- package/dist/typed-buffer/structs/write-struct.test.js +181 -0
- package/dist/typed-buffer/structs/write-struct.test.js.map +1 -0
- package/dist/typed-buffer/typed-buffer.d.ts +16 -0
- package/dist/typed-buffer/typed-buffer.js +2 -0
- package/dist/typed-buffer/typed-buffer.js.map +1 -0
- package/dist/typed-buffer/typed-buffer.test.d.ts +1 -0
- package/dist/typed-buffer/typed-buffer.test.js +223 -0
- package/dist/typed-buffer/typed-buffer.test.js.map +1 -0
- package/dist/types/assert.d.ts +1 -0
- package/dist/types/assert.js +2 -0
- package/dist/types/assert.js.map +1 -0
- package/dist/types/equal.d.ts +1 -0
- package/dist/types/equal.js +2 -0
- package/dist/types/equal.js.map +1 -0
- package/dist/types/index.d.ts +3 -0
- package/dist/types/index.js +25 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/types.d.ts +51 -0
- package/dist/types/types.js +27 -0
- package/dist/types/types.js.map +1 -0
- package/package.json +6 -1
- package/.cursorrules +0 -28
- package/.eslintrc.cjs +0 -48
- package/.github/CONTRIBUTING.md +0 -47
- package/CODE_OF_CONDUCT.md +0 -79
- package/asconfig.json +0 -22
- package/assembly/index.ts +0 -85
- package/assembly/tsconfig.json +0 -17
- package/c/build_run.sh +0 -2
- package/c/vector_addition +0 -0
- package/c/vector_addition.c +0 -125
- package/config/license.js +0 -21
- package/docs/perftest.html +0 -28
- package/index.html +0 -10
- package/scripts/deploy-docs.sh +0 -41
- package/src/assembly-test/assembly.test.ts +0 -29
- package/src/cache/async-cache.ts +0 -38
- package/src/cache/blob-store.test.ts +0 -176
- package/src/cache/blob-store.ts +0 -278
- package/src/cache/data-cache.test.ts +0 -61
- package/src/cache/data-cache.ts +0 -183
- package/src/cache/expiring-data-cache.test.ts +0 -81
- package/src/cache/expiring-data-cache.ts +0 -61
- package/src/cache/fallback-async-cache.ts +0 -49
- package/src/cache/functions/async-data-function.ts +0 -25
- package/src/cache/functions/functions.test.ts +0 -84
- package/src/cache/functions/get-cached.test.ts +0 -113
- package/src/cache/functions/get-cached.ts +0 -55
- package/src/cache/functions/hashing/blob-to-hash.ts +0 -46
- package/src/cache/functions/hashing/buffer-to-hash.ts +0 -33
- package/src/cache/functions/hashing/hashing.test.ts +0 -95
- package/src/cache/functions/hashing/index.ts +0 -26
- package/src/cache/functions/hashing/json-to-hash.ts +0 -29
- package/src/cache/functions/hashing/string-to-hash.ts +0 -38
- package/src/cache/functions/index.ts +0 -27
- package/src/cache/functions/memoize.ts +0 -55
- package/src/cache/functions/prevent-parallel-execution.ts +0 -50
- package/src/cache/get-persistent-cache.ts +0 -62
- package/src/cache/index.ts +0 -31
- package/src/cache/managed-array.ts +0 -243
- package/src/cache/managed-async-cache.browser.test.ts +0 -53
- package/src/cache/managed-async-cache.ts +0 -78
- package/src/cache/memory-allocator.ts +0 -176
- package/src/cache/memory-async-cache.ts +0 -51
- package/src/data.ts +0 -38
- package/src/ecs/README.md +0 -21
- package/src/ecs/archetype/archetype.ts +0 -39
- package/src/ecs/archetype/create-archetype.test.ts +0 -115
- package/src/ecs/archetype/create-archetype.ts +0 -52
- package/src/ecs/archetype/delete-row.test.ts +0 -110
- package/src/ecs/archetype/delete-row.ts +0 -37
- package/src/ecs/archetype/index.ts +0 -24
- package/src/ecs/component-schemas.ts +0 -24
- package/src/ecs/core-components.ts +0 -443
- package/src/ecs/database/create-database.test.ts +0 -745
- package/src/ecs/database/create-database.ts +0 -205
- package/src/ecs/database/database.ts +0 -81
- package/src/ecs/database/index.ts +0 -24
- package/src/ecs/database/observe-dependent-value.test.ts +0 -198
- package/src/ecs/database/observe-dependent-value.ts +0 -78
- package/src/ecs/database/transactional-store/create-transactional-store.test.ts +0 -250
- package/src/ecs/database/transactional-store/create-transactional-store.ts +0 -281
- package/src/ecs/database/transactional-store/index.ts +0 -22
- package/src/ecs/database/transactional-store/transactional-store.ts +0 -80
- package/src/ecs/entity-location-table/create-entity-location-table.test.ts +0 -170
- package/src/ecs/entity-location-table/create-entity-location-table.ts +0 -96
- package/src/ecs/entity-location-table/entity-location-table.ts +0 -30
- package/src/ecs/entity-location-table/entity-location.ts +0 -34
- package/src/ecs/entity-location-table/index.ts +0 -23
- package/src/ecs/entity.ts +0 -26
- package/src/ecs/index.ts +0 -26
- package/src/ecs/store/core/core.ts +0 -71
- package/src/ecs/store/core/create-core.test.ts +0 -440
- package/src/ecs/store/core/create-core.ts +0 -168
- package/src/ecs/store/core/index.ts +0 -22
- package/src/ecs/store/create-store.test.ts +0 -562
- package/src/ecs/store/create-store.ts +0 -97
- package/src/ecs/store/index.ts +0 -23
- package/src/ecs/store/resource-components.ts +0 -23
- package/src/ecs/store/store.ts +0 -55
- package/src/equals-shallow.test.ts +0 -133
- package/src/equals-shallow.ts +0 -37
- package/src/equals.test.ts +0 -175
- package/src/equals.ts +0 -70
- package/src/index.ts +0 -27
- package/src/internal/array-buffer-like/copy.ts +0 -469
- package/src/internal/array-buffer-like/grow.ts +0 -53
- package/src/internal/array-buffer-like/index.ts +0 -25
- package/src/internal/array-buffer-like/is-array-buffer.ts +0 -445
- package/src/internal/array-buffer-like/is-shared-array-buffer.ts +0 -445
- package/src/internal/async-generator/is-async-generator.ts +0 -25
- package/src/internal/data-view-32/create-data-view-32.ts +0 -30
- package/src/internal/data-view-32/data-view-32.ts +0 -447
- package/src/internal/data-view-32/index.ts +0 -23
- package/src/internal/function/memoize-factory.ts +0 -12
- package/src/internal/object/index.ts +0 -23
- package/src/internal/object/map-entries.ts +0 -28
- package/src/internal/promise/is-promise.ts +0 -28
- package/src/internal/typed-array/get-byte-size.ts +0 -50
- package/src/internal/typed-array/index.ts +0 -24
- package/src/internal/typed-array/typed-array-constructer.ts +0 -32
- package/src/internal/typed-array/typed-array.ts +0 -25
- package/src/is-data.ts +0 -47
- package/src/lit/decorators/apply-decorator.ts +0 -24
- package/src/lit/decorators/apply-service-decorators.ts +0 -13
- package/src/lit/decorators/index.ts +0 -24
- package/src/lit/decorators/require-service.ts +0 -19
- package/src/lit/elements/service-application.ts +0 -26
- package/src/lit/elements/service-context.ts +0 -3
- package/src/lit/elements/service-element.ts +0 -18
- package/src/lit/hooks/component/component.ts +0 -10
- package/src/lit/hooks/component/stack.ts +0 -17
- package/src/lit/hooks/use-connected.ts +0 -39
- package/src/lit/hooks/use-effect.ts +0 -17
- package/src/lit/hooks/use-element.ts +0 -8
- package/src/lit/hooks/use-memo.ts +0 -14
- package/src/lit/hooks/use-observable-values.ts +0 -9
- package/src/lit/hooks/use-observable.ts +0 -13
- package/src/lit/hooks/use-ref.ts +0 -6
- package/src/lit/hooks/use-resize-observer.ts +0 -27
- package/src/lit/hooks/use-state.ts +0 -17
- package/src/lit/hooks/use-window-event.ts +0 -14
- package/src/lit/hooks/with-hooks.ts +0 -20
- package/src/mutable-clone.ts +0 -29
- package/src/normalize.test.ts +0 -48
- package/src/normalize.ts +0 -37
- package/src/observe/create-observable-event.ts +0 -47
- package/src/observe/create-observable-state.ts +0 -51
- package/src/observe/create-persisted-state.test.ts +0 -143
- package/src/observe/create-persisted-state.ts +0 -60
- package/src/observe/create-query-state.ts +0 -70
- package/src/observe/from-array.ts +0 -41
- package/src/observe/from-constant.ts +0 -35
- package/src/observe/from-element-id.ts +0 -75
- package/src/observe/from-element-properties-and-events.ts +0 -47
- package/src/observe/from-element-property.ts +0 -68
- package/src/observe/from-promise-with-error.ts +0 -51
- package/src/observe/from-promise.ts +0 -49
- package/src/observe/from-properties.ts +0 -67
- package/src/observe/index.ts +0 -52
- package/src/observe/observe.test.ts +0 -467
- package/src/observe/to-promise.ts +0 -40
- package/src/observe/to-properties.ts +0 -41
- package/src/observe/types.ts +0 -40
- package/src/observe/with-async-map.ts +0 -37
- package/src/observe/with-batch.test.ts +0 -141
- package/src/observe/with-batch.ts +0 -67
- package/src/observe/with-cache.ts +0 -58
- package/src/observe/with-copy.ts +0 -32
- package/src/observe/with-deduplicate-data.ts +0 -43
- package/src/observe/with-deduplicate.ts +0 -41
- package/src/observe/with-default.ts +0 -48
- package/src/observe/with-lazy.test.ts +0 -68
- package/src/observe/with-lazy.ts +0 -38
- package/src/observe/with-map-data.ts +0 -38
- package/src/observe/with-map.ts +0 -36
- package/src/observe/with-optional.ts +0 -47
- package/src/observe/with-unwrap.ts +0 -54
- package/src/old-ecs/action-ecs/action-ecs.test.ts +0 -420
- package/src/old-ecs/action-ecs/action-ecs.ts +0 -274
- package/src/old-ecs/action-ecs/action-types.ts +0 -178
- package/src/old-ecs/action-ecs/index.ts +0 -29
- package/src/old-ecs/action-ecs/sequential-action.ts +0 -60
- package/src/old-ecs/core-ecs/core-ecs-serialization.test.ts +0 -244
- package/src/old-ecs/core-ecs/core-ecs-types.ts +0 -183
- package/src/old-ecs/core-ecs/core-ecs.test.ts +0 -474
- package/src/old-ecs/core-ecs/core-ecs.ts +0 -640
- package/src/old-ecs/core-ecs/index.ts +0 -30
- package/src/old-ecs/ecs/ecs-types.ts +0 -189
- package/src/old-ecs/ecs/ecs-where-functions.ts +0 -95
- package/src/old-ecs/ecs/ecs.test.ts +0 -461
- package/src/old-ecs/ecs/ecs.ts +0 -279
- package/src/old-ecs/ecs/index.ts +0 -23
- package/src/old-ecs/entity.ts +0 -26
- package/src/old-ecs/index.ts +0 -26
- package/src/old-ecs/transaction-ecs/index.ts +0 -23
- package/src/old-ecs/transaction-ecs/transaction-ecs.test.ts +0 -725
- package/src/old-ecs/transaction-ecs/transaction-ecs.ts +0 -283
- package/src/old-ecs/transaction-ecs/transaction-types.ts +0 -248
- package/src/old-ecs/transaction-ecs/transactions.ts +0 -243
- package/src/perftest/ecs-perf.ts +0 -255
- package/src/perftest/helper-functions.ts +0 -31
- package/src/perftest/horizon-perf.ts +0 -132
- package/src/perftest/index.ts +0 -37
- package/src/perftest/perf-test.ts +0 -193
- package/src/perftest/perf.md +0 -90
- package/src/perftest/vanilla-perf.ts +0 -136
- package/src/schema/boolean.ts +0 -5
- package/src/schema/dynamic/deep-merge.test.ts +0 -100
- package/src/schema/dynamic/deep-merge.ts +0 -67
- package/src/schema/dynamic/enumerate-patches.test.ts +0 -235
- package/src/schema/dynamic/enumerate-patches.ts +0 -90
- package/src/schema/dynamic/get-dynamic-schema.test.ts +0 -129
- package/src/schema/dynamic/get-dynamic-schema.ts +0 -48
- package/src/schema/dynamic/index.ts +0 -22
- package/src/schema/f32.ts +0 -30
- package/src/schema/i32.ts +0 -31
- package/src/schema/index.ts +0 -32
- package/src/schema/nullable.ts +0 -32
- package/src/schema/schema.ts +0 -229
- package/src/schema/time.ts +0 -5
- package/src/schema/true.ts +0 -26
- package/src/schema/tuple.ts +0 -5
- package/src/schema/u32.ts +0 -31
- package/src/schema/validation/is-valid.test.ts +0 -43
- package/src/schema/validation/is-valid.ts +0 -32
- package/src/schema/validation/validate.test.ts +0 -120
- package/src/schema/validation/validate.ts +0 -41
- package/src/schema/validation/with-validation.test.ts +0 -112
- package/src/schema/validation/with-validation.ts +0 -42
- package/src/schema.test.ts +0 -55
- package/src/service/add-observable-actions.ts +0 -207
- package/src/service/index.ts +0 -26
- package/src/service/is-service.ts +0 -7
- package/src/service/progressive-result.ts +0 -141
- package/src/service/service.ts +0 -27
- package/src/table/add-row.ts +0 -42
- package/src/table/create-table.ts +0 -36
- package/src/table/delete-row.ts +0 -42
- package/src/table/ensure-capacity.ts +0 -37
- package/src/table/get-row-data.ts +0 -31
- package/src/table/index.ts +0 -29
- package/src/table/row-index.ts +0 -26
- package/src/table/table.ts +0 -32
- package/src/table/update-row.ts +0 -35
- package/src/tsconfig.json +0 -6
- package/src/typed-buffer/copy-to-gpu-buffer.ts +0 -23
- package/src/typed-buffer/create-array-buffer.ts +0 -55
- package/src/typed-buffer/create-number-buffer.ts +0 -90
- package/src/typed-buffer/create-struct-buffer.ts +0 -93
- package/src/typed-buffer/create-typed-buffer.ts +0 -49
- package/src/typed-buffer/index.ts +0 -26
- package/src/typed-buffer/structs/assert-struct.ts +0 -37
- package/src/typed-buffer/structs/create-read-struct.test.ts +0 -202
- package/src/typed-buffer/structs/create-read-struct.ts +0 -77
- package/src/typed-buffer/structs/create-write-struct.ts +0 -73
- package/src/typed-buffer/structs/get-field-offset.ts +0 -36
- package/src/typed-buffer/structs/get-struct-layout.test.ts +0 -146
- package/src/typed-buffer/structs/get-struct-layout.ts +0 -222
- package/src/typed-buffer/structs/index.ts +0 -22
- package/src/typed-buffer/structs/read-struct.ts +0 -25
- package/src/typed-buffer/structs/struct-layout.ts +0 -465
- package/src/typed-buffer/structs/write-struct.test.ts +0 -195
- package/src/typed-buffer/structs/write-struct.ts +0 -25
- package/src/typed-buffer/typed-buffer.test.ts +0 -253
- package/src/typed-buffer/typed-buffer.ts +0 -41
- package/src/types/assert.ts +0 -22
- package/src/types/equal.ts +0 -24
- package/src/types/index.ts +0 -25
- package/src/types/types.ts +0 -166
- package/tsconfig-base.json +0 -25
- package/tsconfig.json +0 -8
- package/typedoc.json +0 -22
- package/vite.config.js +0 -16
- /package/{src/lit/elements/index.ts → dist/lit/elements/index.d.ts} +0 -0
- /package/{src/lit/hooks/index.ts → dist/lit/hooks/index.d.ts} +0 -0
- /package/{src/lit/index.ts → dist/lit/index.d.ts} +0 -0
|
@@ -0,0 +1,230 @@
|
|
|
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 { createECS } from "../old-ecs/index.js";
|
|
23
|
+
import { F32Schema, TrueSchema, U32Schema } from "../schema/index.js";
|
|
24
|
+
import * as assembly from "../../dist/assembly/index.js";
|
|
25
|
+
import { createWasmMemoryAllocator } from "../cache/memory-allocator.js";
|
|
26
|
+
// const COUNT = 1_000_000;
|
|
27
|
+
// const SIZEOF_F32 = 4;
|
|
28
|
+
// const SIZEOF_BOOLEAN = 1;
|
|
29
|
+
// const OBJECT_OVERHEAD = 16;
|
|
30
|
+
// // Expected 50 Mb
|
|
31
|
+
// const EXPECTED_MEMORY = (8 * SIZEOF_F32 + 2 * SIZEOF_BOOLEAN + OBJECT_OVERHEAD) * COUNT;
|
|
32
|
+
function createECSWithParticles(count, batch = true) {
|
|
33
|
+
const ecs = createECS({
|
|
34
|
+
allocator: createWasmMemoryAllocator(assembly.memory),
|
|
35
|
+
})
|
|
36
|
+
.withComponents({
|
|
37
|
+
color: U32Schema,
|
|
38
|
+
enabled: TrueSchema,
|
|
39
|
+
mass: F32Schema,
|
|
40
|
+
positionX: F32Schema,
|
|
41
|
+
positionY: F32Schema,
|
|
42
|
+
positionZ: F32Schema,
|
|
43
|
+
velocityX: F32Schema,
|
|
44
|
+
velocityY: F32Schema,
|
|
45
|
+
velocityZ: F32Schema,
|
|
46
|
+
visible: TrueSchema,
|
|
47
|
+
})
|
|
48
|
+
.withArchetypes({
|
|
49
|
+
VisibleEnabled: [
|
|
50
|
+
"id",
|
|
51
|
+
"color",
|
|
52
|
+
"enabled",
|
|
53
|
+
"mass",
|
|
54
|
+
"positionX",
|
|
55
|
+
"positionY",
|
|
56
|
+
"positionZ",
|
|
57
|
+
"velocityX",
|
|
58
|
+
"velocityY",
|
|
59
|
+
"velocityZ",
|
|
60
|
+
"visible",
|
|
61
|
+
],
|
|
62
|
+
InvisibleEnabled: [
|
|
63
|
+
"id",
|
|
64
|
+
"color",
|
|
65
|
+
"enabled",
|
|
66
|
+
"mass",
|
|
67
|
+
"positionX",
|
|
68
|
+
"positionY",
|
|
69
|
+
"positionZ",
|
|
70
|
+
"velocityX",
|
|
71
|
+
"velocityY",
|
|
72
|
+
"velocityZ",
|
|
73
|
+
],
|
|
74
|
+
VisibleDisabled: [
|
|
75
|
+
"id",
|
|
76
|
+
"color",
|
|
77
|
+
"mass",
|
|
78
|
+
"positionX",
|
|
79
|
+
"positionY",
|
|
80
|
+
"positionZ",
|
|
81
|
+
"velocityX",
|
|
82
|
+
"velocityY",
|
|
83
|
+
"velocityZ",
|
|
84
|
+
"visible",
|
|
85
|
+
],
|
|
86
|
+
InvisibleDisabled: [
|
|
87
|
+
"id",
|
|
88
|
+
"color",
|
|
89
|
+
"mass",
|
|
90
|
+
"positionX",
|
|
91
|
+
"positionY",
|
|
92
|
+
"positionZ",
|
|
93
|
+
"velocityX",
|
|
94
|
+
"velocityY",
|
|
95
|
+
"velocityZ",
|
|
96
|
+
]
|
|
97
|
+
});
|
|
98
|
+
const particle_archetypes = [
|
|
99
|
+
ecs.archetypes.VisibleEnabled,
|
|
100
|
+
ecs.archetypes.VisibleDisabled,
|
|
101
|
+
ecs.archetypes.InvisibleEnabled,
|
|
102
|
+
ecs.archetypes.InvisibleDisabled,
|
|
103
|
+
];
|
|
104
|
+
if (batch) {
|
|
105
|
+
const particle_count_per_table = Math.ceil(count / 4);
|
|
106
|
+
const particle_tables = particle_archetypes.map(archetype => ecs.createBatch(archetype, particle_count_per_table));
|
|
107
|
+
for (let tableIndex = 0; tableIndex < particle_tables.length; tableIndex++) {
|
|
108
|
+
const table = particle_tables[tableIndex];
|
|
109
|
+
const positionX = table.columns.positionX.native;
|
|
110
|
+
const positionY = table.columns.positionY.native;
|
|
111
|
+
const positionZ = table.columns.positionZ.native;
|
|
112
|
+
const velocityX = table.columns.velocityX.native;
|
|
113
|
+
const velocityY = table.columns.velocityY.native;
|
|
114
|
+
const velocityZ = table.columns.velocityZ.native;
|
|
115
|
+
const color = table.columns.color.native;
|
|
116
|
+
const mass = table.columns.mass.native;
|
|
117
|
+
for (let k = 0; k < particle_count_per_table; k++) {
|
|
118
|
+
const i = tableIndex + k * 4;
|
|
119
|
+
color[k] = 0xff00ff;
|
|
120
|
+
mass[k] = 10;
|
|
121
|
+
positionX[k] = i + 1;
|
|
122
|
+
positionY[k] = i + 1;
|
|
123
|
+
positionZ[k] = i + 1;
|
|
124
|
+
velocityX[k] = -i;
|
|
125
|
+
velocityY[k] = -i;
|
|
126
|
+
velocityZ[k] = -i;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
else {
|
|
131
|
+
for (let i = 0; i < count; i++) {
|
|
132
|
+
ecs.createEntity(particle_archetypes[i % 4], {
|
|
133
|
+
color: 0xff00ff,
|
|
134
|
+
mass: 10,
|
|
135
|
+
positionX: i + 1,
|
|
136
|
+
positionY: i + 1,
|
|
137
|
+
positionZ: i + 1,
|
|
138
|
+
velocityX: -i,
|
|
139
|
+
velocityY: -i,
|
|
140
|
+
velocityZ: -i,
|
|
141
|
+
visible: (i >> 0) % 2 === 0 ? true : false,
|
|
142
|
+
enabled: (i >> 1) % 2 === 0 ? true : false,
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
return ecs;
|
|
147
|
+
}
|
|
148
|
+
const create = (batch) => {
|
|
149
|
+
let count = 0;
|
|
150
|
+
const setup = async (n) => {
|
|
151
|
+
count = n;
|
|
152
|
+
};
|
|
153
|
+
const run = () => {
|
|
154
|
+
createECSWithParticles(count, batch);
|
|
155
|
+
};
|
|
156
|
+
const cleanup = async () => { };
|
|
157
|
+
return { setup, run: run, cleanup, type: "create" };
|
|
158
|
+
};
|
|
159
|
+
function addManagedArrays(a, b, rows, addWasm) {
|
|
160
|
+
const aptr = a.native.byteOffset.valueOf();
|
|
161
|
+
const bptr = b.native.byteOffset.valueOf();
|
|
162
|
+
addWasm(aptr, bptr, rows);
|
|
163
|
+
}
|
|
164
|
+
function createMoveParticlesPerformanceTest(options) {
|
|
165
|
+
let ecs;
|
|
166
|
+
const setup = async (n) => {
|
|
167
|
+
ecs = createECSWithParticles(n);
|
|
168
|
+
};
|
|
169
|
+
const run = () => {
|
|
170
|
+
let total = 0;
|
|
171
|
+
const addWasm = typeof options.mode === "function" ? options.mode : null;
|
|
172
|
+
for (const table of ecs.getTables(ecs.archetypes.VisibleEnabled, {
|
|
173
|
+
mode: "write",
|
|
174
|
+
})) {
|
|
175
|
+
const { rows, columns } = table;
|
|
176
|
+
total += rows;
|
|
177
|
+
if (addWasm) {
|
|
178
|
+
addManagedArrays(columns.positionX, columns.velocityX, rows, addWasm);
|
|
179
|
+
addManagedArrays(columns.positionY, columns.velocityY, rows, addWasm);
|
|
180
|
+
addManagedArrays(columns.positionZ, columns.velocityZ, rows, addWasm);
|
|
181
|
+
}
|
|
182
|
+
else if (options.mode === "column") {
|
|
183
|
+
const { positionX, positionY, positionZ, velocityX, velocityY, velocityZ, } = columns;
|
|
184
|
+
for (let i = 0; i < rows; i++) {
|
|
185
|
+
positionX.set(i, positionX.get(i) + velocityX.get(i));
|
|
186
|
+
positionY.set(i, positionY.get(i) + velocityY.get(i));
|
|
187
|
+
positionZ.set(i, positionZ.get(i) + velocityZ.get(i));
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
else if (options.mode === "native") {
|
|
191
|
+
const positionX = columns.positionX.native;
|
|
192
|
+
const positionY = columns.positionY.native;
|
|
193
|
+
const positionZ = columns.positionZ.native;
|
|
194
|
+
const velocityX = columns.velocityX.native;
|
|
195
|
+
const velocityY = columns.velocityY.native;
|
|
196
|
+
const velocityZ = columns.velocityZ.native;
|
|
197
|
+
for (let i = 0; i < rows; i++) {
|
|
198
|
+
positionX[i] += velocityX[i];
|
|
199
|
+
positionY[i] += velocityY[i];
|
|
200
|
+
positionZ[i] += velocityZ[i];
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
};
|
|
205
|
+
const getVisibleEnabledPositions = () => {
|
|
206
|
+
const values = [];
|
|
207
|
+
for (const table of ecs.getTables(ecs.archetypes.VisibleEnabled, {
|
|
208
|
+
mode: "read",
|
|
209
|
+
})) {
|
|
210
|
+
const { rows, columns } = table;
|
|
211
|
+
const { positionX, positionY, positionZ } = columns;
|
|
212
|
+
for (let i = 0; i < rows; i++) {
|
|
213
|
+
values.push(positionX.get(i), positionY.get(i), positionZ.get(i));
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
return values;
|
|
217
|
+
};
|
|
218
|
+
const cleanup = async () => { };
|
|
219
|
+
return { setup, run: run, cleanup, getVisibleEnabledPositions, type: "move" };
|
|
220
|
+
}
|
|
221
|
+
export const ec2s = {
|
|
222
|
+
create: create(false),
|
|
223
|
+
create_batch: create(true),
|
|
224
|
+
move_column: createMoveParticlesPerformanceTest({ mode: "column" }),
|
|
225
|
+
move_native: createMoveParticlesPerformanceTest({ mode: "native" }),
|
|
226
|
+
move_wasm: createMoveParticlesPerformanceTest({ mode: assembly.addF32Arrays }),
|
|
227
|
+
move_wasm_simd4: createMoveParticlesPerformanceTest({ mode: assembly.addF32ArraysSimd4 }),
|
|
228
|
+
move_wasm_simd4_unrolled: createMoveParticlesPerformanceTest({ mode: assembly.addF32ArraysSimd4Unrolled }),
|
|
229
|
+
};
|
|
230
|
+
//# sourceMappingURL=ecs-perf.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ecs-perf.js","sourceRoot":"","sources":["../../src/perftest/ecs-perf.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function shuffleArray<T>(array: T[]): T[];
|
|
@@ -0,0 +1,31 @@
|
|
|
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
|
+
export function shuffleArray(array) {
|
|
23
|
+
for (let i = array.length - 1; i > 0; i--) {
|
|
24
|
+
// Generate a random index lower than the current element
|
|
25
|
+
const j = Math.floor(Math.random() * (i + 1));
|
|
26
|
+
// Swap elements at indices i and j
|
|
27
|
+
[array[i], array[j]] = [array[j], array[i]];
|
|
28
|
+
}
|
|
29
|
+
return array;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=helper-functions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helper-functions.js","sourceRoot":"","sources":["../../src/perftest/helper-functions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;WAoBW;AACX,MAAM,UAAU,YAAY,CAAI,KAAU;IACxC,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC1C,yDAAyD;QACzD,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAE9C,mCAAmC;QACnC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9C,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export declare const horizon: {
|
|
2
|
+
create: {
|
|
3
|
+
setup: (n: number) => Promise<void>;
|
|
4
|
+
run: () => void;
|
|
5
|
+
cleanup: () => Promise<void>;
|
|
6
|
+
type: "create";
|
|
7
|
+
};
|
|
8
|
+
move_best: {
|
|
9
|
+
setup: (n: number) => Promise<void>;
|
|
10
|
+
run: () => void;
|
|
11
|
+
cleanup: () => Promise<void>;
|
|
12
|
+
getVisibleEnabledPositions: () => number[];
|
|
13
|
+
type: "move";
|
|
14
|
+
};
|
|
15
|
+
move_worst: {
|
|
16
|
+
setup: (n: number) => Promise<void>;
|
|
17
|
+
run: () => void;
|
|
18
|
+
cleanup: () => Promise<void>;
|
|
19
|
+
getVisibleEnabledPositions: () => number[];
|
|
20
|
+
type: "move";
|
|
21
|
+
};
|
|
22
|
+
};
|
|
@@ -0,0 +1,126 @@
|
|
|
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 { shuffleArray } from "./helper-functions.js";
|
|
23
|
+
function uuidv4() {
|
|
24
|
+
return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function (c) {
|
|
25
|
+
const r = (Math.random() * 16) | 0;
|
|
26
|
+
const v = c === "x" ? r : (r & 0x3) | 0x8;
|
|
27
|
+
return v.toString(16);
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
// uuid-imports.d.ts
|
|
31
|
+
async function createParticles(count) {
|
|
32
|
+
const particlesIds = [];
|
|
33
|
+
const components = new Map();
|
|
34
|
+
const setComponent = (name, key, value) => {
|
|
35
|
+
let component = components.get(name);
|
|
36
|
+
if (!component) {
|
|
37
|
+
component = new Map();
|
|
38
|
+
components.set(name, component);
|
|
39
|
+
}
|
|
40
|
+
component.set(key, value);
|
|
41
|
+
};
|
|
42
|
+
const getComponent = (name, key) => {
|
|
43
|
+
const component = components.get(name);
|
|
44
|
+
if (!component) {
|
|
45
|
+
return undefined;
|
|
46
|
+
}
|
|
47
|
+
return component.get(key);
|
|
48
|
+
};
|
|
49
|
+
const particles = [];
|
|
50
|
+
for (let i = 0; i < count; i++) {
|
|
51
|
+
const entity = uuidv4();
|
|
52
|
+
particlesIds.push(entity);
|
|
53
|
+
setComponent(entity, "color", { value: 0xff00ff });
|
|
54
|
+
setComponent(entity, "mass", { value: 10 });
|
|
55
|
+
setComponent(entity, "position", { x: i + 1, y: i + 1, z: i + 1 });
|
|
56
|
+
setComponent(entity, "velocity", { x: -i, y: -i, z: -i });
|
|
57
|
+
if ((i >> 0) % 2 === 0) {
|
|
58
|
+
setComponent(entity, "visible", true);
|
|
59
|
+
}
|
|
60
|
+
if ((i >> 1) % 2 === 0) {
|
|
61
|
+
setComponent(entity, "enabled", true);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
const enabledVisibleParticles = particlesIds.filter((id, i) => {
|
|
65
|
+
return getComponent(id, "enabled") && getComponent(id, "visible");
|
|
66
|
+
});
|
|
67
|
+
return {
|
|
68
|
+
particles,
|
|
69
|
+
components,
|
|
70
|
+
setComponent,
|
|
71
|
+
getComponent,
|
|
72
|
+
enabledVisibleParticles,
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
const create = (() => {
|
|
76
|
+
let count = 0;
|
|
77
|
+
const setup = async (n) => {
|
|
78
|
+
count = n;
|
|
79
|
+
};
|
|
80
|
+
const run = () => {
|
|
81
|
+
createParticles(count);
|
|
82
|
+
};
|
|
83
|
+
const cleanup = async () => { };
|
|
84
|
+
return { setup, run: run, cleanup, type: "create" };
|
|
85
|
+
})();
|
|
86
|
+
function createMoveParticlesPerformanceTest(options) {
|
|
87
|
+
let ecs;
|
|
88
|
+
const setup = async (n) => {
|
|
89
|
+
ecs = await createParticles(n);
|
|
90
|
+
if (options.shuffle) {
|
|
91
|
+
shuffleArray(ecs.particles);
|
|
92
|
+
}
|
|
93
|
+
};
|
|
94
|
+
const run = () => {
|
|
95
|
+
for (let i = 0; i < ecs.enabledVisibleParticles.length; i++) {
|
|
96
|
+
const p = ecs.enabledVisibleParticles[i];
|
|
97
|
+
const position = ecs.getComponent(p, "position");
|
|
98
|
+
const velocity = ecs.getComponent(p, "velocity");
|
|
99
|
+
const newPosition = {
|
|
100
|
+
x: position.x + velocity.x,
|
|
101
|
+
y: position.y + velocity.y,
|
|
102
|
+
z: position.z + velocity.z,
|
|
103
|
+
};
|
|
104
|
+
ecs.setComponent(p, "position", newPosition);
|
|
105
|
+
}
|
|
106
|
+
};
|
|
107
|
+
const getVisibleEnabledPositions = () => {
|
|
108
|
+
const values = [];
|
|
109
|
+
for (let i = 0; i < ecs.enabledVisibleParticles.length; i++) {
|
|
110
|
+
const p = ecs.enabledVisibleParticles[i];
|
|
111
|
+
const position = ecs.getComponent(p, "position");
|
|
112
|
+
values.push(position.x, position.y, position.z);
|
|
113
|
+
}
|
|
114
|
+
return values;
|
|
115
|
+
};
|
|
116
|
+
const cleanup = async () => { };
|
|
117
|
+
return { setup, run: run, cleanup, getVisibleEnabledPositions, type: "move" };
|
|
118
|
+
}
|
|
119
|
+
const move_best = createMoveParticlesPerformanceTest({ shuffle: false });
|
|
120
|
+
const move_worst = createMoveParticlesPerformanceTest({ shuffle: true });
|
|
121
|
+
export const horizon = {
|
|
122
|
+
create,
|
|
123
|
+
move_best,
|
|
124
|
+
move_worst,
|
|
125
|
+
};
|
|
126
|
+
//# sourceMappingURL=horizon-perf.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"horizon-perf.js","sourceRoot":"","sources":["../../src/perftest/horizon-perf.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function run(): void;
|
|
@@ -0,0 +1,35 @@
|
|
|
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 * as vanilla_tests from "./vanilla-perf.js";
|
|
23
|
+
import * as ecs_tests from "./ecs-perf.js";
|
|
24
|
+
import { runTests } from "./perf-test.js";
|
|
25
|
+
export function run() {
|
|
26
|
+
runTests({
|
|
27
|
+
...ecs_tests,
|
|
28
|
+
...vanilla_tests,
|
|
29
|
+
// ...horizon_tests,
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
if (typeof globalThis.process === "object" && import.meta.url === `file://${process?.argv[1]}`) {
|
|
33
|
+
run();
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/perftest/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;WAoBW;AACX,OAAO,KAAK,aAAa,MAAM,mBAAmB,CAAC;AAEnD,OAAO,KAAK,SAAS,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,MAAM,UAAU,GAAG;IACjB,QAAQ,CAAC;QACP,GAAG,SAAS;QACZ,GAAG,aAAa;QAChB,oBAAoB;KACrB,CAAC,CAAC;AACL,CAAC;AAED,IAAI,OAAO,UAAU,CAAC,OAAO,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,UAAU,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IAC/F,GAAG,EAAE,CAAC;AACR,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
declare global {
|
|
2
|
+
interface Performance {
|
|
3
|
+
measureUserAgentSpecificMemory?: () => {
|
|
4
|
+
bytes: number;
|
|
5
|
+
};
|
|
6
|
+
memory?: {
|
|
7
|
+
usedJSHeapSize: number;
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
export interface PerformanceTest {
|
|
12
|
+
setup: (n: number) => Promise<void>;
|
|
13
|
+
run: () => any;
|
|
14
|
+
getVisibleEnabledPositions?: () => number[];
|
|
15
|
+
type: "create" | "move";
|
|
16
|
+
cleanup: () => Promise<void>;
|
|
17
|
+
}
|
|
18
|
+
export declare function runTests(testSuites: Record<string, Record<string, PerformanceTest>>): Promise<void>;
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
const typeToFlops = {
|
|
2
|
+
create: 10,
|
|
3
|
+
move: 3 / 4,
|
|
4
|
+
};
|
|
5
|
+
function isPerformanceTest(obj) {
|
|
6
|
+
return (typeof obj.setup === "function" &&
|
|
7
|
+
typeof obj.run === "function" &&
|
|
8
|
+
typeof obj.cleanup === "function");
|
|
9
|
+
}
|
|
10
|
+
function getMemory() {
|
|
11
|
+
// if in the browser, try to get browser memory usage
|
|
12
|
+
if (typeof window !== "undefined") {
|
|
13
|
+
return performance.memory?.usedJSHeapSize ?? 0;
|
|
14
|
+
}
|
|
15
|
+
return performance.measureUserAgentSpecificMemory?.().bytes ?? 0;
|
|
16
|
+
}
|
|
17
|
+
function getTime() {
|
|
18
|
+
return performance.now();
|
|
19
|
+
}
|
|
20
|
+
function garbageCollect() {
|
|
21
|
+
if (typeof globalThis.gc === "function") {
|
|
22
|
+
globalThis.gc();
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
export async function runTests(testSuites) {
|
|
26
|
+
console.log("Starting Tests:");
|
|
27
|
+
const allResults = {};
|
|
28
|
+
const display = (name) => name.replace(/_/g, " ");
|
|
29
|
+
for (const [suite, tests] of Object.entries(testSuites)) {
|
|
30
|
+
console.log(`- ${display(suite)}...`);
|
|
31
|
+
const suiteResults = (allResults[suite] = {});
|
|
32
|
+
for (const [name, test] of Object.entries(tests)) {
|
|
33
|
+
console.log(` - ${display(name)}...`);
|
|
34
|
+
const testResults = [];
|
|
35
|
+
suiteResults[name] = testResults;
|
|
36
|
+
if (test.getVisibleEnabledPositions) {
|
|
37
|
+
if (test.type === "create") {
|
|
38
|
+
throw new Error("Cannot have getVisibleEnabledPositions with create test");
|
|
39
|
+
}
|
|
40
|
+
// we will run a small n sample of this to verify it works correctly.
|
|
41
|
+
const sample_n = 17;
|
|
42
|
+
await test.setup(sample_n);
|
|
43
|
+
const initialPositions = test.getVisibleEnabledPositions();
|
|
44
|
+
const expectedInitialPositions = [1, 1, 1, 5, 5, 5, 9, 9, 9, 13, 13, 13, 17, 17, 17];
|
|
45
|
+
if (JSON.stringify(initialPositions) !== JSON.stringify(expectedInitialPositions)) {
|
|
46
|
+
console.log(` Error: invalid initial positions: ${initialPositions}, expected. ${expectedInitialPositions}`);
|
|
47
|
+
}
|
|
48
|
+
// console.log(JSON.stringify(initialPositions));
|
|
49
|
+
// run the test once to add to visible, enabled particle positions.
|
|
50
|
+
test.run();
|
|
51
|
+
const finalPositions = test.getVisibleEnabledPositions();
|
|
52
|
+
const expectedFinalPositions = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1];
|
|
53
|
+
if (JSON.stringify(finalPositions) !== JSON.stringify(expectedFinalPositions)) {
|
|
54
|
+
console.log(` Error: invalid final positions: ${finalPositions}, expected. ${expectedFinalPositions}`);
|
|
55
|
+
}
|
|
56
|
+
// console.log(JSON.stringify(finalPositions));
|
|
57
|
+
}
|
|
58
|
+
const n = test.getVisibleEnabledPositions ? 100_000 : 100_000;
|
|
59
|
+
await test.setup(n);
|
|
60
|
+
garbageCollect();
|
|
61
|
+
const baselineMemory = getMemory();
|
|
62
|
+
const timeStart = getTime();
|
|
63
|
+
// only run for 1 second
|
|
64
|
+
while (getTime() - timeStart < 100) {
|
|
65
|
+
const result = runOnce(test.run, test);
|
|
66
|
+
result.memoryKb -= baselineMemory;
|
|
67
|
+
testResults.push({ ...result, flops: n * typeToFlops[test.type] });
|
|
68
|
+
}
|
|
69
|
+
await test.cleanup();
|
|
70
|
+
garbageCollect();
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
// console.log(allResults);
|
|
74
|
+
// console log some meaningful and readable results for each test that include the min, max and average times
|
|
75
|
+
if (typeof console.table === "function") {
|
|
76
|
+
// Let's use the console table function to layout some nice results that the best results in time and memory
|
|
77
|
+
// are easy to see.
|
|
78
|
+
const tableValues = {};
|
|
79
|
+
for (const [suite, suiteResults] of Object.entries(allResults)) {
|
|
80
|
+
for (const [name, testResults] of Object.entries(suiteResults)) {
|
|
81
|
+
const memoryKb = testResults.map((r) => r.memoryKb / (1024 * 1024));
|
|
82
|
+
const timeMs = testResults.map((r) => r.timeMs);
|
|
83
|
+
const fastestResult = testResults.reduce((a, b) => (a.timeMs < b.timeMs ? a : b));
|
|
84
|
+
const fastestFlopsPerSecond = (fastestResult.flops * 1000) / (fastestResult.timeMs);
|
|
85
|
+
const totalTime = timeMs.reduce((a, b) => a + b, 0);
|
|
86
|
+
const totalFlops = testResults.reduce((a, b) => a + b.flops, 0);
|
|
87
|
+
const averageFlopsPerSecond = (totalFlops * 1000) / totalTime;
|
|
88
|
+
tableValues[`${display(suite)}:${display(name)}`] = {
|
|
89
|
+
Passes: memoryKb.length,
|
|
90
|
+
// 'Mem Min (Mb)': Math.min(...memoryKb).toFixed(2),
|
|
91
|
+
// 'Mem Max (Mb)': Math.max(...memoryKb).toFixed(2),
|
|
92
|
+
// "Mem Avg (Mb)": (
|
|
93
|
+
// memoryKb.reduce((a, b) => a + b, 0) / memoryKb.length
|
|
94
|
+
// ).toFixed(2),
|
|
95
|
+
"Time Min (ms)": Math.min(...timeMs).toFixed(2),
|
|
96
|
+
// 'Time Max (ms)': Math.max(...timeMs).toFixed(2),
|
|
97
|
+
"Time Avg (ms)": (timeMs.reduce((a, b) => a + b, 0) / timeMs.length).toFixed(2),
|
|
98
|
+
"Fastest MFlops": Math.round(fastestFlopsPerSecond / 1_000_000),
|
|
99
|
+
"Average MFlops": Math.round(averageFlopsPerSecond / 1_000_000),
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
console.table(tableValues);
|
|
104
|
+
}
|
|
105
|
+
else {
|
|
106
|
+
for (const [suite, suiteResults] of Object.entries(allResults)) {
|
|
107
|
+
for (const [name, testResults] of Object.entries(suiteResults)) {
|
|
108
|
+
const memoryKb = testResults.map((r) => r.memoryKb);
|
|
109
|
+
const timeMs = testResults.map((r) => r.timeMs);
|
|
110
|
+
console.log(`${name}: ${Math.min(...memoryKb)}kb - ${Math.max(...memoryKb)}kb - ${Math.round(memoryKb.reduce((a, b) => a + b, 0) / memoryKb.length)}kb`);
|
|
111
|
+
console.log(`${name}: ${Math.round(Math.min(...timeMs))}ms - ${Math.round(Math.max(...timeMs))}ms - ${Math.round(timeMs.reduce((a, b) => a + b, 0) / timeMs.length)}ms`);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
function runOnce(fn, test) {
|
|
117
|
+
const start = getTime();
|
|
118
|
+
const result = fn();
|
|
119
|
+
const end = getTime();
|
|
120
|
+
const after = getMemory();
|
|
121
|
+
const timeMs = end - start;
|
|
122
|
+
return { memoryKb: after, timeMs, result };
|
|
123
|
+
}
|
|
124
|
+
//# sourceMappingURL=perf-test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"perf-test.js","sourceRoot":"","sources":["../../src/perftest/perf-test.ts"],"names":[],"mappings":"AA2CA,MAAM,WAAW,GAAG;IAClB,MAAM,EAAE,EAAE;IACV,IAAI,EAAE,CAAC,GAAG,CAAC;CAC+C,CAAC;AAE7D,SAAS,iBAAiB,CAAC,GAAQ;IACjC,OAAO,CACL,OAAO,GAAG,CAAC,KAAK,KAAK,UAAU;QAC/B,OAAO,GAAG,CAAC,GAAG,KAAK,UAAU;QAC7B,OAAO,GAAG,CAAC,OAAO,KAAK,UAAU,CAClC,CAAC;AACJ,CAAC;AAED,SAAS,SAAS;IAChB,sDAAsD;IACtD,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;QAClC,OAAO,WAAW,CAAC,MAAM,EAAE,cAAc,IAAI,CAAC,CAAC;IACjD,CAAC;IAED,OAAO,WAAW,CAAC,8BAA8B,EAAE,EAAE,CAAC,KAAK,IAAI,CAAC,CAAC;AACnE,CAAC;AAED,SAAS,OAAO;IACd,OAAO,WAAW,CAAC,GAAG,EAAE,CAAC;AAC3B,CAAC;AAED,SAAS,cAAc;IACrB,IAAI,OAAO,UAAU,CAAC,EAAE,KAAK,UAAU,EAAE,CAAC;QACxC,UAAU,CAAC,EAAE,EAAE,CAAC;IAClB,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,UAA2D;IAE3D,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IAC/B,MAAM,UAAU,GAAkD,EAAE,CAAC;IACrE,MAAM,OAAO,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC1D,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QACxD,OAAO,CAAC,GAAG,CAAC,KAAK,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACtC,MAAM,YAAY,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,EAGzC,CAAC,CAAC;QACH,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACjD,OAAO,CAAC,GAAG,CAAC,OAAO,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACvC,MAAM,WAAW,GAAkB,EAAE,CAAC;YACtC,YAAY,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC;YAEjC,IAAI,IAAI,CAAC,0BAA0B,EAAE,CAAC;gBACpC,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;oBAC3B,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;gBAC7E,CAAC;gBACD,sEAAsE;gBACtE,MAAM,QAAQ,GAAG,EAAE,CAAC;gBACpB,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;gBAC3B,MAAM,gBAAgB,GAAG,IAAI,CAAC,0BAA0B,EAAE,CAAC;gBAC3D,MAAM,wBAAwB,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;gBACrF,IAAI,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,wBAAwB,CAAC,EAAE,CAAC;oBAClF,OAAO,CAAC,GAAG,CAAC,uCAAuC,gBAAgB,eAAe,wBAAwB,EAAE,CAAC,CAAC;gBAChH,CAAC;gBACD,iDAAiD;gBACjD,oEAAoE;gBACpE,IAAI,CAAC,GAAG,EAAE,CAAC;gBACX,MAAM,cAAc,GAAG,IAAI,CAAC,0BAA0B,EAAE,CAAC;gBACzD,MAAM,sBAAsB,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC7E,IAAI,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,sBAAsB,CAAC,EAAE,CAAC;oBAC9E,OAAO,CAAC,GAAG,CAAC,qCAAqC,cAAc,eAAe,sBAAsB,EAAE,CAAC,CAAC;gBAC1G,CAAC;gBACD,+CAA+C;YACjD,CAAC;YAED,MAAM,CAAC,GAAG,IAAI,CAAC,0BAA0B,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;YAE9D,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACpB,cAAc,EAAE,CAAC;YAEjB,MAAM,cAAc,GAAG,SAAS,EAAE,CAAC;YACnC,MAAM,SAAS,GAAG,OAAO,EAAE,CAAC;YAE5B,0BAA0B;YAC1B,OAAO,OAAO,EAAE,GAAG,SAAS,GAAG,GAAG,EAAE,CAAC;gBACnC,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;gBACvC,MAAM,CAAC,QAAQ,IAAI,cAAc,CAAC;gBAClC,WAAW,CAAC,IAAI,CAAC,EAAC,GAAG,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACpE,CAAC;YAED,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;YACrB,cAAc,EAAE,CAAC;QACnB,CAAC;IACH,CAAC;IACD,2BAA2B;IAC3B,8GAA8G;IAC9G,IAAI,OAAO,OAAO,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;QACxC,4GAA4G;QAC5G,mBAAmB;QACnB,MAAM,WAAW,GAAG,EAAS,CAAC;QAC9B,KAAK,MAAM,CAAC,KAAK,EAAE,YAAY,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;YAC/D,KAAK,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;gBAC/D,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC;gBACpE,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;gBAChD,MAAM,aAAa,GAAG,WAAW,CAAC,MAAM,CACtC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CACxC,CAAC;gBACF,MAAM,qBAAqB,GAAG,CAAC,aAAa,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;gBACpF,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;gBACpD,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBAChE,MAAM,qBAAqB,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,SAAS,CAAC;gBAC9D,WAAW,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG;oBAClD,MAAM,EAAE,QAAQ,CAAC,MAAM;oBACvB,oDAAoD;oBACpD,oDAAoD;oBACpD,oBAAoB;oBACpB,0DAA0D;oBAC1D,gBAAgB;oBAChB,eAAe,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;oBAC/C,mDAAmD;oBACnD,eAAe,EAAE,CACf,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAClD,CAAC,OAAO,CAAC,CAAC,CAAC;oBACZ,gBAAgB,EAAE,IAAI,CAAC,KAAK,CAAC,qBAAqB,GAAG,SAAS,CAAC;oBAC/D,gBAAgB,EAAE,IAAI,CAAC,KAAK,CAAC,qBAAqB,GAAG,SAAS,CAAC;iBAChE,CAAC;YACJ,CAAC;QACH,CAAC;QACD,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAC7B,CAAC;SAAM,CAAC;QACN,KAAK,MAAM,CAAC,KAAK,EAAE,YAAY,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;YAC/D,KAAK,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;gBAC/D,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;gBACpD,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;gBAChD,OAAO,CAAC,GAAG,CACT,GAAG,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,QAAQ,IAAI,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAC5I,CAAC;gBACF,OAAO,CAAC,GAAG,CACT,GAAG,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAC5J,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,OAAO,CAAC,EAAa,EAAE,IAAqB;IACnD,MAAM,KAAK,GAAG,OAAO,EAAE,CAAC;IACxB,MAAM,MAAM,GAAG,EAAE,EAAE,CAAC;IACpB,MAAM,GAAG,GAAG,OAAO,EAAE,CAAC;IACtB,MAAM,KAAK,GAAG,SAAS,EAAE,CAAC;IAC1B,MAAM,MAAM,GAAG,GAAG,GAAG,KAAK,CAAC;IAC3B,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AAC7C,CAAC"}
|