@typespec/ts-http-runtime 1.0.0-alpha.20240618.1 → 1.0.0-alpha.20240621.10

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 (183) hide show
  1. package/dist/browser/policies/proxyPolicy-browser.d.mts.map +1 -1
  2. package/dist/browser/policies/proxyPolicy-browser.mjs.map +1 -1
  3. package/dist/browser/policies/proxyPolicy.common.d.ts +15 -0
  4. package/dist/browser/policies/proxyPolicy.common.d.ts.map +1 -0
  5. package/dist/browser/policies/proxyPolicy.common.js +24 -0
  6. package/dist/browser/policies/proxyPolicy.common.js.map +1 -0
  7. package/dist/browser/policies/proxyPolicy.d.ts +1 -14
  8. package/dist/browser/policies/proxyPolicy.js +1 -24
  9. package/dist/browser/policies/tracingPolicy.d.ts.map +1 -1
  10. package/dist/browser/policies/tracingPolicy.js +2 -1
  11. package/dist/browser/policies/tracingPolicy.js.map +1 -1
  12. package/dist/browser/policies/userAgentPolicy.js +1 -1
  13. package/dist/browser/policies/userAgentPolicy.js.map +1 -1
  14. package/dist/browser/util/bytesEncoding-browser.d.mts.map +1 -1
  15. package/dist/browser/util/bytesEncoding-browser.mjs.map +1 -1
  16. package/dist/browser/util/bytesEncoding.common.d.ts +61 -0
  17. package/dist/browser/util/bytesEncoding.common.d.ts.map +1 -0
  18. package/dist/browser/util/bytesEncoding.common.js +110 -0
  19. package/dist/browser/util/bytesEncoding.common.js.map +1 -0
  20. package/dist/browser/util/bytesEncoding.d.ts +1 -60
  21. package/dist/browser/util/bytesEncoding.js +1 -107
  22. package/dist/browser/util/concat-browser.d.mts.map +1 -1
  23. package/dist/browser/util/concat-browser.mjs.map +1 -1
  24. package/dist/browser/util/concat.common.d.ts +19 -0
  25. package/dist/browser/util/concat.common.d.ts.map +1 -0
  26. package/dist/browser/util/concat.common.js +45 -0
  27. package/dist/browser/util/concat.common.js.map +1 -0
  28. package/dist/browser/util/concat.d.ts +1 -18
  29. package/dist/browser/util/concat.js +1 -42
  30. package/dist/browser/util/inspect-browser.d.mts.map +1 -1
  31. package/dist/browser/util/inspect-browser.mjs.map +1 -1
  32. package/dist/browser/util/inspect.common.d.ts +2 -0
  33. package/dist/browser/util/inspect.common.d.ts.map +1 -0
  34. package/dist/browser/util/inspect.common.js +4 -0
  35. package/dist/browser/util/inspect.common.js.map +1 -0
  36. package/dist/browser/util/inspect.d.ts +1 -1
  37. package/dist/browser/util/inspect.js +1 -1
  38. package/dist/browser/util/sha256-browser.d.mts.map +1 -1
  39. package/dist/browser/util/sha256-browser.mjs.map +1 -1
  40. package/dist/browser/util/sha256.common.d.ts +14 -0
  41. package/dist/browser/util/sha256.common.d.ts.map +1 -0
  42. package/dist/browser/util/sha256.common.js +49 -0
  43. package/dist/browser/util/sha256.common.js.map +1 -0
  44. package/dist/browser/util/sha256.d.ts +1 -13
  45. package/dist/browser/util/sha256.js +1 -46
  46. package/dist/browser/util/userAgent.d.ts +1 -1
  47. package/dist/browser/util/userAgent.d.ts.map +1 -1
  48. package/dist/browser/util/userAgent.js +2 -2
  49. package/dist/browser/util/userAgent.js.map +1 -1
  50. package/dist/browser/util/userAgentPlatform-browser.d.mts.map +1 -1
  51. package/dist/browser/util/userAgentPlatform-browser.mjs.map +1 -1
  52. package/dist/browser/util/userAgentPlatform.d.ts +1 -1
  53. package/dist/browser/util/userAgentPlatform.js +28 -6
  54. package/dist/commonjs/policies/proxyPolicy.common.d.ts +15 -0
  55. package/dist/commonjs/policies/proxyPolicy.common.d.ts.map +1 -0
  56. package/dist/commonjs/policies/proxyPolicy.common.js +30 -0
  57. package/dist/commonjs/policies/proxyPolicy.common.js.map +1 -0
  58. package/dist/commonjs/policies/tracingPolicy.d.ts.map +1 -1
  59. package/dist/commonjs/policies/tracingPolicy.js +2 -1
  60. package/dist/commonjs/policies/tracingPolicy.js.map +1 -1
  61. package/dist/commonjs/policies/userAgentPolicy.js +1 -1
  62. package/dist/commonjs/policies/userAgentPolicy.js.map +1 -1
  63. package/dist/commonjs/util/bytesEncoding.common.d.ts +61 -0
  64. package/dist/commonjs/util/bytesEncoding.common.d.ts.map +1 -0
  65. package/dist/commonjs/util/bytesEncoding.common.js +123 -0
  66. package/dist/commonjs/util/bytesEncoding.common.js.map +1 -0
  67. package/dist/commonjs/util/concat.common.d.ts +19 -0
  68. package/dist/commonjs/util/concat.common.d.ts.map +1 -0
  69. package/dist/commonjs/util/concat.common.js +49 -0
  70. package/dist/commonjs/util/concat.common.js.map +1 -0
  71. package/dist/commonjs/util/inspect.common.d.ts +2 -0
  72. package/dist/commonjs/util/inspect.common.d.ts.map +1 -0
  73. package/dist/commonjs/util/inspect.common.js +7 -0
  74. package/dist/commonjs/util/inspect.common.js.map +1 -0
  75. package/dist/commonjs/util/sha256.common.d.ts +14 -0
  76. package/dist/commonjs/util/sha256.common.d.ts.map +1 -0
  77. package/dist/commonjs/util/sha256.common.js +54 -0
  78. package/dist/commonjs/util/sha256.common.js.map +1 -0
  79. package/dist/commonjs/util/userAgent.d.ts +1 -1
  80. package/dist/commonjs/util/userAgent.d.ts.map +1 -1
  81. package/dist/commonjs/util/userAgent.js +2 -2
  82. package/dist/commonjs/util/userAgent.js.map +1 -1
  83. package/dist/commonjs/util/userAgentPlatform.d.ts +1 -1
  84. package/dist/commonjs/util/userAgentPlatform.d.ts.map +1 -1
  85. package/dist/commonjs/util/userAgentPlatform.js +1 -1
  86. package/dist/commonjs/util/userAgentPlatform.js.map +1 -1
  87. package/dist/esm/policies/proxyPolicy.common.d.ts +15 -0
  88. package/dist/esm/policies/proxyPolicy.common.d.ts.map +1 -0
  89. package/dist/esm/policies/proxyPolicy.common.js +24 -0
  90. package/dist/esm/policies/proxyPolicy.common.js.map +1 -0
  91. package/dist/esm/policies/tracingPolicy.d.ts.map +1 -1
  92. package/dist/esm/policies/tracingPolicy.js +2 -1
  93. package/dist/esm/policies/tracingPolicy.js.map +1 -1
  94. package/dist/esm/policies/userAgentPolicy.js +1 -1
  95. package/dist/esm/policies/userAgentPolicy.js.map +1 -1
  96. package/dist/esm/util/bytesEncoding.common.d.ts +61 -0
  97. package/dist/esm/util/bytesEncoding.common.d.ts.map +1 -0
  98. package/dist/esm/util/bytesEncoding.common.js +110 -0
  99. package/dist/esm/util/bytesEncoding.common.js.map +1 -0
  100. package/dist/esm/util/concat.common.d.ts +19 -0
  101. package/dist/esm/util/concat.common.d.ts.map +1 -0
  102. package/dist/esm/util/concat.common.js +45 -0
  103. package/dist/esm/util/concat.common.js.map +1 -0
  104. package/dist/esm/util/inspect.common.d.ts +2 -0
  105. package/dist/esm/util/inspect.common.d.ts.map +1 -0
  106. package/dist/esm/util/inspect.common.js +4 -0
  107. package/dist/esm/util/inspect.common.js.map +1 -0
  108. package/dist/esm/util/sha256.common.d.ts +14 -0
  109. package/dist/esm/util/sha256.common.d.ts.map +1 -0
  110. package/dist/esm/util/sha256.common.js +49 -0
  111. package/dist/esm/util/sha256.common.js.map +1 -0
  112. package/dist/esm/util/userAgent.d.ts +1 -1
  113. package/dist/esm/util/userAgent.d.ts.map +1 -1
  114. package/dist/esm/util/userAgent.js +2 -2
  115. package/dist/esm/util/userAgent.js.map +1 -1
  116. package/dist/esm/util/userAgentPlatform.d.ts +1 -1
  117. package/dist/esm/util/userAgentPlatform.d.ts.map +1 -1
  118. package/dist/esm/util/userAgentPlatform.js +1 -1
  119. package/dist/esm/util/userAgentPlatform.js.map +1 -1
  120. package/dist/react-native/policies/proxyPolicy-react-native.d.mts.map +1 -0
  121. package/dist/react-native/policies/proxyPolicy-react-native.mjs.map +1 -0
  122. package/dist/react-native/policies/proxyPolicy.common.d.ts +15 -0
  123. package/dist/react-native/policies/proxyPolicy.common.d.ts.map +1 -0
  124. package/dist/react-native/policies/proxyPolicy.common.js +24 -0
  125. package/dist/react-native/policies/proxyPolicy.common.js.map +1 -0
  126. package/dist/react-native/policies/proxyPolicy.d.ts +2 -32
  127. package/dist/react-native/policies/proxyPolicy.js +2 -189
  128. package/dist/react-native/policies/tracingPolicy.d.ts.map +1 -1
  129. package/dist/react-native/policies/tracingPolicy.js +2 -1
  130. package/dist/react-native/policies/tracingPolicy.js.map +1 -1
  131. package/dist/react-native/policies/userAgentPolicy.js +1 -1
  132. package/dist/react-native/policies/userAgentPolicy.js.map +1 -1
  133. package/dist/react-native/util/bytesEncoding-react-native.d.mts.map +1 -0
  134. package/dist/react-native/util/bytesEncoding-react-native.mjs.map +1 -0
  135. package/dist/react-native/util/bytesEncoding.common.d.ts +61 -0
  136. package/dist/react-native/util/bytesEncoding.common.d.ts.map +1 -0
  137. package/dist/react-native/util/bytesEncoding.common.js +110 -0
  138. package/dist/react-native/util/bytesEncoding.common.js.map +1 -0
  139. package/dist/react-native/util/bytesEncoding.d.ts +2 -17
  140. package/dist/react-native/util/bytesEncoding.js +2 -19
  141. package/dist/react-native/util/concat-react-native.d.mts.map +1 -0
  142. package/dist/react-native/util/concat-react-native.mjs.map +1 -0
  143. package/dist/react-native/util/concat.common.d.ts +19 -0
  144. package/dist/react-native/util/concat.common.d.ts.map +1 -0
  145. package/dist/react-native/util/concat.common.js +45 -0
  146. package/dist/react-native/util/concat.common.js.map +1 -0
  147. package/dist/react-native/util/concat.d.ts +2 -18
  148. package/dist/react-native/util/concat.js +2 -86
  149. package/dist/react-native/util/inspect-react-native.d.mts.map +1 -0
  150. package/dist/react-native/util/inspect-react-native.mjs.map +1 -0
  151. package/dist/react-native/util/inspect.common.d.ts +2 -0
  152. package/dist/react-native/util/inspect.common.d.ts.map +1 -0
  153. package/dist/react-native/util/inspect.common.js +4 -0
  154. package/dist/react-native/util/inspect.common.js.map +1 -0
  155. package/dist/react-native/util/inspect.d.ts +2 -2
  156. package/dist/react-native/util/inspect.js +2 -3
  157. package/dist/react-native/util/sha256-react-native.d.mts.map +1 -0
  158. package/dist/react-native/util/sha256-react-native.mjs.map +1 -0
  159. package/dist/react-native/util/sha256.common.d.ts +14 -0
  160. package/dist/react-native/util/sha256.common.d.ts.map +1 -0
  161. package/dist/react-native/util/sha256.common.js +49 -0
  162. package/dist/react-native/util/sha256.common.js.map +1 -0
  163. package/dist/react-native/util/sha256.d.ts +2 -14
  164. package/dist/react-native/util/sha256.js +2 -20
  165. package/dist/react-native/util/userAgent.d.ts +1 -1
  166. package/dist/react-native/util/userAgent.d.ts.map +1 -1
  167. package/dist/react-native/util/userAgent.js +2 -2
  168. package/dist/react-native/util/userAgent.js.map +1 -1
  169. package/dist/react-native/util/userAgentPlatform-react-native.d.mts.map +1 -1
  170. package/dist/react-native/util/userAgentPlatform-react-native.mjs.map +1 -1
  171. package/dist/react-native/util/userAgentPlatform.d.ts +1 -1
  172. package/dist/react-native/util/userAgentPlatform.js +2 -4
  173. package/package.json +2 -2
  174. package/dist/react-native/policies/proxyPolicy.d.ts.map +0 -1
  175. package/dist/react-native/policies/proxyPolicy.js.map +0 -1
  176. package/dist/react-native/util/bytesEncoding.d.ts.map +0 -1
  177. package/dist/react-native/util/bytesEncoding.js.map +0 -1
  178. package/dist/react-native/util/concat.d.ts.map +0 -1
  179. package/dist/react-native/util/concat.js.map +0 -1
  180. package/dist/react-native/util/inspect.d.ts.map +0 -1
  181. package/dist/react-native/util/inspect.js.map +0 -1
  182. package/dist/react-native/util/sha256.d.ts.map +0 -1
  183. package/dist/react-native/util/sha256.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"proxyPolicy-browser.d.mts","sourceRoot":"","sources":["../../../src/policies/proxyPolicy-browser.mts"],"names":[],"mappings":"AAOA,eAAO,MAAM,eAAe,gBAAgB,CAAC;AAG7C,wBAAgB,uBAAuB,IAAI,KAAK,CAE/C;AAED;;;GAGG;AACH,wBAAgB,WAAW,IAAI,KAAK,CAEnC;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,IAAI,KAAK,CAE9C"}
1
+ {"version":3,"file":"proxyPolicy-browser.d.mts","sourceRoot":"","sources":["../../../src/policies/proxyPolicy-browser.mts"],"names":[],"mappings":"AAGA,cAAc,yBAAyB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"proxyPolicy-browser.mjs","sourceRoot":"","sources":["../../../src/policies/proxyPolicy-browser.mts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC;;GAEG;AAEH,MAAM,CAAC,MAAM,eAAe,GAAG,aAAa,CAAC;AAC7C,MAAM,YAAY,GAAG,qDAAqD,CAAC;AAE3E,MAAM,UAAU,uBAAuB;IACrC,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;AAChC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW;IACzB,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;AAChC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB;IACpC,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;AAChC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\n/*\n * NOTE: When moving this file, please update \"browser\" section in package.json\n */\n\nexport const proxyPolicyName = \"proxyPolicy\";\nconst errorMessage = \"proxyPolicy is not supported in browser environment\";\n\nexport function getDefaultProxySettings(): never {\n throw new Error(errorMessage);\n}\n\n/**\n * proxyPolicy is not supported in the browser and attempting\n * to use it will raise an error.\n */\nexport function proxyPolicy(): never {\n throw new Error(errorMessage);\n}\n\n/**\n * A function to reset the cached agents.\n * proxyPolicy is not supported in the browser and attempting\n * to use it will raise an error.\n * @internal\n */\nexport function resetCachedProxyAgents(): never {\n throw new Error(errorMessage);\n}\n"]}
1
+ {"version":3,"file":"proxyPolicy-browser.mjs","sourceRoot":"","sources":["../../../src/policies/proxyPolicy-browser.mts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,cAAc,yBAAyB,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nexport * from \"./proxyPolicy.common.js\";\n"]}
@@ -0,0 +1,15 @@
1
+ export declare const proxyPolicyName = "proxyPolicy";
2
+ export declare function getDefaultProxySettings(): never;
3
+ /**
4
+ * proxyPolicy is not supported in the browser and attempting
5
+ * to use it will raise an error.
6
+ */
7
+ export declare function proxyPolicy(): never;
8
+ /**
9
+ * A function to reset the cached agents.
10
+ * proxyPolicy is not supported in the browser and attempting
11
+ * to use it will raise an error.
12
+ * @internal
13
+ */
14
+ export declare function resetCachedProxyAgents(): never;
15
+ //# sourceMappingURL=proxyPolicy.common.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"proxyPolicy.common.d.ts","sourceRoot":"","sources":["../../../src/policies/proxyPolicy.common.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,eAAe,gBAAgB,CAAC;AAG7C,wBAAgB,uBAAuB,IAAI,KAAK,CAE/C;AAED;;;GAGG;AACH,wBAAgB,WAAW,IAAI,KAAK,CAEnC;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,IAAI,KAAK,CAE9C"}
@@ -0,0 +1,24 @@
1
+ // Copyright (c) Microsoft Corporation.
2
+ // Licensed under the MIT license.
3
+ export const proxyPolicyName = "proxyPolicy";
4
+ const errorMessage = "proxyPolicy is not supported in browser environment";
5
+ export function getDefaultProxySettings() {
6
+ throw new Error(errorMessage);
7
+ }
8
+ /**
9
+ * proxyPolicy is not supported in the browser and attempting
10
+ * to use it will raise an error.
11
+ */
12
+ export function proxyPolicy() {
13
+ throw new Error(errorMessage);
14
+ }
15
+ /**
16
+ * A function to reset the cached agents.
17
+ * proxyPolicy is not supported in the browser and attempting
18
+ * to use it will raise an error.
19
+ * @internal
20
+ */
21
+ export function resetCachedProxyAgents() {
22
+ throw new Error(errorMessage);
23
+ }
24
+ //# sourceMappingURL=proxyPolicy.common.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"proxyPolicy.common.js","sourceRoot":"","sources":["../../../src/policies/proxyPolicy.common.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,MAAM,CAAC,MAAM,eAAe,GAAG,aAAa,CAAC;AAC7C,MAAM,YAAY,GAAG,qDAAqD,CAAC;AAE3E,MAAM,UAAU,uBAAuB;IACrC,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;AAChC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW;IACzB,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;AAChC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB;IACpC,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;AAChC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nexport const proxyPolicyName = \"proxyPolicy\";\nconst errorMessage = \"proxyPolicy is not supported in browser environment\";\n\nexport function getDefaultProxySettings(): never {\n throw new Error(errorMessage);\n}\n\n/**\n * proxyPolicy is not supported in the browser and attempting\n * to use it will raise an error.\n */\nexport function proxyPolicy(): never {\n throw new Error(errorMessage);\n}\n\n/**\n * A function to reset the cached agents.\n * proxyPolicy is not supported in the browser and attempting\n * to use it will raise an error.\n * @internal\n */\nexport function resetCachedProxyAgents(): never {\n throw new Error(errorMessage);\n}\n"]}
@@ -1,15 +1,2 @@
1
- export declare const proxyPolicyName = "proxyPolicy";
2
- export declare function getDefaultProxySettings(): never;
3
- /**
4
- * proxyPolicy is not supported in the browser and attempting
5
- * to use it will raise an error.
6
- */
7
- export declare function proxyPolicy(): never;
8
- /**
9
- * A function to reset the cached agents.
10
- * proxyPolicy is not supported in the browser and attempting
11
- * to use it will raise an error.
12
- * @internal
13
- */
14
- export declare function resetCachedProxyAgents(): never;
1
+ export * from "./proxyPolicy.common.js";
15
2
  //# sourceMappingURL=proxyPolicy-browser.d.mts.map
@@ -1,27 +1,4 @@
1
1
  // Copyright (c) Microsoft Corporation.
2
2
  // Licensed under the MIT license.
3
- /*
4
- * NOTE: When moving this file, please update "browser" section in package.json
5
- */
6
- export const proxyPolicyName = "proxyPolicy";
7
- const errorMessage = "proxyPolicy is not supported in browser environment";
8
- export function getDefaultProxySettings() {
9
- throw new Error(errorMessage);
10
- }
11
- /**
12
- * proxyPolicy is not supported in the browser and attempting
13
- * to use it will raise an error.
14
- */
15
- export function proxyPolicy() {
16
- throw new Error(errorMessage);
17
- }
18
- /**
19
- * A function to reset the cached agents.
20
- * proxyPolicy is not supported in the browser and attempting
21
- * to use it will raise an error.
22
- * @internal
23
- */
24
- export function resetCachedProxyAgents() {
25
- throw new Error(errorMessage);
26
- }
3
+ export * from "./proxyPolicy.common.js";
27
4
  //# sourceMappingURL=proxyPolicy-browser.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"tracingPolicy.d.ts","sourceRoot":"","sources":["../../../src/policies/tracingPolicy.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAOhD;;GAEG;AACH,eAAO,MAAM,iBAAiB,kBAAkB,CAAC;AAEjD;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;OAGG;IACH,gCAAgC,CAAC,EAAE,MAAM,EAAE,CAAC;CAC7C;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,OAAO,GAAE,oBAAyB,GAAG,cAAc,CAwChF"}
1
+ {"version":3,"file":"tracingPolicy.d.ts","sourceRoot":"","sources":["../../../src/policies/tracingPolicy.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAOhD;;GAEG;AACH,eAAO,MAAM,iBAAiB,kBAAkB,CAAC;AAEjD;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;OAGG;IACH,gCAAgC,CAAC,EAAE,MAAM,EAAE,CAAC;CAC7C;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,OAAO,GAAE,oBAAyB,GAAG,cAAc,CA0ChF"}
@@ -18,7 +18,7 @@ export const tracingPolicyName = "tracingPolicy";
18
18
  * @param options - Options to configure the telemetry logged by the tracing policy.
19
19
  */
20
20
  export function tracingPolicy(options = {}) {
21
- const userAgent = getUserAgentValue(options.userAgentPrefix);
21
+ const userAgentValue = getUserAgentValue(options.userAgentPrefix);
22
22
  const sanitizer = new Sanitizer({
23
23
  additionalAllowedQueryParameters: options.additionalAllowedQueryParameters,
24
24
  });
@@ -30,6 +30,7 @@ export function tracingPolicy(options = {}) {
30
30
  if (!tracingClient || !((_a = request.tracingOptions) === null || _a === void 0 ? void 0 : _a.tracingContext)) {
31
31
  return next(request);
32
32
  }
33
+ const userAgent = await userAgentValue;
33
34
  const spanAttributes = {
34
35
  "http.url": sanitizer.sanitizeUrl(request.url),
35
36
  "http.method": request.method,
@@ -1 +1 @@
1
- {"version":3,"file":"tracingPolicy.js","sourceRoot":"","sources":["../../../src/policies/tracingPolicy.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { TracingClient, TracingContext, TracingSpan } from \"../tracing/interfaces.js\";\nimport { createTracingClient } from \"../tracing/tracingClient.js\";\nimport { SDK_VERSION } from \"../constants.js\";\nimport { PipelineRequest, PipelineResponse, SendRequest } from \"../interfaces.js\";\nimport { PipelinePolicy } from \"../pipeline.js\";\nimport { getUserAgentValue } from \"../util/userAgent.js\";\nimport { logger } from \"../log.js\";\nimport { getErrorMessage, isError } from \"../util/error.js\";\nimport { isRestError } from \"../restError.js\";\nimport { Sanitizer } from \"../util/sanitizer.js\";\n\n/**\n * The programmatic identifier of the tracingPolicy.\n */\nexport const tracingPolicyName = \"tracingPolicy\";\n\n/**\n * Options to configure the tracing policy.\n */\nexport interface TracingPolicyOptions {\n /**\n * String prefix to add to the user agent logged as metadata\n * on the generated Span.\n * Defaults to an empty string.\n */\n userAgentPrefix?: string;\n /**\n * Query string names whose values will be logged when logging is enabled. By default no\n * query string values are logged.\n */\n additionalAllowedQueryParameters?: string[];\n}\n\n/**\n * A simple policy to create OpenTelemetry Spans for each request made by the pipeline\n * that has SpanOptions with a parent.\n * Requests made without a parent Span will not be recorded.\n * @param options - Options to configure the telemetry logged by the tracing policy.\n */\nexport function tracingPolicy(options: TracingPolicyOptions = {}): PipelinePolicy {\n const userAgent = getUserAgentValue(options.userAgentPrefix);\n const sanitizer = new Sanitizer({\n additionalAllowedQueryParameters: options.additionalAllowedQueryParameters,\n });\n const tracingClient = tryCreateTracingClient();\n\n return {\n name: tracingPolicyName,\n async sendRequest(request: PipelineRequest, next: SendRequest): Promise<PipelineResponse> {\n if (!tracingClient || !request.tracingOptions?.tracingContext) {\n return next(request);\n }\n\n const spanAttributes = {\n \"http.url\": sanitizer.sanitizeUrl(request.url),\n \"http.method\": request.method,\n \"http.user_agent\": userAgent,\n requestId: request.requestId,\n };\n if (userAgent) {\n spanAttributes[\"http.user_agent\"] = userAgent;\n }\n\n const { span, tracingContext } = tryCreateSpan(tracingClient, request, spanAttributes) ?? {};\n\n if (!span || !tracingContext) {\n return next(request);\n }\n\n try {\n const response = await tracingClient.withContext(tracingContext, next, request);\n tryProcessResponse(span, response);\n return response;\n } catch (err: any) {\n tryProcessError(span, err);\n throw err;\n }\n },\n };\n}\n\nfunction tryCreateTracingClient(): TracingClient | undefined {\n try {\n return createTracingClient({\n namespace: \"\",\n packageName: \"@typespec/ts-http-runtime\",\n packageVersion: SDK_VERSION,\n });\n } catch (e: unknown) {\n logger.warning(`Error when creating the TracingClient: ${getErrorMessage(e)}`);\n return undefined;\n }\n}\n\nfunction tryCreateSpan(\n tracingClient: TracingClient,\n request: PipelineRequest,\n spanAttributes: Record<string, unknown>,\n): { span: TracingSpan; tracingContext: TracingContext } | undefined {\n try {\n // As per spec, we do not need to differentiate between HTTP and HTTPS in span name.\n const { span, updatedOptions } = tracingClient.startSpan(\n `HTTP ${request.method}`,\n { tracingOptions: request.tracingOptions },\n {\n spanKind: \"client\",\n spanAttributes,\n },\n );\n\n // If the span is not recording, don't do any more work.\n if (!span.isRecording()) {\n span.end();\n return undefined;\n }\n\n // set headers\n const headers = tracingClient.createRequestHeaders(\n updatedOptions.tracingOptions.tracingContext,\n );\n for (const [key, value] of Object.entries(headers)) {\n request.headers.set(key, value);\n }\n return { span, tracingContext: updatedOptions.tracingOptions.tracingContext };\n } catch (e: any) {\n logger.warning(`Skipping creating a tracing span due to an error: ${getErrorMessage(e)}`);\n return undefined;\n }\n}\n\nfunction tryProcessError(span: TracingSpan, error: unknown): void {\n try {\n span.setStatus({\n status: \"error\",\n error: isError(error) ? error : undefined,\n });\n if (isRestError(error) && error.statusCode) {\n span.setAttribute(\"http.status_code\", error.statusCode);\n }\n span.end();\n } catch (e: any) {\n logger.warning(`Skipping tracing span processing due to an error: ${getErrorMessage(e)}`);\n }\n}\n\nfunction tryProcessResponse(span: TracingSpan, response: PipelineResponse): void {\n try {\n span.setAttribute(\"http.status_code\", response.status);\n const serviceRequestId = response.headers.get(\"x-ms-request-id\");\n if (serviceRequestId) {\n span.setAttribute(\"serviceRequestId\", serviceRequestId);\n }\n span.setStatus({\n status: \"success\",\n });\n span.end();\n } catch (e: any) {\n logger.warning(`Skipping tracing span processing due to an error: ${getErrorMessage(e)}`);\n }\n}\n"]}
1
+ {"version":3,"file":"tracingPolicy.js","sourceRoot":"","sources":["../../../src/policies/tracingPolicy.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { TracingClient, TracingContext, TracingSpan } from \"../tracing/interfaces.js\";\nimport { createTracingClient } from \"../tracing/tracingClient.js\";\nimport { SDK_VERSION } from \"../constants.js\";\nimport { PipelineRequest, PipelineResponse, SendRequest } from \"../interfaces.js\";\nimport { PipelinePolicy } from \"../pipeline.js\";\nimport { getUserAgentValue } from \"../util/userAgent.js\";\nimport { logger } from \"../log.js\";\nimport { getErrorMessage, isError } from \"../util/error.js\";\nimport { isRestError } from \"../restError.js\";\nimport { Sanitizer } from \"../util/sanitizer.js\";\n\n/**\n * The programmatic identifier of the tracingPolicy.\n */\nexport const tracingPolicyName = \"tracingPolicy\";\n\n/**\n * Options to configure the tracing policy.\n */\nexport interface TracingPolicyOptions {\n /**\n * String prefix to add to the user agent logged as metadata\n * on the generated Span.\n * Defaults to an empty string.\n */\n userAgentPrefix?: string;\n /**\n * Query string names whose values will be logged when logging is enabled. By default no\n * query string values are logged.\n */\n additionalAllowedQueryParameters?: string[];\n}\n\n/**\n * A simple policy to create OpenTelemetry Spans for each request made by the pipeline\n * that has SpanOptions with a parent.\n * Requests made without a parent Span will not be recorded.\n * @param options - Options to configure the telemetry logged by the tracing policy.\n */\nexport function tracingPolicy(options: TracingPolicyOptions = {}): PipelinePolicy {\n const userAgentValue = getUserAgentValue(options.userAgentPrefix);\n const sanitizer = new Sanitizer({\n additionalAllowedQueryParameters: options.additionalAllowedQueryParameters,\n });\n const tracingClient = tryCreateTracingClient();\n\n return {\n name: tracingPolicyName,\n async sendRequest(request: PipelineRequest, next: SendRequest): Promise<PipelineResponse> {\n if (!tracingClient || !request.tracingOptions?.tracingContext) {\n return next(request);\n }\n\n const userAgent = await userAgentValue;\n\n const spanAttributes = {\n \"http.url\": sanitizer.sanitizeUrl(request.url),\n \"http.method\": request.method,\n \"http.user_agent\": userAgent,\n requestId: request.requestId,\n };\n if (userAgent) {\n spanAttributes[\"http.user_agent\"] = userAgent;\n }\n\n const { span, tracingContext } = tryCreateSpan(tracingClient, request, spanAttributes) ?? {};\n\n if (!span || !tracingContext) {\n return next(request);\n }\n\n try {\n const response = await tracingClient.withContext(tracingContext, next, request);\n tryProcessResponse(span, response);\n return response;\n } catch (err: any) {\n tryProcessError(span, err);\n throw err;\n }\n },\n };\n}\n\nfunction tryCreateTracingClient(): TracingClient | undefined {\n try {\n return createTracingClient({\n namespace: \"\",\n packageName: \"@typespec/ts-http-runtime\",\n packageVersion: SDK_VERSION,\n });\n } catch (e: unknown) {\n logger.warning(`Error when creating the TracingClient: ${getErrorMessage(e)}`);\n return undefined;\n }\n}\n\nfunction tryCreateSpan(\n tracingClient: TracingClient,\n request: PipelineRequest,\n spanAttributes: Record<string, unknown>,\n): { span: TracingSpan; tracingContext: TracingContext } | undefined {\n try {\n // As per spec, we do not need to differentiate between HTTP and HTTPS in span name.\n const { span, updatedOptions } = tracingClient.startSpan(\n `HTTP ${request.method}`,\n { tracingOptions: request.tracingOptions },\n {\n spanKind: \"client\",\n spanAttributes,\n },\n );\n\n // If the span is not recording, don't do any more work.\n if (!span.isRecording()) {\n span.end();\n return undefined;\n }\n\n // set headers\n const headers = tracingClient.createRequestHeaders(\n updatedOptions.tracingOptions.tracingContext,\n );\n for (const [key, value] of Object.entries(headers)) {\n request.headers.set(key, value);\n }\n return { span, tracingContext: updatedOptions.tracingOptions.tracingContext };\n } catch (e: any) {\n logger.warning(`Skipping creating a tracing span due to an error: ${getErrorMessage(e)}`);\n return undefined;\n }\n}\n\nfunction tryProcessError(span: TracingSpan, error: unknown): void {\n try {\n span.setStatus({\n status: \"error\",\n error: isError(error) ? error : undefined,\n });\n if (isRestError(error) && error.statusCode) {\n span.setAttribute(\"http.status_code\", error.statusCode);\n }\n span.end();\n } catch (e: any) {\n logger.warning(`Skipping tracing span processing due to an error: ${getErrorMessage(e)}`);\n }\n}\n\nfunction tryProcessResponse(span: TracingSpan, response: PipelineResponse): void {\n try {\n span.setAttribute(\"http.status_code\", response.status);\n const serviceRequestId = response.headers.get(\"x-ms-request-id\");\n if (serviceRequestId) {\n span.setAttribute(\"serviceRequestId\", serviceRequestId);\n }\n span.setStatus({\n status: \"success\",\n });\n span.end();\n } catch (e: any) {\n logger.warning(`Skipping tracing span processing due to an error: ${getErrorMessage(e)}`);\n }\n}\n"]}
@@ -17,7 +17,7 @@ export function userAgentPolicy(options = {}) {
17
17
  name: userAgentPolicyName,
18
18
  async sendRequest(request, next) {
19
19
  if (!request.headers.has(UserAgentHeaderName)) {
20
- request.headers.set(UserAgentHeaderName, userAgentValue);
20
+ request.headers.set(UserAgentHeaderName, await userAgentValue);
21
21
  }
22
22
  return next(request);
23
23
  },
@@ -1 +1 @@
1
- {"version":3,"file":"userAgentPolicy.js","sourceRoot":"","sources":["../../../src/policies/userAgentPolicy.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAIlC,OAAO,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEjF,MAAM,mBAAmB,GAAG,sBAAsB,EAAE,CAAC;AAErD;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,iBAAiB,CAAC;AAarD;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,UAAkC,EAAE;IAClE,MAAM,cAAc,GAAG,iBAAiB,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;IAClE,OAAO;QACL,IAAI,EAAE,mBAAmB;QACzB,KAAK,CAAC,WAAW,CAAC,OAAwB,EAAE,IAAiB;YAC3D,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAAE,CAAC;gBAC9C,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,cAAc,CAAC,CAAC;YAC3D,CAAC;YACD,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC;QACvB,CAAC;KACF,CAAC;AACJ,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { PipelineRequest, PipelineResponse, SendRequest } from \"../interfaces.js\";\nimport { PipelinePolicy } from \"../pipeline.js\";\nimport { getUserAgentHeaderName, getUserAgentValue } from \"../util/userAgent.js\";\n\nconst UserAgentHeaderName = getUserAgentHeaderName();\n\n/**\n * The programmatic identifier of the userAgentPolicy.\n */\nexport const userAgentPolicyName = \"userAgentPolicy\";\n\n/**\n * Options for adding user agent details to outgoing requests.\n */\nexport interface UserAgentPolicyOptions {\n /**\n * String prefix to add to the user agent for outgoing requests.\n * Defaults to an empty string.\n */\n userAgentPrefix?: string;\n}\n\n/**\n * A policy that sets the User-Agent header (or equivalent) to reflect\n * the library version.\n * @param options - Options to customize the user agent value.\n */\nexport function userAgentPolicy(options: UserAgentPolicyOptions = {}): PipelinePolicy {\n const userAgentValue = getUserAgentValue(options.userAgentPrefix);\n return {\n name: userAgentPolicyName,\n async sendRequest(request: PipelineRequest, next: SendRequest): Promise<PipelineResponse> {\n if (!request.headers.has(UserAgentHeaderName)) {\n request.headers.set(UserAgentHeaderName, userAgentValue);\n }\n return next(request);\n },\n };\n}\n"]}
1
+ {"version":3,"file":"userAgentPolicy.js","sourceRoot":"","sources":["../../../src/policies/userAgentPolicy.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAIlC,OAAO,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEjF,MAAM,mBAAmB,GAAG,sBAAsB,EAAE,CAAC;AAErD;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,iBAAiB,CAAC;AAarD;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,UAAkC,EAAE;IAClE,MAAM,cAAc,GAAG,iBAAiB,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;IAClE,OAAO;QACL,IAAI,EAAE,mBAAmB;QACzB,KAAK,CAAC,WAAW,CAAC,OAAwB,EAAE,IAAiB;YAC3D,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAAE,CAAC;gBAC9C,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,MAAM,cAAc,CAAC,CAAC;YACjE,CAAC;YACD,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC;QACvB,CAAC;KACF,CAAC;AACJ,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { PipelineRequest, PipelineResponse, SendRequest } from \"../interfaces.js\";\nimport { PipelinePolicy } from \"../pipeline.js\";\nimport { getUserAgentHeaderName, getUserAgentValue } from \"../util/userAgent.js\";\n\nconst UserAgentHeaderName = getUserAgentHeaderName();\n\n/**\n * The programmatic identifier of the userAgentPolicy.\n */\nexport const userAgentPolicyName = \"userAgentPolicy\";\n\n/**\n * Options for adding user agent details to outgoing requests.\n */\nexport interface UserAgentPolicyOptions {\n /**\n * String prefix to add to the user agent for outgoing requests.\n * Defaults to an empty string.\n */\n userAgentPrefix?: string;\n}\n\n/**\n * A policy that sets the User-Agent header (or equivalent) to reflect\n * the library version.\n * @param options - Options to customize the user agent value.\n */\nexport function userAgentPolicy(options: UserAgentPolicyOptions = {}): PipelinePolicy {\n const userAgentValue = getUserAgentValue(options.userAgentPrefix);\n return {\n name: userAgentPolicyName,\n async sendRequest(request: PipelineRequest, next: SendRequest): Promise<PipelineResponse> {\n if (!request.headers.has(UserAgentHeaderName)) {\n request.headers.set(UserAgentHeaderName, await userAgentValue);\n }\n return next(request);\n },\n };\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"bytesEncoding-browser.d.mts","sourceRoot":"","sources":["../../../src/util/bytesEncoding-browser.mts"],"names":[],"mappings":"AAGA,OAAO,CAAC,MAAM,CAAC;IAEb,SAAS,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACrC,SAAS,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;CACtC;AAED,4CAA4C;AAC5C,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,QAAQ,GAAG,WAAW,GAAG,KAAK,CAAC;AAEpE;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,GAAG,MAAM,CAWlF;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,GAAG,UAAU,CAWlF;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAE5D;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAE/D;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAIhE;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAE/D;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,CAEhE;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,CAE5D;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,CAG/D;AAID;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,CAe/D"}
1
+ {"version":3,"file":"bytesEncoding-browser.d.mts","sourceRoot":"","sources":["../../../src/util/bytesEncoding-browser.mts"],"names":[],"mappings":"AAGA,cAAc,2BAA2B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"bytesEncoding-browser.mjs","sourceRoot":"","sources":["../../../src/util/bytesEncoding-browser.mts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\ndeclare global {\n // stub these out for the browser\n function btoa(input: string): string;\n function atob(input: string): string;\n}\n\n/** The supported character encoding type */\nexport type EncodingType = \"utf-8\" | \"base64\" | \"base64url\" | \"hex\";\n\n/**\n * The helper that transforms bytes with specific character encoding into string\n * @param bytes - the uint8array bytes\n * @param format - the format we use to encode the byte\n * @returns a string of the encoded string\n */\nexport function uint8ArrayToString(bytes: Uint8Array, format: EncodingType): string {\n switch (format) {\n case \"utf-8\":\n return uint8ArrayToUtf8String(bytes);\n case \"base64\":\n return uint8ArrayToBase64(bytes);\n case \"base64url\":\n return uint8ArrayToBase64Url(bytes);\n case \"hex\":\n return uint8ArrayToHexString(bytes);\n }\n}\n\n/**\n * The helper that transforms string to specific character encoded bytes array.\n * @param value - the string to be converted\n * @param format - the format we use to decode the value\n * @returns a uint8array\n */\nexport function stringToUint8Array(value: string, format: EncodingType): Uint8Array {\n switch (format) {\n case \"utf-8\":\n return utf8StringToUint8Array(value);\n case \"base64\":\n return base64ToUint8Array(value);\n case \"base64url\":\n return base64UrlToUint8Array(value);\n case \"hex\":\n return hexStringToUint8Array(value);\n }\n}\n\n/**\n * Decodes a Uint8Array into a Base64 string.\n * @internal\n */\nexport function uint8ArrayToBase64(bytes: Uint8Array): string {\n return btoa([...bytes].map((x) => String.fromCharCode(x)).join(\"\"));\n}\n\n/**\n * Decodes a Uint8Array into a Base64Url string.\n * @internal\n */\nexport function uint8ArrayToBase64Url(bytes: Uint8Array): string {\n return uint8ArrayToBase64(bytes).replace(/\\+/g, \"-\").replace(/\\//g, \"_\").replace(/=/g, \"\");\n}\n\n/**\n * Decodes a Uint8Array into a javascript string.\n * @internal\n */\nexport function uint8ArrayToUtf8String(bytes: Uint8Array): string {\n const decoder = new TextDecoder();\n const dataString = decoder.decode(bytes);\n return dataString;\n}\n\n/**\n * Decodes a Uint8Array into a hex string\n * @internal\n */\nexport function uint8ArrayToHexString(bytes: Uint8Array): string {\n return [...bytes].map((x) => x.toString(16).padStart(2, \"0\")).join(\"\");\n}\n\n/**\n * Encodes a JavaScript string into a Uint8Array.\n * @internal\n */\nexport function utf8StringToUint8Array(value: string): Uint8Array {\n return new TextEncoder().encode(value);\n}\n\n/**\n * Encodes a Base64 string into a Uint8Array.\n * @internal\n */\nexport function base64ToUint8Array(value: string): Uint8Array {\n return new Uint8Array([...atob(value)].map((x) => x.charCodeAt(0)));\n}\n\n/**\n * Encodes a Base64Url string into a Uint8Array.\n * @internal\n */\nexport function base64UrlToUint8Array(value: string): Uint8Array {\n const base64String = value.replace(/-/g, \"+\").replace(/_/g, \"/\");\n return base64ToUint8Array(base64String);\n}\n\nconst hexDigits = new Set(\"0123456789abcdefABCDEF\");\n\n/**\n * Encodes a hex string into a Uint8Array\n * @internal\n */\nexport function hexStringToUint8Array(value: string): Uint8Array {\n // If value has odd length, the last character will be ignored, consistent with NodeJS Buffer behavior\n const bytes = new Uint8Array(value.length / 2);\n for (let i = 0; i < value.length / 2; ++i) {\n const highNibble = value[2 * i];\n const lowNibble = value[2 * i + 1];\n if (!hexDigits.has(highNibble) || !hexDigits.has(lowNibble)) {\n // Replicate Node Buffer behavior by exiting early when we encounter an invalid byte\n return bytes.slice(0, i);\n }\n\n bytes[i] = parseInt(`${highNibble}${lowNibble}`, 16);\n }\n\n return bytes;\n}\n"]}
1
+ {"version":3,"file":"bytesEncoding-browser.mjs","sourceRoot":"","sources":["../../../src/util/bytesEncoding-browser.mts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,cAAc,2BAA2B,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nexport * from \"./bytesEncoding.common.js\";\n"]}
@@ -0,0 +1,61 @@
1
+ declare global {
2
+ function btoa(input: string): string;
3
+ function atob(input: string): string;
4
+ }
5
+ /** The supported character encoding type */
6
+ export type EncodingType = "utf-8" | "base64" | "base64url" | "hex";
7
+ /**
8
+ * The helper that transforms bytes with specific character encoding into string
9
+ * @param bytes - the uint8array bytes
10
+ * @param format - the format we use to encode the byte
11
+ * @returns a string of the encoded string
12
+ */
13
+ export declare function uint8ArrayToString(bytes: Uint8Array, format: EncodingType): string;
14
+ /**
15
+ * The helper that transforms string to specific character encoded bytes array.
16
+ * @param value - the string to be converted
17
+ * @param format - the format we use to decode the value
18
+ * @returns a uint8array
19
+ */
20
+ export declare function stringToUint8Array(value: string, format: EncodingType): Uint8Array;
21
+ /**
22
+ * Decodes a Uint8Array into a Base64 string.
23
+ * @internal
24
+ */
25
+ export declare function uint8ArrayToBase64(bytes: Uint8Array): string;
26
+ /**
27
+ * Decodes a Uint8Array into a Base64Url string.
28
+ * @internal
29
+ */
30
+ export declare function uint8ArrayToBase64Url(bytes: Uint8Array): string;
31
+ /**
32
+ * Decodes a Uint8Array into a javascript string.
33
+ * @internal
34
+ */
35
+ export declare function uint8ArrayToUtf8String(bytes: Uint8Array): string;
36
+ /**
37
+ * Decodes a Uint8Array into a hex string
38
+ * @internal
39
+ */
40
+ export declare function uint8ArrayToHexString(bytes: Uint8Array): string;
41
+ /**
42
+ * Encodes a JavaScript string into a Uint8Array.
43
+ * @internal
44
+ */
45
+ export declare function utf8StringToUint8Array(value: string): Uint8Array;
46
+ /**
47
+ * Encodes a Base64 string into a Uint8Array.
48
+ * @internal
49
+ */
50
+ export declare function base64ToUint8Array(value: string): Uint8Array;
51
+ /**
52
+ * Encodes a Base64Url string into a Uint8Array.
53
+ * @internal
54
+ */
55
+ export declare function base64UrlToUint8Array(value: string): Uint8Array;
56
+ /**
57
+ * Encodes a hex string into a Uint8Array
58
+ * @internal
59
+ */
60
+ export declare function hexStringToUint8Array(value: string): Uint8Array;
61
+ //# sourceMappingURL=bytesEncoding.common.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bytesEncoding.common.d.ts","sourceRoot":"","sources":["../../../src/util/bytesEncoding.common.ts"],"names":[],"mappings":"AAGA,OAAO,CAAC,MAAM,CAAC;IAEb,SAAS,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACrC,SAAS,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;CACtC;AAED,4CAA4C;AAC5C,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,QAAQ,GAAG,WAAW,GAAG,KAAK,CAAC;AAEpE;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,GAAG,MAAM,CAWlF;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,GAAG,UAAU,CAWlF;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAE5D;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAE/D;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAIhE;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAE/D;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,CAEhE;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,CAE5D;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,CAG/D;AAID;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,CAe/D"}
@@ -0,0 +1,110 @@
1
+ // Copyright (c) Microsoft Corporation.
2
+ // Licensed under the MIT license.
3
+ /**
4
+ * The helper that transforms bytes with specific character encoding into string
5
+ * @param bytes - the uint8array bytes
6
+ * @param format - the format we use to encode the byte
7
+ * @returns a string of the encoded string
8
+ */
9
+ export function uint8ArrayToString(bytes, format) {
10
+ switch (format) {
11
+ case "utf-8":
12
+ return uint8ArrayToUtf8String(bytes);
13
+ case "base64":
14
+ return uint8ArrayToBase64(bytes);
15
+ case "base64url":
16
+ return uint8ArrayToBase64Url(bytes);
17
+ case "hex":
18
+ return uint8ArrayToHexString(bytes);
19
+ }
20
+ }
21
+ /**
22
+ * The helper that transforms string to specific character encoded bytes array.
23
+ * @param value - the string to be converted
24
+ * @param format - the format we use to decode the value
25
+ * @returns a uint8array
26
+ */
27
+ export function stringToUint8Array(value, format) {
28
+ switch (format) {
29
+ case "utf-8":
30
+ return utf8StringToUint8Array(value);
31
+ case "base64":
32
+ return base64ToUint8Array(value);
33
+ case "base64url":
34
+ return base64UrlToUint8Array(value);
35
+ case "hex":
36
+ return hexStringToUint8Array(value);
37
+ }
38
+ }
39
+ /**
40
+ * Decodes a Uint8Array into a Base64 string.
41
+ * @internal
42
+ */
43
+ export function uint8ArrayToBase64(bytes) {
44
+ return btoa([...bytes].map((x) => String.fromCharCode(x)).join(""));
45
+ }
46
+ /**
47
+ * Decodes a Uint8Array into a Base64Url string.
48
+ * @internal
49
+ */
50
+ export function uint8ArrayToBase64Url(bytes) {
51
+ return uint8ArrayToBase64(bytes).replace(/\+/g, "-").replace(/\//g, "_").replace(/=/g, "");
52
+ }
53
+ /**
54
+ * Decodes a Uint8Array into a javascript string.
55
+ * @internal
56
+ */
57
+ export function uint8ArrayToUtf8String(bytes) {
58
+ const decoder = new TextDecoder();
59
+ const dataString = decoder.decode(bytes);
60
+ return dataString;
61
+ }
62
+ /**
63
+ * Decodes a Uint8Array into a hex string
64
+ * @internal
65
+ */
66
+ export function uint8ArrayToHexString(bytes) {
67
+ return [...bytes].map((x) => x.toString(16).padStart(2, "0")).join("");
68
+ }
69
+ /**
70
+ * Encodes a JavaScript string into a Uint8Array.
71
+ * @internal
72
+ */
73
+ export function utf8StringToUint8Array(value) {
74
+ return new TextEncoder().encode(value);
75
+ }
76
+ /**
77
+ * Encodes a Base64 string into a Uint8Array.
78
+ * @internal
79
+ */
80
+ export function base64ToUint8Array(value) {
81
+ return new Uint8Array([...atob(value)].map((x) => x.charCodeAt(0)));
82
+ }
83
+ /**
84
+ * Encodes a Base64Url string into a Uint8Array.
85
+ * @internal
86
+ */
87
+ export function base64UrlToUint8Array(value) {
88
+ const base64String = value.replace(/-/g, "+").replace(/_/g, "/");
89
+ return base64ToUint8Array(base64String);
90
+ }
91
+ const hexDigits = new Set("0123456789abcdefABCDEF");
92
+ /**
93
+ * Encodes a hex string into a Uint8Array
94
+ * @internal
95
+ */
96
+ export function hexStringToUint8Array(value) {
97
+ // If value has odd length, the last character will be ignored, consistent with NodeJS Buffer behavior
98
+ const bytes = new Uint8Array(value.length / 2);
99
+ for (let i = 0; i < value.length / 2; ++i) {
100
+ const highNibble = value[2 * i];
101
+ const lowNibble = value[2 * i + 1];
102
+ if (!hexDigits.has(highNibble) || !hexDigits.has(lowNibble)) {
103
+ // Replicate Node Buffer behavior by exiting early when we encounter an invalid byte
104
+ return bytes.slice(0, i);
105
+ }
106
+ bytes[i] = parseInt(`${highNibble}${lowNibble}`, 16);
107
+ }
108
+ return bytes;
109
+ }
110
+ //# sourceMappingURL=bytesEncoding.common.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bytesEncoding.common.js","sourceRoot":"","sources":["../../../src/util/bytesEncoding.common.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\ndeclare global {\n // stub these out for the browser\n function btoa(input: string): string;\n function atob(input: string): string;\n}\n\n/** The supported character encoding type */\nexport type EncodingType = \"utf-8\" | \"base64\" | \"base64url\" | \"hex\";\n\n/**\n * The helper that transforms bytes with specific character encoding into string\n * @param bytes - the uint8array bytes\n * @param format - the format we use to encode the byte\n * @returns a string of the encoded string\n */\nexport function uint8ArrayToString(bytes: Uint8Array, format: EncodingType): string {\n switch (format) {\n case \"utf-8\":\n return uint8ArrayToUtf8String(bytes);\n case \"base64\":\n return uint8ArrayToBase64(bytes);\n case \"base64url\":\n return uint8ArrayToBase64Url(bytes);\n case \"hex\":\n return uint8ArrayToHexString(bytes);\n }\n}\n\n/**\n * The helper that transforms string to specific character encoded bytes array.\n * @param value - the string to be converted\n * @param format - the format we use to decode the value\n * @returns a uint8array\n */\nexport function stringToUint8Array(value: string, format: EncodingType): Uint8Array {\n switch (format) {\n case \"utf-8\":\n return utf8StringToUint8Array(value);\n case \"base64\":\n return base64ToUint8Array(value);\n case \"base64url\":\n return base64UrlToUint8Array(value);\n case \"hex\":\n return hexStringToUint8Array(value);\n }\n}\n\n/**\n * Decodes a Uint8Array into a Base64 string.\n * @internal\n */\nexport function uint8ArrayToBase64(bytes: Uint8Array): string {\n return btoa([...bytes].map((x) => String.fromCharCode(x)).join(\"\"));\n}\n\n/**\n * Decodes a Uint8Array into a Base64Url string.\n * @internal\n */\nexport function uint8ArrayToBase64Url(bytes: Uint8Array): string {\n return uint8ArrayToBase64(bytes).replace(/\\+/g, \"-\").replace(/\\//g, \"_\").replace(/=/g, \"\");\n}\n\n/**\n * Decodes a Uint8Array into a javascript string.\n * @internal\n */\nexport function uint8ArrayToUtf8String(bytes: Uint8Array): string {\n const decoder = new TextDecoder();\n const dataString = decoder.decode(bytes);\n return dataString;\n}\n\n/**\n * Decodes a Uint8Array into a hex string\n * @internal\n */\nexport function uint8ArrayToHexString(bytes: Uint8Array): string {\n return [...bytes].map((x) => x.toString(16).padStart(2, \"0\")).join(\"\");\n}\n\n/**\n * Encodes a JavaScript string into a Uint8Array.\n * @internal\n */\nexport function utf8StringToUint8Array(value: string): Uint8Array {\n return new TextEncoder().encode(value);\n}\n\n/**\n * Encodes a Base64 string into a Uint8Array.\n * @internal\n */\nexport function base64ToUint8Array(value: string): Uint8Array {\n return new Uint8Array([...atob(value)].map((x) => x.charCodeAt(0)));\n}\n\n/**\n * Encodes a Base64Url string into a Uint8Array.\n * @internal\n */\nexport function base64UrlToUint8Array(value: string): Uint8Array {\n const base64String = value.replace(/-/g, \"+\").replace(/_/g, \"/\");\n return base64ToUint8Array(base64String);\n}\n\nconst hexDigits = new Set(\"0123456789abcdefABCDEF\");\n\n/**\n * Encodes a hex string into a Uint8Array\n * @internal\n */\nexport function hexStringToUint8Array(value: string): Uint8Array {\n // If value has odd length, the last character will be ignored, consistent with NodeJS Buffer behavior\n const bytes = new Uint8Array(value.length / 2);\n for (let i = 0; i < value.length / 2; ++i) {\n const highNibble = value[2 * i];\n const lowNibble = value[2 * i + 1];\n if (!hexDigits.has(highNibble) || !hexDigits.has(lowNibble)) {\n // Replicate Node Buffer behavior by exiting early when we encounter an invalid byte\n return bytes.slice(0, i);\n }\n\n bytes[i] = parseInt(`${highNibble}${lowNibble}`, 16);\n }\n\n return bytes;\n}\n"]}
@@ -1,61 +1,2 @@
1
- declare global {
2
- function btoa(input: string): string;
3
- function atob(input: string): string;
4
- }
5
- /** The supported character encoding type */
6
- export type EncodingType = "utf-8" | "base64" | "base64url" | "hex";
7
- /**
8
- * The helper that transforms bytes with specific character encoding into string
9
- * @param bytes - the uint8array bytes
10
- * @param format - the format we use to encode the byte
11
- * @returns a string of the encoded string
12
- */
13
- export declare function uint8ArrayToString(bytes: Uint8Array, format: EncodingType): string;
14
- /**
15
- * The helper that transforms string to specific character encoded bytes array.
16
- * @param value - the string to be converted
17
- * @param format - the format we use to decode the value
18
- * @returns a uint8array
19
- */
20
- export declare function stringToUint8Array(value: string, format: EncodingType): Uint8Array;
21
- /**
22
- * Decodes a Uint8Array into a Base64 string.
23
- * @internal
24
- */
25
- export declare function uint8ArrayToBase64(bytes: Uint8Array): string;
26
- /**
27
- * Decodes a Uint8Array into a Base64Url string.
28
- * @internal
29
- */
30
- export declare function uint8ArrayToBase64Url(bytes: Uint8Array): string;
31
- /**
32
- * Decodes a Uint8Array into a javascript string.
33
- * @internal
34
- */
35
- export declare function uint8ArrayToUtf8String(bytes: Uint8Array): string;
36
- /**
37
- * Decodes a Uint8Array into a hex string
38
- * @internal
39
- */
40
- export declare function uint8ArrayToHexString(bytes: Uint8Array): string;
41
- /**
42
- * Encodes a JavaScript string into a Uint8Array.
43
- * @internal
44
- */
45
- export declare function utf8StringToUint8Array(value: string): Uint8Array;
46
- /**
47
- * Encodes a Base64 string into a Uint8Array.
48
- * @internal
49
- */
50
- export declare function base64ToUint8Array(value: string): Uint8Array;
51
- /**
52
- * Encodes a Base64Url string into a Uint8Array.
53
- * @internal
54
- */
55
- export declare function base64UrlToUint8Array(value: string): Uint8Array;
56
- /**
57
- * Encodes a hex string into a Uint8Array
58
- * @internal
59
- */
60
- export declare function hexStringToUint8Array(value: string): Uint8Array;
1
+ export * from "./bytesEncoding.common.js";
61
2
  //# sourceMappingURL=bytesEncoding-browser.d.mts.map
@@ -1,110 +1,4 @@
1
1
  // Copyright (c) Microsoft Corporation.
2
2
  // Licensed under the MIT license.
3
- /**
4
- * The helper that transforms bytes with specific character encoding into string
5
- * @param bytes - the uint8array bytes
6
- * @param format - the format we use to encode the byte
7
- * @returns a string of the encoded string
8
- */
9
- export function uint8ArrayToString(bytes, format) {
10
- switch (format) {
11
- case "utf-8":
12
- return uint8ArrayToUtf8String(bytes);
13
- case "base64":
14
- return uint8ArrayToBase64(bytes);
15
- case "base64url":
16
- return uint8ArrayToBase64Url(bytes);
17
- case "hex":
18
- return uint8ArrayToHexString(bytes);
19
- }
20
- }
21
- /**
22
- * The helper that transforms string to specific character encoded bytes array.
23
- * @param value - the string to be converted
24
- * @param format - the format we use to decode the value
25
- * @returns a uint8array
26
- */
27
- export function stringToUint8Array(value, format) {
28
- switch (format) {
29
- case "utf-8":
30
- return utf8StringToUint8Array(value);
31
- case "base64":
32
- return base64ToUint8Array(value);
33
- case "base64url":
34
- return base64UrlToUint8Array(value);
35
- case "hex":
36
- return hexStringToUint8Array(value);
37
- }
38
- }
39
- /**
40
- * Decodes a Uint8Array into a Base64 string.
41
- * @internal
42
- */
43
- export function uint8ArrayToBase64(bytes) {
44
- return btoa([...bytes].map((x) => String.fromCharCode(x)).join(""));
45
- }
46
- /**
47
- * Decodes a Uint8Array into a Base64Url string.
48
- * @internal
49
- */
50
- export function uint8ArrayToBase64Url(bytes) {
51
- return uint8ArrayToBase64(bytes).replace(/\+/g, "-").replace(/\//g, "_").replace(/=/g, "");
52
- }
53
- /**
54
- * Decodes a Uint8Array into a javascript string.
55
- * @internal
56
- */
57
- export function uint8ArrayToUtf8String(bytes) {
58
- const decoder = new TextDecoder();
59
- const dataString = decoder.decode(bytes);
60
- return dataString;
61
- }
62
- /**
63
- * Decodes a Uint8Array into a hex string
64
- * @internal
65
- */
66
- export function uint8ArrayToHexString(bytes) {
67
- return [...bytes].map((x) => x.toString(16).padStart(2, "0")).join("");
68
- }
69
- /**
70
- * Encodes a JavaScript string into a Uint8Array.
71
- * @internal
72
- */
73
- export function utf8StringToUint8Array(value) {
74
- return new TextEncoder().encode(value);
75
- }
76
- /**
77
- * Encodes a Base64 string into a Uint8Array.
78
- * @internal
79
- */
80
- export function base64ToUint8Array(value) {
81
- return new Uint8Array([...atob(value)].map((x) => x.charCodeAt(0)));
82
- }
83
- /**
84
- * Encodes a Base64Url string into a Uint8Array.
85
- * @internal
86
- */
87
- export function base64UrlToUint8Array(value) {
88
- const base64String = value.replace(/-/g, "+").replace(/_/g, "/");
89
- return base64ToUint8Array(base64String);
90
- }
91
- const hexDigits = new Set("0123456789abcdefABCDEF");
92
- /**
93
- * Encodes a hex string into a Uint8Array
94
- * @internal
95
- */
96
- export function hexStringToUint8Array(value) {
97
- // If value has odd length, the last character will be ignored, consistent with NodeJS Buffer behavior
98
- const bytes = new Uint8Array(value.length / 2);
99
- for (let i = 0; i < value.length / 2; ++i) {
100
- const highNibble = value[2 * i];
101
- const lowNibble = value[2 * i + 1];
102
- if (!hexDigits.has(highNibble) || !hexDigits.has(lowNibble)) {
103
- // Replicate Node Buffer behavior by exiting early when we encounter an invalid byte
104
- return bytes.slice(0, i);
105
- }
106
- bytes[i] = parseInt(`${highNibble}${lowNibble}`, 16);
107
- }
108
- return bytes;
109
- }
3
+ export * from "./bytesEncoding.common.js";
110
4
  //# sourceMappingURL=bytesEncoding-browser.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"concat-browser.d.mts","sourceRoot":"","sources":["../../../src/util/concat-browser.mts"],"names":[],"mappings":";AAwCA;;;;GAIG;AACH,KAAK,YAAY,GAAG,cAAc,CAAC,UAAU,CAAC,GAAG,IAAI,GAAG,UAAU,CAAC;AAEnE;;;;;;;;GAQG;AACH,wBAAsB,MAAM,CAC1B,OAAO,EAAE,CAAC,YAAY,GAAG,CAAC,MAAM,YAAY,CAAC,CAAC,EAAE,GAC/C,OAAO,CAAC,CAAC,MAAM,MAAM,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,CAO/C"}
1
+ {"version":3,"file":"concat-browser.d.mts","sourceRoot":"","sources":["../../../src/util/concat-browser.mts"],"names":[],"mappings":"AAGA,cAAc,oBAAoB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"concat-browser.mjs","sourceRoot":"","sources":["../../../src/util/concat-browser.mts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAE5E;;;GAGG;AACH,SAAS,KAAK,CAAC,MAAkC;IAC/C,OAAO,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;AACrC,CAAC;AAED,KAAK,UAAU,UAAU,CACvB,MAAsD;IAEtD,IAAI,MAAM,YAAY,IAAI,IAAI,MAAM,YAAY,UAAU,EAAE,CAAC;QAC3D,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAI,mBAAmB,CAAC,MAAM,CAAC,EAAE,CAAC;QAChC,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC;IACvB,CAAC;IAED,+EAA+E;IAC/E,oFAAoF;IACpF,uBAAuB;IACvB,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IAEzC,2CAA2C;IAC3C,IAAI,oBAAoB,CAAC,UAAU,CAAC,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CACb,iJAAiJ,CAClJ,CAAC;IACJ,CAAC;IAED,OAAO,UAAU,CAAC,UAAU,CAAC,CAAC;AAChC,CAAC;AASD;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,MAAM,CAC1B,OAAgD;IAEhD,MAAM,KAAK,GAAG,EAAE,CAAC;IACjB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,KAAK,CAAC,IAAI,CAAC,MAAM,UAAU,CAAC,OAAO,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IACjF,CAAC;IAED,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;AACzB,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { getRawContent } from \"./file.js\";\nimport { isNodeReadableStream, isWebReadableStream } from \"./typeGuards.js\";\n\n/**\n * Drain the content of the given ReadableStream into a Blob.\n * The blob's content may end up in memory or on disk dependent on size.\n */\nfunction drain(stream: ReadableStream<Uint8Array>): Promise<Blob> {\n return new Response(stream).blob();\n}\n\nasync function toBlobPart(\n source: ReadableStream<Uint8Array> | Blob | Uint8Array,\n): Promise<BlobPart> {\n if (source instanceof Blob || source instanceof Uint8Array) {\n return source;\n }\n\n if (isWebReadableStream(source)) {\n return drain(source);\n }\n\n // If it's not a true Blob, and it's not a Uint8Array, we can assume the source\n // is a fake File created by createFileFromStream and we can get the original stream\n // using getRawContent.\n const rawContent = getRawContent(source);\n\n // Shouldn't happen but guard for it anyway\n if (isNodeReadableStream(rawContent)) {\n throw new Error(\n \"Encountered unexpected type. In the browser, `concat` supports Web ReadableStream, Blob, Uint8Array, and files created using `createFile` only.\",\n );\n }\n\n return toBlobPart(rawContent);\n}\n\n/**\n * Accepted binary data types for concat\n *\n * @internal\n */\ntype ConcatSource = ReadableStream<Uint8Array> | Blob | Uint8Array;\n\n/**\n * Utility function that concatenates a set of binary inputs into one combined output.\n *\n * @param sources - array of sources for the concatenation\n * @returns - in Node, a (() =\\> NodeJS.ReadableStream) which, when read, produces a concatenation of all the inputs.\n * In browser, returns a `Blob` representing all the concatenated inputs.\n *\n * @internal\n */\nexport async function concat(\n sources: (ConcatSource | (() => ConcatSource))[],\n): Promise<(() => NodeJS.ReadableStream) | Blob> {\n const parts = [];\n for (const source of sources) {\n parts.push(await toBlobPart(typeof source === \"function\" ? source() : source));\n }\n\n return new Blob(parts);\n}\n"]}
1
+ {"version":3,"file":"concat-browser.mjs","sourceRoot":"","sources":["../../../src/util/concat-browser.mts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,cAAc,oBAAoB,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nexport * from \"./concat.common.js\";\n"]}
@@ -0,0 +1,19 @@
1
+ /// <reference types="node" resolution-mode="require"/>
2
+ /**
3
+ * Accepted binary data types for concat
4
+ *
5
+ * @internal
6
+ */
7
+ type ConcatSource = ReadableStream<Uint8Array> | Blob | Uint8Array;
8
+ /**
9
+ * Utility function that concatenates a set of binary inputs into one combined output.
10
+ *
11
+ * @param sources - array of sources for the concatenation
12
+ * @returns - in Node, a (() =\> NodeJS.ReadableStream) which, when read, produces a concatenation of all the inputs.
13
+ * In browser, returns a `Blob` representing all the concatenated inputs.
14
+ *
15
+ * @internal
16
+ */
17
+ export declare function concat(sources: (ConcatSource | (() => ConcatSource))[]): Promise<(() => NodeJS.ReadableStream) | Blob>;
18
+ export {};
19
+ //# sourceMappingURL=concat.common.d.ts.map