interaqt 1.5.9 → 1.6.0
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/agent/agentspace/knowledge/generator/api-reference.md +14 -5
- package/agent/agentspace/knowledge/usage/04-reactive-computations.md +18 -28
- package/agent/agentspace/knowledge/usage/14-api-reference.md +12 -2
- package/agent/skill/interaqt-patterns.md +3 -1
- package/agent/skill/interaqt-reference.md +26 -1
- package/dist/core/Custom.d.ts +16 -0
- package/dist/core/Custom.d.ts.map +1 -1
- package/dist/core/Transform.d.ts +0 -7
- package/dist/core/Transform.d.ts.map +1 -1
- package/dist/index.js +4376 -4038
- package/dist/index.js.map +1 -1
- package/dist/runtime/ComputationSourceMap.d.ts +4 -0
- package/dist/runtime/ComputationSourceMap.d.ts.map +1 -1
- package/dist/runtime/Scheduler.d.ts +17 -1
- package/dist/runtime/Scheduler.d.ts.map +1 -1
- package/dist/runtime/computations/Any.d.ts +5 -1
- package/dist/runtime/computations/Any.d.ts.map +1 -1
- package/dist/runtime/computations/Average.d.ts +5 -1
- package/dist/runtime/computations/Average.d.ts.map +1 -1
- package/dist/runtime/computations/Computation.d.ts +49 -0
- package/dist/runtime/computations/Computation.d.ts.map +1 -1
- package/dist/runtime/computations/Count.d.ts +5 -1
- package/dist/runtime/computations/Count.d.ts.map +1 -1
- package/dist/runtime/computations/Custom.d.ts +4 -1
- package/dist/runtime/computations/Custom.d.ts.map +1 -1
- package/dist/runtime/computations/Every.d.ts +5 -1
- package/dist/runtime/computations/Every.d.ts.map +1 -1
- package/dist/runtime/computations/Summation.d.ts +5 -1
- package/dist/runtime/computations/Summation.d.ts.map +1 -1
- package/dist/runtime/computations/Transform.d.ts +3 -1
- package/dist/runtime/computations/Transform.d.ts.map +1 -1
- package/dist/runtime/computations/WeightedSummation.d.ts +13 -4
- package/dist/runtime/computations/WeightedSummation.d.ts.map +1 -1
- package/dist/runtime/errors/ComputationErrors.d.ts +3 -0
- package/dist/runtime/errors/ComputationErrors.d.ts.map +1 -1
- package/dist/runtime/errors/index.d.ts +1 -1
- package/dist/runtime/errors/index.d.ts.map +1 -1
- package/dist/runtime/migration.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1028,6 +1028,8 @@ Transform supports two modes of operation:
|
|
|
1028
1028
|
- **Context**: `this` is bound to the Controller instance, providing access to system APIs via `this.system.storage`, `this.globals`, etc.
|
|
1029
1029
|
- **Signature**: `function(this: Controller, mutationEvent: MutationEvent): any | any[]`
|
|
1030
1030
|
|
|
1031
|
+
Transform does not accept `dataDeps`. For cross-source enrichment, persist the needed values on the source event/record or use a `Custom` computation.
|
|
1032
|
+
|
|
1031
1033
|
**Event Dependencies (eventDeps)**
|
|
1032
1034
|
|
|
1033
1035
|
The `eventDeps` parameter allows Transform to react to specific mutation events (create, update, delete) on entities. This is the recommended approach for transforming data based on interactions or system events.
|
|
@@ -1688,10 +1690,14 @@ Custom.create(config: CustomConfig): CustomInstance
|
|
|
1688
1690
|
- For Property computation: use `type: 'property'` with `attributeQuery` to access current record and its relations
|
|
1689
1691
|
- For Dictionary computation: use `type: 'records'` with `source: EntityName`
|
|
1690
1692
|
- For accessing dictionaries: use `type: 'global'` with `source: DictionaryInstance`
|
|
1693
|
+
- `config.incrementalDataDeps` (string[], optional): Required for simple incremental computations. Lists exactly which data dependency keys are resolved before `incrementalCompute` / `incrementalPatchCompute`; use `[]` when the event itself is enough.
|
|
1694
|
+
- `config.planIncremental` (function, optional): Required instead of `incrementalDataDeps` for advanced incremental computations. Return `{ type: 'incremental', dataDepKeys, needsLastValue? }`, `{ type: 'fullRecompute', reason }`, or `{ type: 'skip', reason }`.
|
|
1691
1695
|
- `config.useLastValue` (boolean, optional): Whether to use last computed value in incremental computation
|
|
1692
1696
|
- `config.attributeQuery` (AttributeQueryData, optional): Attribute query configuration
|
|
1693
1697
|
- `config.concurrency` (`'serializable' | 'atomic-safe'`, optional): Defaults to `'serializable'`. Serializable custom computations are retried in PostgreSQL `SERIALIZABLE` transactions. Use `'atomic-safe'` only when the callback is explicitly written with atomic state, idempotent patches, or other safe primitives.
|
|
1694
1698
|
|
|
1699
|
+
If `incrementalCompute` or `incrementalPatchCompute` is provided without `incrementalDataDeps` or `planIncremental`, runtime setup fails with `ComputationProtocolError`. Incremental callbacks receive only the planned partial `dataDeps`, not all declared dependencies.
|
|
1700
|
+
|
|
1695
1701
|
**Retry safety**
|
|
1696
1702
|
|
|
1697
1703
|
Custom `compute`, `incrementalCompute`, `incrementalPatchCompute`, and `asyncReturn` callbacks may be replayed after transaction retry. Keep them deterministic and avoid irreversible external IO. Put post-commit external work in `recordMutationSideEffects`.
|
|
@@ -1720,7 +1726,7 @@ const userStats = Dictionary.create({
|
|
|
1720
1726
|
attributeQuery: ['id', 'authorId', 'status']
|
|
1721
1727
|
}
|
|
1722
1728
|
},
|
|
1723
|
-
compute: async function(
|
|
1729
|
+
compute: async function(dataDeps) {
|
|
1724
1730
|
const activeUsers = dataDeps.users.filter(u => u.status === 'active');
|
|
1725
1731
|
const publishedPosts = dataDeps.posts.filter(p => p.status === 'published');
|
|
1726
1732
|
|
|
@@ -1759,19 +1765,22 @@ const counterDict = Dictionary.create({
|
|
|
1759
1765
|
attributeQuery: ['value']
|
|
1760
1766
|
}
|
|
1761
1767
|
},
|
|
1768
|
+
incrementalDataDeps: [],
|
|
1762
1769
|
compute: async function(dataDeps) {
|
|
1763
1770
|
const total = dataDeps.counters.reduce((sum, c) => sum + (c.value || 0), 0);
|
|
1764
1771
|
return { total, count: dataDeps.counters.length };
|
|
1765
1772
|
},
|
|
1766
1773
|
incrementalCompute: async function(lastValue, mutationEvent, record, dataDeps) {
|
|
1767
1774
|
console.log('Previous value:', lastValue);
|
|
1768
|
-
const
|
|
1769
|
-
|
|
1775
|
+
const delta = mutationEvent.type === 'delete'
|
|
1776
|
+
? -(mutationEvent.oldRecord?.value || 0)
|
|
1777
|
+
: (mutationEvent.record?.value || 0) - (mutationEvent.oldRecord?.value || 0);
|
|
1778
|
+
const total = (lastValue?.total || 0) + delta;
|
|
1770
1779
|
|
|
1771
1780
|
return {
|
|
1772
1781
|
total,
|
|
1773
|
-
count:
|
|
1774
|
-
lastChange:
|
|
1782
|
+
count: (lastValue?.count || 0) + (mutationEvent.type === 'create' ? 1 : mutationEvent.type === 'delete' ? -1 : 0),
|
|
1783
|
+
lastChange: delta,
|
|
1775
1784
|
timestamp: Math.floor(Date.now()/1000) // In seconds
|
|
1776
1785
|
};
|
|
1777
1786
|
},
|
|
@@ -87,6 +87,8 @@ Built-in computations such as Count, Summation, Average, Every, Any, WeightedSum
|
|
|
87
87
|
|
|
88
88
|
Custom computations are different because interaqt cannot inspect user callback logic. `Custom.create()` defaults to `concurrency: 'serializable'`, so the framework promotes the transaction to PostgreSQL `SERIALIZABLE` and retries on `40001` / `40P01`. Use `concurrency: 'atomic-safe'` only when the custom computation is explicitly written with atomic state, idempotent patches, or other safe primitives.
|
|
89
89
|
|
|
90
|
+
Custom incremental computations must declare an incremental plan. Use `incrementalDataDeps: [...]` for the common case, or `planIncremental(event, record, context)` when the computation needs to choose between incremental, full recompute, and skip per event. Incremental callbacks receive only the planned partial `dataDeps`; the runtime no longer resolves all declared dependencies before incremental execution.
|
|
91
|
+
|
|
90
92
|
Because retry replays the transaction attempt, `guard`, `mapEventData`, `resolve`, computation callbacks, `afterDispatch`, and `asyncReturn` must be deterministic and retry-safe. Put irreversible external IO in `postCommit` for interaction-specific effects or `recordMutationSideEffects` for mutation-driven effects; both run after the final commit.
|
|
91
93
|
|
|
92
94
|
### Scoped Atomic Sequences
|
|
@@ -871,31 +873,25 @@ const ActivityReward = Entity.create({
|
|
|
871
873
|
],
|
|
872
874
|
computation: Transform.create({
|
|
873
875
|
record: InteractionEventEntity,
|
|
874
|
-
attributeQuery: ['interactionName', 'user', 'createdAt'],
|
|
875
|
-
|
|
876
|
-
users: {
|
|
877
|
-
type: 'records',
|
|
878
|
-
source: User,
|
|
879
|
-
attributeQuery: ['username', 'monthlyLoginCount']
|
|
880
|
-
}
|
|
881
|
-
},
|
|
882
|
-
callback: (interactionEvents, dataDeps) => {
|
|
876
|
+
attributeQuery: ['interactionName', 'user', 'payload', 'createdAt'],
|
|
877
|
+
callback: (interactionEvents) => {
|
|
883
878
|
// Transform essence: define data transformation rules
|
|
884
|
-
// Input: InteractionEventEntity data
|
|
879
|
+
// Input: InteractionEventEntity data
|
|
885
880
|
// Output: ActivityReward data (or null)
|
|
886
881
|
|
|
887
882
|
return interactionEvents
|
|
888
883
|
.filter(event => event.interactionName === 'userLogin')
|
|
889
884
|
.map(event => {
|
|
890
|
-
const
|
|
885
|
+
const monthlyLoginCount = event.payload?.monthlyLoginCount || 0;
|
|
886
|
+
const username = event.payload?.username || 'User';
|
|
891
887
|
|
|
892
888
|
// Declare transformation condition: when user monthly login count >= 10, this interaction data transforms to reward data
|
|
893
|
-
if (
|
|
889
|
+
if (monthlyLoginCount >= 10) {
|
|
894
890
|
return {
|
|
895
891
|
type: 'frequent_user',
|
|
896
|
-
description: `${
|
|
892
|
+
description: `${username} received active user reward`,
|
|
897
893
|
createdAt: event.createdAt,
|
|
898
|
-
userId: user.id
|
|
894
|
+
userId: event.user.id
|
|
899
895
|
};
|
|
900
896
|
}
|
|
901
897
|
|
|
@@ -924,28 +920,22 @@ const DirectorMemo = Entity.create({
|
|
|
924
920
|
computation: Transform.create({
|
|
925
921
|
record: InteractionEventEntity,
|
|
926
922
|
attributeQuery: ['interactionName', 'user', 'payload', 'createdAt'],
|
|
927
|
-
|
|
928
|
-
users: {
|
|
929
|
-
type: 'records',
|
|
930
|
-
source: User,
|
|
931
|
-
attributeQuery: ['username', 'currentMonthLeaveCount']
|
|
932
|
-
}
|
|
933
|
-
},
|
|
934
|
-
callback: (interactionEvents, dataDeps) => {
|
|
923
|
+
callback: (interactionEvents) => {
|
|
935
924
|
// Declare data transformation relationship:
|
|
936
|
-
// Input: submitLeaveRequest interaction data
|
|
925
|
+
// Input: submitLeaveRequest interaction data
|
|
937
926
|
// Output: qualifying DirectorMemo data
|
|
938
927
|
|
|
939
928
|
return interactionEvents
|
|
940
929
|
.filter(event => event.interactionName === 'submitLeaveRequest')
|
|
941
930
|
.map(event => {
|
|
942
|
-
const
|
|
931
|
+
const username = event.payload?.username || 'User';
|
|
932
|
+
const currentMonthLeaveCount = event.payload?.currentMonthLeaveCount || 0;
|
|
943
933
|
|
|
944
934
|
// Transformation rule: when user's current month leave count >= 3, this interaction data transforms to memo data
|
|
945
|
-
if (
|
|
935
|
+
if (currentMonthLeaveCount >= 3) {
|
|
946
936
|
return {
|
|
947
|
-
content: `${
|
|
948
|
-
priority:
|
|
937
|
+
content: `${username} taking leave for the ${currentMonthLeaveCount}th time this month, needs attention`,
|
|
938
|
+
priority: currentMonthLeaveCount >= 5 ? 'urgent' : 'high',
|
|
949
939
|
createdAt: event.createdAt
|
|
950
940
|
};
|
|
951
941
|
}
|
|
@@ -2237,4 +2227,4 @@ import { StyleVersionRelation } from '../relations/StyleVersionRelation'
|
|
|
2237
2227
|
|
|
2238
2228
|
computation: Count.create({
|
|
2239
2229
|
record: StyleVersionRelation // Direct reference
|
|
2240
|
-
})
|
|
2230
|
+
})
|
|
@@ -510,9 +510,12 @@ Transform.create(config: TransformConfig): KlassInstance<typeof Transform>
|
|
|
510
510
|
```
|
|
511
511
|
|
|
512
512
|
**Parameters**
|
|
513
|
-
- `config.record` (Entity|Relation,
|
|
513
|
+
- `config.record` (Entity|Relation, optional): Entity or relation to transform from (source collection)
|
|
514
|
+
- `config.eventDeps` (object, optional): Event-driven source map. Use either `record` or `eventDeps`.
|
|
514
515
|
- `config.callback` (function, required): Transformation function that converts source data to target data
|
|
515
|
-
- `config.attributeQuery` (AttributeQueryData,
|
|
516
|
+
- `config.attributeQuery` (AttributeQueryData, optional): Attribute query configuration
|
|
517
|
+
|
|
518
|
+
Transform does not accept `dataDeps`. Use `eventDeps` / `record` as the source, and keep cross-source enrichment in existing persisted state or a `Custom` computation.
|
|
516
519
|
|
|
517
520
|
### Custom.create()
|
|
518
521
|
|
|
@@ -525,6 +528,13 @@ Create a custom computation when built-in computations are not expressive enough
|
|
|
525
528
|
|
|
526
529
|
Custom callbacks may be replayed after retryable transaction failures. Do not perform irreversible external IO inside custom `compute`, `incrementalCompute`, `incrementalPatchCompute`, or `asyncReturn`; use `recordMutationSideEffects` for post-commit external work.
|
|
527
530
|
|
|
531
|
+
**Incremental planning**
|
|
532
|
+
- If `incrementalCompute` or `incrementalPatchCompute` is provided, the computation must also provide `incrementalDataDeps` or `planIncremental`.
|
|
533
|
+
- `incrementalDataDeps: string[]` lists exactly which `dataDeps` keys should be resolved for the incremental callback; use `[]` when none are needed.
|
|
534
|
+
- `planIncremental(event, record, context)` is the advanced form. Return `{ type: 'incremental', dataDepKeys, needsLastValue? }`, `{ type: 'fullRecompute', reason }`, or `{ type: 'skip', reason }`.
|
|
535
|
+
- Incremental callbacks receive only planned partial `dataDeps`; the runtime no longer resolves all `dataDeps` before incremental execution.
|
|
536
|
+
- For entity/relation outputs, last value requires explicit `{ mode: 'fullOutput', reason }` because it may read the full output table.
|
|
537
|
+
|
|
528
538
|
### ScopedSequence.create()
|
|
529
539
|
|
|
530
540
|
Create a transactional per-scope sequence allocator for a `number` property.
|
|
@@ -215,7 +215,7 @@ Property.create({
|
|
|
215
215
|
```
|
|
216
216
|
|
|
217
217
|
### WHY
|
|
218
|
-
Count uses incremental algorithms. Transform
|
|
218
|
+
Count uses aggregate-specific incremental algorithms. Transform creates derived entity/relation rows and is not a property aggregate.
|
|
219
219
|
|
|
220
220
|
### WRONG: Computations passed to Controller
|
|
221
221
|
```typescript
|
|
@@ -291,6 +291,8 @@ const Media = Entity.create({
|
|
|
291
291
|
- [ ] `computed` is used for same-record-only property derivations
|
|
292
292
|
- [ ] Properties with aggregate/state computations have `defaultValue`; `ScopedSequence` does not
|
|
293
293
|
- [ ] NEVER pass computations to Controller constructor
|
|
294
|
+
- [ ] Custom incremental computations declare `incrementalDataDeps` or `planIncremental`
|
|
295
|
+
- [ ] Transform does not use `dataDeps`
|
|
294
296
|
|
|
295
297
|
---
|
|
296
298
|
|
|
@@ -235,7 +235,6 @@ Transform.create(args: {
|
|
|
235
235
|
|
|
236
236
|
// Common
|
|
237
237
|
callback: Function // (this: Controller, record/mutationEvent) => any | any[] | null
|
|
238
|
-
dataDeps?: { [key: string]: DataDep }
|
|
239
238
|
}): TransformInstance
|
|
240
239
|
```
|
|
241
240
|
|
|
@@ -246,6 +245,32 @@ Constraints:
|
|
|
246
245
|
- NEVER reference the entity being defined as `record` (circular reference)
|
|
247
246
|
- Use `eventDeps` mode for interaction-based transformations (recommended)
|
|
248
247
|
- Use `record` mode for deriving entities from other entities
|
|
248
|
+
- Transform does not accept `dataDeps`; put cross-source logic in persisted state or a `Custom` computation
|
|
249
|
+
|
|
250
|
+
---
|
|
251
|
+
|
|
252
|
+
## Custom.create
|
|
253
|
+
|
|
254
|
+
```typescript
|
|
255
|
+
Custom.create(args: {
|
|
256
|
+
name: string
|
|
257
|
+
dataDeps?: { [key: string]: DataDep }
|
|
258
|
+
compute?: (this: { controller: Controller, state: any }, dataDeps: any, record?: any) => any
|
|
259
|
+
incrementalCompute?: (lastValue: any, event: any, record: any, dataDeps: any) => any
|
|
260
|
+
incrementalPatchCompute?: (lastValue: any, event: any, record: any, dataDeps: any) => ComputationResultPatch | ComputationResultPatch[] | undefined
|
|
261
|
+
incrementalDataDeps?: string[]
|
|
262
|
+
planIncremental?: (event: any, record: any, context: DataDepEventContext) => IncrementalPlan
|
|
263
|
+
useLastValue?: boolean
|
|
264
|
+
concurrency?: 'serializable' | 'atomic-safe'
|
|
265
|
+
}): CustomInstance
|
|
266
|
+
```
|
|
267
|
+
|
|
268
|
+
Constraints:
|
|
269
|
+
- If `incrementalCompute` or `incrementalPatchCompute` is present, also provide `incrementalDataDeps` or `planIncremental`
|
|
270
|
+
- `incrementalDataDeps` lists the data dependency keys the incremental callback needs; use `[]` when it needs none
|
|
271
|
+
- `planIncremental` returns `{ type: 'incremental' | 'fullRecompute' | 'skip', ... }`
|
|
272
|
+
- Incremental callbacks receive only planned partial `dataDeps`, not all declared deps
|
|
273
|
+
- Entity/relation incremental computations that need last output state must use `needsLastValue: { mode: 'fullOutput', reason }`
|
|
249
274
|
|
|
250
275
|
---
|
|
251
276
|
|
package/dist/core/Custom.d.ts
CHANGED
|
@@ -6,6 +6,8 @@ export interface CustomInstance extends IInstance {
|
|
|
6
6
|
dataDeps?: {
|
|
7
7
|
[key: string]: DataDep;
|
|
8
8
|
};
|
|
9
|
+
incrementalDataDeps?: string[];
|
|
10
|
+
planIncremental?: Function;
|
|
9
11
|
compute?: Function;
|
|
10
12
|
incrementalCompute?: Function;
|
|
11
13
|
incrementalPatchCompute?: Function;
|
|
@@ -29,6 +31,8 @@ export interface CustomCreateArgs {
|
|
|
29
31
|
dataDeps?: {
|
|
30
32
|
[key: string]: DataDep;
|
|
31
33
|
};
|
|
34
|
+
incrementalDataDeps?: string[];
|
|
35
|
+
planIncremental?: Function;
|
|
32
36
|
compute?: Function;
|
|
33
37
|
incrementalCompute?: Function;
|
|
34
38
|
incrementalPatchCompute?: Function;
|
|
@@ -48,6 +52,8 @@ export declare class Custom implements CustomInstance {
|
|
|
48
52
|
dataDeps?: {
|
|
49
53
|
[key: string]: DataDep;
|
|
50
54
|
};
|
|
55
|
+
incrementalDataDeps?: string[];
|
|
56
|
+
planIncremental?: Function;
|
|
51
57
|
compute?: Function;
|
|
52
58
|
incrementalCompute?: Function;
|
|
53
59
|
incrementalPatchCompute?: Function;
|
|
@@ -73,6 +79,16 @@ export declare class Custom implements CustomInstance {
|
|
|
73
79
|
collection: false;
|
|
74
80
|
required: false;
|
|
75
81
|
};
|
|
82
|
+
incrementalDataDeps: {
|
|
83
|
+
type: "object";
|
|
84
|
+
collection: false;
|
|
85
|
+
required: false;
|
|
86
|
+
};
|
|
87
|
+
planIncremental: {
|
|
88
|
+
type: "function";
|
|
89
|
+
collection: false;
|
|
90
|
+
required: false;
|
|
91
|
+
};
|
|
76
92
|
compute: {
|
|
77
93
|
type: "function";
|
|
78
94
|
collection: false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Custom.d.ts","sourceRoot":"","sources":["../../src/core/Custom.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAgC,MAAM,iBAAiB,CAAC;AAE1E,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAE3C,MAAM,MAAM,iBAAiB,GAAG,cAAc,GAAG,aAAa,CAAC;AAE/D,MAAM,WAAW,cAAe,SAAQ,SAAS;IAC/C,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;IACtC,OAAO,CAAC,EAAE,QAAQ,CAAC;IACnB,kBAAkB,CAAC,EAAE,QAAQ,CAAC;IAC9B,uBAAuB,CAAC,EAAE,QAAQ,CAAC;IACnC,WAAW,CAAC,EAAE,QAAQ,CAAC;IACvB,eAAe,CAAC,EAAE,QAAQ,CAAC;IAC3B;;;OAGG;IACH,WAAW,CAAC,EAAE,QAAQ,CAAC;IACvB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;;OAIG;IACH,WAAW,CAAC,EAAE,iBAAiB,CAAC;CACjC;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;IACtC,OAAO,CAAC,EAAE,QAAQ,CAAC;IACnB,kBAAkB,CAAC,EAAE,QAAQ,CAAC;IAC9B,uBAAuB,CAAC,EAAE,QAAQ,CAAC;IACnC,WAAW,CAAC,EAAE,QAAQ,CAAC;IACvB,eAAe,CAAC,EAAE,QAAQ,CAAC;IAC3B,WAAW,CAAC,EAAE,QAAQ,CAAC;IACvB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,iBAAiB,CAAC;CACjC;AAED,qBAAa,MAAO,YAAW,cAAc;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,SAAY;IACjB,QAAQ,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;IACtC,OAAO,CAAC,EAAE,QAAQ,CAAC;IACnB,kBAAkB,CAAC,EAAE,QAAQ,CAAC;IAC9B,uBAAuB,CAAC,EAAE,QAAQ,CAAC;IACnC,WAAW,CAAC,EAAE,QAAQ,CAAC;IACvB,eAAe,CAAC,EAAE,QAAQ,CAAC;IAC3B,WAAW,CAAC,EAAE,QAAQ,CAAC;IACvB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,iBAAiB,CAAC;gBAE3B,IAAI,EAAE,gBAAgB,EAAE,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE;
|
|
1
|
+
{"version":3,"file":"Custom.d.ts","sourceRoot":"","sources":["../../src/core/Custom.ts"],"names":[],"mappings":"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"}
|
package/dist/core/Transform.d.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { IInstance } from './interfaces.js';
|
|
2
2
|
import { ComputationRecord, AttributeQueryData } from './types.js';
|
|
3
|
-
import { DataDep } from './Computation.js';
|
|
4
3
|
declare const PHASE_BEFORE_ALL = 0;
|
|
5
4
|
declare const PHASE_NORMAL = 1;
|
|
6
5
|
declare const PHASE_AFTER_ALL = 2;
|
|
@@ -17,9 +16,6 @@ export interface TransformInstance extends IInstance {
|
|
|
17
16
|
eventDeps?: {
|
|
18
17
|
[key: string]: EventDep;
|
|
19
18
|
};
|
|
20
|
-
dataDeps?: {
|
|
21
|
-
[key: string]: DataDep;
|
|
22
|
-
};
|
|
23
19
|
attributeQuery?: AttributeQueryData;
|
|
24
20
|
callback: Function;
|
|
25
21
|
}
|
|
@@ -28,9 +24,6 @@ export interface TransformCreateArgs {
|
|
|
28
24
|
eventDeps?: {
|
|
29
25
|
[key: string]: EventDep;
|
|
30
26
|
};
|
|
31
|
-
dataDeps?: {
|
|
32
|
-
[key: string]: DataDep;
|
|
33
|
-
};
|
|
34
27
|
attributeQuery?: AttributeQueryData;
|
|
35
28
|
callback: Function;
|
|
36
29
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Transform.d.ts","sourceRoot":"","sources":["../../src/core/Transform.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAgC,MAAM,iBAAiB,CAAC;AAE1E,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"Transform.d.ts","sourceRoot":"","sources":["../../src/core/Transform.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAgC,MAAM,iBAAiB,CAAC;AAE1E,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAExE,QAAA,MAAM,gBAAgB,IAAI,CAAA;AAC1B,QAAA,MAAM,YAAY,IAAI,CAAA;AACtB,QAAA,MAAM,eAAe,IAAI,CAAA;AACzB,KAAK,gBAAgB,GAAG,OAAO,gBAAgB,GAAC,OAAO,YAAY,GAAC,OAAO,eAAe,CAAA;AAG1F,KAAK,QAAQ,GAAG;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,QAAQ,GAAC,QAAQ,GAAC,QAAQ,CAAC;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACnC,KAAK,CAAC,EAAE,gBAAgB,CAAA;CACzB,CAAC;AAEF,MAAM,WAAW,iBAAkB,SAAQ,SAAS;IAClD,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAC3B,SAAS,CAAC,EAAE;QACV,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,CAAC;KACzB,CAAC;IACF,cAAc,CAAC,EAAE,kBAAkB,CAAC;IACpC,QAAQ,EAAE,QAAQ,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAC3B,SAAS,CAAC,EAAE;QACV,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,CAAC;KACzB,CAAC;IACF,cAAc,CAAC,EAAE,kBAAkB,CAAC;IACpC,QAAQ,EAAE,QAAQ,CAAC;CACpB;AAED,qBAAa,SAAU,YAAW,iBAAiB;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,SAAe;IACpB,QAAQ,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7B,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAC3B,SAAS,CAAC,EAAE;QACjB,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,CAAC;KACzB,CAAC;IACK,cAAc,CAAC,EAAE,kBAAkB,CAAC;IACpC,QAAQ,EAAE,QAAQ,CAAC;gBAEd,IAAI,EAAE,mBAAmB,EAAE,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE;IAUlE,MAAM,CAAC,OAAO,EAAG,IAAI,CAAU;IAC/B,MAAM,CAAC,WAAW,SAAe;IACjC,MAAM,CAAC,SAAS,EAAE,iBAAiB,EAAE,CAAM;IAE3C,MAAM,CAAC,MAAM;;;;;;;0BAOsB,kBAAkB;;;;;;;;;MASnD;IAEF,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,mBAAmB,EAAE,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,iBAAiB;IAaxF,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,iBAAiB,GAAG,MAAM;IAgBrD,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,iBAAiB,EAAE,IAAI,EAAE,OAAO,GAAG,iBAAiB;IAQ3E,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,iBAAiB;IAIjD,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO;IAIpC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB;CAe9C"}
|