@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,356 @@
1
+ import { getIbGibAddr } from '@ibgib/ts-gib';
2
+ import { ROOT, } from '@ibgib/ts-gib/dist/V1/index.mjs';
3
+ import { SpaceBase_V1 } from './space-base-v1.mjs';
4
+ import { getSpaceIb } from './space-helper.mjs';
5
+ import { validateIbGibIntrinsically } from '@ibgib/ts-gib/dist/V1/validate-helper.mjs';
6
+ import { GLOBAL_LOG_A_LOT } from '../../core-constants.mjs';
7
+ const logalot = GLOBAL_LOG_A_LOT || false;
8
+ /**
9
+ * Base class convenience for a "local" space
10
+ * (i.e. analogous to residing on the same computer as the app).
11
+ *
12
+ * Base implementation defaults to a naive in-memory internal object that
13
+ * tracks ibgibs.
14
+ */
15
+ export class InnerSpace_V1 extends SpaceBase_V1 {
16
+ constructor(
17
+ // I have this following commented out. I copied over some of this behavior from the keystone lib
18
+ // and I'm not sure what I'm keeping here.
19
+ // NOTE: (I refactored the name "repo" to "space" because it seemed to fit better.)
20
+ // /**
21
+ // * Default predicate value when putting an unknown ibGib.
22
+ // *
23
+ // * ## notes
24
+ // *
25
+ // * So when a repo witnesses another ibGib, it either defaults to
26
+ // * storing that ibGib or not storing that ibGib. This is what that
27
+ // * is referring to. If it's optimistic, then it stores any ibGib by
28
+ // * default and it passes its put predicate.
29
+ // */
30
+ // public optimisticPut: boolean = true,
31
+ initialData, initialRel8ns) {
32
+ super(initialData, initialRel8ns);
33
+ /**
34
+ * Log context for convenience with logging. (Ignore if you don't want to use this.)
35
+ */
36
+ this.lc = `[${InnerSpace_V1.name}]`;
37
+ /**
38
+ * In-memory store of ibgibs stored in this inner space object.
39
+ *
40
+ * @see {@link rel8ns} in {@link WitnessBase_V1} base class.
41
+ */
42
+ this.ibGibs = {};
43
+ const lc = `${this.lc}[ctor]`;
44
+ try {
45
+ if (logalot) {
46
+ console.log(`${lc} starting...`);
47
+ }
48
+ this.initialize();
49
+ }
50
+ catch (error) {
51
+ console.error(`${lc} ${error.message}`);
52
+ throw error;
53
+ }
54
+ finally {
55
+ if (logalot) {
56
+ console.log(`${lc} complete.`);
57
+ }
58
+ }
59
+ this.ib = `witness space ${InnerSpace_V1.name}`;
60
+ this.ib = getSpaceIb({ space: this, classname: InnerSpace_V1.name });
61
+ }
62
+ /**
63
+ * Initializes to default space values.
64
+ */
65
+ initialize() {
66
+ const lc = `${this.lc}[${this.initialize.name}]`;
67
+ try {
68
+ if (logalot) {
69
+ console.log(`${lc} starting...`);
70
+ }
71
+ // if (!this.data) { this.data = h.clone(DEFAULT_IONIC_SPACE_DATA_V1); }
72
+ // if (!this.data.baseDir) { this.data.baseDir = IBGIB_BASE_DIR; }
73
+ this.ib = getSpaceIb({ space: this, classname: InnerSpace_V1.name });
74
+ }
75
+ catch (error) {
76
+ console.error(`${lc} ${error.message}`);
77
+ }
78
+ finally {
79
+ if (logalot) {
80
+ console.log(`${lc} complete.`);
81
+ }
82
+ }
83
+ }
84
+ async getImpl(arg) {
85
+ const lc = `${this.lc}[${this.get.name}]`;
86
+ const resultData = { optsAddr: getIbGibAddr({ ibGib: arg }), };
87
+ try {
88
+ const { ibGibAddrs } = arg.data;
89
+ if (!ibGibAddrs) {
90
+ throw new Error(`(UNEXPECTED) arg.data.ibGibAddrs falsy? (E: 33dcc212788221c601bf2258eb1cd523)`);
91
+ }
92
+ const resultIbGibs = [];
93
+ let notFoundIbGibAddrs = undefined;
94
+ for (let i = 0; i < ibGibAddrs.length; i++) {
95
+ const addr = ibGibAddrs[i];
96
+ if (Object.keys(this.ibGibs).includes(addr)) {
97
+ resultIbGibs.push(this.ibGibs[addr]);
98
+ }
99
+ else {
100
+ if (!notFoundIbGibAddrs) {
101
+ notFoundIbGibAddrs = [];
102
+ }
103
+ notFoundIbGibAddrs.push(addr);
104
+ }
105
+ }
106
+ if (notFoundIbGibAddrs && notFoundIbGibAddrs.length > 0) {
107
+ resultData.addrsNotFound = notFoundIbGibAddrs;
108
+ resultData.success = false;
109
+ }
110
+ }
111
+ catch (error) {
112
+ console.error(`${lc} error: ${error.message}`);
113
+ resultData.errors = [error.message];
114
+ }
115
+ const result = await this.resulty({ resultData });
116
+ return result;
117
+ }
118
+ async putImpl(arg) {
119
+ const lc = `${this.lc}[${this.put.name}]`;
120
+ const resultData = { optsAddr: getIbGibAddr({ ibGib: arg }), };
121
+ try {
122
+ const ibGibs = arg.ibGibs || [];
123
+ const addrsAlreadyHave = [];
124
+ await this.putIbGibsImpl({ ibGibs, addrsAlreadyHave });
125
+ if (addrsAlreadyHave.length > 0) {
126
+ resultData.addrsAlreadyHave = addrsAlreadyHave;
127
+ resultData.warnings = (resultData.warnings || []).concat([`${lc} already had addr(s).`]);
128
+ }
129
+ resultData.success = true;
130
+ }
131
+ catch (error) {
132
+ console.error(`${lc} error: ${error.message}`);
133
+ resultData.errors = [error.message];
134
+ resultData.success = false;
135
+ }
136
+ const result = await this.resulty({ resultData });
137
+ return result;
138
+ }
139
+ async putIbGibsImpl({ ibGibs, addrsAlreadyHave, }) {
140
+ const lc = `${this.lc}[${this.putIbGibsImpl.name}]`;
141
+ try {
142
+ if (logalot) {
143
+ console.log(`${lc} starting...`);
144
+ }
145
+ if (!ibGibs) {
146
+ throw new Error(`ibGibs required. (E: cd479b15097d45a5bf0c8ca13c9f3487)`);
147
+ }
148
+ if (!addrsAlreadyHave) {
149
+ throw new Error(`addrsAlreadyHave required. (E: 18b2c8eef27bc267c55755e272367e22)`);
150
+ }
151
+ for (let i = 0; i < ibGibs?.length; i++) {
152
+ const ibGib = ibGibs[i];
153
+ const addr = getIbGibAddr({ ibGib });
154
+ if (!Object.keys(this.ibGibs).includes(addr)) {
155
+ this.ibGibs[addr] = ibGib;
156
+ }
157
+ else {
158
+ addrsAlreadyHave.push(addr);
159
+ }
160
+ }
161
+ }
162
+ catch (error) {
163
+ console.error(`${lc} ${error.message}`);
164
+ throw error;
165
+ }
166
+ finally {
167
+ if (logalot) {
168
+ console.log(`${lc} complete.`);
169
+ }
170
+ }
171
+ }
172
+ async deleteImpl(arg) {
173
+ const lc = `${this.lc}[${this.delete.name}]`;
174
+ const resultData = { optsAddr: getIbGibAddr({ ibGib: arg }), };
175
+ try {
176
+ const addrsNotFound = [];
177
+ const addrsDeleted = [];
178
+ const ibGibAddrs = arg.data.ibGibAddrs || [];
179
+ for (let i = 0; i < ibGibAddrs.length; i++) {
180
+ const addr = ibGibAddrs[i];
181
+ if (Object.keys(this.ibGibs).includes(addr)) {
182
+ delete this.ibGibs[addr];
183
+ addrsDeleted.push(addr);
184
+ }
185
+ else {
186
+ addrsNotFound.push(addr);
187
+ }
188
+ }
189
+ if (addrsNotFound.length > 0) {
190
+ resultData.addrsNotFound = addrsNotFound.concat();
191
+ const warningMsg = `${lc} some addrs (${addrsNotFound.length}) not found: ${addrsNotFound}`;
192
+ resultData.warnings = (resultData.warnings || []).concat([warningMsg]);
193
+ }
194
+ resultData.success = true;
195
+ resultData.addrs = addrsDeleted.concat();
196
+ }
197
+ catch (error) {
198
+ console.error(`${lc} error: ${error.message}`);
199
+ resultData.errors = [error.message];
200
+ resultData.success = false;
201
+ }
202
+ try {
203
+ const result = await this.resulty({ resultData });
204
+ return result;
205
+ }
206
+ catch (error) {
207
+ console.error(`${lc} error forming result ibGib. error: ${error.message}`);
208
+ throw error;
209
+ }
210
+ }
211
+ async getAddrsImpl(arg) {
212
+ const lc = `${this.lc}[${this.getAddrs.name}]`;
213
+ const resultData = { optsAddr: getIbGibAddr({ ibGib: arg }), };
214
+ try {
215
+ resultData.addrs = Object.keys(this.ibGibs).concat();
216
+ resultData.success = true;
217
+ }
218
+ catch (error) {
219
+ console.error(`${lc} error: ${error.message}`);
220
+ resultData.errors = [error.message];
221
+ resultData.success = false;
222
+ }
223
+ const result = await this.resulty({ resultData });
224
+ return result;
225
+ }
226
+ /**
227
+ * Performs a naive `exists: boolean` or `includes: boolean` analog.
228
+ *
229
+ * If all of the addresses are found, will result in `success` and `can` being `true`.
230
+ *
231
+ * Else, `can` will be falsy, and `addrsNotFound` will be populated with all/some of
232
+ * the queried addresses.
233
+ *
234
+ * ## notes
235
+ *
236
+ * This does not take authorization into account in any way. it's a simple, naive in-memory
237
+ * storage ibGib witness.
238
+ *
239
+ * @returns result ibGib whose primary value is `can`
240
+ */
241
+ async canGetImpl(arg) {
242
+ const lc = `${this.lc}[${this.canGet.name}]`;
243
+ const resultData = { optsAddr: getIbGibAddr({ ibGib: arg }), };
244
+ try {
245
+ const { ibGibAddrs } = arg.data;
246
+ if (!ibGibAddrs) {
247
+ throw new Error(`(UNEXPECTED) arg.data.ibGibAddrs falsy? (E: d94c64744037ca443589fca71e121123)`);
248
+ }
249
+ let notFoundIbGibAddrs = undefined;
250
+ for (let i = 0; i < ibGibAddrs.length; i++) {
251
+ const addr = ibGibAddrs[i];
252
+ if (!Object.keys(this.ibGibs).includes(addr)) {
253
+ if (!notFoundIbGibAddrs) {
254
+ notFoundIbGibAddrs = [];
255
+ }
256
+ notFoundIbGibAddrs.push(addr);
257
+ }
258
+ }
259
+ resultData.success = true;
260
+ if (notFoundIbGibAddrs && notFoundIbGibAddrs.length > 0) {
261
+ resultData.addrsNotFound = notFoundIbGibAddrs;
262
+ resultData.can = false;
263
+ }
264
+ else {
265
+ resultData.can = true;
266
+ }
267
+ }
268
+ catch (error) {
269
+ console.error(`${lc} error: ${error.message}`);
270
+ resultData.errors = [error.message];
271
+ }
272
+ const result = await this.resulty({ resultData });
273
+ return result;
274
+ }
275
+ async canPutImpl(arg) {
276
+ const lc = `${this.lc}[${this.canPut.name}]`;
277
+ const resultData = { optsAddr: getIbGibAddr({ ibGib: arg }), };
278
+ try {
279
+ const ibGibs = arg.ibGibs || [];
280
+ const addrsAlreadyHave = [];
281
+ for (let i = 0; i < ibGibs?.length; i++) {
282
+ const ibGib = ibGibs[i];
283
+ const addr = getIbGibAddr({ ibGib });
284
+ if (Object.keys(this.ibGibs).includes(addr)) {
285
+ addrsAlreadyHave.push(addr);
286
+ }
287
+ }
288
+ resultData.success = true;
289
+ if (addrsAlreadyHave.length > 0) {
290
+ resultData.addrsAlreadyHave = addrsAlreadyHave;
291
+ resultData.warnings = (resultData.warnings || []).concat([`${lc} already have addr(s).`]);
292
+ }
293
+ resultData.can = ibGibs.length > addrsAlreadyHave.length;
294
+ }
295
+ catch (error) {
296
+ console.error(`${lc} error: ${error.message}`);
297
+ resultData.errors = [error.message];
298
+ }
299
+ const result = await this.resulty({ resultData });
300
+ return result;
301
+ }
302
+ async canDeleteImpl(arg) {
303
+ const lc = `${this.lc}[${this.canDeleteImpl.name}]`;
304
+ const resultData = { optsAddr: getIbGibAddr({ ibGib: arg }), };
305
+ try {
306
+ throw new Error('not implemented');
307
+ }
308
+ catch (error) {
309
+ console.error(`${lc} error: ${error.message}`);
310
+ resultData.errors = [error.message];
311
+ resultData.success = false;
312
+ }
313
+ try {
314
+ const result = await this.resulty({ resultData });
315
+ return result;
316
+ }
317
+ catch (error) {
318
+ console.error(`${lc} error forming result ibGib. error: ${error.message}`);
319
+ throw error;
320
+ }
321
+ }
322
+ async persistOptsAndResultIbGibs({ arg, result }) {
323
+ const lc = `${this.lc}[${this.persistOptsAndResultIbGibs.name}]`;
324
+ try {
325
+ if (logalot || this.data?.trace) {
326
+ console.log(`${lc} starting...`);
327
+ }
328
+ if (logalot || this.data?.trace) {
329
+ console.log(`${lc} doing arg?.data?.cmd: ${arg?.data?.cmd}, result?.data?.success: ${result?.data?.success}`);
330
+ }
331
+ let argValidationErrors = await validateIbGibIntrinsically({ ibGib: arg });
332
+ if (argValidationErrors && argValidationErrors.length > 0) {
333
+ throw new Error(`invalid arg. cannot persist. (E: 015d38de71a3407f9d77fc4ed3404bf0)`);
334
+ }
335
+ let resultValidationErrors = result ?
336
+ await validateIbGibIntrinsically({ ibGib: result }) :
337
+ null;
338
+ if (resultValidationErrors && resultValidationErrors.length > 0) {
339
+ throw new Error(`invalid arg. cannot persist. (E: 015d38de71a3407f9d77fc4ed3404bf0)`);
340
+ }
341
+ const ibGibs = [arg, result ?? ROOT];
342
+ await this.putIbGibsImpl({ ibGibs: ibGibs, addrsAlreadyHave: [] });
343
+ }
344
+ catch (error) {
345
+ console.error(`${lc} ${error.message}`);
346
+ // this is a best effort storage, so we do not rethrow
347
+ // throw error;
348
+ }
349
+ finally {
350
+ if (logalot || this.data?.trace) {
351
+ console.log(`${lc} complete.`);
352
+ }
353
+ }
354
+ }
355
+ }
356
+ //# sourceMappingURL=inner-space-v1.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inner-space-v1.js","sourceRoot":"","sources":["../../../src/witness/space/inner-space-v1.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare const OUTER_SPACE_DEFAULT_IB_DELIMITER = " ";
2
+ //# sourceMappingURL=outer-space-constants.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"outer-space-constants.d.mts","sourceRoot":"","sources":["../../../../src/witness/space/outer-space/outer-space-constants.mts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gCAAgC,MAAM,CAAC"}
@@ -0,0 +1,2 @@
1
+ export const OUTER_SPACE_DEFAULT_IB_DELIMITER = ' ';
2
+ //# sourceMappingURL=outer-space-constants.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"outer-space-constants.mjs","sourceRoot":"","sources":["../../../../src/witness/space/outer-space/outer-space-constants.mts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,gCAAgC,GAAG,GAAG,CAAC"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * @module outer-space
3
+ * Outer spaces are spaces connecting local inner spaces.
4
+ * ATOW there is just sync spaces, but definitely just the beginning.
5
+ *
6
+ * ## on future implementations, CRDT-like behavior
7
+ *
8
+ * I just realized that when merging, I can actually create a meta transform
9
+ * ibgib to maintain the order of transforms.
10
+ */
11
+ import { Ib } from '@ibgib/ts-gib';
12
+ import { StatusIbInfo } from './outer-space-types.mjs';
13
+ /**
14
+ * Composes ib with given params info.
15
+ *
16
+ * @returns ib string with given info encoded
17
+ */
18
+ export declare function getStatusIb({ sagaId, statusCode, spaceType, spaceSubtype, delimiter, }: StatusIbInfo): string;
19
+ /**
20
+ * Parses the given `statusIb` and returns the info object.
21
+ *
22
+ * @returns info from parsing the status ib
23
+ */
24
+ export declare function getStatusIbInfo({ statusIb, delimiter, }: {
25
+ statusIb: Ib;
26
+ delimiter?: string;
27
+ }): StatusIbInfo;
28
+ //# sourceMappingURL=outer-space-helper.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"outer-space-helper.d.mts","sourceRoot":"","sources":["../../../../src/witness/space/outer-space/outer-space-helper.mts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,EAAE,EAAG,MAAM,eAAe,CAAC;AAEpC,OAAO,EAES,YAAY,EAE3B,MAAM,yBAAyB,CAAC;AAIjC;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,EACxB,MAAM,EACN,UAAU,EACV,SAAS,EACT,YAAY,EACZ,SAAS,GACZ,EAAE,YAAY,GAAG,MAAM,CAgBvB;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,EAC5B,QAAQ,EACR,SAAS,GACZ,EAAE;IACC,QAAQ,EAAE,EAAE,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB,GAAG,YAAY,CA6Bf"}
@@ -0,0 +1,87 @@
1
+ /**
2
+ * @module outer-space
3
+ * Outer spaces are spaces connecting local inner spaces.
4
+ * ATOW there is just sync spaces, but definitely just the beginning.
5
+ *
6
+ * ## on future implementations, CRDT-like behavior
7
+ *
8
+ * I just realized that when merging, I can actually create a meta transform
9
+ * ibgib to maintain the order of transforms.
10
+ */
11
+ import { StatusCode, VALID_OUTER_SPACE_SUBTYPES, VALID_OUTER_SPACE_TYPES, } from './outer-space-types.mjs';
12
+ import { OUTER_SPACE_DEFAULT_IB_DELIMITER } from './outer-space-constants.mjs';
13
+ /**
14
+ * Composes ib with given params info.
15
+ *
16
+ * @returns ib string with given info encoded
17
+ */
18
+ export function getStatusIb({ sagaId, statusCode, spaceType, spaceSubtype, delimiter, }) {
19
+ const lc = `[${getStatusIb.name}]`;
20
+ try {
21
+ if (!sagaId) {
22
+ throw new Error(`sagaId required. (E: cfc923bb29ee4aa788e947b6416740e6)`);
23
+ }
24
+ if (statusCode === null || statusCode === undefined) {
25
+ throw new Error(`status code required. (E: 4e0d232a9955496695012623c2e17ca2)`);
26
+ }
27
+ if (!Object.values(StatusCode).includes(statusCode)) {
28
+ throw new Error(`invalid status code (${statusCode}) (E: 91d7655424c44d9680fff099ee2b54d2)`);
29
+ }
30
+ if (!spaceType) {
31
+ throw new Error(`spaceType required. (E: 86e98694a56a4f599e98e50abf0eed43)`);
32
+ }
33
+ if (!spaceSubtype) {
34
+ throw new Error(`spaceSubtype required. (E: 4857d4677ee34e95aeb2251dd633909e)`);
35
+ }
36
+ delimiter = delimiter || OUTER_SPACE_DEFAULT_IB_DELIMITER;
37
+ return `status ${sagaId} ${statusCode} ${spaceType} ${spaceSubtype}`;
38
+ }
39
+ catch (error) {
40
+ console.error(`${lc} ${error.message}`);
41
+ throw error;
42
+ }
43
+ }
44
+ /**
45
+ * Parses the given `statusIb` and returns the info object.
46
+ *
47
+ * @returns info from parsing the status ib
48
+ */
49
+ export function getStatusIbInfo({ statusIb, delimiter, }) {
50
+ const lc = `[${getStatusIb.name}]`;
51
+ try {
52
+ if (!statusIb) {
53
+ throw new Error(`statusIb required. (E: 09e23e8622cf456cadb0c3d0aadc3be9)`);
54
+ }
55
+ delimiter = delimiter || OUTER_SPACE_DEFAULT_IB_DELIMITER;
56
+ // atow `status ${sagaId} ${statusCode} ${spaceType} ${spaceSubtype}`;
57
+ const pieces = statusIb.split(delimiter);
58
+ const sagaId = pieces[1];
59
+ if (sagaId === null || sagaId === undefined) {
60
+ throw new Error(`sagaId is null/undefined. (E: 5de2861a6afb48e1a1c89d0402a4ea63)`);
61
+ }
62
+ const statusCode = pieces[2]; // tenatively cast as StatusCode
63
+ if (!Object.values(StatusCode).includes(statusCode)) {
64
+ throw new Error(`invalid/unknown status code (${statusCode}) (E: 7580860df7b344b3992148552e80a85e)`);
65
+ }
66
+ const spaceType = pieces[3];
67
+ if (spaceType === null || spaceType === undefined) {
68
+ throw new Error(`spaceType is null/undefined. (E: 12473d35e77b451bb59bb05c03cb8b64)`);
69
+ }
70
+ if (!VALID_OUTER_SPACE_TYPES.includes(spaceType)) {
71
+ throw new Error(`invalid/unknown spaceType (${spaceType}) (E: d3ba9add427f49dda34f265f3225d9db)`);
72
+ }
73
+ const spaceSubtype = pieces[4];
74
+ if (spaceSubtype === null || spaceSubtype === undefined) {
75
+ throw new Error(`spaceSubtype is null/undefined. (E: 6da7ae919d0b4a22b4ee685520b6c946)`);
76
+ }
77
+ if (!VALID_OUTER_SPACE_SUBTYPES.includes(spaceSubtype)) {
78
+ throw new Error(`invalid/unknown spaceSubtype (${spaceSubtype}) (E: 703ed1aee44447a294b3e1cf0984baba)`);
79
+ }
80
+ return { statusCode, spaceType, spaceSubtype, sagaId, delimiter };
81
+ }
82
+ catch (error) {
83
+ console.error(`${lc} ${error.message}`);
84
+ throw error;
85
+ }
86
+ }
87
+ //# sourceMappingURL=outer-space-helper.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"outer-space-helper.mjs","sourceRoot":"","sources":["../../../../src/witness/space/outer-space/outer-space-helper.mts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,OAAO,EAEH,UAAU,EACV,0BAA0B,EAAE,uBAAuB,GACtD,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,gCAAgC,EAAE,MAAM,6BAA6B,CAAC;AAG/E;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,EACxB,MAAM,EACN,UAAU,EACV,SAAS,EACT,YAAY,EACZ,SAAS,GACE;IACX,MAAM,EAAE,GAAG,IAAI,WAAW,CAAC,IAAI,GAAG,CAAC;IACnC,IAAI;QACA,IAAI,CAAC,MAAM,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;SAAE;QAC3F,IAAI,UAAU,KAAK,IAAI,IAAI,UAAU,KAAK,SAAS,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;SAAE;QACxI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,UAAU,yCAAyC,CAAC,CAAC;SAAE;QACtJ,IAAI,CAAC,SAAS,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;SAAE;QACjG,IAAI,CAAC,YAAY,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;SAAE;QAEvG,SAAS,GAAG,SAAS,IAAI,gCAAgC,CAAC;QAE1D,OAAO,UAAU,MAAM,IAAI,UAAU,IAAI,SAAS,IAAI,YAAY,EAAE,CAAC;KACxE;IAAC,OAAO,KAAK,EAAE;QACZ,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACxC,MAAM,KAAK,CAAC;KACf;AACL,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,EAC5B,QAAQ,EACR,SAAS,GAIZ;IACG,MAAM,EAAE,GAAG,IAAI,WAAW,CAAC,IAAI,GAAG,CAAC;IACnC,IAAI;QACA,IAAI,CAAC,QAAQ,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;SAAE;QAE/F,SAAS,GAAG,SAAS,IAAI,gCAAgC,CAAC;QAE1D,sEAAsE;QACtE,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAEzC,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACzB,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,SAAS,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAC;SAAE;QAEpI,MAAM,UAAU,GAAG,MAAM,CAAC,CAAC,CAAe,CAAC,CAAC,gCAAgC;QAC5E,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,UAAU,yCAAyC,CAAC,CAAC;SAAE;QAE9J,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAmB,CAAC;QAC9C,IAAI,SAAS,KAAK,IAAI,IAAI,SAAS,KAAK,SAAS,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC,CAAC;SAAE;QAC7I,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,SAAS,yCAAyC,CAAC,CAAC;SAAE;QAExJ,MAAM,YAAY,GAAG,MAAM,CAAC,CAAC,CAAsB,CAAC;QACpD,IAAI,YAAY,KAAK,IAAI,IAAI,YAAY,KAAK,SAAS,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,uEAAuE,CAAC,CAAC;SAAE;QACtJ,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,YAAY,yCAAyC,CAAC,CAAC;SAAE;QAEpK,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;KACrE;IAAC,OAAO,KAAK,EAAE;QACZ,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACxC,MAAM,KAAK,CAAC;KACf;AACL,CAAC"}