Commit Graph

1432 Commits

Author SHA1 Message Date
Adrien de Peretti 899b1fba4a chore(medusa): Add handler path to the http tracing to be able to group by (#10835)
RESOLVES FRMW-2835

In this PR, we trace HTTP requests using the route pattern and not the request URL. This allows us to aggregate all HTTP requests under a single route.

In terms of implementation, we have to self find the route for a given request, since there is no API in express to do the same and we begin tracing even before the request is handed over to Express.

Since, the route matching happens via RegExp matches, we ensure that this does not add much performance overhead. The matching takes between 0.8ms-1.5ms for various different routes

Co-authored-by: Harminder Virk <1706381+thetutlage@users.noreply.github.com>
2025-01-07 13:16:20 +00:00
olivermrbl 3919b26eb6 chore: Version packages 2025-01-07 13:31:40 +01:00
Harminder Virk e40878d9f3 chore: rename remote-query-entry-points.d.ts to query-entry-points.d.ts (#10831) 2025-01-07 16:44:49 +05:30
Shahed Nasser 632600ee11 fix(create-medusa-app): add default storefront url to auth CORS (#10853)
* fix(create-medusa-app): add default storefront url to auth CORS

* add docs cors to store / admin
2025-01-07 11:01:37 +02:00
olivermrbl 4f897661eb chore: Add missing changeset 2025-01-07 09:14:51 +01:00
Riqwan Thamir 47594192b7 feat(dashboard,core-flows,types,utils,medusa): Order cancelations will refund payments (#10667)
* feat(order, types): Add Credit Line to order module

* chore: add action to inject credit lines

* WIP

* chore: add fixes + observe

* chore: fix balances

* chore: add canceled badge

* chore: fix i18n schema

* chore: remove redunddant query

* chore: add changeset

* chore: add credit lines for all cancel cases

* chore: add accounting total

* chore: address review & cleanup
2025-01-07 07:56:28 +01:00
Riqwan Thamir 99a06102a2 fix(stock-location,core-flows,types): updates existing address when updating stock location (#10832)
* fix(stock-location,core-flows,types): updates existing address when updating stock location address

* chore: use hasOne instead of hasMany
2025-01-07 07:55:28 +01:00
Shahed Nasser 3253e19b36 chore(ui): general updates and fixes to TSDocs and types (#10753) 2025-01-06 14:22:27 +02:00
Riqwan Thamir f7ffa3540f fix(promotion): don't evaluate rule condition if conditions to evaluate is empty (#10795) 2025-01-06 09:31:58 +01:00
Adrien de Peretti 7d8f6cf39f fix(): Workflow cancellation + gracefully handle non serializable state (#10674)
FIXES FRMW-2852

**What**
A workflow distributed transaction expect any response and error to be serializable. When it is not the case, the distributed transaction might fail during the save checkpoint that occurs for async steps. This can lead to unexpected behaviour.

With this pr, we introduce a way to handle non serialazable object in a more sustainable manner, this means the following:

- If a workflow throw any non serialazable error (e.g AWS error that contains full IncomingMessage object that related to network communication, think of req/res) then we identify that this object is not serialzable and we clean up the object to make it serializable without loosing the main information, add a new error to the workflow to informed of this issue and can be handled by the user.
- If a response is not serializable (which should not happen at this point because it is handled before by the value resolver), in that case, we wont be able to reuse that response to continue the workflow which means that the workflow is in a non runnable state. In that case we throw a specific error stating that a non serializable context is being provided

**second what**
This pr refactor the `runAsStep` to add better support for workflow cancelation, especially async ones
2025-01-05 13:30:17 +00:00
Shahed Nasser 152a94e1e1 feat(create-medusa-app): improve by adding depth to clone commands (#10812)
Improve command by passing `--depth 1` to decrease download size + improve for slow speed.

Closes TRI-742
2025-01-05 13:24:57 +00:00
Harminder Virk 988931a551 Fix/product variants filter (#10808)
Fixes: FRMW-2854
2025-01-03 14:00:02 +00:00
Harminder Virk ecc09fd77d feat: generate modules mappings at runtime (#10791) 2025-01-03 15:49:47 +05:30
Harminder Virk 5e9d86d75d feat: deprecate remoteQueryConfig in favor of queryConfig (#10773)
Fixes: FRMW-2783
2025-01-03 08:46:23 +00:00
Riqwan Thamir 6d989bc8cd fix(pricing): pricing context calculations only takes into account existing rule attributes (#10771)
* fix(pricing): pricing context calculations only takes into account existing rule attributes

* chore: add changeset
2025-01-02 10:17:09 +01:00
Harminder Virk bbf790ea44 feat: deprecate remote link (#10768)
Co-authored-by: Oli Juhl <59018053+olivermrbl@users.noreply.github.com>
2024-12-30 14:57:43 +05:30
Shahed Nasser 1e6d56bc18 feat(create-medusa-app): allow passing project name on command line (#10755)
Allow passing the project name on the command line:

```bash
npx create-medusa-app@latest my-project
```
2024-12-29 09:41:15 +00:00
Shahed Nasser 699bb6dc24 fix(core-flows): export updateTaxRegionsStep (#10732)
Export `updateTaxRegionsStep` to ensure it's included in generated references
2024-12-25 09:08:09 +00:00
Ranjith kumar 83925f5c7a fix(medusa-cli): fix medusa develop command crashing on file change on windows (#10717)
* fix(medusa-cli): fix medusa develop command crashing on file change on windows

* chore: update changeset to patch
2024-12-24 20:00:46 +08:00
Shahed Nasser 13ddf27c68 fix(medusa,types,js-sdk): fix request query parameter types for store product routes (#10707)
* fix(medusa,types): fix request query parameter types for store product routes

* fix test errors
2024-12-23 18:10:08 +02:00
Harminder Virk 0559d54c18 fix: pluralization of words ending in y, where y follows a vowel (#10697)
Fixes: FRMW-2851
2024-12-23 13:07:27 +00:00
Shahed Nasser 3a0c69fbe0 fix(fulfillment): export schema types (#10700)
Export `ServiceZoneSchema` and `GeoZoneSchema` so that we can infer types correctly in references
2024-12-23 12:58:43 +00:00
Kasper Fabricius Kristensen f7aaf2c8bb chore(ui,icons): Add React 19/19-rc to peer dependencies (#10458)
Resolves SUP-478
2024-12-20 12:18:30 +00:00
olivermrbl 348f866ffe chore: Version packages 2024-12-20 11:25:36 +01:00
Adrien de Peretti 100da64242 chore(fulfillment, utils): Migrate module to DML (#10617)
**What**
- Allow to provide `foreignKeyName` option for hasOne and belongsTo relationships
  - `model.hasOne(() => OtherEntity, { foreignKey: true, foreignKeyName: 'other_entity_something_id' })`
  - The above will also output a generated type that takes into consideration the custom fk name 🔽 
- Update types to account for defined custom foreign key name
- Fix joiner config linkable generation to account for custom linkable keys that provide a public API for their model but are not part of the list of the models included in the MedusaService
  - This was supposed to be handled correctly but the implementation was not considering that custom linkable keys could reference models not part of the one provided to medusa service
- Migrate fulfillment module to DML
- Fix has one with fk behaviour and hooks (the relation should be assigned but not the fk)
- Fix has one belongsTo hooks (the relation should be assigned but not the fk)
- Fix hasOneWithFk and belongsTo non persisted fk to be selectable
- Allow to define `belongsTo` without other side definition for `ManyToOne` with no counter part defined
  - Meaning that if a user defined `belongsTo` on one side andnot mapped by and no counter part on the other entity it will be considered as a `ManyToOne`
- `orphanRemoval` on `OneToOne` have been removed, this means that when assigning a new object relation to an entity, the previous one gets deconected but not deleted automatically. This prevent removing data un volountarely

**NOTE**
As per our convention here are some information to keep in mind

**HasOne <> BelongsTo**
Define `OneToOne`, The foreign key is owned by the belongs to and the relation needs to be provided to cascade if wanted

**HasMany <> BelongsTo**
Define `OneToMane` <> `ManyToOne`, the foreign key is owned by the many to one and for those relation no cascade will be performed, the foreign key must be provided. For the `HasMany` the cascade is available

**HasOne (with FK)**
Will act similarly to belongs to with **HasOne <> BelongsTo**

Co-authored-by: Carlos R. L. Rodrigues <37986729+carlos-r-l-rodrigues@users.noreply.github.com>
2024-12-19 16:40:11 +00:00
Riqwan Thamir d08b71f9b8 fix(product): updating collections with products fix (#10668) 2024-12-19 16:31:45 +01:00
Riqwan Thamir 5d1098ceb9 fix(core-flows): refresh payment collections upon shipping changes (#10673)
* fix(core-flows): refresh payment collections upon shipping changes

* chore: fix spec
2024-12-19 16:31:17 +01:00
Shahed Nasser 9d85e663b8 fix(core-flows): use useQueryGraphStep instead of useQueryStep (#10643)
Replace usage of `useQueryStep` with `useGraphQueryStep` and remove `useQueryStep`, as it's not exported by the package and seems to be a duplicate of `useGraphQueryStep`
2024-12-18 17:18:51 +00:00
Adrien de Peretti 048620884b chore(types): Keep intelisense while being more loosen (#10657)
**What**
Keep the autocompletion for the fields API in Query APIs while being more flexible in order to prevent limitation from our depth limit but also to be more flexible when assigning string[] coming from the API for example.
2024-12-18 17:12:31 +00:00
Oli Juhl c9b8db04c1 feat: Custom line items (#10408)
* feat: Custom line items

* fix tests

* fix migration

* Allow custom items in update line item workflow

* throw if line item doesn't have a price

* minor things

* wip

* fix flows

* fix test

* add default

* add to type
2024-12-18 12:53:57 +01:00
Shahed Nasser 1232a43fce fix(core-flows): export getItemTaxLinesStep (#10640) 2024-12-17 19:31:55 +02:00
Nathan John 2ad08c4c44 Add FilterableRefundReason filter by description and label (#10606) 2024-12-17 15:54:06 +00:00
olivermrbl a391a29aa8 chore: Version packages 2024-12-17 14:41:05 +01:00
Riqwan Thamir 6367bccde8 feat(medusa,pricing): Cart pricing context with customer group (#10579)
* fix(carts): Fixes cart modifications not accounting for certain price lists (#10493)

*What*

* Fixes #10490
* Expands any available customer_id into its customer_group_ids for cart
  updates that add line items.

*Why*

* Cart updates from the storefront were overriding any valid price lists
  that were correctly being shown in the storefront's product pages.

*How*

* Adds a new workflow step that expands an optional customer_id into the
  customer_group_ids it belongs to.
* Uses this step in the addToCartWorkflow and
  updateLineItemInCartWorkflow workflows.

*Testing*
* Using medusa-dev to test on a local backend.
* Adds integration tests for the addToCart and updateLineItemInCart
  workflows.

Co-authored-by: Riqwan Thamir <rmthamir@gmail.com>

* chore: update cart workflows to accept new pricing context

* chore: add transfer specs

* chore: fix specs

* chore: modify types + specs

* chore: add data migration + dashboard changes

* chore: fix update line item workflow

* chore: add changeset + unskip spec

---------

Co-authored-by: Sergio Campamá <sergiocampama@gmail.com>
2024-12-17 11:10:30 +01:00
Carlos R. L. Rodrigues 95baacfd00 fix(cart): Tax rate data type (#10626)
* fix(cart): tax rate data type

* update test
2024-12-16 20:09:05 +01:00
Riqwan Thamir 90ad2566fd feat(types,fulfillment): ability to delete a canceled fulfillment (#10602) 2024-12-16 11:17:45 +01:00
Carlos R. L. Rodrigues 729eb5da7b chore(inventory): convert to dml (#10569)
Fixes: FRMW-2848

Co-authored-by: Harminder Virk <1706381+thetutlage@users.noreply.github.com>
2024-12-13 12:51:26 +00:00
Harminder Virk e021c9258c Feat/tax dml (#10525)
Fixes: FRMW-2842

There are zero breaking changes and the users will have to run the migrations
2024-12-12 09:35:11 +00:00
Harminder Virk 885c82ded6 feat: add support for float properties (#10551) 2024-12-12 10:34:39 +05:30
Carlos R. L. Rodrigues 0264294ab5 chore(payment): Payment module DML (#10553)
* chore(payment): Payment module DML

* rm log

* migration
2024-12-11 13:09:10 -03:00
Kasper Fabricius Kristensen dc5e73af4d fix(dashboard): Prevent fulfillment provider modal from re-rendering before form submission is complete (#10547)
Resolves CMRC-782
2024-12-11 13:10:58 +00:00
Harminder Virk 16d27ea6e4 feat: Migrate customer module to DML (#10499) 2024-12-11 14:37:27 +05:30
Harminder Virk fad85a9d29 refactor: migrate promotion module (#10410) 2024-12-11 13:12:39 +05:30
Kasper Fabricius Kristensen 16192d9b30 fix(product): Only apply default order to products if user has not specified one (#10535) 2024-12-10 16:57:11 +00:00
Harminder Virk 4ad9ac1e5f refactor: migration stock location module (#10471)
Fixes: FRMW-2831
2024-12-10 16:08:48 +00:00
olivermrbl 0e342b491d chore: Version packages 2024-12-10 14:01:50 +01:00
Kasper Fabricius Kristensen de81187929 fix(dashboard): Add FE validation for conditional prices (#10523)
* fix(dashboard): Add FE validation for conditional prices

* fix(dashboard): Add FE validation for conditional prices

* lint

* only set error on one field

* fix which field shows error
2024-12-10 11:57:10 +01:00
Carlos R. L. Rodrigues 69f4c4f4e0 chore(index): index dml (#10482)
What:
- DML - `autoincrement` property
- Index `type` option (GIN)
- Index module - DML
2024-12-10 10:55:12 +00:00
Kasper Fabricius Kristensen c9a66b19af fix(dashboard,ui): ConditionBlock styling (#10481)
**What**
- Resolves CMRC-58
- Also fixes some other issues, TS errors, Eslint warnings etc. in the Promotion domain. There are still several TS errors as the return types from `@medusajs/types` don't seem to match how they are used here, but I have left that as is, as I am not super familiar with the Promotion module.
2024-12-09 17:42:19 +00:00
Riqwan Thamir a04238a7f1 fix(payment): ensure that payment error is captured in logger (#10506)
what:

- when an error occurs upon retrieving a provider, log the original error through the logger

Helps https://github.com/medusajs/medusa/issues/10500 in debugging.
2024-12-09 16:44:32 +00:00