@nuskin/shipping-address-form 1.7.9 → 1.7.10-6614-dev.1

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.
@@ -22,6 +22,7 @@ const useAddressValidationBase = ({
22
22
  requestKey,
23
23
  requestUrl,
24
24
  requestParams,
25
+ requestBody,
25
26
  transformResponse,
26
27
  effectDeps = [],
27
28
  // NGE1-6437: a failed call must surface immediately, not auto-retry a duplicate request to Smarty
@@ -83,7 +84,9 @@ const useAddressValidationBase = ({
83
84
  controller,
84
85
  settled: false,
85
86
  promise: (async () => {
86
- const networkResponse = await _axios.default.get(requestUrl, {
87
+ const networkResponse = requestBody ? await _axios.default.post(requestUrl, requestBody, {
88
+ signal: controller.signal
89
+ }) : await _axios.default.get(requestUrl, {
87
90
  params: requestParams,
88
91
  signal: controller.signal
89
92
  });
@@ -1 +1 @@
1
- {"version":3,"file":"useAddressValidationBase.js","names":["_react","require","_axios","_interopRequireDefault","_requestCache","_requestRateLimiter","_inFlightRequests","e","__esModule","default","RATE_LIMIT_ERROR_CODE","useAddressValidationBase","isEnabled","cacheNamespace","cacheTtlMs","rateLimitNamespace","rateLimitConfig","requestKey","requestUrl","requestParams","transformResponse","effectDeps","maxRetries","requestCycleKey","JSON","stringify","suggestions","setSuggestions","useState","loading","setLoading","error","setError","rateLimited","setRateLimited","activeCycleKey","setActiveCycleKey","isPendingCycleChange","useEffect","cancelled","activeRequest","activeRequestKey","validateAddress","lastError","attempt","cached","getCachedValue","rateLimitStatus","checkRateLimit","allowed","existingRequest","getInFlightRequest","response","retainInFlightRequest","promise","controller","AbortController","request","settled","networkResponse","axios","get","params","signal","setInFlightRequest","settleInFlightRequest","transformedSuggestions","data","setCachedValue","undefined","err","name","code","releaseInFlightRequest","_lastError$response","message","_activeRequest","_activeRequest2","subscribers","abort","Boolean","_default","exports"],"sources":["../../../src/addressLookup/hooks/useAddressValidationBase.jsx"],"sourcesContent":["import { useState, useEffect } from 'react';\nimport axios from 'axios';\nimport { getCachedValue, setCachedValue } from '../utils/requestCache';\nimport { checkRateLimit } from '../utils/requestRateLimiter';\nimport {\n getInFlightRequest,\n setInFlightRequest,\n retainInFlightRequest,\n releaseInFlightRequest,\n settleInFlightRequest\n} from '../utils/inFlightRequests';\n\n// Not rendered directly: useSmartyServiceErrors resolves the displayed text\n// from fieldLabels.rateLimited. This is only a truthy signal for `error`.\nconst RATE_LIMIT_ERROR_CODE = 'rate-limited';\n\nconst useAddressValidationBase = ({\n isEnabled,\n cacheNamespace = null,\n cacheTtlMs = null,\n rateLimitNamespace,\n rateLimitConfig,\n requestKey,\n requestUrl,\n requestParams,\n transformResponse,\n effectDeps = [],\n // NGE1-6437: a failed call must surface immediately, not auto-retry a duplicate request to Smarty\n maxRetries = 0\n}) => {\n const requestCycleKey = JSON.stringify({\n isEnabled,\n effectDeps\n });\n const [suggestions, setSuggestions] = useState([]);\n const [loading, setLoading] = useState(false);\n const [error, setError] = useState(null);\n const [rateLimited, setRateLimited] = useState(false);\n const [activeCycleKey, setActiveCycleKey] = useState(requestCycleKey);\n\n const isPendingCycleChange = activeCycleKey !== requestCycleKey;\n\n useEffect(() => {\n setActiveCycleKey(requestCycleKey);\n\n if (!isEnabled) {\n setRateLimited(false);\n return;\n }\n\n let cancelled = false;\n let activeRequest = null;\n let activeRequestKey = null;\n\n const validateAddress = async () => {\n setLoading(true);\n setError(null);\n setSuggestions([]);\n\n let lastError = null;\n for (let attempt = 0; attempt <= maxRetries; attempt++) {\n try {\n const cached = cacheNamespace ? getCachedValue(cacheNamespace, requestKey) : null;\n if (cached) {\n if (!cancelled) {\n setRateLimited(false);\n setSuggestions(cached.suggestions);\n setLoading(false);\n }\n return;\n }\n\n const rateLimitStatus = checkRateLimit(rateLimitNamespace, rateLimitConfig);\n if (!rateLimitStatus.allowed) {\n setRateLimited(true);\n setError(RATE_LIMIT_ERROR_CODE);\n setLoading(false);\n return;\n }\n\n activeRequestKey = requestKey;\n const existingRequest = getInFlightRequest(activeRequestKey);\n let response;\n\n if (existingRequest) {\n activeRequest = retainInFlightRequest(activeRequestKey);\n ({ response } = await activeRequest.promise);\n } else {\n const controller = new AbortController();\n const request = {\n controller,\n settled: false,\n promise: (async () => {\n const networkResponse = await axios.get(requestUrl, {\n params: requestParams,\n signal: controller.signal\n });\n return { response: networkResponse };\n })()\n };\n\n setInFlightRequest(activeRequestKey, request);\n activeRequest = retainInFlightRequest(activeRequestKey);\n\n try {\n ({ response } = await activeRequest.promise);\n } finally {\n settleInFlightRequest(activeRequestKey, activeRequest);\n }\n }\n\n if (cancelled) {\n return;\n }\n\n const transformedSuggestions = transformResponse(response.data);\n if (cacheNamespace) {\n setCachedValue(cacheNamespace, requestKey, {\n suggestions: transformedSuggestions\n }, cacheTtlMs || undefined);\n }\n\n setRateLimited(false);\n setSuggestions(transformedSuggestions);\n setLoading(false);\n return;\n } catch (err) {\n if (cancelled || err.name === 'CanceledError' || err.code === 'ERR_CANCELED') {\n return;\n }\n lastError = err;\n // Release the failed entry so the retry issues a fresh request instead of re-awaiting the rejection.\n if (activeRequestKey && activeRequest) {\n releaseInFlightRequest(activeRequestKey, activeRequest);\n }\n activeRequestKey = null;\n activeRequest = null;\n }\n }\n\n if (!cancelled && lastError) {\n setRateLimited(false);\n setError(lastError.response?.data?.message || lastError.message);\n }\n\n if (!cancelled) {\n setLoading(false);\n }\n };\n\n validateAddress();\n\n return () => {\n cancelled = true;\n if (activeRequestKey && activeRequest) {\n releaseInFlightRequest(activeRequestKey, activeRequest);\n }\n if (activeRequest?.subscribers === 0 && !activeRequest?.settled) {\n activeRequest.controller.abort();\n }\n };\n }, [isEnabled, requestCycleKey]);\n\n return {\n suggestions: isPendingCycleChange ? [] : suggestions,\n loading: isPendingCycleChange ? Boolean(isEnabled) : loading,\n error: isPendingCycleChange ? null : error,\n rateLimited: isPendingCycleChange ? false : rateLimited\n };\n};\n\nexport default useAddressValidationBase;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"useAddressValidationBase.js","names":["_react","require","_axios","_interopRequireDefault","_requestCache","_requestRateLimiter","_inFlightRequests","e","__esModule","default","RATE_LIMIT_ERROR_CODE","useAddressValidationBase","isEnabled","cacheNamespace","cacheTtlMs","rateLimitNamespace","rateLimitConfig","requestKey","requestUrl","requestParams","requestBody","transformResponse","effectDeps","maxRetries","requestCycleKey","JSON","stringify","suggestions","setSuggestions","useState","loading","setLoading","error","setError","rateLimited","setRateLimited","activeCycleKey","setActiveCycleKey","isPendingCycleChange","useEffect","cancelled","activeRequest","activeRequestKey","validateAddress","lastError","attempt","cached","getCachedValue","rateLimitStatus","checkRateLimit","allowed","existingRequest","getInFlightRequest","response","retainInFlightRequest","promise","controller","AbortController","request","settled","networkResponse","axios","post","signal","get","params","setInFlightRequest","settleInFlightRequest","transformedSuggestions","data","setCachedValue","undefined","err","name","code","releaseInFlightRequest","_lastError$response","message","_activeRequest","_activeRequest2","subscribers","abort","Boolean","_default","exports"],"sources":["../../../src/addressLookup/hooks/useAddressValidationBase.jsx"],"sourcesContent":["import { useState, useEffect } from 'react';\nimport axios from 'axios';\nimport { getCachedValue, setCachedValue } from '../utils/requestCache';\nimport { checkRateLimit } from '../utils/requestRateLimiter';\nimport {\n getInFlightRequest,\n setInFlightRequest,\n retainInFlightRequest,\n releaseInFlightRequest,\n settleInFlightRequest\n} from '../utils/inFlightRequests';\n\n// Not rendered directly: useSmartyServiceErrors resolves the displayed text\n// from fieldLabels.rateLimited. This is only a truthy signal for `error`.\nconst RATE_LIMIT_ERROR_CODE = 'rate-limited';\n\nconst useAddressValidationBase = ({\n isEnabled,\n cacheNamespace = null,\n cacheTtlMs = null,\n rateLimitNamespace,\n rateLimitConfig,\n requestKey,\n requestUrl,\n requestParams,\n requestBody,\n transformResponse,\n effectDeps = [],\n // NGE1-6437: a failed call must surface immediately, not auto-retry a duplicate request to Smarty\n maxRetries = 0\n}) => {\n const requestCycleKey = JSON.stringify({\n isEnabled,\n effectDeps\n });\n const [suggestions, setSuggestions] = useState([]);\n const [loading, setLoading] = useState(false);\n const [error, setError] = useState(null);\n const [rateLimited, setRateLimited] = useState(false);\n const [activeCycleKey, setActiveCycleKey] = useState(requestCycleKey);\n\n const isPendingCycleChange = activeCycleKey !== requestCycleKey;\n\n useEffect(() => {\n setActiveCycleKey(requestCycleKey);\n\n if (!isEnabled) {\n setRateLimited(false);\n return;\n }\n\n let cancelled = false;\n let activeRequest = null;\n let activeRequestKey = null;\n\n const validateAddress = async () => {\n setLoading(true);\n setError(null);\n setSuggestions([]);\n\n let lastError = null;\n for (let attempt = 0; attempt <= maxRetries; attempt++) {\n try {\n const cached = cacheNamespace ? getCachedValue(cacheNamespace, requestKey) : null;\n if (cached) {\n if (!cancelled) {\n setRateLimited(false);\n setSuggestions(cached.suggestions);\n setLoading(false);\n }\n return;\n }\n\n const rateLimitStatus = checkRateLimit(rateLimitNamespace, rateLimitConfig);\n if (!rateLimitStatus.allowed) {\n setRateLimited(true);\n setError(RATE_LIMIT_ERROR_CODE);\n setLoading(false);\n return;\n }\n\n activeRequestKey = requestKey;\n const existingRequest = getInFlightRequest(activeRequestKey);\n let response;\n\n if (existingRequest) {\n activeRequest = retainInFlightRequest(activeRequestKey);\n ({ response } = await activeRequest.promise);\n } else {\n const controller = new AbortController();\n const request = {\n controller,\n settled: false,\n promise: (async () => {\n const networkResponse = requestBody\n ? await axios.post(requestUrl, requestBody, { signal: controller.signal })\n : await axios.get(requestUrl, { params: requestParams, signal: controller.signal });\n return { response: networkResponse };\n })()\n };\n\n setInFlightRequest(activeRequestKey, request);\n activeRequest = retainInFlightRequest(activeRequestKey);\n\n try {\n ({ response } = await activeRequest.promise);\n } finally {\n settleInFlightRequest(activeRequestKey, activeRequest);\n }\n }\n\n if (cancelled) {\n return;\n }\n\n const transformedSuggestions = transformResponse(response.data);\n if (cacheNamespace) {\n setCachedValue(cacheNamespace, requestKey, {\n suggestions: transformedSuggestions\n }, cacheTtlMs || undefined);\n }\n\n setRateLimited(false);\n setSuggestions(transformedSuggestions);\n setLoading(false);\n return;\n } catch (err) {\n if (cancelled || err.name === 'CanceledError' || err.code === 'ERR_CANCELED') {\n return;\n }\n lastError = err;\n // Release the failed entry so the retry issues a fresh request instead of re-awaiting the rejection.\n if (activeRequestKey && activeRequest) {\n releaseInFlightRequest(activeRequestKey, activeRequest);\n }\n activeRequestKey = null;\n activeRequest = null;\n }\n }\n\n if (!cancelled && lastError) {\n setRateLimited(false);\n setError(lastError.response?.data?.message || lastError.message);\n }\n\n if (!cancelled) {\n setLoading(false);\n }\n };\n\n validateAddress();\n\n return () => {\n cancelled = true;\n if (activeRequestKey && activeRequest) {\n releaseInFlightRequest(activeRequestKey, activeRequest);\n }\n if (activeRequest?.subscribers === 0 && !activeRequest?.settled) {\n activeRequest.controller.abort();\n }\n };\n }, [isEnabled, requestCycleKey]);\n\n return {\n suggestions: isPendingCycleChange ? [] : suggestions,\n loading: isPendingCycleChange ? Boolean(isEnabled) : loading,\n error: isPendingCycleChange ? null : error,\n rateLimited: isPendingCycleChange ? false : rateLimited\n };\n};\n\nexport default useAddressValidationBase;\n"],"mappings":"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","ignoreList":[]}
@@ -16,7 +16,6 @@ const RATE_LIMIT_CONFIG = {
16
16
  windowMs: 60 * 1000,
17
17
  cooldownMs: 60 * 1000
18
18
  };
19
- const VERIFY_URL = 'https://international-street.api.smarty.com/verify';
20
19
  const PRECISION_LABELS = {
21
20
  DeliveryPoint: 'delivery point',
22
21
  Premise: 'premise',
@@ -25,22 +24,15 @@ const PRECISION_LABELS = {
25
24
  AdministrativeArea: 'region'
26
25
  };
27
26
  const getLookupAddressLine = (formData = {}, lookupField = 'address1') => (formData === null || formData === void 0 ? void 0 : formData[lookupField]) || '';
28
- const buildValidationParams = (formData, countryCode, lookupField = 'address1') => {
29
- const params = {
30
- key: _smartyConfig.SMARTY_INTL_STREET_KEY,
31
- country: countryCode,
27
+ const buildRequestBody = (formData, countryCode, lookupField = 'address1') => {
28
+ const body = {
32
29
  address1: getLookupAddressLine(formData, lookupField),
33
- locality: formData.city || '',
34
- administrative_area: formData.region || '',
35
- postal_code: (0, _validators.normalizePostalCodeValue)(formData.postalCode || ''),
36
30
  geocode: true
37
31
  };
38
- Object.keys(params).forEach(key => {
39
- if (!params[key]) {
40
- delete params[key];
41
- }
42
- });
43
- return params;
32
+ if (formData.city) body.locality = formData.city;
33
+ if (formData.region) body.administrative_area = formData.region;
34
+ if (formData.postalCode) body.postal_code = (0, _validators.normalizePostalCodeValue)(formData.postalCode);
35
+ return body;
44
36
  };
45
37
  const buildRequestKey = (formData, countryCode, lookupField = 'address1') => JSON.stringify({
46
38
  countryCode,
@@ -103,7 +95,7 @@ const transformSuggestions = (responseData = []) => responseData.map(item => ({
103
95
  const useIntlAddressValidation = (formData, countryCode, trigger, lookupField = 'address1') => {
104
96
  const lookupValue = getLookupAddressLine(formData, lookupField);
105
97
  const isEnabled = Boolean(trigger && trigger !== 0 && lookupValue && countryCode);
106
- const requestParams = buildValidationParams(formData, countryCode, lookupField);
98
+ const requestBody = buildRequestBody(formData, countryCode, lookupField);
107
99
  const requestKey = `smarty-intl-validation:${buildRequestKey(formData, countryCode, lookupField)}`;
108
100
  return (0, _useAddressValidationBase.default)({
109
101
  isEnabled,
@@ -112,8 +104,8 @@ const useIntlAddressValidation = (formData, countryCode, trigger, lookupField =
112
104
  rateLimitNamespace: RATE_LIMIT_NAMESPACE,
113
105
  rateLimitConfig: RATE_LIMIT_CONFIG,
114
106
  requestKey,
115
- requestUrl: VERIFY_URL,
116
- requestParams,
107
+ requestUrl: `${(0, _smartyConfig.getStreetAddressApiUrl)()}/validate/v1/${countryCode}`,
108
+ requestBody,
117
109
  transformResponse: transformSuggestions,
118
110
  effectDeps: [trigger, lookupField]
119
111
  });
@@ -1 +1 @@
1
- {"version":3,"file":"useIntlAddressValidation.js","names":["_smartyConfig","require","_validators","_useAddressValidationBase","_interopRequireDefault","e","__esModule","default","CACHE_NAMESPACE","CACHE_TTL_MS","RATE_LIMIT_NAMESPACE","RATE_LIMIT_CONFIG","limit","windowMs","cooldownMs","VERIFY_URL","PRECISION_LABELS","DeliveryPoint","Premise","Thoroughfare","Locality","AdministrativeArea","getLookupAddressLine","formData","lookupField","buildValidationParams","countryCode","params","key","SMARTY_INTL_STREET_KEY","country","address1","locality","city","administrative_area","region","postal_code","normalizePostalCodeValue","postalCode","geocode","Object","keys","forEach","buildRequestKey","JSON","stringify","administrativeArea","getPrecisionLabel","precision","buildValidationSummary","item","_item$analysis","_item$analysis2","_item$changes","_item$changes2","verificationStatus","analysis","verification_status","address_precision","subBuildingChange","changes","sub_building","components","hasVerifiedSubBuilding","startsWith","address2","code","title","message","sortPriority","transformSuggestions","responseData","map","displayText","address3","filter","Boolean","join","validationSummary","sort","left","right","useIntlAddressValidation","trigger","lookupValue","isEnabled","requestParams","requestKey","useAddressValidationBase","cacheNamespace","cacheTtlMs","rateLimitNamespace","rateLimitConfig","requestUrl","transformResponse","effectDeps","_default","exports"],"sources":["../../../src/addressLookup/hooks/useIntlAddressValidation.jsx"],"sourcesContent":["import { SMARTY_INTL_STREET_KEY } from '../utils/smartyConfig';\nimport { normalizePostalCodeValue } from '../utils/validators';\nimport useAddressValidationBase from './useAddressValidationBase';\n\nconst CACHE_NAMESPACE = 'smarty-intl-validation';\nconst CACHE_TTL_MS = 60 * 1000;\nconst RATE_LIMIT_NAMESPACE = 'smarty-intl-validation';\nconst RATE_LIMIT_CONFIG = {\n limit: 60,\n windowMs: 60 * 1000,\n cooldownMs: 60 * 1000\n};\nconst VERIFY_URL = 'https://international-street.api.smarty.com/verify';\n\nconst PRECISION_LABELS = {\n DeliveryPoint: 'delivery point',\n Premise: 'premise',\n Thoroughfare: 'street',\n Locality: 'city',\n AdministrativeArea: 'region'\n};\n\nconst getLookupAddressLine = (formData = {}, lookupField = 'address1') => (\n formData?.[lookupField] || ''\n);\n\nconst buildValidationParams = (formData, countryCode, lookupField = 'address1') => {\n const params = {\n key: SMARTY_INTL_STREET_KEY,\n country: countryCode,\n address1: getLookupAddressLine(formData, lookupField),\n locality: formData.city || '',\n administrative_area: formData.region || '',\n postal_code: normalizePostalCodeValue(formData.postalCode || ''),\n geocode: true\n };\n\n Object.keys(params).forEach((key) => {\n if (!params[key]) {\n delete params[key];\n }\n });\n\n return params;\n};\n\nconst buildRequestKey = (formData, countryCode, lookupField = 'address1') => JSON.stringify({\n countryCode,\n address1: getLookupAddressLine(formData, lookupField),\n locality: formData.city || '',\n administrativeArea: formData.region || '',\n postalCode: normalizePostalCodeValue(formData.postalCode || '')\n});\n\nconst getPrecisionLabel = (precision) => PRECISION_LABELS[precision] || 'available level';\n\nconst buildValidationSummary = (item) => {\n const verificationStatus = item.analysis?.verification_status || 'None';\n const precision = item.analysis?.address_precision || 'None';\n const subBuildingChange = item.changes?.sub_building || item.changes?.components?.sub_building;\n const hasVerifiedSubBuilding = subBuildingChange?.startsWith('Verified');\n\n if (verificationStatus === 'Verified') {\n if (item.address2 && subBuildingChange && hasVerifiedSubBuilding) {\n return {\n code: 'verified-sub-building-changed',\n title: 'Verified with unit changes',\n message: 'This address is verified, but the apartment or suite information was changed.',\n sortPriority: 2\n };\n }\n\n return {\n code: 'verified',\n title: 'Verified',\n message: `This address is verified to the ${getPrecisionLabel(precision)} level.`,\n sortPriority: 1\n };\n }\n\n if (verificationStatus === 'Partial') {\n return {\n code: 'partial',\n title: 'Partially verified',\n message: `This address could only be verified to the ${getPrecisionLabel(precision)} level.`,\n sortPriority: 3\n };\n }\n\n if (verificationStatus === 'Ambiguous') {\n return {\n code: 'ambiguous',\n title: 'Multiple matches found',\n message: `Multiple possible matches were found at the ${getPrecisionLabel(precision)} level.`,\n sortPriority: 4\n };\n }\n\n return {\n code: 'not-verified',\n title: 'Not verified',\n message: 'This address could not be verified.',\n sortPriority: 5\n };\n};\n\nconst transformSuggestions = (responseData = []) => responseData\n .map((item) => ({\n ...item,\n displayText: [\n item.address1,\n item.address2,\n item.address3\n ].filter(Boolean).join(', '),\n validationSummary: buildValidationSummary(item)\n }))\n .sort((left, right) => left.validationSummary.sortPriority - right.validationSummary.sortPriority);\n\nconst useIntlAddressValidation = (formData, countryCode, trigger, lookupField = 'address1') => {\n const lookupValue = getLookupAddressLine(formData, lookupField);\n const isEnabled = Boolean(trigger && trigger !== 0 && lookupValue && countryCode);\n const requestParams = buildValidationParams(formData, countryCode, lookupField);\n const requestKey = `smarty-intl-validation:${buildRequestKey(formData, countryCode, lookupField)}`;\n\n return useAddressValidationBase({\n isEnabled,\n cacheNamespace: CACHE_NAMESPACE,\n cacheTtlMs: CACHE_TTL_MS,\n rateLimitNamespace: RATE_LIMIT_NAMESPACE,\n rateLimitConfig: RATE_LIMIT_CONFIG,\n requestKey,\n requestUrl: VERIFY_URL,\n requestParams,\n transformResponse: transformSuggestions,\n effectDeps: [trigger, lookupField]\n });\n};\n\nexport default useIntlAddressValidation;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"useIntlAddressValidation.js","names":["_smartyConfig","require","_validators","_useAddressValidationBase","_interopRequireDefault","e","__esModule","default","CACHE_NAMESPACE","CACHE_TTL_MS","RATE_LIMIT_NAMESPACE","RATE_LIMIT_CONFIG","limit","windowMs","cooldownMs","PRECISION_LABELS","DeliveryPoint","Premise","Thoroughfare","Locality","AdministrativeArea","getLookupAddressLine","formData","lookupField","buildRequestBody","countryCode","body","address1","geocode","city","locality","region","administrative_area","postalCode","postal_code","normalizePostalCodeValue","buildRequestKey","JSON","stringify","administrativeArea","getPrecisionLabel","precision","buildValidationSummary","item","_item$analysis","_item$analysis2","_item$changes","_item$changes2","verificationStatus","analysis","verification_status","address_precision","subBuildingChange","changes","sub_building","components","hasVerifiedSubBuilding","startsWith","address2","code","title","message","sortPriority","transformSuggestions","responseData","map","displayText","address3","filter","Boolean","join","validationSummary","sort","left","right","useIntlAddressValidation","trigger","lookupValue","isEnabled","requestBody","requestKey","useAddressValidationBase","cacheNamespace","cacheTtlMs","rateLimitNamespace","rateLimitConfig","requestUrl","getStreetAddressApiUrl","transformResponse","effectDeps","_default","exports"],"sources":["../../../src/addressLookup/hooks/useIntlAddressValidation.jsx"],"sourcesContent":["import { getStreetAddressApiUrl } from '../utils/smartyConfig';\nimport { normalizePostalCodeValue } from '../utils/validators';\nimport useAddressValidationBase from './useAddressValidationBase';\n\nconst CACHE_NAMESPACE = 'smarty-intl-validation';\nconst CACHE_TTL_MS = 60 * 1000;\nconst RATE_LIMIT_NAMESPACE = 'smarty-intl-validation';\nconst RATE_LIMIT_CONFIG = {\n limit: 60,\n windowMs: 60 * 1000,\n cooldownMs: 60 * 1000\n};\n\nconst PRECISION_LABELS = {\n DeliveryPoint: 'delivery point',\n Premise: 'premise',\n Thoroughfare: 'street',\n Locality: 'city',\n AdministrativeArea: 'region'\n};\n\nconst getLookupAddressLine = (formData = {}, lookupField = 'address1') => (\n formData?.[lookupField] || ''\n);\n\nconst buildRequestBody = (formData, countryCode, lookupField = 'address1') => {\n const body = {\n address1: getLookupAddressLine(formData, lookupField),\n geocode: true\n };\n\n if (formData.city) body.locality = formData.city;\n if (formData.region) body.administrative_area = formData.region;\n if (formData.postalCode) body.postal_code = normalizePostalCodeValue(formData.postalCode);\n\n return body;\n};\n\nconst buildRequestKey = (formData, countryCode, lookupField = 'address1') => JSON.stringify({\n countryCode,\n address1: getLookupAddressLine(formData, lookupField),\n locality: formData.city || '',\n administrativeArea: formData.region || '',\n postalCode: normalizePostalCodeValue(formData.postalCode || '')\n});\n\nconst getPrecisionLabel = (precision) => PRECISION_LABELS[precision] || 'available level';\n\nconst buildValidationSummary = (item) => {\n const verificationStatus = item.analysis?.verification_status || 'None';\n const precision = item.analysis?.address_precision || 'None';\n const subBuildingChange = item.changes?.sub_building || item.changes?.components?.sub_building;\n const hasVerifiedSubBuilding = subBuildingChange?.startsWith('Verified');\n\n if (verificationStatus === 'Verified') {\n if (item.address2 && subBuildingChange && hasVerifiedSubBuilding) {\n return { code: 'verified-sub-building-changed', title: 'Verified with unit changes', message: 'This address is verified, but the apartment or suite information was changed.', sortPriority: 2 };\n }\n return { code: 'verified', title: 'Verified', message: `This address is verified to the ${getPrecisionLabel(precision)} level.`, sortPriority: 1 };\n }\n if (verificationStatus === 'Partial') {\n return { code: 'partial', title: 'Partially verified', message: `This address could only be verified to the ${getPrecisionLabel(precision)} level.`, sortPriority: 3 };\n }\n if (verificationStatus === 'Ambiguous') {\n return { code: 'ambiguous', title: 'Multiple matches found', message: `Multiple possible matches were found at the ${getPrecisionLabel(precision)} level.`, sortPriority: 4 };\n }\n\n return { code: 'not-verified', title: 'Not verified', message: 'This address could not be verified.', sortPriority: 5 };\n};\n\nconst transformSuggestions = (responseData = []) => responseData\n .map((item) => ({\n ...item,\n displayText: [item.address1, item.address2, item.address3].filter(Boolean).join(', '),\n validationSummary: buildValidationSummary(item)\n }))\n .sort((left, right) => left.validationSummary.sortPriority - right.validationSummary.sortPriority);\n\nconst useIntlAddressValidation = (formData, countryCode, trigger, lookupField = 'address1') => {\n const lookupValue = getLookupAddressLine(formData, lookupField);\n const isEnabled = Boolean(trigger && trigger !== 0 && lookupValue && countryCode);\n const requestBody = buildRequestBody(formData, countryCode, lookupField);\n const requestKey = `smarty-intl-validation:${buildRequestKey(formData, countryCode, lookupField)}`;\n\n return useAddressValidationBase({\n isEnabled,\n cacheNamespace: CACHE_NAMESPACE,\n cacheTtlMs: CACHE_TTL_MS,\n rateLimitNamespace: RATE_LIMIT_NAMESPACE,\n rateLimitConfig: RATE_LIMIT_CONFIG,\n requestKey,\n requestUrl: `${getStreetAddressApiUrl()}/validate/v1/${countryCode}`,\n requestBody,\n transformResponse: transformSuggestions,\n effectDeps: [trigger, lookupField]\n });\n};\n\nexport default useIntlAddressValidation;\n"],"mappings":";;;;;;AAAA,IAAAA,aAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AACA,IAAAE,yBAAA,GAAAC,sBAAA,CAAAH,OAAA;AAAkE,SAAAG,uBAAAC,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAElE,MAAMG,eAAe,GAAG,wBAAwB;AAChD,MAAMC,YAAY,GAAG,EAAE,GAAG,IAAI;AAC9B,MAAMC,oBAAoB,GAAG,wBAAwB;AACrD,MAAMC,iBAAiB,GAAG;EACxBC,KAAK,EAAE,EAAE;EACTC,QAAQ,EAAE,EAAE,GAAG,IAAI;EACnBC,UAAU,EAAE,EAAE,GAAG;AACnB,CAAC;AAED,MAAMC,gBAAgB,GAAG;EACvBC,aAAa,EAAE,gBAAgB;EAC/BC,OAAO,EAAE,SAAS;EAClBC,YAAY,EAAE,QAAQ;EACtBC,QAAQ,EAAE,MAAM;EAChBC,kBAAkB,EAAE;AACtB,CAAC;AAED,MAAMC,oBAAoB,GAAGA,CAACC,QAAQ,GAAG,CAAC,CAAC,EAAEC,WAAW,GAAG,UAAU,KACnE,CAAAD,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAGC,WAAW,CAAC,KAAI,EAC5B;AAED,MAAMC,gBAAgB,GAAGA,CAACF,QAAQ,EAAEG,WAAW,EAAEF,WAAW,GAAG,UAAU,KAAK;EAC5E,MAAMG,IAAI,GAAG;IACXC,QAAQ,EAAEN,oBAAoB,CAACC,QAAQ,EAAEC,WAAW,CAAC;IACrDK,OAAO,EAAE;EACX,CAAC;EAED,IAAIN,QAAQ,CAACO,IAAI,EAAEH,IAAI,CAACI,QAAQ,GAAGR,QAAQ,CAACO,IAAI;EAChD,IAAIP,QAAQ,CAACS,MAAM,EAAEL,IAAI,CAACM,mBAAmB,GAAGV,QAAQ,CAACS,MAAM;EAC/D,IAAIT,QAAQ,CAACW,UAAU,EAAEP,IAAI,CAACQ,WAAW,GAAG,IAAAC,oCAAwB,EAACb,QAAQ,CAACW,UAAU,CAAC;EAEzF,OAAOP,IAAI;AACb,CAAC;AAED,MAAMU,eAAe,GAAGA,CAACd,QAAQ,EAAEG,WAAW,EAAEF,WAAW,GAAG,UAAU,KAAKc,IAAI,CAACC,SAAS,CAAC;EAC1Fb,WAAW;EACXE,QAAQ,EAAEN,oBAAoB,CAACC,QAAQ,EAAEC,WAAW,CAAC;EACrDO,QAAQ,EAAER,QAAQ,CAACO,IAAI,IAAI,EAAE;EAC7BU,kBAAkB,EAAEjB,QAAQ,CAACS,MAAM,IAAI,EAAE;EACzCE,UAAU,EAAE,IAAAE,oCAAwB,EAACb,QAAQ,CAACW,UAAU,IAAI,EAAE;AAChE,CAAC,CAAC;AAEF,MAAMO,iBAAiB,GAAIC,SAAS,IAAK1B,gBAAgB,CAAC0B,SAAS,CAAC,IAAI,iBAAiB;AAEzF,MAAMC,sBAAsB,GAAIC,IAAI,IAAK;EAAA,IAAAC,cAAA,EAAAC,eAAA,EAAAC,aAAA,EAAAC,cAAA;EACvC,MAAMC,kBAAkB,GAAG,EAAAJ,cAAA,GAAAD,IAAI,CAACM,QAAQ,cAAAL,cAAA,uBAAbA,cAAA,CAAeM,mBAAmB,KAAI,MAAM;EACvE,MAAMT,SAAS,GAAG,EAAAI,eAAA,GAAAF,IAAI,CAACM,QAAQ,cAAAJ,eAAA,uBAAbA,eAAA,CAAeM,iBAAiB,KAAI,MAAM;EAC5D,MAAMC,iBAAiB,GAAG,EAAAN,aAAA,GAAAH,IAAI,CAACU,OAAO,cAAAP,aAAA,uBAAZA,aAAA,CAAcQ,YAAY,OAAAP,cAAA,GAAIJ,IAAI,CAACU,OAAO,cAAAN,cAAA,gBAAAA,cAAA,GAAZA,cAAA,CAAcQ,UAAU,cAAAR,cAAA,uBAAxBA,cAAA,CAA0BO,YAAY;EAC9F,MAAME,sBAAsB,GAAGJ,iBAAiB,aAAjBA,iBAAiB,uBAAjBA,iBAAiB,CAAEK,UAAU,CAAC,UAAU,CAAC;EAExE,IAAIT,kBAAkB,KAAK,UAAU,EAAE;IACrC,IAAIL,IAAI,CAACe,QAAQ,IAAIN,iBAAiB,IAAII,sBAAsB,EAAE;MAChE,OAAO;QAAEG,IAAI,EAAE,+BAA+B;QAAEC,KAAK,EAAE,4BAA4B;QAAEC,OAAO,EAAE,+EAA+E;QAAEC,YAAY,EAAE;MAAE,CAAC;IAClM;IACA,OAAO;MAAEH,IAAI,EAAE,UAAU;MAAEC,KAAK,EAAE,UAAU;MAAEC,OAAO,EAAE,mCAAmCrB,iBAAiB,CAACC,SAAS,CAAC,SAAS;MAAEqB,YAAY,EAAE;IAAE,CAAC;EACpJ;EACA,IAAId,kBAAkB,KAAK,SAAS,EAAE;IACpC,OAAO;MAAEW,IAAI,EAAE,SAAS;MAAEC,KAAK,EAAE,oBAAoB;MAAEC,OAAO,EAAE,8CAA8CrB,iBAAiB,CAACC,SAAS,CAAC,SAAS;MAAEqB,YAAY,EAAE;IAAE,CAAC;EACxK;EACA,IAAId,kBAAkB,KAAK,WAAW,EAAE;IACtC,OAAO;MAAEW,IAAI,EAAE,WAAW;MAAEC,KAAK,EAAE,wBAAwB;MAAEC,OAAO,EAAE,+CAA+CrB,iBAAiB,CAACC,SAAS,CAAC,SAAS;MAAEqB,YAAY,EAAE;IAAE,CAAC;EAC/K;EAEA,OAAO;IAAEH,IAAI,EAAE,cAAc;IAAEC,KAAK,EAAE,cAAc;IAAEC,OAAO,EAAE,qCAAqC;IAAEC,YAAY,EAAE;EAAE,CAAC;AACzH,CAAC;AAED,MAAMC,oBAAoB,GAAGA,CAACC,YAAY,GAAG,EAAE,KAAKA,YAAY,CAC7DC,GAAG,CAAEtB,IAAI,KAAM;EACd,GAAGA,IAAI;EACPuB,WAAW,EAAE,CAACvB,IAAI,CAAChB,QAAQ,EAAEgB,IAAI,CAACe,QAAQ,EAAEf,IAAI,CAACwB,QAAQ,CAAC,CAACC,MAAM,CAACC,OAAO,CAAC,CAACC,IAAI,CAAC,IAAI,CAAC;EACrFC,iBAAiB,EAAE7B,sBAAsB,CAACC,IAAI;AAChD,CAAC,CAAC,CAAC,CACF6B,IAAI,CAAC,CAACC,IAAI,EAAEC,KAAK,KAAKD,IAAI,CAACF,iBAAiB,CAACT,YAAY,GAAGY,KAAK,CAACH,iBAAiB,CAACT,YAAY,CAAC;AAEpG,MAAMa,wBAAwB,GAAGA,CAACrD,QAAQ,EAAEG,WAAW,EAAEmD,OAAO,EAAErD,WAAW,GAAG,UAAU,KAAK;EAC7F,MAAMsD,WAAW,GAAGxD,oBAAoB,CAACC,QAAQ,EAAEC,WAAW,CAAC;EAC/D,MAAMuD,SAAS,GAAGT,OAAO,CAACO,OAAO,IAAIA,OAAO,KAAK,CAAC,IAAIC,WAAW,IAAIpD,WAAW,CAAC;EACjF,MAAMsD,WAAW,GAAGvD,gBAAgB,CAACF,QAAQ,EAAEG,WAAW,EAAEF,WAAW,CAAC;EACxE,MAAMyD,UAAU,GAAG,0BAA0B5C,eAAe,CAACd,QAAQ,EAAEG,WAAW,EAAEF,WAAW,CAAC,EAAE;EAElG,OAAO,IAAA0D,iCAAwB,EAAC;IAC9BH,SAAS;IACTI,cAAc,EAAE1E,eAAe;IAC/B2E,UAAU,EAAE1E,YAAY;IACxB2E,kBAAkB,EAAE1E,oBAAoB;IACxC2E,eAAe,EAAE1E,iBAAiB;IAClCqE,UAAU;IACVM,UAAU,EAAE,GAAG,IAAAC,oCAAsB,EAAC,CAAC,gBAAgB9D,WAAW,EAAE;IACpEsD,WAAW;IACXS,iBAAiB,EAAEzB,oBAAoB;IACvC0B,UAAU,EAAE,CAACb,OAAO,EAAErD,WAAW;EACnC,CAAC,CAAC;AACJ,CAAC;AAAC,IAAAmE,QAAA,GAAAC,OAAA,CAAApF,OAAA,GAEaoE,wBAAwB","ignoreList":[]}
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
- var _countries = require("../countries");
7
+ var _countries = require("../config/address/countries");
8
8
  var _intlAutocompleteBusinessRules = require("../utils/intlAutocompleteBusinessRules");
9
9
  var _smartyConfig = require("../utils/smartyConfig");
10
10
  var _useSmartyLookupBase = _interopRequireDefault(require("./useSmartyLookupBase"));
@@ -18,18 +18,25 @@ const RATE_LIMIT_CONFIG = {
18
18
  windowMs: 60 * 1000,
19
19
  cooldownMs: 30 * 1000
20
20
  };
21
- const LOOKUP_URL = 'https://international-autocomplete.api.smarty.com/v2/lookup';
22
21
  const buildCacheKey = (trimmedQuery, countryCode, selectedAddressId) => JSON.stringify({
23
22
  query: trimmedQuery,
24
23
  countryCode,
25
24
  selectedAddressId: selectedAddressId || null
26
25
  });
27
- const buildLookupUrl = (trimmedQuery, countryCode, selectedAddressId) => {
26
+ const buildRequestBody = (trimmedQuery, countryCode, selectedAddressId) => {
28
27
  const iso3 = _countries.COUNTRY_MAP[countryCode].iso3;
29
28
  if (selectedAddressId) {
30
- return `${LOOKUP_URL}/${selectedAddressId}?key=${_smartyConfig.SMARTY_INTL_AUTOCOMPLETE_KEY}&country=${iso3}&max_results=10`;
29
+ return {
30
+ address_id: selectedAddressId,
31
+ iso3,
32
+ max_results: 10
33
+ };
31
34
  }
32
- return `${LOOKUP_URL}?key=${_smartyConfig.SMARTY_INTL_AUTOCOMPLETE_KEY}&country=${iso3}&search=${encodeURIComponent(trimmedQuery)}&max_results=10`;
35
+ return {
36
+ search: trimmedQuery,
37
+ iso3,
38
+ max_results: 10
39
+ };
33
40
  };
34
41
  const transformSuggestions = (candidates = []) => candidates.map(result => {
35
42
  if (result.street) {
@@ -53,7 +60,8 @@ const useSmartyInternationalLookup = (query, countryCode = '', selectedAddressId
53
60
  const trimmedQuery = query.trim();
54
61
  const isEnabled = Boolean((trimmedQuery && trimmedQuery.length >= MIN_QUERY_LENGTH || selectedAddressId) && countryCode && _countries.COUNTRY_MAP[countryCode]);
55
62
  const cacheKey = buildCacheKey(trimmedQuery, countryCode, selectedAddressId);
56
- const requestUrl = isEnabled ? buildLookupUrl(trimmedQuery, countryCode, selectedAddressId) : '';
63
+ const requestUrl = `${(0, _smartyConfig.getStreetAddressApiUrl)()}/autocomplete/v1/${countryCode}`;
64
+ const requestBody = isEnabled ? buildRequestBody(trimmedQuery, countryCode, selectedAddressId) : null;
57
65
  return (0, _useSmartyLookupBase.default)({
58
66
  isEnabled,
59
67
  debounceMs,
@@ -63,9 +71,10 @@ const useSmartyInternationalLookup = (query, countryCode = '', selectedAddressId
63
71
  rateLimitConfig: RATE_LIMIT_CONFIG,
64
72
  cacheKey,
65
73
  requestUrl,
74
+ requestBody,
66
75
  transformResponse: responseData => (0, _intlAutocompleteBusinessRules.applyIntlAutocompleteBusinessRules)(countryCode, transformSuggestions(responseData.candidates || [])),
67
76
  onError: err => {
68
- console.error('Smarty International lookup failed:', err);
77
+ console.error('International autocomplete lookup failed:', err);
69
78
  },
70
79
  effectDeps: [query, countryCode, selectedAddressId]
71
80
  });
@@ -1 +1 @@
1
- {"version":3,"file":"useSmartyInternationalLookup.js","names":["_countries","require","_intlAutocompleteBusinessRules","_smartyConfig","_useSmartyLookupBase","_interopRequireDefault","e","__esModule","default","MIN_QUERY_LENGTH","CACHE_NAMESPACE","CACHE_TTL_MS","RATE_LIMIT_NAMESPACE","RATE_LIMIT_CONFIG","limit","windowMs","cooldownMs","LOOKUP_URL","buildCacheKey","trimmedQuery","countryCode","selectedAddressId","JSON","stringify","query","buildLookupUrl","iso3","COUNTRY_MAP","SMARTY_INTL_AUTOCOMPLETE_KEY","encodeURIComponent","transformSuggestions","candidates","map","result","street","displayText","locality","administrative_area","postal_code","isDetailed","address_text","entries","useSmartyInternationalLookup","debounceMs","trim","isEnabled","Boolean","length","cacheKey","requestUrl","useSmartyLookupBase","cacheNamespace","cacheTtlMs","rateLimitNamespace","rateLimitConfig","transformResponse","responseData","applyIntlAutocompleteBusinessRules","onError","err","console","error","effectDeps","_default","exports"],"sources":["../../../src/addressLookup/hooks/useSmartyInternationalLookup.jsx"],"sourcesContent":["import { COUNTRY_MAP } from '../countries';\nimport { applyIntlAutocompleteBusinessRules } from '../utils/intlAutocompleteBusinessRules';\nimport { SMARTY_INTL_AUTOCOMPLETE_KEY } from '../utils/smartyConfig';\nimport useSmartyLookupBase from './useSmartyLookupBase';\n\nconst MIN_QUERY_LENGTH = 3;\nconst CACHE_NAMESPACE = 'smarty-intl-autocomplete';\nconst CACHE_TTL_MS = 60 * 1000;\nconst RATE_LIMIT_NAMESPACE = 'smarty-intl-autocomplete';\nconst RATE_LIMIT_CONFIG = {\n limit: 60,\n windowMs: 60 * 1000,\n cooldownMs: 30 * 1000\n};\nconst LOOKUP_URL = 'https://international-autocomplete.api.smarty.com/v2/lookup';\n\nconst buildCacheKey = (trimmedQuery, countryCode, selectedAddressId) => JSON.stringify({\n query: trimmedQuery,\n countryCode,\n selectedAddressId: selectedAddressId || null\n});\n\nconst buildLookupUrl = (trimmedQuery, countryCode, selectedAddressId) => {\n const iso3 = COUNTRY_MAP[countryCode].iso3;\n\n if (selectedAddressId) {\n return `${LOOKUP_URL}/${selectedAddressId}?key=${SMARTY_INTL_AUTOCOMPLETE_KEY}&country=${iso3}&max_results=10`;\n }\n\n return `${LOOKUP_URL}?key=${SMARTY_INTL_AUTOCOMPLETE_KEY}&country=${iso3}&search=${encodeURIComponent(trimmedQuery)}&max_results=10`;\n};\n\nconst transformSuggestions = (candidates = []) => candidates.map((result) => {\n if (result.street) {\n return {\n ...result,\n displayText: `${result.street}, ${result.locality}, ${result.administrative_area} ${result.postal_code}`,\n isDetailed: true\n };\n }\n\n let displayText = result.address_text;\n if (result.entries > 1) {\n displayText += ` (${result.entries})`;\n }\n\n return {\n ...result,\n displayText,\n isDetailed: false\n };\n});\n\nconst useSmartyInternationalLookup = (\n query,\n countryCode = '',\n selectedAddressId = null,\n debounceMs = 300\n) => {\n const trimmedQuery = query.trim();\n const isEnabled = Boolean(\n (((trimmedQuery && trimmedQuery.length >= MIN_QUERY_LENGTH) || selectedAddressId)) &&\n countryCode &&\n COUNTRY_MAP[countryCode]\n );\n const cacheKey = buildCacheKey(trimmedQuery, countryCode, selectedAddressId);\n const requestUrl = isEnabled ? buildLookupUrl(trimmedQuery, countryCode, selectedAddressId) : '';\n\n return useSmartyLookupBase({\n isEnabled,\n debounceMs,\n cacheNamespace: CACHE_NAMESPACE,\n cacheTtlMs: CACHE_TTL_MS,\n rateLimitNamespace: RATE_LIMIT_NAMESPACE,\n rateLimitConfig: RATE_LIMIT_CONFIG,\n cacheKey,\n requestUrl,\n transformResponse: (responseData) => (\n applyIntlAutocompleteBusinessRules(\n countryCode,\n transformSuggestions(responseData.candidates || [])\n )\n ),\n onError: (err) => {\n console.error('Smarty International lookup failed:', err);\n },\n effectDeps: [query, countryCode, selectedAddressId]\n });\n};\n\nexport default useSmartyInternationalLookup;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"useSmartyInternationalLookup.js","names":["_countries","require","_intlAutocompleteBusinessRules","_smartyConfig","_useSmartyLookupBase","_interopRequireDefault","e","__esModule","default","MIN_QUERY_LENGTH","CACHE_NAMESPACE","CACHE_TTL_MS","RATE_LIMIT_NAMESPACE","RATE_LIMIT_CONFIG","limit","windowMs","cooldownMs","buildCacheKey","trimmedQuery","countryCode","selectedAddressId","JSON","stringify","query","buildRequestBody","iso3","COUNTRY_MAP","address_id","max_results","search","transformSuggestions","candidates","map","result","street","displayText","locality","administrative_area","postal_code","isDetailed","address_text","entries","useSmartyInternationalLookup","debounceMs","trim","isEnabled","Boolean","length","cacheKey","requestUrl","getStreetAddressApiUrl","requestBody","useSmartyLookupBase","cacheNamespace","cacheTtlMs","rateLimitNamespace","rateLimitConfig","transformResponse","responseData","applyIntlAutocompleteBusinessRules","onError","err","console","error","effectDeps","_default","exports"],"sources":["../../../src/addressLookup/hooks/useSmartyInternationalLookup.jsx"],"sourcesContent":["import { COUNTRY_MAP } from '../config/address/countries';\nimport { applyIntlAutocompleteBusinessRules } from '../utils/intlAutocompleteBusinessRules';\nimport { getStreetAddressApiUrl } from '../utils/smartyConfig';\nimport useSmartyLookupBase from './useSmartyLookupBase';\n\nconst MIN_QUERY_LENGTH = 3;\nconst CACHE_NAMESPACE = 'smarty-intl-autocomplete';\nconst CACHE_TTL_MS = 60 * 1000;\nconst RATE_LIMIT_NAMESPACE = 'smarty-intl-autocomplete';\nconst RATE_LIMIT_CONFIG = {\n limit: 60,\n windowMs: 60 * 1000,\n cooldownMs: 30 * 1000\n};\n\nconst buildCacheKey = (trimmedQuery, countryCode, selectedAddressId) => JSON.stringify({\n query: trimmedQuery,\n countryCode,\n selectedAddressId: selectedAddressId || null\n});\n\nconst buildRequestBody = (trimmedQuery, countryCode, selectedAddressId) => {\n const iso3 = COUNTRY_MAP[countryCode].iso3;\n\n if (selectedAddressId) {\n return { address_id: selectedAddressId, iso3, max_results: 10 };\n }\n\n return { search: trimmedQuery, iso3, max_results: 10 };\n};\n\nconst transformSuggestions = (candidates = []) => candidates.map((result) => {\n if (result.street) {\n return {\n ...result,\n displayText: `${result.street}, ${result.locality}, ${result.administrative_area} ${result.postal_code}`,\n isDetailed: true\n };\n }\n\n let displayText = result.address_text;\n if (result.entries > 1) {\n displayText += ` (${result.entries})`;\n }\n\n return {\n ...result,\n displayText,\n isDetailed: false\n };\n});\n\nconst useSmartyInternationalLookup = (\n query,\n countryCode = '',\n selectedAddressId = null,\n debounceMs = 300\n) => {\n const trimmedQuery = query.trim();\n const isEnabled = Boolean(\n (((trimmedQuery && trimmedQuery.length >= MIN_QUERY_LENGTH) || selectedAddressId)) &&\n countryCode &&\n COUNTRY_MAP[countryCode]\n );\n const cacheKey = buildCacheKey(trimmedQuery, countryCode, selectedAddressId);\n const requestUrl = `${getStreetAddressApiUrl()}/autocomplete/v1/${countryCode}`;\n const requestBody = isEnabled ? buildRequestBody(trimmedQuery, countryCode, selectedAddressId) : null;\n\n return useSmartyLookupBase({\n isEnabled,\n debounceMs,\n cacheNamespace: CACHE_NAMESPACE,\n cacheTtlMs: CACHE_TTL_MS,\n rateLimitNamespace: RATE_LIMIT_NAMESPACE,\n rateLimitConfig: RATE_LIMIT_CONFIG,\n cacheKey,\n requestUrl,\n requestBody,\n transformResponse: (responseData) => (\n applyIntlAutocompleteBusinessRules(\n countryCode,\n transformSuggestions(responseData.candidates || [])\n )\n ),\n onError: (err) => {\n console.error('International autocomplete lookup failed:', err);\n },\n effectDeps: [query, countryCode, selectedAddressId]\n });\n};\n\nexport default useSmartyInternationalLookup;\n"],"mappings":"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","ignoreList":[]}
@@ -22,6 +22,7 @@ const useSmartyLookupBase = ({
22
22
  rateLimitConfig,
23
23
  cacheKey,
24
24
  requestUrl,
25
+ requestBody,
25
26
  transformResponse,
26
27
  onError = null,
27
28
  effectDeps = []
@@ -85,7 +86,7 @@ const useSmartyLookupBase = ({
85
86
  settled: false,
86
87
  promise: (async () => {
87
88
  const startTime = performance.now();
88
- const networkResponse = await _axios.default.get(requestUrl, {
89
+ const networkResponse = await _axios.default.post(requestUrl, requestBody, {
89
90
  signal: controller.signal
90
91
  });
91
92
  const endTime = performance.now();
@@ -1 +1 @@
1
- {"version":3,"file":"useSmartyLookupBase.js","names":["_react","require","_axios","_interopRequireDefault","_requestCache","_requestRateLimiter","_inFlightRequests","e","__esModule","default","RATE_LIMIT_ERROR_CODE","useSmartyLookupBase","isEnabled","debounceMs","cacheNamespace","cacheTtlMs","rateLimitNamespace","rateLimitConfig","cacheKey","requestUrl","transformResponse","onError","effectDeps","suggestions","setSuggestions","useState","loading","setLoading","error","setError","rateLimited","setRateLimited","responseTime","setResponseTime","useEffect","cancelled","activeRequest","activeRequestKey","timer","setTimeout","cached","getCachedValue","rateLimitStatus","checkRateLimit","allowed","existingRequest","getInFlightRequest","response","elapsedTime","retainInFlightRequest","promise","controller","AbortController","request","settled","startTime","performance","now","networkResponse","axios","get","signal","endTime","Math","round","setInFlightRequest","settleInFlightRequest","formattedSuggestions","data","setCachedValue","err","name","code","message","_activeRequest","_activeRequest2","clearTimeout","releaseInFlightRequest","subscribers","abort","_default","exports"],"sources":["../../../src/addressLookup/hooks/useSmartyLookupBase.jsx"],"sourcesContent":["import { useState, useEffect } from 'react';\nimport axios from 'axios';\nimport { getCachedValue, setCachedValue } from '../utils/requestCache';\nimport { checkRateLimit } from '../utils/requestRateLimiter';\nimport {\n getInFlightRequest,\n setInFlightRequest,\n retainInFlightRequest,\n releaseInFlightRequest,\n settleInFlightRequest\n} from '../utils/inFlightRequests';\n\n// Not rendered directly: useSmartyServiceErrors resolves the displayed text\n// from fieldLabels.rateLimited. This is only a truthy signal for `error`.\nconst RATE_LIMIT_ERROR_CODE = 'rate-limited';\n\nconst useSmartyLookupBase = ({\n isEnabled,\n debounceMs,\n cacheNamespace,\n cacheTtlMs,\n rateLimitNamespace,\n rateLimitConfig,\n cacheKey,\n requestUrl,\n transformResponse,\n onError = null,\n effectDeps = []\n}) => {\n const [suggestions, setSuggestions] = useState([]);\n const [loading, setLoading] = useState(false);\n const [error, setError] = useState(null);\n const [rateLimited, setRateLimited] = useState(false);\n const [responseTime, setResponseTime] = useState(null);\n\n useEffect(() => {\n if (!isEnabled) {\n setSuggestions([]);\n setLoading(false);\n setError(null);\n setRateLimited(false);\n setResponseTime(null);\n return;\n }\n\n setLoading(true);\n setError(null);\n let cancelled = false;\n let activeRequest = null;\n let activeRequestKey = null;\n\n const timer = setTimeout(async () => {\n try {\n const cached = getCachedValue(cacheNamespace, cacheKey);\n if (cached) {\n if (!cancelled) {\n setSuggestions(cached.suggestions);\n setResponseTime(cached.responseTime);\n setRateLimited(false);\n setLoading(false);\n }\n return;\n }\n\n const rateLimitStatus = checkRateLimit(rateLimitNamespace, rateLimitConfig);\n if (!rateLimitStatus.allowed) {\n if (!cancelled) {\n setSuggestions([]);\n setResponseTime(null);\n setRateLimited(true);\n setError(RATE_LIMIT_ERROR_CODE);\n setLoading(false);\n }\n return;\n }\n\n activeRequestKey = cacheKey;\n const existingRequest = getInFlightRequest(activeRequestKey);\n let response;\n let elapsedTime;\n\n if (existingRequest) {\n activeRequest = retainInFlightRequest(activeRequestKey);\n ({ response, elapsedTime } = await activeRequest.promise);\n } else {\n const controller = new AbortController();\n const request = {\n controller,\n settled: false,\n promise: (async () => {\n const startTime = performance.now();\n const networkResponse = await axios.get(requestUrl, { signal: controller.signal });\n const endTime = performance.now();\n return {\n response: networkResponse,\n elapsedTime: Math.round(endTime - startTime)\n };\n })()\n };\n setInFlightRequest(activeRequestKey, request);\n activeRequest = retainInFlightRequest(activeRequestKey);\n try {\n ({ response, elapsedTime } = await activeRequest.promise);\n } finally {\n settleInFlightRequest(activeRequestKey, activeRequest);\n }\n }\n\n if (cancelled) {\n return;\n }\n\n const formattedSuggestions = transformResponse(response.data);\n setResponseTime(elapsedTime);\n setCachedValue(cacheNamespace, cacheKey, {\n suggestions: formattedSuggestions,\n responseTime: elapsedTime\n }, cacheTtlMs);\n setRateLimited(false);\n setSuggestions(formattedSuggestions);\n } catch (err) {\n if (cancelled || err.name === 'CanceledError' || err.code === 'ERR_CANCELED') {\n return;\n }\n onError?.(err);\n setRateLimited(false);\n setError(err.message);\n setSuggestions([]);\n setResponseTime(null);\n } finally {\n setLoading(false);\n }\n }, debounceMs);\n\n return () => {\n cancelled = true;\n clearTimeout(timer);\n if (activeRequestKey && activeRequest) {\n releaseInFlightRequest(activeRequestKey, activeRequest);\n }\n if (activeRequest?.subscribers === 0 && !activeRequest?.settled) {\n activeRequest.controller.abort();\n }\n };\n }, [isEnabled, debounceMs, ...effectDeps]);\n\n return {\n suggestions,\n loading,\n error,\n rateLimited,\n responseTime\n };\n};\n\nexport default useSmartyLookupBase;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"useSmartyLookupBase.js","names":["_react","require","_axios","_interopRequireDefault","_requestCache","_requestRateLimiter","_inFlightRequests","e","__esModule","default","RATE_LIMIT_ERROR_CODE","useSmartyLookupBase","isEnabled","debounceMs","cacheNamespace","cacheTtlMs","rateLimitNamespace","rateLimitConfig","cacheKey","requestUrl","requestBody","transformResponse","onError","effectDeps","suggestions","setSuggestions","useState","loading","setLoading","error","setError","rateLimited","setRateLimited","responseTime","setResponseTime","useEffect","cancelled","activeRequest","activeRequestKey","timer","setTimeout","cached","getCachedValue","rateLimitStatus","checkRateLimit","allowed","existingRequest","getInFlightRequest","response","elapsedTime","retainInFlightRequest","promise","controller","AbortController","request","settled","startTime","performance","now","networkResponse","axios","post","signal","endTime","Math","round","setInFlightRequest","settleInFlightRequest","formattedSuggestions","data","setCachedValue","err","name","code","message","_activeRequest","_activeRequest2","clearTimeout","releaseInFlightRequest","subscribers","abort","_default","exports"],"sources":["../../../src/addressLookup/hooks/useSmartyLookupBase.jsx"],"sourcesContent":["import { useState, useEffect } from 'react';\nimport axios from 'axios';\nimport { getCachedValue, setCachedValue } from '../utils/requestCache';\nimport { checkRateLimit } from '../utils/requestRateLimiter';\nimport {\n getInFlightRequest,\n setInFlightRequest,\n retainInFlightRequest,\n releaseInFlightRequest,\n settleInFlightRequest\n} from '../utils/inFlightRequests';\n\n// Not rendered directly: useSmartyServiceErrors resolves the displayed text\n// from fieldLabels.rateLimited. This is only a truthy signal for `error`.\nconst RATE_LIMIT_ERROR_CODE = 'rate-limited';\n\nconst useSmartyLookupBase = ({\n isEnabled,\n debounceMs,\n cacheNamespace,\n cacheTtlMs,\n rateLimitNamespace,\n rateLimitConfig,\n cacheKey,\n requestUrl,\n requestBody,\n transformResponse,\n onError = null,\n effectDeps = []\n}) => {\n const [suggestions, setSuggestions] = useState([]);\n const [loading, setLoading] = useState(false);\n const [error, setError] = useState(null);\n const [rateLimited, setRateLimited] = useState(false);\n const [responseTime, setResponseTime] = useState(null);\n\n useEffect(() => {\n if (!isEnabled) {\n setSuggestions([]);\n setLoading(false);\n setError(null);\n setRateLimited(false);\n setResponseTime(null);\n return;\n }\n\n setLoading(true);\n setError(null);\n let cancelled = false;\n let activeRequest = null;\n let activeRequestKey = null;\n\n const timer = setTimeout(async () => {\n try {\n const cached = getCachedValue(cacheNamespace, cacheKey);\n if (cached) {\n if (!cancelled) {\n setSuggestions(cached.suggestions);\n setResponseTime(cached.responseTime);\n setRateLimited(false);\n setLoading(false);\n }\n return;\n }\n\n const rateLimitStatus = checkRateLimit(rateLimitNamespace, rateLimitConfig);\n if (!rateLimitStatus.allowed) {\n if (!cancelled) {\n setSuggestions([]);\n setResponseTime(null);\n setRateLimited(true);\n setError(RATE_LIMIT_ERROR_CODE);\n setLoading(false);\n }\n return;\n }\n\n activeRequestKey = cacheKey;\n const existingRequest = getInFlightRequest(activeRequestKey);\n let response;\n let elapsedTime;\n\n if (existingRequest) {\n activeRequest = retainInFlightRequest(activeRequestKey);\n ({ response, elapsedTime } = await activeRequest.promise);\n } else {\n const controller = new AbortController();\n const request = {\n controller,\n settled: false,\n promise: (async () => {\n const startTime = performance.now();\n const networkResponse = await axios.post(requestUrl, requestBody, { signal: controller.signal });\n const endTime = performance.now();\n return {\n response: networkResponse,\n elapsedTime: Math.round(endTime - startTime)\n };\n })()\n };\n setInFlightRequest(activeRequestKey, request);\n activeRequest = retainInFlightRequest(activeRequestKey);\n try {\n ({ response, elapsedTime } = await activeRequest.promise);\n } finally {\n settleInFlightRequest(activeRequestKey, activeRequest);\n }\n }\n\n if (cancelled) {\n return;\n }\n\n const formattedSuggestions = transformResponse(response.data);\n setResponseTime(elapsedTime);\n setCachedValue(cacheNamespace, cacheKey, {\n suggestions: formattedSuggestions,\n responseTime: elapsedTime\n }, cacheTtlMs);\n setRateLimited(false);\n setSuggestions(formattedSuggestions);\n } catch (err) {\n if (cancelled || err.name === 'CanceledError' || err.code === 'ERR_CANCELED') {\n return;\n }\n onError?.(err);\n setRateLimited(false);\n setError(err.message);\n setSuggestions([]);\n setResponseTime(null);\n } finally {\n setLoading(false);\n }\n }, debounceMs);\n\n return () => {\n cancelled = true;\n clearTimeout(timer);\n if (activeRequestKey && activeRequest) {\n releaseInFlightRequest(activeRequestKey, activeRequest);\n }\n if (activeRequest?.subscribers === 0 && !activeRequest?.settled) {\n activeRequest.controller.abort();\n }\n };\n }, [isEnabled, debounceMs, ...effectDeps]);\n\n return {\n suggestions,\n loading,\n error,\n rateLimited,\n responseTime\n };\n};\n\nexport default useSmartyLookupBase;\n"],"mappings":"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","ignoreList":[]}
@@ -27,13 +27,14 @@ const buildCacheKey = (trimmedQuery, selectedAddress) => JSON.stringify({
27
27
  postalCode: selectedAddress.zipcode
28
28
  } : null
29
29
  });
30
- const buildLookupUrl = (trimmedQuery, selectedAddress) => {
31
- let smartyUrl = 'https://us-autocomplete-pro.api.smarty.com/' + `lookup?key=${_smartyConfig.SMARTY_US_AUTOCOMPLETE_KEY}&search=${encodeURIComponent(trimmedQuery)}`;
30
+ const buildRequestBody = (trimmedQuery, selectedAddress) => {
31
+ const body = {
32
+ search: trimmedQuery
33
+ };
32
34
  if (selectedAddress) {
33
- const selectedParam = `${selectedAddress.street_line} ` + `${selectedAddress.secondary} (${selectedAddress.entries}) ` + `${selectedAddress.city} ${selectedAddress.state} ${selectedAddress.zipcode}`;
34
- smartyUrl += `&selected=${encodeURIComponent(selectedParam)}`;
35
+ body.selected = `${selectedAddress.street_line} ` + `${selectedAddress.secondary} (${selectedAddress.entries}) ` + `${selectedAddress.city} ${selectedAddress.state} ${selectedAddress.zipcode}`;
35
36
  }
36
- return smartyUrl;
37
+ return body;
37
38
  };
38
39
  const transformSuggestions = (responseData = {}) => {
39
40
  const results = responseData.suggestions || [];
@@ -57,7 +58,8 @@ const useSmartyUSLookup = (query, selectedAddress = null, debounceMs = 300) => {
57
58
  const trimmedQuery = query.trim();
58
59
  const isEnabled = Boolean(trimmedQuery && (selectedAddress || trimmedQuery.length >= MIN_QUERY_LENGTH));
59
60
  const cacheKey = buildCacheKey(trimmedQuery, selectedAddress);
60
- const requestUrl = isEnabled ? buildLookupUrl(trimmedQuery, selectedAddress) : '';
61
+ const requestUrl = `${(0, _smartyConfig.getStreetAddressApiUrl)()}/autocomplete/v1/US`;
62
+ const requestBody = isEnabled ? buildRequestBody(trimmedQuery, selectedAddress) : null;
61
63
  return (0, _useSmartyLookupBase.default)({
62
64
  isEnabled,
63
65
  debounceMs,
@@ -67,9 +69,10 @@ const useSmartyUSLookup = (query, selectedAddress = null, debounceMs = 300) => {
67
69
  rateLimitConfig: RATE_LIMIT_CONFIG,
68
70
  cacheKey,
69
71
  requestUrl,
72
+ requestBody,
70
73
  transformResponse: transformSuggestions,
71
74
  onError: err => {
72
- console.error('Smarty US lookup failed:', err);
75
+ console.error('US autocomplete lookup failed:', err);
73
76
  },
74
77
  effectDeps: [query, selectedAddress]
75
78
  });
@@ -1 +1 @@
1
- {"version":3,"file":"useSmartyUSLookup.js","names":["_smartyConfig","require","_useSmartyLookupBase","_interopRequireDefault","e","__esModule","default","MIN_QUERY_LENGTH","CACHE_NAMESPACE","CACHE_TTL_MS","RATE_LIMIT_NAMESPACE","RATE_LIMIT_CONFIG","limit","windowMs","cooldownMs","buildCacheKey","trimmedQuery","selectedAddress","JSON","stringify","query","selected","streetLine","street_line","secondary","entries","city","region","state","postalCode","zipcode","buildLookupUrl","smartyUrl","SMARTY_US_AUTOCOMPLETE_KEY","encodeURIComponent","selectedParam","transformSuggestions","responseData","results","suggestions","map","result","whiteSpace","displayText","useSmartyUSLookup","debounceMs","trim","isEnabled","Boolean","length","cacheKey","requestUrl","useSmartyLookupBase","cacheNamespace","cacheTtlMs","rateLimitNamespace","rateLimitConfig","transformResponse","onError","err","console","error","effectDeps","_default","exports"],"sources":["../../../src/addressLookup/hooks/useSmartyUSLookup.jsx"],"sourcesContent":["import { SMARTY_US_AUTOCOMPLETE_KEY } from '../utils/smartyConfig';\nimport useSmartyLookupBase from './useSmartyLookupBase';\n\nconst MIN_QUERY_LENGTH = 3;\nconst CACHE_NAMESPACE = 'smarty-us-autocomplete';\nconst CACHE_TTL_MS = 60 * 1000;\nconst RATE_LIMIT_NAMESPACE = 'smarty-us-autocomplete';\nconst RATE_LIMIT_CONFIG = {\n limit: 60,\n windowMs: 60 * 1000,\n cooldownMs: 30 * 1000\n};\n\nconst buildCacheKey = (trimmedQuery, selectedAddress) => JSON.stringify({\n query: trimmedQuery,\n selected: selectedAddress ? {\n streetLine: selectedAddress.street_line,\n secondary: selectedAddress.secondary,\n entries: selectedAddress.entries,\n city: selectedAddress.city,\n region: selectedAddress.state,\n postalCode: selectedAddress.zipcode\n } : null\n});\n\nconst buildLookupUrl = (trimmedQuery, selectedAddress) => {\n let smartyUrl = 'https://us-autocomplete-pro.api.smarty.com/' +\n `lookup?key=${SMARTY_US_AUTOCOMPLETE_KEY}&search=${encodeURIComponent(trimmedQuery)}`;\n\n if (selectedAddress) {\n const selectedParam = `${selectedAddress.street_line} ` +\n `${selectedAddress.secondary} (${selectedAddress.entries}) ` +\n `${selectedAddress.city} ${selectedAddress.state} ${selectedAddress.zipcode}`;\n smartyUrl += `&selected=${encodeURIComponent(selectedParam)}`;\n }\n\n return smartyUrl;\n};\n\nconst transformSuggestions = (responseData = {}) => {\n const results = responseData.suggestions || [];\n\n return results.map((result) => {\n let whiteSpace = '';\n let secondary = result.secondary || '';\n\n if (secondary) {\n if (result.entries > 1) {\n secondary += ` (${result.entries} entries)`;\n }\n whiteSpace = ' ';\n }\n\n const displayText = `${result.street_line}${whiteSpace}${secondary} ${result.city}, ${result.state} ${result.zipcode}`;\n\n return {\n ...result,\n displayText\n };\n });\n};\n\nconst useSmartyUSLookup = (query, selectedAddress = null, debounceMs = 300) => {\n const trimmedQuery = query.trim();\n const isEnabled = Boolean(trimmedQuery && (selectedAddress || trimmedQuery.length >= MIN_QUERY_LENGTH));\n const cacheKey = buildCacheKey(trimmedQuery, selectedAddress);\n const requestUrl = isEnabled ? buildLookupUrl(trimmedQuery, selectedAddress) : '';\n\n return useSmartyLookupBase({\n isEnabled,\n debounceMs,\n cacheNamespace: CACHE_NAMESPACE,\n cacheTtlMs: CACHE_TTL_MS,\n rateLimitNamespace: RATE_LIMIT_NAMESPACE,\n rateLimitConfig: RATE_LIMIT_CONFIG,\n cacheKey,\n requestUrl,\n transformResponse: transformSuggestions,\n onError: (err) => {\n console.error('Smarty US lookup failed:', err);\n },\n effectDeps: [query, selectedAddress]\n });\n};\n\nexport default useSmartyUSLookup;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"useSmartyUSLookup.js","names":["_smartyConfig","require","_useSmartyLookupBase","_interopRequireDefault","e","__esModule","default","MIN_QUERY_LENGTH","CACHE_NAMESPACE","CACHE_TTL_MS","RATE_LIMIT_NAMESPACE","RATE_LIMIT_CONFIG","limit","windowMs","cooldownMs","buildCacheKey","trimmedQuery","selectedAddress","JSON","stringify","query","selected","streetLine","street_line","secondary","entries","city","region","state","postalCode","zipcode","buildRequestBody","body","search","transformSuggestions","responseData","results","suggestions","map","result","whiteSpace","displayText","useSmartyUSLookup","debounceMs","trim","isEnabled","Boolean","length","cacheKey","requestUrl","getStreetAddressApiUrl","requestBody","useSmartyLookupBase","cacheNamespace","cacheTtlMs","rateLimitNamespace","rateLimitConfig","transformResponse","onError","err","console","error","effectDeps","_default","exports"],"sources":["../../../src/addressLookup/hooks/useSmartyUSLookup.jsx"],"sourcesContent":["import { getStreetAddressApiUrl } from '../utils/smartyConfig';\nimport useSmartyLookupBase from './useSmartyLookupBase';\n\nconst MIN_QUERY_LENGTH = 3;\nconst CACHE_NAMESPACE = 'smarty-us-autocomplete';\nconst CACHE_TTL_MS = 60 * 1000;\nconst RATE_LIMIT_NAMESPACE = 'smarty-us-autocomplete';\nconst RATE_LIMIT_CONFIG = {\n limit: 60,\n windowMs: 60 * 1000,\n cooldownMs: 30 * 1000\n};\n\nconst buildCacheKey = (trimmedQuery, selectedAddress) => JSON.stringify({\n query: trimmedQuery,\n selected: selectedAddress ? {\n streetLine: selectedAddress.street_line,\n secondary: selectedAddress.secondary,\n entries: selectedAddress.entries,\n city: selectedAddress.city,\n region: selectedAddress.state,\n postalCode: selectedAddress.zipcode\n } : null\n});\n\nconst buildRequestBody = (trimmedQuery, selectedAddress) => {\n const body = { search: trimmedQuery };\n\n if (selectedAddress) {\n body.selected = `${selectedAddress.street_line} ` +\n `${selectedAddress.secondary} (${selectedAddress.entries}) ` +\n `${selectedAddress.city} ${selectedAddress.state} ${selectedAddress.zipcode}`;\n }\n\n return body;\n};\n\nconst transformSuggestions = (responseData = {}) => {\n const results = responseData.suggestions || [];\n\n return results.map((result) => {\n let whiteSpace = '';\n let secondary = result.secondary || '';\n\n if (secondary) {\n if (result.entries > 1) {\n secondary += ` (${result.entries} entries)`;\n }\n whiteSpace = ' ';\n }\n\n const displayText = `${result.street_line}${whiteSpace}${secondary} ${result.city}, ${result.state} ${result.zipcode}`;\n\n return {\n ...result,\n displayText\n };\n });\n};\n\nconst useSmartyUSLookup = (query, selectedAddress = null, debounceMs = 300) => {\n const trimmedQuery = query.trim();\n const isEnabled = Boolean(trimmedQuery && (selectedAddress || trimmedQuery.length >= MIN_QUERY_LENGTH));\n const cacheKey = buildCacheKey(trimmedQuery, selectedAddress);\n const requestUrl = `${getStreetAddressApiUrl()}/autocomplete/v1/US`;\n const requestBody = isEnabled ? buildRequestBody(trimmedQuery, selectedAddress) : null;\n\n return useSmartyLookupBase({\n isEnabled,\n debounceMs,\n cacheNamespace: CACHE_NAMESPACE,\n cacheTtlMs: CACHE_TTL_MS,\n rateLimitNamespace: RATE_LIMIT_NAMESPACE,\n rateLimitConfig: RATE_LIMIT_CONFIG,\n cacheKey,\n requestUrl,\n requestBody,\n transformResponse: transformSuggestions,\n onError: (err) => {\n console.error('US autocomplete lookup failed:', err);\n },\n effectDeps: [query, selectedAddress]\n });\n};\n\nexport default useSmartyUSLookup;\n"],"mappings":"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","ignoreList":[]}
@@ -17,7 +17,6 @@ const RATE_LIMIT_CONFIG = {
17
17
  windowMs: 60 * 1000,
18
18
  cooldownMs: 60 * 1000
19
19
  };
20
- const VALIDATION_URL = 'https://us-street.api.smarty.com/street-address';
21
20
  const parseDpvFootnotes = (footnotes = '') => {
22
21
  const normalized = String(footnotes || '');
23
22
  const result = new Set();
@@ -108,22 +107,16 @@ const buildValidationSummary = item => {
108
107
  sortPriority: 7
109
108
  };
110
109
  };
111
- const buildValidationParams = formData => {
112
- const params = {
113
- key: _smartyConfig.SMARTY_US_STREET_KEY,
110
+ const buildRequestBody = formData => {
111
+ const body = {
114
112
  street: formData.address1 || '',
115
- secondary: formData.address2 || '',
116
- city: formData.city || '',
117
- state: formData.region || '',
118
- zipcode: (0, _validators.normalizePostalCodeValue)(formData.postalCode || ''),
119
113
  candidates: 10
120
114
  };
121
- Object.keys(params).forEach(key => {
122
- if (params[key] === '' || params[key] === null || params[key] === undefined) {
123
- delete params[key];
124
- }
125
- });
126
- return params;
115
+ if (formData.address2) body.secondary = formData.address2;
116
+ if (formData.city) body.city = formData.city;
117
+ if (formData.region) body.state = formData.region;
118
+ if (formData.postalCode) body.zipcode = (0, _validators.normalizePostalCodeValue)(formData.postalCode);
119
+ return body;
127
120
  };
128
121
  const buildRequestKey = formData => JSON.stringify({
129
122
  street: formData.address1 || '',
@@ -147,7 +140,7 @@ const transformSuggestions = (responseData = []) => responseData.map(item => {
147
140
  }).sort((left, right) => left.validationSummary.sortPriority - right.validationSummary.sortPriority);
148
141
  const useUSAddressValidation = (formData, trigger) => {
149
142
  const isEnabled = Boolean(trigger && trigger !== 0 && (formData === null || formData === void 0 ? void 0 : formData.address1));
150
- const requestParams = buildValidationParams(formData);
143
+ const requestBody = buildRequestBody(formData);
151
144
  const requestKey = `smarty-us-validation:${buildRequestKey(formData)}`;
152
145
  return (0, _useAddressValidationBase.default)({
153
146
  isEnabled,
@@ -156,8 +149,8 @@ const useUSAddressValidation = (formData, trigger) => {
156
149
  rateLimitNamespace: RATE_LIMIT_NAMESPACE,
157
150
  rateLimitConfig: RATE_LIMIT_CONFIG,
158
151
  requestKey,
159
- requestUrl: VALIDATION_URL,
160
- requestParams,
152
+ requestUrl: `${(0, _smartyConfig.getStreetAddressApiUrl)()}/validate/v1/US`,
153
+ requestBody,
161
154
  transformResponse: transformSuggestions,
162
155
  effectDeps: [trigger]
163
156
  });
@@ -1 +1 @@
1
- {"version":3,"file":"useUSAddressValidation.js","names":["_smartyConfig","require","_validators","_useAddressValidationBase","_interopRequireDefault","e","__esModule","default","VALID_DPV_CODES","Set","CACHE_NAMESPACE","CACHE_TTL_MS","RATE_LIMIT_NAMESPACE","RATE_LIMIT_CONFIG","limit","windowMs","cooldownMs","VALIDATION_URL","parseDpvFootnotes","footnotes","normalized","String","result","index","length","code","slice","add","trimZipPlus4","value","replace","buildDisplayText","item","_item$components","_item$components2","_item$components3","line1","delivery_line_1","line2","delivery_line_2","city","components","city_name","region","state_abbreviation","postalCode","zipcode","lastLine","filter","Boolean","join","last_line","buildValidationSummary","analysis","dpvMatchCode","dpv_match_code","dpv_footnotes","isVacant","dpv_vacant","isNoStat","dpv_no_stat","level","title","message","sortPriority","has","buildValidationParams","formData","params","key","SMARTY_US_STREET_KEY","street","address1","secondary","address2","state","normalizePostalCodeValue","candidates","Object","keys","forEach","undefined","buildRequestKey","JSON","stringify","transformSuggestions","responseData","map","_item$analysis","_item$metadata","_item$metadata2","isDeliverable","latitude","metadata","longitude","displayText","validationSummary","sort","left","right","useUSAddressValidation","trigger","isEnabled","requestParams","requestKey","useAddressValidationBase","cacheNamespace","cacheTtlMs","rateLimitNamespace","rateLimitConfig","requestUrl","transformResponse","effectDeps","_default","exports"],"sources":["../../../src/addressLookup/hooks/useUSAddressValidation.jsx"],"sourcesContent":["import { SMARTY_US_STREET_KEY } from '../utils/smartyConfig';\nimport { normalizePostalCodeValue } from '../utils/validators';\nimport useAddressValidationBase from './useAddressValidationBase';\n\nconst VALID_DPV_CODES = new Set(['Y', 'S', 'D']);\nconst CACHE_NAMESPACE = 'smarty-us-validation';\nconst CACHE_TTL_MS = 60 * 1000;\nconst RATE_LIMIT_NAMESPACE = 'smarty-us-validation';\nconst RATE_LIMIT_CONFIG = {\n limit: 60,\n windowMs: 60 * 1000,\n cooldownMs: 60 * 1000\n};\nconst VALIDATION_URL = 'https://us-street.api.smarty.com/street-address';\n\nconst parseDpvFootnotes = (footnotes = '') => {\n const normalized = String(footnotes || '');\n const result = new Set();\n\n for (let index = 0; index < normalized.length; index += 2) {\n const code = normalized.slice(index, index + 2);\n if (code.length === 2) {\n result.add(code);\n }\n }\n\n return result;\n};\n\nconst trimZipPlus4 = (value = '') => String(value).replace(/(\\b\\d{5})-\\d{4}\\b/g, '$1');\n\nconst buildDisplayText = (item) => {\n const line1 = item.delivery_line_1;\n const line2 = item.delivery_line_2;\n const city = item.components?.city_name;\n const region = item.components?.state_abbreviation;\n const postalCode = item.components?.zipcode;\n\n const lastLine = city && region ?\n [city, region, postalCode].filter(Boolean).join(' ') :\n trimZipPlus4(item.last_line || '');\n\n return [\n line1,\n line2,\n lastLine\n ].filter(Boolean).join(', ');\n};\n\nconst buildValidationSummary = (item) => {\n const analysis = item.analysis || {};\n const dpvMatchCode = analysis.dpv_match_code || '';\n const footnotes = parseDpvFootnotes(analysis.dpv_footnotes);\n const isVacant = analysis.dpv_vacant === 'Y';\n const isNoStat = analysis.dpv_no_stat === 'Y';\n\n if (dpvMatchCode === 'Y' && !isVacant && !isNoStat) {\n return {\n level: 'verified',\n code: 'verified',\n title: 'Verified',\n message: 'This address is fully verified.',\n sortPriority: 1\n };\n }\n\n if (dpvMatchCode === 'S' && footnotes.has('CC')) {\n return {\n level: 'warning',\n code: 'invalid-secondary-optional',\n title: 'Unit not recognized',\n message: 'The main address is valid, but the unit number was not recognized.',\n sortPriority: 2\n };\n }\n\n if (dpvMatchCode === 'D' || footnotes.has('N1')) {\n return {\n level: 'warning',\n code: 'missing-secondary',\n title: 'Apartment or suite needed',\n message: 'The main address is valid, but a unit number is required.',\n sortPriority: 3\n };\n }\n\n if (dpvMatchCode === 'S' && footnotes.has('C1')) {\n return {\n level: 'warning',\n code: 'invalid-secondary-required',\n title: 'Apartment or suite not recognized',\n message: 'The street address is valid, but the unit number was not recognized and is required.',\n sortPriority: 4\n };\n }\n\n if ((dpvMatchCode === 'Y' || dpvMatchCode === 'S' || dpvMatchCode === 'D') && isVacant) {\n return {\n level: 'warning',\n code: 'vacant',\n title: 'Verified, but marked vacant',\n message: 'This address is valid but marked as vacant.',\n sortPriority: 5\n };\n }\n\n if ((dpvMatchCode === 'Y' || dpvMatchCode === 'S' || dpvMatchCode === 'D') && isNoStat) {\n return {\n level: 'warning',\n code: 'no-stat',\n title: 'Verified with caution',\n message: 'This address is valid, but USPS indicates limited delivery status.',\n sortPriority: 6\n };\n }\n\n return {\n level: 'invalid',\n code: 'not-confirmed',\n title: 'Not verified',\n message: 'This address could not be confirmed.',\n sortPriority: 7\n };\n};\n\nconst buildValidationParams = (formData) => {\n const params = {\n key: SMARTY_US_STREET_KEY,\n street: formData.address1 || '',\n secondary: formData.address2 || '',\n city: formData.city || '',\n state: formData.region || '',\n zipcode: normalizePostalCodeValue(formData.postalCode || ''),\n candidates: 10\n };\n\n Object.keys(params).forEach((key) => {\n if (params[key] === '' || params[key] === null || params[key] === undefined) {\n delete params[key];\n }\n });\n\n return params;\n};\n\nconst buildRequestKey = (formData) => JSON.stringify({\n street: formData.address1 || '',\n secondary: formData.address2 || '',\n city: formData.city || '',\n state: formData.region || '',\n zipcode: normalizePostalCodeValue(formData.postalCode || '')\n});\n\nconst transformSuggestions = (responseData = []) => responseData\n .map((item) => {\n const dpvMatchCode = item.analysis?.dpv_match_code || '';\n\n return {\n ...item,\n dpvMatchCode,\n isDeliverable: VALID_DPV_CODES.has(dpvMatchCode),\n latitude: item.metadata?.latitude,\n longitude: item.metadata?.longitude,\n displayText: buildDisplayText(item),\n validationSummary: buildValidationSummary(item)\n };\n })\n .sort((left, right) => left.validationSummary.sortPriority - right.validationSummary.sortPriority);\n\nconst useUSAddressValidation = (formData, trigger) => {\n const isEnabled = Boolean(trigger && trigger !== 0 && formData?.address1);\n const requestParams = buildValidationParams(formData);\n const requestKey = `smarty-us-validation:${buildRequestKey(formData)}`;\n\n return useAddressValidationBase({\n isEnabled,\n cacheNamespace: CACHE_NAMESPACE,\n cacheTtlMs: CACHE_TTL_MS,\n rateLimitNamespace: RATE_LIMIT_NAMESPACE,\n rateLimitConfig: RATE_LIMIT_CONFIG,\n requestKey,\n requestUrl: VALIDATION_URL,\n requestParams,\n transformResponse: transformSuggestions,\n effectDeps: [trigger]\n });\n};\n\nexport default useUSAddressValidation;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"useUSAddressValidation.js","names":["_smartyConfig","require","_validators","_useAddressValidationBase","_interopRequireDefault","e","__esModule","default","VALID_DPV_CODES","Set","CACHE_NAMESPACE","CACHE_TTL_MS","RATE_LIMIT_NAMESPACE","RATE_LIMIT_CONFIG","limit","windowMs","cooldownMs","parseDpvFootnotes","footnotes","normalized","String","result","index","length","code","slice","add","trimZipPlus4","value","replace","buildDisplayText","item","_item$components","_item$components2","_item$components3","line1","delivery_line_1","line2","delivery_line_2","city","components","city_name","region","state_abbreviation","postalCode","zipcode","lastLine","filter","Boolean","join","last_line","buildValidationSummary","analysis","dpvMatchCode","dpv_match_code","dpv_footnotes","isVacant","dpv_vacant","isNoStat","dpv_no_stat","level","title","message","sortPriority","has","buildRequestBody","formData","body","street","address1","candidates","address2","secondary","state","normalizePostalCodeValue","buildRequestKey","JSON","stringify","transformSuggestions","responseData","map","_item$analysis","_item$metadata","_item$metadata2","isDeliverable","latitude","metadata","longitude","displayText","validationSummary","sort","left","right","useUSAddressValidation","trigger","isEnabled","requestBody","requestKey","useAddressValidationBase","cacheNamespace","cacheTtlMs","rateLimitNamespace","rateLimitConfig","requestUrl","getStreetAddressApiUrl","transformResponse","effectDeps","_default","exports"],"sources":["../../../src/addressLookup/hooks/useUSAddressValidation.jsx"],"sourcesContent":["import { getStreetAddressApiUrl } from '../utils/smartyConfig';\nimport { normalizePostalCodeValue } from '../utils/validators';\nimport useAddressValidationBase from './useAddressValidationBase';\n\nconst VALID_DPV_CODES = new Set(['Y', 'S', 'D']);\nconst CACHE_NAMESPACE = 'smarty-us-validation';\nconst CACHE_TTL_MS = 60 * 1000;\nconst RATE_LIMIT_NAMESPACE = 'smarty-us-validation';\nconst RATE_LIMIT_CONFIG = {\n limit: 60,\n windowMs: 60 * 1000,\n cooldownMs: 60 * 1000\n};\n\nconst parseDpvFootnotes = (footnotes = '') => {\n const normalized = String(footnotes || '');\n const result = new Set();\n\n for (let index = 0; index < normalized.length; index += 2) {\n const code = normalized.slice(index, index + 2);\n if (code.length === 2) {\n result.add(code);\n }\n }\n\n return result;\n};\n\nconst trimZipPlus4 = (value = '') => String(value).replace(/(\\b\\d{5})-\\d{4}\\b/g, '$1');\n\nconst buildDisplayText = (item) => {\n const line1 = item.delivery_line_1;\n const line2 = item.delivery_line_2;\n const city = item.components?.city_name;\n const region = item.components?.state_abbreviation;\n const postalCode = item.components?.zipcode;\n\n const lastLine = city && region ?\n [city, region, postalCode].filter(Boolean).join(' ') :\n trimZipPlus4(item.last_line || '');\n\n return [\n line1,\n line2,\n lastLine\n ].filter(Boolean).join(', ');\n};\n\nconst buildValidationSummary = (item) => {\n const analysis = item.analysis || {};\n const dpvMatchCode = analysis.dpv_match_code || '';\n const footnotes = parseDpvFootnotes(analysis.dpv_footnotes);\n const isVacant = analysis.dpv_vacant === 'Y';\n const isNoStat = analysis.dpv_no_stat === 'Y';\n\n if (dpvMatchCode === 'Y' && !isVacant && !isNoStat) {\n return { level: 'verified', code: 'verified', title: 'Verified', message: 'This address is fully verified.', sortPriority: 1 };\n }\n if (dpvMatchCode === 'S' && footnotes.has('CC')) {\n return { level: 'warning', code: 'invalid-secondary-optional', title: 'Unit not recognized', message: 'The main address is valid, but the unit number was not recognized.', sortPriority: 2 };\n }\n if (dpvMatchCode === 'D' || footnotes.has('N1')) {\n return { level: 'warning', code: 'missing-secondary', title: 'Apartment or suite needed', message: 'The main address is valid, but a unit number is required.', sortPriority: 3 };\n }\n if (dpvMatchCode === 'S' && footnotes.has('C1')) {\n return { level: 'warning', code: 'invalid-secondary-required', title: 'Apartment or suite not recognized', message: 'The street address is valid, but the unit number was not recognized and is required.', sortPriority: 4 };\n }\n if ((dpvMatchCode === 'Y' || dpvMatchCode === 'S' || dpvMatchCode === 'D') && isVacant) {\n return { level: 'warning', code: 'vacant', title: 'Verified, but marked vacant', message: 'This address is valid but marked as vacant.', sortPriority: 5 };\n }\n if ((dpvMatchCode === 'Y' || dpvMatchCode === 'S' || dpvMatchCode === 'D') && isNoStat) {\n return { level: 'warning', code: 'no-stat', title: 'Verified with caution', message: 'This address is valid, but USPS indicates limited delivery status.', sortPriority: 6 };\n }\n\n return { level: 'invalid', code: 'not-confirmed', title: 'Not verified', message: 'This address could not be confirmed.', sortPriority: 7 };\n};\n\nconst buildRequestBody = (formData) => {\n const body = {\n street: formData.address1 || '',\n candidates: 10\n };\n\n if (formData.address2) body.secondary = formData.address2;\n if (formData.city) body.city = formData.city;\n if (formData.region) body.state = formData.region;\n if (formData.postalCode) body.zipcode = normalizePostalCodeValue(formData.postalCode);\n\n return body;\n};\n\nconst buildRequestKey = (formData) => JSON.stringify({\n street: formData.address1 || '',\n secondary: formData.address2 || '',\n city: formData.city || '',\n state: formData.region || '',\n zipcode: normalizePostalCodeValue(formData.postalCode || '')\n});\n\nconst transformSuggestions = (responseData = []) => responseData\n .map((item) => {\n const dpvMatchCode = item.analysis?.dpv_match_code || '';\n return {\n ...item,\n dpvMatchCode,\n isDeliverable: VALID_DPV_CODES.has(dpvMatchCode),\n latitude: item.metadata?.latitude,\n longitude: item.metadata?.longitude,\n displayText: buildDisplayText(item),\n validationSummary: buildValidationSummary(item)\n };\n })\n .sort((left, right) => left.validationSummary.sortPriority - right.validationSummary.sortPriority);\n\nconst useUSAddressValidation = (formData, trigger) => {\n const isEnabled = Boolean(trigger && trigger !== 0 && formData?.address1);\n const requestBody = buildRequestBody(formData);\n const requestKey = `smarty-us-validation:${buildRequestKey(formData)}`;\n\n return useAddressValidationBase({\n isEnabled,\n cacheNamespace: CACHE_NAMESPACE,\n cacheTtlMs: CACHE_TTL_MS,\n rateLimitNamespace: RATE_LIMIT_NAMESPACE,\n rateLimitConfig: RATE_LIMIT_CONFIG,\n requestKey,\n requestUrl: `${getStreetAddressApiUrl()}/validate/v1/US`,\n requestBody,\n transformResponse: transformSuggestions,\n effectDeps: [trigger]\n });\n};\n\nexport default useUSAddressValidation;\n"],"mappings":"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","ignoreList":[]}
@@ -3,9 +3,12 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.SMARTY_US_STREET_KEY = exports.SMARTY_US_AUTOCOMPLETE_KEY = exports.SMARTY_INTL_STREET_KEY = exports.SMARTY_INTL_AUTOCOMPLETE_KEY = void 0;
7
- const SMARTY_US_AUTOCOMPLETE_KEY = exports.SMARTY_US_AUTOCOMPLETE_KEY = '22361352819063501';
8
- const SMARTY_INTL_AUTOCOMPLETE_KEY = exports.SMARTY_INTL_AUTOCOMPLETE_KEY = '22361352819063501';
9
- const SMARTY_INTL_STREET_KEY = exports.SMARTY_INTL_STREET_KEY = '22361352819063501';
10
- const SMARTY_US_STREET_KEY = exports.SMARTY_US_STREET_KEY = '22361352819063501';
6
+ exports.setStreetAddressApiUrl = exports.getStreetAddressApiUrl = void 0;
7
+ let _streetAddressApiUrl = 'https://apis.nuskin.com/street-address';
8
+ const setStreetAddressApiUrl = url => {
9
+ _streetAddressApiUrl = url;
10
+ };
11
+ exports.setStreetAddressApiUrl = setStreetAddressApiUrl;
12
+ const getStreetAddressApiUrl = () => _streetAddressApiUrl;
13
+ exports.getStreetAddressApiUrl = getStreetAddressApiUrl;
11
14
  //# sourceMappingURL=smartyConfig.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"smartyConfig.js","names":["SMARTY_US_AUTOCOMPLETE_KEY","exports","SMARTY_INTL_AUTOCOMPLETE_KEY","SMARTY_INTL_STREET_KEY","SMARTY_US_STREET_KEY"],"sources":["../../../src/addressLookup/utils/smartyConfig.js"],"sourcesContent":["export const SMARTY_US_AUTOCOMPLETE_KEY = '22361352819063501';\nexport const SMARTY_INTL_AUTOCOMPLETE_KEY = '22361352819063501';\nexport const SMARTY_INTL_STREET_KEY = '22361352819063501';\nexport const SMARTY_US_STREET_KEY = '22361352819063501';\n\n"],"mappings":";;;;;;AAAO,MAAMA,0BAA0B,GAAAC,OAAA,CAAAD,0BAAA,GAAG,mBAAmB;AACtD,MAAME,4BAA4B,GAAAD,OAAA,CAAAC,4BAAA,GAAG,mBAAmB;AACxD,MAAMC,sBAAsB,GAAAF,OAAA,CAAAE,sBAAA,GAAG,mBAAmB;AAClD,MAAMC,oBAAoB,GAAAH,OAAA,CAAAG,oBAAA,GAAG,mBAAmB","ignoreList":[]}
1
+ {"version":3,"file":"smartyConfig.js","names":["_streetAddressApiUrl","setStreetAddressApiUrl","url","exports","getStreetAddressApiUrl"],"sources":["../../../src/addressLookup/utils/smartyConfig.js"],"sourcesContent":["let _streetAddressApiUrl = 'https://apis.nuskin.com/street-address';\n\nexport const setStreetAddressApiUrl = (url) => {\n _streetAddressApiUrl = url;\n};\n\nexport const getStreetAddressApiUrl = () => _streetAddressApiUrl;\n"],"mappings":";;;;;;AAAA,IAAIA,oBAAoB,GAAG,wCAAwC;AAE5D,MAAMC,sBAAsB,GAAIC,GAAG,IAAK;EAC7CF,oBAAoB,GAAGE,GAAG;AAC5B,CAAC;AAACC,OAAA,CAAAF,sBAAA,GAAAA,sBAAA;AAEK,MAAMG,sBAAsB,GAAGA,CAAA,KAAMJ,oBAAoB;AAACG,OAAA,CAAAC,sBAAA,GAAAA,sBAAA","ignoreList":[]}
package/dist/index.js CHANGED
@@ -39,9 +39,16 @@ Object.defineProperty(exports, "normalizeAddressForm", {
39
39
  return _addressForm.normalizeAddressForm;
40
40
  }
41
41
  });
42
+ Object.defineProperty(exports, "setStreetAddressApiUrl", {
43
+ enumerable: true,
44
+ get: function () {
45
+ return _smartyConfig.setStreetAddressApiUrl;
46
+ }
47
+ });
42
48
  var _ShippingAddressForm = _interopRequireDefault(require("./shippingAddressForm/ShippingAddressForm"));
43
49
  var _addressLookup = _interopRequireDefault(require("./addressLookup"));
44
50
  var _addressForm = require("./addressLookup/utils/addressForm");
45
51
  var _countries = require("./addressLookup/countries");
52
+ var _smartyConfig = require("./addressLookup/utils/smartyConfig");
46
53
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
47
54
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_ShippingAddressForm","_interopRequireDefault","require","_addressLookup","_addressForm","_countries","e","__esModule","default"],"sources":["../src/index.js"],"sourcesContent":["export { default as ShippingAddressForm } from './shippingAddressForm/ShippingAddressForm';\nexport { default } from './shippingAddressForm/ShippingAddressForm';\nexport { default as AddressLookup } from './addressLookup';\nexport { normalizeAddressForm, DEFAULT_ADDRESS_FORM } from './addressLookup/utils/addressForm';\nexport { SUPPORTED_COUNTRIES } from './addressLookup/countries';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,oBAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,cAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,YAAA,GAAAF,OAAA;AACA,IAAAG,UAAA,GAAAH,OAAA;AAAgE,SAAAD,uBAAAK,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["_ShippingAddressForm","_interopRequireDefault","require","_addressLookup","_addressForm","_countries","_smartyConfig","e","__esModule","default"],"sources":["../src/index.js"],"sourcesContent":["export { default as ShippingAddressForm } from './shippingAddressForm/ShippingAddressForm';\nexport { default } from './shippingAddressForm/ShippingAddressForm';\nexport { default as AddressLookup } from './addressLookup';\nexport { normalizeAddressForm, DEFAULT_ADDRESS_FORM } from './addressLookup/utils/addressForm';\nexport { SUPPORTED_COUNTRIES } from './addressLookup/countries';\nexport { setStreetAddressApiUrl } from './addressLookup/utils/smartyConfig';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,oBAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,cAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,YAAA,GAAAF,OAAA;AACA,IAAAG,UAAA,GAAAH,OAAA;AACA,IAAAI,aAAA,GAAAJ,OAAA;AAA4E,SAAAD,uBAAAM,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nuskin/shipping-address-form",
3
- "version": "1.7.9",
3
+ "version": "1.7.10-6614-dev.1",
4
4
  "description": "React components for standalone address lookup and shipping address forms",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {