@hszrdm/core 1.1.0 → 1.2.0
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.
- package/.medusa/server/src/admin/index.js +4107 -3308
- package/.medusa/server/src/admin/index.mjs +4109 -3310
- package/.medusa/server/src/api/admin/ai-translations/apply/route.d.ts +11 -0
- package/.medusa/server/src/api/admin/ai-translations/apply/route.js +102 -0
- package/.medusa/server/src/api/admin/ai-translations/preview/route.d.ts +10 -0
- package/.medusa/server/src/api/admin/ai-translations/preview/route.js +141 -0
- package/.medusa/server/src/api/admin/ai-translations/route.d.ts +2 -0
- package/.medusa/server/src/api/admin/ai-translations/route.js +19 -0
- package/.medusa/server/src/api/admin/newsletter/subscribers/export/route.d.ts +2 -0
- package/.medusa/server/src/api/admin/newsletter/subscribers/export/route.js +74 -0
- package/.medusa/server/src/api/admin/newsletter/subscribers/route.d.ts +2 -0
- package/.medusa/server/src/api/admin/newsletter/subscribers/route.js +57 -0
- package/.medusa/server/src/api/admin/product-reviews/[id]/route.d.ts +7 -0
- package/.medusa/server/src/api/admin/product-reviews/[id]/route.js +40 -0
- package/.medusa/server/src/api/admin/product-reviews/route.d.ts +2 -0
- package/.medusa/server/src/api/admin/product-reviews/route.js +31 -0
- package/.medusa/server/src/api/middlewares.js +9 -1
- package/.medusa/server/src/api/store/account/wishlist/[productId]/route.d.ts +2 -0
- package/.medusa/server/src/api/store/account/wishlist/[productId]/route.js +18 -0
- package/.medusa/server/src/api/store/account/wishlist/merge/route.d.ts +6 -0
- package/.medusa/server/src/api/store/account/wishlist/merge/route.js +51 -0
- package/.medusa/server/src/api/store/account/wishlist/route.d.ts +7 -0
- package/.medusa/server/src/api/store/account/wishlist/route.js +76 -0
- package/.medusa/server/src/api/store/cms/entries/[slug]/route.js +4 -4
- package/.medusa/server/src/api/store/cms/entries/route.js +4 -4
- package/.medusa/server/src/api/store/newsletter/config/route.d.ts +2 -0
- package/.medusa/server/src/api/store/newsletter/config/route.js +14 -0
- package/.medusa/server/src/api/store/newsletter/confirm/route.d.ts +4 -0
- package/.medusa/server/src/api/store/newsletter/confirm/route.js +52 -0
- package/.medusa/server/src/api/store/newsletter/route.d.ts +4 -0
- package/.medusa/server/src/api/store/newsletter/route.js +172 -0
- package/.medusa/server/src/api/store/newsletter/unsubscribe/route.d.ts +4 -0
- package/.medusa/server/src/api/store/newsletter/unsubscribe/route.js +54 -0
- package/.medusa/server/src/api/store/products/[id]/reviews/route.d.ts +8 -0
- package/.medusa/server/src/api/store/products/[id]/reviews/route.js +174 -0
- package/.medusa/server/src/core/ai-translation.d.ts +26 -0
- package/.medusa/server/src/core/ai-translation.js +173 -0
- package/.medusa/server/src/core/version.d.ts +2 -2
- package/.medusa/server/src/core/version.js +2 -2
- package/.medusa/server/src/modules/cms/config.d.ts +2 -1
- package/.medusa/server/src/modules/cms/config.js +27 -12
- package/.medusa/server/src/modules/cms/content-types.d.ts +24 -0
- package/.medusa/server/src/modules/cms/content-types.js +27 -0
- package/.medusa/server/src/modules/cms/index.d.ts +1 -0
- package/.medusa/server/src/modules/cms/index.js +6 -2
- package/.medusa/server/src/modules/newsletter/config.d.ts +14 -0
- package/.medusa/server/src/modules/newsletter/config.js +51 -0
- package/.medusa/server/src/modules/newsletter/email.d.ts +9 -0
- package/.medusa/server/src/modules/newsletter/email.js +38 -0
- package/.medusa/server/src/modules/newsletter/events.d.ts +10 -0
- package/.medusa/server/src/modules/newsletter/events.js +34 -0
- package/.medusa/server/src/modules/newsletter/index.d.ts +10 -0
- package/.medusa/server/src/modules/newsletter/index.js +33 -0
- package/.medusa/server/src/modules/newsletter/migrations/Migration20261030130000.d.ts +5 -0
- package/.medusa/server/src/modules/newsletter/migrations/Migration20261030130000.js +18 -0
- package/.medusa/server/src/modules/newsletter/models/newsletter-subscriber.d.ts +21 -0
- package/.medusa/server/src/modules/newsletter/models/newsletter-subscriber.js +35 -0
- package/.medusa/server/src/modules/newsletter/service.d.ts +24 -0
- package/.medusa/server/src/modules/newsletter/service.js +11 -0
- package/.medusa/server/src/modules/newsletter/token.d.ts +10 -0
- package/.medusa/server/src/modules/newsletter/token.js +97 -0
- package/.medusa/server/src/modules/product-review/config.d.ts +5 -0
- package/.medusa/server/src/modules/product-review/config.js +10 -0
- package/.medusa/server/src/modules/product-review/index.d.ts +7 -0
- package/.medusa/server/src/modules/product-review/index.js +18 -0
- package/.medusa/server/src/modules/product-review/migrations/Migration20261030160100.d.ts +5 -0
- package/.medusa/server/src/modules/product-review/migrations/Migration20261030160100.js +18 -0
- package/.medusa/server/src/modules/product-review/models/product-review.d.ts +16 -0
- package/.medusa/server/src/modules/product-review/models/product-review.js +26 -0
- package/.medusa/server/src/modules/product-review/service.d.ts +25 -0
- package/.medusa/server/src/modules/product-review/service.js +12 -0
- package/.medusa/server/src/modules/wishlist/index.d.ts +5 -0
- package/.medusa/server/src/modules/wishlist/index.js +14 -0
- package/.medusa/server/src/modules/wishlist/migrations/Migration20261030160000.d.ts +5 -0
- package/.medusa/server/src/modules/wishlist/migrations/Migration20261030160000.js +17 -0
- package/.medusa/server/src/modules/wishlist/models/wishlist-item.d.ts +6 -0
- package/.medusa/server/src/modules/wishlist/models/wishlist-item.js +14 -0
- package/.medusa/server/src/modules/wishlist/service.d.ts +15 -0
- package/.medusa/server/src/modules/wishlist/service.js +12 -0
- package/package.json +2 -1
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Migration20261030130000 = void 0;
|
|
4
|
+
const migrations_1 = require("@medusajs/framework/mikro-orm/migrations");
|
|
5
|
+
class Migration20261030130000 extends migrations_1.Migration {
|
|
6
|
+
async up() {
|
|
7
|
+
this.addSql(`create table if not exists "newsletter_subscriber" ("id" text not null, "email" text not null, "status" text check ("status" in ('pending','subscribed','unsubscribed')) not null, "source" text null, "page_url" text null, "utm" jsonb null, "consent_at" timestamptz not null, "consent_version" text not null, "consent_url" text null, "double_opt_in" boolean not null default false, "confirmation_token_hash" text null, "confirmation_sent_at" timestamptz null, "confirmation_expires_at" timestamptz null, "confirmed_at" timestamptz null, "subscribed_at" timestamptz null, "unsubscribed_at" timestamptz null, "metadata" jsonb null, "created_at" timestamptz not null default now(), "updated_at" timestamptz not null default now(), "deleted_at" timestamptz null, constraint "newsletter_subscriber_pkey" primary key ("id"));`);
|
|
8
|
+
this.addSql(`create unique index if not exists "IDX_newsletter_subscriber_email" on "newsletter_subscriber" ("email") where deleted_at is null;`);
|
|
9
|
+
this.addSql(`create index if not exists "IDX_newsletter_subscriber_status_created" on "newsletter_subscriber" ("status", "created_at") where deleted_at is null;`);
|
|
10
|
+
this.addSql(`create index if not exists "IDX_newsletter_subscriber_source_created" on "newsletter_subscriber" ("source", "created_at") where deleted_at is null;`);
|
|
11
|
+
this.addSql(`create unique index if not exists "IDX_newsletter_confirmation_token" on "newsletter_subscriber" ("confirmation_token_hash") where deleted_at is null and confirmation_token_hash is not null;`);
|
|
12
|
+
}
|
|
13
|
+
async down() {
|
|
14
|
+
this.addSql(`drop table if exists "newsletter_subscriber" cascade;`);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
exports.Migration20261030130000 = Migration20261030130000;
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWlncmF0aW9uMjAyNjEwMzAxMzAwMDAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9uZXdzbGV0dGVyL21pZ3JhdGlvbnMvTWlncmF0aW9uMjAyNjEwMzAxMzAwMDAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEseUVBQW9FO0FBRXBFLE1BQWEsdUJBQXdCLFNBQVEsc0JBQVM7SUFDcEQsS0FBSyxDQUFDLEVBQUU7UUFDTixJQUFJLENBQUMsTUFBTSxDQUFDLG16QkFBbXpCLENBQUMsQ0FBQTtRQUNoMEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxvSUFBb0ksQ0FBQyxDQUFBO1FBQ2pKLElBQUksQ0FBQyxNQUFNLENBQUMscUpBQXFKLENBQUMsQ0FBQTtRQUNsSyxJQUFJLENBQUMsTUFBTSxDQUFDLHFKQUFxSixDQUFDLENBQUE7UUFDbEssSUFBSSxDQUFDLE1BQU0sQ0FBQyxnTUFBZ00sQ0FBQyxDQUFBO0lBQy9NLENBQUM7SUFFRCxLQUFLLENBQUMsSUFBSTtRQUNSLElBQUksQ0FBQyxNQUFNLENBQUMsdURBQXVELENBQUMsQ0FBQTtJQUN0RSxDQUFDO0NBQ0Y7QUFaRCwwREFZQyJ9
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export declare const NEWSLETTER_STATUSES: readonly ["pending", "subscribed", "unsubscribed"];
|
|
2
|
+
declare const NewsletterSubscriber: import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder<{
|
|
3
|
+
id: import("@medusajs/framework/utils").PrimaryKeyModifier<string, import("@medusajs/framework/utils").IdProperty>;
|
|
4
|
+
email: import("@medusajs/framework/utils").TextProperty;
|
|
5
|
+
status: import("@medusajs/framework/utils").EnumProperty<["pending", "subscribed", "unsubscribed"]>;
|
|
6
|
+
source: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
|
|
7
|
+
page_url: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
|
|
8
|
+
utm: import("@medusajs/framework/utils").NullableModifier<NoInfer<Record<string, unknown>>, import("@medusajs/framework/utils").JSONProperty<NoInfer<Record<string, unknown>>>>;
|
|
9
|
+
consent_at: import("@medusajs/framework/utils").DateTimeProperty;
|
|
10
|
+
consent_version: import("@medusajs/framework/utils").TextProperty;
|
|
11
|
+
consent_url: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
|
|
12
|
+
double_opt_in: import("@medusajs/framework/utils").BooleanProperty;
|
|
13
|
+
confirmation_token_hash: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
|
|
14
|
+
confirmation_sent_at: import("@medusajs/framework/utils").NullableModifier<Date, import("@medusajs/framework/utils").DateTimeProperty>;
|
|
15
|
+
confirmation_expires_at: import("@medusajs/framework/utils").NullableModifier<Date, import("@medusajs/framework/utils").DateTimeProperty>;
|
|
16
|
+
confirmed_at: import("@medusajs/framework/utils").NullableModifier<Date, import("@medusajs/framework/utils").DateTimeProperty>;
|
|
17
|
+
subscribed_at: import("@medusajs/framework/utils").NullableModifier<Date, import("@medusajs/framework/utils").DateTimeProperty>;
|
|
18
|
+
unsubscribed_at: import("@medusajs/framework/utils").NullableModifier<Date, import("@medusajs/framework/utils").DateTimeProperty>;
|
|
19
|
+
metadata: import("@medusajs/framework/utils").NullableModifier<NoInfer<Record<string, unknown>>, import("@medusajs/framework/utils").JSONProperty<NoInfer<Record<string, unknown>>>>;
|
|
20
|
+
}>, "newsletter_subscriber">;
|
|
21
|
+
export default NewsletterSubscriber;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.NEWSLETTER_STATUSES = void 0;
|
|
4
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
5
|
+
exports.NEWSLETTER_STATUSES = [
|
|
6
|
+
"pending",
|
|
7
|
+
"subscribed",
|
|
8
|
+
"unsubscribed",
|
|
9
|
+
];
|
|
10
|
+
const NewsletterSubscriber = utils_1.model.define("newsletter_subscriber", {
|
|
11
|
+
id: utils_1.model.id().primaryKey(),
|
|
12
|
+
email: utils_1.model.text(),
|
|
13
|
+
status: utils_1.model.enum(["pending", "subscribed", "unsubscribed"]),
|
|
14
|
+
source: utils_1.model.text().nullable(),
|
|
15
|
+
page_url: utils_1.model.text().nullable(),
|
|
16
|
+
utm: utils_1.model.json().nullable(),
|
|
17
|
+
consent_at: utils_1.model.dateTime(),
|
|
18
|
+
consent_version: utils_1.model.text(),
|
|
19
|
+
consent_url: utils_1.model.text().nullable(),
|
|
20
|
+
double_opt_in: utils_1.model.boolean().default(false),
|
|
21
|
+
confirmation_token_hash: utils_1.model.text().nullable(),
|
|
22
|
+
confirmation_sent_at: utils_1.model.dateTime().nullable(),
|
|
23
|
+
confirmation_expires_at: utils_1.model.dateTime().nullable(),
|
|
24
|
+
confirmed_at: utils_1.model.dateTime().nullable(),
|
|
25
|
+
subscribed_at: utils_1.model.dateTime().nullable(),
|
|
26
|
+
unsubscribed_at: utils_1.model.dateTime().nullable(),
|
|
27
|
+
metadata: utils_1.model.json().nullable(),
|
|
28
|
+
}).indexes([
|
|
29
|
+
{ on: ["email"], unique: true },
|
|
30
|
+
{ on: ["status", "created_at"] },
|
|
31
|
+
{ on: ["source", "created_at"] },
|
|
32
|
+
{ on: ["confirmation_token_hash"], unique: true },
|
|
33
|
+
]);
|
|
34
|
+
exports.default = NewsletterSubscriber;
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV3c2xldHRlci1zdWJzY3JpYmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL21vZHVsZXMvbmV3c2xldHRlci9tb2RlbHMvbmV3c2xldHRlci1zdWJzY3JpYmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFEQUFpRDtBQUVwQyxRQUFBLG1CQUFtQixHQUFHO0lBQ2pDLFNBQVM7SUFDVCxZQUFZO0lBQ1osY0FBYztDQUNOLENBQUE7QUFFVixNQUFNLG9CQUFvQixHQUFHLGFBQUssQ0FBQyxNQUFNLENBQUMsdUJBQXVCLEVBQUU7SUFDakUsRUFBRSxFQUFFLGFBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxVQUFVLEVBQUU7SUFDM0IsS0FBSyxFQUFFLGFBQUssQ0FBQyxJQUFJLEVBQUU7SUFDbkIsTUFBTSxFQUFFLGFBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBQzdELE1BQU0sRUFBRSxhQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQy9CLFFBQVEsRUFBRSxhQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQ2pDLEdBQUcsRUFBRSxhQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQzVCLFVBQVUsRUFBRSxhQUFLLENBQUMsUUFBUSxFQUFFO0lBQzVCLGVBQWUsRUFBRSxhQUFLLENBQUMsSUFBSSxFQUFFO0lBQzdCLFdBQVcsRUFBRSxhQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQ3BDLGFBQWEsRUFBRSxhQUFLLENBQUMsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztJQUM3Qyx1QkFBdUIsRUFBRSxhQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQ2hELG9CQUFvQixFQUFFLGFBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDakQsdUJBQXVCLEVBQUUsYUFBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUNwRCxZQUFZLEVBQUUsYUFBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUN6QyxhQUFhLEVBQUUsYUFBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUMxQyxlQUFlLEVBQUUsYUFBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUM1QyxRQUFRLEVBQUUsYUFBSyxDQUFDLElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRTtDQUNsQyxDQUFDLENBQUMsT0FBTyxDQUFDO0lBQ1QsRUFBRSxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO0lBQy9CLEVBQUUsRUFBRSxFQUFFLENBQUMsUUFBUSxFQUFFLFlBQVksQ0FBQyxFQUFFO0lBQ2hDLEVBQUUsRUFBRSxFQUFFLENBQUMsUUFBUSxFQUFFLFlBQVksQ0FBQyxFQUFFO0lBQ2hDLEVBQUUsRUFBRSxFQUFFLENBQUMseUJBQXlCLENBQUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO0NBQ2xELENBQUMsQ0FBQTtBQUVGLGtCQUFlLG9CQUFvQixDQUFBIn0=
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
declare const NewsletterService_base: import("@medusajs/framework/utils").MedusaServiceReturnType<import("@medusajs/framework/utils").ModelConfigurationsToConfigTemplate<{
|
|
2
|
+
readonly NewsletterSubscriber: import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder<{
|
|
3
|
+
id: import("@medusajs/framework/utils").PrimaryKeyModifier<string, import("@medusajs/framework/utils").IdProperty>;
|
|
4
|
+
email: import("@medusajs/framework/utils").TextProperty;
|
|
5
|
+
status: import("@medusajs/framework/utils").EnumProperty<["pending", "subscribed", "unsubscribed"]>;
|
|
6
|
+
source: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
|
|
7
|
+
page_url: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
|
|
8
|
+
utm: import("@medusajs/framework/utils").NullableModifier<NoInfer<Record<string, unknown>>, import("@medusajs/framework/utils").JSONProperty<NoInfer<Record<string, unknown>>>>;
|
|
9
|
+
consent_at: import("@medusajs/framework/utils").DateTimeProperty;
|
|
10
|
+
consent_version: import("@medusajs/framework/utils").TextProperty;
|
|
11
|
+
consent_url: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
|
|
12
|
+
double_opt_in: import("@medusajs/framework/utils").BooleanProperty;
|
|
13
|
+
confirmation_token_hash: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
|
|
14
|
+
confirmation_sent_at: import("@medusajs/framework/utils").NullableModifier<Date, import("@medusajs/framework/utils").DateTimeProperty>;
|
|
15
|
+
confirmation_expires_at: import("@medusajs/framework/utils").NullableModifier<Date, import("@medusajs/framework/utils").DateTimeProperty>;
|
|
16
|
+
confirmed_at: import("@medusajs/framework/utils").NullableModifier<Date, import("@medusajs/framework/utils").DateTimeProperty>;
|
|
17
|
+
subscribed_at: import("@medusajs/framework/utils").NullableModifier<Date, import("@medusajs/framework/utils").DateTimeProperty>;
|
|
18
|
+
unsubscribed_at: import("@medusajs/framework/utils").NullableModifier<Date, import("@medusajs/framework/utils").DateTimeProperty>;
|
|
19
|
+
metadata: import("@medusajs/framework/utils").NullableModifier<NoInfer<Record<string, unknown>>, import("@medusajs/framework/utils").JSONProperty<NoInfer<Record<string, unknown>>>>;
|
|
20
|
+
}>, "newsletter_subscriber">;
|
|
21
|
+
}>>;
|
|
22
|
+
declare class NewsletterService extends NewsletterService_base {
|
|
23
|
+
}
|
|
24
|
+
export default NewsletterService;
|
|
@@ -0,0 +1,11 @@
|
|
|
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 newsletter_subscriber_1 = __importDefault(require("./models/newsletter-subscriber"));
|
|
8
|
+
class NewsletterService extends (0, utils_1.MedusaService)({ NewsletterSubscriber: newsletter_subscriber_1.default }) {
|
|
9
|
+
}
|
|
10
|
+
exports.default = NewsletterService;
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9tb2R1bGVzL25ld3NsZXR0ZXIvc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHFEQUF5RDtBQUN6RCwyRkFBaUU7QUFFakUsTUFBTSxpQkFBa0IsU0FBUSxJQUFBLHFCQUFhLEVBQUMsRUFBRSxvQkFBb0IsRUFBcEIsK0JBQW9CLEVBQUUsQ0FBQztDQUFHO0FBRTFFLGtCQUFlLGlCQUFpQixDQUFBIn0=
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export declare function createNewsletterToken(bytes?: number): {
|
|
2
|
+
token: string;
|
|
3
|
+
hash: string;
|
|
4
|
+
};
|
|
5
|
+
export declare function hashNewsletterToken(token: string): string;
|
|
6
|
+
export declare function createNewsletterUnsubscribeToken(subscriberId: string, email: string): string;
|
|
7
|
+
export declare function newsletterSubscriberIdFromUnsubscribeToken(token: string): string;
|
|
8
|
+
export declare function verifyNewsletterUnsubscribeToken(token: string, subscriberId: string, email: string): boolean;
|
|
9
|
+
export declare function normalizeNewsletterEmail(value: unknown): string;
|
|
10
|
+
export declare function normalizeNewsletterUtm(value: unknown): Record<string, string>;
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createNewsletterToken = createNewsletterToken;
|
|
4
|
+
exports.hashNewsletterToken = hashNewsletterToken;
|
|
5
|
+
exports.createNewsletterUnsubscribeToken = createNewsletterUnsubscribeToken;
|
|
6
|
+
exports.newsletterSubscriberIdFromUnsubscribeToken = newsletterSubscriberIdFromUnsubscribeToken;
|
|
7
|
+
exports.verifyNewsletterUnsubscribeToken = verifyNewsletterUnsubscribeToken;
|
|
8
|
+
exports.normalizeNewsletterEmail = normalizeNewsletterEmail;
|
|
9
|
+
exports.normalizeNewsletterUtm = normalizeNewsletterUtm;
|
|
10
|
+
const node_crypto_1 = require("node:crypto");
|
|
11
|
+
function createNewsletterToken(bytes = 32) {
|
|
12
|
+
const token = (0, node_crypto_1.randomBytes)(bytes).toString("base64url");
|
|
13
|
+
return { token, hash: hashNewsletterToken(token) };
|
|
14
|
+
}
|
|
15
|
+
function hashNewsletterToken(token) {
|
|
16
|
+
return (0, node_crypto_1.createHash)("sha256").update(token, "utf8").digest("hex");
|
|
17
|
+
}
|
|
18
|
+
function createNewsletterUnsubscribeToken(subscriberId, email) {
|
|
19
|
+
const id = String(subscriberId || "").trim();
|
|
20
|
+
if (!id)
|
|
21
|
+
throw new Error("A feliratkozó azonosítója hiányzik.");
|
|
22
|
+
const normalizedEmail = normalizeNewsletterEmail(email);
|
|
23
|
+
const encodedId = Buffer.from(id, "utf8").toString("base64url");
|
|
24
|
+
const signature = signUnsubscribeToken(id, normalizedEmail);
|
|
25
|
+
return `${encodedId}.${signature}`;
|
|
26
|
+
}
|
|
27
|
+
function newsletterSubscriberIdFromUnsubscribeToken(token) {
|
|
28
|
+
const parts = String(token || "").trim().split(".");
|
|
29
|
+
if (parts.length !== 2 || !parts[0] || !parts[1])
|
|
30
|
+
throw new Error("Érvénytelen leiratkozó token.");
|
|
31
|
+
let id = "";
|
|
32
|
+
try {
|
|
33
|
+
id = Buffer.from(parts[0], "base64url").toString("utf8").trim();
|
|
34
|
+
}
|
|
35
|
+
catch {
|
|
36
|
+
id = "";
|
|
37
|
+
}
|
|
38
|
+
if (!id || id.length > 255)
|
|
39
|
+
throw new Error("Érvénytelen leiratkozó token.");
|
|
40
|
+
return id;
|
|
41
|
+
}
|
|
42
|
+
function verifyNewsletterUnsubscribeToken(token, subscriberId, email) {
|
|
43
|
+
const parts = String(token || "").trim().split(".");
|
|
44
|
+
if (parts.length !== 2)
|
|
45
|
+
return false;
|
|
46
|
+
let tokenId;
|
|
47
|
+
try {
|
|
48
|
+
tokenId = newsletterSubscriberIdFromUnsubscribeToken(token);
|
|
49
|
+
}
|
|
50
|
+
catch {
|
|
51
|
+
return false;
|
|
52
|
+
}
|
|
53
|
+
if (tokenId !== subscriberId)
|
|
54
|
+
return false;
|
|
55
|
+
const expected = signUnsubscribeToken(subscriberId, normalizeNewsletterEmail(email));
|
|
56
|
+
const provided = Buffer.from(parts[1], "utf8");
|
|
57
|
+
const wanted = Buffer.from(expected, "utf8");
|
|
58
|
+
return provided.length === wanted.length && (0, node_crypto_1.timingSafeEqual)(provided, wanted);
|
|
59
|
+
}
|
|
60
|
+
function normalizeNewsletterEmail(value) {
|
|
61
|
+
if (typeof value !== "string")
|
|
62
|
+
throw new Error("Az e-mail-cím megadása kötelező.");
|
|
63
|
+
const email = value.trim().toLowerCase();
|
|
64
|
+
if (!email || email.length > 320 || !/^\S+@\S+\.\S+$/.test(email)) {
|
|
65
|
+
throw new Error("Érvényes e-mail-cím szükséges.");
|
|
66
|
+
}
|
|
67
|
+
return email;
|
|
68
|
+
}
|
|
69
|
+
function normalizeNewsletterUtm(value) {
|
|
70
|
+
if (!value || typeof value !== "object" || Array.isArray(value))
|
|
71
|
+
return {};
|
|
72
|
+
const allowed = ["utm_source", "utm_medium", "utm_campaign", "utm_term", "utm_content"];
|
|
73
|
+
const input = value;
|
|
74
|
+
const output = {};
|
|
75
|
+
for (const key of allowed) {
|
|
76
|
+
const raw = input[key];
|
|
77
|
+
if (typeof raw !== "string")
|
|
78
|
+
continue;
|
|
79
|
+
const normalized = raw.trim().slice(0, 500);
|
|
80
|
+
if (normalized)
|
|
81
|
+
output[key] = normalized;
|
|
82
|
+
}
|
|
83
|
+
return output;
|
|
84
|
+
}
|
|
85
|
+
function signUnsubscribeToken(subscriberId, email) {
|
|
86
|
+
return (0, node_crypto_1.createHmac)("sha256", newsletterTokenSecret())
|
|
87
|
+
.update(`${subscriberId}:${email}`, "utf8")
|
|
88
|
+
.digest("base64url");
|
|
89
|
+
}
|
|
90
|
+
function newsletterTokenSecret() {
|
|
91
|
+
const secret = String(process.env.NEWSLETTER_TOKEN_SECRET || process.env.COOKIE_SECRET || "").trim();
|
|
92
|
+
if (secret.length < 32) {
|
|
93
|
+
throw new Error("NEWSLETTER_TOKEN_SECRET vagy legalább 32 karakteres COOKIE_SECRET szükséges a leiratkozó linkekhez.");
|
|
94
|
+
}
|
|
95
|
+
return secret;
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9uZXdzbGV0dGVyL3Rva2VuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBRUEsc0RBR0M7QUFFRCxrREFFQztBQUVELDRFQU9DO0FBRUQsZ0dBT0M7QUFFRCw0RUFXQztBQUVELDREQU9DO0FBRUQsd0RBWUM7QUEvREQsNkNBQWtGO0FBRWxGLFNBQWdCLHFCQUFxQixDQUFDLEtBQUssR0FBRyxFQUFFO0lBQzlDLE1BQU0sS0FBSyxHQUFHLElBQUEseUJBQVcsRUFBQyxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUE7SUFDdEQsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsbUJBQW1CLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQTtBQUNwRCxDQUFDO0FBRUQsU0FBZ0IsbUJBQW1CLENBQUMsS0FBYTtJQUMvQyxPQUFPLElBQUEsd0JBQVUsRUFBQyxRQUFRLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQTtBQUNqRSxDQUFDO0FBRUQsU0FBZ0IsZ0NBQWdDLENBQUMsWUFBb0IsRUFBRSxLQUFhO0lBQ2xGLE1BQU0sRUFBRSxHQUFHLE1BQU0sQ0FBQyxZQUFZLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUE7SUFDNUMsSUFBSSxDQUFDLEVBQUU7UUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLHFDQUFxQyxDQUFDLENBQUE7SUFDL0QsTUFBTSxlQUFlLEdBQUcsd0JBQXdCLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDdkQsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFBO0lBQy9ELE1BQU0sU0FBUyxHQUFHLG9CQUFvQixD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
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.loadProductReviewConfig = loadProductReviewConfig;
|
|
4
|
+
function loadProductReviewConfig(env = process.env) {
|
|
5
|
+
return {
|
|
6
|
+
enabled: env.PRODUCT_REVIEWS_ENABLED !== "false",
|
|
7
|
+
requireVerifiedPurchase: env.PRODUCT_REVIEWS_REQUIRE_VERIFIED_PURCHASE === "true",
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL21vZHVsZXMvcHJvZHVjdC1yZXZpZXcvY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBS0EsMERBS0M7QUFMRCxTQUFnQix1QkFBdUIsQ0FBQyxNQUF5QixPQUFPLENBQUMsR0FBRztJQUMxRSxPQUFPO1FBQ0wsT0FBTyxFQUFFLEdBQUcsQ0FBQyx1QkFBdUIsS0FBSyxPQUFPO1FBQ2hELHVCQUF1QixFQUFFLEdBQUcsQ0FBQyx5Q0FBeUMsS0FBSyxNQUFNO0tBQ2xGLENBQUE7QUFDSCxDQUFDIn0=
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import ProductReviewService from "./service";
|
|
2
|
+
export declare const PRODUCT_REVIEW_MODULE = "productReview";
|
|
3
|
+
declare const _default: any;
|
|
4
|
+
export default _default;
|
|
5
|
+
export { ProductReviewService };
|
|
6
|
+
export { PRODUCT_REVIEW_STATUSES } from "./models/product-review";
|
|
7
|
+
export { loadProductReviewConfig, type ProductReviewConfig } from "./config";
|
|
@@ -0,0 +1,18 @@
|
|
|
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.loadProductReviewConfig = exports.PRODUCT_REVIEW_STATUSES = exports.ProductReviewService = exports.PRODUCT_REVIEW_MODULE = void 0;
|
|
7
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
8
|
+
const service_1 = __importDefault(require("./service"));
|
|
9
|
+
exports.ProductReviewService = service_1.default;
|
|
10
|
+
exports.PRODUCT_REVIEW_MODULE = "productReview";
|
|
11
|
+
exports.default = (0, utils_1.Module)(exports.PRODUCT_REVIEW_MODULE, {
|
|
12
|
+
service: service_1.default,
|
|
13
|
+
});
|
|
14
|
+
var product_review_1 = require("./models/product-review");
|
|
15
|
+
Object.defineProperty(exports, "PRODUCT_REVIEW_STATUSES", { enumerable: true, get: function () { return product_review_1.PRODUCT_REVIEW_STATUSES; } });
|
|
16
|
+
var config_1 = require("./config");
|
|
17
|
+
Object.defineProperty(exports, "loadProductReviewConfig", { enumerable: true, get: function () { return config_1.loadProductReviewConfig; } });
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9wcm9kdWN0LXJldmlldy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxxREFBa0Q7QUFDbEQsd0RBQTRDO0FBUW5DLCtCQVJGLGlCQUFvQixDQVFFO0FBTmhCLFFBQUEscUJBQXFCLEdBQUcsZUFBZSxDQUFBO0FBRXBELGtCQUFlLElBQUEsY0FBTSxFQUFDLDZCQUFxQixFQUFFO0lBQzNDLE9BQU8sRUFBRSxpQkFBb0I7Q0FDOUIsQ0FBQyxDQUFBO0FBR0YsMERBQWlFO0FBQXhELHlIQUFBLHVCQUF1QixPQUFBO0FBQ2hDLG1DQUE0RTtBQUFuRSxpSEFBQSx1QkFBdUIsT0FBQSJ9
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Migration20261030160100 = void 0;
|
|
4
|
+
const migrations_1 = require("@medusajs/framework/mikro-orm/migrations");
|
|
5
|
+
class Migration20261030160100 extends migrations_1.Migration {
|
|
6
|
+
async up() {
|
|
7
|
+
this.addSql(`create table if not exists "product_review" ("id" text not null, "product_id" text not null, "customer_id" text not null, "customer_name" text null, "rating" int not null, "body" text not null, "status" text check ("status" in ('pending','approved','rejected')) not null default 'pending', "verified_purchase" boolean not null default false, "order_id" text null, "moderation_note" text null, "moderated_at" timestamptz null, "moderated_by" text null, "created_at" timestamptz not null default now(), "updated_at" timestamptz not null default now(), "deleted_at" timestamptz null, constraint "product_review_pkey" primary key ("id"));`);
|
|
8
|
+
this.addSql(`create unique index if not exists "IDX_product_review_product_customer" on "product_review" ("product_id", "customer_id") where deleted_at is null;`);
|
|
9
|
+
this.addSql(`create index if not exists "IDX_product_review_product_status_created" on "product_review" ("product_id", "status", "created_at") where deleted_at is null;`);
|
|
10
|
+
this.addSql(`create index if not exists "IDX_product_review_customer_created" on "product_review" ("customer_id", "created_at") where deleted_at is null;`);
|
|
11
|
+
this.addSql(`create index if not exists "IDX_product_review_status_created" on "product_review" ("status", "created_at") where deleted_at is null;`);
|
|
12
|
+
}
|
|
13
|
+
async down() {
|
|
14
|
+
this.addSql(`drop table if exists "product_review" cascade;`);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
exports.Migration20261030160100 = Migration20261030160100;
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWlncmF0aW9uMjAyNjEwMzAxNjAxMDAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9wcm9kdWN0LXJldmlldy9taWdyYXRpb25zL01pZ3JhdGlvbjIwMjYxMDMwMTYwMTAwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHlFQUFvRTtBQUVwRSxNQUFhLHVCQUF3QixTQUFRLHNCQUFTO0lBQ3BELEtBQUssQ0FBQyxFQUFFO1FBQ04sSUFBSSxDQUFDLE1BQU0sQ0FBQyw0bkJBQTRuQixDQUFDLENBQUE7UUFDem9CLElBQUksQ0FBQyxNQUFNLENBQUMscUpBQXFKLENBQUMsQ0FBQTtRQUNsSyxJQUFJLENBQUMsTUFBTSxDQUFDLDZKQUE2SixDQUFDLENBQUE7UUFDMUssSUFBSSxDQUFDLE1BQU0sQ0FBQyw4SUFBOEksQ0FBQyxDQUFBO1FBQzNKLElBQUksQ0FBQyxNQUFNLENBQUMsdUlBQXVJLENBQUMsQ0FBQTtJQUN0SixDQUFDO0lBRUQsS0FBSyxDQUFDLElBQUk7UUFDUixJQUFJLENBQUMsTUFBTSxDQUFDLGdEQUFnRCxDQUFDLENBQUE7SUFDL0QsQ0FBQztDQUNGO0FBWkQsMERBWUMifQ==
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export declare const PRODUCT_REVIEW_STATUSES: readonly ["pending", "approved", "rejected"];
|
|
2
|
+
declare const ProductReview: import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder<{
|
|
3
|
+
id: import("@medusajs/framework/utils").PrimaryKeyModifier<string, import("@medusajs/framework/utils").IdProperty>;
|
|
4
|
+
product_id: import("@medusajs/framework/utils").TextProperty;
|
|
5
|
+
customer_id: import("@medusajs/framework/utils").TextProperty;
|
|
6
|
+
customer_name: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
|
|
7
|
+
rating: import("@medusajs/framework/utils").NumberProperty;
|
|
8
|
+
body: import("@medusajs/framework/utils").TextProperty;
|
|
9
|
+
status: import("@medusajs/framework/utils").EnumProperty<["pending", "approved", "rejected"]>;
|
|
10
|
+
verified_purchase: import("@medusajs/framework/utils").BooleanProperty;
|
|
11
|
+
order_id: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
|
|
12
|
+
moderation_note: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
|
|
13
|
+
moderated_at: import("@medusajs/framework/utils").NullableModifier<Date, import("@medusajs/framework/utils").DateTimeProperty>;
|
|
14
|
+
moderated_by: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
|
|
15
|
+
}>, "product_review">;
|
|
16
|
+
export default ProductReview;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PRODUCT_REVIEW_STATUSES = void 0;
|
|
4
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
5
|
+
exports.PRODUCT_REVIEW_STATUSES = ["pending", "approved", "rejected"];
|
|
6
|
+
const ProductReview = utils_1.model.define("product_review", {
|
|
7
|
+
id: utils_1.model.id().primaryKey(),
|
|
8
|
+
product_id: utils_1.model.text(),
|
|
9
|
+
customer_id: utils_1.model.text(),
|
|
10
|
+
customer_name: utils_1.model.text().nullable(),
|
|
11
|
+
rating: utils_1.model.number(),
|
|
12
|
+
body: utils_1.model.text(),
|
|
13
|
+
status: utils_1.model.enum(["pending", "approved", "rejected"]).default("pending"),
|
|
14
|
+
verified_purchase: utils_1.model.boolean().default(false),
|
|
15
|
+
order_id: utils_1.model.text().nullable(),
|
|
16
|
+
moderation_note: utils_1.model.text().nullable(),
|
|
17
|
+
moderated_at: utils_1.model.dateTime().nullable(),
|
|
18
|
+
moderated_by: utils_1.model.text().nullable(),
|
|
19
|
+
}).indexes([
|
|
20
|
+
{ on: ["product_id", "customer_id"], unique: true },
|
|
21
|
+
{ on: ["product_id", "status", "created_at"] },
|
|
22
|
+
{ on: ["customer_id", "created_at"] },
|
|
23
|
+
{ on: ["status", "created_at"] },
|
|
24
|
+
]);
|
|
25
|
+
exports.default = ProductReview;
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1yZXZpZXcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9wcm9kdWN0LXJldmlldy9tb2RlbHMvcHJvZHVjdC1yZXZpZXcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscURBQWlEO0FBRXBDLFFBQUEsdUJBQXVCLEdBQUcsQ0FBQyxTQUFTLEVBQUUsVUFBVSxFQUFFLFVBQVUsQ0FBVSxDQUFBO0FBRW5GLE1BQU0sYUFBYSxHQUFHLGFBQUssQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLEVBQUU7SUFDbkQsRUFBRSxFQUFFLGFBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxVQUFVLEVBQUU7SUFDM0IsVUFBVSxFQUFFLGFBQUssQ0FBQyxJQUFJLEVBQUU7SUFDeEIsV0FBVyxFQUFFLGFBQUssQ0FBQyxJQUFJLEVBQUU7SUFDekIsYUFBYSxFQUFFLGFBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDdEMsTUFBTSxFQUFFLGFBQUssQ0FBQyxNQUFNLEVBQUU7SUFDdEIsSUFBSSxFQUFFLGFBQUssQ0FBQyxJQUFJLEVBQUU7SUFDbEIsTUFBTSxFQUFFLGFBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLEVBQUUsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQztJQUMxRSxpQkFBaUIsRUFBRSxhQUFLLENBQUMsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztJQUNqRCxRQUFRLEVBQUUsYUFBSyxDQUFDLElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUNqQyxlQUFlLEVBQUUsYUFBSyxDQUFDLElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUN4QyxZQUFZLEVBQUUsYUFBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUN6QyxZQUFZLEVBQUUsYUFBSyxDQUFDLElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRTtDQUN0QyxDQUFDLENBQUMsT0FBTyxDQUFDO0lBQ1QsRUFBRSxFQUFFLEVBQUUsQ0FBQyxZQUFZLEVBQUUsYUFBYSxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtJQUNuRCxFQUFFLEVBQUUsRUFBRSxDQUFDLFlBQVksRUFBRSxRQUFRLEVBQUUsWUFBWSxDQUFDLEVBQUU7SUFDOUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxhQUFhLEVBQUUsWUFBWSxDQUFDLEVBQUU7SUFDckMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxRQUFRLEVBQUUsWUFBWSxDQUFDLEVBQUU7Q0FDakMsQ0FBQyxDQUFBO0FBRUYsa0JBQWUsYUFBYSxDQUFBIn0=
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
declare const ProductReviewBaseService: import("@medusajs/framework/utils").MedusaServiceReturnType<import("@medusajs/framework/utils").ModelConfigurationsToConfigTemplate<{
|
|
2
|
+
readonly ProductReview: import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder<{
|
|
3
|
+
id: import("@medusajs/framework/utils").PrimaryKeyModifier<string, import("@medusajs/framework/utils").IdProperty>;
|
|
4
|
+
product_id: import("@medusajs/framework/utils").TextProperty;
|
|
5
|
+
customer_id: import("@medusajs/framework/utils").TextProperty;
|
|
6
|
+
customer_name: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
|
|
7
|
+
rating: import("@medusajs/framework/utils").NumberProperty;
|
|
8
|
+
body: import("@medusajs/framework/utils").TextProperty;
|
|
9
|
+
status: import("@medusajs/framework/utils").EnumProperty<["pending", "approved", "rejected"]>;
|
|
10
|
+
verified_purchase: import("@medusajs/framework/utils").BooleanProperty;
|
|
11
|
+
order_id: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
|
|
12
|
+
moderation_note: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
|
|
13
|
+
moderated_at: import("@medusajs/framework/utils").NullableModifier<Date, import("@medusajs/framework/utils").DateTimeProperty>;
|
|
14
|
+
moderated_by: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
|
|
15
|
+
}>, "product_review">;
|
|
16
|
+
}>>;
|
|
17
|
+
type ProductReviewBaseServiceInstance = InstanceType<typeof ProductReviewBaseService>;
|
|
18
|
+
export default class ProductReviewService extends ProductReviewBaseService {
|
|
19
|
+
createProductReviews: ProductReviewBaseServiceInstance["createProductReviews"];
|
|
20
|
+
updateProductReviews: ProductReviewBaseServiceInstance["updateProductReviews"];
|
|
21
|
+
retrieveProductReview: ProductReviewBaseServiceInstance["retrieveProductReview"];
|
|
22
|
+
listProductReviews: ProductReviewBaseServiceInstance["listProductReviews"];
|
|
23
|
+
listAndCountProductReviews: ProductReviewBaseServiceInstance["listAndCountProductReviews"];
|
|
24
|
+
}
|
|
25
|
+
export {};
|
|
@@ -0,0 +1,12 @@
|
|
|
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 product_review_1 = __importDefault(require("./models/product-review"));
|
|
8
|
+
const ProductReviewBaseService = (0, utils_1.MedusaService)({ ProductReview: product_review_1.default });
|
|
9
|
+
class ProductReviewService extends ProductReviewBaseService {
|
|
10
|
+
}
|
|
11
|
+
exports.default = ProductReviewService;
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9tb2R1bGVzL3Byb2R1Y3QtcmV2aWV3L3NlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxxREFBeUQ7QUFDekQsNkVBQW1EO0FBRW5ELE1BQU0sd0JBQXdCLEdBQUcsSUFBQSxxQkFBYSxFQUFDLEVBQUUsYUFBYSxFQUFiLHdCQUFhLEVBQUUsQ0FBQyxDQUFBO0FBR2pFLE1BQXFCLG9CQUFxQixTQUFRLHdCQUF3QjtDQU16RTtBQU5ELHVDQU1DIn0=
|
|
@@ -0,0 +1,14 @@
|
|
|
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.WishlistService = exports.WISHLIST_MODULE = void 0;
|
|
7
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
8
|
+
const service_1 = __importDefault(require("./service"));
|
|
9
|
+
exports.WishlistService = service_1.default;
|
|
10
|
+
exports.WISHLIST_MODULE = "wishlist";
|
|
11
|
+
exports.default = (0, utils_1.Module)(exports.WISHLIST_MODULE, {
|
|
12
|
+
service: service_1.default,
|
|
13
|
+
});
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy93aXNobGlzdC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxxREFBa0Q7QUFDbEQsd0RBQXVDO0FBUTlCLDBCQVJGLGlCQUFlLENBUUU7QUFOWCxRQUFBLGVBQWUsR0FBRyxVQUFVLENBQUE7QUFFekMsa0JBQWUsSUFBQSxjQUFNLEVBQUMsdUJBQWUsRUFBRTtJQUNyQyxPQUFPLEVBQUUsaUJBQWU7Q0FDekIsQ0FBQyxDQUFBIn0=
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Migration20261030160000 = void 0;
|
|
4
|
+
const migrations_1 = require("@medusajs/framework/mikro-orm/migrations");
|
|
5
|
+
class Migration20261030160000 extends migrations_1.Migration {
|
|
6
|
+
async up() {
|
|
7
|
+
this.addSql(`create table if not exists "wishlist_item" ("id" text not null, "customer_id" text not null, "product_id" text not null, "created_at" timestamptz not null default now(), "updated_at" timestamptz not null default now(), "deleted_at" timestamptz null, constraint "wishlist_item_pkey" primary key ("id"));`);
|
|
8
|
+
this.addSql(`create unique index if not exists "IDX_wishlist_customer_product" on "wishlist_item" ("customer_id", "product_id") where deleted_at is null;`);
|
|
9
|
+
this.addSql(`create index if not exists "IDX_wishlist_customer_created" on "wishlist_item" ("customer_id", "created_at") where deleted_at is null;`);
|
|
10
|
+
this.addSql(`create index if not exists "IDX_wishlist_product" on "wishlist_item" ("product_id") where deleted_at is null;`);
|
|
11
|
+
}
|
|
12
|
+
async down() {
|
|
13
|
+
this.addSql(`drop table if exists "wishlist_item" cascade;`);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
exports.Migration20261030160000 = Migration20261030160000;
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWlncmF0aW9uMjAyNjEwMzAxNjAwMDAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy93aXNobGlzdC9taWdyYXRpb25zL01pZ3JhdGlvbjIwMjYxMDMwMTYwMDAwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHlFQUFvRTtBQUVwRSxNQUFhLHVCQUF3QixTQUFRLHNCQUFTO0lBQ3BELEtBQUssQ0FBQyxFQUFFO1FBQ04sSUFBSSxDQUFDLE1BQU0sQ0FBQyxnVEFBZ1QsQ0FBQyxDQUFBO1FBQzdULElBQUksQ0FBQyxNQUFNLENBQUMsOElBQThJLENBQUMsQ0FBQTtRQUMzSixJQUFJLENBQUMsTUFBTSxDQUFDLHVJQUF1SSxDQUFDLENBQUE7UUFDcEosSUFBSSxDQUFDLE1BQU0sQ0FBQywrR0FBK0csQ0FBQyxDQUFBO0lBQzlILENBQUM7SUFFRCxLQUFLLENBQUMsSUFBSTtRQUNSLElBQUksQ0FBQyxNQUFNLENBQUMsK0NBQStDLENBQUMsQ0FBQTtJQUM5RCxDQUFDO0NBQ0Y7QUFYRCwwREFXQyJ9
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
declare const WishlistItem: import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder<{
|
|
2
|
+
id: import("@medusajs/framework/utils").PrimaryKeyModifier<string, import("@medusajs/framework/utils").IdProperty>;
|
|
3
|
+
customer_id: import("@medusajs/framework/utils").TextProperty;
|
|
4
|
+
product_id: import("@medusajs/framework/utils").TextProperty;
|
|
5
|
+
}>, "wishlist_item">;
|
|
6
|
+
export default WishlistItem;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
4
|
+
const WishlistItem = utils_1.model.define("wishlist_item", {
|
|
5
|
+
id: utils_1.model.id().primaryKey(),
|
|
6
|
+
customer_id: utils_1.model.text(),
|
|
7
|
+
product_id: utils_1.model.text(),
|
|
8
|
+
}).indexes([
|
|
9
|
+
{ on: ["customer_id", "product_id"], unique: true },
|
|
10
|
+
{ on: ["customer_id", "created_at"] },
|
|
11
|
+
{ on: ["product_id"] },
|
|
12
|
+
]);
|
|
13
|
+
exports.default = WishlistItem;
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lzaGxpc3QtaXRlbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9tb2R1bGVzL3dpc2hsaXN0L21vZGVscy93aXNobGlzdC1pdGVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEscURBQWlEO0FBRWpELE1BQU0sWUFBWSxHQUFHLGFBQUssQ0FBQyxNQUFNLENBQUMsZUFBZSxFQUFFO0lBQ2pELEVBQUUsRUFBRSxhQUFLLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBVSxFQUFFO0lBQzNCLFdBQVcsRUFBRSxhQUFLLENBQUMsSUFBSSxFQUFFO0lBQ3pCLFVBQVUsRUFBRSxhQUFLLENBQUMsSUFBSSxFQUFFO0NBQ3pCLENBQUMsQ0FBQyxPQUFPLENBQUM7SUFDVCxFQUFFLEVBQUUsRUFBRSxDQUFDLGFBQWEsRUFBRSxZQUFZLENBQUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO0lBQ25ELEVBQUUsRUFBRSxFQUFFLENBQUMsYUFBYSxFQUFFLFlBQVksQ0FBQyxFQUFFO0lBQ3JDLEVBQUUsRUFBRSxFQUFFLENBQUMsWUFBWSxDQUFDLEVBQUU7Q0FDdkIsQ0FBQyxDQUFBO0FBRUYsa0JBQWUsWUFBWSxDQUFBIn0=
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
declare const WishlistBaseService: import("@medusajs/framework/utils").MedusaServiceReturnType<import("@medusajs/framework/utils").ModelConfigurationsToConfigTemplate<{
|
|
2
|
+
readonly WishlistItem: import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder<{
|
|
3
|
+
id: import("@medusajs/framework/utils").PrimaryKeyModifier<string, import("@medusajs/framework/utils").IdProperty>;
|
|
4
|
+
customer_id: import("@medusajs/framework/utils").TextProperty;
|
|
5
|
+
product_id: import("@medusajs/framework/utils").TextProperty;
|
|
6
|
+
}>, "wishlist_item">;
|
|
7
|
+
}>>;
|
|
8
|
+
type WishlistBaseServiceInstance = InstanceType<typeof WishlistBaseService>;
|
|
9
|
+
export default class WishlistService extends WishlistBaseService {
|
|
10
|
+
createWishlistItems: WishlistBaseServiceInstance["createWishlistItems"];
|
|
11
|
+
deleteWishlistItems: WishlistBaseServiceInstance["deleteWishlistItems"];
|
|
12
|
+
listWishlistItems: WishlistBaseServiceInstance["listWishlistItems"];
|
|
13
|
+
listAndCountWishlistItems: WishlistBaseServiceInstance["listAndCountWishlistItems"];
|
|
14
|
+
}
|
|
15
|
+
export {};
|
|
@@ -0,0 +1,12 @@
|
|
|
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 wishlist_item_1 = __importDefault(require("./models/wishlist-item"));
|
|
8
|
+
const WishlistBaseService = (0, utils_1.MedusaService)({ WishlistItem: wishlist_item_1.default });
|
|
9
|
+
class WishlistService extends WishlistBaseService {
|
|
10
|
+
}
|
|
11
|
+
exports.default = WishlistService;
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9tb2R1bGVzL3dpc2hsaXN0L3NlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxxREFBeUQ7QUFDekQsMkVBQWlEO0FBRWpELE1BQU0sbUJBQW1CLEdBQUcsSUFBQSxxQkFBYSxFQUFDLEVBQUUsWUFBWSxFQUFaLHVCQUFZLEVBQUUsQ0FBQyxDQUFBO0FBRzNELE1BQXFCLGVBQWdCLFNBQVEsbUJBQW1CO0NBSy9EO0FBTEQsa0NBS0MifQ==
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hszrdm/core",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.2.0",
|
|
4
4
|
"description": "Reusable HSZRDM Commerce Core plugin for Medusa v2.",
|
|
5
5
|
"license": "UNLICENSED",
|
|
6
6
|
"files": [
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
"exports": {
|
|
11
11
|
"./package.json": "./package.json",
|
|
12
12
|
"./config": "./.medusa/server/src/localized-config.js",
|
|
13
|
+
"./cms-contract": "./.medusa/server/src/modules/cms/content-types.js",
|
|
13
14
|
"./.medusa/server/src/modules/*": "./.medusa/server/src/modules/*/index.js",
|
|
14
15
|
"./providers/*": "./.medusa/server/src/providers/*/index.js",
|
|
15
16
|
"./scripts/*": "./.medusa/server/src/scripts/*.js",
|