@plyaz/config 1.7.17 → 1.7.19
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/index.cjs +3 -3
- package/dist/index.cjs.map +1 -1
- package/dist/index.mjs +4 -4
- package/dist/index.mjs.map +1 -1
- package/dist/math/constants.d.ts +16 -0
- package/dist/math/constants.d.ts.map +1 -1
- package/dist/math/index.cjs +1 -1
- package/dist/math/index.cjs.map +1 -1
- package/dist/math/index.mjs +1 -1
- package/dist/math/index.mjs.map +1 -1
- package/dist/notifications/index.cjs +1 -1
- package/dist/notifications/index.cjs.map +1 -1
- package/dist/notifications/index.mjs +1 -1
- package/dist/notifications/index.mjs.map +1 -1
- package/dist/payments/index.cjs +2 -2
- package/dist/payments/index.cjs.map +1 -1
- package/dist/payments/index.mjs +3 -3
- package/dist/payments/index.mjs.map +1 -1
- package/dist/payments/routing/methods/ab-testing/ab-testing.d.ts +13 -0
- package/dist/payments/routing/methods/ab-testing/ab-testing.d.ts.map +1 -1
- package/dist/payments/routing/methods/cost-optimization/cost-optimization-registry.d.ts +3 -0
- package/dist/payments/routing/methods/cost-optimization/cost-optimization-registry.d.ts.map +1 -0
- package/dist/payments/routing/methods/cost-optimization/index.d.ts +3 -0
- package/dist/payments/routing/methods/cost-optimization/index.d.ts.map +1 -0
- package/dist/payments/routing/methods/cost-optimization/strategies/aggressive.config.d.ts +3 -0
- package/dist/payments/routing/methods/cost-optimization/strategies/aggressive.config.d.ts.map +1 -0
- package/dist/payments/routing/methods/cost-optimization/strategies/balanced.config.d.ts +3 -0
- package/dist/payments/routing/methods/cost-optimization/strategies/balanced.config.d.ts.map +1 -0
- package/dist/payments/routing/methods/cost-optimization/strategies/conservative.config.d.ts +3 -0
- package/dist/payments/routing/methods/cost-optimization/strategies/conservative.config.d.ts.map +1 -0
- package/dist/payments/routing/methods/cost-optimization/strategies/index.d.ts +5 -0
- package/dist/payments/routing/methods/cost-optimization/strategies/index.d.ts.map +1 -0
- package/dist/payments/routing/methods/cost-optimization/strategies/targeted.config.d.ts +3 -0
- package/dist/payments/routing/methods/cost-optimization/strategies/targeted.config.d.ts.map +1 -0
- package/dist/payments/routing/methods/index.d.ts +1 -0
- package/dist/payments/routing/methods/index.d.ts.map +1 -1
- package/dist/payments/routing/provider-selection/amount-based-selection.d.ts.map +1 -1
- package/dist/payments/routing/provider-selection/region-specific-providers.d.ts +1 -1
- package/dist/payments/routing/provider-selection/region-specific-providers.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/math/constants.d.ts
CHANGED
|
@@ -305,6 +305,22 @@ export declare const NUMERIC_CONSTANTS: {
|
|
|
305
305
|
* Ten (10)
|
|
306
306
|
*/
|
|
307
307
|
readonly TEN: 10;
|
|
308
|
+
/**
|
|
309
|
+
* One hour in seconds (3600)
|
|
310
|
+
*/
|
|
311
|
+
readonly ONE_HOUR_SECONDS: 3600;
|
|
312
|
+
/**
|
|
313
|
+
* Minimum pool size (1)
|
|
314
|
+
*/
|
|
315
|
+
readonly MIN_POOL_SIZE: 1;
|
|
316
|
+
/**
|
|
317
|
+
* Maximum pool size (100)
|
|
318
|
+
*/
|
|
319
|
+
readonly MAX_POOL_SIZE: 100;
|
|
320
|
+
/**
|
|
321
|
+
* Minimum timeout in milliseconds (1000)
|
|
322
|
+
*/
|
|
323
|
+
readonly MIN_TIMEOUT_MS: 1000;
|
|
308
324
|
};
|
|
309
325
|
/**
|
|
310
326
|
* Type for number system values
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/math/constants.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;GAEG;AACH,eAAO,MAAM,aAAa;IAExB;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAIH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAIH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAIH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAIH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;CAEK,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,cAAc;IACzB;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;CAEK,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,WAAW;IACtB;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;CAEK,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,iBAAiB;IAC5B;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;CAEK,CAAC;AAEX;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,OAAO,aAAa,CAAC,CAAC;AAElF;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,OAAO,cAAc,CAAC,CAAC;AAEhF;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,OAAO,WAAW,CAAC,CAAC;AAExE;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,OAAO,iBAAiB,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/math/constants.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;GAEG;AACH,eAAO,MAAM,aAAa;IAExB;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAIH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAIH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAIH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAIH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;CAEK,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,cAAc;IACzB;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;CAEK,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,WAAW;IACtB;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;CAEK,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,iBAAiB;IAC5B;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAEH;;OAEG;;IAEH;;OAEG;;IAEH;;OAEG;;IAEH;;OAEG;;CAEK,CAAC;AAEX;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,OAAO,aAAa,CAAC,CAAC;AAElF;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,OAAO,cAAc,CAAC,CAAC;AAEhF;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,OAAO,WAAW,CAAC,CAAC;AAExE;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,OAAO,iBAAiB,CAAC,CAAC"}
|
package/dist/math/index.cjs
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
'use strict';// @plyaz package - Built with tsup
|
|
2
|
-
var E={BINARY_BASE:2,OCTAL_BASE:8,DECIMAL_BASE:10,DUODECIMAL_BASE:12,HEX_BASE:16,BASE32:32,BASE36:36,BASE58:58,BASE62:62,BASE64:64,HEX_PAD_LENGTH:2,HEX_COLOR_LENGTH:6,HEX_COLOR_ALPHA_LENGTH:8,BITS_PER_BYTE:8,BITS_PER_NIBBLE:4,BYTES_PER_KB:1024,BYTES_PER_MB:1048576,BYTES_PER_GB:1073741824,CURRENCY_DECIMAL_PLACES:2,PERCENTAGE_DECIMAL_PLACES:2,COORDINATE_DECIMAL_PLACES:6,MAX_SAFE_INTEGER:9007199254740991,MIN_SAFE_INTEGER:-9007199254740991,MAX_INT32:2147483647,MIN_INT32:-2147483648,MAX_UINT16:65535,MAX_UINT8:255,DEGREES_FULL_CIRCLE:360,DEGREES_HALF_CIRCLE:180,DEGREES_RIGHT_ANGLE:90,DEGREES_PER_RADIAN:57.29577951308232,RADIANS_PER_DEGREE:.017453292519943295,PI:3.141592653589793,TWO_PI:6.283185307179586,HALF_PI:1.5707963267948966,E:2.718281828459045,GOLDEN_RATIO:1.618033988749895,SQRT2:1.4142135623730951,SQRT3:1.7320508075688772,LN2:.6931471805599453,LN10:2.302585092994046,LOG2E:1.4426950408889634,LOG10E:.4342944819032518},_={PERCENTAGE_MAX:100,HALF:.5,TENTH:.1,TWENTIETH:.05,PERCENT_95:.95,PERCENT_99:.99,QUADRATIC_THRESHOLD:1.5,EXPONENTIAL_THRESHOLD:3,VARIANCE_MULTIPLIER:4,VARIANCE_OFFSET:2},T={ONE_AND_HALF:1.5,DOUBLE:2,TRIPLE:3,QUADRUPLE:4,QUINTUPLE:5,TEN:10},N={MILLISECONDS_PER_SECOND:1e3,SECONDS_PER_MINUTE:60,MINUTES_PER_HOUR:60,HOURS_PER_DAY:24,NEGATIVE_ONE:-1,ZERO:0,ONE:1,TWO:2,THREE:3,FIVE:5,TEN:10};exports.MATH_CONSTANTS=_;exports.MULTIPLIERS=T;exports.NUMBER_SYSTEM=E;exports.NUMERIC_CONSTANTS=N;//# sourceMappingURL=index.cjs.map
|
|
2
|
+
var E={BINARY_BASE:2,OCTAL_BASE:8,DECIMAL_BASE:10,DUODECIMAL_BASE:12,HEX_BASE:16,BASE32:32,BASE36:36,BASE58:58,BASE62:62,BASE64:64,HEX_PAD_LENGTH:2,HEX_COLOR_LENGTH:6,HEX_COLOR_ALPHA_LENGTH:8,BITS_PER_BYTE:8,BITS_PER_NIBBLE:4,BYTES_PER_KB:1024,BYTES_PER_MB:1048576,BYTES_PER_GB:1073741824,CURRENCY_DECIMAL_PLACES:2,PERCENTAGE_DECIMAL_PLACES:2,COORDINATE_DECIMAL_PLACES:6,MAX_SAFE_INTEGER:9007199254740991,MIN_SAFE_INTEGER:-9007199254740991,MAX_INT32:2147483647,MIN_INT32:-2147483648,MAX_UINT16:65535,MAX_UINT8:255,DEGREES_FULL_CIRCLE:360,DEGREES_HALF_CIRCLE:180,DEGREES_RIGHT_ANGLE:90,DEGREES_PER_RADIAN:57.29577951308232,RADIANS_PER_DEGREE:.017453292519943295,PI:3.141592653589793,TWO_PI:6.283185307179586,HALF_PI:1.5707963267948966,E:2.718281828459045,GOLDEN_RATIO:1.618033988749895,SQRT2:1.4142135623730951,SQRT3:1.7320508075688772,LN2:.6931471805599453,LN10:2.302585092994046,LOG2E:1.4426950408889634,LOG10E:.4342944819032518},_={PERCENTAGE_MAX:100,HALF:.5,TENTH:.1,TWENTIETH:.05,PERCENT_95:.95,PERCENT_99:.99,QUADRATIC_THRESHOLD:1.5,EXPONENTIAL_THRESHOLD:3,VARIANCE_MULTIPLIER:4,VARIANCE_OFFSET:2},T={ONE_AND_HALF:1.5,DOUBLE:2,TRIPLE:3,QUADRUPLE:4,QUINTUPLE:5,TEN:10},N={MILLISECONDS_PER_SECOND:1e3,SECONDS_PER_MINUTE:60,MINUTES_PER_HOUR:60,HOURS_PER_DAY:24,NEGATIVE_ONE:-1,ZERO:0,ONE:1,TWO:2,THREE:3,FIVE:5,TEN:10,ONE_HOUR_SECONDS:3600,MIN_POOL_SIZE:1,MAX_POOL_SIZE:100,MIN_TIMEOUT_MS:1e3};exports.MATH_CONSTANTS=_;exports.MULTIPLIERS=T;exports.NUMBER_SYSTEM=E;exports.NUMERIC_CONSTANTS=N;//# sourceMappingURL=index.cjs.map
|
|
3
3
|
//# sourceMappingURL=index.cjs.map
|
package/dist/math/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/math/constants.ts"],"names":["NUMBER_SYSTEM","MATH_CONSTANTS","MULTIPLIERS","NUMERIC_CONSTANTS"],"mappings":";AAYO,IAAMA,
|
|
1
|
+
{"version":3,"sources":["../../src/math/constants.ts"],"names":["NUMBER_SYSTEM","MATH_CONSTANTS","MULTIPLIERS","NUMERIC_CONSTANTS"],"mappings":";AAYO,IAAMA,EAAgB,CAK3B,WAAA,CAAa,CAAA,CAKb,UAAA,CAAY,EAKZ,YAAA,CAAc,EAAA,CAKd,eAAA,CAAiB,EAAA,CAKjB,SAAU,EAAA,CAKV,MAAA,CAAQ,EAAA,CAKR,MAAA,CAAQ,GAKR,MAAA,CAAQ,EAAA,CAKR,MAAA,CAAQ,EAAA,CAKR,OAAQ,EAAA,CAMR,cAAA,CAAgB,CAAA,CAKhB,gBAAA,CAAkB,EAKlB,sBAAA,CAAwB,CAAA,CAKxB,aAAA,CAAe,CAAA,CAKf,gBAAiB,CAAA,CAKjB,YAAA,CAAc,IAAA,CAKd,YAAA,CAAc,QAKd,YAAA,CAAc,UAAA,CAMd,uBAAA,CAAyB,CAAA,CAKzB,0BAA2B,CAAA,CAK3B,yBAAA,CAA2B,CAAA,CAK3B,gBAAA,CAAkB,iBAKlB,gBAAA,CAAkB,iBAAA,CAKlB,SAAA,CAAW,UAAA,CAKX,UAAW,WAAA,CAKX,UAAA,CAAY,KAAA,CAKZ,SAAA,CAAW,IAMX,mBAAA,CAAqB,GAAA,CAKrB,mBAAA,CAAqB,GAAA,CAKrB,oBAAqB,EAAA,CAKrB,kBAAA,CAAoB,iBAAA,CAKpB,kBAAA,CAAoB,oBAMpB,EAAA,CAAI,iBAAA,CAKJ,MAAA,CAAQ,iBAAA,CAKR,QAAS,kBAAA,CAKT,CAAA,CAAG,kBAKH,YAAA,CAAc,iBAAA,CAKd,MAAO,kBAAA,CAKP,KAAA,CAAO,kBAAA,CAKP,GAAA,CAAK,kBAKL,IAAA,CAAM,iBAAA,CAKN,KAAA,CAAO,kBAAA,CAKP,OAAQ,iBACV,CAAA,CAKaC,CAAAA,CAAiB,CAI5B,eAAgB,GAAA,CAKhB,IAAA,CAAM,EAAA,CAKN,KAAA,CAAO,GAKP,SAAA,CAAW,GAAA,CAKX,UAAA,CAAY,GAAA,CAKZ,WAAY,GAAA,CAKZ,mBAAA,CAAqB,GAAA,CAKrB,qBAAA,CAAuB,EAKvB,mBAAA,CAAqB,CAAA,CAKrB,eAAA,CAAiB,CACnB,EAKaC,CAAAA,CAAc,CAIzB,YAAA,CAAc,GAAA,CAKd,OAAQ,CAAA,CAKR,MAAA,CAAQ,CAAA,CAKR,SAAA,CAAW,EAKX,SAAA,CAAW,CAAA,CAKX,GAAA,CAAK,EACP,EAKaC,CAAAA,CAAoB,CAI/B,uBAAA,CAAyB,GAAA,CAKzB,mBAAoB,EAAA,CAKpB,gBAAA,CAAkB,EAAA,CAKlB,aAAA,CAAe,GAKf,YAAA,CAAc,EAAA,CAKd,IAAA,CAAM,CAAA,CAKN,IAAK,CAAA,CAKL,GAAA,CAAK,CAAA,CAKL,KAAA,CAAO,EAKP,IAAA,CAAM,CAAA,CAKN,GAAA,CAAK,EAAA,CAIL,iBAAkB,IAAA,CAIlB,aAAA,CAAe,EAIf,aAAA,CAAe,GAAA,CAIf,eAAgB,GAClB","file":"index.cjs","sourcesContent":["/**\n * Mathematical Constants\n *\n * Common mathematical values, number system bases, and calculation constants\n * used throughout the application for various computations.\n *\n * @module math/constants\n */\n\n/**\n * Number system base constants\n */\nexport const NUMBER_SYSTEM = {\n // Number bases\n /**\n * Base 2 - Binary number system\n */\n BINARY_BASE: 2,\n\n /**\n * Base 8 - Octal number system\n */\n OCTAL_BASE: 8,\n\n /**\n * Base 10 - Decimal number system\n */\n DECIMAL_BASE: 10,\n\n /**\n * Base 12 - Duodecimal number system\n */\n DUODECIMAL_BASE: 12,\n\n /**\n * Base 16 - Hexadecimal number system\n */\n HEX_BASE: 16,\n\n /**\n * Base 32 - Base32 encoding\n */\n BASE32: 32,\n\n /**\n * Base 36 - Alphanumeric number system (0-9, a-z)\n */\n BASE36: 36,\n\n /**\n * Base 58 - Bitcoin base58 encoding (excludes similar looking characters)\n */\n BASE58: 58,\n\n /**\n * Base 62 - Alphanumeric with uppercase (0-9, a-z, A-Z)\n */\n BASE62: 62,\n\n /**\n * Base 64 - Base64 encoding\n */\n BASE64: 64,\n\n // Formatting and padding\n /**\n * Default padding length for hexadecimal values (e.g., \"0F\" instead of \"F\")\n */\n HEX_PAD_LENGTH: 2,\n\n /**\n * Padding length for RGB hex colors (6 characters)\n */\n HEX_COLOR_LENGTH: 6,\n\n /**\n * Padding length for RGBA hex colors with alpha (8 characters)\n */\n HEX_COLOR_ALPHA_LENGTH: 8,\n\n /**\n * Standard byte size in bits\n */\n BITS_PER_BYTE: 8,\n\n /**\n * Standard nibble size in bits (half byte)\n */\n BITS_PER_NIBBLE: 4,\n\n /**\n * Number of bytes in a kilobyte (binary)\n */\n BYTES_PER_KB: 1024,\n\n /**\n * Number of bytes in a megabyte (binary)\n */\n BYTES_PER_MB: 1048576,\n\n /**\n * Number of bytes in a gigabyte (binary)\n */\n BYTES_PER_GB: 1073741824,\n\n // Precision and rounding\n /**\n * Default decimal places for currency\n */\n CURRENCY_DECIMAL_PLACES: 2,\n\n /**\n * Default decimal places for percentages\n */\n PERCENTAGE_DECIMAL_PLACES: 2,\n\n /**\n * Default decimal places for coordinates\n */\n COORDINATE_DECIMAL_PLACES: 6,\n\n /**\n * Maximum safe integer in JavaScript\n */\n MAX_SAFE_INTEGER: 9007199254740991,\n\n /**\n * Minimum safe integer in JavaScript\n */\n MIN_SAFE_INTEGER: -9007199254740991,\n\n /**\n * Maximum 32-bit signed integer\n */\n MAX_INT32: 2147483647,\n\n /**\n * Minimum 32-bit signed integer\n */\n MIN_INT32: -2147483648,\n\n /**\n * Maximum 16-bit unsigned integer\n */\n MAX_UINT16: 65535,\n\n /**\n * Maximum 8-bit unsigned integer\n */\n MAX_UINT8: 255,\n\n // Common angles in degrees\n /**\n * Full circle in degrees\n */\n DEGREES_FULL_CIRCLE: 360,\n\n /**\n * Half circle in degrees\n */\n DEGREES_HALF_CIRCLE: 180,\n\n /**\n * Quarter circle in degrees (right angle)\n */\n DEGREES_RIGHT_ANGLE: 90,\n\n /**\n * Degrees in a radian\n */\n DEGREES_PER_RADIAN: 57.29577951308232,\n\n /**\n * Radians in a degree\n */\n RADIANS_PER_DEGREE: 0.017453292519943295,\n\n // Mathematical constants\n /**\n * Pi (π)\n */\n PI: 3.141592653589793,\n\n /**\n * Two times Pi (2π) - full circle in radians\n */\n TWO_PI: 6.283185307179586,\n\n /**\n * Half Pi (π/2) - quarter circle in radians\n */\n HALF_PI: 1.5707963267948966,\n\n /**\n * Euler's number (e)\n */\n E: 2.718281828459045,\n\n /**\n * Golden ratio (φ)\n */\n GOLDEN_RATIO: 1.618033988749895,\n\n /**\n * Square root of 2\n */\n SQRT2: 1.4142135623730951,\n\n /**\n * Square root of 3\n */\n SQRT3: 1.7320508075688772,\n\n /**\n * Natural logarithm of 2\n */\n LN2: 0.6931471805599453,\n\n /**\n * Natural logarithm of 10\n */\n LN10: 2.302585092994046,\n\n /**\n * Base 2 logarithm of E\n */\n LOG2E: 1.4426950408889634,\n\n /**\n * Base 10 logarithm of E\n */\n LOG10E: 0.4342944819032518,\n} as const;\n\n/**\n * Mathematical and percentage constants\n */\nexport const MATH_CONSTANTS = {\n /**\n * Maximum percentage value\n */\n PERCENTAGE_MAX: 100,\n\n /**\n * Half value (50%)\n */\n HALF: 0.5,\n\n /**\n * One tenth (10%)\n */\n TENTH: 0.1,\n\n /**\n * One twentieth (5%)\n */\n TWENTIETH: 0.05,\n\n /**\n * 95th percentile\n */\n PERCENT_95: 0.95,\n\n /**\n * 99th percentile\n */\n PERCENT_99: 0.99,\n\n /**\n * Threshold for quadratic algorithm detection\n */\n QUADRATIC_THRESHOLD: 1.5,\n\n /**\n * Threshold for exponential algorithm detection\n */\n EXPONENTIAL_THRESHOLD: 3,\n\n /**\n * Multiplier for variance calculations\n */\n VARIANCE_MULTIPLIER: 4,\n\n /**\n * Offset for variance calculations\n */\n VARIANCE_OFFSET: 2,\n} as const;\n\n/**\n * Common numeric multipliers for calculations\n */\nexport const MULTIPLIERS = {\n /**\n * One and a half times (1.5x)\n */\n ONE_AND_HALF: 1.5,\n\n /**\n * Double (2x)\n */\n DOUBLE: 2,\n\n /**\n * Triple (3x)\n */\n TRIPLE: 3,\n\n /**\n * Quadruple (4x)\n */\n QUADRUPLE: 4,\n\n /**\n * Quintuple (5x)\n */\n QUINTUPLE: 5,\n\n /**\n * Ten times (10x)\n */\n TEN: 10,\n} as const;\n\n/**\n * Common numeric constants for general use\n */\nexport const NUMERIC_CONSTANTS = {\n /**\n * Milliseconds in one second\n */\n MILLISECONDS_PER_SECOND: 1000,\n\n /**\n * Seconds in one minute\n */\n SECONDS_PER_MINUTE: 60,\n\n /**\n * Minutes in one hour\n */\n MINUTES_PER_HOUR: 60,\n\n /**\n * Hours in one day\n */\n HOURS_PER_DAY: 24,\n\n /**\n * Negative one (-1)\n */\n NEGATIVE_ONE: -1,\n\n /**\n * Zero (0)\n */\n ZERO: 0,\n\n /**\n * One (1)\n */\n ONE: 1,\n\n /**\n * Two (2)\n */\n TWO: 2,\n\n /**\n * Three (3)\n */\n THREE: 3,\n\n /**\n * Five (5)\n */\n FIVE: 5,\n\n /**\n * Ten (10)\n */\n TEN: 10,\n /**\n * One hour in seconds (3600)\n */\n ONE_HOUR_SECONDS: 3600,\n /**\n * Minimum pool size (1)\n */\n MIN_POOL_SIZE: 1,\n /**\n * Maximum pool size (100)\n */\n MAX_POOL_SIZE: 100,\n /**\n * Minimum timeout in milliseconds (1000)\n */\n MIN_TIMEOUT_MS: 1000,\n} as const;\n\n/**\n * Type for number system values\n */\nexport type NumberSystemBase = (typeof NUMBER_SYSTEM)[keyof typeof NUMBER_SYSTEM];\n\n/**\n * Type for math constant values\n */\nexport type MathConstant = (typeof MATH_CONSTANTS)[keyof typeof MATH_CONSTANTS];\n\n/**\n * Type for multiplier values\n */\nexport type Multiplier = (typeof MULTIPLIERS)[keyof typeof MULTIPLIERS];\n\n/**\n * Type for numeric constant values\n */\nexport type NumericConstant = (typeof NUMERIC_CONSTANTS)[keyof typeof NUMERIC_CONSTANTS];\n"]}
|
package/dist/math/index.mjs
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
// @plyaz package - Built with tsup
|
|
2
|
-
var E={BINARY_BASE:2,OCTAL_BASE:8,DECIMAL_BASE:10,DUODECIMAL_BASE:12,HEX_BASE:16,BASE32:32,BASE36:36,BASE58:58,BASE62:62,BASE64:64,HEX_PAD_LENGTH:2,HEX_COLOR_LENGTH:6,HEX_COLOR_ALPHA_LENGTH:8,BITS_PER_BYTE:8,BITS_PER_NIBBLE:4,BYTES_PER_KB:1024,BYTES_PER_MB:1048576,BYTES_PER_GB:1073741824,CURRENCY_DECIMAL_PLACES:2,PERCENTAGE_DECIMAL_PLACES:2,COORDINATE_DECIMAL_PLACES:6,MAX_SAFE_INTEGER:9007199254740991,MIN_SAFE_INTEGER:-9007199254740991,MAX_INT32:2147483647,MIN_INT32:-2147483648,MAX_UINT16:65535,MAX_UINT8:255,DEGREES_FULL_CIRCLE:360,DEGREES_HALF_CIRCLE:180,DEGREES_RIGHT_ANGLE:90,DEGREES_PER_RADIAN:57.29577951308232,RADIANS_PER_DEGREE:.017453292519943295,PI:3.141592653589793,TWO_PI:6.283185307179586,HALF_PI:1.5707963267948966,E:2.718281828459045,GOLDEN_RATIO:1.618033988749895,SQRT2:1.4142135623730951,SQRT3:1.7320508075688772,LN2:.6931471805599453,LN10:2.302585092994046,LOG2E:1.4426950408889634,LOG10E:.4342944819032518},_={PERCENTAGE_MAX:100,HALF:.5,TENTH:.1,TWENTIETH:.05,PERCENT_95:.95,PERCENT_99:.99,QUADRATIC_THRESHOLD:1.5,EXPONENTIAL_THRESHOLD:3,VARIANCE_MULTIPLIER:4,VARIANCE_OFFSET:2},T={ONE_AND_HALF:1.5,DOUBLE:2,TRIPLE:3,QUADRUPLE:4,QUINTUPLE:5,TEN:10},N={MILLISECONDS_PER_SECOND:1e3,SECONDS_PER_MINUTE:60,MINUTES_PER_HOUR:60,HOURS_PER_DAY:24,NEGATIVE_ONE:-1,ZERO:0,ONE:1,TWO:2,THREE:3,FIVE:5,TEN:10};export{_ as MATH_CONSTANTS,T as MULTIPLIERS,E as NUMBER_SYSTEM,N as NUMERIC_CONSTANTS};//# sourceMappingURL=index.mjs.map
|
|
2
|
+
var E={BINARY_BASE:2,OCTAL_BASE:8,DECIMAL_BASE:10,DUODECIMAL_BASE:12,HEX_BASE:16,BASE32:32,BASE36:36,BASE58:58,BASE62:62,BASE64:64,HEX_PAD_LENGTH:2,HEX_COLOR_LENGTH:6,HEX_COLOR_ALPHA_LENGTH:8,BITS_PER_BYTE:8,BITS_PER_NIBBLE:4,BYTES_PER_KB:1024,BYTES_PER_MB:1048576,BYTES_PER_GB:1073741824,CURRENCY_DECIMAL_PLACES:2,PERCENTAGE_DECIMAL_PLACES:2,COORDINATE_DECIMAL_PLACES:6,MAX_SAFE_INTEGER:9007199254740991,MIN_SAFE_INTEGER:-9007199254740991,MAX_INT32:2147483647,MIN_INT32:-2147483648,MAX_UINT16:65535,MAX_UINT8:255,DEGREES_FULL_CIRCLE:360,DEGREES_HALF_CIRCLE:180,DEGREES_RIGHT_ANGLE:90,DEGREES_PER_RADIAN:57.29577951308232,RADIANS_PER_DEGREE:.017453292519943295,PI:3.141592653589793,TWO_PI:6.283185307179586,HALF_PI:1.5707963267948966,E:2.718281828459045,GOLDEN_RATIO:1.618033988749895,SQRT2:1.4142135623730951,SQRT3:1.7320508075688772,LN2:.6931471805599453,LN10:2.302585092994046,LOG2E:1.4426950408889634,LOG10E:.4342944819032518},_={PERCENTAGE_MAX:100,HALF:.5,TENTH:.1,TWENTIETH:.05,PERCENT_95:.95,PERCENT_99:.99,QUADRATIC_THRESHOLD:1.5,EXPONENTIAL_THRESHOLD:3,VARIANCE_MULTIPLIER:4,VARIANCE_OFFSET:2},T={ONE_AND_HALF:1.5,DOUBLE:2,TRIPLE:3,QUADRUPLE:4,QUINTUPLE:5,TEN:10},N={MILLISECONDS_PER_SECOND:1e3,SECONDS_PER_MINUTE:60,MINUTES_PER_HOUR:60,HOURS_PER_DAY:24,NEGATIVE_ONE:-1,ZERO:0,ONE:1,TWO:2,THREE:3,FIVE:5,TEN:10,ONE_HOUR_SECONDS:3600,MIN_POOL_SIZE:1,MAX_POOL_SIZE:100,MIN_TIMEOUT_MS:1e3};export{_ as MATH_CONSTANTS,T as MULTIPLIERS,E as NUMBER_SYSTEM,N as NUMERIC_CONSTANTS};//# sourceMappingURL=index.mjs.map
|
|
3
3
|
//# sourceMappingURL=index.mjs.map
|
package/dist/math/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/math/constants.ts"],"names":["NUMBER_SYSTEM","MATH_CONSTANTS","MULTIPLIERS","NUMERIC_CONSTANTS"],"mappings":";AAYO,IAAMA,
|
|
1
|
+
{"version":3,"sources":["../../src/math/constants.ts"],"names":["NUMBER_SYSTEM","MATH_CONSTANTS","MULTIPLIERS","NUMERIC_CONSTANTS"],"mappings":";AAYO,IAAMA,EAAgB,CAK3B,WAAA,CAAa,CAAA,CAKb,UAAA,CAAY,EAKZ,YAAA,CAAc,EAAA,CAKd,eAAA,CAAiB,EAAA,CAKjB,SAAU,EAAA,CAKV,MAAA,CAAQ,EAAA,CAKR,MAAA,CAAQ,GAKR,MAAA,CAAQ,EAAA,CAKR,MAAA,CAAQ,EAAA,CAKR,OAAQ,EAAA,CAMR,cAAA,CAAgB,CAAA,CAKhB,gBAAA,CAAkB,EAKlB,sBAAA,CAAwB,CAAA,CAKxB,aAAA,CAAe,CAAA,CAKf,gBAAiB,CAAA,CAKjB,YAAA,CAAc,IAAA,CAKd,YAAA,CAAc,QAKd,YAAA,CAAc,UAAA,CAMd,uBAAA,CAAyB,CAAA,CAKzB,0BAA2B,CAAA,CAK3B,yBAAA,CAA2B,CAAA,CAK3B,gBAAA,CAAkB,iBAKlB,gBAAA,CAAkB,iBAAA,CAKlB,SAAA,CAAW,UAAA,CAKX,UAAW,WAAA,CAKX,UAAA,CAAY,KAAA,CAKZ,SAAA,CAAW,IAMX,mBAAA,CAAqB,GAAA,CAKrB,mBAAA,CAAqB,GAAA,CAKrB,oBAAqB,EAAA,CAKrB,kBAAA,CAAoB,iBAAA,CAKpB,kBAAA,CAAoB,oBAMpB,EAAA,CAAI,iBAAA,CAKJ,MAAA,CAAQ,iBAAA,CAKR,QAAS,kBAAA,CAKT,CAAA,CAAG,kBAKH,YAAA,CAAc,iBAAA,CAKd,MAAO,kBAAA,CAKP,KAAA,CAAO,kBAAA,CAKP,GAAA,CAAK,kBAKL,IAAA,CAAM,iBAAA,CAKN,KAAA,CAAO,kBAAA,CAKP,OAAQ,iBACV,CAAA,CAKaC,CAAAA,CAAiB,CAI5B,eAAgB,GAAA,CAKhB,IAAA,CAAM,EAAA,CAKN,KAAA,CAAO,GAKP,SAAA,CAAW,GAAA,CAKX,UAAA,CAAY,GAAA,CAKZ,WAAY,GAAA,CAKZ,mBAAA,CAAqB,GAAA,CAKrB,qBAAA,CAAuB,EAKvB,mBAAA,CAAqB,CAAA,CAKrB,eAAA,CAAiB,CACnB,EAKaC,CAAAA,CAAc,CAIzB,YAAA,CAAc,GAAA,CAKd,OAAQ,CAAA,CAKR,MAAA,CAAQ,CAAA,CAKR,SAAA,CAAW,EAKX,SAAA,CAAW,CAAA,CAKX,GAAA,CAAK,EACP,EAKaC,CAAAA,CAAoB,CAI/B,uBAAA,CAAyB,GAAA,CAKzB,mBAAoB,EAAA,CAKpB,gBAAA,CAAkB,EAAA,CAKlB,aAAA,CAAe,GAKf,YAAA,CAAc,EAAA,CAKd,IAAA,CAAM,CAAA,CAKN,IAAK,CAAA,CAKL,GAAA,CAAK,CAAA,CAKL,KAAA,CAAO,EAKP,IAAA,CAAM,CAAA,CAKN,GAAA,CAAK,EAAA,CAIL,iBAAkB,IAAA,CAIlB,aAAA,CAAe,EAIf,aAAA,CAAe,GAAA,CAIf,eAAgB,GAClB","file":"index.mjs","sourcesContent":["/**\n * Mathematical Constants\n *\n * Common mathematical values, number system bases, and calculation constants\n * used throughout the application for various computations.\n *\n * @module math/constants\n */\n\n/**\n * Number system base constants\n */\nexport const NUMBER_SYSTEM = {\n // Number bases\n /**\n * Base 2 - Binary number system\n */\n BINARY_BASE: 2,\n\n /**\n * Base 8 - Octal number system\n */\n OCTAL_BASE: 8,\n\n /**\n * Base 10 - Decimal number system\n */\n DECIMAL_BASE: 10,\n\n /**\n * Base 12 - Duodecimal number system\n */\n DUODECIMAL_BASE: 12,\n\n /**\n * Base 16 - Hexadecimal number system\n */\n HEX_BASE: 16,\n\n /**\n * Base 32 - Base32 encoding\n */\n BASE32: 32,\n\n /**\n * Base 36 - Alphanumeric number system (0-9, a-z)\n */\n BASE36: 36,\n\n /**\n * Base 58 - Bitcoin base58 encoding (excludes similar looking characters)\n */\n BASE58: 58,\n\n /**\n * Base 62 - Alphanumeric with uppercase (0-9, a-z, A-Z)\n */\n BASE62: 62,\n\n /**\n * Base 64 - Base64 encoding\n */\n BASE64: 64,\n\n // Formatting and padding\n /**\n * Default padding length for hexadecimal values (e.g., \"0F\" instead of \"F\")\n */\n HEX_PAD_LENGTH: 2,\n\n /**\n * Padding length for RGB hex colors (6 characters)\n */\n HEX_COLOR_LENGTH: 6,\n\n /**\n * Padding length for RGBA hex colors with alpha (8 characters)\n */\n HEX_COLOR_ALPHA_LENGTH: 8,\n\n /**\n * Standard byte size in bits\n */\n BITS_PER_BYTE: 8,\n\n /**\n * Standard nibble size in bits (half byte)\n */\n BITS_PER_NIBBLE: 4,\n\n /**\n * Number of bytes in a kilobyte (binary)\n */\n BYTES_PER_KB: 1024,\n\n /**\n * Number of bytes in a megabyte (binary)\n */\n BYTES_PER_MB: 1048576,\n\n /**\n * Number of bytes in a gigabyte (binary)\n */\n BYTES_PER_GB: 1073741824,\n\n // Precision and rounding\n /**\n * Default decimal places for currency\n */\n CURRENCY_DECIMAL_PLACES: 2,\n\n /**\n * Default decimal places for percentages\n */\n PERCENTAGE_DECIMAL_PLACES: 2,\n\n /**\n * Default decimal places for coordinates\n */\n COORDINATE_DECIMAL_PLACES: 6,\n\n /**\n * Maximum safe integer in JavaScript\n */\n MAX_SAFE_INTEGER: 9007199254740991,\n\n /**\n * Minimum safe integer in JavaScript\n */\n MIN_SAFE_INTEGER: -9007199254740991,\n\n /**\n * Maximum 32-bit signed integer\n */\n MAX_INT32: 2147483647,\n\n /**\n * Minimum 32-bit signed integer\n */\n MIN_INT32: -2147483648,\n\n /**\n * Maximum 16-bit unsigned integer\n */\n MAX_UINT16: 65535,\n\n /**\n * Maximum 8-bit unsigned integer\n */\n MAX_UINT8: 255,\n\n // Common angles in degrees\n /**\n * Full circle in degrees\n */\n DEGREES_FULL_CIRCLE: 360,\n\n /**\n * Half circle in degrees\n */\n DEGREES_HALF_CIRCLE: 180,\n\n /**\n * Quarter circle in degrees (right angle)\n */\n DEGREES_RIGHT_ANGLE: 90,\n\n /**\n * Degrees in a radian\n */\n DEGREES_PER_RADIAN: 57.29577951308232,\n\n /**\n * Radians in a degree\n */\n RADIANS_PER_DEGREE: 0.017453292519943295,\n\n // Mathematical constants\n /**\n * Pi (π)\n */\n PI: 3.141592653589793,\n\n /**\n * Two times Pi (2π) - full circle in radians\n */\n TWO_PI: 6.283185307179586,\n\n /**\n * Half Pi (π/2) - quarter circle in radians\n */\n HALF_PI: 1.5707963267948966,\n\n /**\n * Euler's number (e)\n */\n E: 2.718281828459045,\n\n /**\n * Golden ratio (φ)\n */\n GOLDEN_RATIO: 1.618033988749895,\n\n /**\n * Square root of 2\n */\n SQRT2: 1.4142135623730951,\n\n /**\n * Square root of 3\n */\n SQRT3: 1.7320508075688772,\n\n /**\n * Natural logarithm of 2\n */\n LN2: 0.6931471805599453,\n\n /**\n * Natural logarithm of 10\n */\n LN10: 2.302585092994046,\n\n /**\n * Base 2 logarithm of E\n */\n LOG2E: 1.4426950408889634,\n\n /**\n * Base 10 logarithm of E\n */\n LOG10E: 0.4342944819032518,\n} as const;\n\n/**\n * Mathematical and percentage constants\n */\nexport const MATH_CONSTANTS = {\n /**\n * Maximum percentage value\n */\n PERCENTAGE_MAX: 100,\n\n /**\n * Half value (50%)\n */\n HALF: 0.5,\n\n /**\n * One tenth (10%)\n */\n TENTH: 0.1,\n\n /**\n * One twentieth (5%)\n */\n TWENTIETH: 0.05,\n\n /**\n * 95th percentile\n */\n PERCENT_95: 0.95,\n\n /**\n * 99th percentile\n */\n PERCENT_99: 0.99,\n\n /**\n * Threshold for quadratic algorithm detection\n */\n QUADRATIC_THRESHOLD: 1.5,\n\n /**\n * Threshold for exponential algorithm detection\n */\n EXPONENTIAL_THRESHOLD: 3,\n\n /**\n * Multiplier for variance calculations\n */\n VARIANCE_MULTIPLIER: 4,\n\n /**\n * Offset for variance calculations\n */\n VARIANCE_OFFSET: 2,\n} as const;\n\n/**\n * Common numeric multipliers for calculations\n */\nexport const MULTIPLIERS = {\n /**\n * One and a half times (1.5x)\n */\n ONE_AND_HALF: 1.5,\n\n /**\n * Double (2x)\n */\n DOUBLE: 2,\n\n /**\n * Triple (3x)\n */\n TRIPLE: 3,\n\n /**\n * Quadruple (4x)\n */\n QUADRUPLE: 4,\n\n /**\n * Quintuple (5x)\n */\n QUINTUPLE: 5,\n\n /**\n * Ten times (10x)\n */\n TEN: 10,\n} as const;\n\n/**\n * Common numeric constants for general use\n */\nexport const NUMERIC_CONSTANTS = {\n /**\n * Milliseconds in one second\n */\n MILLISECONDS_PER_SECOND: 1000,\n\n /**\n * Seconds in one minute\n */\n SECONDS_PER_MINUTE: 60,\n\n /**\n * Minutes in one hour\n */\n MINUTES_PER_HOUR: 60,\n\n /**\n * Hours in one day\n */\n HOURS_PER_DAY: 24,\n\n /**\n * Negative one (-1)\n */\n NEGATIVE_ONE: -1,\n\n /**\n * Zero (0)\n */\n ZERO: 0,\n\n /**\n * One (1)\n */\n ONE: 1,\n\n /**\n * Two (2)\n */\n TWO: 2,\n\n /**\n * Three (3)\n */\n THREE: 3,\n\n /**\n * Five (5)\n */\n FIVE: 5,\n\n /**\n * Ten (10)\n */\n TEN: 10,\n /**\n * One hour in seconds (3600)\n */\n ONE_HOUR_SECONDS: 3600,\n /**\n * Minimum pool size (1)\n */\n MIN_POOL_SIZE: 1,\n /**\n * Maximum pool size (100)\n */\n MAX_POOL_SIZE: 100,\n /**\n * Minimum timeout in milliseconds (1000)\n */\n MIN_TIMEOUT_MS: 1000,\n} as const;\n\n/**\n * Type for number system values\n */\nexport type NumberSystemBase = (typeof NUMBER_SYSTEM)[keyof typeof NUMBER_SYSTEM];\n\n/**\n * Type for math constant values\n */\nexport type MathConstant = (typeof MATH_CONSTANTS)[keyof typeof MATH_CONSTANTS];\n\n/**\n * Type for multiplier values\n */\nexport type Multiplier = (typeof MULTIPLIERS)[keyof typeof MULTIPLIERS];\n\n/**\n * Type for numeric constant values\n */\nexport type NumericConstant = (typeof NUMERIC_CONSTANTS)[keyof typeof NUMERIC_CONSTANTS];\n"]}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
'use strict';var types=require('@plyaz/types');// @plyaz package - Built with tsup
|
|
2
|
-
var E={BYTES_PER_MB:1048576};var T=25,_=30,
|
|
2
|
+
var E={BYTES_PER_MB:1048576};var T=25,_=30,G=types.NOTIFICATION_CATEGORIES.TRANSACTIONAL,I={DEFAULT_MAX_ATTEMPTS:3,DEFAULT_INITIAL_DELAY_MS:1e3,MAX_DELAY_MS:3e4,BACKOFF_MULTIPLIER:2},S={DEFAULT_MAX_ATTACHMENTS:10,DEFAULT_MAX_SIZE_PER_ATTACHMENT:T*E.BYTES_PER_MB,DEFAULT_MAX_TOTAL_SIZE:T*E.BYTES_PER_MB,SENDGRID_MAX_SIZE:_*E.BYTES_PER_MB,SENDGRID_MAX_TOTAL_SIZE:_*E.BYTES_PER_MB,INFOBIP_MAX_SIZE:_*E.BYTES_PER_MB,INFOBIP_MAX_TOTAL_SIZE:_*E.BYTES_PER_MB,URL_FETCH_TIMEOUT_MS:3e4,URL_FETCH_MAX_RETRIES:3},N={DEFAULT_FAILURE_THRESHOLD:5,DEFAULT_TIMEOUT_MS:6e4,DEFAULT_SUCCESS_THRESHOLD:2},L={DEFAULT_MAX_SIZE:1e4,DEFAULT_CONCURRENCY:5,DEFAULT_PROCESSING_INTERVAL_MS:100},M={DEFAULT_REQUESTS_PER_SECOND:10,DEFAULT_BURST_ALLOWANCE:20,DEFAULT_WINDOW_MS:1e3},R={DEFAULT_LOCALE:"en",FALLBACK_LOCALE:"en",CACHE_TTL_MS:3e5,MAX_TEMPLATE_SIZE:E.BYTES_PER_MB},C={GSM7_SINGLE_MESSAGE_LIMIT:160,GSM7_MULTI_PART_SEGMENT_LIMIT:153,UCS2_SINGLE_MESSAGE_LIMIT:70,UCS2_MULTI_PART_SEGMENT_LIMIT:67,DEFAULT_MAX_SEGMENTS:10,WARNING_THRESHOLD_PERCENTAGE:90},O={DEFAULT_PRIORITY:"normal",MAX_SUBJECT_LENGTH:255,MAX_PUSH_TITLE_LENGTH:100,MAX_PUSH_BODY_LENGTH:500},o={DEFAULT_LEVEL:"info",MAX_LOG_SIZE:1e4},t={DEFAULT_INTERVAL_MS:3e4,DEFAULT_TIMEOUT_MS:5e3,MAX_ACCEPTABLE_LATENCY_MS:2e3},s={RETRY:I,ATTACHMENT:S,CIRCUIT_BREAKER:N,QUEUE:L,RATE_LIMIT:M,TEMPLATE:R,SMS:C,NOTIFICATION:O,LOGGING:o,HEALTH_CHECK:t};exports.ATTACHMENT_CONFIG=S;exports.CIRCUIT_BREAKER_CONFIG=N;exports.DEFAULT_NOTIFICATION_CATEGORY=G;exports.HEALTH_CHECK_CONFIG=t;exports.LOGGING_CONFIG=o;exports.NOTIFICATION_CONFIG=O;exports.NOTIFICATION_PACKAGE_CONFIG=s;exports.QUEUE_CONFIG=L;exports.RATE_LIMIT_CONFIG=M;exports.RETRY_CONFIG=I;exports.SMS_CONFIG=C;exports.TEMPLATE_CONFIG=R;//# sourceMappingURL=index.cjs.map
|
|
3
3
|
//# sourceMappingURL=index.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/math/constants.ts","../../src/notifications/constants.ts"],"names":["NUMBER_SYSTEM","SIZE_25_MB","SIZE_30_MB","DEFAULT_NOTIFICATION_CATEGORY","NOTIFICATION_CATEGORIES","RETRY_CONFIG","ATTACHMENT_CONFIG","CIRCUIT_BREAKER_CONFIG","QUEUE_CONFIG","RATE_LIMIT_CONFIG","TEMPLATE_CONFIG","SMS_CONFIG","NOTIFICATION_CONFIG","LOGGING_CONFIG","HEALTH_CHECK_CONFIG","NOTIFICATION_PACKAGE_CONFIG"],"mappings":";AAYO,IAAMA,CAAAA,CAAgB,CAsF3B,YAAA,CAAc,OAsIhB,CAAA,CCxNA,IAAMC,CAAAA,CAAa,EAAA,CACbC,CAAAA,CAAa,EAAA,CAMNC,CAAAA,CAAgCC,6BAAAA,CAAwB,aAAA,CAKxDC,CAAAA,CAAe,CAK1B,oBAAA,CAAsB,CAAA,CAMtB,wBAAA,CAA0B,GAAA,CAM1B,YAAA,CAAc,GAAA,CAMd,kBAAA,CAAoB,CACtB,CAAA,CAKaC,CAAAA,CAAoB,CAI/B,uBAAA,CAAyB,EAAA,CAMzB,+BAAA,CAAiCL,CAAAA,CAAaD,CAAAA,CAAc,YAAA,CAM5D,sBAAA,CAAwBC,CAAAA,CAAaD,CAAAA,CAAc,aAMnD,iBAAA,CAAmBE,CAAAA,CAAaF,CAAAA,CAAc,YAAA,CAM9C,uBAAA,CAAyBE,CAAAA,CAAaF,CAAAA,CAAc,YAAA,CAMpD,gBAAA,CAAkBE,CAAAA,CAAaF,CAAAA,CAAc,YAAA,CAM7C,sBAAA,CAAwBE,CAAAA,CAAaF,CAAAA,CAAc,YAAA,CAKnD,oBAAA,CAAsB,GAAA,CAKtB,qBAAA,CAAuB,CACzB,CAAA,CAKaO,CAAAA,CAAyB,CAKpC,yBAAA,CAA2B,CAAA,CAM3B,kBAAA,CAAoB,GAAA,CAMpB,yBAAA,CAA2B,CAC7B,CAAA,CAKaC,CAAAA,CAAe,CAI1B,gBAAA,CAAkB,GAAA,CAKlB,mBAAA,CAAqB,CAAA,CAKrB,8BAAA,CAAgC,GAClC,CAAA,CAKaC,CAAAA,CAAoB,CAI/B,2BAAA,CAA6B,EAAA,CAM7B,uBAAA,CAAyB,EAAA,CAKzB,iBAAA,CAAmB,GACrB,CAAA,CAKaC,CAAAA,CAAkB,CAI7B,cAAA,CAAgB,IAAA,CAKhB,eAAA,CAAiB,IAAA,CAMjB,YAAA,CAAc,GAAA,CAKd,iBAAA,CAAmBV,CAAAA,CAAc,YACnC,CAAA,CAMaW,CAAAA,CAAa,CAKxB,0BAA2B,GAAA,CAM3B,6BAAA,CAA+B,GAAA,CAM/B,yBAAA,CAA2B,EAAA,CAM3B,6BAAA,CAA+B,EAAA,CAM/B,oBAAA,CAAsB,EAAA,CAMtB,4BAAA,CAA8B,EAChC,CAAA,CAKaC,CAAAA,CAAsB,CAIjC,gBAAA,CAAkB,QAAA,CAKlB,kBAAA,CAAoB,GAAA,CAKpB,qBAAA,CAAuB,GAAA,CAKvB,oBAAA,CAAsB,GACxB,CAAA,CAKaC,CAAAA,CAAiB,CAI5B,aAAA,CAAe,MAAA,CAMf,YAAA,CAAc,GAChB,CAAA,CAKaC,CAAAA,CAAsB,CAIjC,mBAAA,CAAqB,GAAA,CAKrB,kBAAA,CAAoB,GAAA,CAMpB,yBAAA,CAA2B,GAC7B,CAAA,CAKaC,CAAAA,CAA8B,CACzC,KAAA,CAAOV,CAAAA,CACP,UAAA,CAAYC,CAAAA,CACZ,eAAA,CAAiBC,CAAAA,CACjB,KAAA,CAAOC,CAAAA,CACP,UAAA,CAAYC,CAAAA,CACZ,QAAA,CAAUC,CAAAA,CACV,GAAA,CAAKC,CAAAA,CACL,YAAA,CAAcC,CAAAA,CACd,OAAA,CAASC,CAAAA,CACT,YAAA,CAAcC,CAChB","file":"index.cjs","sourcesContent":["/**\n * Mathematical Constants\n *\n * Common mathematical values, number system bases, and calculation constants\n * used throughout the application for various computations.\n *\n * @module math/constants\n */\n\n/**\n * Number system base constants\n */\nexport const NUMBER_SYSTEM = {\n // Number bases\n /**\n * Base 2 - Binary number system\n */\n BINARY_BASE: 2,\n\n /**\n * Base 8 - Octal number system\n */\n OCTAL_BASE: 8,\n\n /**\n * Base 10 - Decimal number system\n */\n DECIMAL_BASE: 10,\n\n /**\n * Base 12 - Duodecimal number system\n */\n DUODECIMAL_BASE: 12,\n\n /**\n * Base 16 - Hexadecimal number system\n */\n HEX_BASE: 16,\n\n /**\n * Base 32 - Base32 encoding\n */\n BASE32: 32,\n\n /**\n * Base 36 - Alphanumeric number system (0-9, a-z)\n */\n BASE36: 36,\n\n /**\n * Base 58 - Bitcoin base58 encoding (excludes similar looking characters)\n */\n BASE58: 58,\n\n /**\n * Base 62 - Alphanumeric with uppercase (0-9, a-z, A-Z)\n */\n BASE62: 62,\n\n /**\n * Base 64 - Base64 encoding\n */\n BASE64: 64,\n\n // Formatting and padding\n /**\n * Default padding length for hexadecimal values (e.g., \"0F\" instead of \"F\")\n */\n HEX_PAD_LENGTH: 2,\n\n /**\n * Padding length for RGB hex colors (6 characters)\n */\n HEX_COLOR_LENGTH: 6,\n\n /**\n * Padding length for RGBA hex colors with alpha (8 characters)\n */\n HEX_COLOR_ALPHA_LENGTH: 8,\n\n /**\n * Standard byte size in bits\n */\n BITS_PER_BYTE: 8,\n\n /**\n * Standard nibble size in bits (half byte)\n */\n BITS_PER_NIBBLE: 4,\n\n /**\n * Number of bytes in a kilobyte (binary)\n */\n BYTES_PER_KB: 1024,\n\n /**\n * Number of bytes in a megabyte (binary)\n */\n BYTES_PER_MB: 1048576,\n\n /**\n * Number of bytes in a gigabyte (binary)\n */\n BYTES_PER_GB: 1073741824,\n\n // Precision and rounding\n /**\n * Default decimal places for currency\n */\n CURRENCY_DECIMAL_PLACES: 2,\n\n /**\n * Default decimal places for percentages\n */\n PERCENTAGE_DECIMAL_PLACES: 2,\n\n /**\n * Default decimal places for coordinates\n */\n COORDINATE_DECIMAL_PLACES: 6,\n\n /**\n * Maximum safe integer in JavaScript\n */\n MAX_SAFE_INTEGER: 9007199254740991,\n\n /**\n * Minimum safe integer in JavaScript\n */\n MIN_SAFE_INTEGER: -9007199254740991,\n\n /**\n * Maximum 32-bit signed integer\n */\n MAX_INT32: 2147483647,\n\n /**\n * Minimum 32-bit signed integer\n */\n MIN_INT32: -2147483648,\n\n /**\n * Maximum 16-bit unsigned integer\n */\n MAX_UINT16: 65535,\n\n /**\n * Maximum 8-bit unsigned integer\n */\n MAX_UINT8: 255,\n\n // Common angles in degrees\n /**\n * Full circle in degrees\n */\n DEGREES_FULL_CIRCLE: 360,\n\n /**\n * Half circle in degrees\n */\n DEGREES_HALF_CIRCLE: 180,\n\n /**\n * Quarter circle in degrees (right angle)\n */\n DEGREES_RIGHT_ANGLE: 90,\n\n /**\n * Degrees in a radian\n */\n DEGREES_PER_RADIAN: 57.29577951308232,\n\n /**\n * Radians in a degree\n */\n RADIANS_PER_DEGREE: 0.017453292519943295,\n\n // Mathematical constants\n /**\n * Pi (π)\n */\n PI: 3.141592653589793,\n\n /**\n * Two times Pi (2π) - full circle in radians\n */\n TWO_PI: 6.283185307179586,\n\n /**\n * Half Pi (π/2) - quarter circle in radians\n */\n HALF_PI: 1.5707963267948966,\n\n /**\n * Euler's number (e)\n */\n E: 2.718281828459045,\n\n /**\n * Golden ratio (φ)\n */\n GOLDEN_RATIO: 1.618033988749895,\n\n /**\n * Square root of 2\n */\n SQRT2: 1.4142135623730951,\n\n /**\n * Square root of 3\n */\n SQRT3: 1.7320508075688772,\n\n /**\n * Natural logarithm of 2\n */\n LN2: 0.6931471805599453,\n\n /**\n * Natural logarithm of 10\n */\n LN10: 2.302585092994046,\n\n /**\n * Base 2 logarithm of E\n */\n LOG2E: 1.4426950408889634,\n\n /**\n * Base 10 logarithm of E\n */\n LOG10E: 0.4342944819032518,\n} as const;\n\n/**\n * Mathematical and percentage constants\n */\nexport const MATH_CONSTANTS = {\n /**\n * Maximum percentage value\n */\n PERCENTAGE_MAX: 100,\n\n /**\n * Half value (50%)\n */\n HALF: 0.5,\n\n /**\n * One tenth (10%)\n */\n TENTH: 0.1,\n\n /**\n * One twentieth (5%)\n */\n TWENTIETH: 0.05,\n\n /**\n * 95th percentile\n */\n PERCENT_95: 0.95,\n\n /**\n * 99th percentile\n */\n PERCENT_99: 0.99,\n\n /**\n * Threshold for quadratic algorithm detection\n */\n QUADRATIC_THRESHOLD: 1.5,\n\n /**\n * Threshold for exponential algorithm detection\n */\n EXPONENTIAL_THRESHOLD: 3,\n\n /**\n * Multiplier for variance calculations\n */\n VARIANCE_MULTIPLIER: 4,\n\n /**\n * Offset for variance calculations\n */\n VARIANCE_OFFSET: 2,\n} as const;\n\n/**\n * Common numeric multipliers for calculations\n */\nexport const MULTIPLIERS = {\n /**\n * One and a half times (1.5x)\n */\n ONE_AND_HALF: 1.5,\n\n /**\n * Double (2x)\n */\n DOUBLE: 2,\n\n /**\n * Triple (3x)\n */\n TRIPLE: 3,\n\n /**\n * Quadruple (4x)\n */\n QUADRUPLE: 4,\n\n /**\n * Quintuple (5x)\n */\n QUINTUPLE: 5,\n\n /**\n * Ten times (10x)\n */\n TEN: 10,\n} as const;\n\n/**\n * Common numeric constants for general use\n */\nexport const NUMERIC_CONSTANTS = {\n /**\n * Milliseconds in one second\n */\n MILLISECONDS_PER_SECOND: 1000,\n\n /**\n * Seconds in one minute\n */\n SECONDS_PER_MINUTE: 60,\n\n /**\n * Minutes in one hour\n */\n MINUTES_PER_HOUR: 60,\n\n /**\n * Hours in one day\n */\n HOURS_PER_DAY: 24,\n\n /**\n * Negative one (-1)\n */\n NEGATIVE_ONE: -1,\n\n /**\n * Zero (0)\n */\n ZERO: 0,\n\n /**\n * One (1)\n */\n ONE: 1,\n\n /**\n * Two (2)\n */\n TWO: 2,\n\n /**\n * Three (3)\n */\n THREE: 3,\n\n /**\n * Five (5)\n */\n FIVE: 5,\n\n /**\n * Ten (10)\n */\n TEN: 10,\n} as const;\n\n/**\n * Type for number system values\n */\nexport type NumberSystemBase = (typeof NUMBER_SYSTEM)[keyof typeof NUMBER_SYSTEM];\n\n/**\n * Type for math constant values\n */\nexport type MathConstant = (typeof MATH_CONSTANTS)[keyof typeof MATH_CONSTANTS];\n\n/**\n * Type for multiplier values\n */\nexport type Multiplier = (typeof MULTIPLIERS)[keyof typeof MULTIPLIERS];\n\n/**\n * Type for numeric constant values\n */\nexport type NumericConstant = (typeof NUMERIC_CONSTANTS)[keyof typeof NUMERIC_CONSTANTS];\n","/**\n * Notification Configuration Constants\n *\n * Default configuration values for the notifications system.\n * These can be overridden at runtime through configuration objects.\n *\n * @module src/notifications/constants\n */\n\n// Import type-level constants from @plyaz/types\nimport { NOTIFICATION_CATEGORIES } from '@plyaz/types';\n\n// Import byte calculation constants from @plyaz/config/math\nimport { NUMBER_SYSTEM } from '../math/constants';\n\n// Common size values in MB\nconst SIZE_25_MB = 25;\nconst SIZE_30_MB = 30;\n\n/**\n * Default notification category\n * Safest default for compliance - transactional emails must always be sent\n */\nexport const DEFAULT_NOTIFICATION_CATEGORY = NOTIFICATION_CATEGORIES.TRANSACTIONAL;\n\n/**\n * Retry Configuration\n */\nexport const RETRY_CONFIG = {\n /**\n * Default maximum number of retry attempts\n * Used when no specific retry count is provided\n */\n DEFAULT_MAX_ATTEMPTS: 3,\n\n /**\n * Default initial delay between retries (milliseconds)\n * Used for exponential backoff calculation\n */\n DEFAULT_INITIAL_DELAY_MS: 1000,\n\n /**\n * Maximum delay between retries (milliseconds)\n * Prevents exponential backoff from growing too large\n */\n MAX_DELAY_MS: 30000,\n\n /**\n * Backoff multiplier for exponential backoff\n * Each retry delay = previous delay * multiplier\n */\n BACKOFF_MULTIPLIER: 2,\n} as const;\n\n/**\n * Attachment Configuration\n */\nexport const ATTACHMENT_CONFIG = {\n /**\n * Default maximum number of attachments per notification\n */\n DEFAULT_MAX_ATTACHMENTS: 10,\n\n /**\n * Default maximum size per attachment (bytes)\n * 25MB - Common limit across providers\n */\n DEFAULT_MAX_SIZE_PER_ATTACHMENT: SIZE_25_MB * NUMBER_SYSTEM.BYTES_PER_MB,\n\n /**\n * Default maximum total size of all attachments (bytes)\n * 25MB - Ensures we don't exceed provider limits\n */\n DEFAULT_MAX_TOTAL_SIZE: SIZE_25_MB * NUMBER_SYSTEM.BYTES_PER_MB,\n\n /**\n * Maximum attachment size for SendGrid (bytes)\n * 30MB per SendGrid documentation\n */\n SENDGRID_MAX_SIZE: SIZE_30_MB * NUMBER_SYSTEM.BYTES_PER_MB,\n\n /**\n * Maximum total attachment size for SendGrid (bytes)\n * 30MB per SendGrid documentation\n */\n SENDGRID_MAX_TOTAL_SIZE: SIZE_30_MB * NUMBER_SYSTEM.BYTES_PER_MB,\n\n /**\n * Maximum attachment size for Infobip (bytes)\n * 30MB - matching SendGrid for consistency\n */\n INFOBIP_MAX_SIZE: SIZE_30_MB * NUMBER_SYSTEM.BYTES_PER_MB,\n\n /**\n * Maximum total attachment size for Infobip (bytes)\n * 30MB - matching SendGrid for consistency\n */\n INFOBIP_MAX_TOTAL_SIZE: SIZE_30_MB * NUMBER_SYSTEM.BYTES_PER_MB,\n\n /**\n * Default timeout for URL attachment fetching (milliseconds)\n */\n URL_FETCH_TIMEOUT_MS: 30000,\n\n /**\n * Maximum number of retry attempts for failed URL fetches\n */\n URL_FETCH_MAX_RETRIES: 3,\n} as const;\n\n/**\n * Circuit Breaker Configuration\n */\nexport const CIRCUIT_BREAKER_CONFIG = {\n /**\n * Default failure threshold before opening circuit\n * Circuit opens after this many consecutive failures\n */\n DEFAULT_FAILURE_THRESHOLD: 5,\n\n /**\n * Default timeout before attempting half-open state (milliseconds)\n * How long to wait before testing if provider has recovered\n */\n DEFAULT_TIMEOUT_MS: 60000,\n\n /**\n * Default success threshold in half-open state\n * Number of successful requests needed to close circuit\n */\n DEFAULT_SUCCESS_THRESHOLD: 2,\n} as const;\n\n/**\n * Queue Configuration\n */\nexport const QUEUE_CONFIG = {\n /**\n * Default maximum queue size\n */\n DEFAULT_MAX_SIZE: 10000,\n\n /**\n * Default number of concurrent workers\n */\n DEFAULT_CONCURRENCY: 5,\n\n /**\n * Default queue processing interval (milliseconds)\n */\n DEFAULT_PROCESSING_INTERVAL_MS: 100,\n} as const;\n\n/**\n * Rate Limiting Configuration\n */\nexport const RATE_LIMIT_CONFIG = {\n /**\n * Default requests per second per provider\n */\n DEFAULT_REQUESTS_PER_SECOND: 10,\n\n /**\n * Default burst allowance\n * Number of requests that can be sent in a burst\n */\n DEFAULT_BURST_ALLOWANCE: 20,\n\n /**\n * Default window size for rate limiting (milliseconds)\n */\n DEFAULT_WINDOW_MS: 1000,\n} as const;\n\n/**\n * Template Configuration\n */\nexport const TEMPLATE_CONFIG = {\n /**\n * Default locale for templates\n */\n DEFAULT_LOCALE: 'en',\n\n /**\n * Fallback locale when requested locale not found\n */\n FALLBACK_LOCALE: 'en',\n\n /**\n * Template cache TTL (milliseconds)\n * How long to cache compiled templates\n */\n CACHE_TTL_MS: 300000, // 5 minutes\n\n /**\n * Maximum template size (bytes)\n */\n MAX_TEMPLATE_SIZE: NUMBER_SYSTEM.BYTES_PER_MB, // 1MB\n} as const;\n\n/**\n * SMS Character Limits and Encoding\n * Based on GSM-7 and UCS-2 encoding standards\n */\nexport const SMS_CONFIG = {\n /**\n * Single SMS message limit for GSM-7 encoding (standard characters)\n * Includes: A-Z, a-z, 0-9, and basic punctuation\n */\n GSM7_SINGLE_MESSAGE_LIMIT: 160,\n\n /**\n * Multi-part SMS message segment limit for GSM-7 encoding\n * Each segment in a concatenated message is limited to 153 characters (7 chars for UDH)\n */\n GSM7_MULTI_PART_SEGMENT_LIMIT: 153,\n\n /**\n * Single SMS message limit for UCS-2 encoding (unicode characters)\n * Used when message contains emoji, non-Latin characters, etc.\n */\n UCS2_SINGLE_MESSAGE_LIMIT: 70,\n\n /**\n * Multi-part SMS message segment limit for UCS-2 encoding\n * Each segment in a concatenated message is limited to 67 characters\n */\n UCS2_MULTI_PART_SEGMENT_LIMIT: 67,\n\n /**\n * Maximum number of SMS segments to allow\n * Prevents accidentally sending very expensive multi-part messages\n */\n DEFAULT_MAX_SEGMENTS: 10,\n\n /**\n * Warning threshold (percentage of limit)\n * Emit warning when message reaches this percentage of the limit\n */\n WARNING_THRESHOLD_PERCENTAGE: 90,\n} as const;\n\n/**\n * Notification Configuration\n */\nexport const NOTIFICATION_CONFIG = {\n /**\n * Default notification priority\n */\n DEFAULT_PRIORITY: 'normal' as const,\n\n /**\n * Maximum subject line length\n */\n MAX_SUBJECT_LENGTH: 255,\n\n /**\n * Maximum push notification title length\n */\n MAX_PUSH_TITLE_LENGTH: 100,\n\n /**\n * Maximum push notification body length\n */\n MAX_PUSH_BODY_LENGTH: 500,\n} as const;\n\n/**\n * Logging Configuration\n */\nexport const LOGGING_CONFIG = {\n /**\n * Default log level\n */\n DEFAULT_LEVEL: 'info' as const,\n\n /**\n * Maximum log message size (bytes)\n * Prevents excessive log sizes\n */\n MAX_LOG_SIZE: 10000,\n} as const;\n\n/**\n * Health Check Configuration\n */\nexport const HEALTH_CHECK_CONFIG = {\n /**\n * Default health check interval (milliseconds)\n */\n DEFAULT_INTERVAL_MS: 30000,\n\n /**\n * Default health check timeout (milliseconds)\n */\n DEFAULT_TIMEOUT_MS: 5000,\n\n /**\n * Maximum acceptable latency (milliseconds)\n * Health check fails if latency exceeds this\n */\n MAX_ACCEPTABLE_LATENCY_MS: 2000,\n} as const;\n\n/**\n * Export all configuration as a single object for convenience\n */\nexport const NOTIFICATION_PACKAGE_CONFIG = {\n RETRY: RETRY_CONFIG,\n ATTACHMENT: ATTACHMENT_CONFIG,\n CIRCUIT_BREAKER: CIRCUIT_BREAKER_CONFIG,\n QUEUE: QUEUE_CONFIG,\n RATE_LIMIT: RATE_LIMIT_CONFIG,\n TEMPLATE: TEMPLATE_CONFIG,\n SMS: SMS_CONFIG,\n NOTIFICATION: NOTIFICATION_CONFIG,\n LOGGING: LOGGING_CONFIG,\n HEALTH_CHECK: HEALTH_CHECK_CONFIG,\n} as const;\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/math/constants.ts","../../src/notifications/constants.ts"],"names":["NUMBER_SYSTEM","SIZE_25_MB","SIZE_30_MB","DEFAULT_NOTIFICATION_CATEGORY","NOTIFICATION_CATEGORIES","RETRY_CONFIG","ATTACHMENT_CONFIG","CIRCUIT_BREAKER_CONFIG","QUEUE_CONFIG","RATE_LIMIT_CONFIG","TEMPLATE_CONFIG","SMS_CONFIG","NOTIFICATION_CONFIG","LOGGING_CONFIG","HEALTH_CHECK_CONFIG","NOTIFICATION_PACKAGE_CONFIG"],"mappings":";AAYO,IAAMA,CAAAA,CAAgB,CAsF3B,YAAA,CAAc,OAsIhB,CAAA,CCxNA,IAAMC,CAAAA,CAAa,EAAA,CACbC,CAAAA,CAAa,EAAA,CAMNC,CAAAA,CAAgCC,6BAAAA,CAAwB,aAAA,CAKxDC,CAAAA,CAAe,CAK1B,oBAAA,CAAsB,CAAA,CAMtB,wBAAA,CAA0B,GAAA,CAM1B,YAAA,CAAc,GAAA,CAMd,kBAAA,CAAoB,CACtB,CAAA,CAKaC,CAAAA,CAAoB,CAI/B,uBAAA,CAAyB,EAAA,CAMzB,+BAAA,CAAiCL,CAAAA,CAAaD,CAAAA,CAAc,YAAA,CAM5D,sBAAA,CAAwBC,CAAAA,CAAaD,CAAAA,CAAc,aAMnD,iBAAA,CAAmBE,CAAAA,CAAaF,CAAAA,CAAc,YAAA,CAM9C,uBAAA,CAAyBE,CAAAA,CAAaF,CAAAA,CAAc,YAAA,CAMpD,gBAAA,CAAkBE,CAAAA,CAAaF,CAAAA,CAAc,YAAA,CAM7C,sBAAA,CAAwBE,CAAAA,CAAaF,CAAAA,CAAc,YAAA,CAKnD,oBAAA,CAAsB,GAAA,CAKtB,qBAAA,CAAuB,CACzB,CAAA,CAKaO,CAAAA,CAAyB,CAKpC,yBAAA,CAA2B,CAAA,CAM3B,kBAAA,CAAoB,GAAA,CAMpB,yBAAA,CAA2B,CAC7B,CAAA,CAKaC,CAAAA,CAAe,CAI1B,gBAAA,CAAkB,GAAA,CAKlB,mBAAA,CAAqB,CAAA,CAKrB,8BAAA,CAAgC,GAClC,CAAA,CAKaC,CAAAA,CAAoB,CAI/B,2BAAA,CAA6B,EAAA,CAM7B,uBAAA,CAAyB,EAAA,CAKzB,iBAAA,CAAmB,GACrB,CAAA,CAKaC,CAAAA,CAAkB,CAI7B,cAAA,CAAgB,IAAA,CAKhB,eAAA,CAAiB,IAAA,CAMjB,YAAA,CAAc,GAAA,CAKd,iBAAA,CAAmBV,CAAAA,CAAc,YACnC,CAAA,CAMaW,CAAAA,CAAa,CAKxB,0BAA2B,GAAA,CAM3B,6BAAA,CAA+B,GAAA,CAM/B,yBAAA,CAA2B,EAAA,CAM3B,6BAAA,CAA+B,EAAA,CAM/B,oBAAA,CAAsB,EAAA,CAMtB,4BAAA,CAA8B,EAChC,CAAA,CAKaC,CAAAA,CAAsB,CAIjC,gBAAA,CAAkB,QAAA,CAKlB,kBAAA,CAAoB,GAAA,CAKpB,qBAAA,CAAuB,GAAA,CAKvB,oBAAA,CAAsB,GACxB,CAAA,CAKaC,CAAAA,CAAiB,CAI5B,aAAA,CAAe,MAAA,CAMf,YAAA,CAAc,GAChB,CAAA,CAKaC,CAAAA,CAAsB,CAIjC,mBAAA,CAAqB,GAAA,CAKrB,kBAAA,CAAoB,GAAA,CAMpB,yBAAA,CAA2B,GAC7B,CAAA,CAKaC,CAAAA,CAA8B,CACzC,KAAA,CAAOV,CAAAA,CACP,UAAA,CAAYC,CAAAA,CACZ,eAAA,CAAiBC,CAAAA,CACjB,KAAA,CAAOC,CAAAA,CACP,UAAA,CAAYC,CAAAA,CACZ,QAAA,CAAUC,CAAAA,CACV,GAAA,CAAKC,CAAAA,CACL,YAAA,CAAcC,CAAAA,CACd,OAAA,CAASC,CAAAA,CACT,YAAA,CAAcC,CAChB","file":"index.cjs","sourcesContent":["/**\n * Mathematical Constants\n *\n * Common mathematical values, number system bases, and calculation constants\n * used throughout the application for various computations.\n *\n * @module math/constants\n */\n\n/**\n * Number system base constants\n */\nexport const NUMBER_SYSTEM = {\n // Number bases\n /**\n * Base 2 - Binary number system\n */\n BINARY_BASE: 2,\n\n /**\n * Base 8 - Octal number system\n */\n OCTAL_BASE: 8,\n\n /**\n * Base 10 - Decimal number system\n */\n DECIMAL_BASE: 10,\n\n /**\n * Base 12 - Duodecimal number system\n */\n DUODECIMAL_BASE: 12,\n\n /**\n * Base 16 - Hexadecimal number system\n */\n HEX_BASE: 16,\n\n /**\n * Base 32 - Base32 encoding\n */\n BASE32: 32,\n\n /**\n * Base 36 - Alphanumeric number system (0-9, a-z)\n */\n BASE36: 36,\n\n /**\n * Base 58 - Bitcoin base58 encoding (excludes similar looking characters)\n */\n BASE58: 58,\n\n /**\n * Base 62 - Alphanumeric with uppercase (0-9, a-z, A-Z)\n */\n BASE62: 62,\n\n /**\n * Base 64 - Base64 encoding\n */\n BASE64: 64,\n\n // Formatting and padding\n /**\n * Default padding length for hexadecimal values (e.g., \"0F\" instead of \"F\")\n */\n HEX_PAD_LENGTH: 2,\n\n /**\n * Padding length for RGB hex colors (6 characters)\n */\n HEX_COLOR_LENGTH: 6,\n\n /**\n * Padding length for RGBA hex colors with alpha (8 characters)\n */\n HEX_COLOR_ALPHA_LENGTH: 8,\n\n /**\n * Standard byte size in bits\n */\n BITS_PER_BYTE: 8,\n\n /**\n * Standard nibble size in bits (half byte)\n */\n BITS_PER_NIBBLE: 4,\n\n /**\n * Number of bytes in a kilobyte (binary)\n */\n BYTES_PER_KB: 1024,\n\n /**\n * Number of bytes in a megabyte (binary)\n */\n BYTES_PER_MB: 1048576,\n\n /**\n * Number of bytes in a gigabyte (binary)\n */\n BYTES_PER_GB: 1073741824,\n\n // Precision and rounding\n /**\n * Default decimal places for currency\n */\n CURRENCY_DECIMAL_PLACES: 2,\n\n /**\n * Default decimal places for percentages\n */\n PERCENTAGE_DECIMAL_PLACES: 2,\n\n /**\n * Default decimal places for coordinates\n */\n COORDINATE_DECIMAL_PLACES: 6,\n\n /**\n * Maximum safe integer in JavaScript\n */\n MAX_SAFE_INTEGER: 9007199254740991,\n\n /**\n * Minimum safe integer in JavaScript\n */\n MIN_SAFE_INTEGER: -9007199254740991,\n\n /**\n * Maximum 32-bit signed integer\n */\n MAX_INT32: 2147483647,\n\n /**\n * Minimum 32-bit signed integer\n */\n MIN_INT32: -2147483648,\n\n /**\n * Maximum 16-bit unsigned integer\n */\n MAX_UINT16: 65535,\n\n /**\n * Maximum 8-bit unsigned integer\n */\n MAX_UINT8: 255,\n\n // Common angles in degrees\n /**\n * Full circle in degrees\n */\n DEGREES_FULL_CIRCLE: 360,\n\n /**\n * Half circle in degrees\n */\n DEGREES_HALF_CIRCLE: 180,\n\n /**\n * Quarter circle in degrees (right angle)\n */\n DEGREES_RIGHT_ANGLE: 90,\n\n /**\n * Degrees in a radian\n */\n DEGREES_PER_RADIAN: 57.29577951308232,\n\n /**\n * Radians in a degree\n */\n RADIANS_PER_DEGREE: 0.017453292519943295,\n\n // Mathematical constants\n /**\n * Pi (π)\n */\n PI: 3.141592653589793,\n\n /**\n * Two times Pi (2π) - full circle in radians\n */\n TWO_PI: 6.283185307179586,\n\n /**\n * Half Pi (π/2) - quarter circle in radians\n */\n HALF_PI: 1.5707963267948966,\n\n /**\n * Euler's number (e)\n */\n E: 2.718281828459045,\n\n /**\n * Golden ratio (φ)\n */\n GOLDEN_RATIO: 1.618033988749895,\n\n /**\n * Square root of 2\n */\n SQRT2: 1.4142135623730951,\n\n /**\n * Square root of 3\n */\n SQRT3: 1.7320508075688772,\n\n /**\n * Natural logarithm of 2\n */\n LN2: 0.6931471805599453,\n\n /**\n * Natural logarithm of 10\n */\n LN10: 2.302585092994046,\n\n /**\n * Base 2 logarithm of E\n */\n LOG2E: 1.4426950408889634,\n\n /**\n * Base 10 logarithm of E\n */\n LOG10E: 0.4342944819032518,\n} as const;\n\n/**\n * Mathematical and percentage constants\n */\nexport const MATH_CONSTANTS = {\n /**\n * Maximum percentage value\n */\n PERCENTAGE_MAX: 100,\n\n /**\n * Half value (50%)\n */\n HALF: 0.5,\n\n /**\n * One tenth (10%)\n */\n TENTH: 0.1,\n\n /**\n * One twentieth (5%)\n */\n TWENTIETH: 0.05,\n\n /**\n * 95th percentile\n */\n PERCENT_95: 0.95,\n\n /**\n * 99th percentile\n */\n PERCENT_99: 0.99,\n\n /**\n * Threshold for quadratic algorithm detection\n */\n QUADRATIC_THRESHOLD: 1.5,\n\n /**\n * Threshold for exponential algorithm detection\n */\n EXPONENTIAL_THRESHOLD: 3,\n\n /**\n * Multiplier for variance calculations\n */\n VARIANCE_MULTIPLIER: 4,\n\n /**\n * Offset for variance calculations\n */\n VARIANCE_OFFSET: 2,\n} as const;\n\n/**\n * Common numeric multipliers for calculations\n */\nexport const MULTIPLIERS = {\n /**\n * One and a half times (1.5x)\n */\n ONE_AND_HALF: 1.5,\n\n /**\n * Double (2x)\n */\n DOUBLE: 2,\n\n /**\n * Triple (3x)\n */\n TRIPLE: 3,\n\n /**\n * Quadruple (4x)\n */\n QUADRUPLE: 4,\n\n /**\n * Quintuple (5x)\n */\n QUINTUPLE: 5,\n\n /**\n * Ten times (10x)\n */\n TEN: 10,\n} as const;\n\n/**\n * Common numeric constants for general use\n */\nexport const NUMERIC_CONSTANTS = {\n /**\n * Milliseconds in one second\n */\n MILLISECONDS_PER_SECOND: 1000,\n\n /**\n * Seconds in one minute\n */\n SECONDS_PER_MINUTE: 60,\n\n /**\n * Minutes in one hour\n */\n MINUTES_PER_HOUR: 60,\n\n /**\n * Hours in one day\n */\n HOURS_PER_DAY: 24,\n\n /**\n * Negative one (-1)\n */\n NEGATIVE_ONE: -1,\n\n /**\n * Zero (0)\n */\n ZERO: 0,\n\n /**\n * One (1)\n */\n ONE: 1,\n\n /**\n * Two (2)\n */\n TWO: 2,\n\n /**\n * Three (3)\n */\n THREE: 3,\n\n /**\n * Five (5)\n */\n FIVE: 5,\n\n /**\n * Ten (10)\n */\n TEN: 10,\n /**\n * One hour in seconds (3600)\n */\n ONE_HOUR_SECONDS: 3600,\n /**\n * Minimum pool size (1)\n */\n MIN_POOL_SIZE: 1,\n /**\n * Maximum pool size (100)\n */\n MAX_POOL_SIZE: 100,\n /**\n * Minimum timeout in milliseconds (1000)\n */\n MIN_TIMEOUT_MS: 1000,\n} as const;\n\n/**\n * Type for number system values\n */\nexport type NumberSystemBase = (typeof NUMBER_SYSTEM)[keyof typeof NUMBER_SYSTEM];\n\n/**\n * Type for math constant values\n */\nexport type MathConstant = (typeof MATH_CONSTANTS)[keyof typeof MATH_CONSTANTS];\n\n/**\n * Type for multiplier values\n */\nexport type Multiplier = (typeof MULTIPLIERS)[keyof typeof MULTIPLIERS];\n\n/**\n * Type for numeric constant values\n */\nexport type NumericConstant = (typeof NUMERIC_CONSTANTS)[keyof typeof NUMERIC_CONSTANTS];\n","/**\n * Notification Configuration Constants\n *\n * Default configuration values for the notifications system.\n * These can be overridden at runtime through configuration objects.\n *\n * @module src/notifications/constants\n */\n\n// Import type-level constants from @plyaz/types\nimport { NOTIFICATION_CATEGORIES } from '@plyaz/types';\n\n// Import byte calculation constants from @plyaz/config/math\nimport { NUMBER_SYSTEM } from '../math/constants';\n\n// Common size values in MB\nconst SIZE_25_MB = 25;\nconst SIZE_30_MB = 30;\n\n/**\n * Default notification category\n * Safest default for compliance - transactional emails must always be sent\n */\nexport const DEFAULT_NOTIFICATION_CATEGORY = NOTIFICATION_CATEGORIES.TRANSACTIONAL;\n\n/**\n * Retry Configuration\n */\nexport const RETRY_CONFIG = {\n /**\n * Default maximum number of retry attempts\n * Used when no specific retry count is provided\n */\n DEFAULT_MAX_ATTEMPTS: 3,\n\n /**\n * Default initial delay between retries (milliseconds)\n * Used for exponential backoff calculation\n */\n DEFAULT_INITIAL_DELAY_MS: 1000,\n\n /**\n * Maximum delay between retries (milliseconds)\n * Prevents exponential backoff from growing too large\n */\n MAX_DELAY_MS: 30000,\n\n /**\n * Backoff multiplier for exponential backoff\n * Each retry delay = previous delay * multiplier\n */\n BACKOFF_MULTIPLIER: 2,\n} as const;\n\n/**\n * Attachment Configuration\n */\nexport const ATTACHMENT_CONFIG = {\n /**\n * Default maximum number of attachments per notification\n */\n DEFAULT_MAX_ATTACHMENTS: 10,\n\n /**\n * Default maximum size per attachment (bytes)\n * 25MB - Common limit across providers\n */\n DEFAULT_MAX_SIZE_PER_ATTACHMENT: SIZE_25_MB * NUMBER_SYSTEM.BYTES_PER_MB,\n\n /**\n * Default maximum total size of all attachments (bytes)\n * 25MB - Ensures we don't exceed provider limits\n */\n DEFAULT_MAX_TOTAL_SIZE: SIZE_25_MB * NUMBER_SYSTEM.BYTES_PER_MB,\n\n /**\n * Maximum attachment size for SendGrid (bytes)\n * 30MB per SendGrid documentation\n */\n SENDGRID_MAX_SIZE: SIZE_30_MB * NUMBER_SYSTEM.BYTES_PER_MB,\n\n /**\n * Maximum total attachment size for SendGrid (bytes)\n * 30MB per SendGrid documentation\n */\n SENDGRID_MAX_TOTAL_SIZE: SIZE_30_MB * NUMBER_SYSTEM.BYTES_PER_MB,\n\n /**\n * Maximum attachment size for Infobip (bytes)\n * 30MB - matching SendGrid for consistency\n */\n INFOBIP_MAX_SIZE: SIZE_30_MB * NUMBER_SYSTEM.BYTES_PER_MB,\n\n /**\n * Maximum total attachment size for Infobip (bytes)\n * 30MB - matching SendGrid for consistency\n */\n INFOBIP_MAX_TOTAL_SIZE: SIZE_30_MB * NUMBER_SYSTEM.BYTES_PER_MB,\n\n /**\n * Default timeout for URL attachment fetching (milliseconds)\n */\n URL_FETCH_TIMEOUT_MS: 30000,\n\n /**\n * Maximum number of retry attempts for failed URL fetches\n */\n URL_FETCH_MAX_RETRIES: 3,\n} as const;\n\n/**\n * Circuit Breaker Configuration\n */\nexport const CIRCUIT_BREAKER_CONFIG = {\n /**\n * Default failure threshold before opening circuit\n * Circuit opens after this many consecutive failures\n */\n DEFAULT_FAILURE_THRESHOLD: 5,\n\n /**\n * Default timeout before attempting half-open state (milliseconds)\n * How long to wait before testing if provider has recovered\n */\n DEFAULT_TIMEOUT_MS: 60000,\n\n /**\n * Default success threshold in half-open state\n * Number of successful requests needed to close circuit\n */\n DEFAULT_SUCCESS_THRESHOLD: 2,\n} as const;\n\n/**\n * Queue Configuration\n */\nexport const QUEUE_CONFIG = {\n /**\n * Default maximum queue size\n */\n DEFAULT_MAX_SIZE: 10000,\n\n /**\n * Default number of concurrent workers\n */\n DEFAULT_CONCURRENCY: 5,\n\n /**\n * Default queue processing interval (milliseconds)\n */\n DEFAULT_PROCESSING_INTERVAL_MS: 100,\n} as const;\n\n/**\n * Rate Limiting Configuration\n */\nexport const RATE_LIMIT_CONFIG = {\n /**\n * Default requests per second per provider\n */\n DEFAULT_REQUESTS_PER_SECOND: 10,\n\n /**\n * Default burst allowance\n * Number of requests that can be sent in a burst\n */\n DEFAULT_BURST_ALLOWANCE: 20,\n\n /**\n * Default window size for rate limiting (milliseconds)\n */\n DEFAULT_WINDOW_MS: 1000,\n} as const;\n\n/**\n * Template Configuration\n */\nexport const TEMPLATE_CONFIG = {\n /**\n * Default locale for templates\n */\n DEFAULT_LOCALE: 'en',\n\n /**\n * Fallback locale when requested locale not found\n */\n FALLBACK_LOCALE: 'en',\n\n /**\n * Template cache TTL (milliseconds)\n * How long to cache compiled templates\n */\n CACHE_TTL_MS: 300000, // 5 minutes\n\n /**\n * Maximum template size (bytes)\n */\n MAX_TEMPLATE_SIZE: NUMBER_SYSTEM.BYTES_PER_MB, // 1MB\n} as const;\n\n/**\n * SMS Character Limits and Encoding\n * Based on GSM-7 and UCS-2 encoding standards\n */\nexport const SMS_CONFIG = {\n /**\n * Single SMS message limit for GSM-7 encoding (standard characters)\n * Includes: A-Z, a-z, 0-9, and basic punctuation\n */\n GSM7_SINGLE_MESSAGE_LIMIT: 160,\n\n /**\n * Multi-part SMS message segment limit for GSM-7 encoding\n * Each segment in a concatenated message is limited to 153 characters (7 chars for UDH)\n */\n GSM7_MULTI_PART_SEGMENT_LIMIT: 153,\n\n /**\n * Single SMS message limit for UCS-2 encoding (unicode characters)\n * Used when message contains emoji, non-Latin characters, etc.\n */\n UCS2_SINGLE_MESSAGE_LIMIT: 70,\n\n /**\n * Multi-part SMS message segment limit for UCS-2 encoding\n * Each segment in a concatenated message is limited to 67 characters\n */\n UCS2_MULTI_PART_SEGMENT_LIMIT: 67,\n\n /**\n * Maximum number of SMS segments to allow\n * Prevents accidentally sending very expensive multi-part messages\n */\n DEFAULT_MAX_SEGMENTS: 10,\n\n /**\n * Warning threshold (percentage of limit)\n * Emit warning when message reaches this percentage of the limit\n */\n WARNING_THRESHOLD_PERCENTAGE: 90,\n} as const;\n\n/**\n * Notification Configuration\n */\nexport const NOTIFICATION_CONFIG = {\n /**\n * Default notification priority\n */\n DEFAULT_PRIORITY: 'normal' as const,\n\n /**\n * Maximum subject line length\n */\n MAX_SUBJECT_LENGTH: 255,\n\n /**\n * Maximum push notification title length\n */\n MAX_PUSH_TITLE_LENGTH: 100,\n\n /**\n * Maximum push notification body length\n */\n MAX_PUSH_BODY_LENGTH: 500,\n} as const;\n\n/**\n * Logging Configuration\n */\nexport const LOGGING_CONFIG = {\n /**\n * Default log level\n */\n DEFAULT_LEVEL: 'info' as const,\n\n /**\n * Maximum log message size (bytes)\n * Prevents excessive log sizes\n */\n MAX_LOG_SIZE: 10000,\n} as const;\n\n/**\n * Health Check Configuration\n */\nexport const HEALTH_CHECK_CONFIG = {\n /**\n * Default health check interval (milliseconds)\n */\n DEFAULT_INTERVAL_MS: 30000,\n\n /**\n * Default health check timeout (milliseconds)\n */\n DEFAULT_TIMEOUT_MS: 5000,\n\n /**\n * Maximum acceptable latency (milliseconds)\n * Health check fails if latency exceeds this\n */\n MAX_ACCEPTABLE_LATENCY_MS: 2000,\n} as const;\n\n/**\n * Export all configuration as a single object for convenience\n */\nexport const NOTIFICATION_PACKAGE_CONFIG = {\n RETRY: RETRY_CONFIG,\n ATTACHMENT: ATTACHMENT_CONFIG,\n CIRCUIT_BREAKER: CIRCUIT_BREAKER_CONFIG,\n QUEUE: QUEUE_CONFIG,\n RATE_LIMIT: RATE_LIMIT_CONFIG,\n TEMPLATE: TEMPLATE_CONFIG,\n SMS: SMS_CONFIG,\n NOTIFICATION: NOTIFICATION_CONFIG,\n LOGGING: LOGGING_CONFIG,\n HEALTH_CHECK: HEALTH_CHECK_CONFIG,\n} as const;\n"]}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import {NOTIFICATION_CATEGORIES}from'@plyaz/types';// @plyaz package - Built with tsup
|
|
2
|
-
var E={BYTES_PER_MB:1048576};var T=25,_=30,
|
|
2
|
+
var E={BYTES_PER_MB:1048576};var T=25,_=30,G=NOTIFICATION_CATEGORIES.TRANSACTIONAL,I={DEFAULT_MAX_ATTEMPTS:3,DEFAULT_INITIAL_DELAY_MS:1e3,MAX_DELAY_MS:3e4,BACKOFF_MULTIPLIER:2},S={DEFAULT_MAX_ATTACHMENTS:10,DEFAULT_MAX_SIZE_PER_ATTACHMENT:T*E.BYTES_PER_MB,DEFAULT_MAX_TOTAL_SIZE:T*E.BYTES_PER_MB,SENDGRID_MAX_SIZE:_*E.BYTES_PER_MB,SENDGRID_MAX_TOTAL_SIZE:_*E.BYTES_PER_MB,INFOBIP_MAX_SIZE:_*E.BYTES_PER_MB,INFOBIP_MAX_TOTAL_SIZE:_*E.BYTES_PER_MB,URL_FETCH_TIMEOUT_MS:3e4,URL_FETCH_MAX_RETRIES:3},N={DEFAULT_FAILURE_THRESHOLD:5,DEFAULT_TIMEOUT_MS:6e4,DEFAULT_SUCCESS_THRESHOLD:2},L={DEFAULT_MAX_SIZE:1e4,DEFAULT_CONCURRENCY:5,DEFAULT_PROCESSING_INTERVAL_MS:100},M={DEFAULT_REQUESTS_PER_SECOND:10,DEFAULT_BURST_ALLOWANCE:20,DEFAULT_WINDOW_MS:1e3},R={DEFAULT_LOCALE:"en",FALLBACK_LOCALE:"en",CACHE_TTL_MS:3e5,MAX_TEMPLATE_SIZE:E.BYTES_PER_MB},C={GSM7_SINGLE_MESSAGE_LIMIT:160,GSM7_MULTI_PART_SEGMENT_LIMIT:153,UCS2_SINGLE_MESSAGE_LIMIT:70,UCS2_MULTI_PART_SEGMENT_LIMIT:67,DEFAULT_MAX_SEGMENTS:10,WARNING_THRESHOLD_PERCENTAGE:90},O={DEFAULT_PRIORITY:"normal",MAX_SUBJECT_LENGTH:255,MAX_PUSH_TITLE_LENGTH:100,MAX_PUSH_BODY_LENGTH:500},o={DEFAULT_LEVEL:"info",MAX_LOG_SIZE:1e4},t={DEFAULT_INTERVAL_MS:3e4,DEFAULT_TIMEOUT_MS:5e3,MAX_ACCEPTABLE_LATENCY_MS:2e3},s={RETRY:I,ATTACHMENT:S,CIRCUIT_BREAKER:N,QUEUE:L,RATE_LIMIT:M,TEMPLATE:R,SMS:C,NOTIFICATION:O,LOGGING:o,HEALTH_CHECK:t};export{S as ATTACHMENT_CONFIG,N as CIRCUIT_BREAKER_CONFIG,G as DEFAULT_NOTIFICATION_CATEGORY,t as HEALTH_CHECK_CONFIG,o as LOGGING_CONFIG,O as NOTIFICATION_CONFIG,s as NOTIFICATION_PACKAGE_CONFIG,L as QUEUE_CONFIG,M as RATE_LIMIT_CONFIG,I as RETRY_CONFIG,C as SMS_CONFIG,R as TEMPLATE_CONFIG};//# sourceMappingURL=index.mjs.map
|
|
3
3
|
//# sourceMappingURL=index.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/math/constants.ts","../../src/notifications/constants.ts"],"names":["NUMBER_SYSTEM","SIZE_25_MB","SIZE_30_MB","DEFAULT_NOTIFICATION_CATEGORY","NOTIFICATION_CATEGORIES","RETRY_CONFIG","ATTACHMENT_CONFIG","CIRCUIT_BREAKER_CONFIG","QUEUE_CONFIG","RATE_LIMIT_CONFIG","TEMPLATE_CONFIG","SMS_CONFIG","NOTIFICATION_CONFIG","LOGGING_CONFIG","HEALTH_CHECK_CONFIG","NOTIFICATION_PACKAGE_CONFIG"],"mappings":";AAYO,IAAMA,CAAAA,CAAgB,CAsF3B,YAAA,CAAc,OAsIhB,CAAA,CCxNA,IAAMC,CAAAA,CAAa,EAAA,CACbC,CAAAA,CAAa,EAAA,CAMNC,CAAAA,CAAgCC,uBAAAA,CAAwB,aAAA,CAKxDC,CAAAA,CAAe,CAK1B,oBAAA,CAAsB,CAAA,CAMtB,wBAAA,CAA0B,GAAA,CAM1B,YAAA,CAAc,GAAA,CAMd,kBAAA,CAAoB,CACtB,CAAA,CAKaC,CAAAA,CAAoB,CAI/B,uBAAA,CAAyB,EAAA,CAMzB,+BAAA,CAAiCL,CAAAA,CAAaD,CAAAA,CAAc,YAAA,CAM5D,sBAAA,CAAwBC,CAAAA,CAAaD,CAAAA,CAAc,aAMnD,iBAAA,CAAmBE,CAAAA,CAAaF,CAAAA,CAAc,YAAA,CAM9C,uBAAA,CAAyBE,CAAAA,CAAaF,CAAAA,CAAc,YAAA,CAMpD,gBAAA,CAAkBE,CAAAA,CAAaF,CAAAA,CAAc,YAAA,CAM7C,sBAAA,CAAwBE,CAAAA,CAAaF,CAAAA,CAAc,YAAA,CAKnD,oBAAA,CAAsB,GAAA,CAKtB,qBAAA,CAAuB,CACzB,CAAA,CAKaO,CAAAA,CAAyB,CAKpC,yBAAA,CAA2B,CAAA,CAM3B,kBAAA,CAAoB,GAAA,CAMpB,yBAAA,CAA2B,CAC7B,CAAA,CAKaC,CAAAA,CAAe,CAI1B,gBAAA,CAAkB,GAAA,CAKlB,mBAAA,CAAqB,CAAA,CAKrB,8BAAA,CAAgC,GAClC,CAAA,CAKaC,CAAAA,CAAoB,CAI/B,2BAAA,CAA6B,EAAA,CAM7B,uBAAA,CAAyB,EAAA,CAKzB,iBAAA,CAAmB,GACrB,CAAA,CAKaC,CAAAA,CAAkB,CAI7B,cAAA,CAAgB,IAAA,CAKhB,eAAA,CAAiB,IAAA,CAMjB,YAAA,CAAc,GAAA,CAKd,iBAAA,CAAmBV,CAAAA,CAAc,YACnC,CAAA,CAMaW,CAAAA,CAAa,CAKxB,0BAA2B,GAAA,CAM3B,6BAAA,CAA+B,GAAA,CAM/B,yBAAA,CAA2B,EAAA,CAM3B,6BAAA,CAA+B,EAAA,CAM/B,oBAAA,CAAsB,EAAA,CAMtB,4BAAA,CAA8B,EAChC,CAAA,CAKaC,CAAAA,CAAsB,CAIjC,gBAAA,CAAkB,QAAA,CAKlB,kBAAA,CAAoB,GAAA,CAKpB,qBAAA,CAAuB,GAAA,CAKvB,oBAAA,CAAsB,GACxB,CAAA,CAKaC,CAAAA,CAAiB,CAI5B,aAAA,CAAe,MAAA,CAMf,YAAA,CAAc,GAChB,CAAA,CAKaC,CAAAA,CAAsB,CAIjC,mBAAA,CAAqB,GAAA,CAKrB,kBAAA,CAAoB,GAAA,CAMpB,yBAAA,CAA2B,GAC7B,CAAA,CAKaC,CAAAA,CAA8B,CACzC,KAAA,CAAOV,CAAAA,CACP,UAAA,CAAYC,CAAAA,CACZ,eAAA,CAAiBC,CAAAA,CACjB,KAAA,CAAOC,CAAAA,CACP,UAAA,CAAYC,CAAAA,CACZ,QAAA,CAAUC,CAAAA,CACV,GAAA,CAAKC,CAAAA,CACL,YAAA,CAAcC,CAAAA,CACd,OAAA,CAASC,CAAAA,CACT,YAAA,CAAcC,CAChB","file":"index.mjs","sourcesContent":["/**\n * Mathematical Constants\n *\n * Common mathematical values, number system bases, and calculation constants\n * used throughout the application for various computations.\n *\n * @module math/constants\n */\n\n/**\n * Number system base constants\n */\nexport const NUMBER_SYSTEM = {\n // Number bases\n /**\n * Base 2 - Binary number system\n */\n BINARY_BASE: 2,\n\n /**\n * Base 8 - Octal number system\n */\n OCTAL_BASE: 8,\n\n /**\n * Base 10 - Decimal number system\n */\n DECIMAL_BASE: 10,\n\n /**\n * Base 12 - Duodecimal number system\n */\n DUODECIMAL_BASE: 12,\n\n /**\n * Base 16 - Hexadecimal number system\n */\n HEX_BASE: 16,\n\n /**\n * Base 32 - Base32 encoding\n */\n BASE32: 32,\n\n /**\n * Base 36 - Alphanumeric number system (0-9, a-z)\n */\n BASE36: 36,\n\n /**\n * Base 58 - Bitcoin base58 encoding (excludes similar looking characters)\n */\n BASE58: 58,\n\n /**\n * Base 62 - Alphanumeric with uppercase (0-9, a-z, A-Z)\n */\n BASE62: 62,\n\n /**\n * Base 64 - Base64 encoding\n */\n BASE64: 64,\n\n // Formatting and padding\n /**\n * Default padding length for hexadecimal values (e.g., \"0F\" instead of \"F\")\n */\n HEX_PAD_LENGTH: 2,\n\n /**\n * Padding length for RGB hex colors (6 characters)\n */\n HEX_COLOR_LENGTH: 6,\n\n /**\n * Padding length for RGBA hex colors with alpha (8 characters)\n */\n HEX_COLOR_ALPHA_LENGTH: 8,\n\n /**\n * Standard byte size in bits\n */\n BITS_PER_BYTE: 8,\n\n /**\n * Standard nibble size in bits (half byte)\n */\n BITS_PER_NIBBLE: 4,\n\n /**\n * Number of bytes in a kilobyte (binary)\n */\n BYTES_PER_KB: 1024,\n\n /**\n * Number of bytes in a megabyte (binary)\n */\n BYTES_PER_MB: 1048576,\n\n /**\n * Number of bytes in a gigabyte (binary)\n */\n BYTES_PER_GB: 1073741824,\n\n // Precision and rounding\n /**\n * Default decimal places for currency\n */\n CURRENCY_DECIMAL_PLACES: 2,\n\n /**\n * Default decimal places for percentages\n */\n PERCENTAGE_DECIMAL_PLACES: 2,\n\n /**\n * Default decimal places for coordinates\n */\n COORDINATE_DECIMAL_PLACES: 6,\n\n /**\n * Maximum safe integer in JavaScript\n */\n MAX_SAFE_INTEGER: 9007199254740991,\n\n /**\n * Minimum safe integer in JavaScript\n */\n MIN_SAFE_INTEGER: -9007199254740991,\n\n /**\n * Maximum 32-bit signed integer\n */\n MAX_INT32: 2147483647,\n\n /**\n * Minimum 32-bit signed integer\n */\n MIN_INT32: -2147483648,\n\n /**\n * Maximum 16-bit unsigned integer\n */\n MAX_UINT16: 65535,\n\n /**\n * Maximum 8-bit unsigned integer\n */\n MAX_UINT8: 255,\n\n // Common angles in degrees\n /**\n * Full circle in degrees\n */\n DEGREES_FULL_CIRCLE: 360,\n\n /**\n * Half circle in degrees\n */\n DEGREES_HALF_CIRCLE: 180,\n\n /**\n * Quarter circle in degrees (right angle)\n */\n DEGREES_RIGHT_ANGLE: 90,\n\n /**\n * Degrees in a radian\n */\n DEGREES_PER_RADIAN: 57.29577951308232,\n\n /**\n * Radians in a degree\n */\n RADIANS_PER_DEGREE: 0.017453292519943295,\n\n // Mathematical constants\n /**\n * Pi (π)\n */\n PI: 3.141592653589793,\n\n /**\n * Two times Pi (2π) - full circle in radians\n */\n TWO_PI: 6.283185307179586,\n\n /**\n * Half Pi (π/2) - quarter circle in radians\n */\n HALF_PI: 1.5707963267948966,\n\n /**\n * Euler's number (e)\n */\n E: 2.718281828459045,\n\n /**\n * Golden ratio (φ)\n */\n GOLDEN_RATIO: 1.618033988749895,\n\n /**\n * Square root of 2\n */\n SQRT2: 1.4142135623730951,\n\n /**\n * Square root of 3\n */\n SQRT3: 1.7320508075688772,\n\n /**\n * Natural logarithm of 2\n */\n LN2: 0.6931471805599453,\n\n /**\n * Natural logarithm of 10\n */\n LN10: 2.302585092994046,\n\n /**\n * Base 2 logarithm of E\n */\n LOG2E: 1.4426950408889634,\n\n /**\n * Base 10 logarithm of E\n */\n LOG10E: 0.4342944819032518,\n} as const;\n\n/**\n * Mathematical and percentage constants\n */\nexport const MATH_CONSTANTS = {\n /**\n * Maximum percentage value\n */\n PERCENTAGE_MAX: 100,\n\n /**\n * Half value (50%)\n */\n HALF: 0.5,\n\n /**\n * One tenth (10%)\n */\n TENTH: 0.1,\n\n /**\n * One twentieth (5%)\n */\n TWENTIETH: 0.05,\n\n /**\n * 95th percentile\n */\n PERCENT_95: 0.95,\n\n /**\n * 99th percentile\n */\n PERCENT_99: 0.99,\n\n /**\n * Threshold for quadratic algorithm detection\n */\n QUADRATIC_THRESHOLD: 1.5,\n\n /**\n * Threshold for exponential algorithm detection\n */\n EXPONENTIAL_THRESHOLD: 3,\n\n /**\n * Multiplier for variance calculations\n */\n VARIANCE_MULTIPLIER: 4,\n\n /**\n * Offset for variance calculations\n */\n VARIANCE_OFFSET: 2,\n} as const;\n\n/**\n * Common numeric multipliers for calculations\n */\nexport const MULTIPLIERS = {\n /**\n * One and a half times (1.5x)\n */\n ONE_AND_HALF: 1.5,\n\n /**\n * Double (2x)\n */\n DOUBLE: 2,\n\n /**\n * Triple (3x)\n */\n TRIPLE: 3,\n\n /**\n * Quadruple (4x)\n */\n QUADRUPLE: 4,\n\n /**\n * Quintuple (5x)\n */\n QUINTUPLE: 5,\n\n /**\n * Ten times (10x)\n */\n TEN: 10,\n} as const;\n\n/**\n * Common numeric constants for general use\n */\nexport const NUMERIC_CONSTANTS = {\n /**\n * Milliseconds in one second\n */\n MILLISECONDS_PER_SECOND: 1000,\n\n /**\n * Seconds in one minute\n */\n SECONDS_PER_MINUTE: 60,\n\n /**\n * Minutes in one hour\n */\n MINUTES_PER_HOUR: 60,\n\n /**\n * Hours in one day\n */\n HOURS_PER_DAY: 24,\n\n /**\n * Negative one (-1)\n */\n NEGATIVE_ONE: -1,\n\n /**\n * Zero (0)\n */\n ZERO: 0,\n\n /**\n * One (1)\n */\n ONE: 1,\n\n /**\n * Two (2)\n */\n TWO: 2,\n\n /**\n * Three (3)\n */\n THREE: 3,\n\n /**\n * Five (5)\n */\n FIVE: 5,\n\n /**\n * Ten (10)\n */\n TEN: 10,\n} as const;\n\n/**\n * Type for number system values\n */\nexport type NumberSystemBase = (typeof NUMBER_SYSTEM)[keyof typeof NUMBER_SYSTEM];\n\n/**\n * Type for math constant values\n */\nexport type MathConstant = (typeof MATH_CONSTANTS)[keyof typeof MATH_CONSTANTS];\n\n/**\n * Type for multiplier values\n */\nexport type Multiplier = (typeof MULTIPLIERS)[keyof typeof MULTIPLIERS];\n\n/**\n * Type for numeric constant values\n */\nexport type NumericConstant = (typeof NUMERIC_CONSTANTS)[keyof typeof NUMERIC_CONSTANTS];\n","/**\n * Notification Configuration Constants\n *\n * Default configuration values for the notifications system.\n * These can be overridden at runtime through configuration objects.\n *\n * @module src/notifications/constants\n */\n\n// Import type-level constants from @plyaz/types\nimport { NOTIFICATION_CATEGORIES } from '@plyaz/types';\n\n// Import byte calculation constants from @plyaz/config/math\nimport { NUMBER_SYSTEM } from '../math/constants';\n\n// Common size values in MB\nconst SIZE_25_MB = 25;\nconst SIZE_30_MB = 30;\n\n/**\n * Default notification category\n * Safest default for compliance - transactional emails must always be sent\n */\nexport const DEFAULT_NOTIFICATION_CATEGORY = NOTIFICATION_CATEGORIES.TRANSACTIONAL;\n\n/**\n * Retry Configuration\n */\nexport const RETRY_CONFIG = {\n /**\n * Default maximum number of retry attempts\n * Used when no specific retry count is provided\n */\n DEFAULT_MAX_ATTEMPTS: 3,\n\n /**\n * Default initial delay between retries (milliseconds)\n * Used for exponential backoff calculation\n */\n DEFAULT_INITIAL_DELAY_MS: 1000,\n\n /**\n * Maximum delay between retries (milliseconds)\n * Prevents exponential backoff from growing too large\n */\n MAX_DELAY_MS: 30000,\n\n /**\n * Backoff multiplier for exponential backoff\n * Each retry delay = previous delay * multiplier\n */\n BACKOFF_MULTIPLIER: 2,\n} as const;\n\n/**\n * Attachment Configuration\n */\nexport const ATTACHMENT_CONFIG = {\n /**\n * Default maximum number of attachments per notification\n */\n DEFAULT_MAX_ATTACHMENTS: 10,\n\n /**\n * Default maximum size per attachment (bytes)\n * 25MB - Common limit across providers\n */\n DEFAULT_MAX_SIZE_PER_ATTACHMENT: SIZE_25_MB * NUMBER_SYSTEM.BYTES_PER_MB,\n\n /**\n * Default maximum total size of all attachments (bytes)\n * 25MB - Ensures we don't exceed provider limits\n */\n DEFAULT_MAX_TOTAL_SIZE: SIZE_25_MB * NUMBER_SYSTEM.BYTES_PER_MB,\n\n /**\n * Maximum attachment size for SendGrid (bytes)\n * 30MB per SendGrid documentation\n */\n SENDGRID_MAX_SIZE: SIZE_30_MB * NUMBER_SYSTEM.BYTES_PER_MB,\n\n /**\n * Maximum total attachment size for SendGrid (bytes)\n * 30MB per SendGrid documentation\n */\n SENDGRID_MAX_TOTAL_SIZE: SIZE_30_MB * NUMBER_SYSTEM.BYTES_PER_MB,\n\n /**\n * Maximum attachment size for Infobip (bytes)\n * 30MB - matching SendGrid for consistency\n */\n INFOBIP_MAX_SIZE: SIZE_30_MB * NUMBER_SYSTEM.BYTES_PER_MB,\n\n /**\n * Maximum total attachment size for Infobip (bytes)\n * 30MB - matching SendGrid for consistency\n */\n INFOBIP_MAX_TOTAL_SIZE: SIZE_30_MB * NUMBER_SYSTEM.BYTES_PER_MB,\n\n /**\n * Default timeout for URL attachment fetching (milliseconds)\n */\n URL_FETCH_TIMEOUT_MS: 30000,\n\n /**\n * Maximum number of retry attempts for failed URL fetches\n */\n URL_FETCH_MAX_RETRIES: 3,\n} as const;\n\n/**\n * Circuit Breaker Configuration\n */\nexport const CIRCUIT_BREAKER_CONFIG = {\n /**\n * Default failure threshold before opening circuit\n * Circuit opens after this many consecutive failures\n */\n DEFAULT_FAILURE_THRESHOLD: 5,\n\n /**\n * Default timeout before attempting half-open state (milliseconds)\n * How long to wait before testing if provider has recovered\n */\n DEFAULT_TIMEOUT_MS: 60000,\n\n /**\n * Default success threshold in half-open state\n * Number of successful requests needed to close circuit\n */\n DEFAULT_SUCCESS_THRESHOLD: 2,\n} as const;\n\n/**\n * Queue Configuration\n */\nexport const QUEUE_CONFIG = {\n /**\n * Default maximum queue size\n */\n DEFAULT_MAX_SIZE: 10000,\n\n /**\n * Default number of concurrent workers\n */\n DEFAULT_CONCURRENCY: 5,\n\n /**\n * Default queue processing interval (milliseconds)\n */\n DEFAULT_PROCESSING_INTERVAL_MS: 100,\n} as const;\n\n/**\n * Rate Limiting Configuration\n */\nexport const RATE_LIMIT_CONFIG = {\n /**\n * Default requests per second per provider\n */\n DEFAULT_REQUESTS_PER_SECOND: 10,\n\n /**\n * Default burst allowance\n * Number of requests that can be sent in a burst\n */\n DEFAULT_BURST_ALLOWANCE: 20,\n\n /**\n * Default window size for rate limiting (milliseconds)\n */\n DEFAULT_WINDOW_MS: 1000,\n} as const;\n\n/**\n * Template Configuration\n */\nexport const TEMPLATE_CONFIG = {\n /**\n * Default locale for templates\n */\n DEFAULT_LOCALE: 'en',\n\n /**\n * Fallback locale when requested locale not found\n */\n FALLBACK_LOCALE: 'en',\n\n /**\n * Template cache TTL (milliseconds)\n * How long to cache compiled templates\n */\n CACHE_TTL_MS: 300000, // 5 minutes\n\n /**\n * Maximum template size (bytes)\n */\n MAX_TEMPLATE_SIZE: NUMBER_SYSTEM.BYTES_PER_MB, // 1MB\n} as const;\n\n/**\n * SMS Character Limits and Encoding\n * Based on GSM-7 and UCS-2 encoding standards\n */\nexport const SMS_CONFIG = {\n /**\n * Single SMS message limit for GSM-7 encoding (standard characters)\n * Includes: A-Z, a-z, 0-9, and basic punctuation\n */\n GSM7_SINGLE_MESSAGE_LIMIT: 160,\n\n /**\n * Multi-part SMS message segment limit for GSM-7 encoding\n * Each segment in a concatenated message is limited to 153 characters (7 chars for UDH)\n */\n GSM7_MULTI_PART_SEGMENT_LIMIT: 153,\n\n /**\n * Single SMS message limit for UCS-2 encoding (unicode characters)\n * Used when message contains emoji, non-Latin characters, etc.\n */\n UCS2_SINGLE_MESSAGE_LIMIT: 70,\n\n /**\n * Multi-part SMS message segment limit for UCS-2 encoding\n * Each segment in a concatenated message is limited to 67 characters\n */\n UCS2_MULTI_PART_SEGMENT_LIMIT: 67,\n\n /**\n * Maximum number of SMS segments to allow\n * Prevents accidentally sending very expensive multi-part messages\n */\n DEFAULT_MAX_SEGMENTS: 10,\n\n /**\n * Warning threshold (percentage of limit)\n * Emit warning when message reaches this percentage of the limit\n */\n WARNING_THRESHOLD_PERCENTAGE: 90,\n} as const;\n\n/**\n * Notification Configuration\n */\nexport const NOTIFICATION_CONFIG = {\n /**\n * Default notification priority\n */\n DEFAULT_PRIORITY: 'normal' as const,\n\n /**\n * Maximum subject line length\n */\n MAX_SUBJECT_LENGTH: 255,\n\n /**\n * Maximum push notification title length\n */\n MAX_PUSH_TITLE_LENGTH: 100,\n\n /**\n * Maximum push notification body length\n */\n MAX_PUSH_BODY_LENGTH: 500,\n} as const;\n\n/**\n * Logging Configuration\n */\nexport const LOGGING_CONFIG = {\n /**\n * Default log level\n */\n DEFAULT_LEVEL: 'info' as const,\n\n /**\n * Maximum log message size (bytes)\n * Prevents excessive log sizes\n */\n MAX_LOG_SIZE: 10000,\n} as const;\n\n/**\n * Health Check Configuration\n */\nexport const HEALTH_CHECK_CONFIG = {\n /**\n * Default health check interval (milliseconds)\n */\n DEFAULT_INTERVAL_MS: 30000,\n\n /**\n * Default health check timeout (milliseconds)\n */\n DEFAULT_TIMEOUT_MS: 5000,\n\n /**\n * Maximum acceptable latency (milliseconds)\n * Health check fails if latency exceeds this\n */\n MAX_ACCEPTABLE_LATENCY_MS: 2000,\n} as const;\n\n/**\n * Export all configuration as a single object for convenience\n */\nexport const NOTIFICATION_PACKAGE_CONFIG = {\n RETRY: RETRY_CONFIG,\n ATTACHMENT: ATTACHMENT_CONFIG,\n CIRCUIT_BREAKER: CIRCUIT_BREAKER_CONFIG,\n QUEUE: QUEUE_CONFIG,\n RATE_LIMIT: RATE_LIMIT_CONFIG,\n TEMPLATE: TEMPLATE_CONFIG,\n SMS: SMS_CONFIG,\n NOTIFICATION: NOTIFICATION_CONFIG,\n LOGGING: LOGGING_CONFIG,\n HEALTH_CHECK: HEALTH_CHECK_CONFIG,\n} as const;\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/math/constants.ts","../../src/notifications/constants.ts"],"names":["NUMBER_SYSTEM","SIZE_25_MB","SIZE_30_MB","DEFAULT_NOTIFICATION_CATEGORY","NOTIFICATION_CATEGORIES","RETRY_CONFIG","ATTACHMENT_CONFIG","CIRCUIT_BREAKER_CONFIG","QUEUE_CONFIG","RATE_LIMIT_CONFIG","TEMPLATE_CONFIG","SMS_CONFIG","NOTIFICATION_CONFIG","LOGGING_CONFIG","HEALTH_CHECK_CONFIG","NOTIFICATION_PACKAGE_CONFIG"],"mappings":";AAYO,IAAMA,CAAAA,CAAgB,CAsF3B,YAAA,CAAc,OAsIhB,CAAA,CCxNA,IAAMC,CAAAA,CAAa,EAAA,CACbC,CAAAA,CAAa,EAAA,CAMNC,CAAAA,CAAgCC,uBAAAA,CAAwB,aAAA,CAKxDC,CAAAA,CAAe,CAK1B,oBAAA,CAAsB,CAAA,CAMtB,wBAAA,CAA0B,GAAA,CAM1B,YAAA,CAAc,GAAA,CAMd,kBAAA,CAAoB,CACtB,CAAA,CAKaC,CAAAA,CAAoB,CAI/B,uBAAA,CAAyB,EAAA,CAMzB,+BAAA,CAAiCL,CAAAA,CAAaD,CAAAA,CAAc,YAAA,CAM5D,sBAAA,CAAwBC,CAAAA,CAAaD,CAAAA,CAAc,aAMnD,iBAAA,CAAmBE,CAAAA,CAAaF,CAAAA,CAAc,YAAA,CAM9C,uBAAA,CAAyBE,CAAAA,CAAaF,CAAAA,CAAc,YAAA,CAMpD,gBAAA,CAAkBE,CAAAA,CAAaF,CAAAA,CAAc,YAAA,CAM7C,sBAAA,CAAwBE,CAAAA,CAAaF,CAAAA,CAAc,YAAA,CAKnD,oBAAA,CAAsB,GAAA,CAKtB,qBAAA,CAAuB,CACzB,CAAA,CAKaO,CAAAA,CAAyB,CAKpC,yBAAA,CAA2B,CAAA,CAM3B,kBAAA,CAAoB,GAAA,CAMpB,yBAAA,CAA2B,CAC7B,CAAA,CAKaC,CAAAA,CAAe,CAI1B,gBAAA,CAAkB,GAAA,CAKlB,mBAAA,CAAqB,CAAA,CAKrB,8BAAA,CAAgC,GAClC,CAAA,CAKaC,CAAAA,CAAoB,CAI/B,2BAAA,CAA6B,EAAA,CAM7B,uBAAA,CAAyB,EAAA,CAKzB,iBAAA,CAAmB,GACrB,CAAA,CAKaC,CAAAA,CAAkB,CAI7B,cAAA,CAAgB,IAAA,CAKhB,eAAA,CAAiB,IAAA,CAMjB,YAAA,CAAc,GAAA,CAKd,iBAAA,CAAmBV,CAAAA,CAAc,YACnC,CAAA,CAMaW,CAAAA,CAAa,CAKxB,0BAA2B,GAAA,CAM3B,6BAAA,CAA+B,GAAA,CAM/B,yBAAA,CAA2B,EAAA,CAM3B,6BAAA,CAA+B,EAAA,CAM/B,oBAAA,CAAsB,EAAA,CAMtB,4BAAA,CAA8B,EAChC,CAAA,CAKaC,CAAAA,CAAsB,CAIjC,gBAAA,CAAkB,QAAA,CAKlB,kBAAA,CAAoB,GAAA,CAKpB,qBAAA,CAAuB,GAAA,CAKvB,oBAAA,CAAsB,GACxB,CAAA,CAKaC,CAAAA,CAAiB,CAI5B,aAAA,CAAe,MAAA,CAMf,YAAA,CAAc,GAChB,CAAA,CAKaC,CAAAA,CAAsB,CAIjC,mBAAA,CAAqB,GAAA,CAKrB,kBAAA,CAAoB,GAAA,CAMpB,yBAAA,CAA2B,GAC7B,CAAA,CAKaC,CAAAA,CAA8B,CACzC,KAAA,CAAOV,CAAAA,CACP,UAAA,CAAYC,CAAAA,CACZ,eAAA,CAAiBC,CAAAA,CACjB,KAAA,CAAOC,CAAAA,CACP,UAAA,CAAYC,CAAAA,CACZ,QAAA,CAAUC,CAAAA,CACV,GAAA,CAAKC,CAAAA,CACL,YAAA,CAAcC,CAAAA,CACd,OAAA,CAASC,CAAAA,CACT,YAAA,CAAcC,CAChB","file":"index.mjs","sourcesContent":["/**\n * Mathematical Constants\n *\n * Common mathematical values, number system bases, and calculation constants\n * used throughout the application for various computations.\n *\n * @module math/constants\n */\n\n/**\n * Number system base constants\n */\nexport const NUMBER_SYSTEM = {\n // Number bases\n /**\n * Base 2 - Binary number system\n */\n BINARY_BASE: 2,\n\n /**\n * Base 8 - Octal number system\n */\n OCTAL_BASE: 8,\n\n /**\n * Base 10 - Decimal number system\n */\n DECIMAL_BASE: 10,\n\n /**\n * Base 12 - Duodecimal number system\n */\n DUODECIMAL_BASE: 12,\n\n /**\n * Base 16 - Hexadecimal number system\n */\n HEX_BASE: 16,\n\n /**\n * Base 32 - Base32 encoding\n */\n BASE32: 32,\n\n /**\n * Base 36 - Alphanumeric number system (0-9, a-z)\n */\n BASE36: 36,\n\n /**\n * Base 58 - Bitcoin base58 encoding (excludes similar looking characters)\n */\n BASE58: 58,\n\n /**\n * Base 62 - Alphanumeric with uppercase (0-9, a-z, A-Z)\n */\n BASE62: 62,\n\n /**\n * Base 64 - Base64 encoding\n */\n BASE64: 64,\n\n // Formatting and padding\n /**\n * Default padding length for hexadecimal values (e.g., \"0F\" instead of \"F\")\n */\n HEX_PAD_LENGTH: 2,\n\n /**\n * Padding length for RGB hex colors (6 characters)\n */\n HEX_COLOR_LENGTH: 6,\n\n /**\n * Padding length for RGBA hex colors with alpha (8 characters)\n */\n HEX_COLOR_ALPHA_LENGTH: 8,\n\n /**\n * Standard byte size in bits\n */\n BITS_PER_BYTE: 8,\n\n /**\n * Standard nibble size in bits (half byte)\n */\n BITS_PER_NIBBLE: 4,\n\n /**\n * Number of bytes in a kilobyte (binary)\n */\n BYTES_PER_KB: 1024,\n\n /**\n * Number of bytes in a megabyte (binary)\n */\n BYTES_PER_MB: 1048576,\n\n /**\n * Number of bytes in a gigabyte (binary)\n */\n BYTES_PER_GB: 1073741824,\n\n // Precision and rounding\n /**\n * Default decimal places for currency\n */\n CURRENCY_DECIMAL_PLACES: 2,\n\n /**\n * Default decimal places for percentages\n */\n PERCENTAGE_DECIMAL_PLACES: 2,\n\n /**\n * Default decimal places for coordinates\n */\n COORDINATE_DECIMAL_PLACES: 6,\n\n /**\n * Maximum safe integer in JavaScript\n */\n MAX_SAFE_INTEGER: 9007199254740991,\n\n /**\n * Minimum safe integer in JavaScript\n */\n MIN_SAFE_INTEGER: -9007199254740991,\n\n /**\n * Maximum 32-bit signed integer\n */\n MAX_INT32: 2147483647,\n\n /**\n * Minimum 32-bit signed integer\n */\n MIN_INT32: -2147483648,\n\n /**\n * Maximum 16-bit unsigned integer\n */\n MAX_UINT16: 65535,\n\n /**\n * Maximum 8-bit unsigned integer\n */\n MAX_UINT8: 255,\n\n // Common angles in degrees\n /**\n * Full circle in degrees\n */\n DEGREES_FULL_CIRCLE: 360,\n\n /**\n * Half circle in degrees\n */\n DEGREES_HALF_CIRCLE: 180,\n\n /**\n * Quarter circle in degrees (right angle)\n */\n DEGREES_RIGHT_ANGLE: 90,\n\n /**\n * Degrees in a radian\n */\n DEGREES_PER_RADIAN: 57.29577951308232,\n\n /**\n * Radians in a degree\n */\n RADIANS_PER_DEGREE: 0.017453292519943295,\n\n // Mathematical constants\n /**\n * Pi (π)\n */\n PI: 3.141592653589793,\n\n /**\n * Two times Pi (2π) - full circle in radians\n */\n TWO_PI: 6.283185307179586,\n\n /**\n * Half Pi (π/2) - quarter circle in radians\n */\n HALF_PI: 1.5707963267948966,\n\n /**\n * Euler's number (e)\n */\n E: 2.718281828459045,\n\n /**\n * Golden ratio (φ)\n */\n GOLDEN_RATIO: 1.618033988749895,\n\n /**\n * Square root of 2\n */\n SQRT2: 1.4142135623730951,\n\n /**\n * Square root of 3\n */\n SQRT3: 1.7320508075688772,\n\n /**\n * Natural logarithm of 2\n */\n LN2: 0.6931471805599453,\n\n /**\n * Natural logarithm of 10\n */\n LN10: 2.302585092994046,\n\n /**\n * Base 2 logarithm of E\n */\n LOG2E: 1.4426950408889634,\n\n /**\n * Base 10 logarithm of E\n */\n LOG10E: 0.4342944819032518,\n} as const;\n\n/**\n * Mathematical and percentage constants\n */\nexport const MATH_CONSTANTS = {\n /**\n * Maximum percentage value\n */\n PERCENTAGE_MAX: 100,\n\n /**\n * Half value (50%)\n */\n HALF: 0.5,\n\n /**\n * One tenth (10%)\n */\n TENTH: 0.1,\n\n /**\n * One twentieth (5%)\n */\n TWENTIETH: 0.05,\n\n /**\n * 95th percentile\n */\n PERCENT_95: 0.95,\n\n /**\n * 99th percentile\n */\n PERCENT_99: 0.99,\n\n /**\n * Threshold for quadratic algorithm detection\n */\n QUADRATIC_THRESHOLD: 1.5,\n\n /**\n * Threshold for exponential algorithm detection\n */\n EXPONENTIAL_THRESHOLD: 3,\n\n /**\n * Multiplier for variance calculations\n */\n VARIANCE_MULTIPLIER: 4,\n\n /**\n * Offset for variance calculations\n */\n VARIANCE_OFFSET: 2,\n} as const;\n\n/**\n * Common numeric multipliers for calculations\n */\nexport const MULTIPLIERS = {\n /**\n * One and a half times (1.5x)\n */\n ONE_AND_HALF: 1.5,\n\n /**\n * Double (2x)\n */\n DOUBLE: 2,\n\n /**\n * Triple (3x)\n */\n TRIPLE: 3,\n\n /**\n * Quadruple (4x)\n */\n QUADRUPLE: 4,\n\n /**\n * Quintuple (5x)\n */\n QUINTUPLE: 5,\n\n /**\n * Ten times (10x)\n */\n TEN: 10,\n} as const;\n\n/**\n * Common numeric constants for general use\n */\nexport const NUMERIC_CONSTANTS = {\n /**\n * Milliseconds in one second\n */\n MILLISECONDS_PER_SECOND: 1000,\n\n /**\n * Seconds in one minute\n */\n SECONDS_PER_MINUTE: 60,\n\n /**\n * Minutes in one hour\n */\n MINUTES_PER_HOUR: 60,\n\n /**\n * Hours in one day\n */\n HOURS_PER_DAY: 24,\n\n /**\n * Negative one (-1)\n */\n NEGATIVE_ONE: -1,\n\n /**\n * Zero (0)\n */\n ZERO: 0,\n\n /**\n * One (1)\n */\n ONE: 1,\n\n /**\n * Two (2)\n */\n TWO: 2,\n\n /**\n * Three (3)\n */\n THREE: 3,\n\n /**\n * Five (5)\n */\n FIVE: 5,\n\n /**\n * Ten (10)\n */\n TEN: 10,\n /**\n * One hour in seconds (3600)\n */\n ONE_HOUR_SECONDS: 3600,\n /**\n * Minimum pool size (1)\n */\n MIN_POOL_SIZE: 1,\n /**\n * Maximum pool size (100)\n */\n MAX_POOL_SIZE: 100,\n /**\n * Minimum timeout in milliseconds (1000)\n */\n MIN_TIMEOUT_MS: 1000,\n} as const;\n\n/**\n * Type for number system values\n */\nexport type NumberSystemBase = (typeof NUMBER_SYSTEM)[keyof typeof NUMBER_SYSTEM];\n\n/**\n * Type for math constant values\n */\nexport type MathConstant = (typeof MATH_CONSTANTS)[keyof typeof MATH_CONSTANTS];\n\n/**\n * Type for multiplier values\n */\nexport type Multiplier = (typeof MULTIPLIERS)[keyof typeof MULTIPLIERS];\n\n/**\n * Type for numeric constant values\n */\nexport type NumericConstant = (typeof NUMERIC_CONSTANTS)[keyof typeof NUMERIC_CONSTANTS];\n","/**\n * Notification Configuration Constants\n *\n * Default configuration values for the notifications system.\n * These can be overridden at runtime through configuration objects.\n *\n * @module src/notifications/constants\n */\n\n// Import type-level constants from @plyaz/types\nimport { NOTIFICATION_CATEGORIES } from '@plyaz/types';\n\n// Import byte calculation constants from @plyaz/config/math\nimport { NUMBER_SYSTEM } from '../math/constants';\n\n// Common size values in MB\nconst SIZE_25_MB = 25;\nconst SIZE_30_MB = 30;\n\n/**\n * Default notification category\n * Safest default for compliance - transactional emails must always be sent\n */\nexport const DEFAULT_NOTIFICATION_CATEGORY = NOTIFICATION_CATEGORIES.TRANSACTIONAL;\n\n/**\n * Retry Configuration\n */\nexport const RETRY_CONFIG = {\n /**\n * Default maximum number of retry attempts\n * Used when no specific retry count is provided\n */\n DEFAULT_MAX_ATTEMPTS: 3,\n\n /**\n * Default initial delay between retries (milliseconds)\n * Used for exponential backoff calculation\n */\n DEFAULT_INITIAL_DELAY_MS: 1000,\n\n /**\n * Maximum delay between retries (milliseconds)\n * Prevents exponential backoff from growing too large\n */\n MAX_DELAY_MS: 30000,\n\n /**\n * Backoff multiplier for exponential backoff\n * Each retry delay = previous delay * multiplier\n */\n BACKOFF_MULTIPLIER: 2,\n} as const;\n\n/**\n * Attachment Configuration\n */\nexport const ATTACHMENT_CONFIG = {\n /**\n * Default maximum number of attachments per notification\n */\n DEFAULT_MAX_ATTACHMENTS: 10,\n\n /**\n * Default maximum size per attachment (bytes)\n * 25MB - Common limit across providers\n */\n DEFAULT_MAX_SIZE_PER_ATTACHMENT: SIZE_25_MB * NUMBER_SYSTEM.BYTES_PER_MB,\n\n /**\n * Default maximum total size of all attachments (bytes)\n * 25MB - Ensures we don't exceed provider limits\n */\n DEFAULT_MAX_TOTAL_SIZE: SIZE_25_MB * NUMBER_SYSTEM.BYTES_PER_MB,\n\n /**\n * Maximum attachment size for SendGrid (bytes)\n * 30MB per SendGrid documentation\n */\n SENDGRID_MAX_SIZE: SIZE_30_MB * NUMBER_SYSTEM.BYTES_PER_MB,\n\n /**\n * Maximum total attachment size for SendGrid (bytes)\n * 30MB per SendGrid documentation\n */\n SENDGRID_MAX_TOTAL_SIZE: SIZE_30_MB * NUMBER_SYSTEM.BYTES_PER_MB,\n\n /**\n * Maximum attachment size for Infobip (bytes)\n * 30MB - matching SendGrid for consistency\n */\n INFOBIP_MAX_SIZE: SIZE_30_MB * NUMBER_SYSTEM.BYTES_PER_MB,\n\n /**\n * Maximum total attachment size for Infobip (bytes)\n * 30MB - matching SendGrid for consistency\n */\n INFOBIP_MAX_TOTAL_SIZE: SIZE_30_MB * NUMBER_SYSTEM.BYTES_PER_MB,\n\n /**\n * Default timeout for URL attachment fetching (milliseconds)\n */\n URL_FETCH_TIMEOUT_MS: 30000,\n\n /**\n * Maximum number of retry attempts for failed URL fetches\n */\n URL_FETCH_MAX_RETRIES: 3,\n} as const;\n\n/**\n * Circuit Breaker Configuration\n */\nexport const CIRCUIT_BREAKER_CONFIG = {\n /**\n * Default failure threshold before opening circuit\n * Circuit opens after this many consecutive failures\n */\n DEFAULT_FAILURE_THRESHOLD: 5,\n\n /**\n * Default timeout before attempting half-open state (milliseconds)\n * How long to wait before testing if provider has recovered\n */\n DEFAULT_TIMEOUT_MS: 60000,\n\n /**\n * Default success threshold in half-open state\n * Number of successful requests needed to close circuit\n */\n DEFAULT_SUCCESS_THRESHOLD: 2,\n} as const;\n\n/**\n * Queue Configuration\n */\nexport const QUEUE_CONFIG = {\n /**\n * Default maximum queue size\n */\n DEFAULT_MAX_SIZE: 10000,\n\n /**\n * Default number of concurrent workers\n */\n DEFAULT_CONCURRENCY: 5,\n\n /**\n * Default queue processing interval (milliseconds)\n */\n DEFAULT_PROCESSING_INTERVAL_MS: 100,\n} as const;\n\n/**\n * Rate Limiting Configuration\n */\nexport const RATE_LIMIT_CONFIG = {\n /**\n * Default requests per second per provider\n */\n DEFAULT_REQUESTS_PER_SECOND: 10,\n\n /**\n * Default burst allowance\n * Number of requests that can be sent in a burst\n */\n DEFAULT_BURST_ALLOWANCE: 20,\n\n /**\n * Default window size for rate limiting (milliseconds)\n */\n DEFAULT_WINDOW_MS: 1000,\n} as const;\n\n/**\n * Template Configuration\n */\nexport const TEMPLATE_CONFIG = {\n /**\n * Default locale for templates\n */\n DEFAULT_LOCALE: 'en',\n\n /**\n * Fallback locale when requested locale not found\n */\n FALLBACK_LOCALE: 'en',\n\n /**\n * Template cache TTL (milliseconds)\n * How long to cache compiled templates\n */\n CACHE_TTL_MS: 300000, // 5 minutes\n\n /**\n * Maximum template size (bytes)\n */\n MAX_TEMPLATE_SIZE: NUMBER_SYSTEM.BYTES_PER_MB, // 1MB\n} as const;\n\n/**\n * SMS Character Limits and Encoding\n * Based on GSM-7 and UCS-2 encoding standards\n */\nexport const SMS_CONFIG = {\n /**\n * Single SMS message limit for GSM-7 encoding (standard characters)\n * Includes: A-Z, a-z, 0-9, and basic punctuation\n */\n GSM7_SINGLE_MESSAGE_LIMIT: 160,\n\n /**\n * Multi-part SMS message segment limit for GSM-7 encoding\n * Each segment in a concatenated message is limited to 153 characters (7 chars for UDH)\n */\n GSM7_MULTI_PART_SEGMENT_LIMIT: 153,\n\n /**\n * Single SMS message limit for UCS-2 encoding (unicode characters)\n * Used when message contains emoji, non-Latin characters, etc.\n */\n UCS2_SINGLE_MESSAGE_LIMIT: 70,\n\n /**\n * Multi-part SMS message segment limit for UCS-2 encoding\n * Each segment in a concatenated message is limited to 67 characters\n */\n UCS2_MULTI_PART_SEGMENT_LIMIT: 67,\n\n /**\n * Maximum number of SMS segments to allow\n * Prevents accidentally sending very expensive multi-part messages\n */\n DEFAULT_MAX_SEGMENTS: 10,\n\n /**\n * Warning threshold (percentage of limit)\n * Emit warning when message reaches this percentage of the limit\n */\n WARNING_THRESHOLD_PERCENTAGE: 90,\n} as const;\n\n/**\n * Notification Configuration\n */\nexport const NOTIFICATION_CONFIG = {\n /**\n * Default notification priority\n */\n DEFAULT_PRIORITY: 'normal' as const,\n\n /**\n * Maximum subject line length\n */\n MAX_SUBJECT_LENGTH: 255,\n\n /**\n * Maximum push notification title length\n */\n MAX_PUSH_TITLE_LENGTH: 100,\n\n /**\n * Maximum push notification body length\n */\n MAX_PUSH_BODY_LENGTH: 500,\n} as const;\n\n/**\n * Logging Configuration\n */\nexport const LOGGING_CONFIG = {\n /**\n * Default log level\n */\n DEFAULT_LEVEL: 'info' as const,\n\n /**\n * Maximum log message size (bytes)\n * Prevents excessive log sizes\n */\n MAX_LOG_SIZE: 10000,\n} as const;\n\n/**\n * Health Check Configuration\n */\nexport const HEALTH_CHECK_CONFIG = {\n /**\n * Default health check interval (milliseconds)\n */\n DEFAULT_INTERVAL_MS: 30000,\n\n /**\n * Default health check timeout (milliseconds)\n */\n DEFAULT_TIMEOUT_MS: 5000,\n\n /**\n * Maximum acceptable latency (milliseconds)\n * Health check fails if latency exceeds this\n */\n MAX_ACCEPTABLE_LATENCY_MS: 2000,\n} as const;\n\n/**\n * Export all configuration as a single object for convenience\n */\nexport const NOTIFICATION_PACKAGE_CONFIG = {\n RETRY: RETRY_CONFIG,\n ATTACHMENT: ATTACHMENT_CONFIG,\n CIRCUIT_BREAKER: CIRCUIT_BREAKER_CONFIG,\n QUEUE: QUEUE_CONFIG,\n RATE_LIMIT: RATE_LIMIT_CONFIG,\n TEMPLATE: TEMPLATE_CONFIG,\n SMS: SMS_CONFIG,\n NOTIFICATION: NOTIFICATION_CONFIG,\n LOGGING: LOGGING_CONFIG,\n HEALTH_CHECK: HEALTH_CHECK_CONFIG,\n} as const;\n"]}
|