@walkeros/explorer 3.0.1 → 3.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (361) hide show
  1. package/dist/__mocks__/@monaco-editor/react.d.ts +3 -0
  2. package/dist/__mocks__/@monaco-editor/react.d.ts.map +1 -0
  3. package/dist/__mocks__/@monaco-editor/react.js +4 -0
  4. package/dist/__mocks__/@monaco-editor/react.js.map +1 -0
  5. package/dist/components/atoms/box.d.ts +27 -0
  6. package/dist/components/atoms/box.d.ts.map +1 -0
  7. package/dist/components/atoms/box.js +86 -0
  8. package/dist/components/atoms/box.js.map +1 -0
  9. package/dist/components/atoms/box.stories.d.ts +34 -0
  10. package/dist/components/atoms/box.stories.d.ts.map +1 -0
  11. package/dist/components/atoms/box.stories.js +104 -0
  12. package/dist/components/atoms/box.stories.js.map +1 -0
  13. package/dist/components/atoms/button-group.d.ts +17 -0
  14. package/dist/components/atoms/button-group.d.ts.map +1 -0
  15. package/dist/components/atoms/button-group.js +12 -0
  16. package/dist/components/atoms/button-group.js.map +1 -0
  17. package/dist/components/atoms/button-group.stories.d.ts +18 -0
  18. package/dist/components/atoms/button-group.stories.d.ts.map +1 -0
  19. package/dist/components/atoms/button-group.stories.js +39 -0
  20. package/dist/components/atoms/button-group.stories.js.map +1 -0
  21. package/dist/components/atoms/button-link.d.ts +12 -0
  22. package/dist/components/atoms/button-link.d.ts.map +1 -0
  23. package/dist/components/atoms/button-link.js +10 -0
  24. package/dist/components/atoms/button-link.js.map +1 -0
  25. package/dist/components/atoms/button-link.stories.d.ts +11 -0
  26. package/dist/components/atoms/button-link.stories.d.ts.map +1 -0
  27. package/dist/components/atoms/button-link.stories.js +50 -0
  28. package/dist/components/atoms/button-link.stories.js.map +1 -0
  29. package/dist/components/atoms/button.d.ts +15 -0
  30. package/dist/components/atoms/button.d.ts.map +1 -0
  31. package/dist/components/atoms/button.js +11 -0
  32. package/dist/components/atoms/button.js.map +1 -0
  33. package/dist/components/atoms/button.stories.d.ts +14 -0
  34. package/dist/components/atoms/button.stories.d.ts.map +1 -0
  35. package/dist/components/atoms/button.stories.js +25 -0
  36. package/dist/components/atoms/button.stories.js.map +1 -0
  37. package/dist/components/atoms/code.d.ts +92 -0
  38. package/dist/components/atoms/code.d.ts.map +1 -0
  39. package/dist/components/atoms/code.js +405 -0
  40. package/dist/components/atoms/code.js.map +1 -0
  41. package/dist/components/atoms/code.stories.d.ts +46 -0
  42. package/dist/components/atoms/code.stories.d.ts.map +1 -0
  43. package/dist/components/atoms/code.stories.js +156 -0
  44. package/dist/components/atoms/code.stories.js.map +1 -0
  45. package/dist/components/atoms/footer.d.ts +21 -0
  46. package/dist/components/atoms/footer.d.ts.map +1 -0
  47. package/dist/components/atoms/footer.js +19 -0
  48. package/dist/components/atoms/footer.js.map +1 -0
  49. package/dist/components/atoms/footer.stories.d.ts +14 -0
  50. package/dist/components/atoms/footer.stories.d.ts.map +1 -0
  51. package/dist/components/atoms/footer.stories.js +29 -0
  52. package/dist/components/atoms/footer.stories.js.map +1 -0
  53. package/dist/components/atoms/grid.d.ts +65 -0
  54. package/dist/components/atoms/grid.d.ts.map +1 -0
  55. package/dist/components/atoms/grid.js +169 -0
  56. package/dist/components/atoms/grid.js.map +1 -0
  57. package/dist/components/atoms/grid.stories.d.ts +18 -0
  58. package/dist/components/atoms/grid.stories.d.ts.map +1 -0
  59. package/dist/components/atoms/grid.stories.js +60 -0
  60. package/dist/components/atoms/grid.stories.js.map +1 -0
  61. package/dist/components/atoms/header.d.ts +7 -0
  62. package/dist/components/atoms/header.d.ts.map +1 -0
  63. package/dist/components/atoms/header.js +5 -0
  64. package/dist/components/atoms/header.js.map +1 -0
  65. package/dist/components/atoms/header.stories.d.ts +15 -0
  66. package/dist/components/atoms/header.stories.d.ts.map +1 -0
  67. package/dist/components/atoms/header.stories.js +37 -0
  68. package/dist/components/atoms/header.stories.js.map +1 -0
  69. package/dist/components/atoms/icons/icon.stories.d.ts +18 -0
  70. package/dist/components/atoms/icons/icon.stories.d.ts.map +1 -0
  71. package/dist/components/atoms/icons/icon.stories.js +37 -0
  72. package/dist/components/atoms/icons/icon.stories.js.map +1 -0
  73. package/dist/components/atoms/icons/icons.d.ts +2 -0
  74. package/dist/components/atoms/icons/icons.d.ts.map +1 -0
  75. package/dist/components/atoms/icons/icons.js +7 -0
  76. package/dist/components/atoms/icons/icons.js.map +1 -0
  77. package/dist/components/atoms/icons/index.d.ts +3 -0
  78. package/dist/components/atoms/icons/index.d.ts.map +1 -0
  79. package/dist/components/atoms/icons/index.js +3 -0
  80. package/dist/components/atoms/icons/index.js.map +1 -0
  81. package/dist/components/atoms/mdx-code.d.ts +33 -0
  82. package/dist/components/atoms/mdx-code.d.ts.map +1 -0
  83. package/dist/components/atoms/mdx-code.js +69 -0
  84. package/dist/components/atoms/mdx-code.js.map +1 -0
  85. package/dist/components/atoms/preview-footer.d.ts +32 -0
  86. package/dist/components/atoms/preview-footer.d.ts.map +1 -0
  87. package/dist/components/atoms/preview-footer.js +31 -0
  88. package/dist/components/atoms/preview-footer.js.map +1 -0
  89. package/dist/components/atoms/spinner.d.ts +17 -0
  90. package/dist/components/atoms/spinner.d.ts.map +1 -0
  91. package/dist/components/atoms/spinner.js +14 -0
  92. package/dist/components/atoms/spinner.js.map +1 -0
  93. package/dist/components/atoms/spinner.stories.d.ts +7 -0
  94. package/dist/components/atoms/spinner.stories.d.ts.map +1 -0
  95. package/dist/components/atoms/spinner.stories.js +9 -0
  96. package/dist/components/atoms/spinner.stories.js.map +1 -0
  97. package/dist/components/atoms/toggle.d.ts +9 -0
  98. package/dist/components/atoms/toggle.d.ts.map +1 -0
  99. package/dist/components/atoms/toggle.js +6 -0
  100. package/dist/components/atoms/toggle.js.map +1 -0
  101. package/dist/components/demos/DestinationDemo.d.ts +48 -0
  102. package/dist/components/demos/DestinationDemo.d.ts.map +1 -0
  103. package/dist/components/demos/DestinationDemo.js +105 -0
  104. package/dist/components/demos/DestinationDemo.js.map +1 -0
  105. package/dist/components/demos/DestinationDemo.stories.d.ts +17 -0
  106. package/dist/components/demos/DestinationDemo.stories.d.ts.map +1 -0
  107. package/dist/components/demos/DestinationDemo.stories.js +53 -0
  108. package/dist/components/demos/DestinationDemo.stories.js.map +1 -0
  109. package/dist/components/demos/DestinationInitDemo.d.ts +34 -0
  110. package/dist/components/demos/DestinationInitDemo.d.ts.map +1 -0
  111. package/dist/components/demos/DestinationInitDemo.js +73 -0
  112. package/dist/components/demos/DestinationInitDemo.js.map +1 -0
  113. package/dist/components/demos/DestinationInitDemo.stories.d.ts +17 -0
  114. package/dist/components/demos/DestinationInitDemo.stories.d.ts.map +1 -0
  115. package/dist/components/demos/DestinationInitDemo.stories.js +39 -0
  116. package/dist/components/demos/DestinationInitDemo.stories.js.map +1 -0
  117. package/dist/components/demos/PromotionPlayground.d.ts +30 -0
  118. package/dist/components/demos/PromotionPlayground.d.ts.map +1 -0
  119. package/dist/components/demos/PromotionPlayground.js +366 -0
  120. package/dist/components/demos/PromotionPlayground.js.map +1 -0
  121. package/dist/components/demos/PromotionPlayground.stories.d.ts +27 -0
  122. package/dist/components/demos/PromotionPlayground.stories.d.ts.map +1 -0
  123. package/dist/components/demos/PromotionPlayground.stories.js +32 -0
  124. package/dist/components/demos/PromotionPlayground.stories.js.map +1 -0
  125. package/dist/components/molecules/architecture-flow/ArchitectureFlow.d.ts +24 -0
  126. package/dist/components/molecules/architecture-flow/ArchitectureFlow.d.ts.map +1 -0
  127. package/dist/components/molecules/architecture-flow/ArchitectureFlow.js +10 -0
  128. package/dist/components/molecules/architecture-flow/ArchitectureFlow.js.map +1 -0
  129. package/dist/components/molecules/architecture-flow/ArchitectureFlow.stories.d.ts +7 -0
  130. package/dist/components/molecules/architecture-flow/ArchitectureFlow.stories.d.ts.map +1 -0
  131. package/dist/components/molecules/architecture-flow/ArchitectureFlow.stories.js +71 -0
  132. package/dist/components/molecules/architecture-flow/ArchitectureFlow.stories.js.map +1 -0
  133. package/dist/components/molecules/architecture-flow/index.d.ts +3 -0
  134. package/dist/components/molecules/architecture-flow/index.d.ts.map +1 -0
  135. package/dist/components/molecules/architecture-flow/index.js +2 -0
  136. package/dist/components/molecules/architecture-flow/index.js.map +1 -0
  137. package/dist/components/molecules/code-box.d.ts +75 -0
  138. package/dist/components/molecules/code-box.d.ts.map +1 -0
  139. package/dist/components/molecules/code-box.js +174 -0
  140. package/dist/components/molecules/code-box.js.map +1 -0
  141. package/dist/components/molecules/code-box.stories.d.ts +87 -0
  142. package/dist/components/molecules/code-box.stories.d.ts.map +1 -0
  143. package/dist/components/molecules/code-box.stories.js +300 -0
  144. package/dist/components/molecules/code-box.stories.js.map +1 -0
  145. package/dist/components/molecules/code-snippet.d.ts +58 -0
  146. package/dist/components/molecules/code-snippet.d.ts.map +1 -0
  147. package/dist/components/molecules/code-snippet.js +72 -0
  148. package/dist/components/molecules/code-snippet.js.map +1 -0
  149. package/dist/components/molecules/code-snippet.stories.d.ts +23 -0
  150. package/dist/components/molecules/code-snippet.stories.d.ts.map +1 -0
  151. package/dist/components/molecules/code-snippet.stories.js +87 -0
  152. package/dist/components/molecules/code-snippet.stories.js.map +1 -0
  153. package/dist/components/molecules/dropdown.d.ts +68 -0
  154. package/dist/components/molecules/dropdown.d.ts.map +1 -0
  155. package/dist/components/molecules/dropdown.js +47 -0
  156. package/dist/components/molecules/dropdown.js.map +1 -0
  157. package/dist/components/molecules/dropdown.stories.d.ts +7 -0
  158. package/dist/components/molecules/dropdown.stories.d.ts.map +1 -0
  159. package/dist/components/molecules/dropdown.stories.js +18 -0
  160. package/dist/components/molecules/dropdown.stories.js.map +1 -0
  161. package/dist/components/molecules/flow-map/FlowMap.d.ts +74 -0
  162. package/dist/components/molecules/flow-map/FlowMap.d.ts.map +1 -0
  163. package/dist/components/molecules/flow-map/FlowMap.js +1039 -0
  164. package/dist/components/molecules/flow-map/FlowMap.js.map +1 -0
  165. package/dist/components/molecules/flow-map/FlowMap.stories.d.ts +47 -0
  166. package/dist/components/molecules/flow-map/FlowMap.stories.d.ts.map +1 -0
  167. package/dist/components/molecules/flow-map/FlowMap.stories.js +355 -0
  168. package/dist/components/molecules/flow-map/FlowMap.stories.js.map +1 -0
  169. package/dist/components/molecules/flow-map/FlowMap.transformers.stories.d.ts +29 -0
  170. package/dist/components/molecules/flow-map/FlowMap.transformers.stories.d.ts.map +1 -0
  171. package/dist/components/molecules/flow-map/FlowMap.transformers.stories.js +117 -0
  172. package/dist/components/molecules/flow-map/FlowMap.transformers.stories.js.map +1 -0
  173. package/dist/components/molecules/flow-map/index.d.ts +3 -0
  174. package/dist/components/molecules/flow-map/index.d.ts.map +1 -0
  175. package/dist/components/molecules/flow-map/index.js +2 -0
  176. package/dist/components/molecules/flow-map/index.js.map +1 -0
  177. package/dist/components/molecules/preview.d.ts +23 -0
  178. package/dist/components/molecules/preview.d.ts.map +1 -0
  179. package/dist/components/molecules/preview.js +232 -0
  180. package/dist/components/molecules/preview.js.map +1 -0
  181. package/dist/components/molecules/preview.stories.d.ts +23 -0
  182. package/dist/components/molecules/preview.stories.d.ts.map +1 -0
  183. package/dist/components/molecules/preview.stories.js +186 -0
  184. package/dist/components/molecules/preview.stories.js.map +1 -0
  185. package/dist/components/molecules/property-table.d.ts +7 -0
  186. package/dist/components/molecules/property-table.d.ts.map +1 -0
  187. package/dist/components/molecules/property-table.js +88 -0
  188. package/dist/components/molecules/property-table.js.map +1 -0
  189. package/dist/components/molecules/property-table.stories.d.ts +24 -0
  190. package/dist/components/molecules/property-table.stories.d.ts.map +1 -0
  191. package/dist/components/molecules/property-table.stories.js +86 -0
  192. package/dist/components/molecules/property-table.stories.js.map +1 -0
  193. package/dist/components/organisms/browser-box.d.ts +31 -0
  194. package/dist/components/organisms/browser-box.d.ts.map +1 -0
  195. package/dist/components/organisms/browser-box.js +80 -0
  196. package/dist/components/organisms/browser-box.js.map +1 -0
  197. package/dist/components/organisms/browser-box.stories.d.ts +26 -0
  198. package/dist/components/organisms/browser-box.stories.d.ts.map +1 -0
  199. package/dist/components/organisms/browser-box.stories.js +102 -0
  200. package/dist/components/organisms/browser-box.stories.js.map +1 -0
  201. package/dist/components/organisms/collector-box.d.ts +24 -0
  202. package/dist/components/organisms/collector-box.d.ts.map +1 -0
  203. package/dist/components/organisms/collector-box.js +56 -0
  204. package/dist/components/organisms/collector-box.js.map +1 -0
  205. package/dist/components/organisms/collector-box.stories.d.ts +22 -0
  206. package/dist/components/organisms/collector-box.stories.d.ts.map +1 -0
  207. package/dist/components/organisms/collector-box.stories.js +59 -0
  208. package/dist/components/organisms/collector-box.stories.js.map +1 -0
  209. package/dist/components/organisms/live-code.d.ts +22 -0
  210. package/dist/components/organisms/live-code.d.ts.map +1 -0
  211. package/dist/components/organisms/live-code.js +50 -0
  212. package/dist/components/organisms/live-code.js.map +1 -0
  213. package/dist/components/organisms/live-code.stories.d.ts +24 -0
  214. package/dist/components/organisms/live-code.stories.d.ts.map +1 -0
  215. package/dist/components/organisms/live-code.stories.js +55 -0
  216. package/dist/components/organisms/live-code.stories.js.map +1 -0
  217. package/dist/components/ui/button.d.ts +4 -0
  218. package/dist/components/ui/button.d.ts.map +1 -0
  219. package/dist/components/ui/button.js +6 -0
  220. package/dist/components/ui/button.js.map +1 -0
  221. package/dist/components/ui/icon.d.ts +5 -0
  222. package/dist/components/ui/icon.d.ts.map +1 -0
  223. package/dist/components/ui/icon.js +5 -0
  224. package/dist/components/ui/icon.js.map +1 -0
  225. package/dist/contexts/GridHeightContext.d.ts +11 -0
  226. package/dist/contexts/GridHeightContext.d.ts.map +1 -0
  227. package/dist/contexts/GridHeightContext.js +14 -0
  228. package/dist/contexts/GridHeightContext.js.map +1 -0
  229. package/dist/helpers/capture.d.ts +83 -0
  230. package/dist/helpers/capture.d.ts.map +1 -0
  231. package/dist/helpers/capture.js +125 -0
  232. package/dist/helpers/capture.js.map +1 -0
  233. package/dist/helpers/destinations.d.ts +21 -0
  234. package/dist/helpers/destinations.d.ts.map +1 -0
  235. package/dist/helpers/destinations.js +46 -0
  236. package/dist/helpers/destinations.js.map +1 -0
  237. package/dist/hooks/useDropdown.d.ts +34 -0
  238. package/dist/hooks/useDropdown.d.ts.map +1 -0
  239. package/dist/hooks/useDropdown.js +66 -0
  240. package/dist/hooks/useDropdown.js.map +1 -0
  241. package/dist/hooks/useMonacoHeight.d.ts +31 -0
  242. package/dist/hooks/useMonacoHeight.d.ts.map +1 -0
  243. package/dist/hooks/useMonacoHeight.js +83 -0
  244. package/dist/hooks/useMonacoHeight.js.map +1 -0
  245. package/dist/hooks/useTreeState.d.ts +32 -0
  246. package/dist/hooks/useTreeState.d.ts.map +1 -0
  247. package/dist/hooks/useTreeState.js +94 -0
  248. package/dist/hooks/useTreeState.js.map +1 -0
  249. package/dist/index.d.ts +69 -1338
  250. package/dist/index.d.ts.map +1 -0
  251. package/dist/index.js +59 -1
  252. package/dist/index.js.map +1 -1
  253. package/dist/lib/utils.d.ts +7 -0
  254. package/dist/lib/utils.d.ts.map +1 -0
  255. package/dist/lib/utils.js +10 -0
  256. package/dist/lib/utils.js.map +1 -0
  257. package/dist/providers/MDXProvider.d.ts +40 -0
  258. package/dist/providers/MDXProvider.d.ts.map +1 -0
  259. package/dist/providers/MDXProvider.js +57 -0
  260. package/dist/providers/MDXProvider.js.map +1 -0
  261. package/dist/themes/index.d.ts +23 -0
  262. package/dist/themes/index.d.ts.map +1 -0
  263. package/dist/themes/index.js +29 -0
  264. package/dist/themes/index.js.map +1 -0
  265. package/dist/themes/lighthouse.d.ts +26 -0
  266. package/dist/themes/lighthouse.d.ts.map +1 -0
  267. package/dist/themes/lighthouse.js +230 -0
  268. package/dist/themes/lighthouse.js.map +1 -0
  269. package/dist/themes/palenight.d.ts +31 -0
  270. package/dist/themes/palenight.d.ts.map +1 -0
  271. package/dist/themes/palenight.js +236 -0
  272. package/dist/themes/palenight.js.map +1 -0
  273. package/dist/themes/types.d.ts +103 -0
  274. package/dist/themes/types.d.ts.map +1 -0
  275. package/dist/themes/types.js +8 -0
  276. package/dist/themes/types.js.map +1 -0
  277. package/dist/types/intellisense.d.ts +33 -0
  278. package/dist/types/intellisense.d.ts.map +1 -0
  279. package/dist/types/intellisense.js +2 -0
  280. package/dist/types/intellisense.js.map +1 -0
  281. package/dist/utils/code-normalizer.d.ts +11 -0
  282. package/dist/utils/code-normalizer.d.ts.map +1 -0
  283. package/dist/utils/code-normalizer.js +21 -0
  284. package/dist/utils/code-normalizer.js.map +1 -0
  285. package/dist/utils/contract-path-walker.d.ts +27 -0
  286. package/dist/utils/contract-path-walker.d.ts.map +1 -0
  287. package/dist/utils/contract-path-walker.js +145 -0
  288. package/dist/utils/contract-path-walker.js.map +1 -0
  289. package/dist/utils/format-code.d.ts +9 -0
  290. package/dist/utils/format-code.d.ts.map +1 -0
  291. package/dist/utils/format-code.js +77 -0
  292. package/dist/utils/format-code.js.map +1 -0
  293. package/dist/utils/mapping-context-detector.d.ts +17 -0
  294. package/dist/utils/mapping-context-detector.d.ts.map +1 -0
  295. package/dist/utils/mapping-context-detector.js +22 -0
  296. package/dist/utils/mapping-context-detector.js.map +1 -0
  297. package/dist/utils/monaco-context-types.d.ts +39 -0
  298. package/dist/utils/monaco-context-types.d.ts.map +1 -0
  299. package/dist/utils/monaco-context-types.js +426 -0
  300. package/dist/utils/monaco-context-types.js.map +1 -0
  301. package/dist/utils/monaco-decorators.d.ts +17 -0
  302. package/dist/utils/monaco-decorators.d.ts.map +1 -0
  303. package/dist/utils/monaco-decorators.js +81 -0
  304. package/dist/utils/monaco-decorators.js.map +1 -0
  305. package/dist/utils/monaco-formatters.d.ts +16 -0
  306. package/dist/utils/monaco-formatters.d.ts.map +1 -0
  307. package/dist/utils/monaco-formatters.js +139 -0
  308. package/dist/utils/monaco-formatters.js.map +1 -0
  309. package/dist/utils/monaco-intellisense-flow-extractor.d.ts +13 -0
  310. package/dist/utils/monaco-intellisense-flow-extractor.d.ts.map +1 -0
  311. package/dist/utils/monaco-intellisense-flow-extractor.js +168 -0
  312. package/dist/utils/monaco-intellisense-flow-extractor.js.map +1 -0
  313. package/dist/utils/monaco-json-path.d.ts +12 -0
  314. package/dist/utils/monaco-json-path.d.ts.map +1 -0
  315. package/dist/utils/monaco-json-path.js +68 -0
  316. package/dist/utils/monaco-json-path.js.map +1 -0
  317. package/dist/utils/monaco-json-schema.d.ts +45 -0
  318. package/dist/utils/monaco-json-schema.d.ts.map +1 -0
  319. package/dist/utils/monaco-json-schema.js +90 -0
  320. package/dist/utils/monaco-json-schema.js.map +1 -0
  321. package/dist/utils/monaco-schema-contract.d.ts +8 -0
  322. package/dist/utils/monaco-schema-contract.d.ts.map +1 -0
  323. package/dist/utils/monaco-schema-contract.js +73 -0
  324. package/dist/utils/monaco-schema-contract.js.map +1 -0
  325. package/dist/utils/monaco-schema-enrichment.d.ts +26 -0
  326. package/dist/utils/monaco-schema-enrichment.d.ts.map +1 -0
  327. package/dist/utils/monaco-schema-enrichment.js +31 -0
  328. package/dist/utils/monaco-schema-enrichment.js.map +1 -0
  329. package/dist/utils/monaco-schema-flow-config.d.ts +10 -0
  330. package/dist/utils/monaco-schema-flow-config.d.ts.map +1 -0
  331. package/dist/utils/monaco-schema-flow-config.js +201 -0
  332. package/dist/utils/monaco-schema-flow-config.js.map +1 -0
  333. package/dist/utils/monaco-schema-variables.d.ts +4 -0
  334. package/dist/utils/monaco-schema-variables.d.ts.map +1 -0
  335. package/dist/utils/monaco-schema-variables.js +26 -0
  336. package/dist/utils/monaco-schema-variables.js.map +1 -0
  337. package/dist/utils/monaco-types.d.ts +174 -0
  338. package/dist/utils/monaco-types.d.ts.map +1 -0
  339. package/dist/utils/monaco-types.js +378 -0
  340. package/dist/utils/monaco-types.js.map +1 -0
  341. package/dist/utils/monaco-walkeros-completions.d.ts +23 -0
  342. package/dist/utils/monaco-walkeros-completions.d.ts.map +1 -0
  343. package/dist/utils/monaco-walkeros-completions.js +258 -0
  344. package/dist/utils/monaco-walkeros-completions.js.map +1 -0
  345. package/dist/utils/monaco-walkeros-decorations.d.ts +29 -0
  346. package/dist/utils/monaco-walkeros-decorations.d.ts.map +1 -0
  347. package/dist/utils/monaco-walkeros-decorations.js +87 -0
  348. package/dist/utils/monaco-walkeros-decorations.js.map +1 -0
  349. package/dist/utils/monaco-walkeros-markers.d.ts +13 -0
  350. package/dist/utils/monaco-walkeros-markers.d.ts.map +1 -0
  351. package/dist/utils/monaco-walkeros-markers.js +69 -0
  352. package/dist/utils/monaco-walkeros-markers.js.map +1 -0
  353. package/dist/utils/monaco-walkeros-providers.d.ts +19 -0
  354. package/dist/utils/monaco-walkeros-providers.d.ts.map +1 -0
  355. package/dist/utils/monaco-walkeros-providers.js +284 -0
  356. package/dist/utils/monaco-walkeros-providers.js.map +1 -0
  357. package/dist/utils/path-analyzer.d.ts +88 -0
  358. package/dist/utils/path-analyzer.d.ts.map +1 -0
  359. package/dist/utils/path-analyzer.js +215 -0
  360. package/dist/utils/path-analyzer.js.map +1 -0
  361. package/package.json +6 -6
@@ -0,0 +1,284 @@
1
+ import { getVariableCompletions, getDefinitionCompletions, getSecretCompletions, getPackageCompletions, getStepNameCompletions, getContractCompletions, getMappingPathCompletions, } from './monaco-walkeros-completions';
2
+ import { getJsonPathAtOffset } from './monaco-json-path';
3
+ import { detectMappingContext } from './mapping-context-detector';
4
+ // Store context per model path for scoped completions
5
+ const contextRegistry = new Map();
6
+ const disposables = [];
7
+ let registered = false;
8
+ /**
9
+ * Update the IntelliSense context for a specific editor model.
10
+ */
11
+ export function setIntelliSenseContext(modelPath, context) {
12
+ contextRegistry.set(modelPath, context);
13
+ }
14
+ /**
15
+ * Remove context when editor unmounts.
16
+ */
17
+ export function removeIntelliSenseContext(modelPath) {
18
+ contextRegistry.delete(modelPath);
19
+ }
20
+ /**
21
+ * Register the walkerOS CompletionItemProvider and HoverProvider for JSON.
22
+ * Call once on app initialization. Safe to call multiple times (idempotent).
23
+ */
24
+ export function registerWalkerOSProviders(monaco) {
25
+ if (registered)
26
+ return;
27
+ registered = true;
28
+ // CompletionItemProvider
29
+ disposables.push(monaco.languages.registerCompletionItemProvider('json', {
30
+ triggerCharacters: ['"', '.', '$'],
31
+ provideCompletionItems(model, position) {
32
+ const modelPath = model.uri.toString();
33
+ const context = contextRegistry.get(modelPath);
34
+ if (!context)
35
+ return { suggestions: [] };
36
+ const lineContent = model.getLineContent(position.lineNumber);
37
+ const textBeforeCursor = lineContent.substring(0, position.column - 1);
38
+ const entries = [];
39
+ if (textBeforeCursor.includes('$var.') ||
40
+ textBeforeCursor.endsWith('"$var')) {
41
+ entries.push(...getVariableCompletions(context.variables));
42
+ }
43
+ else if (textBeforeCursor.includes('$def.') ||
44
+ textBeforeCursor.endsWith('"$def')) {
45
+ entries.push(...getDefinitionCompletions(context.definitions));
46
+ }
47
+ else if (textBeforeCursor.includes('$secret.') ||
48
+ textBeforeCursor.endsWith('"$secret')) {
49
+ entries.push(...getSecretCompletions(context.secrets));
50
+ }
51
+ else if (textBeforeCursor.includes('$contract.') ||
52
+ textBeforeCursor.endsWith('"$contract')) {
53
+ const match = textBeforeCursor.match(/\$contract\.([a-zA-Z0-9_.]*)?$/);
54
+ const pathStr = match?.[1] || '';
55
+ const segments = pathStr ? pathStr.split('.').filter(Boolean) : [];
56
+ if (pathStr && !pathStr.endsWith('.') && segments.length > 0) {
57
+ segments.pop();
58
+ }
59
+ entries.push(...getContractCompletions(context.contractRaw, segments));
60
+ }
61
+ else if (isInsideKey(model, position, 'package')) {
62
+ entries.push(...getPackageCompletions(context.packages, context.platform));
63
+ }
64
+ else if (isInsideKey(model, position, 'next') ||
65
+ isInsideKey(model, position, 'before')) {
66
+ const key = isInsideKey(model, position, 'next') ? 'next' : 'before';
67
+ entries.push(...getStepNameCompletions(context.stepNames, key));
68
+ }
69
+ else if (textBeforeCursor.endsWith('"$') ||
70
+ textBeforeCursor.endsWith('"')) {
71
+ entries.push(...getVariableCompletions(context.variables));
72
+ entries.push(...getDefinitionCompletions(context.definitions));
73
+ entries.push(...getSecretCompletions(context.secrets));
74
+ entries.push(...getContractCompletions(context.contractRaw, []));
75
+ }
76
+ // Mapping value path completions (data., globals., user., etc.)
77
+ if (entries.length === 0 && context.contractRaw) {
78
+ const fullText = model.getValue();
79
+ const offset = model.getOffsetAt(position);
80
+ const jsonPath = getJsonPathAtOffset(fullText, offset);
81
+ const mappingCtx = detectMappingContext(jsonPath);
82
+ if (mappingCtx) {
83
+ const valueMatch = textBeforeCursor.match(/"([a-z_]*)\.?$/);
84
+ if (valueMatch) {
85
+ const prefix = valueMatch[1];
86
+ const mappingEntries = getMappingPathCompletions(context.contractRaw, mappingCtx.entity, mappingCtx.action, prefix);
87
+ if (mappingEntries.length > 0) {
88
+ entries.push(...mappingEntries);
89
+ }
90
+ }
91
+ }
92
+ }
93
+ // Calculate range that covers the full $ref.name token.
94
+ // Monaco's getWordUntilPosition doesn't understand $ or . as word chars,
95
+ // so we scan backwards to find the $ that starts the reference.
96
+ const refStartMatch = textBeforeCursor.match(/\$(?:var|def|secret|env|code|contract)[.:]?[\w.]*$/);
97
+ const mappingPathMatch = !refStartMatch
98
+ ? textBeforeCursor.match(/[a-z_][\w.]*$/i)
99
+ : null;
100
+ const word = model.getWordUntilPosition(position);
101
+ const startCol = refStartMatch
102
+ ? position.column - refStartMatch[0].length
103
+ : mappingPathMatch
104
+ ? position.column - mappingPathMatch[0].length
105
+ : word.startColumn;
106
+ const range = {
107
+ startLineNumber: position.lineNumber,
108
+ endLineNumber: position.lineNumber,
109
+ startColumn: startCol,
110
+ endColumn: position.column,
111
+ };
112
+ return {
113
+ suggestions: entries.map((entry) => ({
114
+ label: entry.label,
115
+ insertText: entry.insertText,
116
+ detail: entry.detail,
117
+ documentation: entry.documentation,
118
+ kind: mapCompletionKind(monaco, entry.kind),
119
+ sortText: entry.sortText,
120
+ range,
121
+ })),
122
+ };
123
+ },
124
+ }));
125
+ // HoverProvider
126
+ disposables.push(monaco.languages.registerHoverProvider('json', {
127
+ provideHover(model, position) {
128
+ const modelPath = model.uri.toString();
129
+ const context = contextRegistry.get(modelPath);
130
+ if (!context)
131
+ return null;
132
+ const lineContent = model.getLineContent(position.lineNumber);
133
+ const col = position.column - 1; // 0-based index into line
134
+ // Helper: find a reference match at cursor position
135
+ function matchAtCursor(pattern) {
136
+ const regex = new RegExp(pattern.source, 'g');
137
+ let m;
138
+ while ((m = regex.exec(lineContent)) !== null) {
139
+ if (col >= m.index && col <= m.index + m[0].length)
140
+ return m;
141
+ }
142
+ return null;
143
+ }
144
+ // $var.name
145
+ const varMatch = matchAtCursor(/\$var\.(\w+)/);
146
+ if (varMatch && context.variables) {
147
+ const name = varMatch[1];
148
+ if (name in context.variables) {
149
+ const value = context.variables[name];
150
+ return {
151
+ range: {
152
+ startLineNumber: position.lineNumber,
153
+ startColumn: varMatch.index + 1,
154
+ endLineNumber: position.lineNumber,
155
+ endColumn: varMatch.index + varMatch[0].length + 1,
156
+ },
157
+ contents: [
158
+ {
159
+ value: `**Variable:** \`$var.${name}\`\n\n**Value:** \`${JSON.stringify(value)}\`\n\n*Resolved at runtime via variable interpolation*`,
160
+ },
161
+ ],
162
+ };
163
+ }
164
+ return {
165
+ contents: [
166
+ {
167
+ value: `**Unknown variable** \`$var.${name}\`\n\nDefined variables: ${Object.keys(context.variables).join(', ') || 'none'}`,
168
+ },
169
+ ],
170
+ };
171
+ }
172
+ // $def.name
173
+ const defMatch = matchAtCursor(/\$def\.(\w+)/);
174
+ if (defMatch && context.definitions) {
175
+ const name = defMatch[1];
176
+ if (name in context.definitions) {
177
+ return {
178
+ range: {
179
+ startLineNumber: position.lineNumber,
180
+ startColumn: defMatch.index + 1,
181
+ endLineNumber: position.lineNumber,
182
+ endColumn: defMatch.index + defMatch[0].length + 1,
183
+ },
184
+ contents: [
185
+ {
186
+ value: `**Definition:** \`$def.${name}\`\n\n*Injects reusable config fragment at runtime*`,
187
+ },
188
+ ],
189
+ };
190
+ }
191
+ return {
192
+ contents: [
193
+ {
194
+ value: `**Unknown definition** \`$def.${name}\`\n\nDefined: ${Object.keys(context.definitions).join(', ') || 'none'}`,
195
+ },
196
+ ],
197
+ };
198
+ }
199
+ // $secret.name
200
+ const secretMatch = matchAtCursor(/\$secret\.(\w+)/);
201
+ if (secretMatch) {
202
+ const name = secretMatch[1];
203
+ if (context.secrets?.includes(name)) {
204
+ return {
205
+ range: {
206
+ startLineNumber: position.lineNumber,
207
+ startColumn: secretMatch.index + 1,
208
+ endLineNumber: position.lineNumber,
209
+ endColumn: secretMatch.index + secretMatch[0].length + 1,
210
+ },
211
+ contents: [
212
+ {
213
+ value: `**Secret:** \`$secret.${name}\`\n\n*Securely injected at runtime. Value not stored in config.*`,
214
+ },
215
+ ],
216
+ };
217
+ }
218
+ return {
219
+ contents: [
220
+ {
221
+ value: `**Unknown secret** \`$secret.${name}\`\n\nAvailable secrets: ${context.secrets?.join(', ') || 'none'}`,
222
+ },
223
+ ],
224
+ };
225
+ }
226
+ // $contract.path
227
+ const contractMatch = matchAtCursor(/\$contract\.[\w.]+/);
228
+ if (contractMatch && context.contractRaw) {
229
+ const fullRef = contractMatch[0];
230
+ const pathStr = fullRef.replace('$contract.', '');
231
+ const segments = pathStr.split('.');
232
+ const contractName = segments[0];
233
+ const description = segments.length === 1
234
+ ? `**Contract:** \`${fullRef}\`\n\nNamed contract entry "${contractName}".`
235
+ : `**Contract reference:** \`${fullRef}\`\n\nResolves path \`${segments.slice(1).join('.')}\` in contract "${contractName}".`;
236
+ return {
237
+ range: {
238
+ startLineNumber: position.lineNumber,
239
+ startColumn: contractMatch.index + 1,
240
+ endLineNumber: position.lineNumber,
241
+ endColumn: contractMatch.index + contractMatch[0].length + 1,
242
+ },
243
+ contents: [{ value: description }],
244
+ };
245
+ }
246
+ return null;
247
+ },
248
+ }));
249
+ }
250
+ /**
251
+ * Dispose all registered providers. Call on app teardown.
252
+ */
253
+ export function disposeWalkerOSProviders() {
254
+ for (const d of disposables)
255
+ d.dispose();
256
+ disposables.length = 0;
257
+ registered = false;
258
+ contextRegistry.clear();
259
+ }
260
+ function mapCompletionKind(monaco, kind) {
261
+ switch (kind) {
262
+ case 'variable':
263
+ return monaco.languages.CompletionItemKind.Variable;
264
+ case 'reference':
265
+ return monaco.languages.CompletionItemKind.Reference;
266
+ case 'secret':
267
+ return monaco.languages.CompletionItemKind.Constant;
268
+ case 'module':
269
+ return monaco.languages.CompletionItemKind.Module;
270
+ case 'property':
271
+ return monaco.languages.CompletionItemKind.Property;
272
+ default:
273
+ return monaco.languages.CompletionItemKind.Text;
274
+ }
275
+ }
276
+ /**
277
+ * Check if cursor is inside the value of a specific JSON key.
278
+ */
279
+ function isInsideKey(model, position, key) {
280
+ const lineContent = model.getLineContent(position.lineNumber);
281
+ const pattern = new RegExp(`"${key}"\\s*:\\s*"`);
282
+ return pattern.test(lineContent);
283
+ }
284
+ //# sourceMappingURL=monaco-walkeros-providers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"monaco-walkeros-providers.js","sourceRoot":"","sources":["../../src/utils/monaco-walkeros-providers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,88 @@
1
+ import type { Mapping } from '@walkeros/core';
2
+ /**
3
+ * Path Context Analyzer
4
+ *
5
+ * Provides structural understanding of mapping paths by walking the actual
6
+ * config and inspecting values at each level.
7
+ *
8
+ * This is the single source of truth for understanding what a path points to
9
+ * in the recursive mapping structure.
10
+ */
11
+ /**
12
+ * Structural type of a path segment
13
+ */
14
+ export type SegmentStructuralType = 'entity' | 'action' | 'ruleProperty' | 'valueConfigProperty' | 'mapKey' | 'arrayIndex';
15
+ /**
16
+ * Semantic context of what's being edited
17
+ */
18
+ export type SemanticContext = 'overview' | 'entity' | 'rule' | 'ruleProperty' | 'valueConfig' | 'valueConfigProperty' | 'mapValue' | 'primitive';
19
+ /**
20
+ * Information about a single segment in the path
21
+ */
22
+ export interface PathSegmentInfo {
23
+ segment: string;
24
+ index: number;
25
+ structuralType: SegmentStructuralType;
26
+ value: unknown;
27
+ parentValue: unknown;
28
+ }
29
+ /**
30
+ * Complete analysis of a path through the mapping structure
31
+ */
32
+ export interface PathAnalysis {
33
+ segments: PathSegmentInfo[];
34
+ finalValue: unknown;
35
+ finalContext: SemanticContext;
36
+ isRuleLevel: boolean;
37
+ isValueConfigLevel: boolean;
38
+ propertyName?: string;
39
+ }
40
+ /**
41
+ * Type guard: Check if value is a Rule object
42
+ */
43
+ export declare function isRule(value: unknown): boolean;
44
+ /**
45
+ * Type guard: Check if value is a ValueConfig object
46
+ */
47
+ export declare function isValueConfig(value: unknown): boolean;
48
+ /**
49
+ * Type guard: Check if value is a Map object (plain object inside ValueConfig.map)
50
+ */
51
+ export declare function isMapObject(value: unknown): boolean;
52
+ /**
53
+ * Analyze a path through the mapping configuration
54
+ *
55
+ * Walks through the config structure, inspecting values at each step to
56
+ * determine the semantic type and context.
57
+ *
58
+ * @param path - Array of path segments (e.g., ['page', 'view', 'data', 'map', 'page_location', 'consent'])
59
+ * @param config - The mapping configuration object
60
+ * @returns Complete analysis of the path
61
+ *
62
+ * @example
63
+ * const analysis = analyzePath(['page', 'view', 'consent'], config);
64
+ * // analysis.isRuleLevel === true (consent at rule level)
65
+ *
66
+ * @example
67
+ * const analysis = analyzePath(['page', 'view', 'data', 'map', 'items', 'consent'], config);
68
+ * // analysis.isValueConfigLevel === true (consent at ValueConfig level)
69
+ */
70
+ export declare function analyzePath(path: string[], config: Mapping.Config): PathAnalysis;
71
+ /**
72
+ * Get semantic description for a path
73
+ *
74
+ * Returns human-readable description of what's being edited at this path.
75
+ *
76
+ * @example
77
+ * getPathDescription(['page', 'view', 'consent'], config)
78
+ * // Returns: "Rule-level consent for page view event"
79
+ *
80
+ * @example
81
+ * getPathDescription(['page', 'view', 'data', 'map', 'title', 'consent'], config)
82
+ * // Returns: "Property-level consent for title field"
83
+ */
84
+ export declare function getPathDescription(path: string[], config: Mapping.Config): {
85
+ title: string;
86
+ description: string;
87
+ };
88
+ //# sourceMappingURL=path-analyzer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"path-analyzer.d.ts","sourceRoot":"","sources":["../../src/utils/path-analyzer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAE9C;;;;;;;;GAQG;AAEH;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAC7B,QAAQ,GACR,QAAQ,GACR,cAAc,GACd,qBAAqB,GACrB,QAAQ,GACR,YAAY,CAAC;AAEjB;;GAEG;AACH,MAAM,MAAM,eAAe,GACvB,UAAU,GACV,QAAQ,GACR,MAAM,GACN,cAAc,GACd,aAAa,GACb,qBAAqB,GACrB,UAAU,GACV,WAAW,CAAC;AAEhB;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,qBAAqB,CAAC;IACtC,KAAK,EAAE,OAAO,CAAC;IACf,WAAW,EAAE,OAAO,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,eAAe,EAAE,CAAC;IAC5B,UAAU,EAAE,OAAO,CAAC;IACpB,YAAY,EAAE,eAAe,CAAC;IAC9B,WAAW,EAAE,OAAO,CAAC;IACrB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAoB9C;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAiBrD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAMnD;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,WAAW,CACzB,IAAI,EAAE,MAAM,EAAE,EACd,MAAM,EAAE,OAAO,CAAC,MAAM,GACrB,YAAY,CAqHd;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,EAAE,EACd,MAAM,EAAE,OAAO,CAAC,MAAM,GACrB;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAuBxC"}
@@ -0,0 +1,215 @@
1
+ /**
2
+ * Type guard: Check if value is a Rule object
3
+ */
4
+ export function isRule(value) {
5
+ if (!value || typeof value !== 'object')
6
+ return false;
7
+ const obj = value;
8
+ // Rule has specific properties that ValueConfig doesn't have
9
+ const ruleOnlyProps = [
10
+ 'name',
11
+ 'batch',
12
+ 'ignore',
13
+ 'settings',
14
+ 'batchFn',
15
+ 'batched',
16
+ ];
17
+ const valueConfigOnlyProps = ['key', 'fn', 'loop', 'set', 'validate'];
18
+ const hasRuleProps = ruleOnlyProps.some((p) => p in obj);
19
+ const hasValueConfigProps = valueConfigOnlyProps.some((p) => p in obj);
20
+ // If it has rule-specific properties and no ValueConfig-only properties, it's a Rule
21
+ return hasRuleProps && !hasValueConfigProps;
22
+ }
23
+ /**
24
+ * Type guard: Check if value is a ValueConfig object
25
+ */
26
+ export function isValueConfig(value) {
27
+ if (!value || typeof value !== 'object')
28
+ return false;
29
+ const obj = value;
30
+ // ValueConfig markers - if ANY of these exist, it's a ValueConfig
31
+ const markers = [
32
+ 'key',
33
+ 'value',
34
+ 'fn',
35
+ 'map',
36
+ 'loop',
37
+ 'set',
38
+ 'consent',
39
+ 'condition',
40
+ 'validate',
41
+ ];
42
+ return markers.some((m) => m in obj);
43
+ }
44
+ /**
45
+ * Type guard: Check if value is a Map object (plain object inside ValueConfig.map)
46
+ */
47
+ export function isMapObject(value) {
48
+ if (!value || typeof value !== 'object' || Array.isArray(value))
49
+ return false;
50
+ // A map is a plain object. We differentiate it from ValueConfig by checking
51
+ // if it has ValueConfig markers. If no markers, it's a map.
52
+ return !isValueConfig(value) && !isRule(value);
53
+ }
54
+ /**
55
+ * Analyze a path through the mapping configuration
56
+ *
57
+ * Walks through the config structure, inspecting values at each step to
58
+ * determine the semantic type and context.
59
+ *
60
+ * @param path - Array of path segments (e.g., ['page', 'view', 'data', 'map', 'page_location', 'consent'])
61
+ * @param config - The mapping configuration object
62
+ * @returns Complete analysis of the path
63
+ *
64
+ * @example
65
+ * const analysis = analyzePath(['page', 'view', 'consent'], config);
66
+ * // analysis.isRuleLevel === true (consent at rule level)
67
+ *
68
+ * @example
69
+ * const analysis = analyzePath(['page', 'view', 'data', 'map', 'items', 'consent'], config);
70
+ * // analysis.isValueConfigLevel === true (consent at ValueConfig level)
71
+ */
72
+ export function analyzePath(path, config) {
73
+ const segments = [];
74
+ // Handle empty path (overview)
75
+ if (path.length === 0) {
76
+ return {
77
+ segments: [],
78
+ finalValue: config,
79
+ finalContext: 'overview',
80
+ isRuleLevel: false,
81
+ isValueConfigLevel: false,
82
+ };
83
+ }
84
+ let current = config;
85
+ let parent = null;
86
+ // Walk through each segment
87
+ for (let i = 0; i < path.length; i++) {
88
+ const segment = path[i];
89
+ parent = current;
90
+ // Validate we can navigate
91
+ if (!current || typeof current !== 'object') {
92
+ throw new Error(`Cannot navigate path at index ${i}: value is not an object`);
93
+ }
94
+ const obj = current;
95
+ current = obj[segment];
96
+ // Determine structural type based on context
97
+ let structuralType;
98
+ if (i === 0) {
99
+ // First segment is always entity
100
+ structuralType = 'entity';
101
+ }
102
+ else if (i === 1) {
103
+ // Second segment is always action (points to Rule)
104
+ structuralType = 'action';
105
+ }
106
+ else {
107
+ // For deeper levels, inspect parent to determine type
108
+ if (isRule(parent)) {
109
+ structuralType = 'ruleProperty';
110
+ }
111
+ else if (isValueConfig(parent)) {
112
+ structuralType = 'valueConfigProperty';
113
+ }
114
+ else if (Array.isArray(parent)) {
115
+ structuralType = 'arrayIndex';
116
+ }
117
+ else {
118
+ // Must be a map object
119
+ structuralType = 'mapKey';
120
+ }
121
+ }
122
+ segments.push({
123
+ segment,
124
+ index: i,
125
+ structuralType,
126
+ value: current,
127
+ parentValue: parent,
128
+ });
129
+ }
130
+ // Determine final context and metadata
131
+ const lastSegment = segments[segments.length - 1];
132
+ const finalValue = lastSegment.value;
133
+ const parentValue = lastSegment.parentValue;
134
+ let finalContext;
135
+ let isRuleLevel = false;
136
+ let isValueConfigLevel = false;
137
+ let propertyName;
138
+ if (path.length === 1) {
139
+ finalContext = 'entity';
140
+ }
141
+ else if (path.length === 2) {
142
+ finalContext = 'rule';
143
+ }
144
+ else {
145
+ // Deep path - determine based on structural type
146
+ switch (lastSegment.structuralType) {
147
+ case 'ruleProperty':
148
+ finalContext = 'ruleProperty';
149
+ isRuleLevel = true;
150
+ propertyName = lastSegment.segment;
151
+ break;
152
+ case 'valueConfigProperty':
153
+ finalContext = 'valueConfigProperty';
154
+ isValueConfigLevel = true;
155
+ propertyName = lastSegment.segment;
156
+ break;
157
+ case 'mapKey':
158
+ // A map key holds a Value (string or ValueConfig)
159
+ if (typeof finalValue === 'string') {
160
+ finalContext = 'primitive';
161
+ }
162
+ else if (isValueConfig(finalValue)) {
163
+ finalContext = 'valueConfig';
164
+ }
165
+ else {
166
+ finalContext = 'mapValue';
167
+ }
168
+ break;
169
+ default:
170
+ finalContext = 'valueConfig';
171
+ }
172
+ }
173
+ return {
174
+ segments,
175
+ finalValue,
176
+ finalContext,
177
+ isRuleLevel,
178
+ isValueConfigLevel,
179
+ propertyName,
180
+ };
181
+ }
182
+ /**
183
+ * Get semantic description for a path
184
+ *
185
+ * Returns human-readable description of what's being edited at this path.
186
+ *
187
+ * @example
188
+ * getPathDescription(['page', 'view', 'consent'], config)
189
+ * // Returns: "Rule-level consent for page view event"
190
+ *
191
+ * @example
192
+ * getPathDescription(['page', 'view', 'data', 'map', 'title', 'consent'], config)
193
+ * // Returns: "Property-level consent for title field"
194
+ */
195
+ export function getPathDescription(path, config) {
196
+ const analysis = analyzePath(path, config);
197
+ if (analysis.propertyName === 'consent') {
198
+ return {
199
+ title: 'Required Consent States',
200
+ description: 'Events or properties will only be processed if these consent states are granted',
201
+ };
202
+ }
203
+ if (analysis.propertyName === 'settings') {
204
+ return {
205
+ title: 'Settings',
206
+ description: 'Configure destination-specific settings for this rule',
207
+ };
208
+ }
209
+ // Default descriptions
210
+ return {
211
+ title: `Editing ${analysis.propertyName || 'Value'}`,
212
+ description: `Configure ${analysis.finalContext} at path: ${path.join(' → ')}`,
213
+ };
214
+ }
215
+ //# sourceMappingURL=path-analyzer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"path-analyzer.js","sourceRoot":"","sources":["../../src/utils/path-analyzer.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@walkeros/explorer",
3
- "version": "3.0.1",
3
+ "version": "3.0.2",
4
4
  "description": "Interactive React components for walkerOS documentation and exploration",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -39,9 +39,9 @@
39
39
  "monaco-editor": "^0.55.1",
40
40
  "prettier": "^3.7.4",
41
41
  "roughjs": "^4.6.6",
42
- "@walkeros/collector": "^3.0.1",
43
- "@walkeros/core": "^3.0.1",
44
- "@walkeros/web-source-browser": "^3.0.1",
42
+ "@walkeros/collector": "^3.0.2",
43
+ "@walkeros/core": "^3.0.2",
44
+ "@walkeros/web-source-browser": "^3.0.2",
45
45
  "tailwind-merge": "^3.4.0"
46
46
  },
47
47
  "peerDependencies": {
@@ -49,7 +49,7 @@
49
49
  "react-dom": ">=18.0.0"
50
50
  },
51
51
  "devDependencies": {
52
- "@walkeros/config": "^3.0.1",
52
+ "@walkeros/config": "^3.0.2",
53
53
  "@storybook/addon-docs": "^10.1.11",
54
54
  "@storybook/react-vite": "^10.1.11",
55
55
  "@swc/core": "^1.11.13",
@@ -63,7 +63,7 @@
63
63
  "@typescript-eslint/eslint-plugin": "^8.28.0",
64
64
  "@typescript-eslint/parser": "^8.28.0",
65
65
  "@vitejs/plugin-react": "^5.1.2",
66
- "@walkeros/web-destination-gtag": "^3.0.1",
66
+ "@walkeros/web-destination-gtag": "^3.0.2",
67
67
  "eslint": "^9.23.0",
68
68
  "eslint-plugin-jest": "^28.11.0",
69
69
  "eslint-plugin-storybook": "^10.1.11",