gitextract_2gpo66g9/ ├── .github/ │ ├── ISSUE_TEMPLATE/ │ │ ├── config.yml │ │ └── template-or-example-issue.md │ ├── dependabot.yaml │ └── workflows/ │ ├── cla.yml │ ├── javascript.yml │ ├── rust.yml │ └── typescript.yml ├── .gitignore ├── .graphqlrc.cjs ├── CODE_OF_CONDUCT.md ├── Cargo.toml ├── LICENSE.md ├── README.md ├── checkout/ │ ├── javascript/ │ │ ├── cart-checkout-validation/ │ │ │ └── default/ │ │ │ ├── .gitignore │ │ │ ├── locales/ │ │ │ │ └── en.default.json.liquid │ │ │ ├── package.json.liquid │ │ │ ├── schema.graphql │ │ │ ├── shopify.extension.toml.liquid │ │ │ ├── src/ │ │ │ │ ├── index.liquid │ │ │ │ ├── run.graphql.liquid │ │ │ │ ├── run.liquid │ │ │ │ └── run.test.liquid │ │ │ └── vite.config.js │ │ ├── cart-transform/ │ │ │ └── default/ │ │ │ ├── .gitignore │ │ │ ├── locales/ │ │ │ │ └── en.default.json.liquid │ │ │ ├── package.json.liquid │ │ │ ├── schema.graphql │ │ │ ├── shopify.extension.toml.liquid │ │ │ ├── src/ │ │ │ │ ├── index.liquid │ │ │ │ ├── run.graphql.liquid │ │ │ │ ├── run.liquid │ │ │ │ └── run.test.liquid │ │ │ └── vite.config.js │ │ ├── delivery-customization/ │ │ │ └── default/ │ │ │ ├── .gitignore │ │ │ ├── locales/ │ │ │ │ └── en.default.json.liquid │ │ │ ├── package.json.liquid │ │ │ ├── schema.graphql │ │ │ ├── shopify.extension.toml.liquid │ │ │ ├── src/ │ │ │ │ ├── index.liquid │ │ │ │ ├── run.graphql.liquid │ │ │ │ ├── run.liquid │ │ │ │ └── run.test.liquid │ │ │ └── vite.config.js │ │ └── payment-customization/ │ │ └── default/ │ │ ├── .gitignore │ │ ├── locales/ │ │ │ └── en.default.json.liquid │ │ ├── package.json.liquid │ │ ├── schema.graphql │ │ ├── shopify.extension.toml.liquid │ │ ├── src/ │ │ │ ├── index.liquid │ │ │ ├── run.graphql.liquid │ │ │ ├── run.liquid │ │ │ └── run.test.liquid │ │ └── vite.config.js │ ├── rust/ │ │ ├── cart-checkout-validation/ │ │ │ └── default/ │ │ │ ├── .gitignore │ │ │ ├── Cargo.toml.liquid │ │ │ ├── locales/ │ │ │ │ └── en.default.json.liquid │ │ │ ├── schema.graphql │ │ │ ├── shopify.extension.toml.liquid │ │ │ └── src/ │ │ │ ├── main.rs │ │ │ ├── run.graphql.liquid │ │ │ └── run.rs │ │ ├── cart-transform/ │ │ │ ├── bundles/ │ │ │ │ ├── .gitignore │ │ │ │ ├── Cargo.toml.liquid │ │ │ │ ├── locales/ │ │ │ │ │ └── en.default.json.liquid │ │ │ │ ├── schema.graphql │ │ │ │ ├── shopify.extension.toml.liquid │ │ │ │ └── src/ │ │ │ │ ├── main.rs │ │ │ │ ├── run.graphql.liquid │ │ │ │ └── run.rs │ │ │ └── default/ │ │ │ ├── .gitignore │ │ │ ├── Cargo.toml.liquid │ │ │ ├── locales/ │ │ │ │ └── en.default.json.liquid │ │ │ ├── schema.graphql │ │ │ ├── shopify.extension.toml.liquid │ │ │ └── src/ │ │ │ ├── main.rs │ │ │ ├── run.graphql.liquid │ │ │ └── run.rs │ │ ├── delivery-customization/ │ │ │ └── default/ │ │ │ ├── .gitignore │ │ │ ├── Cargo.toml.liquid │ │ │ ├── locales/ │ │ │ │ └── en.default.json.liquid │ │ │ ├── schema.graphql │ │ │ ├── shopify.extension.toml.liquid │ │ │ └── src/ │ │ │ ├── main.rs │ │ │ ├── run.graphql.liquid │ │ │ └── run.rs │ │ └── payment-customization/ │ │ └── default/ │ │ ├── .gitignore │ │ ├── Cargo.toml.liquid │ │ ├── locales/ │ │ │ └── en.default.json.liquid │ │ ├── schema.graphql │ │ ├── shopify.extension.toml.liquid │ │ └── src/ │ │ ├── main.rs │ │ ├── run.graphql.liquid │ │ └── run.rs │ └── wasm/ │ ├── cart-checkout-validation/ │ │ └── default/ │ │ ├── locales/ │ │ │ └── en.default.json.liquid │ │ ├── run.graphql.liquid │ │ ├── schema.graphql │ │ └── shopify.extension.toml.liquid │ ├── cart-transform/ │ │ └── default/ │ │ ├── locales/ │ │ │ └── en.default.json.liquid │ │ ├── run.graphql.liquid │ │ ├── schema.graphql │ │ └── shopify.extension.toml.liquid │ ├── delivery-customization/ │ │ └── default/ │ │ ├── locales/ │ │ │ └── en.default.json.liquid │ │ ├── run.graphql.liquid │ │ ├── schema.graphql │ │ └── shopify.extension.toml.liquid │ └── payment-customization/ │ └── default/ │ ├── locales/ │ │ └── en.default.json.liquid │ ├── run.graphql.liquid │ ├── schema.graphql │ └── shopify.extension.toml.liquid ├── discounts/ │ ├── javascript/ │ │ ├── discount/ │ │ │ └── default/ │ │ │ ├── locales/ │ │ │ │ └── en.default.json.liquid │ │ │ ├── package.json.liquid │ │ │ ├── schema.graphql │ │ │ ├── shopify.extension.toml.liquid │ │ │ ├── src/ │ │ │ │ ├── cart_delivery_options_discounts_generate_run.graphql.liquid │ │ │ │ ├── cart_delivery_options_discounts_generate_run.liquid │ │ │ │ ├── cart_delivery_options_discounts_generate_run.test.liquid │ │ │ │ ├── cart_lines_discounts_generate_run.graphql.liquid │ │ │ │ ├── cart_lines_discounts_generate_run.liquid │ │ │ │ ├── cart_lines_discounts_generate_run.test.liquid │ │ │ │ └── index.liquid │ │ │ └── vite.config.js │ │ ├── discounts-allocator/ │ │ │ └── default/ │ │ │ ├── .gitignore │ │ │ ├── locales/ │ │ │ │ └── en.default.json.liquid │ │ │ ├── package.json.liquid │ │ │ ├── schema.graphql │ │ │ ├── shopify.extension.toml.liquid │ │ │ ├── src/ │ │ │ │ ├── index.liquid │ │ │ │ ├── run.graphql.liquid │ │ │ │ ├── run.liquid │ │ │ │ └── run.test.liquid │ │ │ └── vite.config.js │ │ ├── order-discounts/ │ │ │ └── default/ │ │ │ ├── .gitignore │ │ │ ├── locales/ │ │ │ │ └── en.default.json.liquid │ │ │ ├── package.json.liquid │ │ │ ├── schema.graphql │ │ │ ├── shopify.extension.toml.liquid │ │ │ ├── src/ │ │ │ │ ├── index.liquid │ │ │ │ ├── run.graphql.liquid │ │ │ │ ├── run.liquid │ │ │ │ └── run.test.liquid │ │ │ └── vite.config.js │ │ ├── product-discounts/ │ │ │ └── default/ │ │ │ ├── .gitignore │ │ │ ├── locales/ │ │ │ │ └── en.default.json.liquid │ │ │ ├── package.json.liquid │ │ │ ├── schema.graphql │ │ │ ├── shopify.extension.toml.liquid │ │ │ ├── src/ │ │ │ │ ├── index.liquid │ │ │ │ ├── run.graphql.liquid │ │ │ │ ├── run.liquid │ │ │ │ └── run.test.liquid │ │ │ └── vite.config.js │ │ └── shipping-discounts/ │ │ └── default/ │ │ ├── .gitignore │ │ ├── locales/ │ │ │ └── en.default.json.liquid │ │ ├── package.json.liquid │ │ ├── schema.graphql │ │ ├── shopify.extension.toml.liquid │ │ ├── src/ │ │ │ ├── index.liquid │ │ │ ├── run.graphql.liquid │ │ │ ├── run.liquid │ │ │ └── run.test.liquid │ │ └── vite.config.js │ ├── rust/ │ │ ├── discount/ │ │ │ └── default/ │ │ │ ├── .gitignore │ │ │ ├── Cargo.toml.liquid │ │ │ ├── README.md │ │ │ ├── locales/ │ │ │ │ └── en.default.json.liquid │ │ │ ├── schema.graphql │ │ │ ├── shopify.extension.toml.liquid │ │ │ └── src/ │ │ │ ├── cart_delivery_options_discounts_generate_run.graphql.liquid │ │ │ ├── cart_delivery_options_discounts_generate_run.rs │ │ │ ├── cart_lines_discounts_generate_run.graphql.liquid │ │ │ ├── cart_lines_discounts_generate_run.rs │ │ │ └── main.rs │ │ ├── discounts-allocator/ │ │ │ └── default/ │ │ │ ├── .gitignore │ │ │ ├── Cargo.toml.liquid │ │ │ ├── README.md │ │ │ ├── locales/ │ │ │ │ └── en.default.json.liquid │ │ │ ├── schema.graphql │ │ │ ├── shopify.extension.toml.liquid │ │ │ └── src/ │ │ │ ├── main.rs │ │ │ ├── run.graphql.liquid │ │ │ └── run.rs │ │ ├── order-discounts/ │ │ │ └── default/ │ │ │ ├── .gitignore │ │ │ ├── Cargo.toml.liquid │ │ │ ├── README.md │ │ │ ├── locales/ │ │ │ │ └── en.default.json.liquid │ │ │ ├── schema.graphql │ │ │ ├── shopify.extension.toml.liquid │ │ │ └── src/ │ │ │ ├── main.rs │ │ │ ├── run.graphql.liquid │ │ │ └── run.rs │ │ ├── product-discounts/ │ │ │ └── default/ │ │ │ ├── .gitignore │ │ │ ├── Cargo.toml.liquid │ │ │ ├── README.md │ │ │ ├── locales/ │ │ │ │ └── en.default.json.liquid │ │ │ ├── schema.graphql │ │ │ ├── shopify.extension.toml.liquid │ │ │ └── src/ │ │ │ ├── main.rs │ │ │ ├── run.graphql.liquid │ │ │ └── run.rs │ │ └── shipping-discounts/ │ │ └── default/ │ │ ├── .gitignore │ │ ├── Cargo.toml.liquid │ │ ├── README.md │ │ ├── locales/ │ │ │ └── en.default.json.liquid │ │ ├── schema.graphql │ │ ├── shopify.extension.toml.liquid │ │ └── src/ │ │ ├── main.rs │ │ ├── run.graphql.liquid │ │ └── run.rs │ └── wasm/ │ ├── discount/ │ │ └── default/ │ │ ├── cart_delivery_options_generate_run.graphql.liquid │ │ ├── cart_lines_discounts_generate_run.graphql.liquid │ │ ├── locales/ │ │ │ └── en.default.json.liquid │ │ ├── schema.graphql │ │ └── shopify.extension.toml.liquid │ ├── discounts-allocator/ │ │ └── default/ │ │ ├── locales/ │ │ │ └── en.default.json.liquid │ │ ├── schema.graphql │ │ ├── shopify.extension.toml.liquid │ │ └── src/ │ │ └── run.graphql.liquid │ ├── order-discounts/ │ │ └── default/ │ │ ├── locales/ │ │ │ └── en.default.json.liquid │ │ ├── run.graphql.liquid │ │ ├── schema.graphql │ │ └── shopify.extension.toml.liquid │ ├── product-discounts/ │ │ └── default/ │ │ ├── locales/ │ │ │ └── en.default.json.liquid │ │ ├── run.graphql.liquid │ │ ├── schema.graphql │ │ └── shopify.extension.toml.liquid │ └── shipping-discounts/ │ └── default/ │ ├── locales/ │ │ └── en.default.json.liquid │ ├── run.graphql.liquid │ ├── schema.graphql │ └── shopify.extension.toml.liquid ├── order-routing/ │ ├── javascript/ │ │ ├── fulfillment-constraints/ │ │ │ └── default/ │ │ │ ├── .gitignore │ │ │ ├── locales/ │ │ │ │ └── en.default.json.liquid │ │ │ ├── package.json.liquid │ │ │ ├── schema.graphql │ │ │ ├── shopify.extension.toml.liquid │ │ │ ├── src/ │ │ │ │ ├── index.liquid │ │ │ │ ├── run.graphql.liquid │ │ │ │ ├── run.liquid │ │ │ │ └── run.test.liquid │ │ │ └── vite.config.js │ │ ├── local-pickup-delivery-option-generators/ │ │ │ └── default/ │ │ │ ├── .gitignore │ │ │ ├── locales/ │ │ │ │ └── en.default.json.liquid │ │ │ ├── package.json.liquid │ │ │ ├── schema.graphql │ │ │ ├── shopify.extension.toml.liquid │ │ │ ├── src/ │ │ │ │ ├── index.liquid │ │ │ │ ├── run.graphql.liquid │ │ │ │ ├── run.liquid │ │ │ │ └── run.test.liquid │ │ │ └── vite.config.js │ │ ├── location-rules/ │ │ │ └── default/ │ │ │ ├── .gitignore │ │ │ ├── locales/ │ │ │ │ └── en.default.json.liquid │ │ │ ├── package.json.liquid │ │ │ ├── schema.graphql │ │ │ ├── shopify.extension.toml.liquid │ │ │ ├── src/ │ │ │ │ ├── index.liquid │ │ │ │ ├── run.graphql.liquid │ │ │ │ ├── run.liquid │ │ │ │ └── run.test.liquid │ │ │ └── vite.config.js │ │ └── pickup-point-delivery-option-generators/ │ │ └── default/ │ │ ├── .gitignore │ │ ├── README.md │ │ ├── locales/ │ │ │ └── en.default.json.liquid │ │ ├── package.json.liquid │ │ ├── schema.graphql │ │ ├── shopify.extension.toml.liquid │ │ ├── src/ │ │ │ ├── fetch.liquid │ │ │ ├── fetch.test.liquid │ │ │ ├── index.liquid │ │ │ ├── run.liquid │ │ │ └── run.test.liquid │ │ └── vite.config.js │ ├── rust/ │ │ ├── fulfillment-constraints/ │ │ │ └── default/ │ │ │ ├── .gitignore │ │ │ ├── Cargo.toml.liquid │ │ │ ├── locales/ │ │ │ │ └── en.default.json.liquid │ │ │ ├── schema.graphql │ │ │ ├── shopify.extension.toml.liquid │ │ │ └── src/ │ │ │ ├── main.rs │ │ │ ├── run.graphql.liquid │ │ │ └── run.rs │ │ ├── local-pickup-delivery-option-generators/ │ │ │ └── default/ │ │ │ ├── .gitignore │ │ │ ├── Cargo.toml.liquid │ │ │ ├── locales/ │ │ │ │ └── en.default.json.liquid │ │ │ ├── metadata.json │ │ │ ├── schema.graphql │ │ │ ├── shopify.extension.toml.liquid │ │ │ └── src/ │ │ │ ├── main.rs │ │ │ ├── run.graphql.liquid │ │ │ └── run.rs │ │ ├── location-rules/ │ │ │ └── default/ │ │ │ ├── .gitignore │ │ │ ├── Cargo.toml.liquid │ │ │ ├── locales/ │ │ │ │ └── en.default.json.liquid │ │ │ ├── schema.graphql │ │ │ ├── shopify.extension.toml.liquid │ │ │ └── src/ │ │ │ ├── main.rs │ │ │ ├── run.graphql.liquid │ │ │ └── run.rs │ │ └── pickup-point-delivery-option-generators/ │ │ └── default/ │ │ ├── .gitignore │ │ ├── Cargo.toml.liquid │ │ ├── README.md │ │ ├── locales/ │ │ │ └── en.default.json.liquid │ │ ├── schema.graphql │ │ ├── shopify.extension.toml.liquid │ │ └── src/ │ │ ├── fetch.rs │ │ ├── main.rs │ │ └── run.rs │ ├── typescript/ │ │ └── pickup-point-delivery-option-generators/ │ │ └── default/ │ │ ├── .gitignore │ │ ├── README.md │ │ ├── locales/ │ │ │ └── en.default.json.liquid │ │ ├── package.json.liquid │ │ ├── schema.graphql │ │ ├── shopify.extension.toml.liquid │ │ └── vite.config.js │ └── wasm/ │ ├── fulfillment-constraints/ │ │ └── default/ │ │ ├── locales/ │ │ │ └── en.default.json.liquid │ │ ├── run.graphql.liquid │ │ ├── schema.graphql │ │ └── shopify.extension.toml.liquid │ ├── local-pickup-delivery-option-generators/ │ │ └── default/ │ │ ├── locales/ │ │ │ └── en.default.json.liquid │ │ ├── schema.graphql │ │ ├── shopify.extension.toml.liquid │ │ └── src/ │ │ └── run.graphql.liquid │ ├── location-rules/ │ │ └── default/ │ │ ├── locales/ │ │ │ └── en.default.json.liquid │ │ ├── run.graphql.liquid │ │ ├── schema.graphql │ │ └── shopify.extension.toml.liquid │ └── pickup-point-delivery-option-generators/ │ └── default/ │ ├── fetch.graphql.liquid │ ├── locales/ │ │ └── en.default.json.liquid │ ├── run.graphql.liquid │ ├── schema.graphql │ └── shopify.extension.toml.liquid ├── package.json ├── sample-apps/ │ ├── bundles-cart-transform/ │ │ ├── .dockerignore │ │ ├── .gitattributes │ │ ├── .gitignore │ │ ├── .npmrc │ │ ├── .ruby-version │ │ ├── .vscode/ │ │ │ └── extensions.json │ │ ├── Dockerfile │ │ ├── GETTING_STARTED.md │ │ ├── README.md │ │ ├── entrypoint.sh │ │ ├── extensions/ │ │ │ ├── cart-expand-js/ │ │ │ │ ├── .gitignore │ │ │ │ ├── input.graphql │ │ │ │ ├── package.json │ │ │ │ ├── schema.graphql │ │ │ │ ├── shopify.extension.toml │ │ │ │ └── src/ │ │ │ │ ├── index.js │ │ │ │ └── index.test.js │ │ │ └── cart-merge-expand_rust/ │ │ │ ├── Cargo.toml │ │ │ ├── input.json │ │ │ ├── schema.graphql │ │ │ ├── shopify.extension.toml │ │ │ └── src/ │ │ │ ├── main.rs │ │ │ ├── run.graphql │ │ │ └── run.rs │ │ ├── package.json │ │ ├── resources/ │ │ │ └── component_parents_schema.json │ │ ├── shopify.app.toml │ │ └── web/ │ │ ├── .gitignore │ │ ├── Gemfile │ │ ├── Rakefile │ │ ├── app/ │ │ │ ├── assets/ │ │ │ │ ├── config/ │ │ │ │ │ └── manifest.js │ │ │ │ ├── images/ │ │ │ │ │ └── .keep │ │ │ │ └── stylesheets/ │ │ │ │ └── application.css │ │ │ ├── channels/ │ │ │ │ └── application_cable/ │ │ │ │ ├── channel.rb │ │ │ │ └── connection.rb │ │ │ ├── controllers/ │ │ │ │ ├── application_controller.rb │ │ │ │ ├── authenticated_controller.rb │ │ │ │ ├── concerns/ │ │ │ │ │ └── .keep │ │ │ │ ├── home_controller.rb │ │ │ │ └── products_controller.rb │ │ │ ├── helpers/ │ │ │ │ └── application_helper.rb │ │ │ ├── javascript/ │ │ │ │ ├── application.js │ │ │ │ └── lib/ │ │ │ │ ├── flash_messages.js │ │ │ │ └── shopify_app.js │ │ │ ├── jobs/ │ │ │ │ ├── app_uninstalled_job.rb │ │ │ │ ├── application_job.rb │ │ │ │ ├── customers_data_request_job.rb │ │ │ │ ├── customers_redact_job.rb │ │ │ │ ├── shop_redact_job.rb │ │ │ │ └── shopify/ │ │ │ │ └── after_authenticate_job.rb │ │ │ ├── mailers/ │ │ │ │ └── application_mailer.rb │ │ │ ├── models/ │ │ │ │ ├── application_record.rb │ │ │ │ ├── build_commands.rb │ │ │ │ ├── concerns/ │ │ │ │ │ └── .keep │ │ │ │ └── shop.rb │ │ │ ├── services/ │ │ │ │ ├── application_service.rb │ │ │ │ └── product_creator.rb │ │ │ └── views/ │ │ │ └── layouts/ │ │ │ ├── _flash_messages.html.erb │ │ │ ├── application.html.erb │ │ │ ├── embedded_app.html.erb │ │ │ ├── mailer.html.erb │ │ │ └── mailer.text.erb │ │ ├── bin/ │ │ │ ├── bundle │ │ │ ├── importmap │ │ │ ├── rails │ │ │ ├── rake │ │ │ └── setup │ │ ├── config/ │ │ │ ├── application.rb │ │ │ ├── boot.rb │ │ │ ├── cable.yml │ │ │ ├── database.yml │ │ │ ├── environment.rb │ │ │ ├── environments/ │ │ │ │ ├── development.rb │ │ │ │ ├── production.rb │ │ │ │ └── test.rb │ │ │ ├── importmap.rb │ │ │ ├── initializers/ │ │ │ │ ├── assets.rb │ │ │ │ ├── content_security_policy.rb │ │ │ │ ├── filter_parameter_logging.rb │ │ │ │ ├── inflections.rb │ │ │ │ ├── permissions_policy.rb │ │ │ │ ├── session_store.rb │ │ │ │ └── shopify_app.rb │ │ │ ├── locales/ │ │ │ │ └── en.yml │ │ │ ├── puma.rb │ │ │ ├── routes.rb │ │ │ └── storage.yml │ │ ├── config.ru │ │ ├── db/ │ │ │ ├── migrate/ │ │ │ │ ├── 20220609125627_create_shops.rb │ │ │ │ ├── 20220609125631_add_shop_access_scopes_column.rb │ │ │ │ └── 20230201144826_add_registered_to_shops.rb │ │ │ ├── schema.rb │ │ │ └── seeds.rb │ │ ├── frontend/ │ │ │ ├── .gitignore │ │ │ ├── App.jsx │ │ │ ├── README.md │ │ │ ├── Routes.jsx │ │ │ ├── assets/ │ │ │ │ └── index.js │ │ │ ├── components/ │ │ │ │ ├── ProductsCard.jsx │ │ │ │ ├── index.js │ │ │ │ └── providers/ │ │ │ │ ├── AppBridgeProvider.jsx │ │ │ │ ├── PolarisProvider.jsx │ │ │ │ ├── QueryProvider.jsx │ │ │ │ └── index.js │ │ │ ├── dev_embed.js │ │ │ ├── hooks/ │ │ │ │ ├── index.js │ │ │ │ ├── useAppQuery.js │ │ │ │ └── useAuthenticatedFetch.js │ │ │ ├── index.html │ │ │ ├── index.jsx │ │ │ ├── package.json │ │ │ ├── pages/ │ │ │ │ ├── ExitIframe.jsx │ │ │ │ ├── NotFound.jsx │ │ │ │ ├── index.jsx │ │ │ │ └── readme.jsx │ │ │ ├── shopify.web.toml │ │ │ └── vite.config.js │ │ ├── lib/ │ │ │ ├── assets/ │ │ │ │ └── .keep │ │ │ └── tasks/ │ │ │ └── build.rake │ │ ├── log/ │ │ │ └── .keep │ │ ├── public/ │ │ │ ├── 404.html │ │ │ ├── 422.html │ │ │ ├── 500.html │ │ │ ├── dist/ │ │ │ │ └── .keep │ │ │ └── robots.txt │ │ ├── rubocop.yml │ │ ├── shopify.web.toml │ │ ├── storage/ │ │ │ └── .keep │ │ ├── template.rb │ │ ├── test/ │ │ │ ├── application_system_test_case.rb │ │ │ ├── channels/ │ │ │ │ └── application_cable/ │ │ │ │ └── connection_test.rb │ │ │ ├── fixtures/ │ │ │ │ └── files/ │ │ │ │ └── .keep │ │ │ ├── helpers/ │ │ │ │ └── .keep │ │ │ ├── integration/ │ │ │ │ └── .keep │ │ │ ├── mailers/ │ │ │ │ └── .keep │ │ │ ├── models/ │ │ │ │ └── .keep │ │ │ ├── system/ │ │ │ │ └── .keep │ │ │ └── test_helper.rb │ │ ├── tmp/ │ │ │ ├── .keep │ │ │ ├── pids/ │ │ │ │ └── .keep │ │ │ └── storage/ │ │ │ └── .keep │ │ └── vendor/ │ │ ├── .keep │ │ └── javascript/ │ │ └── .keep │ ├── bundles-price-per-component/ │ │ ├── .gitignore │ │ ├── .npmrc │ │ ├── README.md │ │ ├── extensions/ │ │ │ ├── price-per-component-js/ │ │ │ │ ├── .gitignore │ │ │ │ ├── package.json │ │ │ │ ├── schema.graphql │ │ │ │ ├── shopify.extension.toml │ │ │ │ └── src/ │ │ │ │ ├── index.js │ │ │ │ ├── run.graphql │ │ │ │ ├── run.js │ │ │ │ └── run.test.js │ │ │ └── price-per-component-rs/ │ │ │ ├── .gitignore │ │ │ ├── Cargo.toml │ │ │ ├── README.md │ │ │ ├── locales/ │ │ │ │ └── en.default.json │ │ │ ├── schema.graphql │ │ │ ├── shopify.extension.toml │ │ │ └── src/ │ │ │ ├── main.rs │ │ │ ├── run.graphql │ │ │ ├── run.input.json │ │ │ ├── run.output.json │ │ │ └── run.rs │ │ ├── package.json │ │ └── shopify.app.toml │ ├── delivery-customizations/ │ │ ├── .dockerignore │ │ ├── .editorconfig │ │ ├── .eslintignore │ │ ├── .eslintrc.cjs │ │ ├── .gitignore │ │ ├── .graphqlrc.ts │ │ ├── .npmrc │ │ ├── .prettierignore │ │ ├── CHANGELOG.md │ │ ├── Dockerfile │ │ ├── README.md │ │ ├── app/ │ │ │ ├── db.server.ts │ │ │ ├── entry.server.tsx │ │ │ ├── globals.d.ts │ │ │ ├── root.tsx │ │ │ ├── routes/ │ │ │ │ ├── _index/ │ │ │ │ │ ├── route.tsx │ │ │ │ │ └── styles.module.css │ │ │ │ ├── app._index.tsx │ │ │ │ ├── app.additional.tsx │ │ │ │ ├── app.delivery-customization.$functionId.$id.tsx │ │ │ │ ├── app.tsx │ │ │ │ ├── auth.$.tsx │ │ │ │ ├── auth.login/ │ │ │ │ │ ├── error.server.tsx │ │ │ │ │ └── route.tsx │ │ │ │ ├── webhooks.app.scopes_update.tsx │ │ │ │ └── webhooks.app.uninstalled.tsx │ │ │ ├── routes.ts │ │ │ └── shopify.server.ts │ │ ├── env.d.ts │ │ ├── extensions/ │ │ │ ├── delivery-customization-js/ │ │ │ │ ├── .gitignore │ │ │ │ ├── locales/ │ │ │ │ │ └── en.default.json │ │ │ │ ├── package.json │ │ │ │ ├── schema.graphql │ │ │ │ ├── shopify.extension.toml │ │ │ │ └── src/ │ │ │ │ ├── index.js │ │ │ │ ├── run.graphql │ │ │ │ ├── run.js │ │ │ │ └── run.test.js │ │ │ └── delivery-customization-rust/ │ │ │ ├── .gitignore │ │ │ ├── Cargo.toml │ │ │ ├── locales/ │ │ │ │ └── en.default.json │ │ │ ├── schema.graphql │ │ │ ├── shopify.extension.toml │ │ │ └── src/ │ │ │ ├── main.rs │ │ │ ├── run.graphql │ │ │ └── run.rs │ │ ├── package.json │ │ ├── prisma/ │ │ │ ├── migrations/ │ │ │ │ └── 20240530213853_create_session_table/ │ │ │ │ └── migration.sql │ │ │ └── schema.prisma │ │ ├── react-router.config.ts │ │ ├── shopify.app.toml │ │ ├── shopify.web.toml │ │ ├── tsconfig.json │ │ └── vite.config.ts │ ├── discounts/ │ │ ├── .dockerignore │ │ ├── .editorconfig │ │ ├── .eslintignore │ │ ├── .eslintrc.js │ │ ├── .gitignore │ │ ├── .graphqlrc.js │ │ ├── .npmrc │ │ ├── .prettierignore │ │ ├── .vscode/ │ │ │ └── extensions.json │ │ ├── Dockerfile │ │ ├── README.md │ │ ├── app/ │ │ │ ├── components/ │ │ │ │ ├── NotFoundPage/ │ │ │ │ │ ├── NotFoundPage.jsx │ │ │ │ │ └── index.js │ │ │ │ └── providers/ │ │ │ │ └── DiscountProvider.jsx │ │ │ ├── db.server.js │ │ │ ├── entry.server.jsx │ │ │ ├── root.jsx │ │ │ ├── routes/ │ │ │ │ ├── _index/ │ │ │ │ │ ├── route.jsx │ │ │ │ │ └── style.css │ │ │ │ ├── app._index.jsx │ │ │ │ ├── app.additional.jsx │ │ │ │ ├── app.jsx │ │ │ │ ├── app.volume-discount.$functionId.$id.jsx │ │ │ │ ├── app.volume-discount.$functionId.new.jsx │ │ │ │ ├── auth.$.jsx │ │ │ │ ├── auth.login/ │ │ │ │ │ ├── error.server.jsx │ │ │ │ │ └── route.jsx │ │ │ │ └── webhooks.jsx │ │ │ ├── shopify.server.js │ │ │ └── utils/ │ │ │ └── navigation.js │ │ ├── extensions/ │ │ │ ├── product-discount-js/ │ │ │ │ ├── .gitignore │ │ │ │ ├── locales/ │ │ │ │ │ └── en.default.json │ │ │ │ ├── package.json │ │ │ │ ├── schema.graphql │ │ │ │ ├── shopify.extension.toml │ │ │ │ └── src/ │ │ │ │ ├── index.js │ │ │ │ ├── run.graphql │ │ │ │ ├── run.js │ │ │ │ └── run.test.js │ │ │ └── product-discount-rust/ │ │ │ ├── .gitignore │ │ │ ├── Cargo.toml │ │ │ ├── README.md │ │ │ ├── locales/ │ │ │ │ └── en.default.json │ │ │ ├── schema.graphql │ │ │ ├── shopify.extension.toml │ │ │ └── src/ │ │ │ ├── main.rs │ │ │ ├── run.graphql │ │ │ └── run.rs │ │ ├── package.json │ │ ├── prisma/ │ │ │ ├── migrations/ │ │ │ │ └── 20230615155147_create_session_table/ │ │ │ │ └── migration.sql │ │ │ └── schema.prisma │ │ ├── remix.config.js │ │ ├── shopify.app.toml │ │ ├── shopify.web.toml │ │ └── tsconfig.json │ ├── optional-add-ons-cart-transform/ │ │ ├── .gitignore │ │ ├── .npmrc │ │ ├── README.md │ │ ├── extensions/ │ │ │ ├── optional-add-ons-js/ │ │ │ │ ├── .gitignore │ │ │ │ ├── package.json │ │ │ │ ├── schema.graphql │ │ │ │ ├── shopify.extension.toml │ │ │ │ └── src/ │ │ │ │ ├── index.js │ │ │ │ ├── run.graphql │ │ │ │ ├── run.js │ │ │ │ └── run.test.js │ │ │ └── optional-add-ons-rust/ │ │ │ ├── .gitignore │ │ │ ├── Cargo.toml │ │ │ ├── locales/ │ │ │ │ └── en.default.json │ │ │ ├── schema.graphql │ │ │ ├── shopify.extension.toml │ │ │ └── src/ │ │ │ ├── main.rs │ │ │ ├── run.graphql │ │ │ └── run.rs │ │ ├── package.json │ │ └── shopify.app.toml │ ├── payment-customizations/ │ │ ├── .dockerignore │ │ ├── .editorconfig │ │ ├── .eslintignore │ │ ├── .eslintrc.cjs │ │ ├── .gitignore │ │ ├── .graphqlrc.js │ │ ├── .npmrc │ │ ├── .prettierignore │ │ ├── Dockerfile │ │ ├── README.md │ │ ├── app/ │ │ │ ├── db.server.js │ │ │ ├── entry.server.jsx │ │ │ ├── root.jsx │ │ │ ├── routes/ │ │ │ │ ├── _index/ │ │ │ │ │ ├── route.jsx │ │ │ │ │ └── styles.module.css │ │ │ │ ├── app._index.jsx │ │ │ │ ├── app.additional.jsx │ │ │ │ ├── app.jsx │ │ │ │ ├── app.payment-customization.$functionId.$id.jsx │ │ │ │ ├── auth.$.jsx │ │ │ │ ├── auth.login/ │ │ │ │ │ ├── error.server.js │ │ │ │ │ └── route.jsx │ │ │ │ ├── webhooks.app.scopes_update.jsx │ │ │ │ └── webhooks.app.uninstalled.jsx │ │ │ ├── routes.js │ │ │ └── shopify.server.js │ │ ├── extensions/ │ │ │ ├── payment-customization-js/ │ │ │ │ ├── .gitignore │ │ │ │ ├── locales/ │ │ │ │ │ └── en.default.json │ │ │ │ ├── package.json │ │ │ │ ├── schema.graphql │ │ │ │ ├── shopify.extension.toml │ │ │ │ └── src/ │ │ │ │ ├── index.js │ │ │ │ ├── run.graphql │ │ │ │ ├── run.js │ │ │ │ └── run.test.js │ │ │ └── payment-customization-rust/ │ │ │ ├── .gitignore │ │ │ ├── Cargo.toml │ │ │ ├── locales/ │ │ │ │ └── en.default.json │ │ │ ├── schema.graphql │ │ │ ├── shopify.extension.toml │ │ │ └── src/ │ │ │ ├── main.rs │ │ │ ├── run.graphql │ │ │ └── run.rs │ │ ├── package.json │ │ ├── prisma/ │ │ │ ├── migrations/ │ │ │ │ └── 20240530213853_create_session_table/ │ │ │ │ └── migration.sql │ │ │ └── schema.prisma │ │ ├── react-router.config.js │ │ ├── shopify.app.toml │ │ ├── shopify.web.toml │ │ ├── tsconfig.json │ │ └── vite.config.js │ └── update-line-item/ │ ├── .gitignore │ ├── .npmrc │ ├── README.md │ ├── extensions/ │ │ └── update-line-item-js/ │ │ ├── .gitignore │ │ ├── package.json │ │ ├── schema.graphql │ │ ├── shopify.extension.toml │ │ └── src/ │ │ ├── index.js │ │ ├── run.graphql │ │ ├── run.js │ │ └── run.test.js │ ├── package.json │ └── shopify.app.toml └── util/ └── expand-liquid.js