@adobe/data 0.2.0 → 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 +7 -2
- 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
|
@@ -1,193 +0,0 @@
|
|
|
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
|
-
interface PerfResults {
|
|
23
|
-
memoryKb: number;
|
|
24
|
-
timeMs: number;
|
|
25
|
-
result: any;
|
|
26
|
-
flops: number;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
declare global {
|
|
30
|
-
interface Performance {
|
|
31
|
-
measureUserAgentSpecificMemory?: () => { bytes: number };
|
|
32
|
-
memory?: { usedJSHeapSize: number };
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
export interface PerformanceTest {
|
|
37
|
-
setup: (n: number) => Promise<void>;
|
|
38
|
-
run: () => any;
|
|
39
|
-
getVisibleEnabledPositions?: () => number[];
|
|
40
|
-
type: "create" | "move";
|
|
41
|
-
cleanup: () => Promise<void>;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
const typeToFlops = {
|
|
45
|
-
create: 10,
|
|
46
|
-
move: 3 / 4,
|
|
47
|
-
} as const satisfies Record<PerformanceTest["type"], number>;
|
|
48
|
-
|
|
49
|
-
function isPerformanceTest(obj: any): obj is PerformanceTest {
|
|
50
|
-
return (
|
|
51
|
-
typeof obj.setup === "function" &&
|
|
52
|
-
typeof obj.run === "function" &&
|
|
53
|
-
typeof obj.cleanup === "function"
|
|
54
|
-
);
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
function getMemory() {
|
|
58
|
-
// if in the browser, try to get browser memory usage
|
|
59
|
-
if (typeof window !== "undefined") {
|
|
60
|
-
return performance.memory?.usedJSHeapSize ?? 0;
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
return performance.measureUserAgentSpecificMemory?.().bytes ?? 0;
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
function getTime() {
|
|
67
|
-
return performance.now();
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
function garbageCollect() {
|
|
71
|
-
if (typeof globalThis.gc === "function") {
|
|
72
|
-
globalThis.gc();
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
export async function runTests(
|
|
77
|
-
testSuites: Record<string, Record<string, PerformanceTest>>,
|
|
78
|
-
) {
|
|
79
|
-
console.log("Starting Tests:");
|
|
80
|
-
const allResults: Record<string, Record<string, PerfResults[]>> = {};
|
|
81
|
-
const display = (name: string) => name.replace(/_/g, " ");
|
|
82
|
-
for (const [suite, tests] of Object.entries(testSuites)) {
|
|
83
|
-
console.log(`- ${display(suite)}...`);
|
|
84
|
-
const suiteResults = (allResults[suite] = {} as Record<
|
|
85
|
-
string,
|
|
86
|
-
PerfResults[]
|
|
87
|
-
>);
|
|
88
|
-
for (const [name, test] of Object.entries(tests)) {
|
|
89
|
-
console.log(` - ${display(name)}...`);
|
|
90
|
-
const testResults: PerfResults[] = [];
|
|
91
|
-
suiteResults[name] = testResults;
|
|
92
|
-
|
|
93
|
-
if (test.getVisibleEnabledPositions) {
|
|
94
|
-
if (test.type === "create") {
|
|
95
|
-
throw new Error("Cannot have getVisibleEnabledPositions with create test");
|
|
96
|
-
}
|
|
97
|
-
// we will run a small n sample of this to verify it works correctly.
|
|
98
|
-
const sample_n = 17;
|
|
99
|
-
await test.setup(sample_n);
|
|
100
|
-
const initialPositions = test.getVisibleEnabledPositions();
|
|
101
|
-
const expectedInitialPositions = [1, 1, 1, 5, 5, 5, 9, 9, 9, 13, 13, 13, 17, 17, 17];
|
|
102
|
-
if (JSON.stringify(initialPositions) !== JSON.stringify(expectedInitialPositions)) {
|
|
103
|
-
console.log(` Error: invalid initial positions: ${initialPositions}, expected. ${expectedInitialPositions}`);
|
|
104
|
-
}
|
|
105
|
-
// console.log(JSON.stringify(initialPositions));
|
|
106
|
-
// run the test once to add to visible, enabled particle positions.
|
|
107
|
-
test.run();
|
|
108
|
-
const finalPositions = test.getVisibleEnabledPositions();
|
|
109
|
-
const expectedFinalPositions = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1];
|
|
110
|
-
if (JSON.stringify(finalPositions) !== JSON.stringify(expectedFinalPositions)) {
|
|
111
|
-
console.log(` Error: invalid final positions: ${finalPositions}, expected. ${expectedFinalPositions}`);
|
|
112
|
-
}
|
|
113
|
-
// console.log(JSON.stringify(finalPositions));
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
const n = test.getVisibleEnabledPositions ? 100_000 : 100_000;
|
|
117
|
-
|
|
118
|
-
await test.setup(n);
|
|
119
|
-
garbageCollect();
|
|
120
|
-
|
|
121
|
-
const baselineMemory = getMemory();
|
|
122
|
-
const timeStart = getTime();
|
|
123
|
-
|
|
124
|
-
// only run for 1 second
|
|
125
|
-
while (getTime() - timeStart < 100) {
|
|
126
|
-
const result = runOnce(test.run, test);
|
|
127
|
-
result.memoryKb -= baselineMemory;
|
|
128
|
-
testResults.push({...result, flops: n * typeToFlops[test.type] });
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
await test.cleanup();
|
|
132
|
-
garbageCollect();
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
// console.log(allResults);
|
|
136
|
-
// console log some meaningful and readable results for each test that include the min, max and average times
|
|
137
|
-
if (typeof console.table === "function") {
|
|
138
|
-
// Let's use the console table function to layout some nice results that the best results in time and memory
|
|
139
|
-
// are easy to see.
|
|
140
|
-
const tableValues = {} as any;
|
|
141
|
-
for (const [suite, suiteResults] of Object.entries(allResults)) {
|
|
142
|
-
for (const [name, testResults] of Object.entries(suiteResults)) {
|
|
143
|
-
const memoryKb = testResults.map((r) => r.memoryKb / (1024 * 1024));
|
|
144
|
-
const timeMs = testResults.map((r) => r.timeMs);
|
|
145
|
-
const fastestResult = testResults.reduce(
|
|
146
|
-
(a, b) => (a.timeMs < b.timeMs ? a : b)
|
|
147
|
-
);
|
|
148
|
-
const fastestFlopsPerSecond = (fastestResult.flops * 1000) / (fastestResult.timeMs);
|
|
149
|
-
const totalTime = timeMs.reduce((a, b) => a + b, 0);
|
|
150
|
-
const totalFlops = testResults.reduce((a, b) => a + b.flops, 0);
|
|
151
|
-
const averageFlopsPerSecond = (totalFlops * 1000) / totalTime;
|
|
152
|
-
tableValues[`${display(suite)}:${display(name)}`] = {
|
|
153
|
-
Passes: memoryKb.length,
|
|
154
|
-
// 'Mem Min (Mb)': Math.min(...memoryKb).toFixed(2),
|
|
155
|
-
// 'Mem Max (Mb)': Math.max(...memoryKb).toFixed(2),
|
|
156
|
-
// "Mem Avg (Mb)": (
|
|
157
|
-
// memoryKb.reduce((a, b) => a + b, 0) / memoryKb.length
|
|
158
|
-
// ).toFixed(2),
|
|
159
|
-
"Time Min (ms)": Math.min(...timeMs).toFixed(2),
|
|
160
|
-
// 'Time Max (ms)': Math.max(...timeMs).toFixed(2),
|
|
161
|
-
"Time Avg (ms)": (
|
|
162
|
-
timeMs.reduce((a, b) => a + b, 0) / timeMs.length
|
|
163
|
-
).toFixed(2),
|
|
164
|
-
"Fastest MFlops": Math.round(fastestFlopsPerSecond / 1_000_000),
|
|
165
|
-
"Average MFlops": Math.round(averageFlopsPerSecond / 1_000_000),
|
|
166
|
-
};
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
console.table(tableValues);
|
|
170
|
-
} else {
|
|
171
|
-
for (const [suite, suiteResults] of Object.entries(allResults)) {
|
|
172
|
-
for (const [name, testResults] of Object.entries(suiteResults)) {
|
|
173
|
-
const memoryKb = testResults.map((r) => r.memoryKb);
|
|
174
|
-
const timeMs = testResults.map((r) => r.timeMs);
|
|
175
|
-
console.log(
|
|
176
|
-
`${name}: ${Math.min(...memoryKb)}kb - ${Math.max(...memoryKb)}kb - ${Math.round(memoryKb.reduce((a, b) => a + b, 0) / memoryKb.length)}kb`
|
|
177
|
-
);
|
|
178
|
-
console.log(
|
|
179
|
-
`${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`
|
|
180
|
-
);
|
|
181
|
-
}
|
|
182
|
-
}
|
|
183
|
-
}
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
function runOnce(fn: () => any, test: PerformanceTest): Omit<PerfResults, "flops"> {
|
|
187
|
-
const start = getTime();
|
|
188
|
-
const result = fn();
|
|
189
|
-
const end = getTime();
|
|
190
|
-
const after = getMemory();
|
|
191
|
-
const timeMs = end - start;
|
|
192
|
-
return { memoryKb: after, timeMs, result };
|
|
193
|
-
}
|
package/src/perftest/perf.md
DELETED
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
# Performance Findings
|
|
3
|
-
|
|
4
|
-
## Tests
|
|
5
|
-
|
|
6
|
-
- Create 1 million particles
|
|
7
|
-
- Particles have
|
|
8
|
-
- color: u32
|
|
9
|
-
- mass: f32
|
|
10
|
-
- position: f32
|
|
11
|
-
- velocity: f32
|
|
12
|
-
- visible?: true
|
|
13
|
-
- enabled?: true
|
|
14
|
-
- 50Mb Expected memory size assuming 16 byte overhead per Particle
|
|
15
|
-
- 1/4 of particles enabled and visible
|
|
16
|
-
- 1/4 of particles enabled
|
|
17
|
-
- 1/4 of particles visible
|
|
18
|
-
- 1/4 of particles neither
|
|
19
|
-
- Process All visible and enabled particles
|
|
20
|
-
- add velocity to position for each
|
|
21
|
-
- test with freshly allocated linear memory (best) and shuffled (worst)
|
|
22
|
-
|
|
23
|
-
## Techniques Tested
|
|
24
|
-
|
|
25
|
-
- Plain old Javascript Objects (POJO)
|
|
26
|
-
- Immutable Javascript Objects (IJO)
|
|
27
|
-
- Mobx Observable Javascript Objects (MOBX)
|
|
28
|
-
- Horizon Emulated Storage (HORIZON*)
|
|
29
|
-
- Entity Component System (ECS)
|
|
30
|
-
|
|
31
|
-
## Results
|
|
32
|
-
|
|
33
|
-
Create Create Process Process Notes
|
|
34
|
-
Memory Time Best Worst
|
|
35
|
-
|
|
36
|
-
POJO 248 mb 124 ms 145 ms 363 ms
|
|
37
|
-
POJO M1 248 mb 62 ms 58 ms 302 ms memory is way more efficient on M1
|
|
38
|
-
IJO 248 mb 124 ms 656 ms 844 ms much memory allocation on process
|
|
39
|
-
MOBX 994 mb 1600 ms 160 ms 437 ms some memory allocation on process *
|
|
40
|
-
HORIZON* 991 mb 1650 ms 1214 ms 2415 ms much memory allocation on process
|
|
41
|
-
ECS 59 mb 410 ms 15 ms 15 ms
|
|
42
|
-
ECS M1 59 mb 410 ms 10 ms 10 ms memory was already efficient before
|
|
43
|
-
ECS M1 WASM 410 ms 4 ms 4 ms compiler simd ops #add_arrays
|
|
44
|
-
ECS M1 WASM SIMD 410 ms 3 ms 3 ms manual simd ops #add_arrays_simd
|
|
45
|
-
|
|
46
|
-
RUST OPTIMIZED COMMAND LINE 0.15 ms 0.15 ms raw processing of minimum memory
|
|
47
|
-
THEORETICAL M1 MAX 0.12 ms 0.12 ms single core execution, no gpu
|
|
48
|
-
|
|
49
|
-
## Findings / Reasons
|
|
50
|
-
|
|
51
|
-
- Plain Javascript Objects are the fastest to create.
|
|
52
|
-
- highly optimized in V8
|
|
53
|
-
- Immutable Javascript Objects are the slowest to process.
|
|
54
|
-
- new allocation slower than mutate in place
|
|
55
|
-
- Mobx is the slowest to create by an order of magnitude.
|
|
56
|
-
- likely due to Proxy creation
|
|
57
|
-
- Mobx uses the most memory by a factor of 20.
|
|
58
|
-
- likely due to Proxy creation
|
|
59
|
-
- Horizon* was emulated using UUIDV4 and Map of Maps with immutable components.
|
|
60
|
-
- This is consistent with very best possible case horizon performance.
|
|
61
|
-
- Horizon ECS does allow us to only process the 1/4 that are visible + enabled.
|
|
62
|
-
- ECS is the most efficient in memory by a factor of 5
|
|
63
|
-
- ECS is storing in f32 and others storing large numbers in f64
|
|
64
|
-
- ECS is not allocating per entity for enabled/visible flags.
|
|
65
|
-
- ECS is the most efficient in processing by a factor of 10
|
|
66
|
-
- All enabled/visible particle components are allocated adjacently for optimal cache behavior
|
|
67
|
-
- M1 chip seems to have three times faster memory bandwidth, tripling best case speed.
|
|
68
|
-
- M1 chip cache misses are still expensive which is likely why worst case only a bit better.
|
|
69
|
-
- Rust to Wasm compiler can automatically insert SIMD instructions.
|
|
70
|
-
- Explicit SIMD instructions are a bit faster.
|
|
71
|
-
- Maximum theoretical performance from optimized rust command line is about 20 times faster than our best.
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
## Summary
|
|
75
|
-
|
|
76
|
-
- ECS trades extra time at creation for significant improvements to memory usage and processing performance.
|
|
77
|
-
|
|
78
|
-
## Notes
|
|
79
|
-
|
|
80
|
-
- Plain javascript object memory size per property depends upon number value used. For small integers, it seems a 32 bit format is used, but for larger floating point values a 64 bit is used.
|
|
81
|
-
- If you run the tests with only small integer values then the memory results are almost half the size.
|
|
82
|
-
- Prompt to ask Chat GPT 4 maximum theoretical performance:
|
|
83
|
-
|
|
84
|
-
theoretical performance question. How fast should a Macbook Pro M1 2021 be able to perform the following processing:
|
|
85
|
-
|
|
86
|
-
given 12MB of f32 array data split into two arrays. How fast can it add each float to the corresponding float in the second array and write the result to the second array?
|
|
87
|
-
- Answer
|
|
88
|
-
Assuming only one core is used, the theoretical peak performance for this simple operation could be 3 GHz * 8 floats/cycle = 24 billion floats/second.
|
|
89
|
-
|
|
90
|
-
or 0.125 ms
|
|
@@ -1,136 +0,0 @@
|
|
|
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
|
-
import { PerformanceTest } from "./perf-test.js";
|
|
24
|
-
|
|
25
|
-
function createParticlesJS(n: number) {
|
|
26
|
-
const particles: any[] = [];
|
|
27
|
-
for (let i = 0; i < n; i++) {
|
|
28
|
-
const particle: any = {
|
|
29
|
-
color: 0xff00ff,
|
|
30
|
-
mass: 10,
|
|
31
|
-
positionX: i + 1,
|
|
32
|
-
positionY: i + 1,
|
|
33
|
-
positionZ: i + 1,
|
|
34
|
-
velocityX: -i,
|
|
35
|
-
velocityY: -i,
|
|
36
|
-
velocityZ: -i,
|
|
37
|
-
};
|
|
38
|
-
if ((i >> 0) % 2 === 0) {
|
|
39
|
-
particle.visible = true;
|
|
40
|
-
}
|
|
41
|
-
if ((i >> 1) % 2 === 0) {
|
|
42
|
-
particle.enabled = true;
|
|
43
|
-
}
|
|
44
|
-
particles.push(particle);
|
|
45
|
-
}
|
|
46
|
-
return particles;
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
const create = (() => {
|
|
50
|
-
let count = 0;
|
|
51
|
-
const setup = async (n: number) => {
|
|
52
|
-
count = n;
|
|
53
|
-
};
|
|
54
|
-
const run = () => {
|
|
55
|
-
createParticlesJS(count);
|
|
56
|
-
};
|
|
57
|
-
const cleanup = async () => {};
|
|
58
|
-
return { setup, run: run, cleanup, type: "create" } satisfies PerformanceTest;
|
|
59
|
-
})();
|
|
60
|
-
|
|
61
|
-
function createMoveParticlesPerformanceTest(options: {
|
|
62
|
-
shuffle: boolean;
|
|
63
|
-
immutable: boolean;
|
|
64
|
-
}) {
|
|
65
|
-
let particles: any[] = [];
|
|
66
|
-
const setup = async (n: number) => {
|
|
67
|
-
particles = createParticlesJS(n);
|
|
68
|
-
if (options.shuffle) {
|
|
69
|
-
shuffleArray(particles);
|
|
70
|
-
}
|
|
71
|
-
};
|
|
72
|
-
const run = () => {
|
|
73
|
-
if (options.immutable) {
|
|
74
|
-
for (let i = 0; i < particles.length; i++) {
|
|
75
|
-
const p = particles[i];
|
|
76
|
-
if (p.visible && p.enabled) {
|
|
77
|
-
particles[i] = {
|
|
78
|
-
...p,
|
|
79
|
-
positionX: p.positionX + p.velocityX,
|
|
80
|
-
positionY: p.positionY + p.velocityY,
|
|
81
|
-
positionZ: p.positionZ + p.velocityZ,
|
|
82
|
-
};
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
} else {
|
|
86
|
-
for (let i = 0; i < particles.length; i++) {
|
|
87
|
-
const p = particles[i];
|
|
88
|
-
if (p.visible && p.enabled) {
|
|
89
|
-
p.positionX += p.velocityX;
|
|
90
|
-
p.positionY += p.velocityY;
|
|
91
|
-
p.positionZ += p.velocityZ;
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
};
|
|
96
|
-
const getVisibleEnabledPositions = () => {
|
|
97
|
-
const values: number[] = [];
|
|
98
|
-
for (let i = 0; i < particles.length; i++) {
|
|
99
|
-
const p = particles[i];
|
|
100
|
-
if (p.visible && p.enabled) {
|
|
101
|
-
values.push(p.positionX, p.positionY, p.positionZ);
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
return values;
|
|
105
|
-
}
|
|
106
|
-
const cleanup = async () => {};
|
|
107
|
-
return { setup, run: run, cleanup, getVisibleEnabledPositions: options.shuffle ? undefined : getVisibleEnabledPositions, type: "move" } satisfies PerformanceTest;
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
const move_best = createMoveParticlesPerformanceTest({
|
|
111
|
-
shuffle: false,
|
|
112
|
-
immutable: false,
|
|
113
|
-
});
|
|
114
|
-
const move_worst = createMoveParticlesPerformanceTest({
|
|
115
|
-
shuffle: true,
|
|
116
|
-
immutable: false,
|
|
117
|
-
});
|
|
118
|
-
const move_best_immutable = createMoveParticlesPerformanceTest({
|
|
119
|
-
shuffle: false,
|
|
120
|
-
immutable: true,
|
|
121
|
-
});
|
|
122
|
-
const move_worst_immutable = createMoveParticlesPerformanceTest({
|
|
123
|
-
shuffle: true,
|
|
124
|
-
immutable: true,
|
|
125
|
-
});
|
|
126
|
-
|
|
127
|
-
export const vanilla_js = {
|
|
128
|
-
create,
|
|
129
|
-
move_best,
|
|
130
|
-
move_worst,
|
|
131
|
-
};
|
|
132
|
-
|
|
133
|
-
export const immutable_js = {
|
|
134
|
-
move_best: move_best_immutable,
|
|
135
|
-
move_worst: move_worst_immutable,
|
|
136
|
-
};
|
package/src/schema/boolean.ts
DELETED
|
@@ -1,100 +0,0 @@
|
|
|
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 { deepMerge } from './deep-merge.js';
|
|
23
|
-
import { assert } from 'riteway/vitest';
|
|
24
|
-
import { describe, test } from 'vitest';
|
|
25
|
-
|
|
26
|
-
describe('deepMerge', () => {
|
|
27
|
-
test('should merge two objects', () => {
|
|
28
|
-
const a = { a: 1, b: 2 };
|
|
29
|
-
const b = { c: 3, d: 4 };
|
|
30
|
-
assert({
|
|
31
|
-
given: 'two objects without overlapping keys',
|
|
32
|
-
should: 'merge them',
|
|
33
|
-
actual: deepMerge(a, b),
|
|
34
|
-
expected: { a: 1, b: 2, c: 3, d: 4 },
|
|
35
|
-
});
|
|
36
|
-
});
|
|
37
|
-
|
|
38
|
-
test('should merge two objects with overlapping keys', () => {
|
|
39
|
-
const a = { a: 1, b: 2 };
|
|
40
|
-
const b = { b: 3, c: 4 };
|
|
41
|
-
assert({
|
|
42
|
-
given: 'two objects with overlapping keys',
|
|
43
|
-
should: 'merge them',
|
|
44
|
-
actual: deepMerge(a, b),
|
|
45
|
-
expected: { a: 1, b: 3, c: 4 },
|
|
46
|
-
});
|
|
47
|
-
});
|
|
48
|
-
|
|
49
|
-
test('should merge two objects with overlapping keys and arrays', () => {
|
|
50
|
-
const a = { a: 1, b: [1, 2] };
|
|
51
|
-
const b = { b: [3, 4], c: 4 };
|
|
52
|
-
assert({
|
|
53
|
-
given: 'two objects with overlapping keys and arrays',
|
|
54
|
-
should: 'merge them',
|
|
55
|
-
actual: deepMerge(a, b),
|
|
56
|
-
expected: { a: 1, b: [1, 2, 3, 4], c: 4 },
|
|
57
|
-
});
|
|
58
|
-
});
|
|
59
|
-
|
|
60
|
-
test('should merge two nested objects with overlapping keys', () => {
|
|
61
|
-
const a = { a: 1, b: { c: 2, d: 3 } };
|
|
62
|
-
const b = { b: { d: 4, e: 5 }, c: 6 };
|
|
63
|
-
assert({
|
|
64
|
-
given: 'two nested objects with overlapping keys',
|
|
65
|
-
should: 'merge them',
|
|
66
|
-
actual: deepMerge(a, b),
|
|
67
|
-
expected: { a: 1, b: { c: 2, d: 4, e: 5 }, c: 6 },
|
|
68
|
-
});
|
|
69
|
-
});
|
|
70
|
-
|
|
71
|
-
test('should merge two objects with null values', () => {
|
|
72
|
-
const a = { a: null, b: 2 };
|
|
73
|
-
const b = { b: null, c: 4 };
|
|
74
|
-
assert({
|
|
75
|
-
given: 'two objects with null values',
|
|
76
|
-
should: 'merge them',
|
|
77
|
-
actual: deepMerge(a, b),
|
|
78
|
-
expected: { a: null, b: null, c: 4 },
|
|
79
|
-
});
|
|
80
|
-
});
|
|
81
|
-
|
|
82
|
-
test('should merge two objects with undefined values', () => {
|
|
83
|
-
const a = { a: undefined, b: 2 };
|
|
84
|
-
const b = { b: undefined, c: 4 };
|
|
85
|
-
assert({
|
|
86
|
-
given: 'two objects with undefined values',
|
|
87
|
-
should: 'merge them',
|
|
88
|
-
actual: deepMerge(a, b),
|
|
89
|
-
expected: { a: undefined, b: undefined, c: 4 },
|
|
90
|
-
});
|
|
91
|
-
});
|
|
92
|
-
|
|
93
|
-
test('should not mutate the original objects', () => {
|
|
94
|
-
const a = { a: 1, b: 2 };
|
|
95
|
-
const b = { b: 3, c: 4 };
|
|
96
|
-
deepMerge(a, b);
|
|
97
|
-
assert({ given: 'the original objects', should: 'not be mutated', actual: a, expected: { a: 1, b: 2 } });
|
|
98
|
-
assert({ given: 'the original objects', should: 'not be mutated', actual: b, expected: { b: 3, c: 4 } });
|
|
99
|
-
});
|
|
100
|
-
});
|
|
@@ -1,67 +0,0 @@
|
|
|
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 { type Data } from '../../index.js';
|
|
23
|
-
|
|
24
|
-
/**
|
|
25
|
-
* Recursively merges 2 pieces of `Data`, returns new `Data`.
|
|
26
|
-
* Inputs are not mutated.
|
|
27
|
-
*
|
|
28
|
-
* @param {Data} a First piece of `Data`.
|
|
29
|
-
* @param {Data} b The second piece of `Data`.
|
|
30
|
-
* @returns {Object} Returns new `Data`.
|
|
31
|
-
* @example
|
|
32
|
-
*
|
|
33
|
-
* const one = {
|
|
34
|
-
* 'a': [{ 'b': 2 }, { 'd': 4 }]
|
|
35
|
-
* };
|
|
36
|
-
*
|
|
37
|
-
* const other = {
|
|
38
|
-
* 'a': [{ 'c': 3 }, { 'e': 5 }]
|
|
39
|
-
* };
|
|
40
|
-
*
|
|
41
|
-
* deepMerge(one, other);
|
|
42
|
-
* // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }
|
|
43
|
-
*/
|
|
44
|
-
export const deepMerge = <A, B>(a: A, b: B, options: { mergeArrays?: boolean } = {}): A & B => {
|
|
45
|
-
const { mergeArrays = true } = options;
|
|
46
|
-
// Handle null/undefined cases
|
|
47
|
-
if (a == null || typeof a !== 'object' || typeof b !== 'object') return b as A & B;
|
|
48
|
-
|
|
49
|
-
// Handle arrays
|
|
50
|
-
if (Array.isArray(a) && Array.isArray(b)) {
|
|
51
|
-
if (mergeArrays) {
|
|
52
|
-
return [...a, ...b] as unknown as A & B;
|
|
53
|
-
} else {
|
|
54
|
-
return b as A & B;
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
// Handle objects
|
|
59
|
-
const result = { ...a } as Record<string, Data>;
|
|
60
|
-
for (const key in b) {
|
|
61
|
-
if (Object.prototype.hasOwnProperty.call(b, key)) {
|
|
62
|
-
const value = (b as Record<string, Data>)[key];
|
|
63
|
-
result[key] = deepMerge((a as Record<string, Data>)[key], value, options);
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
return result as A & B;
|
|
67
|
-
};
|