businesslens 0.2.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 (354) hide show
  1. package/.output/nitro.json +15 -0
  2. package/.output/public/_nuxt/ANTr5GBv.js +1 -0
  3. package/.output/public/_nuxt/B3Z-Zt7l.js +37 -0
  4. package/.output/public/_nuxt/Bd76-HGM.js +1 -0
  5. package/.output/public/_nuxt/Bf4VrETn.js +1 -0
  6. package/.output/public/_nuxt/CR3jGlpM.js +1 -0
  7. package/.output/public/_nuxt/CntoM1kL.js +1 -0
  8. package/.output/public/_nuxt/DogqooqX.js +1 -0
  9. package/.output/public/_nuxt/Zsu92SSr.js +1 -0
  10. package/.output/public/_nuxt/builds/latest.json +1 -0
  11. package/.output/public/_nuxt/builds/meta/e74555da-0c18-4e95-b959-2bdcc538677b.json +1 -0
  12. package/.output/public/_nuxt/default.CRZmPCG_.css +1 -0
  13. package/.output/public/_nuxt/e3lOfLH3.js +1 -0
  14. package/.output/public/_nuxt/entry.SgkJh-3P.css +1 -0
  15. package/.output/public/_nuxt/error-404.CTIGkQtd.css +1 -0
  16. package/.output/public/_nuxt/error-500.CKBWIF4V.css +1 -0
  17. package/.output/public/_nuxt/fCd72uLR.js +1 -0
  18. package/.output/public/_nuxt/inter-cyrillic-ext-wght-normal.BOeWTOD4.woff2 +0 -0
  19. package/.output/public/_nuxt/inter-cyrillic-wght-normal.DqGufNeO.woff2 +0 -0
  20. package/.output/public/_nuxt/inter-greek-ext-wght-normal.DlzME5K_.woff2 +0 -0
  21. package/.output/public/_nuxt/inter-greek-wght-normal.CkhJZR-_.woff2 +0 -0
  22. package/.output/public/_nuxt/inter-latin-ext-wght-normal.DO1Apj_S.woff2 +0 -0
  23. package/.output/public/_nuxt/inter-latin-wght-normal.Dx4kXJAl.woff2 +0 -0
  24. package/.output/public/_nuxt/inter-vietnamese-wght-normal.CBcvBZtf.woff2 +0 -0
  25. package/.output/public/_nuxt/vk0fkBN0.js +1 -0
  26. package/.output/public/_nuxt/zg6VsE4d.js +39 -0
  27. package/.output/public/brand/logo/businesslens-mark.svg +20 -0
  28. package/.output/public/favicon.svg +13 -0
  29. package/.output/server/chunks/_/error-500.mjs +19 -0
  30. package/.output/server/chunks/_/error-500.mjs.map +1 -0
  31. package/.output/server/chunks/_/icons.mjs +6150 -0
  32. package/.output/server/chunks/_/icons.mjs.map +1 -0
  33. package/.output/server/chunks/build/Card-DJ5Lo0Cn.mjs +161 -0
  34. package/.output/server/chunks/build/Card-DJ5Lo0Cn.mjs.map +1 -0
  35. package/.output/server/chunks/build/EntityInspector-fTjbuYoq.mjs +4412 -0
  36. package/.output/server/chunks/build/EntityInspector-fTjbuYoq.mjs.map +1 -0
  37. package/.output/server/chunks/build/Slideover-KOfskX1l.mjs +4226 -0
  38. package/.output/server/chunks/build/Slideover-KOfskX1l.mjs.map +1 -0
  39. package/.output/server/chunks/build/Tooltip-DkxwLaX6.mjs +1338 -0
  40. package/.output/server/chunks/build/Tooltip-DkxwLaX6.mjs.map +1 -0
  41. package/.output/server/chunks/build/client.precomputed.mjs +4 -0
  42. package/.output/server/chunks/build/client.precomputed.mjs.map +1 -0
  43. package/.output/server/chunks/build/default-BJSthw3t.mjs +8999 -0
  44. package/.output/server/chunks/build/default-BJSthw3t.mjs.map +1 -0
  45. package/.output/server/chunks/build/default-styles.BYgqaNao.mjs +8 -0
  46. package/.output/server/chunks/build/default-styles.BYgqaNao.mjs.map +1 -0
  47. package/.output/server/chunks/build/error-404-BOiGLcfP.mjs +96 -0
  48. package/.output/server/chunks/build/error-404-BOiGLcfP.mjs.map +1 -0
  49. package/.output/server/chunks/build/error-404-styles.DA-UkGXW.mjs +8 -0
  50. package/.output/server/chunks/build/error-404-styles.DA-UkGXW.mjs.map +1 -0
  51. package/.output/server/chunks/build/error-500-Bwyw373t.mjs +79 -0
  52. package/.output/server/chunks/build/error-500-Bwyw373t.mjs.map +1 -0
  53. package/.output/server/chunks/build/error-500-styles.De7qbKJ2.mjs +8 -0
  54. package/.output/server/chunks/build/error-500-styles.De7qbKJ2.mjs.map +1 -0
  55. package/.output/server/chunks/build/index-BuhKSZfH.mjs +313 -0
  56. package/.output/server/chunks/build/index-BuhKSZfH.mjs.map +1 -0
  57. package/.output/server/chunks/build/journeys-DHHOyxCM.mjs +244 -0
  58. package/.output/server/chunks/build/journeys-DHHOyxCM.mjs.map +1 -0
  59. package/.output/server/chunks/build/server.mjs +14099 -0
  60. package/.output/server/chunks/build/server.mjs.map +1 -0
  61. package/.output/server/chunks/build/styles.mjs +9 -0
  62. package/.output/server/chunks/build/styles.mjs.map +1 -0
  63. package/.output/server/chunks/build/topology-BJfDB_jA.mjs +295 -0
  64. package/.output/server/chunks/build/topology-BJfDB_jA.mjs.map +1 -0
  65. package/.output/server/chunks/build/useReport-pDAk-ETG.mjs +406 -0
  66. package/.output/server/chunks/build/useReport-pDAk-ETG.mjs.map +1 -0
  67. package/.output/server/chunks/nitro/nitro.mjs +5770 -0
  68. package/.output/server/chunks/nitro/nitro.mjs.map +1 -0
  69. package/.output/server/chunks/routes/api/report.get.mjs +617 -0
  70. package/.output/server/chunks/routes/api/report.get.mjs.map +1 -0
  71. package/.output/server/chunks/routes/renderer.mjs +451 -0
  72. package/.output/server/chunks/routes/renderer.mjs.map +1 -0
  73. package/.output/server/chunks/virtual/_virtual_spa-template.mjs +4 -0
  74. package/.output/server/chunks/virtual/_virtual_spa-template.mjs.map +1 -0
  75. package/.output/server/index.mjs +12 -0
  76. package/.output/server/index.mjs.map +1 -0
  77. package/.output/server/node_modules/.nitro/hookable@5.5.3/dist/index.mjs +290 -0
  78. package/.output/server/node_modules/.nitro/hookable@5.5.3/package.json +49 -0
  79. package/.output/server/node_modules/.nitro/hookable@6.1.1/dist/index.mjs +257 -0
  80. package/.output/server/node_modules/.nitro/hookable@6.1.1/package.json +53 -0
  81. package/.output/server/node_modules/@babel/parser/lib/index.js +14599 -0
  82. package/.output/server/node_modules/@babel/parser/package.json +50 -0
  83. package/.output/server/node_modules/@iconify/utils/lib/colors/index.js +295 -0
  84. package/.output/server/node_modules/@iconify/utils/lib/colors/keywords.js +701 -0
  85. package/.output/server/node_modules/@iconify/utils/lib/css/common.js +75 -0
  86. package/.output/server/node_modules/@iconify/utils/lib/css/format.js +39 -0
  87. package/.output/server/node_modules/@iconify/utils/lib/css/icon.js +47 -0
  88. package/.output/server/node_modules/@iconify/utils/lib/css/icons.js +128 -0
  89. package/.output/server/node_modules/@iconify/utils/lib/customisations/bool.js +19 -0
  90. package/.output/server/node_modules/@iconify/utils/lib/customisations/defaults.js +13 -0
  91. package/.output/server/node_modules/@iconify/utils/lib/customisations/flip.js +17 -0
  92. package/.output/server/node_modules/@iconify/utils/lib/customisations/merge.js +16 -0
  93. package/.output/server/node_modules/@iconify/utils/lib/customisations/rotate.js +30 -0
  94. package/.output/server/node_modules/@iconify/utils/lib/emoji/cleanup.js +78 -0
  95. package/.output/server/node_modules/@iconify/utils/lib/emoji/convert.js +100 -0
  96. package/.output/server/node_modules/@iconify/utils/lib/emoji/data.js +28 -0
  97. package/.output/server/node_modules/@iconify/utils/lib/emoji/format.js +58 -0
  98. package/.output/server/node_modules/@iconify/utils/lib/emoji/parse.js +48 -0
  99. package/.output/server/node_modules/@iconify/utils/lib/emoji/regex/base.js +203 -0
  100. package/.output/server/node_modules/@iconify/utils/lib/emoji/regex/create.js +33 -0
  101. package/.output/server/node_modules/@iconify/utils/lib/emoji/regex/numbers.js +132 -0
  102. package/.output/server/node_modules/@iconify/utils/lib/emoji/regex/similar.js +165 -0
  103. package/.output/server/node_modules/@iconify/utils/lib/emoji/regex/tree.js +79 -0
  104. package/.output/server/node_modules/@iconify/utils/lib/emoji/replace/find.js +92 -0
  105. package/.output/server/node_modules/@iconify/utils/lib/emoji/replace/replace.js +26 -0
  106. package/.output/server/node_modules/@iconify/utils/lib/emoji/test/components.js +76 -0
  107. package/.output/server/node_modules/@iconify/utils/lib/emoji/test/missing.js +66 -0
  108. package/.output/server/node_modules/@iconify/utils/lib/emoji/test/name.js +45 -0
  109. package/.output/server/node_modules/@iconify/utils/lib/emoji/test/parse.js +103 -0
  110. package/.output/server/node_modules/@iconify/utils/lib/emoji/test/similar.js +36 -0
  111. package/.output/server/node_modules/@iconify/utils/lib/emoji/test/tree.js +92 -0
  112. package/.output/server/node_modules/@iconify/utils/lib/emoji/test/variations.js +62 -0
  113. package/.output/server/node_modules/@iconify/utils/lib/icon/defaults.js +25 -0
  114. package/.output/server/node_modules/@iconify/utils/lib/icon/merge.js +16 -0
  115. package/.output/server/node_modules/@iconify/utils/lib/icon/name.js +57 -0
  116. package/.output/server/node_modules/@iconify/utils/lib/icon/square.js +33 -0
  117. package/.output/server/node_modules/@iconify/utils/lib/icon/transformations.js +12 -0
  118. package/.output/server/node_modules/@iconify/utils/lib/icon-set/convert-info.js +125 -0
  119. package/.output/server/node_modules/@iconify/utils/lib/icon-set/expand.js +19 -0
  120. package/.output/server/node_modules/@iconify/utils/lib/icon-set/get-icon.js +25 -0
  121. package/.output/server/node_modules/@iconify/utils/lib/icon-set/get-icons.js +36 -0
  122. package/.output/server/node_modules/@iconify/utils/lib/icon-set/minify.js +91 -0
  123. package/.output/server/node_modules/@iconify/utils/lib/icon-set/parse.js +46 -0
  124. package/.output/server/node_modules/@iconify/utils/lib/icon-set/tree.js +23 -0
  125. package/.output/server/node_modules/@iconify/utils/lib/icon-set/validate-basic.js +42 -0
  126. package/.output/server/node_modules/@iconify/utils/lib/icon-set/validate.js +123 -0
  127. package/.output/server/node_modules/@iconify/utils/lib/index.js +52 -0
  128. package/.output/server/node_modules/@iconify/utils/lib/loader/custom.js +30 -0
  129. package/.output/server/node_modules/@iconify/utils/lib/loader/loader.js +26 -0
  130. package/.output/server/node_modules/@iconify/utils/lib/loader/modern.js +27 -0
  131. package/.output/server/node_modules/@iconify/utils/lib/loader/utils.js +105 -0
  132. package/.output/server/node_modules/@iconify/utils/lib/misc/objects.js +26 -0
  133. package/.output/server/node_modules/@iconify/utils/lib/misc/strings.js +26 -0
  134. package/.output/server/node_modules/@iconify/utils/lib/misc/title.js +9 -0
  135. package/.output/server/node_modules/@iconify/utils/lib/svg/build.js +113 -0
  136. package/.output/server/node_modules/@iconify/utils/lib/svg/defs.js +31 -0
  137. package/.output/server/node_modules/@iconify/utils/lib/svg/encode-svg-for-css.js +13 -0
  138. package/.output/server/node_modules/@iconify/utils/lib/svg/html.js +9 -0
  139. package/.output/server/node_modules/@iconify/utils/lib/svg/id.js +41 -0
  140. package/.output/server/node_modules/@iconify/utils/lib/svg/inner-html.js +22 -0
  141. package/.output/server/node_modules/@iconify/utils/lib/svg/parse.js +67 -0
  142. package/.output/server/node_modules/@iconify/utils/lib/svg/pretty.js +54 -0
  143. package/.output/server/node_modules/@iconify/utils/lib/svg/size.js +27 -0
  144. package/.output/server/node_modules/@iconify/utils/lib/svg/trim.js +7 -0
  145. package/.output/server/node_modules/@iconify/utils/lib/svg/url.js +22 -0
  146. package/.output/server/node_modules/@iconify/utils/lib/svg/viewbox.js +8 -0
  147. package/.output/server/node_modules/@iconify/utils/package.json +119 -0
  148. package/.output/server/node_modules/@vue/compiler-core/dist/compiler-core.cjs.prod.js +6759 -0
  149. package/.output/server/node_modules/@vue/compiler-core/package.json +58 -0
  150. package/.output/server/node_modules/@vue/compiler-dom/dist/compiler-dom.cjs.prod.js +689 -0
  151. package/.output/server/node_modules/@vue/compiler-dom/package.json +57 -0
  152. package/.output/server/node_modules/@vue/compiler-ssr/dist/compiler-ssr.cjs.js +1413 -0
  153. package/.output/server/node_modules/@vue/compiler-ssr/package.json +34 -0
  154. package/.output/server/node_modules/@vue/devtools-api/dist/index.js +2 -0
  155. package/.output/server/node_modules/@vue/devtools-api/package.json +34 -0
  156. package/.output/server/node_modules/@vue/devtools-kit/dist/index.js +5670 -0
  157. package/.output/server/node_modules/@vue/devtools-kit/package.json +44 -0
  158. package/.output/server/node_modules/@vue/devtools-shared/dist/index.js +239 -0
  159. package/.output/server/node_modules/@vue/devtools-shared/package.json +33 -0
  160. package/.output/server/node_modules/@vue/reactivity/dist/reactivity.cjs.prod.js +1899 -0
  161. package/.output/server/node_modules/@vue/reactivity/package.json +55 -0
  162. package/.output/server/node_modules/@vue/runtime-core/dist/runtime-core.cjs.prod.js +6940 -0
  163. package/.output/server/node_modules/@vue/runtime-core/package.json +52 -0
  164. package/.output/server/node_modules/@vue/runtime-dom/dist/runtime-dom.cjs.prod.js +1822 -0
  165. package/.output/server/node_modules/@vue/runtime-dom/package.json +60 -0
  166. package/.output/server/node_modules/@vue/server-renderer/dist/server-renderer.cjs.prod.js +896 -0
  167. package/.output/server/node_modules/@vue/server-renderer/package.json +55 -0
  168. package/.output/server/node_modules/@vue/shared/dist/shared.cjs.prod.js +604 -0
  169. package/.output/server/node_modules/@vue/shared/package.json +47 -0
  170. package/.output/server/node_modules/@vue-flow/core/dist/vue-flow-core.mjs +10186 -0
  171. package/.output/server/node_modules/@vue-flow/core/package.json +95 -0
  172. package/.output/server/node_modules/ajv/dist/2020.js +55 -0
  173. package/.output/server/node_modules/ajv/dist/ajv.js +50 -0
  174. package/.output/server/node_modules/ajv/dist/compile/codegen/code.js +156 -0
  175. package/.output/server/node_modules/ajv/dist/compile/codegen/index.js +697 -0
  176. package/.output/server/node_modules/ajv/dist/compile/codegen/scope.js +143 -0
  177. package/.output/server/node_modules/ajv/dist/compile/errors.js +123 -0
  178. package/.output/server/node_modules/ajv/dist/compile/index.js +242 -0
  179. package/.output/server/node_modules/ajv/dist/compile/names.js +28 -0
  180. package/.output/server/node_modules/ajv/dist/compile/ref_error.js +12 -0
  181. package/.output/server/node_modules/ajv/dist/compile/resolve.js +155 -0
  182. package/.output/server/node_modules/ajv/dist/compile/rules.js +26 -0
  183. package/.output/server/node_modules/ajv/dist/compile/util.js +178 -0
  184. package/.output/server/node_modules/ajv/dist/compile/validate/applicability.js +19 -0
  185. package/.output/server/node_modules/ajv/dist/compile/validate/boolSchema.js +50 -0
  186. package/.output/server/node_modules/ajv/dist/compile/validate/dataType.js +203 -0
  187. package/.output/server/node_modules/ajv/dist/compile/validate/defaults.js +35 -0
  188. package/.output/server/node_modules/ajv/dist/compile/validate/index.js +520 -0
  189. package/.output/server/node_modules/ajv/dist/compile/validate/keyword.js +124 -0
  190. package/.output/server/node_modules/ajv/dist/compile/validate/subschema.js +81 -0
  191. package/.output/server/node_modules/ajv/dist/core.js +618 -0
  192. package/.output/server/node_modules/ajv/dist/refs/data.json +13 -0
  193. package/.output/server/node_modules/ajv/dist/refs/json-schema-2020-12/index.js +30 -0
  194. package/.output/server/node_modules/ajv/dist/refs/json-schema-2020-12/meta/applicator.json +48 -0
  195. package/.output/server/node_modules/ajv/dist/refs/json-schema-2020-12/meta/content.json +17 -0
  196. package/.output/server/node_modules/ajv/dist/refs/json-schema-2020-12/meta/core.json +51 -0
  197. package/.output/server/node_modules/ajv/dist/refs/json-schema-2020-12/meta/format-annotation.json +14 -0
  198. package/.output/server/node_modules/ajv/dist/refs/json-schema-2020-12/meta/meta-data.json +37 -0
  199. package/.output/server/node_modules/ajv/dist/refs/json-schema-2020-12/meta/unevaluated.json +15 -0
  200. package/.output/server/node_modules/ajv/dist/refs/json-schema-2020-12/meta/validation.json +90 -0
  201. package/.output/server/node_modules/ajv/dist/refs/json-schema-2020-12/schema.json +55 -0
  202. package/.output/server/node_modules/ajv/dist/refs/json-schema-draft-07.json +151 -0
  203. package/.output/server/node_modules/ajv/dist/runtime/equal.js +7 -0
  204. package/.output/server/node_modules/ajv/dist/runtime/ucs2length.js +24 -0
  205. package/.output/server/node_modules/ajv/dist/runtime/uri.js +6 -0
  206. package/.output/server/node_modules/ajv/dist/runtime/validation_error.js +11 -0
  207. package/.output/server/node_modules/ajv/dist/vocabularies/applicator/additionalItems.js +49 -0
  208. package/.output/server/node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js +106 -0
  209. package/.output/server/node_modules/ajv/dist/vocabularies/applicator/allOf.js +23 -0
  210. package/.output/server/node_modules/ajv/dist/vocabularies/applicator/anyOf.js +12 -0
  211. package/.output/server/node_modules/ajv/dist/vocabularies/applicator/contains.js +95 -0
  212. package/.output/server/node_modules/ajv/dist/vocabularies/applicator/dependencies.js +85 -0
  213. package/.output/server/node_modules/ajv/dist/vocabularies/applicator/dependentSchemas.js +11 -0
  214. package/.output/server/node_modules/ajv/dist/vocabularies/applicator/if.js +66 -0
  215. package/.output/server/node_modules/ajv/dist/vocabularies/applicator/index.js +44 -0
  216. package/.output/server/node_modules/ajv/dist/vocabularies/applicator/items.js +52 -0
  217. package/.output/server/node_modules/ajv/dist/vocabularies/applicator/items2020.js +30 -0
  218. package/.output/server/node_modules/ajv/dist/vocabularies/applicator/not.js +26 -0
  219. package/.output/server/node_modules/ajv/dist/vocabularies/applicator/oneOf.js +60 -0
  220. package/.output/server/node_modules/ajv/dist/vocabularies/applicator/patternProperties.js +75 -0
  221. package/.output/server/node_modules/ajv/dist/vocabularies/applicator/prefixItems.js +12 -0
  222. package/.output/server/node_modules/ajv/dist/vocabularies/applicator/properties.js +54 -0
  223. package/.output/server/node_modules/ajv/dist/vocabularies/applicator/propertyNames.js +38 -0
  224. package/.output/server/node_modules/ajv/dist/vocabularies/applicator/thenElse.js +13 -0
  225. package/.output/server/node_modules/ajv/dist/vocabularies/code.js +131 -0
  226. package/.output/server/node_modules/ajv/dist/vocabularies/core/id.js +10 -0
  227. package/.output/server/node_modules/ajv/dist/vocabularies/core/index.js +16 -0
  228. package/.output/server/node_modules/ajv/dist/vocabularies/core/ref.js +122 -0
  229. package/.output/server/node_modules/ajv/dist/vocabularies/discriminator/index.js +104 -0
  230. package/.output/server/node_modules/ajv/dist/vocabularies/discriminator/types.js +9 -0
  231. package/.output/server/node_modules/ajv/dist/vocabularies/draft2020.js +23 -0
  232. package/.output/server/node_modules/ajv/dist/vocabularies/draft7.js +17 -0
  233. package/.output/server/node_modules/ajv/dist/vocabularies/dynamic/dynamicAnchor.js +30 -0
  234. package/.output/server/node_modules/ajv/dist/vocabularies/dynamic/dynamicRef.js +51 -0
  235. package/.output/server/node_modules/ajv/dist/vocabularies/dynamic/index.js +9 -0
  236. package/.output/server/node_modules/ajv/dist/vocabularies/dynamic/recursiveAnchor.js +16 -0
  237. package/.output/server/node_modules/ajv/dist/vocabularies/dynamic/recursiveRef.js +10 -0
  238. package/.output/server/node_modules/ajv/dist/vocabularies/format/format.js +92 -0
  239. package/.output/server/node_modules/ajv/dist/vocabularies/format/index.js +6 -0
  240. package/.output/server/node_modules/ajv/dist/vocabularies/metadata.js +18 -0
  241. package/.output/server/node_modules/ajv/dist/vocabularies/next.js +8 -0
  242. package/.output/server/node_modules/ajv/dist/vocabularies/unevaluated/index.js +7 -0
  243. package/.output/server/node_modules/ajv/dist/vocabularies/unevaluated/unevaluatedItems.js +40 -0
  244. package/.output/server/node_modules/ajv/dist/vocabularies/unevaluated/unevaluatedProperties.js +65 -0
  245. package/.output/server/node_modules/ajv/dist/vocabularies/validation/const.js +25 -0
  246. package/.output/server/node_modules/ajv/dist/vocabularies/validation/dependentRequired.js +12 -0
  247. package/.output/server/node_modules/ajv/dist/vocabularies/validation/enum.js +48 -0
  248. package/.output/server/node_modules/ajv/dist/vocabularies/validation/index.js +33 -0
  249. package/.output/server/node_modules/ajv/dist/vocabularies/validation/limitContains.js +15 -0
  250. package/.output/server/node_modules/ajv/dist/vocabularies/validation/limitItems.js +24 -0
  251. package/.output/server/node_modules/ajv/dist/vocabularies/validation/limitLength.js +27 -0
  252. package/.output/server/node_modules/ajv/dist/vocabularies/validation/limitNumber.js +27 -0
  253. package/.output/server/node_modules/ajv/dist/vocabularies/validation/limitProperties.js +24 -0
  254. package/.output/server/node_modules/ajv/dist/vocabularies/validation/multipleOf.js +26 -0
  255. package/.output/server/node_modules/ajv/dist/vocabularies/validation/pattern.js +24 -0
  256. package/.output/server/node_modules/ajv/dist/vocabularies/validation/required.js +79 -0
  257. package/.output/server/node_modules/ajv/dist/vocabularies/validation/uniqueItems.js +64 -0
  258. package/.output/server/node_modules/ajv/package.json +126 -0
  259. package/.output/server/node_modules/ajv-formats/dist/formats.js +208 -0
  260. package/.output/server/node_modules/ajv-formats/dist/index.js +37 -0
  261. package/.output/server/node_modules/ajv-formats/dist/limit.js +69 -0
  262. package/.output/server/node_modules/ajv-formats/package.json +74 -0
  263. package/.output/server/node_modules/birpc/dist/index.mjs +291 -0
  264. package/.output/server/node_modules/birpc/package.json +57 -0
  265. package/.output/server/node_modules/consola/dist/chunks/prompt.mjs +280 -0
  266. package/.output/server/node_modules/consola/dist/core.mjs +512 -0
  267. package/.output/server/node_modules/consola/dist/index.mjs +651 -0
  268. package/.output/server/node_modules/consola/dist/shared/consola.DRwqZj3T.mjs +72 -0
  269. package/.output/server/node_modules/consola/dist/shared/consola.DXBYu-KD.mjs +288 -0
  270. package/.output/server/node_modules/consola/package.json +136 -0
  271. package/.output/server/node_modules/devalue/index.js +4 -0
  272. package/.output/server/node_modules/devalue/package.json +40 -0
  273. package/.output/server/node_modules/devalue/src/base64.js +60 -0
  274. package/.output/server/node_modules/devalue/src/constants.js +12 -0
  275. package/.output/server/node_modules/devalue/src/parse.js +283 -0
  276. package/.output/server/node_modules/devalue/src/stringify.js +401 -0
  277. package/.output/server/node_modules/devalue/src/uneval.js +552 -0
  278. package/.output/server/node_modules/devalue/src/utils.js +160 -0
  279. package/.output/server/node_modules/entities/dist/commonjs/decode-codepoint.js +77 -0
  280. package/.output/server/node_modules/entities/dist/commonjs/decode.js +568 -0
  281. package/.output/server/node_modules/entities/dist/commonjs/generated/decode-data-html.js +7 -0
  282. package/.output/server/node_modules/entities/dist/commonjs/generated/decode-data-xml.js +7 -0
  283. package/.output/server/node_modules/entities/dist/commonjs/internal/bin-trie-flags.js +21 -0
  284. package/.output/server/node_modules/entities/dist/commonjs/internal/decode-shared.js +31 -0
  285. package/.output/server/node_modules/entities/dist/commonjs/package.json +3 -0
  286. package/.output/server/node_modules/entities/package.json +120 -0
  287. package/.output/server/node_modules/estree-walker/dist/umd/estree-walker.js +344 -0
  288. package/.output/server/node_modules/estree-walker/package.json +37 -0
  289. package/.output/server/node_modules/fast-deep-equal/index.js +46 -0
  290. package/.output/server/node_modules/fast-deep-equal/package.json +61 -0
  291. package/.output/server/node_modules/fast-uri/index.js +406 -0
  292. package/.output/server/node_modules/fast-uri/lib/schemes.js +267 -0
  293. package/.output/server/node_modules/fast-uri/lib/utils.js +443 -0
  294. package/.output/server/node_modules/fast-uri/package.json +68 -0
  295. package/.output/server/node_modules/json-schema-traverse/index.js +93 -0
  296. package/.output/server/node_modules/json-schema-traverse/package.json +43 -0
  297. package/.output/server/node_modules/perfect-debounce/dist/index.mjs +89 -0
  298. package/.output/server/node_modules/perfect-debounce/package.json +41 -0
  299. package/.output/server/node_modules/source-map-js/lib/array-set.js +121 -0
  300. package/.output/server/node_modules/source-map-js/lib/base64-vlq.js +140 -0
  301. package/.output/server/node_modules/source-map-js/lib/base64.js +67 -0
  302. package/.output/server/node_modules/source-map-js/lib/binary-search.js +111 -0
  303. package/.output/server/node_modules/source-map-js/lib/mapping-list.js +79 -0
  304. package/.output/server/node_modules/source-map-js/lib/quick-sort.js +132 -0
  305. package/.output/server/node_modules/source-map-js/lib/source-map-consumer.js +1188 -0
  306. package/.output/server/node_modules/source-map-js/lib/source-map-generator.js +444 -0
  307. package/.output/server/node_modules/source-map-js/lib/source-node.js +413 -0
  308. package/.output/server/node_modules/source-map-js/lib/util.js +594 -0
  309. package/.output/server/node_modules/source-map-js/package.json +71 -0
  310. package/.output/server/node_modules/source-map-js/source-map.js +8 -0
  311. package/.output/server/node_modules/tailwindcss/dist/chunk-X4GG3EDV.mjs +1 -0
  312. package/.output/server/node_modules/tailwindcss/dist/colors.mjs +1 -0
  313. package/.output/server/node_modules/tailwindcss/package.json +89 -0
  314. package/.output/server/node_modules/ufo/dist/index.mjs +645 -0
  315. package/.output/server/node_modules/ufo/package.json +48 -0
  316. package/.output/server/node_modules/unhead/dist/index.mjs +9 -0
  317. package/.output/server/node_modules/unhead/dist/parser.mjs +508 -0
  318. package/.output/server/node_modules/unhead/dist/plugins.mjs +101 -0
  319. package/.output/server/node_modules/unhead/dist/scripts.mjs +30 -0
  320. package/.output/server/node_modules/unhead/dist/server.mjs +180 -0
  321. package/.output/server/node_modules/unhead/dist/shared/unhead.B3VbJo7Y.mjs +207 -0
  322. package/.output/server/node_modules/unhead/dist/shared/unhead.BYvz9V1x.mjs +43 -0
  323. package/.output/server/node_modules/unhead/dist/shared/unhead.BnoAbrHA.mjs +269 -0
  324. package/.output/server/node_modules/unhead/dist/shared/unhead.CaI5ZD4O.mjs +182 -0
  325. package/.output/server/node_modules/unhead/dist/shared/unhead.CbpEuj3y.mjs +71 -0
  326. package/.output/server/node_modules/unhead/dist/shared/unhead.D4vSFytZ.mjs +236 -0
  327. package/.output/server/node_modules/unhead/dist/shared/unhead.DQc16pHI.mjs +196 -0
  328. package/.output/server/node_modules/unhead/dist/shared/unhead.Dh1cQCTe.mjs +44 -0
  329. package/.output/server/node_modules/unhead/dist/shared/unhead.TxTMM7cM.mjs +166 -0
  330. package/.output/server/node_modules/unhead/dist/shared/unhead.yem5I2v_.mjs +38 -0
  331. package/.output/server/node_modules/unhead/dist/utils.mjs +5 -0
  332. package/.output/server/node_modules/unhead/package.json +105 -0
  333. package/.output/server/node_modules/vue/dist/vue.cjs.js +80 -0
  334. package/.output/server/node_modules/vue/dist/vue.cjs.prod.js +66 -0
  335. package/.output/server/node_modules/vue/index.js +7 -0
  336. package/.output/server/node_modules/vue/index.mjs +1 -0
  337. package/.output/server/node_modules/vue/package.json +112 -0
  338. package/.output/server/node_modules/vue/server-renderer/index.mjs +1 -0
  339. package/.output/server/node_modules/vue-bundle-renderer/dist/runtime.mjs +249 -0
  340. package/.output/server/node_modules/vue-bundle-renderer/package.json +57 -0
  341. package/.output/server/node_modules/vue-router/dist/devtools-DCoWQoU_.js +1034 -0
  342. package/.output/server/node_modules/vue-router/dist/useApi-s_02lHjl.js +181 -0
  343. package/.output/server/node_modules/vue-router/dist/vue-router.js +1499 -0
  344. package/.output/server/node_modules/vue-router/package.json +226 -0
  345. package/.output/server/node_modules/vue-router/vue-router.node.mjs +2 -0
  346. package/.output/server/package.json +41 -0
  347. package/README.md +114 -0
  348. package/THIRD_PARTY_NOTICES.md +28 -0
  349. package/bin/businesslens.mjs +181 -0
  350. package/package.json +68 -0
  351. package/packages/report-schema/schemas/report.schema.json +235 -0
  352. package/packages/report-schema/types/index.ts +1 -0
  353. package/packages/report-schema/types/report.ts +101 -0
  354. package/packages/report-schema/validate.mjs +111 -0
@@ -0,0 +1,226 @@
1
+ {
2
+ "name": "vue-router",
3
+ "version": "5.1.0",
4
+ "homepage": "https://router.vuejs.org",
5
+ "bugs": {
6
+ "url": "https://github.com/vuejs/router/issues"
7
+ },
8
+ "license": "MIT",
9
+ "author": {
10
+ "name": "Eduardo San Martin Morote",
11
+ "email": "posva13@gmail.com"
12
+ },
13
+ "repository": {
14
+ "type": "git",
15
+ "url": "git+https://github.com/vuejs/router.git"
16
+ },
17
+ "funding": "https://github.com/sponsors/posva",
18
+ "files": [
19
+ "dist",
20
+ "index.cjs",
21
+ "README.md",
22
+ "route.schema.json",
23
+ "vue-router-auto-resolver.d.mts",
24
+ "vue-router-auto-routes.d.mts",
25
+ "vue-router-auto.d.ts",
26
+ "vue-router.node.mjs",
27
+ "vetur/attributes.json",
28
+ "vetur/tags.json"
29
+ ],
30
+ "type": "module",
31
+ "sideEffects": false,
32
+ "main": "index.cjs",
33
+ "module": "dist/vue-router.js",
34
+ "types": "dist/vue-router.d.ts",
35
+ "typesVersions": {
36
+ "*": {
37
+ "vite": [
38
+ "./dist/unplugin/vite.d.mts"
39
+ ],
40
+ "unplugin": [
41
+ "./dist/unplugin/index.d.mts"
42
+ ],
43
+ "unplugin/*": [
44
+ "./dist/unplugin/*.d.mts"
45
+ ],
46
+ "volar/*": [
47
+ "./dist/volar/*.d.cts"
48
+ ]
49
+ }
50
+ },
51
+ "unpkg": "dist/vue-router.global.js",
52
+ "jsdelivr": "dist/vue-router.global.js",
53
+ "exports": {
54
+ ".": {
55
+ "types": "./dist/vue-router.d.ts",
56
+ "node": {
57
+ "import": {
58
+ "production": "./vue-router.node.mjs",
59
+ "development": "./vue-router.node.mjs",
60
+ "default": "./vue-router.node.mjs"
61
+ },
62
+ "require": {
63
+ "production": "./dist/vue-router.prod.cjs",
64
+ "development": "./dist/vue-router.cjs",
65
+ "default": "./dist/vue-router.prod.cjs"
66
+ }
67
+ },
68
+ "import": "./dist/vue-router.js",
69
+ "require": "./index.cjs"
70
+ },
71
+ "./vetur/*": "./vetur/*",
72
+ "./package.json": "./package.json",
73
+ "./experimental": {
74
+ "types": "./dist/experimental/index.d.ts",
75
+ "import": "./dist/experimental/index.js"
76
+ },
77
+ "./experimental/pinia-colada": {
78
+ "types": "./dist/experimental/pinia-colada.d.ts",
79
+ "import": "./dist/experimental/pinia-colada.js"
80
+ },
81
+ "./auto-resolver": {
82
+ "types": "./vue-router-auto-resolver.d.mts"
83
+ },
84
+ "./auto-routes": {
85
+ "types": "./vue-router-auto-routes.d.mts"
86
+ },
87
+ "./auto": {
88
+ "types": "./vue-router-auto.d.ts",
89
+ "node": {
90
+ "import": {
91
+ "production": "./vue-router.node.mjs",
92
+ "development": "./vue-router.node.mjs",
93
+ "default": "./vue-router.node.mjs"
94
+ },
95
+ "require": {
96
+ "production": "./dist/vue-router.prod.cjs",
97
+ "development": "./dist/vue-router.cjs",
98
+ "default": "./dist/vue-router.prod.cjs"
99
+ }
100
+ },
101
+ "import": "./dist/vue-router.js",
102
+ "require": "./index.cjs"
103
+ },
104
+ "./vite": {
105
+ "types": "./dist/unplugin/vite.d.mts",
106
+ "import": "./dist/unplugin/vite.mjs",
107
+ "require": "./dist/unplugin/vite.cjs"
108
+ },
109
+ "./unplugin": {
110
+ "types": "./dist/unplugin/index.d.mts",
111
+ "import": "./dist/unplugin/index.mjs",
112
+ "require": "./dist/unplugin/index.cjs"
113
+ },
114
+ "./unplugin/*": "./dist/unplugin/*",
115
+ "./volar/sfc-route-blocks": {
116
+ "types": "./dist/volar/sfc-route-blocks.d.cts",
117
+ "default": "./dist/volar/sfc-route-blocks.cjs"
118
+ },
119
+ "./volar/sfc-typed-router": {
120
+ "types": "./dist/volar/sfc-typed-router.d.cts",
121
+ "default": "./dist/volar/sfc-typed-router.cjs"
122
+ },
123
+ "./dist/*": "./dist/*"
124
+ },
125
+ "dependencies": {
126
+ "@babel/generator": "^8.0.0-rc.4",
127
+ "@vue-macros/common": "^3.1.1",
128
+ "@vue/devtools-api": "^8.1.2",
129
+ "ast-walker-scope": "^0.9.0",
130
+ "chokidar": "^5.0.0",
131
+ "json5": "^2.2.3",
132
+ "local-pkg": "^1.1.2",
133
+ "magic-string": "^0.30.21",
134
+ "mlly": "^1.8.2",
135
+ "muggle-string": "^0.4.1",
136
+ "pathe": "^2.0.3",
137
+ "picomatch": "^4.0.3",
138
+ "scule": "^1.3.0",
139
+ "tinyglobby": "^0.2.16",
140
+ "unplugin": "^3.0.0",
141
+ "unplugin-utils": "^0.3.1",
142
+ "yaml": "^2.9.0"
143
+ },
144
+ "devDependencies": {
145
+ "@babel/types": "^8.0.0-rc.4",
146
+ "@pinia/colada": "^1.3.1",
147
+ "@playwright/test": "^1.59.1",
148
+ "@rollup/plugin-commonjs": "^28.0.9",
149
+ "@rollup/plugin-node-resolve": "^16.0.3",
150
+ "@rollup/plugin-replace": "^6.0.3",
151
+ "@rollup/plugin-terser": "^0.4.4",
152
+ "@standard-schema/spec": "^1.1.0",
153
+ "@types/babel__generator": "^7.27.0",
154
+ "@types/nightwatch": "^2.3.32",
155
+ "@types/picomatch": "^4.0.2",
156
+ "@typescript/native-preview": "7.0.0-dev.20260106.1",
157
+ "@vitejs/plugin-vue": "^6.0.6",
158
+ "@vue/compiler-sfc": "^3.5.34",
159
+ "@vue/language-core": "^3.2.1",
160
+ "@vue/server-renderer": "^3.5.34",
161
+ "@vue/test-utils": "^2.4.10",
162
+ "browserstack-local": "^1.5.13",
163
+ "chromedriver": "^148.0.3",
164
+ "connect-history-api-fallback": "^2.0.0",
165
+ "dotenv": "^17.4.2",
166
+ "faked-promise": "^2.2.2",
167
+ "geckodriver": "^6.1.0",
168
+ "happy-dom": "^20.9.0",
169
+ "nightwatch": "^3.15.0",
170
+ "nightwatch-helpers": "^1.2.0",
171
+ "pinia": "^3.0.4",
172
+ "rimraf": "^6.1.3",
173
+ "rollup": "^4.57.1",
174
+ "rollup-plugin-typescript2": "^0.36.0",
175
+ "tsdown": "^0.22.0",
176
+ "tsup": "^8.5.1",
177
+ "valibot": "^1.4.1",
178
+ "vite": "^8.0.13",
179
+ "vue": "^3.5.34",
180
+ "zod": "^4.4.3"
181
+ },
182
+ "peerDependencies": {
183
+ "@pinia/colada": ">=0.21.2",
184
+ "@vue/compiler-sfc": "^3.5.34",
185
+ "pinia": "^3.0.4",
186
+ "vite": "^7.0.0 || ^8.0.0",
187
+ "vue": "^3.5.34"
188
+ },
189
+ "peerDependenciesMeta": {
190
+ "@vue/compiler-sfc": {
191
+ "optional": true
192
+ },
193
+ "pinia": {
194
+ "optional": true
195
+ },
196
+ "@pinia/colada": {
197
+ "optional": true
198
+ },
199
+ "vite": {
200
+ "optional": true
201
+ }
202
+ },
203
+ "vetur": {
204
+ "tags": "vetur/tags.json",
205
+ "attributes": "vetur/attributes.json"
206
+ },
207
+ "scripts": {
208
+ "dev": "vitest --ui",
209
+ "build": "tsdown",
210
+ "build:old": "rimraf dist && rollup -c rollup.config.mjs",
211
+ "build:playground": "vue-tsc --noEmit && vite build --config playground/vite.config.ts",
212
+ "build:e2e": "vue-tsc --noEmit && vite build --config e2e/vite.config.mjs",
213
+ "build:size": "pnpm run build && rollup -c size-checks/rollup.config.mjs",
214
+ "dev:e2e": "vite --config e2e/vite.config.mjs",
215
+ "test:types": "tsc --build tsconfig.json ./test-dts/tsconfig.experimental.json",
216
+ "test:unit": "vitest --coverage run",
217
+ "test": "pnpm run build && pnpm run '/^(unit|test:types)$/' && pnpm run '/^test:(e2e|e2e:hmr)$/'",
218
+ "test:e2e": "pnpm run test:e2e:headless",
219
+ "test:e2e:hmr": "pnpm exec playwright test",
220
+ "test:e2e:headless": "node e2e/runner.mjs --env chrome-headless",
221
+ "test:e2e:native": "node e2e/runner.mjs --env chrome",
222
+ "test:e2e:ci": "node e2e/runner.mjs --env chrome-headless --retries 2",
223
+ "test:e2e:bs": "node e2e/runner.mjs --local -e android5 --tag browserstack",
224
+ "test:e2e:bs-test": "node e2e/runner.mjs --local --env browserstack.local_chrome --tag browserstack"
225
+ }
226
+ }
@@ -0,0 +1,2 @@
1
+ global.__VUE_PROD_DEVTOOLS__ = false
2
+ export * from './dist/vue-router.js'
@@ -0,0 +1,41 @@
1
+ {
2
+ "name": "businesslens-prod",
3
+ "version": "0.2.2",
4
+ "type": "module",
5
+ "private": true,
6
+ "dependencies": {
7
+ "@babel/parser": "7.29.7",
8
+ "@iconify/utils": "3.1.4",
9
+ "@vue-flow/core": "1.48.2",
10
+ "@vue/compiler-core": "3.5.39",
11
+ "@vue/compiler-dom": "3.5.39",
12
+ "@vue/compiler-ssr": "3.5.39",
13
+ "@vue/devtools-api": "8.1.5",
14
+ "@vue/devtools-kit": "8.1.5",
15
+ "@vue/devtools-shared": "8.1.5",
16
+ "@vue/reactivity": "3.5.39",
17
+ "@vue/runtime-core": "3.5.39",
18
+ "@vue/runtime-dom": "3.5.39",
19
+ "@vue/server-renderer": "3.5.39",
20
+ "@vue/shared": "3.5.39",
21
+ "ajv": "8.17.1",
22
+ "ajv-formats": "3.0.1",
23
+ "birpc": "2.9.0",
24
+ "consola": "3.4.2",
25
+ "devalue": "5.8.1",
26
+ "entities": "7.0.1",
27
+ "estree-walker": "2.0.2",
28
+ "fast-deep-equal": "3.1.3",
29
+ "fast-uri": "3.1.3",
30
+ "hookable": "6.1.1",
31
+ "json-schema-traverse": "1.0.0",
32
+ "perfect-debounce": "2.1.0",
33
+ "source-map-js": "1.2.1",
34
+ "tailwindcss": "4.2.1",
35
+ "ufo": "1.6.4",
36
+ "unhead": "2.1.15",
37
+ "vue": "3.5.39",
38
+ "vue-bundle-renderer": "2.3.1",
39
+ "vue-router": "5.1.0"
40
+ }
41
+ }
package/README.md ADDED
@@ -0,0 +1,114 @@
1
+ # BusinessLens
2
+
3
+ BusinessLens turns source-backed software analysis into a local, navigable
4
+ product report. Point the CLI at one validated JSON file and explore its
5
+ actors, domains, journeys, scenarios, repository evidence, topology, coverage,
6
+ and limitations in the browser.
7
+
8
+ ## Run a report
9
+
10
+ Requires Node.js 22.13 or newer.
11
+
12
+ ```sh
13
+ npx businesslens --report ./report.json
14
+ ```
15
+
16
+ BusinessLens validates the report before starting, binds to `127.0.0.1`, uses
17
+ port 3000 or the next available port, and opens the browser. Useful options:
18
+
19
+ ```sh
20
+ npx businesslens --report ./report.json --port 4173 --no-open
21
+ npx businesslens --help
22
+ ```
23
+
24
+ ## Included reports
25
+
26
+ This repository preserves four source-backed reports in the v2 single-file
27
+ format:
28
+
29
+ - `reports/argo-cd/report.json`
30
+ - `reports/argo-workflows/report.json`
31
+ - `reports/gitea/report.json`
32
+ - `reports/vibe-trading/report.json`
33
+
34
+ Run one from a source checkout:
35
+
36
+ ```sh
37
+ pnpm install
38
+ pnpm build
39
+ node bin/businesslens.mjs --report ./reports/gitea/report.json
40
+ ```
41
+
42
+ For Nuxt development, pass the absolute report path through runtime config:
43
+
44
+ ```sh
45
+ NUXT_REPORT_PATH="$PWD/reports/gitea/report.json" pnpm dev
46
+ ```
47
+
48
+ ## Report contract
49
+
50
+ Each `reports/<report-id>/` directory contains exactly one `report.json` using
51
+ schema version `2.0.0`. It includes:
52
+
53
+ - report identity and generation metadata;
54
+ - source repository, optional logo, branch or tag, and pinned commit;
55
+ - actors and product domains;
56
+ - user journeys with entry points and repository evidence;
57
+ - source-backed scenarios with triggers, ordered observable steps, outcomes,
58
+ and edge cases;
59
+ - analysis coverage, unmapped areas, and limitations.
60
+
61
+ Validate every tracked report:
62
+
63
+ ```sh
64
+ pnpm validate
65
+ ```
66
+
67
+ Validate one file:
68
+
69
+ ```sh
70
+ node .agents/skills/businesslens-validate-report/scripts/validate-report.mjs \
71
+ ./reports/gitea/report.json
72
+ ```
73
+
74
+ ## Repository-analysis skills
75
+
76
+ Agents that support `AGENTS.md` and the Agent Skills convention can use the
77
+ workflows under `.agents/skills/`:
78
+
79
+ - `$businesslens-analyze-repository` safely inventories a public HTTPS Git
80
+ checkout and creates a v2 `report.json` without executing target code.
81
+ - `$businesslens-validate-report` checks schema and semantic integrity.
82
+ - `$businesslens-add-report` imports a validated file without replacing an
83
+ existing report.
84
+
85
+ ## Development tooling
86
+
87
+ The repository keeps shared MCP configuration for Codex, Claude, and other
88
+ MCP-compatible development clients. It provides Nuxt UI documentation tools
89
+ and a pinned Chrome DevTools integration without changing a contributor's
90
+ sandbox or approval policy.
91
+
92
+ The Chrome integration expects a browser debugging endpoint on port `9222`.
93
+ For example, on macOS:
94
+
95
+ ```sh
96
+ open -na "Google Chrome" --args \
97
+ --remote-debugging-port=9222 \
98
+ --user-data-dir=/tmp/businesslens-chrome
99
+ ```
100
+
101
+ ## Development and verification
102
+
103
+ ```sh
104
+ pnpm install
105
+ pnpm check
106
+ ```
107
+
108
+ Before publishing, inspect and smoke-test the exact npm artifact:
109
+
110
+ ```sh
111
+ pnpm pack
112
+ npx --package ./businesslens-0.2.2.tgz businesslens \
113
+ --report ./reports/gitea/report.json --no-open
114
+ ```
@@ -0,0 +1,28 @@
1
+ # Third-party notices
2
+
3
+ ## Nuxt UI Landing Template
4
+
5
+ Portions of the BusinessLens landing-page structure and visual components are
6
+ adapted from the [Nuxt UI Landing Template](https://github.com/nuxt-ui-templates/landing).
7
+
8
+ MIT License
9
+
10
+ Copyright (c) 2025 Nuxt UI Templates
11
+
12
+ Permission is hereby granted, free of charge, to any person obtaining a copy
13
+ of this software and associated documentation files (the "Software"), to deal
14
+ in the Software without restriction, including without limitation the rights
15
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
16
+ copies of the Software, and to permit persons to whom the Software is
17
+ furnished to do so, subject to the following conditions:
18
+
19
+ The above copyright notice and this permission notice shall be included in all
20
+ copies or substantial portions of the Software.
21
+
22
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
23
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
24
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
25
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
26
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
27
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
28
+ SOFTWARE.
@@ -0,0 +1,181 @@
1
+ #!/usr/bin/env node
2
+ import { spawn } from "node:child_process";
3
+ import { readFile, stat } from "node:fs/promises";
4
+ import { createServer } from "node:net";
5
+ import { dirname, resolve } from "node:path";
6
+ import { fileURLToPath } from "node:url";
7
+ import { readReportFile } from "../packages/report-schema/validate.mjs";
8
+
9
+ const packageRoot = resolve(dirname(fileURLToPath(import.meta.url)), "..");
10
+
11
+ function usage() {
12
+ return `BusinessLens
13
+
14
+ Run a source-backed software report locally.
15
+
16
+ Usage:
17
+ businesslens --report <report.json> [options]
18
+
19
+ Options:
20
+ --report <path> Path to a BusinessLens v2 report.json file
21
+ --port <number> Preferred local port (default: 3000)
22
+ --host <host> Host interface to bind (default: 127.0.0.1)
23
+ --no-open Do not open the report in a browser
24
+ --help, -h Show this help
25
+ --version, -v Show the installed version`;
26
+ }
27
+
28
+ function parseArguments(argv) {
29
+ const options = { report: "", port: 3000, host: "127.0.0.1", open: true };
30
+ for (let index = 0; index < argv.length; index += 1) {
31
+ const argument = argv[index];
32
+ if (argument === "--help" || argument === "-h") return { ...options, help: true };
33
+ if (argument === "--version" || argument === "-v") return { ...options, version: true };
34
+ if (argument === "--no-open") {
35
+ options.open = false;
36
+ continue;
37
+ }
38
+ if (["--report", "--port", "--host"].includes(argument)) {
39
+ const value = argv[index + 1];
40
+ if (!value || value.startsWith("--")) throw new Error(`${argument} requires a value.`);
41
+ options[argument.slice(2)] = argument === "--port" ? Number(value) : value;
42
+ index += 1;
43
+ continue;
44
+ }
45
+ throw new Error(`Unknown option: ${argument}`);
46
+ }
47
+ if (!options.report) throw new Error("--report <report.json> is required.");
48
+ if (!Number.isInteger(options.port) || options.port < 1 || options.port > 65535) {
49
+ throw new Error("--port must be an integer between 1 and 65535.");
50
+ }
51
+ if (!options.host.trim()) throw new Error("--host cannot be empty.");
52
+ return options;
53
+ }
54
+
55
+ async function availablePort(preferredPort, host) {
56
+ for (let port = preferredPort; port <= Math.min(65535, preferredPort + 20); port += 1) {
57
+ const available = await new Promise((accept) => {
58
+ const probe = createServer();
59
+ probe.unref();
60
+ probe.once("error", () => accept(false));
61
+ probe.listen({ port, host }, () => probe.close(() => accept(true)));
62
+ });
63
+ if (available) return port;
64
+ }
65
+ throw new Error(`No available port found between ${preferredPort} and ${Math.min(65535, preferredPort + 20)}.`);
66
+ }
67
+
68
+ function openBrowser(url) {
69
+ const command = process.platform === "darwin"
70
+ ? ["open", [url]]
71
+ : process.platform === "win32"
72
+ ? ["cmd", ["/c", "start", "", url]]
73
+ : ["xdg-open", [url]];
74
+ const opener = spawn(command[0], command[1], { detached: true, stdio: "ignore" });
75
+ opener.unref();
76
+ opener.once("error", () => {});
77
+ }
78
+
79
+ async function waitUntilReady(url, child) {
80
+ for (let attempt = 0; attempt < 100; attempt += 1) {
81
+ if (child.exitCode !== null) throw new Error(`BusinessLens server exited with code ${child.exitCode}.`);
82
+ try {
83
+ const response = await fetch(`${url}/api/report`);
84
+ if (response.ok) return;
85
+ } catch {
86
+ // The server is still starting.
87
+ }
88
+ await new Promise(resolveDelay => setTimeout(resolveDelay, 100));
89
+ }
90
+ throw new Error("BusinessLens did not become ready within 10 seconds.");
91
+ }
92
+
93
+ async function main() {
94
+ let options;
95
+ try {
96
+ options = parseArguments(process.argv.slice(2));
97
+ } catch (error) {
98
+ console.error(`Error: ${error.message}\n\n${usage()}`);
99
+ process.exitCode = 2;
100
+ return;
101
+ }
102
+
103
+ if (options.help) {
104
+ console.log(usage());
105
+ return;
106
+ }
107
+ if (options.version) {
108
+ const packageJson = JSON.parse(await readFile(resolve(packageRoot, "package.json"), "utf8"));
109
+ console.log(packageJson.version);
110
+ return;
111
+ }
112
+
113
+ const reportPath = resolve(process.cwd(), options.report);
114
+ try {
115
+ const file = await stat(reportPath);
116
+ if (!file.isFile()) throw new Error("path is not a regular file");
117
+ } catch (error) {
118
+ console.error(`Cannot read report ${reportPath}: ${error.message}`);
119
+ process.exitCode = 1;
120
+ return;
121
+ }
122
+
123
+ const validation = await readReportFile(reportPath);
124
+ if (validation.errors.length || !validation.report) {
125
+ console.error(`Report validation failed:\n${validation.errors.map(error => `- ${error}`).join("\n")}`);
126
+ process.exitCode = 1;
127
+ return;
128
+ }
129
+
130
+ const serverEntry = resolve(packageRoot, ".output/server/index.mjs");
131
+ try {
132
+ await stat(serverEntry);
133
+ } catch {
134
+ console.error("BusinessLens server assets are missing. Reinstall the package or run pnpm build in a source checkout.");
135
+ process.exitCode = 1;
136
+ return;
137
+ }
138
+
139
+ let port;
140
+ try {
141
+ port = await availablePort(options.port, options.host);
142
+ } catch (error) {
143
+ console.error(error.message);
144
+ process.exitCode = 1;
145
+ return;
146
+ }
147
+ const browserHost = ["0.0.0.0", "::"].includes(options.host) ? "127.0.0.1" : options.host;
148
+ const urlHost = browserHost.includes(":") ? `[${browserHost}]` : browserHost;
149
+ const url = `http://${urlHost}:${port}`;
150
+ const child = spawn(process.execPath, [serverEntry], {
151
+ env: {
152
+ ...process.env,
153
+ NITRO_HOST: options.host,
154
+ NITRO_PORT: String(port),
155
+ NUXT_REPORT_PATH: reportPath,
156
+ },
157
+ stdio: "inherit",
158
+ });
159
+
160
+ const stop = (signal) => {
161
+ if (child.exitCode === null) child.kill(signal);
162
+ };
163
+ process.once("SIGINT", () => stop("SIGINT"));
164
+ process.once("SIGTERM", () => stop("SIGTERM"));
165
+
166
+ try {
167
+ await waitUntilReady(url, child);
168
+ console.log(`BusinessLens is viewing ${validation.report.source.repository} at ${url}`);
169
+ if (port !== options.port) console.log(`Port ${options.port} was unavailable; using ${port}.`);
170
+ if (options.open) openBrowser(url);
171
+ } catch (error) {
172
+ console.error(error.message);
173
+ stop("SIGTERM");
174
+ process.exitCode = 1;
175
+ }
176
+
177
+ const exitCode = child.exitCode ?? await new Promise(resolveExit => child.once("exit", code => resolveExit(code)));
178
+ if (exitCode && !process.exitCode) process.exitCode = exitCode;
179
+ }
180
+
181
+ await main();
package/package.json ADDED
@@ -0,0 +1,68 @@
1
+ {
2
+ "name": "businesslens",
3
+ "version": "0.2.2",
4
+ "description": "Run source-backed BusinessLens software reports locally from a single JSON file.",
5
+ "type": "module",
6
+ "bin": {
7
+ "businesslens": "bin/businesslens.mjs"
8
+ },
9
+ "files": [
10
+ ".output",
11
+ "bin",
12
+ "packages/report-schema",
13
+ "README.md",
14
+ "THIRD_PARTY_NOTICES.md"
15
+ ],
16
+ "keywords": [
17
+ "businesslens",
18
+ "software-analysis",
19
+ "user-journeys",
20
+ "repository-analysis"
21
+ ],
22
+ "repository": {
23
+ "type": "git",
24
+ "url": "git+https://github.com/businesslens/cli.git"
25
+ },
26
+ "publishConfig": {
27
+ "access": "public"
28
+ },
29
+ "packageManager": "pnpm@11.9.0",
30
+ "engines": {
31
+ "node": ">=22.13.0"
32
+ },
33
+ "scripts": {
34
+ "dev": "nuxt dev",
35
+ "build": "nuxt build",
36
+ "prepack": "pnpm build",
37
+ "dev:prepare": "nuxt prepare",
38
+ "validate": "node scripts/validate-reports.mjs",
39
+ "lint": "eslint .",
40
+ "typecheck": "nuxt typecheck",
41
+ "test": "vitest run",
42
+ "check": "pnpm dev:prepare && pnpm validate && pnpm lint && pnpm typecheck && pnpm test && pnpm build"
43
+ },
44
+ "dependencies": {
45
+ "ajv": "8.17.1",
46
+ "ajv-formats": "3.0.1",
47
+ "hookable": "6.1.1"
48
+ },
49
+ "devDependencies": {
50
+ "@fontsource-variable/inter": "5.2.8",
51
+ "@nuxt/ui": "4.9.0",
52
+ "@vue-flow/background": "1.3.2",
53
+ "@vue-flow/controls": "1.1.3",
54
+ "@vue-flow/core": "1.48.2",
55
+ "@vue-flow/minimap": "1.5.4",
56
+ "nuxt": "4.4.8",
57
+ "vue": "3.5.39",
58
+ "vue-router": "5.1.0",
59
+ "@iconify-json/lucide": "1.2.117",
60
+ "@nuxt/eslint": "1.16.0",
61
+ "@types/node": "24.10.4",
62
+ "eslint": "9.39.4",
63
+ "tailwindcss": "4.2.1",
64
+ "typescript": "5.9.3",
65
+ "vitest": "4.1.9",
66
+ "vue-tsc": "3.3.7"
67
+ }
68
+ }