@microdelta/history 0.0.0 → 0.2.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 (79) hide show
  1. package/README.md +30 -4
  2. package/dist/api/history.alpha.d.ts +3 -0
  3. package/dist/api/history.beta.d.ts +3 -0
  4. package/dist/api/history.conformance.store.alpha.d.ts +3 -0
  5. package/dist/api/history.conformance.store.beta.d.ts +3 -0
  6. package/dist/api/history.conformance.store.public.d.ts +3 -0
  7. package/dist/api/history.conformance.store.raw.alpha.d.ts +215 -0
  8. package/dist/api/history.conformance.store.raw.beta.d.ts +215 -0
  9. package/dist/api/history.conformance.store.raw.public.d.ts +215 -0
  10. package/dist/api/history.conformance.store.raw.untrimmed.d.ts +215 -0
  11. package/dist/api/history.conformance.store.untrimmed.d.ts +3 -0
  12. package/dist/api/history.public.d.ts +3 -0
  13. package/dist/api/history.root.raw.alpha.d.ts +1371 -0
  14. package/dist/api/history.root.raw.beta.d.ts +425 -0
  15. package/dist/api/history.root.raw.public.d.ts +425 -0
  16. package/dist/api/history.root.raw.untrimmed.d.ts +1372 -0
  17. package/dist/api/history.shared.alpha.d.ts +1402 -0
  18. package/dist/api/history.shared.beta.d.ts +456 -0
  19. package/dist/api/history.shared.public.d.ts +456 -0
  20. package/dist/api/history.shared.untrimmed.d.ts +1403 -0
  21. package/dist/api/history.untrimmed.d.ts +3 -0
  22. package/dist/api/tsdoc-metadata.json +11 -0
  23. package/dist/src/completed-results.d.ts +99 -0
  24. package/dist/src/completed-results.d.ts.map +1 -0
  25. package/dist/src/completed-results.js +2 -0
  26. package/dist/src/completed-results.js.map +1 -0
  27. package/dist/src/durable/contracts.d.ts +612 -0
  28. package/dist/src/durable/contracts.d.ts.map +1 -0
  29. package/dist/src/durable/contracts.js +2 -0
  30. package/dist/src/durable/contracts.js.map +1 -0
  31. package/dist/src/durable/errors.d.ts +94 -0
  32. package/dist/src/durable/errors.d.ts.map +1 -0
  33. package/dist/src/durable/errors.js +118 -0
  34. package/dist/src/durable/errors.js.map +1 -0
  35. package/dist/src/durable/index.d.ts +9 -0
  36. package/dist/src/durable/index.d.ts.map +1 -0
  37. package/dist/src/durable/index.js +770 -0
  38. package/dist/src/durable/index.js.map +1 -0
  39. package/dist/src/durable/journal.d.ts +53 -0
  40. package/dist/src/durable/journal.d.ts.map +1 -0
  41. package/dist/src/durable/journal.js +174 -0
  42. package/dist/src/durable/journal.js.map +1 -0
  43. package/dist/src/durable/locator.d.ts +31 -0
  44. package/dist/src/durable/locator.d.ts.map +1 -0
  45. package/dist/src/durable/locator.js +50 -0
  46. package/dist/src/durable/locator.js.map +1 -0
  47. package/dist/src/durable/records.d.ts +40 -0
  48. package/dist/src/durable/records.d.ts.map +1 -0
  49. package/dist/src/durable/records.js +74 -0
  50. package/dist/src/durable/records.js.map +1 -0
  51. package/dist/src/durable/schema.d.ts +37 -0
  52. package/dist/src/durable/schema.d.ts.map +1 -0
  53. package/dist/src/durable/schema.js +335 -0
  54. package/dist/src/durable/schema.js.map +1 -0
  55. package/dist/src/durable/selected-index.d.ts +94 -0
  56. package/dist/src/durable/selected-index.d.ts.map +1 -0
  57. package/dist/src/durable/selected-index.js +594 -0
  58. package/dist/src/durable/selected-index.js.map +1 -0
  59. package/dist/src/index.d.ts +28 -0
  60. package/dist/src/index.d.ts.map +1 -0
  61. package/dist/src/index.js +15 -0
  62. package/dist/src/index.js.map +1 -0
  63. package/dist/src/store/index.d.ts +128 -0
  64. package/dist/src/store/index.d.ts.map +1 -0
  65. package/dist/src/store/index.js +33 -0
  66. package/dist/src/store/index.js.map +1 -0
  67. package/dist/src/store/memory/index.d.ts +24 -0
  68. package/dist/src/store/memory/index.d.ts.map +1 -0
  69. package/dist/src/store/memory/index.js +162 -0
  70. package/dist/src/store/memory/index.js.map +1 -0
  71. package/dist/src/types.d.ts +100 -0
  72. package/dist/src/types.d.ts.map +1 -0
  73. package/dist/src/types.js +2 -0
  74. package/dist/src/types.js.map +1 -0
  75. package/dist/test/conformance/store/index.d.ts +34 -0
  76. package/dist/test/conformance/store/index.d.ts.map +1 -0
  77. package/dist/test/conformance/store/index.js +368 -0
  78. package/dist/test/conformance/store/index.js.map +1 -0
  79. package/package.json +48 -8
@@ -0,0 +1,3 @@
1
+ /** Entry-specific exports preserve one History type identity per release tier. */
2
+ export { AttemptConflictError, AttemptStateError, DuplicateRowError, FingerprintAlgorithmMismatchError, HistoryClockError, HistoryIntegrityError, HistorySchemaError, InvalidStorePatchError, JournalConflictError, JournalVersionError, MissingRowError, StaleWriterError, createMemoryStore, openDurableHistory } from './history.shared.untrimmed.js';
3
+ export type { Divergence, FieldRow, Fingerprint, GenerationPatch, GenerationRow, GenerationState, IAbandonRequest, IAcceptanceRecord, IAcceptanceRequest, IAddressSegment, IAttemptRecord, IAttemptRequest, IAttemptState, IClockCapability, ICompletedEnvelope, ICompletedNavigationReader, ICompletedProjectionReader, ICompletedResultReader, ICompletedResultReference, IDurableHistory, IDurableHistoryOptions, IHistoryScope, IJournalAddress, IJournalCommit, IJournalDeclaration, IJournalFormat, IJournalQuery, IJournalRecord, IJournalWrite, IOperation, IOperationJournal, IPromotionQuery, IPromotionRecord, IPromotionRequest, IRecoveryOutcome, IResultVerification, IScopedSubject, ISelectedFact, ISelectedFingerprintRequest, ISelectedFingerprintResolution, ISelectedNode, ISelectedReadRequest, ISha256Capability, ISqliteCapability, ISqliteConnection, ISqliteRow, ISqliteRunResult, ISqliteStatement, ISqliteSynchronousResult, ISqliteValue, IStageRequest, IValueProjectionDescriptor, IValueProjectionFact, IValueProjectionMember, IValueProjectionTraversal, IVersionedRecord, IVersionedSubject, IWriterAcquisition, IWriterAcquisitionRequest, IWriterContention, IWriterLease, IWriterRenewal, Identity, MemoryStoreOptions, Outcome, Path, RecordedRead, ResultKey, Store, StoreMetadata, Subject, SubjectPatch, SubjectRow } from './history.shared.untrimmed.js';
@@ -0,0 +1,11 @@
1
+ // This file is read by tools that parse documentation comments conforming to the TSDoc standard.
2
+ // It should be published with your NPM package. It should not be tracked by Git.
3
+ {
4
+ "tsdocVersion": "0.12",
5
+ "toolPackages": [
6
+ {
7
+ "packageName": "@microsoft/api-extractor",
8
+ "packageVersion": "7.59.2"
9
+ }
10
+ ]
11
+ }
@@ -0,0 +1,99 @@
1
+ /**
2
+ * Exact completed-snapshot reading contracts used by Materialization. These
3
+ * interfaces locate immutable results but neither implement a backend nor decide
4
+ * freshness, publication, authorization, or candidate eligibility.
5
+ * @packageDocumentation
6
+ */
7
+ import type { IAddressSegment, IOperation, ISelectedFact, ISelectedNode, IValueProjectionDescriptor, IValueProjectionFact } from '@microdelta/value';
8
+ /**
9
+ * A caller-visible locator for one completed immutable snapshot. The opaque
10
+ * locator carries whatever analysis and environment scope its reader requires;
11
+ * it is never a payload or a request to follow a current pointer.
12
+ * @alpha
13
+ */
14
+ export interface ICompletedResultReference {
15
+ /** Dispatches resolution to the completed-result contract. */
16
+ readonly kind: 'completed-result';
17
+ /** Opaque exact snapshot locator interpreted only by its injected reader. */
18
+ readonly locator: string;
19
+ }
20
+ /** A selected Value-owned scalar fact requested at an exact retained address. @alpha */
21
+ export interface ISelectedReadRequest {
22
+ /** The literal operation whose fact is requested. */
23
+ readonly operation: IOperation;
24
+ /** Container-aware path within this selected result value. */
25
+ readonly address: readonly IAddressSegment[];
26
+ }
27
+ /**
28
+ * Metadata lookup is scoped to the exact result reference and full requested
29
+ * selection. The encoding tag prevents an indexed digest from another semantic
30
+ * version being mistaken for this selection.
31
+ * @alpha
32
+ */
33
+ export type ISelectedFingerprintRequest = {
34
+ readonly kind: 'selected';
35
+ readonly operation: IOperation;
36
+ readonly address: readonly IAddressSegment[];
37
+ readonly encoding: 'MDO1';
38
+ } | {
39
+ readonly kind: 'projection';
40
+ readonly descriptor: IValueProjectionDescriptor;
41
+ readonly encoding: 'MDP1';
42
+ } | {
43
+ readonly kind: 'materialized-output';
44
+ readonly address: readonly IAddressSegment[];
45
+ readonly encoding: 'MDS1';
46
+ };
47
+ /** Explicit results keep absent or incompatible metadata from implying equality. @alpha */
48
+ export type ISelectedFingerprintResolution = {
49
+ readonly kind: 'compatible';
50
+ readonly fingerprint: string;
51
+ } | {
52
+ readonly kind: 'unavailable';
53
+ } | {
54
+ readonly kind: 'incompatible';
55
+ } | {
56
+ readonly kind: 'ambiguous';
57
+ };
58
+ /**
59
+ * Synchronous scalar access and fingerprint-only resolution for one exact
60
+ * completed snapshot. A compatible fingerprint answer must be backed by the
61
+ * same semantics as a selected read; resolving metadata never reads payload.
62
+ * @alpha
63
+ */
64
+ export interface ICompletedResultReader {
65
+ /** Read the requested fact from exactly this reference, never from current. */
66
+ readSelected(reference: ICompletedResultReference, request: ISelectedReadRequest): ISelectedFact;
67
+ /** Resolve matching metadata only; unavailable metadata does not trigger a read. */
68
+ resolveFingerprint(reference: ICompletedResultReference, request: ISelectedFingerprintRequest): ISelectedFingerprintResolution;
69
+ }
70
+ /**
71
+ * Optional capability for readers that can supply an exact keyed projection as
72
+ * selected member values. Scalar readers do not need to implement projections.
73
+ * @alpha
74
+ */
75
+ export interface ICompletedProjectionReader {
76
+ /** Read only the projection's requested address and keyed selected values. */
77
+ readProjection(reference: ICompletedResultReference, descriptor: IValueProjectionDescriptor): IValueProjectionFact;
78
+ }
79
+ /**
80
+ * Optional capability for readers that can navigate one exact completed
81
+ * snapshot node by node, for lazy nested views. A navigation answer is the
82
+ * scalar value fact or the record/array shape at exactly the requested address;
83
+ * answering it must not read the root payload, a sibling or an unrequested
84
+ * descendant. Presence and key-order facts at nested addresses are answered by
85
+ * the same reader's {@link ICompletedResultReader.readSelected}. Every answer is
86
+ * synchronous: storage that can only load asynchronously cannot implement this
87
+ * capability. Scalar-only readers need not implement it.
88
+ * @alpha
89
+ */
90
+ export interface ICompletedNavigationReader {
91
+ /** Navigate to exactly one node of this reference, never following a current pointer. */
92
+ readNode(reference: ICompletedResultReference, address: readonly IAddressSegment[]): ISelectedNode;
93
+ /**
94
+ * Return the complete supported data of one container subtree, only for an
95
+ * explicit output request. Record key order must be the snapshot's order.
96
+ */
97
+ readSubtree(reference: ICompletedResultReference, address: readonly IAddressSegment[]): unknown;
98
+ }
99
+ //# sourceMappingURL=completed-results.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"completed-results.d.ts","sourceRoot":"","sources":["../../src/completed-results.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EACV,eAAe,EACf,UAAU,EACV,aAAa,EACb,aAAa,EACb,0BAA0B,EAC1B,oBAAoB,EACrB,MAAM,mBAAmB,CAAC;AAE3B;;;;;GAKG;AACH,MAAM,WAAW,yBAAyB;IACxC,8DAA8D;IAC9D,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC;IAClC,6EAA6E;IAC7E,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,wFAAwF;AACxF,MAAM,WAAW,oBAAoB;IACnC,qDAAqD;IACrD,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAC;IAC/B,8DAA8D;IAC9D,QAAQ,CAAC,OAAO,EAAE,SAAS,eAAe,EAAE,CAAC;CAC9C;AAED;;;;;GAKG;AACH,MAAM,MAAM,2BAA2B,GACnC;IACE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAC;IAC/B,QAAQ,CAAC,OAAO,EAAE,SAAS,eAAe,EAAE,CAAC;IAC7C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,0BAA0B,CAAC;IAChD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,qBAAqB,CAAC;IACrC,QAAQ,CAAC,OAAO,EAAE,SAAS,eAAe,EAAE,CAAC;IAC7C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEN,2FAA2F;AAC3F,MAAM,MAAM,8BAA8B,GACtC;IAAE,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GAC7D;IAAE,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAA;CAAE,GAChC;IAAE,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAA;CAAE,GACjC;IAAE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAA;CAAE,CAAC;AAEnC;;;;;GAKG;AACH,MAAM,WAAW,sBAAsB;IACrC,+EAA+E;IAC/E,YAAY,CAAC,SAAS,EAAE,yBAAyB,EAAE,OAAO,EAAE,oBAAoB,GAAG,aAAa,CAAC;IACjG,oFAAoF;IACpF,kBAAkB,CAChB,SAAS,EAAE,yBAAyB,EACpC,OAAO,EAAE,2BAA2B,GACnC,8BAA8B,CAAC;CACnC;AAED;;;;GAIG;AACH,MAAM,WAAW,0BAA0B;IACzC,8EAA8E;IAC9E,cAAc,CACZ,SAAS,EAAE,yBAAyB,EACpC,UAAU,EAAE,0BAA0B,GACrC,oBAAoB,CAAC;CACzB;AAED;;;;;;;;;;GAUG;AACH,MAAM,WAAW,0BAA0B;IACzC,yFAAyF;IACzF,QAAQ,CAAC,SAAS,EAAE,yBAAyB,EAAE,OAAO,EAAE,SAAS,eAAe,EAAE,GAAG,aAAa,CAAC;IACnG;;;OAGG;IACH,WAAW,CAAC,SAAS,EAAE,yBAAyB,EAAE,OAAO,EAAE,SAAS,eAAe,EAAE,GAAG,OAAO,CAAC;CACjG"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=completed-results.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"completed-results.js","sourceRoot":"","sources":["../../src/completed-results.ts"],"names":[],"mappings":""}