{"_id":"@cloud-solutions/shopify-app-remix-cloudflare","_rev":"4-e948a765fadf90eab889b2bcaac5298f","name":"@cloud-solutions/shopify-app-remix-cloudflare","dist-tags":{"latest":"1.0.4"},"versions":{"1.0.0":{"name":"@cloud-solutions/shopify-app-remix-cloudflare","version":"1.0.0","keywords":["shopify","javascript","typescript","remix","app","graphql","rest","webhook","Admin API","Storefront API"],"author":{"name":"Shopify Inc."},"license":"MIT","_id":"@cloud-solutions/shopify-app-remix-cloudflare@1.0.0","maintainers":[{"name":"cloud-solutions","email":"nicola.horst@p-h.solutions"}],"homepage":"https://github.com/Shopify/shopify-app-js/tree/main/packages/apps/shopify-app-remix","bugs":{"url":"https://github.com/Shopify/shopify-app-js/issues"},"dist":{"shasum":"4ffbf2253c95c0ba5604dcc859266ee4cfc8fa68","tarball":"https://registry.npmjs.org/@cloud-solutions/shopify-app-remix-cloudflare/-/shopify-app-remix-cloudflare-1.0.0.tgz","fileCount":3,"integrity":"sha512-zHSSs2LH8I/5Ia4IX60hB/ReyyaSLbAC5rzGsPdyu/aAxLPXyIvYraskjDqqKDYPIDnf0fLmvWW6kQwg+1am1w==","signatures":[{"sig":"MEUCIGgjty1dN0JHaeC1Fgb5tPR+v+P1Wy+8QdOzd8XcdaySAiEA03+o8kMeuwcEZvtAn/YGGMmig4Ow9uwrJmFmVyuFmg8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":15249},"main":"./dist/cjs/server/index.js","types":"./dist/ts/server/index.d.ts","module":"./dist/esm/server/index.mjs","exports":{"./react":{"types":"./dist/ts/react/index.d.ts","import":"./dist/esm/react/index.mjs","default":"./dist/cjs/react/index.js","require":"./dist/cjs/react/index.js"},"./server":{"types":"./dist/ts/server/index.d.ts","import":"./dist/esm/server/index.mjs","default":"./dist/cjs/server/index.js","require":"./dist/cjs/server/index.js"},"./adapters/*":{"types":"./dist/ts/server/adapters/*/index.d.ts","import":"./dist/esm/server/adapters/*/index.mjs","default":"./dist/cjs/server/adapters/*/index.js","require":"./dist/cjs/server/adapters/*/index.js"},"./test-helpers":{"types":"./dist/ts/server/test-helpers/index.d.ts","import":"./dist/esm/server/test-helpers/index.mjs","default":"./dist/cjs/server/test-helpers/index.js","require":"./dist/cjs/server/test-helpers/index.js"},"./server/adapters/*":{"types":"./dist/ts/server/adapters/*/index.d.ts","import":"./dist/esm/server/adapters/*/index.mjs","default":"./dist/cjs/server/adapters/*/index.js","require":"./dist/cjs/server/adapters/*/index.js"}},"gitHead":"34b37089aab5729b39c1f8062c364577040a0c49","scripts":{"tsc":"tsc","lint":"eslint . --ext .js,.ts","test":"jest","build":"pnpm rollup && pnpm tsc -p ./tsconfig.build.json","clean":"rimraf .rollup.cache dist","rollup":"rollup -c rollup.config.js --bundleConfigAsCjs","release":"pnpm build && changeset publish","test:ci":"pnpm test","version":"changeset version","changeset":"changeset","build-docs":"sh docs/build-docs.sh","validate-docs":"sh ./docs/build-docs.sh isTest && pnpm compare-docs"},"_npmUser":{"name":"cloud-solutions","email":"nicola.horst@p-h.solutions"},"repository":{"url":"git+https://github.com/CloudSolutionsUG/shopify-app-remix-cloudflare-ready.git","type":"git"},"_npmVersion":"10.8.2","description":"Shopify Remix  Vite Cloudflare - to simplify the building of Shopify Apps with Remix Vite and Cloudflare","directories":{},"_nodeVersion":"22.5.1","dependencies":{"isbot":"^5.1.16","semver":"^7.6.2","@shopify/shopify-api":"^11.4.1","@remix-run/server-runtime":"^2.12.1","@shopify/admin-api-client":"^1.0.2","@shopify/storefront-api-client":"^1.0.2","@shopify/shopify-app-session-storage":"^3.0.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/react":"^18.3.8","jsonwebtoken":"^9.0.2","@types/semver":"^7.5.8","@remix-run/node":"^2.12.1","jest-fetch-mock":"^3.0.3","@remix-run/react":"^2.11.2","@shopify/polaris":"^12.18.0","@remix-run/testing":"^2.11.2","@types/jsonwebtoken":"^9.0.7","@shopify/generate-docs":"^0.16.4","@shopify/react-testing":"^5.4.0","@shopify/shopify-app-session-storage-memory":"^4.0.6"},"peerDependencies":{"react":"*","@remix-run/node":"*","@remix-run/react":"*","@shopify/polaris":"*"},"peerDependenciesMeta":{"@remix-run/node":{"optional":true},"@shopify/polaris":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/shopify-app-remix-cloudflare_1.0.0_1727122028065_0.89271704586049","host":"s3://npm-registry-packages"}},"1.0.1":{"name":"@cloud-solutions/shopify-app-remix-cloudflare","version":"1.0.1","keywords":["shopify","javascript","typescript","remix","app","graphql","rest","webhook","Admin API","Storefront API"],"author":{"name":"Shopify Inc."},"license":"MIT","_id":"@cloud-solutions/shopify-app-remix-cloudflare@1.0.1","maintainers":[{"name":"cloud-solutions","email":"nicola.horst@p-h.solutions"}],"homepage":"https://github.com/Shopify/shopify-app-js/tree/main/packages/apps/shopify-app-remix","bugs":{"url":"https://github.com/Shopify/shopify-app-js/issues"},"dist":{"shasum":"b81832989d001b5c484cc48ad2cd1f080bc5943d","tarball":"https://registry.npmjs.org/@cloud-solutions/shopify-app-remix-cloudflare/-/shopify-app-remix-cloudflare-1.0.1.tgz","fileCount":3,"integrity":"sha512-nCIpWsEkchn3nbeLaowvSu4ZflAJP9SzyjKqWbLALznHQ9VNQaCshJSerdXV3lV6x8c/pejEk1mCsegdMI8eog==","signatures":[{"sig":"MEQCIAqPW8vTVdi1ajHMHaMtytVqwFwTY3ZdQCPOAWTAAllIAiAnW2QUP70iNxSx+7NxLeRSPFL4hoFST3Ou5gVHSporAQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":15249},"main":"./dist/cjs/server/index.js","types":"./dist/ts/server/index.d.ts","module":"./dist/esm/server/index.mjs","exports":{"./react":{"types":"./dist/ts/react/index.d.ts","import":"./dist/esm/react/index.mjs","default":"./dist/cjs/react/index.js","require":"./dist/cjs/react/index.js"},"./server":{"types":"./dist/ts/server/index.d.ts","import":"./dist/esm/server/index.mjs","default":"./dist/cjs/server/index.js","require":"./dist/cjs/server/index.js"},"./adapters/*":{"types":"./dist/ts/server/adapters/*/index.d.ts","import":"./dist/esm/server/adapters/*/index.mjs","default":"./dist/cjs/server/adapters/*/index.js","require":"./dist/cjs/server/adapters/*/index.js"},"./test-helpers":{"types":"./dist/ts/server/test-helpers/index.d.ts","import":"./dist/esm/server/test-helpers/index.mjs","default":"./dist/cjs/server/test-helpers/index.js","require":"./dist/cjs/server/test-helpers/index.js"},"./server/adapters/*":{"types":"./dist/ts/server/adapters/*/index.d.ts","import":"./dist/esm/server/adapters/*/index.mjs","default":"./dist/cjs/server/adapters/*/index.js","require":"./dist/cjs/server/adapters/*/index.js"}},"gitHead":"34b37089aab5729b39c1f8062c364577040a0c49","scripts":{"tsc":"tsc","lint":"eslint . --ext .js,.ts","test":"jest","build":"pnpm rollup && pnpm tsc -p ./tsconfig.build.json","clean":"rimraf .rollup.cache dist","rollup":"rollup -c rollup.config.js --bundleConfigAsCjs","release":"pnpm build && changeset publish","test:ci":"pnpm test","version":"changeset version","changeset":"changeset","build-docs":"sh docs/build-docs.sh","validate-docs":"sh ./docs/build-docs.sh isTest && pnpm compare-docs"},"_npmUser":{"name":"cloud-solutions","email":"nicola.horst@p-h.solutions"},"repository":{"url":"git+https://github.com/CloudSolutionsUG/shopify-app-remix-cloudflare-ready.git","type":"git"},"_npmVersion":"10.8.2","description":"Shopify Remix  Vite Cloudflare - to simplify the building of Shopify Apps with Remix Vite and Cloudflare","directories":{},"_nodeVersion":"22.5.1","dependencies":{"isbot":"^5.1.16","semver":"^7.6.2","@shopify/shopify-api":"^11.4.1","@remix-run/server-runtime":"^2.12.1","@shopify/admin-api-client":"^1.0.2","@shopify/storefront-api-client":"^1.0.2","@shopify/shopify-app-session-storage":"^3.0.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/react":"^18.3.8","jsonwebtoken":"^9.0.2","@types/semver":"^7.5.8","@remix-run/node":"^2.12.1","jest-fetch-mock":"^3.0.3","@remix-run/react":"^2.11.2","@shopify/polaris":"^12.18.0","@remix-run/testing":"^2.11.2","@types/jsonwebtoken":"^9.0.7","@shopify/generate-docs":"^0.16.4","@shopify/react-testing":"^5.4.0","@shopify/shopify-app-session-storage-memory":"^4.0.6"},"peerDependencies":{"react":"*","@remix-run/node":"*","@remix-run/react":"*","@shopify/polaris":"*"},"peerDependenciesMeta":{"@remix-run/node":{"optional":true},"@shopify/polaris":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/shopify-app-remix-cloudflare_1.0.1_1727122966635_0.28682883601462095","host":"s3://npm-registry-packages"}},"1.0.2":{"name":"@cloud-solutions/shopify-app-remix-cloudflare","version":"1.0.2","keywords":["shopify","javascript","typescript","remix","app","graphql","rest","webhook","Admin API","Storefront API"],"author":{"name":"Shopify Inc."},"license":"MIT","_id":"@cloud-solutions/shopify-app-remix-cloudflare@1.0.2","maintainers":[{"name":"cloud-solutions","email":"nicola.horst@p-h.solutions"}],"homepage":"https://github.com/Shopify/shopify-app-js/tree/main/packages/apps/shopify-app-remix","bugs":{"url":"https://github.com/Shopify/shopify-app-js/issues"},"dist":{"shasum":"1e01d1193aad9a27e90c146e81bee87cffaba6e1","tarball":"https://registry.npmjs.org/@cloud-solutions/shopify-app-remix-cloudflare/-/shopify-app-remix-cloudflare-1.0.2.tgz","fileCount":602,"integrity":"sha512-McoDy4UD3tHBgOIRx8RPGWD2F88Lwpwp8uiqm4TB4NNdQOVw6WLORet2tVksCTpzZ5HNuTCKzYUV1Ni0Zt/MLg==","signatures":[{"sig":"MEYCIQCZF4eCHLSNy63ldCv+0IYupVF+VHkxztOzD76VEH9PNwIhAJmFUNRBUp5Tv1GvfBSC2D8yUwWZM41P+49l/z4pjG7A","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":911122},"main":"./dist/cjs/server/index.js","types":"./dist/ts/server/index.d.ts","module":"./dist/esm/server/index.mjs","exports":{"./react":{"types":"./dist/ts/react/index.d.ts","import":"./dist/esm/react/index.mjs","default":"./dist/cjs/react/index.js","require":"./dist/cjs/react/index.js"},"./server":{"types":"./dist/ts/server/index.d.ts","import":"./dist/esm/server/index.mjs","default":"./dist/cjs/server/index.js","require":"./dist/cjs/server/index.js"},"./adapters/*":{"types":"./dist/ts/server/adapters/*/index.d.ts","import":"./dist/esm/server/adapters/*/index.mjs","default":"./dist/cjs/server/adapters/*/index.js","require":"./dist/cjs/server/adapters/*/index.js"},"./test-helpers":{"types":"./dist/ts/server/test-helpers/index.d.ts","import":"./dist/esm/server/test-helpers/index.mjs","default":"./dist/cjs/server/test-helpers/index.js","require":"./dist/cjs/server/test-helpers/index.js"},"./server/adapters/*":{"types":"./dist/ts/server/adapters/*/index.d.ts","import":"./dist/esm/server/adapters/*/index.mjs","default":"./dist/cjs/server/adapters/*/index.js","require":"./dist/cjs/server/adapters/*/index.js"}},"gitHead":"34b37089aab5729b39c1f8062c364577040a0c49","scripts":{"tsc":"tsc","lint":"eslint . --ext .js,.ts","test":"jest","build":"pnpm rollup && pnpm tsc -p ./tsconfig.build.json","clean":"rimraf .rollup.cache dist","rollup":"rollup -c rollup.config.js --bundleConfigAsCjs","release":"pnpm build && changeset publish","test:ci":"pnpm test","version":"changeset version","changeset":"changeset","build-docs":"sh docs/build-docs.sh","validate-docs":"sh ./docs/build-docs.sh isTest && pnpm compare-docs"},"_npmUser":{"name":"cloud-solutions","email":"nicola.horst@p-h.solutions"},"repository":{"url":"git+https://github.com/CloudSolutionsUG/shopify-app-remix-cloudflare-ready.git","type":"git"},"_npmVersion":"10.8.2","description":"Shopify Remix  Vite Cloudflare - to simplify the building of Shopify Apps with Remix Vite and Cloudflare","directories":{},"_nodeVersion":"22.5.1","dependencies":{"isbot":"^5.1.16","semver":"^7.6.2","@shopify/shopify-api":"^11.4.1","@remix-run/server-runtime":"^2.12.1","@shopify/admin-api-client":"^1.0.2","@shopify/storefront-api-client":"^1.0.2","@shopify/shopify-app-session-storage":"^3.0.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/react":"^18.3.8","jsonwebtoken":"^9.0.2","@types/semver":"^7.5.8","@remix-run/node":"^2.12.1","jest-fetch-mock":"^3.0.3","@remix-run/react":"^2.11.2","@shopify/polaris":"^12.18.0","@remix-run/testing":"^2.11.2","@types/jsonwebtoken":"^9.0.7","@shopify/generate-docs":"^0.16.4","@shopify/react-testing":"^5.4.0","@shopify/shopify-app-session-storage-memory":"^4.0.6"},"peerDependencies":{"react":"*","@remix-run/node":"*","@remix-run/react":"*","@shopify/polaris":"*"},"peerDependenciesMeta":{"@remix-run/node":{"optional":true},"@shopify/polaris":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/shopify-app-remix-cloudflare_1.0.2_1727123546761_0.5093619944498695","host":"s3://npm-registry-packages"}},"1.0.3":{"name":"@cloud-solutions/shopify-app-remix-cloudflare","version":"1.0.3","keywords":["shopify","javascript","typescript","remix","app","graphql","rest","webhook","Admin API","Storefront API"],"author":{"name":"Shopify Inc."},"license":"MIT","_id":"@cloud-solutions/shopify-app-remix-cloudflare@1.0.3","maintainers":[{"name":"cloud-solutions","email":"nicola.horst@p-h.solutions"}],"homepage":"https://github.com/Shopify/shopify-app-js/tree/main/packages/apps/shopify-app-remix","bugs":{"url":"https://github.com/Shopify/shopify-app-js/issues"},"dist":{"shasum":"e72f5f4b9de31f8bdf7b6c530afe6502aaf0c334","tarball":"https://registry.npmjs.org/@cloud-solutions/shopify-app-remix-cloudflare/-/shopify-app-remix-cloudflare-1.0.3.tgz","fileCount":602,"integrity":"sha512-N5Ym/8MzFVPtsQ4cTkH2Njwdkv/lX9vbpGuFd0urIRnLPDrGQO3en08aOLpv2OXqekD+AGBFax8wWDOeSL2giw==","signatures":[{"sig":"MEYCIQC8kLEDUL0Ia3hAyNzNKiCuIcnUzItL6OPKpfXcafoQ/gIhAOLvdft0/CIDm6BjtTuh+L51AYh5MT9BqJewytqIAhyk","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":911025},"main":"./dist/cjs/server/index.js","types":"./dist/ts/server/index.d.ts","module":"./dist/esm/server/index.mjs","exports":{"./react":{"types":"./dist/ts/react/index.d.ts","import":"./dist/esm/react/index.mjs","default":"./dist/cjs/react/index.js","require":"./dist/cjs/react/index.js"},"./server":{"types":"./dist/ts/server/index.d.ts","import":"./dist/esm/server/index.mjs","default":"./dist/cjs/server/index.js","require":"./dist/cjs/server/index.js"},"./adapters/*":{"types":"./dist/ts/server/adapters/*/index.d.ts","import":"./dist/esm/server/adapters/*/index.mjs","default":"./dist/cjs/server/adapters/*/index.js","require":"./dist/cjs/server/adapters/*/index.js"},"./test-helpers":{"types":"./dist/ts/server/test-helpers/index.d.ts","import":"./dist/esm/server/test-helpers/index.mjs","default":"./dist/cjs/server/test-helpers/index.js","require":"./dist/cjs/server/test-helpers/index.js"},"./server/adapters/*":{"types":"./dist/ts/server/adapters/*/index.d.ts","import":"./dist/esm/server/adapters/*/index.mjs","default":"./dist/cjs/server/adapters/*/index.js","require":"./dist/cjs/server/adapters/*/index.js"}},"gitHead":"c0a666d286ea3f122d7bdb08e80fd1fa57362405","scripts":{"tsc":"tsc","lint":"eslint . --ext .js,.ts","test":"jest","build":"pnpm rollup && pnpm tsc -p ./tsconfig.build.json","clean":"rimraf .rollup.cache dist","rollup":"rollup -c rollup.config.js --bundleConfigAsCjs","release":"pnpm build && changeset publish","test:ci":"pnpm test","version":"changeset version","changeset":"changeset","build-docs":"sh docs/build-docs.sh","validate-docs":"sh ./docs/build-docs.sh isTest && pnpm compare-docs"},"_npmUser":{"name":"cloud-solutions","email":"nicola.horst@p-h.solutions"},"repository":{"url":"git+https://github.com/CloudSolutionsUG/shopify-app-remix-cloudflare-ready.git","type":"git"},"_npmVersion":"10.8.2","description":"Shopify Remix  Vite Cloudflare - to simplify the building of Shopify Apps with Remix Vite and Cloudflare","directories":{},"_nodeVersion":"22.5.1","dependencies":{"isbot":"^5.1.16","semver":"^7.6.2","@shopify/shopify-api":"^11.4.1","@remix-run/server-runtime":"^2.12.1","@shopify/admin-api-client":"^1.0.2","@shopify/storefront-api-client":"^1.0.2","@shopify/shopify-app-session-storage":"^3.0.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/react":"^18.3.8","jsonwebtoken":"^9.0.2","@types/semver":"^7.5.8","@remix-run/node":"^2.12.1","jest-fetch-mock":"^3.0.3","@remix-run/react":"^2.11.2","@shopify/polaris":"^12.18.0","@remix-run/testing":"^2.11.2","@types/jsonwebtoken":"^9.0.7","@shopify/generate-docs":"^0.16.4","@shopify/react-testing":"^5.4.0","@shopify/shopify-app-session-storage-memory":"^4.0.6"},"peerDependencies":{"react":"*","@remix-run/node":"*","@remix-run/react":"*","@shopify/polaris":"*"},"peerDependenciesMeta":{"@remix-run/node":{"optional":true},"@shopify/polaris":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/shopify-app-remix-cloudflare_1.0.3_1727126717365_0.24649530923976526","host":"s3://npm-registry-packages"}},"1.0.4":{"name":"@cloud-solutions/shopify-app-remix-cloudflare","version":"1.0.4","description":"Shopify Remix  Vite Cloudflare - to simplify the building of Shopify Apps with Remix Vite and Cloudflare","repository":{"type":"git","url":"git+https://github.com/CloudSolutionsUG/shopify-app-remix-cloudflare-ready.git"},"bugs":{"url":"https://github.com/Shopify/shopify-app-js/issues"},"homepage":"https://github.com/Shopify/shopify-app-js/tree/main/packages/apps/shopify-app-remix","author":{"name":"Shopify Inc."},"license":"MIT","main":"./dist/cjs/server/index.js","module":"./dist/esm/server/index.mjs","types":"./dist/ts/server/index.d.ts","exports":{"./adapters/*":{"types":"./dist/ts/server/adapters/*/index.d.ts","require":"./dist/cjs/server/adapters/*/index.js","import":"./dist/esm/server/adapters/*/index.mjs","default":"./dist/cjs/server/adapters/*/index.js"},"./server/adapters/*":{"types":"./dist/ts/server/adapters/*/index.d.ts","require":"./dist/cjs/server/adapters/*/index.js","import":"./dist/esm/server/adapters/*/index.mjs","default":"./dist/cjs/server/adapters/*/index.js"},"./server":{"types":"./dist/ts/server/index.d.ts","require":"./dist/cjs/server/index.js","import":"./dist/esm/server/index.mjs","default":"./dist/cjs/server/index.js"},"./react":{"types":"./dist/ts/react/index.d.ts","require":"./dist/cjs/react/index.js","import":"./dist/esm/react/index.mjs","default":"./dist/cjs/react/index.js"},"./test-helpers":{"types":"./dist/ts/server/test-helpers/index.d.ts","require":"./dist/cjs/server/test-helpers/index.js","import":"./dist/esm/server/test-helpers/index.mjs","default":"./dist/cjs/server/test-helpers/index.js"}},"scripts":{"build-docs":"sh docs/build-docs.sh","validate-docs":"sh ./docs/build-docs.sh isTest && pnpm compare-docs","lint":"eslint . --ext .js,.ts","build":"pnpm rollup && pnpm tsc -p ./tsconfig.build.json","tsc":"tsc","test":"jest","test:ci":"pnpm test","rollup":"rollup -c rollup.config.js --bundleConfigAsCjs","clean":"rimraf .rollup.cache dist","changeset":"changeset","version":"changeset version","release":"pnpm build && changeset publish"},"publishConfig":{"access":"public"},"keywords":["shopify","javascript","typescript","remix","app","graphql","rest","webhook","Admin API","Storefront API"],"devDependencies":{"@remix-run/node":"^2.12.1","@remix-run/react":"^2.11.2","@remix-run/testing":"^2.11.2","@shopify/generate-docs":"^0.16.4","@shopify/polaris":"^12.18.0","@shopify/react-testing":"^5.4.0","@shopify/shopify-app-session-storage-memory":"^4.0.6","@types/jsonwebtoken":"^9.0.7","@types/react":"^18.3.8","@types/semver":"^7.5.8","jest-fetch-mock":"^3.0.3","jsonwebtoken":"^9.0.2"},"dependencies":{"@remix-run/server-runtime":"^2.12.1","@shopify/admin-api-client":"^1.0.2","@shopify/shopify-api":"^11.4.1","@shopify/shopify-app-session-storage":"^3.0.6","@shopify/storefront-api-client":"^1.0.2","isbot":"^5.1.16","semver":"^7.6.2"},"peerDependencies":{"@remix-run/node":"*","@remix-run/react":"*","@shopify/polaris":"*","react":"*"},"peerDependenciesMeta":{"@shopify/polaris":{"optional":true},"@remix-run/node":{"optional":true}},"_id":"@cloud-solutions/shopify-app-remix-cloudflare@1.0.4","gitHead":"c0a666d286ea3f122d7bdb08e80fd1fa57362405","_nodeVersion":"22.5.1","_npmVersion":"10.8.2","dist":{"integrity":"sha512-1+8nk2I02r6zhkpM+QmnJSJiGvqhHCnfnMkz96v7N9IuSz6guolSR8K24odHGIS9LIZCSwaGqBo3OKWLp78bnw==","shasum":"ac7628e1aa67ada01213738197be996622cf4219","tarball":"https://registry.npmjs.org/@cloud-solutions/shopify-app-remix-cloudflare/-/shopify-app-remix-cloudflare-1.0.4.tgz","fileCount":602,"unpackedSize":911035,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDnZO9htjRgEHRuCBBFP1VhLac/DT9nf6G1kppofTpQzQIhALxwPwX34QRn8h4k6Ij9mPZayAAZQW+utYjRLL0OeWVp"}]},"_npmUser":{"name":"cloud-solutions","email":"nicola.horst@p-h.solutions"},"directories":{},"maintainers":[{"name":"cloud-solutions","email":"nicola.horst@p-h.solutions"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/shopify-app-remix-cloudflare_1.0.4_1727129431614_0.5581167389875774"},"_hasShrinkwrap":false}},"time":{"created":"2024-09-23T20:07:07.936Z","modified":"2024-09-23T22:10:32.148Z","1.0.0":"2024-09-23T20:07:08.280Z","1.0.1":"2024-09-23T20:22:46.867Z","1.0.2":"2024-09-23T20:32:26.993Z","1.0.3":"2024-09-23T21:25:17.683Z","1.0.4":"2024-09-23T22:10:31.937Z"},"bugs":{"url":"https://github.com/Shopify/shopify-app-js/issues"},"author":{"name":"Shopify Inc."},"license":"MIT","homepage":"https://github.com/Shopify/shopify-app-js/tree/main/packages/apps/shopify-app-remix","keywords":["shopify","javascript","typescript","remix","app","graphql","rest","webhook","Admin API","Storefront API"],"repository":{"type":"git","url":"git+https://github.com/CloudSolutionsUG/shopify-app-remix-cloudflare-ready.git"},"description":"Shopify Remix  Vite Cloudflare - to simplify the building of Shopify Apps with Remix Vite and Cloudflare","maintainers":[{"name":"cloud-solutions","email":"nicola.horst@p-h.solutions"}],"readme":"# `@shopify/shopify-app-remix`\n\n<!-- ![Build Status]() -->\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](LICENSE.md)\n[![npm version](https://badge.fury.io/js/%40shopify%2Fshopify-app-remix.svg)](https://badge.fury.io/js/%40shopify%2Fshopify-app-remix)\n\nThis package makes it easy to use [Remix](https://remix.run/) to build Shopify apps.\nIt builds on the `@shopify/shopify-api` package and exposes a `shopifyApp` function. You can use `shopifyApp` to configure your app and then authenticate requests from Shopify.\n\nVisit the [`shopify.dev` documentation](https://shopify.dev/docs/api/shopify-app-remix) for more details on the Remix app package.\n\n## Requirements\n\nTo use this package, you will need to have:\n\n- a Shopify Partner account and development store\n- an app already set up on your partner account\n- a JavaScript package manager such as [yarn](https://yarnpkg.com) installed\n\n## Getting started\n\n### Shopify CLI\n\nThe easiest way to get started with developing Shopify apps is using the [Shopify CLI](https://shopify.dev/docs/apps/tools/cli).\nIt helps you set up your environment for developing and publishing your apps and extensions.\n\nWe strongly recommend using the CLI to create and manage your Remix apps and extensions!\nRefer to the [getting started documentation](https://shopify.dev/docs/apps/getting-started/create) to create your app using the Shopify CLI.\n\n### Using a plain Remix app\n\nThis package works with any Remix app. If you're starting an app from scratch, then you can create a brand new Remix app that uses the indie-stack:\n\n```bash\nnpx create-remix@latest --template remix-run/indie-stack\ncd ./name-of-your-app\n```\n\nNow let's install this package:\n\n```bash\nnpm install @shopify/shopify-app-remix\n```\n\nNext, you'll need to set up some routes and headers so you can embed your app in the Shopify admin.\nYou can find more details on all the steps described here in the [package documentation](https://shopify.dev/docs/api/shopify-app-remix).\n\nCreate `app/shopify.server.js`. We will use this file to configure our Shopify app by calling the [`shopifyApp` function](https://shopify.dev/docs/api/shopify-app-remix/latest/entrypoints/shopifyapp):\n\n```ts\n// app/shopify.server.js\n// Note that you don't need to import the node adapter if you're running on a different runtime.\nimport '@shopify/shopify-app-remix/server/adapters/node';\n// Memory storage makes it easy to set an app up, but should never be used in production.\nimport {MemorySessionStorage} from '@shopify/shopify-app-session-storage-memory';\n\nimport {LATEST_API_VERSION, shopifyApp} from '@shopify/shopify-app-remix';\n\nconst shopify = shopifyApp({\n  apiKey: process.env.SHOPIFY_API_KEY!,\n  apiSecretKey: process.env.SHOPIFY_API_SECRET!,\n  appUrl: process.env.SHOPIFY_APP_URL!,\n  scopes: ['read_products'],\n  apiVersion: LATEST_API_VERSION,\n  sessionStorage: new MemorySessionStorage(),\n});\nexport default shopify;\n```\n\nThis will require some environment variables. So let's create an `.env` file:\n\n```env\nSHOPIFY_API_KEY=\"[Copy from partners dashboard]\"\nSHOPIFY_API_SECRET=\"[Copy from partners dashboard]\"\nSHOPIFY_APP_URL=\"[The tunnel URL you are using to run your app]\"\n```\n\n`shopifyApp` needs to reserve a [splat route](https://remix.run/docs/en/main/guides/routing#splats) for auth.\nIt should export a loader that uses `shopifyApp` to authenticate:\n\n```ts\n// app/routes/auth/$.tsx\nimport {LoaderFunctionArgs} from '@remix-run/node';\n\nimport shopify from '~/shopify.server';\n\nexport async function loader({request}: LoaderFunctionArgs) {\n  await shopify.authenticate.admin(request);\n\n  return null;\n}\n```\n\nNext, set up the [`AppProvider` component](https://shopify.dev/docs/api/shopify-app-remix/latest/entrypoints/appprovider) in your app's routes. To do this pass the `process.env.SHOPIFY_API_KEY` to the frontend via the loader.\n\nHere is an example:\n\n```ts\n// root.tsx\nimport {LoaderFunctionArgs} from '@remix-run/node';\nimport {AppProvider} from '@shopify/shopify-app-remix/react';\n\nimport shopify from '~/shopify.server';\n\nexport async function loader({request}: LoaderFunctionArgs) {\n  await shopify.authenticate.admin(request);\n\n  return json({\n    apiKey: process.env.SHOPIFY_API_KEY,\n  });\n}\n\nexport default function App() {\n  const {apiKey} = useLoaderData<typeof loader>();\n\n  return (\n    <html>\n      <head>\n        <Meta />\n        <Links />\n      </head>\n      <body>\n        <AppProvider apiKey={apiKey} isEmbeddedApp>\n          <Outlet />\n        </AppProvider>\n      </body>\n    </html>\n  );\n}\n```\n\nThis component will set up [Polaris](https://polaris.shopify.com/components/utilities/app-provider) and [App Bridge](https://shopify.dev/tools/app-bridge). If your app isn't embedded, set the `isEmbeddedApp` prop to `false`.\n\nNow that your app is ready to respond to requests, it will also need to add the required `Content-Security-Policy` header directives, as per [our documentation](https://shopify.dev/docs/apps/store/security/iframe-protection).\nTo do that, this package provides the `shopify.addDocumentResponseHeaders` method.\n\nYou should return these headers from any endpoint that renders HTML in your app.\nMost likely you'll want to add this to every HTML response by updating the entry.server.tsx file:\n\n```ts\n// entry.server.tsx\nimport shopify from './shopify.server';\n\nexport default function handleRequest(\n  request: Request,\n  responseStatusCode: number,\n  responseHeaders: Headers,\n  remixContext: EntryContext,\n) {\n  shopify.addDocumentResponseHeaders(request, responseHeaders);\n\n  /// ..etc\n}\n```\n\n### Running your app\n\nTo run your app and load it within the Shopify Admin, you need to:\n\n1. Update your app's URL in your Partners Dashboard app setup page to `http://localhost:8080`\n1. Update your app's callback URL to `http://localhost:8080/api/auth/callback` in that same page\n1. Go to **Test your app** in Partners Dashboard and select your development store\n\n## Next steps\n\nOnce your app is up and running, you can start using this package to interact with Shopify APIs, webhooks and more.\n\nHere are some guides to help you set up your app:\n\n- [Interacting with Shopify Admin](https://shopify.dev/docs/api/shopify-app-remix/latest/guide-admin)\n- [Subscribing to webhooks](https://shopify.dev/docs/api/shopify-app-remix/latest/guide-webhooks)\n\nYou can also authenticate requests from surfaces other than the admin.\nTo see all supported methods, see [the `shopify.authenticate` object documentation](https://shopify.dev/docs/api/shopify-app-remix/latest/authenticate).\n\n### New embedded app authorization strategy\n\n> [!TIP]\n> If you are building an embedded app, we **strongly** recommend using [Shopify managed installation](https://shopify.dev/docs/apps/auth/installation#shopify-managed-installation)\n> with [token exchange](https://shopify.dev/docs/apps/auth/get-access-tokens/token-exchange) instead of the legacy authorization code grant flow.\n\nWe've introduced a new installation and authorization strategy for **embedded apps** that\neliminates the redirects that were previously necessary.\nIt replaces the existing [installation and authorization code grant flow](https://shopify.dev/docs/apps/auth/get-access-tokens/authorization-code-grant).\n\nThis is achieved by using [Shopify managed installation](https://shopify.dev/docs/apps/auth/installation#shopify-managed-installation)\nto handle automatic app installations and scope updates, while utilizing\n[token exchange](https://shopify.dev/docs/apps/auth/get-access-tokens/token-exchange) to retrieve an access token for\nauthenticated API access.\n\n#### Enabling this new strategy in your app\n\n> [!NOTE]\n> Newly created Remix apps from the template after February 1st 2024 has this feature enabled by default.\n\n1. Enable [Shopify managed installation](https://shopify.dev/docs/apps/auth/installation#shopify-managed-installation)\n   by configuring your scopes [through the Shopify CLI](https://shopify.dev/docs/apps/tools/cli/configuration).\n2. Enable the future flag `unstable_newEmbeddedAuthStrategy` in your app's server configuration file.\n\n   ```ts\n   // my-app/app/shopify.server.ts\n   const shopify = shopifyApp({\n     ...\n     isEmbeddedApp: true,\n     future: {\n       unstable_newEmbeddedAuthStrategy: true,\n     }\n   })\n   ```\n\n3. Enjoy a smoother and faster app installation process.\n\n##### Learn more about\n\n- [How token exchange works](https://shopify.dev/docs/apps/auth/get-access-tokens/token-exchange)\n- [Using Shopify managed installation](https://shopify.dev/docs/apps/auth/installation#shopify-managed-installation)\n- [Configuring access scopes through the Shopify CLI](https://shopify.dev/docs/apps/tools/cli/configuration)\n\n### Testing your app\n\nThis package exports a helper method through `@shopify/shopify-app-remix/test-helpers` to simplify testing: `testConfig()`. This method can be used to pass dummy configuration properties to `shopifyApp()`.\n\nIf your testing framework supports setting environment variables, we recommend using an environment variable, for example \"SHOPIFY_TESTING\" to replace your default config with the config returned from `testConfig()`.\n\n```ts\n// my-app/app/shopify.server.ts\nimport { testConfig } from \"@shopify/shopify-app-remix/test-helpers\";\n...\nconst config = {\n  ...\n};\n\nif (process.env.SHOPIFY_TESTING) {\n  Object.assign(config, testConfig());\n}\n\nconst shopify = shopifyApp(config);\n...\n```\n\n`testConfig()` accepts a config object as an optional parameter. The config values provided override the default config values returned by `testConfig()`. This is especially useful for integration testing and end-to-end testing to ensure `shopifyApp()` reads the sessions from the development database.\n\n```ts\n// my-app/app/shopify.server.ts\nimport { testConfig } from \"@shopify/shopify-app-remix/test-helpers\";\n...\nconst sessionStorage = new PrismaSessionStorage(prisma);\nconst config = {\n  ...\n  sessionStorage,\n  ...\n};\n\nif (process.env.SHOPIFY_TESTING) {\n  Object.assign(config, testConfig());\n}\n\nif (process.env.SHOPIFY_TESTING === \"e2e\") {\n  Object.assign(config, testConfig({ sessionStorage }));\n}\n...\n```\n\n## Gotchas / Troubleshooting\n\nIf you're experiencing unexpected behaviors when using this package, check our [app template's documentation](https://github.com/Shopify/shopify-app-template-remix#gotchas--troubleshooting) for the solution to common issues.\n","readmeFilename":"README.md"}