@ibgib/core-gib 0.0.113 → 0.1.2

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 (69) hide show
  1. package/dist/common/comment/comment-constants.d.mts +1 -1
  2. package/dist/common/comment/comment-constants.d.mts.map +1 -1
  3. package/dist/common/comment/comment-constants.mjs +1 -1
  4. package/dist/common/comment/comment-constants.mjs.map +1 -1
  5. package/dist/timeline/timeline-api.d.mts +297 -0
  6. package/dist/timeline/timeline-api.d.mts.map +1 -0
  7. package/dist/timeline/timeline-api.mjs +725 -0
  8. package/dist/timeline/timeline-api.mjs.map +1 -0
  9. package/dist/timeline/timeline-types.d.mts +42 -0
  10. package/dist/timeline/timeline-types.d.mts.map +1 -0
  11. package/dist/timeline/timeline-types.mjs +2 -0
  12. package/dist/timeline/timeline-types.mjs.map +1 -0
  13. package/dist/witness/space/filesystem-space/filesystem-space-v1.d.mts +0 -1
  14. package/dist/witness/space/filesystem-space/filesystem-space-v1.d.mts.map +1 -1
  15. package/dist/witness/space/filesystem-space/filesystem-space-v1.mjs +0 -3
  16. package/dist/witness/space/filesystem-space/filesystem-space-v1.mjs.map +1 -1
  17. package/dist/witness/space/inner-space/inner-space-constants.d.mts +2 -0
  18. package/dist/witness/space/inner-space/inner-space-constants.d.mts.map +1 -0
  19. package/dist/witness/space/inner-space/inner-space-constants.mjs +2 -0
  20. package/dist/witness/space/inner-space/inner-space-constants.mjs.map +1 -0
  21. package/dist/witness/space/inner-space/inner-space-types.d.mts +23 -0
  22. package/dist/witness/space/inner-space/inner-space-types.d.mts.map +1 -0
  23. package/dist/witness/space/inner-space/inner-space-types.mjs +32 -0
  24. package/dist/witness/space/inner-space/inner-space-types.mjs.map +1 -0
  25. package/dist/witness/space/inner-space/inner-space-v1.d.mts +13 -7
  26. package/dist/witness/space/inner-space/inner-space-v1.d.mts.map +1 -1
  27. package/dist/witness/space/inner-space/inner-space-v1.mjs +159 -8
  28. package/dist/witness/space/inner-space/inner-space-v1.mjs.map +1 -1
  29. package/dist/witness/space/inner-space/inner-space-v1.respec.mjs +206 -52
  30. package/dist/witness/space/inner-space/inner-space-v1.respec.mjs.map +1 -1
  31. package/dist/witness/space/metaspace/metaspace-base.d.mts.map +1 -1
  32. package/dist/witness/space/metaspace/metaspace-base.mjs +4 -2
  33. package/dist/witness/space/metaspace/metaspace-base.mjs.map +1 -1
  34. package/dist/witness/space/metaspace/metaspace-innerspace/metaspace-innerspace-helper.d.mts.map +1 -1
  35. package/dist/witness/space/metaspace/metaspace-innerspace/metaspace-innerspace-helper.mjs +28 -9
  36. package/dist/witness/space/metaspace/metaspace-innerspace/metaspace-innerspace-helper.mjs.map +1 -1
  37. package/dist/witness/space/metaspace/metaspace-innerspace/metaspace-innerspace.d.mts.map +1 -1
  38. package/dist/witness/space/metaspace/metaspace-innerspace/metaspace-innerspace.mjs +27 -3
  39. package/dist/witness/space/metaspace/metaspace-innerspace/metaspace-innerspace.mjs.map +1 -1
  40. package/dist/witness/space/reconciliation-space/reconciliation-space-base.d.mts +100 -0
  41. package/dist/witness/space/reconciliation-space/reconciliation-space-base.d.mts.map +1 -0
  42. package/dist/witness/space/reconciliation-space/reconciliation-space-base.mjs +758 -0
  43. package/dist/witness/space/reconciliation-space/reconciliation-space-base.mjs.map +1 -0
  44. package/dist/witness/space/reconciliation-space/reconciliation-space-helper.d.mts +40 -0
  45. package/dist/witness/space/reconciliation-space/reconciliation-space-helper.d.mts.map +1 -0
  46. package/dist/witness/space/reconciliation-space/reconciliation-space-helper.mjs +90 -0
  47. package/dist/witness/space/reconciliation-space/reconciliation-space-helper.mjs.map +1 -0
  48. package/dist/witness/space/space-helper.d.mts.map +1 -1
  49. package/dist/witness/space/space-helper.mjs +10 -2
  50. package/dist/witness/space/space-helper.mjs.map +1 -1
  51. package/dist/witness/space/space-respec-helper.d.mts.map +1 -1
  52. package/dist/witness/space/space-respec-helper.mjs +3 -0
  53. package/dist/witness/space/space-respec-helper.mjs.map +1 -1
  54. package/package.json +1 -1
  55. package/src/common/comment/comment-constants.mts +1 -1
  56. package/src/timeline/timeline-api.mts +943 -0
  57. package/src/timeline/timeline-types.mts +38 -0
  58. package/src/witness/space/filesystem-space/filesystem-space-v1.mts +0 -3
  59. package/src/witness/space/inner-space/inner-space-constants.mts +1 -0
  60. package/src/witness/space/inner-space/inner-space-types.mts +44 -0
  61. package/src/witness/space/inner-space/inner-space-v1.mts +157 -28
  62. package/src/witness/space/inner-space/inner-space-v1.respec.mts +242 -58
  63. package/src/witness/space/metaspace/metaspace-base.mts +7 -1
  64. package/src/witness/space/metaspace/metaspace-innerspace/metaspace-innerspace-helper.mts +32 -10
  65. package/src/witness/space/metaspace/metaspace-innerspace/metaspace-innerspace.mts +76 -53
  66. package/src/witness/space/reconciliation-space/reconciliation-space-base.mts +884 -0
  67. package/src/witness/space/reconciliation-space/reconciliation-space-helper.mts +125 -0
  68. package/src/witness/space/space-helper.mts +5 -2
  69. package/src/witness/space/space-respec-helper.mts +4 -4
@@ -7,5 +7,5 @@ export declare const DEFAULT_COMMENT_TEXT_IB_SUBSTRING_LENGTH = 20;
7
7
  *
8
8
  * @example "comment thisisacomm here_is_addl_metadata"
9
9
  */
10
- export declare const DEFAULT_COMMENT_METADATA_IB_SUBSTRING_LENGTH = 64;
10
+ export declare const DEFAULT_COMMENT_METADATA_IB_SUBSTRING_LENGTH = 128;
11
11
  //# sourceMappingURL=comment-constants.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"comment-constants.d.mts","sourceRoot":"","sources":["../../../src/common/comment/comment-constants.mts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,wCAAwC,KAAK,CAAC;AAC3D;;;;GAIG;AACH,eAAO,MAAM,4CAA4C,KAAK,CAAC"}
1
+ {"version":3,"file":"comment-constants.d.mts","sourceRoot":"","sources":["../../../src/common/comment/comment-constants.mts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,wCAAwC,KAAK,CAAC;AAC3D;;;;GAIG;AACH,eAAO,MAAM,4CAA4C,MAAM,CAAC"}
@@ -7,5 +7,5 @@ export const DEFAULT_COMMENT_TEXT_IB_SUBSTRING_LENGTH = 20;
7
7
  *
8
8
  * @example "comment thisisacomm here_is_addl_metadata"
9
9
  */
10
- export const DEFAULT_COMMENT_METADATA_IB_SUBSTRING_LENGTH = 64;
10
+ export const DEFAULT_COMMENT_METADATA_IB_SUBSTRING_LENGTH = 128;
11
11
  //# sourceMappingURL=comment-constants.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"comment-constants.mjs","sourceRoot":"","sources":["../../../src/common/comment/comment-constants.mts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,MAAM,wCAAwC,GAAG,EAAE,CAAC;AAC3D;;;;GAIG;AACH,MAAM,CAAC,MAAM,4CAA4C,GAAG,EAAE,CAAC"}
1
+ {"version":3,"file":"comment-constants.mjs","sourceRoot":"","sources":["../../../src/common/comment/comment-constants.mts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,MAAM,wCAAwC,GAAG,EAAE,CAAC;AAC3D;;;;GAIG;AACH,MAAM,CAAC,MAAM,4CAA4C,GAAG,GAAG,CAAC"}
@@ -0,0 +1,297 @@
1
+ /**
2
+ * @module timeline-api.mts This facade provides a simplified, timeline-oriented
3
+ * API for interacting with ibGibs, abstracting away low-level transform details
4
+ * (like nCounter, dna, dna, tjp rel8ns) and handling concurrency control (via
5
+ * locking) for maintaining timeline integrity.
6
+ */
7
+ import { IbGib_V1, IbGibData_V1, IbGibRel8ns_V1 } from "@ibgib/ts-gib/dist/V1/types.mjs";
8
+ import { IbGibAddr, TransformOpts_Mut8, TransformResult, Ib, IbGibRel8ns } from "@ibgib/ts-gib/dist/types.mjs";
9
+ import { MetaspaceService } from "../witness/space/metaspace/metaspace-types.mjs";
10
+ import { IbGibSpaceAny } from "../witness/space/space-base-v1.mjs";
11
+ import { SpecialIbGibType } from "../common/other/other-types.mjs";
12
+ import { TimelineHistoryInfo } from "./timeline-types.mjs";
13
+ export interface Rel8nInfo {
14
+ rel8nName: string;
15
+ ibGibs: IbGib_V1[];
16
+ }
17
+ export interface CommonTimelineOptsSansSkipLock {
18
+ /**
19
+ * space of spaces. Should be a singleton. @see {@link MetaspaceService}
20
+ */
21
+ metaspace: MetaspaceService;
22
+ /**
23
+ * the space that contains both the {@link timeline} and ibGibs contained in
24
+ * {@link rel8nInfos}.
25
+ *
26
+ * if falsy, then the default local user space will be gotten from the
27
+ * {@link metaspace}.
28
+ */
29
+ space?: IbGibSpaceAny;
30
+ }
31
+ export interface CommonTimelineOpts extends CommonTimelineOptsSansSkipLock {
32
+ /**
33
+ * if true, will not lock the timeline. ONLY use this if you know what you
34
+ * are doing, otherwise divergent timelines can occur.
35
+ *
36
+ * Really at that point, you may consider using the raw transforms
37
+ * themselves.
38
+ */
39
+ skipLock?: boolean;
40
+ }
41
+ /**
42
+ * Deterministically generates a lock scope for a given timeline.
43
+ *
44
+ * ## internal details, may change
45
+ *
46
+ * ATOW (05/2025), this will return the tjpGib of the timeline. So if the addr
47
+ * is `comment Foo^ABC123.DEF456`, where ABC123 and DEF456 are hashes, then this
48
+ * will return `DEF456`. For an addr that is just `comment Bar^GHI789`, then
49
+ * this *is* the TJP and thus its gib is `GHI789` and that is what is returned.
50
+ */
51
+ export declare function getLockScope({ timeline }: {
52
+ timeline: IbGib_V1;
53
+ }): Promise<string>;
54
+ export declare function isSameTimeline({ a, b, }: {
55
+ a: IbGib_V1;
56
+ b: IbGib_V1;
57
+ }): Promise<boolean>;
58
+ /**
59
+ * Appends a list of ibGibs to a timeline in the order given using the
60
+ * associated rel8nName (named edge).
61
+ *
62
+ * ## regarding persistence and registerNewIbGib pubsub
63
+ *
64
+ * The caller is responsible for persisting any ibGibs that are contained in
65
+ * {@link rel8nInfos}. However, all newly created ibgibs resulting from extending
66
+ * {@link timeline} *WILL* be saved in the {@link space}.
67
+ *
68
+ * This also will call `metaspace.registerNewIbGib` for the new timeline ibgib
69
+ * created ONLY, and will only do this AFTER both...
70
+ * * the timeline's lock is released AND AFTER
71
+ * * any indexes are updated if given via {@link timelineIndexInfo}.
72
+ * * atow (05/2025) this does not await the registerNewIbGib call, but this may
73
+ * change at any time.
74
+ */
75
+ export declare function appendToTimeline({ timeline, rel8nInfos, timelineIndexInfo, metaspace, space, skipLock, }: {
76
+ timeline: IbGib_V1;
77
+ /**
78
+ * rel8nName/ibGibs pairings to append to the timeline.
79
+ */
80
+ rel8nInfos: Rel8nInfo[];
81
+ /**
82
+ * If provided, will automatically update the index associated with the
83
+ * given {@link type} AFTER the timeline is extended but BEFORE the
84
+ * timeline's new ibgib is published via the {@link registerNewIbGib}
85
+ * function on {@link metaspace}.
86
+ *
87
+ * NOTE that this WILL LOCK the special ibgib index unless {@link skipLock}
88
+ * is true.
89
+ *
90
+ * @see {@link updateSpecialIndex}
91
+ */
92
+ timelineIndexInfo?: {
93
+ type: SpecialIbGibType;
94
+ rel8nName: string;
95
+ };
96
+ } & CommonTimelineOpts): Promise<IbGib_V1>;
97
+ /**
98
+ * Updates a special ibgib in the given {@link space} with new and/or updated
99
+ * {@link rel8nInfos}.
100
+ *
101
+ * ## on "special" ibgibs
102
+ *
103
+ * "Special" ibgibs are mostly used as indexes, but not necessarily. These are
104
+ * slightly different than most normal ibgibs in that they are not in some way
105
+ * or another attached to a root in the space, rather, they are rel8d directly
106
+ * to the local user space itself. So when a special ibgib is changed, i.e. its
107
+ * own timeline is extended, its new address is always proactively updated on
108
+ * the space directly. so `space.rel8ns[key]` (where key is derived from the
109
+ * given {@link type}) is updated with newSpecialIbGib's addr.
110
+ *
111
+ * @see {@link setConfigAddr}
112
+ * @see {@link rel8ToSpecialIbGib}
113
+ *
114
+ * ## upsert
115
+ *
116
+ * This is analogous to an upsert operation *into* the special index. So we are
117
+ * updating the index's rel8ns either way whether or not that rel8n already
118
+ * exists.
119
+ */
120
+ export declare function updateSpecialIndex({ type, rel8nInfos, dataToAddOrPatch, metaspace, space, skipLock, }: {
121
+ /**
122
+ * identifying type of the special index. For example, spaces usually get
123
+ * initialized with a "tags" index. Individual tag ibgibs will be rel8d
124
+ * to this index using the `SpecialIbGibType.tags`, but really any string
125
+ * can be used as this type.
126
+ *
127
+ * For example, agents (atow 05/2025) have a soft type in their data.
128
+ * These agents are then indexed via this agent.data.type so that each type of
129
+ * agent has its own index, e.g., "primaryagent" or "renderable".
130
+ */
131
+ type: SpecialIbGibType;
132
+ rel8nInfos?: Rel8nInfo[];
133
+ dataToAddOrPatch?: any;
134
+ } & CommonTimelineOpts): Promise<void>;
135
+ export declare function getLatestTimelineIbGibDto_nonLocking<TIbGib extends IbGib_V1>({ timeline, timelineAddr, metaspace, space, }: {
136
+ timeline?: TIbGib;
137
+ timelineAddr?: IbGibAddr;
138
+ metaspace: MetaspaceService;
139
+ space: IbGibSpaceAny;
140
+ }): Promise<TIbGib>;
141
+ export declare function mut8Timeline<TData extends IbGibData_V1 = any>({ timeline, timelineAddr, mut8Opts, metaspace, space, skipLock, timelineIndexInfo, }: {
142
+ /**
143
+ * timeline ibgib whose `data` we're mutating.
144
+ */
145
+ timeline?: IbGib_V1<TData, any>;
146
+ timelineAddr?: IbGibAddr;
147
+ /**
148
+ * 'dataToRename' | 'dataToRemove' | 'dataToAddOrPatch' | 'mut8Ib'
149
+ *
150
+ * The rest of the mut8 options are automatic in this simplified timeline
151
+ * api.
152
+ */
153
+ mut8Opts: Pick<TransformOpts_Mut8<IbGib_V1, Partial<TData>>, 'dataToRename' | 'dataToRemove' | 'dataToAddOrPatch' | 'mut8Ib'>;
154
+ /**
155
+ * If provided, will automatically update the index associated with the
156
+ * given {@link type} AFTER the timeline is extended but BEFORE the
157
+ * timeline's new ibgib is published via the {@link registerNewIbGib}
158
+ * function on {@link metaspace}.
159
+ *
160
+ * NOTE that this WILL LOCK the special ibgib index unless {@link skipLock}
161
+ * is true.
162
+ *
163
+ * @see {@link updateSpecialIndex}
164
+ */
165
+ timelineIndexInfo?: {
166
+ type: SpecialIbGibType;
167
+ rel8nName: string;
168
+ };
169
+ } & CommonTimelineOpts): Promise<IbGib_V1<TData, any>>;
170
+ /**
171
+ * Creates a new ibGib timeline and persists it to the given space.
172
+ *
173
+ * This is the primary entry point for creating any new, trackable piece of data
174
+ * in the ibGib system.
175
+ *
176
+ * ## On usage of this factory function
177
+ *
178
+ * This is often used for one-offs or testing, but usually you will want to
179
+ * create your own factory function and use this internally.
180
+ *
181
+ * ## On "New" vs. "Fork"
182
+ *
183
+ * Every ibGib is a transformation (a "fork") of an existing ibgib, with the
184
+ * most primitive ibGib being the {@link ROOT} primitive. This is like the ibgib
185
+ * analog to a zero/infinity value (the same asymptote from two sides), or in CS
186
+ * OOP, this is like the root/base of the class hierarchy. But it's important to
187
+ * keep in mind that time is a first-class citizen and that we are always
188
+ * working with that instead of some detached "new" siloed thing.
189
+ *
190
+ * ## On Parenting
191
+ *
192
+ * The identity of an ibGib is tied to its ancestry via the `ancestor` rel8n
193
+ * (`someIbGib.rel8ns.ancestor`). This function gives you two ways to specify
194
+ * the parent to fork:
195
+ *
196
+ * 1. {@link parentIb}: If you provide a simple string like `'comment'` or `'picture'`,
197
+ * this function will handle creating the "primitive" parent ibGib
198
+ * (`comment^gib` or `picture^gib`) for you. This is the easiest way to
199
+ * create "typed" data, so that if you examine the `ancestor` rel8n, and see
200
+ * this, you know would know that this ibgib is a "comment" or "picture". Use
201
+ * this if you are not forking a particular instance of another ibGib.
202
+ *
203
+ * 2. {@link parentIbGib}: Provide a full, existing `IbGib` reference to be the
204
+ * parent. This can be used when using a previous ibGib as a template for
205
+ * just one use case. Note that this parent ibgib (and all of its
206
+ * dependency graph) must exist in the same given {@link space} (if
207
+ * provided), or in the default local user space via the {@link metaspace}.
208
+ * Almost always (always?), an existing parent ibgib will itself ultimately
209
+ * descend from a primitive ibgib.
210
+ *
211
+ * If neither `parentIb` nor `parentIbGib` is provided, it defaults to forking
212
+ * the absolute {@link ROOT} ibGib, resulting in a generic, untyped timeline (or
213
+ * relegates the typing to some other mechanism, like the `ibGib.ib` or other).
214
+ *
215
+ * @returns The entire transform result object, which includes `newIbGib` (the
216
+ * latest/head of the newly created timeline) and `intermediateIbGibs` (the
217
+ * primitive ibGibs that form its DNA and any interstitial ibGibs that were
218
+ * created).
219
+ */
220
+ export declare function createTimeline<TData extends IbGibData_V1 = IbGibData_V1>({ ib, data, rel8ns, parentIb, parentIbGib, metaspace, space, }: {
221
+ /**
222
+ * The "ib" content of the new ibGib. Often a short descriptor.
223
+ * e.g., "some_atom SomeMetadata".
224
+ *
225
+ * ## notes on `ib` schemas
226
+ *
227
+ * Note that the `ib` is usually a space-delimited string, with the first
228
+ * piece being an "atom" that is a naive "type" of the ibgib. Any
229
+ * constituent pieces of the `ib`, including that atom`, are usually
230
+ * underscore-delimited, but this is not a definite rule. The `ib` cannot
231
+ * contain the ib^gib delimiter (the caret ^).
232
+ *
233
+ * ## factory functions for common ibgibs
234
+ *
235
+ * There are also existing factory functions for comments (text ibgibs),
236
+ * pics, links, and some others. These create additional special schemas for
237
+ * those, if you wish to use the existing constructs, so those factory
238
+ * functions should be used instead of this one.
239
+ */
240
+ ib: string;
241
+ /**
242
+ * Optional data payload for the new ibGib.
243
+ */
244
+ data?: TData;
245
+ /**
246
+ * Optional relationships to other ibGibs.
247
+ */
248
+ rel8ns?: IbGibRel8ns;
249
+ /**
250
+ * The `ib` of the primitive parent to fork, e.g., `'comment'`.
251
+ * (See "On Parenting" in function docs).
252
+ */
253
+ parentIb?: Ib;
254
+ /**
255
+ * The actual `IbGib` object to fork. Overrides `parentIb` if provided.
256
+ * (See "On Parenting" in function docs).
257
+ */
258
+ parentIbGib?: IbGib_V1;
259
+ } & CommonTimelineOptsSansSkipLock): Promise<TransformResult<IbGib_V1<TData, IbGibRel8ns_V1>>>;
260
+ /**
261
+ * Retrieves the DNA ibGibs for a given ibGib.
262
+ *
263
+ * In V1, DNA is considered atomic and is not nested. This function performs a
264
+ * direct lookup of the ibGibs pointed to by the `dna` rel8n.
265
+ *
266
+ * @returns An array of the primitive DNA ibGibs.
267
+ */
268
+ export declare function getDna({ ibGib, metaspace, space, }: {
269
+ ibGib: IbGib_V1;
270
+ } & CommonTimelineOptsSansSkipLock): Promise<IbGib_V1[]>;
271
+ /**
272
+ * Constructs a {@link TimelineHistoryInfo} record about the given timeline
273
+ * (using the {@link timeline} `ibGib.rel8ns.past`), with loaded past ibgibs,
274
+ * and if {@link includeDna}, a reference to their dna ibgibs as well.
275
+ *
276
+ * @returns A complete, ordered array of ibGibs constituting the timeline,
277
+ * from the earliest ancestor to the provided `timeline` ibGib.
278
+ */
279
+ export declare function getHistory({ timeline, getLatest, includeDna, metaspace, space, }: {
280
+ /**
281
+ * The ibGib at the head of the timeline whose history you want to retrieve.
282
+ */
283
+ timeline: IbGib_V1;
284
+ /**
285
+ * if true, will first retrieve the latest ibgib in the {@link timeline} in
286
+ * the given {@link space} if provided, else in the default local user space
287
+ * according to the {@link metaspace}.
288
+ */
289
+ getLatest?: boolean;
290
+ /**
291
+ * If true, includes all DNA ibGibs for the entire timeline at the
292
+ * beginning of the returned array.
293
+ * @default true
294
+ */
295
+ includeDna?: boolean;
296
+ } & CommonTimelineOptsSansSkipLock): Promise<TimelineHistoryInfo>;
297
+ //# sourceMappingURL=timeline-api.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timeline-api.d.mts","sourceRoot":"","sources":["../../src/timeline/timeline-api.mts"],"names":[],"mappings":"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"}