@shopify/shopify-api 6.0.0-rc1 → 6.0.0-rc3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +4 -0
- package/README.md +4 -3
- package/dist/adapters/__e2etests__/test_apps/test-cf-worker-app.d.ts +6 -0
- package/dist/adapters/__e2etests__/test_apps/test-cf-worker-app.d.ts.map +1 -0
- package/dist/adapters/__e2etests__/test_apps/test-cf-worker-app.js +178 -0
- package/dist/adapters/__e2etests__/test_apps/test-dummy-shopify-server.d.ts +2 -0
- package/dist/adapters/__e2etests__/test_apps/test-dummy-shopify-server.d.ts.map +1 -0
- package/dist/adapters/__e2etests__/test_apps/test-dummy-shopify-server.js +201 -0
- package/dist/adapters/__e2etests__/test_apps/test-node-app.d.ts +2 -0
- package/dist/adapters/__e2etests__/test_apps/test-node-app.d.ts.map +1 -0
- package/dist/adapters/__e2etests__/test_apps/test-node-app.js +194 -0
- package/dist/adapters/__e2etests__/test_config_types.d.ts +30 -0
- package/dist/adapters/__e2etests__/test_config_types.d.ts.map +1 -0
- package/dist/adapters/__e2etests__/test_config_types.js +23 -0
- package/dist/adapters/__e2etests__/test_environments.d.ts +4 -0
- package/dist/adapters/__e2etests__/test_environments.d.ts.map +1 -0
- package/dist/adapters/__e2etests__/test_environments.js +105 -0
- package/dist/adapters/__e2etests__/test_suite.d.ts +8 -0
- package/dist/adapters/__e2etests__/test_suite.d.ts.map +1 -0
- package/dist/adapters/__e2etests__/test_suite.js +314 -0
- package/dist/adapters/__e2etests__/utils.d.ts +5 -0
- package/dist/adapters/__e2etests__/utils.d.ts.map +1 -0
- package/dist/adapters/__e2etests__/utils.js +47 -0
- package/dist/adapters/cf-worker/index.js +8 -11
- package/dist/adapters/mock/index.js +8 -11
- package/dist/adapters/node/index.js +8 -11
- package/dist/auth/oauth/oauth.d.ts +0 -2
- package/dist/auth/oauth/oauth.d.ts.map +1 -1
- package/dist/auth/oauth/oauth.js +6 -7
- package/dist/auth/oauth/types.d.ts +2 -0
- package/dist/auth/oauth/types.d.ts.map +1 -1
- package/dist/auth/oauth/types.js +3 -0
- package/dist/base-types.d.ts +8 -8
- package/dist/base-types.d.ts.map +1 -1
- package/dist/base-types.js +2 -2
- package/dist/clients/graphql/graphql_client.d.ts +2 -2
- package/dist/clients/graphql/storefront_client.d.ts +2 -2
- package/dist/clients/http_client/http_client.d.ts +1 -1
- package/dist/clients/http_client/http_client.d.ts.map +1 -1
- package/dist/clients/http_client/http_client.js +7 -4
- package/dist/clients/http_client/types.d.ts +1 -2
- package/dist/clients/http_client/types.d.ts.map +1 -1
- package/dist/clients/index.d.ts +6 -6
- package/dist/config.d.ts +2 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/rest/admin/2022-01/abandoned_checkout.d.ts +2 -2
- package/dist/rest/admin/2022-01/abandoned_checkout.d.ts.map +1 -1
- package/dist/rest/admin/2022-01/abandoned_checkout.js +3 -2
- package/dist/rest/admin/2022-01/customer.d.ts +5 -0
- package/dist/rest/admin/2022-01/customer.d.ts.map +1 -1
- package/dist/rest/admin/2022-01/customer.js +21 -0
- package/dist/rest/admin/2022-01/gift_card.d.ts +5 -1
- package/dist/rest/admin/2022-01/gift_card.d.ts.map +1 -1
- package/dist/rest/admin/2022-01/gift_card.js +5 -5
- package/dist/rest/admin/2022-01/metafield.d.ts +3 -1
- package/dist/rest/admin/2022-01/metafield.d.ts.map +1 -1
- package/dist/rest/admin/2022-01/metafield.js +10 -6
- package/dist/rest/admin/2022-04/abandoned_checkout.d.ts +2 -2
- package/dist/rest/admin/2022-04/abandoned_checkout.d.ts.map +1 -1
- package/dist/rest/admin/2022-04/abandoned_checkout.js +3 -2
- package/dist/rest/admin/2022-04/customer.d.ts +5 -0
- package/dist/rest/admin/2022-04/customer.d.ts.map +1 -1
- package/dist/rest/admin/2022-04/customer.js +21 -0
- package/dist/rest/admin/2022-04/gift_card.d.ts +5 -1
- package/dist/rest/admin/2022-04/gift_card.d.ts.map +1 -1
- package/dist/rest/admin/2022-04/gift_card.js +5 -5
- package/dist/rest/admin/2022-04/metafield.d.ts.map +1 -1
- package/dist/rest/admin/2022-04/metafield.js +4 -2
- package/dist/rest/admin/2022-07/abandoned_checkout.d.ts +2 -2
- package/dist/rest/admin/2022-07/abandoned_checkout.d.ts.map +1 -1
- package/dist/rest/admin/2022-07/abandoned_checkout.js +3 -2
- package/dist/rest/admin/2022-07/customer.d.ts +5 -0
- package/dist/rest/admin/2022-07/customer.d.ts.map +1 -1
- package/dist/rest/admin/2022-07/customer.js +21 -0
- package/dist/rest/admin/2022-07/dispute_evidence.d.ts +1 -1
- package/dist/rest/admin/2022-07/dispute_evidence.d.ts.map +1 -1
- package/dist/rest/admin/2022-07/fulfillment_service.d.ts +0 -1
- package/dist/rest/admin/2022-07/fulfillment_service.d.ts.map +1 -1
- package/dist/rest/admin/2022-07/gift_card.d.ts +5 -1
- package/dist/rest/admin/2022-07/gift_card.d.ts.map +1 -1
- package/dist/rest/admin/2022-07/gift_card.js +5 -5
- package/dist/rest/admin/2022-07/metafield.d.ts.map +1 -1
- package/dist/rest/admin/2022-07/metafield.js +4 -2
- package/dist/rest/admin/{2021-10 → 2022-10}/abandoned_checkout.d.ts +2 -2
- package/dist/rest/admin/{2021-10 → 2022-10}/abandoned_checkout.d.ts.map +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/abandoned_checkout.js +4 -3
- package/dist/rest/admin/{2021-10 → 2022-10}/access_scope.d.ts +0 -0
- package/dist/rest/admin/{2021-10 → 2022-10}/access_scope.d.ts.map +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/access_scope.js +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/android_pay_key.d.ts +0 -0
- package/dist/rest/admin/{2021-10 → 2022-10}/android_pay_key.d.ts.map +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/android_pay_key.js +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/apple_pay_certificate.d.ts +0 -0
- package/dist/rest/admin/{2021-10 → 2022-10}/apple_pay_certificate.d.ts.map +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/apple_pay_certificate.js +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/application_charge.d.ts +0 -0
- package/dist/rest/admin/{2021-10 → 2022-10}/application_charge.d.ts.map +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/application_charge.js +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/application_credit.d.ts +0 -0
- package/dist/rest/admin/{2021-10 → 2022-10}/application_credit.d.ts.map +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/application_credit.js +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/article.d.ts +0 -0
- package/dist/rest/admin/{2021-10 → 2022-10}/article.d.ts.map +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/article.js +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/asset.d.ts +0 -0
- package/dist/rest/admin/{2021-10 → 2022-10}/asset.d.ts.map +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/asset.js +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/assigned_fulfillment_order.d.ts +0 -0
- package/dist/rest/admin/{2021-10 → 2022-10}/assigned_fulfillment_order.d.ts.map +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/assigned_fulfillment_order.js +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/balance.d.ts +0 -0
- package/dist/rest/admin/{2021-10 → 2022-10}/balance.d.ts.map +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/balance.js +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/blog.d.ts +0 -0
- package/dist/rest/admin/{2021-10 → 2022-10}/blog.d.ts.map +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/blog.js +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/cancellation_request.d.ts +0 -0
- package/dist/rest/admin/{2021-10 → 2022-10}/cancellation_request.d.ts.map +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/cancellation_request.js +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/carrier_service.d.ts +0 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/carrier_service.d.ts.map +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/carrier_service.js +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/checkout.d.ts +0 -0
- package/dist/rest/admin/{2021-10 → 2022-10}/checkout.d.ts.map +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/checkout.js +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/collect.d.ts +0 -0
- package/dist/rest/admin/{2021-10 → 2022-10}/collect.d.ts.map +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/collect.js +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/collection.d.ts +0 -0
- package/dist/rest/admin/{2021-10 → 2022-10}/collection.d.ts.map +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/collection.js +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/collection_listing.d.ts +0 -0
- package/dist/rest/admin/{2021-10 → 2022-10}/collection_listing.d.ts.map +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/collection_listing.js +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/comment.d.ts +0 -0
- package/dist/rest/admin/{2021-10 → 2022-10}/comment.d.ts.map +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/comment.js +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/country.d.ts +0 -0
- package/dist/rest/admin/{2021-10 → 2022-10}/country.d.ts.map +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/country.js +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/currency.d.ts +0 -0
- package/dist/rest/admin/{2021-10 → 2022-10}/currency.d.ts.map +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/currency.js +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/custom_collection.d.ts +0 -0
- package/dist/rest/admin/{2021-10 → 2022-10}/custom_collection.d.ts.map +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/custom_collection.js +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/customer.d.ts +8 -0
- package/dist/rest/admin/2022-10/customer.d.ts.map +1 -0
- package/dist/rest/admin/{2021-10 → 2022-10}/customer.js +22 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/customer_address.d.ts +0 -0
- package/dist/rest/admin/{2021-10 → 2022-10}/customer_address.d.ts.map +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/customer_address.js +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/customer_saved_search.d.ts +0 -0
- package/dist/rest/admin/{2021-10 → 2022-10}/customer_saved_search.d.ts.map +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/customer_saved_search.js +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/deprecated_api_call.d.ts +0 -0
- package/dist/rest/admin/{2021-10 → 2022-10}/deprecated_api_call.d.ts.map +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/deprecated_api_call.js +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/discount_code.d.ts +0 -0
- package/dist/rest/admin/{2021-10 → 2022-10}/discount_code.d.ts.map +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/discount_code.js +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/dispute.d.ts +0 -0
- package/dist/rest/admin/{2021-10 → 2022-10}/dispute.d.ts.map +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/dispute.js +1 -1
- package/dist/rest/admin/2022-10/dispute_evidence.d.ts +57 -0
- package/dist/rest/admin/2022-10/dispute_evidence.d.ts.map +1 -0
- package/dist/rest/admin/2022-10/dispute_evidence.js +48 -0
- package/dist/rest/admin/2022-10/dispute_file_upload.d.ts +36 -0
- package/dist/rest/admin/2022-10/dispute_file_upload.d.ts.map +1 -0
- package/dist/rest/admin/2022-10/dispute_file_upload.js +46 -0
- package/dist/rest/admin/{2021-10 → 2022-10}/draft_order.d.ts +0 -0
- package/dist/rest/admin/{2021-10 → 2022-10}/draft_order.d.ts.map +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/draft_order.js +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/event.d.ts +0 -0
- package/dist/rest/admin/{2021-10 → 2022-10}/event.d.ts.map +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/event.js +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/fulfillment.d.ts +0 -14
- package/dist/rest/admin/2022-10/fulfillment.d.ts.map +1 -0
- package/dist/rest/admin/{2021-10 → 2022-10}/fulfillment.js +3 -52
- package/dist/rest/admin/{2021-10 → 2022-10}/fulfillment_event.d.ts +0 -0
- package/dist/rest/admin/{2021-10 → 2022-10}/fulfillment_event.d.ts.map +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/fulfillment_event.js +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/fulfillment_order.d.ts +10 -0
- package/dist/rest/admin/2022-10/fulfillment_order.d.ts.map +1 -0
- package/dist/rest/admin/{2021-10 → 2022-10}/fulfillment_order.js +25 -2
- package/dist/rest/admin/{2021-10 → 2022-10}/fulfillment_request.d.ts +0 -0
- package/dist/rest/admin/{2021-10 → 2022-10}/fulfillment_request.d.ts.map +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/fulfillment_request.js +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/fulfillment_service.d.ts +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/fulfillment_service.d.ts.map +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/fulfillment_service.js +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/gift_card.d.ts +5 -1
- package/dist/rest/admin/2022-10/gift_card.d.ts.map +1 -0
- package/dist/rest/admin/{2021-10 → 2022-10}/gift_card.js +6 -6
- package/dist/rest/admin/{2021-10 → 2022-10}/gift_card_adjustment.d.ts +0 -0
- package/dist/rest/admin/{2021-10 → 2022-10}/gift_card_adjustment.d.ts.map +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/gift_card_adjustment.js +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/image.d.ts +0 -0
- package/dist/rest/admin/{2021-10 → 2022-10}/image.d.ts.map +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/image.js +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/index.d.ts +4 -0
- package/dist/rest/admin/2022-10/index.d.ts.map +1 -0
- package/dist/rest/admin/{2021-10 → 2022-10}/index.js +4 -0
- package/dist/rest/admin/{2021-10 → 2022-10}/inventory_item.d.ts +0 -0
- package/dist/rest/admin/{2021-10 → 2022-10}/inventory_item.d.ts.map +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/inventory_item.js +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/inventory_level.d.ts +0 -0
- package/dist/rest/admin/{2021-10 → 2022-10}/inventory_level.d.ts.map +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/inventory_level.js +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/location.d.ts +0 -0
- package/dist/rest/admin/{2021-10 → 2022-10}/location.d.ts.map +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/location.js +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/locations_for_move.d.ts +0 -0
- package/dist/rest/admin/{2021-10 → 2022-10}/locations_for_move.d.ts.map +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/locations_for_move.js +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/marketing_event.d.ts +0 -0
- package/dist/rest/admin/{2021-10 → 2022-10}/marketing_event.d.ts.map +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/marketing_event.js +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/metafield.d.ts +2 -3
- package/dist/rest/admin/2022-10/metafield.d.ts.map +1 -0
- package/dist/rest/admin/{2021-10 → 2022-10}/metafield.js +7 -4
- package/dist/rest/admin/{2021-10 → 2022-10}/mobile_platform_application.d.ts +0 -0
- package/dist/rest/admin/{2021-10 → 2022-10}/mobile_platform_application.d.ts.map +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/mobile_platform_application.js +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/order.d.ts +1 -0
- package/dist/rest/admin/{2021-10 → 2022-10}/order.d.ts.map +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/order.js +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/order_risk.d.ts +0 -0
- package/dist/rest/admin/{2021-10 → 2022-10}/order_risk.d.ts.map +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/order_risk.js +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/page.d.ts +0 -0
- package/dist/rest/admin/{2021-10 → 2022-10}/page.d.ts.map +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/page.js +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/payment.d.ts +0 -0
- package/dist/rest/admin/{2021-10 → 2022-10}/payment.d.ts.map +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/payment.js +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/payment_gateway.d.ts +0 -0
- package/dist/rest/admin/{2021-10 → 2022-10}/payment_gateway.d.ts.map +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/payment_gateway.js +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/payment_transaction.d.ts +0 -0
- package/dist/rest/admin/{2021-10 → 2022-10}/payment_transaction.d.ts.map +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/payment_transaction.js +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/payout.d.ts +0 -0
- package/dist/rest/admin/{2021-10 → 2022-10}/payout.d.ts.map +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/payout.js +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/policy.d.ts +0 -0
- package/dist/rest/admin/{2021-10 → 2022-10}/policy.d.ts.map +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/policy.js +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/price_rule.d.ts +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/price_rule.d.ts.map +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/price_rule.js +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/product.d.ts +0 -0
- package/dist/rest/admin/{2021-10 → 2022-10}/product.d.ts.map +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/product.js +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/product_listing.d.ts +0 -0
- package/dist/rest/admin/{2021-10 → 2022-10}/product_listing.d.ts.map +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/product_listing.js +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/product_resource_feedback.d.ts +0 -0
- package/dist/rest/admin/{2021-10 → 2022-10}/product_resource_feedback.d.ts.map +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/product_resource_feedback.js +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/province.d.ts +0 -0
- package/dist/rest/admin/{2021-10 → 2022-10}/province.d.ts.map +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/province.js +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/recurring_application_charge.d.ts +0 -0
- package/dist/rest/admin/{2021-10 → 2022-10}/recurring_application_charge.d.ts.map +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/recurring_application_charge.js +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/redirect.d.ts +0 -0
- package/dist/rest/admin/{2021-10 → 2022-10}/redirect.d.ts.map +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/redirect.js +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/refund.d.ts +0 -0
- package/dist/rest/admin/{2021-10 → 2022-10}/refund.d.ts.map +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/refund.js +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/report.d.ts +0 -0
- package/dist/rest/admin/{2021-10 → 2022-10}/report.d.ts.map +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/report.js +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/resource_feedback.d.ts +0 -0
- package/dist/rest/admin/{2021-10 → 2022-10}/resource_feedback.d.ts.map +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/resource_feedback.js +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/script_tag.d.ts +0 -0
- package/dist/rest/admin/{2021-10 → 2022-10}/script_tag.d.ts.map +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/script_tag.js +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/shipping_zone.d.ts +0 -0
- package/dist/rest/admin/{2021-10 → 2022-10}/shipping_zone.d.ts.map +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/shipping_zone.js +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/shop.d.ts +1 -0
- package/dist/rest/admin/{2021-10 → 2022-10}/shop.d.ts.map +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/shop.js +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/smart_collection.d.ts +0 -0
- package/dist/rest/admin/{2021-10 → 2022-10}/smart_collection.d.ts.map +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/smart_collection.js +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/storefront_access_token.d.ts +0 -0
- package/dist/rest/admin/{2021-10 → 2022-10}/storefront_access_token.d.ts.map +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/storefront_access_token.js +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/tender_transaction.d.ts +0 -0
- package/dist/rest/admin/{2021-10 → 2022-10}/tender_transaction.d.ts.map +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/tender_transaction.js +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/theme.d.ts +0 -0
- package/dist/rest/admin/{2021-10 → 2022-10}/theme.d.ts.map +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/theme.js +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/transaction.d.ts +0 -0
- package/dist/rest/admin/{2021-10 → 2022-10}/transaction.d.ts.map +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/transaction.js +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/usage_charge.d.ts +0 -0
- package/dist/rest/admin/{2021-10 → 2022-10}/usage_charge.d.ts.map +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/usage_charge.js +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/user.d.ts +0 -0
- package/dist/rest/admin/{2021-10 → 2022-10}/user.d.ts.map +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/user.js +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/variant.d.ts +0 -0
- package/dist/rest/admin/{2021-10 → 2022-10}/variant.d.ts.map +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/variant.js +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/webhook.d.ts +0 -0
- package/dist/rest/admin/{2021-10 → 2022-10}/webhook.d.ts.map +1 -1
- package/dist/rest/admin/{2021-10 → 2022-10}/webhook.js +1 -1
- package/dist/runtime/crypto/index.d.ts +1 -0
- package/dist/runtime/crypto/index.d.ts.map +1 -1
- package/dist/runtime/crypto/index.js +1 -0
- package/dist/runtime/index.d.ts +5 -0
- package/dist/runtime/index.d.ts.map +1 -0
- package/dist/runtime/index.js +7 -0
- package/dist/runtime/platform/index.d.ts +1 -0
- package/dist/runtime/platform/index.d.ts.map +1 -1
- package/dist/runtime/platform/index.js +1 -0
- package/dist/runtime/platform/runtime-string.d.ts +3 -3
- package/dist/runtime/platform/runtime-string.d.ts.map +1 -1
- package/dist/runtime/platform/types.d.ts +1 -1
- package/dist/runtime/platform/types.d.ts.map +1 -1
- package/dist/runtime/session/index.d.ts +1 -0
- package/dist/runtime/session/index.d.ts.map +1 -1
- package/dist/runtime/session/index.js +2 -0
- package/dist/runtime/types.d.ts +5 -0
- package/dist/runtime/types.d.ts.map +1 -0
- package/dist/runtime/types.js +7 -0
- package/dist/session/session-utils.js +2 -2
- package/dist/session-storage/kv.d.ts +17 -0
- package/dist/session-storage/kv.d.ts.map +1 -0
- package/dist/session-storage/kv.js +183 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/dist/webhooks/index.d.ts +6 -8
- package/dist/webhooks/index.d.ts.map +1 -1
- package/dist/webhooks/index.js +7 -7
- package/dist/webhooks/registry.d.ts +8 -16
- package/dist/webhooks/registry.d.ts.map +1 -1
- package/dist/webhooks/registry.js +81 -91
- package/dist/webhooks/types.d.ts +12 -17
- package/dist/webhooks/types.d.ts.map +1 -1
- package/package.json +13 -3
- package/dist/rest/admin/2021-10/customer.d.ts.map +0 -1
- package/dist/rest/admin/2021-10/fulfillment.d.ts.map +0 -1
- package/dist/rest/admin/2021-10/fulfillment_order.d.ts.map +0 -1
- package/dist/rest/admin/2021-10/gift_card.d.ts.map +0 -1
- package/dist/rest/admin/2021-10/index.d.ts.map +0 -1
- package/dist/rest/admin/2021-10/metafield.d.ts.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,10 @@ and adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
|
|
|
7
7
|
|
|
8
8
|
## Unreleased
|
|
9
9
|
|
|
10
|
+
## [6.0.0-rc2] - 2022-10-04
|
|
11
|
+
|
|
12
|
+
- ⚠️ [Breaking] Final release candidate for `6.0.0` release, which is a complete breaking change across all surfaces of the library
|
|
13
|
+
|
|
10
14
|
## [5.1.0] - 2022-09-19
|
|
11
15
|
|
|
12
16
|
- Increased tolerance for expired JWT session tokens from 5s to 10s [#462](https://github.com/Shopify/shopify-api-node/pull/462)
|
package/README.md
CHANGED
|
@@ -125,14 +125,15 @@ These are all the configuration values `shopifyApi` supports.
|
|
|
125
125
|
- [Callback endpoint](docs/usage/oauth.md#callback-endpoint)
|
|
126
126
|
- [Using sessions](docs/usage/oauth.md#using-sessions)
|
|
127
127
|
- [Detecting scope changes](docs/usage/oauth.md#detecting-scope-changes)
|
|
128
|
-
- [
|
|
128
|
+
- [REST Admin API client](docs/usage/rest.md)
|
|
129
129
|
- [Using REST resources](docs/usage/rest.md#using-rest-resources)
|
|
130
|
-
- [
|
|
131
|
-
- [
|
|
130
|
+
- [GraphQL Admin API client](docs/usage/graphql.md)
|
|
131
|
+
- [GraphqL Storefront API client](docs/usage/storefront.md)
|
|
132
132
|
- [Webhooks](docs/usage/webhooks.md)
|
|
133
133
|
- [Register a Webhook](docs/usage/webhooks.md#register-a-webhook)
|
|
134
134
|
- [Process a Webhook](docs/usage/webhooks.md#process-a-webhook)
|
|
135
135
|
- [Billing](docs/usage/billing.md)
|
|
136
|
+
- [Adding custom runtimes](docs/usage/runtimes.md)
|
|
136
137
|
- [Known issues and caveats](docs/issues.md)
|
|
137
138
|
- [Notes on session handling](docs/issues.md#notes-on-session-handling)
|
|
138
139
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-cf-worker-app.d.ts","sourceRoot":"","sources":["../../../../src/adapters/__e2etests__/test_apps/test-cf-worker-app.ts"],"names":[],"mappings":"AAAA,OAAO,iBAAiB,CAAC;;eAsCN,GAAG,QAAQ,GAAG,QAAQ,GAAG;;AAD5C,wBA2KE"}
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var tslib_1 = require("tslib");
|
|
4
|
+
require("../../cf-worker");
|
|
5
|
+
var http_client_1 = require("../../../clients/http_client/http_client");
|
|
6
|
+
var utils_1 = require("../utils");
|
|
7
|
+
/* Codes for different Colours */
|
|
8
|
+
var RED = '\x1b[31m';
|
|
9
|
+
var GREEN = '\x1b[32m';
|
|
10
|
+
var RESET = '\x1b[39m';
|
|
11
|
+
var HttpClient = (0, http_client_1.createHttpClientClass)(utils_1.config, 'http');
|
|
12
|
+
var defaultRetryTimer = HttpClient.RETRY_WAIT_TIME;
|
|
13
|
+
var testCount = 0;
|
|
14
|
+
function params(testRequest) {
|
|
15
|
+
return {
|
|
16
|
+
path: testRequest.url,
|
|
17
|
+
type: testRequest.bodyType,
|
|
18
|
+
data: JSON.stringify(testRequest.body),
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
function setRestClientRetryTime(time) {
|
|
22
|
+
// We de-type HttpClient here so we can alter its readonly time property
|
|
23
|
+
HttpClient.RETRY_WAIT_TIME = time;
|
|
24
|
+
}
|
|
25
|
+
/* eslint-disable-next-line import/no-anonymous-default-export */
|
|
26
|
+
exports.default = {
|
|
27
|
+
fetch: function (req, _env, _ctx) {
|
|
28
|
+
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
29
|
+
var apiServerPort, client, testConfig, testRequest, expectedResponse, tries, testPassed, timedOut_1, retryTimeout, testFailedDebug_1, response, _a, error_1;
|
|
30
|
+
return tslib_1.__generator(this, function (_b) {
|
|
31
|
+
switch (_b.label) {
|
|
32
|
+
case 0:
|
|
33
|
+
apiServerPort = parseInt(globalThis.HTTP_SERVER_PORT || '3000', 10);
|
|
34
|
+
client = new HttpClient({
|
|
35
|
+
domain: "localhost:".concat(apiServerPort),
|
|
36
|
+
});
|
|
37
|
+
if (!(req.method === 'POST')) return [3 /*break*/, 14];
|
|
38
|
+
return [4 /*yield*/, req.json()];
|
|
39
|
+
case 1:
|
|
40
|
+
testConfig = _b.sent();
|
|
41
|
+
testRequest = testConfig.testRequest;
|
|
42
|
+
expectedResponse = testConfig.expectedResponse;
|
|
43
|
+
tries = testRequest.tries || 1;
|
|
44
|
+
testPassed = false;
|
|
45
|
+
timedOut_1 = false;
|
|
46
|
+
retryTimeout = void 0;
|
|
47
|
+
testFailedDebug_1 = '';
|
|
48
|
+
response = void 0;
|
|
49
|
+
setRestClientRetryTime(defaultRetryTimer);
|
|
50
|
+
testCount++;
|
|
51
|
+
console.log("[cfWorker] testRequest #".concat(testCount, " = ").concat(JSON.stringify(testRequest, undefined, 2), "\n"));
|
|
52
|
+
if (typeof testRequest.retryTimeoutTimer !== 'undefined') {
|
|
53
|
+
setRestClientRetryTime(testRequest.retryTimeoutTimer);
|
|
54
|
+
console.log("[cfWorker] RETRY_TIME_WAIT (BEFORE) = ".concat(HttpClient.RETRY_WAIT_TIME, "\n"));
|
|
55
|
+
if (testRequest.retryTimeoutTimer !== 0) {
|
|
56
|
+
console.log("[cfWorker] setting setTimeout @ ".concat(HttpClient.RETRY_WAIT_TIME, " ms\n"));
|
|
57
|
+
retryTimeout = setTimeout(function () {
|
|
58
|
+
try {
|
|
59
|
+
throw new Error('Request was not retried within the interval defined by Retry-After, test failed');
|
|
60
|
+
}
|
|
61
|
+
catch (error) {
|
|
62
|
+
console.log("[cfWorker] ".concat(RED, "setTimeout fired!").concat(RESET, " @ ").concat(HttpClient.RETRY_WAIT_TIME, "\n"));
|
|
63
|
+
testFailedDebug_1 = JSON.stringify({
|
|
64
|
+
errorMessageReceived: error.message,
|
|
65
|
+
});
|
|
66
|
+
timedOut_1 = true;
|
|
67
|
+
}
|
|
68
|
+
}, testRequest.retryTimeoutTimer);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
_a = testRequest.method.toLowerCase();
|
|
72
|
+
switch (_a) {
|
|
73
|
+
case 'get': return [3 /*break*/, 2];
|
|
74
|
+
case 'post': return [3 /*break*/, 6];
|
|
75
|
+
case 'put': return [3 /*break*/, 8];
|
|
76
|
+
case 'delete': return [3 /*break*/, 10];
|
|
77
|
+
}
|
|
78
|
+
return [3 /*break*/, 12];
|
|
79
|
+
case 2:
|
|
80
|
+
_b.trys.push([2, 4, , 5]);
|
|
81
|
+
return [4 /*yield*/, client.get({
|
|
82
|
+
path: testRequest.url,
|
|
83
|
+
tries: tries,
|
|
84
|
+
extraHeaders: testRequest.headers,
|
|
85
|
+
})];
|
|
86
|
+
case 3:
|
|
87
|
+
response = _b.sent();
|
|
88
|
+
if (timedOut_1) {
|
|
89
|
+
console.log("[cfWorker] timedOut=".concat(timedOut_1, ", testPassed=").concat(testPassed, ", testFailedDebug=").concat(testFailedDebug_1, "\n"));
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
testPassed =
|
|
93
|
+
(0, utils_1.matchHeaders)(response.headers, expectedResponse.headers) && JSON.stringify(response.body) === expectedResponse.body;
|
|
94
|
+
testFailedDebug_1 = JSON.stringify({
|
|
95
|
+
bodyExpected: expectedResponse.body,
|
|
96
|
+
bodyReceived: response.body,
|
|
97
|
+
headersExpected: expectedResponse.headers,
|
|
98
|
+
headersReceived: response.headers,
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
return [3 /*break*/, 5];
|
|
102
|
+
case 4:
|
|
103
|
+
error_1 = _b.sent();
|
|
104
|
+
testPassed = error_1.constructor.name.startsWith(expectedResponse.errorType);
|
|
105
|
+
if (expectedResponse.errorType === 'HttpResponseError') {
|
|
106
|
+
testPassed =
|
|
107
|
+
testPassed &&
|
|
108
|
+
'response' in error_1 &&
|
|
109
|
+
'code' in error_1.response &&
|
|
110
|
+
error_1.response.code === expectedResponse.statusCode &&
|
|
111
|
+
'statusText' in error_1.response &&
|
|
112
|
+
error_1.response.statusText === expectedResponse.statusText;
|
|
113
|
+
}
|
|
114
|
+
if ('expectRequestId' in expectedResponse) {
|
|
115
|
+
testPassed =
|
|
116
|
+
testPassed &&
|
|
117
|
+
error_1.message.includes(expectedResponse.expectRequestId);
|
|
118
|
+
}
|
|
119
|
+
if ('errorMessage' in expectedResponse) {
|
|
120
|
+
testPassed =
|
|
121
|
+
testPassed && error_1.message === expectedResponse.errorMessage;
|
|
122
|
+
}
|
|
123
|
+
testFailedDebug_1 = JSON.stringify({
|
|
124
|
+
statusCodeExpected: expectedResponse.statusCode,
|
|
125
|
+
statusCodeReceived: error_1.code,
|
|
126
|
+
statusTextExpected: expectedResponse.statusText,
|
|
127
|
+
statusTextReceived: error_1.statusText,
|
|
128
|
+
errorTypeExpected: expectedResponse.errorType,
|
|
129
|
+
errorTypeReceived: error_1.constructor.name,
|
|
130
|
+
errorMessageExpected: expectedResponse.errorMessage,
|
|
131
|
+
errorMessageReceived: error_1.message,
|
|
132
|
+
});
|
|
133
|
+
return [3 /*break*/, 5];
|
|
134
|
+
case 5: return [3 /*break*/, 13];
|
|
135
|
+
case 6: return [4 /*yield*/, client.post(params(testRequest))];
|
|
136
|
+
case 7:
|
|
137
|
+
response = _b.sent();
|
|
138
|
+
testPassed = JSON.stringify(response.body) === expectedResponse.body;
|
|
139
|
+
return [3 /*break*/, 13];
|
|
140
|
+
case 8: return [4 /*yield*/, client.put(params(testRequest))];
|
|
141
|
+
case 9:
|
|
142
|
+
response = _b.sent();
|
|
143
|
+
testPassed = JSON.stringify(response.body) === expectedResponse.body;
|
|
144
|
+
return [3 /*break*/, 13];
|
|
145
|
+
case 10: return [4 /*yield*/, client.delete({ path: testRequest.url })];
|
|
146
|
+
case 11:
|
|
147
|
+
response = _b.sent();
|
|
148
|
+
testPassed = JSON.stringify(response.body) === expectedResponse.body;
|
|
149
|
+
return [3 /*break*/, 13];
|
|
150
|
+
case 12:
|
|
151
|
+
testPassed = false;
|
|
152
|
+
_b.label = 13;
|
|
153
|
+
case 13:
|
|
154
|
+
if (typeof testRequest.retryTimeoutTimer !== 'undefined' &&
|
|
155
|
+
testRequest.retryTimeoutTimer !== 0 &&
|
|
156
|
+
typeof retryTimeout !== 'undefined') {
|
|
157
|
+
clearTimeout(retryTimeout);
|
|
158
|
+
}
|
|
159
|
+
console.log("[cfWorker] test #".concat(testCount, " passed=").concat(testPassed ? GREEN : RED).concat(testPassed).concat(RESET, ", debug=").concat(JSON.stringify(testFailedDebug_1, undefined, 2), "\n"));
|
|
160
|
+
if (testPassed) {
|
|
161
|
+
return [2 /*return*/, new Response('Test passed!', { status: 200 })];
|
|
162
|
+
}
|
|
163
|
+
else {
|
|
164
|
+
return [2 /*return*/, new Response(testFailedDebug_1, {
|
|
165
|
+
status: 500,
|
|
166
|
+
headers: {
|
|
167
|
+
'Content-Type': 'application/json',
|
|
168
|
+
},
|
|
169
|
+
})];
|
|
170
|
+
}
|
|
171
|
+
return [3 /*break*/, 15];
|
|
172
|
+
case 14: return [2 /*return*/, new Response('Ready!', { status: 200 })];
|
|
173
|
+
case 15: return [2 /*return*/];
|
|
174
|
+
}
|
|
175
|
+
});
|
|
176
|
+
});
|
|
177
|
+
},
|
|
178
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-dummy-shopify-server.d.ts","sourceRoot":"","sources":["../../../../src/adapters/__e2etests__/test_apps/test-dummy-shopify-server.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
/* global process */
|
|
4
|
+
var http_1 = require("http");
|
|
5
|
+
var test_config_types_1 = require("../test_config_types");
|
|
6
|
+
var utils_1 = require("../utils");
|
|
7
|
+
// eslint-disable-next-line no-process-env
|
|
8
|
+
var port = parseInt(process.env.HTTP_SERVER_PORT || '3000', 10);
|
|
9
|
+
var errorStatusText = 'Did not work';
|
|
10
|
+
var requestId = 'Request id header';
|
|
11
|
+
var tests = {
|
|
12
|
+
200: {
|
|
13
|
+
expectedRequest: (0, test_config_types_1.initTestRequest)(),
|
|
14
|
+
testResponse: (0, test_config_types_1.initTestResponse)(),
|
|
15
|
+
},
|
|
16
|
+
custom: {
|
|
17
|
+
expectedRequest: (0, test_config_types_1.initTestRequest)({
|
|
18
|
+
headers: { 'X-Not-A-Real-Header': 'some_value' },
|
|
19
|
+
}),
|
|
20
|
+
testResponse: (0, test_config_types_1.initTestResponse)({
|
|
21
|
+
headers: { 'X-Not-A-Real-Header': 'some_value' },
|
|
22
|
+
}),
|
|
23
|
+
},
|
|
24
|
+
lowercaseua: {
|
|
25
|
+
expectedRequest: (0, test_config_types_1.initTestRequest)({
|
|
26
|
+
headers: { 'user-agent': 'My lowercase agent' },
|
|
27
|
+
}),
|
|
28
|
+
testResponse: (0, test_config_types_1.initTestResponse)({
|
|
29
|
+
headers: { 'user-agent': 'My lowercase agent' },
|
|
30
|
+
}),
|
|
31
|
+
},
|
|
32
|
+
uppercaseua: {
|
|
33
|
+
expectedRequest: (0, test_config_types_1.initTestRequest)({
|
|
34
|
+
headers: { 'User-Agent': 'My agent' },
|
|
35
|
+
}),
|
|
36
|
+
testResponse: (0, test_config_types_1.initTestResponse)({
|
|
37
|
+
headers: { 'User-Agent': 'My agent' },
|
|
38
|
+
}),
|
|
39
|
+
},
|
|
40
|
+
deprecatedget: {
|
|
41
|
+
expectedRequest: (0, test_config_types_1.initTestRequest)(),
|
|
42
|
+
testResponse: (0, test_config_types_1.initTestResponse)({
|
|
43
|
+
headers: {
|
|
44
|
+
'X-Shopify-API-Deprecated-Reason': 'This API endpoint has been deprecated',
|
|
45
|
+
},
|
|
46
|
+
body: JSON.stringify({ message: 'Some deprecated request' }),
|
|
47
|
+
}),
|
|
48
|
+
},
|
|
49
|
+
deprecatedpost: {
|
|
50
|
+
expectedRequest: (0, test_config_types_1.initTestRequest)(),
|
|
51
|
+
testResponse: (0, test_config_types_1.initTestResponse)({
|
|
52
|
+
headers: {
|
|
53
|
+
'X-Shopify-API-Deprecated-Reason': 'This API endpoint has been deprecated',
|
|
54
|
+
},
|
|
55
|
+
body: JSON.stringify({
|
|
56
|
+
message: 'Some deprecated post request',
|
|
57
|
+
body: {
|
|
58
|
+
query: 'some query',
|
|
59
|
+
},
|
|
60
|
+
}),
|
|
61
|
+
}),
|
|
62
|
+
},
|
|
63
|
+
403: {
|
|
64
|
+
expectedRequest: (0, test_config_types_1.initTestRequest)(),
|
|
65
|
+
testResponse: (0, test_config_types_1.initTestResponse)({
|
|
66
|
+
statusCode: 403,
|
|
67
|
+
statusText: errorStatusText,
|
|
68
|
+
headers: { 'x-request-id': requestId },
|
|
69
|
+
body: JSON.stringify({ errors: 'Something went wrong!' }),
|
|
70
|
+
}),
|
|
71
|
+
},
|
|
72
|
+
404: {
|
|
73
|
+
expectedRequest: (0, test_config_types_1.initTestRequest)(),
|
|
74
|
+
testResponse: (0, test_config_types_1.initTestResponse)({
|
|
75
|
+
statusCode: 404,
|
|
76
|
+
statusText: errorStatusText,
|
|
77
|
+
body: JSON.stringify({}),
|
|
78
|
+
}),
|
|
79
|
+
},
|
|
80
|
+
417: {
|
|
81
|
+
expectedRequest: (0, test_config_types_1.initTestRequest)(),
|
|
82
|
+
testResponse: (0, test_config_types_1.initTestResponse)({
|
|
83
|
+
statusCode: 417,
|
|
84
|
+
statusText: 'Expectation Failed',
|
|
85
|
+
}),
|
|
86
|
+
},
|
|
87
|
+
429: {
|
|
88
|
+
expectedRequest: (0, test_config_types_1.initTestRequest)(),
|
|
89
|
+
testResponse: (0, test_config_types_1.initTestResponse)({
|
|
90
|
+
statusCode: 429,
|
|
91
|
+
statusText: errorStatusText,
|
|
92
|
+
headers: { 'x-request-id': requestId },
|
|
93
|
+
body: JSON.stringify({ errors: 'Something went wrong!' }),
|
|
94
|
+
}),
|
|
95
|
+
},
|
|
96
|
+
wait: {
|
|
97
|
+
expectedRequest: (0, test_config_types_1.initTestRequest)(),
|
|
98
|
+
testResponse: (0, test_config_types_1.initTestResponse)({
|
|
99
|
+
statusCode: 429,
|
|
100
|
+
statusText: errorStatusText,
|
|
101
|
+
headers: { 'Retry-After': (0.1).toString() },
|
|
102
|
+
body: JSON.stringify({ errors: 'Something went wrong!' }),
|
|
103
|
+
}),
|
|
104
|
+
},
|
|
105
|
+
500: {
|
|
106
|
+
expectedRequest: (0, test_config_types_1.initTestRequest)(),
|
|
107
|
+
testResponse: (0, test_config_types_1.initTestResponse)({
|
|
108
|
+
statusCode: 500,
|
|
109
|
+
statusText: errorStatusText,
|
|
110
|
+
headers: { 'x-request-id': requestId },
|
|
111
|
+
body: JSON.stringify({}),
|
|
112
|
+
}),
|
|
113
|
+
},
|
|
114
|
+
error: {
|
|
115
|
+
expectedRequest: (0, test_config_types_1.initTestRequest)(),
|
|
116
|
+
testResponse: (0, test_config_types_1.initTestResponse)({
|
|
117
|
+
statusCode: 500,
|
|
118
|
+
statusText: errorStatusText,
|
|
119
|
+
body: JSON.stringify({ errors: 'Something went wrong' }),
|
|
120
|
+
}),
|
|
121
|
+
},
|
|
122
|
+
detailederror: {
|
|
123
|
+
expectedRequest: (0, test_config_types_1.initTestRequest)(),
|
|
124
|
+
testResponse: (0, test_config_types_1.initTestResponse)({
|
|
125
|
+
statusCode: 500,
|
|
126
|
+
statusText: errorStatusText,
|
|
127
|
+
body: JSON.stringify({
|
|
128
|
+
errors: { title: 'Invalid title', description: 'Invalid description' },
|
|
129
|
+
}),
|
|
130
|
+
}),
|
|
131
|
+
},
|
|
132
|
+
};
|
|
133
|
+
var retryCount = 0;
|
|
134
|
+
var server = (0, http_1.createServer)(function (req, res) {
|
|
135
|
+
var _a;
|
|
136
|
+
var lookup = (_a = req.url) === null || _a === void 0 ? void 0 : _a.match(/^\/url\/path\/([a-z0-9]*)$/);
|
|
137
|
+
var receivedHeaders = req.headers;
|
|
138
|
+
var code = lookup ? lookup[1] : '200';
|
|
139
|
+
var test = tests[code] || tests['200'];
|
|
140
|
+
var expectedRequest = test.expectedRequest;
|
|
141
|
+
var testResponse = test.testResponse;
|
|
142
|
+
if ((0, utils_1.matchHeaders)(receivedHeaders, expectedRequest.headers)) {
|
|
143
|
+
if (code === 'retries' && retryCount < 2) {
|
|
144
|
+
testResponse = tests['429'].testResponse;
|
|
145
|
+
retryCount += 1;
|
|
146
|
+
}
|
|
147
|
+
if (code === 'retrythenfail') {
|
|
148
|
+
if (retryCount === 0) {
|
|
149
|
+
testResponse = tests['500'].testResponse;
|
|
150
|
+
retryCount = 1;
|
|
151
|
+
}
|
|
152
|
+
else {
|
|
153
|
+
testResponse = tests['403'].testResponse;
|
|
154
|
+
// this is the end of the test, reset the counter
|
|
155
|
+
retryCount = 0;
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
if (code === 'retrythensuccess') {
|
|
159
|
+
if (retryCount === 0) {
|
|
160
|
+
testResponse = tests.wait.testResponse;
|
|
161
|
+
retryCount = 1;
|
|
162
|
+
}
|
|
163
|
+
else {
|
|
164
|
+
// this is the end of the test, reset the counter; response already defaults to success
|
|
165
|
+
retryCount = 0;
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
if (code === 'maxretries') {
|
|
169
|
+
testResponse = tests['500'].testResponse;
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
else {
|
|
173
|
+
// return an "expectation failed" message
|
|
174
|
+
testResponse = tests['417'].testResponse;
|
|
175
|
+
testResponse.body = JSON.stringify({
|
|
176
|
+
errors: {
|
|
177
|
+
message: 'There was a header mismatch between expected request and received request',
|
|
178
|
+
receivedHeaders: receivedHeaders,
|
|
179
|
+
expectedHeaders: expectedRequest.headers,
|
|
180
|
+
},
|
|
181
|
+
});
|
|
182
|
+
}
|
|
183
|
+
// console.log(response);
|
|
184
|
+
res.writeHead(testResponse.statusCode, testResponse.statusText, testResponse.headers);
|
|
185
|
+
res.end(testResponse.body);
|
|
186
|
+
// reset counters
|
|
187
|
+
if (code !== 'retries' && retryCount === 2) {
|
|
188
|
+
retryCount = 0;
|
|
189
|
+
}
|
|
190
|
+
if (code === 'endtest') {
|
|
191
|
+
handle(0);
|
|
192
|
+
}
|
|
193
|
+
});
|
|
194
|
+
function handle(_signal) {
|
|
195
|
+
process.exit(0);
|
|
196
|
+
}
|
|
197
|
+
process.on('SIGINT', handle);
|
|
198
|
+
process.on('SIGTERM', handle);
|
|
199
|
+
server.listen(port, function () {
|
|
200
|
+
console.log("Listening on :".concat(port));
|
|
201
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-node-app.d.ts","sourceRoot":"","sources":["../../../../src/adapters/__e2etests__/test_apps/test-node-app.ts"],"names":[],"mappings":"AAEA,OAAO,YAAY,CAAC"}
|
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var tslib_1 = require("tslib");
|
|
4
|
+
var http_1 = require("http");
|
|
5
|
+
require("../../node");
|
|
6
|
+
var http_client_1 = require("../../../clients/http_client/http_client");
|
|
7
|
+
var utils_1 = require("../utils");
|
|
8
|
+
/* Codes for different Colours */
|
|
9
|
+
var RED = '\x1b[31m';
|
|
10
|
+
var GREEN = '\x1b[32m';
|
|
11
|
+
var RESET = '\x1b[39m';
|
|
12
|
+
var HttpClient = (0, http_client_1.createHttpClientClass)(utils_1.config, 'http');
|
|
13
|
+
/* eslint-disable no-process-env */
|
|
14
|
+
var apiServerPort = parseInt(process.env.HTTP_SERVER_PORT || '3000', 10);
|
|
15
|
+
var appPort = parseInt(process.env.PORT || '8787', 10);
|
|
16
|
+
/* eslint-enable no-process-env */
|
|
17
|
+
var apiServer = "localhost:".concat(apiServerPort);
|
|
18
|
+
var client = new HttpClient({ domain: apiServer });
|
|
19
|
+
var defaultRetryTimer = HttpClient.RETRY_WAIT_TIME;
|
|
20
|
+
var testCount = 0;
|
|
21
|
+
var server = (0, http_1.createServer)(function (request, appResponse) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
|
|
22
|
+
var testConfig, testRequest, expectedResponse, tries, params, testPassed, timedOut_1, testFailedDebug_1, response, retryTimeout, _a, error_1;
|
|
23
|
+
return tslib_1.__generator(this, function (_b) {
|
|
24
|
+
switch (_b.label) {
|
|
25
|
+
case 0:
|
|
26
|
+
if (!(request.method === 'POST')) return [3 /*break*/, 14];
|
|
27
|
+
return [4 /*yield*/, getJSONDataFromRequestStream(request)];
|
|
28
|
+
case 1:
|
|
29
|
+
testConfig = _b.sent();
|
|
30
|
+
testRequest = testConfig.testRequest;
|
|
31
|
+
expectedResponse = testConfig.expectedResponse;
|
|
32
|
+
tries = testRequest.tries || 1;
|
|
33
|
+
params = {
|
|
34
|
+
path: testRequest.url,
|
|
35
|
+
type: testRequest.bodyType,
|
|
36
|
+
data: JSON.stringify(testRequest.body),
|
|
37
|
+
};
|
|
38
|
+
testPassed = false;
|
|
39
|
+
timedOut_1 = false;
|
|
40
|
+
testFailedDebug_1 = '';
|
|
41
|
+
response = void 0;
|
|
42
|
+
retryTimeout = void 0;
|
|
43
|
+
setRestClientRetryTime(defaultRetryTimer);
|
|
44
|
+
testCount++;
|
|
45
|
+
console.log("[node] testRequest #".concat(testCount, " = ").concat(JSON.stringify(testRequest, undefined, 2), "\n"));
|
|
46
|
+
if (typeof testRequest.retryTimeoutTimer !== 'undefined') {
|
|
47
|
+
setRestClientRetryTime(testRequest.retryTimeoutTimer);
|
|
48
|
+
console.log("[node] RETRY_TIME_WAIT (BEFORE) = ".concat(HttpClient.RETRY_WAIT_TIME, " ms\n\n"));
|
|
49
|
+
if (testRequest.retryTimeoutTimer !== 0) {
|
|
50
|
+
console.log("[node] setting setTimeout @ ".concat(HttpClient.RETRY_WAIT_TIME, " ms\n"));
|
|
51
|
+
retryTimeout = setTimeout(function () {
|
|
52
|
+
try {
|
|
53
|
+
throw new Error('Request was not retried within the interval defined by Retry-After, test failed');
|
|
54
|
+
}
|
|
55
|
+
catch (error) {
|
|
56
|
+
console.log("[node] ".concat(RED, "setTimeout fired!").concat(RESET, " @ ").concat(HttpClient.RETRY_WAIT_TIME, "\n"));
|
|
57
|
+
testFailedDebug_1 = JSON.stringify({
|
|
58
|
+
errorMessageReceived: error.message,
|
|
59
|
+
});
|
|
60
|
+
timedOut_1 = true;
|
|
61
|
+
}
|
|
62
|
+
}, testRequest.retryTimeoutTimer);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
_a = testRequest.method.toLowerCase();
|
|
66
|
+
switch (_a) {
|
|
67
|
+
case 'get': return [3 /*break*/, 2];
|
|
68
|
+
case 'post': return [3 /*break*/, 6];
|
|
69
|
+
case 'put': return [3 /*break*/, 8];
|
|
70
|
+
case 'delete': return [3 /*break*/, 10];
|
|
71
|
+
}
|
|
72
|
+
return [3 /*break*/, 12];
|
|
73
|
+
case 2:
|
|
74
|
+
_b.trys.push([2, 4, , 5]);
|
|
75
|
+
return [4 /*yield*/, client.get({
|
|
76
|
+
path: testRequest.url,
|
|
77
|
+
tries: tries,
|
|
78
|
+
extraHeaders: testRequest.headers,
|
|
79
|
+
})];
|
|
80
|
+
case 3:
|
|
81
|
+
response = _b.sent();
|
|
82
|
+
if (timedOut_1) {
|
|
83
|
+
console.log("[node] timedOut=".concat(timedOut_1, ", testPassed=").concat(testPassed, ", testFailedDebug=").concat(testFailedDebug_1, "\n"));
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
testPassed =
|
|
87
|
+
(0, utils_1.matchHeaders)(response.headers, expectedResponse.headers) && JSON.stringify(response.body) === expectedResponse.body;
|
|
88
|
+
testFailedDebug_1 = JSON.stringify({
|
|
89
|
+
bodyExpected: expectedResponse.body,
|
|
90
|
+
bodyReceived: response.body,
|
|
91
|
+
headersExpected: expectedResponse.headers,
|
|
92
|
+
headersReceived: response.headers,
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
return [3 /*break*/, 5];
|
|
96
|
+
case 4:
|
|
97
|
+
error_1 = _b.sent();
|
|
98
|
+
testPassed = error_1.constructor.name.startsWith(expectedResponse.errorType);
|
|
99
|
+
if (expectedResponse.errorType === 'HttpResponseError') {
|
|
100
|
+
testPassed =
|
|
101
|
+
testPassed &&
|
|
102
|
+
'response' in error_1 &&
|
|
103
|
+
'code' in error_1.response &&
|
|
104
|
+
error_1.response.code === expectedResponse.statusCode &&
|
|
105
|
+
'statusText' in error_1.response &&
|
|
106
|
+
error_1.response.statusText === expectedResponse.statusText;
|
|
107
|
+
}
|
|
108
|
+
if ('expectRequestId' in expectedResponse) {
|
|
109
|
+
testPassed =
|
|
110
|
+
testPassed &&
|
|
111
|
+
error_1.message.includes(expectedResponse.expectRequestId);
|
|
112
|
+
}
|
|
113
|
+
if ('errorMessage' in expectedResponse) {
|
|
114
|
+
testPassed =
|
|
115
|
+
testPassed && error_1.message === expectedResponse.errorMessage;
|
|
116
|
+
}
|
|
117
|
+
testFailedDebug_1 = JSON.stringify({
|
|
118
|
+
statusCodeExpected: expectedResponse.statusCode,
|
|
119
|
+
statusCodeReceived: error_1.code,
|
|
120
|
+
statusTextExpected: expectedResponse.statusText,
|
|
121
|
+
statusTextReceived: error_1.statusText,
|
|
122
|
+
errorTypeExpected: expectedResponse.errorType,
|
|
123
|
+
errorTypeReceived: error_1.constructor.name,
|
|
124
|
+
errorMessageExpected: expectedResponse.errorMessage,
|
|
125
|
+
errorMessageReceived: error_1.message,
|
|
126
|
+
});
|
|
127
|
+
return [3 /*break*/, 5];
|
|
128
|
+
case 5: return [3 /*break*/, 13];
|
|
129
|
+
case 6: return [4 /*yield*/, client.post(params)];
|
|
130
|
+
case 7:
|
|
131
|
+
response = _b.sent();
|
|
132
|
+
testPassed = JSON.stringify(response.body) === expectedResponse.body;
|
|
133
|
+
return [3 /*break*/, 13];
|
|
134
|
+
case 8: return [4 /*yield*/, client.put(params)];
|
|
135
|
+
case 9:
|
|
136
|
+
response = _b.sent();
|
|
137
|
+
testPassed = JSON.stringify(response.body) === expectedResponse.body;
|
|
138
|
+
return [3 /*break*/, 13];
|
|
139
|
+
case 10: return [4 /*yield*/, client.delete({ path: testRequest.url })];
|
|
140
|
+
case 11:
|
|
141
|
+
response = _b.sent();
|
|
142
|
+
testPassed = JSON.stringify(response.body) === expectedResponse.body;
|
|
143
|
+
return [3 /*break*/, 13];
|
|
144
|
+
case 12:
|
|
145
|
+
testPassed = false;
|
|
146
|
+
_b.label = 13;
|
|
147
|
+
case 13:
|
|
148
|
+
if (typeof testRequest.retryTimeoutTimer !== 'undefined' &&
|
|
149
|
+
testRequest.retryTimeoutTimer !== 0 &&
|
|
150
|
+
typeof retryTimeout !== 'undefined') {
|
|
151
|
+
clearTimeout(retryTimeout);
|
|
152
|
+
}
|
|
153
|
+
console.log("[node] test #".concat(testCount, " passed=").concat(testPassed ? GREEN : RED).concat(testPassed).concat(RESET, ", debug=").concat(JSON.stringify(testFailedDebug_1, undefined, 2), "\n"));
|
|
154
|
+
if (testPassed) {
|
|
155
|
+
appResponse.statusCode = 200;
|
|
156
|
+
appResponse.end('Test passed!');
|
|
157
|
+
}
|
|
158
|
+
else {
|
|
159
|
+
appResponse.statusCode = 500;
|
|
160
|
+
appResponse.setHeader('Content-Type', 'application/json');
|
|
161
|
+
appResponse.end(testFailedDebug_1);
|
|
162
|
+
}
|
|
163
|
+
return [3 /*break*/, 15];
|
|
164
|
+
case 14:
|
|
165
|
+
appResponse.statusCode = 200;
|
|
166
|
+
appResponse.end('Ready!');
|
|
167
|
+
_b.label = 15;
|
|
168
|
+
case 15: return [2 /*return*/];
|
|
169
|
+
}
|
|
170
|
+
});
|
|
171
|
+
}); });
|
|
172
|
+
function getJSONDataFromRequestStream(request) {
|
|
173
|
+
return new Promise(function (resolve) {
|
|
174
|
+
var chunks = [];
|
|
175
|
+
request.on('data', function (chunk) {
|
|
176
|
+
chunks.push(chunk);
|
|
177
|
+
});
|
|
178
|
+
request.on('end', function () {
|
|
179
|
+
resolve(JSON.parse(Buffer.concat(chunks).toString()));
|
|
180
|
+
});
|
|
181
|
+
});
|
|
182
|
+
}
|
|
183
|
+
function handle(_signal) {
|
|
184
|
+
process.exit(0);
|
|
185
|
+
}
|
|
186
|
+
function setRestClientRetryTime(time) {
|
|
187
|
+
// We de-type HttpClient here so we can alter its readonly time property
|
|
188
|
+
HttpClient.RETRY_WAIT_TIME = time;
|
|
189
|
+
}
|
|
190
|
+
process.on('SIGINT', handle);
|
|
191
|
+
process.on('SIGTERM', handle);
|
|
192
|
+
server.listen(appPort, function () {
|
|
193
|
+
console.log("Listening on :".concat(appPort));
|
|
194
|
+
});
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { ChildProcess } from 'child_process';
|
|
3
|
+
import { NormalizedRequest, NormalizedResponse } from '../../runtime/http';
|
|
4
|
+
import { DataType } from '../../clients/http_client/types';
|
|
5
|
+
export interface TestRequest extends NormalizedRequest {
|
|
6
|
+
bodyType?: DataType;
|
|
7
|
+
tries?: number;
|
|
8
|
+
query?: string;
|
|
9
|
+
retryTimeoutTimer?: number;
|
|
10
|
+
}
|
|
11
|
+
export interface TestResponse extends NormalizedResponse {
|
|
12
|
+
errorType?: string;
|
|
13
|
+
errorMessage?: string;
|
|
14
|
+
expectRequestId?: string;
|
|
15
|
+
}
|
|
16
|
+
export interface TestConfig {
|
|
17
|
+
testRequest: TestRequest;
|
|
18
|
+
expectedResponse: TestResponse;
|
|
19
|
+
}
|
|
20
|
+
export declare function initTestRequest(options?: Partial<TestRequest>): TestRequest;
|
|
21
|
+
export declare function initTestResponse(options?: Partial<TestResponse>): TestResponse;
|
|
22
|
+
export interface E2eTestEnvironment {
|
|
23
|
+
name: string;
|
|
24
|
+
domain: string;
|
|
25
|
+
dummyServerPort: string;
|
|
26
|
+
process: ChildProcess;
|
|
27
|
+
testable: boolean;
|
|
28
|
+
ready: boolean;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=test_config_types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test_config_types.d.ts","sourceRoot":"","sources":["../../../src/adapters/__e2etests__/test_config_types.ts"],"names":[],"mappings":";AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,eAAe,CAAC;AAE3C,OAAO,EAAC,iBAAiB,EAAE,kBAAkB,EAAC,MAAM,oBAAoB,CAAC;AACzE,OAAO,EAAC,QAAQ,EAAC,MAAM,iCAAiC,CAAC;AAEzD,MAAM,WAAW,WAAY,SAAQ,iBAAiB;IACpD,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AACD,MAAM,WAAW,YAAa,SAAQ,kBAAkB;IACtD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,UAAU;IACzB,WAAW,EAAE,WAAW,CAAC;IACzB,gBAAgB,EAAE,YAAY,CAAC;CAChC;AAED,wBAAgB,eAAe,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,WAAW,CAU3E;AAED,wBAAgB,gBAAgB,CAC9B,OAAO,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,GAC9B,YAAY,CAYd;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,YAAY,CAAC;IACtB,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,OAAO,CAAC;CAChB"}
|