likec4 1.10.1 → 1.12.0

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 (1560) hide show
  1. package/dist/__app__/react/likec4.tsx +44 -17
  2. package/dist/__app__/src/chunks/{-index-overview-CR08x_EG.js → -index-overview-Csz814YU.js} +6 -6
  3. package/dist/__app__/src/chunks/{likec4-BFZn233G.js → likec4-DlkyDuSp.js} +22 -11
  4. package/dist/__app__/src/chunks/{main-D12NE066.js → main-Bc_PC5BH.js} +5390 -1016
  5. package/dist/__app__/src/chunks/{mantine-BnwtT_Nz.js → mantine-IOl1S4mZ.js} +166 -62
  6. package/dist/__app__/src/chunks/{tanstack-router-DKnF_3kP.js → tanstack-router-CU5V4Ll-.js} +1 -1
  7. package/dist/__app__/src/const.js +2 -0
  8. package/dist/__app__/src/main.js +1 -1
  9. package/dist/__app__/src/style.css +1 -1
  10. package/dist/__app__/webcomponent/webcomponent.js +6775 -2073
  11. package/dist/chunks/prompt.mjs +45 -0
  12. package/dist/cli/index.d.ts +1 -0
  13. package/dist/cli/index.mjs +213 -161
  14. package/dist/index.d.mts +734 -1387
  15. package/dist/index.d.ts +16963 -0
  16. package/dist/index.mjs +1 -1
  17. package/dist/shared/likec4.Ceq7jJZD.mjs +1816 -0
  18. package/icons/all.d.ts +589 -0
  19. package/icons/all.js +1179 -1
  20. package/icons/aws/activate.js +10 -10
  21. package/icons/aws/alexa-for-business.js +10 -10
  22. package/icons/aws/amplify.js +10 -10
  23. package/icons/aws/apache-mxnet-on-aws.js +10 -10
  24. package/icons/aws/api-gateway.js +10 -10
  25. package/icons/aws/app-config.js +10 -10
  26. package/icons/aws/app-flow.js +10 -10
  27. package/icons/aws/app-mesh.js +10 -10
  28. package/icons/aws/app-runner.js +10 -10
  29. package/icons/aws/app-stream.js +10 -10
  30. package/icons/aws/app-sync.js +10 -10
  31. package/icons/aws/application-auto-scaling.js +10 -10
  32. package/icons/aws/application-composer.js +10 -10
  33. package/icons/aws/application-cost-profiler.js +10 -10
  34. package/icons/aws/application-discovery-service.js +10 -10
  35. package/icons/aws/application-migration-service.js +10 -10
  36. package/icons/aws/artifact.js +10 -10
  37. package/icons/aws/athena.js +10 -10
  38. package/icons/aws/audit-manager.js +10 -10
  39. package/icons/aws/augmented-ai-a2i.js +10 -10
  40. package/icons/aws/aurora.js +10 -10
  41. package/icons/aws/auto-scaling.js +10 -10
  42. package/icons/aws/backint-agent.js +10 -10
  43. package/icons/aws/backup.js +10 -10
  44. package/icons/aws/batch.js +10 -10
  45. package/icons/aws/billing-conductor.js +10 -10
  46. package/icons/aws/bottlerocket.js +10 -10
  47. package/icons/aws/braket.js +10 -10
  48. package/icons/aws/budgets.js +10 -10
  49. package/icons/aws/certificate-manager.js +10 -10
  50. package/icons/aws/chatbot.js +10 -10
  51. package/icons/aws/chime-sdk.js +10 -10
  52. package/icons/aws/chime-voice-connector.js +10 -10
  53. package/icons/aws/chime.js +10 -10
  54. package/icons/aws/clean-rooms.js +10 -10
  55. package/icons/aws/client-vpn.js +10 -10
  56. package/icons/aws/cloud-control-api.js +10 -10
  57. package/icons/aws/cloud-development-kit.js +10 -10
  58. package/icons/aws/cloud-directory.js +10 -10
  59. package/icons/aws/cloud-formation.js +10 -10
  60. package/icons/aws/cloud-front.js +10 -10
  61. package/icons/aws/cloud-hsm.js +10 -10
  62. package/icons/aws/cloud-map.js +10 -10
  63. package/icons/aws/cloud-search.js +10 -10
  64. package/icons/aws/cloud-shell.js +10 -10
  65. package/icons/aws/cloud-trail.js +10 -10
  66. package/icons/aws/cloud-wan.js +10 -10
  67. package/icons/aws/cloud-watch.js +10 -10
  68. package/icons/aws/cloud9.js +10 -10
  69. package/icons/aws/code-artifact.js +10 -10
  70. package/icons/aws/code-build.js +10 -10
  71. package/icons/aws/code-catalyst.js +10 -10
  72. package/icons/aws/code-commit.js +10 -10
  73. package/icons/aws/code-deploy.js +10 -10
  74. package/icons/aws/code-guru.js +10 -10
  75. package/icons/aws/code-pipeline.js +10 -10
  76. package/icons/aws/code-star.js +10 -10
  77. package/icons/aws/code-whisperer.js +10 -10
  78. package/icons/aws/cognito.js +10 -10
  79. package/icons/aws/command-line-interface.js +10 -10
  80. package/icons/aws/comprehend-medical.js +10 -10
  81. package/icons/aws/comprehend.js +10 -10
  82. package/icons/aws/compute-optimizer.js +10 -10
  83. package/icons/aws/config.js +10 -10
  84. package/icons/aws/connect.js +10 -10
  85. package/icons/aws/console-mobile-application.js +10 -10
  86. package/icons/aws/control-tower.js +10 -10
  87. package/icons/aws/corretto.js +10 -10
  88. package/icons/aws/cost-and-usage-report.js +10 -10
  89. package/icons/aws/cost-explorer.js +10 -10
  90. package/icons/aws/data-exchange.js +10 -10
  91. package/icons/aws/data-pipeline.js +10 -10
  92. package/icons/aws/data-sync.js +10 -10
  93. package/icons/aws/data-zone.js +10 -10
  94. package/icons/aws/database-migration-service.js +10 -10
  95. package/icons/aws/deep-composer.js +10 -10
  96. package/icons/aws/deep-learning-amis.js +10 -10
  97. package/icons/aws/deep-learning-containers.js +10 -10
  98. package/icons/aws/deep-lens.js +10 -10
  99. package/icons/aws/deep-racer.js +10 -10
  100. package/icons/aws/detective.js +10 -10
  101. package/icons/aws/dev-ops-guru.js +10 -10
  102. package/icons/aws/device-farm.js +10 -10
  103. package/icons/aws/direct-connect.js +10 -10
  104. package/icons/aws/directory-service.js +10 -10
  105. package/icons/aws/distro-for-open-telemetry.js +10 -10
  106. package/icons/aws/document-db.js +10 -10
  107. package/icons/aws/dynamo-db.js +10 -10
  108. package/icons/aws/ec2-auto-scaling.js +10 -10
  109. package/icons/aws/ec2-image-builder.js +10 -10
  110. package/icons/aws/ec2.js +10 -10
  111. package/icons/aws/ecs-anywhere.js +10 -10
  112. package/icons/aws/efs.js +10 -10
  113. package/icons/aws/eks-anywhere.js +10 -10
  114. package/icons/aws/eks-cloud.js +10 -10
  115. package/icons/aws/eks-distro.js +10 -10
  116. package/icons/aws/elasti-cache.js +10 -10
  117. package/icons/aws/elastic-beanstalk.js +10 -10
  118. package/icons/aws/elastic-block-store.js +10 -10
  119. package/icons/aws/elastic-container-registry.js +10 -10
  120. package/icons/aws/elastic-container-service.js +10 -10
  121. package/icons/aws/elastic-disaster-recovery.js +10 -10
  122. package/icons/aws/elastic-fabric-adapter.js +10 -10
  123. package/icons/aws/elastic-inference.js +10 -10
  124. package/icons/aws/elastic-kubernetes-service.js +10 -10
  125. package/icons/aws/elastic-load-balancing.js +10 -10
  126. package/icons/aws/elastic-transcoder.js +10 -10
  127. package/icons/aws/elemental-appliances-software.js +10 -10
  128. package/icons/aws/elemental-conductor.js +10 -10
  129. package/icons/aws/elemental-delta.js +10 -10
  130. package/icons/aws/elemental-link.js +10 -10
  131. package/icons/aws/elemental-live.js +10 -10
  132. package/icons/aws/elemental-media-connect.js +10 -10
  133. package/icons/aws/elemental-media-convert.js +10 -10
  134. package/icons/aws/elemental-media-live.js +10 -10
  135. package/icons/aws/elemental-media-package.js +10 -10
  136. package/icons/aws/elemental-media-store.js +10 -10
  137. package/icons/aws/elemental-media-tailor.js +10 -10
  138. package/icons/aws/elemental-server.js +10 -10
  139. package/icons/aws/emr.js +10 -10
  140. package/icons/aws/event-bridge.js +10 -10
  141. package/icons/aws/express-workflows.js +10 -10
  142. package/icons/aws/fargate.js +10 -10
  143. package/icons/aws/fault-injection-simulator.js +10 -10
  144. package/icons/aws/file-cache.js +10 -10
  145. package/icons/aws/fin-space.js +10 -10
  146. package/icons/aws/firewall-manager.js +10 -10
  147. package/icons/aws/forecast.js +10 -10
  148. package/icons/aws/fraud-detector.js +10 -10
  149. package/icons/aws/free-rtos.js +10 -10
  150. package/icons/aws/fsx-for-lustre.js +10 -10
  151. package/icons/aws/fsx-for-net-app-ontap.js +10 -10
  152. package/icons/aws/fsx-for-open-zfs.js +10 -10
  153. package/icons/aws/fsx-for-wfs.js +10 -10
  154. package/icons/aws/fsx.js +10 -10
  155. package/icons/aws/game-kit.js +10 -10
  156. package/icons/aws/game-lift.js +10 -10
  157. package/icons/aws/game-sparks.js +10 -10
  158. package/icons/aws/genomics-cli.js +10 -10
  159. package/icons/aws/global-accelerator.js +10 -10
  160. package/icons/aws/glue-data-brew.js +10 -10
  161. package/icons/aws/glue-elastic-views.js +10 -10
  162. package/icons/aws/glue.js +10 -10
  163. package/icons/aws/ground-station.js +10 -10
  164. package/icons/aws/guard-duty.js +10 -10
  165. package/icons/aws/health-lake.js +10 -10
  166. package/icons/aws/honeycode.js +10 -10
  167. package/icons/aws/iam-identity-center.js +10 -10
  168. package/icons/aws/identity-and-access-management.js +10 -10
  169. package/icons/aws/inspector.js +10 -10
  170. package/icons/aws/interactive-video-service.js +10 -10
  171. package/icons/aws/io-t-1-click.js +10 -10
  172. package/icons/aws/io-t-analytics.js +10 -10
  173. package/icons/aws/io-t-button.js +10 -10
  174. package/icons/aws/io-t-core.js +10 -10
  175. package/icons/aws/io-t-device-defender.js +10 -10
  176. package/icons/aws/io-t-device-management.js +10 -10
  177. package/icons/aws/io-t-edu-kit.js +10 -10
  178. package/icons/aws/io-t-events.js +10 -10
  179. package/icons/aws/io-t-express-link.js +10 -10
  180. package/icons/aws/io-t-fleet-wise.js +10 -10
  181. package/icons/aws/io-t-greengrass.js +10 -10
  182. package/icons/aws/io-t-robo-runner.js +10 -10
  183. package/icons/aws/io-t-site-wise.js +10 -10
  184. package/icons/aws/io-t-things-graph.js +10 -10
  185. package/icons/aws/io-t-twin-maker.js +9 -9
  186. package/icons/aws/iq.js +10 -10
  187. package/icons/aws/kendra.js +10 -10
  188. package/icons/aws/key-management-service.js +10 -10
  189. package/icons/aws/keyspaces.js +10 -10
  190. package/icons/aws/kinesis-data-analytics.js +10 -10
  191. package/icons/aws/kinesis-data-streams.js +10 -10
  192. package/icons/aws/kinesis-firehose.js +10 -10
  193. package/icons/aws/kinesis-video-streams.js +10 -10
  194. package/icons/aws/kinesis.js +10 -10
  195. package/icons/aws/lake-formation.js +10 -10
  196. package/icons/aws/lambda.js +10 -10
  197. package/icons/aws/launch-wizard.js +10 -10
  198. package/icons/aws/lex.js +10 -10
  199. package/icons/aws/license-manager.js +10 -10
  200. package/icons/aws/lightsail.js +10 -10
  201. package/icons/aws/local-zones.js +10 -10
  202. package/icons/aws/location-service.js +10 -10
  203. package/icons/aws/lookout-for-equipment.js +10 -10
  204. package/icons/aws/lookout-for-metrics.js +10 -10
  205. package/icons/aws/lookout-for-vision.js +10 -10
  206. package/icons/aws/lumberyard.js +10 -10
  207. package/icons/aws/macie.js +10 -10
  208. package/icons/aws/mainframe-modernization.js +10 -10
  209. package/icons/aws/managed-blockchain.js +10 -10
  210. package/icons/aws/managed-grafana.js +10 -10
  211. package/icons/aws/managed-service-for-prometheus.js +10 -10
  212. package/icons/aws/managed-services.js +10 -10
  213. package/icons/aws/managed-streaming-for-apache-kafka.js +10 -10
  214. package/icons/aws/managed-workflows-for-apache-airflow.js +10 -10
  215. package/icons/aws/management-console.js +10 -10
  216. package/icons/aws/marketplace-dark.js +6 -6
  217. package/icons/aws/marketplace-light.js +6 -6
  218. package/icons/aws/memory-db-for-redis.js +10 -10
  219. package/icons/aws/migration-evaluator.js +10 -10
  220. package/icons/aws/migration-hub.js +10 -10
  221. package/icons/aws/monitron.js +10 -10
  222. package/icons/aws/mq.js +10 -10
  223. package/icons/aws/neptune.js +10 -10
  224. package/icons/aws/network-firewall.js +10 -10
  225. package/icons/aws/neuron.js +10 -10
  226. package/icons/aws/nice-dcv.js +10 -10
  227. package/icons/aws/nice-engin-frame.js +10 -10
  228. package/icons/aws/nimble-studio.js +10 -10
  229. package/icons/aws/nitro-enclaves.js +10 -10
  230. package/icons/aws/omics.js +10 -10
  231. package/icons/aws/open-3d-engine.js +10 -10
  232. package/icons/aws/open-search-service.js +10 -10
  233. package/icons/aws/ops-works.js +10 -10
  234. package/icons/aws/organizations.js +10 -10
  235. package/icons/aws/outposts-family.js +10 -10
  236. package/icons/aws/outposts-rack.js +10 -10
  237. package/icons/aws/outposts-servers.js +10 -10
  238. package/icons/aws/panorama.js +10 -10
  239. package/icons/aws/parallel-cluster.js +10 -10
  240. package/icons/aws/personal-health-dashboard.js +10 -10
  241. package/icons/aws/personalize.js +10 -10
  242. package/icons/aws/pinpoint-apis.js +10 -10
  243. package/icons/aws/pinpoint.js +10 -10
  244. package/icons/aws/polly.js +10 -10
  245. package/icons/aws/private-5g.js +10 -10
  246. package/icons/aws/private-certificate-authority.js +12 -12
  247. package/icons/aws/private-link.js +10 -10
  248. package/icons/aws/professional-services.js +10 -10
  249. package/icons/aws/proton.js +10 -10
  250. package/icons/aws/quantum-ledger-database.js +10 -10
  251. package/icons/aws/quick-sight.js +10 -10
  252. package/icons/aws/rds-on-vmware.js +10 -10
  253. package/icons/aws/rds.js +10 -10
  254. package/icons/aws/re-post.js +10 -10
  255. package/icons/aws/red-hat-open-shift-service-on-aws.js +10 -10
  256. package/icons/aws/redshift.js +10 -10
  257. package/icons/aws/rekognition.js +10 -10
  258. package/icons/aws/reserved-instance-reporting.js +10 -10
  259. package/icons/aws/resilience-hub.js +10 -10
  260. package/icons/aws/resource-access-manager.js +10 -10
  261. package/icons/aws/resource-explorer.js +10 -10
  262. package/icons/aws/robo-maker.js +10 -10
  263. package/icons/aws/route-53.js +10 -10
  264. package/icons/aws/s3-on-outposts.js +10 -10
  265. package/icons/aws/sage-maker-ground-truth.js +10 -10
  266. package/icons/aws/sage-maker-studio-lab.js +10 -10
  267. package/icons/aws/sage-maker.js +10 -10
  268. package/icons/aws/savings-plans.js +10 -10
  269. package/icons/aws/secrets-manager.js +10 -10
  270. package/icons/aws/security-hub.js +10 -10
  271. package/icons/aws/security-lake.js +10 -10
  272. package/icons/aws/server-migration-service.js +10 -10
  273. package/icons/aws/serverless-application-repository.js +10 -10
  274. package/icons/aws/service-catalog.js +10 -10
  275. package/icons/aws/service-management-connector.js +12 -12
  276. package/icons/aws/shield.js +10 -10
  277. package/icons/aws/signer.js +10 -10
  278. package/icons/aws/sim-space-weaver.js +10 -10
  279. package/icons/aws/simple-email-service.js +10 -10
  280. package/icons/aws/simple-notification-service.js +10 -10
  281. package/icons/aws/simple-queue-service.js +10 -10
  282. package/icons/aws/simple-storage-service-glacier.js +10 -10
  283. package/icons/aws/simple-storage-service.js +10 -10
  284. package/icons/aws/site-to-site-vpn.js +10 -10
  285. package/icons/aws/snowball-edge.js +10 -10
  286. package/icons/aws/snowball.js +10 -10
  287. package/icons/aws/snowcone.js +10 -10
  288. package/icons/aws/snowmobile.js +10 -10
  289. package/icons/aws/step-functions.js +10 -10
  290. package/icons/aws/storage-gateway.js +10 -10
  291. package/icons/aws/sumerian.js +10 -10
  292. package/icons/aws/supply-chain.js +10 -10
  293. package/icons/aws/support.js +10 -10
  294. package/icons/aws/systems-manager.js +10 -10
  295. package/icons/aws/tensor-flow-on-aws.js +10 -10
  296. package/icons/aws/textract.js +10 -10
  297. package/icons/aws/thinkbox-deadline.js +10 -10
  298. package/icons/aws/thinkbox-frost.js +10 -10
  299. package/icons/aws/thinkbox-krakatoa.js +10 -10
  300. package/icons/aws/thinkbox-sequoia.js +10 -10
  301. package/icons/aws/thinkbox-stoke.js +10 -10
  302. package/icons/aws/thinkbox-xmesh.js +10 -10
  303. package/icons/aws/timestream.js +10 -10
  304. package/icons/aws/tools-and-sdks.js +10 -10
  305. package/icons/aws/torch-serve.js +10 -10
  306. package/icons/aws/training-certification.js +10 -10
  307. package/icons/aws/transcribe.js +10 -10
  308. package/icons/aws/transfer-family.js +10 -10
  309. package/icons/aws/transit-gateway.js +10 -10
  310. package/icons/aws/translate.js +10 -10
  311. package/icons/aws/trusted-advisor.js +10 -10
  312. package/icons/aws/verified-access.js +10 -10
  313. package/icons/aws/verified-permissions.js +10 -10
  314. package/icons/aws/virtual-private-cloud.js +10 -10
  315. package/icons/aws/vmware-cloud-on-aws.js +10 -10
  316. package/icons/aws/vpc-lattice.js +10 -10
  317. package/icons/aws/waf.js +10 -10
  318. package/icons/aws/wavelength.js +10 -10
  319. package/icons/aws/well-architected-tool.js +10 -10
  320. package/icons/aws/wickr.js +10 -10
  321. package/icons/aws/work-docs-sdk.js +10 -10
  322. package/icons/aws/work-docs.js +10 -10
  323. package/icons/aws/work-link.js +10 -10
  324. package/icons/aws/work-mail.js +10 -10
  325. package/icons/aws/work-spaces-family.js +10 -10
  326. package/icons/aws/x-ray.js +10 -10
  327. package/icons/azure/abs-member.js +21 -0
  328. package/icons/azure/active-directory-connect-health.js +115 -0
  329. package/icons/azure/activity-log.js +33 -0
  330. package/icons/azure/administrative-units.js +80 -0
  331. package/icons/azure/advisor.js +44 -0
  332. package/icons/azure/ai-studio.js +105 -0
  333. package/icons/azure/aks-automatic.js +105 -0
  334. package/icons/azure/aks-istio.js +63 -0
  335. package/icons/azure/alerts.js +29 -0
  336. package/icons/azure/all-resources.js +21 -0
  337. package/icons/azure/analysis-services.js +34 -0
  338. package/icons/azure/anomaly-detector.js +33 -0
  339. package/icons/azure/api-center.js +31 -0
  340. package/icons/azure/api-connections.js +44 -0
  341. package/icons/azure/api-management-services.js +29 -0
  342. package/icons/azure/api-proxy.js +32 -0
  343. package/icons/azure/app-compliance-automation.js +71 -0
  344. package/icons/azure/app-configuration.js +45 -0
  345. package/icons/azure/app-registrations.js +39 -0
  346. package/icons/azure/app-service-certificates.js +31 -0
  347. package/icons/azure/app-service-domains.js +23 -0
  348. package/icons/azure/app-service-environments.js +25 -0
  349. package/icons/azure/app-service-plans.js +44 -0
  350. package/icons/azure/app-services.js +82 -0
  351. package/icons/azure/app-space-component.js +39 -0
  352. package/icons/azure/app-space.js +37 -0
  353. package/icons/azure/applens.js +45 -0
  354. package/icons/azure/application-gateway-containers.js +113 -0
  355. package/icons/azure/application-gateways.js +60 -0
  356. package/icons/azure/application-group.js +21 -0
  357. package/icons/azure/application-insights.js +46 -0
  358. package/icons/azure/application-security-groups.js +43 -0
  359. package/icons/azure/aquila.js +95 -0
  360. package/icons/azure/arc-data-services.js +49 -0
  361. package/icons/azure/arc-kubernetes.js +73 -0
  362. package/icons/azure/arc-machines.js +40 -0
  363. package/icons/azure/arc-postgre-sql.js +62 -0
  364. package/icons/azure/arc-sql-managed-instance.js +54 -0
  365. package/icons/azure/arc-sql-server.js +40 -0
  366. package/icons/azure/atm-multistack.js +59 -0
  367. package/icons/azure/auto-scale.js +32 -0
  368. package/icons/azure/automanaged-vm.js +65 -0
  369. package/icons/azure/automation-accounts.js +62 -0
  370. package/icons/azure/availability-sets.js +48 -0
  371. package/icons/azure/avs-vm.js +32 -0
  372. package/icons/azure/azure-a.js +46 -0
  373. package/icons/azure/azure-ad-b2c.js +129 -0
  374. package/icons/azure/azure-api-for-fhir.js +22 -0
  375. package/icons/azure/azure-applied-ai-services.js +60 -0
  376. package/icons/azure/azure-arc.js +75 -0
  377. package/icons/azure/azure-attestation.js +35 -0
  378. package/icons/azure/azure-backup-center.js +63 -0
  379. package/icons/azure/azure-blockchain-service.js +51 -0
  380. package/icons/azure/azure-center-for-sap.js +37 -0
  381. package/icons/azure/azure-chaos-studio.js +41 -0
  382. package/icons/azure/azure-cloud-shell.js +28 -0
  383. package/icons/azure/azure-communication-services.js +41 -0
  384. package/icons/azure/azure-communications-gateway.js +32 -0
  385. package/icons/azure/azure-compute-galleries.js +24 -0
  386. package/icons/azure/azure-cosmos-db.js +41 -0
  387. package/icons/azure/azure-data-catalog.js +69 -0
  388. package/icons/azure/azure-data-explorer-clusters.js +82 -0
  389. package/icons/azure/azure-database-maria-db-server.js +45 -0
  390. package/icons/azure/azure-database-migration-services.js +62 -0
  391. package/icons/azure/azure-database-my-sql-server.js +45 -0
  392. package/icons/azure/azure-database-postgre-sql-server-group.js +65 -0
  393. package/icons/azure/azure-database-postgre-sql-server.js +57 -0
  394. package/icons/azure/azure-databox-gateway.js +28 -0
  395. package/icons/azure/azure-databricks.js +12 -0
  396. package/icons/azure/azure-deployment-environments.js +48 -0
  397. package/icons/azure/azure-dev-ops.js +21 -0
  398. package/icons/azure/azure-dev-tunnels.js +20 -0
  399. package/icons/azure/azure-edge-hardware-center.js +58 -0
  400. package/icons/azure/azure-experimentation-studio.js +77 -0
  401. package/icons/azure/azure-fileshares.js +46 -0
  402. package/icons/azure/azure-firewall-manager.js +49 -0
  403. package/icons/azure/azure-firewall-policy.js +37 -0
  404. package/icons/azure/azure-hcp-cache.js +23 -0
  405. package/icons/azure/azure-hpc-workbenches.js +68 -0
  406. package/icons/azure/azure-hybrid-center.js +22 -0
  407. package/icons/azure/azure-information-protection.js +51 -0
  408. package/icons/azure/azure-io-t-operations.js +46 -0
  409. package/icons/azure/azure-lighthouse.js +35 -0
  410. package/icons/azure/azure-load-testing.js +56 -0
  411. package/icons/azure/azure-managed-grafana.js +19 -0
  412. package/icons/azure/azure-maps-accounts.js +16 -0
  413. package/icons/azure/azure-media-service.js +90 -0
  414. package/icons/azure/azure-migrate.js +46 -0
  415. package/icons/azure/azure-monitor-dashboard.js +47 -0
  416. package/icons/azure/azure-monitor-pipeline.js +57 -0
  417. package/icons/azure/azure-monitors-for-sap-solutions.js +49 -0
  418. package/icons/azure/azure-net-app-files.js +36 -0
  419. package/icons/azure/azure-network-function-manager-functions.js +41 -0
  420. package/icons/azure/azure-network-function-manager.js +65 -0
  421. package/icons/azure/azure-object-understanding.js +39 -0
  422. package/icons/azure/azure-open-ai.js +29 -0
  423. package/icons/azure/azure-operator-5g-core.js +64 -0
  424. package/icons/azure/azure-operator-insights.js +31 -0
  425. package/icons/azure/azure-operator-nexus.js +54 -0
  426. package/icons/azure/azure-operator-service-manager.js +30 -0
  427. package/icons/azure/azure-orbital.js +115 -0
  428. package/icons/azure/azure-programmable-connectivity.js +145 -0
  429. package/icons/azure/azure-purview-accounts.js +56 -0
  430. package/icons/azure/azure-quotas.js +43 -0
  431. package/icons/azure/azure-red-hat-open-shift.js +44 -0
  432. package/icons/azure/azure-sentinel.js +37 -0
  433. package/icons/azure/azure-service-bus.js +66 -0
  434. package/icons/azure/azure-sphere.js +57 -0
  435. package/icons/azure/azure-spring-apps.js +67 -0
  436. package/icons/azure/azure-sql-edge.js +146 -0
  437. package/icons/azure/azure-sql-server-stretch-databases.js +54 -0
  438. package/icons/azure/azure-sql-vm.js +37 -0
  439. package/icons/azure/azure-sql.js +27 -0
  440. package/icons/azure/azure-stack-edge.js +33 -0
  441. package/icons/azure/azure-stack-hci-sizer.js +57 -0
  442. package/icons/azure/azure-stack.js +54 -0
  443. package/icons/azure/azure-storage-mover.js +58 -0
  444. package/icons/azure/azure-support-center-blue.js +31 -0
  445. package/icons/azure/azure-sustainability.js +42 -0
  446. package/icons/azure/azure-synapse-analytics.js +49 -0
  447. package/icons/azure/azure-token-service.js +46 -0
  448. package/icons/azure/azure-video-indexer.js +60 -0
  449. package/icons/azure/azure-virtual-desktop.js +19 -0
  450. package/icons/azure/azure-vmware-solution.js +35 -0
  451. package/icons/azure/azure-workbooks.js +72 -0
  452. package/icons/azure/azurite.js +34 -0
  453. package/icons/azure/backlog.js +48 -0
  454. package/icons/azure/backup-vault.js +49 -0
  455. package/icons/azure/bare-metal-infrastructure.js +41 -0
  456. package/icons/azure/bastions.js +71 -0
  457. package/icons/azure/batch-accounts.js +52 -0
  458. package/icons/azure/batch-ai.js +56 -0
  459. package/icons/azure/biz-talk.js +39 -0
  460. package/icons/azure/blob-block.js +17 -0
  461. package/icons/azure/blob-page.js +43 -0
  462. package/icons/azure/blockchain-applications.js +32 -0
  463. package/icons/azure/blueprints.js +56 -0
  464. package/icons/azure/bonsai.js +63 -0
  465. package/icons/azure/bot-services.js +43 -0
  466. package/icons/azure/branch.js +32 -0
  467. package/icons/azure/browser.js +16 -0
  468. package/icons/azure/bug.js +26 -0
  469. package/icons/azure/builds.js +48 -0
  470. package/icons/azure/business-process-tracking.js +28 -0
  471. package/icons/azure/cache-redis.js +72 -0
  472. package/icons/azure/cache.js +113 -0
  473. package/icons/azure/capacity-reservation-groups.js +47 -0
  474. package/icons/azure/capacity.js +74 -0
  475. package/icons/azure/cdn-profiles.js +21 -0
  476. package/icons/azure/central-service-instance-for-sap.js +44 -0
  477. package/icons/azure/ceres.js +58 -0
  478. package/icons/azure/change-analysis.js +93 -0
  479. package/icons/azure/client-apps.js +21 -0
  480. package/icons/azure/cloud-services-classic.js +37 -0
  481. package/icons/azure/cloud-services-extended-support.js +50 -0
  482. package/icons/azure/cloud-test.js +58 -0
  483. package/icons/azure/code-optimization.js +146 -0
  484. package/icons/azure/code.js +94 -0
  485. package/icons/azure/cognitive-search.js +26 -0
  486. package/icons/azure/cognitive-services-decisions.js +94 -0
  487. package/icons/azure/cognitive-services.js +42 -0
  488. package/icons/azure/collaborative-service.js +46 -0
  489. package/icons/azure/commit.js +30 -0
  490. package/icons/azure/community-images.js +35 -0
  491. package/icons/azure/compliance-center.js +48 -0
  492. package/icons/azure/compliance.js +35 -0
  493. package/icons/azure/compute-fleet.js +91 -0
  494. package/icons/azure/computer-vision.js +24 -0
  495. package/icons/azure/conditional-access.js +45 -0
  496. package/icons/azure/confidential-ledgers.js +63 -0
  497. package/icons/azure/connected-cache.js +77 -0
  498. package/icons/azure/connected-vehicle-platform.js +66 -0
  499. package/icons/azure/connections.js +54 -0
  500. package/icons/azure/consortium.js +63 -0
  501. package/icons/azure/container-apps-environments.js +44 -0
  502. package/icons/azure/container-instances.js +37 -0
  503. package/icons/azure/container-registries.js +57 -0
  504. package/icons/azure/container-services-deprecated.js +65 -0
  505. package/icons/azure/content-moderators.js +41 -0
  506. package/icons/azure/content-safety.js +77 -0
  507. package/icons/azure/controls-horizontal.js +135 -0
  508. package/icons/azure/controls.js +33 -0
  509. package/icons/azure/cost-alerts.js +28 -0
  510. package/icons/azure/cost-analysis.js +35 -0
  511. package/icons/azure/cost-budgets.js +30 -0
  512. package/icons/azure/cost-export.js +25 -0
  513. package/icons/azure/cost-management-and-billing.js +31 -0
  514. package/icons/azure/cost-management.js +35 -0
  515. package/icons/azure/counter.js +33 -0
  516. package/icons/azure/cubes.js +16 -0
  517. package/icons/azure/custom-ip-prefix.js +34 -0
  518. package/icons/azure/custom-vision.js +48 -0
  519. package/icons/azure/customer-lockbox-for-microsoft-azure.js +42 -0
  520. package/icons/azure/dashboard-hub.js +61 -0
  521. package/icons/azure/dashboard.js +42 -0
  522. package/icons/azure/data-box.js +33 -0
  523. package/icons/azure/data-collection-rules.js +42 -0
  524. package/icons/azure/data-factories.js +36 -0
  525. package/icons/azure/data-lake-analytics.js +32 -0
  526. package/icons/azure/data-lake-storage-gen1.js +38 -0
  527. package/icons/azure/data-lake-store-gen1.js +38 -0
  528. package/icons/azure/data-share-invitations.js +23 -0
  529. package/icons/azure/data-shares.js +67 -0
  530. package/icons/azure/database-instance-for-sap.js +69 -0
  531. package/icons/azure/ddo-s-protection-plans.js +36 -0
  532. package/icons/azure/dedicated-hsm.js +38 -0
  533. package/icons/azure/defender-cm-local-manager.js +131 -0
  534. package/icons/azure/defender-dcs-controller.js +66 -0
  535. package/icons/azure/defender-distributer-control-system.js +45 -0
  536. package/icons/azure/defender-engineering-station.js +71 -0
  537. package/icons/azure/defender-external-management.js +88 -0
  538. package/icons/azure/defender-freezer-monitor.js +151 -0
  539. package/icons/azure/defender-historian.js +53 -0
  540. package/icons/azure/defender-hmi.js +43 -0
  541. package/icons/azure/defender-industrial-packaging-system.js +75 -0
  542. package/icons/azure/defender-industrial-printer.js +34 -0
  543. package/icons/azure/defender-industrial-robot.js +99 -0
  544. package/icons/azure/defender-industrial-scale-system.js +58 -0
  545. package/icons/azure/defender-marquee.js +38 -0
  546. package/icons/azure/defender-meter.js +101 -0
  547. package/icons/azure/defender-plc.js +55 -0
  548. package/icons/azure/defender-pneumatic-device.js +50 -0
  549. package/icons/azure/defender-programable-board.js +82 -0
  550. package/icons/azure/defender-relay.js +49 -0
  551. package/icons/azure/defender-robot-controller.js +79 -0
  552. package/icons/azure/defender-rtu.js +23 -0
  553. package/icons/azure/defender-sensor.js +44 -0
  554. package/icons/azure/defender-slot.js +31 -0
  555. package/icons/azure/defender-web-guiding-system.js +167 -0
  556. package/icons/azure/detonation.js +30 -0
  557. package/icons/azure/dev-console.js +30 -0
  558. package/icons/azure/dev-ops-starter.js +102 -0
  559. package/icons/azure/dev-test-labs.js +46 -0
  560. package/icons/azure/device-compliance.js +40 -0
  561. package/icons/azure/device-configuration.js +33 -0
  562. package/icons/azure/device-enrollment.js +37 -0
  563. package/icons/azure/device-provisioning-services.js +43 -0
  564. package/icons/azure/device-security-apple.js +43 -0
  565. package/icons/azure/device-security-google.js +43 -0
  566. package/icons/azure/device-security-windows.js +43 -0
  567. package/icons/azure/device-update-io-t-hub.js +35 -0
  568. package/icons/azure/devices.js +29 -0
  569. package/icons/azure/diagnostics-settings.js +40 -0
  570. package/icons/azure/digital-twins.js +40 -0
  571. package/icons/azure/disk-encryption-sets.js +63 -0
  572. package/icons/azure/disk-pool.js +92 -0
  573. package/icons/azure/disks-classic.js +63 -0
  574. package/icons/azure/disks-snapshots.js +49 -0
  575. package/icons/azure/disks.js +63 -0
  576. package/icons/azure/dns-multistack.js +49 -0
  577. package/icons/azure/dns-private-resolver.js +39 -0
  578. package/icons/azure/dns-security-policy.js +90 -0
  579. package/icons/azure/dns-zones.js +37 -0
  580. package/icons/azure/download.js +60 -0
  581. package/icons/azure/e-books.js +42 -0
  582. package/icons/azure/edge-management.js +53 -0
  583. package/icons/azure/education.js +42 -0
  584. package/icons/azure/elastic-job-agents.js +50 -0
  585. package/icons/azure/elastic-san.js +65 -0
  586. package/icons/azure/endpoint-analytics.js +72 -0
  587. package/icons/azure/enterprise-applications.js +55 -0
  588. package/icons/azure/entra-connect-health.js +115 -0
  589. package/icons/azure/entra-connect-sync.js +86 -0
  590. package/icons/azure/entra-connect.js +123 -0
  591. package/icons/azure/entra-domain-services.js +99 -0
  592. package/icons/azure/entra-global-secure-access.js +37 -0
  593. package/icons/azure/entra-id-protection.js +63 -0
  594. package/icons/azure/entra-identity-custom-roles.js +62 -0
  595. package/icons/azure/entra-identity-licenses.js +52 -0
  596. package/icons/azure/entra-identity-risky-signins.js +28 -0
  597. package/icons/azure/entra-identity-risky-users.js +28 -0
  598. package/icons/azure/entra-identity-roles-and-administrators.js +31 -0
  599. package/icons/azure/entra-internet-access.js +72 -0
  600. package/icons/azure/entra-managed-identities.js +114 -0
  601. package/icons/azure/entra-private-access.js +60 -0
  602. package/icons/azure/entra-privleged-identity-management.js +114 -0
  603. package/icons/azure/entra-verified-id.js +53 -0
  604. package/icons/azure/error.js +30 -0
  605. package/icons/azure/event-grid-domains.js +65 -0
  606. package/icons/azure/event-grid-subscriptions.js +65 -0
  607. package/icons/azure/event-grid-topics.js +68 -0
  608. package/icons/azure/event-hub-clusters.js +77 -0
  609. package/icons/azure/event-hubs.js +64 -0
  610. package/icons/azure/exchange-access.js +45 -0
  611. package/icons/azure/exchange-on-premises-access.js +28 -0
  612. package/icons/azure/express-route-circuits.js +38 -0
  613. package/icons/azure/express-route-direct.js +50 -0
  614. package/icons/azure/express-route-traffic-collector.js +86 -0
  615. package/icons/azure/extended-security-updates.js +33 -0
  616. package/icons/azure/extensions.js +28 -0
  617. package/icons/azure/external-identities.js +42 -0
  618. package/icons/azure/face-apis.js +19 -0
  619. package/icons/azure/feature-previews.js +21 -0
  620. package/icons/azure/fhir-service.js +60 -0
  621. package/icons/azure/fiji.js +42 -0
  622. package/icons/azure/file.js +29 -0
  623. package/icons/azure/files.js +45 -0
  624. package/icons/azure/firewalls.js +32 -0
  625. package/icons/azure/folder-blank.js +28 -0
  626. package/icons/azure/folder-website.js +84 -0
  627. package/icons/azure/form-recognizers.js +48 -0
  628. package/icons/azure/free-services.js +43 -0
  629. package/icons/azure/front-door-and-cdn-profiles.js +26 -0
  630. package/icons/azure/ftp.js +17 -0
  631. package/icons/azure/function-apps.js +61 -0
  632. package/icons/azure/gear.js +37 -0
  633. package/icons/azure/genomics-accounts.js +57 -0
  634. package/icons/azure/genomics.js +57 -0
  635. package/icons/azure/globe-error.js +42 -0
  636. package/icons/azure/globe-success.js +52 -0
  637. package/icons/azure/globe-warning.js +53 -0
  638. package/icons/azure/groups.js +42 -0
  639. package/icons/azure/guide.js +17 -0
  640. package/icons/azure/hd-insight-clusters.js +38 -0
  641. package/icons/azure/hdi-aks-cluster.js +60 -0
  642. package/icons/azure/heart.js +31 -0
  643. package/icons/azure/help-and-support.js +33 -0
  644. package/icons/azure/host-groups.js +48 -0
  645. package/icons/azure/host-pools.js +19 -0
  646. package/icons/azure/hosts.js +46 -0
  647. package/icons/azure/ic-m-troubleshooting.js +60 -0
  648. package/icons/azure/identity-governance.js +41 -0
  649. package/icons/azure/identity-multi-factor-authentication.js +71 -0
  650. package/icons/azure/identity-secure-score.js +55 -0
  651. package/icons/azure/image-definitions.js +27 -0
  652. package/icons/azure/image-templates.js +32 -0
  653. package/icons/azure/image-versions.js +27 -0
  654. package/icons/azure/image.js +31 -0
  655. package/icons/azure/images.js +37 -0
  656. package/icons/azure/immersive-readers.js +60 -0
  657. package/icons/azure/import-export-jobs.js +25 -0
  658. package/icons/azure/industrial-io-t.js +53 -0
  659. package/icons/azure/information.js +21 -0
  660. package/icons/azure/infrastructure-backup.js +67 -0
  661. package/icons/azure/input-output.js +97 -0
  662. package/icons/azure/instance-pools.js +76 -0
  663. package/icons/azure/integration-accounts.js +30 -0
  664. package/icons/azure/integration-environments.js +94 -0
  665. package/icons/azure/integration-service-environments.js +58 -0
  666. package/icons/azure/internet-analyzer-profiles.js +48 -0
  667. package/icons/azure/intune-app-protection.js +46 -0
  668. package/icons/azure/intune-for-education.js +46 -0
  669. package/icons/azure/intune-trends.js +29 -0
  670. package/icons/azure/intune.js +46 -0
  671. package/icons/azure/io-t-central-applications.js +20 -0
  672. package/icons/azure/io-t-edge.js +25 -0
  673. package/icons/azure/io-t-hub.js +36 -0
  674. package/icons/azure/ip-address-manager.js +52 -0
  675. package/icons/azure/ip-groups.js +39 -0
  676. package/icons/azure/journey-hub.js +30 -0
  677. package/icons/azure/key-vaults.js +61 -0
  678. package/icons/azure/keys.js +97 -0
  679. package/icons/azure/kubernetes-fleet-manager.js +73 -0
  680. package/icons/azure/kubernetes-services.js +65 -0
  681. package/icons/azure/lab-accounts.js +47 -0
  682. package/icons/azure/lab-services.js +46 -0
  683. package/icons/azure/language-understanding.js +14 -0
  684. package/icons/azure/language.js +71 -0
  685. package/icons/azure/launch-portal.js +25 -0
  686. package/icons/azure/learn.js +61 -0
  687. package/icons/azure/load-balancer-hub.js +90 -0
  688. package/icons/azure/load-balancers.js +28 -0
  689. package/icons/azure/load-test.js +50 -0
  690. package/icons/azure/load-testing.js +71 -0
  691. package/icons/azure/local-network-gateways.js +33 -0
  692. package/icons/azure/location.js +34 -0
  693. package/icons/azure/log-analytics-query-pack.js +57 -0
  694. package/icons/azure/log-analytics-workspaces.js +36 -0
  695. package/icons/azure/log-streaming.js +46 -0
  696. package/icons/azure/logic-apps-custom-connector.js +43 -0
  697. package/icons/azure/logic-apps.js +54 -0
  698. package/icons/azure/machine-learning-studio-classic-web-services.js +38 -0
  699. package/icons/azure/machine-learning-studio-web-service-plans.js +62 -0
  700. package/icons/azure/machine-learning-studio-workspaces.js +44 -0
  701. package/icons/azure/machine-learning.js +29 -0
  702. package/icons/azure/machines-azure-arc.js +27 -0
  703. package/icons/azure/maintenance-configuration.js +62 -0
  704. package/icons/azure/managed-applications-center.js +44 -0
  705. package/icons/azure/managed-database.js +57 -0
  706. package/icons/azure/managed-desktop.js +40 -0
  707. package/icons/azure/managed-dev-ops-pools.js +59 -0
  708. package/icons/azure/managed-file-shares.js +59 -0
  709. package/icons/azure/managed-identities.js +44 -0
  710. package/icons/azure/managed-instance-apache-cassandra.js +49 -0
  711. package/icons/azure/managed-service-fabric.js +98 -0
  712. package/icons/azure/management-groups.js +66 -0
  713. package/icons/azure/management-portal.js +17 -0
  714. package/icons/azure/marketplace-management.js +36 -0
  715. package/icons/azure/marketplace.js +38 -0
  716. package/icons/azure/med-tech-service.js +65 -0
  717. package/icons/azure/media-file.js +36 -0
  718. package/icons/azure/media.js +108 -0
  719. package/icons/azure/mesh-applications.js +47 -0
  720. package/icons/azure/metrics-advisor.js +47 -0
  721. package/icons/azure/metrics.js +34 -0
  722. package/icons/azure/microsoft-defender-easm.js +69 -0
  723. package/icons/azure/microsoft-defender-for-cloud.js +50 -0
  724. package/icons/azure/microsoft-defender-for-io-t.js +43 -0
  725. package/icons/azure/microsoft-dev-box.js +143 -0
  726. package/icons/azure/mindaro.js +47 -0
  727. package/icons/azure/mission-landing-zone.js +48 -0
  728. package/icons/azure/mobile-engagement.js +35 -0
  729. package/icons/azure/mobile-networks.js +75 -0
  730. package/icons/azure/mobile.js +28 -0
  731. package/icons/azure/modular-data-center.js +61 -0
  732. package/icons/azure/module.js +25 -0
  733. package/icons/azure/monitor-health-models.js +77 -0
  734. package/icons/azure/monitor.js +61 -0
  735. package/icons/azure/multi-tenancy.js +47 -0
  736. package/icons/azure/multifactor-authentication.js +84 -0
  737. package/icons/azure/my-customers.js +42 -0
  738. package/icons/azure/nat.js +45 -0
  739. package/icons/azure/network-interfaces.js +41 -0
  740. package/icons/azure/network-managers.js +44 -0
  741. package/icons/azure/network-security-groups.js +42 -0
  742. package/icons/azure/network-security-perimeters.js +91 -0
  743. package/icons/azure/network-watcher.js +55 -0
  744. package/icons/azure/notification-hub-namespaces.js +22 -0
  745. package/icons/azure/notification-hubs.js +22 -0
  746. package/icons/azure/offers.js +35 -0
  747. package/icons/azure/on-premises-data-gateways.js +33 -0
  748. package/icons/azure/open-supply-chain-platform.js +54 -0
  749. package/icons/azure/operation-log-classic.js +33 -0
  750. package/icons/azure/oracle-database.js +33 -0
  751. package/icons/azure/os-images-classic.js +38 -0
  752. package/icons/azure/osconfig.js +71 -0
  753. package/icons/azure/outbound-connection.js +24 -0
  754. package/icons/azure/partner-namespace.js +97 -0
  755. package/icons/azure/partner-registration.js +95 -0
  756. package/icons/azure/partner-topic.js +82 -0
  757. package/icons/azure/peering-service.js +27 -0
  758. package/icons/azure/peerings.js +33 -0
  759. package/icons/azure/personalizers.js +55 -0
  760. package/icons/azure/plans.js +40 -0
  761. package/icons/azure/policy.js +34 -0
  762. package/icons/azure/power-bi-embedded.js +69 -0
  763. package/icons/azure/power-platform.js +163 -0
  764. package/icons/azure/power-up.js +42 -0
  765. package/icons/azure/power.js +31 -0
  766. package/icons/azure/powershell.js +30 -0
  767. package/icons/azure/preview-features.js +50 -0
  768. package/icons/azure/private-endpoints.js +69 -0
  769. package/icons/azure/private-link-service.js +83 -0
  770. package/icons/azure/private-link-services.js +72 -0
  771. package/icons/azure/private-link.js +94 -0
  772. package/icons/azure/process-explorer.js +23 -0
  773. package/icons/azure/production-ready-database.js +70 -0
  774. package/icons/azure/proximity-placement-groups.js +71 -0
  775. package/icons/azure/public-ip-addresses-classic.js +19 -0
  776. package/icons/azure/public-ip-addresses.js +19 -0
  777. package/icons/azure/public-ip-prefixes.js +53 -0
  778. package/icons/azure/qn-a-makers.js +50 -0
  779. package/icons/azure/quickstart-center.js +54 -0
  780. package/icons/azure/recent.js +57 -0
  781. package/icons/azure/recovery-services-vaults.js +45 -0
  782. package/icons/azure/region-management.js +42 -0
  783. package/icons/azure/relays.js +45 -0
  784. package/icons/azure/remote-rendering.js +71 -0
  785. package/icons/azure/reservations.js +37 -0
  786. package/icons/azure/reserved-capacity.js +45 -0
  787. package/icons/azure/reserved-ip-addresses-classic.js +21 -0
  788. package/icons/azure/resource-explorer.js +33 -0
  789. package/icons/azure/resource-graph-explorer.js +25 -0
  790. package/icons/azure/resource-group-list.js +48 -0
  791. package/icons/azure/resource-groups.js +40 -0
  792. package/icons/azure/resource-guard.js +46 -0
  793. package/icons/azure/resource-linked.js +40 -0
  794. package/icons/azure/resource-management-private-link.js +44 -0
  795. package/icons/azure/resource-mover.js +20 -0
  796. package/icons/azure/resources-provider.js +27 -0
  797. package/icons/azure/restore-points-collections.js +40 -0
  798. package/icons/azure/restore-points.js +39 -0
  799. package/icons/azure/route-filters.js +39 -0
  800. package/icons/azure/route-tables.js +40 -0
  801. package/icons/azure/rtos.js +64 -0
  802. package/icons/azure/savings-plans.js +53 -0
  803. package/icons/azure/scheduler-job-collections.js +73 -0
  804. package/icons/azure/scheduler.js +75 -0
  805. package/icons/azure/scvmm-management-servers.js +68 -0
  806. package/icons/azure/search-grid.js +48 -0
  807. package/icons/azure/search.js +28 -0
  808. package/icons/azure/security-baselines.js +44 -0
  809. package/icons/azure/security.js +22 -0
  810. package/icons/azure/send-grid-accounts.js +25 -0
  811. package/icons/azure/server-farm.js +54 -0
  812. package/icons/azure/serverless-search.js +54 -0
  813. package/icons/azure/service-catalog-mad.js +48 -0
  814. package/icons/azure/service-endpoint-policies.js +64 -0
  815. package/icons/azure/service-fabric-clusters.js +53 -0
  816. package/icons/azure/service-health.js +34 -0
  817. package/icons/azure/service-providers.js +38 -0
  818. package/icons/azure/shared-image-galleries.js +21 -0
  819. package/icons/azure/signal-r.js +22 -0
  820. package/icons/azure/software-as-a-service.js +43 -0
  821. package/icons/azure/software-updates.js +22 -0
  822. package/icons/azure/solutions.js +58 -0
  823. package/icons/azure/sonic-dash.js +73 -0
  824. package/icons/azure/spatial-anchor-accounts.js +44 -0
  825. package/icons/azure/speech-services.js +32 -0
  826. package/icons/azure/spot-vm.js +40 -0
  827. package/icons/azure/spot-vmss.js +66 -0
  828. package/icons/azure/sql-data-warehouses.js +54 -0
  829. package/icons/azure/sql-database.js +52 -0
  830. package/icons/azure/sql-elastic-pools.js +78 -0
  831. package/icons/azure/sql-managed-instance.js +51 -0
  832. package/icons/azure/sql-server-registries.js +64 -0
  833. package/icons/azure/sql-server.js +46 -0
  834. package/icons/azure/ssd.js +30 -0
  835. package/icons/azure/ssh-keys.js +42 -0
  836. package/icons/azure/ssis-lift-and-shift-ir.js +72 -0
  837. package/icons/azure/stack-hci-premium.js +78 -0
  838. package/icons/azure/static-apps.js +29 -0
  839. package/icons/azure/stor-simple-data-managers.js +57 -0
  840. package/icons/azure/stor-simple-device-managers.js +27 -0
  841. package/icons/azure/storage-accounts-classic.js +36 -0
  842. package/icons/azure/storage-accounts.js +35 -0
  843. package/icons/azure/storage-actions.js +66 -0
  844. package/icons/azure/storage-azure-files.js +30 -0
  845. package/icons/azure/storage-container.js +29 -0
  846. package/icons/azure/storage-explorer.js +27 -0
  847. package/icons/azure/storage-functions.js +40 -0
  848. package/icons/azure/storage-queue.js +18 -0
  849. package/icons/azure/storage-sync-services.js +52 -0
  850. package/icons/azure/stream-analytics-jobs.js +53 -0
  851. package/icons/azure/subnet.js +43 -0
  852. package/icons/azure/subscriptions.js +41 -0
  853. package/icons/azure/system-topic.js +103 -0
  854. package/icons/azure/table.js +23 -0
  855. package/icons/azure/tag.js +28 -0
  856. package/icons/azure/tags.js +46 -0
  857. package/icons/azure/targets-management.js +43 -0
  858. package/icons/azure/template-specs.js +67 -0
  859. package/icons/azure/templates.js +33 -0
  860. package/icons/azure/tenant-properties.js +51 -0
  861. package/icons/azure/tenant-status.js +40 -0
  862. package/icons/azure/test-base.js +56 -0
  863. package/icons/azure/tfs-vc-repository.js +42 -0
  864. package/icons/azure/time-series-data-sets.js +52 -0
  865. package/icons/azure/time-series-insights-access-policies.js +42 -0
  866. package/icons/azure/time-series-insights-environments.js +39 -0
  867. package/icons/azure/time-series-insights-event-sources.js +36 -0
  868. package/icons/azure/toolbox.js +26 -0
  869. package/icons/azure/traffic-manager-profiles.js +36 -0
  870. package/icons/azure/translator-text.js +75 -0
  871. package/icons/azure/troubleshoot.js +38 -0
  872. package/icons/azure/universal-print.js +35 -0
  873. package/icons/azure/update-management-center.js +69 -0
  874. package/icons/azure/updates.js +47 -0
  875. package/icons/azure/user-privacy.js +44 -0
  876. package/icons/azure/user-settings.js +46 -0
  877. package/icons/azure/user-subscriptions.js +82 -0
  878. package/icons/azure/users.js +26 -0
  879. package/icons/azure/verifiable-credentials.js +99 -0
  880. package/icons/azure/verification-as-a-service.js +84 -0
  881. package/icons/azure/versions.js +24 -0
  882. package/icons/azure/video-analyzers.js +42 -0
  883. package/icons/azure/virtual-clusters.js +77 -0
  884. package/icons/azure/virtual-enclaves.js +40 -0
  885. package/icons/azure/virtual-instance-for-sap.js +70 -0
  886. package/icons/azure/virtual-machine.js +30 -0
  887. package/icons/azure/virtual-machines-classic.js +31 -0
  888. package/icons/azure/virtual-network-gateways.js +45 -0
  889. package/icons/azure/virtual-networks-classic.js +64 -0
  890. package/icons/azure/virtual-networks.js +64 -0
  891. package/icons/azure/virtual-router.js +29 -0
  892. package/icons/azure/virtual-visits-builder.js +75 -0
  893. package/icons/azure/virtual-wan-hub.js +55 -0
  894. package/icons/azure/virtual-wans.js +60 -0
  895. package/icons/azure/vm-app-definitions.js +66 -0
  896. package/icons/azure/vm-app-versions.js +58 -0
  897. package/icons/azure/vm-image-version.js +59 -0
  898. package/icons/azure/vm-images-classic.js +38 -0
  899. package/icons/azure/vm-scale-sets.js +38 -0
  900. package/icons/azure/wac-installer.js +104 -0
  901. package/icons/azure/wac.js +56 -0
  902. package/icons/azure/web-app-database.js +160 -0
  903. package/icons/azure/web-application-firewall-policies-waf.js +91 -0
  904. package/icons/azure/web-jobs.js +119 -0
  905. package/icons/azure/web-slots.js +30 -0
  906. package/icons/azure/web-test.js +105 -0
  907. package/icons/azure/website-power.js +62 -0
  908. package/icons/azure/website-staging.js +24 -0
  909. package/icons/azure/windows-notification-services.js +67 -0
  910. package/icons/azure/windows10-core-services.js +50 -0
  911. package/icons/azure/workbooks.js +38 -0
  912. package/icons/azure/worker-container-app.js +69 -0
  913. package/icons/azure/workflow.js +36 -0
  914. package/icons/azure/workspace-gateway.js +64 -0
  915. package/icons/azure/workspaces.js +23 -0
  916. package/icons/gcp/access-context-manager.js +7 -7
  917. package/icons/gcp/administration.js +14 -14
  918. package/icons/gcp/advanced-agent-modeling.js +9 -9
  919. package/icons/gcp/advanced-solutions-lab.js +32 -32
  920. package/icons/gcp/agent-assist.js +4 -4
  921. package/icons/gcp/ai-hub.js +13 -13
  922. package/icons/gcp/ai-platform-unified.js +11 -11
  923. package/icons/gcp/ai-platform.js +6 -6
  924. package/icons/gcp/analytics-hub.js +7 -7
  925. package/icons/gcp/anthos-config-management.js +7 -7
  926. package/icons/gcp/anthos-service-mesh.js +4 -4
  927. package/icons/gcp/anthos.js +8 -8
  928. package/icons/gcp/api-analytics.js +10 -10
  929. package/icons/gcp/api-monetization.js +13 -13
  930. package/icons/gcp/api.js +9 -9
  931. package/icons/gcp/apigee-api-platform.js +9 -9
  932. package/icons/gcp/apigee-sense.js +7 -7
  933. package/icons/gcp/app-engine.js +10 -10
  934. package/icons/gcp/artifact-registry.js +19 -19
  935. package/icons/gcp/asset-inventory.js +9 -9
  936. package/icons/gcp/assured-workloads.js +11 -11
  937. package/icons/gcp/auto-ml-natural-language.js +6 -6
  938. package/icons/gcp/auto-ml-tables.js +9 -9
  939. package/icons/gcp/auto-ml-translation.js +9 -9
  940. package/icons/gcp/auto-ml-video-intelligence.js +9 -9
  941. package/icons/gcp/auto-ml-vision.js +8 -8
  942. package/icons/gcp/auto-ml.js +10 -10
  943. package/icons/gcp/bare-metal-solutions.js +7 -7
  944. package/icons/gcp/batch.js +4 -4
  945. package/icons/gcp/beyondcorp.js +4 -4
  946. package/icons/gcp/big-query.js +11 -11
  947. package/icons/gcp/bigtable.js +22 -22
  948. package/icons/gcp/billing.js +14 -14
  949. package/icons/gcp/binary-authorization.js +7 -7
  950. package/icons/gcp/catalog.js +10 -10
  951. package/icons/gcp/certificate-authority-service.js +8 -8
  952. package/icons/gcp/certificate-manager.js +7 -7
  953. package/icons/gcp/cloud-api-gateway.js +4 -4
  954. package/icons/gcp/cloud-apis.js +14 -14
  955. package/icons/gcp/cloud-armor.js +11 -11
  956. package/icons/gcp/cloud-asset-inventory.js +7 -7
  957. package/icons/gcp/cloud-audit-logs.js +14 -14
  958. package/icons/gcp/cloud-build.js +9 -9
  959. package/icons/gcp/cloud-cdn.js +18 -18
  960. package/icons/gcp/cloud-code.js +12 -12
  961. package/icons/gcp/cloud-composer.js +9 -9
  962. package/icons/gcp/cloud-data-fusion.js +11 -11
  963. package/icons/gcp/cloud-deploy.js +7 -7
  964. package/icons/gcp/cloud-deployment-manager.js +14 -14
  965. package/icons/gcp/cloud-dns.js +16 -16
  966. package/icons/gcp/cloud-domains.js +9 -9
  967. package/icons/gcp/cloud-ekm.js +4 -4
  968. package/icons/gcp/cloud-endpoints.js +13 -13
  969. package/icons/gcp/cloud-external-ip-addresses.js +6 -6
  970. package/icons/gcp/cloud-firewall-rules.js +6 -6
  971. package/icons/gcp/cloud-for-marketing.js +4 -4
  972. package/icons/gcp/cloud-functions.js +19 -19
  973. package/icons/gcp/cloud-generic.js +4 -4
  974. package/icons/gcp/cloud-gpu.js +8 -8
  975. package/icons/gcp/cloud-healthcare-api.js +15 -15
  976. package/icons/gcp/cloud-healthcare-marketplace.js +7 -7
  977. package/icons/gcp/cloud-hsm.js +10 -10
  978. package/icons/gcp/cloud-ids.js +9 -9
  979. package/icons/gcp/cloud-inference-api.js +12 -12
  980. package/icons/gcp/cloud-interconnect.js +11 -11
  981. package/icons/gcp/cloud-jobs-api.js +12 -12
  982. package/icons/gcp/cloud-load-balancing.js +16 -16
  983. package/icons/gcp/cloud-logging.js +14 -14
  984. package/icons/gcp/cloud-media-edge.js +20 -20
  985. package/icons/gcp/cloud-monitoring.js +10 -10
  986. package/icons/gcp/cloud-nat.js +9 -9
  987. package/icons/gcp/cloud-natural-language-api.js +13 -13
  988. package/icons/gcp/cloud-network.js +13 -13
  989. package/icons/gcp/cloud-ops.js +12 -12
  990. package/icons/gcp/cloud-optimization-ai-fleet-routing-api.js +7 -7
  991. package/icons/gcp/cloud-optimization-ai.js +7 -7
  992. package/icons/gcp/cloud-router.js +4 -4
  993. package/icons/gcp/cloud-routes.js +8 -8
  994. package/icons/gcp/cloud-run-for-anthos.js +6 -6
  995. package/icons/gcp/cloud-run.js +9 -9
  996. package/icons/gcp/cloud-scheduler.js +13 -13
  997. package/icons/gcp/cloud-security-scanner.js +12 -12
  998. package/icons/gcp/cloud-shell.js +7 -7
  999. package/icons/gcp/cloud-spanner.js +11 -11
  1000. package/icons/gcp/cloud-sql.js +12 -12
  1001. package/icons/gcp/cloud-storage.js +18 -18
  1002. package/icons/gcp/cloud-tasks.js +21 -21
  1003. package/icons/gcp/cloud-test-lab.js +11 -11
  1004. package/icons/gcp/cloud-tpu.js +22 -22
  1005. package/icons/gcp/cloud-translation-api.js +6 -6
  1006. package/icons/gcp/cloud-vision-api.js +12 -12
  1007. package/icons/gcp/cloud-vpn.js +13 -13
  1008. package/icons/gcp/compute-engine.js +13 -13
  1009. package/icons/gcp/configuration-management.js +7 -7
  1010. package/icons/gcp/connectivity-test.js +4 -4
  1011. package/icons/gcp/connectors.js +10 -10
  1012. package/icons/gcp/contact-center-ai.js +4 -4
  1013. package/icons/gcp/container-optimized-os.js +4 -4
  1014. package/icons/gcp/container-registry.js +23 -23
  1015. package/icons/gcp/data-catalog.js +9 -9
  1016. package/icons/gcp/data-labeling.js +15 -15
  1017. package/icons/gcp/data-layers.js +8 -8
  1018. package/icons/gcp/data-loss-prevention-api.js +14 -14
  1019. package/icons/gcp/data-qn-a.js +9 -9
  1020. package/icons/gcp/data-studio.js +12 -12
  1021. package/icons/gcp/data-transfer.js +8 -8
  1022. package/icons/gcp/database-migration-service.js +7 -7
  1023. package/icons/gcp/dataflow.js +16 -16
  1024. package/icons/gcp/datalab.js +4 -4
  1025. package/icons/gcp/dataplex.js +6 -6
  1026. package/icons/gcp/datapol.js +17 -17
  1027. package/icons/gcp/dataprep.js +9 -9
  1028. package/icons/gcp/dataproc-metastore.js +4 -4
  1029. package/icons/gcp/dataproc.js +15 -15
  1030. package/icons/gcp/datashare.js +9 -9
  1031. package/icons/gcp/datastore.js +35 -35
  1032. package/icons/gcp/datastream.js +13 -13
  1033. package/icons/gcp/debugger.js +11 -11
  1034. package/icons/gcp/developer-portal.js +8 -8
  1035. package/icons/gcp/dialogflow-cx.js +7 -7
  1036. package/icons/gcp/dialogflow-insights.js +11 -11
  1037. package/icons/gcp/dialogflow.js +6 -6
  1038. package/icons/gcp/document-ai.js +11 -11
  1039. package/icons/gcp/early-access-center.js +4 -4
  1040. package/icons/gcp/error-reporting.js +10 -10
  1041. package/icons/gcp/eventarc.js +8 -8
  1042. package/icons/gcp/filestore.js +10 -10
  1043. package/icons/gcp/financial-services-marketplace.js +12 -12
  1044. package/icons/gcp/firestore.js +10 -10
  1045. package/icons/gcp/fleet-engine.js +7 -7
  1046. package/icons/gcp/free-trial.js +12 -12
  1047. package/icons/gcp/game-servers.js +17 -17
  1048. package/icons/gcp/gce-systems-management.js +4 -4
  1049. package/icons/gcp/genomics.js +19 -19
  1050. package/icons/gcp/gke-on-prem.js +9 -9
  1051. package/icons/gcp/google-cloud-marketplace.js +11 -11
  1052. package/icons/gcp/google-kubernetes-engine.js +13 -13
  1053. package/icons/gcp/google-maps-platform.js +9 -9
  1054. package/icons/gcp/healthcare-nlp-api.js +4 -4
  1055. package/icons/gcp/home.js +11 -11
  1056. package/icons/gcp/identity-and-access-management.js +6 -6
  1057. package/icons/gcp/identity-aware-proxy.js +10 -10
  1058. package/icons/gcp/identity-platform.js +10 -10
  1059. package/icons/gcp/iot-core.js +6 -6
  1060. package/icons/gcp/iot-edge.js +38 -38
  1061. package/icons/gcp/key-access-justifications.js +14 -14
  1062. package/icons/gcp/key-management-service.js +6 -6
  1063. package/icons/gcp/kuberun.js +8 -8
  1064. package/icons/gcp/launcher.js +15 -15
  1065. package/icons/gcp/local-ssd.js +4 -4
  1066. package/icons/gcp/looker.js +9 -9
  1067. package/icons/gcp/managed-service-for-microsoft-active-directory.js +12 -12
  1068. package/icons/gcp/media-translation-api.js +7 -7
  1069. package/icons/gcp/memorystore.js +10 -10
  1070. package/icons/gcp/migrate-for-anthos.js +4 -4
  1071. package/icons/gcp/migrate-for-compute-engine.js +4 -4
  1072. package/icons/gcp/my-cloud.js +9 -9
  1073. package/icons/gcp/network-connectivity-center.js +26 -26
  1074. package/icons/gcp/network-intelligence-center.js +4 -4
  1075. package/icons/gcp/network-security.js +10 -10
  1076. package/icons/gcp/network-tiers.js +13 -13
  1077. package/icons/gcp/network-topology.js +4 -4
  1078. package/icons/gcp/onboarding.js +12 -12
  1079. package/icons/gcp/os-configuration-management.js +4 -4
  1080. package/icons/gcp/os-inventory-management.js +6 -6
  1081. package/icons/gcp/os-patch-management.js +4 -4
  1082. package/icons/gcp/partner-interconnect.js +11 -11
  1083. package/icons/gcp/partner-portal.js +8 -8
  1084. package/icons/gcp/performance-dashboard.js +4 -4
  1085. package/icons/gcp/permissions.js +9 -9
  1086. package/icons/gcp/persistent-disk.js +7 -7
  1087. package/icons/gcp/phishing-protection.js +13 -13
  1088. package/icons/gcp/policy-analyzer.js +4 -4
  1089. package/icons/gcp/premium-network-tier.js +9 -9
  1090. package/icons/gcp/private-connectivity.js +9 -9
  1091. package/icons/gcp/private-service-connect.js +12 -12
  1092. package/icons/gcp/producer-portal.js +9 -9
  1093. package/icons/gcp/profiler.js +11 -11
  1094. package/icons/gcp/project.js +15 -15
  1095. package/icons/gcp/pub-sub.js +22 -22
  1096. package/icons/gcp/quantum-engine.js +10 -10
  1097. package/icons/gcp/quotas.js +15 -15
  1098. package/icons/gcp/real-world-insights.js +9 -9
  1099. package/icons/gcp/recommendations-ai.js +19 -19
  1100. package/icons/gcp/release-notes.js +4 -4
  1101. package/icons/gcp/retail-api.js +7 -7
  1102. package/icons/gcp/risk-manager.js +4 -4
  1103. package/icons/gcp/runtime-config.js +15 -15
  1104. package/icons/gcp/secret-manager.js +4 -4
  1105. package/icons/gcp/security-command-center.js +8 -8
  1106. package/icons/gcp/security-health-advisor.js +14 -14
  1107. package/icons/gcp/security-key-enforcement.js +6 -6
  1108. package/icons/gcp/security.js +8 -8
  1109. package/icons/gcp/service-discovery.js +16 -16
  1110. package/icons/gcp/speech-to-text.js +17 -17
  1111. package/icons/gcp/stackdriver.js +7 -7
  1112. package/icons/gcp/standard-network-tier.js +4 -4
  1113. package/icons/gcp/stream-suite.js +7 -7
  1114. package/icons/gcp/support.js +9 -9
  1115. package/icons/gcp/tensorflow-enterprise.js +4 -4
  1116. package/icons/gcp/text-to-speech.js +8 -8
  1117. package/icons/gcp/tools-for-powershell.js +13 -13
  1118. package/icons/gcp/trace.js +12 -12
  1119. package/icons/gcp/traffic-director.js +14 -14
  1120. package/icons/gcp/transfer-appliance.js +10 -10
  1121. package/icons/gcp/transfer.js +4 -4
  1122. package/icons/gcp/user-preferences.js +9 -9
  1123. package/icons/gcp/vertex-ai.js +27 -27
  1124. package/icons/gcp/video-intelligence-api.js +6 -6
  1125. package/icons/gcp/virtual-private-cloud.js +15 -15
  1126. package/icons/gcp/visual-inspection.js +7 -7
  1127. package/icons/gcp/vmware-engine.js +4 -4
  1128. package/icons/gcp/web-risk.js +14 -14
  1129. package/icons/gcp/web-security-scanner.js +11 -11
  1130. package/icons/gcp/workflows.js +15 -15
  1131. package/icons/gcp/workload-identity-pool.js +8 -8
  1132. package/icons/tech/aarch64.js +10 -10
  1133. package/icons/tech/adobe-illustrator.js +4 -4
  1134. package/icons/tech/adobe-photoshop.js +4 -4
  1135. package/icons/tech/adobe-premiere-pro.js +7 -7
  1136. package/icons/tech/adobe-xd.js +4 -4
  1137. package/icons/tech/adonis-js.js +4 -4
  1138. package/icons/tech/after-effects.js +7 -7
  1139. package/icons/tech/airflow.js +13 -13
  1140. package/icons/tech/akka.js +6 -6
  1141. package/icons/tech/algolia.js +4 -4
  1142. package/icons/tech/alpine-js.js +6 -6
  1143. package/icons/tech/amazon-web-services.js +6 -6
  1144. package/icons/tech/anaconda.js +4 -4
  1145. package/icons/tech/android-studio.js +11 -11
  1146. package/icons/tech/android.js +8 -8
  1147. package/icons/tech/angular-js.js +9 -9
  1148. package/icons/tech/angular.js +7 -7
  1149. package/icons/tech/ansible.js +6 -6
  1150. package/icons/tech/ant-design.js +24 -24
  1151. package/icons/tech/apache.js +74 -74
  1152. package/icons/tech/apl.js +6 -6
  1153. package/icons/tech/appcelerator.js +4 -4
  1154. package/icons/tech/apple-safari.js +13 -13
  1155. package/icons/tech/apple.js +4 -4
  1156. package/icons/tech/appwrite.js +6 -6
  1157. package/icons/tech/arch-linux.js +6 -6
  1158. package/icons/tech/arduino.js +6 -6
  1159. package/icons/tech/argo-cd.js +34 -34
  1160. package/icons/tech/astro.js +14 -14
  1161. package/icons/tech/atom.js +4 -4
  1162. package/icons/tech/autodesk-maya.js +44 -44
  1163. package/icons/tech/autodesk-shot-grid.js +6 -6
  1164. package/icons/tech/awk.js +18 -18
  1165. package/icons/tech/azios.js +4 -4
  1166. package/icons/tech/azure-devops.js +11 -11
  1167. package/icons/tech/azure-sql-database.js +22 -22
  1168. package/icons/tech/azure.js +21 -21
  1169. package/icons/tech/babel.js +6 -6
  1170. package/icons/tech/backbone-js.js +7 -7
  1171. package/icons/tech/ballerina.js +4 -4
  1172. package/icons/tech/bamboo.js +14 -14
  1173. package/icons/tech/bash.js +7 -7
  1174. package/icons/tech/behance.js +9 -9
  1175. package/icons/tech/bitbucket.js +9 -9
  1176. package/icons/tech/blender.js +6 -6
  1177. package/icons/tech/bootstrap.js +21 -21
  1178. package/icons/tech/bower.js +18 -18
  1179. package/icons/tech/browserstack.js +14 -14
  1180. package/icons/tech/bulma.js +4 -4
  1181. package/icons/tech/bun.js +17 -17
  1182. package/icons/tech/c.js +7 -7
  1183. package/icons/tech/cairo-graphics.js +6 -6
  1184. package/icons/tech/cake-php.js +4 -4
  1185. package/icons/tech/canva.js +6 -6
  1186. package/icons/tech/capacitor.js +10 -10
  1187. package/icons/tech/cassandra.js +17 -17
  1188. package/icons/tech/cent-os.js +13 -13
  1189. package/icons/tech/chrome.js +38 -38
  1190. package/icons/tech/circle-ci.js +4 -4
  1191. package/icons/tech/clarity.js +8 -8
  1192. package/icons/tech/clion.js +30 -30
  1193. package/icons/tech/clojure-script.js +8 -8
  1194. package/icons/tech/clojure.js +9 -9
  1195. package/icons/tech/cloudflare-workers.js +37 -37
  1196. package/icons/tech/cloudflare.js +7 -7
  1197. package/icons/tech/cmake.js +8 -8
  1198. package/icons/tech/code-igniter.js +4 -4
  1199. package/icons/tech/code-pen.js +4 -4
  1200. package/icons/tech/codeac.js +4 -4
  1201. package/icons/tech/codecov.js +4 -4
  1202. package/icons/tech/coffee-script.js +4 -4
  1203. package/icons/tech/composer.js +35 -35
  1204. package/icons/tech/confluence.js +15 -15
  1205. package/icons/tech/consul.js +4 -4
  1206. package/icons/tech/contao.js +4 -4
  1207. package/icons/tech/corejs.js +4 -4
  1208. package/icons/tech/cosmosdb.js +9 -9
  1209. package/icons/tech/couchdb.js +4 -4
  1210. package/icons/tech/cplusplus.js +8 -8
  1211. package/icons/tech/crystal.js +4 -4
  1212. package/icons/tech/csharp.js +7 -7
  1213. package/icons/tech/css3.js +10 -10
  1214. package/icons/tech/cucumber.js +4 -4
  1215. package/icons/tech/cypress.js +6 -6
  1216. package/icons/tech/d3js.js +28 -28
  1217. package/icons/tech/dart.js +9 -9
  1218. package/icons/tech/data-grip.js +34 -34
  1219. package/icons/tech/data-spell.js +27 -27
  1220. package/icons/tech/dbeaver.js +11 -11
  1221. package/icons/tech/debian.js +4 -4
  1222. package/icons/tech/deno.js +4 -4
  1223. package/icons/tech/devicon.js +10 -10
  1224. package/icons/tech/digital-ocean.js +6 -6
  1225. package/icons/tech/discord-js.js +11 -11
  1226. package/icons/tech/django-rest.js +8 -8
  1227. package/icons/tech/django.js +6 -6
  1228. package/icons/tech/docker.js +20 -20
  1229. package/icons/tech/doctrine.js +6 -6
  1230. package/icons/tech/dropwizard.js +22 -22
  1231. package/icons/tech/drupal.js +11 -11
  1232. package/icons/tech/eclipse-ceylon.js +10 -10
  1233. package/icons/tech/eclipse-ide.js +20 -20
  1234. package/icons/tech/eclipse-vert-x.js +6 -6
  1235. package/icons/tech/elasticbeats.js +7 -7
  1236. package/icons/tech/elasticsearch.js +7 -7
  1237. package/icons/tech/electron.js +8 -8
  1238. package/icons/tech/eleventy-11ty.js +6 -6
  1239. package/icons/tech/elixir.js +35 -35
  1240. package/icons/tech/elm.js +10 -10
  1241. package/icons/tech/embedded-c.js +30 -30
  1242. package/icons/tech/ember-js.js +6 -6
  1243. package/icons/tech/envoy.js +7 -7
  1244. package/icons/tech/erlang.js +4 -4
  1245. package/icons/tech/eslint.js +6 -6
  1246. package/icons/tech/express.js +4 -4
  1247. package/icons/tech/facebook.js +6 -6
  1248. package/icons/tech/fast-api.js +4 -4
  1249. package/icons/tech/fastify.js +6 -6
  1250. package/icons/tech/fauna.js +4 -4
  1251. package/icons/tech/feathers.js +4 -4
  1252. package/icons/tech/fedora.js +10 -10
  1253. package/icons/tech/figma.js +9 -9
  1254. package/icons/tech/file-zilla.js +8 -8
  1255. package/icons/tech/firebase.js +4 -4
  1256. package/icons/tech/firefox.js +335 -335
  1257. package/icons/tech/flask.js +4 -4
  1258. package/icons/tech/flutter.js +12 -12
  1259. package/icons/tech/fortran.js +4 -4
  1260. package/icons/tech/foundation.js +37 -37
  1261. package/icons/tech/fsharp.js +7 -7
  1262. package/icons/tech/gatling.js +4 -4
  1263. package/icons/tech/gatsby.js +4 -4
  1264. package/icons/tech/gazebo.js +8 -8
  1265. package/icons/tech/gcc.js +11 -11
  1266. package/icons/tech/gentoo.js +4 -4
  1267. package/icons/tech/ghost.js +6 -6
  1268. package/icons/tech/gimp.js +68 -68
  1269. package/icons/tech/git.js +4 -4
  1270. package/icons/tech/gitbook.js +4 -4
  1271. package/icons/tech/github-actions.js +6 -6
  1272. package/icons/tech/github-codespaces.js +18 -18
  1273. package/icons/tech/github.js +6 -6
  1274. package/icons/tech/gitlab.js +8 -8
  1275. package/icons/tech/gitpod.js +8 -8
  1276. package/icons/tech/gitter.js +4 -4
  1277. package/icons/tech/gnu-emacs.js +4 -4
  1278. package/icons/tech/go-land.js +33 -33
  1279. package/icons/tech/go.js +39 -39
  1280. package/icons/tech/godot-engine.js +11 -11
  1281. package/icons/tech/google-cloud.js +8 -8
  1282. package/icons/tech/google.js +9 -9
  1283. package/icons/tech/gradle.js +4 -4
  1284. package/icons/tech/grafana.js +8 -8
  1285. package/icons/tech/grails.js +6 -6
  1286. package/icons/tech/graphql.js +12 -12
  1287. package/icons/tech/groovy.js +102 -102
  1288. package/icons/tech/grunt-js.js +33 -33
  1289. package/icons/tech/gulp-js.js +4 -4
  1290. package/icons/tech/hadoop.js +9 -9
  1291. package/icons/tech/handlebars.js +6 -6
  1292. package/icons/tech/hardhat.js +26 -26
  1293. package/icons/tech/harvester.js +7 -7
  1294. package/icons/tech/hashicorp-vault.js +4 -4
  1295. package/icons/tech/haskell.js +7 -7
  1296. package/icons/tech/haxe.js +14 -14
  1297. package/icons/tech/helm.js +4 -4
  1298. package/icons/tech/heroku.js +4 -4
  1299. package/icons/tech/hibernate.js +6 -6
  1300. package/icons/tech/homebrew.js +9 -9
  1301. package/icons/tech/html5.js +8 -8
  1302. package/icons/tech/hugo.js +7 -7
  1303. package/icons/tech/ibm-spss-statistics.js +6 -6
  1304. package/icons/tech/ie10.js +4 -4
  1305. package/icons/tech/ifttt.js +4 -4
  1306. package/icons/tech/influxdb.js +4 -4
  1307. package/icons/tech/inkscape.js +115 -115
  1308. package/icons/tech/insomnia.js +10 -10
  1309. package/icons/tech/intellij-idea.js +37 -37
  1310. package/icons/tech/ionic.js +6 -6
  1311. package/icons/tech/jaeger.js +21 -21
  1312. package/icons/tech/jamstack.js +4 -4
  1313. package/icons/tech/jasmine.js +7 -7
  1314. package/icons/tech/java.js +9 -9
  1315. package/icons/tech/javascript.js +6 -6
  1316. package/icons/tech/jeet.js +32 -32
  1317. package/icons/tech/jekyll.js +43 -43
  1318. package/icons/tech/jenkins.js +21 -21
  1319. package/icons/tech/jest.js +4 -4
  1320. package/icons/tech/jetbrains.js +26 -26
  1321. package/icons/tech/jira-align.js +15 -15
  1322. package/icons/tech/jira.js +14 -14
  1323. package/icons/tech/jquery.js +4 -4
  1324. package/icons/tech/json.js +12 -12
  1325. package/icons/tech/jule.js +4 -4
  1326. package/icons/tech/julia.js +10 -10
  1327. package/icons/tech/junit.js +6 -6
  1328. package/icons/tech/jupyter.js +8 -8
  1329. package/icons/tech/k3os.js +4 -4
  1330. package/icons/tech/k3s.js +4 -4
  1331. package/icons/tech/kafka.js +4 -4
  1332. package/icons/tech/kaggle.js +4 -4
  1333. package/icons/tech/karate.js +6 -6
  1334. package/icons/tech/karma.js +6 -6
  1335. package/icons/tech/keras.js +6 -6
  1336. package/icons/tech/kibana.js +7 -7
  1337. package/icons/tech/knex-js.js +4 -4
  1338. package/icons/tech/knockout.js +4 -4
  1339. package/icons/tech/kotlin.js +9 -9
  1340. package/icons/tech/krakenjs.js +4 -4
  1341. package/icons/tech/ktor.js +18 -18
  1342. package/icons/tech/kubernetes.js +7 -7
  1343. package/icons/tech/labview.js +7 -7
  1344. package/icons/tech/laravel.js +4 -4
  1345. package/icons/tech/latex.js +9 -9
  1346. package/icons/tech/less-js.js +4 -4
  1347. package/icons/tech/linkedin.js +6 -6
  1348. package/icons/tech/linux.js +803 -803
  1349. package/icons/tech/liquibase.js +4 -4
  1350. package/icons/tech/livewire.js +12 -12
  1351. package/icons/tech/llvm.js +9 -9
  1352. package/icons/tech/logstash.js +7 -7
  1353. package/icons/tech/lua.js +7 -7
  1354. package/icons/tech/lumen.js +4 -4
  1355. package/icons/tech/magento.js +4 -4
  1356. package/icons/tech/markdown.js +6 -6
  1357. package/icons/tech/material-ui.js +8 -8
  1358. package/icons/tech/materialize.js +6 -6
  1359. package/icons/tech/matlab.js +25 -25
  1360. package/icons/tech/matplotlib.js +26 -26
  1361. package/icons/tech/maven.js +141 -141
  1362. package/icons/tech/meteor-js.js +4 -4
  1363. package/icons/tech/microsoft-sql-server.js +4 -4
  1364. package/icons/tech/minitab.js +11 -11
  1365. package/icons/tech/mob-x.js +9 -9
  1366. package/icons/tech/mocha.js +6 -6
  1367. package/icons/tech/modx.js +8 -8
  1368. package/icons/tech/moleculer.js +4 -4
  1369. package/icons/tech/mongodb.js +20 -20
  1370. package/icons/tech/mongoose-js.js +6 -6
  1371. package/icons/tech/moodle.js +41 -41
  1372. package/icons/tech/ms-dos.js +15 -15
  1373. package/icons/tech/mysql.js +4 -4
  1374. package/icons/tech/nano.js +4 -4
  1375. package/icons/tech/nerog.js +27 -27
  1376. package/icons/tech/nestjs.js +4 -4
  1377. package/icons/tech/net-core.js +6 -6
  1378. package/icons/tech/net.js +120 -120
  1379. package/icons/tech/network-x.js +13 -13
  1380. package/icons/tech/new4j.js +6 -6
  1381. package/icons/tech/nextjs.js +4 -4
  1382. package/icons/tech/nginx.js +4 -4
  1383. package/icons/tech/nhibernate.js +6 -6
  1384. package/icons/tech/nim.js +6 -6
  1385. package/icons/tech/nimble.js +11 -11
  1386. package/icons/tech/nix.js +6 -6
  1387. package/icons/tech/nodejs.js +4 -4
  1388. package/icons/tech/nodemon.js +6 -6
  1389. package/icons/tech/nodewebkit.js +9 -9
  1390. package/icons/tech/npm.js +4 -4
  1391. package/icons/tech/nuget.js +4 -4
  1392. package/icons/tech/num-py.js +6 -6
  1393. package/icons/tech/nuxt-js.js +7 -7
  1394. package/icons/tech/objective-c.js +6 -6
  1395. package/icons/tech/ocaml.js +22 -22
  1396. package/icons/tech/oh-my-zsh.js +8 -8
  1397. package/icons/tech/okta.js +6 -6
  1398. package/icons/tech/open-al.js +6 -6
  1399. package/icons/tech/open-api.js +16 -16
  1400. package/icons/tech/open-cl.js +9 -9
  1401. package/icons/tech/open-cv.js +7 -7
  1402. package/icons/tech/open-gl.js +8 -8
  1403. package/icons/tech/open-stack.js +4 -4
  1404. package/icons/tech/open-suse.js +6 -6
  1405. package/icons/tech/open-telemetry.js +6 -6
  1406. package/icons/tech/opera.js +14 -14
  1407. package/icons/tech/oracle.js +4 -4
  1408. package/icons/tech/p5js.js +4 -4
  1409. package/icons/tech/packer.js +6 -6
  1410. package/icons/tech/pandas.js +9 -9
  1411. package/icons/tech/perl.js +6 -6
  1412. package/icons/tech/pf-sense.js +4 -4
  1413. package/icons/tech/phalcon.js +29 -29
  1414. package/icons/tech/phoenix-framework.js +4 -4
  1415. package/icons/tech/photon-engine.js +12 -12
  1416. package/icons/tech/php-storm.js +31 -31
  1417. package/icons/tech/php.js +17 -17
  1418. package/icons/tech/playwrite.js +11 -11
  1419. package/icons/tech/ploty.js +7 -7
  1420. package/icons/tech/podman.js +27 -27
  1421. package/icons/tech/polygon.js +6 -6
  1422. package/icons/tech/portainer.js +9 -9
  1423. package/icons/tech/postcss.js +7 -7
  1424. package/icons/tech/postgresql.js +8 -8
  1425. package/icons/tech/postman.js +7 -7
  1426. package/icons/tech/powershell.js +17 -17
  1427. package/icons/tech/processing.js +98 -98
  1428. package/icons/tech/prometheus.js +4 -4
  1429. package/icons/tech/protractor.js +4 -4
  1430. package/icons/tech/purescript.js +4 -4
  1431. package/icons/tech/putty.js +47 -47
  1432. package/icons/tech/pycharm.js +55 -55
  1433. package/icons/tech/pyscript.js +6 -6
  1434. package/icons/tech/pytest.js +12 -12
  1435. package/icons/tech/python-poetry.js +37 -37
  1436. package/icons/tech/python.js +16 -16
  1437. package/icons/tech/pytorch.js +6 -6
  1438. package/icons/tech/qodana.js +22 -22
  1439. package/icons/tech/qt.js +4 -4
  1440. package/icons/tech/quarkus.js +14 -14
  1441. package/icons/tech/quasar.js +6 -6
  1442. package/icons/tech/qwik.js +7 -7
  1443. package/icons/tech/r.js +13 -13
  1444. package/icons/tech/rabbitmq.js +4 -4
  1445. package/icons/tech/rancher.js +4 -4
  1446. package/icons/tech/raspberrypi.js +7 -7
  1447. package/icons/tech/reach.js +6 -6
  1448. package/icons/tech/react-bootstrap.js +4 -4
  1449. package/icons/tech/react.js +6 -6
  1450. package/icons/tech/realm.js +12 -12
  1451. package/icons/tech/red-cube-s-epic-compiler-thingy-programming-re-ct.js +8 -8
  1452. package/icons/tech/redhat.js +7 -7
  1453. package/icons/tech/redis.js +14 -14
  1454. package/icons/tech/redux.js +4 -4
  1455. package/icons/tech/ren-py.js +164 -164
  1456. package/icons/tech/rider.js +20 -20
  1457. package/icons/tech/robot-operating-system-ros.js +4 -4
  1458. package/icons/tech/rocksdb.js +6 -6
  1459. package/icons/tech/rollup-js.js +37 -37
  1460. package/icons/tech/rspec.js +8 -8
  1461. package/icons/tech/rstudio.js +7 -7
  1462. package/icons/tech/ruby-mine.js +28 -28
  1463. package/icons/tech/ruby-on-rails.js +4 -4
  1464. package/icons/tech/ruby.js +120 -120
  1465. package/icons/tech/rust.js +4 -4
  1466. package/icons/tech/salesforce.js +7 -7
  1467. package/icons/tech/sanity.js +7 -7
  1468. package/icons/tech/sass.js +4 -4
  1469. package/icons/tech/scala.js +6 -6
  1470. package/icons/tech/scalingo.js +6 -6
  1471. package/icons/tech/sdl.js +11 -11
  1472. package/icons/tech/selenium.js +6 -6
  1473. package/icons/tech/sema-software.js +4 -4
  1474. package/icons/tech/sequelize.js +31 -31
  1475. package/icons/tech/shopware.js +6 -6
  1476. package/icons/tech/sketch.js +11 -11
  1477. package/icons/tech/slack.js +8 -8
  1478. package/icons/tech/socket-io.js +6 -6
  1479. package/icons/tech/solid-js.js +27 -27
  1480. package/icons/tech/solidity.js +10 -10
  1481. package/icons/tech/sonarqube.js +4 -4
  1482. package/icons/tech/sourcetree.js +4 -4
  1483. package/icons/tech/spark.js +4 -4
  1484. package/icons/tech/splunk.js +4 -4
  1485. package/icons/tech/spring.js +4 -4
  1486. package/icons/tech/sql-developer.js +10 -10
  1487. package/icons/tech/sqlalchemy.js +6 -6
  1488. package/icons/tech/sqlite.js +11 -11
  1489. package/icons/tech/ssh.js +4 -4
  1490. package/icons/tech/stackoverflow.js +6 -6
  1491. package/icons/tech/stata.js +4 -4
  1492. package/icons/tech/storybook.js +4 -4
  1493. package/icons/tech/streamlit.js +7 -7
  1494. package/icons/tech/stylus.js +6 -6
  1495. package/icons/tech/subversion.js +4 -4
  1496. package/icons/tech/svelte.js +6 -6
  1497. package/icons/tech/swagger.js +6 -6
  1498. package/icons/tech/swift.js +6 -6
  1499. package/icons/tech/symfony.js +4 -4
  1500. package/icons/tech/tailwind-css.js +4 -4
  1501. package/icons/tech/tauri.js +8 -8
  1502. package/icons/tech/tensorflow.js +4 -4
  1503. package/icons/tech/terraform.js +7 -7
  1504. package/icons/tech/tex.js +4 -4
  1505. package/icons/tech/the-algorithms.js +4 -4
  1506. package/icons/tech/three-js.js +8 -8
  1507. package/icons/tech/titanium-sdk.js +4 -4
  1508. package/icons/tech/tomcat.js +11 -11
  1509. package/icons/tech/tortoise-git.js +9 -9
  1510. package/icons/tech/tower.js +139 -139
  1511. package/icons/tech/traefik-mesh.js +4 -4
  1512. package/icons/tech/traefik-proxy.js +4 -4
  1513. package/icons/tech/travis-ci.js +4 -4
  1514. package/icons/tech/trello.js +4 -4
  1515. package/icons/tech/twitter.js +4 -4
  1516. package/icons/tech/typescript.js +6 -6
  1517. package/icons/tech/typo3.js +4 -4
  1518. package/icons/tech/ubuntu.js +4 -4
  1519. package/icons/tech/uml.js +8 -8
  1520. package/icons/tech/unity.js +7 -7
  1521. package/icons/tech/unix.js +4 -4
  1522. package/icons/tech/unreal-engine.js +6 -6
  1523. package/icons/tech/uwsgi.js +11 -11
  1524. package/icons/tech/v8.js +33 -33
  1525. package/icons/tech/vagrant.js +6 -6
  1526. package/icons/tech/vala.js +18 -18
  1527. package/icons/tech/vercel.js +4 -4
  1528. package/icons/tech/veutify.js +8 -8
  1529. package/icons/tech/vim.js +37 -37
  1530. package/icons/tech/visualstudio.js +4 -4
  1531. package/icons/tech/vite.js +4 -4
  1532. package/icons/tech/vitejs.js +14 -14
  1533. package/icons/tech/vscode.js +31 -31
  1534. package/icons/tech/vsphere.js +9 -9
  1535. package/icons/tech/vue-storefront.js +7 -7
  1536. package/icons/tech/vue.js +7 -7
  1537. package/icons/tech/vyper.js +8 -8
  1538. package/icons/tech/webassembly.js +4 -4
  1539. package/icons/tech/webflow.js +4 -4
  1540. package/icons/tech/weblate.js +17 -17
  1541. package/icons/tech/webpack.js +6 -6
  1542. package/icons/tech/webstorm.js +19 -19
  1543. package/icons/tech/windows11.js +4 -4
  1544. package/icons/tech/windows8.js +4 -4
  1545. package/icons/tech/woo-commerce.js +7 -7
  1546. package/icons/tech/wordpress.js +11 -11
  1547. package/icons/tech/xamarin.js +4 -4
  1548. package/icons/tech/xcode.js +251 -251
  1549. package/icons/tech/xml.js +8 -8
  1550. package/icons/tech/yaml.js +7 -7
  1551. package/icons/tech/yarn.js +6 -6
  1552. package/icons/tech/yii-framework.js +8 -8
  1553. package/icons/tech/yuno-host.js +6 -6
  1554. package/icons/tech/zend-framework.js +4 -4
  1555. package/icons/tech/zig.js +13 -13
  1556. package/package.json +49 -49
  1557. package/react/index.d.ts +1413 -754
  1558. package/react/index.mjs +6310 -1453
  1559. package/react/style.css +1 -1
  1560. package/dist/shared/likec4.DKLo7EEm.mjs +0 -1221
@@ -1,44 +1,86 @@
1
1
  #!/usr/bin/env node
2
- import{l as Ke,m as Mu,n as Ju,o as qe,p as Wu,r as Ye,w as zu,y as Hu,z as Xe,A as Ze,D as Gu,E as a,G as Ku,_ as x,H as qu,I as Yu,J as R,K as Xu,M as Zu,O as Qu,P as Qe,S as eu,k as z,C as et,U as ut,V as le,q as uu,T as be,W as tu,X as tt,Z as nu,$ as iu,a0 as ru,a1 as nt}from"../shared/likec4.DKLo7EEm.mjs";import{DEV as it}from"esm-env";import{hrtime as rt,cwd as ou,argv as ot,stdout as at,exit as st}from"node:process";import Dt from"yargs";import{hideBin as ct}from"yargs/helpers";import{resolve as y,dirname as ne,join as ie,extname as pe,relative as Z,isAbsolute as au,basename as ke}from"node:path";import{existsSync as K,copyFileSync as su,rmSync as Du}from"node:fs";import{mkdtemp as fe,writeFile as Q,mkdir as H,stat as cu,copyFile as dt,rm as lt}from"node:fs/promises";import pt,{tmpdir as me}from"node:os";import{fileURLToPath as ft}from"node:url";import{build as re,createServer as mt,preview as Ct}from"vite";import{chromium as du}from"playwright";import gt from"node:net";import{setTimeout as Ft}from"node:timers/promises";import{resolve as oe}from"path";import Et from"@vitejs/plugin-react";import"tty";import"node:util";import"node:child_process";import"node:string_decoder";import"node:tty";import"child_process";import"fs";import"node:events";import"node:v8";import"node:stream";import"node:buffer";import"node:stream/promises";import"buffer";import"util";import"os";import"crypto";import"net";import"url";import"@hpcc-js/wasm-graphviz";const Ce={type:"string",desc:"<directory> with LikeC4 sources (default is current directory)",normalize:!0,default:".",coerce:y},V={alias:"use-dot-bin",boolean:!0,type:"boolean",desc:'use graphviz binaries ("dot" should be on PATH)',default:!1},lu={boolean:!0,type:"boolean",desc:'use hash history for navigation, e.g. "/#/view" instead of "/view"'},ge={alias:"o",type:"string",desc:"<directory> output directory",normalize:!0,coerce:y},Se={alias:"w",type:"string",desc:'prefix for Webcomponents, e.g "c4" generates <c4-view ../>',default:"likec4"},pu={alias:["base-url"],type:"string",desc:'base url the app is being served from, e.g. "/" or "/pages/"'},fu={boolean:!0,type:"boolean",desc:"overview all diagrams as graph [experimental]",default:!1};function At(e){var u,n;if(e){if("astNode"in e)return vt(e);if(Array.isArray(e))return e.reduce(mu,void 0);{const t=e,i=ht(t)?wt((n=(u=t?.root)===null||u===void 0?void 0:u.astNode)!==null&&n!==void 0?n:t?.astNode):void 0;return ee(t,i)}}else return}function ht(e){return typeof e<"u"&&"element"in e&&"text"in e}function wt(e){try{return Ke(e).uri.toString()}catch{return}}function vt(e){var u,n;const{astNode:t,property:i,index:r}=e??{},o=(u=t?.$cstNode)!==null&&u!==void 0?u:t?.$textRegion;if(!(t===void 0||o===void 0)){if(i===void 0)return ee(o,$e(t));{const c=D=>r!==void 0&&r>-1&&Array.isArray(t[i])?r<D.length?D[r]:void 0:D.reduce(mu,void 0);if(!((n=o.assignments)===null||n===void 0)&&n[i]){const D=c(o.assignments[i]);return D&&ee(D,$e(t))}else if(t.$cstNode){const D=c(Mu(t.$cstNode,i));return D&&ee(D,$e(t))}else return}}}function $e(e){var u,n,t,i;return e.$cstNode?(n=(u=Ke(e))===null||u===void 0?void 0:u.uri)===null||n===void 0?void 0:n.toString():e.$textRegion?e.$textRegion.documentURI||((i=(t=new Ju(e,r=>r.$container?[r.$container]:[]).find(r=>{var o;return(o=r.$textRegion)===null||o===void 0?void 0:o.documentURI}))===null||t===void 0?void 0:t.$textRegion)===null||i===void 0?void 0:i.documentURI):void 0}function ee(e,u){var n,t;const i={offset:e.offset,end:(n=e.end)!==null&&n!==void 0?n:e.offset+e.length,length:(t=e.length)!==null&&t!==void 0?t:e.end-e.offset};return e.range&&(i.range=e.range),u??(u=e.fileURI),u&&(i.fileURI=u),i}function mu(e,u){var n,t;if(e){if(!u)return e&&ee(e)}else return u&&ee(u);const i=(n=e.end)!==null&&n!==void 0?n:e.offset+e.length,r=(t=u.end)!==null&&t!==void 0?t:u.offset+u.length,o=Math.min(e.offset,u.offset),c=Math.max(i,r),D=c-o,l={offset:o,end:c,length:D};if(e.range&&u.range&&(l.range={start:u.range.start.line<e.range.start.line||u.range.start.line===e.range.start.line&&u.range.start.character<e.range.start.character?u.range.start:e.range.start,end:u.range.end.line>e.range.end.line||u.range.end.line===e.range.end.line&&u.range.end.character>e.range.end.character?u.range.end:e.range.end}),e.fileURI||u.fileURI){const d=e.fileURI,f=u.fileURI,p=d&&f&&d!==f?`<unmergable text regions of ${d}, ${f}>`:d??f;l.fileURI=p}return l}class Bt{constructor(u){this.defaultIndentation=" ",this.pendingIndent=!0,this.currentIndents=[],this.recentNonImmediateIndents=[],this.traceData=[],this.lines=[[]],this.length=0,typeof u=="string"?this.defaultIndentation=u:typeof u=="number"&&(this.defaultIndentation="".padStart(u))}get content(){return this.lines.map(u=>u.join("")).join("")}get contentLength(){return this.length}get currentLineNumber(){return this.lines.length-1}get currentLineContent(){return this.lines[this.currentLineNumber].join("")}get currentPosition(){return{offset:this.contentLength,line:this.currentLineNumber,character:this.currentLineContent.length}}append(u,n){if(u.length>0){const t=n&&this.currentPosition;this.lines[this.currentLineNumber].push(u),this.length+=u.length,t&&this.indentPendingTraceRegions(t)}}indentPendingTraceRegions(u){for(let n=this.traceData.length-1;n>=0;n--){const t=this.traceData[n];t.targetStart&&t.targetStart.offset===u.offset&&(t.targetStart=this.currentPosition)}}increaseIndent(u){this.currentIndents.push(u),u.indentImmediately||this.recentNonImmediateIndents.push(u)}decreaseIndent(){this.currentIndents.pop()}get relevantIndents(){return this.currentIndents.filter(u=>!this.recentNonImmediateIndents.includes(u))}resetCurrentLine(){this.length-=this.lines[this.currentLineNumber].join("").length,this.lines[this.currentLineNumber]=[],this.pendingIndent=!0}addNewLine(){this.pendingIndent=!0,this.lines.push([]),this.recentNonImmediateIndents.length=0}pushTraceRegion(u){const n=yt(u,this.currentPosition,t=>{var i,r;return(r=(i=this.traceData[this.traceData.length-1])===null||i===void 0?void 0:i.children)===null||r===void 0?void 0:r.push(t)});return this.traceData.push(n),n}popTraceRegion(u){const n=this.traceData.pop();return this.assertTrue(n===u,"Trace region mismatch!"),n}getParentTraceSourceFileURI(){var u;for(let n=this.traceData.length-1;n>-1;n--){const t=(u=this.traceData[n].sourceRegion)===null||u===void 0?void 0:u.fileURI;if(t)return t}}assertTrue(u,n){if(!u)throw new Error(n)}}function yt(e,u,n){const t={sourceRegion:e,targetRegion:void 0,children:[],targetStart:u,complete:i=>{var r,o;return t.targetRegion={offset:t.targetStart.offset,end:i.offset,length:i.offset-t.targetStart.offset,range:{start:{line:t.targetStart.line,character:t.targetStart.character},end:{line:i.line,character:i.character}}},delete t.targetStart,((r=t.children)===null||r===void 0?void 0:r.length)===0&&delete t.children,!((o=t.targetRegion)===null||o===void 0)&&o.length&&n(t),delete t.complete,t}};return t}function bt(e,u){const n=new Bt(u),t=n.pushTraceRegion(void 0);Cu(e,n),n.popTraceRegion(t),t.complete&&t.complete(n.currentPosition);const i=t.children&&t.children.length===1?t.children[0]:void 0,r=i?.targetRegion,o=t.targetRegion;return r&&i.sourceRegion&&r.offset===o.offset&&r.length===o.length?{text:n.content,trace:i}:{text:n.content,trace:t}}function Cu(e,u){typeof e=="string"?kt(e,u):e instanceof Ne?St(e,u):e instanceof I?Eu(e,u):e instanceof se&&$t(e,u)}function gu(e,u){return typeof e=="string"?e.length!==0:e instanceof I?e.contents.some(n=>gu(n,u)):e instanceof se?!(e.ifNotEmpty&&u.currentLineContent.length===0):!1}function kt(e,u){e&&(u.pendingIndent&&Fu(u,!1),u.append(e))}function Fu(e,u){var n;let t="";for(const i of e.relevantIndents.filter(r=>r.indentEmptyLines||!u))t+=(n=i.indentation)!==null&&n!==void 0?n:e.defaultIndentation;e.append(t,!0),e.pendingIndent=!1}function Eu(e,u){let n;const t=At(e.tracedSource);t&&(n=u.pushTraceRegion(t));for(const i of e.contents)Cu(i,u);if(n){u.popTraceRegion(n);const i=u.getParentTraceSourceFileURI();i&&t?.fileURI===i&&delete t.fileURI,n.complete&&n.complete(u.currentPosition)}}function St(e,u){var n;if(gu(e,u)){e.indentImmediately&&!u.pendingIndent&&u.append((n=e.indentation)!==null&&n!==void 0?n:u.defaultIndentation,!0);try{u.increaseIndent(e),Eu(e,u)}finally{u.decreaseIndent()}}}function $t(e,u){e.ifNotEmpty&&!It(u.currentLineContent)?u.resetCurrentLine():(u.pendingIndent&&Fu(u,!0),u.append(e.lineDelimiter),u.addNewLine())}function It(e){return e.trimStart()!==""}Object.freeze("__\xABSKIP^NEW^LINE^IF^EMPTY\xBB__");const Nt=/\S|$/;function Lt(e){const u=e.filter(t=>t.length>0).map(t=>t.search(Nt)),n=u.length===0?0:Math.min(...u);return Math.max(0,n)}function _(e,...u){const n=Pt(e),t=Tt(e,u,n);return jt(t)}function xt(e,u,n){return(t,...i)=>Vt(e,u,n)(_(t,...i))}function Pt(e){const u=e.join("_").split(qe),n=u.length>1&&u[0].trim().length===0,t=n&&u.length>1&&u[u.length-1].trim().length===0;if(u.length===1||u.length!==0&&u[0].trim().length!==0||u.length===2&&u[1].trim().length===0)return{indentation:0,omitFirstLine:n,omitLastLine:t,trimLastLine:u.length!==1&&u[u.length-1].trim().length===0};{let i=n?u.slice(1):u;i=t?i.slice(0,i.length-1):i,i=i.filter(o=>o.length!==0);const r=Lt(i);return{indentation:r,omitFirstLine:n,omitLastLine:t&&(u[u.length-1].length<r||!u[u.length-1].startsWith(i[0].substring(0,r)))}}}function Tt(e,u,{indentation:n,omitFirstLine:t,omitLastLine:i,trimLastLine:r}){const o=[];e.forEach((l,d)=>{o.push(...l.split(qe).map((f,p)=>p===0||f.length<n?f:f.substring(n)).reduce(d===0?(f,p,h)=>h===0?t?[]:[p]:h===1&&f.length===0?[p]:f.concat(Fe,p):(f,p,h)=>h===0?[p]:f.concat(Fe,p),[]).filter(f=>!(typeof f=="string"&&f.length===0)).concat(ae(u[d])?u[d]:u[d]!==void 0?{content:String(u[d])}:d<u.length?Au:[]))});const c=o.length,D=c!==0?o[c-1]:void 0;return(i||r)&&typeof D=="string"&&D.trim().length===0?t&&c!==1&&o[c-2]===Fe?o.slice(0,c-2):o.slice(0,c-1):o}const Fe={isNewLine:!0},Au={isUndefinedSegment:!0},hu=e=>e===Fe,Ie=e=>e===Au,Ot=e=>e.content!==void 0;function jt(e){return e.reduce((n,t,i)=>Ie(t)?n:hu(t)?{node:i!==0&&(Ie(e[i-1])||ae(e[i-1]))||i>1&&typeof e[i-1]=="string"&&(Ie(e[i-2])||ae(e[i-2]))?n.node.appendNewLineIfNotEmpty():n.node.appendNewLine()}:(()=>{var r;const o=(i===0||hu(e[i-1]))&&typeof t=="string"&&t.length!==0?"".padStart(t.length-t.trimStart().length):"",c=Ot(t)?t.content:t;let D;return{node:n.indented?n.node:o.length!==0?n.node.indent({indentation:o,indentImmediately:!1,indentedChildren:l=>D=l.append(c)}):n.node.append(c),indented:D??((r=n.indented)===null||r===void 0?void 0:r.append(c))}})(),{node:new I}).node}const Rt=typeof process>"u"?`
2
+ import{hrtime as zs,cwd as hi,stdout as Hs,exit as Gs,argv as Ys}from"node:process";import{m as qt,o as pi,p as qs,s as Js,N as mi,t as Ks,v as gi,y as Qs,z as Xs,A as Di,B as Ci,D as Zs,E as b,F as er,G as De,I as tr,K as nr,M as ke,R as ir,U as sr,V as rr,W as wi,X as Ai,e as qe,C as ur,Y as or,$ as Jt,q as Ei,b as yn,a0 as bi,a1 as ar,a2 as Fi,a3 as yi,a4 as vi,a5 as cr}from"../shared/likec4.Ceq7jJZD.mjs";import{notStrictEqual as lr,strictEqual as fr}from"assert";import{resolve as je,dirname as vn,normalize as dr,basename as hr,extname as pr,relative as mr}from"path";import{statSync as Bi,readdirSync as gr,readFileSync as Bn,writeFile as Dr}from"fs";import{format as Oi,inspect as Cr}from"util";import{fileURLToPath as wr}from"url";import{resolve as Q,dirname as _t,join as St,extname as Kt,relative as wt,isAbsolute as _i,basename as On}from"node:path";import{existsSync as st,copyFileSync as Si,rmSync as Ii}from"node:fs";import{mkdtemp as Qt,writeFile as At,mkdir as Je,stat as xi,copyFile as Ar,rm as Er}from"node:fs/promises";import br,{tmpdir as Xt}from"node:os";import{fileURLToPath as Fr}from"node:url";import{build as It,createServer as yr,preview as vr}from"vite";import{chromium as $i}from"playwright";import Br from"node:net";import{setTimeout as Or}from"node:timers/promises";import _r from"@vitejs/plugin-react-swc";import"tty";import"@hpcc-js/wasm-graphviz";import"node:util";import"node:tty";import"node:child_process";import"node:string_decoder";import"child_process";import"node:events";import"node:v8";import"node:stream";import"node:buffer";import"node:stream/promises";import"buffer";import"os";import"crypto";import"net";const Sr={right:Nr,center:Lr},Ir=0,Zt=1,xr=2,en=3;class $r{constructor(e){var t;this.width=e.width,this.wrap=(t=e.wrap)!==null&&t!==void 0?t:!0,this.rows=[]}span(...e){const t=this.div(...e);t.span=!0}resetOutput(){this.rows=[]}div(...e){if(e.length===0&&this.div(""),this.wrap&&this.shouldApplyLayoutDSL(...e)&&typeof e[0]=="string")return this.applyLayoutDSL(e[0]);const t=e.map(n=>typeof n=="string"?this.colFromString(n):n);return this.rows.push(t),t}shouldApplyLayoutDSL(...e){return e.length===1&&typeof e[0]=="string"&&/[\t\n]/.test(e[0])}applyLayoutDSL(e){const t=e.split(`
3
+ `).map(s=>s.split(" "));let n=0;return t.forEach(s=>{s.length>1&&Ee.stringWidth(s[0])>n&&(n=Math.min(Math.floor(this.width*.5),Ee.stringWidth(s[0])))}),t.forEach(s=>{this.div(...s.map((r,u)=>({text:r.trim(),padding:this.measurePadding(r),width:u===0&&s.length>1?n:void 0})))}),this.rows[this.rows.length-1]}colFromString(e){return{text:e,padding:this.measurePadding(e)}}measurePadding(e){const t=Ee.stripAnsi(e);return[0,t.match(/\s*$/)[0].length,0,t.match(/^\s*/)[0].length]}toString(){const e=[];return this.rows.forEach(t=>{this.rowToString(t,e)}),e.filter(t=>!t.hidden).map(t=>t.text).join(`
4
+ `)}rowToString(e,t){return this.rasterize(e).forEach((n,s)=>{let r="";n.forEach((u,a)=>{const{width:c}=e[a],h=this.negatePadding(e[a]);let l=u;if(h>Ee.stringWidth(u)&&(l+=" ".repeat(h-Ee.stringWidth(u))),e[a].align&&e[a].align!=="left"&&this.wrap){const m=Sr[e[a].align];l=m(l,h),Ee.stringWidth(l)<h&&(l+=" ".repeat((c||0)-Ee.stringWidth(l)-1))}const f=e[a].padding||[0,0,0,0];f[en]&&(r+=" ".repeat(f[en])),r+=ji(e[a],l,"| "),r+=l,r+=ji(e[a],l," |"),f[Zt]&&(r+=" ".repeat(f[Zt])),s===0&&t.length>0&&(r=this.renderInline(r,t[t.length-1]))}),t.push({text:r.replace(/ +$/,""),span:e.span})}),t}renderInline(e,t){const n=e.match(/^ */),s=n?n[0].length:0,r=t.text,u=Ee.stringWidth(r.trimRight());return t.span?this.wrap?s<u?e:(t.hidden=!0,r.trimRight()+" ".repeat(s-u)+e.trimLeft()):(t.hidden=!0,r+e):e}rasterize(e){const t=[],n=this.columnWidths(e);let s;return e.forEach((r,u)=>{r.width=n[u],this.wrap?s=Ee.wrap(r.text,this.negatePadding(r),{hard:!0}).split(`
5
+ `):s=r.text.split(`
6
+ `),r.border&&(s.unshift("."+"-".repeat(this.negatePadding(r)+2)+"."),s.push("'"+"-".repeat(this.negatePadding(r)+2)+"'")),r.padding&&(s.unshift(...new Array(r.padding[Ir]||0).fill("")),s.push(...new Array(r.padding[xr]||0).fill(""))),s.forEach((a,c)=>{t[c]||t.push([]);const h=t[c];for(let l=0;l<u;l++)h[l]===void 0&&h.push("");h.push(a)})}),t}negatePadding(e){let t=e.width||0;return e.padding&&(t-=(e.padding[en]||0)+(e.padding[Zt]||0)),e.border&&(t-=4),t}columnWidths(e){if(!this.wrap)return e.map(u=>u.width||Ee.stringWidth(u.text));let t=e.length,n=this.width;const s=e.map(u=>{if(u.width)return t--,n-=u.width,u.width}),r=t?Math.floor(n/t):0;return s.map((u,a)=>u===void 0?Math.max(r,jr(e[a])):u)}}function ji(i,e,t){return i.border?/[.']-+[.']/.test(e)?"":e.trim().length!==0?t:" ":""}function jr(i){const e=i.padding||[],t=1+(e[en]||0)+(e[Zt]||0);return i.border?t+4:t}function Pr(){return typeof process=="object"&&process.stdout&&process.stdout.columns?process.stdout.columns:80}function Nr(i,e){i=i.trim();const t=Ee.stringWidth(i);return t<e?" ".repeat(e-t)+i:i}function Lr(i,e){i=i.trim();const t=Ee.stringWidth(i);return t>=e?i:" ".repeat(e-t>>1)+i}let Ee;function Mr(i,e){return Ee=e,new $r({width:i?.width||Pr(),wrap:i?.wrap})}const Pi=new RegExp("\x1B(?:\\[(?:\\d+[ABCDEFGJKSTm]|\\d+;\\d+[Hfm]|\\d+;\\d+;\\d+m|6n|s|u|\\?25[lh])|\\w)","g");function Ni(i){return i.replace(Pi,"")}function kr(i,e){const[t,n]=i.match(Pi)||["",""];i=Ni(i);let s="";for(let r=0;r<i.length;r++)r!==0&&r%e===0&&(s+=`
7
+ `),s+=i.charAt(r);return t&&n&&(s=`${t}${s}${n}`),s}function Tr(i){return Mr(i,{stringWidth:e=>[...e].length,stripAnsi:Ni,wrap:kr})}function Rr(i,e){let t=je(".",i),n;for(Bi(t).isDirectory()||(t=vn(t));;){if(n=e(t,gr(t)),n)return je(t,n);if(t=vn(n=t),n===t)break}}function xt(i){if(i!==i.toLowerCase()&&i!==i.toUpperCase()||(i=i.toLowerCase()),i.indexOf("-")===-1&&i.indexOf("_")===-1)return i;{let t="",n=!1;const s=i.match(/^-+/);for(let r=s?s[0].length:0;r<i.length;r++){let u=i.charAt(r);n&&(n=!1,u=u.toUpperCase()),r!==0&&(u==="-"||u==="_")?n=!0:u!=="-"&&u!=="_"&&(t+=u)}return t}}function Li(i,e){const t=i.toLowerCase();e=e||"-";let n="";for(let s=0;s<i.length;s++){const r=t.charAt(s),u=i.charAt(s);r!==u&&s>0?n+=`${e}${t.charAt(s)}`:n+=u}return n}function Mi(i){return i==null?!1:typeof i=="number"||/^0x[0-9a-f]+$/i.test(i)?!0:/^0[^.]/.test(i)?!1:/^[-]?(?:\d+(?:\.\d*)?|\.\d+)(e[-+]?\d+)?$/.test(i)}function Wr(i){if(Array.isArray(i))return i.map(u=>typeof u!="string"?u+"":u);i=i.trim();let e=0,t=null,n=null,s=null;const r=[];for(let u=0;u<i.length;u++){if(t=n,n=i.charAt(u),n===" "&&!s){t!==" "&&e++;continue}n===s?s=null:(n==="'"||n==='"')&&!s&&(s=n),r[e]||(r[e]=""),r[e]+=n}return r}var Pe;(function(i){i.BOOLEAN="boolean",i.STRING="string",i.NUMBER="number",i.ARRAY="array"})(Pe||(Pe={}));let ze;class Ur{constructor(e){ze=e}parse(e,t){const n=Object.assign({alias:void 0,array:void 0,boolean:void 0,config:void 0,configObjects:void 0,configuration:void 0,coerce:void 0,count:void 0,default:void 0,envPrefix:void 0,narg:void 0,normalize:void 0,string:void 0,number:void 0,__:void 0,key:void 0},t),s=Wr(e),r=typeof e=="string",u=Vr(Object.assign(Object.create(null),n.alias)),a=Object.assign({"boolean-negation":!0,"camel-case-expansion":!0,"combine-arrays":!1,"dot-notation":!0,"duplicate-arguments-array":!0,"flatten-duplicate-arrays":!0,"greedy-arrays":!0,"halt-at-non-option":!1,"nargs-eats-options":!1,"negation-prefix":"no-","parse-numbers":!0,"parse-positional-numbers":!0,"populate--":!1,"set-placeholder-key":!1,"short-option-groups":!0,"strip-aliased":!1,"strip-dashed":!1,"unknown-options-as-args":!1},n.configuration),c=Object.assign(Object.create(null),n.default),h=n.configObjects||[],l=n.envPrefix,f=a["populate--"],m=f?"--":"_",C=Object.create(null),F=Object.create(null),w=n.__||ze.format,p={aliases:Object.create(null),arrays:Object.create(null),bools:Object.create(null),strings:Object.create(null),numbers:Object.create(null),counts:Object.create(null),normalize:Object.create(null),configs:Object.create(null),nargs:Object.create(null),coercions:Object.create(null),keys:[]},y=/^-([0-9]+(\.[0-9]+)?|\.[0-9]+)$/,B=new RegExp("^--"+a["negation-prefix"]+"(.+)");[].concat(n.array||[]).filter(Boolean).forEach(function(d){const D=typeof d=="object"?d.key:d,v=Object.keys(d).map(function(A){return{boolean:"bools",string:"strings",number:"numbers"}[A]}).filter(Boolean).pop();v&&(p[v][D]=!0),p.arrays[D]=!0,p.keys.push(D)}),[].concat(n.boolean||[]).filter(Boolean).forEach(function(d){p.bools[d]=!0,p.keys.push(d)}),[].concat(n.string||[]).filter(Boolean).forEach(function(d){p.strings[d]=!0,p.keys.push(d)}),[].concat(n.number||[]).filter(Boolean).forEach(function(d){p.numbers[d]=!0,p.keys.push(d)}),[].concat(n.count||[]).filter(Boolean).forEach(function(d){p.counts[d]=!0,p.keys.push(d)}),[].concat(n.normalize||[]).filter(Boolean).forEach(function(d){p.normalize[d]=!0,p.keys.push(d)}),typeof n.narg=="object"&&Object.entries(n.narg).forEach(([d,D])=>{typeof D=="number"&&(p.nargs[d]=D,p.keys.push(d))}),typeof n.coerce=="object"&&Object.entries(n.coerce).forEach(([d,D])=>{typeof D=="function"&&(p.coercions[d]=D,p.keys.push(d))}),typeof n.config<"u"&&(Array.isArray(n.config)||typeof n.config=="string"?[].concat(n.config).filter(Boolean).forEach(function(d){p.configs[d]=!0}):typeof n.config=="object"&&Object.entries(n.config).forEach(([d,D])=>{(typeof D=="boolean"||typeof D=="function")&&(p.configs[d]=D)})),it(n.key,u,n.default,p.arrays),Object.keys(c).forEach(function(d){(p.aliases[d]||[]).forEach(function(D){c[D]=c[d]})});let M=null;Yt();let L=[];const U=Object.assign(Object.create(null),{_:[]}),Ce={};for(let d=0;d<s.length;d++){const D=s[d],v=D.replace(/^-{3,}/,"---");let A,g,$,_,N,pe;if(D!=="--"&&/^-/.test(D)&&ie(D))Ie(D);else if(v.match(/^---+(=|$)/)){Ie(D);continue}else if(D.match(/^--.+=/)||!a["short-option-groups"]&&D.match(/^-.+=/))_=D.match(/^--?([^=]+)=([\s\S]*)$/),_!==null&&Array.isArray(_)&&_.length>=3&&(T(_[1],p.arrays)?d=tt(d,_[1],s,_[2]):T(_[1],p.nargs)!==!1?d=Ct(d,_[1],s,_[2]):X(_[1],_[2],!0));else if(D.match(B)&&a["boolean-negation"])_=D.match(B),_!==null&&Array.isArray(_)&&_.length>=2&&(g=_[1],X(g,T(g,p.arrays)?[!1]:!1));else if(D.match(/^--.+/)||!a["short-option-groups"]&&D.match(/^-[^-]+/))_=D.match(/^--?(.+)/),_!==null&&Array.isArray(_)&&_.length>=2&&(g=_[1],T(g,p.arrays)?d=tt(d,g,s):T(g,p.nargs)!==!1?d=Ct(d,g,s):(N=s[d+1],N!==void 0&&(!N.match(/^-/)||N.match(y))&&!T(g,p.bools)&&!T(g,p.counts)||/^(true|false)$/.test(N)?(X(g,N),d++):X(g,se(g))));else if(D.match(/^-.\..+=/))_=D.match(/^-([^=]+)=([\s\S]*)$/),_!==null&&Array.isArray(_)&&_.length>=3&&X(_[1],_[2]);else if(D.match(/^-.\..+/)&&!D.match(y))N=s[d+1],_=D.match(/^-(.\..+)/),_!==null&&Array.isArray(_)&&_.length>=2&&(g=_[1],N!==void 0&&!N.match(/^-/)&&!T(g,p.bools)&&!T(g,p.counts)?(X(g,N),d++):X(g,se(g)));else if(D.match(/^-[^-]+/)&&!D.match(y)){$=D.slice(1,-1).split(""),A=!1;for(let we=0;we<$.length;we++){if(N=D.slice(we+2),$[we+1]&&$[we+1]==="="){pe=D.slice(we+3),g=$[we],T(g,p.arrays)?d=tt(d,g,s,pe):T(g,p.nargs)!==!1?d=Ct(d,g,s,pe):X(g,pe),A=!0;break}if(N==="-"){X($[we],N);continue}if(/[A-Za-z]/.test($[we])&&/^-?\d+(\.\d*)?(e-?\d+)?$/.test(N)&&T(N,p.bools)===!1){X($[we],N),A=!0;break}if($[we+1]&&$[we+1].match(/\W/)){X($[we],N),A=!0;break}else X($[we],se($[we]))}g=D.slice(-1)[0],!A&&g!=="-"&&(T(g,p.arrays)?d=tt(d,g,s):T(g,p.nargs)!==!1?d=Ct(d,g,s):(N=s[d+1],N!==void 0&&(!/^(-|--)[^-]/.test(N)||N.match(y))&&!T(g,p.bools)&&!T(g,p.counts)||/^(true|false)$/.test(N)?(X(g,N),d++):X(g,se(g))))}else if(D.match(/^-[0-9]$/)&&D.match(y)&&T(D.slice(1),p.bools))g=D.slice(1),X(g,se(g));else if(D==="--"){L=s.slice(d+1);break}else if(a["halt-at-non-option"]){L=s.slice(d);break}else Ie(D)}J(U,!0),J(U,!1),V(U),de(),ne(U,p.aliases,c,!0),he(U),a["set-placeholder-key"]&&nt(U),Object.keys(p.counts).forEach(function(d){Ue(U,d.split("."))||X(d,0)}),f&&L.length&&(U[m]=[]),L.forEach(function(d){U[m].push(d)}),a["camel-case-expansion"]&&a["strip-dashed"]&&Object.keys(U).filter(d=>d!=="--"&&d.includes("-")).forEach(d=>{delete U[d]}),a["strip-aliased"]&&[].concat(...Object.keys(u).map(d=>u[d])).forEach(d=>{a["camel-case-expansion"]&&d.includes("-")&&delete U[d.split(".").map(D=>xt(D)).join(".")],delete U[d]});function Ie(d){const D=I("_",d);(typeof D=="string"||typeof D=="number")&&U._.push(D)}function Ct(d,D,v,A){let g,$=T(D,p.nargs);if($=typeof $!="number"||isNaN($)?1:$,$===0)return $e(A)||(M=Error(w("Argument unexpected for: %s",D))),X(D,se(D)),d;let _=$e(A)?0:1;if(a["nargs-eats-options"])v.length-(d+1)+_<$&&(M=Error(w("Not enough arguments following: %s",D))),_=$;else{for(g=d+1;g<v.length&&(!v[g].match(/^-[^0-9]/)||v[g].match(y)||ie(v[g]));g++)_++;_<$&&(M=Error(w("Not enough arguments following: %s",D)))}let N=Math.min(_,$);for(!$e(A)&&N>0&&(X(D,A),N--),g=d+1;g<N+d+1;g++)X(D,v[g]);return d+N}function tt(d,D,v,A){let g=[],$=A||v[d+1];const _=T(D,p.nargs);if(T(D,p.bools)&&!/^(true|false)$/.test($))g.push(!0);else if($e($)||$e(A)&&/^-/.test($)&&!y.test($)&&!ie($)){if(c[D]!==void 0){const N=c[D];g=Array.isArray(N)?N:[N]}}else{$e(A)||g.push(O(D,A,!0));for(let N=d+1;N<v.length&&!(!a["greedy-arrays"]&&g.length>0||_&&typeof _=="number"&&g.length>=_||($=v[N],/^-/.test($)&&!y.test($)&&!ie($)));N++)d=N,g.push(O(D,$,r))}return typeof _=="number"&&(_&&g.length<_||isNaN(_)&&g.length===0)&&(M=Error(w("Not enough arguments following: %s",D))),X(D,g),d}function X(d,D,v=r){if(/-/.test(d)&&a["camel-case-expansion"]){const $=d.split(".").map(function(_){return xt(_)}).join(".");j(d,$)}const A=O(d,D,v),g=d.split(".");Ve(U,g,A),p.aliases[d]&&p.aliases[d].forEach(function($){const _=$.split(".");Ve(U,_,A)}),g.length>1&&a["dot-notation"]&&(p.aliases[g[0]]||[]).forEach(function($){let _=$.split(".");const N=[].concat(g);N.shift(),_=_.concat(N),(p.aliases[d]||[]).includes(_.join("."))||Ve(U,_,A)}),T(d,p.normalize)&&!T(d,p.arrays)&&[d].concat(p.aliases[d]||[]).forEach(function(_){Object.defineProperty(Ce,_,{enumerable:!0,get(){return D},set(N){D=typeof N=="string"?ze.normalize(N):N}})})}function j(d,D){p.aliases[d]&&p.aliases[d].length||(p.aliases[d]=[D],C[D]=!0),p.aliases[D]&&p.aliases[D].length||j(D,d)}function O(d,D,v){v&&(D=zr(D)),(T(d,p.bools)||T(d,p.counts))&&typeof D=="string"&&(D=D==="true");let A=Array.isArray(D)?D.map(function(g){return I(d,g)}):I(d,D);return T(d,p.counts)&&($e(A)||typeof A=="boolean")&&(A=_n()),T(d,p.normalize)&&T(d,p.arrays)&&(Array.isArray(D)?A=D.map(g=>ze.normalize(g)):A=ze.normalize(D)),A}function I(d,D){return!a["parse-positional-numbers"]&&d==="_"||!T(d,p.strings)&&!T(d,p.bools)&&!Array.isArray(D)&&(Mi(D)&&a["parse-numbers"]&&Number.isSafeInteger(Math.floor(parseFloat(`${D}`)))||!$e(D)&&T(d,p.numbers))&&(D=Number(D)),D}function V(d){const D=Object.create(null);ne(D,p.aliases,c),Object.keys(p.configs).forEach(function(v){const A=d[v]||D[v];if(A)try{let g=null;const $=ze.resolve(ze.cwd(),A),_=p.configs[v];if(typeof _=="function"){try{g=_($)}catch(N){g=N}if(g instanceof Error){M=g;return}}else g=ze.require($);K(g)}catch(g){g.name==="PermissionDenied"?M=g:d[v]&&(M=Error(w("Invalid JSON config file: %s",A)))}})}function K(d,D){Object.keys(d).forEach(function(v){const A=d[v],g=D?D+"."+v:v;typeof A=="object"&&A!==null&&!Array.isArray(A)&&a["dot-notation"]?K(A,g):(!Ue(U,g.split("."))||T(g,p.arrays)&&a["combine-arrays"])&&X(g,A)})}function de(){typeof h<"u"&&h.forEach(function(d){K(d)})}function J(d,D){if(typeof l>"u")return;const v=typeof l=="string"?l:"",A=ze.env();Object.keys(A).forEach(function(g){if(v===""||g.lastIndexOf(v,0)===0){const $=g.split("__").map(function(_,N){return N===0&&(_=_.substring(v.length)),xt(_)});(D&&p.configs[$.join(".")]||!D)&&!Ue(d,$)&&X($.join("."),A[g])}})}function he(d){let D;const v=new Set;Object.keys(d).forEach(function(A){if(!v.has(A)&&(D=T(A,p.coercions),typeof D=="function"))try{const g=I(A,D(d[A]));[].concat(p.aliases[A]||[],A).forEach($=>{v.add($),d[$]=g})}catch(g){M=g}})}function nt(d){return p.keys.forEach(D=>{~D.indexOf(".")||typeof d[D]>"u"&&(d[D]=void 0)}),d}function ne(d,D,v,A=!1){Object.keys(v).forEach(function(g){Ue(d,g.split("."))||(Ve(d,g.split("."),v[g]),A&&(F[g]=!0),(D[g]||[]).forEach(function($){Ue(d,$.split("."))||Ve(d,$.split("."),v[g])}))})}function Ue(d,D){let v=d;a["dot-notation"]||(D=[D.join(".")]),D.slice(0,-1).forEach(function(g){v=v[g]||{}});const A=D[D.length-1];return typeof v!="object"?!1:A in v}function Ve(d,D,v){let A=d;a["dot-notation"]||(D=[D.join(".")]),D.slice(0,-1).forEach(function(pe){pe=ki(pe),typeof A=="object"&&A[pe]===void 0&&(A[pe]={}),typeof A[pe]!="object"||Array.isArray(A[pe])?(Array.isArray(A[pe])?A[pe].push({}):A[pe]=[A[pe],{}],A=A[pe][A[pe].length-1]):A=A[pe]});const g=ki(D[D.length-1]),$=T(D.join("."),p.arrays),_=Array.isArray(v);let N=a["duplicate-arguments-array"];!N&&T(g,p.nargs)&&(N=!0,(!$e(A[g])&&p.nargs[g]===1||Array.isArray(A[g])&&A[g].length===p.nargs[g])&&(A[g]=void 0)),v===_n()?A[g]=_n(A[g]):Array.isArray(A[g])?N&&$&&_?A[g]=a["flatten-duplicate-arrays"]?A[g].concat(v):(Array.isArray(A[g][0])?A[g]:[A[g]]).concat([v]):!N&&!!$==!!_?A[g]=v:A[g]=A[g].concat([v]):A[g]===void 0&&$?A[g]=_?v:[v]:N&&!(A[g]===void 0||T(g,p.counts)||T(g,p.bools))?A[g]=[A[g],v]:A[g]=v}function it(...d){d.forEach(function(D){Object.keys(D||{}).forEach(function(v){p.aliases[v]||(p.aliases[v]=[].concat(u[v]||[]),p.aliases[v].concat(v).forEach(function(A){if(/-/.test(A)&&a["camel-case-expansion"]){const g=xt(A);g!==v&&p.aliases[v].indexOf(g)===-1&&(p.aliases[v].push(g),C[g]=!0)}}),p.aliases[v].concat(v).forEach(function(A){if(A.length>1&&/[A-Z]/.test(A)&&a["camel-case-expansion"]){const g=Li(A,"-");g!==v&&p.aliases[v].indexOf(g)===-1&&(p.aliases[v].push(g),C[g]=!0)}}),p.aliases[v].forEach(function(A){p.aliases[A]=[v].concat(p.aliases[v].filter(function(g){return A!==g}))}))})})}function T(d,D){const v=[].concat(p.aliases[d]||[],d),A=Object.keys(D),g=v.find($=>A.includes($));return g?D[g]:!1}function Fn(d){const D=Object.keys(p);return[].concat(D.map(A=>p[A])).some(function(A){return Array.isArray(A)?A.includes(d):A[d]})}function k(d,...D){return[].concat(...D).some(function(A){const g=d.match(A);return g&&Fn(g[1])})}function te(d){if(d.match(y)||!d.match(/^-[^-]+/))return!1;let D=!0,v;const A=d.slice(1).split("");for(let g=0;g<A.length;g++){if(v=d.slice(g+2),!Fn(A[g])){D=!1;break}if(A[g+1]&&A[g+1]==="="||v==="-"||/[A-Za-z]/.test(A[g])&&/^-?\d+(\.\d*)?(e-?\d+)?$/.test(v)||A[g+1]&&A[g+1].match(/\W/))break}return D}function ie(d){return a["unknown-options-as-args"]&&q(d)}function q(d){return d=d.replace(/^-{3,}/,"--"),d.match(y)||te(d)?!1:!k(d,/^-+([^=]+?)=[\s\S]*$/,B,/^-+([^=]+?)$/,/^-+([^=]+?)-$/,/^-+([^=]+?\d+)$/,/^-+([^=]+?)\W+.*$/)}function se(d){return!T(d,p.bools)&&!T(d,p.counts)&&`${d}`in c?c[d]:ue(xe(d))}function ue(d){return{[Pe.BOOLEAN]:!0,[Pe.STRING]:"",[Pe.NUMBER]:void 0,[Pe.ARRAY]:[]}[d]}function xe(d){let D=Pe.BOOLEAN;return T(d,p.strings)?D=Pe.STRING:T(d,p.numbers)?D=Pe.NUMBER:T(d,p.bools)?D=Pe.BOOLEAN:T(d,p.arrays)&&(D=Pe.ARRAY),D}function $e(d){return d===void 0}function Yt(){Object.keys(p.counts).find(d=>T(d,p.arrays)?(M=Error(w("Invalid configuration: %s, opts.count excludes opts.array.",d)),!0):T(d,p.nargs)?(M=Error(w("Invalid configuration: %s, opts.count excludes opts.narg.",d)),!0):!1)}return{aliases:Object.assign({},p.aliases),argv:Object.assign(Ce,U),configuration:a,defaulted:Object.assign({},F),error:M,newAliases:Object.assign({},C)}}}function Vr(i){const e=[],t=Object.create(null);let n=!0;for(Object.keys(i).forEach(function(s){e.push([].concat(i[s],s))});n;){n=!1;for(let s=0;s<e.length;s++)for(let r=s+1;r<e.length;r++)if(e[s].filter(function(a){return e[r].indexOf(a)!==-1}).length){e[s]=e[s].concat(e[r]),e.splice(r,1),n=!0;break}}return e.forEach(function(s){s=s.filter(function(u,a,c){return c.indexOf(u)===a});const r=s.pop();r!==void 0&&typeof r=="string"&&(t[r]=s)}),t}function _n(i){return i!==void 0?i+1:1}function ki(i){return i==="__proto__"?"___proto___":i}function zr(i){return typeof i=="string"&&(i[0]==="'"||i[0]==='"')&&i[i.length-1]===i[0]?i.substring(1,i.length-1):i}var Sn,In,xn;const Ti=process&&process.env&&process.env.YARGS_MIN_NODE_VERSION?Number(process.env.YARGS_MIN_NODE_VERSION):12,Ri=(In=(Sn=process==null?void 0:process.versions)===null||Sn===void 0?void 0:Sn.node)!==null&&In!==void 0?In:(xn=process==null?void 0:process.version)===null||xn===void 0?void 0:xn.slice(1);if(Ri&&Number(Ri.match(/^([^.]+)/)[1])<Ti)throw Error(`yargs parser supports a minimum Node.js version of ${Ti}. Read our version support policy: https://github.com/yargs/yargs-parser#supported-nodejs-versions`);const Hr=process?process.env:{},Wi=new Ur({cwd:process.cwd,env:()=>Hr,format:Oi,normalize:dr,resolve:je,require:i=>{if(typeof qt<"u")return qt(i);if(i.match(/\.json$/))return JSON.parse(Bn(i,"utf8"));throw Error("only .json config files are supported in ESM")}}),$t=function(e,t){return Wi.parse(e.slice(),t).argv};$t.detailed=function(i,e){return Wi.parse(i.slice(),e)},$t.camelCase=xt,$t.decamelize=Li,$t.looksLikeNumber=Mi;function Ui(){return Gr()?0:1}function Gr(){return Yr()&&!process.defaultApp}function Yr(){return!!process.versions.electron}function qr(i){return i.slice(Ui()+1)}function Jr(){return process.argv[Ui()]}class le extends Error{constructor(e){super(e||"yargs error"),this.name="YError",Error.captureStackTrace&&Error.captureStackTrace(this,le)}}const Kr={fs:{readFileSync:Bn,writeFile:Dr},format:Oi,resolve:je,exists:i=>{try{return Bi(i).isFile()}catch{return!1}}};let Ne;class Qr{constructor(e){e=e||{},this.directory=e.directory||"./locales",this.updateFiles=typeof e.updateFiles=="boolean"?e.updateFiles:!0,this.locale=e.locale||"en",this.fallbackToLanguage=typeof e.fallbackToLanguage=="boolean"?e.fallbackToLanguage:!0,this.cache=Object.create(null),this.writeQueue=[]}__(...e){if(typeof arguments[0]!="string")return this._taggedLiteral(arguments[0],...arguments);const t=e.shift();let n=function(){};return typeof e[e.length-1]=="function"&&(n=e.pop()),n=n||function(){},this.cache[this.locale]||this._readLocaleFile(),!this.cache[this.locale][t]&&this.updateFiles?(this.cache[this.locale][t]=t,this._enqueueWrite({directory:this.directory,locale:this.locale,cb:n})):n(),Ne.format.apply(Ne.format,[this.cache[this.locale][t]||t].concat(e))}__n(){const e=Array.prototype.slice.call(arguments),t=e.shift(),n=e.shift(),s=e.shift();let r=function(){};typeof e[e.length-1]=="function"&&(r=e.pop()),this.cache[this.locale]||this._readLocaleFile();let u=s===1?t:n;this.cache[this.locale][t]&&(u=this.cache[this.locale][t][s===1?"one":"other"]),!this.cache[this.locale][t]&&this.updateFiles?(this.cache[this.locale][t]={one:t,other:n},this._enqueueWrite({directory:this.directory,locale:this.locale,cb:r})):r();const a=[u];return~u.indexOf("%d")&&a.push(s),Ne.format.apply(Ne.format,a.concat(e))}setLocale(e){this.locale=e}getLocale(){return this.locale}updateLocale(e){this.cache[this.locale]||this._readLocaleFile();for(const t in e)Object.prototype.hasOwnProperty.call(e,t)&&(this.cache[this.locale][t]=e[t])}_taggedLiteral(e,...t){let n="";return e.forEach(function(s,r){const u=t[r+1];n+=s,typeof u<"u"&&(n+="%s")}),this.__.apply(this,[n].concat([].slice.call(t,1)))}_enqueueWrite(e){this.writeQueue.push(e),this.writeQueue.length===1&&this._processWriteQueue()}_processWriteQueue(){const e=this,t=this.writeQueue[0],n=t.directory,s=t.locale,r=t.cb,u=this._resolveLocaleFile(n,s),a=JSON.stringify(this.cache[s],null,2);Ne.fs.writeFile(u,a,"utf-8",function(c){e.writeQueue.shift(),e.writeQueue.length>0&&e._processWriteQueue(),r(c)})}_readLocaleFile(){let e={};const t=this._resolveLocaleFile(this.directory,this.locale);try{Ne.fs.readFileSync&&(e=JSON.parse(Ne.fs.readFileSync(t,"utf-8")))}catch(n){if(n instanceof SyntaxError&&(n.message="syntax error in "+t),n.code==="ENOENT")e={};else throw n}this.cache[this.locale]=e}_resolveLocaleFile(e,t){let n=Ne.resolve(e,"./",t+".json");if(this.fallbackToLanguage&&!this._fileExistsSync(n)&&~t.lastIndexOf("_")){const s=Ne.resolve(e,"./",t.split("_")[0]+".json");this._fileExistsSync(s)&&(n=s)}return n}_fileExistsSync(e){return Ne.exists(e)}}function Xr(i,e){Ne=e;const t=new Qr(i);return{__:t.__.bind(t),__n:t.__n.bind(t),setLocale:t.setLocale.bind(t),getLocale:t.getLocale.bind(t),updateLocale:t.updateLocale.bind(t),locale:t.locale}}const Zr=i=>Xr(i,Kr),eu="require is not supported by ESM",Vi="loading a directory of commands is not supported yet for ESM";let jt;try{jt=wr(import.meta.url)}catch{jt=process.cwd()}const tu=jt.substring(0,jt.lastIndexOf("node_modules")),nu={assert:{notStrictEqual:lr,strictEqual:fr},cliui:Tr,findUp:Rr,getEnv:i=>process.env[i],inspect:Cr,getCallerFile:()=>{throw new le(Vi)},getProcessArgvBin:Jr,mainFilename:tu||process.cwd(),Parser:$t,path:{basename:hr,dirname:vn,extname:pr,relative:mr,resolve:je},process:{argv:()=>process.argv,cwd:process.cwd,emitWarning:(i,e)=>process.emitWarning(i,e),execPath:()=>process.execPath,exit:process.exit,nextTick:process.nextTick,stdColumns:typeof process.stdout.columns<"u"?process.stdout.columns:null},readFileSync:Bn,require:()=>{throw new le(eu)},requireDirectory:()=>{throw new le(Vi)},stringWidth:i=>[...i].length,y18n:Zr({directory:je(jt,"../../../locales"),updateFiles:!1})};function Le(i,e,t,n){t.assert.notStrictEqual(i,e,n)}function zi(i,e){e.assert.strictEqual(typeof i,"string")}function tn(i){return Object.keys(i)}function ce(i){return!!i&&!!i.then&&typeof i.then=="function"}function Pt(i){const t=i.replace(/\s{2,}/g," ").split(/\s+(?![^[]*]|[^<]*>)/),n=/\.*[\][<>]/g,s=t.shift();if(!s)throw new Error(`No command found in: ${i}`);const r={cmd:s.replace(n,""),demanded:[],optional:[]};return t.forEach((u,a)=>{let c=!1;u=u.replace(/\s/g,""),/\.+[\]>]/.test(u)&&a===t.length-1&&(c=!0),/^\[/.test(u)?r.optional.push({cmd:u.replace(n,"").split("|"),variadic:c}):r.demanded.push({cmd:u.replace(n,"").split("|"),variadic:c})}),r}const iu=["first","second","third","fourth","fifth","sixth"];function x(i,e,t){function n(){return typeof i=="object"?[{demanded:[],optional:[]},i,e]:[Pt(`cmd ${i}`),e,t]}try{let s=0;const[r,u,a]=n(),c=[].slice.call(u);for(;c.length&&c[c.length-1]===void 0;)c.pop();const h=a||c.length;if(h<r.demanded.length)throw new le(`Not enough arguments provided. Expected ${r.demanded.length} but received ${c.length}.`);const l=r.demanded.length+r.optional.length;if(h>l)throw new le(`Too many arguments provided. Expected max ${l} but received ${h}.`);r.demanded.forEach(f=>{const m=c.shift(),C=Hi(m);f.cmd.filter(w=>w===C||w==="*").length===0&&Gi(C,f.cmd,s),s+=1}),r.optional.forEach(f=>{if(c.length===0)return;const m=c.shift(),C=Hi(m);f.cmd.filter(w=>w===C||w==="*").length===0&&Gi(C,f.cmd,s),s+=1})}catch(s){console.warn(s.stack)}}function Hi(i){return Array.isArray(i)?"array":i===null?"null":typeof i}function Gi(i,e,t){throw new le(`Invalid ${iu[t]||"manyith"} argument. Expected ${e.join(" or ")} but received ${i}.`)}class su{constructor(e){this.globalMiddleware=[],this.frozens=[],this.yargs=e}addMiddleware(e,t,n=!0,s=!1){if(x("<array|function> [boolean] [boolean] [boolean]",[e,t,n],arguments.length),Array.isArray(e)){for(let r=0;r<e.length;r++){if(typeof e[r]!="function")throw Error("middleware must be a function");const u=e[r];u.applyBeforeValidation=t,u.global=n}Array.prototype.push.apply(this.globalMiddleware,e)}else if(typeof e=="function"){const r=e;r.applyBeforeValidation=t,r.global=n,r.mutates=s,this.globalMiddleware.push(e)}return this.yargs}addCoerceMiddleware(e,t){const n=this.yargs.getAliases();return this.globalMiddleware=this.globalMiddleware.filter(s=>{const r=[...n[t]||[],t];return s.option?!r.includes(s.option):!0}),e.option=t,this.addMiddleware(e,!0,!0,!0)}getMiddleware(){return this.globalMiddleware}freeze(){this.frozens.push([...this.globalMiddleware])}unfreeze(){const e=this.frozens.pop();e!==void 0&&(this.globalMiddleware=e)}reset(){this.globalMiddleware=this.globalMiddleware.filter(e=>e.global)}}function ru(i){return i?i.map(e=>(e.applyBeforeValidation=!1,e)):[]}function Nt(i,e,t,n){return t.reduce((s,r)=>{if(r.applyBeforeValidation!==n)return s;if(r.mutates){if(r.applied)return s;r.applied=!0}if(ce(s))return s.then(u=>Promise.all([u,r(u,e)])).then(([u,a])=>Object.assign(u,a));{const u=r(s,e);return ce(u)?u.then(a=>Object.assign(s,a)):Object.assign(s,u)}},i)}function Lt(i,e,t=n=>{throw n}){try{const n=uu(i)?i():i;return ce(n)?n.then(s=>e(s)):e(n)}catch(n){return t(n)}}function uu(i){return typeof i=="function"}function ou(i){if(typeof qt>"u")return null;for(let e=0,t=Object.keys(require.cache),n;e<t.length;e++)if(n=require.cache[t[e]],n.exports===i)return n;return null}const Et=/(^\*)|(^\$0)/;class au{constructor(e,t,n,s){this.requireCache=new Set,this.handlers={},this.aliasMap={},this.frozens=[],this.shim=s,this.usage=e,this.globalMiddleware=n,this.validation=t}addDirectory(e,t,n,s){s=s||{},typeof s.recurse!="boolean"&&(s.recurse=!1),Array.isArray(s.extensions)||(s.extensions=["js"]);const r=typeof s.visit=="function"?s.visit:u=>u;s.visit=(u,a,c)=>{const h=r(u,a,c);if(h){if(this.requireCache.has(a))return h;this.requireCache.add(a),this.addHandler(h)}return h},this.shim.requireDirectory({require:t,filename:n},e,s)}addHandler(e,t,n,s,r,u){let a=[];const c=ru(r);if(s=s||(()=>{}),Array.isArray(e))if(lu(e))[e,...a]=e;else for(const h of e)this.addHandler(h);else if(du(e)){let h=Array.isArray(e.command)||typeof e.command=="string"?e.command:this.moduleName(e);e.aliases&&(h=[].concat(h).concat(e.aliases)),this.addHandler(h,this.extractDesc(e),e.builder,e.handler,e.middlewares,e.deprecated);return}else if(Yi(n)){this.addHandler([e].concat(a),t,n.builder,n.handler,n.middlewares,n.deprecated);return}if(typeof e=="string"){const h=Pt(e);a=a.map(m=>Pt(m).cmd);let l=!1;const f=[h.cmd].concat(a).filter(m=>Et.test(m)?(l=!0,!1):!0);f.length===0&&l&&f.push("$0"),l&&(h.cmd=f[0],a=f.slice(1),e=e.replace(Et,h.cmd)),a.forEach(m=>{this.aliasMap[m]=h.cmd}),t!==!1&&this.usage.command(e,t,l,a,u),this.handlers[h.cmd]={original:e,description:t,handler:s,builder:n||{},middlewares:c,deprecated:u,demanded:h.demanded,optional:h.optional},l&&(this.defaultCommand=this.handlers[h.cmd])}}getCommandHandlers(){return this.handlers}getCommands(){return Object.keys(this.handlers).concat(Object.keys(this.aliasMap))}hasDefaultCommand(){return!!this.defaultCommand}runCommand(e,t,n,s,r,u){const a=this.handlers[e]||this.handlers[this.aliasMap[e]]||this.defaultCommand,c=t.getInternalMethods().getContext(),h=c.commands.slice(),l=!e;e&&(c.commands.push(e),c.fullCommands.push(a.original));const f=this.applyBuilderUpdateUsageAndParse(l,a,t,n.aliases,h,s,r,u);return ce(f)?f.then(m=>this.applyMiddlewareAndGetResult(l,a,m.innerArgv,c,r,m.aliases,t)):this.applyMiddlewareAndGetResult(l,a,f.innerArgv,c,r,f.aliases,t)}applyBuilderUpdateUsageAndParse(e,t,n,s,r,u,a,c){const h=t.builder;let l=n;if($n(h)){n.getInternalMethods().getUsageInstance().freeze();const f=h(n.getInternalMethods().reset(s),c);if(ce(f))return f.then(m=>(l=_u(m)?m:n,this.parseAndUpdateUsage(e,t,l,r,u,a)))}else fu(h)&&(n.getInternalMethods().getUsageInstance().freeze(),l=n.getInternalMethods().reset(s),Object.keys(t.builder).forEach(f=>{l.option(f,h[f])}));return this.parseAndUpdateUsage(e,t,l,r,u,a)}parseAndUpdateUsage(e,t,n,s,r,u){e&&n.getInternalMethods().getUsageInstance().unfreeze(!0),this.shouldUpdateUsage(n)&&n.getInternalMethods().getUsageInstance().usage(this.usageFromParentCommandsCommandHandler(s,t),t.description);const a=n.getInternalMethods().runYargsParserAndExecuteCommands(null,void 0,!0,r,u);return ce(a)?a.then(c=>({aliases:n.parsed.aliases,innerArgv:c})):{aliases:n.parsed.aliases,innerArgv:a}}shouldUpdateUsage(e){return!e.getInternalMethods().getUsageInstance().getUsageDisabled()&&e.getInternalMethods().getUsageInstance().getUsage().length===0}usageFromParentCommandsCommandHandler(e,t){const n=Et.test(t.original)?t.original.replace(Et,"").trim():t.original,s=e.filter(r=>!Et.test(r));return s.push(n),`$0 ${s.join(" ")}`}handleValidationAndGetResult(e,t,n,s,r,u,a,c){if(!u.getInternalMethods().getHasOutput()){const h=u.getInternalMethods().runValidation(r,c,u.parsed.error,e);n=Lt(n,l=>(h(l),l))}if(t.handler&&!u.getInternalMethods().getHasOutput()){u.getInternalMethods().setHasOutput();const h=!!u.getOptions().configuration["populate--"];u.getInternalMethods().postProcess(n,h,!1,!1),n=Nt(n,u,a,!1),n=Lt(n,l=>{const f=t.handler(l);return ce(f)?f.then(()=>l):l}),e||u.getInternalMethods().getUsageInstance().cacheHelpMessage(),ce(n)&&!u.getInternalMethods().hasParseCallback()&&n.catch(l=>{try{u.getInternalMethods().getUsageInstance().fail(null,l)}catch{}})}return e||(s.commands.pop(),s.fullCommands.pop()),n}applyMiddlewareAndGetResult(e,t,n,s,r,u,a){let c={};if(r)return n;a.getInternalMethods().getHasOutput()||(c=this.populatePositionals(t,n,s,a));const h=this.globalMiddleware.getMiddleware().slice(0).concat(t.middlewares),l=Nt(n,a,h,!0);return ce(l)?l.then(f=>this.handleValidationAndGetResult(e,t,f,s,u,a,h,c)):this.handleValidationAndGetResult(e,t,l,s,u,a,h,c)}populatePositionals(e,t,n,s){t._=t._.slice(n.commands.length);const r=e.demanded.slice(0),u=e.optional.slice(0),a={};for(this.validation.positionalCount(r.length,t._.length);r.length;){const c=r.shift();this.populatePositional(c,t,a)}for(;u.length;){const c=u.shift();this.populatePositional(c,t,a)}return t._=n.commands.concat(t._.map(c=>""+c)),this.postProcessPositionals(t,a,this.cmdToParseOptions(e.original),s),a}populatePositional(e,t,n){const s=e.cmd[0];e.variadic?n[s]=t._.splice(0).map(String):t._.length&&(n[s]=[String(t._.shift())])}cmdToParseOptions(e){const t={array:[],default:{},alias:{},demand:{}},n=Pt(e);return n.demanded.forEach(s=>{const[r,...u]=s.cmd;s.variadic&&(t.array.push(r),t.default[r]=[]),t.alias[r]=u,t.demand[r]=!0}),n.optional.forEach(s=>{const[r,...u]=s.cmd;s.variadic&&(t.array.push(r),t.default[r]=[]),t.alias[r]=u}),t}postProcessPositionals(e,t,n,s){const r=Object.assign({},s.getOptions());r.default=Object.assign(n.default,r.default);for(const h of Object.keys(n.alias))r.alias[h]=(r.alias[h]||[]).concat(n.alias[h]);r.array=r.array.concat(n.array),r.config={};const u=[];if(Object.keys(t).forEach(h=>{t[h].map(l=>{r.configuration["unknown-options-as-args"]&&(r.key[h]=!0),u.push(`--${h}`),u.push(l)})}),!u.length)return;const a=Object.assign({},r.configuration,{"populate--":!1}),c=this.shim.Parser.detailed(u,Object.assign({},r,{configuration:a}));if(c.error)s.getInternalMethods().getUsageInstance().fail(c.error.message,c.error);else{const h=Object.keys(t);Object.keys(t).forEach(l=>{h.push(...c.aliases[l])}),Object.keys(c.argv).forEach(l=>{h.includes(l)&&(t[l]||(t[l]=c.argv[l]),!this.isInConfigs(s,l)&&!this.isDefaulted(s,l)&&Object.prototype.hasOwnProperty.call(e,l)&&Object.prototype.hasOwnProperty.call(c.argv,l)&&(Array.isArray(e[l])||Array.isArray(c.argv[l]))?e[l]=[].concat(e[l],c.argv[l]):e[l]=c.argv[l])})}}isDefaulted(e,t){const{default:n}=e.getOptions();return Object.prototype.hasOwnProperty.call(n,t)||Object.prototype.hasOwnProperty.call(n,this.shim.Parser.camelCase(t))}isInConfigs(e,t){const{configObjects:n}=e.getOptions();return n.some(s=>Object.prototype.hasOwnProperty.call(s,t))||n.some(s=>Object.prototype.hasOwnProperty.call(s,this.shim.Parser.camelCase(t)))}runDefaultBuilderOn(e){if(!this.defaultCommand)return;if(this.shouldUpdateUsage(e)){const n=Et.test(this.defaultCommand.original)?this.defaultCommand.original:this.defaultCommand.original.replace(/^[^[\]<>]*/,"$0 ");e.getInternalMethods().getUsageInstance().usage(n,this.defaultCommand.description)}const t=this.defaultCommand.builder;if($n(t))return t(e,!0);Yi(t)||Object.keys(t).forEach(n=>{e.option(n,t[n])})}moduleName(e){const t=ou(e);if(!t)throw new Error(`No command name given for module: ${this.shim.inspect(e)}`);return this.commandFromFilename(t.filename)}commandFromFilename(e){return this.shim.path.basename(e,this.shim.path.extname(e))}extractDesc({describe:e,description:t,desc:n}){for(const s of[e,t,n]){if(typeof s=="string"||s===!1)return s;Le(s,!0,this.shim)}return!1}freeze(){this.frozens.push({handlers:this.handlers,aliasMap:this.aliasMap,defaultCommand:this.defaultCommand})}unfreeze(){const e=this.frozens.pop();Le(e,void 0,this.shim),{handlers:this.handlers,aliasMap:this.aliasMap,defaultCommand:this.defaultCommand}=e}reset(){return this.handlers={},this.aliasMap={},this.defaultCommand=void 0,this.requireCache=new Set,this}}function cu(i,e,t,n){return new au(i,e,t,n)}function Yi(i){return typeof i=="object"&&!!i.builder&&typeof i.handler=="function"}function lu(i){return i.every(e=>typeof e=="string")}function $n(i){return typeof i=="function"}function fu(i){return typeof i=="object"}function du(i){return typeof i=="object"&&!Array.isArray(i)}function Mt(i={},e=()=>!0){const t={};return tn(i).forEach(n=>{e(n,i[n])&&(t[n]=i[n])}),t}function kt(i){typeof process>"u"||[process.stdout,process.stderr].forEach(e=>{const t=e;t._handle&&t.isTTY&&typeof t._handle.setBlocking=="function"&&t._handle.setBlocking(i)})}function hu(i){return typeof i=="boolean"}function pu(i,e){const t=e.y18n.__,n={},s=[];n.failFn=function(O){s.push(O)};let r=null,u=null,a=!0;n.showHelpOnFail=function(O=!0,I){const[V,K]=typeof O=="string"?[!0,O]:[O,I];return i.getInternalMethods().isGlobalContext()&&(u=K),r=K,a=V,n};let c=!1;n.fail=function(O,I){const V=i.getInternalMethods().getLoggerInstance();if(s.length)for(let K=s.length-1;K>=0;--K){const de=s[K];if(hu(de)){if(I)throw I;if(O)throw Error(O)}else de(O,I,n)}else{if(i.getExitProcess()&&kt(!0),!c){c=!0,a&&(i.showHelp("error"),V.error()),(O||I)&&V.error(O||I);const K=r||u;K&&((O||I)&&V.error(""),V.error(K))}if(I=I||new le(O),i.getExitProcess())return i.exit(1);if(i.getInternalMethods().hasParseCallback())return i.exit(1,I);throw I}};let h=[],l=!1;n.usage=(j,O)=>j===null?(l=!0,h=[],n):(l=!1,h.push([j,O||""]),n),n.getUsage=()=>h,n.getUsageDisabled=()=>l,n.getPositionalGroupName=()=>t("Positionals:");let f=[];n.example=(j,O)=>{f.push([j,O||""])};let m=[];n.command=function(O,I,V,K,de=!1){V&&(m=m.map(J=>(J[2]=!1,J))),m.push([O,I||"",V,K,de])},n.getCommands=()=>m;let C={};n.describe=function(O,I){Array.isArray(O)?O.forEach(V=>{n.describe(V,I)}):typeof O=="object"?Object.keys(O).forEach(V=>{n.describe(V,O[V])}):C[O]=I},n.getDescriptions=()=>C;let F=[];n.epilog=j=>{F.push(j)};let w=!1,p;n.wrap=j=>{w=!0,p=j},n.getWrap=()=>e.getEnv("YARGS_DISABLE_WRAP")?null:(w||(p=Ct(),w=!0),p);const y="__yargsString__:";n.deferY18nLookup=j=>y+j,n.help=function(){if(L)return L;M();const O=i.customScriptName?i.$0:e.path.basename(i.$0),I=i.getDemandedOptions(),V=i.getDemandedCommands(),K=i.getDeprecatedOptions(),de=i.getGroups(),J=i.getOptions();let he=[];he=he.concat(Object.keys(C)),he=he.concat(Object.keys(I)),he=he.concat(Object.keys(V)),he=he.concat(Object.keys(J.default)),he=he.filter(Ce),he=Object.keys(he.reduce((k,te)=>(te!=="_"&&(k[te]=!0),k),{}));const nt=n.getWrap(),ne=e.cliui({width:nt,wrap:!!nt});if(!l){if(h.length)h.forEach(k=>{ne.div({text:`${k[0].replace(/\$0/g,O)}`}),k[1]&&ne.div({text:`${k[1]}`,padding:[1,0,0,0]})}),ne.div();else if(m.length){let k=null;V._?k=`${O} <${t("command")}>
8
+ `:k=`${O} [${t("command")}]
9
+ `,ne.div(`${k}`)}}if(m.length>1||m.length===1&&!m[0][2]){ne.div(t("Commands:"));const k=i.getInternalMethods().getContext(),te=k.commands.length?`${k.commands.join(" ")} `:"";i.getInternalMethods().getParserConfiguration()["sort-commands"]===!0&&(m=m.sort((q,se)=>q[0].localeCompare(se[0])));const ie=O?`${O} `:"";m.forEach(q=>{const se=`${ie}${te}${q[0].replace(/^\$0 ?/,"")}`;ne.span({text:se,padding:[0,2,0,2],width:B(m,nt,`${O}${te}`)+4},{text:q[1]});const ue=[];q[2]&&ue.push(`[${t("default")}]`),q[3]&&q[3].length&&ue.push(`[${t("aliases:")} ${q[3].join(", ")}]`),q[4]&&(typeof q[4]=="string"?ue.push(`[${t("deprecated: %s",q[4])}]`):ue.push(`[${t("deprecated")}]`)),ue.length?ne.div({text:ue.join(" "),padding:[0,0,0,2],align:"right"}):ne.div()}),ne.div()}const Ue=(Object.keys(J.alias)||[]).concat(Object.keys(i.parsed.newAliases)||[]);he=he.filter(k=>!i.parsed.newAliases[k]&&Ue.every(te=>(J.alias[te]||[]).indexOf(k)===-1));const Ve=t("Options:");de[Ve]||(de[Ve]=[]),U(he,J.alias,de,Ve);const it=k=>/^--/.test(nn(k)),T=Object.keys(de).filter(k=>de[k].length>0).map(k=>{const te=de[k].filter(Ce).map(ie=>{if(Ue.includes(ie))return ie;for(let q=0,se;(se=Ue[q])!==void 0;q++)if((J.alias[se]||[]).includes(ie))return se;return ie});return{groupName:k,normalizedKeys:te}}).filter(({normalizedKeys:k})=>k.length>0).map(({groupName:k,normalizedKeys:te})=>{const ie=te.reduce((q,se)=>(q[se]=[se].concat(J.alias[se]||[]).map(ue=>k===n.getPositionalGroupName()?ue:(/^[0-9]$/.test(ue)?J.boolean.includes(se)?"-":"--":ue.length>1?"--":"-")+ue).sort((ue,xe)=>it(ue)===it(xe)?0:it(ue)?1:-1).join(", "),q),{});return{groupName:k,normalizedKeys:te,switches:ie}});if(T.filter(({groupName:k})=>k!==n.getPositionalGroupName()).some(({normalizedKeys:k,switches:te})=>!k.every(ie=>it(te[ie])))&&T.filter(({groupName:k})=>k!==n.getPositionalGroupName()).forEach(({normalizedKeys:k,switches:te})=>{k.forEach(ie=>{it(te[ie])&&(te[ie]=mu(te[ie],4))})}),T.forEach(({groupName:k,normalizedKeys:te,switches:ie})=>{ne.div(k),te.forEach(q=>{const se=ie[q];let ue=C[q]||"",xe=null;ue.includes(y)&&(ue=t(ue.substring(y.length))),J.boolean.includes(q)&&(xe=`[${t("boolean")}]`),J.count.includes(q)&&(xe=`[${t("count")}]`),J.string.includes(q)&&(xe=`[${t("string")}]`),J.normalize.includes(q)&&(xe=`[${t("string")}]`),J.array.includes(q)&&(xe=`[${t("array")}]`),J.number.includes(q)&&(xe=`[${t("number")}]`);const $e=D=>typeof D=="string"?`[${t("deprecated: %s",D)}]`:`[${t("deprecated")}]`,Yt=[q in K?$e(K[q]):null,xe,q in I?`[${t("required")}]`:null,J.choices&&J.choices[q]?`[${t("choices:")} ${n.stringifiedValues(J.choices[q])}]`:null,Ie(J.default[q],J.defaultDescription[q])].filter(Boolean).join(" ");ne.span({text:nn(se),padding:[0,2,0,2+qi(se)],width:B(ie,nt)+4},ue);const d=i.getInternalMethods().getUsageConfiguration()["hide-types"]===!0;Yt&&!d?ne.div({text:Yt,padding:[0,0,0,2],align:"right"}):ne.div()}),ne.div()}),f.length&&(ne.div(t("Examples:")),f.forEach(k=>{k[0]=k[0].replace(/\$0/g,O)}),f.forEach(k=>{k[1]===""?ne.div({text:k[0],padding:[0,2,0,2]}):ne.div({text:k[0],padding:[0,2,0,2],width:B(f,nt)+4},{text:k[1]})}),ne.div()),F.length>0){const k=F.map(te=>te.replace(/\$0/g,O)).join(`
10
+ `);ne.div(`${k}
11
+ `)}return ne.toString().replace(/\s*$/,"")};function B(j,O,I){let V=0;return Array.isArray(j)||(j=Object.values(j).map(K=>[K])),j.forEach(K=>{V=Math.max(e.stringWidth(I?`${I} ${nn(K[0])}`:nn(K[0]))+qi(K[0]),V)}),O&&(V=Math.min(V,parseInt((O*.5).toString(),10))),V}function M(){const j=i.getDemandedOptions(),O=i.getOptions();(Object.keys(O.alias)||[]).forEach(I=>{O.alias[I].forEach(V=>{C[V]&&n.describe(I,C[V]),V in j&&i.demandOption(I,j[V]),O.boolean.includes(V)&&i.boolean(I),O.count.includes(V)&&i.count(I),O.string.includes(V)&&i.string(I),O.normalize.includes(V)&&i.normalize(I),O.array.includes(V)&&i.array(I),O.number.includes(V)&&i.number(I)})})}let L;n.cacheHelpMessage=function(){L=this.help()},n.clearCachedHelpMessage=function(){L=void 0},n.hasCachedHelpMessage=function(){return!!L};function U(j,O,I,V){let K=[],de=null;return Object.keys(I).forEach(J=>{K=K.concat(I[J])}),j.forEach(J=>{de=[J].concat(O[J]),de.some(he=>K.indexOf(he)!==-1)||I[V].push(J)}),K}function Ce(j){return i.getOptions().hiddenOptions.indexOf(j)<0||i.parsed.argv[i.getOptions().showHiddenOpt]}n.showHelp=j=>{const O=i.getInternalMethods().getLoggerInstance();j||(j="error"),(typeof j=="function"?j:O[j])(n.help())},n.functionDescription=j=>["(",j.name?e.Parser.decamelize(j.name,"-"):t("generated-value"),")"].join(""),n.stringifiedValues=function(O,I){let V="";const K=I||", ",de=[].concat(O);return!O||!de.length||de.forEach(J=>{V.length&&(V+=K),V+=JSON.stringify(J)}),V};function Ie(j,O){let I=`[${t("default:")} `;if(j===void 0&&!O)return null;if(O)I+=O;else switch(typeof j){case"string":I+=`"${j}"`;break;case"object":I+=JSON.stringify(j);break;default:I+=j}return`${I}]`}function Ct(){return e.process.stdColumns?Math.min(80,e.process.stdColumns):80}let tt=null;n.version=j=>{tt=j},n.showVersion=j=>{const O=i.getInternalMethods().getLoggerInstance();j||(j="error"),(typeof j=="function"?j:O[j])(tt)},n.reset=function(O){return r=null,c=!1,h=[],l=!1,F=[],f=[],m=[],C=Mt(C,I=>!O[I]),n};const X=[];return n.freeze=function(){X.push({failMessage:r,failureOutput:c,usages:h,usageDisabled:l,epilogs:F,examples:f,commands:m,descriptions:C})},n.unfreeze=function(O=!1){const I=X.pop();I&&(O?(C={...I.descriptions,...C},m=[...I.commands,...m],h=[...I.usages,...h],f=[...I.examples,...f],F=[...I.epilogs,...F]):{failMessage:r,failureOutput:c,usages:h,usageDisabled:l,epilogs:F,examples:f,commands:m,descriptions:C}=I)},n}function jn(i){return typeof i=="object"}function mu(i,e){return jn(i)?{text:i.text,indentation:i.indentation+e}:{text:i,indentation:e}}function qi(i){return jn(i)?i.indentation:0}function nn(i){return jn(i)?i.text:i}const gu=`###-begin-{{app_name}}-completions-###
12
+ #
13
+ # yargs command completion script
14
+ #
15
+ # Installation: {{app_path}} {{completion_command}} >> ~/.bashrc
16
+ # or {{app_path}} {{completion_command}} >> ~/.bash_profile on OSX.
17
+ #
18
+ _{{app_name}}_yargs_completions()
19
+ {
20
+ local cur_word args type_list
21
+
22
+ cur_word="\${COMP_WORDS[COMP_CWORD]}"
23
+ args=("\${COMP_WORDS[@]}")
24
+
25
+ # ask yargs to generate completions.
26
+ type_list=$({{app_path}} --get-yargs-completions "\${args[@]}")
27
+
28
+ COMPREPLY=( $(compgen -W "\${type_list}" -- \${cur_word}) )
29
+
30
+ # if no match was found, fall back to filename completion
31
+ if [ \${#COMPREPLY[@]} -eq 0 ]; then
32
+ COMPREPLY=()
33
+ fi
34
+
35
+ return 0
36
+ }
37
+ complete -o bashdefault -o default -F _{{app_name}}_yargs_completions {{app_name}}
38
+ ###-end-{{app_name}}-completions-###
39
+ `,Du=`#compdef {{app_name}}
40
+ ###-begin-{{app_name}}-completions-###
41
+ #
42
+ # yargs command completion script
43
+ #
44
+ # Installation: {{app_path}} {{completion_command}} >> ~/.zshrc
45
+ # or {{app_path}} {{completion_command}} >> ~/.zprofile on OSX.
46
+ #
47
+ _{{app_name}}_yargs_completions()
48
+ {
49
+ local reply
50
+ local si=$IFS
51
+ IFS=$'
52
+ ' reply=($(COMP_CWORD="$((CURRENT-1))" COMP_LINE="$BUFFER" COMP_POINT="$CURSOR" {{app_path}} --get-yargs-completions "\${words[@]}"))
53
+ IFS=$si
54
+ _describe 'values' reply
55
+ }
56
+ compdef _{{app_name}}_yargs_completions {{app_name}}
57
+ ###-end-{{app_name}}-completions-###
58
+ `;class Cu{constructor(e,t,n,s){var r,u,a;this.yargs=e,this.usage=t,this.command=n,this.shim=s,this.completionKey="get-yargs-completions",this.aliases=null,this.customCompletionFunction=null,this.indexAfterLastReset=0,this.zshShell=(a=((r=this.shim.getEnv("SHELL"))===null||r===void 0?void 0:r.includes("zsh"))||((u=this.shim.getEnv("ZSH_NAME"))===null||u===void 0?void 0:u.includes("zsh")))!==null&&a!==void 0?a:!1}defaultCompletion(e,t,n,s){const r=this.command.getCommandHandlers();for(let a=0,c=e.length;a<c;++a)if(r[e[a]]&&r[e[a]].builder){const h=r[e[a]].builder;if($n(h)){this.indexAfterLastReset=a+1;const l=this.yargs.getInternalMethods().reset();return h(l,!0),l.argv}}const u=[];this.commandCompletions(u,e,n),this.optionCompletions(u,e,t,n),this.choicesFromOptionsCompletions(u,e,t,n),this.choicesFromPositionalsCompletions(u,e,t,n),s(null,u)}commandCompletions(e,t,n){const s=this.yargs.getInternalMethods().getContext().commands;!n.match(/^-/)&&s[s.length-1]!==n&&!this.previousArgHasChoices(t)&&this.usage.getCommands().forEach(r=>{const u=Pt(r[0]).cmd;if(t.indexOf(u)===-1)if(!this.zshShell)e.push(u);else{const a=r[1]||"";e.push(u.replace(/:/g,"\\:")+":"+a)}})}optionCompletions(e,t,n,s){if((s.match(/^-/)||s===""&&e.length===0)&&!this.previousArgHasChoices(t)){const r=this.yargs.getOptions(),u=this.yargs.getGroups()[this.usage.getPositionalGroupName()]||[];Object.keys(r.key).forEach(a=>{const c=!!r.configuration["boolean-negation"]&&r.boolean.includes(a);!u.includes(a)&&!r.hiddenOptions.includes(a)&&!this.argsContainKey(t,a,c)&&this.completeOptionKey(a,e,s,c&&!!r.default[a])})}}choicesFromOptionsCompletions(e,t,n,s){if(this.previousArgHasChoices(t)){const r=this.getPreviousArgChoices(t);r&&r.length>0&&e.push(...r.map(u=>u.replace(/:/g,"\\:")))}}choicesFromPositionalsCompletions(e,t,n,s){if(s===""&&e.length>0&&this.previousArgHasChoices(t))return;const r=this.yargs.getGroups()[this.usage.getPositionalGroupName()]||[],u=Math.max(this.indexAfterLastReset,this.yargs.getInternalMethods().getContext().commands.length+1),a=r[n._.length-u-1];if(!a)return;const c=this.yargs.getOptions().choices[a]||[];for(const h of c)h.startsWith(s)&&e.push(h.replace(/:/g,"\\:"))}getPreviousArgChoices(e){if(e.length<1)return;let t=e[e.length-1],n="";if(!t.startsWith("-")&&e.length>1&&(n=t,t=e[e.length-2]),!t.startsWith("-"))return;const s=t.replace(/^-+/,""),r=this.yargs.getOptions(),u=[s,...this.yargs.getAliases()[s]||[]];let a;for(const c of u)if(Object.prototype.hasOwnProperty.call(r.key,c)&&Array.isArray(r.choices[c])){a=r.choices[c];break}if(a)return a.filter(c=>!n||c.startsWith(n))}previousArgHasChoices(e){const t=this.getPreviousArgChoices(e);return t!==void 0&&t.length>0}argsContainKey(e,t,n){const s=r=>e.indexOf((/^[^0-9]$/.test(r)?"-":"--")+r)!==-1;if(s(t)||n&&s(`no-${t}`))return!0;if(this.aliases){for(const r of this.aliases[t])if(s(r))return!0}return!1}completeOptionKey(e,t,n,s){var r,u,a,c;let h=e;if(this.zshShell){const C=this.usage.getDescriptions(),F=(u=(r=this===null||this===void 0?void 0:this.aliases)===null||r===void 0?void 0:r[e])===null||u===void 0?void 0:u.find(y=>{const B=C[y];return typeof B=="string"&&B.length>0}),w=F?C[F]:void 0,p=(c=(a=C[e])!==null&&a!==void 0?a:w)!==null&&c!==void 0?c:"";h=`${e.replace(/:/g,"\\:")}:${p.replace("__yargsString__:","").replace(/(\r\n|\n|\r)/gm," ")}`}const l=C=>/^--/.test(C),f=C=>/^[^0-9]$/.test(C),m=!l(n)&&f(e)?"-":"--";t.push(m+h),s&&t.push(m+"no-"+h)}customCompletion(e,t,n,s){if(Le(this.customCompletionFunction,null,this.shim),Au(this.customCompletionFunction)){const r=this.customCompletionFunction(n,t);return ce(r)?r.then(u=>{this.shim.process.nextTick(()=>{s(null,u)})}).catch(u=>{this.shim.process.nextTick(()=>{s(u,void 0)})}):s(null,r)}else return Eu(this.customCompletionFunction)?this.customCompletionFunction(n,t,(r=s)=>this.defaultCompletion(e,t,n,r),r=>{s(null,r)}):this.customCompletionFunction(n,t,r=>{s(null,r)})}getCompletion(e,t){const n=e.length?e[e.length-1]:"",s=this.yargs.parse(e,!0),r=this.customCompletionFunction?u=>this.customCompletion(e,u,n,t):u=>this.defaultCompletion(e,u,n,t);return ce(s)?s.then(r):r(s)}generateCompletionScript(e,t){let n=this.zshShell?Du:gu;const s=this.shim.path.basename(e);return e.match(/\.js$/)&&(e=`./${e}`),n=n.replace(/{{app_name}}/g,s),n=n.replace(/{{completion_command}}/g,t),n.replace(/{{app_path}}/g,e)}registerFunction(e){this.customCompletionFunction=e}setParsed(e){this.aliases=e.aliases}}function wu(i,e,t,n){return new Cu(i,e,t,n)}function Au(i){return i.length<3}function Eu(i){return i.length>3}function bu(i,e){if(i.length===0)return e.length;if(e.length===0)return i.length;const t=[];let n;for(n=0;n<=e.length;n++)t[n]=[n];let s;for(s=0;s<=i.length;s++)t[0][s]=s;for(n=1;n<=e.length;n++)for(s=1;s<=i.length;s++)e.charAt(n-1)===i.charAt(s-1)?t[n][s]=t[n-1][s-1]:n>1&&s>1&&e.charAt(n-2)===i.charAt(s-1)&&e.charAt(n-1)===i.charAt(s-2)?t[n][s]=t[n-2][s-2]+1:t[n][s]=Math.min(t[n-1][s-1]+1,Math.min(t[n][s-1]+1,t[n-1][s]+1));return t[e.length][i.length]}const Ji=["$0","--","_"];function Fu(i,e,t){const n=t.y18n.__,s=t.y18n.__n,r={};r.nonOptionCount=function(f){const m=i.getDemandedCommands(),F=f._.length+(f["--"]?f["--"].length:0)-i.getInternalMethods().getContext().commands.length;m._&&(F<m._.min||F>m._.max)&&(F<m._.min?m._.minMsg!==void 0?e.fail(m._.minMsg?m._.minMsg.replace(/\$0/g,F.toString()).replace(/\$1/,m._.min.toString()):null):e.fail(s("Not enough non-option arguments: got %s, need at least %s","Not enough non-option arguments: got %s, need at least %s",F,F.toString(),m._.min.toString())):F>m._.max&&(m._.maxMsg!==void 0?e.fail(m._.maxMsg?m._.maxMsg.replace(/\$0/g,F.toString()).replace(/\$1/,m._.max.toString()):null):e.fail(s("Too many non-option arguments: got %s, maximum of %s","Too many non-option arguments: got %s, maximum of %s",F,F.toString(),m._.max.toString()))))},r.positionalCount=function(f,m){m<f&&e.fail(s("Not enough non-option arguments: got %s, need at least %s","Not enough non-option arguments: got %s, need at least %s",m,m+"",f+""))},r.requiredArguments=function(f,m){let C=null;for(const F of Object.keys(m))(!Object.prototype.hasOwnProperty.call(f,F)||typeof f[F]>"u")&&(C=C||{},C[F]=m[F]);if(C){const F=[];for(const p of Object.keys(C)){const y=C[p];y&&F.indexOf(y)<0&&F.push(y)}const w=F.length?`
59
+ ${F.join(`
60
+ `)}`:"";e.fail(s("Missing required argument: %s","Missing required arguments: %s",Object.keys(C).length,Object.keys(C).join(", ")+w))}},r.unknownArguments=function(f,m,C,F,w=!0){var p;const y=i.getInternalMethods().getCommandInstance().getCommands(),B=[],M=i.getInternalMethods().getContext();if(Object.keys(f).forEach(L=>{!Ji.includes(L)&&!Object.prototype.hasOwnProperty.call(C,L)&&!Object.prototype.hasOwnProperty.call(i.getInternalMethods().getParseContext(),L)&&!r.isValidAndSomeAliasIsNotNew(L,m)&&B.push(L)}),w&&(M.commands.length>0||y.length>0||F)&&f._.slice(M.commands.length).forEach(L=>{y.includes(""+L)||B.push(""+L)}),w){const U=((p=i.getDemandedCommands()._)===null||p===void 0?void 0:p.max)||0,Ce=M.commands.length+U;Ce<f._.length&&f._.slice(Ce).forEach(Ie=>{Ie=String(Ie),!M.commands.includes(Ie)&&!B.includes(Ie)&&B.push(Ie)})}B.length&&e.fail(s("Unknown argument: %s","Unknown arguments: %s",B.length,B.map(L=>L.trim()?L:`"${L}"`).join(", ")))},r.unknownCommands=function(f){const m=i.getInternalMethods().getCommandInstance().getCommands(),C=[],F=i.getInternalMethods().getContext();return(F.commands.length>0||m.length>0)&&f._.slice(F.commands.length).forEach(w=>{m.includes(""+w)||C.push(""+w)}),C.length>0?(e.fail(s("Unknown command: %s","Unknown commands: %s",C.length,C.join(", "))),!0):!1},r.isValidAndSomeAliasIsNotNew=function(f,m){if(!Object.prototype.hasOwnProperty.call(m,f))return!1;const C=i.parsed.newAliases;return[f,...m[f]].some(F=>!Object.prototype.hasOwnProperty.call(C,F)||!C[f])},r.limitedChoices=function(f){const m=i.getOptions(),C={};if(!Object.keys(m.choices).length)return;Object.keys(f).forEach(p=>{Ji.indexOf(p)===-1&&Object.prototype.hasOwnProperty.call(m.choices,p)&&[].concat(f[p]).forEach(y=>{m.choices[p].indexOf(y)===-1&&y!==void 0&&(C[p]=(C[p]||[]).concat(y))})});const F=Object.keys(C);if(!F.length)return;let w=n("Invalid values:");F.forEach(p=>{w+=`
61
+ ${n("Argument: %s, Given: %s, Choices: %s",p,e.stringifiedValues(C[p]),e.stringifiedValues(m.choices[p]))}`}),e.fail(w)};let u={};r.implies=function(f,m){x("<string|object> [array|number|string]",[f,m],arguments.length),typeof f=="object"?Object.keys(f).forEach(C=>{r.implies(C,f[C])}):(i.global(f),u[f]||(u[f]=[]),Array.isArray(m)?m.forEach(C=>r.implies(f,C)):(Le(m,void 0,t),u[f].push(m)))},r.getImplied=function(){return u};function a(l,f){const m=Number(f);return f=isNaN(m)?f:m,typeof f=="number"?f=l._.length>=f:f.match(/^--no-.+/)?(f=f.match(/^--no-(.+)/)[1],f=!Object.prototype.hasOwnProperty.call(l,f)):f=Object.prototype.hasOwnProperty.call(l,f),f}r.implications=function(f){const m=[];if(Object.keys(u).forEach(C=>{const F=C;(u[C]||[]).forEach(w=>{let p=F;const y=w;p=a(f,p),w=a(f,w),p&&!w&&m.push(` ${F} -> ${y}`)})}),m.length){let C=`${n("Implications failed:")}
62
+ `;m.forEach(F=>{C+=F}),e.fail(C)}};let c={};r.conflicts=function(f,m){x("<string|object> [array|string]",[f,m],arguments.length),typeof f=="object"?Object.keys(f).forEach(C=>{r.conflicts(C,f[C])}):(i.global(f),c[f]||(c[f]=[]),Array.isArray(m)?m.forEach(C=>r.conflicts(f,C)):c[f].push(m))},r.getConflicting=()=>c,r.conflicting=function(f){Object.keys(f).forEach(m=>{c[m]&&c[m].forEach(C=>{C&&f[m]!==void 0&&f[C]!==void 0&&e.fail(n("Arguments %s and %s are mutually exclusive",m,C))})}),i.getInternalMethods().getParserConfiguration()["strip-dashed"]&&Object.keys(c).forEach(m=>{c[m].forEach(C=>{C&&f[t.Parser.camelCase(m)]!==void 0&&f[t.Parser.camelCase(C)]!==void 0&&e.fail(n("Arguments %s and %s are mutually exclusive",m,C))})})},r.recommendCommands=function(f,m){m=m.sort((p,y)=>y.length-p.length);let F=null,w=1/0;for(let p=0,y;(y=m[p])!==void 0;p++){const B=bu(f,y);B<=3&&B<w&&(w=B,F=y)}F&&e.fail(n("Did you mean %s?",F))},r.reset=function(f){return u=Mt(u,m=>!f[m]),c=Mt(c,m=>!f[m]),r};const h=[];return r.freeze=function(){h.push({implied:u,conflicting:c})},r.unfreeze=function(){const f=h.pop();Le(f,void 0,t),{implied:u,conflicting:c}=f},r}let Pn=[],Tt;function Nn(i,e,t,n){Tt=n;let s={};if(Object.prototype.hasOwnProperty.call(i,"extends")){if(typeof i.extends!="string")return s;const r=/\.json|\..*rc$/.test(i.extends);let u=null;if(r)u=vu(e,i.extends);else try{u=require.resolve(i.extends)}catch{return i}yu(u),Pn.push(u),s=r?JSON.parse(Tt.readFileSync(u,"utf8")):qt(i.extends),delete i.extends,s=Nn(s,Tt.path.dirname(u),t,Tt)}return Pn=[],t?Ki(s,i):Object.assign({},s,i)}function yu(i){if(Pn.indexOf(i)>-1)throw new le(`Circular extended configurations: '${i}'.`)}function vu(i,e){return Tt.path.resolve(i,e)}function Ki(i,e){const t={};function n(s){return s&&typeof s=="object"&&!Array.isArray(s)}Object.assign(t,i);for(const s of Object.keys(e))n(e[s])&&n(t[s])?t[s]=Ki(i[s],e[s]):t[s]=e[s];return t}var S=function(i,e,t,n,s){if(n==="m")throw new TypeError("Private method is not writable");if(n==="a"&&!s)throw new TypeError("Private accessor was defined without a setter");if(typeof e=="function"?i!==e||!s:!e.has(i))throw new TypeError("Cannot write private member to an object whose class did not declare it");return n==="a"?s.call(i,t):s?s.value=t:e.set(i,t),t},o=function(i,e,t,n){if(t==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof e=="function"?i!==e||!n:!e.has(i))throw new TypeError("Cannot read private member from an object whose class did not declare it");return t==="m"?n:t==="a"?n.call(i):n?n.value:e.get(i)},oe,rt,Rt,ve,be,sn,Ke,ut,rn,Be,un,Oe,Te,Fe,_e,on,bt,me,P,an,cn,ye,ot,Ft,at,Qe,ln,R,ct,lt,ft,W,fn,Re,re;function Bu(i){return(e=[],t=i.process.cwd(),n)=>{const s=new Ou(e,t,n,i);return Object.defineProperty(s,"argv",{get:()=>s.parse(),enumerable:!0}),s.help(),s.version(),s}}const Qi=Symbol("copyDoubleDash"),Xi=Symbol("copyDoubleDash"),Ln=Symbol("deleteFromParserHintObject"),Zi=Symbol("emitWarning"),es=Symbol("freeze"),ts=Symbol("getDollarZero"),dt=Symbol("getParserConfiguration"),ns=Symbol("getUsageConfiguration"),Mn=Symbol("guessLocale"),is=Symbol("guessVersion"),ss=Symbol("parsePositionalNumbers"),kn=Symbol("pkgUp"),Xe=Symbol("populateParserHintArray"),yt=Symbol("populateParserHintSingleValueDictionary"),Tn=Symbol("populateParserHintArrayDictionary"),Rn=Symbol("populateParserHintDictionary"),Wn=Symbol("sanitizeKey"),Un=Symbol("setKey"),Vn=Symbol("unfreeze"),rs=Symbol("validateAsync"),us=Symbol("getCommandInstance"),os=Symbol("getContext"),as=Symbol("getHasOutput"),cs=Symbol("getLoggerInstance"),ls=Symbol("getParseContext"),fs=Symbol("getUsageInstance"),ds=Symbol("getValidationInstance"),dn=Symbol("hasParseCallback"),hs=Symbol("isGlobalContext"),ht=Symbol("postProcess"),ps=Symbol("rebase"),zn=Symbol("reset"),Wt=Symbol("runYargsParserAndExecuteCommands"),Hn=Symbol("runValidation"),ms=Symbol("setHasOutput"),pt=Symbol("kTrackManuallySetKeys");class Ou{constructor(e=[],t,n,s){this.customScriptName=!1,this.parsed=!1,oe.set(this,void 0),rt.set(this,void 0),Rt.set(this,{commands:[],fullCommands:[]}),ve.set(this,null),be.set(this,null),sn.set(this,"show-hidden"),Ke.set(this,null),ut.set(this,!0),rn.set(this,{}),Be.set(this,!0),un.set(this,[]),Oe.set(this,void 0),Te.set(this,{}),Fe.set(this,!1),_e.set(this,null),on.set(this,!0),bt.set(this,void 0),me.set(this,""),P.set(this,void 0),an.set(this,void 0),cn.set(this,{}),ye.set(this,null),ot.set(this,null),Ft.set(this,{}),at.set(this,{}),Qe.set(this,void 0),ln.set(this,!1),R.set(this,void 0),ct.set(this,!1),lt.set(this,!1),ft.set(this,!1),W.set(this,void 0),fn.set(this,{}),Re.set(this,null),re.set(this,void 0),S(this,R,s,"f"),S(this,Qe,e,"f"),S(this,rt,t,"f"),S(this,an,n,"f"),S(this,Oe,new su(this),"f"),this.$0=this[ts](),this[zn](),S(this,oe,o(this,oe,"f"),"f"),S(this,W,o(this,W,"f"),"f"),S(this,re,o(this,re,"f"),"f"),S(this,P,o(this,P,"f"),"f"),o(this,P,"f").showHiddenOpt=o(this,sn,"f"),S(this,bt,this[Xi](),"f")}addHelpOpt(e,t){const n="help";return x("[string|boolean] [string]",[e,t],arguments.length),o(this,_e,"f")&&(this[Ln](o(this,_e,"f")),S(this,_e,null,"f")),e===!1&&t===void 0?this:(S(this,_e,typeof e=="string"?e:n,"f"),this.boolean(o(this,_e,"f")),this.describe(o(this,_e,"f"),t||o(this,W,"f").deferY18nLookup("Show help")),this)}help(e,t){return this.addHelpOpt(e,t)}addShowHiddenOpt(e,t){if(x("[string|boolean] [string]",[e,t],arguments.length),e===!1&&t===void 0)return this;const n=typeof e=="string"?e:o(this,sn,"f");return this.boolean(n),this.describe(n,t||o(this,W,"f").deferY18nLookup("Show hidden options")),o(this,P,"f").showHiddenOpt=n,this}showHidden(e,t){return this.addShowHiddenOpt(e,t)}alias(e,t){return x("<object|string|array> [string|array]",[e,t],arguments.length),this[Tn](this.alias.bind(this),"alias",e,t),this}array(e){return x("<array|string>",[e],arguments.length),this[Xe]("array",e),this[pt](e),this}boolean(e){return x("<array|string>",[e],arguments.length),this[Xe]("boolean",e),this[pt](e),this}check(e,t){return x("<function> [boolean]",[e,t],arguments.length),this.middleware((n,s)=>Lt(()=>e(n,s.getOptions()),r=>(r?(typeof r=="string"||r instanceof Error)&&o(this,W,"f").fail(r.toString(),r):o(this,W,"f").fail(o(this,R,"f").y18n.__("Argument check failed: %s",e.toString())),n),r=>(o(this,W,"f").fail(r.message?r.message:r.toString(),r),n)),!1,t),this}choices(e,t){return x("<object|string|array> [string|array]",[e,t],arguments.length),this[Tn](this.choices.bind(this),"choices",e,t),this}coerce(e,t){if(x("<object|string|array> [function]",[e,t],arguments.length),Array.isArray(e)){if(!t)throw new le("coerce callback must be provided");for(const n of e)this.coerce(n,t);return this}else if(typeof e=="object"){for(const n of Object.keys(e))this.coerce(n,e[n]);return this}if(!t)throw new le("coerce callback must be provided");return o(this,P,"f").key[e]=!0,o(this,Oe,"f").addCoerceMiddleware((n,s)=>{let r;return Object.prototype.hasOwnProperty.call(n,e)?Lt(()=>(r=s.getAliases(),t(n[e])),a=>{n[e]=a;const c=s.getInternalMethods().getParserConfiguration()["strip-aliased"];if(r[e]&&c!==!0)for(const h of r[e])n[h]=a;return n},a=>{throw new le(a.message)}):n},e),this}conflicts(e,t){return x("<string|object> [string|array]",[e,t],arguments.length),o(this,re,"f").conflicts(e,t),this}config(e="config",t,n){return x("[object|string] [string|function] [function]",[e,t,n],arguments.length),typeof e=="object"&&!Array.isArray(e)?(e=Nn(e,o(this,rt,"f"),this[dt]()["deep-merge-config"]||!1,o(this,R,"f")),o(this,P,"f").configObjects=(o(this,P,"f").configObjects||[]).concat(e),this):(typeof t=="function"&&(n=t,t=void 0),this.describe(e,t||o(this,W,"f").deferY18nLookup("Path to JSON config file")),(Array.isArray(e)?e:[e]).forEach(s=>{o(this,P,"f").config[s]=n||!0}),this)}completion(e,t,n){return x("[string] [string|boolean|function] [function]",[e,t,n],arguments.length),typeof t=="function"&&(n=t,t=void 0),S(this,be,e||o(this,be,"f")||"completion","f"),!t&&t!==!1&&(t="generate completion script"),this.command(o(this,be,"f"),t),n&&o(this,ve,"f").registerFunction(n),this}command(e,t,n,s,r,u){return x("<string|array|object> [string|boolean] [function|object] [function] [array] [boolean|string]",[e,t,n,s,r,u],arguments.length),o(this,oe,"f").addHandler(e,t,n,s,r,u),this}commands(e,t,n,s,r,u){return this.command(e,t,n,s,r,u)}commandDir(e,t){x("<string> [object]",[e,t],arguments.length);const n=o(this,an,"f")||o(this,R,"f").require;return o(this,oe,"f").addDirectory(e,n,o(this,R,"f").getCallerFile(),t),this}count(e){return x("<array|string>",[e],arguments.length),this[Xe]("count",e),this[pt](e),this}default(e,t,n){return x("<object|string|array> [*] [string]",[e,t,n],arguments.length),n&&(zi(e,o(this,R,"f")),o(this,P,"f").defaultDescription[e]=n),typeof t=="function"&&(zi(e,o(this,R,"f")),o(this,P,"f").defaultDescription[e]||(o(this,P,"f").defaultDescription[e]=o(this,W,"f").functionDescription(t)),t=t.call()),this[yt](this.default.bind(this),"default",e,t),this}defaults(e,t,n){return this.default(e,t,n)}demandCommand(e=1,t,n,s){return x("[number] [number|string] [string|null|undefined] [string|null|undefined]",[e,t,n,s],arguments.length),typeof t!="number"&&(n=t,t=1/0),this.global("_",!1),o(this,P,"f").demandedCommands._={min:e,max:t,minMsg:n,maxMsg:s},this}demand(e,t,n){return Array.isArray(t)?(t.forEach(s=>{Le(n,!0,o(this,R,"f")),this.demandOption(s,n)}),t=1/0):typeof t!="number"&&(n=t,t=1/0),typeof e=="number"?(Le(n,!0,o(this,R,"f")),this.demandCommand(e,t,n,n)):Array.isArray(e)?e.forEach(s=>{Le(n,!0,o(this,R,"f")),this.demandOption(s,n)}):typeof n=="string"?this.demandOption(e,n):(n===!0||typeof n>"u")&&this.demandOption(e),this}demandOption(e,t){return x("<object|string|array> [string]",[e,t],arguments.length),this[yt](this.demandOption.bind(this),"demandedOptions",e,t),this}deprecateOption(e,t){return x("<string> [string|boolean]",[e,t],arguments.length),o(this,P,"f").deprecatedOptions[e]=t,this}describe(e,t){return x("<object|string|array> [string]",[e,t],arguments.length),this[Un](e,!0),o(this,W,"f").describe(e,t),this}detectLocale(e){return x("<boolean>",[e],arguments.length),S(this,ut,e,"f"),this}env(e){return x("[string|boolean]",[e],arguments.length),e===!1?delete o(this,P,"f").envPrefix:o(this,P,"f").envPrefix=e||"",this}epilogue(e){return x("<string>",[e],arguments.length),o(this,W,"f").epilog(e),this}epilog(e){return this.epilogue(e)}example(e,t){return x("<string|array> [string]",[e,t],arguments.length),Array.isArray(e)?e.forEach(n=>this.example(...n)):o(this,W,"f").example(e,t),this}exit(e,t){S(this,Fe,!0,"f"),S(this,Ke,t,"f"),o(this,Be,"f")&&o(this,R,"f").process.exit(e)}exitProcess(e=!0){return x("[boolean]",[e],arguments.length),S(this,Be,e,"f"),this}fail(e){if(x("<function|boolean>",[e],arguments.length),typeof e=="boolean"&&e!==!1)throw new le("Invalid first argument. Expected function or boolean 'false'");return o(this,W,"f").failFn(e),this}getAliases(){return this.parsed?this.parsed.aliases:{}}async getCompletion(e,t){return x("<array> [function]",[e,t],arguments.length),t?o(this,ve,"f").getCompletion(e,t):new Promise((n,s)=>{o(this,ve,"f").getCompletion(e,(r,u)=>{r?s(r):n(u)})})}getDemandedOptions(){return x([],0),o(this,P,"f").demandedOptions}getDemandedCommands(){return x([],0),o(this,P,"f").demandedCommands}getDeprecatedOptions(){return x([],0),o(this,P,"f").deprecatedOptions}getDetectLocale(){return o(this,ut,"f")}getExitProcess(){return o(this,Be,"f")}getGroups(){return Object.assign({},o(this,Te,"f"),o(this,at,"f"))}getHelp(){if(S(this,Fe,!0,"f"),!o(this,W,"f").hasCachedHelpMessage()){if(!this.parsed){const t=this[Wt](o(this,Qe,"f"),void 0,void 0,0,!0);if(ce(t))return t.then(()=>o(this,W,"f").help())}const e=o(this,oe,"f").runDefaultBuilderOn(this);if(ce(e))return e.then(()=>o(this,W,"f").help())}return Promise.resolve(o(this,W,"f").help())}getOptions(){return o(this,P,"f")}getStrict(){return o(this,ct,"f")}getStrictCommands(){return o(this,lt,"f")}getStrictOptions(){return o(this,ft,"f")}global(e,t){return x("<string|array> [boolean]",[e,t],arguments.length),e=[].concat(e),t!==!1?o(this,P,"f").local=o(this,P,"f").local.filter(n=>e.indexOf(n)===-1):e.forEach(n=>{o(this,P,"f").local.includes(n)||o(this,P,"f").local.push(n)}),this}group(e,t){x("<string|array> <string>",[e,t],arguments.length);const n=o(this,at,"f")[t]||o(this,Te,"f")[t];o(this,at,"f")[t]&&delete o(this,at,"f")[t];const s={};return o(this,Te,"f")[t]=(n||[]).concat(e).filter(r=>s[r]?!1:s[r]=!0),this}hide(e){return x("<string>",[e],arguments.length),o(this,P,"f").hiddenOptions.push(e),this}implies(e,t){return x("<string|object> [number|string|array]",[e,t],arguments.length),o(this,re,"f").implies(e,t),this}locale(e){return x("[string]",[e],arguments.length),e===void 0?(this[Mn](),o(this,R,"f").y18n.getLocale()):(S(this,ut,!1,"f"),o(this,R,"f").y18n.setLocale(e),this)}middleware(e,t,n){return o(this,Oe,"f").addMiddleware(e,!!t,n)}nargs(e,t){return x("<string|object|array> [number]",[e,t],arguments.length),this[yt](this.nargs.bind(this),"narg",e,t),this}normalize(e){return x("<array|string>",[e],arguments.length),this[Xe]("normalize",e),this}number(e){return x("<array|string>",[e],arguments.length),this[Xe]("number",e),this[pt](e),this}option(e,t){if(x("<string|object> [object]",[e,t],arguments.length),typeof e=="object")Object.keys(e).forEach(n=>{this.options(n,e[n])});else{typeof t!="object"&&(t={}),this[pt](e),o(this,Re,"f")&&(e==="version"||t?.alias==="version")&&this[Zi](['"version" is a reserved word.',"Please do one of the following:",'- Disable version with `yargs.version(false)` if using "version" as an option',"- Use the built-in `yargs.version` method instead (if applicable)","- Use a different option key","https://yargs.js.org/docs/#api-reference-version"].join(`
63
+ `),void 0,"versionWarning"),o(this,P,"f").key[e]=!0,t.alias&&this.alias(e,t.alias);const n=t.deprecate||t.deprecated;n&&this.deprecateOption(e,n);const s=t.demand||t.required||t.require;s&&this.demand(e,s),t.demandOption&&this.demandOption(e,typeof t.demandOption=="string"?t.demandOption:void 0),t.conflicts&&this.conflicts(e,t.conflicts),"default"in t&&this.default(e,t.default),t.implies!==void 0&&this.implies(e,t.implies),t.nargs!==void 0&&this.nargs(e,t.nargs),t.config&&this.config(e,t.configParser),t.normalize&&this.normalize(e),t.choices&&this.choices(e,t.choices),t.coerce&&this.coerce(e,t.coerce),t.group&&this.group(e,t.group),(t.boolean||t.type==="boolean")&&(this.boolean(e),t.alias&&this.boolean(t.alias)),(t.array||t.type==="array")&&(this.array(e),t.alias&&this.array(t.alias)),(t.number||t.type==="number")&&(this.number(e),t.alias&&this.number(t.alias)),(t.string||t.type==="string")&&(this.string(e),t.alias&&this.string(t.alias)),(t.count||t.type==="count")&&this.count(e),typeof t.global=="boolean"&&this.global(e,t.global),t.defaultDescription&&(o(this,P,"f").defaultDescription[e]=t.defaultDescription),t.skipValidation&&this.skipValidation(e);const r=t.describe||t.description||t.desc,u=o(this,W,"f").getDescriptions();(!Object.prototype.hasOwnProperty.call(u,e)||typeof r=="string")&&this.describe(e,r),t.hidden&&this.hide(e),t.requiresArg&&this.requiresArg(e)}return this}options(e,t){return this.option(e,t)}parse(e,t,n){x("[string|array] [function|boolean|object] [function]",[e,t,n],arguments.length),this[es](),typeof e>"u"&&(e=o(this,Qe,"f")),typeof t=="object"&&(S(this,ot,t,"f"),t=n),typeof t=="function"&&(S(this,ye,t,"f"),t=!1),t||S(this,Qe,e,"f"),o(this,ye,"f")&&S(this,Be,!1,"f");const s=this[Wt](e,!!t),r=this.parsed;return o(this,ve,"f").setParsed(this.parsed),ce(s)?s.then(u=>(o(this,ye,"f")&&o(this,ye,"f").call(this,o(this,Ke,"f"),u,o(this,me,"f")),u)).catch(u=>{throw o(this,ye,"f")&&o(this,ye,"f")(u,this.parsed.argv,o(this,me,"f")),u}).finally(()=>{this[Vn](),this.parsed=r}):(o(this,ye,"f")&&o(this,ye,"f").call(this,o(this,Ke,"f"),s,o(this,me,"f")),this[Vn](),this.parsed=r,s)}parseAsync(e,t,n){const s=this.parse(e,t,n);return ce(s)?s:Promise.resolve(s)}parseSync(e,t,n){const s=this.parse(e,t,n);if(ce(s))throw new le(".parseSync() must not be used with asynchronous builders, handlers, or middleware");return s}parserConfiguration(e){return x("<object>",[e],arguments.length),S(this,cn,e,"f"),this}pkgConf(e,t){x("<string> [string]",[e,t],arguments.length);let n=null;const s=this[kn](t||o(this,rt,"f"));return s[e]&&typeof s[e]=="object"&&(n=Nn(s[e],t||o(this,rt,"f"),this[dt]()["deep-merge-config"]||!1,o(this,R,"f")),o(this,P,"f").configObjects=(o(this,P,"f").configObjects||[]).concat(n)),this}positional(e,t){x("<string> <object>",[e,t],arguments.length);const n=["default","defaultDescription","implies","normalize","choices","conflicts","coerce","type","describe","desc","description","alias"];t=Mt(t,(u,a)=>u==="type"&&!["string","number","boolean"].includes(a)?!1:n.includes(u));const s=o(this,Rt,"f").fullCommands[o(this,Rt,"f").fullCommands.length-1],r=s?o(this,oe,"f").cmdToParseOptions(s):{array:[],alias:{},default:{},demand:{}};return tn(r).forEach(u=>{const a=r[u];Array.isArray(a)?a.indexOf(e)!==-1&&(t[u]=!0):a[e]&&!(u in t)&&(t[u]=a[e])}),this.group(e,o(this,W,"f").getPositionalGroupName()),this.option(e,t)}recommendCommands(e=!0){return x("[boolean]",[e],arguments.length),S(this,ln,e,"f"),this}required(e,t,n){return this.demand(e,t,n)}require(e,t,n){return this.demand(e,t,n)}requiresArg(e){return x("<array|string|object> [number]",[e],arguments.length),typeof e=="string"&&o(this,P,"f").narg[e]?this:(this[yt](this.requiresArg.bind(this),"narg",e,NaN),this)}showCompletionScript(e,t){return x("[string] [string]",[e,t],arguments.length),e=e||this.$0,o(this,bt,"f").log(o(this,ve,"f").generateCompletionScript(e,t||o(this,be,"f")||"completion")),this}showHelp(e){if(x("[string|function]",[e],arguments.length),S(this,Fe,!0,"f"),!o(this,W,"f").hasCachedHelpMessage()){if(!this.parsed){const n=this[Wt](o(this,Qe,"f"),void 0,void 0,0,!0);if(ce(n))return n.then(()=>{o(this,W,"f").showHelp(e)}),this}const t=o(this,oe,"f").runDefaultBuilderOn(this);if(ce(t))return t.then(()=>{o(this,W,"f").showHelp(e)}),this}return o(this,W,"f").showHelp(e),this}scriptName(e){return this.customScriptName=!0,this.$0=e,this}showHelpOnFail(e,t){return x("[boolean|string] [string]",[e,t],arguments.length),o(this,W,"f").showHelpOnFail(e,t),this}showVersion(e){return x("[string|function]",[e],arguments.length),o(this,W,"f").showVersion(e),this}skipValidation(e){return x("<array|string>",[e],arguments.length),this[Xe]("skipValidation",e),this}strict(e){return x("[boolean]",[e],arguments.length),S(this,ct,e!==!1,"f"),this}strictCommands(e){return x("[boolean]",[e],arguments.length),S(this,lt,e!==!1,"f"),this}strictOptions(e){return x("[boolean]",[e],arguments.length),S(this,ft,e!==!1,"f"),this}string(e){return x("<array|string>",[e],arguments.length),this[Xe]("string",e),this[pt](e),this}terminalWidth(){return x([],0),o(this,R,"f").process.stdColumns}updateLocale(e){return this.updateStrings(e)}updateStrings(e){return x("<object>",[e],arguments.length),S(this,ut,!1,"f"),o(this,R,"f").y18n.updateLocale(e),this}usage(e,t,n,s){if(x("<string|null|undefined> [string|boolean] [function|object] [function]",[e,t,n,s],arguments.length),t!==void 0){if(Le(e,null,o(this,R,"f")),(e||"").match(/^\$0( |$)/))return this.command(e,t,n,s);throw new le(".usage() description must start with $0 if being used as alias for .command()")}else return o(this,W,"f").usage(e),this}usageConfiguration(e){return x("<object>",[e],arguments.length),S(this,fn,e,"f"),this}version(e,t,n){const s="version";if(x("[boolean|string] [string] [string]",[e,t,n],arguments.length),o(this,Re,"f")&&(this[Ln](o(this,Re,"f")),o(this,W,"f").version(void 0),S(this,Re,null,"f")),arguments.length===0)n=this[is](),e=s;else if(arguments.length===1){if(e===!1)return this;n=e,e=s}else arguments.length===2&&(n=t,t=void 0);return S(this,Re,typeof e=="string"?e:s,"f"),t=t||o(this,W,"f").deferY18nLookup("Show version number"),o(this,W,"f").version(n||void 0),this.boolean(o(this,Re,"f")),this.describe(o(this,Re,"f"),t),this}wrap(e){return x("<number|null|undefined>",[e],arguments.length),o(this,W,"f").wrap(e),this}[(oe=new WeakMap,rt=new WeakMap,Rt=new WeakMap,ve=new WeakMap,be=new WeakMap,sn=new WeakMap,Ke=new WeakMap,ut=new WeakMap,rn=new WeakMap,Be=new WeakMap,un=new WeakMap,Oe=new WeakMap,Te=new WeakMap,Fe=new WeakMap,_e=new WeakMap,on=new WeakMap,bt=new WeakMap,me=new WeakMap,P=new WeakMap,an=new WeakMap,cn=new WeakMap,ye=new WeakMap,ot=new WeakMap,Ft=new WeakMap,at=new WeakMap,Qe=new WeakMap,ln=new WeakMap,R=new WeakMap,ct=new WeakMap,lt=new WeakMap,ft=new WeakMap,W=new WeakMap,fn=new WeakMap,Re=new WeakMap,re=new WeakMap,Qi)](e){if(!e._||!e["--"])return e;e._.push.apply(e._,e["--"]);try{delete e["--"]}catch{}return e}[Xi](){return{log:(...e)=>{this[dn]()||console.log(...e),S(this,Fe,!0,"f"),o(this,me,"f").length&&S(this,me,o(this,me,"f")+`
64
+ `,"f"),S(this,me,o(this,me,"f")+e.join(" "),"f")},error:(...e)=>{this[dn]()||console.error(...e),S(this,Fe,!0,"f"),o(this,me,"f").length&&S(this,me,o(this,me,"f")+`
65
+ `,"f"),S(this,me,o(this,me,"f")+e.join(" "),"f")}}}[Ln](e){tn(o(this,P,"f")).forEach(t=>{if((s=>s==="configObjects")(t))return;const n=o(this,P,"f")[t];Array.isArray(n)?n.includes(e)&&n.splice(n.indexOf(e),1):typeof n=="object"&&delete n[e]}),delete o(this,W,"f").getDescriptions()[e]}[Zi](e,t,n){o(this,rn,"f")[n]||(o(this,R,"f").process.emitWarning(e,t),o(this,rn,"f")[n]=!0)}[es](){o(this,un,"f").push({options:o(this,P,"f"),configObjects:o(this,P,"f").configObjects.slice(0),exitProcess:o(this,Be,"f"),groups:o(this,Te,"f"),strict:o(this,ct,"f"),strictCommands:o(this,lt,"f"),strictOptions:o(this,ft,"f"),completionCommand:o(this,be,"f"),output:o(this,me,"f"),exitError:o(this,Ke,"f"),hasOutput:o(this,Fe,"f"),parsed:this.parsed,parseFn:o(this,ye,"f"),parseContext:o(this,ot,"f")}),o(this,W,"f").freeze(),o(this,re,"f").freeze(),o(this,oe,"f").freeze(),o(this,Oe,"f").freeze()}[ts](){let e="",t;return/\b(node|iojs|electron)(\.exe)?$/.test(o(this,R,"f").process.argv()[0])?t=o(this,R,"f").process.argv().slice(1,2):t=o(this,R,"f").process.argv().slice(0,1),e=t.map(n=>{const s=this[ps](o(this,rt,"f"),n);return n.match(/^(\/|([a-zA-Z]:)?\\)/)&&s.length<n.length?s:n}).join(" ").trim(),o(this,R,"f").getEnv("_")&&o(this,R,"f").getProcessArgvBin()===o(this,R,"f").getEnv("_")&&(e=o(this,R,"f").getEnv("_").replace(`${o(this,R,"f").path.dirname(o(this,R,"f").process.execPath())}/`,"")),e}[dt](){return o(this,cn,"f")}[ns](){return o(this,fn,"f")}[Mn](){if(!o(this,ut,"f"))return;const e=o(this,R,"f").getEnv("LC_ALL")||o(this,R,"f").getEnv("LC_MESSAGES")||o(this,R,"f").getEnv("LANG")||o(this,R,"f").getEnv("LANGUAGE")||"en_US";this.locale(e.replace(/[.:].*/,""))}[is](){return this[kn]().version||"unknown"}[ss](e){const t=e["--"]?e["--"]:e._;for(let n=0,s;(s=t[n])!==void 0;n++)o(this,R,"f").Parser.looksLikeNumber(s)&&Number.isSafeInteger(Math.floor(parseFloat(`${s}`)))&&(t[n]=Number(s));return e}[kn](e){const t=e||"*";if(o(this,Ft,"f")[t])return o(this,Ft,"f")[t];let n={};try{let s=e||o(this,R,"f").mainFilename;!e&&o(this,R,"f").path.extname(s)&&(s=o(this,R,"f").path.dirname(s));const r=o(this,R,"f").findUp(s,(u,a)=>{if(a.includes("package.json"))return"package.json"});Le(r,void 0,o(this,R,"f")),n=JSON.parse(o(this,R,"f").readFileSync(r,"utf8"))}catch{}return o(this,Ft,"f")[t]=n||{},o(this,Ft,"f")[t]}[Xe](e,t){t=[].concat(t),t.forEach(n=>{n=this[Wn](n),o(this,P,"f")[e].push(n)})}[yt](e,t,n,s){this[Rn](e,t,n,s,(r,u,a)=>{o(this,P,"f")[r][u]=a})}[Tn](e,t,n,s){this[Rn](e,t,n,s,(r,u,a)=>{o(this,P,"f")[r][u]=(o(this,P,"f")[r][u]||[]).concat(a)})}[Rn](e,t,n,s,r){if(Array.isArray(n))n.forEach(u=>{e(u,s)});else if((u=>typeof u=="object")(n))for(const u of tn(n))e(u,n[u]);else r(t,this[Wn](n),s)}[Wn](e){return e==="__proto__"?"___proto___":e}[Un](e,t){return this[yt](this[Un].bind(this),"key",e,t),this}[Vn](){var e,t,n,s,r,u,a,c,h,l,f,m;const C=o(this,un,"f").pop();Le(C,void 0,o(this,R,"f"));let F;e=this,t=this,n=this,s=this,r=this,u=this,a=this,c=this,h=this,l=this,f=this,m=this,{options:{set value(w){S(e,P,w,"f")}}.value,configObjects:F,exitProcess:{set value(w){S(t,Be,w,"f")}}.value,groups:{set value(w){S(n,Te,w,"f")}}.value,output:{set value(w){S(s,me,w,"f")}}.value,exitError:{set value(w){S(r,Ke,w,"f")}}.value,hasOutput:{set value(w){S(u,Fe,w,"f")}}.value,parsed:this.parsed,strict:{set value(w){S(a,ct,w,"f")}}.value,strictCommands:{set value(w){S(c,lt,w,"f")}}.value,strictOptions:{set value(w){S(h,ft,w,"f")}}.value,completionCommand:{set value(w){S(l,be,w,"f")}}.value,parseFn:{set value(w){S(f,ye,w,"f")}}.value,parseContext:{set value(w){S(m,ot,w,"f")}}.value}=C,o(this,P,"f").configObjects=F,o(this,W,"f").unfreeze(),o(this,re,"f").unfreeze(),o(this,oe,"f").unfreeze(),o(this,Oe,"f").unfreeze()}[rs](e,t){return Lt(t,n=>(e(n),n))}getInternalMethods(){return{getCommandInstance:this[us].bind(this),getContext:this[os].bind(this),getHasOutput:this[as].bind(this),getLoggerInstance:this[cs].bind(this),getParseContext:this[ls].bind(this),getParserConfiguration:this[dt].bind(this),getUsageConfiguration:this[ns].bind(this),getUsageInstance:this[fs].bind(this),getValidationInstance:this[ds].bind(this),hasParseCallback:this[dn].bind(this),isGlobalContext:this[hs].bind(this),postProcess:this[ht].bind(this),reset:this[zn].bind(this),runValidation:this[Hn].bind(this),runYargsParserAndExecuteCommands:this[Wt].bind(this),setHasOutput:this[ms].bind(this)}}[us](){return o(this,oe,"f")}[os](){return o(this,Rt,"f")}[as](){return o(this,Fe,"f")}[cs](){return o(this,bt,"f")}[ls](){return o(this,ot,"f")||{}}[fs](){return o(this,W,"f")}[ds](){return o(this,re,"f")}[dn](){return!!o(this,ye,"f")}[hs](){return o(this,on,"f")}[ht](e,t,n,s){return n||ce(e)||(t||(e=this[Qi](e)),(this[dt]()["parse-positional-numbers"]||this[dt]()["parse-positional-numbers"]===void 0)&&(e=this[ss](e)),s&&(e=Nt(e,this,o(this,Oe,"f").getMiddleware(),!1))),e}[zn](e={}){S(this,P,o(this,P,"f")||{},"f");const t={};t.local=o(this,P,"f").local||[],t.configObjects=o(this,P,"f").configObjects||[];const n={};t.local.forEach(u=>{n[u]=!0,(e[u]||[]).forEach(a=>{n[a]=!0})}),Object.assign(o(this,at,"f"),Object.keys(o(this,Te,"f")).reduce((u,a)=>{const c=o(this,Te,"f")[a].filter(h=>!(h in n));return c.length>0&&(u[a]=c),u},{})),S(this,Te,{},"f");const s=["array","boolean","string","skipValidation","count","normalize","number","hiddenOptions"],r=["narg","key","alias","default","defaultDescription","config","choices","demandedOptions","demandedCommands","deprecatedOptions"];return s.forEach(u=>{t[u]=(o(this,P,"f")[u]||[]).filter(a=>!n[a])}),r.forEach(u=>{t[u]=Mt(o(this,P,"f")[u],a=>!n[a])}),t.envPrefix=o(this,P,"f").envPrefix,S(this,P,t,"f"),S(this,W,o(this,W,"f")?o(this,W,"f").reset(n):pu(this,o(this,R,"f")),"f"),S(this,re,o(this,re,"f")?o(this,re,"f").reset(n):Fu(this,o(this,W,"f"),o(this,R,"f")),"f"),S(this,oe,o(this,oe,"f")?o(this,oe,"f").reset():cu(o(this,W,"f"),o(this,re,"f"),o(this,Oe,"f"),o(this,R,"f")),"f"),o(this,ve,"f")||S(this,ve,wu(this,o(this,W,"f"),o(this,oe,"f"),o(this,R,"f")),"f"),o(this,Oe,"f").reset(),S(this,be,null,"f"),S(this,me,"","f"),S(this,Ke,null,"f"),S(this,Fe,!1,"f"),this.parsed=!1,this}[ps](e,t){return o(this,R,"f").path.relative(e,t)}[Wt](e,t,n,s=0,r=!1){let u=!!n||r;e=e||o(this,Qe,"f"),o(this,P,"f").__=o(this,R,"f").y18n.__,o(this,P,"f").configuration=this[dt]();const a=!!o(this,P,"f").configuration["populate--"],c=Object.assign({},o(this,P,"f").configuration,{"populate--":!0}),h=o(this,R,"f").Parser.detailed(e,Object.assign({},o(this,P,"f"),{configuration:{"parse-positional-numbers":!1,...c}})),l=Object.assign(h.argv,o(this,ot,"f"));let f;const m=h.aliases;let C=!1,F=!1;Object.keys(l).forEach(w=>{w===o(this,_e,"f")&&l[w]?C=!0:w===o(this,Re,"f")&&l[w]&&(F=!0)}),l.$0=this.$0,this.parsed=h,s===0&&o(this,W,"f").clearCachedHelpMessage();try{if(this[Mn](),t)return this[ht](l,a,!!n,!1);o(this,_e,"f")&&[o(this,_e,"f")].concat(m[o(this,_e,"f")]||[]).filter(M=>M.length>1).includes(""+l._[l._.length-1])&&(l._.pop(),C=!0),S(this,on,!1,"f");const w=o(this,oe,"f").getCommands(),p=o(this,ve,"f").completionKey in l,y=C||p||r;if(l._.length){if(w.length){let B;for(let M=s||0,L;l._[M]!==void 0;M++)if(L=String(l._[M]),w.includes(L)&&L!==o(this,be,"f")){const U=o(this,oe,"f").runCommand(L,this,h,M+1,r,C||F||r);return this[ht](U,a,!!n,!1)}else if(!B&&L!==o(this,be,"f")){B=L;break}!o(this,oe,"f").hasDefaultCommand()&&o(this,ln,"f")&&B&&!y&&o(this,re,"f").recommendCommands(B,w)}o(this,be,"f")&&l._.includes(o(this,be,"f"))&&!p&&(o(this,Be,"f")&&kt(!0),this.showCompletionScript(),this.exit(0))}if(o(this,oe,"f").hasDefaultCommand()&&!y){const B=o(this,oe,"f").runCommand(null,this,h,0,r,C||F||r);return this[ht](B,a,!!n,!1)}if(p){o(this,Be,"f")&&kt(!0),e=[].concat(e);const B=e.slice(e.indexOf(`--${o(this,ve,"f").completionKey}`)+1);return o(this,ve,"f").getCompletion(B,(M,L)=>{if(M)throw new le(M.message);(L||[]).forEach(U=>{o(this,bt,"f").log(U)}),this.exit(0)}),this[ht](l,!a,!!n,!1)}if(o(this,Fe,"f")||(C?(o(this,Be,"f")&&kt(!0),u=!0,this.showHelp("log"),this.exit(0)):F&&(o(this,Be,"f")&&kt(!0),u=!0,o(this,W,"f").showVersion("log"),this.exit(0))),!u&&o(this,P,"f").skipValidation.length>0&&(u=Object.keys(l).some(B=>o(this,P,"f").skipValidation.indexOf(B)>=0&&l[B]===!0)),!u){if(h.error)throw new le(h.error.message);if(!p){const B=this[Hn](m,{},h.error);n||(f=Nt(l,this,o(this,Oe,"f").getMiddleware(),!0)),f=this[rs](B,f??l),ce(f)&&!n&&(f=f.then(()=>Nt(l,this,o(this,Oe,"f").getMiddleware(),!1)))}}}catch(w){if(w instanceof le)o(this,W,"f").fail(w.message,w);else throw w}return this[ht](f??l,a,!!n,!0)}[Hn](e,t,n,s){const r={...this.getDemandedOptions()};return u=>{if(n)throw new le(n.message);o(this,re,"f").nonOptionCount(u),o(this,re,"f").requiredArguments(u,r);let a=!1;o(this,lt,"f")&&(a=o(this,re,"f").unknownCommands(u)),o(this,ct,"f")&&!a?o(this,re,"f").unknownArguments(u,e,t,!!s):o(this,ft,"f")&&o(this,re,"f").unknownArguments(u,e,{},!1,!1),o(this,re,"f").limitedChoices(u),o(this,re,"f").implications(u),o(this,re,"f").conflicting(u)}}[ms](){S(this,Fe,!0,"f")}[pt](e){if(typeof e=="string")o(this,P,"f").key[e]=!0;else for(const t of e)o(this,P,"f").key[t]=!0}}function _u(i){return!!i&&typeof i.getInternalMethods=="function"}const Su=Bu(nu),hn={type:"string",desc:"<directory> with LikeC4 sources (default is current directory)",normalize:!0,default:".",coerce:Q},We={alias:"use-dot-bin",boolean:!0,type:"boolean",desc:'use graphviz binaries ("dot" should be on PATH)',default:!1},gs={boolean:!0,type:"boolean",desc:'use hash history for navigation, e.g. "/#/view" instead of "/view"'},pn={alias:"o",type:"string",desc:"<directory> output directory",normalize:!0,coerce:Q},Gn={alias:"w",type:"string",desc:'prefix for Webcomponents, e.g "c4" generates <c4-view ../>',default:"likec4"},Ds={alias:["base-url"],type:"string",desc:'base url the app is being served from, e.g. "/" or "/pages/"'},Cs={boolean:!0,type:"boolean",desc:"overview all diagrams as graph [experimental]",default:!1};function Iu(i){var e,t;if(i){if("astNode"in i)return ju(i);if(Array.isArray(i))return i.reduce(ws,void 0);{const n=i,s=xu(n)?$u((t=(e=n?.root)===null||e===void 0?void 0:e.astNode)!==null&&t!==void 0?t:n?.astNode):void 0;return vt(n,s)}}else return}function xu(i){return typeof i<"u"&&"element"in i&&"text"in i}function $u(i){try{return pi(i).uri.toString()}catch{return}}function ju(i){var e,t;const{astNode:n,property:s,index:r}=i??{},u=(e=n?.$cstNode)!==null&&e!==void 0?e:n?.$textRegion;if(!(n===void 0||u===void 0)){if(s===void 0)return vt(u,Yn(n));{const a=c=>r!==void 0&&r>-1&&Array.isArray(n[s])?r<c.length?c[r]:void 0:c.reduce(ws,void 0);if(!((t=u.assignments)===null||t===void 0)&&t[s]){const c=a(u.assignments[s]);return c&&vt(c,Yn(n))}else if(n.$cstNode){const c=a(qs(n.$cstNode,s));return c&&vt(c,Yn(n))}else return}}}function Yn(i){var e,t,n,s;return i.$cstNode?(t=(e=pi(i))===null||e===void 0?void 0:e.uri)===null||t===void 0?void 0:t.toString():i.$textRegion?i.$textRegion.documentURI||((s=(n=new Js(i,r=>r.$container?[r.$container]:[]).find(r=>{var u;return(u=r.$textRegion)===null||u===void 0?void 0:u.documentURI}))===null||n===void 0?void 0:n.$textRegion)===null||s===void 0?void 0:s.documentURI):void 0}function vt(i,e){var t,n;const s={offset:i.offset,end:(t=i.end)!==null&&t!==void 0?t:i.offset+i.length,length:(n=i.length)!==null&&n!==void 0?n:i.end-i.offset};return i.range&&(s.range=i.range),e??(e=i.fileURI),e&&(s.fileURI=e),s}function ws(i,e){var t,n;if(i){if(!e)return i&&vt(i)}else return e&&vt(e);const s=(t=i.end)!==null&&t!==void 0?t:i.offset+i.length,r=(n=e.end)!==null&&n!==void 0?n:e.offset+e.length,u=Math.min(i.offset,e.offset),a=Math.max(s,r),c=a-u,h={offset:u,end:a,length:c};if(i.range&&e.range&&(h.range={start:e.range.start.line<i.range.start.line||e.range.start.line===i.range.start.line&&e.range.start.character<i.range.start.character?e.range.start:i.range.start,end:e.range.end.line>i.range.end.line||e.range.end.line===i.range.end.line&&e.range.end.character>i.range.end.character?e.range.end:i.range.end}),i.fileURI||e.fileURI){const l=i.fileURI,f=e.fileURI,m=l&&f&&l!==f?`<unmergable text regions of ${l}, ${f}>`:l??f;h.fileURI=m}return h}class Pu{constructor(e){this.defaultIndentation=" ",this.pendingIndent=!0,this.currentIndents=[],this.recentNonImmediateIndents=[],this.traceData=[],this.lines=[[]],this.length=0,typeof e=="string"?this.defaultIndentation=e:typeof e=="number"&&(this.defaultIndentation="".padStart(e))}get content(){return this.lines.map(e=>e.join("")).join("")}get contentLength(){return this.length}get currentLineNumber(){return this.lines.length-1}get currentLineContent(){return this.lines[this.currentLineNumber].join("")}get currentPosition(){return{offset:this.contentLength,line:this.currentLineNumber,character:this.currentLineContent.length}}append(e,t){if(e.length>0){const n=t&&this.currentPosition;this.lines[this.currentLineNumber].push(e),this.length+=e.length,n&&this.indentPendingTraceRegions(n)}}indentPendingTraceRegions(e){for(let t=this.traceData.length-1;t>=0;t--){const n=this.traceData[t];n.targetStart&&n.targetStart.offset===e.offset&&(n.targetStart=this.currentPosition)}}increaseIndent(e){this.currentIndents.push(e),e.indentImmediately||this.recentNonImmediateIndents.push(e)}decreaseIndent(){this.currentIndents.pop()}get relevantIndents(){return this.currentIndents.filter(e=>!this.recentNonImmediateIndents.includes(e))}resetCurrentLine(){this.length-=this.lines[this.currentLineNumber].join("").length,this.lines[this.currentLineNumber]=[],this.pendingIndent=!0}addNewLine(){this.pendingIndent=!0,this.lines.push([]),this.recentNonImmediateIndents.length=0}pushTraceRegion(e){const t=Nu(e,this.currentPosition,n=>{var s,r;return(r=(s=this.traceData[this.traceData.length-1])===null||s===void 0?void 0:s.children)===null||r===void 0?void 0:r.push(n)});return this.traceData.push(t),t}popTraceRegion(e){const t=this.traceData.pop();return this.assertTrue(t===e,"Trace region mismatch!"),t}getParentTraceSourceFileURI(){var e;for(let t=this.traceData.length-1;t>-1;t--){const n=(e=this.traceData[t].sourceRegion)===null||e===void 0?void 0:e.fileURI;if(n)return n}}assertTrue(e,t){if(!e)throw new Error(t)}}function Nu(i,e,t){const n={sourceRegion:i,targetRegion:void 0,children:[],targetStart:e,complete:s=>{var r,u;return n.targetRegion={offset:n.targetStart.offset,end:s.offset,length:s.offset-n.targetStart.offset,range:{start:{line:n.targetStart.line,character:n.targetStart.character},end:{line:s.line,character:s.character}}},delete n.targetStart,((r=n.children)===null||r===void 0?void 0:r.length)===0&&delete n.children,!((u=n.targetRegion)===null||u===void 0)&&u.length&&t(n),delete n.complete,n}};return n}function Lu(i,e){const t=new Pu(e),n=t.pushTraceRegion(void 0);As(i,t),t.popTraceRegion(n),n.complete&&n.complete(t.currentPosition);const s=n.children&&n.children.length===1?n.children[0]:void 0,r=s?.targetRegion,u=n.targetRegion;return r&&s.sourceRegion&&r.offset===u.offset&&r.length===u.length?{text:t.content,trace:s}:{text:t.content,trace:n}}function As(i,e){typeof i=="string"?Mu(i,e):i instanceof Jn?ku(i,e):i instanceof fe?Fs(i,e):i instanceof Vt&&Tu(i,e)}function Es(i,e){return typeof i=="string"?i.length!==0:i instanceof fe?i.contents.some(t=>Es(t,e)):i instanceof Vt?!(i.ifNotEmpty&&e.currentLineContent.length===0):!1}function Mu(i,e){i&&(e.pendingIndent&&bs(e,!1),e.append(i))}function bs(i,e){var t;let n="";for(const s of i.relevantIndents.filter(r=>r.indentEmptyLines||!e))n+=(t=s.indentation)!==null&&t!==void 0?t:i.defaultIndentation;i.append(n,!0),i.pendingIndent=!1}function Fs(i,e){let t;const n=Iu(i.tracedSource);n&&(t=e.pushTraceRegion(n));for(const s of i.contents)As(s,e);if(t){e.popTraceRegion(t);const s=e.getParentTraceSourceFileURI();s&&n?.fileURI===s&&delete n.fileURI,t.complete&&t.complete(e.currentPosition)}}function ku(i,e){var t;if(Es(i,e)){i.indentImmediately&&!e.pendingIndent&&e.append((t=i.indentation)!==null&&t!==void 0?t:e.defaultIndentation,!0);try{e.increaseIndent(i),Fs(i,e)}finally{e.decreaseIndent()}}}function Tu(i,e){i.ifNotEmpty&&!Ru(e.currentLineContent)?e.resetCurrentLine():(e.pendingIndent&&bs(e,!0),e.append(i.lineDelimiter),e.addNewLine())}function Ru(i){return i.trimStart()!==""}Object.freeze("__\xABSKIP^NEW^LINE^IF^EMPTY\xBB__");const Wu=/\S|$/;function Uu(i){const e=i.filter(n=>n.length>0).map(n=>n.search(Wu)),t=e.length===0?0:Math.min(...e);return Math.max(0,t)}function Ze(i,...e){const t=zu(i),n=Hu(i,e,t);return Yu(n)}function Vu(i,e,t){return(n,...s)=>Ju(i,e,t)(Ze(n,...s))}function zu(i){const e=i.join("_").split(mi),t=e.length>1&&e[0].trim().length===0,n=t&&e.length>1&&e[e.length-1].trim().length===0;if(e.length===1||e.length!==0&&e[0].trim().length!==0||e.length===2&&e[1].trim().length===0)return{indentation:0,omitFirstLine:t,omitLastLine:n,trimLastLine:e.length!==1&&e[e.length-1].trim().length===0};{let s=t?e.slice(1):e;s=n?s.slice(0,s.length-1):s,s=s.filter(u=>u.length!==0);const r=Uu(s);return{indentation:r,omitFirstLine:t,omitLastLine:n&&(e[e.length-1].length<r||!e[e.length-1].startsWith(s[0].substring(0,r)))}}}function Hu(i,e,{indentation:t,omitFirstLine:n,omitLastLine:s,trimLastLine:r}){const u=[];i.forEach((h,l)=>{u.push(...h.split(mi).map((f,m)=>m===0||f.length<t?f:f.substring(t)).reduce(l===0?(f,m,C)=>C===0?n?[]:[m]:C===1&&f.length===0?[m]:f.concat(mn,m):(f,m,C)=>C===0?[m]:f.concat(mn,m),[]).filter(f=>!(typeof f=="string"&&f.length===0)).concat(Ut(e[l])?e[l]:e[l]!==void 0?{content:String(e[l])}:l<e.length?ys:[]))});const a=u.length,c=a!==0?u[a-1]:void 0;return(s||r)&&typeof c=="string"&&c.trim().length===0?n&&a!==1&&u[a-2]===mn?u.slice(0,a-2):u.slice(0,a-1):u}const mn={isNewLine:!0},ys={isUndefinedSegment:!0},vs=i=>i===mn,qn=i=>i===ys,Gu=i=>i.content!==void 0;function Yu(i){return i.reduce((t,n,s)=>qn(n)?t:vs(n)?{node:s!==0&&(qn(i[s-1])||Ut(i[s-1]))||s>1&&typeof i[s-1]=="string"&&(qn(i[s-2])||Ut(i[s-2]))?t.node.appendNewLineIfNotEmpty():t.node.appendNewLine()}:(()=>{var r;const u=(s===0||vs(i[s-1]))&&typeof n=="string"&&n.length!==0?"".padStart(n.length-n.trimStart().length):"",a=Gu(n)?n.content:n;let c;return{node:t.indented?t.node:u.length!==0?t.node.indent({indentation:u,indentImmediately:!1,indentedChildren:h=>c=h.append(a)}):t.node.append(a),indented:c??((r=t.indented)===null||r===void 0?void 0:r.append(a))}})(),{node:new fe}).node}const qu=typeof process>"u"?`
3
66
  `:process.platform==="win32"?`\r
4
67
  `:`
5
- `;function ae(e){return e instanceof I||e instanceof Ne||e instanceof se}function U(e,u){return ae(e)?bt(e,u).text:String(e)}class I{constructor(...u){this.contents=[],this.append(...u)}isEmpty(){return this.contents.length===0}trace(u,n,t){if(Wu(u)){if(this.tracedSource={astNode:u,property:n,index:t},this.tracedSource.property===void 0&&this.tracedSource.index!==void 0&&this.tracedSource.index>-1)throw new Error("Generation support: 'property' argument must not be 'undefined' if a non-negative value is assigned to 'index' in 'CompositeGeneratorNode.trace(...)'.")}else this.tracedSource=u;return this}append(...u){for(const n of u)typeof n=="function"?n(this):n&&this.contents.push(n);return this}appendIf(u,...n){return u?this.append(...n):this}appendNewLine(){return this.append(E)}appendNewLineIf(u){return u?this.append(E):this}appendNewLineIfNotEmpty(){return this.append(_t)}appendNewLineIfNotEmptyIf(u){return u?this.appendNewLineIfNotEmpty():this}appendTemplate(u,...n){return this.append(_(u,...n))}appendTemplateIf(u){return u?(n,...t)=>this.appendTemplate(n,...t):()=>this}indent(u){const{indentedChildren:n,indentation:t,indentEmptyLines:i,indentImmediately:r}=Array.isArray(u)||typeof u=="function"?{indentedChildren:u}:typeof u=="object"?u:{},o=new Ne(t,r,i);return this.contents.push(o),Array.isArray(n)?o.append(...n):n&&o.append(n),this}appendTraced(u,n,t){return i=>this.append(new I().trace(u,n,t).append(i))}appendTracedIf(u,n,t,i){return u?this.appendTraced(typeof n=="function"?n():n,t,i):()=>this}appendTracedTemplate(u,n,t){return(i,...r)=>this.append(xt(u,n,t)(i,...r))}appendTracedTemplateIf(u,n,t,i){return u?this.appendTracedTemplate(typeof n=="function"?n():n,t,i):()=>this}}function Vt(e,u,n){return t=>t instanceof I&&t.tracedSource===void 0?t.trace(e,u,n):new I().trace(e,u,n).append(t)}class Ne extends I{constructor(u,n=!0,t=!1){super(),this.indentImmediately=!0,this.indentEmptyLines=!1,typeof u=="string"?this.indentation=u:typeof u=="number"&&(this.indentation="".padStart(u)),this.indentImmediately=n,this.indentEmptyLines=t}}class se{constructor(u,n=!1){this.ifNotEmpty=!1,this.lineDelimiter=u??Rt,this.ifNotEmpty=n}}const E=new se,_t=new se(void 0,!0),wu=e=>e===void 0||typeof e=="string"||ae(e)?e:String(e);function O(e,u=wu,n={}){const t=typeof u=="function"?u:wu,{filter:i,prefix:r,suffix:o,separator:c,appendNewLineIfNotEmpty:D,skipNewLineAfterLastItem:l}=typeof u=="object"?u:n,d=typeof r=="function"?r:()=>r,f=typeof o=="function"?o:()=>o;return Ut(e,(p,h,v,m)=>{if(i&&!i(h,v,m))return p;const g=t(h,v,m);return g===void 0?p:(p??(p=new I)).append(d(h,v,m)).append(g).append(f(h,v,m)).appendIf(!m,c).appendNewLineIfNotEmptyIf(!p.isEmpty()&&!!D&&(!m||!l))})}function Ut(e,u,n){const t=e[Symbol.iterator]();let i=t.next(),r=0,o=n;for(;!i.done;){const c=t.next();o=u(o,i.value,r,!!c.done),i=c,r++}return o}const Mt=e=>e.charAt(0).toLocaleUpperCase()+e.slice(1),Jt=e=>e.split(".").map(Mt).join(""),Wt=e=>Jt(e.parent?e.id.slice(e.parent.length+1):e.id),zt=({autoLayout:e})=>{switch(e){case"TB":return"down";case"BT":return"up";case"LR":return"right";case"RL":return"left"}},Ht=({shape:e})=>{switch(e){case"queue":case"cylinder":case"rectangle":case"person":return e;case"storage":return"stored_data";case"mobile":case"browser":return"rectangle"}};function vu(e){const{nodes:u,edges:n}=e,t=new Map,i=(o,c)=>{const D=Wt(o),l=(c?c+".":"")+D;t.set(o.id,l);const d=JSON.stringify(o.title),f=Ht(o);return new I().append(D,": {",E).indent({indentedChildren:p=>p.append("label: ",d,E).appendIf(f!=="rectangle","shape: ",f,E).appendIf(o.children.length>0,E,O(u.filter(h=>h.parent===o.id),h=>i(h,l))),indentation:2}).append("}",E)},r=o=>new I().append(t.get(o.source)," -> ",t.get(o.target)).append(c=>o.label&&c.append(": ",JSON.stringify(o.label)));return U(new I().append("direction: ",zt(e),E,E).append(O(u.filter(o=>Ye(o.parent)),o=>i(o),{appendNewLineIfNotEmpty:!0})).appendIf(n.length>0,E,O(n,o=>r(o),{appendNewLineIfNotEmpty:!0})))}const Gt=e=>e.charAt(0).toLocaleUpperCase()+e.slice(1),Kt=e=>e.split(".").map(Gt).join(""),qt=e=>Kt(e.parent?e.id.slice(e.parent.length+1):e.id),Yt=({shape:e})=>{switch(e){case"queue":case"cylinder":return["[(",")]"];case"person":return["[fa:fa-user ","]"];case"storage":return["([","])"];case"mobile":case"browser":case"rectangle":return["[","]"]}};function Bu(e){const{nodes:u,edges:n}=e,t=new Map,i=(o,c)=>{const D=qt(o),l=(c?c+".":"")+D;t.set(o.id,l);const d=o.title.replaceAll(`
6
- `,"\\n"),f=Yt(o),p=new I;return o.children.length>0?p.append("subgraph ",l,"[",JSON.stringify(o.title),"]",E).indent({indentedChildren:[O(u.filter(h=>h.parent===o.id),h=>i(h,l),{appendNewLineIfNotEmpty:!0})],indentation:2}).append("end",E):p.append(l,f[0],d,f[1]),p},r=o=>new I().append(t.get(o.source)," -.",o.label?' "'+o.label.replaceAll(`
7
- `,"\\n")+'" .-':"-","> ",t.get(o.target));return U(new I().appendIf(e.title!==null&&e.title.length>0,"---",E,`title: ${JSON.stringify(e.title)}`,E,"---",E).append("graph ",e.autoLayout,E).indent({indentedChildren:o=>{o.append(O(u.filter(c=>Ye(c.parent)),c=>i(c),{appendNewLineIfNotEmpty:!0})).appendIf(n.length>0,O(n,c=>r(c),{appendNewLineIfNotEmpty:!0}))},indentation:2}))}var Xt=/[\u1680\u2000-\u200A\u202F\u205F\u3000]/,Zt=/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE83\uDE86-\uDE89\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]/,Qt=/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u08D4-\u08E1\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u09FC\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9-\u0AFF\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C80-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D00-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D54-\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19D9\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1CD0-\u1CD2\u1CD4-\u1CF9\u1D00-\u1DF9\u1DFB-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u2E2F\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099\u309A\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE3E\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC00-\uDC4A\uDC50-\uDC59\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDCA0-\uDCE9\uDCFF\uDE00-\uDE3E\uDE47\uDE50-\uDE83\uDE86-\uDE99\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC36\uDC38-\uDC40\uDC50-\uDC59\uDC72-\uDC8F\uDC92-\uDCA7\uDCA9-\uDCB6\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD36\uDD3A\uDD3C\uDD3D\uDD3F-\uDD47\uDD50-\uDD59]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6\uDD00-\uDD4A\uDD50-\uDD59]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/,Le={Space_Separator:Xt,ID_Start:Zt,ID_Continue:Qt},$={isSpaceSeparator(e){return typeof e=="string"&&Le.Space_Separator.test(e)},isIdStartChar(e){return typeof e=="string"&&(e>="a"&&e<="z"||e>="A"&&e<="Z"||e==="$"||e==="_"||Le.ID_Start.test(e))},isIdContinueChar(e){return typeof e=="string"&&(e>="a"&&e<="z"||e>="A"&&e<="Z"||e>="0"&&e<="9"||e==="$"||e==="_"||e==="\u200C"||e==="\u200D"||Le.ID_Continue.test(e))},isDigit(e){return typeof e=="string"&&/[0-9]/.test(e)},isHexDigit(e){return typeof e=="string"&&/[0-9A-Fa-f]/.test(e)}};let xe,T,M,Ee,G,j,L,Pe,De;var en=function(u,n){xe=String(u),T="start",M=[],Ee=0,G=1,j=0,L=void 0,Pe=void 0,De=void 0;do L=un(),rn[T]();while(L.type!=="eof");return typeof n=="function"?Te({"":De},"",n):De};function Te(e,u,n){const t=e[u];if(t!=null&&typeof t=="object")if(Array.isArray(t))for(let i=0;i<t.length;i++){const r=String(i),o=Te(t,r,n);o===void 0?delete t[r]:Object.defineProperty(t,r,{value:o,writable:!0,enumerable:!0,configurable:!0})}else for(const i in t){const r=Te(t,i,n);r===void 0?delete t[i]:Object.defineProperty(t,i,{value:r,writable:!0,enumerable:!0,configurable:!0})}return n.call(e,u,t)}let A,F,ce,J,w;function un(){for(A="default",F="",ce=!1,J=1;;){w=W();const e=yu[A]();if(e)return e}}function W(){if(xe[Ee])return String.fromCodePoint(xe.codePointAt(Ee))}function s(){const e=W();return e===`
8
- `?(G++,j=0):e?j+=e.length:j++,e&&(Ee+=e.length),e}const yu={default(){switch(w){case" ":case"\v":case"\f":case" ":case"\xA0":case"\uFEFF":case`
9
- `:case"\r":case"\u2028":case"\u2029":s();return;case"/":s(),A="comment";return;case void 0:return s(),b("eof")}if($.isSpaceSeparator(w)){s();return}return yu[T]()},comment(){switch(w){case"*":s(),A="multiLineComment";return;case"/":s(),A="singleLineComment";return}throw k(s())},multiLineComment(){switch(w){case"*":s(),A="multiLineCommentAsterisk";return;case void 0:throw k(s())}s()},multiLineCommentAsterisk(){switch(w){case"*":s();return;case"/":s(),A="default";return;case void 0:throw k(s())}s(),A="multiLineComment"},singleLineComment(){switch(w){case`
10
- `:case"\r":case"\u2028":case"\u2029":s(),A="default";return;case void 0:return s(),b("eof")}s()},value(){switch(w){case"{":case"[":return b("punctuator",s());case"n":return s(),q("ull"),b("null",null);case"t":return s(),q("rue"),b("boolean",!0);case"f":return s(),q("alse"),b("boolean",!1);case"-":case"+":s()==="-"&&(J=-1),A="sign";return;case".":F=s(),A="decimalPointLeading";return;case"0":F=s(),A="zero";return;case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":F=s(),A="decimalInteger";return;case"I":return s(),q("nfinity"),b("numeric",1/0);case"N":return s(),q("aN"),b("numeric",NaN);case'"':case"'":ce=s()==='"',F="",A="string";return}throw k(s())},identifierNameStartEscape(){if(w!=="u")throw k(s());s();const e=Oe();switch(e){case"$":case"_":break;default:if(!$.isIdStartChar(e))throw bu();break}F+=e,A="identifierName"},identifierName(){switch(w){case"$":case"_":case"\u200C":case"\u200D":F+=s();return;case"\\":s(),A="identifierNameEscape";return}if($.isIdContinueChar(w)){F+=s();return}return b("identifier",F)},identifierNameEscape(){if(w!=="u")throw k(s());s();const e=Oe();switch(e){case"$":case"_":case"\u200C":case"\u200D":break;default:if(!$.isIdContinueChar(e))throw bu();break}F+=e,A="identifierName"},sign(){switch(w){case".":F=s(),A="decimalPointLeading";return;case"0":F=s(),A="zero";return;case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":F=s(),A="decimalInteger";return;case"I":return s(),q("nfinity"),b("numeric",J*(1/0));case"N":return s(),q("aN"),b("numeric",NaN)}throw k(s())},zero(){switch(w){case".":F+=s(),A="decimalPoint";return;case"e":case"E":F+=s(),A="decimalExponent";return;case"x":case"X":F+=s(),A="hexadecimal";return}return b("numeric",J*0)},decimalInteger(){switch(w){case".":F+=s(),A="decimalPoint";return;case"e":case"E":F+=s(),A="decimalExponent";return}if($.isDigit(w)){F+=s();return}return b("numeric",J*Number(F))},decimalPointLeading(){if($.isDigit(w)){F+=s(),A="decimalFraction";return}throw k(s())},decimalPoint(){switch(w){case"e":case"E":F+=s(),A="decimalExponent";return}if($.isDigit(w)){F+=s(),A="decimalFraction";return}return b("numeric",J*Number(F))},decimalFraction(){switch(w){case"e":case"E":F+=s(),A="decimalExponent";return}if($.isDigit(w)){F+=s();return}return b("numeric",J*Number(F))},decimalExponent(){switch(w){case"+":case"-":F+=s(),A="decimalExponentSign";return}if($.isDigit(w)){F+=s(),A="decimalExponentInteger";return}throw k(s())},decimalExponentSign(){if($.isDigit(w)){F+=s(),A="decimalExponentInteger";return}throw k(s())},decimalExponentInteger(){if($.isDigit(w)){F+=s();return}return b("numeric",J*Number(F))},hexadecimal(){if($.isHexDigit(w)){F+=s(),A="hexadecimalInteger";return}throw k(s())},hexadecimalInteger(){if($.isHexDigit(w)){F+=s();return}return b("numeric",J*Number(F))},string(){switch(w){case"\\":s(),F+=tn();return;case'"':if(ce)return s(),b("string",F);F+=s();return;case"'":if(!ce)return s(),b("string",F);F+=s();return;case`
11
- `:case"\r":throw k(s());case"\u2028":case"\u2029":on(w);break;case void 0:throw k(s())}F+=s()},start(){switch(w){case"{":case"[":return b("punctuator",s())}A="value"},beforePropertyName(){switch(w){case"$":case"_":F=s(),A="identifierName";return;case"\\":s(),A="identifierNameStartEscape";return;case"}":return b("punctuator",s());case'"':case"'":ce=s()==='"',A="string";return}if($.isIdStartChar(w)){F+=s(),A="identifierName";return}throw k(s())},afterPropertyName(){if(w===":")return b("punctuator",s());throw k(s())},beforePropertyValue(){A="value"},afterPropertyValue(){switch(w){case",":case"}":return b("punctuator",s())}throw k(s())},beforeArrayValue(){if(w==="]")return b("punctuator",s());A="value"},afterArrayValue(){switch(w){case",":case"]":return b("punctuator",s())}throw k(s())},end(){throw k(s())}};function b(e,u){return{type:e,value:u,line:G,column:j}}function q(e){for(const u of e){if(W()!==u)throw k(s());s()}}function tn(){switch(W()){case"b":return s(),"\b";case"f":return s(),"\f";case"n":return s(),`
12
- `;case"r":return s(),"\r";case"t":return s()," ";case"v":return s(),"\v";case"0":if(s(),$.isDigit(W()))throw k(s());return"\0";case"x":return s(),nn();case"u":return s(),Oe();case`
13
- `:case"\u2028":case"\u2029":return s(),"";case"\r":return s(),W()===`
14
- `&&s(),"";case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":throw k(s());case void 0:throw k(s())}return s()}function nn(){let e="",u=W();if(!$.isHexDigit(u)||(e+=s(),u=W(),!$.isHexDigit(u)))throw k(s());return e+=s(),String.fromCodePoint(parseInt(e,16))}function Oe(){let e="",u=4;for(;u-- >0;){const n=W();if(!$.isHexDigit(n))throw k(s());e+=s()}return String.fromCodePoint(parseInt(e,16))}const rn={start(){if(L.type==="eof")throw Y();je()},beforePropertyName(){switch(L.type){case"identifier":case"string":Pe=L.value,T="afterPropertyName";return;case"punctuator":Ae();return;case"eof":throw Y()}},afterPropertyName(){if(L.type==="eof")throw Y();T="beforePropertyValue"},beforePropertyValue(){if(L.type==="eof")throw Y();je()},beforeArrayValue(){if(L.type==="eof")throw Y();if(L.type==="punctuator"&&L.value==="]"){Ae();return}je()},afterPropertyValue(){if(L.type==="eof")throw Y();switch(L.value){case",":T="beforePropertyName";return;case"}":Ae()}},afterArrayValue(){if(L.type==="eof")throw Y();switch(L.value){case",":T="beforeArrayValue";return;case"]":Ae()}},end(){}};function je(){let e;switch(L.type){case"punctuator":switch(L.value){case"{":e={};break;case"[":e=[];break}break;case"null":case"boolean":case"numeric":case"string":e=L.value;break}if(De===void 0)De=e;else{const u=M[M.length-1];Array.isArray(u)?u.push(e):Object.defineProperty(u,Pe,{value:e,writable:!0,enumerable:!0,configurable:!0})}if(e!==null&&typeof e=="object")M.push(e),Array.isArray(e)?T="beforeArrayValue":T="beforePropertyName";else{const u=M[M.length-1];u==null?T="end":Array.isArray(u)?T="afterArrayValue":T="afterPropertyValue"}}function Ae(){M.pop();const e=M[M.length-1];e==null?T="end":Array.isArray(e)?T="afterArrayValue":T="afterPropertyValue"}function k(e){return he(e===void 0?`JSON5: invalid end of input at ${G}:${j}`:`JSON5: invalid character '${ku(e)}' at ${G}:${j}`)}function Y(){return he(`JSON5: invalid end of input at ${G}:${j}`)}function bu(){return j-=5,he(`JSON5: invalid identifier character at ${G}:${j}`)}function on(e){console.warn(`JSON5: '${ku(e)}' in strings is not valid ECMAScript; consider escaping`)}function ku(e){const u={"'":"\\'",'"':'\\"',"\\":"\\\\","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r"," ":"\\t","\v":"\\v","\0":"\\0","\u2028":"\\u2028","\u2029":"\\u2029"};if(u[e])return u[e];if(e<" "){const n=e.charCodeAt(0).toString(16);return"\\x"+("00"+n).substring(n.length)}return e}function he(e){const u=new SyntaxError(e);return u.lineNumber=G,u.columnNumber=j,u}var an=function(u,n,t){const i=[];let r="",o,c,D="",l;if(n!=null&&typeof n=="object"&&!Array.isArray(n)&&(t=n.space,l=n.quote,n=n.replacer),typeof n=="function")c=n;else if(Array.isArray(n)){o=[];for(const m of n){let g;typeof m=="string"?g=m:(typeof m=="number"||m instanceof String||m instanceof Number)&&(g=String(m)),g!==void 0&&o.indexOf(g)<0&&o.push(g)}}return t instanceof Number?t=Number(t):t instanceof String&&(t=String(t)),typeof t=="number"?t>0&&(t=Math.min(10,Math.floor(t)),D=" ".substr(0,t)):typeof t=="string"&&(D=t.substr(0,10)),d("",{"":u});function d(m,g){let C=g[m];switch(C!=null&&(typeof C.toJSON5=="function"?C=C.toJSON5(m):typeof C.toJSON=="function"&&(C=C.toJSON(m))),c&&(C=c.call(g,m,C)),C instanceof Number?C=Number(C):C instanceof String?C=String(C):C instanceof Boolean&&(C=C.valueOf()),C){case null:return"null";case!0:return"true";case!1:return"false"}if(typeof C=="string")return f(C);if(typeof C=="number")return String(C);if(typeof C=="object")return Array.isArray(C)?v(C):p(C)}function f(m){const g={"'":.1,'"':.2},C={"'":"\\'",'"':'\\"',"\\":"\\\\","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r"," ":"\\t","\v":"\\v","\0":"\\0","\u2028":"\\u2028","\u2029":"\\u2029"};let B="";for(let N=0;N<m.length;N++){const P=m[N];switch(P){case"'":case'"':g[P]++,B+=P;continue;case"\0":if($.isDigit(m[N+1])){B+="\\x00";continue}}if(C[P]){B+=C[P];continue}if(P<" "){let X=P.charCodeAt(0).toString(16);B+="\\x"+("00"+X).substring(X.length);continue}B+=P}const S=l||Object.keys(g).reduce((N,P)=>g[N]<g[P]?N:P);return B=B.replace(new RegExp(S,"g"),C[S]),S+B+S}function p(m){if(i.indexOf(m)>=0)throw TypeError("Converting circular structure to JSON5");i.push(m);let g=r;r=r+D;let C=o||Object.keys(m),B=[];for(const N of C){const P=d(N,m);if(P!==void 0){let X=h(N)+":";D!==""&&(X+=" "),X+=P,B.push(X)}}let S;if(B.length===0)S="{}";else{let N;if(D==="")N=B.join(","),S="{"+N+"}";else{let P=`,
15
- `+r;N=B.join(P),S=`{
16
- `+r+N+`,
17
- `+g+"}"}}return i.pop(),r=g,S}function h(m){if(m.length===0)return f(m);const g=String.fromCodePoint(m.codePointAt(0));if(!$.isIdStartChar(g))return f(m);for(let C=g.length;C<m.length;C++)if(!$.isIdContinueChar(String.fromCodePoint(m.codePointAt(C))))return f(m);return m}function v(m){if(i.indexOf(m)>=0)throw TypeError("Converting circular structure to JSON5");i.push(m);let g=r;r=r+D;let C=[];for(let S=0;S<m.length;S++){const N=d(String(S),m);C.push(N!==void 0?N:"null")}let B;if(C.length===0)B="[]";else if(D==="")B="["+C.join(",")+"]";else{let S=`,
18
- `+r,N=C.join(S);B=`[
19
- `+r+N+`,
20
- `+g+"]"}return i.pop(),r=g,B}};const sn={parse:en,stringify:an};var ue=sn;function Dn(e){return O(e,u=>_`${ue.stringify(u.id)}`,{separator:" | "})}function cn(e){const u=Array.from(e),n=new I;return n.appendTemplate`
21
- /******************************************************************************
22
- * This file was generated
23
- * DO NOT EDIT MANUALLY!
24
- ******************************************************************************/
25
- /* prettier-ignore-start */
26
- /* eslint-disable */
27
-
28
- `.append(E,E),u.length==0?(n.append("export const LikeC4Views = {}",E),U(n)):(n.appendTemplate`
29
- export const LikeC4Views = {
30
- `.indent({indentation:2,indentedChildren(t){t.appendNewLineIf(u.length>1).append(O(u,i=>_`${ue.stringify(i.id)}: ${ue.stringify(i)}`,{separator:",",appendNewLineIfNotEmpty:!0}))}}).append("}",E,E).appendTemplate`
31
-
32
- export function isLikeC4ViewId(value) {
33
- return (
34
- value != null &&
35
- typeof value === 'string' &&
36
- !!LikeC4Views[value]
37
- )
38
- }
39
-
40
- /* prettier-ignore-end */
41
- `.append(E),U(n))}function dn(e){const u=Array.from(e),n=new I;return n.appendTemplate`
68
+ `;function Ut(i){return i instanceof fe||i instanceof Jn||i instanceof Vt}function mt(i,e){return Ut(i)?Lu(i,e).text:String(i)}class fe{constructor(...e){this.contents=[],this.append(...e)}isEmpty(){return this.contents.length===0}trace(e,t,n){if(Ks(e)){if(this.tracedSource={astNode:e,property:t,index:n},this.tracedSource.property===void 0&&this.tracedSource.index!==void 0&&this.tracedSource.index>-1)throw new Error("Generation support: 'property' argument must not be 'undefined' if a non-negative value is assigned to 'index' in 'CompositeGeneratorNode.trace(...)'.")}else this.tracedSource=e;return this}append(...e){for(const t of e)typeof t=="function"?t(this):t&&this.contents.push(t);return this}appendIf(e,...t){return e?this.append(...t):this}appendNewLine(){return this.append(G)}appendNewLineIf(e){return e?this.append(G):this}appendNewLineIfNotEmpty(){return this.append(Ku)}appendNewLineIfNotEmptyIf(e){return e?this.appendNewLineIfNotEmpty():this}appendTemplate(e,...t){return this.append(Ze(e,...t))}appendTemplateIf(e){return e?(t,...n)=>this.appendTemplate(t,...n):()=>this}indent(e){const{indentedChildren:t,indentation:n,indentEmptyLines:s,indentImmediately:r}=Array.isArray(e)||typeof e=="function"?{indentedChildren:e}:typeof e=="object"?e:{},u=new Jn(n,r,s);return this.contents.push(u),Array.isArray(t)?u.append(...t):t&&u.append(t),this}appendTraced(e,t,n){return s=>this.append(new fe().trace(e,t,n).append(s))}appendTracedIf(e,t,n,s){return e?this.appendTraced(typeof t=="function"?t():t,n,s):()=>this}appendTracedTemplate(e,t,n){return(s,...r)=>this.append(Vu(e,t,n)(s,...r))}appendTracedTemplateIf(e,t,n,s){return e?this.appendTracedTemplate(typeof t=="function"?t():t,n,s):()=>this}}function Ju(i,e,t){return n=>n instanceof fe&&n.tracedSource===void 0?n.trace(i,e,t):new fe().trace(i,e,t).append(n)}class Jn extends fe{constructor(e,t=!0,n=!1){super(),this.indentImmediately=!0,this.indentEmptyLines=!1,typeof e=="string"?this.indentation=e:typeof e=="number"&&(this.indentation="".padStart(e)),this.indentImmediately=t,this.indentEmptyLines=n}}class Vt{constructor(e,t=!1){this.ifNotEmpty=!1,this.lineDelimiter=e??qu,this.ifNotEmpty=t}}const G=new Vt,Ku=new Vt(void 0,!0),Bs=i=>i===void 0||typeof i=="string"||Ut(i)?i:String(i);function Se(i,e=Bs,t={}){const n=typeof e=="function"?e:Bs,{filter:s,prefix:r,suffix:u,separator:a,appendNewLineIfNotEmpty:c,skipNewLineAfterLastItem:h}=typeof e=="object"?e:t,l=typeof r=="function"?r:()=>r,f=typeof u=="function"?u:()=>u;return Qu(i,(m,C,F,w)=>{if(s&&!s(C,F,w))return m;const p=n(C,F,w);return p===void 0?m:(m??(m=new fe)).append(l(C,F,w)).append(p).append(f(C,F,w)).appendIf(!w,a).appendNewLineIfNotEmptyIf(!m.isEmpty()&&!!c&&(!w||!h))})}function Qu(i,e,t){const n=i[Symbol.iterator]();let s=n.next(),r=0,u=t;for(;!s.done;){const a=n.next();u=e(u,s.value,r,!!a.done),s=a,r++}return u}const Xu=i=>i.charAt(0).toLocaleUpperCase()+i.slice(1),Zu=i=>i.split(".").map(Xu).join(""),eo=i=>Zu(i.parent?i.id.slice(i.parent.length+1):i.id),to=({autoLayout:i})=>{switch(i.direction){case"TB":return"down";case"BT":return"up";case"LR":return"right";case"RL":return"left"}},no=({shape:i})=>{switch(i){case"queue":case"cylinder":case"rectangle":case"person":return i;case"storage":return"stored_data";case"mobile":case"browser":return"rectangle"}};function Os(i){const{nodes:e,edges:t}=i,n=new Map,s=(u,a)=>{const c=eo(u),h=(a?a+".":"")+c;n.set(u.id,h);const l=JSON.stringify(u.title),f=no(u);return new fe().append(c,": {",G).indent({indentedChildren:m=>m.append("label: ",l,G).appendIf(f!=="rectangle","shape: ",f,G).appendIf(u.children.length>0,G,Se(e.filter(C=>C.parent===u.id),C=>s(C,h))),indentation:2}).append("}",G)},r=u=>new fe().append(n.get(u.source)," -> ",n.get(u.target)).append(a=>u.label&&a.append(": ",JSON.stringify(u.label)));return mt(new fe().append("direction: ",to(i),G,G).append(Se(e.filter(u=>gi(u.parent)),u=>s(u),{appendNewLineIfNotEmpty:!0})).appendIf(t.length>0,G,Se(t,u=>r(u),{appendNewLineIfNotEmpty:!0})))}const io=i=>i.charAt(0).toLocaleUpperCase()+i.slice(1),so=i=>i.split(".").map(io).join(""),ro=i=>so(i.parent?i.id.slice(i.parent.length+1):i.id),uo=({shape:i})=>{switch(i){case"queue":case"cylinder":return["[(",")]"];case"person":return["[fa:fa-user ","]"];case"storage":return["([","])"];case"mobile":case"browser":case"rectangle":return["[","]"]}};function _s(i){const{nodes:e,edges:t}=i,n=new Map,s=(u,a)=>{const c=ro(u),h=(a?a+".":"")+c;n.set(u.id,h);const l=u.title.replaceAll(`
69
+ `,"\\n"),f=uo(u),m=new fe;return u.children.length>0?m.append("subgraph ",h,"[",JSON.stringify(u.title),"]",G).indent({indentedChildren:[Se(e.filter(C=>C.parent===u.id),C=>s(C,h),{appendNewLineIfNotEmpty:!0})],indentation:2}).append("end",G):m.append(h,f[0],l,f[1]),m},r=u=>new fe().append(n.get(u.source)," -.",u.label?' "'+u.label.replaceAll(`
70
+ `,"\\n")+'" .-':"-","> ",n.get(u.target));return mt(new fe().appendIf(i.title!==null&&i.title.length>0,"---",G,`title: ${JSON.stringify(i.title)}`,G,"---",G).append("graph ",i.autoLayout.direction,G).indent({indentedChildren:u=>{u.append(Se(e.filter(a=>gi(a.parent)),a=>s(a),{appendNewLineIfNotEmpty:!0})).appendIf(t.length>0,Se(t,a=>r(a),{appendNewLineIfNotEmpty:!0}))},indentation:2}))}var oo=/[\u1680\u2000-\u200A\u202F\u205F\u3000]/,ao=/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE83\uDE86-\uDE89\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]/,co=/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u08D4-\u08E1\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u09FC\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9-\u0AFF\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C80-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D00-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D54-\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19D9\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1CD0-\u1CD2\u1CD4-\u1CF9\u1D00-\u1DF9\u1DFB-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u2E2F\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099\u309A\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE3E\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC00-\uDC4A\uDC50-\uDC59\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDCA0-\uDCE9\uDCFF\uDE00-\uDE3E\uDE47\uDE50-\uDE83\uDE86-\uDE99\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC36\uDC38-\uDC40\uDC50-\uDC59\uDC72-\uDC8F\uDC92-\uDCA7\uDCA9-\uDCB6\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD36\uDD3A\uDD3C\uDD3D\uDD3F-\uDD47\uDD50-\uDD59]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6\uDD00-\uDD4A\uDD50-\uDD59]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/,Kn={Space_Separator:oo,ID_Start:ao,ID_Continue:co},ae={isSpaceSeparator(i){return typeof i=="string"&&Kn.Space_Separator.test(i)},isIdStartChar(i){return typeof i=="string"&&(i>="a"&&i<="z"||i>="A"&&i<="Z"||i==="$"||i==="_"||Kn.ID_Start.test(i))},isIdContinueChar(i){return typeof i=="string"&&(i>="a"&&i<="z"||i>="A"&&i<="Z"||i>="0"&&i<="9"||i==="$"||i==="_"||i==="\u200C"||i==="\u200D"||Kn.ID_Continue.test(i))},isDigit(i){return typeof i=="string"&&/[0-9]/.test(i)},isHexDigit(i){return typeof i=="string"&&/[0-9A-Fa-f]/.test(i)}};let Qn,Ae,He,gn,et,Me,ge,Xn,zt;var lo=function(e,t){Qn=String(e),Ae="start",He=[],gn=0,et=1,Me=0,ge=void 0,Xn=void 0,zt=void 0;do ge=fo(),mo[Ae]();while(ge.type!=="eof");return typeof t=="function"?Zn({"":zt},"",t):zt};function Zn(i,e,t){const n=i[e];if(n!=null&&typeof n=="object")if(Array.isArray(n))for(let s=0;s<n.length;s++){const r=String(s),u=Zn(n,r,t);u===void 0?delete n[r]:Object.defineProperty(n,r,{value:u,writable:!0,enumerable:!0,configurable:!0})}else for(const s in n){const r=Zn(n,s,t);r===void 0?delete n[s]:Object.defineProperty(n,s,{value:r,writable:!0,enumerable:!0,configurable:!0})}return t.call(i,e,n)}let H,z,Ht,Ge,Y;function fo(){for(H="default",z="",Ht=!1,Ge=1;;){Y=Ye();const i=Ss[H]();if(i)return i}}function Ye(){if(Qn[gn])return String.fromCodePoint(Qn.codePointAt(gn))}function E(){const i=Ye();return i===`
71
+ `?(et++,Me=0):i?Me+=i.length:Me++,i&&(gn+=i.length),i}const Ss={default(){switch(Y){case" ":case"\v":case"\f":case" ":case"\xA0":case"\uFEFF":case`
72
+ `:case"\r":case"\u2028":case"\u2029":E();return;case"/":E(),H="comment";return;case void 0:return E(),Z("eof")}if(ae.isSpaceSeparator(Y)){E();return}return Ss[Ae]()},comment(){switch(Y){case"*":E(),H="multiLineComment";return;case"/":E(),H="singleLineComment";return}throw ee(E())},multiLineComment(){switch(Y){case"*":E(),H="multiLineCommentAsterisk";return;case void 0:throw ee(E())}E()},multiLineCommentAsterisk(){switch(Y){case"*":E();return;case"/":E(),H="default";return;case void 0:throw ee(E())}E(),H="multiLineComment"},singleLineComment(){switch(Y){case`
73
+ `:case"\r":case"\u2028":case"\u2029":E(),H="default";return;case void 0:return E(),Z("eof")}E()},value(){switch(Y){case"{":case"[":return Z("punctuator",E());case"n":return E(),gt("ull"),Z("null",null);case"t":return E(),gt("rue"),Z("boolean",!0);case"f":return E(),gt("alse"),Z("boolean",!1);case"-":case"+":E()==="-"&&(Ge=-1),H="sign";return;case".":z=E(),H="decimalPointLeading";return;case"0":z=E(),H="zero";return;case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":z=E(),H="decimalInteger";return;case"I":return E(),gt("nfinity"),Z("numeric",1/0);case"N":return E(),gt("aN"),Z("numeric",NaN);case'"':case"'":Ht=E()==='"',z="",H="string";return}throw ee(E())},identifierNameStartEscape(){if(Y!=="u")throw ee(E());E();const i=ei();switch(i){case"$":case"_":break;default:if(!ae.isIdStartChar(i))throw Is();break}z+=i,H="identifierName"},identifierName(){switch(Y){case"$":case"_":case"\u200C":case"\u200D":z+=E();return;case"\\":E(),H="identifierNameEscape";return}if(ae.isIdContinueChar(Y)){z+=E();return}return Z("identifier",z)},identifierNameEscape(){if(Y!=="u")throw ee(E());E();const i=ei();switch(i){case"$":case"_":case"\u200C":case"\u200D":break;default:if(!ae.isIdContinueChar(i))throw Is();break}z+=i,H="identifierName"},sign(){switch(Y){case".":z=E(),H="decimalPointLeading";return;case"0":z=E(),H="zero";return;case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":z=E(),H="decimalInteger";return;case"I":return E(),gt("nfinity"),Z("numeric",Ge*(1/0));case"N":return E(),gt("aN"),Z("numeric",NaN)}throw ee(E())},zero(){switch(Y){case".":z+=E(),H="decimalPoint";return;case"e":case"E":z+=E(),H="decimalExponent";return;case"x":case"X":z+=E(),H="hexadecimal";return}return Z("numeric",Ge*0)},decimalInteger(){switch(Y){case".":z+=E(),H="decimalPoint";return;case"e":case"E":z+=E(),H="decimalExponent";return}if(ae.isDigit(Y)){z+=E();return}return Z("numeric",Ge*Number(z))},decimalPointLeading(){if(ae.isDigit(Y)){z+=E(),H="decimalFraction";return}throw ee(E())},decimalPoint(){switch(Y){case"e":case"E":z+=E(),H="decimalExponent";return}if(ae.isDigit(Y)){z+=E(),H="decimalFraction";return}return Z("numeric",Ge*Number(z))},decimalFraction(){switch(Y){case"e":case"E":z+=E(),H="decimalExponent";return}if(ae.isDigit(Y)){z+=E();return}return Z("numeric",Ge*Number(z))},decimalExponent(){switch(Y){case"+":case"-":z+=E(),H="decimalExponentSign";return}if(ae.isDigit(Y)){z+=E(),H="decimalExponentInteger";return}throw ee(E())},decimalExponentSign(){if(ae.isDigit(Y)){z+=E(),H="decimalExponentInteger";return}throw ee(E())},decimalExponentInteger(){if(ae.isDigit(Y)){z+=E();return}return Z("numeric",Ge*Number(z))},hexadecimal(){if(ae.isHexDigit(Y)){z+=E(),H="hexadecimalInteger";return}throw ee(E())},hexadecimalInteger(){if(ae.isHexDigit(Y)){z+=E();return}return Z("numeric",Ge*Number(z))},string(){switch(Y){case"\\":E(),z+=ho();return;case'"':if(Ht)return E(),Z("string",z);z+=E();return;case"'":if(!Ht)return E(),Z("string",z);z+=E();return;case`
74
+ `:case"\r":throw ee(E());case"\u2028":case"\u2029":go(Y);break;case void 0:throw ee(E())}z+=E()},start(){switch(Y){case"{":case"[":return Z("punctuator",E())}H="value"},beforePropertyName(){switch(Y){case"$":case"_":z=E(),H="identifierName";return;case"\\":E(),H="identifierNameStartEscape";return;case"}":return Z("punctuator",E());case'"':case"'":Ht=E()==='"',H="string";return}if(ae.isIdStartChar(Y)){z+=E(),H="identifierName";return}throw ee(E())},afterPropertyName(){if(Y===":")return Z("punctuator",E());throw ee(E())},beforePropertyValue(){H="value"},afterPropertyValue(){switch(Y){case",":case"}":return Z("punctuator",E())}throw ee(E())},beforeArrayValue(){if(Y==="]")return Z("punctuator",E());H="value"},afterArrayValue(){switch(Y){case",":case"]":return Z("punctuator",E())}throw ee(E())},end(){throw ee(E())}};function Z(i,e){return{type:i,value:e,line:et,column:Me}}function gt(i){for(const e of i){if(Ye()!==e)throw ee(E());E()}}function ho(){switch(Ye()){case"b":return E(),"\b";case"f":return E(),"\f";case"n":return E(),`
75
+ `;case"r":return E(),"\r";case"t":return E()," ";case"v":return E(),"\v";case"0":if(E(),ae.isDigit(Ye()))throw ee(E());return"\0";case"x":return E(),po();case"u":return E(),ei();case`
76
+ `:case"\u2028":case"\u2029":return E(),"";case"\r":return E(),Ye()===`
77
+ `&&E(),"";case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":throw ee(E());case void 0:throw ee(E())}return E()}function po(){let i="",e=Ye();if(!ae.isHexDigit(e)||(i+=E(),e=Ye(),!ae.isHexDigit(e)))throw ee(E());return i+=E(),String.fromCodePoint(parseInt(i,16))}function ei(){let i="",e=4;for(;e-- >0;){const t=Ye();if(!ae.isHexDigit(t))throw ee(E());i+=E()}return String.fromCodePoint(parseInt(i,16))}const mo={start(){if(ge.type==="eof")throw Dt();ti()},beforePropertyName(){switch(ge.type){case"identifier":case"string":Xn=ge.value,Ae="afterPropertyName";return;case"punctuator":Dn();return;case"eof":throw Dt()}},afterPropertyName(){if(ge.type==="eof")throw Dt();Ae="beforePropertyValue"},beforePropertyValue(){if(ge.type==="eof")throw Dt();ti()},beforeArrayValue(){if(ge.type==="eof")throw Dt();if(ge.type==="punctuator"&&ge.value==="]"){Dn();return}ti()},afterPropertyValue(){if(ge.type==="eof")throw Dt();switch(ge.value){case",":Ae="beforePropertyName";return;case"}":Dn()}},afterArrayValue(){if(ge.type==="eof")throw Dt();switch(ge.value){case",":Ae="beforeArrayValue";return;case"]":Dn()}},end(){}};function ti(){let i;switch(ge.type){case"punctuator":switch(ge.value){case"{":i={};break;case"[":i=[];break}break;case"null":case"boolean":case"numeric":case"string":i=ge.value;break}if(zt===void 0)zt=i;else{const e=He[He.length-1];Array.isArray(e)?e.push(i):Object.defineProperty(e,Xn,{value:i,writable:!0,enumerable:!0,configurable:!0})}if(i!==null&&typeof i=="object")He.push(i),Array.isArray(i)?Ae="beforeArrayValue":Ae="beforePropertyName";else{const e=He[He.length-1];e==null?Ae="end":Array.isArray(e)?Ae="afterArrayValue":Ae="afterPropertyValue"}}function Dn(){He.pop();const i=He[He.length-1];i==null?Ae="end":Array.isArray(i)?Ae="afterArrayValue":Ae="afterPropertyValue"}function ee(i){return Cn(i===void 0?`JSON5: invalid end of input at ${et}:${Me}`:`JSON5: invalid character '${xs(i)}' at ${et}:${Me}`)}function Dt(){return Cn(`JSON5: invalid end of input at ${et}:${Me}`)}function Is(){return Me-=5,Cn(`JSON5: invalid identifier character at ${et}:${Me}`)}function go(i){console.warn(`JSON5: '${xs(i)}' in strings is not valid ECMAScript; consider escaping`)}function xs(i){const e={"'":"\\'",'"':'\\"',"\\":"\\\\","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r"," ":"\\t","\v":"\\v","\0":"\\0","\u2028":"\\u2028","\u2029":"\\u2029"};if(e[i])return e[i];if(i<" "){const t=i.charCodeAt(0).toString(16);return"\\x"+("00"+t).substring(t.length)}return i}function Cn(i){const e=new SyntaxError(i);return e.lineNumber=et,e.columnNumber=Me,e}var Do=function(e,t,n){const s=[];let r="",u,a,c="",h;if(t!=null&&typeof t=="object"&&!Array.isArray(t)&&(n=t.space,h=t.quote,t=t.replacer),typeof t=="function")a=t;else if(Array.isArray(t)){u=[];for(const w of t){let p;typeof w=="string"?p=w:(typeof w=="number"||w instanceof String||w instanceof Number)&&(p=String(w)),p!==void 0&&u.indexOf(p)<0&&u.push(p)}}return n instanceof Number?n=Number(n):n instanceof String&&(n=String(n)),typeof n=="number"?n>0&&(n=Math.min(10,Math.floor(n)),c=" ".substr(0,n)):typeof n=="string"&&(c=n.substr(0,10)),l("",{"":e});function l(w,p){let y=p[w];switch(y!=null&&(typeof y.toJSON5=="function"?y=y.toJSON5(w):typeof y.toJSON=="function"&&(y=y.toJSON(w))),a&&(y=a.call(p,w,y)),y instanceof Number?y=Number(y):y instanceof String?y=String(y):y instanceof Boolean&&(y=y.valueOf()),y){case null:return"null";case!0:return"true";case!1:return"false"}if(typeof y=="string")return f(y);if(typeof y=="number")return String(y);if(typeof y=="object")return Array.isArray(y)?F(y):m(y)}function f(w){const p={"'":.1,'"':.2},y={"'":"\\'",'"':'\\"',"\\":"\\\\","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r"," ":"\\t","\v":"\\v","\0":"\\0","\u2028":"\\u2028","\u2029":"\\u2029"};let B="";for(let L=0;L<w.length;L++){const U=w[L];switch(U){case"'":case'"':p[U]++,B+=U;continue;case"\0":if(ae.isDigit(w[L+1])){B+="\\x00";continue}}if(y[U]){B+=y[U];continue}if(U<" "){let Ce=U.charCodeAt(0).toString(16);B+="\\x"+("00"+Ce).substring(Ce.length);continue}B+=U}const M=h||Object.keys(p).reduce((L,U)=>p[L]<p[U]?L:U);return B=B.replace(new RegExp(M,"g"),y[M]),M+B+M}function m(w){if(s.indexOf(w)>=0)throw TypeError("Converting circular structure to JSON5");s.push(w);let p=r;r=r+c;let y=u||Object.keys(w),B=[];for(const L of y){const U=l(L,w);if(U!==void 0){let Ce=C(L)+":";c!==""&&(Ce+=" "),Ce+=U,B.push(Ce)}}let M;if(B.length===0)M="{}";else{let L;if(c==="")L=B.join(","),M="{"+L+"}";else{let U=`,
78
+ `+r;L=B.join(U),M=`{
79
+ `+r+L+`,
80
+ `+p+"}"}}return s.pop(),r=p,M}function C(w){if(w.length===0)return f(w);const p=String.fromCodePoint(w.codePointAt(0));if(!ae.isIdStartChar(p))return f(w);for(let y=p.length;y<w.length;y++)if(!ae.isIdContinueChar(String.fromCodePoint(w.codePointAt(y))))return f(w);return w}function F(w){if(s.indexOf(w)>=0)throw TypeError("Converting circular structure to JSON5");s.push(w);let p=r;r=r+c;let y=[];for(let M=0;M<w.length;M++){const L=l(String(M),w);y.push(L!==void 0?L:"null")}let B;if(y.length===0)B="[]";else if(c==="")B="["+y.join(",")+"]";else{let M=`,
81
+ `+r,L=y.join(M);B=`[
82
+ `+r+L+`,
83
+ `+p+"]"}return s.pop(),r=p,B}};const Co={parse:lo,stringify:Do};var Bt=Co;function wo(i){return Se(i,e=>Ze`${Bt.stringify(e.id)}`,{separator:" | "})}function Ao(i){const e=Array.from(i),t=new fe;return t.appendTemplate`
42
84
  /******************************************************************************
43
85
  * This file was generated
44
86
  * DO NOT EDIT MANUALLY!
@@ -49,10 +91,10 @@ import{l as Ke,m as Mu,n as Ju,o as qe,p as Wu,r as Ye,w as zu,y as Hu,z as Xe,A
49
91
  // @ts-nocheck
50
92
 
51
93
  import type { DiagramView } from 'likec4'
52
- `.append(E,E),u.length===0?(n.append("export {}",E),U(n)):(n.appendTemplate`
53
- export type LikeC4ViewId = ${Dn(u)};
94
+ `.append(G,G),e.length===0?(t.append("export {}",G),mt(t)):(t.appendTemplate`
95
+ export type LikeC4ViewId = ${wo(e)};
54
96
  export const LikeC4Views = {
55
- `.indent({indentation:2,indentedChildren(t){t.appendNewLineIf(u.length>1).append(O(u,i=>_`${ue.stringify(i.id)}: (${ue.stringify(i)} as unknown) as DiagramView`,{separator:",",appendNewLineIfNotEmpty:!0}))}}).append("} as const satisfies Record<LikeC4ViewId, DiagramView>",E,E).appendTemplate`
97
+ `.indent({indentation:2,indentedChildren(n){n.appendNewLineIf(e.length>1).append(Se(e,s=>Ze`${Bt.stringify(s.id)}: (${Bt.stringify(s)} as unknown) as DiagramView`,{separator:",",appendNewLineIfNotEmpty:!0}))}}).append("} as const satisfies Record<LikeC4ViewId, DiagramView>",G,G).appendTemplate`
56
98
  export type LikeC4Views = typeof LikeC4Views
57
99
 
58
100
  export function isLikeC4ViewId(value: unknown): value is LikeC4ViewId {
@@ -64,7 +106,7 @@ import{l as Ke,m as Mu,n as Ju,o as qe,p as Wu,r as Ye,w as zu,y as Hu,z as Xe,A
64
106
  }
65
107
 
66
108
  /* prettier-ignore-end */
67
- `.append(E),U(n))}function ln(e){const u=new I;return u.appendTemplate`
109
+ `.append(G),mt(t))}function Eo(i){const e=new fe;return e.appendTemplate`
68
110
  /******************************************************************************
69
111
  * This file was generated
70
112
  * DO NOT EDIT MANUALLY!
@@ -73,17 +115,17 @@ import{l as Ke,m as Mu,n as Ju,o as qe,p as Wu,r as Ye,w as zu,y as Hu,z as Xe,A
73
115
 
74
116
  export function d2Source(viewId) {
75
117
  switch (viewId) {
76
- `.appendNewLine().indent({indentation:4,indentedChildren(n){n.append(O(e,t=>_`
77
- case ${JSON.stringify(t.id)}: {
78
- return ${JSON.stringify(vu(t))}
118
+ `.appendNewLine().indent({indentation:4,indentedChildren(t){t.append(Se(i,n=>Ze`
119
+ case ${JSON.stringify(n.id)}: {
120
+ return ${JSON.stringify(Os(n))}
79
121
  }
80
122
  `,{appendNewLineIfNotEmpty:!0})).appendTemplate`
81
123
  default: {
82
124
  throw new Error('Unknown viewId: ' + viewId)
83
125
  }
84
- `}}).append(E," }",E).appendTemplate`
126
+ `}}).append(G," }",G).appendTemplate`
85
127
  }
86
- `.append(E,E),U(u)}function pn(e){const u=new I;return u.appendTemplate`
128
+ `.append(G,G),mt(e)}function bo(i){const e=new fe;return e.appendTemplate`
87
129
  /******************************************************************************
88
130
  * This file was generated
89
131
  * DO NOT EDIT MANUALLY!
@@ -92,33 +134,33 @@ import{l as Ke,m as Mu,n as Ju,o as qe,p as Wu,r as Ye,w as zu,y as Hu,z as Xe,A
92
134
 
93
135
  export function dotSource(viewId) {
94
136
  switch (viewId) {
95
- `.appendNewLine().indent({indentation:4,indentedChildren(n){n.append(O(Object.keys(e),t=>_`
96
- case ${JSON.stringify(t)}: {
97
- return ${JSON.stringify(e[t].dot)}
137
+ `.appendNewLine().indent({indentation:4,indentedChildren(t){t.append(Se(Object.keys(i),n=>Ze`
138
+ case ${JSON.stringify(n)}: {
139
+ return ${JSON.stringify(i[n].dot)}
98
140
  }
99
141
  `,{appendNewLineIfNotEmpty:!0})).appendTemplate`
100
142
  default: {
101
143
  throw new Error('Unknown viewId: ' + viewId)
102
144
  }
103
- `}}).append(E," }",E).appendTemplate`
145
+ `}}).append(G," }",G).appendTemplate`
104
146
  }
105
147
 
106
148
  export function svgSource(viewId) {
107
149
  switch (viewId) {
108
- `.appendNewLine().indent({indentation:4,indentedChildren(n){n.append(O(Object.keys(e),t=>_`
109
- case ${JSON.stringify(t)}: {
110
- return ${JSON.stringify(e[t].svg)}
150
+ `.appendNewLine().indent({indentation:4,indentedChildren(t){t.append(Se(Object.keys(i),n=>Ze`
151
+ case ${JSON.stringify(n)}: {
152
+ return ${JSON.stringify(i[n].svg)}
111
153
  }
112
154
  `,{appendNewLineIfNotEmpty:!0})).appendTemplate`
113
155
  default: {
114
156
  throw new Error('Unknown viewId: ' + viewId)
115
157
  }
116
- `}}).append(E," }",E,"}",E,E),U(u)}function fn(e){const u=zu(e.flatMap(i=>i.nodes.map(r=>r.icon)),Xe(Gu),Xe(i=>Ze(i)&&!i.toLowerCase().startsWith("http")),Hu()).sort(),{imports:n,cases:t}=u.reduce((i,r,o)=>{const[c,D]=r.split(":"),l="Icon"+o.toString().padStart(2,"0");return i.imports.push(`import ${l} from 'likec4/icons/${c}/${D}'`),i.cases.push(` '${c}:${D}': ${l}`),i},{imports:[],cases:[]});return`
117
- ${n.join(`
158
+ `}}).append(G," }",G,"}",G,G),mt(e)}function Fo(i){const e=Qs(i.flatMap(s=>s.nodes.map(r=>r.icon)),Di(Zs),Di(s=>Ci(s)&&!s.toLowerCase().startsWith("http")),Xs()).sort(),{imports:t,cases:n}=e.reduce((s,r,u)=>{const[a,c]=r.split(":"),h="Icon"+u.toString().padStart(2,"0");return s.imports.push(`import ${h} from 'likec4/icons/${a}/${c}'`),s.cases.push(` '${a}:${c}': ${h}`),s},{imports:[],cases:[]});return`
159
+ ${t.join(`
118
160
  `)}
119
161
 
120
162
  export const Icons = {
121
- ${t.join(`,
163
+ ${n.join(`,
122
164
  `)}
123
165
  }
124
166
 
@@ -135,7 +177,37 @@ if (import.meta.hot) {
135
177
  }
136
178
  })
137
179
  }
138
- `}function mn(e){const u=new I;return u.appendTemplate`
180
+ `}function yo(i){const{views:e,...t}=i.sourcemodel;return`
181
+ import { nano, createLikeC4Model } from 'likec4/react'
182
+
183
+ // This is needed for tree better tree shaking
184
+ export let LikeC4Views = ${Bt.stringify(e)}
185
+
186
+ export let likec4model = /* @__PURE__ */ createLikeC4Model(Object.assign(
187
+ ${Bt.stringify(t)},
188
+ {views: LikeC4Views}
189
+ ))
190
+
191
+ export let $likec4model = /* @__PURE__ */ nano.atom(likec4model)
192
+
193
+ export function useLikeC4ModelAtom() {
194
+ return nano.useStore($likec4model)
195
+ }
196
+
197
+ if (import.meta.hot) {
198
+ import.meta.hot.accept(md => {
199
+ const update = md.$likec4model
200
+ if (update) {
201
+ if (!import.meta.hot.data.$current) {
202
+ import.meta.hot.data.$current = $likec4model
203
+ }
204
+ import.meta.hot.data.$current.set(update.get())
205
+ } else {
206
+ import.meta.hot.invalidate()
207
+ }
208
+ })
209
+ }
210
+ `}function vo(i){const e=new fe;return e.appendTemplate`
139
211
  /******************************************************************************
140
212
  * This file was generated
141
213
  * DO NOT EDIT MANUALLY!
@@ -144,25 +216,24 @@ if (import.meta.hot) {
144
216
 
145
217
  export function mmdSource(viewId) {
146
218
  switch (viewId) {
147
- `.appendNewLine().indent({indentation:4,indentedChildren(n){n.append(O(e,t=>_`
148
- case ${JSON.stringify(t.id)}: {
149
- return ${JSON.stringify(Bu(t))}
219
+ `.appendNewLine().indent({indentation:4,indentedChildren(t){t.append(Se(i,n=>Ze`
220
+ case ${JSON.stringify(n.id)}: {
221
+ return ${JSON.stringify(_s(n))}
150
222
  }
151
223
  `,{appendNewLineIfNotEmpty:!0})).appendTemplate`
152
224
  default: {
153
225
  throw new Error('Unknown viewId: ' + viewId)
154
226
  }
155
- `}}).append(E," }",E).appendTemplate`
227
+ `}}).append(G," }",G).appendTemplate`
156
228
  }
157
229
 
158
- `.append(E,E),U(u)}function Su(e){return`
159
- import { useStore } from '@nanostores/react'
160
- import { atom } from 'nanostores'
230
+ `.append(G,G),mt(e)}function $s(i){return`
231
+ import { nano } from 'likec4/react'
161
232
 
162
- export const $graph = atom(${ue.stringify(e,null,2)})
233
+ export const $graph = nano.atom(${Bt.stringify(i,null,2)})
163
234
 
164
235
  export const useOverviewGraph = () => {
165
- return useStore($graph)
236
+ return nano.useStore($graph)
166
237
  }
167
238
 
168
239
  if (import.meta.hot) {
@@ -178,24 +249,22 @@ if (import.meta.hot) {
178
249
  }
179
250
  })
180
251
  }
181
- `}function Cn(e,u){const{imports:n,cases:t}=e.reduce((i,{id:r},o)=>{const c=y(u,`${r}.png`);if(!K(c))return i;const D="Png"+o.toString().padStart(2,"0");return i.imports.push(`import ${D} from 'likec4/previews/${r}.png'`),i.cases.push(` ${JSON.stringify(r)}: ${D}`),i},{imports:[],cases:[]});return`
182
- import { useStore } from '@nanostores/react'
183
- import { map } from 'nanostores'
184
-
185
- // assets dir: ${u}
252
+ `}function Bo(i,e){const{imports:t,cases:n}=i.reduce((s,{id:r},u)=>{const a=Q(e,`${r}.png`);if(!st(a))return s;const c="Png"+u.toString().padStart(2,"0");return s.imports.push(`import ${c} from 'likec4/previews/${r}.png'`),s.cases.push(` ${JSON.stringify(r)}: ${c}`),s},{imports:[],cases:[]});return`
253
+ import { nano } from 'likec4/react'
254
+ // assets dir: ${e}
186
255
 
187
- ${n.join(`
256
+ ${t.join(`
188
257
  `)}
189
258
 
190
259
  const Previews = {
191
- ${t.join(`,
260
+ ${n.join(`,
192
261
  `)}
193
262
  }
194
263
 
195
- export let $previews = map(Previews)
264
+ export let $previews = nano.map(Previews)
196
265
 
197
266
  export let usePreviewUrl = (id) => {
198
- const views = useStore($previews, {
267
+ const views = nano.useStore($previews, {
199
268
  keys: [id]
200
269
  })
201
270
  return views[id] ?? null
@@ -222,46 +291,7 @@ if (import.meta.hot) {
222
291
  }
223
292
  })
224
293
  }
225
- `}const gn=`
226
- import { useStore } from '@nanostores/react'
227
- import { map } from 'nanostores'
228
- import { LikeC4Views } from 'virtual:likec4/views'
229
-
230
- export let $views = map(LikeC4Views)
231
-
232
- export let useLikeC4Views = () => {
233
- return useStore($views)
234
- }
235
-
236
- export let useLikeC4View = (id) => {
237
- const views = useStore($views, {
238
- keys: [id]
239
- })
240
- return views[id] ?? null
241
- }
242
-
243
- if (import.meta.hot) {
244
- import.meta.hot.accept(md => {
245
- const update = md.$views
246
- if (update) {
247
- if (!import.meta.hot.data.$current) {
248
- import.meta.hot.data.$current = $views
249
- }
250
- const oldKeys = new Set([...Object.keys(import.meta.hot.data.$current.get())])
251
- for (const [id, view] of Object.entries(update.get())) {
252
- oldKeys.delete(id)
253
- import.meta.hot.data.$current.setKey(id, view)
254
- }
255
-
256
- for (const key of oldKeys.values()) {
257
- import.meta.hot.data.$current.setKey(key, undefined)
258
- }
259
- } else {
260
- import.meta.hot.invalidate()
261
- }
262
- })
263
- }
264
- `,Fn={id:"virtual:likec4/store",virtualId:"\0likec4-plugin/store.js",async load({likec4:e,logger:u}){return u.info(a.dim("generating virtual:likec4/store")),gn}},En={id:"virtual:likec4/views",virtualId:"\0likec4-plugin/views.js",async load({likec4:e,logger:u}){u.info(a.dim("generating virtual:likec4/views"));const n=await e.views.diagrams();return cn([...n])}},An={id:"virtual:likec4/dot-sources",virtualId:"\0likec4-plugin/dot-sources.js",async load({likec4:e,logger:u}){u.info(a.dim("generating virtual:likec4/dot-sources"));const n=await e.views.viewsAsGraphvizOut(),t=qu(n,({id:i,svg:r,dot:o})=>[i,{dot:o,svg:r}]);return pn(t)}},hn={id:"virtual:likec4/d2-sources",virtualId:"\0likec4-plugin/d2-sources.js",async load({likec4:e,logger:u}){u.info(a.dim("generating virtual:likec4/d2-sources"));const n=await e.views.computedViews();return ln(n)}},wn={id:"virtual:likec4/mmd-sources",virtualId:"\0likec4-plugin/mmd-sources.js",async load({likec4:e,logger:u}){u.info(a.dim("generating virtual:likec4/mmd-sources"));const n=await e.views.computedViews();return mn(n)}},vn={id:"virtual:likec4/icons",virtualId:"\0likec4-plugin/icons.js",async load({likec4:e,logger:u}){u.info(a.dim("generating virtual:likec4/icons"));const n=await e.views.computedViews();return fn(n)}},Bn={id:"virtual:likec4/overview-graph",virtualId:"\0likec4-plugin/overview-graph.js",async load({likec4:e,logger:u,useOverviewGraph:n}){if(n===!0)try{u.info(a.dim("generating virtual:likec4/overview-graph"));const t=await e.views.overviewGraph();return Su(t)}catch(t){u.error(t)}return u.info(a.dim("generating empty virtual:likec4/overview-graph")),Su({nodes:[],edges:[],bounds:{x:0,y:0,width:10,height:10}})}},$u={id:"virtual:likec4/previews",virtualId:"\0likec4-plugin/previews.js",async load({likec4:e,logger:u,assetsDir:n}){u.info(a.dim("generating virtual:likec4/previews"));const t=await e.views.computedViews();return Cn(t,n)}},Iu=[vn,An,hn,wn,En,Bn,$u],Nu=[...Iu,Fn],yn=e=>{const u=e.toLowerCase();return u.endsWith(".c4")||u.endsWith(".likec4")||u.endsWith(".like-c4")};function Re({useOverviewGraph:e=!1,languageServices:u}){let n,t=u.workspace;return{name:"vite-plugin-likec4",configResolved(i){if(n=i.logger,e){const r=i.resolve.alias.find(o=>o.find==="likec4/previews")?.replacement;r?(t=r,n.info(a.dim("likec4/previews alias")+" "+a.dim(t))):n.warn("likec4/previews alias not found")}},resolveId(i){const r=Nu.find(o=>o.id===i);return r?r.virtualId:null},async load(i){const r=Nu.find(o=>o.virtualId===i);return r?await r.load({logger:n,likec4:u,assetsDir:t,useOverviewGraph:e}):null},configureServer(i){const r=Ku(1),o=()=>{r.clearQueue(),r(async()=>{const[l]=u.getErrors();if(l){i.ws.send({type:"error",err:{name:"LikeC4ValidationError",message:"Validation error: "+l.message.slice(0,500),stack:"",plugin:"vite-plugin-likec4",loc:{file:l.sourceFsPath,line:l.range.start.line+1,column:l.range.start.character+1}}});return}for(const d of Iu){const f=i.moduleGraph.getModuleById(d.virtualId);if(f&&f.importers.size>0){n.info(`${a.green("trigger hmr")} ${a.dim(f.url)}`);try{await i.reloadModule(f)}catch(p){n.error(p)}}}})},c=u.workspace;n.info(`${a.dim("watch")} ${c}`);const D=l=>d=>{yn(d)&&u.notifyUpdate({[l]:d})};if(i.watcher.add(c).on("add",D("changed")).on("change",D("changed")).on("unlink",D("removed")),e&&!t.startsWith(u.workspace)){n.info(`${a.dim("watch")} ${t}`);const l=()=>{const d=i.moduleGraph.getModuleById($u.virtualId);d&&d.importers.size>0&&i.reloadModule(d)};i.watcher.add(t).on("add",l).on("change",l).on("unlink",l)}u.onModelUpdate(()=>{x.debug("likec4 model update"),o()})}}}const Ve=ne(ft(import.meta.url)),bn=`
294
+ `}const Oo={id:"virtual:likec4/dot-sources",virtualId:"\0likec4-plugin/dot-sources.js",async load({likec4:i,logger:e}){e.info(b.dim("generating virtual:likec4/dot-sources"));const t=await i.views.viewsAsGraphvizOut(),n=tr(t,({id:s,svg:r,dot:u})=>[s,{dot:u,svg:r}]);return bo(n)}},_o={id:"virtual:likec4/d2-sources",virtualId:"\0likec4-plugin/d2-sources.js",async load({likec4:i,logger:e}){e.info(b.dim("generating virtual:likec4/d2-sources"));const t=await i.views.computedViews();return Eo(t)}},So={id:"virtual:likec4/mmd-sources",virtualId:"\0likec4-plugin/mmd-sources.js",async load({likec4:i,logger:e}){e.info(b.dim("generating virtual:likec4/mmd-sources"));const t=await i.views.computedViews();return vo(t)}},Io={id:"virtual:likec4/icons",virtualId:"\0likec4-plugin/icons.js",async load({likec4:i,logger:e}){e.info(b.dim("generating virtual:likec4/icons"));const t=await i.views.computedViews();return Fo(t)}},xo={id:"virtual:likec4/overview-graph",virtualId:"\0likec4-plugin/overview-graph.js",async load({likec4:i,logger:e,useOverviewGraph:t}){if(t===!0)try{e.info(b.dim("generating virtual:likec4/overview-graph"));const n=await i.views.overviewGraph();return $s(n)}catch(n){e.error(n)}return e.info(b.dim("generating empty virtual:likec4/overview-graph")),$s({nodes:[],edges:[],bounds:{x:0,y:0,width:10,height:10}})}},js={id:"virtual:likec4/previews",virtualId:"\0likec4-plugin/previews.js",async load({likec4:i,logger:e,assetsDir:t}){e.info(b.dim("generating virtual:likec4/previews"));const n=await i.views.computedViews();return Bo(n,t)}},$o={id:"virtual:likec4/model",virtualId:"\0likec4-plugin/model.js",async load({likec4:i,logger:e,assetsDir:t}){e.info(b.dim("generating virtual:likec4/model"));const n=await i.layoutedModel();return yo(n)}},ni=[Io,Oo,_o,So,xo,js,$o],jo=i=>{const e=i.toLowerCase();return e.endsWith(".c4")||e.endsWith(".likec4")||e.endsWith(".like-c4")};function ii({useOverviewGraph:i=!1,languageServices:e}){let t,n=e.workspace;return{name:"vite-plugin-likec4",configResolved(s){if(t=s.logger,i){const r=s.resolve.alias.find(u=>u.find==="likec4/previews")?.replacement;r?(n=r,t.info(b.dim("likec4/previews alias")+" "+b.dim(n))):t.warn("likec4/previews alias not found")}},resolveId(s){const r=ni.find(u=>u.id===s);return r?r.virtualId:null},async load(s){const r=ni.find(u=>u.virtualId===s);return r?await r.load({logger:t,likec4:e,assetsDir:n,useOverviewGraph:i}):null},configureServer(s){const r=er(1),u=()=>{r.clearQueue(),r(async()=>{const[h]=e.getErrors();if(h){s.ws.send({type:"error",err:{name:"LikeC4ValidationError",message:"Validation error: "+h.message.slice(0,500),stack:"",plugin:"vite-plugin-likec4",loc:{file:h.sourceFsPath,line:h.range.start.line+1,column:h.range.start.character+1}}});return}for(const l of ni){const f=s.moduleGraph.getModuleById(l.virtualId);if(f&&f.importers.size>0){t.info(`${b.green("trigger hmr")} ${b.dim(f.url)}`);try{await s.reloadModule(f)}catch(m){t.error(m)}}}})},a=e.workspace;t.info(`${b.dim("watch")} ${a}`);const c=h=>l=>{jo(l)&&e.notifyUpdate({[h]:l})};if(s.watcher.add(a).on("add",c("changed")).on("change",c("changed")).on("unlink",c("removed")),i&&!n.startsWith(e.workspace)){t.info(`${b.dim("watch")} ${n}`);const h=()=>{const l=s.moduleGraph.getModuleById(js.virtualId);l&&l.importers.size>0&&s.reloadModule(l)};s.watcher.add(n).on("add",h).on("change",h).on("unlink",h)}e.onModelUpdate(()=>{De.debug("likec4 model update"),u()})}}}const si=_t(Fr(import.meta.url)),Po=`
265
295
  /* prettier-ignore-start */
266
296
  /* eslint-disable */
267
297
 
@@ -270,20 +300,20 @@ if (import.meta.hot) {
270
300
  * DO NOT EDIT MANUALLY!
271
301
  ******************************************************************************/
272
302
 
273
- `.trimStart(),kn=`
303
+ `.trimStart(),No=`
274
304
 
275
305
  /* prettier-ignore-end */
276
- `,_e={banner:bn,footer:kn};function Ue(){const e=[y(Ve,"../__app__"),y(Ve,"../../__app__"),y(Ve,"../../dist/__app__")],u=Yu(e,K);if(!u)throw x.error(`likec4 app root does not exist, tried:
277
- ${e.join(`
278
- `)}`),new Error("likec4 app root does not exist");return u}async function Me(){const e=await fe(ie(me(),".likec4-public-"));return await Q(ie(e,"likec4-views.js"),`// generated by likec4
279
- `),e}const Je=1e4,We=async({languageServices:e,likec4AssetsDir:u,...n})=>{const t=n.customLogger??R("c4:vite"),i=Ue(),r=n?.useOverviewGraph===!0;t.info(`${a.cyan("likec4 app root")} ${a.dim(i)}`);const o=n.outputDir??y(e.workspace,"dist");t.info(a.cyan("output")+" "+a.dim(o));let c="/";n.base&&(c=Xu(n.base),Zu(c)||(c=Qu(c))),c!=="/"&&t.info(`${a.green("app base url")} ${a.dim(c)}`);const D=n.webcomponentPrefix??"likec4";return{isDev:!1,likec4AssetsDir:u,webcomponentPrefix:D,root:i,languageServices:e,clearScreen:!1,base:c,resolve:{alias:{"likec4/previews":u}},configFile:!1,mode:"production",optimizeDeps:{include:["react","react-dom","react/jsx-runtime","react/jsx-dev-runtime","react-dom/client","nanostores","@nanostores/react"],force:!0},define:{WEBCOMPONENT_PREFIX:JSON.stringify(D),__USE_STYLE_BUNDLE__:"false",__USE_OVERVIEW_GRAPH__:r?"true":"false",__USE_HASH_HISTORY__:n?.useHashHistory===!0?"true":"false","process.env.NODE_ENV":'"production"'},build:{outDir:o,modulePreload:!1,emptyOutDir:!1,cssCodeSplit:!1,sourcemap:!1,cssMinify:!0,minify:!0,copyPublicDir:!0,chunkSizeWarningLimit:Je,commonjsOptions:{defaultIsModuleExports:l=>l.includes("react")?!0:"auto"},rollupOptions:{treeshake:{preset:"recommended"},output:{hoistTransitiveImports:!1,compact:!0}}},customLogger:t,plugins:[Re({languageServices:e,useOverviewGraph:r})]}};async function ze({languageServices:e,outDir:u,base:n,webcomponentPrefix:t="likec4",filename:i="likec4-views.js"}){const r=R("c4:lib"),o=Ue();return r.info(a.cyan("outDir")+" "+a.dim(u)),{root:o,clearScreen:!1,base:n,configFile:!1,publicDir:!1,mode:"production",define:{WEBCOMPONENT_PREFIX:JSON.stringify(t),"process.env.NODE_ENV":'"production"'},resolve:{alias:{"likec4/icons":y(o,"../../icons")}},esbuild:{..._e},build:{outDir:u,emptyOutDir:!1,sourcemap:!1,minify:!0,assetsInlineLimit:100*1024,chunkSizeWarningLimit:Je,lib:{entry:"webcomponent/webcomponent.js",fileName(c,D){return i},formats:["iife"],name:"LikeC4Views"},commonjsOptions:{defaultIsModuleExports:c=>c.includes("react")?!0:"auto",requireReturnsDefault:"auto"},rollupOptions:{treeshake:{preset:"recommended"},output:{format:"iife",hoistTransitiveImports:!1,compact:!0}}},customLogger:r,plugins:[Re({languageServices:e,useOverviewGraph:!1})]}}const Sn=["favicon.ico","robots.txt"],$n=async({buildWebcomponent:e=!0,webcomponentPrefix:u="likec4",languageServices:n,likec4AssetsDir:t,...i})=>{t??=await fe(ie(me(),".likec4-assets-"));const{isDev:r,...o}=await We({...i,languageServices:n,likec4AssetsDir:t,webcomponentPrefix:u}),c=await Me();for(const d of Sn){const f=y(o.root,d);K(f)&&su(f,y(c,d))}const D=await n.diagrams();if(D.length===0)throw process.exitCode=1,new Error("no views found");if(D.forEach(d=>{d.hasLayoutDrift&&o.customLogger.warn(a.yellow("drift detected, manual layout can not be applied, view:")+" "+a.red(d.id))}),e){const d=await ze({webcomponentPrefix:u,languageServices:n,outDir:c,base:o.base});await re(d)}await re({...o,publicDir:c,mode:"production"});const l=y(o.build.outDir,"index.html");K(l)&&su(l,y(o.build.outDir,"404.html"))};function Lu(e){if(e.resolvedUrls)return Qe(e.resolvedUrls.network)??Qe(e.resolvedUrls.local)}function xu(e){if(!e.resolvedUrls)throw new Error("Vite server is not ready, no resolvedUrls");x.box([a.green("LikeC4 served at:"),"",a.dim("Local: ")+e.resolvedUrls.local.join(`
280
- `+"".padEnd(9," ")),a.dim("Network: ")+e.resolvedUrls.network.join(`
306
+ `,ri={banner:Po,footer:No};function ui(){const i=[Q(si,"../__app__"),Q(si,"../../__app__"),Q(si,"../../dist/__app__")],e=nr(i,st);if(!e)throw De.error(`likec4 app root does not exist, tried:
307
+ ${i.join(`
308
+ `)}`),new Error("likec4 app root does not exist");return e}async function oi(){const i=await Qt(St(Xt(),".likec4-public-"));return await At(St(i,"likec4-views.js"),`// generated by likec4
309
+ `),i}const ai=1e4,ci=async({languageServices:i,likec4AssetsDir:e,...t})=>{const n=t.customLogger??ke("c4:vite"),s=ui(),r=t?.useOverviewGraph===!0;n.info(`${b.cyan("likec4 app root")} ${b.dim(s)}`);const u=t.outputDir??Q(i.workspace,"dist");n.info(b.cyan("output")+" "+b.dim(u));let a="/";t.base&&(a=ir(t.base),sr(a)||(a=rr(a))),a!=="/"&&n.info(`${b.green("app base url")} ${b.dim(a)}`);const c=t.webcomponentPrefix??"likec4";return{isDev:!1,likec4AssetsDir:e,webcomponentPrefix:c,root:s,languageServices:i,clearScreen:!1,base:a,resolve:{alias:{"likec4/previews":e}},configFile:!1,mode:"production",optimizeDeps:{include:["likec4/react","react","react-dom","react/jsx-runtime","react/jsx-dev-runtime","react-dom/client"]},define:{WEBCOMPONENT_PREFIX:JSON.stringify(c),__USE_STYLE_BUNDLE__:"false",__USE_OVERVIEW_GRAPH__:r?"true":"false",__USE_HASH_HISTORY__:t?.useHashHistory===!0?"true":"false","process.env.NODE_ENV":'"production"'},build:{outDir:u,modulePreload:!1,emptyOutDir:!1,cssCodeSplit:!1,sourcemap:!1,cssMinify:!0,minify:!0,copyPublicDir:!0,chunkSizeWarningLimit:ai,commonjsOptions:{defaultIsModuleExports:h=>h.includes("react")?!0:"auto"},rollupOptions:{treeshake:{preset:"recommended"},output:{hoistTransitiveImports:!1,compact:!0}}},customLogger:n,plugins:[ii({languageServices:i,useOverviewGraph:r})]}};async function li({languageServices:i,outDir:e,base:t,webcomponentPrefix:n="likec4",filename:s="likec4-views.js"}){const r=ke("c4:lib"),u=ui();return r.info(b.cyan("outDir")+" "+b.dim(e)),{root:u,clearScreen:!1,base:t,configFile:!1,publicDir:!1,mode:"production",define:{WEBCOMPONENT_PREFIX:JSON.stringify(n),"process.env.NODE_ENV":'"production"'},resolve:{alias:{"likec4/icons":Q(u,"../../icons")}},esbuild:{...ri},build:{outDir:e,emptyOutDir:!1,sourcemap:!1,minify:!0,assetsInlineLimit:100*1024,chunkSizeWarningLimit:ai,lib:{entry:"webcomponent/webcomponent.js",fileName(a,c){return s},formats:["iife"],name:"LikeC4Views"},commonjsOptions:{defaultIsModuleExports:a=>a.includes("react")?!0:"auto",requireReturnsDefault:"auto"},rollupOptions:{treeshake:{preset:"recommended"},output:{format:"iife",hoistTransitiveImports:!1,compact:!0}}},customLogger:r,plugins:[ii({languageServices:i,useOverviewGraph:!1})]}}const Lo=["favicon.ico","robots.txt"],Mo=async({buildWebcomponent:i=!0,webcomponentPrefix:e="likec4",languageServices:t,likec4AssetsDir:n,...s})=>{n??=await Qt(St(Xt(),".likec4-assets-"));const{isDev:r,...u}=await ci({...s,languageServices:t,likec4AssetsDir:n,webcomponentPrefix:e}),a=await oi();for(const l of Lo){const f=Q(u.root,l);st(f)&&Si(f,Q(a,l))}const c=await t.diagrams();if(c.length===0)throw process.exitCode=1,new Error("no views found");if(c.forEach(l=>{l.hasLayoutDrift&&u.customLogger.warn(b.yellow("drift detected, manual layout can not be applied, view:")+" "+b.red(l.id))}),i){const l=await li({webcomponentPrefix:e,languageServices:t,outDir:a,base:u.base});await It(l)}await It({...u,publicDir:a,mode:"production"});const h=Q(u.build.outDir,"index.html");st(h)&&Si(h,Q(u.build.outDir,"404.html"))};function Ps(i){if(i.resolvedUrls)return wi(i.resolvedUrls.network)??wi(i.resolvedUrls.local)}function Ns(i){if(!i.resolvedUrls)throw new Error("Vite server is not ready, no resolvedUrls");De.box([b.green("LikeC4 served at:"),"",b.dim("Local: ")+i.resolvedUrls.local.join(`
310
+ `+"".padEnd(9," ")),b.dim("Network: ")+i.resolvedUrls.network.join(`
281
311
  `+"".padEnd(9," "))].join(`
282
- `))}class Pu extends Error{constructor(u){super(`${u} is locked`)}}const te={old:new Set,young:new Set},In=1e3*15,we=1024,ve=65535;let de;const Nn=()=>{const e=pt.networkInterfaces(),u=new Set([void 0,"0.0.0.0"]);for(const n of Object.values(e))for(const t of n)u.add(t.address);return u},Tu=e=>new Promise((u,n)=>{const t=gt.createServer();t.unref(),t.on("error",n),t.listen(e,()=>{const{port:i}=t.address();t.close(()=>{u(i)})})}),Ou=async(e,u)=>{if(e.host||e.port===0)return Tu(e);for(const n of u)try{await Tu({port:e.port,host:n})}catch(t){if(!["EADDRNOTAVAIL","EINVAL"].includes(t.code))throw t}return e.port},Ln=function*(e){e&&(yield*e),yield 0};async function He(e){let u,n=new Set;if(e&&(e.port&&(u=typeof e.port=="number"?[e.port]:e.port),e.exclude)){const i=e.exclude;if(typeof i[Symbol.iterator]!="function")throw new TypeError("The `exclude` option must be an iterable.");for(const r of i){if(typeof r!="number")throw new TypeError("Each item in the `exclude` option must be a number corresponding to the port you want excluded.");if(!Number.isSafeInteger(r))throw new TypeError(`Number ${r} in the exclude option is not a safe integer and can't be used`)}n=new Set(i)}de===void 0&&(de=setTimeout(()=>{de=void 0,te.old=te.young,te.young=new Set},In),de.unref&&de.unref());const t=Nn();for(const i of Ln(u))try{if(n.has(i))continue;let r=await Ou({...e,port:i},t);for(;te.old.has(r)||te.young.has(r);){if(i!==0)throw new Pu(i);r=await Ou({...e,port:i},t)}return te.young.add(r),r}catch(r){if(!["EADDRINUSE","EACCES"].includes(r.code)&&!(r instanceof Pu))throw r}throw new Error("No available ports found")}function Be(e,u){if(!Number.isInteger(e)||!Number.isInteger(u))throw new TypeError("`from` and `to` must be integer numbers");if(e<we||e>ve)throw new RangeError(`'from' must be between ${we} and ${ve}`);if(u<we||u>ve)throw new RangeError(`'to' must be between ${we} and ${ve}`);if(e>u)throw new RangeError("`to` must be greater than or equal to `from`");return function*(t,i){for(let r=t;r<=i;r++)yield r}(e,u)}async function ju({buildWebcomponent:e=!0,hmr:u=!0,webcomponentPrefix:n="likec4",languageServices:t,likec4AssetsDir:i,openBrowser:r,...o}){i??=await fe(ie(me(),".likec4-assets-"));const{isDev:c,...D}=await We({...o,languageServices:t,likec4AssetsDir:i,webcomponentPrefix:n}),l=await He({port:[5173,...Be(61e3,61010),...Be(62002,62010)]}),d=await He({port:Be(24678,24690)}),f=await Me();let p;if(e){const v=await ze({webcomponentPrefix:n,languageServices:t,outDir:f,base:D.base});p=re({...v,logLevel:"warn"}).catch(m=>(x.warn("webcomponent build failed",m),x.warn("Ignoring error and continuing"),Promise.resolve()))}const h=await mt({...D,define:Object.assign({},D.define,u&&{"process.env.NODE_ENV":'"development"'}),mode:u?"development":D.mode,publicDir:f,server:{host:"0.0.0.0",port:l,hmr:u&&{overlay:!0,port:d},fs:{strict:!1},open:r??!c}});return await h.listen(),p&&await p,h}async function xn({browserContext:e,views:u,output:n,logger:t,timeout:i,maxAttempts:r,outputType:o,theme:c}){let D;const l=u.map(p=>({view:p,attempt:1})),d=[];let f;for(;f=l.shift();){const{view:p,attempt:h}=f,v=`/export/${encodeURIComponent(p.id)}`;try{if(h>1){D&&(D.close({runBeforeUnload:!0}).catch(S=>t.error(`failed to close page: ${S}`)),D=void 0);const B=eu(h*200,{min:200,max:1e3});t.info(a.cyan(v)+a.dim(` attempt ${h} of ${r} after ${B}ms`)),await Ft(B)}else p.hasLayoutDrift&&t.warn(a.yellow("Drift detected, manual layout can not be applied, view may be invalid: ")+a.red(p.id)),t.info(a.cyan(v));D??=await e.newPage(),await D.goto(v+`?padding=20&theme=${c}`);const m=D.getByRole("presentation");await m.waitFor(),p.nodes.some(B=>Ze(B.icon)&&B.icon.toLowerCase().startsWith("http"))&&await Pn(D,i);let g=".";o==="relative"&&(g=p.relativePath??".",g.includes("/")?g=g.slice(0,g.lastIndexOf("/")):g=".");const C=y(n,g,`${p.id}.png`);await m.screenshot({path:C,omitBackground:!0}),d.push({view:p,path:C})}catch(m){D?.close({runBeforeUnload:!0}).catch(g=>t.error(`failed to close page: ${g}`)),t.error(a.red("failed "+v+`
283
- `+m)),h<r&&(l.push({view:p,attempt:h+1}),t.info(a.dim(`retry ${v}`))),D=void 0}}return d}async function Pn(e,u){let n=await e.locator("//img").all();if(!n.length)return;const t=n.map(i=>i.evaluate(r=>r.complete||new Promise((o,c)=>{r.onload=o,r.onerror=c}),{timeout:Math.max(3e4,u)}));await Promise.allSettled(t)}async function Ru({logger:e,serverUrl:u,theme:n="light",timeoutMs:t=15e3,views:i,output:r,outputType:o="relative",maxAttempts:c=3}){e.info(`${a.cyan("export output")} ${a.dim(r)}`),e.info(`${a.cyan("from server")} ${a.dim(u)}`);const D=du.executablePath();e.info(a.cyan("Start chromium")),e.info(a.dim(D));const l=await du.launch();e.info(a.cyan("Color scheme: ")+n);const d=await l.newContext({deviceScaleFactor:2,colorScheme:n,baseURL:u,isMobile:!1});d.setDefaultNavigationTimeout(t),d.setDefaultTimeout(t);try{return await xn({browserContext:d,views:i,output:r,outputType:o,logger:e,maxAttempts:c,timeout:t,theme:n})}finally{e.info(a.cyan("close chromium")),await d.close(),await l.close()}}async function Vu({path:e,useDotBin:u,theme:n="light",output:t,outputType:i,serverUrl:r,ignore:o=!1,timeoutMs:c=1e4,maxAttempts:D=3}){const l=R("c4:export"),d=rt(),f=await z.fromWorkspace(e,{logger:"vite",graphviz:u?"binary":"wasm"});t??=f.workspace;const p=await f.diagrams();if(!et(p,1))throw l.warn("no views found"),new Error("no views found");let h;if(!r&&(l.info(a.cyan("start preview server")),h=await ju({languageServices:f,buildWebcomponent:!1,openBrowser:!1,useOverviewGraph:!1,hmr:!1}),r=Lu(h),!r))throw l.error("Vite server is not ready, no resolvedUrls"),new Error("Vite server is not ready, no resolvedUrls");try{const v=await Ru({logger:l,serverUrl:r,theme:n,timeoutMs:c,views:p,output:t,outputType:i,maxAttempts:D}),{pretty:m}=ut(d);if(v.length>0&&l.info(a.green(`exported ${v.length} views in ${m}`)),v.length!==p.length&&(o&&v.length>0?l.info(a.dim("ignore")+" "+a.red(`failed ${p.length-v.length} out of ${p.length} views`)):l.error(a.red(`failed ${p.length-v.length} out of ${p.length} views`))),v.length!==p.length&&(v.length===0||!o))throw new Error(`Failed ${p.length-v.length} out of ${p.length} views`)}finally{h&&(l.info(a.cyan("stop server")),await h.close().catch(v=>{l.error(v)}))}}const{cyan:_u,dim:Uu}=a;async function Tn({path:e,useDotBin:u,useHashHistory:n,webcomponentPrefix:t,useOverview:i=!1,output:r,base:o}){const c=R("c4:build"),D=await z.fromWorkspace(e,{graphviz:u?"binary":"wasm",logger:"vite"}),l=r??y(D.workspace,"dist");let d=y(l,"assets");if(i)try{d=y(l,"assets","previews"),await H(d,{recursive:!0}),c.info(`${_u("Generate previews")} ${Uu(d)}
284
- `),await Vu({path:e,useDotBin:u,output:d,outputType:"flat",ignore:!0})}catch(f){c.error(a.red("Failed to generate previews")),c.error(f),c.warn(a.yellow("Ignore previews and continue build")),Du(d,{recursive:!0,force:!0}),i=!1}await $n({base:o,useHashHistory:n,customLogger:c,useOverviewGraph:i,webcomponentPrefix:t,languageServices:D,likec4AssetsDir:d,outputDir:r}),i&&(c.info(`${_u("clean previews")} ${Uu(d)}`),Du(d,{recursive:!0,force:!0}))}const On={command:"build [path]",aliases:["bundle"],describe:"Build a static website",builder:e=>e.positional("path",Ce).option("output",{alias:"o",type:"string",desc:"output directory for production build",normalize:!0,coerce:y}).option("base",pu).option("use-hash-history",lu).option("use-dot",V).option("webcomponent-prefix",Se).option("use-overview",fu).example(`${a.green("$0 build -o ./build ./src")}`,a.gray("Search for likec4 files in 'src' and output static site to 'build'")),handler:async e=>{await Tn({path:e.path,output:e.output,base:e.base,useHashHistory:e["use-hash-history"],useDotBin:e["use-dot"],useOverview:e["use-overview"]??!1,webcomponentPrefix:e["webcomponent-prefix"]})}};async function jn(e,u,n){const t=".ts";u=u??y(e.workspace,"likec4.generated"+t),pe(u)!==t&&(u=u+t),await H(ne(u),{recursive:!0});const i=await e.diagrams(),r=dn([...i]);await Q(u,r),n.info(`${a.dim("generated")} ${Z(process.cwd(),u)}`)}async function Rn(e,u,n){await H(u,{recursive:!0}),n.info(`${a.dim("format")} ${a.green("dot")}`),n.info(`${a.dim("outdir")} ${u}`);const t=new Set,i=await e.views.layoutViews();let r=0;for(const{diagram:o,dot:c}of i)try{const D=o.relativePath??"";D!==""&&!t.has(D)&&(await H(y(u,D),{recursive:!0}),t.add(D));const l=y(u,D,o.id+".dot");be(c,`dot for ${o.id} not found`),await Q(l,c),n.info(`${a.dim("generated")} ${Z(process.cwd(),l)}`),r++}catch(D){n.error(`error while generating ${o.id}`,{error:D})}r>0&&n.info(`${a.dim("total")} ${r} files`)}async function Vn(e,u,n,t){await H(n,{recursive:!0}),t.info(`${a.dim("format")} ${a.green(u)}`),t.info(`${a.dim("outdir")} ${n}`);let i,r;switch(u){case"d2":i=".d2",r=vu;break;case"mermaid":i=".mmd",r=Bu;break;default:uu(u)}const o=new Set,c=await e.diagrams();let D=0;for(const l of c)try{let d=l.relativePath??".";d.includes("/")?d=d.slice(0,d.lastIndexOf("/")):d=".",d!==""&&!o.has(d)&&(await H(y(n,d),{recursive:!0}),o.add(d));const f=y(n,d,l.id+i),p=r(l);await Q(f,p),t.info(`${a.dim("generated")} ${Z(process.cwd(),f)}`),D++}catch(d){t.error(`error while generating ${l.id}`,{error:d})}D>0&&t.info(`${a.dim("total")} ${D} files`)}async function ye({path:e,useDotBin:u,...n}){const t=R("c4:codegen"),i=le(t),r=await z.fromWorkspace(e,{logger:"vite",graphviz:u?"binary":"wasm"});if((await r.views.computedViews()).length===0)throw t.warn("no views found"),process.exitCode=1,new Error("no views found");switch(n.format){case"views":{await jn(r,n.outfile,t);break}case"dot":{await Rn(r,n.outdir??e,t);break}case"d2":case"mermaid":{await Vn(r,n.format,n.outdir??e,t);break}default:uu(n)}i.stopAndLog()}async function _n({languageServices:e,outDir:u,filename:n="likec4-react.mjs"}){const t=R("c4:react"),i=Ue();return t.info(a.cyan("outDir")+" "+a.dim(u)),{customLogger:t,root:i,configFile:!1,clearScreen:!1,publicDir:!1,mode:"production",esbuild:{banner:`'use client'
285
- `+_e.banner,footer:_e.footer,jsx:"transform",jsxDev:!1,minifyIdentifiers:!1,minifySyntax:!1,minifyWhitespace:!1,tsconfigRaw:{compilerOptions:{target:"ES2020",useDefineForClassFields:!0,verbatimModuleSyntax:!0,jsx:"react-jsx"}}},build:{outDir:u,emptyOutDir:!1,sourcemap:!1,minify:!1,target:"es2020",copyPublicDir:!1,chunkSizeWarningLimit:Je,lib:{entry:"react/likec4.tsx",fileName(r,o){return n},formats:["es"]},rollupOptions:{output:{compact:!1},external:["likec4/react","likec4","react","react-dom","react/jsx-runtime","react/jsx-dev-runtime","react-dom/client",/likec4\/icons\/.*/],onwarn(r,o){r.code!=="SOURCEMAP_ERROR"&&o(r)}}},plugins:[Et({}),Re({languageServices:e,useOverviewGraph:!1})]}}function Ge(e){const u=[...e].sort(tt).map(n=>` | ${JSON.stringify(n)}`);return u.length===0?u.push(" | never"):u.push(" | (string & Record<never, never>)"),u.join(`
286
- `)+";"}async function Un({path:e,useDotBin:u,outfile:n}){const t=R("c4:codegen"),i=le(t),r=await z.fromWorkspace(e,{logger:"vite",graphviz:u?"binary":"wasm"});t.info(`${a.dim("format")} ${a.green("react")}`);const o=await r.diagrams();if(o.length===0)throw process.exitCode=1,new Error("no views found");o.forEach(g=>{g.hasLayoutDrift&&t.warn(a.yellow("drift detected, manual layout can not be applied, view:")+" "+a.red(g.id))});let c=y(r.workspace,"likec4-views.mjs");if(n&&(c=au(n)?n:y(n),K(n)&&(await cu(n)).isDirectory()))throw new Error(`output file is a directory: ${n}`);const D=ne(c);t.info(`${a.dim("outdir")} ${D}`);const l=ke(c);t.info(`${a.dim("filename")} ${l}`);const d=pe(l).toLocaleLowerCase();if(![".js",".mjs",".jsx"].includes(d))throw t.error(`output file ${n} has extension "${d}"`),new Error(`output file ${n} must be a .js, .jsx or .mjs`);const f=await _n({languageServices:r,outDir:D,filename:l});await re({...f,logLevel:"warn"});const p=o.reduce((g,C)=>(g.ids.add(C.id),C.tags?.forEach(B=>g.tags.add(B)),C.nodes.forEach(B=>{B.tags?.forEach(S=>g.tags.add(S)),g.kinds.add(B.kind)}),C.edges.forEach(B=>{B.tags?.forEach(S=>g.tags.add(S))}),g),{ids:new Set,tags:new Set,kinds:new Set}),h=Ge(p.ids),v=Ge(p.tags),m=Ge(p.kinds);await Q(y(D,ke(c,d)+(d===".mjs"?".d.mts":".d.ts")),`
312
+ `))}class Ls extends Error{constructor(e){super(`${e} is locked`)}}const Ot={old:new Set,young:new Set},ko=1e3*15,wn=1024,An=65535;let Gt;const To=()=>{const i=br.networkInterfaces(),e=new Set([void 0,"0.0.0.0"]);for(const t of Object.values(i))for(const n of t)e.add(n.address);return e},Ms=i=>new Promise((e,t)=>{const n=Br.createServer();n.unref(),n.on("error",t),n.listen(i,()=>{const{port:s}=n.address();n.close(()=>{e(s)})})}),ks=async(i,e)=>{if(i.host||i.port===0)return Ms(i);for(const t of e)try{await Ms({port:i.port,host:t})}catch(n){if(!["EADDRNOTAVAIL","EINVAL"].includes(n.code))throw n}return i.port},Ro=function*(i){i&&(yield*i),yield 0};async function fi(i){let e,t=new Set;if(i&&(i.port&&(e=typeof i.port=="number"?[i.port]:i.port),i.exclude)){const s=i.exclude;if(typeof s[Symbol.iterator]!="function")throw new TypeError("The `exclude` option must be an iterable.");for(const r of s){if(typeof r!="number")throw new TypeError("Each item in the `exclude` option must be a number corresponding to the port you want excluded.");if(!Number.isSafeInteger(r))throw new TypeError(`Number ${r} in the exclude option is not a safe integer and can't be used`)}t=new Set(s)}Gt===void 0&&(Gt=setTimeout(()=>{Gt=void 0,Ot.old=Ot.young,Ot.young=new Set},ko),Gt.unref&&Gt.unref());const n=To();for(const s of Ro(e))try{if(t.has(s))continue;let r=await ks({...i,port:s},n);for(;Ot.old.has(r)||Ot.young.has(r);){if(s!==0)throw new Ls(s);r=await ks({...i,port:s},n)}return Ot.young.add(r),r}catch(r){if(!["EADDRINUSE","EACCES"].includes(r.code)&&!(r instanceof Ls))throw r}throw new Error("No available ports found")}function En(i,e){if(!Number.isInteger(i)||!Number.isInteger(e))throw new TypeError("`from` and `to` must be integer numbers");if(i<wn||i>An)throw new RangeError(`'from' must be between ${wn} and ${An}`);if(e<wn||e>An)throw new RangeError(`'to' must be between ${wn} and ${An}`);if(i>e)throw new RangeError("`to` must be greater than or equal to `from`");return function*(n,s){for(let r=n;r<=s;r++)yield r}(i,e)}async function Ts({buildWebcomponent:i=!0,hmr:e=!0,webcomponentPrefix:t="likec4",languageServices:n,likec4AssetsDir:s,openBrowser:r,...u}){s??=await Qt(St(Xt(),".likec4-assets-"));const{isDev:a,...c}=await ci({...u,languageServices:n,likec4AssetsDir:s,webcomponentPrefix:t}),h=await fi({port:[5173,...En(61e3,61010),...En(62002,62010)]}),l=await fi({port:En(24678,24690)}),f=await oi();let m;if(i){const F=await li({webcomponentPrefix:t,languageServices:n,outDir:f,base:c.base});m=It({...F,logLevel:"warn"}).catch(w=>(De.warn("webcomponent build failed",w),De.warn("Ignoring error and continuing"),Promise.resolve()))}const C=await yr({...c,define:Object.assign({},c.define,e&&{"process.env.NODE_ENV":'"development"'}),mode:e?"development":c.mode,publicDir:f,server:{host:"0.0.0.0",port:h,hmr:e&&{overlay:!0,port:l},fs:{strict:!1},open:r??!a}});return await C.listen(),m&&await m,C}async function Wo({browserContext:i,views:e,output:t,logger:n,timeout:s,maxAttempts:r,outputType:u,theme:a}){let c;const h=e.map(m=>({view:m,attempt:1})),l=[];let f;for(;f=h.shift();){const{view:m,attempt:C}=f,F=`/export/${encodeURIComponent(m.id)}`;try{if(C>1){c&&(c.close({runBeforeUnload:!0}).catch(M=>n.error(`failed to close page: ${M}`)),c=void 0);const B=Ai(C*200,{min:200,max:1e3});n.info(b.cyan(F)+b.dim(` attempt ${C} of ${r} after ${B}ms`)),await Or(B)}else m.hasLayoutDrift&&n.warn(b.yellow("Drift detected, manual layout can not be applied, view may be invalid: ")+b.red(m.id)),n.info(b.cyan(F));c??=await i.newPage(),await c.goto(F+`?padding=20&theme=${a}`);const w=c.getByRole("presentation");await w.waitFor(),m.nodes.some(B=>Ci(B.icon)&&B.icon.toLowerCase().startsWith("http"))&&await Uo(c,s);let p=".";u==="relative"&&(p=m.relativePath??".",p.includes("/")?p=p.slice(0,p.lastIndexOf("/")):p=".");const y=Q(t,p,`${m.id}.png`);await w.screenshot({path:y,omitBackground:!0}),l.push({view:m,path:y})}catch(w){c?.close({runBeforeUnload:!0}).catch(p=>n.error(`failed to close page: ${p}`)),n.error(b.red("failed "+F+`
313
+ `+w)),C<r&&(h.push({view:m,attempt:C+1}),n.info(b.dim(`retry ${F}`))),c=void 0}}return l}async function Uo(i,e){let t=await i.locator("//img").all();if(!t.length)return;const n=t.map(s=>s.evaluate(r=>r.complete||new Promise((u,a)=>{r.onload=u,r.onerror=a}),{timeout:Math.max(3e4,e)}));await Promise.allSettled(n)}async function Rs({logger:i,serverUrl:e,theme:t="light",timeoutMs:n=15e3,views:s,output:r,outputType:u="relative",maxAttempts:a=3}){i.info(`${b.cyan("export output")} ${b.dim(r)}`),i.info(`${b.cyan("from server")} ${b.dim(e)}`);const c=$i.executablePath();i.info(b.cyan("Start chromium")),i.info(b.dim(c));const h=await $i.launch();i.info(b.cyan("Color scheme: ")+t);const l=await h.newContext({deviceScaleFactor:2,colorScheme:t,baseURL:e,isMobile:!1});l.setDefaultNavigationTimeout(n),l.setDefaultTimeout(n);try{return await Wo({browserContext:l,views:s,output:r,outputType:u,logger:i,maxAttempts:a,timeout:n,theme:t})}finally{i.info(b.cyan("close chromium")),await l.close(),await h.close()}}async function Ws({path:i,useDotBin:e,theme:t="light",output:n,outputType:s,serverUrl:r,ignore:u=!1,timeoutMs:a=1e4,maxAttempts:c=3}){const h=ke("c4:export"),l=zs(),f=await qe.fromWorkspace(i,{logger:"vite",graphviz:e?"binary":"wasm"});n??=f.workspace;const m=await f.diagrams();if(!ur(m,1))throw h.warn("no views found"),new Error("no views found");let C;if(!r&&(h.info(b.cyan("start preview server")),C=await Ts({languageServices:f,buildWebcomponent:!1,openBrowser:!1,useOverviewGraph:!1,hmr:!1}),r=Ps(C),!r))throw h.error("Vite server is not ready, no resolvedUrls"),new Error("Vite server is not ready, no resolvedUrls");try{const F=await Rs({logger:h,serverUrl:r,theme:t,timeoutMs:a,views:m,output:n,outputType:s,maxAttempts:c}),{pretty:w}=or(l);if(F.length>0&&h.info(b.green(`exported ${F.length} views in ${w}`)),F.length!==m.length&&(u&&F.length>0?h.info(b.dim("ignore")+" "+b.red(`failed ${m.length-F.length} out of ${m.length} views`)):h.error(b.red(`failed ${m.length-F.length} out of ${m.length} views`))),F.length!==m.length&&(F.length===0||!u))throw new Error(`Failed ${m.length-F.length} out of ${m.length} views`)}finally{C&&(h.info(b.cyan("stop server")),await C.close().catch(F=>{h.error(F)}))}}const{cyan:Us,dim:Vs}=b;async function Vo({path:i,useDotBin:e,useHashHistory:t,webcomponentPrefix:n,useOverview:s=!1,output:r,base:u}){const a=ke("c4:build"),c=await qe.fromWorkspace(i,{graphviz:e?"binary":"wasm",logger:"vite"}),h=r??Q(c.workspace,"dist");let l=Q(h,"assets");if(s)try{l=Q(h,"assets","previews"),await Je(l,{recursive:!0}),a.info(`${Us("Generate previews")} ${Vs(l)}
314
+ `),await Ws({path:i,useDotBin:e,output:l,outputType:"flat",ignore:!0})}catch(f){a.error(b.red("Failed to generate previews")),a.error(f),a.warn(b.yellow("Ignore previews and continue build")),Ii(l,{recursive:!0,force:!0}),s=!1}await Mo({base:u,useHashHistory:t,customLogger:a,useOverviewGraph:s,webcomponentPrefix:n,languageServices:c,likec4AssetsDir:l,outputDir:r}),s&&(a.info(`${Us("clean previews")} ${Vs(l)}`),Ii(l,{recursive:!0,force:!0}))}const zo={command:"build [path]",aliases:["bundle"],describe:"Build a static website",builder:i=>i.positional("path",hn).option("output",{alias:"o",type:"string",desc:"output directory for production build",normalize:!0,coerce:Q}).option("base",Ds).option("use-hash-history",gs).option("use-dot",We).option("webcomponent-prefix",Gn).option("use-overview",Cs).example(`${b.green("$0 build -o ./build ./src")}`,b.gray("Search for likec4 files in 'src' and output static site to 'build'")),handler:async i=>{await Vo({path:i.path,output:i.output,base:i.base,useHashHistory:i["use-hash-history"],useDotBin:i["use-dot"],useOverview:i["use-overview"]??!1,webcomponentPrefix:i["webcomponent-prefix"]})}};async function Ho(i,e,t){const n=".ts";e=e??Q(i.workspace,"likec4.generated"+n),Kt(e)!==n&&(e=e+n),await Je(_t(e),{recursive:!0});const s=await i.diagrams(),r=Ao([...s]);await At(e,r),t.info(`${b.dim("generated")} ${wt(process.cwd(),e)}`)}async function Go(i,e,t){await Je(e,{recursive:!0}),t.info(`${b.dim("format")} ${b.green("dot")}`),t.info(`${b.dim("outdir")} ${e}`);const n=new Set,s=await i.views.layoutViews();let r=0;for(const{diagram:u,dot:a}of s)try{const c=u.relativePath??"";c!==""&&!n.has(c)&&(await Je(Q(e,c),{recursive:!0}),n.add(c));const h=Q(e,c,u.id+".dot");yn(a,`dot for ${u.id} not found`),await At(h,a),t.info(`${b.dim("generated")} ${wt(process.cwd(),h)}`),r++}catch(c){t.error(`error while generating ${u.id}`,{error:c})}r>0&&t.info(`${b.dim("total")} ${r} files`)}async function Yo(i,e,t,n){await Je(t,{recursive:!0}),n.info(`${b.dim("format")} ${b.green(e)}`),n.info(`${b.dim("outdir")} ${t}`);let s,r;switch(e){case"d2":s=".d2",r=Os;break;case"mermaid":s=".mmd",r=_s;break;default:Ei(e)}const u=new Set,a=await i.diagrams();let c=0;for(const h of a)try{let l=h.relativePath??".";l.includes("/")?l=l.slice(0,l.lastIndexOf("/")):l=".",l!==""&&!u.has(l)&&(await Je(Q(t,l),{recursive:!0}),u.add(l));const f=Q(t,l,h.id+s),m=r(h);await At(f,m),n.info(`${b.dim("generated")} ${wt(process.cwd(),f)}`),c++}catch(l){n.error(`error while generating ${h.id}`,{error:l})}c>0&&n.info(`${b.dim("total")} ${c} files`)}async function bn({path:i,useDotBin:e,...t}){const n=ke("c4:codegen"),s=Jt(n),r=await qe.fromWorkspace(i,{logger:"vite",graphviz:e?"binary":"wasm"});if((await r.views.computedViews()).length===0)throw n.warn("no views found"),process.exitCode=1,new Error("no views found");switch(t.format){case"views":{await Ho(r,t.outfile,n);break}case"dot":{await Go(r,t.outdir??i,n);break}case"d2":case"mermaid":{await Yo(r,t.format,t.outdir??i,n);break}default:Ei(t)}s.stopAndLog()}async function qo({languageServices:i,outDir:e,filename:t="likec4-react.mjs"}){const n=ke("c4:react"),s=ui();return n.info(b.cyan("outDir")+" "+b.dim(e)),{customLogger:n,root:s,configFile:!1,clearScreen:!1,publicDir:!1,mode:"production",esbuild:{banner:`'use client'
315
+ `+ri.banner,footer:ri.footer,jsx:"transform",jsxDev:!1,jsxSideEffects:!1,minifyIdentifiers:!1,minifySyntax:!1,minifyWhitespace:!1,tsconfigRaw:{compilerOptions:{target:"ES2022",useDefineForClassFields:!0,verbatimModuleSyntax:!0,jsx:"react-jsx"}}},build:{outDir:e,emptyOutDir:!1,sourcemap:!1,minify:!1,target:"es2022",copyPublicDir:!1,chunkSizeWarningLimit:ai,lib:{entry:"react/likec4.tsx",fileName(r,u){return t},formats:["es"]},rollupOptions:{output:{compact:!1,exports:"named"},external:["likec4/react","react","react-dom","react/jsx-runtime","react/jsx-dev-runtime","react-dom/client",/likec4\/icons\/.*/],onwarn(r,u){r.code!=="SOURCEMAP_ERROR"&&u(r)}}},plugins:[_r({}),ii({languageServices:i,useOverviewGraph:!1})]}}function di(i){const e=[...i].sort(ar).map(t=>` | ${JSON.stringify(t)}`);return e.length===0&&e.push(" never"),e.join(`
316
+ `)+";"}async function Jo({path:i,useDotBin:e,outfile:t}){const n=ke("c4:codegen"),s=Jt(n),r=await qe.fromWorkspace(i,{logger:"vite",graphviz:e?"binary":"wasm"});n.info(`${b.dim("format")} ${b.green("react")}`);const u=await r.diagrams();if(u.length===0)throw process.exitCode=1,new Error("no views found");u.forEach(p=>{p.hasLayoutDrift&&n.warn(b.yellow("drift detected, manual layout can not be applied, view:")+" "+b.red(p.id))});let a=Q(r.workspace,"likec4-views.js");if(t&&(a=_i(t)?t:Q(t),st(t)&&(await xi(t)).isDirectory()))throw new Error(`output file is a directory: ${t}`);const c=_t(a);n.info(`${b.dim("outdir")} ${c}`);const h=On(a);n.info(`${b.dim("filename")} ${h}`);const l=Kt(h).toLocaleLowerCase();if(![".js",".mjs",".jsx"].includes(l))throw n.error(`output file ${t} has extension "${l}"`),new Error(`output file ${t} must be a .js, .jsx or .mjs`);const f=await qo({languageServices:r,outDir:c,filename:h});await It({...f,logLevel:"warn"});const m=u.reduce((p,y)=>(p.ids.add(y.id),y.tags?.forEach(B=>p.tags.add(B)),y.nodes.forEach(B=>{B.tags?.forEach(M=>p.tags.add(M)),p.kinds.add(B.kind)}),y.edges.forEach(B=>{B.tags?.forEach(M=>p.tags.add(M))}),p),{ids:new Set,tags:new Set,kinds:new Set}),C=di(m.ids),F=di(m.tags),w=di(m.kinds);await At(Q(c,On(a,l)+(l===".mjs"?".d.mts":".d.ts")),`
287
317
  /* prettier-ignore-start */
288
318
  /* eslint-disable */
289
319
 
@@ -292,17 +322,23 @@ ${e.join(`
292
322
  * DO NOT EDIT MANUALLY!
293
323
  ******************************************************************************/
294
324
 
325
+ import type { PropsWithChildren } from 'react'
295
326
  import type { JSX } from 'react/jsx-runtime'
296
- import type { LikeC4ViewProps as BaseLikeC4ViewProps, ViewData, ReactLikeC4Props as GenericReactLikeC4Props } from 'likec4/react'
327
+ import type {
328
+ LikeC4ViewProps as GenericLikeC4ViewProps,
329
+ ViewData,
330
+ LikeC4Model,
331
+ ReactLikeC4Props as GenericReactLikeC4Props
332
+ } from 'likec4/react'
297
333
 
298
334
  type LikeC4ViewId =
299
- ${h}
335
+ ${C}
300
336
 
301
337
  type LikeC4ElementKind =
302
- ${m}
338
+ ${w}
303
339
 
304
340
  type LikeC4Tag =
305
- ${v}
341
+ ${F}
306
342
 
307
343
  type LikeC4ViewData = ViewData<LikeC4ViewId>
308
344
 
@@ -311,8 +347,18 @@ type LikeC4ViewData = ViewData<LikeC4ViewId>
311
347
  */
312
348
  type LikeC4DiagramView = LikeC4ViewData
313
349
 
314
- declare const LikeC4Views: Record<LikeC4ViewId, LikeC4ViewData>
315
- declare function isLikeC4ViewId(value: unknown): value is LikeC4ViewId
350
+ declare const LikeC4Views: {
351
+ readonly [K in LikeC4ViewId]: LikeC4ViewData
352
+ };
353
+ type LikeC4ViewsData = typeof LikeC4Views;
354
+ declare function isLikeC4ViewId(value: unknown): value is LikeC4ViewId;
355
+
356
+ declare const likeC4Model: LikeC4Model.Layouted;
357
+ declare function useLikeC4Model(): LikeC4Model.Layouted;
358
+ declare function useLikeC4View(viewId: LikeC4ViewId): LikeC4ViewData;
359
+ declare function useLikeC4ViewModel(viewId: LikeC4ViewId): LikeC4Model.Layouted.ViewModel;
360
+
361
+ declare function LikeC4ModelProvider(props: PropsWithChildren): JSX.Element;
316
362
 
317
363
  type IconRendererProps = {
318
364
  node: {
@@ -323,7 +369,7 @@ type IconRendererProps = {
323
369
  }
324
370
  declare function RenderIcon(props: IconRendererProps): JSX.Element;
325
371
 
326
- type LikeC4ViewProps = BaseLikeC4ViewProps<LikeC4ViewId, LikeC4Tag, LikeC4ElementKind>;
372
+ type LikeC4ViewProps = GenericLikeC4ViewProps<LikeC4ViewId, LikeC4Tag, LikeC4ElementKind>;
327
373
  declare function LikeC4View({viewId, ...props}: LikeC4ViewProps): JSX.Element;
328
374
 
329
375
  type ReactLikeC4Props =
@@ -338,46 +384,52 @@ export {
338
384
  type LikeC4Tag,
339
385
  type LikeC4ElementKind,
340
386
  type LikeC4ViewData,
387
+ type LikeC4ViewsData,
341
388
  type LikeC4DiagramView,
342
389
  type LikeC4ViewProps,
343
390
  type ReactLikeC4Props,
344
391
  isLikeC4ViewId,
392
+ useLikeC4Model,
393
+ useLikeC4View,
394
+ useLikeC4ViewModel,
395
+ likeC4Model,
345
396
  LikeC4Views,
397
+ LikeC4ModelProvider,
346
398
  LikeC4View,
347
399
  RenderIcon,
348
400
  ReactLikeC4
349
401
  }
350
402
  /* prettier-ignore-end */
351
- `.trimStart()),x.box(tu(`
352
- ${a.dim("Component generated:")}
353
- ${Z(ou(),c)}
354
-
355
- ${a.dim("How to use:")}
356
- ${a.blue("https://likec4.dev/tooling/codegen/#react")}
357
- `)),i.stopAndLog()}async function Mn({path:e,useDotBin:u,webcomponentPrefix:n="likec4",outfile:t}){const i=R("c4:codegen"),r=le(i),o=await z.fromWorkspace(e,{logger:"vite",graphviz:u?"binary":"wasm"});i.info(`${a.dim("format")} ${a.green("webcomponent")}`);const c=await o.diagrams();if(!nu(c,1))throw i.warn("no views found"),process.exitCode=1,new Error("no views found");c.forEach(v=>{v.hasLayoutDrift&&i.warn(a.yellow("drift detected, manual layout can not be applied, view:")+" "+a.red(v.id))});let D=y(o.workspace,"likec4-views.js");if(t&&(D=au(t)?t:y(t),K(t)&&(await cu(t)).isDirectory()))throw new Error(`output file is a directory: ${t}`);x.debug(`${a.dim("outfilepath")} ${D}`);const l=ke(D);x.debug(`${a.dim("filename")} ${l}`);const d=pe(l).toLocaleLowerCase();if(d!==".js"&&d!==".mjs")throw x.warn(`output file ${t} has extension "${d}"`),new Error(`output file ${t} must be a .js or .mjs`);const f=await Me();x.debug(`${a.dim("created temp public")} ${f}`);const p=await ze({languageServices:o,outDir:f,filename:l,webcomponentPrefix:n,base:"/"});x.debug(`${a.dim("vite build webcomponent")}`),await re({...p,logLevel:"warn"});const h=y(f,l);if(!K(h))throw new Error(`output file not found: ${h}`);await H(ne(D),{recursive:!0}),await dt(h,D),i.info(`${a.dim("generated")} ${D}`),x.debug(`${a.dim("remove temp public")}`),await lt(f,{recursive:!0,force:!0}),x.box(tu(`
358
- ${a.dim("Webcomponents generated to:")}
359
- ${Z(ou(),D)}
360
-
361
- ${a.dim("Setup and usage instructions:")}
362
- ${a.blue("https://likec4.dev/tooling/codegen/#webcomponent")}
363
- `)),r.stopAndLog()}const Jn={command:"codegen <command> [path]",aliases:["generate","gen"],describe:"Generate various artifacts from LikeC4 sources",builder:e=>e.positional("path",Ce).command("react [path]","generate react component to render likec4 view",u=>u.option("outfile",{alias:"o",type:"string",desc:"<file> path to output file (.jsx, .mjs or .js)",normalize:!0,coerce:oe}).option("use-dot",V),async u=>{await Un({useDotBin:u.useDotBin,path:u.path,outfile:u.outfile})}).command({command:"webcomponent [path]",aliases:["wc","webcomp"],describe:"generate js with webcomponents",builder:u=>u.option("outfile",{alias:"o",type:"string",desc:"<file> path to output file (.mjs or .js)",normalize:!0,coerce:oe}).option("webcomponent-prefix",Se).option("use-dot",V),handler:async u=>{await Mn({useDotBin:u.useDotBin,path:u.path,outfile:u.outfile,webcomponentPrefix:u.webcomponentPrefix})}}).command({command:"views-data [path]",aliases:["ts","views"],describe:"generate likec4 views data (.ts)",builder:u=>u.option("outfile",{alias:"o",type:"string",desc:"<file> output .ts file",normalize:!0,coerce:oe}).option("use-dot",V),handler:async u=>{await ye({format:"views",path:u.path,useDotBin:u.useDotBin,outfile:u.outfile})}}).command({command:"dot [path]",describe:"generate graphviz files (.dot)",builder:u=>u.option("outdir",ge).option("use-dot",V),handler:async u=>{await ye({format:"dot",path:u.path,useDotBin:u.useDotBin,outdir:u.outdir})}}).command({command:"d2 [path]",describe:"generate D2 files (.d2)",builder:u=>u.option("outdir",ge).option("use-dot",V),handler:async u=>{await ye({format:"d2",path:u.path,useDotBin:u.useDotBin,outdir:u.outdir})}}).command({command:"mermaid [path]",aliases:["mmd"],describe:"generate Mermaid files (.mmd)",builder:u=>u.option("outdir",ge).option("use-dot",V),handler:async u=>{await ye({format:"mermaid",useDotBin:u.useDotBin,path:u.path,outdir:u.outdir})}}).epilog(`${a.bold("Examples:")}
403
+ `.trimStart()),De.box({message:bi(`
404
+ ${b.dim("Source generated:")}
405
+ ${wt(hi(),a)}
406
+
407
+ ${b.dim("How to use:")}
408
+ ${b.underline("https://likec4.dev/tooling/codegen/#react")}
409
+ `).trim(),style:{padding:2,borderColor:"green",borderStyle:"rounded"}}),s.stopAndLog()}async function Ko({path:i,useDotBin:e,webcomponentPrefix:t="likec4",outfile:n}){const s=ke("c4:codegen"),r=Jt(s),u=await qe.fromWorkspace(i,{logger:"vite",graphviz:e?"binary":"wasm"});s.info(`${b.dim("format")} ${b.green("webcomponent")}`);const a=await u.diagrams();if(!Fi(a,1))throw s.warn("no views found"),process.exitCode=1,new Error("no views found");a.forEach(F=>{F.hasLayoutDrift&&s.warn(b.yellow("drift detected, manual layout can not be applied, view:")+" "+b.red(F.id))});let c=Q(u.workspace,"likec4-views.js");if(n&&(c=_i(n)?n:Q(n),st(n)&&(await xi(n)).isDirectory()))throw new Error(`output file is a directory: ${n}`);De.debug(`${b.dim("outfilepath")} ${c}`);const h=On(c);De.debug(`${b.dim("filename")} ${h}`);const l=Kt(h).toLocaleLowerCase();if(l!==".js"&&l!==".mjs")throw De.warn(`output file ${n} has extension "${l}"`),new Error(`output file ${n} must be a .js or .mjs`);const f=await oi();De.debug(`${b.dim("created temp public")} ${f}`);const m=await li({languageServices:u,outDir:f,filename:h,webcomponentPrefix:t,base:"/"});De.debug(`${b.dim("vite build webcomponent")}`),await It({...m,logLevel:"warn"});const C=Q(f,h);if(!st(C))throw new Error(`output file not found: ${C}`);await Je(_t(c),{recursive:!0}),await Ar(C,c),s.info(`${b.dim("generated")} ${c}`),De.debug(`${b.dim("remove temp public")}`),await Er(f,{recursive:!0,force:!0}),De.box(bi(`
410
+ ${b.dim("Webcomponents generated to:")}
411
+ ${wt(hi(),c)}
412
+
413
+ ${b.dim("Setup and usage instructions:")}
414
+ ${b.blue("https://likec4.dev/tooling/codegen/#webcomponent")}
415
+ `)),r.stopAndLog()}const Qo={command:"codegen <command> [path]",aliases:["generate","gen"],describe:"Generate various artifacts from LikeC4 sources",builder:i=>i.positional("path",hn).command("react [path]","generate react component to render likec4 view",e=>e.option("outfile",{alias:"o",type:"string",desc:"<file> path to output file (.jsx, .mjs or .js)",normalize:!0,coerce:je}).option("use-dot",We),async e=>{await Jo({useDotBin:e.useDotBin,path:e.path,outfile:e.outfile})}).command({command:"webcomponent [path]",aliases:["wc","webcomp"],describe:"generate js with webcomponents",builder:e=>e.option("outfile",{alias:"o",type:"string",desc:"<file> path to output file (.mjs or .js)",normalize:!0,coerce:je}).option("webcomponent-prefix",Gn).option("use-dot",We),handler:async e=>{await Ko({useDotBin:e.useDotBin,path:e.path,outfile:e.outfile,webcomponentPrefix:e.webcomponentPrefix})}}).command({command:"views-data [path]",aliases:["ts","views"],describe:"generate likec4 views data (.ts)",builder:e=>e.option("outfile",{alias:"o",type:"string",desc:"<file> output .ts file",normalize:!0,coerce:je}).option("use-dot",We),handler:async e=>{await bn({format:"views",path:e.path,useDotBin:e.useDotBin,outfile:e.outfile})}}).command({command:"dot [path]",describe:"generate graphviz files (.dot)",builder:e=>e.option("outdir",pn).option("use-dot",We),handler:async e=>{await bn({format:"dot",path:e.path,useDotBin:e.useDotBin,outdir:e.outdir})}}).command({command:"d2 [path]",describe:"generate D2 files (.d2)",builder:e=>e.option("outdir",pn).option("use-dot",We),handler:async e=>{await bn({format:"d2",path:e.path,useDotBin:e.useDotBin,outdir:e.outdir})}}).command({command:"mermaid [path]",aliases:["mmd"],describe:"generate Mermaid files (.mmd)",builder:e=>e.option("outdir",pn).option("use-dot",We),handler:async e=>{await bn({format:"mermaid",useDotBin:e.useDotBin,path:e.path,outdir:e.outdir})}}).epilog(`${b.bold("Examples:")}
364
416
  likec4 gen react -o dist/likec4-views.mjs ./src/likec4
365
417
  likec4 gen webcomponent -o likec4.js --webcomponent-prefix c4 --use-dot-bin ./src
366
418
  likec4 gen views-data -o ./src/likec4-data.ts
367
419
  likec4 gen ts --outfile ../likec4.ts
368
420
  likec4 gen mmd --outdir assets/
369
421
  likec4 gen dot -o out .
370
- `),handler:()=>{}};async function Wn({path:e,useDotBin:u,outfile:n}){const t=R("c4:export"),i=le(t),r=await z.fromWorkspace(e,{logger:"vite",graphviz:u?"binary":"wasm"}),o=await r.computed();if(!o)throw t.warn("no model parsed"),new Error("no model parsed");pe(n)!==".json"&&(n=n+".json"),await H(ne(n),{recursive:!0});const c=await r.diagrams(),D={...o,views:c},l=JSON.stringify(D,null,2);await Q(n,l),t.info(`${a.dim("generated")} ${Z(process.cwd(),n)}`),i.stopAndLog("\u2713 export in ")}const zn={command:"export <format> [path]",describe:"Export to images or JSON",builder:e=>e.usage(`${a.bold("Usage:")} $0 export <format> [path]`).positional("path",Ce).command({command:"png [path]",describe:"export views to PNG",builder:u=>u.option("output",ge).option("theme",{choices:["light","dark"],desc:"color-scheme to use, default is light"}).option("flat",{boolean:!0,type:"boolean",desc:"ignore sources structure and export all PNGs in output directory"}).option("use-dot",V).options({ignore:{boolean:!0,alias:"i",desc:"continue if some views failed to export"},timeout:{type:"number",alias:"t",desc:"(sec) timeout for playwright ",default:10},"max-attempts":{type:"number",describe:"",desc:"(number) max attempts to export failing view",default:3},"server-url":{type:"string",desc:"use this url instead of starting new likec4 server"}}).epilog(`${a.bold("Examples:")}
371
- ${a.green("$0 export png")}
372
- ${a.gray("Search for likec4 files in current directory and output PNG next to sources")}
373
-
374
- ${a.green("$0 export png --theme dark -o ./png src/likec4 ")}
375
- ${a.gray("Search for likec4 files in src/likec4 and output PNG with dark theme to png folder")}
376
- `),handler:async u=>{be(u.timeout>=1,"timeout must be >= 1"),be(u["max-attempts"]>=1,"max-attempts must be >= 1"),await Vu({path:u.path,useDotBin:u.useDotBin,output:u.output,timeoutMs:u.timeout*1e3,maxAttempts:u.maxAttempts,ignore:u.ignore===!0,outputType:u.flat?"flat":"relative",serverUrl:u.serverUrl,theme:u.theme??"light"})}}).command({command:"json [path]",describe:"export model to JSON",builder:u=>u.option("outfile",{alias:"o",type:"string",desc:"<file> output .json file",default:"likec4.json",normalize:!0,coerce:y}).option("use-dot",V).epilog(`${a.bold("Examples:")}
377
- ${a.green("$0 export json")}
378
- ${a.gray("Search for likec4 files in current directory and output JSON to likec4.json")}
379
-
380
- ${a.green("$0 export json -o ./generated/likec4.json src/likec4 ")}
381
- ${a.gray("Search for likec4 files in src/likec4 and output JSON to generated/likec4.json")}
382
- `),handler:async u=>{await Wn({path:u.path,useDotBin:u.useDotBin,outfile:u.outfile})}}).updateStrings({"Commands:":a.bold("Formats:")}),handler:()=>{}};async function Hn(e){const{isDev:u,...n}=await We({...e,likec4AssetsDir:"",webcomponentPrefix:void 0}),t=await He({port:Be(62001,62010)}),i=e?.open??!1;return await Ct({...n,mode:"production",preview:{host:"0.0.0.0",port:t,open:i}})}async function Gn({path:e,output:u,base:n}){const t=await z.fromWorkspace(e,{logger:"vite"}),i=await Hn({base:n,languageServices:t,outputDir:u,open:!0});xu(i)}const Kn={command:"preview [path]",describe:"Start local server to preview production build",builder:e=>e.positional("path",{type:"string",desc:`Directory with LikeC4 source files
383
- if not specified search in current directory`,normalize:!0}).options({output:{alias:"o",type:"string",desc:"output directory from production build",normalize:!0},base:{type:"string",desc:"base url the app is being served from"}}).coerce(["path","output"],oe).default("path",oe("."),"."),async handler(e){await Gn(e)}};async function qn({path:e,useDotBin:u,webcomponentPrefix:n,useHashHistory:t,useOverview:i=!1,base:r}){const o=await z.fromWorkspace(e,{logger:"vite",graphviz:u?"binary":"wasm"}),c=await fe(ie(me(),".likec4-assets-")),D=await ju({buildWebcomponent:!1,hmr:!0,base:r,webcomponentPrefix:n,languageServices:o,useHashHistory:t,useOverviewGraph:i,likec4AssetsDir:c});if(D.config.logger.clearScreen("info"),xu(D),!i)return;const l=await o.diagrams();if(nu(l,1)){const d=R("c4:export"),f=Lu(D);if(!f){d.error("no preview server url");return}d.info(a.cyan("wait 5sec before generating previews")),await iu(5e3);try{await Ru({serverUrl:f,logger:d,views:l,theme:"light",output:c,outputType:"flat"}),await iu(1e3),d.info(a.yellow("Note: changes in sources do not trigger preview updates, restart is required"))}catch(p){d.error(a.red("Failed to generate previews")),d.error(p)}}else D.config.logger.warn("no views found, no previews generated")}const Yn={command:"start [path]",aliases:["serve","dev"],describe:"Start local dev server to preview LikeC4 views",builder:e=>e.positional("path",Ce).option("base",pu).option("webcomponent-prefix",Se).option("use-hash-history",lu).option("use-overview",fu).option("use-dot",V),handler:async e=>{await qn({path:e.path,useDotBin:e["use-dot"],base:e.base,useOverview:e["use-overview"]??!1,webcomponentPrefix:e["webcomponent-prefix"],useHashHistory:e["use-hash-history"]})}};x.level=ru.debug,it&&(x.level=ru.trace,x.warn("running cli in dev mode"));const Xn=Dt(ct(ot)).scriptName("likec4").usage("Usage: $0 <command>").command(Yn).command(On).command(Jn).command(zn).command(Kn).help("help").version(nt.version).alias("v","version").alias("h","help").demandCommand(1,"Please run with valid command").strict().recommendCommands().showHelpOnFail(!0,"Something is wrong, run with --help").updateStrings({"Options:":a.bold("Options:"),"Positionals:":a.bold("Arguments:"),"Commands:":a.bold("Commands:"),"Examples:":a.bold("Examples:")}).wrap(eu(at.columns-20,{min:80,max:120})).parseAsync();Xn.catch(()=>st(1)),process.on("unhandledRejection",e=>{x.error(e)});
422
+ `),handler:()=>{}};async function Xo({path:i,useDotBin:e,outfile:t}){const n=ke("c4:export"),s=Jt(n),r=await(await qe.fromWorkspace(i,{logger:"vite",graphviz:e?"binary":"wasm"})).layoutedModel();Kt(t)!==".json"&&(t=t+".json"),await Je(_t(t),{recursive:!0});const u=JSON.stringify(r.sourcemodel,null,2);await At(t,u),n.info(`${b.dim("generated")} ${wt(process.cwd(),t)}`),s.stopAndLog("\u2713 export in ")}const Zo={command:"export <format> [path]",describe:"Export to images or JSON",builder:i=>i.usage(`${b.bold("Usage:")} $0 export <format> [path]`).positional("path",hn).command({command:"png [path]",describe:"export views to PNG",builder:e=>e.option("output",pn).option("theme",{choices:["light","dark"],desc:"color-scheme to use, default is light"}).option("flat",{boolean:!0,type:"boolean",desc:"ignore sources structure and export all PNGs in output directory"}).option("use-dot",We).options({ignore:{boolean:!0,alias:"i",desc:"continue if some views failed to export"},timeout:{type:"number",alias:"t",desc:"(sec) timeout for playwright ",default:10},"max-attempts":{type:"number",describe:"",desc:"(number) max attempts to export failing view",default:3},"server-url":{type:"string",desc:"use this url instead of starting new likec4 server"}}).epilog(`${b.bold("Examples:")}
423
+ ${b.green("$0 export png")}
424
+ ${b.gray("Search for likec4 files in current directory and output PNG next to sources")}
425
+
426
+ ${b.green("$0 export png --theme dark -o ./png src/likec4 ")}
427
+ ${b.gray("Search for likec4 files in src/likec4 and output PNG with dark theme to png folder")}
428
+ `),handler:async e=>{yn(e.timeout>=1,"timeout must be >= 1"),yn(e["max-attempts"]>=1,"max-attempts must be >= 1"),await Ws({path:e.path,useDotBin:e.useDotBin,output:e.output,timeoutMs:e.timeout*1e3,maxAttempts:e.maxAttempts,ignore:e.ignore===!0,outputType:e.flat?"flat":"relative",serverUrl:e.serverUrl,theme:e.theme??"light"})}}).command({command:"json [path]",describe:"export model to JSON",builder:e=>e.option("outfile",{alias:"o",type:"string",desc:"<file> output .json file",default:"likec4.json",normalize:!0,coerce:Q}).option("use-dot",We).epilog(`${b.bold("Examples:")}
429
+ ${b.green("$0 export json")}
430
+ ${b.gray("Search for likec4 files in current directory and output JSON to likec4.json")}
431
+
432
+ ${b.green("$0 export json -o ./generated/likec4.json src/likec4 ")}
433
+ ${b.gray("Search for likec4 files in src/likec4 and output JSON to generated/likec4.json")}
434
+ `),handler:async e=>{await Xo({path:e.path,useDotBin:e.useDotBin,outfile:e.outfile})}}).updateStrings({"Commands:":b.bold("Formats:")}),handler:()=>{}};async function ea(i){const{isDev:e,...t}=await ci({...i,likec4AssetsDir:"",webcomponentPrefix:void 0}),n=await fi({port:En(62001,62010)}),s=i?.open??!1;return await vr({...t,mode:"production",preview:{host:"0.0.0.0",port:n,open:s}})}async function ta({path:i,output:e,base:t}){const n=await qe.fromWorkspace(i,{logger:"vite"}),s=await ea({base:t,languageServices:n,outputDir:e,open:!0});Ns(s)}const na={command:"preview [path]",describe:"Start local server to preview production build",builder:i=>i.positional("path",{type:"string",desc:`Directory with LikeC4 source files
435
+ if not specified search in current directory`,normalize:!0}).options({output:{alias:"o",type:"string",desc:"output directory from production build",normalize:!0},base:{type:"string",desc:"base url the app is being served from"}}).coerce(["path","output"],je).default("path",je("."),"."),async handler(i){await ta(i)}};async function ia({path:i,useDotBin:e,webcomponentPrefix:t,useHashHistory:n,useOverview:s=!1,base:r}){const u=await qe.fromWorkspace(i,{logger:"vite",graphviz:e?"binary":"wasm"}),a=await Qt(St(Xt(),".likec4-assets-")),c=await Ts({buildWebcomponent:!1,hmr:!0,base:r,webcomponentPrefix:t,languageServices:u,useHashHistory:n,useOverviewGraph:s,likec4AssetsDir:a});if(c.config.logger.clearScreen("info"),Ns(c),!s)return;const h=await u.diagrams();if(Fi(h,1)){const l=ke("c4:export"),f=Ps(c);if(!f){l.error("no preview server url");return}l.info(b.cyan("wait 5sec before generating previews")),await yi(5e3);try{await Rs({serverUrl:f,logger:l,views:h,theme:"light",output:a,outputType:"flat"}),await yi(1e3),l.info(b.yellow("Note: changes in sources do not trigger preview updates, restart is required"))}catch(m){l.error(b.red("Failed to generate previews")),l.error(m)}}else c.config.logger.warn("no views found, no previews generated")}const sa={command:"start [path]",aliases:["serve","dev"],describe:"Start local dev server to preview LikeC4 views",builder:i=>i.positional("path",hn).option("base",Ds).option("webcomponent-prefix",Gn).option("use-hash-history",gs).option("use-overview",Cs).option("use-dot",We),handler:async i=>{await ia({path:i.path,useDotBin:i["use-dot"],base:i.base,useOverview:i["use-overview"]??!1,webcomponentPrefix:i["webcomponent-prefix"],useHashHistory:i["use-hash-history"]})}};De.level=vi.debug,process.env.NODE_ENV==="development"&&(De.level=vi.trace,De.warn("running cli in dev mode"));const ra=Su(qr(Ys)).scriptName("likec4").usage("Usage: $0 <command>").command(sa).command(zo).command(Qo).command(Zo).command(na).help("help").version(cr.version).alias("v","version").alias("h","help").demandCommand(1,"Please run with valid command").strict().recommendCommands().showHelpOnFail(!0,"Something is wrong, run with --help").updateStrings({"Options:":b.bold("Options:"),"Positionals:":b.bold("Arguments:"),"Commands:":b.bold("Commands:"),"Examples:":b.bold("Examples:")}).wrap(Ai(Hs.columns-20,{min:80,max:120})).parseAsync();ra.catch(()=>Gs(1)),process.on("unhandledRejection",i=>{De.error(i)});