dmencu 2.0.2-alpha → 2.0.3-alpha
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.
- package/dist/client/client/client.js +1 -1
- package/dist/client/server/types-dmencu.d.ts +0 -1
- package/dist/client/server/types-dmencu.js +1 -1
- package/dist/client/unlogged/abrir-formulario.js +1 -1
- package/dist/client/unlogged/tipos.d.ts +1 -0
- package/dist/client/unlogged/tipos.js +1 -1
- package/dist/server/server/procedures-dmencu.js +1 -1
- package/dist/server/server/types-dmencu.d.ts +0 -1
- package/dist/server/server/types-dmencu.js +1 -1
- package/dist/server/unlogged/tipos.d.ts +1 -0
- package/dist/server/unlogged/tipos.js +1 -1
- package/dist/unlogged/unlogged/abrir-formulario.d.ts +13 -0
- package/dist/unlogged/unlogged/abrir-formulario.js +109 -0
- package/dist/unlogged/unlogged/adapt.d.ts +0 -0
- package/dist/unlogged/unlogged/adapt.js +8 -0
- package/dist/unlogged/unlogged/bypass-formulario.d.ts +202 -0
- package/dist/unlogged/unlogged/bypass-formulario.js +1100 -0
- package/dist/unlogged/unlogged/redux-formulario.d.ts +349 -0
- package/dist/unlogged/unlogged/redux-formulario.js +318 -0
- package/dist/unlogged/unlogged/render-formulario.d.ts +86 -0
- package/dist/unlogged/unlogged/render-formulario.js +1692 -0
- package/dist/unlogged/unlogged/render-general.d.ts +127 -0
- package/dist/unlogged/unlogged/render-general.js +176 -0
- package/dist/unlogged/unlogged/server/types-dmencu.d.ts +0 -1
- package/dist/unlogged/unlogged/server/types-dmencu.js +1 -1
- package/dist/unlogged/unlogged/tipos.d.ts +487 -0
- package/dist/unlogged/unlogged/tipos.js +22 -0
- package/dist/unlogged/unlogged/unlogged.d.ts +1 -0
- package/dist/unlogged/unlogged/unlogged.js +180 -0
- package/package.json +1 -1
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
(function (factory) {
|
|
11
|
+
if (typeof module === "object" && typeof module.exports === "object") {
|
|
12
|
+
var v = factory(require, exports);
|
|
13
|
+
if (v !== undefined) module.exports = v;
|
|
14
|
+
}
|
|
15
|
+
else if (typeof define === "function" && define.amd) {
|
|
16
|
+
define(["require", "exports", "js-to-html", "./render-formulario", "./abrir-formulario"], factory);
|
|
17
|
+
}
|
|
18
|
+
})(function (require, exports) {
|
|
19
|
+
"use strict";
|
|
20
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
|
+
exports.awaitForCacheLayout = void 0;
|
|
22
|
+
const js_to_html_1 = require("js-to-html");
|
|
23
|
+
const render_formulario_1 = require("./render-formulario");
|
|
24
|
+
const abrir_formulario_1 = require("./abrir-formulario");
|
|
25
|
+
const ServiceWorkerAdmin = require("service-worker-admin");
|
|
26
|
+
function siExisteId(id, hacer) {
|
|
27
|
+
var elemento = document.getElementById(id);
|
|
28
|
+
if (elemento != null) {
|
|
29
|
+
hacer(elemento);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
function mostrarElementoId(id, mostrar) {
|
|
33
|
+
siExisteId(id, e => e.style.display = mostrar ? 'block' : 'none');
|
|
34
|
+
}
|
|
35
|
+
const URL_DM = 'campo';
|
|
36
|
+
var reloadWithoutHash = () => {
|
|
37
|
+
history.replaceState(null, '', `${location.origin + location.pathname}/../${URL_DM}`);
|
|
38
|
+
location.reload();
|
|
39
|
+
};
|
|
40
|
+
window.addEventListener('load', function () {
|
|
41
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
42
|
+
var layout = document.getElementById('total-layout');
|
|
43
|
+
if (!layout) {
|
|
44
|
+
console.log('no encuentro el DIV.total-layout');
|
|
45
|
+
yield myOwn.ready;
|
|
46
|
+
layout = document.getElementById('total-layout');
|
|
47
|
+
}
|
|
48
|
+
yield myOwn.ready;
|
|
49
|
+
if (location.pathname.endsWith('/salvar')) {
|
|
50
|
+
try {
|
|
51
|
+
for (let x in localStorage) {
|
|
52
|
+
console.log(localStorage[x]);
|
|
53
|
+
yield myOwn.ajax.dm_rescatar({ localStorageItem: localStorage[x], localStorageItemKey: x });
|
|
54
|
+
layout.append(js_to_html_1.html.p(`item "${x}" de localStogage guardado.`).create());
|
|
55
|
+
}
|
|
56
|
+
layout.append(js_to_html_1.html.p(`todos los items fueron salvados.`).create());
|
|
57
|
+
}
|
|
58
|
+
catch (err) {
|
|
59
|
+
layout.append(js_to_html_1.html.p(`se produjo un error al salvar los datos del dm.`).create());
|
|
60
|
+
}
|
|
61
|
+
try {
|
|
62
|
+
var registrations = yield navigator.serviceWorker.getRegistrations();
|
|
63
|
+
for (let registration of registrations) {
|
|
64
|
+
yield registration.unregister();
|
|
65
|
+
}
|
|
66
|
+
layout.append(js_to_html_1.html.p(`todos los sw fueron desinstalados.`).create());
|
|
67
|
+
}
|
|
68
|
+
catch (err) {
|
|
69
|
+
layout.append(js_to_html_1.html.p(`se produjo un error al desinstalar los sw.`).create());
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
layout.innerHTML = `
|
|
74
|
+
<span id="mini-console"></span>
|
|
75
|
+
<div id=nueva-version-instalada style="position:fixed; top:5px; z-index:9500; display:none">
|
|
76
|
+
<span>Hay una nueva versión instalada </span><button id=refrescar><span class=rotar>↻</span> refrescar</button>
|
|
77
|
+
</div>
|
|
78
|
+
<div id=instalado style="display:none">
|
|
79
|
+
<div id=main_layout></div>
|
|
80
|
+
</div>
|
|
81
|
+
<div id=instalando style="display:none; margin-top:30px">
|
|
82
|
+
<div id=volver-de-instalacion style="position:fixed; top:5px; z-index:9500;">
|
|
83
|
+
<span id=volver-de-instalacion-por-que></span>
|
|
84
|
+
<button id=volver-de-instalacion-como>volver</button>
|
|
85
|
+
</div>
|
|
86
|
+
<div id=archivos>
|
|
87
|
+
<h2>progreso instalacion</h2>
|
|
88
|
+
</div>
|
|
89
|
+
</div>
|
|
90
|
+
`;
|
|
91
|
+
if (location.pathname.endsWith(`/${URL_DM}`)) {
|
|
92
|
+
var startApp = () => __awaiter(this, void 0, void 0, function* () { });
|
|
93
|
+
var datosByPass = my.getLocalVar(abrir_formulario_1.GLOVAR_DATOSBYPASS);
|
|
94
|
+
if (datosByPass) {
|
|
95
|
+
startApp = () => __awaiter(this, void 0, void 0, function* () {
|
|
96
|
+
var version = yield swa.getSW('version');
|
|
97
|
+
myOwn.setLocalVar('app-cache-version', version);
|
|
98
|
+
//@ts-ignore existe
|
|
99
|
+
(0, abrir_formulario_1.cargarEstructura)(my.getLocalVar(abrir_formulario_1.GLOVAR_ESTRUCTURA));
|
|
100
|
+
(0, abrir_formulario_1.cargarHojaDeRuta)(Object.assign(Object.assign({}, datosByPass), { modoAlmacenamiento: 'local' }));
|
|
101
|
+
(0, render_formulario_1.desplegarFormularioActual)({ modoDemo: false });
|
|
102
|
+
my.menuName = URL_DM;
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
else {
|
|
106
|
+
startApp = () => __awaiter(this, void 0, void 0, function* () {
|
|
107
|
+
//@ts-ignore existe
|
|
108
|
+
(0, render_formulario_1.dmPantallaInicialSinCarga)();
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
var refrescarStatus = function (showScreen, newVersionAvaiable, installing) {
|
|
112
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
113
|
+
var buscandoActualizacion = location.href.endsWith('#inst=1');
|
|
114
|
+
document.getElementById('nueva-version-instalada').style.display = newVersionAvaiable == 'yes' ? '' : 'none';
|
|
115
|
+
document.getElementById('volver-de-instalacion').style.display = newVersionAvaiable == 'yes' ? 'none' : '';
|
|
116
|
+
if (showScreen == 'app' && !buscandoActualizacion) {
|
|
117
|
+
document.getElementById('instalado').style.display = '';
|
|
118
|
+
document.getElementById('instalando').style.display = 'none';
|
|
119
|
+
}
|
|
120
|
+
else {
|
|
121
|
+
document.getElementById('instalado').style.display = 'none';
|
|
122
|
+
document.getElementById('instalando').style.display = '';
|
|
123
|
+
}
|
|
124
|
+
});
|
|
125
|
+
};
|
|
126
|
+
var swa = new ServiceWorkerAdmin();
|
|
127
|
+
swa.installOrActivate({
|
|
128
|
+
onEachFile: (url, error) => __awaiter(this, void 0, void 0, function* () {
|
|
129
|
+
console.log('file: ', url);
|
|
130
|
+
document.getElementById('archivos').append(js_to_html_1.html.div(url).create());
|
|
131
|
+
}),
|
|
132
|
+
onInfoMessage: (m) => console.log('message: ', m),
|
|
133
|
+
onError: (err, context) => __awaiter(this, void 0, void 0, function* () {
|
|
134
|
+
console.log('error: ' + (context ? ` en (${context})` : ''), err);
|
|
135
|
+
console.log(context, err, 'error-console');
|
|
136
|
+
console.log('error al descargar cache', err.message);
|
|
137
|
+
if (context != 'initializing service-worker') {
|
|
138
|
+
var layout = yield exports.awaitForCacheLayout;
|
|
139
|
+
var cacheStatusElement = document.getElementById('cache-status');
|
|
140
|
+
if (!cacheStatusElement) {
|
|
141
|
+
cacheStatusElement = js_to_html_1.html.p({ id: 'cache-status' }).create();
|
|
142
|
+
layout.insertBefore(cacheStatusElement, layout.firstChild);
|
|
143
|
+
}
|
|
144
|
+
cacheStatusElement.classList.remove('warning');
|
|
145
|
+
cacheStatusElement.classList.remove('all-ok');
|
|
146
|
+
cacheStatusElement.classList.add('danger');
|
|
147
|
+
cacheStatusElement.textContent = 'error al descargar la aplicación. ' + err.message;
|
|
148
|
+
}
|
|
149
|
+
}),
|
|
150
|
+
onReadyToStart: startApp,
|
|
151
|
+
onStateChange: refrescarStatus
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
document.getElementById('refrescar').addEventListener('click', () => {
|
|
155
|
+
reloadWithoutHash();
|
|
156
|
+
});
|
|
157
|
+
document.getElementById('volver-de-instalacion-como').addEventListener('click', () => {
|
|
158
|
+
reloadWithoutHash();
|
|
159
|
+
});
|
|
160
|
+
}
|
|
161
|
+
});
|
|
162
|
+
});
|
|
163
|
+
exports.awaitForCacheLayout = function prepareLayoutForCache() {
|
|
164
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
165
|
+
yield new Promise(function (resolve, _reject) {
|
|
166
|
+
window.addEventListener('load', resolve);
|
|
167
|
+
});
|
|
168
|
+
var layout = (document.getElementById('cache-layout') || document.createElement('div'));
|
|
169
|
+
if (!layout.id) {
|
|
170
|
+
layout.id = 'cache-layout';
|
|
171
|
+
layout.appendChild(js_to_html_1.html.div({ id: 'app-versions' }).create());
|
|
172
|
+
layout.appendChild(js_to_html_1.html.div({ id: 'app-status' }).create());
|
|
173
|
+
document.body.appendChild(layout.appendChild(js_to_html_1.html.div({ id: 'cache-log' }).create()));
|
|
174
|
+
document.body.insertBefore(layout, document.body.firstChild);
|
|
175
|
+
}
|
|
176
|
+
return layout;
|
|
177
|
+
});
|
|
178
|
+
}();
|
|
179
|
+
});
|
|
180
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5sb2dnZWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdW5sb2dnZWQvdW5sb2dnZWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lBQUEsWUFBWSxDQUFDOzs7SUFDYiwyQ0FBaUM7SUFDakMsMkRBQTJGO0lBQzNGLHlEQUErRztJQUMvRyxNQUFNLGtCQUFrQixHQUFHLE9BQU8sQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0lBRTNELFNBQVMsVUFBVSxDQUFDLEVBQVUsRUFBRSxLQUFrQztRQUM5RCxJQUFJLFFBQVEsR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzNDLElBQUcsUUFBUSxJQUFFLElBQUksRUFBQyxDQUFDO1lBQ2YsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3BCLENBQUM7SUFDTCxDQUFDO0lBRUQsU0FBUyxpQkFBaUIsQ0FBQyxFQUFTLEVBQUUsT0FBZTtRQUNqRCxVQUFVLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQSxFQUFFLENBQUEsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUMsT0FBTyxDQUFBLENBQUMsQ0FBQSxPQUFPLENBQUEsQ0FBQyxDQUFBLE1BQU0sQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFDRCxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUM7SUFFdkIsSUFBSSxpQkFBaUIsR0FBRyxHQUFFLEVBQUU7UUFDeEIsT0FBTyxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsUUFBUSxDQUFDLE1BQU0sR0FBQyxRQUFRLENBQUMsUUFBUSxPQUFPLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDcEYsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFBO0lBQ3JCLENBQUMsQ0FBQTtJQUVELE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUU7O1lBQzVCLElBQUksTUFBTSxHQUFHLFFBQVEsQ0FBQyxjQUFjLENB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LE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUMsT0FBTyxDQUFDLENBQUM7WUFDNUMsQ0FBQyxDQUFDLENBQUM7WUFDSCxJQUFJLE1BQU0sR0FBQyxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsY0FBYyxDQUFDLElBQUUsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQ3BGLElBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFDLENBQUM7Z0JBQ1gsTUFBTSxDQUFDLEVBQUUsR0FBQyxjQUFjLENBQUM7Z0JBQ3pCLE1BQU0sQ0FBQyxXQUFXLENBQUMsaUJBQUksQ0FBQyxHQUFHLENBQUMsRUFBQyxFQUFFLEVBQUMsY0FBYyxFQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO2dCQUMzRCxNQUFNLENBQUMsV0FBVyxDQUFDLGlCQUFJLENBQUMsR0FBRyxDQUFDLEVBQUMsRUFBRSxFQUFDLFlBQVksRUFBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztnQkFDekQsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxpQkFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFDLEVBQUUsRUFBQyxXQUFXLEVBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDbkYsUUFBUSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUE7WUFDL0QsQ0FBQztZQUNELE9BQU8sTUFBTSxDQUFDO1FBQ2xCLENBQUM7S0FBQSxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcclxuaW1wb3J0IHtodG1sfSAgZnJvbSAnanMtdG8taHRtbCc7XHJcbmltcG9ydCB7IGRlc3BsZWdhckZvcm11bGFyaW9BY3R1YWwsIGRtUGFudGFsbGFJbmljaWFsU2luQ2FyZ2EgfSBmcm9tICcuL3JlbmRlci1mb3JtdWxhcmlvJztcclxuaW1wb3J0IHsgY2FyZ2FyRXN0cnVjdHVyYSwgY2FyZ2FySG9qYURlUnV0YSwgR0xPVkFSX0VTVFJVQ1RVUkEsIEdMT1ZBUl9EQVRPU0JZUEFTUyB9IGZyb20gJy4vYWJyaXItZm9ybXVsYXJpbyc7XHJcbmNvbnN0IFNlcnZpY2VXb3JrZXJBZG1pbiA9IHJlcXVpcmUoXCJzZXJ2aWNlLXdvcmtlci1hZG1pblwiKTtcclxuXHJcbmZ1bmN0aW9uIHNpRXhpc3RlSWQoaWQ6IHN0cmluZywgaGFjZXI6IChhcmcwOiBIVE1MRWxlbWVudCkgPT4gdm9pZCl7XHJcbiAgICB2YXIgZWxlbWVudG8gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCk7XHJcbiAgICBpZihlbGVtZW50byE9bnVsbCl7XHJcbiAgICAgICAgaGFjZXIoZWxlbWVudG8pO1xyXG4gICAgfVxyXG59XHJcblxyXG5mdW5jdGlvbiBtb3N0cmFyRWxlbWVudG9JZChpZDpzdHJpbmcsIG1vc3RyYXI6Ym9vbGVhbil7XHJcbiAgICBzaUV4aXN0ZUlkKGlkLCBlPT5lLnN0eWxlLmRpc3BsYXk9bW9zdHJhcj8nYmxvY2snOidub25lJyk7XHJcbn1cclxuY29uc3QgVVJMX0RNID0gJ2NhbXBvJztcclxuXHJcbnZhciByZWxvYWRXaXRob3V0SGFzaCA9ICgpPT57XHJcbiAgICBoaXN0b3J5LnJlcGxhY2VTdGF0ZShudWxsLCAnJywgYCR7bG9jYXRpb24ub3JpZ2luK2xvY2F0aW9uLnBhdGhuYW1lfS8uLi8ke1VSTF9ETX1gKTtcclxuICAgIGxvY2F0aW9uLnJlbG9hZCgpXHJcbn1cclxuXHJcbndpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgYXN5bmMgZnVuY3Rpb24oKXtcclxuICAgIHZhciBsYXlvdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG90YWwtbGF5b3V0JykhO1xyXG4gICAgaWYoIWxheW91dCl7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ25vIGVuY3VlbnRybyBlbCBESVYudG90YWwtbGF5b3V0JylcclxuICAgICAgICBhd2FpdCBteU93bi5yZWFkeTtcclxuICAgICAgICBsYXlvdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG90YWwtbGF5b3V0JykhO1xyXG4gICAgfVxyXG4gICAgYXdhaXQgbXlPd24ucmVhZHk7XHJcbiAgICBpZihsb2NhdGlvbi5wYXRobmFtZS5lbmRzV2l0aCgnL3NhbHZhcicpKXtcclxuICAgICAgICB0cnl7XHJcbiAgICAgICAgICAgIGZvciAobGV0IHggaW4gbG9jYWxTdG9yYWdlKXtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGxvY2FsU3RvcmFnZVt4XSk7XHJcbiAgICAgICAgICAgICAgICBhd2FpdCBteU93bi5hamF4LmRtX3Jlc2NhdGFyKHtsb2NhbFN0b3JhZ2VJdGVtOmxvY2FsU3RvcmFnZVt4XSwgbG9jYWxTdG9yYWdlSXRlbUtleTp4fSlcclxuICAgICAgICAgICAgICAgIGxheW91dC5hcHBlbmQoXHJcbiAgICAgICAgICAgICAgICAgICAgaHRtbC5wKGBpdGVtIFwiJHt4fVwiIGRlIGxvY2FsU3RvZ2FnZSBndWFyZGFkby5gKS5jcmVhdGUoKVxyXG4gICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGxheW91dC5hcHBlbmQoXHJcbiAgICAgICAgICAgICAgICBodG1sLnAoYHRvZG9zIGxvcyBpdGVtcyBmdWVyb24gc2FsdmFkb3MuYCkuY3JlYXRlKClcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgIH1jYXRjaChlcnIpe1xyXG4gICAgICAgICAgICBsYXlvdXQuYXBwZW5kKFxyXG4gICAgICAgICAgICAgICAgaHRtbC5wKGBzZSBwcm9kdWpvIHVuIGVycm9yIGFsIHNhbHZhciBsb3MgZGF0b3MgZGVsIGRtLmApLmNyZWF0ZSgpXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICB9XHJcbiAgICAgICAgdHJ5e1xyXG4gICAgICAgICAgICB2YXIgcmVnaXN0cmF0aW9ucyA9IGF3YWl0IG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLmdldFJlZ2lzdHJhdGlvbnMoKTtcclxuICAgICAgICAgICAgZm9yKGxldCByZWdpc3RyYXRpb24gb2YgcmVnaXN0cmF0aW9ucykge1xyXG4gICAgICAgICAgICAgICAgYXdhaXQgcmVnaXN0cmF0aW9uLnVucmVnaXN0ZXIoKVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGxheW91dC5hcHBlbmQoXHJcbiAgICAgICAgICAgICAgICBodG1sLnAoYHRvZG9zIGxvcyBzdyBmdWVyb24gZGVzaW5zdGFsYWRvcy5gKS5jcmVhdGUoKVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgfWNhdGNoKGVycil7XHJcbiAgICAgICAgICAgIGxheW91dC5hcHBlbmQoXHJcbiAgICAgICAgICAgICAgICBodG1sLnAoYHNlIHByb2R1am8gdW4gZXJyb3IgYWwgZGVzaW5zdGFsYXIgbG9zIHN3LmApLmNyZWF0ZSgpXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICB9XHJcbiAgICB9ZWxzZXtcclxuICAgICAgICBsYXlvdXQuaW5uZXJIVE1MPWBcclxuICAgICAgICAgICAgPHNwYW4gaWQ9XCJtaW5pLWNvbnNvbGVcIj48L3NwYW4+XHJcbiAgICAgICAgICAgIDxkaXYgaWQ9bnVldmEtdmVyc2lvbi1pbnN0YWxhZGEgc3R5bGU9XCJwb3NpdGlvbjpmaXhlZDsgdG9wOjVweDsgei1pbmRleDo5NTAwOyBkaXNwbGF5Om5vbmVcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPkhheSB1bmEgbnVldmEgdmVyc2nDs24gaW5zdGFsYWRhIDwvc3Bhbj48YnV0dG9uIGlkPXJlZnJlc2Nhcj48c3BhbiBjbGFzcz1yb3Rhcj7ihrs8L3NwYW4+IHJlZnJlc2NhcjwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBpZD1pbnN0YWxhZG8gc3R5bGU9XCJkaXNwbGF5Om5vbmVcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9bWFpbl9sYXlvdXQ+PC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGlkPWluc3RhbGFuZG8gc3R5bGU9XCJkaXNwbGF5Om5vbmU7IG1hcmdpbi10b3A6MzBweFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBpZD12b2x2ZXItZGUtaW5zdGFsYWNpb24gc3R5bGU9XCJwb3NpdGlvbjpmaXhlZDsgdG9wOjVweDsgei1pbmRleDo5NTAwO1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGlkPXZvbHZlci1kZS1pbnN0YWxhY2lvbi1wb3ItcXVlPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGlkPXZvbHZlci1kZS1pbnN0YWxhY2lvbi1jb21vPnZvbHZlcjwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGlkPWFyY2hpdm9zPlxyXG4gICAgICAgICAgICAgICAgICAgIDxoMj5wcm9ncmVzbyBpbnN0YWxhY2lvbjwvaDI+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgYDtcclxuICAgICAgICBpZihsb2NhdGlvbi5wYXRobmFtZS5lbmRzV2l0aChgLyR7VVJMX0RNfWApKXtcclxuICAgICAgICAgICAgdmFyIHN0YXJ0QXBwOigpPT5Qcm9taXNlPHZvaWQ+ID0gYXN5bmMgKCk9Pnt9O1xyXG4gICAgICAgICAgICB2YXIgZGF0b3NCeVBhc3MgPSBteS5nZXRMb2NhbFZhcihHTE9WQVJfREFUT1NCWVBBU1MpO1xyXG4gICAgICAgICAgICBpZihkYXRvc0J5UGFzcyl7XHJcbiAgICAgICAgICAgICAgICBzdGFydEFwcCA9IGFzeW5jICgpPT57XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIHZlcnNpb24gPSBhd2FpdCBzd2EuZ2V0U1coJ3ZlcnNpb24nKTtcclxuICAgICAgICAgICAgICAgICAgICBteU93bi5zZXRMb2NhbFZhcignYXBwLWNhY2hlLXZlcnNpb24nLCB2ZXJzaW9uKTtcclxuICAgICAgICAgICAgICAgICAgICAvL0B0cy1pZ25vcmUgZXhpc3RlIFxyXG4gICAgICAgICAgICAgICAgICAgIGNhcmdhckVzdHJ1Y3R1cmEobXkuZ2V0TG9jYWxWYXIoR0xPVkFSX0VTVFJVQ1RVUkEpKTtcclxuICAgICAgICAgICAgICAgICAgICBjYXJnYXJIb2phRGVSdXRhKHsgLi4uZGF0b3NCeVBhc3MsIG1vZG9BbG1hY2VuYW1pZW50bzogJ2xvY2FsJyB9KTtcclxuICAgICAgICAgICAgICAgICAgICBkZXNwbGVnYXJGb3JtdWxhcmlvQWN0dWFsKHttb2RvRGVtbzogZmFsc2V9KTtcclxuICAgICAgICAgICAgICAgICAgICBteS5tZW51TmFtZSA9IFVSTF9ETTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgICAgICBzdGFydEFwcCA9IGFzeW5jICgpPT57XHJcbiAgICAgICAgICAgICAgICAgICAgLy9AdHMtaWdub3JlIGV4aXN0ZSBcclxuICAgICAgICAgICAgICAgICAgICBkbVBhbnRhbGxhSW5pY2lhbFNpbkNhcmdhKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdmFyIHJlZnJlc2NhclN0YXR1cz1hc3luYyBmdW5jdGlvbihzaG93U2NyZWVuLCBuZXdWZXJzaW9uQXZhaWFibGUsIGluc3RhbGxpbmcpe1xyXG4gICAgICAgICAgICAgICAgdmFyIGJ1c2NhbmRvQWN0dWFsaXphY2lvbiA9IGxvY2F0aW9uLmhyZWYuZW5kc1dpdGgoJyNpbnN0PTEnKTtcclxuICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdudWV2YS12ZXJzaW9uLWluc3RhbGFkYScpIS5zdHlsZS5kaXNwbGF5PW5ld1ZlcnNpb25BdmFpYWJsZT09J3llcyc/Jyc6J25vbmUnO1xyXG4gICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3ZvbHZlci1kZS1pbnN0YWxhY2lvbicpIS5zdHlsZS5kaXNwbGF5PW5ld1ZlcnNpb25BdmFpYWJsZT09J3llcyc/J25vbmUnOicnO1xyXG4gICAgICAgICAgICAgICAgaWYoc2hvd1NjcmVlbj09J2FwcCcgJiYgIWJ1c2NhbmRvQWN0dWFsaXphY2lvbil7XHJcbiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2luc3RhbGFkbycpIS5zdHlsZS5kaXNwbGF5PScnO1xyXG4gICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnN0YWxhbmRvJykhLnN0eWxlLmRpc3BsYXk9J25vbmUnO1xyXG4gICAgICAgICAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2luc3RhbGFkbycpIS5zdHlsZS5kaXNwbGF5PSdub25lJztcclxuICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5zdGFsYW5kbycpIS5zdHlsZS5kaXNwbGF5PScnO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICB2YXIgc3dhID0gbmV3IFNlcnZpY2VXb3JrZXJBZG1pbigpO1xyXG4gICAgICAgICAgICBzd2EuaW5zdGFsbE9yQWN0aXZhdGUoe1xyXG4gICAgICAgICAgICAgICAgb25FYWNoRmlsZTogYXN5bmMgKHVybCwgZXJyb3IpPT57XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ2ZpbGU6ICcsdXJsKTtcclxuICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYXJjaGl2b3MnKSEuYXBwZW5kKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBodG1sLmRpdih1cmwpLmNyZWF0ZSgpXHJcbiAgICAgICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIG9uSW5mb01lc3NhZ2U6IChtKT0+Y29uc29sZS5sb2coJ21lc3NhZ2U6ICcsIG0pLFxyXG4gICAgICAgICAgICAgICAgb25FcnJvcjogYXN5bmMgKGVyciwgY29udGV4dCk9PntcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnZXJyb3I6ICcrKGNvbnRleHQ/YCBlbiAoJHtjb250ZXh0fSlgOicnKSwgZXJyKTtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhjb250ZXh0LCBlcnIsICdlcnJvci1jb25zb2xlJylcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnZXJyb3IgYWwgZGVzY2FyZ2FyIGNhY2hlJywgZXJyLm1lc3NhZ2UpXHJcbiAgICAgICAgICAgICAgICAgICAgaWYoY29udGV4dCE9J2luaXRpYWxpemluZyBzZXJ2aWNlLXdvcmtlcicpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgbGF5b3V0ID0gYXdhaXQgYXdhaXRGb3JDYWNoZUxheW91dDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNhY2hlU3RhdHVzRWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjYWNoZS1zdGF0dXMnKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYoIWNhY2hlU3RhdHVzRWxlbWVudCl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWNoZVN0YXR1c0VsZW1lbnQgPSBodG1sLnAoe2lkOidjYWNoZS1zdGF0dXMnfSkuY3JlYXRlKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXlvdXQuaW5zZXJ0QmVmb3JlKGNhY2hlU3RhdHVzRWxlbWVudCwgbGF5b3V0LmZpcnN0Q2hpbGQpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhY2hlU3RhdHVzRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKCd3YXJuaW5nJylcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVTdGF0dXNFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoJ2FsbC1vaycpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhY2hlU3RhdHVzRWxlbWVudC5jbGFzc0xpc3QuYWRkKCdkYW5nZXInKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYWNoZVN0YXR1c0VsZW1lbnQudGV4dENvbnRlbnQ9J2Vycm9yIGFsIGRlc2NhcmdhciBsYSBhcGxpY2FjacOzbi4gJyArIGVyci5tZXNzYWdlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBvblJlYWR5VG9TdGFydDpzdGFydEFwcCxcclxuICAgICAgICAgICAgICAgIG9uU3RhdGVDaGFuZ2U6cmVmcmVzY2FyU3RhdHVzXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVmcmVzY2FyJykhLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywoKT0+e1xyXG4gICAgICAgICAgICByZWxvYWRXaXRob3V0SGFzaCgpXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3ZvbHZlci1kZS1pbnN0YWxhY2lvbi1jb21vJykhLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywoKT0+e1xyXG4gICAgICAgICAgICByZWxvYWRXaXRob3V0SGFzaCgpXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbn0pXHJcblxyXG5leHBvcnQgdmFyIGF3YWl0Rm9yQ2FjaGVMYXlvdXQgPSBhc3luYyBmdW5jdGlvbiBwcmVwYXJlTGF5b3V0Rm9yQ2FjaGUoKXtcclxuICAgIGF3YWl0IG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIF9yZWplY3Qpe1xyXG4gICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJyxyZXNvbHZlKTtcclxuICAgIH0pO1xyXG4gICAgdmFyIGxheW91dD0oZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NhY2hlLWxheW91dCcpfHxkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKSk7XHJcbiAgICBpZighbGF5b3V0LmlkKXtcclxuICAgICAgICBsYXlvdXQuaWQ9J2NhY2hlLWxheW91dCc7XHJcbiAgICAgICAgbGF5b3V0LmFwcGVuZENoaWxkKGh0bWwuZGl2KHtpZDonYXBwLXZlcnNpb25zJ30pLmNyZWF0ZSgpKTtcclxuICAgICAgICBsYXlvdXQuYXBwZW5kQ2hpbGQoaHRtbC5kaXYoe2lkOidhcHAtc3RhdHVzJ30pLmNyZWF0ZSgpKTtcclxuICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGxheW91dC5hcHBlbmRDaGlsZChodG1sLmRpdih7aWQ6J2NhY2hlLWxvZyd9KS5jcmVhdGUoKSkpO1xyXG4gICAgICAgIGRvY3VtZW50LmJvZHkuaW5zZXJ0QmVmb3JlKGxheW91dCxkb2N1bWVudC5ib2R5LmZpcnN0Q2hpbGQpXHJcbiAgICB9XHJcbiAgICByZXR1cm4gbGF5b3V0O1xyXG59KCk7Il19
|
package/package.json
CHANGED