From 8d51859da3f88ed3ad0f71c9ce8d29c55e0e111d Mon Sep 17 00:00:00 2001 From: Stevche Radevski Date: Fri, 5 Apr 2024 13:48:56 +0200 Subject: [PATCH] feat: Add boilerplate for the file module --- packages/core-flows/src/file/index.ts | 2 + .../core-flows/src/file/steps/delete-files.ts | 17 ++ packages/core-flows/src/file/steps/index.ts | 2 + .../core-flows/src/file/steps/upload-files.ts | 37 +++ .../src/file/workflows/delete-files.ts | 12 + .../core-flows/src/file/workflows/index.ts | 2 + .../src/file/workflows/upload-files.ts | 19 ++ packages/core-flows/src/index.ts | 1 + packages/file/.gitignore | 6 + packages/file/CHANGELOG.md | 282 ++++++++++++++++++ packages/file/README.md | 1 + .../__tests__/module.spec.ts | 5 + packages/file/jest.config.js | 20 ++ packages/file/package.json | 61 ++++ packages/file/src/index.ts | 10 + packages/file/src/joiner-config.ts | 22 ++ packages/file/src/loaders/index.ts | 0 packages/file/src/module-definition.ts | 18 ++ .../file/src/services/__tests__/file.spec.ts | 3 + .../file/src/services/file-module-service.ts | 42 +++ packages/file/src/services/index.ts | 1 + packages/file/tsconfig.json | 37 +++ packages/file/tsconfig.spec.json | 8 + .../src/api-v2/admin/uploads/[id]/route.ts | 45 +++ .../src/api-v2/admin/uploads/middlewares.ts | 32 ++ .../src/api-v2/admin/uploads/query-config.ts | 6 + .../medusa/src/api-v2/admin/uploads/route.ts | 28 ++ packages/medusa/src/api-v2/middlewares.ts | 2 + packages/modules-sdk/src/definitions.ts | 16 + packages/types/src/bundles.ts | 1 + packages/types/src/file/common.ts | 13 + packages/types/src/file/index.ts | 3 + packages/types/src/file/mutations.ts | 19 ++ packages/types/src/file/service.ts | 85 ++++++ packages/types/src/index.ts | 1 + yarn.lock | 28 ++ 36 files changed, 887 insertions(+) create mode 100644 packages/core-flows/src/file/index.ts create mode 100644 packages/core-flows/src/file/steps/delete-files.ts create mode 100644 packages/core-flows/src/file/steps/index.ts create mode 100644 packages/core-flows/src/file/steps/upload-files.ts create mode 100644 packages/core-flows/src/file/workflows/delete-files.ts create mode 100644 packages/core-flows/src/file/workflows/index.ts create mode 100644 packages/core-flows/src/file/workflows/upload-files.ts create mode 100644 packages/file/.gitignore create mode 100644 packages/file/CHANGELOG.md create mode 100644 packages/file/README.md create mode 100644 packages/file/integration-tests/__tests__/module.spec.ts create mode 100644 packages/file/jest.config.js create mode 100644 packages/file/package.json create mode 100644 packages/file/src/index.ts create mode 100644 packages/file/src/joiner-config.ts create mode 100644 packages/file/src/loaders/index.ts create mode 100644 packages/file/src/module-definition.ts create mode 100644 packages/file/src/services/__tests__/file.spec.ts create mode 100644 packages/file/src/services/file-module-service.ts create mode 100644 packages/file/src/services/index.ts create mode 100644 packages/file/tsconfig.json create mode 100644 packages/file/tsconfig.spec.json create mode 100644 packages/medusa/src/api-v2/admin/uploads/[id]/route.ts create mode 100644 packages/medusa/src/api-v2/admin/uploads/middlewares.ts create mode 100644 packages/medusa/src/api-v2/admin/uploads/query-config.ts create mode 100644 packages/medusa/src/api-v2/admin/uploads/route.ts create mode 100644 packages/types/src/file/common.ts create mode 100644 packages/types/src/file/index.ts create mode 100644 packages/types/src/file/mutations.ts create mode 100644 packages/types/src/file/service.ts diff --git a/packages/core-flows/src/file/index.ts b/packages/core-flows/src/file/index.ts new file mode 100644 index 0000000000000..68de82c9f92da --- /dev/null +++ b/packages/core-flows/src/file/index.ts @@ -0,0 +1,2 @@ +export * from "./steps" +export * from "./workflows" diff --git a/packages/core-flows/src/file/steps/delete-files.ts b/packages/core-flows/src/file/steps/delete-files.ts new file mode 100644 index 0000000000000..682370e4624bb --- /dev/null +++ b/packages/core-flows/src/file/steps/delete-files.ts @@ -0,0 +1,17 @@ +import { ModuleRegistrationName } from "@medusajs/modules-sdk" +import { IFileModuleService } from "@medusajs/types" +import { StepResponse, createStep } from "@medusajs/workflows-sdk" + +export const deleteFilesStepId = "delete-files" +export const deleteFilesStep = createStep( + { name: deleteFilesStepId, noCompensation: true }, + async (ids: string[], { container }) => { + const service = container.resolve( + ModuleRegistrationName.FILE + ) + + await service.delete(ids) + return new StepResponse(void 0) + }, + async () => {} +) diff --git a/packages/core-flows/src/file/steps/index.ts b/packages/core-flows/src/file/steps/index.ts new file mode 100644 index 0000000000000..d7768a798b18c --- /dev/null +++ b/packages/core-flows/src/file/steps/index.ts @@ -0,0 +1,2 @@ +export * from "./upload-files" +export * from "./delete-files" diff --git a/packages/core-flows/src/file/steps/upload-files.ts b/packages/core-flows/src/file/steps/upload-files.ts new file mode 100644 index 0000000000000..c1a9cfc016f4a --- /dev/null +++ b/packages/core-flows/src/file/steps/upload-files.ts @@ -0,0 +1,37 @@ +import { ModuleRegistrationName } from "@medusajs/modules-sdk" +import { IFileModuleService } from "@medusajs/types" +import { StepResponse, createStep } from "@medusajs/workflows-sdk" + +type UploadFilesStepInput = { + files: { + filename: string + mimeType: string + content: Blob + }[] +} + +export const uploadFilesStepId = "upload-files" +export const uploadFilesStep = createStep( + uploadFilesStepId, + async (data: UploadFilesStepInput, { container }) => { + const service = container.resolve( + ModuleRegistrationName.FILE + ) + const created = await service.create(data.files) + return new StepResponse( + created, + created.map((file) => file.id) + ) + }, + async (createdIds, { container }) => { + if (!createdIds?.length) { + return + } + + const service = container.resolve( + ModuleRegistrationName.FILE + ) + + await service.delete(createdIds) + } +) diff --git a/packages/core-flows/src/file/workflows/delete-files.ts b/packages/core-flows/src/file/workflows/delete-files.ts new file mode 100644 index 0000000000000..a5e680d9acb0b --- /dev/null +++ b/packages/core-flows/src/file/workflows/delete-files.ts @@ -0,0 +1,12 @@ +import { WorkflowData, createWorkflow } from "@medusajs/workflows-sdk" +import { deleteFilesStep } from "../steps" + +type WorkflowInput = { ids: string[] } + +export const deleteFilesWorkflowId = "delete-files" +export const deleteFilesWorkflow = createWorkflow( + deleteFilesWorkflowId, + (input: WorkflowData): WorkflowData => { + deleteFilesStep(input.ids) + } +) diff --git a/packages/core-flows/src/file/workflows/index.ts b/packages/core-flows/src/file/workflows/index.ts new file mode 100644 index 0000000000000..d7768a798b18c --- /dev/null +++ b/packages/core-flows/src/file/workflows/index.ts @@ -0,0 +1,2 @@ +export * from "./upload-files" +export * from "./delete-files" diff --git a/packages/core-flows/src/file/workflows/upload-files.ts b/packages/core-flows/src/file/workflows/upload-files.ts new file mode 100644 index 0000000000000..be3884d33692a --- /dev/null +++ b/packages/core-flows/src/file/workflows/upload-files.ts @@ -0,0 +1,19 @@ +import { FileDTO } from "@medusajs/types" +import { WorkflowData, createWorkflow } from "@medusajs/workflows-sdk" +import { uploadFilesStep } from "../steps" + +type WorkflowInput = { + files: { + filename: string + mimeType: string + content: Blob + }[] +} + +export const uploadFilesWorkflowId = "upload-files" +export const uploadFilesWorkflow = createWorkflow( + uploadFilesWorkflowId, + (input: WorkflowData): WorkflowData => { + return uploadFilesStep(input) + } +) diff --git a/packages/core-flows/src/index.ts b/packages/core-flows/src/index.ts index 7a46c1866fdc5..cafab60bca2dc 100644 --- a/packages/core-flows/src/index.ts +++ b/packages/core-flows/src/index.ts @@ -21,3 +21,4 @@ export * from "./stock-location" export * from "./store" export * from "./tax" export * from "./user" +export * from "./file" diff --git a/packages/file/.gitignore b/packages/file/.gitignore new file mode 100644 index 0000000000000..874c6c69d3341 --- /dev/null +++ b/packages/file/.gitignore @@ -0,0 +1,6 @@ +/dist +node_modules +.DS_store +.env* +.env +*.sql diff --git a/packages/file/CHANGELOG.md b/packages/file/CHANGELOG.md new file mode 100644 index 0000000000000..a5019c0b547ea --- /dev/null +++ b/packages/file/CHANGELOG.md @@ -0,0 +1,282 @@ +# @medusajs/product + +## 0.3.11 + +### Patch Changes + +- [#6748](https://github.com/medusajs/medusa/pull/6748) [`05e857d256`](https://github.com/medusajs/medusa/commit/05e857d25657b5576a891c9b48c19c1759c70701) Thanks [@sradevski](https://github.com/sradevski)! - Updated the signature of the product module variant and options endpoints to follow our conventions + +- Updated dependencies [[`06f22bb48a`](https://github.com/medusajs/medusa/commit/06f22bb48ad1fe73577657b8c5db055312f16a0d), [`deab12e27e`](https://github.com/medusajs/medusa/commit/deab12e27e8249e26d24d7bc904c18195679ff24), [`56481e683d`](https://github.com/medusajs/medusa/commit/56481e683d33ff98f0d4c4e144873bb23f993c9c), [`9073d7aba3`](https://github.com/medusajs/medusa/commit/9073d7aba3419e4dc0a206473291a46ebd79b8c1), [`4974f5e455`](https://github.com/medusajs/medusa/commit/4974f5e4557bd64a328a881ec02b91e15485bd23), [`05e857d256`](https://github.com/medusajs/medusa/commit/05e857d25657b5576a891c9b48c19c1759c70701), [`1ef9c78cea`](https://github.com/medusajs/medusa/commit/1ef9c78cea080c3b7c136f909c6cddec9d8f0c62)]: + - @medusajs/modules-sdk@1.12.10 + - @medusajs/types@1.11.15 + - @medusajs/utils@1.11.8 + +## 0.3.10 + +### Patch Changes + +- [#6358](https://github.com/medusajs/medusa/pull/6358) [`b91a1ca5b8`](https://github.com/medusajs/medusa/commit/b91a1ca5b804e66cf5bfc51403f4367a935e6349) Thanks [@adrien2p](https://github.com/adrien2p)! - chore: cleanup inspection + +- [#6408](https://github.com/medusajs/medusa/pull/6408) [`1d91b7429b`](https://github.com/medusajs/medusa/commit/1d91b7429beebd6f09d5027f7f7e1fe74ce3a8ff) Thanks [@adrien2p](https://github.com/adrien2p)! - feat(fulfillment): implementation part 2 + +- [#6700](https://github.com/medusajs/medusa/pull/6700) [`8f8a4f9b13`](https://github.com/medusajs/medusa/commit/8f8a4f9b1353087d98f6cc75346d43a7f49901a8) Thanks [@olivermrbl](https://github.com/olivermrbl)! - chore: Version all modules to allow for initial testing + +- Updated dependencies [[`1fd0457c15`](https://github.com/medusajs/medusa/commit/1fd0457c153b2ef7657c052878d8e5364e1b324a), [`9288f53327`](https://github.com/medusajs/medusa/commit/9288f53327b8ce617af92ed8d14d9459cbfeb13c), [`d4b921f3db`](https://github.com/medusajs/medusa/commit/d4b921f3dbe0a38f1565a8de759996c70798d58e), [`ac86362e81`](https://github.com/medusajs/medusa/commit/ac86362e81d8523cb8e3dfad026fc94658513018), [`e4acde1aa2`](https://github.com/medusajs/medusa/commit/e4acde1aa2eb57f07e6692fe8b61f728948b9a96), [`1a661adf3e`](https://github.com/medusajs/medusa/commit/1a661adf3ef4991aa6e237dd894b6a5c47cd4aca), [`56cbf88115`](https://github.com/medusajs/medusa/commit/56cbf88115994adea7037c3f2814f0c96af3cfc0), [`36a61658f9`](https://github.com/medusajs/medusa/commit/36a61658f969a7b19c84a1e621ad1464927cafb1), [`04a532e5ef`](https://github.com/medusajs/medusa/commit/04a532e5efabbf75b1e4155520b1da175b686ffc), [`c319edb8e0`](https://github.com/medusajs/medusa/commit/c319edb8e0ecd13d086652147667916e5abab2d8), [`0b9fcb6324`](https://github.com/medusajs/medusa/commit/0b9fcb6324eee9f2556c7e6317775fae93b12a47), [`586df9da25`](https://github.com/medusajs/medusa/commit/586df9da250e492442769f5bac2f8b3de1d46f05), [`b3d826497b`](https://github.com/medusajs/medusa/commit/b3d826497b3dae5e1b26b7924706c24fd5e87ca5), [`a86c87fe14`](https://github.com/medusajs/medusa/commit/a86c87fe1442afce9285e39255914e01012b4449), [`640eccd5dd`](https://github.com/medusajs/medusa/commit/640eccd5ddbb163e0f987ce6c772f1129c2e2632), [`8ea37d03c9`](https://github.com/medusajs/medusa/commit/8ea37d03c914a5004a3e42770668b2d1f7f8f564), [`339a946f38`](https://github.com/medusajs/medusa/commit/339a946f389033c21e05338f9dbf07d88e140533), [`ac829fc67f`](https://github.com/medusajs/medusa/commit/ac829fc67f7495b08f28e55923c59f0fd6320311), [`d9d5afc3cf`](https://github.com/medusajs/medusa/commit/d9d5afc3cfc29221d0e65bff7b78474a8fb8f31f), [`c3c4f49fc2`](https://github.com/medusajs/medusa/commit/c3c4f49fc2126f950e69e291ca939ca88a15afd3), [`9288f53327`](https://github.com/medusajs/medusa/commit/9288f53327b8ce617af92ed8d14d9459cbfeb13c), [`0d46abf0ff`](https://github.com/medusajs/medusa/commit/0d46abf0ffa4c5e03bf7d2a9cdf1db828a76bea8), [`fafde4f54d`](https://github.com/medusajs/medusa/commit/fafde4f54d3ef75a7d382e6cbf94e38b3deae99b), [`8dad2b51a2`](https://github.com/medusajs/medusa/commit/8dad2b51a26c4c3c14a6c95f70424c8bef2ad63e), [`0c705d7bd4`](https://github.com/medusajs/medusa/commit/0c705d7bd41a768c48017ae95b3c8414d96c6acb), [`a6d7070dd6`](https://github.com/medusajs/medusa/commit/a6d7070dd669c21ea19d70434d42c2f8167dc309), [`1d91b7429b`](https://github.com/medusajs/medusa/commit/1d91b7429beebd6f09d5027f7f7e1fe74ce3a8ff), [`168f02f138`](https://github.com/medusajs/medusa/commit/168f02f138ad101e1013f2c8c3f8dc19de12accf), [`1ed5f918c3`](https://github.com/medusajs/medusa/commit/1ed5f918c31794a70aca4a4e4cd83cf456593baa), [`c20eb15cd9`](https://github.com/medusajs/medusa/commit/c20eb15cd9b1bd90c8d01f68eca6f0f181cd902d), [`e5945479e0`](https://github.com/medusajs/medusa/commit/e5945479e091d9560ae3e7240306a31031ef4584), [`f5c2256286`](https://github.com/medusajs/medusa/commit/f5c22562867f412040f8bc6c55ab5de3a3735e62), [`000eb61e33`](https://github.com/medusajs/medusa/commit/000eb61e33e0302db95ee6ad1656ea9b430ed471), [`d550be3685`](https://github.com/medusajs/medusa/commit/d550be3685423218d47a20c57a5e06758f4a961a), [`62a7bcc30c`](https://github.com/medusajs/medusa/commit/62a7bcc30cbc7b234b2b51d7858439951a84edeb), [`8f8a4f9b13`](https://github.com/medusajs/medusa/commit/8f8a4f9b1353087d98f6cc75346d43a7f49901a8), [`6500f18b9b`](https://github.com/medusajs/medusa/commit/6500f18b9b80c5c9c473489e7e740d55dca74303), [`ce39b9b66e`](https://github.com/medusajs/medusa/commit/ce39b9b66e8c277ec0691ea6d0a950003be09cc1), [`a6a4b3f01a`](https://github.com/medusajs/medusa/commit/a6a4b3f01a6d2bd97b1580c59134279a1b033a5d), [`4d51f095b3`](https://github.com/medusajs/medusa/commit/4d51f095b3f98f468cefb760512563f7b77bb9cf), [`4625bd1241`](https://github.com/medusajs/medusa/commit/4625bd12416275b09c22cde4a09cb0f68df5d7c1), [`56b0b45304`](https://github.com/medusajs/medusa/commit/56b0b4530401a6ec5aa155874d371e45bb388fe2), [`cc1b66842c`](https://github.com/medusajs/medusa/commit/cc1b66842cbb37c6eab84e2d8b74844c214f38d7), [`24fb102a56`](https://github.com/medusajs/medusa/commit/24fb102a564b1253d1f8b039bb1e435cc5312fbb), [`e85463b2a7`](https://github.com/medusajs/medusa/commit/e85463b2a717751de2e21c39a4c745449b31affe)]: + - @medusajs/types@1.11.14 + - @medusajs/utils@1.11.7 + - @medusajs/modules-sdk@1.12.9 + +## 0.3.9 + +### Patch Changes + +- [#6263](https://github.com/medusajs/medusa/pull/6263) [`45134e4d1`](https://github.com/medusajs/medusa/commit/45134e4d11cfcdc08dbd10aae687bfbe9e848ab9) Thanks [@carlos-r-l-rodrigues](https://github.com/carlos-r-l-rodrigues)! - Workflows passing MedusaContext as argument + +- [#6218](https://github.com/medusajs/medusa/pull/6218) [`884428a1b`](https://github.com/medusajs/medusa/commit/884428a1b573e499d7659aefed639bf797147428) Thanks [@carlos-r-l-rodrigues](https://github.com/carlos-r-l-rodrigues)! - Feat: Event Aggregator + +- Updated dependencies [[`12054f5c0`](https://github.com/medusajs/medusa/commit/12054f5c01915899223ddc6da734151b31fbb23b), [`3db2f95e65`](https://github.com/medusajs/medusa/commit/3db2f95e65909f4fff432990b48be74509052e83), [`96ba49329`](https://github.com/medusajs/medusa/commit/96ba49329b6b05922c90f0c55f16455cb40aa5ca), [`45134e4d1`](https://github.com/medusajs/medusa/commit/45134e4d11cfcdc08dbd10aae687bfbe9e848ab9), [`82c728bec`](https://github.com/medusajs/medusa/commit/82c728bec7232a245a67dca0b01b28572ebea75d), [`e749dd653`](https://github.com/medusajs/medusa/commit/e749dd653c755bfc3632b134d32c15ceaee0a852), [`884428a1b`](https://github.com/medusajs/medusa/commit/884428a1b573e499d7659aefed639bf797147428), [`d1c18a309`](https://github.com/medusajs/medusa/commit/d1c18a3090d71c68a98343fdbb53516f416504c5), [`882aa549b`](https://github.com/medusajs/medusa/commit/882aa549bdcc6f378934eab2a7c485df354f46aa)]: + - @medusajs/utils@1.11.5 + - @medusajs/modules-sdk@1.12.8 + - @medusajs/types@1.11.12 + +## 0.3.8 + +### Patch Changes + +- [#6021](https://github.com/medusajs/medusa/pull/6021) [`a9b4214503`](https://github.com/medusajs/medusa/commit/a9b42145032ee88aa922a11fe03e777b140c68f4) Thanks [@adrien2p](https://github.com/adrien2p)! - chore(utils, product): Attempt to simplify module scripts export + +- [#5763](https://github.com/medusajs/medusa/pull/5763) [`d85fee42e`](https://github.com/medusajs/medusa/commit/d85fee42ee7f661310584dfee5741d6c53b989bb) Thanks [@carlos-r-l-rodrigues](https://github.com/carlos-r-l-rodrigues)! - Medusa App loading modules reference + +- [#6127](https://github.com/medusajs/medusa/pull/6127) [`5e655dd59`](https://github.com/medusajs/medusa/commit/5e655dd59bda4ffface28db38021ba71cae6de10) Thanks [@adrien2p](https://github.com/adrien2p)! - chore: Hide repository creation if they are not custom + add upsert support by default + +- [#6035](https://github.com/medusajs/medusa/pull/6035) [`b6ac768698`](https://github.com/medusajs/medusa/commit/b6ac768698a3b49d0162cb49e628386f3352d034) Thanks [@adrien2p](https://github.com/adrien2p)! - chore: Attempt to abstract the modules repository + +- [#6087](https://github.com/medusajs/medusa/pull/6087) [`130c641e5c`](https://github.com/medusajs/medusa/commit/130c641e5c91cf831de64fb87aebbfdc4d23530d) Thanks [@adrien2p](https://github.com/adrien2p)! - chore: Abstract module services + +- Updated dependencies [[`68ddd866a5`](https://github.com/medusajs/medusa/commit/68ddd866a5ff9414e2db5b80d75acc5e81948540), [`72bc52231c`](https://github.com/medusajs/medusa/commit/72bc52231ca3a72fa6d197a248fe07a938ed0d85), [`99045848f`](https://github.com/medusajs/medusa/commit/99045848fd3e863359c7878d9bc05271ed083a0e), [`af7af7374`](https://github.com/medusajs/medusa/commit/af7af737455daa0f330840a9678e6339e519dfe6), [`fc6b1772a7`](https://github.com/medusajs/medusa/commit/fc6b1772a71582bb48602c5cac7b2297e9d267a9), [`a9b4214503`](https://github.com/medusajs/medusa/commit/a9b42145032ee88aa922a11fe03e777b140c68f4), [`d85fee42e`](https://github.com/medusajs/medusa/commit/d85fee42ee7f661310584dfee5741d6c53b989bb), [`5e655dd59`](https://github.com/medusajs/medusa/commit/5e655dd59bda4ffface28db38021ba71cae6de10), [`b132ff7669`](https://github.com/medusajs/medusa/commit/b132ff76693148b3a06373c168e8dd5e02970757), [`e28fa7fbdf`](https://github.com/medusajs/medusa/commit/e28fa7fbdf45c5b1fa19848db731132a0bf1757d), [`a12c28b7d5`](https://github.com/medusajs/medusa/commit/a12c28b7d5faed733bebbb4963dff50b9c8a33bc), [`b782d3bcb7`](https://github.com/medusajs/medusa/commit/b782d3bcb7e8088a962584b9a55200dd29c2161c), [`2b9f98895e`](https://github.com/medusajs/medusa/commit/2b9f98895eaca255e01278674b11cd7cb69b388f), [`7f7cb2a263`](https://github.com/medusajs/medusa/commit/7f7cb2a263c26baf540b05a40ab3732ffeb0c73c), [`302323916`](https://github.com/medusajs/medusa/commit/302323916b6d8eaf571cd59b5fc92a913af207de), [`da5cc4cf7`](https://github.com/medusajs/medusa/commit/da5cc4cf7f7f0ef40d409704a95b025ce95477f4), [`daecd82a7`](https://github.com/medusajs/medusa/commit/daecd82a7cdf7315599f464999690414c20d6748), [`ce81cade88`](https://github.com/medusajs/medusa/commit/ce81cade887659cefe9638e3c1c2807378191c62), [`fd78f5e24`](https://github.com/medusajs/medusa/commit/fd78f5e24263f5e158c3b7d11fbf0a4436e9c17a), [`192bc336cc`](https://github.com/medusajs/medusa/commit/192bc336cc2b6ec3820d94524c046dcd3c4ac7d9), [`06b33a9b4`](https://github.com/medusajs/medusa/commit/06b33a9b4525b77b1b14b35b973209700945654e), [`b6ac768698`](https://github.com/medusajs/medusa/commit/b6ac768698a3b49d0162cb49e628386f3352d034), [`130c641e5c`](https://github.com/medusajs/medusa/commit/130c641e5c91cf831de64fb87aebbfdc4d23530d), [`fade8ea7bf`](https://github.com/medusajs/medusa/commit/fade8ea7bf560343ecbde116d226ac44053cdb8e), [`8472460f53`](https://github.com/medusajs/medusa/commit/8472460f533322cc4535199aa768ac163021bc79), [`68d8daccd`](https://github.com/medusajs/medusa/commit/68d8daccd2a8508a13e211130e49017198b51fab)]: + - @medusajs/types@1.11.11 + - @medusajs/utils@1.11.4 + - @medusajs/modules-sdk@1.12.7 + +## 0.3.7 + +### Patch Changes + +- [#5985](https://github.com/medusajs/medusa/pull/5985) [`d16d10619`](https://github.com/medusajs/medusa/commit/d16d10619dfbd3966a4709753de3d8cc37c6f2eb) Thanks [@pKorsholm](https://github.com/pKorsholm)! - fix(medusa-test-utils, utils, link-modules, pricing, product): upgrade mikro-orm version + +- Updated dependencies [[`6d1e3cc02`](https://github.com/medusajs/medusa/commit/6d1e3cc0285ef157fd6486060e8b32c00c01aa80), [`42cc8ae3f`](https://github.com/medusajs/medusa/commit/42cc8ae3f89ed7d642e51654d1a3cca011f13155), [`45996d58a2`](https://github.com/medusajs/medusa/commit/45996d58a2665d72335faad11bea958f8da74195), [`9cc787cac4`](https://github.com/medusajs/medusa/commit/9cc787cac4bf1c5d8edf1c4b548bb3205100e822), [`355075097`](https://github.com/medusajs/medusa/commit/3550750975a0c9359fd887929377733606ef03af), [`dc46ee118`](https://github.com/medusajs/medusa/commit/dc46ee1189c3eb719355da6a1d701c14a77e4578), [`925feea04`](https://github.com/medusajs/medusa/commit/925feea04a8222285175c33577548e50516069a7), [`3f6d79961`](https://github.com/medusajs/medusa/commit/3f6d79961dec1c5eb8950f8eacd94a5d87a4acde), [`fbee006e5`](https://github.com/medusajs/medusa/commit/fbee006e512ef2d56ffb23eeabad8b51b56be285), [`c41f3002f`](https://github.com/medusajs/medusa/commit/c41f3002f3118b1f195c5c822fe0f400091d115b), [`d16d10619`](https://github.com/medusajs/medusa/commit/d16d10619dfbd3966a4709753de3d8cc37c6f2eb), [`c1c470e6b`](https://github.com/medusajs/medusa/commit/c1c470e6b8646c5f0b4bca56a8e785f6c34e1fef), [`890e76a5c`](https://github.com/medusajs/medusa/commit/890e76a5c53039576c42ca4d46af6f6977cdebd1), [`fe007d01b`](https://github.com/medusajs/medusa/commit/fe007d01bd827f0e09ee545e48cef18913540c68), [`76332ca6c`](https://github.com/medusajs/medusa/commit/76332ca6c153a786acc07d3f06ff45c3b9346fd3)]: + - @medusajs/modules-sdk@1.12.6 + - @medusajs/types@1.11.10 + - @medusajs/utils@1.11.3 + +## 0.3.6 + +### Patch Changes + +- [#5755](https://github.com/medusajs/medusa/pull/5755) [`8f25ed8a1`](https://github.com/medusajs/medusa/commit/8f25ed8a10fe23e9342dc3d03545546b4ad4d6da) Thanks [@adrien2p](https://github.com/adrien2p)! - feat(link-modules, pricing, product, utils): Should be able to set some custom database config even in shared mode + +- Updated dependencies [[`079f0da83`](https://github.com/medusajs/medusa/commit/079f0da83f482562bbb525807ee1a7e32993b4da), [`c4deeee48`](https://github.com/medusajs/medusa/commit/c4deeee481399f5371d773173e20dc149d502e20), [`8f25ed8a1`](https://github.com/medusajs/medusa/commit/8f25ed8a10fe23e9342dc3d03545546b4ad4d6da)]: + - @medusajs/types@1.11.9 + - @medusajs/utils@1.11.2 + - @medusajs/modules-sdk@1.12.5 + +## 0.3.5 + +### Patch Changes + +- [#5668](https://github.com/medusajs/medusa/pull/5668) [`a39ce125c`](https://github.com/medusajs/medusa/commit/a39ce125cc96f14732d5a6301313d2376484fa23) Thanks [@pKorsholm](https://github.com/pKorsholm)! - fix(workflows, product, types): Fix issues relating to update-variant workflow and options + +- [#5536](https://github.com/medusajs/medusa/pull/5536) [`dc5750dd6`](https://github.com/medusajs/medusa/commit/dc5750dd665a91d35c0246ba83c7f90ec74907f4) Thanks [@pKorsholm](https://github.com/pKorsholm)! - feat(medusa,types,workflows,utils,product,pricing): PricingModule Integration of PriceLists into Core + +- Updated dependencies [[`a39ce125c`](https://github.com/medusajs/medusa/commit/a39ce125cc96f14732d5a6301313d2376484fa23), [`18afe0b9a`](https://github.com/medusajs/medusa/commit/18afe0b9addb33ec2e3b285651b4eb1ef8065845), [`6025c702f`](https://github.com/medusajs/medusa/commit/6025c702f37d43e18af32bd716f33410d95efd19), [`de8f74867`](https://github.com/medusajs/medusa/commit/de8f748674bfd19b3dbadb9695d9080aa91940de), [`fc1ef29ed`](https://github.com/medusajs/medusa/commit/fc1ef29ed935e192f0943a2bf4b8fbb05ce6890d), [`0df1c7d42`](https://github.com/medusajs/medusa/commit/0df1c7d4273545bc717555611b9294a5c222e5ae), [`dc5750dd6`](https://github.com/medusajs/medusa/commit/dc5750dd665a91d35c0246ba83c7f90ec74907f4)]: + - @medusajs/types@1.11.8 + - @medusajs/utils@1.11.1 + - @medusajs/modules-sdk@1.12.4 + +## 0.3.4 + +### Patch Changes + +- [#5643](https://github.com/medusajs/medusa/pull/5643) [`c4722715c`](https://github.com/medusajs/medusa/commit/c4722715cd103e88ff8a3a3856d8138f211478ca) Thanks [@riqwan](https://github.com/riqwan)! - fix(product): when running migrations, prevent exploding on isolated case + +- Updated dependencies [[`61aef4aaa`](https://github.com/medusajs/medusa/commit/61aef4aaa7295f178c61c9a891f03a0a48b15c81), [`1772e80ed`](https://github.com/medusajs/medusa/commit/1772e80ed1ecab27741be80204f5df92eaa3f2b4), [`cedab5833`](https://github.com/medusajs/medusa/commit/cedab583395275444001f0268e4b9ccab9b2b262)]: + - @medusajs/types@1.11.7 + - @medusajs/utils@1.11.0 + +## 0.3.3 + +### Patch Changes + +- [#5533](https://github.com/medusajs/medusa/pull/5533) [`f88d75b0a`](https://github.com/medusajs/medusa/commit/f88d75b0a7621ff9788a24775fa53d4c2987b52d) Thanks [@adrien2p](https://github.com/adrien2p)! - feat(product, pricing, utils): Transaction issues and reference issues + refactoring + +- [`c39bf69a5`](https://github.com/medusajs/medusa/commit/c39bf69a5e5cae75d7fa12aa6022b10903557a32) Thanks [@olivermrbl](https://github.com/olivermrbl)! - chore: Add missing version bumps + +- Updated dependencies [[`91615f9c4`](https://github.com/medusajs/medusa/commit/91615f9c459a2d8cb842561c5edb335680d30298), [`c39bf69a5`](https://github.com/medusajs/medusa/commit/c39bf69a5e5cae75d7fa12aa6022b10903557a32), [`154c9b43b`](https://github.com/medusajs/medusa/commit/154c9b43bde1fdff562aba9da8a79af2660b29b3)]: + - @medusajs/types@1.11.6 + - @medusajs/modules-sdk@1.12.3 + - @medusajs/utils@1.10.5 + +## 0.3.2 + +### Patch Changes + +- [#5468](https://github.com/medusajs/medusa/pull/5468) [`a45da9215`](https://github.com/medusajs/medusa/commit/a45da9215d2a7834c368037726aaa3961caadaf9) Thanks [@adrien2p](https://github.com/adrien2p)! - fix(medusa, modules-sdk, modules): Module loading was missing the expected dependencies and remote query reference fix + +- Updated dependencies [[`148f537b4`](https://github.com/medusajs/medusa/commit/148f537b47635e8b73ebaa27bbfbe58624bfe641), [`a45da9215`](https://github.com/medusajs/medusa/commit/a45da9215d2a7834c368037726aaa3961caadaf9)]: + - @medusajs/types@1.11.5 + - @medusajs/modules-sdk@1.12.2 + +## 0.3.1 + +### Patch Changes + +- [#5387](https://github.com/medusajs/medusa/pull/5387) [`453297f52`](https://github.com/medusajs/medusa/commit/453297f525bd9f3aaa95bf0b28ff6cd31e6696b4) Thanks [@riqwan](https://github.com/riqwan)! - chore(product,types): fix interfaces for product module + +- Updated dependencies [[`378ca1b36`](https://github.com/medusajs/medusa/commit/378ca1b36e909a67e39c69ea5ca94ec58a345878), [`69cf7215f`](https://github.com/medusajs/medusa/commit/69cf7215f1f730ffb332129e65211470be1f88f1), [`453297f52`](https://github.com/medusajs/medusa/commit/453297f525bd9f3aaa95bf0b28ff6cd31e6696b4), [`b62af612c`](https://github.com/medusajs/medusa/commit/b62af612c7baa244075e546c949b89c4589bd2cf), [`e47461d95`](https://github.com/medusajs/medusa/commit/e47461d95caecf3a447ee9fa0b0950340b93f282), [`66413d094`](https://github.com/medusajs/medusa/commit/66413d094e916debbdb74b68800c96ca2c9302c9)]: + - @medusajs/utils@1.10.4 + - @medusajs/types@1.11.4 + - @medusajs/modules-sdk@1.12.1 + +## 0.3.0 + +### Minor Changes + +- [#5242](https://github.com/medusajs/medusa/pull/5242) [`130cbc1f4`](https://github.com/medusajs/medusa/commit/130cbc1f437af211b6d05f80128d90138abcd38d) Thanks [@carlos-r-l-rodrigues](https://github.com/carlos-r-l-rodrigues)! - Modules exporting schema with entities and fields + +### Patch Changes + +- Updated dependencies [[`eeceec791`](https://github.com/medusajs/medusa/commit/eeceec791c141996cf7fd06555afb6e738b52840), [`130cbc1f4`](https://github.com/medusajs/medusa/commit/130cbc1f437af211b6d05f80128d90138abcd38d), [`cb569c2df`](https://github.com/medusajs/medusa/commit/cb569c2dfe2d83e1ff72a49f2331450a83b73325), [`c5703a476`](https://github.com/medusajs/medusa/commit/c5703a4765a55da697885438cf3089d923669f21)]: + - @medusajs/utils@1.10.3 + - @medusajs/modules-sdk@1.12.0 + - @medusajs/types@1.11.3 + +## 0.2.1 + +### Patch Changes + +- [#4969](https://github.com/medusajs/medusa/pull/4969) [`30863fee5`](https://github.com/medusajs/medusa/commit/30863fee529ed035f161c749fda3cd64fa48efb1) Thanks [@adrien2p](https://github.com/adrien2p)! - feat: store List products remote query with product isolation + +- Updated dependencies [[`d8649baca`](https://github.com/medusajs/medusa/commit/d8649bacaa2ed784b9e7b2b0e1f1194d3697bb92), [`4fa675ec2`](https://github.com/medusajs/medusa/commit/4fa675ec25b3d6fccd881c4f5a5b91f0e9e13e82), [`6273b4b16`](https://github.com/medusajs/medusa/commit/6273b4b160493463e1199e5db4e9cfa4cff6fbe4), [`30863fee5`](https://github.com/medusajs/medusa/commit/30863fee529ed035f161c749fda3cd64fa48efb1), [`3d68be2b6`](https://github.com/medusajs/medusa/commit/3d68be2b6b93ae928f5c955e102ebdf2c34fb364), [`a87d07655`](https://github.com/medusajs/medusa/commit/a87d07655bd8a1da8b90feb739daddd09295f724), [`edf90eecb`](https://github.com/medusajs/medusa/commit/edf90eecb487f6e031f2e2d0899de5ca2504cb12), [`107aaa371`](https://github.com/medusajs/medusa/commit/107aaa371c444843874d125bf8bd493ef89f5756), [`834da5c41`](https://github.com/medusajs/medusa/commit/834da5c41a7c043373f72239b6fdbf7815d9b4aa)]: + - @medusajs/modules-sdk@1.11.0 + - @medusajs/types@1.11.1 + - @medusajs/utils@1.10.1 + +## 0.2.0 + +### Minor Changes + +- [`09d97fd05`](https://github.com/medusajs/medusa/commit/09d97fd05ea093225fadbb1e1698d324e490895e) Thanks [@olivermrbl](https://github.com/olivermrbl)! - chore(changesets): Add changeset minor bumping @medusajs/product + +- [#4695](https://github.com/medusajs/medusa/pull/4695) [`4d16acf5f`](https://github.com/medusajs/medusa/commit/4d16acf5f096b5656b645f510f9c971e7c2dc9ef) Thanks [@carlos-r-l-rodrigues](https://github.com/carlos-r-l-rodrigues)! - introduce @medusajs/link-modules + +### Patch Changes + +- [#4965](https://github.com/medusajs/medusa/pull/4965) [`66bd9a835`](https://github.com/medusajs/medusa/commit/66bd9a835c61b139af7051e5faf6c9de3c7134bb) Thanks [@riqwan](https://github.com/riqwan)! - feat(products,types,pricing): allow scoping products by collection_id, allow scoping pricing by currency_code + +- [#4915](https://github.com/medusajs/medusa/pull/4915) [`87bade096`](https://github.com/medusajs/medusa/commit/87bade096e3d536f29ddc57dbc4c04e5d7a46e4b) Thanks [@riqwan](https://github.com/riqwan)! - fix(utils, product, pricing, link-modules): add missing dependencies for utils + fix migration path issue + +- Updated dependencies [[`c3dba0694`](https://github.com/medusajs/medusa/commit/c3dba069488952945150117a30b1306a2e0bb3ce), [`460161a69`](https://github.com/medusajs/medusa/commit/460161a69f22cf6d561952e92e7d9b56912113e6), [`fcb6b4f51`](https://github.com/medusajs/medusa/commit/fcb6b4f510dba2757570625acb5da9476b7544fd), [`66bd9a835`](https://github.com/medusajs/medusa/commit/66bd9a835c61b139af7051e5faf6c9de3c7134bb), [`4d16acf5f`](https://github.com/medusajs/medusa/commit/4d16acf5f096b5656b645f510f9c971e7c2dc9ef), [`4d16acf5f`](https://github.com/medusajs/medusa/commit/4d16acf5f096b5656b645f510f9c971e7c2dc9ef), [`87bade096`](https://github.com/medusajs/medusa/commit/87bade096e3d536f29ddc57dbc4c04e5d7a46e4b), [`4d16acf5f`](https://github.com/medusajs/medusa/commit/4d16acf5f096b5656b645f510f9c971e7c2dc9ef), [`a4906d0ac`](https://github.com/medusajs/medusa/commit/a4906d0ac0af36b1382d3befe64281b404387bd7)]: + - @medusajs/modules-sdk@1.10.0 + - @medusajs/types@1.11.0 + - @medusajs/utils@1.10.0 + +## 0.1.7 + +### Patch Changes + +- [#4825](https://github.com/medusajs/medusa/pull/4825) [`c53fa6cd3`](https://github.com/medusajs/medusa/commit/c53fa6cd3be8b1af5625fc2db7871f9f69e761ad) Thanks [@carlos-r-l-rodrigues](https://github.com/carlos-r-l-rodrigues)! - Fix mikro-orm connection loader + +- Updated dependencies [[`c53fa6cd3`](https://github.com/medusajs/medusa/commit/c53fa6cd3be8b1af5625fc2db7871f9f69e761ad)]: + - @medusajs/utils@1.9.7 + +## 0.1.6 + +### Patch Changes + +- [#4626](https://github.com/medusajs/medusa/pull/4626) [`3f3a84262`](https://github.com/medusajs/medusa/commit/3f3a84262ce9cbd911923278a54e301fbe9a4634) Thanks [@adrien2p](https://github.com/adrien2p)! - [WIP] feat(types, product, utils, medusa): Include shared connection for modules + +- [#4731](https://github.com/medusajs/medusa/pull/4731) [`f8d3d5f91`](https://github.com/medusajs/medusa/commit/f8d3d5f91ac6282958911fe2f1973ad81f459747) Thanks [@adrien2p](https://github.com/adrien2p)! - chore(product): remove decorator where it is not necessary and cleanup + +- Updated dependencies [[`ac866ebb5`](https://github.com/medusajs/medusa/commit/ac866ebb5197ee694dda91824b501109012a3dd1), [`3f3a84262`](https://github.com/medusajs/medusa/commit/3f3a84262ce9cbd911923278a54e301fbe9a4634), [`30ce35b16`](https://github.com/medusajs/medusa/commit/30ce35b163afa25f4e1d8d1bd392f401a3b413df), [`281b0746c`](https://github.com/medusajs/medusa/commit/281b0746cfbe80b83c6a67d1ea120b47a0ea7121)]: + - @medusajs/types@1.10.2 + - @medusajs/modules-sdk@1.9.2 + - @medusajs/utils@1.9.6 + +## 0.1.5 + +### Patch Changes + +- [#4674](https://github.com/medusajs/medusa/pull/4674) [`4b80ba8a3`](https://github.com/medusajs/medusa/commit/4b80ba8a356806da3c92634e40e8946da25e35ee) Thanks [@adrien2p](https://github.com/adrien2p)! - fix(product, integration-tests): Fix integration tests + +- [#4654](https://github.com/medusajs/medusa/pull/4654) [`8af55aed8`](https://github.com/medusajs/medusa/commit/8af55aed87da7252c7c261175bc98331466a0da8) Thanks [@riqwan](https://github.com/riqwan)! - feat(product,types): added event bus events for products + +- [#4631](https://github.com/medusajs/medusa/pull/4631) [`4073b7313`](https://github.com/medusajs/medusa/commit/4073b73130c874dc7d2240726224a01b7b19b1a1) Thanks [@adrien2p](https://github.com/adrien2p)! - feat(product): Move mikro orm utils to the utils package + +- Updated dependencies [[`4b80ba8a3`](https://github.com/medusajs/medusa/commit/4b80ba8a356806da3c92634e40e8946da25e35ee), [`8af55aed8`](https://github.com/medusajs/medusa/commit/8af55aed87da7252c7c261175bc98331466a0da8), [`5c60aad17`](https://github.com/medusajs/medusa/commit/5c60aad177a99574ffff5ebdc02ce9dc86ef9af9), [`4073b7313`](https://github.com/medusajs/medusa/commit/4073b73130c874dc7d2240726224a01b7b19b1a1)]: + - @medusajs/modules-sdk@1.9.1 + - @medusajs/types@1.10.1 + - @medusajs/utils@1.9.5 + +## 0.1.4 + +### Patch Changes + +- [#4602](https://github.com/medusajs/medusa/pull/4602) [`585ebf245`](https://github.com/medusajs/medusa/commit/585ebf2454719ed36957ba798a189a45a5274c5a) Thanks [@adrien2p](https://github.com/adrien2p)! - fix(product): Serialize typings + +- [#4535](https://github.com/medusajs/medusa/pull/4535) [`131477faf`](https://github.com/medusajs/medusa/commit/131477faf0409c49d4aacf26ea591e33b2fa22fd) Thanks [@riqwan](https://github.com/riqwan)! - feat(product,types,utils): Add tags, types, categories, collection and options CRUD to product module services + +- [#4590](https://github.com/medusajs/medusa/pull/4590) [`a0a041e5c`](https://github.com/medusajs/medusa/commit/a0a041e5c9b8aa5a418f500ba17fca2bea53f728) Thanks [@riqwan](https://github.com/riqwan)! - fix(medusa): correct the type of initializer for modules + +- [#4504](https://github.com/medusajs/medusa/pull/4504) [`caea44ebf`](https://github.com/medusajs/medusa/commit/caea44ebfdf7393ace931ce2a9884105dadc4f8d) Thanks [@riqwan](https://github.com/riqwan)! - feat(product, types): added product module service update + +- Updated dependencies [[`585ebf245`](https://github.com/medusajs/medusa/commit/585ebf2454719ed36957ba798a189a45a5274c5a), [`131477faf`](https://github.com/medusajs/medusa/commit/131477faf0409c49d4aacf26ea591e33b2fa22fd), [`379c83933`](https://github.com/medusajs/medusa/commit/379c83933ed12a4ec712e7f3c9b0252e4a4601dd), [`caea44ebf`](https://github.com/medusajs/medusa/commit/caea44ebfdf7393ace931ce2a9884105dadc4f8d), [`f174bb6fa`](https://github.com/medusajs/medusa/commit/f174bb6fa1b105b39065478a67b6be0b968f707a), [`f12299deb`](https://github.com/medusajs/medusa/commit/f12299deb10baadab1505cd4ac353dd5d1c8fa7c)]: + - @medusajs/types@1.9.0 + - @medusajs/utils@1.9.3 + - @medusajs/modules-sdk@1.9.0 + +## 0.1.3 + +### Patch Changes + +- [#4459](https://github.com/medusajs/medusa/pull/4459) [`befc2f1c8`](https://github.com/medusajs/medusa/commit/befc2f1c80b6aaeb3a5153f7fdeaa96cf832e46f) Thanks [@adrien2p](https://github.com/adrien2p)! - Feat(product): product module create - delete - soft delete - restore - create workflow + +- [#4459](https://github.com/medusajs/medusa/pull/4459) [`befc2f1c8`](https://github.com/medusajs/medusa/commit/befc2f1c80b6aaeb3a5153f7fdeaa96cf832e46f) Thanks [@adrien2p](https://github.com/adrien2p)! - chore: added collection methods for module and collection service + +- Updated dependencies [[`d184d23c6`](https://github.com/medusajs/medusa/commit/d184d23c6384d5f8bf52827826b62c6bef37f884), [`befc2f1c8`](https://github.com/medusajs/medusa/commit/befc2f1c80b6aaeb3a5153f7fdeaa96cf832e46f)]: + - @medusajs/types@1.8.11 + +## 0.1.2 + +### Patch Changes + +- [#4420](https://github.com/medusajs/medusa/pull/4420) [`6f1fa244f`](https://github.com/medusajs/medusa/commit/6f1fa244fa47d4ecdaa7363483bd7da555dbbf32) Thanks [@adrien2p](https://github.com/adrien2p)! - chore(medusa-cli): Cleanup plugin setup + include Logger type update which is used across multiple packages + +- Updated dependencies [[`499c3478c`](https://github.com/medusajs/medusa/commit/499c3478c910c8b922a15cc6f4d9fbad122a347f), [`9dcdc0041`](https://github.com/medusajs/medusa/commit/9dcdc0041a2b08cc0723343dd8d9127d9977b086), [`6f1fa244f`](https://github.com/medusajs/medusa/commit/6f1fa244fa47d4ecdaa7363483bd7da555dbbf32), [`9760d4a96`](https://github.com/medusajs/medusa/commit/9760d4a96c27f6f89a8c3f3b6e73b17547f97f2a)]: + - @medusajs/types@1.8.10 + - @medusajs/utils@1.9.2 + +## 0.1.1 + +### Patch Changes + +- [#4348](https://github.com/medusajs/medusa/pull/4348) [`dc120121c`](https://github.com/medusajs/medusa/commit/dc120121c12bd2722d97c65e242888bb552ef78a) Thanks [@riqwan](https://github.com/riqwan)! - fix(product, types): correct path for migration files + fix types on product module service interface + +- Updated dependencies [[`dc120121c`](https://github.com/medusajs/medusa/commit/dc120121c12bd2722d97c65e242888bb552ef78a)]: + - @medusajs/types@1.8.9 + +## 0.1.0 + +### Minor Changes + +- [`12782778f`](https://github.com/medusajs/medusa/commit/12782778f93e6bb5b2b7e1b96f40af18af038095) Thanks [@olivermrbl](https://github.com/olivermrbl)! - chore: @medusajs/product beta release + +## 0.0.2 + +### Patch Changes + +- [#4296](https://github.com/medusajs/medusa/pull/4296) [`30d89044f`](https://github.com/medusajs/medusa/commit/30d89044f1f1b63b6b8c875cdcbb7747a1899360) Thanks [@adrien2p](https://github.com/adrien2p)! - fix(product): The bin scripts should include a shebang and import in the body + +- Updated dependencies [[`f98ba5bde`](https://github.com/medusajs/medusa/commit/f98ba5bde83ba785eead31b0c9eb9f135d664178), [`d76ba0cd2`](https://github.com/medusajs/medusa/commit/d76ba0cd29694c2e31f9f89992a9fbc14659c1ae), [`14c0f62f8`](https://github.com/medusajs/medusa/commit/14c0f62f84704a4c87beff3daaff60a52f5c88b8)]: + - @medusajs/utils@1.9.1 + - @medusajs/types@1.8.8 + - @medusajs/modules-sdk@1.8.8 diff --git a/packages/file/README.md b/packages/file/README.md new file mode 100644 index 0000000000000..2499f18a8f299 --- /dev/null +++ b/packages/file/README.md @@ -0,0 +1 @@ +# File Module diff --git a/packages/file/integration-tests/__tests__/module.spec.ts b/packages/file/integration-tests/__tests__/module.spec.ts new file mode 100644 index 0000000000000..1add347987b4e --- /dev/null +++ b/packages/file/integration-tests/__tests__/module.spec.ts @@ -0,0 +1,5 @@ +jest.setTimeout(100000) + +describe("File Module Service", () => { + it("noop", function () {}) +}) diff --git a/packages/file/jest.config.js b/packages/file/jest.config.js new file mode 100644 index 0000000000000..0c652264ea358 --- /dev/null +++ b/packages/file/jest.config.js @@ -0,0 +1,20 @@ +module.exports = { + moduleNameMapper: { + "^@models": "/src/models", + "^@services": "/src/services", + "^@repositories": "/src/repositories", + "^@types": "/src/types", + }, + transform: { + "^.+\\.[jt]s?$": [ + "ts-jest", + { + tsconfig: "tsconfig.spec.json", + isolatedModules: true, + }, + ], + }, + testEnvironment: `node`, + moduleFileExtensions: [`js`, `ts`], + modulePathIgnorePatterns: ["dist/"], +} diff --git a/packages/file/package.json b/packages/file/package.json new file mode 100644 index 0000000000000..958d773bc4e0e --- /dev/null +++ b/packages/file/package.json @@ -0,0 +1,61 @@ +{ + "name": "@medusajs/file", + "version": "0.0.1", + "description": "Medusa File module", + "main": "dist/index.js", + "types": "dist/index.d.ts", + "files": [ + "dist" + ], + "engines": { + "node": ">=16" + }, + "repository": { + "type": "git", + "url": "https://github.com/medusajs/medusa", + "directory": "packages/file" + }, + "publishConfig": { + "access": "public" + }, + "author": "Medusa", + "license": "MIT", + "scripts": { + "watch": "tsc --build --watch", + "watch:test": "tsc --build tsconfig.spec.json --watch", + "prepublishOnly": "cross-env NODE_ENV=production tsc --build && tsc-alias -p tsconfig.json", + "build": "rimraf dist && tsc --build && tsc-alias -p tsconfig.json", + "test": "jest --passWithNoTests --runInBand --bail --forceExit -- src/**/__tests__/**/*.ts", + "test:integration": "jest --passWithNoTests --forceExit -- integration-tests/**/__tests__/**/*.ts", + "migration:generate": " MIKRO_ORM_CLI=./mikro-orm.config.dev.ts mikro-orm migration:generate", + "migration:initial": " MIKRO_ORM_CLI=./mikro-orm.config.dev.ts mikro-orm migration:create --initial", + "migration:create": " MIKRO_ORM_CLI=./mikro-orm.config.dev.ts mikro-orm migration:create", + "migration:up": " MIKRO_ORM_CLI=./mikro-orm.config.dev.ts mikro-orm migration:up", + "orm:cache:clear": " MIKRO_ORM_CLI=./mikro-orm.config.dev.ts mikro-orm cache:clear" + }, + "devDependencies": { + "@mikro-orm/cli": "5.9.7", + "cross-env": "^5.2.1", + "faker": "^6.6.6", + "jest": "^29.6.3", + "medusa-test-utils": "^1.1.43", + "pg-god": "^1.0.12", + "rimraf": "^3.0.2", + "ts-jest": "^29.1.1", + "ts-node": "^10.9.1", + "tsc-alias": "^1.8.6", + "typescript": "^5.1.6" + }, + "dependencies": { + "@medusajs/modules-sdk": "^1.12.10", + "@medusajs/types": "^1.11.15", + "@medusajs/utils": "^1.11.8", + "@mikro-orm/core": "5.9.7", + "@mikro-orm/migrations": "5.9.7", + "@mikro-orm/postgresql": "5.9.7", + "awilix": "^8.0.0", + "dotenv": "^16.4.5", + "knex": "2.4.2", + "lodash": "^4.17.21" + } +} diff --git a/packages/file/src/index.ts b/packages/file/src/index.ts new file mode 100644 index 0000000000000..0cc6cb02137b9 --- /dev/null +++ b/packages/file/src/index.ts @@ -0,0 +1,10 @@ +import { + moduleDefinition, + revertMigration, + runMigrations, +} from "./module-definition" + +export default moduleDefinition +export { revertMigration, runMigrations } + +export * from "./services" diff --git a/packages/file/src/joiner-config.ts b/packages/file/src/joiner-config.ts new file mode 100644 index 0000000000000..1f1075f4c6bb6 --- /dev/null +++ b/packages/file/src/joiner-config.ts @@ -0,0 +1,22 @@ +import { Modules } from "@medusajs/modules-sdk" +import { ModuleJoinerConfig } from "@medusajs/types" +import { MapToConfig } from "@medusajs/utils" + +export const LinkableKeys = {} + +const entityLinkableKeysMap: MapToConfig = {} +export const entityNameToLinkableKeysMap: MapToConfig = entityLinkableKeysMap + +export const joinerConfig: ModuleJoinerConfig = { + serviceName: Modules.FILE, + primaryKeys: ["id"], + linkableKeys: LinkableKeys, + alias: [ + { + name: ["file", "files"], + args: { + entity: "File", + }, + }, + ], +} diff --git a/packages/file/src/loaders/index.ts b/packages/file/src/loaders/index.ts new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/packages/file/src/module-definition.ts b/packages/file/src/module-definition.ts new file mode 100644 index 0000000000000..5c2f44f277433 --- /dev/null +++ b/packages/file/src/module-definition.ts @@ -0,0 +1,18 @@ +import { ModuleExports } from "@medusajs/types" +import { FileModuleService } from "@services" +export const runMigrations = () => { + return Promise.resolve() +} +export const revertMigration = () => { + return Promise.resolve() +} + +const service = FileModuleService +const loaders = [] as any + +export const moduleDefinition: ModuleExports = { + service, + loaders, + runMigrations, + revertMigration, +} diff --git a/packages/file/src/services/__tests__/file.spec.ts b/packages/file/src/services/__tests__/file.spec.ts new file mode 100644 index 0000000000000..cd66b8b9842a7 --- /dev/null +++ b/packages/file/src/services/__tests__/file.spec.ts @@ -0,0 +1,3 @@ +describe("File service", function () { + it("noop", async function () {}) +}) diff --git a/packages/file/src/services/file-module-service.ts b/packages/file/src/services/file-module-service.ts new file mode 100644 index 0000000000000..6cde4fcdccc31 --- /dev/null +++ b/packages/file/src/services/file-module-service.ts @@ -0,0 +1,42 @@ +import { + Context, + CreateFileDTO, + FileDTO, + ModuleJoinerConfig, +} from "@medusajs/types" + +import { joinerConfig } from "../joiner-config" + +export default class FileModuleService { + constructor() { + // @ts-ignore + // eslint-disable-next-line prefer-rest-params + super(...arguments) + } + + __joinerConfig(): ModuleJoinerConfig { + return joinerConfig + } + + create(data: CreateFileDTO[], sharedContext?: Context): Promise + create(data: CreateFileDTO, sharedContext?: Context): Promise + + async create( + data: CreateFileDTO[] | CreateFileDTO + ): Promise { + const input = Array.isArray(data) ? data : [data] + const files = [] + return Array.isArray(data) ? files : files[0] + } + + async delete(ids: string[], sharedContext?: Context): Promise + async delete(id: string, sharedContext?: Context): Promise + async delete(ids: string[] | string): Promise { + return + } + + async retrieve(id: string): Promise + async retrieve(id: string): Promise { + return {} as FileDTO + } +} diff --git a/packages/file/src/services/index.ts b/packages/file/src/services/index.ts new file mode 100644 index 0000000000000..e1831dc30e246 --- /dev/null +++ b/packages/file/src/services/index.ts @@ -0,0 +1 @@ +export { default as FileModuleService } from "./file-module-service" diff --git a/packages/file/tsconfig.json b/packages/file/tsconfig.json new file mode 100644 index 0000000000000..4b79cd603235c --- /dev/null +++ b/packages/file/tsconfig.json @@ -0,0 +1,37 @@ +{ + "compilerOptions": { + "lib": ["es2020"], + "target": "es2020", + "outDir": "./dist", + "esModuleInterop": true, + "declaration": true, + "module": "commonjs", + "moduleResolution": "node", + "emitDecoratorMetadata": true, + "experimentalDecorators": true, + "sourceMap": false, + "noImplicitReturns": true, + "strictNullChecks": true, + "strictFunctionTypes": true, + "noImplicitThis": true, + "allowJs": true, + "skipLibCheck": true, + "downlevelIteration": true, // to use ES5 specific tooling + "baseUrl": ".", + "resolveJsonModule": true, + "paths": { + "@models": ["./src/models"], + "@services": ["./src/services"], + "@repositories": ["./src/repositories"], + "@types": ["./src/types"] + } + }, + "include": ["src"], + "exclude": [ + "dist", + "./src/**/__tests__", + "./src/**/__mocks__", + "./src/**/__fixtures__", + "node_modules" + ] +} diff --git a/packages/file/tsconfig.spec.json b/packages/file/tsconfig.spec.json new file mode 100644 index 0000000000000..48e47e8cbb3be --- /dev/null +++ b/packages/file/tsconfig.spec.json @@ -0,0 +1,8 @@ +{ + "extends": "./tsconfig.json", + "include": ["src", "integration-tests"], + "exclude": ["node_modules", "dist"], + "compilerOptions": { + "sourceMap": true + } +} diff --git a/packages/medusa/src/api-v2/admin/uploads/[id]/route.ts b/packages/medusa/src/api-v2/admin/uploads/[id]/route.ts new file mode 100644 index 0000000000000..bffe7e70e7f41 --- /dev/null +++ b/packages/medusa/src/api-v2/admin/uploads/[id]/route.ts @@ -0,0 +1,45 @@ +import { + AuthenticatedMedusaRequest, + MedusaResponse, +} from "../../../../types/routing" +import { deleteFilesWorkflow } from "@medusajs/core-flows" +import { remoteQueryObjectFromString } from "@medusajs/utils" + +export const GET = async ( + req: AuthenticatedMedusaRequest, + res: MedusaResponse +) => { + const remoteQuery = req.scope.resolve("remoteQuery") + const variables = { id: req.params.id } + + const queryObject = remoteQueryObjectFromString({ + entryPoint: "file", + variables, + fields: req.remoteQueryConfig.fields, + }) + + const [file] = await remoteQuery(queryObject) + res.status(200).json({ file }) +} + +export const DELETE = async ( + req: AuthenticatedMedusaRequest, + res: MedusaResponse +) => { + const id = req.params.id + + const { errors } = await deleteFilesWorkflow(req.scope).run({ + input: { ids: [id] }, + throwOnError: false, + }) + + if (Array.isArray(errors) && errors[0]) { + throw errors[0].error + } + + res.status(200).json({ + id, + object: "file", + deleted: true, + }) +} diff --git a/packages/medusa/src/api-v2/admin/uploads/middlewares.ts b/packages/medusa/src/api-v2/admin/uploads/middlewares.ts new file mode 100644 index 0000000000000..fce8e522818bd --- /dev/null +++ b/packages/medusa/src/api-v2/admin/uploads/middlewares.ts @@ -0,0 +1,32 @@ +import multer from "multer" +import { transformQuery } from "../../../api/middlewares" +import { MiddlewareRoute } from "../../../loaders/helpers/routing/types" +import { authenticate } from "../../../utils/authenticate-middleware" +import * as QueryConfig from "./query-config" +import { AdminGetProductsProductParams } from "../products/validators" + +const upload = multer({ dest: "uploads/" }) + +export const adminUploadRoutesMiddlewares: MiddlewareRoute[] = [ + { + method: ["ALL"], + matcher: "/admin/uploads*", + middlewares: [authenticate("admin", ["bearer", "session", "api-key"])], + }, + { + method: ["GET"], + matcher: "/admin/uploads/:id", + middlewares: [], + }, + // TODO: There is a `/protected` route in v1 that might need a bit more thought when implementing + { + method: ["POST"], + matcher: "/admin/uploads", + middlewares: [upload.array("files")], + }, + { + method: ["DELETE"], + matcher: "/admin/uploads/:id", + middlewares: [], + }, +] diff --git a/packages/medusa/src/api-v2/admin/uploads/query-config.ts b/packages/medusa/src/api-v2/admin/uploads/query-config.ts new file mode 100644 index 0000000000000..2e65c1c92b873 --- /dev/null +++ b/packages/medusa/src/api-v2/admin/uploads/query-config.ts @@ -0,0 +1,6 @@ +export const defaultAdminUploadFields = ["id", "url"] + +export const retrieveUploadConfig = { + defaultFields: defaultAdminUploadFields, + isList: false, +} diff --git a/packages/medusa/src/api-v2/admin/uploads/route.ts b/packages/medusa/src/api-v2/admin/uploads/route.ts new file mode 100644 index 0000000000000..f52f4c58853e0 --- /dev/null +++ b/packages/medusa/src/api-v2/admin/uploads/route.ts @@ -0,0 +1,28 @@ +import { uploadFilesWorkflow } from "@medusajs/core-flows" +import { CreateProductDTO } from "@medusajs/types" +import { + AuthenticatedMedusaRequest, + MedusaResponse, +} from "../../../types/routing" + +export const POST = async ( + req: AuthenticatedMedusaRequest, + res: MedusaResponse +) => { + const input = req.files as any[] + const { result, errors } = await uploadFilesWorkflow(req.scope).run({ + input: { + files: input?.map((f) => ({ + filename: "test", + mimeType: "image/jpeg", + content: f.buffer, + })), + }, + throwOnError: false, + }) + + if (Array.isArray(errors) && errors[0]) { + throw errors[0].error + } + res.status(200).json({ files: result }) +} diff --git a/packages/medusa/src/api-v2/middlewares.ts b/packages/medusa/src/api-v2/middlewares.ts index a06d62814889c..edbc074c54f6d 100644 --- a/packages/medusa/src/api-v2/middlewares.ts +++ b/packages/medusa/src/api-v2/middlewares.ts @@ -20,6 +20,7 @@ import { adminStockLocationRoutesMiddlewares } from "./admin/stock-locations/mid import { adminStoreRoutesMiddlewares } from "./admin/stores/middlewares" import { adminTaxRateRoutesMiddlewares } from "./admin/tax-rates/middlewares" import { adminTaxRegionRoutesMiddlewares } from "./admin/tax-regions/middlewares" +import { adminUploadRoutesMiddlewares } from "./admin/uploads/middlewares" import { adminUserRoutesMiddlewares } from "./admin/users/middlewares" import { adminWorkflowsExecutionsMiddlewares } from "./admin/workflows-executions/middlewares" import { authRoutesMiddlewares } from "./auth/middlewares" @@ -61,5 +62,6 @@ export const config: MiddlewaresConfig = { ...adminSalesChannelRoutesMiddlewares, ...adminStockLocationRoutesMiddlewares, ...adminProductTypeRoutesMiddlewares, + ...adminUploadRoutesMiddlewares, ], } diff --git a/packages/modules-sdk/src/definitions.ts b/packages/modules-sdk/src/definitions.ts index df52c5d92ad75..062b636c99ae5 100644 --- a/packages/modules-sdk/src/definitions.ts +++ b/packages/modules-sdk/src/definitions.ts @@ -35,6 +35,7 @@ export enum Modules { API_KEY = "apiKey", STORE = "store", CURRENCY = "currency", + FILE = "file", } export enum ModuleRegistrationName { @@ -59,6 +60,7 @@ export enum ModuleRegistrationName { API_KEY = "apiKeyModuleService", STORE = "storeModuleService", CURRENCY = "currencyModuleService", + FILE = "fileModuleService", } export const MODULE_PACKAGE_NAMES = { @@ -84,6 +86,7 @@ export const MODULE_PACKAGE_NAMES = { [Modules.API_KEY]: "@medusajs/api-key", [Modules.STORE]: "@medusajs/store", [Modules.CURRENCY]: "@medusajs/currency", + [Modules.FILE]: "@medusajs/file", } export const ModulesDefinition: { [key: string | Modules]: ModuleDefinition } = @@ -362,6 +365,19 @@ export const ModulesDefinition: { [key: string | Modules]: ModuleDefinition } = resources: MODULE_RESOURCE_TYPE.SHARED, }, }, + [Modules.FILE]: { + key: Modules.FILE, + registrationName: ModuleRegistrationName.FILE, + defaultPackage: false, + label: upperCaseFirst(ModuleRegistrationName.FILE), + isRequired: false, + isQueryable: true, + dependencies: ["logger"], + defaultModuleDeclaration: { + scope: MODULE_SCOPE.INTERNAL, + resources: MODULE_RESOURCE_TYPE.SHARED, + }, + }, } export const MODULE_DEFINITIONS: ModuleDefinition[] = diff --git a/packages/types/src/bundles.ts b/packages/types/src/bundles.ts index bec11b78ba085..b6cd78c752f94 100644 --- a/packages/types/src/bundles.ts +++ b/packages/types/src/bundles.ts @@ -25,3 +25,4 @@ export * as WorkflowTypes from "./workflow" export * as ApiKeyTypes from "./api-key" export * as StoreTypes from "./store" export * as CurrencyTypes from "./currency" +export * as FileTypes from "./file" diff --git a/packages/types/src/file/common.ts b/packages/types/src/file/common.ts new file mode 100644 index 0000000000000..4d7ee4542bb3d --- /dev/null +++ b/packages/types/src/file/common.ts @@ -0,0 +1,13 @@ +/** + * The File details. + */ +export interface FileDTO { + /** + * The ID of the File. + */ + id: string + /** + * The URL of the File. + */ + url: string +} diff --git a/packages/types/src/file/index.ts b/packages/types/src/file/index.ts new file mode 100644 index 0000000000000..0c73656566caa --- /dev/null +++ b/packages/types/src/file/index.ts @@ -0,0 +1,3 @@ +export * from "./common" +export * from "./mutations" +export * from "./service" diff --git a/packages/types/src/file/mutations.ts b/packages/types/src/file/mutations.ts new file mode 100644 index 0000000000000..574a6243c48cf --- /dev/null +++ b/packages/types/src/file/mutations.ts @@ -0,0 +1,19 @@ +/** + * The File to be created. + */ +export interface CreateFileDTO { + /** + * The filename of the uploaded file + */ + filename: string + + /** + * The mimetype of the uploaded file + */ + mimeType: string + + /** + * The file content + */ + content: Blob +} diff --git a/packages/types/src/file/service.ts b/packages/types/src/file/service.ts new file mode 100644 index 0000000000000..64e088d28f2eb --- /dev/null +++ b/packages/types/src/file/service.ts @@ -0,0 +1,85 @@ +import { IModuleService } from "../modules-sdk" +import { FileDTO } from "./common" +import { FindConfig } from "../common" +import { Context } from "../shared-context" +import { CreateFileDTO } from "./mutations" + +/** + * The main service interface for the File Module. + */ +export interface IFileModuleService extends IModuleService { + /** + * This method uploads files to the designated file storage system. + * + * @param {CreateFileDTO[]} data - The files to be created. + * @param {Context} sharedContext - A context used to share resources, such as transaction manager, between the application and the module. + * @returns {Promise} The created files. + * + * @example + * const [file] = await fileModuleService.create([{ + * filename: "product.png", + * mimeType: "image/png", + * content: "somecontent" + * }]) + */ + create(data: CreateFileDTO[], sharedContext?: Context): Promise + + /** + * This method uploads a file to the designated file storage system. + * + * @param {CreateFileDTO} data - The file to be created. + * @param {Context} sharedContext - A context used to share resources, such as transaction manager, between the application and the module. + * @returns {Promise} The created file. + * + * @example + * const file = await fileModuleService.create({ + * filename: "product.png", + * mimeType: "image/png", + * content: "somecontent" + * }) + */ + + create(data: CreateFileDTO, sharedContext?: Context): Promise + + /** + * This method deletes files by their IDs. + * + * @param {string[]} ids - The IDs of the files. + * @param {Context} sharedContext - A context used to share resources, such as transaction manager, between the application and the module. + * @returns {Promise} Resolves when the files are deleted successfully. + * + * @example + * await fileModuleService.delete(["file_123"]) + */ + delete(ids: string[], sharedContext?: Context): Promise + + /** + * This method deletes a file by its ID. + * + * @param {string} id - The ID of the file. + * @param {Context} sharedContext - A context used to share resources, such as transaction manager, between the application and the module. + * @returns {Promise} Resolves when the file is deleted successfully. + * + * @example + * await fileModuleService.delete("file_123") + */ + delete(id: string, sharedContext?: Context): Promise + + /** + * This method retrieves a file with a downloadable URL by its ID. + * + * @param {string} id - The ID of the file. + * @param {FindConfig} config - The configurations determining how the file is retrieved. Its properties, such as `select` or `relations`, accept the + * attributes or relations associated with a file. + * @param {Context} sharedContext - A context used to share resources, such as transaction manager, between the application and the module. + * @returns {Promise} The retrieved file. + * + * @example + * const file = await fileModuleService.retrieve("file_123") + */ + retrieve( + id: string, + config?: FindConfig, + sharedContext?: Context + ): Promise +} diff --git a/packages/types/src/index.ts b/packages/types/src/index.ts index d265c066f2713..2c5d9e48df1e7 100644 --- a/packages/types/src/index.ts +++ b/packages/types/src/index.ts @@ -35,3 +35,4 @@ export * from "./transaction-base" export * from "./user" export * from "./workflow" export * from "./currency" +export * from "./file" diff --git a/yarn.lock b/yarn.lock index 103dce21df2dc..f8c36f56417ce 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8245,6 +8245,34 @@ __metadata: languageName: unknown linkType: soft +"@medusajs/file@workspace:packages/file": + version: 0.0.0-use.local + resolution: "@medusajs/file@workspace:packages/file" + dependencies: + "@medusajs/modules-sdk": ^1.12.10 + "@medusajs/types": ^1.11.15 + "@medusajs/utils": ^1.11.8 + "@mikro-orm/cli": 5.9.7 + "@mikro-orm/core": 5.9.7 + "@mikro-orm/migrations": 5.9.7 + "@mikro-orm/postgresql": 5.9.7 + awilix: ^8.0.0 + cross-env: ^5.2.1 + dotenv: ^16.4.5 + faker: ^6.6.6 + jest: ^29.6.3 + knex: 2.4.2 + lodash: ^4.17.21 + medusa-test-utils: ^1.1.43 + pg-god: ^1.0.12 + rimraf: ^3.0.2 + ts-jest: ^29.1.1 + ts-node: ^10.9.1 + tsc-alias: ^1.8.6 + typescript: ^5.1.6 + languageName: unknown + linkType: soft + "@medusajs/fulfillment-manual@workspace:*, @medusajs/fulfillment-manual@workspace:packages/fulfillment-manual": version: 0.0.0-use.local resolution: "@medusajs/fulfillment-manual@workspace:packages/fulfillment-manual"