@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,609 @@
1
+ import { UUID_REGEXP, delay, getSaferSubstring, getTimestampInTicks, getUUID, pretty } from '@ibgib/helper-gib';
2
+ import { validateGib, validateIb, validateIbGibIntrinsically } from '@ibgib/ts-gib/dist/V1/validate-helper.mjs';
3
+ import { GIB, getGib, getGibInfo, } from '@ibgib/ts-gib/dist/V1/index.mjs';
4
+ import { WitnessFormBuilder } from '../witness-form-builder.mjs';
5
+ import { DEFAULT_INTERACTION_SUBJECTTJPGIBS_DELIM, UNDEFINED_INTERACTION_SUBJECTTJPGIBS_STRING, DEFAULT_ROBBOT_REQUEST_ESCAPE_STRING, RobbotInteractionType, ROBBOT_INTERACTION_ATOM, ROBBOT_SESSION_ATOM, DEFAULT_ROBBOT_REQUEST_MAX_LENGTH, } from './robbot-types.mjs';
6
+ import { persistTransformResult, registerNewIbGib, rel8ToSpecialIbGib } from '../space/space-helper.mjs';
7
+ import { isComment, parseCommentIb } from '../../common/comment/comment-helper.mjs';
8
+ import { ROBBOT_REL8N_NAME } from './robbot-constants.mjs';
9
+ import { GLOBAL_LOG_A_LOT, ROBBOT_NAME_REGEXP, ROBBOT_PREFIX_SUFFIX_REGEXP, ROBBOT_PREFIX_SUFFIX_REGEXP_DESC } from '../../core-constants.mjs';
10
+ const logalot = GLOBAL_LOG_A_LOT || false;
11
+ export function getRobbotResultMetadata({ robbot }) {
12
+ return `${robbot.ib} ${getTimestampInTicks()}`;
13
+ }
14
+ export function validateCommonRobbotData({ robbotData, }) {
15
+ const lc = `[${validateCommonRobbotData.name}]`;
16
+ try {
17
+ if (logalot) {
18
+ console.log(`${lc} starting...`);
19
+ }
20
+ if (!robbotData) {
21
+ throw new Error(`robbotData required (E: 1ac78ffae5354b67acb64a34cfe23c2f)`);
22
+ }
23
+ const errors = [];
24
+ const { name, uuid, classname, outputPrefix, outputSuffix, } = robbotData;
25
+ if (name) {
26
+ if (!name.match(ROBBOT_NAME_REGEXP)) {
27
+ errors.push(`name must match regexp: ${ROBBOT_NAME_REGEXP}`);
28
+ }
29
+ }
30
+ else {
31
+ errors.push(`name required.`);
32
+ }
33
+ if (uuid) {
34
+ if (!uuid.match(UUID_REGEXP)) {
35
+ errors.push(`uuid must match regexp: ${UUID_REGEXP}`);
36
+ }
37
+ }
38
+ else {
39
+ errors.push(`uuid required.`);
40
+ }
41
+ if (outputPrefix) {
42
+ if (!outputPrefix.match(ROBBOT_PREFIX_SUFFIX_REGEXP)) {
43
+ errors.push(`outputPrefix must match regexp: ${ROBBOT_PREFIX_SUFFIX_REGEXP}`);
44
+ }
45
+ }
46
+ if (outputSuffix) {
47
+ if (!outputSuffix.match(ROBBOT_PREFIX_SUFFIX_REGEXP)) {
48
+ errors.push(`outputSuffix must match regexp: ${ROBBOT_PREFIX_SUFFIX_REGEXP}`);
49
+ }
50
+ }
51
+ if (classname) {
52
+ if (!classname.match(ROBBOT_NAME_REGEXP)) {
53
+ errors.push(`classname must match regexp: ${ROBBOT_NAME_REGEXP}`);
54
+ }
55
+ }
56
+ return errors;
57
+ }
58
+ catch (error) {
59
+ console.error(`${lc} ${error.message}`);
60
+ throw error;
61
+ }
62
+ finally {
63
+ if (logalot) {
64
+ console.log(`${lc} complete.`);
65
+ }
66
+ }
67
+ }
68
+ export async function validateCommonRobbotIbGib({ robbotIbGib, }) {
69
+ const lc = `[${validateCommonRobbotIbGib.name}]`;
70
+ try {
71
+ const intrinsicErrors = await validateIbGibIntrinsically({ ibGib: robbotIbGib }) ?? [];
72
+ if (!robbotIbGib.data) {
73
+ throw new Error(`robbotIbGib.data required (E: 754a8d2540610696aff04b0d159daa23)`);
74
+ }
75
+ const ibErrors = [];
76
+ if (logalot) {
77
+ console.log(`${lc} starting... (I: f7b34d791a483b8c5a9d188da66d3f22)`);
78
+ }
79
+ let { robbotClassname, robbotName, robbotId } = parseRobbotIb({ robbotIb: robbotIbGib.ib });
80
+ if (!robbotClassname) {
81
+ ibErrors.push(`robbotClassname required (E: 3234d39bf1c74ec3aff59f374282dfc8)`);
82
+ }
83
+ if (!robbotName) {
84
+ ibErrors.push(`robbotName required (E: b329dcc62ff548d7aa0681393b2c7057)`);
85
+ }
86
+ if (!robbotId) {
87
+ ibErrors.push(`robbotId required (E: b562c953bfaf4dd49e4d3a08304ee2fc)`);
88
+ }
89
+ const dataErrors = validateCommonRobbotData({ robbotData: robbotIbGib.data });
90
+ let result = [...(intrinsicErrors ?? []), ...(ibErrors ?? []), ...(dataErrors ?? [])];
91
+ if (result.length > 0) {
92
+ return result;
93
+ }
94
+ else {
95
+ return undefined;
96
+ }
97
+ }
98
+ catch (error) {
99
+ console.error(`${lc} ${error.message}`);
100
+ throw error;
101
+ }
102
+ finally {
103
+ if (logalot) {
104
+ console.log(`${lc} complete.`);
105
+ }
106
+ }
107
+ }
108
+ export function getRobbotIb({ robbotData, classname, }) {
109
+ const lc = `[${getRobbotIb.name}]`;
110
+ try {
111
+ const validationErrors = validateCommonRobbotData({ robbotData });
112
+ if (validationErrors.length > 0) {
113
+ throw new Error(`invalid robbotData: ${validationErrors} (E: 390316b7c4fb0bd104ddc4e6c2e12922)`);
114
+ }
115
+ if (classname) {
116
+ if (robbotData.classname && robbotData.classname !== classname) {
117
+ throw new Error(`classname does not match robbotData.classname (E: e21dbc830856fbcee1d3ab260b0c5922)`);
118
+ }
119
+ }
120
+ else {
121
+ classname = robbotData.classname;
122
+ if (!classname) {
123
+ throw new Error(`classname required (E: e0519f89df8a468c8743cb932f436bfe)`);
124
+ }
125
+ }
126
+ // ad hoc validation here. should centralize witness classname validation
127
+ const { name, uuid } = robbotData;
128
+ return `witness robbot ${classname} ${name} ${uuid}`;
129
+ }
130
+ catch (error) {
131
+ console.error(`${lc} ${error.message}`);
132
+ throw error;
133
+ }
134
+ }
135
+ /**
136
+ * Current schema is `witness robbot [classname] [robbotName] [robbotId]
137
+ *
138
+ * NOTE this is space-delimited
139
+ */
140
+ export function parseRobbotIb({ robbotIb, }) {
141
+ const lc = `[${parseRobbotIb.name}]`;
142
+ try {
143
+ if (!robbotIb) {
144
+ throw new Error(`robbotIb required (E: 4a35881058094f1a90bb4ea37052d6d7)`);
145
+ }
146
+ const pieces = robbotIb.split(' ');
147
+ return {
148
+ robbotClassname: pieces[2],
149
+ robbotName: pieces[3],
150
+ robbotId: pieces[4],
151
+ };
152
+ }
153
+ catch (error) {
154
+ console.error(`${lc} ${error.message}`);
155
+ throw error;
156
+ }
157
+ }
158
+ /**
159
+ * Prompts the user a form to build the robbot.
160
+ *
161
+ * Once prompted, the robbot is:
162
+ * 1. validated
163
+ * 2. persisted in the given {@link space}
164
+ * 3. registered with the space
165
+ * 4. related to the space's special robbots index
166
+ * 5. new robbot is returned
167
+ *
168
+ * @returns newly created robbot ibgib (witness)
169
+ */
170
+ export async function createNewRobbot({
171
+ // common,
172
+ ibgibs, space, }) {
173
+ const lc = `[${createNewRobbot.name}]`;
174
+ try {
175
+ if (logalot) {
176
+ console.log(`${lc} starting...`);
177
+ }
178
+ if (!ibgibs) {
179
+ throw new Error(`(UNEXPECTED) ibgibs service required. (E: 4be5d20dc81fcdabb8d7d4cd47458522)`);
180
+ }
181
+ space = space ?? await ibgibs.getLocalUserSpace({ lock: true });
182
+ // prompt user to create the ibgib, passing in null because we're
183
+ // creating not editing.
184
+ let resRobbot = await ibgibs.fnPromptRobbot(space, /*ibGib because creating*/ null);
185
+ if (!resRobbot) {
186
+ throw new Error(`robbot prompt returned nothing. canceled? (E: 1a08529b53bd3d79c6587b196e5e0823)`);
187
+ }
188
+ /** this should be the witness class itself at this point. */
189
+ const newRobbot = resRobbot.newIbGib;
190
+ // let loading = await common.loadingCtrl.create({ message: 'creating...' });
191
+ try {
192
+ // await loading.present();
193
+ await delay(1000); // ensure that the user sees a creating message
194
+ let allIbGibs = [];
195
+ allIbGibs.push(newRobbot);
196
+ resRobbot.intermediateIbGibs?.forEach(x => allIbGibs.push(x));
197
+ resRobbot.dnas?.forEach(x => allIbGibs.push(x));
198
+ for (let i = 0; i < allIbGibs.length; i++) {
199
+ const ibGib = allIbGibs[i];
200
+ const validationErrors = await validateIbGibIntrinsically({ ibGib });
201
+ if ((validationErrors ?? []).length > 0) {
202
+ throw new Error(`(unexpected) invalid robbot ibgib created. validationErrors: ${validationErrors}. robbot: ${pretty(newRobbot.toIbGibDto())} (E: a683268621cd6dd3dd60310b164c4d22)`);
203
+ }
204
+ }
205
+ await persistTransformResult({ resTransform: resRobbot, isMeta: true, space });
206
+ const { zeroSpace, fnBroadcast, fnUpdateBootstrap } = ibgibs;
207
+ await registerNewIbGib({
208
+ ibGib: newRobbot,
209
+ space,
210
+ zeroSpace,
211
+ fnBroadcast: (x) => fnBroadcast(x),
212
+ fnUpdateBootstrap: (x) => fnUpdateBootstrap(x),
213
+ });
214
+ await rel8ToSpecialIbGib({
215
+ type: "robbots",
216
+ rel8nName: ROBBOT_REL8N_NAME,
217
+ ibGibsToRel8: [newRobbot],
218
+ space,
219
+ zeroSpace,
220
+ fnUpdateBootstrap,
221
+ fnBroadcast,
222
+ });
223
+ }
224
+ catch (error) {
225
+ console.error(`${lc} ${error.message}`);
226
+ throw error;
227
+ // } finally {
228
+ // await loading.dismiss();
229
+ }
230
+ return newRobbot;
231
+ }
232
+ catch (error) {
233
+ console.error(`${lc} ${error.message}`);
234
+ return;
235
+ }
236
+ finally {
237
+ if (logalot) {
238
+ console.log(`${lc} complete.`);
239
+ }
240
+ }
241
+ }
242
+ export class RobbotFormBuilder extends WitnessFormBuilder {
243
+ constructor() {
244
+ super();
245
+ this.lc = `${super.lc}[${RobbotFormBuilder.name}]`;
246
+ this.what = 'robbot';
247
+ }
248
+ outputPrefix({ of, required, }) {
249
+ this.addItem({
250
+ // witness.data.outputPrefix
251
+ name: "outputPrefix",
252
+ description: `Technical setting that sets a prefix for all text output of the robbot.`,
253
+ label: "Output Prefix",
254
+ regexp: ROBBOT_PREFIX_SUFFIX_REGEXP,
255
+ regexpErrorMsg: ROBBOT_PREFIX_SUFFIX_REGEXP_DESC,
256
+ dataType: 'textarea',
257
+ value: of,
258
+ required,
259
+ });
260
+ return this;
261
+ }
262
+ outputSuffix({ of, required, }) {
263
+ this.addItem({
264
+ // witness.data.outputSuffix
265
+ name: "outputSuffix",
266
+ description: `Technical setting that sets a suffix for all text output of the ${this.what}. (like a signature)`,
267
+ label: "Output Suffix",
268
+ regexp: ROBBOT_PREFIX_SUFFIX_REGEXP,
269
+ regexpErrorMsg: ROBBOT_PREFIX_SUFFIX_REGEXP_DESC,
270
+ dataType: 'textarea',
271
+ value: of,
272
+ required,
273
+ });
274
+ return this;
275
+ }
276
+ }
277
+ /**
278
+ * checks to see if the comment is an ibgib and if that comment starts
279
+ * with the escape sequence.
280
+ */
281
+ export function isRequestComment({ ibGib, requestEscapeString = DEFAULT_ROBBOT_REQUEST_ESCAPE_STRING, }) {
282
+ const lc = `${isRequestComment.name}]`;
283
+ try {
284
+ if (logalot) {
285
+ console.log(`${lc} starting... (I: d7c49619ffb7a9c26d9d74959b91ae22)`);
286
+ }
287
+ if (!isComment({ ibGib })) {
288
+ return false; /* <<<< returns early */
289
+ }
290
+ let { ib } = ibGib;
291
+ if (!ib) {
292
+ throw new Error(`ib or ibGib.ib required (E: d92c26b15fc143977955a167b8b67522)`);
293
+ }
294
+ requestEscapeString = requestEscapeString || DEFAULT_ROBBOT_REQUEST_ESCAPE_STRING;
295
+ let { safeIbCommentText } = parseCommentIb({ ib });
296
+ return safeIbCommentText.startsWith(requestEscapeString);
297
+ }
298
+ catch (error) {
299
+ console.error(`${lc} ${error.message}`);
300
+ throw error;
301
+ }
302
+ finally {
303
+ if (logalot) {
304
+ console.log(`${lc} complete.`);
305
+ }
306
+ }
307
+ }
308
+ /**
309
+ * Strips the request escape string and any non-alphanumeric characters except spaces,
310
+ * returning the rest fo the string up to `maxLength`.
311
+ *
312
+ * This does *not* interpret anything beyond this.
313
+ */
314
+ export function getSpaceDelimitedSaferRequestText({ ibGib, requestEscapeString = DEFAULT_ROBBOT_REQUEST_ESCAPE_STRING, lowercase, maxLength, }) {
315
+ const lc = `${getSpaceDelimitedSaferRequestText.name}]`;
316
+ try {
317
+ if (logalot) {
318
+ console.log(`${lc} starting... (I: b4cbe054fe254414b77204ad80e519aa)`);
319
+ }
320
+ if (!isComment({ ibGib })) {
321
+ throw new Error(`ibGib is not a comment (E: ab34df44eb57c170cec6c6db6f4f5722)`);
322
+ }
323
+ let { data } = ibGib;
324
+ if (!data) {
325
+ throw new Error(`ibGib.data required (E: 6155a49a0c1286c0bb8aa6f81c396522)`);
326
+ }
327
+ let text = data.text;
328
+ requestEscapeString = requestEscapeString || DEFAULT_ROBBOT_REQUEST_ESCAPE_STRING;
329
+ const length = maxLength || DEFAULT_ROBBOT_REQUEST_MAX_LENGTH;
330
+ text = getSaferSubstring({
331
+ text: text,
332
+ length,
333
+ keepLiterals: [' ', requestEscapeString]
334
+ });
335
+ text = text
336
+ .substring(requestEscapeString.length) // remove the escape string
337
+ .trim();
338
+ if (lowercase) {
339
+ text = text.toLowerCase();
340
+ }
341
+ return text;
342
+ }
343
+ catch (error) {
344
+ console.error(`${lc} ${error.message}`);
345
+ throw error;
346
+ }
347
+ finally {
348
+ if (logalot) {
349
+ console.log(`${lc} complete.`);
350
+ }
351
+ }
352
+ }
353
+ /**
354
+ * Creates space-delimited ib. Extracts certain info from `data` and appends
355
+ * addlDetailsText at the end.
356
+ *
357
+ * atow the schema is:
358
+ *
359
+ * return addlDetailsText ?
360
+ * `${ROBBOT_INTERACTION_ATOM} ${data.type} ${timestampInTicks} ${subjectTjpGibsString} ${addlDetailsText}` :
361
+ * `${ROBBOT_INTERACTION_ATOM} ${data.type} ${timestampInTicks} ${subjectTjpGibsString}`;
362
+ *
363
+ * @returns space-delimited interaction ib
364
+ */
365
+ export function getInteractionIb({ data, addlDetailsText, }) {
366
+ const lc = `[${getInteractionIb.name}]`;
367
+ try {
368
+ if (logalot) {
369
+ console.log(`${lc} starting... (I: 9ac657cab7e292e2bd587595757ab622)`);
370
+ }
371
+ if (!data) {
372
+ throw new Error(`data required (E: 8fac6ce2ae6dd521255dc8ba241a5222)`);
373
+ }
374
+ if (!data.type) {
375
+ throw new Error(`data.type required (E: 77786fe653be04c9fa33e30ac3b77f22)`);
376
+ }
377
+ let saferType = getSaferSubstring({ text: data.type, length: 32 });
378
+ if (data.type !== saferType) {
379
+ throw new Error(`invalid data.type (${data.type}). Should be safer like (${saferType}) (E: efe7888da08f148c8972c0923356b122)`);
380
+ }
381
+ if (!data.timestamp) {
382
+ throw new Error(`data.timestamp required (E: 8682a5af1cd48d0cb372b7f519a61e22)`);
383
+ }
384
+ const dataTimestampIsInt = Number.isInteger(Number.parseInt(data.timestamp));
385
+ if (dataTimestampIsInt) {
386
+ debugger;
387
+ } // debug
388
+ const timestampInTicks = dataTimestampIsInt ?
389
+ data.timestamp :
390
+ getTimestampInTicks(data.timestamp);
391
+ const subjectTjpGibs = data.subjectTjpGibs ?? [];
392
+ let subjectTjpGibsString;
393
+ if (subjectTjpGibs.length === 0) {
394
+ if (logalot) {
395
+ console.log(`${lc} data.subjectTjpGibs is falsy. defaulting subjectTjpGibsString to ${UNDEFINED_INTERACTION_SUBJECTTJPGIBS_STRING} (I: 850477faa7316bb65e6e0e370dc54f22)`);
396
+ }
397
+ subjectTjpGibsString = UNDEFINED_INTERACTION_SUBJECTTJPGIBS_STRING;
398
+ }
399
+ else {
400
+ subjectTjpGibsString = subjectTjpGibs.join(DEFAULT_INTERACTION_SUBJECTTJPGIBS_DELIM);
401
+ }
402
+ if (addlDetailsText) {
403
+ let saferAddlDetailsText = getSaferSubstring({ text: addlDetailsText, length: 64 });
404
+ if (saferAddlDetailsText !== addlDetailsText) {
405
+ console.warn(`${lc} using safer version of addlDetailsText: ${saferAddlDetailsText}. (W: b5516dabaeab4c93996e726e8feffe7f)`);
406
+ addlDetailsText = saferAddlDetailsText;
407
+ }
408
+ }
409
+ return addlDetailsText ?
410
+ `${ROBBOT_INTERACTION_ATOM} ${data.type} ${timestampInTicks} ${subjectTjpGibsString} ${addlDetailsText}` :
411
+ `${ROBBOT_INTERACTION_ATOM} ${data.type} ${timestampInTicks} ${subjectTjpGibsString}`;
412
+ }
413
+ catch (error) {
414
+ console.error(`${lc} ${error.message}`);
415
+ throw error;
416
+ }
417
+ finally {
418
+ if (logalot) {
419
+ console.log(`${lc} complete.`);
420
+ }
421
+ }
422
+ }
423
+ export function parseInteractionIb({ ib, }) {
424
+ const lc = `[${parseInteractionIb.name}]`;
425
+ try {
426
+ if (logalot) {
427
+ console.log(`${lc} starting... (I: ed5e959a2952fc6684a168ef8e9b6622)`);
428
+ }
429
+ const ibValidationErrors = validateIb({ ib }) ?? [];
430
+ if (ibValidationErrors.length > 0) {
431
+ throw new Error(`ib (${ib}) has validationErrors: ${ibValidationErrors} (E: c1b8c65524561ae67f58b237ba12fb22)`);
432
+ }
433
+ let [atom, type, timestampInTicks, subjectTjpGibsString, addlDetailsText] = ib.split(' ');
434
+ if (atom !== ROBBOT_INTERACTION_ATOM) {
435
+ console.warn(`${lc} atom !== default robbot interaction atom (${atom} !== ${ROBBOT_INTERACTION_ATOM}) (W: 9102868391174bbc90c54cb53726a4de)`);
436
+ }
437
+ if (!Object.values(RobbotInteractionType).includes(type)) {
438
+ console.warn(`${lc} unknown robbot interaction type (${type}). (W: 68e85a9c495542f4a4a164752cc600e3)`);
439
+ }
440
+ let subjectTjpGibs = undefined;
441
+ if (subjectTjpGibsString !== UNDEFINED_INTERACTION_SUBJECTTJPGIBS_STRING) {
442
+ subjectTjpGibs =
443
+ subjectTjpGibsString.split(DEFAULT_INTERACTION_SUBJECTTJPGIBS_DELIM).filter(x => !!x);
444
+ const invalidTjpGibs = subjectTjpGibs.filter(gib => {
445
+ const validationErrors = validateGib({ gib }) ?? [];
446
+ if (validationErrors.length > 0) {
447
+ console.error(`${lc} tjpGib (${gib}) has validation errors: ${validationErrors} (E: 679a654649ae4945932e85b3ded981be)`);
448
+ return true;
449
+ }
450
+ else {
451
+ return false;
452
+ }
453
+ });
454
+ if (invalidTjpGibs.length > 0) {
455
+ throw new Error(`ib contains invalid tjpGibs: ${invalidTjpGibs} (E: 7a5074e2e8685ec28c83954a1c12df22)`);
456
+ }
457
+ }
458
+ return { atom, type, timestampInTicks, subjectTjpGibs, addlDetailsText };
459
+ }
460
+ catch (error) {
461
+ console.error(`${lc} ${error.message}`);
462
+ throw error;
463
+ }
464
+ finally {
465
+ if (logalot) {
466
+ console.log(`${lc} complete.`);
467
+ }
468
+ }
469
+ }
470
+ export function isInteraction({ ibGib, ib, }) {
471
+ const lc = `[${isInteraction.name}]`;
472
+ try {
473
+ ib = ib ?? ibGib?.ib;
474
+ if (!ib) {
475
+ throw new Error(`either ib or ibGib required (E: 15786fe75a5219ec7d925189f22d9f22)`);
476
+ }
477
+ let info = parseInteractionIb({ ib });
478
+ return info.atom === ROBBOT_INTERACTION_ATOM;
479
+ }
480
+ catch (error) {
481
+ console.error(`${lc} ${error.message}`);
482
+ throw error;
483
+ }
484
+ }
485
+ /**
486
+ * creates an ibgib stone (no tjp) that contains the interaction info.
487
+ *
488
+ * @returns interaction ibgib stone
489
+ */
490
+ export async function getInteractionIbGib_V1({ data, rel8ns, addlDetailsText, }) {
491
+ const lc = `[${getInteractionIbGib_V1.name}]`;
492
+ try {
493
+ if (logalot) {
494
+ console.log(`${lc} starting... (I: 138e6a406e1c600aad5b64e58a250922)`);
495
+ }
496
+ if (!data) {
497
+ throw new Error(`data required (E: 7bdc46e1cfca9c286fc0dad9e8d60722)`);
498
+ }
499
+ if (!data.uuid) {
500
+ data.uuid = await getUUID();
501
+ }
502
+ rel8ns = rel8ns ?? {};
503
+ rel8ns.ancestor = [`${ROBBOT_INTERACTION_ATOM}^${GIB}`];
504
+ delete rel8ns.past;
505
+ const ib = getInteractionIb({ data, addlDetailsText });
506
+ const ibGib = {
507
+ ib, data, rel8ns,
508
+ };
509
+ ibGib.gib = await getGib({ ibGib, hasTjp: false });
510
+ return ibGib;
511
+ }
512
+ catch (error) {
513
+ console.error(`${lc} ${error.message}`);
514
+ throw error;
515
+ }
516
+ finally {
517
+ if (logalot) {
518
+ console.log(`${lc} complete.`);
519
+ }
520
+ }
521
+ }
522
+ export function getRobbotSessionIb({ robbot, timestampInTicks, sessionId, contextTjpGib, addlMetadata, }) {
523
+ const lc = `[${getRobbotSessionIb.name}]`;
524
+ try {
525
+ // validate
526
+ if (logalot) {
527
+ console.log(`${lc} starting... (I: 21206e0defe4bf23db96979fb456e822)`);
528
+ }
529
+ if (!robbot) {
530
+ throw new Error(`robbot required (E: 200b32bbc4cac516e56d9561a9ffae22)`);
531
+ }
532
+ if (!robbot.data?.name) {
533
+ throw new Error(`robbot.data.name required (E: d6470d5a146a1794811b9577ce881522)`);
534
+ }
535
+ if (!robbot.data.classname) {
536
+ throw new Error(`robbot.data.classname required (E: 42077779c80889f1079e582d45932e22)`);
537
+ }
538
+ if (!robbot.data.uuid) {
539
+ throw new Error(`robbot.data.uuid required (E: 34222f5639c329c99a2007ba6789bb22)`);
540
+ }
541
+ if (!timestampInTicks) {
542
+ throw new Error(`timestampInTicks required (E: 17447cb30277af2beea8f2b13266c722)`);
543
+ }
544
+ if (!sessionId) {
545
+ throw new Error(`sessionId required (E: 37a1737920996a55f311e79efe558422)`);
546
+ }
547
+ if (!contextTjpGib) {
548
+ throw new Error(`contextTjpGib required (E: ad967964b764b077f448121e8b63c822)`);
549
+ }
550
+ if (addlMetadata) {
551
+ if (!addlMetadata.match(/^\w+$/)) {
552
+ throw new Error(`addlMetadata must be alphanumerics only (E: 26f52b1378d1ad01f20f8ef5a5441722)`);
553
+ }
554
+ }
555
+ // prepare
556
+ const { name, classname, uuid } = robbot.data;
557
+ const robbotTjpGib = getGibInfo({ gib: robbot.gib }).tjpGib;
558
+ // main ib string
559
+ let resultIb = `${ROBBOT_SESSION_ATOM} ${timestampInTicks} ${name} ${classname} ${uuid} ${robbotTjpGib} ${sessionId} ${contextTjpGib}`;
560
+ // amend if addlMetadata provided
561
+ if (addlMetadata) {
562
+ resultIb += ` ${addlMetadata}`;
563
+ }
564
+ // returns
565
+ return resultIb;
566
+ }
567
+ catch (error) {
568
+ console.error(`${lc} ${error.message}`);
569
+ throw error;
570
+ }
571
+ finally {
572
+ if (logalot) {
573
+ console.log(`${lc} complete.`);
574
+ }
575
+ }
576
+ }
577
+ export function parseRobbotSessionIb({ ib, }) {
578
+ const lc = `[${parseRobbotSessionIb.name}]`;
579
+ try {
580
+ if (logalot) {
581
+ console.log(`${lc} starting... (I: 21206e0defe4bf23db96979fb456e822)`);
582
+ }
583
+ if (!ib) {
584
+ throw new Error(`ib required (E: c99627d871dbada4745474d9b63d4822)`);
585
+ }
586
+ const pieces = ib.split(' ');
587
+ if (pieces.length !== 8 && pieces.length !== 9) {
588
+ throw new Error(`invalid ib. should be space-delimited with 8 or 9 pieces, but there were ${pieces.length}. Expected pieces: atom, timestamp, robbotName, robbotClassname, robbotId, robbotTjpGib, sessionId, contextTjpGib, and optional addlMetadata. (E: 239ba7f599ce02a20271dd288c187d22)`);
589
+ }
590
+ const [_, timestamp, robbotName, robbotClassname, robbotId, robbotTjpGib, sessionId, contextTjpGib, addlMetadata] = ib.split(' ');
591
+ return {
592
+ timestamp,
593
+ robbotName, robbotClassname, robbotId, robbotTjpGib,
594
+ sessionId,
595
+ contextTjpGib,
596
+ addlMetadata
597
+ };
598
+ }
599
+ catch (error) {
600
+ console.error(`${lc} ${error.message}`);
601
+ throw error;
602
+ }
603
+ finally {
604
+ if (logalot) {
605
+ console.log(`${lc} complete.`);
606
+ }
607
+ }
608
+ }
609
+ //# sourceMappingURL=robbot-helper.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"robbot-helper.mjs","sourceRoot":"","sources":["../../../src/witness/robbot/robbot-helper.mts"],"names":[],"mappings":"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"}