From 30b79ed8881c9b9f98c2cf1295347a23c57db18a Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 28 Aug 2026 22:40:38 +0000 Subject: [PATCH] Version Packages --- .changeset/curly-bees-dance.md | 10 ---------- .changeset/lazy-otters-drum.md | 8 -------- .changeset/tame-cobras-jam.md | 7 ------- .changeset/thin-suns-agree.md | 10 ---------- .changeset/tiny-plums-relax.md | 8 -------- CHANGELOG.md | 28 ++++++++++++++++++++++++++++ package.json | 2 +- 7 files changed, 29 insertions(+), 44 deletions(-) delete mode 100644 .changeset/curly-bees-dance.md delete mode 100644 .changeset/lazy-otters-drum.md delete mode 100644 .changeset/tame-cobras-jam.md delete mode 100644 .changeset/thin-suns-agree.md delete mode 100644 .changeset/tiny-plums-relax.md diff --git a/.changeset/curly-bees-dance.md b/.changeset/curly-bees-dance.md deleted file mode 100644 index 37ae9d5..0000000 --- a/.changeset/curly-bees-dance.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -"@stackmade/gtm-as-code": minor ---- - -Add `extends:` config composition: a config can pull in `events:`, `gtm.{variables,triggers,tags,folders}:`, -and `ga4.{dimensions,metrics,keyEvents}:` entries from other YAML files, for shared conventions or -reusable packs. Resolved in `loadConfig`, so every command supports it automatically. The root -config always wins over an extends target, and a collision between two extends targets is a -validation error. Validation errors on merged-in content point at the file and line they actually -came from. diff --git a/.changeset/lazy-otters-drum.md b/.changeset/lazy-otters-drum.md deleted file mode 100644 index 3ccd7bc..0000000 --- a/.changeset/lazy-otters-drum.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -"@stackmade/gtm-as-code": minor ---- - -Add `gtm-code generate`, emitting typed event helpers from `events:`: an `EventName` union, one -params interface per event, an `EventParams` map, and a `track(event, params)` -function that pushes `{ event, ...params }` onto `window.dataLayer`. Prints to stdout by default; -`--out ` writes it to a file. diff --git a/.changeset/tame-cobras-jam.md b/.changeset/tame-cobras-jam.md deleted file mode 100644 index 0a0a4be..0000000 --- a/.changeset/tame-cobras-jam.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@stackmade/gtm-as-code": minor ---- - -Add `gtm-code docs`, generating a Markdown data dictionary from `events:`: one section per event -with its description, key-event/consent flags, and a parameter table (type, required, custom -dimension). Prints to stdout by default; `--out ` writes it to a file. diff --git a/.changeset/thin-suns-agree.md b/.changeset/thin-suns-agree.md deleted file mode 100644 index ac4dc56..0000000 --- a/.changeset/thin-suns-agree.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -"@stackmade/gtm-as-code": minor ---- - -Add event packs: `packs/ecommerce.yaml` and `packs/recommended.yaml`, `extends:`-able GA4 -recommended events with their GA4-specified parameters. Added a `type: items` event parameter for -GA4's ecommerce item array; `gtm-code generate` emits it as `Item[]` backed by a shared `Item` -interface. Also narrowed the reserved-parameter-name lint so `currency` is only rejected when -marked `dimension: true`, GA4 reserves it for custom dimension/metric creation, not for its own -recommended events that require it as a standard parameter. diff --git a/.changeset/tiny-plums-relax.md b/.changeset/tiny-plums-relax.md deleted file mode 100644 index d74f009..0000000 --- a/.changeset/tiny-plums-relax.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -"@stackmade/gtm-as-code": minor ---- - -Add a GA4 limits and naming linter to `validate`. Catches reserved event names and prefixes, -reserved parameter names and prefixes, invalid name characters, the 40-character name cap, the -25-parameter-per-event cap, and the 50-event-scoped-custom-dimension-per-property cap, all offline -before `apply` would otherwise hit them mid-run or have GA4 silently reject or scrub the data. diff --git a/CHANGELOG.md b/CHANGELOG.md index 9338d69..93e64a8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,33 @@ # @stackmade/gtm-as-code +## 0.6.0 + +### Minor Changes + +- fff3ac5: Add `extends:` config composition: a config can pull in `events:`, `gtm.{variables,triggers,tags,folders}:`, + and `ga4.{dimensions,metrics,keyEvents}:` entries from other YAML files, for shared conventions or + reusable packs. Resolved in `loadConfig`, so every command supports it automatically. The root + config always wins over an extends target, and a collision between two extends targets is a + validation error. Validation errors on merged-in content point at the file and line they actually + came from. +- f0af425: Add `gtm-code generate`, emitting typed event helpers from `events:`: an `EventName` union, one + params interface per event, an `EventParams` map, and a `track(event, params)` + function that pushes `{ event, ...params }` onto `window.dataLayer`. Prints to stdout by default; + `--out ` writes it to a file. +- 8680ede: Add `gtm-code docs`, generating a Markdown data dictionary from `events:`: one section per event + with its description, key-event/consent flags, and a parameter table (type, required, custom + dimension). Prints to stdout by default; `--out ` writes it to a file. +- b9a7764: Add event packs: `packs/ecommerce.yaml` and `packs/recommended.yaml`, `extends:`-able GA4 + recommended events with their GA4-specified parameters. Added a `type: items` event parameter for + GA4's ecommerce item array; `gtm-code generate` emits it as `Item[]` backed by a shared `Item` + interface. Also narrowed the reserved-parameter-name lint so `currency` is only rejected when + marked `dimension: true`, GA4 reserves it for custom dimension/metric creation, not for its own + recommended events that require it as a standard parameter. +- 623e511: Add a GA4 limits and naming linter to `validate`. Catches reserved event names and prefixes, + reserved parameter names and prefixes, invalid name characters, the 40-character name cap, the + 25-parameter-per-event cap, and the 50-event-scoped-custom-dimension-per-property cap, all offline + before `apply` would otherwise hit them mid-run or have GA4 silently reject or scrub the data. + ## 0.5.0 ### Minor Changes diff --git a/package.json b/package.json index d05647f..fc20b39 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@stackmade/gtm-as-code", - "version": "0.5.0", + "version": "0.6.0", "description": "GTM & GA4 as code — define Google Tag Manager and Analytics 4 config in YAML, plan/apply like Terraform.", "license": "MIT", "type": "module",