@ibgib/core-gib 0.0.8 → 0.0.11

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 (154) hide show
  1. package/README.md +5 -10
  2. package/dist/assumptions.respec.d.mts +2 -0
  3. package/dist/assumptions.respec.d.mts.map +1 -0
  4. package/dist/assumptions.respec.mjs +41 -0
  5. package/dist/assumptions.respec.mjs.map +1 -0
  6. package/dist/core-constants.d.mts +0 -2
  7. package/dist/core-constants.d.mts.map +1 -1
  8. package/dist/core-constants.mjs +0 -2
  9. package/dist/core-constants.mjs.map +1 -1
  10. package/dist/core-helper.respec.d.mts +2 -0
  11. package/dist/core-helper.respec.d.mts.map +1 -0
  12. package/dist/core-helper.respec.mjs +53 -0
  13. package/dist/core-helper.respec.mjs.map +1 -0
  14. package/dist/core-types.d.mts +22 -0
  15. package/dist/core-types.d.mts.map +1 -1
  16. package/dist/respec-gib.node.d.mts +2 -0
  17. package/dist/respec-gib.node.d.mts.map +1 -0
  18. package/dist/respec-gib.node.mjs +211 -0
  19. package/dist/respec-gib.node.mjs.map +1 -0
  20. package/dist/spec-helper.node.respec.d.mts +12 -0
  21. package/dist/spec-helper.node.respec.d.mts.map +1 -0
  22. package/dist/spec-helper.node.respec.mjs +43 -0
  23. package/dist/spec-helper.node.respec.mjs.map +1 -0
  24. package/dist/witness/app/app-base-v1.d.mts +2 -2
  25. package/dist/witness/app/app-base-v1.d.mts.map +1 -1
  26. package/dist/witness/app/app-base-v1.mjs +23 -141
  27. package/dist/witness/app/app-base-v1.mjs.map +1 -1
  28. package/dist/witness/app/app-constants.d.mts +2 -0
  29. package/dist/witness/app/app-constants.d.mts.map +1 -1
  30. package/dist/witness/app/app-constants.mjs +2 -0
  31. package/dist/witness/app/app-constants.mjs.map +1 -1
  32. package/dist/witness/app/app-helper.d.mts.map +1 -1
  33. package/dist/witness/app/app-helper.mjs +2 -1
  34. package/dist/witness/app/app-helper.mjs.map +1 -1
  35. package/dist/witness/app/app-types.d.mts +2 -1
  36. package/dist/witness/app/app-types.d.mts.map +1 -1
  37. package/dist/witness/robbot/robbot-base-v1.d.mts +12 -164
  38. package/dist/witness/robbot/robbot-base-v1.d.mts.map +1 -1
  39. package/dist/witness/robbot/robbot-base-v1.mjs +41 -657
  40. package/dist/witness/robbot/robbot-base-v1.mjs.map +1 -1
  41. package/dist/witness/robbot/robbot-helper.mjs +3 -3
  42. package/dist/witness/robbot/robbot-helper.mjs.map +1 -1
  43. package/dist/witness/robbot/robbot-helper.respec.d.mts +2 -0
  44. package/dist/witness/robbot/robbot-helper.respec.d.mts.map +1 -0
  45. package/dist/witness/robbot/robbot-helper.respec.mjs +106 -0
  46. package/dist/witness/robbot/robbot-helper.respec.mjs.map +1 -0
  47. package/dist/witness/robbot/robbot-types.d.mts +6 -3
  48. package/dist/witness/robbot/robbot-types.d.mts.map +1 -1
  49. package/dist/witness/robbot/robbot-types.mjs +1 -0
  50. package/dist/witness/robbot/robbot-types.mjs.map +1 -1
  51. package/dist/witness/space/filesystem-space/filesystem-space-v1.d.mts +1 -1
  52. package/dist/witness/space/filesystem-space/filesystem-space-v1.d.mts.map +1 -1
  53. package/dist/witness/space/filesystem-space/filesystem-space-v1.respec.d.mts +2 -0
  54. package/dist/witness/space/filesystem-space/filesystem-space-v1.respec.d.mts.map +1 -0
  55. package/dist/witness/space/filesystem-space/filesystem-space-v1.respec.mjs +107 -0
  56. package/dist/witness/space/filesystem-space/filesystem-space-v1.respec.mjs.map +1 -0
  57. package/dist/witness/space/filesystem-space/node-filesystem-space-v1.d.mts.map +1 -1
  58. package/dist/witness/space/filesystem-space/node-filesystem-space-v1.mjs +1 -1
  59. package/dist/witness/space/filesystem-space/node-filesystem-space-v1.mjs.map +1 -1
  60. package/dist/witness/space/filesystem-space/node-filesystem-space-v1.node.respec.d.mts +2 -0
  61. package/dist/witness/space/filesystem-space/node-filesystem-space-v1.node.respec.d.mts.map +1 -0
  62. package/dist/witness/space/filesystem-space/node-filesystem-space-v1.node.respec.mjs +129 -0
  63. package/dist/witness/space/filesystem-space/node-filesystem-space-v1.node.respec.mjs.map +1 -0
  64. package/dist/witness/space/inner-space/inner-space-v1.respec.d.mts +2 -0
  65. package/dist/witness/space/inner-space/inner-space-v1.respec.d.mts.map +1 -0
  66. package/dist/witness/space/inner-space/inner-space-v1.respec.mjs +56 -0
  67. package/dist/witness/space/inner-space/inner-space-v1.respec.mjs.map +1 -0
  68. package/dist/witness/space/metaspace/metaspace-base.d.mts +795 -0
  69. package/dist/witness/space/metaspace/metaspace-base.d.mts.map +1 -0
  70. package/dist/witness/space/metaspace/metaspace-base.mjs +3251 -0
  71. package/dist/witness/space/metaspace/metaspace-base.mjs.map +1 -0
  72. package/dist/witness/space/metaspace/metaspace-innerspace/metaspace-innerspace-helper.d.mts +4 -0
  73. package/dist/witness/space/metaspace/metaspace-innerspace/metaspace-innerspace-helper.d.mts.map +1 -0
  74. package/dist/witness/space/metaspace/metaspace-innerspace/metaspace-innerspace-helper.mjs +117 -0
  75. package/dist/witness/space/metaspace/metaspace-innerspace/metaspace-innerspace-helper.mjs.map +1 -0
  76. package/dist/witness/space/metaspace/metaspace-innerspace/metaspace-innerspace.d.mts +34 -0
  77. package/dist/witness/space/metaspace/metaspace-innerspace/metaspace-innerspace.d.mts.map +1 -0
  78. package/dist/witness/space/metaspace/metaspace-innerspace/metaspace-innerspace.mjs +76 -0
  79. package/dist/witness/space/metaspace/metaspace-innerspace/metaspace-innerspace.mjs.map +1 -0
  80. package/dist/witness/space/metaspace/metaspace-types.d.mts +580 -0
  81. package/dist/witness/space/metaspace/metaspace-types.d.mts.map +1 -0
  82. package/dist/witness/space/metaspace/metaspace-types.mjs +6 -0
  83. package/dist/witness/space/metaspace/metaspace-types.mjs.map +1 -0
  84. package/dist/witness/space/space-helper.d.mts.map +1 -1
  85. package/dist/witness/space/space-helper.mjs +2 -1
  86. package/dist/witness/space/space-helper.mjs.map +1 -1
  87. package/dist/witness/space/{space-spec-helper.d.mts → space-respec-helper.d.mts} +15 -5
  88. package/dist/witness/space/space-respec-helper.d.mts.map +1 -0
  89. package/dist/witness/space/space-respec-helper.mjs +186 -0
  90. package/dist/witness/space/space-respec-helper.mjs.map +1 -0
  91. package/dist/witness/space/space-types.d.mts +2 -1
  92. package/dist/witness/space/space-types.d.mts.map +1 -1
  93. package/dist/witness/space/space-types.mjs.map +1 -1
  94. package/dist/witness/witness-base-v1.d.mts.map +1 -1
  95. package/dist/witness/witness-base-v1.mjs +7 -7
  96. package/dist/witness/witness-base-v1.mjs.map +1 -1
  97. package/dist/witness/witness-cmd/witness-cmd-types.d.mts +31 -0
  98. package/dist/witness/witness-cmd/witness-cmd-types.d.mts.map +1 -0
  99. package/dist/witness/witness-cmd/witness-cmd-types.mjs +2 -0
  100. package/dist/witness/witness-cmd/witness-cmd-types.mjs.map +1 -0
  101. package/dist/witness/witness-helper.d.mts +8 -0
  102. package/dist/witness/witness-helper.d.mts.map +1 -1
  103. package/dist/witness/witness-helper.mjs +30 -0
  104. package/dist/witness/witness-helper.mjs.map +1 -1
  105. package/dist/witness/witness-types.d.mts +26 -36
  106. package/dist/witness/witness-types.d.mts.map +1 -1
  107. package/dist/witness/witness-with-context/witness-with-context-base-v1.d.mts +235 -0
  108. package/dist/witness/witness-with-context/witness-with-context-base-v1.d.mts.map +1 -0
  109. package/dist/witness/witness-with-context/witness-with-context-base-v1.mjs +742 -0
  110. package/dist/witness/witness-with-context/witness-with-context-base-v1.mjs.map +1 -0
  111. package/dist/witness/witness-with-context/witness-with-context-types.d.mts +17 -0
  112. package/dist/witness/witness-with-context/witness-with-context-types.d.mts.map +1 -0
  113. package/dist/witness/witness-with-context/witness-with-context-types.mjs +2 -0
  114. package/dist/witness/witness-with-context/witness-with-context-types.mjs.map +1 -0
  115. package/package.json +12 -15
  116. package/src/{assumptions.spec.mts → assumptions.respec.mts} +11 -5
  117. package/src/core-constants.mts +0 -2
  118. package/src/core-helper.respec.mts +71 -0
  119. package/src/core-types.mts +20 -0
  120. package/src/respec-gib.node.mts +199 -0
  121. package/src/witness/app/app-base-v1.mts +19 -212
  122. package/src/witness/app/app-constants.mts +3 -0
  123. package/src/witness/app/app-helper.mts +2 -1
  124. package/src/witness/app/app-types.mts +1 -1
  125. package/src/witness/robbot/robbot-base-v1.mts +39 -690
  126. package/src/witness/robbot/robbot-helper.mts +1 -1
  127. package/src/witness/robbot/{robbot-helper.spec.mts → robbot-helper.respec.mts} +39 -33
  128. package/src/witness/robbot/robbot-types.mts +5 -3
  129. package/src/witness/space/filesystem-space/filesystem-space-v1.mts +1 -1
  130. package/src/witness/space/filesystem-space/{filesystem-space-v1.spec.mts → filesystem-space-v1.respec.mts} +17 -8
  131. package/src/witness/space/filesystem-space/node-filesystem-space-v1.mts +3 -11
  132. package/src/witness/space/filesystem-space/{node-filesystem-space-v1.node.spec.mts → node-filesystem-space-v1.node.respec.mts} +18 -14
  133. package/src/witness/space/inner-space/{inner-space-v1.spec.mts → inner-space-v1.respec.mts} +17 -8
  134. package/src/witness/space/metaspace/metaspace-base.mts +3702 -0
  135. package/src/witness/space/metaspace/metaspace-innerspace/metaspace-innerspace-helper.mts +116 -0
  136. package/src/witness/space/metaspace/metaspace-innerspace/metaspace-innerspace.mts +88 -0
  137. package/src/witness/space/metaspace/metaspace-types.mts +614 -0
  138. package/src/witness/space/space-helper.mts +2 -1
  139. package/src/witness/space/{space-spec-helper.mts → space-respec-helper.mts} +76 -57
  140. package/src/witness/space/space-types.mts +2 -1
  141. package/src/witness/witness-base-v1.mts +8 -6
  142. package/src/witness/witness-cmd/witness-cmd-types.mts +38 -0
  143. package/src/witness/witness-helper.mts +31 -0
  144. package/src/witness/witness-types.mts +31 -41
  145. package/src/witness/witness-with-context/witness-with-context-base-v1.mts +809 -0
  146. package/src/witness/witness-with-context/witness-with-context-types.mts +24 -0
  147. package/tsconfig.json +1 -0
  148. package/dist/witness/space/space-spec-helper.d.mts.map +0 -1
  149. package/dist/witness/space/space-spec-helper.mjs +0 -179
  150. package/dist/witness/space/space-spec-helper.mjs.map +0 -1
  151. package/jasmine-browser.json +0 -18
  152. package/jasmine.json +0 -6
  153. package/src/core-helper.spec.mts +0 -64
  154. /package/src/{spec-helper.node.spec.mts → spec-helper.node.respec.mts} +0 -0
@@ -0,0 +1,116 @@
1
+ import { IbGibSpaceAny } from "../../../../witness/space/space-base-v1.mjs";
2
+ import { DtoToSpaceFunction, LocalSpaceFactoryFunction } from "../metaspace-types.mjs";
3
+ import { spaceNameIsValid } from "../../../../witness/space/space-helper.mjs";
4
+ import { extractErrorMsg, getUUID, pretty } from "@ibgib/helper-gib/dist/helpers/utils-helper.mjs";
5
+ import { NodeFilesystemSpaceData_V1, NodeFilesystemSpaceRel8ns_V1, NodeFilesystemSpace_V1 } from "../../../../witness/space/filesystem-space/node-filesystem-space-v1.mjs";
6
+ import { IBGIB_BASE_DIR, IBGIB_BASE_SUBPATH, IBGIB_BIN_SUBPATH, IBGIB_DNA_SUBPATH, IBGIB_ENCODING, IBGIB_IBGIBS_SUBPATH, IBGIB_META_SUBPATH } from "../../../../witness/space/filesystem-space/filesystem-constants.mjs";
7
+ import { DEFAULT_LOCAL_SPACE_DESCRIPTION, DEFAULT_LOCAL_SPACE_POLLING_INTERVAL_MS, PERSIST_OPTS_AND_RESULTS_IBGIBS_DEFAULT } from "../../../../witness/space/space-constants.mjs";
8
+ import { getGib } from "@ibgib/ts-gib/dist/V1/transforms/transform-helper.mjs";
9
+ import { GIB } from "@ibgib/ts-gib/dist/V1/constants.mjs";
10
+ import { IbGib_V1 } from "@ibgib/ts-gib/dist/V1/types.mjs";
11
+ import { InnerSpace_V1, InnerSpace_V1_Data } from "../../inner-space/inner-space-v1.mjs";
12
+
13
+
14
+ export const fnCreateNewLocalSpace: LocalSpaceFactoryFunction = async ({
15
+ allowCancel,
16
+ spaceName,
17
+ getFnPrompt,
18
+ logalot,
19
+ }) => {
20
+ const lc = `[${fnCreateNewLocalSpace.name}]`;
21
+ try {
22
+ if (logalot) { console.log(`${lc} starting... (I: a9bc8c7d54cb4bafae4c4aa515d71580)`); }
23
+
24
+ if (spaceName && !spaceNameIsValid(spaceName)) {
25
+ throw new Error(`spaceName (${spaceName}) is invalid. (E: 7769ee9ed9874ff28548214efc3639c2)`);
26
+ // throw because this is used in RLI and automated testing...
27
+ }
28
+ if (!spaceName) {
29
+
30
+ const promptName: () => Promise<void> = async () => {
31
+ const fnPrompt = getFnPrompt();
32
+ const resName = await fnPrompt({
33
+ title: 'greetings program', msg: `all of your data is stored locally on your device's "local space".
34
+
35
+ so name your space with alphanumerics & underscores, like 'phone_alice' or 'web_bob_foo', or leave blank and get a random name.
36
+
37
+ Enter space name:
38
+ `
39
+ });
40
+
41
+ if (resName === '' && !allowCancel) {
42
+ spaceName = 'space_' + (await getUUID()).slice(0, 10);
43
+ } else {
44
+ if (resName && spaceNameIsValid(resName)) {
45
+ spaceName = resName;
46
+ }
47
+ }
48
+ };
49
+
50
+ // ...prompt for name
51
+ await promptName();
52
+ }
53
+
54
+ // ...create in memory with defaults
55
+ const data: InnerSpace_V1_Data = {
56
+ version: '1',
57
+ name: spaceName || ('in-memory-space_' + (await getUUID()).slice(0, 10)),
58
+ uuid: await getUUID(),
59
+ description: 'ephemeral in-memory space',
60
+ persistOptsAndResultIbGibs: false,
61
+ validateIbGibAddrsMatchIbGibs: true,
62
+ trace: false,
63
+ allowPrimitiveArgs: false,
64
+ catchAllErrors: true,
65
+ longPollingIntervalMs: DEFAULT_LOCAL_SPACE_POLLING_INTERVAL_MS,
66
+ };
67
+ const newLocalSpace = new InnerSpace_V1(/*initialData*/data, /*initialRel8ns*/undefined)
68
+ if (logalot) { console.log(`${lc} localSpace.ib: ${newLocalSpace.ib}`); }
69
+ if (logalot) { console.log(`${lc} localSpace.gib: ${newLocalSpace.gib} (before sha256v1)`); }
70
+ if (logalot) { console.log(`${lc} localSpace.data: ${pretty(newLocalSpace.data || 'falsy')}`); }
71
+ if (logalot) { console.log(`${lc} localSpace.rel8ns: ${pretty(newLocalSpace.rel8ns || 'falsy')}`); }
72
+ newLocalSpace.gib = await getGib({ ibGib: newLocalSpace, hasTjp: false });
73
+ if (newLocalSpace.gib === GIB) { throw new Error(`localSpace.gib not updated correctly.`); }
74
+ if (logalot) { console.log(`${lc} localSpace.gib: ${newLocalSpace.gib} (after sha256v1)`); }
75
+
76
+ return newLocalSpace as IbGibSpaceAny;
77
+ } catch (error) {
78
+ console.error(`${lc} ${error.message}`);
79
+ throw error;
80
+ } finally {
81
+ if (logalot) { console.log(`${lc} complete.`); }
82
+ }
83
+ }
84
+
85
+ export const fnDtoToSpace: DtoToSpaceFunction = async (spaceDto) => {
86
+ const lc = `[fnDtoToSpace]`;
87
+
88
+ try {
89
+ // afaict we should be dealing with the space itself in memory, so just
90
+ // return the reference itself.
91
+ if ((spaceDto as InnerSpace_V1).ibGibs) {
92
+ return spaceDto as InnerSpace_V1;
93
+ }
94
+
95
+ // it's not the reference, so make a new one? (but warn)
96
+ console.warn(`${lc} in memory innerspace dto that isnt' the reference to the object itself in memory? (W: b8973f3a43f546eeaf59f60331896e75)`)
97
+ if (!spaceDto.data) { throw new Error(`invalid spaceDto. InnerSpace_V1 should have truthy data. (E: d402fda7a6a53668b655c2885029a423)`); }
98
+ let space = new InnerSpace_V1(spaceDto.data as InnerSpace_V1_Data, undefined);
99
+ await space.initialized;
100
+ return space;
101
+ } catch (error) {
102
+ console.error(`${lc} ${extractErrorMsg(error)}`);
103
+ throw error;
104
+ }
105
+ }
106
+
107
+ // export const fnCreateZeroSpace: () => IbGibSpaceAny = () => {
108
+ // const inMemoryZeroSpace = await fnCreateNewLocalSpace({
109
+ // allowCancel: false,
110
+ // spaceName: 'in-memory-space_' + (await getUUID()).slice(0, 10),
111
+ // logalot,
112
+ // });
113
+ // if (!inMemoryZeroSpace) { throw new Error(`(UNEXPECTED) create inMemoryZeroSpace failed. inMemoryZeroSpace is falsy but no error? (E: 63c27616be41564377f843baa6725423)`); }
114
+ // }
115
+ // if (!this.fnZeroSpaceFactory) {
116
+ // }
@@ -0,0 +1,88 @@
1
+ /**
2
+ * @module metaspace-innerspace
3
+ *
4
+ * in-memory metaspace, for running ibgib apps in memory only, where the
5
+ * underlying data spaces do not use persistent storage mediums.
6
+ */
7
+
8
+ import { getUUID, } from '@ibgib/helper-gib';
9
+
10
+ import { IbGibSpaceAny } from '../../../../witness/space/space-base-v1.mjs';
11
+ import { InnerSpace_V1 } from '../../../../witness/space/inner-space/inner-space-v1.mjs';
12
+ import { IbGibCacheService } from '../../../../common/cache/cache-types.mjs';
13
+ import { MetaspaceFactory } from '../metaspace-types.mjs';
14
+ import { fnCreateNewLocalSpace, fnDtoToSpace } from './metaspace-innerspace-helper.mjs';
15
+ import { MetaspaceBase } from '../metaspace-base.mjs';
16
+ import { GLOBAL_LOG_A_LOT, GLOBAL_TIMER_NAME } from '../../../../core-constants.mjs';
17
+
18
+ const logalot = GLOBAL_LOG_A_LOT || true;
19
+
20
+ /**
21
+ * for use when creating a metaspace that only resides in memory, i.e.,
22
+ * doesn't live on a persistent backing store like a filesystem.
23
+ */
24
+ export class Metaspace_Innerspace extends MetaspaceBase {
25
+
26
+ // we won't get an object back, only a DTO ibGib essentially
27
+ protected lc: string = `[${Metaspace_Innerspace.name}]`;
28
+
29
+ /**
30
+ * since this is an in-memory metaspace, we always return the same instance
31
+ * for the zero space.
32
+ */
33
+ private _zeroSpace: InnerSpace_V1 | undefined;
34
+
35
+ /**
36
+ * since this is an in-memory metaspace, we always return the same instance
37
+ *
38
+ * returns this._zeroSpace
39
+ */
40
+ get zeroSpace(): IbGibSpaceAny {
41
+ const lc = `${this.lc}[get zeroSpace]`;
42
+ if (!this._zeroSpace) { throw new Error(`${lc} this._zeroSpace falsy. should have been created on this.initialize (E: e723177fd2a74e25eb25e2299dfa4d23)`); }
43
+ return this._zeroSpace;
44
+ }
45
+
46
+ constructor(
47
+ protected cacheSvc: IbGibCacheService | undefined,
48
+ ) {
49
+ super(cacheSvc);
50
+ const lc = `${this.lc}[ctor]`;
51
+ if (logalot) {
52
+ console.log(`${lc} ${GLOBAL_TIMER_NAME}`);
53
+ console.timeLog(GLOBAL_TIMER_NAME);
54
+ console.log(`${lc} created.`);
55
+ }
56
+ }
57
+
58
+ protected async initializeMetaspaceFactory({ metaspaceFactory }: {
59
+ metaspaceFactory: MetaspaceFactory,
60
+ }): Promise<void> {
61
+ const lc = `[${this.initializeMetaspaceFactory.name}]`;
62
+ try {
63
+ if (logalot) { console.log(`${lc} starting... (I: 5a29670439ac47634dcdfe25225c8223)`); }
64
+
65
+ await super.initializeMetaspaceFactory({ metaspaceFactory });
66
+
67
+ metaspaceFactory.fnDefaultLocalSpaceFactory ??= (opts) => fnCreateNewLocalSpace(opts);
68
+ metaspaceFactory.fnDtoToSpace ??= (spaceDto) => fnDtoToSpace(spaceDto);
69
+
70
+ if (this.metaspaceFactory.fnZeroSpaceFactory) {
71
+ this._zeroSpace = this.metaspaceFactory.fnZeroSpaceFactory!() as InnerSpace_V1;
72
+ } else {
73
+ this._zeroSpace = await fnCreateNewLocalSpace({
74
+ allowCancel: false,
75
+ spaceName: 'in-memory-space_' + (await getUUID()).slice(0, 10),
76
+ logalot,
77
+ getFnPrompt: () => this.getFnPrompt!(),
78
+ }) as InnerSpace_V1;
79
+ if (!this._zeroSpace) { throw new Error(`(UNEXPECTED) create this._zeroSpce is falsy but no error after create? (E: 63c27616be41564377f843baa6725423)`); }
80
+ }
81
+ } catch (error) {
82
+ console.error(`${lc} ${error.message}`);
83
+ throw error;
84
+ } finally {
85
+ if (logalot) { console.log(`${lc} complete.`); }
86
+ }
87
+ }
88
+ }