@diagc/cli 0.1.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 (874) hide show
  1. package/LICENSE +709 -0
  2. package/README.md +58 -0
  3. package/THIRD-PARTY-NOTICES.md +172 -0
  4. package/assets/studio/assets/caveat-cyrillic-500-normal-DLSfp5IU.woff +0 -0
  5. package/assets/studio/assets/caveat-cyrillic-500-normal-DpMZbbjM.woff2 +0 -0
  6. package/assets/studio/assets/caveat-cyrillic-700-normal-BIyejhEL.woff2 +0 -0
  7. package/assets/studio/assets/caveat-cyrillic-700-normal-Bhcx9qBB.woff +0 -0
  8. package/assets/studio/assets/caveat-cyrillic-ext-500-normal-DcrB4vVx.woff2 +0 -0
  9. package/assets/studio/assets/caveat-cyrillic-ext-500-normal-DqTXtm5N.woff +0 -0
  10. package/assets/studio/assets/caveat-cyrillic-ext-700-normal-CrK2-ngJ.woff2 +0 -0
  11. package/assets/studio/assets/caveat-cyrillic-ext-700-normal-DjFGiEhD.woff +0 -0
  12. package/assets/studio/assets/caveat-latin-500-normal-B9SDL8cy.woff2 +0 -0
  13. package/assets/studio/assets/caveat-latin-500-normal-Do9veZfZ.woff +0 -0
  14. package/assets/studio/assets/caveat-latin-700-normal-D8_1Nw6V.woff2 +0 -0
  15. package/assets/studio/assets/caveat-latin-700-normal-cPyBTTZN.woff +0 -0
  16. package/assets/studio/assets/caveat-latin-ext-500-normal-jKqJW7bC.woff2 +0 -0
  17. package/assets/studio/assets/caveat-latin-ext-500-normal-wUUXxlbS.woff +0 -0
  18. package/assets/studio/assets/caveat-latin-ext-700-normal-DFbRgDry.woff2 +0 -0
  19. package/assets/studio/assets/caveat-latin-ext-700-normal-DjJQd59I.woff +0 -0
  20. package/assets/studio/assets/index-BWKWtpKP.css +1 -0
  21. package/assets/studio/assets/index-Cz232yAT.js +108 -0
  22. package/assets/studio/assets/kalam-devanagari-400-normal-Dy6c0U2e.woff2 +0 -0
  23. package/assets/studio/assets/kalam-devanagari-400-normal-Dyzod-UE.woff +0 -0
  24. package/assets/studio/assets/kalam-devanagari-700-normal-B52CSkpd.woff +0 -0
  25. package/assets/studio/assets/kalam-devanagari-700-normal-BeU_-hjz.woff2 +0 -0
  26. package/assets/studio/assets/kalam-latin-400-normal-Bl-H2BUA.woff +0 -0
  27. package/assets/studio/assets/kalam-latin-400-normal-BthBl_aR.woff2 +0 -0
  28. package/assets/studio/assets/kalam-latin-700-normal-7TSuSrjP.woff +0 -0
  29. package/assets/studio/assets/kalam-latin-700-normal-D2H-9ISU.woff2 +0 -0
  30. package/assets/studio/assets/kalam-latin-ext-400-normal-AcQmRO9z.woff +0 -0
  31. package/assets/studio/assets/kalam-latin-ext-400-normal-DtcdGa4L.woff2 +0 -0
  32. package/assets/studio/assets/kalam-latin-ext-700-normal-BA-KJHgr.woff +0 -0
  33. package/assets/studio/assets/kalam-latin-ext-700-normal-CwgfRD_T.woff2 +0 -0
  34. package/assets/studio/index.html +13 -0
  35. package/assets/studio/library/aws/amazon-api-gateway.svg +1 -0
  36. package/assets/studio/library/aws/amazon-appflow.svg +1 -0
  37. package/assets/studio/library/aws/amazon-application-recovery-controller.svg +1 -0
  38. package/assets/studio/library/aws/amazon-athena.svg +1 -0
  39. package/assets/studio/library/aws/amazon-augmented-ai-a2i.svg +1 -0
  40. package/assets/studio/library/aws/amazon-aurora.svg +1 -0
  41. package/assets/studio/library/aws/amazon-bedrock-agentcore.svg +1 -0
  42. package/assets/studio/library/aws/amazon-bedrock.svg +1 -0
  43. package/assets/studio/library/aws/amazon-braket.svg +1 -0
  44. package/assets/studio/library/aws/amazon-chime-sdk.svg +1 -0
  45. package/assets/studio/library/aws/amazon-chime.svg +1 -0
  46. package/assets/studio/library/aws/amazon-cloud-directory.svg +1 -0
  47. package/assets/studio/library/aws/amazon-cloudfront.svg +1 -0
  48. package/assets/studio/library/aws/amazon-cloudsearch.svg +1 -0
  49. package/assets/studio/library/aws/amazon-cloudwatch.svg +1 -0
  50. package/assets/studio/library/aws/amazon-codecatalyst.svg +1 -0
  51. package/assets/studio/library/aws/amazon-codeguru.svg +1 -0
  52. package/assets/studio/library/aws/amazon-codewhisperer.svg +1 -0
  53. package/assets/studio/library/aws/amazon-cognito.svg +1 -0
  54. package/assets/studio/library/aws/amazon-comprehend-medical.svg +1 -0
  55. package/assets/studio/library/aws/amazon-comprehend.svg +1 -0
  56. package/assets/studio/library/aws/amazon-connect.svg +1 -0
  57. package/assets/studio/library/aws/amazon-corretto.svg +1 -0
  58. package/assets/studio/library/aws/amazon-data-firehose.svg +1 -0
  59. package/assets/studio/library/aws/amazon-datazone.svg +1 -0
  60. package/assets/studio/library/aws/amazon-dcv.svg +1 -0
  61. package/assets/studio/library/aws/amazon-detective.svg +1 -0
  62. package/assets/studio/library/aws/amazon-devops-guru.svg +1 -0
  63. package/assets/studio/library/aws/amazon-documentdb.svg +1 -0
  64. package/assets/studio/library/aws/amazon-dynamodb.svg +1 -0
  65. package/assets/studio/library/aws/amazon-ec2-auto-scaling.svg +1 -0
  66. package/assets/studio/library/aws/amazon-ec2-image-builder.svg +1 -0
  67. package/assets/studio/library/aws/amazon-ec2.svg +1 -0
  68. package/assets/studio/library/aws/amazon-ecs-anywhere.svg +1 -0
  69. package/assets/studio/library/aws/amazon-efs.svg +1 -0
  70. package/assets/studio/library/aws/amazon-eks-anywhere.svg +1 -0
  71. package/assets/studio/library/aws/amazon-eks-distro.svg +1 -0
  72. package/assets/studio/library/aws/amazon-elastic-block-store.svg +1 -0
  73. package/assets/studio/library/aws/amazon-elastic-container-registry.svg +1 -0
  74. package/assets/studio/library/aws/amazon-elastic-container-service.svg +1 -0
  75. package/assets/studio/library/aws/amazon-elastic-inference.svg +1 -0
  76. package/assets/studio/library/aws/amazon-elastic-kubernetes-service.svg +1 -0
  77. package/assets/studio/library/aws/amazon-elastic-vmware-service.svg +1 -0
  78. package/assets/studio/library/aws/amazon-elasticache.svg +1 -0
  79. package/assets/studio/library/aws/amazon-emr.svg +1 -0
  80. package/assets/studio/library/aws/amazon-eventbridge.svg +1 -0
  81. package/assets/studio/library/aws/amazon-file-cache.svg +1 -0
  82. package/assets/studio/library/aws/amazon-finspace.svg +1 -0
  83. package/assets/studio/library/aws/amazon-forecast.svg +1 -0
  84. package/assets/studio/library/aws/amazon-fraud-detector.svg +1 -0
  85. package/assets/studio/library/aws/amazon-fsx-for-lustre.svg +1 -0
  86. package/assets/studio/library/aws/amazon-fsx-for-netapp-ontap.svg +1 -0
  87. package/assets/studio/library/aws/amazon-fsx-for-openzfs.svg +1 -0
  88. package/assets/studio/library/aws/amazon-fsx-for-wfs.svg +1 -0
  89. package/assets/studio/library/aws/amazon-fsx.svg +1 -0
  90. package/assets/studio/library/aws/amazon-gamelift-servers.svg +1 -0
  91. package/assets/studio/library/aws/amazon-gamelift-streams.svg +1 -0
  92. package/assets/studio/library/aws/amazon-guardduty.svg +1 -0
  93. package/assets/studio/library/aws/amazon-inspector.svg +1 -0
  94. package/assets/studio/library/aws/amazon-interactive-video-service.svg +1 -0
  95. package/assets/studio/library/aws/amazon-kendra.svg +1 -0
  96. package/assets/studio/library/aws/amazon-keyspaces.svg +1 -0
  97. package/assets/studio/library/aws/amazon-kinesis-data-streams.svg +1 -0
  98. package/assets/studio/library/aws/amazon-kinesis-video-streams.svg +1 -0
  99. package/assets/studio/library/aws/amazon-kinesis.svg +1 -0
  100. package/assets/studio/library/aws/amazon-lex.svg +1 -0
  101. package/assets/studio/library/aws/amazon-lightsail-for-research.svg +1 -0
  102. package/assets/studio/library/aws/amazon-lightsail.svg +1 -0
  103. package/assets/studio/library/aws/amazon-location-service.svg +1 -0
  104. package/assets/studio/library/aws/amazon-lookout-for-equipment.svg +1 -0
  105. package/assets/studio/library/aws/amazon-lookout-for-vision.svg +1 -0
  106. package/assets/studio/library/aws/amazon-macie.svg +1 -0
  107. package/assets/studio/library/aws/amazon-managed-blockchain.svg +1 -0
  108. package/assets/studio/library/aws/amazon-managed-grafana.svg +1 -0
  109. package/assets/studio/library/aws/amazon-managed-service-for-apache-flink.svg +1 -0
  110. package/assets/studio/library/aws/amazon-managed-service-for-prometheus.svg +1 -0
  111. package/assets/studio/library/aws/amazon-managed-streaming-for-apache-kafka.svg +1 -0
  112. package/assets/studio/library/aws/amazon-managed-workflows-for-apache-airflow.svg +1 -0
  113. package/assets/studio/library/aws/amazon-memorydb.svg +1 -0
  114. package/assets/studio/library/aws/amazon-monitron.svg +1 -0
  115. package/assets/studio/library/aws/amazon-mq.svg +1 -0
  116. package/assets/studio/library/aws/amazon-neptune.svg +1 -0
  117. package/assets/studio/library/aws/amazon-nova.svg +1 -0
  118. package/assets/studio/library/aws/amazon-opensearch-service.svg +1 -0
  119. package/assets/studio/library/aws/amazon-personalize.svg +1 -0
  120. package/assets/studio/library/aws/amazon-pinpoint-apis.svg +1 -0
  121. package/assets/studio/library/aws/amazon-pinpoint.svg +1 -0
  122. package/assets/studio/library/aws/amazon-polly.svg +1 -0
  123. package/assets/studio/library/aws/amazon-q.svg +1 -0
  124. package/assets/studio/library/aws/amazon-quick.svg +1 -0
  125. package/assets/studio/library/aws/amazon-rds.svg +1 -0
  126. package/assets/studio/library/aws/amazon-redshift.svg +1 -0
  127. package/assets/studio/library/aws/amazon-rekognition.svg +1 -0
  128. package/assets/studio/library/aws/amazon-route-53.svg +1 -0
  129. package/assets/studio/library/aws/amazon-s3-on-outposts.svg +1 -0
  130. package/assets/studio/library/aws/amazon-sagemaker-ai.svg +1 -0
  131. package/assets/studio/library/aws/amazon-sagemaker-ground-truth.svg +1 -0
  132. package/assets/studio/library/aws/amazon-sagemaker-studio-lab.svg +1 -0
  133. package/assets/studio/library/aws/amazon-sagemaker.svg +1 -0
  134. package/assets/studio/library/aws/amazon-security-lake.svg +1 -0
  135. package/assets/studio/library/aws/amazon-simple-email-service.svg +1 -0
  136. package/assets/studio/library/aws/amazon-simple-notification-service.svg +1 -0
  137. package/assets/studio/library/aws/amazon-simple-queue-service.svg +1 -0
  138. package/assets/studio/library/aws/amazon-simple-storage-service-glacier.svg +1 -0
  139. package/assets/studio/library/aws/amazon-simple-storage-service.svg +1 -0
  140. package/assets/studio/library/aws/amazon-textract.svg +1 -0
  141. package/assets/studio/library/aws/amazon-timestream.svg +1 -0
  142. package/assets/studio/library/aws/amazon-transcribe.svg +1 -0
  143. package/assets/studio/library/aws/amazon-translate.svg +1 -0
  144. package/assets/studio/library/aws/amazon-verified-permissions.svg +1 -0
  145. package/assets/studio/library/aws/amazon-virtual-private-cloud.svg +1 -0
  146. package/assets/studio/library/aws/amazon-vpc-lattice.svg +1 -0
  147. package/assets/studio/library/aws/amazon-workdocs-sdk.svg +1 -0
  148. package/assets/studio/library/aws/amazon-workdocs.svg +1 -0
  149. package/assets/studio/library/aws/amazon-workmail.svg +1 -0
  150. package/assets/studio/library/aws/amazon-workspaces.svg +1 -0
  151. package/assets/studio/library/aws/apache-mxnet-on-aws.svg +1 -0
  152. package/assets/studio/library/aws/api-gateway.svg +1 -0
  153. package/assets/studio/library/aws/aws-activate.svg +1 -0
  154. package/assets/studio/library/aws/aws-amplify.svg +1 -0
  155. package/assets/studio/library/aws/aws-app-mesh.svg +1 -0
  156. package/assets/studio/library/aws/aws-app-runner.svg +1 -0
  157. package/assets/studio/library/aws/aws-app-studio.svg +1 -0
  158. package/assets/studio/library/aws/aws-appconfig.svg +1 -0
  159. package/assets/studio/library/aws/aws-appfabric.svg +1 -0
  160. package/assets/studio/library/aws/aws-application-auto-scaling.svg +1 -0
  161. package/assets/studio/library/aws/aws-application-discovery-service.svg +1 -0
  162. package/assets/studio/library/aws/aws-application-migration-service.svg +1 -0
  163. package/assets/studio/library/aws/aws-appsync.svg +1 -0
  164. package/assets/studio/library/aws/aws-artifact.svg +1 -0
  165. package/assets/studio/library/aws/aws-audit-manager.svg +1 -0
  166. package/assets/studio/library/aws/aws-auto-scaling.svg +1 -0
  167. package/assets/studio/library/aws/aws-b2b-data-interchange.svg +1 -0
  168. package/assets/studio/library/aws/aws-backint-agent.svg +1 -0
  169. package/assets/studio/library/aws/aws-backup.svg +1 -0
  170. package/assets/studio/library/aws/aws-batch.svg +1 -0
  171. package/assets/studio/library/aws/aws-billing-conductor.svg +1 -0
  172. package/assets/studio/library/aws/aws-budgets.svg +1 -0
  173. package/assets/studio/library/aws/aws-certificate-manager.svg +1 -0
  174. package/assets/studio/library/aws/aws-chatbot.svg +1 -0
  175. package/assets/studio/library/aws/aws-clean-rooms.svg +1 -0
  176. package/assets/studio/library/aws/aws-client-vpn.svg +1 -0
  177. package/assets/studio/library/aws/aws-cloud-control-api.svg +1 -0
  178. package/assets/studio/library/aws/aws-cloud-development-kit.svg +1 -0
  179. package/assets/studio/library/aws/aws-cloud-map.svg +1 -0
  180. package/assets/studio/library/aws/aws-cloud-wan.svg +1 -0
  181. package/assets/studio/library/aws/aws-cloud9.svg +1 -0
  182. package/assets/studio/library/aws/aws-cloudformation.svg +1 -0
  183. package/assets/studio/library/aws/aws-cloudhsm.svg +1 -0
  184. package/assets/studio/library/aws/aws-cloudshell.svg +1 -0
  185. package/assets/studio/library/aws/aws-cloudtrail.svg +1 -0
  186. package/assets/studio/library/aws/aws-codeartifact.svg +1 -0
  187. package/assets/studio/library/aws/aws-codebuild.svg +1 -0
  188. package/assets/studio/library/aws/aws-codecommit.svg +1 -0
  189. package/assets/studio/library/aws/aws-codedeploy.svg +1 -0
  190. package/assets/studio/library/aws/aws-codepipeline.svg +1 -0
  191. package/assets/studio/library/aws/aws-command-line-interface.svg +1 -0
  192. package/assets/studio/library/aws/aws-compute-optimizer.svg +1 -0
  193. package/assets/studio/library/aws/aws-config.svg +1 -0
  194. package/assets/studio/library/aws/aws-console-mobile-application.svg +1 -0
  195. package/assets/studio/library/aws/aws-control-tower.svg +1 -0
  196. package/assets/studio/library/aws/aws-cost-and-usage-report.svg +1 -0
  197. package/assets/studio/library/aws/aws-cost-explorer.svg +1 -0
  198. package/assets/studio/library/aws/aws-data-exchange.svg +1 -0
  199. package/assets/studio/library/aws/aws-data-transfer-terminal.svg +1 -0
  200. package/assets/studio/library/aws/aws-database-migration-service.svg +1 -0
  201. package/assets/studio/library/aws/aws-datasync.svg +1 -0
  202. package/assets/studio/library/aws/aws-deadline-cloud.svg +1 -0
  203. package/assets/studio/library/aws/aws-deep-learning-amis.svg +1 -0
  204. package/assets/studio/library/aws/aws-deep-learning-containers.svg +1 -0
  205. package/assets/studio/library/aws/aws-deepracer.svg +1 -0
  206. package/assets/studio/library/aws/aws-device-farm.svg +1 -0
  207. package/assets/studio/library/aws/aws-devops-agent.svg +1 -0
  208. package/assets/studio/library/aws/aws-direct-connect.svg +1 -0
  209. package/assets/studio/library/aws/aws-directory-service.svg +1 -0
  210. package/assets/studio/library/aws/aws-distro-for-opentelemetry.svg +1 -0
  211. package/assets/studio/library/aws/aws-elastic-beanstalk.svg +1 -0
  212. package/assets/studio/library/aws/aws-elastic-disaster-recovery.svg +1 -0
  213. package/assets/studio/library/aws/aws-elemental-appliances-and-software.svg +1 -0
  214. package/assets/studio/library/aws/aws-elemental-conductor.svg +1 -0
  215. package/assets/studio/library/aws/aws-elemental-delta.svg +1 -0
  216. package/assets/studio/library/aws/aws-elemental-inference.svg +1 -0
  217. package/assets/studio/library/aws/aws-elemental-link.svg +1 -0
  218. package/assets/studio/library/aws/aws-elemental-live.svg +1 -0
  219. package/assets/studio/library/aws/aws-elemental-mediaconnect.svg +1 -0
  220. package/assets/studio/library/aws/aws-elemental-mediaconvert.svg +1 -0
  221. package/assets/studio/library/aws/aws-elemental-medialive.svg +1 -0
  222. package/assets/studio/library/aws/aws-elemental-mediapackage.svg +1 -0
  223. package/assets/studio/library/aws/aws-elemental-mediastore.svg +1 -0
  224. package/assets/studio/library/aws/aws-elemental-mediatailor.svg +1 -0
  225. package/assets/studio/library/aws/aws-elemental-server.svg +1 -0
  226. package/assets/studio/library/aws/aws-end-user-messaging.svg +1 -0
  227. package/assets/studio/library/aws/aws-entity-resolution.svg +1 -0
  228. package/assets/studio/library/aws/aws-express-workflows.svg +1 -0
  229. package/assets/studio/library/aws/aws-fargate.svg +1 -0
  230. package/assets/studio/library/aws/aws-fault-injection-service.svg +1 -0
  231. package/assets/studio/library/aws/aws-finops-agent.svg +1 -0
  232. package/assets/studio/library/aws/aws-firewall-manager.svg +1 -0
  233. package/assets/studio/library/aws/aws-global-accelerator.svg +1 -0
  234. package/assets/studio/library/aws/aws-glue-databrew.svg +1 -0
  235. package/assets/studio/library/aws/aws-glue.svg +1 -0
  236. package/assets/studio/library/aws/aws-ground-station.svg +1 -0
  237. package/assets/studio/library/aws/aws-health-dashboard.svg +1 -0
  238. package/assets/studio/library/aws/aws-healthimaging.svg +1 -0
  239. package/assets/studio/library/aws/aws-healthlake.svg +1 -0
  240. package/assets/studio/library/aws/aws-healthomics.svg +1 -0
  241. package/assets/studio/library/aws/aws-healthscribe.svg +1 -0
  242. package/assets/studio/library/aws/aws-iam-identity-center.svg +1 -0
  243. package/assets/studio/library/aws/aws-identity-and-access-management.svg +1 -0
  244. package/assets/studio/library/aws/aws-infrastructure-composer.svg +1 -0
  245. package/assets/studio/library/aws/aws-interconnect.svg +1 -0
  246. package/assets/studio/library/aws/aws-iot-core.svg +1 -0
  247. package/assets/studio/library/aws/aws-iot-device-defender.svg +1 -0
  248. package/assets/studio/library/aws/aws-iot-device-management.svg +1 -0
  249. package/assets/studio/library/aws/aws-iot-events.svg +1 -0
  250. package/assets/studio/library/aws/aws-iot-expresslink.svg +1 -0
  251. package/assets/studio/library/aws/aws-iot-fleetwise.svg +1 -0
  252. package/assets/studio/library/aws/aws-iot-greengrass.svg +1 -0
  253. package/assets/studio/library/aws/aws-iot-sitewise.svg +1 -0
  254. package/assets/studio/library/aws/aws-iot-twinmaker.svg +1 -0
  255. package/assets/studio/library/aws/aws-iq.svg +1 -0
  256. package/assets/studio/library/aws/aws-key-management-service.svg +1 -0
  257. package/assets/studio/library/aws/aws-lake-formation.svg +1 -0
  258. package/assets/studio/library/aws/aws-lambda.svg +1 -0
  259. package/assets/studio/library/aws/aws-launch-wizard.svg +1 -0
  260. package/assets/studio/library/aws/aws-license-manager.svg +1 -0
  261. package/assets/studio/library/aws/aws-local-zones.svg +1 -0
  262. package/assets/studio/library/aws/aws-mainframe-modernization.svg +1 -0
  263. package/assets/studio/library/aws/aws-managed-services.svg +1 -0
  264. package/assets/studio/library/aws/aws-management-console.svg +1 -0
  265. package/assets/studio/library/aws/aws-marketplace-dark.svg +1 -0
  266. package/assets/studio/library/aws/aws-marketplace-light.svg +1 -0
  267. package/assets/studio/library/aws/aws-migration-evaluator.svg +1 -0
  268. package/assets/studio/library/aws/aws-network-firewall.svg +1 -0
  269. package/assets/studio/library/aws/aws-neuron.svg +1 -0
  270. package/assets/studio/library/aws/aws-nitro-enclaves.svg +1 -0
  271. package/assets/studio/library/aws/aws-organizations.svg +1 -0
  272. package/assets/studio/library/aws/aws-outposts-family.svg +1 -0
  273. package/assets/studio/library/aws/aws-outposts-rack.svg +1 -0
  274. package/assets/studio/library/aws/aws-outposts-servers.svg +1 -0
  275. package/assets/studio/library/aws/aws-panorama.svg +1 -0
  276. package/assets/studio/library/aws/aws-parallel-cluster.svg +1 -0
  277. package/assets/studio/library/aws/aws-parallel-computing-service.svg +1 -0
  278. package/assets/studio/library/aws/aws-partner-central.svg +1 -0
  279. package/assets/studio/library/aws/aws-payment-cryptography.svg +1 -0
  280. package/assets/studio/library/aws/aws-private-certificate-authority.svg +1 -0
  281. package/assets/studio/library/aws/aws-privatelink.svg +1 -0
  282. package/assets/studio/library/aws/aws-professional-services.svg +1 -0
  283. package/assets/studio/library/aws/aws-proton.svg +1 -0
  284. package/assets/studio/library/aws/aws-repost-private.svg +1 -0
  285. package/assets/studio/library/aws/aws-repost.svg +1 -0
  286. package/assets/studio/library/aws/aws-resilience-hub.svg +1 -0
  287. package/assets/studio/library/aws/aws-resource-access-manager.svg +1 -0
  288. package/assets/studio/library/aws/aws-resource-explorer.svg +1 -0
  289. package/assets/studio/library/aws/aws-rtb-fabric.svg +1 -0
  290. package/assets/studio/library/aws/aws-secrets-manager.svg +1 -0
  291. package/assets/studio/library/aws/aws-security-agent.svg +1 -0
  292. package/assets/studio/library/aws/aws-security-hub.svg +1 -0
  293. package/assets/studio/library/aws/aws-security-incident-response.svg +1 -0
  294. package/assets/studio/library/aws/aws-serverless-application-repository.svg +1 -0
  295. package/assets/studio/library/aws/aws-service-catalog.svg +1 -0
  296. package/assets/studio/library/aws/aws-service-management-connector.svg +1 -0
  297. package/assets/studio/library/aws/aws-shield.svg +1 -0
  298. package/assets/studio/library/aws/aws-signer.svg +1 -0
  299. package/assets/studio/library/aws/aws-simspace-weaver.svg +1 -0
  300. package/assets/studio/library/aws/aws-site-to-site-vpn.svg +1 -0
  301. package/assets/studio/library/aws/aws-snowball-edge.svg +1 -0
  302. package/assets/studio/library/aws/aws-snowball.svg +1 -0
  303. package/assets/studio/library/aws/aws-step-functions.svg +1 -0
  304. package/assets/studio/library/aws/aws-storage-gateway.svg +1 -0
  305. package/assets/studio/library/aws/aws-supply-chain.svg +1 -0
  306. package/assets/studio/library/aws/aws-support.svg +1 -0
  307. package/assets/studio/library/aws/aws-sustainability.svg +1 -0
  308. package/assets/studio/library/aws/aws-systems-manager.svg +1 -0
  309. package/assets/studio/library/aws/aws-telco-network-builder.svg +1 -0
  310. package/assets/studio/library/aws/aws-thinkbox-deadline.svg +1 -0
  311. package/assets/studio/library/aws/aws-thinkbox-frost.svg +1 -0
  312. package/assets/studio/library/aws/aws-thinkbox-krakatoa.svg +1 -0
  313. package/assets/studio/library/aws/aws-thinkbox-stoke.svg +1 -0
  314. package/assets/studio/library/aws/aws-thinkbox-xmesh.svg +1 -0
  315. package/assets/studio/library/aws/aws-tools-and-sdks.svg +1 -0
  316. package/assets/studio/library/aws/aws-training-certification.svg +1 -0
  317. package/assets/studio/library/aws/aws-transfer-family.svg +1 -0
  318. package/assets/studio/library/aws/aws-transform.svg +1 -0
  319. package/assets/studio/library/aws/aws-transit-gateway.svg +1 -0
  320. package/assets/studio/library/aws/aws-trusted-advisor.svg +1 -0
  321. package/assets/studio/library/aws/aws-user-notifications.svg +1 -0
  322. package/assets/studio/library/aws/aws-verified-access.svg +1 -0
  323. package/assets/studio/library/aws/aws-waf.svg +1 -0
  324. package/assets/studio/library/aws/aws-wavelength.svg +1 -0
  325. package/assets/studio/library/aws/aws-well-architected-tool.svg +1 -0
  326. package/assets/studio/library/aws/aws-wickr.svg +1 -0
  327. package/assets/studio/library/aws/aws-x-ray.svg +1 -0
  328. package/assets/studio/library/aws/bottlerocket.svg +1 -0
  329. package/assets/studio/library/aws/cloudwatch.svg +1 -0
  330. package/assets/studio/library/aws/dynamodb.svg +1 -0
  331. package/assets/studio/library/aws/elastic-fabric-adapter.svg +1 -0
  332. package/assets/studio/library/aws/elastic-load-balancing.svg +1 -0
  333. package/assets/studio/library/aws/freertos.svg +1 -0
  334. package/assets/studio/library/aws/lambda.svg +1 -0
  335. package/assets/studio/library/aws/open-3d-engine.svg +1 -0
  336. package/assets/studio/library/aws/oracle-database-at-aws.svg +1 -0
  337. package/assets/studio/library/aws/pytorch-on-aws.svg +1 -0
  338. package/assets/studio/library/aws/red-hat-openshift-service-on-aws.svg +1 -0
  339. package/assets/studio/library/aws/reserved-instance-reporting.svg +1 -0
  340. package/assets/studio/library/aws/s3.svg +1 -0
  341. package/assets/studio/library/aws/savings-plans.svg +1 -0
  342. package/assets/studio/library/aws/sns.svg +1 -0
  343. package/assets/studio/library/aws/tensorflow-on-aws.svg +1 -0
  344. package/assets/studio/library/aws-categories/analytics.svg +1 -0
  345. package/assets/studio/library/aws-categories/application-integration.svg +1 -0
  346. package/assets/studio/library/aws-categories/artificial-intelligence.svg +1 -0
  347. package/assets/studio/library/aws-categories/blockchain.svg +1 -0
  348. package/assets/studio/library/aws-categories/business-applications.svg +1 -0
  349. package/assets/studio/library/aws-categories/cloud-financial-management.svg +1 -0
  350. package/assets/studio/library/aws-categories/compute.svg +1 -0
  351. package/assets/studio/library/aws-categories/containers.svg +1 -0
  352. package/assets/studio/library/aws-categories/customer-enablement.svg +1 -0
  353. package/assets/studio/library/aws-categories/customer-experience.svg +1 -0
  354. package/assets/studio/library/aws-categories/databases.svg +1 -0
  355. package/assets/studio/library/aws-categories/developer-tools.svg +1 -0
  356. package/assets/studio/library/aws-categories/end-user-computing.svg +1 -0
  357. package/assets/studio/library/aws-categories/front-end-web-mobile.svg +1 -0
  358. package/assets/studio/library/aws-categories/games.svg +1 -0
  359. package/assets/studio/library/aws-categories/internet-of-things.svg +1 -0
  360. package/assets/studio/library/aws-categories/management-tools.svg +1 -0
  361. package/assets/studio/library/aws-categories/media-services.svg +1 -0
  362. package/assets/studio/library/aws-categories/migration-modernization.svg +1 -0
  363. package/assets/studio/library/aws-categories/multicloud-and-hybrid.svg +1 -0
  364. package/assets/studio/library/aws-categories/networking-content-delivery.svg +1 -0
  365. package/assets/studio/library/aws-categories/quantum-technologies.svg +1 -0
  366. package/assets/studio/library/aws-categories/satellite.svg +1 -0
  367. package/assets/studio/library/aws-categories/security-identity.svg +1 -0
  368. package/assets/studio/library/aws-categories/serverless.svg +1 -0
  369. package/assets/studio/library/aws-categories/storage.svg +1 -0
  370. package/assets/studio/library/aws-groups/auto-scaling-group.svg +1 -0
  371. package/assets/studio/library/aws-groups/aws-account.svg +1 -0
  372. package/assets/studio/library/aws-groups/aws-cloud-dark.svg +1 -0
  373. package/assets/studio/library/aws-groups/aws-cloud-logo-dark.svg +1 -0
  374. package/assets/studio/library/aws-groups/aws-cloud-logo.svg +1 -0
  375. package/assets/studio/library/aws-groups/aws-cloud.svg +1 -0
  376. package/assets/studio/library/aws-groups/aws-iot-greengrass-deployment.svg +1 -0
  377. package/assets/studio/library/aws-groups/corporate-data-center.svg +1 -0
  378. package/assets/studio/library/aws-groups/ec2-instance-contents.svg +1 -0
  379. package/assets/studio/library/aws-groups/private-subnet.svg +1 -0
  380. package/assets/studio/library/aws-groups/public-subnet.svg +1 -0
  381. package/assets/studio/library/aws-groups/region.svg +1 -0
  382. package/assets/studio/library/aws-groups/server-contents.svg +1 -0
  383. package/assets/studio/library/aws-groups/spot-fleet.svg +1 -0
  384. package/assets/studio/library/aws-groups/virtual-private-cloud-vpc.svg +1 -0
  385. package/assets/studio/library/aws-resources/amazon-api-gateway-endpoint.svg +1 -0
  386. package/assets/studio/library/aws-resources/amazon-athena-data-source-connectors.svg +1 -0
  387. package/assets/studio/library/aws-resources/amazon-aurora-amazon-aurora-instance-alternate.svg +1 -0
  388. package/assets/studio/library/aws-resources/amazon-aurora-amazon-rds-instance-aternate.svg +1 -0
  389. package/assets/studio/library/aws-resources/amazon-aurora-amazon-rds-instance.svg +1 -0
  390. package/assets/studio/library/aws-resources/amazon-aurora-instance.svg +1 -0
  391. package/assets/studio/library/aws-resources/amazon-aurora-mariadb-instance-alternate.svg +1 -0
  392. package/assets/studio/library/aws-resources/amazon-aurora-mariadb-instance.svg +1 -0
  393. package/assets/studio/library/aws-resources/amazon-aurora-mysql-instance-alternate.svg +1 -0
  394. package/assets/studio/library/aws-resources/amazon-aurora-mysql-instance.svg +1 -0
  395. package/assets/studio/library/aws-resources/amazon-aurora-oracle-instance-alternate.svg +1 -0
  396. package/assets/studio/library/aws-resources/amazon-aurora-oracle-instance.svg +1 -0
  397. package/assets/studio/library/aws-resources/amazon-aurora-piops-instance.svg +1 -0
  398. package/assets/studio/library/aws-resources/amazon-aurora-postgresql-instance-alternate.svg +1 -0
  399. package/assets/studio/library/aws-resources/amazon-aurora-postgresql-instance.svg +1 -0
  400. package/assets/studio/library/aws-resources/amazon-aurora-sql-server-instance-alternate.svg +1 -0
  401. package/assets/studio/library/aws-resources/amazon-aurora-sql-server-instance.svg +1 -0
  402. package/assets/studio/library/aws-resources/amazon-aurora-trusted-language-extensions-for-postgresql.svg +1 -0
  403. package/assets/studio/library/aws-resources/amazon-braket-chandelier.svg +1 -0
  404. package/assets/studio/library/aws-resources/amazon-braket-chip.svg +1 -0
  405. package/assets/studio/library/aws-resources/amazon-braket-embedded-simulator.svg +1 -0
  406. package/assets/studio/library/aws-resources/amazon-braket-managed-simulator.svg +1 -0
  407. package/assets/studio/library/aws-resources/amazon-braket-noise-simulator.svg +1 -0
  408. package/assets/studio/library/aws-resources/amazon-braket-qpu.svg +1 -0
  409. package/assets/studio/library/aws-resources/amazon-braket-simulator-1.svg +1 -0
  410. package/assets/studio/library/aws-resources/amazon-braket-simulator-2.svg +1 -0
  411. package/assets/studio/library/aws-resources/amazon-braket-simulator-3.svg +1 -0
  412. package/assets/studio/library/aws-resources/amazon-braket-simulator-4.svg +1 -0
  413. package/assets/studio/library/aws-resources/amazon-braket-simulator.svg +1 -0
  414. package/assets/studio/library/aws-resources/amazon-braket-state-vector.svg +1 -0
  415. package/assets/studio/library/aws-resources/amazon-braket-tensor-network.svg +1 -0
  416. package/assets/studio/library/aws-resources/amazon-cloudfront-download-distribution.svg +1 -0
  417. package/assets/studio/library/aws-resources/amazon-cloudfront-edge-location.svg +1 -0
  418. package/assets/studio/library/aws-resources/amazon-cloudfront-functions.svg +1 -0
  419. package/assets/studio/library/aws-resources/amazon-cloudfront-streaming-distribution.svg +1 -0
  420. package/assets/studio/library/aws-resources/amazon-cloudsearch-search-documents.svg +1 -0
  421. package/assets/studio/library/aws-resources/amazon-cloudwatch-alarm.svg +1 -0
  422. package/assets/studio/library/aws-resources/amazon-cloudwatch-cross-account-observability.svg +1 -0
  423. package/assets/studio/library/aws-resources/amazon-cloudwatch-data-protection.svg +1 -0
  424. package/assets/studio/library/aws-resources/amazon-cloudwatch-event-event-based.svg +1 -0
  425. package/assets/studio/library/aws-resources/amazon-cloudwatch-event-time-based.svg +1 -0
  426. package/assets/studio/library/aws-resources/amazon-cloudwatch-evidently.svg +1 -0
  427. package/assets/studio/library/aws-resources/amazon-cloudwatch-logs.svg +1 -0
  428. package/assets/studio/library/aws-resources/amazon-cloudwatch-metrics-insights.svg +1 -0
  429. package/assets/studio/library/aws-resources/amazon-cloudwatch-rule.svg +1 -0
  430. package/assets/studio/library/aws-resources/amazon-cloudwatch-rum.svg +1 -0
  431. package/assets/studio/library/aws-resources/amazon-cloudwatch-synthetics.svg +1 -0
  432. package/assets/studio/library/aws-resources/amazon-datazone-business-data-catalog.svg +1 -0
  433. package/assets/studio/library/aws-resources/amazon-datazone-data-portal.svg +1 -0
  434. package/assets/studio/library/aws-resources/amazon-datazone-data-projects.svg +1 -0
  435. package/assets/studio/library/aws-resources/amazon-devops-guru-insights.svg +1 -0
  436. package/assets/studio/library/aws-resources/amazon-documentdb-elastic-clusters.svg +1 -0
  437. package/assets/studio/library/aws-resources/amazon-dynamodb-amazon-dynamodb-accelerator.svg +1 -0
  438. package/assets/studio/library/aws-resources/amazon-dynamodb-attribute.svg +1 -0
  439. package/assets/studio/library/aws-resources/amazon-dynamodb-attributes.svg +1 -0
  440. package/assets/studio/library/aws-resources/amazon-dynamodb-global-secondary-index.svg +1 -0
  441. package/assets/studio/library/aws-resources/amazon-dynamodb-item.svg +1 -0
  442. package/assets/studio/library/aws-resources/amazon-dynamodb-items.svg +1 -0
  443. package/assets/studio/library/aws-resources/amazon-dynamodb-standard-access-table-class.svg +1 -0
  444. package/assets/studio/library/aws-resources/amazon-dynamodb-standard-infrequent-access-table-class.svg +1 -0
  445. package/assets/studio/library/aws-resources/amazon-dynamodb-stream.svg +1 -0
  446. package/assets/studio/library/aws-resources/amazon-dynamodb-table.svg +1 -0
  447. package/assets/studio/library/aws-resources/amazon-ec2-ami.svg +1 -0
  448. package/assets/studio/library/aws-resources/amazon-ec2-auto-scaling.svg +1 -0
  449. package/assets/studio/library/aws-resources/amazon-ec2-aws-microservice-extractor-for-net.svg +1 -0
  450. package/assets/studio/library/aws-resources/amazon-ec2-db-instance.svg +1 -0
  451. package/assets/studio/library/aws-resources/amazon-ec2-elastic-ip-address.svg +1 -0
  452. package/assets/studio/library/aws-resources/amazon-ec2-instance-with-cloudwatch.svg +1 -0
  453. package/assets/studio/library/aws-resources/amazon-ec2-instance.svg +1 -0
  454. package/assets/studio/library/aws-resources/amazon-ec2-instances.svg +1 -0
  455. package/assets/studio/library/aws-resources/amazon-ec2-rescue.svg +1 -0
  456. package/assets/studio/library/aws-resources/amazon-ec2-spot-instance.svg +1 -0
  457. package/assets/studio/library/aws-resources/amazon-elastic-block-store-amazon-data-lifecycle-manager.svg +1 -0
  458. package/assets/studio/library/aws-resources/amazon-elastic-block-store-multiple-volumes.svg +1 -0
  459. package/assets/studio/library/aws-resources/amazon-elastic-block-store-snapshot.svg +1 -0
  460. package/assets/studio/library/aws-resources/amazon-elastic-block-store-volume-gp3.svg +1 -0
  461. package/assets/studio/library/aws-resources/amazon-elastic-block-store-volume.svg +1 -0
  462. package/assets/studio/library/aws-resources/amazon-elastic-container-registry-image.svg +1 -0
  463. package/assets/studio/library/aws-resources/amazon-elastic-container-registry-registry.svg +1 -0
  464. package/assets/studio/library/aws-resources/amazon-elastic-container-service-container-1.svg +1 -0
  465. package/assets/studio/library/aws-resources/amazon-elastic-container-service-container-2.svg +1 -0
  466. package/assets/studio/library/aws-resources/amazon-elastic-container-service-container-3.svg +1 -0
  467. package/assets/studio/library/aws-resources/amazon-elastic-container-service-copiiot-cli.svg +1 -0
  468. package/assets/studio/library/aws-resources/amazon-elastic-container-service-ecs-service-connect.svg +1 -0
  469. package/assets/studio/library/aws-resources/amazon-elastic-container-service-service.svg +1 -0
  470. package/assets/studio/library/aws-resources/amazon-elastic-container-service-task.svg +1 -0
  471. package/assets/studio/library/aws-resources/amazon-elastic-file-system-efs-intelligent-tiering.svg +1 -0
  472. package/assets/studio/library/aws-resources/amazon-elastic-file-system-efs-one-zone-infrequent-access.svg +1 -0
  473. package/assets/studio/library/aws-resources/amazon-elastic-file-system-efs-one-zone.svg +1 -0
  474. package/assets/studio/library/aws-resources/amazon-elastic-file-system-efs-standard-infrequent-access.svg +1 -0
  475. package/assets/studio/library/aws-resources/amazon-elastic-file-system-efs-standard.svg +1 -0
  476. package/assets/studio/library/aws-resources/amazon-elastic-file-system-elastic-throughput.svg +1 -0
  477. package/assets/studio/library/aws-resources/amazon-elastic-file-system-file-system.svg +1 -0
  478. package/assets/studio/library/aws-resources/amazon-elastic-kubernetes-service-eks-on-outposts.svg +1 -0
  479. package/assets/studio/library/aws-resources/amazon-elasticache-cache-node.svg +1 -0
  480. package/assets/studio/library/aws-resources/amazon-elasticache-elasticache-for-memcached.svg +1 -0
  481. package/assets/studio/library/aws-resources/amazon-elasticache-elasticache-for-redis.svg +1 -0
  482. package/assets/studio/library/aws-resources/amazon-elasticache-elasticache-for-valkey.svg +1 -0
  483. package/assets/studio/library/aws-resources/amazon-emr-cluster.svg +1 -0
  484. package/assets/studio/library/aws-resources/amazon-emr-emr-engine.svg +1 -0
  485. package/assets/studio/library/aws-resources/amazon-emr-hdfs-cluster.svg +1 -0
  486. package/assets/studio/library/aws-resources/amazon-eventbridge-custom-event-bus.svg +1 -0
  487. package/assets/studio/library/aws-resources/amazon-eventbridge-default-event-bus.svg +1 -0
  488. package/assets/studio/library/aws-resources/amazon-eventbridge-event.svg +1 -0
  489. package/assets/studio/library/aws-resources/amazon-eventbridge-pipes.svg +1 -0
  490. package/assets/studio/library/aws-resources/amazon-eventbridge-rule.svg +1 -0
  491. package/assets/studio/library/aws-resources/amazon-eventbridge-saas-partner-event.svg +1 -0
  492. package/assets/studio/library/aws-resources/amazon-eventbridge-scheduler.svg +1 -0
  493. package/assets/studio/library/aws-resources/amazon-eventbridge-schema-registry.svg +1 -0
  494. package/assets/studio/library/aws-resources/amazon-eventbridge-schema.svg +1 -0
  495. package/assets/studio/library/aws-resources/amazon-file-cache-hybrid-nfs-linked-datasets.svg +1 -0
  496. package/assets/studio/library/aws-resources/amazon-file-cache-on-premises-nfs-linked-datasets.svg +1 -0
  497. package/assets/studio/library/aws-resources/amazon-file-cache-s3-linked-datasets.svg +1 -0
  498. package/assets/studio/library/aws-resources/amazon-inspector-agent.svg +1 -0
  499. package/assets/studio/library/aws-resources/amazon-location-service-geofence.svg +1 -0
  500. package/assets/studio/library/aws-resources/amazon-location-service-map.svg +1 -0
  501. package/assets/studio/library/aws-resources/amazon-location-service-place.svg +1 -0
  502. package/assets/studio/library/aws-resources/amazon-location-service-routes.svg +1 -0
  503. package/assets/studio/library/aws-resources/amazon-location-service-track.svg +1 -0
  504. package/assets/studio/library/aws-resources/amazon-managed-blockchain-blockchain.svg +1 -0
  505. package/assets/studio/library/aws-resources/amazon-mq-broker.svg +1 -0
  506. package/assets/studio/library/aws-resources/amazon-msk-amazon-msk-connect.svg +1 -0
  507. package/assets/studio/library/aws-resources/amazon-opensearch-service-cluster-administrator-node.svg +1 -0
  508. package/assets/studio/library/aws-resources/amazon-opensearch-service-data-node.svg +1 -0
  509. package/assets/studio/library/aws-resources/amazon-opensearch-service-index.svg +1 -0
  510. package/assets/studio/library/aws-resources/amazon-opensearch-service-observability.svg +1 -0
  511. package/assets/studio/library/aws-resources/amazon-opensearch-service-opensearch-dashboards.svg +1 -0
  512. package/assets/studio/library/aws-resources/amazon-opensearch-service-opensearch-ingestion.svg +1 -0
  513. package/assets/studio/library/aws-resources/amazon-opensearch-service-traces.svg +1 -0
  514. package/assets/studio/library/aws-resources/amazon-opensearch-service-ultrawarm-node.svg +1 -0
  515. package/assets/studio/library/aws-resources/amazon-pinpoint-journey.svg +1 -0
  516. package/assets/studio/library/aws-resources/amazon-rds-blue-green-deployments.svg +1 -0
  517. package/assets/studio/library/aws-resources/amazon-rds-multi-az-db-cluster.svg +1 -0
  518. package/assets/studio/library/aws-resources/amazon-rds-multi-az.svg +1 -0
  519. package/assets/studio/library/aws-resources/amazon-rds-optimized-writes.svg +1 -0
  520. package/assets/studio/library/aws-resources/amazon-rds-proxy-instance-alternate.svg +1 -0
  521. package/assets/studio/library/aws-resources/amazon-rds-proxy-instance.svg +1 -0
  522. package/assets/studio/library/aws-resources/amazon-rds-trusted-language-extensions-for-postgresql.svg +1 -0
  523. package/assets/studio/library/aws-resources/amazon-redshift-auto-copy.svg +1 -0
  524. package/assets/studio/library/aws-resources/amazon-redshift-data-sharing-governance.svg +1 -0
  525. package/assets/studio/library/aws-resources/amazon-redshift-dense-compute-node.svg +1 -0
  526. package/assets/studio/library/aws-resources/amazon-redshift-dense-storage-node.svg +1 -0
  527. package/assets/studio/library/aws-resources/amazon-redshift-ml.svg +1 -0
  528. package/assets/studio/library/aws-resources/amazon-redshift-query-editor-v2-0.svg +1 -0
  529. package/assets/studio/library/aws-resources/amazon-redshift-ra3.svg +1 -0
  530. package/assets/studio/library/aws-resources/amazon-redshift-streaming-ingestion.svg +1 -0
  531. package/assets/studio/library/aws-resources/amazon-rekognition-image.svg +1 -0
  532. package/assets/studio/library/aws-resources/amazon-rekognition-video.svg +1 -0
  533. package/assets/studio/library/aws-resources/amazon-route-53-hosted-zone.svg +1 -0
  534. package/assets/studio/library/aws-resources/amazon-route-53-readiness-checks.svg +1 -0
  535. package/assets/studio/library/aws-resources/amazon-route-53-resolver-dns-firewall.svg +1 -0
  536. package/assets/studio/library/aws-resources/amazon-route-53-resolver-query-logging.svg +1 -0
  537. package/assets/studio/library/aws-resources/amazon-route-53-resolver.svg +1 -0
  538. package/assets/studio/library/aws-resources/amazon-route-53-route-table.svg +1 -0
  539. package/assets/studio/library/aws-resources/amazon-route-53-routing-controls.svg +1 -0
  540. package/assets/studio/library/aws-resources/amazon-sagemaker-ai-canvas.svg +1 -0
  541. package/assets/studio/library/aws-resources/amazon-sagemaker-ai-geospatial-ml.svg +1 -0
  542. package/assets/studio/library/aws-resources/amazon-sagemaker-ai-model.svg +1 -0
  543. package/assets/studio/library/aws-resources/amazon-sagemaker-ai-notebook.svg +1 -0
  544. package/assets/studio/library/aws-resources/amazon-sagemaker-ai-shadow-testing.svg +1 -0
  545. package/assets/studio/library/aws-resources/amazon-sagemaker-ai-train.svg +1 -0
  546. package/assets/studio/library/aws-resources/amazon-simple-email-service-email.svg +1 -0
  547. package/assets/studio/library/aws-resources/amazon-simple-notification-service-email-notification.svg +1 -0
  548. package/assets/studio/library/aws-resources/amazon-simple-notification-service-http-notification.svg +1 -0
  549. package/assets/studio/library/aws-resources/amazon-simple-notification-service-topic.svg +1 -0
  550. package/assets/studio/library/aws-resources/amazon-simple-queue-service-message.svg +1 -0
  551. package/assets/studio/library/aws-resources/amazon-simple-queue-service-queue.svg +1 -0
  552. package/assets/studio/library/aws-resources/amazon-simple-storage-service-bucket-with-objects.svg +1 -0
  553. package/assets/studio/library/aws-resources/amazon-simple-storage-service-bucket.svg +1 -0
  554. package/assets/studio/library/aws-resources/amazon-simple-storage-service-directory-bucket.svg +1 -0
  555. package/assets/studio/library/aws-resources/amazon-simple-storage-service-general-access-points.svg +1 -0
  556. package/assets/studio/library/aws-resources/amazon-simple-storage-service-glacier-archive.svg +1 -0
  557. package/assets/studio/library/aws-resources/amazon-simple-storage-service-glacier-vault.svg +1 -0
  558. package/assets/studio/library/aws-resources/amazon-simple-storage-service-object.svg +1 -0
  559. package/assets/studio/library/aws-resources/amazon-simple-storage-service-s3-batch-operations.svg +1 -0
  560. package/assets/studio/library/aws-resources/amazon-simple-storage-service-s3-express-one-zone.svg +1 -0
  561. package/assets/studio/library/aws-resources/amazon-simple-storage-service-s3-files.svg +1 -0
  562. package/assets/studio/library/aws-resources/amazon-simple-storage-service-s3-glacier-deep-archive.svg +1 -0
  563. package/assets/studio/library/aws-resources/amazon-simple-storage-service-s3-glacier-flexible-retrieval.svg +1 -0
  564. package/assets/studio/library/aws-resources/amazon-simple-storage-service-s3-glacier-instant-retrieval.svg +1 -0
  565. package/assets/studio/library/aws-resources/amazon-simple-storage-service-s3-intelligent-tiering.svg +1 -0
  566. package/assets/studio/library/aws-resources/amazon-simple-storage-service-s3-multi-region-access-points.svg +1 -0
  567. package/assets/studio/library/aws-resources/amazon-simple-storage-service-s3-object-lambda-access-points.svg +1 -0
  568. package/assets/studio/library/aws-resources/amazon-simple-storage-service-s3-object-lambda.svg +1 -0
  569. package/assets/studio/library/aws-resources/amazon-simple-storage-service-s3-object-lock.svg +1 -0
  570. package/assets/studio/library/aws-resources/amazon-simple-storage-service-s3-on-outposts.svg +1 -0
  571. package/assets/studio/library/aws-resources/amazon-simple-storage-service-s3-one-zone-ia.svg +1 -0
  572. package/assets/studio/library/aws-resources/amazon-simple-storage-service-s3-replication-time-control.svg +1 -0
  573. package/assets/studio/library/aws-resources/amazon-simple-storage-service-s3-replication.svg +1 -0
  574. package/assets/studio/library/aws-resources/amazon-simple-storage-service-s3-select.svg +1 -0
  575. package/assets/studio/library/aws-resources/amazon-simple-storage-service-s3-standard-ia.svg +1 -0
  576. package/assets/studio/library/aws-resources/amazon-simple-storage-service-s3-standard.svg +1 -0
  577. package/assets/studio/library/aws-resources/amazon-simple-storage-service-s3-storage-lens.svg +1 -0
  578. package/assets/studio/library/aws-resources/amazon-simple-storage-service-s3-tables.svg +1 -0
  579. package/assets/studio/library/aws-resources/amazon-simple-storage-service-s3-vectors.svg +1 -0
  580. package/assets/studio/library/aws-resources/amazon-simple-storage-service-vpc-access-points.svg +1 -0
  581. package/assets/studio/library/aws-resources/amazon-textract-analyze-lending.svg +1 -0
  582. package/assets/studio/library/aws-resources/amazon-vpc-carrier-gateway.svg +1 -0
  583. package/assets/studio/library/aws-resources/amazon-vpc-customer-gateway.svg +1 -0
  584. package/assets/studio/library/aws-resources/amazon-vpc-elastic-network-adapter.svg +1 -0
  585. package/assets/studio/library/aws-resources/amazon-vpc-elastic-network-interface.svg +1 -0
  586. package/assets/studio/library/aws-resources/amazon-vpc-endpoints.svg +1 -0
  587. package/assets/studio/library/aws-resources/amazon-vpc-flow-logs.svg +1 -0
  588. package/assets/studio/library/aws-resources/amazon-vpc-internet-gateway.svg +1 -0
  589. package/assets/studio/library/aws-resources/amazon-vpc-nat-gateway.svg +1 -0
  590. package/assets/studio/library/aws-resources/amazon-vpc-network-access-analyzer.svg +1 -0
  591. package/assets/studio/library/aws-resources/amazon-vpc-network-access-control-list.svg +1 -0
  592. package/assets/studio/library/aws-resources/amazon-vpc-peering-connection.svg +1 -0
  593. package/assets/studio/library/aws-resources/amazon-vpc-reachability-analyzer.svg +1 -0
  594. package/assets/studio/library/aws-resources/amazon-vpc-router.svg +1 -0
  595. package/assets/studio/library/aws-resources/amazon-vpc-traffic-mirroring.svg +1 -0
  596. package/assets/studio/library/aws-resources/amazon-vpc-virtual-private-cloud-vpc.svg +1 -0
  597. package/assets/studio/library/aws-resources/amazon-vpc-vpn-connection.svg +1 -0
  598. package/assets/studio/library/aws-resources/amazon-vpc-vpn-gateway.svg +1 -0
  599. package/assets/studio/library/aws-resources/aws-amplify-aws-amplify-studio.svg +1 -0
  600. package/assets/studio/library/aws-resources/aws-app-mesh-mesh.svg +1 -0
  601. package/assets/studio/library/aws-resources/aws-app-mesh-virtual-gateway.svg +1 -0
  602. package/assets/studio/library/aws-resources/aws-app-mesh-virtual-node.svg +1 -0
  603. package/assets/studio/library/aws-resources/aws-app-mesh-virtual-router.svg +1 -0
  604. package/assets/studio/library/aws-resources/aws-app-mesh-virtual-service.svg +1 -0
  605. package/assets/studio/library/aws-resources/aws-application-discovery-service-aws-agentless-collector.svg +1 -0
  606. package/assets/studio/library/aws-resources/aws-application-discovery-service-aws-discovery-agent.svg +1 -0
  607. package/assets/studio/library/aws-resources/aws-application-discovery-service-migration-evaluator-collector.svg +1 -0
  608. package/assets/studio/library/aws-resources/aws-backup-audit-manager.svg +1 -0
  609. package/assets/studio/library/aws-resources/aws-backup-aws-backup-for-aws-cloudformation.svg +1 -0
  610. package/assets/studio/library/aws-resources/aws-backup-aws-backup-support-for-amazon-fsx-for-netapp-ontap.svg +1 -0
  611. package/assets/studio/library/aws-resources/aws-backup-aws-backup-support-for-amazon-s3.svg +1 -0
  612. package/assets/studio/library/aws-resources/aws-backup-aws-backup-support-for-vmware-workloads.svg +1 -0
  613. package/assets/studio/library/aws-resources/aws-backup-backup-plan.svg +1 -0
  614. package/assets/studio/library/aws-resources/aws-backup-backup-restore.svg +1 -0
  615. package/assets/studio/library/aws-resources/aws-backup-backup-vault.svg +1 -0
  616. package/assets/studio/library/aws-resources/aws-backup-compliance-reporting.svg +1 -0
  617. package/assets/studio/library/aws-resources/aws-backup-compute.svg +1 -0
  618. package/assets/studio/library/aws-resources/aws-backup-database.svg +1 -0
  619. package/assets/studio/library/aws-resources/aws-backup-gateway.svg +1 -0
  620. package/assets/studio/library/aws-resources/aws-backup-legal-hold.svg +1 -0
  621. package/assets/studio/library/aws-resources/aws-backup-recovery-point-objective.svg +1 -0
  622. package/assets/studio/library/aws-resources/aws-backup-recovery-time-objective.svg +1 -0
  623. package/assets/studio/library/aws-resources/aws-backup-storage.svg +1 -0
  624. package/assets/studio/library/aws-resources/aws-backup-vault-lock.svg +1 -0
  625. package/assets/studio/library/aws-resources/aws-backup-virtual-machine-monitor.svg +1 -0
  626. package/assets/studio/library/aws-resources/aws-backup-virtual-machine.svg +1 -0
  627. package/assets/studio/library/aws-resources/aws-certificate-manager-certificate-authority.svg +1 -0
  628. package/assets/studio/library/aws-resources/aws-cloud-digital-interface.svg +1 -0
  629. package/assets/studio/library/aws-resources/aws-cloud-map-namespace.svg +1 -0
  630. package/assets/studio/library/aws-resources/aws-cloud-map-resource.svg +1 -0
  631. package/assets/studio/library/aws-resources/aws-cloud-map-service.svg +1 -0
  632. package/assets/studio/library/aws-resources/aws-cloud-wan-core-network-edge.svg +1 -0
  633. package/assets/studio/library/aws-resources/aws-cloud-wan-segment-network.svg +1 -0
  634. package/assets/studio/library/aws-resources/aws-cloud-wan-transit-gateway-route-table-attachment.svg +1 -0
  635. package/assets/studio/library/aws-resources/aws-cloud9-cloud9.svg +1 -0
  636. package/assets/studio/library/aws-resources/aws-cloudformation-change-set.svg +1 -0
  637. package/assets/studio/library/aws-resources/aws-cloudformation-stack.svg +1 -0
  638. package/assets/studio/library/aws-resources/aws-cloudformation-template.svg +1 -0
  639. package/assets/studio/library/aws-resources/aws-cloudtrail-cloudtrail-lake.svg +1 -0
  640. package/assets/studio/library/aws-resources/aws-data-exchange-for-apis.svg +1 -0
  641. package/assets/studio/library/aws-resources/aws-database-migration-service-database-migration-workflow-or-job.svg +1 -0
  642. package/assets/studio/library/aws-resources/aws-datasync-agent.svg +1 -0
  643. package/assets/studio/library/aws-resources/aws-datasync-discovery.svg +1 -0
  644. package/assets/studio/library/aws-resources/aws-direct-connect-gateway.svg +1 -0
  645. package/assets/studio/library/aws-resources/aws-directory-service-ad-connector.svg +1 -0
  646. package/assets/studio/library/aws-resources/aws-directory-service-aws-managed-microsoft-ad.svg +1 -0
  647. package/assets/studio/library/aws-resources/aws-directory-service-simple-ad.svg +1 -0
  648. package/assets/studio/library/aws-resources/aws-elastic-beanstalk-application.svg +1 -0
  649. package/assets/studio/library/aws-resources/aws-elastic-beanstalk-deployment.svg +1 -0
  650. package/assets/studio/library/aws-resources/aws-elemental-mediaconnect-mediaconnect-gateway.svg +1 -0
  651. package/assets/studio/library/aws-resources/aws-glue-aws-glue-for-ray.svg +1 -0
  652. package/assets/studio/library/aws-resources/aws-glue-crawler.svg +1 -0
  653. package/assets/studio/library/aws-resources/aws-glue-data-catalog.svg +1 -0
  654. package/assets/studio/library/aws-resources/aws-glue-data-quality.svg +1 -0
  655. package/assets/studio/library/aws-resources/aws-identity-access-management-add-on.svg +1 -0
  656. package/assets/studio/library/aws-resources/aws-identity-access-management-aws-sts-alternate.svg +1 -0
  657. package/assets/studio/library/aws-resources/aws-identity-access-management-aws-sts.svg +1 -0
  658. package/assets/studio/library/aws-resources/aws-identity-access-management-data-encryption-key.svg +1 -0
  659. package/assets/studio/library/aws-resources/aws-identity-access-management-encrypted-data.svg +1 -0
  660. package/assets/studio/library/aws-resources/aws-identity-access-management-iam-access-analyzer.svg +1 -0
  661. package/assets/studio/library/aws-resources/aws-identity-access-management-iam-roles-anywhere.svg +1 -0
  662. package/assets/studio/library/aws-resources/aws-identity-access-management-long-term-security-credential.svg +1 -0
  663. package/assets/studio/library/aws-resources/aws-identity-access-management-mfa-token.svg +1 -0
  664. package/assets/studio/library/aws-resources/aws-identity-access-management-permissions.svg +1 -0
  665. package/assets/studio/library/aws-resources/aws-identity-access-management-role.svg +1 -0
  666. package/assets/studio/library/aws-resources/aws-identity-access-management-temporary-security-credential.svg +1 -0
  667. package/assets/studio/library/aws-resources/aws-iot-action.svg +1 -0
  668. package/assets/studio/library/aws-resources/aws-iot-actuator.svg +1 -0
  669. package/assets/studio/library/aws-resources/aws-iot-alexa-enabled-device.svg +1 -0
  670. package/assets/studio/library/aws-resources/aws-iot-alexa-skill.svg +1 -0
  671. package/assets/studio/library/aws-resources/aws-iot-alexa-voice-service.svg +1 -0
  672. package/assets/studio/library/aws-resources/aws-iot-certificate.svg +1 -0
  673. package/assets/studio/library/aws-resources/aws-iot-core-device-advisor.svg +1 -0
  674. package/assets/studio/library/aws-resources/aws-iot-core-device-location.svg +1 -0
  675. package/assets/studio/library/aws-resources/aws-iot-desired-state.svg +1 -0
  676. package/assets/studio/library/aws-resources/aws-iot-device-defender-iot-device-jobs.svg +1 -0
  677. package/assets/studio/library/aws-resources/aws-iot-device-gateway.svg +1 -0
  678. package/assets/studio/library/aws-resources/aws-iot-device-management-fleet-hub.svg +1 -0
  679. package/assets/studio/library/aws-resources/aws-iot-device-tester.svg +1 -0
  680. package/assets/studio/library/aws-resources/aws-iot-echo.svg +1 -0
  681. package/assets/studio/library/aws-resources/aws-iot-fire-tv-stick.svg +1 -0
  682. package/assets/studio/library/aws-resources/aws-iot-fire-tv.svg +1 -0
  683. package/assets/studio/library/aws-resources/aws-iot-greengrass-artifact.svg +1 -0
  684. package/assets/studio/library/aws-resources/aws-iot-greengrass-component-machine-learning.svg +1 -0
  685. package/assets/studio/library/aws-resources/aws-iot-greengrass-component-nucleus.svg +1 -0
  686. package/assets/studio/library/aws-resources/aws-iot-greengrass-component-private.svg +1 -0
  687. package/assets/studio/library/aws-resources/aws-iot-greengrass-component-public.svg +1 -0
  688. package/assets/studio/library/aws-resources/aws-iot-greengrass-component.svg +1 -0
  689. package/assets/studio/library/aws-resources/aws-iot-greengrass-connector.svg +1 -0
  690. package/assets/studio/library/aws-resources/aws-iot-greengrass-interprocess-communication.svg +1 -0
  691. package/assets/studio/library/aws-resources/aws-iot-greengrass-protocol.svg +1 -0
  692. package/assets/studio/library/aws-resources/aws-iot-greengrass-recipe.svg +1 -0
  693. package/assets/studio/library/aws-resources/aws-iot-greengrass-stream-manager.svg +1 -0
  694. package/assets/studio/library/aws-resources/aws-iot-hardware-board.svg +1 -0
  695. package/assets/studio/library/aws-resources/aws-iot-http-protocol.svg +1 -0
  696. package/assets/studio/library/aws-resources/aws-iot-http2-protocol.svg +1 -0
  697. package/assets/studio/library/aws-resources/aws-iot-lambda-function.svg +1 -0
  698. package/assets/studio/library/aws-resources/aws-iot-lorawan-protocol.svg +1 -0
  699. package/assets/studio/library/aws-resources/aws-iot-mqtt-protocol.svg +1 -0
  700. package/assets/studio/library/aws-resources/aws-iot-over-air-update.svg +1 -0
  701. package/assets/studio/library/aws-resources/aws-iot-policy.svg +1 -0
  702. package/assets/studio/library/aws-resources/aws-iot-reported-state.svg +1 -0
  703. package/assets/studio/library/aws-resources/aws-iot-rule.svg +1 -0
  704. package/assets/studio/library/aws-resources/aws-iot-sailboat.svg +1 -0
  705. package/assets/studio/library/aws-resources/aws-iot-sensor.svg +1 -0
  706. package/assets/studio/library/aws-resources/aws-iot-servo.svg +1 -0
  707. package/assets/studio/library/aws-resources/aws-iot-shadow.svg +1 -0
  708. package/assets/studio/library/aws-resources/aws-iot-simulator.svg +1 -0
  709. package/assets/studio/library/aws-resources/aws-iot-sitewise-asset-hierarchy.svg +1 -0
  710. package/assets/studio/library/aws-resources/aws-iot-sitewise-asset-model.svg +1 -0
  711. package/assets/studio/library/aws-resources/aws-iot-sitewise-asset-properties.svg +1 -0
  712. package/assets/studio/library/aws-resources/aws-iot-sitewise-asset.svg +1 -0
  713. package/assets/studio/library/aws-resources/aws-iot-sitewise-data-streams.svg +1 -0
  714. package/assets/studio/library/aws-resources/aws-iot-thing-bank.svg +1 -0
  715. package/assets/studio/library/aws-resources/aws-iot-thing-bicycle.svg +1 -0
  716. package/assets/studio/library/aws-resources/aws-iot-thing-camera.svg +1 -0
  717. package/assets/studio/library/aws-resources/aws-iot-thing-car.svg +1 -0
  718. package/assets/studio/library/aws-resources/aws-iot-thing-cart.svg +1 -0
  719. package/assets/studio/library/aws-resources/aws-iot-thing-coffee-pot.svg +1 -0
  720. package/assets/studio/library/aws-resources/aws-iot-thing-door-lock.svg +1 -0
  721. package/assets/studio/library/aws-resources/aws-iot-thing-factory.svg +1 -0
  722. package/assets/studio/library/aws-resources/aws-iot-thing-freertos-device.svg +1 -0
  723. package/assets/studio/library/aws-resources/aws-iot-thing-generic.svg +1 -0
  724. package/assets/studio/library/aws-resources/aws-iot-thing-house.svg +1 -0
  725. package/assets/studio/library/aws-resources/aws-iot-thing-humidity-sensor.svg +1 -0
  726. package/assets/studio/library/aws-resources/aws-iot-thing-industrial-pc.svg +1 -0
  727. package/assets/studio/library/aws-resources/aws-iot-thing-lightbulb.svg +1 -0
  728. package/assets/studio/library/aws-resources/aws-iot-thing-medical-emergency.svg +1 -0
  729. package/assets/studio/library/aws-resources/aws-iot-thing-plc.svg +1 -0
  730. package/assets/studio/library/aws-resources/aws-iot-thing-police-emergency.svg +1 -0
  731. package/assets/studio/library/aws-resources/aws-iot-thing-relay.svg +1 -0
  732. package/assets/studio/library/aws-resources/aws-iot-thing-stacklight.svg +1 -0
  733. package/assets/studio/library/aws-resources/aws-iot-thing-temperature-humidity-sensor.svg +1 -0
  734. package/assets/studio/library/aws-resources/aws-iot-thing-temperature-sensor.svg +1 -0
  735. package/assets/studio/library/aws-resources/aws-iot-thing-temperature-vibration-sensor.svg +1 -0
  736. package/assets/studio/library/aws-resources/aws-iot-thing-thermostat.svg +1 -0
  737. package/assets/studio/library/aws-resources/aws-iot-thing-travel.svg +1 -0
  738. package/assets/studio/library/aws-resources/aws-iot-thing-utility.svg +1 -0
  739. package/assets/studio/library/aws-resources/aws-iot-thing-vibration-sensor.svg +1 -0
  740. package/assets/studio/library/aws-resources/aws-iot-thing-windfarm.svg +1 -0
  741. package/assets/studio/library/aws-resources/aws-iot-topic.svg +1 -0
  742. package/assets/studio/library/aws-resources/aws-key-management-service-external-key-store.svg +1 -0
  743. package/assets/studio/library/aws-resources/aws-lake-formation-data-lake.svg +1 -0
  744. package/assets/studio/library/aws-resources/aws-lambda-lambda-function.svg +1 -0
  745. package/assets/studio/library/aws-resources/aws-license-manager-application-discovery.svg +1 -0
  746. package/assets/studio/library/aws-resources/aws-license-manager-license-blending.svg +1 -0
  747. package/assets/studio/library/aws-resources/aws-mainframe-modernization-analyzer.svg +1 -0
  748. package/assets/studio/library/aws-resources/aws-mainframe-modernization-compiler.svg +1 -0
  749. package/assets/studio/library/aws-resources/aws-mainframe-modernization-converter.svg +1 -0
  750. package/assets/studio/library/aws-resources/aws-mainframe-modernization-developer.svg +1 -0
  751. package/assets/studio/library/aws-resources/aws-mainframe-modernization-runtime.svg +1 -0
  752. package/assets/studio/library/aws-resources/aws-network-firewall-endpoints.svg +1 -0
  753. package/assets/studio/library/aws-resources/aws-organizations-account.svg +1 -0
  754. package/assets/studio/library/aws-resources/aws-organizations-management-account.svg +1 -0
  755. package/assets/studio/library/aws-resources/aws-organizations-organizational-unit.svg +1 -0
  756. package/assets/studio/library/aws-resources/aws-security-hub-finding.svg +1 -0
  757. package/assets/studio/library/aws-resources/aws-shield-aws-shield-advanced.svg +1 -0
  758. package/assets/studio/library/aws-resources/aws-snowball-snowball-import-export.svg +1 -0
  759. package/assets/studio/library/aws-resources/aws-storage-gateway-amazon-fsx-file-gateway.svg +1 -0
  760. package/assets/studio/library/aws-resources/aws-storage-gateway-amazon-s3-file-gateway.svg +1 -0
  761. package/assets/studio/library/aws-resources/aws-storage-gateway-cached-volume.svg +1 -0
  762. package/assets/studio/library/aws-resources/aws-storage-gateway-file-gateway.svg +1 -0
  763. package/assets/studio/library/aws-resources/aws-storage-gateway-noncached-volume.svg +1 -0
  764. package/assets/studio/library/aws-resources/aws-storage-gateway-tape-gateway.svg +1 -0
  765. package/assets/studio/library/aws-resources/aws-storage-gateway-virtual-tape-library.svg +1 -0
  766. package/assets/studio/library/aws-resources/aws-storage-gateway-volume-gateway.svg +1 -0
  767. package/assets/studio/library/aws-resources/aws-systems-manager-application-manager.svg +1 -0
  768. package/assets/studio/library/aws-resources/aws-systems-manager-automation.svg +1 -0
  769. package/assets/studio/library/aws-resources/aws-systems-manager-change-calendar.svg +1 -0
  770. package/assets/studio/library/aws-resources/aws-systems-manager-change-manager.svg +1 -0
  771. package/assets/studio/library/aws-resources/aws-systems-manager-compliance.svg +1 -0
  772. package/assets/studio/library/aws-resources/aws-systems-manager-distributor.svg +1 -0
  773. package/assets/studio/library/aws-resources/aws-systems-manager-documents.svg +1 -0
  774. package/assets/studio/library/aws-resources/aws-systems-manager-incident-manager.svg +1 -0
  775. package/assets/studio/library/aws-resources/aws-systems-manager-inventory.svg +1 -0
  776. package/assets/studio/library/aws-resources/aws-systems-manager-maintenance-windows.svg +1 -0
  777. package/assets/studio/library/aws-resources/aws-systems-manager-opscenter.svg +1 -0
  778. package/assets/studio/library/aws-resources/aws-systems-manager-parameter-store.svg +1 -0
  779. package/assets/studio/library/aws-resources/aws-systems-manager-patch-manager.svg +1 -0
  780. package/assets/studio/library/aws-resources/aws-systems-manager-run-command.svg +1 -0
  781. package/assets/studio/library/aws-resources/aws-systems-manager-session-manager.svg +1 -0
  782. package/assets/studio/library/aws-resources/aws-systems-manager-state-manager.svg +1 -0
  783. package/assets/studio/library/aws-resources/aws-transfer-family-aws-as2.svg +1 -0
  784. package/assets/studio/library/aws-resources/aws-transfer-family-aws-ftp.svg +1 -0
  785. package/assets/studio/library/aws-resources/aws-transfer-family-aws-ftps.svg +1 -0
  786. package/assets/studio/library/aws-resources/aws-transfer-family-aws-sftp.svg +1 -0
  787. package/assets/studio/library/aws-resources/aws-transit-gateway-attachment.svg +1 -0
  788. package/assets/studio/library/aws-resources/aws-trusted-advisor-checklist-cost.svg +1 -0
  789. package/assets/studio/library/aws-resources/aws-trusted-advisor-checklist-fault-tolerant.svg +1 -0
  790. package/assets/studio/library/aws-resources/aws-trusted-advisor-checklist-performance.svg +1 -0
  791. package/assets/studio/library/aws-resources/aws-trusted-advisor-checklist-security.svg +1 -0
  792. package/assets/studio/library/aws-resources/aws-trusted-advisor-checklist.svg +1 -0
  793. package/assets/studio/library/aws-resources/aws-waf-bad-bot.svg +1 -0
  794. package/assets/studio/library/aws-resources/aws-waf-bot-control.svg +1 -0
  795. package/assets/studio/library/aws-resources/aws-waf-bot.svg +1 -0
  796. package/assets/studio/library/aws-resources/aws-waf-filtering-rule.svg +1 -0
  797. package/assets/studio/library/aws-resources/aws-waf-labels.svg +1 -0
  798. package/assets/studio/library/aws-resources/aws-waf-managed-rule.svg +1 -0
  799. package/assets/studio/library/aws-resources/aws-waf-rule.svg +1 -0
  800. package/assets/studio/library/aws-resources/elastic-load-balancing-application-load-balancer.svg +1 -0
  801. package/assets/studio/library/aws-resources/elastic-load-balancing-classic-load-balancer.svg +1 -0
  802. package/assets/studio/library/aws-resources/elastic-load-balancing-gateway-load-balancer.svg +1 -0
  803. package/assets/studio/library/aws-resources/elastic-load-balancing-network-load-balancer.svg +1 -0
  804. package/assets/studio/library/k8s/deploy.svg +54 -0
  805. package/assets/studio/library/k8s/ing.svg +46 -0
  806. package/assets/studio/library/k8s/node.svg +46 -0
  807. package/assets/studio/library/k8s/pod.svg +65 -0
  808. package/assets/studio/library/k8s/secret.svg +90 -0
  809. package/assets/studio/library/k8s/svc.svg +79 -0
  810. package/assets/studio/library/shapes/internet.svg +1 -0
  811. package/assets/studio/library/shapes/person.svg +1 -0
  812. package/assets/studio/library/shapes/users.svg +1 -0
  813. package/assets/studio/library/tech/auth0.svg +1 -0
  814. package/assets/studio/library/tech/clickhouse.svg +1 -0
  815. package/assets/studio/library/tech/cloudflare.svg +1 -0
  816. package/assets/studio/library/tech/github-actions.svg +1 -0
  817. package/assets/studio/library/tech/github.svg +1 -0
  818. package/assets/studio/library/tech/helm.svg +1 -0
  819. package/assets/studio/library/tech/jupyter.svg +1 -0
  820. package/assets/studio/library/tech/kubernetes.svg +1 -0
  821. package/assets/studio/library/tech/microsoft-entra-id.svg +15 -0
  822. package/assets/studio/library/tech/nats.svg +1 -0
  823. package/assets/studio/library/tech/new-relic.svg +1 -0
  824. package/assets/studio/library/tech/postgresql.svg +1 -0
  825. package/assets/studio/library/tech/rabbitmq.svg +1 -0
  826. package/assets/studio/library/tech/redis.svg +1 -0
  827. package/assets/studio/library/tech/sendgrid.svg +1 -0
  828. package/assets/studio/library/tech/starrocks.svg +1 -0
  829. package/assets/studio/library/tech/temporal.svg +1 -0
  830. package/assets/viewer/index.html +59 -0
  831. package/bin/diagc.mjs +18 -0
  832. package/dist/api/dispatch.d.ts +57 -0
  833. package/dist/api/dispatch.js +154 -0
  834. package/dist/api/handlers.d.ts +61 -0
  835. package/dist/api/handlers.js +420 -0
  836. package/dist/api/index.d.ts +3 -0
  837. package/dist/api/index.js +7 -0
  838. package/dist/api/routes.d.ts +27 -0
  839. package/dist/api/routes.js +43 -0
  840. package/dist/atomic-write.d.ts +8 -0
  841. package/dist/atomic-write.js +21 -0
  842. package/dist/cli.d.ts +21 -0
  843. package/dist/cli.js +271 -0
  844. package/dist/compile.d.ts +11 -0
  845. package/dist/compile.js +106 -0
  846. package/dist/eject.d.ts +24 -0
  847. package/dist/eject.js +121 -0
  848. package/dist/home.d.ts +36 -0
  849. package/dist/home.js +75 -0
  850. package/dist/includes.d.ts +5 -0
  851. package/dist/includes.js +17 -0
  852. package/dist/publish/assets.d.ts +20 -0
  853. package/dist/publish/assets.js +46 -0
  854. package/dist/publish/discover.d.ts +10 -0
  855. package/dist/publish/discover.js +31 -0
  856. package/dist/publish/gallery.d.ts +4 -0
  857. package/dist/publish/gallery.js +27 -0
  858. package/dist/publish/html.d.ts +23 -0
  859. package/dist/publish/html.js +45 -0
  860. package/dist/publish/pageSize.d.ts +21 -0
  861. package/dist/publish/pageSize.js +26 -0
  862. package/dist/publish/publish.d.ts +18 -0
  863. package/dist/publish/publish.js +100 -0
  864. package/dist/publish/snapshot.d.ts +3 -0
  865. package/dist/publish/snapshot.js +53 -0
  866. package/dist/serve.d.ts +32 -0
  867. package/dist/serve.js +154 -0
  868. package/dist/snapshots.d.ts +13 -0
  869. package/dist/snapshots.js +113 -0
  870. package/dist/studio.d.ts +28 -0
  871. package/dist/studio.js +115 -0
  872. package/dist/watch.d.ts +37 -0
  873. package/dist/watch.js +79 -0
  874. package/package.json +53 -0
@@ -0,0 +1,20 @@
1
+ import type { DiagramModel } from '@diagc/core';
2
+ export declare function dataUri(bytes: Buffer, ext: string): string;
3
+ /**
4
+ * Classify an asset ref so publish-time code knows whether/where to read it from disk.
5
+ * - `library`: bundled shape, lives under the library dir (`/library/<rest>`).
6
+ * - `api-assets`: uploaded asset served via the studio API (`/api/assets/<rest>`).
7
+ * - `bare`: uploaded asset stored as a bare content-hash filename (no leading slash,
8
+ * not a URL, not already a data: URI) — the studio's on-disk model shape.
9
+ * - `skip`: anything else (external http(s) URL, data: URI, or an unrecognized
10
+ * absolute path) — left untouched.
11
+ */
12
+ export type AssetRefKind = 'library' | 'api-assets' | 'bare' | 'skip';
13
+ export declare function classifyAssetRef(ref: string): AssetRefKind;
14
+ /**
15
+ * Resolve `rel` under `base`, or `undefined` if it would escape `base` via `..`
16
+ * (path traversal). Guards the publish step so a crafted asset ref such as
17
+ * `/library/../../etc/passwd` can never read a file outside the intended root.
18
+ */
19
+ export declare function safeAssetPath(base: string, rel: string): string | undefined;
20
+ export declare function rewriteAssetRefs(model: DiagramModel, resolve: (ref: string) => Buffer | undefined): DiagramModel;
@@ -0,0 +1,46 @@
1
+ import path from 'node:path';
2
+ const MIME = {
3
+ svg: 'image/svg+xml', png: 'image/png', jpg: 'image/jpeg', jpeg: 'image/jpeg', webp: 'image/webp', gif: 'image/gif',
4
+ };
5
+ export function dataUri(bytes, ext) {
6
+ const mime = MIME[ext.toLowerCase()] ?? 'application/octet-stream';
7
+ return `data:${mime};base64,${bytes.toString('base64')}`;
8
+ }
9
+ export function classifyAssetRef(ref) {
10
+ if (ref.startsWith('/library/'))
11
+ return 'library';
12
+ if (ref.startsWith('/api/assets/'))
13
+ return 'api-assets';
14
+ if (!ref.startsWith('/') && !/^https?:/.test(ref) && !ref.startsWith('data:'))
15
+ return 'bare';
16
+ return 'skip';
17
+ }
18
+ /**
19
+ * Resolve `rel` under `base`, or `undefined` if it would escape `base` via `..`
20
+ * (path traversal). Guards the publish step so a crafted asset ref such as
21
+ * `/library/../../etc/passwd` can never read a file outside the intended root.
22
+ */
23
+ export function safeAssetPath(base, rel) {
24
+ const root = path.resolve(base);
25
+ const resolved = path.resolve(root, rel);
26
+ return resolved.startsWith(root + path.sep) ? resolved : undefined;
27
+ }
28
+ function inlineRef(ref, resolve) {
29
+ if (ref === undefined || classifyAssetRef(ref) === 'skip')
30
+ return ref;
31
+ const bytes = resolve(ref);
32
+ if (bytes === undefined)
33
+ return ref;
34
+ const ext = ref.split('.').pop()?.split(/[?#]/)[0] ?? '';
35
+ return dataUri(bytes, ext);
36
+ }
37
+ export function rewriteAssetRefs(model, resolve) {
38
+ const nodes = model.nodes.map((n) => {
39
+ const image = inlineRef(n.image, resolve);
40
+ const shape = inlineRef(n.shape, resolve);
41
+ if (image === n.image && shape === n.shape)
42
+ return n;
43
+ return { ...n, ...(image !== undefined ? { image } : {}), ...(shape !== undefined ? { shape } : {}) };
44
+ });
45
+ return { ...model, nodes };
46
+ }
@@ -0,0 +1,10 @@
1
+ export interface DiscoveredDiagram {
2
+ name: string;
3
+ modelPath: string;
4
+ layoutPath?: string;
5
+ drawingsPath?: string;
6
+ }
7
+ /** Discover render-ready diagrams from the compiled artifacts dir; pair each
8
+ * with its layout and drawings sidecars from the source tree (artifacts carry
9
+ * neither — compile never touches a sidecar). */
10
+ export declare function discoverDiagrams(artifactsDir: string, srcDir: string): Promise<DiscoveredDiagram[]>;
@@ -0,0 +1,31 @@
1
+ import { access } from 'node:fs/promises';
2
+ import path from 'node:path';
3
+ import fg from 'fast-glob';
4
+ /** Discover render-ready diagrams from the compiled artifacts dir; pair each
5
+ * with its layout and drawings sidecars from the source tree (artifacts carry
6
+ * neither — compile never touches a sidecar). */
7
+ export async function discoverDiagrams(artifactsDir, srcDir) {
8
+ const files = await fg('**/*.diagram.json', { cwd: artifactsDir, absolute: true });
9
+ const out = [];
10
+ const exists = async (p) => {
11
+ try {
12
+ await access(p);
13
+ return true;
14
+ }
15
+ catch {
16
+ return false;
17
+ }
18
+ };
19
+ for (const modelPath of files) {
20
+ const name = path.relative(artifactsDir, modelPath).replace(/\.diagram\.json$/, '').split(path.sep).join('/');
21
+ const layoutPath = path.join(srcDir, `${name}.layout.json`);
22
+ const drawingsPath = path.join(srcDir, `${name}.drawings.json`);
23
+ out.push({
24
+ name,
25
+ modelPath,
26
+ ...((await exists(layoutPath)) ? { layoutPath } : {}),
27
+ ...((await exists(drawingsPath)) ? { drawingsPath } : {}),
28
+ });
29
+ }
30
+ return out;
31
+ }
@@ -0,0 +1,4 @@
1
+ export declare function buildGallery(entries: {
2
+ name: string;
3
+ hasImage: boolean;
4
+ }[]): string;
@@ -0,0 +1,27 @@
1
+ function esc(s) {
2
+ return s.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/"/g, '&quot;');
3
+ }
4
+ export function buildGallery(entries) {
5
+ const cards = entries
6
+ .map((e) => {
7
+ const thumb = e.hasImage
8
+ ? `<img src="../static/${esc(e.name)}.png" alt="${esc(e.name)}" loading="lazy" />`
9
+ : '';
10
+ return `<a class="card" href="${esc(e.name)}.html">${thumb}<span>${esc(e.name)}</span></a>`;
11
+ })
12
+ .join('\n');
13
+ return `<!doctype html>
14
+ <html lang="en"><head><meta charset="UTF-8" />
15
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
16
+ <title>Diagrams</title>
17
+ <style>
18
+ body{font-family:system-ui,sans-serif;margin:24px;background:#fafafa}
19
+ h1{font-size:18px}
20
+ .grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px}
21
+ .card{display:flex;flex-direction:column;gap:8px;padding:12px;border:1px solid #ddd;border-radius:8px;text-decoration:none;color:#222;background:#fff}
22
+ .card img{width:100%;height:140px;object-fit:contain;background:#f4f4f4;border-radius:4px}
23
+ </style></head>
24
+ <body><h1>Diagrams</h1><div class="grid">
25
+ ${cards}
26
+ </div></body></html>`;
27
+ }
@@ -0,0 +1,23 @@
1
+ import { SOURCE_URL } from '@diagc/core';
2
+ export declare const DG_DATA_SENTINEL = "\"__DG_DIAGRAM_DATA__\"";
3
+ export { SOURCE_URL };
4
+ /**
5
+ * AGPL section 13 offer, carried by every published page.
6
+ *
7
+ * A published page inlines the whole viewer bundle, so publishing one distributes
8
+ * AGPL-licensed code and owes its recipients an offer of the corresponding source. The
9
+ * bundle `publish` stamps is unmodified, so pointing upstream discharges that — the
10
+ * author of the diagram has nothing to do, which is the point: compliance should not be
11
+ * something they can forget.
12
+ *
13
+ * A comment rather than visible chrome, deliberately. The page belongs to whoever drew
14
+ * the diagram; a banner on their work would be a tax, and nothing in the licence asks
15
+ * for one.
16
+ *
17
+ * Must contain no `--` (ends an HTML comment early) and no `</script>` (the data
18
+ * sentinel's own test asserts the page holds exactly one).
19
+ */
20
+ export declare const SOURCE_NOTICE = "<!--\n Rendered by diagc \u2014 https://github.com/Ferroman/diagc\n\n This page embeds the diagc viewer, free software under the GNU Affero General\n Public License, version 3 (AGPL-3.0-only). The complete corresponding source of\n the viewer is available at the address above.\n\n The diagram on this page is not covered by that licence. See the additional\n permissions under section 7 in the project's LICENSE file.\n-->";
21
+ /** Insert the source offer without disturbing the doctype. */
22
+ export declare function withSourceNotice(shell: string): string;
23
+ export declare function stampHtml(shell: string, data: unknown): string;
@@ -0,0 +1,45 @@
1
+ import { SOURCE_URL } from '@diagc/core';
2
+ export const DG_DATA_SENTINEL = '"__DG_DIAGRAM_DATA__"';
3
+ export { SOURCE_URL };
4
+ /**
5
+ * AGPL section 13 offer, carried by every published page.
6
+ *
7
+ * A published page inlines the whole viewer bundle, so publishing one distributes
8
+ * AGPL-licensed code and owes its recipients an offer of the corresponding source. The
9
+ * bundle `publish` stamps is unmodified, so pointing upstream discharges that — the
10
+ * author of the diagram has nothing to do, which is the point: compliance should not be
11
+ * something they can forget.
12
+ *
13
+ * A comment rather than visible chrome, deliberately. The page belongs to whoever drew
14
+ * the diagram; a banner on their work would be a tax, and nothing in the licence asks
15
+ * for one.
16
+ *
17
+ * Must contain no `--` (ends an HTML comment early) and no `</script>` (the data
18
+ * sentinel's own test asserts the page holds exactly one).
19
+ */
20
+ export const SOURCE_NOTICE = `<!--
21
+ Rendered by diagc — ${SOURCE_URL}
22
+
23
+ This page embeds the diagc viewer, free software under the GNU Affero General
24
+ Public License, version 3 (AGPL-3.0-only). The complete corresponding source of
25
+ the viewer is available at the address above.
26
+
27
+ The diagram on this page is not covered by that licence. See the additional
28
+ permissions under section 7 in the project's LICENSE file.
29
+ -->`;
30
+ /**
31
+ * Anchored at the start: only a leading doctype counts. The notice has to land *after*
32
+ * it — an HTML comment ahead of the doctype puts the document into quirks mode in every
33
+ * browser, which would silently change how the viewer lays out.
34
+ */
35
+ const LEADING_DOCTYPE = /^\s*<!doctype html>/i;
36
+ /** Insert the source offer without disturbing the doctype. */
37
+ export function withSourceNotice(shell) {
38
+ return LEADING_DOCTYPE.test(shell)
39
+ ? shell.replace(LEADING_DOCTYPE, (m) => `${m}\n${SOURCE_NOTICE}`)
40
+ : `${SOURCE_NOTICE}\n${shell}`;
41
+ }
42
+ export function stampHtml(shell, data) {
43
+ const json = JSON.stringify(data).replace(/</g, '\\u003c');
44
+ return withSourceNotice(shell).replace(DG_DATA_SENTINEL, () => json);
45
+ }
@@ -0,0 +1,21 @@
1
+ export interface Size {
2
+ width: number;
3
+ height: number;
4
+ }
5
+ /**
6
+ * The capture frame for a diagram: the content at the largest scale that fits
7
+ * the caps, plus padding, plus an unscaled `reserve` for the legend.
8
+ *
9
+ * `reserve` is in SCREEN px and is deliberately NOT part of `bounds`. The
10
+ * content is scaled to fit the frame; the legend is a fixed-size overlay and is
11
+ * not. Adding the legend's height to `bounds.height` shrinks it by the same
12
+ * factor as the graph, so the frame comes out short by `reserve * (1 - scale)`
13
+ * — and the fit, which still pays the legend in full, draws the graph at a
14
+ * fraction of the intended size with the rest of the frame left blank.
15
+ */
16
+ export declare function pageSize(bounds: Size, opts: {
17
+ maxWidth: number;
18
+ padding: number;
19
+ maxHeight?: number;
20
+ reserve?: number;
21
+ }): Size;
@@ -0,0 +1,26 @@
1
+ /**
2
+ * The capture frame for a diagram: the content at the largest scale that fits
3
+ * the caps, plus padding, plus an unscaled `reserve` for the legend.
4
+ *
5
+ * `reserve` is in SCREEN px and is deliberately NOT part of `bounds`. The
6
+ * content is scaled to fit the frame; the legend is a fixed-size overlay and is
7
+ * not. Adding the legend's height to `bounds.height` shrinks it by the same
8
+ * factor as the graph, so the frame comes out short by `reserve * (1 - scale)`
9
+ * — and the fit, which still pays the legend in full, draws the graph at a
10
+ * fraction of the intended size with the rest of the frame left blank.
11
+ */
12
+ export function pageSize(bounds, opts) {
13
+ const pad = opts.padding * 2;
14
+ // Cap the reserve at half the frame, mirroring the viewer's legendPadding: a
15
+ // legend taller than the frame must not leave the graph nothing to sit in.
16
+ const reserve = opts.maxHeight === undefined
17
+ ? Math.max(0, opts.reserve ?? 0)
18
+ : Math.min(Math.max(0, opts.reserve ?? 0), Math.floor(opts.maxHeight / 2));
19
+ const fit = (avail, extent) => (extent <= 0 ? 1 : avail / extent);
20
+ const scale = Math.min(1, // never upscale: a small diagram is captured at 1:1, as it always was
21
+ fit(opts.maxWidth - pad, bounds.width), opts.maxHeight === undefined ? 1 : fit(opts.maxHeight - pad - reserve, bounds.height));
22
+ return {
23
+ width: Math.max(1, Math.round(bounds.width * scale) + pad),
24
+ height: Math.max(1, Math.round(bounds.height * scale) + pad + reserve),
25
+ };
26
+ }
@@ -0,0 +1,18 @@
1
+ export interface PublishOptions {
2
+ srcDir: string;
3
+ artifactsDir: string;
4
+ htmlDir: string;
5
+ staticDir: string;
6
+ shellPath: string;
7
+ libraryDir: string;
8
+ assetsDir: string;
9
+ images: boolean;
10
+ names?: string[];
11
+ renderPng?: (htmlPath: string, pngPath: string) => Promise<void>;
12
+ }
13
+ export interface PublishResult {
14
+ pages: string[];
15
+ images: string[];
16
+ gallery: string;
17
+ }
18
+ export declare function publishDiagrams(opts: PublishOptions): Promise<PublishResult>;
@@ -0,0 +1,100 @@
1
+ import { mkdir, readFile, writeFile } from 'node:fs/promises';
2
+ import path from 'node:path';
3
+ import { errMessage, isDrawings } from '@diagc/core';
4
+ import { classifyAssetRef, rewriteAssetRefs, safeAssetPath } from './assets.js';
5
+ import { buildGallery } from './gallery.js';
6
+ import { discoverDiagrams } from './discover.js';
7
+ import { stampHtml } from './html.js';
8
+ async function readMaybe(p) {
9
+ try {
10
+ return await readFile(p);
11
+ }
12
+ catch {
13
+ return undefined;
14
+ }
15
+ }
16
+ export async function publishDiagrams(opts) {
17
+ const shell = await readFile(opts.shellPath, 'utf8');
18
+ await mkdir(opts.htmlDir, { recursive: true });
19
+ if (opts.images)
20
+ await mkdir(opts.staticDir, { recursive: true });
21
+ const cache = new Map();
22
+ const resolveAsset = (ref) => cache.get(ref);
23
+ let all = await discoverDiagrams(opts.artifactsDir, opts.srcDir);
24
+ if (opts.names !== undefined && opts.names.length > 0) {
25
+ const want = new Set(opts.names);
26
+ all = all.filter((d) => want.has(d.name));
27
+ }
28
+ const pages = [];
29
+ const images = [];
30
+ for (const d of all) {
31
+ try {
32
+ const modelRaw = JSON.parse(await readFile(d.modelPath, 'utf8'));
33
+ const layout = d.layoutPath !== undefined
34
+ ? JSON.parse(await readFile(d.layoutPath, 'utf8'))
35
+ : undefined;
36
+ // A hand-edited sidecar can be valid JSON and still not be a drawings
37
+ // overlay. Publishing it would stamp shapeless data into a page that has
38
+ // no validator of its own, so it is warned about and dropped — the page
39
+ // still ships, just without ink. (Unparseable JSON keeps its old
40
+ // behaviour: it throws, and the diagram is skipped below.)
41
+ let drawings;
42
+ if (d.drawingsPath !== undefined) {
43
+ const parsed = JSON.parse(await readFile(d.drawingsPath, 'utf8'));
44
+ if (isDrawings(parsed))
45
+ drawings = parsed;
46
+ else
47
+ console.warn(`publish: ignoring malformed drawings sidecar for diagram "${d.name}" (${d.drawingsPath}); the page ships without ink.`);
48
+ }
49
+ // Pre-read every inlinable ref so the rewrite can stay a pure sync function.
50
+ for (const n of modelRaw.nodes) {
51
+ for (const ref of [n.image, n.shape]) {
52
+ if (ref === undefined || cache.has(ref))
53
+ continue;
54
+ const kind = classifyAssetRef(ref);
55
+ if (kind === 'skip')
56
+ continue;
57
+ const base = kind === 'library' ? opts.libraryDir : opts.assetsDir;
58
+ const rel = kind === 'library' ? ref.slice('/library/'.length)
59
+ : kind === 'api-assets' ? ref.slice('/api/assets/'.length)
60
+ : ref;
61
+ const filePath = safeAssetPath(base, rel);
62
+ if (filePath === undefined) {
63
+ console.warn(`publish: refusing out-of-root asset "${ref}" for diagram "${d.name}"; leaving ref as-is.`);
64
+ continue;
65
+ }
66
+ const bytes = await readMaybe(filePath);
67
+ if (bytes !== undefined)
68
+ cache.set(ref, bytes);
69
+ else
70
+ console.warn(`publish: could not read asset "${ref}" for diagram "${d.name}" (looked in ${filePath}); leaving ref as-is.`);
71
+ }
72
+ }
73
+ const inlined = rewriteAssetRefs(modelRaw, resolveAsset);
74
+ const pagePath = path.join(opts.htmlDir, `${d.name}.html`);
75
+ await mkdir(path.dirname(pagePath), { recursive: true });
76
+ await writeFile(pagePath, stampHtml(shell, { model: inlined, layout, drawings }));
77
+ pages.push(pagePath);
78
+ if (opts.images && opts.renderPng !== undefined) {
79
+ const pngPath = path.join(opts.staticDir, `${d.name}.png`);
80
+ await mkdir(path.dirname(pngPath), { recursive: true });
81
+ await opts.renderPng(pagePath, pngPath);
82
+ images.push(pngPath);
83
+ }
84
+ }
85
+ catch (e) {
86
+ console.warn(`publish: skipping diagram "${d.name}": ${errMessage(e)}`);
87
+ continue;
88
+ }
89
+ }
90
+ // Only diagrams whose page was actually written belong in the gallery — a
91
+ // source that failed before its HTML wrote would otherwise get a dead link.
92
+ const written = new Set(pages);
93
+ const galleryPath = path.join(opts.htmlDir, 'index.html');
94
+ await writeFile(galleryPath, buildGallery(all
95
+ .filter((d) => written.has(path.join(opts.htmlDir, `${d.name}.html`)))
96
+ .map((d) => ({
97
+ name: d.name, hasImage: images.includes(path.join(opts.staticDir, `${d.name}.png`)),
98
+ }))));
99
+ return { pages, images, gallery: galleryPath };
100
+ }
@@ -0,0 +1,3 @@
1
+ /** Locate an installed Chrome/Chromium; undefined means "no browser available". */
2
+ export declare function findChrome(): string | undefined;
3
+ export declare function renderPng(htmlPath: string, pngPath: string): Promise<void>;
@@ -0,0 +1,53 @@
1
+ import { existsSync } from 'node:fs';
2
+ import path from 'node:path';
3
+ import { pathToFileURL } from 'node:url';
4
+ import { chromium } from 'playwright-core';
5
+ import { pageSize } from './pageSize.js';
6
+ /** Locate an installed Chrome/Chromium; undefined means "no browser available". */
7
+ export function findChrome() {
8
+ const env = process.env['CHROME_PATH'];
9
+ if (env !== undefined && existsSync(env))
10
+ return env;
11
+ const candidates = [
12
+ '/usr/bin/google-chrome', '/usr/bin/google-chrome-stable', '/usr/bin/chromium',
13
+ '/usr/bin/chromium-browser', '/snap/bin/chromium',
14
+ '/Applications/Google Chrome.app/Contents/MacOS/Google Chrome',
15
+ ];
16
+ return candidates.find((p) => existsSync(p));
17
+ }
18
+ /** Frame padding around the graph, in screen px. */
19
+ const FRAME_PADDING = 32;
20
+ export async function renderPng(htmlPath, pngPath) {
21
+ const executablePath = findChrome();
22
+ if (executablePath === undefined) {
23
+ throw new Error('No Chrome found for image export. Install Google Chrome/Chromium, set CHROME_PATH, or run with --no-images.');
24
+ }
25
+ const browser = await chromium.launch({ executablePath, headless: true });
26
+ try {
27
+ const page = await browser.newPage({ viewport: { width: 1600, height: 1000 }, deviceScaleFactor: 2 });
28
+ // `?export=1` tells the viewer to unfold every group for a full overview.
29
+ await page.goto(`${pathToFileURL(path.resolve(htmlPath)).href}?export=1`);
30
+ await page.waitForFunction(() => window.__DG_READY__ === true, null, { timeout: 15_000 });
31
+ // __DG_BOUNDS__ is the TRUE node bounding box in flow coordinates, so the
32
+ // frame gets the real content aspect; then re-fit into it (React Flow's
33
+ // `fitView` prop only fits on init, not after this resize) so nothing clips.
34
+ // __DG_RESERVE__ is the legend's extent in SCREEN px and is added to the
35
+ // frame unscaled — see pageSize for why the two must not be mixed.
36
+ const bounds = await page.evaluate(() => window.__DG_BOUNDS__ ?? { width: 1200, height: 800 });
37
+ const reserve = await page.evaluate(() => window.__DG_RESERVE__ ?? null);
38
+ const size = pageSize(bounds, {
39
+ maxWidth: 2000, maxHeight: 1400, padding: FRAME_PADDING,
40
+ // Only a top/bottom legend costs height, which is all `legendReserve`
41
+ // ever reports today; a side legend would need pageSize to widen instead.
42
+ reserve: reserve === null || reserve.side === 'left' || reserve.side === 'right' ? 0 : reserve.px,
43
+ });
44
+ await page.setViewportSize(size);
45
+ await page.evaluate((pad) => window.__DG_FIT__?.(pad), FRAME_PADDING);
46
+ await page.waitForTimeout(350); // let the re-fit settle into the resized frame
47
+ const el = await page.$('.react-flow');
48
+ await (el ?? page).screenshot({ path: pngPath });
49
+ }
50
+ finally {
51
+ await browser.close();
52
+ }
53
+ }
@@ -0,0 +1,32 @@
1
+ export declare const contentTypeFor: (file: string) => string;
2
+ export interface ServeOptions {
3
+ /** prebuilt studio bundle (index.html + assets + library) */
4
+ studioDir: string;
5
+ diagramsDir: string;
6
+ artifactsDir: string;
7
+ /** first port to try; the server walks upward when one is taken */
8
+ port?: number;
9
+ host?: string;
10
+ }
11
+ export interface StudioServer {
12
+ url: string;
13
+ port: number;
14
+ close: () => Promise<void>;
15
+ }
16
+ /** Resolve a request path to a file inside `root`, or undefined if it escapes.
17
+ *
18
+ * Traversal is *clamped*, not rejected: `posix.normalize` collapses `..` against
19
+ * the leading `/`, so `/a/../../etc/passwd` becomes `/etc/passwd` and then
20
+ * resolves under `root`. A request can therefore only ever name something inside
21
+ * the bundle. The explicit boundary check below is not redundant — on Windows a
22
+ * backslash segment survives posix normalization and would escape at
23
+ * `path.resolve` — and it is the assertion that keeps this function honest if
24
+ * the normalization above is ever changed. */
25
+ export declare function resolveStatic(root: string, urlPath: string): string | undefined;
26
+ /** Serve the prebuilt studio and its read/write API over plain http.
27
+ *
28
+ * This is the installed-from-npm counterpart to the Vite dev server: same API
29
+ * routes (they come from the same table), no bundler, no workspace. The studio
30
+ * itself is an ordinary SPA that only ever talks to `/api/*`, which is what
31
+ * makes a static bundle behave identically here. */
32
+ export declare function startStudioServer(opts: ServeOptions): Promise<StudioServer>;
package/dist/serve.js ADDED
@@ -0,0 +1,154 @@
1
+ import { createReadStream } from 'node:fs';
2
+ import { stat } from 'node:fs/promises';
3
+ import { createServer } from 'node:http';
4
+ import path from 'node:path';
5
+ import { errMessage } from '@diagc/core';
6
+ import { handleApiRequest } from './api/dispatch.js';
7
+ import * as handlers from './api/handlers.js';
8
+ /** Content types for what a Vite build actually emits, plus the image formats a
9
+ * diagram can reference. Anything else is streamed as octet-stream. */
10
+ const CONTENT_TYPES = {
11
+ '.html': 'text/html; charset=utf-8',
12
+ '.js': 'text/javascript; charset=utf-8',
13
+ '.mjs': 'text/javascript; charset=utf-8',
14
+ '.css': 'text/css; charset=utf-8',
15
+ '.json': 'application/json; charset=utf-8',
16
+ '.svg': 'image/svg+xml',
17
+ '.png': 'image/png',
18
+ '.jpg': 'image/jpeg',
19
+ '.jpeg': 'image/jpeg',
20
+ '.gif': 'image/gif',
21
+ '.webp': 'image/webp',
22
+ '.ico': 'image/x-icon',
23
+ '.woff': 'font/woff',
24
+ '.woff2': 'font/woff2',
25
+ '.ttf': 'font/ttf',
26
+ '.map': 'application/json; charset=utf-8',
27
+ '.txt': 'text/plain; charset=utf-8',
28
+ '.wasm': 'application/wasm',
29
+ };
30
+ export const contentTypeFor = (file) => CONTENT_TYPES[path.extname(file).toLowerCase()] ?? 'application/octet-stream';
31
+ /** Resolve a request path to a file inside `root`, or undefined if it escapes.
32
+ *
33
+ * Traversal is *clamped*, not rejected: `posix.normalize` collapses `..` against
34
+ * the leading `/`, so `/a/../../etc/passwd` becomes `/etc/passwd` and then
35
+ * resolves under `root`. A request can therefore only ever name something inside
36
+ * the bundle. The explicit boundary check below is not redundant — on Windows a
37
+ * backslash segment survives posix normalization and would escape at
38
+ * `path.resolve` — and it is the assertion that keeps this function honest if
39
+ * the normalization above is ever changed. */
40
+ export function resolveStatic(root, urlPath) {
41
+ let decoded;
42
+ try {
43
+ decoded = decodeURIComponent(urlPath.split('?')[0] ?? '');
44
+ }
45
+ catch {
46
+ return undefined; // malformed percent-encoding
47
+ }
48
+ // Normalizing against '/' first collapses '..' segments before they are ever
49
+ // joined to a real directory, so the resolve below cannot climb out.
50
+ const rel = path.posix.normalize(decoded).replace(/^(\.\.(\/|$))+/, '').replace(/^\/+/, '');
51
+ const full = path.resolve(root, rel);
52
+ const rootResolved = path.resolve(root);
53
+ if (full !== rootResolved && !full.startsWith(rootResolved + path.sep))
54
+ return undefined;
55
+ return full;
56
+ }
57
+ async function sendFile(res, file) {
58
+ try {
59
+ const info = await stat(file);
60
+ if (!info.isFile())
61
+ return false;
62
+ res.statusCode = 200;
63
+ res.setHeader('content-type', contentTypeFor(file));
64
+ res.setHeader('content-length', String(info.size));
65
+ // The studio is a localhost tool reading files the user is actively
66
+ // editing; caching a bundle across a reinstall would serve a stale studio.
67
+ res.setHeader('cache-control', 'no-store');
68
+ await new Promise((resolve, reject) => {
69
+ createReadStream(file).on('error', reject).on('end', resolve).pipe(res);
70
+ });
71
+ return true;
72
+ }
73
+ catch {
74
+ return false;
75
+ }
76
+ }
77
+ /** Listen on the first free port at or above `port`. */
78
+ function listen(server, port, host, attempts = 20) {
79
+ return new Promise((resolve, reject) => {
80
+ const tryPort = (p, left) => {
81
+ const onError = (e) => {
82
+ server.removeListener('listening', onListening);
83
+ if (e.code === 'EADDRINUSE' && left > 0) {
84
+ tryPort(p + 1, left - 1);
85
+ return;
86
+ }
87
+ reject(e);
88
+ };
89
+ const onListening = () => {
90
+ server.removeListener('error', onError);
91
+ // Read the bound port back rather than echoing the requested one: port
92
+ // 0 means "any free port", and the caller needs the real one to print.
93
+ const addr = server.address();
94
+ resolve(typeof addr === 'object' && addr !== null ? addr.port : p);
95
+ };
96
+ server.once('error', onError);
97
+ server.once('listening', onListening);
98
+ server.listen(p, host);
99
+ };
100
+ tryPort(port, attempts);
101
+ });
102
+ }
103
+ /** Serve the prebuilt studio and its read/write API over plain http.
104
+ *
105
+ * This is the installed-from-npm counterpart to the Vite dev server: same API
106
+ * routes (they come from the same table), no bundler, no workspace. The studio
107
+ * itself is an ordinary SPA that only ever talks to `/api/*`, which is what
108
+ * makes a static bundle behave identically here. */
109
+ export async function startStudioServer(opts) {
110
+ const { studioDir, diagramsDir, artifactsDir } = opts;
111
+ const host = opts.host ?? '127.0.0.1';
112
+ const index = path.join(studioDir, 'index.html');
113
+ const server = createServer((req, res) => {
114
+ void (async () => {
115
+ try {
116
+ if (await handleApiRequest(req, res, { diagramsDir, artifactsDir }, handlers))
117
+ return;
118
+ const file = resolveStatic(studioDir, req.url ?? '/');
119
+ if (file === undefined) {
120
+ res.statusCode = 400;
121
+ res.end('Bad request');
122
+ return;
123
+ }
124
+ if (await sendFile(res, file))
125
+ return;
126
+ // Unmatched API paths must 404 as API, not fall back to the SPA shell —
127
+ // a JSON caller should never have to parse HTML to learn it missed.
128
+ if ((req.url ?? '').startsWith('/api/')) {
129
+ res.statusCode = 404;
130
+ res.setHeader('content-type', 'application/json');
131
+ res.end(JSON.stringify({ issues: [{ message: `No such API route: ${req.url ?? ''}` }] }));
132
+ return;
133
+ }
134
+ if (await sendFile(res, index))
135
+ return;
136
+ res.statusCode = 404;
137
+ res.end('Not found');
138
+ }
139
+ catch (e) {
140
+ res.statusCode = 500;
141
+ res.end(errMessage(e));
142
+ }
143
+ })();
144
+ });
145
+ const port = await listen(server, opts.port ?? 5173, host);
146
+ return {
147
+ url: `http://${host}:${port}`,
148
+ port,
149
+ close: () => new Promise((resolve) => {
150
+ server.close(() => resolve());
151
+ server.closeAllConnections();
152
+ }),
153
+ };
154
+ }
@@ -0,0 +1,13 @@
1
+ import { type IncludeResolver } from '@diagc/core';
2
+ export type SnapshotMode = 'locked' | 'update';
3
+ export interface SnapshotSession {
4
+ resolver: IncludeResolver;
5
+ prune(): Promise<void>;
6
+ }
7
+ /**
8
+ * Wrap an include resolver with lockfile-pinned vendoring for remote specs.
9
+ * Local specs pass straight through — they are already in-repo and reviewable.
10
+ * The wrapper always returns the ORIGINAL absolute URL as the ref, so cycle
11
+ * detection and nested relative resolution behave exactly as unlocked fetches.
12
+ */
13
+ export declare function snapshotSession(base: IncludeResolver, rootDir: string, mode: SnapshotMode): SnapshotSession;