@ibgib/core-gib 0.0.7 → 0.0.10
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/README.md +34 -13
- package/dist/assumptions.respec.d.mts +2 -0
- package/dist/assumptions.respec.d.mts.map +1 -0
- package/dist/assumptions.respec.mjs +41 -0
- package/dist/assumptions.respec.mjs.map +1 -0
- package/dist/common/form/form-helper.d.mts.map +1 -1
- package/dist/common/form/form-helper.mjs +0 -2
- package/dist/common/form/form-helper.mjs.map +1 -1
- package/dist/core-constants.d.mts +0 -2
- package/dist/core-constants.d.mts.map +1 -1
- package/dist/core-constants.mjs +0 -2
- package/dist/core-constants.mjs.map +1 -1
- package/dist/core-helper.respec.d.mts +2 -0
- package/dist/core-helper.respec.d.mts.map +1 -0
- package/dist/core-helper.respec.mjs +53 -0
- package/dist/core-helper.respec.mjs.map +1 -0
- package/dist/core-types.d.mts +24 -2
- package/dist/core-types.d.mts.map +1 -1
- package/dist/respec-gib.node.d.mts +2 -0
- package/dist/respec-gib.node.d.mts.map +1 -0
- package/dist/respec-gib.node.mjs +211 -0
- package/dist/respec-gib.node.mjs.map +1 -0
- package/dist/spec-helper.node.respec.d.mts +12 -0
- package/dist/spec-helper.node.respec.d.mts.map +1 -0
- package/dist/spec-helper.node.respec.mjs +43 -0
- package/dist/spec-helper.node.respec.mjs.map +1 -0
- package/dist/witness/app/app-base-v1.d.mts +1 -0
- package/dist/witness/app/app-base-v1.d.mts.map +1 -1
- package/dist/witness/app/app-base-v1.mjs +48 -11
- package/dist/witness/app/app-base-v1.mjs.map +1 -1
- package/dist/witness/app/app-constants.d.mts +2 -0
- package/dist/witness/app/app-constants.d.mts.map +1 -1
- package/dist/witness/app/app-constants.mjs +2 -0
- package/dist/witness/app/app-constants.mjs.map +1 -1
- package/dist/witness/app/app-helper.d.mts.map +1 -1
- package/dist/witness/app/app-helper.mjs +2 -1
- package/dist/witness/app/app-helper.mjs.map +1 -1
- package/dist/witness/robbot/robbot-base-v1.d.mts +4 -5
- package/dist/witness/robbot/robbot-base-v1.d.mts.map +1 -1
- package/dist/witness/robbot/robbot-base-v1.mjs +29 -1
- package/dist/witness/robbot/robbot-base-v1.mjs.map +1 -1
- package/dist/witness/robbot/robbot-helper.respec.d.mts +2 -0
- package/dist/witness/robbot/robbot-helper.respec.d.mts.map +1 -0
- package/dist/witness/robbot/robbot-helper.respec.mjs +106 -0
- package/dist/witness/robbot/robbot-helper.respec.mjs.map +1 -0
- package/dist/witness/space/bootstrap/bootstrap-helper.d.mts +3 -0
- package/dist/witness/space/bootstrap/bootstrap-helper.d.mts.map +1 -0
- package/dist/witness/space/bootstrap/bootstrap-helper.mjs +51 -0
- package/dist/witness/space/bootstrap/bootstrap-helper.mjs.map +1 -0
- package/dist/witness/space/bootstrap/bootstrap-types.d.mts +117 -0
- package/dist/witness/space/bootstrap/bootstrap-types.d.mts.map +1 -0
- package/dist/witness/space/bootstrap/bootstrap-types.mjs +7 -0
- package/dist/witness/space/bootstrap/bootstrap-types.mjs.map +1 -0
- package/dist/witness/space/filesystem-space/filesystem-constants.d.mts +64 -0
- package/dist/witness/space/filesystem-space/filesystem-constants.d.mts.map +1 -0
- package/dist/witness/space/filesystem-space/filesystem-constants.mjs +64 -0
- package/dist/witness/space/filesystem-space/filesystem-constants.mjs.map +1 -0
- package/dist/witness/space/filesystem-space/filesystem-space-v1.d.mts +180 -0
- package/dist/witness/space/filesystem-space/filesystem-space-v1.d.mts.map +1 -0
- package/dist/witness/space/filesystem-space/filesystem-space-v1.mjs +1145 -0
- package/dist/witness/space/filesystem-space/filesystem-space-v1.mjs.map +1 -0
- package/dist/witness/space/filesystem-space/filesystem-space-v1.respec.d.mts +2 -0
- package/dist/witness/space/filesystem-space/filesystem-space-v1.respec.d.mts.map +1 -0
- package/dist/witness/space/filesystem-space/filesystem-space-v1.respec.mjs +107 -0
- package/dist/witness/space/filesystem-space/filesystem-space-v1.respec.mjs.map +1 -0
- package/dist/witness/space/filesystem-space/filesystem-types.d.mts +73 -0
- package/dist/witness/space/filesystem-space/filesystem-types.d.mts.map +1 -0
- package/dist/witness/space/filesystem-space/filesystem-types.mjs +2 -0
- package/dist/witness/space/filesystem-space/filesystem-types.mjs.map +1 -0
- package/dist/witness/space/filesystem-space/node-filesystem-space-v1.d.mts +90 -0
- package/dist/witness/space/filesystem-space/node-filesystem-space-v1.d.mts.map +1 -0
- package/dist/witness/space/filesystem-space/node-filesystem-space-v1.mjs +669 -0
- package/dist/witness/space/filesystem-space/node-filesystem-space-v1.mjs.map +1 -0
- package/dist/witness/space/filesystem-space/node-filesystem-space-v1.node.respec.d.mts +2 -0
- package/dist/witness/space/filesystem-space/node-filesystem-space-v1.node.respec.d.mts.map +1 -0
- package/dist/witness/space/filesystem-space/node-filesystem-space-v1.node.respec.mjs +129 -0
- package/dist/witness/space/filesystem-space/node-filesystem-space-v1.node.respec.mjs.map +1 -0
- package/dist/witness/space/{inner-space-v1.d.mts → inner-space/inner-space-v1.d.mts} +2 -2
- package/dist/witness/space/inner-space/inner-space-v1.d.mts.map +1 -0
- package/dist/witness/space/{inner-space-v1.mjs → inner-space/inner-space-v1.mjs} +3 -3
- package/dist/witness/space/inner-space/inner-space-v1.mjs.map +1 -0
- package/dist/witness/space/inner-space/inner-space-v1.respec.d.mts +2 -0
- package/dist/witness/space/inner-space/inner-space-v1.respec.d.mts.map +1 -0
- package/dist/witness/space/inner-space/inner-space-v1.respec.mjs +56 -0
- package/dist/witness/space/inner-space/inner-space-v1.respec.mjs.map +1 -0
- package/dist/witness/space/space-constants.d.mts +0 -27
- package/dist/witness/space/space-constants.d.mts.map +1 -1
- package/dist/witness/space/space-constants.mjs +0 -27
- package/dist/witness/space/space-constants.mjs.map +1 -1
- package/dist/witness/space/space-helper.d.mts +3 -3
- package/dist/witness/space/space-helper.d.mts.map +1 -1
- package/dist/witness/space/space-helper.mjs +6 -51
- package/dist/witness/space/space-helper.mjs.map +1 -1
- package/dist/witness/space/space-respec-helper.d.mts +71 -0
- package/dist/witness/space/space-respec-helper.d.mts.map +1 -0
- package/dist/witness/space/space-respec-helper.mjs +186 -0
- package/dist/witness/space/space-respec-helper.mjs.map +1 -0
- package/dist/witness/space/space-types.d.mts +0 -98
- package/dist/witness/space/space-types.d.mts.map +1 -1
- package/dist/witness/space/space-types.mjs +0 -1
- package/dist/witness/space/space-types.mjs.map +1 -1
- package/dist/witness/witness-base-v1.d.mts.map +1 -1
- package/dist/witness/witness-base-v1.mjs +7 -7
- package/dist/witness/witness-base-v1.mjs.map +1 -1
- package/dist/witness/witness-helper.d.mts +8 -0
- package/dist/witness/witness-helper.d.mts.map +1 -1
- package/dist/witness/witness-helper.mjs +30 -0
- package/dist/witness/witness-helper.mjs.map +1 -1
- package/package.json +12 -15
- package/src/{assumptions.spec.mts → assumptions.respec.mts} +11 -5
- package/src/common/form/form-helper.mts +3 -4
- package/src/core-constants.mts +0 -2
- package/src/core-helper.respec.mts +71 -0
- package/src/core-types.mts +24 -2
- package/src/respec-gib.node.mts +199 -0
- package/src/spec-helper.node.respec.mts +45 -0
- package/src/witness/app/app-base-v1.mts +38 -23
- package/src/witness/app/app-constants.mts +3 -0
- package/src/witness/app/app-helper.mts +2 -1
- package/src/witness/robbot/robbot-base-v1.mts +9 -6
- package/src/witness/robbot/{robbot-helper.spec.mts → robbot-helper.respec.mts} +39 -33
- package/src/witness/space/bootstrap/bootstrap-helper.mts +50 -0
- package/src/witness/space/bootstrap/bootstrap-types.mts +123 -0
- package/src/witness/space/filesystem-space/filesystem-constants.mts +66 -0
- package/src/witness/space/filesystem-space/filesystem-space-v1.mts +1283 -0
- package/src/witness/space/filesystem-space/filesystem-space-v1.respec.mts +110 -0
- package/src/witness/space/filesystem-space/filesystem-types.mts +75 -0
- package/src/witness/space/filesystem-space/node-filesystem-space-v1.mts +697 -0
- package/src/witness/space/filesystem-space/node-filesystem-space-v1.node.respec.mts +148 -0
- package/src/witness/space/{inner-space-v1.mts → inner-space/inner-space-v1.mts} +5 -6
- package/src/witness/space/{inner-space-v1.spec.mts → inner-space/inner-space-v1.respec.mts} +17 -8
- package/src/witness/space/space-constants.mts +0 -27
- package/src/witness/space/space-helper.mts +17 -54
- package/src/witness/space/{space-spec-helper.spec.mts → space-respec-helper.mts} +97 -57
- package/src/witness/space/space-types.mts +0 -105
- package/src/witness/witness-base-v1.mts +8 -6
- package/src/witness/witness-helper.mts +31 -0
- package/tsconfig.json +4 -2
- package/dist/witness/space/inner-space-v1.d.mts.map +0 -1
- package/dist/witness/space/inner-space-v1.mjs.map +0 -1
- package/jasmine-browser.json +0 -18
- package/jasmine.json +0 -6
- package/src/core-helper.spec.mts +0 -64
|
@@ -1,11 +1,22 @@
|
|
|
1
|
+
import {
|
|
2
|
+
firstOfEach, firstOfAll, ifWe,
|
|
3
|
+
lastOfEach, lastOfAll,
|
|
4
|
+
ifWeMight, iReckon, respecfully
|
|
5
|
+
} from '@ibgib/helper-gib/dist/respec-gib/respec-gib.mjs';
|
|
6
|
+
// const maam = `[${import.meta.url}]`, sir = maam;
|
|
1
7
|
import { IbGibAddr, getIbGibAddr } from "@ibgib/ts-gib";
|
|
2
|
-
import { IbGib_V1 } from "@ibgib/ts-gib/dist/V1/types.mjs";
|
|
8
|
+
import { IbGib_V1, } from "@ibgib/ts-gib/dist/V1/types.mjs";
|
|
3
9
|
import { Factory_V1 as factory } from '@ibgib/ts-gib/dist/V1/factory.mjs';
|
|
4
10
|
|
|
5
11
|
import { deleteFromSpace, getFromSpace, parseSpaceIb, persistTransformResult, putInSpace } from "./space-helper.mjs";
|
|
6
12
|
import { IbGibSpaceAny } from "./space-base-v1.mjs";
|
|
13
|
+
import { getGib } from "@ibgib/ts-gib/dist/V1/index.mjs";
|
|
7
14
|
|
|
8
15
|
export interface CommonSpaceSpecOptions {
|
|
16
|
+
/**
|
|
17
|
+
* sir, maam, whatever the title is
|
|
18
|
+
*/
|
|
19
|
+
respecfulTitle: string,
|
|
9
20
|
/** @optional additional description label for testing */
|
|
10
21
|
desc?: string,
|
|
11
22
|
/**
|
|
@@ -26,7 +37,9 @@ export interface CommonSpaceSpecOptions {
|
|
|
26
37
|
/**
|
|
27
38
|
* if true, will use `fit` to short-circuit testing.
|
|
28
39
|
*/
|
|
29
|
-
|
|
40
|
+
shortcircuitRespec?: boolean,
|
|
41
|
+
fnBeforeEach?: () => Promise<void>,
|
|
42
|
+
fnAfterEach?: () => Promise<void>,
|
|
30
43
|
}
|
|
31
44
|
|
|
32
45
|
/**
|
|
@@ -39,63 +52,76 @@ export interface CommonSpaceSpecOptions {
|
|
|
39
52
|
* run tests on an ibgib space that are common to all/most spaces.
|
|
40
53
|
*
|
|
41
54
|
* So, we can run these against any space, inner, outer, local ionic/filesystem based, etc.
|
|
55
|
+
*
|
|
56
|
+
* NOTE: Be sure to await these tests.
|
|
42
57
|
*/
|
|
43
|
-
export function testSpace_createAndInit({
|
|
58
|
+
export async function testSpace_createAndInit({
|
|
59
|
+
respecfulTitle: sir,
|
|
44
60
|
desc,
|
|
45
61
|
fnGetInitialData,
|
|
46
62
|
fnGetInitialRel8ns,
|
|
47
63
|
fnGetSpace,
|
|
48
|
-
|
|
64
|
+
shortcircuitRespec,
|
|
65
|
+
fnBeforeEach, fnAfterEach,
|
|
49
66
|
}: CommonSpaceSpecOptions): Promise<void> {
|
|
50
67
|
const logContext = `[${testSpace_PutGetDelete.name}]${desc ?? ''}`;
|
|
51
68
|
|
|
52
|
-
|
|
69
|
+
debugger;
|
|
70
|
+
await respecfully(sir, logContext, async () => {
|
|
71
|
+
|
|
53
72
|
let initialData: any | undefined;
|
|
54
73
|
let initialRel8ns: any | undefined;
|
|
55
74
|
let space: IbGibSpaceAny;
|
|
56
75
|
|
|
57
|
-
|
|
76
|
+
firstOfEach(sir, async () => {
|
|
77
|
+
if (fnBeforeEach) { await fnBeforeEach(); }
|
|
58
78
|
initialData = await fnGetInitialData();
|
|
59
79
|
initialRel8ns = await fnGetInitialRel8ns();
|
|
60
80
|
});
|
|
61
81
|
|
|
62
|
-
|
|
82
|
+
if (fnAfterEach) {
|
|
83
|
+
lastOfEach(sir, async () => {
|
|
84
|
+
await fnAfterEach();
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
const fnIfWeBlock: any = shortcircuitRespec ? ifWeMight : ifWe;
|
|
63
89
|
|
|
64
|
-
|
|
90
|
+
debugger;
|
|
91
|
+
await fnIfWeBlock(sir, `when created and initialized, space should be initialized`, async () => {
|
|
65
92
|
space = await fnGetSpace(initialData, initialRel8ns);
|
|
66
93
|
await space.initialized;
|
|
67
94
|
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
95
|
+
iReckon(sir, space).asTo('space').isGonnaBeTruthy();
|
|
96
|
+
iReckon(sir, space.ib).asTo('ib').isGonnaBeTruthy();
|
|
97
|
+
iReckon(sir, space.gib).asTo('gib').isGonnaBeTruthy();
|
|
71
98
|
if (initialData) {
|
|
72
|
-
|
|
99
|
+
iReckon(sir, space.data).asTo('data, initialData truthy').isGonnaBeTruthy();
|
|
73
100
|
} else {
|
|
74
|
-
|
|
101
|
+
iReckon(sir, space.rel8ns).asTo('data, initialData falsy').isGonnaBeUndefined();
|
|
75
102
|
}
|
|
76
103
|
if (initialRel8ns) {
|
|
77
|
-
|
|
104
|
+
iReckon(sir, space.rel8ns).asTo('rel8ns, initialRel8ns truthy').isGonnaBeTruthy();
|
|
78
105
|
} else {
|
|
79
|
-
|
|
106
|
+
iReckon(sir, space.rel8ns).asTo('rel8ns, initialRel8ns falsy').isGonnaBeUndefined();
|
|
80
107
|
}
|
|
81
108
|
});
|
|
82
109
|
|
|
83
|
-
|
|
110
|
+
await fnIfWeBlock(sir, `space.ib should contain correct info per initialData`, async () => {
|
|
84
111
|
space = await fnGetSpace(initialData, initialRel8ns);
|
|
85
112
|
await space.initialized;
|
|
86
113
|
|
|
87
|
-
|
|
88
|
-
|
|
114
|
+
iReckon(sir, space.ib).includes(initialData.name);
|
|
115
|
+
iReckon(sir, space.ib).includes(initialData.uuid);
|
|
89
116
|
|
|
90
117
|
let { spaceClassname, spaceId, spaceName, } = parseSpaceIb({ spaceIb: space.ib });
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
118
|
+
iReckon(sir, space.data?.classname).asTo('space.data?.classname').isGonnaBe(spaceClassname);
|
|
119
|
+
iReckon(sir, space.data?.name).asTo('space.data?.name, initial').isGonnaBe(initialData.name);
|
|
120
|
+
iReckon(sir, space.data?.name).asTo('space.data?.name, spaceName').isGonnaBe(spaceName);
|
|
121
|
+
iReckon(sir, space.data?.uuid).asTo('space.data?.uuid, initial').isGonnaBe(initialData.uuid);
|
|
122
|
+
iReckon(sir, space.data?.uuid).asTo('space.data?.uuid, spaceId').isGonnaBe(spaceId);
|
|
96
123
|
});
|
|
97
124
|
|
|
98
|
-
resolve();
|
|
99
125
|
});
|
|
100
126
|
}
|
|
101
127
|
|
|
@@ -109,62 +135,73 @@ export function testSpace_createAndInit({
|
|
|
109
135
|
* run tests on an ibgib space that are common to all/most spaces.
|
|
110
136
|
*
|
|
111
137
|
* So, we can run these against any space, inner, outer, local ionic/filesystem based, etc.
|
|
138
|
+
*
|
|
139
|
+
* NOTE: Be sure to await these tests.
|
|
112
140
|
*/
|
|
113
|
-
export function testSpace_PutGetDelete({
|
|
141
|
+
export async function testSpace_PutGetDelete({
|
|
142
|
+
respecfulTitle: sir,
|
|
114
143
|
desc,
|
|
115
144
|
fnGetInitialData,
|
|
116
145
|
fnGetInitialRel8ns,
|
|
117
146
|
fnGetSpace,
|
|
118
|
-
|
|
147
|
+
shortcircuitRespec,
|
|
148
|
+
fnBeforeEach, fnAfterEach,
|
|
119
149
|
}: CommonSpaceSpecOptions): Promise<void> {
|
|
120
150
|
const logContext = `[${testSpace_PutGetDelete.name}]${desc ?? ''}`;
|
|
121
151
|
|
|
122
|
-
|
|
152
|
+
await respecfully(sir, logContext, async () => {
|
|
123
153
|
let initialData: any | undefined;
|
|
124
154
|
let initialRel8ns: any | undefined;
|
|
125
155
|
let space: IbGibSpaceAny;
|
|
126
156
|
|
|
127
|
-
|
|
157
|
+
|
|
158
|
+
firstOfEach(sir, async () => {
|
|
159
|
+
if (fnBeforeEach) { await fnBeforeEach(); }
|
|
128
160
|
initialData = await fnGetInitialData();
|
|
129
161
|
initialRel8ns = await fnGetInitialRel8ns();
|
|
130
162
|
space = await fnGetSpace(initialData, initialRel8ns);
|
|
131
163
|
await space.initialized;
|
|
132
164
|
});
|
|
133
165
|
|
|
134
|
-
|
|
166
|
+
if (fnAfterEach) {
|
|
167
|
+
lastOfEach(sir, async () => {
|
|
168
|
+
await fnAfterEach();
|
|
169
|
+
});
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
const fnIfWeBlock: any = shortcircuitRespec ? ifWeMight : ifWe;
|
|
135
173
|
|
|
136
|
-
|
|
174
|
+
await fnIfWeBlock(sir, `${logContext}, should put/get/delete`, async () => {
|
|
137
175
|
let newIbGib: IbGib_V1 = {
|
|
138
176
|
ib: 'test ib',
|
|
139
177
|
data: { x: 1 },
|
|
140
178
|
rel8ns: { ancestor: ['test ib^gib'] }
|
|
141
179
|
}
|
|
142
|
-
|
|
180
|
+
newIbGib.gib = await getGib({ ibGib: newIbGib, hasTjp: false });
|
|
181
|
+
const newIbGibAddr: IbGibAddr = getIbGibAddr({ ibGib: newIbGib });
|
|
143
182
|
|
|
144
183
|
// put
|
|
145
184
|
let resPut = await putInSpace({ ibGib: newIbGib, space });
|
|
146
|
-
|
|
147
|
-
|
|
185
|
+
iReckon(sir, resPut).asTo('resPut').isGonnaBeTruthy();
|
|
186
|
+
iReckon(sir, resPut.success).isGonnaBeTrue();
|
|
148
187
|
|
|
149
188
|
// get
|
|
150
189
|
let resGet = await getFromSpace({ addr: newIbGibAddr, space });
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
190
|
+
iReckon(sir, resGet).asTo('resGet').isGonnaBeTruthy();
|
|
191
|
+
iReckon(sir, resGet.success).asTo('resGet').isGonnaBeTrue();
|
|
192
|
+
iReckon(sir, resGet.errorMsg).asTo('resGet').isGonnaBeFalsy();
|
|
193
|
+
iReckon(sir, resGet.ibGibs).asTo('resGet').isGonnaBeTruthy();
|
|
194
|
+
iReckon(sir, resGet.ibGibs!.length).asTo('resGet').isGonnaBe(1);
|
|
195
|
+
iReckon(sir, resGet.ibGibs![0]).asTo('resGet').isGonnaBe(newIbGib);
|
|
157
196
|
|
|
158
197
|
// delete
|
|
159
198
|
await deleteFromSpace({ addr: newIbGibAddr, space });
|
|
160
199
|
resGet = await getFromSpace({ addr: newIbGibAddr, space });
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
200
|
+
iReckon(sir, resGet).asTo('resGet after delete').isGonnaBeTruthy();
|
|
201
|
+
iReckon(sir, resGet.success).asTo('resGet after delete').isGonnaBeFalse();
|
|
202
|
+
iReckon(sir, resGet.errorMsg).asTo('resGet after delete').isGonnaBeTruthy();
|
|
203
|
+
iReckon(sir, resGet.ibGibs).asTo('resGet after delete').isGonnaBeUndefined();
|
|
165
204
|
});
|
|
166
|
-
|
|
167
|
-
resolve();
|
|
168
205
|
});
|
|
169
206
|
}
|
|
170
207
|
|
|
@@ -176,31 +213,35 @@ export function testSpace_PutGetDelete({
|
|
|
176
213
|
* run tests on an ibgib space that are common to all/most spaces.
|
|
177
214
|
*
|
|
178
215
|
* So, we can run these against any space, inner, outer, local ionic/filesystem based, etc.
|
|
216
|
+
*
|
|
217
|
+
* NOTE: Be sure to await these tests.
|
|
179
218
|
*/
|
|
180
|
-
export function testSpace_persistTransformResult({
|
|
219
|
+
export async function testSpace_persistTransformResult({
|
|
220
|
+
respecfulTitle: sir,
|
|
181
221
|
desc,
|
|
182
222
|
fnGetInitialData,
|
|
183
223
|
fnGetInitialRel8ns,
|
|
184
224
|
fnGetSpace,
|
|
185
|
-
|
|
225
|
+
shortcircuitRespec,
|
|
186
226
|
}: CommonSpaceSpecOptions): Promise<void> {
|
|
187
227
|
const logContext = `[${testSpace_persistTransformResult.name}]${desc ?? ''}`;
|
|
188
228
|
|
|
189
|
-
|
|
229
|
+
await respecfully(sir, logContext, async () => {
|
|
230
|
+
|
|
190
231
|
let initialData: any | undefined;
|
|
191
232
|
let initialRel8ns: any | undefined;
|
|
192
233
|
let space: IbGibSpaceAny;
|
|
193
234
|
|
|
194
|
-
|
|
235
|
+
firstOfEach(sir, async () => {
|
|
195
236
|
initialData = await fnGetInitialData();
|
|
196
237
|
initialRel8ns = await fnGetInitialRel8ns();
|
|
197
238
|
space = await fnGetSpace(initialData, initialRel8ns);
|
|
198
239
|
await space.initialized;
|
|
199
240
|
});
|
|
200
241
|
|
|
201
|
-
const
|
|
242
|
+
const fnIfWeBlock: any = shortcircuitRespec ? ifWeMight : ifWe;
|
|
202
243
|
|
|
203
|
-
|
|
244
|
+
await fnIfWeBlock(sir, `${logContext} should persist all ibgibs (new, dna, intermediate)`, async () => {
|
|
204
245
|
let resNew = await factory.firstGen({
|
|
205
246
|
ib: 'test ib',
|
|
206
247
|
parentIbGib: factory.primitive({ ib: 'test ib' }),
|
|
@@ -220,13 +261,12 @@ export function testSpace_persistTransformResult({
|
|
|
220
261
|
|
|
221
262
|
let resGet = await getFromSpace({ addrs: allAddrs, space });
|
|
222
263
|
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
264
|
+
iReckon(sir, resGet).asTo('resGet').isGonnaBeTruthy();
|
|
265
|
+
iReckon(sir, resGet.success).isGonnaBeTrue();
|
|
266
|
+
iReckon(sir, resGet.ibGibs).isGonnaBeTruthy();
|
|
267
|
+
iReckon(sir, resGet.ibGibs!.length).isGonnaBe(allAddrs.length);
|
|
268
|
+
iReckon(sir, resGet.ibGibs![0]).isGonnaBe(newIbGib);
|
|
228
269
|
});
|
|
229
270
|
|
|
230
|
-
resolve();
|
|
231
271
|
});
|
|
232
272
|
}
|
|
@@ -7,7 +7,6 @@ import {
|
|
|
7
7
|
} from '../witness-types.mjs';
|
|
8
8
|
import { IbGibSpaceAny } from './space-base-v1.mjs';
|
|
9
9
|
import { ENCRYPTION_REL8N_NAME } from '../../common/encrypt/encrypt-constants.mjs';
|
|
10
|
-
import { BOOTSTRAP_DATA_DEFAULT_SPACE_ID_KEY, BOOTSTRAP_DATA_KNOWN_SPACE_IDS_KEY } from './bootstrap/bootstrap-constants.mjs';
|
|
11
10
|
|
|
12
11
|
/**
|
|
13
12
|
* Marker type to show intent that it should be the spaceId, i.e.
|
|
@@ -366,110 +365,6 @@ export interface IbGibSpaceLockIbGib
|
|
|
366
365
|
|
|
367
366
|
}
|
|
368
367
|
|
|
369
|
-
|
|
370
|
-
/**
|
|
371
|
-
* Data of a {@link BootstrapIbGib}
|
|
372
|
-
*/
|
|
373
|
-
export interface BootstrapData {
|
|
374
|
-
/**
|
|
375
|
-
* this id will be the default space of the bootstrap (meta space).
|
|
376
|
-
*
|
|
377
|
-
* The `bootstrapIbGib.rel8ns` will contain links to the space addresses,
|
|
378
|
-
* with `rel8nName === spaceId`.
|
|
379
|
-
*
|
|
380
|
-
* So to get the default space, you need the default space address. To get
|
|
381
|
-
* that address, you first read this data value, then index into
|
|
382
|
-
* `bootstrap.rel8ns[spaceId]`.
|
|
383
|
-
*/
|
|
384
|
-
[BOOTSTRAP_DATA_DEFAULT_SPACE_ID_KEY]: SpaceId;
|
|
385
|
-
/**
|
|
386
|
-
* List of known spaces in this bootstrap. These should be rel8n names in
|
|
387
|
-
* the bootstrap's `rel8ns` map.
|
|
388
|
-
*/
|
|
389
|
-
[BOOTSTRAP_DATA_KNOWN_SPACE_IDS_KEY]: SpaceId[];
|
|
390
|
-
}
|
|
391
|
-
|
|
392
|
-
/**
|
|
393
|
-
* Rel8ns of a {@link BootstrapIbGib}
|
|
394
|
-
*
|
|
395
|
-
* atow, these will have rel8nNames of [spaceId] that point to the corresponding
|
|
396
|
-
* latest spaceAddr, such that the length is always === 1.
|
|
397
|
-
*/
|
|
398
|
-
export interface BootstrapRel8ns extends IbGibRel8ns_V1 {
|
|
399
|
-
// [BOOTSTRAP_REL8N_NAME_SPACE]: IbGibAddr[];
|
|
400
|
-
}
|
|
401
|
-
|
|
402
|
-
/**
|
|
403
|
-
* When the application first starts, it looks to bootstrap itself. So it will
|
|
404
|
-
* look for an ibgib with this "primitive" address, i.e. where the gib is the
|
|
405
|
-
* string literal 'gib'. It looks for this address inside what is called the
|
|
406
|
-
* "zero space". This is a default space with default parameters that always
|
|
407
|
-
* points to the same location, relative to the context (app in our current case,
|
|
408
|
-
* but in the future the context could be e.g. an IoT device or AI microservice).
|
|
409
|
-
*
|
|
410
|
-
* So the context execution starts, creating a default zero space ibgib in
|
|
411
|
-
* memory, which itself has a default location/parameters that the space looks
|
|
412
|
-
* in in storage. Here it looks for the bootstrap ibgib with a known address
|
|
413
|
-
* "bootstrap^gib" (atow). Inside that bootstrap ibgib, there should be at least
|
|
414
|
-
* one local space referenced, or a new one must be created and then stored here
|
|
415
|
-
* for future app/context startups.
|
|
416
|
-
*
|
|
417
|
-
* Spaces are rel8d by their `spaceId`'s in `ibgib.rel8ns`, and the `ibgib.data`
|
|
418
|
-
* key (`ibgib.data.defaultSpaceId` atow) contains the default `spaceId`. If
|
|
419
|
-
* there are multiple local spaces that the bootstrap ibgib knows about, there
|
|
420
|
-
* will be only one "default" set.
|
|
421
|
-
*
|
|
422
|
-
* ## first run
|
|
423
|
-
*
|
|
424
|
-
* @see {@link IbgibsService.createNewLocalSpaceAndBootstrapGib}
|
|
425
|
-
* @see {@link getLocalSpace} in `helper/space.ts`
|
|
426
|
-
*
|
|
427
|
-
* A new local space will be created, whose parameters (including its `uuid`
|
|
428
|
-
* which is its `spaceId`) contribute to its reiffied gib hash. A new bootstrap
|
|
429
|
-
* ibgib is created, and in its `bootstrapIbGib.data.defaultSpaceId` we set the
|
|
430
|
-
* newly created local space's id. We then rel8 the space to the bootstrap also
|
|
431
|
-
* via this spaceId as the rel8nName.
|
|
432
|
-
*
|
|
433
|
-
* Note that when the local space is updated, its most recent address must
|
|
434
|
-
* replace the address that the bootstrap ibgib is pointing to.
|
|
435
|
-
*
|
|
436
|
-
* @example
|
|
437
|
-
*
|
|
438
|
-
* Here is a copy of a bootstrap^gib.json file on March 30, 2022:
|
|
439
|
-
* ```
|
|
440
|
-
* {
|
|
441
|
-
* "ib":"bootstrap",
|
|
442
|
-
* "gib":"gib",
|
|
443
|
-
* "data":{
|
|
444
|
-
* "defaultSpaceId":"72af3bba9c6da224829de86982346e283469823e49862398a56510c238bad869",
|
|
445
|
-
* "spaceIds":["72af3bba9c6da224829de86982346e283469823e49862398a56510c238bad869"]
|
|
446
|
-
* },
|
|
447
|
-
* "rel8ns":{
|
|
448
|
-
* "72af3bba9c6da224829de86982346e283469823e49862398a56510c238bad869": [
|
|
449
|
-
* "witness space IonicSpace_V1 test_space_name 72af3bba9c6da224829de86982346e283469823e49862398a56510c238bad869^62879B18C2726D27262626552672868923477EE09171626A386C1982F392AC26"
|
|
450
|
-
* ]
|
|
451
|
-
* }
|
|
452
|
-
* }
|
|
453
|
-
* ```
|
|
454
|
-
*
|
|
455
|
-
* ## notes
|
|
456
|
-
*
|
|
457
|
-
* Usually primitives are not stored/persisted. This is because the `gib`
|
|
458
|
-
* indicates that there is no hash corroboration ("guarantee") to the internal
|
|
459
|
-
* data or rel8ns. However, a newly started app has to start somewhere. This
|
|
460
|
-
* offers an alternative to using app storage and streamlines the app overall,
|
|
461
|
-
* since instead of working with two stores (in Ionic: `Storage` and
|
|
462
|
-
* `FileSystem`) we will just be working with one (`FileSystem`).
|
|
463
|
-
*
|
|
464
|
-
* In the future, we'll want to do a workflow here where the user
|
|
465
|
-
* can start from an existing space, but for now it's just located
|
|
466
|
-
* here.
|
|
467
|
-
*/
|
|
468
|
-
export interface BootstrapIbGib
|
|
469
|
-
extends IbGib_V1<BootstrapData, BootstrapRel8ns> {
|
|
470
|
-
|
|
471
|
-
}
|
|
472
|
-
|
|
473
368
|
/**
|
|
474
369
|
* Marker type to indicate that a string is meant to be a transmission id.
|
|
475
370
|
*/
|
|
@@ -9,6 +9,8 @@ import { validateGib, validateIb, validateIbGibIntrinsically } from '@ibgib/ts-g
|
|
|
9
9
|
import { ErrorIbGib_V1 } from '../common/error/error-types.mjs';
|
|
10
10
|
import { toDto } from '../common/other/ibgib-helper.mjs';
|
|
11
11
|
import { GLOBAL_LOG_A_LOT } from '../core-constants.mjs';
|
|
12
|
+
import { IbGibLocalSpaceService_AllPowerful } from '../core-types.mjs';
|
|
13
|
+
import { clone, pretty } from '@ibgib/helper-gib';
|
|
12
14
|
|
|
13
15
|
const logalot = GLOBAL_LOG_A_LOT || false;
|
|
14
16
|
|
|
@@ -165,8 +167,8 @@ export abstract class WitnessBase_V1<
|
|
|
165
167
|
|
|
166
168
|
// let dtoIbGib: IbGib_V1<TData, TRel8ns> = { ib: (this.ib || '').slice() };
|
|
167
169
|
// if (this.gib) { dtoIbGib.gib = this.gib.slice(); };
|
|
168
|
-
// if (this.data) { dtoIbGib.data =
|
|
169
|
-
// if (this.rel8ns) { dtoIbGib.rel8ns =
|
|
170
|
+
// if (this.data) { dtoIbGib.data = clone(this.data); }
|
|
171
|
+
// if (this.rel8ns) { dtoIbGib.rel8ns = clone(this.rel8ns); }
|
|
170
172
|
|
|
171
173
|
// return dtoIbGib;
|
|
172
174
|
}
|
|
@@ -190,14 +192,14 @@ export abstract class WitnessBase_V1<
|
|
|
190
192
|
if (!dto.ib) { console.warn(`${lc} dto.ib is falsy.`); }
|
|
191
193
|
if (!dto.gib) { console.warn(`${lc} dto.gib is falsy.`); }
|
|
192
194
|
|
|
193
|
-
this.ib =
|
|
194
|
-
this.gib =
|
|
195
|
+
this.ib = clone(dto.ib);
|
|
196
|
+
this.gib = clone(dto.gib);
|
|
195
197
|
if (dto.data) {
|
|
196
|
-
this.data =
|
|
198
|
+
this.data = clone(dto.data);
|
|
197
199
|
} else {
|
|
198
200
|
delete this.data;
|
|
199
201
|
}
|
|
200
|
-
if (dto.rel8ns) { this.rel8ns =
|
|
202
|
+
if (dto.rel8ns) { this.rel8ns = clone(dto.rel8ns); } else { delete this.rel8ns; }
|
|
201
203
|
|
|
202
204
|
return Promise.resolve();
|
|
203
205
|
} catch (error) {
|
|
@@ -6,6 +6,7 @@ import {
|
|
|
6
6
|
|
|
7
7
|
import { GLOBAL_LOG_A_LOT } from '../core-constants.mjs';
|
|
8
8
|
import { WITNESS_ARG_METADATA_STRING, WITNESS_RESULT_METADATA_STRING } from './witness-constants.mjs';
|
|
9
|
+
import { WitnessCmdData } from './witness-types.mjs';
|
|
9
10
|
|
|
10
11
|
|
|
11
12
|
const logalot = GLOBAL_LOG_A_LOT || false;
|
|
@@ -254,3 +255,33 @@ export function validateWitnessClassname({
|
|
|
254
255
|
if (logalot) { console.log(`${lc} complete.`); }
|
|
255
256
|
}
|
|
256
257
|
}
|
|
258
|
+
|
|
259
|
+
/**
|
|
260
|
+
* @throws if `ibGib` falsy.
|
|
261
|
+
*
|
|
262
|
+
* @returns true ibGib indicates a cmd arg ibgib, else false
|
|
263
|
+
*/
|
|
264
|
+
export function isCommand({
|
|
265
|
+
ibGib,
|
|
266
|
+
}: {
|
|
267
|
+
ibGib: IbGib_V1,
|
|
268
|
+
}): boolean {
|
|
269
|
+
const lc = `[${isCommand.name}]`;
|
|
270
|
+
try {
|
|
271
|
+
if (logalot) { console.log(`${lc} starting...`); }
|
|
272
|
+
|
|
273
|
+
if (!ibGib) { throw new Error(`ibGib required (E: e11cee2a6c59a5e7a4d39ea55751c423)`); }
|
|
274
|
+
|
|
275
|
+
if (!ibGib.data) {
|
|
276
|
+
return false; /* <<<< returns early */
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
const cmdData = (ibGib.data as WitnessCmdData<any, any>);
|
|
280
|
+
return (cmdData.cmd && typeof (cmdData.cmd) === 'string');
|
|
281
|
+
} catch (error) {
|
|
282
|
+
console.error(`${lc} ${error.message}`);
|
|
283
|
+
throw error;
|
|
284
|
+
} finally {
|
|
285
|
+
if (logalot) { console.log(`${lc} complete.`); }
|
|
286
|
+
}
|
|
287
|
+
}
|
package/tsconfig.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"inner-space-v1.d.mts","sourceRoot":"","sources":["../../../src/witness/space/inner-space-v1.mts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"inner-space-v1.mjs","sourceRoot":"","sources":["../../../src/witness/space/inner-space-v1.mts"],"names":[],"mappings":"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"}
|
package/jasmine-browser.json
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"srcDir": "dist",
|
|
3
|
-
"srcFiles": [
|
|
4
|
-
"**/*[!spec].mjs"
|
|
5
|
-
],
|
|
6
|
-
"specDir": "dist",
|
|
7
|
-
"specFiles": [
|
|
8
|
-
"**/*.spec.mjs"
|
|
9
|
-
],
|
|
10
|
-
"env": {
|
|
11
|
-
"stopSpecOnExpectationFailure": false,
|
|
12
|
-
"stopOnSpecFailure": false,
|
|
13
|
-
"random": true
|
|
14
|
-
},
|
|
15
|
-
"browser": {
|
|
16
|
-
"name": "headlessChrome"
|
|
17
|
-
}
|
|
18
|
-
}
|
package/jasmine.json
DELETED
package/src/core-helper.spec.mts
DELETED
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
let crypto = globalThis.crypto;
|
|
2
|
-
let { subtle } = crypto;
|
|
3
|
-
|
|
4
|
-
import { IbGib_V1 } from '@ibgib/ts-gib/dist/V1/types.mjs';
|
|
5
|
-
|
|
6
|
-
import { fooClone, fooFactory, fooGetIbAndGib } from './core-helper.mjs';
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* Test helper functions.
|
|
10
|
-
*/
|
|
11
|
-
|
|
12
|
-
describe(`foo clone`, () => {
|
|
13
|
-
|
|
14
|
-
it(`should foo Clone yo (testing node/browser isomorphic packages)`, () => {
|
|
15
|
-
let obj = 1;
|
|
16
|
-
let clone = fooClone(obj);
|
|
17
|
-
expect(clone).withContext('clone foo yo').toEqual(obj);
|
|
18
|
-
// expect(1).withContext('expected fail test case').toBe(2);
|
|
19
|
-
});
|
|
20
|
-
|
|
21
|
-
it(`should foo getibAndGib yo (testing node/browser isomorphic packages)`, () => {
|
|
22
|
-
let result = fooGetIbAndGib();
|
|
23
|
-
expect(result.ib).withContext('ib').toEqual('ib');
|
|
24
|
-
});
|
|
25
|
-
|
|
26
|
-
it(`should foo factory yo (testing node/browser isomorphic packages)`, async () => {
|
|
27
|
-
let result = await fooFactory();
|
|
28
|
-
expect(result).withContext('result').toBeTruthy();
|
|
29
|
-
expect(result.ib).withContext('result.ib').toBeTruthy();
|
|
30
|
-
});
|
|
31
|
-
|
|
32
|
-
});
|
|
33
|
-
|
|
34
|
-
async function hash({
|
|
35
|
-
s,
|
|
36
|
-
}: {
|
|
37
|
-
s: string,
|
|
38
|
-
}): Promise<string> {
|
|
39
|
-
if (!s) { return ''; }
|
|
40
|
-
let algorithm = 'SHA-256';
|
|
41
|
-
|
|
42
|
-
try {
|
|
43
|
-
const msgUint8 = new TextEncoder().encode(s);
|
|
44
|
-
const buffer = await subtle.digest(algorithm, msgUint8);
|
|
45
|
-
const asArray = Array.from(new Uint8Array(buffer));
|
|
46
|
-
return asArray.map(b => b.toString(16).padStart(2, '0')).join('');
|
|
47
|
-
} catch (e) {
|
|
48
|
-
console.error(e.message ?? e);
|
|
49
|
-
throw e;
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
describe(`non-ts-gib isomorphic crypto hashing`, () => {
|
|
54
|
-
|
|
55
|
-
it(`should digest simple string consistently using crypto.subtle directly `, async () => {
|
|
56
|
-
let h = await hash({ s: '42' });
|
|
57
|
-
expect(h).withContext('42').toBe('73475cb40a568e8da8a045ced110137e159f890ac4da883b6b17dc651b3a8049');
|
|
58
|
-
});
|
|
59
|
-
it(`should digest simple stringified ibgib consistently using crypto.subtle directly `, async () => {
|
|
60
|
-
let ibgib: IbGib_V1 = { ib: 'ib', gib: 'gib' };
|
|
61
|
-
let h = await hash({ s: JSON.stringify(ibgib) }); // doesn't use ts-gib but consistent stringifying json is important
|
|
62
|
-
expect(h).withContext('ib^gib').toBe('cbad0694a257358c044611ea1fa88ace71a01a9b8409d2354d0387d8043f7671');
|
|
63
|
-
});
|
|
64
|
-
});
|