efront 3.3.7 → 3.4.2

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.
Files changed (66) hide show
  1. package/apps/pivot/api.yml +3 -0
  2. package/apps/pivot/auth/login.html +9 -0
  3. package/apps/pivot/auth/login.js +30 -0
  4. package/apps/pivot/auth/login.less +11 -0
  5. package/apps/pivot/home/short.html +1 -0
  6. package/apps/pivot/home/short.js +5 -0
  7. package/apps/pivot/home/short.less +1 -0
  8. package/apps/pivot/home/welcome.html +14 -0
  9. package/apps/pivot/home/welcome.js +24 -0
  10. package/apps/pivot/home/welcome.less +8 -0
  11. package/apps/pivot/index.html +41 -0
  12. package/apps/pivot/main.js +18 -0
  13. package/apps/pivot/menu.yml +3 -0
  14. package/apps/zimoli/book/main.js +1 -1
  15. package/apps/zimoli/broadcast/main.js +1 -1
  16. package/apps/zimoli/index.html +1 -0
  17. package/apps/zimoli/main.js +1 -1
  18. package/apps/zimoli/nearby/main.js +1 -1
  19. package/apps/zimoli/yuanfen/main.js +1 -1
  20. package/coms/basic/crypt.js +1 -1
  21. package/coms/basic/loader.js +1 -1
  22. package/coms/basic/refilm_decode.js +13 -2
  23. package/coms/basic/valid.js +10 -0
  24. package/coms/compile/common.js +451 -0
  25. package/coms/compile/scanner2.js +8 -405
  26. package/coms/crypt/encode62.js +23 -33
  27. package/coms/crypt/encode62_test.js +2 -1
  28. package/coms/frame/left.html +11 -6
  29. package/coms/frame/left.js +6 -3
  30. package/coms/frame/left.less +38 -36
  31. package/coms/frame/main.js +1 -1
  32. package/coms/frame/route.js +52 -4
  33. package/coms/frame/top.less +12 -13
  34. package/coms/kugou/buildList.js +1 -0
  35. package/coms/kugou/player.js +3 -0
  36. package/coms/layer/glance.less +4 -2
  37. package/coms/zimoli/alert.js +8 -4
  38. package/coms/zimoli/avatar.js +0 -1
  39. package/coms/zimoli/checker.html +1 -1
  40. package/coms/zimoli/checker.less +8 -13
  41. package/coms/zimoli/cross.js +1 -1
  42. package/coms/zimoli/css.js +1 -0
  43. package/coms/zimoli/data.js +8 -3
  44. package/coms/zimoli/encode62.js +13 -0
  45. package/coms/zimoli/field.html +2 -0
  46. package/coms/zimoli/field.js +41 -17
  47. package/coms/zimoli/field.less +19 -0
  48. package/coms/zimoli/form.js +8 -0
  49. package/coms/zimoli/menu.js +11 -1
  50. package/coms/zimoli/menu.less +1 -1
  51. package/coms/zimoli/menuItem.js +4 -1
  52. package/coms/zimoli/model.js +1 -0
  53. package/coms/zimoli/radio.html +1 -3
  54. package/coms/zimoli/radio.less +10 -22
  55. package/coms/zimoli/render.js +34 -63
  56. package/coms/zimoli/renderDefaults.js +1 -0
  57. package/coms/zimoli/submit.js +41 -0
  58. package/coms/zimoli/view.js +0 -5
  59. package/coms/zimoli/view.less +17 -11
  60. package/coms/zimoli/zimoli.js +11 -9
  61. package/data/mime.json +3 -0
  62. package/package.json +1 -1
  63. package/public/efront.js +1 -1
  64. package/coms/zimoli/beian.html +0 -1
  65. package/coms/zimoli/beian.js +0 -5
  66. package/coms/zimoli/beian.less +0 -13
@@ -1,6 +1,6 @@
1
1
  var createNamelist = require("./namelist");
2
2
 
3
- const [
3
+ const {
4
4
  /*-1 */COMMENT,
5
5
  /* 0 */SPACE,
6
6
  /* 1 */STRAP,
@@ -12,104 +12,12 @@ const [
12
12
  /* 7 */SCOPED,
13
13
  /* 8 */LABEL,
14
14
  /* 9 */PROPERTY,
15
- ] = new Array(20).fill(0).map((_, a) => a - 1);
15
+ number_reg,
16
+ skipAssignment,
17
+ createScoped,
18
+ } = require("./common");
16
19
 
17
- var saveTo = function (used, k, o) {
18
- if (!(used[k] instanceof Array)) used[k] = [];
19
- used[k].push(o);
20
- };
21
20
 
22
- var mergeTo = function (used, used0) {
23
- for (var k in used0) {
24
- var v = used0[k];
25
- for (var s of v) saveTo(used, k, s);
26
- }
27
- };
28
- var skipAssignment = function (o) {
29
- var needpunc = false;
30
- var o0 = o;
31
- loop: while (o) switch (o.type) {
32
- case STAMP:
33
- switch (o.text) {
34
- case ",":
35
- case ";":
36
- break loop;
37
- case "++":
38
- case "--":
39
- o = o.next;
40
- break;
41
- case "!":
42
- case "~":
43
- case "+":
44
- case "-":
45
- o = o.next;
46
- needpunc = false;
47
- break;
48
- default:
49
- if (/^[!~\+\-]+$/.test(o.text)) {
50
- needpunc = false;
51
- o = o.next;
52
- break;
53
- }
54
- if (!needpunc) break loop;
55
- needpunc = false;
56
- o = o.next;
57
- }
58
- break;
59
- case SCOPED:
60
- if (needpunc && o.entry === "{") break loop;
61
- o = o.next;
62
- needpunc = true;
63
- break;
64
- case EXPRESS:
65
- if (/^\.|\.$/.test(o.text)) {
66
- o = o.next;
67
- break;
68
- }
69
- else if (/^\[/.test(o.text)) {
70
- needpunc = true;
71
- o = o.next;
72
- break;
73
- }
74
- case VALUE:
75
- case QUOTED:
76
- if (needpunc) break loop;
77
- needpunc = true;
78
- o = o.next;
79
- break;
80
- case STRAP:
81
- if (needpunc) {
82
- if (!/^(in|instanceof)$/.test(o.text)) break loop;
83
- o = o.next;
84
- needpunc = false;
85
- }
86
- else if (o.text === "class") {
87
- o = o.next;
88
- while (o && !o.isClass) o = o.next;
89
- while (o && o.isClass) o = o.next;
90
- needpunc = true;
91
- break;
92
- }
93
- else if (o.text === "function") {
94
- o = o.next;
95
- if (o && o.type === EXPRESS) o = o.next;
96
- if (o) o = o.next;
97
- if (o) o = o.next;
98
- needpunc = true;
99
- break;
100
- }
101
- else {
102
- o = o.next;
103
- needpunc = false;
104
- }
105
- break;
106
- default:
107
- console.log(o);
108
- throw new Error('代码结构异常!');
109
- o = o.next;
110
- }
111
- return o;
112
- };
113
21
 
114
22
  var needBreak = function (prev, next) {
115
23
  if (!prev || !next) return;
@@ -139,78 +47,6 @@ var needBreak = function (prev, next) {
139
47
  }
140
48
  };
141
49
 
142
- var getDeclared = function (o, kind) {
143
- var declared = Object.create(null), used = Object.create(null); var skiped = [];
144
- loop: while (o) {
145
- while (o && o.type === STAMP && o.text === ',') o = o.next;
146
- if (!o) break;
147
- if (o.isprop) {
148
- skiped.push(o);
149
- if (o.next && o.next.type === STAMP && o.next.text === ":") {
150
- o = o.next;
151
- o = o.next;
152
- }
153
- }
154
- switch (o.type) {
155
- case PROPERTY:
156
- if (o.next && o.next.type === STAMP && o.next.text === ":") {
157
- o = o.next.next;
158
- continue;
159
- }
160
- case STRAP:
161
- case VALUE:
162
- case EXPRESS:
163
- var n = o.text.replace(/^\.\.\.|\.\.\.$/g, '');
164
- declared[n] = true;
165
- o.kind = kind;
166
- saveTo(used, n, o);
167
- o = o.next;
168
- break;
169
- case SCOPED:
170
- var [d, u, _, s] = getDeclared(o.first, kind);
171
- while (s.length) skiped.push.apply(skiped, s.splice(0, 1024));
172
- mergeTo(used, u);
173
- Object.assign(declared, d);
174
- o = o.next;
175
- break;
176
-
177
- default:
178
- console.log(o);
179
- throw new Error("代码结构异常");
180
- }
181
- if (!o) break;
182
- switch (o.type) {
183
- case STRAP:
184
- if (/^(in|of)$/.test(o.text)) {
185
- o = o.next;
186
- var o0 = skipAssignment(o);
187
- do {
188
- skiped.push(o);
189
- o = o.next;
190
- } while (o !== o0);
191
- o = o0;
192
- break;
193
- }
194
- break loop;
195
- case STAMP:
196
- if (o.text === "=") {
197
- o = o.next;
198
- var o0 = skipAssignment(o);
199
- do {
200
- skiped.push(o);
201
- o = o.next;
202
- } while (o !== o0);
203
- o = o0;
204
- break;
205
- }
206
- break;
207
- }
208
- if (!o) break;
209
- if (o.type !== STAMP) break;
210
- if (o.text !== ',') break;
211
- }
212
- return [declared, used, o, skiped];
213
- }
214
50
 
215
51
  var compress = function (scoped, maped) {
216
52
  var { lets, vars, used } = scoped;
@@ -316,7 +152,7 @@ var detour = function (o, ie) {
316
152
  class Program extends Array {
317
153
  COMMENT = COMMENT
318
154
  SPACE = SPACE
319
- STAMP = STRAP
155
+ STRAP = STRAP
320
156
  STAMP = STAMP
321
157
  VALUE = VALUE
322
158
  QUOTED = QUOTED
@@ -443,240 +279,7 @@ class Program extends Array {
443
279
  }
444
280
  get scoped() {
445
281
  if (this._scoped) return this._scoped;
446
- var used = Object.create(null); var vars = Object.create(null), lets = vars;
447
- var scoped = this._scoped = [];
448
- var run = function (o, id) {
449
- loop: while (o) {
450
- var isCatch = false;
451
- var isFunction = false;
452
- var isScope = false;
453
- var isArrow = false;
454
- switch (o.type) {
455
- case QUOTED:
456
- if (o.length) {
457
- run(o.first);
458
- }
459
- break;
460
- case STAMP:
461
- break;
462
- case PROPERTY:
463
- if (o.next) {
464
- if (o.next.type !== STAMP || o.next.text !== ",") break;
465
- }
466
- case VALUE:
467
- if (program.number_reg.test(o.text)) break;
468
- case EXPRESS:
469
- if (o.prev && o.prev.type === EXPRESS) {
470
- if (/\.$/.test(o.prev.text)) break;
471
- }
472
- var u = o.text.replace(/^([^\.\[]*)[\s\S]*$/, '$1');
473
- if (!u) break;
474
- if (o.next && o.next.type === STAMP && o.next.text === "=>") {
475
- isScope = true;
476
- isArrow = true;
477
- }
478
- else {
479
- saveTo(used, u, o);
480
- }
481
- break;
482
- case LABEL:
483
- var name = o.text;
484
- name = name.slice(0, name.length - 1);
485
- vars[name] = true;
486
- o.kind = "label";
487
- saveTo(used, name, o);
488
- break;
489
-
490
- case STRAP:
491
- var s = o.text;
492
- switch (s) {
493
- case "var":
494
- case "import":
495
- var m = vars;
496
- case "let":
497
- case "const":
498
- m = m || lets;
499
- var [declared, used0, o0, skiped] = getDeclared(o.next, s);
500
- while (skiped.length) {
501
- var o1 = run(skiped[0], 0);
502
- let sindex = skiped.indexOf(o1);
503
- if (sindex < 0) break;
504
- skiped.splice(0, sindex + 1);
505
- }
506
- o = o0;
507
- mergeTo(used, used0);
508
- Object.assign(m, declared);
509
- continue loop;
510
- case "function":
511
- isFunction = true;
512
- case "catch":
513
- isCatch = true;
514
- case "class":
515
- if (!o.isExpress) {
516
- o = o.next;
517
-
518
- if (o.type === EXPRESS) {
519
- vars[o.text] = true;
520
- o.kind = isFunction ? 'function' : 'class';
521
- saveTo(used, o.text, o);
522
-
523
- o = o.next;
524
- }
525
- }
526
- isScope = true;
527
- break;
528
-
529
- }
530
- break;
531
- case SCOPED:
532
- if (o.entry === "(") {
533
- if (o.next && o.next.type === STAMP && o.next.text === "=>"
534
- || o.prev && (o.prev.type === PROPERTY || o.prev.isprop)) {
535
- isArrow = true;
536
- isScope = true;
537
- }
538
- else {
539
- run(o.first);
540
- }
541
- }
542
- else if (o.entry === "{") {
543
- isScope = true;
544
- }
545
- else {
546
- run(o.first);
547
- }
548
- break;
549
- }
550
- if (isScope) {
551
- var _used = used;
552
- var _lets = lets;
553
- var _vars = vars;
554
- var _scoped = scoped;
555
- used = Object.create(null);
556
- lets = Object.create(null);
557
- vars = Object.create(null);
558
- scoped = [];
559
- var isExpress = o.isExpress;
560
-
561
- if (isFunction || isArrow) {
562
- scoped.used = used;
563
- scoped.vars = vars;
564
- lets = vars;
565
- if (isFunction) vars.this = true, vars.arguments = true;
566
- isFunction = true;
567
- } else {
568
- vars = _vars;
569
- scoped.lets = lets;
570
- scoped.used = used;
571
- }
572
- if (isArrow);
573
- else if (o.isExpress && o.type !== SCOPED) {
574
- o = o.next;
575
- if (o.type === EXPRESS) {
576
- vars[o.text] = true;
577
- o.kind = isFunction ? 'function' : 'class';
578
- saveTo(used, o.text, o);
579
- o = o.next;
580
- }
581
- }
582
- if (!isFunction) while (o.type !== SCOPED) {
583
- // if (o.next && o.next.type === STAMP && o.next.text === "=>") break;
584
- o = run(o, 0);
585
- o = o.next;
586
- if (!o) break loop;
587
- }
588
-
589
- if (o.entry === "(") {
590
- o.isExpress = isExpress;
591
- if (isFunction || isCatch) {
592
- var [declared, used0, o0, skiped] = getDeclared(o.first, 'argument');
593
- mergeTo(used, used0);
594
- while (skiped.length) {
595
- var o1 = run(skiped[0], 0);
596
- var sindex = skiped.indexOf(o1);
597
- if (sindex < 0) break;
598
- skiped.splice(0, sindex + 1);
599
- }
600
- Object.assign(isCatch ? lets : vars, declared);
601
- }
602
- else {
603
- run(o.first);
604
- }
605
- o = o.next;
606
- if (!o) break;
607
- if (o.type === STAMP && o.text === "=>") o = o.next;
608
- }
609
- else if (isArrow) {
610
- vars[o.text] = true;
611
- o.kind = 'argument';
612
- saveTo(used, o.text, o);
613
- o = o.next.next;
614
- }
615
- if (!o) break;
616
- if (o.type === SCOPED && o.entry === "{") {
617
- o.isExpress = isExpress;
618
- run(o.first);
619
- }
620
- else {
621
- do {
622
- if (o.type === STAMP && o.text === ";") break;
623
- o = run(o, 0);
624
- var next = o.next;
625
- if (!next) break;
626
- var e = o;
627
- if (o.type === STAMP && /^(\+\+|\-\-)$/.test(o.text) || ~[VALUE, QUOTED, SCOPED].indexOf(o.type) || EXPRESS === o.type && !/\.$/.test(o.text)) {
628
- if (~[VALUE, QUOTED, PROPERTY, LABEL].indexOf(next.type)) break;
629
- if (EXPRESS === next.type && !/^\./.test(next.text)) break;
630
- if (next.type === SCOPED && next.entry === "{") break;
631
- }
632
- o = next;
633
- } while (o);
634
- }
635
- var map = isFunction ? vars : lets;
636
- var keepscope = false;
637
- for (var k in map) {
638
- keepscope = true;
639
- break;
640
- }
641
- if (keepscope) {
642
- for (var k in used) {
643
- if (!(k in map)) {
644
- for (var u of used[k]) {
645
- saveTo(_used, k, u);
646
- }
647
- }
648
- }
649
- _scoped.push(scoped);
650
- }
651
- else {
652
- mergeTo(_used, used);
653
- if (scoped.length) _scoped.push(scoped);
654
- }
655
- if (vars.this) {
656
- delete vars.this;
657
- delete vars.arguments;
658
- }
659
- used = _used;
660
- lets = _lets;
661
- vars = _vars;
662
- scoped = _scoped;
663
- }
664
- if (id >= 0) break;
665
- if (o) o = o.next;
666
- }
667
- return o;
668
- };
669
- run(this.first);
670
- scoped.used = used;
671
- scoped.vars = vars;
672
- var envs = Object.create(null);
673
- for (var u in used) {
674
- if (!(u in vars)) {
675
- if (!/^(true|false|null|this|arguments)$/.test(u)) envs[u] = true;
676
- }
677
- }
678
- scoped.envs = envs;
679
- return this._scoped;
282
+ return this._scoped = createScoped(this);
680
283
  }
681
284
  getUndecleared() {
682
285
  return this.envs;
@@ -717,7 +320,7 @@ class Javascript {
717
320
  ]
718
321
  stamps = "/=+;|:?<>-!~@#%^&*,".split("")
719
322
  value_reg = /^(false|true|null|Infinity|NaN|undefined|arguments|this|eval)$/
720
- number_reg = /^[\+\-]?(0x[0-9a-f]+|0b\d+|0o\d+|(\d*\.\d+|\d+\.?)(e[\+\-]?\d+|[mn])?)$/i;
323
+ number_reg = number_reg;
721
324
  transive = /^(new|var|let|const|yield|void|in|of|typeof|delete|case|return|await|export|default|instanceof|throw|extends|import|from)$/
722
325
  straps = `if,in,do,as,of
723
326
  var,for,new,try,let,get,set
@@ -7,7 +7,7 @@ src.split("").forEach((s, i) => map[s] = i);
7
7
  function encode62(string) {
8
8
  string = String(string)
9
9
  string = string.length + string + "2017-08-19";
10
- var buff = Buffer.from(src);
10
+ var buff = src.split('');
11
11
  for (var cx = 0, dx = buff.length + src.length, sl = string.length, cl = buff.length; cx < dx; cx++) {
12
12
  var s1 = string.charCodeAt(cx % sl) % cl;
13
13
  var s2 = cx % cl;
@@ -15,7 +15,7 @@ function encode62(string) {
15
15
  buff[s1] = buff[s2];
16
16
  buff[s2] = btemp;
17
17
  }
18
- return buff.toString();
18
+ return buff.join('');
19
19
  };
20
20
 
21
21
 
@@ -35,9 +35,23 @@ Object.assign(encode62, {
35
35
  },
36
36
  timeencode(string) {
37
37
  var { time_delta } = this;
38
- var time_stamp = +new Date();
38
+ var time_free = time_delta / 6 | 0;
39
+ var time_stamp = +new Date() - time_free;
39
40
  var time_rest = time_stamp % time_delta;
40
- return this.encode62(string, time_stamp.toString(36)) + time_rest.toString(36).padStart(time_delta.toString(36).length, '0');
41
+ var time_rest_str = time_rest.toString(36);
42
+ var time_delta_str = time_delta.toString(36);
43
+ return this.encode62(string, time_stamp.toString(36)) + repeat("0", time_delta_str.length - time_rest_str.length) + time_rest_str;
44
+ },
45
+ timeupdate(string) {
46
+ var { time_delta } = this;
47
+ var time_rest = string.slice(string.length - time_delta.toString(36).length, string.length);
48
+ var time_start = parseInt((new Date() - parseInt(time_rest, 36)) / time_delta) * time_delta;
49
+ var time_stamp = time_start + parseInt(time_rest, 36);
50
+ if (time_stamp + (time_delta >> 1) > +new Date()) {
51
+ return string;
52
+ } else {
53
+ return this.timeencode(this.timedecode(string));
54
+ }
41
55
  },
42
56
  encode62(data, sign) {
43
57
  if (!sign) return data;
@@ -53,15 +67,6 @@ Object.assign(encode62, {
53
67
  });
54
68
  return result;
55
69
  },
56
- encode(data, sign) {
57
- if (!sign) return data;
58
- var result = Buffer.from(data);
59
- sign = Buffer.from(sign);
60
- for (var cx = 0, dx = data.length; cx < dx; cx++) {
61
- result[cx] = result[cx] ^ sign[cx % sign.length];
62
- }
63
- return result;
64
- },
65
70
  decode(data, sign) {
66
71
  if (!sign) return data;
67
72
  var result = Buffer.from(data);
@@ -75,7 +80,7 @@ Object.assign(encode62, {
75
80
  return encode62(string);
76
81
  },
77
82
  genb() {
78
- return encode62(Date.now() + "" + Math.random());
83
+ return encode62(Date.now() * Math.random() + "" + Math.random().toString(36) + Math.random().toString(36).toUpperCase());
79
84
  },
80
85
  huan(x, y) {
81
86
  return x.split("").map(s => y[map[s]]).join("");
@@ -90,24 +95,9 @@ Object.assign(encode62, {
90
95
  y.split("").forEach((a, j) => y_map[a] = j);
91
96
  return z.split("").map(c => src[y_map[c]]).join("");
92
97
  },
93
- ab2c(a, b) {
94
- return this.huan(a, b);
95
- },
96
- ba2d(a, b) {
97
- return this.huan(b, a);
98
- },
99
- ca2b(c, a) {
100
- return this.yuan(c, a);
101
- },
102
- cb2a(c, b) {
103
- return this.suan(c, b);
104
- },
105
- da2b(d, a) {
106
- return this.suan(d, a);
107
- },
108
- db2a(d, b) {
109
- return this.yuan(d, b);
110
- }
111
98
  });
112
-
99
+ encode62.ab2c = encode62.ba2d = encode62.huan;
100
+ encode62.db2a = encode62.ca2b = encode62.yuan;
101
+ encode62.da2b = encode62.cb2a = encode62.suan;
102
+ encode62.encode = encode62.decode;
113
103
  encode62.decode62 = encode62.encode62;
@@ -32,7 +32,8 @@ describe("encode62_test", function () {
32
32
  c = encode62.ab2c(a, b);
33
33
  });
34
34
  it("ba2d", function () {
35
- d = encode62.ba2d(a, b);
35
+ // 注意,参数顺序已变更
36
+ d = encode62.ba2d(b, a);
36
37
  });
37
38
  it("ca2b", function () {
38
39
  expect(encode62.ca2b(c, a)).to.be.eq(b);
@@ -1,8 +1,13 @@
1
- <div class="navbar-header">
2
- <span class="fa fa-area-chart"></span>
3
- GRINCH
4
- <span class="dashboard_text">efront.cc</span>
1
+ <div ng-if="!user.isLogin" class="navbar-header">
2
+ <!-- <avatar></avatar> -->
3
+ <a @click="popup('#/user/login')" class="dashboard_text">请登录</a>
4
+ </div>
5
+ <div -else class="navbar-header">
6
+ <span class="dashboard_text" @click="go('/user/profile')">
7
+ <avatar ng-src="user.avatar" size=30></avatar>
8
+ <span ng-bind="user.name"></span>
9
+ <span ng-bind="user.roles"></span>
10
+ </span>
5
11
  </div>
6
12
  <ylist mode=inline ng-src="menu in menus" class="sidebar-menu" ng-active="menus.open(event.value)">
7
- </ylist>
8
- <btn class="setting" ng-click="go('/user/setting')"><i class="fa fa-gear"></i>设置</btn>
13
+ </ylist>
@@ -1,12 +1,15 @@
1
- var page = div();
1
+ var page = document.createElement("都说我负天下人_可你们天下人_又何曾善待过我");
2
2
  page.innerHTML = left;
3
- var route = frame$route;
3
+ if (!user.avatar) user.avatar = "user/avatar.png";
4
+ frame$route.fetch('menu.yml')
4
5
  render(page, {
5
6
  ylist: menu,
6
7
  btn: button,
7
8
  go,
8
9
  user,
9
- menus: route,
10
+ avatar,
11
+ popup,
12
+ menus: frame$route,
10
13
  });
11
14
  function main() {
12
15
  return page;