Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 0 additions & 10 deletions .changeset/curly-bees-dance.md

This file was deleted.

8 changes: 0 additions & 8 deletions .changeset/lazy-otters-drum.md

This file was deleted.

7 changes: 0 additions & 7 deletions .changeset/tame-cobras-jam.md

This file was deleted.

10 changes: 0 additions & 10 deletions .changeset/thin-suns-agree.md

This file was deleted.

8 changes: 0 additions & 8 deletions .changeset/tiny-plums-relax.md

This file was deleted.

28 changes: 28 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -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<E extends EventName>(event, params)`
function that pushes `{ event, ...params }` onto `window.dataLayer`. Prints to stdout by default;
`--out <path>` 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 <path>` 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
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -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",
Expand Down