@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,420 @@
1
+ import { access, mkdir, readFile, readdir, rename, unlink } from 'node:fs/promises';
2
+ import { createHash } from 'node:crypto';
3
+ import path from 'node:path';
4
+ import { IMAGE_REF, composeIncludes, errMessage, isDrawings, isLayoutOverlay, validate } from '@diagc/core';
5
+ import { writeFileAtomic } from '../atomic-write.js';
6
+ import { EjectError, ejectDiagram } from '../eject.js';
7
+ import { resolveInclude } from '../includes.js';
8
+ import { snapshotSession } from '../snapshots.js';
9
+ export function isSafeName(name) {
10
+ return /^[a-z0-9][a-z0-9/-]*$/.test(name) && !name.includes('..') && !name.includes('//');
11
+ }
12
+ // path.dirname(diagramsDir) is the .diagrams root when diagramsDir is
13
+ // .diagrams/src — the same rootDir a locked session uses elsewhere (eject.ts).
14
+ // 'locked' because the boot/refresh path must never fetch or vendor a remote
15
+ // include on a viewer's behalf — that only happens at `diagc compile`.
16
+ const lockedResolver = (diagramsDir) => snapshotSession(resolveInclude, path.dirname(diagramsDir), 'locked').resolver;
17
+ const hasIncludes = (m) => m !== null && Array.isArray(m.nodes) && m.nodes.some((n) => n.include !== undefined);
18
+ /** Recursively collect every file under `dir` whose name ends in `suffix`,
19
+ * posix-joined relative to `dir` with the suffix stripped. Missing dir → [].
20
+ * Shared by the diagram-source and layout-overlay walks. */
21
+ export async function walkFiles(dir, suffix) {
22
+ const names = [];
23
+ const walk = async (d, prefix) => {
24
+ let entries;
25
+ try {
26
+ entries = await readdir(d, { withFileTypes: true });
27
+ }
28
+ catch {
29
+ return;
30
+ }
31
+ for (const e of entries) {
32
+ if (e.isDirectory())
33
+ await walk(path.join(d, e.name), `${prefix}${e.name}/`);
34
+ else if (e.name.endsWith(suffix))
35
+ names.push(`${prefix}${e.name.slice(0, -suffix.length)}`);
36
+ }
37
+ };
38
+ await walk(dir, '');
39
+ return names;
40
+ }
41
+ /** Recursively collect `<name>` for every `*.diagram.json` under `dir`
42
+ * (posix-joined, suffix stripped). Missing dir → []. */
43
+ export async function walkDiagramJson(dir) {
44
+ return walkFiles(dir, '.diagram.json');
45
+ }
46
+ /** Render-ready models for the studio boot: JSON sources (editable) served from
47
+ * `diagramsDir`, compiled TS artifacts from `artifactsDir`. A source shadows its
48
+ * artifact so unsaved-compile staleness never shows. */
49
+ export async function listDiagramModels(diagramsDir, artifactsDir) {
50
+ const sourceNames = new Set(await walkDiagramJson(diagramsDir));
51
+ const artifactNames = await walkDiagramJson(artifactsDir);
52
+ const all = [...new Set([...sourceNames, ...artifactNames])].sort();
53
+ const diagrams = [];
54
+ for (const name of all) {
55
+ const editable = sourceNames.has(name);
56
+ const file = editable
57
+ ? path.join(diagramsDir, `${name}.diagram.json`)
58
+ : path.join(artifactsDir, `${name}.diagram.json`);
59
+ let model = null;
60
+ const issues = [];
61
+ try {
62
+ model = JSON.parse(await readFile(file, 'utf8'));
63
+ }
64
+ catch {
65
+ issues.push({ message: `Could not read model for '${name}'` });
66
+ }
67
+ if (editable && hasIncludes(model)) {
68
+ try {
69
+ const { model: composed, warnings } = await composeIncludes(model, path.resolve(file), lockedResolver(diagramsDir));
70
+ // compileFile refuses an invalid composed result outright (CLAUDE.md:
71
+ // "the renderer may assume the model is sound") — an id collision
72
+ // between an umbrella-declared node and a namespaced include can pass
73
+ // composeIncludes (which only grafts) while still being invalid, so
74
+ // this must be checked here too, not just on compile.
75
+ const validationIssues = validate(composed);
76
+ if (validationIssues.length > 0) {
77
+ // fall back to the raw model (include nodes as placeholders); it
78
+ // still renders, unlike the unsound composed result
79
+ issues.push(...validationIssues);
80
+ }
81
+ else {
82
+ model = composed;
83
+ for (const w of warnings)
84
+ issues.push({ message: w });
85
+ }
86
+ }
87
+ catch (e) {
88
+ // the raw model still renders (include nodes as placeholders); say why
89
+ issues.push({ message: `Includes not expanded: ${errMessage(e)}` });
90
+ }
91
+ }
92
+ diagrams.push({ name, model, issues, editable });
93
+ }
94
+ return { status: 200, body: { diagrams } };
95
+ }
96
+ /** All layout overlays under `diagramsDir`, keyed by diagram name. Corrupt
97
+ * overlays are skipped, never fatal. */
98
+ export async function listLayouts(diagramsDir) {
99
+ const layouts = {};
100
+ for (const name of await walkFiles(diagramsDir, '.layout.json')) {
101
+ try {
102
+ layouts[name] = JSON.parse(await readFile(path.join(diagramsDir, `${name}.layout.json`), 'utf8'));
103
+ }
104
+ catch {
105
+ /* skip corrupt overlay */
106
+ }
107
+ }
108
+ return { status: 200, body: { layouts } };
109
+ }
110
+ /** All drawings sidecars under `diagramsDir`, keyed by diagram name. Corrupt
111
+ * files are skipped, never fatal — same contract as listLayouts. */
112
+ export async function listDrawings(diagramsDir) {
113
+ const drawings = {};
114
+ for (const name of await walkFiles(diagramsDir, '.drawings.json')) {
115
+ try {
116
+ drawings[name] = JSON.parse(await readFile(path.join(diagramsDir, `${name}.drawings.json`), 'utf8'));
117
+ }
118
+ catch {
119
+ /* skip corrupt sidecar */
120
+ }
121
+ }
122
+ return { status: 200, body: { drawings } };
123
+ }
124
+ /** the JSON source (+ sibling layout and drawings) of a designer-owned diagram — the studio
125
+ * reads these directly so it never depends on a compile watcher for its own files */
126
+ export async function readDiagram(diagramsDir, name) {
127
+ if (!isSafeName(name))
128
+ return { status: 400, body: { issues: [{ message: `Unsafe name '${name}'` }] } };
129
+ let model;
130
+ try {
131
+ model = JSON.parse(await readFile(path.join(diagramsDir, `${name}.diagram.json`), 'utf8'));
132
+ }
133
+ catch {
134
+ return { status: 404, body: { issues: [{ message: `No diagram source '${name}'` }] } };
135
+ }
136
+ let layout;
137
+ try {
138
+ layout = JSON.parse(await readFile(path.join(diagramsDir, `${name}.layout.json`), 'utf8'));
139
+ }
140
+ catch {
141
+ layout = undefined;
142
+ }
143
+ let drawings;
144
+ try {
145
+ drawings = JSON.parse(await readFile(path.join(diagramsDir, `${name}.drawings.json`), 'utf8'));
146
+ }
147
+ catch {
148
+ drawings = undefined;
149
+ }
150
+ return {
151
+ status: 200,
152
+ body: {
153
+ model,
154
+ ...(layout !== undefined ? { layout } : {}),
155
+ ...(drawings !== undefined ? { drawings } : {}),
156
+ },
157
+ };
158
+ }
159
+ /** Composed read of an editable source — the studio's view-refresh after a
160
+ * save. Sources without includes pass through untouched. */
161
+ export async function readComposedDiagram(diagramsDir, name) {
162
+ if (!isSafeName(name))
163
+ return { status: 400, body: { issues: [{ message: `Unsafe name '${name}'` }] } };
164
+ const file = path.join(diagramsDir, `${name}.diagram.json`);
165
+ let model;
166
+ try {
167
+ model = JSON.parse(await readFile(file, 'utf8'));
168
+ }
169
+ catch {
170
+ return { status: 404, body: { issues: [{ message: `No diagram source '${name}'` }] } };
171
+ }
172
+ if (!hasIncludes(model))
173
+ return { status: 200, body: { model } };
174
+ try {
175
+ const { model: composed, warnings } = await composeIncludes(model, path.resolve(file), lockedResolver(diagramsDir));
176
+ // Same soundness check as listDiagramModels: a composed model that fails
177
+ // validation must never reach the renderer, so refuse it like a failed
178
+ // compose instead of returning 200 with an unsound model.
179
+ const issues = validate(composed);
180
+ if (issues.length > 0)
181
+ return { status: 409, body: { issues } };
182
+ return { status: 200, body: { model: composed, ...(warnings.length > 0 ? { warnings } : {}) } };
183
+ }
184
+ catch (e) {
185
+ return { status: 409, body: { issues: [{ message: errMessage(e) }] } };
186
+ }
187
+ }
188
+ export async function saveDiagram(diagramsDir, name, payload) {
189
+ if (!isSafeName(name))
190
+ return { status: 400, body: { issues: [{ message: `Unsafe name '${name}'` }] } };
191
+ const p = payload;
192
+ const arraysOk = p !== null &&
193
+ p.version === 1 &&
194
+ Array.isArray(p.nodes) &&
195
+ Array.isArray(p.containment) &&
196
+ Array.isArray(p.relations) &&
197
+ Array.isArray(p.layers) &&
198
+ Array.isArray(p.planes);
199
+ if (!arraysOk) {
200
+ return { status: 400, body: { issues: [{ message: 'Not a version-1 diagram model' }] } };
201
+ }
202
+ const issues = validate(payload);
203
+ if (issues.length > 0)
204
+ return { status: 400, body: { issues } };
205
+ const target = path.join(diagramsDir, `${name}.diagram.json`);
206
+ await mkdir(path.dirname(target), { recursive: true });
207
+ await writeFileAtomic(target, `${JSON.stringify(payload, null, 2)}\n`);
208
+ return { status: 200, body: { ok: true } };
209
+ }
210
+ /** Move a designer-owned diagram (and its sibling layout, if any) to a new name,
211
+ * rewriting the model's internal id/name to match so the file stays self-consistent. */
212
+ export async function renameDiagram(diagramsDir, from, to) {
213
+ if (!isSafeName(from) || !isSafeName(to)) {
214
+ return { status: 400, body: { issues: [{ message: `Unsafe name '${isSafeName(from) ? to : from}'` }] } };
215
+ }
216
+ if (from === to)
217
+ return { status: 400, body: { issues: [{ message: 'New name is the same as the old' }] } };
218
+ const fromDiagram = path.join(diagramsDir, `${from}.diagram.json`);
219
+ const toDiagram = path.join(diagramsDir, `${to}.diagram.json`);
220
+ let raw;
221
+ try {
222
+ raw = await readFile(fromDiagram, 'utf8');
223
+ }
224
+ catch {
225
+ return { status: 404, body: { issues: [{ message: `No diagram source '${from}'` }] } };
226
+ }
227
+ try {
228
+ await access(toDiagram);
229
+ return { status: 409, body: { issues: [{ message: `A diagram named '${to}' already exists` }] } };
230
+ }
231
+ catch {
232
+ /* target free — proceed */
233
+ }
234
+ let model;
235
+ try {
236
+ model = JSON.parse(raw);
237
+ }
238
+ catch {
239
+ return { status: 400, body: { issues: [{ message: `Corrupt diagram source '${from}'` }] } };
240
+ }
241
+ model['id'] = to;
242
+ model['name'] = to;
243
+ await mkdir(path.dirname(toDiagram), { recursive: true });
244
+ await writeFileAtomic(toDiagram, `${JSON.stringify(model, null, 2)}\n`);
245
+ await unlink(fromDiagram);
246
+ // Carry the layout over when it exists; its absence is not an error.
247
+ try {
248
+ await rename(path.join(diagramsDir, `${from}.layout.json`), path.join(diagramsDir, `${to}.layout.json`));
249
+ }
250
+ catch {
251
+ /* no layout to move */
252
+ }
253
+ try {
254
+ await rename(path.join(diagramsDir, `${from}.drawings.json`), path.join(diagramsDir, `${to}.drawings.json`));
255
+ }
256
+ catch {
257
+ /* no drawings to move */
258
+ }
259
+ return { status: 200, body: { ok: true } };
260
+ }
261
+ /** Promote a JSON-owned diagram to a generated `.diagram.ts`. See `ejectDiagram`
262
+ * for the round-trip guarantee; this just maps its failure codes to statuses. */
263
+ export async function ejectDiagramSource(diagramsDir, artifactsDir, name) {
264
+ if (!isSafeName(name))
265
+ return { status: 400, body: { issues: [{ message: `Unsafe name '${name}'` }] } };
266
+ try {
267
+ await ejectDiagram(diagramsDir, artifactsDir, name);
268
+ return { status: 200, body: { ok: true } };
269
+ }
270
+ catch (e) {
271
+ if (e instanceof EjectError) {
272
+ const status = e.code === 'not-found' ? 404 : e.code === 'invalid' ? 400 : 409;
273
+ return { status, body: { issues: [{ message: e.message }] } };
274
+ }
275
+ throw e;
276
+ }
277
+ }
278
+ export async function saveLayout(diagramsDir, name, payload) {
279
+ if (!isSafeName(name))
280
+ return { status: 400, body: { issues: [{ message: `Unsafe name '${name}'` }] } };
281
+ // Core's structural guard mirrors the old inline checks (version 1, nested
282
+ // numeric x/y planes, optional positive-finite sizes) — one source of truth
283
+ // shared with the client-side artifact loader.
284
+ if (!isLayoutOverlay(payload))
285
+ return { status: 400, body: { issues: [{ message: 'Not a version-1 layout overlay' }] } };
286
+ const target = path.join(diagramsDir, `${name}.layout.json`);
287
+ await mkdir(path.dirname(target), { recursive: true });
288
+ await writeFileAtomic(target, `${JSON.stringify(payload, null, 2)}\n`);
289
+ return { status: 200, body: { ok: true } };
290
+ }
291
+ /** Persist the drawings sidecar. An overlay in which no bucket holds a stroke
292
+ * DELETES the file instead of writing it: a diagram that never had drawings
293
+ * must never grow an empty `<name>.drawings.json`, and erasing the last stroke
294
+ * should leave the tree as it was. */
295
+ export async function saveDrawings(diagramsDir, name, payload) {
296
+ if (!isSafeName(name))
297
+ return { status: 400, body: { issues: [{ message: `Unsafe name '${name}'` }] } };
298
+ if (!isDrawings(payload))
299
+ return { status: 400, body: { issues: [{ message: 'Not a version-1 drawings overlay' }] } };
300
+ const target = path.join(diagramsDir, `${name}.drawings.json`);
301
+ const hasStrokes = Object.values(payload.planes).some((bucket) => bucket.length > 0);
302
+ if (!hasStrokes) {
303
+ try {
304
+ await unlink(target);
305
+ }
306
+ catch (e) {
307
+ // ENOENT only: there was nothing to delete, which is the ordinary case for
308
+ // a diagram that never had ink. Anything else (EACCES, EPERM, EISDIR) means
309
+ // the strokes are still on disk — rethrow so dispatch turns it into a 500
310
+ // and useEditor.save surfaces it, instead of answering `{ ok: true }` and
311
+ // letting the erased strokes resurrect on the next boot.
312
+ if (e.code !== 'ENOENT')
313
+ throw e;
314
+ }
315
+ return { status: 200, body: { ok: true } };
316
+ }
317
+ await mkdir(path.dirname(target), { recursive: true });
318
+ await writeFileAtomic(target, `${JSON.stringify(payload, null, 2)}\n`);
319
+ return { status: 200, body: { ok: true } };
320
+ }
321
+ export async function readLibrary(diagramsDir) {
322
+ try {
323
+ const raw = await readFile(path.join(diagramsDir, 'library.json'), 'utf8');
324
+ return { status: 200, body: JSON.parse(raw) };
325
+ }
326
+ catch {
327
+ return { status: 200, body: { categories: [], entries: [] } };
328
+ }
329
+ }
330
+ // Must cover every NodeTemplate presentation channel — 'shape' included, or a
331
+ // user library holding an imported silhouette is rejected on save.
332
+ const TEMPLATE_STRING_KEYS = new Set(['type', 'color', 'image', 'shape']);
333
+ const TEMPLATE_NUMBER_KEYS = new Set(['width', 'height']);
334
+ /** Persist the whole user library. Validates internal consistency only — bundled
335
+ * packs are merged client-side and never written here. */
336
+ export async function saveLibrary(diagramsDir, payload) {
337
+ const p = payload;
338
+ if (p === null || !Array.isArray(p.categories) || !Array.isArray(p.entries)) {
339
+ return { status: 400, body: { issues: [{ message: 'Not a library { categories, entries }' }] } };
340
+ }
341
+ const catIds = new Set();
342
+ for (const c of p.categories) {
343
+ const cat = c;
344
+ if (typeof cat.id !== 'string' || typeof cat.name !== 'string') {
345
+ return { status: 400, body: { issues: [{ message: 'Category needs string id and name' }] } };
346
+ }
347
+ if (catIds.has(cat.id))
348
+ return { status: 400, body: { issues: [{ message: `Duplicate category '${cat.id}'` }] } };
349
+ catIds.add(cat.id);
350
+ }
351
+ const entryIds = new Set();
352
+ for (const e of p.entries) {
353
+ const entry = e;
354
+ if (typeof entry.id !== 'string' || typeof entry.name !== 'string' || typeof entry.category !== 'string') {
355
+ return { status: 400, body: { issues: [{ message: 'Entry needs string id, name, category' }] } };
356
+ }
357
+ if (!catIds.has(entry.category)) {
358
+ return { status: 400, body: { issues: [{ message: `Entry '${entry.id}' references unknown category '${entry.category}'` }] } };
359
+ }
360
+ if (entryIds.has(entry.id))
361
+ return { status: 400, body: { issues: [{ message: `Duplicate entry '${entry.id}'` }] } };
362
+ entryIds.add(entry.id);
363
+ const t = entry.template;
364
+ if (t === null || typeof t !== 'object' || Array.isArray(t)) {
365
+ return { status: 400, body: { issues: [{ message: `Entry '${entry.id}' missing template` }] } };
366
+ }
367
+ for (const [k, v] of Object.entries(t)) {
368
+ const ok = TEMPLATE_STRING_KEYS.has(k) ? typeof v === 'string' : TEMPLATE_NUMBER_KEYS.has(k) ? typeof v === 'number' : false;
369
+ if (!ok)
370
+ return { status: 400, body: { issues: [{ message: `Entry '${entry.id}' has invalid template field '${k}'` }] } };
371
+ }
372
+ }
373
+ const target = path.join(diagramsDir, 'library.json');
374
+ await mkdir(path.dirname(target), { recursive: true });
375
+ await writeFileAtomic(target, `${JSON.stringify(payload, null, 2)}\n`);
376
+ return { status: 200, body: { ok: true } };
377
+ }
378
+ // Keys here must stay in sync with IMAGE_REF's extension group (@diagc/core) —
379
+ // an extension accepted by the regex but missing here would 404 on read.
380
+ const ASSET_EXT = {
381
+ 'image/png': 'png',
382
+ 'image/jpeg': 'jpg',
383
+ 'image/svg+xml': 'svg',
384
+ 'image/webp': 'webp',
385
+ 'image/gif': 'gif',
386
+ };
387
+ const ASSET_TYPE = Object.fromEntries(Object.entries(ASSET_EXT).map(([t, e]) => [e, t]));
388
+ export const MAX_ASSET_BYTES = 5 * 1024 * 1024;
389
+ /** store image bytes under their content hash; identical drops dedupe to one file */
390
+ export async function saveAsset(diagramsDir, contentType, bytes) {
391
+ const ext = ASSET_EXT[contentType.split(';')[0]?.trim() ?? ''];
392
+ if (ext === undefined) {
393
+ return { status: 400, body: { issues: [{ message: `Unsupported image type '${contentType}'` }] } };
394
+ }
395
+ if (bytes.length === 0 || bytes.length > MAX_ASSET_BYTES) {
396
+ return { status: 400, body: { issues: [{ message: `Image must be 1 byte to ${MAX_ASSET_BYTES / 1024 / 1024} MB` }] } };
397
+ }
398
+ const name = `${createHash('sha256').update(bytes).digest('hex').slice(0, 12)}.${ext}`;
399
+ const target = path.join(diagramsDir, 'assets', name);
400
+ await mkdir(path.dirname(target), { recursive: true });
401
+ try {
402
+ await access(target); // already stored — content hash guarantees same bytes
403
+ }
404
+ catch {
405
+ await writeFileAtomic(target, bytes);
406
+ }
407
+ return { status: 200, body: { name } };
408
+ }
409
+ export async function readAsset(diagramsDir, name) {
410
+ if (!IMAGE_REF.test(name))
411
+ return { status: 400, body: { issues: [{ message: `Unsafe asset name '${name}'` }] } };
412
+ try {
413
+ const bytes = await readFile(path.join(diagramsDir, 'assets', name));
414
+ const ext = name.split('.').at(-1) ?? '';
415
+ return { status: 200, body: null, bytes, contentType: ASSET_TYPE[ext === 'jpeg' ? 'jpg' : ext] ?? 'application/octet-stream' };
416
+ }
417
+ catch {
418
+ return { status: 404, body: { issues: [{ message: `No asset '${name}'` }] } };
419
+ }
420
+ }
@@ -0,0 +1,3 @@
1
+ export * as handlers from './handlers.js';
2
+ export { handleApiRequest, runRoute, type ApiContext, type Handlers, type RouteRequest, type RouteResponse, } from './dispatch.js';
3
+ export { matchRoute, ROUTES, type Route, type RouteCtx } from './routes.js';
@@ -0,0 +1,7 @@
1
+ // The studio's read/write API, shared by two hosts: the Vite dev middleware in
2
+ // `apps/studio` (which loads this module lazily, through Vite's own pipeline)
3
+ // and the packaged `diagc studio` server, which has no Vite at all. One route
4
+ // table, so an added route cannot exist in only one of them.
5
+ export * as handlers from './handlers.js';
6
+ export { handleApiRequest, runRoute, } from './dispatch.js';
7
+ export { matchRoute, ROUTES } from './routes.js';
@@ -0,0 +1,27 @@
1
+ type Handlers = typeof import('./handlers.js');
2
+ /** One route handler's result: handlers' JSON envelope plus readAsset's
3
+ * optional `bytes`/`contentType`, which the wrapper streams raw. */
4
+ export type RouteResult = Awaited<ReturnType<Handlers['readAsset']>>;
5
+ /** Capture groups, already-read body, content-type, and dirs for a request. */
6
+ export interface RouteCtx {
7
+ match: RegExpMatchArray;
8
+ body: unknown;
9
+ /** content-type of the raw body (only the asset-upload route reads it) */
10
+ contentType?: string;
11
+ diagramsDir: string;
12
+ artifactsDir: string;
13
+ }
14
+ export type BodyMode = 'none' | 'json' | 'raw';
15
+ export interface Route {
16
+ method: string;
17
+ /** non-global regex against `req.url`; captures are passed to the handler */
18
+ pattern: RegExp;
19
+ /** 'json' parses the body (malformed JSON → 400), 'raw' passes bytes
20
+ * through, 'none' (default) leaves the body unread. */
21
+ bodyMode?: BodyMode;
22
+ handler: (h: Handlers, ctx: RouteCtx) => Promise<RouteResult>;
23
+ }
24
+ export declare const ROUTES: Route[];
25
+ /** The route matching `method` + `url`, or undefined. First match wins. */
26
+ export declare function matchRoute(method: string | undefined, url: string): Route | undefined;
27
+ export {};
@@ -0,0 +1,43 @@
1
+ // Route table: the first pattern a request matches wins, so entry order here
2
+ // IS the dispatch order (the rename entry must precede the generic save entry).
3
+ export const ROUTES = [
4
+ // --- assets: raw body in, raw bytes out ---
5
+ { method: 'POST', pattern: /^\/api\/assets$/, bodyMode: 'raw', handler: (h, c) => h.saveAsset(c.diagramsDir, c.contentType ?? '', c.body) },
6
+ { method: 'GET', pattern: /^\/api\/assets\/([^/]+)$/, handler: (h, c) => h.readAsset(c.diagramsDir, decodeURIComponent(c.match[1] ?? '')) },
7
+ // --- library ---
8
+ { method: 'GET', pattern: /^\/api\/library$/, handler: (h, c) => h.readLibrary(c.diagramsDir) },
9
+ { method: 'PUT', pattern: /^\/api\/library$/, bodyMode: 'json', handler: (h, c) => h.saveLibrary(c.diagramsDir, c.body) },
10
+ // --- diagrams & layouts ---
11
+ { method: 'GET', pattern: /^\/api\/diagrams$/, handler: (h, c) => h.listDiagramModels(c.diagramsDir, c.artifactsDir) },
12
+ { method: 'GET', pattern: /^\/api\/layouts$/, handler: (h, c) => h.listLayouts(c.diagramsDir) },
13
+ { method: 'GET', pattern: /^\/api\/drawings$/, handler: (h, c) => h.listDrawings(c.diagramsDir) },
14
+ // Composed read must precede the generic read, whose `(.+)` would swallow
15
+ // `<name>/composed` as a filename.
16
+ { method: 'GET', pattern: /^\/api\/diagrams\/(.+)\/composed$/, handler: (h, c) => h.readComposedDiagram(c.diagramsDir, decodeURIComponent(c.match[1] ?? '')) },
17
+ { method: 'GET', pattern: /^\/api\/diagrams\/(.+)$/, handler: (h, c) => h.readDiagram(c.diagramsDir, decodeURIComponent(c.match[1] ?? '')) },
18
+ // Rename must be checked before the generic save route, whose `(.+)`
19
+ // would otherwise swallow `<from>/rename` as a filename.
20
+ { method: 'POST', pattern: /^\/api\/diagrams\/(.+)\/rename$/, bodyMode: 'json', handler: async (h, c) => {
21
+ const to = c.body?.to;
22
+ if (typeof to !== 'string')
23
+ return { status: 400, body: { issues: [{ message: "Missing 'to' name" }] } };
24
+ return h.renameDiagram(c.diagramsDir, decodeURIComponent(c.match[1] ?? ''), to);
25
+ } },
26
+ // Eject must also precede the generic save route, whose `(.+)` would
27
+ // swallow `<name>/eject` as a filename.
28
+ { method: 'POST', pattern: /^\/api\/diagrams\/(.+)\/eject$/, handler: (h, c) => h.ejectDiagramSource(c.diagramsDir, c.artifactsDir, decodeURIComponent(c.match[1] ?? '')) },
29
+ { method: 'POST', pattern: /^\/api\/(diagrams|layouts|drawings)\/(.+)$/, bodyMode: 'json', handler: (h, c) => {
30
+ // decodeURIComponent throws on malformed percent-encoding — kept
31
+ // inside the boundary so a bad name yields 500, never a crash.
32
+ const name = decodeURIComponent(c.match[2] ?? '');
33
+ return c.match[1] === 'diagrams'
34
+ ? h.saveDiagram(c.diagramsDir, name, c.body)
35
+ : c.match[1] === 'layouts'
36
+ ? h.saveLayout(c.diagramsDir, name, c.body)
37
+ : h.saveDrawings(c.diagramsDir, name, c.body);
38
+ } },
39
+ ];
40
+ /** The route matching `method` + `url`, or undefined. First match wins. */
41
+ export function matchRoute(method, url) {
42
+ return ROUTES.find((r) => r.method === method && r.pattern.test(url));
43
+ }
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Write `data` to `target` atomically: stage it in a hidden temp file in the
3
+ * same directory (same filesystem, so `rename` is atomic), then rename over
4
+ * the target. A crash or full disk mid-write leaves the previous content
5
+ * intact instead of a truncated file — these are committed sources, not
6
+ * regenerable build output.
7
+ */
8
+ export declare function writeFileAtomic(target: string, data: string | Buffer): Promise<void>;
@@ -0,0 +1,21 @@
1
+ import { randomBytes } from 'node:crypto';
2
+ import { rename, unlink, writeFile } from 'node:fs/promises';
3
+ import path from 'node:path';
4
+ /**
5
+ * Write `data` to `target` atomically: stage it in a hidden temp file in the
6
+ * same directory (same filesystem, so `rename` is atomic), then rename over
7
+ * the target. A crash or full disk mid-write leaves the previous content
8
+ * intact instead of a truncated file — these are committed sources, not
9
+ * regenerable build output.
10
+ */
11
+ export async function writeFileAtomic(target, data) {
12
+ const tmp = path.join(path.dirname(target), `.${path.basename(target)}.${randomBytes(6).toString('hex')}.tmp`);
13
+ try {
14
+ await writeFile(tmp, data);
15
+ await rename(tmp, target);
16
+ }
17
+ catch (e) {
18
+ await unlink(tmp).catch(() => { });
19
+ throw e;
20
+ }
21
+ }
package/dist/cli.d.ts ADDED
@@ -0,0 +1,21 @@
1
+ interface Args {
2
+ command: string;
3
+ files: string[];
4
+ out: string;
5
+ images: boolean;
6
+ updateIncludes: boolean;
7
+ }
8
+ /** Parse argv into command + flags. Unknown flags (anything `--…` that is not
9
+ * recognized) are an error rather than being silently treated as a file path,
10
+ * so a typo surfaces loudly instead of quietly skewing the file set. */
11
+ export declare function parseArgs(argv: string[]): Args;
12
+ /** Thrown by {@link parseArgs} for `--help`/`-h`; `main` prints usage and exits 0. */
13
+ export declare class HelpRequested extends Error {
14
+ constructor();
15
+ }
16
+ /** Thrown by {@link parseArgs} for an unrecognized flag; `main` prints the
17
+ * offending flag plus usage and exits 1. */
18
+ export declare class UnknownFlagError extends Error {
19
+ constructor(flag: string);
20
+ }
21
+ export {};