@univerjs/network 0.21.1 → 0.22.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +24 -19
- package/lib/cjs/facade.js +2 -2
- package/lib/cjs/index.js +12 -12
- package/lib/es/facade.js +2 -2
- package/lib/es/index.js +12 -12
- package/lib/facade.js +2 -2
- package/lib/index.js +12 -12
- package/lib/umd/index.js +2 -2
- package/package.json +12 -7
package/README.md
CHANGED
|
@@ -1,33 +1,38 @@
|
|
|
1
1
|
# @univerjs/network
|
|
2
2
|
|
|
3
|
+
[](https://npmjs.com/package/@univerjs/network)
|
|
4
|
+
[](https://npmjs.com/package/@univerjs/network)
|
|
5
|
+
[](https://npmjs.com/package/@univerjs/network)
|
|
6
|
+
|
|
7
|
+
`@univerjs/network` provides basic network service abstractions for Univer runtimes, especially collaboration-oriented integrations.
|
|
8
|
+
|
|
3
9
|
## Package Overview
|
|
4
10
|
|
|
5
|
-
| Package
|
|
6
|
-
| --- | --- |
|
|
7
|
-
| `@univerjs/network` | `UniverNetwork` |
|
|
11
|
+
| Package | UMD global | CSS | Locales | Facade entry |
|
|
12
|
+
| --- | --- | :---: | :---: | :---: |
|
|
13
|
+
| `@univerjs/network` | `UniverNetwork` | No | No | Yes |
|
|
8
14
|
|
|
9
|
-
##
|
|
15
|
+
## Installation
|
|
10
16
|
|
|
11
|
-
|
|
17
|
+
```sh
|
|
18
|
+
pnpm add @univerjs/network
|
|
19
|
+
# or
|
|
20
|
+
npm install @univerjs/network
|
|
21
|
+
```
|
|
12
22
|
|
|
13
|
-
|
|
23
|
+
Keep all `@univerjs/*` packages on the same version.
|
|
14
24
|
|
|
15
|
-
|
|
25
|
+
## Usage
|
|
16
26
|
|
|
17
|
-
```
|
|
18
|
-
|
|
19
|
-
npm install @univerjs/network
|
|
27
|
+
```ts
|
|
28
|
+
import { UniverNetworkPlugin } from '@univerjs/network';
|
|
20
29
|
|
|
21
|
-
|
|
22
|
-
pnpm add @univerjs/network
|
|
30
|
+
univer.registerPlugin(UniverNetworkPlugin);
|
|
23
31
|
```
|
|
24
32
|
|
|
25
|
-
##
|
|
33
|
+
## Resources
|
|
26
34
|
|
|
27
|
-
|
|
35
|
+
- [Documentation](https://docs.univer.ai)
|
|
36
|
+
- [NPM package](https://npmjs.com/package/@univerjs/network)
|
|
37
|
+
- [GitHub repository](https://github.com/dream-num/univer)
|
|
28
38
|
|
|
29
|
-
<!-- Links -->
|
|
30
|
-
[npm-version-shield]: https://img.shields.io/npm/v/@univerjs/network?style=flat-square
|
|
31
|
-
[npm-version-link]: https://npmjs.com/package/@univerjs/network
|
|
32
|
-
[npm-license-shield]: https://img.shields.io/npm/l/@univerjs/network?style=flat-square
|
|
33
|
-
[npm-downloads-shield]: https://img.shields.io/npm/dm/@univerjs/network?style=flat-square
|
package/lib/cjs/facade.js
CHANGED
|
@@ -2,7 +2,7 @@ let _univerjs_core_facade = require("@univerjs/core/facade");
|
|
|
2
2
|
let _univerjs_network = require("@univerjs/network");
|
|
3
3
|
let _univerjs_core = require("@univerjs/core");
|
|
4
4
|
|
|
5
|
-
//#region \0@oxc-project+runtime@0.
|
|
5
|
+
//#region \0@oxc-project+runtime@0.129.0/helpers/decorateParam.js
|
|
6
6
|
function __decorateParam(paramIndex, decorator) {
|
|
7
7
|
return function(target, key) {
|
|
8
8
|
decorator(target, key, paramIndex);
|
|
@@ -10,7 +10,7 @@ function __decorateParam(paramIndex, decorator) {
|
|
|
10
10
|
}
|
|
11
11
|
|
|
12
12
|
//#endregion
|
|
13
|
-
//#region \0@oxc-project+runtime@0.
|
|
13
|
+
//#region \0@oxc-project+runtime@0.129.0/helpers/decorate.js
|
|
14
14
|
function __decorate(decorators, target, key, desc) {
|
|
15
15
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
16
16
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
package/lib/cjs/index.js
CHANGED
|
@@ -5,7 +5,7 @@ let rxjs_operators = require("rxjs/operators");
|
|
|
5
5
|
|
|
6
6
|
//#region package.json
|
|
7
7
|
var name = "@univerjs/network";
|
|
8
|
-
var version = "0.
|
|
8
|
+
var version = "0.22.0";
|
|
9
9
|
|
|
10
10
|
//#endregion
|
|
11
11
|
//#region src/config/config.ts
|
|
@@ -14,7 +14,7 @@ const configSymbol = Symbol(NETWORK_PLUGIN_CONFIG_KEY);
|
|
|
14
14
|
const defaultPluginConfig = {};
|
|
15
15
|
|
|
16
16
|
//#endregion
|
|
17
|
-
//#region \0@oxc-project+runtime@0.
|
|
17
|
+
//#region \0@oxc-project+runtime@0.129.0/helpers/typeof.js
|
|
18
18
|
function _typeof(o) {
|
|
19
19
|
"@babel/helpers - typeof";
|
|
20
20
|
return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o) {
|
|
@@ -25,7 +25,7 @@ function _typeof(o) {
|
|
|
25
25
|
}
|
|
26
26
|
|
|
27
27
|
//#endregion
|
|
28
|
-
//#region \0@oxc-project+runtime@0.
|
|
28
|
+
//#region \0@oxc-project+runtime@0.129.0/helpers/toPrimitive.js
|
|
29
29
|
function toPrimitive(t, r) {
|
|
30
30
|
if ("object" != _typeof(t) || !t) return t;
|
|
31
31
|
var e = t[Symbol.toPrimitive];
|
|
@@ -38,14 +38,14 @@ function toPrimitive(t, r) {
|
|
|
38
38
|
}
|
|
39
39
|
|
|
40
40
|
//#endregion
|
|
41
|
-
//#region \0@oxc-project+runtime@0.
|
|
41
|
+
//#region \0@oxc-project+runtime@0.129.0/helpers/toPropertyKey.js
|
|
42
42
|
function toPropertyKey(t) {
|
|
43
43
|
var i = toPrimitive(t, "string");
|
|
44
44
|
return "symbol" == _typeof(i) ? i : i + "";
|
|
45
45
|
}
|
|
46
46
|
|
|
47
47
|
//#endregion
|
|
48
|
-
//#region \0@oxc-project+runtime@0.
|
|
48
|
+
//#region \0@oxc-project+runtime@0.129.0/helpers/defineProperty.js
|
|
49
49
|
function _defineProperty(e, r, t) {
|
|
50
50
|
return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
|
|
51
51
|
value: t,
|
|
@@ -182,7 +182,7 @@ var HTTPRequest = class {
|
|
|
182
182
|
};
|
|
183
183
|
|
|
184
184
|
//#endregion
|
|
185
|
-
//#region \0@oxc-project+runtime@0.
|
|
185
|
+
//#region \0@oxc-project+runtime@0.129.0/helpers/decorateParam.js
|
|
186
186
|
function __decorateParam(paramIndex, decorator) {
|
|
187
187
|
return function(target, key) {
|
|
188
188
|
decorator(target, key, paramIndex);
|
|
@@ -190,7 +190,7 @@ function __decorateParam(paramIndex, decorator) {
|
|
|
190
190
|
}
|
|
191
191
|
|
|
192
192
|
//#endregion
|
|
193
|
-
//#region \0@oxc-project+runtime@0.
|
|
193
|
+
//#region \0@oxc-project+runtime@0.129.0/helpers/decorate.js
|
|
194
194
|
function __decorate(decorators, target, key, desc) {
|
|
195
195
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
196
196
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
@@ -384,7 +384,7 @@ let HTTPEventType = /* @__PURE__ */ function(HTTPEventType) {
|
|
|
384
384
|
*/
|
|
385
385
|
var HTTPResponse = class {
|
|
386
386
|
constructor({ body, headers, status, statusText }) {
|
|
387
|
-
_defineProperty(this, "type",
|
|
387
|
+
_defineProperty(this, "type", 1);
|
|
388
388
|
_defineProperty(this, "body", void 0);
|
|
389
389
|
_defineProperty(this, "headers", void 0);
|
|
390
390
|
_defineProperty(this, "status", void 0);
|
|
@@ -403,7 +403,7 @@ var HTTPProgress = class {
|
|
|
403
403
|
this.total = total;
|
|
404
404
|
this.loaded = loaded;
|
|
405
405
|
this.partialText = partialText;
|
|
406
|
-
_defineProperty(this, "type",
|
|
406
|
+
_defineProperty(this, "type", 0);
|
|
407
407
|
}
|
|
408
408
|
};
|
|
409
409
|
var ResponseHeader = class {
|
|
@@ -486,7 +486,7 @@ let FetchHTTPImplementation = class FetchHTTPImplementation {
|
|
|
486
486
|
const statusText = response.statusText;
|
|
487
487
|
let body = null;
|
|
488
488
|
if (response.body) body = await this._readBody(request, response, subscriber);
|
|
489
|
-
if (status >=
|
|
489
|
+
if (status >= 200 && status < 300) subscriber.next(new HTTPResponse({
|
|
490
490
|
body,
|
|
491
491
|
headers: responseHeaders,
|
|
492
492
|
status,
|
|
@@ -590,7 +590,7 @@ let XHRHTTPImplementation = class XHRHTTPImplementation {
|
|
|
590
590
|
const { headers, statusText, status } = buildResponseHeader();
|
|
591
591
|
let body = null;
|
|
592
592
|
let error = null;
|
|
593
|
-
if (status !==
|
|
593
|
+
if (status !== 204) body = typeof xhr.response === "undefined" ? xhr.responseText : xhr.response;
|
|
594
594
|
let success = status >= 200 && status < 300;
|
|
595
595
|
if (responseType === "json" && typeof body === "string") {
|
|
596
596
|
const originalBody = body;
|
|
@@ -752,7 +752,7 @@ const MergeInterceptorFactory = (config, options = {}) => {
|
|
|
752
752
|
});
|
|
753
753
|
next(mergeParamsToRequest(list, requestConfig)).subscribe({
|
|
754
754
|
next: (e) => {
|
|
755
|
-
if (e.type ===
|
|
755
|
+
if (e.type === 1) {
|
|
756
756
|
const body = e.body;
|
|
757
757
|
const configList = distributeResult(body, list);
|
|
758
758
|
currentHookList.forEach((hookItem) => {
|
package/lib/es/facade.js
CHANGED
|
@@ -2,7 +2,7 @@ import { FBase, FUniver } from "@univerjs/core/facade";
|
|
|
2
2
|
import { HTTPService, WebSocketService } from "@univerjs/network";
|
|
3
3
|
import { Inject, Injector } from "@univerjs/core";
|
|
4
4
|
|
|
5
|
-
//#region \0@oxc-project+runtime@0.
|
|
5
|
+
//#region \0@oxc-project+runtime@0.129.0/helpers/decorateParam.js
|
|
6
6
|
function __decorateParam(paramIndex, decorator) {
|
|
7
7
|
return function(target, key) {
|
|
8
8
|
decorator(target, key, paramIndex);
|
|
@@ -10,7 +10,7 @@ function __decorateParam(paramIndex, decorator) {
|
|
|
10
10
|
}
|
|
11
11
|
|
|
12
12
|
//#endregion
|
|
13
|
-
//#region \0@oxc-project+runtime@0.
|
|
13
|
+
//#region \0@oxc-project+runtime@0.129.0/helpers/decorate.js
|
|
14
14
|
function __decorate(decorators, target, key, desc) {
|
|
15
15
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
16
16
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
package/lib/es/index.js
CHANGED
|
@@ -4,7 +4,7 @@ import { concatMap, retry, share } from "rxjs/operators";
|
|
|
4
4
|
|
|
5
5
|
//#region package.json
|
|
6
6
|
var name = "@univerjs/network";
|
|
7
|
-
var version = "0.
|
|
7
|
+
var version = "0.22.0";
|
|
8
8
|
|
|
9
9
|
//#endregion
|
|
10
10
|
//#region src/config/config.ts
|
|
@@ -13,7 +13,7 @@ const configSymbol = Symbol(NETWORK_PLUGIN_CONFIG_KEY);
|
|
|
13
13
|
const defaultPluginConfig = {};
|
|
14
14
|
|
|
15
15
|
//#endregion
|
|
16
|
-
//#region \0@oxc-project+runtime@0.
|
|
16
|
+
//#region \0@oxc-project+runtime@0.129.0/helpers/typeof.js
|
|
17
17
|
function _typeof(o) {
|
|
18
18
|
"@babel/helpers - typeof";
|
|
19
19
|
return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o) {
|
|
@@ -24,7 +24,7 @@ function _typeof(o) {
|
|
|
24
24
|
}
|
|
25
25
|
|
|
26
26
|
//#endregion
|
|
27
|
-
//#region \0@oxc-project+runtime@0.
|
|
27
|
+
//#region \0@oxc-project+runtime@0.129.0/helpers/toPrimitive.js
|
|
28
28
|
function toPrimitive(t, r) {
|
|
29
29
|
if ("object" != _typeof(t) || !t) return t;
|
|
30
30
|
var e = t[Symbol.toPrimitive];
|
|
@@ -37,14 +37,14 @@ function toPrimitive(t, r) {
|
|
|
37
37
|
}
|
|
38
38
|
|
|
39
39
|
//#endregion
|
|
40
|
-
//#region \0@oxc-project+runtime@0.
|
|
40
|
+
//#region \0@oxc-project+runtime@0.129.0/helpers/toPropertyKey.js
|
|
41
41
|
function toPropertyKey(t) {
|
|
42
42
|
var i = toPrimitive(t, "string");
|
|
43
43
|
return "symbol" == _typeof(i) ? i : i + "";
|
|
44
44
|
}
|
|
45
45
|
|
|
46
46
|
//#endregion
|
|
47
|
-
//#region \0@oxc-project+runtime@0.
|
|
47
|
+
//#region \0@oxc-project+runtime@0.129.0/helpers/defineProperty.js
|
|
48
48
|
function _defineProperty(e, r, t) {
|
|
49
49
|
return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
|
|
50
50
|
value: t,
|
|
@@ -181,7 +181,7 @@ var HTTPRequest = class {
|
|
|
181
181
|
};
|
|
182
182
|
|
|
183
183
|
//#endregion
|
|
184
|
-
//#region \0@oxc-project+runtime@0.
|
|
184
|
+
//#region \0@oxc-project+runtime@0.129.0/helpers/decorateParam.js
|
|
185
185
|
function __decorateParam(paramIndex, decorator) {
|
|
186
186
|
return function(target, key) {
|
|
187
187
|
decorator(target, key, paramIndex);
|
|
@@ -189,7 +189,7 @@ function __decorateParam(paramIndex, decorator) {
|
|
|
189
189
|
}
|
|
190
190
|
|
|
191
191
|
//#endregion
|
|
192
|
-
//#region \0@oxc-project+runtime@0.
|
|
192
|
+
//#region \0@oxc-project+runtime@0.129.0/helpers/decorate.js
|
|
193
193
|
function __decorate(decorators, target, key, desc) {
|
|
194
194
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
195
195
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
@@ -383,7 +383,7 @@ let HTTPEventType = /* @__PURE__ */ function(HTTPEventType) {
|
|
|
383
383
|
*/
|
|
384
384
|
var HTTPResponse = class {
|
|
385
385
|
constructor({ body, headers, status, statusText }) {
|
|
386
|
-
_defineProperty(this, "type",
|
|
386
|
+
_defineProperty(this, "type", 1);
|
|
387
387
|
_defineProperty(this, "body", void 0);
|
|
388
388
|
_defineProperty(this, "headers", void 0);
|
|
389
389
|
_defineProperty(this, "status", void 0);
|
|
@@ -402,7 +402,7 @@ var HTTPProgress = class {
|
|
|
402
402
|
this.total = total;
|
|
403
403
|
this.loaded = loaded;
|
|
404
404
|
this.partialText = partialText;
|
|
405
|
-
_defineProperty(this, "type",
|
|
405
|
+
_defineProperty(this, "type", 0);
|
|
406
406
|
}
|
|
407
407
|
};
|
|
408
408
|
var ResponseHeader = class {
|
|
@@ -485,7 +485,7 @@ let FetchHTTPImplementation = class FetchHTTPImplementation {
|
|
|
485
485
|
const statusText = response.statusText;
|
|
486
486
|
let body = null;
|
|
487
487
|
if (response.body) body = await this._readBody(request, response, subscriber);
|
|
488
|
-
if (status >=
|
|
488
|
+
if (status >= 200 && status < 300) subscriber.next(new HTTPResponse({
|
|
489
489
|
body,
|
|
490
490
|
headers: responseHeaders,
|
|
491
491
|
status,
|
|
@@ -589,7 +589,7 @@ let XHRHTTPImplementation = class XHRHTTPImplementation {
|
|
|
589
589
|
const { headers, statusText, status } = buildResponseHeader();
|
|
590
590
|
let body = null;
|
|
591
591
|
let error = null;
|
|
592
|
-
if (status !==
|
|
592
|
+
if (status !== 204) body = typeof xhr.response === "undefined" ? xhr.responseText : xhr.response;
|
|
593
593
|
let success = status >= 200 && status < 300;
|
|
594
594
|
if (responseType === "json" && typeof body === "string") {
|
|
595
595
|
const originalBody = body;
|
|
@@ -751,7 +751,7 @@ const MergeInterceptorFactory = (config, options = {}) => {
|
|
|
751
751
|
});
|
|
752
752
|
next(mergeParamsToRequest(list, requestConfig)).subscribe({
|
|
753
753
|
next: (e) => {
|
|
754
|
-
if (e.type ===
|
|
754
|
+
if (e.type === 1) {
|
|
755
755
|
const body = e.body;
|
|
756
756
|
const configList = distributeResult(body, list);
|
|
757
757
|
currentHookList.forEach((hookItem) => {
|
package/lib/facade.js
CHANGED
|
@@ -2,7 +2,7 @@ import { FBase, FUniver } from "@univerjs/core/facade";
|
|
|
2
2
|
import { HTTPService, WebSocketService } from "@univerjs/network";
|
|
3
3
|
import { Inject, Injector } from "@univerjs/core";
|
|
4
4
|
|
|
5
|
-
//#region \0@oxc-project+runtime@0.
|
|
5
|
+
//#region \0@oxc-project+runtime@0.129.0/helpers/decorateParam.js
|
|
6
6
|
function __decorateParam(paramIndex, decorator) {
|
|
7
7
|
return function(target, key) {
|
|
8
8
|
decorator(target, key, paramIndex);
|
|
@@ -10,7 +10,7 @@ function __decorateParam(paramIndex, decorator) {
|
|
|
10
10
|
}
|
|
11
11
|
|
|
12
12
|
//#endregion
|
|
13
|
-
//#region \0@oxc-project+runtime@0.
|
|
13
|
+
//#region \0@oxc-project+runtime@0.129.0/helpers/decorate.js
|
|
14
14
|
function __decorate(decorators, target, key, desc) {
|
|
15
15
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
16
16
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
package/lib/index.js
CHANGED
|
@@ -4,7 +4,7 @@ import { concatMap, retry, share } from "rxjs/operators";
|
|
|
4
4
|
|
|
5
5
|
//#region package.json
|
|
6
6
|
var name = "@univerjs/network";
|
|
7
|
-
var version = "0.
|
|
7
|
+
var version = "0.22.0";
|
|
8
8
|
|
|
9
9
|
//#endregion
|
|
10
10
|
//#region src/config/config.ts
|
|
@@ -13,7 +13,7 @@ const configSymbol = Symbol(NETWORK_PLUGIN_CONFIG_KEY);
|
|
|
13
13
|
const defaultPluginConfig = {};
|
|
14
14
|
|
|
15
15
|
//#endregion
|
|
16
|
-
//#region \0@oxc-project+runtime@0.
|
|
16
|
+
//#region \0@oxc-project+runtime@0.129.0/helpers/typeof.js
|
|
17
17
|
function _typeof(o) {
|
|
18
18
|
"@babel/helpers - typeof";
|
|
19
19
|
return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o) {
|
|
@@ -24,7 +24,7 @@ function _typeof(o) {
|
|
|
24
24
|
}
|
|
25
25
|
|
|
26
26
|
//#endregion
|
|
27
|
-
//#region \0@oxc-project+runtime@0.
|
|
27
|
+
//#region \0@oxc-project+runtime@0.129.0/helpers/toPrimitive.js
|
|
28
28
|
function toPrimitive(t, r) {
|
|
29
29
|
if ("object" != _typeof(t) || !t) return t;
|
|
30
30
|
var e = t[Symbol.toPrimitive];
|
|
@@ -37,14 +37,14 @@ function toPrimitive(t, r) {
|
|
|
37
37
|
}
|
|
38
38
|
|
|
39
39
|
//#endregion
|
|
40
|
-
//#region \0@oxc-project+runtime@0.
|
|
40
|
+
//#region \0@oxc-project+runtime@0.129.0/helpers/toPropertyKey.js
|
|
41
41
|
function toPropertyKey(t) {
|
|
42
42
|
var i = toPrimitive(t, "string");
|
|
43
43
|
return "symbol" == _typeof(i) ? i : i + "";
|
|
44
44
|
}
|
|
45
45
|
|
|
46
46
|
//#endregion
|
|
47
|
-
//#region \0@oxc-project+runtime@0.
|
|
47
|
+
//#region \0@oxc-project+runtime@0.129.0/helpers/defineProperty.js
|
|
48
48
|
function _defineProperty(e, r, t) {
|
|
49
49
|
return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
|
|
50
50
|
value: t,
|
|
@@ -181,7 +181,7 @@ var HTTPRequest = class {
|
|
|
181
181
|
};
|
|
182
182
|
|
|
183
183
|
//#endregion
|
|
184
|
-
//#region \0@oxc-project+runtime@0.
|
|
184
|
+
//#region \0@oxc-project+runtime@0.129.0/helpers/decorateParam.js
|
|
185
185
|
function __decorateParam(paramIndex, decorator) {
|
|
186
186
|
return function(target, key) {
|
|
187
187
|
decorator(target, key, paramIndex);
|
|
@@ -189,7 +189,7 @@ function __decorateParam(paramIndex, decorator) {
|
|
|
189
189
|
}
|
|
190
190
|
|
|
191
191
|
//#endregion
|
|
192
|
-
//#region \0@oxc-project+runtime@0.
|
|
192
|
+
//#region \0@oxc-project+runtime@0.129.0/helpers/decorate.js
|
|
193
193
|
function __decorate(decorators, target, key, desc) {
|
|
194
194
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
195
195
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
@@ -383,7 +383,7 @@ let HTTPEventType = /* @__PURE__ */ function(HTTPEventType) {
|
|
|
383
383
|
*/
|
|
384
384
|
var HTTPResponse = class {
|
|
385
385
|
constructor({ body, headers, status, statusText }) {
|
|
386
|
-
_defineProperty(this, "type",
|
|
386
|
+
_defineProperty(this, "type", 1);
|
|
387
387
|
_defineProperty(this, "body", void 0);
|
|
388
388
|
_defineProperty(this, "headers", void 0);
|
|
389
389
|
_defineProperty(this, "status", void 0);
|
|
@@ -402,7 +402,7 @@ var HTTPProgress = class {
|
|
|
402
402
|
this.total = total;
|
|
403
403
|
this.loaded = loaded;
|
|
404
404
|
this.partialText = partialText;
|
|
405
|
-
_defineProperty(this, "type",
|
|
405
|
+
_defineProperty(this, "type", 0);
|
|
406
406
|
}
|
|
407
407
|
};
|
|
408
408
|
var ResponseHeader = class {
|
|
@@ -485,7 +485,7 @@ let FetchHTTPImplementation = class FetchHTTPImplementation {
|
|
|
485
485
|
const statusText = response.statusText;
|
|
486
486
|
let body = null;
|
|
487
487
|
if (response.body) body = await this._readBody(request, response, subscriber);
|
|
488
|
-
if (status >=
|
|
488
|
+
if (status >= 200 && status < 300) subscriber.next(new HTTPResponse({
|
|
489
489
|
body,
|
|
490
490
|
headers: responseHeaders,
|
|
491
491
|
status,
|
|
@@ -589,7 +589,7 @@ let XHRHTTPImplementation = class XHRHTTPImplementation {
|
|
|
589
589
|
const { headers, statusText, status } = buildResponseHeader();
|
|
590
590
|
let body = null;
|
|
591
591
|
let error = null;
|
|
592
|
-
if (status !==
|
|
592
|
+
if (status !== 204) body = typeof xhr.response === "undefined" ? xhr.responseText : xhr.response;
|
|
593
593
|
let success = status >= 200 && status < 300;
|
|
594
594
|
if (responseType === "json" && typeof body === "string") {
|
|
595
595
|
const originalBody = body;
|
|
@@ -751,7 +751,7 @@ const MergeInterceptorFactory = (config, options = {}) => {
|
|
|
751
751
|
});
|
|
752
752
|
next(mergeParamsToRequest(list, requestConfig)).subscribe({
|
|
753
753
|
next: (e) => {
|
|
754
|
-
if (e.type ===
|
|
754
|
+
if (e.type === 1) {
|
|
755
755
|
const body = e.body;
|
|
756
756
|
const configList = distributeResult(body, list);
|
|
757
757
|
currentHookList.forEach((hookItem) => {
|
package/lib/umd/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
(function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require(`@univerjs/core`),require(`rxjs`),require(`rxjs/operators`)):typeof define==`function`&&define.amd?define([`exports`,`@univerjs/core`,`rxjs`,`rxjs/operators`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.UniverNetwork={},e.UniverCore,e.rxjs,e.rxjs.operators))})(this,function(e,t,n,r){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var i=`@univerjs/network`,a=`0.
|
|
2
|
-
`).forEach(e=>{let[t,n]=e.split(`:`);t&&n&&this._setHeader(t,n)})}_handleHeadersConstructorProps(e){Object.entries(e).forEach(([e,t])=>this._setHeader(e,t))}_handleHeaders(e){e.forEach((e,t)=>this._setHeader(t,e))}};let h=(0,t.createIdentifier)(`network.http-implementation`);var g=class{constructor(e){this.params=e}toString(){return this.params?Object.keys(this.params).map(e=>{let t=this.params[e];return Array.isArray(t)?t.map(t=>`${e}=${t}`).join(`&`):`${e}=${t}`}).join(`&`):``}};let _=0;var v=class{get headers(){return this.requestParams.headers}get withCredentials(){return this.requestParams.withCredentials}get responseType(){return this.requestParams.responseType}constructor(e,t,n){this.method=e,this.url=t,this.requestParams=n,d(this,`uid`,_++)}getUrlWithParams(){var e;let t=(e=this.requestParams)==null||(e=e.params)==null?void 0:e.toString();return t?`${this.url}${this.url.includes(`?`)?`&`:`?`}${t}`:this.url}getBody(){var e,t;let n=(e=this.headers.get(`Content-Type`))==null?f:e,r=(t=this.requestParams)==null?void 0:t.body;return r instanceof FormData?r:p(n)&&r&&typeof r==`object`?JSON.stringify(r):r?`${r}`:null}getHeadersInit(){var e;return this.headers.toHeadersInit((e=this.requestParams)==null?void 0:e.body)}};function y(e,t){return function(n,r){t(n,r,e)}}function b(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}let x=class extends t.Disposable{constructor(e){super(),this._http=e,d(this,`_interceptors`,[]),d(this,`_pipe`,void 0)}registerHTTPInterceptor(e){if(this._interceptors.indexOf(e)!==-1)throw Error(`[HTTPService]: The interceptor has already been registered!`);return this._interceptors.push(e),this._interceptors=this._interceptors.sort((e,t)=>{var n,r;return((n=e.priority)==null?0:n)-((r=t.priority)==null?0:r)}),this._pipe=null,(0,t.toDisposable)(()=>(0,t.remove)(this._interceptors,e))}get(e,t){return this.request(`GET`,e,t)}post(e,t){return this.request(`POST`,e,t)}put(e,t){return this.request(`PUT`,e,t)}delete(e,t){return this.request(`DELETE`,e,t)}patch(e,t){return this.request(`PATCH`,e,t)}async request(e,t,i){var a,o;return await(0,n.firstValueFrom)((0,n.of)(new v(e,t,{headers:new m(i==null?void 0:i.headers),params:new g(i==null?void 0:i.params),withCredentials:(a=i==null?void 0:i.withCredentials)==null?!1:a,responseType:(o=i==null?void 0:i.responseType)==null?`json`:o,body:[`GET`,`DELETE`].includes(e)||i==null?void 0:i.body})).pipe((0,r.concatMap)(e=>this._runInterceptorsAndImplementation(e))))}stream(e,t,n){return this.getSSE(e,t,n)}getSSE(e,t,i){var a,o;return(0,n.of)(new v(e,t,{headers:new m(i==null?void 0:i.headers),params:new g(i==null?void 0:i.params),withCredentials:(a=i==null?void 0:i.withCredentials)==null?!1:a,reportProgress:!0,responseType:(o=i==null?void 0:i.responseType)==null?`json`:o,body:[`GET`,`DELETE`].includes(e)||i==null?void 0:i.body})).pipe((0,r.concatMap)(e=>this._runInterceptorsAndImplementation(e)))}_runInterceptorsAndImplementation(e){return this._pipe||(this._pipe=this._interceptors.map(e=>e.interceptor).reduceRight((e,t)=>S(e,t),(e,t)=>t(e))),this._pipe(e,e=>this._http.send(e))}};x=b([y(0,h)],x);function S(e,t){return(n,r)=>t(n,t=>e(t,r))}let C=function(e){return e[e.Continue=100]=`Continue`,e[e.SwitchingProtocols=101]=`SwitchingProtocols`,e[e.Processing=102]=`Processing`,e[e.EarlyHints=103]=`EarlyHints`,e[e.Ok=200]=`Ok`,e[e.Created=201]=`Created`,e[e.Accepted=202]=`Accepted`,e[e.NonAuthoritativeInformation=203]=`NonAuthoritativeInformation`,e[e.NoContent=204]=`NoContent`,e[e.ResetContent=205]=`ResetContent`,e[e.PartialContent=206]=`PartialContent`,e[e.MultiStatus=207]=`MultiStatus`,e[e.AlreadyReported=208]=`AlreadyReported`,e[e.ImUsed=226]=`ImUsed`,e[e.MultipleChoices=300]=`MultipleChoices`,e[e.MovedPermanently=301]=`MovedPermanently`,e[e.Found=302]=`Found`,e[e.SeeOther=303]=`SeeOther`,e[e.NotModified=304]=`NotModified`,e[e.UseProxy=305]=`UseProxy`,e[e.Unused=306]=`Unused`,e[e.TemporaryRedirect=307]=`TemporaryRedirect`,e[e.PermanentRedirect=308]=`PermanentRedirect`,e[e.BadRequest=400]=`BadRequest`,e[e.Unauthorized=401]=`Unauthorized`,e[e.PaymentRequired=402]=`PaymentRequired`,e[e.Forbidden=403]=`Forbidden`,e[e.NotFound=404]=`NotFound`,e[e.MethodNotAllowed=405]=`MethodNotAllowed`,e[e.NotAcceptable=406]=`NotAcceptable`,e[e.ProxyAuthenticationRequired=407]=`ProxyAuthenticationRequired`,e[e.RequestTimeout=408]=`RequestTimeout`,e[e.Conflict=409]=`Conflict`,e[e.Gone=410]=`Gone`,e[e.LengthRequired=411]=`LengthRequired`,e[e.PreconditionFailed=412]=`PreconditionFailed`,e[e.PayloadTooLarge=413]=`PayloadTooLarge`,e[e.UriTooLong=414]=`UriTooLong`,e[e.UnsupportedMediaType=415]=`UnsupportedMediaType`,e[e.RangeNotSatisfiable=416]=`RangeNotSatisfiable`,e[e.ExpectationFailed=417]=`ExpectationFailed`,e[e.ImATeapot=418]=`ImATeapot`,e[e.MisdirectedRequest=421]=`MisdirectedRequest`,e[e.UnprocessableEntity=422]=`UnprocessableEntity`,e[e.Locked=423]=`Locked`,e[e.FailedDependency=424]=`FailedDependency`,e[e.TooEarly=425]=`TooEarly`,e[e.UpgradeRequired=426]=`UpgradeRequired`,e[e.PreconditionRequired=428]=`PreconditionRequired`,e[e.TooManyRequests=429]=`TooManyRequests`,e[e.RequestHeaderFieldsTooLarge=431]=`RequestHeaderFieldsTooLarge`,e[e.UnavailableForLegalReasons=451]=`UnavailableForLegalReasons`,e[e.InternalServerError=500]=`InternalServerError`,e[e.NotImplemented=501]=`NotImplemented`,e[e.BadGateway=502]=`BadGateway`,e[e.ServiceUnavailable=503]=`ServiceUnavailable`,e[e.GatewayTimeout=504]=`GatewayTimeout`,e[e.HttpVersionNotSupported=505]=`HttpVersionNotSupported`,e[e.VariantAlsoNegotiates=506]=`VariantAlsoNegotiates`,e[e.InsufficientStorage=507]=`InsufficientStorage`,e[e.LoopDetected=508]=`LoopDetected`,e[e.NotExtended=510]=`NotExtended`,e[e.NetworkAuthenticationRequired=511]=`NetworkAuthenticationRequired`,e}({}),w=function(e){return e[e.DownloadProgress=0]=`DownloadProgress`,e[e.Response=1]=`Response`,e}({});var T=class{constructor({body:e,headers:t,status:n,statusText:r}){d(this,`type`,w.Response),d(this,`body`,void 0),d(this,`headers`,void 0),d(this,`status`,void 0),d(this,`statusText`,void 0),this.body=e,this.headers=t,this.status=n,this.statusText=r}},E=class{constructor(e,t,n){this.total=e,this.loaded=t,this.partialText=n,d(this,`type`,w.DownloadProgress)}},D=class{constructor(e,t,n){this.headers=e,this.status=t,this.statusText=n}},O=class{constructor({request:e,headers:t,status:n,statusText:r,error:i}){d(this,`request`,void 0),d(this,`headers`,void 0),d(this,`status`,void 0),d(this,`statusText`,void 0),d(this,`error`,void 0),this.request=e,this.headers=t,this.status=n,this.statusText=r,this.error=i}};function k(e){return{method:e.method,headers:e.getHeadersInit(),body:e.getBody(),credentials:e.withCredentials?`include`:void 0}}let A=class{constructor(e){this._logService=e}send(e){return new n.Observable(t=>{let n=new AbortController;return this._send(e,t,n).catch(n=>{t.error(new O({error:n,request:e}))}),()=>n.abort()})}async _send(e,t,n){let r;try{let t=k(e),i=e.getUrlWithParams(),a=fetch(i,{signal:n.signal,...t});this._logService.debug(`[FetchHTTPImplementation]: sending request to url ${i} with params ${t}`),r=await a}catch(n){var i,a;let r=new O({request:e,error:n,status:(i=n.status)==null?0:i,statusText:(a=n.statusText)==null?`Unknown Error`:a,headers:n.headers});this._logService.error(`[FetchHTTPImplementation]: network error`,r),t.error(r);return}let o=new m(r.headers),s=r.status,c=r.statusText,l=null;if(r.body&&(l=await this._readBody(e,r,t)),s>=C.Ok&&s<C.MultipleChoices)t.next(new T({body:l,headers:o,status:s,statusText:c}));else{let n=new O({request:e,error:l,status:s,statusText:c,headers:o});this._logService.error(`[FetchHTTPImplementation]: network error`,n),t.error(n)}t.complete()}async _readBody(e,t,n){var r;let i=[],a=t.body.getReader(),o=t.headers.get(`content-length`),s=0,c=(r=e.requestParams)==null?void 0:r.reportProgress,l=e.responseType,u,d;for(;;){let{done:e,value:t}=await a.read();if(e)break;if(i.push(t),s+=t.length,c&&l===`text`){var f,p;u=((f=u)==null?``:f)+((p=d)==null?d=new TextDecoder:p).decode(t,{stream:!0}),n.next(new E(o?Number.parseInt(o,10):void 0,s,u))}}let h=j(i,s);try{var g;return N(e,h,(g=t.headers.get(`content-type`))==null?``:g)}catch(r){let i=new O({request:e,error:r,status:t.status,statusText:t.statusText,headers:new m(t.headers)});return this._logService.error(`[FetchHTTPImplementation]: network error`,i),n.error(i),null}}};A=b([y(0,t.ILogService)],A);function j(e,t){let n=new Uint8Array(t),r=0;for(let t of e)n.set(t,r),r+=t.length;return n}let M=/^\)\]\}',?\n/;function N(e,t,n){switch(e.responseType){case`json`:let r=new TextDecoder().decode(t).replace(M,``);return r===``?null:JSON.parse(r);case`text`:return new TextDecoder().decode(t);case`blob`:return new Blob([t.buffer],{type:n});case`arraybuffer`:return t.buffer;default:throw Error(`[FetchHTTPImplementation]: unknown response type: ${e.responseType}.`)}}let P=class{constructor(e){this._logService=e}send(e){return new n.Observable(t=>{let n=new XMLHttpRequest,r=e.getUrlWithParams(),i=k(e),{responseType:a}=e;n.open(e.method,r),e.withCredentials&&(n.withCredentials=!0),i.headers&&Object.entries(i.headers).forEach(([e,t])=>n.setRequestHeader(e,t));let o=()=>{let e=n.statusText||`OK`;return new D(new m(n.getAllResponseHeaders()),n.status,e)},s=()=>{let{headers:r,statusText:i,status:s}=o(),c=null,l=null;s!==C.NoContent&&(c=n.response===void 0?n.responseText:n.response);let u=s>=200&&s<300;if(a===`json`&&typeof c==`string`){let e=c;try{c=c?JSON.parse(c):null}catch(t){u=!1,c=e,l=t}}if(a===`blob`&&!(c instanceof Blob)&&(u=!1,l=Error(`Response is not a Blob object`)),u)t.next(new T({body:c,headers:r,status:s,statusText:i}));else{let n=new O({request:e,error:l,headers:r,status:s,statusText:i});this._logService.error(`[XHRHTTPImplementation]: network error`,n),t.error(n)}},c=r=>{let i=new O({request:e,error:r,status:n.status||0,statusText:n.statusText||`Unknown Error`,headers:o().headers});this._logService.error(`[XHRHTTPImplementation]: network error`,i),t.error(i)};n.responseType=a||``,n.addEventListener(`load`,s),n.addEventListener(`error`,c),n.addEventListener(`abort`,c),n.addEventListener(`timeout`,c);let l=e.getBody();return n.send(l),this._logService.debug(`[XHRHTTPImplementation]`,`sending request to url ${r} with params ${i}`),()=>{n.readyState!==n.DONE&&n.abort(),n.removeEventListener(`load`,s),n.removeEventListener(`error`,c),n.removeEventListener(`abort`,c),n.removeEventListener(`timeout`,c)}})}};P=b([y(0,t.ILogService)],P);let F=class extends t.Plugin{constructor(e=s,n,r,i){super(),this._config=e,this._logger=n,this._injector=r,this._configService=i;let{...a}=(0,t.merge)({},s,this._config);this._configService.setConfig(o,a)}onStarting(){var e,n,r;if(this._injector.get(x,t.Quantity.OPTIONAL,t.LookUp.SKIP_SELF)&&!((e=this._config)!=null&&e.forceUseNewInstance)){this._logger.warn(`[UniverNetworkPlugin]`,`HTTPService is already registered in an ancestor interceptor. Skipping registration. If you want to force a new instance, set "forceUseNewInstance" to true in the plugin configuration.`);return}let i=(n=this._config)!=null&&n.useFetchImpl?A:typeof window<`u`?P:A;(0,t.registerDependencies)(this._injector,(0,t.mergeOverrideWithDependencies)([[x],[h,{useClass:i}]],(r=this._config)==null?void 0:r.override))}};d(F,`pluginName`,`UNIVER_NETWORK_PLUGIN`),d(F,`packageName`,i),d(F,`version`,a),F=b([y(1,t.ILogService),y(2,(0,t.Inject)(t.Injector)),y(3,t.IConfigService)],F);let I=e=>{let{errorStatusCodes:t,onAuthError:r}=e;return(e,i)=>i(e).pipe((0,n.catchError)(e=>(e instanceof O&&t.some(t=>t===e.status)&&r(),(0,n.throwError)(()=>e))))},L=(e=300)=>{let t=()=>{};return n=>new Promise(n=>{t();let r=setTimeout(()=>{n(!0)},e);t=()=>{clearTimeout(r),n(!1)}})},R=()=>(e,t)=>t.map(t=>({config:t,result:e})),z=(e,t={})=>{let{isMatch:r,getParamsFromRequest:i,mergeParamsToRequest:a}=e,{fetchCheck:o=L(300),distributeResult:s=R()}=t,c=[],l=e=>e.map(e=>e.config);return(e,t)=>r(e)?new n.Observable(n=>{let r=i(e);c.push({next:e=>n.next(e),error:e=>n.error(e),config:r});let u=l(c);o(e).then(r=>{if(r){let r=[];u.forEach(e=>{let t=c.findIndex(t=>t.config===e);if(t>=0){let[e]=c.splice(t,1);r.push(e)}}),t(a(u,e)).subscribe({next:e=>{if(e.type===w.Response){let t=e.body,n=s(t,u);r.forEach(t=>{let r=n.find(e=>e.config===t.config);if(r){let n=new T({body:r.result,headers:e.headers,status:e.status,statusText:e.statusText});t.next(n)}else t.error(`batch error`)})}},complete:()=>n.complete(),error:e=>n.error(e)})}})}):t(e)},B=e=>{var t,n;let i=(t=e==null?void 0:e.maxRetryAttempts)==null?3:t,a=(n=e==null?void 0:e.delayInterval)==null?1e3:n;return(e,t)=>t(e).pipe((0,r.retry)({delay:a,count:i}))},V=e=>{let r=[],i=new Set,a=()=>{for(var t;i.size<((t=e==null?void 0:e.maxParallel)==null?1:t)&&r.length>0;){let e=r.shift();i.add(e),e()}};return(e,o)=>new n.Observable(n=>{let s=()=>o(e).subscribe({next:e=>n.next(e),error:e=>n.error(e),complete:()=>n.complete()});return r.push(s),a(),()=>{i.delete(s),(0,t.remove)(r,s),a()}})},H=(0,t.createIdentifier)(`univer.network.socket.service`);var U=class extends t.Disposable{createSocket(e){try{let i=new WebSocket(e),a=new t.DisposableCollection;return{URL:e,close:(e,t)=>{i.close(e,t),a.dispose()},send:e=>{i.send(e)},open$:new n.Observable(e=>{let n=t=>e.next(t);i.addEventListener(`open`,n),a.add((0,t.toDisposable)(()=>i.removeEventListener(`open`,n)))}).pipe((0,r.share)()),close$:new n.Observable(e=>{let n=t=>e.next(t);i.addEventListener(`close`,n),a.add((0,t.toDisposable)(()=>i.removeEventListener(`close`,n)))}).pipe((0,r.share)()),error$:new n.Observable(e=>{let n=t=>e.next(t);i.addEventListener(`error`,n),a.add((0,t.toDisposable)(()=>i.removeEventListener(`error`,n)))}).pipe((0,r.share)()),message$:new n.Observable(e=>{let n=t=>e.next(t);i.addEventListener(`message`,n),a.add((0,t.toDisposable)(()=>i.removeEventListener(`message`,n)))}).pipe((0,r.share)())}}catch(e){return console.error(e),null}}};e.AuthInterceptorFactory=I,Object.defineProperty(e,`FetchHTTPImplementation`,{enumerable:!0,get:function(){return A}}),e.HTTPEventType=w,e.HTTPHeaders=m,e.HTTPProgress=E,e.HTTPRequest=v,e.HTTPResponse=T,e.HTTPResponseError=O,Object.defineProperty(e,`HTTPService`,{enumerable:!0,get:function(){return x}}),e.HTTPStatusCode=C,e.IHTTPImplementation=h,e.ISocketService=H,e.MergeInterceptorFactory=z,e.ResponseHeader=D,e.RetryInterceptorFactory=B,e.ThresholdInterceptorFactory=V,Object.defineProperty(e,`UniverNetworkPlugin`,{enumerable:!0,get:function(){return F}}),e.WebSocketService=U,Object.defineProperty(e,`XHRHTTPImplementation`,{enumerable:!0,get:function(){return P}})});
|
|
1
|
+
(function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require(`@univerjs/core`),require(`rxjs`),require(`rxjs/operators`)):typeof define==`function`&&define.amd?define([`exports`,`@univerjs/core`,`rxjs`,`rxjs/operators`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.UniverNetwork={},e.UniverCore,e.rxjs,e.rxjs.operators))})(this,function(e,t,n,r){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var i=`@univerjs/network`,a=`0.22.0`;let o=`network.config`;Symbol(o);let s={};function c(e){"@babel/helpers - typeof";return c=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},c(e)}function l(e,t){if(c(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(c(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function u(e){var t=l(e,`string`);return c(t)==`symbol`?t:t+``}function d(e,t,n){return(t=u(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}let f=`application/json`;function p(e){return Array.isArray(e)?e.some(e=>e.includes(f)):e.includes(f)}var m=class{constructor(e){d(this,`_headers`,new Map),typeof e==`string`?this._handleHeadersString(e):e instanceof Headers?this._handleHeaders(e):e&&this._handleHeadersConstructorProps(e)}forEach(e){this._headers.forEach((t,n)=>e(n,t))}has(e){return!!this._headers.has(e.toLowerCase())}get(e){let t=e.toLowerCase();return this._headers.has(t)?this._headers.get(t):null}set(e,t){this._setHeader(e,t)}toHeadersInit(e){let t={};return this._headers.forEach((e,n)=>{t[n]=e.join(`,`)}),t.accept!=null||(t.accept=`application/json, text/plain, */*`),!(e instanceof FormData)&&(t[`content-type`]!=null||(t[`content-type`]=`application/json;charset=UTF-8`)),t}_setHeader(e,t){let n=e.toLowerCase();this._headers.has(n)?this._headers.get(n).push(t.toString()):this._headers.set(n,[t.toString()])}_handleHeadersString(e){e.split(`
|
|
2
|
+
`).forEach(e=>{let[t,n]=e.split(`:`);t&&n&&this._setHeader(t,n)})}_handleHeadersConstructorProps(e){Object.entries(e).forEach(([e,t])=>this._setHeader(e,t))}_handleHeaders(e){e.forEach((e,t)=>this._setHeader(t,e))}};let h=(0,t.createIdentifier)(`network.http-implementation`);var g=class{constructor(e){this.params=e}toString(){return this.params?Object.keys(this.params).map(e=>{let t=this.params[e];return Array.isArray(t)?t.map(t=>`${e}=${t}`).join(`&`):`${e}=${t}`}).join(`&`):``}};let _=0;var v=class{get headers(){return this.requestParams.headers}get withCredentials(){return this.requestParams.withCredentials}get responseType(){return this.requestParams.responseType}constructor(e,t,n){this.method=e,this.url=t,this.requestParams=n,d(this,`uid`,_++)}getUrlWithParams(){var e;let t=(e=this.requestParams)==null||(e=e.params)==null?void 0:e.toString();return t?`${this.url}${this.url.includes(`?`)?`&`:`?`}${t}`:this.url}getBody(){var e,t;let n=(e=this.headers.get(`Content-Type`))==null?f:e,r=(t=this.requestParams)==null?void 0:t.body;return r instanceof FormData?r:p(n)&&r&&typeof r==`object`?JSON.stringify(r):r?`${r}`:null}getHeadersInit(){var e;return this.headers.toHeadersInit((e=this.requestParams)==null?void 0:e.body)}};function y(e,t){return function(n,r){t(n,r,e)}}function b(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}let x=class extends t.Disposable{constructor(e){super(),this._http=e,d(this,`_interceptors`,[]),d(this,`_pipe`,void 0)}registerHTTPInterceptor(e){if(this._interceptors.indexOf(e)!==-1)throw Error(`[HTTPService]: The interceptor has already been registered!`);return this._interceptors.push(e),this._interceptors=this._interceptors.sort((e,t)=>{var n,r;return((n=e.priority)==null?0:n)-((r=t.priority)==null?0:r)}),this._pipe=null,(0,t.toDisposable)(()=>(0,t.remove)(this._interceptors,e))}get(e,t){return this.request(`GET`,e,t)}post(e,t){return this.request(`POST`,e,t)}put(e,t){return this.request(`PUT`,e,t)}delete(e,t){return this.request(`DELETE`,e,t)}patch(e,t){return this.request(`PATCH`,e,t)}async request(e,t,i){var a,o;return await(0,n.firstValueFrom)((0,n.of)(new v(e,t,{headers:new m(i==null?void 0:i.headers),params:new g(i==null?void 0:i.params),withCredentials:(a=i==null?void 0:i.withCredentials)==null?!1:a,responseType:(o=i==null?void 0:i.responseType)==null?`json`:o,body:[`GET`,`DELETE`].includes(e)||i==null?void 0:i.body})).pipe((0,r.concatMap)(e=>this._runInterceptorsAndImplementation(e))))}stream(e,t,n){return this.getSSE(e,t,n)}getSSE(e,t,i){var a,o;return(0,n.of)(new v(e,t,{headers:new m(i==null?void 0:i.headers),params:new g(i==null?void 0:i.params),withCredentials:(a=i==null?void 0:i.withCredentials)==null?!1:a,reportProgress:!0,responseType:(o=i==null?void 0:i.responseType)==null?`json`:o,body:[`GET`,`DELETE`].includes(e)||i==null?void 0:i.body})).pipe((0,r.concatMap)(e=>this._runInterceptorsAndImplementation(e)))}_runInterceptorsAndImplementation(e){return this._pipe||(this._pipe=this._interceptors.map(e=>e.interceptor).reduceRight((e,t)=>S(e,t),(e,t)=>t(e))),this._pipe(e,e=>this._http.send(e))}};x=b([y(0,h)],x);function S(e,t){return(n,r)=>t(n,t=>e(t,r))}let C=function(e){return e[e.Continue=100]=`Continue`,e[e.SwitchingProtocols=101]=`SwitchingProtocols`,e[e.Processing=102]=`Processing`,e[e.EarlyHints=103]=`EarlyHints`,e[e.Ok=200]=`Ok`,e[e.Created=201]=`Created`,e[e.Accepted=202]=`Accepted`,e[e.NonAuthoritativeInformation=203]=`NonAuthoritativeInformation`,e[e.NoContent=204]=`NoContent`,e[e.ResetContent=205]=`ResetContent`,e[e.PartialContent=206]=`PartialContent`,e[e.MultiStatus=207]=`MultiStatus`,e[e.AlreadyReported=208]=`AlreadyReported`,e[e.ImUsed=226]=`ImUsed`,e[e.MultipleChoices=300]=`MultipleChoices`,e[e.MovedPermanently=301]=`MovedPermanently`,e[e.Found=302]=`Found`,e[e.SeeOther=303]=`SeeOther`,e[e.NotModified=304]=`NotModified`,e[e.UseProxy=305]=`UseProxy`,e[e.Unused=306]=`Unused`,e[e.TemporaryRedirect=307]=`TemporaryRedirect`,e[e.PermanentRedirect=308]=`PermanentRedirect`,e[e.BadRequest=400]=`BadRequest`,e[e.Unauthorized=401]=`Unauthorized`,e[e.PaymentRequired=402]=`PaymentRequired`,e[e.Forbidden=403]=`Forbidden`,e[e.NotFound=404]=`NotFound`,e[e.MethodNotAllowed=405]=`MethodNotAllowed`,e[e.NotAcceptable=406]=`NotAcceptable`,e[e.ProxyAuthenticationRequired=407]=`ProxyAuthenticationRequired`,e[e.RequestTimeout=408]=`RequestTimeout`,e[e.Conflict=409]=`Conflict`,e[e.Gone=410]=`Gone`,e[e.LengthRequired=411]=`LengthRequired`,e[e.PreconditionFailed=412]=`PreconditionFailed`,e[e.PayloadTooLarge=413]=`PayloadTooLarge`,e[e.UriTooLong=414]=`UriTooLong`,e[e.UnsupportedMediaType=415]=`UnsupportedMediaType`,e[e.RangeNotSatisfiable=416]=`RangeNotSatisfiable`,e[e.ExpectationFailed=417]=`ExpectationFailed`,e[e.ImATeapot=418]=`ImATeapot`,e[e.MisdirectedRequest=421]=`MisdirectedRequest`,e[e.UnprocessableEntity=422]=`UnprocessableEntity`,e[e.Locked=423]=`Locked`,e[e.FailedDependency=424]=`FailedDependency`,e[e.TooEarly=425]=`TooEarly`,e[e.UpgradeRequired=426]=`UpgradeRequired`,e[e.PreconditionRequired=428]=`PreconditionRequired`,e[e.TooManyRequests=429]=`TooManyRequests`,e[e.RequestHeaderFieldsTooLarge=431]=`RequestHeaderFieldsTooLarge`,e[e.UnavailableForLegalReasons=451]=`UnavailableForLegalReasons`,e[e.InternalServerError=500]=`InternalServerError`,e[e.NotImplemented=501]=`NotImplemented`,e[e.BadGateway=502]=`BadGateway`,e[e.ServiceUnavailable=503]=`ServiceUnavailable`,e[e.GatewayTimeout=504]=`GatewayTimeout`,e[e.HttpVersionNotSupported=505]=`HttpVersionNotSupported`,e[e.VariantAlsoNegotiates=506]=`VariantAlsoNegotiates`,e[e.InsufficientStorage=507]=`InsufficientStorage`,e[e.LoopDetected=508]=`LoopDetected`,e[e.NotExtended=510]=`NotExtended`,e[e.NetworkAuthenticationRequired=511]=`NetworkAuthenticationRequired`,e}({}),w=function(e){return e[e.DownloadProgress=0]=`DownloadProgress`,e[e.Response=1]=`Response`,e}({});var T=class{constructor({body:e,headers:t,status:n,statusText:r}){d(this,`type`,1),d(this,`body`,void 0),d(this,`headers`,void 0),d(this,`status`,void 0),d(this,`statusText`,void 0),this.body=e,this.headers=t,this.status=n,this.statusText=r}},E=class{constructor(e,t,n){this.total=e,this.loaded=t,this.partialText=n,d(this,`type`,0)}},D=class{constructor(e,t,n){this.headers=e,this.status=t,this.statusText=n}},O=class{constructor({request:e,headers:t,status:n,statusText:r,error:i}){d(this,`request`,void 0),d(this,`headers`,void 0),d(this,`status`,void 0),d(this,`statusText`,void 0),d(this,`error`,void 0),this.request=e,this.headers=t,this.status=n,this.statusText=r,this.error=i}};function k(e){return{method:e.method,headers:e.getHeadersInit(),body:e.getBody(),credentials:e.withCredentials?`include`:void 0}}let A=class{constructor(e){this._logService=e}send(e){return new n.Observable(t=>{let n=new AbortController;return this._send(e,t,n).catch(n=>{t.error(new O({error:n,request:e}))}),()=>n.abort()})}async _send(e,t,n){let r;try{let t=k(e),i=e.getUrlWithParams(),a=fetch(i,{signal:n.signal,...t});this._logService.debug(`[FetchHTTPImplementation]: sending request to url ${i} with params ${t}`),r=await a}catch(n){var i,a;let r=new O({request:e,error:n,status:(i=n.status)==null?0:i,statusText:(a=n.statusText)==null?`Unknown Error`:a,headers:n.headers});this._logService.error(`[FetchHTTPImplementation]: network error`,r),t.error(r);return}let o=new m(r.headers),s=r.status,c=r.statusText,l=null;if(r.body&&(l=await this._readBody(e,r,t)),s>=200&&s<300)t.next(new T({body:l,headers:o,status:s,statusText:c}));else{let n=new O({request:e,error:l,status:s,statusText:c,headers:o});this._logService.error(`[FetchHTTPImplementation]: network error`,n),t.error(n)}t.complete()}async _readBody(e,t,n){var r;let i=[],a=t.body.getReader(),o=t.headers.get(`content-length`),s=0,c=(r=e.requestParams)==null?void 0:r.reportProgress,l=e.responseType,u,d;for(;;){let{done:e,value:t}=await a.read();if(e)break;if(i.push(t),s+=t.length,c&&l===`text`){var f,p;u=((f=u)==null?``:f)+((p=d)==null?d=new TextDecoder:p).decode(t,{stream:!0}),n.next(new E(o?Number.parseInt(o,10):void 0,s,u))}}let h=j(i,s);try{var g;return N(e,h,(g=t.headers.get(`content-type`))==null?``:g)}catch(r){let i=new O({request:e,error:r,status:t.status,statusText:t.statusText,headers:new m(t.headers)});return this._logService.error(`[FetchHTTPImplementation]: network error`,i),n.error(i),null}}};A=b([y(0,t.ILogService)],A);function j(e,t){let n=new Uint8Array(t),r=0;for(let t of e)n.set(t,r),r+=t.length;return n}let M=/^\)\]\}',?\n/;function N(e,t,n){switch(e.responseType){case`json`:let r=new TextDecoder().decode(t).replace(M,``);return r===``?null:JSON.parse(r);case`text`:return new TextDecoder().decode(t);case`blob`:return new Blob([t.buffer],{type:n});case`arraybuffer`:return t.buffer;default:throw Error(`[FetchHTTPImplementation]: unknown response type: ${e.responseType}.`)}}let P=class{constructor(e){this._logService=e}send(e){return new n.Observable(t=>{let n=new XMLHttpRequest,r=e.getUrlWithParams(),i=k(e),{responseType:a}=e;n.open(e.method,r),e.withCredentials&&(n.withCredentials=!0),i.headers&&Object.entries(i.headers).forEach(([e,t])=>n.setRequestHeader(e,t));let o=()=>{let e=n.statusText||`OK`;return new D(new m(n.getAllResponseHeaders()),n.status,e)},s=()=>{let{headers:r,statusText:i,status:s}=o(),c=null,l=null;s!==204&&(c=n.response===void 0?n.responseText:n.response);let u=s>=200&&s<300;if(a===`json`&&typeof c==`string`){let e=c;try{c=c?JSON.parse(c):null}catch(t){u=!1,c=e,l=t}}if(a===`blob`&&!(c instanceof Blob)&&(u=!1,l=Error(`Response is not a Blob object`)),u)t.next(new T({body:c,headers:r,status:s,statusText:i}));else{let n=new O({request:e,error:l,headers:r,status:s,statusText:i});this._logService.error(`[XHRHTTPImplementation]: network error`,n),t.error(n)}},c=r=>{let i=new O({request:e,error:r,status:n.status||0,statusText:n.statusText||`Unknown Error`,headers:o().headers});this._logService.error(`[XHRHTTPImplementation]: network error`,i),t.error(i)};n.responseType=a||``,n.addEventListener(`load`,s),n.addEventListener(`error`,c),n.addEventListener(`abort`,c),n.addEventListener(`timeout`,c);let l=e.getBody();return n.send(l),this._logService.debug(`[XHRHTTPImplementation]`,`sending request to url ${r} with params ${i}`),()=>{n.readyState!==n.DONE&&n.abort(),n.removeEventListener(`load`,s),n.removeEventListener(`error`,c),n.removeEventListener(`abort`,c),n.removeEventListener(`timeout`,c)}})}};P=b([y(0,t.ILogService)],P);let F=class extends t.Plugin{constructor(e=s,n,r,i){super(),this._config=e,this._logger=n,this._injector=r,this._configService=i;let{...a}=(0,t.merge)({},s,this._config);this._configService.setConfig(o,a)}onStarting(){var e,n,r;if(this._injector.get(x,t.Quantity.OPTIONAL,t.LookUp.SKIP_SELF)&&!((e=this._config)!=null&&e.forceUseNewInstance)){this._logger.warn(`[UniverNetworkPlugin]`,`HTTPService is already registered in an ancestor interceptor. Skipping registration. If you want to force a new instance, set "forceUseNewInstance" to true in the plugin configuration.`);return}let i=(n=this._config)!=null&&n.useFetchImpl?A:typeof window<`u`?P:A;(0,t.registerDependencies)(this._injector,(0,t.mergeOverrideWithDependencies)([[x],[h,{useClass:i}]],(r=this._config)==null?void 0:r.override))}};d(F,`pluginName`,`UNIVER_NETWORK_PLUGIN`),d(F,`packageName`,i),d(F,`version`,a),F=b([y(1,t.ILogService),y(2,(0,t.Inject)(t.Injector)),y(3,t.IConfigService)],F);let I=e=>{let{errorStatusCodes:t,onAuthError:r}=e;return(e,i)=>i(e).pipe((0,n.catchError)(e=>(e instanceof O&&t.some(t=>t===e.status)&&r(),(0,n.throwError)(()=>e))))},L=(e=300)=>{let t=()=>{};return n=>new Promise(n=>{t();let r=setTimeout(()=>{n(!0)},e);t=()=>{clearTimeout(r),n(!1)}})},R=()=>(e,t)=>t.map(t=>({config:t,result:e})),z=(e,t={})=>{let{isMatch:r,getParamsFromRequest:i,mergeParamsToRequest:a}=e,{fetchCheck:o=L(300),distributeResult:s=R()}=t,c=[],l=e=>e.map(e=>e.config);return(e,t)=>r(e)?new n.Observable(n=>{let r=i(e);c.push({next:e=>n.next(e),error:e=>n.error(e),config:r});let u=l(c);o(e).then(r=>{if(r){let r=[];u.forEach(e=>{let t=c.findIndex(t=>t.config===e);if(t>=0){let[e]=c.splice(t,1);r.push(e)}}),t(a(u,e)).subscribe({next:e=>{if(e.type===1){let t=e.body,n=s(t,u);r.forEach(t=>{let r=n.find(e=>e.config===t.config);if(r){let n=new T({body:r.result,headers:e.headers,status:e.status,statusText:e.statusText});t.next(n)}else t.error(`batch error`)})}},complete:()=>n.complete(),error:e=>n.error(e)})}})}):t(e)},B=e=>{var t,n;let i=(t=e==null?void 0:e.maxRetryAttempts)==null?3:t,a=(n=e==null?void 0:e.delayInterval)==null?1e3:n;return(e,t)=>t(e).pipe((0,r.retry)({delay:a,count:i}))},V=e=>{let r=[],i=new Set,a=()=>{for(var t;i.size<((t=e==null?void 0:e.maxParallel)==null?1:t)&&r.length>0;){let e=r.shift();i.add(e),e()}};return(e,o)=>new n.Observable(n=>{let s=()=>o(e).subscribe({next:e=>n.next(e),error:e=>n.error(e),complete:()=>n.complete()});return r.push(s),a(),()=>{i.delete(s),(0,t.remove)(r,s),a()}})},H=(0,t.createIdentifier)(`univer.network.socket.service`);var U=class extends t.Disposable{createSocket(e){try{let i=new WebSocket(e),a=new t.DisposableCollection;return{URL:e,close:(e,t)=>{i.close(e,t),a.dispose()},send:e=>{i.send(e)},open$:new n.Observable(e=>{let n=t=>e.next(t);i.addEventListener(`open`,n),a.add((0,t.toDisposable)(()=>i.removeEventListener(`open`,n)))}).pipe((0,r.share)()),close$:new n.Observable(e=>{let n=t=>e.next(t);i.addEventListener(`close`,n),a.add((0,t.toDisposable)(()=>i.removeEventListener(`close`,n)))}).pipe((0,r.share)()),error$:new n.Observable(e=>{let n=t=>e.next(t);i.addEventListener(`error`,n),a.add((0,t.toDisposable)(()=>i.removeEventListener(`error`,n)))}).pipe((0,r.share)()),message$:new n.Observable(e=>{let n=t=>e.next(t);i.addEventListener(`message`,n),a.add((0,t.toDisposable)(()=>i.removeEventListener(`message`,n)))}).pipe((0,r.share)())}}catch(e){return console.error(e),null}}};e.AuthInterceptorFactory=I,Object.defineProperty(e,`FetchHTTPImplementation`,{enumerable:!0,get:function(){return A}}),e.HTTPEventType=w,e.HTTPHeaders=m,e.HTTPProgress=E,e.HTTPRequest=v,e.HTTPResponse=T,e.HTTPResponseError=O,Object.defineProperty(e,`HTTPService`,{enumerable:!0,get:function(){return x}}),e.HTTPStatusCode=C,e.IHTTPImplementation=h,e.ISocketService=H,e.MergeInterceptorFactory=z,e.ResponseHeader=D,e.RetryInterceptorFactory=B,e.ThresholdInterceptorFactory=V,Object.defineProperty(e,`UniverNetworkPlugin`,{enumerable:!0,get:function(){return F}}),e.WebSocketService=U,Object.defineProperty(e,`XHRHTTPImplementation`,{enumerable:!0,get:function(){return P}})});
|
package/package.json
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@univerjs/network",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.22.0",
|
|
4
4
|
"private": false,
|
|
5
|
-
"
|
|
5
|
+
"description": "Network service abstractions for Univer runtime integrations.",
|
|
6
|
+
"author": "DreamNum Co., Ltd. <developer@univer.ai>",
|
|
6
7
|
"license": "Apache-2.0",
|
|
7
8
|
"funding": {
|
|
8
9
|
"type": "opencollective",
|
|
@@ -17,7 +18,11 @@
|
|
|
17
18
|
"url": "https://github.com/dream-num/univer/issues"
|
|
18
19
|
},
|
|
19
20
|
"keywords": [
|
|
20
|
-
"univer"
|
|
21
|
+
"univer",
|
|
22
|
+
"network",
|
|
23
|
+
"http",
|
|
24
|
+
"collaboration",
|
|
25
|
+
"plugin"
|
|
21
26
|
],
|
|
22
27
|
"exports": {
|
|
23
28
|
".": {
|
|
@@ -57,13 +62,13 @@
|
|
|
57
62
|
"rxjs": ">=7.0.0"
|
|
58
63
|
},
|
|
59
64
|
"dependencies": {
|
|
60
|
-
"@univerjs/core": "0.
|
|
65
|
+
"@univerjs/core": "0.22.0"
|
|
61
66
|
},
|
|
62
67
|
"devDependencies": {
|
|
63
68
|
"rxjs": "^7.8.2",
|
|
64
|
-
"typescript": "^6.0.
|
|
65
|
-
"vitest": "^4.1.
|
|
66
|
-
"@univerjs-infra/shared": "0.
|
|
69
|
+
"typescript": "^6.0.3",
|
|
70
|
+
"vitest": "^4.1.5",
|
|
71
|
+
"@univerjs-infra/shared": "0.22.0"
|
|
67
72
|
},
|
|
68
73
|
"scripts": {
|
|
69
74
|
"test": "vitest run",
|