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
@@ -0,0 +1,451 @@
1
+ const [
2
+ /*-1 */COMMENT,
3
+ /* 0 */SPACE,
4
+ /* 1 */STRAP,
5
+ /* 2 */STAMP,
6
+ /* 3 */VALUE,
7
+ /* 4 */QUOTED,
8
+ /* 5 */PIECE,
9
+ /* 6 */EXPRESS,
10
+ /* 7 */SCOPED,
11
+ /* 8 */LABEL,
12
+ /* 9 */PROPERTY,
13
+ ] = new Array(20).fill(0).map((_, a) => a - 1);
14
+ var number_reg = /^[\+\-]?(0x[0-9a-f]+|0b\d+|0o\d+|(\d*\.\d+|\d+\.?)(e[\+\-]?\d+|[mn])?)$/i;
15
+ var skipAssignment = function (o) {
16
+ var needpunc = false;
17
+ var o0 = o;
18
+ var qcount = 0;
19
+ loop: while (o) switch (o.type) {
20
+ case STAMP:
21
+ switch (o.text) {
22
+ case ",":
23
+ case ";":
24
+ break loop;
25
+ case "++":
26
+ case "--":
27
+ o = o.next;
28
+ break;
29
+ case "!":
30
+ case "~":
31
+ case "+":
32
+ case "-":
33
+ o = o.next;
34
+ needpunc = false;
35
+ break;
36
+ case "?":
37
+ qcount++;
38
+ needpunc = false;
39
+ o = o.next;
40
+ break;
41
+ case ":":
42
+ qcount--;
43
+ if (qcount < 0) break loop;
44
+ needpunc = false;
45
+ o = o.next;
46
+ break;
47
+ default:
48
+ if (/^[!~\+\-]+$/.test(o.text)) {
49
+ needpunc = false;
50
+ o = o.next;
51
+ break;
52
+ }
53
+ if (!needpunc) break loop;
54
+ needpunc = false;
55
+ o = o.next;
56
+ }
57
+ break;
58
+ case SCOPED:
59
+ if (needpunc && o.entry === "{") break loop;
60
+ o = o.next;
61
+ needpunc = true;
62
+ break;
63
+ case EXPRESS:
64
+ if (/^\.|\.$/.test(o.text)) {
65
+ o = o.next;
66
+ break;
67
+ }
68
+ else if (/^\[/.test(o.text)) {
69
+ needpunc = true;
70
+ o = o.next;
71
+ break;
72
+ }
73
+ case VALUE:
74
+ case QUOTED:
75
+ if (needpunc) break loop;
76
+ needpunc = true;
77
+ o = o.next;
78
+ break;
79
+ case STRAP:
80
+ if (needpunc) {
81
+ if (!/^(in|instanceof)$/.test(o.text)) break loop;
82
+ o = o.next;
83
+ needpunc = false;
84
+ }
85
+ else if (o.text === "class") {
86
+ o = o.next;
87
+ while (o && !o.isClass) o = o.next;
88
+ while (o && o.isClass) o = o.next;
89
+ needpunc = true;
90
+ break;
91
+ }
92
+ else if (o.text === "function") {
93
+ o = o.next;
94
+ if (o && o.type === EXPRESS) o = o.next;
95
+ if (o) o = o.next;
96
+ if (o) o = o.next;
97
+ needpunc = true;
98
+ break;
99
+ }
100
+ else {
101
+ o = o.next;
102
+ needpunc = false;
103
+ }
104
+ break;
105
+ default:
106
+ console.log(o);
107
+ throw new Error('代码结构异常!');
108
+ o = o.next;
109
+ }
110
+ return o;
111
+ };
112
+ var createScoped = function (parsed) {
113
+ var used = Object.create(null); var vars = Object.create(null), lets = vars;
114
+ var scoped = [];
115
+ var run = function (o, id) {
116
+ loop: while (o) {
117
+ var isCatch = false;
118
+ var isFunction = false;
119
+ var isScope = false;
120
+ var isArrow = false;
121
+ switch (o.type) {
122
+ case QUOTED:
123
+ if (o.length) {
124
+ run(o.first);
125
+ }
126
+ break;
127
+ case STAMP:
128
+ break;
129
+ case PROPERTY:
130
+ if (o.next) {
131
+ if (o.next.type !== STAMP || o.next.text !== ",") break;
132
+ }
133
+ case VALUE:
134
+ if (number_reg.test(o.text)) break;
135
+ case EXPRESS:
136
+ if (o.prev && o.prev.type === EXPRESS) {
137
+ if (/\.$/.test(o.prev.text)) break;
138
+ }
139
+ var u = o.text.replace(/^([^\.\[]*)[\s\S]*$/, '$1');
140
+ if (!u) break;
141
+ if (o.next && o.next.type === STAMP && o.next.text === "=>") {
142
+ isScope = true;
143
+ isArrow = true;
144
+ }
145
+ else {
146
+ saveTo(used, u, o);
147
+ }
148
+ break;
149
+ case LABEL:
150
+ var name = o.text;
151
+ name = name.slice(0, name.length - 1);
152
+ vars[name] = true;
153
+ o.kind = "label";
154
+ saveTo(used, name, o);
155
+ break;
156
+
157
+ case STRAP:
158
+ var s = o.text;
159
+ switch (s) {
160
+ case "var":
161
+ case "import":
162
+ var m = vars;
163
+ case "let":
164
+ case "const":
165
+ m = m || lets;
166
+ var [declared, used0, o0, skiped] = getDeclared(o.next, s);
167
+ while (skiped.length) {
168
+ var o1 = run(skiped[0], 0);
169
+ let sindex = skiped.indexOf(o1);
170
+ if (sindex < 0) break;
171
+ skiped.splice(0, sindex + 1);
172
+ }
173
+ o = o0;
174
+ mergeTo(used, used0);
175
+ Object.assign(m, declared);
176
+ continue loop;
177
+ case "function":
178
+ isFunction = true;
179
+ case "catch":
180
+ isCatch = true;
181
+ case "class":
182
+ if (!o.isExpress) {
183
+ o = o.next;
184
+
185
+ if (o.type === EXPRESS) {
186
+ vars[o.text] = true;
187
+ o.kind = isFunction ? 'function' : 'class';
188
+ saveTo(used, o.text, o);
189
+
190
+ o = o.next;
191
+ }
192
+ }
193
+ isScope = true;
194
+ break;
195
+
196
+ }
197
+ break;
198
+ case SCOPED:
199
+ if (o.entry === "(") {
200
+ if (o.next && o.next.type === STAMP && o.next.text === "=>"
201
+ || o.prev && (o.prev.type === PROPERTY || o.prev.isprop)) {
202
+ isArrow = true;
203
+ isScope = true;
204
+ }
205
+ else {
206
+ run(o.first);
207
+ }
208
+ }
209
+ else if (o.entry === "{") {
210
+ isScope = true;
211
+ }
212
+ else {
213
+ run(o.first);
214
+ }
215
+ break;
216
+ }
217
+ if (isScope) {
218
+ var _used = used;
219
+ var _lets = lets;
220
+ var _vars = vars;
221
+ var _scoped = scoped;
222
+ used = Object.create(null);
223
+ lets = Object.create(null);
224
+ vars = Object.create(null);
225
+ scoped = [];
226
+ var isExpress = o.isExpress;
227
+
228
+ if (isFunction || isArrow) {
229
+ scoped.used = used;
230
+ scoped.vars = vars;
231
+ lets = vars;
232
+ if (isFunction) vars.this = true, vars.arguments = true;
233
+ isFunction = true;
234
+ } else {
235
+ vars = _vars;
236
+ scoped.lets = lets;
237
+ scoped.used = used;
238
+ }
239
+ if (isArrow);
240
+ else if (o.isExpress && o.type !== SCOPED) {
241
+ o = o.next;
242
+ if (o.type === EXPRESS) {
243
+ vars[o.text] = true;
244
+ o.kind = isFunction ? 'function' : 'class';
245
+ saveTo(used, o.text, o);
246
+ o = o.next;
247
+ }
248
+ }
249
+ if (!isFunction) while (o.type !== SCOPED) {
250
+ // if (o.next && o.next.type === STAMP && o.next.text === "=>") break;
251
+ o = run(o, 0);
252
+ o = o.next;
253
+ if (!o) break loop;
254
+ }
255
+
256
+ if (o.entry === "(") {
257
+ o.isExpress = isExpress;
258
+ if (isFunction || isCatch) {
259
+ var [declared, used0, o0, skiped] = getDeclared(o.first, 'argument');
260
+ mergeTo(used, used0);
261
+ while (skiped.length) {
262
+ var o1 = run(skiped[0], 0);
263
+ var sindex = skiped.indexOf(o1);
264
+ if (sindex < 0) break;
265
+ skiped.splice(0, sindex + 1);
266
+ }
267
+ Object.assign(isCatch ? lets : vars, declared);
268
+ }
269
+ else {
270
+ run(o.first);
271
+ }
272
+ o = o.next;
273
+ if (!o) break;
274
+ if (o.type === STAMP && o.text === "=>") o = o.next;
275
+ }
276
+ else if (isArrow) {
277
+ vars[o.text] = true;
278
+ o.kind = 'argument';
279
+ saveTo(used, o.text, o);
280
+ o = o.next.next;
281
+ }
282
+ if (!o) break;
283
+ if (o.type === SCOPED && o.entry === "{") {
284
+ o.isExpress = isExpress;
285
+ run(o.first);
286
+ }
287
+ else {
288
+ do {
289
+ if (o.type === STAMP && o.text === ";") break;
290
+ o = run(o, 0);
291
+ var next = o.next;
292
+ if (!next) break;
293
+ var e = o;
294
+ if (o.type === STAMP && /^(\+\+|\-\-)$/.test(o.text) || ~[VALUE, QUOTED, SCOPED].indexOf(o.type) || EXPRESS === o.type && !/\.$/.test(o.text)) {
295
+ if (~[VALUE, QUOTED, PROPERTY, LABEL].indexOf(next.type)) break;
296
+ if (EXPRESS === next.type && !/^\./.test(next.text)) break;
297
+ if (next.type === SCOPED && next.entry === "{") break;
298
+ }
299
+ o = next;
300
+ } while (o);
301
+ }
302
+ var map = isFunction ? vars : lets;
303
+ var keepscope = false;
304
+ for (var k in map) {
305
+ keepscope = true;
306
+ break;
307
+ }
308
+ if (keepscope) {
309
+ for (var k in used) {
310
+ if (!(k in map)) {
311
+ for (var u of used[k]) {
312
+ saveTo(_used, k, u);
313
+ }
314
+ }
315
+ }
316
+ _scoped.push(scoped);
317
+ }
318
+ else {
319
+ mergeTo(_used, used);
320
+ if (scoped.length) _scoped.push(scoped);
321
+ }
322
+ if (vars.this) {
323
+ delete vars.this;
324
+ delete vars.arguments;
325
+ }
326
+ used = _used;
327
+ lets = _lets;
328
+ vars = _vars;
329
+ scoped = _scoped;
330
+ }
331
+ if (id >= 0) break;
332
+ if (o) o = o.next;
333
+ }
334
+ return o;
335
+ };
336
+ run(parsed.first);
337
+ scoped.used = used;
338
+ scoped.vars = vars;
339
+ var envs = Object.create(null);
340
+ for (var u in used) {
341
+ if (!(u in vars)) {
342
+ if (!/^(true|false|null|this|arguments)$/.test(u)) envs[u] = true;
343
+ }
344
+ }
345
+ scoped.envs = envs;
346
+ return scoped;
347
+ };
348
+ var getDeclared = function (o, kind) {
349
+ var declared = Object.create(null), used = Object.create(null); var skiped = [];
350
+ loop: while (o) {
351
+ while (o && o.type === STAMP && o.text === ',') o = o.next;
352
+ if (!o) break;
353
+ if (o.isprop) {
354
+ skiped.push(o);
355
+ if (o.next && o.next.type === STAMP && o.next.text === ":") {
356
+ o = o.next;
357
+ o = o.next;
358
+ }
359
+ }
360
+ switch (o.type) {
361
+ case PROPERTY:
362
+ if (o.next && o.next.type === STAMP && o.next.text === ":") {
363
+ o = o.next.next;
364
+ continue;
365
+ }
366
+ case STRAP:
367
+ case VALUE:
368
+ case EXPRESS:
369
+ var n = o.text.replace(/^\.\.\.|\.\.\.$/g, '');
370
+ declared[n] = true;
371
+ o.kind = kind;
372
+ saveTo(used, n, o);
373
+ o = o.next;
374
+ break;
375
+ case SCOPED:
376
+ var [d, u, _, s] = getDeclared(o.first, kind);
377
+ while (s.length) skiped.push.apply(skiped, s.splice(0, 1024));
378
+ mergeTo(used, u);
379
+ Object.assign(declared, d);
380
+ o = o.next;
381
+ break;
382
+
383
+ default:
384
+ console.log(o);
385
+ throw new Error("代码结构异常");
386
+ }
387
+ if (!o) break;
388
+ switch (o.type) {
389
+ case STRAP:
390
+ if (/^(in|of)$/.test(o.text)) {
391
+ o = o.next;
392
+ var o0 = skipAssignment(o);
393
+ do {
394
+ skiped.push(o);
395
+ o = o.next;
396
+ } while (o !== o0);
397
+ o = o0;
398
+ break;
399
+ }
400
+ break loop;
401
+ case STAMP:
402
+ if (o.text === "=") {
403
+ o = o.next;
404
+ var o0 = skipAssignment(o);
405
+ do {
406
+ skiped.push(o);
407
+ o = o.next;
408
+ } while (o !== o0);
409
+ o = o0;
410
+ break;
411
+ }
412
+ break;
413
+ }
414
+ if (!o) break;
415
+ if (o.type !== STAMP) break;
416
+ if (o.text !== ',') break;
417
+ }
418
+ return [declared, used, o, skiped];
419
+ };
420
+ var saveTo = function (used, k, o) {
421
+ if (!(used[k] instanceof Array)) used[k] = [];
422
+ used[k].push(o);
423
+ };
424
+
425
+ var mergeTo = function (used, used0) {
426
+ for (var k in used0) {
427
+ var v = used0[k];
428
+ for (var s of v) saveTo(used, k, s);
429
+ }
430
+ };
431
+
432
+
433
+ module.exports = {
434
+ /*-1 */COMMENT,
435
+ /* 0 */SPACE,
436
+ /* 1 */STRAP,
437
+ /* 2 */STAMP,
438
+ /* 3 */VALUE,
439
+ /* 4 */QUOTED,
440
+ /* 5 */PIECE,
441
+ /* 6 */EXPRESS,
442
+ /* 7 */SCOPED,
443
+ /* 8 */LABEL,
444
+ /* 9 */PROPERTY,
445
+ number_reg,
446
+ skipAssignment,
447
+ getDeclared,
448
+ createScoped,
449
+ saveTo,
450
+ mergeTo
451
+ };