@opentdf/sdk 0.1.0-beta.1718 → 0.2.0-beta.1941

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 (321) hide show
  1. package/README.md +45 -38
  2. package/dist/cjs/src/access.js +99 -62
  3. package/dist/cjs/src/auth/auth.js +5 -26
  4. package/dist/cjs/src/auth/oidc-clientcredentials-provider.js +1 -1
  5. package/dist/cjs/src/auth/oidc-externaljwt-provider.js +1 -1
  6. package/dist/cjs/src/auth/oidc-refreshtoken-provider.js +1 -1
  7. package/dist/cjs/src/auth/oidc.js +1 -1
  8. package/dist/cjs/src/auth/providers.js +1 -1
  9. package/dist/cjs/src/concurrency.js +3 -4
  10. package/dist/cjs/src/encodings/base64.js +4 -4
  11. package/dist/cjs/src/encodings/hex.js +5 -6
  12. package/dist/cjs/src/encodings/index.js +18 -8
  13. package/dist/cjs/src/errors.js +1 -1
  14. package/dist/cjs/src/index.js +28 -320
  15. package/dist/cjs/src/nanoclients.js +285 -0
  16. package/dist/cjs/src/nanoindex.js +47 -0
  17. package/dist/cjs/src/nanotdf/Client.js +35 -30
  18. package/dist/cjs/src/nanotdf/NanoTDF.js +1 -1
  19. package/dist/cjs/src/nanotdf/decrypt.js +2 -2
  20. package/dist/cjs/src/nanotdf/encrypt-dataset.js +2 -2
  21. package/dist/cjs/src/nanotdf/encrypt.js +2 -2
  22. package/dist/cjs/src/nanotdf/helpers/calculateByCurve.js +3 -4
  23. package/dist/cjs/src/nanotdf/helpers/getHkdfSalt.js +2 -2
  24. package/dist/cjs/src/nanotdf/models/Ciphers.js +3 -3
  25. package/dist/cjs/src/nanotdf/models/EcCurves.js +3 -3
  26. package/dist/cjs/src/nanotdf/models/Header.js +1 -1
  27. package/dist/cjs/src/nanotdf/models/Payload.js +1 -1
  28. package/dist/cjs/src/nanotdf/models/Policy/AbstractPolicy.js +1 -1
  29. package/dist/cjs/src/nanotdf/models/Policy/EmbeddedPolicy.js +1 -1
  30. package/dist/cjs/src/nanotdf/models/Policy/PolicyFactory.js +1 -1
  31. package/dist/cjs/src/nanotdf/models/ResourceLocator.js +1 -1
  32. package/dist/cjs/src/nanotdf/models/Signature.js +1 -1
  33. package/dist/cjs/src/nanotdf-crypto/ciphers.js +1 -1
  34. package/dist/cjs/src/nanotdf-crypto/decrypt.js +2 -2
  35. package/dist/cjs/src/nanotdf-crypto/digest.js +2 -2
  36. package/dist/cjs/src/nanotdf-crypto/ecdsaSignature.js +4 -5
  37. package/dist/cjs/src/nanotdf-crypto/encrypt.js +2 -2
  38. package/dist/cjs/src/nanotdf-crypto/exportCryptoKey.js +2 -2
  39. package/dist/cjs/src/nanotdf-crypto/generateKeyPair.js +2 -2
  40. package/dist/cjs/src/nanotdf-crypto/generateRandomNumber.js +2 -2
  41. package/dist/cjs/src/nanotdf-crypto/index.js +21 -13
  42. package/dist/cjs/src/nanotdf-crypto/keyAgreement.js +10 -8
  43. package/dist/cjs/src/nanotdf-crypto/pemPublicToCrypto.js +20 -11
  44. package/dist/cjs/src/opentdf.js +243 -0
  45. package/dist/cjs/src/policy/api.js +2 -3
  46. package/dist/cjs/src/policy/granter.js +3 -4
  47. package/dist/cjs/src/seekable.js +157 -0
  48. package/dist/cjs/src/tdf/AttributeObject.js +2 -4
  49. package/dist/cjs/src/tdf/Policy.js +3 -3
  50. package/dist/cjs/src/utils.js +13 -21
  51. package/dist/cjs/src/version.js +7 -3
  52. package/dist/cjs/tdf3/index.js +27 -16
  53. package/dist/cjs/tdf3/src/assertions.js +25 -11
  54. package/dist/cjs/tdf3/src/binary.js +1 -1
  55. package/dist/cjs/tdf3/src/ciphers/aes-gcm-cipher.js +1 -1
  56. package/dist/cjs/tdf3/src/ciphers/symmetric-cipher-base.js +1 -1
  57. package/dist/cjs/tdf3/src/client/DecoratedReadableStream.js +7 -74
  58. package/dist/cjs/tdf3/src/client/builders.js +26 -22
  59. package/dist/cjs/tdf3/src/client/index.js +91 -117
  60. package/dist/cjs/tdf3/src/client/validation.js +3 -3
  61. package/dist/cjs/tdf3/src/crypto/crypto-utils.js +1 -1
  62. package/dist/cjs/tdf3/src/crypto/index.js +18 -18
  63. package/dist/cjs/tdf3/src/index.js +22 -11
  64. package/dist/cjs/tdf3/src/models/attribute-set.js +1 -1
  65. package/dist/cjs/tdf3/src/models/encryption-information.js +3 -3
  66. package/dist/cjs/tdf3/src/models/index.js +1 -2
  67. package/dist/cjs/tdf3/src/models/key-access.js +67 -35
  68. package/dist/cjs/tdf3/src/models/policy.js +3 -3
  69. package/dist/cjs/tdf3/src/tdf.js +180 -395
  70. package/dist/cjs/tdf3/src/utils/buffer-crc32.js +2 -3
  71. package/dist/cjs/tdf3/src/utils/index.js +48 -38
  72. package/dist/cjs/tdf3/src/utils/keysplit.js +4 -5
  73. package/dist/cjs/tdf3/src/utils/unwrap.js +21 -0
  74. package/dist/cjs/tdf3/src/utils/zip-reader.js +4 -4
  75. package/dist/cjs/tdf3/src/utils/zip-writer.js +4 -4
  76. package/dist/types/src/access.d.ts +10 -4
  77. package/dist/types/src/access.d.ts.map +1 -1
  78. package/dist/types/src/auth/auth.d.ts +1 -28
  79. package/dist/types/src/auth/auth.d.ts.map +1 -1
  80. package/dist/types/src/auth/providers.d.ts.map +1 -1
  81. package/dist/types/src/index.d.ts +5 -136
  82. package/dist/types/src/index.d.ts.map +1 -1
  83. package/dist/types/src/nanoclients.d.ts +107 -0
  84. package/dist/types/src/nanoclients.d.ts.map +1 -0
  85. package/dist/types/src/nanoindex.d.ts +5 -0
  86. package/dist/types/src/nanoindex.d.ts.map +1 -0
  87. package/dist/types/src/nanotdf/Client.d.ts +1 -13
  88. package/dist/types/src/nanotdf/Client.d.ts.map +1 -1
  89. package/dist/types/src/nanotdf/NanoTDF.d.ts +1 -1
  90. package/dist/types/src/nanotdf/NanoTDF.d.ts.map +1 -1
  91. package/dist/types/src/nanotdf/encrypt-dataset.d.ts +1 -1
  92. package/dist/types/src/nanotdf/encrypt-dataset.d.ts.map +1 -1
  93. package/dist/types/src/nanotdf/encrypt.d.ts +1 -1
  94. package/dist/types/src/nanotdf/encrypt.d.ts.map +1 -1
  95. package/dist/types/src/nanotdf/enum/CipherEnum.d.ts +1 -1
  96. package/dist/types/src/nanotdf/enum/CipherEnum.d.ts.map +1 -1
  97. package/dist/types/src/nanotdf/enum/PolicyTypeEnum.d.ts +1 -1
  98. package/dist/types/src/nanotdf/enum/PolicyTypeEnum.d.ts.map +1 -1
  99. package/dist/types/src/nanotdf/helpers/getHkdfSalt.d.ts +1 -1
  100. package/dist/types/src/nanotdf/helpers/getHkdfSalt.d.ts.map +1 -1
  101. package/dist/types/src/nanotdf/models/DefaultParams.d.ts +1 -1
  102. package/dist/types/src/nanotdf/models/ResourceLocator.d.ts.map +1 -1
  103. package/dist/types/src/nanotdf-crypto/digest.d.ts +1 -1
  104. package/dist/types/src/nanotdf-crypto/digest.d.ts.map +1 -1
  105. package/dist/types/src/nanotdf-crypto/generateKeyPair.d.ts +1 -1
  106. package/dist/types/src/nanotdf-crypto/generateKeyPair.d.ts.map +1 -1
  107. package/dist/types/src/nanotdf-crypto/generateRandomNumber.d.ts +1 -1
  108. package/dist/types/src/nanotdf-crypto/generateRandomNumber.d.ts.map +1 -1
  109. package/dist/types/src/nanotdf-crypto/index.d.ts +2 -3
  110. package/dist/types/src/nanotdf-crypto/index.d.ts.map +1 -1
  111. package/dist/types/src/nanotdf-crypto/keyAgreement.d.ts.map +1 -1
  112. package/dist/types/src/opentdf.d.ts +106 -0
  113. package/dist/types/src/opentdf.d.ts.map +1 -0
  114. package/dist/types/src/seekable.d.ts +39 -0
  115. package/dist/types/src/seekable.d.ts.map +1 -0
  116. package/dist/types/src/tdf/AttributeObject.d.ts +0 -2
  117. package/dist/types/src/tdf/AttributeObject.d.ts.map +1 -1
  118. package/dist/types/src/tdf/NanoTDF/NanoTDF.d.ts +2 -2
  119. package/dist/types/src/tdf/NanoTDF/NanoTDF.d.ts.map +1 -1
  120. package/dist/types/src/tdf/Policy.d.ts +1 -1
  121. package/dist/types/src/tdf/Policy.d.ts.map +1 -1
  122. package/dist/types/src/tdf/PolicyObject.d.ts +1 -2
  123. package/dist/types/src/tdf/PolicyObject.d.ts.map +1 -1
  124. package/dist/types/src/tdf/TypedArray.d.ts +1 -2
  125. package/dist/types/src/tdf/TypedArray.d.ts.map +1 -1
  126. package/dist/types/src/utils.d.ts +1 -3
  127. package/dist/types/src/utils.d.ts.map +1 -1
  128. package/dist/types/src/version.d.ts +5 -1
  129. package/dist/types/src/version.d.ts.map +1 -1
  130. package/dist/types/tdf3/index.d.ts +5 -4
  131. package/dist/types/tdf3/index.d.ts.map +1 -1
  132. package/dist/types/tdf3/src/assertions.d.ts +3 -3
  133. package/dist/types/tdf3/src/assertions.d.ts.map +1 -1
  134. package/dist/types/tdf3/src/client/DecoratedReadableStream.d.ts +2 -15
  135. package/dist/types/tdf3/src/client/DecoratedReadableStream.d.ts.map +1 -1
  136. package/dist/types/tdf3/src/client/builders.d.ts +43 -42
  137. package/dist/types/tdf3/src/client/builders.d.ts.map +1 -1
  138. package/dist/types/tdf3/src/client/index.d.ts +12 -17
  139. package/dist/types/tdf3/src/client/index.d.ts.map +1 -1
  140. package/dist/types/tdf3/src/client/validation.d.ts +3 -3
  141. package/dist/types/tdf3/src/client/validation.d.ts.map +1 -1
  142. package/dist/types/tdf3/src/crypto/crypto-utils.d.ts.map +1 -1
  143. package/dist/types/tdf3/src/index.d.ts +1 -1
  144. package/dist/types/tdf3/src/index.d.ts.map +1 -1
  145. package/dist/types/tdf3/src/models/index.d.ts +0 -1
  146. package/dist/types/tdf3/src/models/index.d.ts.map +1 -1
  147. package/dist/types/tdf3/src/models/key-access.d.ts +63 -15
  148. package/dist/types/tdf3/src/models/key-access.d.ts.map +1 -1
  149. package/dist/types/tdf3/src/models/manifest.d.ts +2 -0
  150. package/dist/types/tdf3/src/models/manifest.d.ts.map +1 -1
  151. package/dist/types/tdf3/src/models/policy.d.ts +0 -1
  152. package/dist/types/tdf3/src/models/policy.d.ts.map +1 -1
  153. package/dist/types/tdf3/src/tdf.d.ts +24 -37
  154. package/dist/types/tdf3/src/tdf.d.ts.map +1 -1
  155. package/dist/types/tdf3/src/utils/index.d.ts +0 -4
  156. package/dist/types/tdf3/src/utils/index.d.ts.map +1 -1
  157. package/dist/types/tdf3/src/utils/unwrap.d.ts +2 -0
  158. package/dist/types/tdf3/src/utils/unwrap.d.ts.map +1 -0
  159. package/dist/types/tdf3/src/utils/zip-reader.d.ts +1 -1
  160. package/dist/types/tdf3/src/utils/zip-reader.d.ts.map +1 -1
  161. package/dist/types/tdf3/src/utils/zip-writer.d.ts +2 -2
  162. package/dist/web/src/access.js +93 -58
  163. package/dist/web/src/auth/auth.js +1 -21
  164. package/dist/web/src/auth/oidc-clientcredentials-provider.js +1 -1
  165. package/dist/web/src/auth/oidc-externaljwt-provider.js +1 -1
  166. package/dist/web/src/auth/oidc-refreshtoken-provider.js +1 -1
  167. package/dist/web/src/auth/oidc.js +1 -1
  168. package/dist/web/src/auth/providers.js +1 -1
  169. package/dist/web/src/concurrency.js +1 -1
  170. package/dist/web/src/encodings/base64.js +1 -1
  171. package/dist/web/src/encodings/hex.js +1 -1
  172. package/dist/web/src/errors.js +1 -1
  173. package/dist/web/src/index.js +6 -312
  174. package/dist/web/src/nanoclients.js +280 -0
  175. package/dist/web/src/nanoindex.js +5 -0
  176. package/dist/web/src/nanotdf/Client.js +18 -23
  177. package/dist/web/src/nanotdf/NanoTDF.js +1 -1
  178. package/dist/web/src/nanotdf/encrypt-dataset.js +1 -1
  179. package/dist/web/src/nanotdf/encrypt.js +1 -1
  180. package/dist/web/src/nanotdf/models/Ciphers.js +1 -1
  181. package/dist/web/src/nanotdf/models/EcCurves.js +1 -1
  182. package/dist/web/src/nanotdf/models/Header.js +1 -1
  183. package/dist/web/src/nanotdf/models/Payload.js +1 -1
  184. package/dist/web/src/nanotdf/models/Policy/AbstractPolicy.js +1 -1
  185. package/dist/web/src/nanotdf/models/Policy/EmbeddedPolicy.js +1 -1
  186. package/dist/web/src/nanotdf/models/Policy/PolicyFactory.js +1 -1
  187. package/dist/web/src/nanotdf/models/ResourceLocator.js +1 -1
  188. package/dist/web/src/nanotdf/models/Signature.js +1 -1
  189. package/dist/web/src/nanotdf-crypto/ciphers.js +1 -1
  190. package/dist/web/src/nanotdf-crypto/ecdsaSignature.js +1 -1
  191. package/dist/web/src/nanotdf-crypto/generateKeyPair.js +2 -2
  192. package/dist/web/src/nanotdf-crypto/generateRandomNumber.js +2 -2
  193. package/dist/web/src/nanotdf-crypto/index.js +3 -4
  194. package/dist/web/src/nanotdf-crypto/keyAgreement.js +9 -6
  195. package/dist/web/src/nanotdf-crypto/pemPublicToCrypto.js +1 -1
  196. package/dist/web/src/opentdf.js +234 -0
  197. package/dist/web/src/policy/api.js +1 -1
  198. package/dist/web/src/policy/granter.js +1 -1
  199. package/dist/web/src/seekable.js +148 -0
  200. package/dist/web/src/tdf/AttributeObject.js +1 -2
  201. package/dist/web/src/tdf/Policy.js +2 -4
  202. package/dist/web/src/utils.js +3 -10
  203. package/dist/web/src/version.js +6 -2
  204. package/dist/web/tdf3/index.js +5 -4
  205. package/dist/web/tdf3/src/assertions.js +21 -6
  206. package/dist/web/tdf3/src/binary.js +1 -1
  207. package/dist/web/tdf3/src/ciphers/aes-gcm-cipher.js +1 -1
  208. package/dist/web/tdf3/src/ciphers/symmetric-cipher-base.js +1 -1
  209. package/dist/web/tdf3/src/client/DecoratedReadableStream.js +4 -68
  210. package/dist/web/tdf3/src/client/builders.js +26 -22
  211. package/dist/web/tdf3/src/client/index.js +74 -105
  212. package/dist/web/tdf3/src/client/validation.js +1 -1
  213. package/dist/web/tdf3/src/crypto/crypto-utils.js +1 -1
  214. package/dist/web/tdf3/src/crypto/index.js +1 -1
  215. package/dist/web/tdf3/src/index.js +2 -2
  216. package/dist/web/tdf3/src/models/attribute-set.js +1 -1
  217. package/dist/web/tdf3/src/models/encryption-information.js +3 -3
  218. package/dist/web/tdf3/src/models/index.js +1 -2
  219. package/dist/web/tdf3/src/models/key-access.js +47 -24
  220. package/dist/web/tdf3/src/models/policy.js +1 -1
  221. package/dist/web/tdf3/src/tdf.js +153 -371
  222. package/dist/web/tdf3/src/utils/buffer-crc32.js +1 -1
  223. package/dist/web/tdf3/src/utils/index.js +19 -14
  224. package/dist/web/tdf3/src/utils/keysplit.js +1 -1
  225. package/dist/web/tdf3/src/utils/unwrap.js +18 -0
  226. package/dist/web/tdf3/src/utils/zip-reader.js +1 -1
  227. package/dist/web/tdf3/src/utils/zip-writer.js +1 -1
  228. package/package.json +45 -45
  229. package/src/access.ts +111 -54
  230. package/src/auth/auth.ts +1 -31
  231. package/src/index.ts +5 -440
  232. package/src/nanoclients.ts +405 -0
  233. package/src/nanoindex.ts +4 -0
  234. package/src/nanotdf/Client.ts +18 -25
  235. package/src/nanotdf/NanoTDF.ts +1 -1
  236. package/src/nanotdf/encrypt-dataset.ts +1 -1
  237. package/src/nanotdf/encrypt.ts +1 -1
  238. package/src/nanotdf/helpers/getHkdfSalt.ts +1 -1
  239. package/src/nanotdf-crypto/digest.ts +1 -1
  240. package/src/nanotdf-crypto/generateKeyPair.ts +1 -1
  241. package/src/nanotdf-crypto/generateRandomNumber.ts +1 -1
  242. package/src/nanotdf-crypto/index.ts +2 -3
  243. package/src/nanotdf-crypto/keyAgreement.ts +14 -7
  244. package/src/opentdf.ts +441 -0
  245. package/src/seekable.ts +180 -0
  246. package/src/tdf/AttributeObject.ts +0 -3
  247. package/src/tdf/Policy.ts +1 -2
  248. package/src/tdf/PolicyObject.ts +1 -2
  249. package/src/tdf/TypedArray.ts +1 -3
  250. package/src/utils.ts +3 -11
  251. package/src/version.ts +6 -1
  252. package/tdf3/index.ts +15 -10
  253. package/tdf3/src/assertions.ts +33 -8
  254. package/tdf3/src/client/DecoratedReadableStream.ts +3 -80
  255. package/tdf3/src/client/builders.ts +44 -28
  256. package/tdf3/src/client/index.ts +109 -165
  257. package/tdf3/src/index.ts +1 -1
  258. package/tdf3/src/models/encryption-information.ts +2 -2
  259. package/tdf3/src/models/index.ts +0 -1
  260. package/tdf3/src/models/key-access.ts +120 -38
  261. package/tdf3/src/models/manifest.ts +3 -0
  262. package/tdf3/src/models/policy.ts +0 -1
  263. package/tdf3/src/tdf.ts +266 -522
  264. package/tdf3/src/utils/index.ts +19 -18
  265. package/tdf3/src/utils/unwrap.ts +17 -0
  266. package/tdf3/src/utils/zip-reader.ts +1 -1
  267. package/dist/cjs/src/auth/Eas.js +0 -60
  268. package/dist/cjs/src/nanotdf-crypto/importRawKey.js +0 -18
  269. package/dist/cjs/src/tdf/Crypto.js +0 -47
  270. package/dist/cjs/src/tdf/EntityObject.js +0 -3
  271. package/dist/cjs/src/tdf/index.js +0 -35
  272. package/dist/cjs/tdf3/src/models/upsert-response.js +0 -3
  273. package/dist/cjs/tdf3/src/templates/default.html.js +0 -98
  274. package/dist/cjs/tdf3/src/templates/escaper.js +0 -15
  275. package/dist/cjs/tdf3/src/templates/index.js +0 -12
  276. package/dist/cjs/tdf3/src/utils/chunkers.js +0 -106
  277. package/dist/cjs/tdf3/src/version.js +0 -6
  278. package/dist/types/src/auth/Eas.d.ts +0 -34
  279. package/dist/types/src/auth/Eas.d.ts.map +0 -1
  280. package/dist/types/src/nanotdf-crypto/importRawKey.d.ts +0 -13
  281. package/dist/types/src/nanotdf-crypto/importRawKey.d.ts.map +0 -1
  282. package/dist/types/src/tdf/Crypto.d.ts +0 -37
  283. package/dist/types/src/tdf/Crypto.d.ts.map +0 -1
  284. package/dist/types/src/tdf/EntityObject.d.ts +0 -18
  285. package/dist/types/src/tdf/EntityObject.d.ts.map +0 -1
  286. package/dist/types/src/tdf/index.d.ts +0 -7
  287. package/dist/types/src/tdf/index.d.ts.map +0 -1
  288. package/dist/types/tdf3/src/models/upsert-response.d.ts +0 -16
  289. package/dist/types/tdf3/src/models/upsert-response.d.ts.map +0 -1
  290. package/dist/types/tdf3/src/templates/default.html.d.ts +0 -8
  291. package/dist/types/tdf3/src/templates/default.html.d.ts.map +0 -1
  292. package/dist/types/tdf3/src/templates/escaper.d.ts +0 -6
  293. package/dist/types/tdf3/src/templates/escaper.d.ts.map +0 -1
  294. package/dist/types/tdf3/src/templates/index.d.ts +0 -3
  295. package/dist/types/tdf3/src/templates/index.d.ts.map +0 -1
  296. package/dist/types/tdf3/src/utils/chunkers.d.ts +0 -29
  297. package/dist/types/tdf3/src/utils/chunkers.d.ts.map +0 -1
  298. package/dist/types/tdf3/src/version.d.ts +0 -3
  299. package/dist/types/tdf3/src/version.d.ts.map +0 -1
  300. package/dist/web/src/auth/Eas.js +0 -55
  301. package/dist/web/src/nanotdf-crypto/importRawKey.js +0 -15
  302. package/dist/web/src/tdf/Crypto.js +0 -44
  303. package/dist/web/src/tdf/EntityObject.js +0 -2
  304. package/dist/web/src/tdf/index.js +0 -4
  305. package/dist/web/tdf3/src/models/upsert-response.js +0 -2
  306. package/dist/web/tdf3/src/templates/default.html.js +0 -96
  307. package/dist/web/tdf3/src/templates/escaper.js +0 -10
  308. package/dist/web/tdf3/src/templates/index.js +0 -3
  309. package/dist/web/tdf3/src/utils/chunkers.js +0 -96
  310. package/dist/web/tdf3/src/version.js +0 -3
  311. package/src/auth/Eas.ts +0 -79
  312. package/src/nanotdf-crypto/importRawKey.ts +0 -19
  313. package/src/tdf/Crypto.ts +0 -42
  314. package/src/tdf/EntityObject.ts +0 -18
  315. package/src/tdf/index.ts +0 -6
  316. package/tdf3/src/models/upsert-response.ts +0 -17
  317. package/tdf3/src/templates/default.html.ts +0 -105
  318. package/tdf3/src/templates/escaper.ts +0 -10
  319. package/tdf3/src/templates/index.ts +0 -2
  320. package/tdf3/src/utils/chunkers.ts +0 -118
  321. package/tdf3/src/version.ts +0 -2
@@ -1,18 +0,0 @@
1
- import type AttributeObjectJwt from './AttributeObjectJwt.js';
2
-
3
- /**
4
- * Defined by the TDF3 spec and generated by an Entity Attribute Service,
5
- * this object (when accompanied by a valid cert) defines what attributes
6
- * a client has access to.
7
- */
8
- export interface EntityObject {
9
- readonly aliases: string[];
10
- readonly attributes: AttributeObjectJwt[];
11
- /** This should be present on validated EOs only - it is written by an EAS */
12
- readonly cert?: string;
13
- readonly exp?: number;
14
- readonly publicKey: string;
15
- readonly userId: string;
16
- /** The most recent version 1.1.0. */
17
- readonly schemaVersion?: string;
18
- }
package/src/tdf/index.ts DELETED
@@ -1,6 +0,0 @@
1
- export { type AttributeObject, createAttribute } from './AttributeObject.js';
2
- export { type EntityObject } from './EntityObject.js';
3
- export { type default as PolicyObject } from './PolicyObject.js';
4
- export { type default as TypedArray } from './TypedArray.js';
5
- export { default as Policy } from './Policy.js';
6
- export * as Crypto from './Crypto.js';
@@ -1,17 +0,0 @@
1
- export type ArtifactFinder = {
2
- upload?: string;
3
- // Download URL for the payload. This can be a direct link to the file (S3), or a proxy URL.
4
- download: string;
5
- key?: string;
6
- bucket?: string;
7
- };
8
-
9
- export type UpsertResponse = {
10
- uuid: string;
11
- storageLinks: {
12
- payload: ArtifactFinder & {
13
- proxy?: boolean | string;
14
- };
15
- metadata?: ArtifactFinder;
16
- };
17
- }[][];
@@ -1,105 +0,0 @@
1
- import { escHtml, escJavaScript } from './escaper.js';
2
- export default ({
3
- manifest,
4
- payload,
5
- transferUrl,
6
- transferBaseUrl,
7
- }: {
8
- manifest: string;
9
- payload: string;
10
- transferUrl: string;
11
- transferBaseUrl: string;
12
- }) => `<html>
13
- <head>
14
- <meta charset="UTF-8">
15
- </head>
16
- <body style="font-family: Arial; color: #2D323B; overflow: hidden; margin: 0; height: 100%; background-color: white;">
17
- <input id="data-input" type="hidden" value="${escHtml(payload)}">
18
- <input id="data-manifest" type="hidden" value="${escHtml(manifest)}">
19
- <iframe style="width:0;height:0;border:0; border:none;" src="${escHtml(transferUrl)}"></iframe>
20
- <div role="banner" style="background-color: #092356; color: white; height: 55px;">
21
- <img src="https://cdn.virtru.com/assets/virtru-logo-white-rgb.png"
22
- style="display: inline-block; padding: 18px 0 0 24px;"
23
- width="62px" height="19px" alt="Virtru logo" title="Virtru"/>
24
- </div>
25
- <div role="main" class="wrapper" style="padding-top: 107px; display: flex; flex-direction: row; max-width: 1200px;
26
- min-width: 800px; margin: 0 auto; min-height: calc(100vh - 230px); border-bottom: 1px solid #F3F5F7;">
27
- <div role="region">
28
- <img src="https://cdn.virtru.com/assets/request-access.png" style="display: inline-block;"
29
- width="387px" height="310px" alt="Request access image" title="Request access"/>
30
- </div>
31
- <div role="complementary" style="word-break: break-all; padding-right: 12px;">
32
- <h1 style="font-size: 1.5em;">Virtru Secure File</h1>
33
- <noscript style="font-weight: 100;">
34
- <span>
35
- To view this file, download and access it from your computer:
36
- <br />
37
- <br />
38
- </span>
39
- <div>
40
- 1. <b>Go Back</b> to the file directory and <b>Right-click</b> on the file
41
- </div>
42
- <div>
43
- 2. Select <b>Download</b>
44
- </div>
45
- <div>
46
- 3. Once download is complete, <b>double-click</b> on the local file to open
47
- </div>
48
- </noscript>
49
- <div id="js-enabled-message" style="display: none;">
50
- <span>We are trying to send you to Secure Reader. If this does not work, please click the button below</span>
51
- <br />
52
- <button
53
- id="viewbutton"
54
- style="color: #fff!important; background: gray; padding: 10px 40px; border-radius: 25px; display: inline-block; border: none; font-size: 15px; width: 300px; margin-block-start: 1.1em;
55
- margin-block-end: 1.1em;"
56
- class="viewbutton"
57
- type="button"
58
- >
59
- View File in Secure Reader
60
- </button>
61
- </div>
62
- </div>
63
- </div>
64
- <div role="contentinfo" style="color: grey; text-align: center; padding-top: 25px; font-family: Arial;">
65
- <span style="padding: 25px; font-size: 13px;">© Copyright 2019 Virtru Corporation</span>
66
- <span style="padding: 25px; font-size: 13px;">Learn more at www.virtru.com</span>
67
- </div>
68
- <script type="text/javascript">
69
- var transferComplete = false;
70
- var data = document.getElementById('data-input').value;
71
- var manifest = JSON.parse(atob(document.getElementById('data-manifest').value));
72
- var redirectButton = document.getElementById('viewbutton');
73
- var ifr = document.querySelector('iframe');
74
- var otherWindow = ifr.contentWindow;
75
-
76
- document.getElementById('js-enabled-message').style.display = 'block';
77
- ifr.addEventListener("load", iframeLoaded, false);
78
-
79
- function iframeLoaded() {
80
- var channel = new MessageChannel();
81
- otherWindow.postMessage({
82
- type: 'tdf.html',
83
- data: data,
84
- policy: manifest.encryptionInformation.policy
85
- }, '${escJavaScript(transferBaseUrl)}', [channel.port2]);
86
-
87
- channel.port1.onmessage = handleMessage;
88
-
89
- function handleMessage(e) {
90
- let msg = e.data;
91
- if (msg.status === 'success') {
92
- transferComplete = true;
93
- redirectButton.style.background = '#4585ff';
94
- window.location.href = "${escJavaScript(transferUrl)}";
95
- }
96
- }
97
- }
98
- redirectButton.onclick = function(){
99
- if (transferComplete) {
100
- window.location.href = "${escJavaScript(transferUrl)}";
101
- }
102
- };
103
- </script>
104
- </body>
105
- </html>`;
@@ -1,10 +0,0 @@
1
- /** Javascript escape attribute strings. How is this not part of the lib?.
2
- * https://stackoverflow.com/a/30970751
3
- */
4
- export function escHtml(plainString = '') {
5
- return plainString.replace(/["'&<]/g, (c) => `&#${c.charCodeAt(0)};`);
6
- }
7
-
8
- export function escJavaScript(plainString = '') {
9
- return plainString.replace(/["'\\<]/g, (c) => `\\${c === '<' ? '074' : c}`);
10
- }
@@ -1,2 +0,0 @@
1
- export { escHtml, escJavaScript } from './escaper.js';
2
- export { default as htmlWrapperTemplate } from './default.html.js';
@@ -1,118 +0,0 @@
1
- import axios, { AxiosInstance, AxiosResponse } from 'axios';
2
- import {
3
- type DecoratedReadableStream,
4
- isDecoratedReadableStream,
5
- } from '../client/DecoratedReadableStream.js';
6
- import axiosRetry from 'axios-retry';
7
- import { ConfigurationError, NetworkError } from '../../../src/errors.js';
8
-
9
- let axiosRemoteChunk: AxiosInstance | null = null;
10
-
11
- /**
12
- * Read data from a seekable stream.
13
- * @param byteStart First byte to read. If negative, reads from the end. If absent, reads everything
14
- * @param byteEnd Index after last byte to read (exclusive)
15
- */
16
- export type Chunker = (byteStart?: number, byteEnd?: number) => Promise<Uint8Array>;
17
-
18
- export const fromBrowserFile = (fileRef: Blob): Chunker => {
19
- return async (byteStart?: number, byteEnd?: number): Promise<Uint8Array> => {
20
- const chunkBlob = fileRef.slice(byteStart, byteEnd);
21
- const arrayBuffer = await new Response(chunkBlob).arrayBuffer();
22
- return new Uint8Array(arrayBuffer);
23
- };
24
- };
25
-
26
- export const fromBuffer = (source: Uint8Array | Buffer): Chunker => {
27
- return (byteStart?: number, byteEnd?: number) => {
28
- return Promise.resolve(source.slice(byteStart, byteEnd));
29
- };
30
- };
31
-
32
- async function getRemoteChunk(url: string, range?: string): Promise<Uint8Array> {
33
- if (!axiosRemoteChunk) {
34
- axiosRemoteChunk = axios.create();
35
- // @ts-ignore: axiosRetry not typed
36
- axiosRetry(axiosRemoteChunk, {
37
- retries: 3,
38
- retryDelay: axiosRetry.exponentialDelay,
39
- retryCondition: () => true,
40
- }); // Retries all idempotent requests (GET, HEAD, OPTIONS, PUT, DELETE)
41
- }
42
- try {
43
- const res: AxiosResponse<ArrayBuffer> = await axiosRemoteChunk.get(url, {
44
- ...(range && {
45
- headers: {
46
- Range: `bytes=${range}`,
47
- },
48
- }),
49
- responseType: 'arraybuffer',
50
- });
51
- if (!res.data) {
52
- throw new NetworkError(
53
- 'Unexpected response type: Server should have responded with an ArrayBuffer.'
54
- );
55
- }
56
- return new Uint8Array(res.data);
57
- } catch (e) {
58
- if (e && e.response && e.response.status === 416) {
59
- console.log('Warning: Range not satisfiable');
60
- }
61
- throw e;
62
- }
63
- }
64
-
65
- export const fromUrl = async (location: string): Promise<Chunker> => {
66
- return async (byteStart?: number, byteEnd?: number): Promise<Uint8Array> => {
67
- if (byteStart === undefined) {
68
- return getRemoteChunk(location);
69
- }
70
- let rangeHeader = `${byteStart}`;
71
- if (byteEnd && byteEnd < 0) {
72
- // NOTE: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Range
73
- throw Error('negative end unsupported');
74
- } else if (byteEnd) {
75
- rangeHeader += `-${byteEnd - 1}`;
76
- }
77
- return await getRemoteChunk(location, rangeHeader);
78
- };
79
- };
80
-
81
- export type DataSource =
82
- | { type: 'buffer'; location: Uint8Array }
83
- | { type: 'chunker'; location: Chunker }
84
- | { type: 'file-browser'; location: Blob }
85
- | { type: 'remote'; location: string }
86
- | { type: 'stream'; location: DecoratedReadableStream };
87
-
88
- export const fromDataSource = async ({ type, location }: DataSource) => {
89
- switch (type) {
90
- case 'buffer':
91
- if (!(location instanceof Uint8Array)) {
92
- throw new ConfigurationError('Invalid data source; must be uint8 array');
93
- }
94
- return fromBuffer(location);
95
- case 'chunker':
96
- if (!(location instanceof Function)) {
97
- throw new ConfigurationError('Invalid data source; must be uint8 array');
98
- }
99
- return location;
100
- case 'file-browser':
101
- if (!(location instanceof Blob)) {
102
- throw new ConfigurationError('Invalid data source; must be at least a Blob');
103
- }
104
- return fromBrowserFile(location);
105
- case 'remote':
106
- if (typeof location !== 'string') {
107
- throw new ConfigurationError('Invalid data source; url not provided');
108
- }
109
- return fromUrl(location);
110
- case 'stream':
111
- if (!isDecoratedReadableStream(location)) {
112
- throw new ConfigurationError('Invalid data source; must be DecoratedTdfStream');
113
- }
114
- return fromBuffer(await location.toBuffer());
115
- default:
116
- throw new ConfigurationError(`Data source type not defined, or not supported: ${type}}`);
117
- }
118
- };
@@ -1,2 +0,0 @@
1
- export const version = '0.1.0';
2
- export const clientType = 'tdf3-js-client';