wapplr 1.0.75 → 1.0.76

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.
@@ -4,51 +4,48 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports["default"] = html;
7
-
8
7
  var style = require("./../common/template/app_css.js")["default"];
9
-
10
8
  function html(_ref) {
11
9
  var wapp = _ref.wapp,
12
- req = _ref.req,
13
- res = _ref.res;
10
+ req = _ref.req,
11
+ res = _ref.res;
14
12
  var config = wapp.server.config;
15
13
  var _config$siteName = config.siteName,
16
- siteName = _config$siteName === void 0 ? "Wapplr" : _config$siteName,
17
- _config$assets = config.assets,
18
- assets = _config$assets === void 0 ? {} : _config$assets,
19
- _config$lang = config.lang,
20
- lang = _config$lang === void 0 ? "en_US" : _config$lang,
21
- _config$viewport = config.viewport,
22
- viewport = _config$viewport === void 0 ? "width=device-width, initial-scale=1" : _config$viewport,
23
- _config$themeColor = config.themeColor,
24
- themeColor = _config$themeColor === void 0 ? "#ffffff" : _config$themeColor,
25
- _config$manifest = config.manifest,
26
- manifest = _config$manifest === void 0 ? "/manifest.json" : _config$manifest,
27
- _config$icon = config.icon,
28
- icon = _config$icon === void 0 ? "data:image/png;base64,iVBORw0KGgo=" : _config$icon,
29
- appleTouchIcon = config.appleTouchIcon,
30
- _config$appStyle = config.appStyle,
31
- appStyle = _config$appStyle === void 0 ? style : _config$appStyle;
14
+ siteName = _config$siteName === void 0 ? "Wapplr" : _config$siteName,
15
+ _config$assets = config.assets,
16
+ assets = _config$assets === void 0 ? {} : _config$assets,
17
+ _config$lang = config.lang,
18
+ lang = _config$lang === void 0 ? "en_US" : _config$lang,
19
+ _config$viewport = config.viewport,
20
+ viewport = _config$viewport === void 0 ? "width=device-width, initial-scale=1" : _config$viewport,
21
+ _config$themeColor = config.themeColor,
22
+ themeColor = _config$themeColor === void 0 ? "#ffffff" : _config$themeColor,
23
+ _config$manifest = config.manifest,
24
+ manifest = _config$manifest === void 0 ? "/manifest.json" : _config$manifest,
25
+ _config$icon = config.icon,
26
+ icon = _config$icon === void 0 ? "data:image/png;base64,iVBORw0KGgo=" : _config$icon,
27
+ appleTouchIcon = config.appleTouchIcon,
28
+ _config$appStyle = config.appStyle,
29
+ appStyle = _config$appStyle === void 0 ? style : _config$appStyle;
32
30
  var _res$wappResponse = res.wappResponse,
33
- store = _res$wappResponse.store,
34
- _res$wappResponse$con = _res$wappResponse.content,
35
- content = _res$wappResponse$con === void 0 ? {} : _res$wappResponse$con,
36
- _res$wappResponse$sta = _res$wappResponse.statusCode,
37
- statusCode = _res$wappResponse$sta === void 0 ? 200 : _res$wappResponse$sta,
38
- _res$wappResponse$con2 = _res$wappResponse.containerElementId,
39
- containerElementId = _res$wappResponse$con2 === void 0 ? "app" : _res$wappResponse$con2,
40
- _res$wappResponse$app = _res$wappResponse.appStateName,
41
- appStateName = _res$wappResponse$app === void 0 ? "APP_STATE" : _res$wappResponse$app;
31
+ store = _res$wappResponse.store,
32
+ _res$wappResponse$con = _res$wappResponse.content,
33
+ content = _res$wappResponse$con === void 0 ? {} : _res$wappResponse$con,
34
+ _res$wappResponse$sta = _res$wappResponse.statusCode,
35
+ statusCode = _res$wappResponse$sta === void 0 ? 200 : _res$wappResponse$sta,
36
+ _res$wappResponse$con2 = _res$wappResponse.containerElementId,
37
+ containerElementId = _res$wappResponse$con2 === void 0 ? "app" : _res$wappResponse$con2,
38
+ _res$wappResponse$app = _res$wappResponse.appStateName,
39
+ appStateName = _res$wappResponse$app === void 0 ? "APP_STATE" : _res$wappResponse$app;
42
40
  var state = store ? store.getState() : {};
43
41
  var _content$render = content.render,
44
- render = _content$render === void 0 ? "" : _content$render,
45
- _content$title = content.title,
46
- title = _content$title === void 0 ? "" : _content$title,
47
- _content$description = content.description,
48
- description = _content$description === void 0 ? "" : _content$description,
49
- _content$author = content.author,
50
- author = _content$author === void 0 ? "" : _content$author;
51
-
42
+ render = _content$render === void 0 ? "" : _content$render,
43
+ _content$title = content.title,
44
+ title = _content$title === void 0 ? "" : _content$title,
45
+ _content$description = content.description,
46
+ description = _content$description === void 0 ? "" : _content$description,
47
+ _content$author = content.author,
48
+ author = _content$author === void 0 ? "" : _content$author;
52
49
  if (typeof title === "function") {
53
50
  title = title({
54
51
  wapp: wapp,
@@ -56,9 +53,7 @@ function html(_ref) {
56
53
  res: res
57
54
  });
58
55
  }
59
-
60
56
  title = "".concat(title ? title : statusCode === 404 ? "Not Found | " + siteName : "Untitled Page | " + siteName);
61
-
62
57
  if (typeof description === "function") {
63
58
  description = description({
64
59
  wapp: wapp,
@@ -66,9 +61,7 @@ function html(_ref) {
66
61
  res: res
67
62
  });
68
63
  }
69
-
70
64
  description = description ? description : title && title.split ? title.split(" | ")[0] : title;
71
-
72
65
  if (typeof author === "function") {
73
66
  author = author({
74
67
  wapp: wapp,
@@ -76,9 +69,7 @@ function html(_ref) {
76
69
  res: res
77
70
  });
78
71
  }
79
-
80
72
  author = author || siteName;
81
-
82
73
  if (typeof render === "function") {
83
74
  render = render({
84
75
  wapp: wapp,
@@ -86,7 +77,6 @@ function html(_ref) {
86
77
  res: res
87
78
  });
88
79
  }
89
-
90
80
  wapp.styles.use(appStyle);
91
81
  var styles = wapp.styles.getCssText();
92
82
  var styleText = styles.map(function (style) {
@@ -102,7 +92,6 @@ function html(_ref) {
102
92
  if (script) {
103
93
  return "<script src=\"".concat(script, "\" ></script>");
104
94
  }
105
-
106
95
  return "";
107
96
  }).join(" ");
108
97
  var headComponent = wapp.contents.getComponent("head");
@@ -1,32 +1,25 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.createMiddleware = createMiddleware;
9
8
  exports["default"] = _default;
10
9
  exports.run = run;
11
-
12
10
  var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
13
-
14
11
  var _createServer = _interopRequireDefault(require("./createServer"));
15
-
16
12
  var _config = _interopRequireDefault(require("./config"));
17
-
18
13
  // eslint-disable-next-line import/no-anonymous-default-export
19
14
  function _default() {
20
15
  var p = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
21
16
  return p.wapp || (0, _createServer["default"])((0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, (0, _config["default"])(p)), p));
22
17
  }
23
-
24
18
  function createMiddleware() {
25
19
  var p = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
26
20
  var wapp = p.wapp || (0, _createServer["default"])(p);
27
21
  return wapp.server.app;
28
22
  }
29
-
30
23
  var defaultConfig = {
31
24
  config: {
32
25
  globals: {
@@ -39,35 +32,27 @@ var defaultConfig = {
39
32
  }
40
33
  }
41
34
  };
42
-
43
35
  function run() {
44
36
  var _p$config;
45
-
46
37
  var p = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultConfig;
47
-
48
38
  if (p !== null && p !== void 0 && (_p$config = p.config) !== null && _p$config !== void 0 && _p$config.globals && !p.config.globals.RUN) {
49
39
  var _p$config2;
50
-
51
40
  p.config.globals.RUN = ((_p$config2 = p.config) === null || _p$config2 === void 0 ? void 0 : _p$config2.globals.NAME) || "wapplr";
52
41
  }
53
-
54
42
  var _process = process,
55
- env = _process.env;
43
+ env = _process.env;
56
44
  env.NODE_ENV = process.env.NODE_ENV;
57
45
  var wapp = (0, _createServer["default"])(p);
58
46
  var globals = wapp.globals;
59
47
  var DEV = globals.DEV;
60
48
  var app = wapp.server.app;
61
49
  wapp.server.listen();
62
-
63
50
  if (typeof DEV !== "undefined" && DEV && module.hot) {
64
51
  app.hot = module.hot;
65
52
  module.hot.accept("./index");
66
53
  }
67
-
68
54
  return wapp;
69
55
  }
70
-
71
56
  if (typeof RUN !== "undefined" && RUN === "wapplr") {
72
57
  run();
73
58
  }
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
@@ -9,19 +8,13 @@ exports.createNotModifiedMiddleware = createNotModifiedMiddleware;
9
8
  exports.createRenderMiddleware = createRenderMiddleware;
10
9
  exports["default"] = createMiddlewares;
11
10
  exports.mimeType = void 0;
12
-
13
11
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
14
-
15
12
  var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
16
-
17
13
  var _utils = require("../common/utils");
18
-
19
14
  var _middlewares = _interopRequireDefault(require("../common/middlewares"));
20
-
21
15
  var _html2 = _interopRequireDefault(require("./html"));
22
-
23
16
  var _excluded = ["log"];
24
- var mimeType = {
17
+ var mimeType = exports.mimeType = {
25
18
  ".ico": "image/x-icon",
26
19
  ".html": "text/html",
27
20
  ".js": "application/javascript",
@@ -45,15 +38,11 @@ var mimeType = {
45
38
  ".xml": "application/xml",
46
39
  ".map": "application/json"
47
40
  };
48
- exports.mimeType = mimeType;
49
-
50
41
  function createRenderMiddleware() {
51
42
  var p = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
52
43
  var wapp = p.wapp;
53
-
54
44
  function defaultRenderHandle(req, res, next) {
55
45
  var wappResponse = res.wappResponse;
56
-
57
46
  if (wappResponse.content && !wappResponse.content.renderType) {
58
47
  res.wappResponse.status(wappResponse.statusCode || 200);
59
48
  var render = wapp.contents.getComponent("html");
@@ -67,20 +56,17 @@ function createRenderMiddleware() {
67
56
  next();
68
57
  }
69
58
  }
70
-
71
59
  function defaultHandle(req, res, out) {
72
60
  if (!wapp.contents.getComponent("html")) {
73
61
  wapp.contents.addComponent({
74
62
  html: defaultRender
75
63
  });
76
64
  }
77
-
78
65
  var renderMiddlewares = Object.keys(renderMiddleware.handles).map(function (key) {
79
66
  return renderMiddleware.handles[key];
80
67
  });
81
68
  renderMiddlewares.sort();
82
69
  var index = 0;
83
-
84
70
  function next(err) {
85
71
  if (renderMiddlewares[index]) {
86
72
  var func = renderMiddlewares[index];
@@ -92,27 +78,21 @@ function createRenderMiddleware() {
92
78
  index = 0;
93
79
  return out(err);
94
80
  }
95
-
96
81
  return null;
97
82
  }
98
-
99
83
  return next();
100
84
  }
101
-
102
85
  var defaultRender = _html2["default"];
103
-
104
86
  function defaultAddHandle(obj) {
105
87
  if (typeof obj === "object" && !obj.length) {
106
88
  Object.keys(obj).forEach(function (handleName) {
107
89
  var handle = obj[handleName];
108
-
109
90
  if (typeof handle == "function") {
110
91
  renderMiddleware.handles[handleName] = handle;
111
92
  }
112
93
  });
113
94
  }
114
95
  }
115
-
116
96
  var renderMiddlewareProperties = Object.create(Object.prototype, {
117
97
  handle: (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, _utils.defaultDescriptor), {}, {
118
98
  value: defaultHandle
@@ -129,15 +109,12 @@ function createRenderMiddleware() {
129
109
  value: defaultAddHandle
130
110
  })
131
111
  });
132
-
133
112
  function renderMiddleware(req, res, next) {
134
113
  if (typeof renderMiddleware.handle === "function") {
135
114
  renderMiddleware.handle(req, res, next);
136
115
  }
137
-
138
116
  return renderMiddleware;
139
117
  }
140
-
141
118
  (0, _utils.mergeProperties)(renderMiddleware, renderMiddlewareProperties);
142
119
  Object.defineProperty(renderMiddleware, "wapp", (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, _utils.defaultDescriptor), {}, {
143
120
  writable: false,
@@ -146,11 +123,9 @@ function createRenderMiddleware() {
146
123
  }));
147
124
  return renderMiddleware;
148
125
  }
149
-
150
126
  function createNotModifiedMiddleware() {
151
127
  var p = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
152
128
  var wapp = p.wapp;
153
-
154
129
  function defaultIsFromCache(req, res) {
155
130
  var ifMatch = req.headers["if-match"];
156
131
  var ifUnmodifiedSince = req.headers["if-unmodified-since"];
@@ -163,19 +138,15 @@ function createNotModifiedMiddleware() {
163
138
  var isCacheable = res.wappResponse.statusCode >= 200 && res.wappResponse.statusCode < 300 || res.wappResponse.statusCode === 304;
164
139
  var noCache = cacheControl && /(?:^|,)\s*?no-cache\s*?(?:,|$)/.test(cacheControl);
165
140
  var unconditional = !ifUnmodifiedSince && !ifNoneMatch;
166
-
167
141
  if (unconditional || noCache || !isCacheable || !conditionalGet) {
168
142
  return false;
169
143
  }
170
-
171
144
  var fromCache = false;
172
-
173
145
  if (ifNoneMatch && ifNoneMatch !== "*" && etag) {
174
146
  var parseTokenList = function parseTokenList(str) {
175
147
  var end = 0;
176
148
  var list = [];
177
149
  var start = 0;
178
-
179
150
  for (var i = 0, len = str.length; i < len; i++) {
180
151
  switch (str.charCodeAt(i)) {
181
152
  case 0x20:
@@ -183,54 +154,42 @@ function createNotModifiedMiddleware() {
183
154
  if (start === end) {
184
155
  start = end = i + 1;
185
156
  }
186
-
187
157
  break;
188
-
189
158
  case 0x2c:
190
159
  /* , */
191
160
  list.push(str.substring(start, end));
192
161
  start = end = i + 1;
193
162
  break;
194
-
195
163
  default:
196
164
  end = i + 1;
197
165
  break;
198
166
  }
199
167
  }
200
-
201
168
  list.push(str.substring(start, end));
202
169
  return list;
203
170
  };
204
-
205
171
  var matches = parseTokenList(ifNoneMatch);
206
-
207
172
  for (var i = 0; i < matches.length; i++) {
208
173
  var match = matches[i];
209
-
210
174
  if (match === etag || match === "W/" + etag || "W/" + match === etag) {
211
175
  fromCache = true;
212
176
  break;
213
177
  }
214
178
  }
215
179
  }
216
-
217
180
  if (ifModifiedSince && lastModified) {
218
181
  var parseHttpDate = function parseHttpDate(date) {
219
182
  var timestamp = date && Date.parse(date);
220
183
  return typeof timestamp === 'number' ? timestamp : NaN;
221
184
  };
222
-
223
185
  if (parseHttpDate(lastModified) <= parseHttpDate(ifModifiedSince)) {
224
186
  fromCache = true;
225
187
  }
226
188
  }
227
-
228
189
  return fromCache;
229
190
  }
230
-
231
191
  function defaultHandle(req, res, next) {
232
192
  var fromCache = notModifiedMiddleware.isFromCache(req, res);
233
-
234
193
  if (fromCache) {
235
194
  res.wappResponse.status(304);
236
195
  res.wapp.log(req, res);
@@ -239,7 +198,6 @@ function createNotModifiedMiddleware() {
239
198
  return next();
240
199
  }
241
200
  }
242
-
243
201
  var notModifiedMiddlewareProperties = Object.create(Object.prototype, {
244
202
  handle: (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, _utils.defaultDescriptor), {}, {
245
203
  value: defaultHandle
@@ -248,15 +206,12 @@ function createNotModifiedMiddleware() {
248
206
  value: defaultIsFromCache
249
207
  })
250
208
  });
251
-
252
209
  function notModifiedMiddleware(req, res, next) {
253
210
  if (typeof notModifiedMiddleware.handle === "function") {
254
211
  notModifiedMiddleware.handle(req, res, next);
255
212
  }
256
-
257
213
  return notModifiedMiddleware;
258
214
  }
259
-
260
215
  (0, _utils.mergeProperties)(notModifiedMiddleware, notModifiedMiddlewareProperties);
261
216
  Object.defineProperty(notModifiedMiddleware, "wapp", (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, _utils.defaultDescriptor), {}, {
262
217
  writable: false,
@@ -265,84 +220,70 @@ function createNotModifiedMiddleware() {
265
220
  }));
266
221
  return notModifiedMiddleware;
267
222
  }
268
-
269
223
  function createMiddlewares(p) {
270
224
  var _commonMiddlewares = (0, _middlewares["default"])(p),
271
- log = _commonMiddlewares.log,
272
- rest = (0, _objectWithoutProperties2["default"])(_commonMiddlewares, _excluded);
273
-
225
+ log = _commonMiddlewares.log,
226
+ rest = (0, _objectWithoutProperties2["default"])(_commonMiddlewares, _excluded);
274
227
  var wapp = p.wapp;
275
228
  var wappMiddleware = wapp.middleware;
276
229
  var notModifiedMiddleware = createNotModifiedMiddleware(p);
277
230
  wappMiddleware.addSendMiddleware({
278
231
  headers: function headers(req, res, next) {
279
232
  var _res$wappResponse$sen = res.wappResponse.sendData,
280
- sendData = _res$wappResponse$sen === void 0 ? {} : _res$wappResponse$sen;
281
-
233
+ sendData = _res$wappResponse$sen === void 0 ? {} : _res$wappResponse$sen;
282
234
  if (res.setHeader) {
283
235
  var data = sendData.data,
284
- _sendData$stats = sendData.stats,
285
- stats = _sendData$stats === void 0 ? {} : _sendData$stats,
286
- _sendData$parsedPath = sendData.parsedPath,
287
- parsedPath = _sendData$parsedPath === void 0 ? {} : _sendData$parsedPath,
288
- dontSetContentLength = sendData.dontSetContentLength;
236
+ _sendData$stats = sendData.stats,
237
+ stats = _sendData$stats === void 0 ? {} : _sendData$stats,
238
+ _sendData$parsedPath = sendData.parsedPath,
239
+ parsedPath = _sendData$parsedPath === void 0 ? {} : _sendData$parsedPath,
240
+ dontSetContentLength = sendData.dontSetContentLength;
289
241
  var _html = data;
290
242
  var _parsedPath$ext = parsedPath.ext,
291
- ext = _parsedPath$ext === void 0 ? ".html" : _parsedPath$ext;
243
+ ext = _parsedPath$ext === void 0 ? ".html" : _parsedPath$ext;
292
244
  var charSet = sendData.charSet ? sendData.charSet : ext === '.html' ? 'utf-8' : '';
293
245
  var mtime = stats.mtime;
294
-
295
246
  if (!res.getHeader("Accept-Ranges")) {
296
247
  res.setHeader("Accept-Ranges", "bytes");
297
248
  }
298
-
299
249
  if (!res.getHeader("Content-Type")) {
300
250
  res.setHeader("Content-Type", [mimeType[ext] || "text/plain", charSet ? 'charset=' + charSet : ''].filter(function (t) {
301
251
  return t;
302
252
  }).join('; '));
303
253
  }
304
-
305
254
  if (!res.getHeader("Content-Length") && !dontSetContentLength) {
306
255
  res.setHeader("Content-Length", Buffer.byteLength(_html));
307
256
  }
308
-
309
257
  if (!res.getHeader("Last-Modified") && mtime) {
310
258
  res.setHeader("Last-Modified", mtime.toUTCString());
311
259
  }
312
-
313
260
  if (!res.getHeader("Cache-Control")) {
314
261
  res.setHeader("Cache-Control", "public, max-age=0");
315
262
  }
316
-
317
263
  if (!res.getHeader("X-Powered-By")) {
318
264
  res.setHeader("X-Powered-By", "Wapplr");
319
265
  }
320
266
  }
321
-
322
267
  return next();
323
268
  },
324
269
  etag: function etag(req, res, next) {
325
270
  var _res$wappResponse$sen2 = res.wappResponse.sendData,
326
- sendData = _res$wappResponse$sen2 === void 0 ? {} : _res$wappResponse$sen2;
327
-
271
+ sendData = _res$wappResponse$sen2 === void 0 ? {} : _res$wappResponse$sen2;
328
272
  if (res.setHeader) {
329
273
  var _sendData$stats2 = sendData.stats,
330
- stats = _sendData$stats2 === void 0 ? {} : _sendData$stats2;
274
+ stats = _sendData$stats2 === void 0 ? {} : _sendData$stats2;
331
275
  var mtime = stats.mtime,
332
- size = stats.size;
333
-
276
+ size = stats.size;
334
277
  if (!res.getHeader("ETag") && mtime && size) {
335
278
  var etag = "W/\"".concat(size.toString(16), "-").concat(mtime.getTime().toString(16), "\"");
336
279
  res.setHeader("ETag", etag);
337
280
  }
338
281
  }
339
-
340
282
  return next();
341
283
  },
342
284
  notModified: function notModified(req, res, next) {
343
285
  if (res.setHeader) {
344
286
  var fromCache = notModifiedMiddleware.isFromCache(req, res);
345
-
346
287
  if (fromCache) {
347
288
  res.wappResponse.status(304);
348
289
  res.wapp.log(req, res);
@@ -350,7 +291,6 @@ function createMiddlewares(p) {
350
291
  return;
351
292
  }
352
293
  }
353
-
354
294
  return next();
355
295
  }
356
296
  });
@@ -6,16 +6,12 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.addCloseEventsForReadableStream = addCloseEventsForReadableStream;
7
7
  exports["default"] = serveStatic;
8
8
  exports.endStream = endStream;
9
-
10
9
  var fs = require("fs");
11
-
12
10
  var path = require("path");
13
-
14
11
  function destroy(stream) {
15
12
  if (!(stream !== null && stream !== void 0 && stream.__destroyed)) {
16
13
  stream.destroy();
17
14
  stream.__destroyed = true;
18
-
19
15
  if (typeof stream.close === "function") {
20
16
  stream.on("open", function onOpenClose() {
21
17
  if (typeof this.fd === "number") {
@@ -24,68 +20,52 @@ function destroy(stream) {
24
20
  });
25
21
  }
26
22
  }
27
-
28
23
  return stream;
29
24
  }
30
-
31
25
  function onFinished(req, res, callback) {
32
26
  function isFinishedResponse() {
33
27
  var socket = res.socket;
34
-
35
28
  if (typeof res.finished === "boolean") {
36
29
  return Boolean(res.finished || res.writableEnded || socket && !socket.writable);
37
30
  }
38
31
  }
39
-
40
32
  function isFinishedRequest() {
41
33
  var socket = req.socket;
42
-
43
34
  if (typeof req.complete === "boolean") {
44
35
  return Boolean(req.upgrade || !socket || !socket.readable || req.complete && !req.readable);
45
36
  }
46
37
  }
47
-
48
38
  function removeListener() {
49
39
  if (req.__onFinishedInterval) {
50
40
  clearInterval(req.__onFinishedInterval);
51
41
  req.__onFinishedInterval = 0;
52
42
  }
53
-
54
43
  if (res.__onFinishedInterval) {
55
44
  clearInterval(res.__onFinishedInterval);
56
45
  res.__onFinishedInterval = 0;
57
46
  }
58
47
  }
59
-
60
48
  function listener() {
61
49
  var result = isFinishedRequest() || isFinishedResponse();
62
-
63
50
  if (result) {
64
51
  removeListener();
65
52
  callback();
66
53
  }
67
54
  }
68
-
69
55
  req.__onFinishedInterval = res.__onFinishedInterval = setInterval(listener, 100);
70
56
  req.__onFinishedRemoveListener = res.__onFinishedRemoveListener = removeListener;
71
57
  }
72
-
73
58
  function endStream(req, res, stream) {
74
59
  if (req.__onFinishedRemoveListener) {
75
60
  req.__onFinishedRemoveListener();
76
-
77
61
  req.__onFinishedRemoveListener = null;
78
62
  }
79
-
80
63
  if (res.__onFinishedRemoveListener) {
81
64
  res.__onFinishedRemoveListener();
82
-
83
65
  res.__onFinishedRemoveListener = null;
84
66
  }
85
-
86
67
  destroy(stream);
87
68
  }
88
-
89
69
  function addCloseEventsForReadableStream(req, res, stream) {
90
70
  req.on("close", function () {
91
71
  endStream(req, res, stream);
@@ -100,28 +80,22 @@ function addCloseEventsForReadableStream(req, res, stream) {
100
80
  endStream(req, res, stream);
101
81
  });
102
82
  }
103
-
104
83
  function serveStatic(publicPath) {
105
84
  return function staticMiddleware(req, res, next) {
106
85
  var parsedUrl = {
107
86
  pathname: req.wappRequest.path
108
87
  };
109
-
110
88
  try {
111
89
  parsedUrl = new URL(req.wappRequest.url);
112
90
  } catch (e) {}
113
-
114
91
  var sanitizePath = path.normalize(parsedUrl.pathname).replace(/^(\.\.[\/\\])+/, "");
115
92
  var pathname = path.join(publicPath, sanitizePath);
116
93
  var parsedSanitizePath = path.parse(pathname);
117
94
  var ext = parsedSanitizePath.ext;
118
-
119
95
  if (!fs.existsSync(pathname) || !ext) {
120
96
  return next();
121
97
  }
122
-
123
98
  var stream;
124
-
125
99
  try {
126
100
  var data = fs.readFileSync(pathname);
127
101
  var stats = fs.statSync(pathname);
package/package.json CHANGED
@@ -22,7 +22,7 @@
22
22
  "files": [
23
23
  "dist/*"
24
24
  ],
25
- "version": "1.0.75",
25
+ "version": "1.0.76",
26
26
  "main": "dist/server",
27
27
  "browser": "dist/client",
28
28
  "repository": {