@cdklabs/cdk-ecs-codedeploy 0.0.445 → 0.0.446

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 (201) hide show
  1. package/.jsii +3 -3
  2. package/lib/api-canary/index.js +1 -1
  3. package/lib/ecs-appspec/index.js +1 -1
  4. package/lib/ecs-deployment/index.js +1 -1
  5. package/lib/ecs-patterns/application-load-balanced-codedeployed-fargate-service.js +1 -1
  6. package/node_modules/@aws-sdk/client-codedeploy/package.json +3 -3
  7. package/node_modules/@aws-sdk/core/package.json +2 -2
  8. package/node_modules/@aws-sdk/credential-provider-env/package.json +2 -2
  9. package/node_modules/@aws-sdk/credential-provider-http/package.json +2 -2
  10. package/node_modules/@aws-sdk/credential-provider-ini/package.json +9 -9
  11. package/node_modules/@aws-sdk/credential-provider-login/package.json +3 -3
  12. package/node_modules/@aws-sdk/credential-provider-node/package.json +7 -7
  13. package/node_modules/@aws-sdk/credential-provider-process/package.json +2 -2
  14. package/node_modules/@aws-sdk/credential-provider-sso/package.json +4 -4
  15. package/node_modules/@aws-sdk/credential-provider-web-identity/package.json +3 -3
  16. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/cognito-identity/index.js +1 -1
  17. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/signin/index.js +1 -1
  18. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso/index.js +1 -1
  19. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/index.js +1 -1
  20. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/index.js +1 -1
  21. package/node_modules/@aws-sdk/nested-clients/package.json +2 -2
  22. package/node_modules/@aws-sdk/token-providers/package.json +3 -3
  23. package/node_modules/@aws-sdk/xml-builder/dist-cjs/xml-parser.browser.js +1 -1
  24. package/node_modules/@aws-sdk/xml-builder/dist-cjs/xml-parser.js +233 -43
  25. package/node_modules/@aws-sdk/xml-builder/dist-es/xml-parser.browser.js +1 -1
  26. package/node_modules/@aws-sdk/xml-builder/dist-es/xml-parser.js +233 -43
  27. package/node_modules/@aws-sdk/xml-builder/dist-types/ts3.4/xml-parser.d.ts +1 -1
  28. package/node_modules/@aws-sdk/xml-builder/dist-types/xml-parser.d.ts +2 -1
  29. package/node_modules/@aws-sdk/xml-builder/package.json +4 -4
  30. package/node_modules/@smithy/core/dist-cjs/submodules/checksum/index.browser.js +355 -145
  31. package/node_modules/@smithy/core/dist-cjs/submodules/checksum/index.js +456 -142
  32. package/node_modules/@smithy/core/dist-cjs/submodules/checksum/index.native.js +355 -145
  33. package/node_modules/@smithy/core/dist-cjs/submodules/protocols/index.js +5 -2
  34. package/node_modules/@smithy/core/dist-cjs/submodules/serde/index.browser.js +30 -36
  35. package/node_modules/@smithy/core/dist-cjs/submodules/serde/index.js +54 -110
  36. package/node_modules/@smithy/core/dist-cjs/submodules/serde/index.native.js +30 -36
  37. package/node_modules/@smithy/core/dist-es/submodules/checksum/crc32/Crc32Js.js +27 -0
  38. package/node_modules/@smithy/core/dist-es/submodules/checksum/crc32/Crc32Node.js +21 -0
  39. package/node_modules/@smithy/core/dist-es/submodules/checksum/index.browser.js +7 -1
  40. package/node_modules/@smithy/core/dist-es/submodules/checksum/index.js +7 -1
  41. package/node_modules/@smithy/core/dist-es/submodules/checksum/index.native.js +7 -1
  42. package/node_modules/@smithy/core/dist-es/submodules/checksum/md5/Md5Js.js +92 -0
  43. package/node_modules/@smithy/core/dist-es/submodules/checksum/md5/Md5Node.js +29 -0
  44. package/node_modules/@smithy/core/dist-es/submodules/checksum/sha256/Sha256Js.js +179 -0
  45. package/node_modules/@smithy/core/dist-es/submodules/checksum/sha256/Sha256Node.js +59 -0
  46. package/node_modules/@smithy/core/dist-es/submodules/checksum/sha256/Sha256WebCrypto.js +71 -0
  47. package/node_modules/@smithy/core/dist-es/submodules/protocols/HttpProtocol.js +4 -1
  48. package/node_modules/@smithy/core/dist-es/submodules/serde/concatBytes.js +15 -0
  49. package/node_modules/@smithy/core/dist-es/submodules/serde/index.browser.js +2 -0
  50. package/node_modules/@smithy/core/dist-es/submodules/serde/index.js +2 -0
  51. package/node_modules/@smithy/core/dist-es/submodules/serde/index.native.js +2 -0
  52. package/node_modules/@smithy/core/dist-es/submodules/serde/util-stream/checksum/ChecksumStream.js +4 -0
  53. package/node_modules/@smithy/core/dist-es/submodules/serde/util-stream/headStream.js +2 -1
  54. package/node_modules/@smithy/core/dist-es/submodules/serde/util-stream/stream-collector.browser.js +12 -38
  55. package/node_modules/@smithy/core/dist-es/submodules/serde/util-stream/stream-collector.js +18 -33
  56. package/node_modules/@smithy/core/dist-es/submodules/serde/util-utf8/toUint8Array.browser.js +3 -0
  57. package/node_modules/@smithy/core/dist-es/submodules/serde/util-utf8/toUint8Array.js +3 -0
  58. package/node_modules/@smithy/core/dist-types/submodules/checksum/crc32/Crc32Js.d.ts +13 -0
  59. package/node_modules/@smithy/core/dist-types/submodules/checksum/crc32/Crc32Node.d.ts +13 -0
  60. package/node_modules/@smithy/core/dist-types/submodules/checksum/index.browser.d.ts +7 -1
  61. package/node_modules/@smithy/core/dist-types/submodules/checksum/index.d.ts +7 -1
  62. package/node_modules/@smithy/core/dist-types/submodules/checksum/index.native.d.ts +7 -1
  63. package/node_modules/@smithy/core/dist-types/submodules/checksum/md5/Md5Js.d.ts +19 -0
  64. package/node_modules/@smithy/core/dist-types/submodules/checksum/md5/Md5Node.d.ts +17 -0
  65. package/node_modules/@smithy/core/dist-types/submodules/checksum/sha256/Sha256Js.d.ts +28 -0
  66. package/node_modules/@smithy/core/dist-types/submodules/checksum/sha256/Sha256Node.d.ts +13 -0
  67. package/node_modules/@smithy/core/dist-types/submodules/checksum/sha256/Sha256WebCrypto.d.ts +22 -0
  68. package/node_modules/@smithy/core/dist-types/submodules/serde/concatBytes.d.ts +6 -0
  69. package/node_modules/@smithy/core/dist-types/submodules/serde/index.browser.d.ts +2 -0
  70. package/node_modules/@smithy/core/dist-types/submodules/serde/index.d.ts +2 -0
  71. package/node_modules/@smithy/core/dist-types/submodules/serde/index.native.d.ts +2 -0
  72. package/node_modules/@smithy/core/dist-types/submodules/serde/util-stream/checksum/ChecksumStream.d.ts +9 -0
  73. package/node_modules/@smithy/core/dist-types/submodules/serde/util-stream/stream-collector.browser.d.ts +8 -2
  74. package/node_modules/@smithy/core/dist-types/submodules/serde/util-stream/stream-collector.d.ts +4 -1
  75. package/node_modules/@smithy/core/package.json +4 -3
  76. package/node_modules/@smithy/credential-provider-imds/package.json +2 -2
  77. package/node_modules/@smithy/fetch-http-handler/dist-cjs/index.js +2 -55
  78. package/node_modules/@smithy/fetch-http-handler/dist-es/index.js +2 -2
  79. package/node_modules/@smithy/fetch-http-handler/dist-types/index.d.ts +2 -2
  80. package/node_modules/@smithy/fetch-http-handler/package.json +2 -2
  81. package/node_modules/@smithy/node-http-handler/dist-cjs/index.js +3 -51
  82. package/node_modules/@smithy/node-http-handler/dist-es/index.js +3 -3
  83. package/node_modules/@smithy/node-http-handler/dist-types/index.d.ts +3 -3
  84. package/node_modules/@smithy/node-http-handler/package.json +2 -2
  85. package/node_modules/@smithy/signature-v4/package.json +2 -2
  86. package/package.json +2 -2
  87. package/node_modules/@aws-sdk/xml-builder/dist-cjs/xml-external/nodable_entities.js +0 -333
  88. package/node_modules/@aws-sdk/xml-builder/dist-es/xml-external/nodable_entities.js +0 -332
  89. package/node_modules/@aws-sdk/xml-builder/dist-types/ts3.4/xml-external/nodable_entities.d.ts +0 -66
  90. package/node_modules/@aws-sdk/xml-builder/dist-types/xml-external/nodable_entities.d.ts +0 -65
  91. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/CHANGELOG.md +0 -827
  92. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/LICENSE +0 -21
  93. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/README.md +0 -202
  94. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/lib/fxbuilder.min.js +0 -2
  95. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/lib/fxbuilder.min.js.map +0 -1
  96. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/lib/fxp.cjs +0 -1
  97. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/lib/fxp.d.cts +0 -770
  98. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/lib/fxp.min.js +0 -2
  99. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/lib/fxp.min.js.map +0 -1
  100. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/lib/fxparser.min.js +0 -2
  101. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/lib/fxparser.min.js.map +0 -1
  102. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/lib/fxvalidator.min.js +0 -2
  103. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/lib/fxvalidator.min.js.map +0 -1
  104. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/package.json +0 -93
  105. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/cli/cli.js +0 -97
  106. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/cli/man.js +0 -17
  107. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/cli/read.js +0 -43
  108. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/fxp.d.ts +0 -739
  109. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/fxp.js +0 -14
  110. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/ignoreAttributes.js +0 -18
  111. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/util.js +0 -61
  112. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/v6/CharsSymbol.js +0 -16
  113. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/v6/EntitiesParser.js +0 -106
  114. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/v6/OptionsBuilder.js +0 -61
  115. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/v6/OutputBuilders/BaseOutputBuilder.js +0 -69
  116. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/v6/OutputBuilders/JsArrBuilder.js +0 -103
  117. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/v6/OutputBuilders/JsMinArrBuilder.js +0 -100
  118. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/v6/OutputBuilders/JsObjBuilder.js +0 -154
  119. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/v6/OutputBuilders/ParserOptionsBuilder.js +0 -94
  120. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/v6/Report.js +0 -0
  121. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/v6/TagPath.js +0 -81
  122. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/v6/TagPathMatcher.js +0 -13
  123. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/v6/XMLParser.js +0 -83
  124. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/v6/Xml2JsParser.js +0 -235
  125. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/v6/XmlPartReader.js +0 -210
  126. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/v6/XmlSpecialTagsReader.js +0 -111
  127. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/v6/inputSource/BufferSource.js +0 -116
  128. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/v6/inputSource/StringSource.js +0 -121
  129. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/v6/valueParsers/EntitiesParser.js +0 -105
  130. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/v6/valueParsers/booleanParser.js +0 -22
  131. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/v6/valueParsers/booleanParserExt.js +0 -19
  132. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/v6/valueParsers/currency.js +0 -38
  133. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/v6/valueParsers/join.js +0 -13
  134. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/v6/valueParsers/number.js +0 -14
  135. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/v6/valueParsers/trim.js +0 -6
  136. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/validator.js +0 -425
  137. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/xmlbuilder/json2xml.js +0 -6
  138. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/xmlparser/DocTypeReader.js +0 -407
  139. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/xmlparser/OptionsBuilder.js +0 -163
  140. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/xmlparser/OrderedObjParser.js +0 -840
  141. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/xmlparser/XMLParser.js +0 -71
  142. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/xmlparser/node2json.js +0 -177
  143. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/xmlparser/xmlNode.js +0 -40
  144. package/node_modules/@nodable/entities/README.md +0 -41
  145. package/node_modules/@nodable/entities/package.json +0 -57
  146. package/node_modules/@nodable/entities/src/EntityDecoder.js +0 -644
  147. package/node_modules/@nodable/entities/src/EntityEncoder.js +0 -194
  148. package/node_modules/@nodable/entities/src/entities.js +0 -1159
  149. package/node_modules/@nodable/entities/src/entityTries.js +0 -49
  150. package/node_modules/@nodable/entities/src/index.d.ts +0 -341
  151. package/node_modules/@nodable/entities/src/index.js +0 -29
  152. package/node_modules/@smithy/core/dist-es/submodules/checksum/md5-js/constants.js +0 -3
  153. package/node_modules/@smithy/core/dist-es/submodules/checksum/md5-js/md5.js +0 -168
  154. package/node_modules/@smithy/core/dist-types/submodules/checksum/md5-js/constants.d.ts +0 -12
  155. package/node_modules/@smithy/core/dist-types/submodules/checksum/md5-js/md5.d.ts +0 -16
  156. package/node_modules/@smithy/fetch-http-handler/dist-es/stream-collector.js +0 -53
  157. package/node_modules/@smithy/fetch-http-handler/dist-types/stream-collector.d.ts +0 -2
  158. package/node_modules/@smithy/node-http-handler/dist-es/stream-collector/collector.js +0 -8
  159. package/node_modules/@smithy/node-http-handler/dist-es/stream-collector/index.js +0 -41
  160. package/node_modules/@smithy/node-http-handler/dist-types/stream-collector/collector.d.ts +0 -5
  161. package/node_modules/@smithy/node-http-handler/dist-types/stream-collector/index.d.ts +0 -7
  162. package/node_modules/anynum/LICENSE +0 -21
  163. package/node_modules/anynum/README.md +0 -142
  164. package/node_modules/anynum/anynum.js +0 -135
  165. package/node_modules/anynum/digitTable.js +0 -116
  166. package/node_modules/anynum/package.json +0 -42
  167. package/node_modules/fast-xml-builder/CHANGELOG.md +0 -40
  168. package/node_modules/fast-xml-builder/LICENSE +0 -21
  169. package/node_modules/fast-xml-builder/README.md +0 -74
  170. package/node_modules/fast-xml-builder/lib/fxb.cjs +0 -1
  171. package/node_modules/fast-xml-builder/lib/fxb.d.cts +0 -270
  172. package/node_modules/fast-xml-builder/lib/fxb.min.js +0 -2
  173. package/node_modules/fast-xml-builder/lib/fxb.min.js.map +0 -1
  174. package/node_modules/fast-xml-builder/package.json +0 -81
  175. package/node_modules/fast-xml-builder/src/fxb.d.ts +0 -270
  176. package/node_modules/fast-xml-builder/src/fxb.js +0 -599
  177. package/node_modules/fast-xml-builder/src/ignoreAttributes.js +0 -18
  178. package/node_modules/fast-xml-builder/src/orderedJs2Xml.js +0 -359
  179. package/node_modules/fast-xml-builder/src/prettifyJs2Xml.js +0 -0
  180. package/node_modules/fast-xml-builder/src/util.js +0 -16
  181. package/node_modules/path-expression-matcher/LICENSE +0 -21
  182. package/node_modules/path-expression-matcher/README.md +0 -947
  183. package/node_modules/path-expression-matcher/lib/pem.cjs +0 -1
  184. package/node_modules/path-expression-matcher/lib/pem.d.cts +0 -715
  185. package/node_modules/path-expression-matcher/lib/pem.min.js +0 -2
  186. package/node_modules/path-expression-matcher/lib/pem.min.js.map +0 -1
  187. package/node_modules/path-expression-matcher/package.json +0 -79
  188. package/node_modules/path-expression-matcher/src/Expression.js +0 -232
  189. package/node_modules/path-expression-matcher/src/ExpressionSet.js +0 -225
  190. package/node_modules/path-expression-matcher/src/Matcher.js +0 -660
  191. package/node_modules/path-expression-matcher/src/index.d.ts +0 -589
  192. package/node_modules/path-expression-matcher/src/index.js +0 -29
  193. package/node_modules/strnum/CHANGELOG.md +0 -51
  194. package/node_modules/strnum/LICENSE +0 -21
  195. package/node_modules/strnum/README.md +0 -113
  196. package/node_modules/strnum/package.json +0 -36
  197. package/node_modules/strnum/strnum.js +0 -171
  198. package/node_modules/xml-naming/README.md +0 -189
  199. package/node_modules/xml-naming/package.json +0 -54
  200. package/node_modules/xml-naming/src/index.d.ts +0 -74
  201. package/node_modules/xml-naming/src/index.js +0 -270
@@ -0,0 +1,179 @@
1
+ import { toUint8Array } from "@smithy/core/serde";
2
+ const BLOCK = 64;
3
+ const DIGEST_LENGTH = 32;
4
+ const MAX_HASHABLE_LENGTH = 2 ** 53 - 1;
5
+ export class Sha256Js {
6
+ digestLength = DIGEST_LENGTH;
7
+ state = Int32Array.from(INIT);
8
+ w;
9
+ buffer = new Uint8Array(64);
10
+ bufferLength = 0;
11
+ bytesHashed = 0;
12
+ finished = false;
13
+ inner;
14
+ outer;
15
+ constructor(secret) {
16
+ if (secret) {
17
+ const key = Sha256Js.normalizeKey(secret);
18
+ this.inner = new Sha256Js();
19
+ this.outer = new Sha256Js();
20
+ const { inner, outer } = this;
21
+ const pad = new Uint8Array(BLOCK * 2);
22
+ for (let i = 0; i < BLOCK; ++i) {
23
+ pad[i] = 0x36 ^ key[i];
24
+ pad[i + BLOCK] = 0x5c ^ key[i];
25
+ }
26
+ inner.update(pad.subarray(0, BLOCK));
27
+ outer.update(pad.subarray(BLOCK));
28
+ }
29
+ }
30
+ update(data) {
31
+ if (this.finished) {
32
+ throw new Error("Attempted to update an already finished HMAC.");
33
+ }
34
+ if (this.inner) {
35
+ this.inner.update(data);
36
+ return;
37
+ }
38
+ const chunk = toUint8Array(data);
39
+ let position = 0;
40
+ let { byteLength } = chunk;
41
+ this.bytesHashed += byteLength;
42
+ if (this.bytesHashed * 8 > MAX_HASHABLE_LENGTH) {
43
+ throw new Error("Cannot hash more than 2^53 - 1 bits");
44
+ }
45
+ while (byteLength > 0) {
46
+ this.buffer[this.bufferLength++] = chunk[position++];
47
+ byteLength--;
48
+ if (this.bufferLength === BLOCK) {
49
+ this.hashBuffer();
50
+ this.bufferLength = 0;
51
+ }
52
+ }
53
+ }
54
+ async digest() {
55
+ const { inner, outer } = this;
56
+ if (inner && outer) {
57
+ if (this.finished) {
58
+ throw new Error("Attempted to digest an already finished HMAC.");
59
+ }
60
+ this.finished = true;
61
+ const innerDigest = inner.digestSync();
62
+ outer.update(innerDigest);
63
+ return outer.digestSync();
64
+ }
65
+ return this.digestSync();
66
+ }
67
+ reset() {
68
+ this.state = Int32Array.from(INIT);
69
+ this.buffer = new Uint8Array(64);
70
+ this.bufferLength = 0;
71
+ this.bytesHashed = 0;
72
+ }
73
+ digestSync() {
74
+ const state = this.state.slice();
75
+ const buffer = this.buffer.slice();
76
+ let bufferLength = this.bufferLength;
77
+ const bitsHashed = this.bytesHashed * 8;
78
+ const bufferView = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength);
79
+ bufferView.setUint8(bufferLength++, 0x80);
80
+ if ((bufferLength - 1) % BLOCK >= BLOCK - 8) {
81
+ for (let i = bufferLength; i < BLOCK; ++i) {
82
+ bufferView.setUint8(i, 0);
83
+ }
84
+ this.hashBufferWith(state, buffer);
85
+ bufferLength = 0;
86
+ }
87
+ for (let i = bufferLength; i < BLOCK - 8; ++i) {
88
+ bufferView.setUint8(i, 0);
89
+ }
90
+ bufferView.setUint32(BLOCK - 8, Math.floor(bitsHashed / 0x100000000), false);
91
+ bufferView.setUint32(BLOCK - 4, bitsHashed, false);
92
+ this.hashBufferWith(state, buffer);
93
+ const out = new Uint8Array(DIGEST_LENGTH);
94
+ for (let i = 0; i < 8; ++i) {
95
+ out[i * 4] = (state[i] >>> 24) & 0xff;
96
+ out[i * 4 + 1] = (state[i] >>> 16) & 0xff;
97
+ out[i * 4 + 2] = (state[i] >>> 8) & 0xff;
98
+ out[i * 4 + 3] = (state[i] >>> 0) & 0xff;
99
+ }
100
+ return out;
101
+ }
102
+ static normalizeKey(secret) {
103
+ const key = toUint8Array(secret);
104
+ if (key.byteLength > BLOCK) {
105
+ const h = new Sha256Js();
106
+ h.update(key);
107
+ const out = h.digestSync();
108
+ const padded = new Uint8Array(BLOCK);
109
+ padded.set(out);
110
+ return padded;
111
+ }
112
+ if (key.byteLength < BLOCK) {
113
+ const padded = new Uint8Array(BLOCK);
114
+ padded.set(key);
115
+ return padded;
116
+ }
117
+ return key;
118
+ }
119
+ hashBuffer() {
120
+ this.hashBufferWith(this.state, this.buffer);
121
+ }
122
+ hashBufferWith(state, buffer) {
123
+ const w = (this.w ??= new Int32Array(64));
124
+ let s0 = state[0], s1 = state[1], s2 = state[2], s3 = state[3], s4 = state[4], s5 = state[5], s6 = state[6], s7 = state[7];
125
+ for (let i = 0; i < BLOCK; ++i) {
126
+ if (i < 16) {
127
+ w[i] =
128
+ ((buffer[i * 4] & 0xff) << 24) |
129
+ ((buffer[i * 4 + 1] & 0xff) << 16) |
130
+ ((buffer[i * 4 + 2] & 0xff) << 8) |
131
+ (buffer[i * 4 + 3] & 0xff);
132
+ }
133
+ else {
134
+ let u = w[i - 2];
135
+ const t1 = ((u >>> 17) | (u << 15)) ^ ((u >>> 19) | (u << 13)) ^ (u >>> 10);
136
+ u = w[i - 15];
137
+ const t2 = ((u >>> 7) | (u << 25)) ^ ((u >>> 18) | (u << 14)) ^ (u >>> 3);
138
+ w[i] = ((t1 + w[i - 7]) | 0) + ((t2 + w[i - 16]) | 0);
139
+ }
140
+ const t1 = ((((((s4 >>> 6) | (s4 << 26)) ^ ((s4 >>> 11) | (s4 << 21)) ^ ((s4 >>> 25) | (s4 << 7))) +
141
+ ((s4 & s5) ^ (~s4 & s6))) |
142
+ 0) +
143
+ ((s7 + ((K[i] + w[i]) | 0)) | 0)) |
144
+ 0;
145
+ const t2 = ((((s0 >>> 2) | (s0 << 30)) ^ ((s0 >>> 13) | (s0 << 19)) ^ ((s0 >>> 22) | (s0 << 10))) +
146
+ ((s0 & s1) ^ (s0 & s2) ^ (s1 & s2))) |
147
+ 0;
148
+ s7 = s6;
149
+ s6 = s5;
150
+ s5 = s4;
151
+ s4 = (s3 + t1) | 0;
152
+ s3 = s2;
153
+ s2 = s1;
154
+ s1 = s0;
155
+ s0 = (t1 + t2) | 0;
156
+ }
157
+ state[0] += s0;
158
+ state[1] += s1;
159
+ state[2] += s2;
160
+ state[3] += s3;
161
+ state[4] += s4;
162
+ state[5] += s5;
163
+ state[6] += s6;
164
+ state[7] += s7;
165
+ }
166
+ }
167
+ const INIT = new Int32Array([
168
+ 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19,
169
+ ]);
170
+ const K = new Int32Array([
171
+ 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,
172
+ 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,
173
+ 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,
174
+ 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,
175
+ 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,
176
+ 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,
177
+ 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,
178
+ 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2,
179
+ ]);
@@ -0,0 +1,59 @@
1
+ import { createHash, createHmac } from "node:crypto";
2
+ import { Sha256Js } from "./Sha256Js";
3
+ const hasNativeCrypto = (() => {
4
+ try {
5
+ createHash("sha256");
6
+ return true;
7
+ }
8
+ catch {
9
+ return false;
10
+ }
11
+ })();
12
+ export const Sha256Node = hasNativeCrypto ? buildNativeClass() : Sha256Js;
13
+ function buildNativeClass() {
14
+ return class Sha256Node {
15
+ digestLength = 32;
16
+ secret;
17
+ hash;
18
+ isHmac;
19
+ finished = false;
20
+ constructor(secret) {
21
+ this.secret = secret;
22
+ this.isHmac = !!secret;
23
+ this.hash = this.createHash();
24
+ }
25
+ update(data) {
26
+ if (this.finished) {
27
+ throw new Error("Attempted to update an already finished hash.");
28
+ }
29
+ this.hash.update(data);
30
+ }
31
+ async digest() {
32
+ let buf;
33
+ if (this.isHmac) {
34
+ this.finished = true;
35
+ buf = this.hash.digest();
36
+ }
37
+ else {
38
+ buf = this.hash.copy().digest();
39
+ }
40
+ return new Uint8Array(buf.buffer, buf.byteOffset, buf.byteLength);
41
+ }
42
+ reset() {
43
+ this.hash = this.createHash();
44
+ this.finished = false;
45
+ }
46
+ createHash() {
47
+ return this.secret ? createHmac("sha256", toBuffer(this.secret)) : createHash("sha256");
48
+ }
49
+ };
50
+ }
51
+ function toBuffer(data) {
52
+ if (typeof data === "string") {
53
+ return data;
54
+ }
55
+ if (ArrayBuffer.isView(data)) {
56
+ return Buffer.from(data.buffer, data.byteOffset, data.byteLength);
57
+ }
58
+ return Buffer.from(data);
59
+ }
@@ -0,0 +1,71 @@
1
+ import { concatBytes, toUint8Array } from "@smithy/core/serde";
2
+ import { Sha256Js } from "./Sha256Js";
3
+ const { digest, sign, importKey } = globalThis?.crypto?.subtle ?? {};
4
+ const subtle = typeof digest === "function" && typeof sign === "function" && typeof importKey === "function"
5
+ ? globalThis.crypto.subtle
6
+ : undefined;
7
+ const MAX_PENDING_BYTES = 8 * 1024 * 1024;
8
+ export class Sha256WebCrypto {
9
+ digestLength = 32;
10
+ secret;
11
+ pending = [];
12
+ pendingBytes = 0;
13
+ fallback;
14
+ finished = false;
15
+ constructor(secret) {
16
+ if (secret) {
17
+ this.secret = toUint8Array(secret);
18
+ }
19
+ }
20
+ update(data) {
21
+ if (this.finished) {
22
+ throw new Error("Attempted to update an already finished HMAC.");
23
+ }
24
+ if (this.fallback) {
25
+ this.fallback.update(data);
26
+ return;
27
+ }
28
+ this.pending.push(data.slice());
29
+ this.pendingBytes += data.byteLength;
30
+ if (this.pendingBytes >= MAX_PENDING_BYTES) {
31
+ this.switchToFallback();
32
+ }
33
+ }
34
+ async digest() {
35
+ if (this.fallback) {
36
+ return this.fallback.digest();
37
+ }
38
+ if (this.secret && this.finished) {
39
+ throw new Error("Attempted to digest an already finished HMAC.");
40
+ }
41
+ const data = concatBytes(this.pending);
42
+ if (subtle) {
43
+ if (this.secret) {
44
+ this.finished = true;
45
+ const key = await subtle.importKey("raw", this.secret, { name: "HMAC", hash: "SHA-256" }, false, ["sign"]);
46
+ const sig = await subtle.sign("HMAC", key, data);
47
+ return new Uint8Array(sig);
48
+ }
49
+ const hash = await subtle.digest("SHA-256", data);
50
+ return new Uint8Array(hash);
51
+ }
52
+ const sha256 = new Sha256Js(this.secret);
53
+ sha256.update(data);
54
+ return sha256.digest();
55
+ }
56
+ reset() {
57
+ this.pending = [];
58
+ this.pendingBytes = 0;
59
+ this.fallback = undefined;
60
+ this.finished = false;
61
+ }
62
+ switchToFallback() {
63
+ const sha256Js = new Sha256Js(this.secret);
64
+ for (const chunk of this.pending) {
65
+ sha256Js.update(chunk);
66
+ }
67
+ this.fallback = sha256Js;
68
+ this.pending = [];
69
+ this.pendingBytes = 0;
70
+ }
71
+ }
@@ -1,5 +1,5 @@
1
1
  import { NormalizedSchema, TypeRegistry, translateTraits } from "@smithy/core/schema";
2
- import { HttpRequest, HttpResponse } from "@smithy/core/transport";
2
+ import { HttpRequest, HttpResponse, isValidHostname } from "@smithy/core/transport";
3
3
  import { SerdeContext } from "./SerdeContext";
4
4
  export class HttpProtocol extends SerdeContext {
5
5
  options;
@@ -84,6 +84,9 @@ export class HttpProtocol extends SerdeContext {
84
84
  hostPrefix = hostPrefix.replace(`{${name}}`, replacement);
85
85
  }
86
86
  request.hostname = hostPrefix + request.hostname;
87
+ if (!isValidHostname(request.hostname)) {
88
+ throw new Error(`[${request.hostname}] is not a valid hostname.`);
89
+ }
87
90
  }
88
91
  }
89
92
  }
@@ -0,0 +1,15 @@
1
+ export function concatBytes(arrays, length) {
2
+ if (length === undefined) {
3
+ length = 0;
4
+ for (const bytes of arrays) {
5
+ length += bytes.byteLength;
6
+ }
7
+ }
8
+ const result = new Uint8Array(length);
9
+ let offset = 0;
10
+ for (const buf of arrays) {
11
+ result.set(buf, offset);
12
+ offset += buf.byteLength;
13
+ }
14
+ return result;
15
+ }
@@ -19,6 +19,7 @@ export { toBase64, fromBase64 };
19
19
  export { calculateBodyLength } from "./util-body-length/calculateBodyLength.browser";
20
20
  export { toUint8Array } from "./util-utf8/toUint8Array.browser";
21
21
  export { toUtf8, fromUtf8 };
22
+ export { concatBytes } from "./concatBytes";
22
23
  export const fromArrayBuffer = no;
23
24
  export const fromString = no;
24
25
  export { isArrayBuffer } from "./is-array-buffer/is-array-buffer";
@@ -36,6 +37,7 @@ export { headStream } from "./util-stream/headStream.browser";
36
37
  export { sdkStreamMixin } from "./util-stream/sdk-stream-mixin.browser";
37
38
  export { splitStream } from "./util-stream/splitStream.browser";
38
39
  export { isReadableStream, isBlob } from "./util-stream/stream-type-check";
40
+ export { streamCollector } from "./util-stream/stream-collector.browser";
39
41
  const _getRandomValues = (array) => crypto.getRandomValues(array);
40
42
  export const v4 = bindV4(_getRandomValues);
41
43
  export const generateIdempotencyToken = v4;
@@ -19,6 +19,7 @@ export { toBase64, fromBase64 };
19
19
  export { calculateBodyLength } from "./util-body-length/calculateBodyLength";
20
20
  export { toUint8Array } from "./util-utf8/toUint8Array";
21
21
  export { toUtf8, fromUtf8 };
22
+ export { concatBytes } from "./concatBytes";
22
23
  export { fromArrayBuffer, fromString } from "./util-buffer-from/buffer-from";
23
24
  export { isArrayBuffer } from "./is-array-buffer/is-array-buffer";
24
25
  export { deserializerMiddleware } from "./middleware-serde/deserializerMiddleware";
@@ -35,6 +36,7 @@ export { headStream } from "./util-stream/headStream";
35
36
  export { sdkStreamMixin } from "./util-stream/sdk-stream-mixin";
36
37
  export { splitStream } from "./util-stream/splitStream";
37
38
  export { isReadableStream, isBlob } from "./util-stream/stream-type-check";
39
+ export { streamCollector } from "./util-stream/stream-collector";
38
40
  const _getRandomValues = getRandomValues;
39
41
  export const v4 = bindV4(_getRandomValues);
40
42
  export const generateIdempotencyToken = v4;
@@ -21,6 +21,7 @@ export { calculateBodyLength } from "./util-body-length/calculateBodyLength.brow
21
21
  export { fromUtf8 } from "./util-utf8/fromUtf8.browser";
22
22
  export { toUint8Array } from "./util-utf8/toUint8Array.browser";
23
23
  export { toUtf8 } from "./util-utf8/toUtf8.browser";
24
+ export { concatBytes } from "./concatBytes";
24
25
  export const fromArrayBuffer = no;
25
26
  export const fromString = no;
26
27
  export { isArrayBuffer } from "./is-array-buffer/is-array-buffer";
@@ -38,6 +39,7 @@ export { headStream } from "./util-stream/headStream.browser";
38
39
  export { sdkStreamMixin } from "./util-stream/sdk-stream-mixin.browser";
39
40
  export { splitStream } from "./util-stream/splitStream.browser";
40
41
  export { isReadableStream, isBlob } from "./util-stream/stream-type-check";
42
+ export { streamCollector } from "./util-stream/stream-collector.browser";
41
43
  const _getRandomValues = (array) => crypto.getRandomValues(array);
42
44
  export const v4 = bindV4(_getRandomValues);
43
45
  export const generateIdempotencyToken = v4;
@@ -57,4 +57,8 @@ export class ChecksumStream extends Duplex {
57
57
  this.push(null);
58
58
  return callback();
59
59
  }
60
+ _destroy(error, callback) {
61
+ this.source?.destroy();
62
+ callback(error);
63
+ }
60
64
  }
@@ -1,4 +1,5 @@
1
1
  import { Writable } from "node:stream";
2
+ import { concatBytes } from "../concatBytes";
2
3
  import { headStream as headWebStream } from "./headStream.browser";
3
4
  import { isReadableStream } from "./stream-type-check";
4
5
  export const headStream = (stream, bytes) => {
@@ -15,7 +16,7 @@ export const headStream = (stream, bytes) => {
15
16
  });
16
17
  collector.on("error", reject);
17
18
  collector.on("finish", function () {
18
- const bytes = new Uint8Array(Buffer.concat(this.buffers));
19
+ const bytes = concatBytes(this.buffers);
19
20
  resolve(bytes);
20
21
  });
21
22
  });
@@ -1,53 +1,27 @@
1
- import { fromBase64 } from "../util-base64/fromBase64.browser";
1
+ import { concatBytes } from "../concatBytes";
2
+ import { isBlob } from "./stream-type-check";
2
3
  export const streamCollector = async (stream) => {
3
- if ((typeof Blob === "function" && stream instanceof Blob) || stream.constructor?.name === "Blob") {
4
- if (Blob.prototype.arrayBuffer !== undefined) {
5
- return new Uint8Array(await stream.arrayBuffer());
6
- }
4
+ if (isBlob(stream)) {
7
5
  return collectBlob(stream);
8
6
  }
9
- return collectStream(stream);
7
+ return collectReadableStream(stream);
10
8
  };
11
- async function collectBlob(blob) {
12
- const base64 = await readToBase64(blob);
13
- const arrayBuffer = fromBase64(base64);
14
- return new Uint8Array(arrayBuffer);
9
+ export async function collectBlob(blob) {
10
+ return blob.arrayBuffer().then((ab) => new Uint8Array(ab));
15
11
  }
16
- async function collectStream(stream) {
12
+ export async function collectReadableStream(stream) {
17
13
  const chunks = [];
18
14
  const reader = stream.getReader();
19
- let isDone = false;
20
15
  let length = 0;
21
- while (!isDone) {
16
+ while (true) {
22
17
  const { done, value } = await reader.read();
23
18
  if (value) {
24
19
  chunks.push(value);
25
20
  length += value.length;
26
21
  }
27
- isDone = done;
28
- }
29
- const collected = new Uint8Array(length);
30
- let offset = 0;
31
- for (const chunk of chunks) {
32
- collected.set(chunk, offset);
33
- offset += chunk.length;
22
+ if (done) {
23
+ break;
24
+ }
34
25
  }
35
- return collected;
36
- }
37
- function readToBase64(blob) {
38
- return new Promise((resolve, reject) => {
39
- const reader = new FileReader();
40
- reader.onloadend = () => {
41
- if (reader.readyState !== 2) {
42
- return reject(new Error("Reader aborted too early"));
43
- }
44
- const result = (reader.result ?? "");
45
- const commaIndex = result.indexOf(",");
46
- const dataOffset = commaIndex > -1 ? commaIndex + 1 : result.length;
47
- resolve(result.substring(dataOffset));
48
- };
49
- reader.onabort = () => reject(new Error("Read aborted"));
50
- reader.onerror = () => reject(reader.error);
51
- reader.readAsDataURL(blob);
52
- });
26
+ return concatBytes(chunks, length);
53
27
  }
@@ -1,48 +1,33 @@
1
1
  import { Writable } from "node:stream";
2
- class Collector extends Writable {
3
- bufferedBytes = [];
4
- _write(chunk, encoding, callback) {
5
- this.bufferedBytes.push(chunk);
6
- callback();
7
- }
8
- }
9
- const isReadableStreamInstance = (stream) => typeof ReadableStream === "function" && stream instanceof ReadableStream;
10
- async function collectReadableStream(stream) {
11
- const chunks = [];
12
- const reader = stream.getReader();
13
- let isDone = false;
14
- let length = 0;
15
- while (!isDone) {
16
- const { done, value } = await reader.read();
17
- if (value) {
18
- chunks.push(value);
19
- length += value.length;
20
- }
21
- isDone = done;
22
- }
23
- const collected = new Uint8Array(length);
24
- let offset = 0;
25
- for (const chunk of chunks) {
26
- collected.set(chunk, offset);
27
- offset += chunk.length;
28
- }
29
- return collected;
30
- }
2
+ import { concatBytes } from "../concatBytes";
3
+ import { collectBlob, collectReadableStream } from "./stream-collector.browser";
4
+ import { isBlob, isReadableStream } from "./stream-type-check";
31
5
  export const streamCollector = (stream) => {
32
- if (isReadableStreamInstance(stream)) {
6
+ if (isBlob(stream)) {
7
+ return collectBlob(stream);
8
+ }
9
+ if (isReadableStream(stream)) {
33
10
  return collectReadableStream(stream);
34
11
  }
35
12
  return new Promise((resolve, reject) => {
36
13
  const collector = new Collector();
37
- stream.pipe(collector);
38
- stream.on("error", (err) => {
14
+ const nodeStream = stream;
15
+ nodeStream.pipe(collector);
16
+ nodeStream.on("error", (err) => {
39
17
  collector.end();
40
18
  reject(err);
41
19
  });
42
20
  collector.on("error", reject);
43
21
  collector.on("finish", function () {
44
- const bytes = new Uint8Array(Buffer.concat(this.bufferedBytes));
22
+ const bytes = concatBytes(this.bufferedBytes);
45
23
  resolve(bytes);
46
24
  });
47
25
  });
48
26
  };
27
+ class Collector extends Writable {
28
+ bufferedBytes = [];
29
+ _write(chunk, encoding, callback) {
30
+ this.bufferedBytes.push(chunk);
31
+ callback();
32
+ }
33
+ }
@@ -1,5 +1,8 @@
1
1
  import { fromUtf8 } from "./fromUtf8.browser";
2
2
  export const toUint8Array = (data) => {
3
+ if (data instanceof Uint8Array) {
4
+ return data;
5
+ }
3
6
  if (typeof data === "string") {
4
7
  return fromUtf8(data);
5
8
  }
@@ -1,5 +1,8 @@
1
1
  import { fromUtf8 } from "./fromUtf8";
2
2
  export const toUint8Array = (data) => {
3
+ if (data instanceof Uint8Array) {
4
+ return data;
5
+ }
3
6
  if (typeof data === "string") {
4
7
  return fromUtf8(data);
5
8
  }
@@ -0,0 +1,13 @@
1
+ import type { Checksum } from "@smithy/types";
2
+ /**
3
+ * Pure JS CRC-32 implementation using the IEEE 802.3 polynomial.
4
+ * @see https://www.w3.org/TR/png/#D-CRCAppendix
5
+ * @public
6
+ */
7
+ export declare class Crc32Js implements Checksum {
8
+ readonly digestLength = 4;
9
+ private checksum;
10
+ update(data: Uint8Array): void;
11
+ digest(): Promise<Uint8Array>;
12
+ reset(): void;
13
+ }
@@ -0,0 +1,13 @@
1
+ import type { Checksum } from "@smithy/types";
2
+ /**
3
+ * CRC-32 using Node.js zlib native implementation when available,
4
+ * falling back to the pure JS implementation.
5
+ * @public
6
+ */
7
+ export interface Crc32Node extends Checksum {
8
+ readonly digestLength: 4;
9
+ }
10
+ /**
11
+ * @public
12
+ */
13
+ export declare const Crc32Node: new () => Crc32Node;
@@ -1,5 +1,11 @@
1
1
  export { blobHasher } from "./hash-blob-browser/blobHasher";
2
2
  export declare const fileStreamHasher: symbol;
3
3
  export declare const readableStreamHasher: symbol;
4
- export { Md5 } from "./md5-js/md5";
4
+ export { Md5Js, Md5Js as Md5 } from "./md5/Md5Js";
5
+ export declare const Md5Node: symbol;
6
+ export { Crc32Js, Crc32Js as Crc32 } from "./crc32/Crc32Js";
7
+ export declare const Crc32Node: symbol;
8
+ export { Sha256Js } from "./sha256/Sha256Js";
9
+ export { Sha256WebCrypto, Sha256WebCrypto as Sha256 } from "./sha256/Sha256WebCrypto";
10
+ export declare const Sha256Node: symbol;
5
11
  export { blobReader } from "./chunked-blob-reader/chunked-blob-reader";
@@ -1,5 +1,11 @@
1
1
  export { blobHasher } from "./hash-blob-browser/blobHasher";
2
2
  export { fileStreamHasher } from "./hash-stream-node/fileStreamHasher";
3
3
  export { readableStreamHasher } from "./hash-stream-node/readableStreamHasher";
4
- export { Md5 } from "./md5-js/md5";
4
+ export { Md5Js } from "./md5/Md5Js";
5
+ export { Md5Node, Md5Node as Md5 } from "./md5/Md5Node";
6
+ export { Crc32Js } from "./crc32/Crc32Js";
7
+ export { Crc32Node, Crc32Node as Crc32 } from "./crc32/Crc32Node";
8
+ export { Sha256Js } from "./sha256/Sha256Js";
9
+ export { Sha256Node, Sha256Node as Sha256 } from "./sha256/Sha256Node";
10
+ export { Sha256WebCrypto } from "./sha256/Sha256WebCrypto";
5
11
  export { blobReader } from "./chunked-blob-reader/chunked-blob-reader";
@@ -1,5 +1,11 @@
1
1
  export { blobHasher } from "./hash-blob-browser/blobHasher";
2
2
  export declare const fileStreamHasher: symbol;
3
3
  export declare const readableStreamHasher: symbol;
4
- export { Md5 } from "./md5-js/md5";
4
+ export { Md5Js, Md5Js as Md5 } from "./md5/Md5Js";
5
+ export declare const Md5Node: symbol;
6
+ export { Crc32Js, Crc32Js as Crc32 } from "./crc32/Crc32Js";
7
+ export declare const Crc32Node: symbol;
8
+ export { Sha256Js } from "./sha256/Sha256Js";
9
+ export { Sha256WebCrypto, Sha256WebCrypto as Sha256 } from "./sha256/Sha256WebCrypto";
10
+ export declare const Sha256Node: symbol;
5
11
  export { blobReader } from "./chunked-blob-reader/chunked-blob-reader.native";
@@ -0,0 +1,19 @@
1
+ import type { Checksum, SourceData } from "@smithy/types";
2
+ /**
3
+ * Pure-JS MD5 implementation. Used as fallback where node:crypto is unavailable.
4
+ *
5
+ * @public
6
+ */
7
+ export declare class Md5Js implements Checksum {
8
+ readonly digestLength = 16;
9
+ private state;
10
+ private writeBuffer;
11
+ private bufferLength;
12
+ private bytesHashed;
13
+ update(sourceData: SourceData): void;
14
+ /**
15
+ * Non-destructive: works on copies so update() may continue after digest().
16
+ */
17
+ digest(): Promise<Uint8Array>;
18
+ reset(): void;
19
+ }