@opentdf/sdk 0.1.0-beta.1701

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 (566) hide show
  1. package/README.md +52 -0
  2. package/dist/cjs/package.json +3 -0
  3. package/dist/cjs/src/access.js +155 -0
  4. package/dist/cjs/src/auth/Eas.js +60 -0
  5. package/dist/cjs/src/auth/auth.js +79 -0
  6. package/dist/cjs/src/auth/oidc-clientcredentials-provider.js +26 -0
  7. package/dist/cjs/src/auth/oidc-externaljwt-provider.js +33 -0
  8. package/dist/cjs/src/auth/oidc-refreshtoken-provider.js +34 -0
  9. package/dist/cjs/src/auth/oidc.js +222 -0
  10. package/dist/cjs/src/auth/providers.js +143 -0
  11. package/dist/cjs/src/encodings/base64.js +154 -0
  12. package/dist/cjs/src/encodings/hex.js +70 -0
  13. package/dist/cjs/src/encodings/index.js +29 -0
  14. package/dist/cjs/src/errors.js +138 -0
  15. package/dist/cjs/src/index.js +344 -0
  16. package/dist/cjs/src/nanotdf/Client.js +296 -0
  17. package/dist/cjs/src/nanotdf/NanoTDF.js +94 -0
  18. package/dist/cjs/src/nanotdf/browser-entry.js +19 -0
  19. package/dist/cjs/src/nanotdf/constants.js +5 -0
  20. package/dist/cjs/src/nanotdf/decrypt.js +17 -0
  21. package/dist/cjs/src/nanotdf/encrypt-dataset.js +38 -0
  22. package/dist/cjs/src/nanotdf/encrypt.js +132 -0
  23. package/dist/cjs/src/nanotdf/enum/CipherEnum.js +13 -0
  24. package/dist/cjs/src/nanotdf/enum/CurveNameEnum.js +15 -0
  25. package/dist/cjs/src/nanotdf/enum/EncodingEnum.js +8 -0
  26. package/dist/cjs/src/nanotdf/enum/PolicyTypeEnum.js +11 -0
  27. package/dist/cjs/src/nanotdf/enum/ProtocolEnum.js +10 -0
  28. package/dist/cjs/src/nanotdf/enum/ResourceLocatorIdentifierEnum.js +11 -0
  29. package/dist/cjs/src/nanotdf/helpers/calculateByCurve.js +29 -0
  30. package/dist/cjs/src/nanotdf/helpers/getHkdfSalt.js +11 -0
  31. package/dist/cjs/src/nanotdf/index.js +25 -0
  32. package/dist/cjs/src/nanotdf/interfaces/PolicyInterface.js +3 -0
  33. package/dist/cjs/src/nanotdf/models/Ciphers.js +61 -0
  34. package/dist/cjs/src/nanotdf/models/DefaultParams.js +27 -0
  35. package/dist/cjs/src/nanotdf/models/EcCurves.js +39 -0
  36. package/dist/cjs/src/nanotdf/models/Header.js +255 -0
  37. package/dist/cjs/src/nanotdf/models/Payload.js +158 -0
  38. package/dist/cjs/src/nanotdf/models/Policy/AbstractPolicy.js +73 -0
  39. package/dist/cjs/src/nanotdf/models/Policy/EmbeddedPolicy.js +82 -0
  40. package/dist/cjs/src/nanotdf/models/Policy/PolicyFactory.js +38 -0
  41. package/dist/cjs/src/nanotdf/models/Policy/RemotePolicy.js +62 -0
  42. package/dist/cjs/src/nanotdf/models/ResourceLocator.js +211 -0
  43. package/dist/cjs/src/nanotdf/models/Signature.js +77 -0
  44. package/dist/cjs/src/nanotdf-crypto/ciphers.js +17 -0
  45. package/dist/cjs/src/nanotdf-crypto/decrypt.js +24 -0
  46. package/dist/cjs/src/nanotdf-crypto/digest.js +7 -0
  47. package/dist/cjs/src/nanotdf-crypto/ecdsaSignature.js +83 -0
  48. package/dist/cjs/src/nanotdf-crypto/encrypt.js +24 -0
  49. package/dist/cjs/src/nanotdf-crypto/enums.js +52 -0
  50. package/dist/cjs/src/nanotdf-crypto/exportCryptoKey.js +20 -0
  51. package/dist/cjs/src/nanotdf-crypto/generateKeyPair.js +13 -0
  52. package/dist/cjs/src/nanotdf-crypto/generateRandomNumber.js +12 -0
  53. package/dist/cjs/src/nanotdf-crypto/importRawKey.js +18 -0
  54. package/dist/cjs/src/nanotdf-crypto/index.js +52 -0
  55. package/dist/cjs/src/nanotdf-crypto/keyAgreement.js +91 -0
  56. package/dist/cjs/src/nanotdf-crypto/pemPublicToCrypto.js +225 -0
  57. package/dist/cjs/src/policy/api.js +58 -0
  58. package/dist/cjs/src/policy/attributes.js +3 -0
  59. package/dist/cjs/src/policy/granter.js +146 -0
  60. package/dist/cjs/src/tdf/AttributeObject.js +15 -0
  61. package/dist/cjs/src/tdf/AttributeObjectJwt.js +3 -0
  62. package/dist/cjs/src/tdf/Crypto.js +47 -0
  63. package/dist/cjs/src/tdf/EntityObject.js +3 -0
  64. package/dist/cjs/src/tdf/NanoTDF/NanoTDF.js +38 -0
  65. package/dist/cjs/src/tdf/Policy.js +50 -0
  66. package/dist/cjs/src/tdf/PolicyObject.js +3 -0
  67. package/dist/cjs/src/tdf/TypedArray.js +3 -0
  68. package/dist/cjs/src/tdf/index.js +35 -0
  69. package/dist/cjs/src/types/index.js +3 -0
  70. package/dist/cjs/src/utils.js +147 -0
  71. package/dist/cjs/src/version.js +12 -0
  72. package/dist/cjs/tdf3/index.js +57 -0
  73. package/dist/cjs/tdf3/src/assertions.js +118 -0
  74. package/dist/cjs/tdf3/src/binary.js +153 -0
  75. package/dist/cjs/tdf3/src/ciphers/aes-gcm-cipher.js +56 -0
  76. package/dist/cjs/tdf3/src/ciphers/algorithms.js +8 -0
  77. package/dist/cjs/tdf3/src/ciphers/index.js +8 -0
  78. package/dist/cjs/tdf3/src/ciphers/symmetric-cipher-base.js +22 -0
  79. package/dist/cjs/tdf3/src/client/DecoratedReadableStream.js +116 -0
  80. package/dist/cjs/tdf3/src/client/builders.js +561 -0
  81. package/dist/cjs/tdf3/src/client/index.js +460 -0
  82. package/dist/cjs/tdf3/src/client/validation.js +63 -0
  83. package/dist/cjs/tdf3/src/crypto/crypto-utils.js +116 -0
  84. package/dist/cjs/tdf3/src/crypto/declarations.js +8 -0
  85. package/dist/cjs/tdf3/src/crypto/index.js +315 -0
  86. package/dist/cjs/tdf3/src/index.js +34 -0
  87. package/dist/cjs/tdf3/src/models/attribute-set.js +122 -0
  88. package/dist/cjs/tdf3/src/models/encryption-information.js +90 -0
  89. package/dist/cjs/tdf3/src/models/index.js +25 -0
  90. package/dist/cjs/tdf3/src/models/key-access.js +103 -0
  91. package/dist/cjs/tdf3/src/models/manifest.js +3 -0
  92. package/dist/cjs/tdf3/src/models/payload.js +3 -0
  93. package/dist/cjs/tdf3/src/models/policy.js +24 -0
  94. package/dist/cjs/tdf3/src/models/upsert-response.js +3 -0
  95. package/dist/cjs/tdf3/src/tdf.js +907 -0
  96. package/dist/cjs/tdf3/src/templates/default.html.js +98 -0
  97. package/dist/cjs/tdf3/src/templates/escaper.js +15 -0
  98. package/dist/cjs/tdf3/src/templates/index.js +12 -0
  99. package/dist/cjs/tdf3/src/utils/buffer-crc32.js +48 -0
  100. package/dist/cjs/tdf3/src/utils/chunkers.js +106 -0
  101. package/dist/cjs/tdf3/src/utils/index.js +296 -0
  102. package/dist/cjs/tdf3/src/utils/keysplit.js +61 -0
  103. package/dist/cjs/tdf3/src/utils/zip-reader.js +253 -0
  104. package/dist/cjs/tdf3/src/utils/zip-writer.js +308 -0
  105. package/dist/cjs/tdf3/src/version.js +6 -0
  106. package/dist/types/src/access.d.ts +47 -0
  107. package/dist/types/src/access.d.ts.map +1 -0
  108. package/dist/types/src/auth/Eas.d.ts +34 -0
  109. package/dist/types/src/auth/Eas.d.ts.map +1 -0
  110. package/dist/types/src/auth/auth.d.ts +86 -0
  111. package/dist/types/src/auth/auth.d.ts.map +1 -0
  112. package/dist/types/src/auth/oidc-clientcredentials-provider.d.ts +9 -0
  113. package/dist/types/src/auth/oidc-clientcredentials-provider.d.ts.map +1 -0
  114. package/dist/types/src/auth/oidc-externaljwt-provider.d.ts +10 -0
  115. package/dist/types/src/auth/oidc-externaljwt-provider.d.ts.map +1 -0
  116. package/dist/types/src/auth/oidc-refreshtoken-provider.d.ts +10 -0
  117. package/dist/types/src/auth/oidc-refreshtoken-provider.d.ts.map +1 -0
  118. package/dist/types/src/auth/oidc.d.ts +104 -0
  119. package/dist/types/src/auth/oidc.d.ts.map +1 -0
  120. package/dist/types/src/auth/providers.d.ts +67 -0
  121. package/dist/types/src/auth/providers.d.ts.map +1 -0
  122. package/dist/types/src/encodings/base64.d.ts +18 -0
  123. package/dist/types/src/encodings/base64.d.ts.map +1 -0
  124. package/dist/types/src/encodings/hex.d.ts +5 -0
  125. package/dist/types/src/encodings/hex.d.ts.map +1 -0
  126. package/dist/types/src/encodings/index.d.ts +3 -0
  127. package/dist/types/src/encodings/index.d.ts.map +1 -0
  128. package/dist/types/src/errors.d.ts +72 -0
  129. package/dist/types/src/errors.d.ts.map +1 -0
  130. package/dist/types/src/index.d.ts +138 -0
  131. package/dist/types/src/index.d.ts.map +1 -0
  132. package/dist/types/src/nanotdf/Client.d.ts +95 -0
  133. package/dist/types/src/nanotdf/Client.d.ts.map +1 -0
  134. package/dist/types/src/nanotdf/NanoTDF.d.ts +25 -0
  135. package/dist/types/src/nanotdf/NanoTDF.d.ts.map +1 -0
  136. package/dist/types/src/nanotdf/browser-entry.d.ts +17 -0
  137. package/dist/types/src/nanotdf/browser-entry.d.ts.map +1 -0
  138. package/dist/types/src/nanotdf/constants.d.ts +2 -0
  139. package/dist/types/src/nanotdf/constants.d.ts.map +1 -0
  140. package/dist/types/src/nanotdf/decrypt.d.ts +9 -0
  141. package/dist/types/src/nanotdf/decrypt.d.ts.map +1 -0
  142. package/dist/types/src/nanotdf/encrypt-dataset.d.ts +12 -0
  143. package/dist/types/src/nanotdf/encrypt-dataset.d.ts.map +1 -0
  144. package/dist/types/src/nanotdf/encrypt.d.ts +14 -0
  145. package/dist/types/src/nanotdf/encrypt.d.ts.map +1 -0
  146. package/dist/types/src/nanotdf/enum/CipherEnum.d.ts +10 -0
  147. package/dist/types/src/nanotdf/enum/CipherEnum.d.ts.map +1 -0
  148. package/dist/types/src/nanotdf/enum/CurveNameEnum.d.ts +12 -0
  149. package/dist/types/src/nanotdf/enum/CurveNameEnum.d.ts.map +1 -0
  150. package/dist/types/src/nanotdf/enum/EncodingEnum.d.ts +5 -0
  151. package/dist/types/src/nanotdf/enum/EncodingEnum.d.ts.map +1 -0
  152. package/dist/types/src/nanotdf/enum/PolicyTypeEnum.d.ts +8 -0
  153. package/dist/types/src/nanotdf/enum/PolicyTypeEnum.d.ts.map +1 -0
  154. package/dist/types/src/nanotdf/enum/ProtocolEnum.d.ts +7 -0
  155. package/dist/types/src/nanotdf/enum/ProtocolEnum.d.ts.map +1 -0
  156. package/dist/types/src/nanotdf/enum/ResourceLocatorIdentifierEnum.d.ts +8 -0
  157. package/dist/types/src/nanotdf/enum/ResourceLocatorIdentifierEnum.d.ts.map +1 -0
  158. package/dist/types/src/nanotdf/helpers/calculateByCurve.d.ts +20 -0
  159. package/dist/types/src/nanotdf/helpers/calculateByCurve.d.ts.map +1 -0
  160. package/dist/types/src/nanotdf/helpers/getHkdfSalt.d.ts +9 -0
  161. package/dist/types/src/nanotdf/helpers/getHkdfSalt.d.ts.map +1 -0
  162. package/dist/types/src/nanotdf/index.d.ts +9 -0
  163. package/dist/types/src/nanotdf/index.d.ts.map +1 -0
  164. package/dist/types/src/nanotdf/interfaces/PolicyInterface.d.ts +17 -0
  165. package/dist/types/src/nanotdf/interfaces/PolicyInterface.d.ts.map +1 -0
  166. package/dist/types/src/nanotdf/models/Ciphers.d.ts +14 -0
  167. package/dist/types/src/nanotdf/models/Ciphers.d.ts.map +1 -0
  168. package/dist/types/src/nanotdf/models/DefaultParams.d.ts +21 -0
  169. package/dist/types/src/nanotdf/models/DefaultParams.d.ts.map +1 -0
  170. package/dist/types/src/nanotdf/models/EcCurves.d.ts +15 -0
  171. package/dist/types/src/nanotdf/models/EcCurves.d.ts.map +1 -0
  172. package/dist/types/src/nanotdf/models/Header.d.ts +73 -0
  173. package/dist/types/src/nanotdf/models/Header.d.ts.map +1 -0
  174. package/dist/types/src/nanotdf/models/Payload.d.ts +47 -0
  175. package/dist/types/src/nanotdf/models/Payload.d.ts.map +1 -0
  176. package/dist/types/src/nanotdf/models/Policy/AbstractPolicy.d.ts +52 -0
  177. package/dist/types/src/nanotdf/models/Policy/AbstractPolicy.d.ts.map +1 -0
  178. package/dist/types/src/nanotdf/models/Policy/EmbeddedPolicy.d.ts +35 -0
  179. package/dist/types/src/nanotdf/models/Policy/EmbeddedPolicy.d.ts.map +1 -0
  180. package/dist/types/src/nanotdf/models/Policy/PolicyFactory.d.ts +11 -0
  181. package/dist/types/src/nanotdf/models/Policy/PolicyFactory.d.ts.map +1 -0
  182. package/dist/types/src/nanotdf/models/Policy/RemotePolicy.d.ts +31 -0
  183. package/dist/types/src/nanotdf/models/Policy/RemotePolicy.d.ts.map +1 -0
  184. package/dist/types/src/nanotdf/models/ResourceLocator.d.ts +65 -0
  185. package/dist/types/src/nanotdf/models/ResourceLocator.d.ts.map +1 -0
  186. package/dist/types/src/nanotdf/models/Signature.d.ts +33 -0
  187. package/dist/types/src/nanotdf/models/Signature.d.ts.map +1 -0
  188. package/dist/types/src/nanotdf-crypto/ciphers.d.ts +8 -0
  189. package/dist/types/src/nanotdf-crypto/ciphers.d.ts.map +1 -0
  190. package/dist/types/src/nanotdf-crypto/decrypt.d.ts +14 -0
  191. package/dist/types/src/nanotdf-crypto/decrypt.d.ts.map +1 -0
  192. package/dist/types/src/nanotdf-crypto/digest.d.ts +3 -0
  193. package/dist/types/src/nanotdf-crypto/digest.d.ts.map +1 -0
  194. package/dist/types/src/nanotdf-crypto/ecdsaSignature.d.ts +35 -0
  195. package/dist/types/src/nanotdf-crypto/ecdsaSignature.d.ts.map +1 -0
  196. package/dist/types/src/nanotdf-crypto/encrypt.d.ts +14 -0
  197. package/dist/types/src/nanotdf-crypto/encrypt.d.ts.map +1 -0
  198. package/dist/types/src/nanotdf-crypto/enums.d.ts +42 -0
  199. package/dist/types/src/nanotdf-crypto/enums.d.ts.map +1 -0
  200. package/dist/types/src/nanotdf-crypto/exportCryptoKey.d.ts +7 -0
  201. package/dist/types/src/nanotdf-crypto/exportCryptoKey.d.ts.map +1 -0
  202. package/dist/types/src/nanotdf-crypto/generateKeyPair.d.ts +10 -0
  203. package/dist/types/src/nanotdf-crypto/generateKeyPair.d.ts.map +1 -0
  204. package/dist/types/src/nanotdf-crypto/generateRandomNumber.d.ts +5 -0
  205. package/dist/types/src/nanotdf-crypto/generateRandomNumber.d.ts.map +1 -0
  206. package/dist/types/src/nanotdf-crypto/importRawKey.d.ts +13 -0
  207. package/dist/types/src/nanotdf-crypto/importRawKey.d.ts.map +1 -0
  208. package/dist/types/src/nanotdf-crypto/index.d.ts +12 -0
  209. package/dist/types/src/nanotdf-crypto/index.d.ts.map +1 -0
  210. package/dist/types/src/nanotdf-crypto/keyAgreement.d.ts +28 -0
  211. package/dist/types/src/nanotdf-crypto/keyAgreement.d.ts.map +1 -0
  212. package/dist/types/src/nanotdf-crypto/pemPublicToCrypto.d.ts +28 -0
  213. package/dist/types/src/nanotdf-crypto/pemPublicToCrypto.d.ts.map +1 -0
  214. package/dist/types/src/policy/api.d.ts +4 -0
  215. package/dist/types/src/policy/api.d.ts.map +1 -0
  216. package/dist/types/src/policy/attributes.d.ts +95 -0
  217. package/dist/types/src/policy/attributes.d.ts.map +1 -0
  218. package/dist/types/src/policy/granter.d.ts +23 -0
  219. package/dist/types/src/policy/granter.d.ts.map +1 -0
  220. package/dist/types/src/tdf/AttributeObject.d.ts +13 -0
  221. package/dist/types/src/tdf/AttributeObject.d.ts.map +1 -0
  222. package/dist/types/src/tdf/AttributeObjectJwt.d.ts +4 -0
  223. package/dist/types/src/tdf/AttributeObjectJwt.d.ts.map +1 -0
  224. package/dist/types/src/tdf/Crypto.d.ts +37 -0
  225. package/dist/types/src/tdf/Crypto.d.ts.map +1 -0
  226. package/dist/types/src/tdf/EntityObject.d.ts +18 -0
  227. package/dist/types/src/tdf/EntityObject.d.ts.map +1 -0
  228. package/dist/types/src/tdf/NanoTDF/NanoTDF.d.ts +99 -0
  229. package/dist/types/src/tdf/NanoTDF/NanoTDF.d.ts.map +1 -0
  230. package/dist/types/src/tdf/Policy.d.ts +28 -0
  231. package/dist/types/src/tdf/Policy.d.ts.map +1 -0
  232. package/dist/types/src/tdf/PolicyObject.d.ts +11 -0
  233. package/dist/types/src/tdf/PolicyObject.d.ts.map +1 -0
  234. package/dist/types/src/tdf/TypedArray.d.ts +3 -0
  235. package/dist/types/src/tdf/TypedArray.d.ts.map +1 -0
  236. package/dist/types/src/tdf/index.d.ts +7 -0
  237. package/dist/types/src/tdf/index.d.ts.map +1 -0
  238. package/dist/types/src/types/index.d.ts +45 -0
  239. package/dist/types/src/types/index.d.ts.map +1 -0
  240. package/dist/types/src/utils.d.ts +45 -0
  241. package/dist/types/src/utils.d.ts.map +1 -0
  242. package/dist/types/src/version.d.ts +9 -0
  243. package/dist/types/src/version.d.ts.map +1 -0
  244. package/dist/types/tdf3/index.d.ts +16 -0
  245. package/dist/types/tdf3/index.d.ts.map +1 -0
  246. package/dist/types/tdf3/src/assertions.d.ts +63 -0
  247. package/dist/types/tdf3/src/assertions.d.ts.map +1 -0
  248. package/dist/types/tdf3/src/binary.d.ts +38 -0
  249. package/dist/types/tdf3/src/binary.d.ts.map +1 -0
  250. package/dist/types/tdf3/src/ciphers/aes-gcm-cipher.d.ts +18 -0
  251. package/dist/types/tdf3/src/ciphers/aes-gcm-cipher.d.ts.map +1 -0
  252. package/dist/types/tdf3/src/ciphers/algorithms.d.ts +4 -0
  253. package/dist/types/tdf3/src/ciphers/algorithms.d.ts.map +1 -0
  254. package/dist/types/tdf3/src/ciphers/index.d.ts +3 -0
  255. package/dist/types/tdf3/src/ciphers/index.d.ts.map +1 -0
  256. package/dist/types/tdf3/src/ciphers/symmetric-cipher-base.d.ts +14 -0
  257. package/dist/types/tdf3/src/ciphers/symmetric-cipher-base.d.ts.map +1 -0
  258. package/dist/types/tdf3/src/client/DecoratedReadableStream.d.ts +53 -0
  259. package/dist/types/tdf3/src/client/DecoratedReadableStream.d.ts.map +1 -0
  260. package/dist/types/tdf3/src/client/builders.d.ts +436 -0
  261. package/dist/types/tdf3/src/client/builders.d.ts.map +1 -0
  262. package/dist/types/tdf3/src/client/index.d.ts +139 -0
  263. package/dist/types/tdf3/src/client/index.d.ts.map +1 -0
  264. package/dist/types/tdf3/src/client/validation.d.ts +8 -0
  265. package/dist/types/tdf3/src/client/validation.d.ts.map +1 -0
  266. package/dist/types/tdf3/src/crypto/crypto-utils.d.ts +34 -0
  267. package/dist/types/tdf3/src/crypto/crypto-utils.d.ts.map +1 -0
  268. package/dist/types/tdf3/src/crypto/declarations.d.ts +60 -0
  269. package/dist/types/tdf3/src/crypto/declarations.d.ts.map +1 -0
  270. package/dist/types/tdf3/src/crypto/index.d.ts +103 -0
  271. package/dist/types/tdf3/src/crypto/index.d.ts.map +1 -0
  272. package/dist/types/tdf3/src/index.d.ts +5 -0
  273. package/dist/types/tdf3/src/index.d.ts.map +1 -0
  274. package/dist/types/tdf3/src/models/attribute-set.d.ts +65 -0
  275. package/dist/types/tdf3/src/models/attribute-set.d.ts.map +1 -0
  276. package/dist/types/tdf3/src/models/encryption-information.d.ts +49 -0
  277. package/dist/types/tdf3/src/models/encryption-information.d.ts.map +1 -0
  278. package/dist/types/tdf3/src/models/index.d.ts +9 -0
  279. package/dist/types/tdf3/src/models/index.d.ts.map +1 -0
  280. package/dist/types/tdf3/src/models/key-access.d.ts +42 -0
  281. package/dist/types/tdf3/src/models/key-access.d.ts.map +1 -0
  282. package/dist/types/tdf3/src/models/manifest.d.ts +9 -0
  283. package/dist/types/tdf3/src/models/manifest.d.ts.map +1 -0
  284. package/dist/types/tdf3/src/models/payload.d.ts +7 -0
  285. package/dist/types/tdf3/src/models/payload.d.ts.map +1 -0
  286. package/dist/types/tdf3/src/models/policy.d.ts +13 -0
  287. package/dist/types/tdf3/src/models/policy.d.ts.map +1 -0
  288. package/dist/types/tdf3/src/models/upsert-response.d.ts +16 -0
  289. package/dist/types/tdf3/src/models/upsert-response.d.ts.map +1 -0
  290. package/dist/types/tdf3/src/tdf.d.ts +152 -0
  291. package/dist/types/tdf3/src/tdf.d.ts.map +1 -0
  292. package/dist/types/tdf3/src/templates/default.html.d.ts +8 -0
  293. package/dist/types/tdf3/src/templates/default.html.d.ts.map +1 -0
  294. package/dist/types/tdf3/src/templates/escaper.d.ts +6 -0
  295. package/dist/types/tdf3/src/templates/escaper.d.ts.map +1 -0
  296. package/dist/types/tdf3/src/templates/index.d.ts +3 -0
  297. package/dist/types/tdf3/src/templates/index.d.ts.map +1 -0
  298. package/dist/types/tdf3/src/utils/buffer-crc32.d.ts +2 -0
  299. package/dist/types/tdf3/src/utils/buffer-crc32.d.ts.map +1 -0
  300. package/dist/types/tdf3/src/utils/chunkers.d.ts +29 -0
  301. package/dist/types/tdf3/src/utils/chunkers.d.ts.map +1 -0
  302. package/dist/types/tdf3/src/utils/index.d.ts +36 -0
  303. package/dist/types/tdf3/src/utils/index.d.ts.map +1 -0
  304. package/dist/types/tdf3/src/utils/keysplit.d.ts +19 -0
  305. package/dist/types/tdf3/src/utils/keysplit.d.ts.map +1 -0
  306. package/dist/types/tdf3/src/utils/zip-reader.d.ts +63 -0
  307. package/dist/types/tdf3/src/utils/zip-reader.d.ts.map +1 -0
  308. package/dist/types/tdf3/src/utils/zip-writer.d.ts +35 -0
  309. package/dist/types/tdf3/src/utils/zip-writer.d.ts.map +1 -0
  310. package/dist/types/tdf3/src/version.d.ts +3 -0
  311. package/dist/types/tdf3/src/version.d.ts.map +1 -0
  312. package/dist/web/package.json +3 -0
  313. package/dist/web/src/access.js +147 -0
  314. package/dist/web/src/auth/Eas.js +55 -0
  315. package/dist/web/src/auth/auth.js +71 -0
  316. package/dist/web/src/auth/oidc-clientcredentials-provider.js +22 -0
  317. package/dist/web/src/auth/oidc-externaljwt-provider.js +29 -0
  318. package/dist/web/src/auth/oidc-refreshtoken-provider.js +30 -0
  319. package/dist/web/src/auth/oidc.js +215 -0
  320. package/dist/web/src/auth/providers.js +119 -0
  321. package/dist/web/src/encodings/base64.js +147 -0
  322. package/dist/web/src/encodings/hex.js +63 -0
  323. package/dist/web/src/encodings/index.js +3 -0
  324. package/dist/web/src/errors.js +123 -0
  325. package/dist/web/src/index.js +313 -0
  326. package/dist/web/src/nanotdf/Client.js +268 -0
  327. package/dist/web/src/nanotdf/NanoTDF.js +89 -0
  328. package/dist/web/src/nanotdf/browser-entry.js +14 -0
  329. package/dist/web/src/nanotdf/constants.js +2 -0
  330. package/dist/web/src/nanotdf/decrypt.js +14 -0
  331. package/dist/web/src/nanotdf/encrypt-dataset.js +32 -0
  332. package/dist/web/src/nanotdf/encrypt.js +126 -0
  333. package/dist/web/src/nanotdf/enum/CipherEnum.js +11 -0
  334. package/dist/web/src/nanotdf/enum/CurveNameEnum.js +13 -0
  335. package/dist/web/src/nanotdf/enum/EncodingEnum.js +6 -0
  336. package/dist/web/src/nanotdf/enum/PolicyTypeEnum.js +9 -0
  337. package/dist/web/src/nanotdf/enum/ProtocolEnum.js +8 -0
  338. package/dist/web/src/nanotdf/enum/ResourceLocatorIdentifierEnum.js +9 -0
  339. package/dist/web/src/nanotdf/helpers/calculateByCurve.js +24 -0
  340. package/dist/web/src/nanotdf/helpers/getHkdfSalt.js +8 -0
  341. package/dist/web/src/nanotdf/index.js +11 -0
  342. package/dist/web/src/nanotdf/interfaces/PolicyInterface.js +2 -0
  343. package/dist/web/src/nanotdf/models/Ciphers.js +54 -0
  344. package/dist/web/src/nanotdf/models/DefaultParams.js +22 -0
  345. package/dist/web/src/nanotdf/models/EcCurves.js +32 -0
  346. package/dist/web/src/nanotdf/models/Header.js +250 -0
  347. package/dist/web/src/nanotdf/models/Payload.js +156 -0
  348. package/dist/web/src/nanotdf/models/Policy/AbstractPolicy.js +71 -0
  349. package/dist/web/src/nanotdf/models/Policy/EmbeddedPolicy.js +77 -0
  350. package/dist/web/src/nanotdf/models/Policy/PolicyFactory.js +33 -0
  351. package/dist/web/src/nanotdf/models/Policy/RemotePolicy.js +57 -0
  352. package/dist/web/src/nanotdf/models/ResourceLocator.js +206 -0
  353. package/dist/web/src/nanotdf/models/Signature.js +74 -0
  354. package/dist/web/src/nanotdf-crypto/ciphers.js +14 -0
  355. package/dist/web/src/nanotdf-crypto/decrypt.js +21 -0
  356. package/dist/web/src/nanotdf-crypto/digest.js +4 -0
  357. package/dist/web/src/nanotdf-crypto/ecdsaSignature.js +77 -0
  358. package/dist/web/src/nanotdf-crypto/encrypt.js +21 -0
  359. package/dist/web/src/nanotdf-crypto/enums.js +49 -0
  360. package/dist/web/src/nanotdf-crypto/exportCryptoKey.js +17 -0
  361. package/dist/web/src/nanotdf-crypto/generateKeyPair.js +10 -0
  362. package/dist/web/src/nanotdf-crypto/generateRandomNumber.js +9 -0
  363. package/dist/web/src/nanotdf-crypto/importRawKey.js +15 -0
  364. package/dist/web/src/nanotdf-crypto/index.js +12 -0
  365. package/dist/web/src/nanotdf-crypto/keyAgreement.js +87 -0
  366. package/dist/web/src/nanotdf-crypto/pemPublicToCrypto.js +197 -0
  367. package/dist/web/src/policy/api.js +54 -0
  368. package/dist/web/src/policy/attributes.js +2 -0
  369. package/dist/web/src/policy/granter.js +141 -0
  370. package/dist/web/src/tdf/AttributeObject.js +11 -0
  371. package/dist/web/src/tdf/AttributeObjectJwt.js +2 -0
  372. package/dist/web/src/tdf/Crypto.js +44 -0
  373. package/dist/web/src/tdf/EntityObject.js +2 -0
  374. package/dist/web/src/tdf/NanoTDF/NanoTDF.js +35 -0
  375. package/dist/web/src/tdf/Policy.js +48 -0
  376. package/dist/web/src/tdf/PolicyObject.js +2 -0
  377. package/dist/web/src/tdf/TypedArray.js +2 -0
  378. package/dist/web/src/tdf/index.js +4 -0
  379. package/dist/web/src/types/index.js +2 -0
  380. package/dist/web/src/utils.js +133 -0
  381. package/dist/web/src/version.js +9 -0
  382. package/dist/web/tdf3/index.js +13 -0
  383. package/dist/web/tdf3/src/assertions.js +111 -0
  384. package/dist/web/tdf3/src/binary.js +149 -0
  385. package/dist/web/tdf3/src/ciphers/aes-gcm-cipher.js +52 -0
  386. package/dist/web/tdf3/src/ciphers/algorithms.js +5 -0
  387. package/dist/web/tdf3/src/ciphers/index.js +3 -0
  388. package/dist/web/tdf3/src/ciphers/symmetric-cipher-base.js +18 -0
  389. package/dist/web/tdf3/src/client/DecoratedReadableStream.js +107 -0
  390. package/dist/web/tdf3/src/client/builders.js +557 -0
  391. package/dist/web/tdf3/src/client/index.js +423 -0
  392. package/dist/web/tdf3/src/client/validation.js +58 -0
  393. package/dist/web/tdf3/src/crypto/crypto-utils.js +107 -0
  394. package/dist/web/tdf3/src/crypto/declarations.js +5 -0
  395. package/dist/web/tdf3/src/crypto/index.js +296 -0
  396. package/dist/web/tdf3/src/index.js +5 -0
  397. package/dist/web/tdf3/src/models/attribute-set.js +118 -0
  398. package/dist/web/tdf3/src/models/encryption-information.js +86 -0
  399. package/dist/web/tdf3/src/models/index.js +9 -0
  400. package/dist/web/tdf3/src/models/key-access.js +74 -0
  401. package/dist/web/tdf3/src/models/manifest.js +2 -0
  402. package/dist/web/tdf3/src/models/payload.js +2 -0
  403. package/dist/web/tdf3/src/models/policy.js +20 -0
  404. package/dist/web/tdf3/src/models/upsert-response.js +2 -0
  405. package/dist/web/tdf3/src/tdf.js +866 -0
  406. package/dist/web/tdf3/src/templates/default.html.js +96 -0
  407. package/dist/web/tdf3/src/templates/escaper.js +10 -0
  408. package/dist/web/tdf3/src/templates/index.js +3 -0
  409. package/dist/web/tdf3/src/utils/buffer-crc32.js +44 -0
  410. package/dist/web/tdf3/src/utils/chunkers.js +96 -0
  411. package/dist/web/tdf3/src/utils/index.js +248 -0
  412. package/dist/web/tdf3/src/utils/keysplit.js +55 -0
  413. package/dist/web/tdf3/src/utils/zip-reader.js +247 -0
  414. package/dist/web/tdf3/src/utils/zip-writer.js +302 -0
  415. package/dist/web/tdf3/src/version.js +3 -0
  416. package/package.json +126 -0
  417. package/src/access.ts +198 -0
  418. package/src/auth/Eas.ts +79 -0
  419. package/src/auth/auth.ts +141 -0
  420. package/src/auth/oidc-clientcredentials-provider.ts +32 -0
  421. package/src/auth/oidc-externaljwt-provider.ts +41 -0
  422. package/src/auth/oidc-refreshtoken-provider.ts +41 -0
  423. package/src/auth/oidc.ts +307 -0
  424. package/src/auth/providers.ts +139 -0
  425. package/src/encodings/base64.ts +160 -0
  426. package/src/encodings/hex.ts +69 -0
  427. package/src/encodings/index.ts +2 -0
  428. package/src/errors.ts +113 -0
  429. package/src/index.ts +441 -0
  430. package/src/nanotdf/Client.ts +349 -0
  431. package/src/nanotdf/NanoTDF.ts +121 -0
  432. package/src/nanotdf/browser-entry.ts +20 -0
  433. package/src/nanotdf/constants.ts +1 -0
  434. package/src/nanotdf/decrypt.ts +19 -0
  435. package/src/nanotdf/encrypt-dataset.ts +52 -0
  436. package/src/nanotdf/encrypt.ts +197 -0
  437. package/src/nanotdf/enum/CipherEnum.ts +10 -0
  438. package/src/nanotdf/enum/CurveNameEnum.ts +12 -0
  439. package/src/nanotdf/enum/EncodingEnum.ts +5 -0
  440. package/src/nanotdf/enum/PolicyTypeEnum.ts +8 -0
  441. package/src/nanotdf/enum/ProtocolEnum.ts +7 -0
  442. package/src/nanotdf/enum/ResourceLocatorIdentifierEnum.ts +8 -0
  443. package/src/nanotdf/helpers/calculateByCurve.ts +26 -0
  444. package/src/nanotdf/helpers/getHkdfSalt.ts +15 -0
  445. package/src/nanotdf/index.ts +10 -0
  446. package/src/nanotdf/interfaces/PolicyInterface.ts +27 -0
  447. package/src/nanotdf/models/Ciphers.ts +67 -0
  448. package/src/nanotdf/models/DefaultParams.ts +24 -0
  449. package/src/nanotdf/models/EcCurves.ts +40 -0
  450. package/src/nanotdf/models/Header.ts +322 -0
  451. package/src/nanotdf/models/Payload.ts +196 -0
  452. package/src/nanotdf/models/Policy/AbstractPolicy.ts +90 -0
  453. package/src/nanotdf/models/Policy/EmbeddedPolicy.ts +101 -0
  454. package/src/nanotdf/models/Policy/PolicyFactory.ts +48 -0
  455. package/src/nanotdf/models/Policy/RemotePolicy.ts +74 -0
  456. package/src/nanotdf/models/ResourceLocator.ts +212 -0
  457. package/src/nanotdf/models/Signature.ts +85 -0
  458. package/src/nanotdf-crypto/ciphers.ts +13 -0
  459. package/src/nanotdf-crypto/decrypt.ts +30 -0
  460. package/src/nanotdf-crypto/digest.ts +8 -0
  461. package/src/nanotdf-crypto/ecdsaSignature.ts +109 -0
  462. package/src/nanotdf-crypto/encrypt.ts +30 -0
  463. package/src/nanotdf-crypto/enums.ts +47 -0
  464. package/src/nanotdf-crypto/exportCryptoKey.ts +17 -0
  465. package/src/nanotdf-crypto/generateKeyPair.ts +19 -0
  466. package/src/nanotdf-crypto/generateRandomNumber.ts +8 -0
  467. package/src/nanotdf-crypto/importRawKey.ts +19 -0
  468. package/src/nanotdf-crypto/index.ts +11 -0
  469. package/src/nanotdf-crypto/keyAgreement.ts +139 -0
  470. package/src/nanotdf-crypto/pemPublicToCrypto.ts +232 -0
  471. package/src/package-lock.json +6 -0
  472. package/src/package.json +3 -0
  473. package/src/platform/authorization/authorization_connect.d.ts +44 -0
  474. package/src/platform/authorization/authorization_connect.js +44 -0
  475. package/src/platform/authorization/authorization_pb.d.ts +707 -0
  476. package/src/platform/authorization/authorization_pb.js +372 -0
  477. package/src/platform/common/common_pb.d.ts +129 -0
  478. package/src/platform/common/common_pb.js +58 -0
  479. package/src/platform/entityresolution/entity_resolution_connect.d.ts +35 -0
  480. package/src/platform/entityresolution/entity_resolution_connect.js +35 -0
  481. package/src/platform/entityresolution/entity_resolution_pb.d.ts +242 -0
  482. package/src/platform/entityresolution/entity_resolution_pb.js +139 -0
  483. package/src/platform/kas/kas_connect.d.ts +59 -0
  484. package/src/platform/kas/kas_connect.js +59 -0
  485. package/src/platform/kas/kas_pb.d.ts +200 -0
  486. package/src/platform/kas/kas_pb.js +84 -0
  487. package/src/platform/policy/attributes/attributes_connect.d.ts +168 -0
  488. package/src/platform/policy/attributes/attributes_connect.js +168 -0
  489. package/src/platform/policy/attributes/attributes_pb.d.ts +929 -0
  490. package/src/platform/policy/attributes/attributes_pb.js +363 -0
  491. package/src/platform/policy/kasregistry/key_access_server_registry_connect.d.ts +62 -0
  492. package/src/platform/policy/kasregistry/key_access_server_registry_connect.js +62 -0
  493. package/src/platform/policy/kasregistry/key_access_server_registry_pb.d.ts +283 -0
  494. package/src/platform/policy/kasregistry/key_access_server_registry_pb.js +113 -0
  495. package/src/platform/policy/namespaces/namespaces_connect.d.ts +62 -0
  496. package/src/platform/policy/namespaces/namespaces_connect.js +62 -0
  497. package/src/platform/policy/namespaces/namespaces_pb.d.ts +270 -0
  498. package/src/platform/policy/namespaces/namespaces_pb.js +110 -0
  499. package/src/platform/policy/objects_pb.d.ts +725 -0
  500. package/src/platform/policy/objects_pb.js +288 -0
  501. package/src/platform/policy/resourcemapping/resource_mapping_connect.d.ts +259 -0
  502. package/src/platform/policy/resourcemapping/resource_mapping_connect.js +259 -0
  503. package/src/platform/policy/resourcemapping/resource_mapping_pb.d.ts +314 -0
  504. package/src/platform/policy/resourcemapping/resource_mapping_pb.js +142 -0
  505. package/src/platform/policy/selectors_pb.d.ts +269 -0
  506. package/src/platform/policy/selectors_pb.js +110 -0
  507. package/src/platform/policy/subjectmapping/subject_mapping_connect.d.ts +118 -0
  508. package/src/platform/policy/subjectmapping/subject_mapping_connect.js +118 -0
  509. package/src/platform/policy/subjectmapping/subject_mapping_pb.d.ts +672 -0
  510. package/src/platform/policy/subjectmapping/subject_mapping_pb.js +260 -0
  511. package/src/platform/wellknownconfiguration/wellknown_configuration_connect.d.ts +26 -0
  512. package/src/platform/wellknownconfiguration/wellknown_configuration_connect.js +26 -0
  513. package/src/platform/wellknownconfiguration/wellknown_configuration_pb.d.ts +75 -0
  514. package/src/platform/wellknownconfiguration/wellknown_configuration_pb.js +35 -0
  515. package/src/policy/api.ts +61 -0
  516. package/src/policy/attributes.ts +117 -0
  517. package/src/policy/granter.ts +181 -0
  518. package/src/tdf/AttributeObject.ts +27 -0
  519. package/src/tdf/AttributeObjectJwt.ts +3 -0
  520. package/src/tdf/Crypto.ts +42 -0
  521. package/src/tdf/EntityObject.ts +18 -0
  522. package/src/tdf/NanoTDF/NanoTDF.ts +120 -0
  523. package/src/tdf/Policy.ts +51 -0
  524. package/src/tdf/PolicyObject.ts +12 -0
  525. package/src/tdf/TypedArray.ts +12 -0
  526. package/src/tdf/index.ts +6 -0
  527. package/src/types/index.ts +55 -0
  528. package/src/utils.ts +149 -0
  529. package/src/version.ts +9 -0
  530. package/tdf3/index.ts +91 -0
  531. package/tdf3/package-lock.json +6 -0
  532. package/tdf3/package.json +3 -0
  533. package/tdf3/src/assertions.ts +191 -0
  534. package/tdf3/src/binary.ts +195 -0
  535. package/tdf3/src/ciphers/aes-gcm-cipher.ts +76 -0
  536. package/tdf3/src/ciphers/algorithms.ts +9 -0
  537. package/tdf3/src/ciphers/index.ts +2 -0
  538. package/tdf3/src/ciphers/symmetric-cipher-base.ts +38 -0
  539. package/tdf3/src/client/DecoratedReadableStream.ts +148 -0
  540. package/tdf3/src/client/builders.ts +701 -0
  541. package/tdf3/src/client/index.ts +637 -0
  542. package/tdf3/src/client/validation.ts +79 -0
  543. package/tdf3/src/crypto/crypto-utils.ts +119 -0
  544. package/tdf3/src/crypto/declarations.ts +89 -0
  545. package/tdf3/src/crypto/index.ts +394 -0
  546. package/tdf3/src/index.ts +4 -0
  547. package/tdf3/src/models/attribute-set.ts +142 -0
  548. package/tdf3/src/models/encryption-information.ts +172 -0
  549. package/tdf3/src/models/index.ts +8 -0
  550. package/tdf3/src/models/key-access.ts +128 -0
  551. package/tdf3/src/models/manifest.ts +9 -0
  552. package/tdf3/src/models/payload.ts +6 -0
  553. package/tdf3/src/models/policy.ts +35 -0
  554. package/tdf3/src/models/upsert-response.ts +17 -0
  555. package/tdf3/src/tdf.ts +1351 -0
  556. package/tdf3/src/templates/default.html.ts +105 -0
  557. package/tdf3/src/templates/escaper.ts +10 -0
  558. package/tdf3/src/templates/index.ts +2 -0
  559. package/tdf3/src/utils/buffer-crc32.ts +46 -0
  560. package/tdf3/src/utils/chunkers.ts +118 -0
  561. package/tdf3/src/utils/index.ts +309 -0
  562. package/tdf3/src/utils/keysplit.ts +63 -0
  563. package/tdf3/src/utils/zip-reader.ts +341 -0
  564. package/tdf3/src/utils/zip-writer.ts +375 -0
  565. package/tdf3/src/version.ts +2 -0
  566. package/tdf3/types.d.ts +14 -0
@@ -0,0 +1,436 @@
1
+ import { AttributeObject, KeyInfo, Policy } from '../models/index.js';
2
+ import { type Metadata } from '../tdf.js';
3
+ import { Binary } from '../binary.js';
4
+ import { PemKeyPair } from '../crypto/declarations.js';
5
+ import { EntityObject } from '../../../src/tdf/EntityObject.js';
6
+ import { DecoratedReadableStream } from './DecoratedReadableStream.js';
7
+ import { type Chunker } from '../utils/chunkers.js';
8
+ import { AssertionConfig, AssertionVerificationKeys } from '../assertions.js';
9
+ import { Value } from '../../../src/policy/attributes.js';
10
+ export declare const DEFAULT_SEGMENT_SIZE: number;
11
+ export type Scope = {
12
+ dissem?: string[];
13
+ policyId?: string;
14
+ policyObject?: Policy;
15
+ attributes?: (string | AttributeObject)[];
16
+ attributeValues?: Value[];
17
+ };
18
+ export type EncryptKeyMiddleware = (...args: unknown[]) => Promise<{
19
+ keyForEncryption: KeyInfo;
20
+ keyForManifest: KeyInfo;
21
+ }>;
22
+ export type EncryptStreamMiddleware = (stream: DecoratedReadableStream) => Promise<DecoratedReadableStream>;
23
+ export type SplitStep = {
24
+ kas: string;
25
+ sid?: string;
26
+ };
27
+ export type EncryptParams = {
28
+ source: ReadableStream<Uint8Array>;
29
+ opts?: {
30
+ keypair: PemKeyPair;
31
+ };
32
+ autoconfigure?: boolean;
33
+ scope?: Scope;
34
+ metadata?: Metadata;
35
+ keypair?: CryptoKeyPair;
36
+ offline?: boolean;
37
+ windowSize?: number;
38
+ asHtml?: boolean;
39
+ getPolicyId?: () => Scope['policyId'];
40
+ mimeType?: string;
41
+ eo?: EntityObject;
42
+ payloadKey?: Binary;
43
+ keyMiddleware?: EncryptKeyMiddleware;
44
+ splitPlan?: SplitStep[];
45
+ streamMiddleware?: EncryptStreamMiddleware;
46
+ assertionConfigs?: AssertionConfig[];
47
+ };
48
+ /**
49
+ * A builder capable of constructing the necessary parameters object for a
50
+ * {@link Client#encrypt|encrypt} operation. Must be built before use via the {@link EncryptParamsBuilder#build|build()} function.
51
+ */
52
+ declare class EncryptParamsBuilder {
53
+ _params: Partial<EncryptParams>;
54
+ constructor(params?: Partial<EncryptParams>);
55
+ getStreamSource(): EncryptParams['source'] | undefined;
56
+ /**
57
+ * Specify the content to encrypt, in stream form.
58
+ * @param {Readable} readStream - a Readable Stream to encrypt.
59
+ */
60
+ setStreamSource(readStream: ReadableStream<Uint8Array>): void;
61
+ /**
62
+ * Specify the content to encrypt, in stream form. Returns this object for method chaining.
63
+ * @param {Readable} readStream - a Readable Stream to encrypt.
64
+ * @return {EncryptParamsBuilder} - this object.
65
+ */
66
+ withStreamSource(readStream: ReadableStream<Uint8Array>): EncryptParamsBuilder;
67
+ /**
68
+ * Specify the content to encrypt, in string form.
69
+ * @param {string} string - a string to encrypt.
70
+ */
71
+ setStringSource(string: string): void;
72
+ /**
73
+ * Specify the content to encrypt, in string form. Returns this object for method chaining.
74
+ * @param {string} string - a string to encrypt.
75
+ * @return {EncryptParamsBuilder} - this object.
76
+ */
77
+ withStringSource(string: string): EncryptParamsBuilder;
78
+ /**
79
+ * If set, the encrypt method will use the KAS Grants from the
80
+ * policy service to configure the Key Access Object array, instead
81
+ * of the client object's default `kasEndpoint`.
82
+ */
83
+ withAutoconfigure(enabled?: boolean): this;
84
+ /**
85
+ * Specify the content to encrypt, in buffer form.
86
+ * @param buf to encrypt.
87
+ */
88
+ setBufferSource(buf: ArrayBuffer): void;
89
+ /**
90
+ * Specify the content to encrypt, in buffer form. Returns this object for method chaining.
91
+ * @param buf - a buffer to encrypt
92
+ */
93
+ withBufferSource(buf: ArrayBuffer): this;
94
+ /**
95
+ * Specify the content to encrypt using an ArrayBuffer reference, which must have already
96
+ * loaded the file content. Using the below linked example, e.target.result is the ArrayBuffer.
97
+ * <br/><br/>
98
+ * Example: https://developer.mozilla.org/en-US/docs/Web/API/FileReader/onload
99
+ *
100
+ * @param {ArrayBuffer} arraybuffer - the array buffer containing the file to encrypt.
101
+ * @return {EncryptParamsBuilder} - this object
102
+ */
103
+ setArrayBufferSource(arraybuffer: ArrayBuffer): void;
104
+ /**
105
+ * Specify the content to encrypt using an ArrayBuffer reference. Returns this object for method chaining.
106
+ *
107
+ * @param {ArrayBuffer} arraybuffer - the ArrayBuffer used to load file content from a browser
108
+ * @return {EncryptParamsBuilder} - this object.
109
+ */
110
+ withArrayBufferSource(arraybuffer: ArrayBuffer): EncryptParamsBuilder;
111
+ getAttributes(): Scope['attributes'];
112
+ /**
113
+ * @param attributes URIs of the form `<authority namespace>/attr/<name>/value/<value>`
114
+ */
115
+ setAttributes(attributes?: (string | AttributeObject)[]): void;
116
+ /**
117
+ * @param {Object} attributes
118
+ * @param {String} attributes.attribute URI of the form `<authority namespace>/attr/<name>/value/<value>`
119
+ * @returns {EncryptParamsBuilder} with attributes set
120
+ */
121
+ withAttributes(attributes: Scope['attributes']): EncryptParamsBuilder;
122
+ /**
123
+ * Get the users configured to access (decrypt) the encrypted data.
124
+ * @return {array} - array of users (e.g., email addresses).
125
+ */
126
+ getUsersWithAccess(): Scope['dissem'];
127
+ /**
128
+ * Specify the full list of users configured to access (decrypt) the encrypted data.
129
+ * @param {array} users - varargs or array of users (e.g., email addresses).
130
+ */
131
+ setUsersWithAccess(users: string[]): void;
132
+ /**
133
+ * Specify the full list of users configured to access (decrypt) the encrypted data. Returns this object for method chaining.
134
+ * <br/><br/>
135
+ * @param {array} users - varargs or array of users (e.g., email addresses).
136
+ * @return {EncryptParamsBuilder} - this object.
137
+ */
138
+ withUsersWithAccess(users: string[]): EncryptParamsBuilder;
139
+ /**
140
+ * Get the metadata (arbitrary key-value pairs) to be associated with the encrypted blob.
141
+ * </br></br>
142
+ * This metadata is encrypted alongside the content and stored in the TDF ciphertext.
143
+ * @return {object} - object containing metadata as key-value pairs.
144
+ */
145
+ getMetadata(): EncryptParams['metadata'];
146
+ /**
147
+ * Specify the metadata (arbitrary key-value pairs) to be associated with the encrypted blob.
148
+ * </br></br>
149
+ * This metadata is encrypted alongside the content and stored in the TDF ciphertext.
150
+ * @param {object} metadata - object containing metadata as key-value pairs.
151
+ */
152
+ setMetadata(metadata: EncryptParams['metadata']): void;
153
+ /**
154
+ * Specify the metadata (arbitrary key-value pairs) to be associated with the encrypted blob.
155
+ * Returns this object for method chaining.
156
+ * </br></br>
157
+ * This metadata is encrypted alongside the content and stored in the TDF ciphertext.
158
+ * @param {object} metadata - object containing metadata as key-value pairs.
159
+ * @return {EncryptParamsBuilder} - this object.
160
+ */
161
+ withMetadata(metadata: EncryptParams['metadata']): this;
162
+ getPolicyId(): string | undefined;
163
+ setPolicyId(policyId: string): void;
164
+ withPolicyId(policyId: string): EncryptParamsBuilder;
165
+ isOnline(): boolean;
166
+ setOnline(): void;
167
+ setOffline(): void;
168
+ withOffline(): EncryptParamsBuilder;
169
+ withOnline(): EncryptParamsBuilder;
170
+ /**
171
+ * Get the size of the sliding window to use when writing out the encrypted ciphertext.
172
+ * Used to bound the memory used by the client for large files.
173
+ * <br/><br/>
174
+ * This window will match the "segment size" defined in the
175
+ * <a href="https://github.com/virtru/tdf3-spec">TDF spec</a>, so a larger window
176
+ * will result in more compact ciphertext.
177
+ * @return {number} The sliding window size, in bytes (1MB by default).
178
+ */
179
+ getStreamWindowSize(): number | undefined;
180
+ /**
181
+ * Set the size of the sliding window to use when writing out the encrypted ciphertext.
182
+ * Used to bound the memory used by the client for large files.
183
+ * <br/><br/>
184
+ * This window will match the "segment size" defined in the
185
+ * <a href="https://github.com/virtru/tdf3-spec">TDF spec</a>, so a larger window
186
+ * will result in more compact ciphertext.
187
+ * @param {number} numBytes sliding window size, in bytes (1MB by default).
188
+ */
189
+ setStreamWindowSize(numBytes: number): void;
190
+ /**
191
+ * Set the size of the sliding window to use when writing out the encrypted ciphertext.
192
+ * Used to bound the memory used by the client for large files. Returns this object for method chaining.
193
+ * <br/><br/>
194
+ * This window will match the "segment size" defined in the
195
+ * <a href="https://github.com/virtru/tdf3-spec">TDF spec</a>, so a larger window
196
+ * will result in more compact ciphertext.
197
+ * @param {number} numBytes sliding window size, in bytes (1MB by default).
198
+ * @return {EncryptParamsBuilder} - this object.
199
+ */
200
+ withStreamWindowSize(numBytes: number): EncryptParamsBuilder;
201
+ /**
202
+ * Whether the encrypted data should be formatted using html. This allows authorized users to
203
+ * double click and read using the Virtru Secure Reader, at the cost of reduced space efficiency.
204
+ * <br/><br/>
205
+ * This is enabled by default.
206
+ * @return {boolean} true if the encrypted data will be in html format.
207
+ */
208
+ hasHtmlFormat(): boolean;
209
+ /**
210
+ * Specify that the encrypted data should be formatted using html. This allows authorized users to
211
+ * double click and read using the Virtru Secure Reader, at the cost of reduced space efficiency.
212
+ * <br/><br/>
213
+ * This is enabled by default.
214
+ */
215
+ setHtmlFormat(): void;
216
+ /**
217
+ * Specify that the encrypted data should be formatted using html. This allows authorized users to
218
+ * double click and read using the Virtru Secure Reader, at the cost of reduced space efficiency.
219
+ * Returns this object for method chaining.
220
+ * <br/><br/>
221
+ * This is enabled by default.
222
+ * @return {EncryptParamsBuilder} - this object.
223
+ */
224
+ withHtmlFormat(): EncryptParamsBuilder;
225
+ /**
226
+ * Whether the encrypted data should be formatted using zip. This is more space efficient than html,
227
+ * but authorized users must leverage the Virtru SDK to decrypt.
228
+ * <br/><br/>
229
+ * This is disabled by default (html is enabled by default).
230
+ * @return {boolean} true if the encrypted data will be in zip format.
231
+ */
232
+ hasZipFormat(): boolean;
233
+ /**
234
+ * Whether the encrypted data should be formatted using zip. This is more space efficient than html,
235
+ * but authorized users must leverage the Virtru SDK to decrypt.
236
+ * <br/><br/>
237
+ * This is disabled by default (html is enabled by default).
238
+ */
239
+ setZipFormat(): void;
240
+ /**
241
+ * Whether the encrypted data should be formatted using zip. This is more space efficient than html,
242
+ * but authorized users must leverage the Virtru SDK to decrypt. Returns this object for method chaining.
243
+ * <br/><br/>
244
+ * This is disabled by default (html is enabled by default).
245
+ * @return {EncryptParamsBuilder} - this object.
246
+ */
247
+ withZipFormat(): EncryptParamsBuilder;
248
+ /**
249
+ * Gets the (consumer provided) mime type of the file to be protected
250
+ */
251
+ getMimeType(): string | undefined;
252
+ /**
253
+ * Sets the mime type of the underlying file.
254
+ * @param {string} mimeType - the content type string to be applied during decrypt
255
+ * @return {EncryptParamsBuilder} - this object.
256
+ */
257
+ setMimeType(mimeType: string): void;
258
+ /**
259
+ * Sets the mime type of the underlying file.
260
+ * @param {string} mimeType - the content type string to be applied during decrypt
261
+ * @return {EncryptParamsBuilder} - this object.
262
+ */
263
+ withMimeType(mimeType: string): EncryptParamsBuilder;
264
+ _deepCopy(_params: EncryptParams): Readonly<{
265
+ getPolicyId: () => string | undefined;
266
+ source: ReadableStream<Uint8Array>;
267
+ opts?: {
268
+ keypair: PemKeyPair;
269
+ } | undefined;
270
+ autoconfigure?: boolean | undefined;
271
+ scope?: Scope | undefined;
272
+ metadata?: Metadata | undefined;
273
+ keypair?: CryptoKeyPair | undefined;
274
+ offline?: boolean | undefined;
275
+ windowSize?: number | undefined;
276
+ asHtml?: boolean | undefined;
277
+ mimeType?: string | undefined;
278
+ eo?: EntityObject | undefined;
279
+ payloadKey?: Binary | undefined;
280
+ keyMiddleware?: EncryptKeyMiddleware | undefined;
281
+ splitPlan?: SplitStep[] | undefined;
282
+ streamMiddleware?: EncryptStreamMiddleware | undefined;
283
+ assertionConfigs?: AssertionConfig[] | undefined;
284
+ }>;
285
+ /**
286
+ * Generate a parameters object in the form expected by <code>{@link EncryptParamsBuilder#build|build()}</code>.
287
+ * <br/><br/>
288
+ * Creates a deep copy to prevent tricky call-by-reference and async execution bugs.
289
+ */
290
+ build(): Readonly<EncryptParams>;
291
+ /**
292
+ * Sets the assertion configurations for the encryption parameters.
293
+ *
294
+ * @param {AssertionConfig[]} assertionConfigs - An array of assertion configurations to be set.
295
+ * @returns {EncryptParamsBuilder} The current instance of the EncryptParamsBuilder for method chaining.
296
+ */
297
+ withAssertions(assertionConfigs: AssertionConfig[]): EncryptParamsBuilder;
298
+ }
299
+ export type DecryptKeyMiddleware = (key: Binary) => Promise<Binary>;
300
+ export type DecryptStreamMiddleware = (stream: DecoratedReadableStream) => Promise<DecoratedReadableStream>;
301
+ export type DecryptSource = {
302
+ type: 'buffer';
303
+ location: Uint8Array;
304
+ } | {
305
+ type: 'chunker';
306
+ location: Chunker;
307
+ } | {
308
+ type: 'remote';
309
+ location: string;
310
+ } | {
311
+ type: 'stream';
312
+ location: ReadableStream<Uint8Array>;
313
+ } | {
314
+ type: 'file-browser';
315
+ location: Blob;
316
+ };
317
+ export type DecryptParams = {
318
+ eo?: EntityObject;
319
+ source: DecryptSource;
320
+ keyMiddleware?: DecryptKeyMiddleware;
321
+ streamMiddleware?: DecryptStreamMiddleware;
322
+ assertionVerificationKeys?: AssertionVerificationKeys;
323
+ noVerifyAssertions?: boolean;
324
+ };
325
+ /**
326
+ * A builder capable of constructing the necessary parameters object for a
327
+ * <code>{@link Client#decrypt|decrypt}</code> operation. Must be built using the <code>{@link DecryptParamsBuilder#build|build()}</code> function.
328
+ * <br/><br/>
329
+ * Decrypt does not currently allow for setting a {@link EncryptParamsBuilder#getStreamWindowSize|stream window size}. Support for this configuration will be added in the near future.
330
+ * <br/><br/>
331
+ * Example usage:
332
+ * <pre>
333
+ // Configure the parameters to decrypt a local file.
334
+ const decryptParams = new Virtru.DecryptParamsBuilder()
335
+ .withFileSource("encrypted.html")
336
+ .build();
337
+
338
+ // Run the decrypt and write the result to stdout (node-style).
339
+ (await client.decrypt(decryptParams)).pipe(process.stdout);
340
+ </pre>
341
+ */
342
+ declare class DecryptParamsBuilder {
343
+ _params: Partial<DecryptParams>;
344
+ constructor(to_copy?: Partial<DecryptParams>);
345
+ getStreamSource(): DecryptSource | undefined;
346
+ /**
347
+ * Set the TDF ciphertext to decrypt, in buffer form.
348
+ * @param buffer to decrypt.
349
+ */
350
+ setBufferSource(buffer: Uint8Array): void;
351
+ /**
352
+ * Set the TDF ciphertext to decrypt, in buffer form. Returns this object for method chaining.
353
+ * @param buffer to decrypt.
354
+ */
355
+ withBufferSource(buffer: Uint8Array): this;
356
+ /**
357
+ * Specify the TDF ciphertext to decrypt, from an http(s) URL.
358
+ * TODO: add support for TDF.html encoding
359
+ * @param {string} url - a url pointing to a tdf3 file
360
+ */
361
+ setUrlSource(url: string): void;
362
+ /**
363
+ * Specify the TDF ciphertext to decrypt, as a URL.
364
+ * @param {string} url - a tdf3 remote URL.
365
+ * @return {DecryptParamsBuilder} - this object.
366
+ */
367
+ withUrlSource(url: string): this;
368
+ /**
369
+ * Specify the TDF ciphertext to decrypt, in stream form.
370
+ * @param {Readable} stream - a Readable stream to decrypt.
371
+ */
372
+ setStreamSource(stream: ReadableStream<Uint8Array>): void;
373
+ /**
374
+ * Specify the TDF ciphertext to decrypt, in stream form. Returns this object for method chaining.
375
+ * @param stream to decrypt.
376
+ */
377
+ withStreamSource(stream: ReadableStream<Uint8Array>): this;
378
+ /**
379
+ * Specify the TDF ciphertext to decrypt, in string form.
380
+ * @param {string} string - a string to decrypt.
381
+ */
382
+ setStringSource(string: string): void;
383
+ /**
384
+ * Specify the TDF ciphertext to decrypt, in string form. Returns this object for method chaining.
385
+ * @param {string} string - a string to decrypt.
386
+ * @return {DecryptParamsBuilder} - this object.
387
+ */
388
+ withStringSource(string: string): this;
389
+ /**
390
+ * Specify a reference to a local file with the TDF ciphertext to decrypt.
391
+ * Only works with node.
392
+ * @param source (node) the path of the local file to decrypt, or the Blob (browser/node)
393
+ */
394
+ setFileSource(source: Blob): void;
395
+ /**
396
+ * Specify a reference to a local file with the TDF ciphertext to decrypt. Only works with node.
397
+ * Returns this object for method chaining.
398
+ * @param source (node) the path of the local file to decrypt, or the Blob (browser/node)
399
+ */
400
+ withFileSource(source: Blob): this;
401
+ /**
402
+ * Specify the content to decrypt using an ArrayBuffer reference, which must have already
403
+ * loaded the file content. Using the below linked example, e.target.result is the ArrayBuffer
404
+ * <br/><br/>
405
+ * Example: https://developer.mozilla.org/en-US/docs/Web/API/FileReader/onload
406
+ *
407
+ * @param {ArrayBuffer} arraybuffer - the array buffer containing the file to decrypt.
408
+ * @return {DecryptParamsBuilder} - this object
409
+ */
410
+ setArrayBufferSource(arraybuffer: ArrayBuffer): void;
411
+ /**
412
+ * Specify the content to decrypt using an ArrayBuffer reference. Returns this object for method chaining.
413
+ *
414
+ * @param {ArrayBuffer} arraybuffer - the ArrayBuffer used to load file content from a browser
415
+ * @return {DecryptParamsBuilder} - this object.
416
+ */
417
+ withArrayBufferSource(arraybuffer: ArrayBuffer): this;
418
+ /** Skip assertion verification */
419
+ withNoVerifyAssertions(v: boolean): DecryptParamsBuilder;
420
+ _deepCopy(_params: DecryptParams): Readonly<{
421
+ eo?: EntityObject | undefined;
422
+ source: DecryptSource;
423
+ keyMiddleware?: DecryptKeyMiddleware | undefined;
424
+ streamMiddleware?: DecryptStreamMiddleware | undefined;
425
+ assertionVerificationKeys?: AssertionVerificationKeys | undefined;
426
+ noVerifyAssertions?: boolean | undefined;
427
+ }>;
428
+ /**
429
+ * Generate a parameters object in the form expected by <code>{@link Client#decrypt|decrypt}</code>.
430
+ * <br/><br/>
431
+ * Creates a deep copy to prevent tricky call-by-reference and async execution bugs.
432
+ */
433
+ build(): Readonly<DecryptParams>;
434
+ }
435
+ export { DecryptParamsBuilder, EncryptParamsBuilder };
436
+ //# sourceMappingURL=builders.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builders.d.ts","sourceRoot":"","sources":["../../../../../tdf3/src/client/builders.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,139 @@
1
+ import { ZipReader, fromDataSource } from '../utils/index.js';
2
+ import { CryptoService } from '../crypto/declarations.js';
3
+ import { type AuthProvider, AppIdAuthProvider, HttpRequest, withHeaders } from '../../../src/auth/auth.js';
4
+ import EAS from '../../../src/auth/Eas.js';
5
+ import { EncryptParams, DecryptParams } from './builders.js';
6
+ import { DecoratedReadableStream } from './DecoratedReadableStream.js';
7
+ import { DecryptParamsBuilder, type DecryptSource, EncryptParamsBuilder } from './builders.js';
8
+ import { KasPublicKeyInfo, OriginAllowList } from '../../../src/access.js';
9
+ export declare const uploadBinaryToS3: (stream: ReadableStream<Uint8Array>, uploadUrl: string, fileSize: number) => Promise<void>;
10
+ export interface ClientConfig {
11
+ cryptoService?: CryptoService;
12
+ organizationName?: string;
13
+ clientId?: string;
14
+ dpopEnabled?: boolean;
15
+ dpopKeys?: Promise<CryptoKeyPair>;
16
+ kasEndpoint?: string;
17
+ /**
18
+ * Service to use to look up ABAC. Used during autoconfigure. Defaults to
19
+ * kasEndpoint without the trailing `/kas` path segment, if present.
20
+ */
21
+ policyEndpoint?: string;
22
+ /**
23
+ * List of allowed KASes to connect to for rewrap requests.
24
+ * Defaults to `[kasEndpoint]`.
25
+ */
26
+ allowedKases?: string[];
27
+ ignoreAllowList?: boolean;
28
+ easEndpoint?: string;
29
+ keyRewrapEndpoint?: string;
30
+ keyUpsertEndpoint?: string;
31
+ refreshToken?: string;
32
+ kasPublicKey?: string;
33
+ oidcOrigin?: string;
34
+ externalJwt?: string;
35
+ authProvider?: AuthProvider | AppIdAuthProvider;
36
+ readerUrl?: string;
37
+ entityObjectEndpoint?: string;
38
+ fileStreamServiceWorker?: string;
39
+ progressHandler?: (bytesProcessed: number) => void;
40
+ }
41
+ export declare function createSessionKeys({ authProvider, cryptoService, dpopKeys, }: {
42
+ authProvider?: AuthProvider | AppIdAuthProvider;
43
+ cryptoService: CryptoService;
44
+ dpopKeys?: Promise<CryptoKeyPair>;
45
+ }): Promise<CryptoKeyPair>;
46
+ export declare class Client {
47
+ readonly cryptoService: CryptoService;
48
+ /**
49
+ * Default kas endpoint, if present. Required for encrypt.
50
+ */
51
+ readonly kasEndpoint: string;
52
+ /**
53
+ * Policy service endpoint, if present.
54
+ * Required for autoconfiguration with ABAC.
55
+ */
56
+ readonly policyEndpoint: string;
57
+ /**
58
+ * List of allowed KASes to connect to for rewrap requests.
59
+ * Defaults to `[this.kasEndpoint]`.
60
+ */
61
+ readonly allowedKases: OriginAllowList;
62
+ readonly kasKeys: Record<string, Promise<KasPublicKeyInfo>>;
63
+ readonly easEndpoint?: string;
64
+ readonly clientId?: string;
65
+ readonly authProvider?: AuthProvider | AppIdAuthProvider;
66
+ readonly readerUrl?: string;
67
+ readonly fileStreamServiceWorker?: string;
68
+ /**
69
+ * Session binding keys. Used for DPoP and signed request bodies.
70
+ */
71
+ readonly dpopKeys: Promise<CryptoKeyPair>;
72
+ readonly eas?: EAS;
73
+ readonly dpopEnabled: boolean;
74
+ readonly clientConfig: ClientConfig;
75
+ /**
76
+ * An abstraction for protecting and accessing data using TDF3 services.
77
+ * @param {Object} [config.keypair] - keypair generated for signing. Optional, will be generated by sdk if not passed
78
+ * @param {String} [config.clientId]
79
+ * @param {String} [config.kasEndpoint] - Key Access Server url
80
+ * @param {String} [config.refreshToken] - After logging in to browser OIDC interface user
81
+ * receives fresh token that needed by SDK for auth needs
82
+ * @param {String} [config.externalJwt] - JWT from external authority (eg Google)
83
+ * @param {String} [config.oidcOrigin] - Endpoint of authentication service
84
+ */
85
+ constructor(config: ClientConfig);
86
+ /**
87
+ * Encrypt plaintext into TDF ciphertext. One of the core operations of the Virtru SDK.
88
+ *
89
+ * @param scope dissem and attributes for constructing the policy
90
+ * @param source source object of unencrypted data
91
+ * @param [asHtml] If we should wrap the TDF data in a self-opening HTML wrapper. Defaults to false
92
+ * @param [autoconfigure] If we should use scope.attributes to configure KAOs
93
+ * @param [metadata] Additional non-secret data to store with the TDF
94
+ * @param [opts] Test only
95
+ * @param [mimeType] mime type of source. defaults to `unknown`
96
+ * @param [offline] Where to store the policy. Defaults to `false` - which results in `upsert` events to store/update a policy
97
+ * @param [windowSize] - segment size in bytes. Defaults to a a million bytes.
98
+ * @param [keyMiddleware] - function that handle keys
99
+ * @param [streamMiddleware] - function that handle stream
100
+ * @param [eo] - (deprecated) entity object
101
+ * @return a {@link https://nodejs.org/api/stream.html#stream_class_stream_readable|Readable} a new stream containing the TDF ciphertext
102
+ */
103
+ encrypt({ scope, autoconfigure, source, asHtml, metadata, mimeType, offline, windowSize, eo, keyMiddleware, streamMiddleware, splitPlan, assertionConfigs, }: EncryptParams): Promise<DecoratedReadableStream>;
104
+ /**
105
+ * Decrypt TDF ciphertext into plaintext. One of the core operations of the Virtru SDK.
106
+ *
107
+ * @param params keyMiddleware fucntion to process key
108
+ * @param params streamMiddleware fucntion to process streamMiddleware
109
+ * @param params.source A data stream object, one of remote, stream, buffer, etc. types.
110
+ * @param params.eo Optional entity object (legacy AuthZ)
111
+ * @param params.assertionVerificationKeys Optional verification keys for assertions.
112
+ * @return a {@link https://nodejs.org/api/stream.html#stream_class_stream_readable|Readable} stream containing the decrypted plaintext.
113
+ * @see DecryptParamsBuilder
114
+ */
115
+ decrypt({ eo, source, keyMiddleware, streamMiddleware, assertionVerificationKeys, noVerifyAssertions, }: DecryptParams): Promise<DecoratedReadableStream>;
116
+ /**
117
+ * Get the unique policyId associated with TDF ciphertext. Useful for managing authorization policies of encrypted data.
118
+ * <br/><br/>
119
+ * The policyId is embedded in the ciphertext so this is a local operation.
120
+ *
121
+ * @param {object} source - Required. TDF data stream,
122
+ * generated using {@link DecryptParamsBuilder#build|DecryptParamsBuilder's build()}.
123
+ * @return {string} - the unique policyId, which can be used for tracking purposes or policy management operations.
124
+ * @see DecryptParamsBuilder
125
+ */
126
+ getPolicyId({ source }: {
127
+ source: DecryptSource;
128
+ }): Promise<any>;
129
+ loadTDFStream({ source }: {
130
+ source: DecryptSource;
131
+ }): Promise<{
132
+ manifest: import("../models/manifest.js").Manifest;
133
+ zipReader: ZipReader;
134
+ centralDirectory: import("../utils/zip-reader.js").CentralDirectory[];
135
+ }>;
136
+ }
137
+ export type { AuthProvider };
138
+ export { AppIdAuthProvider, DecryptParamsBuilder, DecryptSource, EncryptParamsBuilder, HttpRequest, fromDataSource, withHeaders, };
139
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../tdf3/src/client/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ export declare const ATTR_NAME_PROP_NAME = "attr";
2
+ export declare const ATTR_VALUE_PROP_NAME = "value";
3
+ export declare const ATTR_NAME: string;
4
+ export declare const ATTR_VALUE: string;
5
+ export declare const ATTR_ATTRIBUTE_PATTERN: string;
6
+ export declare const validateAttributeObject: (attr: unknown) => true | never;
7
+ export declare function validateAttribute(attribute: string): true | never;
8
+ //# sourceMappingURL=validation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../../../tdf3/src/client/validation.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,mBAAmB,SAAS,CAAC;AAC1C,eAAO,MAAM,oBAAoB,UAAU,CAAC;AAkB5C,eAAO,MAAM,SAAS,QAAmE,CAAC;AAG1F,eAAO,MAAM,UAAU,QAAoE,CAAC;AAS5F,eAAO,MAAM,sBAAsB,QAA+C,CAAC;AAEnF,eAAO,MAAM,uBAAuB,SAAU,OAAO,KAAG,IAAI,GAAG,KAa9D,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,KAAK,CA0BjE"}
@@ -0,0 +1,34 @@
1
+ import { type AnyKeyPair, type PemKeyPair } from './declarations.js';
2
+ /**
3
+ * Validates a specified key size
4
+ * @param size in bits requested
5
+ * @param minSize in bits allowed
6
+ */
7
+ export declare const isValidAsymmetricKeySize: (size: number | undefined, minSize?: number) => boolean;
8
+ /**
9
+ * Format a base64 string representation of a key file
10
+ * in PEM PKCS#8 format by adding a header and footer
11
+ * and new lines.
12
+ *
13
+ * The PEM spec says to use <CR><LF> (\r\n) per
14
+ * https://tools.ietf.org/html/rfc1421#section-4.3.2.2, but
15
+ * many implementations use just \n, so this function
16
+ * follows the convention over the spec.
17
+ *
18
+ * @param base64KeyString input
19
+ * @param label header and footer label that identifies key type
20
+ * @return formatted output
21
+ */
22
+ export declare const formatAsPem: (bytes: ArrayBuffer, label: string) => string;
23
+ /**
24
+ * Remove PEM formatting (new line characters and headers / footers)
25
+ * from a PEM string
26
+ *
27
+ * @param input - PEM formatted string
28
+ * @return String with formatting removed
29
+ */
30
+ export declare const removePemFormatting: (input: string) => string;
31
+ export declare const isPemKeyPair: (i: AnyKeyPair) => i is PemKeyPair;
32
+ export declare const isCryptoKeyPair: (i: AnyKeyPair) => i is CryptoKeyPair;
33
+ export declare const toCryptoKeyPair: (input: AnyKeyPair) => Promise<CryptoKeyPair>;
34
+ //# sourceMappingURL=crypto-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crypto-utils.d.ts","sourceRoot":"","sources":["../../../../../tdf3/src/crypto/crypto-utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAGrE;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,SAAU,MAAM,GAAG,SAAS,YAAY,MAAM,KAAG,OAWrF,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,WAAW,UAAW,WAAW,SAAS,MAAM,KAAG,MAc/D,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,UAAW,MAAM,KAAG,MAWnD,CAAC;AAKF,eAAO,MAAM,YAAY,MAAO,UAAU,oBAczC,CAAC;AAEF,eAAO,MAAM,eAAe,MAAO,UAAU,uBAS5C,CAAC;AAEF,eAAO,MAAM,eAAe,UAAiB,UAAU,KAAG,QAAQ,aAAa,CAgB9E,CAAC"}