From 3d9b6c626d0d701350beae8e94ca99eda00a9c56 Mon Sep 17 00:00:00 2001 From: Helen Lin Date: Thu, 4 Nov 2021 15:22:30 -0700 Subject: [PATCH] feat: initial commit --- .alexignore | 4 + .alexrc.js | 19 + .eslintrc.js | 121 + .github/ISSUE_TEMPLATE/bug_report.md | 31 + .github/ISSUE_TEMPLATE/config.yml | 11 + .github/PULL_REQUEST_TEMPLATE.md | 18 + .github/commit-convention.md | 92 + .github/workflows/tests_and_lint.yml | 57 + .gitignore | 125 + .graphqlrc.yml | 1 + .nvmrc | 1 + .prettierrc.js | 6 + LICENSE.md | 7 + dev.yml | 29 + docs/code_of_conduct.md | 63 + docs/contributing.md | 184 + docs/contributing/_category_.json | 4 + docs/contributing/decisions.md | 22 + docs/contributing/headlesscomponents.md | 31 + docs/contributing/howtobuildheadless.md | 25 + docs/contributing/principles.md | 33 + docs/framework/_category_.json | 4 + docs/framework/deployment.md | 120 + docs/images/HydrogenLogo.png | Bin 0 -> 19869 bytes docs/images/tmate.png | Bin 0 -> 42580 bytes docs/welcome.md | 1 + jest-e2e.config.ts | 20 + jest-setup.ts | 4 + jest.config.ts | 36 + lerna.json | 10 + package.json | 93 + packages/cli/CHANGELOG.md | 57 + packages/cli/README.md | 29 + packages/cli/bin/hydrogen | 2 + packages/cli/docs/installation.md | 21 + packages/cli/docs/overview.md | 5 + packages/cli/package.json | 61 + packages/cli/scripts/copy-templates.js | 36 + packages/cli/src/commands/README.md | 5 + .../cli/src/commands/create/app/README.md | 9 + packages/cli/src/commands/create/app/app.ts | 114 + .../app/examples/create-app.example.bash | 1 + packages/cli/src/commands/create/app/index.ts | 1 + .../create/app/templates/About-server-jsx.ts | 14 + .../create/app/templates/App-server-jsx.ts | 30 + .../create/app/templates/Index-server-jsx.ts | 66 + .../create/app/templates/Link-client-jsx.ts | 11 + .../create/app/templates/entry-client-jsx.ts | 21 + .../create/app/templates/entry-server-jsx.ts | 11 + .../create/app/templates/eslintrc-js.ts | 45 + .../create/app/templates/index-css.ts | 31 + .../create/app/templates/index-html.ts | 29 + .../create/app/templates/postcss-config-js.ts | 10 + .../create/app/templates/server-js.ts | 43 + .../create/app/templates/shopify-config-js.ts | 14 + .../create/app/templates/stylelintrc-js.ts | 36 + .../commands/create/app/templates/sw-js.ts | 40 + .../app/templates/tailwind-config-js.ts | 13 + .../create/app/templates/vite-config-js.ts | 45 + .../commands/create/app/tests/create.test.ts | 18 + .../commands/create/component/component.ts | 69 + .../src/commands/create/component/index.ts | 1 + .../component/templates/component-jsx.ts | 9 + .../create/component/tests/component.test.ts | 62 + packages/cli/src/commands/init/index.ts | 1 + packages/cli/src/commands/init/init.ts | 117 + packages/cli/src/commands/version/README.md | 9 + .../version/examples/version.example.bash | 1 + packages/cli/src/commands/version/index.ts | 1 + packages/cli/src/commands/version/version.ts | 9 + packages/cli/src/config.ts | 22 + packages/cli/src/fs/fs.ts | 73 + packages/cli/src/fs/index.ts | 1 + packages/cli/src/index.ts | 43 + packages/cli/src/testing/index.ts | 1 + packages/cli/src/testing/testing.ts | 369 + packages/cli/src/types.ts | 20 + packages/cli/src/ui/index.ts | 1 + packages/cli/src/ui/ui.ts | 123 + packages/cli/src/utilities/error.ts | 3 + packages/cli/src/utilities/feature.ts | 19 + packages/cli/src/utilities/index.ts | 42 + packages/cli/src/utilities/merge.ts | 55 + packages/cli/src/workspace/index.ts | 1 + packages/cli/src/workspace/workspace.ts | 169 + packages/cli/tsconfig.json | 19 + packages/create-hydrogen-app/CHANGELOG.md | 89 + packages/create-hydrogen-app/README.md | 13 + packages/create-hydrogen-app/index.js | 208 + packages/create-hydrogen-app/package.json | 27 + .../scripts/tmp-copy-template-from-dev.js | 21 + packages/create-hydrogen-app/scripts/utils.js | 29 + .../create-hydrogen-app/template-hydrogen | 1 + packages/dev/.eslintrc.js | 41 + packages/dev/.stylelintrc.js | 17 + packages/dev/.vscode/extensions.json | 3 + packages/dev/Dockerfile | 15 + packages/dev/README.md | 31 + packages/dev/_gitignore | 80 + packages/dev/index.html | 20 + packages/dev/package.json | 44 + packages/dev/postcss.config.js | 6 + packages/dev/server.js | 40 + packages/dev/shopify.config.js | 6 + packages/dev/src/App.server.jsx | 37 + packages/dev/src/components/Button.client.jsx | 65 + packages/dev/src/components/Cart.client.jsx | 242 + packages/dev/src/components/CartIcon.jsx | 29 + .../components/CartIconWithItems.client.jsx | 24 + .../src/components/CartProvider.client.jsx | 32 + .../dev/src/components/CartToggle.client.jsx | 26 + .../src/components/CartUIProvider.client.jsx | 42 + .../src/components/CollectionHero.client.jsx | 50 + .../components/CurrencySelector.client.jsx | 75 + .../dev/src/components/DefaultSeo.server.jsx | 25 + .../components/FeaturedCollection.server.jsx | 31 + packages/dev/src/components/Footer.server.jsx | 104 + .../dev/src/components/Gallery.client.jsx | 47 + packages/dev/src/components/Header.client.jsx | 40 + packages/dev/src/components/Layout.server.jsx | 86 + .../components/LoadMoreProducts.client.jsx | 53 + .../dev/src/components/LoadingFallback.jsx | 23 + .../dev/src/components/MediaPlaceholder.jsx | 21 + .../MobileCurrencySelector.client.jsx | 118 + .../components/MobileNavigation.client.jsx | 83 + .../dev/src/components/Navigation.client.jsx | 20 + .../dev/src/components/NotFound.server.jsx | 98 + packages/dev/src/components/OpenIcon.jsx | 30 + .../dev/src/components/ProductCard.server.jsx | 54 + .../components/ProductCardAdvanced.client.jsx | 74 + .../src/components/ProductDetails.client.jsx | 240 + .../src/components/ProductOptions.client.jsx | 46 + packages/dev/src/components/ProductReview.jsx | 17 + .../ProductVariantImageSelector.client.jsx | 70 + packages/dev/src/components/Seo.client.jsx | 73 + packages/dev/src/components/StyledLink.jsx | 10 + packages/dev/src/entry-client.jsx | 12 + packages/dev/src/entry-server.jsx | 7 + packages/dev/src/favicon.svg | 15 + packages/dev/src/index.css | 64 + packages/dev/src/pages/Index.server.jsx | 371 + .../dev/src/pages/blogs/[handle].server.jsx | 76 + .../blogs/[handle]/[articleHandle].server.jsx | 49 + .../src/pages/collections/[handle].server.jsx | 97 + packages/dev/src/pages/home.server.jsx | 99 + .../dev/src/pages/pages/[handle].server.jsx | 28 + .../src/pages/products/[handle].server.jsx | 62 + packages/dev/src/pages/search.server.jsx | 107 + packages/dev/src/pages/sitemap.xml.server.jsx | 64 + packages/dev/tailwind.config.js | 31 + packages/dev/vite.config.js | 9 + packages/dev/worker.js | 23 + packages/eslint-plugin/CHANGELOG.md | 44 + packages/eslint-plugin/README.md | 48 + packages/eslint-plugin/jest.config.js | 5 + packages/eslint-plugin/package.json | 46 + .../src/config/recommended-typescript.ts | 12 + .../eslint-plugin/src/config/recommended.ts | 12 + .../src/config/rules/hydrogen.ts | 4 + .../eslint-plugin/src/config/rules/index.ts | 5 + .../src/config/rules/overrides.ts | 45 + packages/eslint-plugin/src/index.ts | 9 + packages/eslint-plugin/src/rules/index.ts | 7 + .../no-state-in-server-components/README.md | 38 + .../no-state-in-server-components/index.ts | 1 + .../no-state-in-server-components.ts | 40 + .../no-state-in-server-components.test.ts | 124 + .../rules/prefer-image-component/README.md | 29 + .../src/rules/prefer-image-component/index.ts | 1 + .../prefer-image-component.ts | 96 + .../tests/prefer-image-component.test.ts | 278 + packages/eslint-plugin/src/utilities/index.ts | 18 + packages/eslint-plugin/src/utilities/react.ts | 24 + packages/eslint-plugin/tsconfig.json | 19 + packages/generate-docs/README.md | 3 + packages/generate-docs/bin/generate-docs | 2 + packages/generate-docs/package.json | 49 + packages/generate-docs/src/DocsGen.ts | 256 + packages/generate-docs/src/FileResult.ts | 132 + packages/generate-docs/src/index.ts | 1 + packages/generate-docs/src/types.ts | 196 + .../src/utilities/dependency-graph.ts | 955 + .../generate-docs/src/utilities/examples.ts | 32 + .../generate-docs/src/utilities/markdown.ts | 30 + .../generate-docs/src/utilities/shared.ts | 337 + .../src/utilities/tests/markdown.test.ts | 25 + packages/generate-docs/tsconfig.json | 19 + packages/hydrogen-plugin-sanity/CHANGELOG.md | 44 + packages/hydrogen-plugin-sanity/README.md | 33 + packages/hydrogen-plugin-sanity/package.json | 28 + packages/hydrogen-plugin-sanity/src/index.ts | 65 + packages/hydrogen-plugin-sanity/tsconfig.json | 16 + packages/hydrogen/CHANGELOG.md | 95 + packages/hydrogen/README.md | 29 + packages/hydrogen/client.d.ts | 1 + packages/hydrogen/client.js | 1 + packages/hydrogen/codegen-hydrogen-plugin.js | 123 + packages/hydrogen/codegen.yml | 30 + packages/hydrogen/entry-client.d.ts | 1 + packages/hydrogen/entry-client.js | 1 + packages/hydrogen/entry-server.d.ts | 1 + packages/hydrogen/entry-server.js | 1 + packages/hydrogen/graphql.schema.json | 30510 ++++++++++++++++ packages/hydrogen/marker.js | 1 + packages/hydrogen/middleware.d.ts | 1 + packages/hydrogen/middleware.js | 1 + packages/hydrogen/package.json | 98 + packages/hydrogen/plugin.d.ts | 1 + packages/hydrogen/plugin.js | 1 + packages/hydrogen/postcss.config.js | 7 + packages/hydrogen/src/client.ts | 9 + .../AddToCartButton.client.tsx | 105 + .../src/components/AddToCartButton/README.md | 53 + .../AddToCartButton/docs/component-type.md | 3 + .../AddToCartButton/docs/used-by.md | 3 + .../examples/add-to-cart-button.example.tsx | 26 + .../src/components/AddToCartButton/index.ts | 1 + .../AddToCartButton/tests/AddToCart.test.tsx | 147 + .../BuyNowButton/BuyNowButton.client.tsx | 70 + .../src/components/BuyNowButton/README.md | 34 + .../BuyNowButton/docs/component-type.md | 3 + .../components/BuyNowButton/docs/related.md | 3 + .../examples/buy-now-button.example.tsx | 5 + .../src/components/BuyNowButton/index.ts | 5 + .../BuyNowButton/tests/BuyNowButton.test.tsx | 139 + .../CartCheckoutButton.client.tsx | 37 + .../components/CartCheckoutButton/README.md | 46 + .../CartCheckoutButton/docs/component-type.md | 3 + .../CartCheckoutButton/docs/related.md | 7 + .../examples/cart-checkout-button.example.tsx | 9 + .../components/CartCheckoutButton/index.tsx | 1 + .../tests/CartCheckoutButton.test.tsx | 25 + .../CartEstimatedCost.client.tsx | 44 + .../components/CartEstimatedCost/README.md | 39 + .../CartEstimatedCost/docs/component-type.md | 4 + .../CartEstimatedCost/docs/related.md | 7 + .../examples/cart-estimated-cost.example.tsx | 9 + .../src/components/CartEstimatedCost/index.ts | 1 + .../tests/CartEstimatedCost.test.tsx | 82 + .../CartLineAttributes.client.tsx | 41 + .../components/CartLineAttributes/README.md | 49 + .../CartLineAttributes/docs/1-render-props.md | 8 + .../docs/2-component-type.md | 3 + .../CartLineAttributes/docs/3-alias.md | 3 + .../CartLineAttributes/docs/4-related.md | 3 + .../examples/cart-line-attributes.example.tsx | 19 + .../components/CartLineAttributes/index.ts | 1 + .../tests/CartLineAttributes.test.tsx | 23 + .../CartLineImage/CartLineImage.client.tsx | 25 + .../src/components/CartLineImage/README.md | 35 + .../components/CartLineImage/docs/alias.md | 3 + .../CartLineImage/docs/component-type.md | 3 + .../components/CartLineImage/docs/related.md | 4 + .../examples/cart-line-image.example.tsx | 13 + .../src/components/CartLineImage/index.ts | 1 + .../tests/CartLineImage.test.tsx | 65 + .../CartLinePrice/CartLinePrice.client.tsx | 41 + .../src/components/CartLinePrice/README.md | 41 + .../components/CartLinePrice/docs/alias.md | 3 + .../CartLinePrice/docs/component-type.md | 3 + .../components/CartLinePrice/docs/related.md | 4 + .../examples/cart-line-price.example.tsx | 13 + .../src/components/CartLinePrice/index.ts | 1 + .../tests/CartLinePrice.test.tsx | 141 + .../CartLineProductTitle.client.tsx | 22 + .../components/CartLineProductTitle/README.md | 38 + .../CartLineProductTitle/docs/alias.md | 3 + .../docs/component-type.md | 3 + .../CartLineProductTitle/docs/related.md | 3 + .../cart-line-product-title.example.tsx | 13 + .../components/CartLineProductTitle/index.ts | 1 + .../tests/CartLineProductTitle.test.tsx | 29 + .../CartLineProvider.client.tsx | 20 + .../src/components/CartLineProvider/README.md | 43 + .../components/CartLineProvider/context.ts | 4 + .../components/CartLineProvider/docs/alias.md | 3 + .../CartLineProvider/docs/component-type.md | 3 + .../CartLineProvider/docs/related.md | 13 + .../examples/cart-line-provider.example.tsx | 13 + .../src/components/CartLineProvider/index.ts | 2 + .../tests/CartLineProvider.test.tsx | 21 + .../CartLineProvider/tests/fixtures.ts | 22 + .../CartLineQuantity.client.tsx | 16 + .../src/components/CartLineQuantity/README.md | 34 + .../components/CartLineQuantity/docs/alias.md | 3 + .../CartLineQuantity/docs/component-type.md | 3 + .../CartLineQuantity/docs/related.md | 3 + .../examples/cart-line-quantity.example.tsx | 13 + .../src/components/CartLineQuantity/index.ts | 1 + .../tests/CartLineQuantity.test.tsx | 29 + .../CartLineQuantityAdjustButton.tsx | 47 + .../CartLineQuantityAdjustButton/README.md | 46 + .../docs/alias.md | 3 + .../docs/component-type.md | 3 + .../docs/related.md | 3 + ...rt-line-quantity-adjust-button.example.tsx | 15 + .../CartLineQuantityAdjustButton/index.ts | 1 + .../CartLineQuantityAdjustButton.test.tsx | 157 + .../CartLineSelectedOptions.client.tsx | 37 + .../CartLineSelectedOptions/README.md | 53 + .../docs/1-render-props.md | 8 + .../docs/2-component-type.md | 3 + .../CartLineSelectedOptions/docs/3-alias.md | 3 + .../CartLineSelectedOptions/docs/4-related.md | 3 + .../cart-line-selected-options.example.tsx | 19 + .../CartLineSelectedOptions/index.ts | 1 + .../tests/CartLineSelectedOptions.test.tsx | 43 + .../src/components/CartLines/CartLines.tsx | 43 + .../src/components/CartLines/README.md | 64 + .../CartLines/docs/component-type.md | 3 + .../src/components/CartLines/docs/related.md | 14 + .../CartLines/examples/cart-lines.example.tsx | 21 + .../src/components/CartLines/index.ts | 1 + .../CartLines/tests/CartLines.test.tsx | 82 + .../CartProvider/CartProvider.client.tsx | 657 + .../src/components/CartProvider/README.md | 33 + .../src/components/CartProvider/constants.ts | 2 + .../src/components/CartProvider/context.tsx | 4 + .../CartProvider/docs/component-type.md | 3 + .../components/CartProvider/docs/related.md | 17 + .../examples/cart-provider.example.tsx | 5 + .../CartAttributesUpdateMutation.graphql | 9 + .../graphql/CartAttributesUpdateMutation.ts | 16 + .../CartBuyerIdentityUpdateMutation.graphql | 13 + .../CartBuyerIdentityUpdateMutation.ts | 16 + .../graphql/CartCreateMutation.graphql | 9 + .../graphql/CartCreateMutation.ts | 15 + .../CartDiscountCodesUpdateMutation.graphql | 9 + .../CartDiscountCodesUpdateMutation.ts | 18 + .../CartProvider/graphql/CartFragment.graphql | 77 + .../CartProvider/graphql/CartFragment.ts | 75 + .../graphql/CartLineAddMutation.graphql | 9 + .../graphql/CartLineAddMutation.ts | 16 + .../graphql/CartLineRemoveMutation.graphql | 9 + .../graphql/CartLineRemoveMutation.ts | 16 + .../graphql/CartLineUpdateMutation.graphql | 9 + .../graphql/CartLineUpdateMutation.ts | 16 + .../graphql/CartNoteUpdateMutation.graphql | 9 + .../graphql/CartNoteUpdateMutation.ts | 16 + .../CartProvider/graphql/CartQuery.graphql | 7 + .../CartProvider/graphql/CartQuery.ts | 11 + .../src/components/CartProvider/hooks.tsx | 89 + .../src/components/CartProvider/index.ts | 14 + .../components/CartProvider/tests/fixtures.ts | 22 + .../src/components/CartProvider/types.ts | 63 + .../CartShopPayButton.client.tsx | 20 + .../components/CartShopPayButton/README.md | 26 + .../CartShopPayButton/docs/component-type.md | 3 + .../CartShopPayButton/docs/related.md | 3 + .../examples/cart-shop-pay-button.example.tsx | 9 + .../src/components/CartShopPayButton/index.ts | 1 + .../tests/CartShopPayButton.test.tsx | 24 + .../ExternalVideo/ExternalVideo.tsx | 54 + .../ExternalVideoFragment.graphql | 5 + .../ExternalVideo/ExternalVideoFragment.ts | 5 + .../src/components/ExternalVideo/README.md | 73 + .../ExternalVideo/docs/component-type.md | 3 + .../components/ExternalVideo/docs/fragment.md | 11 + .../components/ExternalVideo/docs/related.md | 3 + .../examples/external-video.example.tsx | 37 + .../src/components/ExternalVideo/index.ts | 5 + .../tests/ExternalVideo.test.tsx | 68 + .../hydrogen/src/components/Image/Image.tsx | 136 + .../components/Image/ImageFragment.graphql | 7 + .../src/components/Image/ImageFragment.ts | 6 + .../hydrogen/src/components/Image/README.md | 98 + .../components/Image/docs/component-type.md | 3 + .../src/components/Image/docs/fragment.md | 13 + .../Image/docs/image-size-options.md | 11 + .../src/components/Image/docs/related.md | 3 + ...al-images-with-a-custom-loader.example.tsx | 17 + .../examples/external-images.example.tsx | 6 + .../storefront-api-images.example.tsx | 26 + .../hydrogen/src/components/Image/index.ts | 1 + .../src/components/Image/tests/Image.test.tsx | 298 + .../LocalizationClientProvider.client.tsx | 43 + .../LocalizationContext.client.tsx | 24 + .../LocalizationProvider.server.tsx | 29 + .../LocalizationQuery.graphql | 18 + .../LocalizationProvider/LocalizationQuery.ts | 17 + .../components/LocalizationProvider/README.md | 32 + .../docs/component-type.md | 3 + .../LocalizationProvider/docs/related.md | 4 + .../localization-provider.example.tsx | 5 + .../components/LocalizationProvider/index.ts | 2 + .../src/components/MediaFile/MediaFile.tsx | 69 + .../MediaFile/MediaFileFragment.graphql | 25 + .../components/MediaFile/MediaFileFragment.ts | 33 + .../src/components/MediaFile/README.md | 95 + .../MediaFile/docs/component-type.md | 3 + .../src/components/MediaFile/docs/fragment.md | 26 + .../src/components/MediaFile/docs/related.md | 6 + .../MediaFile/examples/media-file.example.tsx | 39 + .../src/components/MediaFile/index.ts | 1 + .../components/Metafield/Metafield.client.tsx | 117 + .../Metafield/MetafieldFragment.graphql | 10 + .../components/Metafield/MetafieldFragment.ts | 13 + .../src/components/Metafield/README.md | 100 + .../components/StarRating/StarRating.tsx | 72 + .../Metafield/components/StarRating/index.ts | 1 + .../StarRating/tests/StarRating.test.tsx | 42 + .../components/Metafield/components/index.ts | 1 + .../Metafield/docs/1-default-output.md | 24 + .../Metafield/docs/2-render-props.md | 3 + .../Metafield/docs/3-component-type.md | 3 + .../components/Metafield/docs/4-fragment.md | 16 + .../components/Metafield/docs/5-related.md | 3 + .../Metafield/examples/metafield.example.tsx | 23 + .../src/components/Metafield/index.ts | 3 + .../Metafield/tests/Metafield.test.tsx | 1261 + .../src/components/Metafield/types.ts | 5 + .../src/components/Model3D/Model3D.client.tsx | 367 + .../Model3D/Model3DFragment.graphql | 11 + .../src/components/Model3D/Model3DFragment.ts | 13 + .../hydrogen/src/components/Model3D/README.md | 131 + .../components/Model3D/docs/component-type.md | 3 + .../src/components/Model3D/docs/fragment.md | 17 + .../src/components/Model3D/docs/related.md | 3 + .../Model3D/examples/model3d.example.tsx | 37 + .../hydrogen/src/components/Model3D/index.ts | 1 + .../src/components/Money/Money.client.tsx | 39 + .../components/Money/MoneyFragment.graphql | 4 + .../src/components/Money/MoneyFragment.ts | 6 + .../hydrogen/src/components/Money/README.md | 78 + .../components/Money/docs/component-type.md | 3 + .../src/components/Money/docs/fragment.md | 10 + .../src/components/Money/docs/related.md | 3 + .../Money/examples/money.example.tsx | 40 + .../hydrogen/src/components/Money/index.tsx | 1 + .../src/components/Money/tests/Money.test.tsx | 46 + .../ProductDescription.client.tsx | 23 + .../components/ProductDescription/README.md | 32 + .../ProductDescription/docs/alias.md | 3 + .../ProductDescription/docs/component-type.md | 3 + .../ProductDescription/docs/related.md | 4 + .../examples/product-description.example.tsx | 9 + .../components/ProductDescription/index.ts | 1 + .../tests/ProductDescription.test.tsx | 21 + .../ProductMetafield.client.tsx | 46 + .../src/components/ProductMetafield/README.md | 49 + .../ProductMetafield/docs/component-type.md | 3 + .../ProductMetafield/docs/related.md | 3 + .../examples/product-metafield.example.tsx | 21 + .../src/components/ProductMetafield/index.ts | 2 + .../ProductPrice/ProductPrice.client.tsx | 54 + .../src/components/ProductPrice/README.md | 40 + .../src/components/ProductPrice/docs/alias.md | 3 + .../ProductPrice/docs/component-type.md | 3 + .../components/ProductPrice/docs/related.md | 4 + .../examples/product-price.example.tsx | 9 + .../src/components/ProductPrice/index.ts | 1 + .../ProductPrice/tests/ProductPrice.test.tsx | 88 + .../ProductProvider.client.tsx | 95 + .../ProductProviderFragment.graphql | 56 + .../ProductProviderFragment.ts | 63 + .../src/components/ProductProvider/README.md | 183 + .../src/components/ProductProvider/context.ts | 29 + .../components/ProductProvider/docs/alias.md | 3 + .../ProductProvider/docs/component-type.md | 3 + .../ProductProvider/docs/fragment.md | 130 + .../ProductProvider/docs/related.md | 12 + .../examples/product-provider.example.tsx | 23 + .../src/components/ProductProvider/index.ts | 5 + .../tests/ProductProvider.test.tsx | 55 + .../src/components/ProductProvider/types.ts | 22 + .../ProductTitle/ProductTitle.client.tsx | 29 + .../src/components/ProductTitle/README.md | 31 + .../src/components/ProductTitle/docs/alias.md | 3 + .../ProductTitle/docs/component-type.md | 3 + .../components/ProductTitle/docs/related.md | 3 + .../examples/product-title.example.tsx | 9 + .../src/components/ProductTitle/index.ts | 1 + .../ProductTitle/tests/ProductTitle.test.tsx | 33 + .../hydrogen/src/components/RawHtml/README.md | 33 + .../src/components/RawHtml/RawHtml.tsx | 46 + .../components/RawHtml/docs/component-type.md | 3 + .../src/components/RawHtml/docs/used-by.md | 3 + .../RawHtml/examples/raw-html.example.tsx | 5 + .../hydrogen/src/components/RawHtml/index.ts | 1 + .../components/RawHtml/tests/RawHtml.test.tsx | 32 + .../SelectedVariantAddToCartButton/README.md | 73 + .../SelectedVariantAddToCartButton.client.tsx | 40 + .../docs/alias.md | 3 + .../docs/component-type.md | 3 + .../docs/related.md | 9 + ...ted-variant-add-to-cart-button.example.tsx | 39 + .../SelectedVariantAddToCartButton/index.ts | 1 + .../SelectedVariantAddToCartButton.test.tsx | 90 + .../SelectedVariantBuyNowButton/README.md | 36 + .../SelectedVariantBuyNowButton.tsx | 40 + .../SelectedVariantBuyNowButton/docs/alias.md | 3 + .../docs/component-type.md | 3 + .../docs/related.md | 4 + ...elected-variant-buy-now-button.example.tsx | 9 + .../SelectedVariantBuyNowButton/index.ts | 1 + .../SelectedVariantBuyNowButton.test.tsx | 83 + .../components/SelectedVariantImage/README.md | 35 + .../SelectedVariantImage.client.tsx | 29 + .../SelectedVariantImage/docs/alias.md | 3 + .../docs/component-type.md | 3 + .../SelectedVariantImage/docs/related.md | 8 + .../selected-variant-image.example.tsx | 9 + .../components/SelectedVariantImage/index.ts | 1 + .../tests/SelectedVariantImage.test.tsx | 51 + .../SelectedVariantMetafield/README.md | 55 + .../SelectedVariantMetafield.client.tsx | 40 + .../docs/component-type.md | 3 + .../SelectedVariantMetafield/docs/related.md | 3 + .../selected-variant-metafield.example.tsx | 29 + .../SelectedVariantMetafield/index.ts | 1 + .../components/SelectedVariantPrice/README.md | 41 + .../SelectedVariantPrice.client.tsx | 41 + .../SelectedVariantPrice/docs/alias.md | 3 + .../docs/component-type.md | 3 + .../SelectedVariantPrice/docs/related.md | 8 + .../selected-variant-price.example.tsx | 9 + .../components/SelectedVariantPrice/index.ts | 1 + .../tests/SelectedVariantPrice.test.tsx | 68 + .../SelectedVariantShopPayButton/README.md | 31 + .../SelectedVariantShopPayButton.client.tsx | 22 + .../docs/alias.md | 3 + .../docs/component-type.md | 3 + .../docs/related.md | 3 + ...lected-variant-shop-pay-button.example.tsx | 10 + .../SelectedVariantShopPayButton/index.ts | 1 + .../SelectedVariantShopPayButton.test.tsx | 37 + .../SelectedVariantUnitPrice/README.md | 35 + .../SelectedVariantUnitPrice.client.tsx | 27 + .../SelectedVariantUnitPrice/docs/alias.md | 3 + .../docs/component-type.md | 3 + .../SelectedVariantUnitPrice/docs/related.md | 8 + .../selected-variant-unit-price.example.tsx | 9 + .../SelectedVariantUnitPrice/index.ts | 1 + .../tests/SelectedVariantUnitPrice.test.tsx | 23 + .../src/components/ShopPayButton/README.md | 29 + .../ShopPayButton/ShopPayButton.client.tsx | 71 + .../ShopPayButton/docs/component-type.md | 3 + .../components/ShopPayButton/docs/used-by.md | 4 + .../examples/shop-pay-button.example.tsx | 5 + .../src/components/ShopPayButton/index.ts | 1 + .../src/components/UnitPrice/README.md | 106 + .../components/UnitPrice/UnitPrice.client.tsx | 53 + .../UnitPrice/UnitPriceFragment.graphql | 14 + .../components/UnitPrice/UnitPriceFragment.ts | 16 + .../UnitPrice/docs/component-type.md | 3 + .../src/components/UnitPrice/docs/fragment.md | 18 + .../src/components/UnitPrice/docs/related.md | 3 + .../UnitPrice/examples/unit-price.example.tsx | 49 + .../src/components/UnitPrice/index.ts | 1 + .../UnitPrice/tests/UnitPrice.test.tsx | 34 + .../hydrogen/src/components/Video/README.md | 76 + .../hydrogen/src/components/Video/Video.tsx | 60 + .../components/Video/VideoFragment.graphql | 10 + .../src/components/Video/VideoFragment.ts | 13 + .../components/Video/docs/component-type.md | 3 + .../src/components/Video/docs/fragment.md | 16 + .../src/components/Video/docs/related.md | 3 + .../Video/examples/video.example.tsx | 36 + .../hydrogen/src/components/Video/index.ts | 2 + .../src/components/Video/tests/Video.test.tsx | 59 + packages/hydrogen/src/components/index.ts | 128 + packages/hydrogen/src/components/types.ts | 96 + packages/hydrogen/src/docs/components.md | 266 + packages/hydrogen/src/docs/hooks.md | 179 + packages/hydrogen/src/docs/hydrogen-sdk.md | 351 + packages/hydrogen/src/docs/utilities.md | 29 + packages/hydrogen/src/entry-client.tsx | 66 + packages/hydrogen/src/entry-server.tsx | 414 + .../src/foundation/Router/DefaultRoutes.tsx | 92 + .../Router/ServerStateRouter.client.tsx | 32 + .../Router/__tests__/DefaultRoutes.spec.tsx | 243 + .../hydrogen/src/foundation/Router/index.ts | 1 + .../ServerStateProvider.client.tsx | 102 + .../foundation/ServerStateProvider/index.ts | 5 + .../src/foundation/ShopifyProvider/README.md | 36 + .../ShopifyProvider/ShopifyContext.tsx | 4 + .../ShopifyProvider/ShopifyProvider.tsx | 30 + .../ShopifyServerProvider.server.tsx | 23 + .../ShopifyProvider/docs/component-type.md | 3 + .../examples/shopify-provider.example.tsx | 10 + .../src/foundation/ShopifyProvider/index.ts | 1 + .../tests/ShopifyProvider.test.tsx | 27 + .../ShopifyProvider/tests/fixtures.ts | 7 + .../src/foundation/ShopifyProvider/types.ts | 17 + packages/hydrogen/src/foundation/index.tsx | 5 + .../src/foundation/useServerState/README.md | 28 + .../examples/use-server-state.example.tsx | 10 + .../src/foundation/useServerState/index.ts | 1 + .../useServerState/use-server-state.tsx | 20 + .../hydrogen/src/foundation/useShop/README.md | 30 + .../foundation/useShop/docs/1-return-value.md | 10 + .../src/foundation/useShop/docs/related.md | 3 + .../useShop/examples/use-shop.example.tsx | 7 + .../hydrogen/src/foundation/useShop/index.ts | 1 + .../src/foundation/useShop/use-shop.tsx | 16 + .../framework/ClientMarker/ClientMarker.tsx | 57 + .../src/framework/ClientMarker/index.tsx | 1 + .../src/framework/Hydration/Cache.client.ts | 165 + .../Hydration/ClientComponents.server.ts | 25 + .../hydrogen/src/framework/Hydration/Html.tsx | 18 + .../Hydration/HydrationContext.server.ts | 3 + .../ServerComponentRequest.server.ts | 52 + .../ServerComponentResponse.server.ts | 60 + .../Hydration/__tests__/Cache.spec.tsx | 91 + .../__tests__/ServerComponentRequest.spec.ts | 35 + .../Hydration/__tests__/fixtures/Counter.js | 10 + .../Hydration/__tests__/react-utils.spec.tsx | 136 + .../Hydration/__tests__/wire.spec.ts | 158 + .../src/framework/Hydration/react-utils.ts | 63 + .../src/framework/Hydration/wire.server.ts | 98 + .../src/framework/Hydration/writer.server.ts | 33 + .../src/framework/__tests__/cache.test.ts | 30 + .../__tests__/tag-client-components.spec.ts | 90 + .../__tests__/wrap-client-components.spec.ts | 95 + packages/hydrogen/src/framework/cache.ts | 138 + .../hydrogen/src/framework/cache/in-memory.ts | 63 + packages/hydrogen/src/framework/docs/cache.md | 196 + .../src/framework/docs/css-support.md | 50 + packages/hydrogen/src/framework/docs/index.md | 80 + packages/hydrogen/src/framework/docs/pages.md | 452 + .../framework/docs/react-server-components.md | 218 + .../hydrogen/src/framework/docs/routes.md | 78 + .../hydrogen/src/framework/docs/secrets.md | 21 + packages/hydrogen/src/framework/docs/seo.md | 79 + .../src/framework/docs/server-state.md | 87 + .../src/framework/docs/static-assets.md | 27 + .../docs/third-party-dependencies.md | 59 + packages/hydrogen/src/framework/graphiql.ts | 44 + packages/hydrogen/src/framework/middleware.ts | 177 + packages/hydrogen/src/framework/plugin.ts | 20 + .../plugins/vite-plugin-hydrogen-config.ts | 64 + .../vite-plugin-hydrogen-middleware.ts | 43 + ...ite-plugin-react-server-components-shim.ts | 176 + packages/hydrogen/src/framework/runtime.ts | 46 + .../src/framework/server-components.ts | 106 + .../hydrogen/src/graphql/graphql-constants.ts | 3310 ++ packages/hydrogen/src/graphql/schema.json | 29477 +++++++++++++++ packages/hydrogen/src/graphql/types/types.ts | 6192 ++++ packages/hydrogen/src/handle-event.ts | 188 + packages/hydrogen/src/handle-worker-event.ts | 24 + packages/hydrogen/src/hooks/index.ts | 7 + .../src/hooks/useAvailableCountries/README.md | 39 + .../docs/1-return-value.md | 3 + .../useAvailableCountries/docs/2-related.md | 7 + .../use-available-countries.example.tsx | 14 + .../src/hooks/useAvailableCountries/index.ts | 1 + .../useAvailableCountries.tsx | 25 + packages/hydrogen/src/hooks/useCart/README.md | 69 + .../src/hooks/useCart/docs/1-return-value.md | 24 + .../src/hooks/useCart/docs/2-related.md | 12 + .../useCart/examples/use-cart.example.tsx | 21 + packages/hydrogen/src/hooks/useCart/index.ts | 1 + .../hydrogen/src/hooks/useCart/useCart.tsx | 15 + .../useCartAttributesUpdateCallback/README.md | 63 + .../docs/1-return-value.md | 3 + .../docs/2-related.md | 7 + ...art-attributes-update-callback.example.tsx | 41 + .../useCartAttributesUpdateCallback/index.ts | 1 + .../useCartAttributesUpdateCallback.tsx | 10 + .../README.md | 52 + .../docs/1-return-value.md | 3 + .../docs/2-related.md | 7 + ...buyer-identity-update-callback.example.tsx | 32 + .../index.ts | 1 + .../useCartBuyerIdentityUpdateCallback.tsx | 10 + .../src/hooks/useCartCheckoutUrl/README.md | 27 + .../useCartCheckoutUrl/docs/1-return-value.md | 3 + .../useCartCheckoutUrl/docs/2-related.md | 7 + .../use-cart-checkout-url.example.tsx | 7 + .../src/hooks/useCartCheckoutUrl/index.ts | 1 + .../useCartCheckoutUrl/useCartCheckoutUrl.tsx | 10 + .../src/hooks/useCartCreateCallback/README.md | 43 + .../docs/1-return-value.md | 3 + .../useCartCreateCallback/docs/2-related.md | 7 + .../use-cart-create-callback.example.tsx | 21 + .../src/hooks/useCartCreateCallback/index.ts | 1 + .../useCartCreateCallback.tsx | 10 + .../README.md | 45 + .../docs/1-return-value.md | 3 + .../docs/2-related.md | 7 + ...discount-codes-update-callback.example.tsx | 25 + .../index.ts | 1 + .../useCartDiscountCodesUpdateCallback.tsx | 10 + .../hydrogen/src/hooks/useCartLine/README.md | 48 + .../hooks/useCartLine/docs/1-return-value.md | 10 + .../src/hooks/useCartLine/docs/2-related.md | 3 + .../examples/use-cart-line.example.tsx | 25 + .../hydrogen/src/hooks/useCartLine/index.ts | 1 + .../src/hooks/useCartLine/useCartLine.tsx | 15 + .../hooks/useCartLinesAddCallback/README.md | 41 + .../docs/1-return-value.md | 3 + .../useCartLinesAddCallback/docs/2-related.md | 7 + .../use-cart-lines-add-callback.example.tsx | 18 + .../hooks/useCartLinesAddCallback/index.ts | 1 + .../useCartLinesAddCallback.tsx | 11 + .../useCartLinesRemoveCallback/README.md | 35 + .../docs/1-return-value.md | 3 + .../docs/2-related.md | 7 + ...use-cart-lines-remove-callback.example.tsx | 15 + .../hooks/useCartLinesRemoveCallback/index.ts | 1 + .../useCartLinesRemoveCallback.tsx | 10 + .../hooks/useCartLinesTotalQuantity/README.md | 27 + .../docs/1-return-value.md | 3 + .../docs/2-related.md | 7 + .../use-cart-lines-total-quantity.example.tsx | 7 + .../hooks/useCartLinesTotalQuantity/index.ts | 1 + .../useCartLinesTotalQuantity.tsx | 18 + .../useCartLinesUpdateCallback/README.md | 40 + .../docs/1-return-value.md | 3 + .../docs/2-related.md | 7 + ...use-cart-lines-update-callback.example.tsx | 18 + .../hooks/useCartLinesUpdateCallback/index.ts | 1 + .../useCartLinesUpdateCallback.tsx | 10 + .../hooks/useCartNoteUpdateCallback/README.md | 45 + .../docs/1-return-value.md | 3 + .../docs/2-related.md | 7 + .../use-cart-note-update-callback.example.tsx | 25 + .../hooks/useCartNoteUpdateCallback/index.ts | 1 + .../useCartNoteUpdateCallback.tsx | 10 + .../hydrogen/src/hooks/useCountry/README.md | 56 + .../hooks/useCountry/docs/1-return-value.md | 8 + .../src/hooks/useCountry/docs/2-related.md | 7 + .../examples/use-country.example.tsx | 28 + .../hydrogen/src/hooks/useCountry/index.ts | 1 + .../src/hooks/useCountry/useCountry.tsx | 25 + .../src/hooks/useMeasurement/hooks.ts | 27 + .../src/hooks/useMeasurement/index.ts | 1 + .../hydrogen/src/hooks/useMoney/README.md | 42 + .../src/hooks/useMoney/docs/1-return-type.md | 14 + .../src/hooks/useMoney/docs/related.md | 3 + .../useMoney/examples/use-money.example.tsx | 13 + .../hydrogen/src/hooks/useMoney/hooks.tsx | 120 + packages/hydrogen/src/hooks/useMoney/index.ts | 1 + .../src/hooks/useMoney/tests/hooks.test.tsx | 32 + .../src/hooks/useParsedMetafields/README.md | 34 + .../useParsedMetafields/docs/1-return-type.md | 3 + .../useParsedMetafields/docs/2-related.md | 3 + .../use-parsed-metafields.example.tsx | 13 + .../src/hooks/useParsedMetafields/index.ts | 1 + .../useParsedMetafields/tests/hooks.test.tsx | 58 + .../useParsedMetafields.ts | 24 + .../hydrogen/src/hooks/useProduct/README.md | 42 + .../hooks/useProduct/docs/1-return-value.md | 16 + .../src/hooks/useProduct/docs/2-related.md | 3 + .../examples/use-product.example.tsx | 12 + .../hydrogen/src/hooks/useProduct/index.ts | 1 + .../src/hooks/useProduct/useProduct.ts | 12 + .../src/hooks/useProductOptions/README.md | 223 + .../SellingPlanFragment.graphql | 30 + .../useProductOptions/SellingPlanFragment.ts | 34 + .../SellingPlanGroupsFragment.graphql | 17 + .../SellingPlanGroupsFragment.ts | 20 + .../useProductOptions/VariantFragment.graphql | 54 + .../useProductOptions/VariantFragment.ts | 55 + .../useProductOptions/__tests__/fixtures.ts | 248 + .../__tests__/useProductOptions.spec.tsx | 287 + .../docs/1-considerations.md | 4 + .../useProductOptions/docs/2-arguments.md | 9 + .../useProductOptions/docs/3-return-value.md | 17 + .../useProductOptions/docs/4-fragment.md | 66 + .../hooks/useProductOptions/docs/5-related.md | 3 + ...t-options-iterate-variant-list.example.tsx | 32 + ...duct-options-use-selling-plans.example.tsx | 41 + .../examples/use-product-options.example.tsx | 31 + .../src/hooks/useProductOptions/helpers.ts | 54 + .../src/hooks/useProductOptions/index.ts | 2 + .../src/hooks/useProductOptions/types.ts | 100 + .../useProductOptions/useProductOptions.ts | 179 + .../src/hooks/useQuery/QueryProvider.tsx | 26 + .../src/hooks/useQuery/docs/1-arguments.md | 15 + .../src/hooks/useQuery/docs/related.md | 3 + .../useQuery/examples/use-query.example.tsx | 15 + packages/hydrogen/src/hooks/useQuery/hooks.ts | 95 + packages/hydrogen/src/hooks/useQuery/index.ts | 2 + .../src/hooks/useServerState/README.md | 30 + packages/hydrogen/src/hooks/useShop/README.md | 35 + .../hydrogen/src/hooks/useShopQuery/README.md | 66 + .../hooks/useShopQuery/docs/1-arguments.md | 9 + .../hooks/useShopQuery/docs/2-return-value.md | 7 + .../src/hooks/useShopQuery/docs/related.md | 7 + .../examples/use-shop-query.example.tsx | 37 + .../hydrogen/src/hooks/useShopQuery/hooks.ts | 67 + .../hydrogen/src/hooks/useShopQuery/index.ts | 1 + packages/hydrogen/src/index.ts | 23 + packages/hydrogen/src/types.ts | 105 + .../hydrogen/src/utilities/connections.ts | 5 + packages/hydrogen/src/utilities/fetch.ts | 77 + .../src/utilities/flattenConnection/README.md | 3 + packages/hydrogen/src/utilities/image_size.ts | 126 + packages/hydrogen/src/utilities/index.ts | 22 + .../hydrogen/src/utilities/isClient/README.md | 30 + .../src/utilities/isClient/docs/related.md | 3 + .../isClient/examples/isClient.example.tsx | 9 + .../hydrogen/src/utilities/isClient/index.ts | 1 + .../src/utilities/isClient/isClient.ts | 10 + .../hydrogen/src/utilities/isServer/README.md | 30 + .../src/utilities/isServer/docs/related.md | 3 + .../isServer/examples/isServer.example.tsx | 9 + .../hydrogen/src/utilities/isServer/index.ts | 1 + .../src/utilities/isServer/isServer.ts | 12 + packages/hydrogen/src/utilities/meaurement.ts | 115 + .../src/utilities/metafields/index.ts | 1 + .../metafields/parseMetafieldValue.ts | 74 + .../hydrogen/src/utilities/script_loader.ts | 28 + packages/hydrogen/src/utilities/suspense.ts | 39 + .../utilities/tests/createMountableHook.tsx | 27 + .../hydrogen/src/utilities/tests/media.ts | 86 + .../src/utilities/tests/metafields.ts | 180 + .../hydrogen/src/utilities/tests/price.ts | 10 + .../hydrogen/src/utilities/tests/product.ts | 80 + .../src/utilities/tests/shopify_provider.tsx | 36 + .../utilities/tests/unitPriceMeasurement.ts | 52 + .../src/utilities/video_parameters.ts | 78 + packages/hydrogen/src/version.ts | 1 + packages/hydrogen/tailwind.config.js | 15 + packages/hydrogen/tsconfig.build.json | 7 + packages/hydrogen/tsconfig.cjs.json | 12 + packages/hydrogen/tsconfig.json | 17 + packages/hydrogen/tsconfig.worker.json | 10 + packages/hydrogen/worker.js | 1 + packages/playground/package.json | 5 + .../__tests__/serve.js | 61 + .../server-components-worker.spec.ts | 16 + .../server-components-worker/index.html | 13 + .../server-components-worker/package.json | 22 + .../shopify.config.js | 6 + .../src/App.server.jsx | 22 + .../src/components/Counter.client.jsx | 14 + .../src/components/Link.client.jsx | 1 + .../src/entry-client.jsx | 11 + .../src/entry-server.jsx | 6 + .../server-components-worker/src/favicon.svg | 15 + .../src/pages/about.server.jsx | 10 + .../src/pages/index.server.jsx | 12 + .../server-components-worker/start-worker.js | 27 + .../server-components-worker/vite.config.js | 8 + .../server-components-worker/worker.js | 44 + .../__tests__/server-components.spec.ts | 10 + .../playground/server-components/index.html | 13 + .../playground/server-components/package.json | 20 + .../server-components/shopify.config.js | 6 + .../server-components/src/App.server.jsx | 22 + .../src/components/Counter.client.jsx | 14 + .../src/components/Link.client.jsx | 1 + .../server-components/src/entry-client.jsx | 11 + .../server-components/src/entry-server.jsx | 6 + .../src/pages/about.server.jsx | 10 + .../src/pages/index.server.jsx | 12 + .../server-components/vite.config.js | 8 + packages/playground/testEnv.d.ts | 12 + packages/playground/tsconfig.json | 14 + scripts/generate-docs.ts | 303 + scripts/jest-e2e-env.js | 40 + scripts/jest-e2e-setup-test.ts | 217 + scripts/jest-e2e-setup.js | 21 + scripts/jest-e2e-teardown.js | 9 + scripts/polyfillWebRuntime.ts | 10 + scripts/update-changelogs-on-version.js | 113 + scripts/update-docs-on-version.ts | 110 + scripts/verify-commit.js | 29 + shipit.yml | 8 + tsconfig.json | 9 + yarn.lock | 14674 ++++++++ 863 files changed, 117883 insertions(+) create mode 100644 .alexignore create mode 100644 .alexrc.js create mode 100644 .eslintrc.js create mode 100644 .github/ISSUE_TEMPLATE/bug_report.md create mode 100644 .github/ISSUE_TEMPLATE/config.yml create mode 100644 .github/PULL_REQUEST_TEMPLATE.md create mode 100644 .github/commit-convention.md create mode 100644 .github/workflows/tests_and_lint.yml create mode 100644 .gitignore create mode 100644 .graphqlrc.yml create mode 100644 .nvmrc create mode 100644 .prettierrc.js create mode 100644 LICENSE.md create mode 100644 dev.yml create mode 100644 docs/code_of_conduct.md create mode 100644 docs/contributing.md create mode 100644 docs/contributing/_category_.json create mode 100644 docs/contributing/decisions.md create mode 100644 docs/contributing/headlesscomponents.md create mode 100644 docs/contributing/howtobuildheadless.md create mode 100644 docs/contributing/principles.md create mode 100644 docs/framework/_category_.json create mode 100644 docs/framework/deployment.md create mode 100644 docs/images/HydrogenLogo.png create mode 100644 docs/images/tmate.png create mode 100644 docs/welcome.md create mode 100644 jest-e2e.config.ts create mode 100644 jest-setup.ts create mode 100644 jest.config.ts create mode 100644 lerna.json create mode 100644 package.json create mode 100644 packages/cli/CHANGELOG.md create mode 100644 packages/cli/README.md create mode 100755 packages/cli/bin/hydrogen create mode 100644 packages/cli/docs/installation.md create mode 100644 packages/cli/docs/overview.md create mode 100644 packages/cli/package.json create mode 100644 packages/cli/scripts/copy-templates.js create mode 100644 packages/cli/src/commands/README.md create mode 100644 packages/cli/src/commands/create/app/README.md create mode 100644 packages/cli/src/commands/create/app/app.ts create mode 100644 packages/cli/src/commands/create/app/examples/create-app.example.bash create mode 100644 packages/cli/src/commands/create/app/index.ts create mode 100644 packages/cli/src/commands/create/app/templates/About-server-jsx.ts create mode 100644 packages/cli/src/commands/create/app/templates/App-server-jsx.ts create mode 100644 packages/cli/src/commands/create/app/templates/Index-server-jsx.ts create mode 100644 packages/cli/src/commands/create/app/templates/Link-client-jsx.ts create mode 100644 packages/cli/src/commands/create/app/templates/entry-client-jsx.ts create mode 100644 packages/cli/src/commands/create/app/templates/entry-server-jsx.ts create mode 100644 packages/cli/src/commands/create/app/templates/eslintrc-js.ts create mode 100644 packages/cli/src/commands/create/app/templates/index-css.ts create mode 100644 packages/cli/src/commands/create/app/templates/index-html.ts create mode 100644 packages/cli/src/commands/create/app/templates/postcss-config-js.ts create mode 100644 packages/cli/src/commands/create/app/templates/server-js.ts create mode 100644 packages/cli/src/commands/create/app/templates/shopify-config-js.ts create mode 100644 packages/cli/src/commands/create/app/templates/stylelintrc-js.ts create mode 100644 packages/cli/src/commands/create/app/templates/sw-js.ts create mode 100644 packages/cli/src/commands/create/app/templates/tailwind-config-js.ts create mode 100644 packages/cli/src/commands/create/app/templates/vite-config-js.ts create mode 100644 packages/cli/src/commands/create/app/tests/create.test.ts create mode 100644 packages/cli/src/commands/create/component/component.ts create mode 100644 packages/cli/src/commands/create/component/index.ts create mode 100644 packages/cli/src/commands/create/component/templates/component-jsx.ts create mode 100644 packages/cli/src/commands/create/component/tests/component.test.ts create mode 100644 packages/cli/src/commands/init/index.ts create mode 100644 packages/cli/src/commands/init/init.ts create mode 100644 packages/cli/src/commands/version/README.md create mode 100644 packages/cli/src/commands/version/examples/version.example.bash create mode 100644 packages/cli/src/commands/version/index.ts create mode 100644 packages/cli/src/commands/version/version.ts create mode 100644 packages/cli/src/config.ts create mode 100644 packages/cli/src/fs/fs.ts create mode 100644 packages/cli/src/fs/index.ts create mode 100644 packages/cli/src/index.ts create mode 100644 packages/cli/src/testing/index.ts create mode 100644 packages/cli/src/testing/testing.ts create mode 100644 packages/cli/src/types.ts create mode 100644 packages/cli/src/ui/index.ts create mode 100644 packages/cli/src/ui/ui.ts create mode 100644 packages/cli/src/utilities/error.ts create mode 100644 packages/cli/src/utilities/feature.ts create mode 100644 packages/cli/src/utilities/index.ts create mode 100644 packages/cli/src/utilities/merge.ts create mode 100644 packages/cli/src/workspace/index.ts create mode 100644 packages/cli/src/workspace/workspace.ts create mode 100644 packages/cli/tsconfig.json create mode 100644 packages/create-hydrogen-app/CHANGELOG.md create mode 100644 packages/create-hydrogen-app/README.md create mode 100755 packages/create-hydrogen-app/index.js create mode 100644 packages/create-hydrogen-app/package.json create mode 100644 packages/create-hydrogen-app/scripts/tmp-copy-template-from-dev.js create mode 100644 packages/create-hydrogen-app/scripts/utils.js create mode 120000 packages/create-hydrogen-app/template-hydrogen create mode 100644 packages/dev/.eslintrc.js create mode 100644 packages/dev/.stylelintrc.js create mode 100644 packages/dev/.vscode/extensions.json create mode 100644 packages/dev/Dockerfile create mode 100644 packages/dev/README.md create mode 100644 packages/dev/_gitignore create mode 100644 packages/dev/index.html create mode 100644 packages/dev/package.json create mode 100644 packages/dev/postcss.config.js create mode 100644 packages/dev/server.js create mode 100644 packages/dev/shopify.config.js create mode 100644 packages/dev/src/App.server.jsx create mode 100644 packages/dev/src/components/Button.client.jsx create mode 100644 packages/dev/src/components/Cart.client.jsx create mode 100644 packages/dev/src/components/CartIcon.jsx create mode 100644 packages/dev/src/components/CartIconWithItems.client.jsx create mode 100644 packages/dev/src/components/CartProvider.client.jsx create mode 100644 packages/dev/src/components/CartToggle.client.jsx create mode 100644 packages/dev/src/components/CartUIProvider.client.jsx create mode 100644 packages/dev/src/components/CollectionHero.client.jsx create mode 100644 packages/dev/src/components/CurrencySelector.client.jsx create mode 100644 packages/dev/src/components/DefaultSeo.server.jsx create mode 100644 packages/dev/src/components/FeaturedCollection.server.jsx create mode 100644 packages/dev/src/components/Footer.server.jsx create mode 100644 packages/dev/src/components/Gallery.client.jsx create mode 100644 packages/dev/src/components/Header.client.jsx create mode 100644 packages/dev/src/components/Layout.server.jsx create mode 100644 packages/dev/src/components/LoadMoreProducts.client.jsx create mode 100644 packages/dev/src/components/LoadingFallback.jsx create mode 100644 packages/dev/src/components/MediaPlaceholder.jsx create mode 100644 packages/dev/src/components/MobileCurrencySelector.client.jsx create mode 100644 packages/dev/src/components/MobileNavigation.client.jsx create mode 100644 packages/dev/src/components/Navigation.client.jsx create mode 100644 packages/dev/src/components/NotFound.server.jsx create mode 100644 packages/dev/src/components/OpenIcon.jsx create mode 100644 packages/dev/src/components/ProductCard.server.jsx create mode 100644 packages/dev/src/components/ProductCardAdvanced.client.jsx create mode 100644 packages/dev/src/components/ProductDetails.client.jsx create mode 100644 packages/dev/src/components/ProductOptions.client.jsx create mode 100644 packages/dev/src/components/ProductReview.jsx create mode 100644 packages/dev/src/components/ProductVariantImageSelector.client.jsx create mode 100644 packages/dev/src/components/Seo.client.jsx create mode 100644 packages/dev/src/components/StyledLink.jsx create mode 100644 packages/dev/src/entry-client.jsx create mode 100644 packages/dev/src/entry-server.jsx create mode 100644 packages/dev/src/favicon.svg create mode 100644 packages/dev/src/index.css create mode 100644 packages/dev/src/pages/Index.server.jsx create mode 100644 packages/dev/src/pages/blogs/[handle].server.jsx create mode 100644 packages/dev/src/pages/blogs/[handle]/[articleHandle].server.jsx create mode 100644 packages/dev/src/pages/collections/[handle].server.jsx create mode 100644 packages/dev/src/pages/home.server.jsx create mode 100644 packages/dev/src/pages/pages/[handle].server.jsx create mode 100644 packages/dev/src/pages/products/[handle].server.jsx create mode 100644 packages/dev/src/pages/search.server.jsx create mode 100644 packages/dev/src/pages/sitemap.xml.server.jsx create mode 100644 packages/dev/tailwind.config.js create mode 100644 packages/dev/vite.config.js create mode 100644 packages/dev/worker.js create mode 100644 packages/eslint-plugin/CHANGELOG.md create mode 100644 packages/eslint-plugin/README.md create mode 100644 packages/eslint-plugin/jest.config.js create mode 100644 packages/eslint-plugin/package.json create mode 100644 packages/eslint-plugin/src/config/recommended-typescript.ts create mode 100644 packages/eslint-plugin/src/config/recommended.ts create mode 100644 packages/eslint-plugin/src/config/rules/hydrogen.ts create mode 100644 packages/eslint-plugin/src/config/rules/index.ts create mode 100644 packages/eslint-plugin/src/config/rules/overrides.ts create mode 100644 packages/eslint-plugin/src/index.ts create mode 100644 packages/eslint-plugin/src/rules/index.ts create mode 100644 packages/eslint-plugin/src/rules/no-state-in-server-components/README.md create mode 100644 packages/eslint-plugin/src/rules/no-state-in-server-components/index.ts create mode 100644 packages/eslint-plugin/src/rules/no-state-in-server-components/no-state-in-server-components.ts create mode 100644 packages/eslint-plugin/src/rules/no-state-in-server-components/tests/no-state-in-server-components.test.ts create mode 100644 packages/eslint-plugin/src/rules/prefer-image-component/README.md create mode 100644 packages/eslint-plugin/src/rules/prefer-image-component/index.ts create mode 100644 packages/eslint-plugin/src/rules/prefer-image-component/prefer-image-component.ts create mode 100644 packages/eslint-plugin/src/rules/prefer-image-component/tests/prefer-image-component.test.ts create mode 100644 packages/eslint-plugin/src/utilities/index.ts create mode 100644 packages/eslint-plugin/src/utilities/react.ts create mode 100644 packages/eslint-plugin/tsconfig.json create mode 100644 packages/generate-docs/README.md create mode 100755 packages/generate-docs/bin/generate-docs create mode 100644 packages/generate-docs/package.json create mode 100644 packages/generate-docs/src/DocsGen.ts create mode 100644 packages/generate-docs/src/FileResult.ts create mode 100644 packages/generate-docs/src/index.ts create mode 100644 packages/generate-docs/src/types.ts create mode 100644 packages/generate-docs/src/utilities/dependency-graph.ts create mode 100644 packages/generate-docs/src/utilities/examples.ts create mode 100644 packages/generate-docs/src/utilities/markdown.ts create mode 100644 packages/generate-docs/src/utilities/shared.ts create mode 100644 packages/generate-docs/src/utilities/tests/markdown.test.ts create mode 100644 packages/generate-docs/tsconfig.json create mode 100644 packages/hydrogen-plugin-sanity/CHANGELOG.md create mode 100644 packages/hydrogen-plugin-sanity/README.md create mode 100644 packages/hydrogen-plugin-sanity/package.json create mode 100644 packages/hydrogen-plugin-sanity/src/index.ts create mode 100644 packages/hydrogen-plugin-sanity/tsconfig.json create mode 100644 packages/hydrogen/CHANGELOG.md create mode 100644 packages/hydrogen/README.md create mode 100644 packages/hydrogen/client.d.ts create mode 100644 packages/hydrogen/client.js create mode 100644 packages/hydrogen/codegen-hydrogen-plugin.js create mode 100644 packages/hydrogen/codegen.yml create mode 100644 packages/hydrogen/entry-client.d.ts create mode 100644 packages/hydrogen/entry-client.js create mode 100644 packages/hydrogen/entry-server.d.ts create mode 100644 packages/hydrogen/entry-server.js create mode 100644 packages/hydrogen/graphql.schema.json create mode 100644 packages/hydrogen/marker.js create mode 100644 packages/hydrogen/middleware.d.ts create mode 100644 packages/hydrogen/middleware.js create mode 100644 packages/hydrogen/package.json create mode 100644 packages/hydrogen/plugin.d.ts create mode 100644 packages/hydrogen/plugin.js create mode 100644 packages/hydrogen/postcss.config.js create mode 100644 packages/hydrogen/src/client.ts create mode 100644 packages/hydrogen/src/components/AddToCartButton/AddToCartButton.client.tsx create mode 100644 packages/hydrogen/src/components/AddToCartButton/README.md create mode 100644 packages/hydrogen/src/components/AddToCartButton/docs/component-type.md create mode 100644 packages/hydrogen/src/components/AddToCartButton/docs/used-by.md create mode 100644 packages/hydrogen/src/components/AddToCartButton/examples/add-to-cart-button.example.tsx create mode 100644 packages/hydrogen/src/components/AddToCartButton/index.ts create mode 100644 packages/hydrogen/src/components/AddToCartButton/tests/AddToCart.test.tsx create mode 100644 packages/hydrogen/src/components/BuyNowButton/BuyNowButton.client.tsx create mode 100644 packages/hydrogen/src/components/BuyNowButton/README.md create mode 100644 packages/hydrogen/src/components/BuyNowButton/docs/component-type.md create mode 100644 packages/hydrogen/src/components/BuyNowButton/docs/related.md create mode 100644 packages/hydrogen/src/components/BuyNowButton/examples/buy-now-button.example.tsx create mode 100644 packages/hydrogen/src/components/BuyNowButton/index.ts create mode 100644 packages/hydrogen/src/components/BuyNowButton/tests/BuyNowButton.test.tsx create mode 100644 packages/hydrogen/src/components/CartCheckoutButton/CartCheckoutButton.client.tsx create mode 100644 packages/hydrogen/src/components/CartCheckoutButton/README.md create mode 100644 packages/hydrogen/src/components/CartCheckoutButton/docs/component-type.md create mode 100644 packages/hydrogen/src/components/CartCheckoutButton/docs/related.md create mode 100644 packages/hydrogen/src/components/CartCheckoutButton/examples/cart-checkout-button.example.tsx create mode 100644 packages/hydrogen/src/components/CartCheckoutButton/index.tsx create mode 100644 packages/hydrogen/src/components/CartCheckoutButton/tests/CartCheckoutButton.test.tsx create mode 100644 packages/hydrogen/src/components/CartEstimatedCost/CartEstimatedCost.client.tsx create mode 100644 packages/hydrogen/src/components/CartEstimatedCost/README.md create mode 100644 packages/hydrogen/src/components/CartEstimatedCost/docs/component-type.md create mode 100644 packages/hydrogen/src/components/CartEstimatedCost/docs/related.md create mode 100644 packages/hydrogen/src/components/CartEstimatedCost/examples/cart-estimated-cost.example.tsx create mode 100644 packages/hydrogen/src/components/CartEstimatedCost/index.ts create mode 100644 packages/hydrogen/src/components/CartEstimatedCost/tests/CartEstimatedCost.test.tsx create mode 100644 packages/hydrogen/src/components/CartLineAttributes/CartLineAttributes.client.tsx create mode 100644 packages/hydrogen/src/components/CartLineAttributes/README.md create mode 100644 packages/hydrogen/src/components/CartLineAttributes/docs/1-render-props.md create mode 100644 packages/hydrogen/src/components/CartLineAttributes/docs/2-component-type.md create mode 100644 packages/hydrogen/src/components/CartLineAttributes/docs/3-alias.md create mode 100644 packages/hydrogen/src/components/CartLineAttributes/docs/4-related.md create mode 100644 packages/hydrogen/src/components/CartLineAttributes/examples/cart-line-attributes.example.tsx create mode 100644 packages/hydrogen/src/components/CartLineAttributes/index.ts create mode 100644 packages/hydrogen/src/components/CartLineAttributes/tests/CartLineAttributes.test.tsx create mode 100644 packages/hydrogen/src/components/CartLineImage/CartLineImage.client.tsx create mode 100644 packages/hydrogen/src/components/CartLineImage/README.md create mode 100644 packages/hydrogen/src/components/CartLineImage/docs/alias.md create mode 100644 packages/hydrogen/src/components/CartLineImage/docs/component-type.md create mode 100644 packages/hydrogen/src/components/CartLineImage/docs/related.md create mode 100644 packages/hydrogen/src/components/CartLineImage/examples/cart-line-image.example.tsx create mode 100644 packages/hydrogen/src/components/CartLineImage/index.ts create mode 100644 packages/hydrogen/src/components/CartLineImage/tests/CartLineImage.test.tsx create mode 100644 packages/hydrogen/src/components/CartLinePrice/CartLinePrice.client.tsx create mode 100644 packages/hydrogen/src/components/CartLinePrice/README.md create mode 100644 packages/hydrogen/src/components/CartLinePrice/docs/alias.md create mode 100644 packages/hydrogen/src/components/CartLinePrice/docs/component-type.md create mode 100644 packages/hydrogen/src/components/CartLinePrice/docs/related.md create mode 100644 packages/hydrogen/src/components/CartLinePrice/examples/cart-line-price.example.tsx create mode 100644 packages/hydrogen/src/components/CartLinePrice/index.ts create mode 100644 packages/hydrogen/src/components/CartLinePrice/tests/CartLinePrice.test.tsx create mode 100644 packages/hydrogen/src/components/CartLineProductTitle/CartLineProductTitle.client.tsx create mode 100644 packages/hydrogen/src/components/CartLineProductTitle/README.md create mode 100644 packages/hydrogen/src/components/CartLineProductTitle/docs/alias.md create mode 100644 packages/hydrogen/src/components/CartLineProductTitle/docs/component-type.md create mode 100644 packages/hydrogen/src/components/CartLineProductTitle/docs/related.md create mode 100644 packages/hydrogen/src/components/CartLineProductTitle/examples/cart-line-product-title.example.tsx create mode 100644 packages/hydrogen/src/components/CartLineProductTitle/index.ts create mode 100644 packages/hydrogen/src/components/CartLineProductTitle/tests/CartLineProductTitle.test.tsx create mode 100644 packages/hydrogen/src/components/CartLineProvider/CartLineProvider.client.tsx create mode 100644 packages/hydrogen/src/components/CartLineProvider/README.md create mode 100644 packages/hydrogen/src/components/CartLineProvider/context.ts create mode 100644 packages/hydrogen/src/components/CartLineProvider/docs/alias.md create mode 100644 packages/hydrogen/src/components/CartLineProvider/docs/component-type.md create mode 100644 packages/hydrogen/src/components/CartLineProvider/docs/related.md create mode 100644 packages/hydrogen/src/components/CartLineProvider/examples/cart-line-provider.example.tsx create mode 100644 packages/hydrogen/src/components/CartLineProvider/index.ts create mode 100644 packages/hydrogen/src/components/CartLineProvider/tests/CartLineProvider.test.tsx create mode 100644 packages/hydrogen/src/components/CartLineProvider/tests/fixtures.ts create mode 100644 packages/hydrogen/src/components/CartLineQuantity/CartLineQuantity.client.tsx create mode 100644 packages/hydrogen/src/components/CartLineQuantity/README.md create mode 100644 packages/hydrogen/src/components/CartLineQuantity/docs/alias.md create mode 100644 packages/hydrogen/src/components/CartLineQuantity/docs/component-type.md create mode 100644 packages/hydrogen/src/components/CartLineQuantity/docs/related.md create mode 100644 packages/hydrogen/src/components/CartLineQuantity/examples/cart-line-quantity.example.tsx create mode 100644 packages/hydrogen/src/components/CartLineQuantity/index.ts create mode 100644 packages/hydrogen/src/components/CartLineQuantity/tests/CartLineQuantity.test.tsx create mode 100644 packages/hydrogen/src/components/CartLineQuantityAdjustButton/CartLineQuantityAdjustButton.tsx create mode 100644 packages/hydrogen/src/components/CartLineQuantityAdjustButton/README.md create mode 100644 packages/hydrogen/src/components/CartLineQuantityAdjustButton/docs/alias.md create mode 100644 packages/hydrogen/src/components/CartLineQuantityAdjustButton/docs/component-type.md create mode 100644 packages/hydrogen/src/components/CartLineQuantityAdjustButton/docs/related.md create mode 100644 packages/hydrogen/src/components/CartLineQuantityAdjustButton/examples/cart-line-quantity-adjust-button.example.tsx create mode 100644 packages/hydrogen/src/components/CartLineQuantityAdjustButton/index.ts create mode 100644 packages/hydrogen/src/components/CartLineQuantityAdjustButton/tests/CartLineQuantityAdjustButton.test.tsx create mode 100644 packages/hydrogen/src/components/CartLineSelectedOptions/CartLineSelectedOptions.client.tsx create mode 100644 packages/hydrogen/src/components/CartLineSelectedOptions/README.md create mode 100644 packages/hydrogen/src/components/CartLineSelectedOptions/docs/1-render-props.md create mode 100644 packages/hydrogen/src/components/CartLineSelectedOptions/docs/2-component-type.md create mode 100644 packages/hydrogen/src/components/CartLineSelectedOptions/docs/3-alias.md create mode 100644 packages/hydrogen/src/components/CartLineSelectedOptions/docs/4-related.md create mode 100644 packages/hydrogen/src/components/CartLineSelectedOptions/examples/cart-line-selected-options.example.tsx create mode 100644 packages/hydrogen/src/components/CartLineSelectedOptions/index.ts create mode 100644 packages/hydrogen/src/components/CartLineSelectedOptions/tests/CartLineSelectedOptions.test.tsx create mode 100644 packages/hydrogen/src/components/CartLines/CartLines.tsx create mode 100644 packages/hydrogen/src/components/CartLines/README.md create mode 100644 packages/hydrogen/src/components/CartLines/docs/component-type.md create mode 100644 packages/hydrogen/src/components/CartLines/docs/related.md create mode 100644 packages/hydrogen/src/components/CartLines/examples/cart-lines.example.tsx create mode 100644 packages/hydrogen/src/components/CartLines/index.ts create mode 100644 packages/hydrogen/src/components/CartLines/tests/CartLines.test.tsx create mode 100644 packages/hydrogen/src/components/CartProvider/CartProvider.client.tsx create mode 100644 packages/hydrogen/src/components/CartProvider/README.md create mode 100644 packages/hydrogen/src/components/CartProvider/constants.ts create mode 100644 packages/hydrogen/src/components/CartProvider/context.tsx create mode 100644 packages/hydrogen/src/components/CartProvider/docs/component-type.md create mode 100644 packages/hydrogen/src/components/CartProvider/docs/related.md create mode 100644 packages/hydrogen/src/components/CartProvider/examples/cart-provider.example.tsx create mode 100644 packages/hydrogen/src/components/CartProvider/graphql/CartAttributesUpdateMutation.graphql create mode 100644 packages/hydrogen/src/components/CartProvider/graphql/CartAttributesUpdateMutation.ts create mode 100644 packages/hydrogen/src/components/CartProvider/graphql/CartBuyerIdentityUpdateMutation.graphql create mode 100644 packages/hydrogen/src/components/CartProvider/graphql/CartBuyerIdentityUpdateMutation.ts create mode 100644 packages/hydrogen/src/components/CartProvider/graphql/CartCreateMutation.graphql create mode 100644 packages/hydrogen/src/components/CartProvider/graphql/CartCreateMutation.ts create mode 100644 packages/hydrogen/src/components/CartProvider/graphql/CartDiscountCodesUpdateMutation.graphql create mode 100644 packages/hydrogen/src/components/CartProvider/graphql/CartDiscountCodesUpdateMutation.ts create mode 100644 packages/hydrogen/src/components/CartProvider/graphql/CartFragment.graphql create mode 100644 packages/hydrogen/src/components/CartProvider/graphql/CartFragment.ts create mode 100644 packages/hydrogen/src/components/CartProvider/graphql/CartLineAddMutation.graphql create mode 100644 packages/hydrogen/src/components/CartProvider/graphql/CartLineAddMutation.ts create mode 100644 packages/hydrogen/src/components/CartProvider/graphql/CartLineRemoveMutation.graphql create mode 100644 packages/hydrogen/src/components/CartProvider/graphql/CartLineRemoveMutation.ts create mode 100644 packages/hydrogen/src/components/CartProvider/graphql/CartLineUpdateMutation.graphql create mode 100644 packages/hydrogen/src/components/CartProvider/graphql/CartLineUpdateMutation.ts create mode 100644 packages/hydrogen/src/components/CartProvider/graphql/CartNoteUpdateMutation.graphql create mode 100644 packages/hydrogen/src/components/CartProvider/graphql/CartNoteUpdateMutation.ts create mode 100644 packages/hydrogen/src/components/CartProvider/graphql/CartQuery.graphql create mode 100644 packages/hydrogen/src/components/CartProvider/graphql/CartQuery.ts create mode 100644 packages/hydrogen/src/components/CartProvider/hooks.tsx create mode 100644 packages/hydrogen/src/components/CartProvider/index.ts create mode 100644 packages/hydrogen/src/components/CartProvider/tests/fixtures.ts create mode 100644 packages/hydrogen/src/components/CartProvider/types.ts create mode 100644 packages/hydrogen/src/components/CartShopPayButton/CartShopPayButton.client.tsx create mode 100644 packages/hydrogen/src/components/CartShopPayButton/README.md create mode 100644 packages/hydrogen/src/components/CartShopPayButton/docs/component-type.md create mode 100644 packages/hydrogen/src/components/CartShopPayButton/docs/related.md create mode 100644 packages/hydrogen/src/components/CartShopPayButton/examples/cart-shop-pay-button.example.tsx create mode 100644 packages/hydrogen/src/components/CartShopPayButton/index.ts create mode 100644 packages/hydrogen/src/components/CartShopPayButton/tests/CartShopPayButton.test.tsx create mode 100644 packages/hydrogen/src/components/ExternalVideo/ExternalVideo.tsx create mode 100644 packages/hydrogen/src/components/ExternalVideo/ExternalVideoFragment.graphql create mode 100644 packages/hydrogen/src/components/ExternalVideo/ExternalVideoFragment.ts create mode 100644 packages/hydrogen/src/components/ExternalVideo/README.md create mode 100644 packages/hydrogen/src/components/ExternalVideo/docs/component-type.md create mode 100644 packages/hydrogen/src/components/ExternalVideo/docs/fragment.md create mode 100644 packages/hydrogen/src/components/ExternalVideo/docs/related.md create mode 100644 packages/hydrogen/src/components/ExternalVideo/examples/external-video.example.tsx create mode 100644 packages/hydrogen/src/components/ExternalVideo/index.ts create mode 100644 packages/hydrogen/src/components/ExternalVideo/tests/ExternalVideo.test.tsx create mode 100644 packages/hydrogen/src/components/Image/Image.tsx create mode 100644 packages/hydrogen/src/components/Image/ImageFragment.graphql create mode 100644 packages/hydrogen/src/components/Image/ImageFragment.ts create mode 100644 packages/hydrogen/src/components/Image/README.md create mode 100644 packages/hydrogen/src/components/Image/docs/component-type.md create mode 100644 packages/hydrogen/src/components/Image/docs/fragment.md create mode 100644 packages/hydrogen/src/components/Image/docs/image-size-options.md create mode 100644 packages/hydrogen/src/components/Image/docs/related.md create mode 100644 packages/hydrogen/src/components/Image/examples/external-images-with-a-custom-loader.example.tsx create mode 100644 packages/hydrogen/src/components/Image/examples/external-images.example.tsx create mode 100644 packages/hydrogen/src/components/Image/examples/storefront-api-images.example.tsx create mode 100644 packages/hydrogen/src/components/Image/index.ts create mode 100644 packages/hydrogen/src/components/Image/tests/Image.test.tsx create mode 100644 packages/hydrogen/src/components/LocalizationProvider/LocalizationClientProvider.client.tsx create mode 100644 packages/hydrogen/src/components/LocalizationProvider/LocalizationContext.client.tsx create mode 100644 packages/hydrogen/src/components/LocalizationProvider/LocalizationProvider.server.tsx create mode 100644 packages/hydrogen/src/components/LocalizationProvider/LocalizationQuery.graphql create mode 100644 packages/hydrogen/src/components/LocalizationProvider/LocalizationQuery.ts create mode 100644 packages/hydrogen/src/components/LocalizationProvider/README.md create mode 100644 packages/hydrogen/src/components/LocalizationProvider/docs/component-type.md create mode 100644 packages/hydrogen/src/components/LocalizationProvider/docs/related.md create mode 100644 packages/hydrogen/src/components/LocalizationProvider/examples/localization-provider.example.tsx create mode 100644 packages/hydrogen/src/components/LocalizationProvider/index.ts create mode 100644 packages/hydrogen/src/components/MediaFile/MediaFile.tsx create mode 100644 packages/hydrogen/src/components/MediaFile/MediaFileFragment.graphql create mode 100644 packages/hydrogen/src/components/MediaFile/MediaFileFragment.ts create mode 100644 packages/hydrogen/src/components/MediaFile/README.md create mode 100644 packages/hydrogen/src/components/MediaFile/docs/component-type.md create mode 100644 packages/hydrogen/src/components/MediaFile/docs/fragment.md create mode 100644 packages/hydrogen/src/components/MediaFile/docs/related.md create mode 100644 packages/hydrogen/src/components/MediaFile/examples/media-file.example.tsx create mode 100644 packages/hydrogen/src/components/MediaFile/index.ts create mode 100644 packages/hydrogen/src/components/Metafield/Metafield.client.tsx create mode 100644 packages/hydrogen/src/components/Metafield/MetafieldFragment.graphql create mode 100644 packages/hydrogen/src/components/Metafield/MetafieldFragment.ts create mode 100644 packages/hydrogen/src/components/Metafield/README.md create mode 100644 packages/hydrogen/src/components/Metafield/components/StarRating/StarRating.tsx create mode 100644 packages/hydrogen/src/components/Metafield/components/StarRating/index.ts create mode 100644 packages/hydrogen/src/components/Metafield/components/StarRating/tests/StarRating.test.tsx create mode 100644 packages/hydrogen/src/components/Metafield/components/index.ts create mode 100644 packages/hydrogen/src/components/Metafield/docs/1-default-output.md create mode 100644 packages/hydrogen/src/components/Metafield/docs/2-render-props.md create mode 100644 packages/hydrogen/src/components/Metafield/docs/3-component-type.md create mode 100644 packages/hydrogen/src/components/Metafield/docs/4-fragment.md create mode 100644 packages/hydrogen/src/components/Metafield/docs/5-related.md create mode 100644 packages/hydrogen/src/components/Metafield/examples/metafield.example.tsx create mode 100644 packages/hydrogen/src/components/Metafield/index.ts create mode 100644 packages/hydrogen/src/components/Metafield/tests/Metafield.test.tsx create mode 100644 packages/hydrogen/src/components/Metafield/types.ts create mode 100644 packages/hydrogen/src/components/Model3D/Model3D.client.tsx create mode 100644 packages/hydrogen/src/components/Model3D/Model3DFragment.graphql create mode 100644 packages/hydrogen/src/components/Model3D/Model3DFragment.ts create mode 100644 packages/hydrogen/src/components/Model3D/README.md create mode 100644 packages/hydrogen/src/components/Model3D/docs/component-type.md create mode 100644 packages/hydrogen/src/components/Model3D/docs/fragment.md create mode 100644 packages/hydrogen/src/components/Model3D/docs/related.md create mode 100644 packages/hydrogen/src/components/Model3D/examples/model3d.example.tsx create mode 100644 packages/hydrogen/src/components/Model3D/index.ts create mode 100644 packages/hydrogen/src/components/Money/Money.client.tsx create mode 100644 packages/hydrogen/src/components/Money/MoneyFragment.graphql create mode 100644 packages/hydrogen/src/components/Money/MoneyFragment.ts create mode 100644 packages/hydrogen/src/components/Money/README.md create mode 100644 packages/hydrogen/src/components/Money/docs/component-type.md create mode 100644 packages/hydrogen/src/components/Money/docs/fragment.md create mode 100644 packages/hydrogen/src/components/Money/docs/related.md create mode 100644 packages/hydrogen/src/components/Money/examples/money.example.tsx create mode 100644 packages/hydrogen/src/components/Money/index.tsx create mode 100644 packages/hydrogen/src/components/Money/tests/Money.test.tsx create mode 100644 packages/hydrogen/src/components/ProductDescription/ProductDescription.client.tsx create mode 100644 packages/hydrogen/src/components/ProductDescription/README.md create mode 100644 packages/hydrogen/src/components/ProductDescription/docs/alias.md create mode 100644 packages/hydrogen/src/components/ProductDescription/docs/component-type.md create mode 100644 packages/hydrogen/src/components/ProductDescription/docs/related.md create mode 100644 packages/hydrogen/src/components/ProductDescription/examples/product-description.example.tsx create mode 100644 packages/hydrogen/src/components/ProductDescription/index.ts create mode 100644 packages/hydrogen/src/components/ProductDescription/tests/ProductDescription.test.tsx create mode 100644 packages/hydrogen/src/components/ProductMetafield/ProductMetafield.client.tsx create mode 100644 packages/hydrogen/src/components/ProductMetafield/README.md create mode 100644 packages/hydrogen/src/components/ProductMetafield/docs/component-type.md create mode 100644 packages/hydrogen/src/components/ProductMetafield/docs/related.md create mode 100644 packages/hydrogen/src/components/ProductMetafield/examples/product-metafield.example.tsx create mode 100644 packages/hydrogen/src/components/ProductMetafield/index.ts create mode 100644 packages/hydrogen/src/components/ProductPrice/ProductPrice.client.tsx create mode 100644 packages/hydrogen/src/components/ProductPrice/README.md create mode 100644 packages/hydrogen/src/components/ProductPrice/docs/alias.md create mode 100644 packages/hydrogen/src/components/ProductPrice/docs/component-type.md create mode 100644 packages/hydrogen/src/components/ProductPrice/docs/related.md create mode 100644 packages/hydrogen/src/components/ProductPrice/examples/product-price.example.tsx create mode 100644 packages/hydrogen/src/components/ProductPrice/index.ts create mode 100644 packages/hydrogen/src/components/ProductPrice/tests/ProductPrice.test.tsx create mode 100644 packages/hydrogen/src/components/ProductProvider/ProductProvider.client.tsx create mode 100644 packages/hydrogen/src/components/ProductProvider/ProductProviderFragment.graphql create mode 100644 packages/hydrogen/src/components/ProductProvider/ProductProviderFragment.ts create mode 100644 packages/hydrogen/src/components/ProductProvider/README.md create mode 100644 packages/hydrogen/src/components/ProductProvider/context.ts create mode 100644 packages/hydrogen/src/components/ProductProvider/docs/alias.md create mode 100644 packages/hydrogen/src/components/ProductProvider/docs/component-type.md create mode 100644 packages/hydrogen/src/components/ProductProvider/docs/fragment.md create mode 100644 packages/hydrogen/src/components/ProductProvider/docs/related.md create mode 100644 packages/hydrogen/src/components/ProductProvider/examples/product-provider.example.tsx create mode 100644 packages/hydrogen/src/components/ProductProvider/index.ts create mode 100644 packages/hydrogen/src/components/ProductProvider/tests/ProductProvider.test.tsx create mode 100644 packages/hydrogen/src/components/ProductProvider/types.ts create mode 100644 packages/hydrogen/src/components/ProductTitle/ProductTitle.client.tsx create mode 100644 packages/hydrogen/src/components/ProductTitle/README.md create mode 100644 packages/hydrogen/src/components/ProductTitle/docs/alias.md create mode 100644 packages/hydrogen/src/components/ProductTitle/docs/component-type.md create mode 100644 packages/hydrogen/src/components/ProductTitle/docs/related.md create mode 100644 packages/hydrogen/src/components/ProductTitle/examples/product-title.example.tsx create mode 100644 packages/hydrogen/src/components/ProductTitle/index.ts create mode 100644 packages/hydrogen/src/components/ProductTitle/tests/ProductTitle.test.tsx create mode 100644 packages/hydrogen/src/components/RawHtml/README.md create mode 100644 packages/hydrogen/src/components/RawHtml/RawHtml.tsx create mode 100644 packages/hydrogen/src/components/RawHtml/docs/component-type.md create mode 100644 packages/hydrogen/src/components/RawHtml/docs/used-by.md create mode 100644 packages/hydrogen/src/components/RawHtml/examples/raw-html.example.tsx create mode 100644 packages/hydrogen/src/components/RawHtml/index.ts create mode 100644 packages/hydrogen/src/components/RawHtml/tests/RawHtml.test.tsx create mode 100644 packages/hydrogen/src/components/SelectedVariantAddToCartButton/README.md create mode 100644 packages/hydrogen/src/components/SelectedVariantAddToCartButton/SelectedVariantAddToCartButton.client.tsx create mode 100644 packages/hydrogen/src/components/SelectedVariantAddToCartButton/docs/alias.md create mode 100644 packages/hydrogen/src/components/SelectedVariantAddToCartButton/docs/component-type.md create mode 100644 packages/hydrogen/src/components/SelectedVariantAddToCartButton/docs/related.md create mode 100644 packages/hydrogen/src/components/SelectedVariantAddToCartButton/examples/selected-variant-add-to-cart-button.example.tsx create mode 100644 packages/hydrogen/src/components/SelectedVariantAddToCartButton/index.ts create mode 100644 packages/hydrogen/src/components/SelectedVariantAddToCartButton/tests/SelectedVariantAddToCartButton.test.tsx create mode 100644 packages/hydrogen/src/components/SelectedVariantBuyNowButton/README.md create mode 100644 packages/hydrogen/src/components/SelectedVariantBuyNowButton/SelectedVariantBuyNowButton.tsx create mode 100644 packages/hydrogen/src/components/SelectedVariantBuyNowButton/docs/alias.md create mode 100644 packages/hydrogen/src/components/SelectedVariantBuyNowButton/docs/component-type.md create mode 100644 packages/hydrogen/src/components/SelectedVariantBuyNowButton/docs/related.md create mode 100644 packages/hydrogen/src/components/SelectedVariantBuyNowButton/examples/selected-variant-buy-now-button.example.tsx create mode 100644 packages/hydrogen/src/components/SelectedVariantBuyNowButton/index.ts create mode 100644 packages/hydrogen/src/components/SelectedVariantBuyNowButton/tests/SelectedVariantBuyNowButton.test.tsx create mode 100644 packages/hydrogen/src/components/SelectedVariantImage/README.md create mode 100644 packages/hydrogen/src/components/SelectedVariantImage/SelectedVariantImage.client.tsx create mode 100644 packages/hydrogen/src/components/SelectedVariantImage/docs/alias.md create mode 100644 packages/hydrogen/src/components/SelectedVariantImage/docs/component-type.md create mode 100644 packages/hydrogen/src/components/SelectedVariantImage/docs/related.md create mode 100644 packages/hydrogen/src/components/SelectedVariantImage/examples/selected-variant-image.example.tsx create mode 100644 packages/hydrogen/src/components/SelectedVariantImage/index.ts create mode 100644 packages/hydrogen/src/components/SelectedVariantImage/tests/SelectedVariantImage.test.tsx create mode 100644 packages/hydrogen/src/components/SelectedVariantMetafield/README.md create mode 100644 packages/hydrogen/src/components/SelectedVariantMetafield/SelectedVariantMetafield.client.tsx create mode 100644 packages/hydrogen/src/components/SelectedVariantMetafield/docs/component-type.md create mode 100644 packages/hydrogen/src/components/SelectedVariantMetafield/docs/related.md create mode 100644 packages/hydrogen/src/components/SelectedVariantMetafield/examples/selected-variant-metafield.example.tsx create mode 100644 packages/hydrogen/src/components/SelectedVariantMetafield/index.ts create mode 100644 packages/hydrogen/src/components/SelectedVariantPrice/README.md create mode 100644 packages/hydrogen/src/components/SelectedVariantPrice/SelectedVariantPrice.client.tsx create mode 100644 packages/hydrogen/src/components/SelectedVariantPrice/docs/alias.md create mode 100644 packages/hydrogen/src/components/SelectedVariantPrice/docs/component-type.md create mode 100644 packages/hydrogen/src/components/SelectedVariantPrice/docs/related.md create mode 100644 packages/hydrogen/src/components/SelectedVariantPrice/examples/selected-variant-price.example.tsx create mode 100644 packages/hydrogen/src/components/SelectedVariantPrice/index.ts create mode 100644 packages/hydrogen/src/components/SelectedVariantPrice/tests/SelectedVariantPrice.test.tsx create mode 100644 packages/hydrogen/src/components/SelectedVariantShopPayButton/README.md create mode 100644 packages/hydrogen/src/components/SelectedVariantShopPayButton/SelectedVariantShopPayButton.client.tsx create mode 100644 packages/hydrogen/src/components/SelectedVariantShopPayButton/docs/alias.md create mode 100644 packages/hydrogen/src/components/SelectedVariantShopPayButton/docs/component-type.md create mode 100644 packages/hydrogen/src/components/SelectedVariantShopPayButton/docs/related.md create mode 100644 packages/hydrogen/src/components/SelectedVariantShopPayButton/examples/selected-variant-shop-pay-button.example.tsx create mode 100644 packages/hydrogen/src/components/SelectedVariantShopPayButton/index.ts create mode 100644 packages/hydrogen/src/components/SelectedVariantShopPayButton/tests/SelectedVariantShopPayButton.test.tsx create mode 100644 packages/hydrogen/src/components/SelectedVariantUnitPrice/README.md create mode 100644 packages/hydrogen/src/components/SelectedVariantUnitPrice/SelectedVariantUnitPrice.client.tsx create mode 100644 packages/hydrogen/src/components/SelectedVariantUnitPrice/docs/alias.md create mode 100644 packages/hydrogen/src/components/SelectedVariantUnitPrice/docs/component-type.md create mode 100644 packages/hydrogen/src/components/SelectedVariantUnitPrice/docs/related.md create mode 100644 packages/hydrogen/src/components/SelectedVariantUnitPrice/examples/selected-variant-unit-price.example.tsx create mode 100644 packages/hydrogen/src/components/SelectedVariantUnitPrice/index.ts create mode 100644 packages/hydrogen/src/components/SelectedVariantUnitPrice/tests/SelectedVariantUnitPrice.test.tsx create mode 100644 packages/hydrogen/src/components/ShopPayButton/README.md create mode 100644 packages/hydrogen/src/components/ShopPayButton/ShopPayButton.client.tsx create mode 100644 packages/hydrogen/src/components/ShopPayButton/docs/component-type.md create mode 100644 packages/hydrogen/src/components/ShopPayButton/docs/used-by.md create mode 100644 packages/hydrogen/src/components/ShopPayButton/examples/shop-pay-button.example.tsx create mode 100644 packages/hydrogen/src/components/ShopPayButton/index.ts create mode 100644 packages/hydrogen/src/components/UnitPrice/README.md create mode 100644 packages/hydrogen/src/components/UnitPrice/UnitPrice.client.tsx create mode 100644 packages/hydrogen/src/components/UnitPrice/UnitPriceFragment.graphql create mode 100644 packages/hydrogen/src/components/UnitPrice/UnitPriceFragment.ts create mode 100644 packages/hydrogen/src/components/UnitPrice/docs/component-type.md create mode 100644 packages/hydrogen/src/components/UnitPrice/docs/fragment.md create mode 100644 packages/hydrogen/src/components/UnitPrice/docs/related.md create mode 100644 packages/hydrogen/src/components/UnitPrice/examples/unit-price.example.tsx create mode 100644 packages/hydrogen/src/components/UnitPrice/index.ts create mode 100644 packages/hydrogen/src/components/UnitPrice/tests/UnitPrice.test.tsx create mode 100644 packages/hydrogen/src/components/Video/README.md create mode 100644 packages/hydrogen/src/components/Video/Video.tsx create mode 100644 packages/hydrogen/src/components/Video/VideoFragment.graphql create mode 100644 packages/hydrogen/src/components/Video/VideoFragment.ts create mode 100644 packages/hydrogen/src/components/Video/docs/component-type.md create mode 100644 packages/hydrogen/src/components/Video/docs/fragment.md create mode 100644 packages/hydrogen/src/components/Video/docs/related.md create mode 100644 packages/hydrogen/src/components/Video/examples/video.example.tsx create mode 100644 packages/hydrogen/src/components/Video/index.ts create mode 100644 packages/hydrogen/src/components/Video/tests/Video.test.tsx create mode 100644 packages/hydrogen/src/components/index.ts create mode 100644 packages/hydrogen/src/components/types.ts create mode 100644 packages/hydrogen/src/docs/components.md create mode 100644 packages/hydrogen/src/docs/hooks.md create mode 100644 packages/hydrogen/src/docs/hydrogen-sdk.md create mode 100644 packages/hydrogen/src/docs/utilities.md create mode 100644 packages/hydrogen/src/entry-client.tsx create mode 100644 packages/hydrogen/src/entry-server.tsx create mode 100644 packages/hydrogen/src/foundation/Router/DefaultRoutes.tsx create mode 100644 packages/hydrogen/src/foundation/Router/ServerStateRouter.client.tsx create mode 100644 packages/hydrogen/src/foundation/Router/__tests__/DefaultRoutes.spec.tsx create mode 100644 packages/hydrogen/src/foundation/Router/index.ts create mode 100644 packages/hydrogen/src/foundation/ServerStateProvider/ServerStateProvider.client.tsx create mode 100644 packages/hydrogen/src/foundation/ServerStateProvider/index.ts create mode 100644 packages/hydrogen/src/foundation/ShopifyProvider/README.md create mode 100644 packages/hydrogen/src/foundation/ShopifyProvider/ShopifyContext.tsx create mode 100644 packages/hydrogen/src/foundation/ShopifyProvider/ShopifyProvider.tsx create mode 100644 packages/hydrogen/src/foundation/ShopifyProvider/ShopifyServerProvider.server.tsx create mode 100644 packages/hydrogen/src/foundation/ShopifyProvider/docs/component-type.md create mode 100644 packages/hydrogen/src/foundation/ShopifyProvider/examples/shopify-provider.example.tsx create mode 100644 packages/hydrogen/src/foundation/ShopifyProvider/index.ts create mode 100644 packages/hydrogen/src/foundation/ShopifyProvider/tests/ShopifyProvider.test.tsx create mode 100644 packages/hydrogen/src/foundation/ShopifyProvider/tests/fixtures.ts create mode 100644 packages/hydrogen/src/foundation/ShopifyProvider/types.ts create mode 100644 packages/hydrogen/src/foundation/index.tsx create mode 100644 packages/hydrogen/src/foundation/useServerState/README.md create mode 100644 packages/hydrogen/src/foundation/useServerState/examples/use-server-state.example.tsx create mode 100644 packages/hydrogen/src/foundation/useServerState/index.ts create mode 100644 packages/hydrogen/src/foundation/useServerState/use-server-state.tsx create mode 100644 packages/hydrogen/src/foundation/useShop/README.md create mode 100644 packages/hydrogen/src/foundation/useShop/docs/1-return-value.md create mode 100644 packages/hydrogen/src/foundation/useShop/docs/related.md create mode 100644 packages/hydrogen/src/foundation/useShop/examples/use-shop.example.tsx create mode 100644 packages/hydrogen/src/foundation/useShop/index.ts create mode 100644 packages/hydrogen/src/foundation/useShop/use-shop.tsx create mode 100644 packages/hydrogen/src/framework/ClientMarker/ClientMarker.tsx create mode 100644 packages/hydrogen/src/framework/ClientMarker/index.tsx create mode 100644 packages/hydrogen/src/framework/Hydration/Cache.client.ts create mode 100644 packages/hydrogen/src/framework/Hydration/ClientComponents.server.ts create mode 100644 packages/hydrogen/src/framework/Hydration/Html.tsx create mode 100644 packages/hydrogen/src/framework/Hydration/HydrationContext.server.ts create mode 100644 packages/hydrogen/src/framework/Hydration/ServerComponentRequest.server.ts create mode 100644 packages/hydrogen/src/framework/Hydration/ServerComponentResponse.server.ts create mode 100644 packages/hydrogen/src/framework/Hydration/__tests__/Cache.spec.tsx create mode 100644 packages/hydrogen/src/framework/Hydration/__tests__/ServerComponentRequest.spec.ts create mode 100644 packages/hydrogen/src/framework/Hydration/__tests__/fixtures/Counter.js create mode 100644 packages/hydrogen/src/framework/Hydration/__tests__/react-utils.spec.tsx create mode 100644 packages/hydrogen/src/framework/Hydration/__tests__/wire.spec.ts create mode 100644 packages/hydrogen/src/framework/Hydration/react-utils.ts create mode 100644 packages/hydrogen/src/framework/Hydration/wire.server.ts create mode 100644 packages/hydrogen/src/framework/Hydration/writer.server.ts create mode 100644 packages/hydrogen/src/framework/__tests__/cache.test.ts create mode 100644 packages/hydrogen/src/framework/__tests__/tag-client-components.spec.ts create mode 100644 packages/hydrogen/src/framework/__tests__/wrap-client-components.spec.ts create mode 100644 packages/hydrogen/src/framework/cache.ts create mode 100644 packages/hydrogen/src/framework/cache/in-memory.ts create mode 100644 packages/hydrogen/src/framework/docs/cache.md create mode 100644 packages/hydrogen/src/framework/docs/css-support.md create mode 100644 packages/hydrogen/src/framework/docs/index.md create mode 100644 packages/hydrogen/src/framework/docs/pages.md create mode 100644 packages/hydrogen/src/framework/docs/react-server-components.md create mode 100644 packages/hydrogen/src/framework/docs/routes.md create mode 100644 packages/hydrogen/src/framework/docs/secrets.md create mode 100644 packages/hydrogen/src/framework/docs/seo.md create mode 100644 packages/hydrogen/src/framework/docs/server-state.md create mode 100644 packages/hydrogen/src/framework/docs/static-assets.md create mode 100644 packages/hydrogen/src/framework/docs/third-party-dependencies.md create mode 100644 packages/hydrogen/src/framework/graphiql.ts create mode 100644 packages/hydrogen/src/framework/middleware.ts create mode 100644 packages/hydrogen/src/framework/plugin.ts create mode 100644 packages/hydrogen/src/framework/plugins/vite-plugin-hydrogen-config.ts create mode 100644 packages/hydrogen/src/framework/plugins/vite-plugin-hydrogen-middleware.ts create mode 100644 packages/hydrogen/src/framework/plugins/vite-plugin-react-server-components-shim.ts create mode 100644 packages/hydrogen/src/framework/runtime.ts create mode 100644 packages/hydrogen/src/framework/server-components.ts create mode 100644 packages/hydrogen/src/graphql/graphql-constants.ts create mode 100644 packages/hydrogen/src/graphql/schema.json create mode 100644 packages/hydrogen/src/graphql/types/types.ts create mode 100644 packages/hydrogen/src/handle-event.ts create mode 100644 packages/hydrogen/src/handle-worker-event.ts create mode 100644 packages/hydrogen/src/hooks/index.ts create mode 100644 packages/hydrogen/src/hooks/useAvailableCountries/README.md create mode 100644 packages/hydrogen/src/hooks/useAvailableCountries/docs/1-return-value.md create mode 100644 packages/hydrogen/src/hooks/useAvailableCountries/docs/2-related.md create mode 100644 packages/hydrogen/src/hooks/useAvailableCountries/examples/use-available-countries.example.tsx create mode 100644 packages/hydrogen/src/hooks/useAvailableCountries/index.ts create mode 100644 packages/hydrogen/src/hooks/useAvailableCountries/useAvailableCountries.tsx create mode 100644 packages/hydrogen/src/hooks/useCart/README.md create mode 100644 packages/hydrogen/src/hooks/useCart/docs/1-return-value.md create mode 100644 packages/hydrogen/src/hooks/useCart/docs/2-related.md create mode 100644 packages/hydrogen/src/hooks/useCart/examples/use-cart.example.tsx create mode 100644 packages/hydrogen/src/hooks/useCart/index.ts create mode 100644 packages/hydrogen/src/hooks/useCart/useCart.tsx create mode 100644 packages/hydrogen/src/hooks/useCartAttributesUpdateCallback/README.md create mode 100644 packages/hydrogen/src/hooks/useCartAttributesUpdateCallback/docs/1-return-value.md create mode 100644 packages/hydrogen/src/hooks/useCartAttributesUpdateCallback/docs/2-related.md create mode 100644 packages/hydrogen/src/hooks/useCartAttributesUpdateCallback/examples/use-cart-attributes-update-callback.example.tsx create mode 100644 packages/hydrogen/src/hooks/useCartAttributesUpdateCallback/index.ts create mode 100644 packages/hydrogen/src/hooks/useCartAttributesUpdateCallback/useCartAttributesUpdateCallback.tsx create mode 100644 packages/hydrogen/src/hooks/useCartBuyerIdentityUpdateCallback/README.md create mode 100644 packages/hydrogen/src/hooks/useCartBuyerIdentityUpdateCallback/docs/1-return-value.md create mode 100644 packages/hydrogen/src/hooks/useCartBuyerIdentityUpdateCallback/docs/2-related.md create mode 100644 packages/hydrogen/src/hooks/useCartBuyerIdentityUpdateCallback/examples/use-cart-buyer-identity-update-callback.example.tsx create mode 100644 packages/hydrogen/src/hooks/useCartBuyerIdentityUpdateCallback/index.ts create mode 100644 packages/hydrogen/src/hooks/useCartBuyerIdentityUpdateCallback/useCartBuyerIdentityUpdateCallback.tsx create mode 100644 packages/hydrogen/src/hooks/useCartCheckoutUrl/README.md create mode 100644 packages/hydrogen/src/hooks/useCartCheckoutUrl/docs/1-return-value.md create mode 100644 packages/hydrogen/src/hooks/useCartCheckoutUrl/docs/2-related.md create mode 100644 packages/hydrogen/src/hooks/useCartCheckoutUrl/examples/use-cart-checkout-url.example.tsx create mode 100644 packages/hydrogen/src/hooks/useCartCheckoutUrl/index.ts create mode 100644 packages/hydrogen/src/hooks/useCartCheckoutUrl/useCartCheckoutUrl.tsx create mode 100644 packages/hydrogen/src/hooks/useCartCreateCallback/README.md create mode 100644 packages/hydrogen/src/hooks/useCartCreateCallback/docs/1-return-value.md create mode 100644 packages/hydrogen/src/hooks/useCartCreateCallback/docs/2-related.md create mode 100644 packages/hydrogen/src/hooks/useCartCreateCallback/examples/use-cart-create-callback.example.tsx create mode 100644 packages/hydrogen/src/hooks/useCartCreateCallback/index.ts create mode 100644 packages/hydrogen/src/hooks/useCartCreateCallback/useCartCreateCallback.tsx create mode 100644 packages/hydrogen/src/hooks/useCartDiscountCodesUpdateCallback/README.md create mode 100644 packages/hydrogen/src/hooks/useCartDiscountCodesUpdateCallback/docs/1-return-value.md create mode 100644 packages/hydrogen/src/hooks/useCartDiscountCodesUpdateCallback/docs/2-related.md create mode 100644 packages/hydrogen/src/hooks/useCartDiscountCodesUpdateCallback/examples/use-cart-discount-codes-update-callback.example.tsx create mode 100644 packages/hydrogen/src/hooks/useCartDiscountCodesUpdateCallback/index.ts create mode 100644 packages/hydrogen/src/hooks/useCartDiscountCodesUpdateCallback/useCartDiscountCodesUpdateCallback.tsx create mode 100644 packages/hydrogen/src/hooks/useCartLine/README.md create mode 100644 packages/hydrogen/src/hooks/useCartLine/docs/1-return-value.md create mode 100644 packages/hydrogen/src/hooks/useCartLine/docs/2-related.md create mode 100644 packages/hydrogen/src/hooks/useCartLine/examples/use-cart-line.example.tsx create mode 100644 packages/hydrogen/src/hooks/useCartLine/index.ts create mode 100644 packages/hydrogen/src/hooks/useCartLine/useCartLine.tsx create mode 100644 packages/hydrogen/src/hooks/useCartLinesAddCallback/README.md create mode 100644 packages/hydrogen/src/hooks/useCartLinesAddCallback/docs/1-return-value.md create mode 100644 packages/hydrogen/src/hooks/useCartLinesAddCallback/docs/2-related.md create mode 100644 packages/hydrogen/src/hooks/useCartLinesAddCallback/examples/use-cart-lines-add-callback.example.tsx create mode 100644 packages/hydrogen/src/hooks/useCartLinesAddCallback/index.ts create mode 100644 packages/hydrogen/src/hooks/useCartLinesAddCallback/useCartLinesAddCallback.tsx create mode 100644 packages/hydrogen/src/hooks/useCartLinesRemoveCallback/README.md create mode 100644 packages/hydrogen/src/hooks/useCartLinesRemoveCallback/docs/1-return-value.md create mode 100644 packages/hydrogen/src/hooks/useCartLinesRemoveCallback/docs/2-related.md create mode 100644 packages/hydrogen/src/hooks/useCartLinesRemoveCallback/examples/use-cart-lines-remove-callback.example.tsx create mode 100644 packages/hydrogen/src/hooks/useCartLinesRemoveCallback/index.ts create mode 100644 packages/hydrogen/src/hooks/useCartLinesRemoveCallback/useCartLinesRemoveCallback.tsx create mode 100644 packages/hydrogen/src/hooks/useCartLinesTotalQuantity/README.md create mode 100644 packages/hydrogen/src/hooks/useCartLinesTotalQuantity/docs/1-return-value.md create mode 100644 packages/hydrogen/src/hooks/useCartLinesTotalQuantity/docs/2-related.md create mode 100644 packages/hydrogen/src/hooks/useCartLinesTotalQuantity/examples/use-cart-lines-total-quantity.example.tsx create mode 100644 packages/hydrogen/src/hooks/useCartLinesTotalQuantity/index.ts create mode 100644 packages/hydrogen/src/hooks/useCartLinesTotalQuantity/useCartLinesTotalQuantity.tsx create mode 100644 packages/hydrogen/src/hooks/useCartLinesUpdateCallback/README.md create mode 100644 packages/hydrogen/src/hooks/useCartLinesUpdateCallback/docs/1-return-value.md create mode 100644 packages/hydrogen/src/hooks/useCartLinesUpdateCallback/docs/2-related.md create mode 100644 packages/hydrogen/src/hooks/useCartLinesUpdateCallback/examples/use-cart-lines-update-callback.example.tsx create mode 100644 packages/hydrogen/src/hooks/useCartLinesUpdateCallback/index.ts create mode 100644 packages/hydrogen/src/hooks/useCartLinesUpdateCallback/useCartLinesUpdateCallback.tsx create mode 100644 packages/hydrogen/src/hooks/useCartNoteUpdateCallback/README.md create mode 100644 packages/hydrogen/src/hooks/useCartNoteUpdateCallback/docs/1-return-value.md create mode 100644 packages/hydrogen/src/hooks/useCartNoteUpdateCallback/docs/2-related.md create mode 100644 packages/hydrogen/src/hooks/useCartNoteUpdateCallback/examples/use-cart-note-update-callback.example.tsx create mode 100644 packages/hydrogen/src/hooks/useCartNoteUpdateCallback/index.ts create mode 100644 packages/hydrogen/src/hooks/useCartNoteUpdateCallback/useCartNoteUpdateCallback.tsx create mode 100644 packages/hydrogen/src/hooks/useCountry/README.md create mode 100644 packages/hydrogen/src/hooks/useCountry/docs/1-return-value.md create mode 100644 packages/hydrogen/src/hooks/useCountry/docs/2-related.md create mode 100644 packages/hydrogen/src/hooks/useCountry/examples/use-country.example.tsx create mode 100644 packages/hydrogen/src/hooks/useCountry/index.ts create mode 100644 packages/hydrogen/src/hooks/useCountry/useCountry.tsx create mode 100644 packages/hydrogen/src/hooks/useMeasurement/hooks.ts create mode 100644 packages/hydrogen/src/hooks/useMeasurement/index.ts create mode 100644 packages/hydrogen/src/hooks/useMoney/README.md create mode 100644 packages/hydrogen/src/hooks/useMoney/docs/1-return-type.md create mode 100644 packages/hydrogen/src/hooks/useMoney/docs/related.md create mode 100644 packages/hydrogen/src/hooks/useMoney/examples/use-money.example.tsx create mode 100644 packages/hydrogen/src/hooks/useMoney/hooks.tsx create mode 100644 packages/hydrogen/src/hooks/useMoney/index.ts create mode 100644 packages/hydrogen/src/hooks/useMoney/tests/hooks.test.tsx create mode 100644 packages/hydrogen/src/hooks/useParsedMetafields/README.md create mode 100644 packages/hydrogen/src/hooks/useParsedMetafields/docs/1-return-type.md create mode 100644 packages/hydrogen/src/hooks/useParsedMetafields/docs/2-related.md create mode 100644 packages/hydrogen/src/hooks/useParsedMetafields/examples/use-parsed-metafields.example.tsx create mode 100644 packages/hydrogen/src/hooks/useParsedMetafields/index.ts create mode 100644 packages/hydrogen/src/hooks/useParsedMetafields/tests/hooks.test.tsx create mode 100644 packages/hydrogen/src/hooks/useParsedMetafields/useParsedMetafields.ts create mode 100644 packages/hydrogen/src/hooks/useProduct/README.md create mode 100644 packages/hydrogen/src/hooks/useProduct/docs/1-return-value.md create mode 100644 packages/hydrogen/src/hooks/useProduct/docs/2-related.md create mode 100644 packages/hydrogen/src/hooks/useProduct/examples/use-product.example.tsx create mode 100644 packages/hydrogen/src/hooks/useProduct/index.ts create mode 100644 packages/hydrogen/src/hooks/useProduct/useProduct.ts create mode 100644 packages/hydrogen/src/hooks/useProductOptions/README.md create mode 100644 packages/hydrogen/src/hooks/useProductOptions/SellingPlanFragment.graphql create mode 100644 packages/hydrogen/src/hooks/useProductOptions/SellingPlanFragment.ts create mode 100644 packages/hydrogen/src/hooks/useProductOptions/SellingPlanGroupsFragment.graphql create mode 100644 packages/hydrogen/src/hooks/useProductOptions/SellingPlanGroupsFragment.ts create mode 100644 packages/hydrogen/src/hooks/useProductOptions/VariantFragment.graphql create mode 100644 packages/hydrogen/src/hooks/useProductOptions/VariantFragment.ts create mode 100644 packages/hydrogen/src/hooks/useProductOptions/__tests__/fixtures.ts create mode 100644 packages/hydrogen/src/hooks/useProductOptions/__tests__/useProductOptions.spec.tsx create mode 100644 packages/hydrogen/src/hooks/useProductOptions/docs/1-considerations.md create mode 100644 packages/hydrogen/src/hooks/useProductOptions/docs/2-arguments.md create mode 100644 packages/hydrogen/src/hooks/useProductOptions/docs/3-return-value.md create mode 100644 packages/hydrogen/src/hooks/useProductOptions/docs/4-fragment.md create mode 100644 packages/hydrogen/src/hooks/useProductOptions/docs/5-related.md create mode 100644 packages/hydrogen/src/hooks/useProductOptions/examples/use-product-options-iterate-variant-list.example.tsx create mode 100644 packages/hydrogen/src/hooks/useProductOptions/examples/use-product-options-use-selling-plans.example.tsx create mode 100644 packages/hydrogen/src/hooks/useProductOptions/examples/use-product-options.example.tsx create mode 100644 packages/hydrogen/src/hooks/useProductOptions/helpers.ts create mode 100644 packages/hydrogen/src/hooks/useProductOptions/index.ts create mode 100644 packages/hydrogen/src/hooks/useProductOptions/types.ts create mode 100644 packages/hydrogen/src/hooks/useProductOptions/useProductOptions.ts create mode 100644 packages/hydrogen/src/hooks/useQuery/QueryProvider.tsx create mode 100644 packages/hydrogen/src/hooks/useQuery/docs/1-arguments.md create mode 100644 packages/hydrogen/src/hooks/useQuery/docs/related.md create mode 100644 packages/hydrogen/src/hooks/useQuery/examples/use-query.example.tsx create mode 100644 packages/hydrogen/src/hooks/useQuery/hooks.ts create mode 100644 packages/hydrogen/src/hooks/useQuery/index.ts create mode 100644 packages/hydrogen/src/hooks/useServerState/README.md create mode 100644 packages/hydrogen/src/hooks/useShop/README.md create mode 100644 packages/hydrogen/src/hooks/useShopQuery/README.md create mode 100644 packages/hydrogen/src/hooks/useShopQuery/docs/1-arguments.md create mode 100644 packages/hydrogen/src/hooks/useShopQuery/docs/2-return-value.md create mode 100644 packages/hydrogen/src/hooks/useShopQuery/docs/related.md create mode 100644 packages/hydrogen/src/hooks/useShopQuery/examples/use-shop-query.example.tsx create mode 100644 packages/hydrogen/src/hooks/useShopQuery/hooks.ts create mode 100644 packages/hydrogen/src/hooks/useShopQuery/index.ts create mode 100644 packages/hydrogen/src/index.ts create mode 100644 packages/hydrogen/src/types.ts create mode 100644 packages/hydrogen/src/utilities/connections.ts create mode 100644 packages/hydrogen/src/utilities/fetch.ts create mode 100644 packages/hydrogen/src/utilities/flattenConnection/README.md create mode 100644 packages/hydrogen/src/utilities/image_size.ts create mode 100644 packages/hydrogen/src/utilities/index.ts create mode 100644 packages/hydrogen/src/utilities/isClient/README.md create mode 100644 packages/hydrogen/src/utilities/isClient/docs/related.md create mode 100644 packages/hydrogen/src/utilities/isClient/examples/isClient.example.tsx create mode 100644 packages/hydrogen/src/utilities/isClient/index.ts create mode 100644 packages/hydrogen/src/utilities/isClient/isClient.ts create mode 100644 packages/hydrogen/src/utilities/isServer/README.md create mode 100644 packages/hydrogen/src/utilities/isServer/docs/related.md create mode 100644 packages/hydrogen/src/utilities/isServer/examples/isServer.example.tsx create mode 100644 packages/hydrogen/src/utilities/isServer/index.ts create mode 100644 packages/hydrogen/src/utilities/isServer/isServer.ts create mode 100644 packages/hydrogen/src/utilities/meaurement.ts create mode 100644 packages/hydrogen/src/utilities/metafields/index.ts create mode 100644 packages/hydrogen/src/utilities/metafields/parseMetafieldValue.ts create mode 100644 packages/hydrogen/src/utilities/script_loader.ts create mode 100644 packages/hydrogen/src/utilities/suspense.ts create mode 100644 packages/hydrogen/src/utilities/tests/createMountableHook.tsx create mode 100644 packages/hydrogen/src/utilities/tests/media.ts create mode 100644 packages/hydrogen/src/utilities/tests/metafields.ts create mode 100644 packages/hydrogen/src/utilities/tests/price.ts create mode 100644 packages/hydrogen/src/utilities/tests/product.ts create mode 100644 packages/hydrogen/src/utilities/tests/shopify_provider.tsx create mode 100644 packages/hydrogen/src/utilities/tests/unitPriceMeasurement.ts create mode 100644 packages/hydrogen/src/utilities/video_parameters.ts create mode 100644 packages/hydrogen/src/version.ts create mode 100644 packages/hydrogen/tailwind.config.js create mode 100644 packages/hydrogen/tsconfig.build.json create mode 100644 packages/hydrogen/tsconfig.cjs.json create mode 100644 packages/hydrogen/tsconfig.json create mode 100644 packages/hydrogen/tsconfig.worker.json create mode 100644 packages/hydrogen/worker.js create mode 100644 packages/playground/package.json create mode 100644 packages/playground/server-components-worker/__tests__/serve.js create mode 100644 packages/playground/server-components-worker/__tests__/server-components-worker.spec.ts create mode 100644 packages/playground/server-components-worker/index.html create mode 100644 packages/playground/server-components-worker/package.json create mode 100644 packages/playground/server-components-worker/shopify.config.js create mode 100644 packages/playground/server-components-worker/src/App.server.jsx create mode 100644 packages/playground/server-components-worker/src/components/Counter.client.jsx create mode 100644 packages/playground/server-components-worker/src/components/Link.client.jsx create mode 100644 packages/playground/server-components-worker/src/entry-client.jsx create mode 100644 packages/playground/server-components-worker/src/entry-server.jsx create mode 100644 packages/playground/server-components-worker/src/favicon.svg create mode 100644 packages/playground/server-components-worker/src/pages/about.server.jsx create mode 100644 packages/playground/server-components-worker/src/pages/index.server.jsx create mode 100644 packages/playground/server-components-worker/start-worker.js create mode 100644 packages/playground/server-components-worker/vite.config.js create mode 100644 packages/playground/server-components-worker/worker.js create mode 100644 packages/playground/server-components/__tests__/server-components.spec.ts create mode 100644 packages/playground/server-components/index.html create mode 100644 packages/playground/server-components/package.json create mode 100644 packages/playground/server-components/shopify.config.js create mode 100644 packages/playground/server-components/src/App.server.jsx create mode 100644 packages/playground/server-components/src/components/Counter.client.jsx create mode 100644 packages/playground/server-components/src/components/Link.client.jsx create mode 100644 packages/playground/server-components/src/entry-client.jsx create mode 100644 packages/playground/server-components/src/entry-server.jsx create mode 100644 packages/playground/server-components/src/pages/about.server.jsx create mode 100644 packages/playground/server-components/src/pages/index.server.jsx create mode 100644 packages/playground/server-components/vite.config.js create mode 100644 packages/playground/testEnv.d.ts create mode 100644 packages/playground/tsconfig.json create mode 100644 scripts/generate-docs.ts create mode 100644 scripts/jest-e2e-env.js create mode 100644 scripts/jest-e2e-setup-test.ts create mode 100644 scripts/jest-e2e-setup.js create mode 100644 scripts/jest-e2e-teardown.js create mode 100644 scripts/polyfillWebRuntime.ts create mode 100644 scripts/update-changelogs-on-version.js create mode 100644 scripts/update-docs-on-version.ts create mode 100644 scripts/verify-commit.js create mode 100644 shipit.yml create mode 100644 tsconfig.json create mode 100644 yarn.lock diff --git a/.alexignore b/.alexignore new file mode 100644 index 0000000..ef88c0d --- /dev/null +++ b/.alexignore @@ -0,0 +1,4 @@ +docs/code_of_conduct.md +packages/hydrogen/src/docs/hooks.md +packages/hydrogen/src/docs/components.md +packages/hydrogen/src/docs/hydrogen-sdk.md diff --git a/.alexrc.js b/.alexrc.js new file mode 100644 index 0000000..0a87926 --- /dev/null +++ b/.alexrc.js @@ -0,0 +1,19 @@ +module.exports = { + allow: [ + 'hook', + 'hooks', + 'execute', + 'invalid', + 'failure', + 'cracks', + 'knives', + 'simple', + 'obvious', + 'just', + 'easy', + 'period', + 'of-course', + 'special', + 'dive', + ], +}; diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100644 index 0000000..bb03a8b --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,121 @@ +// @ts-check +const {defineConfig} = require('eslint-define-config'); + +module.exports = defineConfig({ + root: true, + plugins: ['eslint-plugin-tsdoc'], + extends: [ + 'plugin:node/recommended', + 'plugin:react/recommended', + 'plugin:react-hooks/recommended', + ], + settings: { + react: { + version: 'detect', + }, + }, + parser: '@typescript-eslint/parser', + parserOptions: { + sourceType: 'module', + ecmaVersion: 2020, + }, + rules: { + 'tsdoc/syntax': 'warn', + 'no-debugger': ['error'], + 'node/no-missing-import': [ + 'error', + { + allowModules: ['types', 'testUtils', '@shopify/hydrogen'], + tryExtensions: ['.ts', '.js', '.jsx', '.tsx', '.d.ts'], + }, + ], + 'node/no-missing-require': [ + 'error', + { + tryExtensions: ['.ts', '.js', '.jsx', '.tsx', '.d.ts'], + }, + ], + 'node/no-extraneous-import': [ + 'error', + { + allowModules: [ + '@shopify/hydrogen', + '@testing-library/react', + '@testing-library/user-event', + '@shopify/react-testing', + ], + }, + ], + 'node/no-extraneous-require': [ + 'error', + { + allowModules: ['@shopify/hydrogen'], + }, + ], + 'node/no-deprecated-api': 'off', + 'node/no-unpublished-import': 'off', + 'node/no-unpublished-require': 'off', + 'node/no-unsupported-features/es-syntax': 'off', + 'node/no-unsupported-features/es-builtins': [ + 'error', + // We need to manually specify a min-version since we can't use `engine` + { + version: '>=14.0.0', + ignores: [], + }, + ], + 'node/no-unsupported-features/node-builtins': [ + 'error', + // We need to manually specify a min-version since we can't use `engine` + { + version: '>=14.0.0', + ignores: [], + }, + ], + 'no-process-exit': 'off', + 'prefer-const': [ + 'warn', + { + destructuring: 'all', + }, + ], + 'react/prop-types': 'off', + }, + overrides: [ + { + files: ['packages/playground/**'], + rules: { + 'node/no-extraneous-import': 'off', + 'node/no-extraneous-require': 'off', + }, + }, + { + files: ['packages/create-hydrogen-app/template-*/**'], + rules: { + 'node/no-missing-import': 'off', + }, + }, + { + files: [ + 'packages/dev/**', + 'packages/localdev/**', + 'packages/playground/**', + ], + rules: { + 'react/react-in-jsx-scope': 'off', + 'react/prop-types': 'off', + }, + }, + { + files: ['**/*.example.*'], + rules: { + 'react/react-in-jsx-scope': 'off', + 'react-hooks/exhaustive-deps': 'off', + 'react/jsx-key': 'off', + 'react-hooks/rules-of-hooks': 'off', + 'node/no-extraneous-import': 'off', + 'node/no-missing-import': 'off', + }, + }, + ], +}); diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 0000000..d535723 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,31 @@ +--- +name: Bug report +about: Report a reproducible bug to help us improve +title: '[BUG]' +labels: bug +assignees: '' +--- + +**Describe the bug** +A clear and concise description of what the bug is. + +**To Reproduce** +Steps to reproduce the behaviour: + +1. Go to '...' +2. Click on '....' +3. Scroll down to '....' +4. See error '....' + +**Expected behaviour** +A clear and concise description of what you expected to happen. + +**Screenshots** +If applicable, add screenshots to help explain your problem. + +**Additional context** +Add any other context about the problem here. eg. + +- Hydrogen version +- Node version +- Device details diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 0000000..186cd32 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,11 @@ +blank_issues_enabled: true +contact_links: + - name: Ideas + Feature requests + url: https://github.com/Shopify/hydrogen/discussions/categories/ideas-feature-requests + about: Upvote existing ideas + feature requests, or start a new discussion with yours. + - name: Help + url: https://github.com/Shopify/hydrogen/discussions/categories/help + about: See if your question was already answered, or start a new discussion. + - name: Feedback + url: https://github.com/Shopify/hydrogen/discussions/categories/feedback + about: We <3 feedback. diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 0000000..1f257dd --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,18 @@ + + +### Description + + + +### Additional context + + + +--- + +### Before submitting the PR, please make sure you do the following: + +- [ ] Add your change under the `Unreleased` heading in the package's `CHANGELOG.md` +- [ ] Read the [Contributing Guidelines](https://github.com/shopify/hydrogen/blob/main/docs/contributing.md) +- [ ] Provide a description in this PR that addresses **what** the PR is solving, or reference the issue that it solves (e.g. `fixes #123`) +- [ ] (Shopifolk only) Open a PR in the Shopify Dev Docs with updates to the Hydrogen documentation, if needed diff --git a/.github/commit-convention.md b/.github/commit-convention.md new file mode 100644 index 0000000..225733d --- /dev/null +++ b/.github/commit-convention.md @@ -0,0 +1,92 @@ +## Git Commit Message Convention + +> This is adapted from [Angular's commit convention](https://github.com/conventional-changelog/conventional-changelog/tree/master/packages/conventional-changelog-angular). + +#### TL;DR: + +Messages must be matched by the following regex: + + +```js +/^(revert: )?(feat|fix|docs|dx|refactor|perf|test|workflow|build|ci|chore|types|wip|release|deps)(\(.+\))?: .{1,50}/ +``` + +#### Examples + +Appears under "Features" header, `dev` subheader: + +``` +feat(dev): add 'comments' option +``` + +Appears under "Bug Fixes" header, `dev` subheader, with a link to issue #28: + +``` +fix(dev): fix dev error + +close #28 +``` + +Appears under "Performance Improvements" header, and under "Breaking Changes" with the breaking change explanation: + +``` +perf(build): remove 'foo' option + +BREAKING CHANGE: The 'foo' option has been removed. +``` + +The following commit and commit `667ecc1` do not appear in the changelog if they are under the same release. If not, the revert commit appears under the "Reverts" header. + +``` +revert: feat(compiler): add 'comments' option + +This reverts commit 667ecc1654a317a13331b17617d973392f415f02. +``` + +### Full Message Format + +A commit message consists of a **header**, **body** and **footer**. The header has a **type**, **scope** and **subject**: + +``` +(): + + + +