postscribe 2.0.4 → 2.0.8
Sign up to get free protection for your applications and to get access to all the features.
- package/.npmignore +1 -0
- package/LICENSE +2 -1
- package/README.md +17 -4
- package/dist/postscribe.js +493 -470
- package/dist/postscribe.js.map +1 -0
- package/dist/postscribe.max.js +493 -470
- package/dist/postscribe.min.js +2 -2
- package/package.json +37 -40
- package/bower.json +0 -20
- package/dist/test-reports/coverage/PhantomJS 2.1.1 (Linux 0.0.0)/lcov-report/base.css +0 -212
- package/dist/test-reports/coverage/PhantomJS 2.1.1 (Linux 0.0.0)/lcov-report/index.html +0 -97
- package/dist/test-reports/coverage/PhantomJS 2.1.1 (Linux 0.0.0)/lcov-report/prettify.css +0 -1
- package/dist/test-reports/coverage/PhantomJS 2.1.1 (Linux 0.0.0)/lcov-report/prettify.js +0 -1
- package/dist/test-reports/coverage/PhantomJS 2.1.1 (Linux 0.0.0)/lcov-report/sort-arrow-sprite.png +0 -0
- package/dist/test-reports/coverage/PhantomJS 2.1.1 (Linux 0.0.0)/lcov-report/sorter.js +0 -158
- package/dist/test-reports/coverage/PhantomJS 2.1.1 (Linux 0.0.0)/lcov-report/src/index.html +0 -123
- package/dist/test-reports/coverage/PhantomJS 2.1.1 (Linux 0.0.0)/lcov-report/src/postscribe.js.html +0 -666
- package/dist/test-reports/coverage/PhantomJS 2.1.1 (Linux 0.0.0)/lcov-report/src/utils.js.html +0 -453
- package/dist/test-reports/coverage/PhantomJS 2.1.1 (Linux 0.0.0)/lcov-report/src/write-stream.js.html +0 -1896
- package/dist/test-reports/coverage/PhantomJS 2.1.1 (Linux 0.0.0)/lcov.info +0 -649
package/dist/postscribe.max.js
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
/**
|
2
2
|
* @file postscribe
|
3
3
|
* @description Asynchronously write javascript, even with document.write.
|
4
|
-
* @version v2.0.
|
4
|
+
* @version v2.0.8
|
5
5
|
* @see {@link https://krux.github.io/postscribe}
|
6
6
|
* @license MIT
|
7
7
|
* @author Derek Brans
|
@@ -20,41 +20,41 @@
|
|
20
20
|
return /******/ (function(modules) { // webpackBootstrap
|
21
21
|
/******/ // The module cache
|
22
22
|
/******/ var installedModules = {};
|
23
|
-
|
23
|
+
/******/
|
24
24
|
/******/ // The require function
|
25
25
|
/******/ function __webpack_require__(moduleId) {
|
26
|
-
|
26
|
+
/******/
|
27
27
|
/******/ // Check if module is in cache
|
28
28
|
/******/ if(installedModules[moduleId])
|
29
29
|
/******/ return installedModules[moduleId].exports;
|
30
|
-
|
30
|
+
/******/
|
31
31
|
/******/ // Create a new module (and put it into the cache)
|
32
32
|
/******/ var module = installedModules[moduleId] = {
|
33
33
|
/******/ exports: {},
|
34
34
|
/******/ id: moduleId,
|
35
35
|
/******/ loaded: false
|
36
36
|
/******/ };
|
37
|
-
|
37
|
+
/******/
|
38
38
|
/******/ // Execute the module function
|
39
39
|
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
|
40
|
-
|
40
|
+
/******/
|
41
41
|
/******/ // Flag the module as loaded
|
42
42
|
/******/ module.loaded = true;
|
43
|
-
|
43
|
+
/******/
|
44
44
|
/******/ // Return the exports of the module
|
45
45
|
/******/ return module.exports;
|
46
46
|
/******/ }
|
47
|
-
|
48
|
-
|
47
|
+
/******/
|
48
|
+
/******/
|
49
49
|
/******/ // expose the modules object (__webpack_modules__)
|
50
50
|
/******/ __webpack_require__.m = modules;
|
51
|
-
|
51
|
+
/******/
|
52
52
|
/******/ // expose the module cache
|
53
53
|
/******/ __webpack_require__.c = installedModules;
|
54
|
-
|
54
|
+
/******/
|
55
55
|
/******/ // __webpack_public_path__
|
56
56
|
/******/ __webpack_require__.p = "";
|
57
|
-
|
57
|
+
/******/
|
58
58
|
/******/ // Load entry module and return exports
|
59
59
|
/******/ return __webpack_require__(0);
|
60
60
|
/******/ })
|
@@ -64,13 +64,13 @@ return /******/ (function(modules) { // webpackBootstrap
|
|
64
64
|
/***/ function(module, exports, __webpack_require__) {
|
65
65
|
|
66
66
|
'use strict';
|
67
|
-
|
67
|
+
|
68
68
|
var _postscribe = __webpack_require__(1);
|
69
|
-
|
69
|
+
|
70
70
|
var _postscribe2 = _interopRequireDefault(_postscribe);
|
71
|
-
|
71
|
+
|
72
72
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
|
73
|
-
|
73
|
+
|
74
74
|
module.exports = _postscribe2['default'];
|
75
75
|
|
76
76
|
/***/ },
|
@@ -78,30 +78,30 @@ return /******/ (function(modules) { // webpackBootstrap
|
|
78
78
|
/***/ function(module, exports, __webpack_require__) {
|
79
79
|
|
80
80
|
'use strict';
|
81
|
-
|
81
|
+
|
82
82
|
exports.__esModule = true;
|
83
|
-
|
83
|
+
|
84
84
|
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
|
85
|
-
|
85
|
+
|
86
86
|
exports['default'] = postscribe;
|
87
|
-
|
87
|
+
|
88
88
|
var _writeStream = __webpack_require__(2);
|
89
|
-
|
89
|
+
|
90
90
|
var _writeStream2 = _interopRequireDefault(_writeStream);
|
91
|
-
|
91
|
+
|
92
92
|
var _utils = __webpack_require__(4);
|
93
|
-
|
93
|
+
|
94
94
|
var utils = _interopRequireWildcard(_utils);
|
95
|
-
|
95
|
+
|
96
96
|
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
|
97
|
-
|
97
|
+
|
98
98
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
|
99
|
-
|
99
|
+
|
100
100
|
/**
|
101
101
|
* A function that intentionally does nothing.
|
102
102
|
*/
|
103
103
|
function doNothing() {}
|
104
|
-
|
104
|
+
|
105
105
|
/**
|
106
106
|
* Available options and defaults.
|
107
107
|
*
|
@@ -112,32 +112,32 @@ return /******/ (function(modules) { // webpackBootstrap
|
|
112
112
|
* Called when an async script has loaded.
|
113
113
|
*/
|
114
114
|
afterAsync: doNothing,
|
115
|
-
|
115
|
+
|
116
116
|
/**
|
117
117
|
* Called immediately before removing from the write queue.
|
118
118
|
*/
|
119
119
|
afterDequeue: doNothing,
|
120
|
-
|
120
|
+
|
121
121
|
/**
|
122
122
|
* Called sync after a stream's first thread release.
|
123
123
|
*/
|
124
124
|
afterStreamStart: doNothing,
|
125
|
-
|
125
|
+
|
126
126
|
/**
|
127
127
|
* Called after writing buffered document.write calls.
|
128
128
|
*/
|
129
129
|
afterWrite: doNothing,
|
130
|
-
|
130
|
+
|
131
131
|
/**
|
132
132
|
* Allows disabling the autoFix feature of prescribe
|
133
133
|
*/
|
134
134
|
autoFix: true,
|
135
|
-
|
135
|
+
|
136
136
|
/**
|
137
137
|
* Called immediately before adding to the write queue.
|
138
138
|
*/
|
139
139
|
beforeEnqueue: doNothing,
|
140
|
-
|
140
|
+
|
141
141
|
/**
|
142
142
|
* Called before writing a token.
|
143
143
|
*
|
@@ -146,7 +146,7 @@ return /******/ (function(modules) { // webpackBootstrap
|
|
146
146
|
beforeWriteToken: function beforeWriteToken(tok) {
|
147
147
|
return tok;
|
148
148
|
},
|
149
|
-
|
149
|
+
|
150
150
|
/**
|
151
151
|
* Called before writing buffered document.write calls.
|
152
152
|
*
|
@@ -155,69 +155,67 @@ return /******/ (function(modules) { // webpackBootstrap
|
|
155
155
|
beforeWrite: function beforeWrite(str) {
|
156
156
|
return str;
|
157
157
|
},
|
158
|
-
|
158
|
+
|
159
159
|
/**
|
160
160
|
* Called when evaluation is finished.
|
161
161
|
*/
|
162
162
|
done: doNothing,
|
163
|
-
|
163
|
+
|
164
164
|
/**
|
165
165
|
* Called when a write results in an error.
|
166
166
|
*
|
167
167
|
* @param {Error} e The error
|
168
168
|
*/
|
169
169
|
error: function error(e) {
|
170
|
-
throw e;
|
170
|
+
throw new Error(e.msg);
|
171
171
|
},
|
172
|
-
|
173
|
-
|
172
|
+
|
173
|
+
|
174
174
|
/**
|
175
175
|
* Whether to let scripts w/ async attribute set fall out of the queue.
|
176
176
|
*/
|
177
177
|
releaseAsync: false
|
178
178
|
};
|
179
|
-
|
179
|
+
|
180
180
|
var nextId = 0;
|
181
181
|
var queue = [];
|
182
182
|
var active = null;
|
183
|
-
|
183
|
+
|
184
184
|
function nextStream() {
|
185
185
|
var args = queue.shift();
|
186
186
|
if (args) {
|
187
187
|
var options = utils.last(args);
|
188
|
-
|
188
|
+
|
189
189
|
options.afterDequeue();
|
190
190
|
args.stream = runStream.apply(undefined, args);
|
191
191
|
options.afterStreamStart();
|
192
192
|
}
|
193
193
|
}
|
194
|
-
|
194
|
+
|
195
195
|
function runStream(el, html, options) {
|
196
|
-
active = new
|
197
|
-
|
198
|
-
_writeStream2['default'](el, options);
|
199
|
-
|
196
|
+
active = new _writeStream2['default'](el, options);
|
197
|
+
|
200
198
|
// Identify this stream.
|
201
199
|
active.id = nextId++;
|
202
200
|
active.name = options.name || active.id;
|
203
201
|
postscribe.streams[active.name] = active;
|
204
|
-
|
202
|
+
|
205
203
|
// Override document.write.
|
206
204
|
var doc = el.ownerDocument;
|
207
|
-
|
205
|
+
|
208
206
|
var stash = {
|
209
207
|
close: doc.close,
|
210
208
|
open: doc.open,
|
211
209
|
write: doc.write,
|
212
210
|
writeln: doc.writeln
|
213
211
|
};
|
214
|
-
|
212
|
+
|
215
213
|
function _write(str) {
|
216
214
|
str = options.beforeWrite(str);
|
217
215
|
active.write(str);
|
218
216
|
options.afterWrite(str);
|
219
217
|
}
|
220
|
-
|
218
|
+
|
221
219
|
_extends(doc, {
|
222
220
|
close: doNothing,
|
223
221
|
open: doNothing,
|
@@ -225,44 +223,44 @@ return /******/ (function(modules) { // webpackBootstrap
|
|
225
223
|
for (var _len = arguments.length, str = Array(_len), _key = 0; _key < _len; _key++) {
|
226
224
|
str[_key] = arguments[_key];
|
227
225
|
}
|
228
|
-
|
226
|
+
|
229
227
|
return _write(str.join(''));
|
230
228
|
},
|
231
229
|
writeln: function writeln() {
|
232
230
|
for (var _len2 = arguments.length, str = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
|
233
231
|
str[_key2] = arguments[_key2];
|
234
232
|
}
|
235
|
-
|
233
|
+
|
236
234
|
return _write(str.join('') + '\n');
|
237
235
|
}
|
238
236
|
});
|
239
|
-
|
237
|
+
|
240
238
|
// Override window.onerror
|
241
239
|
var oldOnError = active.win.onerror || doNothing;
|
242
|
-
|
240
|
+
|
243
241
|
// This works together with the try/catch around WriteStream::insertScript
|
244
242
|
// In modern browsers, exceptions in tag scripts go directly to top level
|
245
243
|
active.win.onerror = function (msg, url, line) {
|
246
244
|
options.error({ msg: msg + ' - ' + url + ': ' + line });
|
247
245
|
oldOnError.apply(active.win, [msg, url, line]);
|
248
246
|
};
|
249
|
-
|
247
|
+
|
250
248
|
// Write to the stream
|
251
249
|
active.write(html, function () {
|
252
250
|
// restore document.write
|
253
251
|
_extends(doc, stash);
|
254
|
-
|
252
|
+
|
255
253
|
// restore window.onerror
|
256
254
|
active.win.onerror = oldOnError;
|
257
|
-
|
255
|
+
|
258
256
|
options.done();
|
259
257
|
active = null;
|
260
258
|
nextStream();
|
261
259
|
});
|
262
|
-
|
260
|
+
|
263
261
|
return active;
|
264
262
|
}
|
265
|
-
|
263
|
+
|
266
264
|
function postscribe(el, html, options) {
|
267
265
|
if (utils.isFunction(options)) {
|
268
266
|
options = { done: options };
|
@@ -272,18 +270,18 @@ return /******/ (function(modules) { // webpackBootstrap
|
|
272
270
|
nextId = 0;
|
273
271
|
return;
|
274
272
|
}
|
275
|
-
|
273
|
+
|
276
274
|
options = utils.defaults(options, OPTIONS);
|
277
|
-
|
275
|
+
|
278
276
|
// id selector
|
279
277
|
if (/^#/.test(el)) {
|
280
278
|
el = window.document.getElementById(el.substr(1));
|
281
279
|
} else {
|
282
280
|
el = el.jquery ? el[0] : el;
|
283
281
|
}
|
284
|
-
|
282
|
+
|
285
283
|
var args = [el, html, options];
|
286
|
-
|
284
|
+
|
287
285
|
el.postscribe = {
|
288
286
|
cancel: function cancel() {
|
289
287
|
if (args.stream) {
|
@@ -293,22 +291,24 @@ return /******/ (function(modules) { // webpackBootstrap
|
|
293
291
|
}
|
294
292
|
}
|
295
293
|
};
|
296
|
-
|
294
|
+
|
297
295
|
options.beforeEnqueue(args);
|
298
296
|
queue.push(args);
|
299
|
-
|
297
|
+
|
300
298
|
if (!active) {
|
301
299
|
nextStream();
|
302
300
|
}
|
303
|
-
|
301
|
+
|
304
302
|
return el.postscribe;
|
305
303
|
}
|
306
|
-
|
304
|
+
|
307
305
|
_extends(postscribe, {
|
308
306
|
// Streams by name.
|
309
307
|
streams: {},
|
310
308
|
// Queue of streams.
|
311
|
-
queue: queue,
|
309
|
+
queue: queue,
|
310
|
+
// Expose internal classes.
|
311
|
+
WriteStream: _writeStream2['default']
|
312
312
|
});
|
313
313
|
|
314
314
|
/***/ },
|
@@ -316,49 +316,49 @@ return /******/ (function(modules) { // webpackBootstrap
|
|
316
316
|
/***/ function(module, exports, __webpack_require__) {
|
317
317
|
|
318
318
|
'use strict';
|
319
|
-
|
319
|
+
|
320
320
|
exports.__esModule = true;
|
321
|
-
|
321
|
+
|
322
322
|
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
|
323
|
-
|
323
|
+
|
324
324
|
var _prescribe = __webpack_require__(3);
|
325
|
-
|
325
|
+
|
326
326
|
var _prescribe2 = _interopRequireDefault(_prescribe);
|
327
|
-
|
327
|
+
|
328
328
|
var _utils = __webpack_require__(4);
|
329
|
-
|
329
|
+
|
330
330
|
var utils = _interopRequireWildcard(_utils);
|
331
|
-
|
331
|
+
|
332
332
|
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
|
333
|
-
|
333
|
+
|
334
334
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
|
335
|
-
|
335
|
+
|
336
336
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
337
|
-
|
337
|
+
|
338
338
|
/**
|
339
339
|
* Turn on to debug how each chunk affected the DOM.
|
340
340
|
* @type {boolean}
|
341
341
|
*/
|
342
342
|
var DEBUG_CHUNK = false;
|
343
|
-
|
343
|
+
|
344
344
|
/**
|
345
345
|
* Prefix for data attributes on DOM elements.
|
346
346
|
* @type {string}
|
347
347
|
*/
|
348
348
|
var BASEATTR = 'data-ps-';
|
349
|
-
|
349
|
+
|
350
350
|
/**
|
351
351
|
* ID for the style proxy
|
352
352
|
* @type {string}
|
353
353
|
*/
|
354
354
|
var PROXY_STYLE = 'ps-style';
|
355
|
-
|
355
|
+
|
356
356
|
/**
|
357
357
|
* ID for the script proxy
|
358
358
|
* @type {string}
|
359
359
|
*/
|
360
360
|
var PROXY_SCRIPT = 'ps-script';
|
361
|
-
|
361
|
+
|
362
362
|
/**
|
363
363
|
* Get data attributes
|
364
364
|
*
|
@@ -368,13 +368,13 @@ return /******/ (function(modules) { // webpackBootstrap
|
|
368
368
|
*/
|
369
369
|
function getData(el, name) {
|
370
370
|
var attr = BASEATTR + name;
|
371
|
-
|
371
|
+
|
372
372
|
var val = el.getAttribute(attr);
|
373
|
-
|
373
|
+
|
374
374
|
// IE 8 returns a number if it's a number
|
375
375
|
return !utils.existy(val) ? val : String(val);
|
376
376
|
}
|
377
|
-
|
377
|
+
|
378
378
|
/**
|
379
379
|
* Set data attributes
|
380
380
|
*
|
@@ -383,17 +383,17 @@ return /******/ (function(modules) { // webpackBootstrap
|
|
383
383
|
* @param {null|*} value The attribute value.
|
384
384
|
*/
|
385
385
|
function setData(el, name) {
|
386
|
-
var value = arguments.length
|
387
|
-
|
386
|
+
var value = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
|
387
|
+
|
388
388
|
var attr = BASEATTR + name;
|
389
|
-
|
389
|
+
|
390
390
|
if (utils.existy(value) && value !== '') {
|
391
391
|
el.setAttribute(attr, value);
|
392
392
|
} else {
|
393
393
|
el.removeAttribute(attr);
|
394
394
|
}
|
395
395
|
}
|
396
|
-
|
396
|
+
|
397
397
|
/**
|
398
398
|
* Stream static html to an element, where "static html" denotes "html
|
399
399
|
* without scripts".
|
@@ -417,7 +417,7 @@ return /******/ (function(modules) { // webpackBootstrap
|
|
417
417
|
* `data-id` attribute into each start tag in `staticHtml`.
|
418
418
|
*
|
419
419
|
*/
|
420
|
-
|
420
|
+
|
421
421
|
var WriteStream = function () {
|
422
422
|
/**
|
423
423
|
* Constructor.
|
@@ -425,52 +425,51 @@ return /******/ (function(modules) { // webpackBootstrap
|
|
425
425
|
* @param {Object} root The root element
|
426
426
|
* @param {?Object} options The options
|
427
427
|
*/
|
428
|
-
|
429
428
|
function WriteStream(root) {
|
430
|
-
var options = arguments.length
|
431
|
-
|
429
|
+
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
430
|
+
|
432
431
|
_classCallCheck(this, WriteStream);
|
433
|
-
|
432
|
+
|
434
433
|
this.root = root;
|
435
434
|
this.options = options;
|
436
435
|
this.doc = root.ownerDocument;
|
437
436
|
this.win = this.doc.defaultView || this.doc.parentWindow;
|
438
437
|
this.parser = new _prescribe2['default']('', { autoFix: options.autoFix });
|
439
|
-
|
438
|
+
|
440
439
|
// Actual elements by id.
|
441
440
|
this.actuals = [root];
|
442
|
-
|
441
|
+
|
443
442
|
// Embodies the "structure" of what's been written so far,
|
444
443
|
// devoid of attributes.
|
445
444
|
this.proxyHistory = '';
|
446
|
-
|
445
|
+
|
447
446
|
// Create a proxy of the root element.
|
448
447
|
this.proxyRoot = this.doc.createElement(root.nodeName);
|
449
|
-
|
448
|
+
|
450
449
|
this.scriptStack = [];
|
451
450
|
this.writeQueue = [];
|
452
|
-
|
451
|
+
|
453
452
|
setData(this.proxyRoot, 'proxyof', 0);
|
454
453
|
}
|
455
|
-
|
454
|
+
|
456
455
|
/**
|
457
456
|
* Writes the given strings.
|
458
457
|
*
|
459
458
|
* @param {...String} str The strings to write
|
460
459
|
*/
|
461
|
-
|
462
|
-
|
460
|
+
|
461
|
+
|
463
462
|
WriteStream.prototype.write = function write() {
|
464
463
|
var _writeQueue;
|
465
|
-
|
464
|
+
|
466
465
|
(_writeQueue = this.writeQueue).push.apply(_writeQueue, arguments);
|
467
|
-
|
466
|
+
|
468
467
|
// Process writes
|
469
468
|
// When new script gets pushed or pending this will stop
|
470
469
|
// because new writeQueue gets pushed
|
471
470
|
while (!this.deferredRemote && this.writeQueue.length) {
|
472
471
|
var arg = this.writeQueue.shift();
|
473
|
-
|
472
|
+
|
474
473
|
if (utils.isFunction(arg)) {
|
475
474
|
this._callFunction(arg);
|
476
475
|
} else {
|
@@ -478,94 +477,94 @@ return /******/ (function(modules) { // webpackBootstrap
|
|
478
477
|
}
|
479
478
|
}
|
480
479
|
};
|
481
|
-
|
480
|
+
|
482
481
|
/**
|
483
482
|
* Calls the given function.
|
484
483
|
*
|
485
484
|
* @param {Function} fn The function to call
|
486
485
|
* @private
|
487
486
|
*/
|
488
|
-
|
489
|
-
|
487
|
+
|
488
|
+
|
490
489
|
WriteStream.prototype._callFunction = function _callFunction(fn) {
|
491
490
|
var tok = { type: 'function', value: fn.name || fn.toString() };
|
492
491
|
this._onScriptStart(tok);
|
493
492
|
fn.call(this.win, this.doc);
|
494
493
|
this._onScriptDone(tok);
|
495
494
|
};
|
496
|
-
|
495
|
+
|
497
496
|
/**
|
498
497
|
* The write implementation
|
499
498
|
*
|
500
499
|
* @param {String} html The HTML to write.
|
501
500
|
* @private
|
502
501
|
*/
|
503
|
-
|
504
|
-
|
502
|
+
|
503
|
+
|
505
504
|
WriteStream.prototype._writeImpl = function _writeImpl(html) {
|
506
505
|
this.parser.append(html);
|
507
|
-
|
506
|
+
|
508
507
|
var tok = void 0;
|
509
508
|
var script = void 0;
|
510
509
|
var style = void 0;
|
511
510
|
var tokens = [];
|
512
|
-
|
511
|
+
|
513
512
|
// stop if we see a script token
|
514
513
|
while ((tok = this.parser.readToken()) && !(script = utils.isScript(tok)) && !(style = utils.isStyle(tok))) {
|
515
514
|
tok = this.options.beforeWriteToken(tok);
|
516
|
-
|
515
|
+
|
517
516
|
if (tok) {
|
518
517
|
tokens.push(tok);
|
519
518
|
}
|
520
519
|
}
|
521
|
-
|
520
|
+
|
522
521
|
if (tokens.length > 0) {
|
523
522
|
this._writeStaticTokens(tokens);
|
524
523
|
}
|
525
|
-
|
524
|
+
|
526
525
|
if (script) {
|
527
526
|
this._handleScriptToken(tok);
|
528
527
|
}
|
529
|
-
|
528
|
+
|
530
529
|
if (style) {
|
531
530
|
this._handleStyleToken(tok);
|
532
531
|
}
|
533
532
|
};
|
534
|
-
|
533
|
+
|
535
534
|
/**
|
536
|
-
* Write
|
535
|
+
* Write contiguous non-script tokens (a chunk)
|
537
536
|
*
|
538
537
|
* @param {Array<Object>} tokens The tokens
|
539
538
|
* @returns {{tokens, raw, actual, proxy}|null}
|
540
539
|
* @private
|
541
540
|
*/
|
542
|
-
|
543
|
-
|
541
|
+
|
542
|
+
|
544
543
|
WriteStream.prototype._writeStaticTokens = function _writeStaticTokens(tokens) {
|
545
544
|
var chunk = this._buildChunk(tokens);
|
546
|
-
|
545
|
+
|
547
546
|
if (!chunk.actual) {
|
548
547
|
// e.g., no tokens, or a noscript that got ignored
|
549
548
|
return null;
|
550
549
|
}
|
551
|
-
|
550
|
+
|
552
551
|
chunk.html = this.proxyHistory + chunk.actual;
|
553
552
|
this.proxyHistory += chunk.proxy;
|
554
553
|
this.proxyRoot.innerHTML = chunk.html;
|
555
|
-
|
554
|
+
|
556
555
|
if (DEBUG_CHUNK) {
|
557
556
|
chunk.proxyInnerHTML = this.proxyRoot.innerHTML;
|
558
557
|
}
|
559
|
-
|
558
|
+
|
560
559
|
this._walkChunk();
|
561
|
-
|
560
|
+
|
562
561
|
if (DEBUG_CHUNK) {
|
563
562
|
chunk.actualInnerHTML = this.root.innerHTML;
|
564
563
|
}
|
565
|
-
|
564
|
+
|
566
565
|
return chunk;
|
567
566
|
};
|
568
|
-
|
567
|
+
|
569
568
|
/**
|
570
569
|
* Build a chunk.
|
571
570
|
*
|
@@ -573,36 +572,36 @@ return /******/ (function(modules) { // webpackBootstrap
|
|
573
572
|
* @returns {{tokens: *, raw: string, actual: string, proxy: string}}
|
574
573
|
* @private
|
575
574
|
*/
|
576
|
-
|
577
|
-
|
575
|
+
|
576
|
+
|
578
577
|
WriteStream.prototype._buildChunk = function _buildChunk(tokens) {
|
579
578
|
var nextId = this.actuals.length;
|
580
|
-
|
579
|
+
|
581
580
|
// The raw html of this chunk.
|
582
581
|
var raw = [];
|
583
|
-
|
582
|
+
|
584
583
|
// The html to create the nodes in the tokens (with id's injected).
|
585
584
|
var actual = [];
|
586
|
-
|
585
|
+
|
587
586
|
// Html that can later be used to proxy the nodes in the tokens.
|
588
587
|
var proxy = [];
|
589
|
-
|
588
|
+
|
590
589
|
var len = tokens.length;
|
591
590
|
for (var i = 0; i < len; i++) {
|
592
591
|
var tok = tokens[i];
|
593
592
|
var tokenRaw = tok.toString();
|
594
|
-
|
593
|
+
|
595
594
|
raw.push(tokenRaw);
|
596
|
-
|
595
|
+
|
597
596
|
if (tok.attrs) {
|
598
597
|
// tok.attrs <==> startTag or atomicTag or cursor
|
599
598
|
// Ignore noscript tags. They are atomic, so we don't have to worry about children.
|
600
599
|
if (!/^noscript$/i.test(tok.tagName)) {
|
601
600
|
var id = nextId++;
|
602
|
-
|
601
|
+
|
603
602
|
// Actual: inject id attribute: replace '>' at end of start tag with id attribute + '>'
|
604
603
|
actual.push(tokenRaw.replace(/(\/?>)/, ' ' + BASEATTR + 'id=' + id + ' $1'));
|
605
|
-
|
604
|
+
|
606
605
|
// Don't proxy scripts: they have no bearing on DOM structure.
|
607
606
|
if (tok.attrs.id !== PROXY_SCRIPT && tok.attrs.id !== PROXY_STYLE) {
|
608
607
|
// Proxy: strip all attributes and inject proxyof attribute
|
@@ -615,12 +614,12 @@ return /******/ (function(modules) { // webpackBootstrap
|
|
615
614
|
// Visit any other type of token
|
616
615
|
// Actual: append.
|
617
616
|
actual.push(tokenRaw);
|
618
|
-
|
617
|
+
|
619
618
|
// Proxy: append endTags. Ignore everything else.
|
620
619
|
proxy.push(tok.type === 'endTag' ? tokenRaw : '');
|
621
620
|
}
|
622
621
|
}
|
623
|
-
|
622
|
+
|
624
623
|
return {
|
625
624
|
tokens: tokens,
|
626
625
|
raw: raw.join(''),
|
@@ -628,24 +627,23 @@ return /******/ (function(modules) { // webpackBootstrap
|
|
628
627
|
proxy: proxy.join('')
|
629
628
|
};
|
630
629
|
};
|
631
|
-
|
630
|
+
|
632
631
|
/**
|
633
632
|
* Walk the chunks.
|
634
633
|
*
|
635
634
|
* @private
|
636
635
|
*/
|
637
|
-
|
638
|
-
|
636
|
+
|
637
|
+
|
639
638
|
WriteStream.prototype._walkChunk = function _walkChunk() {
|
640
639
|
var node = void 0;
|
641
640
|
var stack = [this.proxyRoot];
|
642
|
-
|
641
|
+
|
643
642
|
// use shift/unshift so that children are walked in document order
|
644
|
-
|
645
643
|
while (utils.existy(node = stack.shift())) {
|
646
644
|
var isElement = node.nodeType === 1;
|
647
645
|
var isProxy = isElement && getData(node, 'proxyof');
|
648
|
-
|
646
|
+
|
649
647
|
// Ignore proxies
|
650
648
|
if (!isProxy) {
|
651
649
|
if (isElement) {
|
@@ -653,7 +651,7 @@ return /******/ (function(modules) { // webpackBootstrap
|
|
653
651
|
this.actuals[getData(node, 'id')] = node;
|
654
652
|
setData(node, 'id');
|
655
653
|
}
|
656
|
-
|
654
|
+
|
657
655
|
// Is node's parent a proxy?
|
658
656
|
var parentIsProxyOf = node.parentNode && getData(node.parentNode, 'proxyof');
|
659
657
|
if (parentIsProxyOf) {
|
@@ -661,37 +659,37 @@ return /******/ (function(modules) { // webpackBootstrap
|
|
661
659
|
this.actuals[parentIsProxyOf].appendChild(node);
|
662
660
|
}
|
663
661
|
}
|
664
|
-
|
662
|
+
|
665
663
|
// prepend childNodes to stack
|
666
664
|
stack.unshift.apply(stack, utils.toArray(node.childNodes));
|
667
665
|
}
|
668
666
|
};
|
669
|
-
|
667
|
+
|
670
668
|
/**
|
671
669
|
* Handles Script tokens
|
672
670
|
*
|
673
671
|
* @param {Object} tok The token
|
674
672
|
*/
|
675
|
-
|
676
|
-
|
673
|
+
|
674
|
+
|
677
675
|
WriteStream.prototype._handleScriptToken = function _handleScriptToken(tok) {
|
678
676
|
var _this = this;
|
679
|
-
|
677
|
+
|
680
678
|
var remainder = this.parser.clear();
|
681
|
-
|
679
|
+
|
682
680
|
if (remainder) {
|
683
681
|
// Write remainder immediately behind this script.
|
684
682
|
this.writeQueue.unshift(remainder);
|
685
683
|
}
|
686
|
-
|
684
|
+
|
687
685
|
tok.src = tok.attrs.src || tok.attrs.SRC;
|
688
|
-
|
686
|
+
|
689
687
|
tok = this.options.beforeWriteToken(tok);
|
690
688
|
if (!tok) {
|
691
689
|
// User has removed this token
|
692
690
|
return;
|
693
691
|
}
|
694
|
-
|
692
|
+
|
695
693
|
if (tok.src && this.scriptStack.length) {
|
696
694
|
// Defer this script until scriptStack is empty.
|
697
695
|
// Assumption 1: This script will not start executing until
|
@@ -700,54 +698,54 @@ return /******/ (function(modules) { // webpackBootstrap
|
|
700
698
|
} else {
|
701
699
|
this._onScriptStart(tok);
|
702
700
|
}
|
703
|
-
|
701
|
+
|
704
702
|
// Put the script node in the DOM.
|
705
703
|
this._writeScriptToken(tok, function () {
|
706
704
|
_this._onScriptDone(tok);
|
707
705
|
});
|
708
706
|
};
|
709
|
-
|
707
|
+
|
710
708
|
/**
|
711
709
|
* Handles style tokens
|
712
710
|
*
|
713
711
|
* @param {Object} tok The token
|
714
712
|
*/
|
715
|
-
|
716
|
-
|
713
|
+
|
714
|
+
|
717
715
|
WriteStream.prototype._handleStyleToken = function _handleStyleToken(tok) {
|
718
716
|
var remainder = this.parser.clear();
|
719
|
-
|
717
|
+
|
720
718
|
if (remainder) {
|
721
719
|
// Write remainder immediately behind this style.
|
722
720
|
this.writeQueue.unshift(remainder);
|
723
721
|
}
|
724
|
-
|
722
|
+
|
725
723
|
tok.type = tok.attrs.type || tok.attrs.TYPE || 'text/css';
|
726
|
-
|
724
|
+
|
727
725
|
tok = this.options.beforeWriteToken(tok);
|
728
|
-
|
726
|
+
|
729
727
|
if (tok) {
|
730
728
|
// Put the style node in the DOM.
|
731
729
|
this._writeStyleToken(tok);
|
732
730
|
}
|
733
|
-
|
731
|
+
|
734
732
|
if (remainder) {
|
735
733
|
this.write();
|
736
734
|
}
|
737
735
|
};
|
738
|
-
|
736
|
+
|
739
737
|
/**
|
740
738
|
* Build a style and insert it into the DOM.
|
741
739
|
*
|
742
740
|
* @param {Object} tok The token
|
743
741
|
*/
|
744
|
-
|
745
|
-
|
742
|
+
|
743
|
+
|
746
744
|
WriteStream.prototype._writeStyleToken = function _writeStyleToken(tok) {
|
747
745
|
var el = this._buildStyle(tok);
|
748
|
-
|
749
|
-
this.
|
750
|
-
|
746
|
+
|
747
|
+
this._insertCursor(el, PROXY_STYLE);
|
748
|
+
|
751
749
|
// Set content
|
752
750
|
if (tok.content) {
|
753
751
|
if (el.styleSheet && !el.sheet) {
|
@@ -757,112 +755,83 @@ return /******/ (function(modules) { // webpackBootstrap
|
|
757
755
|
}
|
758
756
|
}
|
759
757
|
};
|
760
|
-
|
758
|
+
|
761
759
|
/**
|
762
760
|
* Build a style element from an atomic style token.
|
763
761
|
*
|
764
762
|
* @param {Object} tok The token
|
765
763
|
* @returns {Element}
|
766
764
|
*/
|
767
|
-
|
768
|
-
|
765
|
+
|
766
|
+
|
769
767
|
WriteStream.prototype._buildStyle = function _buildStyle(tok) {
|
770
768
|
var el = this.doc.createElement(tok.tagName);
|
771
|
-
|
769
|
+
|
772
770
|
el.setAttribute('type', tok.type);
|
773
|
-
|
771
|
+
|
774
772
|
// Set attributes
|
775
773
|
utils.eachKey(tok.attrs, function (name, value) {
|
776
774
|
el.setAttribute(name, value);
|
777
775
|
});
|
778
|
-
|
776
|
+
|
779
777
|
return el;
|
780
778
|
};
|
781
|
-
|
779
|
+
|
782
780
|
/**
|
783
781
|
* Append a span to the stream. That span will act as a cursor
|
784
|
-
* (i.e. insertion point) for the
|
785
|
-
*
|
786
|
-
* @param {String} id The ID of the span.
|
787
|
-
* @private
|
788
|
-
*/
|
789
|
-
|
790
|
-
|
791
|
-
WriteStream.prototype._insertSpan = function _insertSpan(id) {
|
792
|
-
this._writeImpl('<span id="' + id + '"/>');
|
793
|
-
|
794
|
-
// Grab that span from the DOM.
|
795
|
-
return this.doc.getElementById(id);
|
796
|
-
};
|
797
|
-
|
798
|
-
/**
|
799
|
-
* Insert style into DOM where it would naturally be written.
|
800
|
-
*
|
801
|
-
* @param {Object} el The element
|
802
|
-
*/
|
803
|
-
|
804
|
-
|
805
|
-
WriteStream.prototype._insertStyle = function _insertStyle(el) {
|
806
|
-
var cursor = this._insertSpan(PROXY_STYLE);
|
807
|
-
|
808
|
-
// Replace cursor with style.
|
809
|
-
if (cursor) {
|
810
|
-
cursor.parentNode.replaceChild(el, cursor);
|
811
|
-
}
|
812
|
-
};
|
813
|
-
|
814
|
-
/**
|
815
|
-
* Insert script into DOM where it would naturally be written.
|
782
|
+
* (i.e. insertion point) for the element.
|
816
783
|
*
|
817
784
|
* @param {Object} el The element
|
785
|
+
* @param {string} which The type of proxy element
|
818
786
|
*/
|
819
|
-
|
820
|
-
|
821
|
-
WriteStream.prototype.
|
822
|
-
|
823
|
-
|
824
|
-
|
787
|
+
|
788
|
+
|
789
|
+
WriteStream.prototype._insertCursor = function _insertCursor(el, which) {
|
790
|
+
this._writeImpl('<span id="' + which + '"/>');
|
791
|
+
|
792
|
+
var cursor = this.doc.getElementById(which);
|
793
|
+
|
825
794
|
if (cursor) {
|
826
795
|
cursor.parentNode.replaceChild(el, cursor);
|
827
796
|
}
|
828
797
|
};
|
829
|
-
|
798
|
+
|
830
799
|
/**
|
831
800
|
* Called when a script is started.
|
832
801
|
*
|
833
802
|
* @param {Object} tok The token
|
834
803
|
* @private
|
835
804
|
*/
|
836
|
-
|
837
|
-
|
805
|
+
|
806
|
+
|
838
807
|
WriteStream.prototype._onScriptStart = function _onScriptStart(tok) {
|
839
808
|
tok.outerWrites = this.writeQueue;
|
840
809
|
this.writeQueue = [];
|
841
810
|
this.scriptStack.unshift(tok);
|
842
811
|
};
|
843
|
-
|
812
|
+
|
844
813
|
/**
|
845
814
|
* Called when a script is done.
|
846
815
|
*
|
847
816
|
* @param {Object} tok The token
|
848
817
|
* @private
|
849
818
|
*/
|
850
|
-
|
851
|
-
|
819
|
+
|
820
|
+
|
852
821
|
WriteStream.prototype._onScriptDone = function _onScriptDone(tok) {
|
853
822
|
// Pop script and check nesting.
|
854
823
|
if (tok !== this.scriptStack[0]) {
|
855
|
-
this.options.error({
|
824
|
+
this.options.error({ msg: 'Bad script nesting or script finished twice' });
|
856
825
|
return;
|
857
826
|
}
|
858
|
-
|
827
|
+
|
859
828
|
this.scriptStack.shift();
|
860
|
-
|
829
|
+
|
861
830
|
// Append outer writes to queue and process them.
|
862
831
|
this.write.apply(this, tok.outerWrites);
|
863
|
-
|
832
|
+
|
864
833
|
// Check for pending remote
|
865
|
-
|
834
|
+
|
866
835
|
// Assumption 2: if remote_script1 writes remote_script2 then
|
867
836
|
// the we notice remote_script1 finishes before remote_script2 starts.
|
868
837
|
// I think this is equivalent to assumption 1
|
@@ -871,7 +840,7 @@ return /******/ (function(modules) { // webpackBootstrap
|
|
871
840
|
this.deferredRemote = null;
|
872
841
|
}
|
873
842
|
};
|
874
|
-
|
843
|
+
|
875
844
|
/**
|
876
845
|
* Build a script and insert it into the DOM.
|
877
846
|
* Done is called once script has executed.
|
@@ -879,13 +848,13 @@ return /******/ (function(modules) { // webpackBootstrap
|
|
879
848
|
* @param {Object} tok The token
|
880
849
|
* @param {Function} done The callback when complete
|
881
850
|
*/
|
882
|
-
|
883
|
-
|
851
|
+
|
852
|
+
|
884
853
|
WriteStream.prototype._writeScriptToken = function _writeScriptToken(tok, done) {
|
885
854
|
var el = this._buildScript(tok);
|
886
855
|
var asyncRelease = this._shouldRelease(el);
|
887
856
|
var afterAsync = this.options.afterAsync;
|
888
|
-
|
857
|
+
|
889
858
|
if (tok.src) {
|
890
859
|
// Fix for attribute "SRC" (capitalized). IE does not recognize it.
|
891
860
|
el.src = tok.src;
|
@@ -894,9 +863,9 @@ return /******/ (function(modules) { // webpackBootstrap
|
|
894
863
|
afterAsync();
|
895
864
|
} : afterAsync);
|
896
865
|
}
|
897
|
-
|
866
|
+
|
898
867
|
try {
|
899
|
-
this.
|
868
|
+
this._insertCursor(el, PROXY_SCRIPT);
|
900
869
|
if (!el.src || asyncRelease) {
|
901
870
|
done();
|
902
871
|
}
|
@@ -905,31 +874,31 @@ return /******/ (function(modules) { // webpackBootstrap
|
|
905
874
|
done();
|
906
875
|
}
|
907
876
|
};
|
908
|
-
|
877
|
+
|
909
878
|
/**
|
910
879
|
* Build a script element from an atomic script token.
|
911
880
|
*
|
912
881
|
* @param {Object} tok The token
|
913
882
|
* @returns {Element}
|
914
883
|
*/
|
915
|
-
|
916
|
-
|
884
|
+
|
885
|
+
|
917
886
|
WriteStream.prototype._buildScript = function _buildScript(tok) {
|
918
887
|
var el = this.doc.createElement(tok.tagName);
|
919
|
-
|
888
|
+
|
920
889
|
// Set attributes
|
921
890
|
utils.eachKey(tok.attrs, function (name, value) {
|
922
891
|
el.setAttribute(name, value);
|
923
892
|
});
|
924
|
-
|
893
|
+
|
925
894
|
// Set content
|
926
895
|
if (tok.content) {
|
927
896
|
el.text = tok.content;
|
928
897
|
}
|
929
|
-
|
898
|
+
|
930
899
|
return el;
|
931
900
|
};
|
932
|
-
|
901
|
+
|
933
902
|
/**
|
934
903
|
* Setup the script load handler on an element.
|
935
904
|
*
|
@@ -937,44 +906,72 @@ return /******/ (function(modules) { // webpackBootstrap
|
|
937
906
|
* @param {Function} done The callback
|
938
907
|
* @private
|
939
908
|
*/
|
940
|
-
|
941
|
-
|
909
|
+
|
910
|
+
|
942
911
|
WriteStream.prototype._scriptLoadHandler = function _scriptLoadHandler(el, done) {
|
943
912
|
function cleanup() {
|
944
913
|
el = el.onload = el.onreadystatechange = el.onerror = null;
|
945
914
|
}
|
946
|
-
|
915
|
+
|
947
916
|
var error = this.options.error;
|
948
|
-
|
917
|
+
|
949
918
|
function success() {
|
950
919
|
cleanup();
|
951
|
-
done
|
920
|
+
if (done != null) {
|
921
|
+
done();
|
922
|
+
}
|
923
|
+
done = null;
|
952
924
|
}
|
953
|
-
|
925
|
+
|
954
926
|
function failure(err) {
|
955
927
|
cleanup();
|
956
928
|
error(err);
|
957
|
-
done
|
929
|
+
if (done != null) {
|
930
|
+
done();
|
931
|
+
}
|
932
|
+
done = null;
|
958
933
|
}
|
959
|
-
|
960
|
-
|
934
|
+
|
935
|
+
function reattachEventListener(el, evt) {
|
936
|
+
var handler = el['on' + evt];
|
937
|
+
if (handler != null) {
|
938
|
+
el['_on' + evt] = handler;
|
939
|
+
}
|
940
|
+
}
|
941
|
+
|
942
|
+
reattachEventListener(el, 'load');
|
943
|
+
reattachEventListener(el, 'error');
|
944
|
+
|
961
945
|
_extends(el, {
|
962
946
|
onload: function onload() {
|
963
|
-
|
947
|
+
if (el._onload) {
|
948
|
+
try {
|
949
|
+
el._onload.apply(this, Array.prototype.slice.call(arguments, 0));
|
950
|
+
} catch (err) {
|
951
|
+
failure({ msg: 'onload handler failed ' + err + ' @ ' + el.src });
|
952
|
+
}
|
953
|
+
}
|
954
|
+
success();
|
955
|
+
},
|
956
|
+
onerror: function onerror() {
|
957
|
+
if (el._onerror) {
|
958
|
+
try {
|
959
|
+
el._onerror.apply(this, Array.prototype.slice.call(arguments, 0));
|
960
|
+
} catch (err) {
|
961
|
+
failure({ msg: 'onerror handler failed ' + err + ' @ ' + el.src });
|
962
|
+
return;
|
963
|
+
}
|
964
|
+
}
|
965
|
+
failure({ msg: 'remote script failed ' + el.src });
|
964
966
|
},
|
965
|
-
|
966
967
|
onreadystatechange: function onreadystatechange() {
|
967
968
|
if (/^(loaded|complete)$/.test(el.readyState)) {
|
968
969
|
success();
|
969
970
|
}
|
970
|
-
},
|
971
|
-
|
972
|
-
onerror: function onerror() {
|
973
|
-
return failure({ message: 'remote script failed ' + el.src });
|
974
971
|
}
|
975
972
|
});
|
976
973
|
};
|
977
|
-
|
974
|
+
|
978
975
|
/**
|
979
976
|
* Determines whether to release.
|
980
977
|
*
|
@@ -982,16 +979,16 @@ return /******/ (function(modules) { // webpackBootstrap
|
|
982
979
|
* @returns {boolean}
|
983
980
|
* @private
|
984
981
|
*/
|
985
|
-
|
986
|
-
|
982
|
+
|
983
|
+
|
987
984
|
WriteStream.prototype._shouldRelease = function _shouldRelease(el) {
|
988
985
|
var isScript = /^script$/i.test(el.nodeName);
|
989
986
|
return !isScript || !!(this.options.releaseAsync && el.src && el.hasAttribute('async'));
|
990
987
|
};
|
991
|
-
|
988
|
+
|
992
989
|
return WriteStream;
|
993
990
|
}();
|
994
|
-
|
991
|
+
|
995
992
|
exports['default'] = WriteStream;
|
996
993
|
|
997
994
|
/***/ },
|
@@ -1001,7 +998,7 @@ return /******/ (function(modules) { // webpackBootstrap
|
|
1001
998
|
/**
|
1002
999
|
* @file prescribe
|
1003
1000
|
* @description Tiny, forgiving HTML parser
|
1004
|
-
* @version
|
1001
|
+
* @version vundefined
|
1005
1002
|
* @see {@link https://github.com/krux/prescribe/}
|
1006
1003
|
* @license MIT
|
1007
1004
|
* @author Derek Brans
|
@@ -1020,41 +1017,41 @@ return /******/ (function(modules) { // webpackBootstrap
|
|
1020
1017
|
return /******/ (function(modules) { // webpackBootstrap
|
1021
1018
|
/******/ // The module cache
|
1022
1019
|
/******/ var installedModules = {};
|
1023
|
-
|
1020
|
+
|
1024
1021
|
/******/ // The require function
|
1025
1022
|
/******/ function __webpack_require__(moduleId) {
|
1026
|
-
|
1023
|
+
|
1027
1024
|
/******/ // Check if module is in cache
|
1028
1025
|
/******/ if(installedModules[moduleId])
|
1029
1026
|
/******/ return installedModules[moduleId].exports;
|
1030
|
-
|
1027
|
+
|
1031
1028
|
/******/ // Create a new module (and put it into the cache)
|
1032
1029
|
/******/ var module = installedModules[moduleId] = {
|
1033
1030
|
/******/ exports: {},
|
1034
1031
|
/******/ id: moduleId,
|
1035
1032
|
/******/ loaded: false
|
1036
1033
|
/******/ };
|
1037
|
-
|
1034
|
+
|
1038
1035
|
/******/ // Execute the module function
|
1039
1036
|
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
|
1040
|
-
|
1037
|
+
|
1041
1038
|
/******/ // Flag the module as loaded
|
1042
1039
|
/******/ module.loaded = true;
|
1043
|
-
|
1040
|
+
|
1044
1041
|
/******/ // Return the exports of the module
|
1045
1042
|
/******/ return module.exports;
|
1046
1043
|
/******/ }
|
1047
|
-
|
1048
|
-
|
1044
|
+
|
1045
|
+
|
1049
1046
|
/******/ // expose the modules object (__webpack_modules__)
|
1050
1047
|
/******/ __webpack_require__.m = modules;
|
1051
|
-
|
1048
|
+
|
1052
1049
|
/******/ // expose the module cache
|
1053
1050
|
/******/ __webpack_require__.c = installedModules;
|
1054
|
-
|
1051
|
+
|
1055
1052
|
/******/ // __webpack_public_path__
|
1056
1053
|
/******/ __webpack_require__.p = "";
|
1057
|
-
|
1054
|
+
|
1058
1055
|
/******/ // Load entry module and return exports
|
1059
1056
|
/******/ return __webpack_require__(0);
|
1060
1057
|
/******/ })
|
@@ -1062,51 +1059,51 @@ return /******/ (function(modules) { // webpackBootstrap
|
|
1062
1059
|
/******/ ([
|
1063
1060
|
/* 0 */
|
1064
1061
|
/***/ function(module, exports, __webpack_require__) {
|
1065
|
-
|
1062
|
+
|
1066
1063
|
'use strict';
|
1067
|
-
|
1064
|
+
|
1068
1065
|
var _HtmlParser = __webpack_require__(1);
|
1069
|
-
|
1066
|
+
|
1070
1067
|
var _HtmlParser2 = _interopRequireDefault(_HtmlParser);
|
1071
|
-
|
1068
|
+
|
1072
1069
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
|
1073
|
-
|
1070
|
+
|
1074
1071
|
module.exports = _HtmlParser2['default'];
|
1075
|
-
|
1072
|
+
|
1076
1073
|
/***/ },
|
1077
1074
|
/* 1 */
|
1078
1075
|
/***/ function(module, exports, __webpack_require__) {
|
1079
|
-
|
1076
|
+
|
1080
1077
|
'use strict';
|
1081
|
-
|
1078
|
+
|
1082
1079
|
exports.__esModule = true;
|
1083
|
-
|
1080
|
+
|
1084
1081
|
var _supports = __webpack_require__(2);
|
1085
|
-
|
1082
|
+
|
1086
1083
|
var supports = _interopRequireWildcard(_supports);
|
1087
|
-
|
1084
|
+
|
1088
1085
|
var _streamReaders = __webpack_require__(3);
|
1089
|
-
|
1086
|
+
|
1090
1087
|
var streamReaders = _interopRequireWildcard(_streamReaders);
|
1091
|
-
|
1088
|
+
|
1092
1089
|
var _fixedReadTokenFactory = __webpack_require__(6);
|
1093
|
-
|
1090
|
+
|
1094
1091
|
var _fixedReadTokenFactory2 = _interopRequireDefault(_fixedReadTokenFactory);
|
1095
|
-
|
1092
|
+
|
1096
1093
|
var _utils = __webpack_require__(5);
|
1097
|
-
|
1094
|
+
|
1098
1095
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
|
1099
|
-
|
1096
|
+
|
1100
1097
|
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
|
1101
|
-
|
1098
|
+
|
1102
1099
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
1103
|
-
|
1100
|
+
|
1104
1101
|
/**
|
1105
1102
|
* Detection regular expressions.
|
1106
1103
|
*
|
1107
1104
|
* Order of detection matters: detection of one can only
|
1108
1105
|
* succeed if detection of previous didn't
|
1109
|
-
|
1106
|
+
|
1110
1107
|
* @type {Object}
|
1111
1108
|
*/
|
1112
1109
|
var detect = {
|
@@ -1116,12 +1113,12 @@ return /******/ (function(modules) { // webpackBootstrap
|
|
1116
1113
|
startTag: /^</,
|
1117
1114
|
chars: /^[^<]/
|
1118
1115
|
};
|
1119
|
-
|
1116
|
+
|
1120
1117
|
/**
|
1121
1118
|
* HtmlParser provides the capability to parse HTML and return tokens
|
1122
1119
|
* representing the tags and content.
|
1123
1120
|
*/
|
1124
|
-
|
1121
|
+
|
1125
1122
|
var HtmlParser = function () {
|
1126
1123
|
/**
|
1127
1124
|
* Constructor.
|
@@ -1130,20 +1127,19 @@ return /******/ (function(modules) { // webpackBootstrap
|
|
1130
1127
|
* @param {Object} options The options
|
1131
1128
|
* @param {boolean} options.autoFix Set to true to automatically fix errors
|
1132
1129
|
*/
|
1133
|
-
|
1134
1130
|
function HtmlParser() {
|
1135
1131
|
var _this = this;
|
1136
|
-
|
1137
|
-
var stream = arguments.length
|
1138
|
-
var options = arguments.length
|
1139
|
-
|
1132
|
+
|
1133
|
+
var stream = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
|
1134
|
+
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
1135
|
+
|
1140
1136
|
_classCallCheck(this, HtmlParser);
|
1141
|
-
|
1137
|
+
|
1142
1138
|
this.stream = stream;
|
1143
|
-
|
1139
|
+
|
1144
1140
|
var fix = false;
|
1145
1141
|
var fixedTokenOptions = {};
|
1146
|
-
|
1142
|
+
|
1147
1143
|
for (var key in supports) {
|
1148
1144
|
if (supports.hasOwnProperty(key)) {
|
1149
1145
|
if (options.autoFix) {
|
@@ -1152,60 +1148,97 @@ return /******/ (function(modules) { // webpackBootstrap
|
|
1152
1148
|
fix = fix || fixedTokenOptions[key + 'Fix'];
|
1153
1149
|
}
|
1154
1150
|
}
|
1155
|
-
|
1151
|
+
|
1156
1152
|
if (fix) {
|
1157
|
-
this.
|
1153
|
+
this._readToken = (0, _fixedReadTokenFactory2['default'])(this, fixedTokenOptions, function () {
|
1158
1154
|
return _this._readTokenImpl();
|
1159
1155
|
});
|
1156
|
+
this._peekToken = (0, _fixedReadTokenFactory2['default'])(this, fixedTokenOptions, function () {
|
1157
|
+
return _this._peekTokenImpl();
|
1158
|
+
});
|
1159
|
+
} else {
|
1160
|
+
this._readToken = this._readTokenImpl;
|
1161
|
+
this._peekToken = this._peekTokenImpl;
|
1160
1162
|
}
|
1161
1163
|
}
|
1162
|
-
|
1164
|
+
|
1163
1165
|
/**
|
1164
1166
|
* Appends the given string to the parse stream.
|
1165
1167
|
*
|
1166
1168
|
* @param {string} str The string to append
|
1167
1169
|
*/
|
1168
|
-
|
1169
|
-
|
1170
|
+
|
1171
|
+
|
1170
1172
|
HtmlParser.prototype.append = function append(str) {
|
1171
1173
|
this.stream += str;
|
1172
1174
|
};
|
1173
|
-
|
1175
|
+
|
1174
1176
|
/**
|
1175
1177
|
* Prepends the given string to the parse stream.
|
1176
1178
|
*
|
1177
1179
|
* @param {string} str The string to prepend
|
1178
1180
|
*/
|
1179
|
-
|
1180
|
-
|
1181
|
+
|
1182
|
+
|
1181
1183
|
HtmlParser.prototype.prepend = function prepend(str) {
|
1182
1184
|
this.stream = str + this.stream;
|
1183
1185
|
};
|
1184
|
-
|
1186
|
+
|
1185
1187
|
/**
|
1186
1188
|
* The implementation of the token reading.
|
1187
1189
|
*
|
1188
1190
|
* @private
|
1189
|
-
* @returns {Token}
|
1191
|
+
* @returns {?Token}
|
1190
1192
|
*/
|
1191
|
-
|
1192
|
-
|
1193
|
+
|
1194
|
+
|
1193
1195
|
HtmlParser.prototype._readTokenImpl = function _readTokenImpl() {
|
1194
|
-
|
1196
|
+
var token = this._peekTokenImpl();
|
1197
|
+
if (token) {
|
1198
|
+
this.stream = this.stream.slice(token.length);
|
1199
|
+
return token;
|
1200
|
+
}
|
1201
|
+
};
|
1202
|
+
|
1203
|
+
/**
|
1204
|
+
* The implementation of token peeking.
|
1205
|
+
*
|
1206
|
+
* @returns {?Token}
|
1207
|
+
*/
|
1208
|
+
|
1209
|
+
|
1210
|
+
HtmlParser.prototype._peekTokenImpl = function _peekTokenImpl() {
|
1195
1211
|
for (var type in detect) {
|
1196
1212
|
if (detect.hasOwnProperty(type)) {
|
1197
1213
|
if (detect[type].test(this.stream)) {
|
1198
1214
|
var token = streamReaders[type](this.stream);
|
1215
|
+
|
1199
1216
|
if (token) {
|
1200
|
-
token.
|
1201
|
-
|
1202
|
-
|
1217
|
+
if (token.type === 'startTag' && /script|style/i.test(token.tagName)) {
|
1218
|
+
return null;
|
1219
|
+
} else {
|
1220
|
+
token.text = this.stream.substr(0, token.length);
|
1221
|
+
return token;
|
1222
|
+
}
|
1203
1223
|
}
|
1204
1224
|
}
|
1205
1225
|
}
|
1206
1226
|
}
|
1207
1227
|
};
|
1208
|
-
|
1228
|
+
|
1229
|
+
/**
|
1230
|
+
* The public token peeking interface. Delegates to the basic token peeking
|
1231
|
+
* or a version that performs fixups depending on the `autoFix` setting in
|
1232
|
+
* options.
|
1233
|
+
*
|
1234
|
+
* @returns {object}
|
1235
|
+
*/
|
1236
|
+
|
1237
|
+
|
1238
|
+
HtmlParser.prototype.peekToken = function peekToken() {
|
1239
|
+
return this._peekToken();
|
1240
|
+
};
|
1241
|
+
|
1209
1242
|
/**
|
1210
1243
|
* The public token reading interface. Delegates to the basic token reading
|
1211
1244
|
* or a version that performs fixups depending on the `autoFix` setting in
|
@@ -1213,23 +1246,19 @@ return /******/ (function(modules) { // webpackBootstrap
|
|
1213
1246
|
*
|
1214
1247
|
* @returns {object}
|
1215
1248
|
*/
|
1216
|
-
|
1217
|
-
|
1249
|
+
|
1250
|
+
|
1218
1251
|
HtmlParser.prototype.readToken = function readToken() {
|
1219
|
-
|
1220
|
-
return this._fixedReadToken();
|
1221
|
-
} else {
|
1222
|
-
return this._readTokenImpl();
|
1223
|
-
}
|
1252
|
+
return this._readToken();
|
1224
1253
|
};
|
1225
|
-
|
1254
|
+
|
1226
1255
|
/**
|
1227
1256
|
* Read tokens and hand to the given handlers.
|
1228
1257
|
*
|
1229
1258
|
* @param {Object} handlers The handlers to use for the different tokens.
|
1230
1259
|
*/
|
1231
|
-
|
1232
|
-
|
1260
|
+
|
1261
|
+
|
1233
1262
|
HtmlParser.prototype.readTokens = function readTokens(handlers) {
|
1234
1263
|
var tok = void 0;
|
1235
1264
|
while (tok = this.readToken()) {
|
@@ -1239,73 +1268,73 @@ return /******/ (function(modules) { // webpackBootstrap
|
|
1239
1268
|
}
|
1240
1269
|
}
|
1241
1270
|
};
|
1242
|
-
|
1271
|
+
|
1243
1272
|
/**
|
1244
1273
|
* Clears the parse stream.
|
1245
1274
|
*
|
1246
1275
|
* @returns {string} The contents of the parse stream before clearing.
|
1247
1276
|
*/
|
1248
|
-
|
1249
|
-
|
1277
|
+
|
1278
|
+
|
1250
1279
|
HtmlParser.prototype.clear = function clear() {
|
1251
1280
|
var rest = this.stream;
|
1252
1281
|
this.stream = '';
|
1253
1282
|
return rest;
|
1254
1283
|
};
|
1255
|
-
|
1284
|
+
|
1256
1285
|
/**
|
1257
1286
|
* Returns the rest of the parse stream.
|
1258
1287
|
*
|
1259
1288
|
* @returns {string} The contents of the parse stream.
|
1260
1289
|
*/
|
1261
|
-
|
1262
|
-
|
1290
|
+
|
1291
|
+
|
1263
1292
|
HtmlParser.prototype.rest = function rest() {
|
1264
1293
|
return this.stream;
|
1265
1294
|
};
|
1266
|
-
|
1295
|
+
|
1267
1296
|
return HtmlParser;
|
1268
1297
|
}();
|
1269
|
-
|
1298
|
+
|
1270
1299
|
exports['default'] = HtmlParser;
|
1271
|
-
|
1272
|
-
|
1300
|
+
|
1301
|
+
|
1273
1302
|
HtmlParser.tokenToString = function (tok) {
|
1274
1303
|
return tok.toString();
|
1275
1304
|
};
|
1276
|
-
|
1305
|
+
|
1277
1306
|
HtmlParser.escapeAttributes = function (attrs) {
|
1278
1307
|
var escapedAttrs = {};
|
1279
|
-
|
1308
|
+
|
1280
1309
|
for (var name in attrs) {
|
1281
1310
|
if (attrs.hasOwnProperty(name)) {
|
1282
1311
|
escapedAttrs[name] = (0, _utils.escapeQuotes)(attrs[name], null);
|
1283
1312
|
}
|
1284
1313
|
}
|
1285
|
-
|
1314
|
+
|
1286
1315
|
return escapedAttrs;
|
1287
1316
|
};
|
1288
|
-
|
1317
|
+
|
1289
1318
|
HtmlParser.supports = supports;
|
1290
|
-
|
1319
|
+
|
1291
1320
|
for (var key in supports) {
|
1292
1321
|
if (supports.hasOwnProperty(key)) {
|
1293
1322
|
HtmlParser.browserHasFlaw = HtmlParser.browserHasFlaw || !supports[key] && key;
|
1294
1323
|
}
|
1295
1324
|
}
|
1296
|
-
|
1325
|
+
|
1297
1326
|
/***/ },
|
1298
1327
|
/* 2 */
|
1299
1328
|
/***/ function(module, exports) {
|
1300
|
-
|
1329
|
+
|
1301
1330
|
'use strict';
|
1302
|
-
|
1331
|
+
|
1303
1332
|
exports.__esModule = true;
|
1304
1333
|
var tagSoup = false;
|
1305
1334
|
var selfClose = false;
|
1306
|
-
|
1335
|
+
|
1307
1336
|
var work = window.document.createElement('div');
|
1308
|
-
|
1337
|
+
|
1309
1338
|
try {
|
1310
1339
|
var html = '<P><I></P></I>';
|
1311
1340
|
work.innerHTML = html;
|
@@ -1313,37 +1342,37 @@ return /******/ (function(modules) { // webpackBootstrap
|
|
1313
1342
|
} catch (e) {
|
1314
1343
|
exports.tagSoup = tagSoup = false;
|
1315
1344
|
}
|
1316
|
-
|
1345
|
+
|
1317
1346
|
try {
|
1318
1347
|
work.innerHTML = '<P><i><P></P></i></P>';
|
1319
1348
|
exports.selfClose = selfClose = work.childNodes.length === 2;
|
1320
1349
|
} catch (e) {
|
1321
1350
|
exports.selfClose = selfClose = false;
|
1322
1351
|
}
|
1323
|
-
|
1352
|
+
|
1324
1353
|
work = null;
|
1325
|
-
|
1354
|
+
|
1326
1355
|
exports.tagSoup = tagSoup;
|
1327
1356
|
exports.selfClose = selfClose;
|
1328
|
-
|
1357
|
+
|
1329
1358
|
/***/ },
|
1330
1359
|
/* 3 */
|
1331
1360
|
/***/ function(module, exports, __webpack_require__) {
|
1332
|
-
|
1361
|
+
|
1333
1362
|
'use strict';
|
1334
|
-
|
1363
|
+
|
1335
1364
|
exports.__esModule = true;
|
1336
|
-
|
1337
|
-
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj; };
|
1338
|
-
|
1365
|
+
|
1366
|
+
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
|
1367
|
+
|
1339
1368
|
exports.comment = comment;
|
1340
1369
|
exports.chars = chars;
|
1341
1370
|
exports.startTag = startTag;
|
1342
1371
|
exports.atomicTag = atomicTag;
|
1343
1372
|
exports.endTag = endTag;
|
1344
|
-
|
1373
|
+
|
1345
1374
|
var _tokens = __webpack_require__(4);
|
1346
|
-
|
1375
|
+
|
1347
1376
|
/**
|
1348
1377
|
* Regular Expressions for parsing tags and attributes
|
1349
1378
|
*
|
@@ -1355,7 +1384,7 @@ return /******/ (function(modules) { // webpackBootstrap
|
|
1355
1384
|
attr: /(?:([\-A-Za-z0-9_]+)\s*=\s*(?:(?:"((?:\\.|[^"])*)")|(?:'((?:\\.|[^'])*)')|([^>\s]+)))|(?:([\-A-Za-z0-9_]+)(\s|$)+)/g,
|
1356
1385
|
fillAttr: /^(checked|compact|declare|defer|disabled|ismap|multiple|nohref|noresize|noshade|nowrap|readonly|selected)$/i
|
1357
1386
|
};
|
1358
|
-
|
1387
|
+
|
1359
1388
|
/**
|
1360
1389
|
* Reads a comment token
|
1361
1390
|
*
|
@@ -1368,7 +1397,7 @@ return /******/ (function(modules) { // webpackBootstrap
|
|
1368
1397
|
return new _tokens.CommentToken(stream.substr(4, index - 1), index + 3);
|
1369
1398
|
}
|
1370
1399
|
}
|
1371
|
-
|
1400
|
+
|
1372
1401
|
/**
|
1373
1402
|
* Reads non-tag characters.
|
1374
1403
|
*
|
@@ -1379,7 +1408,7 @@ return /******/ (function(modules) { // webpackBootstrap
|
|
1379
1408
|
var index = stream.indexOf('<');
|
1380
1409
|
return new _tokens.CharsToken(index >= 0 ? index : stream.length);
|
1381
1410
|
}
|
1382
|
-
|
1411
|
+
|
1383
1412
|
/**
|
1384
1413
|
* Reads start tag token.
|
1385
1414
|
*
|
@@ -1395,7 +1424,7 @@ return /******/ (function(modules) { // webpackBootstrap
|
|
1395
1424
|
var attrs = {};
|
1396
1425
|
var booleanAttrs = {};
|
1397
1426
|
var rest = match[2];
|
1398
|
-
|
1427
|
+
|
1399
1428
|
match[2].replace(REGEXES.attr, function (match, name) {
|
1400
1429
|
if (!(arguments[2] || arguments[3] || arguments[4] || arguments[5])) {
|
1401
1430
|
attrs[name] = '';
|
@@ -1405,20 +1434,20 @@ return /******/ (function(modules) { // webpackBootstrap
|
|
1405
1434
|
} else {
|
1406
1435
|
attrs[name] = arguments[2] || arguments[3] || arguments[4] || REGEXES.fillAttr.test(name) && name || '';
|
1407
1436
|
}
|
1408
|
-
|
1437
|
+
|
1409
1438
|
rest = rest.replace(match, '');
|
1410
1439
|
});
|
1411
|
-
|
1440
|
+
|
1412
1441
|
return {
|
1413
1442
|
v: new _tokens.StartTagToken(match[1], match[0].length, attrs, booleanAttrs, !!match[3], rest.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, ''))
|
1414
1443
|
};
|
1415
1444
|
}();
|
1416
|
-
|
1445
|
+
|
1417
1446
|
if ((typeof _ret === 'undefined' ? 'undefined' : _typeof(_ret)) === "object") return _ret.v;
|
1418
1447
|
}
|
1419
1448
|
}
|
1420
1449
|
}
|
1421
|
-
|
1450
|
+
|
1422
1451
|
/**
|
1423
1452
|
* Reads atomic tag token.
|
1424
1453
|
*
|
@@ -1439,7 +1468,7 @@ return /******/ (function(modules) { // webpackBootstrap
|
|
1439
1468
|
}
|
1440
1469
|
}
|
1441
1470
|
}
|
1442
|
-
|
1471
|
+
|
1443
1472
|
/**
|
1444
1473
|
* Reads an end tag token.
|
1445
1474
|
*
|
@@ -1452,25 +1481,24 @@ return /******/ (function(modules) { // webpackBootstrap
|
|
1452
1481
|
return new _tokens.EndTagToken(match[1], match[0].length);
|
1453
1482
|
}
|
1454
1483
|
}
|
1455
|
-
|
1484
|
+
|
1456
1485
|
/***/ },
|
1457
1486
|
/* 4 */
|
1458
1487
|
/***/ function(module, exports, __webpack_require__) {
|
1459
|
-
|
1488
|
+
|
1460
1489
|
'use strict';
|
1461
|
-
|
1490
|
+
|
1462
1491
|
exports.__esModule = true;
|
1463
1492
|
exports.EndTagToken = exports.AtomicTagToken = exports.StartTagToken = exports.TagToken = exports.CharsToken = exports.CommentToken = exports.Token = undefined;
|
1464
|
-
|
1493
|
+
|
1465
1494
|
var _utils = __webpack_require__(5);
|
1466
|
-
|
1495
|
+
|
1467
1496
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
1468
|
-
|
1497
|
+
|
1469
1498
|
/**
|
1470
1499
|
* Token is a base class for all token types parsed. Note we don't actually
|
1471
1500
|
* use intheritance due to IE8's non-existent ES5 support.
|
1472
1501
|
*/
|
1473
|
-
|
1474
1502
|
var Token =
|
1475
1503
|
/**
|
1476
1504
|
* Constructor.
|
@@ -1480,17 +1508,17 @@ return /******/ (function(modules) { // webpackBootstrap
|
|
1480
1508
|
*/
|
1481
1509
|
exports.Token = function Token(type, length) {
|
1482
1510
|
_classCallCheck(this, Token);
|
1483
|
-
|
1511
|
+
|
1484
1512
|
this.type = type;
|
1485
1513
|
this.length = length;
|
1486
1514
|
this.text = '';
|
1487
1515
|
};
|
1488
|
-
|
1516
|
+
|
1489
1517
|
/**
|
1490
1518
|
* CommentToken represents comment tags.
|
1491
1519
|
*/
|
1492
|
-
|
1493
|
-
|
1520
|
+
|
1521
|
+
|
1494
1522
|
var CommentToken = exports.CommentToken = function () {
|
1495
1523
|
/**
|
1496
1524
|
* Constructor.
|
@@ -1498,55 +1526,53 @@ return /******/ (function(modules) { // webpackBootstrap
|
|
1498
1526
|
* @param {string} content The content of the comment
|
1499
1527
|
* @param {Number} length The length of the Token text.
|
1500
1528
|
*/
|
1501
|
-
|
1502
1529
|
function CommentToken(content, length) {
|
1503
1530
|
_classCallCheck(this, CommentToken);
|
1504
|
-
|
1531
|
+
|
1505
1532
|
this.type = 'comment';
|
1506
1533
|
this.length = length || (content ? content.length : 0);
|
1507
1534
|
this.text = '';
|
1508
1535
|
this.content = content;
|
1509
1536
|
}
|
1510
|
-
|
1537
|
+
|
1511
1538
|
CommentToken.prototype.toString = function toString() {
|
1512
1539
|
return '<!--' + this.content;
|
1513
1540
|
};
|
1514
|
-
|
1541
|
+
|
1515
1542
|
return CommentToken;
|
1516
1543
|
}();
|
1517
|
-
|
1544
|
+
|
1518
1545
|
/**
|
1519
1546
|
* CharsToken represents non-tag characters.
|
1520
1547
|
*/
|
1521
|
-
|
1522
|
-
|
1548
|
+
|
1549
|
+
|
1523
1550
|
var CharsToken = exports.CharsToken = function () {
|
1524
1551
|
/**
|
1525
1552
|
* Constructor.
|
1526
1553
|
*
|
1527
1554
|
* @param {Number} length The length of the Token text.
|
1528
1555
|
*/
|
1529
|
-
|
1530
1556
|
function CharsToken(length) {
|
1531
1557
|
_classCallCheck(this, CharsToken);
|
1532
|
-
|
1558
|
+
|
1533
1559
|
this.type = 'chars';
|
1534
1560
|
this.length = length;
|
1535
1561
|
this.text = '';
|
1536
1562
|
}
|
1537
|
-
|
1563
|
+
|
1538
1564
|
CharsToken.prototype.toString = function toString() {
|
1539
1565
|
return this.text;
|
1540
1566
|
};
|
1541
|
-
|
1567
|
+
|
1542
1568
|
return CharsToken;
|
1543
1569
|
}();
|
1544
|
-
|
1570
|
+
|
1545
1571
|
/**
|
1546
1572
|
* TagToken is a base class for all tag-based Tokens.
|
1547
1573
|
*/
|
1548
|
-
|
1549
|
-
|
1574
|
+
|
1575
|
+
|
1550
1576
|
var TagToken = exports.TagToken = function () {
|
1551
1577
|
/**
|
1552
1578
|
* Constructor.
|
@@ -1558,10 +1584,9 @@ return /******/ (function(modules) { // webpackBootstrap
|
|
1558
1584
|
* @param {Object} booleanAttrs If an entry has 'true' then the attribute
|
1559
1585
|
* is a boolean attribute
|
1560
1586
|
*/
|
1561
|
-
|
1562
1587
|
function TagToken(type, tagName, length, attrs, booleanAttrs) {
|
1563
1588
|
_classCallCheck(this, TagToken);
|
1564
|
-
|
1589
|
+
|
1565
1590
|
this.type = type;
|
1566
1591
|
this.length = length;
|
1567
1592
|
this.text = '';
|
@@ -1571,7 +1596,7 @@ return /******/ (function(modules) { // webpackBootstrap
|
|
1571
1596
|
this.unary = false;
|
1572
1597
|
this.html5Unary = false;
|
1573
1598
|
}
|
1574
|
-
|
1599
|
+
|
1575
1600
|
/**
|
1576
1601
|
* Formats the given token tag.
|
1577
1602
|
*
|
@@ -1579,48 +1604,48 @@ return /******/ (function(modules) { // webpackBootstrap
|
|
1579
1604
|
* @param {?string} [content=null] The content of the token.
|
1580
1605
|
* @returns {string} The formatted tag.
|
1581
1606
|
*/
|
1582
|
-
|
1583
|
-
|
1607
|
+
|
1608
|
+
|
1584
1609
|
TagToken.formatTag = function formatTag(tok) {
|
1585
|
-
var content = arguments.length
|
1586
|
-
|
1610
|
+
var content = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
|
1611
|
+
|
1587
1612
|
var str = '<' + tok.tagName;
|
1588
1613
|
for (var key in tok.attrs) {
|
1589
1614
|
if (tok.attrs.hasOwnProperty(key)) {
|
1590
1615
|
str += ' ' + key;
|
1591
|
-
|
1616
|
+
|
1592
1617
|
var val = tok.attrs[key];
|
1593
1618
|
if (typeof tok.booleanAttrs === 'undefined' || typeof tok.booleanAttrs[key] === 'undefined') {
|
1594
1619
|
str += '="' + (0, _utils.escapeQuotes)(val) + '"';
|
1595
1620
|
}
|
1596
1621
|
}
|
1597
1622
|
}
|
1598
|
-
|
1623
|
+
|
1599
1624
|
if (tok.rest) {
|
1600
1625
|
str += ' ' + tok.rest;
|
1601
1626
|
}
|
1602
|
-
|
1627
|
+
|
1603
1628
|
if (tok.unary && !tok.html5Unary) {
|
1604
1629
|
str += '/>';
|
1605
1630
|
} else {
|
1606
1631
|
str += '>';
|
1607
1632
|
}
|
1608
|
-
|
1633
|
+
|
1609
1634
|
if (content !== undefined && content !== null) {
|
1610
1635
|
str += content + '</' + tok.tagName + '>';
|
1611
1636
|
}
|
1612
|
-
|
1637
|
+
|
1613
1638
|
return str;
|
1614
1639
|
};
|
1615
|
-
|
1640
|
+
|
1616
1641
|
return TagToken;
|
1617
1642
|
}();
|
1618
|
-
|
1643
|
+
|
1619
1644
|
/**
|
1620
1645
|
* StartTagToken represents a start token.
|
1621
1646
|
*/
|
1622
|
-
|
1623
|
-
|
1647
|
+
|
1648
|
+
|
1624
1649
|
var StartTagToken = exports.StartTagToken = function () {
|
1625
1650
|
/**
|
1626
1651
|
* Constructor.
|
@@ -1633,10 +1658,9 @@ return /******/ (function(modules) { // webpackBootstrap
|
|
1633
1658
|
* @param {boolean} unary True if the tag is a unary tag
|
1634
1659
|
* @param {string} rest The rest of the content.
|
1635
1660
|
*/
|
1636
|
-
|
1637
1661
|
function StartTagToken(tagName, length, attrs, booleanAttrs, unary, rest) {
|
1638
1662
|
_classCallCheck(this, StartTagToken);
|
1639
|
-
|
1663
|
+
|
1640
1664
|
this.type = 'startTag';
|
1641
1665
|
this.length = length;
|
1642
1666
|
this.text = '';
|
@@ -1647,19 +1671,19 @@ return /******/ (function(modules) { // webpackBootstrap
|
|
1647
1671
|
this.unary = unary;
|
1648
1672
|
this.rest = rest;
|
1649
1673
|
}
|
1650
|
-
|
1674
|
+
|
1651
1675
|
StartTagToken.prototype.toString = function toString() {
|
1652
1676
|
return TagToken.formatTag(this);
|
1653
1677
|
};
|
1654
|
-
|
1678
|
+
|
1655
1679
|
return StartTagToken;
|
1656
1680
|
}();
|
1657
|
-
|
1681
|
+
|
1658
1682
|
/**
|
1659
1683
|
* AtomicTagToken represents an atomic tag.
|
1660
1684
|
*/
|
1661
|
-
|
1662
|
-
|
1685
|
+
|
1686
|
+
|
1663
1687
|
var AtomicTagToken = exports.AtomicTagToken = function () {
|
1664
1688
|
/**
|
1665
1689
|
* Constructor.
|
@@ -1671,10 +1695,9 @@ return /******/ (function(modules) { // webpackBootstrap
|
|
1671
1695
|
* is a boolean attribute
|
1672
1696
|
* @param {string} content The content of the tag.
|
1673
1697
|
*/
|
1674
|
-
|
1675
1698
|
function AtomicTagToken(tagName, length, attrs, booleanAttrs, content) {
|
1676
1699
|
_classCallCheck(this, AtomicTagToken);
|
1677
|
-
|
1700
|
+
|
1678
1701
|
this.type = 'atomicTag';
|
1679
1702
|
this.length = length;
|
1680
1703
|
this.text = '';
|
@@ -1685,19 +1708,19 @@ return /******/ (function(modules) { // webpackBootstrap
|
|
1685
1708
|
this.html5Unary = false;
|
1686
1709
|
this.content = content;
|
1687
1710
|
}
|
1688
|
-
|
1711
|
+
|
1689
1712
|
AtomicTagToken.prototype.toString = function toString() {
|
1690
1713
|
return TagToken.formatTag(this, this.content);
|
1691
1714
|
};
|
1692
|
-
|
1715
|
+
|
1693
1716
|
return AtomicTagToken;
|
1694
1717
|
}();
|
1695
|
-
|
1718
|
+
|
1696
1719
|
/**
|
1697
1720
|
* EndTagToken represents an end tag.
|
1698
1721
|
*/
|
1699
|
-
|
1700
|
-
|
1722
|
+
|
1723
|
+
|
1701
1724
|
var EndTagToken = exports.EndTagToken = function () {
|
1702
1725
|
/**
|
1703
1726
|
* Constructor.
|
@@ -1705,32 +1728,31 @@ return /******/ (function(modules) { // webpackBootstrap
|
|
1705
1728
|
* @param {string} tagName The name of the tag.
|
1706
1729
|
* @param {Number} length The length of the tag text.
|
1707
1730
|
*/
|
1708
|
-
|
1709
1731
|
function EndTagToken(tagName, length) {
|
1710
1732
|
_classCallCheck(this, EndTagToken);
|
1711
|
-
|
1733
|
+
|
1712
1734
|
this.type = 'endTag';
|
1713
1735
|
this.length = length;
|
1714
1736
|
this.text = '';
|
1715
1737
|
this.tagName = tagName;
|
1716
1738
|
}
|
1717
|
-
|
1739
|
+
|
1718
1740
|
EndTagToken.prototype.toString = function toString() {
|
1719
1741
|
return '</' + this.tagName + '>';
|
1720
1742
|
};
|
1721
|
-
|
1743
|
+
|
1722
1744
|
return EndTagToken;
|
1723
1745
|
}();
|
1724
|
-
|
1746
|
+
|
1725
1747
|
/***/ },
|
1726
1748
|
/* 5 */
|
1727
1749
|
/***/ function(module, exports) {
|
1728
|
-
|
1750
|
+
|
1729
1751
|
'use strict';
|
1730
|
-
|
1752
|
+
|
1731
1753
|
exports.__esModule = true;
|
1732
1754
|
exports.escapeQuotes = escapeQuotes;
|
1733
|
-
|
1755
|
+
|
1734
1756
|
/**
|
1735
1757
|
* Escape quotes in the given value.
|
1736
1758
|
*
|
@@ -1739,8 +1761,8 @@ return /******/ (function(modules) { // webpackBootstrap
|
|
1739
1761
|
* @returns {string}
|
1740
1762
|
*/
|
1741
1763
|
function escapeQuotes(value) {
|
1742
|
-
var defaultValue = arguments.length
|
1743
|
-
|
1764
|
+
var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
|
1765
|
+
|
1744
1766
|
// There's no lookback in JS, so /(^|[^\\])"/ only matches the first of two `"`s.
|
1745
1767
|
// Instead, just match anything before a double-quote and escape if it's not already escaped.
|
1746
1768
|
return !value ? defaultValue : value.replace(/([^"]*)"/g, function (_, prefix) {
|
@@ -1748,13 +1770,13 @@ return /******/ (function(modules) { // webpackBootstrap
|
|
1748
1770
|
);
|
1749
1771
|
});
|
1750
1772
|
}
|
1751
|
-
|
1773
|
+
|
1752
1774
|
/***/ },
|
1753
1775
|
/* 6 */
|
1754
1776
|
/***/ function(module, exports) {
|
1755
|
-
|
1777
|
+
|
1756
1778
|
'use strict';
|
1757
|
-
|
1779
|
+
|
1758
1780
|
exports.__esModule = true;
|
1759
1781
|
exports['default'] = fixedReadTokenFactory;
|
1760
1782
|
/**
|
@@ -1763,14 +1785,14 @@ return /******/ (function(modules) { // webpackBootstrap
|
|
1763
1785
|
* @type {RegExp}
|
1764
1786
|
*/
|
1765
1787
|
var EMPTY = /^(AREA|BASE|BASEFONT|BR|COL|FRAME|HR|IMG|INPUT|ISINDEX|LINK|META|PARAM|EMBED)$/i;
|
1766
|
-
|
1788
|
+
|
1767
1789
|
/**
|
1768
1790
|
* Elements that you can intentionally leave open (and which close themselves)
|
1769
1791
|
*
|
1770
1792
|
* @type {RegExp}
|
1771
1793
|
*/
|
1772
1794
|
var CLOSESELF = /^(COLGROUP|DD|DT|LI|OPTIONS|P|TD|TFOOT|TH|THEAD|TR)$/i;
|
1773
|
-
|
1795
|
+
|
1774
1796
|
/**
|
1775
1797
|
* Corrects a token.
|
1776
1798
|
*
|
@@ -1784,7 +1806,7 @@ return /******/ (function(modules) { // webpackBootstrap
|
|
1784
1806
|
}
|
1785
1807
|
return tok;
|
1786
1808
|
}
|
1787
|
-
|
1809
|
+
|
1788
1810
|
/**
|
1789
1811
|
* Peeks at the next token in the parser.
|
1790
1812
|
*
|
@@ -1798,7 +1820,7 @@ return /******/ (function(modules) { // webpackBootstrap
|
|
1798
1820
|
parser.stream = tmp;
|
1799
1821
|
return tok;
|
1800
1822
|
}
|
1801
|
-
|
1823
|
+
|
1802
1824
|
/**
|
1803
1825
|
* Closes the last token.
|
1804
1826
|
*
|
@@ -1807,11 +1829,11 @@ return /******/ (function(modules) { // webpackBootstrap
|
|
1807
1829
|
*/
|
1808
1830
|
function closeLast(parser, stack) {
|
1809
1831
|
var tok = stack.pop();
|
1810
|
-
|
1832
|
+
|
1811
1833
|
// prepend close tag to stream.
|
1812
1834
|
parser.prepend('</' + tok.tagName + '>');
|
1813
1835
|
}
|
1814
|
-
|
1836
|
+
|
1815
1837
|
/**
|
1816
1838
|
* Create a new token stack.
|
1817
1839
|
*
|
@@ -1819,16 +1841,16 @@ return /******/ (function(modules) { // webpackBootstrap
|
|
1819
1841
|
*/
|
1820
1842
|
function newStack() {
|
1821
1843
|
var stack = [];
|
1822
|
-
|
1844
|
+
|
1823
1845
|
stack.last = function () {
|
1824
1846
|
return this[this.length - 1];
|
1825
1847
|
};
|
1826
|
-
|
1848
|
+
|
1827
1849
|
stack.lastTagNameEq = function (tagName) {
|
1828
1850
|
var last = this.last();
|
1829
1851
|
return last && last.tagName && last.tagName.toUpperCase() === tagName.toUpperCase();
|
1830
1852
|
};
|
1831
|
-
|
1853
|
+
|
1832
1854
|
stack.containsTagName = function (tagName) {
|
1833
1855
|
for (var i = 0, tok; tok = this[i]; i++) {
|
1834
1856
|
if (tok.tagName === tagName) {
|
@@ -1837,10 +1859,10 @@ return /******/ (function(modules) { // webpackBootstrap
|
|
1837
1859
|
}
|
1838
1860
|
return false;
|
1839
1861
|
};
|
1840
|
-
|
1862
|
+
|
1841
1863
|
return stack;
|
1842
1864
|
}
|
1843
|
-
|
1865
|
+
|
1844
1866
|
/**
|
1845
1867
|
* Return a readToken implementation that fixes input.
|
1846
1868
|
*
|
@@ -1853,11 +1875,11 @@ return /******/ (function(modules) { // webpackBootstrap
|
|
1853
1875
|
*/
|
1854
1876
|
function fixedReadTokenFactory(parser, options, readTokenImpl) {
|
1855
1877
|
var stack = newStack();
|
1856
|
-
|
1878
|
+
|
1857
1879
|
var handlers = {
|
1858
1880
|
startTag: function startTag(tok) {
|
1859
1881
|
var tagName = tok.tagName;
|
1860
|
-
|
1882
|
+
|
1861
1883
|
if (tagName.toUpperCase() === 'TR' && stack.lastTagNameEq('TABLE')) {
|
1862
1884
|
parser.prepend('<TBODY>');
|
1863
1885
|
prepareNextToken();
|
@@ -1888,20 +1910,20 @@ return /******/ (function(modules) { // webpackBootstrap
|
|
1888
1910
|
}
|
1889
1911
|
}
|
1890
1912
|
};
|
1891
|
-
|
1913
|
+
|
1892
1914
|
function prepareNextToken() {
|
1893
1915
|
var tok = peekToken(parser, readTokenImpl);
|
1894
1916
|
if (tok && handlers[tok.type]) {
|
1895
1917
|
handlers[tok.type](tok);
|
1896
1918
|
}
|
1897
1919
|
}
|
1898
|
-
|
1920
|
+
|
1899
1921
|
return function fixedReadToken() {
|
1900
1922
|
prepareNextToken();
|
1901
1923
|
return correct(readTokenImpl());
|
1902
1924
|
};
|
1903
1925
|
}
|
1904
|
-
|
1926
|
+
|
1905
1927
|
/***/ }
|
1906
1928
|
/******/ ])
|
1907
1929
|
});
|
@@ -1912,11 +1934,11 @@ return /******/ (function(modules) { // webpackBootstrap
|
|
1912
1934
|
/***/ function(module, exports) {
|
1913
1935
|
|
1914
1936
|
'use strict';
|
1915
|
-
|
1937
|
+
|
1916
1938
|
exports.__esModule = true;
|
1917
|
-
|
1918
|
-
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj; };
|
1919
|
-
|
1939
|
+
|
1940
|
+
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
|
1941
|
+
|
1920
1942
|
exports.existy = existy;
|
1921
1943
|
exports.isFunction = isFunction;
|
1922
1944
|
exports.each = each;
|
@@ -1936,7 +1958,7 @@ return /******/ (function(modules) { // webpackBootstrap
|
|
1936
1958
|
function existy(thing) {
|
1937
1959
|
return thing !== void 0 && thing !== null;
|
1938
1960
|
}
|
1939
|
-
|
1961
|
+
|
1940
1962
|
/**
|
1941
1963
|
* Is this a function?
|
1942
1964
|
*
|
@@ -1946,7 +1968,7 @@ return /******/ (function(modules) { // webpackBootstrap
|
|
1946
1968
|
function isFunction(x) {
|
1947
1969
|
return 'function' === typeof x;
|
1948
1970
|
}
|
1949
|
-
|
1971
|
+
|
1950
1972
|
/**
|
1951
1973
|
* Loop over each item in an array-like value.
|
1952
1974
|
*
|
@@ -1961,7 +1983,7 @@ return /******/ (function(modules) { // webpackBootstrap
|
|
1961
1983
|
fn.call(target, arr[i], i);
|
1962
1984
|
}
|
1963
1985
|
}
|
1964
|
-
|
1986
|
+
|
1965
1987
|
/**
|
1966
1988
|
* Loop over each key/value pair in a hash.
|
1967
1989
|
*
|
@@ -1976,7 +1998,7 @@ return /******/ (function(modules) { // webpackBootstrap
|
|
1976
1998
|
}
|
1977
1999
|
}
|
1978
2000
|
}
|
1979
|
-
|
2001
|
+
|
1980
2002
|
/**
|
1981
2003
|
* Set default options where some option was not specified.
|
1982
2004
|
*
|
@@ -1993,7 +2015,7 @@ return /******/ (function(modules) { // webpackBootstrap
|
|
1993
2015
|
});
|
1994
2016
|
return options;
|
1995
2017
|
}
|
1996
|
-
|
2018
|
+
|
1997
2019
|
/**
|
1998
2020
|
* Convert value (e.g., a NodeList) to an array.
|
1999
2021
|
*
|
@@ -2013,11 +2035,11 @@ return /******/ (function(modules) { // webpackBootstrap
|
|
2013
2035
|
v: ret
|
2014
2036
|
};
|
2015
2037
|
}();
|
2016
|
-
|
2038
|
+
|
2017
2039
|
if ((typeof _ret === 'undefined' ? 'undefined' : _typeof(_ret)) === "object") return _ret.v;
|
2018
2040
|
}
|
2019
2041
|
}
|
2020
|
-
|
2042
|
+
|
2021
2043
|
/**
|
2022
2044
|
* Get the last item in an array
|
2023
2045
|
*
|
@@ -2027,7 +2049,7 @@ return /******/ (function(modules) { // webpackBootstrap
|
|
2027
2049
|
function last(array) {
|
2028
2050
|
return array[array.length - 1];
|
2029
2051
|
}
|
2030
|
-
|
2052
|
+
|
2031
2053
|
/**
|
2032
2054
|
* Test if token is a script tag.
|
2033
2055
|
*
|
@@ -2036,9 +2058,9 @@ return /******/ (function(modules) { // webpackBootstrap
|
|
2036
2058
|
* @returns {boolean} True if the token is a script tag
|
2037
2059
|
*/
|
2038
2060
|
function isTag(tok, tag) {
|
2039
|
-
return !tok || !(tok.type === 'startTag' || tok.type === 'atomicTag') || !('tagName' in tok) ? !1 :
|
2061
|
+
return !tok || !(tok.type === 'startTag' || tok.type === 'atomicTag') || !('tagName' in tok) ? !1 : !!~tok.tagName.toLowerCase().indexOf(tag);
|
2040
2062
|
}
|
2041
|
-
|
2063
|
+
|
2042
2064
|
/**
|
2043
2065
|
* Test if token is a script tag.
|
2044
2066
|
*
|
@@ -2048,7 +2070,7 @@ return /******/ (function(modules) { // webpackBootstrap
|
|
2048
2070
|
function isScript(tok) {
|
2049
2071
|
return isTag(tok, 'script');
|
2050
2072
|
}
|
2051
|
-
|
2073
|
+
|
2052
2074
|
/**
|
2053
2075
|
* Test if token is a style tag.
|
2054
2076
|
*
|
@@ -2062,4 +2084,5 @@ return /******/ (function(modules) { // webpackBootstrap
|
|
2062
2084
|
/***/ }
|
2063
2085
|
/******/ ])
|
2064
2086
|
});
|
2065
|
-
;
|
2087
|
+
;
|
2088
|
+
//# sourceMappingURL=postscribe.js.map
|