From 3dcb586a8fc8b517bbd2d932f5a0d68fd4917728 Mon Sep 17 00:00:00 2001 From: Samuel Williams Date: Tue, 8 Sep 2026 21:12:52 +1200 Subject: [PATCH 1/3] Adopt bake-node for JavaScript packages Assisted-By: devx/7ef83274-928f-499d-b668-48449b1ff60e --- .github/workflows/test-packages.yaml | 30 ++++ lib/utopia/project/import_map.rb | 7 +- package.json | 14 +- public/_components/.bake-node.json | 220 +++++++++++++++++++++++++++ releases.md | 6 + utopia-project.gemspec | 3 +- 6 files changed, 272 insertions(+), 8 deletions(-) create mode 100644 .github/workflows/test-packages.yaml create mode 100644 public/_components/.bake-node.json diff --git a/.github/workflows/test-packages.yaml b/.github/workflows/test-packages.yaml new file mode 100644 index 0000000..32285db --- /dev/null +++ b/.github/workflows/test-packages.yaml @@ -0,0 +1,30 @@ +name: Test Packages + +on: [push, pull_request] + +permissions: + contents: read + +jobs: + test: + name: Test Packages + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v7 + + - uses: ruby/setup-ruby@v1 + with: + ruby-version: ruby + bundler-cache: true + + - uses: actions/setup-node@v7 + with: + node-version: 24 + cache: npm + + - name: Install dependencies + run: bundle exec bake node:install frozen=true + + - name: Check static packages + run: bundle exec bake node:packages:check diff --git a/lib/utopia/project/import_map.rb b/lib/utopia/project/import_map.rb index faf2284..fcc0fb9 100644 --- a/lib/utopia/project/import_map.rb +++ b/lib/utopia/project/import_map.rb @@ -7,9 +7,8 @@ module Utopia module Project - IMPORT_MAP = Utopia::ImportMap.build(base: "/_components/") do |map| - map.import("mermaid", "./mermaid/mermaid.esm.min.mjs") - map.import("@socketry/syntax", "./@socketry/syntax/Syntax.js") - end + IMPORT_MAP = Utopia::ImportMap.load_manifest( + File.expand_path("../../../public/_components", __dir__) + ) end end diff --git a/package.json b/package.json index bcb5f7b..a847c62 100644 --- a/package.json +++ b/package.json @@ -3,13 +3,21 @@ "@socketry/syntax": "^0.6.1", "mermaid": "^11.16.1" }, - "utopia": { - "components": { + "bake-node": { + "packages": { + "@socketry/syntax": { + "imports": { + "@socketry/syntax": "Syntax.js" + } + }, "mermaid": { "include": [ "mermaid.esm.min.mjs", "chunks/mermaid.esm.min/**/*.mjs" - ] + ], + "imports": { + "mermaid": "mermaid.esm.min.mjs" + } } } } diff --git a/public/_components/.bake-node.json b/public/_components/.bake-node.json new file mode 100644 index 0000000..a6234c9 --- /dev/null +++ b/public/_components/.bake-node.json @@ -0,0 +1,220 @@ +{ + "format": 1, + "base": "/_components/", + "imports": { + "@socketry/syntax": "/_components/@socketry/syntax/Syntax.js", + "mermaid": "/_components/mermaid/mermaid.esm.min.mjs" + }, + "packages": { + "@socketry/syntax": { + "version": "0.6.1", + "source": ".", + "files": { + "Syntax.js": "54303c31cc89c7e0c0c7e4aab677496c651eae22d1130f154cc065f78639c65f", + "Syntax/CodeElement.js": "c8153fb1b44d2e77d0f7daf4fd99f27466738d6ee0c5ce0eac2f745880de17d8", + "Syntax/Errors.js": "01d9e4f122f0398651779a9b49e722ddf549387a07a3c9e102c6aba124de0ae4", + "Syntax/Language.js": "357dd532638aa72a79351e1fbefb3a8b4a60191927b2c413f7e63f9ccd7e873c", + "Syntax/Language/apache.js": "fc61bf26524dc758d8ad45cbf86f902bc356b4cf9ee182cc8599ba3ed285ca5f", + "Syntax/Language/applescript.js": "52b0e6da1b914932c7d7e60bfa4a86c9fdfbbffec30fa0b0ca0ea94873558f59", + "Syntax/Language/assembly.js": "9414db6293af3d388b75674640e5124b11f4138441303b1b13cb0688a4d79f74", + "Syntax/Language/bash-script.js": "30b56950885bcdf5e947a299db12315f1803a560f680b2985bdba8da712c0d44", + "Syntax/Language/bash.js": "4176917a37db0b1602d5cf833dd1eaaded6a72cba3b3e8bc181585997bc06298", + "Syntax/Language/basic.js": "d87aab3881d11d2f3bff0c0e9ca2abc10d4e8d3e55879889cfafdd6d40432c0b", + "Syntax/Language/c++.js": "c6ed9a60553428298528b41817b557e7a6179ee9502575ad18ee8ff9ac88a1e7", + "Syntax/Language/c.js": "c6ed9a60553428298528b41817b557e7a6179ee9502575ad18ee8ff9ac88a1e7", + "Syntax/Language/clang.js": "5f05922677af8b07a460cbcb83daf678677372ab1c9f685eabefdaca6d1f53eb", + "Syntax/Language/cpp.js": "c6ed9a60553428298528b41817b557e7a6179ee9502575ad18ee8ff9ac88a1e7", + "Syntax/Language/csharp.js": "9bcb7c5d6b67ef57fe0c873b401c3240118b6a2e2af7acaba24b52e428075df2", + "Syntax/Language/css.js": "451a487512072a8a1abe1721ea2dd65c9be8f3969133630fbd6d5cdbcb082861", + "Syntax/Language/diff.js": "71d4f0da63ed8ac886b9ea10a366bc03566736d19d4da3309c02427e8e3d7219", + "Syntax/Language/go.js": "a6ec6c0c64c5e7200415923eb43e826e974d52a7026e980cdf9772f08dbb40e1", + "Syntax/Language/haskell.js": "fa740026648605d58b586b44b3324f57db7935cfc90a9d9148f4fffa977df81c", + "Syntax/Language/html.js": "645ddcced8e9968d7cba3e260152f898dadd16421ad7185ff0e68ad38696153b", + "Syntax/Language/io.js": "b634a6ee14c7f4cc4472bb84652b8a4b1e41a63ab3e62ae203d71f0cfbb5a247", + "Syntax/Language/java.js": "7138e1bd19b94fdc4e21c01f0edc5f5647112e16283168d8c63cde1f90929953", + "Syntax/Language/javascript.js": "08aefa8f5faa17c74dcc2962f00de04937d780d6f09edcaf247e1736f9b06bec", + "Syntax/Language/json.js": "7b547df1bdde094419b83bd0ac7e53e4e36878883ceb38289a2ea4d15629caba", + "Syntax/Language/lisp.js": "c5b7721da693d85d6d6a28586a53efecbae4458628ca37a9e0c50d03dc56bfcf", + "Syntax/Language/lua.js": "52ad074da3b5e19c42584310672c2b3af0a2edddc82410b1026b7b829fbd7474", + "Syntax/Language/markdown.js": "83d65409226bea17f9d015ff392ef252907b9bcef8ac2a1a45d93047c8d2d795", + "Syntax/Language/nginx.js": "0dd3c44bb5307dca95f2880bb2e8f504642216f1a024dd737755fb8505dc2b9e", + "Syntax/Language/objective-c.js": "c6ed9a60553428298528b41817b557e7a6179ee9502575ad18ee8ff9ac88a1e7", + "Syntax/Language/ocaml.js": "0f347b97a6443958916bd133d1e6d7f62c14b24f1ab5edd14db2c32903df97a2", + "Syntax/Language/pascal.js": "0947041e27edae7bce1690052e85eb401032a368cae8fb035a9ad3c5d1b6e5a3", + "Syntax/Language/patch.js": "0181112740c5af3617bb6eb550eb5028743e465584ff424cd3c65a43a5b1280a", + "Syntax/Language/perl5.js": "aeea98cd6197232e7b3b8eab0ff4a5262b0250fea5328b8094149b97e234d8f5", + "Syntax/Language/php-script.js": "d84ec40003519d391be23361b44f5efd4e94a961395bb996230ad1d72dd740ff", + "Syntax/Language/php.js": "c91cd29aaa29b33249ff90c71a4aabd784cb65ef0025b53e0c9d5bcf96c1cd03", + "Syntax/Language/plain.js": "fad239eb2993f89b5948aefbbd38383830a156b7f4e67dc8f848f9a57f6b099b", + "Syntax/Language/protobuf.js": "fef37118f90f4073004a3b29fb65f36c3d257371203089b9fbcccda1965cf62b", + "Syntax/Language/python.js": "1043eafaa52e19bf2959a53952ab083dc1c6dd57263824a903cb4b0f47f7f7f5", + "Syntax/Language/ruby.js": "9188b7fad5a3a3ee2e9315c96d88ef6790c5e288b5be88c08d5d86c240340817", + "Syntax/Language/scala.js": "7cad17b50f51f63217a3b009fbd4f873c928e567e1a27170784dc4d11796d003", + "Syntax/Language/smalltalk.js": "033dd1bfa9f9546a8bfb52a30fd830fdbcfa6f503e3c19e73104447627a22752", + "Syntax/Language/sql.js": "e78508fad5281539fc332873b4485c6a695ea5f01c0f4f06b4698fc169b865fd", + "Syntax/Language/super-collider.js": "506e42027fa7fe15150d4910f0cca6c6c954ded90260010e52ea161d7e13d183", + "Syntax/Language/swift.js": "b0e0d0ee0322c56a2b7a162344df41226e51e26ab6d87338451994fc811b6add", + "Syntax/Language/xml.js": "c80d604825b1b3ee7b0aae802ed7bd16d5fca479af3625e151a66caea9cfcb4f", + "Syntax/Language/xrb.js": "1582369d1fac8047524a39924c2b2529f64a5778f5c70744d6c18b517fba1b78", + "Syntax/Language/yaml.js": "d784610606e46f3854e23dd8bc6f775fb4de1765b603ebf953438063d247c7c3", + "Syntax/Loader.js": "2c151db44c76b224e4984e1a6eefb044339705aedcb0bff5b94d65c710712962", + "Syntax/Match.js": "1e1f1b409af439c63ecc2818017039bdd2446ed7e60ed733b326001bc7826253", + "Syntax/Rule.js": "7504ce7bfa1e0619910f8798d37adea79168cec99a5cadf7dbb3c27ce805037a", + "license.md": "0e9cd91597ba8a5b11fe18ecfb38ed6b275450e07ca0ed85ed111725393e6c98", + "package.json": "d978ec9223c91eb5f47a9ba23e9332f92d2db88447e358e5c17d919071ae4826", + "readme.md": "c5b3fead9196989000a3ab5f509b9d7d35b479e875b2bfd21e6700e0cea92f9f", + "themes/base/apache.css": "8a261eabf17d57cfc34fa2f757dc5e707a4ec1920613d636eda2bc52027de5d9", + "themes/base/applescript.css": "12c998dc887880897b2bbc10a890c2704c1728824ed329f4cadc23414226e90b", + "themes/base/assembly.css": "590c8e46c226067b9503d528fc350a678e00849abec7e87956e2a6924d4cd442", + "themes/base/bash.css": "15288bd0bffd1c5f9f05cb794106aed2ec69c57d4aa3d179b17ce2f069f658d6", + "themes/base/basic.css": "ae27298d79cf44c61c8631951193db7ae847be0ed6ae5cd29bc0b926c321515b", + "themes/base/c.css": "bd9482c773cdbd1ec0974cbc878c28d1ecff562a90a0c4eec18f64a96a0b91bf", + "themes/base/clang.css": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "themes/base/csharp.css": "bf00a61508d958f6d36ff89b22dc344441794899a53b3c29d2eab026a366801a", + "themes/base/css.css": "b59764ebe3a8955015ec7a233e37c26b95ecf0248fba59d1f422d5484a7441eb", + "themes/base/diff.css": "24886553b9d6efd3e0ddf72285d50dbe7079f0b35bbc4946f12756f3d8db9ca4", + "themes/base/go.css": "8bdb14de906d5fce5530db2416f1073dc9b3e16cc549de77cec5222779427bc7", + "themes/base/haskell.css": "a97631787018581575ea09382878a1f1fc055f2152ea3b0d1ce127fbbda3a37a", + "themes/base/html.css": "7facd5aa4ba1df923bbde425e47949cbd56c3bcc752fe4d142e4cdd6131f14fc", + "themes/base/io.css": "510632523e02fb730af26d96596c73def7248c98b5604ff5aee90218ca03b160", + "themes/base/java.css": "55815221bf7e89b4b58a359847cd82ef71865d913860c4c97092f108945ef4dc", + "themes/base/javascript.css": "66fa4a74eb22c3635b6896a5bbea50a0a9407d2517e1aa448d5aea49219dff8d", + "themes/base/json.css": "9793242308e7a9709d9695ce604239effea466aeb3902d9c6fba64779a4b957f", + "themes/base/lisp.css": "63910b6c1ff9f40489e563b2cc0a685e69b5c731bec697d7340a16797bc2783b", + "themes/base/lua.css": "ce57ce99beada69410ac9721a77027a3e0c37e76481aedd6482a3a010972266d", + "themes/base/markdown.css": "59f64c0e2a3a0e9261fdd07f77e632d2823a31ca0511dfad7ac3ed2c6ca2c35f", + "themes/base/nginx.css": "4a1feb4847e184a90a62ba9782450db60c33ffe26251a992d1d294a103bb3322", + "themes/base/ocaml.css": "9452e155653718361ac597b3f2baff07c14440c4b1853552a90d066d45221928", + "themes/base/pascal.css": "fb2cba0efb7dbac2a371ae21c4852f8d2517387e9943bf68982e8bfe64f35bfe", + "themes/base/perl5.css": "0549d79f87639e8a23ea079e2b704b8dfcb73c9451ae5e173161945c6b01264f", + "themes/base/php-script.css": "57e9f1916918c68012c48999db97e949fd543eb23d066a19f8232499e98c27e8", + "themes/base/php.css": "ac5dbfa92e4a807e3ed664c9c55df3acb19e5d4e3f21a8e8f656a399aa045879", + "themes/base/plain.css": "2d60c3a0fc127790d7cbeecba60d23307d779407a4a5029891a590d9a8b5e0c1", + "themes/base/protobuf.css": "e69be7a12097eb639903b74cb812c6e43b586751f2d1b82e704eb18f4125edd4", + "themes/base/python.css": "a6f30641479077c452af9439ae0cb403074f3b094aa318ec83763ce042429200", + "themes/base/ruby.css": "7acdfd351872d90af0d48618707e8bb4ca8c96ba8f2ebdacb3ff1c88e2828f9e", + "themes/base/scala.css": "a2f615e82db454b5d05da4be4dbd1b69498115f21107e4130b7af69ecc131b4c", + "themes/base/smalltalk.css": "454f89e462d79af3f135e118028716fe6ee815b39b7d1444ad8aa96cb6fcfdbc", + "themes/base/sql.css": "0cb88f7115ba334b34a50a386d6a69239bfaafc4a158eae908d7aeb93b9ba587", + "themes/base/super-collider.css": "70059a89a6d4d7dffbaa700afdc2b8fee71890a921ede47a89fcf9755e1f326b", + "themes/base/swift.css": "1992a3fbfc8b5d16f1ba5dba619407e30f11144d0d96bb685ed7631da07cca3c", + "themes/base/syntax.css": "135decd51ac6d212bb6581b1ffa52adba59aec45b67e5ee6745145cfbd089a9b", + "themes/base/xml.css": "dcad5e36f3e3d970a04ef692d2bd443866a901dae5dc4f76e29394557570654d", + "themes/base/xrb.css": "2ef9c29d522e46ab0035e8a147d12ed89a1b4068cd061f116785d5587e8f1b14", + "themes/base/yaml.css": "d50532f375ebdff41217a8fd55314ae7d714bed9fb105921e95217d51a0e6a31", + "themes/theming.md": "a5d9b42e7d885a4ad56730957b883213b6cb550e530d5a06a97eae0e902ec493" + } + }, + "mermaid": { + "version": "11.16.1", + "source": "dist", + "files": { + "chunks/mermaid.esm.min/abnfDiagram-QNN2D4NM.mjs": "8cc0474c098d63399e2909d979cc37eac599d8fe91d291f06825d34c42dbc75f", + "chunks/mermaid.esm.min/architecture-TIHT7OUA-V6N4J3SY.mjs": "4ac3013dba07e4b82798d7dddda3601d1d98e338dcca6a5c5a5778b0fe6c50ce", + "chunks/mermaid.esm.min/architectureDiagram-OT7VKSJ7.mjs": "a32f14543226eeeb20d7f4877a1959e6d2e8578ae1ff3ccdb935b48137b62192", + "chunks/mermaid.esm.min/blockDiagram-54WLDVWM.mjs": "b1e39763cb98f70d9a104bb3c2971f62748353d9a8700957be4ca36bcb8563cd", + "chunks/mermaid.esm.min/c4Diagram-X2LASM7V.mjs": "6ab7de31018a24845fca48e8a855bb8a213f00ca603de5afbcd60ee189cb0892", + "chunks/mermaid.esm.min/chunk-224SPVON.mjs": "106897ed01950fdb24ea92cbea810b72911f6566d4b2f4c0e684744d0f1370b4", + "chunks/mermaid.esm.min/chunk-2AEHWXPW.mjs": "7746258e13606fce8dc8dde32041da7f3b3492fb1669f006dc647833db25b6d0", + "chunks/mermaid.esm.min/chunk-2SREHG4O.mjs": "632ba06aa573dc5a0f78f15c8fb4ef5245d781057249f7c22ed7f98c1b7d87b2", + "chunks/mermaid.esm.min/chunk-4RFN2BYJ.mjs": "23314130df2cb3093e6f4b5d6e9429a6c9f38f752f608ae9da214d57c478576f", + "chunks/mermaid.esm.min/chunk-5IMINLNL.mjs": "ed3c40c332ee25f9c86e89507f2a6d18edefda66eadfb38ef3aeb59b95dad2b2", + "chunks/mermaid.esm.min/chunk-5VCL7Z4A.mjs": "923319fb47f66b4ec1eda16c8e2b7c86c3126dd30e670772c61fdfd40bd1fed3", + "chunks/mermaid.esm.min/chunk-66DQ2XMT.mjs": "09bd00c04cf0908c651ba73cf22a6aaab2291adfa4ce7ee5f8b835c7619bcf3c", + "chunks/mermaid.esm.min/chunk-6BELYETK.mjs": "1c6ee1bae6d50d9d180b8ae92749d06102129ea24996883c31a005f6b61e5d45", + "chunks/mermaid.esm.min/chunk-6L755F7B.mjs": "0b9a069e0153247af990b2cf2be0dbc045476c3bff9c22f9422fd8f3439db25e", + "chunks/mermaid.esm.min/chunk-7CWYLC5S.mjs": "d6424d8a07495baaf4fc5f0da05daca8e7f0541bb053ca08cfd8dc43ed3d69a0", + "chunks/mermaid.esm.min/chunk-7FYTHRHK.mjs": "d8289e52f9933b146725db036cf8c935df33378aea95d8b37e8232ca7c1efd30", + "chunks/mermaid.esm.min/chunk-A7VWPJGB.mjs": "ba5b5a18fe4b1954330d9de580a751be692d0a89d828b262e938032902f50ec0", + "chunks/mermaid.esm.min/chunk-AQ6EADP3.mjs": "13f83482f9731f6ed320746bf4f69aaaff5e1efdda94f64cd9ea6d9030b868c2", + "chunks/mermaid.esm.min/chunk-AZZRMDJM.mjs": "e5c109a799a86fc58b75bbb2cbdb72a6570c8c29821037d181ebe019db0beab1", + "chunks/mermaid.esm.min/chunk-BI6VK774.mjs": "97caa6db4057b3f102a4aa7f3628a740b72b1b2fb9a0c4a978ddf864a39f31a5", + "chunks/mermaid.esm.min/chunk-D6VWDJW2.mjs": "e7813fbe9401a041c7c35f894c99457de7404e58e5351f3ea6440c526b71bb00", + "chunks/mermaid.esm.min/chunk-DMV4VAQV.mjs": "0ccc30de1d64e92deaf38b6b00c214bb779e09ea961e4521cb26430fe992a13e", + "chunks/mermaid.esm.min/chunk-E5QJAATJ.mjs": "5ea63a7706949a88f363221d082e1b20157240b1706248b100bb0f6ce060882e", + "chunks/mermaid.esm.min/chunk-EQFTRU2I.mjs": "726433c36797f3de029d5bef36c2280e301d8bb817c35d06b4650d7081222cb2", + "chunks/mermaid.esm.min/chunk-FWYVLQTC.mjs": "0ff4679432bf2790874085155cead21924fd47314042584a7bfe4a741de9d893", + "chunks/mermaid.esm.min/chunk-HNC4WDU7.mjs": "edb2b880152a63227abfb2cda85c8951c6ca83689262d1a0af8be5f79af1cf05", + "chunks/mermaid.esm.min/chunk-JQRUD6KW.mjs": "ab31e28cd7a9246443f102d2d34e07740bb9a872d1a6a65deb165f163a641517", + "chunks/mermaid.esm.min/chunk-KRXBNO2N.mjs": "45d2e1a6271e678ca3823e6da3bead7effbc3f4b9f751ed9109c98c4b01af561", + "chunks/mermaid.esm.min/chunk-L5GCOVLC.mjs": "87fc9c74c9711e04eceaf9b2e10d107aac440c92b25198e654c02003838c50bf", + "chunks/mermaid.esm.min/chunk-LAHSG3N2.mjs": "880de71ecb9daf937713d50fde8dd59e6c47e7740363b1c5325ec8e90d55dfce", + "chunks/mermaid.esm.min/chunk-LIEV3EAG.mjs": "e6d431e84c685d0eca811a02f62708a25f9191171d7d384e2521268a46422300", + "chunks/mermaid.esm.min/chunk-LORZLZWG.mjs": "e442d27ddebdb1d5d0f65ec5a13696fbf8d92e958d99c3058e23d824d3669c54", + "chunks/mermaid.esm.min/chunk-NLANEA3F.mjs": "5801b60996da2185fba046d4aa0fe182e9c9d23d98b5c3c8551123effb05b88f", + "chunks/mermaid.esm.min/chunk-NV3KIAZN.mjs": "879f555c3214d46d025211ee3dd4a5bb1270231881293b2ba16693859806de99", + "chunks/mermaid.esm.min/chunk-OIYT25JQ.mjs": "104e929ab1b4bb27bc06b6b4fc4d8044fea9a3e41616135adbd0ac494f1efacf", + "chunks/mermaid.esm.min/chunk-PE7DX7ZZ.mjs": "23a90cf695611fbf9374e44e3687724486e653e618482cbb5d20cd83ea4da0f7", + "chunks/mermaid.esm.min/chunk-Q67WD55A.mjs": "67288f0cece7b95af7cb6e07c51860bd0025aaf94e57192d5b887c83ab66cf65", + "chunks/mermaid.esm.min/chunk-RRFMTAIC.mjs": "57eb88c3f76b7bdca544c02cb4bd19d4e277ad8740137dd99abacc49c588ee7c", + "chunks/mermaid.esm.min/chunk-SATU7PGQ.mjs": "3f5a8d735b17e5566e8526db97931630f3dc023a66393e5bee323078181e88db", + "chunks/mermaid.esm.min/chunk-STOV2HOB.mjs": "b9dcf40a130db7675f59151f77ea069438782074fa847001abcd6bb82b8d9b02", + "chunks/mermaid.esm.min/chunk-SZD42YQK.mjs": "5f5b653e2ad2d2a925bd9b10fcbf3b9e9b643b5f67b543a2458de72b5e344850", + "chunks/mermaid.esm.min/chunk-T5OCTHI4.mjs": "bcf848310d29d090f623a39375c36b19f4c78c0856bddd8a68b3998a729f2fdc", + "chunks/mermaid.esm.min/chunk-TFPGFQPA.mjs": "bedd980a8d969ac2fd0cf65633a48ee76e2a23a4b41f7add4eb7175965cdf2a6", + "chunks/mermaid.esm.min/chunk-TGVD4F4B.mjs": "1c0dcb6d16633abe5274036a5c42bea1c4d0f8e555e3fdd333d1d09d7dbcf251", + "chunks/mermaid.esm.min/chunk-TZUXEDM2.mjs": "2e90f11fbef8a2af7791a6e0e83603e66fda48451d205bf73d4a3411e45c227f", + "chunks/mermaid.esm.min/chunk-UAT7B5JY.mjs": "7f6130fbe2367c45cf18f97e096e1dbd89d97eeae961d3db84199acb477633eb", + "chunks/mermaid.esm.min/chunk-VE5CLXGZ.mjs": "86b0d4f0e161df3400dccac0e4b6e4b2aa5983cf3c2edee3dfa4915f07d6a501", + "chunks/mermaid.esm.min/chunk-VJFVEZTB.mjs": "92784a322b0d08145c6e960c7d4393c2d2e24c24a6acfc528234dfd71d265592", + "chunks/mermaid.esm.min/chunk-VY5UBI4V.mjs": "9b63597072ca997a7b50812a5f4857df16e4ce48b262e9a3553802db3e12dfe3", + "chunks/mermaid.esm.min/chunk-W44A43WB.mjs": "5ea884c347e3c61eae14a29442ea017a28b22734d600dc7bed957b6fd3dbfd8e", + "chunks/mermaid.esm.min/chunk-WJBAP47W.mjs": "8085f24dfc8725939304f3fb08c6205b3fa73a149b2edb2aa39354082d7bae34", + "chunks/mermaid.esm.min/chunk-XNMVGMAZ.mjs": "fada21c58ead432eba08b4e3ceff3a93f69c6effcf8da0e964814fc4a2e2ddbe", + "chunks/mermaid.esm.min/classDiagram-VPOSVPXH.mjs": "a8e86a4efa33e5586e0a2ca892d8fdce841e702b8d1ad0b5db376c597da2f21c", + "chunks/mermaid.esm.min/classDiagram-v2-5VFNUXQA.mjs": "a8e86a4efa33e5586e0a2ca892d8fdce841e702b8d1ad0b5db376c597da2f21c", + "chunks/mermaid.esm.min/cose-bilkent-RZA4XIPR.mjs": "3168d10108921bb3ae573fbd234e0ac9f098e1018be5cacc71a982540203390a", + "chunks/mermaid.esm.min/cynefin-VYW2F7L2-2VAHYKR6.mjs": "afce7dab0d785151d10d91441beaf531466127a39da9dcbe4af78d3cf5b90cb9", + "chunks/mermaid.esm.min/cynefinDiagram-TR7LZUCG.mjs": "dd2f1b11edd387b1ef8092f85c7c2bf1d037599302e9b0b3aa2d2a058d2c20ee", + "chunks/mermaid.esm.min/dagre-K64A6Z3X.mjs": "37059ad4e595124f5c01acc8c4a3e947d1aae65ba13b6f3ac0cc472851f5f583", + "chunks/mermaid.esm.min/diagram-2TLGJV2N.mjs": "2620dc74f497425b10dec50fc5394950f154c4553d3e6744024fcc23a2bced1d", + "chunks/mermaid.esm.min/diagram-JCD7PQ7C.mjs": "b9568d1fc56c3f5feb711cce8fd72f17eb9e057a9a45377045a71e94ed834f99", + "chunks/mermaid.esm.min/diagram-KFBZAVDW.mjs": "28ecdc47084618e53724e347cdb8752f4f2c98df64c68f4b5f23e07003ed8ade", + "chunks/mermaid.esm.min/diagram-L7DVE3PN.mjs": "909d15a0595af3cff1a5a8e0bd961acd2ba61807687ebc7b17a3497a8a95d5a7", + "chunks/mermaid.esm.min/diagram-YP3FGXHI.mjs": "7f53e9a9456182444856e90546ebf456cb4a87c56c5fccba3c6e0f618855bb42", + "chunks/mermaid.esm.min/ebnfDiagram-DRHRQJWO.mjs": "e6781dbd0bfd1c2bd7ce4845a91d72a41711eb09db11b9f41283b1fa045b04d0", + "chunks/mermaid.esm.min/erDiagram-SZLJLQMB.mjs": "ab9eb3bc85e34b781edcbf18438a4fb04d5e4fd5a06d6e17b2cf68c655cba802", + "chunks/mermaid.esm.min/eventmodeling-45OFAUF4-AOUJWSLX.mjs": "d555ca9f11aa3b68df01a7039059bba40496f495a2b69a868cafa093d9d3e4ae", + "chunks/mermaid.esm.min/flowDiagram-BWE6NHOH.mjs": "5b15abcda20994d677304f8a20885ba05d15f34b86ee5a83e7e876c46234b5a4", + "chunks/mermaid.esm.min/ganttDiagram-2QTCJSNI.mjs": "3d42a65abe137ab3f7b5496c7307fd2a9f621701eb2f56d4e3f840e1af17ba12", + "chunks/mermaid.esm.min/gitGraph-TEB2WS4Q-U5VWYIBC.mjs": "e5650c42c15412f8b9b1cf23391af06ace863c4cff567f7e7cdb930adcef4452", + "chunks/mermaid.esm.min/gitGraphDiagram-VVZAVV5G.mjs": "af49840a3fb6951b001568f652df5918aec59206f8903058dba112fb690c2710", + "chunks/mermaid.esm.min/info-DKCQHKI2-DX6KST54.mjs": "81f3b2fbcf14edaea2ddc199347e5a6c9d61b9e86d9d51bd436ebc3df9886eb7", + "chunks/mermaid.esm.min/infoDiagram-FY4PZKRE.mjs": "60e2f5c54df06a066556ef1388767027f5fe60f58e07d5be9ae29bc56dd94920", + "chunks/mermaid.esm.min/ishikawaDiagram-4JDSWWDM.mjs": "7d90f45026cb1280c5652822f7bb3c4fc7109643f1e64db00baa670fedea9060", + "chunks/mermaid.esm.min/journeyDiagram-QUS3FAKT.mjs": "76ac7ef329cfe11e7971c6d671f769d5a03158facc42562be4a9570ac63c6be0", + "chunks/mermaid.esm.min/kanban-definition-D4L7SQKK.mjs": "32d73055f2fddd603626a6fbefce0a2b38860e7b7872513430f3ad4eccb71027", + "chunks/mermaid.esm.min/katex-C5OPUE3Q.mjs": "66f00e67b71a51efcf8562554ff3cfb7342653b0d6069ebbf7123451daa2e8f3", + "chunks/mermaid.esm.min/mindmap-definition-66QP5TD6.mjs": "3a9fda10f550bdc27188151dee33540080b7f44601c71b906e95c553f2be39ca", + "chunks/mermaid.esm.min/packet-7NZHBO7P-5WG45QPS.mjs": "32d837cc69f0d75dedb9c8a90fd197908fe82c46907461bd94197a3c4d2991fd", + "chunks/mermaid.esm.min/pegDiagram-YKIO5C6U.mjs": "5b3c792dea867c40bea08d01a39ce547d252c6b90f5710c430734bccc1088df3", + "chunks/mermaid.esm.min/pie-RZYD4A2V-2OCZ2VTD.mjs": "7be075f26467b22a9c9230d78fa8a6aec5f1364003fb19748e63bad346bd2002", + "chunks/mermaid.esm.min/pieDiagram-YPY3TKG5.mjs": "bab921e9aa5c53bb1ade6da09b5fa4fc22e06b7e2e0be53387e91a8b0300bcee", + "chunks/mermaid.esm.min/quadrantDiagram-VO5QLCXA.mjs": "5e96b5bd10fa1c295b42ca1d88247feac2fdc47bfa407f2e3b7330b128b6a629", + "chunks/mermaid.esm.min/radar-I7S5WNFK-EPLSA35B.mjs": "1f579c758a9c08674e38e18a5b1411112838f510117654e8e4a87e395ff26dc7", + "chunks/mermaid.esm.min/railroad-3IZDKUUU-PWFQV6Y6.mjs": "66d82b33cdd8c6dc3f894771e88b380a7658f54acc3dca436385e0497b5baca8", + "chunks/mermaid.esm.min/railroad-abnf-AHOZXSZD-JYYJX3BS.mjs": "b1277bd74b3a88611bfce9f1a1cde5c5ae09f7494e783a7f1e01815014085c26", + "chunks/mermaid.esm.min/railroad-ebnf-EBAXGLYW-RBZ4ONAP.mjs": "6b7b97ef5c73b69b68a4809ea94268bde2e63d672fc77ee56f948e63beb1a31f", + "chunks/mermaid.esm.min/railroad-peg-LSFZ7HO6-KHNPXGPG.mjs": "178487c55bec3ed0a2d314f7ee94785b8d7fd4658da62b390ff8cd826d173cf9", + "chunks/mermaid.esm.min/railroadDiagram-M77LTMSB.mjs": "60955c6fa4eca979f74c4b2c481340be2ec551da7ecb149169fec47531cb4beb", + "chunks/mermaid.esm.min/requirementDiagram-RASO5HTO.mjs": "031401a68d05092f5bb9d4be78370d5c923ed5e645c0276be25e70fd6bf52705", + "chunks/mermaid.esm.min/sankeyDiagram-F32LOJ6L.mjs": "6547e92123d0bd92141f020b23118f9db01d6164244409a81e95326c87f9f1b9", + "chunks/mermaid.esm.min/sequenceDiagram-URATNSBD.mjs": "4c4320145ba3fa1bcabf35a2c1727751aa1a04eb1562109bf4e180021e79eaaf", + "chunks/mermaid.esm.min/sizeCapture-5GORAGP4.mjs": "d35e060aabccb4c14e76f544a9925631e0b3dcea95dca128ee0ffe0ae3c803f9", + "chunks/mermaid.esm.min/stateDiagram-DODFXNG5.mjs": "20192ba1375f8a4514011684bd9eaae84179eda27839b5f855a8e6b5813c3822", + "chunks/mermaid.esm.min/stateDiagram-v2-JNMM5JRA.mjs": "df796fb6e5f565c9459747fc12f8517681c69bc5d445542b85d4fa924c5e2dd2", + "chunks/mermaid.esm.min/swimlanes-OSWOYLSK.mjs": "3a55f16fc5f66e97e6bb9796d5e4ec6c11bfaea99f1c7b9e3dd8e72557783a5d", + "chunks/mermaid.esm.min/swimlanesDiagram-RHGX2RDE.mjs": "3ba8f8856da56301a4245cb8ad4de84ff0b11c479b14592e630813bfa3776c7e", + "chunks/mermaid.esm.min/timeline-definition-WJXWRH4I.mjs": "057ca125014108b2beb17051dfc4095659ce3659213fabd83da27d0abcfc85f1", + "chunks/mermaid.esm.min/treeView-QDETBFTQ-EHYTSQNO.mjs": "a2ef50a12f4e175fbb3b667120b93f651aba5410a048d7c89166c65020dad021", + "chunks/mermaid.esm.min/treemap-6X3UGDF4-CCWCF7EK.mjs": "774b6f3b3618277e4b6945fb7146fbfa55a1db620c4da67bdb447be9fd0de952", + "chunks/mermaid.esm.min/vennDiagram-K3VCMQLI.mjs": "085712065e78ef0b659a2334b38bd8189fc6d57c4ec84f149b96b6f9d57b3371", + "chunks/mermaid.esm.min/wardley-OPB4EBWU-6OWERDVT.mjs": "29b7ba6345d13795aad38877a9affcab31b17a8928cb15ab043c09f58a14d6a4", + "chunks/mermaid.esm.min/wardleyDiagram-XK6FUAWV.mjs": "3235351fd70c2b61bb6a5c9a39348d45ca69546814b7381e434450b8b5115ac2", + "chunks/mermaid.esm.min/xychartDiagram-5VRUVLCW.mjs": "7bf49322c642d586ee588758f9c9dc60605040d1182305383ff23dd90f5a3b4a", + "mermaid.esm.min.mjs": "028ee006287b85ea6ee0a670f5d9f10e22e8e46e33c7e345fbf1f60d443a5c21" + } + } + }, + "digest": "9276fa4fc8a9ef3e0b330bb66c2744299fbf4e0d1d5e67f48e2e3f0a979dd620" +} diff --git a/releases.md b/releases.md index 470e3dd..c6d3126 100644 --- a/releases.md +++ b/releases.md @@ -1,5 +1,11 @@ # Changes +## Unreleased + +### JavaScript Packages + +Utopia Project now uses Bake Node to install and project its browser packages. The generated manifest is the source of truth for the import map, and package projections are checked independently in CI. + ## v0.44.1 - Render resolved inline code references with links inside their code elements so hover and keyboard focus affect the complete reference. diff --git a/utopia-project.gemspec b/utopia-project.gemspec index f6591b9..f4e59ab 100644 --- a/utopia-project.gemspec +++ b/utopia-project.gemspec @@ -27,10 +27,11 @@ Gem::Specification.new do |spec| spec.required_ruby_version = ">= 3.3" + spec.add_dependency "bake-node" spec.add_dependency "decode", "~> 0.30" spec.add_dependency "falcon" spec.add_dependency "markly", "~> 0.17" spec.add_dependency "protocol-url", "~> 0.19" spec.add_dependency "thread-local" - spec.add_dependency "utopia", "~> 3.0.4" + spec.add_dependency "utopia", "~> 3.0.6" end From 4018f49c62511c271f2a482ba109c1885fac1efa Mon Sep 17 00:00:00 2001 From: Samuel Williams Date: Tue, 8 Sep 2026 21:39:18 +1200 Subject: [PATCH 2/3] Regenerate package manifest with bake-node 0.1.0 Assisted-By: devx/7ef83274-928f-499d-b668-48449b1ff60e --- public/_components/{.bake-node.json => .manifest.json} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename public/_components/{.bake-node.json => .manifest.json} (100%) diff --git a/public/_components/.bake-node.json b/public/_components/.manifest.json similarity index 100% rename from public/_components/.bake-node.json rename to public/_components/.manifest.json From 6f8f35204c9ad6e0f2c2fc2dc3497ea13b8f2b80 Mon Sep 17 00:00:00 2001 From: Samuel Williams Date: Tue, 8 Sep 2026 22:29:57 +1200 Subject: [PATCH 3/3] Adopt Web Packages Assisted-By: devx/7ef83274-928f-499d-b668-48449b1ff60e --- .github/workflows/test-packages.yaml | 4 ++-- package.json | 2 +- releases.md | 4 ++-- utopia-project.gemspec | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/test-packages.yaml b/.github/workflows/test-packages.yaml index 32285db..e2952b7 100644 --- a/.github/workflows/test-packages.yaml +++ b/.github/workflows/test-packages.yaml @@ -24,7 +24,7 @@ jobs: cache: npm - name: Install dependencies - run: bundle exec bake node:install frozen=true + run: bundle exec bake web:packages:install frozen=true - name: Check static packages - run: bundle exec bake node:packages:check + run: bundle exec bake web:packages:check diff --git a/package.json b/package.json index a847c62..80312eb 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "@socketry/syntax": "^0.6.1", "mermaid": "^11.16.1" }, - "bake-node": { + "web-packages": { "packages": { "@socketry/syntax": { "imports": { diff --git a/releases.md b/releases.md index c6d3126..d88cad5 100644 --- a/releases.md +++ b/releases.md @@ -2,9 +2,9 @@ ## Unreleased -### JavaScript Packages +### Web Packages -Utopia Project now uses Bake Node to install and project its browser packages. The generated manifest is the source of truth for the import map, and package projections are checked independently in CI. +Utopia Project now uses `web-packages` to install and project its browser packages. The generated manifest is the source of truth for the import map, and package projections are checked independently in CI. ## v0.44.1 diff --git a/utopia-project.gemspec b/utopia-project.gemspec index f4e59ab..555a484 100644 --- a/utopia-project.gemspec +++ b/utopia-project.gemspec @@ -27,7 +27,7 @@ Gem::Specification.new do |spec| spec.required_ruby_version = ">= 3.3" - spec.add_dependency "bake-node" + spec.add_dependency "web-packages", "~> 0.2" spec.add_dependency "decode", "~> 0.30" spec.add_dependency "falcon" spec.add_dependency "markly", "~> 0.17"