@unchainedshop/api 2.0.0-beta7 → 2.0.0-beta9
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/jest.config.js +9 -0
- package/lib/acl.d.ts +2 -0
- package/lib/acl.js +2 -2
- package/lib/acl.js.map +1 -1
- package/lib/api-index.d.ts +4 -6
- package/lib/api-index.js +5 -13
- package/lib/api-index.js.map +1 -1
- package/lib/context.d.ts +0 -1
- package/lib/context.js +0 -12
- package/lib/context.js.map +1 -1
- package/lib/createGraphQLServer.d.ts +1 -1
- package/lib/createGraphQLServer.js +13 -50
- package/lib/createGraphQLServer.js.map +1 -1
- package/lib/errors.d.ts +20 -0
- package/lib/errors.js +20 -0
- package/lib/errors.js.map +1 -1
- package/lib/express/createApolloMiddleware.d.ts +4 -0
- package/lib/express/createApolloMiddleware.js +34 -0
- package/lib/express/createApolloMiddleware.js.map +1 -0
- package/lib/express/createBulkImportMiddleware.d.ts +2 -0
- package/lib/express/createBulkImportMiddleware.js +79 -0
- package/lib/express/createBulkImportMiddleware.js.map +1 -0
- package/lib/express/createERCMetadataMiddleware.d.ts +3 -0
- package/lib/express/createERCMetadataMiddleware.js +57 -0
- package/lib/express/createERCMetadataMiddleware.js.map +1 -0
- package/lib/express/createSingleSignOnMiddleware.d.ts +6 -0
- package/lib/express/createSingleSignOnMiddleware.js +71 -0
- package/lib/express/createSingleSignOnMiddleware.js.map +1 -0
- package/lib/express/index.d.ts +6 -0
- package/lib/express/index.js +27 -0
- package/lib/express/index.js.map +1 -0
- package/lib/loaders/index.js +5 -9
- package/lib/loaders/index.js.map +1 -1
- package/lib/resolvers/mutations/accounts/changePassword.d.ts +0 -2
- package/lib/resolvers/mutations/accounts/changePassword.js +14 -3
- package/lib/resolvers/mutations/accounts/changePassword.js.map +1 -1
- package/lib/resolvers/mutations/accounts/createUser.js +19 -5
- package/lib/resolvers/mutations/accounts/createUser.js.map +1 -1
- package/lib/resolvers/mutations/accounts/disableTOTP.js +15 -2
- package/lib/resolvers/mutations/accounts/disableTOTP.js.map +1 -1
- package/lib/resolvers/mutations/accounts/enableTOTP.js +12 -1
- package/lib/resolvers/mutations/accounts/enableTOTP.js.map +1 -1
- package/lib/resolvers/mutations/accounts/enrollUser.js +18 -5
- package/lib/resolvers/mutations/accounts/enrollUser.js.map +1 -1
- package/lib/resolvers/mutations/accounts/forgotPassword.js +11 -1
- package/lib/resolvers/mutations/accounts/forgotPassword.js.map +1 -1
- package/lib/resolvers/mutations/accounts/impersonate.js +1 -1
- package/lib/resolvers/mutations/accounts/impersonate.js.map +1 -1
- package/lib/resolvers/mutations/accounts/loginWithPassword.d.ts +0 -1
- package/lib/resolvers/mutations/accounts/loginWithPassword.js +22 -4
- package/lib/resolvers/mutations/accounts/loginWithPassword.js.map +1 -1
- package/lib/resolvers/mutations/accounts/loginWithWebAuthn.js +13 -1
- package/lib/resolvers/mutations/accounts/loginWithWebAuthn.js.map +1 -1
- package/lib/resolvers/mutations/accounts/logout.d.ts +1 -1
- package/lib/resolvers/mutations/accounts/logout.js +6 -2
- package/lib/resolvers/mutations/accounts/logout.js.map +1 -1
- package/lib/resolvers/mutations/accounts/logoutAllSessions.js +4 -1
- package/lib/resolvers/mutations/accounts/logoutAllSessions.js.map +1 -1
- package/lib/resolvers/mutations/accounts/resetPassword.d.ts +0 -1
- package/lib/resolvers/mutations/accounts/resetPassword.js +18 -3
- package/lib/resolvers/mutations/accounts/resetPassword.js.map +1 -1
- package/lib/resolvers/mutations/accounts/setPassword.d.ts +0 -1
- package/lib/resolvers/mutations/accounts/setPassword.js +1 -1
- package/lib/resolvers/mutations/accounts/setPassword.js.map +1 -1
- package/lib/resolvers/mutations/assortments/addAssortmentFilter.js +1 -2
- package/lib/resolvers/mutations/assortments/addAssortmentFilter.js.map +1 -1
- package/lib/resolvers/mutations/assortments/addAssortmentLink.js +16 -9
- package/lib/resolvers/mutations/assortments/addAssortmentLink.js.map +1 -1
- package/lib/resolvers/mutations/assortments/addAssortmentMedia.js +2 -3
- package/lib/resolvers/mutations/assortments/addAssortmentMedia.js.map +1 -1
- package/lib/resolvers/mutations/assortments/addAssortmentProduct.js +1 -2
- package/lib/resolvers/mutations/assortments/addAssortmentProduct.js.map +1 -1
- package/lib/resolvers/mutations/assortments/createAssortment.js +1 -2
- package/lib/resolvers/mutations/assortments/createAssortment.js.map +1 -1
- package/lib/resolvers/mutations/assortments/prepareAssortmentMediaUpload.js +0 -1
- package/lib/resolvers/mutations/assortments/prepareAssortmentMediaUpload.js.map +1 -1
- package/lib/resolvers/mutations/assortments/removeAssortment.js +1 -1
- package/lib/resolvers/mutations/assortments/removeAssortment.js.map +1 -1
- package/lib/resolvers/mutations/assortments/removeAssortmentFilter.js +1 -1
- package/lib/resolvers/mutations/assortments/removeAssortmentFilter.js.map +1 -1
- package/lib/resolvers/mutations/assortments/removeAssortmentLink.js +1 -1
- package/lib/resolvers/mutations/assortments/removeAssortmentLink.js.map +1 -1
- package/lib/resolvers/mutations/assortments/removeAssortmentMedia.js +2 -2
- package/lib/resolvers/mutations/assortments/removeAssortmentMedia.js.map +1 -1
- package/lib/resolvers/mutations/assortments/removeAssortmentProduct.js +1 -1
- package/lib/resolvers/mutations/assortments/removeAssortmentProduct.js.map +1 -1
- package/lib/resolvers/mutations/assortments/reorderAssortmentFilters.js +1 -1
- package/lib/resolvers/mutations/assortments/reorderAssortmentFilters.js.map +1 -1
- package/lib/resolvers/mutations/assortments/reorderAssortmentLinks.js +1 -1
- package/lib/resolvers/mutations/assortments/reorderAssortmentLinks.js.map +1 -1
- package/lib/resolvers/mutations/assortments/reorderAssortmentMedia.js +1 -1
- package/lib/resolvers/mutations/assortments/reorderAssortmentMedia.js.map +1 -1
- package/lib/resolvers/mutations/assortments/reorderAssortmentProducts.js +1 -1
- package/lib/resolvers/mutations/assortments/reorderAssortmentProducts.js.map +1 -1
- package/lib/resolvers/mutations/assortments/setBaseAssortment.js +1 -1
- package/lib/resolvers/mutations/assortments/setBaseAssortment.js.map +1 -1
- package/lib/resolvers/mutations/assortments/updateAssortment.js +1 -1
- package/lib/resolvers/mutations/assortments/updateAssortment.js.map +1 -1
- package/lib/resolvers/mutations/assortments/updateAssortmentMediaTexts.js +1 -1
- package/lib/resolvers/mutations/assortments/updateAssortmentMediaTexts.js.map +1 -1
- package/lib/resolvers/mutations/assortments/updateAssortmentTexts.js +1 -1
- package/lib/resolvers/mutations/assortments/updateAssortmentTexts.js.map +1 -1
- package/lib/resolvers/mutations/bookmarks/bookmark.js +2 -2
- package/lib/resolvers/mutations/bookmarks/bookmark.js.map +1 -1
- package/lib/resolvers/mutations/bookmarks/createBookmark.js +1 -1
- package/lib/resolvers/mutations/bookmarks/createBookmark.js.map +1 -1
- package/lib/resolvers/mutations/countries/createCountry.js +1 -2
- package/lib/resolvers/mutations/countries/createCountry.js.map +1 -1
- package/lib/resolvers/mutations/countries/removeCountry.js +1 -1
- package/lib/resolvers/mutations/countries/removeCountry.js.map +1 -1
- package/lib/resolvers/mutations/countries/updateCountry.js +1 -1
- package/lib/resolvers/mutations/countries/updateCountry.js.map +1 -1
- package/lib/resolvers/mutations/currencies/createCurrency.js +1 -2
- package/lib/resolvers/mutations/currencies/createCurrency.js.map +1 -1
- package/lib/resolvers/mutations/currencies/removeCurrency.js +1 -1
- package/lib/resolvers/mutations/currencies/removeCurrency.js.map +1 -1
- package/lib/resolvers/mutations/currencies/updateCurrency.js +1 -1
- package/lib/resolvers/mutations/currencies/updateCurrency.js.map +1 -1
- package/lib/resolvers/mutations/delivery/createDeliveryProvider.js +1 -2
- package/lib/resolvers/mutations/delivery/createDeliveryProvider.js.map +1 -1
- package/lib/resolvers/mutations/delivery/removeDeliveryProvider.js +1 -1
- package/lib/resolvers/mutations/delivery/removeDeliveryProvider.js.map +1 -1
- package/lib/resolvers/mutations/delivery/updateDeliveryProvider.js +1 -1
- package/lib/resolvers/mutations/delivery/updateDeliveryProvider.js.map +1 -1
- package/lib/resolvers/mutations/enrollments/activateEnrollment.js +1 -1
- package/lib/resolvers/mutations/enrollments/activateEnrollment.js.map +1 -1
- package/lib/resolvers/mutations/enrollments/terminateEnrollment.js +1 -1
- package/lib/resolvers/mutations/enrollments/terminateEnrollment.js.map +1 -1
- package/lib/resolvers/mutations/enrollments/updateEnrollment.d.ts +1 -1
- package/lib/resolvers/mutations/enrollments/updateEnrollment.js +5 -5
- package/lib/resolvers/mutations/enrollments/updateEnrollment.js.map +1 -1
- package/lib/resolvers/mutations/filters/createFilter.js +1 -2
- package/lib/resolvers/mutations/filters/createFilter.js.map +1 -1
- package/lib/resolvers/mutations/filters/createFilterOption.js +1 -1
- package/lib/resolvers/mutations/filters/createFilterOption.js.map +1 -1
- package/lib/resolvers/mutations/filters/removeFilter.d.ts +1 -1
- package/lib/resolvers/mutations/filters/removeFilter.js +4 -4
- package/lib/resolvers/mutations/filters/removeFilter.js.map +1 -1
- package/lib/resolvers/mutations/filters/updateFilter.js +1 -1
- package/lib/resolvers/mutations/filters/updateFilter.js.map +1 -1
- package/lib/resolvers/mutations/filters/updateFilterTexts.js +1 -1
- package/lib/resolvers/mutations/filters/updateFilterTexts.js.map +1 -1
- package/lib/resolvers/mutations/index.d.ts +2 -1
- package/lib/resolvers/mutations/index.js +2 -0
- package/lib/resolvers/mutations/index.js.map +1 -1
- package/lib/resolvers/mutations/languages/createLanguage.js +1 -2
- package/lib/resolvers/mutations/languages/createLanguage.js.map +1 -1
- package/lib/resolvers/mutations/languages/removeLanguage.js +1 -1
- package/lib/resolvers/mutations/languages/removeLanguage.js.map +1 -1
- package/lib/resolvers/mutations/languages/updateLanguage.js +1 -1
- package/lib/resolvers/mutations/languages/updateLanguage.js.map +1 -1
- package/lib/resolvers/mutations/orders/createCart.js +1 -1
- package/lib/resolvers/mutations/orders/createCart.js.map +1 -1
- package/lib/resolvers/mutations/orders/payOrder.js +1 -1
- package/lib/resolvers/mutations/orders/payOrder.js.map +1 -1
- package/lib/resolvers/mutations/orders/removeOrder.js +1 -1
- package/lib/resolvers/mutations/orders/removeOrder.js.map +1 -1
- package/lib/resolvers/mutations/pageView.d.ts +1 -1
- package/lib/resolvers/mutations/pageView.js +2 -2
- package/lib/resolvers/mutations/pageView.js.map +1 -1
- package/lib/resolvers/mutations/payment/createPaymentProvider.js +1 -2
- package/lib/resolvers/mutations/payment/createPaymentProvider.js.map +1 -1
- package/lib/resolvers/mutations/payment/registerPaymentCredentials.js +2 -2
- package/lib/resolvers/mutations/payment/registerPaymentCredentials.js.map +1 -1
- package/lib/resolvers/mutations/payment/removePaymentProvider.js +1 -1
- package/lib/resolvers/mutations/payment/removePaymentProvider.js.map +1 -1
- package/lib/resolvers/mutations/payment/updatePaymentProvider.js +1 -1
- package/lib/resolvers/mutations/payment/updatePaymentProvider.js.map +1 -1
- package/lib/resolvers/mutations/products/addProductAssignment.js +1 -1
- package/lib/resolvers/mutations/products/addProductAssignment.js.map +1 -1
- package/lib/resolvers/mutations/products/addProductMedia.js +1 -2
- package/lib/resolvers/mutations/products/addProductMedia.js.map +1 -1
- package/lib/resolvers/mutations/products/addProductReviewVote.js +1 -1
- package/lib/resolvers/mutations/products/addProductReviewVote.js.map +1 -1
- package/lib/resolvers/mutations/products/createProduct.js +1 -2
- package/lib/resolvers/mutations/products/createProduct.js.map +1 -1
- package/lib/resolvers/mutations/products/createProductBundleItem.js +1 -1
- package/lib/resolvers/mutations/products/createProductBundleItem.js.map +1 -1
- package/lib/resolvers/mutations/products/createProductReview.js +1 -1
- package/lib/resolvers/mutations/products/createProductReview.js.map +1 -1
- package/lib/resolvers/mutations/products/createProductVariation.js +1 -2
- package/lib/resolvers/mutations/products/createProductVariation.js.map +1 -1
- package/lib/resolvers/mutations/products/createProductVariationOption.js +4 -1
- package/lib/resolvers/mutations/products/createProductVariationOption.js.map +1 -1
- package/lib/resolvers/mutations/products/prepareProductMediaUpload.js +0 -1
- package/lib/resolvers/mutations/products/prepareProductMediaUpload.js.map +1 -1
- package/lib/resolvers/mutations/products/publishProduct.js +1 -1
- package/lib/resolvers/mutations/products/publishProduct.js.map +1 -1
- package/lib/resolvers/mutations/products/removeBundleItem.js +2 -2
- package/lib/resolvers/mutations/products/removeBundleItem.js.map +1 -1
- package/lib/resolvers/mutations/products/removeProduct.d.ts +1 -1
- package/lib/resolvers/mutations/products/removeProduct.js +17 -8
- package/lib/resolvers/mutations/products/removeProduct.js.map +1 -1
- package/lib/resolvers/mutations/products/removeProductAssignment.js +1 -1
- package/lib/resolvers/mutations/products/removeProductAssignment.js.map +1 -1
- package/lib/resolvers/mutations/products/removeProductMedia.js +2 -2
- package/lib/resolvers/mutations/products/removeProductMedia.js.map +1 -1
- package/lib/resolvers/mutations/products/removeProductReview.js +1 -1
- package/lib/resolvers/mutations/products/removeProductReview.js.map +1 -1
- package/lib/resolvers/mutations/products/removeProductReviewVote.js +1 -1
- package/lib/resolvers/mutations/products/removeProductReviewVote.js.map +1 -1
- package/lib/resolvers/mutations/products/removeProductVariation.js +1 -1
- package/lib/resolvers/mutations/products/removeProductVariation.js.map +1 -1
- package/lib/resolvers/mutations/products/removeProductVariationOption.js +1 -1
- package/lib/resolvers/mutations/products/removeProductVariationOption.js.map +1 -1
- package/lib/resolvers/mutations/products/reorderProductMedia.js +1 -1
- package/lib/resolvers/mutations/products/reorderProductMedia.js.map +1 -1
- package/lib/resolvers/mutations/products/unpublishProduct.js +1 -1
- package/lib/resolvers/mutations/products/unpublishProduct.js.map +1 -1
- package/lib/resolvers/mutations/products/updateProduct.js +1 -1
- package/lib/resolvers/mutations/products/updateProduct.js.map +1 -1
- package/lib/resolvers/mutations/products/updateProductCommerce.js +1 -1
- package/lib/resolvers/mutations/products/updateProductCommerce.js.map +1 -1
- package/lib/resolvers/mutations/products/updateProductMediaTexts.js +1 -1
- package/lib/resolvers/mutations/products/updateProductMediaTexts.js.map +1 -1
- package/lib/resolvers/mutations/products/updateProductPlan.js +1 -1
- package/lib/resolvers/mutations/products/updateProductPlan.js.map +1 -1
- package/lib/resolvers/mutations/products/updateProductReview.js +1 -1
- package/lib/resolvers/mutations/products/updateProductReview.js.map +1 -1
- package/lib/resolvers/mutations/products/updateProductSupply.js +1 -1
- package/lib/resolvers/mutations/products/updateProductSupply.js.map +1 -1
- package/lib/resolvers/mutations/products/updateProductTexts.js +1 -1
- package/lib/resolvers/mutations/products/updateProductTexts.js.map +1 -1
- package/lib/resolvers/mutations/products/updateProductTokenization.js +1 -1
- package/lib/resolvers/mutations/products/updateProductTokenization.js.map +1 -1
- package/lib/resolvers/mutations/products/updateProductVariationTexts.js +1 -1
- package/lib/resolvers/mutations/products/updateProductVariationTexts.js.map +1 -1
- package/lib/resolvers/mutations/products/updateProductWarehousing.js +1 -1
- package/lib/resolvers/mutations/products/updateProductWarehousing.js.map +1 -1
- package/lib/resolvers/mutations/users/prepareUserAvatarUpload.js +0 -1
- package/lib/resolvers/mutations/users/prepareUserAvatarUpload.js.map +1 -1
- package/lib/resolvers/mutations/users/removeUser.d.ts +4 -0
- package/lib/resolvers/mutations/users/removeUser.js +11 -0
- package/lib/resolvers/mutations/users/removeUser.js.map +1 -0
- package/lib/resolvers/mutations/users/setRoles.js +1 -1
- package/lib/resolvers/mutations/users/setRoles.js.map +1 -1
- package/lib/resolvers/mutations/users/setUserTags.js +1 -1
- package/lib/resolvers/mutations/users/setUserTags.js.map +1 -1
- package/lib/resolvers/mutations/users/updateUserAvatar.js +1 -2
- package/lib/resolvers/mutations/users/updateUserAvatar.js.map +1 -1
- package/lib/resolvers/mutations/users/updateUserProfile.js +1 -1
- package/lib/resolvers/mutations/users/updateUserProfile.js.map +1 -1
- package/lib/resolvers/mutations/utils/getOrderCart.js +1 -1
- package/lib/resolvers/mutations/utils/getOrderCart.js.map +1 -1
- package/lib/resolvers/mutations/warehousing/createWarehousingProvider.js +1 -2
- package/lib/resolvers/mutations/warehousing/createWarehousingProvider.js.map +1 -1
- package/lib/resolvers/mutations/warehousing/removeWarehousingProvider.js +1 -1
- package/lib/resolvers/mutations/warehousing/removeWarehousingProvider.js.map +1 -1
- package/lib/resolvers/mutations/warehousing/updateWarehousingProvider.js +1 -1
- package/lib/resolvers/mutations/warehousing/updateWarehousingProvider.js.map +1 -1
- package/lib/resolvers/mutations/worker/addWork.js +1 -1
- package/lib/resolvers/mutations/worker/addWork.js.map +1 -1
- package/lib/resolvers/mutations/worker/finishWork.js +1 -1
- package/lib/resolvers/mutations/worker/finishWork.js.map +1 -1
- package/lib/resolvers/mutations/worker/removeWork.js +1 -1
- package/lib/resolvers/mutations/worker/removeWork.js.map +1 -1
- package/lib/resolvers/queries/products/productCatalogPrices.js +0 -1
- package/lib/resolvers/queries/products/productCatalogPrices.js.map +1 -1
- package/lib/resolvers/queries/users/users.d.ts +2 -1
- package/lib/resolvers/queries/users/users.js.map +1 -1
- package/lib/resolvers/queries/worker/workQueue.d.ts +1 -1
- package/lib/resolvers/queries/worker/workQueue.js +1 -1
- package/lib/resolvers/queries/worker/workQueue.js.map +1 -1
- package/lib/resolvers/type/assortment/assortment-filter-types.d.ts +2 -2
- package/lib/resolvers/type/assortment/assortment-filter-types.js +0 -1
- package/lib/resolvers/type/assortment/assortment-filter-types.js.map +1 -1
- package/lib/resolvers/type/assortment/assortment-link-types.d.ts +2 -2
- package/lib/resolvers/type/assortment/assortment-link-types.js +0 -2
- package/lib/resolvers/type/assortment/assortment-link-types.js.map +1 -1
- package/lib/resolvers/type/assortment/assortment-media-types.d.ts +1 -1
- package/lib/resolvers/type/assortment/assortment-media-types.js +2 -0
- package/lib/resolvers/type/assortment/assortment-media-types.js.map +1 -1
- package/lib/resolvers/type/assortment/assortment-path-link-types.d.ts +1 -4
- package/lib/resolvers/type/assortment/assortment-path-link-types.js +1 -7
- package/lib/resolvers/type/assortment/assortment-path-link-types.js.map +1 -1
- package/lib/resolvers/type/assortment/assortment-product-types.d.ts +2 -2
- package/lib/resolvers/type/assortment/assortment-product-types.js +0 -2
- package/lib/resolvers/type/assortment/assortment-product-types.js.map +1 -1
- package/lib/resolvers/type/assortment/assortment-types.d.ts +1 -1
- package/lib/resolvers/type/assortment/assortment-types.js +8 -4
- package/lib/resolvers/type/assortment/assortment-types.js.map +1 -1
- package/lib/resolvers/type/bookmark-types.d.ts +1 -1
- package/lib/resolvers/type/bookmark-types.js +0 -1
- package/lib/resolvers/type/bookmark-types.js.map +1 -1
- package/lib/resolvers/type/country-types.d.ts +1 -1
- package/lib/resolvers/type/delivery-provider-types.d.ts +1 -1
- package/lib/resolvers/type/enrollment/enrollment-delivery-types.d.ts +2 -2
- package/lib/resolvers/type/enrollment/enrollment-payment-types.d.ts +2 -2
- package/lib/resolvers/type/enrollment/enrollment-period-types.d.ts +2 -2
- package/lib/resolvers/type/enrollment/enrollment-plan-tyes.d.ts +2 -2
- package/lib/resolvers/type/enrollment/enrollment-plan-tyes.js +0 -1
- package/lib/resolvers/type/enrollment/enrollment-plan-tyes.js.map +1 -1
- package/lib/resolvers/type/enrollment/enrollment-types.d.ts +2 -2
- package/lib/resolvers/type/event-types.d.ts +1 -1
- package/lib/resolvers/type/filter/filter-option-types.d.ts +2 -2
- package/lib/resolvers/type/filter/filter-types.d.ts +2 -2
- package/lib/resolvers/type/index.d.ts +1 -0
- package/lib/resolvers/type/login-method-response-types.d.ts +1 -0
- package/lib/resolvers/type/order/order-delivery-discount-types.d.ts +1 -1
- package/lib/resolvers/type/order/order-delivery-pickup-types.d.ts +1 -1
- package/lib/resolvers/type/order/order-delivery-shipping-types.d.ts +1 -1
- package/lib/resolvers/type/order/order-discount-types.d.ts +1 -1
- package/lib/resolvers/type/order/order-global-discount-types.d.ts +1 -1
- package/lib/resolvers/type/order/order-item-discount-types.d.ts +1 -1
- package/lib/resolvers/type/order/order-item-types.d.ts +1 -1
- package/lib/resolvers/type/order/order-item-types.js +0 -3
- package/lib/resolvers/type/order/order-item-types.js.map +1 -1
- package/lib/resolvers/type/order/order-payment-card-types.d.ts +1 -1
- package/lib/resolvers/type/order/order-payment-discount-types.d.ts +1 -1
- package/lib/resolvers/type/order/order-payment-generic-types.d.ts +1 -1
- package/lib/resolvers/type/order/order-payment-invoice-types.d.ts +1 -1
- package/lib/resolvers/type/order/order-types.d.ts +1 -1
- package/lib/resolvers/type/price-types.d.ts +1 -1
- package/lib/resolvers/type/product/product-assortment-path-types.js +1 -0
- package/lib/resolvers/type/product/product-assortment-path-types.js.map +1 -1
- package/lib/resolvers/type/product/product-bundle-item-types.js +0 -1
- package/lib/resolvers/type/product/product-bundle-item-types.js.map +1 -1
- package/lib/resolvers/type/product/product-configurable-types.js +1 -0
- package/lib/resolvers/type/product/product-configurable-types.js.map +1 -1
- package/lib/resolvers/type/product/product-discount.d.ts +1 -1
- package/lib/resolvers/type/product/product-media-types.js +2 -0
- package/lib/resolvers/type/product/product-media-types.js.map +1 -1
- package/lib/resolvers/type/product/product-plan-types.js +1 -12
- package/lib/resolvers/type/product/product-plan-types.js.map +1 -1
- package/lib/resolvers/type/product/product-review-types.d.ts +1 -1
- package/lib/resolvers/type/product/product-review-types.js +0 -1
- package/lib/resolvers/type/product/product-review-types.js.map +1 -1
- package/lib/resolvers/type/product/product-variation-assignment-types.js +0 -1
- package/lib/resolvers/type/product/product-variation-assignment-types.js.map +1 -1
- package/lib/resolvers/type/quotation-types.d.ts +2 -2
- package/lib/resolvers/type/quotation-types.js +0 -1
- package/lib/resolvers/type/quotation-types.js.map +1 -1
- package/lib/resolvers/type/shop-types.d.ts +1 -1
- package/lib/resolvers/type/token-types.d.ts +1 -1
- package/lib/resolvers/type/token-types.js +2 -1
- package/lib/resolvers/type/token-types.js.map +1 -1
- package/lib/resolvers/type/user-types.d.ts +4 -3
- package/lib/resolvers/type/user-types.js +10 -21
- package/lib/resolvers/type/user-types.js.map +1 -1
- package/lib/resolvers/type/webauthn-credentials-types.d.ts +1 -1
- package/lib/resolvers/type/work-types.d.ts +1 -1
- package/lib/roles/admin.js +3 -72
- package/lib/roles/admin.js.map +1 -1
- package/lib/schema/{types/log.d.ts → directives.d.ts} +0 -0
- package/lib/schema/directives.js +15 -0
- package/lib/schema/directives.js.map +1 -0
- package/lib/schema/index.js +2 -1
- package/lib/schema/index.js.map +1 -1
- package/lib/schema/inputTypes.js +0 -15
- package/lib/schema/inputTypes.js.map +1 -1
- package/lib/schema/mutation.js +22 -36
- package/lib/schema/mutation.js.map +1 -1
- package/lib/schema/query.js +42 -22
- package/lib/schema/query.js.map +1 -1
- package/lib/schema/types/assortment.js +10 -10
- package/lib/schema/types/color.js +1 -1
- package/lib/schema/types/country.js +1 -1
- package/lib/schema/types/currency.js +1 -1
- package/lib/schema/types/delivery.js +3 -2
- package/lib/schema/types/delivery.js.map +1 -1
- package/lib/schema/types/dimensions.js +1 -1
- package/lib/schema/types/discount.js +1 -1
- package/lib/schema/types/filter.js +5 -8
- package/lib/schema/types/filter.js.map +1 -1
- package/lib/schema/types/geo-position.js +1 -1
- package/lib/schema/types/language.js +1 -1
- package/lib/schema/types/media.js +1 -1
- package/lib/schema/types/payment.js +3 -3
- package/lib/schema/types/price.js +2 -2
- package/lib/schema/types/product/bundle-product.js +2 -3
- package/lib/schema/types/product/bundle-product.js.map +1 -1
- package/lib/schema/types/product/configurable-product.js +7 -7
- package/lib/schema/types/product/plan-product.js +3 -3
- package/lib/schema/types/product/product.js +11 -11
- package/lib/schema/types/product/simple-product.js +4 -4
- package/lib/schema/types/product/tokenized-product.js +3 -3
- package/lib/schema/types/search.js +3 -8
- package/lib/schema/types/search.js.map +1 -1
- package/lib/schema/types/shop.js +2 -2
- package/lib/schema/types/types.js +1 -1
- package/lib/schema/types/user.js +4 -3
- package/lib/schema/types/user.js.map +1 -1
- package/lib/schema/types/warehousing.js +3 -3
- package/package.json +26 -12
- package/src/acl.ts +2 -2
- package/src/api-index.ts +6 -27
- package/src/context.ts +0 -18
- package/src/createGraphQLServer.ts +14 -68
- package/src/errors.ts +85 -0
- package/src/express/createApolloMiddleware.ts +40 -0
- package/src/express/createBulkImportMiddleware.ts +87 -0
- package/src/express/createERCMetadataMiddleware.ts +73 -0
- package/src/express/createSingleSignOnMiddleware.ts +84 -0
- package/src/express/index.ts +48 -0
- package/src/loaders/index.ts +27 -35
- package/src/resolvers/mutations/accounts/changePassword.ts +11 -6
- package/src/resolvers/mutations/accounts/createUser.ts +21 -6
- package/src/resolvers/mutations/accounts/disableTOTP.ts +13 -3
- package/src/resolvers/mutations/accounts/enableTOTP.ts +9 -2
- package/src/resolvers/mutations/accounts/enrollUser.ts +20 -5
- package/src/resolvers/mutations/accounts/forgotPassword.ts +8 -1
- package/src/resolvers/mutations/accounts/impersonate.ts +1 -1
- package/src/resolvers/mutations/accounts/loginWithPassword.ts +27 -5
- package/src/resolvers/mutations/accounts/loginWithWebAuthn.ts +13 -2
- package/src/resolvers/mutations/accounts/logout.ts +9 -2
- package/src/resolvers/mutations/accounts/logoutAllSessions.ts +7 -1
- package/src/resolvers/mutations/accounts/resetPassword.ts +21 -5
- package/src/resolvers/mutations/accounts/setPassword.ts +2 -2
- package/src/resolvers/mutations/assortments/addAssortmentFilter.ts +5 -9
- package/src/resolvers/mutations/assortments/addAssortmentLink.ts +22 -14
- package/src/resolvers/mutations/assortments/addAssortmentMedia.ts +2 -6
- package/src/resolvers/mutations/assortments/addAssortmentProduct.ts +0 -2
- package/src/resolvers/mutations/assortments/createAssortment.ts +4 -8
- package/src/resolvers/mutations/assortments/prepareAssortmentMediaUpload.ts +0 -1
- package/src/resolvers/mutations/assortments/removeAssortment.ts +1 -1
- package/src/resolvers/mutations/assortments/removeAssortmentFilter.ts +1 -1
- package/src/resolvers/mutations/assortments/removeAssortmentLink.ts +1 -1
- package/src/resolvers/mutations/assortments/removeAssortmentMedia.ts +2 -2
- package/src/resolvers/mutations/assortments/removeAssortmentProduct.ts +1 -1
- package/src/resolvers/mutations/assortments/reorderAssortmentFilters.ts +3 -6
- package/src/resolvers/mutations/assortments/reorderAssortmentLinks.ts +0 -1
- package/src/resolvers/mutations/assortments/reorderAssortmentMedia.ts +3 -6
- package/src/resolvers/mutations/assortments/reorderAssortmentProducts.ts +0 -1
- package/src/resolvers/mutations/assortments/setBaseAssortment.ts +1 -1
- package/src/resolvers/mutations/assortments/updateAssortment.ts +1 -1
- package/src/resolvers/mutations/assortments/updateAssortmentMediaTexts.ts +1 -1
- package/src/resolvers/mutations/assortments/updateAssortmentTexts.ts +1 -1
- package/src/resolvers/mutations/bookmarks/bookmark.ts +4 -7
- package/src/resolvers/mutations/bookmarks/createBookmark.ts +4 -7
- package/src/resolvers/mutations/countries/createCountry.ts +3 -7
- package/src/resolvers/mutations/countries/removeCountry.ts +1 -1
- package/src/resolvers/mutations/countries/updateCountry.ts +1 -1
- package/src/resolvers/mutations/currencies/createCurrency.ts +3 -7
- package/src/resolvers/mutations/currencies/removeCurrency.ts +1 -1
- package/src/resolvers/mutations/currencies/updateCurrency.ts +1 -1
- package/src/resolvers/mutations/delivery/createDeliveryProvider.ts +3 -7
- package/src/resolvers/mutations/delivery/removeDeliveryProvider.ts +1 -1
- package/src/resolvers/mutations/delivery/updateDeliveryProvider.ts +1 -1
- package/src/resolvers/mutations/enrollments/activateEnrollment.ts +1 -1
- package/src/resolvers/mutations/enrollments/terminateEnrollment.ts +1 -1
- package/src/resolvers/mutations/enrollments/updateEnrollment.ts +5 -5
- package/src/resolvers/mutations/filters/createFilter.ts +0 -2
- package/src/resolvers/mutations/filters/createFilterOption.ts +5 -1
- package/src/resolvers/mutations/filters/removeFilter.ts +4 -4
- package/src/resolvers/mutations/filters/updateFilter.ts +1 -1
- package/src/resolvers/mutations/filters/updateFilterTexts.ts +1 -1
- package/src/resolvers/mutations/index.ts +2 -0
- package/src/resolvers/mutations/languages/createLanguage.ts +3 -7
- package/src/resolvers/mutations/languages/removeLanguage.ts +1 -1
- package/src/resolvers/mutations/languages/updateLanguage.ts +1 -1
- package/src/resolvers/mutations/orders/createCart.ts +4 -1
- package/src/resolvers/mutations/orders/payOrder.ts +1 -1
- package/src/resolvers/mutations/orders/removeOrder.ts +1 -1
- package/src/resolvers/mutations/pageView.ts +2 -2
- package/src/resolvers/mutations/payment/createPaymentProvider.ts +3 -7
- package/src/resolvers/mutations/payment/registerPaymentCredentials.ts +6 -2
- package/src/resolvers/mutations/payment/removePaymentProvider.ts +1 -1
- package/src/resolvers/mutations/payment/updatePaymentProvider.ts +1 -1
- package/src/resolvers/mutations/products/addProductAssignment.ts +4 -8
- package/src/resolvers/mutations/products/addProductMedia.ts +1 -2
- package/src/resolvers/mutations/products/addProductReviewVote.ts +1 -1
- package/src/resolvers/mutations/products/createProduct.ts +4 -8
- package/src/resolvers/mutations/products/createProductBundleItem.ts +1 -1
- package/src/resolvers/mutations/products/createProductReview.ts +5 -8
- package/src/resolvers/mutations/products/createProductVariation.ts +6 -10
- package/src/resolvers/mutations/products/createProductVariationOption.ts +4 -5
- package/src/resolvers/mutations/products/prepareProductMediaUpload.ts +0 -1
- package/src/resolvers/mutations/products/publishProduct.ts +1 -1
- package/src/resolvers/mutations/products/removeBundleItem.ts +2 -2
- package/src/resolvers/mutations/products/removeProduct.ts +26 -7
- package/src/resolvers/mutations/products/removeProductAssignment.ts +1 -1
- package/src/resolvers/mutations/products/removeProductMedia.ts +2 -2
- package/src/resolvers/mutations/products/removeProductReview.ts +1 -1
- package/src/resolvers/mutations/products/removeProductReviewVote.ts +1 -1
- package/src/resolvers/mutations/products/removeProductVariation.ts +1 -1
- package/src/resolvers/mutations/products/removeProductVariationOption.ts +0 -1
- package/src/resolvers/mutations/products/reorderProductMedia.ts +1 -1
- package/src/resolvers/mutations/products/unpublishProduct.ts +1 -1
- package/src/resolvers/mutations/products/updateProduct.ts +1 -1
- package/src/resolvers/mutations/products/updateProductCommerce.ts +1 -1
- package/src/resolvers/mutations/products/updateProductMediaTexts.ts +1 -1
- package/src/resolvers/mutations/products/updateProductPlan.ts +1 -1
- package/src/resolvers/mutations/products/updateProductReview.ts +1 -1
- package/src/resolvers/mutations/products/updateProductSupply.ts +1 -1
- package/src/resolvers/mutations/products/updateProductTexts.ts +1 -1
- package/src/resolvers/mutations/products/updateProductTokenization.ts +1 -1
- package/src/resolvers/mutations/products/updateProductVariationTexts.ts +0 -1
- package/src/resolvers/mutations/products/updateProductWarehousing.ts +1 -1
- package/src/resolvers/mutations/users/prepareUserAvatarUpload.ts +0 -1
- package/src/resolvers/mutations/users/removeUser.ts +19 -0
- package/src/resolvers/mutations/users/setRoles.ts +1 -1
- package/src/resolvers/mutations/users/setUserTags.ts +1 -1
- package/src/resolvers/mutations/users/updateUserAvatar.ts +1 -2
- package/src/resolvers/mutations/users/updateUserProfile.ts +1 -1
- package/src/resolvers/mutations/utils/getOrderCart.ts +1 -1
- package/src/resolvers/mutations/warehousing/createWarehousingProvider.ts +3 -7
- package/src/resolvers/mutations/warehousing/removeWarehousingProvider.ts +1 -1
- package/src/resolvers/mutations/warehousing/updateWarehousingProvider.ts +1 -1
- package/src/resolvers/mutations/worker/addWork.ts +1 -1
- package/src/resolvers/mutations/worker/finishWork.ts +8 -12
- package/src/resolvers/mutations/worker/removeWork.ts +1 -1
- package/src/resolvers/queries/products/productCatalogPrices.ts +0 -1
- package/src/resolvers/queries/users/users.ts +2 -1
- package/src/resolvers/queries/worker/workQueue.ts +1 -1
- package/src/resolvers/type/assortment/assortment-filter-types.ts +0 -1
- package/src/resolvers/type/assortment/assortment-link-types.ts +0 -2
- package/src/resolvers/type/assortment/assortment-media-types.ts +2 -0
- package/src/resolvers/type/assortment/assortment-path-link-types.ts +1 -11
- package/src/resolvers/type/assortment/assortment-product-types.ts +0 -2
- package/src/resolvers/type/assortment/assortment-types.ts +9 -4
- package/src/resolvers/type/bookmark-types.ts +0 -1
- package/src/resolvers/type/enrollment/enrollment-plan-tyes.ts +0 -1
- package/src/resolvers/type/order/order-item-types.ts +0 -3
- package/src/resolvers/type/product/product-assortment-path-types.ts +1 -0
- package/src/resolvers/type/product/product-bundle-item-types.ts +0 -1
- package/src/resolvers/type/product/product-configurable-types.ts +1 -0
- package/src/resolvers/type/product/product-media-types.ts +2 -0
- package/src/resolvers/type/product/product-plan-types.ts +2 -18
- package/src/resolvers/type/product/product-review-types.ts +0 -1
- package/src/resolvers/type/product/product-variation-assignment-types.ts +0 -1
- package/src/resolvers/type/quotation-types.ts +0 -1
- package/src/resolvers/type/token-types.ts +2 -1
- package/src/resolvers/type/user-types.ts +14 -25
- package/src/roles/admin.ts +3 -72
- package/src/schema/directives.js +14 -0
- package/src/schema/index.js +2 -1
- package/src/schema/inputTypes.js +0 -15
- package/src/schema/mutation.js +22 -36
- package/src/schema/query.js +42 -22
- package/src/schema/types/assortment.js +10 -10
- package/src/schema/types/color.js +1 -1
- package/src/schema/types/country.js +1 -1
- package/src/schema/types/currency.js +1 -1
- package/src/schema/types/delivery.js +3 -2
- package/src/schema/types/dimensions.js +1 -1
- package/src/schema/types/discount.js +1 -1
- package/src/schema/types/filter.js +5 -8
- package/src/schema/types/geo-position.js +1 -1
- package/src/schema/types/language.js +1 -1
- package/src/schema/types/media.js +1 -1
- package/src/schema/types/payment.js +3 -3
- package/src/schema/types/price.js +2 -2
- package/src/schema/types/product/bundle-product.js +2 -3
- package/src/schema/types/product/configurable-product.js +7 -7
- package/src/schema/types/product/plan-product.js +3 -3
- package/src/schema/types/product/product.js +11 -11
- package/src/schema/types/product/simple-product.js +4 -4
- package/src/schema/types/product/tokenized-product.js +3 -3
- package/src/schema/types/search.js +3 -8
- package/src/schema/types/shop.js +2 -2
- package/src/schema/types/types.js +1 -1
- package/src/schema/types/user.js +4 -3
- package/src/schema/types/warehousing.js +3 -3
- package/tests/api-index.test.ts +78 -0
- package/lib/createBulkImportServer.d.ts +0 -2
- package/lib/createBulkImportServer.js +0 -81
- package/lib/createBulkImportServer.js.map +0 -1
- package/lib/createERCMetadataServer.d.ts +0 -2
- package/lib/createERCMetadataServer.js +0 -59
- package/lib/createERCMetadataServer.js.map +0 -1
- package/lib/schema/types/log.js +0 -16
- package/lib/schema/types/log.js.map +0 -1
- package/src/createBulkImportServer.ts +0 -95
- package/src/createERCMetadataServer.ts +0 -78
- package/src/schema/types/log.js +0 -15
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export default [
|
|
2
2
|
/* GraphQL */ `
|
|
3
|
-
type PaymentInterface {
|
|
3
|
+
type PaymentInterface @cacheControl(maxAge: 180) {
|
|
4
4
|
_id: ID!
|
|
5
5
|
label: String
|
|
6
6
|
version: String
|
|
@@ -30,7 +30,7 @@ export default [
|
|
|
30
30
|
WRONG_CREDENTIALS
|
|
31
31
|
}
|
|
32
32
|
|
|
33
|
-
type PaymentCredentials {
|
|
33
|
+
type PaymentCredentials @cacheControl(maxAge: 0, scope: PRIVATE) {
|
|
34
34
|
_id: ID!
|
|
35
35
|
user: User!
|
|
36
36
|
paymentProvider: PaymentProvider!
|
|
@@ -40,7 +40,7 @@ export default [
|
|
|
40
40
|
isPreferred: Boolean!
|
|
41
41
|
}
|
|
42
42
|
|
|
43
|
-
type PaymentProvider {
|
|
43
|
+
type PaymentProvider @cacheControl(maxAge: 60) {
|
|
44
44
|
_id: ID!
|
|
45
45
|
created: DateTime
|
|
46
46
|
updated: DateTime
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export default [
|
|
2
2
|
/* GraphQL */ `
|
|
3
|
-
type Price {
|
|
3
|
+
type Price @cacheControl(maxAge: 60) {
|
|
4
4
|
_id: ID!
|
|
5
5
|
isTaxable: Boolean!
|
|
6
6
|
isNetPrice: Boolean!
|
|
@@ -8,7 +8,7 @@ export default [
|
|
|
8
8
|
currency: String!
|
|
9
9
|
}
|
|
10
10
|
|
|
11
|
-
type PriceRange {
|
|
11
|
+
type PriceRange @cacheControl(maxAge: 60) {
|
|
12
12
|
_id: ID!
|
|
13
13
|
minPrice: Price!
|
|
14
14
|
maxPrice: Price!
|
|
@@ -3,7 +3,7 @@ export default [
|
|
|
3
3
|
"""
|
|
4
4
|
A Bundle product consists of multiple configured products
|
|
5
5
|
"""
|
|
6
|
-
type BundleProduct implements Product {
|
|
6
|
+
type BundleProduct implements Product @cacheControl(maxAge: 180) {
|
|
7
7
|
_id: ID!
|
|
8
8
|
sequence: Int!
|
|
9
9
|
status: ProductStatus!
|
|
@@ -20,7 +20,6 @@ export default [
|
|
|
20
20
|
sort: [SortOptionInput!]
|
|
21
21
|
queryString: String
|
|
22
22
|
): [ProductReview!]!
|
|
23
|
-
|
|
24
23
|
assortmentPaths: [ProductAssortmentPath!]!
|
|
25
24
|
siblings(
|
|
26
25
|
assortmentId: ID
|
|
@@ -30,7 +29,7 @@ export default [
|
|
|
30
29
|
): [Product!]!
|
|
31
30
|
}
|
|
32
31
|
|
|
33
|
-
type ProductBundleItem {
|
|
32
|
+
type ProductBundleItem @cacheControl(maxAge: 180) {
|
|
34
33
|
product: Product!
|
|
35
34
|
quantity: Int!
|
|
36
35
|
configuration: [ProductConfigurationParameter!]
|
|
@@ -12,20 +12,20 @@ export default [
|
|
|
12
12
|
TEXT
|
|
13
13
|
}
|
|
14
14
|
|
|
15
|
-
type ProductVariationTexts {
|
|
15
|
+
type ProductVariationTexts @cacheControl(maxAge: 180) {
|
|
16
16
|
_id: ID!
|
|
17
17
|
locale: String
|
|
18
18
|
title: String
|
|
19
19
|
subtitle: String
|
|
20
20
|
}
|
|
21
21
|
|
|
22
|
-
type ProductVariationOption {
|
|
22
|
+
type ProductVariationOption @cacheControl(maxAge: 180) {
|
|
23
23
|
_id: ID!
|
|
24
24
|
texts(forceLocale: String): ProductVariationTexts
|
|
25
25
|
value: String
|
|
26
26
|
}
|
|
27
27
|
|
|
28
|
-
type ProductVariation {
|
|
28
|
+
type ProductVariation @cacheControl(maxAge: 180) {
|
|
29
29
|
_id: ID!
|
|
30
30
|
texts(forceLocale: String): ProductVariationTexts
|
|
31
31
|
type: ProductVariationType
|
|
@@ -36,7 +36,7 @@ export default [
|
|
|
36
36
|
"""
|
|
37
37
|
Key Value Combination
|
|
38
38
|
"""
|
|
39
|
-
type ProductVariationAssignmentVector {
|
|
39
|
+
type ProductVariationAssignmentVector @cacheControl(maxAge: 180) {
|
|
40
40
|
_id: ID!
|
|
41
41
|
variation: ProductVariation
|
|
42
42
|
option: ProductVariationOption
|
|
@@ -45,7 +45,7 @@ export default [
|
|
|
45
45
|
"""
|
|
46
46
|
Key Value Combination to Product Assignment
|
|
47
47
|
"""
|
|
48
|
-
type ProductVariationAssignment {
|
|
48
|
+
type ProductVariationAssignment @cacheControl(maxAge: 180) {
|
|
49
49
|
_id: ID!
|
|
50
50
|
|
|
51
51
|
"""
|
|
@@ -62,7 +62,7 @@ export default [
|
|
|
62
62
|
"""
|
|
63
63
|
Configurable Product (Proxy)
|
|
64
64
|
"""
|
|
65
|
-
type ConfigurableProduct implements Product {
|
|
65
|
+
type ConfigurableProduct implements Product @cacheControl(maxAge: 180) {
|
|
66
66
|
_id: ID!
|
|
67
67
|
sequence: Int!
|
|
68
68
|
status: ProductStatus!
|
|
@@ -97,7 +97,7 @@ export default [
|
|
|
97
97
|
includeInactive: Boolean = false
|
|
98
98
|
currency: String
|
|
99
99
|
useNetPrice: Boolean = false
|
|
100
|
-
): PriceRange
|
|
100
|
+
): PriceRange @cacheControl(scope: PRIVATE)
|
|
101
101
|
|
|
102
102
|
"""
|
|
103
103
|
Reduced list of possible products by key/value combinations
|
|
@@ -13,7 +13,7 @@ export default [
|
|
|
13
13
|
METERED
|
|
14
14
|
}
|
|
15
15
|
|
|
16
|
-
type ProductPlanConfiguration {
|
|
16
|
+
type ProductPlanConfiguration @cacheControl(maxAge: 180) {
|
|
17
17
|
usageCalculationType: ProductPlanUsageCalculationType!
|
|
18
18
|
billingInterval: ProductPlanConfigurationInterval!
|
|
19
19
|
billingIntervalCount: Int
|
|
@@ -32,7 +32,7 @@ export default [
|
|
|
32
32
|
"""
|
|
33
33
|
Plan (Virtual Product that somebody can enroll to)
|
|
34
34
|
"""
|
|
35
|
-
type PlanProduct implements Product {
|
|
35
|
+
type PlanProduct implements Product @cacheControl(maxAge: 180) {
|
|
36
36
|
_id: ID!
|
|
37
37
|
sequence: Int!
|
|
38
38
|
status: ProductStatus!
|
|
@@ -45,7 +45,7 @@ export default [
|
|
|
45
45
|
catalogPrice(quantity: Int = 1, currency: String): Price
|
|
46
46
|
leveledCatalogPrices(currency: String): [PriceLevel!]!
|
|
47
47
|
simulatedPrice(currency: String, useNetPrice: Boolean = false, quantity: Int = 1): Price
|
|
48
|
-
|
|
48
|
+
@cacheControl(scope: PRIVATE)
|
|
49
49
|
assortmentPaths(forceLocale: String): [ProductAssortmentPath!]!
|
|
50
50
|
siblings(
|
|
51
51
|
assortmentId: ID
|
|
@@ -17,20 +17,20 @@ export default [
|
|
|
17
17
|
DELETED
|
|
18
18
|
}
|
|
19
19
|
|
|
20
|
-
type ProductDiscount {
|
|
20
|
+
type ProductDiscount @cacheControl(maxAge: 0) {
|
|
21
21
|
_id: ID!
|
|
22
22
|
interface: DiscountInterface
|
|
23
23
|
total: Price!
|
|
24
24
|
}
|
|
25
25
|
|
|
26
|
-
type ProductMediaTexts {
|
|
26
|
+
type ProductMediaTexts @cacheControl(maxAge: 180) {
|
|
27
27
|
_id: ID!
|
|
28
28
|
locale: String
|
|
29
29
|
title: String
|
|
30
30
|
subtitle: String
|
|
31
31
|
}
|
|
32
32
|
|
|
33
|
-
type ProductMedia {
|
|
33
|
+
type ProductMedia @cacheControl(maxAge: 180) {
|
|
34
34
|
_id: ID!
|
|
35
35
|
tags: [LowerCaseString!]
|
|
36
36
|
file: Media!
|
|
@@ -38,7 +38,7 @@ export default [
|
|
|
38
38
|
texts(forceLocale: String): ProductMediaTexts
|
|
39
39
|
}
|
|
40
40
|
|
|
41
|
-
type ProductTexts {
|
|
41
|
+
type ProductTexts @cacheControl(maxAge: 180) {
|
|
42
42
|
_id: ID!
|
|
43
43
|
locale: String
|
|
44
44
|
slug: String
|
|
@@ -53,7 +53,7 @@ export default [
|
|
|
53
53
|
"""
|
|
54
54
|
Abstract Product
|
|
55
55
|
"""
|
|
56
|
-
interface Product {
|
|
56
|
+
interface Product @cacheControl(maxAge: 180) {
|
|
57
57
|
_id: ID!
|
|
58
58
|
sequence: Int!
|
|
59
59
|
status: ProductStatus!
|
|
@@ -81,12 +81,12 @@ export default [
|
|
|
81
81
|
"""
|
|
82
82
|
Directed assortment to product paths (breadcrumbs)
|
|
83
83
|
"""
|
|
84
|
-
type ProductAssortmentPath {
|
|
84
|
+
type ProductAssortmentPath @cacheControl(maxAge: 180) {
|
|
85
85
|
assortmentProduct: AssortmentProduct!
|
|
86
86
|
links: [AssortmentPathLink!]!
|
|
87
87
|
}
|
|
88
88
|
|
|
89
|
-
type ProductReview {
|
|
89
|
+
type ProductReview @cacheControl(maxAge: 60) {
|
|
90
90
|
_id: ID!
|
|
91
91
|
created: DateTime
|
|
92
92
|
updated: DateTime
|
|
@@ -97,10 +97,10 @@ export default [
|
|
|
97
97
|
title: String
|
|
98
98
|
review: String
|
|
99
99
|
voteCount(type: ProductReviewVoteType): Int
|
|
100
|
-
ownVotes: [ProductReviewVote!]!
|
|
100
|
+
ownVotes: [ProductReviewVote!]! @cacheControl(scope: PRIVATE, maxAge: 60)
|
|
101
101
|
}
|
|
102
102
|
|
|
103
|
-
type ProductReviewVote {
|
|
103
|
+
type ProductReviewVote @cacheControl(maxAge: 60) {
|
|
104
104
|
_id: ID!
|
|
105
105
|
timestamp: Timestamp!
|
|
106
106
|
type: ProductReviewVoteType!
|
|
@@ -117,13 +117,13 @@ export default [
|
|
|
117
117
|
value: String!
|
|
118
118
|
}
|
|
119
119
|
|
|
120
|
-
type PriceLevel {
|
|
120
|
+
type PriceLevel @cacheControl(maxAge: 60) {
|
|
121
121
|
minQuantity: Int!
|
|
122
122
|
maxQuantity: Int
|
|
123
123
|
price: Price!
|
|
124
124
|
}
|
|
125
125
|
|
|
126
|
-
type ProductCatalogPrice {
|
|
126
|
+
type ProductCatalogPrice @cacheControl(maxAge: 60) {
|
|
127
127
|
_id: ID!
|
|
128
128
|
isTaxable: Boolean!
|
|
129
129
|
isNetPrice: Boolean!
|
|
@@ -3,7 +3,7 @@ export default [
|
|
|
3
3
|
"""
|
|
4
4
|
Simple Product
|
|
5
5
|
"""
|
|
6
|
-
type SimpleProduct implements Product {
|
|
6
|
+
type SimpleProduct implements Product @cacheControl(maxAge: 180) {
|
|
7
7
|
_id: ID!
|
|
8
8
|
sequence: Int!
|
|
9
9
|
status: ProductStatus!
|
|
@@ -16,16 +16,16 @@ export default [
|
|
|
16
16
|
catalogPrice(quantity: Int = 1, currency: String): Price
|
|
17
17
|
leveledCatalogPrices(currency: String): [PriceLevel!]!
|
|
18
18
|
simulatedPrice(currency: String, useNetPrice: Boolean = false, quantity: Int = 1): Price
|
|
19
|
-
|
|
19
|
+
@cacheControl(scope: PRIVATE, maxAge: 10)
|
|
20
20
|
simulatedDispatches(
|
|
21
21
|
deliveryProviderType: DeliveryProviderType = SHIPPING
|
|
22
22
|
referenceDate: Timestamp
|
|
23
23
|
quantity: Int = 1
|
|
24
|
-
): [Dispatch!]
|
|
24
|
+
): [Dispatch!] @cacheControl(scope: PRIVATE, maxAge: 10)
|
|
25
25
|
simulatedStocks(
|
|
26
26
|
deliveryProviderType: DeliveryProviderType = SHIPPING
|
|
27
27
|
referenceDate: Timestamp
|
|
28
|
-
): [Stock!]
|
|
28
|
+
): [Stock!] @cacheControl(scope: PRIVATE, maxAge: 10)
|
|
29
29
|
assortmentPaths: [ProductAssortmentPath!]!
|
|
30
30
|
siblings(
|
|
31
31
|
assortmentId: ID
|
|
@@ -13,7 +13,7 @@ export default [
|
|
|
13
13
|
ERC721
|
|
14
14
|
}
|
|
15
15
|
|
|
16
|
-
type ContractConfiguration {
|
|
16
|
+
type ContractConfiguration @cacheControl(maxAge: 180) {
|
|
17
17
|
tokenId: String
|
|
18
18
|
supply: Int
|
|
19
19
|
ercMetadataProperties: JSON
|
|
@@ -35,8 +35,8 @@ export default [
|
|
|
35
35
|
catalogPrice(quantity: Int = 1, currency: String): Price
|
|
36
36
|
leveledCatalogPrices(currency: String): [PriceLevel!]!
|
|
37
37
|
simulatedPrice(currency: String, useNetPrice: Boolean = false, quantity: Int = 1): Price
|
|
38
|
-
|
|
39
|
-
simulatedStocks(referenceDate: Timestamp): [Stock!]
|
|
38
|
+
@cacheControl(scope: PRIVATE, maxAge: 10)
|
|
39
|
+
simulatedStocks(referenceDate: Timestamp): [Stock!] @cacheControl(scope: PRIVATE, maxAge: 10)
|
|
40
40
|
assortmentPaths(forceLocale: String): [ProductAssortmentPath!]!
|
|
41
41
|
siblings(
|
|
42
42
|
assortmentId: ID
|
|
@@ -7,10 +7,8 @@ export default [
|
|
|
7
7
|
"""
|
|
8
8
|
Search result
|
|
9
9
|
"""
|
|
10
|
-
type SearchResult {
|
|
11
|
-
totalProducts: Int! @deprecated(reason: "Renamed, use the productsCount field")
|
|
10
|
+
type SearchResult @cacheControl(maxAge: 180) {
|
|
12
11
|
productsCount: Int!
|
|
13
|
-
filteredProducts: Int! @deprecated(reason: "Renamed, use the filteredProductsCount field")
|
|
14
12
|
filteredProductsCount: Int!
|
|
15
13
|
filters: [LoadedFilter!]!
|
|
16
14
|
products(limit: Int = 10, offset: Int = 0): [Product!]!
|
|
@@ -19,17 +17,14 @@ export default [
|
|
|
19
17
|
"""
|
|
20
18
|
Search result
|
|
21
19
|
"""
|
|
22
|
-
type ProductSearchResult {
|
|
23
|
-
totalProducts: Int! @deprecated(reason: "Renamed, use the productsCount field")
|
|
20
|
+
type ProductSearchResult @cacheControl(maxAge: 180) {
|
|
24
21
|
productsCount: Int!
|
|
25
|
-
filteredProducts: Int! @deprecated(reason: "Renamed, use the filteredProductsCount field")
|
|
26
22
|
filteredProductsCount: Int!
|
|
27
23
|
filters: [LoadedFilter!]!
|
|
28
24
|
products(limit: Int = 10, offset: Int = 0): [Product!]!
|
|
29
25
|
}
|
|
30
26
|
|
|
31
|
-
type AssortmentSearchResult {
|
|
32
|
-
totalAssortments: Int! @deprecated(reason: "Renamed, use the assortmentsCount field")
|
|
27
|
+
type AssortmentSearchResult @cacheControl(maxAge: 180) {
|
|
33
28
|
assortmentsCount: Int!
|
|
34
29
|
assortments(limit: Int = 10, offset: Int = 0): [Assortment!]!
|
|
35
30
|
}
|
package/src/schema/types/shop.js
CHANGED
package/src/schema/types/user.js
CHANGED
|
@@ -5,7 +5,7 @@ export default [
|
|
|
5
5
|
"""
|
|
6
6
|
Type returned when the user logs in
|
|
7
7
|
"""
|
|
8
|
-
type LoginMethodResponse {
|
|
8
|
+
type LoginMethodResponse @cacheControl(maxAge: 0, scope: PRIVATE) {
|
|
9
9
|
"""
|
|
10
10
|
Id of the user logged in user
|
|
11
11
|
"""
|
|
@@ -86,9 +86,10 @@ export default [
|
|
|
86
86
|
|
|
87
87
|
type User {
|
|
88
88
|
_id: ID!
|
|
89
|
-
|
|
89
|
+
created: DateTime!
|
|
90
|
+
updated: DateTime
|
|
91
|
+
deleted: DateTime
|
|
90
92
|
username: String
|
|
91
|
-
isEmailVerified: Boolean! @deprecated(reason: "Please use primaryEmail.verified instead")
|
|
92
93
|
isGuest: Boolean!
|
|
93
94
|
isTwoFactorEnabled: Boolean!
|
|
94
95
|
isInitialPassword: Boolean!
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export default [
|
|
2
2
|
/* GraphQL */ `
|
|
3
|
-
type WarehousingInterface {
|
|
3
|
+
type WarehousingInterface @cacheControl(maxAge: 180) {
|
|
4
4
|
_id: ID!
|
|
5
5
|
label: String
|
|
6
6
|
version: String
|
|
@@ -24,7 +24,7 @@ export default [
|
|
|
24
24
|
WRONG_CREDENTIALS
|
|
25
25
|
}
|
|
26
26
|
|
|
27
|
-
type WarehousingProvider {
|
|
27
|
+
type WarehousingProvider @cacheControl(maxAge: 60) {
|
|
28
28
|
_id: ID!
|
|
29
29
|
created: DateTime
|
|
30
30
|
updated: DateTime
|
|
@@ -42,7 +42,7 @@ export default [
|
|
|
42
42
|
DECENTRALIZED
|
|
43
43
|
}
|
|
44
44
|
|
|
45
|
-
type Token {
|
|
45
|
+
type Token @cacheControl(maxAge: 0, scope: PRIVATE) {
|
|
46
46
|
_id: ID!
|
|
47
47
|
user: User
|
|
48
48
|
walletAddress: String
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
// Import the function to be tested.
|
|
2
|
+
import {admin} from '../src/roles/admin'
|
|
3
|
+
import {actions} from '../src/roles';
|
|
4
|
+
import {jest} from '@jest/globals'
|
|
5
|
+
import {checkAction, ensureActionExists, ensureIsFunction} from '../src/acl'
|
|
6
|
+
import { NoPermissionError, PermissionSystemError } from '../src/errors';
|
|
7
|
+
import { Roles } from '@unchainedshop/roles';
|
|
8
|
+
|
|
9
|
+
describe('API', () => {
|
|
10
|
+
|
|
11
|
+
describe('roles', () => {
|
|
12
|
+
const role = {
|
|
13
|
+
allow: jest.fn()
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
it('creates the admin role and grants permissions to all actions', () => {
|
|
17
|
+
admin(role, actions);
|
|
18
|
+
for (const actionName of Object.keys(actions)) {
|
|
19
|
+
expect(role.allow).toHaveBeenCalledWith(actions[actionName], expect.any(Function));
|
|
20
|
+
}
|
|
21
|
+
})
|
|
22
|
+
|
|
23
|
+
})
|
|
24
|
+
|
|
25
|
+
describe('ensureActionExists', () => {
|
|
26
|
+
it('should throw a PermissionSystemError if the action is undefined', () => {
|
|
27
|
+
expect(() => ensureActionExists(undefined, {})).toThrow(PermissionSystemError);
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
it('should not throw an error if the action is defined', () => {
|
|
31
|
+
expect(() => ensureActionExists('some action', {})).not.toThrow();
|
|
32
|
+
});
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
describe('ensureIsFunction', () => {
|
|
36
|
+
it('should throw a PermissionSystemError if the provided value is not a function', () => {
|
|
37
|
+
const action = 'some action';
|
|
38
|
+
const options = { showKey: true };
|
|
39
|
+
const key = 'some key';
|
|
40
|
+
expect(() => ensureIsFunction(null, action, options, key)).toThrow(PermissionSystemError);
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
it('should not throw an error if the provided value is a function', () => {
|
|
44
|
+
const action = 'some action';
|
|
45
|
+
const options = { showKey: true };
|
|
46
|
+
const key = 'some key';
|
|
47
|
+
expect(() => ensureIsFunction(() => {}, action, options, key)).not.toThrow();
|
|
48
|
+
});
|
|
49
|
+
});
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
describe('checkAction', () => {
|
|
53
|
+
|
|
54
|
+
it('should throw a NoPermissionError if the user does not have permission to perform the action', async () => {
|
|
55
|
+
Roles.userHasPermission = jest.fn(async () => false);
|
|
56
|
+
|
|
57
|
+
const context = { userId: '123' };
|
|
58
|
+
const action = 'some action';
|
|
59
|
+
const args: any = [];
|
|
60
|
+
const options = { key: 'some key' };
|
|
61
|
+
|
|
62
|
+
await expect(checkAction(context, action, args, options)).rejects.toThrow(NoPermissionError);
|
|
63
|
+
});
|
|
64
|
+
|
|
65
|
+
it('should not throw an error if the user has permission to perform the action', async () => {
|
|
66
|
+
Roles.userHasPermission = jest.fn(async () => true);
|
|
67
|
+
const context = { userId: '123' };
|
|
68
|
+
const action = 'some action';
|
|
69
|
+
const args: any = {};
|
|
70
|
+
const options = { key: 'some key' };
|
|
71
|
+
|
|
72
|
+
await expect(checkAction(context, action, args, options)).resolves.not.toThrow();
|
|
73
|
+
});
|
|
74
|
+
});
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
});
|
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
import { createLogger } from '@unchainedshop/logger';
|
|
2
|
-
import fs from 'fs';
|
|
3
|
-
import { checkAction } from './acl';
|
|
4
|
-
import { actions } from './roles';
|
|
5
|
-
import { useMiddlewareWithCurrentContext } from './context';
|
|
6
|
-
const logger = createLogger('unchained:bulk-import');
|
|
7
|
-
const { BULK_IMPORT_API_PATH = '/bulk-import', BULK_IMPORT_PAYLOAD_CACHE_DIRECTORY } = process.env;
|
|
8
|
-
const errorHandler = (res) => (e) => {
|
|
9
|
-
logger.error(e.message);
|
|
10
|
-
res.writeHead(503);
|
|
11
|
-
res.end(JSON.stringify({ name: e.name, code: e.code, message: e.message }));
|
|
12
|
-
};
|
|
13
|
-
const methodWrongHandler = (res) => () => {
|
|
14
|
-
logger.error('Method not supported, return 404');
|
|
15
|
-
res.writeHead(404);
|
|
16
|
-
res.end();
|
|
17
|
-
};
|
|
18
|
-
const createWriteStreamToFilesystem = (cacheDirectory) => {
|
|
19
|
-
const date = new Date().toISOString();
|
|
20
|
-
const payloadFilePath = `${cacheDirectory}/${date}.json`;
|
|
21
|
-
const stream = fs.createWriteStream(payloadFilePath, { flags: 'a' });
|
|
22
|
-
return stream;
|
|
23
|
-
};
|
|
24
|
-
const createWriteStreamToMongoDB = (BulkImportPayloads) => {
|
|
25
|
-
const date = new Date().toISOString();
|
|
26
|
-
const stream = BulkImportPayloads.openUploadStreamWithId(date, `${date}.json`, {
|
|
27
|
-
contentType: 'application/json',
|
|
28
|
-
});
|
|
29
|
-
return stream;
|
|
30
|
-
};
|
|
31
|
-
const bulkImportMiddleware = async (req, res) => {
|
|
32
|
-
try {
|
|
33
|
-
if (req.method !== 'POST') {
|
|
34
|
-
methodWrongHandler(res)();
|
|
35
|
-
return;
|
|
36
|
-
}
|
|
37
|
-
const resolvedContext = req.unchainedContext;
|
|
38
|
-
await checkAction(resolvedContext, actions.bulkImport);
|
|
39
|
-
const input = {
|
|
40
|
-
createShouldUpsertIfIDExists: !!req.query?.createShouldUpsertIfIDExists,
|
|
41
|
-
skipCacheInvalidation: !!req.query?.skipCacheInvalidation,
|
|
42
|
-
fsPayloadCacheDirectory: BULK_IMPORT_PAYLOAD_CACHE_DIRECTORY,
|
|
43
|
-
remoteAddress: resolvedContext.remoteAddress,
|
|
44
|
-
};
|
|
45
|
-
const stream = input.fsPayloadCacheDirectory
|
|
46
|
-
? createWriteStreamToFilesystem(input.fsPayloadCacheDirectory)
|
|
47
|
-
: createWriteStreamToMongoDB(resolvedContext.bulkImporter.BulkImportPayloads);
|
|
48
|
-
req
|
|
49
|
-
.pipe(stream)
|
|
50
|
-
.on('error', errorHandler(res))
|
|
51
|
-
.on('finish', async (file) => {
|
|
52
|
-
try {
|
|
53
|
-
if (input.fsPayloadCacheDirectory) {
|
|
54
|
-
input.payloadFilePath = stream.path;
|
|
55
|
-
}
|
|
56
|
-
else {
|
|
57
|
-
input.payloadId = file._id;
|
|
58
|
-
input.payloadSize = file.length;
|
|
59
|
-
}
|
|
60
|
-
const work = await resolvedContext.modules.worker.addWork({
|
|
61
|
-
type: 'BULK_IMPORT',
|
|
62
|
-
input: Object.fromEntries(Object.entries(input).filter(([, value]) => Boolean(value))),
|
|
63
|
-
retries: 0,
|
|
64
|
-
priority: 10,
|
|
65
|
-
}, resolvedContext.userId);
|
|
66
|
-
res.writeHead(200);
|
|
67
|
-
res.end(JSON.stringify(work));
|
|
68
|
-
}
|
|
69
|
-
catch (e) {
|
|
70
|
-
errorHandler(res)(e);
|
|
71
|
-
}
|
|
72
|
-
});
|
|
73
|
-
}
|
|
74
|
-
catch (e) {
|
|
75
|
-
errorHandler(res)(e);
|
|
76
|
-
}
|
|
77
|
-
};
|
|
78
|
-
export default (expressApp) => {
|
|
79
|
-
useMiddlewareWithCurrentContext(expressApp, BULK_IMPORT_API_PATH, bulkImportMiddleware);
|
|
80
|
-
};
|
|
81
|
-
//# sourceMappingURL=createBulkImportServer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"createBulkImportServer.js","sourceRoot":"","sources":["../src/createBulkImportServer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
import { createLogger } from '@unchainedshop/logger';
|
|
2
|
-
import { systemLocale } from '@unchainedshop/utils';
|
|
3
|
-
import localePkg from 'locale';
|
|
4
|
-
import path from 'path';
|
|
5
|
-
import { useMiddlewareWithCurrentContext } from './context';
|
|
6
|
-
const { Locale } = localePkg;
|
|
7
|
-
const logger = createLogger('unchained:erc-metadata');
|
|
8
|
-
const { ERC_METADATA_API_PATH = '/erc-metadata' } = process.env;
|
|
9
|
-
const errorHandler = (res) => (e) => {
|
|
10
|
-
logger.error(e.message);
|
|
11
|
-
res.writeHead(503);
|
|
12
|
-
res.end(JSON.stringify({ name: e.name, code: e.code, message: e.message }));
|
|
13
|
-
};
|
|
14
|
-
const methodWrongHandler = (res) => () => {
|
|
15
|
-
logger.error('Method not supported, return 404');
|
|
16
|
-
res.writeHead(404);
|
|
17
|
-
res.end();
|
|
18
|
-
};
|
|
19
|
-
const ercMetadataMiddleware = async (req, res) => {
|
|
20
|
-
try {
|
|
21
|
-
if (req.method !== 'GET') {
|
|
22
|
-
methodWrongHandler(res)();
|
|
23
|
-
return;
|
|
24
|
-
}
|
|
25
|
-
const resolvedContext = req.unchainedContext;
|
|
26
|
-
const url = new URL(req.url, process.env.ROOT_URL);
|
|
27
|
-
const parsedPath = path.parse(url.pathname);
|
|
28
|
-
if (parsedPath.ext !== '.json')
|
|
29
|
-
throw new Error('Invalid ERC Metadata URI');
|
|
30
|
-
const [, productId, localeOrTokenFilename, tokenFileName] = url.pathname.split('/');
|
|
31
|
-
const locale = tokenFileName ? localeOrTokenFilename : systemLocale.language;
|
|
32
|
-
const chainTokenId = parsedPath.name;
|
|
33
|
-
const product = await resolvedContext.modules.products.findProduct({
|
|
34
|
-
productId,
|
|
35
|
-
});
|
|
36
|
-
const [token] = await resolvedContext.modules.warehousing.findTokens({
|
|
37
|
-
chainTokenId,
|
|
38
|
-
contractAddress: product?.tokenization?.contractAddress,
|
|
39
|
-
});
|
|
40
|
-
const ercMetadata = await resolvedContext.modules.warehousing.tokenMetadata(chainTokenId, {
|
|
41
|
-
token,
|
|
42
|
-
product,
|
|
43
|
-
referenceDate: new Date(),
|
|
44
|
-
}, { ...resolvedContext, localeContext: new Locale(locale) });
|
|
45
|
-
const body = JSON.stringify(ercMetadata);
|
|
46
|
-
res.writeHead(200, {
|
|
47
|
-
'Content-Length': Buffer.byteLength(body),
|
|
48
|
-
'Content-Type': 'text/plain',
|
|
49
|
-
});
|
|
50
|
-
res.end(body);
|
|
51
|
-
}
|
|
52
|
-
catch (e) {
|
|
53
|
-
errorHandler(res)(e);
|
|
54
|
-
}
|
|
55
|
-
};
|
|
56
|
-
export default (expressApp) => {
|
|
57
|
-
useMiddlewareWithCurrentContext(expressApp, ERC_METADATA_API_PATH, ercMetadataMiddleware);
|
|
58
|
-
};
|
|
59
|
-
//# sourceMappingURL=createERCMetadataServer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"createERCMetadataServer.js","sourceRoot":"","sources":["../src/createERCMetadataServer.ts"],"names":[],"mappings":"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"}
|