customer-registration 0.0.132 → 0.0.133

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,71 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.findAuthIdentityIdByCustomerId = findAuthIdentityIdByCustomerId;
4
+ exports.ensureProviderIdentity = ensureProviderIdentity;
5
+ exports.resolveCrossChannelOtpAuthIdentity = resolveCrossChannelOtpAuthIdentity;
6
+ const utils_1 = require("@medusajs/framework/utils");
7
+ const config_1 = require("../../../../../config");
8
+ function firstKnexRow(result) {
9
+ const fromRows = result.rows?.[0];
10
+ if (fromRows && typeof fromRows === "object" && !Array.isArray(fromRows)) {
11
+ return fromRows;
12
+ }
13
+ const batch = result[0];
14
+ if (Array.isArray(batch)) {
15
+ const first = batch[0];
16
+ if (first && typeof first === "object" && !Array.isArray(first)) {
17
+ return first;
18
+ }
19
+ }
20
+ return undefined;
21
+ }
22
+ async function findAuthIdentityIdByCustomerId(scope, customerId) {
23
+ const knex = scope.resolve(utils_1.ContainerRegistrationKeys.PG_CONNECTION);
24
+ const result = await knex.raw(`SELECT id FROM auth_identity WHERE app_metadata->>'customer_id' = ? LIMIT 1`, [customerId]);
25
+ const row = firstKnexRow(result);
26
+ return row?.id ?? null;
27
+ }
28
+ async function ensureProviderIdentity(scope, input) {
29
+ const knex = scope.resolve(utils_1.ContainerRegistrationKeys.PG_CONNECTION);
30
+ const authService = scope.resolve(utils_1.Modules.AUTH);
31
+ const existing = await knex.raw(`SELECT pi.id FROM provider_identity pi
32
+ WHERE pi.auth_identity_id = ? AND pi.provider = ? LIMIT 1`, [input.authIdentityId, input.provider]);
33
+ if (firstKnexRow(existing)?.id) {
34
+ return;
35
+ }
36
+ await authService.createProviderIdentities({
37
+ auth_identity_id: input.authIdentityId,
38
+ provider: input.provider,
39
+ entity_id: input.entityId,
40
+ provider_metadata: input.providerMetadata ?? {},
41
+ });
42
+ }
43
+ function loginAllowsOtpProvider(loginIdentifier, provider) {
44
+ if (provider === "phoneotp") {
45
+ return loginIdentifier === "phone" || loginIdentifier === "both";
46
+ }
47
+ return loginIdentifier === "email" || loginIdentifier === "both";
48
+ }
49
+ /**
50
+ * When an existing customer has no OTP provider for the login channel, attach
51
+ * phoneotp/emailotp to their existing auth identity (from password registration).
52
+ */
53
+ async function resolveCrossChannelOtpAuthIdentity(scope, params) {
54
+ const configModule = scope.resolve(utils_1.ContainerRegistrationKeys.CONFIG_MODULE);
55
+ const options = (0, config_1.resolveCustomerRegistrationOptions)(configModule);
56
+ if (!loginAllowsOtpProvider(options.login.identifier, params.provider)) {
57
+ return null;
58
+ }
59
+ const existingAuthId = await findAuthIdentityIdByCustomerId(scope, params.customerId);
60
+ if (!existingAuthId) {
61
+ return null;
62
+ }
63
+ await ensureProviderIdentity(scope, {
64
+ authIdentityId: existingAuthId,
65
+ provider: params.provider,
66
+ entityId: params.entityId,
67
+ providerMetadata: {},
68
+ });
69
+ return existingAuthId;
70
+ }
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC1pZGVudGl0eS1oZWxwZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwaS9zdG9yZS9jdXN0b21lcnMvb3RwL3NoYXJlZC9hdXRoLWlkZW50aXR5LWhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUEyQkEsd0VBa0JDO0FBU0Qsd0RBbUNDO0FBa0JELGdGQWlDQztBQTNJRCxxREFHa0M7QUFDbEMsa0RBRzhCO0FBRTlCLFNBQVMsWUFBWSxDQUNuQixNQUFtQztJQUVuQyxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDakMsSUFBSSxRQUFRLElBQUksT0FBTyxRQUFRLEtBQUssUUFBUSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1FBQ3pFLE9BQU8sUUFBUSxDQUFBO0lBQ2pCLENBQUM7SUFDRCxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDdkIsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDekIsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQ3RCLElBQUksS0FBSyxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNoRSxPQUFPLEtBQVUsQ0FBQTtRQUNuQixDQUFDO0lBQ0gsQ0FBQztJQUNELE9BQU8sU0FBUyxDQUFBO0FBQ2xCLENBQUM7QUFFTSxLQUFLLFVBQVUsOEJBQThCLENBQ2xELEtBQXNCLEVBQ3RCLFVBQWtCO0lBRWxCLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsaUNBQXlCLENBQUMsYUFBYSxDQUtqRSxDQUFBO0lBRUQsTUFBTSxNQUFNLEdB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
@@ -0,0 +1,197 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const utils_1 = require("@medusajs/framework/utils");
4
+ const vitest_1 = require("vitest");
5
+ const auth_identity_helpers_1 = require("../../../api/store/customers/otp/shared/auth-identity-helpers");
6
+ vitest_1.vi.mock("../../../config", () => ({
7
+ resolveCustomerRegistrationOptions: vitest_1.vi.fn(() => ({
8
+ login: { identifier: "both" },
9
+ registration: { identifier: "both", require_verification: true },
10
+ auth: {
11
+ email: { methods: ["otp"] },
12
+ phone: { methods: ["otp"] },
13
+ },
14
+ })),
15
+ }));
16
+ const config_1 = require("../../../config");
17
+ const mockedResolveOptions = vitest_1.vi.mocked(config_1.resolveCustomerRegistrationOptions);
18
+ (0, vitest_1.describe)("auth-identity-helpers table-driven tests", () => {
19
+ const createProviderIdentities = vitest_1.vi.fn().mockResolvedValue(undefined);
20
+ (0, vitest_1.beforeEach)(() => {
21
+ vitest_1.vi.clearAllMocks();
22
+ createProviderIdentities.mockClear();
23
+ });
24
+ const helperCases = [
25
+ {
26
+ title: "creates phoneotp when login.identifier is both",
27
+ loginIdentifier: "both",
28
+ customerId: "cus_1",
29
+ provider: "phoneotp",
30
+ entityId: "+15551234567",
31
+ authIdentityId: "auth_1",
32
+ existingProvider: false,
33
+ expected: "auth_1",
34
+ shouldCreateProvider: true,
35
+ },
36
+ {
37
+ title: "creates phoneotp when login.identifier is phone",
38
+ loginIdentifier: "phone",
39
+ customerId: "cus_1",
40
+ provider: "phoneotp",
41
+ entityId: "+15551234567",
42
+ authIdentityId: "auth_1",
43
+ existingProvider: false,
44
+ expected: "auth_1",
45
+ shouldCreateProvider: true,
46
+ },
47
+ {
48
+ title: "skips phoneotp when login.identifier is email",
49
+ loginIdentifier: "email",
50
+ customerId: "cus_1",
51
+ provider: "phoneotp",
52
+ entityId: "+15551234567",
53
+ authIdentityId: "auth_1",
54
+ existingProvider: false,
55
+ expected: null,
56
+ shouldCreateProvider: false,
57
+ },
58
+ {
59
+ title: "creates emailotp when login.identifier is both",
60
+ loginIdentifier: "both",
61
+ customerId: "cus_2",
62
+ provider: "emailotp",
63
+ entityId: "user@example.com",
64
+ authIdentityId: "auth_2",
65
+ existingProvider: false,
66
+ expected: "auth_2",
67
+ shouldCreateProvider: true,
68
+ },
69
+ {
70
+ title: "creates emailotp when login.identifier is email",
71
+ loginIdentifier: "email",
72
+ customerId: "cus_2",
73
+ provider: "emailotp",
74
+ entityId: "user@example.com",
75
+ authIdentityId: "auth_2",
76
+ existingProvider: false,
77
+ expected: "auth_2",
78
+ shouldCreateProvider: true,
79
+ },
80
+ {
81
+ title: "skips emailotp when login.identifier is phone",
82
+ loginIdentifier: "phone",
83
+ customerId: "cus_2",
84
+ provider: "emailotp",
85
+ entityId: "user@example.com",
86
+ authIdentityId: "auth_2",
87
+ existingProvider: false,
88
+ expected: null,
89
+ shouldCreateProvider: false,
90
+ },
91
+ {
92
+ title: "skips create when provider already exists",
93
+ loginIdentifier: "both",
94
+ customerId: "cus_1",
95
+ provider: "phoneotp",
96
+ entityId: "+15551234567",
97
+ authIdentityId: "auth_1",
98
+ existingProvider: true,
99
+ expected: "auth_1",
100
+ shouldCreateProvider: false,
101
+ },
102
+ {
103
+ title: "returns null when no auth identity linked to customer",
104
+ loginIdentifier: "both",
105
+ customerId: "cus_missing",
106
+ provider: "phoneotp",
107
+ entityId: "+15551234567",
108
+ authIdentityId: null,
109
+ existingProvider: false,
110
+ expected: null,
111
+ shouldCreateProvider: false,
112
+ },
113
+ ];
114
+ vitest_1.it.each(helperCases)("$title", async ({ loginIdentifier, customerId, provider, entityId, authIdentityId, existingProvider, expected, shouldCreateProvider, }) => {
115
+ mockedResolveOptions.mockReturnValue({
116
+ login: { identifier: loginIdentifier },
117
+ registration: { identifier: "both", require_verification: true },
118
+ auth: {
119
+ email: { methods: ["otp"] },
120
+ phone: { methods: ["otp"] },
121
+ },
122
+ });
123
+ const raw = vitest_1.vi
124
+ .fn()
125
+ .mockResolvedValueOnce({
126
+ rows: authIdentityId ? [{ id: authIdentityId }] : [],
127
+ })
128
+ .mockResolvedValueOnce({
129
+ rows: existingProvider ? [{ id: "pi_existing" }] : [],
130
+ });
131
+ const scope = {
132
+ resolve: (token) => {
133
+ if (token === utils_1.ContainerRegistrationKeys.CONFIG_MODULE) {
134
+ return {};
135
+ }
136
+ if (token === utils_1.ContainerRegistrationKeys.PG_CONNECTION) {
137
+ return { raw };
138
+ }
139
+ if (token === utils_1.Modules.AUTH) {
140
+ return { createProviderIdentities };
141
+ }
142
+ return undefined;
143
+ },
144
+ };
145
+ const result = await (0, auth_identity_helpers_1.resolveCrossChannelOtpAuthIdentity)(scope, {
146
+ customerId,
147
+ entityId,
148
+ provider,
149
+ });
150
+ (0, vitest_1.expect)(result).toBe(expected);
151
+ if (shouldCreateProvider) {
152
+ (0, vitest_1.expect)(createProviderIdentities).toHaveBeenCalledWith({
153
+ auth_identity_id: authIdentityId,
154
+ provider,
155
+ entity_id: entityId,
156
+ provider_metadata: {},
157
+ });
158
+ }
159
+ else {
160
+ (0, vitest_1.expect)(createProviderIdentities).not.toHaveBeenCalled();
161
+ }
162
+ });
163
+ (0, vitest_1.it)("findAuthIdentityIdByCustomerId returns linked auth identity id", async () => {
164
+ const raw = vitest_1.vi.fn().mockResolvedValue({ rows: [{ id: "auth_linked" }] });
165
+ const scope = {
166
+ resolve: (token) => {
167
+ if (token === utils_1.ContainerRegistrationKeys.PG_CONNECTION) {
168
+ return { raw };
169
+ }
170
+ return undefined;
171
+ },
172
+ };
173
+ const id = await (0, auth_identity_helpers_1.findAuthIdentityIdByCustomerId)(scope, "cus_1");
174
+ (0, vitest_1.expect)(id).toBe("auth_linked");
175
+ });
176
+ (0, vitest_1.it)("ensureProviderIdentity skips when provider already exists", async () => {
177
+ const raw = vitest_1.vi.fn().mockResolvedValue({ rows: [{ id: "pi_1" }] });
178
+ const scope = {
179
+ resolve: (token) => {
180
+ if (token === utils_1.ContainerRegistrationKeys.PG_CONNECTION) {
181
+ return { raw };
182
+ }
183
+ if (token === utils_1.Modules.AUTH) {
184
+ return { createProviderIdentities };
185
+ }
186
+ return undefined;
187
+ },
188
+ };
189
+ await (0, auth_identity_helpers_1.ensureProviderIdentity)(scope, {
190
+ authIdentityId: "auth_1",
191
+ provider: "phoneotp",
192
+ entityId: "+15551234567",
193
+ });
194
+ (0, vitest_1.expect)(createProviderIdentities).not.toHaveBeenCalled();
195
+ });
196
+ });
197
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb2x2ZS1vci1jcmVhdGUtb3RwLWF1dGgtY3VzdG9tZXItc3RlcC50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3dvcmtmbG93cy9zdGVwcy9fX3Rlc3RzX18vcmVzb2x2ZS1vci1jcmVhdGUtb3RwLWF1dGgtY3VzdG9tZXItc3RlcC50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEscURBQThFO0FBQzlFLG1DQUE2RDtBQUM3RCx5R0FJc0U7QUFFdEUsV0FBRSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQ2hDLGtDQUFrQyxFQUFFLFdBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUMvQyxLQUFLLEVBQUUsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFO1FBQzdCLFlBQVksRUFBRSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsb0JBQW9CLEVBQUUsSUFBSSxFQUFFO1FBQ2hFLElBQUksRUFBRTtZQUNKLEtBQUssRUFBRSxFQUFFLE9BQU8sRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQzNCLEtBQUssRUFBRSxFQUFFLE9BQU8sRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFO1NBQzVCO0tBQ0YsQ0FBQyxDQUFDO0NBQ0osQ0FBQyxDQUFDLENBQUE7QUFFSCw0Q0FBb0U7QUFFcEUsTUFBTSxvQkFBb0IsR0FBRyxXQUFFLENBQUMsTUFBTSxDQUFDLDJDQUFrQyxDQUFDLENBQUE7QUFjMUUsSUFBQSxpQkFBUSxFQUFDLDBDQUEwQyxFQUFFLEdBQUcsRUFBRTtJQUN4RCxNQUFNLHdCQUF3QixHQUFHLFdBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsQ0FBQTtJQUVyRSxJQUFBLG1CQUFVLEVBQUMsR0FBRyxFQUFFO1FBQ2QsV0FBRSxDQUFDLGFBQWEsRUFBRSxDQUFBO1FBQ2xCLHdC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
@@ -4,6 +4,7 @@ exports.resolveOrCreateEmailAuthCustomerStep = void 0;
4
4
  const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
5
5
  const utils_1 = require("@medusajs/framework/utils");
6
6
  const core_flows_1 = require("@medusajs/core-flows");
7
+ const auth_identity_helpers_1 = require("../../api/store/customers/otp/shared/auth-identity-helpers");
7
8
  const email_auth_helpers_1 = require("../../api/store/customers/otp/shared/email-auth-helpers");
8
9
  const otp_verification_1 = require("../../modules/otp-verification");
9
10
  exports.resolveOrCreateEmailAuthCustomerStep = (0, workflows_sdk_1.createStep)("resolve-or-create-email-auth-customer", async (input, stepContext) => {
@@ -40,7 +41,14 @@ exports.resolveOrCreateEmailAuthCustomerStep = (0, workflows_sdk_1.createStep)("
40
41
  };
41
42
  // Existing registered account — log in via existing auth identity
42
43
  if (existingCustomer?.has_account) {
43
- const authIdentityId = await (0, email_auth_helpers_1.findAuthIdentityIdByEmail)(container, normalizedEmail);
44
+ let authIdentityId = await (0, email_auth_helpers_1.findAuthIdentityIdByEmail)(container, normalizedEmail);
45
+ if (!authIdentityId) {
46
+ authIdentityId = await (0, auth_identity_helpers_1.resolveCrossChannelOtpAuthIdentity)(container, {
47
+ customerId: existingCustomer.id,
48
+ entityId: normalizedEmail,
49
+ provider: "emailotp",
50
+ });
51
+ }
44
52
  if (!authIdentityId) {
45
53
  throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, "No authentication identity found for this email");
46
54
  }
@@ -122,4 +130,4 @@ exports.resolveOrCreateEmailAuthCustomerStep = (0, workflows_sdk_1.createStep)("
122
130
  is_new_user: isNewUser,
123
131
  });
124
132
  });
125
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb2x2ZS1vci1jcmVhdGUtZW1haWwtYXV0aC1jdXN0b21lci1zdGVwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3dvcmtmbG93cy9zdGVwcy9yZXNvbHZlLW9yLWNyZWF0ZS1lbWFpbC1hdXRoLWN1c3RvbWVyLXN0ZXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUVBQTRFO0FBRTVFLHFEQUtrQztBQUNsQyxxREFBb0U7QUFDcEUsZ0dBS2dFO0FBQ2hFLHFFQUF3RTtBQWdCM0QsUUFBQSxvQ0FBb0MsR0FBRyxJQUFBLDBCQUFVLEVBQzVELHVDQUF1QyxFQUN2QyxLQUFLLEVBQUUsS0FBb0MsRUFBRSxXQUFXLEVBQUUsRUFBRTtJQUMxRCxNQUFNLEVBQUUsU0FBUyxFQUFFLEdBQUcsV0FBVyxDQUFBO0lBQ2pDLE1BQU0sZUFBZSxHQUFHLElBQUEsdUNBQWtCLEVBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ3ZELE1BQU0sVUFBVSxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQ2xDLDBDQUF1QixDQUN4QixDQUFBO0lBQ0QsTUFBTSxXQUFXLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxlQUFPLENBQUMsSUFBSSxDQWNqRCxDQUFBO0lBRUQsTUFBTSxnQkFBZ0IsR0FBRyxNQUFNLElBQUEsMENBQXFCLEVBQ2xELFNBQVMsRUFDVCxlQUFlLENBQ2hCLENBQUE7SUFFRCxNQUFNLGtCQUFrQixHQUFHLEtBQUssRUFDOUIsY0FBc0IsRUFDdEIsVUFBa0IsRUFDbEIsRUFBRTtRQUNGLE1BQU0sV0FBVyxDQUFDLG9CQUFvQixDQUFDO1lBQ3JDLEVBQUUsRUFBRSxjQUFjO1lBQ2xCLFlBQVksRUFBRSxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUU7U0FDMUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQyxDQUFBO0lBRUQsTUFBTSxlQUFlLEdBQUcsS0FBSyxFQUFFLFVBQWtCLEVBQUUsRUFBRTtRQUNuRCxNQUFNLFdBQVcsR0FBRyxTQUFTLENBQUMsT0FBTyxDQUNuQyxpQ0FBeUIsQ0FBQyxZQUFZLENBQ3ZDLENBQUE7UUFDRCxNQUFNLFdBQVcsR0FBRyxJQUFBLG1DQUEyQixFQUFDO1lBQzlDLFVBQVUsRUFBRSxVQUFVO1lBQ3RCLFNBQVMsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUUsRUFBRTtZQUMxQyxNQUFNLEVBQUU7Z0JBQ04sSUFBSTtnQkFDSixPQUFPO2dCQUNQLFlBQVk7Z0JBQ1osV0FBVztnQkFDWCxPQUFPO2dCQUNQLGFBQWE7Z0JBQ2IsVUFBVTtnQkFDVixZQUFZO2dCQUNaLFlBQVk7YUFDYjtTQUNGLENBQUMsQ0FBQTtRQUNGLE1BQU0sU0FBUyxHQUFHLE1BQU0sV0FBVyxDQUFDLFdBQVcsQ0FBQyxDQUFBO1FBQ2hELE9BQU8sU0FBUyxDQUFDLENBQUMsQ0FBNEIsQ0FBQTtJQUNoRCxDQUFDLENBQUE7SUFFRCxrRUFBa0U7SUFDbEUsSUFBSSxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsQ0FBQztRQUNsQyxNQUFNLGNBQWMsR0FBRyxNQUFNLElBQUEsOENBQXlCLEVBQ3BELFNBQVMsRUFDVCxlQUFlLENBQ2hCLENBQUE7UUFFRCxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDcEIsTUFBTSxJQUFJLG1CQUFXLENBQ25CLG1CQUFXLENBQUMsS0FBSyxDQUFDLFlBQVksRUFDOUIsaURBQWlELENBQ2xELENBQUE7UUFDSCxDQUFDO1FBRUQsTUFBTSxVQUFVLENBQUMsbUJBQW1CLENBQUMsV0FBVyxFQUFFLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxDQUFBO1FBRXRFLE1BQU0sWUFBWSxHQUFHLE1BQU0sV0FBVyxDQUFDLG9CQUFvQixDQUFDLGNBQWMsQ0FBQyxDQUFBO1FBQzNFLE1BQU0sa0JBQWtCLENBQUMsY0FBYyxFQUFFLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxDQUFBO1FBRTdELE1BQU0sUUFBUSxHQUFHLE1BQU0sZUFBZSxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxDQUFBO1FBRTNELE9BQU8sSUFBSSw0QkFBWSxDQUFpQztZQUN0RCxRQUFRO1lBQ1IsYUFBYSxFQUFFLFlBQVk7WUFDM0IsV0FBVyxFQUFFLEtBQUs7U0FDbkIsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVELGlHQUFpRztJQUNqRyxJQUFJLFlBQXFDLENBQUE7SUFDekMsSUFBSSxjQUFrQyxDQUFBO0lBRXRDLE1BQU0saUJBQWlCLEdBQUcsTUFBTSxJQUFBLGlEQUE0QixFQUMxRCxTQUFTLEVBQ1QsZUFBZSxDQUNoQixDQUFBO0lBRUQsSUFBSSxpQkFBaUIsRUFBRSxDQUFDO1FBQ3RCLGNBQWMsR0FBRyxpQkFBaUIsQ0FBQTtRQUNsQyxZQUFZLEdBQUcsTUFBTSxXQUFXLENBQUMsb0JBQW9CLENBQUMsaUJBQWlCLENBQUMsQ0FBQTtJQUMxRSxDQUFDO1NBQU0sQ0FBQztRQUNOLE1BQU0sUUFBUSxHQUFHO1lBQ2YsSUFBSSxFQUFFLEVBQUUsS0FBSyxFQUFFLGVBQWUsRUFBRTtTQUNWLENBQUE7UUFFeEIsTUFBTSxjQUFjLEdBQUcsTUFBTSxXQUFXLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQTtRQUV2RSxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUM1RCxNQUFNLElBQUksbUJBQVcsQ0FDbkIsbUJBQVcsQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUM5QixjQUFjLENBQUMsS0FBSyxJQUFJLDBDQUEwQyxDQUNuRSxDQUFBO1FBQ0gsQ0FBQztRQUVELFlBQVksR0FBRyxjQUFjLENBQUMsWUFBWSxDQUFBO1FBQzFDLGNBQWM7WUFDWixPQUFPLFlBQVksQ0FBQyxFQUFFLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUE7SUFDckUsQ0FBQztJQUVELElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUNwQixNQUFNLElBQUksbUJBQVcsQ0FDbkIsbUJBQVcsQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLEVBQ2xDLDZDQUE2QyxDQUM5QyxDQUFBO0lBQ0gsQ0FBQztJQUVELE1BQU0sZUFBZSxHQUE0QjtRQUMvQyxLQUFLLEVBQUUsZUFBZTtLQUN2QixDQUFBO0lBQ0QsSUFBSSxLQUFLLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDckIsZUFBZSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFBO0lBQy9DLENBQUM7SUFDRCxJQUFJLEtBQUssQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNwQixlQUFlLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUE7SUFDN0MsQ0FBQztJQUVELElBQUksVUFBa0IsQ0FBQTtJQUN0QixJQUFJLFNBQVMsR0FBRyxJQUFJLENBQUE7SUFFcEIsSUFBSSxnQkFBZ0IsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3RELE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxNQUFNLElBQUEsMENBQTZCLEVBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxDQUFDO1lBQ3BFLEtBQUssRUFBRTtnQkFDTCw4REFBOEQ7Z0JBQzlELFlBQVksRUFBRSxlQUFzQjtnQkFDcEMsY0FBYzthQUNmO1NBQ0YsQ0FBQyxDQUFBO1FBQ0YsVUFBVSxHQUFHLE1BQU0sQ0FBQyxFQUFFLENBQUE7UUFDdEIsU0FBUyxHQUFHLEtBQUssQ0FBQTtJQUNuQixDQUFDO1NBQU0sSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDN0IsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLE1BQU0sSUFBQSwwQ0FBNkIsRUFBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLENBQUM7WUFDcEUsS0FBSyxFQUFFO2dCQUNMLDhEQUE4RDtnQkFDOUQsWUFBWSxFQUFFLGVBQXNCO2dCQUNwQyxjQUFjO2FBQ2Y7U0FDRixDQUFDLENBQUE7UUFDRixVQUFVLEdBQUcsTUFBTSxDQUFDLEVBQUUsQ0FBQTtJQUN4QixDQUFDO1NBQU0sQ0FBQztRQUNOLE1BQU0sSUFBSSxtQkFBVyxDQUNuQixtQkFBVyxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQzlCLHFEQUFxRCxDQUN0RCxDQUFBO0lBQ0gsQ0FBQztJQUVELE1BQU0sVUFBVSxDQUFDLG1CQUFtQixDQUFDLFdBQVcsRUFBRSxVQUFVLENBQUMsQ0FBQTtJQUM3RCxNQUFNLGtCQUFrQixDQUFDLGNBQWMsRUFBRSxVQUFVLENBQUMsQ0FBQTtJQUVwRCxNQUFNLFFBQVEsR0FBRyxNQUFNLGVBQWUsQ0FBQyxVQUFVLENBQUMsQ0FBQTtJQUNsRCxNQUFNLFVBQVUsR0FBRyxNQUFNLFdBQVcsQ0FBQyxvQkFBb0IsQ0FBQyxjQUFjLENBQUMsQ0FBQTtJQUV6RSxPQUFPLElBQUksNEJBQVksQ0FBaUM7UUFDdEQsUUFBUTtRQUNSLGFBQWEsRUFBRSxVQUFVO1FBQ3pCLFdBQVcsRUFBRSxTQUFTO0tBQ3ZCLENBQUMsQ0FBQTtBQUNKLENBQUMsQ0FDRixDQUFBIn0=
133
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb2x2ZS1vci1jcmVhdGUtZW1haWwtYXV0aC1jdXN0b21lci1zdGVwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3dvcmtmbG93cy9zdGVwcy9yZXNvbHZlLW9yLWNyZWF0ZS1lbWFpbC1hdXRoLWN1c3RvbWVyLXN0ZXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUVBQTRFO0FBRTVFLHFEQUtrQztBQUNsQyxxREFBb0U7QUFDcEUsc0dBQStHO0FBQy9HLGdHQUtnRTtBQUNoRSxxRUFBd0U7QUFnQjNELFFBQUEsb0NBQW9DLEdBQUcsSUFBQSwwQkFBVSxFQUM1RCx1Q0FBdUMsRUFDdkMsS0FBSyxFQUFFLEtBQW9DLEVBQUUsV0FBVyxFQUFFLEVBQUU7SUFDMUQsTUFBTSxFQUFFLFNBQVMsRUFBRSxHQUFHLFdBQVcsQ0FBQTtJQUNqQyxNQUFNLGVBQWUsR0FBRyxJQUFBLHVDQUFrQixFQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUN2RCxNQUFNLFVBQVUsR0FBRyxTQUFTLENBQUMsT0FBTyxDQUNsQywwQ0FBdUIsQ0FDeEIsQ0FBQTtJQUNELE1BQU0sV0FBVyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsZUFBTyxDQUFDLElBQUksQ0FjakQsQ0FBQTtJQUVELE1BQU0sZ0JBQWdCLEdBQUcsTUFBTSxJQUFBLDBDQUFxQixFQUNsRCxTQUFTLEVBQ1QsZUFBZSxDQUNoQixDQUFBO0lBRUQsTUFBTSxrQkFBa0IsR0FBRyxLQUFLLEVBQzlCLGNBQXNCLEVBQ3RCLFVBQWtCLEVBQ2xCLEVBQUU7UUFDRixNQUFNLFdBQVcsQ0FBQyxvQkFBb0IsQ0FBQztZQUNyQyxFQUFFLEVBQUUsY0FBYztZQUNsQixZQUFZLEVBQUUsRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFO1NBQzFDLENBQUMsQ0FBQTtJQUNKLENBQUMsQ0FBQTtJQUVELE1BQU0sZUFBZSxHQUFHLEtBQUssRUFBRSxVQUFrQixFQUFF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
@@ -4,6 +4,7 @@ exports.resolveOrCreatePhoneAuthCustomerStep = void 0;
4
4
  const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
5
5
  const utils_1 = require("@medusajs/framework/utils");
6
6
  const create_phone_only_customer_1 = require("../../api/store/customers/shared/create-phone-only-customer");
7
+ const auth_identity_helpers_1 = require("../../api/store/customers/otp/shared/auth-identity-helpers");
7
8
  const phone_auth_helpers_1 = require("../../api/store/customers/otp/shared/phone-auth-helpers");
8
9
  const otp_verification_1 = require("../../modules/otp-verification");
9
10
  exports.resolveOrCreatePhoneAuthCustomerStep = (0, workflows_sdk_1.createStep)("resolve-or-create-phone-auth-customer", async (input, stepContext) => {
@@ -39,7 +40,14 @@ exports.resolveOrCreatePhoneAuthCustomerStep = (0, workflows_sdk_1.createStep)("
39
40
  return customers[0];
40
41
  };
41
42
  if (existingCustomer?.has_account) {
42
- const authIdentityId = await (0, phone_auth_helpers_1.findAuthIdentityIdByPhone)(container, normalizedPhone);
43
+ let authIdentityId = await (0, phone_auth_helpers_1.findAuthIdentityIdByPhone)(container, normalizedPhone);
44
+ if (!authIdentityId) {
45
+ authIdentityId = await (0, auth_identity_helpers_1.resolveCrossChannelOtpAuthIdentity)(container, {
46
+ customerId: existingCustomer.id,
47
+ entityId: normalizedPhone,
48
+ provider: "phoneotp",
49
+ });
50
+ }
43
51
  if (!authIdentityId) {
44
52
  throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, "No authentication identity found for this phone");
45
53
  }
@@ -109,4 +117,4 @@ exports.resolveOrCreatePhoneAuthCustomerStep = (0, workflows_sdk_1.createStep)("
109
117
  is_new_user: isNewUser,
110
118
  });
111
119
  });
112
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb2x2ZS1vci1jcmVhdGUtcGhvbmUtYXV0aC1jdXN0b21lci1zdGVwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3dvcmtmbG93cy9zdGVwcy9yZXNvbHZlLW9yLWNyZWF0ZS1waG9uZS1hdXRoLWN1c3RvbWVyLXN0ZXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUVBQTRFO0FBRTVFLHFEQUtrQztBQUNsQyw0R0FHb0U7QUFDcEUsZ0dBS2dFO0FBQ2hFLHFFQUF3RTtBQWdCM0QsUUFBQSxvQ0FBb0MsR0FBRyxJQUFBLDBCQUFVLEVBQzVELHVDQUF1QyxFQUN2QyxLQUFLLEVBQUUsS0FBb0MsRUFBRSxXQUFXLEVBQUUsRUFBRTtJQUMxRCxNQUFNLEVBQUUsU0FBUyxFQUFFLEdBQUcsV0FBVyxDQUFBO0lBQ2pDLE1BQU0sZUFBZSxHQUFHLElBQUEsdUNBQWtCLEVBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBRXZELE1BQU0sVUFBVSxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQ2xDLDBDQUF1QixDQUN4QixDQUFBO0lBQ0QsTUFBTSxXQUFXLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxlQUFPLENBQUMsSUFBSSxDQWNqRCxDQUFBO0lBRUQsTUFBTSxnQkFBZ0IsR0FBRyxNQUFNLElBQUEsMENBQXFCLEVBQ2xELFNBQVMsRUFDVCxlQUFlLENBQ2hCLENBQUE7SUFFRCxNQUFNLGtCQUFrQixHQUFHLEtBQUssRUFDOUIsY0FBc0IsRUFDdEIsVUFBa0IsRUFDbEIsRUFBRTtRQUNGLE1BQU0sV0FBVyxDQUFDLG9CQUFvQixDQUFDO1lBQ3JDLEVBQUUsRUFBRSxjQUFjO1lBQ2xCLFlBQVksRUFBRSxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUU7U0FDMUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQyxDQUFBO0lBRUQsTUFBTSxlQUFlLEdBQUcsS0FBSyxFQUFFLFVBQWtCLEVBQUUsRUFBRTtRQUNuRCxNQUFNLFdBQVcsR0FBRyxTQUFTLENBQUMsT0FBTyxDQUNuQyxpQ0FBeUIsQ0FBQyxZQUFZLENBQ3ZDLENBQUE7UUFDRCxNQUFNLFdBQVcsR0FBRyxJQUFBLG1DQUEyQixFQUFDO1lBQzlDLFVBQVUsRUFBRSxVQUFVO1lBQ3RCLFNBQVMsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUUsRUFBRTtZQUMxQyxNQUFNLEVBQUU7Z0JBQ04sSUFBSTtnQkFDSixPQUFPO2dCQUNQLFlBQVk7Z0JBQ1osV0FBVztnQkFDWCxPQUFPO2dCQUNQLGFBQWE7Z0JBQ2IsVUFBVTtnQkFDVixZQUFZO2dCQUNaLFlBQVk7YUFDYjtTQUNGLENBQUMsQ0FBQTtRQUNGLE1BQU0sU0FBUyxHQUFHLE1BQU0sV0FBVyxDQUFDLFdBQVcsQ0FBQyxDQUFBO1FBQ2hELE9BQU8sU0FBUyxDQUFDLENBQUMsQ0FBNEIsQ0FBQTtJQUNoRCxDQUFDLENBQUE7SUFFRCxJQUFJLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxDQUFDO1FBQ2xDLE1BQU0sY0FBYyxHQUFHLE1BQU0sSUFBQSw4Q0FBeUIsRUFDcEQsU0FBUyxFQUNULGVBQWUsQ0FDaEIsQ0FBQTtRQUVELElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUNwQixNQUFNLElBQUksbUJBQVcsQ0FDbkIsbUJBQVcsQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUM5QixpREFBaUQsQ0FDbEQsQ0FBQTtRQUNILENBQUM7UUFFRCxNQUFNLFVBQVUsQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLEVBQUUsZ0JBQWdCLENBQUMsRUFBRSxDQUFDLENBQUE7UUFFdEUsTUFBTSxZQUFZLEdBQUcsTUFBTSxXQUFXLENBQUMsb0JBQW9CLENBQUMsY0FBYyxDQUFDLENBQUE7UUFDM0UsTUFBTSxrQkFBa0IsQ0FBQyxjQUFjLEVBQUUsZ0JBQWdCLENBQUMsRUFBRSxDQUFDLENBQUE7UUFFN0QsTUFBTSxRQUFRLEdBQUcsTUFBTSxlQUFlLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDLENBQUE7UUFFM0QsT0FBTyxJQUFJLDRCQUFZLENBQWlDO1lBQ3RELFFBQVE7WUFDUixhQUFhLEVBQUUsWUFBWTtZQUMzQixXQUFXLEVBQUUsS0FBSztTQUNuQixDQUFDLENBQUE7SUFDSixDQUFDO0lBRUQsSUFBSSxZQUFxQyxDQUFBO0lBQ3pDLElBQUksY0FBa0MsQ0FBQTtJQUV0QyxNQUFNLGlCQUFpQixHQUFHLE1BQU0sSUFBQSxpREFBNEIsRUFDMUQsU0FBUyxFQUNULGVBQWUsQ0FDaEIsQ0FBQTtJQUVELElBQUksaUJBQWlCLEVBQUUsQ0FBQztRQUN0QixjQUFjLEdBQUcsaUJBQWlCLENBQUE7UUFDbEMsWUFBWSxHQUFHLE1BQU0sV0FBVyxDQUFDLG9CQUFvQixDQUFDLGlCQUFpQixDQUFDLENBQUE7SUFDMUUsQ0FBQztTQUFNLENBQUM7UUFDTixNQUFNLFFBQVEsR0FBRztZQUNmLElBQUksRUFBRSxFQUFFLEtBQUssRUFBRSxlQUFlLEVBQUU7U0FDVixDQUFBO1FBRXhCLE1BQU0sY0FBYyxHQUFHLE1BQU0sV0FBVyxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLENBQUE7UUFFdkUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDNUQsTUFBTSxJQUFJLG1CQUFXLENBQ25CLG1CQUFXLENBQUMsS0FBSyxDQUFDLFlBQVksRUFDOUIsY0FBYyxDQUFDLEtBQUssSUFBSSwwQ0FBMEMsQ0FDbkUsQ0FBQTtRQUNILENBQUM7UUFFRCxZQUFZLEdBQUcsY0FBYyxDQUFDLFlBQVksQ0FBQTtRQUMxQyxjQUFjO1lBQ1osT0FBTyxZQUFZLENBQUMsRUFBRSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFBO0lBQ3JFLENBQUM7SUFFRCxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDcEIsTUFBTSxJQUFJLG1CQUFXLENBQ25CLG1CQUFXLENBQUMsS0FBSyxDQUFDLGdCQUFnQixFQUNsQyw2Q0FBNkMsQ0FDOUMsQ0FBQTtJQUNILENBQUM7SUFFRCxNQUFNLGVBQWUsR0FBaUM7UUFDcEQsS0FBSyxFQUFFLGVBQWU7UUFDdEIsV0FBVyxFQUFFLElBQUk7S0FDbEIsQ0FBQTtJQUNELElBQUksS0FBSyxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3JCLGVBQWUsQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDLFVBQVUsQ0FBQTtJQUMvQyxDQUFDO0lBQ0QsSUFBSSxLQUFLLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDcEIsZUFBZSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFBO0lBQzdDLENBQUM7SUFFRCxJQUFJLFVBQWtCLENBQUE7SUFDdEIsSUFBSSxTQUFTLEdBQUcsSUFBSSxDQUFBO0lBRXBCLElBQUksZ0JBQWdCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUN0RCxNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUEsb0RBQXVCLEVBQUMsU0FBUyxFQUFFLGVBQWUsQ0FBQyxDQUFBO1FBQ3pFLFVBQVUsR0FBRyxPQUFPLENBQUMsRUFBRSxDQUFBO1FBQ3ZCLFNBQVMsR0FBRyxLQUFLLENBQUE7SUFDbkIsQ0FBQztTQUFNLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQzdCLE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBQSxvREFBdUIsRUFBQyxTQUFTLEVBQUUsZUFBZSxDQUFDLENBQUE7UUFDekUsVUFBVSxHQUFHLE9BQU8sQ0FBQyxFQUFFLENBQUE7SUFDekIsQ0FBQztTQUFNLENBQUM7UUFDTixNQUFNLElBQUksbUJBQVcsQ0FDbkIsbUJBQVcsQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUM5QixxREFBcUQsQ0FDdEQsQ0FBQTtJQUNILENBQUM7SUFFRCxNQUFNLFVBQVUsQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLEVBQUUsVUFBVSxDQUFDLENBQUE7SUFDN0QsTUFBTSxrQkFBa0IsQ0FBQyxjQUFjLEVBQUUsVUFBVSxDQUFDLENBQUE7SUFFcEQsTUFBTSxRQUFRLEdBQUcsTUFBTSxlQUFlLENBQUMsVUFBVSxDQUFDLENBQUE7SUFDbEQsTUFBTSxVQUFVLEdBQUcsTUFBTSxXQUFXLENBQUMsb0JBQW9CLENBQUMsY0FBYyxDQUFDLENBQUE7SUFFekUsT0FBTyxJQUFJLDRCQUFZLENBQWlDO1FBQ3RELFFBQVE7UUFDUixhQUFhLEVBQUUsVUFBVTtRQUN6QixXQUFXLEVBQUUsU0FBUztLQUN2QixDQUFDLENBQUE7QUFDSixDQUFDLENBQ0YsQ0FBQSJ9
120
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb2x2ZS1vci1jcmVhdGUtcGhvbmUtYXV0aC1jdXN0b21lci1zdGVwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3dvcmtmbG93cy9zdGVwcy9yZXNvbHZlLW9yLWNyZWF0ZS1waG9uZS1hdXRoLWN1c3RvbWVyLXN0ZXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUVBQTRFO0FBRTVFLHFEQUtrQztBQUNsQyw0R0FHb0U7QUFDcEUsc0dBQStHO0FBQy9HLGdHQUtnRTtBQUNoRSxxRUFBd0U7QUFnQjNELFFBQUEsb0NBQW9DLEdBQUcsSUFBQSwwQkFBVSxFQUM1RCx1Q0FBdUMsRUFDdkMsS0FBSyxFQUFFLEtBQW9DLEVBQUUsV0FBVyxFQUFFLEVBQUU7SUFDMUQsTUFBTSxFQUFFLFNBQVMsRUFBRSxHQUFHLFdBQVcsQ0FBQTtJQUNqQyxNQUFNLGVBQWUsR0FBRyxJQUFBLHVDQUFrQixFQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUV2RCxNQUFNLFVBQVUsR0FBRyxTQUFTLENBQUMsT0FBTyxDQUNsQywwQ0FBdUIsQ0FDeEIsQ0FBQTtJQUNELE1BQU0sV0FBVyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsZUFBTyxDQUFDLElBQUksQ0FjakQsQ0FBQTtJQUVELE1BQU0sZ0JBQWdCLEdBQUcsTUFBTSxJQUFBLDBDQUFxQixFQUNsRCxTQUFTLEVBQ1QsZUFBZSxDQUNoQixDQUFBO0lBRUQsTUFBTSxrQkFBa0IsR0FBRyxLQUFLLEVBQzlCLGNBQXNCLEVBQ3RCLFVBQWtCLEVBQ2xCLEVBQUU7UUFDRixNQUFNLFdBQVcsQ0FBQyxvQkFBb0IsQ0FBQztZQUNyQyxFQUFFLEVBQUUsY0FBYztZQUNsQixZQUFZLEVBQUUsRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFO1NBQzFDLENBQUMsQ0FBQTtJQUNKLENBQUMsQ0FBQTtJQUVELE1BQU0sZUFBZSxHQUFHLEtBQUssRUFBRSxVQUFrQixFQUFF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
package/README.md CHANGED
@@ -324,6 +324,8 @@ Response:
324
324
 
325
325
  For dual OTP stores use `registration.identifier: "both"`, `login.identifier: "both"`, `auth.email.methods` / `auth.phone.methods` including `"otp"`, plus `email_auth` and `phone_auth` channel config.
326
326
 
327
+ > **Cross-channel OTP login:** When `login.identifier` is `"both"`, a customer who registered with password on one channel (e.g. email) and added the other identifier on their profile can OTP-login on that channel without completing verification OTP first. The plugin auto-attaches `phoneotp` or `emailotp` to their existing auth identity on first OTP login.
328
+
327
329
  ### Store routes
328
330
 
329
331
  #### `POST /store/customers`
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "customer-registration",
3
- "version": "0.0.132",
3
+ "version": "0.0.133",
4
4
  "description": "Medusa plugin that overrides store customer registration, enforces email/phone verification flags, and provides OTP management module.",
5
5
  "author": "Medusa (https://medusajs.com)",
6
6
  "license": "MIT",