bdy 1.12.8-dev → 1.12.8-dev-pipeline-run
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/distTs/package.json +1 -1
- package/package.json +1 -1
- package/distTs/bin/cli.js +0 -5
- package/distTs/src/agent/agent.js +0 -328
- package/distTs/src/agent/linux.js +0 -124
- package/distTs/src/agent/manager.js +0 -519
- package/distTs/src/agent/osx.js +0 -146
- package/distTs/src/agent/socket/client.js +0 -178
- package/distTs/src/agent/socket/tunnel.js +0 -237
- package/distTs/src/agent/socket.js +0 -242
- package/distTs/src/agent/system.js +0 -179
- package/distTs/src/agent/wait.js +0 -23
- package/distTs/src/agent/windows.js +0 -159
- package/distTs/src/agent.js +0 -302
- package/distTs/src/api/agent.js +0 -99
- package/distTs/src/api/buddy.js +0 -139
- package/distTs/src/api/socket.js +0 -159
- package/distTs/src/cfg.js +0 -234
- package/distTs/src/command/agent/disable.js +0 -27
- package/distTs/src/command/agent/enable.js +0 -27
- package/distTs/src/command/agent/install.js +0 -117
- package/distTs/src/command/agent/restart.js +0 -27
- package/distTs/src/command/agent/run.js +0 -19
- package/distTs/src/command/agent/start.js +0 -28
- package/distTs/src/command/agent/status.js +0 -34
- package/distTs/src/command/agent/stop.js +0 -28
- package/distTs/src/command/agent/target/disable.js +0 -27
- package/distTs/src/command/agent/target/enable.js +0 -27
- package/distTs/src/command/agent/target/status.js +0 -32
- package/distTs/src/command/agent/target.js +0 -15
- package/distTs/src/command/agent/tunnel/http.js +0 -43
- package/distTs/src/command/agent/tunnel/list.js +0 -27
- package/distTs/src/command/agent/tunnel/remove.js +0 -28
- package/distTs/src/command/agent/tunnel/start.js +0 -34
- package/distTs/src/command/agent/tunnel/status.js +0 -31
- package/distTs/src/command/agent/tunnel/tcp.js +0 -43
- package/distTs/src/command/agent/tunnel/tls.js +0 -43
- package/distTs/src/command/agent/tunnel.js +0 -23
- package/distTs/src/command/agent/uninstall.js +0 -44
- package/distTs/src/command/agent/update.js +0 -38
- package/distTs/src/command/agent/version.js +0 -21
- package/distTs/src/command/agent.js +0 -35
- package/distTs/src/command/config/add/http.js +0 -25
- package/distTs/src/command/config/add/tcp.js +0 -25
- package/distTs/src/command/config/add/tls.js +0 -25
- package/distTs/src/command/config/add.js +0 -15
- package/distTs/src/command/config/get/region.js +0 -15
- package/distTs/src/command/config/get/timeout.js +0 -15
- package/distTs/src/command/config/get/token.js +0 -15
- package/distTs/src/command/config/get/tunnel.js +0 -19
- package/distTs/src/command/config/get/tunnels.js +0 -15
- package/distTs/src/command/config/get/whitelist.js +0 -15
- package/distTs/src/command/config/get.js +0 -21
- package/distTs/src/command/config/remove/tunnel.js +0 -19
- package/distTs/src/command/config/remove.js +0 -11
- package/distTs/src/command/config/set/region.js +0 -17
- package/distTs/src/command/config/set/timeout.js +0 -17
- package/distTs/src/command/config/set/token.js +0 -16
- package/distTs/src/command/config/set/whitelist.js +0 -17
- package/distTs/src/command/config/set.js +0 -17
- package/distTs/src/command/config.js +0 -17
- package/distTs/src/command/http.js +0 -30
- package/distTs/src/command/pre.js +0 -49
- package/distTs/src/command/start.js +0 -28
- package/distTs/src/command/tcp.js +0 -30
- package/distTs/src/command/tls.js +0 -30
- package/distTs/src/command/tunnel/config.js +0 -17
- package/distTs/src/command/tunnel/http.js +0 -31
- package/distTs/src/command/tunnel/start.js +0 -28
- package/distTs/src/command/tunnel/tcp.js +0 -30
- package/distTs/src/command/tunnel/tls.js +0 -30
- package/distTs/src/command/tunnel.js +0 -19
- package/distTs/src/command/ut/upload.js +0 -108
- package/distTs/src/command/ut.js +0 -12
- package/distTs/src/command/version.js +0 -13
- package/distTs/src/command/vt/close.js +0 -27
- package/distTs/src/command/vt/compare/validation.js +0 -173
- package/distTs/src/command/vt/compare.js +0 -97
- package/distTs/src/command/vt/exec.js +0 -81
- package/distTs/src/command/vt/installBrowser.js +0 -20
- package/distTs/src/command/vt/scrap.js +0 -193
- package/distTs/src/command/vt/storybook.js +0 -92
- package/distTs/src/command/vt.js +0 -22
- package/distTs/src/format.js +0 -174
- package/distTs/src/index.js +0 -34
- package/distTs/src/input.js +0 -270
- package/distTs/src/logger.js +0 -95
- package/distTs/src/output/interactive/tunnel.js +0 -860
- package/distTs/src/output/noninteractive/agent/tunnels.js +0 -43
- package/distTs/src/output/noninteractive/config/tunnel.js +0 -65
- package/distTs/src/output/noninteractive/config/tunnels.js +0 -18
- package/distTs/src/output/noninteractive/tunnel.js +0 -59
- package/distTs/src/output.js +0 -143
- package/distTs/src/server/cert.js +0 -52
- package/distTs/src/server/http1.js +0 -75
- package/distTs/src/server/http2.js +0 -78
- package/distTs/src/server/sftp.js +0 -497
- package/distTs/src/server/ssh.js +0 -446
- package/distTs/src/server/tls.js +0 -41
- package/distTs/src/ssh/client.js +0 -197
- package/distTs/src/texts.js +0 -421
- package/distTs/src/tunnel/agent.js +0 -103
- package/distTs/src/tunnel/api/agent.js +0 -100
- package/distTs/src/tunnel/api/buddy.js +0 -141
- package/distTs/src/tunnel/cfg.js +0 -243
- package/distTs/src/tunnel/compression.js +0 -44
- package/distTs/src/tunnel/dns.js +0 -53
- package/distTs/src/tunnel/html/503.html +0 -338
- package/distTs/src/tunnel/html.js +0 -33
- package/distTs/src/tunnel/http/log.js +0 -218
- package/distTs/src/tunnel/http/serve.js +0 -133
- package/distTs/src/tunnel/http/stream.js +0 -34
- package/distTs/src/tunnel/http.js +0 -508
- package/distTs/src/tunnel/identification.js +0 -103
- package/distTs/src/tunnel/latency.js +0 -83
- package/distTs/src/tunnel/output/interactive/tunnel.js +0 -867
- package/distTs/src/tunnel/output/noninteractive/agent/tunnels.js +0 -45
- package/distTs/src/tunnel/output/noninteractive/config/tunnel.js +0 -67
- package/distTs/src/tunnel/output/noninteractive/config/tunnels.js +0 -20
- package/distTs/src/tunnel/output/noninteractive/tunnel.js +0 -61
- package/distTs/src/tunnel/server/cert.js +0 -54
- package/distTs/src/tunnel/server/http1.js +0 -80
- package/distTs/src/tunnel/server/http2.js +0 -84
- package/distTs/src/tunnel/server/sftp.js +0 -514
- package/distTs/src/tunnel/server/ssh.js +0 -464
- package/distTs/src/tunnel/server/tls.js +0 -47
- package/distTs/src/tunnel/ssh/client.js +0 -211
- package/distTs/src/tunnel/tcp.js +0 -113
- package/distTs/src/tunnel/tunnel.js +0 -1010
- package/distTs/src/tunnel.js +0 -656
- package/distTs/src/types/ciInfo.js +0 -10
- package/distTs/src/types/options.js +0 -2
- package/distTs/src/types/plugin.js +0 -2
- package/distTs/src/types/queue.js +0 -2
- package/distTs/src/types/requests.js +0 -2
- package/distTs/src/types/resources.js +0 -2
- package/distTs/src/types/schemas.js +0 -54
- package/distTs/src/types/scrape.js +0 -2
- package/distTs/src/types/snapshots.js +0 -2
- package/distTs/src/types/storybook.js +0 -2
- package/distTs/src/types/tunnel.js +0 -141
- package/distTs/src/unitTest/ci.js +0 -108
- package/distTs/src/unitTest/requests.js +0 -72
- package/distTs/src/utils.js +0 -378
- package/distTs/src/visualTest/browser.js +0 -39
- package/distTs/src/visualTest/ci.js +0 -241
- package/distTs/src/visualTest/context.js +0 -52
- package/distTs/src/visualTest/exec.js +0 -51
- package/distTs/src/visualTest/linkUtils.js +0 -21
- package/distTs/src/visualTest/queue.js +0 -43
- package/distTs/src/visualTest/requests.js +0 -365
- package/distTs/src/visualTest/resources.js +0 -259
- package/distTs/src/visualTest/server.js +0 -109
- package/distTs/src/visualTest/snapshots.js +0 -129
- package/distTs/src/visualTest/utils/parseDom.js +0 -238
- package/distTs/src/visualTest/validation.js +0 -18
|
@@ -1,238 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const SNAPSHOT = {
|
|
4
|
-
parseDom,
|
|
5
|
-
};
|
|
6
|
-
// @ts-expect-error
|
|
7
|
-
globalThis.SNAPSHOT = SNAPSHOT;
|
|
8
|
-
function parseDom(dom, enableJavaScript) {
|
|
9
|
-
const resources = new Set();
|
|
10
|
-
const documentType = getDoctype(dom);
|
|
11
|
-
const domClone = getDomClone(dom, resources, enableJavaScript);
|
|
12
|
-
return {
|
|
13
|
-
title: document.title,
|
|
14
|
-
html: documentType + domClone.documentElement.outerHTML,
|
|
15
|
-
resources: [...resources],
|
|
16
|
-
};
|
|
17
|
-
}
|
|
18
|
-
function getDoctype(dom) {
|
|
19
|
-
if (dom.doctype) {
|
|
20
|
-
const { name, publicId, systemId } = dom.doctype;
|
|
21
|
-
let legacySuffix = '';
|
|
22
|
-
if (publicId && systemId) {
|
|
23
|
-
legacySuffix = ` PUBLIC "${publicId}" "${systemId}"`;
|
|
24
|
-
}
|
|
25
|
-
else if (publicId) {
|
|
26
|
-
legacySuffix = ` PUBLIC "${publicId}"`;
|
|
27
|
-
}
|
|
28
|
-
else if (systemId) {
|
|
29
|
-
legacySuffix = ` SYSTEM "${systemId}"`;
|
|
30
|
-
}
|
|
31
|
-
return `<!DOCTYPE ${name}${legacySuffix}>`;
|
|
32
|
-
}
|
|
33
|
-
return '<!DOCTYPE html>';
|
|
34
|
-
}
|
|
35
|
-
function getDomClone(dom, resources, enableJavaScript) {
|
|
36
|
-
for (const element of dom.querySelectorAll('input,textarea,select,iframe,canvas,video,style')) {
|
|
37
|
-
if (!element.getAttribute('snapshot-element-id')) {
|
|
38
|
-
element.setAttribute('snapshot-element-id', randomId());
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
const clone = createClone(dom);
|
|
42
|
-
prepareInputElements(dom, clone);
|
|
43
|
-
prepareVideoElements(dom, clone, resources);
|
|
44
|
-
prepareIframeElements(dom, clone, resources, enableJavaScript);
|
|
45
|
-
if (!enableJavaScript) {
|
|
46
|
-
prepareCanvasElements(dom, clone, resources);
|
|
47
|
-
prepareStyleSheets(dom, clone);
|
|
48
|
-
prepareAdoptedStyleSheet(dom, clone, resources);
|
|
49
|
-
}
|
|
50
|
-
return clone;
|
|
51
|
-
}
|
|
52
|
-
function createClone(dom) {
|
|
53
|
-
const documentClone = dom.createDocumentFragment();
|
|
54
|
-
const clone = dom.documentElement.cloneNode(true);
|
|
55
|
-
documentClone.append(clone);
|
|
56
|
-
documentClone.documentElement = documentClone.firstChild;
|
|
57
|
-
documentClone.head = documentClone.querySelector('head') || undefined;
|
|
58
|
-
documentClone.body = documentClone.querySelector('body') || undefined;
|
|
59
|
-
return documentClone;
|
|
60
|
-
}
|
|
61
|
-
function randomId() {
|
|
62
|
-
return `${Math.random().toString(36).slice(2, 10)}`;
|
|
63
|
-
}
|
|
64
|
-
function prepareInputElements(dom, clone) {
|
|
65
|
-
for (const element of dom.querySelectorAll('input, textarea, select')) {
|
|
66
|
-
const inputId = element.getAttribute('snapshot-element-id');
|
|
67
|
-
const cloneElement = clone.querySelector(`[snapshot-element-id="${inputId}"]`);
|
|
68
|
-
switch (element.type) {
|
|
69
|
-
case 'checkbox':
|
|
70
|
-
case 'radio': {
|
|
71
|
-
if (element.checked) {
|
|
72
|
-
cloneElement.setAttribute('checked', '');
|
|
73
|
-
}
|
|
74
|
-
break;
|
|
75
|
-
}
|
|
76
|
-
case 'select-one': {
|
|
77
|
-
if (element.selectedIndex !== -1) {
|
|
78
|
-
cloneElement.options[element.selectedIndex].setAttribute('selected', 'true');
|
|
79
|
-
}
|
|
80
|
-
break;
|
|
81
|
-
}
|
|
82
|
-
case 'select-multiple': {
|
|
83
|
-
for (const option of element.selectedOptions) {
|
|
84
|
-
cloneElement.options[option.index].setAttribute('selected', 'true');
|
|
85
|
-
}
|
|
86
|
-
break;
|
|
87
|
-
}
|
|
88
|
-
case 'textarea': {
|
|
89
|
-
cloneElement.innerHTML = element.value;
|
|
90
|
-
break;
|
|
91
|
-
}
|
|
92
|
-
default: {
|
|
93
|
-
cloneElement.setAttribute('value', element.value);
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
function prepareVideoElements(dom, clone, resources) {
|
|
99
|
-
for (const element of dom.querySelectorAll('video')) {
|
|
100
|
-
if (!element.getAttribute('poster')) {
|
|
101
|
-
const videoId = element.getAttribute('snapshot-element-id');
|
|
102
|
-
const cloneElement = clone.querySelector(`[snapshot-element-id="${videoId}"]`);
|
|
103
|
-
const canvas = document.createElement('canvas');
|
|
104
|
-
const width = element.videoWidth;
|
|
105
|
-
const height = element.videoHeight;
|
|
106
|
-
let data;
|
|
107
|
-
canvas.width = width;
|
|
108
|
-
canvas.height = height;
|
|
109
|
-
canvas.getContext('2d')?.drawImage(element, 0, 0, width, height);
|
|
110
|
-
try {
|
|
111
|
-
data = canvas.toDataURL();
|
|
112
|
-
}
|
|
113
|
-
catch (error) {
|
|
114
|
-
console.log('Get video poster error', error);
|
|
115
|
-
}
|
|
116
|
-
if (data && data !== 'data:,') {
|
|
117
|
-
const resource = resourceFromDataURL(videoId, data);
|
|
118
|
-
resources.add(resource);
|
|
119
|
-
cloneElement.setAttribute('snapshot-poster-url', resource.url);
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
function resourceFromDataURL(elementId, data) {
|
|
125
|
-
const [meta, body] = data.split(',');
|
|
126
|
-
const [, contentTypeWithBase] = meta.split(':');
|
|
127
|
-
const [contentType] = contentTypeWithBase.split(';');
|
|
128
|
-
const [, extension] = contentType.split('/');
|
|
129
|
-
const path = `/_resource_/${elementId}.${extension}`;
|
|
130
|
-
const url = new URL(path, document.URL).toString();
|
|
131
|
-
return { url, body, headers: { 'content-type': contentType } };
|
|
132
|
-
}
|
|
133
|
-
function prepareIframeElements(dom, clone, resources, enableJavaScript) {
|
|
134
|
-
for (const iframe of dom.querySelectorAll('iframe')) {
|
|
135
|
-
const iframeId = iframe.getAttribute('snapshot-element-id');
|
|
136
|
-
const cloneElement = clone.querySelector(`[snapshot-element-id="${iframeId}"]`);
|
|
137
|
-
const isCreatedWithJs = (!iframe.src || iframe.src.startsWith('javascript:')) && !iframe.srcdoc;
|
|
138
|
-
const inHead = clone.head?.contains(cloneElement);
|
|
139
|
-
if ((isCreatedWithJs && !enableJavaScript) || inHead) {
|
|
140
|
-
cloneElement.remove();
|
|
141
|
-
}
|
|
142
|
-
else if (iframe.contentDocument?.documentElement) {
|
|
143
|
-
if (enableJavaScript && isCreatedWithJs) {
|
|
144
|
-
continue;
|
|
145
|
-
}
|
|
146
|
-
if (!isCreatedWithJs &&
|
|
147
|
-
!iframe.contentWindow?.performance.timing.loadEventEnd) {
|
|
148
|
-
continue;
|
|
149
|
-
}
|
|
150
|
-
const documentType = getDoctype(iframe.contentDocument);
|
|
151
|
-
const domClone = getDomClone(iframe.contentDocument, resources, enableJavaScript);
|
|
152
|
-
addBaseURI(domClone);
|
|
153
|
-
cloneElement.setAttribute('srcdoc', documentType + domClone.documentElement.outerHTML);
|
|
154
|
-
cloneElement.removeAttribute('src');
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
function addBaseURI(dom) {
|
|
159
|
-
if (new URL(dom.baseURI).hostname) {
|
|
160
|
-
const base = document.createElement('base');
|
|
161
|
-
base.setAttribute('href', dom.baseURI);
|
|
162
|
-
dom.querySelector('head')?.append(base);
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
function prepareCanvasElements(dom, clone, resources) {
|
|
166
|
-
for (const canvas of dom.querySelectorAll('canvas')) {
|
|
167
|
-
const data = canvas.toDataURL();
|
|
168
|
-
if (data && data !== 'data:,') {
|
|
169
|
-
const canvasId = canvas.getAttribute('snapshot-element-id');
|
|
170
|
-
const cloneElement = clone.querySelector(`[snapshot-element-id="${canvasId}"]`);
|
|
171
|
-
const resource = resourceFromDataURL(canvasId, data);
|
|
172
|
-
resources.add(resource);
|
|
173
|
-
const img = document.createElement('img');
|
|
174
|
-
img.setAttribute('snapshot-image-url', resource.url);
|
|
175
|
-
for (const { name, value } of canvas.attributes) {
|
|
176
|
-
img.setAttribute(name, value);
|
|
177
|
-
}
|
|
178
|
-
cloneElement.before(img);
|
|
179
|
-
cloneElement.remove();
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
}
|
|
183
|
-
function prepareStyleSheets(dom, clone) {
|
|
184
|
-
for (const styleSheet of dom.styleSheets) {
|
|
185
|
-
if (!styleSheet.href && styleSheet.cssRules && styleSheet.ownerNode) {
|
|
186
|
-
const styleId = styleSheet.ownerNode.getAttribute('snapshot-element-id');
|
|
187
|
-
const cloneElement = clone.querySelector(`[snapshot-element-id="${styleId}"]`);
|
|
188
|
-
const cloneElementStyleSheet = styleSheetFromNode(cloneElement);
|
|
189
|
-
if (areStyleSheetsDifferent(styleSheet, cloneElementStyleSheet)) {
|
|
190
|
-
const style = document.createElement('style');
|
|
191
|
-
style.setAttribute('snapshot-element-id', styleId);
|
|
192
|
-
style.innerHTML = [...styleSheet.cssRules]
|
|
193
|
-
.map((cssRule) => cssRule.cssText)
|
|
194
|
-
.join('\n');
|
|
195
|
-
cloneElement.before(style, cloneElement);
|
|
196
|
-
cloneElement.remove();
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
}
|
|
200
|
-
}
|
|
201
|
-
function styleSheetFromNode(node) {
|
|
202
|
-
const temporaryStyleElement = node.cloneNode();
|
|
203
|
-
temporaryStyleElement.innerHTML = node.innerHTML;
|
|
204
|
-
const temporaryDocument = document.cloneNode();
|
|
205
|
-
temporaryDocument.append(temporaryStyleElement);
|
|
206
|
-
const styleSheet = temporaryStyleElement.sheet;
|
|
207
|
-
temporaryStyleElement.remove();
|
|
208
|
-
return styleSheet;
|
|
209
|
-
}
|
|
210
|
-
function areStyleSheetsDifferent(styleSheet, styleSheetClone) {
|
|
211
|
-
for (const index in styleSheet.cssRules) {
|
|
212
|
-
const ruleA = styleSheet.cssRules[index].cssText;
|
|
213
|
-
const ruleB = styleSheetClone.cssRules[index]?.cssText;
|
|
214
|
-
if (ruleA !== ruleB) {
|
|
215
|
-
return true;
|
|
216
|
-
}
|
|
217
|
-
}
|
|
218
|
-
return false;
|
|
219
|
-
}
|
|
220
|
-
function prepareAdoptedStyleSheet(dom, clone, resources) {
|
|
221
|
-
for (const adoptedStyleSheet of dom.adoptedStyleSheets) {
|
|
222
|
-
const link = document.createElement('link');
|
|
223
|
-
const text = [...adoptedStyleSheet.cssRules]
|
|
224
|
-
.map((cssRule) => cssRule.cssText)
|
|
225
|
-
.join('\n');
|
|
226
|
-
link.setAttribute('rel', 'stylesheet');
|
|
227
|
-
const resource = resourceFromText(text);
|
|
228
|
-
link.setAttribute('snapshot-css-url', resource.url);
|
|
229
|
-
resources.add(resource);
|
|
230
|
-
clone.body?.prepend(link);
|
|
231
|
-
}
|
|
232
|
-
}
|
|
233
|
-
function resourceFromText(text) {
|
|
234
|
-
const id = randomId();
|
|
235
|
-
const path = `/_resource_/${id}.css`;
|
|
236
|
-
const url = new URL(path, document.URL).toString();
|
|
237
|
-
return { url, body: text, headers: { 'content-type': 'text/css' } };
|
|
238
|
-
}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.checkToken = checkToken;
|
|
4
|
-
exports.checkBuildId = checkBuildId;
|
|
5
|
-
exports.checkParallel = checkParallel;
|
|
6
|
-
const context_1 = require("./context");
|
|
7
|
-
function checkToken() {
|
|
8
|
-
return !!context_1.token;
|
|
9
|
-
}
|
|
10
|
-
function checkBuildId() {
|
|
11
|
-
return !!process.env.SNAPSHOTS_BUILD_ID;
|
|
12
|
-
}
|
|
13
|
-
function checkParallel() {
|
|
14
|
-
if (context_1.parallel) {
|
|
15
|
-
return checkBuildId();
|
|
16
|
-
}
|
|
17
|
-
return true;
|
|
18
|
-
}
|