customer-registration 0.0.128 → 0.0.129

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.
@@ -5,6 +5,7 @@ const utils_1 = require("@medusajs/framework/utils");
5
5
  const core_flows_1 = require("@medusajs/core-flows");
6
6
  const config_1 = require("../../../config");
7
7
  const is_social_pending_customer_registration_1 = require("./shared/is-social-pending-customer-registration");
8
+ const create_phone_only_customer_1 = require("./shared/create-phone-only-customer");
8
9
  const referral_code_1 = require("./shared/referral-code");
9
10
  /** Medusa / Knex raw results may use `rows` (node-pg) or `result[0]` batch shape. */
10
11
  function firstKnexRow(result) {
@@ -98,25 +99,20 @@ const POST = async (req, res) => {
98
99
  const customer = await refetchCustomer(result.id, req.scope);
99
100
  return res.status(200).json({ customer });
100
101
  }
101
- // "phone": create customer without email validation.
102
- const customerService = req.scope.resolve(utils_1.Modules.CUSTOMER);
103
- const [customer] = await customerService.createCustomers([
104
- {
105
- ...customerDataForCreate,
106
- phone: phoneNormalized,
107
- has_account: !!authIdentityId,
108
- },
109
- ]);
110
- // Link the auth identity to the new customer (same as setAuthAppMetadataStep)
102
+ const created = await (0, create_phone_only_customer_1.createPhoneOnlyCustomer)(req.scope, {
103
+ ...customerDataForCreate,
104
+ phone: phoneNormalized,
105
+ has_account: !!authIdentityId,
106
+ });
111
107
  if (authIdentityId) {
112
108
  const authService = req.scope.resolve(utils_1.Modules.AUTH);
113
109
  await authService.updateAuthIdentities({
114
110
  id: authIdentityId,
115
- app_metadata: { customer_id: customer.id },
111
+ app_metadata: { customer_id: created.id },
116
112
  });
117
113
  }
118
- await (0, referral_code_1.maybeCreateReferralLinkFromRequest)(req, customer.id);
119
- const fullCustomer = await refetchCustomer(customer.id, req.scope);
114
+ await (0, referral_code_1.maybeCreateReferralLinkFromRequest)(req, created.id);
115
+ const fullCustomer = await refetchCustomer(created.id, req.scope);
120
116
  return res.status(200).json({ customer: fullCustomer });
121
117
  };
122
118
  exports.POST = POST;
@@ -140,4 +136,4 @@ async function refetchCustomer(customerId, scope) {
140
136
  const customers = await remoteQuery(queryObject);
141
137
  return customers[0];
142
138
  }
143
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL2N1c3RvbWVycy9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFLQSxxREFLa0M7QUFDbEMscURBQW9FO0FBQ3BFLDRDQUd3QjtBQUN4Qiw4R0FBc0c7QUFDdEcsMERBRytCO0FBRS9CLHFGQUFxRjtBQUNyRixTQUFTLFlBQVksQ0FDbkIsTUFBbUM7SUFFbkMsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ2pDLElBQUksUUFBUSxJQUFJLE9BQU8sUUFBUSxLQUFLLFFBQVEsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztRQUN6RSxPQUFPLFFBQVEsQ0FBQTtJQUNqQixDQUFDO0lBQ0QsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ3ZCLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ3pCLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUN0QixJQUFJLEtBQUssSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDaEUsT0FBTyxLQUFVLENBQUE7UUFDbkIsQ0FBQztJQUNILENBQUM7SUFDRCxPQUFPLFNBQVMsQ0FBQTtBQUNsQixDQUFDO0FBRUQ7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSSxNQUFNLElBQUksR0FBRyxLQUFLLEVBQUUsR0FBa0IsRUFBRSxHQUFtQixFQUFFLEVBQUU7SUFDcEUsTUFBTSxXQUFXLEdBQ2YsR0FHRCxDQUFDLFlBQVksQ0FBQTtJQUVkLElBQUksV0FBVyxFQUFFLFFBQVEsRUFBRSxDQUFDO1FBQzFCLE1BQU0s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
139
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL2N1c3RvbWVycy9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSxxREFLa0M7QUFDbEMscURBQW9FO0FBQ3BFLDRDQUd3QjtBQUN4Qiw4R0FBc0c7QUFDdEcsb0ZBQTZFO0FBQzdFLDBEQUcrQjtBQUUvQixxRkFBcUY7QUFDckYsU0FBUyxZQUFZLENBQ25CLE1BQW1DO0lBRW5DLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUNqQyxJQUFJLFFBQVEsSUFBSSxPQUFPLFFBQVEsS0FBSyxRQUFRLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7UUFDekUsT0FBTyxRQUFRLENBQUE7SUFDakIsQ0FBQztJQUNELE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUN2QixJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUN6QixNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDdEIsSUFBSSxLQUFLLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ2hFLE9BQU8sS0FBVSxDQUFBO1FBQ25CLENBQUM7SUFDSCxDQUFDO0lBQ0QsT0FBTyxTQUFTLENBQUE7QUFDbEIsQ0FBQztBQUVEOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBQ0ksTUFBTSxJQUFJLEdBQUcsS0FBSyxFQUFFLEdBQWtCLEVBQUUsR0FBbUIsRUFBRSxFQUFFO0lBQ3BFLE1BQU0sV0FBVyxHQUNmLEdBR0QsQ0FBQyxZQUFZLENBQUE7SUFFZCxJQUFJLFdBQVcsRUFBRSxRQUFRLEVBQUUsQ0FB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
@@ -0,0 +1,67 @@
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 create_phone_only_customer_1 = require("../create-phone-only-customer");
6
+ (0, vitest_1.describe)("createPhoneOnlyCustomer table-driven tests", () => {
7
+ const cases = [
8
+ {
9
+ title: "rejects empty phone",
10
+ input: { phone: " " },
11
+ shouldThrow: true,
12
+ errorType: utils_1.MedusaError.Types.INVALID_DATA,
13
+ errorMessage: "Phone is required",
14
+ },
15
+ {
16
+ title: "rejects duplicate registered phone",
17
+ input: { phone: "+15551234567", has_account: true },
18
+ existingAccountId: "cus_existing",
19
+ shouldThrow: true,
20
+ errorType: utils_1.MedusaError.Types.DUPLICATE_ERROR,
21
+ },
22
+ {
23
+ title: "creates customer with phone only",
24
+ input: { phone: "+15559876543", has_account: true, first_name: "A" },
25
+ createdId: "cus_new",
26
+ shouldThrow: false,
27
+ },
28
+ ];
29
+ vitest_1.it.each(cases)("$title", async ({ input, existingAccountId, createdId, shouldThrow, errorType, errorMessage, }) => {
30
+ const createCustomers = vitest_1.vi.fn().mockResolvedValue([
31
+ { id: createdId ?? "cus_new", phone: input.phone },
32
+ ]);
33
+ const scope = {
34
+ resolve: (token) => {
35
+ if (String(token).includes("pg_connection")) {
36
+ return {
37
+ raw: vitest_1.vi.fn().mockResolvedValue({
38
+ rows: existingAccountId ? [{ id: existingAccountId }] : [],
39
+ }),
40
+ };
41
+ }
42
+ if (String(token).includes("customer")) {
43
+ return { createCustomers };
44
+ }
45
+ return undefined;
46
+ },
47
+ };
48
+ const exec = () => (0, create_phone_only_customer_1.createPhoneOnlyCustomer)(scope, input);
49
+ if (shouldThrow) {
50
+ await (0, vitest_1.expect)(exec()).rejects.toMatchObject({ type: errorType });
51
+ if (errorMessage) {
52
+ await (0, vitest_1.expect)(exec()).rejects.toThrow(errorMessage);
53
+ }
54
+ return;
55
+ }
56
+ const customer = await exec();
57
+ (0, vitest_1.expect)(customer.id).toBe(createdId);
58
+ (0, vitest_1.expect)(createCustomers).toHaveBeenCalledWith([
59
+ vitest_1.expect.objectContaining({
60
+ phone: input.phone,
61
+ has_account: true,
62
+ first_name: "A",
63
+ }),
64
+ ]);
65
+ });
66
+ });
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLXBob25lLW9ubHktY3VzdG9tZXIudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcGkvc3RvcmUvY3VzdG9tZXJzL3NoYXJlZC9fX3Rlc3RzX18vY3JlYXRlLXBob25lLW9ubHktY3VzdG9tZXIudGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHFEQUF1RDtBQUN2RCxtQ0FBaUQ7QUFDakQsOEVBQXVFO0FBWXZFLElBQUEsaUJBQVEsRUFBQyw0Q0FBNEMsRUFBRSxHQUFHLEVBQUU7SUFDMUQsTUFBTSxLQUFLLEdBQXNDO1FBQy9DO1lBQ0UsS0FBSyxFQUFFLHFCQUFxQjtZQUM1QixLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFO1lBQ3ZCLFdBQVcsRUFBRSxJQUFJO1lBQ2pCLFNBQVMsRUFBRSxtQkFBVyxDQUFDLEtBQUssQ0FBQyxZQUFZO1lBQ3pDLFlBQVksRUFBRSxtQkFBbUI7U0FDbEM7UUFDRDtZQUNFLEtBQUssRUFBRSxvQ0FBb0M7WUFDM0MsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLGNBQWMsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFO1lBQ25ELGlCQUFpQixFQUFFLGNBQWM7WUFDakMsV0FBVyxFQUFFLElBQUk7WUFDakIsU0FBUyxFQUFFLG1CQUFXLENBQUMsS0FBSyxDQUFDLGVBQWU7U0FDN0M7UUFDRDtZQUNFLEtBQUssRUFBRSxrQ0FBa0M7WUFDekMsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLGNBQWMsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUU7WUFDcEUsU0FBUyxFQUFFLFNBQVM7WUFDcEIsV0FBVyxFQUFFLEtBQUs7U0FDbkI7S0FDRixDQUFBO0lBRUQsV0FBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FDWixRQUFRLEVBQ1IsS0FBSyxFQUFFLEVBQ0wsS0FBSyxFQUNMLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsV0FBVyxFQUNYLFNBQVMsRUFDVCxZQUFZLEdBQ2IsRUFBRSxFQUFFO1FBQ0gsTUFBTSxlQUFlLEdBQUcsV0FBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLGlCQUFpQixDQUFDO1lBQ2hELEVBQUUsRUFBRSxFQUFFLFNBQVMsSUFBSSxTQUFTLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLLEVBQUU7U0FDbkQsQ0FBQyxDQUFBO1FBRUYsTUFBTSxLQUFLLEdBQUc7WUFDWixPQUFPLEVBQUUsQ0FBQyxLQUFjLEVBQUUsRUFBRTtnQkFDMUIsSUFBSSxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUM7b0JBQzVDLE9BQU87d0JBQ0wsR0FBRyxFQUFFLFdBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQzs0QkFDN0IsSUFBSSxFQUFFLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLGlCQUFpQixFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTt5QkFDM0QsQ0FBQztxQkFDSCxDQUFBO2dCQUNILENBQUM7Z0JBQ0QsSUFBSSxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7b0JBQ3ZDLE9BQU8sRUFBRSxlQUFlLEVBQUUsQ0FBQTtnQkFDNUIsQ0FBQztnQkFDRCxPQUFPLFNBQVMsQ0FBQTtZQUNsQixDQUFDO1NBQ0YsQ0FBQTtRQUVELE1BQU0sSUFBSSxHQUFHLEdBQUcsRUFBRSxDQUNoQixJQUFBLG9EQUF1QixFQUFDLEtBQWMsRUFBRSxLQUFLLENBQUMsQ0FBQTtRQUVoRCxJQUFJLFdBQVcsRUFBRSxDQUFDO1lBQ2hCLE1BQU0sSUFBQSxlQUFNLEVBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUE7WUFDL0QsSUFBSSxZQUFZLEVBQUUsQ0FBQztnQkFDakIsTUFBTSxJQUFBLGVBQU0sRUFBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUE7WUFDcEQsQ0FBQztZQUNELE9BQU07UUFDUixDQUFDO1FBRUQsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFJLEVBQUUsQ0FBQTtRQUM3QixJQUFBLGVBQU0sRUFBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFBO1FBQ25DLElBQUEsZUFBTSxFQUFDLGVBQWUsQ0FBQyxDQUFDLG9CQUFvQixDQUFDO1lBQzNDLGVBQU0sQ0FBQyxnQkFBZ0IsQ0FBQztnQkFDdEIsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLO2dCQUNsQixXQUFXLEVBQUUsSUFBSTtnQkFDakIsVUFBVSxFQUFFLEdBQUc7YUFDaEIsQ0FBQztTQUNILENBQUMsQ0FBQTtJQUNKLENBQUMsQ0FDRixDQUFBO0FBQ0gsQ0FBQyxDQUFDLENBQUEifQ==
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createPhoneOnlyCustomer = createPhoneOnlyCustomer;
4
+ const utils_1 = require("@medusajs/framework/utils");
5
+ function firstKnexRow(result) {
6
+ const fromRows = result.rows?.[0];
7
+ if (fromRows && typeof fromRows === "object" && !Array.isArray(fromRows)) {
8
+ return fromRows;
9
+ }
10
+ const batch = result[0];
11
+ if (Array.isArray(batch)) {
12
+ const first = batch[0];
13
+ if (first && typeof first === "object" && !Array.isArray(first)) {
14
+ return first;
15
+ }
16
+ }
17
+ return undefined;
18
+ }
19
+ /**
20
+ * Creates a customer with phone only (no email), blocking duplicate registered phones.
21
+ * Used for phone-only password registration and phone_auth OTP signup.
22
+ */
23
+ async function createPhoneOnlyCustomer(scope, data) {
24
+ const phoneNormalized = data.phone.trim();
25
+ if (!phoneNormalized) {
26
+ throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, "Phone is required for registration");
27
+ }
28
+ const knex = scope.resolve(utils_1.ContainerRegistrationKeys.PG_CONNECTION);
29
+ const existingPhoneAccount = await knex.raw(`SELECT id FROM customer WHERE phone = ? AND has_account = true LIMIT 1`, [phoneNormalized]);
30
+ if (firstKnexRow(existingPhoneAccount)?.id) {
31
+ throw new utils_1.MedusaError(utils_1.MedusaError.Types.DUPLICATE_ERROR, "A customer with this phone number already has an account");
32
+ }
33
+ const customerService = scope.resolve(utils_1.Modules.CUSTOMER);
34
+ const [customer] = await customerService.createCustomers([
35
+ {
36
+ ...data,
37
+ phone: phoneNormalized,
38
+ has_account: data.has_account ?? false,
39
+ },
40
+ ]);
41
+ return customer;
42
+ }
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLXBob25lLW9ubHktY3VzdG9tZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL2N1c3RvbWVycy9zaGFyZWQvY3JlYXRlLXBob25lLW9ubHktY3VzdG9tZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUEwQ0EsMERBcUNDO0FBMUVELHFEQUlrQztBQUVsQyxTQUFTLFlBQVksQ0FDbkIsTUFBbUM7SUFFbkMsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ2pDLElBQUksUUFBUSxJQUFJLE9BQU8sUUFBUSxLQUFLLFFBQVEsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztRQUN6RSxPQUFPLFFBQVEsQ0FBQTtJQUNqQixDQUFDO0lBQ0QsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ3ZCLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ3pCLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUN0QixJQUFJLEtBQUssSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDaEUsT0FBTyxLQUFVLENBQUE7UUFDbkIsQ0FBQztJQUNILENBQUM7SUFDRCxPQUFPLFNBQVMsQ0FBQTtBQUNsQixDQUFDO0FBWUQ7OztHQUdHO0FBQ0ksS0FBSyxVQUFVLHVCQUF1QixDQUMzQyxLQUFzQixFQUN0QixJQUFrQztJQUVsQyxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFBO0lBRXpDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUNyQixNQUFNLElBQUksbUJBQVcsQ0FDbkIsbUJBQVcsQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUM5QixvQ0FBb0MsQ0FDckMsQ0FBQTtJQUNILENBQUM7SUFFRCxNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLGlDQUF5QixDQUFDLGFBQWEsQ0FBQyxDQUFBO0lBQ25FLE1BQU0sb0JBQW9CLEdBQUcsTUFBTSxJQUFJLENBQUMsR0FBRyxDQUN6Qyx3RUFBd0UsRUFDeEUsQ0FBQyxlQUFlLENBQUMsQ0FDbEIsQ0FBQTtJQUVELElBQUksWUFBWSxDQUFrQixvQkFBb0IsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDO1FBQzVELE1BQU0sSUFBSSxtQkFBVyxDQUNuQixtQkFBVyxDQUFDLEtBQUssQ0FBQyxlQUFlLEVBQ2pDLDBEQUEwRCxDQUMzRCxDQUFBO0lBQ0gsQ0FBQztJQUVELE1BQU0sZUFBZSxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQXlCLGVBQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQTtJQUUvRSxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsTUFBTSxlQUFlLENBQUMsZUFBZSxDQUFDO1FBQ3ZEO1lBQ0UsR0FBRyxJQUFJO1lBQ1AsS0FBSyxFQUFFLGVBQWU7WUFDdEIsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXLElBQUksS0FBSztTQUN2QztLQUNGLENBQUMsQ0FBQTtJQUVGLE9BQU8sUUFBUSxDQUFBO0FBQ2pCLENBQUMifQ==
@@ -3,16 +3,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  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
- const core_flows_1 = require("@medusajs/core-flows");
7
- const config_1 = require("../../config");
6
+ const create_phone_only_customer_1 = require("../../api/store/customers/shared/create-phone-only-customer");
8
7
  const phone_auth_helpers_1 = require("../../api/store/customers/otp/shared/phone-auth-helpers");
9
8
  const otp_verification_1 = require("../../modules/otp-verification");
10
9
  exports.resolveOrCreatePhoneAuthCustomerStep = (0, workflows_sdk_1.createStep)("resolve-or-create-phone-auth-customer", async (input, stepContext) => {
11
10
  const { container } = stepContext;
12
11
  const normalizedPhone = (0, phone_auth_helpers_1.normalizeAuthPhone)(input.phone);
13
- const configModule = container.resolve(utils_1.ContainerRegistrationKeys.CONFIG_MODULE);
14
- const registrationOptions = (0, config_1.resolveCustomerRegistrationOptions)(configModule);
15
- const registrationIdentifier = registrationOptions.registration.identifier;
16
12
  const otpService = container.resolve(otp_verification_1.OTP_VERIFICATION_MODULE);
17
13
  const authService = container.resolve(utils_1.Modules.AUTH);
18
14
  const existingCustomer = await (0, phone_auth_helpers_1.lookupCustomerByPhone)(container, normalizedPhone);
@@ -81,6 +77,7 @@ exports.resolveOrCreatePhoneAuthCustomerStep = (0, workflows_sdk_1.createStep)("
81
77
  }
82
78
  const customerPayload = {
83
79
  phone: normalizedPhone,
80
+ has_account: true,
84
81
  };
85
82
  if (input.first_name) {
86
83
  customerPayload.first_name = input.first_name;
@@ -91,49 +88,13 @@ exports.resolveOrCreatePhoneAuthCustomerStep = (0, workflows_sdk_1.createStep)("
91
88
  let customerId;
92
89
  let isNewUser = true;
93
90
  if (existingCustomer && !existingCustomer.has_account) {
94
- if (registrationIdentifier === "phone") {
95
- const customerService = container.resolve(utils_1.Modules.CUSTOMER);
96
- const [created] = await customerService.createCustomers([
97
- {
98
- ...customerPayload,
99
- has_account: true,
100
- },
101
- ]);
102
- customerId = created.id;
103
- }
104
- else {
105
- const { result } = await (0, core_flows_1.createCustomerAccountWorkflow)(container).run({
106
- input: {
107
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
108
- customerData: customerPayload,
109
- authIdentityId,
110
- },
111
- });
112
- customerId = result.id;
113
- }
91
+ const created = await (0, create_phone_only_customer_1.createPhoneOnlyCustomer)(container, customerPayload);
92
+ customerId = created.id;
114
93
  isNewUser = false;
115
94
  }
116
95
  else if (!existingCustomer) {
117
- if (registrationIdentifier === "phone") {
118
- const customerService = container.resolve(utils_1.Modules.CUSTOMER);
119
- const [created] = await customerService.createCustomers([
120
- {
121
- ...customerPayload,
122
- has_account: true,
123
- },
124
- ]);
125
- customerId = created.id;
126
- }
127
- else {
128
- const { result } = await (0, core_flows_1.createCustomerAccountWorkflow)(container).run({
129
- input: {
130
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
131
- customerData: customerPayload,
132
- authIdentityId,
133
- },
134
- });
135
- customerId = result.id;
136
- }
96
+ const created = await (0, create_phone_only_customer_1.createPhoneOnlyCustomer)(container, customerPayload);
97
+ customerId = created.id;
137
98
  }
138
99
  else {
139
100
  throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, "Unable to resolve customer for phone authentication");
@@ -148,4 +109,4 @@ exports.resolveOrCreatePhoneAuthCustomerStep = (0, workflows_sdk_1.createStep)("
148
109
  is_new_user: isNewUser,
149
110
  });
150
111
  });
151
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb2x2ZS1vci1jcmVhdGUtcGhvbmUtYXV0aC1jdXN0b21lci1zdGVwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3dvcmtmbG93cy9zdGVwcy9yZXNvbHZlLW9yLWNyZWF0ZS1waG9uZS1hdXRoLWN1c3RvbWVyLXN0ZXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUVBQTRFO0FBSzVFLHFEQUtrQztBQUNsQyxxREFBb0U7QUFDcEUseUNBR3FCO0FBQ3JCLGdHQUtnRTtBQUNoRSxxRUFBd0U7QUFnQjNELFFBQUEsb0NBQW9DLEdBQUcsSUFBQSwwQkFBVSxFQUM1RCx1Q0FBdUMsRUFDdkMsS0FBSyxFQUFFLEtBQW9DLEVBQUUsV0FBVyxFQUFFLEVBQUU7SUFDMUQsTUFBTSxFQUFFLFNBQVMsRUFBRSxHQUFHLFdBQVcsQ0FBQTtJQUNqQyxNQUFNLGVBQWUsR0FBRyxJQUFBLHVDQUFrQixFQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUV2RCxNQUFNLFlBQVksR0FBRyxTQUFTLENBQUMsT0FBTyxDQUNwQyxpQ0FBeUIsQ0FBQyxhQUFhLENBQ3hDLENBQUE7SUFDRCxNQUFNLG1CQUFtQixHQUFHLElBQUEsMkNBQWtDLEVBQzVELFlBQWlDLENBQ2xDLENBQUE7SUFDRCxNQUFNLHNCQUFzQixHQUFHLG1CQUFtQixDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUE7SUFFMUUsTUFBTSxVQUFVLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FDbEMsMENBQXVCLENBQ3hCLENBQUE7SUFDRCxNQUFNLFdBQVcsR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLGVBQU8sQ0FBQyxJQUFJLENBY2pELENBQUE7SUFFRCxNQUFNLGdCQUFnQixHQUFHLE1BQU0sSUFBQSwwQ0FBcUIsRUFDbEQsU0FBUyxFQUNULGVBQWUsQ0FDaEIsQ0FBQTtJQUVELE1BQU0sa0JBQWtCLEdBQUcsS0FBSyxFQUM5QixjQUFzQixFQUN0QixV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
112
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb2x2ZS1vci1jcmVhdGUtcGhvbmUtYXV0aC1jdXN0b21lci1zdGVwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3dvcmtmbG93cy9zdGVwcy9yZXNvbHZlLW9yLWNyZWF0ZS1waG9uZS1hdXRoLWN1c3RvbWVyLXN0ZXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUVBQTRFO0FBRTVFLHFEQUtrQztBQUNsQyw0R0FHb0U7QUFDcEUsZ0dBS2dFO0FBQ2hFLHFFQUF3RTtBQWdCM0QsUUFBQSxvQ0FBb0MsR0FBRyxJQUFBLDBCQUFVLEVBQzVELHVDQUF1QyxFQUN2QyxLQUFLLEVBQUUsS0FBb0MsRUFBRSxXQUFXLEVBQUUsRUFBRTtJQUMxRCxNQUFNLEVBQUUsU0FBUyxFQUFFLEdBQUcsV0FBVyxDQUFBO0lBQ2pDLE1BQU0sZUFBZSxHQUFHLElBQUEsdUNBQWtCLEVBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBRXZELE1BQU0sVUFBVSxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQ2xDLDBDQUF1QixDQUN4QixDQUFBO0lBQ0QsTUFBTSxXQUFXLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxlQUFPLENBQUMsSUFBSSxDQWNqRCxDQUFBO0lBRUQsTUFBTSxnQkFBZ0IsR0FBRyxNQUFNLElBQUEsMENBQXFCLEVBQ2xELFNBQVMsRUFDVCxlQUFlLENBQ2hCLENBQUE7SUFFRCxNQUFNLGtCQUFrQixHQUFHLEtBQUssRUFDOUIsY0FBc0IsRUFDdEIsVUFBa0IsRUFDbEIsRUFBRTtRQUNGLE1BQU0sV0FBVyxDQUFDLG9CQUFvQixDQUFDO1lBQ3JDLEVBQUUsRUFBRSxjQUFjO1lBQ2xCLFlBQVksRUFBRSxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUU7U0FDMUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQyxDQUFBO0lBRUQsTUFBTSxlQUFlLEdBQUcsS0FBSyxFQUFFLFVBQWtCLEVBQUUsRUFBRTtRQUNuRCxN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
package/README.md CHANGED
@@ -314,13 +314,15 @@ Response:
314
314
  **Storefront flows**
315
315
 
316
316
  - **Password (unchanged):** `POST /auth/customer/emailpass/register` → `POST /store/customers` → optional `POST /store/customers/otp/send` + `verify` with `type: "email_verification"`.
317
- - **Email OTP (unified):** `POST /store/customers/otp/send` (`type: "email_auth"`) → `POST /store/customers/otp/verify` → customer is logged in immediately.
318
- - **Phone OTP (unified):** `POST /store/customers/otp/send` (`type: "phone_auth"`) → `POST /store/customers/otp/verify` → logged in immediately.
317
+ - **Email OTP (unified):** `POST /store/customers/otp/send` (`type: "email_auth"`) → `POST /store/customers/otp/verify` → customer is logged in immediately (creates account with **email only**).
318
+ - **Phone OTP (unified):** `POST /store/customers/otp/send` (`type: "phone_auth"`) → `POST /store/customers/otp/verify` → logged in immediately (creates account with **phone only**).
319
319
  - **Both methods:** Show a toggle such as “Continue with password” vs “Continue with email/SMS code” when `auth.email.methods` or `auth.phone.methods` includes `"otp"`.
320
320
 
321
+ > **OTP auth vs password registration:** `registration.identifier: "both"` still requires **email and phone** on password registration (`POST /auth/customer/emailpass/register` → `POST /store/customers`). OTP login/register is **channel-scoped**: whichever channel the user verifies (`email_auth` or `phone_auth`) is the only identifier required to create the account.
322
+
321
323
  > **Breaking change:** `/auth/customer/emailotp/*` and `/auth/customer/phoneotp/*` were removed. Use `/store/customers/otp/*` with `type: "email_auth"` or `type: "phone_auth"` instead.
322
324
 
323
- For phone-only stores use `registration.identifier: "phone"` with `auth.phone.methods: ["password", "otp"]` and `phone_auth: { channel: "sms" }`.
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.
324
326
 
325
327
  ### Store routes
326
328
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "customer-registration",
3
- "version": "0.0.128",
3
+ "version": "0.0.129",
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",