From d653e31c5d80949415a1a52749d0f5eb7c0446a1 Mon Sep 17 00:00:00 2001 From: konojunya Date: Fri, 4 Sep 2026 19:09:13 +0900 Subject: [PATCH] Integrate the expanded core icon catalog --- Cargo.lock | 10 +++++----- Cargo.toml | 4 ++-- README.md | 2 +- scripts/validate-render.py | 2 ++ tests/fixtures/render.stack | 4 +++- 5 files changed, 13 insertions(+), 9 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index e905227..7caad08 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -239,8 +239,8 @@ source = "git+https://github.com/stack-sh/compiler.git?rev=4a18fac42afc2256a1bb3 [[package]] name = "stack-engine" -version = "0.4.0" -source = "git+https://github.com/stack-sh/engine.git?rev=8b62b0ef77c12b1b88981ea569379d3d9737a824#8b62b0ef77c12b1b88981ea569379d3d9737a824" +version = "0.5.0" +source = "git+https://github.com/stack-sh/engine.git?rev=c82595e33c6f26b67fec7b5c2171921765e30000#c82595e33c6f26b67fec7b5c2171921765e30000" dependencies = [ "roxmltree", "serde_json", @@ -253,15 +253,15 @@ dependencies = [ [[package]] name = "stack-formatter" version = "0.1.0" -source = "git+https://github.com/stack-sh/engine.git?rev=8b62b0ef77c12b1b88981ea569379d3d9737a824#8b62b0ef77c12b1b88981ea569379d3d9737a824" +source = "git+https://github.com/stack-sh/engine.git?rev=c82595e33c6f26b67fec7b5c2171921765e30000#c82595e33c6f26b67fec7b5c2171921765e30000" dependencies = [ "stack-compiler", ] [[package]] name = "stack-theme" -version = "0.3.0" -source = "git+https://github.com/stack-sh/theme.git?rev=5dbe41326370260cfc6b72d4aab4470318d66dab#5dbe41326370260cfc6b72d4aab4470318d66dab" +version = "0.4.0" +source = "git+https://github.com/stack-sh/theme.git?rev=2347315e6e86ab9d2708e05fd3f9b5f3d87e1241#2347315e6e86ab9d2708e05fd3f9b5f3d87e1241" dependencies = [ "serde", "serde_json", diff --git a/Cargo.toml b/Cargo.toml index 54d8091..f9e979b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -17,8 +17,8 @@ path = "src/main.rs" roxmltree = "=0.21.1" serde_json = "=1.0.151" sha2 = "=0.11.0" -stack-engine = { git = "https://github.com/stack-sh/engine.git", rev = "8b62b0ef77c12b1b88981ea569379d3d9737a824" } -stack-theme = { git = "https://github.com/stack-sh/theme.git", rev = "5dbe41326370260cfc6b72d4aab4470318d66dab" } +stack-engine = { git = "https://github.com/stack-sh/engine.git", rev = "c82595e33c6f26b67fec7b5c2171921765e30000" } +stack-theme = { git = "https://github.com/stack-sh/theme.git", rev = "2347315e6e86ab9d2708e05fd3f9b5f3d87e1241" } zip = { version = "=6.0.0", default-features = false, features = ["deflate-flate2-zlib-rs"] } [features] diff --git a/README.md b/README.md index 3691305..ff87624 100644 --- a/README.md +++ b/README.md @@ -33,7 +33,7 @@ stack render arch.stack --provider-pack .stack-icons/aws -o arch.svg --notice ar The CLI links `stack-engine` as a native Rust dependency. It owns filesystem and standard-stream behavior, process exit codes, configuration discovery, provider-pack import, notice output, and command presentation. It must not duplicate compiler, formatter, layout, or SVG-rendering logic. -The bundled engine resolves the provider-neutral core icons `api`, `web`, `mobile`, `desktop`, `server`, `container`, `cluster`, `cloud`, `scheduler`, `webhook`, `identity`, and `observability`. Vendor assets are not bundled. Local provider-pack import preserves upstream artwork and attaches source, archive hash, transformation, terms, and notice metadata. Rendering resolves namespaced IDs such as `aws:s3`, preserves the authored semantic `kind`, embeds only the selected local asset, and writes its provenance into SVG metadata and the optional notice sidecar. +The bundled engine resolves 30 provider-neutral core icons: `api`, `web`, `mobile`, `desktop`, `server`, `container`, `cluster`, `cloud`, `scheduler`, `webhook`, `identity`, `observability`, `gateway`, `load-balancer`, `dns`, `cdn`, `firewall`, `network`, `event`, `stream`, `search`, `analytics`, `repository`, `pipeline`, `secret`, `document`, `task`, `chat`, `email`, and `ai`. Vendor assets are not bundled. Local provider-pack import preserves upstream artwork and attaches source, archive hash, transformation, terms, and notice metadata. Rendering resolves namespaced IDs such as `aws:s3`, preserves the authored semantic `kind`, embeds only the selected local asset, and writes its provenance into SVG metadata and the optional notice sidecar. ## Development diff --git a/scripts/validate-render.py b/scripts/validate-render.py index 2f2e301..c3c3d57 100644 --- a/scripts/validate-render.py +++ b/scripts/validate-render.py @@ -25,5 +25,7 @@ raise SystemExit("render output is not an SVG root element") if not root.attrib.get("viewBox"): raise SystemExit("render output has no viewBox") +if 'data-icon-id="gateway"' not in completed.stdout.decode("utf-8"): + raise SystemExit("render output does not contain the gateway core icon") print("validated CLI standalone SVG") diff --git a/tests/fixtures/render.stack b/tests/fixtures/render.stack index dbe4279..4ebd5d6 100644 --- a/tests/fixtures/render.stack +++ b/tests/fixtures/render.stack @@ -1,5 +1,7 @@ stack 1.0 diagram "CLI render" { node web "Web" edge web -> api "HTTPS" - node api "API" + node api "API" { + icon "gateway" + } }