@voyantjs/utils 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (109) hide show
  1. package/package.json +2 -2
  2. package/dist/accounting-countries.d.ts +0 -12
  3. package/dist/accounting-countries.d.ts.map +0 -1
  4. package/dist/accounting-countries.js +0 -307
  5. package/dist/accounting-countries.js.map +0 -1
  6. package/dist/accounting-regions.d.ts +0 -103
  7. package/dist/accounting-regions.d.ts.map +0 -1
  8. package/dist/accounting-regions.js +0 -38
  9. package/dist/accounting-regions.js.map +0 -1
  10. package/dist/airlines.d.ts +0 -960
  11. package/dist/airlines.d.ts.map +0 -1
  12. package/dist/airlines.js +0 -989
  13. package/dist/airlines.js.map +0 -1
  14. package/dist/analytics/api-key-events.d.ts +0 -89
  15. package/dist/analytics/api-key-events.d.ts.map +0 -1
  16. package/dist/analytics/api-key-events.js +0 -99
  17. package/dist/analytics/api-key-events.js.map +0 -1
  18. package/dist/api-keys-client.d.ts +0 -40
  19. package/dist/api-keys-client.d.ts.map +0 -1
  20. package/dist/api-keys-client.js +0 -63
  21. package/dist/api-keys-client.js.map +0 -1
  22. package/dist/api-keys.d.ts +0 -48
  23. package/dist/api-keys.d.ts.map +0 -1
  24. package/dist/api-keys.js +0 -108
  25. package/dist/api-keys.js.map +0 -1
  26. package/dist/checkout-signature.d.ts +0 -15
  27. package/dist/checkout-signature.d.ts.map +0 -1
  28. package/dist/checkout-signature.js +0 -64
  29. package/dist/checkout-signature.js.map +0 -1
  30. package/dist/conditions.d.ts +0 -36
  31. package/dist/conditions.d.ts.map +0 -1
  32. package/dist/conditions.js +0 -396
  33. package/dist/conditions.js.map +0 -1
  34. package/dist/email/send.d.ts +0 -20
  35. package/dist/email/send.d.ts.map +0 -1
  36. package/dist/email/send.js +0 -53
  37. package/dist/email/send.js.map +0 -1
  38. package/dist/form-runtime.d.ts +0 -38
  39. package/dist/form-runtime.d.ts.map +0 -1
  40. package/dist/form-runtime.js +0 -174
  41. package/dist/form-runtime.js.map +0 -1
  42. package/dist/gcs/storage.d.ts +0 -23
  43. package/dist/gcs/storage.d.ts.map +0 -1
  44. package/dist/gcs/storage.js +0 -25
  45. package/dist/gcs/storage.js.map +0 -1
  46. package/dist/geo.d.ts +0 -85
  47. package/dist/geo.d.ts.map +0 -1
  48. package/dist/geo.js +0 -141
  49. package/dist/geo.js.map +0 -1
  50. package/dist/kms-crypto.d.ts +0 -20
  51. package/dist/kms-crypto.d.ts.map +0 -1
  52. package/dist/kms-crypto.js +0 -108
  53. package/dist/kms-crypto.js.map +0 -1
  54. package/dist/kv-codecs.d.ts +0 -6
  55. package/dist/kv-codecs.d.ts.map +0 -1
  56. package/dist/kv-codecs.js +0 -4
  57. package/dist/kv-codecs.js.map +0 -1
  58. package/dist/price/resolve.d.ts +0 -91
  59. package/dist/price/resolve.d.ts.map +0 -1
  60. package/dist/price/resolve.js +0 -227
  61. package/dist/price/resolve.js.map +0 -1
  62. package/dist/redis.d.ts +0 -13
  63. package/dist/redis.d.ts.map +0 -1
  64. package/dist/redis.js +0 -16
  65. package/dist/redis.js.map +0 -1
  66. package/dist/region-only.d.ts +0 -11
  67. package/dist/region-only.d.ts.map +0 -1
  68. package/dist/region-only.js +0 -49
  69. package/dist/region-only.js.map +0 -1
  70. package/dist/region.d.ts +0 -11
  71. package/dist/region.d.ts.map +0 -1
  72. package/dist/region.js +0 -47
  73. package/dist/region.js.map +0 -1
  74. package/dist/romania-bucharest-sectors.d.ts +0 -6
  75. package/dist/romania-bucharest-sectors.d.ts.map +0 -1
  76. package/dist/romania-bucharest-sectors.js +0 -27
  77. package/dist/romania-bucharest-sectors.js.map +0 -1
  78. package/dist/romania-counties.d.ts +0 -6
  79. package/dist/romania-counties.d.ts.map +0 -1
  80. package/dist/romania-counties.js +0 -171
  81. package/dist/romania-counties.js.map +0 -1
  82. package/dist/sms/provider.d.ts +0 -28
  83. package/dist/sms/provider.d.ts.map +0 -1
  84. package/dist/sms/provider.js +0 -50
  85. package/dist/sms/provider.js.map +0 -1
  86. package/dist/sms/segments.d.ts +0 -3
  87. package/dist/sms/segments.d.ts.map +0 -1
  88. package/dist/sms/segments.js +0 -33
  89. package/dist/sms/segments.js.map +0 -1
  90. package/dist/twilio/client.d.ts +0 -13
  91. package/dist/twilio/client.d.ts.map +0 -1
  92. package/dist/twilio/client.js +0 -26
  93. package/dist/twilio/client.js.map +0 -1
  94. package/dist/usage/index.d.ts +0 -34
  95. package/dist/usage/index.d.ts.map +0 -1
  96. package/dist/usage/index.js +0 -18
  97. package/dist/usage/index.js.map +0 -1
  98. package/dist/usage/policy.d.ts +0 -27
  99. package/dist/usage/policy.d.ts.map +0 -1
  100. package/dist/usage/policy.js +0 -17
  101. package/dist/usage/policy.js.map +0 -1
  102. package/dist/validation/log.d.ts +0 -10
  103. package/dist/validation/log.d.ts.map +0 -1
  104. package/dist/validation/log.js +0 -37
  105. package/dist/validation/log.js.map +0 -1
  106. package/dist/zod-form-builder.d.ts +0 -45
  107. package/dist/zod-form-builder.d.ts.map +0 -1
  108. package/dist/zod-form-builder.js +0 -216
  109. package/dist/zod-form-builder.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"airlines.js","sourceRoot":"","sources":["../src/airlines.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAChC,IAAI,EAAE,uBAAuB;IAC7B,IAAI,EAAE,aAAa;IACnB,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,mBAAmB;IACzB,IAAI,EAAE,sBAAsB;IAC5B,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,gBAAgB;IACtB,IAAI,EAAE,kBAAkB;IACxB,IAAI,EAAE,sBAAsB;IAC5B,IAAI,EAAE,mBAAmB;IACzB,IAAI,EAAE,aAAa;IACnB,IAAI,EAAE,yBAAyB;IAC/B,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,mBAAmB;IACzB,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE,mBAAmB;IACzB,IAAI,EAAE,gCAAgC;IACtC,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,4BAA4B;IAClC,IAAI,EAAE,eAAe;IACrB,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,aAAa;IACnB,IAAI,EAAE,gBAAgB;IACtB,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,6BAA6B;IACnC,IAAI,EAAE,OAAO;IACb,IAAI,EAAE,eAAe;IACrB,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE,oBAAoB;IAC1B,IAAI,EAAE,4BAA4B;IAClC,IAAI,EAAE,eAAe;IACrB,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,6BAA6B;IACnC,IAAI,EAAE,wBAAwB;IAC9B,IAAI,EAAE,cAAc;IACpB,IAAI,EAAE,cAAc;IACpB,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,oBAAoB;IAC1B,IAAI,EAAE,cAAc;IACpB,IAAI,EAAE,oBAAoB;IAC1B,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,aAAa;IACnB,IAAI,EAAE,mBAAmB;IACzB,IAAI,EAAE,kBAAkB;IACxB,IAAI,EAAE,eAAe;IACrB,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE,aAAa;IACnB,IAAI,EAAE,kBAAkB;IACxB,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE,sBAAsB;IAC5B,IAAI,EAAE,gBAAgB;IACtB,IAAI,EAAE,aAAa;IACnB,IAAI,EAAE,wBAAwB;IAC9B,IAAI,EAAE,qBAAqB;IAC3B,IAAI,EAAE,2BAA2B;IACjC,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,+BAA+B;IACrC,IAAI,EAAE,mBAAmB;IACzB,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,aAAa;IACnB,IAAI,EAAE,aAAa;IACnB,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE,cAAc;IACpB,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,cAAc;IACpB,IAAI,EAAE,aAAa;IACnB,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,eAAe;IACrB,IAAI,EAAE,cAAc;IACpB,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,oBAAoB;IAC1B,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,eAAe;IACrB,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,wBAAwB;IAC9B,IAAI,EAAE,gBAAgB;IACtB,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE,mBAAmB;IACzB,IAAI,EAAE,uBAAuB;IAC7B,IAAI,EAAE,kBAAkB;IACxB,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,mBAAmB;IACzB,IAAI,EAAE,eAAe;IACrB,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,wBAAwB;IAC9B,IAAI,EAAE,cAAc;IACpB,IAAI,EAAE,2BAA2B;IACjC,IAAI,EAAE,cAAc;IACpB,IAAI,EAAE,aAAa;IACnB,IAAI,EAAE,kBAAkB;IACxB,IAAI,EAAE,cAAc;IACpB,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,qBAAqB;IAC3B,IAAI,EAAE,kBAAkB;IACxB,IAAI,EAAE,qBAAqB;IAC3B,IAAI,EAAE,OAAO;IACb,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE,oBAAoB;IAC1B,IAAI,EAAE,yBAAyB;IAC/B,IAAI,EAAE,uBAAuB;IAC7B,IAAI,EAAE,wBAAwB;IAC9B,IAAI,EAAE,cAAc;IACpB,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE,8BAA8B;IACpC,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,8BAA8B;IACpC,IAAI,EAAE,wBAAwB;IAC9B,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,OAAO;IACb,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,cAAc;IACpB,IAAI,EAAE,wBAAwB;IAC9B,IAAI,EAAE,aAAa;IACnB,IAAI,EAAE,aAAa;IACnB,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,+CAA+C;IACrD,IAAI,EAAE,uBAAuB;IAC7B,IAAI,EAAE,uBAAuB;IAC7B,IAAI,EAAE,8BAA8B;IACpC,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE,sBAAsB;IAC5B,IAAI,EAAE,mBAAmB;IACzB,IAAI,EAAE,kBAAkB;IACxB,IAAI,EAAE,kCAAkC;IACxC,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,kBAAkB;IACxB,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,uBAAuB;IAC7B,IAAI,EAAE,qBAAqB;IAC3B,IAAI,EAAE,kDAAkD;IACxD,IAAI,EAAE,mBAAmB;IACzB,IAAI,EAAE,gBAAgB;IACtB,IAAI,EAAE,gBAAgB;IACtB,IAAI,EAAE,gBAAgB;IACtB,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,qBAAqB;IAC3B,IAAI,EAAE,gBAAgB;IACtB,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE,eAAe;IACrB,IAAI,EAAE,mBAAmB;IACzB,IAAI,EAAE,uBAAuB;IAC7B,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,sBAAsB;IAC5B,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE,aAAa;IACnB,IAAI,EAAE,yBAAyB;IAC/B,IAAI,EAAE,eAAe;IACrB,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,cAAc;IACpB,IAAI,EAAE,kBAAkB;IACxB,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,cAAc;IACpB,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,kBAAkB;IACxB,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE,eAAe;IACrB,IAAI,EAAE,uBAAuB;IAC7B,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,kBAAkB;IACxB,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,cAAc;IACpB,IAAI,EAAE,aAAa;IACnB,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,sBAAsB;IAC5B,IAAI,EAAE,oBAAoB;IAC1B,IAAI,EAAE,aAAa;IACnB,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE,kBAAkB;IACxB,IAAI,EAAE,cAAc;IACpB,IAAI,EAAE,qBAAqB;IAC3B,IAAI,EAAE,eAAe;IACrB,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,aAAa;IACnB,IAAI,EAAE,2BAA2B;IACjC,IAAI,EAAE,kBAAkB;IACxB,IAAI,EAAE,6CAA6C;IACnD,IAAI,EAAE,cAAc;IACpB,IAAI,EAAE,kBAAkB;IACxB,IAAI,EAAE,aAAa;IACnB,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE,oBAAoB;IAC1B,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,aAAa;IACnB,IAAI,EAAE,yBAAyB;IAC/B,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,OAAO;IACb,IAAI,EAAE,OAAO;IACb,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,mBAAmB;IACzB,IAAI,EAAE,oBAAoB;IAC1B,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,mBAAmB;IACzB,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,cAAc;IACpB,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,eAAe;IACrB,IAAI,EAAE,gBAAgB;IACtB,IAAI,EAAE,aAAa;IACnB,IAAI,EAAE,cAAc;IACpB,IAAI,EAAE,gBAAgB;IACtB,IAAI,EAAE,wBAAwB;IAC9B,IAAI,EAAE,gBAAgB;IACtB,IAAI,EAAE,aAAa;IACnB,IAAI,EAAE,kBAAkB;IACxB,IAAI,EAAE,uBAAuB;IAC7B,IAAI,EAAE,0BAA0B;IAChC,IAAI,EAAE,gCAAgC;IACtC,IAAI,EAAE,yBAAyB;IAC/B,IAAI,EAAE,gBAAgB;IACtB,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,sBAAsB;IAC5B,IAAI,EAAE,aAAa;IACnB,IAAI,EAAE,aAAa;IACnB,IAAI,EAAE,mBAAmB;IACzB,IAAI,EAAE,cAAc;IACpB,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,4CAA4C;IAClD,IAAI,EAAE,kBAAkB;IACxB,IAAI,EAAE,gCAAgC;IACtC,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,kBAAkB;IACxB,IAAI,EAAE,eAAe;IACrB,IAAI,EAAE,gBAAgB;IACtB,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE,cAAc;IACpB,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,0BAA0B;IAChC,IAAI,EAAE,cAAc;IACpB,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE,aAAa;IACnB,IAAI,EAAE,8BAA8B;IACpC,IAAI,EAAE,sBAAsB;IAC5B,IAAI,EAAE,kBAAkB;IACxB,IAAI,EAAE,oBAAoB;IAC1B,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE,4BAA4B;IAClC,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,kBAAkB;IACxB,IAAI,EAAE,+BAA+B;IACrC,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,qBAAqB;IAC3B,IAAI,EAAE,aAAa;IACnB,IAAI,EAAE,kBAAkB;IACxB,IAAI,EAAE,eAAe;IACrB,IAAI,EAAE,0BAA0B;IAChC,IAAI,EAAE,oBAAoB;IAC1B,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE,2BAA2B;IACjC,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,sBAAsB;IAC5B,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,gCAAgC;IACtC,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,8BAA8B;IACpC,IAAI,EAAE,2BAA2B;IACjC,IAAI,EAAE,wBAAwB;IAC9B,IAAI,EAAE,mCAAmC;IACzC,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE,OAAO;IACb,IAAI,EAAE,2BAA2B;IACjC,IAAI,EAAE,mBAAmB;IACzB,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,kBAAkB;IACxB,IAAI,EAAE,2BAA2B;IACjC,IAAI,EAAE,wBAAwB;IAC9B,IAAI,EAAE,wBAAwB;IAC9B,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,6BAA6B;IACnC,IAAI,EAAE,kBAAkB;IACxB,IAAI,EAAE,kBAAkB;IACxB,IAAI,EAAE,gBAAgB;IACtB,IAAI,EAAE,aAAa;IACnB,IAAI,EAAE,4BAA4B;IAClC,IAAI,EAAE,aAAa;IACnB,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,mBAAmB;IACzB,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,sBAAsB;IAC5B,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,cAAc;IACpB,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE,mBAAmB;IACzB,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,oBAAoB;IAC1B,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE,qBAAqB;IAC3B,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,mBAAmB;IACzB,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,kBAAkB;IACxB,IAAI,EAAE,gBAAgB;IACtB,IAAI,EAAE,2BAA2B;IACjC,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE,aAAa;IACnB,IAAI,EAAE,kBAAkB;IACxB,IAAI,EAAE,0BAA0B;IAChC,IAAI,EAAE,yBAAyB;IAC/B,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,gBAAgB;IACtB,IAAI,EAAE,gBAAgB;IACtB,IAAI,EAAE,cAAc;IACpB,IAAI,EAAE,0BAA0B;IAChC,IAAI,EAAE,sBAAsB;IAC5B,IAAI,EAAE,kBAAkB;IACxB,IAAI,EAAE,oBAAoB;IAC1B,IAAI,EAAE,gCAAgC;IACtC,IAAI,EAAE,cAAc;IACpB,IAAI,EAAE,mBAAmB;IACzB,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE,gBAAgB;IACtB,IAAI,EAAE,sBAAsB;IAC5B,IAAI,EAAE,wBAAwB;IAC9B,IAAI,EAAE,wBAAwB;IAC9B,IAAI,EAAE,sBAAsB;IAC5B,IAAI,EAAE,yBAAyB;IAC/B,IAAI,EAAE,uBAAuB;IAC7B,IAAI,EAAE,2BAA2B;IACjC,IAAI,EAAE,uBAAuB;IAC7B,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE,oBAAoB;IAC1B,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE,cAAc;IACpB,IAAI,EAAE,wBAAwB;IAC9B,IAAI,EAAE,qBAAqB;IAC3B,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,aAAa;IACnB,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,4BAA4B;IAClC,IAAI,EAAE,cAAc;IACpB,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,kBAAkB;IACxB,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,mBAAmB;IACzB,IAAI,EAAE,qBAAqB;IAC3B,IAAI,EAAE,wBAAwB;IAC9B,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,eAAe;IACrB,IAAI,EAAE,2BAA2B;IACjC,IAAI,EAAE,mBAAmB;IACzB,IAAI,EAAE,yBAAyB;IAC/B,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,oBAAoB;IAC1B,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,kBAAkB;IACxB,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE,oBAAoB;IAC1B,IAAI,EAAE,gBAAgB;IACtB,IAAI,EAAE,yBAAyB;IAC/B,IAAI,EAAE,gBAAgB;IACtB,IAAI,EAAE,kBAAkB;IACxB,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,cAAc;IACpB,IAAI,EAAE,0BAA0B;IAChC,IAAI,EAAE,mBAAmB;IACzB,IAAI,EAAE,aAAa;IACnB,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,gBAAgB;IACtB,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE,eAAe;IACrB,IAAI,EAAE,iCAAiC;IACvC,IAAI,EAAE,kBAAkB;IACxB,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,wBAAwB;IAC9B,IAAI,EAAE,qBAAqB;IAC3B,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,sCAAsC;IAC5C,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,2BAA2B;IACjC,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,yBAAyB;IAC/B,IAAI,EAAE,yBAAyB;IAC/B,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,gBAAgB;IACtB,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE,yBAAyB;IAC/B,IAAI,EAAE,sBAAsB;IAC5B,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE,mBAAmB;IACzB,IAAI,EAAE,cAAc;IACpB,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,uBAAuB;IAC7B,IAAI,EAAE,wBAAwB;IAC9B,IAAI,EAAE,mBAAmB;IACzB,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE,iCAAiC;IACvC,IAAI,EAAE,cAAc;IACpB,IAAI,EAAE,mBAAmB;IACzB,IAAI,EAAE,+BAA+B;IACrC,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,oBAAoB;IAC1B,IAAI,EAAE,mBAAmB;IACzB,IAAI,EAAE,cAAc;IACpB,IAAI,EAAE,qBAAqB;IAC3B,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,kBAAkB;IACxB,IAAI,EAAE,gBAAgB;IACtB,IAAI,EAAE,wBAAwB;IAC9B,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,wBAAwB;IAC9B,IAAI,EAAE,eAAe;IACrB,IAAI,EAAE,cAAc;IACpB,IAAI,EAAE,oBAAoB;IAC1B,IAAI,EAAE,mBAAmB;IACzB,IAAI,EAAE,uBAAuB;IAC7B,IAAI,EAAE,qBAAqB;IAC3B,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,2BAA2B;IACjC,IAAI,EAAE,cAAc;IACpB,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,cAAc;IACpB,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE,0CAA0C;IAChD,IAAI,EAAE,gBAAgB;IACtB,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,mBAAmB;IACzB,IAAI,EAAE,6BAA6B;IACnC,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,sBAAsB;IAC5B,IAAI,EAAE,aAAa;IACnB,IAAI,EAAE,aAAa;IACnB,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,4BAA4B;IAClC,IAAI,EAAE,oCAAoC;IAC1C,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,kBAAkB;IACxB,IAAI,EAAE,eAAe;IACrB,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,OAAO;IACb,IAAI,EAAE,gBAAgB;IACtB,IAAI,EAAE,kBAAkB;IACxB,IAAI,EAAE,sCAAsC;IAC5C,IAAI,EAAE,8BAA8B;IACpC,IAAI,EAAE,aAAa;IACnB,IAAI,EAAE,+BAA+B;IACrC,IAAI,EAAE,mBAAmB;IACzB,IAAI,EAAE,yBAAyB;IAC/B,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,aAAa;IACnB,IAAI,EAAE,wBAAwB;IAC9B,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,eAAe;IACrB,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,cAAc;IACpB,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,uBAAuB;IAC7B,IAAI,EAAE,+BAA+B;IACrC,IAAI,EAAE,gBAAgB;IACtB,IAAI,EAAE,kBAAkB;IACxB,IAAI,EAAE,aAAa;IACnB,IAAI,EAAE,kBAAkB;IACxB,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,aAAa;IACnB,IAAI,EAAE,8BAA8B;IACpC,IAAI,EAAE,eAAe;IACrB,IAAI,EAAE,8BAA8B;IACpC,IAAI,EAAE,eAAe;IACrB,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE,sBAAsB;IAC5B,IAAI,EAAE,uBAAuB;IAC7B,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE,kBAAkB;IACxB,IAAI,EAAE,4BAA4B;IAClC,IAAI,EAAE,4BAA4B;IAClC,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE,oCAAoC;IAC1C,IAAI,EAAE,2BAA2B;IACjC,IAAI,EAAE,uBAAuB;IAC7B,IAAI,EAAE,8BAA8B;IACpC,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE,sBAAsB;IAC5B,IAAI,EAAE,mBAAmB;IACzB,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,0BAA0B;IAChC,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,gBAAgB;IACtB,IAAI,EAAE,sBAAsB;IAC5B,IAAI,EAAE,kBAAkB;IACxB,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,yBAAyB;IAC/B,IAAI,EAAE,oBAAoB;IAC1B,IAAI,EAAE,2BAA2B;IACjC,IAAI,EAAE,2BAA2B;IACjC,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,aAAa;IACnB,IAAI,EAAE,sBAAsB;IAC5B,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,aAAa;IACnB,IAAI,EAAE,cAAc;IACpB,IAAI,EAAE,4BAA4B;IAClC,IAAI,EAAE,2BAA2B;IACjC,IAAI,EAAE,eAAe;IACrB,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE,gBAAgB;IACtB,IAAI,EAAE,eAAe;IACrB,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE,mBAAmB;IACzB,IAAI,EAAE,qBAAqB;IAC3B,IAAI,EAAE,uBAAuB;IAC7B,IAAI,EAAE,uBAAuB;IAC7B,IAAI,EAAE,4BAA4B;IAClC,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,qBAAqB;IAC3B,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,sBAAsB;IAC5B,IAAI,EAAE,eAAe;IACrB,IAAI,EAAE,sBAAsB;IAC5B,IAAI,EAAE,kBAAkB;IACxB,IAAI,EAAE,eAAe;IACrB,IAAI,EAAE,uBAAuB;IAC7B,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,2CAA2C;IACjD,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,OAAO;IACb,IAAI,EAAE,aAAa;IACnB,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,sBAAsB;IAC5B,IAAI,EAAE,6CAA6C;IACnD,IAAI,EAAE,6BAA6B;IACnC,IAAI,EAAE,oBAAoB;IAC1B,IAAI,EAAE,yBAAyB;IAC/B,IAAI,EAAE,oBAAoB;IAC1B,IAAI,EAAE,sBAAsB;IAC5B,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,aAAa;IACnB,IAAI,EAAE,aAAa;IACnB,IAAI,EAAE,cAAc;IACpB,IAAI,EAAE,sBAAsB;IAC5B,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE,uBAAuB;IAC7B,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE,sBAAsB;IAC5B,IAAI,EAAE,mBAAmB;IACzB,IAAI,EAAE,qBAAqB;IAC3B,IAAI,EAAE,kBAAkB;IACxB,IAAI,EAAE,kBAAkB;IACxB,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,aAAa;IACnB,IAAI,EAAE,gBAAgB;IACtB,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,gBAAgB;IACtB,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE,gBAAgB;IACtB,IAAI,EAAE,aAAa;IACnB,IAAI,EAAE,eAAe;IACrB,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,8BAA8B;IACpC,IAAI,EAAE,yBAAyB;IAC/B,IAAI,EAAE,eAAe;IACrB,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,uBAAuB;IAC7B,IAAI,EAAE,oBAAoB;IAC1B,IAAI,EAAE,gBAAgB;IACtB,IAAI,EAAE,qBAAqB;IAC3B,IAAI,EAAE,qBAAqB;IAC3B,IAAI,EAAE,qBAAqB;IAC3B,IAAI,EAAE,gBAAgB;IACtB,IAAI,EAAE,OAAO;IACb,IAAI,EAAE,yBAAyB;IAC/B,IAAI,EAAE,aAAa;IACnB,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE,cAAc;IACpB,IAAI,EAAE,eAAe;IACrB,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,eAAe;IACrB,IAAI,EAAE,qBAAqB;IAC3B,IAAI,EAAE,oBAAoB;IAC1B,IAAI,EAAE,kBAAkB;IACxB,IAAI,EAAE,cAAc;IACpB,IAAI,EAAE,mBAAmB;IACzB,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,wBAAwB;IAC9B,IAAI,EAAE,+BAA+B;IACrC,IAAI,EAAE,sBAAsB;IAC5B,IAAI,EAAE,6BAA6B;IACnC,IAAI,EAAE,uBAAuB;IAC7B,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,uBAAuB;IAC7B,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE,8BAA8B;IACpC,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE,oBAAoB;IAC1B,IAAI,EAAE,mBAAmB;IACzB,IAAI,EAAE,oBAAoB;IAC1B,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,eAAe;IACrB,IAAI,EAAE,kBAAkB;IACxB,IAAI,EAAE,eAAe;IACrB,IAAI,EAAE,uBAAuB;IAC7B,IAAI,EAAE,aAAa;IACnB,IAAI,EAAE,qBAAqB;IAC3B,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE,kBAAkB;IACxB,IAAI,EAAE,mBAAmB;IACzB,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,yBAAyB;IAC/B,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,mBAAmB;IACzB,IAAI,EAAE,gBAAgB;IACtB,IAAI,EAAE,0BAA0B;IAChC,IAAI,EAAE,kBAAkB;IACxB,IAAI,EAAE,OAAO;IACb,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,mBAAmB;IACzB,IAAI,EAAE,+BAA+B;IACrC,IAAI,EAAE,0BAA0B;IAChC,IAAI,EAAE,mBAAmB;IACzB,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,4BAA4B;IAClC,IAAI,EAAE,eAAe;IACrB,IAAI,EAAE,gBAAgB;IACtB,IAAI,EAAE,sBAAsB;IAC5B,IAAI,EAAE,sBAAsB;IAC5B,IAAI,EAAE,kBAAkB;IACxB,IAAI,EAAE,aAAa;IACnB,IAAI,EAAE,oBAAoB;IAC1B,IAAI,EAAE,gBAAgB;IACtB,IAAI,EAAE,qBAAqB;IAC3B,IAAI,EAAE,cAAc;IACpB,IAAI,EAAE,mBAAmB;IACzB,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,mBAAmB;IACzB,IAAI,EAAE,kBAAkB;IACxB,IAAI,EAAE,gBAAgB;IACtB,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE,mBAAmB;IACzB,IAAI,EAAE,wBAAwB;IAC9B,IAAI,EAAE,mBAAmB;IACzB,IAAI,EAAE,yBAAyB;IAC/B,IAAI,EAAE,2BAA2B;IACjC,IAAI,EAAE,oBAAoB;IAC1B,IAAI,EAAE,qBAAqB;IAC3B,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,gBAAgB;IACtB,IAAI,EAAE,sBAAsB;IAC5B,IAAI,EAAE,cAAc;IACpB,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,uBAAuB;IAC7B,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,kCAAkC;IACxC,IAAI,EAAE,sBAAsB;IAC5B,IAAI,EAAE,oBAAoB;IAC1B,IAAI,EAAE,kBAAkB;IACxB,IAAI,EAAE,uBAAuB;IAC7B,IAAI,EAAE,6BAA6B;IACnC,IAAI,EAAE,qBAAqB;IAC3B,IAAI,EAAE,oBAAoB;IAC1B,IAAI,EAAE,cAAc;IACpB,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE,mBAAmB;IACzB,IAAI,EAAE,0BAA0B;IAChC,IAAI,EAAE,kBAAkB;IACxB,IAAI,EAAE,kBAAkB;IACxB,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,cAAc;IACpB,IAAI,EAAE,mBAAmB;IACzB,IAAI,EAAE,sBAAsB;IAC5B,IAAI,EAAE,qBAAqB;IAC3B,IAAI,EAAE,aAAa;IACnB,IAAI,EAAE,gBAAgB;IACtB,IAAI,EAAE,mBAAmB;IACzB,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,OAAO;IACb,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,kBAAkB;IACxB,IAAI,EAAE,0BAA0B;IAChC,IAAI,EAAE,kCAAkC;IACxC,IAAI,EAAE,uBAAuB;IAC7B,IAAI,EAAE,iCAAiC;IACvC,IAAI,EAAE,sBAAsB;IAC5B,IAAI,EAAE,eAAe;IACrB,IAAI,EAAE,sBAAsB;IAC5B,IAAI,EAAE,mBAAmB;IACzB,IAAI,EAAE,8BAA8B;IACpC,IAAI,EAAE,mBAAmB;IACzB,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,qBAAqB;IAC3B,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,gBAAgB;IACtB,IAAI,EAAE,mBAAmB;IACzB,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE,qBAAqB;IAC3B,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE,aAAa;IACnB,IAAI,EAAE,eAAe;IACrB,IAAI,EAAE,kBAAkB;IACxB,IAAI,EAAE,mBAAmB;IACzB,IAAI,EAAE,2BAA2B;IACjC,IAAI,EAAE,+BAA+B;IACrC,IAAI,EAAE,kBAAkB;IACxB,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,eAAe;IACrB,IAAI,EAAE,OAAO;IACb,IAAI,EAAE,gCAAgC;IACtC,IAAI,EAAE,kBAAkB;IACxB,IAAI,EAAE,oBAAoB;IAC1B,IAAI,EAAE,kBAAkB;IACxB,IAAI,EAAE,sBAAsB;IAC5B,IAAI,EAAE,mBAAmB;IACzB,IAAI,EAAE,0BAA0B;IAChC,IAAI,EAAE,mBAAmB;IACzB,IAAI,EAAE,eAAe;IACrB,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE,gBAAgB;IACtB,IAAI,EAAE,uBAAuB;IAC7B,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE,sBAAsB;IAC5B,IAAI,EAAE,gBAAgB;IACtB,IAAI,EAAE,kBAAkB;IACxB,IAAI,EAAE,kBAAkB;IACxB,IAAI,EAAE,6BAA6B;IACnC,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,wCAAwC;IAC9C,IAAI,EAAE,oBAAoB;IAC1B,IAAI,EAAE,oBAAoB;IAC1B,IAAI,EAAE,eAAe;IACrB,IAAI,EAAE,oBAAoB;IAC1B,IAAI,EAAE,uBAAuB;IAC7B,IAAI,EAAE,0BAA0B;IAChC,IAAI,EAAE,2BAA2B;IACjC,IAAI,EAAE,eAAe;IACrB,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,aAAa;IACnB,IAAI,EAAE,mBAAmB;IACzB,IAAI,EAAE,kBAAkB;IACxB,IAAI,EAAE,oBAAoB;IAC1B,IAAI,EAAE,sBAAsB;IAC5B,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,cAAc;IACpB,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE,kBAAkB;IACxB,IAAI,EAAE,cAAc;IACpB,IAAI,EAAE,0BAA0B;IAChC,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,mBAAmB;IACzB,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,uBAAuB;IAC7B,IAAI,EAAE,qBAAqB;IAC3B,IAAI,EAAE,eAAe;IACrB,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,oBAAoB;IAC1B,IAAI,EAAE,yBAAyB;IAC/B,IAAI,EAAE,kBAAkB;IACxB,IAAI,EAAE,+BAA+B;IACrC,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,0BAA0B;IAChC,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE,mBAAmB;IACzB,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE,kBAAkB;IACxB,IAAI,EAAE,mBAAmB;IACzB,IAAI,EAAE,mBAAmB;IACzB,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,mBAAmB;IACzB,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,eAAe;IACrB,IAAI,EAAE,OAAO;IACb,IAAI,EAAE,cAAc;IACpB,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,OAAO;IACb,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE,wBAAwB;IAC9B,IAAI,EAAE,aAAa;IACnB,IAAI,EAAE,kBAAkB;IACxB,IAAI,EAAE,kBAAkB;IACxB,IAAI,EAAE,0BAA0B;IAChC,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE,mBAAmB;IACzB,IAAI,EAAE,kBAAkB;IACxB,IAAI,EAAE,sCAAsC;IAC5C,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,OAAO;IACb,IAAI,EAAE,aAAa;IACnB,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,cAAc;IACpB,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,aAAa;IACnB,IAAI,EAAE,gBAAgB;IACtB,IAAI,EAAE,aAAa;IACnB,IAAI,EAAE,eAAe;IACrB,IAAI,EAAE,sBAAsB;IAC5B,IAAI,EAAE,4BAA4B;IAClC,IAAI,EAAE,kBAAkB;IACxB,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,kBAAkB;IACxB,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,OAAO;IACb,IAAI,EAAE,qBAAqB;IAC3B,IAAI,EAAE,mBAAmB;IACzB,IAAI,EAAE,mBAAmB;IACzB,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,oBAAoB;IAC1B,IAAI,EAAE,eAAe;IACrB,IAAI,EAAE,oBAAoB;IAC1B,IAAI,EAAE,oBAAoB;IAC1B,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,eAAe;IACrB,IAAI,EAAE,sBAAsB;IAC5B,IAAI,EAAE,kBAAkB;IACxB,IAAI,EAAE,oBAAoB;IAC1B,IAAI,EAAE,sBAAsB;IAC5B,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,oCAAoC;IAC1C,IAAI,EAAE,OAAO;IACb,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,oBAAoB;IAC1B,IAAI,EAAE,gBAAgB;IACtB,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,kBAAkB;IACxB,IAAI,EAAE,kBAAkB;IACxB,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE,gBAAgB;IACtB,IAAI,EAAE,eAAe;IACrB,IAAI,EAAE,aAAa;IACnB,IAAI,EAAE,yBAAyB;IAC/B,IAAI,EAAE,uBAAuB;IAC7B,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,eAAe;IACrB,IAAI,EAAE,gBAAgB;IACtB,IAAI,EAAE,oBAAoB;IAC1B,IAAI,EAAE,gCAAgC;IACtC,IAAI,EAAE,OAAO;IACb,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,sCAAsC;IAC5C,IAAI,EAAE,kBAAkB;IACxB,IAAI,EAAE,cAAc;IACpB,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,sBAAsB;IAC5B,IAAI,EAAE,gBAAgB;IACtB,IAAI,EAAE,yBAAyB;IAC/B,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE,aAAa;IACnB,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE,mBAAmB;IACzB,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,cAAc;IACpB,IAAI,EAAE,gBAAgB;IACtB,IAAI,EAAE,aAAa;IACnB,IAAI,EAAE,uBAAuB;IAC7B,IAAI,EAAE,wBAAwB;IAC9B,IAAI,EAAE,gBAAgB;IACtB,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,cAAc;IACpB,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,cAAc;IACpB,IAAI,EAAE,mBAAmB;IACzB,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,eAAe;IACrB,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE,mBAAmB;IACzB,IAAI,EAAE,gBAAgB;IACtB,IAAI,EAAE,uBAAuB;IAC7B,IAAI,EAAE,oCAAoC;IAC1C,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,gBAAgB;IACtB,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE,eAAe;CACf,CAAA;AAUV,MAAM,eAAe,GAAG,MAAM,CAAC,OAAO,CAAC,oBAAoB,CAA4B,CAAA;AAEvF,MAAM,CAAC,MAAM,QAAQ,GAAuB,eAAe;KACxD,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IACtB,EAAE,EAAE,IAAI;IACR,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,IAAI;IACV,IAAI;IACJ,OAAO,EAAE,IAAI;CACd,CAAC,CAAC;KACF,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAA;AAErD,MAAM,UAAU,gBAAgB,CAAC,IAAoB;IACnD,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;IAChD,MAAM,WAAW,GAAG,oBAAoB,CAAC,cAAmD,CAAC,CAAA;IAC7F,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,OAAO;QACL,EAAE,EAAE,cAAc;QAClB,IAAI,EAAE,cAAc;QACpB,IAAI,EAAE,IAAI;QACV,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,IAAI;KACd,CAAA;AACH,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAAqB,EAAE,KAAK,GAAG,EAAE;IAC9D,MAAM,eAAe,GAAG,KAAK,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;IACnD,MAAM,UAAU,GAAG,eAAe;QAChC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE;YAC1B,MAAM,SAAS,GACb,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC;gBACpD,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;YAC/E,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAA;YACtE,OAAO,SAAS,IAAI,SAAS,CAAA;QAC/B,CAAC,CAAC;QACJ,CAAC,CAAC,QAAQ,CAAA;IAEZ,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;AACnC,CAAC"}
@@ -1,89 +0,0 @@
1
- /**
2
- * API Key Analytics Event Utilities
3
- *
4
- * Functions for tracking API key lifecycle and usage events to ClickHouse
5
- */
6
- export interface ApiKeyLifecycleEvent {
7
- eventType: 'created' | 'updated' | 'revoked' | 'expired' | 'purged';
8
- apiKeyId: string;
9
- keyPrefix: string;
10
- keySuffix: string;
11
- eventActor: string;
12
- keyName: string;
13
- scopes: string[];
14
- expiresAt: string | null;
15
- status: 'active' | 'revoked' | 'expired' | 'purged';
16
- changes?: Record<string, any>;
17
- ipAddress?: string;
18
- userAgent?: string;
19
- }
20
- export interface ApiKeyUsageEvent {
21
- apiKeyId: string;
22
- keyPrefix: string;
23
- method: string;
24
- endpoint: string;
25
- endpointPattern: string;
26
- statusCode: number;
27
- responseTimeMs: number;
28
- requiredScopes: string[];
29
- scopeCheckPassed: boolean;
30
- rateLimitHit: boolean;
31
- ipAddress?: string;
32
- userAgent?: string;
33
- region?: 'us' | 'eu' | 'unknown';
34
- }
35
- /**
36
- * Format an API key lifecycle event for ClickHouse insertion
37
- */
38
- export declare function formatApiKeyLifecycleEvent(event: ApiKeyLifecycleEvent): {
39
- api_key_id: string;
40
- key_prefix: string;
41
- key_suffix: string;
42
- event_type: "created" | "updated" | "revoked" | "expired" | "purged";
43
- event_actor: string;
44
- key_name: string;
45
- scopes: string[];
46
- expires_at: string | null;
47
- status: "active" | "revoked" | "expired" | "purged";
48
- changes_json: string;
49
- ip_address: string | null;
50
- user_agent: string | null;
51
- };
52
- /**
53
- * Format an API key usage event for ClickHouse insertion
54
- */
55
- export declare function formatApiKeyUsageEvent(event: ApiKeyUsageEvent): {
56
- api_key_id: string;
57
- key_prefix: string;
58
- method: string;
59
- endpoint: string;
60
- endpoint_pattern: string;
61
- status_code: number;
62
- response_time_ms: number;
63
- required_scopes: string[];
64
- scope_check_passed: number;
65
- rate_limit_hit: number;
66
- ip_address: string | null;
67
- user_agent: string | null;
68
- region: "eu" | "us" | "unknown";
69
- };
70
- /**
71
- * Normalize endpoint path to a pattern for aggregation
72
- * Examples:
73
- * /v1/products/abc-123 -> /v1/products/:id
74
- * /v1/booking/xyz-456/progress -> /v1/booking/:id/progress
75
- */
76
- export declare function normalizeEndpointPattern(path: string): string;
77
- /**
78
- * Extract IP address from request headers (Cloudflare Workers)
79
- */
80
- export declare function extractIpAddress(request: Request): string | undefined;
81
- /**
82
- * Extract user agent from request
83
- */
84
- export declare function extractUserAgent(request: Request): string | undefined;
85
- /**
86
- * Determine region from Cloudflare headers
87
- */
88
- export declare function extractRegion(request: Request): 'us' | 'eu' | 'unknown';
89
- //# sourceMappingURL=api-key-events.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"api-key-events.d.ts","sourceRoot":"","sources":["../../src/analytics/api-key-events.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAA;IACnE,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,MAAM,EAAE,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAA;IACnD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;IAChB,eAAe,EAAE,MAAM,CAAA;IACvB,UAAU,EAAE,MAAM,CAAA;IAClB,cAAc,EAAE,MAAM,CAAA;IACtB,cAAc,EAAE,MAAM,EAAE,CAAA;IACxB,gBAAgB,EAAE,OAAO,CAAA;IACzB,YAAY,EAAE,OAAO,CAAA;IACrB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,SAAS,CAAA;CACjC;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,oBAAoB;;;;;;;;;;;;;EAerE;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,gBAAgB;;;;;;;;;;;;;;EAgB7D;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAc7D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAOrE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAErE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,GAAG,IAAI,GAAG,SAAS,CAqBvE"}
@@ -1,99 +0,0 @@
1
- /**
2
- * API Key Analytics Event Utilities
3
- *
4
- * Functions for tracking API key lifecycle and usage events to ClickHouse
5
- */
6
- /**
7
- * Format an API key lifecycle event for ClickHouse insertion
8
- */
9
- export function formatApiKeyLifecycleEvent(event) {
10
- return {
11
- api_key_id: event.apiKeyId,
12
- key_prefix: event.keyPrefix,
13
- key_suffix: event.keySuffix,
14
- event_type: event.eventType,
15
- event_actor: event.eventActor,
16
- key_name: event.keyName,
17
- scopes: event.scopes,
18
- expires_at: event.expiresAt,
19
- status: event.status,
20
- changes_json: event.changes ? JSON.stringify(event.changes) : '',
21
- ip_address: event.ipAddress || null,
22
- user_agent: event.userAgent || null,
23
- };
24
- }
25
- /**
26
- * Format an API key usage event for ClickHouse insertion
27
- */
28
- export function formatApiKeyUsageEvent(event) {
29
- return {
30
- api_key_id: event.apiKeyId,
31
- key_prefix: event.keyPrefix,
32
- method: event.method,
33
- endpoint: event.endpoint,
34
- endpoint_pattern: event.endpointPattern,
35
- status_code: event.statusCode,
36
- response_time_ms: event.responseTimeMs,
37
- required_scopes: event.requiredScopes,
38
- scope_check_passed: event.scopeCheckPassed ? 1 : 0,
39
- rate_limit_hit: event.rateLimitHit ? 1 : 0,
40
- ip_address: event.ipAddress || null,
41
- user_agent: event.userAgent || null,
42
- region: event.region || 'unknown',
43
- };
44
- }
45
- /**
46
- * Normalize endpoint path to a pattern for aggregation
47
- * Examples:
48
- * /v1/products/abc-123 -> /v1/products/:id
49
- * /v1/booking/xyz-456/progress -> /v1/booking/:id/progress
50
- */
51
- export function normalizeEndpointPattern(path) {
52
- // UUID pattern
53
- const uuidRegex = /[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/gi;
54
- let normalized = path.replace(uuidRegex, ':id');
55
- // Numeric IDs
56
- const numericIdRegex = /\/\d+(?=\/|$)/g;
57
- normalized = normalized.replace(numericIdRegex, '/:id');
58
- // Hex codes (like booking codes)
59
- const hexCodeRegex = /\/[0-9A-F]{8,}(?=\/|$)/g;
60
- normalized = normalized.replace(hexCodeRegex, '/:code');
61
- return normalized;
62
- }
63
- /**
64
- * Extract IP address from request headers (Cloudflare Workers)
65
- */
66
- export function extractIpAddress(request) {
67
- return (request.headers.get('cf-connecting-ip') ||
68
- request.headers.get('x-forwarded-for')?.split(',')[0]?.trim() ||
69
- request.headers.get('x-real-ip') ||
70
- undefined);
71
- }
72
- /**
73
- * Extract user agent from request
74
- */
75
- export function extractUserAgent(request) {
76
- return request.headers.get('user-agent') || undefined;
77
- }
78
- /**
79
- * Determine region from Cloudflare headers
80
- */
81
- export function extractRegion(request) {
82
- const cfRegion = request.headers.get('cf-ipcountry');
83
- // EU countries
84
- const euCountries = [
85
- 'AT', 'BE', 'BG', 'HR', 'CY', 'CZ', 'DK', 'EE', 'FI', 'FR',
86
- 'DE', 'GR', 'HU', 'IE', 'IT', 'LV', 'LT', 'LU', 'MT', 'NL',
87
- 'PL', 'PT', 'RO', 'SK', 'SI', 'ES', 'SE', 'GB', 'IS', 'LI',
88
- 'NO', 'CH'
89
- ];
90
- if (cfRegion && euCountries.includes(cfRegion)) {
91
- return 'eu';
92
- }
93
- // North American countries default to US
94
- if (cfRegion && ['US', 'CA', 'MX'].includes(cfRegion)) {
95
- return 'us';
96
- }
97
- return 'unknown';
98
- }
99
- //# sourceMappingURL=api-key-events.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"api-key-events.js","sourceRoot":"","sources":["../../src/analytics/api-key-events.ts"],"names":[],"mappings":"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"}
@@ -1,40 +0,0 @@
1
- /**
2
- * Client-safe API Key Utilities
3
- *
4
- * These functions don't use Node.js crypto and are safe to import in client components.
5
- * For crypto operations (generation, hashing, verification), use api-keys.ts
6
- */
7
- /**
8
- * Mask an API key for display
9
- * Shows: "voy_live***abc123" (first 8 + last 6 chars)
10
- *
11
- * @param key - Full API key or just prefix/suffix
12
- * @returns Masked key for display
13
- */
14
- export declare function maskApiKey(key: string): string;
15
- export declare function maskApiKey(prefix: string, suffix: string): string;
16
- /**
17
- * Validate API key format
18
- *
19
- * @param key - The API key to validate
20
- * @returns True if format is valid
21
- */
22
- export declare function isValidApiKeyFormat(key: string): boolean;
23
- /**
24
- * Extract the environment from an API key
25
- *
26
- * @param key - The API key
27
- * @returns The environment ("live" or "sandbox") or null if invalid
28
- */
29
- export declare function getApiKeyEnvironment(key: string): "live" | "sandbox" | null;
30
- /**
31
- * Extract prefix and suffix from full API key
32
- *
33
- * @param key - The full API key
34
- * @returns Object with prefix and suffix
35
- */
36
- export declare function extractApiKeyParts(key: string): {
37
- prefix: string;
38
- suffix: string;
39
- };
40
- //# sourceMappingURL=api-keys-client.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"api-keys-client.d.ts","sourceRoot":"","sources":["../src/api-keys-client.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;AAC/C,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAAA;AAalE;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAWxD;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,IAAI,CAI3E;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAKlF"}
@@ -1,63 +0,0 @@
1
- /**
2
- * Client-safe API Key Utilities
3
- *
4
- * These functions don't use Node.js crypto and are safe to import in client components.
5
- * For crypto operations (generation, hashing, verification), use api-keys.ts
6
- */
7
- const API_KEY_PREFIXES = ["voy_live", "voy_test"];
8
- export function maskApiKey(keyOrPrefix, suffix) {
9
- if (suffix) {
10
- // Called with (prefix, suffix)
11
- return `${keyOrPrefix}***${suffix}`;
12
- }
13
- else {
14
- // Called with full key
15
- const prefix = keyOrPrefix.slice(0, 8);
16
- const keySuffix = keyOrPrefix.slice(-6);
17
- return `${prefix}***${keySuffix}`;
18
- }
19
- }
20
- /**
21
- * Validate API key format
22
- *
23
- * @param key - The API key to validate
24
- * @returns True if format is valid
25
- */
26
- export function isValidApiKeyFormat(key) {
27
- // Must start with a valid prefix (voy_live_ or voy_test_)
28
- const hasValidPrefix = API_KEY_PREFIXES.some((prefix) => key.startsWith(`${prefix}_`));
29
- if (!hasValidPrefix)
30
- return false;
31
- // Must be correct length: prefix (8) + underscore (1) + random (32) = 41
32
- if (key.length !== 41)
33
- return false;
34
- // Random part must be base64url (alphanumeric + - and _)
35
- const randomPart = key.slice(9);
36
- return /^[A-Za-z0-9_-]{32}$/.test(randomPart);
37
- }
38
- /**
39
- * Extract the environment from an API key
40
- *
41
- * @param key - The API key
42
- * @returns The environment ("live" or "sandbox") or null if invalid
43
- */
44
- export function getApiKeyEnvironment(key) {
45
- if (key.startsWith("voy_live_"))
46
- return "live";
47
- if (key.startsWith("voy_test_"))
48
- return "sandbox";
49
- return null;
50
- }
51
- /**
52
- * Extract prefix and suffix from full API key
53
- *
54
- * @param key - The full API key
55
- * @returns Object with prefix and suffix
56
- */
57
- export function extractApiKeyParts(key) {
58
- return {
59
- prefix: key.slice(0, 8),
60
- suffix: key.slice(-6),
61
- };
62
- }
63
- //# sourceMappingURL=api-keys-client.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"api-keys-client.js","sourceRoot":"","sources":["../src/api-keys-client.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,gBAAgB,GAAG,CAAC,UAAU,EAAE,UAAU,CAAU,CAAA;AAY1D,MAAM,UAAU,UAAU,CAAC,WAAmB,EAAE,MAAe;IAC7D,IAAI,MAAM,EAAE,CAAC;QACX,+BAA+B;QAC/B,OAAO,GAAG,WAAW,MAAM,MAAM,EAAE,CAAA;IACrC,CAAC;SAAM,CAAC;QACN,uBAAuB;QACvB,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QACtC,MAAM,SAAS,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;QACvC,OAAO,GAAG,MAAM,MAAM,SAAS,EAAE,CAAA;IACnC,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,GAAW;IAC7C,0DAA0D;IAC1D,MAAM,cAAc,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC,CAAA;IACtF,IAAI,CAAC,cAAc;QAAE,OAAO,KAAK,CAAA;IAEjC,yEAAyE;IACzE,IAAI,GAAG,CAAC,MAAM,KAAK,EAAE;QAAE,OAAO,KAAK,CAAA;IAEnC,yDAAyD;IACzD,MAAM,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAC/B,OAAO,qBAAqB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;AAC/C,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAC,GAAW;IAC9C,IAAI,GAAG,CAAC,UAAU,CAAC,WAAW,CAAC;QAAE,OAAO,MAAM,CAAA;IAC9C,IAAI,GAAG,CAAC,UAAU,CAAC,WAAW,CAAC;QAAE,OAAO,SAAS,CAAA;IACjD,OAAO,IAAI,CAAA;AACb,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,GAAW;IAC5C,OAAO;QACL,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;QACvB,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;KACtB,CAAA;AACH,CAAC"}
@@ -1,48 +0,0 @@
1
- /**
2
- * API Key Generation and Hashing Utilities (Server-only)
3
- *
4
- * This file uses Web Crypto API and should only be imported in server-side code.
5
- * For client-safe utilities, import from api-keys-client.ts directly.
6
- *
7
- * Key format: voy_<env>_<32 random bytes in base64url>
8
- * Examples:
9
- * - Live: voy_live_8kNp2qX4vR9mJ7tY3wL1nC5bD6fG8hK0
10
- * - Sandbox: voy_sbx_8kNp2qX4vR9mJ7tY3wL1nC5bD6fG8hK0
11
- *
12
- * Security:
13
- * - Uses Web Crypto API for CSPRNG
14
- * - SHA-256 hash for storage (irreversible)
15
- * - Constant-time comparison to prevent timing attacks
16
- */
17
- export { maskApiKey, isValidApiKeyFormat, extractApiKeyParts, getApiKeyEnvironment } from "./api-keys-client";
18
- export type ApiKeyEnvironment = "live" | "sandbox";
19
- interface GeneratedApiKey {
20
- key: string;
21
- hash: string;
22
- prefix: string;
23
- suffix: string;
24
- }
25
- /**
26
- * Generate a cryptographically secure API key
27
- *
28
- * @param environment - The organization environment type ("live" or "sandbox")
29
- * @returns Object containing full key, hash, and display parts
30
- */
31
- export declare function generateApiKey(environment?: ApiKeyEnvironment): Promise<GeneratedApiKey>;
32
- /**
33
- * Hash an API key using SHA-256
34
- *
35
- * @param key - The full API key to hash
36
- * @returns Base64-encoded SHA-256 hash
37
- */
38
- export declare function hashApiKey(key: string): Promise<string>;
39
- /**
40
- * Verify an API key against a stored hash
41
- * Uses constant-time comparison to prevent timing attacks
42
- *
43
- * @param key - The provided API key
44
- * @param storedHash - The SHA-256 hash from database
45
- * @returns True if key matches hash
46
- */
47
- export declare function verifyApiKey(key: string, storedHash: string): Promise<boolean>;
48
- //# sourceMappingURL=api-keys.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"api-keys.d.ts","sourceRoot":"","sources":["../src/api-keys.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAKH,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAA;AAE7G,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,SAAS,CAAA;AASlD,UAAU,eAAe;IACvB,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;CACf;AAED;;;;;GAKG;AACH,wBAAsB,cAAc,CAClC,WAAW,GAAE,iBAA0B,GACtC,OAAO,CAAC,eAAe,CAAC,CA0B1B;AAED;;;;;GAKG;AACH,wBAAsB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAS7D;AAED;;;;;;;GAOG;AACH,wBAAsB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAGpF"}
package/dist/api-keys.js DELETED
@@ -1,108 +0,0 @@
1
- /**
2
- * API Key Generation and Hashing Utilities (Server-only)
3
- *
4
- * This file uses Web Crypto API and should only be imported in server-side code.
5
- * For client-safe utilities, import from api-keys-client.ts directly.
6
- *
7
- * Key format: voy_<env>_<32 random bytes in base64url>
8
- * Examples:
9
- * - Live: voy_live_8kNp2qX4vR9mJ7tY3wL1nC5bD6fG8hK0
10
- * - Sandbox: voy_sbx_8kNp2qX4vR9mJ7tY3wL1nC5bD6fG8hK0
11
- *
12
- * Security:
13
- * - Uses Web Crypto API for CSPRNG
14
- * - SHA-256 hash for storage (irreversible)
15
- * - Constant-time comparison to prevent timing attacks
16
- */
17
- // Use globalThis.crypto which is available in Workers, Node.js 20+, and browsers
18
- // Re-export client-safe utilities for convenience in server code
19
- export { maskApiKey, isValidApiKeyFormat, extractApiKeyParts, getApiKeyEnvironment } from "./api-keys-client";
20
- const API_KEY_PREFIXES = {
21
- live: "voy_live",
22
- sandbox: "voy_test",
23
- };
24
- const RANDOM_BYTES_LENGTH = 32;
25
- /**
26
- * Generate a cryptographically secure API key
27
- *
28
- * @param environment - The organization environment type ("live" or "sandbox")
29
- * @returns Object containing full key, hash, and display parts
30
- */
31
- export async function generateApiKey(environment = "live") {
32
- // Generate 32 random bytes using Web Crypto API
33
- const randomBytes = globalThis.crypto.getRandomValues(new Uint8Array(RANDOM_BYTES_LENGTH));
34
- // Convert to base64url (URL-safe, no padding)
35
- const randomPart = bufferToBase64Url(randomBytes).slice(0, 32);
36
- // Get prefix based on environment
37
- const keyPrefix = API_KEY_PREFIXES[environment];
38
- // Construct full key
39
- const key = `${keyPrefix}_${randomPart}`;
40
- // Hash for storage
41
- const hash = await hashApiKey(key);
42
- // Extract display parts
43
- const prefix = key.slice(0, 8); // "voy_live" or "voy_sbx_"
44
- const suffix = key.slice(-6); // Last 6 chars
45
- return {
46
- key,
47
- hash,
48
- prefix,
49
- suffix,
50
- };
51
- }
52
- /**
53
- * Hash an API key using SHA-256
54
- *
55
- * @param key - The full API key to hash
56
- * @returns Base64-encoded SHA-256 hash
57
- */
58
- export async function hashApiKey(key) {
59
- const encoder = new TextEncoder();
60
- const data = encoder.encode(key);
61
- // SHA-256 hash
62
- const hashBuffer = await globalThis.crypto.subtle.digest("SHA-256", data);
63
- // Convert to base64
64
- return bufferToBase64(new Uint8Array(hashBuffer));
65
- }
66
- /**
67
- * Verify an API key against a stored hash
68
- * Uses constant-time comparison to prevent timing attacks
69
- *
70
- * @param key - The provided API key
71
- * @param storedHash - The SHA-256 hash from database
72
- * @returns True if key matches hash
73
- */
74
- export async function verifyApiKey(key, storedHash) {
75
- const providedHash = await hashApiKey(key);
76
- return constantTimeEqual(providedHash, storedHash);
77
- }
78
- /**
79
- * Constant-time string comparison to prevent timing attacks
80
- *
81
- * @param a - First string
82
- * @param b - Second string
83
- * @returns True if strings are equal
84
- */
85
- function constantTimeEqual(a, b) {
86
- if (a.length !== b.length)
87
- return false;
88
- let result = 0;
89
- for (let i = 0; i < a.length; i++) {
90
- result |= a.charCodeAt(i) ^ b.charCodeAt(i);
91
- }
92
- return result === 0;
93
- }
94
- /**
95
- * Convert Uint8Array to base64 string
96
- */
97
- function bufferToBase64(buffer) {
98
- const bytes = Array.from(buffer);
99
- const binary = String.fromCharCode(...bytes);
100
- return btoa(binary);
101
- }
102
- /**
103
- * Convert Uint8Array to base64url (URL-safe, no padding)
104
- */
105
- function bufferToBase64Url(buffer) {
106
- return bufferToBase64(buffer).replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/, "");
107
- }
108
- //# sourceMappingURL=api-keys.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"api-keys.js","sourceRoot":"","sources":["../src/api-keys.ts"],"names":[],"mappings":"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"}
@@ -1,15 +0,0 @@
1
- export interface CheckoutPricingSignaturePayload {
2
- [key: string]: unknown;
3
- version: number;
4
- bookingId: string;
5
- source: string;
6
- amount: number;
7
- amountMinor: number;
8
- currency: string;
9
- payMode: "full" | "partial";
10
- computedAt: string;
11
- }
12
- export declare function signCheckoutPricingPayload(payload: CheckoutPricingSignaturePayload, secret: string): Promise<string>;
13
- export declare function verifyCheckoutPricingPayload(payload: CheckoutPricingSignaturePayload, signature: string, secret: string): Promise<boolean>;
14
- export declare function serializeCheckoutPricingPayload(payload: CheckoutPricingSignaturePayload): string;
15
- //# sourceMappingURL=checkout-signature.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"checkout-signature.d.ts","sourceRoot":"","sources":["../src/checkout-signature.ts"],"names":[],"mappings":"AAkEA,MAAM,WAAW,+BAA+B;IAC9C,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;IACtB,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,GAAG,SAAS,CAAA;IAC3B,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,wBAAsB,0BAA0B,CAC9C,OAAO,EAAE,+BAA+B,EACxC,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,CAAC,CAGjB;AAED,wBAAsB,4BAA4B,CAChD,OAAO,EAAE,+BAA+B,EACxC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,OAAO,CAAC,CAGlB;AAED,wBAAgB,+BAA+B,CAAC,OAAO,EAAE,+BAA+B,GAAG,MAAM,CAEhG"}
@@ -1,64 +0,0 @@
1
- let nodeCrypto = null;
2
- try {
3
- // eslint-disable-next-line @typescript-eslint/no-require-imports
4
- nodeCrypto = require("crypto");
5
- }
6
- catch {
7
- nodeCrypto = null;
8
- }
9
- const isWebCryptoAvailable = () => typeof crypto !== "undefined" && typeof crypto.subtle !== "undefined";
10
- function toCanonicalJson(value) {
11
- const sortedEntries = Object.entries(value)
12
- .map(([key, val]) => {
13
- if (val && typeof val === "object" && !Array.isArray(val)) {
14
- return [key, JSON.parse(toCanonicalJson(val))];
15
- }
16
- return [key, val];
17
- })
18
- .sort(([a], [b]) => (a < b ? -1 : a > b ? 1 : 0));
19
- const canonicalObject = {};
20
- for (const [k, v] of sortedEntries) {
21
- canonicalObject[k] = v;
22
- }
23
- return JSON.stringify(canonicalObject);
24
- }
25
- async function hmacSha256(message, secret) {
26
- if (!secret || secret.length < 16) {
27
- throw new Error("CHECKOUT_SESSION_SECRET must be at least 16 characters");
28
- }
29
- if (nodeCrypto) {
30
- return nodeCrypto.createHmac("sha256", secret).update(message).digest("base64url");
31
- }
32
- if (isWebCryptoAvailable()) {
33
- const encoder = new TextEncoder();
34
- const key = await crypto.subtle.importKey("raw", encoder.encode(secret), { name: "HMAC", hash: "SHA-256" }, false, ["sign", "verify"]);
35
- const signatureBuffer = await crypto.subtle.sign("HMAC", key, encoder.encode(message));
36
- const signatureArray = Array.from(new Uint8Array(signatureBuffer));
37
- return btoa(String.fromCharCode(...signatureArray))
38
- .replace(/\+/g, "-")
39
- .replace(/\//g, "_")
40
- .replace(/=/g, "");
41
- }
42
- throw new Error("No crypto implementation available for signing checkout payload");
43
- }
44
- function timingSafeEqual(a, b) {
45
- if (a.length !== b.length)
46
- return false;
47
- let result = 0;
48
- for (let i = 0; i < a.length; i++) {
49
- result |= a.charCodeAt(i) ^ b.charCodeAt(i);
50
- }
51
- return result === 0;
52
- }
53
- export async function signCheckoutPricingPayload(payload, secret) {
54
- const canonical = toCanonicalJson(payload);
55
- return hmacSha256(canonical, secret);
56
- }
57
- export async function verifyCheckoutPricingPayload(payload, signature, secret) {
58
- const expected = await signCheckoutPricingPayload(payload, secret);
59
- return timingSafeEqual(expected, signature);
60
- }
61
- export function serializeCheckoutPricingPayload(payload) {
62
- return toCanonicalJson(payload);
63
- }
64
- //# sourceMappingURL=checkout-signature.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"checkout-signature.js","sourceRoot":"","sources":["../src/checkout-signature.ts"],"names":[],"mappings":"AAAA,IAAI,UAAU,GAAmC,IAAI,CAAA;AACrD,IAAI,CAAC;IACH,iEAAiE;IACjE,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;AAChC,CAAC;AAAC,MAAM,CAAC;IACP,UAAU,GAAG,IAAI,CAAA;AACnB,CAAC;AAED,MAAM,oBAAoB,GAAG,GAAG,EAAE,CAAC,OAAO,MAAM,KAAK,WAAW,IAAI,OAAO,MAAM,CAAC,MAAM,KAAK,WAAW,CAAA;AAExG,SAAS,eAAe,CAAC,KAA8B;IACrD,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;SACxC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE;QAClB,IAAI,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1D,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,GAA8B,CAAC,CAAC,CAAC,CAAA;QAC3E,CAAC;QACD,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IACnB,CAAC,CAAC;SACD,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAEnD,MAAM,eAAe,GAA4B,EAAE,CAAA;IACnD,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,aAAa,EAAE,CAAC;QACnC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;IACxB,CAAC;IAED,OAAO,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAAA;AACxC,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,OAAe,EAAE,MAAc;IACvD,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAA;IAC3E,CAAC;IAED,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,UAAU,CAAC,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;IACpF,CAAC;IAED,IAAI,oBAAoB,EAAE,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAA;QACjC,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,CACvC,KAAK,EACL,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EACtB,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,EACjC,KAAK,EACL,CAAC,MAAM,EAAE,QAAQ,CAAC,CACnB,CAAA;QACD,MAAM,eAAe,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAA;QACtF,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,eAAe,CAAC,CAAC,CAAA;QAClE,OAAO,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,cAAc,CAAC,CAAC;aAChD,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;aACnB,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;aACnB,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;IACtB,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAA;AACpF,CAAC;AAED,SAAS,eAAe,CAAC,CAAS,EAAE,CAAS;IAC3C,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM;QAAE,OAAO,KAAK,CAAA;IACvC,IAAI,MAAM,GAAG,CAAC,CAAA;IACd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAClC,MAAM,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;IAC7C,CAAC;IACD,OAAO,MAAM,KAAK,CAAC,CAAA;AACrB,CAAC;AAcD,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,OAAwC,EACxC,MAAc;IAEd,MAAM,SAAS,GAAG,eAAe,CAAC,OAAO,CAAC,CAAA;IAC1C,OAAO,UAAU,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;AACtC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAChD,OAAwC,EACxC,SAAiB,EACjB,MAAc;IAEd,MAAM,QAAQ,GAAG,MAAM,0BAA0B,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;IAClE,OAAO,eAAe,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAA;AAC7C,CAAC;AAED,MAAM,UAAU,+BAA+B,CAAC,OAAwC;IACtF,OAAO,eAAe,CAAC,OAAO,CAAC,CAAA;AACjC,CAAC"}