├── .nvmrc ├── .husky ├── .gitignore └── commit-msg ├── apps ├── reaction │ ├── public │ │ ├── .gitignore │ │ ├── custom │ │ │ └── .gitkeep │ │ ├── robots.txt │ │ ├── fonts │ │ │ ├── FontAwesome.otf │ │ │ ├── fontawesome-webfont.eot │ │ │ ├── fontawesome-webfont.ttf │ │ │ ├── fontawesome-webfont.woff │ │ │ └── fontawesome-webfont.woff2 │ │ └── resources │ │ │ ├── avatar.gif │ │ │ ├── placeholder.gif │ │ │ ├── fonts │ │ │ ├── fontello.eot │ │ │ ├── fontello.ttf │ │ │ ├── fontello.woff │ │ │ └── fontello.woff2 │ │ │ ├── Reaction2.0_Catalyst.png │ │ │ └── email-templates │ │ │ ├── shop-logo.png │ │ │ ├── twitter-icon.png │ │ │ ├── facebook-icon.png │ │ │ └── google-plus-icon.png │ ├── tests │ │ ├── .eslintrc.cjs │ │ ├── integration │ │ │ ├── api │ │ │ │ ├── queries │ │ │ │ │ ├── globalSettings │ │ │ │ │ │ └── GlobalSettingsQuery.graphql │ │ │ │ │ ├── taxCodes │ │ │ │ │ │ └── TaxCodesQuery.graphql │ │ │ │ │ ├── shopBySlug │ │ │ │ │ │ └── ShopBySlugQuery.graphql │ │ │ │ │ ├── shopSettings │ │ │ │ │ │ └── ShopSettingsQuery.graphql │ │ │ │ │ ├── paymentMethods │ │ │ │ │ │ └── PaymentMethodsQuery.graphql │ │ │ │ │ ├── taxServices │ │ │ │ │ │ └── TaxServicesQuery.graphql │ │ │ │ │ ├── roles │ │ │ │ │ │ └── RolesQuery.graphql │ │ │ │ │ ├── sitemap │ │ │ │ │ │ └── SitemapQuery.graphql │ │ │ │ │ ├── addressValidationServices │ │ │ │ │ │ └── AddressValidationServicesQuery.graphql │ │ │ │ │ ├── availablePaymentMethods │ │ │ │ │ │ └── AvailablePaymentMethodsQuery.graphql │ │ │ │ │ ├── systemInformation │ │ │ │ │ │ └── SystemInformationQuery.graphql │ │ │ │ │ ├── surchargeById │ │ │ │ │ │ └── SurchargeByIdQuery.graphql │ │ │ │ │ ├── surcharges │ │ │ │ │ │ └── SurchargesQuery.graphql │ │ │ │ │ ├── tags │ │ │ │ │ │ └── TagQuery.graphql │ │ │ │ │ ├── group │ │ │ │ │ │ └── GroupFullQuery.graphql │ │ │ │ │ ├── catalogItems │ │ │ │ │ │ └── __snapshots__ │ │ │ │ │ │ │ └── catalogItems.test.js.snap │ │ │ │ │ ├── getFlatRateFulfillmentRestrictions │ │ │ │ │ │ └── FlatRateFulfillmentRestrictionsQuery.graphql │ │ │ │ │ ├── getFlatRateFulfillmentRestriction │ │ │ │ │ │ └── FlatRateFulfillmentRestrictionQuery.graphql │ │ │ │ │ ├── accountCartByAccountId │ │ │ │ │ │ └── AccountCartByAccountIdQuery.graphql │ │ │ │ │ ├── groups │ │ │ │ │ │ └── GroupsFullQuery.graphql │ │ │ │ │ ├── orderByReferenceId │ │ │ │ │ │ └── OrderByReferenceIdQuery.graphql │ │ │ │ │ ├── anonymousCartByCartId │ │ │ │ │ │ └── addCartItemsMutation.graphql │ │ │ │ │ ├── simpleInventory │ │ │ │ │ │ └── simpleInventoryQuery.graphql │ │ │ │ │ └── addressValidation │ │ │ │ │ │ └── AddressValidationQuery.graphql │ │ │ │ ├── mutations1 │ │ │ │ │ ├── checkout │ │ │ │ │ │ ├── AvailablePaymentMethodsQuery.graphql │ │ │ │ │ │ ├── CreateShopMutation.graphql │ │ │ │ │ │ ├── PlaceOrderMutation.graphql │ │ │ │ │ │ ├── CreatePromotionMutation.graphql │ │ │ │ │ │ └── ReconcileCartsMutation.graphql │ │ │ │ │ ├── generateSitemaps │ │ │ │ │ │ └── generateSitemaps.graphql │ │ │ │ │ ├── inviteShopMember │ │ │ │ │ │ └── inviteShopMember.graphql │ │ │ │ │ ├── approveOrderPayments │ │ │ │ │ │ └── approveOrderPayments.graphql │ │ │ │ │ ├── captureOrderPayments │ │ │ │ │ │ └── captureOrderPayments.graphql │ │ │ │ │ ├── payments │ │ │ │ │ │ └── EnablePaymentMethodsForShopMutation.graphql │ │ │ │ │ ├── archiveProducts │ │ │ │ │ │ └── archiveProducts.graphql │ │ │ │ │ ├── addCartItems │ │ │ │ │ │ └── addCartItemsMutation.graphql │ │ │ │ │ ├── createShop │ │ │ │ │ │ └── CreateShopMutation.graphql │ │ │ │ │ ├── addAccountEmailRecord │ │ │ │ │ │ └── AddAccountEmailRecordMutation.graphql │ │ │ │ │ ├── recalculateReservedSimpleInventory │ │ │ │ │ │ └── recalculateReservedSimpleInventory.graphql │ │ │ │ │ └── cloneProductVariants │ │ │ │ │ │ └── cloneProductVariants.graphql │ │ │ │ └── mutations2 │ │ │ │ │ ├── setTagHeroMedia │ │ │ │ │ └── setTagHeroMedia.graphql │ │ │ │ │ ├── updateProductsVisibility │ │ │ │ │ └── UpdateProductsVisibility.graphql │ │ │ │ │ ├── verifySMTPEmailSettings │ │ │ │ │ └── verifySMTPEmailSettings.graphql │ │ │ │ │ ├── updateShopSettings │ │ │ │ │ └── updateShopSettings.graphql │ │ │ │ │ ├── updateGlobalSettings │ │ │ │ │ └── updateGlobalSettings.graphql │ │ │ │ │ ├── removeAccountGroup │ │ │ │ │ └── RemoveAccountGroupMutation.graphql │ │ │ │ │ ├── updateAccountGroup │ │ │ │ │ └── UpdateAccountGroupMutation.graphql │ │ │ │ │ ├── updateOrder │ │ │ │ │ └── UpdateOrderMutation.graphql │ │ │ │ │ ├── removeAccountEmailRecord │ │ │ │ │ └── RemoveAccountEmailRecordMutation.graphql │ │ │ │ │ ├── setAccountDefaultEmail │ │ │ │ │ └── SetAccountDefaultEmailMutation.graphql │ │ │ │ │ ├── updateSimpleInventory │ │ │ │ │ ├── simpleInventoryQuery.graphql │ │ │ │ │ └── updateSimpleInventoryMutation.graphql │ │ │ │ │ ├── updateAccount │ │ │ │ │ └── UpdateAccountMutation.graphql │ │ │ │ │ ├── updateProductVariantPrices │ │ │ │ │ └── updateProductVariantPricesMutation.graphql │ │ │ │ │ └── shippingRates │ │ │ │ │ └── CreateFlatRateFulfillmentMethodMutation.graphql │ │ │ └── README.md │ │ ├── util │ │ │ ├── jestProcessEnv.json │ │ │ └── setupJestTests.js │ │ └── mocks │ │ │ ├── mockTags.js │ │ │ └── mockShop.js │ └── .env.example └── meteor-blaze-app │ ├── .gitignore │ ├── client │ └── main.js │ └── imports │ └── client │ ├── index.js │ └── images │ └── images.css ├── packages ├── logger │ ├── .npmignore │ └── .gitignore ├── random │ ├── .npmignore │ ├── .gitignore │ └── src │ │ └── server.js ├── api-plugin-discounts-codes │ ├── .gitignore │ ├── index.js │ └── src │ │ ├── queries │ │ ├── index.js │ │ └── __snapshots__ │ │ │ └── discountCodes.test.js.snap │ │ ├── i18n │ │ └── nb.json │ │ ├── resolvers │ │ ├── Query │ │ │ └── index.js │ │ └── DiscountCode │ │ │ └── index.js │ │ └── schemas │ │ └── index.js ├── api-utils │ ├── tests │ │ └── importAsString.test.txt │ ├── lib │ │ ├── configs │ │ │ ├── commitlint.config.cjs │ │ │ └── husky.config.cjs │ │ ├── graphql │ │ │ └── __snapshots__ │ │ │ │ ├── applyPaginationToMongoCursor.test.js.snap │ │ │ │ ├── applyPaginationToMongoAggregate.test.js.snap │ │ │ │ └── applyBeforeAfterToFilter.test.js.snap │ │ ├── hashToken.js │ │ └── isOpaqueId.test.js │ ├── index.js │ ├── babel.config.cjs │ └── docs │ │ └── README.md ├── api-plugin-promotions │ ├── README.md │ ├── index.js │ ├── src │ │ ├── actions │ │ │ └── index.js │ │ ├── qualifiers │ │ │ └── index.js │ │ ├── stackabilities │ │ │ └── index.js │ │ ├── schemas │ │ │ └── index.js │ │ ├── queries │ │ │ └── index.js │ │ ├── utils │ │ │ ├── index.js │ │ │ └── isPromotionExpired.js │ │ └── resolvers │ │ │ ├── Query │ │ │ └── index.js │ │ │ ├── index.js │ │ │ └── Mutation │ │ │ └── index.js │ ├── babel.config.cjs │ └── jest.config.cjs ├── api-plugin-email │ ├── migrations │ │ ├── migrationsNamespace.js │ │ └── index.js │ ├── src │ │ ├── queries │ │ │ └── index.js │ │ ├── resolvers │ │ │ ├── Query │ │ │ │ └── index.js │ │ │ ├── Mutation │ │ │ │ └── index.js │ │ │ └── index.js │ │ ├── mutations │ │ │ └── index.js │ │ ├── config.js │ │ ├── schemas │ │ │ └── index.js │ │ └── policies.json │ └── index.js ├── api-plugin-tags │ ├── migrations │ │ ├── migrationsNamespace.js │ │ └── index.js │ ├── babel.config.cjs │ ├── jest.config.cjs │ ├── src │ │ ├── resolvers │ │ │ ├── Shop │ │ │ │ └── index.js │ │ │ ├── CatalogProduct │ │ │ │ └── index.js │ │ │ ├── Query │ │ │ │ └── index.js │ │ │ ├── Mutation │ │ │ │ └── index.js │ │ │ └── Tag │ │ │ │ └── index.js │ │ ├── mutations │ │ │ ├── __snapshots__ │ │ │ │ ├── addTag.test.js.snap │ │ │ │ ├── removeTag.test.js.snap │ │ │ │ └── updateTag.test.js.snap │ │ │ └── index.js │ │ └── queries │ │ │ └── index.js │ └── index.js ├── api-plugin-accounts │ ├── migrations │ │ ├── migrationsNamespace.js │ │ └── index.js │ ├── jest.config.cjs │ ├── babel.config.cjs │ ├── src │ │ ├── resolvers │ │ │ ├── Shop │ │ │ │ └── index.js │ │ │ ├── AddAccountAddressBookEntryPayload.js │ │ │ └── Group │ │ │ │ └── index.js │ │ ├── queries │ │ │ └── __snapshots__ │ │ │ │ ├── groups.test.js.snap │ │ │ │ ├── group.test.js.snap │ │ │ │ └── userAccount.test.js.snap │ │ ├── mutations │ │ │ └── __snapshots__ │ │ │ │ └── sendResetAccountPasswordEmail.test.js.snap │ │ ├── config.js │ │ ├── util │ │ │ ├── defaultAccountGroups.js │ │ │ └── accountByUserId.js │ │ └── i18n │ │ │ ├── he.json │ │ │ └── nb.json │ └── index.js ├── api-plugin-carts │ ├── index.js │ ├── babel.config.cjs │ ├── jest.config.cjs │ └── src │ │ ├── resolvers │ │ ├── Subscription │ │ │ └── index.js │ │ ├── Query │ │ │ └── index.js │ │ └── FulfillmentGroup │ │ │ └── index.js │ │ ├── mutations │ │ └── __snapshots__ │ │ │ ├── reconcileCartsMerge.test.js.snap │ │ │ ├── reconcileCartsKeepAccountCart.test.js.snap │ │ │ ├── reconcileCartsKeepAnonymousCart.test.js.snap │ │ │ ├── convertAnonymousCartToNewAccountCart.test.js.snap │ │ │ └── removeCartItems.test.js.snap │ │ ├── fulfillmentCartVersion.js │ │ ├── queries │ │ └── __snapshots__ │ │ │ └── accountCartByAccountId.test.js.snap │ │ └── schemas │ │ └── index.js ├── api-plugin-files │ ├── index.js │ └── src │ │ ├── resolvers │ │ └── index.js │ │ ├── schemas │ │ └── index.js │ │ └── config.js ├── api-plugin-i18n │ ├── index.js │ └── src │ │ └── i18n │ │ └── nb.json ├── api-plugin-orders │ ├── index.js │ ├── babel.config.cjs │ └── src │ │ ├── mutations │ │ └── __snapshots__ │ │ │ ├── placeOrder.test.js.snap │ │ │ └── updateOrder.test.js.snap │ │ ├── schemas │ │ └── index.js │ │ ├── util │ │ └── __snapshots__ │ │ │ └── verifyPaymentsMatchOrderTotal.test.js.snap │ │ ├── queries │ │ └── __snapshots__ │ │ │ └── refunds.test.js.snap │ │ ├── resolvers │ │ └── Refund │ │ │ └── index.js │ │ └── preStartup.js ├── api-plugin-shops │ ├── index.js │ ├── babel.config.cjs │ ├── jest.config.cjs │ └── src │ │ ├── mutations │ │ └── index.js │ │ ├── resolvers │ │ ├── Mutation │ │ │ └── index.js │ │ ├── index.js │ │ ├── Query │ │ │ └── index.js │ │ └── Shop │ │ │ └── index.js │ │ └── schemas │ │ └── index.js ├── api-plugin-taxes │ ├── index.js │ ├── babel.config.cjs │ └── src │ │ ├── i18n │ │ └── nb.json │ │ ├── queries │ │ └── index.js │ │ ├── resolvers │ │ └── Query │ │ │ └── index.js │ │ ├── schemas │ │ └── index.js │ │ ├── xforms │ │ └── id.js │ │ ├── mutations │ │ ├── index.js │ │ └── __snapshots__ │ │ │ └── getFulfillmentGroupTaxes.test.js.snap │ │ ├── policies.json │ │ └── preStartup.js ├── api-core │ ├── src │ │ ├── util │ │ │ └── logger.js │ │ ├── graphql │ │ │ ├── resolvers │ │ │ │ ├── Currency.js │ │ │ │ ├── __snapshots__ │ │ │ │ │ ├── ConnectionLimitInt.test.js.snap │ │ │ │ │ └── ConnectionCursor.test.js.snap │ │ │ │ └── Money.js │ │ │ └── subscription.graphql │ │ └── index.js │ ├── jest.config.cjs │ └── babel.config.cjs ├── api-plugin-bull-queue │ ├── index.js │ └── src │ │ └── api │ │ └── index.js ├── api-plugin-catalogs │ ├── index.js │ ├── jest.config.cjs │ ├── babel.config.cjs │ └── src │ │ ├── i18n │ │ ├── he.json │ │ └── nb.json │ │ ├── resolvers │ │ ├── Mutation │ │ │ └── index.js │ │ ├── ImageInfo.js │ │ ├── Query │ │ │ └── index.js │ │ └── CatalogItemProduct │ │ │ └── index.js │ │ ├── schemas │ │ └── index.js │ │ └── mutations │ │ └── index.js ├── api-plugin-discounts │ ├── index.js │ ├── babel.config.cjs │ ├── jest.config.cjs │ └── src │ │ ├── i18n │ │ └── nb.json │ │ └── queries │ │ └── index.js ├── api-plugin-email-smtp │ ├── index.js │ ├── babel.config.cjs │ ├── jest.config.cjs │ └── src │ │ ├── resolvers │ │ ├── index.js │ │ └── Mutation │ │ │ └── index.js │ │ ├── mutations │ │ ├── index.js │ │ └── __snapshots__ │ │ │ └── verifySMTPEmailSettings.test.js.snap │ │ ├── schemas │ │ └── index.js │ │ ├── policies.json │ │ └── startup.js ├── api-plugin-inventory │ ├── index.js │ ├── babel.config.cjs │ └── src │ │ ├── schemas │ │ └── index.js │ │ ├── i18n │ │ └── index.js │ │ ├── queries │ │ └── index.js │ │ ├── policies.json │ │ └── utils │ │ └── preStartup.js ├── api-plugin-job-queue │ ├── index.js │ └── src │ │ ├── config.js │ │ ├── jobs.js │ │ └── job-queue │ │ └── README.md ├── api-plugin-navigation │ ├── index.js │ └── src │ │ ├── i18n │ │ └── index.js │ │ ├── queries │ │ └── index.js │ │ ├── resolvers │ │ ├── Query │ │ │ └── index.js │ │ ├── NavigationItem │ │ │ └── index.js │ │ └── Shop │ │ │ └── index.js │ │ └── schemas │ │ └── index.js ├── api-plugin-payments │ ├── index.js │ ├── babel.config.cjs │ └── src │ │ ├── resolvers │ │ ├── PaymentMethod │ │ │ └── index.js │ │ ├── Payment │ │ │ └── index.js │ │ ├── Query │ │ │ └── index.js │ │ ├── index.js │ │ └── Mutation │ │ │ └── index.js │ │ ├── i18n │ │ └── nb.json │ │ ├── queries │ │ ├── __snapshots__ │ │ │ ├── availablePaymentMethods.test.js.snap │ │ │ └── paymentMethods.test.js.snap │ │ └── index.js │ │ ├── schemas │ │ └── index.js │ │ └── mutations │ │ └── index.js ├── api-plugin-products │ ├── index.js │ ├── jest.config.cjs │ ├── babel.config.cjs │ └── src │ │ ├── queries │ │ └── index.js │ │ ├── resolvers │ │ ├── Query │ │ │ └── index.js │ │ └── ProductConfiguration.js │ │ ├── mutations │ │ └── __snapshots__ │ │ │ ├── createProduct.test.js.snap │ │ │ ├── archiveProducts.test.js.snap │ │ │ ├── cloneProducts.test.js.snap │ │ │ ├── cloneProductVariants.test.js.snap │ │ │ └── createProductVariant.test.js.snap │ │ └── schemas │ │ └── index.js ├── api-plugin-sample-data │ ├── index.js │ ├── babel.config.cjs │ ├── jest.config.cjs │ └── src │ │ ├── images │ │ ├── mZB2tnYRnJrxqZWee.hiking_boots.jpg │ │ ├── KfYLHwoMrfJWyJMqG.rugged_running_shoes.jpg │ │ ├── B9ncCC5kaGkNu9qC2.warm-wool-knitted-hat.jpg │ │ ├── Zv5PMxPrQoXK9Nbke.pexels-taryn-elliott-5737915.jpg │ │ ├── 5z9yubahxQZqLCPQH.istockphoto-480217047-170667a.jpg │ │ ├── JPEwhpFG5McpKKLjx.pexels-hanna-auramenka-8497532.jpg │ │ ├── 4WNQrD9qGE8iDB7H4.knit-beanie-white-front-61d71dd838f34.jpg │ │ ├── 46AevrgX4CRubhX4h.basketball-socks-white-front-61d726e653222.jpg │ │ ├── 46AevrgX4CRubhX4h.basketball-socks-white-front-61d726e653311.jpg │ │ ├── 46AevrgX4CRubhX4h.basketball-socks-white-front-61d726e6533a7.jpg │ │ ├── rwBQGfBQrF5sdivDG.unisex-denim-jacket-white-front-61d5ca9aef759.jpg │ │ ├── 6htQnYHKqqPNDf6yR.embroidered-crew-socks-black-left-61d71ce05f999.jpg │ │ ├── 6htQnYHKqqPNDf6yR.embroidered-crew-socks-black-right-61d71ce05fa72.jpg │ │ ├── 7KxD39Am8L7WDy6sB.womens-cropped-hoodie-black-front-61d723d1b3f7b.jpg │ │ ├── 7KxD39Am8L7WDy6sB.womens-cropped-hoodie-black-front-61d723d1b406f.jpg │ │ ├── 8fcfWFFLZq3sRK3TD.champion-bomber-jacket-black-front-61d717c63b613.jpg │ │ ├── 8fcfWFFLZq3sRK3TD.champion-bomber-jacket-black-front-61d717c63b8b9.jpg │ │ ├── GXxXSKGYmvW8ATbpj.unisex-zip-up-hoodie-black-front-61d71a1132a2b.jpg │ │ ├── GXxXSKGYmvW8ATbpj.unisex-zip-up-hoodie-black-front-61d71a1132c49.jpg │ │ ├── GXxXSKGYmvW8ATbpj.unisex-zip-up-hoodie-black-front-61d71a1132dbd.jpg │ │ ├── 4T5rnTh8fABBLjWth.unisex-denim-jacket-black-denim-back-61d5c81b189ab.jpg │ │ ├── 4T5rnTh8fABBLjWth.unisex-denim-jacket-black-denim-back-61d5c81b18b7e.jpg │ │ ├── 4T5rnTh8fABBLjWth.unisex-denim-jacket-black-denim-front-61d5c81b18a91.jpg │ │ ├── 4T5rnTh8fABBLjWth.unisex-denim-jacket-black-denim-front-61d5c81b18b11.jpg │ │ ├── Nixnh2DeJaKpMhvHR.all-over-print-mens-leggings-white-back-61d71b026678d.jpg │ │ ├── Nixnh2DeJaKpMhvHR.all-over-print-mens-leggings-white-left-61d71b0266890.jpg │ │ ├── jYRjB5krMPweP5HyZ.all-over-print-yoga-leggings-white-left-61d72aca702cc.jpg │ │ ├── ymjmx6wMcu7fB3Mvb.unisex-bomber-jacket-heather-black-back-61d72115e2a89.jpg │ │ ├── ymjmx6wMcu7fB3Mvb.unisex-bomber-jacket-heather-black-back-61d72115e2bfb.jpg │ │ ├── ymjmx6wMcu7fB3Mvb.unisex-bomber-jacket-heather-black-back-61d72115e2d2c.jpg │ │ ├── Nixnh2DeJaKpMhvHR.all-over-print-mens-leggings-white-front-61d71b0266655.jpg │ │ ├── Nixnh2DeJaKpMhvHR.all-over-print-mens-leggings-white-right-61d71b026680f.jpg │ │ ├── jYRjB5krMPweP5HyZ.all-over-print-yoga-leggings-white-front-61d72aca70167.jpg │ │ ├── rwBQGfBQrF5sdivDG.unisex-denim-jacket-white-product-details-61d5ca9aefa6e.jpg │ │ ├── dCtii9N4iA6YLcEgK.unisex-long-sleeve-tee-black-heather-front-61d72361de7b5.jpg │ │ ├── dCtii9N4iA6YLcEgK.unisex-long-sleeve-tee-black-heather-front-61d72361deac8.jpg │ │ ├── rwBQGfBQrF5sdivDG.unisex-denim-jacket-white-product-details-2-61d5ca9aefacd.jpg │ │ ├── ymjmx6wMcu7fB3Mvb.unisex-bomber-jacket-heather-black-front-2-61d72115e2afe.jpg │ │ ├── 4w8kMXBLpKvz9xYFS.embroidered-champion-packable-jacket-black-front-61d71f87762bd.jpg │ │ ├── 4w8kMXBLpKvz9xYFS.embroidered-champion-packable-jacket-black-front-61d71f877635b.jpg │ │ ├── Hn4BRaBvLkYffMq36.embroidered-champion-packable-jacket-black-front-61d714690e5a9.jpg │ │ ├── Hn4BRaBvLkYffMq36.embroidered-champion-packable-jacket-black-front-61d71f877635b.jpg │ │ ├── sfnf4bXmDMiWFysq5.all-over-print-mens-crew-neck-t-shirt-white-front-61d718f8f083d.jpg │ │ ├── sfnf4bXmDMiWFysq5.all-over-print-mens-crew-neck-t-shirt-white-front-61d718f8f0904.jpg │ │ ├── sfnf4bXmDMiWFysq5.all-over-print-mens-crew-neck-t-shirt-white-front-61d718f8f0af1.jpg │ │ ├── sfnf4bXmDMiWFysq5.all-over-print-mens-crew-neck-t-shirt-white-left-61d718f8f0a6f.jpg │ │ ├── sfnf4bXmDMiWFysq5.all-over-print-mens-crew-neck-t-shirt-white-right-61d718f8f09e4.jpg │ │ ├── ynNA5rXKZCHF2uKjq.embroidered-champion-packable-jacket-navy-front-61d714f788470.jpg │ │ ├── ynNA5rXKZCHF2uKjq.embroidered-champion-packable-jacket-navy-front-61d714f7885b0.jpg │ │ ├── 4w8kMXBLpKvz9xYFS.embroidered-champion-packable-jacket-black-zoomed-in-61d71f877623a.jpg │ │ ├── xM7BSt5CZkqom33pP.all-over-print-mens-athletic-long-shorts-white-front-61d72e5b055e6.jpg │ │ ├── xM7BSt5CZkqom33pP.all-over-print-mens-athletic-long-shorts-white-front-61d72e5b05725.jpg │ │ └── xM7BSt5CZkqom33pP.all-over-print-mens-athletic-long-shorts-white-front-61d72e5b057fa.jpg │ │ └── json-data │ │ ├── migrations.json │ │ ├── Shops.json │ │ ├── Accounts.json │ │ └── ShippingMethod.json ├── api-plugin-sequences │ ├── index.js │ ├── babel.config.cjs │ ├── jest.config.cjs │ └── src │ │ ├── mutations │ │ └── index.js │ │ └── config.js ├── api-plugin-settings │ ├── index.js │ └── src │ │ ├── queries │ │ └── index.js │ │ ├── mutations │ │ └── index.js │ │ ├── resolvers │ │ ├── index.js │ │ ├── Query │ │ │ └── index.js │ │ └── Mutation │ │ │ └── index.js │ │ └── schemas │ │ └── index.js ├── api-plugin-shipments │ ├── index.js │ ├── babel.config.cjs │ └── src │ │ ├── i18n │ │ ├── he.json │ │ └── nb.json │ │ ├── queries │ │ └── index.js │ │ ├── schemas │ │ └── index.js │ │ ├── resolvers │ │ ├── FulfillmentMethod │ │ │ └── index.js │ │ ├── Mutation │ │ │ └── index.js │ │ └── index.js │ │ └── mutations │ │ ├── __snapshots__ │ │ └── updateFulfillmentOptionsForGroup.test.js.snap │ │ └── index.js ├── api-plugin-surcharges │ ├── index.js │ ├── babel.config.cjs │ ├── jest.config.cjs │ └── src │ │ ├── queries │ │ └── index.js │ │ ├── resolvers │ │ ├── Query │ │ │ └── index.js │ │ └── Mutation │ │ │ └── index.js │ │ ├── schemas │ │ └── index.js │ │ └── mutations │ │ └── index.js ├── api-plugin-translations │ └── index.js ├── api-plugin-authentication │ ├── index.js │ └── src │ │ └── config.js ├── api-plugin-email-templates │ ├── index.js │ └── src │ │ ├── queries │ │ └── index.js │ │ ├── resolvers │ │ ├── Query │ │ │ └── index.js │ │ ├── Mutation │ │ │ └── index.js │ │ └── index.js │ │ ├── templates │ │ └── coreDefault.js │ │ ├── mutations │ │ └── index.js │ │ ├── schemas │ │ └── index.js │ │ └── policies.json ├── api-plugin-fulfillment │ ├── migrations │ │ ├── migrationsNamespace.js │ │ └── index.js │ ├── babel.config.cjs │ ├── jest.config.cjs │ ├── index.js │ └── src │ │ ├── schemas │ │ └── index.js │ │ ├── resolvers │ │ ├── FulfillmentMethod │ │ │ └── index.js │ │ ├── Query │ │ │ └── index.js │ │ └── index.js │ │ └── i18n │ │ └── index.js ├── api-plugin-inventory-simple │ ├── index.js │ ├── babel.config.cjs │ ├── jest.config.cjs │ └── src │ │ ├── queries │ │ └── index.js │ │ ├── resolvers │ │ ├── Query │ │ │ └── index.js │ │ ├── index.js │ │ └── Mutation │ │ │ └── index.js │ │ ├── schemas │ │ └── index.js │ │ ├── policies.json │ │ ├── i18n │ │ └── index.js │ │ └── mutations │ │ └── index.js ├── api-plugin-notifications │ ├── index.js │ ├── jest.config.cjs │ ├── babel.config.cjs │ └── src │ │ └── mutations │ │ └── index.js ├── api-plugin-payments-example │ ├── index.js │ └── src │ │ ├── i18n │ │ └── nb.json │ │ ├── schemas │ │ └── index.js │ │ └── startup.js ├── api-plugin-pricing-simple │ ├── index.js │ ├── babel.config.cjs │ ├── jest.config.cjs │ └── src │ │ ├── queries │ │ └── index.js │ │ ├── mutations │ │ └── index.js │ │ ├── resolvers │ │ ├── Mutation │ │ │ └── index.js │ │ ├── CatalogProduct.js │ │ ├── CatalogProductVariant.js │ │ └── Product.js │ │ ├── schemas │ │ └── index.js │ │ ├── xforms │ │ ├── xformProductPrice.js │ │ └── xformProductVariantCompareAtPrice.js │ │ ├── i18n │ │ ├── index.js │ │ └── en.json │ │ ├── policies.json │ │ ├── util │ │ └── mutateNewVariantBeforeCreate.js │ │ └── preStartup.js ├── api-plugin-promotions-offers │ ├── index.js │ ├── jest.config.cjs │ ├── babel.config.cjs │ ├── src │ │ ├── enhancers │ │ │ └── index.js │ │ ├── triggers │ │ │ └── index.js │ │ └── facts │ │ │ └── index.js │ └── README.md ├── api-plugin-simple-schema │ ├── migrations │ │ ├── migrationsNamespace.js │ │ └── index.js │ ├── jest.config.cjs │ ├── babel.config.cjs │ ├── src │ │ ├── resolvers │ │ │ ├── index.js │ │ │ └── Query │ │ │ │ └── index.js │ │ ├── queries │ │ │ └── index.js │ │ └── schemas │ │ │ └── index.js │ └── index.js ├── api-plugin-sitemap-generator │ ├── index.js │ └── src │ │ ├── queries │ │ └── index.js │ │ ├── resolvers │ │ ├── Query │ │ │ └── index.js │ │ ├── Mutation │ │ │ └── index.js │ │ ├── Sitemap │ │ │ └── index.js │ │ └── index.js │ │ ├── i18n │ │ └── index.js │ │ ├── mutations │ │ └── index.js │ │ └── schemas │ │ ├── index.js │ │ └── settings.graphql ├── api-plugin-taxes-flat-rate │ ├── index.js │ └── src │ │ ├── queries │ │ └── index.js │ │ ├── resolvers │ │ ├── Query │ │ │ └── index.js │ │ ├── Mutation │ │ │ └── index.js │ │ └── TaxRate │ │ │ └── index.js │ │ ├── schemas │ │ └── index.js │ │ ├── mutations │ │ └── index.js │ │ └── util │ │ └── getTaxCodes.js ├── api-plugin-address-validation │ ├── index.js │ └── src │ │ ├── resolvers │ │ ├── Address.js │ │ ├── AddressValidationRule.js │ │ ├── Query │ │ │ └── index.js │ │ └── Mutation │ │ │ └── index.js │ │ ├── schemas │ │ └── index.js │ │ ├── i18n │ │ └── index.js │ │ ├── queries │ │ └── index.js │ │ ├── simpleSchemas.js │ │ └── mutations │ │ └── index.js ├── api-plugin-payments-stripe-sca │ ├── index.js │ ├── babel.config.cjs │ └── src │ │ ├── resolvers │ │ ├── index.js │ │ └── Mutation │ │ │ └── index.js │ │ ├── mutations │ │ └── index.js │ │ ├── schemas │ │ └── index.js │ │ ├── xforms │ │ └── id.js │ │ ├── util │ │ └── constants.js │ │ └── config.js ├── api-plugin-promotions-discounts │ ├── index.js │ ├── src │ │ ├── stackabilities │ │ │ └── index.js │ │ ├── actions │ │ │ └── index.js │ │ ├── facts │ │ │ └── index.js │ │ ├── queries │ │ │ └── index.js │ │ ├── schemas │ │ │ └── index.js │ │ └── utils │ │ │ └── formatMoney.js │ ├── babel.config.cjs │ └── jest.config.cjs ├── api-plugin-shipments-flat-rate │ ├── index.js │ ├── babel.config.cjs │ ├── jest.config.cjs │ └── src │ │ ├── i18n │ │ ├── he.json │ │ └── nb.json │ │ ├── schemas │ │ └── index.js │ │ └── resolvers │ │ ├── FlatRateFulfillmentMethod │ │ └── index.js │ │ └── ShopSettings │ │ └── index.js ├── api-plugin-system-information │ ├── index.js │ └── src │ │ ├── resolvers │ │ ├── index.js │ │ └── Query │ │ │ └── index.js │ │ ├── queries │ │ ├── index.js │ │ └── __snapshots__ │ │ │ └── systemInformation.test.js.snap │ │ ├── schemas │ │ └── index.js │ │ └── policies.json ├── api-plugin-address-validation-test │ └── index.js ├── api-plugin-fulfillment-type-pickup │ ├── index.js │ ├── jest.config.cjs │ ├── babel.config.cjs │ └── src │ │ ├── schemas │ │ ├── index.js │ │ └── schema.graphql │ │ └── i18n │ │ └── index.js ├── api-plugin-fulfillment-type-shipping │ ├── index.js │ ├── babel.config.cjs │ ├── jest.config.cjs │ └── src │ │ ├── i18n │ │ ├── he.json │ │ └── nb.json │ │ └── schemas │ │ └── index.js ├── api-plugin-promotions-coupons │ ├── migrations │ │ ├── migrationsNamespace.js │ │ └── index.js │ ├── jest.config.cjs │ ├── babel.config.cjs │ ├── README.md │ ├── src │ │ ├── triggers │ │ │ └── index.js │ │ ├── resolvers │ │ │ ├── Order │ │ │ │ └── index.js │ │ │ ├── Promotion │ │ │ │ └── index.js │ │ │ ├── Query │ │ │ │ └── index.js │ │ │ └── index.js │ │ ├── schemas │ │ │ └── index.js │ │ ├── config.js │ │ ├── queries │ │ │ └── index.js │ │ └── utils │ │ │ └── isPromotionExpired.js │ └── index.js ├── file-collections-sa-gridfs │ ├── src │ │ ├── index.js │ │ └── debug.js │ ├── README.md │ └── jest.config.js ├── api-plugin-authorization-simple │ ├── migrations │ │ └── migrationsNamespace.js │ ├── src │ │ ├── queries │ │ │ ├── index.js │ │ │ └── __snapshots__ │ │ │ │ └── roles.test.js.snap │ │ ├── resolvers │ │ │ ├── Query │ │ │ │ └── index.js │ │ │ ├── Shop │ │ │ │ └── index.js │ │ │ └── index.js │ │ └── schemas │ │ │ └── index.js │ └── index.js ├── api-plugin-fulfillment-method-pickup-store │ ├── index.js │ ├── babel.config.cjs │ ├── jest.config.cjs │ └── src │ │ ├── schemas │ │ ├── index.js │ │ └── schema.graphql │ │ └── i18n │ │ └── index.js ├── file-collections-sa-base │ ├── src │ │ ├── debug.js │ │ └── index.js │ ├── README.md │ └── jest.config.js ├── file-collections │ ├── src │ │ ├── common │ │ │ └── FileRecord │ │ │ │ └── index.js │ │ ├── node │ │ │ ├── debug.js │ │ │ └── getFileDownloadHandler │ │ │ │ └── index.js │ │ └── browser │ │ │ └── index.js │ └── README.md ├── api-plugin-fulfillment-method-shipping-flat-rate │ ├── index.js │ ├── jest.config.cjs │ ├── babel.config.cjs │ └── src │ │ ├── i18n │ │ ├── he.json │ │ └── nb.json │ │ ├── schemas │ │ └── index.js │ │ └── resolvers │ │ └── FlatRateFulfillmentMethod │ │ └── index.js ├── api-plugin-fulfillment-method-shipping-dynamic-rate │ ├── index.js │ ├── babel.config.cjs │ ├── jest.config.cjs │ └── src │ │ ├── schemas │ │ ├── index.js │ │ └── schema.graphql │ │ └── i18n │ │ └── index.js └── db-version-check │ ├── .gitignore │ └── src │ └── main.js ├── pnpm-workspace.yaml ├── .eslintignore ├── .npmrc ├── .github └── ISSUE_TEMPLATE │ ├── config.yml │ └── questions.md └── .editorconfig /.nvmrc: -------------------------------------------------------------------------------- 1 | 18.10.0 2 | -------------------------------------------------------------------------------- /.husky/.gitignore: -------------------------------------------------------------------------------- 1 | _ 2 | -------------------------------------------------------------------------------- /apps/reaction/public/.gitignore: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /apps/reaction/public/custom/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/logger/.npmignore: -------------------------------------------------------------------------------- 1 | src 2 | -------------------------------------------------------------------------------- /packages/random/.npmignore: -------------------------------------------------------------------------------- 1 | src 2 | -------------------------------------------------------------------------------- /apps/meteor-blaze-app/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ -------------------------------------------------------------------------------- /packages/api-plugin-discounts-codes/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | -------------------------------------------------------------------------------- /packages/api-utils/tests/importAsString.test.txt: -------------------------------------------------------------------------------- 1 | IMPORTED A STRING 2 | -------------------------------------------------------------------------------- /pnpm-workspace.yaml: -------------------------------------------------------------------------------- 1 | packages: 2 | - 'packages/**' 3 | - 'apps/**' 4 | -------------------------------------------------------------------------------- /.husky/commit-msg: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | . "$(dirname "$0")/_/husky.sh" 3 | 4 | npx commitlint -e -------------------------------------------------------------------------------- /apps/reaction/public/robots.txt: -------------------------------------------------------------------------------- 1 | User-agent: * 2 | Disallow: /resources/ 3 | Sitemap: sitemap.xml 4 | -------------------------------------------------------------------------------- /packages/api-plugin-promotions/README.md: -------------------------------------------------------------------------------- 1 | ## Promotions 2 | 3 | The base plugin for promotions 4 | 5 | -------------------------------------------------------------------------------- /packages/api-plugin-email/migrations/migrationsNamespace.js: -------------------------------------------------------------------------------- 1 | export const migrationsNamespace = "email"; 2 | -------------------------------------------------------------------------------- /packages/api-plugin-tags/migrations/migrationsNamespace.js: -------------------------------------------------------------------------------- 1 | export const migrationsNamespace = "tags"; 2 | -------------------------------------------------------------------------------- /packages/api-plugin-accounts/migrations/migrationsNamespace.js: -------------------------------------------------------------------------------- 1 | export const migrationsNamespace = "accounts"; 2 | -------------------------------------------------------------------------------- /packages/api-plugin-carts/index.js: -------------------------------------------------------------------------------- 1 | import register from "./src/index.js"; 2 | 3 | export default register; 4 | -------------------------------------------------------------------------------- /packages/api-plugin-files/index.js: -------------------------------------------------------------------------------- 1 | import register from "./src/index.js"; 2 | 3 | export default register; 4 | -------------------------------------------------------------------------------- /packages/api-plugin-i18n/index.js: -------------------------------------------------------------------------------- 1 | import register from "./src/index.js"; 2 | 3 | export default register; 4 | -------------------------------------------------------------------------------- /packages/api-plugin-orders/index.js: -------------------------------------------------------------------------------- 1 | import register from "./src/index.js"; 2 | 3 | export default register; 4 | -------------------------------------------------------------------------------- /packages/api-plugin-shops/index.js: -------------------------------------------------------------------------------- 1 | import register from "./src/index.js"; 2 | 3 | export default register; 4 | -------------------------------------------------------------------------------- /packages/api-plugin-taxes/index.js: -------------------------------------------------------------------------------- 1 | import register from "./src/index.js"; 2 | 3 | export default register; 4 | -------------------------------------------------------------------------------- /apps/reaction/tests/.eslintrc.cjs: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | rules: { 3 | "require-jsdoc": "off" 4 | } 5 | }; 6 | -------------------------------------------------------------------------------- /packages/api-core/src/util/logger.js: -------------------------------------------------------------------------------- 1 | import Logger from "@reactioncommerce/logger"; 2 | 3 | export { Logger }; 4 | -------------------------------------------------------------------------------- /packages/api-plugin-bull-queue/index.js: -------------------------------------------------------------------------------- 1 | import register from "./src/index.js"; 2 | 3 | export default register; 4 | -------------------------------------------------------------------------------- /packages/api-plugin-catalogs/index.js: -------------------------------------------------------------------------------- 1 | import register from "./src/index.js"; 2 | 3 | export default register; 4 | -------------------------------------------------------------------------------- /packages/api-plugin-discounts/index.js: -------------------------------------------------------------------------------- 1 | import register from "./src/index.js"; 2 | 3 | export default register; 4 | -------------------------------------------------------------------------------- /packages/api-plugin-email-smtp/index.js: -------------------------------------------------------------------------------- 1 | import register from "./src/index.js"; 2 | 3 | export default register; 4 | -------------------------------------------------------------------------------- /packages/api-plugin-inventory/index.js: -------------------------------------------------------------------------------- 1 | import register from "./src/index.js"; 2 | 3 | export default register; 4 | -------------------------------------------------------------------------------- /packages/api-plugin-job-queue/index.js: -------------------------------------------------------------------------------- 1 | import register from "./src/index.js"; 2 | 3 | export default register; 4 | -------------------------------------------------------------------------------- /packages/api-plugin-navigation/index.js: -------------------------------------------------------------------------------- 1 | import register from "./src/index.js"; 2 | 3 | export default register; 4 | -------------------------------------------------------------------------------- /packages/api-plugin-payments/index.js: -------------------------------------------------------------------------------- 1 | import register from "./src/index.js"; 2 | 3 | export default register; 4 | -------------------------------------------------------------------------------- /packages/api-plugin-products/index.js: -------------------------------------------------------------------------------- 1 | import register from "./src/index.js"; 2 | 3 | export default register; 4 | -------------------------------------------------------------------------------- /packages/api-plugin-promotions/index.js: -------------------------------------------------------------------------------- 1 | import register from "./src/index.js"; 2 | 3 | export default register; 4 | -------------------------------------------------------------------------------- /packages/api-plugin-sample-data/index.js: -------------------------------------------------------------------------------- 1 | import register from "./src/index.js"; 2 | 3 | export default register; 4 | -------------------------------------------------------------------------------- /packages/api-plugin-sequences/index.js: -------------------------------------------------------------------------------- 1 | import register from "./src/index.js"; 2 | 3 | export default register; 4 | -------------------------------------------------------------------------------- /packages/api-plugin-settings/index.js: -------------------------------------------------------------------------------- 1 | import register from "./src/index.js"; 2 | 3 | export default register; 4 | -------------------------------------------------------------------------------- /packages/api-plugin-shipments/index.js: -------------------------------------------------------------------------------- 1 | import register from "./src/index.js"; 2 | 3 | export default register; 4 | -------------------------------------------------------------------------------- /packages/api-plugin-surcharges/index.js: -------------------------------------------------------------------------------- 1 | import register from "./src/index.js"; 2 | 3 | export default register; 4 | -------------------------------------------------------------------------------- /packages/api-plugin-translations/index.js: -------------------------------------------------------------------------------- 1 | import register from "./src/index.js"; 2 | 3 | export default register; 4 | -------------------------------------------------------------------------------- /packages/api-core/jest.config.cjs: -------------------------------------------------------------------------------- 1 | module.exports = require("@reactioncommerce/api-utils/lib/configs/jest.config.cjs"); 2 | -------------------------------------------------------------------------------- /packages/api-plugin-authentication/index.js: -------------------------------------------------------------------------------- 1 | import register from "./src/index.js"; 2 | 3 | export default register; 4 | -------------------------------------------------------------------------------- /packages/api-plugin-discounts-codes/index.js: -------------------------------------------------------------------------------- 1 | import register from "./src/index.js"; 2 | 3 | export default register; 4 | -------------------------------------------------------------------------------- /packages/api-plugin-email-templates/index.js: -------------------------------------------------------------------------------- 1 | import register from "./src/index.js"; 2 | 3 | export default register; 4 | -------------------------------------------------------------------------------- /packages/api-plugin-fulfillment/migrations/migrationsNamespace.js: -------------------------------------------------------------------------------- 1 | export const migrationsNamespace = "fulfillment"; 2 | -------------------------------------------------------------------------------- /packages/api-plugin-inventory-simple/index.js: -------------------------------------------------------------------------------- 1 | import register from "./src/index.js"; 2 | 3 | export default register; 4 | -------------------------------------------------------------------------------- /packages/api-plugin-notifications/index.js: -------------------------------------------------------------------------------- 1 | import register from "./src/index.js"; 2 | 3 | export default register; 4 | -------------------------------------------------------------------------------- /packages/api-plugin-payments-example/index.js: -------------------------------------------------------------------------------- 1 | import register from "./src/index.js"; 2 | 3 | export default register; 4 | -------------------------------------------------------------------------------- /packages/api-plugin-pricing-simple/index.js: -------------------------------------------------------------------------------- 1 | import register from "./src/index.js"; 2 | 3 | export default register; 4 | -------------------------------------------------------------------------------- /packages/api-plugin-promotions-offers/index.js: -------------------------------------------------------------------------------- 1 | import register from "./src/index.js"; 2 | 3 | export default register; 4 | -------------------------------------------------------------------------------- /packages/api-plugin-simple-schema/migrations/migrationsNamespace.js: -------------------------------------------------------------------------------- 1 | export const migrationsNamespace = "simpleSchema"; 2 | -------------------------------------------------------------------------------- /packages/api-plugin-sitemap-generator/index.js: -------------------------------------------------------------------------------- 1 | import register from "./src/index.js"; 2 | 3 | export default register; 4 | -------------------------------------------------------------------------------- /packages/api-plugin-taxes-flat-rate/index.js: -------------------------------------------------------------------------------- 1 | import register from "./src/index.js"; 2 | 3 | export default register; 4 | -------------------------------------------------------------------------------- /packages/api-core/babel.config.cjs: -------------------------------------------------------------------------------- 1 | module.exports = require("@reactioncommerce/api-utils/lib/configs/babel.config.cjs"); 2 | -------------------------------------------------------------------------------- /packages/api-plugin-address-validation/index.js: -------------------------------------------------------------------------------- 1 | import register from "./src/index.js"; 2 | 3 | export default register; 4 | -------------------------------------------------------------------------------- /packages/api-plugin-payments-stripe-sca/index.js: -------------------------------------------------------------------------------- 1 | import register from "./src/index.js"; 2 | 3 | export default register; 4 | -------------------------------------------------------------------------------- /packages/api-plugin-promotions-discounts/index.js: -------------------------------------------------------------------------------- 1 | import register from "./src/index.js"; 2 | 3 | export default register; 4 | -------------------------------------------------------------------------------- /packages/api-plugin-shipments-flat-rate/index.js: -------------------------------------------------------------------------------- 1 | import register from "./src/index.js"; 2 | 3 | export default register; 4 | -------------------------------------------------------------------------------- /packages/api-plugin-system-information/index.js: -------------------------------------------------------------------------------- 1 | import register from "./src/index.js"; 2 | 3 | export default register; 4 | -------------------------------------------------------------------------------- /packages/api-plugin-accounts/jest.config.cjs: -------------------------------------------------------------------------------- 1 | module.exports = require("@reactioncommerce/api-utils/lib/configs/jest.config.cjs"); 2 | -------------------------------------------------------------------------------- /packages/api-plugin-address-validation-test/index.js: -------------------------------------------------------------------------------- 1 | import register from "./src/index.js"; 2 | 3 | export default register; 4 | -------------------------------------------------------------------------------- /packages/api-plugin-carts/babel.config.cjs: -------------------------------------------------------------------------------- 1 | module.exports = require("@reactioncommerce/api-utils/lib/configs/babel.config.cjs"); 2 | -------------------------------------------------------------------------------- /packages/api-plugin-carts/jest.config.cjs: -------------------------------------------------------------------------------- 1 | module.exports = require("@reactioncommerce/api-utils/lib/configs/jest.config.cjs"); 2 | -------------------------------------------------------------------------------- /packages/api-plugin-catalogs/jest.config.cjs: -------------------------------------------------------------------------------- 1 | module.exports = require("@reactioncommerce/api-utils/lib/configs/jest.config.cjs"); 2 | -------------------------------------------------------------------------------- /packages/api-plugin-fulfillment-type-pickup/index.js: -------------------------------------------------------------------------------- 1 | import register from "./src/index.js"; 2 | 3 | export default register; 4 | -------------------------------------------------------------------------------- /packages/api-plugin-fulfillment-type-shipping/index.js: -------------------------------------------------------------------------------- 1 | import register from "./src/index.js"; 2 | 3 | export default register; 4 | -------------------------------------------------------------------------------- /packages/api-plugin-i18n/src/i18n/nb.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "i18n": "nb", 3 | "ns": "reaction-i18n", 4 | "translation": { } 5 | }] 6 | -------------------------------------------------------------------------------- /packages/api-plugin-orders/babel.config.cjs: -------------------------------------------------------------------------------- 1 | module.exports = require("@reactioncommerce/api-utils/lib/configs/babel.config.cjs"); 2 | -------------------------------------------------------------------------------- /packages/api-plugin-products/jest.config.cjs: -------------------------------------------------------------------------------- 1 | module.exports = require("@reactioncommerce/api-utils/lib/configs/jest.config.cjs"); 2 | -------------------------------------------------------------------------------- /packages/api-plugin-promotions-coupons/migrations/migrationsNamespace.js: -------------------------------------------------------------------------------- 1 | export const migrationsNamespace = "promotion-coupons"; 2 | -------------------------------------------------------------------------------- /packages/api-plugin-promotions/src/actions/index.js: -------------------------------------------------------------------------------- 1 | import noopAction from "./noop.js"; 2 | 3 | export default [noopAction]; 4 | -------------------------------------------------------------------------------- /packages/api-plugin-shops/babel.config.cjs: -------------------------------------------------------------------------------- 1 | module.exports = require("@reactioncommerce/api-utils/lib/configs/babel.config.cjs"); 2 | -------------------------------------------------------------------------------- /packages/api-plugin-shops/jest.config.cjs: -------------------------------------------------------------------------------- 1 | module.exports = require("@reactioncommerce/api-utils/lib/configs/jest.config.cjs"); 2 | -------------------------------------------------------------------------------- /packages/api-plugin-tags/babel.config.cjs: -------------------------------------------------------------------------------- 1 | module.exports = require("@reactioncommerce/api-utils/lib/configs/babel.config.cjs"); 2 | -------------------------------------------------------------------------------- /packages/api-plugin-tags/jest.config.cjs: -------------------------------------------------------------------------------- 1 | module.exports = require("@reactioncommerce/api-utils/lib/configs/jest.config.cjs"); 2 | -------------------------------------------------------------------------------- /packages/api-plugin-tags/src/resolvers/Shop/index.js: -------------------------------------------------------------------------------- 1 | import tags from "./tags.js"; 2 | 3 | export default { 4 | tags 5 | }; 6 | -------------------------------------------------------------------------------- /packages/api-plugin-taxes/babel.config.cjs: -------------------------------------------------------------------------------- 1 | module.exports = require("@reactioncommerce/api-utils/lib/configs/babel.config.cjs"); 2 | -------------------------------------------------------------------------------- /packages/api-plugin-taxes/src/i18n/nb.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "i18n": "nb", 3 | "ns": "reaction-taxes", 4 | "translation": { } 5 | }] 6 | -------------------------------------------------------------------------------- /packages/api-utils/lib/configs/commitlint.config.cjs: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | extends: ["@commitlint/config-conventional"] 3 | }; 4 | -------------------------------------------------------------------------------- /packages/file-collections-sa-gridfs/src/index.js: -------------------------------------------------------------------------------- 1 | import GridFSStore from "./GridFSStore"; 2 | 3 | export default GridFSStore; 4 | -------------------------------------------------------------------------------- /packages/logger/.gitignore: -------------------------------------------------------------------------------- 1 | 2 | *.log 3 | npm-debug.log* 4 | yarn-debug.log* 5 | yarn-error.log* 6 | 7 | dist 8 | node_modules 9 | -------------------------------------------------------------------------------- /packages/random/.gitignore: -------------------------------------------------------------------------------- 1 | 2 | *.log 3 | npm-debug.log* 4 | yarn-debug.log* 5 | yarn-error.log* 6 | 7 | dist 8 | node_modules 9 | -------------------------------------------------------------------------------- /packages/api-plugin-accounts/babel.config.cjs: -------------------------------------------------------------------------------- 1 | module.exports = require("@reactioncommerce/api-utils/lib/configs/babel.config.cjs"); 2 | -------------------------------------------------------------------------------- /packages/api-plugin-authorization-simple/migrations/migrationsNamespace.js: -------------------------------------------------------------------------------- 1 | export const migrationsNamespace = "simple-authorization"; 2 | -------------------------------------------------------------------------------- /packages/api-plugin-catalogs/babel.config.cjs: -------------------------------------------------------------------------------- 1 | module.exports = require("@reactioncommerce/api-utils/lib/configs/babel.config.cjs"); 2 | -------------------------------------------------------------------------------- /packages/api-plugin-catalogs/src/i18n/he.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "i18n": "he", 3 | "ns": "reaction-catalog", 4 | "translation": { } 5 | }] 6 | -------------------------------------------------------------------------------- /packages/api-plugin-catalogs/src/i18n/nb.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "i18n": "nb", 3 | "ns": "reaction-catalog", 4 | "translation": { } 5 | }] 6 | -------------------------------------------------------------------------------- /packages/api-plugin-discounts/babel.config.cjs: -------------------------------------------------------------------------------- 1 | module.exports = require("@reactioncommerce/api-utils/lib/configs/babel.config.cjs"); 2 | -------------------------------------------------------------------------------- /packages/api-plugin-discounts/jest.config.cjs: -------------------------------------------------------------------------------- 1 | module.exports = require("@reactioncommerce/api-utils/lib/configs/jest.config.cjs"); 2 | -------------------------------------------------------------------------------- /packages/api-plugin-email-smtp/babel.config.cjs: -------------------------------------------------------------------------------- 1 | module.exports = require("@reactioncommerce/api-utils/lib/configs/babel.config.cjs"); 2 | -------------------------------------------------------------------------------- /packages/api-plugin-email-smtp/jest.config.cjs: -------------------------------------------------------------------------------- 1 | module.exports = require("@reactioncommerce/api-utils/lib/configs/jest.config.cjs"); 2 | -------------------------------------------------------------------------------- /packages/api-plugin-fulfillment-method-pickup-store/index.js: -------------------------------------------------------------------------------- 1 | import register from "./src/index.js"; 2 | 3 | export default register; 4 | -------------------------------------------------------------------------------- /packages/api-plugin-fulfillment/babel.config.cjs: -------------------------------------------------------------------------------- 1 | module.exports = require("@reactioncommerce/api-utils/lib/configs/babel.config.cjs"); 2 | -------------------------------------------------------------------------------- /packages/api-plugin-fulfillment/jest.config.cjs: -------------------------------------------------------------------------------- 1 | module.exports = require("@reactioncommerce/api-utils/lib/configs/jest.config.cjs"); 2 | -------------------------------------------------------------------------------- /packages/api-plugin-inventory/babel.config.cjs: -------------------------------------------------------------------------------- 1 | module.exports = require("@reactioncommerce/api-utils/lib/configs/babel.config.cjs"); 2 | -------------------------------------------------------------------------------- /packages/api-plugin-notifications/jest.config.cjs: -------------------------------------------------------------------------------- 1 | module.exports = require("@reactioncommerce/api-utils/lib/configs/jest.config.cjs"); 2 | -------------------------------------------------------------------------------- /packages/api-plugin-payments/babel.config.cjs: -------------------------------------------------------------------------------- 1 | module.exports = require("@reactioncommerce/api-utils/lib/configs/babel.config.cjs"); 2 | -------------------------------------------------------------------------------- /packages/api-plugin-products/babel.config.cjs: -------------------------------------------------------------------------------- 1 | module.exports = require("@reactioncommerce/api-utils/lib/configs/babel.config.cjs"); 2 | -------------------------------------------------------------------------------- /packages/api-plugin-promotions/babel.config.cjs: -------------------------------------------------------------------------------- 1 | module.exports = require("@reactioncommerce/api-utils/lib/configs/babel.config.cjs"); 2 | -------------------------------------------------------------------------------- /packages/api-plugin-promotions/jest.config.cjs: -------------------------------------------------------------------------------- 1 | module.exports = require("@reactioncommerce/api-utils/lib/configs/jest.config.cjs"); 2 | -------------------------------------------------------------------------------- /packages/api-plugin-promotions/src/qualifiers/index.js: -------------------------------------------------------------------------------- 1 | import stackable from "./stackable.js"; 2 | 3 | export default [stackable]; 4 | -------------------------------------------------------------------------------- /packages/api-plugin-sample-data/babel.config.cjs: -------------------------------------------------------------------------------- 1 | module.exports = require("@reactioncommerce/api-utils/lib/configs/babel.config.cjs"); 2 | -------------------------------------------------------------------------------- /packages/api-plugin-sample-data/jest.config.cjs: -------------------------------------------------------------------------------- 1 | module.exports = require("@reactioncommerce/api-utils/lib/configs/jest.config.cjs"); 2 | -------------------------------------------------------------------------------- /packages/api-plugin-sequences/babel.config.cjs: -------------------------------------------------------------------------------- 1 | module.exports = require("@reactioncommerce/api-utils/lib/configs/babel.config.cjs"); 2 | -------------------------------------------------------------------------------- /packages/api-plugin-sequences/jest.config.cjs: -------------------------------------------------------------------------------- 1 | module.exports = require("@reactioncommerce/api-utils/lib/configs/jest.config.cjs"); 2 | -------------------------------------------------------------------------------- /packages/api-plugin-shipments/babel.config.cjs: -------------------------------------------------------------------------------- 1 | module.exports = require("@reactioncommerce/api-utils/lib/configs/babel.config.cjs"); 2 | -------------------------------------------------------------------------------- /packages/api-plugin-shipments/src/i18n/he.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "i18n": "he", 3 | "ns": "reaction-shipping", 4 | "translation": { } 5 | }] 6 | -------------------------------------------------------------------------------- /packages/api-plugin-shipments/src/i18n/nb.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "i18n": "nb", 3 | "ns": "reaction-shipping", 4 | "translation": { } 5 | }] 6 | -------------------------------------------------------------------------------- /packages/api-plugin-simple-schema/jest.config.cjs: -------------------------------------------------------------------------------- 1 | module.exports = require("@reactioncommerce/api-utils/lib/configs/jest.config.cjs"); 2 | -------------------------------------------------------------------------------- /packages/api-plugin-surcharges/babel.config.cjs: -------------------------------------------------------------------------------- 1 | module.exports = require("@reactioncommerce/api-utils/lib/configs/babel.config.cjs"); 2 | -------------------------------------------------------------------------------- /packages/api-plugin-surcharges/jest.config.cjs: -------------------------------------------------------------------------------- 1 | module.exports = require("@reactioncommerce/api-utils/lib/configs/jest.config.cjs"); 2 | -------------------------------------------------------------------------------- /packages/file-collections-sa-base/src/debug.js: -------------------------------------------------------------------------------- 1 | import debug from "debug"; 2 | 3 | export default debug("reaction-file-collections"); 4 | -------------------------------------------------------------------------------- /packages/file-collections-sa-base/src/index.js: -------------------------------------------------------------------------------- 1 | import StorageAdapter from "./StorageAdapter"; 2 | 3 | export default StorageAdapter; 4 | -------------------------------------------------------------------------------- /packages/file-collections/src/common/FileRecord/index.js: -------------------------------------------------------------------------------- 1 | import FileRecord from "./FileRecord"; 2 | 3 | export default FileRecord; 4 | -------------------------------------------------------------------------------- /packages/file-collections/src/node/debug.js: -------------------------------------------------------------------------------- 1 | import debug from "debug"; 2 | 3 | export default debug("reaction-file-collections"); 4 | -------------------------------------------------------------------------------- /.eslintignore: -------------------------------------------------------------------------------- 1 | dist 2 | jest.config.js 3 | .reaction/**/* 4 | client/plugins.js 5 | server/plugins.js 6 | imports/plugins/*/*/node_modules 7 | -------------------------------------------------------------------------------- /apps/reaction/public/fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutonurmux/malichimp/HEAD/apps/reaction/public/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /apps/reaction/public/resources/avatar.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutonurmux/malichimp/HEAD/apps/reaction/public/resources/avatar.gif -------------------------------------------------------------------------------- /packages/api-plugin-accounts/src/resolvers/Shop/index.js: -------------------------------------------------------------------------------- 1 | import groups from "./groups.js"; 2 | 3 | export default { 4 | groups 5 | }; 6 | -------------------------------------------------------------------------------- /packages/api-plugin-authorization-simple/src/queries/index.js: -------------------------------------------------------------------------------- 1 | import roles from "./roles.js"; 2 | 3 | export default { 4 | roles 5 | }; 6 | -------------------------------------------------------------------------------- /packages/api-plugin-email/src/queries/index.js: -------------------------------------------------------------------------------- 1 | import emailJobs from "./emailJobs.js"; 2 | 3 | export default { 4 | emailJobs 5 | }; 6 | -------------------------------------------------------------------------------- /packages/api-plugin-fulfillment-method-shipping-flat-rate/index.js: -------------------------------------------------------------------------------- 1 | import register from "./src/index.js"; 2 | 3 | export default register; 4 | -------------------------------------------------------------------------------- /packages/api-plugin-inventory-simple/babel.config.cjs: -------------------------------------------------------------------------------- 1 | module.exports = require("@reactioncommerce/api-utils/lib/configs/babel.config.cjs"); 2 | -------------------------------------------------------------------------------- /packages/api-plugin-inventory-simple/jest.config.cjs: -------------------------------------------------------------------------------- 1 | module.exports = require("@reactioncommerce/api-utils/lib/configs/jest.config.cjs"); 2 | -------------------------------------------------------------------------------- /packages/api-plugin-notifications/babel.config.cjs: -------------------------------------------------------------------------------- 1 | module.exports = require("@reactioncommerce/api-utils/lib/configs/babel.config.cjs"); 2 | -------------------------------------------------------------------------------- /packages/api-plugin-pricing-simple/babel.config.cjs: -------------------------------------------------------------------------------- 1 | module.exports = require("@reactioncommerce/api-utils/lib/configs/babel.config.cjs"); 2 | -------------------------------------------------------------------------------- /packages/api-plugin-pricing-simple/jest.config.cjs: -------------------------------------------------------------------------------- 1 | module.exports = require("@reactioncommerce/api-utils/lib/configs/jest.config.cjs"); 2 | -------------------------------------------------------------------------------- /packages/api-plugin-promotions-coupons/jest.config.cjs: -------------------------------------------------------------------------------- 1 | module.exports = require("@reactioncommerce/api-utils/lib/configs/jest.config.cjs"); 2 | -------------------------------------------------------------------------------- /packages/api-plugin-promotions-discounts/src/stackabilities/index.js: -------------------------------------------------------------------------------- 1 | import perType from "./perType.js"; 2 | 3 | export default [perType]; 4 | -------------------------------------------------------------------------------- /packages/api-plugin-promotions-offers/jest.config.cjs: -------------------------------------------------------------------------------- 1 | module.exports = require("@reactioncommerce/api-utils/lib/configs/jest.config.cjs"); 2 | -------------------------------------------------------------------------------- /packages/api-plugin-simple-schema/babel.config.cjs: -------------------------------------------------------------------------------- 1 | module.exports = require("@reactioncommerce/api-utils/lib/configs/babel.config.cjs"); 2 | -------------------------------------------------------------------------------- /packages/api-plugin-simple-schema/src/resolvers/index.js: -------------------------------------------------------------------------------- 1 | import Query from "./Query/index.js"; 2 | 3 | export default { 4 | Query 5 | }; 6 | -------------------------------------------------------------------------------- /packages/api-utils/index.js: -------------------------------------------------------------------------------- 1 | console.warn("You should not import from this file, please import modules directly."); // eslint-disable-line 2 | -------------------------------------------------------------------------------- /packages/file-collections-sa-gridfs/src/debug.js: -------------------------------------------------------------------------------- 1 | import debug from "debug"; 2 | 3 | export default debug("reaction-file-collections"); 4 | -------------------------------------------------------------------------------- /packages/api-plugin-email/src/resolvers/Query/index.js: -------------------------------------------------------------------------------- 1 | import emailJobs from "./emailJobs.js"; 2 | 3 | export default { 4 | emailJobs 5 | }; 6 | -------------------------------------------------------------------------------- /packages/api-plugin-files/src/resolvers/index.js: -------------------------------------------------------------------------------- 1 | import Mutation from "./Mutation/index.js"; 2 | 3 | export default { 4 | Mutation 5 | }; 6 | -------------------------------------------------------------------------------- /packages/api-plugin-fulfillment-method-shipping-dynamic-rate/index.js: -------------------------------------------------------------------------------- 1 | import register from "./src/index.js"; 2 | 3 | export default register; 4 | -------------------------------------------------------------------------------- /packages/api-plugin-fulfillment-type-pickup/jest.config.cjs: -------------------------------------------------------------------------------- 1 | module.exports = require("@reactioncommerce/api-utils/lib/configs/jest.config.cjs"); 2 | -------------------------------------------------------------------------------- /packages/api-plugin-payments-stripe-sca/babel.config.cjs: -------------------------------------------------------------------------------- 1 | module.exports = require("@reactioncommerce/api-utils/lib/configs/babel.config.cjs"); 2 | -------------------------------------------------------------------------------- /packages/api-plugin-payments/src/resolvers/PaymentMethod/index.js: -------------------------------------------------------------------------------- 1 | export default { 2 | canRefund: (node) => node.canRefund !== false 3 | }; 4 | -------------------------------------------------------------------------------- /packages/api-plugin-promotions-coupons/babel.config.cjs: -------------------------------------------------------------------------------- 1 | module.exports = require("@reactioncommerce/api-utils/lib/configs/babel.config.cjs"); 2 | -------------------------------------------------------------------------------- /packages/api-plugin-promotions-discounts/babel.config.cjs: -------------------------------------------------------------------------------- 1 | module.exports = require("@reactioncommerce/api-utils/lib/configs/babel.config.cjs"); 2 | -------------------------------------------------------------------------------- /packages/api-plugin-promotions-discounts/jest.config.cjs: -------------------------------------------------------------------------------- 1 | module.exports = require("@reactioncommerce/api-utils/lib/configs/jest.config.cjs"); 2 | -------------------------------------------------------------------------------- /packages/api-plugin-promotions-offers/babel.config.cjs: -------------------------------------------------------------------------------- 1 | module.exports = require("@reactioncommerce/api-utils/lib/configs/babel.config.cjs"); 2 | -------------------------------------------------------------------------------- /packages/api-plugin-settings/src/queries/index.js: -------------------------------------------------------------------------------- 1 | import appSettings from "./appSettings.js"; 2 | 3 | export default { 4 | appSettings 5 | }; 6 | -------------------------------------------------------------------------------- /packages/api-plugin-shipments-flat-rate/babel.config.cjs: -------------------------------------------------------------------------------- 1 | module.exports = require("@reactioncommerce/api-utils/lib/configs/babel.config.cjs"); 2 | -------------------------------------------------------------------------------- /packages/api-plugin-shipments-flat-rate/jest.config.cjs: -------------------------------------------------------------------------------- 1 | module.exports = require("@reactioncommerce/api-utils/lib/configs/jest.config.cjs"); 2 | -------------------------------------------------------------------------------- /packages/api-plugin-sitemap-generator/src/queries/index.js: -------------------------------------------------------------------------------- 1 | import sitemap from "./sitemap.js"; 2 | 3 | export default { 4 | sitemap 5 | }; 6 | -------------------------------------------------------------------------------- /packages/api-plugin-system-information/src/resolvers/index.js: -------------------------------------------------------------------------------- 1 | import Query from "./Query/index.js"; 2 | 3 | export default { 4 | Query 5 | }; 6 | -------------------------------------------------------------------------------- /packages/api-plugin-taxes-flat-rate/src/queries/index.js: -------------------------------------------------------------------------------- 1 | import taxRates from "./taxRates.js"; 2 | 3 | export default { 4 | taxRates 5 | }; 6 | -------------------------------------------------------------------------------- /packages/db-version-check/.gitignore: -------------------------------------------------------------------------------- 1 | *.log 2 | npm-debug.log* 3 | yarn-debug.log* 4 | yarn-error.log* 5 | yarn.lock 6 | dist 7 | node_modules 8 | -------------------------------------------------------------------------------- /packages/file-collections/README.md: -------------------------------------------------------------------------------- 1 | # file-collections 2 | 3 | [Read the docs](https://github.com/reactioncommerce/reaction-file-collections) 4 | -------------------------------------------------------------------------------- /.npmrc: -------------------------------------------------------------------------------- 1 | engine-strict=true 2 | auto-install-peers=true 3 | strict-peer-dependencies=false 4 | publish-branch=trunk 5 | prefer-workspace-packages=true 6 | -------------------------------------------------------------------------------- /apps/meteor-blaze-app/client/main.js: -------------------------------------------------------------------------------- 1 | // eslint-disable-next-line node/no-unpublished-import, node/no-missing-import 2 | import "/imports/client"; 3 | -------------------------------------------------------------------------------- /apps/reaction/public/resources/placeholder.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutonurmux/malichimp/HEAD/apps/reaction/public/resources/placeholder.gif -------------------------------------------------------------------------------- /packages/api-plugin-accounts/src/resolvers/AddAccountAddressBookEntryPayload.js: -------------------------------------------------------------------------------- 1 | export default { 2 | addressEdge: ({ address }) => address 3 | }; 4 | -------------------------------------------------------------------------------- /packages/api-plugin-authorization-simple/src/resolvers/Query/index.js: -------------------------------------------------------------------------------- 1 | import roles from "./roles.js"; 2 | 3 | export default { 4 | roles 5 | }; 6 | -------------------------------------------------------------------------------- /packages/api-plugin-authorization-simple/src/resolvers/Shop/index.js: -------------------------------------------------------------------------------- 1 | import roles from "./roles.js"; 2 | 3 | export default { 4 | roles 5 | }; 6 | -------------------------------------------------------------------------------- /packages/api-plugin-carts/src/resolvers/Subscription/index.js: -------------------------------------------------------------------------------- 1 | import cartUpdated from "./cartUpdated.js"; 2 | 3 | export default { cartUpdated }; 4 | -------------------------------------------------------------------------------- /packages/api-plugin-email-smtp/src/resolvers/index.js: -------------------------------------------------------------------------------- 1 | import Mutation from "./Mutation/index.js"; 2 | 3 | export default { 4 | Mutation 5 | }; 6 | -------------------------------------------------------------------------------- /packages/api-plugin-fulfillment-type-pickup/babel.config.cjs: -------------------------------------------------------------------------------- 1 | module.exports = require("@reactioncommerce/api-utils/lib/configs/babel.config.cjs"); 2 | -------------------------------------------------------------------------------- /packages/api-plugin-fulfillment-type-shipping/babel.config.cjs: -------------------------------------------------------------------------------- 1 | module.exports = require("@reactioncommerce/api-utils/lib/configs/babel.config.cjs"); 2 | -------------------------------------------------------------------------------- /packages/api-plugin-fulfillment-type-shipping/jest.config.cjs: -------------------------------------------------------------------------------- 1 | module.exports = require("@reactioncommerce/api-utils/lib/configs/jest.config.cjs"); 2 | -------------------------------------------------------------------------------- /packages/api-plugin-sitemap-generator/src/resolvers/Query/index.js: -------------------------------------------------------------------------------- 1 | import sitemap from "./sitemap.js"; 2 | 3 | export default { 4 | sitemap 5 | }; 6 | -------------------------------------------------------------------------------- /apps/reaction/public/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutonurmux/malichimp/HEAD/apps/reaction/public/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /apps/reaction/public/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutonurmux/malichimp/HEAD/apps/reaction/public/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /apps/reaction/public/resources/fonts/fontello.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutonurmux/malichimp/HEAD/apps/reaction/public/resources/fonts/fontello.eot -------------------------------------------------------------------------------- /apps/reaction/public/resources/fonts/fontello.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutonurmux/malichimp/HEAD/apps/reaction/public/resources/fonts/fontello.ttf -------------------------------------------------------------------------------- /apps/reaction/public/resources/fonts/fontello.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutonurmux/malichimp/HEAD/apps/reaction/public/resources/fonts/fontello.woff -------------------------------------------------------------------------------- /packages/api-plugin-fulfillment-method-pickup-store/babel.config.cjs: -------------------------------------------------------------------------------- 1 | module.exports = require("@reactioncommerce/api-utils/lib/configs/babel.config.cjs"); 2 | -------------------------------------------------------------------------------- /packages/api-plugin-fulfillment-method-pickup-store/jest.config.cjs: -------------------------------------------------------------------------------- 1 | module.exports = require("@reactioncommerce/api-utils/lib/configs/jest.config.cjs"); 2 | -------------------------------------------------------------------------------- /packages/api-plugin-fulfillment-type-shipping/src/i18n/he.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "i18n": "he", 3 | "ns": "reaction-shipping", 4 | "translation": { } 5 | }] 6 | -------------------------------------------------------------------------------- /packages/api-plugin-fulfillment-type-shipping/src/i18n/nb.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "i18n": "nb", 3 | "ns": "reaction-shipping", 4 | "translation": { } 5 | }] 6 | -------------------------------------------------------------------------------- /packages/api-plugin-payments-stripe-sca/src/resolvers/index.js: -------------------------------------------------------------------------------- 1 | import Mutation from "./Mutation/index.js"; 2 | 3 | export default { 4 | Mutation 5 | }; 6 | -------------------------------------------------------------------------------- /packages/api-plugin-promotions-discounts/src/actions/index.js: -------------------------------------------------------------------------------- 1 | import discountAction from "./discountAction.js"; 2 | 3 | export default [discountAction]; 4 | -------------------------------------------------------------------------------- /packages/api-plugin-shipments-flat-rate/src/i18n/he.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "i18n": "he", 3 | "ns": "reaction-shipping-rates", 4 | "translation": { } 5 | }] 6 | -------------------------------------------------------------------------------- /packages/api-plugin-shipments-flat-rate/src/i18n/nb.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "i18n": "nb", 3 | "ns": "reaction-shipping-rates", 4 | "translation": { } 5 | }] 6 | -------------------------------------------------------------------------------- /packages/api-plugin-taxes-flat-rate/src/resolvers/Query/index.js: -------------------------------------------------------------------------------- 1 | import taxRates from "./taxRates.js"; 2 | 3 | export default { 4 | taxRates 5 | }; 6 | -------------------------------------------------------------------------------- /packages/api-utils/lib/configs/husky.config.cjs: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | hooks: { 3 | "commit-msg": "commitlint -E HUSKY_GIT_PARAMS" 4 | } 5 | }; 6 | -------------------------------------------------------------------------------- /apps/reaction/public/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutonurmux/malichimp/HEAD/apps/reaction/public/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /apps/reaction/public/fonts/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutonurmux/malichimp/HEAD/apps/reaction/public/fonts/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /apps/reaction/public/resources/fonts/fontello.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutonurmux/malichimp/HEAD/apps/reaction/public/resources/fonts/fontello.woff2 -------------------------------------------------------------------------------- /packages/api-plugin-discounts-codes/src/queries/index.js: -------------------------------------------------------------------------------- 1 | import discountCodes from "./discountCodes.js"; 2 | 3 | export default { 4 | discountCodes 5 | }; 6 | -------------------------------------------------------------------------------- /packages/api-plugin-fulfillment-method-shipping-flat-rate/jest.config.cjs: -------------------------------------------------------------------------------- 1 | module.exports = require("@reactioncommerce/api-utils/lib/configs/jest.config.cjs"); 2 | -------------------------------------------------------------------------------- /packages/api-plugin-promotions-offers/src/enhancers/index.js: -------------------------------------------------------------------------------- 1 | import merchandiseTotal from "./merchandiseTotal.js"; 2 | 3 | export default [merchandiseTotal]; 4 | -------------------------------------------------------------------------------- /packages/api-plugin-promotions/src/stackabilities/index.js: -------------------------------------------------------------------------------- 1 | import all from "./all.js"; 2 | import none from "./none.js"; 3 | 4 | export default [all, none]; 5 | -------------------------------------------------------------------------------- /packages/api-plugin-sequences/src/mutations/index.js: -------------------------------------------------------------------------------- 1 | import incrementSequence from "./incrementSequence.js"; 2 | 3 | export default { incrementSequence }; 4 | -------------------------------------------------------------------------------- /packages/db-version-check/src/main.js: -------------------------------------------------------------------------------- 1 | import doesDatabaseVersionMatch from "./doesDatabaseVersionMatch.js"; 2 | 3 | export default doesDatabaseVersionMatch; 4 | -------------------------------------------------------------------------------- /packages/file-collections-sa-base/README.md: -------------------------------------------------------------------------------- 1 | # file-collections-sa-base 2 | 3 | [Read the docs](https://github.com/reactioncommerce/reaction-file-collections) 4 | -------------------------------------------------------------------------------- /apps/reaction/public/resources/Reaction2.0_Catalyst.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutonurmux/malichimp/HEAD/apps/reaction/public/resources/Reaction2.0_Catalyst.png -------------------------------------------------------------------------------- /packages/api-plugin-discounts/src/i18n/nb.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "language": "Bokmål", 3 | "i18n": "nb", 4 | "ns": "reaction-discounts", 5 | "translation": { } 6 | }] 7 | -------------------------------------------------------------------------------- /packages/api-plugin-email-templates/src/queries/index.js: -------------------------------------------------------------------------------- 1 | import emailTemplates from "./emailTemplates.js"; 2 | 3 | export default { 4 | emailTemplates 5 | }; 6 | -------------------------------------------------------------------------------- /packages/api-plugin-fulfillment-method-shipping-dynamic-rate/babel.config.cjs: -------------------------------------------------------------------------------- 1 | module.exports = require("@reactioncommerce/api-utils/lib/configs/babel.config.cjs"); 2 | -------------------------------------------------------------------------------- /packages/api-plugin-fulfillment-method-shipping-dynamic-rate/jest.config.cjs: -------------------------------------------------------------------------------- 1 | module.exports = require("@reactioncommerce/api-utils/lib/configs/jest.config.cjs"); 2 | -------------------------------------------------------------------------------- /packages/api-plugin-fulfillment-method-shipping-flat-rate/babel.config.cjs: -------------------------------------------------------------------------------- 1 | module.exports = require("@reactioncommerce/api-utils/lib/configs/babel.config.cjs"); 2 | -------------------------------------------------------------------------------- /packages/api-plugin-inventory-simple/src/queries/index.js: -------------------------------------------------------------------------------- 1 | import simpleInventory from "./simpleInventory.js"; 2 | 3 | export default { 4 | simpleInventory 5 | }; 6 | -------------------------------------------------------------------------------- /packages/api-plugin-payments/src/i18n/nb.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "language": "Bokmål", 3 | "i18n": "nb", 4 | "ns": "reaction-payments", 5 | "translation": { } 6 | }] 7 | -------------------------------------------------------------------------------- /packages/api-plugin-pricing-simple/src/queries/index.js: -------------------------------------------------------------------------------- 1 | import getVariantPrice from "./getVariantPrice.js"; 2 | 3 | export default { 4 | getVariantPrice 5 | }; 6 | -------------------------------------------------------------------------------- /packages/api-plugin-settings/src/mutations/index.js: -------------------------------------------------------------------------------- 1 | import updateAppSettings from "./updateAppSettings.js"; 2 | 3 | export default { 4 | updateAppSettings 5 | }; 6 | -------------------------------------------------------------------------------- /packages/api-plugin-simple-schema/src/queries/index.js: -------------------------------------------------------------------------------- 1 | import introspectSchema from "./introspectSchema.js"; 2 | 3 | export default { 4 | introspectSchema 5 | }; 6 | -------------------------------------------------------------------------------- /packages/file-collections-sa-gridfs/README.md: -------------------------------------------------------------------------------- 1 | # file-collections-sa-gridfs 2 | 3 | [Read the docs](https://github.com/reactioncommerce/reaction-file-collections) 4 | -------------------------------------------------------------------------------- /packages/api-plugin-discounts-codes/src/i18n/nb.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "language": "Bokmål", 3 | "i18n": "nb", 4 | "ns": "discount-codes", 5 | "translation": { } 6 | }] 7 | -------------------------------------------------------------------------------- /packages/api-plugin-discounts-codes/src/resolvers/Query/index.js: -------------------------------------------------------------------------------- 1 | import discountCodes from "./discountCodes.js"; 2 | 3 | export default { 4 | discountCodes 5 | }; 6 | -------------------------------------------------------------------------------- /packages/api-plugin-email-templates/src/resolvers/Query/index.js: -------------------------------------------------------------------------------- 1 | import emailTemplates from "./emailTemplates.js"; 2 | 3 | export default { 4 | emailTemplates 5 | }; 6 | -------------------------------------------------------------------------------- /packages/api-plugin-email/src/resolvers/Mutation/index.js: -------------------------------------------------------------------------------- 1 | import retryFailedEmail from "./retryFailedEmail.js"; 2 | 3 | export default { 4 | retryFailedEmail 5 | }; 6 | -------------------------------------------------------------------------------- /packages/api-plugin-fulfillment-method-shipping-flat-rate/src/i18n/he.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "i18n": "he", 3 | "ns": "reaction-shipping-rates", 4 | "translation": { } 5 | }] 6 | -------------------------------------------------------------------------------- /packages/api-plugin-fulfillment-method-shipping-flat-rate/src/i18n/nb.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "i18n": "nb", 3 | "ns": "reaction-shipping-rates", 4 | "translation": { } 5 | }] 6 | -------------------------------------------------------------------------------- /packages/api-plugin-promotions-offers/README.md: -------------------------------------------------------------------------------- 1 | ## Promotions-Offers 2 | 3 | A plugin that allows you to create promotions "offers" which can trigger any "action" 4 | 5 | -------------------------------------------------------------------------------- /packages/api-plugin-promotions-offers/src/triggers/index.js: -------------------------------------------------------------------------------- 1 | import offerTriggerHandler from "./offerTriggerHandler.js"; 2 | 3 | export default [offerTriggerHandler]; 4 | -------------------------------------------------------------------------------- /packages/api-plugin-sitemap-generator/src/i18n/index.js: -------------------------------------------------------------------------------- 1 | import en from "./en.json" assert { type: "json" }; 2 | 3 | export default { 4 | translations: [...en] 5 | }; 6 | -------------------------------------------------------------------------------- /apps/reaction/public/resources/email-templates/shop-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutonurmux/malichimp/HEAD/apps/reaction/public/resources/email-templates/shop-logo.png -------------------------------------------------------------------------------- /apps/reaction/tests/integration/api/queries/globalSettings/GlobalSettingsQuery.graphql: -------------------------------------------------------------------------------- 1 | 2 | query{ 3 | globalSettings { 4 | canSellVariantWithoutInventory 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /packages/api-plugin-email-templates/src/resolvers/Mutation/index.js: -------------------------------------------------------------------------------- 1 | import updateTemplate from "./updateTemplate.js"; 2 | 3 | export default { 4 | updateTemplate 5 | }; 6 | -------------------------------------------------------------------------------- /packages/api-plugin-inventory-simple/src/resolvers/Query/index.js: -------------------------------------------------------------------------------- 1 | import simpleInventory from "./simpleInventory.js"; 2 | 3 | export default { 4 | simpleInventory 5 | }; 6 | -------------------------------------------------------------------------------- /packages/api-plugin-notifications/src/mutations/index.js: -------------------------------------------------------------------------------- 1 | import createNotification from "./createNotification.js"; 2 | 3 | export default { 4 | createNotification 5 | }; 6 | -------------------------------------------------------------------------------- /packages/api-plugin-payments-example/src/i18n/nb.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "language": "Bokmål", 3 | "i18n": "nb", 4 | "ns": "example-paymentmethod", 5 | "translation": { } 6 | }] 7 | -------------------------------------------------------------------------------- /packages/api-plugin-promotions-coupons/README.md: -------------------------------------------------------------------------------- 1 | ## Promotions-Coupons 2 | 3 | A plugin that allows you to create promotions "coupons" which can trigger any "action" 4 | 5 | -------------------------------------------------------------------------------- /packages/api-plugin-promotions-coupons/src/triggers/index.js: -------------------------------------------------------------------------------- 1 | import couponsTriggerHandler from "./couponsTriggerHandler.js"; 2 | 3 | export default [couponsTriggerHandler]; 4 | -------------------------------------------------------------------------------- /packages/api-plugin-simple-schema/src/resolvers/Query/index.js: -------------------------------------------------------------------------------- 1 | import introspectSchema from "./introspectSchema.js"; 2 | 3 | export default { 4 | introspectSchema 5 | }; 6 | -------------------------------------------------------------------------------- /packages/api-plugin-sitemap-generator/src/mutations/index.js: -------------------------------------------------------------------------------- 1 | import generateSitemaps from "./generateSitemaps.js"; 2 | 3 | export default { 4 | generateSitemaps 5 | }; 6 | -------------------------------------------------------------------------------- /packages/api-plugin-system-information/src/queries/index.js: -------------------------------------------------------------------------------- 1 | import systemInformation from "./systemInformation.js"; 2 | 3 | export default { 4 | systemInformation 5 | }; 6 | -------------------------------------------------------------------------------- /apps/reaction/public/resources/email-templates/twitter-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutonurmux/malichimp/HEAD/apps/reaction/public/resources/email-templates/twitter-icon.png -------------------------------------------------------------------------------- /apps/reaction/tests/integration/api/queries/taxCodes/TaxCodesQuery.graphql: -------------------------------------------------------------------------------- 1 | 2 | query ($shopId: ID!) { 3 | taxCodes(shopId: $shopId){ 4 | code 5 | label 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /packages/api-plugin-email/index.js: -------------------------------------------------------------------------------- 1 | import register from "./src/index.js"; 2 | 3 | export { default as migrations } from "./migrations/index.js"; 4 | 5 | export default register; 6 | -------------------------------------------------------------------------------- /packages/api-plugin-sitemap-generator/src/resolvers/Mutation/index.js: -------------------------------------------------------------------------------- 1 | import generateSitemaps from "./generateSitemaps.js"; 2 | 3 | export default { 4 | generateSitemaps 5 | }; 6 | -------------------------------------------------------------------------------- /packages/api-plugin-tags/index.js: -------------------------------------------------------------------------------- 1 | import register from "./src/index.js"; 2 | 3 | export { default as migrations } from "./migrations/index.js"; 4 | 5 | export default register; 6 | -------------------------------------------------------------------------------- /packages/file-collections/src/node/getFileDownloadHandler/index.js: -------------------------------------------------------------------------------- 1 | import getFileDownloadHandler from "./getFileDownloadHandler"; 2 | 3 | export default getFileDownloadHandler; 4 | -------------------------------------------------------------------------------- /apps/reaction/public/resources/email-templates/facebook-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutonurmux/malichimp/HEAD/apps/reaction/public/resources/email-templates/facebook-icon.png -------------------------------------------------------------------------------- /apps/reaction/tests/integration/api/queries/shopBySlug/ShopBySlugQuery.graphql: -------------------------------------------------------------------------------- 1 | query ($slug: String!) { 2 | shopBySlug(slug: $slug) { 3 | _id 4 | name 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /packages/api-plugin-accounts/index.js: -------------------------------------------------------------------------------- 1 | import register from "./src/index.js"; 2 | 3 | export { default as migrations } from "./migrations/index.js"; 4 | 5 | export default register; 6 | -------------------------------------------------------------------------------- /packages/api-plugin-discounts/src/queries/index.js: -------------------------------------------------------------------------------- 1 | import getDiscountsTotalForCart from "./getDiscountsTotalForCart.js"; 2 | 3 | export default { 4 | getDiscountsTotalForCart 5 | }; 6 | -------------------------------------------------------------------------------- /packages/api-plugin-email-smtp/src/mutations/index.js: -------------------------------------------------------------------------------- 1 | import verifySMTPEmailSettings from "./verifySMTPEmailSettings.js"; 2 | 3 | export default { 4 | verifySMTPEmailSettings 5 | }; 6 | -------------------------------------------------------------------------------- /packages/api-plugin-promotions-discounts/src/facts/index.js: -------------------------------------------------------------------------------- 1 | import getKeyValueArray from "./getKeyValueArray.js"; 2 | 3 | export default { 4 | keyValueArray: getKeyValueArray 5 | }; 6 | -------------------------------------------------------------------------------- /packages/api-plugin-system-information/src/resolvers/Query/index.js: -------------------------------------------------------------------------------- 1 | import systemInformation from "./systemInformation.js"; 2 | 3 | export default { 4 | systemInformation 5 | }; 6 | -------------------------------------------------------------------------------- /apps/reaction/public/resources/email-templates/google-plus-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutonurmux/malichimp/HEAD/apps/reaction/public/resources/email-templates/google-plus-icon.png -------------------------------------------------------------------------------- /apps/reaction/tests/integration/api/queries/shopSettings/ShopSettingsQuery.graphql: -------------------------------------------------------------------------------- 1 | 2 | query($shopId: ID!){ 3 | shopSettings(shopId: $shopId){ 4 | sitemapRefreshPeriod 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /packages/api-plugin-fulfillment/index.js: -------------------------------------------------------------------------------- 1 | import register from "./src/index.js"; 2 | 3 | export { default as migrations } from "./migrations/index.js"; 4 | 5 | export default register; 6 | -------------------------------------------------------------------------------- /packages/api-plugin-simple-schema/index.js: -------------------------------------------------------------------------------- 1 | import register from "./src/index.js"; 2 | 3 | export { default as migrations } from "./migrations/index.js"; 4 | 5 | export default register; 6 | -------------------------------------------------------------------------------- /packages/api-plugin-tags/src/resolvers/CatalogProduct/index.js: -------------------------------------------------------------------------------- 1 | import tagIds from "./tagIds.js"; 2 | import tags from "./tags.js"; 3 | 4 | export default { 5 | tagIds, 6 | tags 7 | }; 8 | -------------------------------------------------------------------------------- /apps/reaction/tests/integration/api/queries/paymentMethods/PaymentMethodsQuery.graphql: -------------------------------------------------------------------------------- 1 | query ($shopId: ID!){ 2 | paymentMethods(shopId: $shopId){ 3 | isEnabled 4 | name 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /apps/reaction/tests/integration/api/queries/taxServices/TaxServicesQuery.graphql: -------------------------------------------------------------------------------- 1 | 2 | query ($shopId: ID!) { 3 | taxServices(shopId: $shopId){ 4 | name 5 | pluginName 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /packages/api-plugin-authorization-simple/index.js: -------------------------------------------------------------------------------- 1 | import register from "./src/index.js"; 2 | 3 | export { default as migrations } from "./migrations/index.js"; 4 | 5 | export default register; 6 | -------------------------------------------------------------------------------- /packages/api-plugin-catalogs/src/resolvers/Mutation/index.js: -------------------------------------------------------------------------------- 1 | import publishProductsToCatalog from "./publishProductsToCatalog.js"; 2 | 3 | export default { 4 | publishProductsToCatalog 5 | }; 6 | -------------------------------------------------------------------------------- /packages/api-plugin-email-smtp/src/resolvers/Mutation/index.js: -------------------------------------------------------------------------------- 1 | import verifySMTPEmailSettings from "./verifySMTPEmailSettings.js"; 2 | 3 | export default { 4 | verifySMTPEmailSettings 5 | }; 6 | -------------------------------------------------------------------------------- /packages/api-plugin-email-templates/src/templates/coreDefault.js: -------------------------------------------------------------------------------- 1 | export default ` 2 | 3 | This is the placeholder template at private/email/templates/coreDefault.html 4 | 5 | `; 6 | -------------------------------------------------------------------------------- /packages/api-plugin-promotions-coupons/index.js: -------------------------------------------------------------------------------- 1 | import register from "./src/index.js"; 2 | 3 | export { default as migrations } from "./migrations/index.js"; 4 | 5 | export default register; 6 | -------------------------------------------------------------------------------- /packages/api-plugin-promotions-coupons/src/resolvers/Order/index.js: -------------------------------------------------------------------------------- 1 | export default { 2 | couponLog: (order, _, context) => context.queries.couponLogByOrderId(context, order.orderId) 3 | }; 4 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/config.yml: -------------------------------------------------------------------------------- 1 | blank_issues_enabled: false 2 | contact_links: 3 | - name: Discord 4 | url: https://discord.gg/Bwm63tBcQY 5 | about: Please ask and answer questions here. 6 | -------------------------------------------------------------------------------- /apps/reaction/tests/integration/api/queries/roles/RolesQuery.graphql: -------------------------------------------------------------------------------- 1 | 2 | 3 | query ($shopId: ID!) { 4 | roles(shopId: $shopId){ 5 | nodes { 6 | name 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /packages/api-plugin-accounts/src/queries/__snapshots__/groups.test.js.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`throws access-denied if not allowed 1`] = `"Access Denied"`; 4 | -------------------------------------------------------------------------------- /packages/api-plugin-orders/src/mutations/__snapshots__/placeOrder.test.js.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`throws if order isn't supplied 1`] = `"Order is required"`; 4 | -------------------------------------------------------------------------------- /packages/api-plugin-payments-stripe-sca/src/mutations/index.js: -------------------------------------------------------------------------------- 1 | import createStripePaymentIntent from "./createStripePaymentIntent.js"; 2 | 3 | export default { 4 | createStripePaymentIntent 5 | }; 6 | -------------------------------------------------------------------------------- /packages/api-plugin-pricing-simple/src/mutations/index.js: -------------------------------------------------------------------------------- 1 | import updateProductVariantPrices from "./updateProductVariantPrices.js"; 2 | 3 | export default { 4 | updateProductVariantPrices 5 | }; 6 | -------------------------------------------------------------------------------- /packages/api-plugin-promotions-discounts/src/queries/index.js: -------------------------------------------------------------------------------- 1 | import getDiscountsTotalForCart from "./getDiscountsTotalForCart.js"; 2 | 3 | export default { 4 | getDiscountsTotalForCart 5 | }; 6 | -------------------------------------------------------------------------------- /packages/api-plugin-settings/src/resolvers/index.js: -------------------------------------------------------------------------------- 1 | import Mutation from "./Mutation/index.js"; 2 | import Query from "./Query/index.js"; 3 | 4 | export default { 5 | Mutation, 6 | Query 7 | }; 8 | -------------------------------------------------------------------------------- /packages/api-plugin-taxes/src/queries/index.js: -------------------------------------------------------------------------------- 1 | import taxCodes from "./taxCodes.js"; 2 | import taxServices from "./taxServices.js"; 3 | 4 | export default { 5 | taxCodes, 6 | taxServices 7 | }; 8 | -------------------------------------------------------------------------------- /apps/reaction/tests/integration/api/queries/sitemap/SitemapQuery.graphql: -------------------------------------------------------------------------------- 1 | 2 | query ($handle: String!, $shopUrl: String!) { 3 | sitemap(handle: $handle, shopUrl: $shopUrl){ 4 | xml 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /packages/api-plugin-authorization-simple/src/queries/__snapshots__/roles.test.js.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`throws if permission check fails 1`] = `"Access Denied"`; 4 | -------------------------------------------------------------------------------- /packages/api-plugin-payments/src/queries/__snapshots__/availablePaymentMethods.test.js.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`throws if shop not found 1`] = `"Shop not found"`; 4 | -------------------------------------------------------------------------------- /packages/api-plugin-shops/src/mutations/index.js: -------------------------------------------------------------------------------- 1 | import createShop from "./createShop.js"; 2 | import updateShop from "./updateShop.js"; 3 | 4 | export default { 5 | createShop, 6 | updateShop 7 | }; 8 | -------------------------------------------------------------------------------- /apps/reaction/tests/integration/api/mutations1/checkout/AvailablePaymentMethodsQuery.graphql: -------------------------------------------------------------------------------- 1 | query($shopId: ID!) { 2 | availablePaymentMethods(shopId: $shopId){ 3 | isEnabled 4 | name 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /packages/api-plugin-address-validation/src/resolvers/Address.js: -------------------------------------------------------------------------------- 1 | import { encodeAddressOpaqueId } from "../xforms/id.js"; 2 | 3 | export default { 4 | _id: (node) => encodeAddressOpaqueId(node._id) 5 | }; 6 | -------------------------------------------------------------------------------- /packages/api-plugin-discounts-codes/src/queries/__snapshots__/discountCodes.test.js.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`throws if permission check fails 1`] = `"Access Denied"`; 4 | -------------------------------------------------------------------------------- /packages/api-plugin-inventory-simple/src/resolvers/index.js: -------------------------------------------------------------------------------- 1 | import Mutation from "./Mutation/index.js"; 2 | import Query from "./Query/index.js"; 3 | 4 | export default { 5 | Mutation, 6 | Query 7 | }; 8 | -------------------------------------------------------------------------------- /packages/api-plugin-payments-stripe-sca/src/resolvers/Mutation/index.js: -------------------------------------------------------------------------------- 1 | import createStripePaymentIntent from "./createStripePaymentIntent.js"; 2 | 3 | export default { 4 | createStripePaymentIntent 5 | }; 6 | -------------------------------------------------------------------------------- /packages/api-plugin-payments/src/resolvers/Payment/index.js: -------------------------------------------------------------------------------- 1 | import { encodePaymentOpaqueId } from "../../xforms/id.js"; 2 | 3 | export default { 4 | _id: (node) => encodePaymentOpaqueId(node._id) 5 | }; 6 | -------------------------------------------------------------------------------- /packages/api-plugin-pricing-simple/src/resolvers/Mutation/index.js: -------------------------------------------------------------------------------- 1 | import updateProductVariantPrices from "./updateProductVariantPrices.js"; 2 | 3 | export default { 4 | updateProductVariantPrices 5 | }; 6 | -------------------------------------------------------------------------------- /packages/api-plugin-sample-data/src/images/mZB2tnYRnJrxqZWee.hiking_boots.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutonurmux/malichimp/HEAD/packages/api-plugin-sample-data/src/images/mZB2tnYRnJrxqZWee.hiking_boots.jpg -------------------------------------------------------------------------------- /packages/api-plugin-shipments/src/queries/index.js: -------------------------------------------------------------------------------- 1 | import getFulfillmentMethodsWithQuotes from "./getFulfillmentMethodsWithQuotes.js"; 2 | 3 | export default { 4 | getFulfillmentMethodsWithQuotes 5 | }; 6 | -------------------------------------------------------------------------------- /packages/api-plugin-tags/src/mutations/__snapshots__/addTag.test.js.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`calls mutations.addTag and throws for non admins 1`] = `"Access Denied"`; 4 | -------------------------------------------------------------------------------- /packages/api-plugin-taxes/src/resolvers/Query/index.js: -------------------------------------------------------------------------------- 1 | import taxCodes from "./taxCodes.js"; 2 | import taxServices from "./taxServices.js"; 3 | 4 | export default { 5 | taxCodes, 6 | taxServices 7 | }; 8 | -------------------------------------------------------------------------------- /apps/reaction/tests/integration/api/queries/addressValidationServices/AddressValidationServicesQuery.graphql: -------------------------------------------------------------------------------- 1 | 2 | query { 3 | addressValidationServices{ 4 | name 5 | supportedCountryCodes 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /packages/api-plugin-email-smtp/src/mutations/__snapshots__/verifySMTPEmailSettings.test.js.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`throws if permission check fails 1`] = `"Access Denied"`; 4 | -------------------------------------------------------------------------------- /packages/api-plugin-shops/src/resolvers/Mutation/index.js: -------------------------------------------------------------------------------- 1 | import createShop from "./createShop.js"; 2 | import updateShop from "./updateShop.js"; 3 | 4 | export default { 5 | createShop, 6 | updateShop 7 | }; 8 | -------------------------------------------------------------------------------- /packages/api-plugin-sitemap-generator/src/resolvers/Sitemap/index.js: -------------------------------------------------------------------------------- 1 | import { encodeShopOpaqueId } from "../../xforms/id.js"; 2 | 3 | export default { 4 | shopId: (node) => encodeShopOpaqueId(node.shopId) 5 | }; 6 | -------------------------------------------------------------------------------- /packages/api-plugin-tags/src/mutations/__snapshots__/removeTag.test.js.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`calls mutations.removeTag and throws for non admins 1`] = `"Access Denied"`; 4 | -------------------------------------------------------------------------------- /packages/api-plugin-tags/src/mutations/__snapshots__/updateTag.test.js.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`calls mutations.updateTag and throws for non admins 1`] = `"Access Denied"`; 4 | -------------------------------------------------------------------------------- /apps/reaction/tests/integration/api/mutations1/checkout/CreateShopMutation.graphql: -------------------------------------------------------------------------------- 1 | mutation CreateShop($input: CreateShopInput!) { 2 | createShop(input: $input) { 3 | shop { 4 | _id 5 | } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /apps/reaction/tests/integration/api/queries/availablePaymentMethods/AvailablePaymentMethodsQuery.graphql: -------------------------------------------------------------------------------- 1 | query($shopId: ID!) { 2 | availablePaymentMethods(shopId: $shopId){ 3 | isEnabled 4 | name 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /packages/api-plugin-carts/src/mutations/__snapshots__/reconcileCartsMerge.test.js.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`throws if deleteOne fails 1`] = `"Unable to delete anonymous cart"`; 4 | -------------------------------------------------------------------------------- /packages/api-plugin-catalogs/src/schemas/index.js: -------------------------------------------------------------------------------- 1 | import importAsString from "@reactioncommerce/api-utils/importAsString.js"; 2 | 3 | const schema = importAsString("./schema.graphql"); 4 | 5 | export default [schema]; 6 | -------------------------------------------------------------------------------- /packages/api-plugin-email/src/mutations/index.js: -------------------------------------------------------------------------------- 1 | import retryFailedEmail from "./retryFailedEmail.js"; 2 | import sendEmail from "./sendEmail.js"; 3 | 4 | export default { 5 | retryFailedEmail, 6 | sendEmail 7 | }; 8 | -------------------------------------------------------------------------------- /packages/api-plugin-files/src/schemas/index.js: -------------------------------------------------------------------------------- 1 | import importAsString from "@reactioncommerce/api-utils/importAsString.js"; 2 | 3 | const schema = importAsString("./schema.graphql"); 4 | 5 | export default [schema]; 6 | -------------------------------------------------------------------------------- /packages/api-plugin-orders/src/schemas/index.js: -------------------------------------------------------------------------------- 1 | import importAsString from "@reactioncommerce/api-utils/importAsString.js"; 2 | 3 | const schema = importAsString("./schema.graphql"); 4 | 5 | export default [schema]; 6 | -------------------------------------------------------------------------------- /packages/api-plugin-payments/src/schemas/index.js: -------------------------------------------------------------------------------- 1 | import importAsString from "@reactioncommerce/api-utils/importAsString.js"; 2 | 3 | const schema = importAsString("./schema.graphql"); 4 | 5 | export default [schema]; 6 | -------------------------------------------------------------------------------- /packages/api-plugin-pricing-simple/src/resolvers/CatalogProduct.js: -------------------------------------------------------------------------------- 1 | import xformPricingArray from "../util/xformPricingArray.js"; 2 | 3 | export default { 4 | pricing: (node) => xformPricingArray(node.pricing) 5 | }; 6 | -------------------------------------------------------------------------------- /packages/api-plugin-promotions-coupons/src/resolvers/Promotion/index.js: -------------------------------------------------------------------------------- 1 | import getPreviewPromotionCoupon from "./getPreviewPromotionCoupon.js"; 2 | 3 | export default { 4 | coupon: getPreviewPromotionCoupon 5 | }; 6 | -------------------------------------------------------------------------------- /packages/api-plugin-surcharges/src/queries/index.js: -------------------------------------------------------------------------------- 1 | import surchargeById from "./surchargeById.js"; 2 | import surcharges from "./surcharges.js"; 3 | 4 | export default { 5 | surchargeById, 6 | surcharges 7 | }; 8 | -------------------------------------------------------------------------------- /packages/api-plugin-system-information/src/queries/__snapshots__/systemInformation.test.js.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`throws access-denied if not allowed 1`] = `"Access Denied"`; 4 | -------------------------------------------------------------------------------- /packages/api-plugin-taxes/src/schemas/index.js: -------------------------------------------------------------------------------- 1 | import importAsString from "@reactioncommerce/api-utils/importAsString.js"; 2 | 3 | const schema = importAsString("./schema.graphql"); 4 | 5 | export default [schema]; 6 | -------------------------------------------------------------------------------- /packages/api-plugin-email-smtp/src/schemas/index.js: -------------------------------------------------------------------------------- 1 | import importAsString from "@reactioncommerce/api-utils/importAsString.js"; 2 | 3 | const schema = importAsString("./schema.graphql"); 4 | 5 | export default [schema]; 6 | -------------------------------------------------------------------------------- /packages/api-plugin-fulfillment/src/schemas/index.js: -------------------------------------------------------------------------------- 1 | import importAsString from "@reactioncommerce/api-utils/importAsString.js"; 2 | 3 | const schema = importAsString("./schema.graphql"); 4 | 5 | export default [schema]; 6 | -------------------------------------------------------------------------------- /packages/api-plugin-navigation/src/i18n/index.js: -------------------------------------------------------------------------------- 1 | import en from "./en.json" assert { type: "json" }; 2 | import es from "./es.json" assert { type: "json" }; 3 | 4 | export default { 5 | translations: [...en, ...es] 6 | }; 7 | -------------------------------------------------------------------------------- /packages/api-plugin-promotions/src/schemas/index.js: -------------------------------------------------------------------------------- 1 | import importAsString from "@reactioncommerce/api-utils/importAsString.js"; 2 | 3 | const schema = importAsString("./schema.graphql"); 4 | 5 | export default [schema]; 6 | -------------------------------------------------------------------------------- /packages/api-plugin-sample-data/src/images/KfYLHwoMrfJWyJMqG.rugged_running_shoes.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutonurmux/malichimp/HEAD/packages/api-plugin-sample-data/src/images/KfYLHwoMrfJWyJMqG.rugged_running_shoes.jpg -------------------------------------------------------------------------------- /packages/api-plugin-shipments/src/schemas/index.js: -------------------------------------------------------------------------------- 1 | import importAsString from "@reactioncommerce/api-utils/importAsString.js"; 2 | 3 | const schema = importAsString("./schema.graphql"); 4 | 5 | export default [schema]; 6 | -------------------------------------------------------------------------------- /packages/api-plugin-simple-schema/src/schemas/index.js: -------------------------------------------------------------------------------- 1 | import importAsString from "@reactioncommerce/api-utils/importAsString.js"; 2 | 3 | const schema = importAsString("./schema.graphql"); 4 | 5 | export default [schema]; 6 | -------------------------------------------------------------------------------- /packages/api-plugin-surcharges/src/resolvers/Query/index.js: -------------------------------------------------------------------------------- 1 | import surchargeById from "./surchargeById.js"; 2 | import surcharges from "./surcharges.js"; 3 | 4 | export default { 5 | surchargeById, 6 | surcharges 7 | }; 8 | -------------------------------------------------------------------------------- /packages/api-plugin-surcharges/src/schemas/index.js: -------------------------------------------------------------------------------- 1 | import importAsString from "@reactioncommerce/api-utils/importAsString.js"; 2 | 3 | const schema = importAsString("./schema.graphql"); 4 | 5 | export default [schema]; 6 | -------------------------------------------------------------------------------- /apps/reaction/tests/integration/api/mutations1/generateSitemaps/generateSitemaps.graphql: -------------------------------------------------------------------------------- 1 | 2 | mutation generateSitemaps($input: GenerateSitemapsInput) { 3 | generateSitemaps(input: $input){ 4 | wasJobScheduled 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /packages/api-core/src/graphql/resolvers/Currency.js: -------------------------------------------------------------------------------- 1 | import encodeOpaqueId from "@reactioncommerce/api-utils/encodeOpaqueId.js"; 2 | 3 | export default { 4 | _id: (node) => encodeOpaqueId("reaction/currency", node._id) 5 | }; 6 | -------------------------------------------------------------------------------- /packages/api-plugin-carts/src/mutations/__snapshots__/reconcileCartsKeepAccountCart.test.js.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`throws if deleteOne fails 1`] = `"Unable to delete anonymous cart"`; 4 | -------------------------------------------------------------------------------- /packages/api-plugin-carts/src/mutations/__snapshots__/reconcileCartsKeepAnonymousCart.test.js.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`throws if deleteOne fails 1`] = `"Unable to delete anonymous cart"`; 4 | -------------------------------------------------------------------------------- /packages/api-plugin-discounts-codes/src/schemas/index.js: -------------------------------------------------------------------------------- 1 | import importAsString from "@reactioncommerce/api-utils/importAsString.js"; 2 | 3 | const schema = importAsString("./schema.graphql"); 4 | 5 | export default [schema]; 6 | -------------------------------------------------------------------------------- /packages/api-plugin-email-templates/src/mutations/index.js: -------------------------------------------------------------------------------- 1 | import renderEmail from "./renderEmail.js"; 2 | import updateTemplate from "./updateTemplate.js"; 3 | 4 | export default { 5 | renderEmail, 6 | updateTemplate 7 | }; 8 | -------------------------------------------------------------------------------- /packages/api-plugin-inventory-simple/src/schemas/index.js: -------------------------------------------------------------------------------- 1 | import importAsString from "@reactioncommerce/api-utils/importAsString.js"; 2 | 3 | const schema = importAsString("./schema.graphql"); 4 | 5 | export default [schema]; 6 | -------------------------------------------------------------------------------- /packages/api-plugin-payments-example/src/schemas/index.js: -------------------------------------------------------------------------------- 1 | import importAsString from "@reactioncommerce/api-utils/importAsString.js"; 2 | 3 | const schema = importAsString("./schema.graphql"); 4 | 5 | export default [schema]; 6 | -------------------------------------------------------------------------------- /packages/api-plugin-pricing-simple/src/resolvers/CatalogProductVariant.js: -------------------------------------------------------------------------------- 1 | import xformPricingArray from "../util/xformPricingArray.js"; 2 | 3 | export default { 4 | pricing: (node) => xformPricingArray(node.pricing) 5 | }; 6 | -------------------------------------------------------------------------------- /packages/api-plugin-pricing-simple/src/schemas/index.js: -------------------------------------------------------------------------------- 1 | import importAsString from "@reactioncommerce/api-utils/importAsString.js"; 2 | 3 | const schema = importAsString("./schema.graphql"); 4 | 5 | export default [schema]; 6 | -------------------------------------------------------------------------------- /packages/api-plugin-promotions-coupons/src/schemas/index.js: -------------------------------------------------------------------------------- 1 | import importAsString from "@reactioncommerce/api-utils/importAsString.js"; 2 | 3 | const schema = importAsString("./schema.graphql"); 4 | 5 | export default [schema]; 6 | -------------------------------------------------------------------------------- /packages/api-plugin-sample-data/src/images/B9ncCC5kaGkNu9qC2.warm-wool-knitted-hat.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutonurmux/malichimp/HEAD/packages/api-plugin-sample-data/src/images/B9ncCC5kaGkNu9qC2.warm-wool-knitted-hat.jpg -------------------------------------------------------------------------------- /packages/api-plugin-settings/src/schemas/index.js: -------------------------------------------------------------------------------- 1 | import importAsString from "@reactioncommerce/api-utils/importAsString.js"; 2 | 3 | const settings = importAsString("./settings.graphql"); 4 | 5 | export default [settings]; 6 | -------------------------------------------------------------------------------- /packages/api-plugin-system-information/src/schemas/index.js: -------------------------------------------------------------------------------- 1 | import importAsString from "@reactioncommerce/api-utils/importAsString.js"; 2 | 3 | const schema = importAsString("./schema.graphql"); 4 | 5 | export default [schema]; 6 | -------------------------------------------------------------------------------- /packages/api-plugin-taxes-flat-rate/src/schemas/index.js: -------------------------------------------------------------------------------- 1 | import importAsString from "@reactioncommerce/api-utils/importAsString.js"; 2 | 3 | const schema = importAsString("./schema.graphql"); 4 | 5 | export default [schema]; 6 | -------------------------------------------------------------------------------- /packages/api-plugin-accounts/src/mutations/__snapshots__/sendResetAccountPasswordEmail.test.js.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`throws if account matching email not found 1`] = `"Account not found"`; 4 | -------------------------------------------------------------------------------- /packages/api-plugin-carts/src/mutations/__snapshots__/convertAnonymousCartToNewAccountCart.test.js.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`throws if deleteOne fails 1`] = `"Unable to delete anonymous cart"`; 4 | -------------------------------------------------------------------------------- /packages/api-plugin-email/src/config.js: -------------------------------------------------------------------------------- 1 | import envalid from "envalid"; 2 | 3 | export default envalid.cleanEnv(process.env, { 4 | REACTION_WORKERS_ENABLED: envalid.bool({ default: true }) 5 | }, { 6 | dotEnvPath: null 7 | }); 8 | -------------------------------------------------------------------------------- /packages/api-plugin-fulfillment-type-pickup/src/schemas/index.js: -------------------------------------------------------------------------------- 1 | import importAsString from "@reactioncommerce/api-utils/importAsString.js"; 2 | 3 | const schema = importAsString("./schema.graphql"); 4 | 5 | export default [schema]; 6 | -------------------------------------------------------------------------------- /packages/api-plugin-orders/src/util/__snapshots__/verifyPaymentsMatchOrderTotal.test.js.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`throws if does not match 1`] = `"Total of all payments must equal order total"`; 4 | -------------------------------------------------------------------------------- /packages/api-plugin-payments-stripe-sca/src/schemas/index.js: -------------------------------------------------------------------------------- 1 | import importAsString from "@reactioncommerce/api-utils/importAsString.js"; 2 | 3 | const schema = importAsString("./schema.graphql"); 4 | 5 | export default [schema]; 6 | -------------------------------------------------------------------------------- /packages/api-plugin-promotions-discounts/src/schemas/index.js: -------------------------------------------------------------------------------- 1 | import importAsString from "@reactioncommerce/api-utils/importAsString.js"; 2 | 3 | const schema = importAsString("./schema.graphql"); 4 | 5 | export default [schema]; 6 | -------------------------------------------------------------------------------- /packages/api-plugin-settings/src/resolvers/Query/index.js: -------------------------------------------------------------------------------- 1 | import globalSettings from "./globalSettings.js"; 2 | import shopSettings from "./shopSettings.js"; 3 | 4 | export default { 5 | globalSettings, 6 | shopSettings 7 | }; 8 | -------------------------------------------------------------------------------- /packages/api-plugin-taxes/src/xforms/id.js: -------------------------------------------------------------------------------- 1 | import decodeOpaqueIdForNamespace from "@reactioncommerce/api-utils/decodeOpaqueIdForNamespace.js"; 2 | 3 | export const decodeShopOpaqueId = decodeOpaqueIdForNamespace("reaction/shop"); 4 | -------------------------------------------------------------------------------- /apps/meteor-blaze-app/imports/client/index.js: -------------------------------------------------------------------------------- 1 | /* eslint-disable node/no-missing-import */ 2 | import "bootstrap"; 3 | import "bootstrap/dist/css/bootstrap.css"; 4 | import "bootstrap/dist/css/bootstrap-theme.css"; 5 | import "./routes"; 6 | -------------------------------------------------------------------------------- /apps/reaction/tests/integration/api/mutations1/checkout/PlaceOrderMutation.graphql: -------------------------------------------------------------------------------- 1 | mutation PlaceOrder($input: PlaceOrderInput!) { 2 | placeOrder(input: $input) { 3 | orders { 4 | _id 5 | email 6 | } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /packages/api-plugin-carts/src/fulfillmentCartVersion.js: -------------------------------------------------------------------------------- 1 | // Update this for each major change of cart object related to Fulfillment Type 2 | // version 2 => Fulfillment changes - Initial version 3 | export const fulfillmentCartVersion = 2; 4 | -------------------------------------------------------------------------------- /packages/api-plugin-fulfillment-type-shipping/src/schemas/index.js: -------------------------------------------------------------------------------- 1 | import importAsString from "@reactioncommerce/api-utils/importAsString.js"; 2 | 3 | const schema = importAsString("./schema.graphql"); 4 | 5 | export default [schema]; 6 | -------------------------------------------------------------------------------- /packages/api-plugin-fulfillment/src/resolvers/FulfillmentMethod/index.js: -------------------------------------------------------------------------------- 1 | import { encodeFulfillmentMethodOpaqueId } from "../../xforms/id.js"; 2 | 3 | export default { 4 | _id: (node) => encodeFulfillmentMethodOpaqueId(node._id) 5 | }; 6 | -------------------------------------------------------------------------------- /packages/api-plugin-sample-data/src/images/Zv5PMxPrQoXK9Nbke.pexels-taryn-elliott-5737915.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutonurmux/malichimp/HEAD/packages/api-plugin-sample-data/src/images/Zv5PMxPrQoXK9Nbke.pexels-taryn-elliott-5737915.jpg -------------------------------------------------------------------------------- /packages/api-plugin-shipments/src/resolvers/FulfillmentMethod/index.js: -------------------------------------------------------------------------------- 1 | import { encodeFulfillmentMethodOpaqueId } from "../../xforms/id.js"; 2 | 3 | export default { 4 | _id: (node) => encodeFulfillmentMethodOpaqueId(node._id) 5 | }; 6 | -------------------------------------------------------------------------------- /apps/reaction/.env.example: -------------------------------------------------------------------------------- 1 | MONGO_URL=mongodb://mongo.reaction.localhost:27017/reaction 2 | ROOT_URL=http://localhost:3000 3 | STRIPE_API_KEY=YOUR_PRIVATE_STRIPE_API_KEY 4 | REDIS_SERVER=redis://127.0.0.1:6379 5 | MAIL_URL=smtp://localhost:1025 6 | -------------------------------------------------------------------------------- /packages/api-plugin-carts/src/queries/__snapshots__/accountCartByAccountId.test.js.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`for other account, throws access denied if non-admin 1`] = `[ReactionError: Access Denied]`; 4 | -------------------------------------------------------------------------------- /packages/api-plugin-fulfillment-method-pickup-store/src/schemas/index.js: -------------------------------------------------------------------------------- 1 | import importAsString from "@reactioncommerce/api-utils/importAsString.js"; 2 | 3 | const schema = importAsString("./schema.graphql"); 4 | 5 | export default [schema]; 6 | -------------------------------------------------------------------------------- /packages/api-plugin-sample-data/src/images/5z9yubahxQZqLCPQH.istockphoto-480217047-170667a.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutonurmux/malichimp/HEAD/packages/api-plugin-sample-data/src/images/5z9yubahxQZqLCPQH.istockphoto-480217047-170667a.jpg -------------------------------------------------------------------------------- /packages/api-plugin-sample-data/src/images/JPEwhpFG5McpKKLjx.pexels-hanna-auramenka-8497532.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutonurmux/malichimp/HEAD/packages/api-plugin-sample-data/src/images/JPEwhpFG5McpKKLjx.pexels-hanna-auramenka-8497532.jpg -------------------------------------------------------------------------------- /packages/api-plugin-fulfillment-type-pickup/src/schemas/schema.graphql: -------------------------------------------------------------------------------- 1 | "Allowed fulfillment types, extended by fulfillment-type plugins" 2 | enum FulfillmentType { 3 | "An order will be fulfilled by the customer picking it up" 4 | pickup 5 | } 6 | -------------------------------------------------------------------------------- /packages/api-utils/lib/graphql/__snapshots__/applyPaginationToMongoCursor.test.js.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`with both first and last, throws error 1`] = `"Request either \`first\` or \`last\` but not both"`; 4 | -------------------------------------------------------------------------------- /apps/reaction/tests/integration/README.md: -------------------------------------------------------------------------------- 1 | # Integration Tests 2 | 3 | This folder contains test files that run GraphQL integration tests. Refer to [the documentation](https://docs.reactioncommerce.com/reaction-docs/trunk/running-jest-integration-tests). 4 | -------------------------------------------------------------------------------- /packages/api-plugin-fulfillment-method-shipping-dynamic-rate/src/schemas/index.js: -------------------------------------------------------------------------------- 1 | import importAsString from "@reactioncommerce/api-utils/importAsString.js"; 2 | 3 | const schema = importAsString("./schema.graphql"); 4 | 5 | export default [schema]; 6 | -------------------------------------------------------------------------------- /packages/api-plugin-sample-data/src/json-data/migrations.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "namespace" : "accounts", 4 | "version" : "3-0" 5 | }, 6 | { 7 | "namespace" : "simple-authorization", 8 | "version" : "5-0" 9 | } 10 | ] 11 | -------------------------------------------------------------------------------- /packages/api-utils/lib/graphql/__snapshots__/applyPaginationToMongoAggregate.test.js.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`with both first and last, throws error 1`] = `"Request either \`first\` or \`last\` but not both"`; 4 | -------------------------------------------------------------------------------- /apps/reaction/tests/integration/api/mutations2/setTagHeroMedia/setTagHeroMedia.graphql: -------------------------------------------------------------------------------- 1 | mutation setTagHeroMedia($input: SetTagHeroMediaInput!) { 2 | setTagHeroMedia(input: $input){ 3 | tag { 4 | _id 5 | heroMediaUrl 6 | } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /apps/reaction/tests/util/jestProcessEnv.json: -------------------------------------------------------------------------------- 1 | { 2 | "MAIL_URL": "smtp://user:pass@email-smtp.us-west-2.amazonaws.com:465", 3 | "REACTION_LOG_LEVEL": "ERROR", 4 | "REACTION_WORKERS_ENABLED": false, 5 | "REDIS_SERVER": "redis://127.0.0.1:6379" 6 | } 7 | 8 | -------------------------------------------------------------------------------- /packages/api-core/src/index.js: -------------------------------------------------------------------------------- 1 | export { default as ReactionAPICore } from "./ReactionAPICore.js"; 2 | export { default as ReactionTestAPICore } from "./ReactionTestAPICore.js"; 3 | export { default as importPluginsJSONFile } from "./importPluginsJSONFile.js"; 4 | -------------------------------------------------------------------------------- /packages/api-plugin-carts/src/mutations/__snapshots__/removeCartItems.test.js.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`throws when no account and no cartToken passed 1`] = `"A cartToken is required when updating an anonymous cart"`; 4 | -------------------------------------------------------------------------------- /packages/api-plugin-files/src/config.js: -------------------------------------------------------------------------------- 1 | import envalid from "envalid"; 2 | 3 | const { str } = envalid; 4 | 5 | export default envalid.cleanEnv(process.env, { 6 | NODE_ENV: str({ default: "production" }) 7 | }, { 8 | dotEnvPath: null 9 | }); 10 | -------------------------------------------------------------------------------- /packages/api-plugin-sample-data/src/images/4WNQrD9qGE8iDB7H4.knit-beanie-white-front-61d71dd838f34.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutonurmux/malichimp/HEAD/packages/api-plugin-sample-data/src/images/4WNQrD9qGE8iDB7H4.knit-beanie-white-front-61d71dd838f34.jpg -------------------------------------------------------------------------------- /packages/api-plugin-shops/src/resolvers/index.js: -------------------------------------------------------------------------------- 1 | import Mutation from "./Mutation/index.js"; 2 | import Query from "./Query/index.js"; 3 | import Shop from "./Shop/index.js"; 4 | 5 | export default { 6 | Mutation, 7 | Query, 8 | Shop 9 | }; 10 | -------------------------------------------------------------------------------- /packages/api-plugin-tags/src/resolvers/Query/index.js: -------------------------------------------------------------------------------- 1 | import productsByTagId from "./productsByTagId.js"; 2 | import tag from "./tag.js"; 3 | import tags from "./tags.js"; 4 | 5 | export default { 6 | productsByTagId, 7 | tag, 8 | tags 9 | }; 10 | -------------------------------------------------------------------------------- /apps/reaction/tests/integration/api/mutations2/updateProductsVisibility/UpdateProductsVisibility.graphql: -------------------------------------------------------------------------------- 1 | mutation updateProductsVisibility($input: UpdateProductsVisibilityInput!) { 2 | updateProductsVisibility(input: $input) { 3 | updatedCount 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /packages/api-core/src/graphql/subscription.graphql: -------------------------------------------------------------------------------- 1 | "Subscriptions allow you to request to get updated data whenever it changes" 2 | type Subscription { 3 | "A test subscription that returns an incremented number every 1 second for 10 seconds" 4 | tick: Int! 5 | } -------------------------------------------------------------------------------- /packages/api-plugin-accounts/src/config.js: -------------------------------------------------------------------------------- 1 | import envalid from "envalid"; 2 | 3 | const { str } = envalid; 4 | 5 | export default envalid.cleanEnv(process.env, { 6 | NODE_ENV: str({ default: "production" }) 7 | }, { 8 | dotEnvPath: null 9 | }); 10 | -------------------------------------------------------------------------------- /packages/api-plugin-payments/src/resolvers/Query/index.js: -------------------------------------------------------------------------------- 1 | import availablePaymentMethods from "./availablePaymentMethods.js"; 2 | import paymentMethods from "./paymentMethods.js"; 3 | 4 | export default { 5 | availablePaymentMethods, 6 | paymentMethods 7 | }; 8 | -------------------------------------------------------------------------------- /packages/file-collections-sa-base/jest.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | name: "file-collections-sa-base", 3 | displayName: "file-collections-sa-base", 4 | rootDir: "../..", 5 | testMatch: ["/packages/file-collections-sa-base/**/*.test.js"] 6 | }; 7 | -------------------------------------------------------------------------------- /packages/file-collections/src/browser/index.js: -------------------------------------------------------------------------------- 1 | export { default as FileCollection } from "../common/FileCollection"; 2 | export { default as FileRecord } from "../common/FileRecord"; 3 | export { default as MeteorFileCollection } from "./MeteorFileCollection"; 4 | -------------------------------------------------------------------------------- /apps/reaction/tests/integration/api/queries/systemInformation/SystemInformationQuery.graphql: -------------------------------------------------------------------------------- 1 | 2 | query ($shopId: ID!) { 3 | systemInformation(shopId: $shopId){ 4 | apiVersion 5 | plugins { 6 | name 7 | version 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /packages/api-plugin-sample-data/src/images/46AevrgX4CRubhX4h.basketball-socks-white-front-61d726e653222.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutonurmux/malichimp/HEAD/packages/api-plugin-sample-data/src/images/46AevrgX4CRubhX4h.basketball-socks-white-front-61d726e653222.jpg -------------------------------------------------------------------------------- /packages/api-plugin-sample-data/src/images/46AevrgX4CRubhX4h.basketball-socks-white-front-61d726e653311.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutonurmux/malichimp/HEAD/packages/api-plugin-sample-data/src/images/46AevrgX4CRubhX4h.basketball-socks-white-front-61d726e653311.jpg -------------------------------------------------------------------------------- /packages/api-plugin-sample-data/src/images/46AevrgX4CRubhX4h.basketball-socks-white-front-61d726e6533a7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutonurmux/malichimp/HEAD/packages/api-plugin-sample-data/src/images/46AevrgX4CRubhX4h.basketball-socks-white-front-61d726e6533a7.jpg -------------------------------------------------------------------------------- /packages/api-plugin-fulfillment-method-shipping-dynamic-rate/src/schemas/schema.graphql: -------------------------------------------------------------------------------- 1 | "Additional data from Shipping Dynamic Rate" 2 | type dynamicRateData { 3 | gqlType: String 4 | dynamicRateData: String 5 | } 6 | 7 | extend union AdditionalData = dynamicRateData 8 | -------------------------------------------------------------------------------- /packages/api-plugin-navigation/src/queries/index.js: -------------------------------------------------------------------------------- 1 | import navigationItemsByShopId from "./navigationItemsByShopId.js"; 2 | import navigationTreeById from "./navigationTreeById.js"; 3 | 4 | export default { 5 | navigationItemsByShopId, 6 | navigationTreeById 7 | }; 8 | -------------------------------------------------------------------------------- /packages/api-plugin-payments/src/queries/__snapshots__/paymentMethods.test.js.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`throws if permission check fails 1`] = `"Access Denied"`; 4 | 5 | exports[`throws if shop not found 1`] = `"Shop not found"`; 6 | -------------------------------------------------------------------------------- /packages/api-plugin-sample-data/src/images/rwBQGfBQrF5sdivDG.unisex-denim-jacket-white-front-61d5ca9aef759.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutonurmux/malichimp/HEAD/packages/api-plugin-sample-data/src/images/rwBQGfBQrF5sdivDG.unisex-denim-jacket-white-front-61d5ca9aef759.jpg -------------------------------------------------------------------------------- /packages/api-plugin-settings/src/resolvers/Mutation/index.js: -------------------------------------------------------------------------------- 1 | import updateGlobalSettings from "./updateGlobalSettings.js"; 2 | import updateShopSettings from "./updateShopSettings.js"; 3 | 4 | export default { 5 | updateGlobalSettings, 6 | updateShopSettings 7 | }; 8 | -------------------------------------------------------------------------------- /packages/file-collections-sa-gridfs/jest.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | name: "file-collections-sa-gridfs", 3 | displayName: "file-collections-sa-gridfs", 4 | rootDir: "../..", 5 | testMatch: ["/packages/file-collections-sa-gridfs/**/*.test.js"] 6 | }; 7 | -------------------------------------------------------------------------------- /apps/reaction/tests/integration/api/queries/surchargeById/SurchargeByIdQuery.graphql: -------------------------------------------------------------------------------- 1 | 2 | query ($shopId: ID!, $surchargeId: ID!){ 3 | surchargeById(shopId: $shopId, surchargeId: $surchargeId){ 4 | _id 5 | amount { 6 | amount 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /packages/api-plugin-carts/src/resolvers/Query/index.js: -------------------------------------------------------------------------------- 1 | import accountCartByAccountId from "./accountCartByAccountId.js"; 2 | import anonymousCartByCartId from "./anonymousCartByCartId.js"; 3 | 4 | export default { 5 | accountCartByAccountId, 6 | anonymousCartByCartId 7 | }; 8 | -------------------------------------------------------------------------------- /packages/api-plugin-catalogs/src/resolvers/ImageInfo.js: -------------------------------------------------------------------------------- 1 | import { encodeProductOpaqueId } from "../xforms/id.js"; 2 | 3 | export default { 4 | productId: (node) => encodeProductOpaqueId(node.productId), 5 | variantId: (node) => encodeProductOpaqueId(node.variantId) 6 | }; 7 | -------------------------------------------------------------------------------- /packages/api-plugin-navigation/src/resolvers/Query/index.js: -------------------------------------------------------------------------------- 1 | import navigationItemsByShopId from "./navigationItemsByShopId.js"; 2 | import navigationTreeById from "./navigationTreeById.js"; 3 | 4 | export default { 5 | navigationItemsByShopId, 6 | navigationTreeById 7 | }; 8 | -------------------------------------------------------------------------------- /packages/api-plugin-products/src/queries/index.js: -------------------------------------------------------------------------------- 1 | import product from "./product.js"; 2 | import products from "./products.js"; 3 | import filterProducts from "./filterProducts.js"; 4 | 5 | export default { 6 | filterProducts, 7 | product, 8 | products 9 | }; 10 | -------------------------------------------------------------------------------- /packages/api-plugin-sample-data/src/images/6htQnYHKqqPNDf6yR.embroidered-crew-socks-black-left-61d71ce05f999.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutonurmux/malichimp/HEAD/packages/api-plugin-sample-data/src/images/6htQnYHKqqPNDf6yR.embroidered-crew-socks-black-left-61d71ce05f999.jpg -------------------------------------------------------------------------------- /packages/api-plugin-sample-data/src/images/6htQnYHKqqPNDf6yR.embroidered-crew-socks-black-right-61d71ce05fa72.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutonurmux/malichimp/HEAD/packages/api-plugin-sample-data/src/images/6htQnYHKqqPNDf6yR.embroidered-crew-socks-black-right-61d71ce05fa72.jpg -------------------------------------------------------------------------------- /packages/api-plugin-sample-data/src/images/7KxD39Am8L7WDy6sB.womens-cropped-hoodie-black-front-61d723d1b3f7b.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutonurmux/malichimp/HEAD/packages/api-plugin-sample-data/src/images/7KxD39Am8L7WDy6sB.womens-cropped-hoodie-black-front-61d723d1b3f7b.jpg -------------------------------------------------------------------------------- /packages/api-plugin-sample-data/src/images/7KxD39Am8L7WDy6sB.womens-cropped-hoodie-black-front-61d723d1b406f.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutonurmux/malichimp/HEAD/packages/api-plugin-sample-data/src/images/7KxD39Am8L7WDy6sB.womens-cropped-hoodie-black-front-61d723d1b406f.jpg -------------------------------------------------------------------------------- /packages/api-plugin-sample-data/src/images/8fcfWFFLZq3sRK3TD.champion-bomber-jacket-black-front-61d717c63b613.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutonurmux/malichimp/HEAD/packages/api-plugin-sample-data/src/images/8fcfWFFLZq3sRK3TD.champion-bomber-jacket-black-front-61d717c63b613.jpg -------------------------------------------------------------------------------- /packages/api-plugin-sample-data/src/images/8fcfWFFLZq3sRK3TD.champion-bomber-jacket-black-front-61d717c63b8b9.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutonurmux/malichimp/HEAD/packages/api-plugin-sample-data/src/images/8fcfWFFLZq3sRK3TD.champion-bomber-jacket-black-front-61d717c63b8b9.jpg -------------------------------------------------------------------------------- /packages/api-plugin-sample-data/src/images/GXxXSKGYmvW8ATbpj.unisex-zip-up-hoodie-black-front-61d71a1132a2b.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutonurmux/malichimp/HEAD/packages/api-plugin-sample-data/src/images/GXxXSKGYmvW8ATbpj.unisex-zip-up-hoodie-black-front-61d71a1132a2b.jpg -------------------------------------------------------------------------------- /packages/api-plugin-sample-data/src/images/GXxXSKGYmvW8ATbpj.unisex-zip-up-hoodie-black-front-61d71a1132c49.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutonurmux/malichimp/HEAD/packages/api-plugin-sample-data/src/images/GXxXSKGYmvW8ATbpj.unisex-zip-up-hoodie-black-front-61d71a1132c49.jpg -------------------------------------------------------------------------------- /packages/api-plugin-sample-data/src/images/GXxXSKGYmvW8ATbpj.unisex-zip-up-hoodie-black-front-61d71a1132dbd.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutonurmux/malichimp/HEAD/packages/api-plugin-sample-data/src/images/GXxXSKGYmvW8ATbpj.unisex-zip-up-hoodie-black-front-61d71a1132dbd.jpg -------------------------------------------------------------------------------- /packages/api-plugin-sitemap-generator/src/resolvers/index.js: -------------------------------------------------------------------------------- 1 | import Mutation from "./Mutation/index.js"; 2 | import Query from "./Query/index.js"; 3 | import Sitemap from "./Sitemap/index.js"; 4 | 5 | export default { 6 | Mutation, 7 | Query, 8 | Sitemap 9 | }; 10 | -------------------------------------------------------------------------------- /packages/api-utils/babel.config.cjs: -------------------------------------------------------------------------------- 1 | /** 2 | * Babel is used only for running Jest tests in API projects. 3 | * If Jest adds support for ESM and import.meta, then Babel 4 | * may become unnecessary. 5 | */ 6 | 7 | module.exports = require("./lib/configs/babel.config.cjs"); 8 | -------------------------------------------------------------------------------- /apps/reaction/tests/integration/api/mutations1/checkout/CreatePromotionMutation.graphql: -------------------------------------------------------------------------------- 1 | mutation CreatePromotion($input: PromotionCreateInput!) { 2 | createPromotion(input: $input) { 3 | success 4 | promotion { 5 | _id 6 | } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /apps/reaction/tests/integration/api/mutations1/inviteShopMember/inviteShopMember.graphql: -------------------------------------------------------------------------------- 1 | mutation ($input: InviteShopMemberInput!) { 2 | inviteShopMember(input: $input){ 3 | account { 4 | emailRecords { 5 | address 6 | } 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /apps/reaction/tests/integration/api/mutations2/verifySMTPEmailSettings/verifySMTPEmailSettings.graphql: -------------------------------------------------------------------------------- 1 | mutation verifySMTPEmailSettings($input: VerifySMTPEmailSettingsInput!) { 2 | verifySMTPEmailSettings(input: $input) { 3 | clientMutationId 4 | isVerified 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /apps/reaction/tests/integration/api/queries/surcharges/SurchargesQuery.graphql: -------------------------------------------------------------------------------- 1 | 2 | query ($shopId: ID!, $first: ConnectionLimitInt){ 3 | surcharges(shopId: $shopId, first: $first){ 4 | nodes { 5 | amount { 6 | amount 7 | } 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /packages/api-plugin-products/src/resolvers/Query/index.js: -------------------------------------------------------------------------------- 1 | import product from "./product.js"; 2 | import products from "./products.js"; 3 | import filterProducts from "./filterProducts.js"; 4 | 5 | export default { 6 | product, 7 | products, 8 | filterProducts 9 | }; 10 | -------------------------------------------------------------------------------- /packages/api-plugin-sample-data/src/images/4T5rnTh8fABBLjWth.unisex-denim-jacket-black-denim-back-61d5c81b189ab.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutonurmux/malichimp/HEAD/packages/api-plugin-sample-data/src/images/4T5rnTh8fABBLjWth.unisex-denim-jacket-black-denim-back-61d5c81b189ab.jpg -------------------------------------------------------------------------------- /packages/api-plugin-sample-data/src/images/4T5rnTh8fABBLjWth.unisex-denim-jacket-black-denim-back-61d5c81b18b7e.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutonurmux/malichimp/HEAD/packages/api-plugin-sample-data/src/images/4T5rnTh8fABBLjWth.unisex-denim-jacket-black-denim-back-61d5c81b18b7e.jpg -------------------------------------------------------------------------------- /apps/reaction/tests/integration/api/mutations2/updateShopSettings/updateShopSettings.graphql: -------------------------------------------------------------------------------- 1 | mutation updateShopSettings($input: UpdateShopSettingsInput!) { 2 | updateShopSettings(input: $input) { 3 | shopSettings { 4 | canSellVariantWithoutInventory 5 | } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /packages/api-plugin-authorization-simple/src/schemas/index.js: -------------------------------------------------------------------------------- 1 | import importAsString from "@reactioncommerce/api-utils/importAsString.js"; 2 | 3 | const group = importAsString("./group.graphql"); 4 | const role = importAsString("./role.graphql"); 5 | 6 | export default [group, role]; 7 | -------------------------------------------------------------------------------- /packages/api-plugin-inventory/src/schemas/index.js: -------------------------------------------------------------------------------- 1 | import importAsString from "@reactioncommerce/api-utils/importAsString.js"; 2 | 3 | const schema = importAsString("./schema.graphql"); 4 | const settings = importAsString("./settings.graphql"); 5 | 6 | export default [schema, settings]; 7 | -------------------------------------------------------------------------------- /packages/api-plugin-job-queue/src/config.js: -------------------------------------------------------------------------------- 1 | import envalid from "envalid"; 2 | 3 | export default envalid.cleanEnv(process.env, { 4 | REACTION_WORKERS_ENABLED: envalid.bool({ default: true }), 5 | VERBOSE_JOBS: envalid.bool({ default: false }) 6 | }, { 7 | dotEnvPath: null 8 | }); 9 | -------------------------------------------------------------------------------- /packages/api-plugin-job-queue/src/jobs.js: -------------------------------------------------------------------------------- 1 | import later from "later"; 2 | import createJobCollection from "./job-queue/createJobCollection.js"; 3 | 4 | const { Job, JobCollection } = createJobCollection({ later }); 5 | 6 | const Jobs = new JobCollection(); 7 | 8 | export { Jobs, Job }; 9 | -------------------------------------------------------------------------------- /packages/api-plugin-products/src/mutations/__snapshots__/createProduct.test.js.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`throws if permission check fails 1`] = `"Access Denied"`; 4 | 5 | exports[`throws if the shopId isn't supplied 1`] = `"Shop ID is required"`; 6 | -------------------------------------------------------------------------------- /packages/api-plugin-products/src/schemas/index.js: -------------------------------------------------------------------------------- 1 | import importAsString from "@reactioncommerce/api-utils/importAsString.js"; 2 | 3 | const product = importAsString("./product.graphql"); 4 | const schema = importAsString("./schema.graphql"); 5 | 6 | export default [product, schema]; 7 | -------------------------------------------------------------------------------- /packages/api-plugin-sample-data/src/images/4T5rnTh8fABBLjWth.unisex-denim-jacket-black-denim-front-61d5c81b18a91.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutonurmux/malichimp/HEAD/packages/api-plugin-sample-data/src/images/4T5rnTh8fABBLjWth.unisex-denim-jacket-black-denim-front-61d5c81b18a91.jpg -------------------------------------------------------------------------------- /packages/api-plugin-sample-data/src/images/4T5rnTh8fABBLjWth.unisex-denim-jacket-black-denim-front-61d5c81b18b11.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutonurmux/malichimp/HEAD/packages/api-plugin-sample-data/src/images/4T5rnTh8fABBLjWth.unisex-denim-jacket-black-denim-front-61d5c81b18b11.jpg -------------------------------------------------------------------------------- /packages/api-plugin-sample-data/src/images/Nixnh2DeJaKpMhvHR.all-over-print-mens-leggings-white-back-61d71b026678d.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutonurmux/malichimp/HEAD/packages/api-plugin-sample-data/src/images/Nixnh2DeJaKpMhvHR.all-over-print-mens-leggings-white-back-61d71b026678d.jpg -------------------------------------------------------------------------------- /packages/api-plugin-sample-data/src/images/Nixnh2DeJaKpMhvHR.all-over-print-mens-leggings-white-left-61d71b0266890.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutonurmux/malichimp/HEAD/packages/api-plugin-sample-data/src/images/Nixnh2DeJaKpMhvHR.all-over-print-mens-leggings-white-left-61d71b0266890.jpg -------------------------------------------------------------------------------- /packages/api-plugin-sample-data/src/images/jYRjB5krMPweP5HyZ.all-over-print-yoga-leggings-white-left-61d72aca702cc.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutonurmux/malichimp/HEAD/packages/api-plugin-sample-data/src/images/jYRjB5krMPweP5HyZ.all-over-print-yoga-leggings-white-left-61d72aca702cc.jpg -------------------------------------------------------------------------------- /packages/api-plugin-sample-data/src/images/ymjmx6wMcu7fB3Mvb.unisex-bomber-jacket-heather-black-back-61d72115e2a89.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutonurmux/malichimp/HEAD/packages/api-plugin-sample-data/src/images/ymjmx6wMcu7fB3Mvb.unisex-bomber-jacket-heather-black-back-61d72115e2a89.jpg -------------------------------------------------------------------------------- /packages/api-plugin-sample-data/src/images/ymjmx6wMcu7fB3Mvb.unisex-bomber-jacket-heather-black-back-61d72115e2bfb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutonurmux/malichimp/HEAD/packages/api-plugin-sample-data/src/images/ymjmx6wMcu7fB3Mvb.unisex-bomber-jacket-heather-black-back-61d72115e2bfb.jpg -------------------------------------------------------------------------------- /packages/api-plugin-sample-data/src/images/ymjmx6wMcu7fB3Mvb.unisex-bomber-jacket-heather-black-back-61d72115e2d2c.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutonurmux/malichimp/HEAD/packages/api-plugin-sample-data/src/images/ymjmx6wMcu7fB3Mvb.unisex-bomber-jacket-heather-black-back-61d72115e2d2c.jpg -------------------------------------------------------------------------------- /apps/reaction/tests/integration/api/mutations2/updateGlobalSettings/updateGlobalSettings.graphql: -------------------------------------------------------------------------------- 1 | mutation updateGlobalSettings($input: UpdateGlobalSettingsInput!) { 2 | updateGlobalSettings(input: $input) { 3 | globalSettings { 4 | canSellDigitalProducts 5 | } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /packages/api-plugin-accounts/src/util/defaultAccountGroups.js: -------------------------------------------------------------------------------- 1 | // Default group slugs 2 | export const defaultOwnerGroupSlug = "owner"; 3 | export const defaultShopManagerGroupSlug = "shop manager"; 4 | 5 | export default [ 6 | defaultOwnerGroupSlug, 7 | defaultShopManagerGroupSlug 8 | ]; 9 | -------------------------------------------------------------------------------- /packages/api-plugin-navigation/src/schemas/index.js: -------------------------------------------------------------------------------- 1 | import importAsString from "@reactioncommerce/api-utils/importAsString.js"; 2 | 3 | const schema = importAsString("./schema.graphql"); 4 | const settings = importAsString("./settings.graphql"); 5 | 6 | export default [schema, settings]; 7 | -------------------------------------------------------------------------------- /packages/api-plugin-pricing-simple/src/xforms/xformProductPrice.js: -------------------------------------------------------------------------------- 1 | import Logger from "@reactioncommerce/logger"; 2 | 3 | export default (node) => { 4 | Logger.warn("Using deprecated field `price` on type `Product`, please use field `pricing` instead."); 5 | 6 | return node.price; 7 | }; 8 | -------------------------------------------------------------------------------- /packages/api-plugin-sample-data/src/images/Nixnh2DeJaKpMhvHR.all-over-print-mens-leggings-white-front-61d71b0266655.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutonurmux/malichimp/HEAD/packages/api-plugin-sample-data/src/images/Nixnh2DeJaKpMhvHR.all-over-print-mens-leggings-white-front-61d71b0266655.jpg -------------------------------------------------------------------------------- /packages/api-plugin-sample-data/src/images/Nixnh2DeJaKpMhvHR.all-over-print-mens-leggings-white-right-61d71b026680f.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutonurmux/malichimp/HEAD/packages/api-plugin-sample-data/src/images/Nixnh2DeJaKpMhvHR.all-over-print-mens-leggings-white-right-61d71b026680f.jpg -------------------------------------------------------------------------------- /packages/api-plugin-sample-data/src/images/jYRjB5krMPweP5HyZ.all-over-print-yoga-leggings-white-front-61d72aca70167.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutonurmux/malichimp/HEAD/packages/api-plugin-sample-data/src/images/jYRjB5krMPweP5HyZ.all-over-print-yoga-leggings-white-front-61d72aca70167.jpg -------------------------------------------------------------------------------- /packages/api-plugin-sample-data/src/images/rwBQGfBQrF5sdivDG.unisex-denim-jacket-white-product-details-61d5ca9aefa6e.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutonurmux/malichimp/HEAD/packages/api-plugin-sample-data/src/images/rwBQGfBQrF5sdivDG.unisex-denim-jacket-white-product-details-61d5ca9aefa6e.jpg -------------------------------------------------------------------------------- /apps/reaction/tests/integration/api/queries/tags/TagQuery.graphql: -------------------------------------------------------------------------------- 1 | query Tag($slugOrId: String!, $shopId: ID!, $shouldIncludeInvisible: Boolean) { 2 | tag(slugOrId: $slugOrId, shopId: $shopId, shouldIncludeInvisible: $shouldIncludeInvisible) { 3 | _id 4 | slug 5 | isVisible 6 | } 7 | } -------------------------------------------------------------------------------- /packages/api-plugin-promotions/src/queries/index.js: -------------------------------------------------------------------------------- 1 | import promotions from "./promotions.js"; 2 | import promotion from "./promotion.js"; 3 | import filterPromotions from "./filterPromotions.js"; 4 | 5 | export default { 6 | filterPromotions, 7 | promotions, 8 | promotion 9 | }; 10 | -------------------------------------------------------------------------------- /packages/api-plugin-promotions/src/utils/index.js: -------------------------------------------------------------------------------- 1 | import actionHandler from "./actionHandler.js"; 2 | import canBeApplied from "./canBeApplied.js"; 3 | import enhanceCart from "./enhanceCart.js"; 4 | 5 | export default { 6 | actionHandler, 7 | canBeApplied, 8 | enhanceCart 9 | }; 10 | -------------------------------------------------------------------------------- /packages/api-plugin-sample-data/src/images/dCtii9N4iA6YLcEgK.unisex-long-sleeve-tee-black-heather-front-61d72361de7b5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutonurmux/malichimp/HEAD/packages/api-plugin-sample-data/src/images/dCtii9N4iA6YLcEgK.unisex-long-sleeve-tee-black-heather-front-61d72361de7b5.jpg -------------------------------------------------------------------------------- /packages/api-plugin-sample-data/src/images/dCtii9N4iA6YLcEgK.unisex-long-sleeve-tee-black-heather-front-61d72361deac8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutonurmux/malichimp/HEAD/packages/api-plugin-sample-data/src/images/dCtii9N4iA6YLcEgK.unisex-long-sleeve-tee-black-heather-front-61d72361deac8.jpg -------------------------------------------------------------------------------- /packages/api-plugin-sample-data/src/images/rwBQGfBQrF5sdivDG.unisex-denim-jacket-white-product-details-2-61d5ca9aefacd.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutonurmux/malichimp/HEAD/packages/api-plugin-sample-data/src/images/rwBQGfBQrF5sdivDG.unisex-denim-jacket-white-product-details-2-61d5ca9aefacd.jpg -------------------------------------------------------------------------------- /packages/api-plugin-sample-data/src/images/ymjmx6wMcu7fB3Mvb.unisex-bomber-jacket-heather-black-front-2-61d72115e2afe.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutonurmux/malichimp/HEAD/packages/api-plugin-sample-data/src/images/ymjmx6wMcu7fB3Mvb.unisex-bomber-jacket-heather-black-front-2-61d72115e2afe.jpg -------------------------------------------------------------------------------- /packages/api-plugin-shipments/src/mutations/__snapshots__/updateFulfillmentOptionsForGroup.test.js.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`throws if there is no fulfillment group with the given ID 1`] = `"Fulfillment group with ID group2 not found in cart with ID cartId"`; 4 | -------------------------------------------------------------------------------- /packages/api-plugin-sitemap-generator/src/schemas/index.js: -------------------------------------------------------------------------------- 1 | import importAsString from "@reactioncommerce/api-utils/importAsString.js"; 2 | 3 | const schema = importAsString("./schema.graphql"); 4 | const settings = importAsString("./settings.graphql"); 5 | 6 | export default [schema, settings]; 7 | -------------------------------------------------------------------------------- /apps/reaction/tests/integration/api/queries/group/GroupFullQuery.graphql: -------------------------------------------------------------------------------- 1 | query ($id: ID!) { 2 | group(id: $id) { 3 | _id 4 | createdAt 5 | createdBy { 6 | _id 7 | } 8 | description 9 | name 10 | permissions 11 | slug 12 | updatedAt 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /apps/reaction/tests/mocks/mockTags.js: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * @todo TEMP mocks these will be removed in favor of a fixture/factory solution 4 | */ 5 | 6 | export const internalTagIds = ["923", "924"]; 7 | export const opaqueTagIds = ["cmVhY3Rpb24vdGFnOjkyMw==", "cmVhY3Rpb24vdGFnOjkyNA=="]; // reaction/tag 8 | -------------------------------------------------------------------------------- /packages/api-plugin-accounts/src/queries/__snapshots__/group.test.js.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`throws access-denied if not allowed 1`] = `"Access Denied"`; 4 | 5 | exports[`throws not-found if the group does not exist 1`] = `"There is no group with this ID"`; 6 | -------------------------------------------------------------------------------- /packages/api-plugin-inventory/src/i18n/index.js: -------------------------------------------------------------------------------- 1 | import en from "./en.json" assert { type: "json" }; 2 | 3 | // 4 | // we want all the files in individual 5 | // imports for easier handling by 6 | // automated translation software 7 | // 8 | export default { 9 | translations: [...en] 10 | }; 11 | -------------------------------------------------------------------------------- /packages/api-plugin-products/src/resolvers/ProductConfiguration.js: -------------------------------------------------------------------------------- 1 | import { encodeProductOpaqueId } from "../xforms/id.js"; 2 | 3 | export default { 4 | productId: (node) => encodeProductOpaqueId(node.productId), 5 | productVariantId: (node) => encodeProductOpaqueId(node.productVariantId) 6 | }; 7 | -------------------------------------------------------------------------------- /packages/api-plugin-promotions/src/resolvers/Query/index.js: -------------------------------------------------------------------------------- 1 | import promotions from "./promotions.js"; 2 | import promotion from "./promotion.js"; 3 | import filterPromotions from "./filterPromotions.js"; 4 | 5 | export default { 6 | filterPromotions, 7 | promotion, 8 | promotions 9 | }; 10 | -------------------------------------------------------------------------------- /apps/reaction/tests/mocks/mockShop.js: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * @todo TEMP Mocks these will be removed in favor of a fixture/factory solution 4 | */ 5 | 6 | export const internalShopId = "123"; 7 | export const opaqueShopId = "cmVhY3Rpb24vc2hvcDoxMjM="; // reaction/shop:123 8 | export const shopName = "Test Shop"; 9 | -------------------------------------------------------------------------------- /packages/api-core/src/graphql/resolvers/__snapshots__/ConnectionLimitInt.test.js.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`has a description 1`] = ` 4 | " 5 | An integer between 1 and 50, inclusive. Values less than 1 become 1 and 6 | values greater than 50 become 50. 7 | " 8 | `; 9 | -------------------------------------------------------------------------------- /packages/api-plugin-catalogs/src/resolvers/Query/index.js: -------------------------------------------------------------------------------- 1 | import catalogItems from "./catalogItems.js"; 2 | import catalogItemProduct from "./catalogItemProduct.js"; 3 | import vendors from "./vendors.js"; 4 | 5 | export default { 6 | catalogItems, 7 | catalogItemProduct, 8 | vendors 9 | }; 10 | -------------------------------------------------------------------------------- /packages/api-plugin-navigation/src/resolvers/NavigationItem/index.js: -------------------------------------------------------------------------------- 1 | import { encodeNavigationItemOpaqueId, encodeShopOpaqueId } from "../../xforms/id.js"; 2 | 3 | export default { 4 | _id: (node) => encodeNavigationItemOpaqueId(node._id), 5 | shopId: (node) => encodeShopOpaqueId(node.shopId) 6 | }; 7 | -------------------------------------------------------------------------------- /packages/api-plugin-pricing-simple/src/i18n/index.js: -------------------------------------------------------------------------------- 1 | import en from "./en.json" assert { type: "json" }; 2 | 3 | // 4 | // we want all the files in individual 5 | // imports for easier handling by 6 | // automated translation software 7 | // 8 | export default { 9 | translations: [...en] 10 | }; 11 | -------------------------------------------------------------------------------- /packages/api-plugin-sample-data/src/images/4w8kMXBLpKvz9xYFS.embroidered-champion-packable-jacket-black-front-61d71f87762bd.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutonurmux/malichimp/HEAD/packages/api-plugin-sample-data/src/images/4w8kMXBLpKvz9xYFS.embroidered-champion-packable-jacket-black-front-61d71f87762bd.jpg -------------------------------------------------------------------------------- /packages/api-plugin-sample-data/src/images/4w8kMXBLpKvz9xYFS.embroidered-champion-packable-jacket-black-front-61d71f877635b.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutonurmux/malichimp/HEAD/packages/api-plugin-sample-data/src/images/4w8kMXBLpKvz9xYFS.embroidered-champion-packable-jacket-black-front-61d71f877635b.jpg -------------------------------------------------------------------------------- /packages/api-plugin-sample-data/src/images/Hn4BRaBvLkYffMq36.embroidered-champion-packable-jacket-black-front-61d714690e5a9.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutonurmux/malichimp/HEAD/packages/api-plugin-sample-data/src/images/Hn4BRaBvLkYffMq36.embroidered-champion-packable-jacket-black-front-61d714690e5a9.jpg -------------------------------------------------------------------------------- /packages/api-plugin-sample-data/src/images/Hn4BRaBvLkYffMq36.embroidered-champion-packable-jacket-black-front-61d71f877635b.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutonurmux/malichimp/HEAD/packages/api-plugin-sample-data/src/images/Hn4BRaBvLkYffMq36.embroidered-champion-packable-jacket-black-front-61d71f877635b.jpg -------------------------------------------------------------------------------- /packages/api-plugin-sample-data/src/images/sfnf4bXmDMiWFysq5.all-over-print-mens-crew-neck-t-shirt-white-front-61d718f8f083d.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutonurmux/malichimp/HEAD/packages/api-plugin-sample-data/src/images/sfnf4bXmDMiWFysq5.all-over-print-mens-crew-neck-t-shirt-white-front-61d718f8f083d.jpg -------------------------------------------------------------------------------- /packages/api-plugin-sample-data/src/images/sfnf4bXmDMiWFysq5.all-over-print-mens-crew-neck-t-shirt-white-front-61d718f8f0904.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutonurmux/malichimp/HEAD/packages/api-plugin-sample-data/src/images/sfnf4bXmDMiWFysq5.all-over-print-mens-crew-neck-t-shirt-white-front-61d718f8f0904.jpg -------------------------------------------------------------------------------- /packages/api-plugin-sample-data/src/images/sfnf4bXmDMiWFysq5.all-over-print-mens-crew-neck-t-shirt-white-front-61d718f8f0af1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutonurmux/malichimp/HEAD/packages/api-plugin-sample-data/src/images/sfnf4bXmDMiWFysq5.all-over-print-mens-crew-neck-t-shirt-white-front-61d718f8f0af1.jpg -------------------------------------------------------------------------------- /packages/api-plugin-sample-data/src/images/sfnf4bXmDMiWFysq5.all-over-print-mens-crew-neck-t-shirt-white-left-61d718f8f0a6f.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutonurmux/malichimp/HEAD/packages/api-plugin-sample-data/src/images/sfnf4bXmDMiWFysq5.all-over-print-mens-crew-neck-t-shirt-white-left-61d718f8f0a6f.jpg -------------------------------------------------------------------------------- /packages/api-plugin-sample-data/src/images/sfnf4bXmDMiWFysq5.all-over-print-mens-crew-neck-t-shirt-white-right-61d718f8f09e4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutonurmux/malichimp/HEAD/packages/api-plugin-sample-data/src/images/sfnf4bXmDMiWFysq5.all-over-print-mens-crew-neck-t-shirt-white-right-61d718f8f09e4.jpg -------------------------------------------------------------------------------- /packages/api-plugin-sample-data/src/images/ynNA5rXKZCHF2uKjq.embroidered-champion-packable-jacket-navy-front-61d714f788470.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutonurmux/malichimp/HEAD/packages/api-plugin-sample-data/src/images/ynNA5rXKZCHF2uKjq.embroidered-champion-packable-jacket-navy-front-61d714f788470.jpg -------------------------------------------------------------------------------- /packages/api-plugin-sample-data/src/images/ynNA5rXKZCHF2uKjq.embroidered-champion-packable-jacket-navy-front-61d714f7885b0.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutonurmux/malichimp/HEAD/packages/api-plugin-sample-data/src/images/ynNA5rXKZCHF2uKjq.embroidered-champion-packable-jacket-navy-front-61d714f7885b0.jpg -------------------------------------------------------------------------------- /packages/api-plugin-taxes/src/mutations/index.js: -------------------------------------------------------------------------------- 1 | import getFulfillmentGroupTaxes from "./getFulfillmentGroupTaxes.js"; 2 | import setTaxesOnOrderFulfillmentGroup from "./setTaxesOnOrderFulfillmentGroup.js"; 3 | 4 | export default { 5 | getFulfillmentGroupTaxes, 6 | setTaxesOnOrderFulfillmentGroup 7 | }; 8 | -------------------------------------------------------------------------------- /apps/reaction/tests/integration/api/queries/catalogItems/__snapshots__/catalogItems.test.js.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`expect error when sortByPriceCurrencyCode is not provided while sortBy is minPrice 1`] = `"sortByPriceCurrencyCode is required when sorting by minPrice"`; 4 | -------------------------------------------------------------------------------- /packages/api-plugin-shipments-flat-rate/src/schemas/index.js: -------------------------------------------------------------------------------- 1 | import importAsString from "@reactioncommerce/api-utils/importAsString.js"; 2 | 3 | const schema = importAsString("./schema.graphql"); 4 | const restrictions = importAsString("./restrictions.graphql"); 5 | 6 | export default [schema, restrictions]; 7 | -------------------------------------------------------------------------------- /packages/api-plugin-tags/src/queries/index.js: -------------------------------------------------------------------------------- 1 | import productsByTagId from "./productsByTagId.js"; 2 | import tag from "./tag.js"; 3 | import tags from "./tags.js"; 4 | import tagsByIds from "./tagsByIds.js"; 5 | 6 | export default { 7 | productsByTagId, 8 | tag, 9 | tags, 10 | tagsByIds 11 | }; 12 | -------------------------------------------------------------------------------- /packages/api-utils/docs/README.md: -------------------------------------------------------------------------------- 1 | # api-utils 2 | 3 | ## Methods 4 | 5 | - [getAbsoluteUrl](./getAbsoluteUrl.md) 6 | - [getPaginatedResponseFromAggregate](./getPaginatedResponseFromAggregate.md) 7 | - [tagsForCatalogProducts](./tagsForCatalogProducts.md) 8 | - [generateFilterQuery](./generateFilterQuery.md) 9 | -------------------------------------------------------------------------------- /apps/reaction/tests/integration/api/mutations1/approveOrderPayments/approveOrderPayments.graphql: -------------------------------------------------------------------------------- 1 | 2 | mutation approveOrderPayments($input: ApproveOrderPaymentsInput!) { 3 | approveOrderPayments(input: $input){ 4 | order { 5 | payments { 6 | status 7 | } 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /apps/reaction/tests/integration/api/queries/getFlatRateFulfillmentRestrictions/FlatRateFulfillmentRestrictionsQuery.graphql: -------------------------------------------------------------------------------- 1 | 2 | query($shopId: ID!){ 3 | getFlatRateFulfillmentRestrictions(shopId: $shopId){ 4 | nodes { 5 | destination { 6 | country 7 | } 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /packages/api-plugin-email/src/schemas/index.js: -------------------------------------------------------------------------------- 1 | import importAsString from "@reactioncommerce/api-utils/importAsString.js"; 2 | 3 | const emailJobs = importAsString("./emailJobs.graphql"); 4 | const retryFailedEmail = importAsString("./retryFailedEmail.graphql"); 5 | 6 | export default [emailJobs, retryFailedEmail]; 7 | -------------------------------------------------------------------------------- /packages/api-plugin-sample-data/src/images/4w8kMXBLpKvz9xYFS.embroidered-champion-packable-jacket-black-zoomed-in-61d71f877623a.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutonurmux/malichimp/HEAD/packages/api-plugin-sample-data/src/images/4w8kMXBLpKvz9xYFS.embroidered-champion-packable-jacket-black-zoomed-in-61d71f877623a.jpg -------------------------------------------------------------------------------- /packages/api-plugin-sample-data/src/images/xM7BSt5CZkqom33pP.all-over-print-mens-athletic-long-shorts-white-front-61d72e5b055e6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutonurmux/malichimp/HEAD/packages/api-plugin-sample-data/src/images/xM7BSt5CZkqom33pP.all-over-print-mens-athletic-long-shorts-white-front-61d72e5b055e6.jpg -------------------------------------------------------------------------------- /packages/api-plugin-sample-data/src/images/xM7BSt5CZkqom33pP.all-over-print-mens-athletic-long-shorts-white-front-61d72e5b05725.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutonurmux/malichimp/HEAD/packages/api-plugin-sample-data/src/images/xM7BSt5CZkqom33pP.all-over-print-mens-athletic-long-shorts-white-front-61d72e5b05725.jpg -------------------------------------------------------------------------------- /packages/api-plugin-sample-data/src/images/xM7BSt5CZkqom33pP.all-over-print-mens-athletic-long-shorts-white-front-61d72e5b057fa.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutonurmux/malichimp/HEAD/packages/api-plugin-sample-data/src/images/xM7BSt5CZkqom33pP.all-over-print-mens-athletic-long-shorts-white-front-61d72e5b057fa.jpg -------------------------------------------------------------------------------- /packages/api-plugin-sample-data/src/json-data/Shops.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "currencyCode":"USD", 4 | "defaultLanguage":"en", 5 | "defaultTimezone":"US/Pacific", 6 | "name":"Mountain Shop", 7 | "description":null, 8 | "shopId":"dSZqgQsyp48EpJzor", 9 | "type": "primary" 10 | } 11 | ] 12 | -------------------------------------------------------------------------------- /packages/api-plugin-taxes-flat-rate/src/mutations/index.js: -------------------------------------------------------------------------------- 1 | import createTaxRate from "./createTaxRate.js"; 2 | import updateTaxRate from "./updateTaxRate.js"; 3 | import deleteTaxRate from "./deleteTaxRate.js"; 4 | 5 | export default { 6 | createTaxRate, 7 | updateTaxRate, 8 | deleteTaxRate 9 | }; 10 | -------------------------------------------------------------------------------- /packages/api-plugin-accounts/src/queries/__snapshots__/userAccount.test.js.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`throws if account not found 1`] = `"No account found"`; 4 | 5 | exports[`throws if userHasPermission returns false and the user ID is not the context user ID 1`] = `"Access Denied"`; 6 | -------------------------------------------------------------------------------- /packages/api-plugin-fulfillment/src/i18n/index.js: -------------------------------------------------------------------------------- 1 | import en from "./en.json" assert { type: "json" }; 2 | 3 | // 4 | // we want all the files in individual 5 | // imports for easier handling by 6 | // automated translation software 7 | // 8 | export default { 9 | translations: [ 10 | ...en 11 | ] 12 | }; 13 | -------------------------------------------------------------------------------- /packages/api-plugin-taxes-flat-rate/src/resolvers/Mutation/index.js: -------------------------------------------------------------------------------- 1 | import createTaxRate from "./createTaxRate.js"; 2 | import updateTaxRate from "./updateTaxRate.js"; 3 | import deleteTaxRate from "./deleteTaxRate.js"; 4 | 5 | export default { 6 | createTaxRate, 7 | updateTaxRate, 8 | deleteTaxRate 9 | }; 10 | -------------------------------------------------------------------------------- /apps/reaction/tests/integration/api/mutations1/captureOrderPayments/captureOrderPayments.graphql: -------------------------------------------------------------------------------- 1 | mutation captureOrderPayments($input: CaptureOrderPaymentsInput!) { 2 | captureOrderPayments(input: $input){ 3 | order { 4 | payments { 5 | mode 6 | status 7 | } 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /apps/reaction/tests/util/setupJestTests.js: -------------------------------------------------------------------------------- 1 | /* eslint-disable no-undef */ 2 | import jestProcessEnv from "./jestProcessEnv.json" assert { type: "json" }; 3 | 4 | process.env = Object.assign(process.env, { 5 | ...jestProcessEnv 6 | }); 7 | 8 | process.on("unhandledRejection", (err) => { 9 | throw err; 10 | }); 11 | -------------------------------------------------------------------------------- /packages/api-plugin-email/src/policies.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "description": "Shop managers acting on email settings.", 4 | "subjects": [ "reaction:groups:shop-managers" ], 5 | "resources": [ "reaction:legacy:emails" ], 6 | "actions": [ 7 | "send" 8 | ], 9 | "effect": "allow" 10 | } 11 | ] 12 | -------------------------------------------------------------------------------- /packages/api-plugin-fulfillment-method-shipping-flat-rate/src/schemas/index.js: -------------------------------------------------------------------------------- 1 | import importAsString from "@reactioncommerce/api-utils/importAsString.js"; 2 | 3 | const schema = importAsString("./schema.graphql"); 4 | const restrictions = importAsString("./restrictions.graphql"); 5 | 6 | export default [schema, restrictions]; 7 | -------------------------------------------------------------------------------- /packages/api-plugin-inventory-simple/src/resolvers/Mutation/index.js: -------------------------------------------------------------------------------- 1 | import recalculateReservedSimpleInventory from "./recalculateReservedSimpleInventory.js"; 2 | import updateSimpleInventory from "./updateSimpleInventory.js"; 3 | 4 | export default { 5 | recalculateReservedSimpleInventory, 6 | updateSimpleInventory 7 | }; 8 | -------------------------------------------------------------------------------- /packages/api-plugin-payments-stripe-sca/src/xforms/id.js: -------------------------------------------------------------------------------- 1 | import decodeOpaqueIdForNamespace from "@reactioncommerce/api-utils/decodeOpaqueIdForNamespace.js"; 2 | 3 | export const decodeCartOpaqueId = decodeOpaqueIdForNamespace("reaction/cart"); 4 | export const decodeShopOpaqueId = decodeOpaqueIdForNamespace("reaction/shop"); 5 | -------------------------------------------------------------------------------- /packages/api-plugin-surcharges/src/mutations/index.js: -------------------------------------------------------------------------------- 1 | import createSurcharge from "./createSurcharge.js"; 2 | import deleteSurcharge from "./deleteSurcharge.js"; 3 | import updateSurcharge from "./updateSurcharge.js"; 4 | 5 | export default { 6 | createSurcharge, 7 | deleteSurcharge, 8 | updateSurcharge 9 | }; 10 | -------------------------------------------------------------------------------- /apps/reaction/tests/integration/api/mutations1/payments/EnablePaymentMethodsForShopMutation.graphql: -------------------------------------------------------------------------------- 1 | mutation( $enablePaymentMethodForShopInput: EnablePaymentMethodForShopInput!) { 2 | enablePaymentMethodForShop(input: $enablePaymentMethodForShopInput) { 3 | paymentMethods { 4 | isEnabled 5 | name 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /packages/api-plugin-email-smtp/src/policies.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "description": "Shop managers acting on email settings.", 4 | "subjects": [ "reaction:groups:shop-managers" ], 5 | "resources": [ "reaction:legacy:emails" ], 6 | "actions": [ 7 | "read" 8 | ], 9 | "effect": "allow" 10 | } 11 | ] 12 | -------------------------------------------------------------------------------- /packages/api-plugin-job-queue/src/job-queue/README.md: -------------------------------------------------------------------------------- 1 | The files in this folder are a rewrite of the @reactioncommerce/job-queue package with an almost identical API but no Meteor dependencies. This is not expected to be the final solution for background jobs in Reaction, but it is a temporary solution that works fairly well for now. 2 | -------------------------------------------------------------------------------- /packages/api-plugin-fulfillment-type-pickup/src/i18n/index.js: -------------------------------------------------------------------------------- 1 | import en from "./en.json" assert { type: "json" }; 2 | 3 | // 4 | // we want all the files in individual 5 | // imports for easier handling by 6 | // automated translation software 7 | // 8 | export default { 9 | translations: [ 10 | ...en 11 | ] 12 | }; 13 | -------------------------------------------------------------------------------- /packages/api-plugin-pricing-simple/src/xforms/xformProductVariantCompareAtPrice.js: -------------------------------------------------------------------------------- 1 | import Logger from "@reactioncommerce/logger"; 2 | 3 | export default (node) => { 4 | Logger.warn("Using deprecated field `compareAtPrice` on type `ProductVariant`, please use field `pricing` instead."); 5 | 6 | return node.compareAtPrice; 7 | }; 8 | -------------------------------------------------------------------------------- /packages/api-plugin-promotions-coupons/src/resolvers/Query/index.js: -------------------------------------------------------------------------------- 1 | import coupon from "./coupon.js"; 2 | import coupons from "./coupons.js"; 3 | import couponLog from "./couponLog.js"; 4 | import couponLogs from "./couponLogs.js"; 5 | 6 | export default { 7 | coupon, 8 | coupons, 9 | couponLog, 10 | couponLogs 11 | }; 12 | -------------------------------------------------------------------------------- /packages/api-plugin-shipments/src/mutations/index.js: -------------------------------------------------------------------------------- 1 | import selectFulfillmentOptionForGroup from "./selectFulfillmentOptionForGroup.js"; 2 | import updateFulfillmentOptionsForGroup from "./updateFulfillmentOptionsForGroup.js"; 3 | 4 | export default { 5 | selectFulfillmentOptionForGroup, 6 | updateFulfillmentOptionsForGroup 7 | }; 8 | -------------------------------------------------------------------------------- /packages/api-plugin-surcharges/src/resolvers/Mutation/index.js: -------------------------------------------------------------------------------- 1 | import createSurcharge from "./createSurcharge.js"; 2 | import deleteSurcharge from "./deleteSurcharge.js"; 3 | import updateSurcharge from "./updateSurcharge.js"; 4 | 5 | export default { 6 | createSurcharge, 7 | deleteSurcharge, 8 | updateSurcharge 9 | }; 10 | -------------------------------------------------------------------------------- /apps/reaction/tests/integration/api/mutations1/archiveProducts/archiveProducts.graphql: -------------------------------------------------------------------------------- 1 | mutation archiveProducts($input: ArchiveProductsInput!) { 2 | archiveProducts(input: $input) { 3 | products { 4 | isDeleted 5 | isVisible 6 | shop { 7 | _id 8 | } 9 | title 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /apps/reaction/tests/integration/api/mutations2/removeAccountGroup/RemoveAccountGroupMutation.graphql: -------------------------------------------------------------------------------- 1 | mutation RemoveAccountGroup($input: RemoveAccountGroupInput!) { 2 | removeAccountGroup(input: $input) { 3 | group { 4 | _id 5 | slug 6 | name 7 | description 8 | permissions 9 | } 10 | } 11 | } -------------------------------------------------------------------------------- /apps/reaction/tests/integration/api/mutations2/updateAccountGroup/UpdateAccountGroupMutation.graphql: -------------------------------------------------------------------------------- 1 | mutation UpdateAccountGroup($input: UpdateAccountGroupInput!) { 2 | updateAccountGroup(input: $input) { 3 | group { 4 | _id 5 | slug 6 | name 7 | description 8 | permissions 9 | } 10 | } 11 | } -------------------------------------------------------------------------------- /apps/reaction/tests/integration/api/mutations2/updateOrder/UpdateOrderMutation.graphql: -------------------------------------------------------------------------------- 1 | mutation ($email: String, $orderId: ID!, $status: String) { 2 | updateOrder(input: { 3 | email: $email, 4 | orderId: $orderId, 5 | status: $status 6 | }) { 7 | order { 8 | email 9 | status 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /apps/reaction/tests/integration/api/queries/getFlatRateFulfillmentRestriction/FlatRateFulfillmentRestrictionQuery.graphql: -------------------------------------------------------------------------------- 1 | 2 | query($shopId: ID!, $restrictionId: ID!){ 3 | getFlatRateFulfillmentRestriction(shopId: $shopId, restrictionId: $restrictionId){ 4 | type 5 | destination { 6 | country 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /packages/api-core/src/graphql/resolvers/__snapshots__/ConnectionCursor.test.js.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`has a description 1`] = ` 4 | " 5 | An opaque string that identifies a particular result within a connection, 6 | allowing you to request a subset of results before or after that result. 7 | " 8 | `; 9 | -------------------------------------------------------------------------------- /packages/api-plugin-email-templates/src/schemas/index.js: -------------------------------------------------------------------------------- 1 | import importAsString from "@reactioncommerce/api-utils/importAsString.js"; 2 | 3 | const schema = importAsString("./schema.graphql"); 4 | const updateTemplate = importAsString("./updateTemplate.graphql"); 5 | 6 | export default [ 7 | schema, 8 | updateTemplate 9 | ]; 10 | -------------------------------------------------------------------------------- /packages/api-plugin-email/migrations/index.js: -------------------------------------------------------------------------------- 1 | import { migrationsNamespace } from "./migrationsNamespace.js"; 2 | import migration2 from "./2.js"; 3 | 4 | export default { 5 | tracks: [ 6 | { 7 | namespace: migrationsNamespace, 8 | migrations: { 9 | 2: migration2 10 | } 11 | } 12 | ] 13 | }; 14 | -------------------------------------------------------------------------------- /packages/api-plugin-fulfillment-method-pickup-store/src/i18n/index.js: -------------------------------------------------------------------------------- 1 | import en from "./en.json" assert { type: "json" }; 2 | 3 | // 4 | // we want all the files in individual 5 | // imports for easier handling by 6 | // automated translation software 7 | // 8 | export default { 9 | translations: [ 10 | ...en 11 | ] 12 | }; 13 | -------------------------------------------------------------------------------- /packages/api-plugin-inventory/src/queries/index.js: -------------------------------------------------------------------------------- 1 | import inventoryForProductConfiguration from "./inventoryForProductConfiguration.js"; 2 | import inventoryForProductConfigurations from "./inventoryForProductConfigurations.js"; 3 | 4 | export default { 5 | inventoryForProductConfiguration, 6 | inventoryForProductConfigurations 7 | }; 8 | -------------------------------------------------------------------------------- /packages/api-plugin-promotions-coupons/src/resolvers/index.js: -------------------------------------------------------------------------------- 1 | import Promotion from "./Promotion/index.js"; 2 | import Mutation from "./Mutation/index.js"; 3 | import Query from "./Query/index.js"; 4 | import Order from "./Order/index.js"; 5 | 6 | export default { 7 | Order, 8 | Promotion, 9 | Mutation, 10 | Query 11 | }; 12 | -------------------------------------------------------------------------------- /packages/api-plugin-tags/migrations/index.js: -------------------------------------------------------------------------------- 1 | import { migrationsNamespace } from "./migrationsNamespace.js"; 2 | import migration2 from "./2.js"; 3 | 4 | export default { 5 | tracks: [ 6 | { 7 | namespace: migrationsNamespace, 8 | migrations: { 9 | 2: migration2 10 | } 11 | } 12 | ] 13 | }; 14 | -------------------------------------------------------------------------------- /packages/api-plugin-tags/src/mutations/index.js: -------------------------------------------------------------------------------- 1 | import addTag from "./addTag.js"; 2 | import setTagHeroMedia from "./setTagHeroMedia.js"; 3 | import removeTag from "./removeTag.js"; 4 | import updateTag from "./updateTag.js"; 5 | 6 | export default { 7 | addTag, 8 | setTagHeroMedia, 9 | removeTag, 10 | updateTag 11 | }; 12 | -------------------------------------------------------------------------------- /packages/api-plugin-taxes/src/mutations/__snapshots__/getFulfillmentGroupTaxes.test.js.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`throws if the calculation function throws 1`] = `"Error while calculating taxes"`; 4 | 5 | exports[`throws if the result doesn't match the schema 1`] = `"Error while calculating taxes"`; 6 | -------------------------------------------------------------------------------- /apps/meteor-blaze-app/imports/client/images/images.css: -------------------------------------------------------------------------------- 1 | .imageArea { 2 | margin-bottom: 70px; 3 | } 4 | 5 | .imageArea .media { 6 | margin-top: 0; 7 | margin-right: 10px; 8 | width: 300px; 9 | max-width: 300px; 10 | } 11 | 12 | .btn-row { 13 | margin: -2px 0; 14 | } 15 | 16 | .btn-row > .btn { 17 | margin: 2px 0; 18 | } 19 | -------------------------------------------------------------------------------- /packages/api-plugin-address-validation/src/schemas/index.js: -------------------------------------------------------------------------------- 1 | import importAsString from "@reactioncommerce/api-utils/importAsString.js"; 2 | 3 | const schema = importAsString("./schema.graphql"); 4 | const addressValidationRuleSchema = importAsString("./AddressValidationRule.graphql"); 5 | 6 | export default [schema, addressValidationRuleSchema]; 7 | -------------------------------------------------------------------------------- /packages/api-plugin-bull-queue/src/api/index.js: -------------------------------------------------------------------------------- 1 | import addJob from "./addJob.js"; 2 | import addDelayedJob from "./addDelayedJob.js"; 3 | import createQueue from "./createQueue.js"; 4 | import scheduleJob from "./scheduleJob.js"; 5 | 6 | export default { 7 | addJob, 8 | addDelayedJob, 9 | createQueue, 10 | scheduleJob 11 | }; 12 | -------------------------------------------------------------------------------- /packages/api-plugin-fulfillment/migrations/index.js: -------------------------------------------------------------------------------- 1 | import { migrationsNamespace } from "./migrationsNamespace.js"; 2 | import migration2 from "./2.js"; 3 | 4 | export default { 5 | tracks: [ 6 | { 7 | namespace: migrationsNamespace, 8 | migrations: { 9 | 2: migration2 10 | } 11 | } 12 | ] 13 | }; 14 | -------------------------------------------------------------------------------- /packages/api-plugin-fulfillment/src/resolvers/Query/index.js: -------------------------------------------------------------------------------- 1 | import fulfillmentType from "./fulfillmentType.js"; 2 | import fulfillmentTypes from "./fulfillmentTypes.js"; 3 | import fulfillmentMethods from "./fulfillmentMethods.js"; 4 | 5 | export default { 6 | fulfillmentType, 7 | fulfillmentTypes, 8 | fulfillmentMethods 9 | }; 10 | -------------------------------------------------------------------------------- /packages/api-plugin-pricing-simple/src/resolvers/Product.js: -------------------------------------------------------------------------------- 1 | import xformProductPricing from "../xforms/xformProductPricing.js"; 2 | import xformProductPrice from "../xforms/xformProductPrice.js"; 3 | 4 | export default { 5 | price: (node) => xformProductPrice(node), 6 | pricing: (node, _, context) => xformProductPricing(node, context) 7 | }; 8 | -------------------------------------------------------------------------------- /packages/api-plugin-shipments/src/resolvers/Mutation/index.js: -------------------------------------------------------------------------------- 1 | import selectFulfillmentOptionForGroup from "./selectFulfillmentOptionForGroup.js"; 2 | import updateFulfillmentOptionsForGroup from "./updateFulfillmentOptionsForGroup.js"; 3 | 4 | export default { 5 | selectFulfillmentOptionForGroup, 6 | updateFulfillmentOptionsForGroup 7 | }; 8 | -------------------------------------------------------------------------------- /packages/api-plugin-simple-schema/migrations/index.js: -------------------------------------------------------------------------------- 1 | import { migrationsNamespace } from "./migrationsNamespace.js"; 2 | import migration2 from "./2.js"; 3 | 4 | export default { 5 | tracks: [ 6 | { 7 | namespace: migrationsNamespace, 8 | migrations: { 9 | 2: migration2 10 | } 11 | } 12 | ] 13 | }; 14 | -------------------------------------------------------------------------------- /packages/api-plugin-system-information/src/policies.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "description": "Shop managers acting on specific entities.", 4 | "subjects": [ "reaction:groups:shop-managers" ], 5 | "resources": [ "reaction:legacy:shops:*" ], 6 | "actions": [ 7 | "read" 8 | ], 9 | "effect": "allow" 10 | } 11 | ] 12 | -------------------------------------------------------------------------------- /packages/api-plugin-tags/src/resolvers/Mutation/index.js: -------------------------------------------------------------------------------- 1 | import addTag from "./addTag.js"; 2 | import setTagHeroMedia from "./setTagHeroMedia.js"; 3 | import removeTag from "./removeTag.js"; 4 | import updateTag from "./updateTag.js"; 5 | 6 | export default { 7 | addTag, 8 | setTagHeroMedia, 9 | removeTag, 10 | updateTag 11 | }; 12 | -------------------------------------------------------------------------------- /apps/reaction/tests/integration/api/mutations1/addCartItems/addCartItemsMutation.graphql: -------------------------------------------------------------------------------- 1 | mutation ( $cartId: ID!, $items: [CartItemInput]!, $cartToken: String ) { 2 | addCartItems( input: {cartId: $cartId, items: $items, cartToken: $cartToken} ){ 3 | cart { 4 | items { 5 | totalCount 6 | } 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /packages/api-plugin-address-validation/src/resolvers/AddressValidationRule.js: -------------------------------------------------------------------------------- 1 | import { 2 | encodeAddressValidationRuleOpaqueId, 3 | encodeShopOpaqueId 4 | } from "../xforms/id.js"; 5 | 6 | export default { 7 | _id: (node) => encodeAddressValidationRuleOpaqueId(node._id), 8 | shopId: (node) => encodeShopOpaqueId(node.shopId) 9 | }; 10 | -------------------------------------------------------------------------------- /packages/api-plugin-fulfillment-method-shipping-dynamic-rate/src/i18n/index.js: -------------------------------------------------------------------------------- 1 | import en from "./en.json" assert { type: "json" }; 2 | 3 | // 4 | // we want all the files in individual 5 | // imports for easier handling by 6 | // automated translation software 7 | // 8 | export default { 9 | translations: [ 10 | ...en 11 | ] 12 | }; 13 | -------------------------------------------------------------------------------- /packages/api-plugin-payments/src/resolvers/index.js: -------------------------------------------------------------------------------- 1 | import Mutation from "./Mutation/index.js"; 2 | import Payment from "./Payment/index.js"; 3 | import PaymentMethod from "./PaymentMethod/index.js"; 4 | import Query from "./Query/index.js"; 5 | 6 | export default { 7 | Mutation, 8 | Payment, 9 | PaymentMethod, 10 | Query 11 | }; 12 | -------------------------------------------------------------------------------- /packages/api-plugin-promotions-coupons/migrations/index.js: -------------------------------------------------------------------------------- 1 | import { migrationsNamespace } from "./migrationsNamespace.js"; 2 | import migration2 from "./2.js"; 3 | 4 | export default { 5 | tracks: [ 6 | { 7 | namespace: migrationsNamespace, 8 | migrations: { 9 | 2: migration2 10 | } 11 | } 12 | ] 13 | }; 14 | -------------------------------------------------------------------------------- /packages/api-plugin-shipments/src/resolvers/index.js: -------------------------------------------------------------------------------- 1 | import FulfillmentMethod from "./FulfillmentMethod/index.js"; 2 | import Mutation from "./Mutation/index.js"; 3 | 4 | /** 5 | * Fulfillment related GraphQL resolvers 6 | * @namespace Fulfillment/GraphQL 7 | */ 8 | 9 | export default { 10 | FulfillmentMethod, 11 | Mutation 12 | }; 13 | -------------------------------------------------------------------------------- /packages/api-plugin-taxes/src/policies.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "description": "Tax managers acting on all entities.", 4 | "subjects": [ "reaction:groups:tax-managers" ], 5 | "resources": [ "reaction:legacy:taxes" ], 6 | "actions": [ 7 | "read", 8 | "update:settings" 9 | ], 10 | "effect": "allow" 11 | } 12 | ] 13 | -------------------------------------------------------------------------------- /packages/api-plugin-discounts-codes/src/resolvers/DiscountCode/index.js: -------------------------------------------------------------------------------- 1 | import resolveShopFromShopId from "@reactioncommerce/api-utils/graphql/resolveShopFromShopId.js"; 2 | import { encodeDiscountOpaqueId } from "../../xforms/id.js"; 3 | 4 | export default { 5 | _id: (node) => encodeDiscountOpaqueId(node._id), 6 | shop: resolveShopFromShopId 7 | }; 8 | -------------------------------------------------------------------------------- /packages/api-plugin-inventory/src/policies.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "description": "Inventory managers acting on all inventory.", 4 | "subjects": [ "reaction:groups:inventory-managers" ], 5 | "resources": [ "reaction:legacy:inventory:" ], 6 | "actions": [ 7 | "update:settings" 8 | ], 9 | "effect": "allow" 10 | } 11 | ] 12 | -------------------------------------------------------------------------------- /packages/api-plugin-navigation/src/resolvers/Shop/index.js: -------------------------------------------------------------------------------- 1 | import { encodeNavigationTreeOpaqueId } from "../../xforms/id.js"; 2 | import defaultNavigationTree from "./defaultNavigationTree.js"; 3 | 4 | export default { 5 | defaultNavigationTreeId: (shop) => encodeNavigationTreeOpaqueId(shop.defaultNavigationTreeId), 6 | defaultNavigationTree 7 | }; 8 | -------------------------------------------------------------------------------- /packages/api-plugin-pricing-simple/src/policies.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "description": "Product managers acting on specific entities.", 4 | "subjects": [ "reaction:groups:product-managers" ], 5 | "resources": [ "reaction:legacy:products:*" ], 6 | "actions": [ 7 | "update:prices" 8 | ], 9 | "effect": "allow" 10 | } 11 | ] 12 | -------------------------------------------------------------------------------- /apps/reaction/tests/integration/api/mutations1/createShop/CreateShopMutation.graphql: -------------------------------------------------------------------------------- 1 | mutation CreateShop($input: CreateShopInput!) { 2 | createShop(input: $input) { 3 | shop { 4 | name 5 | description 6 | shopType 7 | timezone 8 | language 9 | currency { 10 | code 11 | } 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /apps/reaction/tests/integration/api/queries/accountCartByAccountId/AccountCartByAccountIdQuery.graphql: -------------------------------------------------------------------------------- 1 | 2 | query ($accountId: ID!, $shopId: ID!){ 3 | accountCartByAccountId(accountId: $accountId, shopId: $shopId){ 4 | _id 5 | account { 6 | _id 7 | } 8 | items { 9 | totalCount 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /apps/reaction/tests/integration/api/queries/groups/GroupsFullQuery.graphql: -------------------------------------------------------------------------------- 1 | query ($shopId: ID!) { 2 | groups(shopId: $shopId) { 3 | nodes { 4 | _id 5 | createdAt 6 | createdBy { 7 | _id 8 | } 9 | description 10 | name 11 | permissions 12 | slug 13 | updatedAt 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /apps/reaction/tests/integration/api/queries/orderByReferenceId/OrderByReferenceIdQuery.graphql: -------------------------------------------------------------------------------- 1 | query ($orderReferenceId: ID!, $shopId: ID!, $token: String) { 2 | orderByReferenceId(id: $orderReferenceId, shopId: $shopId, token: $token) { 3 | account { 4 | _id 5 | } 6 | shop { 7 | _id 8 | name 9 | } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /packages/api-plugin-carts/src/schemas/index.js: -------------------------------------------------------------------------------- 1 | import importAsString from "@reactioncommerce/api-utils/importAsString.js"; 2 | 3 | const cart = importAsString("./cart.graphql"); 4 | const checkout = importAsString("./checkout.graphql"); 5 | const subscription = importAsString("./subscription.graphql"); 6 | 7 | export default [cart, checkout, subscription]; 8 | -------------------------------------------------------------------------------- /packages/api-plugin-catalogs/src/resolvers/CatalogItemProduct/index.js: -------------------------------------------------------------------------------- 1 | import resolveShopFromShopId from "@reactioncommerce/api-utils/graphql/resolveShopFromShopId.js"; 2 | import { encodeCatalogItemOpaqueId } from "../../xforms/id.js"; 3 | 4 | export default { 5 | _id: (item) => encodeCatalogItemOpaqueId(item._id), 6 | shop: resolveShopFromShopId 7 | }; 8 | -------------------------------------------------------------------------------- /packages/api-plugin-orders/src/mutations/__snapshots__/updateOrder.test.js.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`throws if orderId isn't supplied 1`] = `"Order ID is required"`; 4 | 5 | exports[`throws if permission check fails 1`] = `"Access Denied"`; 6 | 7 | exports[`throws if the order doesn't exist 1`] = `"Order not found"`; 8 | -------------------------------------------------------------------------------- /packages/api-plugin-sample-data/src/json-data/Accounts.json: -------------------------------------------------------------------------------- 1 | { 2 | "emails": [ 3 | { 4 | "address": "admin@example.org", 5 | "verified": false, 6 | "provides": "default" 7 | } 8 | ], 9 | "name": null, 10 | "profile": {}, 11 | "shopId": null, 12 | "userId": "61b242582258c00013f58f3f" 13 | } 14 | -------------------------------------------------------------------------------- /apps/reaction/tests/integration/api/mutations2/removeAccountEmailRecord/RemoveAccountEmailRecordMutation.graphql: -------------------------------------------------------------------------------- 1 | mutation($input: RemoveAccountEmailRecordInput!) { 2 | removeAccountEmailRecord(input: $input) { 3 | account { 4 | _id 5 | name 6 | emailRecords { 7 | address 8 | } 9 | } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /apps/reaction/tests/integration/api/queries/anonymousCartByCartId/addCartItemsMutation.graphql: -------------------------------------------------------------------------------- 1 | mutation addCartItems( $cartId: ID!, $items: [CartItemInput]!, $cartToken: String ) { 2 | addCartItems( input: {cartId: $cartId, items: $items, cartToken: $cartToken} ){ 3 | cart { 4 | items { 5 | totalCount 6 | } 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /packages/api-plugin-authorization-simple/src/resolvers/index.js: -------------------------------------------------------------------------------- 1 | import getConnectionTypeResolvers from "@reactioncommerce/api-utils/graphql/getConnectionTypeResolvers.js"; 2 | import Query from "./Query/index.js"; 3 | import Shop from "./Shop/index.js"; 4 | 5 | export default { 6 | Query, 7 | Shop, 8 | ...getConnectionTypeResolvers("Role") 9 | }; 10 | -------------------------------------------------------------------------------- /packages/api-plugin-carts/src/resolvers/FulfillmentGroup/index.js: -------------------------------------------------------------------------------- 1 | import resolveShopFromShopId from "@reactioncommerce/api-utils/graphql/resolveShopFromShopId.js"; 2 | import { encodeFulfillmentGroupOpaqueId } from "../../xforms/id.js"; 3 | 4 | export default { 5 | _id: (node) => encodeFulfillmentGroupOpaqueId(node._id), 6 | shop: resolveShopFromShopId 7 | }; 8 | -------------------------------------------------------------------------------- /packages/api-plugin-email-templates/src/policies.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "description": "Shop managers acting on email settings.", 4 | "subjects": [ "reaction:groups:shop-managers" ], 5 | "resources": [ "reaction:legacy:email-templates" ], 6 | "actions": [ 7 | "read", 8 | "update" 9 | ], 10 | "effect": "allow" 11 | } 12 | ] 13 | -------------------------------------------------------------------------------- /packages/api-plugin-email/src/resolvers/index.js: -------------------------------------------------------------------------------- 1 | import getConnectionTypeResolvers from "@reactioncommerce/api-utils/graphql/getConnectionTypeResolvers.js"; 2 | import Mutation from "./Mutation/index.js"; 3 | import Query from "./Query/index.js"; 4 | 5 | export default { 6 | Mutation, 7 | Query, 8 | ...getConnectionTypeResolvers("EmailJob") 9 | }; 10 | -------------------------------------------------------------------------------- /packages/api-plugin-sample-data/src/json-data/ShippingMethod.json: -------------------------------------------------------------------------------- 1 | { 2 | "_id": "4YpRpvw7rGBoqnbxg", 3 | "name": "globalFlatRateGround", 4 | "label": "Global Flat Rate - Ground", 5 | "fulfillmentTypes": ["shipping"], 6 | "group": "Ground", 7 | "cost": 5, 8 | "handling": 2, 9 | "rate": 9, 10 | "isEnabled": true, 11 | "enabled": true 12 | } 13 | -------------------------------------------------------------------------------- /packages/api-plugin-shops/src/schemas/index.js: -------------------------------------------------------------------------------- 1 | import importAsString from "@reactioncommerce/api-utils/importAsString.js"; 2 | 3 | const createShop = importAsString("./createShop.graphql"); 4 | const schema = importAsString("./schema.graphql"); 5 | const updateShop = importAsString("./updateShop.graphql"); 6 | 7 | export default [createShop, schema, updateShop]; 8 | -------------------------------------------------------------------------------- /packages/api-plugin-taxes-flat-rate/src/util/getTaxCodes.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @param {Object} context App context 3 | * @param {String} shopId Shop to get tax codes for 4 | * @returns {Object[]} Array of tax codes 5 | */ 6 | export default async function getTaxCodes() { 7 | return [{ 8 | code: "RC_TAX", 9 | label: "Taxable (RC_TAX)" 10 | }]; 11 | } 12 | -------------------------------------------------------------------------------- /packages/api-plugin-pricing-simple/src/i18n/en.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "i18n": "en", 3 | "ns": "reaction-simple-pricing", 4 | "translation": { 5 | "reaction-simple-pricing": { 6 | "productVariant": { 7 | "noPriceTracking": "Prices are tracked only for sellable variants. Select an option to manage prices for it." 8 | } 9 | } 10 | } 11 | }] 12 | -------------------------------------------------------------------------------- /packages/api-plugin-sequences/src/config.js: -------------------------------------------------------------------------------- 1 | import { cleanEnv, json } from "envalid"; 2 | import * as dotenv from "dotenv"; 3 | 4 | 5 | // this is required for envalid 7 or greater which was required to make json work 6 | dotenv.config(); 7 | 8 | export default cleanEnv(process.env, { 9 | SEQUENCE_INITIAL_VALUES: json({ default: { entity: 999 } }) 10 | }); 11 | -------------------------------------------------------------------------------- /apps/reaction/tests/integration/api/mutations1/addAccountEmailRecord/AddAccountEmailRecordMutation.graphql: -------------------------------------------------------------------------------- 1 | mutation ($accountId: ID, $email: Email!) { 2 | addAccountEmailRecord(input: { accountId: $accountId, email: $email }) { 3 | account { 4 | _id 5 | emailRecords { 6 | address 7 | verified 8 | } 9 | } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /packages/api-plugin-address-validation/src/i18n/index.js: -------------------------------------------------------------------------------- 1 | import en from "./en.json" assert { type: "json" }; 2 | import es from "./es.json" assert { type: "json" }; 3 | 4 | // 5 | // we want all the files in individual 6 | // imports for easier handling by 7 | // automated translation software 8 | // 9 | export default { 10 | translations: [...en, ...es] 11 | }; 12 | -------------------------------------------------------------------------------- /packages/api-plugin-email-templates/src/resolvers/index.js: -------------------------------------------------------------------------------- 1 | import getConnectionTypeResolvers from "@reactioncommerce/api-utils/graphql/getConnectionTypeResolvers.js"; 2 | import Query from "./Query/index.js"; 3 | import Mutation from "./Mutation/index.js"; 4 | 5 | export default { 6 | Query, 7 | Mutation, 8 | ...getConnectionTypeResolvers("Template") 9 | }; 10 | -------------------------------------------------------------------------------- /packages/api-plugin-promotions/src/resolvers/index.js: -------------------------------------------------------------------------------- 1 | import getConnectionTypeResolvers from "@reactioncommerce/api-utils/graphql/getConnectionTypeResolvers.js"; 2 | import Mutation from "./Mutation/index.js"; 3 | import Query from "./Query/index.js"; 4 | 5 | 6 | export default { 7 | Mutation, 8 | Query, 9 | ...getConnectionTypeResolvers("Promotion") 10 | }; 11 | -------------------------------------------------------------------------------- /apps/reaction/tests/integration/api/mutations1/recalculateReservedSimpleInventory/recalculateReservedSimpleInventory.graphql: -------------------------------------------------------------------------------- 1 | mutation recalculateReservedSimpleInventory($input: RecalculateReservedSimpleInventoryInput!) { 2 | recalculateReservedSimpleInventory(input: $input ){ 3 | inventoryInfo { 4 | inventoryInStock 5 | inventoryReserved 6 | } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /packages/api-plugin-authentication/src/config.js: -------------------------------------------------------------------------------- 1 | import envalid from "envalid"; 2 | 3 | const { str } = envalid; 4 | 5 | export default envalid.cleanEnv( 6 | process.env, 7 | { 8 | STORE_URL: str({ devDefault: "http://localhost:4000" }), 9 | TOKEN_SECRET: str({ default: "UPDATE_THIS_SECRET" }) 10 | }, 11 | { 12 | dotEnvPath: null 13 | } 14 | ); 15 | -------------------------------------------------------------------------------- /packages/api-plugin-payments/src/queries/index.js: -------------------------------------------------------------------------------- 1 | import availablePaymentMethods from "./availablePaymentMethods.js"; 2 | import getPaymentMethodConfigByName from "./getPaymentMethodConfigByName.js"; 3 | import paymentMethods from "./paymentMethods.js"; 4 | 5 | export default { 6 | availablePaymentMethods, 7 | getPaymentMethodConfigByName, 8 | paymentMethods 9 | }; 10 | -------------------------------------------------------------------------------- /packages/api-plugin-products/src/mutations/__snapshots__/archiveProducts.test.js.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`throws if permission check fails 1`] = `"Access Denied"`; 4 | 5 | exports[`throws if the productIds isn't supplied 1`] = `"Product ids is required"`; 6 | 7 | exports[`throws if the shopId isn't supplied 1`] = `"Shop ID is required"`; 8 | -------------------------------------------------------------------------------- /packages/api-plugin-products/src/mutations/__snapshots__/cloneProducts.test.js.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`throws if permission check fails 1`] = `"Access Denied"`; 4 | 5 | exports[`throws if the productIds isn't supplied 1`] = `"Product ids is required"`; 6 | 7 | exports[`throws if the shopId isn't supplied 1`] = `"Shop ID is required"`; 8 | -------------------------------------------------------------------------------- /packages/api-plugin-promotions-coupons/src/config.js: -------------------------------------------------------------------------------- 1 | import { cleanEnv, json } from "envalid"; 2 | import * as dotenv from "dotenv"; 3 | 4 | 5 | // this is required for envalid 7 or greater which was required to make json work 6 | dotenv.config(); 7 | 8 | export default cleanEnv(process.env, { 9 | SEQUENCE_INITIAL_VALUES: json({ default: { entity: 999 } }) 10 | }); 11 | -------------------------------------------------------------------------------- /packages/api-plugin-accounts/src/util/accountByUserId.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @summary Return an account, given a user ID 3 | * @param {Object} context App context 4 | * @param {String} userId User ID 5 | * @return {Promise} Account 6 | */ 7 | export default function accountByUserId(context, userId) { 8 | return context.collections.Accounts.findOne({ userId }); 9 | } 10 | -------------------------------------------------------------------------------- /packages/api-plugin-catalogs/src/mutations/index.js: -------------------------------------------------------------------------------- 1 | import applyCustomPublisherTransforms from "./applyCustomPublisherTransforms.js"; 2 | import publishProducts from "./publishProducts.js"; 3 | import partialProductPublish from "./partialProductPublish.js"; 4 | 5 | export default { 6 | applyCustomPublisherTransforms, 7 | partialProductPublish, 8 | publishProducts 9 | }; 10 | -------------------------------------------------------------------------------- /packages/api-plugin-inventory-simple/src/policies.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "description": "Inventory managers acting on a single product inventory.", 4 | "subjects": [ "reaction:groups:inventory-managers" ], 5 | "resources": [ "reaction:legacy:inventory:*" ], 6 | "actions": [ 7 | "read", 8 | "update" 9 | ], 10 | "effect": "allow" 11 | } 12 | ] 13 | -------------------------------------------------------------------------------- /packages/api-plugin-payments/src/mutations/index.js: -------------------------------------------------------------------------------- 1 | import approveOrderPayments from "./approveOrderPayments.js"; 2 | import captureOrderPayments from "./captureOrderPayments.js"; 3 | import enablePaymentMethodForShop from "./enablePaymentMethodForShop.js"; 4 | 5 | export default { 6 | approveOrderPayments, 7 | captureOrderPayments, 8 | enablePaymentMethodForShop 9 | }; 10 | -------------------------------------------------------------------------------- /packages/api-plugin-products/src/mutations/__snapshots__/cloneProductVariants.test.js.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`throws if permission check fails 1`] = `"Access Denied"`; 4 | 5 | exports[`throws if the shopId isn't supplied 1`] = `"Shop ID is required"`; 6 | 7 | exports[`throws if the variantIds isn't supplied 1`] = `"Variant ids is required"`; 8 | -------------------------------------------------------------------------------- /packages/api-plugin-products/src/mutations/__snapshots__/createProductVariant.test.js.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`throws if permission check fails 1`] = `"Access Denied"`; 4 | 5 | exports[`throws if the productId isn't supplied 1`] = `"Product ID is required"`; 6 | 7 | exports[`throws if the shopId isn't supplied 1`] = `"Shop ID is required"`; 8 | -------------------------------------------------------------------------------- /packages/api-plugin-address-validation/src/queries/index.js: -------------------------------------------------------------------------------- 1 | import addressValidation from "./addressValidation.js"; 2 | import addressValidationRules from "./addressValidationRules.js"; 3 | import addressValidationServices from "./addressValidationServices.js"; 4 | 5 | export default { 6 | addressValidation, 7 | addressValidationRules, 8 | addressValidationServices 9 | }; 10 | -------------------------------------------------------------------------------- /packages/api-plugin-sitemap-generator/src/schemas/settings.graphql: -------------------------------------------------------------------------------- 1 | extend type ShopSettings { 2 | "This setting controls how often the sitemaps for the shop will be rebuilt" 3 | sitemapRefreshPeriod: String! 4 | } 5 | 6 | extend input ShopSettingsUpdates { 7 | "This setting controls how often the sitemaps for the shop will be rebuilt" 8 | sitemapRefreshPeriod: String 9 | } 10 | -------------------------------------------------------------------------------- /packages/api-plugin-taxes-flat-rate/src/resolvers/TaxRate/index.js: -------------------------------------------------------------------------------- 1 | import resolveShopFromShopId from "@reactioncommerce/api-utils/graphql/resolveShopFromShopId.js"; 2 | import { encodeTaxRateOpaqueId } from "../../xforms/id.js"; 3 | 4 | export default { 5 | _id: (node) => encodeTaxRateOpaqueId(node._id), 6 | shop: resolveShopFromShopId, 7 | sourcing: (node) => node.taxLocale 8 | }; 9 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | indent_style = space 5 | indent_size = 2 6 | end_of_line = lf 7 | charset = utf-8 8 | trim_trailing_whitespace = true 9 | insert_final_newline = true 10 | 11 | [*.md] 12 | trim_trailing_whitespace = false 13 | 14 | [*.js] 15 | max_line_length = 120 16 | indent_brace_style = 1TBS 17 | spaces_around_operators = true 18 | quote_type = double 19 | -------------------------------------------------------------------------------- /packages/api-plugin-address-validation/src/resolvers/Query/index.js: -------------------------------------------------------------------------------- 1 | import addressValidation from "./addressValidation.js"; 2 | import addressValidationRules from "./addressValidationRules.js"; 3 | import addressValidationServices from "./addressValidationServices.js"; 4 | 5 | export default { 6 | addressValidation, 7 | addressValidationRules, 8 | addressValidationServices 9 | }; 10 | -------------------------------------------------------------------------------- /packages/api-plugin-payments/src/resolvers/Mutation/index.js: -------------------------------------------------------------------------------- 1 | import approveOrderPayments from "./approveOrderPayments.js"; 2 | import captureOrderPayments from "./captureOrderPayments.js"; 3 | import enablePaymentMethodForShop from "./enablePaymentMethodForShop.js"; 4 | 5 | export default { 6 | approveOrderPayments, 7 | captureOrderPayments, 8 | enablePaymentMethodForShop 9 | }; 10 | -------------------------------------------------------------------------------- /packages/api-plugin-shops/src/resolvers/Query/index.js: -------------------------------------------------------------------------------- 1 | import primaryShopId from "./primaryShopId.js"; 2 | import primaryShop from "./primaryShop.js"; 3 | import shop from "./shop.js"; 4 | import shopBySlug from "./shopBySlug.js"; 5 | import shops from "./shops.js"; 6 | 7 | export default { 8 | primaryShopId, 9 | primaryShop, 10 | shop, 11 | shopBySlug, 12 | shops 13 | }; 14 | -------------------------------------------------------------------------------- /packages/api-plugin-tags/src/resolvers/Tag/index.js: -------------------------------------------------------------------------------- 1 | import { encodeTagOpaqueId } from "../../xforms/id.js"; 2 | import heroMediaUrl from "./heroMediaUrl.js"; 3 | import subTags from "./subTags.js"; 4 | 5 | export default { 6 | _id: (tag) => encodeTagOpaqueId(tag._id), 7 | heroMediaUrl, 8 | subTagIds: (tag) => (tag.relatedTagIds || []).map(encodeTagOpaqueId), 9 | subTags 10 | }; 11 | -------------------------------------------------------------------------------- /apps/reaction/tests/integration/api/mutations2/setAccountDefaultEmail/SetAccountDefaultEmailMutation.graphql: -------------------------------------------------------------------------------- 1 | mutation ($accountId: ID, $email: Email!) { 2 | setAccountDefaultEmail(input: { accountId: $accountId, email: $email }) { 3 | account { 4 | _id 5 | emailRecords { 6 | address 7 | provides 8 | verified 9 | } 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /packages/api-plugin-fulfillment-method-pickup-store/src/schemas/schema.graphql: -------------------------------------------------------------------------------- 1 | "Additional data fields from Store" 2 | type StoreFields { 3 | storeId: String 4 | storeAddress: String 5 | storeTiming: String 6 | } 7 | 8 | "Additional Store data - Pickup" 9 | type storeData { 10 | gqlType: String 11 | storeData: [StoreFields] 12 | } 13 | 14 | extend union AdditionalData = storeData 15 | -------------------------------------------------------------------------------- /packages/api-plugin-inventory-simple/src/i18n/index.js: -------------------------------------------------------------------------------- 1 | import en from "./en.json" assert { type: "json" }; 2 | import es from "./es.json" assert { type: "json" }; 3 | 4 | // 5 | // we want all the files in individual 6 | // imports for easier handling by 7 | // automated translation software 8 | // 9 | export default { 10 | translations: [ 11 | ...en, 12 | ...es 13 | ] 14 | }; 15 | -------------------------------------------------------------------------------- /packages/api-utils/lib/hashToken.js: -------------------------------------------------------------------------------- 1 | import crypto from "crypto"; 2 | 3 | /** 4 | * @summary This is Meteor's Accounts._hashLoginToken 5 | * @param {String} token A token 6 | * @returns {String} Hashed token string 7 | */ 8 | export default function hashToken(token) { 9 | const hash = crypto.createHash("sha256"); 10 | hash.update(token); 11 | return hash.digest("base64"); 12 | } 13 | -------------------------------------------------------------------------------- /packages/random/src/server.js: -------------------------------------------------------------------------------- 1 | 2 | import nodeCrypto from "crypto"; 3 | import RandomGenerator from "./RandomGenerator"; 4 | 5 | const Random = new RandomGenerator({ nodeCrypto }); 6 | 7 | Random.createWithSeeds = (...seeds) => { 8 | if (seeds.length === 0) throw new Error("No seeds were provided"); 9 | return new RandomGenerator({ seeds }); 10 | }; 11 | 12 | export default Random; 13 | -------------------------------------------------------------------------------- /packages/api-core/src/graphql/resolvers/Money.js: -------------------------------------------------------------------------------- 1 | import getCurrencyDefinitionByCode from "@reactioncommerce/api-utils/getCurrencyDefinitionByCode.js"; 2 | import formatMoney from "@reactioncommerce/api-utils/formatMoney.js"; 3 | 4 | export default { 5 | currency: (node) => getCurrencyDefinitionByCode(node.currencyCode), 6 | displayAmount: (node) => formatMoney(node.amount, node.currencyCode) 7 | }; 8 | -------------------------------------------------------------------------------- /packages/api-plugin-accounts/src/resolvers/Group/index.js: -------------------------------------------------------------------------------- 1 | import resolveShopFromShopId from "@reactioncommerce/api-utils/graphql/resolveShopFromShopId.js"; 2 | import { encodeGroupOpaqueId } from "../../xforms/id.js"; 3 | import createdBy from "./createdBy.js"; 4 | 5 | export default { 6 | _id: (node) => encodeGroupOpaqueId(node._id), 7 | createdBy, 8 | shop: resolveShopFromShopId 9 | }; 10 | -------------------------------------------------------------------------------- /packages/api-plugin-fulfillment/src/resolvers/index.js: -------------------------------------------------------------------------------- 1 | import FulfillmentMethod from "./FulfillmentMethod/index.js"; 2 | import Mutation from "./Mutation/index.js"; 3 | import Query from "./Query/index.js"; 4 | 5 | export default { 6 | FulfillmentMethod, 7 | Mutation, 8 | Query, 9 | AdditionalData: { 10 | __resolveType(obj) { 11 | return obj.gqlType; 12 | } 13 | } 14 | }; 15 | -------------------------------------------------------------------------------- /packages/api-plugin-promotions-discounts/src/utils/formatMoney.js: -------------------------------------------------------------------------------- 1 | import accounting from "accounting-js"; 2 | 3 | /** 4 | * @summary Formats a number as money with 2 decimal places 5 | * @param {Number} amount - The amount to format 6 | * @returns {String} The formatted amount 7 | */ 8 | export default function formatMoney(amount) { 9 | return Number(accounting.toFixed(amount, 2)); 10 | } 11 | -------------------------------------------------------------------------------- /packages/api-plugin-accounts/migrations/index.js: -------------------------------------------------------------------------------- 1 | import { migrationsNamespace } from "./migrationsNamespace.js"; 2 | import migration2 from "./2.js"; 3 | import migration3 from "./3.js"; 4 | 5 | export default { 6 | tracks: [ 7 | { 8 | namespace: migrationsNamespace, 9 | migrations: { 10 | 2: migration2, 11 | 3: migration3 12 | } 13 | } 14 | ] 15 | }; 16 | -------------------------------------------------------------------------------- /packages/api-plugin-orders/src/queries/__snapshots__/refunds.test.js.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`throws if orderId isn't supplied 1`] = `"You must provide orderId and shopId arguments"`; 4 | 5 | exports[`throws if shopId isn't supplied 1`] = `"You must provide orderId and shopId arguments"`; 6 | 7 | exports[`throws if the order doesn't exist 1`] = `"Order not found"`; 8 | -------------------------------------------------------------------------------- /packages/api-plugin-orders/src/resolvers/Refund/index.js: -------------------------------------------------------------------------------- 1 | import { encodePaymentOpaqueId, encodeRefundOpaqueId } from "../../xforms/id.js"; 2 | import amount from "./amount.js"; 3 | import createdAt from "./createdAt.js"; 4 | 5 | export default { 6 | _id: (node) => encodeRefundOpaqueId(node._id), 7 | amount, 8 | createdAt, 9 | paymentId: (node) => encodePaymentOpaqueId(node.paymentId) 10 | }; 11 | -------------------------------------------------------------------------------- /apps/reaction/tests/integration/api/mutations1/cloneProductVariants/cloneProductVariants.graphql: -------------------------------------------------------------------------------- 1 | mutation cloneProductVariants($input: CloneProductVariantsInput!) { 2 | cloneProductVariants(input: $input) { 3 | variants { 4 | isDeleted 5 | isVisible 6 | options { 7 | title 8 | } 9 | shop { 10 | _id 11 | } 12 | title 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /apps/reaction/tests/integration/api/queries/simpleInventory/simpleInventoryQuery.graphql: -------------------------------------------------------------------------------- 1 | query simpleInventoryQuery($shopId: ID!, $productConfiguration: ProductConfigurationInput!) { 2 | simpleInventory(shopId: $shopId, productConfiguration: $productConfiguration) { 3 | canBackorder 4 | inventoryInStock 5 | inventoryReserved 6 | isEnabled 7 | lowInventoryWarningThreshold 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/questions.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: ❓ Questions/Help 3 | about: If you have questions, please check our Discord server 4 | labels: 'questions' 5 | --- 6 | 7 | ## ❓ Questions and Help 8 | 9 | ### Please note that this issue tracker is not a help form and this issue will be closed. 10 | 11 | Please contact us instead. We are active on Discord: 12 | 13 | - [Discord](https://discord.gg/Bwm63tBcQY) 14 | -------------------------------------------------------------------------------- /packages/api-plugin-accounts/src/i18n/he.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "i18n": "he", 3 | "ns": "reaction-accounts", 4 | "translation": { 5 | "reaction-accounts": { 6 | "admin": { 7 | "settings": { 8 | "cancel": "בטל" 9 | }, 10 | "groupsInvite": { 11 | "NeedToSetUsernameOrEmail": "חובה להגדיר שם משתמש או דוא\"ל" 12 | } 13 | } 14 | } 15 | } 16 | }] 17 | -------------------------------------------------------------------------------- /packages/api-plugin-address-validation/src/simpleSchemas.js: -------------------------------------------------------------------------------- 1 | import SimpleSchema from "simpl-schema"; 2 | 3 | export const AddressValidationRule = new SimpleSchema({ 4 | "_id": String, 5 | "countryCodes": { 6 | type: Array, 7 | optional: true 8 | }, 9 | "countryCodes.$": String, 10 | "createdAt": Date, 11 | "serviceName": String, 12 | "shopId": String, 13 | "updatedAt": Date 14 | }); 15 | -------------------------------------------------------------------------------- /packages/api-plugin-payments-stripe-sca/src/util/constants.js: -------------------------------------------------------------------------------- 1 | export const STRIPE_PACKAGE_NAME = "payments-stripe-sca"; 2 | export const METHOD = "credit"; 3 | export const PAYMENT_METHOD_NAME = "stripe_payment_intent"; 4 | export const PROCESSOR = "Stripe"; 5 | 6 | // Stripe risk levels mapped to Reaction risk levels 7 | export const riskLevelMap = { 8 | elevated: "elevated", 9 | highest: "high" 10 | }; 11 | -------------------------------------------------------------------------------- /packages/api-plugin-promotions-coupons/src/queries/index.js: -------------------------------------------------------------------------------- 1 | import coupon from "./coupon.js"; 2 | import coupons from "./coupons.js"; 3 | import couponLog from "./couponLog.js"; 4 | import couponLogs from "./couponLogs.js"; 5 | import couponLogByOrderId from "./couponLogByOrderId.js"; 6 | 7 | export default { 8 | coupon, 9 | coupons, 10 | couponLog, 11 | couponLogs, 12 | couponLogByOrderId 13 | }; 14 | -------------------------------------------------------------------------------- /packages/api-plugin-promotions/src/utils/isPromotionExpired.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @summary check if promotion is expired 3 | * @param {Object} promotion - The promotion to check 4 | * @returns {Boolean} - Whether the promotion is expired 5 | */ 6 | export default function isPromotionExpired(promotion) { 7 | const { endDate } = promotion; 8 | const now = Date.now(); 9 | return endDate && endDate < now; 10 | } 11 | -------------------------------------------------------------------------------- /packages/api-utils/lib/isOpaqueId.test.js: -------------------------------------------------------------------------------- 1 | import isOpaqueId from "./isOpaqueId.js"; 2 | 3 | test("returns true for opaqueId", () => { 4 | const encodedId = "cmVhY3Rpb24vc2hvcDpieTV3cGRnM25NcThnWDU0Yw=="; 5 | expect(isOpaqueId(encodedId)).toEqual(true); 6 | }); 7 | 8 | test("returns false for internal id", () => { 9 | const id = "by5wpdg3nMq8gX54c"; 10 | expect(isOpaqueId(id)).toEqual(false); 11 | }); 12 | -------------------------------------------------------------------------------- /apps/reaction/tests/integration/api/mutations2/updateSimpleInventory/simpleInventoryQuery.graphql: -------------------------------------------------------------------------------- 1 | query simpleInventoryQuery($shopId: ID!, $productConfiguration: ProductConfigurationInput!) { 2 | simpleInventory(shopId: $shopId, productConfiguration: $productConfiguration) { 3 | canBackorder 4 | inventoryInStock 5 | inventoryReserved 6 | isEnabled 7 | lowInventoryWarningThreshold 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /apps/reaction/tests/integration/api/mutations2/updateSimpleInventory/updateSimpleInventoryMutation.graphql: -------------------------------------------------------------------------------- 1 | mutation updateSimpleInventoryMutation($input: UpdateSimpleInventoryInput!) { 2 | updateSimpleInventory(input: $input) { 3 | inventoryInfo { 4 | canBackorder 5 | inventoryInStock 6 | inventoryReserved 7 | isEnabled 8 | lowInventoryWarningThreshold 9 | } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /packages/api-plugin-orders/src/preStartup.js: -------------------------------------------------------------------------------- 1 | import { extendOrdersSchemas } from "./simpleSchemas.js"; 2 | 3 | /** 4 | * @summary Called before startup 5 | * @param {Object} context Startup context 6 | * @param {Object} context.simpleSchemas Map of SimpleSchemas 7 | * @returns {undefined} 8 | */ 9 | export default function ordersPreStartup(context) { 10 | extendOrdersSchemas(context.simpleSchemas); 11 | } 12 | -------------------------------------------------------------------------------- /packages/api-plugin-payments-example/src/startup.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @summary Called on startup 3 | * @param {Object} context Startup context 4 | * @param {Object} context.collections Map of MongoDB collections 5 | * @returns {undefined} 6 | */ 7 | export default function exampleIOUPaymentsStartup(context) { 8 | context.collections.ExampleIOUPaymentRefunds = context.app.db.collection("ExampleIOUPaymentRefunds"); 9 | } 10 | -------------------------------------------------------------------------------- /packages/api-plugin-promotions-coupons/src/utils/isPromotionExpired.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @summary check if promotion is expired 3 | * @param {Object} promotion - The promotion to check 4 | * @returns {Boolean} - Whether the promotion is expired 5 | */ 6 | export default function isPromotionExpired(promotion) { 7 | const { endDate } = promotion; 8 | const now = Date.now(); 9 | return endDate && endDate < now; 10 | } 11 | -------------------------------------------------------------------------------- /packages/api-plugin-promotions/src/resolvers/Mutation/index.js: -------------------------------------------------------------------------------- 1 | import updatePromotion from "./updatePromotion.js"; 2 | import createPromotion from "./createPromotion.js"; 3 | import duplicatePromotion from "./duplicatePromotion.js"; 4 | import archivePromotion from "./archivePromotion.js"; 5 | 6 | export default { 7 | updatePromotion, 8 | createPromotion, 9 | duplicatePromotion, 10 | archivePromotion 11 | }; 12 | -------------------------------------------------------------------------------- /packages/api-plugin-shipments-flat-rate/src/resolvers/FlatRateFulfillmentMethod/index.js: -------------------------------------------------------------------------------- 1 | import resolveShopFromShopId from "@reactioncommerce/api-utils/graphql/resolveShopFromShopId.js"; 2 | import { encodeFulfillmentMethodOpaqueId } from "../../xforms/id.js"; 3 | 4 | export default { 5 | _id: (node) => encodeFulfillmentMethodOpaqueId(node._id), 6 | shop: resolveShopFromShopId, 7 | isEnabled: (node) => !!node.enabled 8 | }; 9 | -------------------------------------------------------------------------------- /packages/api-plugin-taxes/src/preStartup.js: -------------------------------------------------------------------------------- 1 | import { extendTaxesSchemas } from "./simpleSchemas.js"; 2 | 3 | /** 4 | * @summary Called before startup 5 | * @param {Object} context Startup context 6 | * @param {Object} context.collections Map of MongoDB collections 7 | * @returns {undefined} 8 | */ 9 | export default async function taxesPreStartup(context) { 10 | extendTaxesSchemas(context.simpleSchemas); 11 | } 12 | -------------------------------------------------------------------------------- /apps/reaction/tests/integration/api/mutations2/updateAccount/UpdateAccountMutation.graphql: -------------------------------------------------------------------------------- 1 | mutation UpdateAccountMutation($input: UpdateAccountInput!) { 2 | updateAccount(input: $input) { 3 | account { 4 | bio 5 | currency { 6 | code 7 | } 8 | language 9 | firstName 10 | lastName 11 | name 12 | note 13 | picture 14 | username 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /apps/reaction/tests/integration/api/mutations2/updateProductVariantPrices/updateProductVariantPricesMutation.graphql: -------------------------------------------------------------------------------- 1 | mutation($variantId: ID!, $shopId: ID!, $prices: ProductVariantPricesInput!) { 2 | updateProductVariantPrices(input: { 3 | variantId: $variantId 4 | shopId: $shopId 5 | prices: $prices 6 | }) { 7 | variant { 8 | _id 9 | compareAtPrice 10 | price 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /apps/reaction/tests/integration/api/queries/addressValidation/AddressValidationQuery.graphql: -------------------------------------------------------------------------------- 1 | 2 | query ($address: AddressInput!, $shopId: ID!) { 3 | addressValidation(address: $address, shopId: $shopId) { 4 | suggestedAddresses { 5 | address1 6 | address2 7 | city 8 | country 9 | postal 10 | region 11 | } 12 | validationErrors { 13 | summary 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /packages/api-plugin-email-smtp/src/startup.js: -------------------------------------------------------------------------------- 1 | import sendSMTPEmail from "./util/sendSMTPEmail.js"; 2 | 3 | /** 4 | * @name startup 5 | * @summary Called on startup. Initializes SMTP email handler. 6 | * @param {Object} context App context 7 | * @returns {undefined} 8 | */ 9 | export default function emailSMTPStartup(context) { 10 | context.appEvents.on("sendEmail", (...args) => sendSMTPEmail(context, ...args)); 11 | } 12 | -------------------------------------------------------------------------------- /packages/api-plugin-inventory-simple/src/mutations/index.js: -------------------------------------------------------------------------------- 1 | import recalculateReservedSimpleInventory from "./recalculateReservedSimpleInventory.js"; 2 | import updateSimpleInventory from "./updateSimpleInventory.js"; 3 | import updateSimpleInventoryBulk from "./updateSimpleInventoryBulk.js"; 4 | 5 | export default { 6 | recalculateReservedSimpleInventory, 7 | updateSimpleInventoryBulk, 8 | updateSimpleInventory 9 | }; 10 | -------------------------------------------------------------------------------- /packages/api-utils/lib/graphql/__snapshots__/applyBeforeAfterToFilter.test.js.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`throws an error if both before and after are set 1`] = `"Including both 'after' and 'before' params is not allowed"`; 4 | 5 | exports[`throws an error if sortBy is missing 1`] = `"sortBy is required"`; 6 | 7 | exports[`throws an error if sortOrder is missing 1`] = `"sortOrder is required"`; 8 | -------------------------------------------------------------------------------- /apps/reaction/tests/integration/api/mutations2/shippingRates/CreateFlatRateFulfillmentMethodMutation.graphql: -------------------------------------------------------------------------------- 1 | mutation($input: CreateFlatRateFulfillmentMethodInput!) { 2 | createFlatRateFulfillmentMethod(input: $input) { 3 | method { 4 | cost 5 | fulfillmentTypes 6 | group 7 | handling 8 | isEnabled 9 | label 10 | name 11 | rate 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /packages/api-plugin-accounts/src/i18n/nb.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "i18n": "nb", 3 | "ns": "reaction-accounts", 4 | "translation": { 5 | "reaction-accounts": { 6 | "admin": { 7 | "settings": { 8 | "cancel": "Avbryt" 9 | }, 10 | "groupsInvite": { 11 | "NeedToSetUsernameOrEmail": "Du må angi et brukernavn eller en epost adresse" 12 | } 13 | } 14 | } 15 | } 16 | }] 17 | -------------------------------------------------------------------------------- /packages/api-plugin-address-validation/src/mutations/index.js: -------------------------------------------------------------------------------- 1 | import createAddressValidationRule from "./createAddressValidationRule.js"; 2 | import deleteAddressValidationRule from "./deleteAddressValidationRule.js"; 3 | import updateAddressValidationRule from "./updateAddressValidationRule.js"; 4 | 5 | export default { 6 | createAddressValidationRule, 7 | deleteAddressValidationRule, 8 | updateAddressValidationRule 9 | }; 10 | -------------------------------------------------------------------------------- /packages/api-plugin-inventory/src/utils/preStartup.js: -------------------------------------------------------------------------------- 1 | import { extendInventorySchemas } from "../simpleSchemas.js"; 2 | 3 | /** 4 | * @summary Called pre startup 5 | * @param {Object} context Startup context 6 | * @param {Object} context.simpleSchemas Simple schemas 7 | * @returns {undefined} 8 | */ 9 | export default async function inventoryPreStartup(context) { 10 | extendInventorySchemas(context.simpleSchemas); 11 | } 12 | -------------------------------------------------------------------------------- /packages/api-plugin-pricing-simple/src/util/mutateNewVariantBeforeCreate.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @summary Mutates a new top-level Product being created 3 | * @param {Object} variant Variant product object to mutate 4 | * @returns {undefined} 5 | */ 6 | export default function mutateNewVariantBeforeCreateForSimplePricing(variant) { 7 | if (!variant.price) variant.price = 0; 8 | if (!variant.priceType) variant.priceType = "full"; 9 | } 10 | -------------------------------------------------------------------------------- /packages/api-plugin-pricing-simple/src/preStartup.js: -------------------------------------------------------------------------------- 1 | import { extendSimplePricingSchemas } from "./simpleSchemas.js"; 2 | 3 | /** 4 | * @method preStartup 5 | * @summary Simple pricing preStartup function. 6 | * @param {Object} context - App context. 7 | * @returns {undefined} - void, no return. 8 | */ 9 | export default function simplePricingPreStartup(context) { 10 | extendSimplePricingSchemas(context.simpleSchemas); 11 | } 12 | -------------------------------------------------------------------------------- /packages/api-plugin-promotions-offers/src/facts/index.js: -------------------------------------------------------------------------------- 1 | import totalItemAmount from "./totalItemAmount.js"; 2 | import totalItemCount from "./totalItemCount.js"; 3 | import getEligibleItems from "./getEligibleItems.js"; 4 | import getKeyValueArray from "./getKeyValueArray.js"; 5 | 6 | export default { 7 | totalItemAmount, 8 | totalItemCount, 9 | eligibleItems: getEligibleItems, 10 | keyValueArray: getKeyValueArray 11 | }; 12 | -------------------------------------------------------------------------------- /packages/api-plugin-shops/src/resolvers/Shop/index.js: -------------------------------------------------------------------------------- 1 | import getCurrencyDefinitionByCode from "@reactioncommerce/api-utils/getCurrencyDefinitionByCode.js"; 2 | import { encodeShopOpaqueId } from "../../xforms/id.js"; 3 | import brandAssets from "./brandAssets.js"; 4 | 5 | export default { 6 | _id: (node) => encodeShopOpaqueId(node._id), 7 | brandAssets, 8 | currency: (shop) => getCurrencyDefinitionByCode(shop.currency) 9 | }; 10 | -------------------------------------------------------------------------------- /apps/reaction/tests/integration/api/mutations1/checkout/ReconcileCartsMutation.graphql: -------------------------------------------------------------------------------- 1 | mutation ReconcileCarts($input: ReconcileCartsInput!) { 2 | reconcileCarts(input: $input) { 3 | cart { 4 | _id 5 | email 6 | items { 7 | nodes { 8 | _id 9 | title 10 | quantity 11 | price { 12 | amount 13 | } 14 | } 15 | } 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /packages/api-plugin-address-validation/src/resolvers/Mutation/index.js: -------------------------------------------------------------------------------- 1 | import createAddressValidationRule from "./createAddressValidationRule.js"; 2 | import deleteAddressValidationRule from "./deleteAddressValidationRule.js"; 3 | import updateAddressValidationRule from "./updateAddressValidationRule.js"; 4 | 5 | export default { 6 | createAddressValidationRule, 7 | deleteAddressValidationRule, 8 | updateAddressValidationRule 9 | }; 10 | -------------------------------------------------------------------------------- /packages/api-plugin-fulfillment-method-shipping-flat-rate/src/resolvers/FlatRateFulfillmentMethod/index.js: -------------------------------------------------------------------------------- 1 | import resolveShopFromShopId from "@reactioncommerce/api-utils/graphql/resolveShopFromShopId.js"; 2 | import { encodeFulfillmentMethodOpaqueId } from "../../xforms/id.js"; 3 | 4 | export default { 5 | _id: (node) => encodeFulfillmentMethodOpaqueId(node._id), 6 | shop: resolveShopFromShopId, 7 | isEnabled: (node) => !!node.enabled 8 | }; 9 | -------------------------------------------------------------------------------- /packages/api-plugin-payments-stripe-sca/src/config.js: -------------------------------------------------------------------------------- 1 | import envalid from "envalid"; 2 | 3 | const { str, testOnly } = envalid; 4 | 5 | export default envalid.cleanEnv( 6 | process.env, 7 | { 8 | STRIPE_API_KEY: str({ 9 | desc: "A private Stripe API key", 10 | devDefault: testOnly("YOUR_PRIVATE_STRIPE_API_KEY"), 11 | default: "ABC" 12 | }) 13 | }, 14 | { 15 | dotEnvPath: null 16 | } 17 | ); 18 | 19 | -------------------------------------------------------------------------------- /packages/api-plugin-shipments-flat-rate/src/resolvers/ShopSettings/index.js: -------------------------------------------------------------------------------- 1 | // ShopSettings are public by default. Here we add a permission check. 2 | export default { 3 | async isShippingRatesFulfillmentEnabled(settings, args, context) { 4 | await context.validatePermissions("reaction:legacy:fulfillment", "read", { 5 | shopId: settings.shopId 6 | }); 7 | return settings.isShippingRatesFulfillmentEnabled; 8 | } 9 | }; 10 | --------------------------------------------------------------------------------