@cranberry-money/shared-utils 8.23.413 → 8.23.414
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.
- package/dist/address.d.ts +5 -0
- package/dist/address.d.ts.map +1 -0
- package/dist/address.js +10 -0
- package/dist/address.js.map +1 -0
- package/dist/formatting-labels.d.ts +3 -0
- package/dist/formatting-labels.d.ts.map +1 -0
- package/dist/formatting-labels.js +26 -0
- package/dist/formatting-labels.js.map +1 -0
- package/dist/index.d.ts +9 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -4
- package/dist/index.js.map +1 -1
- package/dist/phoneFormatting.d.ts +3 -0
- package/dist/phoneFormatting.d.ts.map +1 -0
- package/dist/phoneFormatting.js +14 -0
- package/dist/phoneFormatting.js.map +1 -0
- package/dist/user-validation.d.ts +2 -0
- package/dist/user-validation.d.ts.map +1 -0
- package/dist/user-validation.js +11 -0
- package/dist/user-validation.js.map +1 -0
- package/dist/user-verification.d.ts +3 -0
- package/dist/user-verification.d.ts.map +1 -0
- package/dist/user-verification.js +13 -0
- package/dist/user-verification.js.map +1 -0
- package/dist/validation.d.ts +3 -0
- package/dist/validation.d.ts.map +1 -1
- package/dist/validation.js +22 -0
- package/dist/validation.js.map +1 -1
- package/package.json +3 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"address.d.ts","sourceRoot":"","sources":["../src/address.ts"],"names":[],"mappings":"AAAA,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,EAAE,CAAA;CAAE,CAIjE;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAEhE"}
|
package/dist/address.js
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export function parseAddress(address) {
|
|
2
|
+
if (!address)
|
|
3
|
+
return { lines: [] };
|
|
4
|
+
const lines = address.split(',').map(s => s.trim()).filter(Boolean);
|
|
5
|
+
return { lines };
|
|
6
|
+
}
|
|
7
|
+
export function getAddressDisplayLines(address) {
|
|
8
|
+
return parseAddress(address).lines;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=address.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"address.js","sourceRoot":"","sources":["../src/address.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,YAAY,CAAC,OAAe;IAC1C,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;IACnC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACpE,OAAO,EAAE,KAAK,EAAE,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,OAAe;IACpD,OAAO,YAAY,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC;AACrC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formatting-labels.d.ts","sourceRoot":"","sources":["../src/formatting-labels.ts"],"names":[],"mappings":"AAiBA,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAG3D;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAGrD"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
const SOURCE_OF_FUNDS_LABELS = {
|
|
2
|
+
employment_income: 'Employment income',
|
|
3
|
+
savings: 'Savings',
|
|
4
|
+
investment_income: 'Investment income',
|
|
5
|
+
sale_of_assets: 'Sale of assets',
|
|
6
|
+
inheritance: 'Inheritance',
|
|
7
|
+
gift: 'Gift',
|
|
8
|
+
other: 'Other',
|
|
9
|
+
};
|
|
10
|
+
const INTENDED_USE_LABELS = {
|
|
11
|
+
long_term_investment: 'Long-term investment',
|
|
12
|
+
trading_crypto: 'Trading crypto currencies',
|
|
13
|
+
savings: 'Savings',
|
|
14
|
+
other: 'Other',
|
|
15
|
+
};
|
|
16
|
+
export function formatSourceOfFunds(funds) {
|
|
17
|
+
if (!funds || funds.length === 0)
|
|
18
|
+
return '';
|
|
19
|
+
return funds.map(fund => SOURCE_OF_FUNDS_LABELS[fund] || fund).join(', ');
|
|
20
|
+
}
|
|
21
|
+
export function formatIntendedUse(use) {
|
|
22
|
+
if (!use)
|
|
23
|
+
return '';
|
|
24
|
+
return INTENDED_USE_LABELS[use] || use;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=formatting-labels.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formatting-labels.js","sourceRoot":"","sources":["../src/formatting-labels.ts"],"names":[],"mappings":"AAAA,MAAM,sBAAsB,GAA2B;IACrD,iBAAiB,EAAE,mBAAmB;IACtC,OAAO,EAAE,SAAS;IAClB,iBAAiB,EAAE,mBAAmB;IACtC,cAAc,EAAE,gBAAgB;IAChC,WAAW,EAAE,aAAa;IAC1B,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,OAAO;CACf,CAAC;AAEF,MAAM,mBAAmB,GAA2B;IAClD,oBAAoB,EAAE,sBAAsB;IAC5C,cAAc,EAAE,2BAA2B;IAC3C,OAAO,EAAE,SAAS;IAClB,KAAK,EAAE,OAAO;CACf,CAAC;AAEF,MAAM,UAAU,mBAAmB,CAAC,KAAe;IACjD,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAC5C,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5E,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,GAAW;IAC3C,IAAI,CAAC,GAAG;QAAE,OAAO,EAAE,CAAC;IACpB,OAAO,mBAAmB,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC;AACzC,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,12 @@
|
|
|
1
|
-
export { formatFullDate, formatShortDate, formatTime, getDateRange, type DateRange
|
|
2
|
-
export { formatCurrency, type FormatCurrencyOptions, formatCryptoBalance, formatPercentage, } from './formatting';
|
|
3
|
-
export { isNumericOnly, validatePassword, formatVerificationToken, validateEmailConfirmation, } from './validation';
|
|
4
|
-
export { validateWalletAddress, detectChainFromAddress, formatWalletAddressShort, formatWalletAddressMedium
|
|
1
|
+
export { formatFullDate, formatShortDate, formatTime, formatFullDateTime, getDateRange, type DateRange } from './date';
|
|
2
|
+
export { formatCurrency, type FormatCurrencyOptions, formatCryptoBalance, formatPercentage, getBlockchainShortName } from './formatting';
|
|
3
|
+
export { isNumericOnly, validatePassword, formatVerificationToken, validateEmailConfirmation, isValidFullName, isValidPhoneFormat, formatPhoneNumber } from './validation';
|
|
4
|
+
export { validateWalletAddress, detectChainFromAddress, formatWalletAddressShort, formatWalletAddressMedium } from './validation/wallets';
|
|
5
5
|
export { hasActiveFilters, countActiveFilters } from './filters';
|
|
6
6
|
export { getAssetType, getAssetTypeVariant } from './assets';
|
|
7
|
+
export { parseAddress, getAddressDisplayLines } from './address';
|
|
8
|
+
export { formatPhoneForDisplay, cleanPhoneNumber } from './phoneFormatting';
|
|
9
|
+
export { formatSourceOfFunds, formatIntendedUse } from './formatting-labels';
|
|
10
|
+
export { validateUserProfileField } from './user-validation';
|
|
11
|
+
export { getUserVerificationStatus, type VerificationStatusType } from './user-verification';
|
|
7
12
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,UAAU,EAAE,kBAAkB,EAAE,YAAY,EAAE,KAAK,SAAS,EAAE,MAAM,QAAQ,CAAC;AACvH,OAAO,EAAE,cAAc,EAAE,KAAK,qBAAqB,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACzI,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,yBAAyB,EAAE,eAAe,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAC3K,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAC1I,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7E,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,yBAAyB,EAAE,KAAK,sBAAsB,EAAE,MAAM,qBAAqB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,12 @@
|
|
|
1
|
-
export { formatFullDate, formatShortDate, formatTime,
|
|
2
|
-
export { formatCurrency, formatCryptoBalance, formatPercentage, } from './formatting';
|
|
3
|
-
export { isNumericOnly, validatePassword, formatVerificationToken, validateEmailConfirmation, } from './validation';
|
|
4
|
-
export { validateWalletAddress, detectChainFromAddress, formatWalletAddressShort, formatWalletAddressMedium
|
|
1
|
+
export { formatFullDate, formatShortDate, formatTime, formatFullDateTime, getDateRange } from './date';
|
|
2
|
+
export { formatCurrency, formatCryptoBalance, formatPercentage, getBlockchainShortName } from './formatting';
|
|
3
|
+
export { isNumericOnly, validatePassword, formatVerificationToken, validateEmailConfirmation, isValidFullName, isValidPhoneFormat, formatPhoneNumber } from './validation';
|
|
4
|
+
export { validateWalletAddress, detectChainFromAddress, formatWalletAddressShort, formatWalletAddressMedium } from './validation/wallets';
|
|
5
5
|
export { hasActiveFilters, countActiveFilters } from './filters';
|
|
6
6
|
export { getAssetType, getAssetTypeVariant } from './assets';
|
|
7
|
+
export { parseAddress, getAddressDisplayLines } from './address';
|
|
8
|
+
export { formatPhoneForDisplay, cleanPhoneNumber } from './phoneFormatting';
|
|
9
|
+
export { formatSourceOfFunds, formatIntendedUse } from './formatting-labels';
|
|
10
|
+
export { validateUserProfileField } from './user-validation';
|
|
11
|
+
export { getUserVerificationStatus } from './user-verification';
|
|
7
12
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,UAAU,EAAE,kBAAkB,EAAE,YAAY,EAAkB,MAAM,QAAQ,CAAC;AACvH,OAAO,EAAE,cAAc,EAA8B,mBAAmB,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACzI,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,yBAAyB,EAAE,eAAe,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAC3K,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAC1I,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7E,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,yBAAyB,EAA+B,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"phoneFormatting.d.ts","sourceRoot":"","sources":["../src/phoneFormatting.ts"],"names":[],"mappings":"AAAA,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAQjE;AAED,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAE5D"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export function formatPhoneForDisplay(phoneNumber) {
|
|
2
|
+
if (!phoneNumber)
|
|
3
|
+
return '';
|
|
4
|
+
const cleaned = phoneNumber.replace(/\D/g, '');
|
|
5
|
+
if (cleaned.startsWith('61') && cleaned.length === 11) {
|
|
6
|
+
const mobile = cleaned.slice(2);
|
|
7
|
+
return `+61 ${mobile.slice(0, 3)} ${mobile.slice(3, 6)} ${mobile.slice(6)}`;
|
|
8
|
+
}
|
|
9
|
+
return phoneNumber.trim();
|
|
10
|
+
}
|
|
11
|
+
export function cleanPhoneNumber(phoneNumber) {
|
|
12
|
+
return phoneNumber.replace(/\D/g, '');
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=phoneFormatting.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"phoneFormatting.js","sourceRoot":"","sources":["../src/phoneFormatting.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,qBAAqB,CAAC,WAAmB;IACvD,IAAI,CAAC,WAAW;QAAE,OAAO,EAAE,CAAC;IAC5B,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAC/C,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;QACtD,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAChC,OAAO,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9E,CAAC;IACD,OAAO,WAAW,CAAC,IAAI,EAAE,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,WAAmB;IAClD,OAAO,WAAW,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AACxC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user-validation.d.ts","sourceRoot":"","sources":["../src/user-validation.ts"],"names":[],"mappings":"AAAA,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAQ9E"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export function validateUserProfileField(field, value) {
|
|
2
|
+
if (!value)
|
|
3
|
+
return false;
|
|
4
|
+
const trimmed = value.trim();
|
|
5
|
+
switch (field) {
|
|
6
|
+
case 'fullName': return trimmed.split(/\s+/).length >= 2;
|
|
7
|
+
case 'phone': return trimmed.length >= 8 && /^[+\-\s\d()]+$/.test(trimmed);
|
|
8
|
+
default: return trimmed.length > 0;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=user-validation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user-validation.js","sourceRoot":"","sources":["../src/user-validation.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,wBAAwB,CAAC,KAAa,EAAE,KAAa;IACnE,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IACzB,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,QAAQ,KAAK,EAAE,CAAC;QACd,KAAK,UAAU,CAAC,CAAC,OAAO,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC;QACzD,KAAK,OAAO,CAAC,CAAC,OAAO,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3E,OAAO,CAAC,CAAC,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;IACrC,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user-verification.d.ts","sourceRoot":"","sources":["../src/user-verification.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,sBAAsB,GAAG,UAAU,GAAG,SAAS,GAAG,UAAU,GAAG,aAAa,CAAC;AAEzF,wBAAgB,yBAAyB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,sBAAsB,CAOjF"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export function getUserVerificationStatus(status) {
|
|
2
|
+
if (!status)
|
|
3
|
+
return 'not_started';
|
|
4
|
+
const normalized = status.toLowerCase();
|
|
5
|
+
if (normalized === 'verified' || normalized === 'approved')
|
|
6
|
+
return 'verified';
|
|
7
|
+
if (normalized === 'pending' || normalized === 'in_progress')
|
|
8
|
+
return 'pending';
|
|
9
|
+
if (normalized === 'rejected' || normalized === 'failed')
|
|
10
|
+
return 'rejected';
|
|
11
|
+
return 'not_started';
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=user-verification.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user-verification.js","sourceRoot":"","sources":["../src/user-verification.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,yBAAyB,CAAC,MAAe;IACvD,IAAI,CAAC,MAAM;QAAE,OAAO,aAAa,CAAC;IAClC,MAAM,UAAU,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;IACxC,IAAI,UAAU,KAAK,UAAU,IAAI,UAAU,KAAK,UAAU;QAAE,OAAO,UAAU,CAAC;IAC9E,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,aAAa;QAAE,OAAO,SAAS,CAAC;IAC/E,IAAI,UAAU,KAAK,UAAU,IAAI,UAAU,KAAK,QAAQ;QAAE,OAAO,UAAU,CAAC;IAC5E,OAAO,aAAa,CAAC;AACvB,CAAC"}
|
package/dist/validation.d.ts
CHANGED
|
@@ -3,4 +3,7 @@ export declare function isNumericOnly(str: string): boolean;
|
|
|
3
3
|
export declare function validatePassword(password: string, minLength?: number): PasswordValidation;
|
|
4
4
|
export declare function formatVerificationToken(token: string): string;
|
|
5
5
|
export declare function validateEmailConfirmation(token: string, exactLength?: number): EmailConfirmationValidation;
|
|
6
|
+
export declare function isValidFullName(fullName: string, minParts?: number): boolean;
|
|
7
|
+
export declare function isValidPhoneFormat(phoneNumber: string, minLength?: number): boolean;
|
|
8
|
+
export declare function formatPhoneNumber(phoneNumber: string): string;
|
|
6
9
|
//# sourceMappingURL=validation.d.ts.map
|
package/dist/validation.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAErG,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAElD;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,SAAI,GAAG,kBAAkB,CAIpF;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE7D;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,SAAI,GAAG,2BAA2B,CAIrG"}
|
|
1
|
+
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAErG,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAElD;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,SAAI,GAAG,kBAAkB,CAIpF;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE7D;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,SAAI,GAAG,2BAA2B,CAIrG;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,SAAI,GAAG,OAAO,CAIvE;AAED,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,SAAI,GAAG,OAAO,CAG9E;AAED,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAW7D"}
|
package/dist/validation.js
CHANGED
|
@@ -14,4 +14,26 @@ export function validateEmailConfirmation(token, exactLength = 6) {
|
|
|
14
14
|
const isValidFormat = new RegExp(`^[0-9]{${exactLength}}$`).test(formattedToken);
|
|
15
15
|
return { isValid: formattedToken.length === exactLength && isValidFormat, isEmpty: formattedToken.length === 0, isValidFormat };
|
|
16
16
|
}
|
|
17
|
+
export function isValidFullName(fullName, minParts = 2) {
|
|
18
|
+
const trimmedName = fullName.trim();
|
|
19
|
+
const nameParts = trimmedName.split(/\s+/);
|
|
20
|
+
return nameParts.length >= minParts && nameParts.every(part => part.length > 0);
|
|
21
|
+
}
|
|
22
|
+
export function isValidPhoneFormat(phoneNumber, minLength = 8) {
|
|
23
|
+
const trimmedPhone = phoneNumber.trim();
|
|
24
|
+
return trimmedPhone.length >= minLength && /^[+\-\s\d()]+$/.test(trimmedPhone);
|
|
25
|
+
}
|
|
26
|
+
export function formatPhoneNumber(phoneNumber) {
|
|
27
|
+
if (!phoneNumber)
|
|
28
|
+
return '';
|
|
29
|
+
const cleaned = phoneNumber.replace(/\D/g, '');
|
|
30
|
+
if (cleaned.startsWith('61') && cleaned.length === 11) {
|
|
31
|
+
const mobile = cleaned.slice(2);
|
|
32
|
+
return `+61 ${mobile.slice(0, 3)} ${mobile.slice(3, 6)} ${mobile.slice(6)}`;
|
|
33
|
+
}
|
|
34
|
+
if (cleaned.length === 10) {
|
|
35
|
+
return `(${cleaned.slice(0, 3)}) ${cleaned.slice(3, 6)}-${cleaned.slice(6)}`;
|
|
36
|
+
}
|
|
37
|
+
return phoneNumber.trim();
|
|
38
|
+
}
|
|
17
39
|
//# sourceMappingURL=validation.js.map
|
package/dist/validation.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,aAAa,CAAC,GAAW;IACvC,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,QAAgB,EAAE,SAAS,GAAG,CAAC;IAC9D,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,IAAI,SAAS,CAAC;IACjD,MAAM,UAAU,GAAG,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IAC5C,OAAO,EAAE,OAAO,EAAE,WAAW,IAAI,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC;AACzE,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,KAAa;IACnD,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,KAAa,EAAE,WAAW,GAAG,CAAC;IACtE,MAAM,cAAc,GAAG,uBAAuB,CAAC,KAAK,CAAC,CAAC;IACtD,MAAM,aAAa,GAAG,IAAI,MAAM,CAAC,UAAU,WAAW,IAAI,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACjF,OAAO,EAAE,OAAO,EAAE,cAAc,CAAC,MAAM,KAAK,WAAW,IAAI,aAAa,EAAE,OAAO,EAAE,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,aAAa,EAAE,CAAC;AAClI,CAAC"}
|
|
1
|
+
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,aAAa,CAAC,GAAW;IACvC,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,QAAgB,EAAE,SAAS,GAAG,CAAC;IAC9D,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,IAAI,SAAS,CAAC;IACjD,MAAM,UAAU,GAAG,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IAC5C,OAAO,EAAE,OAAO,EAAE,WAAW,IAAI,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC;AACzE,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,KAAa;IACnD,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,KAAa,EAAE,WAAW,GAAG,CAAC;IACtE,MAAM,cAAc,GAAG,uBAAuB,CAAC,KAAK,CAAC,CAAC;IACtD,MAAM,aAAa,GAAG,IAAI,MAAM,CAAC,UAAU,WAAW,IAAI,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACjF,OAAO,EAAE,OAAO,EAAE,cAAc,CAAC,MAAM,KAAK,WAAW,IAAI,aAAa,EAAE,OAAO,EAAE,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,aAAa,EAAE,CAAC;AAClI,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,QAAgB,EAAE,QAAQ,GAAG,CAAC;IAC5D,MAAM,WAAW,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;IACpC,MAAM,SAAS,GAAG,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC3C,OAAO,SAAS,CAAC,MAAM,IAAI,QAAQ,IAAI,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAClF,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,WAAmB,EAAE,SAAS,GAAG,CAAC;IACnE,MAAM,YAAY,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC;IACxC,OAAO,YAAY,CAAC,MAAM,IAAI,SAAS,IAAI,gBAAgB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACjF,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,WAAmB;IACnD,IAAI,CAAC,WAAW;QAAE,OAAO,EAAE,CAAC;IAC5B,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAC/C,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;QACtD,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAChC,OAAO,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9E,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;QAC1B,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/E,CAAC;IACD,OAAO,WAAW,CAAC,IAAI,EAAE,CAAC;AAC5B,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cranberry-money/shared-utils",
|
|
3
|
-
"version": "8.23.
|
|
3
|
+
"version": "8.23.414",
|
|
4
4
|
"description": "Shared utility functions for Blueberry platform",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -29,8 +29,8 @@
|
|
|
29
29
|
"prepublishOnly": "npm run clean && npm run typecheck && npm test && npm run build"
|
|
30
30
|
},
|
|
31
31
|
"dependencies": {
|
|
32
|
-
"@cranberry-money/shared-constants": "^8.15.
|
|
33
|
-
"@cranberry-money/shared-types": "^8.22.
|
|
32
|
+
"@cranberry-money/shared-constants": "^8.15.439",
|
|
33
|
+
"@cranberry-money/shared-types": "^8.22.414"
|
|
34
34
|
},
|
|
35
35
|
"devDependencies": {
|
|
36
36
|
"@types/jest": "^30.0.0",
|