@hotwired/turbo 7.2.5 → 8.0.0-beta.1
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/README.md +1 -1
- package/dist/turbo.es2017-esm.js +5511 -3380
- package/dist/turbo.es2017-umd.js +5885 -3745
- package/package.json +18 -21
- package/dist/types/core/bardo.d.ts +0 -18
- package/dist/types/core/cache.d.ts +0 -10
- package/dist/types/core/drive/error_renderer.d.ts +0 -10
- package/dist/types/core/drive/form_submission.d.ts +0 -68
- package/dist/types/core/drive/head_snapshot.d.ts +0 -21
- package/dist/types/core/drive/history.d.ts +0 -35
- package/dist/types/core/drive/navigator.d.ts +0 -35
- package/dist/types/core/drive/page_renderer.d.ts +0 -31
- package/dist/types/core/drive/page_snapshot.d.ts +0 -17
- package/dist/types/core/drive/page_view.d.ts +0 -23
- package/dist/types/core/drive/preloader.d.ts +0 -14
- package/dist/types/core/drive/progress_bar.d.ts +0 -25
- package/dist/types/core/drive/snapshot_cache.d.ts +0 -17
- package/dist/types/core/drive/visit.d.ts +0 -125
- package/dist/types/core/frames/frame_controller.d.ts +0 -96
- package/dist/types/core/frames/frame_redirector.d.ts +0 -19
- package/dist/types/core/frames/frame_renderer.d.ts +0 -17
- package/dist/types/core/frames/frame_view.d.ts +0 -8
- package/dist/types/core/frames/link_interceptor.d.ts +0 -16
- package/dist/types/core/index.d.ts +0 -28
- package/dist/types/core/native/adapter.d.ts +0 -17
- package/dist/types/core/native/browser_adapter.d.ts +0 -40
- package/dist/types/core/renderer.d.ts +0 -28
- package/dist/types/core/session.d.ts +0 -142
- package/dist/types/core/snapshot.d.ts +0 -16
- package/dist/types/core/streams/stream_actions.d.ts +0 -6
- package/dist/types/core/streams/stream_message.d.ts +0 -6
- package/dist/types/core/streams/stream_message_renderer.d.ts +0 -7
- package/dist/types/core/types.d.ts +0 -9
- package/dist/types/core/url.d.ts +0 -11
- package/dist/types/core/view.d.ts +0 -39
- package/dist/types/elements/frame_element.d.ts +0 -45
- package/dist/types/elements/index.d.ts +0 -3
- package/dist/types/elements/stream_element.d.ts +0 -27
- package/dist/types/elements/stream_source_element.d.ts +0 -7
- package/dist/types/http/fetch_request.d.ts +0 -67
- package/dist/types/http/fetch_response.d.ts +0 -16
- package/dist/types/http/index.d.ts +0 -1
- package/dist/types/index.d.ts +0 -6
- package/dist/types/observers/appearance_observer.d.ts +0 -13
- package/dist/types/observers/cache_observer.d.ts +0 -6
- package/dist/types/observers/form_link_click_observer.d.ts +0 -14
- package/dist/types/observers/form_submit_observer.d.ts +0 -14
- package/dist/types/observers/link_click_observer.d.ts +0 -17
- package/dist/types/observers/page_observer.d.ts +0 -24
- package/dist/types/observers/scroll_observer.d.ts +0 -13
- package/dist/types/observers/stream_observer.d.ts +0 -21
- package/dist/types/polyfills/custom-elements-native-shim.d.ts +0 -0
- package/dist/types/polyfills/index.d.ts +0 -3
- package/dist/types/polyfills/submit-event.d.ts +0 -1
- package/dist/types/script_warning.d.ts +0 -1
- package/dist/types/tests/functional/async_script_tests.d.ts +0 -1
- package/dist/types/tests/functional/autofocus_tests.d.ts +0 -1
- package/dist/types/tests/functional/cache_observer_tests.d.ts +0 -1
- package/dist/types/tests/functional/drive_disabled_tests.d.ts +0 -1
- package/dist/types/tests/functional/drive_tests.d.ts +0 -1
- package/dist/types/tests/functional/form_mode_tests.d.ts +0 -1
- package/dist/types/tests/functional/form_submission_tests.d.ts +0 -1
- package/dist/types/tests/functional/frame_navigation_tests.d.ts +0 -1
- package/dist/types/tests/functional/frame_tests.d.ts +0 -13
- package/dist/types/tests/functional/import_tests.d.ts +0 -1
- package/dist/types/tests/functional/loading_tests.d.ts +0 -6
- package/dist/types/tests/functional/navigation_tests.d.ts +0 -1
- package/dist/types/tests/functional/pausable_rendering_tests.d.ts +0 -1
- package/dist/types/tests/functional/pausable_requests_tests.d.ts +0 -1
- package/dist/types/tests/functional/preloader_tests.d.ts +0 -1
- package/dist/types/tests/functional/rendering_tests.d.ts +0 -7
- package/dist/types/tests/functional/scroll_restoration_tests.d.ts +0 -1
- package/dist/types/tests/functional/stream_tests.d.ts +0 -1
- package/dist/types/tests/functional/visit_tests.d.ts +0 -1
- package/dist/types/tests/helpers/dom_test_case.d.ts +0 -10
- package/dist/types/tests/helpers/intern_test_case.d.ts +0 -19
- package/dist/types/tests/helpers/page.d.ts +0 -60
- package/dist/types/tests/integration/ujs_tests.d.ts +0 -1
- package/dist/types/tests/server.d.ts +0 -1
- package/dist/types/tests/unit/deprecated_adapter_support_test.d.ts +0 -24
- package/dist/types/tests/unit/export_tests.d.ts +0 -5
- package/dist/types/tests/unit/index.d.ts +0 -3
- package/dist/types/tests/unit/stream_element_tests.d.ts +0 -13
- package/dist/types/util.d.ts +0 -27
package/package.json
CHANGED
|
@@ -1,14 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hotwired/turbo",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "8.0.0-beta.1",
|
|
4
4
|
"description": "The speed of a single-page web application without having to write any JavaScript",
|
|
5
5
|
"module": "dist/turbo.es2017-esm.js",
|
|
6
6
|
"main": "dist/turbo.es2017-umd.js",
|
|
7
|
-
"types": "dist/types/index.d.ts",
|
|
8
7
|
"files": [
|
|
9
8
|
"dist/*.js",
|
|
10
|
-
"dist/*.js.map"
|
|
11
|
-
"dist/types/**/*"
|
|
9
|
+
"dist/*.js.map"
|
|
12
10
|
],
|
|
13
11
|
"repository": {
|
|
14
12
|
"type": "git",
|
|
@@ -34,38 +32,37 @@
|
|
|
34
32
|
"publishConfig": {
|
|
35
33
|
"access": "public"
|
|
36
34
|
},
|
|
35
|
+
"dependencies": {
|
|
36
|
+
"idiomorph": "https://github.com/basecamp/idiomorph#rollout-build"
|
|
37
|
+
},
|
|
37
38
|
"devDependencies": {
|
|
39
|
+
"@open-wc/testing": "^3.1.7",
|
|
38
40
|
"@playwright/test": "^1.28.0",
|
|
39
41
|
"@rollup/plugin-node-resolve": "13.1.3",
|
|
40
|
-
"@
|
|
41
|
-
"@
|
|
42
|
-
"@
|
|
43
|
-
"@typescript-eslint/parser": "^5.20.0",
|
|
42
|
+
"@web/dev-server-esbuild": "^0.3.3",
|
|
43
|
+
"@web/test-runner": "^0.15.0",
|
|
44
|
+
"@web/test-runner-playwright": "^0.9.0",
|
|
44
45
|
"arg": "^5.0.1",
|
|
46
|
+
"body-parser": "^1.20.1",
|
|
45
47
|
"chai": "~4.3.4",
|
|
46
48
|
"eslint": "^8.13.0",
|
|
47
|
-
"
|
|
48
|
-
"eslint-plugin-prettier": "^4.0.0",
|
|
49
|
-
"intern": "^4.9.0",
|
|
49
|
+
"express": "^4.18.2",
|
|
50
50
|
"multer": "^1.4.2",
|
|
51
|
-
"
|
|
52
|
-
"rollup": "^2.35.1",
|
|
53
|
-
"tslib": "^2.4.0",
|
|
54
|
-
"typescript": "^4.8.2"
|
|
51
|
+
"rollup": "^2.35.1"
|
|
55
52
|
},
|
|
56
53
|
"scripts": {
|
|
57
54
|
"clean": "rm -fr dist",
|
|
58
55
|
"clean:win": "rmdir /s /q dist",
|
|
59
|
-
"build": "
|
|
60
|
-
"build:win": "
|
|
56
|
+
"build": "rollup -c",
|
|
57
|
+
"build:win": "rollup -c",
|
|
61
58
|
"watch": "rollup -wc",
|
|
62
|
-
"start": "node src/tests/
|
|
59
|
+
"start": "node src/tests/server.mjs",
|
|
63
60
|
"test": "yarn test:unit && yarn test:browser",
|
|
64
61
|
"test:browser": "playwright test",
|
|
65
|
-
"test:unit": "NODE_OPTIONS=--inspect
|
|
66
|
-
"test:unit:win": "SET NODE_OPTIONS=--inspect &
|
|
62
|
+
"test:unit": "NODE_OPTIONS=--inspect web-test-runner",
|
|
63
|
+
"test:unit:win": "SET NODE_OPTIONS=--inspect & web-test-runner",
|
|
67
64
|
"release": "yarn build && npm publish",
|
|
68
|
-
"lint": "eslint . --ext .
|
|
65
|
+
"lint": "eslint . --ext .js"
|
|
69
66
|
},
|
|
70
67
|
"engines": {
|
|
71
68
|
"node": ">= 14"
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { PermanentElementMap } from "./snapshot";
|
|
2
|
-
export interface BardoDelegate {
|
|
3
|
-
enteringBardo(currentPermanentElement: Element, newPermanentElement: Element): void;
|
|
4
|
-
leavingBardo(currentPermanentElement: Element): void;
|
|
5
|
-
}
|
|
6
|
-
export declare class Bardo {
|
|
7
|
-
readonly permanentElementMap: PermanentElementMap;
|
|
8
|
-
readonly delegate: BardoDelegate;
|
|
9
|
-
static preservingPermanentElements(delegate: BardoDelegate, permanentElementMap: PermanentElementMap, callback: () => void): Promise<void>;
|
|
10
|
-
constructor(delegate: BardoDelegate, permanentElementMap: PermanentElementMap);
|
|
11
|
-
enter(): void;
|
|
12
|
-
leave(): void;
|
|
13
|
-
replaceNewPermanentElementWithPlaceholder(permanentElement: Element): void;
|
|
14
|
-
replaceCurrentPermanentElementWithClone(permanentElement: Element): void;
|
|
15
|
-
replacePlaceholderWithPermanentElement(permanentElement: Element): void;
|
|
16
|
-
getPlaceholderById(id: string): HTMLMetaElement | undefined;
|
|
17
|
-
get placeholders(): HTMLMetaElement[];
|
|
18
|
-
}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { Session } from "./session";
|
|
2
|
-
export declare class Cache {
|
|
3
|
-
readonly session: Session;
|
|
4
|
-
constructor(session: Session);
|
|
5
|
-
clear(): void;
|
|
6
|
-
resetCacheControl(): void;
|
|
7
|
-
exemptPageFromCache(): void;
|
|
8
|
-
exemptPageFromPreview(): void;
|
|
9
|
-
private setCacheControl;
|
|
10
|
-
}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { PageSnapshot } from "./page_snapshot";
|
|
2
|
-
import { Renderer } from "../renderer";
|
|
3
|
-
export declare class ErrorRenderer extends Renderer<HTMLBodyElement, PageSnapshot> {
|
|
4
|
-
static renderElement(currentElement: HTMLBodyElement, newElement: HTMLBodyElement): void;
|
|
5
|
-
render(): Promise<void>;
|
|
6
|
-
replaceHeadAndBody(): void;
|
|
7
|
-
activateScriptElements(): void;
|
|
8
|
-
get newHead(): HTMLHeadElement;
|
|
9
|
-
get scriptElements(): NodeListOf<HTMLScriptElement>;
|
|
10
|
-
}
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
import { FetchRequest, FetchMethod } from "../../http/fetch_request";
|
|
2
|
-
import { FetchResponse } from "../../http/fetch_response";
|
|
3
|
-
export interface FormSubmissionDelegate {
|
|
4
|
-
formSubmissionStarted(formSubmission: FormSubmission): void;
|
|
5
|
-
formSubmissionSucceededWithResponse(formSubmission: FormSubmission, fetchResponse: FetchResponse): void;
|
|
6
|
-
formSubmissionFailedWithResponse(formSubmission: FormSubmission, fetchResponse: FetchResponse): void;
|
|
7
|
-
formSubmissionErrored(formSubmission: FormSubmission, error: Error): void;
|
|
8
|
-
formSubmissionFinished(formSubmission: FormSubmission): void;
|
|
9
|
-
}
|
|
10
|
-
export declare type FormSubmissionResult = {
|
|
11
|
-
success: boolean;
|
|
12
|
-
fetchResponse: FetchResponse;
|
|
13
|
-
} | {
|
|
14
|
-
success: false;
|
|
15
|
-
error: Error;
|
|
16
|
-
};
|
|
17
|
-
export declare enum FormSubmissionState {
|
|
18
|
-
initialized = 0,
|
|
19
|
-
requesting = 1,
|
|
20
|
-
waiting = 2,
|
|
21
|
-
receiving = 3,
|
|
22
|
-
stopping = 4,
|
|
23
|
-
stopped = 5
|
|
24
|
-
}
|
|
25
|
-
declare enum FormEnctype {
|
|
26
|
-
urlEncoded = "application/x-www-form-urlencoded",
|
|
27
|
-
multipart = "multipart/form-data",
|
|
28
|
-
plain = "text/plain"
|
|
29
|
-
}
|
|
30
|
-
export declare type TurboSubmitStartEvent = CustomEvent<{
|
|
31
|
-
formSubmission: FormSubmission;
|
|
32
|
-
}>;
|
|
33
|
-
export declare type TurboSubmitEndEvent = CustomEvent<{
|
|
34
|
-
formSubmission: FormSubmission;
|
|
35
|
-
} & {
|
|
36
|
-
[K in keyof FormSubmissionResult]?: FormSubmissionResult[K];
|
|
37
|
-
}>;
|
|
38
|
-
export declare class FormSubmission {
|
|
39
|
-
readonly delegate: FormSubmissionDelegate;
|
|
40
|
-
readonly formElement: HTMLFormElement;
|
|
41
|
-
readonly submitter?: HTMLElement;
|
|
42
|
-
readonly formData: FormData;
|
|
43
|
-
readonly location: URL;
|
|
44
|
-
readonly fetchRequest: FetchRequest;
|
|
45
|
-
readonly mustRedirect: boolean;
|
|
46
|
-
state: FormSubmissionState;
|
|
47
|
-
result?: FormSubmissionResult;
|
|
48
|
-
static confirmMethod(message: string, _element: HTMLFormElement, _submitter: HTMLElement | undefined): Promise<boolean>;
|
|
49
|
-
constructor(delegate: FormSubmissionDelegate, formElement: HTMLFormElement, submitter?: HTMLElement, mustRedirect?: boolean);
|
|
50
|
-
get method(): FetchMethod;
|
|
51
|
-
get action(): string;
|
|
52
|
-
get body(): FormData;
|
|
53
|
-
get enctype(): FormEnctype;
|
|
54
|
-
get isIdempotent(): boolean;
|
|
55
|
-
get stringFormData(): [string, string][];
|
|
56
|
-
start(): Promise<void | FetchResponse>;
|
|
57
|
-
stop(): true | undefined;
|
|
58
|
-
prepareRequest(request: FetchRequest): void;
|
|
59
|
-
requestStarted(_request: FetchRequest): void;
|
|
60
|
-
requestPreventedHandlingResponse(request: FetchRequest, response: FetchResponse): void;
|
|
61
|
-
requestSucceededWithResponse(request: FetchRequest, response: FetchResponse): void;
|
|
62
|
-
requestFailedWithResponse(request: FetchRequest, response: FetchResponse): void;
|
|
63
|
-
requestErrored(request: FetchRequest, error: Error): void;
|
|
64
|
-
requestFinished(_request: FetchRequest): void;
|
|
65
|
-
requestMustRedirect(request: FetchRequest): boolean;
|
|
66
|
-
requestAcceptsTurboStreamResponse(request: FetchRequest): boolean;
|
|
67
|
-
}
|
|
68
|
-
export {};
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { Snapshot } from "../snapshot";
|
|
2
|
-
declare type ElementDetailMap = {
|
|
3
|
-
[outerHTML: string]: ElementDetails;
|
|
4
|
-
};
|
|
5
|
-
declare type ElementDetails = {
|
|
6
|
-
type?: ElementType;
|
|
7
|
-
tracked: boolean;
|
|
8
|
-
elements: Element[];
|
|
9
|
-
};
|
|
10
|
-
declare type ElementType = "script" | "stylesheet";
|
|
11
|
-
export declare class HeadSnapshot extends Snapshot<HTMLHeadElement> {
|
|
12
|
-
readonly detailsByOuterHTML: ElementDetailMap;
|
|
13
|
-
get trackedElementSignature(): string;
|
|
14
|
-
getScriptElementsNotInSnapshot(snapshot: HeadSnapshot): HTMLScriptElement[];
|
|
15
|
-
getStylesheetElementsNotInSnapshot(snapshot: HeadSnapshot): HTMLLinkElement[];
|
|
16
|
-
getElementsMatchingTypeNotInSnapshot<T extends Element>(matchedType: ElementType, snapshot: HeadSnapshot): T[];
|
|
17
|
-
get provisionalElements(): Element[];
|
|
18
|
-
getMetaValue(name: string): string | null;
|
|
19
|
-
findMetaElementByName(name: string): Element | undefined;
|
|
20
|
-
}
|
|
21
|
-
export {};
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import { Position } from "../types";
|
|
2
|
-
export interface HistoryDelegate {
|
|
3
|
-
historyPoppedToLocationWithRestorationIdentifier(location: URL, restorationIdentifier: string): void;
|
|
4
|
-
}
|
|
5
|
-
declare type HistoryMethod = (this: typeof history, state: any, title: string, url?: string | null | undefined) => void;
|
|
6
|
-
export declare type RestorationData = {
|
|
7
|
-
scrollPosition?: Position;
|
|
8
|
-
};
|
|
9
|
-
export declare type RestorationDataMap = {
|
|
10
|
-
[restorationIdentifier: string]: RestorationData;
|
|
11
|
-
};
|
|
12
|
-
export declare class History {
|
|
13
|
-
readonly delegate: HistoryDelegate;
|
|
14
|
-
location: URL;
|
|
15
|
-
restorationIdentifier: string;
|
|
16
|
-
restorationData: RestorationDataMap;
|
|
17
|
-
started: boolean;
|
|
18
|
-
pageLoaded: boolean;
|
|
19
|
-
previousScrollRestoration?: ScrollRestoration;
|
|
20
|
-
constructor(delegate: HistoryDelegate);
|
|
21
|
-
start(): void;
|
|
22
|
-
stop(): void;
|
|
23
|
-
push(location: URL, restorationIdentifier?: string): void;
|
|
24
|
-
replace(location: URL, restorationIdentifier?: string): void;
|
|
25
|
-
update(method: HistoryMethod, location: URL, restorationIdentifier?: string): void;
|
|
26
|
-
getRestorationDataForIdentifier(restorationIdentifier: string): RestorationData;
|
|
27
|
-
updateRestorationData(additionalData: Partial<RestorationData>): void;
|
|
28
|
-
assumeControlOfScrollRestoration(): void;
|
|
29
|
-
relinquishControlOfScrollRestoration(): void;
|
|
30
|
-
onPopState: (event: PopStateEvent) => void;
|
|
31
|
-
onPageLoad: (_event: Event) => Promise<void>;
|
|
32
|
-
shouldHandlePopState(): boolean;
|
|
33
|
-
pageIsLoaded(): boolean;
|
|
34
|
-
}
|
|
35
|
-
export {};
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import { Action } from "../types";
|
|
2
|
-
import { FetchResponse } from "../../http/fetch_response";
|
|
3
|
-
import { FormSubmission } from "./form_submission";
|
|
4
|
-
import { Locatable } from "../url";
|
|
5
|
-
import { Visit, VisitDelegate, VisitOptions } from "./visit";
|
|
6
|
-
export declare type NavigatorDelegate = VisitDelegate & {
|
|
7
|
-
allowsVisitingLocationWithAction(location: URL, action?: Action): boolean;
|
|
8
|
-
visitProposedToLocation(location: URL, options: Partial<VisitOptions>): void;
|
|
9
|
-
notifyApplicationAfterVisitingSamePageLocation(oldURL: URL, newURL: URL): void;
|
|
10
|
-
};
|
|
11
|
-
export declare class Navigator {
|
|
12
|
-
readonly delegate: NavigatorDelegate;
|
|
13
|
-
formSubmission?: FormSubmission;
|
|
14
|
-
currentVisit?: Visit;
|
|
15
|
-
constructor(delegate: NavigatorDelegate);
|
|
16
|
-
proposeVisit(location: URL, options?: Partial<VisitOptions>): void;
|
|
17
|
-
startVisit(locatable: Locatable, restorationIdentifier: string, options?: Partial<VisitOptions>): void;
|
|
18
|
-
submitForm(form: HTMLFormElement, submitter?: HTMLElement): void;
|
|
19
|
-
stop(): void;
|
|
20
|
-
get adapter(): import("../native/adapter").Adapter;
|
|
21
|
-
get view(): import("./page_view").PageView;
|
|
22
|
-
get history(): import("./history").History;
|
|
23
|
-
formSubmissionStarted(formSubmission: FormSubmission): void;
|
|
24
|
-
formSubmissionSucceededWithResponse(formSubmission: FormSubmission, fetchResponse: FetchResponse): Promise<void>;
|
|
25
|
-
formSubmissionFailedWithResponse(formSubmission: FormSubmission, fetchResponse: FetchResponse): Promise<void>;
|
|
26
|
-
formSubmissionErrored(formSubmission: FormSubmission, error: Error): void;
|
|
27
|
-
formSubmissionFinished(formSubmission: FormSubmission): void;
|
|
28
|
-
visitStarted(visit: Visit): void;
|
|
29
|
-
visitCompleted(visit: Visit): void;
|
|
30
|
-
locationWithActionIsSamePage(location: URL, action?: Action): boolean;
|
|
31
|
-
visitScrolledToSamePageLocation(oldURL: URL, newURL: URL): void;
|
|
32
|
-
get location(): URL;
|
|
33
|
-
get restorationIdentifier(): string;
|
|
34
|
-
getActionForFormSubmission({ submitter, formElement }: FormSubmission): Action;
|
|
35
|
-
}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import { Renderer } from "../renderer";
|
|
2
|
-
import { PageSnapshot } from "./page_snapshot";
|
|
3
|
-
import { ReloadReason } from "../native/browser_adapter";
|
|
4
|
-
export declare class PageRenderer extends Renderer<HTMLBodyElement, PageSnapshot> {
|
|
5
|
-
static renderElement(currentElement: HTMLBodyElement, newElement: HTMLBodyElement): void;
|
|
6
|
-
get shouldRender(): boolean;
|
|
7
|
-
get reloadReason(): ReloadReason;
|
|
8
|
-
prepareToRender(): Promise<void>;
|
|
9
|
-
render(): Promise<void>;
|
|
10
|
-
finishRendering(): void;
|
|
11
|
-
get currentHeadSnapshot(): import("./head_snapshot").HeadSnapshot;
|
|
12
|
-
get newHeadSnapshot(): import("./head_snapshot").HeadSnapshot;
|
|
13
|
-
get newElement(): HTMLBodyElement;
|
|
14
|
-
mergeHead(): Promise<void>;
|
|
15
|
-
replaceBody(): Promise<void>;
|
|
16
|
-
get trackedElementsAreIdentical(): boolean;
|
|
17
|
-
copyNewHeadStylesheetElements(): Promise<void>;
|
|
18
|
-
copyNewHeadScriptElements(): void;
|
|
19
|
-
mergeProvisionalElements(): Promise<void>;
|
|
20
|
-
isCurrentElementInElementList(element: Element, elementList: Element[]): boolean;
|
|
21
|
-
removeCurrentHeadProvisionalElements(): void;
|
|
22
|
-
copyNewHeadProvisionalElements(): void;
|
|
23
|
-
activateNewBody(): void;
|
|
24
|
-
activateNewBodyScriptElements(): void;
|
|
25
|
-
assignNewBody(): Promise<void>;
|
|
26
|
-
get newHeadStylesheetElements(): HTMLLinkElement[];
|
|
27
|
-
get newHeadScriptElements(): HTMLScriptElement[];
|
|
28
|
-
get currentHeadProvisionalElements(): Element[];
|
|
29
|
-
get newHeadProvisionalElements(): Element[];
|
|
30
|
-
get newBodyScriptElements(): NodeListOf<HTMLScriptElement>;
|
|
31
|
-
}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { Snapshot } from "../snapshot";
|
|
2
|
-
import { HeadSnapshot } from "./head_snapshot";
|
|
3
|
-
export declare class PageSnapshot extends Snapshot<HTMLBodyElement> {
|
|
4
|
-
static fromHTMLString(html?: string): PageSnapshot;
|
|
5
|
-
static fromElement(element: Element): PageSnapshot;
|
|
6
|
-
static fromDocument({ head, body }: Document): PageSnapshot;
|
|
7
|
-
readonly headSnapshot: HeadSnapshot;
|
|
8
|
-
constructor(element: HTMLBodyElement, headSnapshot: HeadSnapshot);
|
|
9
|
-
clone(): PageSnapshot;
|
|
10
|
-
get headElement(): HTMLHeadElement;
|
|
11
|
-
get rootLocation(): URL;
|
|
12
|
-
get cacheControlValue(): string | null;
|
|
13
|
-
get isPreviewable(): boolean;
|
|
14
|
-
get isCacheable(): boolean;
|
|
15
|
-
get isVisitable(): boolean;
|
|
16
|
-
getSetting(name: string): string | null;
|
|
17
|
-
}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { View, ViewDelegate, ViewRenderOptions } from "../view";
|
|
2
|
-
import { ErrorRenderer } from "./error_renderer";
|
|
3
|
-
import { PageRenderer } from "./page_renderer";
|
|
4
|
-
import { PageSnapshot } from "./page_snapshot";
|
|
5
|
-
import { SnapshotCache } from "./snapshot_cache";
|
|
6
|
-
import { Visit } from "./visit";
|
|
7
|
-
export declare type PageViewRenderOptions = ViewRenderOptions<HTMLBodyElement>;
|
|
8
|
-
export interface PageViewDelegate extends ViewDelegate<HTMLBodyElement, PageSnapshot> {
|
|
9
|
-
viewWillCacheSnapshot(): void;
|
|
10
|
-
}
|
|
11
|
-
declare type PageViewRenderer = PageRenderer | ErrorRenderer;
|
|
12
|
-
export declare class PageView extends View<HTMLBodyElement, PageSnapshot, PageViewRenderer, PageViewDelegate> {
|
|
13
|
-
readonly snapshotCache: SnapshotCache;
|
|
14
|
-
lastRenderedLocation: URL;
|
|
15
|
-
forceReloaded: boolean;
|
|
16
|
-
renderPage(snapshot: PageSnapshot, isPreview?: boolean, willRender?: boolean, visit?: Visit): Promise<void>;
|
|
17
|
-
renderError(snapshot: PageSnapshot, visit?: Visit): Promise<void>;
|
|
18
|
-
clearSnapshotCache(): void;
|
|
19
|
-
cacheSnapshot(snapshot?: PageSnapshot): Promise<PageSnapshot | undefined>;
|
|
20
|
-
getCachedSnapshotForLocation(location: URL): PageSnapshot | undefined;
|
|
21
|
-
get snapshot(): PageSnapshot;
|
|
22
|
-
}
|
|
23
|
-
export {};
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { Navigator } from "./navigator";
|
|
2
|
-
import { SnapshotCache } from "./snapshot_cache";
|
|
3
|
-
export interface PreloaderDelegate {
|
|
4
|
-
readonly navigator: Navigator;
|
|
5
|
-
}
|
|
6
|
-
export declare class Preloader {
|
|
7
|
-
readonly delegate: PreloaderDelegate;
|
|
8
|
-
readonly selector: string;
|
|
9
|
-
constructor(delegate: PreloaderDelegate);
|
|
10
|
-
get snapshotCache(): SnapshotCache;
|
|
11
|
-
start(): void;
|
|
12
|
-
preloadOnLoadLinksForView(element: Element): void;
|
|
13
|
-
preloadURL(link: HTMLAnchorElement): Promise<void>;
|
|
14
|
-
}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
export declare class ProgressBar {
|
|
2
|
-
static animationDuration: number;
|
|
3
|
-
static get defaultCSS(): string;
|
|
4
|
-
readonly stylesheetElement: HTMLStyleElement;
|
|
5
|
-
readonly progressElement: HTMLDivElement;
|
|
6
|
-
hiding: boolean;
|
|
7
|
-
trickleInterval?: number;
|
|
8
|
-
value: number;
|
|
9
|
-
visible: boolean;
|
|
10
|
-
constructor();
|
|
11
|
-
show(): void;
|
|
12
|
-
hide(): void;
|
|
13
|
-
setValue(value: number): void;
|
|
14
|
-
installStylesheetElement(): void;
|
|
15
|
-
installProgressElement(): void;
|
|
16
|
-
fadeProgressElement(callback: () => void): void;
|
|
17
|
-
uninstallProgressElement(): void;
|
|
18
|
-
startTrickling(): void;
|
|
19
|
-
stopTrickling(): void;
|
|
20
|
-
trickle: () => void;
|
|
21
|
-
refresh(): void;
|
|
22
|
-
createStylesheetElement(): HTMLStyleElement;
|
|
23
|
-
createProgressElement(): HTMLDivElement;
|
|
24
|
-
get cspNonce(): string | null;
|
|
25
|
-
}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { PageSnapshot } from "./page_snapshot";
|
|
2
|
-
export declare class SnapshotCache {
|
|
3
|
-
readonly keys: string[];
|
|
4
|
-
readonly size: number;
|
|
5
|
-
snapshots: {
|
|
6
|
-
[url: string]: PageSnapshot;
|
|
7
|
-
};
|
|
8
|
-
constructor(size: number);
|
|
9
|
-
has(location: URL): boolean;
|
|
10
|
-
get(location: URL): PageSnapshot | undefined;
|
|
11
|
-
put(location: URL, snapshot: PageSnapshot): PageSnapshot;
|
|
12
|
-
clear(): void;
|
|
13
|
-
read(location: URL): PageSnapshot;
|
|
14
|
-
write(location: URL, snapshot: PageSnapshot): void;
|
|
15
|
-
touch(location: URL): void;
|
|
16
|
-
trim(): void;
|
|
17
|
-
}
|
|
@@ -1,125 +0,0 @@
|
|
|
1
|
-
import { Adapter } from "../native/adapter";
|
|
2
|
-
import { FetchRequest, FetchRequestDelegate } from "../../http/fetch_request";
|
|
3
|
-
import { FetchResponse } from "../../http/fetch_response";
|
|
4
|
-
import { History } from "./history";
|
|
5
|
-
import { Snapshot } from "../snapshot";
|
|
6
|
-
import { PageSnapshot } from "./page_snapshot";
|
|
7
|
-
import { Action } from "../types";
|
|
8
|
-
import { PageView } from "./page_view";
|
|
9
|
-
export interface VisitDelegate {
|
|
10
|
-
readonly adapter: Adapter;
|
|
11
|
-
readonly history: History;
|
|
12
|
-
readonly view: PageView;
|
|
13
|
-
visitStarted(visit: Visit): void;
|
|
14
|
-
visitCompleted(visit: Visit): void;
|
|
15
|
-
locationWithActionIsSamePage(location: URL, action: Action): boolean;
|
|
16
|
-
visitScrolledToSamePageLocation(oldURL: URL, newURL: URL): void;
|
|
17
|
-
}
|
|
18
|
-
export declare enum TimingMetric {
|
|
19
|
-
visitStart = "visitStart",
|
|
20
|
-
requestStart = "requestStart",
|
|
21
|
-
requestEnd = "requestEnd",
|
|
22
|
-
visitEnd = "visitEnd"
|
|
23
|
-
}
|
|
24
|
-
export declare type TimingMetrics = Partial<{
|
|
25
|
-
[metric in TimingMetric]: any;
|
|
26
|
-
}>;
|
|
27
|
-
export declare enum VisitState {
|
|
28
|
-
initialized = "initialized",
|
|
29
|
-
started = "started",
|
|
30
|
-
canceled = "canceled",
|
|
31
|
-
failed = "failed",
|
|
32
|
-
completed = "completed"
|
|
33
|
-
}
|
|
34
|
-
export declare type VisitOptions = {
|
|
35
|
-
action: Action;
|
|
36
|
-
historyChanged: boolean;
|
|
37
|
-
referrer?: URL;
|
|
38
|
-
snapshot?: PageSnapshot;
|
|
39
|
-
snapshotHTML?: string;
|
|
40
|
-
response?: VisitResponse;
|
|
41
|
-
visitCachedSnapshot(snapshot: Snapshot): void;
|
|
42
|
-
willRender: boolean;
|
|
43
|
-
updateHistory: boolean;
|
|
44
|
-
restorationIdentifier?: string;
|
|
45
|
-
shouldCacheSnapshot: boolean;
|
|
46
|
-
frame?: string;
|
|
47
|
-
acceptsStreamResponse: boolean;
|
|
48
|
-
};
|
|
49
|
-
export declare type VisitResponse = {
|
|
50
|
-
statusCode: number;
|
|
51
|
-
redirected: boolean;
|
|
52
|
-
responseHTML?: string;
|
|
53
|
-
};
|
|
54
|
-
export declare enum SystemStatusCode {
|
|
55
|
-
networkFailure = 0,
|
|
56
|
-
timeoutFailure = -1,
|
|
57
|
-
contentTypeMismatch = -2
|
|
58
|
-
}
|
|
59
|
-
export declare class Visit implements FetchRequestDelegate {
|
|
60
|
-
readonly delegate: VisitDelegate;
|
|
61
|
-
readonly identifier: string;
|
|
62
|
-
readonly restorationIdentifier: string;
|
|
63
|
-
readonly action: Action;
|
|
64
|
-
readonly referrer?: URL;
|
|
65
|
-
readonly timingMetrics: TimingMetrics;
|
|
66
|
-
readonly visitCachedSnapshot: (snapshot: Snapshot) => void;
|
|
67
|
-
readonly willRender: boolean;
|
|
68
|
-
readonly updateHistory: boolean;
|
|
69
|
-
followedRedirect: boolean;
|
|
70
|
-
frame?: number;
|
|
71
|
-
historyChanged: boolean;
|
|
72
|
-
location: URL;
|
|
73
|
-
isSamePage: boolean;
|
|
74
|
-
redirectedToLocation?: URL;
|
|
75
|
-
request?: FetchRequest;
|
|
76
|
-
response?: VisitResponse;
|
|
77
|
-
scrolled: boolean;
|
|
78
|
-
shouldCacheSnapshot: boolean;
|
|
79
|
-
acceptsStreamResponse: boolean;
|
|
80
|
-
snapshotHTML?: string;
|
|
81
|
-
snapshotCached: boolean;
|
|
82
|
-
state: VisitState;
|
|
83
|
-
snapshot?: PageSnapshot;
|
|
84
|
-
constructor(delegate: VisitDelegate, location: URL, restorationIdentifier: string | undefined, options?: Partial<VisitOptions>);
|
|
85
|
-
get adapter(): Adapter;
|
|
86
|
-
get view(): PageView;
|
|
87
|
-
get history(): History;
|
|
88
|
-
get restorationData(): import("./history").RestorationData;
|
|
89
|
-
get silent(): boolean;
|
|
90
|
-
start(): void;
|
|
91
|
-
cancel(): void;
|
|
92
|
-
complete(): void;
|
|
93
|
-
fail(): void;
|
|
94
|
-
changeHistory(): void;
|
|
95
|
-
issueRequest(): void;
|
|
96
|
-
simulateRequest(): void;
|
|
97
|
-
startRequest(): void;
|
|
98
|
-
recordResponse(response?: VisitResponse | undefined): void;
|
|
99
|
-
finishRequest(): void;
|
|
100
|
-
loadResponse(): void;
|
|
101
|
-
getCachedSnapshot(): PageSnapshot | undefined;
|
|
102
|
-
getPreloadedSnapshot(): PageSnapshot | undefined;
|
|
103
|
-
hasCachedSnapshot(): boolean;
|
|
104
|
-
loadCachedSnapshot(): void;
|
|
105
|
-
followRedirect(): void;
|
|
106
|
-
goToSamePageAnchor(): void;
|
|
107
|
-
prepareRequest(request: FetchRequest): void;
|
|
108
|
-
requestStarted(): void;
|
|
109
|
-
requestPreventedHandlingResponse(_request: FetchRequest, _response: FetchResponse): void;
|
|
110
|
-
requestSucceededWithResponse(request: FetchRequest, response: FetchResponse): Promise<void>;
|
|
111
|
-
requestFailedWithResponse(request: FetchRequest, response: FetchResponse): Promise<void>;
|
|
112
|
-
requestErrored(_request: FetchRequest, _error: Error): void;
|
|
113
|
-
requestFinished(): void;
|
|
114
|
-
performScroll(): void;
|
|
115
|
-
scrollToRestoredPosition(): true | undefined;
|
|
116
|
-
scrollToAnchor(): true | undefined;
|
|
117
|
-
recordTimingMetric(metric: TimingMetric): void;
|
|
118
|
-
getTimingMetrics(): TimingMetrics;
|
|
119
|
-
getHistoryMethodForAction(action: Action): (data: any, unused: string, url?: string | URL | null | undefined) => void;
|
|
120
|
-
hasPreloadedResponse(): boolean;
|
|
121
|
-
shouldIssueRequest(): boolean;
|
|
122
|
-
cacheSnapshot(): void;
|
|
123
|
-
render(callback: () => Promise<void>): Promise<void>;
|
|
124
|
-
cancelRender(): void;
|
|
125
|
-
}
|
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
import { FrameElement, FrameElementDelegate, FrameLoadingStyle } from "../../elements/frame_element";
|
|
2
|
-
import { FetchRequest, FetchRequestDelegate } from "../../http/fetch_request";
|
|
3
|
-
import { FetchResponse } from "../../http/fetch_response";
|
|
4
|
-
import { AppearanceObserver, AppearanceObserverDelegate } from "../../observers/appearance_observer";
|
|
5
|
-
import { FormSubmission, FormSubmissionDelegate } from "../drive/form_submission";
|
|
6
|
-
import { Snapshot } from "../snapshot";
|
|
7
|
-
import { ViewDelegate, ViewRenderOptions } from "../view";
|
|
8
|
-
import { Locatable } from "../url";
|
|
9
|
-
import { FormSubmitObserver, FormSubmitObserverDelegate } from "../../observers/form_submit_observer";
|
|
10
|
-
import { FrameView } from "./frame_view";
|
|
11
|
-
import { LinkInterceptor, LinkInterceptorDelegate } from "./link_interceptor";
|
|
12
|
-
import { FormLinkClickObserver, FormLinkClickObserverDelegate } from "../../observers/form_link_click_observer";
|
|
13
|
-
import { VisitOptions } from "../drive/visit";
|
|
14
|
-
declare type VisitFallback = (location: Response | Locatable, options: Partial<VisitOptions>) => Promise<void>;
|
|
15
|
-
export declare type TurboFrameMissingEvent = CustomEvent<{
|
|
16
|
-
response: Response;
|
|
17
|
-
visit: VisitFallback;
|
|
18
|
-
}>;
|
|
19
|
-
export declare class FrameController implements AppearanceObserverDelegate<FrameElement>, FetchRequestDelegate, FormSubmitObserverDelegate, FormSubmissionDelegate, FrameElementDelegate, FormLinkClickObserverDelegate, LinkInterceptorDelegate, ViewDelegate<FrameElement, Snapshot<FrameElement>> {
|
|
20
|
-
readonly element: FrameElement;
|
|
21
|
-
readonly view: FrameView;
|
|
22
|
-
readonly appearanceObserver: AppearanceObserver<FrameElement>;
|
|
23
|
-
readonly formLinkClickObserver: FormLinkClickObserver;
|
|
24
|
-
readonly linkInterceptor: LinkInterceptor;
|
|
25
|
-
readonly formSubmitObserver: FormSubmitObserver;
|
|
26
|
-
formSubmission?: FormSubmission;
|
|
27
|
-
fetchResponseLoaded: (_fetchResponse: FetchResponse) => void;
|
|
28
|
-
private currentFetchRequest;
|
|
29
|
-
private resolveVisitPromise;
|
|
30
|
-
private connected;
|
|
31
|
-
private hasBeenLoaded;
|
|
32
|
-
private ignoredAttributes;
|
|
33
|
-
private action;
|
|
34
|
-
readonly restorationIdentifier: string;
|
|
35
|
-
private previousFrameElement?;
|
|
36
|
-
private currentNavigationElement?;
|
|
37
|
-
constructor(element: FrameElement);
|
|
38
|
-
connect(): void;
|
|
39
|
-
disconnect(): void;
|
|
40
|
-
disabledChanged(): void;
|
|
41
|
-
sourceURLChanged(): void;
|
|
42
|
-
sourceURLReloaded(): Promise<void>;
|
|
43
|
-
completeChanged(): void;
|
|
44
|
-
loadingStyleChanged(): void;
|
|
45
|
-
private loadSourceURL;
|
|
46
|
-
loadResponse(fetchResponse: FetchResponse): Promise<void>;
|
|
47
|
-
elementAppearedInViewport(element: FrameElement): void;
|
|
48
|
-
willSubmitFormLinkToLocation(link: Element): boolean;
|
|
49
|
-
submittedFormLinkToLocation(link: Element, _location: URL, form: HTMLFormElement): void;
|
|
50
|
-
shouldInterceptLinkClick(element: Element, _location: string, _event: MouseEvent): boolean;
|
|
51
|
-
linkClickIntercepted(element: Element, location: string): void;
|
|
52
|
-
willSubmitForm(element: HTMLFormElement, submitter?: HTMLElement): boolean;
|
|
53
|
-
formSubmitted(element: HTMLFormElement, submitter?: HTMLElement): void;
|
|
54
|
-
prepareRequest(request: FetchRequest): void;
|
|
55
|
-
requestStarted(_request: FetchRequest): void;
|
|
56
|
-
requestPreventedHandlingResponse(_request: FetchRequest, _response: FetchResponse): void;
|
|
57
|
-
requestSucceededWithResponse(request: FetchRequest, response: FetchResponse): Promise<void>;
|
|
58
|
-
requestFailedWithResponse(request: FetchRequest, response: FetchResponse): Promise<void>;
|
|
59
|
-
requestErrored(request: FetchRequest, error: Error): void;
|
|
60
|
-
requestFinished(_request: FetchRequest): void;
|
|
61
|
-
formSubmissionStarted({ formElement }: FormSubmission): void;
|
|
62
|
-
formSubmissionSucceededWithResponse(formSubmission: FormSubmission, response: FetchResponse): void;
|
|
63
|
-
formSubmissionFailedWithResponse(formSubmission: FormSubmission, fetchResponse: FetchResponse): void;
|
|
64
|
-
formSubmissionErrored(formSubmission: FormSubmission, error: Error): void;
|
|
65
|
-
formSubmissionFinished({ formElement }: FormSubmission): void;
|
|
66
|
-
allowsImmediateRender({ element: newFrame }: Snapshot<FrameElement>, options: ViewRenderOptions<FrameElement>): boolean;
|
|
67
|
-
viewRenderedSnapshot(_snapshot: Snapshot, _isPreview: boolean): void;
|
|
68
|
-
preloadOnLoadLinksForView(element: Element): void;
|
|
69
|
-
viewInvalidated(): void;
|
|
70
|
-
willRenderFrame(currentElement: FrameElement, _newElement: FrameElement): void;
|
|
71
|
-
visitCachedSnapshot: ({ element }: Snapshot) => void;
|
|
72
|
-
private visit;
|
|
73
|
-
private navigateFrame;
|
|
74
|
-
proposeVisitIfNavigatedWithAction(frame: FrameElement, element: Element, submitter?: HTMLElement): void;
|
|
75
|
-
changeHistory(): void;
|
|
76
|
-
private willHandleFrameMissingFromResponse;
|
|
77
|
-
private visitResponse;
|
|
78
|
-
private findFrameElement;
|
|
79
|
-
extractForeignFrameElement(container: ParentNode): Promise<FrameElement | null>;
|
|
80
|
-
private formActionIsVisitable;
|
|
81
|
-
private shouldInterceptNavigation;
|
|
82
|
-
get id(): string;
|
|
83
|
-
get enabled(): boolean;
|
|
84
|
-
get sourceURL(): string | undefined;
|
|
85
|
-
set sourceURL(sourceURL: string | undefined);
|
|
86
|
-
get loadingStyle(): FrameLoadingStyle;
|
|
87
|
-
get isLoading(): boolean;
|
|
88
|
-
get complete(): boolean;
|
|
89
|
-
set complete(value: boolean);
|
|
90
|
-
get isActive(): boolean;
|
|
91
|
-
get rootLocation(): URL;
|
|
92
|
-
private isIgnoringChangesTo;
|
|
93
|
-
private ignoringChangesToAttribute;
|
|
94
|
-
private withCurrentNavigationElement;
|
|
95
|
-
}
|
|
96
|
-
export {};
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { FormSubmitObserver, FormSubmitObserverDelegate } from "../../observers/form_submit_observer";
|
|
2
|
-
import { LinkInterceptor, LinkInterceptorDelegate } from "./link_interceptor";
|
|
3
|
-
import { Session } from "../session";
|
|
4
|
-
export declare class FrameRedirector implements LinkInterceptorDelegate, FormSubmitObserverDelegate {
|
|
5
|
-
readonly session: Session;
|
|
6
|
-
readonly element: Element;
|
|
7
|
-
readonly linkInterceptor: LinkInterceptor;
|
|
8
|
-
readonly formSubmitObserver: FormSubmitObserver;
|
|
9
|
-
constructor(session: Session, element: Element);
|
|
10
|
-
start(): void;
|
|
11
|
-
stop(): void;
|
|
12
|
-
shouldInterceptLinkClick(element: Element, _location: string, _event: MouseEvent): boolean;
|
|
13
|
-
linkClickIntercepted(element: Element, url: string, event: MouseEvent): void;
|
|
14
|
-
willSubmitForm(element: HTMLFormElement, submitter?: HTMLElement): boolean;
|
|
15
|
-
formSubmitted(element: HTMLFormElement, submitter?: HTMLElement): void;
|
|
16
|
-
private shouldSubmit;
|
|
17
|
-
private shouldRedirect;
|
|
18
|
-
private findFrameElement;
|
|
19
|
-
}
|