medusa-contact-us 0.0.3 → 0.0.11

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.
Files changed (23) hide show
  1. package/.medusa/server/src/admin/index.js +176 -1
  2. package/.medusa/server/src/admin/index.mjs +176 -1
  3. package/.medusa/server/src/api/admin/contact-email-subscriptions/route.js +29 -0
  4. package/.medusa/server/src/api/admin/contact-email-subscriptions/validators.js +12 -0
  5. package/.medusa/server/src/api/store/contact-email-subscriptions/route.js +19 -0
  6. package/.medusa/server/src/api/store/contact-email-subscriptions/validators.js +15 -0
  7. package/.medusa/server/src/constants.js +3 -2
  8. package/.medusa/server/src/helpers/__tests__/contact-subscription.test.js +109 -0
  9. package/.medusa/server/src/helpers/__tests__/submit-contact-request.test.js +33 -1
  10. package/.medusa/server/src/helpers/base-client.js +36 -0
  11. package/.medusa/server/src/helpers/contact-subscription.js +45 -0
  12. package/.medusa/server/src/helpers/index.js +5 -2
  13. package/.medusa/server/src/helpers/submit-contact-request.js +6 -35
  14. package/.medusa/server/src/index.js +7 -2
  15. package/.medusa/server/src/modules/contact-requests/migrations/Migration20241124090000.js +7 -2
  16. package/.medusa/server/src/modules/contact-requests/models/contact-request-comment.js +1 -2
  17. package/.medusa/server/src/modules/contact-requests/models/contact-request.js +1 -3
  18. package/.medusa/server/src/modules/contact-subscriptions/index.js +15 -0
  19. package/.medusa/server/src/modules/contact-subscriptions/migrations/Migration20241126103000.js +38 -0
  20. package/.medusa/server/src/modules/contact-subscriptions/models/contact-email-subscription.js +13 -0
  21. package/.medusa/server/src/modules/contact-subscriptions/service.js +57 -0
  22. package/README.md +107 -16
  23. package/package.json +1 -1
@@ -75,6 +75,38 @@ const buildPayload = () => ({
75
75
  method: "POST",
76
76
  }));
77
77
  });
78
+ (0, vitest_1.it)("applies publishable API key to fetch headers", async () => {
79
+ const mockFetch = vitest_1.vi.fn().mockResolvedValue({
80
+ ok: true,
81
+ json: () => Promise.resolve({
82
+ contact_request: { id: "req_4" },
83
+ }),
84
+ });
85
+ await (0, submit_contact_request_1.submitContactRequest)(buildPayload(), {
86
+ fetchImpl: mockFetch,
87
+ baseUrl: "https://demo.store",
88
+ publishableApiKey: "pk_test_header",
89
+ });
90
+ const [, init] = mockFetch.mock.calls[0];
91
+ (0, vitest_1.expect)(init?.headers).toMatchObject({
92
+ "x-publishable-api-key": "pk_test_header",
93
+ });
94
+ });
95
+ (0, vitest_1.it)("applies publishable API key when invoking client request", async () => {
96
+ const mockClient = {
97
+ request: vitest_1.vi.fn().mockResolvedValue({
98
+ contact_request: { id: "req_5" },
99
+ }),
100
+ };
101
+ await (0, submit_contact_request_1.submitContactRequest)(buildPayload(), {
102
+ client: mockClient,
103
+ publishableApiKey: "pk_client",
104
+ });
105
+ const [, init] = mockClient.request.mock.calls[0];
106
+ (0, vitest_1.expect)(init?.headers).toMatchObject({
107
+ "x-publishable-api-key": "pk_client",
108
+ });
109
+ });
78
110
  (0, vitest_1.it)("allows preconfigured helper via factory", async () => {
79
111
  const mockFetch = vitest_1.vi.fn().mockResolvedValue({
80
112
  ok: true,
@@ -90,4 +122,4 @@ const buildPayload = () => ({
90
122
  (0, vitest_1.expect)(result.contact_request.id).toBe("req_3");
91
123
  });
92
124
  });
93
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VibWl0LWNvbnRhY3QtcmVxdWVzdC50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2hlbHBlcnMvX190ZXN0c19fL3N1Ym1pdC1jb250YWN0LXJlcXVlc3QudGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLG1DQUFpRDtBQUNqRCxzRUFHa0M7QUFFbEMsTUFBTSxZQUFZLEdBQUcsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUMxQixLQUFLLEVBQUUsa0JBQWtCO0lBQ3pCLE9BQU8sRUFBRSxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUU7SUFDakMsUUFBUSxFQUFFLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRTtJQUMvQixNQUFNLEVBQUUsWUFBWTtDQUNyQixDQUFDLENBQUE7QUFFRixJQUFBLGlCQUFRLEVBQUMsNkJBQTZCLEVBQUUsR0FBRyxFQUFFO0lBQzNDLE1BQU0sVUFBVSxHQUFHO1FBQ2pCO1lBQ0UsSUFBSSxFQUFFLDBEQUEwRDtZQUNoRSxLQUFLLEVBQUUsR0FBRyxFQUFFO2dCQUNWLE1BQU0sU0FBUyxHQUFHLFdBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQztvQkFDMUMsRUFBRSxFQUFFLElBQUk7b0JBQ1IsSUFBSSxFQUFFLEdBQUcsRUFBRSxDQUNULE9BQU8sQ0FBQyxPQUFPLENBQUM7d0JBQ2QsZUFBZSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRTtxQkFDakMsQ0FBQztpQkFDTCxDQUFDLENBQUE7Z0JBQ0YsT0FBTztvQkFDTCxTQUFTLEVBQUUsU0FBUztvQkFDcEIsV0FBVyxFQUFFLDJDQUEyQztpQkFDekQsQ0FBQTtZQUNILENBQUM7U0FDRjtRQUNEO1lBQ0UsSUFBSSxFQUFFLGdDQUFnQztZQUN0QyxLQUFLLEVBQUUsR0FBRyxFQUFFO2dCQUNWLE1BQU0sU0FBUyxHQUFHLFdBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQztvQkFD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
125
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VibWl0LWNvbnRhY3QtcmVxdWVzdC50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2hlbHBlcnMvX190ZXN0c19fL3N1Ym1pdC1jb250YWN0LXJlcXVlc3QudGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLG1DQUFpRDtBQUNqRCxzRUFHa0M7QUFFbEMsTUFBTSxZQUFZLEdBQUcsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUMxQixLQUFLLEVBQUUsa0JBQWtCO0lBQ3pCLE9BQU8sRUFBRSxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUU7SUFDakMsUUFBUSxFQUFFLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRTtJQUMvQixNQUFNLEVBQUUsWUFBWTtDQUNyQixDQUFDLENBQUE7QUFFRixJQUFBLGlCQUFRLEVBQUMsNkJBQTZCLEVBQUUsR0FBRyxFQUFFO0lBQzNDLE1BQU0sVUFBVSxHQUFHO1FBQ2pCO1lBQ0UsSUFBSSxFQUFFLDBEQUEwRDtZQUNoRSxLQUFLLEVBQUUsR0FBRyxFQUFFO2dCQUNWLE1BQU0sU0FBUyxHQUFHLFdBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQztvQkFDMUMsRUFBRSxFQUFFLElBQUk7b0JBQ1IsSUFBSSxFQUFFLEdBQUcsRUFBRSxDQUNULE9BQU8sQ0FBQyxPQUFPLENBQUM7d0JBQ2QsZUFBZSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRTtxQkFDakMsQ0FBQztpQkFDTCxDQUFDLENBQUE7Z0JBQ0YsT0FBTztvQkFDTCxTQUFTLEVBQUUsU0FBUztvQkFDcEIsV0FBVyxFQUFFLDJDQUEyQztpQkFDekQsQ0FBQTtZQUNILENBQUM7U0FDRjtRQUNEO1lBQ0UsSUFBSSxFQUFFLGdDQUFnQztZQUN0QyxLQUFLLEVBQUUsR0FBRyxFQUFFO2dCQUNWLE1BQU0sU0FBUyxHQUFHLFdBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQztvQkFD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
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getClientRequest = exports.buildHeaders = exports.normalizeBaseUrl = void 0;
4
+ const normalizeBaseUrl = (baseUrl) => {
5
+ if (!baseUrl) {
6
+ return "";
7
+ }
8
+ return baseUrl.endsWith("/") ? baseUrl.slice(0, -1) : baseUrl;
9
+ };
10
+ exports.normalizeBaseUrl = normalizeBaseUrl;
11
+ const buildHeaders = (options) => {
12
+ const headers = {
13
+ "Content-Type": "application/json",
14
+ ...(options.headers ?? {}),
15
+ };
16
+ const hasPublishableHeader = Object.keys(headers).some((key) => key.toLowerCase() === "x-publishable-api-key");
17
+ if (options.publishableApiKey && !hasPublishableHeader) {
18
+ headers["x-publishable-api-key"] = options.publishableApiKey;
19
+ }
20
+ return headers;
21
+ };
22
+ exports.buildHeaders = buildHeaders;
23
+ const getClientRequest = (client) => {
24
+ if (!client) {
25
+ return undefined;
26
+ }
27
+ if ("request" in client && typeof client.request === "function") {
28
+ return client.request.bind(client);
29
+ }
30
+ if ("client" in client && typeof client.client?.request === "function") {
31
+ return client.client.request.bind(client.client);
32
+ }
33
+ return undefined;
34
+ };
35
+ exports.getClientRequest = getClientRequest;
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1jbGllbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvaGVscGVycy9iYXNlLWNsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFvQ08sTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLE9BQWdCLEVBQUUsRUFBRTtJQUNuRCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDYixPQUFPLEVBQUUsQ0FBQTtJQUNYLENBQUM7SUFDRCxPQUFPLE9BQU8sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQTtBQUMvRCxDQUFDLENBQUE7QUFMWSxRQUFBLGdCQUFnQixvQkFLNUI7QUFFTSxNQUFNLFlBQVksR0FBRyxDQUFDLE9BQStCLEVBQUUsRUFBRTtJQUM5RCxNQUFNLE9BQU8sR0FBMkI7UUFDdEMsY0FBYyxFQUFFLGtCQUFrQjtRQUNsQyxHQUFHLENBQUMsT0FBTyxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUM7S0FDM0IsQ0FBQTtJQUVELE1BQU0sb0JBQW9CLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQ3BELENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLEtBQUssdUJBQXVCLENBQ3ZELENBQUE7SUFFRCxJQUFJLE9BQU8sQ0FBQyxpQkFBaUIsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7UUFDdkQsT0FBTyxDQUFDLHVCQUF1QixDQUFDLEdBQUcsT0FBTyxDQUFDLGlCQUFpQixDQUFBO0lBQzlELENBQUM7SUFFRCxPQUFPLE9BQU8sQ0FBQTtBQUNoQixDQUFDLENBQUE7QUFmWSxRQUFBLFlBQVksZ0JBZXhCO0FBRU0sTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLE1BQXlCLEVBQUUsRUFBRTtJQUM1RCxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDWixPQUFPLFNBQVMsQ0FBQTtJQUNsQixDQUFDO0lBRUQsSUFBSSxTQUFTLElBQUksTUFBTSxJQUFJLE9BQU8sTUFBTSxDQUFDLE9BQU8sS0FBSyxVQUFVLEVBQUUsQ0FBQztRQUNoRSxPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBQ3BDLENBQUM7SUFFRCxJQUFJLFFBQVEsSUFBSSxNQUFNLElBQUksT0FBTyxNQUFNLENBQUMsTUFBTSxFQUFFLE9BQU8sS0FBSyxVQUFVLEVBQUUsQ0FBQztRQUN2RSxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUE7SUFDbEQsQ0FBQztJQUVELE9BQU8sU0FBUyxDQUFBO0FBQ2xCLENBQUMsQ0FBQTtBQWRZLFFBQUEsZ0JBQWdCLG9CQWM1QiJ9
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createUpsertContactSubscription = exports.upsertContactSubscription = void 0;
4
+ const base_client_1 = require("./base-client");
5
+ const SUBSCRIPTION_ENDPOINT = "/store/contact-email-subscriptions";
6
+ const resolveEndpoint = (endpoint) => endpoint?.startsWith("/") ? endpoint : SUBSCRIPTION_ENDPOINT;
7
+ const upsertContactSubscription = async (input, options = {}) => {
8
+ const endpoint = resolveEndpoint(input.endpoint);
9
+ const payload = {
10
+ email: input.email,
11
+ status: input.status ?? "subscribed",
12
+ metadata: input.metadata,
13
+ source: input.source,
14
+ };
15
+ const clientRequest = (0, base_client_1.getClientRequest)(options.client);
16
+ if (clientRequest) {
17
+ const headers = (0, base_client_1.buildHeaders)(options);
18
+ const raw = (await clientRequest(endpoint, {
19
+ method: "POST",
20
+ body: JSON.stringify(payload),
21
+ headers,
22
+ }));
23
+ return raw;
24
+ }
25
+ const fetchImpl = options.fetchImpl ?? globalThis.fetch;
26
+ if (!fetchImpl) {
27
+ throw new Error("No fetch implementation available. Provide `fetchImpl` or a Medusa client.");
28
+ }
29
+ const url = `${(0, base_client_1.normalizeBaseUrl)(options.baseUrl)}${endpoint}`;
30
+ const headers = (0, base_client_1.buildHeaders)(options);
31
+ const response = await fetchImpl(url || endpoint, {
32
+ method: "POST",
33
+ headers,
34
+ body: JSON.stringify(payload),
35
+ });
36
+ if (!response.ok) {
37
+ const body = await response.text();
38
+ throw new Error(body || `Failed to update subscription (status ${response.status})`);
39
+ }
40
+ return (await response.json());
41
+ };
42
+ exports.upsertContactSubscription = upsertContactSubscription;
43
+ const createUpsertContactSubscription = (options = {}) => (input) => (0, exports.upsertContactSubscription)(input, options);
44
+ exports.createUpsertContactSubscription = createUpsertContactSubscription;
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFjdC1zdWJzY3JpcHRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvaGVscGVycy9jb250YWN0LXN1YnNjcmlwdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSwrQ0FLc0I7QUFFdEIsTUFBTSxxQkFBcUIsR0FBRyxvQ0FBb0MsQ0FBQTtBQUVsRSxNQUFNLGVBQWUsR0FBRyxDQUFDLFFBQWlCLEVBQUUsRUFBRSxDQUM1QyxRQUFRLEVBQUUsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLHFCQUFxQixDQUFBO0FBYXZELE1BQU0seUJBQXlCLEdBQUcsS0FBSyxFQUM1QyxLQUFxQyxFQUNyQyxVQUE0QyxFQUFFLEVBQ0YsRUFBRTtJQUM5QyxNQUFNLFFBQVEsR0FBRyxlQUFlLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFBO0lBQ2hELE1BQU0sT0FBTyxHQUFHO1FBQ2QsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLO1FBQ2xCLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTSxJQUFJLFlBQVk7UUFDcEMsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRO1FBQ3hCLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTTtLQUNyQixDQUFBO0lBRUQsTUFBTSxhQUFhLEdBQUcsSUFBQSw4QkFBZ0IsRUFBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUE7SUFDdEQsSUFBSSxhQUFhLEVBQUUsQ0FBQztRQUNsQixNQUFNLE9BQU8sR0FBRyxJQUFBLDBCQUFZLEVBQUMsT0FBTyxDQUFDLENBQUE7UUFDckMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxNQUFNLGFBQWEsQ0FBQyxRQUFRLEVBQUU7WUFDekMsTUFBTSxFQUFFLE1BQU07WUFDZCxJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUM7WUFDN0IsT0FBTztTQUNSLENBQUMsQ0FBc0MsQ0FBQTtRQUV4QyxPQUFPLEdBQUcsQ0FBQTtJQUNaLENBQUM7SUFFRCxNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsU0FBUyxJQUFJLFVBQVUsQ0FBQyxLQUFLLENBQUE7SUFDdkQsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ2YsTUFBTSxJQUFJLEtBQUssQ0FDYiw0RUFBNEUsQ0FDN0UsQ0FBQTtJQUNILENBQUM7SUFFRCxNQUFNLEdBQUcsR0FBRyxHQUFHLElBQUEsOEJBQWdCLEVBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLFFBQVEsRUFBRSxDQUFBO0lBQzdELE1BQU0sT0FBTyxHQUFHLElBQUEsMEJBQVksRUFBQyxPQUFPLENBQUMsQ0FBQTtJQUVyQyxNQUFNLFFBQVEsR0FBRyxNQUFNLFNBQVMsQ0FBQyxHQUFHLElBQUksUUFBUSxFQUFFO1FBQ2hELE1BQU0sRUFBRSxNQUFNO1FBQ2QsT0FBTztRQUNQLElBQUksRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQztLQUM5QixDQUFDLENBQUE7SUFFRixJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ2pCLE1BQU0sSUFBSSxHQUFHLE1BQU0sUUFBUSxDQUFDLElBQUksRUFBRSxDQUFBO1FBQ2xDLE1BQU0sSUFBSSxLQUFLLENBQ2IsSUFBSSxJQUFJLHlDQUF5QyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQ3BFLENBQUE7SUFDSCxDQUFDO0lBRUQsT0FBTyxDQUFDLE1BQU0sUUFBUSxDQUFDLElBQUksRUFBRSxDQUFzQyxDQUFBO0FBQ3JFLENBQUMsQ0FBQTtBQWhEWSxRQUFBLHlCQUF5Qiw2QkFnRHJDO0FBRU0sTUFBTSwrQkFBK0IsR0FDMUMsQ0FBQyxVQUE0QyxFQUFFLEVBQUUsRUFBRSxDQUNuRCxDQUFDLEtBQXFDLEVBQUUsRUFBRSxDQUN4QyxJQUFBLGlDQUF5QixFQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQTtBQUhoQyxRQUFBLCtCQUErQixtQ0FHQyJ9
@@ -1,6 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.submitContactRequest = void 0;
3
+ exports.createUpsertContactSubscription = exports.upsertContactSubscription = exports.submitContactRequest = void 0;
4
4
  var submit_contact_request_1 = require("./submit-contact-request");
5
5
  Object.defineProperty(exports, "submitContactRequest", { enumerable: true, get: function () { return submit_contact_request_1.submitContactRequest; } });
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvaGVscGVycy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtRUFBK0Q7QUFBdEQsOEhBQUEsb0JBQW9CLE9BQUEifQ==
6
+ var contact_subscription_1 = require("./contact-subscription");
7
+ Object.defineProperty(exports, "upsertContactSubscription", { enumerable: true, get: function () { return contact_subscription_1.upsertContactSubscription; } });
8
+ Object.defineProperty(exports, "createUpsertContactSubscription", { enumerable: true, get: function () { return contact_subscription_1.createUpsertContactSubscription; } });
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvaGVscGVycy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtRUFBK0Q7QUFBdEQsOEhBQUEsb0JBQW9CLE9BQUE7QUFDN0IsK0RBRytCO0FBRjdCLGlJQUFBLHlCQUF5QixPQUFBO0FBQ3pCLHVJQUFBLCtCQUErQixPQUFBIn0=
@@ -1,26 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createSubmitContactRequest = exports.submitContactRequest = void 0;
4
+ const base_client_1 = require("./base-client");
4
5
  const CONTACT_ENDPOINT = "/store/contact-requests";
5
6
  const resolveEndpoint = (endpoint) => endpoint?.startsWith("/") ? endpoint : CONTACT_ENDPOINT;
6
- const normalizeBaseUrl = (baseUrl) => {
7
- if (!baseUrl) {
8
- return "";
9
- }
10
- return baseUrl.endsWith("/") ? baseUrl.slice(0, -1) : baseUrl;
11
- };
12
- const getClientRequest = (client) => {
13
- if (!client) {
14
- return undefined;
15
- }
16
- if ("request" in client && typeof client.request === "function") {
17
- return client.request.bind(client);
18
- }
19
- if ("client" in client && typeof client.client?.request === "function") {
20
- return client.client.request.bind(client.client);
21
- }
22
- return undefined;
23
- };
24
7
  const submitContactRequest = async (input, options = {}) => {
25
8
  const endpoint = resolveEndpoint(input.endpoint);
26
9
  const payload = {
@@ -29,15 +12,9 @@ const submitContactRequest = async (input, options = {}) => {
29
12
  metadata: input.metadata,
30
13
  source: input.source,
31
14
  };
32
- const clientRequest = getClientRequest(options.client);
15
+ const clientRequest = (0, base_client_1.getClientRequest)(options.client);
33
16
  if (clientRequest) {
34
- const headers = {
35
- "Content-Type": "application/json",
36
- ...(options.headers ?? {}),
37
- };
38
- if (options.publishableApiKey) {
39
- headers["x-publishable-api-key"] = options.publishableApiKey;
40
- }
17
+ const headers = (0, base_client_1.buildHeaders)(options);
41
18
  const raw = (await clientRequest(endpoint, {
42
19
  method: "POST",
43
20
  body: JSON.stringify(payload),
@@ -49,14 +26,8 @@ const submitContactRequest = async (input, options = {}) => {
49
26
  if (!fetchImpl) {
50
27
  throw new Error("No fetch implementation available. Provide `fetchImpl` or a Medusa client.");
51
28
  }
52
- const url = `${normalizeBaseUrl(options.baseUrl)}${endpoint}`;
53
- const headers = {
54
- "Content-Type": "application/json",
55
- ...(options.headers ?? {}),
56
- };
57
- if (options.publishableApiKey) {
58
- headers["x-publishable-api-key"] = options.publishableApiKey;
59
- }
29
+ const url = `${(0, base_client_1.normalizeBaseUrl)(options.baseUrl)}${endpoint}`;
30
+ const headers = (0, base_client_1.buildHeaders)(options);
60
31
  const response = await fetchImpl(url || endpoint, {
61
32
  method: "POST",
62
33
  headers,
@@ -71,4 +42,4 @@ const submitContactRequest = async (input, options = {}) => {
71
42
  exports.submitContactRequest = submitContactRequest;
72
43
  const createSubmitContactRequest = (options = {}) => (input) => (0, exports.submitContactRequest)(input, options);
73
44
  exports.createSubmitContactRequest = createSubmitContactRequest;
74
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VibWl0LWNvbnRhY3QtcmVxdWVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9oZWxwZXJzL3N1Ym1pdC1jb250YWN0LXJlcXVlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBR0EsTUFBTSxnQkFBZ0IsR0FBRyx5QkFBeUIsQ0FBQTtBQThDbEQsTUFBTSxlQUFlLEdBQUcsQ0FBQyxRQUFpQixFQUFFLEVBQUUsQ0FDNUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQTtBQUV6RCxNQUFNLGdCQUFnQixHQUFHLENBQUMsT0FBZ0IsRUFBRSxFQUFFO0lBQzVDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNiLE9BQU8sRUFBRSxDQUFBO0lBQ1gsQ0FBQztJQUNELE9BQU8sT0FBTyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFBO0FBQy9ELENBQUMsQ0FBQTtBQUVELE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxNQUF5QixFQUFFLEVBQUU7SUFDckQsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1osT0FBTyxTQUFTLENBQUE7SUFDbEIsQ0FBQztJQUVELElBQUksU0FBUyxJQUFJLE1BQU0sSUFBSSxPQUFPLE1BQU0sQ0FBQyxPQUFPLEtBQUssVUFBVSxFQUFFLENBQUM7UUFDaEUsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUNwQyxDQUFDO0lBRUQsSUFBSSxRQUFRLElBQUksTUFBTSxJQUFJLE9BQU8sTUFBTSxDQUFDLE1BQU0sRUFBRSxPQUFPLEtBQUssVUFBVSxFQUFFLENBQUM7UUFDdkUsT0FBTyxNQUFNLENB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
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VibWl0LWNvbnRhY3QtcmVxdWVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9oZWxwZXJzL3N1Ym1pdC1jb250YWN0LXJlcXVlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEsK0NBS3NCO0FBRXRCLE1BQU0sZ0JBQWdCLEdBQUcseUJBQXlCLENBQUE7QUFZbEQsTUFBTSxlQUFlLEdBQUcsQ0FBQyxRQUFpQixFQUFFLEVBQUUsQ0FDNUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQTtBQUVsRCxNQUFNLG9CQUFvQixHQUFHLEtBQUssRUFDdkMsS0FBZ0MsRUFDaEMsVUFBdUMsRUFBRSxFQUNGLEVBQUU7SUFDekMsTUFBTSxRQUFRLEdBQUcsZUFBZSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQTtJQUNoRCxNQUFNLE9BQU8sR0FBRztRQUNkLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSztRQUNsQixPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU8sSUFBSSxFQUFFO1FBQzVCLFFBQVEsRUFBRSxLQUFLLENBQUMsUUFBUTtRQUN4QixNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU07S0FDckIsQ0FBQTtJQUVELE1BQU0sYUFBYSxHQUFHLElBQUEsOEJBQWdCLEVBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBQ3RELElBQUksYUFBYSxFQUFFLENBQUM7UUFDbEIsTUFBTSxPQUFPLEdBQUcsSUFBQSwwQkFBWSxFQUFDLE9BQU8sQ0FBQyxDQUFBO1FBQ3JDLE1BQU0sR0FBRyxHQUFHLENBQUMsTUFBTSxhQUFhLENBQUMsUUFBUSxFQUFFO1lBQ3pDLE1BQU0sRUFBRSxNQUFNO1lBQ2QsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDO1lBQzdCLE9BQU87U0FDUixDQUFDLENBQWlDLENBQUE7UUFFbkMsT0FBTyxHQUFHLENBQUE7SUFDWixDQUFDO0lBRUQsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLFNBQVMsSUFBSSxVQUFVLENBQUMsS0FBSyxDQUFBO0lBQ3ZELElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNmLE1BQU0sSUFBSSxLQUFLLENBQ2IsNEVBQTRFLENBQzdFLENBQUE7SUFDSCxDQUFDO0lBRUQsTUFBTSxHQUFHLEdBQUcsR0FBRyxJQUFBLDhCQUFnQixFQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxRQUFRLEVBQUUsQ0FBQTtJQUM3RCxNQUFNLE9BQU8sR0FBRyxJQUFBLDBCQUFZLEVBQUMsT0FBTyxDQUFDLENBQUE7SUFFckMsTUFBTSxRQUFRLEdBQUcsTUFBTSxTQUFTLENBQUMsR0FBRyxJQUFJLFFBQVEsRUFBRTtRQUNoRCxNQUFNLEVBQUUsTUFBTTtRQUNkLE9BQU87UUFDUCxJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUM7S0FDOUIsQ0FBQyxDQUFBO0lBRUYsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUNqQixNQUFNLElBQUksR0FBRyxNQUFNLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQTtRQUNsQyxNQUFNLElBQUksS0FBSyxDQUNiLElBQUksSUFBSSw0Q0FBNEMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUN2RSxDQUFBO0lBQ0gsQ0FBQztJQUVELE9BQU8sQ0FBQyxNQUFNLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBaUMsQ0FBQTtBQUNoRSxDQUFDLENBQUE7QUFoRFksUUFBQSxvQkFBb0Isd0JBZ0RoQztBQUVNLE1BQU0sMEJBQTBCLEdBQ3JDLENBQUMsVUFBdUMsRUFBRSxFQUFFLEVBQUUsQ0FDOUMsQ0FBQyxLQUFnQyxFQUFFLEVBQUUsQ0FDbkMsSUFBQSw0QkFBb0IsRUFBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUE7QUFIM0IsUUFBQSwwQkFBMEIsOEJBR0MifQ==
@@ -17,9 +17,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
17
17
  return (mod && mod.__esModule) ? mod : { "default": mod };
18
18
  };
19
19
  Object.defineProperty(exports, "__esModule", { value: true });
20
- exports.ContactRequestModuleService = exports.ContactRequestModule = void 0;
20
+ exports.ContactSubscriptionModuleService = exports.ContactSubscriptionModule = exports.ContactRequestModuleService = exports.ContactRequestModule = void 0;
21
21
  __exportStar(require("./constants"), exports);
22
22
  __exportStar(require("./helpers/submit-contact-request"), exports);
23
+ __exportStar(require("./helpers/contact-subscription"), exports);
23
24
  __exportStar(require("./plugin-options"), exports);
24
25
  __exportStar(require("./types"), exports);
25
26
  __exportStar(require("./workflows"), exports);
@@ -27,4 +28,8 @@ var contact_requests_1 = require("./modules/contact-requests");
27
28
  Object.defineProperty(exports, "ContactRequestModule", { enumerable: true, get: function () { return __importDefault(contact_requests_1).default; } });
28
29
  var contact_requests_2 = require("./modules/contact-requests");
29
30
  Object.defineProperty(exports, "ContactRequestModuleService", { enumerable: true, get: function () { return contact_requests_2.ContactRequestModuleService; } });
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSw4Q0FBMkI7QUFDM0IsbUVBQWdEO0FBQ2hELG1EQUFnQztBQUNoQywwQ0FBdUI7QUFDdkIsOENBQTJCO0FBQzNCLCtEQUE0RTtBQUFuRSx5SUFBQSxPQUFPLE9BQXdCO0FBQ3hDLCtEQUF3RTtBQUEvRCwrSEFBQSwyQkFBMkIsT0FBQSJ9
31
+ var contact_subscriptions_1 = require("./modules/contact-subscriptions");
32
+ Object.defineProperty(exports, "ContactSubscriptionModule", { enumerable: true, get: function () { return __importDefault(contact_subscriptions_1).default; } });
33
+ var contact_subscriptions_2 = require("./modules/contact-subscriptions");
34
+ Object.defineProperty(exports, "ContactSubscriptionModuleService", { enumerable: true, get: function () { return contact_subscriptions_2.ContactSubscriptionModuleService; } });
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSw4Q0FBMkI7QUFDM0IsbUVBQWdEO0FBQ2hELGlFQUE4QztBQUM5QyxtREFBZ0M7QUFDaEMsMENBQXVCO0FBQ3ZCLDhDQUEyQjtBQUMzQiwrREFBNEU7QUFBbkUseUlBQUEsT0FBTyxPQUF3QjtBQUN4QywrREFBd0U7QUFBL0QsK0hBQUEsMkJBQTJCLE9BQUE7QUFDcEMseUVBRXdDO0FBRHRDLG1KQUFBLE9BQU8sT0FBNkI7QUFFdEMseUVBQWtGO0FBQXpFLHlJQUFBLGdDQUFnQyxPQUFBIn0=
@@ -14,7 +14,8 @@ class Migration20241124090000 extends migrations_1.Migration {
14
14
  "metadata" jsonb NULL,
15
15
  "source" text NULL,
16
16
  "created_at" timestamptz NOT NULL DEFAULT now(),
17
- "updated_at" timestamptz NOT NULL DEFAULT now()
17
+ "updated_at" timestamptz NOT NULL DEFAULT now(),
18
+ "deleted_at" timestamptz NULL
18
19
  );
19
20
  `);
20
21
  this.addSql(`
@@ -35,6 +36,10 @@ class Migration20241124090000 extends migrations_1.Migration {
35
36
  this.addSql(`
36
37
  CREATE INDEX IF NOT EXISTS "IDX_contact_request_comment_request_id"
37
38
  ON "contact_request_comment" ("contact_request_id");
39
+ `);
40
+ this.addSql(`
41
+ CREATE INDEX IF NOT EXISTS "IDX_contact_request_deleted_at"
42
+ ON "contact_request" ("deleted_at");
38
43
  `);
39
44
  }
40
45
  async down() {
@@ -43,4 +48,4 @@ class Migration20241124090000 extends migrations_1.Migration {
43
48
  }
44
49
  }
45
50
  exports.Migration20241124090000 = Migration20241124090000;
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWlncmF0aW9uMjAyNDExMjQwOTAwMDAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9jb250YWN0LXJlcXVlc3RzL21pZ3JhdGlvbnMvTWlncmF0aW9uMjAyNDExMjQwOTAwMDAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsc0RBQWlEO0FBRWpELE1BQWEsdUJBQXdCLFNBQVEsc0JBQVM7SUFDcEQsS0FBSyxDQUFDLEVBQUU7UUFDTixJQUFJLENBQUMsTUFBTSxDQUFDOzs7Ozs7Ozs7Ozs7S0FZWCxDQUFDLENBQUE7UUFFRixJQUFJLENBQUMsTUFBTSxDQUFDOztLQUVYLENBQUMsQ0FBQTtRQUVGLElBQUksQ0FBQyxNQUFNLENBQUM7O0tBRVgsQ0FBQyxDQUFBO1FBRUYsSUFBSSxDQUFDLE1BQU0sQ0FBQzs7Ozs7Ozs7S0FRWCxDQUFDLENBQUE7UUFFRixJQUFJLENBQUMsTUFBTSxDQUFDOzs7S0FHWCxDQUFDLENBQUE7SUFDSixDQUFDO0lBRUQsS0FBSyxDQUFDLElBQUk7UUFDUixJQUFJLENBQUMsTUFBTSxDQUFDLGlEQUFpRCxDQUFDLENBQUE7UUFDOUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyx5Q0FBeUMsQ0FBQyxDQUFBO0lBQ3hELENBQUM7Q0FDRjtBQTVDRCwwREE0Q0MifQ==
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWlncmF0aW9uMjAyNDExMjQwOTAwMDAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9jb250YWN0LXJlcXVlc3RzL21pZ3JhdGlvbnMvTWlncmF0aW9uMjAyNDExMjQwOTAwMDAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsc0RBQWlEO0FBRWpELE1BQWEsdUJBQXdCLFNBQVEsc0JBQVM7SUFDcEQsS0FBSyxDQUFDLEVBQUU7UUFDTixJQUFJLENBQUMsTUFBTSxDQUFDOzs7Ozs7Ozs7Ozs7O0tBYVgsQ0FBQyxDQUFBO1FBRUYsSUFBSSxDQUFDLE1BQU0sQ0FBQzs7S0FFWCxDQUFDLENBQUE7UUFFRixJQUFJLENBQUMsTUFBTSxDQUFDOztLQUVYLENBQUMsQ0FBQTtRQUVGLElBQUksQ0FBQyxNQUFNLENBQUM7Ozs7Ozs7O0tBUVgsQ0FBQyxDQUFBO1FBRUYsSUFBSSxDQUFDLE1BQU0sQ0FBQzs7O0tBR1gsQ0FBQyxDQUFBO1FBRUYsSUFBSSxDQUFDLE1BQU0sQ0FBQzs7O0tBR1gsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVELEtBQUssQ0FBQyxJQUFJO1FBQ1IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxpREFBaUQsQ0FBQyxDQUFBO1FBQzlELElBQUksQ0FBQyxNQUFNLENBQUMseUNBQXlDLENBQUMsQ0FBQTtJQUN4RCxDQUFDO0NBQ0Y7QUFsREQsMERBa0RDIn0=
@@ -7,6 +7,5 @@ exports.ContactRequestComment = utils_1.model.define("contact_request_comment",
7
7
  contact_request_id: utils_1.model.text().searchable(),
8
8
  actor_id: utils_1.model.text().nullable(),
9
9
  comment: utils_1.model.text(),
10
- created_at: utils_1.model.dateTime(),
11
10
  });
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFjdC1yZXF1ZXN0LWNvbW1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9jb250YWN0LXJlcXVlc3RzL21vZGVscy9jb250YWN0LXJlcXVlc3QtY29tbWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxREFBaUQ7QUFFcEMsUUFBQSxxQkFBcUIsR0FBRyxhQUFLLENBQUMsTUFBTSxDQUFDLHlCQUF5QixFQUFFO0lBQzNFLEVBQUUsRUFBRSxhQUFLLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBVSxFQUFFO0lBQzNCLGtCQUFrQixFQUFFLGFBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxVQUFVLEVBQUU7SUFDN0MsUUFBUSxFQUFFLGFBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDakMsT0FBTyxFQUFFLGFBQUssQ0FBQyxJQUFJLEVBQUU7SUFDckIsVUFBVSxFQUFFLGFBQUssQ0FBQyxRQUFRLEVBQUU7Q0FDN0IsQ0FBQyxDQUFBIn0=
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFjdC1yZXF1ZXN0LWNvbW1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9jb250YWN0LXJlcXVlc3RzL21vZGVscy9jb250YWN0LXJlcXVlc3QtY29tbWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxREFBaUQ7QUFFcEMsUUFBQSxxQkFBcUIsR0FBRyxhQUFLLENBQUMsTUFBTSxDQUFDLHlCQUF5QixFQUFFO0lBQzNFLEVBQUUsRUFBRSxhQUFLLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBVSxFQUFFO0lBQzNCLGtCQUFrQixFQUFFLGFBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxVQUFVLEVBQUU7SUFDN0MsUUFBUSxFQUFFLGFBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDakMsT0FBTyxFQUFFLGFBQUssQ0FBQyxJQUFJLEVBQUU7Q0FDdEIsQ0FBQyxDQUFBIn0=
@@ -10,7 +10,5 @@ exports.ContactRequest = utils_1.model.define("contact_request", {
10
10
  status_history: utils_1.model.json(),
11
11
  metadata: utils_1.model.json().nullable(),
12
12
  source: utils_1.model.text().nullable(),
13
- created_at: utils_1.model.dateTime(),
14
- updated_at: utils_1.model.dateTime(),
15
13
  });
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFjdC1yZXF1ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL21vZHVsZXMvY29udGFjdC1yZXF1ZXN0cy9tb2RlbHMvY29udGFjdC1yZXF1ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFEQUFpRDtBQUVwQyxRQUFBLGNBQWMsR0FBRyxhQUFLLENBQUMsTUFBTSxDQUFDLGlCQUFpQixFQUFFO0lBQzVELEVBQUUsRUFBRSxhQUFLLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBVSxFQUFFO0lBQzNCLEtBQUssRUFBRSxhQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsVUFBVSxFQUFFO0lBQ2hDLE9BQU8sRUFBRSxhQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztJQUNqQyxNQUFNLEVBQUUsYUFBSyxDQUFDLElBQUksRUFBRSxDQUFDLFVBQVUsRUFBRTtJQUNqQyxjQUFjLEVBQUUsYUFBSyxDQUFDLElBQUksRUFBRTtJQUM1QixRQUFRLEVBQUUsYUFBSyxDQUFDLElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUNqQyxNQUFNLEVBQUUsYUFBSyxDQUFDLElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUMvQixVQUFVLEVBQUUsYUFBSyxDQUFDLFFBQVEsRUFBRTtJQUM1QixVQUFVLEVBQUUsYUFBSyxDQUFDLFFBQVEsRUFBRTtDQUM3QixDQUFDLENBQUEifQ==
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFjdC1yZXF1ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL21vZHVsZXMvY29udGFjdC1yZXF1ZXN0cy9tb2RlbHMvY29udGFjdC1yZXF1ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFEQUFpRDtBQUVwQyxRQUFBLGNBQWMsR0FBRyxhQUFLLENBQUMsTUFBTSxDQUFDLGlCQUFpQixFQUFFO0lBQzVELEVBQUUsRUFBRSxhQUFLLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBVSxFQUFFO0lBQzNCLEtBQUssRUFBRSxhQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsVUFBVSxFQUFFO0lBQ2hDLE9BQU8sRUFBRSxhQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztJQUNqQyxNQUFNLEVBQUUsYUFBSyxDQUFDLElBQUksRUFBRSxDQUFDLFVBQVUsRUFBRTtJQUNqQyxjQUFjLEVBQUUsYUFBSyxDQUFDLElBQUksRUFBRTtJQUM1QixRQUFRLEVBQUUsYUFBSyxDQUFDLElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUNqQyxNQUFNLEVBQUUsYUFBSyxDQUFDLElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRTtDQUNoQyxDQUFDLENBQUEifQ==
@@ -0,0 +1,15 @@
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.CONTACT_SUBSCRIPTION_MODULE = exports.ContactSubscriptionModuleService = void 0;
7
+ const utils_1 = require("@medusajs/framework/utils");
8
+ const constants_1 = require("../../constants");
9
+ Object.defineProperty(exports, "CONTACT_SUBSCRIPTION_MODULE", { enumerable: true, get: function () { return constants_1.CONTACT_SUBSCRIPTION_MODULE; } });
10
+ const service_1 = __importDefault(require("./service"));
11
+ exports.ContactSubscriptionModuleService = service_1.default;
12
+ exports.default = (0, utils_1.Module)(constants_1.CONTACT_SUBSCRIPTION_MODULE, {
13
+ service: service_1.default,
14
+ });
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9jb250YWN0LXN1YnNjcmlwdGlvbnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEscURBQWtEO0FBQ2xELCtDQUE2RDtBQVFwRCw0R0FSQSx1Q0FBMkIsT0FRQTtBQVBwQyx3REFBd0Q7QUFNL0MsMkNBTkYsaUJBQWdDLENBTUU7QUFKekMsa0JBQWUsSUFBQSxjQUFNLEVBQUMsdUNBQTJCLEVBQUU7SUFDakQsT0FBTyxFQUFFLGlCQUFnQztDQUMxQyxDQUFDLENBQUEifQ==
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Migration20241126103000 = void 0;
4
+ const migrations_1 = require("@mikro-orm/migrations");
5
+ class Migration20241126103000 extends migrations_1.Migration {
6
+ async up() {
7
+ this.addSql(`
8
+ CREATE TABLE IF NOT EXISTS "contact_email_subscription" (
9
+ "id" text PRIMARY KEY,
10
+ "email" text NOT NULL,
11
+ "status" text NOT NULL DEFAULT 'subscribed',
12
+ "metadata" jsonb NULL,
13
+ "source" text NULL,
14
+ "unsubscribed_at" timestamptz NULL,
15
+ "created_at" timestamptz NOT NULL DEFAULT now(),
16
+ "updated_at" timestamptz NOT NULL DEFAULT now(),
17
+ "deleted_at" timestamptz NULL
18
+ );
19
+ `);
20
+ this.addSql(`
21
+ CREATE UNIQUE INDEX IF NOT EXISTS "IDX_contact_email_subscription_email"
22
+ ON "contact_email_subscription" ("email");
23
+ `);
24
+ this.addSql(`
25
+ CREATE INDEX IF NOT EXISTS "IDX_contact_email_subscription_status"
26
+ ON "contact_email_subscription" ("status");
27
+ `);
28
+ this.addSql(`
29
+ CREATE INDEX IF NOT EXISTS "IDX_contact_email_subscription_deleted_at"
30
+ ON "contact_email_subscription" ("deleted_at");
31
+ `);
32
+ }
33
+ async down() {
34
+ this.addSql(`DROP TABLE IF EXISTS "contact_email_subscription";`);
35
+ }
36
+ }
37
+ exports.Migration20241126103000 = Migration20241126103000;
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWlncmF0aW9uMjAyNDExMjYxMDMwMDAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9jb250YWN0LXN1YnNjcmlwdGlvbnMvbWlncmF0aW9ucy9NaWdyYXRpb24yMDI0MTEyNjEwMzAwMC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxzREFBaUQ7QUFFakQsTUFBYSx1QkFBd0IsU0FBUSxzQkFBUztJQUNwRCxLQUFLLENBQUMsRUFBRTtRQUNOLElBQUksQ0FBQyxNQUFNLENBQUM7Ozs7Ozs7Ozs7OztLQVlYLENBQUMsQ0FBQTtRQUVGLElBQUksQ0FBQyxNQUFNLENBQUM7OztLQUdYLENBQUMsQ0FBQTtRQUVGLElBQUksQ0FBQyxNQUFNLENBQUM7OztLQUdYLENBQUMsQ0FBQTtRQUVGLElBQUksQ0FBQyxNQUFNLENBQUM7OztLQUdYLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRCxLQUFLLENBQUMsSUFBSTtRQUNSLElBQUksQ0FBQyxNQUFNLENBQUMsb0RBQW9ELENBQUMsQ0FBQTtJQUNuRSxDQUFDO0NBQ0Y7QUFuQ0QsMERBbUNDIn0=
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ContactEmailSubscription = void 0;
4
+ const utils_1 = require("@medusajs/framework/utils");
5
+ exports.ContactEmailSubscription = utils_1.model.define("contact_email_subscription", {
6
+ id: utils_1.model.id().primaryKey(),
7
+ email: utils_1.model.text().searchable(),
8
+ status: utils_1.model.text().default("subscribed").searchable(),
9
+ metadata: utils_1.model.json().nullable(),
10
+ source: utils_1.model.text().nullable(),
11
+ unsubscribed_at: utils_1.model.dateTime().nullable(),
12
+ });
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFjdC1lbWFpbC1zdWJzY3JpcHRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9jb250YWN0LXN1YnNjcmlwdGlvbnMvbW9kZWxzL2NvbnRhY3QtZW1haWwtc3Vic2NyaXB0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFEQUFpRDtBQUVwQyxRQUFBLHdCQUF3QixHQUFHLGFBQUssQ0FBQyxNQUFNLENBQ2xELDRCQUE0QixFQUM1QjtJQUNFLEVBQUUsRUFBRSxhQUFLLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBVSxFQUFFO0lBQzNCLEtBQUssRUFBRSxhQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsVUFBVSxFQUFFO0lBQ2hDLE1BQU0sRUFBRSxhQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDLFVBQVUsRUFBRTtJQUN2RCxRQUFRLEVBQUUsYUFBSyxDQUFDLElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUNqQyxNQUFNLEVBQUUsYUFBSyxDQUFDLElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUMvQixlQUFlLEVBQUUsYUFBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsRUFBRTtDQUM3QyxDQUNGLENBQUEifQ==
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const utils_1 = require("@medusajs/framework/utils");
4
+ const constants_1 = require("../../constants");
5
+ const contact_email_subscription_1 = require("./models/contact-email-subscription");
6
+ class ContactSubscriptionModuleService extends (0, utils_1.MedusaService)({
7
+ ContactEmailSubscription: contact_email_subscription_1.ContactEmailSubscription,
8
+ }) {
9
+ get moduleKey() {
10
+ return constants_1.CONTACT_SUBSCRIPTION_MODULE;
11
+ }
12
+ normalizeSubscription(raw) {
13
+ return {
14
+ id: raw.id,
15
+ email: raw.email,
16
+ status: raw.status,
17
+ metadata: raw.metadata ?? undefined,
18
+ source: raw.source ?? undefined,
19
+ unsubscribed_at: raw.unsubscribed_at
20
+ ? new Date(raw.unsubscribed_at)
21
+ : null,
22
+ created_at: new Date(raw.created_at ?? new Date()),
23
+ updated_at: new Date(raw.updated_at ?? new Date()),
24
+ };
25
+ }
26
+ async upsertSubscription(input) {
27
+ const email = input.email.trim().toLowerCase();
28
+ const status = input.status ?? "subscribed";
29
+ const [existing] = await this.listContactEmailSubscriptions({ email }, { take: 1 });
30
+ const baseData = {
31
+ email,
32
+ status,
33
+ metadata: input.metadata ?? existing?.metadata ?? {},
34
+ source: input.source ?? existing?.source ?? "storefront",
35
+ unsubscribed_at: status === "unsubscribed" ? new Date() : null,
36
+ };
37
+ if (!existing) {
38
+ const created = await this.createContactEmailSubscriptions(baseData);
39
+ return this.normalizeSubscription(created);
40
+ }
41
+ await this.updateContactEmailSubscriptions({
42
+ selector: { id: existing.id },
43
+ data: baseData,
44
+ });
45
+ const latest = await this.retrieveContactEmailSubscription(existing.id);
46
+ return this.normalizeSubscription(latest);
47
+ }
48
+ async listWithFilters(selector, config) {
49
+ const [subscriptions, count] = await this.listAndCountContactEmailSubscriptions(selector, config);
50
+ return [
51
+ subscriptions.map((subscription) => this.normalizeSubscription(subscription)),
52
+ count,
53
+ ];
54
+ }
55
+ }
56
+ exports.default = ContactSubscriptionModuleService;
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9tb2R1bGVzL2NvbnRhY3Qtc3Vic2NyaXB0aW9ucy9zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEscURBQXlEO0FBQ3pELCtDQUE2RDtBQU03RCxvRkFBOEU7QUFFOUUsTUFBcUIsZ0NBQWlDLFNBQVEsSUFBQSxxQkFBYSxFQUFDO0lBQzFFLHdCQUF3QixFQUF4QixxREFBd0I7Q0FDekIsQ0FBQztJQUNBLElBQUksU0FBUztRQUNYLE9BQU8sdUNBQTJCLENBQUE7SUFDcEMsQ0FBQztJQUVTLHFCQUFxQixDQUFDLEdBQVE7UUFDdEMsT0FBTztZQUNMLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRTtZQUNWLEtBQUssRUFBRSxHQUFHLENBQUMsS0FBSztZQUNoQixNQUFNLEVBQUUsR0FBRyxDQUFDLE1BQXdDO1lBQ3BELFFBQVEsRUFBRSxHQUFHLENBQUMsUUFBUSxJQUFJLFNBQVM7WUFDbkMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxNQUFNLElBQUksU0FBUztZQUMvQixlQUFlLEVBQUUsR0FBRyxDQUFDLGVBQWU7Z0JBQ2xDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDO2dCQUMvQixDQUFDLENBQUMsSUFBSTtZQUNSLFVBQVUsRUFBRSxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxJQUFJLElBQUksSUFBSSxFQUFFLENBQUM7WUFDbEQsVUFBVSxFQUFFLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLElBQUksSUFBSSxJQUFJLEVBQUUsQ0FBQztTQUNuRCxDQUFBO0lBQ0gsQ0FBQztJQUVELEtBQUssQ0FBQyxrQkFBa0IsQ0FDdEIsS0FBMEM7UUFFMUMsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQTtRQUM5QyxNQUFNLE1BQU0sR0FDVixLQUFLLENBQUMsTUFBTSxJQUFJLFlBQVksQ0FBQTtRQUU5QixNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsTUFBTSxJQUFJLENBQUMsNkJBQTZCLENBQ3pELEVBQUUsS0FBSyxFQUFFLEVBQ1QsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQ1osQ0FBQTtRQUVELE1BQU0sUUFBUSxHQUFHO1lBQ2YsS0FBSztZQUNMLE1BQU07WUFDTixRQUFRLEVBQUUsS0FBSyxDQUFDLFFBQVEsSUFBSSxRQUFRLEVBQUUsUUFBUSxJQUFJLEVBQUU7WUFDcEQsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNLElBQUksUUFBUSxFQUFFLE1BQU0sSUFBSSxZQUFZO1lBQ3hELGVBQWUsRUFBRSxNQUFNLEtBQUssY0FBYyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJO1NBQy9ELENBQUE7UUFFRCxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDZCxNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQywrQkFBK0IsQ0FBQyxRQUFRLENBQUMsQ0FBQTtZQUNwRSxPQUFPLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsQ0FBQTtRQUM1QyxDQUFDO1FBRUQsTUFBTSxJQUFJLENBQUMsK0JBQStCLENBQUM7WUFDekMsUUFBUSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUU7WUFDN0IsSUFBSSxFQUFFLFFBQVE7U0FDZixDQUFDLENBQUE7UUFFRixNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxnQ0FBZ0MsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUE7UUFDdkUsT0FBTyxJQUFJLENBQUMscUJBQXFCLENBQUMsTUFBTSxDQUFDLENBQUE7SUFDM0MsQ0FBQztJQUVELEtBQUssQ0FBQyxlQUFlLENBQ25CLFFBQWlDLEVBQ2pDLE1BQWdDO1FBRWhDLE1BQU0sQ0FBQyxhQUFhLEVBQUUsS0FBSyxDQUFDLEdBQUcsTUFBTSxJQUFJLENBQUMscUNBQXFDLENBQzdFLFFBQVEsRUFDUixNQUFNLENBQ1AsQ0FBQTtRQUVELE9BQU87WUFDTCxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FDakMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFlBQVksQ0FBQyxDQUN6QztZQUNELEtBQUs7U0FDcUMsQ0FBQTtJQUM5QyxDQUFDO0NBQ0Y7QUF4RUQsbURBd0VDIn0=