patchright-core 1.52.5 → 1.55.0
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/ThirdPartyNotices.txt +65 -123
- package/bin/reinstall_chrome_beta_mac.sh +1 -1
- package/bin/reinstall_chrome_stable_mac.sh +1 -1
- package/bin/reinstall_msedge_beta_mac.sh +1 -1
- package/bin/reinstall_msedge_dev_mac.sh +1 -1
- package/bin/reinstall_msedge_stable_mac.sh +1 -1
- package/browsers.json +14 -14
- package/index.js +1 -1
- package/lib/androidServerImpl.js +4 -2
- package/lib/browserServerImpl.js +47 -12
- package/lib/cli/program.js +116 -50
- package/lib/cli/programWithTestStub.js +1 -1
- package/lib/client/android.js +30 -34
- package/lib/client/browser.js +54 -17
- package/lib/client/browserContext.js +67 -71
- package/lib/client/browserType.js +25 -34
- package/lib/client/channelOwner.js +20 -24
- package/lib/client/connection.js +6 -10
- package/lib/client/electron.js +8 -3
- package/lib/client/elementHandle.js +18 -21
- package/lib/client/fetch.js +5 -3
- package/lib/client/frame.js +54 -32
- package/lib/client/input.js +3 -1
- package/lib/client/jsHandle.js +4 -0
- package/lib/client/localUtils.js +0 -1
- package/lib/client/locator.js +30 -26
- package/lib/client/network.js +5 -12
- package/lib/client/page.js +32 -32
- package/lib/client/playwright.js +6 -16
- package/lib/client/selectors.js +18 -38
- package/lib/client/timeoutSettings.js +12 -8
- package/lib/client/tracing.js +24 -20
- package/lib/client/waiter.js +2 -2
- package/lib/client/webSocket.js +4 -22
- package/lib/generated/bindingsControllerSource.js +28 -0
- package/lib/generated/clockSource.js +1 -1
- package/lib/generated/injectedScriptSource.js +1 -1
- package/lib/generated/pollingRecorderSource.js +1 -1
- package/lib/generated/storageScriptSource.js +28 -0
- package/lib/generated/utilityScriptSource.js +1 -1
- package/lib/generated/webSocketMockSource.js +12 -50
- package/lib/inProcessFactory.js +9 -6
- package/lib/outofprocess.js +0 -2
- package/lib/protocol/validator.js +421 -345
- package/lib/protocol/validatorPrimitives.js +18 -4
- package/lib/remote/playwrightConnection.js +29 -166
- package/lib/remote/playwrightServer.js +233 -35
- package/lib/server/android/android.js +97 -83
- package/lib/server/android/backendAdb.js +0 -2
- package/lib/server/bidi/bidiBrowser.js +139 -73
- package/lib/server/bidi/bidiChromium.js +23 -22
- package/lib/server/bidi/bidiExecutionContext.js +2 -1
- package/lib/server/bidi/bidiFirefox.js +17 -14
- package/lib/server/bidi/bidiInput.js +22 -22
- package/lib/server/bidi/bidiNetworkManager.js +8 -11
- package/lib/server/bidi/bidiPage.js +42 -86
- package/lib/server/bidi/third_party/bidiProtocol.js +5 -133
- package/lib/server/bidi/third_party/bidiProtocolCore.js +179 -0
- package/lib/server/{dispatchers/selectorsDispatcher.js → bidi/third_party/bidiProtocolPermissions.js} +20 -18
- package/lib/server/browser.js +30 -21
- package/lib/server/browserContext.js +203 -165
- package/lib/server/browserType.js +109 -107
- package/lib/server/chromium/chromium.js +84 -69
- package/lib/server/chromium/chromiumSwitches.js +13 -20
- package/lib/server/chromium/crBrowser.js +74 -40
- package/lib/server/chromium/crConnection.js +8 -9
- package/lib/server/chromium/crCoverage.js +11 -8
- package/lib/server/chromium/crDragDrop.js +25 -20
- package/lib/server/chromium/crExecutionContext.js +2 -1
- package/lib/server/chromium/crInput.js +32 -29
- package/lib/server/chromium/crNetworkManager.js +43 -31
- package/lib/server/chromium/crPage.js +98 -72
- package/lib/server/chromium/crServiceWorker.js +13 -18
- package/lib/server/chromium/videoRecorder.js +10 -18
- package/lib/server/clock.js +51 -39
- package/lib/server/codegen/csharp.js +10 -5
- package/lib/server/codegen/java.js +1 -1
- package/lib/server/codegen/javascript.js +1 -1
- package/lib/server/codegen/jsonl.js +2 -1
- package/lib/server/codegen/language.js +22 -1
- package/lib/server/codegen/languages.js +4 -4
- package/lib/server/codegen/python.js +1 -1
- package/lib/server/cookieStore.js +3 -1
- package/lib/server/debugController.js +105 -71
- package/lib/server/debugger.js +6 -23
- package/lib/server/deviceDescriptorsSource.json +237 -127
- package/lib/server/dialog.js +50 -6
- package/lib/server/dispatchers/androidDispatcher.js +77 -62
- package/lib/server/dispatchers/artifactDispatcher.js +18 -18
- package/lib/server/dispatchers/browserContextDispatcher.js +141 -91
- package/lib/server/dispatchers/browserDispatcher.js +55 -88
- package/lib/server/dispatchers/browserTypeDispatcher.js +18 -9
- package/lib/server/dispatchers/cdpSessionDispatcher.js +4 -4
- package/lib/server/dispatchers/debugControllerDispatcher.js +12 -21
- package/lib/server/dispatchers/dialogDispatcher.js +4 -4
- package/lib/server/dispatchers/dispatcher.js +78 -53
- package/lib/server/dispatchers/electronDispatcher.js +19 -20
- package/lib/server/dispatchers/elementHandlerDispatcher.js +83 -93
- package/lib/server/dispatchers/frameDispatcher.js +98 -101
- package/lib/server/dispatchers/jsHandleDispatcher.js +21 -16
- package/lib/server/dispatchers/jsonPipeDispatcher.js +4 -4
- package/lib/server/dispatchers/localUtilsDispatcher.js +53 -59
- package/lib/server/dispatchers/networkDispatchers.js +41 -35
- package/lib/server/dispatchers/pageDispatcher.js +156 -107
- package/lib/server/dispatchers/playwrightDispatcher.js +37 -25
- package/lib/server/dispatchers/streamDispatcher.js +15 -8
- package/lib/server/dispatchers/tracingDispatcher.js +22 -13
- package/lib/server/dispatchers/webSocketRouteDispatcher.js +46 -35
- package/lib/server/dispatchers/writableStreamDispatcher.js +16 -10
- package/lib/server/dom.js +198 -266
- package/lib/server/download.js +3 -3
- package/lib/server/electron/electron.js +96 -103
- package/lib/server/electron/loader.js +1 -1
- package/lib/server/fetch.js +22 -41
- package/lib/server/fileUploadUtils.js +1 -1
- package/lib/server/firefox/ffBrowser.js +79 -55
- package/lib/server/firefox/ffExecutionContext.js +2 -1
- package/lib/server/firefox/ffInput.js +23 -23
- package/lib/server/firefox/ffNetworkManager.js +8 -6
- package/lib/server/firefox/ffPage.js +39 -36
- package/lib/server/firefox/firefox.js +9 -10
- package/lib/server/frameSelectors.js +63 -20
- package/lib/server/frames.js +495 -555
- package/lib/server/har/harRecorder.js +1 -1
- package/lib/server/har/harTracer.js +4 -2
- package/lib/server/helper.js +3 -7
- package/lib/server/index.js +0 -3
- package/lib/server/input.js +47 -54
- package/lib/server/instrumentation.js +8 -14
- package/lib/server/javascript.js +8 -16
- package/lib/server/launchApp.js +48 -30
- package/lib/server/localUtils.js +45 -38
- package/lib/server/network.js +44 -10
- package/lib/server/page.js +232 -177
- package/lib/server/pageBinding.js +6 -7
- package/lib/server/playwright.js +4 -14
- package/lib/server/progress.js +57 -49
- package/lib/server/recorder/recorderApp.js +298 -95
- package/lib/server/recorder/recorderRunner.js +23 -24
- package/lib/server/recorder/recorderSignalProcessor.js +83 -0
- package/lib/server/recorder/recorderUtils.js +67 -10
- package/lib/server/recorder.js +284 -146
- package/lib/server/registry/index.js +83 -48
- package/lib/server/registry/nativeDeps.js +175 -0
- package/lib/server/registry/oopDownloadBrowserMain.js +1 -1
- package/lib/server/screenshotter.js +84 -83
- package/lib/server/selectors.js +12 -12
- package/lib/server/socksClientCertificatesInterceptor.js +198 -136
- package/lib/server/trace/recorder/snapshotter.js +12 -19
- package/lib/server/trace/recorder/tracing.js +36 -27
- package/lib/server/trace/viewer/traceViewer.js +11 -20
- package/lib/server/transport.js +20 -22
- package/lib/server/utils/comparators.js +2 -2
- package/lib/server/utils/debug.js +3 -8
- package/lib/server/utils/debugLogger.js +8 -0
- package/lib/server/utils/hostPlatform.js +3 -1
- package/lib/server/utils/network.js +35 -25
- package/lib/server/utils/nodePlatform.js +1 -1
- package/lib/server/utils/processLauncher.js +4 -1
- package/lib/server/utils/wsServer.js +11 -17
- package/lib/server/webkit/webkit.js +5 -2
- package/lib/server/webkit/wkBrowser.js +51 -28
- package/lib/server/webkit/wkExecutionContext.js +2 -1
- package/lib/server/webkit/wkInput.js +25 -25
- package/lib/server/webkit/wkInterceptableRequest.js +1 -1
- package/lib/server/webkit/wkPage.js +80 -59
- package/lib/server/webkit/wkProvisionalPage.js +1 -1
- package/lib/server/webkit/wkWorkers.js +7 -7
- package/lib/utils/isomorphic/ariaSnapshot.js +13 -7
- package/lib/utils/isomorphic/cssParser.js +1 -2
- package/lib/utils/isomorphic/locatorGenerators.js +18 -0
- package/lib/utils/isomorphic/manualPromise.js +1 -2
- package/lib/utils/isomorphic/mimeType.js +1 -2
- package/lib/utils/isomorphic/multimap.js +1 -2
- package/lib/utils/isomorphic/oldUtilityScriptSerializers.js +248 -0
- package/lib/utils/isomorphic/protocolFormatter.js +78 -0
- package/lib/utils/isomorphic/protocolMetainfo.js +318 -0
- package/lib/utils/isomorphic/selectorParser.js +3 -4
- package/lib/utils/isomorphic/stringUtils.js +3 -24
- package/lib/utils/isomorphic/time.js +9 -4
- package/lib/utils/isomorphic/timeoutRunner.js +3 -4
- package/lib/utils/isomorphic/traceUtils.js +2 -3
- package/lib/utils/isomorphic/urlMatch.js +21 -7
- package/lib/utils/isomorphic/utilityScriptSerializers.js +208 -205
- package/lib/utils.js +8 -2
- package/lib/utilsBundleImpl/index.js +160 -150
- package/lib/vite/htmlReport/index.html +17 -17
- package/lib/vite/recorder/assets/{codeMirrorModule-CXVeovup.js → codeMirrorModule-DzQ0k89p.js} +1 -1
- package/lib/vite/recorder/assets/{index-eHBmevrY.css → index-CI4HQ-Zb.css} +1 -1
- package/lib/vite/recorder/assets/index-D7C7daHH.js +184 -0
- package/lib/vite/recorder/index.html +3 -3
- package/lib/vite/traceViewer/assets/{codeMirrorModule-_GLjJL-7.js → codeMirrorModule-Di48jgWx.js} +1 -1
- package/lib/vite/traceViewer/assets/defaultSettingsView-szBn8781.js +256 -0
- package/lib/vite/traceViewer/defaultSettingsView.DVJHpiGt.css +1 -0
- package/lib/vite/traceViewer/index.BFsek2M6.css +1 -0
- package/lib/vite/traceViewer/index.DQvXoPLL.js +2 -0
- package/lib/vite/traceViewer/index.html +6 -6
- package/lib/vite/traceViewer/sw.bundle.js +3 -3
- package/lib/vite/traceViewer/uiMode.dBV3oN9h.js +5 -0
- package/lib/vite/traceViewer/uiMode.html +4 -4
- package/lib/zipBundleImpl.js +4 -4
- package/package.json +1 -1
- package/types/protocol.d.ts +712 -107
- package/types/types.d.ts +128 -17
- package/lib/generated/consoleApiSource.js +0 -28
- package/lib/protocol/debug.js +0 -211
- package/lib/server/recorder/contextRecorder.js +0 -286
- package/lib/server/recorder/recorderCollection.js +0 -116
- package/lib/server/recorder/recorderFrontend.js +0 -16
- package/lib/server/storageScript.js +0 -154
- package/lib/server/timeoutSettings.js +0 -89
- package/lib/utils/isomorphic/builtins.js +0 -86
- package/lib/vite/recorder/assets/index-BsWQsSGl.js +0 -184
- package/lib/vite/traceViewer/assets/defaultSettingsView-DtCQiGHe.js +0 -265
- package/lib/vite/traceViewer/defaultSettingsView.QdHITyLI.css +0 -1
- package/lib/vite/traceViewer/index.CFOW-Ezb.css +0 -1
- package/lib/vite/traceViewer/index.cFZzK9RN.js +0 -2
- package/lib/vite/traceViewer/uiMode.XVPIqBeS.js +0 -5
|
@@ -34,13 +34,13 @@ module.exports = __toCommonJS(webSocketRouteDispatcher_exports);
|
|
|
34
34
|
var import_page = require("../page");
|
|
35
35
|
var import_dispatcher = require("./dispatcher");
|
|
36
36
|
var import_pageDispatcher = require("./pageDispatcher");
|
|
37
|
-
var
|
|
38
|
-
var
|
|
37
|
+
var rawWebSocketMockSource = __toESM(require("../../generated/webSocketMockSource"));
|
|
38
|
+
var import_instrumentation = require("../instrumentation");
|
|
39
39
|
var import_urlMatch = require("../../utils/isomorphic/urlMatch");
|
|
40
40
|
var import_eventsHelper = require("../utils/eventsHelper");
|
|
41
41
|
class WebSocketRouteDispatcher extends import_dispatcher.Dispatcher {
|
|
42
42
|
constructor(scope, id, url, frame) {
|
|
43
|
-
super(scope,
|
|
43
|
+
super(scope, new import_instrumentation.SdkObject(scope._object, "webSocketRoute"), "WebSocketRoute", { url });
|
|
44
44
|
this._type_WebSocketRoute = true;
|
|
45
45
|
this._id = id;
|
|
46
46
|
this._frame = frame;
|
|
@@ -64,13 +64,16 @@ class WebSocketRouteDispatcher extends import_dispatcher.Dispatcher {
|
|
|
64
64
|
static {
|
|
65
65
|
this._idToDispatcher = /* @__PURE__ */ new Map();
|
|
66
66
|
}
|
|
67
|
-
static async
|
|
68
|
-
const
|
|
69
|
-
|
|
70
|
-
if (
|
|
71
|
-
|
|
67
|
+
static async install(progress, connection, target) {
|
|
68
|
+
const context = target instanceof import_page.Page ? target.browserContext : target;
|
|
69
|
+
let data = context.getBindingClient(kBindingName);
|
|
70
|
+
if (data && data.connection !== connection)
|
|
71
|
+
throw new Error("Another client is already routing WebSockets");
|
|
72
|
+
if (!data) {
|
|
73
|
+
data = { counter: 0, connection, binding: null };
|
|
74
|
+
data.binding = await context.exposeBinding(progress, kBindingName, false, (source, payload) => {
|
|
72
75
|
if (payload.type === "onCreate") {
|
|
73
|
-
const contextDispatcher =
|
|
76
|
+
const contextDispatcher = connection.existingDispatcher(context);
|
|
74
77
|
const pageDispatcher = contextDispatcher ? import_pageDispatcher.PageDispatcher.fromNullable(contextDispatcher, source.page) : void 0;
|
|
75
78
|
let scope;
|
|
76
79
|
if (pageDispatcher && matchesPattern(pageDispatcher, context._options.baseURL, payload.url))
|
|
@@ -95,40 +98,47 @@ class WebSocketRouteDispatcher extends import_dispatcher.Dispatcher {
|
|
|
95
98
|
dispatcher?._dispatchEvent("closePage", { code: payload.code, reason: payload.reason, wasClean: payload.wasClean });
|
|
96
99
|
if (payload.type === "onCloseServer")
|
|
97
100
|
dispatcher?._dispatchEvent("closeServer", { code: payload.code, reason: payload.reason, wasClean: payload.wasClean });
|
|
98
|
-
});
|
|
99
|
-
}
|
|
100
|
-
const kInitScriptName = "webSocketMockSource";
|
|
101
|
-
if (!target.initScripts.find((s) => s.name === kInitScriptName)) {
|
|
102
|
-
await target.addInitScript(`
|
|
103
|
-
(() => {
|
|
104
|
-
const module = {};
|
|
105
|
-
${webSocketMockSource.source}
|
|
106
|
-
(module.exports.inject())(globalThis);
|
|
107
|
-
})();
|
|
108
|
-
`, kInitScriptName);
|
|
101
|
+
}, data);
|
|
109
102
|
}
|
|
103
|
+
++data.counter;
|
|
104
|
+
return await target.addInitScript(progress, `
|
|
105
|
+
(() => {
|
|
106
|
+
const module = {};
|
|
107
|
+
${rawWebSocketMockSource.source}
|
|
108
|
+
(module.exports.inject())(globalThis);
|
|
109
|
+
})();
|
|
110
|
+
`);
|
|
111
|
+
}
|
|
112
|
+
static async uninstall(connection, target, initScript) {
|
|
113
|
+
const context = target instanceof import_page.Page ? target.browserContext : target;
|
|
114
|
+
const data = context.getBindingClient(kBindingName);
|
|
115
|
+
if (!data || data.connection !== connection)
|
|
116
|
+
return;
|
|
117
|
+
if (--data.counter <= 0)
|
|
118
|
+
await context.removeExposedBindings([data.binding]);
|
|
119
|
+
await target.removeInitScripts([initScript]);
|
|
110
120
|
}
|
|
111
|
-
async connect(params) {
|
|
112
|
-
await this._evaluateAPIRequest({ id: this._id, type: "connect" });
|
|
121
|
+
async connect(params, progress) {
|
|
122
|
+
await this._evaluateAPIRequest(progress, { id: this._id, type: "connect" });
|
|
113
123
|
}
|
|
114
|
-
async ensureOpened(params) {
|
|
115
|
-
await this._evaluateAPIRequest({ id: this._id, type: "ensureOpened" });
|
|
124
|
+
async ensureOpened(params, progress) {
|
|
125
|
+
await this._evaluateAPIRequest(progress, { id: this._id, type: "ensureOpened" });
|
|
116
126
|
}
|
|
117
|
-
async sendToPage(params) {
|
|
118
|
-
await this._evaluateAPIRequest({ id: this._id, type: "sendToPage", data: { data: params.message, isBase64: params.isBase64 } });
|
|
127
|
+
async sendToPage(params, progress) {
|
|
128
|
+
await this._evaluateAPIRequest(progress, { id: this._id, type: "sendToPage", data: { data: params.message, isBase64: params.isBase64 } });
|
|
119
129
|
}
|
|
120
|
-
async sendToServer(params) {
|
|
121
|
-
await this._evaluateAPIRequest({ id: this._id, type: "sendToServer", data: { data: params.message, isBase64: params.isBase64 } });
|
|
130
|
+
async sendToServer(params, progress) {
|
|
131
|
+
await this._evaluateAPIRequest(progress, { id: this._id, type: "sendToServer", data: { data: params.message, isBase64: params.isBase64 } });
|
|
122
132
|
}
|
|
123
|
-
async closePage(params) {
|
|
124
|
-
await this._evaluateAPIRequest({ id: this._id, type: "closePage", code: params.code, reason: params.reason, wasClean: params.wasClean });
|
|
133
|
+
async closePage(params, progress) {
|
|
134
|
+
await this._evaluateAPIRequest(progress, { id: this._id, type: "closePage", code: params.code, reason: params.reason, wasClean: params.wasClean });
|
|
125
135
|
}
|
|
126
|
-
async closeServer(params) {
|
|
127
|
-
await this._evaluateAPIRequest({ id: this._id, type: "closeServer", code: params.code, reason: params.reason, wasClean: params.wasClean });
|
|
136
|
+
async closeServer(params, progress) {
|
|
137
|
+
await this._evaluateAPIRequest(progress, { id: this._id, type: "closeServer", code: params.code, reason: params.reason, wasClean: params.wasClean });
|
|
128
138
|
}
|
|
129
|
-
async _evaluateAPIRequest(request) {
|
|
130
|
-
await this._frame.evaluateExpression(`globalThis.__pwWebSocketDispatch(${JSON.stringify(request)})`).catch(() => {
|
|
131
|
-
});
|
|
139
|
+
async _evaluateAPIRequest(progress, request) {
|
|
140
|
+
await progress.race(this._frame.evaluateExpression(`globalThis.__pwWebSocketDispatch(${JSON.stringify(request)})`).catch(() => {
|
|
141
|
+
}));
|
|
132
142
|
}
|
|
133
143
|
_onDispose() {
|
|
134
144
|
WebSocketRouteDispatcher._idToDispatcher.delete(this._id);
|
|
@@ -148,6 +158,7 @@ function matchesPattern(dispatcher, baseURL, url) {
|
|
|
148
158
|
}
|
|
149
159
|
return false;
|
|
150
160
|
}
|
|
161
|
+
const kBindingName = "__pwWebSocketBinding";
|
|
151
162
|
// Annotate the CommonJS export names for ESM import in node:
|
|
152
163
|
0 && (module.exports = {
|
|
153
164
|
WebSocketRouteDispatcher
|
|
@@ -33,33 +33,39 @@ __export(writableStreamDispatcher_exports, {
|
|
|
33
33
|
module.exports = __toCommonJS(writableStreamDispatcher_exports);
|
|
34
34
|
var import_fs = __toESM(require("fs"));
|
|
35
35
|
var import_dispatcher = require("./dispatcher");
|
|
36
|
-
var
|
|
36
|
+
var import_instrumentation = require("../instrumentation");
|
|
37
|
+
class WritableStreamSdkObject extends import_instrumentation.SdkObject {
|
|
38
|
+
constructor(parent, streamOrDirectory, lastModifiedMs) {
|
|
39
|
+
super(parent, "stream");
|
|
40
|
+
this.streamOrDirectory = streamOrDirectory;
|
|
41
|
+
this.lastModifiedMs = lastModifiedMs;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
37
44
|
class WritableStreamDispatcher extends import_dispatcher.Dispatcher {
|
|
38
45
|
constructor(scope, streamOrDirectory, lastModifiedMs) {
|
|
39
|
-
super(scope,
|
|
46
|
+
super(scope, new WritableStreamSdkObject(scope._object, streamOrDirectory, lastModifiedMs), "WritableStream", {});
|
|
40
47
|
this._type_WritableStream = true;
|
|
41
|
-
this._lastModifiedMs = lastModifiedMs;
|
|
42
48
|
}
|
|
43
|
-
async write(params) {
|
|
49
|
+
async write(params, progress) {
|
|
44
50
|
if (typeof this._object.streamOrDirectory === "string")
|
|
45
51
|
throw new Error("Cannot write to a directory");
|
|
46
52
|
const stream = this._object.streamOrDirectory;
|
|
47
|
-
await new Promise((fulfill, reject) => {
|
|
53
|
+
await progress.race(new Promise((fulfill, reject) => {
|
|
48
54
|
stream.write(params.binary, (error) => {
|
|
49
55
|
if (error)
|
|
50
56
|
reject(error);
|
|
51
57
|
else
|
|
52
58
|
fulfill();
|
|
53
59
|
});
|
|
54
|
-
});
|
|
60
|
+
}));
|
|
55
61
|
}
|
|
56
|
-
async close() {
|
|
62
|
+
async close(params, progress) {
|
|
57
63
|
if (typeof this._object.streamOrDirectory === "string")
|
|
58
64
|
throw new Error("Cannot close a directory");
|
|
59
65
|
const stream = this._object.streamOrDirectory;
|
|
60
|
-
await new Promise((fulfill) => stream.end(fulfill));
|
|
61
|
-
if (this.
|
|
62
|
-
await import_fs.default.promises.utimes(this.path(), new Date(this.
|
|
66
|
+
await progress.race(new Promise((fulfill) => stream.end(fulfill)));
|
|
67
|
+
if (this._object.lastModifiedMs)
|
|
68
|
+
await progress.race(import_fs.default.promises.utimes(this.path(), new Date(this._object.lastModifiedMs), new Date(this._object.lastModifiedMs)));
|
|
63
69
|
}
|
|
64
70
|
path() {
|
|
65
71
|
if (typeof this._object.streamOrDirectory === "string")
|