wapplr 1.0.74 → 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) {
@@ -94,7 +84,7 @@ function html(_ref) {
94
84
  }).join("");
95
85
  var csStyles = assets.getCsStyles();
96
86
  var cssText = csStyles.map(function (css) {
97
- return "<link rel=\"stylesheet\" as=\"style\" type=\"text/css\" href=\"".concat(css, "\" />");
87
+ return "<link rel=\"stylesheet\" type=\"text/css\" href=\"".concat(css, "\" />");
98
88
  }).join("");
99
89
  var stateText = "<script>window[\"".concat(appStateName, "\"] = ").concat(JSON.stringify(state || {}), "</script>");
100
90
  var scripts = assets.getScripts();
@@ -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",
@@ -39,20 +32,17 @@ var mimeType = {
39
32
  ".pdf": "application/pdf",
40
33
  ".zip": "application/zip",
41
34
  ".doc": "application/msword",
35
+ ".docx": "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
42
36
  ".eot": "application/vnd.ms-fontobject",
43
37
  ".ttf": "application/x-font-ttf",
44
38
  ".xml": "application/xml",
45
39
  ".map": "application/json"
46
40
  };
47
- exports.mimeType = mimeType;
48
-
49
41
  function createRenderMiddleware() {
50
42
  var p = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
51
43
  var wapp = p.wapp;
52
-
53
44
  function defaultRenderHandle(req, res, next) {
54
45
  var wappResponse = res.wappResponse;
55
-
56
46
  if (wappResponse.content && !wappResponse.content.renderType) {
57
47
  res.wappResponse.status(wappResponse.statusCode || 200);
58
48
  var render = wapp.contents.getComponent("html");
@@ -66,20 +56,17 @@ function createRenderMiddleware() {
66
56
  next();
67
57
  }
68
58
  }
69
-
70
59
  function defaultHandle(req, res, out) {
71
60
  if (!wapp.contents.getComponent("html")) {
72
61
  wapp.contents.addComponent({
73
62
  html: defaultRender
74
63
  });
75
64
  }
76
-
77
65
  var renderMiddlewares = Object.keys(renderMiddleware.handles).map(function (key) {
78
66
  return renderMiddleware.handles[key];
79
67
  });
80
68
  renderMiddlewares.sort();
81
69
  var index = 0;
82
-
83
70
  function next(err) {
84
71
  if (renderMiddlewares[index]) {
85
72
  var func = renderMiddlewares[index];
@@ -91,27 +78,21 @@ function createRenderMiddleware() {
91
78
  index = 0;
92
79
  return out(err);
93
80
  }
94
-
95
81
  return null;
96
82
  }
97
-
98
83
  return next();
99
84
  }
100
-
101
85
  var defaultRender = _html2["default"];
102
-
103
86
  function defaultAddHandle(obj) {
104
87
  if (typeof obj === "object" && !obj.length) {
105
88
  Object.keys(obj).forEach(function (handleName) {
106
89
  var handle = obj[handleName];
107
-
108
90
  if (typeof handle == "function") {
109
91
  renderMiddleware.handles[handleName] = handle;
110
92
  }
111
93
  });
112
94
  }
113
95
  }
114
-
115
96
  var renderMiddlewareProperties = Object.create(Object.prototype, {
116
97
  handle: (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, _utils.defaultDescriptor), {}, {
117
98
  value: defaultHandle
@@ -128,15 +109,12 @@ function createRenderMiddleware() {
128
109
  value: defaultAddHandle
129
110
  })
130
111
  });
131
-
132
112
  function renderMiddleware(req, res, next) {
133
113
  if (typeof renderMiddleware.handle === "function") {
134
114
  renderMiddleware.handle(req, res, next);
135
115
  }
136
-
137
116
  return renderMiddleware;
138
117
  }
139
-
140
118
  (0, _utils.mergeProperties)(renderMiddleware, renderMiddlewareProperties);
141
119
  Object.defineProperty(renderMiddleware, "wapp", (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, _utils.defaultDescriptor), {}, {
142
120
  writable: false,
@@ -145,11 +123,9 @@ function createRenderMiddleware() {
145
123
  }));
146
124
  return renderMiddleware;
147
125
  }
148
-
149
126
  function createNotModifiedMiddleware() {
150
127
  var p = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
151
128
  var wapp = p.wapp;
152
-
153
129
  function defaultIsFromCache(req, res) {
154
130
  var ifMatch = req.headers["if-match"];
155
131
  var ifUnmodifiedSince = req.headers["if-unmodified-since"];
@@ -162,19 +138,15 @@ function createNotModifiedMiddleware() {
162
138
  var isCacheable = res.wappResponse.statusCode >= 200 && res.wappResponse.statusCode < 300 || res.wappResponse.statusCode === 304;
163
139
  var noCache = cacheControl && /(?:^|,)\s*?no-cache\s*?(?:,|$)/.test(cacheControl);
164
140
  var unconditional = !ifUnmodifiedSince && !ifNoneMatch;
165
-
166
141
  if (unconditional || noCache || !isCacheable || !conditionalGet) {
167
142
  return false;
168
143
  }
169
-
170
144
  var fromCache = false;
171
-
172
145
  if (ifNoneMatch && ifNoneMatch !== "*" && etag) {
173
146
  var parseTokenList = function parseTokenList(str) {
174
147
  var end = 0;
175
148
  var list = [];
176
149
  var start = 0;
177
-
178
150
  for (var i = 0, len = str.length; i < len; i++) {
179
151
  switch (str.charCodeAt(i)) {
180
152
  case 0x20:
@@ -182,54 +154,42 @@ function createNotModifiedMiddleware() {
182
154
  if (start === end) {
183
155
  start = end = i + 1;
184
156
  }
185
-
186
157
  break;
187
-
188
158
  case 0x2c:
189
159
  /* , */
190
160
  list.push(str.substring(start, end));
191
161
  start = end = i + 1;
192
162
  break;
193
-
194
163
  default:
195
164
  end = i + 1;
196
165
  break;
197
166
  }
198
167
  }
199
-
200
168
  list.push(str.substring(start, end));
201
169
  return list;
202
170
  };
203
-
204
171
  var matches = parseTokenList(ifNoneMatch);
205
-
206
172
  for (var i = 0; i < matches.length; i++) {
207
173
  var match = matches[i];
208
-
209
174
  if (match === etag || match === "W/" + etag || "W/" + match === etag) {
210
175
  fromCache = true;
211
176
  break;
212
177
  }
213
178
  }
214
179
  }
215
-
216
180
  if (ifModifiedSince && lastModified) {
217
181
  var parseHttpDate = function parseHttpDate(date) {
218
182
  var timestamp = date && Date.parse(date);
219
183
  return typeof timestamp === 'number' ? timestamp : NaN;
220
184
  };
221
-
222
185
  if (parseHttpDate(lastModified) <= parseHttpDate(ifModifiedSince)) {
223
186
  fromCache = true;
224
187
  }
225
188
  }
226
-
227
189
  return fromCache;
228
190
  }
229
-
230
191
  function defaultHandle(req, res, next) {
231
192
  var fromCache = notModifiedMiddleware.isFromCache(req, res);
232
-
233
193
  if (fromCache) {
234
194
  res.wappResponse.status(304);
235
195
  res.wapp.log(req, res);
@@ -238,7 +198,6 @@ function createNotModifiedMiddleware() {
238
198
  return next();
239
199
  }
240
200
  }
241
-
242
201
  var notModifiedMiddlewareProperties = Object.create(Object.prototype, {
243
202
  handle: (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, _utils.defaultDescriptor), {}, {
244
203
  value: defaultHandle
@@ -247,15 +206,12 @@ function createNotModifiedMiddleware() {
247
206
  value: defaultIsFromCache
248
207
  })
249
208
  });
250
-
251
209
  function notModifiedMiddleware(req, res, next) {
252
210
  if (typeof notModifiedMiddleware.handle === "function") {
253
211
  notModifiedMiddleware.handle(req, res, next);
254
212
  }
255
-
256
213
  return notModifiedMiddleware;
257
214
  }
258
-
259
215
  (0, _utils.mergeProperties)(notModifiedMiddleware, notModifiedMiddlewareProperties);
260
216
  Object.defineProperty(notModifiedMiddleware, "wapp", (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, _utils.defaultDescriptor), {}, {
261
217
  writable: false,
@@ -264,84 +220,70 @@ function createNotModifiedMiddleware() {
264
220
  }));
265
221
  return notModifiedMiddleware;
266
222
  }
267
-
268
223
  function createMiddlewares(p) {
269
224
  var _commonMiddlewares = (0, _middlewares["default"])(p),
270
- log = _commonMiddlewares.log,
271
- rest = (0, _objectWithoutProperties2["default"])(_commonMiddlewares, _excluded);
272
-
225
+ log = _commonMiddlewares.log,
226
+ rest = (0, _objectWithoutProperties2["default"])(_commonMiddlewares, _excluded);
273
227
  var wapp = p.wapp;
274
228
  var wappMiddleware = wapp.middleware;
275
229
  var notModifiedMiddleware = createNotModifiedMiddleware(p);
276
230
  wappMiddleware.addSendMiddleware({
277
231
  headers: function headers(req, res, next) {
278
232
  var _res$wappResponse$sen = res.wappResponse.sendData,
279
- sendData = _res$wappResponse$sen === void 0 ? {} : _res$wappResponse$sen;
280
-
233
+ sendData = _res$wappResponse$sen === void 0 ? {} : _res$wappResponse$sen;
281
234
  if (res.setHeader) {
282
235
  var data = sendData.data,
283
- _sendData$stats = sendData.stats,
284
- stats = _sendData$stats === void 0 ? {} : _sendData$stats,
285
- _sendData$parsedPath = sendData.parsedPath,
286
- parsedPath = _sendData$parsedPath === void 0 ? {} : _sendData$parsedPath,
287
- 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;
288
241
  var _html = data;
289
242
  var _parsedPath$ext = parsedPath.ext,
290
- ext = _parsedPath$ext === void 0 ? ".html" : _parsedPath$ext;
243
+ ext = _parsedPath$ext === void 0 ? ".html" : _parsedPath$ext;
291
244
  var charSet = sendData.charSet ? sendData.charSet : ext === '.html' ? 'utf-8' : '';
292
245
  var mtime = stats.mtime;
293
-
294
246
  if (!res.getHeader("Accept-Ranges")) {
295
247
  res.setHeader("Accept-Ranges", "bytes");
296
248
  }
297
-
298
249
  if (!res.getHeader("Content-Type")) {
299
250
  res.setHeader("Content-Type", [mimeType[ext] || "text/plain", charSet ? 'charset=' + charSet : ''].filter(function (t) {
300
251
  return t;
301
252
  }).join('; '));
302
253
  }
303
-
304
254
  if (!res.getHeader("Content-Length") && !dontSetContentLength) {
305
255
  res.setHeader("Content-Length", Buffer.byteLength(_html));
306
256
  }
307
-
308
257
  if (!res.getHeader("Last-Modified") && mtime) {
309
258
  res.setHeader("Last-Modified", mtime.toUTCString());
310
259
  }
311
-
312
260
  if (!res.getHeader("Cache-Control")) {
313
261
  res.setHeader("Cache-Control", "public, max-age=0");
314
262
  }
315
-
316
263
  if (!res.getHeader("X-Powered-By")) {
317
264
  res.setHeader("X-Powered-By", "Wapplr");
318
265
  }
319
266
  }
320
-
321
267
  return next();
322
268
  },
323
269
  etag: function etag(req, res, next) {
324
270
  var _res$wappResponse$sen2 = res.wappResponse.sendData,
325
- sendData = _res$wappResponse$sen2 === void 0 ? {} : _res$wappResponse$sen2;
326
-
271
+ sendData = _res$wappResponse$sen2 === void 0 ? {} : _res$wappResponse$sen2;
327
272
  if (res.setHeader) {
328
273
  var _sendData$stats2 = sendData.stats,
329
- stats = _sendData$stats2 === void 0 ? {} : _sendData$stats2;
274
+ stats = _sendData$stats2 === void 0 ? {} : _sendData$stats2;
330
275
  var mtime = stats.mtime,
331
- size = stats.size;
332
-
276
+ size = stats.size;
333
277
  if (!res.getHeader("ETag") && mtime && size) {
334
278
  var etag = "W/\"".concat(size.toString(16), "-").concat(mtime.getTime().toString(16), "\"");
335
279
  res.setHeader("ETag", etag);
336
280
  }
337
281
  }
338
-
339
282
  return next();
340
283
  },
341
284
  notModified: function notModified(req, res, next) {
342
285
  if (res.setHeader) {
343
286
  var fromCache = notModifiedMiddleware.isFromCache(req, res);
344
-
345
287
  if (fromCache) {
346
288
  res.wappResponse.status(304);
347
289
  res.wapp.log(req, res);
@@ -349,7 +291,6 @@ function createMiddlewares(p) {
349
291
  return;
350
292
  }
351
293
  }
352
-
353
294
  return next();
354
295
  }
355
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.74",
25
+ "version": "1.0.76",
26
26
  "main": "dist/server",
27
27
  "browser": "dist/client",
28
28
  "repository": {