@vritti/api-sdk 0.2.10 → 0.3.2
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/cache.cjs +252 -0
- package/dist/cache.cjs.map +1 -0
- package/dist/cache.d.cts +25 -0
- package/dist/cache.d.ts +25 -0
- package/dist/cache.js +214 -0
- package/dist/cache.js.map +1 -0
- package/dist/cache.service-_SuJIcNA.d.cts +20 -0
- package/dist/cache.service-_SuJIcNA.d.ts +20 -0
- package/dist/catalog-resolver.cjs +364 -0
- package/dist/catalog-resolver.cjs.map +1 -0
- package/dist/catalog-resolver.d.cts +109 -0
- package/dist/catalog-resolver.d.ts +109 -0
- package/dist/catalog-resolver.js +330 -0
- package/dist/catalog-resolver.js.map +1 -0
- package/dist/email.cjs +691 -0
- package/dist/email.cjs.map +1 -0
- package/dist/email.d.cts +35 -0
- package/dist/email.d.ts +35 -0
- package/dist/email.js +665 -0
- package/dist/email.js.map +1 -0
- package/dist/fastify-augmentation-CQPBNS5a.d.cts +105 -0
- package/dist/fastify-augmentation-CQPBNS5a.d.ts +105 -0
- package/dist/icons.cjs +13803 -0
- package/dist/icons.cjs.map +1 -0
- package/dist/icons.d.cts +8 -0
- package/dist/icons.d.ts +8 -0
- package/dist/icons.js +13778 -0
- package/dist/icons.js.map +1 -0
- package/dist/index.cjs +742 -1367
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +103 -181
- package/dist/index.d.ts +103 -181
- package/dist/index.js +601 -1233
- package/dist/index.js.map +1 -1
- package/dist/license.cjs +104 -0
- package/dist/license.cjs.map +1 -0
- package/dist/license.d.cts +32 -0
- package/dist/license.d.ts +32 -0
- package/dist/license.js +75 -0
- package/dist/license.js.map +1 -0
- package/dist/money.cjs +93 -6
- package/dist/money.cjs.map +1 -1
- package/dist/money.d.cts +13 -1
- package/dist/money.d.ts +13 -1
- package/dist/money.js +115 -3
- package/dist/money.js.map +1 -1
- package/dist/nats.cjs +196 -179
- package/dist/nats.cjs.map +1 -1
- package/dist/nats.d.cts +13 -11
- package/dist/nats.d.ts +13 -11
- package/dist/nats.js +172 -155
- package/dist/nats.js.map +1 -1
- package/dist/types-DQRwj5rr.d.cts +113 -0
- package/dist/types-DQRwj5rr.d.ts +113 -0
- package/package.json +55 -1
package/dist/money.js
CHANGED
|
@@ -1,7 +1,42 @@
|
|
|
1
1
|
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
2
5
|
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
|
3
19
|
|
|
4
|
-
// src/money.ts
|
|
20
|
+
// src/money/index.ts
|
|
21
|
+
var money_exports2 = {};
|
|
22
|
+
__export(money_exports2, {
|
|
23
|
+
CurrencyAmountDto: () => CurrencyAmountDto,
|
|
24
|
+
IsCurrency: () => IsCurrency,
|
|
25
|
+
IsCurrencyCode: () => IsCurrencyCode,
|
|
26
|
+
SUPPORTED_CURRENCIES: () => SUPPORTED_CURRENCIES,
|
|
27
|
+
majorToMinor: () => majorToMinor,
|
|
28
|
+
minorToMajor: () => minorToMajor,
|
|
29
|
+
resolveCurrency: () => resolveCurrency
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
// src/money/money.ts
|
|
33
|
+
var money_exports = {};
|
|
34
|
+
__export(money_exports, {
|
|
35
|
+
SUPPORTED_CURRENCIES: () => SUPPORTED_CURRENCIES,
|
|
36
|
+
majorToMinor: () => majorToMinor,
|
|
37
|
+
minorToMajor: () => minorToMajor,
|
|
38
|
+
resolveCurrency: () => resolveCurrency
|
|
39
|
+
});
|
|
5
40
|
import { dinero, toDecimal } from "dinero.js/bigint";
|
|
6
41
|
import { AED, AFN, ALL, AMD, AOA, ARS, AUD, AWG, AZN, BAM, BBD, BDT, BGN, BHD, BIF, BMD, BND, BOB, BOV, BRL, BSD, BTN, BWP, BYN, BZD, CAD, CDF, CHE, CHF, CHW, CLF, CLP, CNY, COP, COU, CRC, CUP, CVE, CZK, DJF, DKK, DOP, DZD, EGP, ERN, ETB, EUR, FJD, FKP, GBP, GEL, GHS, GIP, GMD, GNF, GTQ, GYD, HKD, HNL, HTG, HUF, IDR, ILS, INR, IQD, IRR, ISK, JMD, JOD, JPY, KES, KGS, KHR, KMF, KPW, KRW, KWD, KYD, KZT, LAK, LBP, LKR, LRD, LSL, LYD, MAD, MDL, MGA, MKD, MMK, MNT, MOP, MRU, MUR, MVR, MWK, MXN, MXV, MYR, MZN, NAD, NGN, NIO, NOK, NPR, NZD, OMR, PAB, PEN, PGK, PHP, PKR, PLN, PYG, QAR, RON, RSD, RUB, RWF, SAR, SBD, SCR, SDG, SEK, SGD, SHP, SLE, SOS, SRD, SSP, STN, SVC, SYP, SZL, THB, TJS, TMT, TND, TOP, TRY, TTD, TWD, TZS, UAH, UGX, USD, USN, UYI, UYU, UYW, UZS, VED, VES, VND, VUV, WST, XAD, XAF, XCD, XCG, XOF, XPF, YER, ZAR, ZMW, ZWG } from "dinero.js/bigint/currencies";
|
|
7
42
|
|
|
@@ -37,8 +72,9 @@ var ValidationException = class extends HttpProblemException {
|
|
|
37
72
|
}
|
|
38
73
|
};
|
|
39
74
|
|
|
40
|
-
// src/money.ts
|
|
41
|
-
|
|
75
|
+
// src/money/money.ts
|
|
76
|
+
__reExport(money_exports, bigint_star);
|
|
77
|
+
import * as bigint_star from "dinero.js/bigint";
|
|
42
78
|
var ANG = {
|
|
43
79
|
code: "ANG",
|
|
44
80
|
base: 10n,
|
|
@@ -309,7 +345,83 @@ function majorToMinor(major, currencyCode, field = "amount") {
|
|
|
309
345
|
return isNegative ? -minor : minor;
|
|
310
346
|
}
|
|
311
347
|
__name(majorToMinor, "majorToMinor");
|
|
348
|
+
|
|
349
|
+
// src/money/currency-amount.dto.ts
|
|
350
|
+
var CurrencyAmountDto = class _CurrencyAmountDto {
|
|
351
|
+
static {
|
|
352
|
+
__name(this, "CurrencyAmountDto");
|
|
353
|
+
}
|
|
354
|
+
currency;
|
|
355
|
+
value;
|
|
356
|
+
static from(minor, currencyCode) {
|
|
357
|
+
if (minor == null) return null;
|
|
358
|
+
const dto = new _CurrencyAmountDto();
|
|
359
|
+
dto.currency = currencyCode;
|
|
360
|
+
dto.value = minorToMajor(minor, currencyCode);
|
|
361
|
+
return dto;
|
|
362
|
+
}
|
|
363
|
+
};
|
|
364
|
+
|
|
365
|
+
// src/money/is-currency.decorator.ts
|
|
366
|
+
import { registerDecorator } from "class-validator";
|
|
367
|
+
function IsCurrency(validationOptions) {
|
|
368
|
+
return (target, propertyName) => {
|
|
369
|
+
registerDecorator({
|
|
370
|
+
name: "isCurrency",
|
|
371
|
+
target: target.constructor,
|
|
372
|
+
propertyName: String(propertyName),
|
|
373
|
+
options: validationOptions,
|
|
374
|
+
validator: {
|
|
375
|
+
validate(value) {
|
|
376
|
+
if (!value || typeof value !== "object") return false;
|
|
377
|
+
const { currency, value: amount } = value;
|
|
378
|
+
if (typeof currency !== "string" || typeof amount !== "string") return false;
|
|
379
|
+
if (!(currency in SUPPORTED_CURRENCIES)) return false;
|
|
380
|
+
try {
|
|
381
|
+
majorToMinor(amount, currency);
|
|
382
|
+
return true;
|
|
383
|
+
} catch {
|
|
384
|
+
return false;
|
|
385
|
+
}
|
|
386
|
+
},
|
|
387
|
+
defaultMessage(args) {
|
|
388
|
+
return `${args.property} must be {currency, value} where currency is a valid ISO 4217 code and value precision matches the currency exponent.`;
|
|
389
|
+
}
|
|
390
|
+
}
|
|
391
|
+
});
|
|
392
|
+
};
|
|
393
|
+
}
|
|
394
|
+
__name(IsCurrency, "IsCurrency");
|
|
395
|
+
|
|
396
|
+
// src/money/is-currency-code.decorator.ts
|
|
397
|
+
import { registerDecorator as registerDecorator2 } from "class-validator";
|
|
398
|
+
function IsCurrencyCode(validationOptions) {
|
|
399
|
+
return (target, propertyName) => {
|
|
400
|
+
registerDecorator2({
|
|
401
|
+
name: "isCurrencyCode",
|
|
402
|
+
target: target.constructor,
|
|
403
|
+
propertyName: String(propertyName),
|
|
404
|
+
options: validationOptions,
|
|
405
|
+
validator: {
|
|
406
|
+
validate(value) {
|
|
407
|
+
if (typeof value !== "string") return false;
|
|
408
|
+
return value in SUPPORTED_CURRENCIES;
|
|
409
|
+
},
|
|
410
|
+
defaultMessage(args) {
|
|
411
|
+
return `${args.property} must be a valid ISO 4217 currency code.`;
|
|
412
|
+
}
|
|
413
|
+
}
|
|
414
|
+
});
|
|
415
|
+
};
|
|
416
|
+
}
|
|
417
|
+
__name(IsCurrencyCode, "IsCurrencyCode");
|
|
418
|
+
|
|
419
|
+
// src/money/index.ts
|
|
420
|
+
__reExport(money_exports2, money_exports);
|
|
312
421
|
export {
|
|
422
|
+
CurrencyAmountDto,
|
|
423
|
+
IsCurrency,
|
|
424
|
+
IsCurrencyCode,
|
|
313
425
|
SUPPORTED_CURRENCIES,
|
|
314
426
|
majorToMinor,
|
|
315
427
|
minorToMajor,
|
package/dist/money.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/money.ts","../src/exceptions/validation.exception.ts","../src/exceptions/base-field.exception.ts"],"sourcesContent":["import { dinero, toDecimal } from 'dinero.js/bigint';\nimport {\n AED,\n AFN,\n ALL,\n AMD,\n AOA,\n ARS,\n AUD,\n AWG,\n AZN,\n BAM,\n BBD,\n BDT,\n BGN,\n BHD,\n BIF,\n BMD,\n BND,\n BOB,\n BOV,\n BRL,\n BSD,\n BTN,\n BWP,\n BYN,\n BZD,\n CAD,\n CDF,\n CHE,\n CHF,\n CHW,\n CLF,\n CLP,\n CNY,\n COP,\n COU,\n CRC,\n CUP,\n CVE,\n CZK,\n DJF,\n DKK,\n DOP,\n DZD,\n EGP,\n ERN,\n ETB,\n EUR,\n FJD,\n FKP,\n GBP,\n GEL,\n GHS,\n GIP,\n GMD,\n GNF,\n GTQ,\n GYD,\n HKD,\n HNL,\n HTG,\n HUF,\n IDR,\n ILS,\n INR,\n IQD,\n IRR,\n ISK,\n JMD,\n JOD,\n JPY,\n KES,\n KGS,\n KHR,\n KMF,\n KPW,\n KRW,\n KWD,\n KYD,\n KZT,\n LAK,\n LBP,\n LKR,\n LRD,\n LSL,\n LYD,\n MAD,\n MDL,\n MGA,\n MKD,\n MMK,\n MNT,\n MOP,\n MRU,\n MUR,\n MVR,\n MWK,\n MXN,\n MXV,\n MYR,\n MZN,\n NAD,\n NGN,\n NIO,\n NOK,\n NPR,\n NZD,\n OMR,\n PAB,\n PEN,\n PGK,\n PHP,\n PKR,\n PLN,\n PYG,\n QAR,\n RON,\n RSD,\n RUB,\n RWF,\n SAR,\n SBD,\n SCR,\n SDG,\n SEK,\n SGD,\n SHP,\n SLE,\n SOS,\n SRD,\n SSP,\n STN,\n SVC,\n SYP,\n SZL,\n THB,\n TJS,\n TMT,\n TND,\n TOP,\n TRY,\n TTD,\n TWD,\n TZS,\n UAH,\n UGX,\n USD,\n USN,\n UYI,\n UYU,\n UYW,\n UZS,\n VED,\n VES,\n VND,\n VUV,\n WST,\n XAD,\n XAF,\n XCD,\n XCG,\n XOF,\n XPF,\n YER,\n ZAR,\n ZMW,\n ZWG,\n} from 'dinero.js/bigint/currencies';\nimport { ValidationException } from './exceptions/validation.exception';\n\nexport * from 'dinero.js/bigint';\n\nconst ANG = { code: 'ANG', base: 10n, exponent: 2n } as const;\nconst HRK = { code: 'HRK', base: 10n, exponent: 2n } as const;\nconst XAG = { code: 'XAG', base: 10n, exponent: 0n } as const;\nconst XAU = { code: 'XAU', base: 10n, exponent: 0n } as const;\nconst XDR = { code: 'XDR', base: 10n, exponent: 0n } as const;\nconst XPD = { code: 'XPD', base: 10n, exponent: 0n } as const;\nconst XPT = { code: 'XPT', base: 10n, exponent: 0n } as const;\nconst ZWL = { code: 'ZWL', base: 10n, exponent: 2n } as const;\n\nexport const SUPPORTED_CURRENCIES = {\n AED,\n AFN,\n ALL,\n AMD,\n ANG,\n AOA,\n ARS,\n AUD,\n AWG,\n AZN,\n BAM,\n BBD,\n BDT,\n BGN,\n BHD,\n BIF,\n BMD,\n BND,\n BOB,\n BOV,\n BRL,\n BSD,\n BTN,\n BWP,\n BYN,\n BZD,\n CAD,\n CDF,\n CHE,\n CHF,\n CHW,\n CLF,\n CLP,\n CNY,\n COP,\n COU,\n CRC,\n CUP,\n CVE,\n CZK,\n DJF,\n DKK,\n DOP,\n DZD,\n EGP,\n ERN,\n ETB,\n EUR,\n FJD,\n FKP,\n GBP,\n GEL,\n GHS,\n GIP,\n GMD,\n GNF,\n GTQ,\n GYD,\n HKD,\n HNL,\n HRK,\n HTG,\n HUF,\n IDR,\n ILS,\n INR,\n IQD,\n IRR,\n ISK,\n JMD,\n JOD,\n JPY,\n KES,\n KGS,\n KHR,\n KMF,\n KPW,\n KRW,\n KWD,\n KYD,\n KZT,\n LAK,\n LBP,\n LKR,\n LRD,\n LSL,\n LYD,\n MAD,\n MDL,\n MGA,\n MKD,\n MMK,\n MNT,\n MOP,\n MRU,\n MUR,\n MVR,\n MWK,\n MXN,\n MXV,\n MYR,\n MZN,\n NAD,\n NGN,\n NIO,\n NOK,\n NPR,\n NZD,\n OMR,\n PAB,\n PEN,\n PGK,\n PHP,\n PKR,\n PLN,\n PYG,\n QAR,\n RON,\n RSD,\n RUB,\n RWF,\n SAR,\n SBD,\n SCR,\n SDG,\n SEK,\n SGD,\n SHP,\n SLE,\n SOS,\n SRD,\n SSP,\n STN,\n SVC,\n SYP,\n SZL,\n THB,\n TJS,\n TMT,\n TND,\n TOP,\n TRY,\n TTD,\n TWD,\n TZS,\n UAH,\n UGX,\n USD,\n USN,\n UYI,\n UYU,\n UYW,\n UZS,\n VED,\n VES,\n VND,\n VUV,\n WST,\n XAD,\n XAF,\n XAG,\n XAU,\n XCD,\n XCG,\n XDR,\n XOF,\n XPD,\n XPF,\n XPT,\n YER,\n ZAR,\n ZMW,\n ZWG,\n ZWL,\n} as const;\n\nexport type CurrencyCode = keyof typeof SUPPORTED_CURRENCIES;\nexport type Currency = (typeof SUPPORTED_CURRENCIES)[CurrencyCode];\n\nexport type MinorToMajorTransform<TOutput> = (props: { value: string; currency: Currency }) => TOutput;\n\nexport function resolveCurrency(currencyCode: CurrencyCode): Currency {\n return SUPPORTED_CURRENCIES[currencyCode];\n}\n\nexport function minorToMajor<TOutput = string>(\n minor: bigint,\n currencyCode: CurrencyCode,\n transform?: MinorToMajorTransform<TOutput>,\n): string | TOutput {\n const currency = resolveCurrency(currencyCode);\n const amount = dinero({ amount: minor, currency });\n\n if (!transform) {\n return toDecimal(amount);\n }\n\n return toDecimal(amount, ({ value, currency: resolvedCurrency }) => transform({ value, currency: resolvedCurrency }));\n}\n\n// Throws ValidationException (HTTP 422) instead of generic Error so the\n// NestJS error filter maps it to a field-level response automatically.\n// Callers pass `field` so the validation error binds to the right form field.\nexport function majorToMinor(major: string, currencyCode: CurrencyCode, field = 'amount'): bigint {\n const { exponent } = resolveCurrency(currencyCode);\n const scale = typeof exponent === 'bigint' ? Number(exponent) : exponent;\n const trimmed = major.trim();\n\n if (!/^-?\\d+(\\.\\d+)?$/.test(trimmed)) {\n throw new ValidationException({\n detail: `Invalid amount: \"${major}\".`,\n errors: [{ field, message: 'Enter a valid number.' }],\n });\n }\n\n const isNegative = trimmed.startsWith('-');\n const unsignedValue = isNegative ? trimmed.slice(1) : trimmed;\n const [wholePart, fractionalPart = ''] = unsignedValue.split('.');\n\n if (fractionalPart.length > scale) {\n throw new ValidationException({\n detail: `Too many decimal places for ${currencyCode}. Maximum allowed is ${scale}.`,\n errors: [{ field, message: `${currencyCode} allows up to ${scale} decimal place${scale === 1 ? '' : 's'}.` }],\n });\n }\n\n const paddedFraction = fractionalPart.padEnd(scale, '0');\n const normalizedDigits = `${wholePart}${paddedFraction}`.replace(/^0+(?=\\d)/, '');\n const minor = BigInt(normalizedDigits || '0');\n\n return isNegative ? -minor : minor;\n}\n","import { HttpStatus } from '@nestjs/common';\nimport { HttpProblemException, type ProblemOptions } from './base-field.exception';\n\nexport class ValidationException extends HttpProblemException {\n constructor(detailOrOptions?: string | ProblemOptions) {\n super(detailOrOptions ?? 'Validation Failed', HttpStatus.UNPROCESSABLE_ENTITY);\n }\n}\n","import { HttpException, HttpStatus } from '@nestjs/common';\nimport type { FieldError } from '../types/error-response.types';\n\n// Re-export FieldError for backwards compatibility\nexport type { FieldError } from '../types/error-response.types';\n\nexport interface ProblemOptions {\n type?: string;\n label?: string;\n detail?: string;\n errors?: FieldError[];\n}\n\nexport abstract class HttpProblemException extends HttpException {\n constructor(detailOrOptions: string | ProblemOptions, httpStatus: HttpStatus) {\n const options = typeof detailOrOptions === 'string' ? { detail: detailOrOptions } : detailOrOptions;\n\n super(\n {\n type: options.type ?? 'about:blank',\n label: options.label,\n detail: options.detail,\n errors: options.errors ?? [],\n },\n httpStatus,\n );\n }\n}\n"],"mappings":";;;;AAAA,SAASA,QAAQC,iBAAiB;AAClC,SACEC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,WACK;;;ACxKP,SAASC,kBAAkB;;;ACA3B,SAASC,qBAAiC;AAanC,IAAeC,uBAAf,cAA4CC,cAAAA;EAbnD,OAamDA;;;EACjD,YAAYC,iBAA0CC,YAAwB;AAC5E,UAAMC,UAAU,OAAOF,oBAAoB,WAAW;MAAEG,QAAQH;IAAg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","names":["dinero","toDecimal","AED","AFN","ALL","AMD","AOA","ARS","AUD","AWG","AZN","BAM","BBD","BDT","BGN","BHD","BIF","BMD","BND","BOB","BOV","BRL","BSD","BTN","BWP","BYN","BZD","CAD","CDF","CHE","CHF","CHW","CLF","CLP","CNY","COP","COU","CRC","CUP","CVE","CZK","DJF","DKK","DOP","DZD","EGP","ERN","ETB","EUR","FJD","FKP","GBP","GEL","GHS","GIP","GMD","GNF","GTQ","GYD","HKD","HNL","HTG","HUF","IDR","ILS","INR","IQD","IRR","ISK","JMD","JOD","JPY","KES","KGS","KHR","KMF","KPW","KRW","KWD","KYD","KZT","LAK","LBP","LKR","LRD","LSL","LYD","MAD","MDL","MGA","MKD","MMK","MNT","MOP","MRU","MUR","MVR","MWK","MXN","MXV","MYR","MZN","NAD","NGN","NIO","NOK","NPR","NZD","OMR","PAB","PEN","PGK","PHP","PKR","PLN","PYG","QAR","RON","RSD","RUB","RWF","SAR","SBD","SCR","SDG","SEK","SGD","SHP","SLE","SOS","SRD","SSP","STN","SVC","SYP","SZL","THB","TJS","TMT","TND","TOP","TRY","TTD","TWD","TZS","UAH","UGX","USD","USN","UYI","UYU","UYW","UZS","VED","VES","VND","VUV","WST","XAD","XAF","XCD","XCG","XOF","XPF","YER","ZAR","ZMW","ZWG","HttpStatus","HttpException","HttpProblemException","HttpException","detailOrOptions","httpStatus","options","detail","type","label","errors","ValidationException","HttpProblemException","detailOrOptions","HttpStatus","UNPROCESSABLE_ENTITY","ANG","code","base","exponent","HRK","XAG","XAU","XDR","XPD","XPT","ZWL","SUPPORTED_CURRENCIES","AED","AFN","ALL","AMD","AOA","ARS","AUD","AWG","AZN","BAM","BBD","BDT","BGN","BHD","BIF","BMD","BND","BOB","BOV","BRL","BSD","BTN","BWP","BYN","BZD","CAD","CDF","CHE","CHF","CHW","CLF","CLP","CNY","COP","COU","CRC","CUP","CVE","CZK","DJF","DKK","DOP","DZD","EGP","ERN","ETB","EUR","FJD","FKP","GBP","GEL","GHS","GIP","GMD","GNF","GTQ","GYD","HKD","HNL","HTG","HUF","IDR","ILS","INR","IQD","IRR","ISK","JMD","JOD","JPY","KES","KGS","KHR","KMF","KPW","KRW","KWD","KYD","KZT","LAK","LBP","LKR","LRD","LSL","LYD","MAD","MDL","MGA","MKD","MMK","MNT","MOP","MRU","MUR","MVR","MWK","MXN","MXV","MYR","MZN","NAD","NGN","NIO","NOK","NPR","NZD","OMR","PAB","PEN","PGK","PHP","PKR","PLN","PYG","QAR","RON","RSD","RUB","RWF","SAR","SBD","SCR","SDG","SEK","SGD","SHP","SLE","SOS","SRD","SSP","STN","SVC","SYP","SZL","THB","TJS","TMT","TND","TOP","TRY","TTD","TWD","TZS","UAH","UGX","USD","USN","UYI","UYU","UYW","UZS","VED","VES","VND","VUV","WST","XAD","XAF","XCD","XCG","XOF","XPF","YER","ZAR","ZMW","ZWG","resolveCurrency","currencyCode","minorToMajor","minor","transform","currency","amount","dinero","toDecimal","value","resolvedCurrency","majorToMinor","major","field","scale","Number","trimmed","trim","test","ValidationException","detail","errors","message","isNegative","startsWith","unsignedValue","slice","wholePart","fractionalPart","split","length","paddedFraction","padEnd","normalizedDigits","replace","BigInt"]}
|
|
1
|
+
{"version":3,"sources":["../src/money/index.ts","../src/money/money.ts","../src/exceptions/validation.exception.ts","../src/exceptions/base-field.exception.ts","../src/money/currency-amount.dto.ts","../src/money/is-currency.decorator.ts","../src/money/is-currency-code.decorator.ts"],"sourcesContent":["// Money module — the ONLY entry that touches dinero.js (utilities, validators, DTO, dinero re-export)\nexport { CurrencyAmountDto } from './currency-amount.dto';\nexport { IsCurrency } from './is-currency.decorator';\nexport { IsCurrencyCode } from './is-currency-code.decorator';\nexport * from './money';\n","import { dinero, toDecimal } from 'dinero.js/bigint';\nimport {\n AED,\n AFN,\n ALL,\n AMD,\n AOA,\n ARS,\n AUD,\n AWG,\n AZN,\n BAM,\n BBD,\n BDT,\n BGN,\n BHD,\n BIF,\n BMD,\n BND,\n BOB,\n BOV,\n BRL,\n BSD,\n BTN,\n BWP,\n BYN,\n BZD,\n CAD,\n CDF,\n CHE,\n CHF,\n CHW,\n CLF,\n CLP,\n CNY,\n COP,\n COU,\n CRC,\n CUP,\n CVE,\n CZK,\n DJF,\n DKK,\n DOP,\n DZD,\n EGP,\n ERN,\n ETB,\n EUR,\n FJD,\n FKP,\n GBP,\n GEL,\n GHS,\n GIP,\n GMD,\n GNF,\n GTQ,\n GYD,\n HKD,\n HNL,\n HTG,\n HUF,\n IDR,\n ILS,\n INR,\n IQD,\n IRR,\n ISK,\n JMD,\n JOD,\n JPY,\n KES,\n KGS,\n KHR,\n KMF,\n KPW,\n KRW,\n KWD,\n KYD,\n KZT,\n LAK,\n LBP,\n LKR,\n LRD,\n LSL,\n LYD,\n MAD,\n MDL,\n MGA,\n MKD,\n MMK,\n MNT,\n MOP,\n MRU,\n MUR,\n MVR,\n MWK,\n MXN,\n MXV,\n MYR,\n MZN,\n NAD,\n NGN,\n NIO,\n NOK,\n NPR,\n NZD,\n OMR,\n PAB,\n PEN,\n PGK,\n PHP,\n PKR,\n PLN,\n PYG,\n QAR,\n RON,\n RSD,\n RUB,\n RWF,\n SAR,\n SBD,\n SCR,\n SDG,\n SEK,\n SGD,\n SHP,\n SLE,\n SOS,\n SRD,\n SSP,\n STN,\n SVC,\n SYP,\n SZL,\n THB,\n TJS,\n TMT,\n TND,\n TOP,\n TRY,\n TTD,\n TWD,\n TZS,\n UAH,\n UGX,\n USD,\n USN,\n UYI,\n UYU,\n UYW,\n UZS,\n VED,\n VES,\n VND,\n VUV,\n WST,\n XAD,\n XAF,\n XCD,\n XCG,\n XOF,\n XPF,\n YER,\n ZAR,\n ZMW,\n ZWG,\n} from 'dinero.js/bigint/currencies';\nimport { ValidationException } from '../exceptions/validation.exception';\n\nexport * from 'dinero.js/bigint';\n\nconst ANG = { code: 'ANG', base: 10n, exponent: 2n } as const;\nconst HRK = { code: 'HRK', base: 10n, exponent: 2n } as const;\nconst XAG = { code: 'XAG', base: 10n, exponent: 0n } as const;\nconst XAU = { code: 'XAU', base: 10n, exponent: 0n } as const;\nconst XDR = { code: 'XDR', base: 10n, exponent: 0n } as const;\nconst XPD = { code: 'XPD', base: 10n, exponent: 0n } as const;\nconst XPT = { code: 'XPT', base: 10n, exponent: 0n } as const;\nconst ZWL = { code: 'ZWL', base: 10n, exponent: 2n } as const;\n\nexport const SUPPORTED_CURRENCIES = {\n AED,\n AFN,\n ALL,\n AMD,\n ANG,\n AOA,\n ARS,\n AUD,\n AWG,\n AZN,\n BAM,\n BBD,\n BDT,\n BGN,\n BHD,\n BIF,\n BMD,\n BND,\n BOB,\n BOV,\n BRL,\n BSD,\n BTN,\n BWP,\n BYN,\n BZD,\n CAD,\n CDF,\n CHE,\n CHF,\n CHW,\n CLF,\n CLP,\n CNY,\n COP,\n COU,\n CRC,\n CUP,\n CVE,\n CZK,\n DJF,\n DKK,\n DOP,\n DZD,\n EGP,\n ERN,\n ETB,\n EUR,\n FJD,\n FKP,\n GBP,\n GEL,\n GHS,\n GIP,\n GMD,\n GNF,\n GTQ,\n GYD,\n HKD,\n HNL,\n HRK,\n HTG,\n HUF,\n IDR,\n ILS,\n INR,\n IQD,\n IRR,\n ISK,\n JMD,\n JOD,\n JPY,\n KES,\n KGS,\n KHR,\n KMF,\n KPW,\n KRW,\n KWD,\n KYD,\n KZT,\n LAK,\n LBP,\n LKR,\n LRD,\n LSL,\n LYD,\n MAD,\n MDL,\n MGA,\n MKD,\n MMK,\n MNT,\n MOP,\n MRU,\n MUR,\n MVR,\n MWK,\n MXN,\n MXV,\n MYR,\n MZN,\n NAD,\n NGN,\n NIO,\n NOK,\n NPR,\n NZD,\n OMR,\n PAB,\n PEN,\n PGK,\n PHP,\n PKR,\n PLN,\n PYG,\n QAR,\n RON,\n RSD,\n RUB,\n RWF,\n SAR,\n SBD,\n SCR,\n SDG,\n SEK,\n SGD,\n SHP,\n SLE,\n SOS,\n SRD,\n SSP,\n STN,\n SVC,\n SYP,\n SZL,\n THB,\n TJS,\n TMT,\n TND,\n TOP,\n TRY,\n TTD,\n TWD,\n TZS,\n UAH,\n UGX,\n USD,\n USN,\n UYI,\n UYU,\n UYW,\n UZS,\n VED,\n VES,\n VND,\n VUV,\n WST,\n XAD,\n XAF,\n XAG,\n XAU,\n XCD,\n XCG,\n XDR,\n XOF,\n XPD,\n XPF,\n XPT,\n YER,\n ZAR,\n ZMW,\n ZWG,\n ZWL,\n} as const;\n\nexport type CurrencyCode = keyof typeof SUPPORTED_CURRENCIES;\nexport type Currency = (typeof SUPPORTED_CURRENCIES)[CurrencyCode];\n\nexport type MinorToMajorTransform<TOutput> = (props: { value: string; currency: Currency }) => TOutput;\n\nexport function resolveCurrency(currencyCode: CurrencyCode): Currency {\n return SUPPORTED_CURRENCIES[currencyCode];\n}\n\nexport function minorToMajor<TOutput = string>(\n minor: bigint,\n currencyCode: CurrencyCode,\n transform?: MinorToMajorTransform<TOutput>,\n): string | TOutput {\n const currency = resolveCurrency(currencyCode);\n const amount = dinero({ amount: minor, currency });\n\n if (!transform) {\n return toDecimal(amount);\n }\n\n return toDecimal(amount, ({ value, currency: resolvedCurrency }) => transform({ value, currency: resolvedCurrency }));\n}\n\n// Throws ValidationException (HTTP 422) instead of generic Error so the\n// NestJS error filter maps it to a field-level response automatically.\n// Callers pass `field` so the validation error binds to the right form field.\nexport function majorToMinor(major: string, currencyCode: CurrencyCode, field = 'amount'): bigint {\n const { exponent } = resolveCurrency(currencyCode);\n const scale = typeof exponent === 'bigint' ? Number(exponent) : exponent;\n const trimmed = major.trim();\n\n if (!/^-?\\d+(\\.\\d+)?$/.test(trimmed)) {\n throw new ValidationException({\n detail: `Invalid amount: \"${major}\".`,\n errors: [{ field, message: 'Enter a valid number.' }],\n });\n }\n\n const isNegative = trimmed.startsWith('-');\n const unsignedValue = isNegative ? trimmed.slice(1) : trimmed;\n const [wholePart, fractionalPart = ''] = unsignedValue.split('.');\n\n if (fractionalPart.length > scale) {\n throw new ValidationException({\n detail: `Too many decimal places for ${currencyCode}. Maximum allowed is ${scale}.`,\n errors: [{ field, message: `${currencyCode} allows up to ${scale} decimal place${scale === 1 ? '' : 's'}.` }],\n });\n }\n\n const paddedFraction = fractionalPart.padEnd(scale, '0');\n const normalizedDigits = `${wholePart}${paddedFraction}`.replace(/^0+(?=\\d)/, '');\n const minor = BigInt(normalizedDigits || '0');\n\n return isNegative ? -minor : minor;\n}\n","import { HttpStatus } from '@nestjs/common';\nimport { HttpProblemException, type ProblemOptions } from './base-field.exception';\n\nexport class ValidationException extends HttpProblemException {\n constructor(detailOrOptions?: string | ProblemOptions) {\n super(detailOrOptions ?? 'Validation Failed', HttpStatus.UNPROCESSABLE_ENTITY);\n }\n}\n","import { HttpException, HttpStatus } from '@nestjs/common';\nimport type { FieldError } from '../types/error-response.types';\n\n// Re-export FieldError for backwards compatibility\nexport type { FieldError } from '../types/error-response.types';\n\nexport interface ProblemOptions {\n type?: string;\n label?: string;\n detail?: string;\n errors?: FieldError[];\n}\n\nexport abstract class HttpProblemException extends HttpException {\n constructor(detailOrOptions: string | ProblemOptions, httpStatus: HttpStatus) {\n const options = typeof detailOrOptions === 'string' ? { detail: detailOrOptions } : detailOrOptions;\n\n super(\n {\n type: options.type ?? 'about:blank',\n label: options.label,\n detail: options.detail,\n errors: options.errors ?? [],\n },\n httpStatus,\n );\n }\n}\n","import { type CurrencyCode, minorToMajor } from './money';\n\nexport class CurrencyAmountDto {\n currency: string;\n value: string;\n\n static from(minor: bigint, currencyCode: string): CurrencyAmountDto;\n static from(minor: bigint | null | undefined, currencyCode: string): CurrencyAmountDto | null;\n static from(minor: bigint | null | undefined, currencyCode: string): CurrencyAmountDto | null {\n if (minor == null) return null;\n const dto = new CurrencyAmountDto();\n dto.currency = currencyCode;\n dto.value = minorToMajor(minor, currencyCode as CurrencyCode);\n return dto;\n }\n}\n","import { registerDecorator, type ValidationArguments, type ValidationOptions } from 'class-validator';\nimport { type CurrencyCode, majorToMinor, SUPPORTED_CURRENCIES } from './money';\n\n// Self-contained validator for `{currency, value}` payloads. Intentionally does NOT compose\n// `@ValidateNested()` + `@Type(() => CurrencyAmountDto)` — api-sdk and the consuming app each\n// load their own copy of `class-validator` (different MetadataStorage singletons), so any\n// field-level decorators registered on `CurrencyAmountDto` from inside api-sdk are invisible\n// to the consumer's validator. Doing everything here, at the consumer's call site, sidesteps\n// that and keeps the decorator usable everywhere.\n//\n// Checks performed (in order, short-circuiting):\n// 1. Value is a non-null object.\n// 2. `currency` and `value` are both strings.\n// 3. `currency` is in `SUPPORTED_CURRENCIES`.\n// 4. `majorToMinor(value, currency)` succeeds — enforces decimal precision ≤ currency exponent.\nexport function IsCurrency(validationOptions?: ValidationOptions): PropertyDecorator {\n return (target: object, propertyName: string | symbol) => {\n registerDecorator({\n name: 'isCurrency',\n target: target.constructor,\n propertyName: String(propertyName),\n options: validationOptions,\n validator: {\n validate(value: unknown): boolean {\n if (!value || typeof value !== 'object') return false;\n const { currency, value: amount } = value as Record<string, unknown>;\n if (typeof currency !== 'string' || typeof amount !== 'string') return false;\n if (!(currency in SUPPORTED_CURRENCIES)) return false;\n try {\n majorToMinor(amount, currency as CurrencyCode);\n return true;\n } catch {\n return false;\n }\n },\n defaultMessage(args: ValidationArguments): string {\n return `${args.property} must be {currency, value} where currency is a valid ISO 4217 code and value precision matches the currency exponent.`;\n },\n },\n });\n };\n}\n","import { registerDecorator, type ValidationArguments, type ValidationOptions } from 'class-validator';\nimport { SUPPORTED_CURRENCIES } from './money';\n\nexport function IsCurrencyCode(validationOptions?: ValidationOptions): PropertyDecorator {\n return (target: object, propertyName: string | symbol) => {\n registerDecorator({\n name: 'isCurrencyCode',\n target: target.constructor,\n propertyName: String(propertyName),\n options: validationOptions,\n validator: {\n validate(value: unknown): boolean {\n if (typeof value !== 'string') return false;\n return value in SUPPORTED_CURRENCIES;\n },\n defaultMessage(args: ValidationArguments): string {\n return `${args.property} must be a valid ISO 4217 currency code.`;\n },\n },\n });\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,iBAAA;SAAAA,gBAAA;;;;;;;;;;;ACAA;;;;;;;AAAA,SAASC,QAAQC,iBAAiB;AAClC,SACEC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,KACAC,WACK;;;ACxKP,SAASC,kBAAkB;;;ACA3B,SAASC,qBAAiC;AAanC,IAAeC,uBAAf,cAA4CC,cAAAA;EAbnD,OAamDA;;;EACjD,YAAYC,iBAA0CC,YAAwB;AAC5E,UAAMC,UAAU,OAAOF,oBAAoB,WAAW;MAAEG,QAAQH;IAAgB,IAAIA;AAEpF,UACE;MACEI,MAAMF,QAAQE,QAAQ;MACtBC,OAAOH,QAAQG;MACfF,QAAQD,QAAQC;MAChBG,QAAQJ,QAAQI,UAAU,CAAA;IAC5B,GACAL,UAAAA;EAEJ;AACF;;;ADxBO,IAAMM,sBAAN,cAAkCC,qBAAAA;EAHzC,OAGyCA;;;EACvC,YAAYC,iBAA2C;AACrD,UAAMA,mBAAmB,qBAAqBC,WAAWC,oBAAoB;EAC/E;AACF;;;ADoKA;6BAAc;AAEd,IAAMC,MAAM;EAAEC,MAAM;EAAOC,MAAM;EAAKC,UAAU;AAAG;AACnD,IAAMC,MAAM;EAAEH,MAAM;EAAOC,MAAM;EAAKC,UAAU;AAAG;AACnD,IAAME,MAAM;EAAEJ,MAAM;EAAOC,MAAM;EAAKC,UAAU;AAAG;AACnD,IAAMG,MAAM;EAAEL,MAAM;EAAOC,MAAM;EAAKC,UAAU;AAAG;AACnD,IAAMI,MAAM;EAAEN,MAAM;EAAOC,MAAM;EAAKC,UAAU;AAAG;AACnD,IAAMK,MAAM;EAAEP,MAAM;EAAOC,MAAM;EAAKC,UAAU;AAAG;AACnD,IAAMM,MAAM;EAAER,MAAM;EAAOC,MAAM;EAAKC,UAAU;AAAG;AACnD,IAAMO,MAAM;EAAET,MAAM;EAAOC,MAAM;EAAKC,UAAU;AAAG;AAE5C,IAAMQ,uBAAuB;EAClCC;EACAC;EACAC;EACAC;EACAf;EACAgB;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAlE;EACAmE;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACApK;EACAC;EACAoK;EACAC;EACApK;EACAqK;EACApK;EACAqK;EACApK;EACAqK;EACAC;EACAC;EACAC;EACAvK;AACF;AAOO,SAASwK,gBAAgBC,cAA0B;AACxD,SAAOxK,qBAAqBwK,YAAAA;AAC9B;AAFgBD;AAIT,SAASE,aACdC,OACAF,cACAG,WAA0C;AAE1C,QAAMC,WAAWL,gBAAgBC,YAAAA;AACjC,QAAMK,SAASC,OAAO;IAAED,QAAQH;IAAOE;EAAS,CAAA;AAEhD,MAAI,CAACD,WAAW;AACd,WAAOI,UAAUF,MAAAA;EACnB;AAEA,SAAOE,UAAUF,QAAQ,CAAC,EAAEG,OAAOJ,UAAUK,iBAAgB,MAAON,UAAU;IAAEK;IAAOJ,UAAUK;EAAiB,CAAA,CAAA;AACpH;AAbgBR;AAkBT,SAASS,aAAaC,OAAeX,cAA4BY,QAAQ,UAAQ;AACtF,QAAM,EAAE5L,SAAQ,IAAK+K,gBAAgBC,YAAAA;AACrC,QAAMa,QAAQ,OAAO7L,aAAa,WAAW8L,OAAO9L,QAAAA,IAAYA;AAChE,QAAM+L,UAAUJ,MAAMK,KAAI;AAE1B,MAAI,CAAC,kBAAkBC,KAAKF,OAAAA,GAAU;AACpC,UAAM,IAAIG,oBAAoB;MAC5BC,QAAQ,oBAAoBR,KAAAA;MAC5BS,QAAQ;QAAC;UAAER;UAAOS,SAAS;QAAwB;;IACrD,CAAA;EACF;AAEA,QAAMC,aAAaP,QAAQQ,WAAW,GAAA;AACtC,QAAMC,gBAAgBF,aAAaP,QAAQU,MAAM,CAAA,IAAKV;AACtD,QAAM,CAACW,WAAWC,iBAAiB,EAAE,IAAIH,cAAcI,MAAM,GAAA;AAE7D,MAAID,eAAeE,SAAShB,OAAO;AACjC,UAAM,IAAIK,oBAAoB;MAC5BC,QAAQ,+BAA+BnB,YAAAA,wBAAoCa,KAAAA;MAC3EO,QAAQ;QAAC;UAAER;UAAOS,SAAS,GAAGrB,YAAAA,iBAA6Ba,KAAAA,iBAAsBA,UAAU,IAAI,KAAK,GAAA;QAAO;;IAC7G,CAAA;EACF;AAEA,QAAMiB,iBAAiBH,eAAeI,OAAOlB,OAAO,GAAA;AACpD,QAAMmB,mBAAmB,GAAGN,SAAAA,GAAYI,cAAAA,GAAiBG,QAAQ,aAAa,EAAA;AAC9E,QAAM/B,QAAQgC,OAAOF,oBAAoB,GAAA;AAEzC,SAAOV,aAAa,CAACpB,QAAQA;AAC/B;AA5BgBQ;;;AGhYT,IAAMyB,oBAAN,MAAMA,mBAAAA;EAFb,OAEaA;;;EACXC;EACAC;EAIA,OAAOC,KAAKC,OAAkCC,cAAgD;AAC5F,QAAID,SAAS,KAAM,QAAO;AAC1B,UAAME,MAAM,IAAIN,mBAAAA;AAChBM,QAAIL,WAAWI;AACfC,QAAIJ,QAAQK,aAAaH,OAAOC,YAAAA;AAChC,WAAOC;EACT;AACF;;;ACfA,SAASE,yBAA2E;AAe7E,SAASC,WAAWC,mBAAqC;AAC9D,SAAO,CAACC,QAAgBC,iBAAAA;AACtBC,sBAAkB;MAChBC,MAAM;MACNH,QAAQA,OAAO;MACfC,cAAcG,OAAOH,YAAAA;MACrBI,SAASN;MACTO,WAAW;QACTC,SAASC,OAAc;AACrB,cAAI,CAACA,SAAS,OAAOA,UAAU,SAAU,QAAO;AAChD,gBAAM,EAAEC,UAAUD,OAAOE,OAAM,IAAKF;AACpC,cAAI,OAAOC,aAAa,YAAY,OAAOC,WAAW,SAAU,QAAO;AACvE,cAAI,EAAED,YAAYE,sBAAuB,QAAO;AAChD,cAAI;AACFC,yBAAaF,QAAQD,QAAAA;AACrB,mBAAO;UACT,QAAQ;AACN,mBAAO;UACT;QACF;QACAI,eAAeC,MAAyB;AACtC,iBAAO,GAAGA,KAAKC,QAAQ;QACzB;MACF;IACF,CAAA;EACF;AACF;AA1BgBjB;;;ACfhB,SAASkB,qBAAAA,0BAA2E;AAG7E,SAASC,eAAeC,mBAAqC;AAClE,SAAO,CAACC,QAAgBC,iBAAAA;AACtBC,IAAAA,mBAAkB;MAChBC,MAAM;MACNH,QAAQA,OAAO;MACfC,cAAcG,OAAOH,YAAAA;MACrBI,SAASN;MACTO,WAAW;QACTC,SAASC,OAAc;AACrB,cAAI,OAAOA,UAAU,SAAU,QAAO;AACtC,iBAAOA,SAASC;QAClB;QACAC,eAAeC,MAAyB;AACtC,iBAAO,GAAGA,KAAKC,QAAQ;QACzB;MACF;IACF,CAAA;EACF;AACF;AAlBgBd;;;ANChB,WAAAe,gBAAc;","names":["money_exports","dinero","toDecimal","AED","AFN","ALL","AMD","AOA","ARS","AUD","AWG","AZN","BAM","BBD","BDT","BGN","BHD","BIF","BMD","BND","BOB","BOV","BRL","BSD","BTN","BWP","BYN","BZD","CAD","CDF","CHE","CHF","CHW","CLF","CLP","CNY","COP","COU","CRC","CUP","CVE","CZK","DJF","DKK","DOP","DZD","EGP","ERN","ETB","EUR","FJD","FKP","GBP","GEL","GHS","GIP","GMD","GNF","GTQ","GYD","HKD","HNL","HTG","HUF","IDR","ILS","INR","IQD","IRR","ISK","JMD","JOD","JPY","KES","KGS","KHR","KMF","KPW","KRW","KWD","KYD","KZT","LAK","LBP","LKR","LRD","LSL","LYD","MAD","MDL","MGA","MKD","MMK","MNT","MOP","MRU","MUR","MVR","MWK","MXN","MXV","MYR","MZN","NAD","NGN","NIO","NOK","NPR","NZD","OMR","PAB","PEN","PGK","PHP","PKR","PLN","PYG","QAR","RON","RSD","RUB","RWF","SAR","SBD","SCR","SDG","SEK","SGD","SHP","SLE","SOS","SRD","SSP","STN","SVC","SYP","SZL","THB","TJS","TMT","TND","TOP","TRY","TTD","TWD","TZS","UAH","UGX","USD","USN","UYI","UYU","UYW","UZS","VED","VES","VND","VUV","WST","XAD","XAF","XCD","XCG","XOF","XPF","YER","ZAR","ZMW","ZWG","HttpStatus","HttpException","HttpProblemException","HttpException","detailOrOptions","httpStatus","options","detail","type","label","errors","ValidationException","HttpProblemException","detailOrOptions","HttpStatus","UNPROCESSABLE_ENTITY","ANG","code","base","exponent","HRK","XAG","XAU","XDR","XPD","XPT","ZWL","SUPPORTED_CURRENCIES","AED","AFN","ALL","AMD","AOA","ARS","AUD","AWG","AZN","BAM","BBD","BDT","BGN","BHD","BIF","BMD","BND","BOB","BOV","BRL","BSD","BTN","BWP","BYN","BZD","CAD","CDF","CHE","CHF","CHW","CLF","CLP","CNY","COP","COU","CRC","CUP","CVE","CZK","DJF","DKK","DOP","DZD","EGP","ERN","ETB","EUR","FJD","FKP","GBP","GEL","GHS","GIP","GMD","GNF","GTQ","GYD","HKD","HNL","HTG","HUF","IDR","ILS","INR","IQD","IRR","ISK","JMD","JOD","JPY","KES","KGS","KHR","KMF","KPW","KRW","KWD","KYD","KZT","LAK","LBP","LKR","LRD","LSL","LYD","MAD","MDL","MGA","MKD","MMK","MNT","MOP","MRU","MUR","MVR","MWK","MXN","MXV","MYR","MZN","NAD","NGN","NIO","NOK","NPR","NZD","OMR","PAB","PEN","PGK","PHP","PKR","PLN","PYG","QAR","RON","RSD","RUB","RWF","SAR","SBD","SCR","SDG","SEK","SGD","SHP","SLE","SOS","SRD","SSP","STN","SVC","SYP","SZL","THB","TJS","TMT","TND","TOP","TRY","TTD","TWD","TZS","UAH","UGX","USD","USN","UYI","UYU","UYW","UZS","VED","VES","VND","VUV","WST","XAD","XAF","XCD","XCG","XOF","XPF","YER","ZAR","ZMW","ZWG","resolveCurrency","currencyCode","minorToMajor","minor","transform","currency","amount","dinero","toDecimal","value","resolvedCurrency","majorToMinor","major","field","scale","Number","trimmed","trim","test","ValidationException","detail","errors","message","isNegative","startsWith","unsignedValue","slice","wholePart","fractionalPart","split","length","paddedFraction","padEnd","normalizedDigits","replace","BigInt","CurrencyAmountDto","currency","value","from","minor","currencyCode","dto","minorToMajor","registerDecorator","IsCurrency","validationOptions","target","propertyName","registerDecorator","name","String","options","validator","validate","value","currency","amount","SUPPORTED_CURRENCIES","majorToMinor","defaultMessage","args","property","registerDecorator","IsCurrencyCode","validationOptions","target","propertyName","registerDecorator","name","String","options","validator","validate","value","SUPPORTED_CURRENCIES","defaultMessage","args","property","money_exports"]}
|