@feltdb/core 0.11.8 → 0.12.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.
Files changed (55) hide show
  1. package/dist/composition.d.ts +697 -0
  2. package/dist/composition.d.ts.map +1 -0
  3. package/dist/composition.js +1218 -0
  4. package/dist/create/package-versions.js +1 -1
  5. package/dist/create/server-source/crates/feltdb/src/lib.rs +363 -2
  6. package/dist/create/server-source/crates/feltdb/src/read_basis.rs +257 -0
  7. package/dist/create/server-source/crates/feltdb/src/state_contract.rs +442 -73
  8. package/dist/create/server-source/crates/feltdb/src/workload_diagnostics.rs +18 -4
  9. package/dist/create/server-source/crates/feltdb-server/src/main.rs +198 -10
  10. package/dist/db.d.ts +12 -1
  11. package/dist/db.d.ts.map +1 -1
  12. package/dist/db.js +19 -1
  13. package/dist/embedded-transaction.d.ts +21 -1
  14. package/dist/embedded-transaction.d.ts.map +1 -1
  15. package/dist/embedded-transaction.js +96 -0
  16. package/dist/feltdb.d.ts +8 -0
  17. package/dist/feltdb.d.ts.map +1 -1
  18. package/dist/file-db.d.ts +8 -1
  19. package/dist/file-db.d.ts.map +1 -1
  20. package/dist/file-db.js +20 -1
  21. package/dist/flowspec.d.ts +7 -0
  22. package/dist/flowspec.d.ts.map +1 -1
  23. package/dist/flowspec.js +13 -1
  24. package/dist/http-db.d.ts +7 -0
  25. package/dist/http-db.d.ts.map +1 -1
  26. package/dist/http-db.js +38 -6
  27. package/dist/index-core.d.ts +1 -0
  28. package/dist/index-core.d.ts.map +1 -1
  29. package/dist/index-core.js +1 -0
  30. package/dist/indexeddb-db.d.ts +3 -1
  31. package/dist/indexeddb-db.d.ts.map +1 -1
  32. package/dist/indexeddb-db.js +50 -2
  33. package/dist/intent.d.ts +4 -2
  34. package/dist/intent.d.ts.map +1 -1
  35. package/dist/memory-db.d.ts +2 -1
  36. package/dist/memory-db.d.ts.map +1 -1
  37. package/dist/memory-db.js +13 -1
  38. package/dist/proposal.d.ts +5 -0
  39. package/dist/proposal.d.ts.map +1 -1
  40. package/dist/proposal.js +6 -2
  41. package/dist/state-impact.d.ts +245 -0
  42. package/dist/state-impact.d.ts.map +1 -0
  43. package/dist/state-impact.js +404 -0
  44. package/dist/studio-app/assets/{feltdb_wasm-D58hv7aa.js → feltdb_wasm-DYfWAV0E.js} +1 -1
  45. package/dist/studio-app/assets/feltdb_wasm_bg-DHiOUhoQ.wasm +0 -0
  46. package/dist/studio-app/assets/index-6f6KVx5R.js +30 -0
  47. package/dist/studio-app/index.html +1 -1
  48. package/dist/transaction.d.ts +61 -1
  49. package/dist/transaction.d.ts.map +1 -1
  50. package/dist/transaction.js +59 -0
  51. package/dist/wasm/feltdb_wasm_bg.wasm +0 -0
  52. package/package.json +1 -1
  53. package/dist/create/server-source/crates/feltdb-wasm/test_wasm.db.lock +0 -0
  54. package/dist/studio-app/assets/feltdb_wasm_bg-BgFXYOtc.wasm +0 -0
  55. package/dist/studio-app/assets/index-Ccecp6rc.js +0 -30
package/dist/intent.d.ts CHANGED
@@ -15,8 +15,9 @@ export interface Intent {
15
15
  application_id: string;
16
16
  environment: string;
17
17
  raw_request: string;
18
- action: "implement" | "extend" | "unknown";
19
- target: "module" | "billing" | "unknown";
18
+ /** `transition` with target `state`: a proposed application-state change (see the composition substrate). */
19
+ action: "implement" | "extend" | "transition" | "unknown";
20
+ target: "module" | "billing" | "state" | "unknown";
20
21
  module?: string;
21
22
  module_version?: string;
22
23
  parent_intent_id?: string;
@@ -27,6 +28,7 @@ export interface Intent {
27
28
  created_at: string;
28
29
  understanding?: ApplicationUnderstanding;
29
30
  plan?: ImplementationPlan;
31
+ /** A `_feltdb.Proposal` id, or a `_feltdb.StateProposal` id when `target` is `state`. */
30
32
  proposal_id?: string;
31
33
  }
32
34
  export interface IntentEvent {
@@ -1 +1 @@
1
- {"version":3,"file":"intent.d.ts","sourceRoot":"","sources":["../src/intent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"intent.d.ts","sourceRoot":"","sources":["../src/intent.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import type { JsDb } from './feltdb.js';
2
2
  import { type FreshnessCapability, type Revision } from './freshness.js';
3
- import type { AtomicTransactionRequest, AtomicTransactionResult } from './transaction.js';
3
+ import type { AtomicTransactionRequest, AtomicTransactionResult, TransactionReadBasis, TransactionReadSet } from './transaction.js';
4
4
  import type { AuthorityQueryRequest } from './http-db.js';
5
5
  interface JsResult {
6
6
  success: boolean;
@@ -41,6 +41,7 @@ export declare class MemoryJsDb implements JsDb {
41
41
  * That is a property of an in-memory store, not a weaker transaction
42
42
  * contract.
43
43
  */
44
+ read_basis(reads: TransactionReadSet): Promise<TransactionReadBasis>;
44
45
  commit_transaction(request: AtomicTransactionRequest): Promise<AtomicTransactionResult>;
45
46
  insert(key: string, value: string): JsResult;
46
47
  update(key: string, value: string): JsResult;
@@ -1 +1 @@
1
- {"version":3,"file":"memory-db.d.ts","sourceRoot":"","sources":["../src/memory-db.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"memory-db.d.ts","sourceRoot":"","sources":["../src/memory-db.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAA8B,KAAK,mBAAmB,EAAE,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACrG,OAAO,KAAK,EAAE,wBAAwB,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAUpI,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAE1D,UAAU,QAAQ;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,aAAa;IAAG,QAAQ,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,KAAK,GAAG,QAAQ,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE;AA6BrK,mEAAmE;AACnE,qBAAa,UAAW,YAAW,IAAI;IACrC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAuB;IAC5C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAuB;IAC9C,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAoB;IAClD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAqB;IAC3C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqB;IAC7C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAsB;IAClD,OAAO,CAAC,eAAe,CAAS;gBAEpB,SAAS,EAAE,MAAM;IAa7B,OAAO,CAAC,KAAK;IASb;;;;;;;;;;OAUG;IACG,UAAU,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAWpE,kBAAkB,CAAC,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAyB7F,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,QAAQ;IAU5C,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,QAAQ;IAO5C,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ;IAO1B,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ;IAM7B,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAiBtF,GAAG,CAAC,MAAM,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,cAAc,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,GAAG,CAAA;KAAE,CAAC;IAiCtL,KAAK,CAAC,UAAU,EAAE,MAAM,GAAG,QAAQ;IAQ7B,eAAe,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,qBAAqB;;;IAQ/E,aAAa,CAAC,KAAK,EAAE,qBAAqB;IAC1C,eAAe,IAAI,IAAI;IAEvB,sBAAsB,CAAC,UAAU,EAAE,MAAM,GAAG,QAAQ;IAIpD,UAAU,IAAI,QAAQ;IAItB,SAAS,IAAI,QAAQ;IAIrB,QAAQ,IAAI,QAAQ;IACpB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ;IACvC,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ;IAC1C,2BAA2B,IAAI,QAAQ;IACvC,oBAAoB,IAAI,QAAQ;IAChC,WAAW,IAAI,MAAM;IACrB,YAAY,IAAI,MAAM;IAEtB;;;;;;;OAOG;IACH,SAAS,IAAI,mBAAmB;IAiB1B,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC;IAQnC,YAAY;IACZ,iBAAiB,CAAC,aAAa,EAAE,MAAM;IACvC,uBAAuB,CAAC,UAAU,EAAE,aAAa,EAAE;;;;CAyBpD"}
package/dist/memory-db.js CHANGED
@@ -1,5 +1,6 @@
1
1
  import { FreshnessContractViolation } from './freshness.js';
2
- import { decideTransaction, embeddedResult, EmbeddedTransactionRejected, } from './embedded-transaction.js';
2
+ import { normaliseReadSet } from './transaction.js';
3
+ import { decideTransaction, readBasisToken, scanRows, embeddedResult, EmbeddedTransactionRejected, } from './embedded-transaction.js';
3
4
  import { EmbeddedQueryEngine } from './embedded-query.js';
4
5
  const namespaces = new Map();
5
6
  const revisions = new Map();
@@ -53,12 +54,23 @@ export class MemoryJsDb {
53
54
  * That is a property of an in-memory store, not a weaker transaction
54
55
  * contract.
55
56
  */
57
+ async read_basis(reads) {
58
+ const normalised = normaliseReadSet(reads);
59
+ return {
60
+ reads: normalised,
61
+ token: readBasisToken(normalised, {
62
+ read: key => this.rows.get(key),
63
+ scan: collections => scanRows(this.rows, collections),
64
+ }),
65
+ };
66
+ }
56
67
  async commit_transaction(request) {
57
68
  const before = this.sequence;
58
69
  const plan = decideTransaction(request, {
59
70
  exists: key => this.rows.has(key),
60
71
  hasApplied: transactionId => this.applied.has(transactionId),
61
72
  read: key => this.rows.get(key),
73
+ scan: collections => scanRows(this.rows, collections),
62
74
  });
63
75
  if (plan.kind === 'duplicate')
64
76
  return embeddedResult(request, true, before, this.sequence);
@@ -135,6 +135,11 @@ export interface ProposalContext {
135
135
  snapshot: FeltDBContractSnapshot;
136
136
  observations?: ObservedEvidenceInput[];
137
137
  }
138
+ /**
139
+ * The proposal lifecycle. Contract proposals and state proposals
140
+ * (`state-proposal` in the composition substrate) move through the same table.
141
+ */
142
+ export declare const PROPOSAL_TRANSITIONS: Readonly<Record<ProposalStatus, readonly ProposalStatus[]>>;
138
143
  export declare class FeltDBProposalService {
139
144
  private store;
140
145
  private context;
@@ -1 +1 @@
1
- {"version":3,"file":"proposal.d.ts","sourceRoot":"","sources":["../src/proposal.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"proposal.d.ts","sourceRoot":"","sources":["../src/proposal.ts"],"names":[],"mappings":"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"}
package/dist/proposal.js CHANGED
@@ -52,7 +52,11 @@ export function renderProposalDiagnostic(proposal, options = {}) {
52
52
  ...section('WARNINGS', proposal.warnings.map(value => `! ${value}`)),
53
53
  ];
54
54
  }
55
- const transitions = {
55
+ /**
56
+ * The proposal lifecycle. Contract proposals and state proposals
57
+ * (`state-proposal` in the composition substrate) move through the same table.
58
+ */
59
+ export const PROPOSAL_TRANSITIONS = {
56
60
  proposed: ['validated', 'rejected'], validated: ['previewed', 'rejected'], previewed: ['approved', 'rejected'],
57
61
  approved: ['applied', 'expired'], applied: [], rejected: [], expired: [],
58
62
  };
@@ -233,7 +237,7 @@ export class FeltDBProposalService {
233
237
  throw new Error('PROPOSAL_EXPIRED');
234
238
  }
235
239
  async move(record, status, actor) {
236
- if (!transitions[record.status].includes(status))
240
+ if (!PROPOSAL_TRANSITIONS[record.status].includes(status))
237
241
  throw new Error(`INVALID_PROPOSAL_TRANSITION: ${record.status} -> ${status}`);
238
242
  const from = record.status;
239
243
  record.status = status;
@@ -0,0 +1,245 @@
1
+ /** Collections the composition substrate writes. Never contract state. */
2
+ export declare const FELTDB_COMPOSITION_CONTRACT_COLLECTION = "_feltdb.CompositionContract";
3
+ export declare const FELTDB_COMPOSITION_COLLECTION = "_feltdb.Composition";
4
+ export declare const FELTDB_COMPOSITION_VERSION_COLLECTION = "_feltdb.CompositionVersion";
5
+ export declare const FELTDB_COMPOSITION_TOPOLOGY_COLLECTION = "_feltdb.CompositionTopology";
6
+ export declare const FELTDB_STATE_OWNERSHIP_COLLECTION = "_feltdb.StateOwnership";
7
+ export declare const FELTDB_STATE_DEPENDENCY_COLLECTION = "_feltdb.StateDependency";
8
+ export declare const FELTDB_STATE_CHANGE_COLLECTION = "_feltdb.StateChange";
9
+ export declare const FELTDB_STATE_ATTRIBUTION_COLLECTION = "_feltdb.StateAttribution";
10
+ export declare const FELTDB_STATE_OBSERVATION_COLLECTION = "_feltdb.StateObservation";
11
+ export declare const FELTDB_STATE_PROPOSAL_COLLECTION = "_feltdb.StateProposal";
12
+ export declare const FELTDB_STATE_IMPACT_COLLECTION = "_feltdb.StateImpact";
13
+ /** Upper bound on `connects` hops followed from a directly changed record. */
14
+ export declare const IMPACT_MAX_DEPTH = 4;
15
+ /** Upper bound on items in any one section of a surface. */
16
+ export declare const IMPACT_MAX_ITEMS = 1000;
17
+ /**
18
+ * The identity of an authoritative `.flow` contract.
19
+ *
20
+ * State is addressed by contract, collection, and record — never by the
21
+ * application that happens to be looking at it — so the same record has the
22
+ * same identity for every consumer.
23
+ */
24
+ export interface AuthoritativeContractIdentity {
25
+ contract_id: string;
26
+ /** Digest of the whole compiled contract (`CanonicalApplicationContract.hashes.application`). */
27
+ contract_digest: string;
28
+ /** Digest of collections, indexes, and references (`hashes.model`). */
29
+ model_digest: string;
30
+ collections: string[];
31
+ capabilities: string[];
32
+ /** Declared field types, by collection. */
33
+ fields: Record<string, Array<{
34
+ name: string;
35
+ type: string;
36
+ reference?: string;
37
+ }>>;
38
+ /** Declared workflows and the capabilities their steps name. */
39
+ workflows: Array<{
40
+ name: string;
41
+ capabilities: string[];
42
+ }>;
43
+ /** Declared triggers: an event that starts a workflow. `workflow` is `''` when the trigger names none. */
44
+ triggers: Array<{
45
+ name: string;
46
+ event: string;
47
+ workflow: string;
48
+ }>;
49
+ }
50
+ /** Address of authoritative state. `record` absent means the whole collection. */
51
+ export interface StateRef {
52
+ contract: string;
53
+ collection: string;
54
+ record?: string;
55
+ }
56
+ export declare function stateUri(ref: StateRef): string;
57
+ export declare function parseStateUri(uri: string): StateRef;
58
+ export declare const consumerUri: (contract: string, consumer: string) => string;
59
+ export declare const capabilityUri: (contract: string, capability: string) => string;
60
+ export declare const projectionUri: (contract: string, consumer: string, name: string) => string;
61
+ export declare const workflowUri: (contract: string, workflow: string) => string;
62
+ /** `sha256:` over FeltDB's canonical encoding. */
63
+ export declare function canonicalDigest(value: unknown): Promise<string>;
64
+ /** Record fields the storage boundary owns. They are not part of a value. */
65
+ export declare function recordValue(row: Record<string, unknown> | null | undefined): Record<string, unknown> | null;
66
+ export declare function recordVersion(row: Record<string, unknown> | null | undefined): number | null;
67
+ export declare function changedFields(before: Record<string, unknown> | null, after: Record<string, unknown> | null): string[];
68
+ export type CompositionAccessMode = 'observe' | 'mutate' | 'own';
69
+ export interface CompositionAccess {
70
+ collection: string;
71
+ mode: CompositionAccessMode;
72
+ capability: string;
73
+ }
74
+ export interface CompositionProjection {
75
+ name: string;
76
+ sources: string[];
77
+ }
78
+ /** The part of a composition declaration the impact surface depends on. */
79
+ export interface CompositionTopologyEntry {
80
+ consumer: string;
81
+ version: number;
82
+ status: 'active';
83
+ access: CompositionAccess[];
84
+ projections: CompositionProjection[];
85
+ }
86
+ /** An explicit, consumer-declared connection between two records. */
87
+ export interface StateDependencyEdge {
88
+ edge_id: string;
89
+ from: string;
90
+ to: string;
91
+ relationship: 'connects';
92
+ declared_by: string;
93
+ label?: string;
94
+ evidence: string[];
95
+ }
96
+ export type ProposedOperation = {
97
+ collection: string;
98
+ id: string;
99
+ value: Record<string, unknown>;
100
+ } | {
101
+ collection: string;
102
+ id: string;
103
+ delete: true;
104
+ };
105
+ /** Why an item is in the surface. Every item carries one. */
106
+ export interface ImpactProvenance {
107
+ basis: 'proposal' | 'declared_dependency' | 'composition_declaration' | 'contract_reference' | 'contract_trigger' | 'contract_model';
108
+ /** The durable thing the item was derived from, as `scheme:reference`. */
109
+ source: string;
110
+ evidence: string[];
111
+ }
112
+ export interface DirectImpact {
113
+ node: string;
114
+ collection: string;
115
+ record_id: string;
116
+ operation: 'insert' | 'update' | 'delete';
117
+ base_version: number | null;
118
+ proposed_version: number | null;
119
+ base_value_digest: string | null;
120
+ proposed_value_digest: string | null;
121
+ fields_changed: string[];
122
+ provenance: ImpactProvenance;
123
+ }
124
+ export interface DependentImpact {
125
+ node: string;
126
+ kind: 'state' | 'consumer' | 'projection' | 'workflow';
127
+ /** The structural relationship, never an interpretation of it. */
128
+ relationship: string;
129
+ /** The node this one was reached from. */
130
+ from: string;
131
+ /** `connects` hops from the nearest directly changed record. */
132
+ depth: number;
133
+ capability?: string;
134
+ declared_by?: string;
135
+ label?: string;
136
+ /** For a workflow: the trigger and event that make it reachable, and the capabilities its steps name. */
137
+ trigger?: string;
138
+ event?: string;
139
+ capabilities?: string[];
140
+ provenance: ImpactProvenance;
141
+ }
142
+ export interface DerivedImpact {
143
+ node: string;
144
+ consequence: 'record_version_advances' | 'record_removed' | 'record_created' | 'reference_retargeted' | 'reference_target_absent' | 'reference_to_removed_record' | 'projection_source_changes';
145
+ field?: string;
146
+ before?: unknown;
147
+ after?: unknown;
148
+ provenance: ImpactProvenance;
149
+ }
150
+ export interface UnknownImpact {
151
+ kind: 'unregistered_consumers' | 'opaque_field' | 'workflow_effects' | 'unattributed_history' | 'traversal_bound' | 'external_reference' | 'unresolved_workflow' | 'unrecognized_trigger_event' | 'external_trigger_events' | 'not_authorized_to_inspect';
152
+ node?: string;
153
+ event?: string;
154
+ collection?: string;
155
+ field?: string;
156
+ count?: number;
157
+ /** Why this cannot be established from the authoritative model. */
158
+ reason: string;
159
+ }
160
+ export interface ImpactSurface {
161
+ direct: DirectImpact[];
162
+ dependent: DependentImpact[];
163
+ derived: DerivedImpact[];
164
+ /**
165
+ * Never empty. FeltDB cannot enumerate consumers that never declared a
166
+ * composition, so the surface is always open, and says so.
167
+ */
168
+ unknown: UnknownImpact[];
169
+ }
170
+ /** Read access to the materialized basis. Satisfied by `RuntimeSnapshot`. */
171
+ export interface ImpactBasis {
172
+ get<T = Record<string, unknown>>(collection: string, id: string | number): T | undefined;
173
+ all<T = Record<string, unknown>>(collection: string): readonly T[];
174
+ readonly collections: readonly string[];
175
+ }
176
+ /**
177
+ * What a surface computation read, as a transaction read set.
178
+ *
179
+ * `records` are point reads; `predicates` are equality reads ("every record of
180
+ * `collection` whose fields equal these values"). The surface is a function of
181
+ * exactly these reads, so a transaction fenced on them (`db.readBasis()` +
182
+ * `tx.fence()`) cannot commit against a state in which the surface differs.
183
+ */
184
+ export interface ImpactReads {
185
+ records: Map<string, {
186
+ collection: string;
187
+ id: string;
188
+ }>;
189
+ predicates: Map<string, {
190
+ collection: string;
191
+ where: Array<{
192
+ field: string;
193
+ eq: unknown;
194
+ }>;
195
+ }>;
196
+ }
197
+ export declare function emptyImpactReads(): ImpactReads;
198
+ /** The reads as a `TransactionReadSet`. */
199
+ export declare function impactReadSet(reads: ImpactReads): {
200
+ records: Array<{
201
+ collection: string;
202
+ id: string;
203
+ }>;
204
+ predicates: Array<{
205
+ collection: string;
206
+ where: Array<{
207
+ field: string;
208
+ eq: unknown;
209
+ }>;
210
+ }>;
211
+ };
212
+ export interface ImpactInput {
213
+ contract: AuthoritativeContractIdentity;
214
+ tenantId: string;
215
+ basis: ImpactBasis;
216
+ operations: readonly ProposedOperation[];
217
+ maxDepth?: number;
218
+ /** Filled with what the computation read. Does not affect the surface. */
219
+ reads?: ImpactReads;
220
+ }
221
+ /** The transition events a contract trigger can name for a collection. */
222
+ export declare const TRANSITION_EVENTS: {
223
+ readonly insert: "created";
224
+ readonly update: "updated";
225
+ readonly delete: "deleted";
226
+ };
227
+ /**
228
+ * Compute the impact surface of `operations` against `basis`.
229
+ *
230
+ * Pure and deterministic. The output is sorted so that its canonical digest is
231
+ * a function of the snapshot and the operations alone.
232
+ */
233
+ export declare function computeImpactSurface(input: ImpactInput): Promise<ImpactSurface>;
234
+ /** Canonical digest of a surface, for comparing an analysis with a re-derivation. */
235
+ export declare function impactSurfaceDigest(surface: ImpactSurface): Promise<string>;
236
+ /**
237
+ * The part of a surface a reader may see.
238
+ *
239
+ * The surface is computed by the authority over all state, so that its digest
240
+ * does not depend on who asked. A reader sees state nodes only in collections
241
+ * it may read; everything withheld is counted under `unknown` rather than
242
+ * silently dropped, because "you may not see it" is not "it is not there".
243
+ */
244
+ export declare function redactImpactSurface(surface: ImpactSurface, readable: (collection: string) => boolean): ImpactSurface;
245
+ //# sourceMappingURL=state-impact.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state-impact.d.ts","sourceRoot":"","sources":["../src/state-impact.ts"],"names":[],"mappings":"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"}