@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.
Files changed (330) hide show
  1. package/.vscode/core-gib-snippets.code-snippets +189 -0
  2. package/.vscode/launch.json +24 -0
  3. package/.vscode/settings.json +56 -0
  4. package/.vscode/tasks.json +37 -0
  5. package/CHANGELOG.md +11 -0
  6. package/README.md +215 -0
  7. package/dist/common/aws-constants.d.mts +7 -0
  8. package/dist/common/aws-constants.d.mts.map +1 -0
  9. package/dist/common/aws-constants.mjs +7 -0
  10. package/dist/common/aws-constants.mjs.map +1 -0
  11. package/dist/common/bin/bin-types.d.mts +17 -0
  12. package/dist/common/bin/bin-types.d.mts.map +1 -0
  13. package/dist/common/bin/bin-types.mjs +3 -0
  14. package/dist/common/bin/bin-types.mjs.map +1 -0
  15. package/dist/common/cache/cache-types.d.mts +57 -0
  16. package/dist/common/cache/cache-types.d.mts.map +1 -0
  17. package/dist/common/cache/cache-types.mjs +2 -0
  18. package/dist/common/cache/cache-types.mjs.map +1 -0
  19. package/dist/common/comment/comment-constants.d.mts +11 -0
  20. package/dist/common/comment/comment-constants.d.mts.map +1 -0
  21. package/dist/common/comment/comment-constants.mjs +11 -0
  22. package/dist/common/comment/comment-constants.mjs.map +1 -0
  23. package/dist/common/comment/comment-helper.d.mts +59 -0
  24. package/dist/common/comment/comment-helper.d.mts.map +1 -0
  25. package/dist/common/comment/comment-helper.mjs +173 -0
  26. package/dist/common/comment/comment-helper.mjs.map +1 -0
  27. package/dist/common/comment/comment-types.d.mts +16 -0
  28. package/dist/common/comment/comment-types.d.mts.map +1 -0
  29. package/dist/common/comment/comment-types.mjs +2 -0
  30. package/dist/common/comment/comment-types.mjs.map +1 -0
  31. package/dist/common/display/display-helper.d.mts +19 -0
  32. package/dist/common/display/display-helper.d.mts.map +1 -0
  33. package/dist/common/display/display-helper.mjs +68 -0
  34. package/dist/common/display/display-helper.mjs.map +1 -0
  35. package/dist/common/display/display-types.d.mts +97 -0
  36. package/dist/common/display/display-types.d.mts.map +1 -0
  37. package/dist/common/display/display-types.mjs +37 -0
  38. package/dist/common/display/display-types.mjs.map +1 -0
  39. package/dist/common/encrypt/encrypt-constants.d.mts +27 -0
  40. package/dist/common/encrypt/encrypt-constants.d.mts.map +1 -0
  41. package/dist/common/encrypt/encrypt-constants.mjs +27 -0
  42. package/dist/common/encrypt/encrypt-constants.mjs.map +1 -0
  43. package/dist/common/encrypt/encrypt-types.d.mts +116 -0
  44. package/dist/common/encrypt/encrypt-types.d.mts.map +1 -0
  45. package/dist/common/encrypt/encrypt-types.mjs +9 -0
  46. package/dist/common/encrypt/encrypt-types.mjs.map +1 -0
  47. package/dist/common/error/error-constants.d.mts +9 -0
  48. package/dist/common/error/error-constants.d.mts.map +1 -0
  49. package/dist/common/error/error-constants.mjs +9 -0
  50. package/dist/common/error/error-constants.mjs.map +1 -0
  51. package/dist/common/error/error-helper.d.mts +43 -0
  52. package/dist/common/error/error-helper.d.mts.map +1 -0
  53. package/dist/common/error/error-helper.mjs +167 -0
  54. package/dist/common/error/error-helper.mjs.map +1 -0
  55. package/dist/common/error/error-types.d.mts +58 -0
  56. package/dist/common/error/error-types.d.mts.map +1 -0
  57. package/dist/common/error/error-types.mjs +2 -0
  58. package/dist/common/error/error-types.mjs.map +1 -0
  59. package/dist/common/form/form-helper.d.mts +97 -0
  60. package/dist/common/form/form-helper.d.mts.map +1 -0
  61. package/dist/common/form/form-helper.mjs +185 -0
  62. package/dist/common/form/form-helper.mjs.map +1 -0
  63. package/dist/common/form/form-items.d.mts +229 -0
  64. package/dist/common/form/form-items.d.mts.map +1 -0
  65. package/dist/common/form/form-items.mjs +63 -0
  66. package/dist/common/form/form-items.mjs.map +1 -0
  67. package/dist/common/import-export/import-export-types.d.mts +18 -0
  68. package/dist/common/import-export/import-export-types.d.mts.map +1 -0
  69. package/dist/common/import-export/import-export-types.mjs +2 -0
  70. package/dist/common/import-export/import-export-types.mjs.map +1 -0
  71. package/dist/common/legacy/legacy-types.d.mts +2 -0
  72. package/dist/common/legacy/legacy-types.d.mts.map +1 -0
  73. package/dist/common/legacy/legacy-types.mjs +2 -0
  74. package/dist/common/legacy/legacy-types.mjs.map +1 -0
  75. package/dist/common/link/link-constants.d.mts +2 -0
  76. package/dist/common/link/link-constants.d.mts.map +1 -0
  77. package/dist/common/link/link-constants.mjs +2 -0
  78. package/dist/common/link/link-constants.mjs.map +1 -0
  79. package/dist/common/link/link-helper.d.mts +37 -0
  80. package/dist/common/link/link-helper.d.mts.map +1 -0
  81. package/dist/common/link/link-helper.mjs +143 -0
  82. package/dist/common/link/link-helper.mjs.map +1 -0
  83. package/dist/common/link/link-types.d.mts +14 -0
  84. package/dist/common/link/link-types.d.mts.map +1 -0
  85. package/dist/common/link/link-types.mjs +2 -0
  86. package/dist/common/link/link-types.mjs.map +1 -0
  87. package/dist/common/other/graph-helper.d.mts +166 -0
  88. package/dist/common/other/graph-helper.d.mts.map +1 -0
  89. package/dist/common/other/graph-helper.mjs +710 -0
  90. package/dist/common/other/graph-helper.mjs.map +1 -0
  91. package/dist/common/other/ibgib-helper.d.mts +245 -0
  92. package/dist/common/other/ibgib-helper.d.mts.map +1 -0
  93. package/dist/common/other/ibgib-helper.mjs +641 -0
  94. package/dist/common/other/ibgib-helper.mjs.map +1 -0
  95. package/dist/common/other/other-constants.d.mts +53 -0
  96. package/dist/common/other/other-constants.d.mts.map +1 -0
  97. package/dist/common/other/other-constants.mjs +67 -0
  98. package/dist/common/other/other-constants.mjs.map +1 -0
  99. package/dist/common/other/other-types.d.mts +166 -0
  100. package/dist/common/other/other-types.d.mts.map +1 -0
  101. package/dist/common/other/other-types.mjs +30 -0
  102. package/dist/common/other/other-types.mjs.map +1 -0
  103. package/dist/common/other/svg-constants.d.mts +2 -0
  104. package/dist/common/other/svg-constants.d.mts.map +1 -0
  105. package/dist/common/other/svg-constants.mjs +2 -0
  106. package/dist/common/other/svg-constants.mjs.map +1 -0
  107. package/dist/common/other/svg-helper.d.mts +54 -0
  108. package/dist/common/other/svg-helper.d.mts.map +1 -0
  109. package/dist/common/other/svg-helper.mjs +170 -0
  110. package/dist/common/other/svg-helper.mjs.map +1 -0
  111. package/dist/common/pic/pic-constants.d.mts +13 -0
  112. package/dist/common/pic/pic-constants.d.mts.map +1 -0
  113. package/dist/common/pic/pic-constants.mjs +13 -0
  114. package/dist/common/pic/pic-constants.mjs.map +1 -0
  115. package/dist/common/pic/pic-helper.d.mts +70 -0
  116. package/dist/common/pic/pic-helper.d.mts.map +1 -0
  117. package/dist/common/pic/pic-helper.mjs +235 -0
  118. package/dist/common/pic/pic-helper.mjs.map +1 -0
  119. package/dist/common/pic/pic-types.d.mts +23 -0
  120. package/dist/common/pic/pic-types.d.mts.map +1 -0
  121. package/dist/common/pic/pic-types.mjs +2 -0
  122. package/dist/common/pic/pic-types.mjs.map +1 -0
  123. package/dist/common/root/root-constants.d.mts +40 -0
  124. package/dist/common/root/root-constants.d.mts.map +1 -0
  125. package/dist/common/root/root-constants.mjs +40 -0
  126. package/dist/common/root/root-constants.mjs.map +1 -0
  127. package/dist/common/root/root-types.d.mts +9 -0
  128. package/dist/common/root/root-types.d.mts.map +1 -0
  129. package/dist/common/root/root-types.mjs +2 -0
  130. package/dist/common/root/root-types.mjs.map +1 -0
  131. package/dist/common/tag/tag-constants.d.mts +21 -0
  132. package/dist/common/tag/tag-constants.d.mts.map +1 -0
  133. package/dist/common/tag/tag-constants.mjs +28 -0
  134. package/dist/common/tag/tag-constants.mjs.map +1 -0
  135. package/dist/common/tag/tag-types.d.mts +14 -0
  136. package/dist/common/tag/tag-types.d.mts.map +1 -0
  137. package/dist/common/tag/tag-types.mjs +2 -0
  138. package/dist/common/tag/tag-types.mjs.map +1 -0
  139. package/dist/core-constants.d.mts +89 -0
  140. package/dist/core-constants.d.mts.map +1 -0
  141. package/dist/core-constants.mjs +484 -0
  142. package/dist/core-constants.mjs.map +1 -0
  143. package/dist/core-helper.d.mts +6 -0
  144. package/dist/core-helper.d.mts.map +1 -0
  145. package/dist/core-helper.mjs +28 -0
  146. package/dist/core-helper.mjs.map +1 -0
  147. package/dist/core-types.d.mts +520 -0
  148. package/dist/core-types.d.mts.map +1 -0
  149. package/dist/core-types.mjs +2 -0
  150. package/dist/core-types.mjs.map +1 -0
  151. package/dist/index.d.mts +2 -0
  152. package/dist/index.d.mts.map +1 -0
  153. package/dist/index.mjs +3 -0
  154. package/dist/index.mjs.map +1 -0
  155. package/dist/witness/app/app-base-v1.d.mts +130 -0
  156. package/dist/witness/app/app-base-v1.d.mts.map +1 -0
  157. package/dist/witness/app/app-base-v1.mjs +462 -0
  158. package/dist/witness/app/app-base-v1.mjs.map +1 -0
  159. package/dist/witness/app/app-constants.d.mts +10 -0
  160. package/dist/witness/app/app-constants.d.mts.map +1 -0
  161. package/dist/witness/app/app-constants.mjs +13 -0
  162. package/dist/witness/app/app-constants.mjs.map +1 -0
  163. package/dist/witness/app/app-helper.d.mts +85 -0
  164. package/dist/witness/app/app-helper.d.mts.map +1 -0
  165. package/dist/witness/app/app-helper.mjs +258 -0
  166. package/dist/witness/app/app-helper.mjs.map +1 -0
  167. package/dist/witness/app/app-types.d.mts +211 -0
  168. package/dist/witness/app/app-types.d.mts.map +1 -0
  169. package/dist/witness/app/app-types.mjs +49 -0
  170. package/dist/witness/app/app-types.mjs.map +1 -0
  171. package/dist/witness/app/chat-app/chat-app-types.d.mts +18 -0
  172. package/dist/witness/app/chat-app/chat-app-types.d.mts.map +1 -0
  173. package/dist/witness/app/chat-app/chat-app-types.mjs +25 -0
  174. package/dist/witness/app/chat-app/chat-app-types.mjs.map +1 -0
  175. package/dist/witness/app/flash-app/flash-app-types.d.mts +16 -0
  176. package/dist/witness/app/flash-app/flash-app-types.d.mts.map +1 -0
  177. package/dist/witness/app/flash-app/flash-app-types.mjs +23 -0
  178. package/dist/witness/app/flash-app/flash-app-types.mjs.map +1 -0
  179. package/dist/witness/app/raw-app/raw-app-types.d.mts +18 -0
  180. package/dist/witness/app/raw-app/raw-app-types.d.mts.map +1 -0
  181. package/dist/witness/app/raw-app/raw-app-types.mjs +25 -0
  182. package/dist/witness/app/raw-app/raw-app-types.mjs.map +1 -0
  183. package/dist/witness/app/todo-app/todo-app-types.d.ts +33 -0
  184. package/dist/witness/app/todo-app/todo-app-types.d.ts.map +1 -0
  185. package/dist/witness/app/todo-app/todo-app-types.js +31 -0
  186. package/dist/witness/app/todo-app/todo-app-types.js.map +1 -0
  187. package/dist/witness/robbot/robbot-base-v1.d.ts +432 -0
  188. package/dist/witness/robbot/robbot-base-v1.d.ts.map +1 -0
  189. package/dist/witness/robbot/robbot-base-v1.js +1407 -0
  190. package/dist/witness/robbot/robbot-base-v1.js.map +1 -0
  191. package/dist/witness/robbot/robbot-constants.d.mts +24 -0
  192. package/dist/witness/robbot/robbot-constants.d.mts.map +1 -0
  193. package/dist/witness/robbot/robbot-constants.mjs +24 -0
  194. package/dist/witness/robbot/robbot-constants.mjs.map +1 -0
  195. package/dist/witness/robbot/robbot-helper.d.mts +152 -0
  196. package/dist/witness/robbot/robbot-helper.d.mts.map +1 -0
  197. package/dist/witness/robbot/robbot-helper.mjs +609 -0
  198. package/dist/witness/robbot/robbot-helper.mjs.map +1 -0
  199. package/dist/witness/robbot/robbot-types.d.mts +539 -0
  200. package/dist/witness/robbot/robbot-types.d.mts.map +1 -0
  201. package/dist/witness/robbot/robbot-types.mjs +294 -0
  202. package/dist/witness/robbot/robbot-types.mjs.map +1 -0
  203. package/dist/witness/space/bootstrap/bootstrap-constants.d.mts +14 -0
  204. package/dist/witness/space/bootstrap/bootstrap-constants.d.mts.map +1 -0
  205. package/dist/witness/space/bootstrap/bootstrap-constants.mjs +15 -0
  206. package/dist/witness/space/bootstrap/bootstrap-constants.mjs.map +1 -0
  207. package/dist/witness/space/inner-space-v1.d.ts +63 -0
  208. package/dist/witness/space/inner-space-v1.d.ts.map +1 -0
  209. package/dist/witness/space/inner-space-v1.js +356 -0
  210. package/dist/witness/space/inner-space-v1.js.map +1 -0
  211. package/dist/witness/space/outer-space/outer-space-constants.d.mts +2 -0
  212. package/dist/witness/space/outer-space/outer-space-constants.d.mts.map +1 -0
  213. package/dist/witness/space/outer-space/outer-space-constants.mjs +2 -0
  214. package/dist/witness/space/outer-space/outer-space-constants.mjs.map +1 -0
  215. package/dist/witness/space/outer-space/outer-space-helper.d.mts +28 -0
  216. package/dist/witness/space/outer-space/outer-space-helper.d.mts.map +1 -0
  217. package/dist/witness/space/outer-space/outer-space-helper.mjs +87 -0
  218. package/dist/witness/space/outer-space/outer-space-helper.mjs.map +1 -0
  219. package/dist/witness/space/outer-space/outer-space-types.d.mts +548 -0
  220. package/dist/witness/space/outer-space/outer-space-types.d.mts.map +1 -0
  221. package/dist/witness/space/outer-space/outer-space-types.mjs +118 -0
  222. package/dist/witness/space/outer-space/outer-space-types.mjs.map +1 -0
  223. package/dist/witness/space/space-base-v1.d.mts +147 -0
  224. package/dist/witness/space/space-base-v1.d.mts.map +1 -0
  225. package/dist/witness/space/space-base-v1.mjs +350 -0
  226. package/dist/witness/space/space-base-v1.mjs.map +1 -0
  227. package/dist/witness/space/space-constants.d.mts +181 -0
  228. package/dist/witness/space/space-constants.d.mts.map +1 -0
  229. package/dist/witness/space/space-constants.mjs +192 -0
  230. package/dist/witness/space/space-constants.mjs.map +1 -0
  231. package/dist/witness/space/space-helper.d.mts +666 -0
  232. package/dist/witness/space/space-helper.d.mts.map +1 -0
  233. package/dist/witness/space/space-helper.mjs +2830 -0
  234. package/dist/witness/space/space-helper.mjs.map +1 -0
  235. package/dist/witness/space/space-types.d.mts +422 -0
  236. package/dist/witness/space/space-types.d.mts.map +1 -0
  237. package/dist/witness/space/space-types.mjs +52 -0
  238. package/dist/witness/space/space-types.mjs.map +1 -0
  239. package/dist/witness/witness-base-v1.d.ts +144 -0
  240. package/dist/witness/witness-base-v1.d.ts.map +1 -0
  241. package/dist/witness/witness-base-v1.js +300 -0
  242. package/dist/witness/witness-base-v1.js.map +1 -0
  243. package/dist/witness/witness-constants.d.mts +3 -0
  244. package/dist/witness/witness-constants.d.mts.map +1 -0
  245. package/dist/witness/witness-constants.mjs +3 -0
  246. package/dist/witness/witness-constants.mjs.map +1 -0
  247. package/dist/witness/witness-form-builder.d.mts +45 -0
  248. package/dist/witness/witness-form-builder.d.mts.map +1 -0
  249. package/dist/witness/witness-form-builder.mjs +95 -0
  250. package/dist/witness/witness-form-builder.mjs.map +1 -0
  251. package/dist/witness/witness-helper.d.mts +89 -0
  252. package/dist/witness/witness-helper.d.mts.map +1 -0
  253. package/dist/witness/witness-helper.mjs +229 -0
  254. package/dist/witness/witness-helper.mjs.map +1 -0
  255. package/dist/witness/witness-types.d.mts +211 -0
  256. package/dist/witness/witness-types.d.mts.map +1 -0
  257. package/dist/witness/witness-types.mjs +2 -0
  258. package/dist/witness/witness-types.mjs.map +1 -0
  259. package/jasmine-browser.json +18 -0
  260. package/jasmine.json +6 -0
  261. package/package.json +67 -0
  262. package/src/assumptions.spec.mts +45 -0
  263. package/src/common/aws-constants.mts +5 -0
  264. package/src/common/bin/bin-types.mts +17 -0
  265. package/src/common/cache/cache-types.mts +53 -0
  266. package/src/common/comment/comment-constants.mts +10 -0
  267. package/src/common/comment/comment-helper.mts +211 -0
  268. package/src/common/comment/comment-types.mts +19 -0
  269. package/src/common/display/display-helper.mts +88 -0
  270. package/src/common/display/display-types.mts +108 -0
  271. package/src/common/encrypt/encrypt-constants.mts +28 -0
  272. package/src/common/encrypt/encrypt-types.mts +130 -0
  273. package/src/common/error/error-constants.mts +8 -0
  274. package/src/common/error/error-helper.mts +155 -0
  275. package/src/common/error/error-types.mts +62 -0
  276. package/src/common/form/form-helper.mts +253 -0
  277. package/src/common/form/form-items.mts +236 -0
  278. package/src/common/import-export/import-export-types.mts +18 -0
  279. package/src/common/legacy/about-legacy.md +0 -0
  280. package/src/common/legacy/legacy-types.mts +0 -0
  281. package/src/common/link/link-constants.mts +1 -0
  282. package/src/common/link/link-helper.mts +155 -0
  283. package/src/common/link/link-types.mts +16 -0
  284. package/src/common/other/graph-helper.mts +853 -0
  285. package/src/common/other/ibgib-helper.mts +671 -0
  286. package/src/common/other/other-constants.mts +76 -0
  287. package/src/common/other/other-types.mts +186 -0
  288. package/src/common/other/svg-constants.mts +1 -0
  289. package/src/common/other/svg-helper.mts +238 -0
  290. package/src/common/pic/pic-constants.mts +13 -0
  291. package/src/common/pic/pic-helper.mts +295 -0
  292. package/src/common/pic/pic-types.mts +29 -0
  293. package/src/common/root/root-constants.mts +41 -0
  294. package/src/common/root/root-types.mts +8 -0
  295. package/src/common/tag/tag-constants.mts +34 -0
  296. package/src/common/tag/tag-types.mts +19 -0
  297. package/src/core-constants.mts +506 -0
  298. package/src/core-helper.mts +33 -0
  299. package/src/core-types.mts +519 -0
  300. package/src/helper.spec.mts +64 -0
  301. package/src/index.mts +1 -0
  302. package/src/witness/app/app-base-v1.mts +584 -0
  303. package/src/witness/app/app-constants.mts +16 -0
  304. package/src/witness/app/app-helper.mts +322 -0
  305. package/src/witness/app/app-types.mts +252 -0
  306. package/src/witness/app/chat-app/chat-app-types.mts +40 -0
  307. package/src/witness/app/flash-app/flash-app-types.mts +38 -0
  308. package/src/witness/app/raw-app/raw-app-types.mts +40 -0
  309. package/src/witness/app/todo-app/todo-app-types.ts +59 -0
  310. package/src/witness/robbot/robbot-base-v1.ts +1531 -0
  311. package/src/witness/robbot/robbot-constants.mts +25 -0
  312. package/src/witness/robbot/robbot-helper.mts +676 -0
  313. package/src/witness/robbot/robbot-helper.spec.mts +135 -0
  314. package/src/witness/robbot/robbot-types.mts +797 -0
  315. package/src/witness/space/bootstrap/bootstrap-constants.mts +15 -0
  316. package/src/witness/space/inner-space-v1.ts +372 -0
  317. package/src/witness/space/outer-space/outer-space-constants.mts +1 -0
  318. package/src/witness/space/outer-space/outer-space-helper.mts +91 -0
  319. package/src/witness/space/outer-space/outer-space-types.mts +627 -0
  320. package/src/witness/space/space-base-v1.mts +414 -0
  321. package/src/witness/space/space-constants.mts +208 -0
  322. package/src/witness/space/space-helper.mts +3242 -0
  323. package/src/witness/space/space-types.mts +476 -0
  324. package/src/witness/witness-base-v1.ts +325 -0
  325. package/src/witness/witness-constants.mts +2 -0
  326. package/src/witness/witness-form-builder.mts +128 -0
  327. package/src/witness/witness-helper.mts +256 -0
  328. package/src/witness/witness-types.mts +249 -0
  329. package/tsconfig.json +15 -0
  330. package/tsconfig.test.json +10 -0
@@ -0,0 +1,584 @@
1
+ import {
2
+ IbGib_V1, IbGibRel8ns_V1,
3
+ } from '@ibgib/ts-gib/dist/V1/index.mjs';
4
+
5
+ import {
6
+ AppData_V1, AppRel8ns_V1, AppIbGib_V1,
7
+ AppCmd,
8
+ AppCmdData, AppCmdRel8ns, AppCmdIbGib,
9
+ AppResultData, AppResultRel8ns, AppResultIbGib,
10
+ } from './app-types.mjs';
11
+ import { WitnessBase_V1, } from '../witness-base-v1';
12
+ import { CommentIbGib_V1 } from '../../common/comment/comment-types.mjs';
13
+ import { PicIbGib_V1 } from '../../common/pic/pic-types.mjs';
14
+ import { ErrorIbGib_V1 } from '../../common/error/error-types.mjs';
15
+ import { validateCommonAppData } from './app-helper.mjs';
16
+ import { argy_, isArg, resulty_ } from '../witness-helper.mjs';
17
+ import { IbGibLocalSpaceService_AllPowerful } from '../../core-types.mjs';
18
+ import { pretty } from '@ibgib/helper-gib';
19
+ import { GLOBAL_LOG_A_LOT } from '../../core-constants.mjs';
20
+ import { errorIbGib } from '../../common/error/error-helper.mjs';
21
+ import { getIbGibAddr } from '@ibgib/ts-gib';
22
+
23
+ const logalot = GLOBAL_LOG_A_LOT || false;
24
+
25
+ /**
26
+ * ## distinguishing characteristics of apps
27
+ *
28
+ * So for example, one of the simplest apps is one which
29
+ * ...
30
+ *
31
+ * ## architecture
32
+ *
33
+ * ...
34
+ */
35
+ export abstract class AppBase_V1<
36
+ TOptionsData extends any = any,
37
+ TOptionsRel8ns extends IbGibRel8ns_V1 = IbGibRel8ns_V1,
38
+ TOptionsIbGib extends IbGib_V1<TOptionsData, TOptionsRel8ns>
39
+ = IbGib_V1<TOptionsData, TOptionsRel8ns>,
40
+ TResultData extends any = any,
41
+ TResultRel8ns extends IbGibRel8ns_V1 = IbGibRel8ns_V1,
42
+ TResultIbGib extends IbGib_V1<TResultData, TResultRel8ns> | ErrorIbGib_V1
43
+ = IbGib_V1<TResultData, TResultRel8ns>,
44
+ TData extends AppData_V1 = AppData_V1,
45
+ TRel8ns extends AppRel8ns_V1 = AppRel8ns_V1,
46
+ >
47
+ extends WitnessBase_V1<
48
+ TOptionsData, TOptionsRel8ns, TOptionsIbGib,
49
+ TResultData, TResultRel8ns, TResultIbGib,
50
+ TData, TRel8ns>
51
+ implements AppIbGib_V1 {
52
+
53
+ /**
54
+ * Log context for convenience with logging. (Ignore if you don't want to use this.)
55
+ */
56
+ protected lc: string = `${super.lc}[${AppBase_V1.name}]`;
57
+ // protected lc: string = `[${AppBase_V1.name}]`;
58
+
59
+ // getAppIb(classname: string): string {
60
+ // const lc = `${this.lc}[${this.getAppIb.name}]`;
61
+ // if (!classname) {
62
+ // classname = this.lc?.replace('[','').replace(']','') || AppBase_V1.name+'_descendant';
63
+ // console.warn(`${lc} classname is falsy. Using ${classname}.`);
64
+ // }
65
+ // const name = this.data?.name || IBGIB_SPACE_NAME_DEFAULT;
66
+ // const id = this.data?.uuid || undefined;
67
+ // return `witness space ${classname} ${name} ${id}`;
68
+ // }
69
+
70
+ /**
71
+ * Reference to the local ibgibs service, which is one way at getting at the
72
+ * local user space.
73
+ */
74
+ ibgibsSvc: IbGibLocalSpaceService_AllPowerful | undefined;
75
+
76
+ constructor(initialData?: TData, initialRel8ns?: TRel8ns) {
77
+ super(initialData, initialRel8ns);
78
+ }
79
+
80
+ /**
81
+ * At this point in time, the arg has already been intrinsically validated,
82
+ * as well as the internal state of this app. so whatever this app's
83
+ * function is, it should be good to go.
84
+ *
85
+ * In the base class, this just returns {@link routeAndDoArg}. If you don't
86
+ * want to route, then override this.
87
+ */
88
+ protected async witnessImpl(arg: TOptionsIbGib): Promise<TResultIbGib | undefined> {
89
+ const lc = `${this.lc}[${this.witnessImpl.name}]`;
90
+ try {
91
+ if (logalot) { console.log(`${lc} starting...`); }
92
+
93
+ if (this.ibgibsSvc) {
94
+ // check for newer version of self locally before executing
95
+ const appAddr = getIbGibAddr({ ibGib: this });
96
+ const latestAddr = await this.ibgibsSvc.getLatestAddr({ ibGib: this });
97
+ if (latestAddr && latestAddr !== appAddr) {
98
+ // app has a newer ibgib in its timeline
99
+ let resGet = await this.ibgibsSvc.get({ addr: latestAddr });
100
+ if (!resGet || !resGet?.success || (resGet?.ibGibs ?? []).length === 0) {
101
+ throw new Error(`could not get newer app ibgib (E: 15fa346c8ac17edb96e4b0870104c122)`);
102
+ }
103
+ await this.loadIbGibDto(resGet.ibGibs![0] as IbGib_V1<TData, TRel8ns>);
104
+ const validationErrors = await this.validateThis();
105
+ if (validationErrors?.length > 0) { throw new Error(`validationErrors when loading newer version: ${pretty(validationErrors)} (E: 0d9f0684a1ff6af44e20a57130e3ac22)`); }
106
+ }
107
+ }
108
+ return this.routeAndDoArg({ arg });
109
+ } catch (error) {
110
+ console.error(`${lc} ${error.message}`);
111
+ throw error;
112
+ } finally {
113
+ if (logalot) { console.log(`${lc} complete.`); }
114
+ }
115
+ }
116
+
117
+ /**
118
+ * Base routing executes different if incoming is a cmd options arg, i.e.,
119
+ * if the `data.cmd` is truthy (atow). If {@link isArg} is true, then routes
120
+ * to {@link doCmdArg}; else routes to {@link doDefault}.
121
+ *
122
+ * Override this function to create more advanced custom routing.
123
+ *
124
+ * ## notes
125
+ *
126
+ * I'm not overly thrilled with this, but it's a watered down version of
127
+ * what I've implemented in the space witness hierarchy.
128
+ *
129
+ * @see {@link isArg}
130
+ * @see {@link doCmdArg}
131
+ * @see {@link doDefault}.
132
+ */
133
+ protected async routeAndDoArg({
134
+ arg,
135
+ }: {
136
+ arg: TOptionsIbGib,
137
+ }): Promise<TResultIbGib | undefined> {
138
+ const lc = `${this.lc}[${this.routeAndDoArg.name}]`;
139
+ try {
140
+ if (logalot) { console.log(`${lc} starting...`); }
141
+ if (isArg({ ibGib: arg as IbGib_V1 })) {
142
+ if ((arg.data as any).cmd) {
143
+ return this.doCmdArg({ arg: arg as AppCmdIbGib<IbGib_V1, AppCmdData, AppCmdRel8ns> });
144
+ } else {
145
+ return this.doDefault({ ibGib: arg });
146
+ }
147
+ }
148
+ } catch (error) {
149
+ console.error(`${lc} ${error.message}`);
150
+ if (this.data?.catchAllErrors) {
151
+ return (await errorIbGib({ rawMsg: error.message })) as TResultIbGib;
152
+ } else {
153
+ throw error;
154
+ }
155
+ } finally {
156
+ if (logalot) { console.log(`${lc} complete.`); }
157
+ }
158
+ }
159
+
160
+ // #region do cmd args
161
+
162
+ /**
163
+ * By default, this routes to {@link doCmdIb}, {@link doCmdGib} & {@link doCmdIbgib}.
164
+ * Override this and route to other commands before calling this with `super.doCmdArg`
165
+ * (if you still want to use this function.)
166
+ *
167
+ * You can also override the routing
168
+ */
169
+ protected doCmdArg({
170
+ arg,
171
+ }: {
172
+ arg: AppCmdIbGib<IbGib_V1, AppCmdData, AppCmdRel8ns>,
173
+ }): Promise<TResultIbGib> {
174
+ const lc = `${this.lc}[${this.doCmdArg.name}]`;
175
+ try {
176
+ if (logalot) { console.log(`${lc} starting...`); }
177
+ if (!arg.data?.cmd) { throw new Error(`invalid cmd arg. arg.data.cmd required. (E: aec4dd5bd967fbf36f9c4fad22210222)`); }
178
+ if (arg.data.cmd === AppCmd.ib) {
179
+ return this.doCmdIb({ arg: arg });
180
+ } else if (arg.data.cmd === AppCmd.gib) {
181
+ return this.doCmdGib({ arg: arg });
182
+ } else if (arg.data.cmd === AppCmd.ibgib) {
183
+ return this.doCmdIbgib({ arg: arg });
184
+ } else {
185
+ throw new Error(`unknown arg.data.cmd: ${arg.data.cmd} (E: 721fa6a5166327134f9504c1caa3e422)`);
186
+ }
187
+ } catch (error) {
188
+ console.error(`${lc} ${error.message}`);
189
+ throw error;
190
+ } finally {
191
+ if (logalot) { console.log(`${lc} complete.`); }
192
+ }
193
+ }
194
+
195
+ protected doCmdIb({
196
+ arg,
197
+ }: {
198
+ arg: IbGib_V1,
199
+ }): Promise<TResultIbGib> {
200
+ const lc = `${this.lc}[${this.doCmdIb.name}]`;
201
+ try {
202
+ if (logalot) { console.log(`${lc} starting...`); }
203
+ throw new Error(`not implemented in base class (E: 7298662a2b8f67611d16a8af0e499422)`);
204
+ } catch (error) {
205
+ console.error(`${lc} ${error.message}`);
206
+ throw error;
207
+ } finally {
208
+ if (logalot) { console.log(`${lc} complete.`); }
209
+ }
210
+ }
211
+ protected doCmdGib({
212
+ arg,
213
+ }: {
214
+ arg: IbGib_V1,
215
+ }): Promise<TResultIbGib> {
216
+ const lc = `${this.lc}[${this.doCmdGib.name}]`;
217
+ try {
218
+ if (logalot) { console.log(`${lc} starting...`); }
219
+ throw new Error(`not implemented in base class (E: b6bf2c788c734051956481be7283d006)`);
220
+ } catch (error) {
221
+ console.error(`${lc} ${error.message}`);
222
+ throw error;
223
+ } finally {
224
+ if (logalot) { console.log(`${lc} complete.`); }
225
+ }
226
+ }
227
+ protected doCmdIbgib({
228
+ arg,
229
+ }: {
230
+ arg: IbGib_V1,
231
+ }): Promise<TResultIbGib> {
232
+ const lc = `${this.lc}[${this.doCmdIbgib.name}]`;
233
+ try {
234
+ if (logalot) { console.log(`${lc} starting...`); }
235
+ throw new Error(`not implemented in base class (E: 4fee11f05315467abd036cd8555d27db)`);
236
+ } catch (error) {
237
+ console.error(`${lc} ${error.message}`);
238
+ throw error;
239
+ } finally {
240
+ if (logalot) { console.log(`${lc} complete.`); }
241
+ }
242
+ }
243
+
244
+ // #endregion do cmd args
245
+
246
+ // #region other stubbed do functions (doPic, doComment, doDefault)
247
+
248
+ /**
249
+ * Stubbed in base class for convenience. Doesn't have to be implemented.
250
+ */
251
+ protected doPic({
252
+ ibGib,
253
+ }: {
254
+ ibGib: PicIbGib_V1,
255
+ }): Promise<TResultIbGib | undefined> {
256
+ const lc = `${this.lc}[${this.doPic.name}]`;
257
+ try {
258
+ if (logalot) { console.log(`${lc} starting...`); }
259
+ throw new Error(`not implemented in base class (E: 16ba889931644d42ad9e476757dd0617)`);
260
+ } catch (error) {
261
+ console.error(`${lc} ${error.message}`);
262
+ throw error;
263
+ } finally {
264
+ if (logalot) { console.log(`${lc} complete.`); }
265
+ }
266
+ }
267
+
268
+ /**
269
+ * Stubbed in base class for convenience. Doesn't have to be implemented.
270
+ */
271
+ protected doComment({
272
+ ibGib,
273
+ }: {
274
+ ibGib: CommentIbGib_V1,
275
+ }): Promise<TResultIbGib | undefined> {
276
+ const lc = `${this.lc}[${this.doComment.name}]`;
277
+ try {
278
+ if (logalot) { console.log(`${lc} starting...`); }
279
+
280
+ throw new Error(`not implemented in base class (E: 0486a7864729456d993a1afe246faea4)`);
281
+ } catch (error) {
282
+ console.error(`${lc} ${error.message}`);
283
+ throw error;
284
+ } finally {
285
+ if (logalot) { console.log(`${lc} complete.`); }
286
+ }
287
+ }
288
+
289
+ /**
290
+ * Stubbed in base class for convenience. Doesn't have to be implemented.
291
+ */
292
+ protected doDefault({
293
+ ibGib,
294
+ }: {
295
+ ibGib: TOptionsIbGib,
296
+ }): Promise<TResultIbGib | undefined> {
297
+ const lc = `${this.lc}[${this.doDefault.name}]`;
298
+ try {
299
+ if (logalot) { console.log(`${lc} starting...`); }
300
+ throw new Error(`not implemented in base class (E: 5038662186617aaf1f0cc698fd1f9622)`);
301
+ // return this.doDefaultImpl({ibGib});
302
+ } catch (error) {
303
+ console.error(`${lc} ${error.message}`);
304
+ throw error;
305
+ } finally {
306
+ if (logalot) { console.log(`${lc} complete.`); }
307
+ }
308
+ }
309
+
310
+ // #endregion other stubbed do functions (doPic, doComment, doDefault)
311
+
312
+ // /**
313
+ // * By default, this...
314
+ // *
315
+ // * * performs the raw {@link rel8} transform to the given `ibGib`.
316
+ // * * persists the new ibgib's transform result in the given space.
317
+ // * * registers the newer version of this app ibgib with the ibgibs svc.
318
+ // *
319
+ // * @see {@link ibGibs}
320
+ // * @see {@link rel8nName}
321
+ // * @see {@link ibgibsSvc}
322
+ // * @see {@link space}
323
+ // *
324
+ // * ## notes
325
+ // *
326
+ // * * If there is no given `space`, then we will use the `ibgibsSvc` to get
327
+ // * the local user space. If none, then we skip persistence.
328
+ // * * If there is no `ibgibsSvc`, we won't register the new ibgibs locally.
329
+ // */
330
+ // protected async rel8To({
331
+ // ibGibs,
332
+ // rel8nName,
333
+ // ibgibsSvc,
334
+ // space,
335
+ // }: {
336
+ // /**
337
+ // * The ibgib to which we are relating.
338
+ // */
339
+ // ibGibs: IbGib_V1[],
340
+ // /**
341
+ // * If given, will use this as the rel8n name when performing the `rel8`
342
+ // * transform.
343
+ // *
344
+ // * If not given, will use the `app.data`'s {@link AppData_V1.defaultRel8nName} value.
345
+ // */
346
+ // rel8nName?: string,
347
+ // /**
348
+ // * If provided, will register the newly created ibgib.
349
+ // */
350
+ // ibgibsSvc?: IbgibsService,
351
+ // /**
352
+ // * If given (which atow is most likely the case), then the {@link TransformResult} will
353
+ // * be persisted in this `space`.
354
+ // */
355
+ // space?: IbGibSpaceAny,
356
+ // }): Promise<void> {
357
+ // const lc = `${this.lc}[${this.rel8To.name}]`;
358
+ // try {
359
+ // if (logalot) { console.log(`${lc} starting...`); }
360
+
361
+ // // #region initialize, validate args and this
362
+
363
+ // if ((ibGibs ?? []).length === 0) { throw new Error(`ibGibs required (E: 2fd13de0f025b170885bede4d7a50922)`); }
364
+
365
+ // rel8nName = rel8nName || this.data?.defaultRel8nName;
366
+ // if (!rel8nName) { throw new Error(`rel8nName required either as an arg or in this.data.defaultRel8nName (E: 43ab8ae63694a2a82cd8a70ed6b6b522)`); }
367
+
368
+ // const thisValidationErrors = await this.validateThis();
369
+ // if (thisValidationErrors?.length > 0) { throw new Error(`this is an invalid ibGib. thisValidationErrors: ${thisValidationErrors.join('|')} (E: 8f08716866cd13bf254222ee9e6a6722)`); }
370
+
371
+ // if (!ibgibsSvc) {
372
+ // if (this.ibgibsSvc) {
373
+ // if (logalot) { console.log(`${lc} ibgibsSvc arg falsy, but we have a reference on this object, which we will use. (I: ee0d39a47ee8aee8ffd797721fea4322)`); }
374
+ // ibgibsSvc = this.ibgibsSvc;
375
+ // }
376
+ // }
377
+
378
+ // if (!space) {
379
+ // if (ibgibsSvc) {
380
+ // if (logalot) { console.log(`${lc} space arg falsy, but ibgibsSvc truthy, so we'll use ibgibsSvc's local user space for persistence. (I: 37a4b4c1406556cb23831671755b0d22)`); }
381
+ // space = await ibgibsSvc.getLocalUserSpace({ lock: true });
382
+ // }
383
+ // }
384
+
385
+ // // #endregion initialize, validate args and this
386
+
387
+
388
+
389
+ // // we want to rel8 only to the ibGibs whose timelines we're not
390
+ // // already related to. So we look to see if we already have the tjpGib
391
+ // // per our rel8nName.
392
+ // const alreadyRel8dAddrs = this.rel8ns[rel8nName] ?? [];
393
+ // const alreadyRel8dTjpGibs = alreadyRel8dAddrs.map(x => getGibInfo({ ibGibAddr: x }).tjpGib);
394
+ // const ibGibsNotYetRel8dByTjp = ibGibs.filter(x => {
395
+ // const tjpGib = getGibInfo({ ibGibAddr: h.getIbGibAddr({ ibGib: x }) }).tjpGib;
396
+ // return !alreadyRel8dTjpGibs.includes(tjpGib);
397
+ // });
398
+
399
+ // if (ibGibsNotYetRel8dByTjp.length === 0) {
400
+ // if (logalot) { console.log(`${lc} already rel8d to all incoming ibGib(s) via tjp. (I: 5e9d94a98ba262f146c0c0b765157922)`); }
401
+ // return; /* <<<< returns early */
402
+ // }
403
+
404
+ // // perform the raw ibgib rel8 transform
405
+ // const addrs = ibGibsNotYetRel8dByTjp.map(x => h.getIbGibAddr({ ibGib: x }));
406
+ // const resNewApp = await V1.rel8({
407
+ // src: this.toIbGibDto(),
408
+ // rel8nsToAddByAddr: { [rel8nName]: addrs },
409
+ // linkedRel8ns: ["past", "ancestor"], // we only want the most recent key address
410
+ // dna: true,
411
+ // nCounter: true,
412
+ // });
413
+ // const newAppIbGib = <IbGib_V1<TData, TRel8ns>>resNewApp.newIbGib;
414
+ // const newAppValidationErrors =
415
+ // await validateIbGibIntrinsically({ ibGib: newAppIbGib });
416
+ // if (newAppValidationErrors?.length > 0) { throw new Error(`new app would have validation errors. aborting. newAppValidationErrors: ${newAppValidationErrors.join('|')} (E: eb816a27156c246c121ef55e37d59322)`); }
417
+
418
+ // // if space is given, perform the persistence
419
+ // if (space) {
420
+ // await persistTransformResult({ resTransform: resNewApp, space });
421
+ // } else {
422
+ // if (logalot) { console.log(`${lc} space falsy, skipping persistence (I: 90aa3553e92ad1d02bce61f83648ea22)`); }
423
+ // }
424
+
425
+ // // if ibgibs svc is given, register the new ibgib
426
+ // // (in the future, need to revisit the ibgibs service to the idea of locality/ies).
427
+ // if (ibgibsSvc) {
428
+ // await ibgibsSvc.registerNewIbGib({ ibGib: newAppIbGib, space });
429
+ // } else {
430
+ // if (logalot) { console.log(`${lc} ibgibsSvc falsy so skipping registerNewIbGib for new app (I: eda4f68fffaf2435eba25cd39d4f2922)`); }
431
+ // }
432
+
433
+ // // update this witness' primary ibGib properties (ib, gib, data, rel8ns).
434
+ // // override `loadIbGibDto` to update secondary/derivative properties
435
+ // await this.loadIbGibDto(newAppIbGib);
436
+ // } catch (error) {
437
+ // console.error(`${lc} ${error.message}`);
438
+ // throw error;
439
+ // } finally {
440
+ // if (logalot) { console.log(`${lc} complete.`); }
441
+ // }
442
+ // }
443
+
444
+ /**
445
+ * validates against common app qualities.
446
+ *
447
+ * Override this with a call to `super.validateThis` for custom validation
448
+ * for descending app classes.
449
+ *
450
+ * @returns validation errors common to all apps, if any errors exist.
451
+ */
452
+ protected async validateThis(): Promise<string[]> {
453
+ const lc = `${this.lc}[${this.validateThis.name}]`;
454
+ try {
455
+ if (logalot) { console.log(`${lc} starting...`); }
456
+ if (!this.data) {
457
+
458
+ }
459
+ const errors = [
460
+ // ...await super.validateThis(),
461
+ ...validateCommonAppData({ appData: this.data }),
462
+ ];
463
+ return errors;
464
+ } catch (error) {
465
+ console.error(`${lc} ${error.message}`);
466
+ throw error;
467
+ } finally {
468
+ if (logalot) { console.log(`${lc} complete.`); }
469
+ }
470
+ }
471
+
472
+ /**
473
+ * builds an arg ibGib.
474
+ *
475
+ * wrapper convenience to avoid long generic calls.
476
+ */
477
+ async argy<
478
+ TCmdOptionsData extends AppCmdData = AppCmdData,
479
+ TCmdOptionsRel8ns extends AppCmdRel8ns = AppCmdRel8ns,
480
+ TCmdOptionsIbGib extends AppCmdIbGib<IbGib_V1, TCmdOptionsData, TCmdOptionsRel8ns> =
481
+ AppCmdIbGib<IbGib_V1, TCmdOptionsData, TCmdOptionsRel8ns>
482
+ >({
483
+ argData,
484
+ ibMetadata,
485
+ noTimestamp,
486
+ ibGibs,
487
+ }: {
488
+ argData: TCmdOptionsData,
489
+ ibMetadata?: string,
490
+ noTimestamp?: boolean,
491
+ ibGibs?: IbGib_V1[],
492
+ }): Promise<TCmdOptionsIbGib> {
493
+ const arg = await argy_<TCmdOptionsData, TCmdOptionsRel8ns, TCmdOptionsIbGib>({
494
+ argData,
495
+ ibMetadata,
496
+ noTimestamp
497
+ });
498
+
499
+ if (ibGibs) { arg.ibGibs = ibGibs; }
500
+
501
+ return arg;
502
+ }
503
+
504
+ /**
505
+ * builds a result ibGib, if indeed a result ibgib is required.
506
+ *
507
+ * This is only useful in apps that have more structured inputs/outputs.
508
+ * For those that simply accept any ibgib incoming and return a
509
+ * primitive like ib^gib or whatever, then this is unnecessary.
510
+ *
511
+ * wrapper convenience to avoid long generic calls.
512
+ */
513
+ async resulty<
514
+ TResultData extends AppResultData = AppResultData,
515
+ TResultRel8ns extends AppResultRel8ns = AppResultRel8ns,
516
+ TResultIbGib extends AppResultIbGib<IbGib_V1, TResultData, TResultRel8ns> =
517
+ AppResultIbGib<IbGib_V1, TResultData, TResultRel8ns>
518
+ >({
519
+ resultData,
520
+ ibGibs,
521
+ }: {
522
+ resultData: TResultData,
523
+ ibGibs?: IbGib_V1[],
524
+ }): Promise<TResultIbGib> {
525
+ const result = await resulty_<TResultData, TResultIbGib>({
526
+ // ibMetadata: getAppResultMetadata({space: this}),
527
+ resultData,
528
+ });
529
+ if (ibGibs) { result.ibGibs = ibGibs; }
530
+ return result;
531
+ }
532
+
533
+ // protected async rel8ToIbGib({
534
+ // ibGibToRel8,
535
+ // ibGibAddrToRel8,
536
+ // contextIbGib,
537
+ // rel8nNames,
538
+ // }: {
539
+ // ibGibToRel8?: IbGib_V1,
540
+ // ibGibAddrToRel8?: IbGibAddr,
541
+ // contextIbGib: IbGib_V1,
542
+ // rel8nNames: string[],
543
+ // }): Promise<void> {
544
+ // const lc = `${this.lc}[${this.rel8ToIbGib.name}]`;
545
+ // try {
546
+ // if (!ibGibToRel8 && !ibGibAddrToRel8) { throw new Error(`ibGibToRel8 or ibGibAddrToRel8 required (E: 3ee14659fd22355a5ba0e537a477be22)`); }
547
+ // if (!contextIbGib) { throw new Error(`contextIbGib required (E: 85f27c7cbf713704c21084c141cd8822)`); }
548
+
549
+ // if ((rel8nNames ?? []).length === 0) {
550
+ // if (!this.data?.defaultRel8nName) { throw new Error(`either rel8nNames or this.data.defaultRel8nName required (E: a14ab4b3e479d9274c61bc5a30bc2222)`); }
551
+ // rel8nNames = [this.data.defaultRel8nName];
552
+ // }
553
+
554
+ // // set up the rel8ns to add
555
+ // const rel8nsToAddByAddr: IbGibRel8ns_V1 = {};
556
+ // ibGibAddrToRel8 = ibGibAddrToRel8 || h.getIbGibAddr({ ibGib: ibGibToRel8 });
557
+ // rel8nNames.forEach((rel8nName) => { rel8nsToAddByAddr[rel8nName] = [ibGibAddrToRel8]; });
558
+
559
+ // // perform the rel8 transform and...
560
+ // const resRel8ToContext =
561
+ // await V1.rel8({
562
+ // src: contextIbGib,
563
+ // rel8nsToAddByAddr,
564
+ // dna: true,
565
+ // nCounter: true
566
+ // });
567
+
568
+ // // ...persist it...
569
+ // await this.ibgibsSvc.persistTransformResult({ resTransform: resRel8ToContext });
570
+
571
+ // // ...register the context.
572
+ // const { newIbGib: newContext } = resRel8ToContext;
573
+ // await this.ibgibsSvc.registerNewIbGib({ ibGib: newContext });
574
+ // } catch (error) {
575
+ // console.error(`${lc} ${error.message}`);
576
+ // throw error;
577
+ // }
578
+ // }
579
+
580
+ }
581
+
582
+ export interface IbGibAppAny
583
+ extends AppBase_V1<any, any, any, any, any, any, any, any> {
584
+ }
@@ -0,0 +1,16 @@
1
+ import { Ib } from '@ibgib/ts-gib'
2
+
3
+ export const DEFAULT_META_IB_STARTS: Ib[] = [
4
+ 'tags', 'tag ', 'settings', 'setting ', 'witness space ',
5
+ ]
6
+ export const SPECIAL_URLS = [
7
+ 'tags', 'home'
8
+ ];
9
+
10
+ /**
11
+ * When showing a menu item, this is the max length
12
+ */
13
+ export const MENU_ITEM_IB_SUBSTRING_LENGTH = 20;
14
+
15
+ export const QUERY_PARAM_PAUSED = 'paused';
16
+ export const QUERY_PARAM_ROBBOT = 'robbot';