@digitaldefiance/ecies-lib 3.0.8 → 3.7.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (303) hide show
  1. package/README.md +4 -0
  2. package/package.json +4 -3
  3. package/src/builders/ecies-builder.js +5 -9
  4. package/src/builders/ecies-builder.js.map +1 -1
  5. package/src/builders/index.js +2 -5
  6. package/src/builders/index.js.map +1 -1
  7. package/src/builders/member-builder.js +12 -16
  8. package/src/builders/member-builder.js.map +1 -1
  9. package/src/constants.d.ts +14 -0
  10. package/src/constants.d.ts.map +1 -1
  11. package/src/constants.js +150 -74
  12. package/src/constants.js.map +1 -1
  13. package/src/core/errors/crypto-error.js +10 -14
  14. package/src/core/errors/crypto-error.js.map +1 -1
  15. package/src/core/index.js +2 -5
  16. package/src/core/index.js.map +1 -1
  17. package/src/core/types/result.js +1 -5
  18. package/src/core/types/result.js.map +1 -1
  19. package/src/email-string.js +8 -13
  20. package/src/email-string.js.map +1 -1
  21. package/src/enumerations/disposed-error-type.d.ts +12 -0
  22. package/src/enumerations/disposed-error-type.d.ts.map +1 -0
  23. package/src/enumerations/disposed-error-type.js +13 -0
  24. package/src/enumerations/disposed-error-type.js.map +1 -0
  25. package/src/enumerations/ecies-encryption-type.js +20 -27
  26. package/src/enumerations/ecies-encryption-type.js.map +1 -1
  27. package/src/enumerations/ecies-error-type.js +2 -5
  28. package/src/enumerations/ecies-error-type.js.map +1 -1
  29. package/src/enumerations/ecies-string-key.d.ts +19 -1
  30. package/src/enumerations/ecies-string-key.d.ts.map +1 -1
  31. package/src/enumerations/ecies-string-key.js +21 -5
  32. package/src/enumerations/ecies-string-key.js.map +1 -1
  33. package/src/enumerations/guid-brand-type.d.ts +27 -0
  34. package/src/enumerations/guid-brand-type.d.ts.map +1 -0
  35. package/src/enumerations/guid-brand-type.js +28 -0
  36. package/src/enumerations/guid-brand-type.js.map +1 -0
  37. package/src/enumerations/guid-error-type.d.ts +7 -0
  38. package/src/enumerations/guid-error-type.d.ts.map +1 -0
  39. package/src/enumerations/guid-error-type.js +8 -0
  40. package/src/enumerations/guid-error-type.js.map +1 -0
  41. package/src/enumerations/id-provider-error-type.d.ts +43 -0
  42. package/src/enumerations/id-provider-error-type.d.ts.map +1 -0
  43. package/src/enumerations/id-provider-error-type.js +44 -0
  44. package/src/enumerations/id-provider-error-type.js.map +1 -0
  45. package/src/enumerations/index.d.ts +3 -0
  46. package/src/enumerations/index.d.ts.map +1 -1
  47. package/src/enumerations/index.js +15 -15
  48. package/src/enumerations/index.js.map +1 -1
  49. package/src/enumerations/invalid-email-type.js +2 -5
  50. package/src/enumerations/invalid-email-type.js.map +1 -1
  51. package/src/enumerations/length-encoding-type.js +2 -5
  52. package/src/enumerations/length-encoding-type.js.map +1 -1
  53. package/src/enumerations/length-error-type.js +2 -5
  54. package/src/enumerations/length-error-type.js.map +1 -1
  55. package/src/enumerations/member-error-type.js +3 -6
  56. package/src/enumerations/member-error-type.js.map +1 -1
  57. package/src/enumerations/member-type.js +3 -6
  58. package/src/enumerations/member-type.js.map +1 -1
  59. package/src/enumerations/password-login-error-type.js +2 -5
  60. package/src/enumerations/password-login-error-type.js.map +1 -1
  61. package/src/enumerations/pbkdf2-error-type.js +2 -5
  62. package/src/enumerations/pbkdf2-error-type.js.map +1 -1
  63. package/src/enumerations/pbkdf2-profile.js +2 -5
  64. package/src/enumerations/pbkdf2-profile.js.map +1 -1
  65. package/src/enumerations/secure-storage-error-type.js +2 -5
  66. package/src/enumerations/secure-storage-error-type.js.map +1 -1
  67. package/src/errors/disposed.d.ts +20 -2
  68. package/src/errors/disposed.d.ts.map +1 -1
  69. package/src/errors/disposed.js +24 -17
  70. package/src/errors/disposed.js.map +1 -1
  71. package/src/errors/ecies.d.ts +46 -1
  72. package/src/errors/ecies.d.ts.map +1 -1
  73. package/src/errors/ecies.js +65 -10
  74. package/src/errors/ecies.js.map +1 -1
  75. package/src/errors/guid.d.ts +44 -0
  76. package/src/errors/guid.d.ts.map +1 -0
  77. package/src/errors/guid.js +81 -0
  78. package/src/errors/guid.js.map +1 -0
  79. package/src/errors/id-provider.d.ts +23 -0
  80. package/src/errors/id-provider.d.ts.map +1 -0
  81. package/src/errors/id-provider.js +29 -0
  82. package/src/errors/id-provider.js.map +1 -0
  83. package/src/errors/index.d.ts +3 -0
  84. package/src/errors/index.d.ts.map +1 -1
  85. package/src/errors/index.js +9 -10
  86. package/src/errors/index.js.map +1 -1
  87. package/src/errors/invalid-email.js +5 -9
  88. package/src/errors/invalid-email.js.map +1 -1
  89. package/src/errors/length.js +5 -9
  90. package/src/errors/length.js.map +1 -1
  91. package/src/errors/member.js +5 -9
  92. package/src/errors/member.js.map +1 -1
  93. package/src/errors/pbkdf2.js +5 -9
  94. package/src/errors/pbkdf2.js.map +1 -1
  95. package/src/errors/secure-storage.js +6 -10
  96. package/src/errors/secure-storage.js.map +1 -1
  97. package/src/errors/simple-ecies.js +6 -10
  98. package/src/errors/simple-ecies.js.map +1 -1
  99. package/src/errors/simple-test-error.js +1 -5
  100. package/src/errors/simple-test-error.js.map +1 -1
  101. package/src/i18n-setup.js +29 -37
  102. package/src/i18n-setup.js.map +1 -1
  103. package/src/index.d.ts +10 -0
  104. package/src/index.d.ts.map +1 -1
  105. package/src/index.js +44 -57
  106. package/src/index.js.map +1 -1
  107. package/src/interfaces/checksum-config.js +1 -2
  108. package/src/interfaces/checksum-consts.js +1 -2
  109. package/src/interfaces/configuration-provenance.d.ts +51 -0
  110. package/src/interfaces/configuration-provenance.d.ts.map +1 -0
  111. package/src/interfaces/configuration-provenance.js +23 -0
  112. package/src/interfaces/configuration-provenance.js.map +1 -0
  113. package/src/interfaces/constants.d.ts +27 -1
  114. package/src/interfaces/constants.d.ts.map +1 -1
  115. package/src/interfaces/constants.js +1 -2
  116. package/src/interfaces/ecies-config.js +1 -2
  117. package/src/interfaces/ecies-consts.js +1 -2
  118. package/src/interfaces/ecies-file-service.js +1 -2
  119. package/src/interfaces/encrypted-chunk.js +1 -4
  120. package/src/interfaces/encrypted-chunk.js.map +1 -1
  121. package/src/interfaces/encryption-state.js +1 -4
  122. package/src/interfaces/encryption-state.js.map +1 -1
  123. package/src/interfaces/frontend-member-operational.js +1 -2
  124. package/src/interfaces/guid.d.ts +78 -0
  125. package/src/interfaces/guid.d.ts.map +1 -0
  126. package/src/interfaces/guid.js +2 -0
  127. package/src/interfaces/guid.js.map +1 -0
  128. package/src/interfaces/id-provider.d.ts +83 -0
  129. package/src/interfaces/id-provider.d.ts.map +1 -0
  130. package/src/interfaces/id-provider.js +35 -0
  131. package/src/interfaces/id-provider.js.map +1 -0
  132. package/src/interfaces/index.d.ts +1 -0
  133. package/src/interfaces/index.d.ts.map +1 -1
  134. package/src/interfaces/index.js +13 -15
  135. package/src/interfaces/index.js.map +1 -1
  136. package/src/interfaces/invariant.d.ts +46 -0
  137. package/src/interfaces/invariant.d.ts.map +1 -0
  138. package/src/interfaces/invariant.js +18 -0
  139. package/src/interfaces/invariant.js.map +1 -0
  140. package/src/interfaces/library-error.js +1 -2
  141. package/src/interfaces/member-storage.js +1 -2
  142. package/src/interfaces/member-with-mnemonic.js +1 -2
  143. package/src/interfaces/multi-recipient-chunk.d.ts +36 -12
  144. package/src/interfaces/multi-recipient-chunk.d.ts.map +1 -1
  145. package/src/interfaces/multi-recipient-chunk.js +36 -14
  146. package/src/interfaces/multi-recipient-chunk.js.map +1 -1
  147. package/src/interfaces/pbkdf2-config.js +1 -2
  148. package/src/interfaces/pbkdf2-consts.js +1 -2
  149. package/src/interfaces/pbkdf2-result.js +1 -2
  150. package/src/interfaces/stream-config.js +1 -4
  151. package/src/interfaces/stream-config.js.map +1 -1
  152. package/src/interfaces/stream-header.js +1 -4
  153. package/src/interfaces/stream-header.js.map +1 -1
  154. package/src/interfaces/stream-progress.js +1 -2
  155. package/src/lib/crypto-container.js +9 -13
  156. package/src/lib/crypto-container.js.map +1 -1
  157. package/src/lib/guid.d.ts +344 -0
  158. package/src/lib/guid.d.ts.map +1 -0
  159. package/src/lib/guid.js +914 -0
  160. package/src/lib/guid.js.map +1 -0
  161. package/src/lib/id-providers/custom-provider.d.ts +69 -0
  162. package/src/lib/id-providers/custom-provider.d.ts.map +1 -0
  163. package/src/lib/id-providers/custom-provider.js +128 -0
  164. package/src/lib/id-providers/custom-provider.js.map +1 -0
  165. package/src/lib/id-providers/guidv4-provider.d.ts +46 -0
  166. package/src/lib/id-providers/guidv4-provider.d.ts.map +1 -0
  167. package/src/lib/id-providers/guidv4-provider.js +105 -0
  168. package/src/lib/id-providers/guidv4-provider.js.map +1 -0
  169. package/src/lib/id-providers/index.d.ts +30 -0
  170. package/src/lib/id-providers/index.d.ts.map +1 -0
  171. package/src/lib/id-providers/index.js +29 -0
  172. package/src/lib/id-providers/index.js.map +1 -0
  173. package/src/lib/id-providers/objectid-provider.d.ts +33 -0
  174. package/src/lib/id-providers/objectid-provider.d.ts.map +1 -0
  175. package/src/lib/id-providers/objectid-provider.js +79 -0
  176. package/src/lib/id-providers/objectid-provider.js.map +1 -0
  177. package/src/lib/id-providers/uuid-provider.d.ts +42 -0
  178. package/src/lib/id-providers/uuid-provider.d.ts.map +1 -0
  179. package/src/lib/id-providers/uuid-provider.js +96 -0
  180. package/src/lib/id-providers/uuid-provider.js.map +1 -0
  181. package/src/lib/index.d.ts +1 -0
  182. package/src/lib/index.d.ts.map +1 -1
  183. package/src/lib/index.js +2 -4
  184. package/src/lib/index.js.map +1 -1
  185. package/src/lib/invariant-validator.d.ts +59 -0
  186. package/src/lib/invariant-validator.d.ts.map +1 -0
  187. package/src/lib/invariant-validator.js +97 -0
  188. package/src/lib/invariant-validator.js.map +1 -0
  189. package/src/lib/invariants/encryption-algorithm-consistency.d.ts +17 -0
  190. package/src/lib/invariants/encryption-algorithm-consistency.d.ts.map +1 -0
  191. package/src/lib/invariants/encryption-algorithm-consistency.js +49 -0
  192. package/src/lib/invariants/encryption-algorithm-consistency.js.map +1 -0
  193. package/src/lib/invariants/index.d.ts +4 -0
  194. package/src/lib/invariants/index.d.ts.map +1 -0
  195. package/src/lib/invariants/index.js +4 -0
  196. package/src/lib/invariants/index.js.map +1 -0
  197. package/src/lib/invariants/pbkdf2-profiles-validity.d.ts +16 -0
  198. package/src/lib/invariants/pbkdf2-profiles-validity.d.ts.map +1 -0
  199. package/src/lib/invariants/pbkdf2-profiles-validity.js +58 -0
  200. package/src/lib/invariants/pbkdf2-profiles-validity.js.map +1 -0
  201. package/src/lib/invariants/recipient-id-consistency.d.ts +18 -0
  202. package/src/lib/invariants/recipient-id-consistency.d.ts.map +1 -0
  203. package/src/lib/invariants/recipient-id-consistency.js +31 -0
  204. package/src/lib/invariants/recipient-id-consistency.js.map +1 -0
  205. package/src/member.js +43 -48
  206. package/src/member.js.map +1 -1
  207. package/src/pbkdf2-profiles.js +1 -2
  208. package/src/phone-number.js +7 -11
  209. package/src/phone-number.js.map +1 -1
  210. package/src/regexes.js +3 -6
  211. package/src/regexes.js.map +1 -1
  212. package/src/secure-buffer.d.ts +17 -1
  213. package/src/secure-buffer.d.ts.map +1 -1
  214. package/src/secure-buffer.js +40 -22
  215. package/src/secure-buffer.js.map +1 -1
  216. package/src/secure-string.js +20 -24
  217. package/src/secure-string.js.map +1 -1
  218. package/src/services/aes-gcm.js +21 -25
  219. package/src/services/aes-gcm.js.map +1 -1
  220. package/src/services/chunk-processor.js +32 -36
  221. package/src/services/chunk-processor.js.map +1 -1
  222. package/src/services/ecies/crypto-core.js +33 -37
  223. package/src/services/ecies/crypto-core.js.map +1 -1
  224. package/src/services/ecies/example.js +37 -44
  225. package/src/services/ecies/example.js.map +1 -1
  226. package/src/services/ecies/file.js +1 -5
  227. package/src/services/ecies/file.js.map +1 -1
  228. package/src/services/ecies/index.js +10 -15
  229. package/src/services/ecies/index.js.map +1 -1
  230. package/src/services/ecies/integration.js +23 -28
  231. package/src/services/ecies/integration.js.map +1 -1
  232. package/src/services/ecies/interfaces.js +1 -2
  233. package/src/services/ecies/interfaces.js.map +1 -1
  234. package/src/services/ecies/manual-test.js +26 -34
  235. package/src/services/ecies/manual-test.js.map +1 -1
  236. package/src/services/ecies/multi-recipient.js +47 -51
  237. package/src/services/ecies/multi-recipient.js.map +1 -1
  238. package/src/services/ecies/service.js +27 -31
  239. package/src/services/ecies/service.js.map +1 -1
  240. package/src/services/ecies/signature.js +9 -13
  241. package/src/services/ecies/signature.js.map +1 -1
  242. package/src/services/ecies/single-recipient.js +42 -46
  243. package/src/services/ecies/single-recipient.js.map +1 -1
  244. package/src/services/encryption-stream.d.ts +3 -1
  245. package/src/services/encryption-stream.d.ts.map +1 -1
  246. package/src/services/encryption-stream.js +46 -48
  247. package/src/services/encryption-stream.js.map +1 -1
  248. package/src/services/index.js +5 -8
  249. package/src/services/index.js.map +1 -1
  250. package/src/services/multi-recipient-processor.d.ts +12 -2
  251. package/src/services/multi-recipient-processor.d.ts.map +1 -1
  252. package/src/services/multi-recipient-processor.js +65 -56
  253. package/src/services/multi-recipient-processor.js.map +1 -1
  254. package/src/services/password-login.js +33 -37
  255. package/src/services/password-login.js.map +1 -1
  256. package/src/services/pbkdf2.js +8 -12
  257. package/src/services/pbkdf2.js.map +1 -1
  258. package/src/services/progress-tracker.js +5 -9
  259. package/src/services/progress-tracker.js.map +1 -1
  260. package/src/services/resumable-encryption.js +24 -28
  261. package/src/services/resumable-encryption.js.map +1 -1
  262. package/src/services/xor.js +1 -5
  263. package/src/services/xor.js.map +1 -1
  264. package/src/test-mocks/index.js +1 -4
  265. package/src/test-mocks/index.js.map +1 -1
  266. package/src/test-mocks/mock-frontend-member.js +20 -24
  267. package/src/test-mocks/mock-frontend-member.js.map +1 -1
  268. package/src/testing.js +1 -4
  269. package/src/testing.js.map +1 -1
  270. package/src/translations/de.d.ts +2 -1
  271. package/src/translations/de.d.ts.map +1 -1
  272. package/src/translations/de.js +190 -170
  273. package/src/translations/de.js.map +1 -1
  274. package/src/translations/en-US.d.ts +2 -1
  275. package/src/translations/en-US.d.ts.map +1 -1
  276. package/src/translations/en-US.js +190 -170
  277. package/src/translations/en-US.js.map +1 -1
  278. package/src/translations/es.d.ts +2 -1
  279. package/src/translations/es.d.ts.map +1 -1
  280. package/src/translations/es.js +190 -170
  281. package/src/translations/es.js.map +1 -1
  282. package/src/translations/fr.d.ts +2 -1
  283. package/src/translations/fr.d.ts.map +1 -1
  284. package/src/translations/fr.js +190 -170
  285. package/src/translations/fr.js.map +1 -1
  286. package/src/translations/ja.d.ts +2 -1
  287. package/src/translations/ja.d.ts.map +1 -1
  288. package/src/translations/ja.js +189 -170
  289. package/src/translations/ja.js.map +1 -1
  290. package/src/translations/uk.d.ts +2 -1
  291. package/src/translations/uk.d.ts.map +1 -1
  292. package/src/translations/uk.js +192 -170
  293. package/src/translations/uk.js.map +1 -1
  294. package/src/translations/zh-cn.d.ts +2 -1
  295. package/src/translations/zh-cn.d.ts.map +1 -1
  296. package/src/translations/zh-cn.js +189 -170
  297. package/src/translations/zh-cn.js.map +1 -1
  298. package/src/types/deep-partial.js +1 -2
  299. package/src/types.d.ts +31 -0
  300. package/src/types.d.ts.map +1 -1
  301. package/src/types.js +1 -2
  302. package/src/utils.js +59 -77
  303. package/src/utils.js.map +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guid.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-ecies-lib/src/lib/guid.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAwB3C;;;;;;;;;GASG;AACH,MAAM,OAAO,MAAM;IACjB;;OAEG;IACc,MAAM,CAAgB;IAEvC;;OAEG;IACK,MAAM,CAAU,eAAe,GAAG;QACxC,cAAc,EAAE,sCAA+C;QAC/D,eAAe,EAAE,kCAA2C;QAC5D,WAAW,EAAE,sCAA+C;QAC5D,YAAY,EAAE,kCAA2C;KACjD,CAAC;IAEX;;OAEG;IACK,MAAM,CAAU,gBAAgB,GAAG,MAAM,CAAC,oCAAoC,CAAC,CAAC;IAExF;;OAEG;IACK,cAAc,CAAe;IAErC;;OAEG;IACK,eAAe,CAAgB;IAEvC;;OAEG;IACK,aAAa,CAAc;IAEnC;;OAEG;IACK,MAAM,CAAU,WAAW,GAAG,cAAc,CAAC;IAErD;;OAEG;IACK,MAAM,CAAU,gBAAgB,GAAG,iEAAiE,CAAC;IAE7G;;OAEG;IACK,MAAM,CAAC,MAAM,CAAU;IAE/B;;OAEG;IACI,MAAM,KAAK,KAAK;QACrB,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACnB,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAC3B,IAAI,MAAM,CAAC,sCAAqD,CAAC,CACxD,CAAC;QACd,CAAC;QACD,OAAO,MAAM,CAAC,MAAM,CAAC;IACvB,CAAC;IAED,YACE,KAAgB;QAEhB,MAAM,MAAM,GAAG,MAAM,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAChD,8DAA8D;QAC9D,8EAA8E;QAC9E,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QAErB,2DAA2D;QAC3D,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;QAChC,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC;QACjC,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC;QAE/B,0DAA0D;QAC1D,qEAAqE;QACrE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC;IAED;;;;;;OAMG;IACK,MAAM,CAAC,kBAAkB,CAAC,KAAgB;QAChD,IAAI,CAAC;YACH,uBAAuB;YACvB,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBAC1C,MAAM,IAAI,SAAS,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;YACjD,CAAC;YAED,2CAA2C;YAC3C,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;YAC/B,IAAI,CAAC,QAAQ,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;gBAC9B,MAAM,IAAI,SAAS,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;YACjD,CAAC;YAED,kCAAkC;YAClC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,GAAG,EAAE,EAAE,CAAC;gBAC5C,MAAM,IAAI,SAAS,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;YACjD,CAAC;YAED,yDAAyD;YACzD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC9B,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,KAAK,EAAE,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;gBAC7D,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;gBAE/D,IAAI,SAAS,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;oBACtD,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBAClC,MAAM,IAAI,SAAS,CACjB,aAAa,CAAC,sBAAsB,EACpC,aAAa,CAAC,WAAW,EACzB,KAAK,CAAC,MAAM,EACZ,MAAM,CACP,CAAC;gBACJ,CAAC;qBAAM,IAAI,UAAU,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;oBACzD,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBAClC,MAAM,IAAI,SAAS,CACjB,aAAa,CAAC,sBAAsB,EACpC,aAAa,CAAC,YAAY,EAC1B,KAAK,CAAC,MAAM,EACZ,MAAM,CACP,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,sCAAsC;YACtC,MAAM,aAAa,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YAC/C,MAAM,aAAa,GAAG,MAAM,CAAC,UAAU,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;YAE9D,IAAI,CAAC,aAAa,EAAE,CAAC;gBACnB,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;oBACxC,CAAC,CAAC,KAAK;oBACP,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC1B,MAAM,IAAI,SAAS,CACjB,aAAa,CAAC,sBAAsB,EACpC,aAAa,EACb,SAAS,EACT,WAAW,CACZ,CAAC;YACJ,CAAC;YAED,wBAAwB;YACxB,MAAM,MAAM,GAAG,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;YAE7C,4DAA4D;YAC5D,MAAM,OAAO,GAAG,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;YAC7D,MAAM,UAAU,GAAG,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;YAEnD,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC3C,MAAM,IAAI,SAAS,CACjB,aAAa,CAAC,WAAW,EACzB,aAAa,EACb,SAAS,EACT,MAAM,CACP,CAAC;YACJ,CAAC;YAED,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,2BAA2B;YAC3B,IAAI,KAAK,YAAY,SAAS,EAAE,CAAC;gBAC/B,MAAM,KAAK,CAAC;YACd,CAAC;YAED,iCAAiC;YACjC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC9B,MAAM,IAAI,SAAS,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;YACjD,CAAC;YAED,MAAM,MAAM,GAAG,KAAK,YAAY,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;YAC7E,MAAM,IAAI,SAAS,CACjB,aAAa,CAAC,wBAAwB,EACtC,SAAS,EACT,MAAM,CACP,CAAC;QACJ,CAAC;IACH,CAAC;IAEM,MAAM,CAAC,YAAY,CAAC,KAAa;QACtC,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IAEM,SAAS;QACd,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAEM,MAAM,CAAC,OAAO,CAAC,KAAa;QACjC,OAAO,IAAI,MAAM,CAAC,KAAmB,CAAC,CAAC;IACzC,CAAC;IAEO,MAAM,CAAU,SAAS,GAAkC;QACjE,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC3B,CAAC,aAAa,CAAC,WAAW,CAAC,EAAE,EAAE;QAC/B,CAAC,aAAa,CAAC,YAAY,CAAC,EAAE,EAAE;QAChC,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE,EAAE;QAC9B,CAAC,aAAa,CAAC,aAAa,CAAC,EAAE,EAAE;QACjC,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,EAAE,kBAAkB;KACnD,CAAC;IAEM,MAAM,CAAU,gBAAgB,GAAkC;QACxE,CAAC,EAAE,aAAa,CAAC,OAAO;QACxB,EAAE,EAAE,aAAa,CAAC,WAAW;QAC7B,EAAE,EAAE,aAAa,CAAC,YAAY;QAC9B,EAAE,EAAE,aAAa,CAAC,UAAU;QAC5B,EAAE,EAAE,aAAa,CAAC,aAAa;QAC/B,0EAA0E;KAC3E,CAAC;IAEM,MAAM,CAAU,eAAe,GAGnC;QACF,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC,KAAK;QACpC,CAAC,aAAa,CAAC,WAAW,CAAC,EAAE,CAAC,IAAe,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;QAC1E,CAAC,aAAa,CAAC,YAAY,CAAC,EAAE,CAAC,IAAe,EAAE,EAAE,CAChD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;QAC3B,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE,CAAC,IAAe,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;QACxE,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE,CAAC,IAAe,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;QACxE,CAAC,aAAa,CAAC,aAAa,CAAC,EAAE,CAAC,IAAe,EAAE,EAAE,CACjD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;KAC7B,CAAC;IAEF;;;;OAIG;IACH,IAAW,eAAe;QACxB,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAkB,CAAC;IACnD,CAAC;IAED;;;;;OAKG;IACH,IAAW,qBAAqB;QAC9B,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,QAAQ;QACpB,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;YAC1B,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,IAAI,SAAS,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;YACjD,CAAC;YACD,OAAO,IAAI,MAAM,CAAC,OAAsB,CAAC,CAAC;QAC5C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,SAAS,EAAE,CAAC;gBAC/B,MAAM,KAAK,CAAC;YACd,CAAC;YACD,MAAM,IAAI,SAAS,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,GAAG;QACf,OAAO,MAAM,CAAC,QAAQ,EAAE,CAAC;IAC3B,CAAC;IAED;;;;;;OAMG;IACI,MAAM,CAAC,KAAK,CAAC,KAAgB;QAClC,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IAED;;;;;OAKG;IACI,MAAM,CAAC,QAAQ,CAAC,KAAgB;QACrC,IAAI,CAAC;YACH,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACI,MAAM,CAAC,OAAO,CAAC,KAAc;QAClC,IAAI,CAAC,KAAK;YAAE,OAAO,KAAK,CAAC;QACzB,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,MAAM,CAAC,KAAkB,CAAC,CAAC;YAC5C,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC;QAC1B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,WAAW,CAAC,OAAe;QACvC,OAAO,IAAI,MAAM,CAAC,OAAsB,CAAC,CAAC;IAC5C,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,YAAY,CAAC,QAAgB;QACzC,OAAO,IAAI,MAAM,CAAC,QAAwB,CAAC,CAAC;IAC9C,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,UAAU,CAAC,MAAc;QACrC,OAAO,IAAI,MAAM,CAAC,MAAoB,CAAC,CAAC;IAC1C,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,UAAU,CAAC,MAAc;QACrC,OAAO,IAAI,MAAM,CAAC,MAAoB,CAAC,CAAC;IAC1C,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,UAAU,CAAC,MAAc;QACrC,OAAO,IAAI,MAAM,CAAC,MAAuB,CAAC,CAAC;IAC7C,CAAC;IAED;;;;;;;;OAQG;IACI,MAAM,CAAC,EAAE,CAAC,IAAY,EAAE,SAA0B;QACvD,IAAI,CAAC;YACH,MAAM,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC;gBAC7C,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gBACjD,CAAC,CAAC,SAAS,CAAC;YACd,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;YAC3C,OAAO,IAAI,MAAM,CAAC,MAAqB,CAAC,CAAC;QAC3C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,SAAS,EAAE,CAAC;gBAC/B,MAAM,KAAK,CAAC;YACd,CAAC;YACD,MAAM,IAAI,SAAS,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;IAED;;;;;;;;;OASG;IACI,MAAM,CAAC,EAAE,CAAC,IAAY,EAAE,SAA0B;QACvD,IAAI,CAAC;YACH,MAAM,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC;gBAC7C,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gBACjD,CAAC,CAAC,SAAS,CAAC;YACd,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;YAC3C,OAAO,IAAI,MAAM,CAAC,MAAqB,CAAC,CAAC;QAC3C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,SAAS,EAAE,CAAC;gBAC/B,MAAM,KAAK,CAAC;YACd,CAAC;YACD,MAAM,IAAI,SAAS,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;IAED;;;OAGG;IACI,MAAM,CAAU,UAAU,GAAG;QAClC,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG;QAChB,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG;KACR,CAAC;IACX;;;OAGG;IACH,IAAW,aAAa;QACtB,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YACzB,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QAC1E,CAAC;QACD,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IACD;;OAEG;IACH,IAAW,YAAY;QACrB,OAAO,IAAI,CAAC,MAAoB,CAAC;IACnC,CAAC;IACD;;;OAGG;IACH,IAAW,cAAc;QACvB,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YAC1B,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACnE,CAAC;QACD,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IACD;;OAEG;IACI,QAAQ;QACb,OAAO,IAAI,CAAC,YAA0B,CAAC;IACzC,CAAC;IACD;;;OAGG;IACI,MAAM;QACX,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC3C,CAAC;IACD;;OAEG;IACH,IAAW,YAAY;QACrB,OAAO,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAe,CAAC;IAClE,CAAC;IACD;;;OAGG;IACH,IAAW,YAAY;QACrB,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAe,CAAC;QACpE,CAAC;QACD,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED;;;;OAIG;IACK,MAAM,CAAC,eAAe,CAAC,KAAa;QAC1C,OAAO,CACL,KAAK,KAAK,MAAM,CAAC,eAAe,CAAC,cAAc;YAC/C,KAAK,KAAK,MAAM,CAAC,eAAe,CAAC,eAAe;YAChD,KAAK,KAAK,MAAM,CAAC,eAAe,CAAC,WAAW;YAC5C,KAAK,KAAK,MAAM,CAAC,eAAe,CAAC,YAAY,CAC9C,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACI,MAAM,CAAC,UAAU,CAAC,SAAwB,EAAE,IAAe;QAChE,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACxC,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,MAAM,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;YACrD,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,iBAAiB,CAAC,SAAwB;QACtD,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAC3C,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;YAChB,MAAM,IAAI,SAAS,CAAC,aAAa,CAAC,uBAAuB,EAAE,SAAS,CAAC,CAAC;QACxE,CAAC;QACD,OAAO,MAAgB,CAAC;IAC1B,CAAC;IAED;;;;;OAKG;IACI,MAAM,CAAC,iBAAiB,CAC7B,MAAc,EACd,QAAiB;QAEjB,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;YAChB,MAAM,IAAI,SAAS,CAAC,aAAa,CAAC,wBAAwB,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QACjF,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAE9C,IAAI,CAAC,KAAK,IAAI,KAAK,KAAK,aAAa,CAAC,OAAO,EAAE,CAAC;YAC9C,MAAM,IAAI,SAAS,CAAC,aAAa,CAAC,wBAAwB,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QACjF,CAAC;QAED,6CAA6C;QAC7C,MAAM,aAAa,GAAG,KAAK,KAAK,aAAa,CAAC,aAAa,CAAC;QAC5D,IAAI,QAAQ,KAAK,aAAa,EAAE,CAAC;YAC/B,MAAM,IAAI,SAAS,CAAC,aAAa,CAAC,wBAAwB,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QAC7E,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,aAAa,CAAC,gBAA2B;QACrD,IAAI,CAAC;YACH,IAAI,gBAAgB,KAAK,IAAI,IAAI,gBAAgB,KAAK,SAAS,EAAE,CAAC;gBAChE,OAAO,KAAK,CAAC;YACf,CAAC;YACD,MAAM,cAAc,GAAG,MAAM,CAAC,iBAAiB,CAC7C,aAAa,CAAC,WAAW,CAC1B,CAAC;YACF,MAAM,QAAQ,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;YAE1C,IAAI,QAAQ,CAAC,MAAM,KAAK,cAAc,EAAE,CAAC;gBACvC,OAAO,KAAK,CAAC;YACf,CAAC;YAED,mCAAmC;YACnC,IAAI,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACrC,OAAO,IAAI,CAAC;YACd,CAAC;YAED,OAAO,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QACvC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,cAAc,CAAC,iBAA4B;QACvD,IAAI,CAAC;YACH,IAAI,iBAAiB,KAAK,IAAI,IAAI,iBAAiB,KAAK,SAAS,EAAE,CAAC;gBAClE,OAAO,KAAK,CAAC;YACf,CAAC;YACD,MAAM,cAAc,GAAG,MAAM,CAAC,iBAAiB,CAC7C,aAAa,CAAC,YAAY,CAC3B,CAAC;YACF,MAAM,QAAQ,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;YAE3C,IAAI,QAAQ,CAAC,MAAM,KAAK,cAAc,EAAE,CAAC;gBACvC,OAAO,KAAK,CAAC;YACf,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,WAAW,GAAG,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;gBACnD,mCAAmC;gBACnC,IAAI,MAAM,CAAC,eAAe,CAAC,WAAW,CAAC,EAAE,CAAC;oBACxC,OAAO,IAAI,CAAC;gBACd,CAAC;gBACD,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;YACpC,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,YAAY,CAAC,KAAgB;QACzC,IAAI,CAAC;YACH,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBAC1C,OAAO,KAAK,CAAC;YACf,CAAC;YACD,IAAI,WAAmB,CAAC;YACxB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC9B,WAAW,GAAG,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC;YAC1C,CAAC;iBAAM,IAAI,KAAK,YAAY,MAAM,EAAE,CAAC;gBACnC,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC;YAC7B,CAAC;iBAAM,CAAC;gBACN,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;YACrC,CAAC;YAED,MAAM,MAAM,GACV,WAAW,KAAK,MAAM,CAAC,iBAAiB,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;YAErE,IAAI,MAAM,EAAE,CAAC;gBACX,IAAI,CAAC;oBACH,MAAM,UAAU,GAAW,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;oBACzD,MAAM,WAAW,GAAG,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;oBACrE,mCAAmC;oBACnC,IAAI,MAAM,CAAC,eAAe,CAAC,WAAW,CAAC,EAAE,CAAC;wBACxC,OAAO,IAAI,CAAC;oBACd,CAAC;oBACD,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;gBACpC,CAAC;gBAAC,MAAM,CAAC;oBACP,OAAO,KAAK,CAAC;gBACf,CAAC;YACH,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,eAAe,CAAC,KAAgB;QAC5C,IAAI,CAAC;YACH,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBAC1C,OAAO,KAAK,CAAC;YACf,CAAC;YACD,MAAM,cAAc,GAAG,MAAM,CAAC,iBAAiB,CAC7C,aAAa,CAAC,aAAa,CAC5B,CAAC;YACF,IAAI,WAAmB,CAAC;YACxB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC9B,WAAW,GAAG,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC;YAC1C,CAAC;iBAAM,IAAI,KAAK,YAAY,MAAM,EAAE,CAAC;gBACnC,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC;YAC7B,CAAC;iBAAM,CAAC;gBACN,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;YACrC,CAAC;YAED,IAAI,WAAW,KAAK,cAAc,EAAE,CAAC;gBACnC,OAAO,KAAK,CAAC;YACf,CAAC;YAED,IAAI,CAAC;gBACH,IAAI,CAAC,CAAC,KAAK,YAAY,MAAM,CAAC,EAAE,CAAC;oBAC/B,OAAO,KAAK,CAAC;gBACf,CAAC;gBACD,MAAM,WAAW,GAAG,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;gBAChE,mCAAmC;gBACnC,IAAI,MAAM,CAAC,eAAe,CAAC,WAAW,CAAC,EAAE,CAAC;oBACxC,OAAO,IAAI,CAAC;gBACd,CAAC;gBACD,OAAO,MAAM,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;YAC1C,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,YAAY,CAAC,KAAgB;QACzC,IAAI,CAAC;YACH,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBAC1C,OAAO,KAAK,CAAC;YACf,CAAC;YACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC9B,OAAO,KAAK,CAAC;YACf,CAAC;YACD,IAAI,KAAK,GAAG,EAAE,IAAI,KAAK,GAAG,MAAM,CAAC,gBAAgB,EAAE,CAAC;gBAClD,OAAO,KAAK,CAAC;YACf,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,UAAU,GAAG,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;gBACrD,mCAAmC;gBACnC,IAAI,MAAM,CAAC,eAAe,CAAC,UAAU,CAAC,EAAE,CAAC;oBACvC,OAAO,IAAI,CAAC;gBACd,CAAC;gBACD,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;YACnC,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,UAAU,CAAC,KAAgB;QACvC,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YAC1C,MAAM,IAAI,SAAS,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;QACjD,CAAC;QAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,OAAO,aAAa,CAAC,UAAU,CAAC;QAClC,CAAC;QAED,MAAM,QAAQ,GAAG,KAAK,YAAY,MAAM,CAAC;QACzC,MAAM,cAAc,GAAG,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;QAEtE,OAAO,MAAM,CAAC,iBAAiB,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;IAC5D,CAAC;IAED;;;;OAIG;IACK,MAAM,CAAC,mBAAmB,CAAC,SAAiB;QAClD,gBAAgB;QAChB,MAAM,GAAG,GAAG,SAAS,CAAC,OAAO,CAC3B,iCAAiC,EACjC,gBAAgB,CACjB,CAAC;QACF,OAAO,GAAkB,CAAC;IAC5B,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,aAAa,CACzB,IAMU;QAEV,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACxC,MAAM,IAAI,SAAS,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;QACjD,CAAC;QAED,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,OAAO,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAC1C,CAAC;aAAM,IACL,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;YACrB,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC,iBAAiB,CAAC,aAAa,CAAC,aAAa,CAAC,EACrE,CAAC;YACD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAiB,CAAC;YACtD,OAAO,MAAM,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QAC9C,CAAC;aAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACjC,MAAM,IAAI,SAAS,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;QACjD,CAAC;QACD,uCAAuC;QACvC,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QAC9B,IACE,QAAQ,CAAC,MAAM,KAAK,MAAM,CAAC,iBAAiB,CAAC,aAAa,CAAC,YAAY,CAAC,EACxE,CAAC;YACD,iBAAiB;YACjB,OAAO,MAAM,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QAC9C,CAAC;aAAM,IACL,QAAQ,CAAC,MAAM,KAAK,MAAM,CAAC,iBAAiB,CAAC,aAAa,CAAC,WAAW,CAAC,EACvE,CAAC;YACD,0BAA0B;YAC1B,OAAO,QAAuB,CAAC;QACjC,CAAC;aAAM,IACL,QAAQ,CAAC,MAAM,KAAK,MAAM,CAAC,iBAAiB,CAAC,aAAa,CAAC,UAAU,CAAC,EACtE,CAAC;YACD,cAAc;YACd,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAClE,OAAO,MAAM,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;QAC/C,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,SAAS,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;IAEM,MAAM,CAAC,cAAc,CAC1B,IAMU;QAEV,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACxC,MAAM,IAAI,SAAS,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;QACjD,CAAC;QAED,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,MAAM,OAAO,GAAG,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;YACjD,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAiB,CAAC;QACnD,CAAC;aAAM,IACL,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;YACrB,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC,iBAAiB,CAAC,aAAa,CAAC,aAAa,CAAC,EACrE,CAAC;YACD,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAiB,CAAC;QAC9C,CAAC;aAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACjC,MAAM,IAAI,SAAS,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;QACjD,CAAC;QACD,uCAAuC;QACvC,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QAE9B,IACE,QAAQ,CAAC,MAAM,KAAK,MAAM,CAAC,iBAAiB,CAAC,aAAa,CAAC,YAAY,CAAC,EACxE,CAAC;YACD,2BAA2B;YAC3B,OAAO,QAAwB,CAAC;QAClC,CAAC;aAAM,IACL,QAAQ,CAAC,MAAM,KAAK,MAAM,CAAC,iBAAiB,CAAC,aAAa,CAAC,WAAW,CAAC,EACvE,CAAC;YACD,gBAAgB;YAChB,OAAO,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAiB,CAAC;QACpD,CAAC;aAAM,IACL,QAAQ,CAAC,MAAM,KAAK,MAAM,CAAC,iBAAiB,CAAC,aAAa,CAAC,UAAU,CAAC,EACtE,CAAC;YACD,cAAc;YACd,OAAO,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAiB,CAAC;QACzE,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,SAAS,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,mBAAmB,CAAC,MAAc;QAC9C,IAAI,MAAM,GAAG,EAAE,IAAI,MAAM,GAAG,MAAM,CAAC,gBAAgB,EAAE,CAAC;YACpD,MAAM,IAAI,SAAS,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;QACjD,CAAC;QACD,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;QACzD,wDAAwD;QACxD,IAAI,UAAU,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;YAC7B,MAAM,IAAI,SAAS,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;QACjD,CAAC;QACD,MAAM,WAAW,GACf,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;YACtB,GAAG;YACH,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;YACvB,GAAG;YACH,UAAU,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC;YACxB,GAAG;YACH,UAAU,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC;YACxB,GAAG;YACH,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACvB,OAAO,WAA0B,CAAC;IACpC,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,eAAe,CAAC,KAAgB;QAC5C,MAAM,aAAa,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAC/C,IAAI,mBAAmB,GAAkB,MAAM,CAAC,KAAK,CAAC,CAAC,CAAkB,CAAC;QAC1E,QAAQ,aAAa,EAAE,CAAC;YACtB,KAAK,aAAa,CAAC,WAAW;gBAC5B,mBAAmB,GAAG,MAAM,CAAC,IAAI,CAC/B,MAAM,CAAC,cAAc,CAAC,KAAoB,CAAC,EAC3C,KAAK,CACW,CAAC;gBACnB,MAAM;YACR,KAAK,aAAa,CAAC,YAAY;gBAC7B,mBAAmB,GAAG,MAAM,CAAC,IAAI,CAC/B,MAAM,CAAC,cAAc,CAAC,KAAqB,CAAC,EAC5C,KAAK,CACW,CAAC;gBACnB,MAAM;YACR,KAAK,aAAa,CAAC,UAAU;gBAC3B,4DAA4D;gBAC5D,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,YAAY,MAAM,EAAE,CAAC;oBACzD,mBAAmB,GAAG,MAAM,CAAC,IAAI,CAC/B,KAAK,CAAC,QAAQ,EAAE,EAChB,QAAQ,CACQ,CAAC;gBACrB,CAAC;qBAAM,CAAC;oBACN,MAAM,IAAI,SAAS,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;gBACjD,CAAC;gBACD,MAAM;YACR,KAAK,aAAa,CAAC,aAAa;gBAC9B,mBAAmB,GAAG,KAAsB,CAAC;gBAC7C,MAAM;YACR,KAAK,aAAa,CAAC,UAAU;gBAC3B,mBAAmB,GAAG,MAAM,CAAC,IAAI,CAC/B,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,mBAAmB,CAAC,KAAe,CAAC,CAAC,EAClE,KAAK,CACW,CAAC;gBACnB,MAAM;YACR;gBACE,MAAM,IAAI,SAAS,CAAC,aAAa,CAAC,uBAAuB,CAAC,CAAC;QAC/D,CAAC;QACD,IACE,mBAAmB,CAAC,MAAM;YAC1B,MAAM,CAAC,iBAAiB,CAAC,aAAa,CAAC,aAAa,CAAC,EACrD,CAAC;YACD,MAAM,IAAI,SAAS,CACjB,aAAa,CAAC,wBAAwB,EACtC,SAAS,EACT,mBAAmB,CAAC,MAAM,CAC3B,CAAC;QACJ,CAAC;QACD,OAAO,mBAAmB,CAAC;IAC7B,CAAC;IAED;;;;;OAKG;IACI,MAAM,CAAC,KAAiC,EAAE,YAAY,GAAG,KAAK;QACnE,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,YAAY,EAAE,CAAC;YACjB,qDAAqD;YACrD,6DAA6D;YAC7D,MAAM,CAAC,GAAG,IAAI,CAAC,qBAAqB,CAAC;YACrC,MAAM,CAAC,GAAG,KAAK,CAAC,eAAe,CAAC;YAChC,IAAI,MAAM,GAAG,CAAC,CAAC;YACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC5B,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACxB,CAAC;YACD,OAAO,MAAM,KAAK,CAAC,CAAC;QACtB,CAAC;QAED,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,qBAAqB,EAAE,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IACjF,CAAC;IAED;;;OAGG;IACI,OAAO;QACZ,8BAA8B;QAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5C,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;gBACzB,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,YAAY,CAAC,IAAgC;QACzD,OAAO,CAAC,IAAI,IAAI,CAAC,IAAI,YAAY,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED;;;OAGG;IACI,KAAK;QACV,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAkB,CAAC,CAAC;IAC/D,CAAC;IAED;;;;OAIG;IACI,QAAQ;QACb,IAAI,IAAI,GAAG,CAAC,CAAC;QACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5C,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAC7C,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,4BAA4B;QAClD,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;OAIG;IACI,UAAU;QACf,uBAAuB;QACvB,IAAI,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;YAC/C,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,iDAAiD;QACjD,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACnC,MAAM,OAAO,GAAG,CAAC,WAAW,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;QAE1C,kCAAkC;QAClC,OAAO,OAAO,IAAI,CAAC,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;IAC5D,CAAC;IAED;;;;OAIG;IACI,SAAS;QACd,uCAAuC;QACvC,IAAI,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;YAC/C,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAClC,OAAO,OAAO,KAAK,CAAC,CAAC;IACvB,CAAC;IAED;;;;;OAKG;IACI,SAAS,CAAC,KAAc;QAC7B,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,qBAAqB,EAAE,KAAK,CAAC,eAAe,CAAC,CAAC;IAC3E,CAAC"}
@@ -0,0 +1,69 @@
1
+ import { BaseIdProvider } from '../../interfaces/id-provider';
2
+ /**
3
+ * Legacy 32-byte ID provider for backward compatibility.
4
+ *
5
+ * This provider maintains compatibility with existing encrypted data that uses
6
+ * 32-byte recipient IDs. It's provided for migration purposes and should be
7
+ * phased out in favor of more standard ID formats (ObjectID, UUID, GUID).
8
+ *
9
+ * Format: 32 random bytes (256 bits)
10
+ * Serialization: 64-character hexadecimal string
11
+ *
12
+ * @deprecated Use ObjectIdProvider, GuidV4Provider, or UuidProvider instead.
13
+ */
14
+ export declare class Legacy32ByteProvider extends BaseIdProvider {
15
+ readonly byteLength = 32;
16
+ readonly name = "Legacy32Byte";
17
+ /**
18
+ * Generate a new random 32-byte ID.
19
+ */
20
+ generate(): Uint8Array;
21
+ /**
22
+ * Validate a 32-byte ID buffer.
23
+ * Only checks length - all 32-byte buffers are considered valid.
24
+ */
25
+ validate(id: Uint8Array): boolean;
26
+ /**
27
+ * Serialize to 64-character hex string.
28
+ */
29
+ serialize(id: Uint8Array): string;
30
+ /**
31
+ * Deserialize a 64-character hex string to 32-byte buffer.
32
+ */
33
+ deserialize(str: string): Uint8Array;
34
+ }
35
+ /**
36
+ * Custom ID provider that accepts any fixed byte length.
37
+ *
38
+ * Use this when you need a non-standard ID size or custom validation logic.
39
+ * For standard formats, prefer ObjectIdProvider, GuidV4Provider, or UuidProvider.
40
+ *
41
+ * Example:
42
+ * ```typescript
43
+ * // 20-byte SHA-1 hash as recipient ID
44
+ * const provider = new CustomIdProvider(20, 'SHA1Hash');
45
+ * ```
46
+ */
47
+ export declare class CustomIdProvider extends BaseIdProvider {
48
+ readonly byteLength: number;
49
+ readonly name: string;
50
+ constructor(byteLength: number, name?: string);
51
+ /**
52
+ * Generate a new random ID of the specified byte length.
53
+ */
54
+ generate(): Uint8Array;
55
+ /**
56
+ * Validate an ID buffer.
57
+ * Only checks length - override this method for custom validation.
58
+ */
59
+ validate(id: Uint8Array): boolean;
60
+ /**
61
+ * Serialize to hexadecimal string.
62
+ */
63
+ serialize(id: Uint8Array): string;
64
+ /**
65
+ * Deserialize a hexadecimal string to buffer.
66
+ */
67
+ deserialize(str: string): Uint8Array;
68
+ }
69
+ //# sourceMappingURL=custom-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"custom-provider.d.ts","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-ecies-lib/src/lib/id-providers/custom-provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAK9D;;;;;;;;;;;GAWG;AACH,qBAAa,oBAAqB,SAAQ,cAAc;IACtD,QAAQ,CAAC,UAAU,MAAM;IACzB,QAAQ,CAAC,IAAI,kBAAkB;IAE/B;;OAEG;IACH,QAAQ,IAAI,UAAU;IAItB;;;OAGG;IACH,QAAQ,CAAC,EAAE,EAAE,UAAU,GAAG,OAAO;IAIjC;;OAEG;IACH,SAAS,CAAC,EAAE,EAAE,UAAU,GAAG,MAAM;IAQjC;;OAEG;IACH,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU;CAyBrC;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,gBAAiB,SAAQ,cAAc;IAClD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;gBAEV,UAAU,EAAE,MAAM,EAAE,IAAI,SAAW;IAgB/C;;OAEG;IACH,QAAQ,IAAI,UAAU;IAItB;;;OAGG;IACH,QAAQ,CAAC,EAAE,EAAE,UAAU,GAAG,OAAO;IAIjC;;OAEG;IACH,SAAS,CAAC,EAAE,EAAE,UAAU,GAAG,MAAM;IAQjC;;OAEG;IACH,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU;CA0BrC"}
@@ -0,0 +1,128 @@
1
+ import { BaseIdProvider } from '../../interfaces/id-provider';
2
+ import { randomBytes } from 'crypto';
3
+ import { IdProviderError } from '../../errors/id-provider';
4
+ import { IdProviderErrorType } from '../../enumerations/id-provider-error-type';
5
+ /**
6
+ * Legacy 32-byte ID provider for backward compatibility.
7
+ *
8
+ * This provider maintains compatibility with existing encrypted data that uses
9
+ * 32-byte recipient IDs. It's provided for migration purposes and should be
10
+ * phased out in favor of more standard ID formats (ObjectID, UUID, GUID).
11
+ *
12
+ * Format: 32 random bytes (256 bits)
13
+ * Serialization: 64-character hexadecimal string
14
+ *
15
+ * @deprecated Use ObjectIdProvider, GuidV4Provider, or UuidProvider instead.
16
+ */
17
+ export class Legacy32ByteProvider extends BaseIdProvider {
18
+ byteLength = 32;
19
+ name = 'Legacy32Byte';
20
+ /**
21
+ * Generate a new random 32-byte ID.
22
+ */
23
+ generate() {
24
+ return randomBytes(32);
25
+ }
26
+ /**
27
+ * Validate a 32-byte ID buffer.
28
+ * Only checks length - all 32-byte buffers are considered valid.
29
+ */
30
+ validate(id) {
31
+ return id.length === this.byteLength;
32
+ }
33
+ /**
34
+ * Serialize to 64-character hex string.
35
+ */
36
+ serialize(id) {
37
+ this.validateLength(id, 'Legacy32ByteProvider.serialize');
38
+ return Array.from(id)
39
+ .map(b => b.toString(16).padStart(2, '0'))
40
+ .join('');
41
+ }
42
+ /**
43
+ * Deserialize a 64-character hex string to 32-byte buffer.
44
+ */
45
+ deserialize(str) {
46
+ if (typeof str !== 'string') {
47
+ throw new IdProviderError(IdProviderErrorType.InputMustBeString);
48
+ }
49
+ if (str.length !== 64) {
50
+ throw new IdProviderError(IdProviderErrorType.InvalidStringLength, undefined, undefined, { expected: 64, actual: str.length });
51
+ }
52
+ if (!/^[0-9a-fA-F]{64}$/.test(str)) {
53
+ throw new IdProviderError(IdProviderErrorType.InvalidCharacters);
54
+ }
55
+ const buffer = new Uint8Array(32);
56
+ for (let i = 0; i < 32; i++) {
57
+ buffer[i] = parseInt(str.substr(i * 2, 2), 16);
58
+ }
59
+ return buffer;
60
+ }
61
+ }
62
+ /**
63
+ * Custom ID provider that accepts any fixed byte length.
64
+ *
65
+ * Use this when you need a non-standard ID size or custom validation logic.
66
+ * For standard formats, prefer ObjectIdProvider, GuidV4Provider, or UuidProvider.
67
+ *
68
+ * Example:
69
+ * ```typescript
70
+ * // 20-byte SHA-1 hash as recipient ID
71
+ * const provider = new CustomIdProvider(20, 'SHA1Hash');
72
+ * ```
73
+ */
74
+ export class CustomIdProvider extends BaseIdProvider {
75
+ byteLength;
76
+ name;
77
+ constructor(byteLength, name = 'Custom') {
78
+ super();
79
+ if (!Number.isInteger(byteLength) || byteLength < 1 || byteLength > 255) {
80
+ throw new IdProviderError(IdProviderErrorType.InvalidByteLengthParameter, undefined, undefined, { value: byteLength });
81
+ }
82
+ this.byteLength = byteLength;
83
+ this.name = name;
84
+ }
85
+ /**
86
+ * Generate a new random ID of the specified byte length.
87
+ */
88
+ generate() {
89
+ return randomBytes(this.byteLength);
90
+ }
91
+ /**
92
+ * Validate an ID buffer.
93
+ * Only checks length - override this method for custom validation.
94
+ */
95
+ validate(id) {
96
+ return id.length === this.byteLength;
97
+ }
98
+ /**
99
+ * Serialize to hexadecimal string.
100
+ */
101
+ serialize(id) {
102
+ this.validateLength(id, `${this.name}.serialize`);
103
+ return Array.from(id)
104
+ .map(b => b.toString(16).padStart(2, '0'))
105
+ .join('');
106
+ }
107
+ /**
108
+ * Deserialize a hexadecimal string to buffer.
109
+ */
110
+ deserialize(str) {
111
+ if (typeof str !== 'string') {
112
+ throw new IdProviderError(IdProviderErrorType.InputMustBeString);
113
+ }
114
+ const expectedLength = this.byteLength * 2;
115
+ if (str.length !== expectedLength) {
116
+ throw new IdProviderError(IdProviderErrorType.InvalidStringLength, undefined, undefined, { expected: expectedLength, actual: str.length });
117
+ }
118
+ if (!/^[0-9a-fA-F]+$/.test(str)) {
119
+ throw new IdProviderError(IdProviderErrorType.InvalidCharacters);
120
+ }
121
+ const buffer = new Uint8Array(this.byteLength);
122
+ for (let i = 0; i < this.byteLength; i++) {
123
+ buffer[i] = parseInt(str.substr(i * 2, 2), 16);
124
+ }
125
+ return buffer;
126
+ }
127
+ }
128
+ //# sourceMappingURL=custom-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"custom-provider.js","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-ecies-lib/src/lib/id-providers/custom-provider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ import { BaseIdProvider } from '../../interfaces/id-provider';
2
+ /**
3
+ * ID provider for GUIDv4 (16 bytes raw, 24 bytes base64).
4
+ *
5
+ * Uses the GuidV4 class which provides RFC 4122 compliant v4 GUIDs.
6
+ * The raw binary representation is 16 bytes (128 bits).
7
+ *
8
+ * Serialization uses base64 for compactness (24 characters vs 36 for hex with dashes).
9
+ */
10
+ export declare class GuidV4Provider extends BaseIdProvider {
11
+ readonly byteLength = 16;
12
+ readonly name = "GUIDv4";
13
+ /**
14
+ * Generate a new random GUIDv4.
15
+ */
16
+ generate(): Uint8Array;
17
+ /**
18
+ * Validate a GUID buffer.
19
+ * Checks length and RFC 4122 v4 compliance.
20
+ */
21
+ validate(id: Uint8Array): boolean;
22
+ /**
23
+ * Serialize GUID to base64 string (24 characters).
24
+ */
25
+ serialize(id: Uint8Array): string;
26
+ /**
27
+ * Deserialize a base64 or hex GUID string to buffer.
28
+ * Accepts multiple formats: base64 (24 chars), short hex (32 chars), full hex (36 chars).
29
+ */
30
+ deserialize(str: string): Uint8Array;
31
+ /**
32
+ * Create a GUID from a namespace and name (v5 - SHA-1 based).
33
+ * Useful for deterministic GUIDs.
34
+ */
35
+ fromNamespace(namespace: string, name: string): Uint8Array;
36
+ /**
37
+ * Get the GUID version from a buffer.
38
+ * Should return 4 for valid v4 GUIDs.
39
+ */
40
+ getVersion(id: Uint8Array): number | undefined;
41
+ /**
42
+ * Check if a GUID is the empty/nil GUID (all zeros).
43
+ */
44
+ isEmpty(id: Uint8Array): boolean;
45
+ }
46
+ //# sourceMappingURL=guidv4-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guidv4-provider.d.ts","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-ecies-lib/src/lib/id-providers/guidv4-provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAK9D;;;;;;;GAOG;AACH,qBAAa,cAAe,SAAQ,cAAc;IAChD,QAAQ,CAAC,UAAU,MAAM;IACzB,QAAQ,CAAC,IAAI,YAAY;IAEzB;;OAEG;IACH,QAAQ,IAAI,UAAU;IAKtB;;;OAGG;IACH,QAAQ,CAAC,EAAE,EAAE,UAAU,GAAG,OAAO;IAcjC;;OAEG;IACH,SAAS,CAAC,EAAE,EAAE,UAAU,GAAG,MAAM;IAgBjC;;;OAGG;IACH,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU;IAkBpC;;;OAGG;IACH,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,UAAU;IAK1D;;;OAGG;IACH,UAAU,CAAC,EAAE,EAAE,UAAU,GAAG,MAAM,GAAG,SAAS;IAW9C;;OAEG;IACH,OAAO,CAAC,EAAE,EAAE,UAAU,GAAG,OAAO;CAUjC"}
@@ -0,0 +1,105 @@
1
+ import { BaseIdProvider } from '../../interfaces/id-provider';
2
+ import { GuidV4 } from '../guid';
3
+ import { IdProviderError } from '../../errors/id-provider';
4
+ import { IdProviderErrorType } from '../../enumerations/id-provider-error-type';
5
+ /**
6
+ * ID provider for GUIDv4 (16 bytes raw, 24 bytes base64).
7
+ *
8
+ * Uses the GuidV4 class which provides RFC 4122 compliant v4 GUIDs.
9
+ * The raw binary representation is 16 bytes (128 bits).
10
+ *
11
+ * Serialization uses base64 for compactness (24 characters vs 36 for hex with dashes).
12
+ */
13
+ export class GuidV4Provider extends BaseIdProvider {
14
+ byteLength = 16;
15
+ name = 'GUIDv4';
16
+ /**
17
+ * Generate a new random GUIDv4.
18
+ */
19
+ generate() {
20
+ const guid = GuidV4.generate();
21
+ return guid.asRawGuidBufferUnsafe;
22
+ }
23
+ /**
24
+ * Validate a GUID buffer.
25
+ * Checks length and RFC 4122 v4 compliance.
26
+ */
27
+ validate(id) {
28
+ if (id.length !== this.byteLength) {
29
+ return false;
30
+ }
31
+ try {
32
+ // Convert to GuidV4 and validate
33
+ const guid = new GuidV4(Buffer.from(id));
34
+ return guid.isValidV4();
35
+ }
36
+ catch {
37
+ return false;
38
+ }
39
+ }
40
+ /**
41
+ * Serialize GUID to base64 string (24 characters).
42
+ */
43
+ serialize(id) {
44
+ this.validateLength(id, 'GuidV4Provider.serialize');
45
+ try {
46
+ const guid = new GuidV4(Buffer.from(id));
47
+ return guid.asBase64Guid;
48
+ }
49
+ catch (error) {
50
+ throw new IdProviderError(IdProviderErrorType.InvalidGuidBuffer, { cause: error instanceof Error ? error : undefined }, undefined, { message: error instanceof Error ? error.message : String(error) });
51
+ }
52
+ }
53
+ /**
54
+ * Deserialize a base64 or hex GUID string to buffer.
55
+ * Accepts multiple formats: base64 (24 chars), short hex (32 chars), full hex (36 chars).
56
+ */
57
+ deserialize(str) {
58
+ if (typeof str !== 'string') {
59
+ throw new IdProviderError(IdProviderErrorType.InputMustBeString);
60
+ }
61
+ try {
62
+ const guid = GuidV4.parse(str);
63
+ return guid.asRawGuidBufferUnsafe;
64
+ }
65
+ catch (error) {
66
+ throw new IdProviderError(IdProviderErrorType.ParseFailed, { cause: error instanceof Error ? error : undefined }, undefined, { input: str, message: error instanceof Error ? error.message : String(error) });
67
+ }
68
+ }
69
+ /**
70
+ * Create a GUID from a namespace and name (v5 - SHA-1 based).
71
+ * Useful for deterministic GUIDs.
72
+ */
73
+ fromNamespace(namespace, name) {
74
+ const guid = GuidV4.v5(name, namespace);
75
+ return guid.asRawGuidBufferUnsafe;
76
+ }
77
+ /**
78
+ * Get the GUID version from a buffer.
79
+ * Should return 4 for valid v4 GUIDs.
80
+ */
81
+ getVersion(id) {
82
+ this.validateLength(id, 'GuidV4Provider.getVersion');
83
+ try {
84
+ const guid = new GuidV4(Buffer.from(id));
85
+ return guid.getVersion();
86
+ }
87
+ catch {
88
+ return undefined;
89
+ }
90
+ }
91
+ /**
92
+ * Check if a GUID is the empty/nil GUID (all zeros).
93
+ */
94
+ isEmpty(id) {
95
+ this.validateLength(id, 'GuidV4Provider.isEmpty');
96
+ try {
97
+ const guid = new GuidV4(Buffer.from(id));
98
+ return guid.isEmpty();
99
+ }
100
+ catch {
101
+ return false;
102
+ }
103
+ }
104
+ }
105
+ //# sourceMappingURL=guidv4-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guidv4-provider.js","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-ecies-lib/src/lib/id-providers/guidv4-provider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * ID Providers for recipient identification in multi-recipient encryption.
3
+ *
4
+ * The library supports multiple ID formats to accommodate different use cases:
5
+ * - ObjectID: MongoDB/BSON ObjectID (12 bytes)
6
+ * - GUIDv4: RFC 4122 v4 GUID (16 bytes, base64 serialization)
7
+ * - UUID: RFC 4122 v4 UUID (16 bytes, standard format with dashes)
8
+ * - Legacy32Byte: Backward compatible 32-byte IDs (deprecated)
9
+ * - Custom: User-defined byte length and validation
10
+ *
11
+ * @example
12
+ * ```typescript
13
+ * import { ObjectIdProvider, GuidV4Provider } from './lib/id-providers';
14
+ *
15
+ * // Use MongoDB ObjectIDs (12 bytes)
16
+ * const objectIdProvider = new ObjectIdProvider();
17
+ * const id = objectIdProvider.generate();
18
+ *
19
+ * // Use GUIDs (16 bytes)
20
+ * const guidProvider = new GuidV4Provider();
21
+ * const guid = guidProvider.generate();
22
+ * ```
23
+ */
24
+ export { ObjectIdProvider } from './objectid-provider';
25
+ export { GuidV4Provider } from './guidv4-provider';
26
+ export { UuidProvider } from './uuid-provider';
27
+ export { Legacy32ByteProvider, CustomIdProvider } from './custom-provider';
28
+ export type { IIdProvider } from '../../interfaces/id-provider';
29
+ export { BaseIdProvider } from '../../interfaces/id-provider';
30
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-ecies-lib/src/lib/id-providers/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAE3E,YAAY,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * ID Providers for recipient identification in multi-recipient encryption.
3
+ *
4
+ * The library supports multiple ID formats to accommodate different use cases:
5
+ * - ObjectID: MongoDB/BSON ObjectID (12 bytes)
6
+ * - GUIDv4: RFC 4122 v4 GUID (16 bytes, base64 serialization)
7
+ * - UUID: RFC 4122 v4 UUID (16 bytes, standard format with dashes)
8
+ * - Legacy32Byte: Backward compatible 32-byte IDs (deprecated)
9
+ * - Custom: User-defined byte length and validation
10
+ *
11
+ * @example
12
+ * ```typescript
13
+ * import { ObjectIdProvider, GuidV4Provider } from './lib/id-providers';
14
+ *
15
+ * // Use MongoDB ObjectIDs (12 bytes)
16
+ * const objectIdProvider = new ObjectIdProvider();
17
+ * const id = objectIdProvider.generate();
18
+ *
19
+ * // Use GUIDs (16 bytes)
20
+ * const guidProvider = new GuidV4Provider();
21
+ * const guid = guidProvider.generate();
22
+ * ```
23
+ */
24
+ export { ObjectIdProvider } from './objectid-provider';
25
+ export { GuidV4Provider } from './guidv4-provider';
26
+ export { UuidProvider } from './uuid-provider';
27
+ export { Legacy32ByteProvider, CustomIdProvider } from './custom-provider';
28
+ export { BaseIdProvider } from '../../interfaces/id-provider';
29
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-ecies-lib/src/lib/id-providers/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAG3E,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC"}
@@ -0,0 +1,33 @@
1
+ import { BaseIdProvider } from '../../interfaces/id-provider';
2
+ /**
3
+ * ID provider for MongoDB/BSON ObjectIDs (12 bytes).
4
+ *
5
+ * Format: 4-byte timestamp + 5-byte random + 3-byte counter
6
+ * This matches the MongoDB ObjectID specification.
7
+ *
8
+ * @see https://docs.mongodb.com/manual/reference/method/ObjectId/
9
+ */
10
+ export declare class ObjectIdProvider extends BaseIdProvider {
11
+ readonly byteLength = 12;
12
+ readonly name = "ObjectID";
13
+ constructor();
14
+ /**
15
+ * Generate a new MongoDB-style ObjectID.
16
+ * Format: [timestamp:4][random:5][counter:3]
17
+ */
18
+ generate(): Uint8Array;
19
+ /**
20
+ * Validate an ObjectID buffer.
21
+ * Checks length and ensures it's not all zeros (invalid ObjectID).
22
+ */
23
+ validate(id: Uint8Array): boolean;
24
+ /**
25
+ * Serialize ObjectID to 24-character hex string (MongoDB standard).
26
+ */
27
+ serialize(id: Uint8Array): string;
28
+ /**
29
+ * Deserialize a 24-character hex string to ObjectID buffer.
30
+ */
31
+ deserialize(str: string): Uint8Array;
32
+ }
33
+ //# sourceMappingURL=objectid-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"objectid-provider.d.ts","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-ecies-lib/src/lib/id-providers/objectid-provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAK9D;;;;;;;GAOG;AACH,qBAAa,gBAAiB,SAAQ,cAAc;IAClD,QAAQ,CAAC,UAAU,MAAM;IACzB,QAAQ,CAAC,IAAI,cAAc;;IAM3B;;;OAGG;IACH,QAAQ,IAAI,UAAU;IAOtB;;;OAGG;IACH,QAAQ,CAAC,EAAE,EAAE,UAAU,GAAG,OAAO;IAiBjC;;OAEG;IACH,SAAS,CAAC,EAAE,EAAE,UAAU,GAAG,MAAM;IAQjC;;OAEG;IACH,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU;CA6BrC"}
@@ -0,0 +1,79 @@
1
+ import { BaseIdProvider } from '../../interfaces/id-provider';
2
+ import { ObjectId } from 'bson';
3
+ import { IdProviderError } from '../../errors/id-provider';
4
+ import { IdProviderErrorType } from '../../enumerations/id-provider-error-type';
5
+ /**
6
+ * ID provider for MongoDB/BSON ObjectIDs (12 bytes).
7
+ *
8
+ * Format: 4-byte timestamp + 5-byte random + 3-byte counter
9
+ * This matches the MongoDB ObjectID specification.
10
+ *
11
+ * @see https://docs.mongodb.com/manual/reference/method/ObjectId/
12
+ */
13
+ export class ObjectIdProvider extends BaseIdProvider {
14
+ byteLength = 12;
15
+ name = 'ObjectID';
16
+ constructor() {
17
+ super();
18
+ }
19
+ /**
20
+ * Generate a new MongoDB-style ObjectID.
21
+ * Format: [timestamp:4][random:5][counter:3]
22
+ */
23
+ generate() {
24
+ const buffer = new Uint8Array(12);
25
+ const objectId = new ObjectId();
26
+ buffer.set(objectId.id, 0);
27
+ return buffer;
28
+ }
29
+ /**
30
+ * Validate an ObjectID buffer.
31
+ * Checks length and ensures it's not all zeros (invalid ObjectID).
32
+ */
33
+ validate(id) {
34
+ if (id.length !== this.byteLength) {
35
+ return false;
36
+ }
37
+ // Check if all bytes are zero (invalid ObjectID)
38
+ let allZeros = true;
39
+ for (let i = 0; i < id.length; i++) {
40
+ if (id[i] !== 0) {
41
+ allZeros = false;
42
+ break;
43
+ }
44
+ }
45
+ return !allZeros;
46
+ }
47
+ /**
48
+ * Serialize ObjectID to 24-character hex string (MongoDB standard).
49
+ */
50
+ serialize(id) {
51
+ this.validateLength(id, 'ObjectIdProvider.serialize');
52
+ return Array.from(id)
53
+ .map(b => b.toString(16).padStart(2, '0'))
54
+ .join('');
55
+ }
56
+ /**
57
+ * Deserialize a 24-character hex string to ObjectID buffer.
58
+ */
59
+ deserialize(str) {
60
+ if (typeof str !== 'string') {
61
+ throw new IdProviderError(IdProviderErrorType.InputMustBeString);
62
+ }
63
+ if (str.length !== 24) {
64
+ throw new IdProviderError(IdProviderErrorType.InvalidStringLength, undefined, undefined, { expected: 24, actual: str.length });
65
+ }
66
+ if (!/^[0-9a-fA-F]{24}$/.test(str)) {
67
+ throw new IdProviderError(IdProviderErrorType.InvalidCharacters);
68
+ }
69
+ const buffer = new Uint8Array(12);
70
+ for (let i = 0; i < 12; i++) {
71
+ buffer[i] = parseInt(str.substr(i * 2, 2), 16);
72
+ }
73
+ if (!this.validate(buffer)) {
74
+ throw new IdProviderError(IdProviderErrorType.InvalidDeserializedId);
75
+ }
76
+ return buffer;
77
+ }
78
+ }
79
+ //# sourceMappingURL=objectid-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"objectid-provider.js","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-ecies-lib/src/lib/id-providers/objectid-provider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ import { BaseIdProvider } from '../../interfaces/id-provider';
2
+ /**
3
+ * ID provider for standard RFC 4122 UUIDs (16 bytes).
4
+ *
5
+ * Uses the 'uuid' npm package for UUID generation and validation.
6
+ * Serialization uses the standard UUID format with dashes (36 characters).
7
+ *
8
+ * This is functionally similar to GuidV4Provider but uses standard UUID
9
+ * string formatting (with dashes) instead of base64.
10
+ */
11
+ export declare class UuidProvider extends BaseIdProvider {
12
+ readonly byteLength = 16;
13
+ readonly name = "UUID";
14
+ /**
15
+ * Generate a new random UUIDv4.
16
+ */
17
+ generate(): Uint8Array;
18
+ /**
19
+ * Validate a UUID buffer.
20
+ * Checks length and RFC 4122 compliance.
21
+ */
22
+ validate(id: Uint8Array): boolean;
23
+ /**
24
+ * Serialize UUID to standard format with dashes (36 characters).
25
+ * Format: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
26
+ */
27
+ serialize(id: Uint8Array): string;
28
+ /**
29
+ * Deserialize a UUID string (with or without dashes) to buffer.
30
+ */
31
+ deserialize(str: string): Uint8Array;
32
+ /**
33
+ * Extract the version from a UUID buffer.
34
+ * Should return 4 for v4 UUIDs.
35
+ */
36
+ getVersion(id: Uint8Array): number | undefined;
37
+ /**
38
+ * Check if a UUID is the nil UUID (all zeros).
39
+ */
40
+ isNil(id: Uint8Array): boolean;
41
+ }
42
+ //# sourceMappingURL=uuid-provider.d.ts.map