{"_id":"@cnr-mtsn/shopify","_rev":"11-f36ea8ded4d824d9fd52402bc20da893","name":"@cnr-mtsn/shopify","dist-tags":{"latest":"3.0.1"},"versions":{"2.0.1":{"name":"@cnr-mtsn/shopify","version":"2.0.1","keywords":["shopify","extensions","migration","functions","checkout","preact","polaris"],"license":"MIT","_id":"@cnr-mtsn/shopify@2.0.1","maintainers":[{"name":"cnr-mtsn","email":"cnr.mtsn@gmail.com"}],"homepage":"https://github.com/cnr-mtsn/shopify-migrate#readme","bugs":{"url":"https://github.com/cnr-mtsn/shopify-migrate/issues"},"bin":{"shopify-migrate":"migrate-extensions.js"},"dist":{"shasum":"ffcc88bb1e8177dad0a37bb3a27e34b901441554","tarball":"https://registry.npmjs.org/@cnr-mtsn/shopify/-/shopify-2.0.1.tgz","fileCount":5,"integrity":"sha512-xE3NkwYRJErncOhq+HOnnn58EKtQZAqg4bIEyqGFKXNrMjmdhwJ/fVp1dAmB3U5HiubGU/Ve2dYCJUo6eZU3FQ==","signatures":[{"sig":"MEUCIQD9ExzkP8GOJL7ArO8tQFQ0sPkt5ZjOJVllSOYIxGEX0QIgAgk0nJW3Pr9FK6kCQtBrtCalJ4/i9ur3U/jELjQKZE8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":95689},"engines":{"node":">=18.0.0"},"gitHead":"05a5012917ca197795fb80de4a371680d27e48ae","scripts":{"migrate":"node migrate-extensions.js","migrate:dry-run":"node migrate-extensions.js --dry-run"},"_npmUser":{"name":"cnr-mtsn","email":"cnr.mtsn@gmail.com"},"repository":{"url":"git+https://github.com/cnr-mtsn/shopify-migrate.git","type":"git"},"_npmVersion":"11.7.0","description":"Shopify extension migration tool — Unified migration for Functions and UI Extensions to 2026-01 API version","directories":{},"_nodeVersion":"23.10.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/shopify_2.0.1_1770236800018_0.13565323385551475","host":"s3://npm-registry-packages-npm-production"}},"2.0.2":{"name":"@cnr-mtsn/shopify","version":"2.0.2","keywords":["shopify","extensions","migration","functions","checkout","preact","polaris"],"license":"MIT","_id":"@cnr-mtsn/shopify@2.0.2","maintainers":[{"name":"cnr-mtsn","email":"cnr.mtsn@gmail.com"}],"homepage":"https://github.com/cnr-mtsn/shopify-migrate#readme","bugs":{"url":"https://github.com/cnr-mtsn/shopify-migrate/issues"},"bin":{"shopify-migrate":"migrate-extensions.js"},"dist":{"shasum":"fc08b71e3d9d32baa95baab9301a3cb883f692ed","tarball":"https://registry.npmjs.org/@cnr-mtsn/shopify/-/shopify-2.0.2.tgz","fileCount":5,"integrity":"sha512-yrHygHFxQN4+sWA6F8w0Tx/oi9AlYQ16duF0jElCvqexZAWEVkwGfnMa4Y/7dr7Hl06UW/Mr1L3UqZvoACl4lw==","signatures":[{"sig":"MEQCIFQc0XOwZ4khCYwP9zFuU/PeK1S+vyS91eMbHGMPgJNTAiAWcHemVdgZK0GMcuH4zFfLPXfJoRI20TYH62tJ+n3NYg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":97118},"engines":{"node":">=18.0.0"},"gitHead":"d68be0c3b04bbbdf1f3bbaed9b2d9fca25b28f78","scripts":{"migrate":"node migrate-extensions.js","migrate:dry-run":"node migrate-extensions.js --dry-run"},"_npmUser":{"name":"cnr-mtsn","email":"cnr.mtsn@gmail.com"},"repository":{"url":"git+https://github.com/cnr-mtsn/shopify-migrate.git","type":"git"},"_npmVersion":"11.7.0","description":"Shopify extension migration tool — Unified migration for Functions and UI Extensions to 2026-01 API version","directories":{},"_nodeVersion":"23.10.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/shopify_2.0.2_1770237439834_0.22513652523028682","host":"s3://npm-registry-packages-npm-production"}},"2.0.3":{"name":"@cnr-mtsn/shopify","version":"2.0.3","keywords":["shopify","extensions","migration","functions","checkout","preact","polaris"],"license":"MIT","_id":"@cnr-mtsn/shopify@2.0.3","maintainers":[{"name":"cnr-mtsn","email":"cnr.mtsn@gmail.com"}],"homepage":"https://github.com/cnr-mtsn/shopify-migrate#readme","bugs":{"url":"https://github.com/cnr-mtsn/shopify-migrate/issues"},"bin":{"shopify-migrate":"migrate-extensions.js"},"dist":{"shasum":"e5cfb6dd57879a40b16d3b9eb9fe3434372dda62","tarball":"https://registry.npmjs.org/@cnr-mtsn/shopify/-/shopify-2.0.3.tgz","fileCount":5,"integrity":"sha512-6435Umb9Mlxmceno4SW6iyUeKxux/65RZpd10vrFPUeGpv4AZr+clOKY/2y6PQTIHJ11y3h2eC7uC35uUBkrpA==","signatures":[{"sig":"MEQCIE3gEq337uotbHNr3NHT8CYP+b4SMQs14ly5aEU1SzplAiB1PyD04yn1OTfjEeBm3JnlVtUtQGW3vcv8IFWMt61oVw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":99702},"engines":{"node":">=18.0.0"},"gitHead":"a77971bce2e937379bccacfff08f075570be1559","scripts":{"migrate":"node migrate-extensions.js","migrate:dry-run":"node migrate-extensions.js --dry-run"},"_npmUser":{"name":"cnr-mtsn","email":"cnr.mtsn@gmail.com"},"repository":{"url":"git+https://github.com/cnr-mtsn/shopify-migrate.git","type":"git"},"_npmVersion":"11.7.0","description":"Shopify extension migration tool — Unified migration for Functions and UI Extensions to 2026-01 API version","directories":{},"_nodeVersion":"23.10.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/shopify_2.0.3_1770237859625_0.06384275012770102","host":"s3://npm-registry-packages-npm-production"}},"2.0.4":{"name":"@cnr-mtsn/shopify","version":"2.0.4","keywords":["shopify","extensions","migration","functions","checkout","preact","polaris"],"license":"MIT","_id":"@cnr-mtsn/shopify@2.0.4","maintainers":[{"name":"cnr-mtsn","email":"cnr.mtsn@gmail.com"}],"homepage":"https://github.com/cnr-mtsn/shopify-migrate#readme","bugs":{"url":"https://github.com/cnr-mtsn/shopify-migrate/issues"},"bin":{"shopify-migrate":"migrate-extensions.js"},"dist":{"shasum":"91c693fba31d0beea0571455b9defec221bbbc7b","tarball":"https://registry.npmjs.org/@cnr-mtsn/shopify/-/shopify-2.0.4.tgz","fileCount":5,"integrity":"sha512-/h2pGYLVdXbhmXNWaqq0EBtEBZSzbaW00KqbEci1zHxaAgEvD3xNCeABZxlQMyqGWbvkJrcArrvJ2x+AVBagQA==","signatures":[{"sig":"MEYCIQCem/IJAbN+htTTPvRzO/+r8RPuB3oGlxmpqSdinpCfzQIhAOpnlDLXllzpbDhyyQN7Ci3fIvSakTqFRmjR/fenHmTl","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":100946},"engines":{"node":">=18.0.0"},"gitHead":"6e5a604696b2060292648d4fa74f08e2768c910a","scripts":{"migrate":"node migrate-extensions.js","migrate:dry-run":"node migrate-extensions.js --dry-run"},"_npmUser":{"name":"cnr-mtsn","email":"cnr.mtsn@gmail.com"},"repository":{"url":"git+https://github.com/cnr-mtsn/shopify-migrate.git","type":"git"},"_npmVersion":"11.7.0","description":"Shopify extension migration tool — Unified migration for Functions and UI Extensions to 2026-01 API version","directories":{},"_nodeVersion":"23.10.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/shopify_2.0.4_1770238119333_0.7933170795718416","host":"s3://npm-registry-packages-npm-production"}},"2.0.5":{"name":"@cnr-mtsn/shopify","version":"2.0.5","keywords":["shopify","extensions","migration","functions","checkout","preact","polaris"],"license":"MIT","_id":"@cnr-mtsn/shopify@2.0.5","maintainers":[{"name":"cnr-mtsn","email":"cnr.mtsn@gmail.com"}],"homepage":"https://github.com/cnr-mtsn/shopify-migrate#readme","bugs":{"url":"https://github.com/cnr-mtsn/shopify-migrate/issues"},"bin":{"shopify-migrate":"migrate-extensions.js"},"dist":{"shasum":"e091ec2ade915c7bede418117e24bfd838816d58","tarball":"https://registry.npmjs.org/@cnr-mtsn/shopify/-/shopify-2.0.5.tgz","fileCount":5,"integrity":"sha512-pv494SQecZS92t3o8/D8k+X2/LyftkUrS14celL00RyXpeKVtl8+qlPJBHzWcwQbFLQh0GWX9gusqYqkvaMdDA==","signatures":[{"sig":"MEUCIQD+TGrzanw/dPGhmM02Ps2qK0Otd3mmAmqwV+nb1DENwAIgEZQlEOkj5LiLr5RzRMauWmfYiiAM3NWr7QivwGZmSxg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":99494},"engines":{"node":">=18.0.0"},"gitHead":"6cc28422349995ceddd66ebc21a1ce56a0bc40e0","scripts":{"migrate":"node migrate-extensions.js","migrate:dry-run":"node migrate-extensions.js --dry-run"},"_npmUser":{"name":"cnr-mtsn","email":"cnr.mtsn@gmail.com"},"repository":{"url":"git+https://github.com/cnr-mtsn/shopify-migrate.git","type":"git"},"_npmVersion":"11.7.0","description":"Shopify extension migration tool — Unified migration for Functions and UI Extensions to 2026-01 API version","directories":{},"_nodeVersion":"23.10.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/shopify_2.0.5_1770238437277_0.6856813068604077","host":"s3://npm-registry-packages-npm-production"}},"2.0.6":{"name":"@cnr-mtsn/shopify","version":"2.0.6","keywords":["shopify","extensions","migration","functions","checkout","preact","polaris"],"license":"MIT","_id":"@cnr-mtsn/shopify@2.0.6","maintainers":[{"name":"cnr-mtsn","email":"cnr.mtsn@gmail.com"}],"homepage":"https://github.com/cnr-mtsn/shopify-migrate#readme","bugs":{"url":"https://github.com/cnr-mtsn/shopify-migrate/issues"},"bin":{"shopify-migrate":"migrate-extensions.js"},"dist":{"shasum":"781ac8fee93e33ab26a9b7af06837132cc81ecb5","tarball":"https://registry.npmjs.org/@cnr-mtsn/shopify/-/shopify-2.0.6.tgz","fileCount":5,"integrity":"sha512-+A1S/eVPlUCHV9HHO+zGC7JQVlsYaMEo9QRiQYCXpuMT+bsv2GaCe8LiOEpRHPvffFj+xGsfTdZFmDU9dMrAlQ==","signatures":[{"sig":"MEUCIQD8K3rP0Oxko5Pwqlj6quvUIE3dGch7+m++muUhBtjGYAIgBl3FTL3wmZIG0FU0aFecdlWGxHqSv2zefB+JYguZTqY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":114228},"engines":{"node":">=18.0.0"},"gitHead":"283f18e810ee46dafaf26d743206b36feb2044d1","scripts":{"migrate":"node migrate-extensions.js","migrate:dry-run":"node migrate-extensions.js --dry-run"},"_npmUser":{"name":"cnr-mtsn","email":"cnr.mtsn@gmail.com"},"repository":{"url":"git+https://github.com/cnr-mtsn/shopify-migrate.git","type":"git"},"_npmVersion":"11.7.0","description":"Shopify extension migration tool — Unified migration for Functions and UI Extensions to 2026-01 API version","directories":{},"_nodeVersion":"23.10.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/shopify_2.0.6_1770255070612_0.5518802879194915","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"@cnr-mtsn/shopify","version":"2.1.0","keywords":["shopify","extensions","migration","functions","checkout","preact","polaris","scaffold","express","theme","node"],"license":"MIT","_id":"@cnr-mtsn/shopify@2.1.0","maintainers":[{"name":"cnr-mtsn","email":"cnr.mtsn@gmail.com"}],"homepage":"https://github.com/cnr-mtsn/shopify-migrate#readme","bugs":{"url":"https://github.com/cnr-mtsn/shopify-migrate/issues"},"bin":{"shopify-init":"init-shopify.js","shopify-migrate":"migrate-extensions.js","shopify-create-node-app":"create-node-app.js"},"dist":{"shasum":"6d725c0f0c183850028e35f1b695626e27cd742d","tarball":"https://registry.npmjs.org/@cnr-mtsn/shopify/-/shopify-2.1.0.tgz","fileCount":22,"integrity":"sha512-1zjV1k/MIH0EgFAV/rSatfJMlaUHoGJGcqSibZqdl04EF9qwafOW7NPeNcj8i6KHvkbxRwxkw4dz+nASJEnn0w==","signatures":[{"sig":"MEQCICoghBub825Me/kvp+MiyLwFvHX/EwItsqR1NlUXVhMPAiB38VU2shVipWfNeTE5yoY/CgNFFlYFUhEzd9ez9WPX9Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":141005},"engines":{"node":">=18.0.0"},"gitHead":"89a7d25dc50033e2feccd8905cbb7b63fc44f44c","scripts":{"test":"node --test test/*.test.js","migrate":"node migrate-extensions.js","migrate:dry-run":"node migrate-extensions.js --dry-run"},"_npmUser":{"name":"cnr-mtsn","email":"cnr.mtsn@gmail.com"},"repository":{"url":"git+https://github.com/cnr-mtsn/shopify-migrate.git","type":"git"},"_npmVersion":"11.11.0","description":"Shopify developer CLI suite — extension migration, theme dev setup, and Node/Express app scaffolding","directories":{},"_nodeVersion":"25.8.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/shopify_2.1.0_1780452277060_0.09783550748543268","host":"s3://npm-registry-packages-npm-production"}},"3.0.0":{"name":"@cnr-mtsn/shopify","version":"3.0.0","keywords":["shopify","graphql","admin-api","scaffold","express","theme","node","cli","ink"],"license":"MIT","_id":"@cnr-mtsn/shopify@3.0.0","maintainers":[{"name":"cnr-mtsn","email":"cnr.mtsn@gmail.com"}],"homepage":"https://github.com/cnr-mtsn/-cnr-mtsn-shopify#readme","bugs":{"url":"https://github.com/cnr-mtsn/-cnr-mtsn-shopify/issues"},"bin":{"shopify-tools":"dist/cli.js"},"dist":{"shasum":"4bbef2eada28092f0f05e88db956570dd9fc3695","tarball":"https://registry.npmjs.org/@cnr-mtsn/shopify/-/shopify-3.0.0.tgz","fileCount":18,"integrity":"sha512-NGarad/K9YkBwiWOsrCjMWUtEhtS/l+VtFLqJOTLQiEXkO+wbFIcw3CRcUWssu0oEYT42v6zqfFtInezW6bKeA==","signatures":[{"sig":"MEYCIQDf5l8P2t3bu26nZmHvyPXGL3xpbFS3LPOoaOt5hty9DgIhAPZGsifQl3tjpCkhfBZ7y4/QfaHoLRZrlPJ0xWCg7HHc","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":39877},"type":"module","engines":{"node":">=22.0.0"},"gitHead":"f33fff8e1c1097c8754b60e7c7a25c0f58338dbb","scripts":{"test":"node --test test/*.test.js","build":"esbuild src/cli.jsx --bundle --format=esm --platform=node --jsx=automatic --packages=external --banner:js='#!/usr/bin/env node' --outfile=dist/cli.js","login":"npm login","publish":"npm publish --access public","prepublishOnly":"npm run build"},"_npmUser":{"name":"cnr-mtsn","email":"cnr.mtsn@gmail.com"},"repository":{"url":"git+https://github.com/cnr-mtsn/-cnr-mtsn-shopify.git","type":"git"},"_npmVersion":"10.9.4","description":"Shopify developer CLI suite — interactive Ink launcher for theme dev setup, Node/Express app scaffolding, and Admin GraphQL queries","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ink":"^7.1.0","react":"^19.2.7","ink-text-input":"^6.0.0","ink-select-input":"^6.2.0"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.1"},"_npmOperationalInternal":{"tmp":"tmp/shopify_3.0.0_1783625001668_0.43977303053253625","host":"s3://npm-registry-packages-npm-production"}},"3.0.1":{"name":"@cnr-mtsn/shopify","version":"3.0.1","description":"Shopify developer CLI suite — interactive Ink launcher for theme dev setup, Node/Express app scaffolding, and Admin GraphQL queries","type":"module","bin":{"shopify-tools":"dist/cli.js"},"scripts":{"build":"esbuild src/cli.jsx --bundle --format=esm --platform=node --jsx=automatic --packages=external --banner:js='#!/usr/bin/env node' --outfile=dist/cli.js","prepublishOnly":"npm run build","test":"node --test test/*.test.js","publish":"npm publish --access public","login":"npm login"},"keywords":["shopify","graphql","admin-api","scaffold","express","theme","node","cli","ink"],"repository":{"type":"git","url":"git+https://github.com/cnr-mtsn/-cnr-mtsn-shopify.git"},"license":"MIT","engines":{"node":">=22.0.0"},"dependencies":{"ink":"^7.1.0","ink-select-input":"^6.2.0","ink-text-input":"^6.0.0","react":"^19.2.7"},"devDependencies":{"esbuild":"^0.28.1"},"_id":"@cnr-mtsn/shopify@3.0.1","gitHead":"f33fff8e1c1097c8754b60e7c7a25c0f58338dbb","bugs":{"url":"https://github.com/cnr-mtsn/-cnr-mtsn-shopify/issues"},"homepage":"https://github.com/cnr-mtsn/-cnr-mtsn-shopify#readme","_nodeVersion":"22.22.1","_npmVersion":"10.9.4","dist":{"integrity":"sha512-i30uyT3xvq98pb6IiuOHtDwSn43lAJbqK42+tJSx6akEugdrPz5Xq8tA/f/f7WupaQLjqic32+ohWCAXaagebw==","shasum":"8bc0d47c952f416700f74c78c55749f2cf4d824c","tarball":"https://registry.npmjs.org/@cnr-mtsn/shopify/-/shopify-3.0.1.tgz","fileCount":18,"unpackedSize":39877,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDFOQSzpLmMvPVibJBs2SJDEMSU0ahsi7/n76Q9eMiffgIhAJfjkIB2OvPUF5DgKuY+4Ebyx8acPEBO1Uv1Kmdy35ax"}]},"_npmUser":{"name":"cnr-mtsn","email":"cnr.mtsn@gmail.com"},"directories":{},"maintainers":[{"name":"cnr-mtsn","email":"cnr.mtsn@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/shopify_3.0.1_1783625036998_0.017020764444350966"},"_hasShrinkwrap":false}},"time":{"created":"2026-02-04T20:26:39.890Z","modified":"2026-07-09T19:23:57.264Z","1.0.0":"2026-02-04T19:27:57.778Z","2.0.1":"2026-02-04T20:26:40.155Z","2.0.2":"2026-02-04T20:37:19.987Z","2.0.3":"2026-02-04T20:44:19.759Z","2.0.4":"2026-02-04T20:48:39.481Z","2.0.5":"2026-02-04T20:53:57.435Z","2.0.6":"2026-02-05T01:31:10.771Z","2.1.0":"2026-06-03T02:04:37.244Z","3.0.0":"2026-07-09T19:23:21.792Z","3.0.1":"2026-07-09T19:23:57.145Z"},"bugs":{"url":"https://github.com/cnr-mtsn/-cnr-mtsn-shopify/issues"},"license":"MIT","homepage":"https://github.com/cnr-mtsn/-cnr-mtsn-shopify#readme","keywords":["shopify","graphql","admin-api","scaffold","express","theme","node","cli","ink"],"repository":{"type":"git","url":"git+https://github.com/cnr-mtsn/-cnr-mtsn-shopify.git"},"description":"Shopify developer CLI suite — interactive Ink launcher for theme dev setup, Node/Express app scaffolding, and Admin GraphQL queries","maintainers":[{"name":"cnr-mtsn","email":"cnr.mtsn@gmail.com"}],"readme":"# @cnr-mtsn/shopify\n\nShopify developer CLI suite with an interactive [Ink](https://github.com/vadimdemedes/ink) launcher.\nOne bin, three tools: theme dev setup, Node/Express app scaffolding, and ad-hoc\nAdmin GraphQL queries.\n\n## Install\n\n```bash\nnpm i -g @cnr-mtsn/shopify\n# or run without installing\nnpx @cnr-mtsn/shopify\n```\n\nRequires Node 22+. The `graphql` tool additionally requires the Shopify CLI\n(`npm i -g @shopify/cli`).\n\n## Usage\n\n```bash\nshopify-tools                  # open the interactive launcher\nshopify-tools init             # jump straight to a tool\nshopify-tools create-node-app\nshopify-tools graphql\nshopify-tools --help\n```\n\nRunning bare opens a menu — ↑/↓ to navigate, ⏎ to run, q to quit:\n\n```\n╭──────────────────────────────────────────────────╮\n│  @cnr-mtsn/shopify                               │\n│                                                  │\n│  ❯ init              Theme dev setup             │\n│    create-node-app   Node/Express app scaffold   │\n│    graphql           Admin GraphQL runner        │\n│                                                  │\n│  ↑/↓ navigate · ⏎ run · q quit                   │\n╰──────────────────────────────────────────────────╯\n```\n\n## Tools\n\n### init — theme dev setup\n\nRun from the root of a Shopify theme (all 7 standard directories must exist).\nPrompts for a store, then writes a `package.json` with a `dev` script\n(`shopify theme dev --store=<store> --host=localhost --port=3000`), a\n`.gitignore`, and a `.shopifyignore`, and offers to start the dev server.\n\n```bash\ncd my-theme\nshopify-tools init\n```\n\n### create-node-app — Node/Express scaffold\n\nScaffolds a Shopify Node/Express app into the current directory — Admin\nGraphQL client (Client Credentials Grant), pino logging, webhook HMAC\nverification, Bearer auth, and a working `/health` route. Refuses to\noverwrite existing files.\n\n```bash\nmkdir my-app && cd my-app\nshopify-tools create-node-app\nnpm install\nnpm run dev   # GET /health\n```\n\n### graphql — Admin GraphQL runner\n\nRun ad-hoc Admin GraphQL against any store you can log into, using the\nShopify CLI's user-scoped auth (`shopify store auth` / `store execute`) — no\napp, client id, or access token needed. Prompts for the store and scopes\n(leave scopes empty to reuse a cached auth), then runs `./query.graphql` or\n`./mutation.graphql` from the current directory, or opens GraphiQL.\n\n```bash\ncd any-project        # with a query.graphql / mutation.graphql if running files\nshopify-tools graphql\n```\n\nThe browser auth screen opens on first use per store; the token is cached by\nthe Shopify CLI and acts as *you*, limited by your staff/collaborator\npermissions.\n\n## Development\n\n```bash\nnpm install\nnpm test          # node --test over src/lib\nnpm run build     # esbuild → dist/cli.js\nnode dist/cli.js  # run the built CLI\n```\n\nPure logic lives in `src/lib/` (tested); Ink screens live in `src/` and\n`src/tools/`. `prepublishOnly` rebuilds `dist/` automatically.\n","readmeFilename":"README.md"}