{"_id":"@akson/cortex-gtm","_rev":"3-42170c4a26943f729dfa6c01f7e70f2a","name":"@akson/cortex-gtm","dist-tags":{"latest":"3.1.1"},"versions":{"3.0.0":{"name":"@akson/cortex-gtm","version":"3.0.0","keywords":["gtm","google-tag-manager","terraform","state-management","mcp","model-context-protocol","analytics","cortex","akson"],"author":{"name":"Cortex Team","email":"cortex@akson.ai"},"license":"MIT","_id":"@akson/cortex-gtm@3.0.0","maintainers":[{"name":"antoineschaller","email":"antoine.schaller@akson.ch"}],"homepage":"https://github.com/antoineschaller/cortex-packages/tree/main/packages/@akson/cortex-gtm","bugs":{"url":"https://github.com/antoineschaller/cortex-packages/issues"},"bin":{"gtm":"dist/cli/index.js","gtm-mcp":"dist/mcp/cli.js"},"dist":{"shasum":"12c350dd72cb6c25785fe6ccd7f6e22b814e248a","tarball":"https://registry.npmjs.org/@akson/cortex-gtm/-/cortex-gtm-3.0.0.tgz","fileCount":5,"integrity":"sha512-CYDwjG9kG1en71SmyuSqufmOf1oc90elRb9vj0bWQjrb31q2nc0pVKadhdegKwLYKngDTukgRc7yTatEYNn/5w==","signatures":[{"sig":"MEYCIQCQwCNdBhekVrbauaxWhmO+7ajezra4K/Ld6V7gcnhu5AIhANUHI40mCKa9fbQnsBrQICSaKOL+SztjN+BpeE5804C6","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":30101},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./mcp":{"types":"./dist/mcp/server.d.ts","import":"./dist/mcp/server.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./terraform":{"types":"./dist/terraform/index.d.ts","import":"./dist/terraform/index.js"}},"gitHead":"b3a6a0832bb2fd230473076bde1bfc7810e9ac31","scripts":{"dev":"tsup --watch","lint":"biome check src/","test":"vitest","build":"tsup","clean":"rm -rf dist","format":"biome check src/ --write","type-check":"tsc --noEmit","test:terraform":"tsx tests/terraform.test.ts"},"_npmUser":{"name":"antoineschaller","email":"antoine.schaller@akson.ch"},"repository":{"url":"git+https://github.com/antoineschaller/cortex-packages.git","type":"git","directory":"packages/@akson/cortex-gtm"},"_npmVersion":"10.7.0","description":"Unified Google Tag Manager client with Terraform-like state management and MCP server","directories":{},"_nodeVersion":"20.15.1","dependencies":{"ora":"^7.0.1","zod":"^3.24.1","diff":"^5.1.0","chalk":"^5.3.0","table":"^6.8.1","dotenv":"^16.4.7","js-yaml":"^4.1.0","p-limit":"^5.0.0","prompts":"^2.4.2","winston":"^3.17.0","commander":"^14.0.0","crypto-js":"^4.2.0","googleapis":"^144.0.0","node-cache":"^5.1.2","google-auth-library":"^9.15.0","rate-limiter-flexible":"^5.0.3","@akson/cortex-utilities":"^0.3.0","@modelcontextprotocol/sdk":"^0.6.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","tsup":"^8.2.4","vitest":"^2.1.8","typescript":"^5.3.3","@types/diff":"^5.0.8","@types/node":"^20.10.5","@biomejs/biome":"^1.8.3","@types/js-yaml":"^4.0.9","@types/prompts":"^2.4.9"},"_npmOperationalInternal":{"tmp":"tmp/cortex-gtm_3.0.0_1757759320404_0.27522364880109906","host":"s3://npm-registry-packages-npm-production"}},"3.1.0":{"name":"@akson/cortex-gtm","version":"3.1.0","keywords":["gtm","google-tag-manager","terraform","state-management","mcp","model-context-protocol","analytics","cortex","akson"],"author":{"name":"Akson","email":"contact@akson.ch"},"license":"MIT","_id":"@akson/cortex-gtm@3.1.0","maintainers":[{"name":"antoineschaller","email":"antoine.schaller@akson.ch"}],"homepage":"https://github.com/antoineschaller/cortex-packages/tree/main/packages/@akson/cortex-gtm","bugs":{"url":"https://github.com/antoineschaller/cortex-packages/issues"},"bin":{"gtm":"dist/cli/index.js","gtm-mcp":"dist/mcp/cli.js"},"dist":{"shasum":"2d60811996c136a308d79db964d3fcb699248d8a","tarball":"https://registry.npmjs.org/@akson/cortex-gtm/-/cortex-gtm-3.1.0.tgz","fileCount":17,"integrity":"sha512-ZkN08zjNP4Udm9tgSsqlbi7OUxxy6T2kB3hQa3gmcT7O39CUJyl2FVLv954w39j0XqHiJc7iYz46T4lILcILyA==","signatures":[{"sig":"MEUCIQCHFr4AYSrn96ZbNZOGjyuNlmmIdowqaMToyL/DDdtHuwIgAXBee4ZNLILSxiW3SOZmXvwCJs/XFV05Ya8kZJQTY38=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":13470572},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./mcp":{"types":"./dist/mcp/server.d.ts","import":"./dist/mcp/server.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./terraform":{"types":"./dist/terraform/index.d.ts","import":"./dist/terraform/index.js"}},"gitHead":"b3a6a0832bb2fd230473076bde1bfc7810e9ac31","scripts":{"dev":"tsup --watch","lint":"biome check src/","test":"vitest","build":"tsup","clean":"rm -rf dist","format":"biome check src/ --write","type-check":"tsc --noEmit","test:terraform":"tsx tests/terraform.test.ts"},"_npmUser":{"name":"antoineschaller","email":"antoine.schaller@akson.ch"},"repository":{"url":"git+https://github.com/antoineschaller/cortex-packages.git","type":"git","directory":"packages/@akson/cortex-gtm"},"_npmVersion":"10.9.3","description":"Unified Google Tag Manager client with Terraform-like state management and MCP server","directories":{},"_nodeVersion":"22.20.0","dependencies":{"ora":"^7.0.1","zod":"^3.24.1","chalk":"^5.3.0","js-yaml":"^4.1.0","commander":"^14.0.0","googleapis":"^144.0.0","@akson/cortex-utilities":"^0.3.0","@modelcontextprotocol/sdk":"^1.25.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","tsup":"^8.2.4","vitest":"^2.1.8","typescript":"^5.3.3","@types/diff":"^5.0.8","@types/node":"^20.10.5","@biomejs/biome":"^1.8.3","@types/js-yaml":"^4.0.9","@types/prompts":"^2.4.9"},"_npmOperationalInternal":{"tmp":"tmp/cortex-gtm_3.1.0_1767610611534_0.46909794822720685","host":"s3://npm-registry-packages-npm-production"}},"3.1.1":{"name":"@akson/cortex-gtm","version":"3.1.1","description":"Unified Google Tag Manager client with Terraform-like state management and MCP server","type":"module","main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./terraform":{"types":"./dist/terraform/index.d.ts","import":"./dist/terraform/index.js"},"./mcp":{"types":"./dist/mcp/server.d.ts","import":"./dist/mcp/server.js"}},"bin":{"gtm":"dist/cli/index.js","gtm-mcp":"dist/mcp/cli.js"},"scripts":{"build":"tsup","dev":"tsup --watch","test":"vitest","test:terraform":"tsx tests/terraform.test.ts","type-check":"tsc --noEmit","lint":"biome check src/","format":"biome check src/ --write","clean":"rm -rf dist"},"dependencies":{"@akson/cortex-utilities":"^0.3.0","@modelcontextprotocol/sdk":"^1.25.0","chalk":"^5.3.0","commander":"^14.0.0","googleapis":"^144.0.0","js-yaml":"^4.1.0","ora":"^7.0.1","zod":"^3.24.1"},"devDependencies":{"@biomejs/biome":"^1.8.3","@types/diff":"^5.0.8","@types/js-yaml":"^4.0.9","@types/node":"^20.10.5","@types/prompts":"^2.4.9","tsup":"^8.2.4","tsx":"^4.7.0","typescript":"^5.3.3","vitest":"^2.1.8"},"engines":{"node":">=18.0.0"},"publishConfig":{"access":"public"},"author":{"name":"Akson","email":"contact@akson.ch"},"license":"MIT","homepage":"https://github.com/antoineschaller/cortex-packages/tree/main/packages/@akson/cortex-gtm","repository":{"type":"git","url":"git+https://github.com/antoineschaller/cortex-packages.git","directory":"packages/@akson/cortex-gtm"},"keywords":["gtm","google-tag-manager","terraform","state-management","mcp","model-context-protocol","analytics","cortex","akson"],"gitHead":"b3a6a0832bb2fd230473076bde1bfc7810e9ac31","_id":"@akson/cortex-gtm@3.1.1","bugs":{"url":"https://github.com/antoineschaller/cortex-packages/issues"},"_nodeVersion":"22.20.0","_npmVersion":"10.9.3","dist":{"integrity":"sha512-mZSaPEsFITRHgSW93mz81F3W0w4EbUamF7f80PFOETvtfS4Up73HuQqEFp3GGDPcHb9CvO9MRcmIMD1zVoyYug==","shasum":"33f8a5175e4af06553ca46d97ac0f28e087e0f2c","tarball":"https://registry.npmjs.org/@akson/cortex-gtm/-/cortex-gtm-3.1.1.tgz","fileCount":17,"unpackedSize":13471897,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCICP8Cyh+ahT5Y/hVxZIbOWTZdKcRDYuzbQloY6wY3SORAiBDV8Jj2HQ1qsMQl1OjRYUxf2JvdGaDvzM+ixjR7LHPag=="}]},"_npmUser":{"name":"antoineschaller","email":"antoine.schaller@akson.ch"},"directories":{},"maintainers":[{"name":"antoineschaller","email":"antoine.schaller@akson.ch"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/cortex-gtm_3.1.1_1769242891628_0.8966594272293806"},"_hasShrinkwrap":false}},"time":{"created":"2025-09-13T10:28:40.331Z","modified":"2026-01-24T08:21:32.024Z","3.0.0":"2025-09-13T10:28:40.585Z","3.1.0":"2026-01-05T10:56:51.821Z","3.1.1":"2026-01-24T08:21:31.914Z"},"bugs":{"url":"https://github.com/antoineschaller/cortex-packages/issues"},"author":{"name":"Akson","email":"contact@akson.ch"},"license":"MIT","homepage":"https://github.com/antoineschaller/cortex-packages/tree/main/packages/@akson/cortex-gtm","keywords":["gtm","google-tag-manager","terraform","state-management","mcp","model-context-protocol","analytics","cortex","akson"],"repository":{"type":"git","url":"git+https://github.com/antoineschaller/cortex-packages.git","directory":"packages/@akson/cortex-gtm"},"description":"Unified Google Tag Manager client with Terraform-like state management and MCP server","maintainers":[{"name":"antoineschaller","email":"antoine.schaller@akson.ch"}],"readme":"# @akson/cortex-gtm\n\nUnified Google Tag Manager client with Terraform-like state management and MCP server integration.\n\n## Features\n\n- 🏗️ **Terraform-like State Management** - Infrastructure as code for GTM\n- 📡 **MCP Server** - Model Context Protocol server for Claude AI integration\n- ⚡ **CLI Tools** - Command-line interface for GTM operations\n- 🔧 **Multi-format Support** - Client, Terraform, and MCP exports\n- 📊 **State Tracking** - Manage GTM configuration changes over time\n\n## Installation\n\n```bash\nnpm install @akson/cortex-gtm\n```\n\n## Usage\n\n### Basic Client\n\n```typescript\nimport { GTMClient } from '@akson/cortex-gtm/client';\n\nconst client = new GTMClient({\n  containerId: 'GTM-XXXXXXX',\n  serviceAccountKeyFile: 'path/to/key.json'\n});\n\n// Get container information\nconst container = await client.getContainer();\n```\n\n### Terraform-like State Management\n\n```typescript\nimport { GTMTerraform } from '@akson/cortex-gtm/terraform';\n\nconst terraform = new GTMTerraform({\n  containerId: 'GTM-XXXXXXX',\n  serviceAccountKeyFile: 'path/to/key.json'\n});\n\n// Plan changes\nconst plan = await terraform.plan('gtm.config.yaml');\n\n// Apply changes\nawait terraform.apply();\n```\n\n### CLI Usage\n\n```bash\n# Basic GTM operations\ngtm container list\ngtm tags list\ngtm triggers list\n\n# Terraform-like operations\ngtm plan --config gtm.config.yaml\ngtm apply --config gtm.config.yaml\n\n# MCP server\ngtm-mcp\n```\n\n### MCP Server Integration\n\n```bash\n# Start MCP server for Claude AI\ngtm-mcp\n```\n\n## Configuration\n\nCreate a `gtm.config.yaml` file:\n\n```yaml\ncontainer_id: \"GTM-XXXXXXX\"\nworkspace_id: 40\n\ntags:\n  - name: \"GA4 Configuration\"\n    type: \"googtag\"\n    parameters:\n      - key: \"tagId\"\n        value: \"G-XXXXXXXXXX\"\n\ntriggers:\n  - name: \"All Pages\"\n    type: \"pageview\"\n```\n\n## Package Exports\n\n- Main package - Core GTM functionality\n- `/client` - GTM client implementation\n- `/terraform` - Terraform-like state management\n- `/mcp` - MCP server for Claude AI integration\n\n## Version History\n\n- **3.0.0** - Current version with unified client and MCP server\n- **2.x.x** - Legacy versions\n\n## Contributing\n\nPart of the Cortex packages ecosystem. Contributions welcome!\n\n## License\n\nMIT\n\n## Support\n\nFor support, please open an issue in the [Cortex Packages repository](https://github.com/antoineschaller/cortex-packages).","readmeFilename":"README.md"}