mphttpx 2.2.1 → 2.3.1

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 (95) hide show
  1. package/README.md +994 -994
  2. package/dist/cjs/fetchP.js +22 -0
  3. package/dist/cjs/index.js +197 -55
  4. package/dist/esm/fetchP.js +12 -0
  5. package/dist/esm/index.js +5 -18
  6. package/dist/index.d.ts +8 -394
  7. package/dist/mphttpx.cjs.js +6646 -0
  8. package/dist/mphttpx.cjs.min.js +1 -0
  9. package/dist/mphttpx.esm.js +6595 -0
  10. package/dist/mphttpx.esm.min.js +1 -0
  11. package/package.json +28 -9
  12. package/dist/cjs/encoding/TextDecoderP.js +0 -174
  13. package/dist/cjs/encoding/TextEncoderP.js +0 -121
  14. package/dist/cjs/event-system/AbortControllerP.js +0 -28
  15. package/dist/cjs/event-system/AbortSignalP.js +0 -120
  16. package/dist/cjs/event-system/CloseEventP.js +0 -36
  17. package/dist/cjs/event-system/CustomEventP.js +0 -35
  18. package/dist/cjs/event-system/EventP.js +0 -127
  19. package/dist/cjs/event-system/EventTargetP.js +0 -155
  20. package/dist/cjs/event-system/MessageEventP.js +0 -61
  21. package/dist/cjs/event-system/ProgressEventP.js +0 -42
  22. package/dist/cjs/fetch-api/BodyImpl.js +0 -167
  23. package/dist/cjs/fetch-api/HeadersP.js +0 -155
  24. package/dist/cjs/fetch-api/RequestP.js +0 -163
  25. package/dist/cjs/fetch-api/ResponseP.js +0 -93
  26. package/dist/cjs/fetch-api/fetchP.js +0 -118
  27. package/dist/cjs/file-system/BlobP.js +0 -111
  28. package/dist/cjs/file-system/FileP.js +0 -34
  29. package/dist/cjs/file-system/FileReaderP.js +0 -173
  30. package/dist/cjs/helpers/Payload.js +0 -96
  31. package/dist/cjs/helpers/decode.js +0 -11
  32. package/dist/cjs/helpers/emitEvent.js +0 -14
  33. package/dist/cjs/helpers/emitProgressEvent.js +0 -19
  34. package/dist/cjs/helpers/encode.js +0 -11
  35. package/dist/cjs/helpers/handlers.js +0 -23
  36. package/dist/cjs/helpers/isArrayBuffer.js +0 -11
  37. package/dist/cjs/helpers/isBlob.js +0 -20
  38. package/dist/cjs/helpers/isEventTarget.js +0 -18
  39. package/dist/cjs/helpers/isSequence.js +0 -13
  40. package/dist/cjs/helpers/isURLSearchParams.js +0 -10
  41. package/dist/cjs/helpers/normalizeMethod.js +0 -11
  42. package/dist/cjs/helpers/statusTextMap.js +0 -68
  43. package/dist/cjs/helpers/toBase64.js +0 -28
  44. package/dist/cjs/mini-program/WebSocketImpl.js +0 -197
  45. package/dist/cjs/mini-program/XMLHttpRequestImpl.js +0 -493
  46. package/dist/cjs/mini-program/connectSocket.js +0 -28
  47. package/dist/cjs/mini-program/platform.js +0 -29
  48. package/dist/cjs/mini-program/request.js +0 -36
  49. package/dist/cjs/network/FormDataP.js +0 -160
  50. package/dist/cjs/network/URLSearchParamsP.js +0 -226
  51. package/dist/cjs/network/XMLHttpRequestEventTargetP.js +0 -64
  52. package/dist/cjs/network/XMLHttpRequestUploadP.js +0 -28
  53. package/dist/cjs/utils.js +0 -56
  54. package/dist/esm/encoding/TextDecoderP.js +0 -171
  55. package/dist/esm/encoding/TextEncoderP.js +0 -118
  56. package/dist/esm/event-system/AbortControllerP.js +0 -25
  57. package/dist/esm/event-system/AbortSignalP.js +0 -115
  58. package/dist/esm/event-system/CloseEventP.js +0 -34
  59. package/dist/esm/event-system/CustomEventP.js +0 -32
  60. package/dist/esm/event-system/EventP.js +0 -122
  61. package/dist/esm/event-system/EventTargetP.js +0 -150
  62. package/dist/esm/event-system/MessageEventP.js +0 -59
  63. package/dist/esm/event-system/ProgressEventP.js +0 -40
  64. package/dist/esm/fetch-api/BodyImpl.js +0 -164
  65. package/dist/esm/fetch-api/HeadersP.js +0 -149
  66. package/dist/esm/fetch-api/RequestP.js +0 -160
  67. package/dist/esm/fetch-api/ResponseP.js +0 -90
  68. package/dist/esm/fetch-api/fetchP.js +0 -114
  69. package/dist/esm/file-system/BlobP.js +0 -108
  70. package/dist/esm/file-system/FileP.js +0 -31
  71. package/dist/esm/file-system/FileReaderP.js +0 -170
  72. package/dist/esm/helpers/Payload.js +0 -94
  73. package/dist/esm/helpers/decode.js +0 -9
  74. package/dist/esm/helpers/emitEvent.js +0 -12
  75. package/dist/esm/helpers/emitProgressEvent.js +0 -17
  76. package/dist/esm/helpers/encode.js +0 -9
  77. package/dist/esm/helpers/handlers.js +0 -20
  78. package/dist/esm/helpers/isArrayBuffer.js +0 -9
  79. package/dist/esm/helpers/isBlob.js +0 -18
  80. package/dist/esm/helpers/isEventTarget.js +0 -16
  81. package/dist/esm/helpers/isSequence.js +0 -11
  82. package/dist/esm/helpers/isURLSearchParams.js +0 -8
  83. package/dist/esm/helpers/normalizeMethod.js +0 -9
  84. package/dist/esm/helpers/statusTextMap.js +0 -66
  85. package/dist/esm/helpers/toBase64.js +0 -26
  86. package/dist/esm/mini-program/WebSocketImpl.js +0 -193
  87. package/dist/esm/mini-program/XMLHttpRequestImpl.js +0 -489
  88. package/dist/esm/mini-program/connectSocket.js +0 -26
  89. package/dist/esm/mini-program/platform.js +0 -27
  90. package/dist/esm/mini-program/request.js +0 -34
  91. package/dist/esm/network/FormDataP.js +0 -157
  92. package/dist/esm/network/URLSearchParamsP.js +0 -223
  93. package/dist/esm/network/XMLHttpRequestEventTargetP.js +0 -61
  94. package/dist/esm/network/XMLHttpRequestUploadP.js +0 -25
  95. package/dist/esm/utils.js +0 -48
@@ -1,13 +0,0 @@
1
- 'use strict';
2
-
3
- /** @internal */
4
- function isSequence(value) {
5
- return Array.isArray(value) || (!!value
6
- && typeof value === "object"
7
- && typeof Symbol === "function"
8
- && Symbol.iterator
9
- && Symbol.iterator in value
10
- && typeof value[Symbol.iterator] === "function");
11
- }
12
-
13
- exports.isSequence = isSequence;
@@ -1,10 +0,0 @@
1
- 'use strict';
2
-
3
- var utils = require('../utils.js');
4
-
5
- /** @internal */
6
- function isURLSearchParams(value) {
7
- return utils.isPolyfillType("URLSearchParams", value) || utils.isObjectType("URLSearchParams", value);
8
- }
9
-
10
- exports.isURLSearchParams = isURLSearchParams;
@@ -1,11 +0,0 @@
1
- 'use strict';
2
-
3
- // HTTP methods whose capitalization should be normalized
4
- const methods = ["CONNECT", "DELETE", "GET", "HEAD", "OPTIONS", "PATCH", "POST", "PUT", "TRACE"];
5
- /** @internal */
6
- function normalizeMethod(method) {
7
- let upcased = method.toUpperCase();
8
- return methods.indexOf(upcased) > -1 ? upcased : method;
9
- }
10
-
11
- exports.normalizeMethod = normalizeMethod;
@@ -1,68 +0,0 @@
1
- 'use strict';
2
-
3
- /** @internal */
4
- const statusTextMap = {
5
- 100: "Continue",
6
- 101: "Switching Protocols",
7
- 102: "Processing",
8
- 103: "Early Hints",
9
- 200: "OK",
10
- 201: "Created",
11
- 202: "Accepted",
12
- 203: "Non-Authoritative Information",
13
- 204: "No Content",
14
- 205: "Reset Content",
15
- 206: "Partial Content",
16
- 207: "Multi-Status",
17
- 208: "Already Reported",
18
- 226: "IM Used",
19
- 300: "Multiple Choices",
20
- 301: "Moved Permanently",
21
- 302: "Found",
22
- 303: "See Other",
23
- 304: "Not Modified",
24
- 307: "Temporary Redirect",
25
- 308: "Permanent Redirect",
26
- 400: "Bad Request",
27
- 401: "Unauthorized",
28
- 402: "Payment Required",
29
- 403: "Forbidden",
30
- 404: "Not Found",
31
- 405: "Method Not Allowed",
32
- 406: "Not Acceptable",
33
- 407: "Proxy Authentication Required",
34
- 408: "Request Timeout",
35
- 409: "Conflict",
36
- 410: "Gone",
37
- 411: "Length Required",
38
- 412: "Precondition Failed",
39
- 413: "Content Too Large",
40
- 414: "URI Too Long",
41
- 415: "Unsupported Media Type",
42
- 416: "Range Not Satisfiable",
43
- 417: "Expectation Failed",
44
- 418: "I'm a teapot",
45
- 421: "Misdirected Request",
46
- 422: "Unprocessable Entity",
47
- 423: "Locked",
48
- 424: "Failed Dependency",
49
- 425: "Too Early",
50
- 426: "Upgrade Required",
51
- 428: "Precondition Required",
52
- 429: "Too Many Requests",
53
- 431: "Request Header Fields Too Large",
54
- 451: "Unavailable For Legal Reasons",
55
- 500: "Internal Server Error",
56
- 501: "Not Implemented",
57
- 502: "Bad Gateway",
58
- 503: "Service Unavailable",
59
- 504: "Gateway Timeout",
60
- 505: "HTTP Version Not Supported",
61
- 506: "Variant Also Negotiates",
62
- 507: "Insufficient Storage",
63
- 508: "Loop Detected",
64
- 510: "Not Extended",
65
- 511: "Network Authentication Required"
66
- };
67
-
68
- exports.statusTextMap = statusTextMap;
@@ -1,28 +0,0 @@
1
- 'use strict';
2
-
3
- /** @internal */
4
- function Uint8Array_toBase64(input) {
5
- let byteToCharMap = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
6
- let output = [];
7
- for (var i = 0; i < input.length; i += 3) {
8
- let byte1 = input[i];
9
- let haveByte2 = i + 1 < input.length;
10
- let byte2 = haveByte2 ? input[i + 1] : 0;
11
- let haveByte3 = i + 2 < input.length;
12
- let byte3 = haveByte3 ? input[i + 2] : 0;
13
- let outByte1 = byte1 >> 2;
14
- let outByte2 = ((byte1 & 0x03) << 4) | (byte2 >> 4);
15
- let outByte3 = ((byte2 & 0x0F) << 2) | (byte3 >> 6);
16
- let outByte4 = byte3 & 0x3F;
17
- if (!haveByte3) {
18
- outByte4 = 64;
19
- if (!haveByte2) {
20
- outByte3 = 64;
21
- }
22
- }
23
- output.push(byteToCharMap[outByte1], byteToCharMap[outByte2], byteToCharMap[outByte3], byteToCharMap[outByte4]);
24
- }
25
- return output.join("");
26
- }
27
-
28
- exports.Uint8Array_toBase64 = Uint8Array_toBase64;
@@ -1,197 +0,0 @@
1
- 'use strict';
2
-
3
- var BlobP = require('../file-system/BlobP.js');
4
- var Payload = require('../helpers/Payload.js');
5
- var HeadersP = require('../fetch-api/HeadersP.js');
6
- var CloseEventP = require('../event-system/CloseEventP.js');
7
- var MessageEventP = require('../event-system/MessageEventP.js');
8
- var emitEvent = require('../helpers/emitEvent.js');
9
- var handlers = require('../helpers/handlers.js');
10
- var EventP = require('../event-system/EventP.js');
11
- var EventTargetP = require('../event-system/EventTargetP.js');
12
- var isSequence = require('../helpers/isSequence.js');
13
- var isArrayBuffer = require('../helpers/isArrayBuffer.js');
14
- var connectSocket = require('./connectSocket.js');
15
- var utils = require('../utils.js');
16
-
17
- const mp = { connectSocket: connectSocket.getConnectSocket() };
18
- function setConnectSocket(connectSocket) { mp.connectSocket = connectSocket; }
19
- class WebSocketImpl extends EventTargetP.EventTargetP {
20
- static get CONNECTING() { return 0; }
21
- static get OPEN() { return 1; }
22
- static get CLOSING() { return 2; }
23
- static get CLOSED() { return 3; }
24
- constructor(url, protocols) {
25
- utils.checkArgsLength(arguments.length, 1, "WebSocket");
26
- super();
27
- const targetURL = "" + url;
28
- const socketTask = mp.connectSocket({
29
- url: targetURL,
30
- protocols: protocols !== undefined
31
- ? isSequence.isSequence(protocols)
32
- ? Array.isArray(protocols) ? protocols : Array.from(protocols)
33
- : ["" + protocols]
34
- : [],
35
- multiple: true, // Alipay Mini Program
36
- fail(err) { console.error(err); },
37
- });
38
- utils.setState(this, "__WebSocket__", new WebSocketState(this, socketTask));
39
- state(this).url = targetURL;
40
- if (socketTask && typeof socketTask === "object") {
41
- onOpen(this);
42
- onClose(this);
43
- onError(this);
44
- onMessage(this);
45
- }
46
- else {
47
- throw new Error(`connectSocket can't establish a connection to the server at ${"" + url}.`);
48
- }
49
- }
50
- get CONNECTING() { return 0; }
51
- get OPEN() { return 1; }
52
- get CLOSING() { return 2; }
53
- get CLOSED() { return 3; }
54
- get binaryType() { return state(this).binaryType; }
55
- set binaryType(value) { if (value === "blob" || value === "arraybuffer") {
56
- state(this).binaryType = value;
57
- } }
58
- get bufferedAmount() { return state(this).bufferedAmount; }
59
- get extensions() { return ""; }
60
- get protocol() { return state(this).protocol; }
61
- get readyState() { return state(this).readyState; }
62
- get url() { return state(this).url; }
63
- close(code, reason) {
64
- let s = state(this);
65
- if (this.readyState === 2 /* CLOSING */ || this.readyState === 3 /* CLOSED */)
66
- return;
67
- s.readyState = 2 /* CLOSING */;
68
- s.socketTask.close({
69
- code: code,
70
- reason: reason,
71
- fail(err) { console.error(err); },
72
- complete: () => { s.readyState = 3 /* CLOSED */; },
73
- });
74
- }
75
- send(data) {
76
- utils.checkArgsLength(arguments.length, 1, "WebSocket", "send");
77
- if (this.readyState === 0 /* CONNECTING */) {
78
- throw new utils.DOMExceptionP("Failed to execute 'send' on 'WebSocket': Still in CONNECTING state.", "InvalidStateError");
79
- }
80
- if (this.readyState === 2 /* CLOSING */ || this.readyState === 3 /* CLOSED */) {
81
- return console.error("WebSocket is already in CLOSING or CLOSED state.");
82
- }
83
- const transfer = (function (data) {
84
- if (this.readyState !== 1 /* OPEN */)
85
- return;
86
- state(this).socketTask.send({ data, fail(err) { console.error(err); } });
87
- }).bind(this);
88
- let payload = new Payload.Payload(data !== null && data !== void 0 ? data : "" + data);
89
- payload.promise.then(transfer);
90
- }
91
- get onclose() { return state(this).onclose; }
92
- set onclose(value) { state(this).onclose = value; state(this).attach("close"); }
93
- get onerror() { return state(this).onerror; }
94
- set onerror(value) { state(this).onerror = value; state(this).attach("error"); }
95
- get onmessage() { return state(this).onmessage; }
96
- set onmessage(value) { state(this).onmessage = value; state(this).attach("message"); }
97
- get onopen() { return state(this).onopen; }
98
- set onopen(value) { state(this).onopen = value; state(this).attach("open"); }
99
- /** @internal */ toString() { return "[object WebSocket]"; }
100
- /** @internal */ get [utils.SymbolP.toStringTag]() { return "WebSocket"; }
101
- /** @internal */ get __MPHTTPX__() { return { chain: ["WebSocket", "EventTarget"] }; }
102
- }
103
- /** @internal */
104
- class WebSocketState {
105
- constructor(target, socketTask) {
106
- this.binaryType = "blob";
107
- this.bufferedAmount = 0;
108
- this.protocol = "";
109
- this.readyState = 0;
110
- this.url = "";
111
- this.error = null;
112
- this.onclose = null;
113
- this.onerror = null;
114
- this.onmessage = null;
115
- this.onopen = null;
116
- this.socketTask = socketTask;
117
- this.attach = handlers.attachFn(target, getHandlers(target));
118
- }
119
- }
120
- function getHandlers(t) {
121
- return {
122
- onclose: (ev) => { handlers.executeFn(t, t.onclose, ev); },
123
- onerror: (ev) => { handlers.executeFn(t, t.onerror, ev); },
124
- onmessage: (ev) => { handlers.executeFn(t, t.onmessage, ev); },
125
- onopen: (ev) => { handlers.executeFn(t, t.onopen, ev); },
126
- };
127
- }
128
- function state(target) {
129
- return target.__WebSocket__;
130
- }
131
- function onOpen(socket) {
132
- let s = state(socket);
133
- s.socketTask.onOpen(res => {
134
- if ("header" in res && res.header && typeof res.header === "object") {
135
- let headers = new HeadersP.HeadersP(res.header);
136
- s.protocol = headers.get("Sec-WebSocket-Protocol") || "";
137
- }
138
- s.readyState = 1 /* OPEN */;
139
- emitEvent.emitEvent(socket, "open");
140
- });
141
- }
142
- function onClose(socket) {
143
- let s = state(socket);
144
- s.socketTask.onClose(res => {
145
- s.readyState = 3 /* CLOSED */;
146
- let event = new CloseEventP.CloseEventP("close", {
147
- wasClean: !s.error,
148
- code: res.code,
149
- reason: res.reason,
150
- });
151
- EventP.Event_setTrusted(event, true);
152
- EventTargetP.EventTarget_fire(socket, event);
153
- });
154
- }
155
- function onError(socket) {
156
- let s = state(socket);
157
- s.socketTask.onError(res => {
158
- console.error(res);
159
- s.error = res;
160
- s.readyState = 3 /* CLOSED */;
161
- emitEvent.emitEvent(socket, "error");
162
- });
163
- }
164
- function onMessage(socket) {
165
- state(socket).socketTask.onMessage(res => {
166
- let data = res.data;
167
- let _data;
168
- // Alipay Mini Program
169
- if (data && typeof data === "object" && "data" in data) {
170
- _data = data.data;
171
- if ("isBuffer" in data && data.isBuffer && typeof _data === "string") {
172
- // @ts-ignore
173
- try {
174
- _data = my.base64ToArrayBuffer(_data);
175
- }
176
- catch (e) { }
177
- }
178
- }
179
- else {
180
- _data = data;
181
- }
182
- if (isArrayBuffer.isArrayBuffer(_data) && socket.binaryType === "blob") {
183
- _data = new BlobP.BlobP([_data]);
184
- }
185
- let event = new MessageEventP.MessageEventP("message", {
186
- data: _data,
187
- origin: socket.url,
188
- });
189
- EventP.Event_setTrusted(event, true);
190
- EventTargetP.EventTarget_fire(socket, event);
191
- });
192
- }
193
- const WebSocketE = (typeof WebSocket !== "undefined" && WebSocket) || WebSocketImpl;
194
-
195
- exports.WebSocket = WebSocketE;
196
- exports.WebSocketImpl = WebSocketImpl;
197
- exports.setConnectSocket = setConnectSocket;