@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.
Files changed (143) hide show
  1. package/README.md +34 -13
  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/common/form/form-helper.d.mts.map +1 -1
  7. package/dist/common/form/form-helper.mjs +0 -2
  8. package/dist/common/form/form-helper.mjs.map +1 -1
  9. package/dist/core-constants.d.mts +0 -2
  10. package/dist/core-constants.d.mts.map +1 -1
  11. package/dist/core-constants.mjs +0 -2
  12. package/dist/core-constants.mjs.map +1 -1
  13. package/dist/core-helper.respec.d.mts +2 -0
  14. package/dist/core-helper.respec.d.mts.map +1 -0
  15. package/dist/core-helper.respec.mjs +53 -0
  16. package/dist/core-helper.respec.mjs.map +1 -0
  17. package/dist/core-types.d.mts +24 -2
  18. package/dist/core-types.d.mts.map +1 -1
  19. package/dist/respec-gib.node.d.mts +2 -0
  20. package/dist/respec-gib.node.d.mts.map +1 -0
  21. package/dist/respec-gib.node.mjs +211 -0
  22. package/dist/respec-gib.node.mjs.map +1 -0
  23. package/dist/spec-helper.node.respec.d.mts +12 -0
  24. package/dist/spec-helper.node.respec.d.mts.map +1 -0
  25. package/dist/spec-helper.node.respec.mjs +43 -0
  26. package/dist/spec-helper.node.respec.mjs.map +1 -0
  27. package/dist/witness/app/app-base-v1.d.mts +1 -0
  28. package/dist/witness/app/app-base-v1.d.mts.map +1 -1
  29. package/dist/witness/app/app-base-v1.mjs +48 -11
  30. package/dist/witness/app/app-base-v1.mjs.map +1 -1
  31. package/dist/witness/app/app-constants.d.mts +2 -0
  32. package/dist/witness/app/app-constants.d.mts.map +1 -1
  33. package/dist/witness/app/app-constants.mjs +2 -0
  34. package/dist/witness/app/app-constants.mjs.map +1 -1
  35. package/dist/witness/app/app-helper.d.mts.map +1 -1
  36. package/dist/witness/app/app-helper.mjs +2 -1
  37. package/dist/witness/app/app-helper.mjs.map +1 -1
  38. package/dist/witness/robbot/robbot-base-v1.d.mts +4 -5
  39. package/dist/witness/robbot/robbot-base-v1.d.mts.map +1 -1
  40. package/dist/witness/robbot/robbot-base-v1.mjs +29 -1
  41. package/dist/witness/robbot/robbot-base-v1.mjs.map +1 -1
  42. package/dist/witness/robbot/robbot-helper.respec.d.mts +2 -0
  43. package/dist/witness/robbot/robbot-helper.respec.d.mts.map +1 -0
  44. package/dist/witness/robbot/robbot-helper.respec.mjs +106 -0
  45. package/dist/witness/robbot/robbot-helper.respec.mjs.map +1 -0
  46. package/dist/witness/space/bootstrap/bootstrap-helper.d.mts +3 -0
  47. package/dist/witness/space/bootstrap/bootstrap-helper.d.mts.map +1 -0
  48. package/dist/witness/space/bootstrap/bootstrap-helper.mjs +51 -0
  49. package/dist/witness/space/bootstrap/bootstrap-helper.mjs.map +1 -0
  50. package/dist/witness/space/bootstrap/bootstrap-types.d.mts +117 -0
  51. package/dist/witness/space/bootstrap/bootstrap-types.d.mts.map +1 -0
  52. package/dist/witness/space/bootstrap/bootstrap-types.mjs +7 -0
  53. package/dist/witness/space/bootstrap/bootstrap-types.mjs.map +1 -0
  54. package/dist/witness/space/filesystem-space/filesystem-constants.d.mts +64 -0
  55. package/dist/witness/space/filesystem-space/filesystem-constants.d.mts.map +1 -0
  56. package/dist/witness/space/filesystem-space/filesystem-constants.mjs +64 -0
  57. package/dist/witness/space/filesystem-space/filesystem-constants.mjs.map +1 -0
  58. package/dist/witness/space/filesystem-space/filesystem-space-v1.d.mts +180 -0
  59. package/dist/witness/space/filesystem-space/filesystem-space-v1.d.mts.map +1 -0
  60. package/dist/witness/space/filesystem-space/filesystem-space-v1.mjs +1145 -0
  61. package/dist/witness/space/filesystem-space/filesystem-space-v1.mjs.map +1 -0
  62. package/dist/witness/space/filesystem-space/filesystem-space-v1.respec.d.mts +2 -0
  63. package/dist/witness/space/filesystem-space/filesystem-space-v1.respec.d.mts.map +1 -0
  64. package/dist/witness/space/filesystem-space/filesystem-space-v1.respec.mjs +107 -0
  65. package/dist/witness/space/filesystem-space/filesystem-space-v1.respec.mjs.map +1 -0
  66. package/dist/witness/space/filesystem-space/filesystem-types.d.mts +73 -0
  67. package/dist/witness/space/filesystem-space/filesystem-types.d.mts.map +1 -0
  68. package/dist/witness/space/filesystem-space/filesystem-types.mjs +2 -0
  69. package/dist/witness/space/filesystem-space/filesystem-types.mjs.map +1 -0
  70. package/dist/witness/space/filesystem-space/node-filesystem-space-v1.d.mts +90 -0
  71. package/dist/witness/space/filesystem-space/node-filesystem-space-v1.d.mts.map +1 -0
  72. package/dist/witness/space/filesystem-space/node-filesystem-space-v1.mjs +669 -0
  73. package/dist/witness/space/filesystem-space/node-filesystem-space-v1.mjs.map +1 -0
  74. package/dist/witness/space/filesystem-space/node-filesystem-space-v1.node.respec.d.mts +2 -0
  75. package/dist/witness/space/filesystem-space/node-filesystem-space-v1.node.respec.d.mts.map +1 -0
  76. package/dist/witness/space/filesystem-space/node-filesystem-space-v1.node.respec.mjs +129 -0
  77. package/dist/witness/space/filesystem-space/node-filesystem-space-v1.node.respec.mjs.map +1 -0
  78. package/dist/witness/space/{inner-space-v1.d.mts → inner-space/inner-space-v1.d.mts} +2 -2
  79. package/dist/witness/space/inner-space/inner-space-v1.d.mts.map +1 -0
  80. package/dist/witness/space/{inner-space-v1.mjs → inner-space/inner-space-v1.mjs} +3 -3
  81. package/dist/witness/space/inner-space/inner-space-v1.mjs.map +1 -0
  82. package/dist/witness/space/inner-space/inner-space-v1.respec.d.mts +2 -0
  83. package/dist/witness/space/inner-space/inner-space-v1.respec.d.mts.map +1 -0
  84. package/dist/witness/space/inner-space/inner-space-v1.respec.mjs +56 -0
  85. package/dist/witness/space/inner-space/inner-space-v1.respec.mjs.map +1 -0
  86. package/dist/witness/space/space-constants.d.mts +0 -27
  87. package/dist/witness/space/space-constants.d.mts.map +1 -1
  88. package/dist/witness/space/space-constants.mjs +0 -27
  89. package/dist/witness/space/space-constants.mjs.map +1 -1
  90. package/dist/witness/space/space-helper.d.mts +3 -3
  91. package/dist/witness/space/space-helper.d.mts.map +1 -1
  92. package/dist/witness/space/space-helper.mjs +6 -51
  93. package/dist/witness/space/space-helper.mjs.map +1 -1
  94. package/dist/witness/space/space-respec-helper.d.mts +71 -0
  95. package/dist/witness/space/space-respec-helper.d.mts.map +1 -0
  96. package/dist/witness/space/space-respec-helper.mjs +186 -0
  97. package/dist/witness/space/space-respec-helper.mjs.map +1 -0
  98. package/dist/witness/space/space-types.d.mts +0 -98
  99. package/dist/witness/space/space-types.d.mts.map +1 -1
  100. package/dist/witness/space/space-types.mjs +0 -1
  101. package/dist/witness/space/space-types.mjs.map +1 -1
  102. package/dist/witness/witness-base-v1.d.mts.map +1 -1
  103. package/dist/witness/witness-base-v1.mjs +7 -7
  104. package/dist/witness/witness-base-v1.mjs.map +1 -1
  105. package/dist/witness/witness-helper.d.mts +8 -0
  106. package/dist/witness/witness-helper.d.mts.map +1 -1
  107. package/dist/witness/witness-helper.mjs +30 -0
  108. package/dist/witness/witness-helper.mjs.map +1 -1
  109. package/package.json +12 -15
  110. package/src/{assumptions.spec.mts → assumptions.respec.mts} +11 -5
  111. package/src/common/form/form-helper.mts +3 -4
  112. package/src/core-constants.mts +0 -2
  113. package/src/core-helper.respec.mts +71 -0
  114. package/src/core-types.mts +24 -2
  115. package/src/respec-gib.node.mts +199 -0
  116. package/src/spec-helper.node.respec.mts +45 -0
  117. package/src/witness/app/app-base-v1.mts +38 -23
  118. package/src/witness/app/app-constants.mts +3 -0
  119. package/src/witness/app/app-helper.mts +2 -1
  120. package/src/witness/robbot/robbot-base-v1.mts +9 -6
  121. package/src/witness/robbot/{robbot-helper.spec.mts → robbot-helper.respec.mts} +39 -33
  122. package/src/witness/space/bootstrap/bootstrap-helper.mts +50 -0
  123. package/src/witness/space/bootstrap/bootstrap-types.mts +123 -0
  124. package/src/witness/space/filesystem-space/filesystem-constants.mts +66 -0
  125. package/src/witness/space/filesystem-space/filesystem-space-v1.mts +1283 -0
  126. package/src/witness/space/filesystem-space/filesystem-space-v1.respec.mts +110 -0
  127. package/src/witness/space/filesystem-space/filesystem-types.mts +75 -0
  128. package/src/witness/space/filesystem-space/node-filesystem-space-v1.mts +697 -0
  129. package/src/witness/space/filesystem-space/node-filesystem-space-v1.node.respec.mts +148 -0
  130. package/src/witness/space/{inner-space-v1.mts → inner-space/inner-space-v1.mts} +5 -6
  131. package/src/witness/space/{inner-space-v1.spec.mts → inner-space/inner-space-v1.respec.mts} +17 -8
  132. package/src/witness/space/space-constants.mts +0 -27
  133. package/src/witness/space/space-helper.mts +17 -54
  134. package/src/witness/space/{space-spec-helper.spec.mts → space-respec-helper.mts} +97 -57
  135. package/src/witness/space/space-types.mts +0 -105
  136. package/src/witness/witness-base-v1.mts +8 -6
  137. package/src/witness/witness-helper.mts +31 -0
  138. package/tsconfig.json +4 -2
  139. package/dist/witness/space/inner-space-v1.d.mts.map +0 -1
  140. package/dist/witness/space/inner-space-v1.mjs.map +0 -1
  141. package/jasmine-browser.json +0 -18
  142. package/jasmine.json +0 -6
  143. 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
- useFit?: boolean,
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
- useFit,
64
+ shortcircuitRespec,
65
+ fnBeforeEach, fnAfterEach,
49
66
  }: CommonSpaceSpecOptions): Promise<void> {
50
67
  const logContext = `[${testSpace_PutGetDelete.name}]${desc ?? ''}`;
51
68
 
52
- return new Promise<void>((resolve) => {
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
- beforeEach(async () => {
76
+ firstOfEach(sir, async () => {
77
+ if (fnBeforeEach) { await fnBeforeEach(); }
58
78
  initialData = await fnGetInitialData();
59
79
  initialRel8ns = await fnGetInitialRel8ns();
60
80
  });
61
81
 
62
- const fnIt: any = useFit ? fit : it;
82
+ if (fnAfterEach) {
83
+ lastOfEach(sir, async () => {
84
+ await fnAfterEach();
85
+ });
86
+ }
87
+
88
+ const fnIfWeBlock: any = shortcircuitRespec ? ifWeMight : ifWe;
63
89
 
64
- fnIt(`when created and initialized, space should be initialized`, async () => {
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
- expect(space).withContext('space').toBeTruthy();
69
- expect(space.ib).withContext('ib').toBeTruthy();
70
- expect(space.gib).withContext('gib').toBeTruthy();
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
- expect(space.data).withContext('data, initialData truthy').toBeTruthy();
99
+ iReckon(sir, space.data).asTo('data, initialData truthy').isGonnaBeTruthy();
73
100
  } else {
74
- expect(space.rel8ns).withContext('data, initialData falsy').toBeUndefined();
101
+ iReckon(sir, space.rel8ns).asTo('data, initialData falsy').isGonnaBeUndefined();
75
102
  }
76
103
  if (initialRel8ns) {
77
- expect(space.rel8ns).withContext('rel8ns, initialRel8ns truthy').toBeTruthy();
104
+ iReckon(sir, space.rel8ns).asTo('rel8ns, initialRel8ns truthy').isGonnaBeTruthy();
78
105
  } else {
79
- expect(space.rel8ns).withContext('rel8ns, initialRel8ns falsy').toBeUndefined();
106
+ iReckon(sir, space.rel8ns).asTo('rel8ns, initialRel8ns falsy').isGonnaBeUndefined();
80
107
  }
81
108
  });
82
109
 
83
- fnIt(`space.ib should contain correct info per initialData`, async () => {
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
- expect(space.ib).toContain(initialData.name);
88
- expect(space.ib).toContain(initialData.uuid);
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
- expect(space.data?.classname).withContext('space.data?.classname').toEqual(spaceClassname);
92
- expect(space.data?.name).withContext('space.data?.name, initial').toEqual(initialData.name);
93
- expect(space.data?.name).withContext('space.data?.name, spaceName').toEqual(spaceName);
94
- expect(space.data?.uuid).withContext('space.data?.uuid, initial').toEqual(initialData.uuid);
95
- expect(space.data?.uuid).withContext('space.data?.uuid, spaceId').toEqual(spaceId);
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
- useFit,
147
+ shortcircuitRespec,
148
+ fnBeforeEach, fnAfterEach,
119
149
  }: CommonSpaceSpecOptions): Promise<void> {
120
150
  const logContext = `[${testSpace_PutGetDelete.name}]${desc ?? ''}`;
121
151
 
122
- return new Promise<void>((resolve) => {
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
- beforeEach(async () => {
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
- const fnIt: any = useFit ? fit : it;
166
+ if (fnAfterEach) {
167
+ lastOfEach(sir, async () => {
168
+ await fnAfterEach();
169
+ });
170
+ }
171
+
172
+ const fnIfWeBlock: any = shortcircuitRespec ? ifWeMight : ifWe;
135
173
 
136
- fnIt(`${logContext}, should put/get/delete`, async () => {
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
- let newIbGibAddr: IbGibAddr = getIbGibAddr({ ibGib: newIbGib });
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
- expect(resPut).withContext('resPut').toBeTruthy();
147
- expect(resPut.success).toBeTrue();
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
- expect(resGet).withContext('resGet').toBeTruthy();
152
- expect(resGet.success).withContext('resGet').toBeTrue();
153
- expect(resGet.errorMsg).withContext('resGet').toBeFalsy();
154
- expect(resGet.ibGibs).withContext('resGet').toBeTruthy();
155
- expect(resGet.ibGibs!.length).withContext('resGet').toEqual(1);
156
- expect(resGet.ibGibs![0]).withContext('resGet').toEqual(newIbGib);
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
- expect(resGet).withContext('resGet after delete').toBeTruthy();
162
- expect(resGet.success).withContext('resGet after delete').toBeFalse();
163
- expect(resGet.errorMsg).withContext('resGet after delete').toBeTruthy();
164
- expect(resGet.ibGibs).withContext('resGet after delete').toBeUndefined();
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
- useFit,
225
+ shortcircuitRespec,
186
226
  }: CommonSpaceSpecOptions): Promise<void> {
187
227
  const logContext = `[${testSpace_persistTransformResult.name}]${desc ?? ''}`;
188
228
 
189
- return new Promise<void>((resolve) => {
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
- beforeEach(async () => {
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 fnIt: any = useFit ? fit : it;
242
+ const fnIfWeBlock: any = shortcircuitRespec ? ifWeMight : ifWe;
202
243
 
203
- fnIt(`${logContext} should persist all ibgibs (new, dna, intermediate)`, async () => {
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
- expect(resGet).withContext('resGet').toBeTruthy();
224
- expect(resGet.success).toBeTrue();
225
- expect(resGet.ibGibs).toBeTruthy();
226
- expect(resGet.ibGibs!.length).toEqual(allAddrs.length);
227
- expect(resGet.ibGibs![0]).toEqual(newIbGib);
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 = h.clone(this.data); }
169
- // if (this.rel8ns) { dtoIbGib.rel8ns = h.clone(this.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 = h.clone(dto.ib);
194
- this.gib = h.clone(dto.gib);
195
+ this.ib = clone(dto.ib);
196
+ this.gib = clone(dto.gib);
195
197
  if (dto.data) {
196
- this.data = h.clone(dto.data);
198
+ this.data = clone(dto.data);
197
199
  } else {
198
200
  delete this.data;
199
201
  }
200
- if (dto.rel8ns) { this.rel8ns = h.clone(dto.rel8ns); } else { delete 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
@@ -10,6 +10,8 @@
10
10
  "module": "ESNext", /* https://www.typescriptlang.org/docs/handbook/esm-node.html */
11
11
  },
12
12
  "exclude": [
13
- "**/*.spec.mts"
13
+ "./node_modules",
14
+ "**/*.spec.mts",
15
+ "./dist/**/*"
14
16
  ]
15
- }
17
+ }
@@ -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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"}
@@ -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
@@ -1,6 +0,0 @@
1
- {
2
- "spec_dir": "dist",
3
- "spec_files": [
4
- "**/*.spec.mjs"
5
- ]
6
- }
@@ -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
- });