@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.
- package/README.md +5 -10
- 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/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 +22 -0
- 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 +2 -2
- package/dist/witness/app/app-base-v1.d.mts.map +1 -1
- package/dist/witness/app/app-base-v1.mjs +23 -141
- 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/app/app-types.d.mts +2 -1
- package/dist/witness/app/app-types.d.mts.map +1 -1
- package/dist/witness/robbot/robbot-base-v1.d.mts +12 -164
- package/dist/witness/robbot/robbot-base-v1.d.mts.map +1 -1
- package/dist/witness/robbot/robbot-base-v1.mjs +41 -657
- package/dist/witness/robbot/robbot-base-v1.mjs.map +1 -1
- package/dist/witness/robbot/robbot-helper.mjs +3 -3
- package/dist/witness/robbot/robbot-helper.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/robbot/robbot-types.d.mts +6 -3
- package/dist/witness/robbot/robbot-types.d.mts.map +1 -1
- package/dist/witness/robbot/robbot-types.mjs +1 -0
- package/dist/witness/robbot/robbot-types.mjs.map +1 -1
- package/dist/witness/space/filesystem-space/filesystem-space-v1.d.mts +1 -1
- package/dist/witness/space/filesystem-space/filesystem-space-v1.d.mts.map +1 -1
- 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/node-filesystem-space-v1.d.mts.map +1 -1
- package/dist/witness/space/filesystem-space/node-filesystem-space-v1.mjs +1 -1
- package/dist/witness/space/filesystem-space/node-filesystem-space-v1.mjs.map +1 -1
- 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/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/metaspace/metaspace-base.d.mts +795 -0
- package/dist/witness/space/metaspace/metaspace-base.d.mts.map +1 -0
- package/dist/witness/space/metaspace/metaspace-base.mjs +3251 -0
- package/dist/witness/space/metaspace/metaspace-base.mjs.map +1 -0
- package/dist/witness/space/metaspace/metaspace-innerspace/metaspace-innerspace-helper.d.mts +4 -0
- package/dist/witness/space/metaspace/metaspace-innerspace/metaspace-innerspace-helper.d.mts.map +1 -0
- package/dist/witness/space/metaspace/metaspace-innerspace/metaspace-innerspace-helper.mjs +117 -0
- package/dist/witness/space/metaspace/metaspace-innerspace/metaspace-innerspace-helper.mjs.map +1 -0
- package/dist/witness/space/metaspace/metaspace-innerspace/metaspace-innerspace.d.mts +34 -0
- package/dist/witness/space/metaspace/metaspace-innerspace/metaspace-innerspace.d.mts.map +1 -0
- package/dist/witness/space/metaspace/metaspace-innerspace/metaspace-innerspace.mjs +76 -0
- package/dist/witness/space/metaspace/metaspace-innerspace/metaspace-innerspace.mjs.map +1 -0
- package/dist/witness/space/metaspace/metaspace-types.d.mts +580 -0
- package/dist/witness/space/metaspace/metaspace-types.d.mts.map +1 -0
- package/dist/witness/space/metaspace/metaspace-types.mjs +6 -0
- package/dist/witness/space/metaspace/metaspace-types.mjs.map +1 -0
- package/dist/witness/space/space-helper.d.mts.map +1 -1
- package/dist/witness/space/space-helper.mjs +2 -1
- package/dist/witness/space/space-helper.mjs.map +1 -1
- package/dist/witness/space/{space-spec-helper.d.mts → space-respec-helper.d.mts} +15 -5
- 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 +2 -1
- package/dist/witness/space/space-types.d.mts.map +1 -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-cmd/witness-cmd-types.d.mts +31 -0
- package/dist/witness/witness-cmd/witness-cmd-types.d.mts.map +1 -0
- package/dist/witness/witness-cmd/witness-cmd-types.mjs +2 -0
- package/dist/witness/witness-cmd/witness-cmd-types.mjs.map +1 -0
- 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/dist/witness/witness-types.d.mts +26 -36
- package/dist/witness/witness-types.d.mts.map +1 -1
- package/dist/witness/witness-with-context/witness-with-context-base-v1.d.mts +235 -0
- package/dist/witness/witness-with-context/witness-with-context-base-v1.d.mts.map +1 -0
- package/dist/witness/witness-with-context/witness-with-context-base-v1.mjs +742 -0
- package/dist/witness/witness-with-context/witness-with-context-base-v1.mjs.map +1 -0
- package/dist/witness/witness-with-context/witness-with-context-types.d.mts +17 -0
- package/dist/witness/witness-with-context/witness-with-context-types.d.mts.map +1 -0
- package/dist/witness/witness-with-context/witness-with-context-types.mjs +2 -0
- package/dist/witness/witness-with-context/witness-with-context-types.mjs.map +1 -0
- package/package.json +12 -15
- package/src/{assumptions.spec.mts → assumptions.respec.mts} +11 -5
- package/src/core-constants.mts +0 -2
- package/src/core-helper.respec.mts +71 -0
- package/src/core-types.mts +20 -0
- package/src/respec-gib.node.mts +199 -0
- package/src/witness/app/app-base-v1.mts +19 -212
- package/src/witness/app/app-constants.mts +3 -0
- package/src/witness/app/app-helper.mts +2 -1
- package/src/witness/app/app-types.mts +1 -1
- package/src/witness/robbot/robbot-base-v1.mts +39 -690
- package/src/witness/robbot/robbot-helper.mts +1 -1
- package/src/witness/robbot/{robbot-helper.spec.mts → robbot-helper.respec.mts} +39 -33
- package/src/witness/robbot/robbot-types.mts +5 -3
- package/src/witness/space/filesystem-space/filesystem-space-v1.mts +1 -1
- package/src/witness/space/filesystem-space/{filesystem-space-v1.spec.mts → filesystem-space-v1.respec.mts} +17 -8
- package/src/witness/space/filesystem-space/node-filesystem-space-v1.mts +3 -11
- package/src/witness/space/filesystem-space/{node-filesystem-space-v1.node.spec.mts → node-filesystem-space-v1.node.respec.mts} +18 -14
- package/src/witness/space/inner-space/{inner-space-v1.spec.mts → inner-space-v1.respec.mts} +17 -8
- package/src/witness/space/metaspace/metaspace-base.mts +3702 -0
- package/src/witness/space/metaspace/metaspace-innerspace/metaspace-innerspace-helper.mts +116 -0
- package/src/witness/space/metaspace/metaspace-innerspace/metaspace-innerspace.mts +88 -0
- package/src/witness/space/metaspace/metaspace-types.mts +614 -0
- package/src/witness/space/space-helper.mts +2 -1
- package/src/witness/space/{space-spec-helper.mts → space-respec-helper.mts} +76 -57
- package/src/witness/space/space-types.mts +2 -1
- package/src/witness/witness-base-v1.mts +8 -6
- package/src/witness/witness-cmd/witness-cmd-types.mts +38 -0
- package/src/witness/witness-helper.mts +31 -0
- package/src/witness/witness-types.mts +31 -41
- package/src/witness/witness-with-context/witness-with-context-base-v1.mts +809 -0
- package/src/witness/witness-with-context/witness-with-context-types.mts +24 -0
- package/tsconfig.json +1 -0
- package/dist/witness/space/space-spec-helper.d.mts.map +0 -1
- package/dist/witness/space/space-spec-helper.mjs +0 -179
- package/dist/witness/space/space-spec-helper.mjs.map +0 -1
- package/jasmine-browser.json +0 -18
- package/jasmine.json +0 -6
- package/src/core-helper.spec.mts +0 -64
- /package/src/{spec-helper.node.spec.mts → spec-helper.node.respec.mts} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"witness-with-context-base-v1.mjs","sourceRoot":"","sources":["../../../src/witness/witness-with-context/witness-with-context-base-v1.mts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { IbGib } from "@ibgib/ts-gib/dist/types.mjs";
|
|
2
|
+
import { Witness, WitnessData_V1, WitnessRel8ns_V1 } from "../witness-types.mjs";
|
|
3
|
+
export interface WitnessWithContextData_V1 extends WitnessData_V1 {
|
|
4
|
+
/**
|
|
5
|
+
* If provided, this will be the rel8nName used when calling `rel8To` function.
|
|
6
|
+
*
|
|
7
|
+
* ## notes
|
|
8
|
+
*
|
|
9
|
+
* This originated in robbot-base so may not strictly be necessary here.
|
|
10
|
+
*/
|
|
11
|
+
defaultRel8nName?: string;
|
|
12
|
+
}
|
|
13
|
+
export interface WitnessWithContextRel8ns_V1 extends WitnessRel8ns_V1 {
|
|
14
|
+
}
|
|
15
|
+
export interface WitnessWithContextIbGib_V1<TIbGibIn extends IbGib, TIbGibOut extends IbGib, TData extends WitnessWithContextData_V1 = any, TRel8ns extends WitnessWithContextRel8ns_V1 = WitnessWithContextRel8ns_V1> extends Witness<TIbGibIn, TIbGibOut, TData, TRel8ns> {
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=witness-with-context-types.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"witness-with-context-types.d.mts","sourceRoot":"","sources":["../../../src/witness/witness-with-context/witness-with-context-types.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAEjF,MAAM,WAAW,yBAA0B,SAAQ,cAAc;IAC7D;;;;;;OAMG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,2BAA4B,SAAQ,gBAAgB;CACpE;AAED,MAAM,WAAW,0BAA0B,CACvC,QAAQ,SAAS,KAAK,EACtB,SAAS,SAAS,KAAK,EACvB,KAAK,SAAS,yBAAyB,GAAG,GAAG,EAC7C,OAAO,SAAS,2BAA2B,GAAG,2BAA2B,CAC3E,SAAQ,OAAO,CAAC,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC;CACrD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"witness-with-context-types.mjs","sourceRoot":"","sources":["../../../src/witness/witness-with-context/witness-with-context-types.mts"],"names":[],"mappings":""}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ibgib/core-gib",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.11",
|
|
4
4
|
"description": "ibgib core functionality, including base architecture for witnesses, spaces, apps, robbots, etc., as well as shared utility functions. Node v19+ needed for heavily-used isomorphic webcrypto hashing consumed in both node and browsers.",
|
|
5
5
|
"repository": {
|
|
6
6
|
"url": "https://github.com/wraiford/ibgib",
|
|
@@ -12,24 +12,25 @@
|
|
|
12
12
|
},
|
|
13
13
|
"main": "dist/index.mjs",
|
|
14
14
|
"scripts": {
|
|
15
|
+
"clean": "rm -rf ./dist",
|
|
15
16
|
"build": "npm run clean && tsc -b tsconfig.json --force",
|
|
16
17
|
"build:test": "npm run clean && tsc -b tsconfig.test.json --force",
|
|
17
18
|
"build:test:noclean": "tsc -b tsconfig.test.json --force",
|
|
18
|
-
"clean": "rm -rf ./dist",
|
|
19
19
|
"test": "npm run test:both",
|
|
20
20
|
"test:both": "npm run build:test && npm run test:node:nobuild && npm run test:browser:nobuild",
|
|
21
21
|
"man:test:both": "use this if you want to test in both node and browser contexts",
|
|
22
|
-
"
|
|
22
|
+
"pretest:node": "npm run build:test",
|
|
23
|
+
"test:node": "node dist/respec-gib.node.mjs --inspect",
|
|
23
24
|
"man:test:node": "use this if you want to build+test in node",
|
|
24
|
-
"test:node:nobuild": "
|
|
25
|
+
"test:node:nobuild": "node dist/respec-gib.node.mjs --inspect",
|
|
25
26
|
"man:test:node:nobuild": "use this if you want to test in node but its already built",
|
|
26
|
-
"test:browser": "npm run build:test &&
|
|
27
|
+
"test:browser": "npm run build:test && echo \"not implemented yet\"",
|
|
27
28
|
"man:test:browser": "use this if you want to build+test only the browser context",
|
|
28
|
-
"test:browser:nobuild": "
|
|
29
|
+
"test:browser:nobuild": "echo \"not implemented yet\"",
|
|
29
30
|
"man:test:browser:nobuild": "use this if you want to test only the browser context but its already built",
|
|
30
|
-
"test:browser:serve": "npm run build:test &&
|
|
31
|
+
"test:browser:serve": "npm run build:test && echo \"not implemented yet\"",
|
|
31
32
|
"man:test:browser:serve": "use this if you want to build+test in the browser and don't want the browser to close when your done. (i.e. you're debugging)",
|
|
32
|
-
"test:browser:serve:nobuild": "
|
|
33
|
+
"test:browser:serve:nobuild": "\"not implemented yet\"",
|
|
33
34
|
"man:test:browser:serve:nobuild": "use this if you are troubleshooting existing dist output and don't want to overwrite those files. (and you're debugging in the browser)",
|
|
34
35
|
"pack": "npm pack --pack-destination=\"./published\"",
|
|
35
36
|
"prepare:publish": "npm run clean && npm version patch && npm run build && npm run pack",
|
|
@@ -46,16 +47,12 @@
|
|
|
46
47
|
"license": "ISC",
|
|
47
48
|
"dependencies": {
|
|
48
49
|
"@ibgib/encrypt-gib": "^0.1.6",
|
|
49
|
-
"@ibgib/helper-gib": "^0.0.
|
|
50
|
-
"@ibgib/ts-gib": "^0.5.
|
|
50
|
+
"@ibgib/helper-gib": "^0.0.8",
|
|
51
|
+
"@ibgib/ts-gib": "^0.5.2",
|
|
51
52
|
"rxjs": "^7.8.0"
|
|
52
53
|
},
|
|
53
54
|
"devDependencies": {
|
|
54
|
-
"@types/
|
|
55
|
-
"@types/node": "^16.11.6",
|
|
56
|
-
"jasmine": "^4.5.0",
|
|
57
|
-
"jasmine-browser-runner": "^1.3.0",
|
|
58
|
-
"jasmine-core": "^4.5.0",
|
|
55
|
+
"@types/node": "^20.2.1",
|
|
59
56
|
"typescript": "^4.9.5"
|
|
60
57
|
},
|
|
61
58
|
"engines": {
|
|
@@ -1,3 +1,9 @@
|
|
|
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 { IbGib_V1 } from '@ibgib/ts-gib/dist/V1/types.mjs';
|
|
2
8
|
|
|
3
9
|
/**
|
|
@@ -29,17 +35,17 @@ async function cryptoSubtleHash({
|
|
|
29
35
|
}
|
|
30
36
|
}
|
|
31
37
|
|
|
32
|
-
|
|
38
|
+
await respecfully(sir, `non-ts-gib isomorphic crypto hashing`, async () => {
|
|
33
39
|
|
|
34
|
-
|
|
40
|
+
await ifWe(sir, `should digest simple string consistently using crypto.subtle directly `, async () => {
|
|
35
41
|
let h = await cryptoSubtleHash({ s: '42' });
|
|
36
|
-
|
|
42
|
+
iReckon(sir, h).asTo('42').isGonnaBe('73475cb40a568e8da8a045ced110137e159f890ac4da883b6b17dc651b3a8049');
|
|
37
43
|
});
|
|
38
44
|
|
|
39
|
-
|
|
45
|
+
await ifWe(sir, `should digest simple stringified ibgib consistently using crypto.subtle directly `, async () => {
|
|
40
46
|
let ibgib: IbGib_V1 = { ib: 'ib', gib: 'gib' };
|
|
41
47
|
let h = await cryptoSubtleHash({ s: JSON.stringify(ibgib) }); // doesn't use ts-gib but consistent stringifying json is important
|
|
42
|
-
|
|
48
|
+
iReckon(sir, h).asTo('ib^gib').isGonnaBe('cbad0694a257358c044611ea1fa88ace71a01a9b8409d2354d0387d8043f7671');
|
|
43
49
|
});
|
|
44
50
|
|
|
45
51
|
});
|
package/src/core-constants.mts
CHANGED
|
@@ -495,8 +495,6 @@ export const SIMPLE_CONFIG_KEY_ROBBOT_SELECTED_ADDR = 'robbotBarSelectedAddr';
|
|
|
495
495
|
|
|
496
496
|
// #region app
|
|
497
497
|
|
|
498
|
-
export const APP_NAME_REGEXP = /^[a-zA-Z0-9_\-.]{1,32}$/;
|
|
499
|
-
export const APP_REL8N_NAME = 'app';
|
|
500
498
|
export const DEFAULT_APP_ICON = 'apps-outline';
|
|
501
499
|
|
|
502
500
|
// #endregion app
|
|
@@ -0,0 +1,71 @@
|
|
|
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;
|
|
7
|
+
|
|
8
|
+
let crypto = globalThis.crypto;
|
|
9
|
+
let { subtle } = crypto;
|
|
10
|
+
|
|
11
|
+
import { IbGib_V1 } from '@ibgib/ts-gib/dist/V1/types.mjs';
|
|
12
|
+
|
|
13
|
+
import { fooClone, fooFactory, fooGetIbAndGib } from './core-helper.mjs';
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Test helper functions.
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
await respecfully(sir, `foo clone`, async () => {
|
|
20
|
+
|
|
21
|
+
await ifWe(sir, `should foo Clone yo (testing node/browser isomorphic packages)`, () => {
|
|
22
|
+
let obj = 1;
|
|
23
|
+
let clone = fooClone(obj);
|
|
24
|
+
iReckon(sir, clone).asTo('clone foo yo').isGonnaBe(obj);
|
|
25
|
+
// expect(1).asTo('expected fail test case').isGonnaBe(2);
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
await ifWe(sir, `should foo getibAndGib yo (testing node/browser isomorphic packages)`, () => {
|
|
29
|
+
let result = fooGetIbAndGib();
|
|
30
|
+
iReckon(sir, result.ib).asTo('ib').isGonnaBe('ib');
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
await ifWe(sir, `should foo factory yo (testing node/browser isomorphic packages)`, async () => {
|
|
34
|
+
let result = await fooFactory();
|
|
35
|
+
iReckon(sir, result).asTo('result').isGonnaBeTruthy();
|
|
36
|
+
iReckon(sir, result.ib).asTo('result.ib').isGonnaBeTruthy();
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
async function hash({
|
|
42
|
+
s,
|
|
43
|
+
}: {
|
|
44
|
+
s: string,
|
|
45
|
+
}): Promise<string> {
|
|
46
|
+
if (!s) { return ''; }
|
|
47
|
+
let algorithm = 'SHA-256';
|
|
48
|
+
|
|
49
|
+
try {
|
|
50
|
+
const msgUint8 = new TextEncoder().encode(s);
|
|
51
|
+
const buffer = await subtle.digest(algorithm, msgUint8);
|
|
52
|
+
const asArray = Array.from(new Uint8Array(buffer));
|
|
53
|
+
return asArray.map(b => b.toString(16).padStart(2, '0')).join('');
|
|
54
|
+
} catch (e) {
|
|
55
|
+
console.error(e.message ?? e);
|
|
56
|
+
throw e;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
await respecfully(sir, `non-ts-gib isomorphic crypto hashing`, async () => {
|
|
61
|
+
|
|
62
|
+
await ifWe(sir, `should digest simple string consistently using crypto.subtle directly `, async () => {
|
|
63
|
+
let h = await hash({ s: '42' });
|
|
64
|
+
iReckon(sir, h).asTo('42').isGonnaBe('73475cb40a568e8da8a045ced110137e159f890ac4da883b6b17dc651b3a8049');
|
|
65
|
+
});
|
|
66
|
+
await ifWe(sir, `should digest simple stringified ibgib consistently using crypto.subtle directly `, async () => {
|
|
67
|
+
let ibgib: IbGib_V1 = { ib: 'ib', gib: 'gib' };
|
|
68
|
+
let h = await hash({ s: JSON.stringify(ibgib) }); // doesn't use ts-gib but consistent stringifying json is important
|
|
69
|
+
iReckon(sir, h).asTo('ib^gib').isGonnaBe('cbad0694a257358c044611ea1fa88ace71a01a9b8409d2354d0387d8043f7671');
|
|
70
|
+
});
|
|
71
|
+
});
|
package/src/core-types.mts
CHANGED
|
@@ -519,3 +519,23 @@ export interface IbGibLocalSpaceService_AllPowerful {
|
|
|
519
519
|
space?: IbGibSpaceAny,
|
|
520
520
|
}): Promise<void>;
|
|
521
521
|
}
|
|
522
|
+
|
|
523
|
+
|
|
524
|
+
/**
|
|
525
|
+
* Function (provider?) that alerts the user of a given `title` and `msg`.
|
|
526
|
+
*/
|
|
527
|
+
export type AlertFunction = ({ title, msg }: { title: string, msg: string }) => Promise<void>;
|
|
528
|
+
|
|
529
|
+
/**
|
|
530
|
+
* Function (provider?) that returns user text, prompting with the given `title` and `msg`.
|
|
531
|
+
*/
|
|
532
|
+
export type PromptFunction = ({ title, msg }: { title: string, msg: string }) => Promise<string | null>;
|
|
533
|
+
|
|
534
|
+
/**
|
|
535
|
+
* Function (provider?) that returns a password, prompting with the given `title` and `msg`.
|
|
536
|
+
*
|
|
537
|
+
* This is the same atow as the {@link PromptFunction}.
|
|
538
|
+
*
|
|
539
|
+
* In the future, maybe a prompt signature with a `private` param would be more appropriate/DRY.
|
|
540
|
+
*/
|
|
541
|
+
export type PromptPasswordFunction = PromptFunction;
|
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
import { readdir, open } from 'node:fs/promises';
|
|
2
|
+
import { statSync } from 'node:fs';
|
|
3
|
+
import * as pathUtils from 'path';
|
|
4
|
+
|
|
5
|
+
import { pretty } from '@ibgib/helper-gib';
|
|
6
|
+
import { getGlobalRespecGib } from '@ibgib/helper-gib/dist/respec-gib/respec-gib.mjs';
|
|
7
|
+
|
|
8
|
+
// #region settings
|
|
9
|
+
/**
|
|
10
|
+
* This is how I enable/disable verbose logging. Do with it what you will.
|
|
11
|
+
*/
|
|
12
|
+
const logalot = false;
|
|
13
|
+
|
|
14
|
+
/** set this to the root of the respecs to look at */
|
|
15
|
+
const RESPEC_ROOT_DIR_RELATIVE_TO_BASE = './dist';
|
|
16
|
+
|
|
17
|
+
/** change this to suit your naming convention */
|
|
18
|
+
const RESPEC_FILE_REG_EXP = /^.+respec\.mjs$/;
|
|
19
|
+
// const RESPEC_FILE_REG_EXP = /^.*respec-gib.respec\.mjs$/;
|
|
20
|
+
// if (respecPath.includes('respec-gib.respec.mjs')) {
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* If on, will first load a file and see if there is an extra respecful
|
|
24
|
+
* `await respecfully`/`ifWe` block. Use these if you want to focus on a single or
|
|
25
|
+
* subset of respecs.
|
|
26
|
+
*
|
|
27
|
+
* If there are no extra respecful blocks found in an entire file, that file
|
|
28
|
+
* will be skipped.
|
|
29
|
+
*
|
|
30
|
+
* Note: this only is a flag to search through respec files.
|
|
31
|
+
*/
|
|
32
|
+
const LOOK_FOR_EXTRA_RESPEC = true;
|
|
33
|
+
/**
|
|
34
|
+
* The names of the functions that indicate that we want to focus on just those
|
|
35
|
+
* blocks.
|
|
36
|
+
*
|
|
37
|
+
* ATOW, for first run implementation here, I am implementing it such that it
|
|
38
|
+
* will filter out files that don't have these indicators. The respec files that
|
|
39
|
+
* do have these will execute fully, but the output will only include these
|
|
40
|
+
* particular blocks.
|
|
41
|
+
*/
|
|
42
|
+
const EXTRA_RESPEC_FUNCTION_NAMES: string[] = ['await respecfullyDear', 'ifWeMight'];
|
|
43
|
+
|
|
44
|
+
// #endregion settings
|
|
45
|
+
|
|
46
|
+
// #region 1. get respec paths
|
|
47
|
+
|
|
48
|
+
const basePath = process.cwd();
|
|
49
|
+
const srcPath = pathUtils.join(basePath, RESPEC_ROOT_DIR_RELATIVE_TO_BASE);
|
|
50
|
+
|
|
51
|
+
if (logalot) { console.log(`cwd: ${process.cwd()}`); }
|
|
52
|
+
if (logalot) { console.log(`basePath: ${basePath}`); }
|
|
53
|
+
if (logalot) { console.log(`srcPath: ${srcPath}`); }
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
const respecGib = getGlobalRespecGib();
|
|
57
|
+
const allRespecPaths = await getRespecFileFullPaths(srcPath, []);
|
|
58
|
+
|
|
59
|
+
if (logalot) { console.log(`allRespecPaths: ${allRespecPaths} (I: f5182a455375a8cf2aa6e1127a082423)`); }
|
|
60
|
+
let filteredRespecPaths: string[] | undefined = undefined;
|
|
61
|
+
|
|
62
|
+
if (LOOK_FOR_EXTRA_RESPEC) {
|
|
63
|
+
const hasExtraRespecPromises = allRespecPaths.map(async respecPath => {
|
|
64
|
+
const hasExtra = await respecFileHasExtraRespec(respecPath);
|
|
65
|
+
return [respecPath, hasExtra] as [string, boolean];
|
|
66
|
+
});
|
|
67
|
+
const resPathHasExtraTuples = await Promise.all(hasExtraRespecPromises);
|
|
68
|
+
filteredRespecPaths = resPathHasExtraTuples
|
|
69
|
+
.filter(([_respecPath, hasExtra]) => hasExtra)
|
|
70
|
+
.map(([respecPath, _hasExtra]) => respecPath);
|
|
71
|
+
|
|
72
|
+
// if there are no files that have extra respec then we do all files
|
|
73
|
+
if (filteredRespecPaths.length === 0) {
|
|
74
|
+
if (logalot) { console.log(`filteredRespecPaths is empty. doing allRespecPaths found (I: b98f54656899646025eecb4c028ab523)`); }
|
|
75
|
+
filteredRespecPaths = allRespecPaths.concat();
|
|
76
|
+
} else {
|
|
77
|
+
console.log(`filteredRespecPaths for extra respec: ${filteredRespecPaths} (I: b98f54656899646025eecb4c028ab523)`);
|
|
78
|
+
respecGib.extraRespecOnly = true;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
// #endregion 1. get respec paths
|
|
83
|
+
|
|
84
|
+
respecGib.allRespecPaths = allRespecPaths;
|
|
85
|
+
respecGib.filteredRespecPaths = filteredRespecPaths;
|
|
86
|
+
const respecPaths = filteredRespecPaths ?? allRespecPaths;
|
|
87
|
+
respecGib.respecPaths = respecPaths;
|
|
88
|
+
if (logalot) { console.log(`respecPaths found:\n${respecPaths}`); }
|
|
89
|
+
|
|
90
|
+
// #region 2. execute paths' respective respecs
|
|
91
|
+
|
|
92
|
+
// for now, we'll do sequentially, but in the future we could conceivable farm
|
|
93
|
+
// these out to other node processes, or at least Promise.all
|
|
94
|
+
|
|
95
|
+
for (let i = 0; i < respecPaths.length; i++) {
|
|
96
|
+
const respecPath = respecPaths[i];
|
|
97
|
+
if (logalot) { console.log(respecPath); }
|
|
98
|
+
const esm = await import(respecPath);
|
|
99
|
+
if (logalot) { console.log(pretty(Object.keys(esm))); }
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
const skippedRespecPathCount = respecGib.allRespecPaths.length - respecGib.respecPaths.length;
|
|
103
|
+
if (skippedRespecPathCount > 0) {
|
|
104
|
+
console.log('');
|
|
105
|
+
console.error('\x1b[33m%s\x1b[0m', `${skippedRespecPathCount} respec files completely skipped.`); // yellow
|
|
106
|
+
}
|
|
107
|
+
if (respecGib.ifWeBlocksSkipped > 0) {
|
|
108
|
+
console.log('');
|
|
109
|
+
console.error('\x1b[33m%s\x1b[0m', `${respecGib.ifWeBlocksSkipped} ifWe blocks ran but skipped reporting`); // yellow
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
if (respecGib.errorMsgs.length === 0) {
|
|
113
|
+
console.log('');
|
|
114
|
+
console.error('\x1b[32m%s\x1b[0m', `💚💚 nothing but respec 💚💚`); // green
|
|
115
|
+
} else {
|
|
116
|
+
console.log('');
|
|
117
|
+
console.error('\x1b[31m%s\x1b[0m', `💔💔 DISrespec found 💔💔`); // red
|
|
118
|
+
for (const errorMsg of respecGib.errorMsgs) {
|
|
119
|
+
console.error('\x1b[31m%s\x1b[0m', errorMsg); // red
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
// #endregion 2. execute paths' respective respecs
|
|
124
|
+
|
|
125
|
+
// #region helper functions
|
|
126
|
+
|
|
127
|
+
/**
|
|
128
|
+
* builds a list of respec file paths, recursively traversing subdirectories
|
|
129
|
+
* starting from `dirPath`.
|
|
130
|
+
*
|
|
131
|
+
* @param dirPath a full path corresponding to a directory
|
|
132
|
+
* @param found respec paths already found (used in recursive calls)
|
|
133
|
+
* @returns list of all respec paths according to the respec regexp constant {@link RESPEC_FILE_REG_EXP}
|
|
134
|
+
*/
|
|
135
|
+
async function getRespecFileFullPaths(dirPath: string, found: string[]): Promise<string[]> {
|
|
136
|
+
const lc = `[${getRespecFileFullPaths.name}][${dirPath}]`;
|
|
137
|
+
try {
|
|
138
|
+
if (logalot) { console.log(`${lc} starting... (I: 16026290523925f79ba1933847e2a623)`); }
|
|
139
|
+
found ??= [];
|
|
140
|
+
const children = await readdir(dirPath);
|
|
141
|
+
if (logalot) { for (let i = 0; i < children.length; i++) { console.log(children[i]); } }
|
|
142
|
+
const files: string[] = [];
|
|
143
|
+
const dirs: string[] = [];
|
|
144
|
+
children.forEach(name => {
|
|
145
|
+
const fullPath = pathUtils.join(dirPath, name);
|
|
146
|
+
const stat = statSync(fullPath);
|
|
147
|
+
if (stat.isDirectory()) {
|
|
148
|
+
// symbolic link could create a loop
|
|
149
|
+
if (!stat.isSymbolicLink()) { dirs.push(fullPath); }
|
|
150
|
+
} else if (!!name.match(RESPEC_FILE_REG_EXP)) {
|
|
151
|
+
files.push(fullPath);
|
|
152
|
+
}
|
|
153
|
+
});
|
|
154
|
+
|
|
155
|
+
found = found.concat(files);
|
|
156
|
+
for (let i = 0; i < dirs.length; i++) {
|
|
157
|
+
const subfound = await getRespecFileFullPaths(dirs[i], found);
|
|
158
|
+
found = found.concat(subfound);
|
|
159
|
+
}
|
|
160
|
+
return Array.from(new Set(found)); // unique
|
|
161
|
+
} catch (error) {
|
|
162
|
+
console.error(`${lc} ${error.message}`);
|
|
163
|
+
throw error;
|
|
164
|
+
} finally {
|
|
165
|
+
if (logalot) { console.log(`${lc} complete.`); }
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
/**
|
|
170
|
+
* Searches through the file (without importing it) for extra respecful
|
|
171
|
+
* functions.
|
|
172
|
+
*
|
|
173
|
+
* @param respecPath
|
|
174
|
+
* @returns true if extra respecful functions found in file
|
|
175
|
+
*/
|
|
176
|
+
async function respecFileHasExtraRespec(respecPath: string): Promise<boolean> {
|
|
177
|
+
const lc = `[${respecFileHasExtraRespec.name}]`;
|
|
178
|
+
try {
|
|
179
|
+
if (logalot) { console.log(`${lc} starting... (I: 61f3221917ba77175efa305b14defc23)`); }
|
|
180
|
+
const file = await open(respecPath);
|
|
181
|
+
for await (const line of file.readLines()) {
|
|
182
|
+
const hasExtraRespecInLine =
|
|
183
|
+
EXTRA_RESPEC_FUNCTION_NAMES.some(fnName => {
|
|
184
|
+
if (line.includes(`${fnName}(`)) { return true; }
|
|
185
|
+
});
|
|
186
|
+
if (hasExtraRespecInLine) {
|
|
187
|
+
return true;
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
return false;
|
|
191
|
+
} catch (error) {
|
|
192
|
+
console.error(`${lc} ${error.message}`);
|
|
193
|
+
throw error;
|
|
194
|
+
} finally {
|
|
195
|
+
if (logalot) { console.log(`${lc} complete.`); }
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
// #endregion helper functions
|