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
package/dist/index.d.mts CHANGED
@@ -1,168 +1,4 @@
1
- /**
2
- Matches any [primitive value](https://developer.mozilla.org/en-US/docs/Glossary/Primitive).
3
-
4
- @category Type
5
- */
6
- type Primitive$1 =
7
- | null
8
- | undefined
9
- | string
10
- | number
11
- | boolean
12
- | symbol
13
- | bigint;
14
-
15
- declare global {
16
- // eslint-disable-next-line @typescript-eslint/consistent-type-definitions -- It has to be an `interface` so that it can be merged.
17
- interface SymbolConstructor {
18
- readonly observable: symbol;
19
- }
20
- }
21
-
22
- /**
23
- Allows creating a union type by combining primitive types and literal types without sacrificing auto-completion in IDEs for the literal type part of the union.
24
-
25
- Currently, when a union type of a primitive type is combined with literal types, TypeScript loses all information about the combined literals. Thus, when such type is used in an IDE with autocompletion, no suggestions are made for the declared literals.
26
-
27
- This type is a workaround for [Microsoft/TypeScript#29729](https://github.com/Microsoft/TypeScript/issues/29729). It will be removed as soon as it's not needed anymore.
28
-
29
- @example
30
- ```
31
- import type {LiteralUnion} from 'type-fest';
32
-
33
- // Before
34
-
35
- type Pet = 'dog' | 'cat' | string;
36
-
37
- const pet: Pet = '';
38
- // Start typing in your TypeScript-enabled IDE.
39
- // You **will not** get auto-completion for `dog` and `cat` literals.
40
-
41
- // After
42
-
43
- type Pet2 = LiteralUnion<'dog' | 'cat', string>;
44
-
45
- const pet: Pet2 = '';
46
- // You **will** get auto-completion for `dog` and `cat` literals.
47
- ```
48
-
49
- @category Type
50
- */
51
- type LiteralUnion<
52
- LiteralType,
53
- BaseType extends Primitive$1,
54
- > = LiteralType | (BaseType & Record<never, never>);
55
-
56
- declare const tag$1: unique symbol;
57
-
58
- type TagContainer$1<Token> = {
59
- readonly [tag$1]: Token;
60
- };
61
-
62
- type Tag$1$1<Token extends PropertyKey, TagMetadata> = TagContainer$1<{[K in Token]: TagMetadata}>;
63
-
64
- /**
65
- Attach a "tag" to an arbitrary type. This allows you to create distinct types, that aren't assignable to one another, for distinct concepts in your program that should not be interchangeable, even if their runtime values have the same type. (See examples.)
66
-
67
- A type returned by `Tagged` can be passed to `Tagged` again, to create a type with multiple tags.
68
-
69
- [Read more about tagged types.](https://medium.com/@KevinBGreene/surviving-the-typescript-ecosystem-branding-and-type-tagging-6cf6e516523d)
70
-
71
- A tag's name is usually a string (and must be a string, number, or symbol), but each application of a tag can also contain an arbitrary type as its "metadata". See {@link GetTagMetadata} for examples and explanation.
72
-
73
- A type `A` returned by `Tagged` is assignable to another type `B` returned by `Tagged` if and only if:
74
- - the underlying (untagged) type of `A` is assignable to the underlying type of `B`;
75
- - `A` contains at least all the tags `B` has;
76
- - and the metadata type for each of `A`'s tags is assignable to the metadata type of `B`'s corresponding tag.
77
-
78
- There have been several discussions about adding similar features to TypeScript. Unfortunately, nothing has (yet) moved forward:
79
- - [Microsoft/TypeScript#202](https://github.com/microsoft/TypeScript/issues/202)
80
- - [Microsoft/TypeScript#4895](https://github.com/microsoft/TypeScript/issues/4895)
81
- - [Microsoft/TypeScript#33290](https://github.com/microsoft/TypeScript/pull/33290)
82
-
83
- @example
84
- ```
85
- import type {Tagged} from 'type-fest';
86
-
87
- type AccountNumber = Tagged<number, 'AccountNumber'>;
88
- type AccountBalance = Tagged<number, 'AccountBalance'>;
89
-
90
- function createAccountNumber(): AccountNumber {
91
- // As you can see, casting from a `number` (the underlying type being tagged) is allowed.
92
- return 2 as AccountNumber;
93
- }
94
-
95
- function getMoneyForAccount(accountNumber: AccountNumber): AccountBalance {
96
- return 4 as AccountBalance;
97
- }
98
-
99
- // This will compile successfully.
100
- getMoneyForAccount(createAccountNumber());
101
-
102
- // But this won't, because it has to be explicitly passed as an `AccountNumber` type!
103
- // Critically, you could not accidentally use an `AccountBalance` as an `AccountNumber`.
104
- getMoneyForAccount(2);
105
-
106
- // You can also use tagged values like their underlying, untagged type.
107
- // I.e., this will compile successfully because an `AccountNumber` can be used as a regular `number`.
108
- // In this sense, the underlying base type is not hidden, which differentiates tagged types from opaque types in other languages.
109
- const accountNumber = createAccountNumber() + 2;
110
- ```
111
-
112
- @example
113
- ```
114
- import type {Tagged} from 'type-fest';
115
-
116
- // You can apply multiple tags to a type by using `Tagged` repeatedly.
117
- type Url = Tagged<string, 'URL'>;
118
- type SpecialCacheKey = Tagged<Url, 'SpecialCacheKey'>;
119
-
120
- // You can also pass a union of tag names, so this is equivalent to the above, although it doesn't give you the ability to assign distinct metadata to each tag.
121
- type SpecialCacheKey2 = Tagged<string, 'URL' | 'SpecialCacheKey'>;
122
- ```
123
-
124
- @category Type
125
- */
126
- type Tagged$1<Type, TagName extends PropertyKey, TagMetadata = never> = Type & Tag$1$1<TagName, TagMetadata>;
127
-
128
- /**
129
- Revert a tagged type back to its original type by removing all tags.
130
-
131
- Why is this necessary?
132
-
133
- 1. Use a `Tagged` type as object keys
134
- 2. Prevent TS4058 error: "Return type of exported function has or is using name X from external module Y but cannot be named"
135
-
136
- @example
137
- ```
138
- import type {Tagged, UnwrapTagged} from 'type-fest';
139
-
140
- type AccountType = Tagged<'SAVINGS' | 'CHECKING', 'AccountType'>;
141
-
142
- const moneyByAccountType: Record<UnwrapTagged<AccountType>, number> = {
143
- SAVINGS: 99,
144
- CHECKING: 0.1
145
- };
146
-
147
- // Without UnwrapTagged, the following expression would throw a type error.
148
- const money = moneyByAccountType.SAVINGS; // TS error: Property 'SAVINGS' does not exist
149
-
150
- // Attempting to pass an non-Tagged type to UnwrapTagged will raise a type error.
151
- type WontWork = UnwrapTagged<string>;
152
- ```
153
-
154
- @category Type
155
- */
156
- type UnwrapTagged<TaggedType extends Tag$1$1<PropertyKey, any>> =
157
- RemoveAllTags<TaggedType>;
158
-
159
- type RemoveAllTags<T> = T extends Tag$1$1<PropertyKey, any>
160
- ? {
161
- [ThisTag in keyof T[typeof tag$1]]: T extends Tagged$1<infer Type, ThisTag, T[typeof tag$1][ThisTag]>
162
- ? RemoveAllTags<Type>
163
- : never
164
- }[keyof T[typeof tag$1]]
165
- : T;
1
+ import { LiteralUnion, Tagged, UnwrapTagged, IsNumericLiteral, SetRequired, ValueOf, ConditionalPick } from 'type-fest';
166
2
 
167
3
  declare const ThemeColors: readonly ["amber", "blue", "gray", "slate", "green", "indigo", "muted", "primary", "red", "secondary", "sky"];
168
4
  type ThemeColor$1 = typeof ThemeColors[number];
@@ -186,7 +22,7 @@ interface ThemeColorValues {
186
22
  }
187
23
 
188
24
  type NonEmptyArray<T> = [T, ...T[]];
189
- type IconUrl = Tagged$1<string, 'IconUrl'>;
25
+ type IconUrl = Tagged<string, 'IconUrl'>;
190
26
  type CustomColor$1 = string;
191
27
  type Point = readonly [x: number, y: number];
192
28
  interface XYPoint {
@@ -194,17 +30,17 @@ interface XYPoint {
194
30
  y: number;
195
31
  }
196
32
 
197
- type Fqn$1 = Tagged$1<string, 'Fqn'>;
33
+ type Fqn$1 = Tagged<string, 'Fqn'>;
198
34
  declare const BorderStyles: readonly ["solid", "dashed", "dotted", "none"];
199
35
  type BorderStyle = typeof BorderStyles[number];
200
- type ElementKind$1 = Tagged$1<string, 'ElementKind'>;
36
+ type ElementKind$1 = Tagged<string, 'ElementKind'>;
201
37
  declare const ElementShapes: readonly ["rectangle", "person", "browser", "mobile", "cylinder", "storage", "queue"];
202
38
  type ElementShape$1 = typeof ElementShapes[number];
203
39
  interface ElementStyle {
204
40
  border?: BorderStyle;
205
41
  opacity?: number;
206
42
  }
207
- type Tag$2 = Tagged$1<string, 'Tag'>;
43
+ type Tag$1 = Tagged<string, 'Tag'>;
208
44
  interface Link {
209
45
  readonly title?: string;
210
46
  readonly url: string;
@@ -216,7 +52,7 @@ interface Element$1 {
216
52
  readonly title: string;
217
53
  readonly description: string | null;
218
54
  readonly technology: string | null;
219
- readonly tags: NonEmptyArray<Tag$2> | null;
55
+ readonly tags: NonEmptyArray<Tag$1> | null;
220
56
  readonly links: NonEmptyArray<Link> | null;
221
57
  readonly icon?: IconUrl;
222
58
  readonly shape?: ElementShape$1;
@@ -271,6 +107,135 @@ type OrOperator<Tag, Kind> = Omit<AllNever, 'or'> & {
271
107
  };
272
108
  type WhereOperator<Tag, Kind> = TagEqual<Tag> | KindEqual<Kind> | NotOperator<Tag, Kind> | AndOperator<Tag, Kind> | OrOperator<Tag, Kind>;
273
109
 
110
+ type RelationID$1 = Tagged<string, 'RelationID'>;
111
+ type RelationshipKind$1 = Tagged<string, 'RelationshipKind'>;
112
+ type RelationshipLineType = 'dashed' | 'solid' | 'dotted';
113
+ type RelationshipArrowType = 'none' | 'normal' | 'onormal' | 'dot' | 'odot' | 'diamond' | 'odiamond' | 'crow' | 'open' | 'vee';
114
+ interface Relation$1 {
115
+ readonly id: RelationID$1;
116
+ readonly source: Fqn$1;
117
+ readonly target: Fqn$1;
118
+ readonly title: string;
119
+ readonly description?: string;
120
+ readonly technology?: string;
121
+ readonly tags?: NonEmptyArray<Tag$1>;
122
+ readonly kind?: RelationshipKind$1;
123
+ readonly color?: Color$1;
124
+ readonly line?: RelationshipLineType;
125
+ readonly head?: RelationshipArrowType;
126
+ readonly tail?: RelationshipArrowType;
127
+ readonly links?: NonEmptyArray<Link>;
128
+ readonly navigateTo?: ViewID$1;
129
+ readonly metadata?: {
130
+ [key: string]: string;
131
+ };
132
+ }
133
+ interface RelationshipKindSpecification {
134
+ readonly technology?: string;
135
+ readonly notation?: string;
136
+ readonly color?: Color$1;
137
+ readonly line?: RelationshipLineType;
138
+ readonly head?: RelationshipArrowType;
139
+ readonly tail?: RelationshipArrowType;
140
+ }
141
+
142
+ interface BaseExpr {
143
+ where?: never;
144
+ element?: never;
145
+ custom?: never;
146
+ expanded?: never;
147
+ elementKind?: never;
148
+ elementTag?: never;
149
+ isEqual?: never;
150
+ isDescedants?: never;
151
+ wildcard?: never;
152
+ source?: never;
153
+ target?: never;
154
+ inout?: never;
155
+ incoming?: never;
156
+ outgoing?: never;
157
+ customRelation?: never;
158
+ }
159
+ interface ElementRefExpr extends Omit<BaseExpr, 'element' | 'isDescedants'> {
160
+ element: Fqn$1;
161
+ isDescedants?: boolean;
162
+ }
163
+ interface ExpandedElementExpr extends Omit<BaseExpr, 'expanded'> {
164
+ expanded: Fqn$1;
165
+ }
166
+ interface CustomElementExpr extends Omit<BaseExpr, 'custom'> {
167
+ custom: {
168
+ expr: ElementExpression$1 | ElementWhereExpr;
169
+ title?: string;
170
+ description?: string;
171
+ technology?: string;
172
+ notation?: string;
173
+ shape?: ElementShape$1;
174
+ color?: Color$1;
175
+ icon?: IconUrl;
176
+ border?: BorderStyle;
177
+ opacity?: number;
178
+ navigateTo?: ViewID$1;
179
+ };
180
+ }
181
+ interface WildcardExpr extends Omit<BaseExpr, 'wildcard'> {
182
+ wildcard: true;
183
+ }
184
+ interface ElementKindExpr extends Omit<BaseExpr, 'elementKind' | 'isEqual'> {
185
+ elementKind: ElementKind$1;
186
+ isEqual: boolean;
187
+ }
188
+ interface ElementTagExpr extends Omit<BaseExpr, 'elementTag' | 'isEqual'> {
189
+ elementTag: Tag$1;
190
+ isEqual: boolean;
191
+ }
192
+ type ElementExpression$1 = ElementRefExpr | WildcardExpr | ElementKindExpr | ElementTagExpr | ExpandedElementExpr;
193
+ interface ElementWhereExpr extends Omit<BaseExpr, 'where'> {
194
+ where: {
195
+ expr: ElementExpression$1;
196
+ condition: WhereOperator<string, string>;
197
+ };
198
+ }
199
+ type ElementPredicateExpression = ElementExpression$1 | ElementWhereExpr | CustomElementExpr;
200
+ interface RelationExpr extends Omit<BaseExpr, 'source' | 'target'> {
201
+ source: ElementExpression$1;
202
+ target: ElementExpression$1;
203
+ isBidirectional?: boolean;
204
+ }
205
+ interface InOutExpr extends Omit<BaseExpr, 'inout'> {
206
+ inout: ElementExpression$1;
207
+ }
208
+ interface IncomingExpr extends Omit<BaseExpr, 'incoming'> {
209
+ incoming: ElementExpression$1;
210
+ }
211
+ interface OutgoingExpr extends Omit<BaseExpr, 'outgoing'> {
212
+ outgoing: ElementExpression$1;
213
+ }
214
+ type RelationExpression$1 = RelationExpr | InOutExpr | IncomingExpr | OutgoingExpr;
215
+ interface RelationWhereExpr extends Omit<BaseExpr, 'where'> {
216
+ where: {
217
+ expr: RelationExpression$1;
218
+ condition: WhereOperator<string, string>;
219
+ };
220
+ }
221
+ interface CustomRelationExpr extends Omit<BaseExpr, 'customRelation'> {
222
+ customRelation: {
223
+ relation: RelationExpression$1 | RelationWhereExpr;
224
+ title?: string;
225
+ description?: string;
226
+ technology?: string;
227
+ notation?: string;
228
+ navigateTo?: ViewID$1;
229
+ notes?: string;
230
+ color?: Color$1;
231
+ line?: RelationshipLineType;
232
+ head?: RelationshipArrowType;
233
+ tail?: RelationshipArrowType;
234
+ };
235
+ }
236
+ type RelationPredicateExpression = RelationExpression$1 | RelationWhereExpr | CustomRelationExpr;
237
+ type Expression$1 = ElementPredicateExpression | RelationPredicateExpression;
238
+
274
239
  type ElementNotation = {
275
240
  kinds: ElementKind$1[];
276
241
  shape: ElementShape$1;
@@ -278,7 +243,7 @@ type ElementNotation = {
278
243
  title: string;
279
244
  };
280
245
 
281
- type ViewID$1 = Tagged$1<string, 'ViewID'>;
246
+ type ViewID$1 = Tagged<string, 'ViewID'>;
282
247
  type ViewRulePredicate$1 = {
283
248
  include: Expression$1[];
284
249
  exclude?: never;
@@ -297,7 +262,9 @@ interface ViewRuleStyle$1 {
297
262
  }
298
263
  type AutoLayoutDirection = 'TB' | 'BT' | 'LR' | 'RL';
299
264
  interface ViewRuleAutoLayout$1 {
300
- autoLayout: AutoLayoutDirection;
265
+ direction: AutoLayoutDirection;
266
+ nodeSep?: number;
267
+ rankSep?: number;
301
268
  }
302
269
  type ViewRule$1 = ViewRulePredicate$1 | ViewRuleStyle$1 | ViewRuleAutoLayout$1;
303
270
  interface BasicView<ViewType extends 'element' | 'dynamic'> {
@@ -305,7 +272,7 @@ interface BasicView<ViewType extends 'element' | 'dynamic'> {
305
272
  readonly id: ViewID$1;
306
273
  readonly title: string | null;
307
274
  readonly description: string | null;
308
- readonly tags: NonEmptyArray<Tag$2> | null;
275
+ readonly tags: NonEmptyArray<Tag$1> | null;
309
276
  readonly links: NonEmptyArray<Link> | null;
310
277
  /**
311
278
  * URI to the source file of this view.
@@ -371,10 +338,10 @@ type CustomColorDefinitions = {
371
338
  [key: string]: ThemeColorValues;
372
339
  };
373
340
  type LikeC4View$1 = ElementView$1 | DynamicView$1;
374
- type NodeId = Tagged$1<string, 'Fqn'>;
375
- type EdgeId$1 = Tagged$1<string, 'EdgeId'>;
341
+ type NodeId = Tagged<string, 'Fqn'>;
342
+ type EdgeId$1 = Tagged<string, 'EdgeId'>;
376
343
  type StepEdgeIdLiteral = `step-${number}` | `step-${number}.${number}`;
377
- type StepEdgeId = Tagged$1<StepEdgeIdLiteral, 'EdgeId'>;
344
+ type StepEdgeId = Tagged<StepEdgeIdLiteral, 'EdgeId'>;
378
345
  declare function StepEdgeId(step: number, parallelStep?: number): StepEdgeId;
379
346
  declare function isStepEdgeId(id: string): id is StepEdgeId;
380
347
  declare function extractStep(id: EdgeId$1): number;
@@ -386,7 +353,7 @@ interface ComputedNode {
386
353
  description: string | null;
387
354
  technology: string | null;
388
355
  notation?: string;
389
- tags: NonEmptyArray<Tag$2> | null;
356
+ tags: NonEmptyArray<Tag$1> | null;
390
357
  links: NonEmptyArray<Link> | null;
391
358
  children: NodeId[];
392
359
  inEdges: EdgeId$1[];
@@ -425,7 +392,7 @@ interface ComputedEdge {
425
392
  line?: RelationshipLineType;
426
393
  head?: RelationshipArrowType;
427
394
  tail?: RelationshipArrowType;
428
- tags?: NonEmptyArray<Tag$2>;
395
+ tags?: NonEmptyArray<Tag$1>;
429
396
  navigateTo?: ViewID$1;
430
397
  /**
431
398
  * If this edge is derived from custom relationship predicate
@@ -449,16 +416,21 @@ interface ViewWithNotation {
449
416
  elements: ElementNotation[];
450
417
  };
451
418
  }
419
+ interface ViewAutoLayout {
420
+ direction: ViewRuleAutoLayout$1['direction'];
421
+ rankSep?: number;
422
+ nodeSep?: number;
423
+ }
452
424
  interface ComputedElementView extends Omit<ElementView$1, 'rules' | 'docUri'>, ViewWithHash, ViewWithNotation {
453
425
  readonly extends?: ViewID$1;
454
- readonly autoLayout: ViewRuleAutoLayout$1['autoLayout'];
426
+ readonly autoLayout: ViewAutoLayout;
455
427
  readonly nodes: ComputedNode[];
456
428
  readonly edges: ComputedEdge[];
457
429
  rules?: never;
458
430
  docUri?: never;
459
431
  }
460
432
  interface ComputedDynamicView extends Omit<DynamicView$1, 'rules' | 'steps' | 'docUri'>, ViewWithHash, ViewWithNotation {
461
- readonly autoLayout: ViewRuleAutoLayout$1['autoLayout'];
433
+ readonly autoLayout: ViewAutoLayout;
462
434
  readonly nodes: ComputedNode[];
463
435
  readonly edges: ComputedEdge[];
464
436
  steps?: never;
@@ -502,7 +474,7 @@ type ViewManualLayout = {
502
474
  readonly y: number;
503
475
  readonly width: number;
504
476
  readonly height: number;
505
- readonly autoLayout: AutoLayoutDirection;
477
+ readonly autoLayout: ViewAutoLayout;
506
478
  readonly nodes: Record<string, {
507
479
  isCompound: boolean;
508
480
  x: number;
@@ -518,153 +490,32 @@ type ViewManualLayout = {
518
490
  }>;
519
491
  };
520
492
 
521
- type RelationID$1 = Tagged$1<string, 'RelationID'>;
522
- type RelationshipKind$1 = Tagged$1<string, 'RelationshipKind'>;
523
- type RelationshipLineType = 'dashed' | 'solid' | 'dotted';
524
- type RelationshipArrowType = 'none' | 'normal' | 'onormal' | 'dot' | 'odot' | 'diamond' | 'odiamond' | 'crow' | 'open' | 'vee';
525
- interface Relation$1 {
526
- readonly id: RelationID$1;
527
- readonly source: Fqn$1;
528
- readonly target: Fqn$1;
529
- readonly title: string;
530
- readonly description?: string;
531
- readonly technology?: string;
532
- readonly tags?: NonEmptyArray<Tag$2>;
533
- readonly kind?: RelationshipKind$1;
534
- readonly color?: Color$1;
535
- readonly line?: RelationshipLineType;
536
- readonly head?: RelationshipArrowType;
537
- readonly tail?: RelationshipArrowType;
538
- readonly links?: NonEmptyArray<Link>;
539
- readonly navigateTo?: ViewID$1;
540
- readonly metadata?: {
541
- [key: string]: string;
493
+ /**
494
+ * Parsed elements, relations, and views.
495
+ */
496
+ interface ParsedLikeC4Model {
497
+ specification: {
498
+ tags: Tag$1[];
499
+ elements: Record<UnwrapTagged<ElementKind$1>, ElementKindSpecification>;
500
+ relationships: Record<UnwrapTagged<ElementKind$1>, RelationshipKindSpecification>;
542
501
  };
502
+ elements: Record<Fqn$1, Element$1>;
503
+ relations: Record<RelationID$1, Relation$1>;
504
+ views: Record<ViewID$1, LikeC4View$1>;
543
505
  }
544
- interface RelationshipKindSpecification {
545
- readonly technology?: string;
546
- readonly notation?: string;
547
- readonly color?: Color$1;
548
- readonly line?: RelationshipLineType;
549
- readonly head?: RelationshipArrowType;
550
- readonly tail?: RelationshipArrowType;
551
- }
552
-
553
- interface BaseExpr {
554
- where?: never;
555
- element?: never;
556
- custom?: never;
557
- expanded?: never;
558
- elementKind?: never;
559
- elementTag?: never;
560
- isEqual?: never;
561
- isDescedants?: never;
562
- wildcard?: never;
563
- source?: never;
564
- target?: never;
565
- inout?: never;
566
- incoming?: never;
567
- outgoing?: never;
568
- customRelation?: never;
569
- }
570
- interface ElementRefExpr extends Omit<BaseExpr, 'element' | 'isDescedants'> {
571
- element: Fqn$1;
572
- isDescedants?: boolean;
506
+ /**
507
+ * Same as `ParsedLikeC4Model` but with computed views.
508
+ */
509
+ interface ComputedLikeC4Model extends Omit<ParsedLikeC4Model, 'views'> {
510
+ __?: never;
511
+ views: Record<ViewID$1, ComputedView>;
573
512
  }
574
- interface ExpandedElementExpr extends Omit<BaseExpr, 'expanded'> {
575
- expanded: Fqn$1;
576
- }
577
- interface CustomElementExpr extends Omit<BaseExpr, 'custom'> {
578
- custom: {
579
- expr: ElementExpression$1 | ElementWhereExpr;
580
- title?: string;
581
- description?: string;
582
- technology?: string;
583
- notation?: string;
584
- shape?: ElementShape$1;
585
- color?: Color$1;
586
- icon?: IconUrl;
587
- border?: BorderStyle;
588
- opacity?: number;
589
- navigateTo?: ViewID$1;
590
- };
591
- }
592
- interface WildcardExpr extends Omit<BaseExpr, 'wildcard'> {
593
- wildcard: true;
594
- }
595
- interface ElementKindExpr extends Omit<BaseExpr, 'elementKind' | 'isEqual'> {
596
- elementKind: ElementKind$1;
597
- isEqual: boolean;
598
- }
599
- interface ElementTagExpr extends Omit<BaseExpr, 'elementTag' | 'isEqual'> {
600
- elementTag: Tag$2;
601
- isEqual: boolean;
602
- }
603
- type ElementExpression$1 = ElementRefExpr | WildcardExpr | ElementKindExpr | ElementTagExpr | ExpandedElementExpr;
604
- interface ElementWhereExpr extends Omit<BaseExpr, 'where'> {
605
- where: {
606
- expr: ElementExpression$1;
607
- condition: WhereOperator<string, string>;
608
- };
609
- }
610
- type ElementPredicateExpression = ElementExpression$1 | ElementWhereExpr | CustomElementExpr;
611
- interface RelationExpr extends Omit<BaseExpr, 'source' | 'target'> {
612
- source: ElementExpression$1;
613
- target: ElementExpression$1;
614
- isBidirectional?: boolean;
615
- }
616
- interface InOutExpr extends Omit<BaseExpr, 'inout'> {
617
- inout: ElementExpression$1;
618
- }
619
- interface IncomingExpr extends Omit<BaseExpr, 'incoming'> {
620
- incoming: ElementExpression$1;
621
- }
622
- interface OutgoingExpr extends Omit<BaseExpr, 'outgoing'> {
623
- outgoing: ElementExpression$1;
624
- }
625
- type RelationExpression$1 = RelationExpr | InOutExpr | IncomingExpr | OutgoingExpr;
626
- interface RelationWhereExpr extends Omit<BaseExpr, 'where'> {
627
- where: {
628
- expr: RelationExpression$1;
629
- condition: WhereOperator<string, string>;
630
- };
631
- }
632
- interface CustomRelationExpr extends Omit<BaseExpr, 'customRelation'> {
633
- customRelation: {
634
- relation: RelationExpression$1 | RelationWhereExpr;
635
- title?: string;
636
- description?: string;
637
- technology?: string;
638
- notation?: string;
639
- navigateTo?: ViewID$1;
640
- notes?: string;
641
- color?: Color$1;
642
- line?: RelationshipLineType;
643
- head?: RelationshipArrowType;
644
- tail?: RelationshipArrowType;
645
- };
646
- }
647
- type RelationPredicateExpression = RelationExpression$1 | RelationWhereExpr | CustomRelationExpr;
648
- type Expression$1 = ElementPredicateExpression | RelationPredicateExpression;
649
-
650
- /**
651
- * Parsed elements, relations, and views.
652
- */
653
- interface ParsedLikeC4Model {
654
- specification: {
655
- tags: Tag$2[];
656
- elements: Record<UnwrapTagged<ElementKind$1>, ElementKindSpecification>;
657
- relationships: Record<UnwrapTagged<ElementKind$1>, RelationshipKindSpecification>;
658
- };
659
- elements: Record<Fqn$1, Element$1>;
660
- relations: Record<RelationID$1, Relation$1>;
661
- views: Record<ViewID$1, LikeC4View$1>;
662
- }
663
- /**
664
- * Same as `ParsedLikeC4Model` but with computed views.
665
- */
666
- interface ComputedLikeC4Model extends Omit<ParsedLikeC4Model, 'views'> {
667
- views: Record<ViewID$1, ComputedView>;
513
+ /**
514
+ * Same as `ParsedLikeC4Model` but with layouted views (DiagramView)
515
+ */
516
+ interface LayoutedLikeC4Model extends Omit<ParsedLikeC4Model, 'views'> {
517
+ __: 'layouted';
518
+ views: Record<ViewID$1, DiagramView>;
668
519
  }
669
520
 
670
521
  /**
@@ -993,43 +844,49 @@ type Fqn = LiteralUnion<Fqn$1, string>;
993
844
  type RelationID = LiteralUnion<RelationID$1, string>;
994
845
  type ViewID = LiteralUnion<ViewID$1, string>;
995
846
  type EdgeId = LiteralUnion<EdgeId$1, string>;
847
+ type IncomingFilter = 'all' | 'direct' | 'to-descendants';
848
+ type OutgoingFilter = 'all' | 'direct' | 'from-descendants';
849
+ type ElementOrFqn = Fqn | {
850
+ id: Fqn;
851
+ };
996
852
 
997
- type ElementOrFqn$1 = Fqn | LikeC4ViewModel.Element;
998
853
  /**
999
854
  * All methods are view-scoped, i.e. only return elements and connections in the view.
1000
855
  */
1001
856
  declare class LikeC4ViewModel {
1002
- #private;
1003
857
  readonly view: ComputedView;
1004
- readonly model: LikeC4Model;
1005
- constructor(view: ComputedView, model: LikeC4Model);
858
+ readonly model: LikeC4Model<LikeC4ViewModel>;
859
+ private _rootElements;
860
+ private _elements;
861
+ private _connections;
862
+ constructor(view: ComputedView, model: LikeC4Model<LikeC4ViewModel>);
1006
863
  get id(): ViewID$1;
1007
864
  get title(): string;
1008
- get viewOf(): LikeC4Model.Element;
1009
- get tags(): Tag$2[];
865
+ get viewOf(): LikeC4Model.ElementModel<LikeC4ViewModel>;
866
+ get tags(): Tag$1[];
1010
867
  roots(): ReadonlyArray<LikeC4ViewModel.Element>;
1011
868
  elements(): ReadonlyArray<LikeC4ViewModel.Element>;
1012
869
  element(id: Fqn): LikeC4ViewModel.Element;
1013
870
  hasElement(id: Fqn): boolean;
1014
871
  connections(): ReadonlyArray<LikeC4ViewModel.Connection>;
1015
872
  connection(id: EdgeId): LikeC4ViewModel.Connection;
1016
- findConnections(source: ElementOrFqn$1, target: ElementOrFqn$1, direction?: 'both' | 'direct'): ReadonlyArray<LikeC4ViewModel.Connection>;
1017
- parent(element: ElementOrFqn$1): LikeC4ViewModel.Element | null;
1018
- children(element: ElementOrFqn$1): ReadonlyArray<LikeC4ViewModel.Element>;
1019
- siblings(element: ElementOrFqn$1): ReadonlyArray<LikeC4ViewModel.Element>;
873
+ findConnections(source: ElementOrFqn, target: ElementOrFqn, direction?: 'both' | 'direct'): ReadonlyArray<LikeC4ViewModel.Connection>;
874
+ parent(element: ElementOrFqn): LikeC4ViewModel.Element | null;
875
+ children(element: ElementOrFqn): ReadonlyArray<LikeC4ViewModel.Element>;
876
+ siblings(element: ElementOrFqn): ReadonlyArray<LikeC4ViewModel.Element>;
1020
877
  /**
1021
878
  * Get all ancestor elements (i.e. parent, parent’s parent, etc.)
1022
879
  * (from closest to root)
1023
880
  */
1024
- ancestors(element: ElementOrFqn$1): ReadonlyArray<LikeC4ViewModel.Element>;
1025
- descendants(element: ElementOrFqn$1): ReadonlyArray<LikeC4ViewModel.Element>;
1026
- incoming(element: ElementOrFqn$1, filter?: 'all' | 'direct' | 'to-descendants'): ReadonlyArray<LikeC4ViewModel.Connection>;
1027
- incomers(element: ElementOrFqn$1, filter?: 'all' | 'direct' | 'to-descendants'): ReadonlyArray<LikeC4ViewModel.Element>;
881
+ ancestors(element: ElementOrFqn): ReadonlyArray<LikeC4ViewModel.Element>;
882
+ descendants(element: ElementOrFqn): ReadonlyArray<LikeC4ViewModel.Element>;
883
+ incoming(element: ElementOrFqn, filter?: IncomingFilter): ReadonlyArray<LikeC4ViewModel.Connection>;
884
+ incomers(element: ElementOrFqn, filter?: IncomingFilter): ReadonlyArray<LikeC4ViewModel.Element>;
1028
885
  /**
1029
886
  * Outgoing relationships from the element and its descendants
1030
887
  */
1031
- outgoing(element: ElementOrFqn$1, filter?: 'all' | 'direct' | 'from-descendants'): ReadonlyArray<LikeC4ViewModel.Connection>;
1032
- outgoers(element: ElementOrFqn$1, filter?: 'all' | 'direct' | 'from-descendants'): ReadonlyArray<LikeC4ViewModel.Element>;
888
+ outgoing(element: ElementOrFqn, filter?: OutgoingFilter): ReadonlyArray<LikeC4ViewModel.Connection>;
889
+ outgoers(element: ElementOrFqn, filter?: OutgoingFilter): ReadonlyArray<LikeC4ViewModel.Element>;
1033
890
  }
1034
891
  declare namespace LikeC4ViewModel {
1035
892
  /**
@@ -1047,8 +904,8 @@ declare namespace LikeC4ViewModel {
1047
904
  get hasNested(): boolean;
1048
905
  get shape(): ElementShape$1;
1049
906
  get color(): Color$1;
1050
- get tags(): Tag$2[];
1051
- model(): LikeC4Model.Element;
907
+ get tags(): Tag$1[];
908
+ model(): LikeC4Model.ElementModel<LikeC4ViewModel>;
1052
909
  parent(): LikeC4ViewModel.Element | null;
1053
910
  metadata(key: string): string | undefined;
1054
911
  metadata(key: string, defaultValue: string): string;
@@ -1059,8 +916,8 @@ declare namespace LikeC4ViewModel {
1059
916
  children(): ReadonlyArray<LikeC4ViewModel.Element>;
1060
917
  incoming(filter?: 'all' | 'direct' | 'to-descendants'): ReadonlyArray<LikeC4ViewModel.Connection>;
1061
918
  incomers(filter?: 'all' | 'direct' | 'to-descendants'): ReadonlyArray<LikeC4ViewModel.Element>;
1062
- outgoing(filter?: 'all' | 'direct' | 'from-descendants'): ReadonlyArray<LikeC4ViewModel.Connection>;
1063
- outgoers(filter?: 'all' | 'direct' | 'from-descendants'): ReadonlyArray<LikeC4ViewModel.Element>;
919
+ outgoing(filter?: OutgoingFilter): ReadonlyArray<LikeC4ViewModel.Connection>;
920
+ outgoers(filter?: OutgoingFilter): ReadonlyArray<LikeC4ViewModel.Element>;
1064
921
  connectionsTo(target: Fqn | LikeC4ViewModel.Element): ReadonlyArray<LikeC4ViewModel.Connection>;
1065
922
  }
1066
923
  /**
@@ -1074,102 +931,114 @@ declare namespace LikeC4ViewModel {
1074
931
  get id(): EdgeId$1;
1075
932
  get source(): LikeC4ViewModel.Element;
1076
933
  get target(): LikeC4ViewModel.Element;
1077
- get tags(): Tag$2[];
934
+ get tags(): Tag$1[];
1078
935
  /**
1079
936
  * Model relationships
1080
937
  */
1081
- relationships(): ReadonlyArray<LikeC4Model.Relationship>;
938
+ relationships(): ReadonlyArray<LikeC4Model.Relationship<LikeC4ViewModel>>;
1082
939
  }
1083
940
  }
1084
941
 
1085
- type ElementOrFqn = Fqn | LikeC4Model.Element;
1086
- declare class LikeC4Model {
1087
- #private;
1088
- protected computed: ComputedLikeC4Model;
1089
- static from(computed: ComputedLikeC4Model): LikeC4Model;
1090
- protected constructor(computed: ComputedLikeC4Model);
942
+ type PickBySource<Source> = Source extends LikeC4Model.Layouted.SourceModel ? LikeC4Model.Layouted : Source extends LikeC4Model.Computed.SourceModel ? LikeC4Model.Computed : never;
943
+ declare class LikeC4Model<M extends LikeC4Model.ViewModel = LikeC4Model.ViewModel> {
944
+ readonly type: LikeC4Model.ModelType<M>;
945
+ readonly sourcemodel: LikeC4Model.SourceModel<M>;
946
+ private _elements;
947
+ private _parents;
948
+ private _children;
949
+ private _rootElements;
950
+ private _relations;
951
+ private _incoming;
952
+ private _outgoing;
953
+ private _internal;
954
+ private _cacheAscendingSiblings;
955
+ private _views;
956
+ static create(source: LikeC4Model.SourceModel): PickBySource<typeof source>;
957
+ static computed(source: ComputedLikeC4Model): LikeC4Model<LikeC4ViewModel>;
958
+ static layouted(source: LayoutedLikeC4Model): LikeC4Model<LikeC4DiagramModel>;
959
+ protected constructor(type: LikeC4Model.ModelType<M>, sourcemodel: LikeC4Model.SourceModel<M>, elements: Element$1[], relations: Relation$1[]);
1091
960
  /**
1092
961
  * Returns the root elements of the model.
1093
962
  */
1094
- roots(): ReadonlyArray<LikeC4Model.Element>;
963
+ roots(): ReadonlyArray<LikeC4Model.ElementModel<M>>;
1095
964
  /**
1096
965
  * Returns all elements in the model.
1097
966
  */
1098
- elements(): ReadonlyArray<LikeC4Model.Element>;
967
+ elements(): ReadonlyArray<LikeC4Model.ElementModel<M>>;
1099
968
  /**
1100
969
  * Returns a specific element by its FQN.
1101
970
  */
1102
- element(id: Fqn): LikeC4Model.Element;
971
+ element(id: Fqn): LikeC4Model.ElementModel<M>;
1103
972
  /**
1104
973
  * Returns all relationships in the model.
1105
974
  */
1106
- relationships(): ReadonlyArray<LikeC4Model.Relationship>;
975
+ relationships(): ReadonlyArray<LikeC4Model.Relationship<M>>;
1107
976
  /**
1108
977
  * Returns a specific relationship by its ID.
1109
978
  */
1110
- relationship(id: RelationID): LikeC4Model.Relationship;
979
+ relationship(id: RelationID): LikeC4Model.Relationship<M>;
1111
980
  /**
1112
981
  * Returns all views in the model.
1113
982
  */
1114
- views(): ReadonlyArray<LikeC4ViewModel>;
983
+ views(): ReadonlyArray<M>;
1115
984
  /**
1116
985
  * Returns a specific view by its ID.
1117
986
  */
1118
- view(viewId: ViewID): LikeC4ViewModel;
987
+ view(viewId: ViewID): M;
1119
988
  /**
1120
989
  * Returns the parent element of given element.
1121
990
  * @see ancestors
1122
991
  */
1123
- parent(element: ElementOrFqn): LikeC4Model.Element | null;
992
+ parent(element: ElementOrFqn): LikeC4Model.ElementModel<M> | null;
1124
993
  /**
1125
994
  * Get all children of the element (only direct children),
1126
995
  * @see descendants
1127
996
  */
1128
- children(element: ElementOrFqn): ReadonlyArray<LikeC4Model.Element>;
997
+ children(element: ElementOrFqn): ReadonlyArray<LikeC4Model.ElementModel<M>>;
1129
998
  /**
1130
999
  * Get all sibling (i.e. same parent)
1131
1000
  */
1132
- siblings(element: ElementOrFqn): ReadonlyArray<LikeC4Model.Element>;
1001
+ siblings(element: ElementOrFqn): ReadonlyArray<LikeC4Model.ElementModel<M>>;
1133
1002
  /**
1134
1003
  * Get all ancestor elements (i.e. parent, parent’s parent, etc.)
1135
1004
  * (from closest to root)
1136
1005
  */
1137
- ancestors(element: ElementOrFqn): ReadonlyArray<LikeC4Model.Element>;
1006
+ ancestors(element: ElementOrFqn): ReadonlyArray<LikeC4Model.ElementModel<M>>;
1138
1007
  /**
1139
1008
  * Get all descendant elements (i.e. children, children’s children, etc.)
1140
1009
  */
1141
- descendants(element: ElementOrFqn): ReadonlyArray<LikeC4Model.Element>;
1010
+ descendants(element: ElementOrFqn): ReadonlyArray<LikeC4Model.ElementModel<M>>;
1142
1011
  /**
1143
1012
  * Incoming relationships to the element and its descendants
1144
1013
  * @see incomers
1145
1014
  */
1146
- incoming(element: ElementOrFqn, filter?: 'all' | 'direct' | 'to-descendants'): ReadonlyArray<LikeC4Model.Relationship>;
1015
+ incoming(element: ElementOrFqn, filter?: IncomingFilter): ReadonlyArray<LikeC4Model.Relationship<M>>;
1147
1016
  /**
1148
1017
  * Source elements of incoming relationships
1149
1018
  */
1150
- incomers(element: ElementOrFqn, filter?: 'all' | 'direct' | 'to-descendants'): ReadonlyArray<LikeC4Model.Element>;
1019
+ incomers(element: ElementOrFqn, filter?: IncomingFilter): ReadonlyArray<LikeC4Model.ElementModel<M>>;
1151
1020
  /**
1152
1021
  * Outgoing relationships from the element and its descendants
1153
1022
  * @see outgoers
1154
1023
  */
1155
- outgoing(element: ElementOrFqn, filter?: 'all' | 'direct' | 'from-descendants'): ReadonlyArray<LikeC4Model.Relationship>;
1024
+ outgoing(element: ElementOrFqn, filter?: OutgoingFilter): ReadonlyArray<LikeC4Model.Relationship<M>>;
1156
1025
  /**
1157
1026
  * Target elements of outgoing relationships
1158
1027
  */
1159
- outgoers(element: ElementOrFqn, filter?: 'all' | 'direct' | 'from-descendants'): ReadonlyArray<LikeC4Model.Element>;
1028
+ outgoers(element: ElementOrFqn, filter?: OutgoingFilter): ReadonlyArray<LikeC4Model.ElementModel<M>>;
1160
1029
  /**
1161
1030
  * Relationships inside the element, among descendants
1162
1031
  */
1163
- internal(element: ElementOrFqn): ReadonlyArray<LikeC4Model.Relationship>;
1032
+ internal(element: ElementOrFqn): ReadonlyArray<LikeC4Model.Relationship<M>>;
1164
1033
  /**
1165
1034
  * Resolve siblings of the element and siblings of ancestors
1166
1035
  * (from closest to root)
1167
1036
  */
1168
- ascendingSiblings(element: ElementOrFqn): ReadonlyArray<LikeC4Model.Element>;
1037
+ ascendingSiblings(element: ElementOrFqn): ReadonlyArray<LikeC4Model.ElementModel<M>>;
1169
1038
  /**
1170
1039
  * Resolve all views that contain the element
1171
1040
  */
1172
- viewsWithElement(element: ElementOrFqn): ReadonlyArray<LikeC4ViewModel>;
1041
+ viewsWithElement(element: ElementOrFqn): ReadonlyArray<M>;
1173
1042
  private addElement;
1174
1043
  private addRelation;
1175
1044
  private _childrenOf;
@@ -1178,10 +1047,43 @@ declare class LikeC4Model {
1178
1047
  private _internalOf;
1179
1048
  }
1180
1049
  declare namespace LikeC4Model {
1181
- class Element {
1182
- readonly element: Element;
1050
+ function isModel(model: any): model is LikeC4Model;
1051
+ type SourceModel<M extends ViewModel = ViewModel> = M extends LikeC4DiagramModel ? LayoutedLikeC4Model : ComputedLikeC4Model;
1052
+ type ViewModel = LikeC4ViewModel | LikeC4DiagramModel;
1053
+ namespace ViewModel {
1054
+ type Relationship = LikeC4Model.Relationship<ViewModel>;
1055
+ function isLayouted(model: ViewModel): model is LikeC4DiagramModel;
1056
+ }
1057
+ type Computed = LikeC4Model<LikeC4ViewModel>;
1058
+ namespace Computed {
1059
+ type ViewModel = LikeC4ViewModel;
1060
+ type SourceModel = LikeC4Model.SourceModel<ViewModel>;
1061
+ }
1062
+ type Layouted = LikeC4Model<LikeC4DiagramModel>;
1063
+ namespace Layouted {
1064
+ type ViewModel = LikeC4DiagramModel;
1065
+ type SourceModel = LikeC4Model.SourceModel<ViewModel>;
1066
+ }
1067
+ type ModelType<M extends ViewModel = ViewModel> = M extends LikeC4DiagramModel ? 'layouted' : M extends LikeC4ViewModel ? 'computed' : never;
1068
+ function isLayouted(model: LikeC4Model): model is Layouted;
1069
+ class Relationship<M extends ViewModel> {
1070
+ readonly relationship: Relation$1;
1071
+ private model;
1072
+ constructor(relationship: Relation$1, model: LikeC4Model<M>);
1073
+ get id(): RelationID$1;
1074
+ get title(): string;
1075
+ get kind(): RelationshipKind$1;
1076
+ get tags(): Tag$1[];
1077
+ get source(): ElementModel<M>;
1078
+ get target(): ElementModel<M>;
1079
+ metadata(key: string): string | undefined;
1080
+ metadata(key: string, defaultValue: string): string;
1081
+ hasMetadata(key: string): boolean;
1082
+ }
1083
+ class ElementModel<M extends ViewModel> {
1084
+ readonly element: Element$1;
1183
1085
  private model;
1184
- constructor(element: Element, model: LikeC4Model);
1086
+ constructor(element: Element$1, model: LikeC4Model<M>);
1185
1087
  get id(): Fqn$1;
1186
1088
  get title(): string;
1187
1089
  get kind(): ElementKind$1;
@@ -1189,38 +1091,117 @@ declare namespace LikeC4Model {
1189
1091
  get hasNested(): boolean;
1190
1092
  get shape(): ElementShape$1;
1191
1093
  get color(): Color$1;
1192
- get tags(): Tag$2[];
1193
- parent(): LikeC4Model.Element | null;
1094
+ get tags(): Tag$1[];
1095
+ parent(): ElementModel<M> | null;
1194
1096
  metadata(key: string): string | undefined;
1195
1097
  metadata(key: string, defaultValue: string): string;
1196
1098
  hasMetadata(key: string): boolean;
1197
- ancestors(): readonly Element[];
1198
- siblings(): readonly Element[];
1199
- descendants(): readonly Element[];
1200
- children(): readonly Element[];
1099
+ ancestors(): readonly ElementModel<M>[];
1100
+ siblings(): readonly ElementModel<M>[];
1101
+ descendants(): readonly ElementModel<M>[];
1102
+ children(): readonly ElementModel<M>[];
1201
1103
  /**
1202
1104
  * Views that contain this element
1203
1105
  */
1204
- views(): readonly LikeC4ViewModel[];
1205
- incoming(filter?: 'all' | 'direct' | 'to-descendants'): readonly Relationship[];
1206
- incomers(filter?: 'all' | 'direct' | 'to-descendants'): readonly Element[];
1207
- outgoing(filter?: 'all' | 'direct' | 'from-descendants'): readonly Relationship[];
1208
- outgoers(filter?: 'all' | 'direct' | 'from-descendants'): readonly Element[];
1209
- internal(): readonly Relationship[];
1106
+ views(): readonly M[];
1107
+ incoming(filter?: IncomingFilter): readonly Relationship<M>[];
1108
+ incomers(filter?: IncomingFilter): readonly ElementModel<M>[];
1109
+ outgoing(filter?: OutgoingFilter): readonly Relationship<M>[];
1110
+ outgoers(filter?: OutgoingFilter): readonly ElementModel<M>[];
1111
+ internal(): readonly Relationship<M>[];
1210
1112
  }
1211
- class Relationship {
1212
- readonly relationship: Relation$1;
1213
- private model;
1214
- constructor(relationship: Relation$1, model: LikeC4Model);
1215
- get id(): RelationID$1;
1113
+ }
1114
+
1115
+ /**
1116
+ * All methods are view-scoped, i.e. only return elements and connections in the view.
1117
+ */
1118
+ declare class LikeC4DiagramModel {
1119
+ readonly view: DiagramView;
1120
+ readonly model: LikeC4Model.Layouted;
1121
+ private _rootElements;
1122
+ private _elements;
1123
+ private _connections;
1124
+ constructor(view: DiagramView, model: LikeC4Model.Layouted);
1125
+ get isDynamic(): boolean;
1126
+ get id(): ViewID$1;
1127
+ get title(): string;
1128
+ get viewOf(): LikeC4Model.ElementModel<LikeC4DiagramModel>;
1129
+ get tags(): Tag$1[];
1130
+ roots(): ReadonlyArray<LikeC4DiagramModel.Element>;
1131
+ elements(): ReadonlyArray<LikeC4DiagramModel.Element>;
1132
+ element(id: Fqn): LikeC4DiagramModel.Element;
1133
+ hasElement(id: Fqn): boolean;
1134
+ connections(): ReadonlyArray<LikeC4DiagramModel.Connection>;
1135
+ connection(id: EdgeId): LikeC4DiagramModel.Connection;
1136
+ findConnections(source: ElementOrFqn, target: ElementOrFqn, direction?: 'both' | 'direct'): ReadonlyArray<LikeC4DiagramModel.Connection>;
1137
+ parent(element: ElementOrFqn): LikeC4DiagramModel.Element | null;
1138
+ children(element: ElementOrFqn): ReadonlyArray<LikeC4DiagramModel.Element>;
1139
+ siblings(element: ElementOrFqn): ReadonlyArray<LikeC4DiagramModel.Element>;
1140
+ /**
1141
+ * Get all ancestor elements (i.e. parent, parent’s parent, etc.)
1142
+ * (from closest to root)
1143
+ */
1144
+ ancestors(element: ElementOrFqn): ReadonlyArray<LikeC4DiagramModel.Element>;
1145
+ descendants(element: ElementOrFqn): ReadonlyArray<LikeC4DiagramModel.Element>;
1146
+ incoming(element: ElementOrFqn, filter?: IncomingFilter): ReadonlyArray<LikeC4DiagramModel.Connection>;
1147
+ incomers(element: ElementOrFqn, filter?: IncomingFilter): ReadonlyArray<LikeC4DiagramModel.Element>;
1148
+ /**
1149
+ * Outgoing relationships from the element and its descendants
1150
+ */
1151
+ outgoing(element: ElementOrFqn, filter?: OutgoingFilter): ReadonlyArray<LikeC4DiagramModel.Connection>;
1152
+ outgoers(element: ElementOrFqn, filter?: OutgoingFilter): ReadonlyArray<LikeC4DiagramModel.Element>;
1153
+ }
1154
+ declare namespace LikeC4DiagramModel {
1155
+ /**
1156
+ * Represents an element in the view. (Diagram node)
1157
+ * All methods are view-scoped, i.e. `children` returns only children of the element in the view.
1158
+ */
1159
+ class Element {
1160
+ readonly node: DiagramNode;
1161
+ private view;
1162
+ constructor(node: DiagramNode, view: LikeC4DiagramModel);
1163
+ get id(): NodeId;
1216
1164
  get title(): string;
1217
- get kind(): RelationshipKind$1;
1218
- get tags(): Tag$2[];
1219
- get source(): LikeC4Model.Element;
1220
- get target(): LikeC4Model.Element;
1165
+ get kind(): ElementKind$1;
1166
+ get isRoot(): boolean;
1167
+ get hasNested(): boolean;
1168
+ get shape(): ElementShape$1;
1169
+ get color(): Color$1;
1170
+ get tags(): Tag$1[];
1171
+ get level(): number;
1172
+ get depth(): number;
1173
+ model(): LikeC4Model.ElementModel<LikeC4DiagramModel>;
1174
+ parent(): LikeC4DiagramModel.Element | null;
1221
1175
  metadata(key: string): string | undefined;
1222
1176
  metadata(key: string, defaultValue: string): string;
1223
1177
  hasMetadata(key: string): boolean;
1178
+ ancestors(): ReadonlyArray<LikeC4DiagramModel.Element>;
1179
+ siblings(): ReadonlyArray<LikeC4DiagramModel.Element>;
1180
+ descendants(): ReadonlyArray<LikeC4DiagramModel.Element>;
1181
+ children(): ReadonlyArray<LikeC4DiagramModel.Element>;
1182
+ incoming(filter?: IncomingFilter): ReadonlyArray<LikeC4DiagramModel.Connection>;
1183
+ incomers(filter?: IncomingFilter): ReadonlyArray<LikeC4DiagramModel.Element>;
1184
+ outgoing(filter?: OutgoingFilter): ReadonlyArray<LikeC4DiagramModel.Connection>;
1185
+ outgoers(filter?: OutgoingFilter): ReadonlyArray<LikeC4DiagramModel.Element>;
1186
+ connectionsTo(target: Fqn | LikeC4DiagramModel.Element): ReadonlyArray<LikeC4DiagramModel.Connection>;
1187
+ }
1188
+ /**
1189
+ * Represents a connection between two elements.
1190
+ * May be source from multiple model relationships.
1191
+ */
1192
+ class Connection {
1193
+ readonly edge: DiagramEdge;
1194
+ private view;
1195
+ constructor(edge: DiagramEdge, view: LikeC4DiagramModel);
1196
+ get id(): EdgeId$1;
1197
+ get source(): LikeC4DiagramModel.Element;
1198
+ get target(): LikeC4DiagramModel.Element;
1199
+ get tags(): Tag$1[];
1200
+ get color(): Color$1;
1201
+ /**
1202
+ * Model relationships
1203
+ */
1204
+ relationships(): ReadonlyArray<LikeC4Model.Relationship<LikeC4DiagramModel>>;
1224
1205
  }
1225
1206
  }
1226
1207
  declare function nameFromFqn(fqn: Fqn$1): string;
@@ -1233,7 +1214,6 @@ declare function isSameHierarchy<E extends {
1233
1214
  declare function isDescendantOf<E extends {
1234
1215
  id: Fqn$1;
1235
1216
  }>(ancestors: E[]): (e: E) => boolean;
1236
- declare function notDescendantOf(ancestors: Element$1[]): (e: Element$1) => boolean;
1237
1217
  declare function commonAncestor(first: Fqn$1, second: Fqn$1): Fqn$1;
1238
1218
  declare function parentFqn(fqn: Fqn$1): Fqn$1 | null;
1239
1219
  /**
@@ -1256,179 +1236,6 @@ declare function compareByFqnHierarchically<T extends {
1256
1236
  id: string;
1257
1237
  }>(a: T, b: T): 0 | 1 | -1;
1258
1238
 
1259
- /**
1260
- Matches any [primitive value](https://developer.mozilla.org/en-US/docs/Glossary/Primitive).
1261
-
1262
- @category Type
1263
- */
1264
- type Primitive =
1265
- | null
1266
- | undefined
1267
- | string
1268
- | number
1269
- | boolean
1270
- | symbol
1271
- | bigint;
1272
-
1273
- declare global {
1274
- // eslint-disable-next-line @typescript-eslint/consistent-type-definitions -- It has to be an `interface` so that it can be merged.
1275
- interface SymbolConstructor {
1276
- readonly observable: symbol;
1277
- }
1278
- }
1279
-
1280
- type Numeric = number | bigint;
1281
-
1282
- /**
1283
- Returns a boolean for whether the given type is `never`.
1284
-
1285
- @link https://github.com/microsoft/TypeScript/issues/31751#issuecomment-498526919
1286
- @link https://stackoverflow.com/a/53984913/10292952
1287
- @link https://www.zhenghao.io/posts/ts-never
1288
-
1289
- Useful in type utilities, such as checking if something does not occur.
1290
-
1291
- @example
1292
- ```
1293
- import type {IsNever, And} from 'type-fest';
1294
-
1295
- // https://github.com/andnp/SimplyTyped/blob/master/src/types/strings.ts
1296
- type AreStringsEqual<A extends string, B extends string> =
1297
- And<
1298
- IsNever<Exclude<A, B>> extends true ? true : false,
1299
- IsNever<Exclude<B, A>> extends true ? true : false
1300
- >;
1301
-
1302
- type EndIfEqual<I extends string, O extends string> =
1303
- AreStringsEqual<I, O> extends true
1304
- ? never
1305
- : void;
1306
-
1307
- function endIfEqual<I extends string, O extends string>(input: I, output: O): EndIfEqual<I, O> {
1308
- if (input === output) {
1309
- process.exit(0);
1310
- }
1311
- }
1312
-
1313
- endIfEqual('abc', 'abc');
1314
- //=> never
1315
-
1316
- endIfEqual('abc', '123');
1317
- //=> void
1318
- ```
1319
-
1320
- @category Type Guard
1321
- @category Utilities
1322
- */
1323
- type IsNever$1<T> = [T] extends [never] ? true : false;
1324
-
1325
- /**
1326
- Returns a boolean for whether the given type `T` is the specified `LiteralType`.
1327
-
1328
- @link https://stackoverflow.com/a/52806744/10292952
1329
-
1330
- @example
1331
- ```
1332
- LiteralCheck<1, number>
1333
- //=> true
1334
-
1335
- LiteralCheck<number, number>
1336
- //=> false
1337
-
1338
- LiteralCheck<1, string>
1339
- //=> false
1340
- ```
1341
- */
1342
- type LiteralCheck<T, LiteralType extends Primitive> = (
1343
- IsNever$1<T> extends false // Must be wider than `never`
1344
- ? [T] extends [LiteralType & infer U] // Remove any branding
1345
- ? [U] extends [LiteralType] // Must be narrower than `LiteralType`
1346
- ? [LiteralType] extends [U] // Cannot be wider than `LiteralType`
1347
- ? false
1348
- : true
1349
- : false
1350
- : false
1351
- : false
1352
- );
1353
-
1354
- /**
1355
- Returns a boolean for whether the given type `T` is one of the specified literal types in `LiteralUnionType`.
1356
-
1357
- @example
1358
- ```
1359
- LiteralChecks<1, Numeric>
1360
- //=> true
1361
-
1362
- LiteralChecks<1n, Numeric>
1363
- //=> true
1364
-
1365
- LiteralChecks<bigint, Numeric>
1366
- //=> false
1367
- ```
1368
- */
1369
- type LiteralChecks<T, LiteralUnionType> = (
1370
- // Conditional type to force union distribution.
1371
- // If `T` is none of the literal types in the union `LiteralUnionType`, then `LiteralCheck<T, LiteralType>` will evaluate to `false` for the whole union.
1372
- // If `T` is one of the literal types in the union, it will evaluate to `boolean` (i.e. `true | false`)
1373
- IsNotFalse<LiteralUnionType extends Primitive
1374
- ? LiteralCheck<T, LiteralUnionType>
1375
- : never
1376
- >
1377
- );
1378
-
1379
- /**
1380
- Returns a boolean for whether the given type is a `number` or `bigint` [literal type](https://www.typescriptlang.org/docs/handbook/2/everyday-types.html#literal-types).
1381
-
1382
- Useful for:
1383
- - providing strongly-typed functions when given literal arguments
1384
- - type utilities, such as when constructing parsers and ASTs
1385
-
1386
- @example
1387
- ```
1388
- import type {IsNumericLiteral} from 'type-fest';
1389
-
1390
- // https://github.com/inocan-group/inferred-types/blob/master/src/types/boolean-logic/EndsWith.ts
1391
- type EndsWith<TValue, TEndsWith extends string> =
1392
- TValue extends string
1393
- ? IsStringLiteral<TEndsWith> extends true
1394
- ? IsStringLiteral<TValue> extends true
1395
- ? TValue extends `${string}${TEndsWith}`
1396
- ? true
1397
- : false
1398
- : boolean
1399
- : boolean
1400
- : TValue extends number
1401
- ? IsNumericLiteral<TValue> extends true
1402
- ? EndsWith<`${TValue}`, TEndsWith>
1403
- : false
1404
- : false;
1405
-
1406
- function endsWith<Input extends string | number, End extends string>(input: Input, end: End) {
1407
- return `${input}`.endsWith(end) as EndsWith<Input, End>;
1408
- }
1409
-
1410
- endsWith('abc', 'c');
1411
- //=> true
1412
-
1413
- endsWith(123456, '456');
1414
- //=> true
1415
-
1416
- const end = '123' as string;
1417
-
1418
- endsWith('abc123', end);
1419
- //=> boolean
1420
- ```
1421
-
1422
- @category Type Guard
1423
- @category Utilities
1424
- */
1425
- type IsNumericLiteral<T> = LiteralChecks<T, Numeric>;
1426
-
1427
- /**
1428
- Returns a boolean for whether the given `boolean` is not `false`.
1429
- */
1430
- type IsNotFalse<T extends boolean> = [T] extends [false] ? false : true;
1431
-
1432
1239
  /**
1433
1240
  * This should only be used for defining generics which extend any kind of JS
1434
1241
  * array under the hood, this includes arrays *AND* tuples (of the form [x, y],
@@ -4161,697 +3968,150 @@ type InlineValueContext = {
4161
3968
  */
4162
3969
  declare namespace InlineValueContext {
4163
3970
  /**
4164
- * Creates a new InlineValueContext literal.
4165
- */
4166
- function create(frameId: integer, stoppedLocation: Range$1): InlineValueContext;
4167
- /**
4168
- * Checks whether the given literal conforms to the {@link InlineValueContext} interface.
4169
- */
4170
- function is(value: any): value is InlineValueContext;
4171
- }
4172
- /**
4173
- * Inlay hint kinds.
4174
- *
4175
- * @since 3.17.0
4176
- */
4177
- declare namespace InlayHintKind {
4178
- /**
4179
- * An inlay hint that for a type annotation.
4180
- */
4181
- const Type = 1;
4182
- /**
4183
- * An inlay hint that is for a parameter.
4184
- */
4185
- const Parameter = 2;
4186
- function is(value: number): value is InlayHintKind;
4187
- }
4188
- type InlayHintKind = 1 | 2;
4189
- /**
4190
- * An inlay hint label part allows for interactive and composite labels
4191
- * of inlay hints.
4192
- *
4193
- * @since 3.17.0
4194
- */
4195
- type InlayHintLabelPart = {
4196
- /**
4197
- * The value of this label part.
4198
- */
4199
- value: string;
4200
- /**
4201
- * The tooltip text when you hover over this label part. Depending on
4202
- * the client capability `inlayHint.resolveSupport` clients might resolve
4203
- * this property late using the resolve request.
4204
- */
4205
- tooltip?: string | MarkupContent;
4206
- /**
4207
- * An optional source code location that represents this
4208
- * label part.
4209
- *
4210
- * The editor will use this location for the hover and for code navigation
4211
- * features: This part will become a clickable link that resolves to the
4212
- * definition of the symbol at the given location (not necessarily the
4213
- * location itself), it shows the hover that shows at the given location,
4214
- * and it shows a context menu with further code navigation commands.
4215
- *
4216
- * Depending on the client capability `inlayHint.resolveSupport` clients
4217
- * might resolve this property late using the resolve request.
4218
- */
4219
- location?: Location;
4220
- /**
4221
- * An optional command for this label part.
4222
- *
4223
- * Depending on the client capability `inlayHint.resolveSupport` clients
4224
- * might resolve this property late using the resolve request.
4225
- */
4226
- command?: Command;
4227
- };
4228
- declare namespace InlayHintLabelPart {
4229
- function create(value: string): InlayHintLabelPart;
4230
- function is(value: any): value is InlayHintLabelPart;
4231
- }
4232
- /**
4233
- * Inlay hint information.
4234
- *
4235
- * @since 3.17.0
4236
- */
4237
- type InlayHint = {
4238
- /**
4239
- * The position of this hint.
4240
- */
4241
- position: Position$2;
4242
- /**
4243
- * The label of this hint. A human readable string or an array of
4244
- * InlayHintLabelPart label parts.
4245
- *
4246
- * *Note* that neither the string nor the label part can be empty.
4247
- */
4248
- label: string | InlayHintLabelPart[];
4249
- /**
4250
- * The kind of this hint. Can be omitted in which case the client
4251
- * should fall back to a reasonable default.
4252
- */
4253
- kind?: InlayHintKind;
4254
- /**
4255
- * Optional text edits that are performed when accepting this inlay hint.
4256
- *
4257
- * *Note* that edits are expected to change the document so that the inlay
4258
- * hint (or its nearest variant) is now part of the document and the inlay
4259
- * hint itself is now obsolete.
4260
- */
4261
- textEdits?: TextEdit$1[];
4262
- /**
4263
- * The tooltip text when you hover over this item.
4264
- */
4265
- tooltip?: string | MarkupContent;
4266
- /**
4267
- * Render padding before the hint.
4268
- *
4269
- * Note: Padding should use the editor's background color, not the
4270
- * background color of the hint itself. That means padding can be used
4271
- * to visually align/separate an inlay hint.
4272
- */
4273
- paddingLeft?: boolean;
4274
- /**
4275
- * Render padding after the hint.
4276
- *
4277
- * Note: Padding should use the editor's background color, not the
4278
- * background color of the hint itself. That means padding can be used
4279
- * to visually align/separate an inlay hint.
4280
- */
4281
- paddingRight?: boolean;
4282
- /**
4283
- * A data entry field that is preserved on an inlay hint between
4284
- * a `textDocument/inlayHint` and a `inlayHint/resolve` request.
4285
- */
4286
- data?: LSPAny;
4287
- };
4288
- declare namespace InlayHint {
4289
- function create(position: Position$2, label: string | InlayHintLabelPart[], kind?: InlayHintKind): InlayHint;
4290
- function is(value: any): value is InlayHint;
4291
- }
4292
- /**
4293
- * A workspace folder inside a client.
4294
- */
4295
- interface WorkspaceFolder {
4296
- /**
4297
- * The associated URI for this workspace folder.
4298
- */
4299
- uri: URI$1;
4300
- /**
4301
- * The name of the workspace folder. Used to refer to this
4302
- * workspace folder in the user interface.
4303
- */
4304
- name: string;
4305
- }
4306
- declare namespace WorkspaceFolder {
4307
- function is(value: any): value is WorkspaceFolder;
4308
- }
4309
-
4310
- /**
4311
- * @hidden
4312
- */
4313
- type $keywords<T extends string> = {
4314
- [key in T]: key;
4315
- };
4316
-
4317
- declare global {
4318
- // eslint-disable-next-line @typescript-eslint/consistent-type-definitions -- It has to be an `interface` so that it can be merged.
4319
- interface SymbolConstructor {
4320
- readonly observable: symbol;
4321
- }
4322
- }
4323
-
4324
- /**
4325
- Returns a boolean for whether the two given types are equal.
4326
-
4327
- @link https://github.com/microsoft/TypeScript/issues/27024#issuecomment-421529650
4328
- @link https://stackoverflow.com/questions/68961864/how-does-the-equals-work-in-typescript/68963796#68963796
4329
-
4330
- Use-cases:
4331
- - If you want to make a conditional branch based on the result of a comparison of two types.
4332
-
4333
- @example
4334
- ```
4335
- import type {IsEqual} from 'type-fest';
4336
-
4337
- // This type returns a boolean for whether the given array includes the given item.
4338
- // `IsEqual` is used to compare the given array at position 0 and the given item and then return true if they are equal.
4339
- type Includes<Value extends readonly any[], Item> =
4340
- Value extends readonly [Value[0], ...infer rest]
4341
- ? IsEqual<Value[0], Item> extends true
4342
- ? true
4343
- : Includes<rest, Item>
4344
- : false;
4345
- ```
4346
-
4347
- @category Type Guard
4348
- @category Utilities
4349
- */
4350
- type IsEqual<A, B> =
4351
- (<G>() => G extends A ? 1 : 2) extends
4352
- (<G>() => G extends B ? 1 : 2)
4353
- ? true
4354
- : false;
4355
-
4356
- /**
4357
- Filter out keys from an object.
4358
-
4359
- Returns `never` if `Exclude` is strictly equal to `Key`.
4360
- Returns `never` if `Key` extends `Exclude`.
4361
- Returns `Key` otherwise.
4362
-
4363
- @example
4364
- ```
4365
- type Filtered = Filter<'foo', 'foo'>;
4366
- //=> never
4367
- ```
4368
-
4369
- @example
4370
- ```
4371
- type Filtered = Filter<'bar', string>;
4372
- //=> never
4373
- ```
4374
-
4375
- @example
4376
- ```
4377
- type Filtered = Filter<'bar', 'foo'>;
4378
- //=> 'bar'
4379
- ```
4380
-
4381
- @see {Except}
4382
- */
4383
- type Filter<KeyType, ExcludeType> = IsEqual<KeyType, ExcludeType> extends true ? never : (KeyType extends ExcludeType ? never : KeyType);
4384
-
4385
- type ExceptOptions = {
4386
- /**
4387
- Disallow assigning non-specified properties.
4388
-
4389
- Note that any omitted properties in the resulting type will be present in autocomplete as `undefined`.
4390
-
4391
- @default false
4392
- */
4393
- requireExactProps?: boolean;
4394
- };
4395
-
4396
- /**
4397
- Create a type from an object type without certain keys.
4398
-
4399
- We recommend setting the `requireExactProps` option to `true`.
4400
-
4401
- This type is a stricter version of [`Omit`](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-5.html#the-omit-helper-type). The `Omit` type does not restrict the omitted keys to be keys present on the given type, while `Except` does. The benefits of a stricter type are avoiding typos and allowing the compiler to pick up on rename refactors automatically.
4402
-
4403
- This type was proposed to the TypeScript team, which declined it, saying they prefer that libraries implement stricter versions of the built-in types ([microsoft/TypeScript#30825](https://github.com/microsoft/TypeScript/issues/30825#issuecomment-523668235)).
4404
-
4405
- @example
4406
- ```
4407
- import type {Except} from 'type-fest';
4408
-
4409
- type Foo = {
4410
- a: number;
4411
- b: string;
4412
- };
4413
-
4414
- type FooWithoutA = Except<Foo, 'a'>;
4415
- //=> {b: string}
4416
-
4417
- const fooWithoutA: FooWithoutA = {a: 1, b: '2'};
4418
- //=> errors: 'a' does not exist in type '{ b: string; }'
4419
-
4420
- type FooWithoutB = Except<Foo, 'b', {requireExactProps: true}>;
4421
- //=> {a: number} & Partial<Record<"b", never>>
4422
-
4423
- const fooWithoutB: FooWithoutB = {a: 1, b: '2'};
4424
- //=> errors at 'b': Type 'string' is not assignable to type 'undefined'.
4425
- ```
4426
-
4427
- @category Object
4428
- */
4429
- type Except<ObjectType, KeysType extends keyof ObjectType, Options extends ExceptOptions = {requireExactProps: false}> = {
4430
- [KeyType in keyof ObjectType as Filter<KeyType, KeysType>]: ObjectType[KeyType];
4431
- } & (Options['requireExactProps'] extends true
4432
- ? Partial<Record<KeysType, never>>
4433
- : {});
4434
-
4435
- /**
4436
- Useful to flatten the type output to improve type hints shown in editors. And also to transform an interface into a type to aide with assignability.
4437
-
4438
- @example
4439
- ```
4440
- import type {Simplify} from 'type-fest';
4441
-
4442
- type PositionProps = {
4443
- top: number;
4444
- left: number;
4445
- };
4446
-
4447
- type SizeProps = {
4448
- width: number;
4449
- height: number;
4450
- };
4451
-
4452
- // In your editor, hovering over `Props` will show a flattened object with all the properties.
4453
- type Props = Simplify<PositionProps & SizeProps>;
4454
- ```
4455
-
4456
- Sometimes it is desired to pass a value as a function argument that has a different type. At first inspection it may seem assignable, and then you discover it is not because the `value`'s type definition was defined as an interface. In the following example, `fn` requires an argument of type `Record<string, unknown>`. If the value is defined as a literal, then it is assignable. And if the `value` is defined as type using the `Simplify` utility the value is assignable. But if the `value` is defined as an interface, it is not assignable because the interface is not sealed and elsewhere a non-string property could be added to the interface.
4457
-
4458
- If the type definition must be an interface (perhaps it was defined in a third-party npm package), then the `value` can be defined as `const value: Simplify<SomeInterface> = ...`. Then `value` will be assignable to the `fn` argument. Or the `value` can be cast as `Simplify<SomeInterface>` if you can't re-declare the `value`.
4459
-
4460
- @example
4461
- ```
4462
- import type {Simplify} from 'type-fest';
4463
-
4464
- interface SomeInterface {
4465
- foo: number;
4466
- bar?: string;
4467
- baz: number | undefined;
4468
- }
4469
-
4470
- type SomeType = {
4471
- foo: number;
4472
- bar?: string;
4473
- baz: number | undefined;
4474
- };
4475
-
4476
- const literal = {foo: 123, bar: 'hello', baz: 456};
4477
- const someType: SomeType = literal;
4478
- const someInterface: SomeInterface = literal;
4479
-
4480
- function fn(object: Record<string, unknown>): void {}
4481
-
4482
- fn(literal); // Good: literal object type is sealed
4483
- fn(someType); // Good: type is sealed
4484
- fn(someInterface); // Error: Index signature for type 'string' is missing in type 'someInterface'. Because `interface` can be re-opened
4485
- fn(someInterface as Simplify<SomeInterface>); // Good: transform an `interface` into a `type`
4486
- ```
4487
-
4488
- @link https://github.com/microsoft/TypeScript/issues/15300
4489
- @see SimplifyDeep
4490
- @category Object
4491
- */
4492
- type Simplify<T> = {[KeyType in keyof T]: T[KeyType]} & {};
4493
-
4494
- /**
4495
- Returns a boolean for whether the given type is `never`.
4496
-
4497
- @link https://github.com/microsoft/TypeScript/issues/31751#issuecomment-498526919
4498
- @link https://stackoverflow.com/a/53984913/10292952
4499
- @link https://www.zhenghao.io/posts/ts-never
4500
-
4501
- Useful in type utilities, such as checking if something does not occur.
4502
-
4503
- @example
4504
- ```
4505
- import type {IsNever, And} from 'type-fest';
4506
-
4507
- // https://github.com/andnp/SimplyTyped/blob/master/src/types/strings.ts
4508
- type AreStringsEqual<A extends string, B extends string> =
4509
- And<
4510
- IsNever<Exclude<A, B>> extends true ? true : false,
4511
- IsNever<Exclude<B, A>> extends true ? true : false
4512
- >;
4513
-
4514
- type EndIfEqual<I extends string, O extends string> =
4515
- AreStringsEqual<I, O> extends true
4516
- ? never
4517
- : void;
4518
-
4519
- function endIfEqual<I extends string, O extends string>(input: I, output: O): EndIfEqual<I, O> {
4520
- if (input === output) {
4521
- process.exit(0);
4522
- }
4523
- }
4524
-
4525
- endIfEqual('abc', 'abc');
4526
- //=> never
4527
-
4528
- endIfEqual('abc', '123');
4529
- //=> void
4530
- ```
4531
-
4532
- @category Type Guard
4533
- @category Utilities
4534
- */
4535
- type IsNever<T> = [T] extends [never] ? true : false;
4536
-
4537
- declare const tag: unique symbol;
4538
-
4539
- type TagContainer<Token> = {
4540
- readonly [tag]: Token;
4541
- };
4542
-
4543
- type Tag$1<Token extends PropertyKey, TagMetadata> = TagContainer<{[K in Token]: TagMetadata}>;
4544
-
4545
- /**
4546
- Attach a "tag" to an arbitrary type. This allows you to create distinct types, that aren't assignable to one another, for distinct concepts in your program that should not be interchangeable, even if their runtime values have the same type. (See examples.)
4547
-
4548
- A type returned by `Tagged` can be passed to `Tagged` again, to create a type with multiple tags.
4549
-
4550
- [Read more about tagged types.](https://medium.com/@KevinBGreene/surviving-the-typescript-ecosystem-branding-and-type-tagging-6cf6e516523d)
4551
-
4552
- A tag's name is usually a string (and must be a string, number, or symbol), but each application of a tag can also contain an arbitrary type as its "metadata". See {@link GetTagMetadata} for examples and explanation.
4553
-
4554
- A type `A` returned by `Tagged` is assignable to another type `B` returned by `Tagged` if and only if:
4555
- - the underlying (untagged) type of `A` is assignable to the underlying type of `B`;
4556
- - `A` contains at least all the tags `B` has;
4557
- - and the metadata type for each of `A`'s tags is assignable to the metadata type of `B`'s corresponding tag.
4558
-
4559
- There have been several discussions about adding similar features to TypeScript. Unfortunately, nothing has (yet) moved forward:
4560
- - [Microsoft/TypeScript#202](https://github.com/microsoft/TypeScript/issues/202)
4561
- - [Microsoft/TypeScript#4895](https://github.com/microsoft/TypeScript/issues/4895)
4562
- - [Microsoft/TypeScript#33290](https://github.com/microsoft/TypeScript/pull/33290)
4563
-
4564
- @example
4565
- ```
4566
- import type {Tagged} from 'type-fest';
4567
-
4568
- type AccountNumber = Tagged<number, 'AccountNumber'>;
4569
- type AccountBalance = Tagged<number, 'AccountBalance'>;
4570
-
4571
- function createAccountNumber(): AccountNumber {
4572
- // As you can see, casting from a `number` (the underlying type being tagged) is allowed.
4573
- return 2 as AccountNumber;
4574
- }
4575
-
4576
- function getMoneyForAccount(accountNumber: AccountNumber): AccountBalance {
4577
- return 4 as AccountBalance;
4578
- }
4579
-
4580
- // This will compile successfully.
4581
- getMoneyForAccount(createAccountNumber());
4582
-
4583
- // But this won't, because it has to be explicitly passed as an `AccountNumber` type!
4584
- // Critically, you could not accidentally use an `AccountBalance` as an `AccountNumber`.
4585
- getMoneyForAccount(2);
4586
-
4587
- // You can also use tagged values like their underlying, untagged type.
4588
- // I.e., this will compile successfully because an `AccountNumber` can be used as a regular `number`.
4589
- // In this sense, the underlying base type is not hidden, which differentiates tagged types from opaque types in other languages.
4590
- const accountNumber = createAccountNumber() + 2;
4591
- ```
4592
-
4593
- @example
4594
- ```
4595
- import type {Tagged} from 'type-fest';
4596
-
4597
- // You can apply multiple tags to a type by using `Tagged` repeatedly.
4598
- type Url = Tagged<string, 'URL'>;
4599
- type SpecialCacheKey = Tagged<Url, 'SpecialCacheKey'>;
4600
-
4601
- // You can also pass a union of tag names, so this is equivalent to the above, although it doesn't give you the ability to assign distinct metadata to each tag.
4602
- type SpecialCacheKey2 = Tagged<string, 'URL' | 'SpecialCacheKey'>;
4603
- ```
4604
-
4605
- @category Type
4606
- */
4607
- type Tagged<Type, TagName extends PropertyKey, TagMetadata = never> = Type & Tag$1<TagName, TagMetadata>;
4608
-
4609
- /**
4610
- Create a type that makes the given keys required. The remaining keys are kept as is. The sister of the `SetOptional` type.
4611
-
4612
- Use-case: You want to define a single model where the only thing that changes is whether or not some of the keys are required.
4613
-
4614
- @example
4615
- ```
4616
- import type {SetRequired} from 'type-fest';
4617
-
4618
- type Foo = {
4619
- a?: number;
4620
- b: string;
4621
- c?: boolean;
4622
- }
4623
-
4624
- type SomeRequired = SetRequired<Foo, 'b' | 'c'>;
4625
- // type SomeRequired = {
4626
- // a?: number;
4627
- // b: string; // Was already required and still is.
4628
- // c: boolean; // Is now required.
4629
- // }
4630
- ```
4631
-
4632
- @category Object
4633
- */
4634
- type SetRequired<BaseType, Keys extends keyof BaseType> =
4635
- // `extends unknown` is always going to be the case and is used to convert any
4636
- // union into a [distributive conditional
4637
- // type](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-2-8.html#distributive-conditional-types).
4638
- BaseType extends unknown
4639
- ? Simplify<
4640
- // Pick just the keys that are optional from the base type.
4641
- Except<BaseType, Keys> &
4642
- // Pick the keys that should be required from the base type and make them required.
4643
- Required<Pick<BaseType, Keys>>
4644
- >
4645
- : never;
4646
-
4647
- /**
4648
- Create a union of the given object's values, and optionally specify which keys to get the values from.
4649
-
4650
- Please upvote [this issue](https://github.com/microsoft/TypeScript/issues/31438) if you want to have this type as a built-in in TypeScript.
4651
-
4652
- @example
4653
- ```
4654
- // data.json
4655
- {
4656
- 'foo': 1,
4657
- 'bar': 2,
4658
- 'biz': 3
4659
- }
4660
-
4661
- // main.ts
4662
- import type {ValueOf} from 'type-fest';
4663
- import data = require('./data.json');
4664
-
4665
- export function getData(name: string): ValueOf<typeof data> {
4666
- return data[name];
4667
- }
4668
-
4669
- export function onlyBar(name: string): ValueOf<typeof data, 'bar'> {
4670
- return data[name];
4671
- }
4672
-
4673
- // file.ts
4674
- import {getData, onlyBar} from './main';
4675
-
4676
- getData('foo');
4677
- //=> 1
4678
-
4679
- onlyBar('foo');
4680
- //=> TypeError ...
4681
-
4682
- onlyBar('bar');
4683
- //=> 2
4684
- ```
4685
-
4686
- @category Object
4687
- */
4688
- type ValueOf<ObjectType, ValueType extends keyof ObjectType = keyof ObjectType> = ObjectType[ValueType];
4689
-
4690
- /**
4691
- An if-else-like type that resolves depending on whether the given type is `never`.
4692
-
4693
- @see {@link IsNever}
4694
-
4695
- @example
4696
- ```
4697
- import type {IfNever} from 'type-fest';
4698
-
4699
- type ShouldBeTrue = IfNever<never>;
4700
- //=> true
4701
-
4702
- type ShouldBeBar = IfNever<'not never', 'foo', 'bar'>;
4703
- //=> 'bar'
4704
- ```
4705
-
4706
- @category Type Guard
4707
- @category Utilities
4708
- */
4709
- type IfNever<T, TypeIfNever = true, TypeIfNotNever = false> = (
4710
- IsNever<T> extends true ? TypeIfNever : TypeIfNotNever
4711
- );
4712
-
4713
- /**
4714
- Extract the keys from a type where the value type of the key extends the given `Condition`.
4715
-
4716
- Internally this is used for the `ConditionalPick` and `ConditionalExcept` types.
4717
-
4718
- @example
4719
- ```
4720
- import type {ConditionalKeys} from 'type-fest';
4721
-
4722
- interface Example {
4723
- a: string;
4724
- b: string | number;
4725
- c?: string;
4726
- d: {};
3971
+ * Creates a new InlineValueContext literal.
3972
+ */
3973
+ function create(frameId: integer, stoppedLocation: Range$1): InlineValueContext;
3974
+ /**
3975
+ * Checks whether the given literal conforms to the {@link InlineValueContext} interface.
3976
+ */
3977
+ function is(value: any): value is InlineValueContext;
4727
3978
  }
4728
-
4729
- type StringKeysOnly = ConditionalKeys<Example, string>;
4730
- //=> 'a'
4731
- ```
4732
-
4733
- To support partial types, make sure your `Condition` is a union of undefined (for example, `string | undefined`) as demonstrated below.
4734
-
4735
- @example
4736
- ```
4737
- import type {ConditionalKeys} from 'type-fest';
4738
-
4739
- type StringKeysAndUndefined = ConditionalKeys<Example, string | undefined>;
4740
- //=> 'a' | 'c'
4741
- ```
4742
-
4743
- @category Object
4744
- */
4745
- type ConditionalKeys<Base, Condition> =
4746
- {
4747
- // Map through all the keys of the given base type.
4748
- [Key in keyof Base]-?:
4749
- // Pick only keys with types extending the given `Condition` type.
4750
- Base[Key] extends Condition
4751
- // Retain this key
4752
- // If the value for the key extends never, only include it if `Condition` also extends never
4753
- ? IfNever<Base[Key], IfNever<Condition, Key, never>, Key>
4754
- // Discard this key since the condition fails.
4755
- : never;
4756
- // Convert the produced object into a union type of the keys which passed the conditional test.
4757
- }[keyof Base];
4758
-
4759
3979
  /**
4760
- Pick keys from the shape that matches the given `Condition`.
4761
-
4762
- This is useful when you want to create a new type from a specific subset of an existing type. For example, you might want to pick all the primitive properties from a class and form a new automatically derived type.
4763
-
4764
- @example
4765
- ```
4766
- import type {Primitive, ConditionalPick} from 'type-fest';
4767
-
4768
- class Awesome {
4769
- name: string;
4770
- successes: number;
4771
- failures: bigint;
4772
-
4773
- run() {}
4774
- }
4775
-
4776
- type PickPrimitivesFromAwesome = ConditionalPick<Awesome, Primitive>;
4777
- //=> {name: string; successes: number; failures: bigint}
4778
- ```
4779
-
4780
- @example
4781
- ```
4782
- import type {ConditionalPick} from 'type-fest';
4783
-
4784
- interface Example {
4785
- a: string;
4786
- b: string | number;
4787
- c: () => void;
4788
- d: {};
4789
- }
4790
-
4791
- type StringKeysOnly = ConditionalPick<Example, string>;
4792
- //=> {a: string}
4793
- ```
4794
-
4795
- @category Object
4796
- */
4797
- type ConditionalPick<Base, Condition> = Pick<
4798
- Base,
4799
- ConditionalKeys<Base, Condition>
4800
- >;
4801
-
4802
- declare module 'ts-graphviz' {
4803
- namespace ClusterSubgraphAttributeKey {
4804
- interface $values extends $keywords<'likec4_type' | 'likec4_path' | 'likec4_id' | 'likec4_level' | 'likec4_depth'> {
4805
- }
4806
- }
4807
- namespace NodeAttributeKey {
4808
- interface $values extends $keywords<'likec4_type' | 'likec4_path' | 'likec4_id' | 'likec4_level'> {
4809
- }
4810
- }
4811
- namespace EdgeAttributeKey {
4812
- interface $values extends $keywords<'likec4_id'> {
4813
- }
4814
- }
4815
- namespace Attribute {
4816
- interface $keys extends $keywords<'likec4_type' | 'likec4_path' | 'likec4_id' | 'likec4_level' | 'likec4_depth'> {
4817
- }
4818
- interface $types {
4819
- likec4_type: 'folder' | 'file' | 'view';
4820
- likec4_path: string;
4821
- likec4_id: string;
4822
- likec4_level: number;
4823
- likec4_depth: number;
4824
- }
4825
- }
3980
+ * Inlay hint kinds.
3981
+ *
3982
+ * @since 3.17.0
3983
+ */
3984
+ declare namespace InlayHintKind {
3985
+ /**
3986
+ * An inlay hint that for a type annotation.
3987
+ */
3988
+ const Type = 1;
3989
+ /**
3990
+ * An inlay hint that is for a parameter.
3991
+ */
3992
+ const Parameter = 2;
3993
+ function is(value: number): value is InlayHintKind;
4826
3994
  }
4827
- type DotSource = Tagged<string, 'DotSource'>;
4828
- type DotLayoutResult = {
4829
- dot: DotSource;
4830
- diagram: DiagramView;
3995
+ type InlayHintKind = 1 | 2;
3996
+ /**
3997
+ * An inlay hint label part allows for interactive and composite labels
3998
+ * of inlay hints.
3999
+ *
4000
+ * @since 3.17.0
4001
+ */
4002
+ type InlayHintLabelPart = {
4003
+ /**
4004
+ * The value of this label part.
4005
+ */
4006
+ value: string;
4007
+ /**
4008
+ * The tooltip text when you hover over this label part. Depending on
4009
+ * the client capability `inlayHint.resolveSupport` clients might resolve
4010
+ * this property late using the resolve request.
4011
+ */
4012
+ tooltip?: string | MarkupContent;
4013
+ /**
4014
+ * An optional source code location that represents this
4015
+ * label part.
4016
+ *
4017
+ * The editor will use this location for the hover and for code navigation
4018
+ * features: This part will become a clickable link that resolves to the
4019
+ * definition of the symbol at the given location (not necessarily the
4020
+ * location itself), it shows the hover that shows at the given location,
4021
+ * and it shows a context menu with further code navigation commands.
4022
+ *
4023
+ * Depending on the client capability `inlayHint.resolveSupport` clients
4024
+ * might resolve this property late using the resolve request.
4025
+ */
4026
+ location?: Location;
4027
+ /**
4028
+ * An optional command for this label part.
4029
+ *
4030
+ * Depending on the client capability `inlayHint.resolveSupport` clients
4031
+ * might resolve this property late using the resolve request.
4032
+ */
4033
+ command?: Command;
4831
4034
  };
4832
-
4833
- interface GraphvizPort {
4834
- unflatten(dot: DotSource): Promise<DotSource>;
4835
- acyclic(dot: DotSource): Promise<DotSource>;
4836
- layoutJson(dot: DotSource): Promise<string>;
4837
- svg(dot: DotSource): Promise<string>;
4035
+ declare namespace InlayHintLabelPart {
4036
+ function create(value: string): InlayHintLabelPart;
4037
+ function is(value: any): value is InlayHintLabelPart;
4838
4038
  }
4839
- type LayoutResult = {
4840
- dot: DotSource;
4841
- diagram: DiagramView;
4039
+ /**
4040
+ * Inlay hint information.
4041
+ *
4042
+ * @since 3.17.0
4043
+ */
4044
+ type InlayHint = {
4045
+ /**
4046
+ * The position of this hint.
4047
+ */
4048
+ position: Position$2;
4049
+ /**
4050
+ * The label of this hint. A human readable string or an array of
4051
+ * InlayHintLabelPart label parts.
4052
+ *
4053
+ * *Note* that neither the string nor the label part can be empty.
4054
+ */
4055
+ label: string | InlayHintLabelPart[];
4056
+ /**
4057
+ * The kind of this hint. Can be omitted in which case the client
4058
+ * should fall back to a reasonable default.
4059
+ */
4060
+ kind?: InlayHintKind;
4061
+ /**
4062
+ * Optional text edits that are performed when accepting this inlay hint.
4063
+ *
4064
+ * *Note* that edits are expected to change the document so that the inlay
4065
+ * hint (or its nearest variant) is now part of the document and the inlay
4066
+ * hint itself is now obsolete.
4067
+ */
4068
+ textEdits?: TextEdit$1[];
4069
+ /**
4070
+ * The tooltip text when you hover over this item.
4071
+ */
4072
+ tooltip?: string | MarkupContent;
4073
+ /**
4074
+ * Render padding before the hint.
4075
+ *
4076
+ * Note: Padding should use the editor's background color, not the
4077
+ * background color of the hint itself. That means padding can be used
4078
+ * to visually align/separate an inlay hint.
4079
+ */
4080
+ paddingLeft?: boolean;
4081
+ /**
4082
+ * Render padding after the hint.
4083
+ *
4084
+ * Note: Padding should use the editor's background color, not the
4085
+ * background color of the hint itself. That means padding can be used
4086
+ * to visually align/separate an inlay hint.
4087
+ */
4088
+ paddingRight?: boolean;
4089
+ /**
4090
+ * A data entry field that is preserved on an inlay hint between
4091
+ * a `textDocument/inlayHint` and a `inlayHint/resolve` request.
4092
+ */
4093
+ data?: LSPAny;
4842
4094
  };
4843
- declare class GraphvizLayouter {
4844
- private graphviz;
4845
- constructor(graphviz: GraphvizPort);
4846
- get port(): GraphvizPort;
4847
- changePort(graphviz: GraphvizPort): void;
4848
- layout(view: ComputedView): Promise<LayoutResult>;
4849
- svg(view: ComputedView): Promise<{
4850
- svg: string;
4851
- dot: DotSource;
4852
- }>;
4853
- dot(computedView: ComputedView): Promise<DotSource>;
4854
- layoutOverviewGraph(views: ComputedView[]): Promise<OverviewGraph>;
4095
+ declare namespace InlayHint {
4096
+ function create(position: Position$2, label: string | InlayHintLabelPart[], kind?: InlayHintKind): InlayHint;
4097
+ function is(value: any): value is InlayHint;
4098
+ }
4099
+ /**
4100
+ * A workspace folder inside a client.
4101
+ */
4102
+ interface WorkspaceFolder {
4103
+ /**
4104
+ * The associated URI for this workspace folder.
4105
+ */
4106
+ uri: URI$1;
4107
+ /**
4108
+ * The name of the workspace folder. Used to refer to this
4109
+ * workspace folder in the user interface.
4110
+ */
4111
+ name: string;
4112
+ }
4113
+ declare namespace WorkspaceFolder {
4114
+ function is(value: any): value is WorkspaceFolder;
4855
4115
  }
4856
4116
 
4857
4117
  type ParserMethod<ARGS extends unknown[], R> = (...args: ARGS) => R;
@@ -15739,6 +14999,34 @@ interface ChangeViewRequestParams {
15739
14999
  change: ViewChange;
15740
15000
  }
15741
15001
 
15002
+ declare class LikeC4CodeLensProvider implements CodeLensProvider {
15003
+ private services;
15004
+ constructor(services: LikeC4Services);
15005
+ provideCodeLens(doc: LangiumDocument, _params: CodeLensParams, cancelToken?: CancellationToken): Promise<CodeLens[] | undefined>;
15006
+ }
15007
+
15008
+ declare class LikeC4CompletionProvider extends DefaultCompletionProvider {
15009
+ readonly completionOptions: {
15010
+ triggerCharacters: string[];
15011
+ };
15012
+ protected completionForKeyword(context: CompletionContext, keyword: Keyword, acceptor: CompletionAcceptor): MaybePromise<void>;
15013
+ }
15014
+
15015
+ declare class LikeC4DocumentHighlightProvider extends DefaultDocumentHighlightProvider {
15016
+ /**
15017
+ * Override this method to determine the highlight kind of the given reference.
15018
+ */
15019
+ protected createDocumentHighlight(reference: ReferenceDescription): DocumentHighlight;
15020
+ }
15021
+
15022
+ declare class LikeC4DocumentLinkProvider implements DocumentLinkProvider {
15023
+ private services;
15024
+ constructor(services: LikeC4Services);
15025
+ getDocumentLinks(doc: LangiumDocument, _params: DocumentLinkParams): MaybePromise<DocumentLink[]>;
15026
+ resolveLink(doc: LangiumDocument, link: string): string;
15027
+ relativeLink(doc: LangiumDocument, link: string): string | null;
15028
+ }
15029
+
15742
15030
  /******************************************************************************
15743
15031
  * This file was generated by langium-cli 3.2.0.
15744
15032
  * DO NOT EDIT MANUALLY!
@@ -16316,6 +15604,8 @@ interface ViewRuleAutoLayout extends AstNode {
16316
15604
  readonly $container: DynamicViewBody | ElementViewBody;
16317
15605
  readonly $type: 'ViewRuleAutoLayout';
16318
15606
  direction: ViewLayoutDirection;
15607
+ nodeSep?: number;
15608
+ rankSep?: number;
16319
15609
  }
16320
15610
  declare const ViewRuleAutoLayout = "ViewRuleAutoLayout";
16321
15611
  interface ViewRuleStyle extends AstNode {
@@ -16521,7 +15811,7 @@ type ParsedElementStyle = {
16521
15811
  opacity?: number;
16522
15812
  };
16523
15813
  interface ParsedAstSpecification {
16524
- tags: Set<Tag$2>;
15814
+ tags: Set<Tag$1>;
16525
15815
  elements: Record<ElementKind$1, {
16526
15816
  technology?: string;
16527
15817
  notation?: string;
@@ -16546,7 +15836,7 @@ interface ParsedAstElement {
16546
15836
  title: string;
16547
15837
  description?: string;
16548
15838
  technology?: string;
16549
- tags?: NonEmptyArray<Tag$2>;
15839
+ tags?: NonEmptyArray<Tag$1>;
16550
15840
  links?: NonEmptyArray<ParsedLink>;
16551
15841
  style: ParsedElementStyle;
16552
15842
  metadata?: {
@@ -16559,7 +15849,7 @@ interface ParsedAstRelation {
16559
15849
  source: Fqn$1;
16560
15850
  target: Fqn$1;
16561
15851
  kind?: RelationshipKind$1;
16562
- tags?: NonEmptyArray<Tag$2>;
15852
+ tags?: NonEmptyArray<Tag$1>;
16563
15853
  title: string;
16564
15854
  description?: string;
16565
15855
  technology?: string;
@@ -16581,7 +15871,7 @@ interface ParsedAstElementView {
16581
15871
  astPath: string;
16582
15872
  title: string | null;
16583
15873
  description: string | null;
16584
- tags: NonEmptyArray<Tag$2> | null;
15874
+ tags: NonEmptyArray<Tag$1> | null;
16585
15875
  links: NonEmptyArray<ParsedLink> | null;
16586
15876
  rules: ViewRule$1[];
16587
15877
  manualLayout?: ViewManualLayout;
@@ -16592,7 +15882,7 @@ interface ParsedAstDynamicView {
16592
15882
  astPath: string;
16593
15883
  title: string | null;
16594
15884
  description: string | null;
16595
- tags: NonEmptyArray<Tag$2> | null;
15885
+ tags: NonEmptyArray<Tag$1> | null;
16596
15886
  links: NonEmptyArray<ParsedLink> | null;
16597
15887
  steps: DynamicViewStepOrParallel[];
16598
15888
  rules: Array<DynamicViewRule$1>;
@@ -16616,38 +15906,11 @@ interface LikeC4DocumentProps {
16616
15906
  c4Views?: ParsedAstView[];
16617
15907
  c4fqnIndex?: MultiMap<Fqn$1, DocFqnIndexAstNodeDescription>;
16618
15908
  }
16619
- interface LikeC4LangiumDocument extends Omit<LangiumDocument<LikeC4Grammar>, 'diagnostics'>, LikeC4DocumentProps {
16620
- }
16621
- interface FqnIndexedDocument extends Omit<LangiumDocument<LikeC4Grammar>, 'diagnostics'>, SetRequired<LikeC4DocumentProps, 'c4fqnIndex'> {
16622
- }
16623
- interface ParsedLikeC4LangiumDocument extends Omit<LangiumDocument<LikeC4Grammar>, 'diagnostics'>, Required<LikeC4DocumentProps> {
16624
- }
16625
-
16626
- declare class LikeC4CodeLensProvider implements CodeLensProvider {
16627
- private services;
16628
- constructor(services: LikeC4Services);
16629
- provideCodeLens(doc: LangiumDocument, _params: CodeLensParams, cancelToken?: CancellationToken): Promise<CodeLens[] | undefined>;
16630
- }
16631
-
16632
- declare class LikeC4CompletionProvider extends DefaultCompletionProvider {
16633
- readonly completionOptions: {
16634
- triggerCharacters: string[];
16635
- };
16636
- }
16637
-
16638
- declare class LikeC4DocumentHighlightProvider extends DefaultDocumentHighlightProvider {
16639
- /**
16640
- * Override this method to determine the highlight kind of the given reference.
16641
- */
16642
- protected createDocumentHighlight(reference: ReferenceDescription): DocumentHighlight;
15909
+ interface LikeC4LangiumDocument extends Omit<LangiumDocument<LikeC4Grammar>, 'diagnostics'>, LikeC4DocumentProps {
16643
15910
  }
16644
-
16645
- declare class LikeC4DocumentLinkProvider implements DocumentLinkProvider {
16646
- private services;
16647
- constructor(services: LikeC4Services);
16648
- getDocumentLinks(doc: LangiumDocument, _params: DocumentLinkParams): MaybePromise<DocumentLink[]>;
16649
- resolveLink(doc: LangiumDocument, link: string): string;
16650
- relativeLink(doc: LangiumDocument, link: string): string | null;
15911
+ interface FqnIndexedDocument extends Omit<LangiumDocument<LikeC4Grammar>, 'diagnostics'>, SetRequired<LikeC4DocumentProps, 'c4fqnIndex'> {
15912
+ }
15913
+ interface ParsedLikeC4LangiumDocument extends Omit<LangiumDocument<LikeC4Grammar>, 'diagnostics'>, Required<LikeC4DocumentProps> {
16651
15914
  }
16652
15915
 
16653
15916
  declare class LikeC4DocumentSymbolProvider implements DocumentSymbolProvider {
@@ -16680,6 +15943,98 @@ declare class LikeC4SemanticTokenProvider extends AbstractSemanticTokenProvider
16680
15943
  private highlightAstElement;
16681
15944
  private highlightView;
16682
15945
  }
15946
+ declare class FqnIndex {
15947
+ private services;
15948
+ protected langiumDocuments: LangiumDocuments;
15949
+ constructor(services: LikeC4Services);
15950
+ get documents(): Stream<FqnIndexedDocument>;
15951
+ private entries;
15952
+ getFqn(el: Element): Fqn$1 | null;
15953
+ byFqn(fqn: Fqn$1): Stream<AstNodeDescription>;
15954
+ directChildrenOf(parent: Fqn$1): Stream<AstNodeDescription>;
15955
+ /**
15956
+ * Returns descedant elements with unique names in the scope
15957
+ */
15958
+ uniqueDescedants(parent: Fqn$1): Stream<AstNodeDescription>;
15959
+ }
15960
+
15961
+ type ModelParsedListener$1 = (docs: URI[]) => void;
15962
+ declare class LikeC4ModelBuilder {
15963
+ private services;
15964
+ private langiumDocuments;
15965
+ private listeners;
15966
+ constructor(services: LikeC4Services);
15967
+ /**
15968
+ * WARNING:
15969
+ * This method is internal and should to be called only when all documents are known to be parsed.
15970
+ * Otherwise, the model may be incomplete.
15971
+ */
15972
+ unsafeSyncBuildModel(): ParsedLikeC4Model | null;
15973
+ buildModel(cancelToken?: CancellationToken): Promise<ParsedLikeC4Model | null>;
15974
+ private previousViews;
15975
+ /**
15976
+ * WARNING:
15977
+ * This method is internal and should to be called only when all documents are known to be parsed.
15978
+ * Otherwise, the model may be incomplete.
15979
+ */
15980
+ unsafeSyncBuildComputedModel(model: ParsedLikeC4Model): ComputedLikeC4Model;
15981
+ buildComputedModel(cancelToken?: CancellationToken): Promise<ComputedLikeC4Model | null>;
15982
+ computeView(viewId: ViewID$1, cancelToken?: CancellationToken): Promise<ComputedView | null>;
15983
+ onModelParsed(callback: ModelParsedListener$1): Disposable;
15984
+ private documents;
15985
+ private notifyListeners;
15986
+ }
15987
+
15988
+ declare class LikeC4ModelLocator {
15989
+ private services;
15990
+ private fqnIndex;
15991
+ private langiumDocuments;
15992
+ constructor(services: LikeC4Services);
15993
+ private documents;
15994
+ getParsedElement(astNode: Element): ParsedAstElement | null;
15995
+ locateElement(fqn: Fqn$1, _prop?: string): Location | null;
15996
+ locateRelation(relationId: RelationID$1): Location | null;
15997
+ locateViewAst(viewId: ViewID$1): {
15998
+ doc: ParsedLikeC4LangiumDocument;
15999
+ view: ParsedAstView;
16000
+ viewAst: LikeC4View;
16001
+ };
16002
+ locateView(viewId: ViewID$1): Location | null;
16003
+ }
16004
+ declare class LikeC4ModelParser {
16005
+ private services;
16006
+ private fqnIndex;
16007
+ constructor(services: LikeC4Services);
16008
+ parse(doc: LangiumDocument | LangiumDocument[]): ParsedLikeC4LangiumDocument[];
16009
+ protected parseLikeC4Document(_doc: FqnIndexedDocument): ParsedLikeC4LangiumDocument;
16010
+ private parseSpecification;
16011
+ private parseModel;
16012
+ private parseElement;
16013
+ private parseRelation;
16014
+ private parseViews;
16015
+ private parseViewRulePredicate;
16016
+ private parsePredicate;
16017
+ private parseElementExpressionsIterator;
16018
+ private parseElementPredicate;
16019
+ private parseElementExpr;
16020
+ private parseElementPredicateWith;
16021
+ private parseElementPredicateWhere;
16022
+ private parseRelationPredicate;
16023
+ private parseRelationPredicateWhere;
16024
+ private parseRelationPredicateWith;
16025
+ private parseRelationExpr;
16026
+ private parseViewRule;
16027
+ private parseViewManualLaout;
16028
+ private parseDynamicParallelSteps;
16029
+ private parseDynamicStep;
16030
+ private parseElementView;
16031
+ private parseDynamicElementView;
16032
+ protected resolveFqn(node: Element | ExtendElement): Fqn$1;
16033
+ private getAstNodePath;
16034
+ private getMetadata;
16035
+ private convertTags;
16036
+ private convertLinks;
16037
+ }
16683
16038
 
16684
16039
  declare class LikeC4ModelChanges {
16685
16040
  private services;
@@ -16797,97 +16152,63 @@ interface LikeC4AddedServices {
16797
16152
  shared?: LikeC4SharedServices;
16798
16153
  }
16799
16154
  type LikeC4Services = LangiumServices & LikeC4AddedServices;
16800
- declare class FqnIndex {
16801
- private services;
16802
- protected langiumDocuments: LangiumDocuments;
16803
- constructor(services: LikeC4Services);
16804
- get documents(): Stream<FqnIndexedDocument>;
16805
- private entries;
16806
- getFqn(el: Element): Fqn$1 | null;
16807
- byFqn(fqn: Fqn$1): Stream<AstNodeDescription>;
16808
- directChildrenOf(parent: Fqn$1): Stream<AstNodeDescription>;
16809
- /**
16810
- * Returns descedant elements with unique names in the scope
16811
- */
16812
- uniqueDescedants(parent: Fqn$1): Stream<AstNodeDescription>;
16813
- }
16814
16155
 
16815
- type ModelParsedListener$1 = (docs: URI[]) => void;
16816
- declare class LikeC4ModelBuilder {
16817
- private services;
16818
- private langiumDocuments;
16819
- private listeners;
16820
- constructor(services: LikeC4Services);
16821
- /**
16822
- * WARNING:
16823
- * This method is internal and should to be called only when all documents are known to be parsed.
16824
- * Otherwise, the model may be incomplete.
16825
- */
16826
- unsafeSyncBuildModel(): ParsedLikeC4Model | null;
16827
- buildModel(cancelToken?: CancellationToken): Promise<ParsedLikeC4Model | null>;
16828
- private previousViews;
16829
- /**
16830
- * WARNING:
16831
- * This method is internal and should to be called only when all documents are known to be parsed.
16832
- * Otherwise, the model may be incomplete.
16833
- */
16834
- unsafeSyncBuildComputedModel(model: ParsedLikeC4Model): ComputedLikeC4Model;
16835
- buildComputedModel(cancelToken?: CancellationToken): Promise<ComputedLikeC4Model | null>;
16836
- computeView(viewId: ViewID$1, cancelToken?: CancellationToken): Promise<ComputedView | null>;
16837
- onModelParsed(callback: ModelParsedListener$1): Disposable;
16838
- private documents;
16839
- private notifyListeners;
16156
+ /**
16157
+ * @hidden
16158
+ */
16159
+ type $keywords<T extends string> = {
16160
+ [key in T]: key;
16161
+ };
16162
+
16163
+ declare module 'ts-graphviz' {
16164
+ namespace ClusterSubgraphAttributeKey {
16165
+ interface $values extends $keywords<'likec4_type' | 'likec4_path' | 'likec4_id' | 'likec4_level' | 'likec4_depth'> {
16166
+ }
16167
+ }
16168
+ namespace NodeAttributeKey {
16169
+ interface $values extends $keywords<'likec4_type' | 'likec4_path' | 'likec4_id' | 'likec4_level'> {
16170
+ }
16171
+ }
16172
+ namespace EdgeAttributeKey {
16173
+ interface $values extends $keywords<'likec4_id'> {
16174
+ }
16175
+ }
16176
+ namespace Attribute {
16177
+ interface $keys extends $keywords<'likec4_type' | 'likec4_path' | 'likec4_id' | 'likec4_level' | 'likec4_depth'> {
16178
+ }
16179
+ interface $types {
16180
+ likec4_type: 'folder' | 'file' | 'view';
16181
+ likec4_path: string;
16182
+ likec4_id: string;
16183
+ likec4_level: number;
16184
+ likec4_depth: number;
16185
+ }
16186
+ }
16840
16187
  }
16188
+ type DotSource = Tagged<string, 'DotSource'>;
16841
16189
 
16842
- declare class LikeC4ModelLocator {
16843
- private services;
16844
- private fqnIndex;
16845
- private langiumDocuments;
16846
- constructor(services: LikeC4Services);
16847
- private documents;
16848
- getParsedElement(astNode: Element): ParsedAstElement | null;
16849
- locateElement(fqn: Fqn$1, _prop?: string): Location | null;
16850
- locateRelation(relationId: RelationID$1): Location | null;
16851
- locateViewAst(viewId: ViewID$1): {
16852
- doc: ParsedLikeC4LangiumDocument;
16853
- view: ParsedAstView;
16854
- viewAst: LikeC4View;
16855
- };
16856
- locateView(viewId: ViewID$1): Location | null;
16190
+ interface GraphvizPort {
16191
+ unflatten(dot: DotSource): Promise<DotSource>;
16192
+ acyclic(dot: DotSource): Promise<DotSource>;
16193
+ layoutJson(dot: DotSource): Promise<string>;
16194
+ svg(dot: DotSource): Promise<string>;
16857
16195
  }
16858
- declare class LikeC4ModelParser {
16859
- private services;
16860
- private fqnIndex;
16861
- constructor(services: LikeC4Services);
16862
- parse(doc: LangiumDocument | LangiumDocument[]): ParsedLikeC4LangiumDocument[];
16863
- protected parseLikeC4Document(_doc: FqnIndexedDocument): ParsedLikeC4LangiumDocument;
16864
- private parseSpecification;
16865
- private parseModel;
16866
- private parseElement;
16867
- private parseRelation;
16868
- private parseViews;
16869
- private parseViewRulePredicate;
16870
- private parsePredicate;
16871
- private parseElementExpressionsIterator;
16872
- private parseElementPredicate;
16873
- private parseElementExpr;
16874
- private parseElementPredicateWith;
16875
- private parseElementPredicateWhere;
16876
- private parseRelationPredicate;
16877
- private parseRelationPredicateWhere;
16878
- private parseRelationPredicateWith;
16879
- private parseRelationExpr;
16880
- private parseViewRule;
16881
- private parseViewManualLaout;
16882
- private parseDynamicParallelSteps;
16883
- private parseDynamicStep;
16884
- private parseElementView;
16885
- private parseDynamicElementView;
16886
- protected resolveFqn(node: Element | ExtendElement): Fqn$1;
16887
- private getAstNodePath;
16888
- private getMetadata;
16889
- private convertTags;
16890
- private convertLinks;
16196
+ type LayoutResult = {
16197
+ dot: DotSource;
16198
+ diagram: DiagramView;
16199
+ };
16200
+ declare class GraphvizLayouter {
16201
+ private graphviz;
16202
+ constructor(graphviz: GraphvizPort);
16203
+ get port(): GraphvizPort;
16204
+ changePort(graphviz: GraphvizPort): void;
16205
+ layout(view: ComputedView): Promise<LayoutResult>;
16206
+ svg(view: ComputedView): Promise<{
16207
+ svg: string;
16208
+ dot: DotSource;
16209
+ }>;
16210
+ dot(computedView: ComputedView): Promise<DotSource>;
16211
+ layoutOverviewGraph(views: ComputedView[]): Promise<OverviewGraph>;
16891
16212
  }
16892
16213
 
16893
16214
  // This definition file follows a somewhat unusual format. ESTree allows
@@ -17525,8 +16846,12 @@ type CliAddedServices = {
17525
16846
  type CliServices = LikeC4Services & CliAddedServices;
17526
16847
 
17527
16848
  type GraphvizOut = {
16849
+ dot: string;
16850
+ diagram: DiagramView;
16851
+ };
16852
+ type GraphvizSvgOut = {
17528
16853
  id: ViewID$1;
17529
- dot: DotSource;
16854
+ dot: string;
17530
16855
  svg: string;
17531
16856
  };
17532
16857
  declare class Views {
@@ -17538,9 +16863,9 @@ declare class Views {
17538
16863
  constructor(services: CliServices);
17539
16864
  private inflightRequest;
17540
16865
  computedViews(): Promise<ComputedView[]>;
17541
- layoutViews(): Promise<Array<Readonly<DotLayoutResult>>>;
16866
+ layoutViews(): Promise<Array<Readonly<GraphvizOut>>>;
17542
16867
  diagrams(): Promise<Array<DiagramView>>;
17543
- viewsAsGraphvizOut(): Promise<Array<GraphvizOut>>;
16868
+ viewsAsGraphvizOut(): Promise<Array<GraphvizSvgOut>>;
17544
16869
  overviewGraph(): Promise<OverviewGraph>;
17545
16870
  }
17546
16871
 
@@ -17560,9 +16885,10 @@ type LikeC4Options = {
17560
16885
  throwIfInvalid?: boolean;
17561
16886
  /**
17562
16887
  * Logger to use for the language service.
16888
+ * false - no output
17563
16889
  * @default 'default'
17564
16890
  */
17565
- logger?: Logger | 'vite' | 'default';
16891
+ logger?: Logger | 'vite' | 'default' | false;
17566
16892
  /**
17567
16893
  * Whether to use the `dot` binary for layouting or the WebAssembly version.
17568
16894
  * @default 'wasm'
@@ -17578,19 +16904,37 @@ declare class LikeC4 {
17578
16904
  * Prevents multiple instances of LikeC4 for the same workspace
17579
16905
  */
17580
16906
  private static likec4Instances;
17581
- static fromWorkspace(path: string, opts?: LikeC4Options): Promise<LikeC4>;
17582
- private cachedModel;
16907
+ /**
16908
+ * Initializes a LikeC4 instance from the specified workspace path.
16909
+ * By default in current folder
16910
+ */
16911
+ static fromWorkspace(path?: string, opts?: LikeC4Options): Promise<LikeC4>;
16912
+ private modelComputedRef;
16913
+ private modelLayoutedRef;
17583
16914
  private logger;
17584
16915
  private langiumDocuments;
17585
16916
  readonly views: Views;
17586
16917
  private constructor();
17587
- computed(): Promise<ComputedLikeC4Model>;
17588
- model(): LikeC4Model;
17589
16918
  /**
17590
16919
  * Diagram is a computed view, layouted using Graphviz
17591
16920
  * Used in React components
17592
16921
  */
17593
16922
  diagrams(): Promise<DiagramView[]>;
16923
+ /**
16924
+ * @deprecated use computedModel
16925
+ */
16926
+ model(): LikeC4Model.Computed;
16927
+ /**
16928
+ * Synchronously builds architecture model
16929
+ * Only compute views predicates {@link ComputedView} - i.e. no layout
16930
+ * Not ready for rendering, but enough to traverse
16931
+ */
16932
+ computedModel(): LikeC4Model.Computed;
16933
+ /**
16934
+ * Same as {@link computedModel()}, after applies layout
16935
+ * Ready for rendering
16936
+ */
16937
+ layoutedModel(): Promise<LikeC4Model.Layouted>;
17594
16938
  getErrors(): {
17595
16939
  message: string;
17596
16940
  line: number;
@@ -17609,8 +16953,11 @@ declare class LikeC4 {
17609
16953
  changed?: string;
17610
16954
  removed?: string;
17611
16955
  }): Promise<boolean>;
16956
+ /**
16957
+ * @returns a function to dispose the listener
16958
+ */
17612
16959
  onModelUpdate(listener: () => void): () => void;
17613
16960
  dispose(): void;
17614
16961
  }
17615
16962
 
17616
- export { type AutoLayoutDirection, type BBox, BorderStyles, type Color$1 as Color, type ComputedDynamicView, type ComputedEdge, type ComputedElementView, type ComputedLikeC4Model, type ComputedNode, type ComputedView, type DiagramEdge, type DiagramNode, type DiagramView, type DynamicView$1 as DynamicView, type EdgeId$1 as EdgeId, type Element$1 as Element, ElementColors, type ElementKind$1 as ElementKind, ElementShapes, type ElementView$1 as ElementView, type Fqn$1 as Fqn, type HexColorLiteral, LikeC4, LikeC4Model, type LikeC4View$1 as LikeC4View, LikeC4ViewModel, type NodeId, type ParsedLikeC4Model, type Point, type Relation$1 as Relation, type RelationExpr, type RelationID$1 as RelationID, RelationshipColors, StepEdgeId, type Tag$2 as Tag, type ThemeColor$1 as ThemeColor, type ViewID$1 as ViewID, type XYPoint, ancestorsFqn, commonAncestor, compareByFqnHierarchically, compareFqnHierarchically, compareRelations, defaultTheme, extractStep, hasAtLeast, invariant, isAncestor, isComputedDynamicView, isDescendantOf, isSameHierarchy, isStepEdgeId, nameFromFqn, nonNullable, nonexhaustive, notDescendantOf, parentFqn };
16963
+ export { type AutoLayoutDirection, type BBox, BorderStyles, type Color$1 as Color, type ComputedDynamicView, type ComputedEdge, type ComputedElementView, type ComputedLikeC4Model, type ComputedNode, type ComputedView, type DiagramEdge, type DiagramNode, type DiagramView, type DynamicView$1 as DynamicView, type EdgeId$1 as EdgeId, type Element$1 as Element, ElementColors, type ElementKind$1 as ElementKind, ElementShapes, type ElementView$1 as ElementView, type Fqn$1 as Fqn, type HexColorLiteral, type LayoutedLikeC4Model, LikeC4, LikeC4DiagramModel, LikeC4Model, type LikeC4View$1 as LikeC4View, LikeC4ViewModel, type NodeId, type ParsedLikeC4Model, type Point, type Relation$1 as Relation, type RelationExpr, type RelationID$1 as RelationID, RelationshipColors, StepEdgeId, type Tag$1 as Tag, type ThemeColor$1 as ThemeColor, type ViewID$1 as ViewID, type XYPoint, ancestorsFqn, commonAncestor, compareByFqnHierarchically, compareFqnHierarchically, compareRelations, defaultTheme, extractStep, hasAtLeast, invariant, isAncestor, isComputedDynamicView, isDescendantOf, isSameHierarchy, isStepEdgeId, nameFromFqn, nonNullable, nonexhaustive, parentFqn };