@adobe/data 0.9.62 → 0.9.64
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/create-plugin.d.ts +52 -30
- package/dist/ecs/database/create-plugin.js +6 -1
- package/dist/ecs/database/create-plugin.js.map +1 -1
- package/dist/ecs/database/create-plugin.test.js +6 -0
- package/dist/ecs/database/create-plugin.test.js.map +1 -1
- package/dist/ecs/database/database.index.performance.test.js +5 -5
- package/dist/ecs/database/database.index.performance.test.js.map +1 -1
- package/dist/ecs/database/database.index.test.js +193 -68
- package/dist/ecs/database/database.index.test.js.map +1 -1
- package/dist/ecs/database/database.index.type-test.js +34 -10
- package/dist/ecs/database/database.index.type-test.js.map +1 -1
- package/dist/ecs/database/imports-chain.type-test.d.ts +1 -0
- package/dist/ecs/database/imports-chain.type-test.js +90 -0
- package/dist/ecs/database/imports-chain.type-test.js.map +1 -0
- package/dist/ecs/database/index-registry/create-index-registry.d.ts +38 -9
- package/dist/ecs/database/index-registry/create-index-registry.js +67 -20
- package/dist/ecs/database/index-registry/create-index-registry.js.map +1 -1
- package/dist/ecs/database/index-registry/create-index.d.ts +10 -2
- package/dist/ecs/database/index-registry/create-index.js +44 -47
- package/dist/ecs/database/index-registry/create-index.js.map +1 -1
- package/dist/ecs/database/public/create-database.js +5 -7
- package/dist/ecs/database/public/create-database.js.map +1 -1
- package/dist/ecs/store/core/select-entities.js +6 -3
- package/dist/ecs/store/core/select-entities.js.map +1 -1
- package/dist/ecs/store/index-types.d.ts +43 -17
- package/dist/ecs/store/public/create-store.js +15 -5
- package/dist/ecs/store/public/create-store.js.map +1 -1
- package/dist/ecs/store/store.d.ts +2 -2
- package/dist/functions/compare.d.ts +13 -0
- package/dist/functions/compare.js +15 -0
- package/dist/functions/compare.js.map +1 -0
- package/dist/functions/compare.test.d.ts +1 -0
- package/dist/functions/compare.test.js +24 -0
- package/dist/functions/compare.test.js.map +1 -0
- package/dist/functions/index.d.ts +1 -0
- package/dist/functions/index.js +1 -0
- package/dist/functions/index.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
|
@@ -6,8 +6,8 @@ import { Components } from "./components.js";
|
|
|
6
6
|
* If `T` is an array type, the element type; otherwise `T` unchanged.
|
|
7
7
|
*
|
|
8
8
|
* Multi-value indexes auto-fan-out array values into per-element bucket
|
|
9
|
-
* entries at insert time. The lookup
|
|
10
|
-
* type, not the array — a query like `find("joe")` against a
|
|
9
|
+
* entries at insert time. The lookup field therefore takes the element
|
|
10
|
+
* type, not the array — a query like `find({ assigned: "joe" })` against a
|
|
11
11
|
* `Task { assigned: string[] }` is exactly what users want, and an array
|
|
12
12
|
* as a single opaque key is virtually never useful (order-dependent, not
|
|
13
13
|
* a natural query shape).
|
|
@@ -16,24 +16,35 @@ type ElementOf<T> = T extends readonly (infer E)[] ? E : T;
|
|
|
16
16
|
/**
|
|
17
17
|
* Per-slot extractor in a compound `key` declaration. Either:
|
|
18
18
|
* - a `StringKeyof<C>` — read the value of that column directly, or
|
|
19
|
-
* - a function — derive the slot's value from
|
|
19
|
+
* - a function — derive the slot's value from a single **named object** of the
|
|
20
|
+
* component values, read by name (e.g. `(c) => c.email!.toLowerCase()`), not
|
|
21
|
+
* from positional arguments.
|
|
22
|
+
*
|
|
23
|
+
* The argument is typed `Partial<C>`: at runtime only the index's declared
|
|
24
|
+
* `components` are populated, and the type marks every field optional rather
|
|
25
|
+
* than unsafely implying all of `C` is present — so the extractor acknowledges
|
|
26
|
+
* possible absence (use `!` / `?.` on the components you declared).
|
|
20
27
|
*/
|
|
21
|
-
export type IndexKeySlot<C extends Components> = StringKeyof<C> | ((
|
|
28
|
+
export type IndexKeySlot<C extends Components> = StringKeyof<C> | ((components: Partial<C>) => unknown);
|
|
22
29
|
/**
|
|
23
|
-
* The
|
|
24
|
-
* argument
|
|
30
|
+
* The three shapes a `key` declaration can take. Every shape resolves to a
|
|
31
|
+
* **named object** lookup argument via {@link FindArg} — there is no scalar
|
|
32
|
+
* form, so `find` / `get` / `observe` are uniform across all indexes.
|
|
25
33
|
*
|
|
26
|
-
* - `string` — read this one column.
|
|
34
|
+
* - `string` — read this one column. Sugar for the single-element tuple
|
|
35
|
+
* `[col]`; `find` takes `{ col: value }` (not a bare scalar).
|
|
27
36
|
* - `readonly string[]` — read each of these columns. `find` takes
|
|
28
37
|
* `{ col1: ..., col2: ... }` keyed by the column names themselves.
|
|
29
|
-
* - `(...args) => Value` — derive the bucket key from the components.
|
|
30
|
-
* `find` takes whatever the function returns (or its element type
|
|
31
|
-
* when the return is an array — multi-value fan-out).
|
|
32
38
|
* - slot map — name each part of a compound key; values are either
|
|
33
|
-
* column-name strings (identity) or extractor functions. `find`
|
|
34
|
-
*
|
|
39
|
+
* column-name strings (identity) or extractor functions. `find` takes an
|
|
40
|
+
* object keyed by the slot names. A computed key is a single-slot map,
|
|
41
|
+
* e.g. `{ emailLower: (email) => email.toLowerCase() }`, so the derived
|
|
42
|
+
* value is still addressed by name.
|
|
43
|
+
*
|
|
44
|
+
* (There is intentionally no bare `(...args) => Value` form: a computed value
|
|
45
|
+
* needs a name to appear in the lookup object, so wrap it in a slot map.)
|
|
35
46
|
*/
|
|
36
|
-
export type IndexKey<C extends Components> = StringKeyof<C> | readonly StringKeyof<C>[] |
|
|
47
|
+
export type IndexKey<C extends Components> = StringKeyof<C> | readonly StringKeyof<C>[] | {
|
|
37
48
|
readonly [slot: string]: IndexKeySlot<C>;
|
|
38
49
|
};
|
|
39
50
|
/**
|
|
@@ -78,10 +89,16 @@ export type Index<C extends Components = any, K extends IndexKey<C> = IndexKey<C
|
|
|
78
89
|
* type if the return is an array).
|
|
79
90
|
*/
|
|
80
91
|
type SlotFindType<C extends Components, V> = V extends StringKeyof<C> ? ElementOf<C[V]> : V extends (...args: any[]) => infer R ? ElementOf<R> : never;
|
|
81
|
-
/**
|
|
82
|
-
|
|
92
|
+
/**
|
|
93
|
+
* Argument type of `find` / `get` / `observe`, derived from the `key` shape.
|
|
94
|
+
* Always a named object: a single-column key yields `{ col: value }`, a tuple
|
|
95
|
+
* yields one field per column, and a slot map yields one field per slot.
|
|
96
|
+
*/
|
|
97
|
+
type FindArg<C extends Components, K> = K extends StringKeyof<C> ? {
|
|
98
|
+
readonly [P in K]: ElementOf<C[P]>;
|
|
99
|
+
} : K extends readonly StringKeyof<C>[] ? {
|
|
83
100
|
readonly [P in K[number]]: ElementOf<C[P]>;
|
|
84
|
-
} : K extends
|
|
101
|
+
} : K extends Record<string, IndexKeySlot<C>> ? {
|
|
85
102
|
readonly [Slot in keyof K]: SlotFindType<C, K[Slot]>;
|
|
86
103
|
} : never;
|
|
87
104
|
/** Comparison-operator filter on a scalar bucket-key value. */
|
|
@@ -131,12 +148,21 @@ export declare namespace Index {
|
|
|
131
148
|
* silently passes the constraint. Inlining `key: IndexKey<C>` here makes
|
|
132
149
|
* the typo a type error at the plugin descriptor.
|
|
133
150
|
*/
|
|
134
|
-
export type IndexDeclarations<C extends Components = any> = {
|
|
151
|
+
export type IndexDeclarations<C extends Components = any, A = any> = {
|
|
135
152
|
readonly [name: string]: {
|
|
136
153
|
readonly key: IndexKey<C>;
|
|
137
154
|
readonly order?: IndexOrder<C>;
|
|
138
155
|
readonly unique?: boolean;
|
|
139
156
|
readonly components?: readonly StringKeyof<C>[];
|
|
157
|
+
/**
|
|
158
|
+
* Scope the index to a single archetype (by declared name). Only
|
|
159
|
+
* entities that are that archetype (a superset of its components) are
|
|
160
|
+
* indexed — entities in other archetypes that merely share the key
|
|
161
|
+
* column are excluded. `A` is the schema's archetype map, so the name
|
|
162
|
+
* is checked against the declared archetypes; when unthreaded it
|
|
163
|
+
* widens to `string`.
|
|
164
|
+
*/
|
|
165
|
+
readonly archetype?: StringKeyof<A>;
|
|
140
166
|
};
|
|
141
167
|
};
|
|
142
168
|
export {};
|
|
@@ -39,7 +39,10 @@ export function createStore(schema) {
|
|
|
39
39
|
// Strip `id` — it is never a useful index key.
|
|
40
40
|
const { id: _id, ...rest } = values;
|
|
41
41
|
return rest;
|
|
42
|
-
}
|
|
42
|
+
},
|
|
43
|
+
// Resolve an `archetype`-scoped index to that archetype's declared
|
|
44
|
+
// component set (archetypes are registered before indexes in `extend`).
|
|
45
|
+
(archetypeName) => archetypeComponentNames[archetypeName]);
|
|
43
46
|
/**
|
|
44
47
|
* Populate an index from the archetypes whose component set is a
|
|
45
48
|
* superset of the index's `components`. Only those archetypes can
|
|
@@ -180,9 +183,11 @@ export function createStore(schema) {
|
|
|
180
183
|
return cached;
|
|
181
184
|
const rawInsert = archetype.insert.bind(archetype);
|
|
182
185
|
const wrappedInsert = (values) => {
|
|
183
|
-
|
|
186
|
+
// `archetype` is the raw core archetype — its id + component set
|
|
187
|
+
// let the registry dispatch to only the applicable indexes.
|
|
188
|
+
indexRegistry.checkUniqueAvailableForInsert(archetype, values);
|
|
184
189
|
const entity = rawInsert(values);
|
|
185
|
-
indexRegistry.applyInsert(entity, values);
|
|
190
|
+
indexRegistry.applyInsert(entity, archetype, values);
|
|
186
191
|
return entity;
|
|
187
192
|
};
|
|
188
193
|
const wrapped = new Proxy(archetype, {
|
|
@@ -213,12 +218,17 @@ export function createStore(schema) {
|
|
|
213
218
|
});
|
|
214
219
|
const updateEntity = (entity, values) => {
|
|
215
220
|
indexRegistry.checkUniqueAvailableForUpdate(entity, values);
|
|
221
|
+
// `update` can move the entity to a different archetype (when it
|
|
222
|
+
// adds/removes components), so capture both ends for dispatch.
|
|
223
|
+
const from = core.locate(entity)?.archetype ?? null;
|
|
216
224
|
core.update(entity, values);
|
|
217
|
-
|
|
225
|
+
const to = core.locate(entity)?.archetype ?? null;
|
|
226
|
+
indexRegistry.applyUpdate(entity, from, to);
|
|
218
227
|
};
|
|
219
228
|
const deleteEntity = (entity) => {
|
|
229
|
+
const archetype = core.locate(entity)?.archetype ?? null;
|
|
220
230
|
core.delete(entity);
|
|
221
|
-
indexRegistry.applyDelete(entity);
|
|
231
|
+
indexRegistry.applyDelete(entity, archetype);
|
|
222
232
|
};
|
|
223
233
|
const extend = (schema) => {
|
|
224
234
|
const { components: schemaComponents = {}, resources: schemaResources = {}, archetypes: schemaArchetypes = {}, indexes: schemaIndexes = {}, } = schema;
|
|
@@ -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;AAE5D,OAAO,EACH,mBAAmB,GAGtB,MAAM,wCAAwC,CAAC;AAEhD,MAAM,UAAU,WAAW,CAKvB,MAAgC;IAEhC,MAAM,SAAS,GAAG,MAAa,CAAC;IAChC,MAAM,cAAc,GAChB,SAAS;QACT,OAAO,SAAS,KAAK,QAAQ;QAC7B,YAAY,IAAI,SAAS;QACzB,WAAW,IAAI,SAAS;QACxB,YAAY,IAAI,SAAS,CAAC;IAE9B,MAAM,gBAAgB,GAA4B,cAAc;QAC5D,CAAC,CAAC,SAAS;QACX,CAAC,CAAC;YACE,UAAU,EAAE,EAAQ;YACpB,SAAS,EAAE,EAAQ;YACnB,UAAU,EAAE,EAAO;SACtB,CAAC;IAKN,MAAM,SAAS,GAAG,EAAO,CAAC;IAC1B,MAAM,gBAAgB,GAAG,EAAQ,CAAC;IAClC,MAAM,eAAe,GAAG,EAAQ,CAAC;IACjC,MAAM,uBAAuB,GAAG,EAAO,CAAC;IACxC,MAAM,2BAA2B,GAA0C,EAAS,CAAC;IAErF,MAAM,IAAI,GAAG,UAAU,CAAC,2BAA2B,CAAuB,CAAC;IAE3E,kEAAkE;IAClE,mEAAmE;IACnE,iEAAiE;IACjE,sEAAsE;IACtE,oBAAoB;IACpB,EAAE;IACF,kEAAkE;IAClE,sEAAsE;IACtE,sEAAsE;IACtE,iDAAiD;IACjD,MAAM,aAAa,GAAG,mBAAmB,CACrC,CAAC,MAAM,EAAE,EAAE;QACP,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACjC,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QACzB,+CAA+C;QAC/C,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,MAAkD,CAAC;QAChF,OAAO,IAAI,CAAC;IAChB,CAAC,
|
|
1
|
+
{"version":3,"file":"create-store.js","sourceRoot":"","sources":["../../../../src/ecs/store/public/create-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -76,7 +76,7 @@ export declare namespace Store {
|
|
|
76
76
|
type Archetypes<S extends Store> = S extends Store<any, any, infer A> ? A : never;
|
|
77
77
|
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>;
|
|
78
78
|
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];
|
|
79
|
-
type Schema<CS extends ComponentSchemas = any, RS extends ResourceSchemas = any, A extends ArchetypeComponents<StringKeyof<CS>> = any, IX extends IndexDeclarations<FromSchemas<CS
|
|
79
|
+
type Schema<CS extends ComponentSchemas = any, RS extends ResourceSchemas = any, A extends ArchetypeComponents<StringKeyof<CS>> = any, IX extends IndexDeclarations<FromSchemas<CS>, A> = {}> = {
|
|
80
80
|
readonly components: CS;
|
|
81
81
|
readonly resources: RS;
|
|
82
82
|
readonly archetypes: A;
|
|
@@ -119,7 +119,7 @@ export declare namespace Store {
|
|
|
119
119
|
* }, [baseSchema]);
|
|
120
120
|
* ```
|
|
121
121
|
*/
|
|
122
|
-
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"]
|
|
122
|
+
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"]>, A> = {}, const D extends readonly Store.Schema<any, any, any, any>[] = []>(schema: Partial<{
|
|
123
123
|
components: CS;
|
|
124
124
|
resources: RS;
|
|
125
125
|
archetypes: A;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The canonical comparison used for **all** index and ordered-query sorting:
|
|
3
|
+
* natural ascending order via `<` / `>`. For strings this is by **code point**,
|
|
4
|
+
* for numbers it is numeric — never locale collation. `localeCompare` is
|
|
5
|
+
* deliberately avoided: it is collation-dependent (varies by host locale) and
|
|
6
|
+
* would make index / query order non-deterministic across machines. Returns
|
|
7
|
+
* `-1`, `0`, or `1`.
|
|
8
|
+
*
|
|
9
|
+
* Use this anywhere you sort entities or keys for an index or an ordered
|
|
10
|
+
* query, including custom `order.compare` callbacks on a nested key, e.g.
|
|
11
|
+
* `(a, b) => compare(a.item.fractIndex, b.item.fractIndex)`.
|
|
12
|
+
*/
|
|
13
|
+
export declare const compare: <T extends number | bigint | string | boolean>(a: T, b: T) => number;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
// © 2026 Adobe. MIT License. See /LICENSE for details.
|
|
2
|
+
/**
|
|
3
|
+
* The canonical comparison used for **all** index and ordered-query sorting:
|
|
4
|
+
* natural ascending order via `<` / `>`. For strings this is by **code point**,
|
|
5
|
+
* for numbers it is numeric — never locale collation. `localeCompare` is
|
|
6
|
+
* deliberately avoided: it is collation-dependent (varies by host locale) and
|
|
7
|
+
* would make index / query order non-deterministic across machines. Returns
|
|
8
|
+
* `-1`, `0`, or `1`.
|
|
9
|
+
*
|
|
10
|
+
* Use this anywhere you sort entities or keys for an index or an ordered
|
|
11
|
+
* query, including custom `order.compare` callbacks on a nested key, e.g.
|
|
12
|
+
* `(a, b) => compare(a.item.fractIndex, b.item.fractIndex)`.
|
|
13
|
+
*/
|
|
14
|
+
export const compare = (a, b) => a < b ? -1 : a > b ? 1 : 0;
|
|
15
|
+
//# sourceMappingURL=compare.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compare.js","sourceRoot":"","sources":["../../src/functions/compare.ts"],"names":[],"mappings":"AAAA,uDAAuD;AAEvD;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,CAA+C,CAAI,EAAE,CAAI,EAAU,EAAE,CACxF,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
// © 2026 Adobe. MIT License. See /LICENSE for details.
|
|
2
|
+
import { describe, it, expect } from "vitest";
|
|
3
|
+
import { compare } from "./compare.js";
|
|
4
|
+
describe("compare", () => {
|
|
5
|
+
it("orders strings by code point, not locale collation", () => {
|
|
6
|
+
// ASCII code points: '0'(48) < 'A'(65) < 'Z'(90) < 'a'(97).
|
|
7
|
+
// A locale-aware compare (localeCompare) would interleave case
|
|
8
|
+
// (e.g. 'a' before 'Z'), so these fail if compare is ever switched
|
|
9
|
+
// to localeCompare — the no-locale guard.
|
|
10
|
+
expect(compare("Z", "a")).toBeLessThan(0); // 'Z'(90) < 'a'(97)
|
|
11
|
+
expect(compare("a", "Z")).toBeGreaterThan(0);
|
|
12
|
+
expect(compare("0", "A")).toBeLessThan(0); // '0'(48) < 'A'(65)
|
|
13
|
+
expect(compare("A", "A")).toBe(0);
|
|
14
|
+
});
|
|
15
|
+
it("sorts a string array strictly by code point", () => {
|
|
16
|
+
const sorted = [...["a", "Z", "0", "A", "a0", "Zz"]].sort(compare);
|
|
17
|
+
expect(sorted).toEqual(["0", "A", "Z", "Zz", "a", "a0"]);
|
|
18
|
+
});
|
|
19
|
+
it("orders numbers numerically", () => {
|
|
20
|
+
expect(compare(2, 10)).toBeLessThan(0);
|
|
21
|
+
expect([3, 1, 2, 10].sort(compare)).toEqual([1, 2, 3, 10]);
|
|
22
|
+
});
|
|
23
|
+
});
|
|
24
|
+
//# sourceMappingURL=compare.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compare.test.js","sourceRoot":"","sources":["../../src/functions/compare.test.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;IACrB,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;QAC1D,4DAA4D;QAC5D,+DAA+D;QAC/D,mEAAmE;QACnE,0CAA0C;QAC1C,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAK,oBAAoB;QACnE,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QAC7C,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAK,oBAAoB;QACnE,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;QACnD,MAAM,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACnE,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;QAClC,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACvC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|
package/dist/functions/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/functions/index.ts"],"names":[],"mappings":"AAAA,uDAAuD;AAEvD,cAAc,iBAAiB,CAAC;AAChC,cAAc,0BAA0B,CAAC;AACzC,cAAc,WAAW,CAAC;AAC1B,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/functions/index.ts"],"names":[],"mappings":"AAAA,uDAAuD;AAEvD,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,0BAA0B,CAAC;AACzC,cAAc,WAAW,CAAC;AAC1B,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC"}
|