wapplr 1.0.50 → 1.0.54

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.
@@ -78,8 +78,8 @@ function createClient() {
78
78
  search: window.location.search,
79
79
  hash: window.location.hash
80
80
  },
81
- state: {
82
- key: 0
81
+ state: window.history.state || {
82
+ key: "initial"
83
83
  }
84
84
  }
85
85
  }, {}, function out() {
@@ -71,9 +71,7 @@ function createHistoryManager() {
71
71
  state.key = state.key || createKey();
72
72
  history.runListeners({
73
73
  action: "POP",
74
- location: (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, newLocation), {}, {
75
- key: state.key
76
- }),
74
+ location: (0, _objectSpread2["default"])({}, newLocation),
77
75
  state: state
78
76
  });
79
77
  }
@@ -139,9 +137,7 @@ function createHistoryManager() {
139
137
  globalHistory.pushState(state, "", url);
140
138
  history.runListeners({
141
139
  action: "PUSH",
142
- location: (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, newLocation), {}, {
143
- key: state.key
144
- }),
140
+ location: (0, _objectSpread2["default"])({}, newLocation),
145
141
  state: state
146
142
  });
147
143
  }
@@ -171,9 +167,6 @@ function createHistoryManager() {
171
167
  enumerable: false,
172
168
  value: defaultGetState
173
169
  }),
174
- key: (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, _utils.defaultDescriptor), {}, {
175
- value: "initial"
176
- }),
177
170
  listeners: (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, _utils.defaultDescriptor), {}, {
178
171
  enumerable: false,
179
172
  value: {}
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
- const tokens = {"log":"log_22skC","logo":"log_1z5J7"};
6
- tokens._getCss = function () {return `/* imported from log.css */ .log_22skC { display: -ms-flexbox; display: flex; -ms-flex-direction: column; flex-direction: column; -ms-flex-align: center; align-items: center; -ms-flex-pack: center; justify-content: center; -webkit-box-sizing: border-box; box-sizing: border-box; padding: 16px; width: 100%; height: 100%; position: absolute; } .log_1z5J7 { height: 128px; max-width: 100%; } .log_22skC > div { width: 100%; text-align: center; } `;};
5
+ const tokens = {"log":"log_3MWuJ","logo":"log_36siB"};
6
+ tokens._getCss = function () {return `/* imported from log.css */ .log_3MWuJ { display: -ms-flexbox; display: flex; -ms-flex-direction: column; flex-direction: column; -ms-flex-align: center; align-items: center; -ms-flex-pack: center; justify-content: center; -webkit-box-sizing: border-box; box-sizing: border-box; padding: 16px; width: 100%; height: 100%; position: absolute; } .log_36siB { height: 128px; max-width: 100%; } .log_3MWuJ > div { width: 100%; text-align: center; } `;};
7
7
  tokens._module = (typeof module !== "undefined") ? module : {id:"./common/log/log_css.js"};
8
8
  exports["default"] = tokens;
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
- const tokens = {"logo":"logo_nn0MV","icon":"logo_1jj_J","svg":"logo_Kj3Lv"};
6
- tokens._getCss = function () {return `/* imported from logo.css */ .logo_nn0MV { height: 100%; width: auto; display: -ms-inline-flexbox; display: inline-flex; -ms-flex-align: center; align-items: center; -ms-flex-pack: center; justify-content: center; } .logo_1jj_J { height: 90%; width: auto; } .logo_Kj3Lv { height: 100%; width: auto; display: -ms-flexbox; display: flex; max-width: 100%; } .logo_Kj3Lv path{ fill: currentColor; } `;};
5
+ const tokens = {"logo":"logo_d_fdf","icon":"logo_1Trfm","svg":"logo_X5kuq"};
6
+ tokens._getCss = function () {return `/* imported from logo.css */ .logo_d_fdf { height: 100%; width: auto; display: -ms-inline-flexbox; display: inline-flex; -ms-flex-align: center; align-items: center; -ms-flex-pack: center; justify-content: center; } .logo_1Trfm { height: 90%; width: auto; } .logo_X5kuq { height: 100%; width: auto; display: -ms-flexbox; display: flex; max-width: 100%; } .logo_X5kuq path{ fill: currentColor; } `;};
7
7
  tokens._module = (typeof module !== "undefined") ? module : {id:"./common/logo/logo_css.js"};
8
8
  exports["default"] = tokens;
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
- const tokens = {"app":"app_1jDDh"};
6
- tokens._getCss = function () {return `/* imported from app.css */ body { margin: 0; padding: 0; max-width: 100vw; overflow-x: hidden; } * { -webkit-box-sizing: border-box; box-sizing: border-box; } .app_1jDDh { font-size: 14px; color: rgba(0,0,0,0.87); display: block; position: relative; overflow-x: hidden; } div.app_1jDDh > * { font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; } @media (orientation: portrait) { .app_1jDDh { max-width: 100vh; } } `;};
5
+ const tokens = {"app":"app_TgHI7"};
6
+ tokens._getCss = function () {return `/* imported from app.css */ body { margin: 0; padding: 0; max-width: 100vw; overflow-x: hidden; } * { -webkit-box-sizing: border-box; box-sizing: border-box; } .app_TgHI7 { font-size: 14px; color: rgba(0,0,0,0.87); display: block; position: relative; overflow-x: hidden; } div.app_TgHI7 > * { font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; } @media (orientation: portrait) { .app_TgHI7 { max-width: 100vh; } } `;};
7
7
  tokens._module = (typeof module !== "undefined") ? module : {id:"./common/template/app_css.js"};
8
8
  exports["default"] = tokens;
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
- const tokens = {"page":"template_2Xa8-","header":"template_3YAtu","sticky":"template_3VZZR","innerHeader":"template_368k6","logo":"template_K8VJE","content":"template_2Fgqj","footer":"template_21lie","menu":"template_1BoA5","button":"template_3ZxC8","copyright":"template_3bU4k"};
6
- tokens._getCss = function () {return `/* imported from template.css */ .template_2Xa8- { display: block; position: relative; overflow-x: hidden; overflow-y: hidden; min-height: 100vh; max-width: 100vw; } .template_3YAtu { display: block; position: fixed; width: 100%; height: 64px; padding: 6px; background: white; z-index: 1; -webkit-transition: all 450ms cubic-bezier(0.23, 1, 0.32, 1) 0ms; -o-transition: all 450ms cubic-bezier(0.23, 1, 0.32, 1) 0ms; transition: all 450ms cubic-bezier(0.23, 1, 0.32, 1) 0ms; } .template_3YAtu.template_3VZZR { -webkit-box-shadow: 0 2px 3px rgba(62, 62, 62, 0.15); box-shadow: 0 2px 3px rgba(62, 62, 62, 0.15); } .template_368k6 { display: block; width: 100%; height: 100%; position: relative; overflow: hidden; } .template_3YAtu .template_K8VJE { height: 52px; -webkit-transition: all 450ms cubic-bezier(0.23, 1, 0.32, 1) 0ms; -o-transition: all 450ms cubic-bezier(0.23, 1, 0.32, 1) 0ms; transition: all 450ms cubic-bezier(0.23, 1, 0.32, 1) 0ms; margin-top: 100%; } .template_3YAtu.template_3VZZR .template_K8VJE { margin-top: 0; } .template_2Fgqj { min-height: 100vh; position: relative; padding-top: 64px; } .template_21lie { display: -ms-flexbox; display: flex; min-height: 128px; -ms-flex-align: center; align-items: center; -ms-flex-pack: center; justify-content: center; } .template_1BoA5 { } .template_1BoA5 > div { } .template_21lie .template_1BoA5 { -ms-flex-pack: center; justify-content: center; display: -ms-flexbox; display: flex; } .template_21lie .template_1BoA5 > div { display: inline-block; } .template_3ZxC8 { color: rgba(0, 0, 0, 0.87); padding: 6px 16px; font-size: 14px; font-size: 0.875rem; min-width: 64px; -webkit-box-sizing: border-box; box-sizing: border-box; -webkit-transition: background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,border 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,-webkit-box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; transition: background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,border 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,-webkit-box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; -o-transition: background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,border 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; transition: background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,border 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; transition: background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,border 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,-webkit-box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; line-height: 1.75; border-radius: 4px; letter-spacing: 0.02857em; text-transform: uppercase; font-weight: bold; border: 0; cursor: pointer; margin: 0; display: -ms-inline-flexbox; display: inline-flex; outline: 0; position: relative; -ms-flex-align: center; align-items: center; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; vertical-align: middle; -ms-flex-pack: center; justify-content: center; text-decoration: none; background-color: transparent; text-align: center; } a.template_3ZxC8 { text-decoration: none; } .template_3bU4k { font-size: 12px; margin: 24px; text-align: center; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; } `;};
5
+ const tokens = {"page":"template_3HXPB","header":"template_3ck2q","sticky":"template_2Nz4A","innerHeader":"template_3nJPj","logo":"template_rKBgA","content":"template_1zK-k","footer":"template_3Rlwa","menu":"template_1r1_q","button":"template_1iINl","copyright":"template_3y44t"};
6
+ tokens._getCss = function () {return `/* imported from template.css */ .template_3HXPB { display: block; position: relative; overflow-x: hidden; overflow-y: hidden; min-height: 100vh; max-width: 100vw; } .template_3ck2q { display: block; position: fixed; width: 100%; height: 64px; padding: 6px; background: white; z-index: 1; -webkit-transition: all 450ms cubic-bezier(0.23, 1, 0.32, 1) 0ms; -o-transition: all 450ms cubic-bezier(0.23, 1, 0.32, 1) 0ms; transition: all 450ms cubic-bezier(0.23, 1, 0.32, 1) 0ms; } .template_3ck2q.template_2Nz4A { -webkit-box-shadow: 0 2px 3px rgba(62, 62, 62, 0.15); box-shadow: 0 2px 3px rgba(62, 62, 62, 0.15); } .template_3nJPj { display: block; width: 100%; height: 100%; position: relative; overflow: hidden; } .template_3ck2q .template_rKBgA { height: 52px; -webkit-transition: all 450ms cubic-bezier(0.23, 1, 0.32, 1) 0ms; -o-transition: all 450ms cubic-bezier(0.23, 1, 0.32, 1) 0ms; transition: all 450ms cubic-bezier(0.23, 1, 0.32, 1) 0ms; margin-top: 100%; } .template_3ck2q.template_2Nz4A .template_rKBgA { margin-top: 0; } .template_1zK-k { min-height: 100vh; position: relative; padding-top: 64px; } .template_3Rlwa { display: -ms-flexbox; display: flex; min-height: 128px; -ms-flex-align: center; align-items: center; -ms-flex-pack: center; justify-content: center; } .template_1r1_q { } .template_1r1_q > div { } .template_3Rlwa .template_1r1_q { -ms-flex-pack: center; justify-content: center; display: -ms-flexbox; display: flex; } .template_3Rlwa .template_1r1_q > div { display: inline-block; } .template_1iINl { color: rgba(0, 0, 0, 0.87); padding: 6px 16px; font-size: 14px; font-size: 0.875rem; min-width: 64px; -webkit-box-sizing: border-box; box-sizing: border-box; -webkit-transition: background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,border 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,-webkit-box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; transition: background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,border 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,-webkit-box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; -o-transition: background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,border 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; transition: background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,border 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; transition: background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,border 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,-webkit-box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; line-height: 1.75; border-radius: 4px; letter-spacing: 0.02857em; text-transform: uppercase; font-weight: bold; border: 0; cursor: pointer; margin: 0; display: -ms-inline-flexbox; display: inline-flex; outline: 0; position: relative; -ms-flex-align: center; align-items: center; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; vertical-align: middle; -ms-flex-pack: center; justify-content: center; text-decoration: none; background-color: transparent; text-align: center; } a.template_1iINl { text-decoration: none; } .template_3y44t { font-size: 12px; margin: 24px; text-align: center; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; } `;};
7
7
  tokens._module = (typeof module !== "undefined") ? module : {id:"./common/template/template_css.js"};
8
8
  exports["default"] = tokens;
@@ -13,6 +13,8 @@ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers
13
13
 
14
14
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
15
15
 
16
+ var _createForOfIteratorHelper2 = _interopRequireDefault(require("@babel/runtime/helpers/createForOfIteratorHelper"));
17
+
16
18
  var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
17
19
 
18
20
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
@@ -165,6 +167,32 @@ function createServer() {
165
167
  httpServer.listen(port, function () {
166
168
  console.log("The server is running at http://localhost:".concat(port, "/"));
167
169
  });
170
+ httpServer.__sockets = new Set();
171
+ httpServer.on("connection", function (socket) {
172
+ httpServer.__sockets.add(socket);
173
+
174
+ socket.on("close", function () {
175
+ httpServer.__sockets["delete"](socket);
176
+ });
177
+ });
178
+
179
+ httpServer.__destroySockets = function () {
180
+ var sockets = httpServer.__sockets;
181
+
182
+ var _iterator = (0, _createForOfIteratorHelper2["default"])(sockets.values()),
183
+ _step;
184
+
185
+ try {
186
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
187
+ var socket = _step.value;
188
+ socket.destroy();
189
+ }
190
+ } catch (err) {
191
+ _iterator.e(err);
192
+ } finally {
193
+ _iterator.f();
194
+ }
195
+ };
168
196
  }
169
197
 
170
198
  if (key && cert && portSSL) {
@@ -180,6 +208,32 @@ function createServer() {
180
208
  httpsServer.listen(portSSL, function () {
181
209
  console.log("The server is running at https://localhost:".concat(portSSL, "/ with HTTP2 protocol"));
182
210
  });
211
+ httpsServer.__sockets = new Set();
212
+ httpsServer.on("connection", function (socket) {
213
+ httpsServer.__sockets.add(socket);
214
+
215
+ socket.on("close", function () {
216
+ httpsServer.__sockets["delete"](socket);
217
+ });
218
+ });
219
+
220
+ httpsServer.__destroySockets = function () {
221
+ var sockets = httpsServer.__sockets;
222
+
223
+ var _iterator2 = (0, _createForOfIteratorHelper2["default"])(sockets.values()),
224
+ _step2;
225
+
226
+ try {
227
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
228
+ var socket = _step2.value;
229
+ socket.destroy();
230
+ }
231
+ } catch (err) {
232
+ _iterator2.e(err);
233
+ } finally {
234
+ _iterator2.f();
235
+ }
236
+ };
183
237
  }
184
238
  }
185
239
 
@@ -196,6 +250,8 @@ function createServer() {
196
250
  });
197
251
  var closed = 0;
198
252
  shouldClose.forEach(function (httpServer) {
253
+ httpServer.__destroySockets();
254
+
199
255
  httpServer.close(function () {
200
256
  closed = closed + 1;
201
257
  servers[port] = null;
@@ -3,6 +3,8 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ exports.endStream = endStream;
7
+ exports.addCloseEventsForReadableStream = addCloseEventsForReadableStream;
6
8
  exports["default"] = serveStatic;
7
9
 
8
10
  var fs = require("fs");
@@ -26,28 +28,12 @@ function destroy(stream) {
26
28
  return stream;
27
29
  }
28
30
 
29
- function endStream(req, res, stream) {
30
- if (req.__onFinishedRemoveListener) {
31
- req.__onFinishedRemoveListener();
32
-
33
- req.__onFinishedRemoveListener = null;
34
- }
35
-
36
- if (res.__onFinishedRemoveListener) {
37
- res.__onFinishedRemoveListener();
38
-
39
- res.__onFinishedRemoveListener = null;
40
- }
41
-
42
- destroy(stream);
43
- }
44
-
45
31
  function onFinished(req, res, callback) {
46
32
  function isFinishedResponse() {
47
33
  var socket = res.socket;
48
34
 
49
35
  if (typeof res.finished === "boolean") {
50
- return Boolean(res.finished || socket && !socket.writable);
36
+ return Boolean(res.finished || res.writableEnded || socket && !socket.writable);
51
37
  }
52
38
  }
53
39
 
@@ -61,7 +47,6 @@ function onFinished(req, res, callback) {
61
47
 
62
48
  function removeListener() {
63
49
  if (req.__onFinishedInterval) {
64
- console.log("remove listener", req.path);
65
50
  clearInterval(req.__onFinishedInterval);
66
51
  req.__onFinishedInterval = 0;
67
52
  }
@@ -85,6 +70,37 @@ function onFinished(req, res, callback) {
85
70
  req.__onFinishedRemoveListener = res.__onFinishedRemoveListener = removeListener;
86
71
  }
87
72
 
73
+ function endStream(req, res, stream) {
74
+ if (req.__onFinishedRemoveListener) {
75
+ req.__onFinishedRemoveListener();
76
+
77
+ req.__onFinishedRemoveListener = null;
78
+ }
79
+
80
+ if (res.__onFinishedRemoveListener) {
81
+ res.__onFinishedRemoveListener();
82
+
83
+ res.__onFinishedRemoveListener = null;
84
+ }
85
+
86
+ destroy(stream);
87
+ }
88
+
89
+ function addCloseEventsForReadableStream(req, res, stream) {
90
+ req.on("close", function () {
91
+ endStream(req, res, stream);
92
+ });
93
+ req.connection.on("close", function () {
94
+ endStream(req, res, stream);
95
+ });
96
+ onFinished(req, res, function () {
97
+ endStream(req, res, stream);
98
+ });
99
+ stream.on("close", function onclose() {
100
+ endStream(req, res, stream);
101
+ });
102
+ }
103
+
88
104
  function serveStatic(publicPath) {
89
105
  return function staticMiddleware(req, res, next) {
90
106
  var parsedUrl = {
@@ -97,8 +113,8 @@ function serveStatic(publicPath) {
97
113
 
98
114
  var sanitizePath = path.normalize(parsedUrl.pathname).replace(/^(\.\.[\/\\])+/, "");
99
115
  var pathname = path.join(publicPath, sanitizePath);
100
- var paredSanitizePath = path.parse(pathname);
101
- var ext = paredSanitizePath.ext;
116
+ var parsedSanitizePath = path.parse(pathname);
117
+ var ext = parsedSanitizePath.ext;
102
118
 
103
119
  if (!fs.existsSync(pathname) || !ext) {
104
120
  return next();
@@ -113,15 +129,10 @@ function serveStatic(publicPath) {
113
129
  res.wappResponse.sendData = {
114
130
  data: data,
115
131
  stats: stats,
116
- parsedPath: paredSanitizePath
132
+ parsedPath: parsedSanitizePath
117
133
  };
118
134
  stream = fs.createReadStream(pathname);
119
- onFinished(req, res, function () {
120
- endStream(req, res, stream);
121
- });
122
- stream.on("close", function onopen() {
123
- endStream(req, res, stream);
124
- });
135
+ addCloseEventsForReadableStream(req, res, stream);
125
136
  stream.on("error", function onerror(err) {
126
137
  endStream(req, res, stream);
127
138
  res.wappResponse.status(err.statusCode || 500, err);
package/package.json CHANGED
@@ -22,7 +22,7 @@
22
22
  "files": [
23
23
  "dist/*"
24
24
  ],
25
- "version": "1.0.50",
25
+ "version": "1.0.54",
26
26
  "main": "dist/server",
27
27
  "browser": "dist/client",
28
28
  "repository": {