@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,143 @@
1
+ import * as h from '@ibgib/helper-gib';
2
+ import { Factory_V1 as factory } from '@ibgib/ts-gib/dist/V1/index.mjs';
3
+ // import { persistTransformResult, } from './space.mjs';
4
+ import { persistTransformResult } from '../../witness/space/space-helper.mjs';
5
+ import { DEFAULT_LINK_TEXT_IB_SUBSTRING_LENGTH } from './link-constants.mjs';
6
+ import { ONLY_HAS_NON_ALPHANUMERICS } from '@ibgib/helper-gib';
7
+ import { GLOBAL_LOG_A_LOT } from '../../core-constants.mjs';
8
+ const logalot = GLOBAL_LOG_A_LOT || false;
9
+ /**
10
+ * generates an ib based on the link text.
11
+ *
12
+ * Basically this gets a short substring of the link text and replaces
13
+ * any non alphanumeric characters.
14
+ *
15
+ * @param linkText link text
16
+ * @returns link ib for the given link text
17
+ */
18
+ export function getLinkIb(linkText) {
19
+ const lc = `[${getLinkIb.name}]`;
20
+ try {
21
+ if (!linkText) {
22
+ throw new Error(`linkText required. (E: e131bda0f94e4af1807cda8710e6fb1f)`);
23
+ }
24
+ let saferText = linkText.replace(/\W/g, '');
25
+ let ibLinkText;
26
+ if (saferText.length > DEFAULT_LINK_TEXT_IB_SUBSTRING_LENGTH) {
27
+ ibLinkText =
28
+ saferText.substring(0, DEFAULT_LINK_TEXT_IB_SUBSTRING_LENGTH);
29
+ }
30
+ else if (saferText.length > 0) {
31
+ ibLinkText = saferText;
32
+ }
33
+ else {
34
+ // link text only has characters/nonalphanumerics.
35
+ ibLinkText = ONLY_HAS_NON_ALPHANUMERICS;
36
+ }
37
+ return `link ${ibLinkText}`;
38
+ }
39
+ catch (error) {
40
+ console.error(`${lc} ${error.message}`);
41
+ throw error;
42
+ }
43
+ }
44
+ /**
45
+ * creates a link ibgib, returning the transform result,
46
+ * optionally saving it in a given {@link space}.
47
+ */
48
+ export async function createLinkIbGib({ text, saveInSpace, space, }) {
49
+ const lc = `[${createLinkIbGib.name}]`;
50
+ if (logalot) {
51
+ console.log(`${lc} starting...`);
52
+ }
53
+ try {
54
+ if (!text) {
55
+ throw new Error(`text required (E: bd9a29193ec7416da588fcd10de182ee)`);
56
+ }
57
+ text = text.trim();
58
+ if (!text) {
59
+ throw new Error(`text cannot be only whitespace (E: 5fbc0bf22388475da885993a261b01fa)`);
60
+ }
61
+ const data = { text, textTimestamp: h.getTimestamp() };
62
+ // create an ibgib with the filename and ext
63
+ const opts = {
64
+ parentIbGib: factory.primitive({ ib: 'link' }),
65
+ ib: getLinkIb(text),
66
+ data,
67
+ dna: true,
68
+ tjp: { uuid: true, timestamp: true },
69
+ nCounter: true,
70
+ };
71
+ // this makes it more difficult to share/sync ibgibs...
72
+ // if (this.addr) { opts.rel8ns = { 'link on': [this.addr] }; }
73
+ if (logalot) {
74
+ console.log(`${lc} opts: ${h.pretty(opts)}`);
75
+ }
76
+ const resLinkIbGib = await factory.firstGen(opts);
77
+ if (saveInSpace) {
78
+ if (!space) {
79
+ throw new Error(`space required if saveInSpace is truthy (E: 19af4790b5744a72bbdd995219d8f1d4)`);
80
+ }
81
+ await persistTransformResult({ resTransform: resLinkIbGib, space });
82
+ }
83
+ return resLinkIbGib;
84
+ }
85
+ catch (error) {
86
+ console.error(`${lc} ${error.message}`);
87
+ throw error;
88
+ }
89
+ }
90
+ export function isLink({ ibGib, }) {
91
+ const lc = `[${isLink.name}]`;
92
+ try {
93
+ if (logalot) {
94
+ console.log(`${lc} starting...`);
95
+ }
96
+ if (!ibGib) {
97
+ throw new Error(`ibGib required (E: 62e4d60452824d9097702bcc9e8466f4)`);
98
+ }
99
+ const { ib, data, rel8ns } = ibGib;
100
+ // try rel8ns first
101
+ if (!rel8ns) {
102
+ if (logalot) {
103
+ console.log(`${lc} rel8ns falsy, NOT a link (I: 21c6bebf90a94c11aa0fb5d44501a7d9)`);
104
+ }
105
+ return false;
106
+ }
107
+ // descends from link^gib
108
+ const ancestors = rel8ns.ancestor || [];
109
+ if (ancestors && ancestors.includes('link^gib')) {
110
+ if (logalot) {
111
+ console.log(`${lc} descends from link^gib, YES is a link (I: be91be40214248c394065f8dc7a71e3b)`);
112
+ }
113
+ return true;
114
+ }
115
+ // has binary qualities and ib contains 'link'
116
+ if (!data) {
117
+ if (logalot) {
118
+ console.log(`${lc} data falsy, NOT a link (I: bee06c5c10ea4c04bc5d7e2244840020)`);
119
+ }
120
+ return false;
121
+ }
122
+ if (data.text && ib?.includes('link')) {
123
+ if (logalot) {
124
+ console.log(`${lc} has text, and ib has 'link', YES is a link (I: 306b6e1f54e94acc91622a93770d0c1e)`);
125
+ }
126
+ return true;
127
+ }
128
+ if (logalot) {
129
+ console.log(`${lc} reached end, doesn't have link qualities. NOT a link. (I: 43a983d5acf64970aa4310b41fd93e0f)`);
130
+ }
131
+ return false;
132
+ }
133
+ catch (error) {
134
+ console.error(`${lc} ${error.message}`);
135
+ throw error;
136
+ }
137
+ finally {
138
+ if (logalot) {
139
+ console.log(`${lc} complete.`);
140
+ }
141
+ }
142
+ }
143
+ //# sourceMappingURL=link-helper.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"link-helper.mjs","sourceRoot":"","sources":["../../../src/common/link/link-helper.mts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import { IbGibRel8ns_V1, IbGib_V1 } from '@ibgib/ts-gib/dist/V1/index.mjs';
2
+ /**
3
+ * Data for a link ibGib
4
+ */
5
+ export interface LinkData_V1 {
6
+ text: string;
7
+ textTimestamp?: string;
8
+ timestamp?: string;
9
+ }
10
+ export interface LinkRel8ns_V1 extends IbGibRel8ns_V1 {
11
+ }
12
+ export interface LinkIbGib_V1 extends IbGib_V1<LinkData_V1, LinkRel8ns_V1> {
13
+ }
14
+ //# sourceMappingURL=link-types.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"link-types.d.mts","sourceRoot":"","sources":["../../../src/common/link/link-types.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAE3E;;GAEG;AACH,MAAM,WAAW,WAAW;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,aAAc,SAAQ,cAAc;CACpD;AAED,MAAM,WAAW,YAAa,SAAQ,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC;CACzE"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=link-types.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"link-types.mjs","sourceRoot":"","sources":["../../../src/common/link/link-types.mts"],"names":[],"mappings":""}
@@ -0,0 +1,166 @@
1
+ import { IbGibAddr, TjpIbGibAddr } from '@ibgib/ts-gib';
2
+ import { IbGib_V1 } from '@ibgib/ts-gib/dist/V1/index.mjs';
3
+ import { IbGibSpaceAny } from '../../witness/space/space-base-v1.mjs';
4
+ /**
5
+ * Options when getting dependency graph for ibGib(s).
6
+ *
7
+ * Note that this is used both in local and outer space contexts.
8
+ * When you want to default to the local user space in the local context,
9
+ * i.e. in `IbgibsService` atow, pass in `null` for {@link space}.
10
+ */
11
+ export interface GetGraphOptions {
12
+ /**
13
+ * source ibGib to grab dependencies of.
14
+ *
15
+ * caller can pass in `ibGib` or `ibGibs` or `ibGibAddr` or `ibGibAddrs`.
16
+ */
17
+ ibGib?: IbGib_V1;
18
+ /**
19
+ * source ibGibs to grab dependencies of.
20
+ *
21
+ * caller can pass in `ibGib` or `ibGibs` or `ibGibAddr` or `ibGibAddrs`.
22
+ */
23
+ ibGibs?: IbGib_V1[];
24
+ /**
25
+ * source ibGib address to grab dependencies of.
26
+ *
27
+ * caller can pass in `ibGib` or `ibGibs` or `ibGibAddr` or `ibGibAddrs`.
28
+ */
29
+ ibGibAddr?: IbGibAddr;
30
+ /**
31
+ * source ibGib addresses to grab dependencies of.
32
+ *
33
+ * caller can pass in `ibGib` or `ibGibs` or `ibGibAddr` or `ibGibAddrs`.
34
+ */
35
+ ibGibAddrs?: IbGibAddr[];
36
+ /**
37
+ * If true, for each timeline in each "frozen" ibgib graph we will get the
38
+ * latest address in the timeline and recheck rel8d ibgibs for newly
39
+ * added timeline branches.
40
+ *
41
+ * If false, this will only look in the past for each rel8d ibgib.
42
+ *
43
+ * ## notes
44
+ *
45
+ * Say you have a source ibgib with a comment "child" (relative to our
46
+ * source ibgib). Now say you add an ibgib to that child comment. The rel8d
47
+ * addr in the source ibgib will still point to the child comment's initial
48
+ * addr - before it was changed by adding its own "child" ("grandchild" to
49
+ * the source). So if you get a live dependency graph on the parent, it will
50
+ * come across the child's timeline and get the latest for that timeline
51
+ * (and associated ibgibs like the child's dna transforms that add the
52
+ * grandchild). This will include the grandchild. If it's not a live graph,
53
+ * then the parent will only have the child and will exclude the grandchild.
54
+ */
55
+ live?: boolean;
56
+ /**
57
+ * object that will be populated through recursive calls to this function.
58
+ *
59
+ * First caller of this function should not provide this and I'm not atow
60
+ * coding a separate implementation function to ensure this.
61
+ *
62
+ * @see {@link skipAddrs}
63
+ */
64
+ gotten?: {
65
+ [addr: string]: IbGib_V1;
66
+ };
67
+ /**
68
+ * used when doing {@link live} dependency graph gets. Same use as
69
+ * {@link gotten}, but with regards to timelines.
70
+ */
71
+ tjpAddrsAlreadyAnalyzed?: TjpIbGibAddr[];
72
+ /**
73
+ * List of ibgib addresses to skip not retrive in the dependency graph.
74
+ *
75
+ * This will also skip any ibgib addresses that would have occurred in the
76
+ * past of these ibgibs, as when skipping an ibgib, you are also skipping
77
+ * its dependencies implicitly as well (unless those others are related via
78
+ * another ibgib that is not skipped of course).
79
+ *
80
+ * ## driving use case
81
+ *
82
+ * We don't want to get ibgibs that we already have, and this is cleaner
83
+ * than pre-populating the `gotten` parameter for double-duty. That property
84
+ * should be strictly used within this call recursively.
85
+ *
86
+ * @see {@link gotten}
87
+ */
88
+ skipAddrs?: IbGibAddr[];
89
+ /**
90
+ * Skip these particular rel8n names.
91
+ *
92
+ * ## driving intent
93
+ *
94
+ * I'm adding this to be able to skip getting dna ibgibs.
95
+ *
96
+ * ## see also
97
+ *
98
+ * @see {@link onlyRel8nNames} for whitelist of rel8n names for traversal
99
+ */
100
+ skipRel8nNames?: string[];
101
+ /**
102
+ * whitelist of rel8nNames to traverse.
103
+ *
104
+ * ## see also
105
+ *
106
+ * @see {@link skipRel8nNames} for a blacklist of rel8n names for traversal
107
+ */
108
+ onlyRel8nNames?: string[];
109
+ /**
110
+ * If not found when getting dependency graph, do we retry? This is the
111
+ * max number of retries.
112
+ */
113
+ maxRetries?: number;
114
+ /**
115
+ * If provided and {@link maxRetries} is non-zero, the next retry will be
116
+ * delayed this amount of time if one or more addrs are not found.
117
+ */
118
+ msBetweenRetries?: number;
119
+ /**
120
+ * Space within which we should be looking for ibGibs.
121
+ *
122
+ * ## NOTE on providing space vs local user space
123
+ *
124
+ * I'm reusing this interface for both generic space function and ibgib service
125
+ * function, which has an implicit default space of the local user space if this
126
+ * is falsy. So just pass in `null` if you are using this with ibgibs service and
127
+ * want it to default to the local user space.
128
+ */
129
+ space: IbGibSpaceAny | null;
130
+ /**
131
+ * If supplied, will make intermittent calls to console.timeLog using this name.
132
+ */
133
+ timeLogName?: string;
134
+ /**
135
+ * When getting the live dependency graph, this is used so we don't
136
+ * duplicate work in recursive calls.
137
+ *
138
+ * IOW, in the first run of{@link getGraphProjection_Live}, we call
139
+ * getLatestAddrs which maps some addrs to the latest addrs in the space. So
140
+ * we now have a reference to the latest and if we need to call the function
141
+ * {@link getGraphProjection_Live} recursively, then we can provide this
142
+ * info to reduce unnecessary computation.
143
+ */
144
+ mapTjpAddrToLatestAddrsInSpace?: {
145
+ [tjpAddr: string]: IbGibAddr;
146
+ };
147
+ }
148
+ export type GetGraphResult = {
149
+ [addr: string]: IbGib_V1;
150
+ };
151
+ export interface GetGraphProjectionOptions extends GetGraphOptions {
152
+ }
153
+ export interface GetDependencyGraphOptions extends GetGraphProjectionOptions {
154
+ }
155
+ /**
156
+ *
157
+ * @returns dependency graph, live or non-live depending on {@link GetDependencyGraphOptions}
158
+ *
159
+ * Getting a `live` dependency graph means that we will be looking in the given
160
+ * @see {@link GetDependencyGraphOptions.space} for updates to ibGibs' timelines
161
+ * (those ibGibs that have timelines/tjps). This is more costly computationally
162
+ * in the short-term, but often cheaper in the long-term.
163
+ */
164
+ export declare function getDependencyGraph({ ibGib, ibGibs, ibGibAddr, ibGibAddrs, live, gotten, tjpAddrsAlreadyAnalyzed, skipAddrs, skipRel8nNames, onlyRel8nNames, maxRetries, msBetweenRetries, space, timeLogName, mapTjpAddrToLatestAddrsInSpace, }: GetGraphProjectionOptions): Promise<GetGraphResult>;
165
+ export declare function getGraphProjection(opts: GetDependencyGraphOptions): Promise<GetGraphResult>;
166
+ //# sourceMappingURL=graph-helper.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graph-helper.d.mts","sourceRoot":"","sources":["../../../src/common/other/graph-helper.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,YAAY,EAA8B,MAAM,eAAe,CAAC;AACpF,OAAO,EACE,QAAQ,EAGhB,MAAM,iCAAiC,CAAC;AAMzC,OAAO,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AAMtE;;;;;;GAMG;AACH,MAAM,WAAW,eAAe;IAC5B;;;;OAIG;IACH,KAAK,CAAC,EAAE,QAAQ,CAAC;IACjB;;;;OAIG;IACH,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC;IACpB;;;;OAIG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB;;;;OAIG;IACH,UAAU,CAAC,EAAE,SAAS,EAAE,CAAC;IACzB;;;;;;;;;;;;;;;;;;OAkBG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IACf;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,CAAA;KAAE,CAAC;IACtC;;;OAGG;IACH,uBAAuB,CAAC,EAAE,YAAY,EAAE,CAAC;IACzC;;;;;;;;;;;;;;;OAeG;IACH,SAAS,CAAC,EAAE,SAAS,EAAE,CAAC;IACxB;;;;;;;;;;OAUG;IACH,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;;;;;;OASG;IACH,KAAK,EAAE,aAAa,GAAG,IAAI,CAAC;IAC5B;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;;;;;OASG;IACH,8BAA8B,CAAC,EAAE;QAAE,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,CAAA;CACpE;AAED,MAAM,MAAM,cAAc,GAAG;IAAE,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,CAAA;CAAE,CAAC;AAG1D,MAAM,WAAW,yBAA0B,SAAQ,eAAe;CAKjE;AAED,MAAM,WAAW,yBAA0B,SAAQ,yBAAyB;CAE3E;AAED;;;;;;;;GAQG;AACH,wBAAsB,kBAAkB,CAAC,EACrC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,EACpC,IAAI,EACJ,MAAM,EAAE,uBAAuB,EAC/B,SAAS,EAAE,cAAc,EAAE,cAAc,EACzC,UAAU,EAAE,gBAAgB,EAC5B,KAAK,EACL,WAAW,EACX,8BAA8B,GACjC,EAAE,yBAAyB,GAAG,OAAO,CAAC,cAAc,CAAC,CA+BrD;AA4KD,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,yBAAyB,GAAG,OAAO,CAAC,cAAc,CAAC,CAwEjG"}