manner.js 0.0.32 → 0.0.33

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.
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"clearCookie",{enumerable:!0,get:function(){return _setCookie.default}}),Object.defineProperty(exports,"filterNamespace",{enumerable:!0,get:function(){return _filterNamespace.default}}),Object.defineProperty(exports,"readCookie",{enumerable:!0,get:function(){return _setCookie.default}}),Object.defineProperty(exports,"setCookie",{enumerable:!0,get:function(){return _setCookie.default}});var _filterNamespace=_interopRequireDefault(require("./lib/filterNamespace")),_setCookie=_interopRequireDefault(require("./lib/setCookie"));function _interopRequireDefault(a){return a&&a.__esModule?a:{default:a}}
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=clearCookie;function clearCookie(a){return Object.keys(a).forEach(b=>{void 0!==b.expires&&(Object.keys(b).forEach(a=>{"user"===b&&(document.cookie[b+"_"+a]=""),window.localStorage.removeItem(b+"_"+a)}),delete a[b])}),a}
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=filterNamespace;function filterNamespace(a){const b={};return Object.keys(a).forEach(c=>{"expires"!==c&&(b[c]=a[c])}),b}
@@ -0,0 +1 @@
1
+ "use strict";var _clearCookie=_interopRequireDefault(require("./clearCookie"));Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=readCookie;function _interopRequireDefault(a){return a&&a.__esModule?a:{default:a}}function readCookie(){const a={};document.cookie.split(";").forEach(b=>{const[c,d]=b.split("=");a[c.trim()]=d});const b={};Object.keys(a).forEach(c=>{const d=c.split("_");if(2===d.length){const[e,f]=d;b[e]===void 0&&(b[e]={}),b[e][f]=a[c]}});for(let a=0;a<window.localStorage.length;a+=1){const c=window.localStorage.key(a),d=c.split("_");if(2===d.length){const[a,e]=d;b[a]===void 0&&(b[a]={}),b[a][e]=window.localStorage.getItem(c)}}return(0,_clearCookie.default)(b)}
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=setCookie;function setCookie(a){const b=a.headers.get("cookie");null!==b&&(""===b?document.cookie.split(";").forEach(a=>{const[b,c]=a.split("="),[d]=b.split("_");"user"===d&&(document.cookie=b+"="+c),window.localStorage.set(b,c)}):b.split(";").forEach(a=>{document.cookie=a}))}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "manner.js",
3
- "version": "0.0.32",
3
+ "version": "0.0.33",
4
4
  "description": "Frontend mode project.",
5
5
  "repository": "git@github.com:leobrad/mode.git",
6
6
  "author": "Leo Ely",
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _path=_interopRequireDefault(require("path")),_fs=_interopRequireDefault(require("fs")),_zlib=_interopRequireDefault(require("zlib")),_getHtml=_interopRequireDefault(require("../lib/getHtml")),_parseDateString=_interopRequireDefault(require("../lib/parseDateString")),_formateHttpDate=_interopRequireDefault(require("../lib/formateHttpDate")),_formateHttpKey=_interopRequireDefault(require("../lib/formateHttpKey"));function _interopRequireDefault(a){return a&&a.__esModule?a:{default:a}}function getLists(a){return a.join("|")}class CommonHttp{constructor(a){const{fonts:b}=a;a.fonts===void 0&&(a.fonts=[]),this.time=new Date().getTime(),this.modify={},this.file={},this.raw={},this.compress={},this.options=a,this.regexp=new RegExp(`\.(${getLists(a.fonts.concat(["html, ico","js"]))})$`)}compressOutput(a,b,c,d){b.setHeader("Vary","Accept-Encoding");let e=a.headers["accept-encoding"];/gzip/.test(e)?(b.writeHead(200,{"Content-Encoding":"gzip"}),this.dealCompress(_zlib.default.gzipSync(c),d,b)):(b.writeHead(200,{}),this.dealDirect(c,d,b))}cacheOutput(a,b,c,d,e){let f=a.headers["If-Modified-Since"];f===void 0?(this.modify[c]===void 0&&(this.modify[c]=new Date(e).toString()),this.file[c]===void 0&&(this.file[c]=d),b.setHeader("Last-Modified",(0,_formateHttpDate.default)(this.modify[c])),this.compressOutput(a,b,this.file[c],c)):(this.modify[c]===void 0&&(this.modify[c]=new Date(e).toString()),(0,_parseDateString.default)(new Date().toString())<(0,_parseDateString.default)(this.modify[c])?(this.file[c]===void 0&&(this.file[c]=d),b.setHeader("Last-Modified",(0,_formateHttpDate.default)(this.modify[c])),this.compressOutput(a,b,this.file[c],c)):(b.writeHead(304),b.end()))}dealCompress(a,b,c){this.compress[b]===void 0&&(this.compress[b]=a),c.end(this.compress[b])}directDeal(a,b,c){this.raw[b]===void 0&&(this.compress[b]=a),c.end(this.raw[b])}async process(a,b){try{const{url:c}=a;if("/update/time"===c){const{time:a}=this;b.end(a)}else if(this.regexp.test(c)){const d=c.substring(1,c.length);this.cacheOutput(a,b,d,_fs.default.readFileSync(_path.default.resolve("static",d)),parseInt(_fs.default.statSync(_path.default.resolve("static",d)).mtimeMs))}else if("/api"===c.substring(0,4)){const d=await new Promise(b=>{a.on("data",a=>{b(a.toString())})}),{location:e}=this.options;if(e!==void 0){const a=await fetch(e+c,{method:"POST",body:d});for(const c of a.headers.keys())b.setHeader((0,_formateHttpKey.default)(c),a.headers.get(c));const f=await a.text();b.end(JSON.stringify(f))}}else{if(this.html===void 0){const{title:a,content:b}=this.options;this.html=(0,_getHtml.default)(a,b)}this.cacheOutput(a,b,"*html",this.html,this.time)}}catch(a){const{develope:c}=this.options;if(!0===c)throw a;else b.writeHead(500),b.end()}}}exports.default=CommonHttp;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"CommonHttp",{enumerable:!0,get:function(){return _CommonHttp.default}}),Object.defineProperty(exports,"parseOption",{enumerable:!0,get:function(){return _parseOption.default}}),Object.defineProperty(exports,"readCookie",{enumerable:!0,get:function(){return _readCookie.default}});var _CommonHttp=_interopRequireDefault(require("./class/CommonHttp")),_parseOption=_interopRequireDefault(require("./lib/parseOption")),_readCookie=_interopRequireDefault(require("./lib/readCookie"));function _interopRequireDefault(a){return a&&a.__esModule?a:{default:a}}
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = cacheOutput;
7
+ var _formateHttpDate = _interopRequireDefault(require("./formateHttpDate"));
8
+ var _parseHttpDate = _interopRequireDefault(require("./parseHttpDate"));
9
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
10
+ function cacheOutput(req, res, path, file, ms) {
11
+ let ifModifiedSince = req.headers['If-Modified-Since'];
12
+ if (ifModifiedSince === undefined) {
13
+ if (this.modify[path] === undefined) {
14
+ this.modify[path] = new Date(ms).toString();
15
+ }
16
+ if (this.file[path] === undefined) {
17
+ this.file[path] = file;
18
+ }
19
+ res.setHeader('Last-Modified', (0, _formateHttpDate.default)(this.modify[path]));
20
+ this.compressOutput(req, res, this.file[path], path);
21
+ } else {
22
+ if (this.modify[path] === undefined) {
23
+ this.modify[path] = new Date(ms).toString();
24
+ }
25
+ if ((0, _parseHttpDate.default)(new Date().toString()) < (0, _parseHttpDate.default)(this.modify[path])) {
26
+ if (this.file[path] === undefined) {
27
+ this.file[path] = file;
28
+ }
29
+ res.setHeader('Last-Modified', (0, _formateHttpDate.default)(this.modify[path]));
30
+ this.compressOutput(req, res, this.file[path], path);
31
+ } else {
32
+ res.writeHead(304);
33
+ res.end();
34
+ }
35
+ }
36
+ }
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = compressOutput;
7
+ var _zlib = _interopRequireDefault(require("zlib"));
8
+ var _stream = require("stream");
9
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
10
+ function onError(err) {
11
+ if (err) {
12
+ console.error('An error occurred:', err);
13
+ process.exitCode = 1;
14
+ }
15
+ }
16
+ function compressOutput(req, res, buffer, path) {
17
+ res.setHeader('Vary', 'Accept-Encoding');
18
+ let acceptEncoding = req.headers['accept-encoding'];
19
+ if (/gzip/.test(acceptEncoding)) {
20
+ res.writeHead(200, {
21
+ 'Content-Encoding': 'gzip'
22
+ });
23
+ this.dealCompress(_zlib.default.gzipSync(buffer), path, res);
24
+ } else {
25
+ res.writeHead(200, {});
26
+ this.dealDirect(buffer, path, res);
27
+ }
28
+ }
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=formateHttpDate;function formateHttpDate(a){let[b,c,d,e,f,g]=a.toString().split(" ");return g=g.split("+")[0],c+", "+d+" "+c+" "+e+" "+f+" "+g}
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=formateHttpKey;function formateHttpKey(a){return a.split("-").map(a=>a.substring(0,1).toUpperCase()+a.substring(1,a.length)).join("-")}
@@ -0,0 +1,15 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=getHtml;var _handlebars=_interopRequireDefault(require("handlebars")),_htmlMinifier=require("html-minifier");function _interopRequireDefault(a){return a&&a.__esModule?a:{default:a}}function getHtml(a,b){const c=_handlebars.default.compile(`
2
+ <!doctype html>
3
+ <html lang="en">
4
+ <head>
5
+ <meta charset="utf-8" />
6
+ <title>{{title}}</title>
7
+ <meta name="description" content="{{content}}" />
8
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
9
+ </head>
10
+ <body>
11
+ <main id="root"></main>
12
+ <script src="main.bundle.js"></script>
13
+ </body>
14
+ </html>
15
+ `);return(0,_htmlMinifier.minify)(c({title:a,content:b}),{collapseWhitespace:!0})}
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=parseDateString;function parseDateString(){return new Date(httpDate).getTime()}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = formateHttpDate;
7
+ function formateHttpDate(date) {
8
+ let [week, month, day, year, time, zone] = date.toString().split(' ');
9
+ zone = zone.split('+')[0];
10
+ return month + ', ' + day + ' ' + month + ' ' + year + ' ' + time + ' ' + zone;
11
+ }
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.parseOption=parseOption;function isOption(a){let b=!0;if("string"==typeof a){let c=0;for(c=0;1>c&&!("-"===a.charAt(c));c+=1);0==c&&(b=!1)}else b=!1;return b}function transformOption(a){let b;const c=a.split("-");return b=1<=c.length?c.map((a,b)=>0===b?a:a.charAt(0).toUpperCase()+a.substring(1,a.length)):a,b.join("")}function parseOption(...a){const b={};for(let c=0;c<a.length;c+=1){const d=a[c];if("-"===d.charAt(0)){const e=/^\-([a-z])$/;if(e.test(d)){const[f,g]=d.match(e);isOption(a[c+1])?(b[g]=a[c+1],c+=1):b[g]=!0}if("-"===d.charAt(1)){const e=/^\-\-([a-z\-]+)$/;if(e.test(d)){const[f,g]=d.match(e);isOption(a[c+1])?(b[transformOption(g)]=a[c+1],c+=1):b[g]=!0}}}}return b}
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.readCookie=readCookie;function readCookie(a){const b={};"string"==typeof a&&a.split(";").forEach(a=>{const[c,d]=a.split("=");b[c.trim()]=d});const c={};return Object.keys(b).forEach(a=>{const d=a.split("_");if(2===d.length){const[e,f]=d;void 0===c[e]&&(c[e]={}),c[e][f]=b[a]}}),c}