Commit Graph

1498 Commits

Author SHA1 Message Date
Sebastian Rindom
f8138afa36 feat(medusa-dev-cli): adds helpers to manage feature flags (#1770)
**Usage**

**Create a new feature flag**
```
$ medusa-dev ff create [name of flag] -d [description of what flag is for]
```
Will put a new file in `packages/medusa/src/loaders/feature-flags/[kebab-cased-flag-name].ts` and fill out the details.

**List feature flags**
```
$ medusa-dev ff list
```
Note: your Medusa repo must be built for the flags to show up

**Delete a feature flag**
```
$ medusa-dev ff delete [name of flag]
```
Will delete a file at `packages/medusa/src/loaders/feature-flags/[kebab-cased-flag-name].ts` if it exists.
2022-07-05 07:33:46 +00:00
Frane Polić
f9c3218aac feat(medusa): Sales Channels model (#1782)
**What**
- added `SalesChannel` entity
- added `SalesChannel` repository
- added `SalesChannel` relations to the order, cart and store entities
- added a migrations file

**How**
- introduced entities and relations under a new feature flag "sales-channels"

Fixes CORE-271

Co-authored-by: Philip Korsholm <88927411+pKorsholm@users.noreply.github.com>
2022-07-05 07:31:11 +00:00
Sebastian Rindom
9a14b84e58 fix: introduce listAndCount for gift cards to enable pagination (#1754)
**What**
Proper `listAndCount` implementation for gift cards.
2022-07-04 14:52:55 +00:00
Sebastian Rindom
9b5c2e8c1f hotfix(medusa): add line item adjustments for correct calculation in authorizePayment (#1772) 2022-07-04 14:50:16 +00:00
Philip Korsholm
41681b45b1 Feat(medusa): implement feature flags (#1768)
* feat: add feature flag loading in projects

* fix: make feature flag consume itself

* fix: rename container registration to featureFlagRouter

* fix: refactor

* behavioral feature flags

* add environment to server

* limit "useTemplateDb" to non feature flagged migrations

* filter migrations and entities according to those which are enabled in the environment

* run only migrations that are enabled when running 'medusa migrations run'

* add logging to the featureflag loader

* initial implementation of featureFlagEntity

* column descriptors

* initial startServerWithEnv (to be refactored)

* update commands

* final touches

* update loaders to fix unit tests

* enable all batch job tests

* update seed method

* add api test capabilities

* revert batch job test

* revert formatting changes

* pr feedback

* pr feedback

* remove unused imports

* rename feature flag decorators

* pr feedback

Co-authored-by: Sebastian Rindom <skrindom@gmail.com>
2022-07-04 15:39:30 +02:00
Oliver Windall Juhl
f0704a7e17 chore(medusa-react): Move @medusajs/medusa to peerDeps in medusa-react (#1771)
* chore: Move @medusajs/medusa to peerDeps in medusa-react

* update README
2022-07-04 11:25:35 +02:00
Sebastian Rindom
1d3032dc67 fix(webshipper): allow cancelling WS orders with error status (#1755) 2022-07-04 07:57:35 +00:00
Oliver Windall Juhl
c76e23e84d fix(medusa): Remove deps mongoose + mongodb (#1218)
* fix(medusa): Remove deps mongoose, mongodb and transaction service + base model

* chore: delete permissions+add-ons legacy plugins

Co-authored-by: Sebastian Rindom <skrindom@gmail.com>
2022-07-04 09:10:32 +02:00
Zakaria El Asri
8fe5fb5503 make medusa-dev-cli compatible with yarn 2/3 (#1765) 2022-07-03 11:24:41 +02:00
Derek Wene
3fb74bf512 feat: add customer to fetch-draft-order payload (#1444) 2022-07-02 21:54:35 +02:00
Oliver Windall Juhl
7bee57f7c5 fix(medusa-js): Fix stringifyNullProperties util (#1766)
**What**
Changes the order of object type evaluation to properly handle null properties.

Previously, `stringifyNullProperties({ test: null })` would fail in the 2nd iteration due to an attempt to iterate `null` in `Object.keys(obj)`.
2022-07-02 15:29:27 +00:00
Adrien de Peretti
e53c06eab8 feat(medusa): Apply query transformers to Collection and CustomerGroups (#1667) 2022-07-02 13:01:52 +02:00
Sebastian Rindom
fee0f88a62 fix: add shipping taxes (#1759)
**What**
Adds taxes to the shipping prices when listing in admin. Allows store operators to see correct prices when processing returns.
2022-07-02 10:35:16 +00:00
Sebastian Rindom
f7e300e8ce fix(meilisearch): remove medusa-interfaces dependency (#1751)
Remove `medusa-interfaces` from dependencies. `medusa-interfaces` should only be a peer dependency
2022-07-02 09:09:48 +00:00
Sebastian Rindom
c0e18d473c fix(webshipper): only add invoices if invoice generator produces a file (#1749) 2022-07-02 09:05:20 +00:00
Philip Korsholm
198681f7d8 Feat(medusa): Convert fulfillment service to typescript (#1659)
**What**
- convert fulfillment service to typescript


I have removed the `transform` parameter from the getFulfillmentItems_ function since it was not being used with different methods, only `validateFulfillmentLineItem_`. Instead I have just reference the validateFulfillmentLineItem_ function directly. 

We have the same pattern across some different methods, is there a specific reason or just for future proofing?
2022-07-02 07:28:38 +00:00
Adrien de Peretti
fc1cbe72c7 feat(medusa-js): Create utils to stringify null values and respect object types (#1748)
### What

At the moment it is not possible to pass explicitly null on a property since the qs.stringify will transform it as `url?property=` which is then interpreted on the backend side as `""` value which is not what we expect.
The actual way to pass null value is to set the property as `{ prop: "null" }` in order to get the stringify method to send it correctly.

### How

I just created a small util that loop through the input object and transform all null values to "null" before being passed to the qs.stringify method.

The new util is only applied on the list batch job since this is for now the only place that require that behaviour.
2022-06-30 09:17:57 +00:00
Adrien de Peretti
9e0f65dee3 fix(medusa-react): Allow to not invalidate any cache (#1756)
### What
At the moment, it is not possible to not invalidate any queries>
Example, when we want to Create a new signed url, it does not require to invalidate any of the queries.
But the way it is done in the buildOptions, require to give either a key or an array of keys. 

### How
The behaviour for empty array is to invalidate all the queries and here we would like to be able to just pass undefined in order to not trigger the invalidation. The update allow the arg to be optional and check for undefined explicitly before choosing the invalidation
2022-06-30 09:01:31 +00:00
Philip Korsholm
9018d270be Feat(medusa-js, medusa-react): Upload endpoints in medusa js and react (#1716)
* export types from admin uploads

* add delete and download to medusa-js

* add upload endpoints to hooks

* remove upload from js and react

* pr feedback

* Apply suggestions from code review

Co-authored-by: Oliver Windall Juhl <59018053+olivermrbl@users.noreply.github.com>

* rename types for admin uploads

Co-authored-by: Oliver Windall Juhl <59018053+olivermrbl@users.noreply.github.com>
2022-06-29 11:36:19 +02:00
Philip Korsholm
bf47d1aecd feat(medusa): Add batch strategy for order exports (#1603) 2022-06-29 09:54:37 +02:00
Adrien de Peretti
c0f624ad3b feat(medusa): Allow to filter the batch jobs with nullable date (#1747) 2022-06-29 09:44:56 +02:00
Adrien de Peretti
fb7abbf407 feat(medusa): Add file size calculation for product export (#1726) 2022-06-28 15:27:36 +02:00
Sebastian Rindom
c6dc9086cf feat(medusa): Add line item totals to cart totals decoration (#1740) 2022-06-28 12:11:47 +02:00
Sebastian Rindom
2a32609b74 fix(medusa): Normalizes email before saving customer (#1719) 2022-06-27 10:56:12 +02:00
Adrien de Peretti
89cb717461 fix(medusa): Product export strategy (#1713) 2022-06-27 10:48:56 +02:00
Philip Korsholm
cc29b641c9 feat(medusa): Delete and download url endpoints (#1705) 2022-06-24 10:37:32 +02:00
Oliver Windall Juhl
a5f717be5a fix(medusa-file-spaces,medusa-file-s3,medusa-file-minio): Add options to super call in file plugins (#1714) 2022-06-24 09:15:57 +02:00
Philip Korsholm
fa7163941d Feat(medusa): convert customer service to typescript (#1653)
* centralize common knowledge and checks for list-customers in repository

* convert customer service to typescript

* fix typing error in update-address

* add await

* add atomic phases

* update types for customerservice

* update api and model types

* pr feedback

* remove Promise.resolve

* typing of buildQuery

* remove atomic phase from private method
2022-06-24 09:10:16 +02:00
Philip Korsholm
1585b7ae2b feat(medusa): Convert GiftCardService to Typescript (#1664) 2022-06-23 16:33:18 +02:00
Adrien de Peretti
7b09b8c36c feat(medusa/product-export-strategy): Implement the Product export strategy (#1688) 2022-06-22 23:42:31 +02:00
Adrien de Peretti
0e34800573 refactor(medusa): cleanup, fix, migrate baseService and therefore fix errors (#1701)
* refactor(medusa): cleanup, fix, migrate baseService and therefore fix errors for ts version > 4.5

* test(medusa): Fix discount tests

* fix(medusa): build

* feat(medusa): Remove unnecessary await
2022-06-22 12:23:56 +02:00
Oliver Windall Juhl
7302d76e12 feat(medusa,medusa-js,medusa-react): Add BatchJob API support in medusa-js + medusa-react (#1704)
* Add BatchJob API to medusa-js

* Adds BatchJob API hooks

* Fix tests in medusa-react
2022-06-21 11:08:44 +02:00
Philip Korsholm
5f2744eb9f Feat (medusa): convert custom shipping option service to typescript (#1652)
* convert custom shipping option service to typescript

* polishing

* remove unnecessary imports

* Update packages/medusa/src/services/custom-shipping-option.ts

Co-authored-by: Zakaria El Asri <33696020+zakariaelas@users.noreply.github.com>

* pr feedback

* fix typing after removing optional metadataparameter

* add injected dependencies

* add await

Co-authored-by: Zakaria El Asri <33696020+zakariaelas@users.noreply.github.com>
2022-06-21 09:25:54 +02:00
Zakaria El Asri
765c794b97 fix(medusa): Add images relation (#1693) 2022-06-20 12:07:17 +02:00
Zakaria El Asri
f0be31120f refactor(medusa): Migrate ProductService to TS (#1625)
* refactor: product service

* fix: type errors in consumers

* fix: use Status enum instead of ProductStatus

* fix: remove ProductStatus

* fix: rename ProductStatus

* fix: product model nullable fields

* fix: explicit typecasting in listVariants

* fix: use atomicPhase in public methods

* fix: use transactionManager in protected methods

* fix: remove disable eslint rule comment

* fix: retrieveVariants relations

* fix: retrieveVariants

* fix: FilterableProductProps validation

* fix: nullable thumbnail

* fix: tests by making model column types more explicit

* move upsert method to repo layer

* fix: unit tests

* fix: integration tests

* fix: product tags query + integration test

* fix: rename FindWithRelationsOptions to FindWithoutRelationsOptions

* fix (productRepository): use string[] for relations

* refactor: extract price relation filtering logic into util

* fix: failing unit test

* rename DTO suffix to Input suffix

* fix: missing awaits

* fix: check for images and tags length

* fix: remove unneeded function

* extract types used in product service to types folder

* fix: use text instead of varchar

* remove: reorderOptions from ProductService

* fix: product model

* fix: add private retrieve method

* fix: conflicts

* fix: failing unit test

* fix: integration test

* fix: remove ProductSelector type

* fix: remove validateId

* fix: use spread operator

* fix: repo method typings

* fix: remove comment
2022-06-20 10:50:46 +01:00
Zakaria El Asri
9e686a8e47 feat(medusa): Parsing CSV files (#1572)
* add: csv parser

* fix: tests

* fix: linting + comment

* add: missing dependency

* fix: generic transformers

* fix: address comments

* fix: make parser options generic

* add: support regex columns + fix missing columns bug

* improve test case

* add: support for reducer + tests

* fix: add comments to csv parser
2022-06-19 16:10:15 +01:00
Zakaria El Asri
46a6e1a4d3 fix(medusa): Remove duplicate DiscountRuleType import (#1699) 2022-06-19 16:17:48 +02:00
olivermrbl
1ee7691c2b Merge branch 'master' into develop 2022-06-19 13:12:21 +02:00
olivermrbl
8e43ef2b3a chore(release): Publish
- medusa-file-minio@1.0.6
 - medusa-file-s3@1.1.2
 - medusa-file-spaces@1.2.2
 - medusa-fulfillment-webshipper@1.3.2
 - @medusajs/medusa-js@1.2.2
 - medusa-payment-paypal@1.2.2
 - medusa-payment-stripe@1.1.40
 - medusa-plugin-algolia@0.2.2
 - medusa-plugin-contentful@1.2.2
 - medusa-plugin-mailchimp@1.1.41
 - medusa-plugin-meilisearch@0.2.2
 - medusa-plugin-sendgrid@1.3.2
 - medusa-plugin-slack-notification@1.3.2
 - medusa-plugin-twilio-sms@1.2.2
 - medusa-react@0.3.2
 - @medusajs/medusa@1.3.2
2022-06-19 13:11:05 +02:00
olivermrbl
c85ef984cc Merge branch 'master' into develop 2022-06-19 12:59:08 +02:00
Oliver Windall Juhl
6b23208d63 fix(medusa): Include adjustments when authorizing payment (#1697) 2022-06-19 12:58:47 +02:00
Adrien de Peretti
93aaaa71bd feat(medusa): Update BuildQuery typings (#1672) 2022-06-17 10:03:51 +02:00
Adrien de Peretti
453688682c feat(medusa): Support batch-job API (#1547)
* feat(medusa): Implement confirm batch job end point

* feat(medusa): Implement confirm batch-job end point

* feat(medusa): Add create batch job end point and implementation

* feat(medusa): remove cancelled related

* feat(medusa): Remove unrelated content for batch job creation

* feat(medusa): Cleanup migration

* feat(medusa): Cleanup context

* fix(medusa): Batch-job service import

* feat(medusa): Update migration

* test(medusa): Fix batch job tests

* feat(medusa): Start batch job end point

* feat(medusa): Continue end points

* feat(medusa): Continue end points

* feat(medusa): Finalize batch-job end points

* style(medusa): Lint

* feat(medusa): Cleanup

* feat(medusa): Fix list-batch-job endpoint column selection

* feat(medusa): Batch-job feedback

* feat(medusa): Update create-batch-job endpoint doc

* test(integration-tests): Fix batch-job integration reguarding the response status code

* feat(medusa): Finalize rebase from develop

* feat(medusa): Extend batch job status with ready_at and failed_at

* feat(medusa): Update migration and tests accordingly

* feat(medusa): Update status order on batchJob

* feat(medusa): Enhance batchJobService status update

* style(medusa): Cleanup

* style(medusa): Typo

* style(medusa): Remove unnecessary comment

* cleanup(medusa): Address feedback

* test(integration-tests): Update naming and snapshots

* fix(medusa): Update validator

Co-authored-by: Philip Korsholm <88927411+pKorsholm@users.noreply.github.com>

* Fix(medusa): update validator

Co-authored-by: Philip Korsholm <88927411+pKorsholm@users.noreply.github.com>

* test(intergration-tests): Fix creates batch job

* test(integration-tests): Fix snapshot

* feat(medusa): Re-work status

* tests(integration-tests): Fix batch job

* feat(medusa): Addresses feedback

* fix(medusa): Revert package.json script

* feat(medusa/batch-job-api): Improve status management

* feat(medusa): Improve batch job status and remove some context validation from the service

* feat(medusa): BatchJob api merge params

* feat(medusa): Apply last changes on the batch job service

* Update packages/medusa/src/services/batch-job.ts

Co-authored-by: Oliver Windall Juhl <59018053+olivermrbl@users.noreply.github.com>

* feat(medusa): BatchJobStrategy and loaders (#1434)

* add batch job strategy interface

* update plugin loaders

* remove comment

* make map async

* ensure that only one of each strategy is registered

* register strategies plural

* add identifier and batchType properties

* extend batch job strategy identification method

* initial test

* update loaders to accomodate different ways of accessing batch job strategies

* identifier batch type field

* redo merge in plugins

* update interface and load only js files

* use switches instead of elif

* remove comments

* use static properties for strategy registration

* update tests

* fix unit tests

* update test names

* update isBatchJobStrategy method

* add check for TransactionBaseService in services for plugins

* update interfaces export

* update batchjob strategy interface with a prepare script

* update loaders

* update batchjob strategy interface

* remove everything but public interface methods from batchJobStrategy

* add default implementation to prepareBathJobForProcessing

* remove unused import

* docs: Add Services reference (#1548)

* added events reference

* add upgrade guide for 1.3.0

* Update 1-3-0.md

* merge 1.3.0 with 1.3.1

* rename to 1.3.0

* added paypal documentation

* Improve storefront quickstart documents

* chore(deps): bump sqlite3 from 5.0.2 to 5.0.3 (#1453)

Bumps [sqlite3](https://github.com/TryGhost/node-sqlite3) from 5.0.2 to 5.0.3.
- [Release notes](https://github.com/TryGhost/node-sqlite3/releases)
- [Changelog](https://github.com/TryGhost/node-sqlite3/blob/master/CHANGELOG.md)
- [Commits](https://github.com/TryGhost/node-sqlite3/compare/v5.0.2...v5.0.3)

* fix: Issue with cache in CI pipeline

Co-authored-by: Philip Korsholm <88927411+pKorsholm@users.noreply.github.com>
Co-authored-by: Oliver Windall Juhl <59018053+olivermrbl@users.noreply.github.com>
Co-authored-by: Shahed Nasser <shahednasser@gmail.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-06-16 13:57:18 +02:00
Philip Korsholm
886dcbc82f feat(medusa): BatchJobStrategy and loaders (#1434)
* add batch job strategy interface

* update plugin loaders

* remove comment

* make map async

* ensure that only one of each strategy is registered

* register strategies plural

* add identifier and batchType properties

* extend batch job strategy identification method

* initial test

* update loaders to accomodate different ways of accessing batch job strategies

* identifier batch type field

* redo merge in plugins

* update interface and load only js files

* use switches instead of elif

* remove comments

* use static properties for strategy registration

* update tests

* fix unit tests

* update test names

* update isBatchJobStrategy method

* add check for TransactionBaseService in services for plugins

* update interfaces export

* update batchjob strategy interface with a prepare script

* update loaders

* update batchjob strategy interface

* remove everything but public interface methods from batchJobStrategy

* add default implementation to prepareBathJobForProcessing

* remove unused import
2022-06-15 10:46:55 +02:00
Sebastian Rindom
cffb03d197 fix(medusa): update cron schedule to be every 6 hours (#1658) 2022-06-14 14:52:27 +02:00
Sebastian Rindom
14366f536d fix: adds tax calculation to product pricing (#1354)
* fix: adds tax calculation to product pricing

* fix: dedupe

* fix: merge inconsistencies

* fix: merge inconsistencies
2022-06-14 10:11:18 +02:00
Adrien de Peretti
9a3ff32b42 refactor(medusa): Convert DraftOrderService to TS (#1259) 2022-06-13 20:29:23 +02:00
Adrien de Peretti
28ddf10446 fix(medusa): Plugin loader must also check for TransactionBaseService (#1601) 2022-06-13 17:53:52 +02:00
Adrien de Peretti
012513b6a1 feat(medusa-cli): Allow to revert migrations from the CLI (#1353) 2022-06-13 14:15:09 +02:00
Philip Korsholm
b478b10438 refactor(medusa): Convert ShippingOptionService to typescript (#1644)
* convert shipping option service to typescript

* update jsdoc

* make update look update object

* update price reverting for calculated prices  when deselecting free shipping option

* update typescript service implementation

* pr feedback
2022-06-13 09:55:50 +02:00