@dropins/storefront-auth 4.0.0-alpha-20260601092829 → 4.0.0-beta.4

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 (68) hide show
  1. package/CHANGELOG.md +22 -2
  2. package/api.js +173 -1
  3. package/api.js.map +1 -1
  4. package/chunks/components.js +4 -0
  5. package/chunks/components.js.map +1 -0
  6. package/containers/AuthCombine.js +1 -1
  7. package/containers/AuthCombine.js.map +1 -1
  8. package/containers/ResetPassword.js +1 -1
  9. package/containers/ResetPassword.js.map +1 -1
  10. package/containers/SignIn.js +1 -1
  11. package/containers/SignIn.js.map +1 -1
  12. package/containers/SignUp.js +1 -1
  13. package/containers/SignUp.js.map +1 -1
  14. package/containers/SuccessNotification.js +1 -1
  15. package/containers/SuccessNotification.js.map +1 -1
  16. package/containers/UpdatePassword.js +1 -1
  17. package/containers/UpdatePassword.js.map +1 -1
  18. package/package.json +1 -1
  19. package/render.js +1 -1
  20. package/render.js.map +1 -1
  21. package/chunks/Button.js +0 -4
  22. package/chunks/Button.js.map +0 -1
  23. package/chunks/RemoteShoppingAssistanceConsent.js +0 -4
  24. package/chunks/RemoteShoppingAssistanceConsent.js.map +0 -1
  25. package/chunks/RemoteShoppingAssistanceConsent2.js +0 -4
  26. package/chunks/RemoteShoppingAssistanceConsent2.js.map +0 -1
  27. package/chunks/ResetPasswordForm.js +0 -4
  28. package/chunks/ResetPasswordForm.js.map +0 -1
  29. package/chunks/SignInForm.js +0 -4
  30. package/chunks/SignInForm.js.map +0 -1
  31. package/chunks/SkeletonLoader.js +0 -4
  32. package/chunks/SkeletonLoader.js.map +0 -1
  33. package/chunks/acdl.js +0 -4
  34. package/chunks/acdl.js.map +0 -1
  35. package/chunks/confirmEmail.js +0 -14
  36. package/chunks/confirmEmail.js.map +0 -1
  37. package/chunks/createCustomerAddress.js +0 -60
  38. package/chunks/createCustomerAddress.js.map +0 -1
  39. package/chunks/focusOnEmptyPasswordField.js +0 -4
  40. package/chunks/focusOnEmptyPasswordField.js.map +0 -1
  41. package/chunks/getAdobeCommerceOptimizerData.js +0 -70
  42. package/chunks/getAdobeCommerceOptimizerData.js.map +0 -1
  43. package/chunks/getCustomerToken.js +0 -17
  44. package/chunks/getCustomerToken.js.map +0 -1
  45. package/chunks/index.js +0 -4
  46. package/chunks/index.js.map +0 -1
  47. package/chunks/index2.js +0 -4
  48. package/chunks/index2.js.map +0 -1
  49. package/chunks/index3.js +0 -4
  50. package/chunks/index3.js.map +0 -1
  51. package/chunks/network-error.js +0 -4
  52. package/chunks/network-error.js.map +0 -1
  53. package/chunks/requestPasswordResetEmail.js +0 -8
  54. package/chunks/requestPasswordResetEmail.js.map +0 -1
  55. package/chunks/resendConfirmationEmail.js +0 -8
  56. package/chunks/resendConfirmationEmail.js.map +0 -1
  57. package/chunks/resetPassword.js +0 -16
  58. package/chunks/resetPassword.js.map +0 -1
  59. package/chunks/revokeCustomerToken.js +0 -11
  60. package/chunks/revokeCustomerToken.js.map +0 -1
  61. package/chunks/setReCaptchaToken.js +0 -4
  62. package/chunks/setReCaptchaToken.js.map +0 -1
  63. package/chunks/simplifyTransformAttributesForm.js +0 -4
  64. package/chunks/simplifyTransformAttributesForm.js.map +0 -1
  65. package/chunks/transform-attributes-form.js +0 -4
  66. package/chunks/transform-attributes-form.js.map +0 -1
  67. package/chunks/usePasswordValidationMessage.js +0 -4
  68. package/chunks/usePasswordValidationMessage.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"simplifyTransformAttributesForm.js","sources":["/@dropins/storefront-auth/src/configs/defaultCreateUserConfigs.ts","/@dropins/storefront-auth/src/lib/simplifyTransformAttributesForm.ts"],"sourcesContent":["/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nexport const DEFAULT__SIGN_IN_EMAIL_FIELD = [\n {\n customUpperCode: 'email',\n code: 'email',\n default_value: '',\n entity_type: 'CUSTOMER',\n frontend_class: 'auth-sign-in-form__form__email',\n frontend_input: 'TEXT',\n is_required: true,\n multiline_count: 1,\n sort_order: 1,\n is_unique: false,\n label: 'Email',\n options: [],\n validateRules: [\n {\n name: 'INPUT_VALIDATION',\n value: 'email',\n },\n ],\n autocomplete: 'username',\n },\n];\n\nexport const DEFAULT__RESET_PASSWORD_EMAIL_FIELD: Record<\n string,\n string | boolean | unknown\n>[] = [\n {\n customUpperCode: 'email',\n code: 'email',\n default_value: '',\n entity_type: 'CUSTOMER',\n frontend_class: 'auth-reset-password-form__form__item',\n frontend_input: 'TEXT',\n is_required: true,\n is_unique: false,\n label: 'Email',\n options: [],\n validateRules: [\n {\n name: 'INPUT_VALIDATION',\n value: 'email',\n },\n ],\n autocomplete: 'username',\n },\n];\n\nexport const DEFAULT_SIGN_UP_FIELDS = [\n {\n customUpperCode: 'email',\n code: 'email',\n default_value: '',\n entity_type: 'CUSTOMER',\n frontend_class: '',\n frontend_input: 'TEXT',\n is_required: true,\n is_unique: false,\n label: 'Email',\n multiline_count: 1,\n sort_order: 1,\n options: [],\n validateRules: [\n {\n name: 'INPUT_VALIDATION',\n value: 'email',\n },\n ],\n autocomplete: 'username',\n },\n {\n customUpperCode: 'firstname',\n code: 'firstname',\n default_value: '',\n entity_type: 'CUSTOMER',\n frontend_class: '',\n frontend_input: 'TEXT',\n is_required: true,\n is_unique: false,\n label: 'First name',\n multiline_count: 1,\n sort_order: 2,\n options: [],\n },\n {\n customUpperCode: 'lastname',\n code: 'lastname',\n default_value: '',\n entity_type: 'CUSTOMER',\n frontend_class: '',\n frontend_input: 'TEXT',\n is_required: false,\n is_unique: false,\n label: 'Last name',\n multiline_count: 1,\n sort_order: 3,\n options: [],\n },\n];\n\nexport const DEFAULT_INPUTS_PROPS: Record<string, string | ''> = {\n dob: '',\n email: '',\n firstname: '',\n gender: '',\n lastname: '',\n middlename: '',\n password: '',\n prefix: '',\n suffix: '',\n taxvat: '',\n};\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { transformAttributesForm } from '../data/transforms';\n\nexport const simplifyTransformAttributesForm = (defaultSignUpFields: any) => {\n if (!defaultSignUpFields?.length) return [];\n\n const params = {\n data: {\n attributesForm: { items: defaultSignUpFields },\n },\n };\n\n return transformAttributesForm(params);\n};\n"],"names":["DEFAULT__SIGN_IN_EMAIL_FIELD","DEFAULT__RESET_PASSWORD_EMAIL_FIELD","DEFAULT_SIGN_UP_FIELDS","simplifyTransformAttributesForm","defaultSignUpFields","transformAttributesForm"],"mappings":"8CAiBO,MAAMA,EAA+B,CAC1C,CACE,gBAAiB,QACjB,KAAM,QACN,cAAe,GACf,YAAa,WACb,eAAgB,iCAChB,eAAgB,OAChB,YAAa,GACb,gBAAiB,EACjB,WAAY,EACZ,UAAW,GACX,MAAO,QACP,QAAS,CAAA,EACT,cAAe,CACb,CACE,KAAM,mBACN,MAAO,OAAA,CACT,EAEF,aAAc,UAAA,CAElB,EAEaC,EAGP,CACJ,CACE,gBAAiB,QACjB,KAAM,QACN,cAAe,GACf,YAAa,WACb,eAAgB,uCAChB,eAAgB,OAChB,YAAa,GACb,UAAW,GACX,MAAO,QACP,QAAS,CAAA,EACT,cAAe,CACb,CACE,KAAM,mBACN,MAAO,OAAA,CACT,EAEF,aAAc,UAAA,CAElB,EAEaC,EAAyB,CACpC,CACE,gBAAiB,QACjB,KAAM,QACN,cAAe,GACf,YAAa,WACb,eAAgB,GAChB,eAAgB,OAChB,YAAa,GACb,UAAW,GACX,MAAO,QACP,gBAAiB,EACjB,WAAY,EACZ,QAAS,CAAA,EACT,cAAe,CACb,CACE,KAAM,mBACN,MAAO,OAAA,CACT,EAEF,aAAc,UAAA,EAEhB,CACE,gBAAiB,YACjB,KAAM,YACN,cAAe,GACf,YAAa,WACb,eAAgB,GAChB,eAAgB,OAChB,YAAa,GACb,UAAW,GACX,MAAO,aACP,gBAAiB,EACjB,WAAY,EACZ,QAAS,CAAA,CAAC,EAEZ,CACE,gBAAiB,WACjB,KAAM,WACN,cAAe,GACf,YAAa,WACb,eAAgB,GAChB,eAAgB,OAChB,YAAa,GACb,UAAW,GACX,MAAO,YACP,gBAAiB,EACjB,WAAY,EACZ,QAAS,CAAA,CAAC,CAEd,ECjGaC,EAAmCC,GACzCA,GAAA,MAAAA,EAAqB,OAQnBC,EANQ,CACb,KAAM,CACJ,eAAgB,CAAE,MAAOD,CAAA,CAAoB,CAC/C,CAGmC,EARI,CAAA"}
@@ -1,4 +0,0 @@
1
- /*! Copyright 2026 Adobe
2
- All Rights Reserved. */
3
- const _=t=>t.replace(/_([a-z])/g,(n,e)=>e.toUpperCase()),p=t=>t.replace(/([A-Z])/g,n=>`_${n.toLowerCase()}`),m=(t,n,e)=>{const s=["string","boolean","number"],a=n==="camelCase"?_:p;return Array.isArray(t)?t.map(o=>s.includes(typeof o)||o===null?o:typeof o=="object"?m(o,n,e):o):t!==null&&typeof t=="object"?Object.entries(t).reduce((o,[i,c])=>{const r=e&&e[i]?e[i]:a(i);return o[r]=s.includes(typeof c)||c===null?c:m(c,n,e),o},{}):t},b=t=>{let n=[];for(const e of t)if(!(e.frontend_input!=="MULTILINE"||e.multiline_count<2))for(let s=2;s<=e.multiline_count;s++){const a={...e,is_required:!1,name:`${e.code}_multiline_${s}`,code:`${e.code}_multiline_${s}`,id:`${e.code}_multiline_${s}`};n.push(a)}return n},C=t=>{var o,i,c;const n=((i=(o=t==null?void 0:t.data)==null?void 0:o.attributesForm)==null?void 0:i.items)||[];if(!n.length)return[];const e=(c=n.filter(r=>{var u;return!((u=r.frontend_input)!=null&&u.includes("HIDDEN"))}))==null?void 0:c.map(({code:r,...u})=>{const l=r!=="country_id"?r:"country_code";return{...u,name:l,id:l,code:l}}),s=b(e);return e.concat(s).map(r=>{var d;const u=r.code==="firstname"?"firstName":r.code==="lastname"?"lastName":_(r.code),l=(d=r.options)==null?void 0:d.map(f=>({isDefault:f.is_default,text:f.label,value:f.value}));return m({...r,options:l,customUpperCode:u},"camelCase",{frontend_input:"fieldType",frontend_class:"className",is_required:"required",sort_order:"orderNumber"})}).sort((r,u)=>r.orderNumber-u.orderNumber)};export{m as c,C as t};
4
- //# sourceMappingURL=transform-attributes-form.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"transform-attributes-form.js","sources":["/@dropins/storefront-auth/src/lib/convertCase.ts","/@dropins/storefront-auth/src/data/transforms/transform-attributes-form.ts"],"sourcesContent":["/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nexport const convertToCamelCase = (key: string): string => {\n return key.replace(/_([a-z])/g, (_, letter) => letter.toUpperCase());\n};\n\nexport const convertToSnakeCase = (key: string): string => {\n return key.replace(/([A-Z])/g, (letter) => `_${letter.toLowerCase()}`);\n};\n\nexport const convertKeysCase = (\n data: any,\n type: 'snakeCase' | 'camelCase',\n dictionary?: Record<string, string>\n): any => {\n const typeList = ['string', 'boolean', 'number'];\n const callback =\n type === 'camelCase' ? convertToCamelCase : convertToSnakeCase;\n\n if (Array.isArray(data)) {\n return data.map((element) => {\n if (typeList.includes(typeof element) || element === null) return element;\n\n if (typeof element === 'object') {\n return convertKeysCase(element, type, dictionary);\n }\n return element;\n });\n }\n\n if (data !== null && typeof data === 'object') {\n return Object.entries(data).reduce((acc, [key, value]) => {\n const newKey =\n dictionary && dictionary[key] ? dictionary[key] : callback(key);\n acc[newKey] =\n typeList.includes(typeof value) || value === null\n ? value\n : convertKeysCase(value, type, dictionary);\n return acc;\n }, {} as Record<string, unknown>);\n }\n\n return data;\n};\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport {\n GetAttributesFormResponse,\n ResponseAttributesFormItemsProps,\n} from '@/auth/types';\nimport { AttributesFormModel } from '../models';\nimport { convertKeysCase, convertToCamelCase } from '@/auth/lib/convertCase';\n\nexport const cloneArrayIfExists = (\n fields: ResponseAttributesFormItemsProps[]\n) => {\n let multilineItems: any = [];\n\n for (const element of fields) {\n if (element.frontend_input !== 'MULTILINE' || element.multiline_count < 2) {\n continue;\n }\n\n for (let i = 2; i <= element.multiline_count; i++) {\n const newItem = {\n ...element,\n is_required: false,\n name: `${element.code}_multiline_${i}`,\n code: `${element.code}_multiline_${i}`,\n id: `${element.code}_multiline_${i}`,\n };\n\n multilineItems.push(newItem);\n }\n }\n\n return multilineItems;\n};\n\nexport const transformAttributesForm = (\n response: GetAttributesFormResponse\n): AttributesFormModel[] => {\n const items = response?.data?.attributesForm?.items || [];\n\n if (!items.length) return [];\n\n const fields = items\n .filter((el) => !el.frontend_input?.includes('HIDDEN'))\n ?.map(({ code, ...other }) => {\n const isDefaultCode = code !== 'country_id' ? code : 'country_code';\n\n return {\n ...other,\n name: isDefaultCode,\n id: isDefaultCode,\n code: isDefaultCode,\n };\n });\n\n const multilineItems = cloneArrayIfExists(fields as any);\n\n const attributesConfig = fields\n .concat(multilineItems)\n .map((item) => {\n const customUpperCode =\n item.code === 'firstname'\n ? 'firstName'\n : item.code === 'lastname'\n ? 'lastName'\n : convertToCamelCase(item.code);\n\n const options = item.options?.map((el) => {\n return {\n isDefault: el.is_default,\n text: el.label,\n value: el.value,\n };\n });\n\n return convertKeysCase(\n { ...item, options, customUpperCode },\n 'camelCase',\n {\n frontend_input: 'fieldType',\n frontend_class: 'className',\n is_required: 'required',\n sort_order: 'orderNumber',\n }\n );\n })\n .sort(\n (a: AttributesFormModel, b: AttributesFormModel) =>\n a.orderNumber - b.orderNumber\n );\n\n return attributesConfig;\n};\n"],"names":["convertToCamelCase","key","_","letter","convertToSnakeCase","convertKeysCase","data","type","dictionary","typeList","callback","element","acc","value","newKey","cloneArrayIfExists","fields","multilineItems","i","newItem","transformAttributesForm","response","_a","_b","_c","items","el","code","other","isDefaultCode","item","customUpperCode","options","a","b"],"mappings":"AAiBO,MAAMA,EAAsBC,GAC1BA,EAAI,QAAQ,YAAa,CAACC,EAAGC,IAAWA,EAAO,aAAa,EAGxDC,EAAsBH,GAC1BA,EAAI,QAAQ,WAAaE,GAAW,IAAIA,EAAO,YAAA,CAAa,EAAE,EAG1DE,EAAkB,CAC7BC,EACAC,EACAC,IACQ,CACR,MAAMC,EAAW,CAAC,SAAU,UAAW,QAAQ,EACzCC,EACJH,IAAS,YAAcP,EAAqBI,EAE9C,OAAI,MAAM,QAAQE,CAAI,EACbA,EAAK,IAAKK,GACXF,EAAS,SAAS,OAAOE,CAAO,GAAKA,IAAY,KAAaA,EAE9D,OAAOA,GAAY,SACdN,EAAgBM,EAASJ,EAAMC,CAAU,EAE3CG,CACR,EAGCL,IAAS,MAAQ,OAAOA,GAAS,SAC5B,OAAO,QAAQA,CAAI,EAAE,OAAO,CAACM,EAAK,CAACX,EAAKY,CAAK,IAAM,CACxD,MAAMC,EACJN,GAAcA,EAAWP,CAAG,EAAIO,EAAWP,CAAG,EAAIS,EAAST,CAAG,EAChE,OAAAW,EAAIE,CAAM,EACRL,EAAS,SAAS,OAAOI,CAAK,GAAKA,IAAU,KACzCA,EACAR,EAAgBQ,EAAON,EAAMC,CAAU,EACtCI,CACT,EAAG,CAAA,CAA6B,EAG3BN,CACT,EClCaS,EACXC,GACG,CACH,IAAIC,EAAsB,CAAA,EAE1B,UAAWN,KAAWK,EACpB,GAAI,EAAAL,EAAQ,iBAAmB,aAAeA,EAAQ,gBAAkB,GAIxE,QAASO,EAAI,EAAGA,GAAKP,EAAQ,gBAAiBO,IAAK,CACjD,MAAMC,EAAU,CACd,GAAGR,EACH,YAAa,GACb,KAAM,GAAGA,EAAQ,IAAI,cAAcO,CAAC,GACpC,KAAM,GAAGP,EAAQ,IAAI,cAAcO,CAAC,GACpC,GAAI,GAAGP,EAAQ,IAAI,cAAcO,CAAC,EAAA,EAGpCD,EAAe,KAAKE,CAAO,CAC7B,CAGF,OAAOF,CACT,EAEaG,EACXC,GAC0B,CDnCrB,IAAAC,EAAAC,EAAAC,ECoCL,MAAMC,IAAQF,GAAAD,EAAAD,GAAA,YAAAA,EAAU,OAAV,YAAAC,EAAgB,iBAAhB,YAAAC,EAAgC,QAAS,CAAA,EAEvD,GAAI,CAACE,EAAM,OAAQ,MAAO,CAAA,EAE1B,MAAMT,GAASQ,EAAAC,EACZ,OAAQC,GAAA,CDzCN,IAAAJ,ECyCa,SAACA,EAAAI,EAAG,iBAAH,MAAAJ,EAAmB,SAAS,WAAS,IADzC,YAAAE,EAEX,IAAI,CAAC,CAAE,KAAAG,EAAM,GAAGC,KAAY,CAC5B,MAAMC,EAAgBF,IAAS,aAAeA,EAAO,eAErD,MAAO,CACL,GAAGC,EACH,KAAMC,EACN,GAAIA,EACJ,KAAMA,CAAA,CAEV,GAEIZ,EAAiBF,EAAmBC,CAAa,EAoCvD,OAlCyBA,EACtB,OAAOC,CAAc,EACrB,IAAKa,GAAS,CDzDZ,IAAAR,EC0DD,MAAMS,EACJD,EAAK,OAAS,YACV,YACAA,EAAK,OAAS,WACd,WACA9B,EAAmB8B,EAAK,IAAI,EAE5BE,GAAUV,EAAAQ,EAAK,UAAL,YAAAR,EAAc,IAAKI,IAC1B,CACL,UAAWA,EAAG,WACd,KAAMA,EAAG,MACT,MAAOA,EAAG,KAAA,IAId,OAAOrB,EACL,CAAE,GAAGyB,EAAM,QAAAE,EAAS,gBAAAD,CAAA,EACpB,YACA,CACE,eAAgB,YAChB,eAAgB,YAChB,YAAa,WACb,WAAY,aAAA,CACd,CAEJ,CAAC,EACA,KACC,CAACE,EAAwBC,IACvBD,EAAE,YAAcC,EAAE,WAAA,CAI1B"}
@@ -1,4 +0,0 @@
1
- /*! Copyright 2026 Adobe
2
- All Rights Reserved. */
3
- import"@dropins/tools/event-bus.js";import"@dropins/tools/recaptcha.js";import{g as S}from"./getAdobeCommerceOptimizerData.js";import{useState as l,useEffect as u,useMemo as C}from"@dropins/tools/preact-hooks.js";import{useText as A}from"@dropins/tools/i18n.js";const x=()=>{const[e,s]=l(!1),[t,o]=l(null),[a,i]=l(null),c=n=>{const{minLength:r,requiredCharacterClasses:g,createAccountConfirmation:h,shoppingAssistanceEnabled:m,shoppingAssistanceCheckboxTitle:f,shoppingAssistanceCheckboxTooltip:L}=n;o({minLength:r,requiredCharacterClasses:g}),s(h),i({shoppingAssistanceEnabled:m,shoppingAssistanceCheckboxTitle:f,shoppingAssistanceCheckboxTooltip:L})};return u(()=>{const n=sessionStorage.getItem("storeConfig");let r=null;try{r=n?JSON.parse(n):null}catch{r=null}if(r){c(r);return}S().then(g=>{g&&(sessionStorage.setItem("storeConfig",JSON.stringify(g)),c(g))})},[]),{passwordConfigs:t,isEmailConfirmationRequired:e,remoteShoppingAssistanceConfigs:a}},p=(e,s)=>{if(s<=1)return!0;const t=/[0-9]/.test(e)?1:0,o=/[a-z]/.test(e)?1:0,a=/[A-Z]/.test(e)?1:0,i=/[^a-zA-Z0-9\s]/.test(e)?1:0;return t+o+a+i>=s},E=({passwordConfigs:e,isClickSubmit:s,password:t})=>{const o=A({messageLengthPassword:"Auth.PasswordValidationMessage.messageLengthPassword"}),[a,i]=l("pending");u(()=>{if(!e)return;const n=p(t,e.requiredCharacterClasses);s&&t.length>0?i(n?"success":"error"):s&&t.length===0?i("pending"):i(n?"success":"pending")},[s,e,t]);const c=C(()=>{var r;if(!e)return;const n={status:"pending",icon:"pending",message:(r=o.messageLengthPassword)==null?void 0:r.replace("{minLength}",`${e.minLength}`)};return t.length&&t.length>=e.minLength?{...n,icon:"success",status:"success"}:t.length&&t.length<e.minLength?s?{...n,icon:"error",status:"error"}:{...n,icon:"pending",status:"pending"}:n},[e,o.messageLengthPassword,t==null?void 0:t.length,s]);return{isValidUniqueSymbols:a,defaultLengthMessage:c}};export{E as a,x as u,p as v};
4
- //# sourceMappingURL=usePasswordValidationMessage.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"usePasswordValidationMessage.js","sources":["/@dropins/storefront-auth/src/hooks/api/useGetStoreConfigs.tsx","/@dropins/storefront-auth/src/lib/validationUniqueSymbolsPassword.ts","/@dropins/storefront-auth/src/hooks/components/usePasswordValidationMessage.tsx"],"sourcesContent":["/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2026 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { getStoreConfig } from '@/auth/api';\nimport { useEffect, useState } from 'preact/hooks';\nimport { StoreConfigModel } from '../../data/models';\n\nexport const useGetStoreConfigs = () => {\n const [isEmailConfirmationRequired, setIsEmailConfirmationRequired] =\n useState(false);\n const [passwordConfigs, setPasswordConfigs] = useState<{\n minLength: number;\n requiredCharacterClasses: number;\n } | null>(null);\n const [remoteShoppingAssistanceConfigs, setRemoteShoppingAssistanceConfigs] =\n useState<{\n shoppingAssistanceEnabled: boolean;\n shoppingAssistanceCheckboxTitle: string;\n shoppingAssistanceCheckboxTooltip: string;\n } | null>(null);\n\n const applyStoreConfig = (config: StoreConfigModel) => {\n const {\n minLength,\n requiredCharacterClasses,\n createAccountConfirmation,\n shoppingAssistanceEnabled,\n shoppingAssistanceCheckboxTitle,\n shoppingAssistanceCheckboxTooltip,\n } = config;\n\n setPasswordConfigs({\n minLength,\n requiredCharacterClasses,\n });\n\n setIsEmailConfirmationRequired(createAccountConfirmation);\n\n setRemoteShoppingAssistanceConfigs({\n shoppingAssistanceEnabled,\n shoppingAssistanceCheckboxTitle,\n shoppingAssistanceCheckboxTooltip,\n });\n };\n\n useEffect(() => {\n const storeConfigString = sessionStorage.getItem('storeConfig');\n let cachedStoreConfig: StoreConfigModel | null = null;\n\n try {\n cachedStoreConfig = storeConfigString\n ? JSON.parse(storeConfigString)\n : null;\n } catch {\n cachedStoreConfig = null;\n }\n\n if (cachedStoreConfig) {\n applyStoreConfig(cachedStoreConfig);\n return;\n }\n\n getStoreConfig().then((response) => {\n if (!response) return;\n\n sessionStorage.setItem('storeConfig', JSON.stringify(response));\n applyStoreConfig(response);\n });\n }, []);\n\n return {\n passwordConfigs,\n isEmailConfirmationRequired,\n remoteShoppingAssistanceConfigs,\n };\n};\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nexport const validationUniqueSymbolsPassword = (\n password: string,\n uniqueSymbolsCount: number\n) => {\n if (uniqueSymbolsCount <= 1) return true;\n\n const numbers = /[0-9]/.test(password) ? 1 : 0;\n const lowerCaseLetter = /[a-z]/.test(password) ? 1 : 0;\n const upperCaseLetter = /[A-Z]/.test(password) ? 1 : 0;\n const specialSymbols = /[^a-zA-Z0-9\\s]/.test(password) ? 1 : 0;\n\n return (\n numbers + lowerCaseLetter + upperCaseLetter + specialSymbols >=\n uniqueSymbolsCount\n );\n};\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { validationUniqueSymbolsPassword } from '@/auth/lib/validationUniqueSymbolsPassword';\nimport { useEffect, useMemo, useState } from 'preact/hooks';\nimport { ValidateLengthConfigProps, statusTypes } from '@/auth/types';\nimport { useText } from '@adobe-commerce/elsie/i18n';\n\ninterface UsePasswordValidationMessageProps {\n passwordConfigs: {\n minLength: number;\n requiredCharacterClasses: number;\n } | null;\n isClickSubmit: boolean;\n password: string;\n}\n\nexport const usePasswordValidationMessage = ({\n passwordConfigs,\n isClickSubmit,\n password,\n}: UsePasswordValidationMessageProps) => {\n const translations = useText({\n messageLengthPassword:\n 'Auth.PasswordValidationMessage.messageLengthPassword',\n });\n\n const [isValidUniqueSymbols, setIsValidUniqueSymbols] =\n useState<statusTypes>('pending');\n\n useEffect(() => {\n if (!passwordConfigs) return;\n\n const result = validationUniqueSymbolsPassword(\n password,\n passwordConfigs.requiredCharacterClasses\n );\n\n if (isClickSubmit && password.length > 0) {\n result\n ? setIsValidUniqueSymbols('success')\n : setIsValidUniqueSymbols('error');\n } else if (isClickSubmit && password.length === 0) {\n setIsValidUniqueSymbols('pending');\n } else {\n result\n ? setIsValidUniqueSymbols('success')\n : setIsValidUniqueSymbols('pending');\n }\n }, [isClickSubmit, passwordConfigs, password]);\n\n const defaultLengthMessage: ValidateLengthConfigProps | undefined =\n useMemo(() => {\n if (!passwordConfigs) return;\n\n const defaultMessage: ValidateLengthConfigProps = {\n status: 'pending',\n icon: 'pending',\n message: translations.messageLengthPassword?.replace(\n '{minLength}',\n `${passwordConfigs.minLength}`\n ),\n };\n\n if (password.length && password.length >= passwordConfigs.minLength) {\n return { ...defaultMessage, icon: 'success', status: 'success' };\n }\n\n if (password.length && password.length < passwordConfigs.minLength) {\n return isClickSubmit\n ? { ...defaultMessage, icon: 'error', status: 'error' }\n : { ...defaultMessage, icon: 'pending', status: 'pending' };\n }\n\n return defaultMessage;\n }, [\n passwordConfigs,\n translations.messageLengthPassword,\n password?.length,\n isClickSubmit,\n ]);\n\n return { isValidUniqueSymbols, defaultLengthMessage };\n};\n"],"names":["useGetStoreConfigs","isEmailConfirmationRequired","setIsEmailConfirmationRequired","useState","passwordConfigs","setPasswordConfigs","remoteShoppingAssistanceConfigs","setRemoteShoppingAssistanceConfigs","applyStoreConfig","config","minLength","requiredCharacterClasses","createAccountConfirmation","shoppingAssistanceEnabled","shoppingAssistanceCheckboxTitle","shoppingAssistanceCheckboxTooltip","useEffect","storeConfigString","cachedStoreConfig","getStoreConfig","response","validationUniqueSymbolsPassword","password","uniqueSymbolsCount","numbers","lowerCaseLetter","upperCaseLetter","specialSymbols","usePasswordValidationMessage","isClickSubmit","translations","useText","isValidUniqueSymbols","setIsValidUniqueSymbols","result","defaultLengthMessage","useMemo","defaultMessage","_a"],"mappings":"sQAqBO,MAAMA,EAAqB,IAAM,CACtC,KAAM,CAACC,EAA6BC,CAA8B,EAChEC,EAAS,EAAK,EACV,CAACC,EAAiBC,CAAkB,EAAIF,EAGpC,IAAI,EACR,CAACG,EAAiCC,CAAkC,EACxEJ,EAIU,IAAI,EAEVK,EAAoBC,GAA6B,CACrD,KAAM,CACJ,UAAAC,EACA,yBAAAC,EACA,0BAAAC,EACA,0BAAAC,EACA,gCAAAC,EACA,kCAAAC,CAAA,EACEN,EAEJJ,EAAmB,CACjB,UAAAK,EACA,yBAAAC,CAAA,CACD,EAEDT,EAA+BU,CAAyB,EAExDL,EAAmC,CACjC,0BAAAM,EACA,gCAAAC,EACA,kCAAAC,CAAA,CACD,CACH,EAEA,OAAAC,EAAU,IAAM,CACd,MAAMC,EAAoB,eAAe,QAAQ,aAAa,EAC9D,IAAIC,EAA6C,KAEjD,GAAI,CACFA,EAAoBD,EAChB,KAAK,MAAMA,CAAiB,EAC5B,IACN,MAAQ,CACNC,EAAoB,IACtB,CAEA,GAAIA,EAAmB,CACrBV,EAAiBU,CAAiB,EAClC,MACF,CAEAC,EAAA,EAAiB,KAAMC,GAAa,CAC7BA,IAEL,eAAe,QAAQ,cAAe,KAAK,UAAUA,CAAQ,CAAC,EAC9DZ,EAAiBY,CAAQ,EAC3B,CAAC,CACH,EAAG,CAAA,CAAE,EAEE,CACL,gBAAAhB,EACA,4BAAAH,EACA,gCAAAK,CAAA,CAEJ,ECxEae,EAAkC,CAC7CC,EACAC,IACG,CACH,GAAIA,GAAsB,EAAG,MAAO,GAEpC,MAAMC,EAAU,QAAQ,KAAKF,CAAQ,EAAI,EAAI,EACvCG,EAAkB,QAAQ,KAAKH,CAAQ,EAAI,EAAI,EAC/CI,EAAkB,QAAQ,KAAKJ,CAAQ,EAAI,EAAI,EAC/CK,EAAiB,iBAAiB,KAAKL,CAAQ,EAAI,EAAI,EAE7D,OACEE,EAAUC,EAAkBC,EAAkBC,GAC9CJ,CAEJ,ECDaK,EAA+B,CAAC,CAC3C,gBAAAxB,EACA,cAAAyB,EACA,SAAAP,CACF,IAAyC,CACvC,MAAMQ,EAAeC,EAAQ,CAC3B,sBACE,sDAAA,CACH,EAEK,CAACC,EAAsBC,CAAuB,EAClD9B,EAAsB,SAAS,EAEjCa,EAAU,IAAM,CACd,GAAI,CAACZ,EAAiB,OAEtB,MAAM8B,EAASb,EACbC,EACAlB,EAAgB,wBAAA,EAGdyB,GAAiBP,EAAS,OAAS,EAEjCW,EADJC,EAC4B,UACA,OADS,EAE5BL,GAAiBP,EAAS,SAAW,EAC9CW,EAAwB,SAAS,EAG7BA,EADJC,EAC4B,UACA,SADS,CAGzC,EAAG,CAACL,EAAezB,EAAiBkB,CAAQ,CAAC,EAE7C,MAAMa,EACJC,EAAQ,IAAM,OACZ,GAAI,CAAChC,EAAiB,OAEtB,MAAMiC,EAA4C,CAChD,OAAQ,UACR,KAAM,UACN,SAASC,EAAAR,EAAa,wBAAb,YAAAQ,EAAoC,QAC3C,cACA,GAAGlC,EAAgB,SAAS,GAC9B,EAGF,OAAIkB,EAAS,QAAUA,EAAS,QAAUlB,EAAgB,UACjD,CAAE,GAAGiC,EAAgB,KAAM,UAAW,OAAQ,SAAA,EAGnDf,EAAS,QAAUA,EAAS,OAASlB,EAAgB,UAChDyB,EACH,CAAE,GAAGQ,EAAgB,KAAM,QAAS,OAAQ,OAAA,EAC5C,CAAE,GAAGA,EAAgB,KAAM,UAAW,OAAQ,SAAA,EAG7CA,CACT,EAAG,CACDjC,EACA0B,EAAa,sBACbR,GAAA,YAAAA,EAAU,OACVO,CAAA,CACD,EAEH,MAAO,CAAE,qBAAAG,EAAsB,qBAAAG,CAAA,CACjC"}