@azure/core-sse 2.1.3-alpha.20240809.2 → 2.1.3
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.
- package/dist/browser/utils.d.ts +5 -1
- package/dist/browser/utils.d.ts.map +1 -1
- package/dist/browser/utils.js +6 -1
- package/dist/browser/utils.js.map +1 -1
- package/dist/commonjs/utils.d.ts +5 -1
- package/dist/commonjs/utils.d.ts.map +1 -1
- package/dist/commonjs/utils.js +6 -1
- package/dist/commonjs/utils.js.map +1 -1
- package/dist/esm/utils.d.ts +5 -1
- package/dist/esm/utils.d.ts.map +1 -1
- package/dist/esm/utils.js +6 -1
- package/dist/esm/utils.js.map +1 -1
- package/dist/react-native/utils.d.ts +5 -1
- package/dist/react-native/utils.d.ts.map +1 -1
- package/dist/react-native/utils.js +6 -1
- package/dist/react-native/utils.js.map +1 -1
- package/package.json +18 -15
package/dist/browser/utils.d.ts
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
import type { IncomingMessage } from "node:http";
|
|
2
|
+
type Nullable<T, K extends keyof T> = {
|
|
3
|
+
[P in K]: T[P] | null;
|
|
4
|
+
} & Omit<T, K>;
|
|
2
5
|
export declare function createStream<T>(asyncIter: AsyncIterableIterator<T>, cancel: () => PromiseLike<void>): ReadableStream<T> & AsyncDisposable & AsyncIterable<T>;
|
|
3
|
-
export declare function ensureAsyncIterable(stream: IncomingMessage | ReadableStream<Uint8Array>): {
|
|
6
|
+
export declare function ensureAsyncIterable(stream: Nullable<IncomingMessage, "socket"> | ReadableStream<Uint8Array>): {
|
|
4
7
|
cancel(): Promise<void>;
|
|
5
8
|
iterable: AsyncIterable<Uint8Array>;
|
|
6
9
|
};
|
|
10
|
+
export {};
|
|
7
11
|
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAEjD,wBAAgB,YAAY,CAAC,CAAC,EAC5B,SAAS,EAAE,qBAAqB,CAAC,CAAC,CAAC,EACnC,MAAM,EAAE,MAAM,WAAW,CAAC,IAAI,CAAC,GAC9B,cAAc,CAAC,CAAC,CAAC,GAAG,eAAe,GAAG,aAAa,CAAC,CAAC,CAAC,CAIxD;AAkDD,wBAAgB,mBAAmB,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAEjD,KAAK,QAAQ,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,IAAI;KACnC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;CACtB,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAEf,wBAAgB,YAAY,CAAC,CAAC,EAC5B,SAAS,EAAE,qBAAqB,CAAC,CAAC,CAAC,EACnC,MAAM,EAAE,MAAM,WAAW,CAAC,IAAI,CAAC,GAC9B,cAAc,CAAC,CAAC,CAAC,GAAG,eAAe,GAAG,aAAa,CAAC,CAAC,CAAC,CAIxD;AAkDD,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,QAAQ,CAAC,eAAe,EAAE,QAAQ,CAAC,GAAG,cAAc,CAAC,UAAU,CAAC,GACvE;IACD,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACxB,QAAQ,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;CACrC,CAmBA"}
|
package/dist/browser/utils.js
CHANGED
|
@@ -51,7 +51,12 @@ export function ensureAsyncIterable(stream) {
|
|
|
51
51
|
else {
|
|
52
52
|
return {
|
|
53
53
|
cancel: async () => {
|
|
54
|
-
|
|
54
|
+
var _a;
|
|
55
|
+
/**
|
|
56
|
+
* socket is set to null when the stream has been consumed
|
|
57
|
+
* so we need to make sure to guard against nullability.
|
|
58
|
+
*/
|
|
59
|
+
(_a = stream.socket) === null || _a === void 0 ? void 0 : _a.end();
|
|
55
60
|
},
|
|
56
61
|
iterable: stream,
|
|
57
62
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;;
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;;AAQlC,MAAM,UAAU,YAAY,CAC1B,SAAmC,EACnC,MAA+B;IAE/B,MAAM,MAAM,GAAG,gBAAgB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IACnD,4EAA4E;IAC5E,OAAO,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AACxC,CAAC;AAED,SAAS,cAAc,CACrB,MAAyB,EACzB,OAAgC;IAEhC,iBAAiB,CAAI,MAAM,CAAC,CAAC;IAC7B,mBAAmB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,mBAAmB,CAC1B,SAAc,EACd,OAAgC;;IAEhC,MAAC,MAAM,CAAC,YAAoB,oCAA3B,MAAM,CAAC,YAAoB,GAAK,MAAM,CAAC,qBAAqB,CAAC,EAAC;IAC/D,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC;QACpC,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;IACnD,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB,CACxB,SAAc;IAEd,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;QACrC,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,GAAG,EAAE,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;IACrE,CAAC;IAED,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;QACtB,SAAS,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;IACtD,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CACvB,QAAkC,EAClC,MAA+B;IAE/B,OAAO,IAAI,cAAc,CAAC;QACxB,KAAK,CAAC,IAAI,CAAC,UAAU;YACnB,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YAC9C,IAAI,IAAI,EAAE,CAAC;gBACT,UAAU,CAAC,KAAK,EAAE,CAAC;YACrB,CAAC;iBAAM,CAAC;gBACN,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC5B,CAAC;QACH,CAAC;QACD,MAAM;KACP,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,MAAwE;IAKxE,IAAI,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC;QAC7B,iBAAiB,CAAa,MAAM,CAAC,CAAC;QACtC,OAAO;YACL,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE;YAC7B,QAAQ,EAAE,MAAM;SACjB,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,OAAO;YACL,MAAM,EAAE,KAAK,IAAI,EAAE;;gBACjB;;;mBAGG;gBACH,MAAA,MAAM,CAAC,MAAM,0CAAE,GAAG,EAAE,CAAC;YACvB,CAAC;YACD,QAAQ,EAAE,MAAmC;SAC9C,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAa;IACrC,OAAO,OAAO,CACZ,IAAI;QACF,OAAQ,IAAuB,CAAC,SAAS,KAAK,UAAU;QACxD,OAAQ,IAAuB,CAAC,GAAG,KAAK,UAAU,CACrD,CAAC;AACJ,CAAC;AAED,SAAgB,eAAe,CAAI,MAAyB;;QAC1D,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;QAClC,IAAI,CAAC;YACH,OAAO,IAAI,EAAE,CAAC;gBACZ,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,cAAM,MAAM,CAAC,IAAI,EAAE,CAAA,CAAC;gBAC5C,IAAI,IAAI,EAAE,CAAC;oBACT,6BAAO;gBACT,CAAC;gBACD,oBAAM,KAAK,CAAA,CAAC;YACd,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;YACtC,MAAM,CAAC,WAAW,EAAE,CAAC;YACrB,cAAM,aAAa,CAAA,CAAC;QACtB,CAAC;IACH,CAAC;CAAA","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport type { IncomingMessage } from \"node:http\";\n\ntype Nullable<T, K extends keyof T> = {\n [P in K]: T[P] | null;\n} & Omit<T, K>;\n\nexport function createStream<T>(\n asyncIter: AsyncIterableIterator<T>,\n cancel: () => PromiseLike<void>,\n): ReadableStream<T> & AsyncDisposable & AsyncIterable<T> {\n const stream = iteratorToStream(asyncIter, cancel);\n /** TODO: remove these polyfills once all supported runtimes support them */\n return polyfillStream(stream, cancel);\n}\n\nfunction polyfillStream<T>(\n stream: ReadableStream<T>,\n dispose: () => PromiseLike<void>,\n): ReadableStream<T> & AsyncIterable<T> & AsyncDisposable {\n makeAsyncIterable<T>(stream);\n makeAsyncDisposable(stream, dispose);\n return stream;\n}\n\nfunction makeAsyncDisposable<T>(\n webStream: any,\n dispose: () => PromiseLike<void>,\n): asserts webStream is ReadableStream<T> & AsyncDisposable {\n (Symbol.asyncDispose as any) ??= Symbol(\"Symbol.asyncDispose\");\n if (!webStream[Symbol.asyncDispose]) {\n webStream[Symbol.asyncDispose] = () => dispose();\n }\n}\n\nfunction makeAsyncIterable<T>(\n webStream: any,\n): asserts webStream is ReadableStream<T> & AsyncIterable<T> {\n if (!webStream[Symbol.asyncIterator]) {\n webStream[Symbol.asyncIterator] = () => toAsyncIterable(webStream);\n }\n\n if (!webStream.values) {\n webStream.values = () => toAsyncIterable(webStream);\n }\n}\n\nfunction iteratorToStream<T>(\n iterator: AsyncIterableIterator<T>,\n cancel: () => PromiseLike<void>,\n): ReadableStream<T> {\n return new ReadableStream({\n async pull(controller) {\n const { value, done } = await iterator.next();\n if (done) {\n controller.close();\n } else {\n controller.enqueue(value);\n }\n },\n cancel,\n });\n}\n\nexport function ensureAsyncIterable(\n stream: Nullable<IncomingMessage, \"socket\"> | ReadableStream<Uint8Array>,\n): {\n cancel(): Promise<void>;\n iterable: AsyncIterable<Uint8Array>;\n} {\n if (isReadableStream(stream)) {\n makeAsyncIterable<Uint8Array>(stream);\n return {\n cancel: () => stream.cancel(),\n iterable: stream,\n };\n } else {\n return {\n cancel: async () => {\n /**\n * socket is set to null when the stream has been consumed\n * so we need to make sure to guard against nullability.\n */\n stream.socket?.end();\n },\n iterable: stream as AsyncIterable<Uint8Array>,\n };\n }\n}\n\nfunction isReadableStream(body: unknown): body is ReadableStream {\n return Boolean(\n body &&\n typeof (body as ReadableStream).getReader === \"function\" &&\n typeof (body as ReadableStream).tee === \"function\",\n );\n}\n\nasync function* toAsyncIterable<T>(stream: ReadableStream<T>): AsyncIterableIterator<T> {\n const reader = stream.getReader();\n try {\n while (true) {\n const { value, done } = await reader.read();\n if (done) {\n return;\n }\n yield value;\n }\n } finally {\n const cancelPromise = reader.cancel();\n reader.releaseLock();\n await cancelPromise;\n }\n}\n"]}
|
package/dist/commonjs/utils.d.ts
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
import type { IncomingMessage } from "node:http";
|
|
2
|
+
type Nullable<T, K extends keyof T> = {
|
|
3
|
+
[P in K]: T[P] | null;
|
|
4
|
+
} & Omit<T, K>;
|
|
2
5
|
export declare function createStream<T>(asyncIter: AsyncIterableIterator<T>, cancel: () => PromiseLike<void>): ReadableStream<T> & AsyncDisposable & AsyncIterable<T>;
|
|
3
|
-
export declare function ensureAsyncIterable(stream: IncomingMessage | ReadableStream<Uint8Array>): {
|
|
6
|
+
export declare function ensureAsyncIterable(stream: Nullable<IncomingMessage, "socket"> | ReadableStream<Uint8Array>): {
|
|
4
7
|
cancel(): Promise<void>;
|
|
5
8
|
iterable: AsyncIterable<Uint8Array>;
|
|
6
9
|
};
|
|
10
|
+
export {};
|
|
7
11
|
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAEjD,wBAAgB,YAAY,CAAC,CAAC,EAC5B,SAAS,EAAE,qBAAqB,CAAC,CAAC,CAAC,EACnC,MAAM,EAAE,MAAM,WAAW,CAAC,IAAI,CAAC,GAC9B,cAAc,CAAC,CAAC,CAAC,GAAG,eAAe,GAAG,aAAa,CAAC,CAAC,CAAC,CAIxD;AAkDD,wBAAgB,mBAAmB,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAEjD,KAAK,QAAQ,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,IAAI;KACnC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;CACtB,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAEf,wBAAgB,YAAY,CAAC,CAAC,EAC5B,SAAS,EAAE,qBAAqB,CAAC,CAAC,CAAC,EACnC,MAAM,EAAE,MAAM,WAAW,CAAC,IAAI,CAAC,GAC9B,cAAc,CAAC,CAAC,CAAC,GAAG,eAAe,GAAG,aAAa,CAAC,CAAC,CAAC,CAIxD;AAkDD,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,QAAQ,CAAC,eAAe,EAAE,QAAQ,CAAC,GAAG,cAAc,CAAC,UAAU,CAAC,GACvE;IACD,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACxB,QAAQ,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;CACrC,CAmBA"}
|
package/dist/commonjs/utils.js
CHANGED
|
@@ -55,7 +55,12 @@ function ensureAsyncIterable(stream) {
|
|
|
55
55
|
else {
|
|
56
56
|
return {
|
|
57
57
|
cancel: async () => {
|
|
58
|
-
|
|
58
|
+
var _a;
|
|
59
|
+
/**
|
|
60
|
+
* socket is set to null when the stream has been consumed
|
|
61
|
+
* so we need to make sure to guard against nullability.
|
|
62
|
+
*/
|
|
63
|
+
(_a = stream.socket) === null || _a === void 0 ? void 0 : _a.end();
|
|
59
64
|
},
|
|
60
65
|
iterable: stream,
|
|
61
66
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport type { IncomingMessage } from \"node:http\";\n\ntype Nullable<T, K extends keyof T> = {\n [P in K]: T[P] | null;\n} & Omit<T, K>;\n\nexport function createStream<T>(\n asyncIter: AsyncIterableIterator<T>,\n cancel: () => PromiseLike<void>,\n): ReadableStream<T> & AsyncDisposable & AsyncIterable<T> {\n const stream = iteratorToStream(asyncIter, cancel);\n /** TODO: remove these polyfills once all supported runtimes support them */\n return polyfillStream(stream, cancel);\n}\n\nfunction polyfillStream<T>(\n stream: ReadableStream<T>,\n dispose: () => PromiseLike<void>,\n): ReadableStream<T> & AsyncIterable<T> & AsyncDisposable {\n makeAsyncIterable<T>(stream);\n makeAsyncDisposable(stream, dispose);\n return stream;\n}\n\nfunction makeAsyncDisposable<T>(\n webStream: any,\n dispose: () => PromiseLike<void>,\n): asserts webStream is ReadableStream<T> & AsyncDisposable {\n (Symbol.asyncDispose as any) ??= Symbol(\"Symbol.asyncDispose\");\n if (!webStream[Symbol.asyncDispose]) {\n webStream[Symbol.asyncDispose] = () => dispose();\n }\n}\n\nfunction makeAsyncIterable<T>(\n webStream: any,\n): asserts webStream is ReadableStream<T> & AsyncIterable<T> {\n if (!webStream[Symbol.asyncIterator]) {\n webStream[Symbol.asyncIterator] = () => toAsyncIterable(webStream);\n }\n\n if (!webStream.values) {\n webStream.values = () => toAsyncIterable(webStream);\n }\n}\n\nfunction iteratorToStream<T>(\n iterator: AsyncIterableIterator<T>,\n cancel: () => PromiseLike<void>,\n): ReadableStream<T> {\n return new ReadableStream({\n async pull(controller) {\n const { value, done } = await iterator.next();\n if (done) {\n controller.close();\n } else {\n controller.enqueue(value);\n }\n },\n cancel,\n });\n}\n\nexport function ensureAsyncIterable(\n stream: Nullable<IncomingMessage, \"socket\"> | ReadableStream<Uint8Array>,\n): {\n cancel(): Promise<void>;\n iterable: AsyncIterable<Uint8Array>;\n} {\n if (isReadableStream(stream)) {\n makeAsyncIterable<Uint8Array>(stream);\n return {\n cancel: () => stream.cancel(),\n iterable: stream,\n };\n } else {\n return {\n cancel: async () => {\n /**\n * socket is set to null when the stream has been consumed\n * so we need to make sure to guard against nullability.\n */\n stream.socket?.end();\n },\n iterable: stream as AsyncIterable<Uint8Array>,\n };\n }\n}\n\nfunction isReadableStream(body: unknown): body is ReadableStream {\n return Boolean(\n body &&\n typeof (body as ReadableStream).getReader === \"function\" &&\n typeof (body as ReadableStream).tee === \"function\",\n );\n}\n\nasync function* toAsyncIterable<T>(stream: ReadableStream<T>): AsyncIterableIterator<T> {\n const reader = stream.getReader();\n try {\n while (true) {\n const { value, done } = await reader.read();\n if (done) {\n return;\n }\n yield value;\n }\n } finally {\n const cancelPromise = reader.cancel();\n reader.releaseLock();\n await cancelPromise;\n }\n}\n"]}
|
package/dist/esm/utils.d.ts
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
import type { IncomingMessage } from "node:http";
|
|
2
|
+
type Nullable<T, K extends keyof T> = {
|
|
3
|
+
[P in K]: T[P] | null;
|
|
4
|
+
} & Omit<T, K>;
|
|
2
5
|
export declare function createStream<T>(asyncIter: AsyncIterableIterator<T>, cancel: () => PromiseLike<void>): ReadableStream<T> & AsyncDisposable & AsyncIterable<T>;
|
|
3
|
-
export declare function ensureAsyncIterable(stream: IncomingMessage | ReadableStream<Uint8Array>): {
|
|
6
|
+
export declare function ensureAsyncIterable(stream: Nullable<IncomingMessage, "socket"> | ReadableStream<Uint8Array>): {
|
|
4
7
|
cancel(): Promise<void>;
|
|
5
8
|
iterable: AsyncIterable<Uint8Array>;
|
|
6
9
|
};
|
|
10
|
+
export {};
|
|
7
11
|
//# sourceMappingURL=utils.d.ts.map
|
package/dist/esm/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAEjD,wBAAgB,YAAY,CAAC,CAAC,EAC5B,SAAS,EAAE,qBAAqB,CAAC,CAAC,CAAC,EACnC,MAAM,EAAE,MAAM,WAAW,CAAC,IAAI,CAAC,GAC9B,cAAc,CAAC,CAAC,CAAC,GAAG,eAAe,GAAG,aAAa,CAAC,CAAC,CAAC,CAIxD;AAkDD,wBAAgB,mBAAmB,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAEjD,KAAK,QAAQ,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,IAAI;KACnC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;CACtB,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAEf,wBAAgB,YAAY,CAAC,CAAC,EAC5B,SAAS,EAAE,qBAAqB,CAAC,CAAC,CAAC,EACnC,MAAM,EAAE,MAAM,WAAW,CAAC,IAAI,CAAC,GAC9B,cAAc,CAAC,CAAC,CAAC,GAAG,eAAe,GAAG,aAAa,CAAC,CAAC,CAAC,CAIxD;AAkDD,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,QAAQ,CAAC,eAAe,EAAE,QAAQ,CAAC,GAAG,cAAc,CAAC,UAAU,CAAC,GACvE;IACD,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACxB,QAAQ,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;CACrC,CAmBA"}
|
package/dist/esm/utils.js
CHANGED
|
@@ -51,7 +51,12 @@ export function ensureAsyncIterable(stream) {
|
|
|
51
51
|
else {
|
|
52
52
|
return {
|
|
53
53
|
cancel: async () => {
|
|
54
|
-
|
|
54
|
+
var _a;
|
|
55
|
+
/**
|
|
56
|
+
* socket is set to null when the stream has been consumed
|
|
57
|
+
* so we need to make sure to guard against nullability.
|
|
58
|
+
*/
|
|
59
|
+
(_a = stream.socket) === null || _a === void 0 ? void 0 : _a.end();
|
|
55
60
|
},
|
|
56
61
|
iterable: stream,
|
|
57
62
|
};
|
package/dist/esm/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;;
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport type { IncomingMessage } from \"node:http\";\n\ntype Nullable<T, K extends keyof T> = {\n [P in K]: T[P] | null;\n} & Omit<T, K>;\n\nexport function createStream<T>(\n asyncIter: AsyncIterableIterator<T>,\n cancel: () => PromiseLike<void>,\n): ReadableStream<T> & AsyncDisposable & AsyncIterable<T> {\n const stream = iteratorToStream(asyncIter, cancel);\n /** TODO: remove these polyfills once all supported runtimes support them */\n return polyfillStream(stream, cancel);\n}\n\nfunction polyfillStream<T>(\n stream: ReadableStream<T>,\n dispose: () => PromiseLike<void>,\n): ReadableStream<T> & AsyncIterable<T> & AsyncDisposable {\n makeAsyncIterable<T>(stream);\n makeAsyncDisposable(stream, dispose);\n return stream;\n}\n\nfunction makeAsyncDisposable<T>(\n webStream: any,\n dispose: () => PromiseLike<void>,\n): asserts webStream is ReadableStream<T> & AsyncDisposable {\n (Symbol.asyncDispose as any) ??= Symbol(\"Symbol.asyncDispose\");\n if (!webStream[Symbol.asyncDispose]) {\n webStream[Symbol.asyncDispose] = () => dispose();\n }\n}\n\nfunction makeAsyncIterable<T>(\n webStream: any,\n): asserts webStream is ReadableStream<T> & AsyncIterable<T> {\n if (!webStream[Symbol.asyncIterator]) {\n webStream[Symbol.asyncIterator] = () => toAsyncIterable(webStream);\n }\n\n if (!webStream.values) {\n webStream.values = () => toAsyncIterable(webStream);\n }\n}\n\nfunction iteratorToStream<T>(\n iterator: AsyncIterableIterator<T>,\n cancel: () => PromiseLike<void>,\n): ReadableStream<T> {\n return new ReadableStream({\n async pull(controller) {\n const { value, done } = await iterator.next();\n if (done) {\n controller.close();\n } else {\n controller.enqueue(value);\n }\n },\n cancel,\n });\n}\n\nexport function ensureAsyncIterable(\n stream: Nullable<IncomingMessage, \"socket\"> | ReadableStream<Uint8Array>,\n): {\n cancel(): Promise<void>;\n iterable: AsyncIterable<Uint8Array>;\n} {\n if (isReadableStream(stream)) {\n makeAsyncIterable<Uint8Array>(stream);\n return {\n cancel: () => stream.cancel(),\n iterable: stream,\n };\n } else {\n return {\n cancel: async () => {\n /**\n * socket is set to null when the stream has been consumed\n * so we need to make sure to guard against nullability.\n */\n stream.socket?.end();\n },\n iterable: stream as AsyncIterable<Uint8Array>,\n };\n }\n}\n\nfunction isReadableStream(body: unknown): body is ReadableStream {\n return Boolean(\n body &&\n typeof (body as ReadableStream).getReader === \"function\" &&\n typeof (body as ReadableStream).tee === \"function\",\n );\n}\n\nasync function* toAsyncIterable<T>(stream: ReadableStream<T>): AsyncIterableIterator<T> {\n const reader = stream.getReader();\n try {\n while (true) {\n const { value, done } = await reader.read();\n if (done) {\n return;\n }\n yield value;\n }\n } finally {\n const cancelPromise = reader.cancel();\n reader.releaseLock();\n await cancelPromise;\n }\n}\n"]}
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
import type { IncomingMessage } from "node:http";
|
|
2
|
+
type Nullable<T, K extends keyof T> = {
|
|
3
|
+
[P in K]: T[P] | null;
|
|
4
|
+
} & Omit<T, K>;
|
|
2
5
|
export declare function createStream<T>(asyncIter: AsyncIterableIterator<T>, cancel: () => PromiseLike<void>): ReadableStream<T> & AsyncDisposable & AsyncIterable<T>;
|
|
3
|
-
export declare function ensureAsyncIterable(stream: IncomingMessage | ReadableStream<Uint8Array>): {
|
|
6
|
+
export declare function ensureAsyncIterable(stream: Nullable<IncomingMessage, "socket"> | ReadableStream<Uint8Array>): {
|
|
4
7
|
cancel(): Promise<void>;
|
|
5
8
|
iterable: AsyncIterable<Uint8Array>;
|
|
6
9
|
};
|
|
10
|
+
export {};
|
|
7
11
|
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAEjD,wBAAgB,YAAY,CAAC,CAAC,EAC5B,SAAS,EAAE,qBAAqB,CAAC,CAAC,CAAC,EACnC,MAAM,EAAE,MAAM,WAAW,CAAC,IAAI,CAAC,GAC9B,cAAc,CAAC,CAAC,CAAC,GAAG,eAAe,GAAG,aAAa,CAAC,CAAC,CAAC,CAIxD;AAkDD,wBAAgB,mBAAmB,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAEjD,KAAK,QAAQ,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,IAAI;KACnC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;CACtB,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAEf,wBAAgB,YAAY,CAAC,CAAC,EAC5B,SAAS,EAAE,qBAAqB,CAAC,CAAC,CAAC,EACnC,MAAM,EAAE,MAAM,WAAW,CAAC,IAAI,CAAC,GAC9B,cAAc,CAAC,CAAC,CAAC,GAAG,eAAe,GAAG,aAAa,CAAC,CAAC,CAAC,CAIxD;AAkDD,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,QAAQ,CAAC,eAAe,EAAE,QAAQ,CAAC,GAAG,cAAc,CAAC,UAAU,CAAC,GACvE;IACD,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACxB,QAAQ,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;CACrC,CAmBA"}
|
|
@@ -51,7 +51,12 @@ export function ensureAsyncIterable(stream) {
|
|
|
51
51
|
else {
|
|
52
52
|
return {
|
|
53
53
|
cancel: async () => {
|
|
54
|
-
|
|
54
|
+
var _a;
|
|
55
|
+
/**
|
|
56
|
+
* socket is set to null when the stream has been consumed
|
|
57
|
+
* so we need to make sure to guard against nullability.
|
|
58
|
+
*/
|
|
59
|
+
(_a = stream.socket) === null || _a === void 0 ? void 0 : _a.end();
|
|
55
60
|
},
|
|
56
61
|
iterable: stream,
|
|
57
62
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;;
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport type { IncomingMessage } from \"node:http\";\n\ntype Nullable<T, K extends keyof T> = {\n [P in K]: T[P] | null;\n} & Omit<T, K>;\n\nexport function createStream<T>(\n asyncIter: AsyncIterableIterator<T>,\n cancel: () => PromiseLike<void>,\n): ReadableStream<T> & AsyncDisposable & AsyncIterable<T> {\n const stream = iteratorToStream(asyncIter, cancel);\n /** TODO: remove these polyfills once all supported runtimes support them */\n return polyfillStream(stream, cancel);\n}\n\nfunction polyfillStream<T>(\n stream: ReadableStream<T>,\n dispose: () => PromiseLike<void>,\n): ReadableStream<T> & AsyncIterable<T> & AsyncDisposable {\n makeAsyncIterable<T>(stream);\n makeAsyncDisposable(stream, dispose);\n return stream;\n}\n\nfunction makeAsyncDisposable<T>(\n webStream: any,\n dispose: () => PromiseLike<void>,\n): asserts webStream is ReadableStream<T> & AsyncDisposable {\n (Symbol.asyncDispose as any) ??= Symbol(\"Symbol.asyncDispose\");\n if (!webStream[Symbol.asyncDispose]) {\n webStream[Symbol.asyncDispose] = () => dispose();\n }\n}\n\nfunction makeAsyncIterable<T>(\n webStream: any,\n): asserts webStream is ReadableStream<T> & AsyncIterable<T> {\n if (!webStream[Symbol.asyncIterator]) {\n webStream[Symbol.asyncIterator] = () => toAsyncIterable(webStream);\n }\n\n if (!webStream.values) {\n webStream.values = () => toAsyncIterable(webStream);\n }\n}\n\nfunction iteratorToStream<T>(\n iterator: AsyncIterableIterator<T>,\n cancel: () => PromiseLike<void>,\n): ReadableStream<T> {\n return new ReadableStream({\n async pull(controller) {\n const { value, done } = await iterator.next();\n if (done) {\n controller.close();\n } else {\n controller.enqueue(value);\n }\n },\n cancel,\n });\n}\n\nexport function ensureAsyncIterable(\n stream: Nullable<IncomingMessage, \"socket\"> | ReadableStream<Uint8Array>,\n): {\n cancel(): Promise<void>;\n iterable: AsyncIterable<Uint8Array>;\n} {\n if (isReadableStream(stream)) {\n makeAsyncIterable<Uint8Array>(stream);\n return {\n cancel: () => stream.cancel(),\n iterable: stream,\n };\n } else {\n return {\n cancel: async () => {\n /**\n * socket is set to null when the stream has been consumed\n * so we need to make sure to guard against nullability.\n */\n stream.socket?.end();\n },\n iterable: stream as AsyncIterable<Uint8Array>,\n };\n }\n}\n\nfunction isReadableStream(body: unknown): body is ReadableStream {\n return Boolean(\n body &&\n typeof (body as ReadableStream).getReader === \"function\" &&\n typeof (body as ReadableStream).tee === \"function\",\n );\n}\n\nasync function* toAsyncIterable<T>(stream: ReadableStream<T>): AsyncIterableIterator<T> {\n const reader = stream.getReader();\n try {\n while (true) {\n const { value, done } = await reader.read();\n if (done) {\n return;\n }\n yield value;\n }\n } finally {\n const cancelPromise = reader.cancel();\n reader.releaseLock();\n await cancelPromise;\n }\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@azure/core-sse",
|
|
3
|
-
"version": "2.1.3
|
|
3
|
+
"version": "2.1.3",
|
|
4
4
|
"description": "Implementation of the Server-sent events protocol for Node.js and browsers.",
|
|
5
5
|
"sdk-type": "client",
|
|
6
6
|
"type": "module",
|
|
@@ -12,22 +12,18 @@
|
|
|
12
12
|
"./package.json": "./package.json",
|
|
13
13
|
".": {
|
|
14
14
|
"browser": {
|
|
15
|
-
"source": "./src/index.ts",
|
|
16
15
|
"types": "./dist/browser/index.d.ts",
|
|
17
16
|
"default": "./dist/browser/index.js"
|
|
18
17
|
},
|
|
19
18
|
"react-native": {
|
|
20
|
-
"source": "./src/index.ts",
|
|
21
19
|
"types": "./dist/react-native/index.d.ts",
|
|
22
20
|
"default": "./dist/react-native/index.js"
|
|
23
21
|
},
|
|
24
22
|
"import": {
|
|
25
|
-
"source": "./src/index.ts",
|
|
26
23
|
"types": "./dist/esm/index.d.ts",
|
|
27
24
|
"default": "./dist/esm/index.js"
|
|
28
25
|
},
|
|
29
26
|
"require": {
|
|
30
|
-
"source": "./src/index.ts",
|
|
31
27
|
"types": "./dist/commonjs/index.d.ts",
|
|
32
28
|
"default": "./dist/commonjs/index.js"
|
|
33
29
|
}
|
|
@@ -73,6 +69,7 @@
|
|
|
73
69
|
"lint:fix": "eslint package.json api-extractor.json src --ext .ts --ext .cts --ext .mts --fix --fix-type [problem,suggestion]",
|
|
74
70
|
"lint": "eslint package.json api-extractor.json src --ext .ts --ext .cts --ext .mts",
|
|
75
71
|
"pack": "npm pack 2>&1",
|
|
72
|
+
"start-server": "tsx test/server/start.mts",
|
|
76
73
|
"test:browser": "npm run clean && npm run build && npm run integration-test:browser",
|
|
77
74
|
"test:node": "npm run clean && tshy && npm run integration-test:node",
|
|
78
75
|
"test": "npm run clean && tshy && npm run unit-test:node && dev-tool run build-test && npm run unit-test:browser && npm run integration-test",
|
|
@@ -81,20 +78,26 @@
|
|
|
81
78
|
"unit-test": "npm run unit-test:node && npm run unit-test:browser"
|
|
82
79
|
},
|
|
83
80
|
"devDependencies": {
|
|
84
|
-
"@azure/dev-tool": "
|
|
85
|
-
"@azure/eslint-plugin-azure-sdk": "
|
|
86
|
-
"@azure
|
|
81
|
+
"@azure/dev-tool": "^1.0.0",
|
|
82
|
+
"@azure/eslint-plugin-azure-sdk": "^3.0.0",
|
|
83
|
+
"@azure/logger": "^1.1.4",
|
|
84
|
+
"@azure-tools/test-utils": "^1.0.1",
|
|
85
|
+
"@azure-rest/core-client": "^2.2.0",
|
|
86
|
+
"@azure-tools/vite-plugin-browser-test-map": "^1.0.0",
|
|
87
87
|
"@microsoft/api-extractor": "^7.40.3",
|
|
88
|
+
"@types/express": "^4.17.21",
|
|
88
89
|
"@types/node": "^18.0.0",
|
|
89
|
-
"@vitest/browser": "^
|
|
90
|
-
"@vitest/coverage-istanbul": "^
|
|
90
|
+
"@vitest/browser": "^2.0.5",
|
|
91
|
+
"@vitest/coverage-istanbul": "^2.0.5",
|
|
91
92
|
"dotenv": "^16.0.0",
|
|
92
93
|
"eslint": "^8.56.0",
|
|
93
|
-
"
|
|
94
|
-
"
|
|
95
|
-
"
|
|
96
|
-
"
|
|
97
|
-
"
|
|
94
|
+
"express": "^4.19.2",
|
|
95
|
+
"playwright": "^1.46.0",
|
|
96
|
+
"rimraf": "^6.0.1",
|
|
97
|
+
"tshy": "^3.0.2",
|
|
98
|
+
"tsx": "^4.17.0",
|
|
99
|
+
"typescript": "~5.5.4",
|
|
100
|
+
"vitest": "^2.0.5"
|
|
98
101
|
},
|
|
99
102
|
"dependencies": {
|
|
100
103
|
"tslib": "^2.6.2"
|