Commit Graph
100 Commits
Author SHA1 Message Date
Adrien de Peretti 68dbcda84c fix: DML Enum property (#7846)
* fix: DML Enum property

* add more tests

* fix unit tests
2024-06-26 17:01:57 +02:00
Adrien de Peretti dc307c658d feat: Add support for array properties DML (#7836) 2024-06-25 20:51:14 +02:00
Adrien de Peretti 39038ddb0a chore: various DML improvements (#7833)
* chore: various DML improvements

* Check is something through static utils

* Check is something through static utils

* allow to define a schema with table name

* restrict searchable to text only

* rm searchable modifier

* extract constructor logic into separate function
2024-06-25 18:00:39 +02:00
Adrien de Peretti 66d17fabde chore: rename extractor type to InferEntityType (#7829) 2024-06-25 13:43:11 +02:00
Adrien de PerettiandOli Juhl 34c44078e7 fix: DML relation management for many to one relation ship foreign keys (#7790)
FIXES CORE-2369

cc @thetutlage 

Co-authored-by: Oli Juhl <59018053+olivermrbl@users.noreply.github.com>
2024-06-24 18:54:54 +00:00
Adrien de Peretti 021f5ea016 fix: medusa service should infer names when not provided (#7818)
* fix: medusa service should infer names when not provided

* fix types

* fix typings
2024-06-24 16:35:44 +02:00
Adrien de Peretti 27bb93c5b5 chore: Fix export and option of mikro orm define config util (#7809) 2024-06-24 09:31:52 +00:00
Adrien de Peretti ae6dbc06be chore: Update module test runner to support DmlEntities when needed (#7799)
* chore: Update module test runner to support DmlEntities when needed

* update es version for core test utils

* fix test

* update swc config
2024-06-24 09:44:01 +02:00
Adrien de PerettiandRiqwan Thamir 8fa43a6db3 Feat/define mikro orm configuration dev (#7798)
* chore: define mikro orm config for CLI

* add tests

* fix types

* fix import

---------

Co-authored-by: Riqwan Thamir <rmthamir@gmail.com>
2024-06-24 09:10:54 +02:00
Adrien de Peretti 90e6ca0e9e chore: Internal medusa service proper typings with DML (#7792) 2024-06-21 12:36:54 +02:00
Adrien de Peretti 937a632eb6 chore: make module loaders DML aware and auto generate joiner config (#7781)
* chore: make module loaders DML aware and auto generate joiner config

* fixes and cleanup

* improve dml entity check

* add unit tests on load resources

* cleanup deps

* cleanup deps

* cleanup Modules

* finalise

* fix modules-sdk jest

* fix modules-sdk jest

* fix import

* fix import
2024-06-20 18:18:07 +02:00
48963f55ef Chore/rm main entity concept (#7709)
**What**
Update the `MedusaService` class, factory and types to remove the concept of main modules. The idea being that all method will be explicitly named and suffixes to represent the object you are trying to manipulate.
This pr also includes various fixes in different modules

Co-authored-by: Stevche Radevski <4820812+sradevski@users.noreply.github.com>
Co-authored-by: Oli Juhl <59018053+olivermrbl@users.noreply.github.com>
2024-06-19 13:02:16 +00:00
Adrien de Peretti 89bb16cea1 chore: Add back the db utils to the test runner for specific cases (#7764)
* chore: Add back the db utils to the test runner for specific casees

* chore: Add back the db utils to the test runner for specific casees
2024-06-18 17:19:37 +02:00
Adrien de Peretti e0b14519f1 fix: Medusa service base method transaction (#7758)
**What**
Remove transaction decorator from the base medusa service method, the transaction will always be coming from the shared context. It fixes the issue that when you consume a base method directly it will return a proper tuple from the DB instead of the one from the entity map cc @VariableVic 

**NOTE**
This pr also fix some categories issues in the product module which was preventing the tests from working. if @sradevski you could have a look later, in the mean time we can still merge it

FIXES CORE-2342
2024-06-18 10:58:54 +00:00
Adrien de Peretti d2a5201eeb chore: Refactor and improve abstract module service factory (#7688)
* chore: Refactor and improve abstract module service factory

* align naming

* clean up some template args and tests

* partially migrate modules

* partially migrate modules

* migrate more modules

* migrate last modules

* fix typings

* rename interface

* rename interface

* fixes

* fixes

* rm local plain tests
2024-06-13 13:12:37 +02:00
Adrien de Peretti dd0b9f0805 feat: workflows release events (#7664)
* feat: Release grouped events once a worfklow finish

* update common step

* update types

* tests

* optionality

* fies

* cancel flow on release failure

* clear events on fail

* more tests

* log errors

* log more errors

* update missing interface method declaration

* fix missing return

* update mock

* fix tests
2024-06-11 15:48:15 +02:00
afae395fea chore: ensure the event group id is kept for async workflow (#7668)
* chore: ensure the event group id is kept for async workflow

* revert test

* fix tests

---------

Co-authored-by: Oli Juhl <59018053+olivermrbl@users.noreply.github.com>
Co-authored-by: Riqwan Thamir <rmthamir@gmail.com>
2024-06-11 13:20:17 +02:00
Adrien de Peretti c9c2b6c88f chore: Ensure the transactionId/eventGroupId are passed down the child workflows (#7648) 2024-06-07 12:38:04 +02:00
Adrien de Peretti 2e77a076b8 feat: Add emitEvent step + cleanup (#7643)
* feat: Add emitEvent step + cleanup

* fix typo

* fix typo
2024-06-07 11:52:19 +02:00
Adrien de Peretti 3cd2d60daa feat: Ensure the event group id is either generated or picked up from the context (#7646)
**What**
- Pick the context event group id or generate it to be accessible from the workflow and down the module calls

FIXES CORE-2273
2024-06-07 09:14:02 +00:00
Adrien de Peretti 9576de2be4 feat: emit product tags events (#7636)
**What**
emit product tags events

**note**
Stil does not take into consideration non overriden method, delete and soft delete emits event under the hood and we will have to migrate that at the end
2024-06-06 15:14:40 +00:00
Adrien de Peretti 3f62bfad5a fix: should disable db connection ssl when some url params are provided (#7634)
**What**
Enable ssl identification from the client url query params as well
2024-06-06 14:52:12 +00:00
Adrien de Peretti 3fbb8aa671 feat: Product module events (#7598)
WIP, not ready to review

**what**
- add events
- integration tests of emitted events
- remove integration tests on auto generated services in favor of module method integration tests
2024-06-06 11:47:38 +00:00
Adrien de Peretti da3837f2bc chore: return meta information on created/updated/deleted object from upsertWithReplace (#7616)
**What**
- Return the updated/deleted/created entities from the upsert with replace according to the configuration

This will help to emit the events from the product module as it rely on this abstraction in many places
2024-06-05 20:04:45 +00:00
Adrien de Peretti 337b8ce0bb chore: Resolve flaky integration tests (#7587) 2024-06-03 16:29:08 +02:00
Adrien de Peretti 9608bf06ef feat: Event emitting part 1/N (Fulfillment) (#7391)
**What**
Add support for event emitting in the fulfillment module

**NOTE**
It does not include the review of the events for the abstract module factory if the method is not implemented in the module itself and rely on the default implementation
2024-06-03 08:29:35 +00:00
Adrien de Peretti 4e20588522 chore(core-flows): Cleanup old code (#7547)
Remove the old handlers and definitions that does not work anymore or are not used anymore. This legacy was bothering a refactoring we have with @thetutlage
2024-05-30 12:53:42 +00:00
Adrien de Peretti 61977bd392 chore: Allow modules to discover resources from ts/js and local directories (#7520)
**What**
Update the module resources discovery to account to the source directory to look into.

example:
```ts
user: { resolve: 'user' }
```
The above config will load the resources from the resolved path looking from the node modules
```ts
user: { resolve: './modules/user' }
```
The above config will load the resources from the local directory under dist if not run with ts node and under src otherwise
2024-05-30 09:14:55 +00:00
Adrien de Peretti d2b5768c02 feat: re integrate transform middleware lost files and features (#7477)
**What**
Re integrate the transform query tests + missing features. It was originally mistekenly removed from one the team pr, also, I have adjusted the API and tests

**NOTE**
It does not include a full clean up of the typings and the backward compatibility remains for now
2024-05-27 16:36:53 +00:00
Adrien de Peretti 45bcdfec17 fix: Listening events (#7474)
* fix: Listening events

* cleanup
2024-05-27 15:31:57 +02:00
Adrien de Peretti e275e01d85 chore: Cleanup medusa test utils (#7464)
* chore: Cleanup medusa test utils

* update yarn

* cleanup

* fix key

* cleanup

* fixes

* fixes

* fixes

* fixes

* fix runners

* fix bootstrap

* naming

* Improve runners options

* Improve runners options

* Improve runners options

* cleanup

* fix tests
2024-05-27 14:14:32 +02:00
Adrien de Peretti b8bc3ed16f chore: Start cleaning up medusa-core-utils (#7450)
**What**
- remove medusa-core-utils
- dispatch the utils where they belongs
- update usage

**NOTE**
I have been wondering if the graceful class should go into the utils package or medusa package, I ve put it in the medusa package as it seems to be the best place I can see for now and is tight to the server as well. Also, I wanted to avoid the utils package to depends on http and net dependencies, happy to change that if you feel like it
2024-05-27 08:00:15 +00:00
Adrien de Peretti f585b13c96 chore: remove babel usage (#7452) 2024-05-24 20:51:12 +02:00
Adrien de Peretti 77d72c5791 fix(customer): Unique constraint on customer email (#7439)
**What**
Prevent creating multiple customers with the same email
2024-05-24 14:20:54 +00:00
Adrien de Peretti d354b253d5 chore: Fixes somes command and migrate to ts (#7444)
**What**
Fix some commands that are using the loaders return unproperly and cleanup, also includes a migration to ts
2024-05-24 14:17:58 +00:00
Adrien de Peretti fff1b3ef9c chore(medusa, workflows-sdk): Workflow default to throw the first error (#7442)
**What**
Currently when a workflow fail it will throw an error which contains the messages of all error thrown durring the workflow lifetime. Therefore, in our cases we are always preventing workflow to throw and grab the first error that we then re throw.
This pr eliminate that need by throwing back the first error among the error thrown by a workflow as it is the main case. In case someone need a special handling they can still set the option throwOnError to false and handle the error the way they need
2024-05-24 12:55:05 +00:00
Adrien de Peretti 16651f9849 chore(medusa): Loader shutdown fixes (#7443)
**What**
prepare shutdown was called after modules shutdown
2024-05-24 12:38:37 +00:00
Adrien de Peretti f8b4a65168 feat: Load custom link definitions (#7430)
**What**
Load custom links from the projects
2024-05-23 20:33:38 +00:00
Adrien de Peretti 37ae87fe9b fix(admin-next, utils, medusa): Handle db errors properly and fix form (#7416)
* fix(admin-next, utils, medusa): Handle db errors properly and fix form

* fix(admin-next, utils, medusa): Handle db errors properly and fix form

* fix(admin-next, utils, medusa): Handle db errors properly and fix form

* fix(admin-next, utils, medusa): Handle db errors properly and fix form
2024-05-23 12:36:45 +02:00
Adrien de Peretti c4fde7ea5c feat(core-flows, fulfillment): Add create return specific method and add more tests (#7357)
* feat(core-flows, fulfillment): Add create return specific method and add more tests

* fix defautl providers in tests fixtures

* more tests

* wip fixes

* fix flow and tests

* cleanup
2024-05-21 13:48:59 +02:00
Adrien de Peretti a775d57255 feat(core-flows, types): Create return order (#7319)
**what**
- Create return workflow partial implementation
- Update some order domain types
- create order fulfillment link

**NOTE**
this PR is partially done but can still be merged as is, it will require some discussions around the flow and some unknowns or uncertainty in regards to some data and some behaviour
2024-05-16 14:10:54 +00:00
Adrien de Peretti e733d6b1ee fix(modules-sdk): Resolve discovery location properly (#7345) 2024-05-16 12:13:25 +02:00
Adrien de Peretti ec5415ea1a chore(modules-sdk, medusa): Cleanup migration helpers (#7342)
**What**
Cleanup the migrations scripts
2024-05-15 15:52:26 +00:00
Adrien de Peretti 13ce60b999 fix(medusa, modules-sdk): Fix migrate command and fix revert support (#7340) 2024-05-15 15:46:23 +02:00
Adrien de Peretti 63623422fe chore(): Autoload module resources (#7291)
**What**
- automatically build and consume connection and container loader if not exported by the module
- therefore load the services and repositories automatically, including baseRepository
- automatically build run and revert migrations if not provided
- cleaup modules to remove extra unnecessary bits and pieces
- remove the `initializeFactory` in favor of using `medusaApp`

Should drastically improve the module building DX by removing a lot of boilerplate to handle by the user, that plus the base entity should simplify quite a lot the flow cc @shahednasser 

**Note**
I had to choose a way to identify connection and container loader from the exported loader from the module. I decided to go with named function `connectionLoader` and `containerLoader`, also, now the factories will return named function so if the user use the factories we are providing to build those loaders, the function will also be named and identified
2024-05-13 12:12:36 +00:00
Adrien de Peretti e5904f8c75 fix(medusa): Missing middlewares export (#7289) 2024-05-10 15:43:43 +00:00
Adrien de Peretti 45e2228a07 chore(utils): Provide a mikro orm base entity (#7286)
**What**
Provide a new mikro orm base entity in order to abstract away the on init and on create which include the id auto generation if not provided. The main goal is to reduce complexity in entity definition
2024-05-10 09:27:33 +00:00
Adrien de Peretti 8db62827ac chore: remove generated client types (#7259)
* chores: rm generated client types

* chores: rm generated client types

* update lock file

* fix yarn
2024-05-07 15:36:29 +02:00
Adrien de Peretti 71f4f46cb9 chore(medusa): cleanup medusa package (#7206) 2024-05-07 12:48:49 +02:00
Adrien de Peretti a736e728b8 fix: package.json run test integration in packages (#7249) 2024-05-06 19:25:37 +02:00
adrien2p 36eff7f10a wip 2024-05-06 13:52:30 +02:00
Adrien de PerettiandRiqwan Thamir 93f6e60c17 chore(): Modules providers reorganization (#7234)
Co-authored-by: Riqwan Thamir <rmthamir@gmail.com>
2024-05-05 10:08:07 +02:00
Adrien de Peretti 520867b074 feat(fulfillment, core-flows): Apply correct address and context + cleanup (#7230)
The tests will be added in subsequent requests where the worklows are being worked on
2024-05-03 15:44:22 +00:00
Adrien de Peretti 224ebb2154 chore: remove legacy plugins (#7224)
* chore(): remove more legacy plugins

* chore(): remove more legacy plugins

* rm plugins
2024-05-03 14:47:16 +02:00
Adrien de Peretti bbccd6481d chore(): start moving some packages to the core directory (#7215) 2024-05-03 13:37:41 +02:00
Adrien de Peretti 46ded00c08 chore: Remove legacy files plugins (#7216)
**What**
rm legacy file plugins
2024-05-03 08:01:40 +00:00
Adrien de Peretti 0140fd63ab chore(): rm payment plugins (#7217) 2024-05-03 08:42:03 +02:00
Adrien de Peretti 4eae25e1ef chore(): Reorganize modules (#7210)
**What**
Move all modules to the modules directory
2024-05-02 15:33:34 +00:00
Adrien de Peretti 7a351eef09 feat(workflows-sdk): Execute workflows as step in other workflows (#7183) 2024-05-02 11:29:28 -03:00
Adrien de Peretti 25b0ccc60a fix(fulfillment): Update shipping options rules (#7204)
**What**
Fix the update shipping options to apply the rules update properly and remove unused code
2024-05-02 12:30:13 +00:00
Adrien de Peretti e26cda4b6a feat(medusa, core-flows, types): Allow to update the rules from a shipping options (#7175)
**What**
Add support for the following operations
- update rules from the update shipping options end point
- update rules from the batch update end point

Also added some improvements, that can be revisited later
- Add a rule value normalizer, jsonb will transform the input value to a [primitive](https://www.postgresql.org/docs/current/datatype-json.html#JSON-TYPE-MAPPING-TABLE) when possible meaning that passing `"true"` will result in storing `true` and not the string. The normalizer takes care of that
2024-04-30 16:45:17 +00:00
Adrien de Peretti 08a9297f76 feat(medusa): Remove require id from update shipping options validator (#7166)
* feat(medusa): Remove require id from update shipping options validator

* update type apply

* Create great-stingrays-clap.md
2024-04-29 11:35:40 +02:00
Adrien de Peretti c78915c7c5 feat: Add support for shipping options prices update (#7028) 2024-04-11 18:34:55 +02:00
Adrien de Peretti eac4d2d87a fix(): workflow sdk step return function type infer (#7047) 2024-04-10 15:49:09 +02:00
Adrien de Peretti e1a0960e20 feat: delete shipping options (#6993) 2024-04-09 15:30:22 +02:00
Adrien de Peretti f132929c7e feat(*): shipping options update API (#6987)
**What**
- Update the `updateShippingOptions` module service API to follow the newest convention
- Add upsert support for shipping options
- update shipping options workflow
- update shipping options api end point and validation
- update shipping options all integration tests

FIXES CORE-1926
2024-04-07 16:28:59 +00:00
Adrien de Peretti 667c8609cc fix(modules-sdk): Fix remote query selection (#6989)
Fix remote query selection for different relations levels as part of a single processed query
2024-04-07 14:07:31 +00:00
Adrien de Peretti 528ef4ca90 fix(modules-sdk): Select all should send undefined instead of an empty array (#6982) 2024-04-06 21:37:22 +02:00
Adrien de Peretti bc06ad2db4 feat: Clean up shipping options management (#6977)
**What**
- cleanup existing route on some aspects but not all
- add new create shipping options end point and types
- add set of integration tests
- cleanup existing fulfillment routes
- align existing integration tests
- transform old type to zod types and validators
- fix stock location route
2024-04-06 16:52:05 +00:00
Adrien de Peretti 65794f4bb5 feat: Create shipping options workflow (#6962)
**What**

- Create main workflow
- Update create pricing rule types step to be idempotent
- update remote joiner to support granular isList confguration on field aliases
- Add full workflow integration tests
2024-04-06 11:51:48 +00:00
Adrien de Peretti 232322d035 Chores: Do not disable foreign keys by default (#6973) 2024-04-06 11:20:35 +02:00
Adrien de Peretti ee73031d0e feat: Shipping options API (#6957)
**What**
Add support for shipping options management API

PARTIALLY FIXES CORE-1918
2024-04-05 14:23:45 +00:00
Adrien de Peretti 21990fcd4b feat(utils): Support free text configuration (#6942)
**What**
- Add support for searchable entity properties to configure default free text search when providing a `q` filter
- `@Searchable` decorator to mark a property or relation to be searchable form the current entity

FIXES CORE-1910
2024-04-05 13:59:40 +00:00
Adrien de Peretti 71aeda7347 fix(workflows-sdk): Handle result from a trasnformer after a step fail (#6951)
* fix(workflows-sdk): Handle result from a trasnformer after a step fail

* Create plenty-ravens-lay.md

* fix
2024-04-05 08:59:28 +02:00
Adrien de Peretti e944a627f0 feat: region payment providers management workflows/api (#6864) 2024-04-04 20:41:34 +02:00
Adrien de Peretti 12fcb655cd chore: Ensure Redis connection is ready with callback (#6924)
* chore(workflow-engine-redis): await for the connection callback

* cleanup

* cleanup

* Create early-rice-marry.md

* cleanup
2024-04-04 20:40:41 +02:00
Adrien de Peretti 49f16ab08d fix(medusa): Fix get-query-config backward compatiblity (#6913) 2024-04-03 17:14:29 +02:00
Adrien de Peretti b3a3993423 fix(medusa-test-utils): recompute driver options (#6917)
* fix(medusa-test-utils): recompute driver options

* Create seven-bears-reply.md

* Update seven-bears-reply.md
2024-04-03 11:59:29 +02:00
Adrien de Peretti 27f4f0d724 fix(fulfillment): Wrong type usage (#6914)
**What**
Fix the types used in the fulfillment module service interface
2024-04-02 16:22:57 +00:00
Adrien de Peretti 82a176e30e chore(medusa-test-utils):Handle errors gracefully (#6901)
**What**
- Better error handling and error message
- update deps management and dynamic import/require
- Pass a new flag to the modules loaders for the module loaders to be able to act depending on it. In that case, the module can determine what should be run or not. e.g in the workflow engine redis, when we are only partially loading the module, we do not want to set the Distributed transaction storage
2024-04-02 14:10:17 +00:00
8fd1488938 chore: medusa shutdown (#6865)
* chore: medusa shutdown

* continue

* use shutdown

* on application shutdown

* consume shutdown

* more connection close

* more cleanup

* more cleanup

* update lock

* revert package

* graceful shutdown

* Create yellow-apples-attack.md

* graceful shutdown

* graceful shutdown

---------

Co-authored-by: Sebastian Rindom <skrindom@gmail.com>
Co-authored-by: Riqwan Thamir <rmthamir@gmail.com>
2024-03-29 09:22:29 -03:00
Adrien de Peretti 6ee2ee845c fix(): medusa test runner (#6857) 2024-03-28 10:33:40 +01:00
Adrien de Peretti cf3c9b13b5 Fix/pricing data manipulation (#6845)
**What**
- Fix returned data order
- improve implentation
- rm unnecessary promises and/or promise all
- replace promise.all for promiseAll
2024-03-27 17:51:17 +00:00
Adrien de Peretti d4d1f9b2f2 fix: integration tests modules expectations (#6848)
**What**
- fix tests
- cleanup deprecated jest conf
2024-03-27 15:39:20 +00:00
Adrien de Peretti 5d9aea053c fix(utils): Mikro orm prop filtering should check existence (#6842)
**What**
- Should return non decorated but visible properties.
- Should only prevent circular on non scalar fields
2024-03-27 14:31:26 +00:00
Adrien de Peretti e0b02a1012 feat(utils): custom serialization that allows for non self ref (#6836)
* feat(utils): custom serialization that allows for non self ref

* Create fast-teachers-greet.md

* cleanup + tests

* cleanup + tests

* fix import

* fix map to pk relations
2024-03-27 12:31:04 +01:00
Adrien de PerettiandRiqwan Thamir f7f667cf18 Fix/pricing create price lists (#6818)
* chore: rename price set money amounts to prices

* chore: remove more stuff

* chore: more deletions

* chore: delete more stuff

* chore: fix module tests

* chore: skip product create test

* chore: undo package changes

* chore: remove log

* chore: added changeset

* Fix/pricing create missmatch (#6802)

* fix pricing using index and mixing data

* cleanup

* cleanup

* cleanup

* Ensure data order

* finished

* fix(pricing): createPriceLists_ should not rely on indexes

* feedback

* Create spotty-mirrors-thank.md

---------

Co-authored-by: Riqwan Thamir <rmthamir@gmail.com>
2024-03-26 10:42:14 +01:00
Adrien de PerettiandSebastian Rindom 1ef9c78cea chore: Deprecate extra in favor of driver options (#6772)
**What**
Deprecate databse_extra in favor of database_driver_options

Co-authored-by: Sebastian Rindom <7554214+srindom@users.noreply.github.com>
2024-03-21 14:45:11 +00:00
Adrien de Peretti c658bd0233 feat(fulfillment): Events management (#6730)
**What**
This pr includes some cleanup and refactoring around the abstract event emitter method for the module service to not rely on a named class property but instead on resolution naming.

Includes fulfillment set events on creation. 

The idea is that if that pr allows us to align and agreed on the approach as well as including the cleanup for other pr to use, If this gets merged I ll continue with another pr to do the rest of the event management


partially fix CORE-1735
2024-03-20 12:44:26 +00:00
Adrien de Peretti 06f22bb48a fis(orchestration): Properly handle select all (#6742)
**What**
Fix select `*` without breaking select none `[]`
2024-03-20 12:09:54 +00:00
Adrien de Peretti 4b06c17dc0 fix(workflows-sdk): Value resolver should resolve non StepResponse (#6726) 2024-03-18 21:07:04 +01:00
Adrien de Peretti e77a02aca5 feat(): Update transformer middleware and API (#6647)
**What**
Update all transform middleware to support the new API
- deprecate `defaultRelations`
- deprecate `allowedRelations`
- Add `defaults` and `allowed` in replacement for `defaultFields` and `allowedFields` respectively
- in the `defaults` it is possible to specify a field such as `*variants` in order to be recognized as a relation only without specifying any property
- add support for `remoteQueryConfig` assigned to req like we have for `listConfig` and `retrieveConfig`
- add support to override `allowed|allowedFields` if a previous middleware have set it up on the req.allowed
- The api now accepts `fields` as the only accepted fields to manage the requested props and relations, the `expand` property have been deprecated. New supported symbols have been added in complement of the fields
  - `+` (e.g `/store/products?fields=+description`) to specify that description should be added as part of the returned data among the other defined fields
  - `-` (e.g `/store/products?fields=-description`) to specify that description should be removed as part of the returned data
  - `*` (e.g `/store/products?fields=*variants`) to specify that the variants relations should be added as part of the returned data among the other defined fields without having to specify which property of the variants should be returned. In the `defaults` config of the transform middleware it is also possible to use this symbol
  - In the case no symbol is provided, it will replace the default fields and mean that only the specified fields must be returned

About the allowed validation, all fields in the `defaults` configuration must be present in the `allowed` configuration. 
In case the `defaults` contains full relation selection (e.g `*product.variants`) it should be present in the `allowed` as `product.variants`. In case in the `defaults` you add `product.variants.id`, it will be allowed if the `allowed` configuration includes either `product.variants.id` as full match or `product.variants` as it means that we allow all properties from `product.variants`

Also, support for `*` selection on the remote query/joiner have been added


**Note**
All v2 end points refactoring can be done separately
2024-03-18 08:37:59 +00:00
Adrien de Peretti 3188e703b3 feat(fulfillment): Separate list and context rules validation (#6674)
**What**

- Add method to validate fulfillment option from the provider
- Separate list/list and count from context rules validation and add listShippingOptionsForContext

FIXES CORE-1861
2024-03-15 13:25:51 +00:00
Adrien de Peretti 87e63c024e feat(fulfillment): Migration backward compatibility (#6672)
**What**
- Update migration for backward compatibility. This does not take into account data migration and table cleanup (@olivermrbl do we have a general tasks for the modules on that subject)?
- Rename fulfillment provider id to provider id
- add integration tests to ensure the migration backward compatibility
- add new module type for the options to be used in the medusa config for example

FIXES CORE-1724
2024-03-12 13:53:33 +00:00
Adrien de Peretti d9d5afc3cf feat(fulfillment): Soft deletes (#6630)
**What**
- Ensure soft delete works properly according to the soft delete configuration and validate all relation of the entire data model
- Add is_enabled to the providers in order to manage new providers to enabled or disabled
- include joiner config update

FIXES CORE-1853
FIXES CORE-1830
FIXES CORE-1719
2024-03-11 15:56:08 +00:00
Adrien de Peretti 0c9018eddc fix: integration tests modules 2 (#6599)
Currently, if the v2 flag is not enabled it can lead to issues if the modules are part of the medusa config as they will get loaded anyway leading to issues if the migrations did not ran
2024-03-06 13:26:42 +00:00
Adrien de Peretti f0ef0a8784 fix: integration-tests/modules (#6595) 2024-03-06 11:45:34 +00:00
Adrien de Peretti 51bb6f1e89 Chore/integration tests modules utils (#6581)
new wrapper for medusa integration tests.
for now it is only applied to the modules directory, but it could be used in the api integration tests or any other integrations that requires a db and a server up and running. 

It is not perfect, but I wanted to have something working and centralised before improving it, also avoiding too many conflicts with other prs
2024-03-06 10:03:07 +00:00
Adrien de Peretti 62a7bcc30c Feat(fulfillment): service provider registration + fulfillment management (#6524)
**What**
- Create the fulfillment manual package with a first iteration API 
- Create a new `AbstractFulfillmentProviderService` and `IFulfillmentProvider`
- Modify the module service interface to add new methods to manipulate the fulfillment and the communication with the external provider
  - create (no bulk)
  - cancel (no bulk)
  - update (no bulk)
  - list
  - listAndCount
  - retrieve
- Add new methods to the service provider service to include communication with the third party provider
  - get options
  - create
  - cancel
  - validate data
  - validate option
- Update/create interfaces and DTO's
- fix repository serializer to allow non entity to be passed without throwing
- split module tests into multiple files to simplify navigation
- Add integration tests to validate fulfillments manipulation and external provider loading + communication

FIXES CORE-1729
FIXES CORE-1785
FIXES CORE-1784
FIXES CORE-1766
2024-03-05 11:11:14 +00:00
Adrien de Peretti e501e9effa chore: Run packages integration tests concurrently and not in band (#6576) 2024-03-04 14:17:07 +01:00