@froze-labs/medusa-plugin-brands 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GET = void 0;
4
+ const brand_1 = require("../../../modules/brand");
5
+ const GET = async (req, res) => {
6
+ const brandModuleService = req.scope.resolve(brand_1.BRAND_MODULE);
7
+ const limit = parseInt(req.query.limit) || 20;
8
+ const offset = parseInt(req.query.offset) || 0;
9
+ const [brands, count] = await brandModuleService.listAndCountBrands({}, {
10
+ skip: offset,
11
+ take: limit,
12
+ order: { name: "ASC" },
13
+ });
14
+ res.json({
15
+ brands,
16
+ count,
17
+ limit,
18
+ offset,
19
+ });
20
+ };
21
+ exports.GET = GET;
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL2JyYW5kcy9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxrREFBcUQ7QUFHOUMsTUFBTSxHQUFHLEdBQUcsS0FBSyxFQUFFLEdBQWtCLEVBQUUsR0FBbUIsRUFBRSxFQUFFO0lBQ25FLE1BQU0sa0JBQWtCLEdBQ3RCLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLG9CQUFZLENBQUMsQ0FBQTtJQUVqQyxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxLQUFlLENBQUMsSUFBSSxFQUFFLENBQUE7SUFDdkQsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsTUFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUV4RCxNQUFNLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxHQUFHLE1BQU0sa0JBQWtCLENBQUMsa0JBQWtCLENBQ2pFLEVBQUUsRUFDRjtRQUNFLElBQUksRUFBRSxNQUFNO1FBQ1osSUFBSSxFQUFFLEtBQUs7UUFDWCxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFO0tBQ3ZCLENBQ0YsQ0FBQTtJQUVELEdBQUcsQ0FBQyxJQUFJLENBQUM7UUFDUCxNQUFNO1FBQ04sS0FBSztRQUNMLEtBQUs7UUFDTCxNQUFNO0tBQ1AsQ0FBQyxDQUFBO0FBQ0osQ0FBQyxDQUFBO0FBdEJZLFFBQUEsR0FBRyxPQXNCZiJ9
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const brand_1 = __importDefault(require("../modules/brand"));
7
+ const product_1 = __importDefault(require("@medusajs/medusa/product"));
8
+ const utils_1 = require("@medusajs/framework/utils");
9
+ exports.default = (0, utils_1.defineLink)({
10
+ linkable: product_1.default.linkable.product,
11
+ isList: true,
12
+ }, {
13
+ linkable: brand_1.default.linkable.brand,
14
+ isList: true,
15
+ });
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1icmFuZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saW5rcy9wcm9kdWN0LWJyYW5kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsNkRBQTBDO0FBQzFDLHVFQUFvRDtBQUNwRCxxREFBc0Q7QUFFdEQsa0JBQWUsSUFBQSxrQkFBVSxFQUN2QjtJQUNFLFFBQVEsRUFBRSxpQkFBYSxDQUFDLFFBQVEsQ0FBQyxPQUFPO0lBQ3hDLE1BQU0sRUFBRSxJQUFJO0NBQ2IsRUFDRDtJQUNFLFFBQVEsRUFBRSxlQUFXLENBQUMsUUFBUSxDQUFDLEtBQUs7SUFDcEMsTUFBTSxFQUFFLElBQUk7Q0FDYixDQUNGLENBQUEifQ==
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.BRAND_MODULE = void 0;
7
+ const service_1 = __importDefault(require("./service"));
8
+ const utils_1 = require("@medusajs/framework/utils");
9
+ exports.BRAND_MODULE = "brand";
10
+ exports.default = (0, utils_1.Module)(exports.BRAND_MODULE, {
11
+ service: service_1.default,
12
+ });
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9icmFuZC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSx3REFBMEM7QUFDMUMscURBQWtEO0FBRXJDLFFBQUEsWUFBWSxHQUFHLE9BQU8sQ0FBQTtBQUVuQyxrQkFBZSxJQUFBLGNBQU0sRUFBQyxvQkFBWSxFQUFFO0lBQ2xDLE9BQU8sRUFBRSxpQkFBa0I7Q0FDNUIsQ0FBQyxDQUFBIn0=
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Migration20250127000001 = void 0;
4
+ const migrations_1 = require("@mikro-orm/migrations");
5
+ class Migration20250127000001 extends migrations_1.Migration {
6
+ async up() {
7
+ this.addSql(`
8
+ CREATE TABLE IF NOT EXISTS "brand" (
9
+ "id" TEXT NOT NULL,
10
+ "name" TEXT NOT NULL,
11
+ "slug" TEXT NOT NULL,
12
+ "description" TEXT NULL,
13
+ "cover_image" TEXT NULL,
14
+ "logo_image" TEXT NULL,
15
+ "created_at" TIMESTAMPTZ NOT NULL DEFAULT now(),
16
+ "updated_at" TIMESTAMPTZ NOT NULL DEFAULT now(),
17
+ "deleted_at" TIMESTAMPTZ NULL,
18
+ CONSTRAINT "brand_pkey" PRIMARY KEY ("id")
19
+ );
20
+ `);
21
+ this.addSql(`
22
+ CREATE UNIQUE INDEX IF NOT EXISTS "IDX_brand_slug_unique" ON "brand" ("slug") WHERE "deleted_at" IS NULL;
23
+ `);
24
+ this.addSql(`
25
+ CREATE INDEX IF NOT EXISTS "IDX_brand_name" ON "brand" ("name");
26
+ `);
27
+ this.addSql(`
28
+ CREATE INDEX IF NOT EXISTS "IDX_brand_deleted_at" ON "brand" ("deleted_at");
29
+ `);
30
+ }
31
+ async down() {
32
+ this.addSql(`DROP INDEX IF EXISTS "IDX_brand_deleted_at";`);
33
+ this.addSql(`DROP INDEX IF EXISTS "IDX_brand_name";`);
34
+ this.addSql(`DROP INDEX IF EXISTS "IDX_brand_slug_unique";`);
35
+ this.addSql(`DROP TABLE IF EXISTS "brand";`);
36
+ }
37
+ }
38
+ exports.Migration20250127000001 = Migration20250127000001;
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWlncmF0aW9uMjAyNTAxMjcwMDAwMDEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9icmFuZC9taWdyYXRpb25zL01pZ3JhdGlvbjIwMjUwMTI3MDAwMDAxLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHNEQUFrRDtBQUVsRCxNQUFhLHVCQUF3QixTQUFRLHNCQUFTO0lBQ3BELEtBQUssQ0FBQyxFQUFFO1FBQ04sSUFBSSxDQUFDLE1BQU0sQ0FBQzs7Ozs7Ozs7Ozs7OztLQWFYLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxNQUFNLENBQUM7O0tBRVgsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLE1BQU0sQ0FBQzs7S0FFWCxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsTUFBTSxDQUFDOztLQUVYLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxLQUFLLENBQUMsSUFBSTtRQUNSLElBQUksQ0FBQyxNQUFNLENBQUMsOENBQThDLENBQUMsQ0FBQztRQUM1RCxJQUFJLENBQUMsTUFBTSxDQUFDLHdDQUF3QyxDQUFDLENBQUM7UUFDdEQsSUFBSSxDQUFDLE1BQU0sQ0FBQywrQ0FBK0MsQ0FBQyxDQUFDO1FBQzdELElBQUksQ0FBQyxNQUFNLENBQUMsK0JBQStCLENBQUMsQ0FBQztJQUMvQyxDQUFDO0NBQ0Y7QUFwQ0QsMERBb0NDIn0=
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Migration20250127000001 = void 0;
4
+ var Migration20250127000001_1 = require("./Migration20250127000001");
5
+ Object.defineProperty(exports, "Migration20250127000001", { enumerable: true, get: function () { return Migration20250127000001_1.Migration20250127000001; } });
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9icmFuZC9taWdyYXRpb25zL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFFQUFtRTtBQUExRCxrSUFBQSx1QkFBdUIsT0FBQSJ9
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const utils_1 = require("@medusajs/framework/utils");
4
+ const Brand = utils_1.model.define("brand", {
5
+ id: utils_1.model.id().primaryKey(),
6
+ name: utils_1.model.text().searchable(),
7
+ slug: utils_1.model.text().searchable(),
8
+ description: utils_1.model.text().nullable(),
9
+ cover_image: utils_1.model.text().nullable(),
10
+ logo_image: utils_1.model.text().nullable(),
11
+ }).indexes([
12
+ {
13
+ on: ["slug"],
14
+ unique: true,
15
+ },
16
+ ]);
17
+ exports.default = Brand;
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJhbmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9icmFuZC9tb2RlbHMvYnJhbmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxxREFBaUQ7QUFFakQsTUFBTSxLQUFLLEdBQUcsYUFBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUU7SUFDbEMsRUFBRSxFQUFFLGFBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxVQUFVLEVBQUU7SUFDM0IsSUFBSSxFQUFFLGFBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxVQUFVLEVBQUU7SUFDL0IsSUFBSSxFQUFFLGFBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxVQUFVLEVBQUU7SUFDL0IsV0FBVyxFQUFFLGFBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDcEMsV0FBVyxFQUFFLGFBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDcEMsVUFBVSxFQUFFLGFBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxRQUFRLEVBQUU7Q0FDcEMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztJQUNUO1FBQ0UsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDO1FBQ1osTUFBTSxFQUFFLElBQUk7S0FDYjtDQUNGLENBQUMsQ0FBQTtBQUVGLGtCQUFlLEtBQUssQ0FBQSJ9
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const utils_1 = require("@medusajs/framework/utils");
7
+ const brand_1 = __importDefault(require("./models/brand"));
8
+ class BrandModuleService extends (0, utils_1.MedusaService)({
9
+ Brand: brand_1.default,
10
+ }) {
11
+ generateSlug(name) {
12
+ return name
13
+ .toLowerCase()
14
+ .trim()
15
+ .replace(/[^\w\s-]/g, "")
16
+ .replace(/[\s_-]+/g, "-")
17
+ .replace(/^-+|-+$/g, "");
18
+ }
19
+ }
20
+ exports.default = BrandModuleService;
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9tb2R1bGVzL2JyYW5kL3NlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxxREFBeUQ7QUFDekQsMkRBQWtDO0FBRWxDLE1BQU0sa0JBQW1CLFNBQVEsSUFBQSxxQkFBYSxFQUFDO0lBQzdDLEtBQUssRUFBTCxlQUFLO0NBQ04sQ0FBQztJQUNBLFlBQVksQ0FBQyxJQUFZO1FBQ3ZCLE9BQU8sSUFBSTthQUNSLFdBQVcsRUFBRTthQUNiLElBQUksRUFBRTthQUNOLE9BQU8sQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDO2FBQ3hCLE9BQU8sQ0FBQyxVQUFVLEVBQUUsR0FBRyxDQUFDO2FBQ3hCLE9BQU8sQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLENBQUE7SUFDNUIsQ0FBQztDQUNGO0FBRUQsa0JBQWUsa0JBQWtCLENBQUEifQ==
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createBrandWorkflow = exports.createBrandStep = void 0;
4
+ const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
5
+ const brand_1 = require("../../modules/brand");
6
+ exports.createBrandStep = (0, workflows_sdk_1.createStep)("create-brand-step", async (input, { container }) => {
7
+ const brandModuleService = container.resolve(brand_1.BRAND_MODULE);
8
+ const data = {
9
+ ...input,
10
+ slug: input.slug || brandModuleService.generateSlug(input.name),
11
+ };
12
+ const brand = await brandModuleService.createBrands(data);
13
+ return new workflows_sdk_1.StepResponse(brand, brand.id);
14
+ }, async (id, { container }) => {
15
+ const brandModuleService = container.resolve(brand_1.BRAND_MODULE);
16
+ await brandModuleService.deleteBrands(id);
17
+ });
18
+ exports.createBrandWorkflow = (0, workflows_sdk_1.createWorkflow)("create-brand", (input) => {
19
+ const brand = (0, exports.createBrandStep)(input);
20
+ return new workflows_sdk_1.WorkflowResponse(brand);
21
+ });
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL2NyZWF0ZS1icmFuZC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxRUFLMEM7QUFDMUMsK0NBQWtEO0FBV3JDLFFBQUEsZUFBZSxHQUFHLElBQUEsMEJBQVUsRUFDdkMsbUJBQW1CLEVBQ25CLEtBQUssRUFBRSxLQUF1QixFQUFFLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRTtJQUMvQyxNQUFNLGtCQUFrQixHQUF1QixTQUFTLENBQUMsT0FBTyxDQUFDLG9CQUFZLENBQUMsQ0FBQTtJQUU5RSxNQUFNLElBQUksR0FBRztRQUNYLEdBQUcsS0FBSztRQUNSLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSSxJQUFJLGtCQUFrQixDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO0tBQ2hFLENBQUE7SUFFRCxNQUFNLEtBQUssR0FBRyxNQUFNLGtCQUFrQixDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUN6RCxPQUFPLElBQUksNEJBQVksQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFBO0FBQzFDLENBQUMsRUFDRCxLQUFLLEVBQUUsRUFBVSxFQUFFLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRTtJQUNsQyxNQUFNLGtCQUFrQixHQUF1QixTQUFTLENBQUMsT0FBTyxDQUFDLG9CQUFZLENBQUMsQ0FBQTtJQUM5RSxNQUFNLGtCQUFrQixDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQTtBQUMzQyxDQUFDLENBQ0YsQ0FBQTtBQUVZLFFBQUEsbUJBQW1CLEdBQUcsSUFBQSw4QkFBYyxFQUMvQyxjQUFjLEVBQ2QsQ0FBQyxLQUF1QixFQUFFLEVBQUU7SUFDMUIsTUFBTSxLQUFLLEdBQUcsSUFBQSx1QkFBZSxFQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ3BDLE9BQU8sSUFBSSxnQ0FBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQTtBQUNwQyxDQUFDLENBQ0YsQ0FBQSJ9
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.deleteBrandWorkflow = exports.deleteBrandStep = void 0;
4
+ const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
5
+ const brand_1 = require("../../modules/brand");
6
+ exports.deleteBrandStep = (0, workflows_sdk_1.createStep)("delete-brand-step", async (input, { container }) => {
7
+ const brandModuleService = container.resolve(brand_1.BRAND_MODULE);
8
+ const brand = await brandModuleService.retrieveBrand(input.id);
9
+ await brandModuleService.deleteBrands(input.id);
10
+ return new workflows_sdk_1.StepResponse(input.id, brand);
11
+ }, async (brand, { container }) => {
12
+ if (!brand)
13
+ return;
14
+ const brandModuleService = container.resolve(brand_1.BRAND_MODULE);
15
+ await brandModuleService.createBrands(brand);
16
+ });
17
+ exports.deleteBrandWorkflow = (0, workflows_sdk_1.createWorkflow)("delete-brand", (input) => {
18
+ const result = (0, exports.deleteBrandStep)(input);
19
+ return new workflows_sdk_1.WorkflowResponse(result);
20
+ });
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL2RlbGV0ZS1icmFuZC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxRUFLMEM7QUFDMUMsK0NBQWtEO0FBT3JDLFFBQUEsZUFBZSxHQUFHLElBQUEsMEJBQVUsRUFDdkMsbUJBQW1CLEVBQ25CLEtBQUssRUFBRSxLQUF1QixFQUFFLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRTtJQUMvQyxNQUFNLGtCQUFrQixHQUF1QixTQUFTLENBQUMsT0FBTyxDQUFDLG9CQUFZLENBQUMsQ0FBQTtJQUU5RSxNQUFNLEtBQUssR0FBRyxNQUFNLGtCQUFrQixDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUE7SUFDOUQsTUFBTSxrQkFBa0IsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFBO0lBRS9DLE9BQU8sSUFBSSw0QkFBWSxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUE7QUFDMUMsQ0FBQyxFQUNELEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFO0lBQzdCLElBQUksQ0FBQyxLQUFLO1FBQUUsT0FBTTtJQUVsQixNQUFNLGtCQUFrQixHQUF1QixTQUFTLENBQUMsT0FBTyxDQUFDLG9CQUFZLENBQUMsQ0FBQTtJQUM5RSxNQUFNLGtCQUFrQixDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQTtBQUM5QyxDQUFDLENBQ0YsQ0FBQTtBQUVZLFFBQUEsbUJBQW1CLEdBQUcsSUFBQSw4QkFBYyxFQUMvQyxjQUFjLEVBQ2QsQ0FBQyxLQUF1QixFQUFFLEVBQUU7SUFDMUIsTUFBTSxNQUFNLEdBQUcsSUFBQSx1QkFBZSxFQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ3JDLE9BQU8sSUFBSSxnQ0FBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQTtBQUNyQyxDQUFDLENBQ0YsQ0FBQSJ9
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./create-brand"), exports);
18
+ __exportStar(require("./update-brand"), exports);
19
+ __exportStar(require("./delete-brand"), exports);
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxpREFBOEI7QUFDOUIsaURBQThCO0FBQzlCLGlEQUE4QiJ9
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.updateBrandWorkflow = exports.updateBrandStep = void 0;
4
+ const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
5
+ const brand_1 = require("../../modules/brand");
6
+ exports.updateBrandStep = (0, workflows_sdk_1.createStep)("update-brand-step", async (input, { container }) => {
7
+ const brandModuleService = container.resolve(brand_1.BRAND_MODULE);
8
+ const { id, ...data } = input;
9
+ if (data.name && !data.slug) {
10
+ data.slug = brandModuleService.generateSlug(data.name);
11
+ }
12
+ const previousBrand = await brandModuleService.retrieveBrand(id);
13
+ const brand = await brandModuleService.updateBrands({ id, ...data });
14
+ return new workflows_sdk_1.StepResponse(brand, previousBrand);
15
+ }, async (previousBrand, { container }) => {
16
+ if (!previousBrand)
17
+ return;
18
+ const brandModuleService = container.resolve(brand_1.BRAND_MODULE);
19
+ await brandModuleService.updateBrands({ ...previousBrand });
20
+ });
21
+ exports.updateBrandWorkflow = (0, workflows_sdk_1.createWorkflow)("update-brand", (input) => {
22
+ const brand = (0, exports.updateBrandStep)(input);
23
+ return new workflows_sdk_1.WorkflowResponse(brand);
24
+ });
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL3VwZGF0ZS1icmFuZC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxRUFLMEM7QUFDMUMsK0NBQWtEO0FBWXJDLFFBQUEsZUFBZSxHQUFHLElBQUEsMEJBQVUsRUFDdkMsbUJBQW1CLEVBQ25CLEtBQUssRUFBRSxLQUF1QixFQUFFLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRTtJQUMvQyxNQUFNLGtCQUFrQixHQUF1QixTQUFTLENBQUMsT0FBTyxDQUFDLG9CQUFZLENBQUMsQ0FBQTtJQUU5RSxNQUFNLEVBQUUsRUFBRSxFQUFFLEdBQUcsSUFBSSxFQUFFLEdBQUcsS0FBSyxDQUFBO0lBRTdCLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUM1QixJQUFJLENBQUMsSUFBSSxHQUFHLGtCQUFrQixDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDeEQsQ0FBQztJQUVELE1BQU0sYUFBYSxHQUFHLE1BQU0sa0JBQWtCLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQyxDQUFBO0lBQ2hFLE1BQU0sS0FBSyxHQUFHLE1BQU0sa0JBQWtCLENBQUMsWUFBWSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsSUFBSSxFQUFFLENBQUMsQ0FBQTtJQUVwRSxPQUFPLElBQUksNEJBQVksQ0FBQyxLQUFLLEVBQUUsYUFBYSxDQUFDLENBQUE7QUFDL0MsQ0FBQyxFQUNELEtBQUssRUFBRSxhQUFhLEVBQUUsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFO0lBQ3JDLElBQUksQ0FBQyxhQUFhO1FBQUUsT0FBTTtJQUUxQixNQUFNLGtCQUFrQixHQUF1QixTQUFTLENBQUMsT0FBTyxDQUFDLG9CQUFZLENBQUMsQ0FBQTtJQUM5RSxNQUFNLGtCQUFrQixDQUFDLFlBQVksQ0FBQyxFQUFFLEdBQUcsYUFBYSxFQUFFLENBQUMsQ0FBQTtBQUM3RCxDQUFDLENBQ0YsQ0FBQTtBQUVZLFFBQUEsbUJBQW1CLEdBQUcsSUFBQSw4QkFBYyxFQUMvQyxjQUFjLEVBQ2QsQ0FBQyxLQUF1QixFQUFFLEVBQUU7SUFDMUIsTUFBTSxLQUFLLEdBQUcsSUFBQSx1QkFBZSxFQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ3BDLE9BQU8sSUFBSSxnQ0FBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQTtBQUNwQyxDQUFDLENBQ0YsQ0FBQSJ9
package/README.md ADDED
@@ -0,0 +1,64 @@
1
+ <p align="center">
2
+ <a href="https://www.medusajs.com">
3
+ <picture>
4
+ <source media="(prefers-color-scheme: dark)" srcset="https://user-images.githubusercontent.com/59018053/229103275-b5e482bb-4601-46e6-8142-244f531cebdb.svg">
5
+ <source media="(prefers-color-scheme: light)" srcset="https://user-images.githubusercontent.com/59018053/229103726-e5b529a3-9b3f-4970-8a1f-c6af37f087bf.svg">
6
+ <img alt="Medusa logo" src="https://user-images.githubusercontent.com/59018053/229103726-e5b529a3-9b3f-4970-8a1f-c6af37f087bf.svg">
7
+ </picture>
8
+ </a>
9
+ </p>
10
+ <h1 align="center">
11
+ Medusa Plugin Starter
12
+ </h1>
13
+
14
+ <h4 align="center">
15
+ <a href="https://docs.medusajs.com">Documentation</a> |
16
+ <a href="https://www.medusajs.com">Website</a>
17
+ </h4>
18
+
19
+ <p align="center">
20
+ Building blocks for digital commerce
21
+ </p>
22
+ <p align="center">
23
+ <a href="https://github.com/medusajs/medusa/blob/master/CONTRIBUTING.md">
24
+ <img src="https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat" alt="PRs welcome!" />
25
+ </a>
26
+ <a href="https://www.producthunt.com/posts/medusa"><img src="https://img.shields.io/badge/Product%20Hunt-%231%20Product%20of%20the%20Day-%23DA552E" alt="Product Hunt"></a>
27
+ <a href="https://discord.gg/xpCwq3Kfn8">
28
+ <img src="https://img.shields.io/badge/chat-on%20discord-7289DA.svg" alt="Discord Chat" />
29
+ </a>
30
+ <a href="https://twitter.com/intent/follow?screen_name=medusajs">
31
+ <img src="https://img.shields.io/twitter/follow/medusajs.svg?label=Follow%20@medusajs" alt="Follow @medusajs" />
32
+ </a>
33
+ </p>
34
+
35
+ ## Compatibility
36
+
37
+ This starter is compatible with versions >= 2.4.0 of `@medusajs/medusa`.
38
+
39
+ ## Getting Started
40
+
41
+ Visit the [Quickstart Guide](https://docs.medusajs.com/learn/installation) to set up a server.
42
+
43
+ Visit the [Plugins documentation](https://docs.medusajs.com/learn/fundamentals/plugins) to learn more about plugins and how to create them.
44
+
45
+ Visit the [Docs](https://docs.medusajs.com/learn/installation#get-started) to learn more about our system requirements.
46
+
47
+ ## What is Medusa
48
+
49
+ Medusa is a set of commerce modules and tools that allow you to build rich, reliable, and performant commerce applications without reinventing core commerce logic. The modules can be customized and used to build advanced ecommerce stores, marketplaces, or any product that needs foundational commerce primitives. All modules are open-source and freely available on npm.
50
+
51
+ Learn more about [Medusa’s architecture](https://docs.medusajs.com/learn/introduction/architecture) and [commerce modules](https://docs.medusajs.com/learn/fundamentals/modules/commerce-modules) in the Docs.
52
+
53
+ ## Community & Contributions
54
+
55
+ The community and core team are available in [GitHub Discussions](https://github.com/medusajs/medusa/discussions), where you can ask for support, discuss roadmap, and share ideas.
56
+
57
+ Join our [Discord server](https://discord.com/invite/medusajs) to meet other community members.
58
+
59
+ ## Other channels
60
+
61
+ - [GitHub Issues](https://github.com/medusajs/medusa/issues)
62
+ - [Twitter](https://twitter.com/medusajs)
63
+ - [LinkedIn](https://www.linkedin.com/company/medusajs)
64
+ - [Medusa Blog](https://medusajs.com/blog/)
package/package.json ADDED
@@ -0,0 +1,84 @@
1
+ {
2
+ "name": "@froze-labs/medusa-plugin-brands",
3
+ "version": "0.0.1",
4
+ "description": "Medusa plugin to add brands",
5
+ "author": "Froze Oy <emil.selroos@froze.fi> (https://froze.fi/)",
6
+ "license": "MIT",
7
+ "files": [
8
+ ".medusa/server"
9
+ ],
10
+ "exports": {
11
+ "./package.json": "./package.json",
12
+ "./workflows": "./.medusa/server/src/workflows/index.js",
13
+ "./.medusa/server/src/modules/*": "./.medusa/server/src/modules/*/index.js",
14
+ "./modules/*": "./.medusa/server/src/modules/*/index.js",
15
+ "./providers/*": "./.medusa/server/src/providers/*/index.js",
16
+ "./*": "./.medusa/server/src/*.js"
17
+ },
18
+ "keywords": [
19
+ "medusa",
20
+ "plugin",
21
+ "medusa-plugin-cms",
22
+ "medusa-plugin",
23
+ "medusa-v2"
24
+ ],
25
+ "scripts": {
26
+ "build": "medusa plugin:build",
27
+ "dev": "medusa plugin:develop",
28
+ "prepublishOnly": "medusa plugin:build"
29
+ },
30
+ "devDependencies": {
31
+ "@medusajs/admin-sdk": "2.13.0",
32
+ "@medusajs/cli": "2.13.0",
33
+ "@medusajs/framework": "2.13.0",
34
+ "@medusajs/icons": "2.13.0",
35
+ "@medusajs/js-sdk": "2.13.0",
36
+ "@medusajs/medusa": "2.13.0",
37
+ "@medusajs/test-utils": "2.13.0",
38
+ "@medusajs/ui": "4.0.9",
39
+ "@tanstack/react-query": "^5.0.0",
40
+ "@mikro-orm/cli": "6.4.3",
41
+ "@mikro-orm/core": "6.4.3",
42
+ "@mikro-orm/knex": "6.4.3",
43
+ "@mikro-orm/migrations": "6.4.3",
44
+ "@mikro-orm/postgresql": "6.4.3",
45
+ "@swc/core": "^1.7.28",
46
+ "@types/node": "^20.0.0",
47
+ "@types/react": "^18.3.2",
48
+ "@types/react-dom": "^18.2.25",
49
+ "awilix": "^8.0.1",
50
+ "pg": "^8.13.0",
51
+ "prop-types": "^15.8.1",
52
+ "react": "^18.2.0",
53
+ "react-dom": "^18.2.0",
54
+ "react-router-dom": "^6.0.0",
55
+ "ts-node": "^10.9.2",
56
+ "typescript": "^5.6.2",
57
+ "vite": "^5.2.11",
58
+ "yalc": "^1.0.0-pre.53"
59
+ },
60
+ "peerDependencies": {
61
+ "@medusajs/admin-sdk": "^2.13.0",
62
+ "@medusajs/cli": "^2.13.0",
63
+ "@medusajs/framework": "^2.13.0",
64
+ "@medusajs/icons": "^2.13.0",
65
+ "@medusajs/js-sdk": "^2.13.0",
66
+ "@medusajs/medusa": "^2.13.0",
67
+ "@medusajs/test-utils": "^2.13.0",
68
+ "@medusajs/ui": "^4.0.0",
69
+ "@mikro-orm/cli": "6.4.3",
70
+ "@mikro-orm/core": "6.4.3",
71
+ "@mikro-orm/knex": "6.4.3",
72
+ "@mikro-orm/migrations": "6.4.3",
73
+ "@mikro-orm/postgresql": "6.4.3",
74
+ "@tanstack/react-query": "^5.0.0",
75
+ "awilix": "^8.0.1",
76
+ "pg": "^8.13.0",
77
+ "react": "^18.0.0",
78
+ "react-dom": "^18.0.0",
79
+ "react-router-dom": "^6.0.0"
80
+ },
81
+ "engines": {
82
+ "node": ">=20"
83
+ }
84
+ }