@ibgib/core-gib 0.0.4
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/.vscode/core-gib-snippets.code-snippets +189 -0
- package/.vscode/launch.json +24 -0
- package/.vscode/settings.json +56 -0
- package/.vscode/tasks.json +37 -0
- package/CHANGELOG.md +11 -0
- package/README.md +215 -0
- package/dist/common/aws-constants.d.mts +7 -0
- package/dist/common/aws-constants.d.mts.map +1 -0
- package/dist/common/aws-constants.mjs +7 -0
- package/dist/common/aws-constants.mjs.map +1 -0
- package/dist/common/bin/bin-types.d.mts +17 -0
- package/dist/common/bin/bin-types.d.mts.map +1 -0
- package/dist/common/bin/bin-types.mjs +3 -0
- package/dist/common/bin/bin-types.mjs.map +1 -0
- package/dist/common/cache/cache-types.d.mts +57 -0
- package/dist/common/cache/cache-types.d.mts.map +1 -0
- package/dist/common/cache/cache-types.mjs +2 -0
- package/dist/common/cache/cache-types.mjs.map +1 -0
- package/dist/common/comment/comment-constants.d.mts +11 -0
- package/dist/common/comment/comment-constants.d.mts.map +1 -0
- package/dist/common/comment/comment-constants.mjs +11 -0
- package/dist/common/comment/comment-constants.mjs.map +1 -0
- package/dist/common/comment/comment-helper.d.mts +59 -0
- package/dist/common/comment/comment-helper.d.mts.map +1 -0
- package/dist/common/comment/comment-helper.mjs +173 -0
- package/dist/common/comment/comment-helper.mjs.map +1 -0
- package/dist/common/comment/comment-types.d.mts +16 -0
- package/dist/common/comment/comment-types.d.mts.map +1 -0
- package/dist/common/comment/comment-types.mjs +2 -0
- package/dist/common/comment/comment-types.mjs.map +1 -0
- package/dist/common/display/display-helper.d.mts +19 -0
- package/dist/common/display/display-helper.d.mts.map +1 -0
- package/dist/common/display/display-helper.mjs +68 -0
- package/dist/common/display/display-helper.mjs.map +1 -0
- package/dist/common/display/display-types.d.mts +97 -0
- package/dist/common/display/display-types.d.mts.map +1 -0
- package/dist/common/display/display-types.mjs +37 -0
- package/dist/common/display/display-types.mjs.map +1 -0
- package/dist/common/encrypt/encrypt-constants.d.mts +27 -0
- package/dist/common/encrypt/encrypt-constants.d.mts.map +1 -0
- package/dist/common/encrypt/encrypt-constants.mjs +27 -0
- package/dist/common/encrypt/encrypt-constants.mjs.map +1 -0
- package/dist/common/encrypt/encrypt-types.d.mts +116 -0
- package/dist/common/encrypt/encrypt-types.d.mts.map +1 -0
- package/dist/common/encrypt/encrypt-types.mjs +9 -0
- package/dist/common/encrypt/encrypt-types.mjs.map +1 -0
- package/dist/common/error/error-constants.d.mts +9 -0
- package/dist/common/error/error-constants.d.mts.map +1 -0
- package/dist/common/error/error-constants.mjs +9 -0
- package/dist/common/error/error-constants.mjs.map +1 -0
- package/dist/common/error/error-helper.d.mts +43 -0
- package/dist/common/error/error-helper.d.mts.map +1 -0
- package/dist/common/error/error-helper.mjs +167 -0
- package/dist/common/error/error-helper.mjs.map +1 -0
- package/dist/common/error/error-types.d.mts +58 -0
- package/dist/common/error/error-types.d.mts.map +1 -0
- package/dist/common/error/error-types.mjs +2 -0
- package/dist/common/error/error-types.mjs.map +1 -0
- package/dist/common/form/form-helper.d.mts +97 -0
- package/dist/common/form/form-helper.d.mts.map +1 -0
- package/dist/common/form/form-helper.mjs +185 -0
- package/dist/common/form/form-helper.mjs.map +1 -0
- package/dist/common/form/form-items.d.mts +229 -0
- package/dist/common/form/form-items.d.mts.map +1 -0
- package/dist/common/form/form-items.mjs +63 -0
- package/dist/common/form/form-items.mjs.map +1 -0
- package/dist/common/import-export/import-export-types.d.mts +18 -0
- package/dist/common/import-export/import-export-types.d.mts.map +1 -0
- package/dist/common/import-export/import-export-types.mjs +2 -0
- package/dist/common/import-export/import-export-types.mjs.map +1 -0
- package/dist/common/legacy/legacy-types.d.mts +2 -0
- package/dist/common/legacy/legacy-types.d.mts.map +1 -0
- package/dist/common/legacy/legacy-types.mjs +2 -0
- package/dist/common/legacy/legacy-types.mjs.map +1 -0
- package/dist/common/link/link-constants.d.mts +2 -0
- package/dist/common/link/link-constants.d.mts.map +1 -0
- package/dist/common/link/link-constants.mjs +2 -0
- package/dist/common/link/link-constants.mjs.map +1 -0
- package/dist/common/link/link-helper.d.mts +37 -0
- package/dist/common/link/link-helper.d.mts.map +1 -0
- package/dist/common/link/link-helper.mjs +143 -0
- package/dist/common/link/link-helper.mjs.map +1 -0
- package/dist/common/link/link-types.d.mts +14 -0
- package/dist/common/link/link-types.d.mts.map +1 -0
- package/dist/common/link/link-types.mjs +2 -0
- package/dist/common/link/link-types.mjs.map +1 -0
- package/dist/common/other/graph-helper.d.mts +166 -0
- package/dist/common/other/graph-helper.d.mts.map +1 -0
- package/dist/common/other/graph-helper.mjs +710 -0
- package/dist/common/other/graph-helper.mjs.map +1 -0
- package/dist/common/other/ibgib-helper.d.mts +245 -0
- package/dist/common/other/ibgib-helper.d.mts.map +1 -0
- package/dist/common/other/ibgib-helper.mjs +641 -0
- package/dist/common/other/ibgib-helper.mjs.map +1 -0
- package/dist/common/other/other-constants.d.mts +53 -0
- package/dist/common/other/other-constants.d.mts.map +1 -0
- package/dist/common/other/other-constants.mjs +67 -0
- package/dist/common/other/other-constants.mjs.map +1 -0
- package/dist/common/other/other-types.d.mts +166 -0
- package/dist/common/other/other-types.d.mts.map +1 -0
- package/dist/common/other/other-types.mjs +30 -0
- package/dist/common/other/other-types.mjs.map +1 -0
- package/dist/common/other/svg-constants.d.mts +2 -0
- package/dist/common/other/svg-constants.d.mts.map +1 -0
- package/dist/common/other/svg-constants.mjs +2 -0
- package/dist/common/other/svg-constants.mjs.map +1 -0
- package/dist/common/other/svg-helper.d.mts +54 -0
- package/dist/common/other/svg-helper.d.mts.map +1 -0
- package/dist/common/other/svg-helper.mjs +170 -0
- package/dist/common/other/svg-helper.mjs.map +1 -0
- package/dist/common/pic/pic-constants.d.mts +13 -0
- package/dist/common/pic/pic-constants.d.mts.map +1 -0
- package/dist/common/pic/pic-constants.mjs +13 -0
- package/dist/common/pic/pic-constants.mjs.map +1 -0
- package/dist/common/pic/pic-helper.d.mts +70 -0
- package/dist/common/pic/pic-helper.d.mts.map +1 -0
- package/dist/common/pic/pic-helper.mjs +235 -0
- package/dist/common/pic/pic-helper.mjs.map +1 -0
- package/dist/common/pic/pic-types.d.mts +23 -0
- package/dist/common/pic/pic-types.d.mts.map +1 -0
- package/dist/common/pic/pic-types.mjs +2 -0
- package/dist/common/pic/pic-types.mjs.map +1 -0
- package/dist/common/root/root-constants.d.mts +40 -0
- package/dist/common/root/root-constants.d.mts.map +1 -0
- package/dist/common/root/root-constants.mjs +40 -0
- package/dist/common/root/root-constants.mjs.map +1 -0
- package/dist/common/root/root-types.d.mts +9 -0
- package/dist/common/root/root-types.d.mts.map +1 -0
- package/dist/common/root/root-types.mjs +2 -0
- package/dist/common/root/root-types.mjs.map +1 -0
- package/dist/common/tag/tag-constants.d.mts +21 -0
- package/dist/common/tag/tag-constants.d.mts.map +1 -0
- package/dist/common/tag/tag-constants.mjs +28 -0
- package/dist/common/tag/tag-constants.mjs.map +1 -0
- package/dist/common/tag/tag-types.d.mts +14 -0
- package/dist/common/tag/tag-types.d.mts.map +1 -0
- package/dist/common/tag/tag-types.mjs +2 -0
- package/dist/common/tag/tag-types.mjs.map +1 -0
- package/dist/core-constants.d.mts +89 -0
- package/dist/core-constants.d.mts.map +1 -0
- package/dist/core-constants.mjs +484 -0
- package/dist/core-constants.mjs.map +1 -0
- package/dist/core-helper.d.mts +6 -0
- package/dist/core-helper.d.mts.map +1 -0
- package/dist/core-helper.mjs +28 -0
- package/dist/core-helper.mjs.map +1 -0
- package/dist/core-types.d.mts +520 -0
- package/dist/core-types.d.mts.map +1 -0
- package/dist/core-types.mjs +2 -0
- package/dist/core-types.mjs.map +1 -0
- package/dist/index.d.mts +2 -0
- package/dist/index.d.mts.map +1 -0
- package/dist/index.mjs +3 -0
- package/dist/index.mjs.map +1 -0
- package/dist/witness/app/app-base-v1.d.mts +130 -0
- package/dist/witness/app/app-base-v1.d.mts.map +1 -0
- package/dist/witness/app/app-base-v1.mjs +462 -0
- package/dist/witness/app/app-base-v1.mjs.map +1 -0
- package/dist/witness/app/app-constants.d.mts +10 -0
- package/dist/witness/app/app-constants.d.mts.map +1 -0
- package/dist/witness/app/app-constants.mjs +13 -0
- package/dist/witness/app/app-constants.mjs.map +1 -0
- package/dist/witness/app/app-helper.d.mts +85 -0
- package/dist/witness/app/app-helper.d.mts.map +1 -0
- package/dist/witness/app/app-helper.mjs +258 -0
- package/dist/witness/app/app-helper.mjs.map +1 -0
- package/dist/witness/app/app-types.d.mts +211 -0
- package/dist/witness/app/app-types.d.mts.map +1 -0
- package/dist/witness/app/app-types.mjs +49 -0
- package/dist/witness/app/app-types.mjs.map +1 -0
- package/dist/witness/app/chat-app/chat-app-types.d.mts +18 -0
- package/dist/witness/app/chat-app/chat-app-types.d.mts.map +1 -0
- package/dist/witness/app/chat-app/chat-app-types.mjs +25 -0
- package/dist/witness/app/chat-app/chat-app-types.mjs.map +1 -0
- package/dist/witness/app/flash-app/flash-app-types.d.mts +16 -0
- package/dist/witness/app/flash-app/flash-app-types.d.mts.map +1 -0
- package/dist/witness/app/flash-app/flash-app-types.mjs +23 -0
- package/dist/witness/app/flash-app/flash-app-types.mjs.map +1 -0
- package/dist/witness/app/raw-app/raw-app-types.d.mts +18 -0
- package/dist/witness/app/raw-app/raw-app-types.d.mts.map +1 -0
- package/dist/witness/app/raw-app/raw-app-types.mjs +25 -0
- package/dist/witness/app/raw-app/raw-app-types.mjs.map +1 -0
- package/dist/witness/app/todo-app/todo-app-types.d.ts +33 -0
- package/dist/witness/app/todo-app/todo-app-types.d.ts.map +1 -0
- package/dist/witness/app/todo-app/todo-app-types.js +31 -0
- package/dist/witness/app/todo-app/todo-app-types.js.map +1 -0
- package/dist/witness/robbot/robbot-base-v1.d.ts +432 -0
- package/dist/witness/robbot/robbot-base-v1.d.ts.map +1 -0
- package/dist/witness/robbot/robbot-base-v1.js +1407 -0
- package/dist/witness/robbot/robbot-base-v1.js.map +1 -0
- package/dist/witness/robbot/robbot-constants.d.mts +24 -0
- package/dist/witness/robbot/robbot-constants.d.mts.map +1 -0
- package/dist/witness/robbot/robbot-constants.mjs +24 -0
- package/dist/witness/robbot/robbot-constants.mjs.map +1 -0
- package/dist/witness/robbot/robbot-helper.d.mts +152 -0
- package/dist/witness/robbot/robbot-helper.d.mts.map +1 -0
- package/dist/witness/robbot/robbot-helper.mjs +609 -0
- package/dist/witness/robbot/robbot-helper.mjs.map +1 -0
- package/dist/witness/robbot/robbot-types.d.mts +539 -0
- package/dist/witness/robbot/robbot-types.d.mts.map +1 -0
- package/dist/witness/robbot/robbot-types.mjs +294 -0
- package/dist/witness/robbot/robbot-types.mjs.map +1 -0
- package/dist/witness/space/bootstrap/bootstrap-constants.d.mts +14 -0
- package/dist/witness/space/bootstrap/bootstrap-constants.d.mts.map +1 -0
- package/dist/witness/space/bootstrap/bootstrap-constants.mjs +15 -0
- package/dist/witness/space/bootstrap/bootstrap-constants.mjs.map +1 -0
- package/dist/witness/space/inner-space-v1.d.ts +63 -0
- package/dist/witness/space/inner-space-v1.d.ts.map +1 -0
- package/dist/witness/space/inner-space-v1.js +356 -0
- package/dist/witness/space/inner-space-v1.js.map +1 -0
- package/dist/witness/space/outer-space/outer-space-constants.d.mts +2 -0
- package/dist/witness/space/outer-space/outer-space-constants.d.mts.map +1 -0
- package/dist/witness/space/outer-space/outer-space-constants.mjs +2 -0
- package/dist/witness/space/outer-space/outer-space-constants.mjs.map +1 -0
- package/dist/witness/space/outer-space/outer-space-helper.d.mts +28 -0
- package/dist/witness/space/outer-space/outer-space-helper.d.mts.map +1 -0
- package/dist/witness/space/outer-space/outer-space-helper.mjs +87 -0
- package/dist/witness/space/outer-space/outer-space-helper.mjs.map +1 -0
- package/dist/witness/space/outer-space/outer-space-types.d.mts +548 -0
- package/dist/witness/space/outer-space/outer-space-types.d.mts.map +1 -0
- package/dist/witness/space/outer-space/outer-space-types.mjs +118 -0
- package/dist/witness/space/outer-space/outer-space-types.mjs.map +1 -0
- package/dist/witness/space/space-base-v1.d.mts +147 -0
- package/dist/witness/space/space-base-v1.d.mts.map +1 -0
- package/dist/witness/space/space-base-v1.mjs +350 -0
- package/dist/witness/space/space-base-v1.mjs.map +1 -0
- package/dist/witness/space/space-constants.d.mts +181 -0
- package/dist/witness/space/space-constants.d.mts.map +1 -0
- package/dist/witness/space/space-constants.mjs +192 -0
- package/dist/witness/space/space-constants.mjs.map +1 -0
- package/dist/witness/space/space-helper.d.mts +666 -0
- package/dist/witness/space/space-helper.d.mts.map +1 -0
- package/dist/witness/space/space-helper.mjs +2830 -0
- package/dist/witness/space/space-helper.mjs.map +1 -0
- package/dist/witness/space/space-types.d.mts +422 -0
- package/dist/witness/space/space-types.d.mts.map +1 -0
- package/dist/witness/space/space-types.mjs +52 -0
- package/dist/witness/space/space-types.mjs.map +1 -0
- package/dist/witness/witness-base-v1.d.ts +144 -0
- package/dist/witness/witness-base-v1.d.ts.map +1 -0
- package/dist/witness/witness-base-v1.js +300 -0
- package/dist/witness/witness-base-v1.js.map +1 -0
- package/dist/witness/witness-constants.d.mts +3 -0
- package/dist/witness/witness-constants.d.mts.map +1 -0
- package/dist/witness/witness-constants.mjs +3 -0
- package/dist/witness/witness-constants.mjs.map +1 -0
- package/dist/witness/witness-form-builder.d.mts +45 -0
- package/dist/witness/witness-form-builder.d.mts.map +1 -0
- package/dist/witness/witness-form-builder.mjs +95 -0
- package/dist/witness/witness-form-builder.mjs.map +1 -0
- package/dist/witness/witness-helper.d.mts +89 -0
- package/dist/witness/witness-helper.d.mts.map +1 -0
- package/dist/witness/witness-helper.mjs +229 -0
- package/dist/witness/witness-helper.mjs.map +1 -0
- package/dist/witness/witness-types.d.mts +211 -0
- package/dist/witness/witness-types.d.mts.map +1 -0
- package/dist/witness/witness-types.mjs +2 -0
- package/dist/witness/witness-types.mjs.map +1 -0
- package/jasmine-browser.json +18 -0
- package/jasmine.json +6 -0
- package/package.json +67 -0
- package/src/assumptions.spec.mts +45 -0
- package/src/common/aws-constants.mts +5 -0
- package/src/common/bin/bin-types.mts +17 -0
- package/src/common/cache/cache-types.mts +53 -0
- package/src/common/comment/comment-constants.mts +10 -0
- package/src/common/comment/comment-helper.mts +211 -0
- package/src/common/comment/comment-types.mts +19 -0
- package/src/common/display/display-helper.mts +88 -0
- package/src/common/display/display-types.mts +108 -0
- package/src/common/encrypt/encrypt-constants.mts +28 -0
- package/src/common/encrypt/encrypt-types.mts +130 -0
- package/src/common/error/error-constants.mts +8 -0
- package/src/common/error/error-helper.mts +155 -0
- package/src/common/error/error-types.mts +62 -0
- package/src/common/form/form-helper.mts +253 -0
- package/src/common/form/form-items.mts +236 -0
- package/src/common/import-export/import-export-types.mts +18 -0
- package/src/common/legacy/about-legacy.md +0 -0
- package/src/common/legacy/legacy-types.mts +0 -0
- package/src/common/link/link-constants.mts +1 -0
- package/src/common/link/link-helper.mts +155 -0
- package/src/common/link/link-types.mts +16 -0
- package/src/common/other/graph-helper.mts +853 -0
- package/src/common/other/ibgib-helper.mts +671 -0
- package/src/common/other/other-constants.mts +76 -0
- package/src/common/other/other-types.mts +186 -0
- package/src/common/other/svg-constants.mts +1 -0
- package/src/common/other/svg-helper.mts +238 -0
- package/src/common/pic/pic-constants.mts +13 -0
- package/src/common/pic/pic-helper.mts +295 -0
- package/src/common/pic/pic-types.mts +29 -0
- package/src/common/root/root-constants.mts +41 -0
- package/src/common/root/root-types.mts +8 -0
- package/src/common/tag/tag-constants.mts +34 -0
- package/src/common/tag/tag-types.mts +19 -0
- package/src/core-constants.mts +506 -0
- package/src/core-helper.mts +33 -0
- package/src/core-types.mts +519 -0
- package/src/helper.spec.mts +64 -0
- package/src/index.mts +1 -0
- package/src/witness/app/app-base-v1.mts +584 -0
- package/src/witness/app/app-constants.mts +16 -0
- package/src/witness/app/app-helper.mts +322 -0
- package/src/witness/app/app-types.mts +252 -0
- package/src/witness/app/chat-app/chat-app-types.mts +40 -0
- package/src/witness/app/flash-app/flash-app-types.mts +38 -0
- package/src/witness/app/raw-app/raw-app-types.mts +40 -0
- package/src/witness/app/todo-app/todo-app-types.ts +59 -0
- package/src/witness/robbot/robbot-base-v1.ts +1531 -0
- package/src/witness/robbot/robbot-constants.mts +25 -0
- package/src/witness/robbot/robbot-helper.mts +676 -0
- package/src/witness/robbot/robbot-helper.spec.mts +135 -0
- package/src/witness/robbot/robbot-types.mts +797 -0
- package/src/witness/space/bootstrap/bootstrap-constants.mts +15 -0
- package/src/witness/space/inner-space-v1.ts +372 -0
- package/src/witness/space/outer-space/outer-space-constants.mts +1 -0
- package/src/witness/space/outer-space/outer-space-helper.mts +91 -0
- package/src/witness/space/outer-space/outer-space-types.mts +627 -0
- package/src/witness/space/space-base-v1.mts +414 -0
- package/src/witness/space/space-constants.mts +208 -0
- package/src/witness/space/space-helper.mts +3242 -0
- package/src/witness/space/space-types.mts +476 -0
- package/src/witness/witness-base-v1.ts +325 -0
- package/src/witness/witness-constants.mts +2 -0
- package/src/witness/witness-form-builder.mts +128 -0
- package/src/witness/witness-helper.mts +256 -0
- package/src/witness/witness-types.mts +249 -0
- package/tsconfig.json +15 -0
- package/tsconfig.test.json +10 -0
|
@@ -0,0 +1,256 @@
|
|
|
1
|
+
import { CLASSNAME_REGEXP } from '@ibgib/helper-gib';
|
|
2
|
+
import { Ib } from '@ibgib/ts-gib';
|
|
3
|
+
import {
|
|
4
|
+
IbGib_V1, IbGibRel8ns_V1, Factory_V1 as factory, sha256v1,
|
|
5
|
+
} from '@ibgib/ts-gib/dist/V1/index.mjs';
|
|
6
|
+
|
|
7
|
+
import { GLOBAL_LOG_A_LOT } from '../core-constants.mjs';
|
|
8
|
+
import { WITNESS_ARG_METADATA_STRING, WITNESS_RESULT_METADATA_STRING } from './witness-constants.mjs';
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
const logalot = GLOBAL_LOG_A_LOT || false;
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Builds the ib for the witness arg ibgib.
|
|
15
|
+
*
|
|
16
|
+
* @returns ib that we'll use when creating a witness arg.
|
|
17
|
+
*/
|
|
18
|
+
export function getArgIb(ibMetadata: string | undefined): string {
|
|
19
|
+
const lc = `[${getArgIb.name}]`;
|
|
20
|
+
try {
|
|
21
|
+
const ib = ibMetadata ?
|
|
22
|
+
`${WITNESS_ARG_METADATA_STRING} ${ibMetadata}` :
|
|
23
|
+
WITNESS_ARG_METADATA_STRING;
|
|
24
|
+
if (logalot) { console.log(`${lc} ${ib}`); }
|
|
25
|
+
return ib;
|
|
26
|
+
} catch (error) {
|
|
27
|
+
console.error(`${lc} ${error.message}`);
|
|
28
|
+
throw error;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* helper function that checks if an incoming `ib` or `ibGib.ib` indicates that
|
|
34
|
+
* it is an arg ibGib used with witnesses.
|
|
35
|
+
*
|
|
36
|
+
* ## notes
|
|
37
|
+
* * atow, this basically just checks to see if it starts with
|
|
38
|
+
* `WITNESS_ARG_METADATA_STRING` (`witness_arg`).
|
|
39
|
+
*
|
|
40
|
+
* @throws if neither `ib` nor `ibGib` are provided.
|
|
41
|
+
*
|
|
42
|
+
* @returns true if the ib/ibGib.ib indicates an arg ibgib, else false
|
|
43
|
+
*
|
|
44
|
+
* @see {@link argy_}
|
|
45
|
+
*/
|
|
46
|
+
export function isArg({
|
|
47
|
+
ib,
|
|
48
|
+
ibGib,
|
|
49
|
+
}: {
|
|
50
|
+
ib?: Ib,
|
|
51
|
+
ibGib?: IbGib_V1,
|
|
52
|
+
}): boolean {
|
|
53
|
+
const lc = `[${isArg.name}]`;
|
|
54
|
+
try {
|
|
55
|
+
if (logalot) { console.log(`${lc} starting...`); }
|
|
56
|
+
|
|
57
|
+
if (!ib) {
|
|
58
|
+
if (ibGib) {
|
|
59
|
+
ib = ibGib.ib;
|
|
60
|
+
} else {
|
|
61
|
+
throw new Error(`either ib or ibGib required (E: c052a9d76df867626f9ba17141cdce22)`);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
return ib.startsWith(WITNESS_ARG_METADATA_STRING);
|
|
66
|
+
} catch (error) {
|
|
67
|
+
console.error(`${lc} ${error.message}`);
|
|
68
|
+
throw error;
|
|
69
|
+
} finally {
|
|
70
|
+
if (logalot) { console.log(`${lc} complete.`); }
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* Builds the ib for the witness result ibgib.
|
|
76
|
+
*
|
|
77
|
+
* @returns ib that we'll use when creating a witness result.
|
|
78
|
+
*/
|
|
79
|
+
export function getResultIb(ibMetadata: string | undefined): string {
|
|
80
|
+
const lc = `[${getResultIb.name}]`;
|
|
81
|
+
try {
|
|
82
|
+
const ib = ibMetadata ?
|
|
83
|
+
`${WITNESS_RESULT_METADATA_STRING} ${ibMetadata}` :
|
|
84
|
+
WITNESS_RESULT_METADATA_STRING;
|
|
85
|
+
if (logalot) { console.log(`${lc} ${ib}`); }
|
|
86
|
+
return ib;
|
|
87
|
+
} catch (error) {
|
|
88
|
+
console.error(`${lc} ${error.message}`);
|
|
89
|
+
throw error;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* helper function that checks if an incoming `ib` or `ibGib.ib` indicates that
|
|
95
|
+
* it is a result ibGib used with witnesses.
|
|
96
|
+
*
|
|
97
|
+
* ## notes
|
|
98
|
+
* * atow, this basically just checks to see if it starts with
|
|
99
|
+
* `WITNESS_ARG_METADATA_STRING` (`witness_arg`).
|
|
100
|
+
*
|
|
101
|
+
* @throws if neither `ib` nor `ibGib` are provided.
|
|
102
|
+
*
|
|
103
|
+
* @returns true if the ib/ibGib.ib indicates a result ibgib, else false
|
|
104
|
+
*
|
|
105
|
+
* @see {@link resulty_}
|
|
106
|
+
*/
|
|
107
|
+
export function isResult({
|
|
108
|
+
ib,
|
|
109
|
+
ibGib,
|
|
110
|
+
}: {
|
|
111
|
+
ib?: Ib,
|
|
112
|
+
ibGib?: IbGib_V1,
|
|
113
|
+
}): boolean {
|
|
114
|
+
const lc = `[${isResult.name}]`;
|
|
115
|
+
try {
|
|
116
|
+
if (logalot) { console.log(`${lc} starting...`); }
|
|
117
|
+
|
|
118
|
+
if (!ib) {
|
|
119
|
+
if (ibGib) {
|
|
120
|
+
ib = ibGib.ib;
|
|
121
|
+
} else {
|
|
122
|
+
throw new Error(`either ib or ibGib required (E: 7d32a54825764d8ea72a8a38cac14224)`);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
return ib.startsWith(WITNESS_RESULT_METADATA_STRING);
|
|
127
|
+
} catch (error) {
|
|
128
|
+
console.error(`${lc} ${error.message}`);
|
|
129
|
+
throw error;
|
|
130
|
+
} finally {
|
|
131
|
+
if (logalot) { console.log(`${lc} complete.`); }
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* This builds the arg ibGib for a witness function.
|
|
136
|
+
*
|
|
137
|
+
* By default, this is considered a one-off ibGib. As such,
|
|
138
|
+
* there is no dna and no uuid. The timestamp will be included, which
|
|
139
|
+
* adds some metadata (and makes for a most-often unique tjp). If there
|
|
140
|
+
* is something that needs to reference this result, it can use the
|
|
141
|
+
* the ibgib's address.
|
|
142
|
+
*
|
|
143
|
+
* @returns Result (wrapper) ibGib for a `witness` function.
|
|
144
|
+
*/
|
|
145
|
+
export async function argy_<
|
|
146
|
+
TArgData,
|
|
147
|
+
TArgRel8ns extends IbGibRel8ns_V1,
|
|
148
|
+
TArgIbGib extends IbGib_V1<TArgData, TArgRel8ns
|
|
149
|
+
> = IbGib_V1<TArgData, TArgRel8ns>>({
|
|
150
|
+
argData,
|
|
151
|
+
ibMetadata,
|
|
152
|
+
noTimestamp,
|
|
153
|
+
}: {
|
|
154
|
+
argData: TArgData,
|
|
155
|
+
ibMetadata?: string,
|
|
156
|
+
noTimestamp?: boolean,
|
|
157
|
+
}): Promise<TArgIbGib> {
|
|
158
|
+
const lc = `[${argy_.name}]`;
|
|
159
|
+
try {
|
|
160
|
+
const resArgIbGib = await factory.firstGen<TArgData>({
|
|
161
|
+
ib: getArgIb(ibMetadata),
|
|
162
|
+
parentIbGib: factory.primitive({ ib: WITNESS_ARG_METADATA_STRING }),
|
|
163
|
+
data: argData,
|
|
164
|
+
dna: false,
|
|
165
|
+
noTimestamp,
|
|
166
|
+
});
|
|
167
|
+
if (resArgIbGib.newIbGib) {
|
|
168
|
+
const { newIbGib: resultIbGib } = resArgIbGib;
|
|
169
|
+
|
|
170
|
+
// clear out past, disregard any intermediate ibgibs.
|
|
171
|
+
resultIbGib.rel8ns!.past = [];
|
|
172
|
+
|
|
173
|
+
resultIbGib.gib = await sha256v1(resultIbGib);
|
|
174
|
+
|
|
175
|
+
return (resultIbGib as TArgIbGib);
|
|
176
|
+
} else {
|
|
177
|
+
throw new Error(`create ibGib failed`);
|
|
178
|
+
}
|
|
179
|
+
} catch (error) {
|
|
180
|
+
console.error(`${lc} ${error.message}`);
|
|
181
|
+
throw error;
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
/**
|
|
186
|
+
* This builds the result ibGib for a witness function.
|
|
187
|
+
*
|
|
188
|
+
* By default, the result is considered a one-off ibGib. As such,
|
|
189
|
+
* there is no dna and no uuid. The timestamp will be included, which
|
|
190
|
+
* adds some metadata (and makes for a most-often unique tjp). If there
|
|
191
|
+
* is something that needs to reference this result, it can use the
|
|
192
|
+
* the ibgib's address.
|
|
193
|
+
*
|
|
194
|
+
* @returns Result (wrapper) ibGib for a `witness` function.
|
|
195
|
+
*/
|
|
196
|
+
export async function resulty_<TResultData, TResultIbGib extends IbGib_V1<TResultData> = IbGib_V1<TResultData>>({
|
|
197
|
+
resultData,
|
|
198
|
+
ibMetadata,
|
|
199
|
+
noTimestamp,
|
|
200
|
+
}: {
|
|
201
|
+
resultData: TResultData,
|
|
202
|
+
ibMetadata?: string,
|
|
203
|
+
noTimestamp?: boolean,
|
|
204
|
+
}): Promise<TResultIbGib> {
|
|
205
|
+
const lc = `[${resulty_.name}]`;
|
|
206
|
+
try {
|
|
207
|
+
const resResultIbGib = await factory.firstGen<TResultData>({
|
|
208
|
+
ib: getResultIb(ibMetadata),
|
|
209
|
+
parentIbGib: factory.primitive({ ib: WITNESS_RESULT_METADATA_STRING }),
|
|
210
|
+
data: resultData,
|
|
211
|
+
dna: false,
|
|
212
|
+
noTimestamp,
|
|
213
|
+
});
|
|
214
|
+
if (resResultIbGib?.newIbGib) {
|
|
215
|
+
const { newIbGib: resultIbGib } = resResultIbGib;
|
|
216
|
+
|
|
217
|
+
// clear out past, disregard any intermediate ibgibs.
|
|
218
|
+
resultIbGib.rel8ns!.past = [];
|
|
219
|
+
|
|
220
|
+
resultIbGib.gib = await sha256v1(resultIbGib);
|
|
221
|
+
|
|
222
|
+
return resultIbGib as TResultIbGib;
|
|
223
|
+
} else {
|
|
224
|
+
throw new Error(`create ibGib failed`);
|
|
225
|
+
}
|
|
226
|
+
} catch (error) {
|
|
227
|
+
console.error(`${lc} ${error.message}`);
|
|
228
|
+
throw error;
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
/**
|
|
233
|
+
* If valid, returns null.
|
|
234
|
+
*/
|
|
235
|
+
export function validateWitnessClassname({
|
|
236
|
+
classname,
|
|
237
|
+
}: {
|
|
238
|
+
classname: string,
|
|
239
|
+
}): string | null {
|
|
240
|
+
const lc = `[${validateWitnessClassname.name}]`;
|
|
241
|
+
try {
|
|
242
|
+
if (logalot) { console.log(`${lc} starting...`); }
|
|
243
|
+
if (!classname) { throw new Error(`classname required (E: b1c7b455d58fdd8d77acd15bdf017722)`); }
|
|
244
|
+
|
|
245
|
+
if (!classname.match(CLASSNAME_REGEXP)) {
|
|
246
|
+
return `classname (${classname}) must match regex ${CLASSNAME_REGEXP}`;
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
return null;
|
|
250
|
+
} catch (error) {
|
|
251
|
+
console.error(`${lc} ${error.message}`);
|
|
252
|
+
throw error;
|
|
253
|
+
} finally {
|
|
254
|
+
if (logalot) { console.log(`${lc} complete.`); }
|
|
255
|
+
}
|
|
256
|
+
}
|
|
@@ -0,0 +1,249 @@
|
|
|
1
|
+
import { IbGibRel8ns_V1, IbGib_V1 } from '@ibgib/ts-gib/dist/V1/index.mjs';
|
|
2
|
+
import { IbGib, IbGibWithDataAndRel8ns, IbGibRel8ns, IbGibAddr } from '@ibgib/ts-gib';
|
|
3
|
+
import { ErrorIbGib_V1 } from '../common/error/error-types.mjs';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* A witness is a lot like an ibGib analog for a function.
|
|
7
|
+
* Now remember in FP, a function takes a single arg, and
|
|
8
|
+
* multiple args are actually reified single-arg functions
|
|
9
|
+
* that are curried.
|
|
10
|
+
*
|
|
11
|
+
* So an ibGib witness is an ibGib that has a single function: `witness`.
|
|
12
|
+
* What can it witness? Another ibGib. What does it return? An ibGib.
|
|
13
|
+
*
|
|
14
|
+
* ## notes
|
|
15
|
+
*
|
|
16
|
+
* I'm not smart enough to descend this from just IbGib, so I'm doing
|
|
17
|
+
* IbGibwithDataAndRel8ns. This is more of a convenience anyway.
|
|
18
|
+
*/
|
|
19
|
+
export interface Witness<
|
|
20
|
+
TIbGibIn extends IbGib,
|
|
21
|
+
TIbGibOut extends IbGib,
|
|
22
|
+
TData = any,
|
|
23
|
+
TRel8ns extends IbGibRel8ns = IbGibRel8ns,
|
|
24
|
+
>
|
|
25
|
+
extends IbGibWithDataAndRel8ns<TData, TRel8ns> {
|
|
26
|
+
witness(arg: TIbGibIn): Promise<TIbGibOut | undefined>;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Data that corresponds to all witnesses being implemented in V1.
|
|
31
|
+
*
|
|
32
|
+
* This should be expanded only sparingly, and all properties should be optional.
|
|
33
|
+
*/
|
|
34
|
+
export interface WitnessData_V1 {
|
|
35
|
+
/**
|
|
36
|
+
* @optional string for tracking version control of witness.
|
|
37
|
+
*/
|
|
38
|
+
version?: string;
|
|
39
|
+
/**
|
|
40
|
+
* @optional Name for the witness.
|
|
41
|
+
*/
|
|
42
|
+
name?: string;
|
|
43
|
+
/**
|
|
44
|
+
* @optional classname of the witness.
|
|
45
|
+
*/
|
|
46
|
+
classname?: string;
|
|
47
|
+
/**
|
|
48
|
+
* @optional description of the witness.
|
|
49
|
+
*/
|
|
50
|
+
description?: string;
|
|
51
|
+
/**
|
|
52
|
+
* @optional
|
|
53
|
+
*
|
|
54
|
+
* If true, then this will allow primitive args when validating incoming
|
|
55
|
+
* args.
|
|
56
|
+
*
|
|
57
|
+
* so if you want a witness to be able to witness, e.g., "16816^gib", then
|
|
58
|
+
* set this to truthy. Otherwise, this will flag this as a validation error.
|
|
59
|
+
*/
|
|
60
|
+
allowPrimitiveArgs?: boolean;
|
|
61
|
+
/**
|
|
62
|
+
* If true, any calls to `witness` should have the opt and result ibGibs
|
|
63
|
+
* persisted, regardless of what the actual opt/result is. This is
|
|
64
|
+
* ultimately up to the witness itself though.
|
|
65
|
+
*
|
|
66
|
+
* This is like providing a persistent logging feature for the witness
|
|
67
|
+
* itself, as opposed to ephemeral logging via {@link trace}.
|
|
68
|
+
*
|
|
69
|
+
* ## implementation
|
|
70
|
+
*
|
|
71
|
+
* In the case of V1, WitnessBase_V1<...> has an empty function
|
|
72
|
+
*/
|
|
73
|
+
persistOptsAndResultIbGibs?: boolean;
|
|
74
|
+
/**
|
|
75
|
+
* @optional
|
|
76
|
+
*
|
|
77
|
+
* "Should" be a unique identifier for the witness.
|
|
78
|
+
*/
|
|
79
|
+
uuid?: string;
|
|
80
|
+
/**
|
|
81
|
+
* @optional configuration for `witness` call.
|
|
82
|
+
*
|
|
83
|
+
* If true, then this space will not catch an error in `witnessImpl`
|
|
84
|
+
* function.
|
|
85
|
+
*
|
|
86
|
+
* ## notes
|
|
87
|
+
*
|
|
88
|
+
* Descendants of Witness who don't override the base `witness` function
|
|
89
|
+
* (but rather override `witnessImpl` as expected) don't need to check
|
|
90
|
+
* for this explicitly, since it is referenced in the base `witness`
|
|
91
|
+
* function implementation.
|
|
92
|
+
*/
|
|
93
|
+
catchAllErrors?: boolean;
|
|
94
|
+
/**
|
|
95
|
+
* @optional arg for verbose logging.
|
|
96
|
+
*
|
|
97
|
+
* Space implementations can check this value directly, or if
|
|
98
|
+
* they descend from `WitnessBase`, then there is a property
|
|
99
|
+
* that safely navigates this value.
|
|
100
|
+
*/
|
|
101
|
+
trace?: boolean;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
/**
|
|
105
|
+
* marker interface atm
|
|
106
|
+
*/
|
|
107
|
+
export interface WitnessRel8ns_V1 extends IbGibRel8ns_V1 {
|
|
108
|
+
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
/**
|
|
112
|
+
* This interface simply types our data and rel8ns to V1 style.
|
|
113
|
+
*/
|
|
114
|
+
export interface Witness_V1<
|
|
115
|
+
TDataIn extends any,
|
|
116
|
+
TRel8nsIn extends IbGibRel8ns_V1,
|
|
117
|
+
TIbGibIn extends IbGib_V1<TDataIn, TRel8nsIn>,
|
|
118
|
+
TDataOut extends any,
|
|
119
|
+
TRel8nsOut extends IbGibRel8ns_V1,
|
|
120
|
+
TIbGibOut extends IbGib_V1<TDataOut, TRel8nsOut> | ErrorIbGib_V1,
|
|
121
|
+
TData extends WitnessData_V1 = any,
|
|
122
|
+
TRel8ns extends WitnessRel8ns_V1 = WitnessRel8ns_V1,
|
|
123
|
+
>
|
|
124
|
+
extends Witness<TIbGibIn, TIbGibOut, TData, TRel8ns> {
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
|
|
128
|
+
/**
|
|
129
|
+
* Base information for cmd with optional modifiers to interact with a witness.
|
|
130
|
+
*
|
|
131
|
+
* Note that it is not necessary for a witness to listen to these types of
|
|
132
|
+
* ibgibs, this is just convenient plumbing for those who wish to listen to
|
|
133
|
+
* command-style ibgibs.
|
|
134
|
+
*/
|
|
135
|
+
export interface WitnessCmdData<TCmds, TCmdModifiers> {
|
|
136
|
+
/**
|
|
137
|
+
* Not really in use atm, but will use in the future.
|
|
138
|
+
*/
|
|
139
|
+
version?: string;
|
|
140
|
+
/**
|
|
141
|
+
* The `cmd` property is the name of the command, analogous to a function
|
|
142
|
+
* name.
|
|
143
|
+
*/
|
|
144
|
+
cmd: TCmds | string;
|
|
145
|
+
/**
|
|
146
|
+
* Optional modifier flag(s) to the command.
|
|
147
|
+
*
|
|
148
|
+
* ## notes
|
|
149
|
+
*
|
|
150
|
+
* An implementing class can always use/extend these or extend the interface
|
|
151
|
+
* of the options data.
|
|
152
|
+
*/
|
|
153
|
+
cmdModifiers?: (TCmdModifiers | string)[];
|
|
154
|
+
/**
|
|
155
|
+
* Addrs of ibgibs to get/delete
|
|
156
|
+
*/
|
|
157
|
+
ibGibAddrs?: IbGibAddr[];
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
export interface WitnessCmdRel8ns extends IbGibRel8ns_V1 {
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
export interface WitnessCmdIbGib<
|
|
164
|
+
TIbGib extends IbGib,
|
|
165
|
+
TCmds, TCmdModifiers,
|
|
166
|
+
TCmdData extends WitnessCmdData<TCmds, TCmdModifiers>,
|
|
167
|
+
TCmdRel8ns extends WitnessCmdRel8ns,
|
|
168
|
+
> extends IbGib_V1<TCmdData, TCmdRel8ns> {
|
|
169
|
+
/**
|
|
170
|
+
* When putting ibGibs, we don't want to persist the entire graph in the
|
|
171
|
+
* data object. So these ibGibs live on the ibGib arg object itself.
|
|
172
|
+
*
|
|
173
|
+
* If only ibGibs are passed in, and not their corresponding ibGibAddrs in
|
|
174
|
+
* the `TOptsData`, then you can't confirm cryptographically if the ibGibs
|
|
175
|
+
* are legit. But if you include their corresponding ibGibAddrs in that
|
|
176
|
+
* data, then the space can confirm that the ibGibs have not been altered
|
|
177
|
+
* from the expected cryptographic audit trail.
|
|
178
|
+
*
|
|
179
|
+
* This doesn't mean that the ibGibs are kosher completely, but at least
|
|
180
|
+
* there is internal agreement and an audit trail.
|
|
181
|
+
*
|
|
182
|
+
* ## example
|
|
183
|
+
*
|
|
184
|
+
* For an example, check out sync space saga
|
|
185
|
+
*/
|
|
186
|
+
ibGibs?: TIbGib[];
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
|
|
190
|
+
export interface WitnessResultData {
|
|
191
|
+
/**
|
|
192
|
+
* The address of the options ibGib that corresponds this space result.
|
|
193
|
+
*
|
|
194
|
+
* So if you called `space.witness(opts)` which produced this result, this is
|
|
195
|
+
* `getIbGibAddr({ibGib: opts})`.
|
|
196
|
+
*
|
|
197
|
+
* Perhaps I should have this as a rel8n on the actual result ibGib instead of here
|
|
198
|
+
* in the data.
|
|
199
|
+
*/
|
|
200
|
+
optsAddr: IbGibAddr;
|
|
201
|
+
/**
|
|
202
|
+
* true if the operation executed successfully.
|
|
203
|
+
*
|
|
204
|
+
* If this is a `canGet` or `canPut` `cmd`, this does NOT indicate if you
|
|
205
|
+
* can or can't. For that, see the `can` property of this interface.
|
|
206
|
+
*/
|
|
207
|
+
success?: boolean;
|
|
208
|
+
/**
|
|
209
|
+
* Any error messages go here. If this is populated, then the `success`
|
|
210
|
+
* *should* be false (but obvious the interface can't guarantee implementation).
|
|
211
|
+
*/
|
|
212
|
+
errors?: string[];
|
|
213
|
+
/**
|
|
214
|
+
* Any warnings that don't cause this operation to explicitly fail, i.e. `errors`
|
|
215
|
+
* is falsy/empty.
|
|
216
|
+
*/
|
|
217
|
+
warnings?: string[];
|
|
218
|
+
/**
|
|
219
|
+
* If getting address(es), they will be here.
|
|
220
|
+
*/
|
|
221
|
+
addrs?: IbGibAddr[];
|
|
222
|
+
/**
|
|
223
|
+
* Addresses for ibGibs which had errors.
|
|
224
|
+
*/
|
|
225
|
+
addrsErrored?: IbGibAddr[];
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
export interface WitnessResultRel8ns extends IbGibRel8ns_V1 { }
|
|
229
|
+
|
|
230
|
+
/**
|
|
231
|
+
* Optional witness result ibgib interface.
|
|
232
|
+
*
|
|
233
|
+
* You do NOT have to use this class when returning results for witness ibgibs.
|
|
234
|
+
* This is provided as convenience plumbing for when you do want a standard-ish
|
|
235
|
+
* special result ibgib.
|
|
236
|
+
*/
|
|
237
|
+
export interface WitnessResultIbGib<
|
|
238
|
+
TIbGib extends IbGib,
|
|
239
|
+
TResultData extends WitnessResultData,
|
|
240
|
+
TResultRel8ns extends WitnessResultRel8ns
|
|
241
|
+
>
|
|
242
|
+
extends IbGibWithDataAndRel8ns<TResultData, TResultRel8ns> {
|
|
243
|
+
|
|
244
|
+
/**
|
|
245
|
+
* When expecting ibGibs back, we don't want to persist the graph. So this property of
|
|
246
|
+
* ibGibs lives on the ibGib result object, but not in the `data` property.
|
|
247
|
+
*/
|
|
248
|
+
ibGibs?: TIbGib[];
|
|
249
|
+
}
|
package/tsconfig.json
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"extends": "../../tsconfig.base.json",
|
|
3
|
+
"compilerOptions": {
|
|
4
|
+
"declaration": true, /* Generates corresponding '.d.ts' file. */
|
|
5
|
+
"declarationMap": true, /* Generates a sourcemap for each corresponding '.d.ts' file. */
|
|
6
|
+
"sourceMap": true, /* Generates corresponding '.map' file. */
|
|
7
|
+
"rootDir": "./src", /* Specify the root directory of input files. Use to control the output directory structure with --outDir. */
|
|
8
|
+
"composite": true, /* Enable project compilation */
|
|
9
|
+
"outDir": "./dist", /* Redirect output structure to the directory. */
|
|
10
|
+
"module": "ESNext", /* https://www.typescriptlang.org/docs/handbook/esm-node.html */
|
|
11
|
+
},
|
|
12
|
+
"exclude": [
|
|
13
|
+
"**/*.spec.mts"
|
|
14
|
+
]
|
|
15
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
{
|
|
2
|
+
"extends": "./tsconfig.json",
|
|
3
|
+
"compilerOptions": {
|
|
4
|
+
"outDir": "./dist", /* Redirect output structure to the directory. */
|
|
5
|
+
"module": "ESNext", /* https://www.typescriptlang.org/docs/handbook/esm-node.html */
|
|
6
|
+
},
|
|
7
|
+
"exclude": [
|
|
8
|
+
// override inherited exclude of spec files
|
|
9
|
+
]
|
|
10
|
+
}
|