Rocky_Mountain_Vending/.pnpm-store/v10/files/01/e0147d954c14d0624a95709be48f47227f7ac0a3b7e1bfc472c672f6c2a62158c771bd4fc8593ad210c725a3d0fe7b930bde1b4a06327ea0a624bba0c9764c
DMleadgen 46d973904b
Initial commit: Rocky Mountain Vending website
Next.js website for Rocky Mountain Vending company featuring:
- Product catalog with Stripe integration
- Service areas and parts pages
- Admin dashboard with Clerk authentication
- SEO optimized pages with JSON-LD structured data

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-12 16:22:15 -07:00

83 lines
No EOL
3.5 KiB
Text

// Copyright 2024 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import { BaseNode } from './BaseNode.js';
const NON_NETWORK_SCHEMES = [
'blob', // @see https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL
'data', // @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs
'intent', // @see https://developer.chrome.com/docs/multidevice/android/intents/
'file', // @see https://en.wikipedia.org/wiki/File_URI_scheme
'filesystem', // @see https://developer.mozilla.org/en-US/docs/Web/API/FileSystem
'chrome-extension',
];
/**
* Note: the `protocol` field from CDP can be 'h2', 'http', (not 'https'!) or it'll be url's scheme.
* https://source.chromium.org/chromium/chromium/src/+/main:content/browser/devtools/protocol/network_handler.cc;l=598-611;drc=56d4a9a9deb30be73adcee8737c73bcb2a5ab64f
* However, a `new URL(href).protocol` has a colon suffix.
* https://url.spec.whatwg.org/#dom-url-protocol
* A URL's `scheme` is specced as the `protocol` sans-colon, but isn't exposed on a URL object.
* This method can take all 3 of these string types as a parameter.
*
* @param protocol Either a networkRequest's `protocol` per CDP or a `new URL(href).protocol`
*/
function isNonNetworkProtocol(protocol) {
// Strip off any colon
const urlScheme = protocol.includes(':') ? protocol.slice(0, protocol.indexOf(':')) : protocol;
return NON_NETWORK_SCHEMES.includes(urlScheme);
}
class NetworkNode extends BaseNode {
_request;
constructor(networkRequest) {
super(networkRequest.requestId);
this._request = networkRequest;
}
get type() {
return BaseNode.types.NETWORK;
}
get startTime() {
return this._request.rendererStartTime * 1000;
}
get endTime() {
return this._request.networkEndTime * 1000;
}
get rawRequest() {
return this._request.rawRequest;
}
get request() {
return this._request;
}
get initiatorType() {
return this._request.initiator.type;
}
get fromDiskCache() {
return Boolean(this._request.fromDiskCache);
}
get isNonNetworkProtocol() {
// The 'protocol' field in devtools a string more like a `scheme`
return isNonNetworkProtocol(this.request.protocol) ||
// But `protocol` can fail to be populated if the request fails, so fallback to scheme.
isNonNetworkProtocol(this.request.parsedURL.scheme);
}
/**
* Returns whether this network request can be downloaded without a TCP connection.
* During simulation we treat data coming in over a network connection separately from on-device data.
*/
get isConnectionless() {
return this.fromDiskCache || this.isNonNetworkProtocol;
}
hasRenderBlockingPriority() {
const priority = this._request.priority;
const isScript = this._request.resourceType === 'Script';
const isDocument = this._request.resourceType === 'Document';
const isBlockingScript = priority === 'High' && isScript;
const isBlockingHtmlImport = priority === 'High' && isDocument;
return priority === 'VeryHigh' || isBlockingScript || isBlockingHtmlImport;
}
cloneWithoutRelationships() {
const node = new NetworkNode(this._request);
node.setIsMainDocument(this._isMainDocument);
return node;
}
}
export { NetworkNode };
//# sourceMappingURL=NetworkNode.js.map