@adobe/data 0.9.59 → 0.9.61
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/ecs/database/combine-plugins.d.ts +5 -1
- package/dist/ecs/database/combine-plugins.js +3 -3
- package/dist/ecs/database/combine-plugins.js.map +1 -1
- package/dist/ecs/database/create-plugin.d.ts +17 -14
- package/dist/ecs/database/create-plugin.js +2 -1
- package/dist/ecs/database/create-plugin.js.map +1 -1
- package/dist/ecs/database/database.d.ts +32 -4
- package/dist/ecs/database/database.index.performance.test.d.ts +1 -0
- package/dist/ecs/database/database.index.performance.test.js +417 -0
- package/dist/ecs/database/database.index.performance.test.js.map +1 -0
- package/dist/ecs/database/database.index.test.d.ts +1 -0
- package/dist/ecs/database/database.index.test.js +762 -0
- package/dist/ecs/database/database.index.test.js.map +1 -0
- package/dist/ecs/database/database.index.type-test.d.ts +1 -0
- package/dist/ecs/database/database.index.type-test.js +275 -0
- package/dist/ecs/database/database.index.type-test.js.map +1 -0
- package/dist/ecs/database/database.js.map +1 -1
- package/dist/ecs/database/deep-extends-chain.type-test.d.ts +256 -256
- package/dist/ecs/database/index-api-proof.type-test.d.ts +1 -0
- package/dist/ecs/database/index-api-proof.type-test.js +88 -0
- package/dist/ecs/database/index-api-proof.type-test.js.map +1 -0
- package/dist/ecs/database/index-registry/create-index-registry.d.ts +53 -0
- package/dist/ecs/database/index-registry/create-index-registry.js +174 -0
- package/dist/ecs/database/index-registry/create-index-registry.js.map +1 -0
- package/dist/ecs/database/index-registry/create-index.d.ts +60 -0
- package/dist/ecs/database/index-registry/create-index.js +539 -0
- package/dist/ecs/database/index-registry/create-index.js.map +1 -0
- package/dist/ecs/database/index-registry/index.d.ts +4 -0
- package/dist/ecs/database/index-registry/index.js +4 -0
- package/dist/ecs/database/index-registry/index.js.map +1 -0
- package/dist/ecs/database/public/create-database.js +146 -0
- package/dist/ecs/database/public/create-database.js.map +1 -1
- package/dist/ecs/database/transactional-store/transactional-store.d.ts +3 -2
- package/dist/ecs/plugins/scheduler/scheduler.d.ts +1 -0
- package/dist/ecs/store/index-types.d.ts +132 -0
- package/dist/ecs/store/index-types.js +3 -0
- package/dist/ecs/store/index-types.js.map +1 -0
- package/dist/ecs/store/public/create-store.js +189 -3
- package/dist/ecs/store/public/create-store.js.map +1 -1
- package/dist/ecs/store/store.d.ts +30 -13
- package/dist/ecs/store/store.js +5 -4
- package/dist/ecs/store/store.js.map +1 -1
- package/dist/ecs/store/transaction-functions.d.ts +4 -3
- package/dist/equals.js +24 -6
- package/dist/equals.js.map +1 -1
- package/dist/math/aabb/face/from-position.d.ts +1 -1
- package/dist/math/aabb/face/from-position.js +4 -3
- package/dist/math/aabb/face/from-position.js.map +1 -1
- package/dist/math/aabb/schema.js +1 -1
- package/dist/math/aabb/schema.js.map +1 -1
- package/dist/schema/fractional-index/between-n.d.ts +2 -0
- package/dist/schema/fractional-index/between-n.js +34 -0
- package/dist/schema/fractional-index/between-n.js.map +1 -0
- package/dist/schema/fractional-index/between-n.test.d.ts +1 -0
- package/dist/schema/fractional-index/between-n.test.js +36 -0
- package/dist/schema/fractional-index/between-n.test.js.map +1 -0
- package/dist/schema/fractional-index/between.d.ts +2 -0
- package/dist/schema/fractional-index/between.js +3 -0
- package/dist/schema/fractional-index/between.js.map +1 -0
- package/dist/schema/fractional-index/between.test.d.ts +1 -0
- package/dist/schema/fractional-index/between.test.js +68 -0
- package/dist/schema/fractional-index/between.test.js.map +1 -0
- package/dist/schema/fractional-index/decrement-integer.d.ts +1 -0
- package/dist/schema/fractional-index/decrement-integer.js +32 -0
- package/dist/schema/fractional-index/decrement-integer.js.map +1 -0
- package/dist/schema/fractional-index/decrement-integer.test.d.ts +1 -0
- package/dist/schema/fractional-index/decrement-integer.test.js +31 -0
- package/dist/schema/fractional-index/decrement-integer.test.js.map +1 -0
- package/dist/schema/fractional-index/digits.d.ts +1 -0
- package/dist/schema/fractional-index/digits.js +3 -0
- package/dist/schema/fractional-index/digits.js.map +1 -0
- package/dist/schema/fractional-index/fractional-index.d.ts +4 -0
- package/dist/schema/fractional-index/fractional-index.js +2 -0
- package/dist/schema/fractional-index/fractional-index.js.map +1 -0
- package/dist/schema/fractional-index/increment-integer.d.ts +1 -0
- package/dist/schema/fractional-index/increment-integer.js +32 -0
- package/dist/schema/fractional-index/increment-integer.js.map +1 -0
- package/dist/schema/fractional-index/increment-integer.test.d.ts +1 -0
- package/dist/schema/fractional-index/increment-integer.test.js +34 -0
- package/dist/schema/fractional-index/increment-integer.test.js.map +1 -0
- package/dist/schema/fractional-index/initial.d.ts +2 -0
- package/dist/schema/fractional-index/initial.js +2 -0
- package/dist/schema/fractional-index/initial.js.map +1 -0
- package/dist/schema/fractional-index/integer-length.d.ts +1 -0
- package/dist/schema/fractional-index/integer-length.js +9 -0
- package/dist/schema/fractional-index/integer-length.js.map +1 -0
- package/dist/schema/fractional-index/integer-part.d.ts +1 -0
- package/dist/schema/fractional-index/integer-part.js +9 -0
- package/dist/schema/fractional-index/integer-part.js.map +1 -0
- package/dist/schema/fractional-index/key-between.d.ts +2 -0
- package/dist/schema/fractional-index/key-between.js +39 -0
- package/dist/schema/fractional-index/key-between.js.map +1 -0
- package/dist/schema/fractional-index/midpoint.d.ts +1 -0
- package/dist/schema/fractional-index/midpoint.js +23 -0
- package/dist/schema/fractional-index/midpoint.js.map +1 -0
- package/dist/schema/fractional-index/midpoint.test.d.ts +1 -0
- package/dist/schema/fractional-index/midpoint.test.js +83 -0
- package/dist/schema/fractional-index/midpoint.test.js.map +1 -0
- package/dist/schema/fractional-index/public.d.ts +4 -0
- package/dist/schema/fractional-index/public.js +6 -0
- package/dist/schema/fractional-index/public.js.map +1 -0
- package/dist/schema/fractional-index/schema.d.ts +4 -0
- package/dist/schema/fractional-index/schema.js +5 -0
- package/dist/schema/fractional-index/schema.js.map +1 -0
- package/dist/schema/fractional-index/smallest-integer.d.ts +1 -0
- package/dist/schema/fractional-index/smallest-integer.js +3 -0
- package/dist/schema/fractional-index/smallest-integer.js.map +1 -0
- package/dist/schema/fractional-index/validate-integer.d.ts +1 -0
- package/dist/schema/fractional-index/validate-integer.js +7 -0
- package/dist/schema/fractional-index/validate-integer.js.map +1 -0
- package/dist/schema/fractional-index/validate-order-key.d.ts +1 -0
- package/dist/schema/fractional-index/validate-order-key.js +11 -0
- package/dist/schema/fractional-index/validate-order-key.js.map +1 -0
- package/dist/schema/guid/create.d.ts +2 -0
- package/dist/schema/guid/create.js +10 -0
- package/dist/schema/guid/create.js.map +1 -0
- package/dist/schema/guid/create.test.d.ts +1 -0
- package/dist/schema/guid/create.test.js +39 -0
- package/dist/schema/guid/create.test.js.map +1 -0
- package/dist/schema/guid/equals.d.ts +2 -0
- package/dist/schema/guid/equals.js +3 -0
- package/dist/schema/guid/equals.js.map +1 -0
- package/dist/schema/guid/equals.test.d.ts +1 -0
- package/dist/schema/guid/equals.test.js +30 -0
- package/dist/schema/guid/equals.test.js.map +1 -0
- package/dist/schema/guid/from-uuid.d.ts +2 -0
- package/dist/schema/guid/from-uuid.js +15 -0
- package/dist/schema/guid/from-uuid.js.map +1 -0
- package/dist/schema/guid/from-uuid.test.d.ts +1 -0
- package/dist/schema/guid/from-uuid.test.js +39 -0
- package/dist/schema/guid/from-uuid.test.js.map +1 -0
- package/dist/schema/guid/guid.performance.test.d.ts +1 -0
- package/dist/schema/guid/guid.performance.test.js +297 -0
- package/dist/schema/guid/guid.performance.test.js.map +1 -0
- package/dist/schema/guid/index.d.ts +4 -0
- package/dist/schema/guid/index.js +3 -0
- package/dist/schema/guid/index.js.map +1 -0
- package/dist/schema/guid/layout.d.ts +1 -0
- package/dist/schema/guid/layout.js +5 -0
- package/dist/schema/guid/layout.js.map +1 -0
- package/dist/schema/guid/nil.d.ts +2 -0
- package/dist/schema/guid/nil.js +3 -0
- package/dist/schema/guid/nil.js.map +1 -0
- package/dist/schema/guid/public.d.ts +8 -0
- package/dist/schema/guid/public.js +10 -0
- package/dist/schema/guid/public.js.map +1 -0
- package/dist/schema/guid/schema.d.ts +12 -0
- package/dist/schema/guid/schema.js +10 -0
- package/dist/schema/guid/schema.js.map +1 -0
- package/dist/schema/guid/schema.test.d.ts +1 -0
- package/dist/schema/guid/schema.test.js +35 -0
- package/dist/schema/guid/schema.test.js.map +1 -0
- package/dist/schema/guid/to-unserializable-key.d.ts +2 -0
- package/dist/schema/guid/to-unserializable-key.js +10 -0
- package/dist/schema/guid/to-unserializable-key.js.map +1 -0
- package/dist/schema/guid/to-uuid.d.ts +2 -0
- package/dist/schema/guid/to-uuid.js +15 -0
- package/dist/schema/guid/to-uuid.js.map +1 -0
- package/dist/schema/guid/to-uuid.test.d.ts +1 -0
- package/dist/schema/guid/to-uuid.test.js +31 -0
- package/dist/schema/guid/to-uuid.test.js.map +1 -0
- package/dist/schema/index.d.ts +2 -0
- package/dist/schema/index.js +2 -0
- package/dist/schema/index.js.map +1 -1
- package/dist/table/select-rows.d.ts +7 -4
- package/dist/table/select-rows.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/references/data-lit/package.json +1 -1
- package/references/data-lit-tictactoe/package.json +1 -1
- package/references/data-react/package.json +1 -1
- package/references/data-react-hello/package.json +1 -1
- package/references/data-react-pixie/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-store.js","sourceRoot":"","sources":["../../../../src/ecs/store/public/create-store.ts"],"names":[],"mappings":"AAAA,uDAAuD;AAQvD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAMpD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"create-store.js","sourceRoot":"","sources":["../../../../src/ecs/store/public/create-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,11 +13,12 @@ import { ComponentSchemas } from "../component-schemas.js";
|
|
|
13
13
|
import { ResourceSchemas } from "../resource-schemas.js";
|
|
14
14
|
import { createStore } from "./public/create-store.js";
|
|
15
15
|
import { OptionalComponents } from "../optional-components.js";
|
|
16
|
+
import { Index, IndexDeclarations } from "./index-types.js";
|
|
16
17
|
interface BaseStore<C extends object = never> {
|
|
17
18
|
select<Include extends StringKeyof<C & OptionalComponents>>(include: readonly Include[] | ReadonlySet<string>, options?: EntitySelectOptions<C & OptionalComponents, Pick<C & RequiredComponents & OptionalComponents, Include>>): readonly Entity[];
|
|
18
19
|
toData(): unknown;
|
|
19
20
|
}
|
|
20
|
-
export interface ReadonlyStore<C extends Components = never, R extends ResourceComponents = never, A extends ArchetypeComponents<StringKeyof<C>> = never> extends BaseStore<C>, ReadonlyCore<C> {
|
|
21
|
+
export interface ReadonlyStore<C extends Components = never, R extends ResourceComponents = never, A extends ArchetypeComponents<StringKeyof<C>> = never, IX extends IndexDeclarations<C> = {}> extends BaseStore<C>, ReadonlyCore<C> {
|
|
21
22
|
readonly resources: {
|
|
22
23
|
readonly [K in StringKeyof<R>]: R[K];
|
|
23
24
|
};
|
|
@@ -26,12 +27,15 @@ export interface ReadonlyStore<C extends Components = never, R extends ResourceC
|
|
|
26
27
|
[P in A[K][number]]: (C & RequiredComponents & OptionalComponents)[P];
|
|
27
28
|
}>;
|
|
28
29
|
};
|
|
30
|
+
readonly indexes: {
|
|
31
|
+
readonly [K in keyof IX]: Index.Handle<C, IX[K]>;
|
|
32
|
+
};
|
|
29
33
|
}
|
|
30
34
|
export type ToReadonlyStore<T extends Store> = T extends Store<infer C, infer R> ? ReadonlyStore<C, R> : never;
|
|
31
35
|
/**
|
|
32
36
|
* Store is the main interface for storing components, entities and resources.
|
|
33
37
|
*/
|
|
34
|
-
export interface Store<C extends Components = {}, R extends ResourceComponents = {}, A extends ArchetypeComponents<StringKeyof<C>> = {}> extends BaseStore<C>, Core<C> {
|
|
38
|
+
export interface Store<C extends Components = {}, R extends ResourceComponents = {}, A extends ArchetypeComponents<StringKeyof<C>> = {}, IX extends IndexDeclarations<C> = {}> extends BaseStore<C>, Core<C> {
|
|
35
39
|
/**
|
|
36
40
|
* This is used when a store is used to represent a transaction.
|
|
37
41
|
* For most stores, this is ignored if it is set.
|
|
@@ -45,10 +49,19 @@ export interface Store<C extends Components = {}, R extends ResourceComponents =
|
|
|
45
49
|
[P in A[K][number]]: (C & RequiredComponents & OptionalComponents)[P];
|
|
46
50
|
}>;
|
|
47
51
|
};
|
|
52
|
+
/**
|
|
53
|
+
* Index handles keyed by user-chosen name. Returned handles are the
|
|
54
|
+
* same references at the Store layer and the Database layer; mutations
|
|
55
|
+
* to the store keep them in sync as a side effect of every
|
|
56
|
+
* insert/update/delete.
|
|
57
|
+
*/
|
|
58
|
+
readonly indexes: {
|
|
59
|
+
readonly [K in keyof IX]: Index.Handle<C, IX[K]>;
|
|
60
|
+
};
|
|
48
61
|
/** Wipe all entities and reset resources to plugin defaults. O(num_archetypes + num_resources). */
|
|
49
62
|
reset(): void;
|
|
50
63
|
fromData(data: unknown): void;
|
|
51
|
-
extend<S extends Store.Schema>(schema: S): S extends Store.Schema<infer XC, infer XR, infer XA> ? Store<C & XC, R & XR, A & XA> : never;
|
|
64
|
+
extend<S extends Store.Schema>(schema: S): S extends Store.Schema<infer XC, infer XR, infer XA, infer XIX> ? Store<C & XC, R & XR, A & XA, IX & XIX> : never;
|
|
52
65
|
}
|
|
53
66
|
export declare namespace Store {
|
|
54
67
|
type Components<S extends Store> = S extends Store<infer C, infer R, infer A> ? C : never;
|
|
@@ -56,24 +69,27 @@ export declare namespace Store {
|
|
|
56
69
|
type Archetypes<S extends Store> = S extends Store<any, any, infer A> ? A : never;
|
|
57
70
|
type EntityValues<S extends Store<any, any, any>, K extends S extends Store<any, any, infer A> ? StringKeyof<A> : never> = Simplify<Parameters<S["archetypes"][K]["insert"]>[0] & RequiredComponents>;
|
|
58
71
|
type InsertValues<S extends Store<any, any, any>, K extends S extends Store<any, any, infer A> ? StringKeyof<A> : never> = Parameters<S["archetypes"][K]["insert"]>[0];
|
|
59
|
-
type Schema<CS extends ComponentSchemas = any, RS extends ResourceSchemas = any, A extends ArchetypeComponents<StringKeyof<CS>> = any> = {
|
|
72
|
+
type Schema<CS extends ComponentSchemas = any, RS extends ResourceSchemas = any, A extends ArchetypeComponents<StringKeyof<CS>> = any, IX extends IndexDeclarations<FromSchemas<CS>> = {}> = {
|
|
60
73
|
readonly components: CS;
|
|
61
74
|
readonly resources: RS;
|
|
62
75
|
readonly archetypes: A;
|
|
76
|
+
readonly indexes?: IX;
|
|
63
77
|
};
|
|
64
|
-
type FromSchema<T> = T extends Store.Schema<infer CS, infer RS, infer A> ? Store<FromSchemas<CS>, FromSchemas<RS>, A> : never;
|
|
78
|
+
type FromSchema<T> = T extends Store.Schema<infer CS, infer RS, infer A, infer IX> ? Store<FromSchemas<CS>, FromSchemas<RS>, A, IX> : never;
|
|
65
79
|
namespace Schema {
|
|
66
|
-
type Intersect<T extends readonly Schema<any, any, any>[]> = Store.Schema<{} & IntersectTuple<{
|
|
67
|
-
[K in keyof T]: T[K] extends Schema<infer C,
|
|
80
|
+
type Intersect<T extends readonly Schema<any, any, any, any>[]> = Store.Schema<{} & IntersectTuple<{
|
|
81
|
+
[K in keyof T]: T[K] extends Schema<infer C, any, any, any> ? C : never;
|
|
82
|
+
}>, {} & IntersectTuple<{
|
|
83
|
+
[K in keyof T]: T[K] extends Schema<any, infer R, any, any> ? R : never;
|
|
68
84
|
}>, {} & IntersectTuple<{
|
|
69
|
-
[K in keyof T]: T[K] extends Schema<any, infer
|
|
85
|
+
[K in keyof T]: T[K] extends Schema<any, any, infer A, any> ? A : never;
|
|
70
86
|
}>, {} & IntersectTuple<{
|
|
71
|
-
[K in keyof T]: T[K] extends Schema<any, any, infer
|
|
87
|
+
[K in keyof T]: T[K] extends Schema<any, any, any, infer IX> ? IX : never;
|
|
72
88
|
}>>;
|
|
73
89
|
/**
|
|
74
90
|
* Creates a Store schema with optional properties. All schema properties
|
|
75
|
-
* (components, resources, archetypes) are optional and default
|
|
76
|
-
* objects when not provided.
|
|
91
|
+
* (components, resources, archetypes, indexes) are optional and default
|
|
92
|
+
* to empty objects when not provided.
|
|
77
93
|
*
|
|
78
94
|
* @param schema - Partial store schema. Omit any properties you don't need.
|
|
79
95
|
* @param dependencies - Optional array of schemas to merge with. Properties from
|
|
@@ -96,11 +112,12 @@ export declare namespace Store {
|
|
|
96
112
|
* }, [baseSchema]);
|
|
97
113
|
* ```
|
|
98
114
|
*/
|
|
99
|
-
function create<const CS extends ComponentSchemas = {}, const RS extends ResourceSchemas = {}, const A extends ArchetypeComponents<StringKeyof<CS & Intersect<D>["components"]>> = {}, const D extends readonly Store.Schema<any, any, any>[] = []>(schema: Partial<{
|
|
115
|
+
function create<const CS extends ComponentSchemas = {}, const RS extends ResourceSchemas = {}, const A extends ArchetypeComponents<StringKeyof<CS & Intersect<D>["components"]>> = {}, const IX extends IndexDeclarations<FromSchemas<CS & Intersect<D>["components"]>> = {}, const D extends readonly Store.Schema<any, any, any, any>[] = []>(schema: Partial<{
|
|
100
116
|
components: CS;
|
|
101
117
|
resources: RS;
|
|
102
118
|
archetypes: A;
|
|
103
|
-
|
|
119
|
+
indexes: IX;
|
|
120
|
+
}>, dependencies?: D): Intersect<[Store.Schema<CS & Intersect<D>["components"], RS, A, IX>, ...D]>;
|
|
104
121
|
}
|
|
105
122
|
const create: typeof createStore;
|
|
106
123
|
}
|
package/dist/ecs/store/store.js
CHANGED
|
@@ -6,8 +6,8 @@ export var Store;
|
|
|
6
6
|
(function (Schema) {
|
|
7
7
|
/**
|
|
8
8
|
* Creates a Store schema with optional properties. All schema properties
|
|
9
|
-
* (components, resources, archetypes) are optional and default
|
|
10
|
-
* objects when not provided.
|
|
9
|
+
* (components, resources, archetypes, indexes) are optional and default
|
|
10
|
+
* to empty objects when not provided.
|
|
11
11
|
*
|
|
12
12
|
* @param schema - Partial store schema. Omit any properties you don't need.
|
|
13
13
|
* @param dependencies - Optional array of schemas to merge with. Properties from
|
|
@@ -31,14 +31,15 @@ export var Store;
|
|
|
31
31
|
* ```
|
|
32
32
|
*/
|
|
33
33
|
function create(schema, dependencies) {
|
|
34
|
-
const { components = {}, resources = {}, archetypes = {} } = schema;
|
|
34
|
+
const { components = {}, resources = {}, archetypes = {}, indexes = {} } = schema;
|
|
35
35
|
return (dependencies ?? []).reduce((acc, curr) => {
|
|
36
36
|
return {
|
|
37
37
|
components: { ...acc.components, ...curr.components },
|
|
38
38
|
resources: { ...acc.resources, ...curr.resources },
|
|
39
39
|
archetypes: { ...acc.archetypes, ...curr.archetypes },
|
|
40
|
+
indexes: { ...acc.indexes, ...curr.indexes },
|
|
40
41
|
};
|
|
41
|
-
}, { components, resources, archetypes });
|
|
42
|
+
}, { components, resources, archetypes, indexes });
|
|
42
43
|
}
|
|
43
44
|
Schema.create = create;
|
|
44
45
|
})(Schema = Store.Schema || (Store.Schema = {}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../../src/ecs/store/store.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../../src/ecs/store/store.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAwDvD,2DAA2D;AAC3D,MAAM,KAAW,KAAK,CAsHrB;AAtHD,WAAiB,KAAK;IAuBlB,IAAiB,MAAM,CA4FtB;IA5FD,WAAiB,MAAM;QAsCnB;;;;;;;;;;;;;;;;;;;;;;;;;WAyBG;QACH,SAAgB,MAAM,CAOlB,MAKE,EACF,YAAgB;YAEhB,MAAM,EAAE,UAAU,GAAG,EAAE,EAAE,SAAS,GAAG,EAAE,EAAE,UAAU,GAAG,EAAE,EAAE,OAAO,GAAG,EAAE,EAAE,GAAG,MAAM,CAAC;YAClF,OAAO,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;gBAC7C,OAAO;oBACH,UAAU,EAAE,EAAE,GAAG,GAAG,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE;oBACrD,SAAS,EAAE,EAAE,GAAG,GAAG,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE;oBAClD,UAAU,EAAE,EAAE,GAAG,GAAG,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE;oBACrD,OAAO,EAAE,EAAE,GAAG,GAAG,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE;iBAC/C,CAAA;YACL,CAAC,EACG,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,EAAS,CACxD,CAAC;QACN,CAAC;QA1Be,aAAM,SA0BrB,CAAA;IAEL,CAAC,EA5FgB,MAAM,GAAN,YAAM,KAAN,YAAM,QA4FtB;IAEY,YAAM,GAAG,WAAW,CAAC;AACtC,CAAC,EAtHgB,KAAK,KAAL,KAAK,QAsHrB"}
|
|
@@ -3,11 +3,12 @@ import { Components } from "./components.js";
|
|
|
3
3
|
import { ResourceComponents } from "./resource-components.js";
|
|
4
4
|
import { ArchetypeComponents } from "./archetype-components.js";
|
|
5
5
|
import { StringKeyof } from "../../types/types.js";
|
|
6
|
+
import { IndexDeclarations } from "./index-types.js";
|
|
6
7
|
import type { TransactionContext } from "../database/transactional-store/transactional-store.js";
|
|
7
|
-
export type TransactionDeclaration<C extends Components, R extends ResourceComponents, A extends ArchetypeComponents<StringKeyof<C>>, Input extends any | void = any> = (t: TransactionContext<C, R, A>, input: Input) => void | Entity;
|
|
8
|
+
export type TransactionDeclaration<C extends Components, R extends ResourceComponents, A extends ArchetypeComponents<StringKeyof<C>>, IX extends IndexDeclarations<C> = {}, Input extends any | void = any> = (t: TransactionContext<C, R, A, IX>, input: Input) => void | Entity;
|
|
8
9
|
export type AsyncArgsProvider<T> = () => Promise<T> | AsyncGenerator<T>;
|
|
9
|
-
export type TransactionDeclarations<C extends Components, R extends ResourceComponents, A extends ArchetypeComponents<StringKeyof<C
|
|
10
|
-
readonly [Q: string]: TransactionDeclaration<C, R, A>;
|
|
10
|
+
export type TransactionDeclarations<C extends Components, R extends ResourceComponents, A extends ArchetypeComponents<StringKeyof<C>>, IX extends IndexDeclarations<C> = {}> = {
|
|
11
|
+
readonly [Q: string]: TransactionDeclaration<C, R, A, IX>;
|
|
11
12
|
};
|
|
12
13
|
/**
|
|
13
14
|
* Converts from TransactionDeclarations to TransactionFunctions by removing
|
package/dist/equals.js
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
// © 2026 Adobe. MIT License. See /LICENSE for details.
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
// Typed-buffer brand emitted by `TypedBuffer`'s `__brand` field. Duck-typed
|
|
3
|
+
// here (instead of `instanceof TypedBuffer`) so this module has no runtime
|
|
4
|
+
// dependency on `typed-buffer/` — `equals` is the mutual-recursion partner
|
|
5
|
+
// of `typedBufferEquals`, and importing the class would close the cycle
|
|
6
|
+
// `equals → is-typed-buffer → typed-buffer → typed-buffer-equals → equals`.
|
|
7
|
+
const TYPED_BUFFER_BRAND = "TypedBuffer";
|
|
4
8
|
/**
|
|
5
9
|
* Very-fast deep equality for JSON-style values.
|
|
6
10
|
*
|
|
@@ -35,11 +39,25 @@ export function equals(a, b) {
|
|
|
35
39
|
}
|
|
36
40
|
return true;
|
|
37
41
|
}
|
|
38
|
-
// 3 Typed-buffer fast path
|
|
39
|
-
|
|
40
|
-
|
|
42
|
+
// 3 Typed-buffer fast path. Inlined here (rather than dispatched to
|
|
43
|
+
// `typedBufferEquals`) so the recursion stays intra-module; see the
|
|
44
|
+
// brand comment above.
|
|
45
|
+
const aBuf = a.__brand === TYPED_BUFFER_BRAND;
|
|
46
|
+
const bBuf = b.__brand === TYPED_BUFFER_BRAND;
|
|
41
47
|
if (aBuf || bBuf) {
|
|
42
|
-
|
|
48
|
+
if (!aBuf || !bBuf)
|
|
49
|
+
return false;
|
|
50
|
+
const ab = a;
|
|
51
|
+
const bb = b;
|
|
52
|
+
if (ab.type !== bb.type || ab.capacity !== bb.capacity)
|
|
53
|
+
return false;
|
|
54
|
+
if (!equals(ab.schema, bb.schema))
|
|
55
|
+
return false;
|
|
56
|
+
for (let i = 0; i < ab.capacity; i++) {
|
|
57
|
+
if (!equals(ab.get(i), bb.get(i)))
|
|
58
|
+
return false;
|
|
59
|
+
}
|
|
60
|
+
return true;
|
|
43
61
|
}
|
|
44
62
|
// 4 Plain objects
|
|
45
63
|
const ao = a;
|
package/dist/equals.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"equals.js","sourceRoot":"","sources":["../src/equals.ts"],"names":[],"mappings":"AAAA,uDAAuD;
|
|
1
|
+
{"version":3,"file":"equals.js","sourceRoot":"","sources":["../src/equals.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Vec3 } from "../../vec3/index.js";
|
|
2
|
-
import { Aabb } from "../index.js";
|
|
2
|
+
import type { Aabb } from "../index.js";
|
|
3
3
|
import type { Face } from "./face.js";
|
|
4
4
|
/**
|
|
5
5
|
* Single-face bit closest to `position` in normalized box space (unit cube centered on origin by default).
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
// © 2026 Adobe. MIT License. See /LICENSE for details.
|
|
2
|
-
import {
|
|
2
|
+
import { center } from "../center.js";
|
|
3
|
+
import { unit } from "../unit.js";
|
|
3
4
|
import { NEG_X } from "./neg-x.js";
|
|
4
5
|
import { NEG_Y } from "./neg-y.js";
|
|
5
6
|
import { NEG_Z } from "./neg-z.js";
|
|
@@ -11,8 +12,8 @@ import { POS_Z } from "./pos-z.js";
|
|
|
11
12
|
* @param position World position of the sample point
|
|
12
13
|
* @param aabb Bounds used to compute the box center (defaults to unit cube)
|
|
13
14
|
*/
|
|
14
|
-
export const fromPosition = (position, aabb =
|
|
15
|
-
const aabbCenter =
|
|
15
|
+
export const fromPosition = (position, aabb = unit) => {
|
|
16
|
+
const aabbCenter = center(aabb);
|
|
16
17
|
const localPos = [
|
|
17
18
|
position[0] - aabbCenter[0],
|
|
18
19
|
position[1] - aabbCenter[1],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"from-position.js","sourceRoot":"","sources":["../../../../src/math/aabb/face/from-position.ts"],"names":[],"mappings":"AAAA,uDAAuD;
|
|
1
|
+
{"version":3,"file":"from-position.js","sourceRoot":"","sources":["../../../../src/math/aabb/face/from-position.ts"],"names":[],"mappings":"AAAA,uDAAuD;AAIvD,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAElC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC;;;;GAIG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,QAAc,EAAE,OAAa,IAAI,EAAQ,EAAE;IACpE,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IAChC,MAAM,QAAQ,GAAG;QACb,QAAQ,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;QAC3B,QAAQ,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;QAC3B,QAAQ,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;KAC9B,CAAC;IAEF,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IACnC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IACnC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAEnC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;QAC/B,OAAO,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;IAC3C,CAAC;IACD,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;QACf,OAAO,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;IAC3C,CAAC;IACD,OAAO,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;AAC3C,CAAC,CAAC"}
|
package/dist/math/aabb/schema.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/math/aabb/schema.ts"],"names":[],"mappings":"AAAA,uDAAuD;AAGvD,OAAO,EAAE,IAAI,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/math/aabb/schema.ts"],"names":[],"mappings":"AAAA,uDAAuD;AAGvD,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAExC,MAAM,CAAC,MAAM,MAAM,GAAG;IAClB,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACR,GAAG,EAAE,IAAI,CAAC,MAAM;QAChB,GAAG,EAAE,IAAI,CAAC,MAAM;KACnB;IACD,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC;IACxB,oBAAoB,EAAE,KAAK;IAC3B,OAAO,EAAE;QACL,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;QACxB,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;KAC3B;CACsB,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { keyBetween } from "./key-between.js";
|
|
2
|
+
export const betweenN = (a, b, n) => {
|
|
3
|
+
if (n === 0)
|
|
4
|
+
return [];
|
|
5
|
+
if (n === 1)
|
|
6
|
+
return [keyBetween(a, b)];
|
|
7
|
+
if (b === undefined) {
|
|
8
|
+
let c = keyBetween(a, b);
|
|
9
|
+
const result = [c];
|
|
10
|
+
for (let i = 0; i < n - 1; i++) {
|
|
11
|
+
c = keyBetween(c, b);
|
|
12
|
+
result.push(c);
|
|
13
|
+
}
|
|
14
|
+
return result;
|
|
15
|
+
}
|
|
16
|
+
if (a === undefined) {
|
|
17
|
+
let c = keyBetween(a, b);
|
|
18
|
+
const result = [c];
|
|
19
|
+
for (let i = 0; i < n - 1; i++) {
|
|
20
|
+
c = keyBetween(a, c);
|
|
21
|
+
result.push(c);
|
|
22
|
+
}
|
|
23
|
+
result.reverse();
|
|
24
|
+
return result;
|
|
25
|
+
}
|
|
26
|
+
const mid = Math.floor(n / 2);
|
|
27
|
+
const c = keyBetween(a, b);
|
|
28
|
+
return [
|
|
29
|
+
...betweenN(a, c, mid),
|
|
30
|
+
c,
|
|
31
|
+
...betweenN(c, b, n - mid - 1),
|
|
32
|
+
];
|
|
33
|
+
};
|
|
34
|
+
//# sourceMappingURL=between-n.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"between-n.js","sourceRoot":"","sources":["../../../src/schema/fractional-index/between-n.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,MAAM,CAAC,MAAM,QAAQ,GAAG,CACpB,CAA8B,EAC9B,CAA8B,EAC9B,CAAS,EACQ,EAAE;IACnB,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACvB,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAEvC,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;QAClB,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACzB,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;QACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC7B,CAAC,GAAG,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACrB,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACnB,CAAC;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;QAClB,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACzB,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;QACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC7B,CAAC,GAAG,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACrB,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACnB,CAAC;QACD,MAAM,CAAC,OAAO,EAAE,CAAC;QACjB,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9B,MAAM,CAAC,GAAG,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3B,OAAO;QACH,GAAG,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC;QACtB,CAAC;QACD,GAAG,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;KACjC,CAAC;AACN,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
// © 2026 Adobe. MIT License. See /LICENSE for details.
|
|
2
|
+
import { describe, it, expect } from "vitest";
|
|
3
|
+
import { betweenN } from "./between-n.js";
|
|
4
|
+
const fi = (s) => s;
|
|
5
|
+
describe("betweenN", () => {
|
|
6
|
+
it("returns empty array for n = 0", () => {
|
|
7
|
+
expect(betweenN(undefined, undefined, 0)).toEqual([]);
|
|
8
|
+
});
|
|
9
|
+
it("generates n keys between undefined bounds", () => {
|
|
10
|
+
expect(betweenN(undefined, undefined, 5).join(" ")).toBe("a0 a1 a2 a3 a4");
|
|
11
|
+
});
|
|
12
|
+
it("generates n keys after a lower bound", () => {
|
|
13
|
+
expect(betweenN(fi("a4"), undefined, 10).join(" ")).toBe("a5 a6 a7 a8 a9 aA aB aC aD aE");
|
|
14
|
+
});
|
|
15
|
+
it("generates n keys before an upper bound", () => {
|
|
16
|
+
expect(betweenN(undefined, fi("a0"), 5).join(" ")).toBe("Zv Zw Zx Zy Zz");
|
|
17
|
+
});
|
|
18
|
+
it("generates n keys between two bounds (shared integer part)", () => {
|
|
19
|
+
expect(betweenN(fi("a0"), fi("a2"), 20).join(" ")).toBe("a04 a08 a0G a0K a0O a0V a0Z a0d a0l a0t a1 a14 a18 a1G a1O a1V a1Z a1d a1l a1t");
|
|
20
|
+
});
|
|
21
|
+
it("keys are in strictly ascending order", () => {
|
|
22
|
+
const keys = betweenN(fi("a0"), fi("b00"), 50);
|
|
23
|
+
for (let i = 1; i < keys.length; i++) {
|
|
24
|
+
expect(keys[i] > keys[i - 1]).toBe(true);
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
it("bulk insert of 500 keys grows length by at most 2 chars", () => {
|
|
28
|
+
const start = fi("a0");
|
|
29
|
+
const end = betweenN(start, undefined, 1)[0];
|
|
30
|
+
const keys = betweenN(start, end, 500);
|
|
31
|
+
const baseline = Math.max(start.length, end.length);
|
|
32
|
+
const maxLen = keys.reduce((m, k) => Math.max(m, k.length), 0);
|
|
33
|
+
expect(maxLen).toBe(baseline + 2);
|
|
34
|
+
});
|
|
35
|
+
});
|
|
36
|
+
//# sourceMappingURL=between-n.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"between-n.test.js","sourceRoot":"","sources":["../../../src/schema/fractional-index/between-n.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"between.js","sourceRoot":"","sources":["../../../src/schema/fractional-index/between.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,MAAM,CAAC,MAAM,OAAO,GAAG,CACnB,CAA8B,EAC9B,CAA8B,EACf,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
// © 2026 Adobe. MIT License. See /LICENSE for details.
|
|
2
|
+
import { describe, it, expect } from "vitest";
|
|
3
|
+
import { between } from "./between.js";
|
|
4
|
+
const fi = (s) => s;
|
|
5
|
+
describe("between", () => {
|
|
6
|
+
it("returns initial when both bounds are undefined", () => {
|
|
7
|
+
expect(between(undefined, undefined)).toBe("a0");
|
|
8
|
+
});
|
|
9
|
+
it("generates keys before an existing key", () => {
|
|
10
|
+
expect(between(undefined, fi("a0"))).toBe("Zz");
|
|
11
|
+
expect(between(undefined, fi("Y00"))).toBe("Xzzz");
|
|
12
|
+
expect(between(undefined, fi("a0V"))).toBe("a0");
|
|
13
|
+
expect(between(undefined, fi("b999"))).toBe("b99");
|
|
14
|
+
expect(between(undefined, fi("A000000000000000000000000001"))).toBe("A000000000000000000000000000V");
|
|
15
|
+
});
|
|
16
|
+
it("generates keys after an existing key", () => {
|
|
17
|
+
expect(between(fi("a0"), undefined)).toBe("a1");
|
|
18
|
+
expect(between(fi("bzz"), undefined)).toBe("c000");
|
|
19
|
+
expect(between(fi("zzzzzzzzzzzzzzzzzzzzzzzzzzy"), undefined)).toBe("zzzzzzzzzzzzzzzzzzzzzzzzzzz");
|
|
20
|
+
expect(between(fi("zzzzzzzzzzzzzzzzzzzzzzzzzzz"), undefined)).toBe("zzzzzzzzzzzzzzzzzzzzzzzzzzzV");
|
|
21
|
+
});
|
|
22
|
+
it("generates keys between two existing keys", () => {
|
|
23
|
+
expect(between(fi("a0"), fi("a1"))).toBe("a0V");
|
|
24
|
+
expect(between(fi("a0V"), fi("a1"))).toBe("a0l");
|
|
25
|
+
expect(between(fi("Zz"), fi("a0"))).toBe("ZzV");
|
|
26
|
+
expect(between(fi("Zz"), fi("a1"))).toBe("a0");
|
|
27
|
+
expect(between(fi("a0"), fi("a0V"))).toBe("a0G");
|
|
28
|
+
expect(between(fi("a0"), fi("a0G"))).toBe("a08");
|
|
29
|
+
expect(between(fi("b125"), fi("b129"))).toBe("b127");
|
|
30
|
+
expect(between(fi("a0"), fi("a1V"))).toBe("a1");
|
|
31
|
+
expect(between(fi("Zz"), fi("a01"))).toBe("a0");
|
|
32
|
+
});
|
|
33
|
+
it("throws for invalid key (smallest integer)", () => {
|
|
34
|
+
expect(() => between(undefined, fi("A00000000000000000000000000"))).toThrow("invalid order key");
|
|
35
|
+
});
|
|
36
|
+
it("throws for trailing zero in fractional part", () => {
|
|
37
|
+
expect(() => between(undefined, fi("b0"))).toThrow("invalid order key");
|
|
38
|
+
expect(() => between(fi("a00"), undefined)).toThrow("invalid order key");
|
|
39
|
+
expect(() => between(fi("a00"), fi("a1"))).toThrow("invalid order key");
|
|
40
|
+
});
|
|
41
|
+
it("throws when head is a digit instead of a letter", () => {
|
|
42
|
+
expect(() => between(fi("0"), fi("1"))).toThrow("Invalid order key head");
|
|
43
|
+
});
|
|
44
|
+
it("throws when a >= b", () => {
|
|
45
|
+
expect(() => between(fi("a1"), fi("a0"))).toThrow("Invalid key order: a >= b");
|
|
46
|
+
});
|
|
47
|
+
it("max length for 100k consecutive appends is 4 chars", () => {
|
|
48
|
+
let current = fi("a0");
|
|
49
|
+
let maxLen = current.length;
|
|
50
|
+
for (let i = 0; i < 100_000; i++) {
|
|
51
|
+
current = between(current, undefined);
|
|
52
|
+
if (current.length > maxLen)
|
|
53
|
+
maxLen = current.length;
|
|
54
|
+
}
|
|
55
|
+
expect(maxLen).toBe(4);
|
|
56
|
+
});
|
|
57
|
+
it("max length for 500 consecutive head-inserts is 86 chars", () => {
|
|
58
|
+
let next;
|
|
59
|
+
let maxLen = 0;
|
|
60
|
+
for (let i = 0; i < 500; i++) {
|
|
61
|
+
next = between(fi("a0"), next);
|
|
62
|
+
if (next.length > maxLen)
|
|
63
|
+
maxLen = next.length;
|
|
64
|
+
}
|
|
65
|
+
expect(maxLen).toBe(86);
|
|
66
|
+
});
|
|
67
|
+
});
|
|
68
|
+
//# sourceMappingURL=between.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"between.test.js","sourceRoot":"","sources":["../../../src/schema/fractional-index/between.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const decrementInteger: (x: string) => string | undefined;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
// © 2026 Adobe. MIT License. See /LICENSE for details.
|
|
2
|
+
import { digits } from "./digits.js";
|
|
3
|
+
import { validateInteger } from "./validate-integer.js";
|
|
4
|
+
export const decrementInteger = (x) => {
|
|
5
|
+
validateInteger(x);
|
|
6
|
+
const [head, ...digs] = x.split("");
|
|
7
|
+
let borrow = true;
|
|
8
|
+
for (let i = digs.length - 1; borrow && i >= 0; i--) {
|
|
9
|
+
const d = digits.indexOf(digs[i]) - 1;
|
|
10
|
+
if (d === -1) {
|
|
11
|
+
digs[i] = digits.slice(-1);
|
|
12
|
+
}
|
|
13
|
+
else {
|
|
14
|
+
digs[i] = digits.charAt(d);
|
|
15
|
+
borrow = false;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
if (borrow) {
|
|
19
|
+
if (head === "a")
|
|
20
|
+
return "Z" + digits.slice(-1);
|
|
21
|
+
if (head === "A")
|
|
22
|
+
return undefined;
|
|
23
|
+
const h = String.fromCharCode(head.charCodeAt(0) - 1);
|
|
24
|
+
if (h < "Z")
|
|
25
|
+
digs.push(digits.slice(-1));
|
|
26
|
+
else
|
|
27
|
+
digs.pop();
|
|
28
|
+
return h + digs.join("");
|
|
29
|
+
}
|
|
30
|
+
return head + digs.join("");
|
|
31
|
+
};
|
|
32
|
+
//# sourceMappingURL=decrement-integer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decrement-integer.js","sourceRoot":"","sources":["../../../src/schema/fractional-index/decrement-integer.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAS,EAAsB,EAAE;IAC9D,eAAe,CAAC,CAAC,CAAC,CAAC;IACnB,MAAM,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACpC,IAAI,MAAM,GAAG,IAAI,CAAC;IAClB,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAClD,MAAM,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACtC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/B,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAC3B,MAAM,GAAG,KAAK,CAAC;QACnB,CAAC;IACL,CAAC;IACD,IAAI,MAAM,EAAE,CAAC;QACT,IAAI,IAAI,KAAK,GAAG;YAAE,OAAO,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAChD,IAAI,IAAI,KAAK,GAAG;YAAE,OAAO,SAAS,CAAC;QACnC,MAAM,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACtD,IAAI,CAAC,GAAG,GAAG;YAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;;YAAM,IAAI,CAAC,GAAG,EAAE,CAAC;QAC1D,OAAO,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC7B,CAAC;IACD,OAAO,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAChC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
// © 2026 Adobe. MIT License. See /LICENSE for details.
|
|
2
|
+
import { describe, it, expect } from "vitest";
|
|
3
|
+
import { decrementInteger } from "./decrement-integer.js";
|
|
4
|
+
describe("decrementInteger", () => {
|
|
5
|
+
it("decrements simple keys", () => {
|
|
6
|
+
expect(decrementInteger("a1")).toBe("a0");
|
|
7
|
+
expect(decrementInteger("a2")).toBe("a1");
|
|
8
|
+
});
|
|
9
|
+
it("borrows across digit positions", () => {
|
|
10
|
+
expect(decrementInteger("b00")).toBe("az");
|
|
11
|
+
expect(decrementInteger("b10")).toBe("b0z");
|
|
12
|
+
expect(decrementInteger("b20")).toBe("b1z");
|
|
13
|
+
expect(decrementInteger("c000")).toBe("bzz");
|
|
14
|
+
expect(decrementInteger("dAC00")).toBe("dABzz");
|
|
15
|
+
});
|
|
16
|
+
it("crosses the positive/negative boundary", () => {
|
|
17
|
+
expect(decrementInteger("Zz")).toBe("Zy");
|
|
18
|
+
expect(decrementInteger("a0")).toBe("Zz");
|
|
19
|
+
});
|
|
20
|
+
it("handles transitions that lengthen the integer part (negative side)", () => {
|
|
21
|
+
expect(decrementInteger("Yzz")).toBe("Yzy");
|
|
22
|
+
expect(decrementInteger("Z0")).toBe("Yzz");
|
|
23
|
+
expect(decrementInteger("Xz00")).toBe("Xyzz");
|
|
24
|
+
expect(decrementInteger("Xz01")).toBe("Xz00");
|
|
25
|
+
expect(decrementInteger("Y00")).toBe("Xzzz");
|
|
26
|
+
});
|
|
27
|
+
it("returns undefined at the bottom of range", () => {
|
|
28
|
+
expect(decrementInteger("A00000000000000000000000000")).toBeUndefined();
|
|
29
|
+
});
|
|
30
|
+
});
|
|
31
|
+
//# sourceMappingURL=decrement-integer.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decrement-integer.test.js","sourceRoot":"","sources":["../../../src/schema/fractional-index/decrement-integer.test.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE1D,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAC9B,EAAE,CAAC,wBAAwB,EAAE,GAAG,EAAE;QAC9B,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1C,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;QACtC,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3C,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5C,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5C,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7C,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;QAC9C,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1C,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oEAAoE,EAAE,GAAG,EAAE;QAC1E,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5C,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3C,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC9C,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC9C,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;QAChD,MAAM,CAAC,gBAAgB,CAAC,6BAA6B,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;IAC5E,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const digits = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"digits.js","sourceRoot":"","sources":["../../../src/schema/fractional-index/digits.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,MAAM,CAAC,MAAM,MAAM,GAAG,gEAAgE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fractional-index.js","sourceRoot":"","sources":["../../../src/schema/fractional-index/fractional-index.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,eAAe,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const incrementInteger: (x: string) => string | undefined;
|