@sudoplatform/sudo-common 7.0.2 → 8.0.0

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 (404) hide show
  1. package/cjs/configurationManager/defaultConfigurationManager.d.ts +123 -0
  2. package/cjs/configurationManager/defaultConfigurationManager.js +122 -0
  3. package/cjs/configurationManager/defaultConfigurationManager.js.map +1 -0
  4. package/cjs/errors/error.d.ts +263 -0
  5. package/cjs/errors/error.js +442 -0
  6. package/cjs/errors/error.js.map +1 -0
  7. package/cjs/index.d.ts +9 -0
  8. package/cjs/index.js +13 -0
  9. package/cjs/index.js.map +1 -0
  10. package/cjs/logging/bunyanLogger.d.ts +8 -0
  11. package/cjs/logging/bunyanLogger.js +36 -0
  12. package/cjs/logging/bunyanLogger.js.map +1 -0
  13. package/cjs/logging/logger.d.ts +87 -0
  14. package/cjs/logging/logger.js +77 -0
  15. package/cjs/logging/logger.js.map +1 -0
  16. package/cjs/sudoKeyArchive/index.d.ts +4 -0
  17. package/cjs/sudoKeyArchive/index.js +8 -0
  18. package/cjs/sudoKeyArchive/index.js.map +1 -0
  19. package/cjs/sudoKeyArchive/keyArchive.d.ts +137 -0
  20. package/cjs/sudoKeyArchive/keyArchive.js +84 -0
  21. package/cjs/sudoKeyArchive/keyArchive.js.map +1 -0
  22. package/cjs/sudoKeyArchive/keyInfo.d.ts +41 -0
  23. package/cjs/sudoKeyArchive/keyInfo.js +17 -0
  24. package/cjs/sudoKeyArchive/keyInfo.js.map +1 -0
  25. package/cjs/sudoKeyArchive/keyType.d.ts +13 -0
  26. package/cjs/sudoKeyArchive/keyType.js +39 -0
  27. package/cjs/sudoKeyArchive/keyType.js.map +1 -0
  28. package/cjs/sudoKeyArchive/sudoKeyArchive.d.ts +190 -0
  29. package/cjs/sudoKeyArchive/sudoKeyArchive.js +373 -0
  30. package/cjs/sudoKeyArchive/sudoKeyArchive.js.map +1 -0
  31. package/cjs/sudoKeyManager/index.d.ts +4 -0
  32. package/cjs/sudoKeyManager/index.js +8 -0
  33. package/cjs/sudoKeyManager/index.js.map +1 -0
  34. package/cjs/sudoKeyManager/keyData.d.ts +56 -0
  35. package/cjs/sudoKeyManager/keyData.js +46 -0
  36. package/cjs/sudoKeyManager/keyData.js.map +1 -0
  37. package/cjs/sudoKeyManager/publicKey.d.ts +8 -0
  38. package/cjs/sudoKeyManager/publicKey.js +9 -0
  39. package/cjs/sudoKeyManager/publicKey.js.map +1 -0
  40. package/cjs/sudoKeyManager/sudoCryptoProvider.d.ts +324 -0
  41. package/cjs/sudoKeyManager/sudoCryptoProvider.js +12 -0
  42. package/cjs/sudoKeyManager/sudoCryptoProvider.js.map +1 -0
  43. package/cjs/sudoKeyManager/sudoKeyManager.d.ts +344 -0
  44. package/cjs/sudoKeyManager/sudoKeyManager.js +140 -0
  45. package/cjs/sudoKeyManager/sudoKeyManager.js.map +1 -0
  46. package/cjs/types/types.d.ts +115 -0
  47. package/cjs/types/types.js +45 -0
  48. package/cjs/types/types.js.map +1 -0
  49. package/cjs/utils/base64.d.ts +44 -0
  50. package/cjs/utils/base64.js +71 -0
  51. package/cjs/utils/base64.js.map +1 -0
  52. package/cjs/utils/buffer.d.ts +13 -0
  53. package/cjs/utils/buffer.js +37 -0
  54. package/cjs/utils/buffer.js.map +1 -0
  55. package/cjs/utils/stream.d.ts +6 -0
  56. package/cjs/utils/stream.js +70 -0
  57. package/cjs/utils/stream.js.map +1 -0
  58. package/lib/configurationManager/defaultConfigurationManager.js +106 -158
  59. package/lib/configurationManager/defaultConfigurationManager.js.map +1 -0
  60. package/lib/errors/error.js +226 -438
  61. package/lib/errors/error.js.map +1 -0
  62. package/lib/index.d.ts +1 -0
  63. package/lib/index.js +10 -109
  64. package/lib/index.js.map +1 -0
  65. package/lib/logging/bunyanLogger.js +29 -41
  66. package/lib/logging/bunyanLogger.js.map +1 -0
  67. package/lib/logging/logger.js +66 -92
  68. package/lib/logging/logger.js.map +1 -0
  69. package/lib/sudoKeyArchive/index.js +5 -57
  70. package/lib/sudoKeyArchive/index.js.map +1 -0
  71. package/lib/sudoKeyArchive/keyArchive.d.ts +8 -8
  72. package/lib/sudoKeyArchive/keyArchive.js +69 -96
  73. package/lib/sudoKeyArchive/keyArchive.js.map +1 -0
  74. package/lib/sudoKeyArchive/keyInfo.js +11 -49
  75. package/lib/sudoKeyArchive/keyInfo.js.map +1 -0
  76. package/lib/sudoKeyArchive/keyType.js +27 -37
  77. package/lib/sudoKeyArchive/keyType.js.map +1 -0
  78. package/lib/sudoKeyArchive/sudoKeyArchive.js +351 -444
  79. package/lib/sudoKeyArchive/sudoKeyArchive.js.map +1 -0
  80. package/lib/sudoKeyManager/index.js +5 -57
  81. package/lib/sudoKeyManager/index.js.map +1 -0
  82. package/lib/sudoKeyManager/keyData.js +38 -33
  83. package/lib/sudoKeyManager/keyData.js.map +1 -0
  84. package/lib/sudoKeyManager/publicKey.js +5 -12
  85. package/lib/sudoKeyManager/publicKey.js.map +1 -0
  86. package/lib/sudoKeyManager/sudoCryptoProvider.js +8 -26
  87. package/lib/sudoKeyManager/sudoCryptoProvider.js.map +1 -0
  88. package/lib/sudoKeyManager/sudoKeyManager.js +135 -173
  89. package/lib/sudoKeyManager/sudoKeyManager.js.map +1 -0
  90. package/lib/types/types.js +27 -33
  91. package/lib/types/types.js.map +1 -0
  92. package/lib/utils/base64.d.ts +35 -0
  93. package/lib/utils/base64.js +63 -28
  94. package/lib/utils/base64.js.map +1 -0
  95. package/lib/utils/buffer.js +28 -46
  96. package/lib/utils/buffer.js.map +1 -0
  97. package/lib/utils/stream.d.ts +6 -0
  98. package/lib/utils/stream.js +63 -0
  99. package/lib/utils/stream.js.map +1 -0
  100. package/package.json +36 -29
  101. package/.babelrc +0 -10
  102. package/.eslintrc.js +0 -91
  103. package/.gitignore +0 -14
  104. package/.gitlab-ci.yml +0 -101
  105. package/.npmignore +0 -1
  106. package/.prettierignore +0 -3
  107. package/.prettierrc.js +0 -7
  108. package/.publisher.json +0 -7
  109. package/.vscode/settings.json +0 -5
  110. package/.yarn/releases/yarn-1.22.19.cjs +0 -147529
  111. package/.yarnrc +0 -5
  112. package/dependencies-report.json +0 -640
  113. package/docs/.nojekyll +0 -1
  114. package/docs/assets/highlight.css +0 -57
  115. package/docs/assets/main.js +0 -54
  116. package/docs/assets/search.js +0 -1
  117. package/docs/assets/style.css +0 -1224
  118. package/docs/assets/widgets.png +0 -0
  119. package/docs/assets/widgets@2x.png +0 -0
  120. package/docs/classes/AccountLockedError.html +0 -163
  121. package/docs/classes/AuthenticationError.html +0 -169
  122. package/docs/classes/Base64.html +0 -134
  123. package/docs/classes/Buffer.html +0 -158
  124. package/docs/classes/ConfigurationNotSetError.html +0 -164
  125. package/docs/classes/ConfigurationSetNotFoundError.html +0 -168
  126. package/docs/classes/DecodeError.html +0 -168
  127. package/docs/classes/DefaultConfigurationManager.html +0 -213
  128. package/docs/classes/DefaultLogger.html +0 -291
  129. package/docs/classes/DefaultSudoKeyArchive.html +0 -363
  130. package/docs/classes/DefaultSudoKeyManager.html +0 -814
  131. package/docs/classes/FatalError.html +0 -169
  132. package/docs/classes/IllegalArgumentError.html +0 -168
  133. package/docs/classes/IllegalStateError.html +0 -169
  134. package/docs/classes/InsufficientEntitlementsError.html +0 -164
  135. package/docs/classes/InvalidOwnershipProofError.html +0 -163
  136. package/docs/classes/InvalidTokenError.html +0 -163
  137. package/docs/classes/KeyArchiveDecodingError.html +0 -168
  138. package/docs/classes/KeyArchiveIncorrectPasswordError.html +0 -168
  139. package/docs/classes/KeyArchiveMissingError.html +0 -168
  140. package/docs/classes/KeyArchiveNoPasswordRequiredError.html +0 -168
  141. package/docs/classes/KeyArchivePasswordRequiredError.html +0 -168
  142. package/docs/classes/KeyArchiveTypeError.html +0 -168
  143. package/docs/classes/KeyArchiveUnknownKeyTypeError.html +0 -168
  144. package/docs/classes/KeyArchiveVersionError.html +0 -168
  145. package/docs/classes/KeyNotFoundError.html +0 -168
  146. package/docs/classes/KeyStoreNotExportableError.html +0 -168
  147. package/docs/classes/LimitExceededError.html +0 -164
  148. package/docs/classes/NoEntitlementsError.html +0 -163
  149. package/docs/classes/NotAuthorizedError.html +0 -169
  150. package/docs/classes/NotRegisteredError.html +0 -168
  151. package/docs/classes/NotSignedInError.html +0 -164
  152. package/docs/classes/OperationNotImplementedError.html +0 -168
  153. package/docs/classes/RegisterError.html +0 -169
  154. package/docs/classes/RequestFailedError.html +0 -189
  155. package/docs/classes/ServiceError.html +0 -170
  156. package/docs/classes/SignOutError.html +0 -168
  157. package/docs/classes/SudoCryptoProviderDefaults.html +0 -106
  158. package/docs/classes/UnknownGraphQLError.html +0 -169
  159. package/docs/classes/UnrecognizedAlgorithmError.html +0 -168
  160. package/docs/classes/UserNotConfirmedError.html +0 -164
  161. package/docs/classes/VersionMismatchError.html +0 -166
  162. package/docs/enums/CachePolicy.html +0 -72
  163. package/docs/enums/EncryptionAlgorithm.html +0 -80
  164. package/docs/enums/KeyArchiveKeyType.html +0 -86
  165. package/docs/enums/KeyDataKeyFormat.html +0 -92
  166. package/docs/enums/KeyDataKeyType.html +0 -85
  167. package/docs/enums/ListOperationResultStatus.html +0 -85
  168. package/docs/enums/PublicKeyFormat.html +0 -68
  169. package/docs/functions/isAppSyncNetworkError.html +0 -147
  170. package/docs/functions/isInsecureKeyArchive.html +0 -147
  171. package/docs/functions/isSecureKeyArchive.html +0 -147
  172. package/docs/functions/isUnrecognizedKeyArchive.html +0 -147
  173. package/docs/functions/keyArchiveInfoFromKeyData.html +0 -147
  174. package/docs/functions/keyArchiveKeyTypeFromKeyDataKeyType.html +0 -147
  175. package/docs/functions/mapGraphQLToClientError.html +0 -154
  176. package/docs/functions/mapNetworkErrorToClientError.html +0 -154
  177. package/docs/index.html +0 -146
  178. package/docs/interfaces/AsymmetricEncryptionOptions.html +0 -68
  179. package/docs/interfaces/BooleanFilter.html +0 -75
  180. package/docs/interfaces/ConfigurationManager.html +0 -200
  181. package/docs/interfaces/KeyData.html +0 -106
  182. package/docs/interfaces/ListOperationFailureResult.html +0 -76
  183. package/docs/interfaces/ListOperationPartialResult.html +0 -102
  184. package/docs/interfaces/ListOperationSuccessResult.html +0 -90
  185. package/docs/interfaces/ListOutput.html +0 -80
  186. package/docs/interfaces/Logger.html +0 -251
  187. package/docs/interfaces/Owner.html +0 -72
  188. package/docs/interfaces/PublicKey.html +0 -72
  189. package/docs/interfaces/ServiceCompatibilityInfo.html +0 -110
  190. package/docs/interfaces/StringFilter.html +0 -82
  191. package/docs/interfaces/SudoCryptoProvider.html +0 -865
  192. package/docs/interfaces/SudoKeyArchive.html +0 -257
  193. package/docs/interfaces/SudoKeyManager.html +0 -848
  194. package/docs/interfaces/SymmetricEncryptionOptions.html +0 -75
  195. package/docs/interfaces/ValidationResult.html +0 -83
  196. package/docs/modules.html +0 -248
  197. package/docs/types/AppSyncError.html +0 -138
  198. package/docs/types/AppSyncNetworkError.html +0 -138
  199. package/docs/types/InsecureKeyArchive.html +0 -138
  200. package/docs/types/KeyArchive.html +0 -138
  201. package/docs/types/KeyArchiveKeyInfo.html +0 -154
  202. package/docs/types/KeyArchiveKeyInfoDecoded.html +0 -138
  203. package/docs/types/ListOperationResult.html +0 -148
  204. package/docs/types/SecureKeyArchive.html +0 -138
  205. package/docs/types/Subset.html +0 -144
  206. package/docs/types/UnrecognizedKeyArchive.html +0 -138
  207. package/docs/variables/CURRENT_ARCHIVE_VERSION.html +0 -138
  208. package/docs/variables/InsecureKeyArchiveCodec.html +0 -138
  209. package/docs/variables/InsecureKeyArchiveType.html +0 -138
  210. package/docs/variables/KeyArchiveCodec.html +0 -138
  211. package/docs/variables/KeyArchiveKeyInfoArrayCodec.html +0 -138
  212. package/docs/variables/KeyArchiveKeyInfoCodec.html +0 -138
  213. package/docs/variables/KeyArchiveKeyTypeCodec.html +0 -138
  214. package/docs/variables/SecureKeyArchiveCodec.html +0 -138
  215. package/docs/variables/SecureKeyArchiveType.html +0 -138
  216. package/docs/variables/UnrecognizedKeyArchiveCodec.html +0 -138
  217. package/github/.babelrc +0 -10
  218. package/github/.eslintrc.js +0 -91
  219. package/github/.gitignore +0 -14
  220. package/github/.gitlab-ci.yml +0 -101
  221. package/github/.npmignore +0 -1
  222. package/github/.prettierignore +0 -3
  223. package/github/.prettierrc.js +0 -7
  224. package/github/.publisher.json +0 -7
  225. package/github/.vscode/settings.json +0 -5
  226. package/github/.yarn/releases/yarn-1.22.19.cjs +0 -147529
  227. package/github/.yarnrc +0 -5
  228. package/github/CHANGELOG.md +0 -51
  229. package/github/README.md +0 -8
  230. package/github/bin/outdated-with-suppression.sh +0 -203
  231. package/github/bin/suppress-audit.sh +0 -15
  232. package/github/bin/suppress-outdated.sh +0 -60
  233. package/github/bin/yarn-audit-with-suppression.sh +0 -19
  234. package/github/docs/.nojekyll +0 -1
  235. package/github/docs/assets/highlight.css +0 -57
  236. package/github/docs/assets/main.js +0 -54
  237. package/github/docs/assets/search.js +0 -1
  238. package/github/docs/assets/style.css +0 -1224
  239. package/github/docs/assets/widgets.png +0 -0
  240. package/github/docs/assets/widgets@2x.png +0 -0
  241. package/github/docs/classes/AccountLockedError.html +0 -163
  242. package/github/docs/classes/AuthenticationError.html +0 -169
  243. package/github/docs/classes/Base64.html +0 -134
  244. package/github/docs/classes/Buffer.html +0 -158
  245. package/github/docs/classes/ConfigurationNotSetError.html +0 -164
  246. package/github/docs/classes/ConfigurationSetNotFoundError.html +0 -168
  247. package/github/docs/classes/DecodeError.html +0 -168
  248. package/github/docs/classes/DefaultConfigurationManager.html +0 -213
  249. package/github/docs/classes/DefaultLogger.html +0 -291
  250. package/github/docs/classes/DefaultSudoKeyArchive.html +0 -363
  251. package/github/docs/classes/DefaultSudoKeyManager.html +0 -814
  252. package/github/docs/classes/FatalError.html +0 -169
  253. package/github/docs/classes/IllegalArgumentError.html +0 -168
  254. package/github/docs/classes/IllegalStateError.html +0 -169
  255. package/github/docs/classes/InsufficientEntitlementsError.html +0 -164
  256. package/github/docs/classes/InvalidOwnershipProofError.html +0 -163
  257. package/github/docs/classes/InvalidTokenError.html +0 -163
  258. package/github/docs/classes/KeyArchiveDecodingError.html +0 -168
  259. package/github/docs/classes/KeyArchiveIncorrectPasswordError.html +0 -168
  260. package/github/docs/classes/KeyArchiveMissingError.html +0 -168
  261. package/github/docs/classes/KeyArchiveNoPasswordRequiredError.html +0 -168
  262. package/github/docs/classes/KeyArchivePasswordRequiredError.html +0 -168
  263. package/github/docs/classes/KeyArchiveTypeError.html +0 -168
  264. package/github/docs/classes/KeyArchiveUnknownKeyTypeError.html +0 -168
  265. package/github/docs/classes/KeyArchiveVersionError.html +0 -168
  266. package/github/docs/classes/KeyNotFoundError.html +0 -168
  267. package/github/docs/classes/KeyStoreNotExportableError.html +0 -168
  268. package/github/docs/classes/LimitExceededError.html +0 -164
  269. package/github/docs/classes/NoEntitlementsError.html +0 -163
  270. package/github/docs/classes/NotAuthorizedError.html +0 -169
  271. package/github/docs/classes/NotRegisteredError.html +0 -168
  272. package/github/docs/classes/NotSignedInError.html +0 -164
  273. package/github/docs/classes/OperationNotImplementedError.html +0 -168
  274. package/github/docs/classes/RegisterError.html +0 -169
  275. package/github/docs/classes/RequestFailedError.html +0 -189
  276. package/github/docs/classes/ServiceError.html +0 -170
  277. package/github/docs/classes/SignOutError.html +0 -168
  278. package/github/docs/classes/SudoCryptoProviderDefaults.html +0 -106
  279. package/github/docs/classes/UnknownGraphQLError.html +0 -169
  280. package/github/docs/classes/UnrecognizedAlgorithmError.html +0 -168
  281. package/github/docs/classes/UserNotConfirmedError.html +0 -164
  282. package/github/docs/classes/VersionMismatchError.html +0 -166
  283. package/github/docs/enums/CachePolicy.html +0 -72
  284. package/github/docs/enums/EncryptionAlgorithm.html +0 -80
  285. package/github/docs/enums/KeyArchiveKeyType.html +0 -86
  286. package/github/docs/enums/KeyDataKeyFormat.html +0 -92
  287. package/github/docs/enums/KeyDataKeyType.html +0 -85
  288. package/github/docs/enums/ListOperationResultStatus.html +0 -85
  289. package/github/docs/enums/PublicKeyFormat.html +0 -68
  290. package/github/docs/functions/isAppSyncNetworkError.html +0 -147
  291. package/github/docs/functions/isInsecureKeyArchive.html +0 -147
  292. package/github/docs/functions/isSecureKeyArchive.html +0 -147
  293. package/github/docs/functions/isUnrecognizedKeyArchive.html +0 -147
  294. package/github/docs/functions/keyArchiveInfoFromKeyData.html +0 -147
  295. package/github/docs/functions/keyArchiveKeyTypeFromKeyDataKeyType.html +0 -147
  296. package/github/docs/functions/mapGraphQLToClientError.html +0 -154
  297. package/github/docs/functions/mapNetworkErrorToClientError.html +0 -154
  298. package/github/docs/index.html +0 -146
  299. package/github/docs/interfaces/AsymmetricEncryptionOptions.html +0 -68
  300. package/github/docs/interfaces/BooleanFilter.html +0 -75
  301. package/github/docs/interfaces/ConfigurationManager.html +0 -200
  302. package/github/docs/interfaces/KeyData.html +0 -106
  303. package/github/docs/interfaces/ListOperationFailureResult.html +0 -76
  304. package/github/docs/interfaces/ListOperationPartialResult.html +0 -102
  305. package/github/docs/interfaces/ListOperationSuccessResult.html +0 -90
  306. package/github/docs/interfaces/ListOutput.html +0 -80
  307. package/github/docs/interfaces/Logger.html +0 -251
  308. package/github/docs/interfaces/Owner.html +0 -72
  309. package/github/docs/interfaces/PublicKey.html +0 -72
  310. package/github/docs/interfaces/ServiceCompatibilityInfo.html +0 -110
  311. package/github/docs/interfaces/StringFilter.html +0 -82
  312. package/github/docs/interfaces/SudoCryptoProvider.html +0 -865
  313. package/github/docs/interfaces/SudoKeyArchive.html +0 -257
  314. package/github/docs/interfaces/SudoKeyManager.html +0 -848
  315. package/github/docs/interfaces/SymmetricEncryptionOptions.html +0 -75
  316. package/github/docs/interfaces/ValidationResult.html +0 -83
  317. package/github/docs/modules.html +0 -248
  318. package/github/docs/types/AppSyncError.html +0 -138
  319. package/github/docs/types/AppSyncNetworkError.html +0 -138
  320. package/github/docs/types/InsecureKeyArchive.html +0 -138
  321. package/github/docs/types/KeyArchive.html +0 -138
  322. package/github/docs/types/KeyArchiveKeyInfo.html +0 -154
  323. package/github/docs/types/KeyArchiveKeyInfoDecoded.html +0 -138
  324. package/github/docs/types/ListOperationResult.html +0 -148
  325. package/github/docs/types/SecureKeyArchive.html +0 -138
  326. package/github/docs/types/Subset.html +0 -144
  327. package/github/docs/types/UnrecognizedKeyArchive.html +0 -138
  328. package/github/docs/variables/CURRENT_ARCHIVE_VERSION.html +0 -138
  329. package/github/docs/variables/InsecureKeyArchiveCodec.html +0 -138
  330. package/github/docs/variables/InsecureKeyArchiveType.html +0 -138
  331. package/github/docs/variables/KeyArchiveCodec.html +0 -138
  332. package/github/docs/variables/KeyArchiveKeyInfoArrayCodec.html +0 -138
  333. package/github/docs/variables/KeyArchiveKeyInfoCodec.html +0 -138
  334. package/github/docs/variables/KeyArchiveKeyTypeCodec.html +0 -138
  335. package/github/docs/variables/SecureKeyArchiveCodec.html +0 -138
  336. package/github/docs/variables/SecureKeyArchiveType.html +0 -138
  337. package/github/docs/variables/UnrecognizedKeyArchiveCodec.html +0 -138
  338. package/github/jest.config.json +0 -14
  339. package/github/package.json +0 -91
  340. package/github/src/configurationManager/defaultConfigurationManager.ts +0 -281
  341. package/github/src/errors/error.ts +0 -469
  342. package/github/src/index.ts +0 -8
  343. package/github/src/logging/bunyanLogger.ts +0 -47
  344. package/github/src/logging/logger.ts +0 -164
  345. package/github/src/sudoKeyArchive/index.ts +0 -4
  346. package/github/src/sudoKeyArchive/keyArchive.ts +0 -120
  347. package/github/src/sudoKeyArchive/keyInfo.ts +0 -47
  348. package/github/src/sudoKeyArchive/keyType.ts +0 -50
  349. package/github/src/sudoKeyArchive/sudoKeyArchive.ts +0 -591
  350. package/github/src/sudoKeyManager/index.ts +0 -4
  351. package/github/src/sudoKeyManager/keyData.ts +0 -60
  352. package/github/src/sudoKeyManager/publicKey.ts +0 -9
  353. package/github/src/sudoKeyManager/sudoCryptoProvider.ts +0 -416
  354. package/github/src/sudoKeyManager/sudoKeyManager.ts +0 -609
  355. package/github/src/types/types.ts +0 -129
  356. package/github/src/utils/base64.ts +0 -21
  357. package/github/src/utils/buffer.ts +0 -39
  358. package/github/test/integration/defaultConfigurationManager.spec.ts +0 -85
  359. package/github/test/matchers.ts +0 -122
  360. package/github/test/unit/configurationManager/defaultConfigurationManager.spec.ts +0 -506
  361. package/github/test/unit/errors/error.spec.ts +0 -115
  362. package/github/test/unit/keyType.spec.ts +0 -54
  363. package/github/test/unit/logging/logger.spec.ts +0 -182
  364. package/github/test/unit/sudoKeyArchive.spec.ts +0 -1609
  365. package/github/test/unit/sudoKeyManager.spec.ts +0 -1045
  366. package/github/test/unit/utils/base64.spec.ts +0 -30
  367. package/github/test/unit/utils/buffer.spec.ts +0 -45
  368. package/github/test/unit/utils/listOperationResult.spec.ts +0 -84
  369. package/github/tsconfig.json +0 -20
  370. package/github/tsconfig.test.json +0 -7
  371. package/github/yarn.lock +0 -5922
  372. package/jest.config.json +0 -14
  373. package/src/configurationManager/defaultConfigurationManager.ts +0 -281
  374. package/src/errors/error.ts +0 -469
  375. package/src/index.ts +0 -8
  376. package/src/logging/bunyanLogger.ts +0 -47
  377. package/src/logging/logger.ts +0 -164
  378. package/src/sudoKeyArchive/index.ts +0 -4
  379. package/src/sudoKeyArchive/keyArchive.ts +0 -120
  380. package/src/sudoKeyArchive/keyInfo.ts +0 -47
  381. package/src/sudoKeyArchive/keyType.ts +0 -50
  382. package/src/sudoKeyArchive/sudoKeyArchive.ts +0 -591
  383. package/src/sudoKeyManager/index.ts +0 -4
  384. package/src/sudoKeyManager/keyData.ts +0 -60
  385. package/src/sudoKeyManager/publicKey.ts +0 -9
  386. package/src/sudoKeyManager/sudoCryptoProvider.ts +0 -416
  387. package/src/sudoKeyManager/sudoKeyManager.ts +0 -609
  388. package/src/types/types.ts +0 -129
  389. package/src/utils/base64.ts +0 -21
  390. package/src/utils/buffer.ts +0 -39
  391. package/test/integration/defaultConfigurationManager.spec.ts +0 -85
  392. package/test/matchers.ts +0 -122
  393. package/test/unit/configurationManager/defaultConfigurationManager.spec.ts +0 -506
  394. package/test/unit/errors/error.spec.ts +0 -115
  395. package/test/unit/keyType.spec.ts +0 -54
  396. package/test/unit/logging/logger.spec.ts +0 -182
  397. package/test/unit/sudoKeyArchive.spec.ts +0 -1609
  398. package/test/unit/sudoKeyManager.spec.ts +0 -1045
  399. package/test/unit/utils/base64.spec.ts +0 -30
  400. package/test/unit/utils/buffer.spec.ts +0 -45
  401. package/test/unit/utils/listOperationResult.spec.ts +0 -84
  402. package/tsconfig.json +0 -20
  403. package/tsconfig.test.json +0 -7
  404. package/yarn.lock +0 -5922
package/jest.config.json DELETED
@@ -1,14 +0,0 @@
1
- {
2
- "testEnvironment": "jsdom",
3
- "testMatch": ["<rootDir>/test/**/*.spec.ts"],
4
- "testPathIgnorePatterns": ["/node_modules/", "/lib/"],
5
- "clearMocks": true,
6
- "collectCoverageFrom": ["src/**/*.ts", "!**/*.d.ts", "!node_modules/**"],
7
- "coverageReporters": ["text", "json-summary"],
8
- "coverageDirectory": "<rootDir>/build/coverage",
9
- "globals": {
10
- "ts-jest": {
11
- "tsConfig": "tsconfig.test.json"
12
- }
13
- }
14
- }
@@ -1,281 +0,0 @@
1
- /* eslint-disable @typescript-eslint/no-explicit-any */
2
- /* eslint-disable @typescript-eslint/no-unsafe-return */
3
- /* eslint-disable @typescript-eslint/no-unsafe-call */
4
- /* eslint-disable @typescript-eslint/no-unsafe-member-access */
5
- /* eslint-disable @typescript-eslint/no-unsafe-assignment */
6
- import { fold, left } from 'fp-ts/lib/Either'
7
- import { pipe } from 'fp-ts/lib/pipeable'
8
- import * as t from 'io-ts'
9
- import * as AWS from 'aws-sdk'
10
- import { PathReporter } from 'io-ts/lib/PathReporter'
11
- import {
12
- ConfigurationNotSetError,
13
- DecodeError,
14
- ConfigurationSetNotFoundError,
15
- } from '../errors/error'
16
-
17
- /**
18
- * Service compatibility information.
19
- */
20
- export interface ServiceCompatibilityInfo {
21
- /**
22
- * The name of the service associated with the compatibility info. This matches one of the
23
- * service name present in sudoplatformconfig.json.
24
- */
25
- name: string
26
- /**
27
- * The version of the service config present in sudoplatformconfig.json. It defaults
28
- * to 1 if not present.
29
- */
30
- configVersion: number
31
- /**
32
- * The minimum supported service config version currently supported by the backend.
33
- */
34
- minSupportedVersion?: number
35
- /**
36
- * Any service config version less than or equal to this version is considered deprecated
37
- * and the backend may remove the support for those versions after a grace period.
38
- */
39
- deprecatedVersion?: number
40
- /**
41
- * After this time any deprecated service config versions will no longer be compatible
42
- * with the backend. It is recommended to warn the user prior to the deprecation grace.
43
- */
44
- deprecationGrace?: Date
45
- }
46
-
47
- /**
48
- * Result returned by `validateConfig` API if an incompatible client config is found when compared
49
- * to the deployed backend services.
50
- */
51
- export interface ValidationResult {
52
- /**
53
- * The list of incompatible services. The client must be upgraded to the latest
54
- * version in order to use these services.
55
- */
56
- incompatible: ServiceCompatibilityInfo[]
57
- /**
58
- * The list of services that will be made incompatible with the current version of the
59
- * client. The users should be warned that after the specified grace period these services will be
60
- * made incompatible.
61
- */
62
- deprecated: ServiceCompatibilityInfo[]
63
- }
64
-
65
- /**
66
- * Interface that encapsulates the APIs common to all configuration manager implementations.
67
- * A configuration manager should be a singleton that holds reference to a parsed config
68
- * and returns the configuration set specific to a given namespace.
69
- */
70
- export interface ConfigurationManager {
71
- /**
72
- * Set config that will be parsed as JSON
73
- *
74
- * @param config A string representation of configuration
75
- *
76
- * @returns ConfigurationManager
77
- */
78
- setConfig(config: string): ConfigurationManager
79
-
80
- /**
81
- * Get a subset of configuration by namespace
82
- *
83
- * @param namespace The key for the nested json object
84
- *
85
- * @returns Configuration set specific to a given namespace
86
- *
87
- * @throws {@link ConfigurationNotSetError}
88
- */
89
- getConfigSet(namespace?: string): string | undefined
90
-
91
- /**
92
- * Decode a configuration set to a given type
93
- *
94
- * @param configSet Configuration set specific to a given namespace
95
- * @param codec The codec to bind the configuration set to
96
- *
97
- * @returns Configuration as a given type
98
- *
99
- * @throws {@link DecodeError}
100
- */
101
- bind<T>(configSet: unknown, codec: t.Mixed): T
102
-
103
- /**
104
- * Get a configuration by namespace and decode and validate
105
- * that configuration set to a given type. If no namespace
106
- * provided, try and use the whole configuration object
107
- * to bind to the given type.
108
- *
109
- * @param namespace The key for the nested json object or undefined
110
- * @param codec The codec to bind the configuration set to
111
- *
112
- * @returns Configuration as a given type
113
- *
114
- * @throws {@link ConfigurationNotSetError}
115
- * @throws {@link ConfigurationSetNotFoundError}
116
- * @throws {@link DecodeError}
117
- */
118
- bindConfigSet<T>(codec: t.Mixed, namespace?: string): T
119
-
120
- /**
121
- * Validates the client configuration (sudoplatformconfig.json) against the currently deployed set of
122
- * backend services. If the client configuration is valid, i.e. the client is compatible will all deployed
123
- * backend services, then the call will complete with `success` result. If any part of the client
124
- * configuration is incompatible then a detailed information on the incompatible service will be
125
- * returned in `failure` result. See `SudoConfigManagerError.compatibilityIssueFound` for more details.
126
- *
127
- * @return validation result with the details of incompatible or deprecated service configurations.
128
- */
129
- validateConfig(): Promise<ValidationResult>
130
- }
131
-
132
- /**
133
- * Singleton to manage configuration
134
- */
135
- export class DefaultConfigurationManager implements ConfigurationManager {
136
- private static instance: DefaultConfigurationManager
137
-
138
- private _config: string | undefined
139
-
140
- private constructor() {
141
- // Do Nothing.
142
- }
143
-
144
- public static getInstance(): DefaultConfigurationManager {
145
- if (!DefaultConfigurationManager.instance) {
146
- DefaultConfigurationManager.instance = new DefaultConfigurationManager()
147
- }
148
-
149
- return DefaultConfigurationManager.instance
150
- }
151
-
152
- public setConfig(config: string): DefaultConfigurationManager {
153
- this._config = config
154
-
155
- return DefaultConfigurationManager.instance
156
- }
157
-
158
- public getConfigSet(namespace?: string): string {
159
- if (!this._config) {
160
- throw new ConfigurationNotSetError()
161
- }
162
-
163
- const parsed = JSON.parse(this._config)
164
- const configSet = namespace ? parsed[namespace] : parsed
165
-
166
- return configSet
167
- }
168
-
169
- public bind<T>(configSet: unknown, codec: t.Mixed): T {
170
- // Decode and validate config
171
- return pipe(
172
- codec.decode(configSet),
173
- fold(
174
- (errors: t.Errors): T => {
175
- throw new DecodeError(PathReporter.report(left(errors)).join('\n'))
176
- },
177
- (v: T): T => v,
178
- ),
179
- )
180
- }
181
-
182
- public bindConfigSet<T>(codec: t.Mixed, namespace?: string): T {
183
- const configSet = this.getConfigSet(namespace)
184
-
185
- if (!configSet) {
186
- throw new ConfigurationSetNotFoundError(namespace)
187
- }
188
-
189
- return this.bind<T>(configSet, codec)
190
- }
191
-
192
- public async validateConfig(): Promise<ValidationResult> {
193
- if (!this._config) {
194
- return { incompatible: [], deprecated: [] }
195
- }
196
-
197
- const config = JSON.parse(this._config)
198
-
199
- const region = config.identityService?.region
200
- const bucket = config.identityService?.serviceInfoBucket
201
-
202
- if (!(region && bucket)) {
203
- return { incompatible: [], deprecated: [] }
204
- }
205
-
206
- const s3Client = new AWS.S3({ region: region })
207
-
208
- const incompatible: ServiceCompatibilityInfo[] = []
209
- const deprecated: ServiceCompatibilityInfo[] = []
210
-
211
- const objects = await s3Client
212
- .makeUnauthenticatedRequest('listObjects', {
213
- Bucket: bucket,
214
- })
215
- .promise()
216
-
217
- if (!objects.Contents?.length) {
218
- return { incompatible: [], deprecated: [] }
219
- }
220
-
221
- const keys = objects.Contents.map((object: any) => object.Key)
222
-
223
- // Only fetch the service info docs for the services that are present in client config
224
- // to minimize the network calls.
225
- const keysToFetch = keys.filter(
226
- (key: string) =>
227
- key.endsWith('.json') && config[key.replace('.json', '')],
228
- )
229
-
230
- for (const key of keysToFetch) {
231
- const object = await s3Client
232
- .makeUnauthenticatedRequest('getObject', {
233
- Key: key,
234
- Bucket: bucket,
235
- })
236
- .promise()
237
-
238
- let body: string
239
-
240
- if (typeof object.Body === 'string') {
241
- body = object.Body
242
- } else if (ArrayBuffer.isView(object.Body)) {
243
- // eslint-disable-next-line @typescript-eslint/no-unsafe-argument
244
- body = new TextDecoder().decode(object.Body)
245
- } else {
246
- continue
247
- }
248
-
249
- const json = JSON.parse(body)
250
- const serviceName = key.replace('.json', '')
251
- const serviceInfo: any = json[serviceName]
252
- const serviceConfig: any = config[serviceName]
253
- if (serviceInfo && serviceConfig) {
254
- const currentVersion: number = serviceConfig.version ?? 1
255
- const deprecationGrace: number = serviceInfo.deprecationGrace ?? -1
256
- const compatibilityInfo: ServiceCompatibilityInfo = {
257
- name: serviceName,
258
- configVersion: currentVersion,
259
- minSupportedVersion: serviceInfo.minVersion,
260
- deprecatedVersion: serviceInfo.deprecated,
261
- deprecationGrace:
262
- deprecationGrace != -1 ? new Date(deprecationGrace) : undefined,
263
- }
264
-
265
- // If the service config in `sudoplatformconfig.json` is less than the
266
- // minimum supported version then the client is incompatible.
267
- if (currentVersion < (compatibilityInfo.minSupportedVersion ?? 0)) {
268
- incompatible.push(compatibilityInfo)
269
- }
270
-
271
- // If the service config is less than or equal to the deprecated version
272
- // then it will be made incompatible after the deprecation grace.
273
- if (currentVersion <= (compatibilityInfo.deprecatedVersion ?? 0)) {
274
- deprecated.push(compatibilityInfo)
275
- }
276
- }
277
- }
278
-
279
- return { incompatible, deprecated }
280
- }
281
- }