@ibgib/node-gib 0.0.2

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 (127) hide show
  1. package/.ibgibignore +30 -0
  2. package/CHANGELOG.md +18 -0
  3. package/README.md +16 -0
  4. package/dist/assumptions.respec.d.mts +2 -0
  5. package/dist/assumptions.respec.d.mts.map +1 -0
  6. package/dist/assumptions.respec.mjs +41 -0
  7. package/dist/assumptions.respec.mjs.map +1 -0
  8. package/dist/common/prompt-functions.d.mts +89 -0
  9. package/dist/common/prompt-functions.d.mts.map +1 -0
  10. package/dist/common/prompt-functions.mjs +418 -0
  11. package/dist/common/prompt-functions.mjs.map +1 -0
  12. package/dist/constants.d.mts +3 -0
  13. package/dist/constants.d.mts.map +1 -0
  14. package/dist/constants.mjs +3 -0
  15. package/dist/constants.mjs.map +1 -0
  16. package/dist/foo.d.mts +2 -0
  17. package/dist/foo.d.mts.map +1 -0
  18. package/dist/foo.mjs +19 -0
  19. package/dist/foo.mjs.map +1 -0
  20. package/dist/helpers.d.mts +2 -0
  21. package/dist/helpers.d.mts.map +1 -0
  22. package/dist/helpers.mjs +3 -0
  23. package/dist/helpers.mjs.map +1 -0
  24. package/dist/respec-gib.node.d.mts +2 -0
  25. package/dist/respec-gib.node.d.mts.map +1 -0
  26. package/dist/respec-gib.node.mjs +213 -0
  27. package/dist/respec-gib.node.mjs.map +1 -0
  28. package/dist/spec-helper.node.respec.d.mts +13 -0
  29. package/dist/spec-helper.node.respec.d.mts.map +1 -0
  30. package/dist/spec-helper.node.respec.mjs +50 -0
  31. package/dist/spec-helper.node.respec.mjs.map +1 -0
  32. package/dist/types.d.mts +2 -0
  33. package/dist/types.d.mts.map +1 -0
  34. package/dist/types.mjs +2 -0
  35. package/dist/types.mjs.map +1 -0
  36. package/dist/witness/space/metaspace/metaspace-nodespace/metaspace-nodespace-helper.d.mts +35 -0
  37. package/dist/witness/space/metaspace/metaspace-nodespace/metaspace-nodespace-helper.d.mts.map +1 -0
  38. package/dist/witness/space/metaspace/metaspace-nodespace/metaspace-nodespace-helper.mjs +267 -0
  39. package/dist/witness/space/metaspace/metaspace-nodespace/metaspace-nodespace-helper.mjs.map +1 -0
  40. package/dist/witness/space/metaspace/metaspace-nodespace/metaspace-nodespace.d.mts +98 -0
  41. package/dist/witness/space/metaspace/metaspace-nodespace/metaspace-nodespace.d.mts.map +1 -0
  42. package/dist/witness/space/metaspace/metaspace-nodespace/metaspace-nodespace.mjs +160 -0
  43. package/dist/witness/space/metaspace/metaspace-nodespace/metaspace-nodespace.mjs.map +1 -0
  44. package/dist/witness/space/node-filesystem-space/node-filesystem-space-helper.d.mts +42 -0
  45. package/dist/witness/space/node-filesystem-space/node-filesystem-space-helper.d.mts.map +1 -0
  46. package/dist/witness/space/node-filesystem-space/node-filesystem-space-helper.mjs +312 -0
  47. package/dist/witness/space/node-filesystem-space/node-filesystem-space-helper.mjs.map +1 -0
  48. package/dist/witness/space/node-filesystem-space/node-filesystem-space-types.d.mts +84 -0
  49. package/dist/witness/space/node-filesystem-space/node-filesystem-space-types.d.mts.map +1 -0
  50. package/dist/witness/space/node-filesystem-space/node-filesystem-space-types.mjs +65 -0
  51. package/dist/witness/space/node-filesystem-space/node-filesystem-space-types.mjs.map +1 -0
  52. package/dist/witness/space/node-filesystem-space/node-filesystem-space-v1.d.mts +77 -0
  53. package/dist/witness/space/node-filesystem-space/node-filesystem-space-v1.d.mts.map +1 -0
  54. package/dist/witness/space/node-filesystem-space/node-filesystem-space-v1.mjs +672 -0
  55. package/dist/witness/space/node-filesystem-space/node-filesystem-space-v1.mjs.map +1 -0
  56. package/dist/witness/space/node-filesystem-space/node-indexed-filesystem-space/node-indexed-filesystem-space-constants.d.mts +5 -0
  57. package/dist/witness/space/node-filesystem-space/node-indexed-filesystem-space/node-indexed-filesystem-space-constants.d.mts.map +1 -0
  58. package/dist/witness/space/node-filesystem-space/node-indexed-filesystem-space/node-indexed-filesystem-space-constants.mjs +5 -0
  59. package/dist/witness/space/node-filesystem-space/node-indexed-filesystem-space/node-indexed-filesystem-space-constants.mjs.map +1 -0
  60. package/dist/witness/space/node-filesystem-space/node-indexed-filesystem-space/node-indexed-filesystem-space-types.d.mts +30 -0
  61. package/dist/witness/space/node-filesystem-space/node-indexed-filesystem-space/node-indexed-filesystem-space-types.d.mts.map +1 -0
  62. package/dist/witness/space/node-filesystem-space/node-indexed-filesystem-space/node-indexed-filesystem-space-types.mjs +38 -0
  63. package/dist/witness/space/node-filesystem-space/node-indexed-filesystem-space/node-indexed-filesystem-space-types.mjs.map +1 -0
  64. package/dist/witness/space/node-filesystem-space/node-indexed-filesystem-space/node-indexed-filesystem-space-v1.d.mts +64 -0
  65. package/dist/witness/space/node-filesystem-space/node-indexed-filesystem-space/node-indexed-filesystem-space-v1.d.mts.map +1 -0
  66. package/dist/witness/space/node-filesystem-space/node-indexed-filesystem-space/node-indexed-filesystem-space-v1.mjs +353 -0
  67. package/dist/witness/space/node-filesystem-space/node-indexed-filesystem-space/node-indexed-filesystem-space-v1.mjs.map +1 -0
  68. package/dist/witness/space/node-filesystem-space/node-indexed-filesystem-space/respec/testSpace_createAndInit.node-indexed-filesystem-space-v1.respec.d.mts +2 -0
  69. package/dist/witness/space/node-filesystem-space/node-indexed-filesystem-space/respec/testSpace_createAndInit.node-indexed-filesystem-space-v1.respec.d.mts.map +1 -0
  70. package/dist/witness/space/node-filesystem-space/node-indexed-filesystem-space/respec/testSpace_createAndInit.node-indexed-filesystem-space-v1.respec.mjs +52 -0
  71. package/dist/witness/space/node-filesystem-space/node-indexed-filesystem-space/respec/testSpace_createAndInit.node-indexed-filesystem-space-v1.respec.mjs.map +1 -0
  72. package/dist/witness/space/node-filesystem-space/node-indexed-filesystem-space/respec/testSpace_persistTransformResult.node-indexed-filesystem-space-v1.respec.d.mts +2 -0
  73. package/dist/witness/space/node-filesystem-space/node-indexed-filesystem-space/respec/testSpace_persistTransformResult.node-indexed-filesystem-space-v1.respec.d.mts.map +1 -0
  74. package/dist/witness/space/node-filesystem-space/node-indexed-filesystem-space/respec/testSpace_persistTransformResult.node-indexed-filesystem-space-v1.respec.mjs +53 -0
  75. package/dist/witness/space/node-filesystem-space/node-indexed-filesystem-space/respec/testSpace_persistTransformResult.node-indexed-filesystem-space-v1.respec.mjs.map +1 -0
  76. package/dist/witness/space/node-filesystem-space/node-indexed-filesystem-space/respec/testSpace_putGetDelete.node-indexed-filesystem-space-v1.respec.d.mts +2 -0
  77. package/dist/witness/space/node-filesystem-space/node-indexed-filesystem-space/respec/testSpace_putGetDelete.node-indexed-filesystem-space-v1.respec.d.mts.map +1 -0
  78. package/dist/witness/space/node-filesystem-space/node-indexed-filesystem-space/respec/testSpace_putGetDelete.node-indexed-filesystem-space-v1.respec.mjs +59 -0
  79. package/dist/witness/space/node-filesystem-space/node-indexed-filesystem-space/respec/testSpace_putGetDelete.node-indexed-filesystem-space-v1.respec.mjs.map +1 -0
  80. package/dist/witness/space/node-filesystem-space/node-indexed-filesystem-space/respec/testSpace_registerNewIbGib_GetLatest.node-indexed-filesystem-space-v1.respec.d.mts +2 -0
  81. package/dist/witness/space/node-filesystem-space/node-indexed-filesystem-space/respec/testSpace_registerNewIbGib_GetLatest.node-indexed-filesystem-space-v1.respec.d.mts.map +1 -0
  82. package/dist/witness/space/node-filesystem-space/node-indexed-filesystem-space/respec/testSpace_registerNewIbGib_GetLatest.node-indexed-filesystem-space-v1.respec.mjs +55 -0
  83. package/dist/witness/space/node-filesystem-space/node-indexed-filesystem-space/respec/testSpace_registerNewIbGib_GetLatest.node-indexed-filesystem-space-v1.respec.mjs.map +1 -0
  84. package/dist/witness/space/node-filesystem-space/respec/testSpace_createAndInit.node-filesystem-space-v1.respec.d.mts +2 -0
  85. package/dist/witness/space/node-filesystem-space/respec/testSpace_createAndInit.node-filesystem-space-v1.respec.d.mts.map +1 -0
  86. package/dist/witness/space/node-filesystem-space/respec/testSpace_createAndInit.node-filesystem-space-v1.respec.mjs +67 -0
  87. package/dist/witness/space/node-filesystem-space/respec/testSpace_createAndInit.node-filesystem-space-v1.respec.mjs.map +1 -0
  88. package/dist/witness/space/node-filesystem-space/respec/testSpace_persistTransformResult.node-filesystem-space-v1.respec.d.mts +2 -0
  89. package/dist/witness/space/node-filesystem-space/respec/testSpace_persistTransformResult.node-filesystem-space-v1.respec.d.mts.map +1 -0
  90. package/dist/witness/space/node-filesystem-space/respec/testSpace_persistTransformResult.node-filesystem-space-v1.respec.mjs +67 -0
  91. package/dist/witness/space/node-filesystem-space/respec/testSpace_persistTransformResult.node-filesystem-space-v1.respec.mjs.map +1 -0
  92. package/dist/witness/space/node-filesystem-space/respec/testSpace_putGetDelete.node-filesystem-space-v1.respec.d.mts +2 -0
  93. package/dist/witness/space/node-filesystem-space/respec/testSpace_putGetDelete.node-filesystem-space-v1.respec.d.mts.map +1 -0
  94. package/dist/witness/space/node-filesystem-space/respec/testSpace_putGetDelete.node-filesystem-space-v1.respec.mjs +68 -0
  95. package/dist/witness/space/node-filesystem-space/respec/testSpace_putGetDelete.node-filesystem-space-v1.respec.mjs.map +1 -0
  96. package/dist/witness/space/node-filesystem-space/respec/testSpace_registerNewIbGib_GetLatest.node-filesystem-space-v1.respec.d.mts +2 -0
  97. package/dist/witness/space/node-filesystem-space/respec/testSpace_registerNewIbGib_GetLatest.node-filesystem-space-v1.respec.d.mts.map +1 -0
  98. package/dist/witness/space/node-filesystem-space/respec/testSpace_registerNewIbGib_GetLatest.node-filesystem-space-v1.respec.mjs +69 -0
  99. package/dist/witness/space/node-filesystem-space/respec/testSpace_registerNewIbGib_GetLatest.node-filesystem-space-v1.respec.mjs.map +1 -0
  100. package/generate-version-file.js +29 -0
  101. package/package.json +41 -0
  102. package/src/assumptions.respec.mts +51 -0
  103. package/src/common/prompt-functions.mts +429 -0
  104. package/src/constants.mts +2 -0
  105. package/src/foo.mts +13 -0
  106. package/src/helpers.mts +5 -0
  107. package/src/respec-gib.node.mts +201 -0
  108. package/src/spec-helper.node.respec.mts +50 -0
  109. package/src/types.mts +0 -0
  110. package/src/witness/space/metaspace/metaspace-nodespace/metaspace-nodespace-helper.mts +290 -0
  111. package/src/witness/space/metaspace/metaspace-nodespace/metaspace-nodespace.mts +166 -0
  112. package/src/witness/space/node-filesystem-space/node-filesystem-space-helper.mts +298 -0
  113. package/src/witness/space/node-filesystem-space/node-filesystem-space-types.mts +150 -0
  114. package/src/witness/space/node-filesystem-space/node-filesystem-space-v1.mts +672 -0
  115. package/src/witness/space/node-filesystem-space/node-indexed-filesystem-space/node-indexed-filesystem-space-constants.mts +6 -0
  116. package/src/witness/space/node-filesystem-space/node-indexed-filesystem-space/node-indexed-filesystem-space-types.mts +68 -0
  117. package/src/witness/space/node-filesystem-space/node-indexed-filesystem-space/node-indexed-filesystem-space-v1.mts +403 -0
  118. package/src/witness/space/node-filesystem-space/node-indexed-filesystem-space/respec/testSpace_createAndInit.node-indexed-filesystem-space-v1.respec.mts +68 -0
  119. package/src/witness/space/node-filesystem-space/node-indexed-filesystem-space/respec/testSpace_persistTransformResult.node-indexed-filesystem-space-v1.respec.mts +70 -0
  120. package/src/witness/space/node-filesystem-space/node-indexed-filesystem-space/respec/testSpace_putGetDelete.node-indexed-filesystem-space-v1.respec.mts +72 -0
  121. package/src/witness/space/node-filesystem-space/node-indexed-filesystem-space/respec/testSpace_registerNewIbGib_GetLatest.node-indexed-filesystem-space-v1.respec.mts +72 -0
  122. package/src/witness/space/node-filesystem-space/respec/testSpace_createAndInit.node-filesystem-space-v1.respec.mts +87 -0
  123. package/src/witness/space/node-filesystem-space/respec/testSpace_persistTransformResult.node-filesystem-space-v1.respec.mts +88 -0
  124. package/src/witness/space/node-filesystem-space/respec/testSpace_putGetDelete.node-filesystem-space-v1.respec.mts +88 -0
  125. package/src/witness/space/node-filesystem-space/respec/testSpace_registerNewIbGib_GetLatest.node-filesystem-space-v1.respec.mts +90 -0
  126. package/tsconfig.json +17 -0
  127. package/tsconfig.test.json +10 -0
@@ -0,0 +1,29 @@
1
+
2
+ import * as pathUtils from 'path';
3
+ import { writeFile } from 'node:fs/promises';
4
+
5
+ import packageJson from './package.json' with {type: 'json'};
6
+
7
+ const lc = `[${import.meta.url}]`;
8
+ console.log(`${lc} starting... (I: 1cb5f4175a1e2ccff8045ec622ed6825)`)
9
+
10
+ const filePath = pathUtils.resolve('./src/AUTO-GENERATED-version.mts')
11
+
12
+ const contents = `/**
13
+ * @module auto-generated-version
14
+ *
15
+ * CHANGES TO THIS FILE NOT BE SAVED
16
+ *
17
+ * this is automatically updated in the build process.
18
+ *
19
+ * CHANGES TO THIS FILE NOT BE SAVED
20
+ */
21
+
22
+ /**
23
+ * this is the version of this package, auto-updated in the build process
24
+ */
25
+ export const AUTO_GENERATED_VERSION = '${packageJson.version}';
26
+ `;
27
+
28
+ await writeFile(filePath, contents, { encoding: 'utf8' });
29
+ console.log(`${lc} complete.`)
package/package.json ADDED
@@ -0,0 +1,41 @@
1
+ {
2
+ "name": "@ibgib/node-gib",
3
+ "version": "0.0.2",
4
+ "description": "Node and server-specific ibGib code, i.e., things that don't run in the browser.",
5
+ "funding": {
6
+ "type": "individual",
7
+ "url": "https://paypal.me/ibGib"
8
+ },
9
+ "scripts": {
10
+ "//_orchestration": "~~ ORCHESTRATION (handled by @ibgib/build-gib) ~~",
11
+ "//_publish": "~~ PUBLISH ~~",
12
+ "pack": "npm pack --pack-destination=\"./published\"",
13
+ "test:node:nobuild": "node dist/respec-gib.node.mjs --inspect",
14
+ "prepare:publish": "npm version patch && node ../../build/dist/concrete-build/build-node-gib.mjs --prod && npm run pack",
15
+ "man:prepare:publish": "use this to patch > build > pack for publishing to npm repo"
16
+ },
17
+ "type": "module",
18
+ "keywords": [
19
+ "ibgib",
20
+ "dlt",
21
+ "blockchain",
22
+ "graph-database"
23
+ ],
24
+ "author": "William Raiford",
25
+ "license": "ISC",
26
+ "dependencies": {
27
+ "@ibgib/helper-gib": "^0.0.36",
28
+ "@ibgib/ts-gib": "^0.5.32",
29
+ "@ibgib/core-gib": "^0.1.58",
30
+ "@ibgib/encrypt-gib": "^0.2.37"
31
+ },
32
+ "devDependencies": {
33
+ "@types/node": "^20.2.1"
34
+ },
35
+ "engines": {
36
+ "node": ">=19.0.0"
37
+ },
38
+ "publishConfig": {
39
+ "access": "public"
40
+ }
41
+ }
@@ -0,0 +1,51 @@
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
+ import { IbGib_V1 } from '@ibgib/ts-gib/dist/V1/types.mjs';
8
+
9
+ /**
10
+ * wrapper that uses crypto.subtle under the hood (i.e. doesn't hash using ts-gib)
11
+ *
12
+ * notes:
13
+ *
14
+ * * i did in fact copy this from ts-gib though, but we're testing simply that the
15
+ * context (node/browser/whatever) has this since it's integral to all things ibgib.
16
+ */
17
+ async function cryptoSubtleHash({
18
+ s,
19
+ algorithm = 'SHA-256',
20
+ }: {
21
+ s: string,
22
+ algorithm?: string,
23
+ }): Promise<string> {
24
+ let { subtle } = globalThis.crypto;
25
+ if (!s) { throw new Error(`[${cryptoSubtleHash.name}] s is required`) }
26
+ if (!algorithm) { throw new Error(`[${cryptoSubtleHash.name}] algorithm is required`) }
27
+ try {
28
+ const msgUint8 = new TextEncoder().encode(s);
29
+ const buffer = await subtle.digest(algorithm, msgUint8);
30
+ const asArray = Array.from(new Uint8Array(buffer));
31
+ return asArray.map(b => b.toString(16).padStart(2, '0')).join('');
32
+ } catch (e) {
33
+ console.error(e.message ?? e);
34
+ throw e;
35
+ }
36
+ }
37
+
38
+ await respecfully(sir, `non-ts-gib isomorphic crypto hashing`, async () => {
39
+
40
+ await ifWe(sir, `should digest simple string consistently using crypto.subtle directly `, async () => {
41
+ let h = await cryptoSubtleHash({ s: '42' });
42
+ iReckon(sir, h).asTo('42').isGonnaBe('73475cb40a568e8da8a045ced110137e159f890ac4da883b6b17dc651b3a8049');
43
+ });
44
+
45
+ await ifWe(sir, `should digest simple stringified ibgib consistently using crypto.subtle directly `, async () => {
46
+ let ibgib: IbGib_V1 = { ib: 'ib', gib: 'gib' };
47
+ let h = await cryptoSubtleHash({ s: JSON.stringify(ibgib) }); // doesn't use ts-gib but consistent stringifying json is important
48
+ iReckon(sir, h).asTo('ib^gib').isGonnaBe('cbad0694a257358c044611ea1fa88ace71a01a9b8409d2354d0387d8043f7671');
49
+ });
50
+
51
+ });
@@ -0,0 +1,429 @@
1
+ // import { AlertController, } from '@ionic/angular';
2
+ // import { Dialog } from '@capacitor/dialog';
3
+
4
+ import * as readline from 'node:readline/promises';
5
+ import { stdin, stdout } from 'node:process';
6
+
7
+
8
+ import { extractErrorMsg } from '@ibgib/helper-gib/dist/helpers/utils-helper.mjs';
9
+ import { IbGib_V1 } from '@ibgib/ts-gib/dist/V1/types.mjs';
10
+ import { IbGibSpaceAny } from '@ibgib/core-gib/dist/witness/space/space-base-v1.mjs';
11
+ // import { SecretModalFormComponent } from '../modals/secret-modal-form/secret-modal-form.component';
12
+ // import { EncryptionModalFormComponent } from '../modals/encryption-modal-form/encryption-modal-form.component';
13
+ // import { OuterspaceModalFormComponent } from '../modals/outerspace-modal-form/outerspace-modal-form.component';
14
+ // import { UpdatePicModalFormComponent, UpdatePicPromptResult } from '../modals/update-pic-modal-form/update-pic-modal-form.component';
15
+ // import { UpdateCommentModalFormComponent, UpdateCommentPromptResult } from '../modals/update-comment-modal-form/update-comment-modal-form.component';
16
+ // import { EncryptionData_V1 } from '@ibgib/core-gib/dist/common/encrypt/encrypt-types.mjs';
17
+ // import { OuterSpaceIbGib } from '@ibgib/core-gib/dist/witness/space/outer-space/outer-space-types.mjs';
18
+ // import { PicIbGib_V1 } from '@ibgib/core-gib/dist/common/pic/pic-types.mjs';
19
+ // import { RobbotIbGib_V1 } from '@ibgib/core-gib/dist/witness/robbot/robbot-types.mjs';
20
+ // import {
21
+ // RobbotModalFormComponent, RobbotPromptResult
22
+ // } from '@ibgib/core-gib/dist/modals/robbot-modal-form/robbot-modal-form.component';
23
+ // import { AppIbGib_V1 } from '@ibgib/core-gib/dist/witness/app/app-types.mjs';
24
+ // import {
25
+ // AppModalFormComponent, AppPromptResult
26
+ // } from '@ibgib/core-gib/dist../modals/app-modal-form/app-modal-form.component';
27
+ // import { clearDoCancelModalOnBackButton, registerCancelModalOnBackButton } from '@ibgib/core-gib/dist./utils';
28
+ // import { CommentIbGib_V1 } from '@ibgib/core-gib/dist/common/comment/comment-types.mjs';
29
+ // import { SECRET_REL8N_NAME } from '@ibgib/core-gib/dist/common/encrypt/encrypt-constants.mjs';
30
+
31
+ import { GLOBAL_LOG_A_LOT } from '../constants.mjs';
32
+
33
+ const logalot = GLOBAL_LOG_A_LOT || false;
34
+
35
+
36
+ /**
37
+ * Wrapper for alerting via atow capacitor modals.
38
+ *
39
+ * @returns FUNCTION that alerts (doesn't actually do the alert)
40
+ */
41
+ export function getFnAlert(): ({ title, msg }: { title: string, msg: string }) => Promise<void> {
42
+ return async ({ title, msg }: { title: string, msg: string }) => {
43
+ // await Dialog.alert({ title, message: msg });
44
+ console.log(`${title}: ${msg}`);
45
+ };
46
+ }
47
+
48
+ /**
49
+ * Wrapper for prompting via atow capacitor modals.
50
+ *
51
+ * @returns FUNCTION that prompts (doesn't actually do the prompt)
52
+ */
53
+ export function getFnPrompt(): ({ title, msg }: { title: string, msg: string }) => Promise<string | null> {
54
+ return async ({ title, msg }: { title: string, msg: string }) => {
55
+ const lc = `[${getFnPrompt.name}]`;
56
+ let answer: string;
57
+ try {
58
+ if (!msg) { throw new Error(`msg required. (E: c39d1656b6b803e11bad46efe15b6823)`); }
59
+ const rl = readline.createInterface({ input: stdin, output: stdout });
60
+ try {
61
+ const text = title ? `\n# ${title}:\n\n${msg}\n` : `${msg}\n`;
62
+ answer = await rl.question(text);
63
+ if (logalot) { console.log(`${lc} text: ${text}. answer: ${answer} (I: 7f0375b3abd7eba9c75636d31bbca323)`); }
64
+ } catch (error) {
65
+ throw error;
66
+ } finally {
67
+ rl.close();
68
+ }
69
+ } catch (error) {
70
+ console.error(`${lc} ${extractErrorMsg(error)}`);
71
+ throw error;
72
+ }
73
+ return answer || answer === '' ? answer : null;
74
+ };
75
+ }
76
+
77
+ /**
78
+ * Wrapper for confirming via commandline/terminal prompt.
79
+ *
80
+ * @returns FUNCTION that prompts (doesn't actually do the prompt)
81
+ */
82
+ export function getFnConfirm():
83
+ ({ title, msg, okButtonTitle, cancelButtonTitle }:
84
+ { title: string, msg: string, okButtonTitle?: string, cancelButtonTitle?: string }) => Promise<boolean> {
85
+ return async ({ title, msg, okButtonTitle, cancelButtonTitle }:
86
+ { title: string, msg: string, okButtonTitle?: string, cancelButtonTitle?: string }) => {
87
+ okButtonTitle ||= 'yes';
88
+ cancelButtonTitle ||= 'no';
89
+
90
+ if (okButtonTitle === cancelButtonTitle) { throw new Error(`okButtonTitle (${okButtonTitle}) must be different than cancelButtonTitle (${cancelButtonTitle}) (E: 254e92fed2e99edc362de337e8bf3123)`); }
91
+ if (okButtonTitle[0] === cancelButtonTitle[0]) { throw new Error(`okButtonTitle (${okButtonTitle}) must start with a different character than cancelButtonTitle (${cancelButtonTitle}) (E: 8bdd34b0d90f479399d911af58df9190)`); }
92
+
93
+ const promptFn = getFnPrompt();
94
+ let result: string | null = null;
95
+ do {
96
+ result = await promptFn({ title, msg: `${msg} (${okButtonTitle}/${cancelButtonTitle})` });
97
+ result = result ? result!.toLowerCase() : null;
98
+ } while (!result);
99
+
100
+ if (result === okButtonTitle![0].toLowerCase()) { result = okButtonTitle!; }
101
+ return result === okButtonTitle;
102
+ };
103
+ }
104
+
105
+ /**
106
+ * Prompts the user for a password using an ionic capacitor (atow) alert
107
+ * controller with an input of type `'password'`.
108
+ *
109
+ *
110
+ *
111
+ * @returns either the password or null if cancelled
112
+ */
113
+ export function getFnPromptPassword(): (title: string, msg: string) => Promise<string | null> {
114
+ const lc = `[${getFnPromptPassword.name}]`;
115
+ try {
116
+ throw new Error(`not implemented yet. i have added PromptPasswordFunction type in core-gib/core-types (E: 78c7dbb8958f8f353730d0dbb86b5423)`);
117
+ // if (!alertController) { throw new Error('alertController required.'); }
118
+ // let fnPromptPassword = async (title: string, msg: string) => {
119
+ // const alert = await alertController.create({
120
+ // header: title,
121
+ // message: msg,
122
+ // inputs: [
123
+ // { name: 'password', type: 'password', label: 'Password: ', },
124
+ // ],
125
+ // buttons: ['OK', 'Cancel'],
126
+ // });
127
+ // await alert.present();
128
+ // let result = await alert.onDidDismiss();
129
+ // if (result?.data?.values?.password) {
130
+ // return result!.data!.values!.password;
131
+ // } else {
132
+ // return null;
133
+ // }
134
+ // };
135
+ // return fnPromptPassword;
136
+ } catch (error) {
137
+ console.error(`${lc} ${extractErrorMsg(error)}`);
138
+ throw error;
139
+ }
140
+ }
141
+
142
+ /**
143
+ * Creates a function with a single `space` arg. This fn when called shows a
144
+ * modal to create an secret ibgib. If the user chooses to save, then the
145
+ * modal will create the secret ibgib, save the transform result in the
146
+ * given `space` (atow this is the local user space), and return the new
147
+ * secret ibgib.
148
+ */
149
+ export function getFn_promptCreateSecretIbGib(
150
+ ): (space: IbGibSpaceAny) => Promise<IbGib_V1 | undefined> {
151
+ const lc = `[${getFn_promptCreateSecretIbGib.name}]`;
152
+ return async (space: IbGibSpaceAny) => {
153
+ throw new Error(`not impl yet (E: 990b79f9b8c2302163cc656deceaf923)`);
154
+ // /** hacked untyped document reference to hack a solution to the back button leaving modals open. */
155
+ // try {
156
+ // const modal = await common.modalController.create({
157
+ // component: SecretModalFormComponent,
158
+ // });
159
+ // // have to register/clear modal for cancelling in case the user
160
+ // // presses the back button while the modal is still visible
161
+ // registerCancelModalOnBackButton(modal);
162
+ // await modal.present();
163
+ // let resModal = await modal.onWillDismiss();
164
+ // // clear the cancel since it dismissed naturally
165
+ // clearDoCancelModalOnBackButton();
166
+ // if (resModal.data) {
167
+ // const resNewSecret = <TransformResult<SecretIbGib_V1>>resModal.data;
168
+ // await common.ibgibs.persistTransformResult({ resTransform: resNewSecret, space });
169
+ // const addr = getIbGibAddr({ ibGib: resNewSecret.newIbGib });
170
+ // if (logalot) { console.log(`${lc} created secret. addr: ${addr}`); }
171
+ // await common.ibgibs.rel8ToSpecialIbGib({
172
+ // type: "secrets",
173
+ // rel8nName: SECRET_REL8N_NAME,
174
+ // ibGibsToRel8: [resNewSecret.newIbGib],
175
+ // space,
176
+ // });
177
+ // return resNewSecret.newIbGib;
178
+ // } else {
179
+ // // didn't create one
180
+ // console.warn(`${lc} didn't create at this time.`);
181
+ // return undefined;
182
+ // }
183
+ // } catch (error) {
184
+ // console.error(`${lc} error: ${extractErrorMsg(error)}`);
185
+ // return undefined;
186
+ // }
187
+ }
188
+ }
189
+
190
+ /**
191
+ * Creates a function with a single `space` arg. This fn when called shows a
192
+ * modal to create an encryption ibgib. If the user chooses to save, then the
193
+ * modal will create the encryption ibgib, save the transform result in the
194
+ * given `space` (atow this is the local user space), and return the new
195
+ * encryption ibgib.
196
+ */
197
+ export function getFn_promptCreateEncryptionIbGib(
198
+ // common: CommonService,
199
+ ): (space: IbGibSpaceAny) => Promise<IbGib_V1 | undefined> {
200
+ throw new Error(`not impl yet (E: 69c7d552de7318a97457363adfd34f23)`);
201
+ // const lc = `[${getFn_promptCreateEncryptionIbGib.name}]`;
202
+ // return async (space: IbGibSpaceAny) => {
203
+ // try {
204
+ // const modal = await common.modalController.create({
205
+ // component: EncryptionModalFormComponent,
206
+ // });
207
+ // // have to register/clear modal for cancelling in case the user
208
+ // // presses the back button while the modal is still visible
209
+ // registerCancelModalOnBackButton(modal);
210
+ // await modal.present();
211
+ // let resModal = await modal.onWillDismiss();
212
+ // // clear the cancel since it dismissed naturally
213
+ // clearDoCancelModalOnBackButton();
214
+ // if (resModal.data) {
215
+ // const resNewEncryption = <TransformResult<IbGib_V1<EncryptionData_V1>>>resModal.data;
216
+ // await common.ibgibs.persistTransformResult({ resTransform: resNewEncryption, space });
217
+ // const addr = getIbGibAddr({ ibGib: resNewEncryption.newIbGib });
218
+ // if (logalot) { console.log(`${lc} created encryption. addr: ${addr}`); }
219
+ // return resNewEncryption.newIbGib;
220
+ // } else {
221
+ // // didn't create one
222
+ // console.warn(`${lc} didn't create at this time.`);
223
+ // return undefined;
224
+ // }
225
+ // } catch (error) {
226
+ // console.error(`${lc} error: ${extractErrorMsg(error)}`);
227
+ // return undefined;
228
+ // }
229
+ // }
230
+ }
231
+
232
+ /**
233
+ * Creates a function with a single `space` arg. This fn when called shows a
234
+ * modal to create an outerspace ibgib. If the user chooses to save, then the
235
+ * modal will create the outerspace ibgib, save the transform result in the
236
+ * given `space` (atow this is the local user space), and return the new
237
+ * outerspace ibgib.
238
+ */
239
+ export function getFn_promptCreateOuterSpaceIbGib(
240
+ // common: CommonService,
241
+ ): (space: IbGibSpaceAny) => Promise<IbGib_V1 | undefined> {
242
+ throw new Error(`not impl yet (E: e48ef8a7b4252cfe795dde791de99523)`);
243
+ // const lc = `[${getFn_promptCreateOuterSpaceIbGib.name}]`;
244
+ // return async (space: IbGibSpaceAny) => {
245
+ // try {
246
+ // const modal = await common.modalController.create({
247
+ // component: OuterspaceModalFormComponent,
248
+ // });
249
+ // // have to register/clear modal for cancelling in case the user
250
+ // // presses the back button while the modal is still visible
251
+ // registerCancelModalOnBackButton(modal);
252
+ // await modal.present();
253
+ // let resModal = await modal.onWillDismiss();
254
+ // // clear the cancel since it dismissed naturally
255
+ // clearDoCancelModalOnBackButton();
256
+ // if (resModal.data) {
257
+ // const resOuterSpace = <TransformResult<OuterSpaceIbGib>>resModal.data;
258
+ // await common.ibgibs.persistTransformResult({ resTransform: resOuterSpace, space });
259
+ // const addr = getIbGibAddr({ ibGib: resOuterSpace.newIbGib });
260
+ // if (logalot) { console.log(`${lc} created outerspace. addr: ${addr}`); }
261
+ // return resOuterSpace.newIbGib;
262
+ // } else {
263
+ // // didn't create one
264
+ // console.warn(`${lc} didn't create outerspace at this time.`);
265
+ // return undefined;
266
+ // }
267
+ // } catch (error) {
268
+ // console.error(`${lc} error: ${extractErrorMsg(error)}`);
269
+ // return undefined;
270
+ // }
271
+ // }
272
+ }
273
+
274
+ /**
275
+ * Creates a function with a single `space` arg. This fn when called shows a
276
+ * modal to mutate a pic ibgib. If the user chooses to save, then the modal will
277
+ * perform the mutation, save the transform result in the given `space`, and
278
+ * return the new pic ibgib.
279
+ */
280
+ // export function getFn_promptUpdatePicIbGib(
281
+ // common: CommonService,
282
+ // ): (space: IbGibSpaceAny, picIbGib: PicIbGib_V1) => Promise<UpdatePicPromptResult | undefined> {
283
+ // const lc = `[${getFn_promptUpdatePicIbGib.name}]`;
284
+ // return async (space: IbGibSpaceAny, picIbGib: PicIbGib_V1) => {
285
+ // try {
286
+ // const modal = await common.modalController.create({
287
+ // component: UpdatePicModalFormComponent,
288
+ // componentProps: { picIbGib, space },
289
+ // });
290
+ // // have to register/clear modal for cancelling in case the user
291
+ // // presses the back button while the modal is still visible
292
+ // registerCancelModalOnBackButton(modal);
293
+ // await modal.present();
294
+ // let resModal = await modal.onWillDismiss();
295
+ // // clear the cancel since it dismissed naturally
296
+ // clearDoCancelModalOnBackButton();
297
+ // if (resModal.data) {
298
+ // const result = <UpdatePicPromptResult>resModal.data;
299
+ // const [resCreatePic, _resCreateBin] = result;
300
+ // const addr = getIbGibAddr({ ibGib: resCreatePic.newIbGib });
301
+ // if (logalot) { console.log(`${lc} updated pic. addr: ${addr}`); }
302
+ // return result;
303
+ // } else {
304
+ // // didn't create one
305
+ // console.warn(`${lc} didn't create at this time.`);
306
+ // return undefined;
307
+ // }
308
+ // } catch (error) {
309
+ // console.error(`${lc} error: ${extractErrorMsg(error)}`);
310
+ // return undefined;
311
+ // }
312
+ // }
313
+ // }
314
+
315
+ /**
316
+ * Creates a function with a single `space` arg. This fn when called shows a
317
+ * modal to mutate a comment ibgib. If the user chooses to save, then the modal will
318
+ * perform the mutation, save the transform result in the given `space`, and
319
+ * return the new comment ibgib.
320
+ */
321
+ // export function getFn_promptUpdateCommentIbGib(
322
+ // common: CommonService,
323
+ // ): (space: IbGibSpaceAny, commentIbGib: CommentIbGib_V1) => Promise<UpdateCommentPromptResult | undefined> {
324
+ // const lc = `[${getFn_promptUpdateCommentIbGib.name}]`;
325
+ // return async (space: IbGibSpaceAny, commentIbGib: CommentIbGib_V1) => {
326
+ // try {
327
+ // const modal = await common.modalController.create({
328
+ // component: UpdateCommentModalFormComponent,
329
+ // componentProps: { commentIbGib, space },
330
+ // });
331
+ // // have to register/clear modal for cancelling in case the user
332
+ // // presses the back button while the modal is still visible
333
+ // registerCancelModalOnBackButton(modal);
334
+ // await modal.present();
335
+ // let resModal = await modal.onWillDismiss();
336
+ // // clear the cancel since it dismissed naturally
337
+ // clearDoCancelModalOnBackButton();
338
+ // if (resModal.data) {
339
+ // const resCreateComment = <UpdateCommentPromptResult>resModal.data;
340
+ // const addr = getIbGibAddr({ ibGib: resCreateComment.newIbGib });
341
+ // if (logalot) { console.log(`${lc} updated comment. addr: ${addr}`); }
342
+ // return resCreateComment;
343
+ // } else {
344
+ // // didn't create one
345
+ // console.warn(`${lc} didn't create at this time.`);
346
+ // return undefined;
347
+ // }
348
+ // } catch (error) {
349
+ // console.error(`${lc} error: ${extractErrorMsg(error)}`);
350
+ // return undefined;
351
+ // }
352
+ // }
353
+ // }
354
+
355
+ /**
356
+ * Creates a function with a single `space` arg. This fn when called shows a
357
+ * modal to create a robbot ibgib. If the user chooses to save, then the modal will
358
+ * perform the mutation, save the transform result in the given `space`, and
359
+ * return the new pic ibgib.
360
+ */
361
+ // export function getFn_promptRobbotIbGib(
362
+ // common: CommonService,
363
+ // ): (space: IbGibSpaceAny, ibGib: RobbotIbGib_V1) => Promise<RobbotPromptResult | undefined> {
364
+ // const lc = `[${getFn_promptRobbotIbGib.name}]`;
365
+ // return async (space: IbGibSpaceAny, ibGib: RobbotIbGib_V1) => {
366
+ // try {
367
+ // const modal = await common.modalController.create({
368
+ // component: RobbotModalFormComponent,
369
+ // componentProps: { ibGib, space },
370
+ // });
371
+ // // have to register/clear modal for cancelling in case the user
372
+ // // presses the back button while the modal is still visible
373
+ // registerCancelModalOnBackButton(modal);
374
+ // await modal.present();
375
+ // let resModal = await modal.onWillDismiss();
376
+ // // clear the cancel since it dismissed naturally
377
+ // clearDoCancelModalOnBackButton();
378
+ // if (resModal.data) {
379
+ // const result = <RobbotPromptResult>resModal.data;
380
+ // return result;
381
+ // } else {
382
+ // // didn't create one
383
+ // console.warn(`${lc} didn't create at this time.`);
384
+ // return undefined;
385
+ // }
386
+ // } catch (error) {
387
+ // console.error(`${lc} error: ${extractErrorMsg(error)}`);
388
+ // return undefined;
389
+ // }
390
+ // }
391
+ // }
392
+
393
+ /**
394
+ * Creates a function with a single `space` arg. This fn when called shows a
395
+ * modal to create a app ibgib. If the user chooses to save, then the modal will
396
+ * perform the mutation, save the transform result in the given `space`, and
397
+ * return the new pic ibgib.
398
+ */
399
+ // export function getFn_promptAppIbGib(
400
+ // common: CommonService,
401
+ // ): (space: IbGibSpaceAny, ibGib: AppIbGib_V1) => Promise<AppPromptResult | undefined> {
402
+ // const lc = `[${getFn_promptAppIbGib.name}]`;
403
+ // return async (space: IbGibSpaceAny, ibGib: AppIbGib_V1) => {
404
+ // try {
405
+ // const modal = await common.modalController.create({
406
+ // component: AppModalFormComponent,
407
+ // componentProps: { ibGib, space },
408
+ // });
409
+ // // have to register/clear modal for cancelling in case the user
410
+ // // presses the back button while the modal is still visible
411
+ // registerCancelModalOnBackButton(modal);
412
+ // await modal.present();
413
+ // let resModal = await modal.onWillDismiss();
414
+ // // clear the cancel since it dismissed naturally
415
+ // clearDoCancelModalOnBackButton();
416
+ // if (resModal.data) {
417
+ // const result = <AppPromptResult>resModal.data;
418
+ // return result;
419
+ // } else {
420
+ // // didn't create one
421
+ // console.warn(`${lc} didn't create at this time.`);
422
+ // return undefined;
423
+ // }
424
+ // } catch (error) {
425
+ // console.error(`${lc} error: ${extractErrorMsg(error)}`);
426
+ // return undefined;
427
+ // }
428
+ // }
429
+ // }
@@ -0,0 +1,2 @@
1
+ export const GLOBAL_LOG_A_LOT = false;
2
+ export const GLOBAL_TIMER_NAME = '[node^gib timer]';
package/src/foo.mts ADDED
@@ -0,0 +1,13 @@
1
+ const logalot = true;
2
+
3
+ export async function fooFn(): Promise<void> {
4
+ const lc = `[${fooFn.name}]`;
5
+ try {
6
+ if (logalot) { console.log(`${lc} starting... (I: dfb1e864e0a8d029abab9418f249ed25)`); }
7
+ } catch (error) {
8
+ console.error(`${lc} ${error.message}`);
9
+ throw error;
10
+ } finally {
11
+ if (logalot) { console.log(`${lc} complete.`); }
12
+ }
13
+ }
@@ -0,0 +1,5 @@
1
+ import { } from "@ibgib/helper-gib/dist/helpers/utils-helper.mjs";
2
+
3
+ import { GLOBAL_LOG_A_LOT } from "./constants.mjs";
4
+
5
+ const logalot = GLOBAL_LOG_A_LOT; // change this when you want to toggle verbose logging