happy-dom 2.50.0 → 2.52.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.

Potentially problematic release.


This version of happy-dom might be problematic. Click here for more details.

Files changed (113) hide show
  1. package/lib/async-task-manager/AsyncTaskManager.d.ts +65 -0
  2. package/lib/{window → async-task-manager}/AsyncTaskManager.js +52 -55
  3. package/lib/async-task-manager/AsyncTaskManager.js.map +1 -0
  4. package/lib/fetch/FetchHandler.d.ts +17 -0
  5. package/lib/fetch/FetchHandler.js +59 -0
  6. package/lib/fetch/FetchHandler.js.map +1 -0
  7. package/lib/fetch/Headers.d.ts +7 -0
  8. package/lib/fetch/Headers.js +53 -0
  9. package/lib/fetch/Headers.js.map +1 -0
  10. package/lib/fetch/IAbortSignal.d.ts +16 -0
  11. package/lib/fetch/IAbortSignal.js +4 -0
  12. package/lib/fetch/IAbortSignal.js.map +1 -0
  13. package/lib/fetch/IBody.d.ts +17 -0
  14. package/lib/{window/IFetchOptions.js → fetch/IBody.js} +1 -1
  15. package/lib/fetch/IBody.js.map +1 -0
  16. package/lib/fetch/IHeaders.d.ts +18 -0
  17. package/lib/fetch/IHeaders.js +3 -0
  18. package/lib/fetch/IHeaders.js.map +1 -0
  19. package/lib/fetch/IHeadersInit.d.ts +5 -0
  20. package/lib/fetch/IHeadersInit.js +3 -0
  21. package/lib/fetch/IHeadersInit.js.map +1 -0
  22. package/lib/fetch/IRequest.d.ts +18 -0
  23. package/lib/fetch/IRequest.js +3 -0
  24. package/lib/fetch/IRequest.js.map +1 -0
  25. package/lib/fetch/IRequestInit.d.ts +15 -0
  26. package/lib/fetch/IRequestInit.js +3 -0
  27. package/lib/fetch/IRequestInit.js.map +1 -0
  28. package/lib/fetch/IResponse.d.ts +20 -0
  29. package/lib/{window → fetch}/IResponse.js +0 -0
  30. package/lib/{window → fetch}/IResponse.js.map +1 -1
  31. package/lib/fetch/IResponseInit.d.ts +9 -0
  32. package/lib/fetch/IResponseInit.js +3 -0
  33. package/lib/fetch/IResponseInit.js.map +1 -0
  34. package/lib/fetch/Request.d.ts +69 -0
  35. package/lib/fetch/Request.js +179 -0
  36. package/lib/fetch/Request.js.map +1 -0
  37. package/lib/fetch/ResourceFetchHandler.d.ts +22 -0
  38. package/lib/fetch/{ResourceFetcher.js → ResourceFetchHandler.js} +19 -26
  39. package/lib/fetch/ResourceFetchHandler.js.map +1 -0
  40. package/lib/fetch/Response.d.ts +69 -0
  41. package/lib/fetch/Response.js +179 -0
  42. package/lib/fetch/Response.js.map +1 -0
  43. package/lib/file/Blob.d.ts +8 -1
  44. package/lib/file/Blob.js +48 -0
  45. package/lib/file/Blob.js.map +1 -1
  46. package/lib/file/IBlob.d.ts +10 -0
  47. package/lib/file/IBlob.js +3 -0
  48. package/lib/file/IBlob.js.map +1 -0
  49. package/lib/form-data/IFormData.d.ts +30 -0
  50. package/lib/form-data/IFormData.js +3 -0
  51. package/lib/form-data/IFormData.js.map +1 -0
  52. package/lib/index.d.ts +3 -5
  53. package/lib/index.js +3 -3
  54. package/lib/index.js.map +1 -1
  55. package/lib/nodes/document/Document.js +9 -0
  56. package/lib/nodes/document/Document.js.map +1 -1
  57. package/lib/nodes/html-link-element/HTMLLinkElement.js +3 -3
  58. package/lib/nodes/html-link-element/HTMLLinkElement.js.map +1 -1
  59. package/lib/nodes/html-script-element/ScriptUtility.js +3 -9
  60. package/lib/nodes/html-script-element/ScriptUtility.js.map +1 -1
  61. package/lib/nodes/node/INode.d.ts +6 -0
  62. package/lib/nodes/node/Node.d.ts +6 -0
  63. package/lib/nodes/node/Node.js +6 -0
  64. package/lib/nodes/node/Node.js.map +1 -1
  65. package/lib/window/IWindow.d.ts +20 -16
  66. package/lib/window/Window.d.ts +45 -10
  67. package/lib/window/Window.js +72 -66
  68. package/lib/window/Window.js.map +1 -1
  69. package/package.json +3 -2
  70. package/src/async-task-manager/AsyncTaskManager.ts +128 -0
  71. package/src/fetch/FetchHandler.ts +54 -0
  72. package/src/fetch/Headers.ts +7 -0
  73. package/src/fetch/IAbortSignal.ts +34 -0
  74. package/src/fetch/IBody.ts +18 -0
  75. package/src/fetch/IHeaders.ts +18 -0
  76. package/src/fetch/IHeadersInit.ts +5 -0
  77. package/src/fetch/IRequest.ts +59 -0
  78. package/src/fetch/IRequestInit.ts +41 -0
  79. package/src/fetch/IResponse.ts +22 -0
  80. package/src/fetch/IResponseInit.ts +10 -0
  81. package/src/fetch/Request.ts +149 -0
  82. package/src/fetch/ResourceFetchHandler.ts +47 -0
  83. package/src/fetch/Response.ts +149 -0
  84. package/src/file/Blob.ts +12 -1
  85. package/src/file/IBlob.ts +10 -0
  86. package/src/form-data/IFormData.ts +33 -0
  87. package/src/index.ts +2 -6
  88. package/src/nodes/document/Document.ts +12 -0
  89. package/src/nodes/html-link-element/HTMLLinkElement.ts +3 -3
  90. package/src/nodes/html-script-element/ScriptUtility.ts +3 -9
  91. package/src/nodes/node/INode.ts +6 -0
  92. package/src/nodes/node/Node.ts +6 -0
  93. package/src/window/IWindow.ts +14 -16
  94. package/src/window/Window.ts +68 -67
  95. package/lib/fetch/ResourceFetcher.d.ts +0 -30
  96. package/lib/fetch/ResourceFetcher.js.map +0 -1
  97. package/lib/url-search-params/URLSearchParams.d.ts +0 -87
  98. package/lib/url-search-params/URLSearchParams.js +0 -196
  99. package/lib/url-search-params/URLSearchParams.js.map +0 -1
  100. package/lib/window/AsyncTaskManager.d.ts +0 -54
  101. package/lib/window/AsyncTaskManager.js.map +0 -1
  102. package/lib/window/AsyncTaskTypeEnum.d.ts +0 -5
  103. package/lib/window/AsyncTaskTypeEnum.js +0 -9
  104. package/lib/window/AsyncTaskTypeEnum.js.map +0 -1
  105. package/lib/window/IFetchOptions.d.ts +0 -13
  106. package/lib/window/IFetchOptions.js.map +0 -1
  107. package/lib/window/IResponse.d.ts +0 -32
  108. package/src/fetch/ResourceFetcher.ts +0 -55
  109. package/src/url-search-params/URLSearchParams.ts +0 -198
  110. package/src/window/AsyncTaskManager.ts +0 -127
  111. package/src/window/AsyncTaskTypeEnum.ts +0 -5
  112. package/src/window/IFetchOptions.ts +0 -11
  113. package/src/window/IResponse.ts +0 -34
@@ -0,0 +1,179 @@
1
+ "use strict";
2
+ var __extends = (this && this.__extends) || (function () {
3
+ var extendStatics = function (d, b) {
4
+ extendStatics = Object.setPrototypeOf ||
5
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
+ return extendStatics(d, b);
8
+ };
9
+ return function (d, b) {
10
+ if (typeof b !== "function" && b !== null)
11
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
+ extendStatics(d, b);
13
+ function __() { this.constructor = d; }
14
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
+ };
16
+ })();
17
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
18
+ if (k2 === undefined) k2 = k;
19
+ var desc = Object.getOwnPropertyDescriptor(m, k);
20
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
21
+ desc = { enumerable: true, get: function() { return m[k]; } };
22
+ }
23
+ Object.defineProperty(o, k2, desc);
24
+ }) : (function(o, m, k, k2) {
25
+ if (k2 === undefined) k2 = k;
26
+ o[k2] = m[k];
27
+ }));
28
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
29
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
30
+ }) : function(o, v) {
31
+ o["default"] = v;
32
+ });
33
+ var __importStar = (this && this.__importStar) || function (mod) {
34
+ if (mod && mod.__esModule) return mod;
35
+ var result = {};
36
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
37
+ __setModuleDefault(result, mod);
38
+ return result;
39
+ };
40
+ Object.defineProperty(exports, "__esModule", { value: true });
41
+ var NodeFetch = __importStar(require("node-fetch"));
42
+ /**
43
+ * Fetch request.
44
+ */
45
+ var Request = /** @class */ (function (_super) {
46
+ __extends(Request, _super);
47
+ function Request() {
48
+ return _super !== null && _super.apply(this, arguments) || this;
49
+ }
50
+ /**
51
+ * Returns array buffer.
52
+ *
53
+ * @returns Array buffer.
54
+ */
55
+ Request.prototype.arrayBuffer = function () {
56
+ var _this = this;
57
+ return new Promise(function (resolve, reject) {
58
+ var taskID = _this._handlePromiseStart();
59
+ _super.prototype.arrayBuffer.call(_this)
60
+ .then(_this._handlePromiseEnd.bind(_this, resolve, reject, taskID))
61
+ .catch(_this._handlePromiseError.bind(_this, reject));
62
+ });
63
+ };
64
+ /**
65
+ * Returns blob.
66
+ *
67
+ * @returns Blob.
68
+ */
69
+ Request.prototype.blob = function () {
70
+ var _this = this;
71
+ return new Promise(function (resolve, reject) {
72
+ var taskID = _this._handlePromiseStart();
73
+ _super.prototype.blob.call(_this)
74
+ .then(_this._handlePromiseEnd.bind(_this, resolve, reject, taskID))
75
+ .catch(_this._handlePromiseError.bind(_this, reject));
76
+ });
77
+ };
78
+ /**
79
+ * Returns buffer.
80
+ *
81
+ * @returns Buffer.
82
+ */
83
+ Request.prototype.buffer = function () {
84
+ var _this = this;
85
+ return new Promise(function (resolve, reject) {
86
+ var taskID = _this._handlePromiseStart();
87
+ _super.prototype.buffer.call(_this)
88
+ .then(_this._handlePromiseEnd.bind(_this, resolve, reject, taskID))
89
+ .catch(_this._handlePromiseError.bind(_this, reject));
90
+ });
91
+ };
92
+ /**
93
+ * Returns json.
94
+ *
95
+ * @returns JSON.
96
+ */
97
+ Request.prototype.json = function () {
98
+ var _this = this;
99
+ return new Promise(function (resolve, reject) {
100
+ var taskID = _this._handlePromiseStart();
101
+ _super.prototype.json.call(_this)
102
+ .then(_this._handlePromiseEnd.bind(_this, resolve, reject, taskID))
103
+ .catch(_this._handlePromiseError.bind(_this, reject));
104
+ });
105
+ };
106
+ /**
107
+ * Returns json.
108
+ *
109
+ * @returns JSON.
110
+ */
111
+ Request.prototype.text = function () {
112
+ var _this = this;
113
+ return new Promise(function (resolve, reject) {
114
+ var taskID = _this._handlePromiseStart();
115
+ _super.prototype.text.call(_this)
116
+ .then(_this._handlePromiseEnd.bind(_this, resolve, reject, taskID))
117
+ .catch(_this._handlePromiseError.bind(_this, reject));
118
+ });
119
+ };
120
+ /**
121
+ * Returns json.
122
+ *
123
+ * @returns JSON.
124
+ */
125
+ Request.prototype.textConverted = function () {
126
+ var _this = this;
127
+ return new Promise(function (resolve, reject) {
128
+ var taskID = _this._handlePromiseStart();
129
+ _super.prototype.textConverted.call(_this)
130
+ .then(_this._handlePromiseEnd.bind(_this, resolve, reject, taskID))
131
+ .catch(_this._handlePromiseError.bind(_this, reject));
132
+ });
133
+ };
134
+ /**
135
+ * Handles promise start.
136
+ *
137
+ * @returns Task ID.
138
+ */
139
+ Request.prototype._handlePromiseStart = function () {
140
+ var taskManager = this.constructor._ownerDocument.defaultView.happyDOM
141
+ .asyncTaskManager;
142
+ return taskManager.startTask();
143
+ };
144
+ /**
145
+ * Handles promise end.
146
+ *
147
+ * @param resolve Resolve.
148
+ * @param reject Reject.
149
+ * @param taskID Task ID.
150
+ * @param response Response.
151
+ */
152
+ Request.prototype._handlePromiseEnd = function (resolve, reject, taskID, response) {
153
+ var taskManager = this.constructor._ownerDocument.defaultView.happyDOM
154
+ .asyncTaskManager;
155
+ if (taskManager.getTaskCount() === 0) {
156
+ reject(new Error('Failed to complete fetch request. Task was canceled.'));
157
+ }
158
+ else {
159
+ resolve(response);
160
+ taskManager.endTask(taskID);
161
+ }
162
+ };
163
+ /**
164
+ * Handles promise error.
165
+ *
166
+ * @param error
167
+ * @param reject
168
+ */
169
+ Request.prototype._handlePromiseError = function (reject, error) {
170
+ var taskManager = this.constructor._ownerDocument.defaultView.happyDOM
171
+ .asyncTaskManager;
172
+ reject(error);
173
+ taskManager.cancelAll(error);
174
+ };
175
+ Request._ownerDocument = null;
176
+ return Request;
177
+ }(NodeFetch.Request));
178
+ exports.default = Request;
179
+ //# sourceMappingURL=Request.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Request.js","sourceRoot":"","sources":["../../src/fetch/Request.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import IDocument from '../nodes/document/IDocument';
2
+ /**
3
+ * Helper class for performing fetch of resources.
4
+ */
5
+ export default class ResourceFetchHandler {
6
+ /**
7
+ * Returns resource data asynchonously.
8
+ *
9
+ * @param document Document.
10
+ * @param url URL.
11
+ * @returns Response.
12
+ */
13
+ static fetch(document: IDocument, url: string): Promise<string>;
14
+ /**
15
+ * Returns resource data synchonously.
16
+ *
17
+ * @param document Document.
18
+ * @param url URL.
19
+ * @returns Response.
20
+ */
21
+ static fetchSync(document: IDocument, url: string): string;
22
+ }
@@ -42,29 +42,28 @@ Object.defineProperty(exports, "__esModule", { value: true });
42
42
  var RelativeURL_1 = __importDefault(require("../location/RelativeURL"));
43
43
  var DOMException_1 = __importDefault(require("../exception/DOMException"));
44
44
  /**
45
- * Helper class for performing an asynchonous or synchrounous request to a resource.
45
+ * Helper class for performing fetch of resources.
46
46
  */
47
- var ResourceFetcher = /** @class */ (function () {
48
- function ResourceFetcher() {
47
+ var ResourceFetchHandler = /** @class */ (function () {
48
+ function ResourceFetchHandler() {
49
49
  }
50
50
  /**
51
51
  * Returns resource data asynchonously.
52
52
  *
53
- * @param options Options.
54
- * @param options.window Location.
55
- * @param options.url URL.
53
+ * @param document Document.
54
+ * @param url URL.
56
55
  * @returns Response.
57
56
  */
58
- ResourceFetcher.fetch = function (options) {
57
+ ResourceFetchHandler.fetch = function (document, url) {
59
58
  return __awaiter(this, void 0, void 0, function () {
60
59
  var response;
61
60
  return __generator(this, function (_a) {
62
61
  switch (_a.label) {
63
- case 0: return [4 /*yield*/, options.window.fetch(options.url)];
62
+ case 0: return [4 /*yield*/, document.defaultView.fetch(url)];
64
63
  case 1:
65
64
  response = _a.sent();
66
65
  if (!response.ok) {
67
- throw new DOMException_1.default("Failed to perform request to \"".concat(options.url, "\". Status code: ").concat(response.status));
66
+ throw new DOMException_1.default("Failed to perform request to \"".concat(url, "\". Status code: ").concat(response.status));
68
67
  }
69
68
  return [4 /*yield*/, response.text()];
70
69
  case 2: return [2 /*return*/, _a.sent()];
@@ -75,27 +74,21 @@ var ResourceFetcher = /** @class */ (function () {
75
74
  /**
76
75
  * Returns resource data synchonously.
77
76
  *
78
- * @param options Options.
79
- * @param options.window Location.
80
- * @param options.url URL.
77
+ * @param document Document.
78
+ * @param url URL.
81
79
  * @returns Response.
82
80
  */
83
- ResourceFetcher.fetchSync = function (options) {
84
- var url = RelativeURL_1.default.getAbsoluteURL(options.window.location, options.url);
85
- var request = null;
86
- try {
87
- request = require('sync-request');
88
- }
89
- catch (error) {
90
- throw new DOMException_1.default('Failed to load script. "sync-request" could not be loaded.');
91
- }
92
- var response = request('GET', url);
81
+ ResourceFetchHandler.fetchSync = function (document, url) {
82
+ // We want to only load SyncRequest when it is needed to improve performance and not have direct dependencies to server side packages.
83
+ var syncRequest = require('sync-request');
84
+ var absoluteURL = RelativeURL_1.default.getAbsoluteURL(document.defaultView.location, url);
85
+ var response = syncRequest('GET', absoluteURL);
93
86
  if (response.isError()) {
94
- throw new DOMException_1.default("Failed to perform request to \"".concat(url, "\". Status code: ").concat(response.statusCode));
87
+ throw new DOMException_1.default("Failed to perform request to \"".concat(absoluteURL, "\". Status code: ").concat(response.statusCode));
95
88
  }
96
89
  return response.getBody();
97
90
  };
98
- return ResourceFetcher;
91
+ return ResourceFetchHandler;
99
92
  }());
100
- exports.default = ResourceFetcher;
101
- //# sourceMappingURL=ResourceFetcher.js.map
93
+ exports.default = ResourceFetchHandler;
94
+ //# sourceMappingURL=ResourceFetchHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResourceFetchHandler.js","sourceRoot":"","sources":["../../src/fetch/ResourceFetchHandler.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,wEAAkD;AAClD,2EAAqD;AAGrD;;GAEG;AACH;IAAA;IAuCA,CAAC;IAtCA;;;;;;OAMG;IACiB,0BAAK,GAAzB,UAA0B,QAAmB,EAAE,GAAW;;;;;4BACxC,qBAAM,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,EAAA;;wBAAhD,QAAQ,GAAG,SAAqC;wBACtD,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;4BACjB,MAAM,IAAI,sBAAY,CACrB,yCAAiC,GAAG,8BAAmB,QAAQ,CAAC,MAAM,CAAE,CACxE,CAAC;yBACF;wBACM,qBAAM,QAAQ,CAAC,IAAI,EAAE,EAAA;4BAA5B,sBAAO,SAAqB,EAAC;;;;KAC7B;IAED;;;;;;OAMG;IACW,8BAAS,GAAvB,UAAwB,QAAmB,EAAE,GAAW;QACvD,sIAAsI;QACtI,IAAM,WAAW,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;QAC5C,IAAM,WAAW,GAAG,qBAAW,CAAC,cAAc,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QACnF,IAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QAEjD,IAAI,QAAQ,CAAC,OAAO,EAAE,EAAE;YACvB,MAAM,IAAI,sBAAY,CACrB,yCAAiC,WAAW,8BAAmB,QAAQ,CAAC,UAAU,CAAE,CACpF,CAAC;SACF;QAED,OAAO,QAAQ,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IACF,2BAAC;AAAD,CAAC,AAvCD,IAuCC"}
@@ -0,0 +1,69 @@
1
+ /// <reference types="node" />
2
+ import IResponse from './IResponse';
3
+ import IBlob from '../file/IBlob';
4
+ import IDocument from '../nodes/document/IDocument';
5
+ import * as NodeFetch from 'node-fetch';
6
+ /**
7
+ * Fetch response.
8
+ */
9
+ export default class Response extends NodeFetch.Response implements IResponse {
10
+ static _ownerDocument: IDocument;
11
+ /**
12
+ * Returns array buffer.
13
+ *
14
+ * @returns Array buffer.
15
+ */
16
+ arrayBuffer(): Promise<ArrayBuffer>;
17
+ /**
18
+ * Returns blob.
19
+ *
20
+ * @returns Blob.
21
+ */
22
+ blob(): Promise<IBlob>;
23
+ /**
24
+ * Returns buffer.
25
+ *
26
+ * @returns Buffer.
27
+ */
28
+ buffer(): Promise<Buffer>;
29
+ /**
30
+ * Returns json.
31
+ *
32
+ * @returns JSON.
33
+ */
34
+ json(): Promise<unknown>;
35
+ /**
36
+ * Returns json.
37
+ *
38
+ * @returns JSON.
39
+ */
40
+ text(): Promise<string>;
41
+ /**
42
+ * Returns json.
43
+ *
44
+ * @returns JSON.
45
+ */
46
+ textConverted(): Promise<string>;
47
+ /**
48
+ * Handles promise start.
49
+ *
50
+ * @returns Task ID.
51
+ */
52
+ private _handlePromiseStart;
53
+ /**
54
+ * Handles promise end.
55
+ *
56
+ * @param resolve Resolve.
57
+ * @param reject Reject.
58
+ * @param taskID Task ID.
59
+ * @param response Response.
60
+ */
61
+ private _handlePromiseEnd;
62
+ /**
63
+ * Handles promise error.
64
+ *
65
+ * @param error
66
+ * @param reject
67
+ */
68
+ private _handlePromiseError;
69
+ }
@@ -0,0 +1,179 @@
1
+ "use strict";
2
+ var __extends = (this && this.__extends) || (function () {
3
+ var extendStatics = function (d, b) {
4
+ extendStatics = Object.setPrototypeOf ||
5
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
+ return extendStatics(d, b);
8
+ };
9
+ return function (d, b) {
10
+ if (typeof b !== "function" && b !== null)
11
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
+ extendStatics(d, b);
13
+ function __() { this.constructor = d; }
14
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
+ };
16
+ })();
17
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
18
+ if (k2 === undefined) k2 = k;
19
+ var desc = Object.getOwnPropertyDescriptor(m, k);
20
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
21
+ desc = { enumerable: true, get: function() { return m[k]; } };
22
+ }
23
+ Object.defineProperty(o, k2, desc);
24
+ }) : (function(o, m, k, k2) {
25
+ if (k2 === undefined) k2 = k;
26
+ o[k2] = m[k];
27
+ }));
28
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
29
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
30
+ }) : function(o, v) {
31
+ o["default"] = v;
32
+ });
33
+ var __importStar = (this && this.__importStar) || function (mod) {
34
+ if (mod && mod.__esModule) return mod;
35
+ var result = {};
36
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
37
+ __setModuleDefault(result, mod);
38
+ return result;
39
+ };
40
+ Object.defineProperty(exports, "__esModule", { value: true });
41
+ var NodeFetch = __importStar(require("node-fetch"));
42
+ /**
43
+ * Fetch response.
44
+ */
45
+ var Response = /** @class */ (function (_super) {
46
+ __extends(Response, _super);
47
+ function Response() {
48
+ return _super !== null && _super.apply(this, arguments) || this;
49
+ }
50
+ /**
51
+ * Returns array buffer.
52
+ *
53
+ * @returns Array buffer.
54
+ */
55
+ Response.prototype.arrayBuffer = function () {
56
+ var _this = this;
57
+ return new Promise(function (resolve, reject) {
58
+ var taskID = _this._handlePromiseStart();
59
+ _super.prototype.arrayBuffer.call(_this)
60
+ .then(_this._handlePromiseEnd.bind(_this, resolve, reject, taskID))
61
+ .catch(_this._handlePromiseError.bind(_this, reject));
62
+ });
63
+ };
64
+ /**
65
+ * Returns blob.
66
+ *
67
+ * @returns Blob.
68
+ */
69
+ Response.prototype.blob = function () {
70
+ var _this = this;
71
+ return new Promise(function (resolve, reject) {
72
+ var taskID = _this._handlePromiseStart();
73
+ _super.prototype.blob.call(_this)
74
+ .then(_this._handlePromiseEnd.bind(_this, resolve, reject, taskID))
75
+ .catch(_this._handlePromiseError.bind(_this, reject));
76
+ });
77
+ };
78
+ /**
79
+ * Returns buffer.
80
+ *
81
+ * @returns Buffer.
82
+ */
83
+ Response.prototype.buffer = function () {
84
+ var _this = this;
85
+ return new Promise(function (resolve, reject) {
86
+ var taskID = _this._handlePromiseStart();
87
+ _super.prototype.buffer.call(_this)
88
+ .then(_this._handlePromiseEnd.bind(_this, resolve, reject, taskID))
89
+ .catch(_this._handlePromiseError.bind(_this, reject));
90
+ });
91
+ };
92
+ /**
93
+ * Returns json.
94
+ *
95
+ * @returns JSON.
96
+ */
97
+ Response.prototype.json = function () {
98
+ var _this = this;
99
+ return new Promise(function (resolve, reject) {
100
+ var taskID = _this._handlePromiseStart();
101
+ _super.prototype.json.call(_this)
102
+ .then(_this._handlePromiseEnd.bind(_this, resolve, reject, taskID))
103
+ .catch(_this._handlePromiseError.bind(_this, reject));
104
+ });
105
+ };
106
+ /**
107
+ * Returns json.
108
+ *
109
+ * @returns JSON.
110
+ */
111
+ Response.prototype.text = function () {
112
+ var _this = this;
113
+ return new Promise(function (resolve, reject) {
114
+ var taskID = _this._handlePromiseStart();
115
+ _super.prototype.text.call(_this)
116
+ .then(_this._handlePromiseEnd.bind(_this, resolve, reject, taskID))
117
+ .catch(_this._handlePromiseError.bind(_this, reject));
118
+ });
119
+ };
120
+ /**
121
+ * Returns json.
122
+ *
123
+ * @returns JSON.
124
+ */
125
+ Response.prototype.textConverted = function () {
126
+ var _this = this;
127
+ return new Promise(function (resolve, reject) {
128
+ var taskID = _this._handlePromiseStart();
129
+ _super.prototype.textConverted.call(_this)
130
+ .then(_this._handlePromiseEnd.bind(_this, resolve, reject, taskID))
131
+ .catch(_this._handlePromiseError.bind(_this, reject));
132
+ });
133
+ };
134
+ /**
135
+ * Handles promise start.
136
+ *
137
+ * @returns Task ID.
138
+ */
139
+ Response.prototype._handlePromiseStart = function () {
140
+ var taskManager = this.constructor._ownerDocument.defaultView.happyDOM
141
+ .asyncTaskManager;
142
+ return taskManager.startTask();
143
+ };
144
+ /**
145
+ * Handles promise end.
146
+ *
147
+ * @param resolve Resolve.
148
+ * @param reject Reject.
149
+ * @param taskID Task ID.
150
+ * @param response Response.
151
+ */
152
+ Response.prototype._handlePromiseEnd = function (resolve, reject, taskID, response) {
153
+ var taskManager = this.constructor._ownerDocument.defaultView.happyDOM
154
+ .asyncTaskManager;
155
+ if (taskManager.getTaskCount() === 0) {
156
+ reject(new Error('Failed to complete fetch request. Task was canceled.'));
157
+ }
158
+ else {
159
+ resolve(response);
160
+ taskManager.endTask(taskID);
161
+ }
162
+ };
163
+ /**
164
+ * Handles promise error.
165
+ *
166
+ * @param error
167
+ * @param reject
168
+ */
169
+ Response.prototype._handlePromiseError = function (reject, error) {
170
+ var taskManager = this.constructor._ownerDocument.defaultView.happyDOM
171
+ .asyncTaskManager;
172
+ reject(error);
173
+ taskManager.cancelAll(error);
174
+ };
175
+ Response._ownerDocument = null;
176
+ return Response;
177
+ }(NodeFetch.Response));
178
+ exports.default = Response;
179
+ //# sourceMappingURL=Response.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Response.js","sourceRoot":"","sources":["../../src/fetch/Response.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  /// <reference types="node" />
2
+ import IBlob from './IBlob';
2
3
  /**
3
4
  * Reference:
4
5
  * https://developer.mozilla.org/en-US/docs/Web/API/Blob.
@@ -6,7 +7,7 @@
6
7
  * Based on:
7
8
  * https://github.com/jsdom/jsdom/blob/master/lib/jsdom/living/file-api/Blob-impl.js (MIT licensed).
8
9
  */
9
- export default class Blob {
10
+ export default class Blob implements IBlob {
10
11
  readonly _buffer: Buffer;
11
12
  readonly type: string;
12
13
  /**
@@ -34,6 +35,12 @@ export default class Blob {
34
35
  * @returns New Blob.
35
36
  */
36
37
  slice(start?: number, end?: number, contentType?: string): Blob;
38
+ /**
39
+ * Returns a Promise that resolves to a text.
40
+ *
41
+ * @returns Text.
42
+ */
43
+ text(): Promise<string>;
37
44
  /**
38
45
  * Closes the blob.
39
46
  *
package/lib/file/Blob.js CHANGED
@@ -1,4 +1,40 @@
1
1
  "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (_) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
2
38
  Object.defineProperty(exports, "__esModule", { value: true });
3
39
  /**
4
40
  * Reference:
@@ -107,6 +143,18 @@ var Blob = /** @class */ (function () {
107
143
  blob._buffer = slicedBuffer;
108
144
  return blob;
109
145
  };
146
+ /**
147
+ * Returns a Promise that resolves to a text.
148
+ *
149
+ * @returns Text.
150
+ */
151
+ Blob.prototype.text = function () {
152
+ return __awaiter(this, void 0, void 0, function () {
153
+ return __generator(this, function (_a) {
154
+ return [2 /*return*/, this._buffer.toString()];
155
+ });
156
+ });
157
+ };
110
158
  /**
111
159
  * Closes the blob.
112
160
  *
@@ -1 +1 @@
1
- {"version":3,"file":"Blob.js","sourceRoot":"","sources":["../../src/file/Blob.ts"],"names":[],"mappings":";;AAAA;;;;;;GAMG;AACH;IAIC;;;;;;OAMG;IACH,cACC,IAAgE,EAChE,OAA2B;QAZZ,YAAO,GAAW,IAAI,CAAC;QACvB,SAAI,GAAW,EAAE,CAAC;QAajC,IAAM,OAAO,GAAG,EAAE,CAAC;QAEnB,IAAI,IAAI,EAAE;YACT,KAAkB,UAAI,EAAJ,aAAI,EAAJ,kBAAI,EAAJ,IAAI,EAAE;gBAAnB,IAAM,GAAG,aAAA;gBACb,IAAI,MAAM,SAAQ,CAAC;gBAEnB,IAAI,GAAG,YAAY,WAAW,EAAE;oBAC/B,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;iBAC1C;qBAAM,IAAI,GAAG,YAAY,IAAI,EAAE;oBAC/B,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC;iBACrB;qBAAM,IAAI,GAAG,YAAY,MAAM,EAAE;oBACjC,MAAM,GAAG,GAAG,CAAC;iBACb;qBAAM,IAAI,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;oBACnC,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;iBACjF;qBAAM;oBACN,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;iBAClE;gBAED,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;aACrB;SACD;QAED,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAEtC,IAAI,OAAO,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,EAAE;YACxE,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;SAC/C;IACF,CAAC;IAOD,sBAAW,sBAAI;QALf;;;;WAIG;aACH;YACC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;QAC5B,CAAC;;;OAAA;IAED;;;;;;;OAOG;IACI,oBAAK,GAAZ,UAAa,KAAS,EAAE,GAAkB,EAAE,WAAgB;QAA/C,sBAAA,EAAA,SAAS;QAAE,oBAAA,EAAA,UAAkB;QAAE,4BAAA,EAAA,gBAAgB;QAC3D,IAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QAEvB,IAAI,aAAa,CAAC;QAClB,IAAI,WAAW,CAAC;QAChB,IAAI,mBAAmB,CAAC;QAExB,IAAI,KAAK,KAAK,SAAS,EAAE;YACxB,aAAa,GAAG,CAAC,CAAC;SAClB;aAAM,IAAI,KAAK,GAAG,CAAC,EAAE;YACrB,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC;SAC1C;aAAM;YACN,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;SACtC;QACD,IAAI,GAAG,KAAK,IAAI,EAAE;YACjB,WAAW,GAAG,IAAI,CAAC;SACnB;aAAM,IAAI,GAAG,GAAG,CAAC,EAAE;YACnB,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC;SACtC;aAAM;YACN,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;SAClC;QAED,IAAI,WAAW,KAAK,SAAS,EAAE;YAC9B,mBAAmB,GAAG,EAAE,CAAC;SACzB;aAAM;YACN,kEAAkE;YAClE,cAAc;YACd,mBAAmB,GAAG,WAAW,CAAC;SAClC;QAED,IAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,aAAa,EAAE,CAAC,CAAC,CAAC;QAEtD,IAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;QAC5B,IAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,aAAa,EAAE,aAAa,GAAG,IAAI,CAAC,CAAC;QAEvE,IAAM,IAAI,GAAG,IAAI,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC,CAAC;QAEhD,IAAI,CAAC,OAAQ,GAAG,YAAY,CAAC;QAEtC,OAAO,IAAI,CAAC;IACb,CAAC;IAED;;;;OAIG;IACI,uBAAQ,GAAf;QACC,OAAO,eAAe,CAAC;IACxB,CAAC;IACF,WAAC;AAAD,CAAC,AA/GD,IA+GC"}
1
+ {"version":3,"file":"Blob.js","sourceRoot":"","sources":["../../src/file/Blob.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Reference:
3
+ * https://developer.mozilla.org/en-US/docs/Web/API/Blob.
4
+ */
5
+ export default interface IBlob {
6
+ readonly type: string;
7
+ readonly size: number;
8
+ slice(start?: number, end?: number): IBlob;
9
+ text(): Promise<string>;
10
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=IBlob.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IBlob.js","sourceRoot":"","sources":["../../src/file/IBlob.ts"],"names":[],"mappings":""}