@hotwired/turbo 7.1.0 → 7.3.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/README.md +5 -1
- package/dist/turbo.es2017-esm.js +1284 -655
- package/dist/turbo.es2017-umd.js +1298 -662
- package/dist/types/core/bardo.d.ts +7 -2
- package/dist/types/core/cache.d.ts +10 -0
- package/dist/types/core/drive/error_renderer.d.ts +2 -1
- package/dist/types/core/drive/form_submission.d.ts +20 -9
- package/dist/types/core/drive/head_snapshot.d.ts +6 -6
- package/dist/types/core/drive/history.d.ts +4 -4
- package/dist/types/core/drive/navigator.d.ts +2 -2
- package/dist/types/core/drive/page_renderer.d.ts +12 -7
- package/dist/types/core/drive/page_view.d.ts +10 -8
- package/dist/types/core/drive/preloader.d.ts +14 -0
- package/dist/types/core/drive/progress_bar.d.ts +1 -0
- package/dist/types/core/drive/visit.d.ts +17 -6
- package/dist/types/core/errors.d.ts +2 -0
- package/dist/types/core/frames/frame_controller.d.ts +56 -26
- package/dist/types/core/frames/frame_redirector.d.ts +10 -8
- package/dist/types/core/frames/frame_renderer.d.ts +8 -1
- package/dist/types/core/frames/frame_view.d.ts +3 -2
- package/dist/types/core/frames/link_interceptor.d.ts +3 -3
- package/dist/types/core/index.d.ts +12 -3
- package/dist/types/core/native/adapter.d.ts +2 -1
- package/dist/types/core/native/browser_adapter.d.ts +17 -8
- package/dist/types/core/renderer.d.ts +12 -6
- package/dist/types/core/session.d.ts +72 -17
- package/dist/types/core/snapshot.d.ts +6 -3
- package/dist/types/core/streams/stream_actions.d.ts +4 -2
- package/dist/types/core/streams/stream_message.d.ts +2 -6
- package/dist/types/core/streams/stream_message_renderer.d.ts +7 -0
- package/dist/types/core/types.d.ts +3 -4
- package/dist/types/core/url.d.ts +1 -1
- package/dist/types/core/view.d.ts +13 -7
- package/dist/types/elements/frame_element.d.ts +12 -6
- package/dist/types/elements/index.d.ts +1 -0
- package/dist/types/elements/stream_element.d.ts +8 -1
- package/dist/types/elements/stream_source_element.d.ts +7 -0
- package/dist/types/http/fetch_request.d.ts +18 -4
- package/dist/types/http/index.d.ts +1 -0
- package/dist/types/index.d.ts +2 -0
- package/dist/types/observers/appearance_observer.d.ts +6 -6
- package/dist/types/observers/cache_observer.d.ts +5 -1
- package/dist/types/observers/form_link_click_observer.d.ts +14 -0
- package/dist/types/observers/form_submit_observer.d.ts +2 -1
- package/dist/types/observers/link_click_observer.d.ts +5 -4
- package/dist/types/polyfills/custom-elements-native-shim.d.ts +1 -0
- package/dist/types/polyfills/submit-event.d.ts +1 -7
- package/dist/types/tests/functional/async_script_tests.d.ts +1 -6
- package/dist/types/tests/functional/autofocus_tests.d.ts +1 -9
- package/dist/types/tests/functional/cache_observer_tests.d.ts +1 -5
- package/dist/types/tests/functional/drive_disabled_tests.d.ts +1 -9
- package/dist/types/tests/functional/drive_tests.d.ts +1 -8
- package/dist/types/tests/functional/form_mode_tests.d.ts +1 -0
- package/dist/types/tests/functional/form_submission_tests.d.ts +1 -84
- package/dist/types/tests/functional/frame_navigation_tests.d.ts +1 -7
- package/dist/types/tests/functional/frame_tests.d.ts +7 -51
- package/dist/types/tests/functional/import_tests.d.ts +1 -4
- package/dist/types/tests/functional/loading_tests.d.ts +1 -13
- package/dist/types/tests/functional/navigation_tests.d.ts +1 -38
- package/dist/types/tests/functional/pausable_rendering_tests.d.ts +1 -6
- package/dist/types/tests/functional/pausable_requests_tests.d.ts +1 -6
- package/dist/types/tests/functional/preloader_tests.d.ts +1 -0
- package/dist/types/tests/functional/rendering_tests.d.ts +1 -35
- package/dist/types/tests/functional/scroll_restoration_tests.d.ts +1 -6
- package/dist/types/tests/functional/stream_tests.d.ts +1 -6
- package/dist/types/tests/functional/visit_tests.d.ts +1 -15
- package/dist/types/tests/helpers/dom_test_case.d.ts +1 -2
- package/dist/types/tests/helpers/page.d.ts +60 -0
- package/dist/types/tests/integration/ujs_tests.d.ts +1 -0
- package/dist/types/tests/unit/deprecated_adapter_support_tests.d.ts +1 -0
- package/dist/types/tests/unit/export_tests.d.ts +1 -0
- package/dist/types/tests/unit/stream_element_tests.d.ts +0 -10
- package/dist/types/util.d.ts +15 -3
- package/package.json +32 -13
- package/CHANGELOG.md +0 -3
- package/dist/types/core/frames/form_interceptor.d.ts +0 -12
- package/dist/types/tests/functional/index.d.ts +0 -17
- package/dist/types/tests/helpers/functional_test_case.d.ts +0 -44
- package/dist/types/tests/helpers/intern_test_case.d.ts +0 -20
- package/dist/types/tests/helpers/remote_channel.d.ts +0 -10
- package/dist/types/tests/helpers/turbo_drive_test_case.d.ts +0 -21
- package/dist/types/tests/unit/deprecated_adapter_support_test.d.ts +0 -24
- package/dist/types/tests/unit/index.d.ts +0 -2
|
@@ -1,84 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export declare class FormSubmissionTests extends TurboDriveTestCase {
|
|
3
|
-
setup(): Promise<void>;
|
|
4
|
-
"test standard form submission renders a progress bar"(): Promise<void>;
|
|
5
|
-
"test form submission with confirmation confirmed"(): Promise<void>;
|
|
6
|
-
"test form submission with confirmation cancelled"(): Promise<void>;
|
|
7
|
-
"test from submission with confirmation overriden"(): Promise<void>;
|
|
8
|
-
"test standard form submission does not render a progress bar before expiring the delay"(): Promise<void>;
|
|
9
|
-
"test standard form submission with redirect response"(): Promise<void>;
|
|
10
|
-
"test standard POST form submission events"(): Promise<void>;
|
|
11
|
-
"test standard POST form submission merges values from both searchParams and body"(): Promise<void>;
|
|
12
|
-
"test standard POST form submission toggles submitter [disabled] attribute"(): Promise<void>;
|
|
13
|
-
"test standard GET form submission"(): Promise<void>;
|
|
14
|
-
"test standard GET form submission events"(): Promise<void>;
|
|
15
|
-
"test standard GET form submission does not incorporate the current page's URLSearchParams values into the submission"(): Promise<void>;
|
|
16
|
-
"test standard GET form submission does not merge values into the [action] attribute"(): Promise<void>;
|
|
17
|
-
"test standard GET form submission omits the [action] value's URLSearchParams from the submission"(): Promise<void>;
|
|
18
|
-
"test standard GET form submission toggles submitter [disabled] attribute"(): Promise<void>;
|
|
19
|
-
"test standard GET form submission appending keys"(): Promise<void>;
|
|
20
|
-
"test standard form submission with empty created response"(): Promise<void>;
|
|
21
|
-
"test standard form submission with empty no-content response"(): Promise<void>;
|
|
22
|
-
"test standard POST form submission with multipart/form-data enctype"(): Promise<void>;
|
|
23
|
-
"test standard GET form submission ignores enctype"(): Promise<void>;
|
|
24
|
-
"test standard POST form submission without an enctype"(): Promise<void>;
|
|
25
|
-
"test no-action form submission with single parameter"(): Promise<void>;
|
|
26
|
-
"test no-action form submission with multiple parameters"(): Promise<void>;
|
|
27
|
-
"test no-action form submission submitter parameters"(): Promise<void>;
|
|
28
|
-
"test input named action with no action attribute"(): Promise<void>;
|
|
29
|
-
"test input named action with action attribute"(): Promise<void>;
|
|
30
|
-
"test invalid form submission with unprocessable entity status"(): Promise<void>;
|
|
31
|
-
"test invalid form submission with long form"(): Promise<void>;
|
|
32
|
-
"test invalid form submission with server error status"(): Promise<void>;
|
|
33
|
-
"test submitter form submission reads button attributes"(): Promise<void>;
|
|
34
|
-
"test submitter POST form submission with multipart/form-data formenctype"(): Promise<void>;
|
|
35
|
-
"test submitter GET submission from submitter with data-turbo-frame"(): Promise<void>;
|
|
36
|
-
"test submitter POST submission from submitter with data-turbo-frame"(): Promise<void>;
|
|
37
|
-
"test frame form GET submission from submitter with data-turbo-frame=_top"(): Promise<void>;
|
|
38
|
-
"test frame form POST submission from submitter with data-turbo-frame=_top"(): Promise<void>;
|
|
39
|
-
"test frame POST form targetting frame submission"(): Promise<void>;
|
|
40
|
-
"test frame POST form targetting frame toggles submitter's [disabled] attribute"(): Promise<void>;
|
|
41
|
-
"test frame GET form targetting frame submission"(): Promise<void>;
|
|
42
|
-
"test frame GET form targetting frame toggles submitter's [disabled] attribute"(): Promise<void>;
|
|
43
|
-
"test frame form GET submission from submitter referencing another frame"(): Promise<void>;
|
|
44
|
-
"test frame form POST submission from submitter referencing another frame"(): Promise<void>;
|
|
45
|
-
"test frame form submission with redirect response"(): Promise<void>;
|
|
46
|
-
"test frame form submission toggles the ancestor frame's [aria-busy] attribute"(): Promise<void>;
|
|
47
|
-
"test frame form submission toggles the target frame's [aria-busy] attribute"(): Promise<void>;
|
|
48
|
-
"test frame form submission with empty created response"(): Promise<void>;
|
|
49
|
-
"test frame form submission with empty no-content response"(): Promise<void>;
|
|
50
|
-
"test frame form submission within a frame submits the Turbo-Frame header"(): Promise<void>;
|
|
51
|
-
"test invalid frame form submission with unprocessable entity status"(): Promise<void>;
|
|
52
|
-
"test invalid frame form submission with internal server errror status"(): Promise<void>;
|
|
53
|
-
"test frame form submission with stream response"(): Promise<void>;
|
|
54
|
-
"test frame form submission with HTTP verb other than GET or POST"(): Promise<void>;
|
|
55
|
-
"test frame form submission with [data-turbo=false] on the form"(): Promise<void>;
|
|
56
|
-
"test frame form submission with [data-turbo=false] on the submitter"(): Promise<void>;
|
|
57
|
-
"test frame form submission ignores submissions with their defaultPrevented"(): Promise<void>;
|
|
58
|
-
"test form submission with [data-turbo=false] on the form"(): Promise<void>;
|
|
59
|
-
"test form submission with [data-turbo=false] on the submitter"(): Promise<void>;
|
|
60
|
-
"test form submission skipped within method=dialog"(): Promise<void>;
|
|
61
|
-
"test form submission skipped with submitter formmethod=dialog"(): Promise<void>;
|
|
62
|
-
"test form submission targetting frame skipped within method=dialog"(): Promise<void>;
|
|
63
|
-
"test form submission targetting frame skipped with submitter formmethod=dialog"(): Promise<void>;
|
|
64
|
-
"test form submission targets disabled frame"(): Promise<void>;
|
|
65
|
-
"test form submission targeting a frame submits the Turbo-Frame header"(): Promise<void>;
|
|
66
|
-
"test link method form submission inside frame"(): Promise<void>;
|
|
67
|
-
"test link method form submission inside frame with data-turbo-frame=_top"(): Promise<void>;
|
|
68
|
-
"test link method form submission inside frame with data-turbo-frame target"(): Promise<void>;
|
|
69
|
-
"test stream link method form submission inside frame"(): Promise<void>;
|
|
70
|
-
"test link method form submission within form inside frame"(): Promise<void>;
|
|
71
|
-
"test link method form submission inside frame with confirmation confirmed"(): Promise<void>;
|
|
72
|
-
"test link method form submission inside frame with confirmation cancelled"(): Promise<void>;
|
|
73
|
-
"test link method form submission outside frame"(): Promise<void>;
|
|
74
|
-
"test stream link method form submission outside frame"(): Promise<void>;
|
|
75
|
-
"test link method form submission within form outside frame"(): Promise<void>;
|
|
76
|
-
"test stream link method form submission within form outside frame"(): Promise<void>;
|
|
77
|
-
"test turbo:before-fetch-request fires on the form element"(): Promise<void>;
|
|
78
|
-
"test turbo:before-fetch-response fires on the form element"(): Promise<void>;
|
|
79
|
-
"test POST to external action ignored"(): Promise<void>;
|
|
80
|
-
"test POST to external action within frame ignored"(): Promise<void>;
|
|
81
|
-
"test POST to external action targetting frame ignored"(): Promise<void>;
|
|
82
|
-
get formSubmitStarted(): Promise<boolean>;
|
|
83
|
-
get formSubmitEnded(): Promise<boolean>;
|
|
84
|
-
}
|
|
1
|
+
export {};
|
|
@@ -1,7 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export declare class FrameNavigationTests extends TurboDriveTestCase {
|
|
3
|
-
setup(): Promise<void>;
|
|
4
|
-
"test frame navigation with descendant link"(): Promise<void>;
|
|
5
|
-
"test frame navigation with self link"(): Promise<void>;
|
|
6
|
-
"test frame navigation with exterior link"(): Promise<void>;
|
|
7
|
-
}
|
|
1
|
+
export {};
|
|
@@ -1,57 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
"test a frame whose src references itself does not infinitely loop"(): Promise<void>;
|
|
8
|
-
"test following a link driving a frame toggles the [aria-busy=true] attribute"(): Promise<void>;
|
|
9
|
-
"test following a link to a page without a matching frame results in an empty frame"(): Promise<void>;
|
|
10
|
-
"test following a link within a frame with a target set navigates the target frame"(): Promise<void>;
|
|
11
|
-
"test following a link in rapid succession cancels the previous request"(): Promise<void>;
|
|
12
|
-
"test following a link within a descendant frame whose ancestor declares a target set navigates the descendant frame"(): Promise<void>;
|
|
13
|
-
"test following a link that declares data-turbo-frame within a frame whose ancestor respects the override"(): Promise<void>;
|
|
14
|
-
"test following a form within a nested frame with form target top"(): Promise<void>;
|
|
15
|
-
"test following a form within a nested frame with child frame target top"(): Promise<void>;
|
|
16
|
-
"test following a link within a frame with target=_top navigates the page"(): Promise<void>;
|
|
17
|
-
"test following a link that declares data-turbo-frame='_self' within a frame with target=_top navigates the frame itself"(): Promise<void>;
|
|
18
|
-
"test following a link to a page with a <turbo-frame recurse> which lazily loads a matching frame"(): Promise<void>;
|
|
19
|
-
"test submitting a form that redirects to a page with a <turbo-frame recurse> which lazily loads a matching frame"(): Promise<void>;
|
|
20
|
-
"test removing [disabled] attribute from eager-loaded frame navigates it"(): Promise<void>;
|
|
21
|
-
"test evaluates frame script elements on each render"(): Promise<void>;
|
|
22
|
-
"test does not evaluate data-turbo-eval=false scripts"(): Promise<void>;
|
|
23
|
-
"test redirecting in a form is still navigatable after redirect"(): Promise<void>;
|
|
24
|
-
"test 'turbo:frame-render' is triggered after frame has finished rendering"(): Promise<void>;
|
|
25
|
-
"test navigating a frame fires events"(): Promise<void>;
|
|
26
|
-
"test following inner link reloads frame on every click"(): Promise<void>;
|
|
27
|
-
"test following outer link reloads frame on every click"(): Promise<void>;
|
|
28
|
-
"test following outer form reloads frame on every submit"(): Promise<void>;
|
|
29
|
-
"test an inner/outer link reloads frame on every click"(): Promise<void>;
|
|
30
|
-
"test an inner/outer form reloads frame on every submit"(): Promise<void>;
|
|
31
|
-
"test reconnecting after following a link does not reload the frame"(): Promise<void>;
|
|
32
|
-
"test navigating pushing URL state from a frame navigation fires events"(): Promise<void>;
|
|
33
|
-
"test navigating a frame with a form[method=get] that does not redirect still updates the [src]"(): Promise<void>;
|
|
34
|
-
"test navigating turbo-frame[data-turbo-action=advance] from within pushes URL state"(): Promise<void>;
|
|
35
|
-
"test navigating turbo-frame[data-turbo-action=advance] to the same URL clears the [aria-busy] and [data-turbo-preview] state"(): Promise<void>;
|
|
36
|
-
"test navigating a turbo-frame with an a[data-turbo-action=advance] preserves page state"(): Promise<void>;
|
|
37
|
-
"test a turbo-frame that has been driven by a[data-turbo-action] can be navigated normally"(): Promise<void>;
|
|
38
|
-
"test navigating turbo-frame from within with a[data-turbo-action=advance] pushes URL state"(): Promise<void>;
|
|
39
|
-
"test navigating frame with a[data-turbo-action=advance] pushes URL state"(): Promise<void>;
|
|
40
|
-
"test navigating frame with form[method=get][data-turbo-action=advance] pushes URL state"(): Promise<void>;
|
|
41
|
-
"test navigating frame with form[method=get][data-turbo-action=advance] to the same URL clears the [aria-busy] and [data-turbo-preview] state"(): Promise<void>;
|
|
42
|
-
"test navigating frame with form[method=post][data-turbo-action=advance] pushes URL state"(): Promise<void>;
|
|
43
|
-
"test navigating frame with form[method=post][data-turbo-action=advance] to the same URL clears the [aria-busy] and [data-turbo-preview] state"(): Promise<void>;
|
|
44
|
-
"test navigating frame with button[data-turbo-action=advance] pushes URL state"(): Promise<void>;
|
|
45
|
-
"test navigating back after pushing URL state from a turbo-frame[data-turbo-action=advance] restores the frames previous contents"(): Promise<void>;
|
|
46
|
-
"test navigating back then forward after pushing URL state from a turbo-frame[data-turbo-action=advance] restores the frames next contents"(): Promise<void>;
|
|
47
|
-
"test turbo:before-fetch-request fires on the frame element"(): Promise<void>;
|
|
48
|
-
"test turbo:before-fetch-response fires on the frame element"(): Promise<void>;
|
|
49
|
-
withoutChangingEventListenersCount(callback: () => void): Promise<void>;
|
|
50
|
-
fillInSelector(selector: string, value: string): Promise<void>;
|
|
51
|
-
get frameScriptEvaluationCount(): Promise<number | undefined>;
|
|
1
|
+
declare global {
|
|
2
|
+
namespace Chai {
|
|
3
|
+
interface AssertStatic {
|
|
4
|
+
equalIgnoringWhitespace(actual: string | null | undefined, expected: string, message?: string): void;
|
|
5
|
+
}
|
|
6
|
+
}
|
|
52
7
|
}
|
|
53
8
|
declare global {
|
|
54
9
|
interface Window {
|
|
55
10
|
frameScriptEvaluationCount?: number;
|
|
56
11
|
}
|
|
57
12
|
}
|
|
13
|
+
export {};
|
|
@@ -1,18 +1,6 @@
|
|
|
1
|
-
import { TurboDriveTestCase } from "../helpers/turbo_drive_test_case";
|
|
2
1
|
declare global {
|
|
3
2
|
interface Window {
|
|
4
3
|
savedElement: Element | null;
|
|
5
4
|
}
|
|
6
5
|
}
|
|
7
|
-
export
|
|
8
|
-
setup(): Promise<void>;
|
|
9
|
-
"test eager loading within a details element"(): Promise<void>;
|
|
10
|
-
"test lazy loading within a details element"(): Promise<void>;
|
|
11
|
-
"test changing loading attribute from lazy to eager loads frame"(): Promise<void>;
|
|
12
|
-
"test navigating a visible frame with loading=lazy navigates"(): Promise<void>;
|
|
13
|
-
"test changing src attribute on a frame with loading=lazy defers navigation"(): Promise<void>;
|
|
14
|
-
"test changing src attribute on a frame with loading=eager navigates"(): Promise<void>;
|
|
15
|
-
"test reloading a frame reloads the content"(): Promise<void>;
|
|
16
|
-
"test navigating away from a page does not reload its frames"(): Promise<void>;
|
|
17
|
-
"test disconnecting and reconnecting a frame does not reload the frame"(): Promise<void>;
|
|
18
|
-
}
|
|
6
|
+
export {};
|
|
@@ -1,38 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export declare class NavigationTests extends TurboDriveTestCase {
|
|
3
|
-
setup(): Promise<void>;
|
|
4
|
-
"test navigating renders a progress bar"(): Promise<void>;
|
|
5
|
-
"test navigating does not render a progress bar before expiring the delay"(): Promise<void>;
|
|
6
|
-
"test after loading the page"(): Promise<void>;
|
|
7
|
-
"test following a same-origin unannotated link"(): Promise<void>;
|
|
8
|
-
"test following a same-origin unannotated custom element link"(): Promise<void>;
|
|
9
|
-
"test following a same-origin unannotated link with search params"(): Promise<void>;
|
|
10
|
-
"test following a same-origin unannotated form[method=GET]"(): Promise<void>;
|
|
11
|
-
"test following a same-origin data-turbo-action=replace link"(): Promise<void>;
|
|
12
|
-
"test following a same-origin GET form[data-turbo-action=replace]"(): Promise<void>;
|
|
13
|
-
"test following a same-origin GET form button[data-turbo-action=replace]"(): Promise<void>;
|
|
14
|
-
"test following a same-origin POST form[data-turbo-action=replace]"(): Promise<void>;
|
|
15
|
-
"test following a same-origin POST form button[data-turbo-action=replace]"(): Promise<void>;
|
|
16
|
-
"test following a same-origin data-turbo=false link"(): Promise<void>;
|
|
17
|
-
"test following a same-origin unannotated link inside a data-turbo=false container"(): Promise<void>;
|
|
18
|
-
"test following a same-origin data-turbo=true link inside a data-turbo=false container"(): Promise<void>;
|
|
19
|
-
"test following a same-origin anchored link"(): Promise<void>;
|
|
20
|
-
"test following a same-origin link to a named anchor"(): Promise<void>;
|
|
21
|
-
"test following a cross-origin unannotated link"(): Promise<void>;
|
|
22
|
-
"test following a same-origin [target] link"(): Promise<void>;
|
|
23
|
-
"test following a same-origin [download] link"(): Promise<void>;
|
|
24
|
-
"test following a same-origin link inside an SVG element"(): Promise<void>;
|
|
25
|
-
"test following a cross-origin link inside an SVG element"(): Promise<void>;
|
|
26
|
-
"test clicking the back button"(): Promise<void>;
|
|
27
|
-
"test clicking the forward button"(): Promise<void>;
|
|
28
|
-
"test link targeting a disabled turbo-frame navigates the page"(): Promise<void>;
|
|
29
|
-
"test skip link with hash-only path scrolls to the anchor without a visit"(): Promise<void>;
|
|
30
|
-
"test skip link with hash-only path moves focus and changes tab order"(): Promise<void>;
|
|
31
|
-
"test same-page anchored replace link assumes the intention was a refresh"(): Promise<void>;
|
|
32
|
-
"test navigating back to anchored URL"(): Promise<void>;
|
|
33
|
-
"test following a redirection"(): Promise<void>;
|
|
34
|
-
"test clicking the back button after redirection"(): Promise<void>;
|
|
35
|
-
"test same-page anchor visits do not trigger visit events"(): Promise<void>;
|
|
36
|
-
"test correct referrer header"(): Promise<void>;
|
|
37
|
-
"test double-clicking on a link"(): Promise<void>;
|
|
38
|
-
}
|
|
1
|
+
export {};
|
|
@@ -1,6 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export declare class PausableRenderingTests extends TurboDriveTestCase {
|
|
3
|
-
setup(): Promise<void>;
|
|
4
|
-
"test pauses and resumes rendering"(): Promise<void>;
|
|
5
|
-
"test aborts rendering"(): Promise<void>;
|
|
6
|
-
}
|
|
1
|
+
export {};
|
|
@@ -1,6 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export declare class PausableRequestsTests extends TurboDriveTestCase {
|
|
3
|
-
setup(): Promise<void>;
|
|
4
|
-
"test pauses and resumes request"(): Promise<void>;
|
|
5
|
-
"test aborts request"(): Promise<void>;
|
|
6
|
-
}
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -1,41 +1,7 @@
|
|
|
1
|
-
import { TurboDriveTestCase } from "../helpers/turbo_drive_test_case";
|
|
2
|
-
import { Element } from "@theintern/leadfoot";
|
|
3
|
-
export declare class RenderingTests extends TurboDriveTestCase {
|
|
4
|
-
setup(): Promise<void>;
|
|
5
|
-
"test triggers before-render and render events"(): Promise<void>;
|
|
6
|
-
"test triggers before-render and render events for error pages"(): Promise<void>;
|
|
7
|
-
"test reloads when tracked elements change"(): Promise<void>;
|
|
8
|
-
"test wont reload when tracked elements has a nonce"(): Promise<void>;
|
|
9
|
-
"test reloads when turbo-visit-control setting is reload"(): Promise<void>;
|
|
10
|
-
"test accumulates asset elements in head"(): Promise<void>;
|
|
11
|
-
"test replaces provisional elements in head"(): Promise<void>;
|
|
12
|
-
"test evaluates head stylesheet elements"(): Promise<void>;
|
|
13
|
-
"test does not evaluate head stylesheet elements inside noscript elements"(): Promise<void>;
|
|
14
|
-
"skip evaluates head script elements once"(): Promise<void>;
|
|
15
|
-
"test evaluates body script elements on each render"(): Promise<void>;
|
|
16
|
-
"test does not evaluate data-turbo-eval=false scripts"(): Promise<void>;
|
|
17
|
-
"test preserves permanent elements"(): Promise<void>;
|
|
18
|
-
"test preserves permanent elements within turbo-frames"(): Promise<void>;
|
|
19
|
-
"test preserves permanent elements within turbo-frames rendered without layouts"(): Promise<void>;
|
|
20
|
-
"test preserves permanent element video playback"(): Promise<void>;
|
|
21
|
-
"test before-cache event"(): Promise<void>;
|
|
22
|
-
"test mutation record as before-cache notification"(): Promise<void>;
|
|
23
|
-
"test error pages"(): Promise<void>;
|
|
24
|
-
get assetElements(): Promise<Element[]>;
|
|
25
|
-
get provisionalElements(): Promise<Element[]>;
|
|
26
|
-
get headElements(): Promise<Element[]>;
|
|
27
|
-
get permanentElement(): Promise<Element>;
|
|
28
|
-
get headScriptEvaluationCount(): Promise<number | undefined>;
|
|
29
|
-
get bodyScriptEvaluationCount(): Promise<number | undefined>;
|
|
30
|
-
get isStylesheetEvaluated(): Promise<boolean>;
|
|
31
|
-
get isNoscriptStylesheetEvaluated(): Promise<boolean>;
|
|
32
|
-
modifyBodyBeforeCaching(): Promise<any>;
|
|
33
|
-
beforeCache(callback: (body: HTMLElement) => void): Promise<any>;
|
|
34
|
-
modifyBodyAfterRemoval(): Promise<any>;
|
|
35
|
-
}
|
|
36
1
|
declare global {
|
|
37
2
|
interface Window {
|
|
38
3
|
headScriptEvaluationCount?: number;
|
|
39
4
|
bodyScriptEvaluationCount?: number;
|
|
40
5
|
}
|
|
41
6
|
}
|
|
7
|
+
export {};
|
|
@@ -1,6 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export declare class ScrollRestorationTests extends TurboDriveTestCase {
|
|
3
|
-
"test landing on an anchor"(): Promise<void>;
|
|
4
|
-
"test reloading after scrolling"(): Promise<void>;
|
|
5
|
-
"test returning from history"(): Promise<void>;
|
|
6
|
-
}
|
|
1
|
+
export {};
|
|
@@ -1,6 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export declare class StreamTests extends FunctionalTestCase {
|
|
3
|
-
setup(): Promise<void>;
|
|
4
|
-
"test receiving a stream message"(): Promise<void>;
|
|
5
|
-
"test receiving a stream message with css selector target"(): Promise<void>;
|
|
6
|
-
}
|
|
1
|
+
export {};
|
|
@@ -1,15 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export declare class VisitTests extends TurboDriveTestCase {
|
|
3
|
-
setup(): Promise<void>;
|
|
4
|
-
"test programmatically visiting a same-origin location"(): Promise<void>;
|
|
5
|
-
"skip programmatically visiting a cross-origin location falls back to window.location"(): Promise<void>;
|
|
6
|
-
"test visiting a location served with a non-HTML content type"(): Promise<void>;
|
|
7
|
-
"test canceling a before-visit event prevents navigation"(): Promise<void>;
|
|
8
|
-
"test navigation by history is not cancelable"(): Promise<void>;
|
|
9
|
-
"test turbo:before-fetch-request event.detail"(): Promise<void>;
|
|
10
|
-
"test turbo:before-fetch-request event.detail encodes searchParams"(): Promise<void>;
|
|
11
|
-
"test turbo:before-fetch-response open new site"(): Promise<void>;
|
|
12
|
-
"test cache does not override response after redirect"(): Promise<void>;
|
|
13
|
-
visitLocation(location: string): Promise<void>;
|
|
14
|
-
cancelNextVisit(): Promise<void>;
|
|
15
|
-
}
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { JSHandle, Locator, Page } from "@playwright/test";
|
|
2
|
+
type Target = string | null;
|
|
3
|
+
type EventType = string;
|
|
4
|
+
type EventDetail = any;
|
|
5
|
+
type EventLog = [EventType, EventDetail, Target];
|
|
6
|
+
type MutationAttributeName = string;
|
|
7
|
+
type MutationAttributeValue = string | null;
|
|
8
|
+
type MutationLog = [MutationAttributeName, Target, MutationAttributeValue];
|
|
9
|
+
type BodyHTML = string;
|
|
10
|
+
type BodyMutationLog = [BodyHTML];
|
|
11
|
+
export declare function attributeForSelector(page: Page, selector: string, attributeName: string): Promise<string | null>;
|
|
12
|
+
type CancellableEvent = "turbo:click" | "turbo:before-visit";
|
|
13
|
+
export declare function cancelNextEvent(page: Page, eventName: CancellableEvent): Promise<void>;
|
|
14
|
+
export declare function clickWithoutScrolling(page: Page, selector: string, options?: {}): Promise<false | void>;
|
|
15
|
+
export declare function clearLocalStorage(page: Page): Promise<void>;
|
|
16
|
+
export declare function disposeAll(...handles: JSHandle[]): Promise<void[]>;
|
|
17
|
+
export declare function getFromLocalStorage(page: Page, key: string): Promise<string | null>;
|
|
18
|
+
export declare function getSearchParam(url: string, key: string): string | null;
|
|
19
|
+
export declare function hash(url: string): string;
|
|
20
|
+
export declare function hasSelector(page: Page, selector: string): Promise<boolean>;
|
|
21
|
+
export declare function innerHTMLForSelector(page: Page, selector: string): Promise<string>;
|
|
22
|
+
export declare function isScrolledToSelector(page: Page, selector: string): Promise<boolean>;
|
|
23
|
+
export declare function nextBeat(): Promise<void>;
|
|
24
|
+
export declare function nextBody(_page: Page, timeout?: number): Promise<void>;
|
|
25
|
+
export declare function nextEventNamed(page: Page, eventName: string): Promise<any>;
|
|
26
|
+
export declare function nextEventOnTarget(page: Page, elementId: string, eventName: string): Promise<any>;
|
|
27
|
+
export declare function listenForEventOnTarget(page: Page, elementId: string, eventName: string): Promise<void>;
|
|
28
|
+
export declare function nextBodyMutation(page: Page): Promise<string | null>;
|
|
29
|
+
export declare function noNextBodyMutation(page: Page): Promise<boolean>;
|
|
30
|
+
export declare function nextAttributeMutationNamed(page: Page, elementId: string, attributeName: string): Promise<string | null>;
|
|
31
|
+
export declare function noNextAttributeMutationNamed(page: Page, elementId: string, attributeName: string): Promise<boolean>;
|
|
32
|
+
export declare function noNextEventNamed(page: Page, eventName: string): Promise<boolean>;
|
|
33
|
+
export declare function noNextEventOnTarget(page: Page, elementId: string, eventName: string): Promise<boolean>;
|
|
34
|
+
export declare function outerHTMLForSelector(page: Page, selector: string): Promise<string>;
|
|
35
|
+
export declare function pathname(url: string): string;
|
|
36
|
+
export declare function pathnameForIFrame(page: Page, name: string): Promise<string>;
|
|
37
|
+
export declare function propertyForSelector(page: Page, selector: string, propertyName: string): Promise<any>;
|
|
38
|
+
export declare function readBodyMutationLogs(page: Page, length?: number): Promise<BodyMutationLog[]>;
|
|
39
|
+
export declare function readEventLogs(page: Page, length?: number): Promise<EventLog[]>;
|
|
40
|
+
export declare function readMutationLogs(page: Page, length?: number): Promise<MutationLog[]>;
|
|
41
|
+
export declare function search(url: string): string;
|
|
42
|
+
export declare function searchParams(url: string): URLSearchParams;
|
|
43
|
+
export declare function selectorHasFocus(page: Page, selector: string): Promise<boolean>;
|
|
44
|
+
export declare function setLocalStorageFromEvent(page: Page, eventName: string, storageKey: string, storageValue: string): Promise<void>;
|
|
45
|
+
export declare function scrollPosition(page: Page): Promise<{
|
|
46
|
+
x: number;
|
|
47
|
+
y: number;
|
|
48
|
+
}>;
|
|
49
|
+
export declare function isScrolledToTop(page: Page): Promise<boolean>;
|
|
50
|
+
export declare function scrollToSelector(page: Page, selector: string): Promise<void>;
|
|
51
|
+
export declare function sleep(timeout?: number): Promise<void>;
|
|
52
|
+
export declare function strictElementEquals(left: Locator, right: Locator): Promise<boolean>;
|
|
53
|
+
export declare function textContent(page: Page, html: string): Promise<string | null>;
|
|
54
|
+
export declare function visitAction(page: Page): Promise<string>;
|
|
55
|
+
export declare function waitForPathname(page: Page, pathname: string): Promise<void>;
|
|
56
|
+
export declare function waitUntilText(page: Page, text: string, state?: "visible" | "attached"): Promise<import("playwright-core").ElementHandle<HTMLElement | SVGElement>>;
|
|
57
|
+
export declare function waitUntilSelector(page: Page, selector: string, state?: "visible" | "attached"): Promise<import("playwright-core").ElementHandle<HTMLElement | SVGElement>>;
|
|
58
|
+
export declare function waitUntilNoSelector(page: Page, selector: string, state?: "hidden" | "detached"): Promise<import("playwright-core").ElementHandle<HTMLElement | SVGElement> | null>;
|
|
59
|
+
export declare function willChangeBody(page: Page, callback: () => Promise<void>): Promise<boolean>;
|
|
60
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type { PageRenderer, PageSnapshot, FrameRenderer, FrameElement, StreamActions, StreamElement, StreamSourceElement, TurboBeforeCacheEvent, TurboBeforeFetchRequestEvent, TurboBeforeFetchResponseEvent, TurboBeforeFrameRenderEvent, TurboBeforeRenderEvent, TurboBeforeStreamRenderEvent, TurboBeforeVisitEvent, TurboClickEvent, TurboFetchRequestErrorEvent, TurboFrameLoadEvent, TurboFrameMissingEvent, TurboFrameRenderEvent, TurboLoadEvent, TurboRenderEvent, TurboStreamAction, TurboStreamActions, TurboSubmitEndEvent, TurboSubmitStartEvent, TurboVisitEvent, } from "../../index";
|
|
@@ -1,13 +1,3 @@
|
|
|
1
1
|
import { DOMTestCase } from "../helpers/dom_test_case";
|
|
2
2
|
export declare class StreamElementTests extends DOMTestCase {
|
|
3
|
-
beforeTest(): Promise<void>;
|
|
4
|
-
"test action=append"(): Promise<void>;
|
|
5
|
-
"test action=append with children ID already present in target"(): Promise<void>;
|
|
6
|
-
"test action=prepend"(): Promise<void>;
|
|
7
|
-
"test action=prepend with children ID already present in target"(): Promise<void>;
|
|
8
|
-
"test action=remove"(): Promise<void>;
|
|
9
|
-
"test action=replace"(): Promise<void>;
|
|
10
|
-
"test action=update"(): Promise<void>;
|
|
11
|
-
"test action=after"(): Promise<void>;
|
|
12
|
-
"test action=before"(): Promise<void>;
|
|
13
3
|
}
|
package/dist/types/util.d.ts
CHANGED
|
@@ -1,9 +1,12 @@
|
|
|
1
|
-
|
|
1
|
+
import { Action } from "./core/types";
|
|
2
|
+
export type DispatchOptions<T extends CustomEvent> = {
|
|
2
3
|
target: EventTarget;
|
|
3
4
|
cancelable: boolean;
|
|
4
|
-
detail:
|
|
5
|
+
detail: T["detail"];
|
|
5
6
|
};
|
|
6
|
-
export declare function
|
|
7
|
+
export declare function activateScriptElement(element: HTMLScriptElement): HTMLScriptElement;
|
|
8
|
+
export declare function createDocumentFragment(html: string): DocumentFragment;
|
|
9
|
+
export declare function dispatch<T extends CustomEvent>(eventName: string, { target, cancelable, detail }?: Partial<DispatchOptions<T>>): CustomEvent<T["detail"]>;
|
|
7
10
|
export declare function nextAnimationFrame(): Promise<void>;
|
|
8
11
|
export declare function nextEventLoopTick(): Promise<void>;
|
|
9
12
|
export declare function nextMicrotask(): Promise<void>;
|
|
@@ -11,5 +14,14 @@ export declare function parseHTMLDocument(html?: string): Document;
|
|
|
11
14
|
export declare function unindent(strings: TemplateStringsArray, ...values: any[]): string;
|
|
12
15
|
export declare function uuid(): string;
|
|
13
16
|
export declare function getAttribute(attributeName: string, ...elements: (Element | undefined)[]): string | null;
|
|
17
|
+
export declare function hasAttribute(attributeName: string, ...elements: (Element | undefined)[]): boolean;
|
|
14
18
|
export declare function markAsBusy(...elements: Element[]): void;
|
|
15
19
|
export declare function clearBusyState(...elements: Element[]): void;
|
|
20
|
+
export declare function waitForLoad(element: HTMLLinkElement, timeoutInMilliseconds?: number): Promise<void>;
|
|
21
|
+
export declare function getHistoryMethodForAction(action: Action): (data: any, unused: string, url?: string | URL | null | undefined) => void;
|
|
22
|
+
export declare function isAction(action: any): action is Action;
|
|
23
|
+
export declare function getVisitAction(...elements: (Element | undefined)[]): Action | null;
|
|
24
|
+
export declare function getMetaElement(name: string): HTMLMetaElement | null;
|
|
25
|
+
export declare function getMetaContent(name: string): string | null;
|
|
26
|
+
export declare function setMetaContent(name: string, content: string): HTMLMetaElement;
|
|
27
|
+
export declare function findClosestRecursively<E extends Element>(element: Element | null, selector: string): E | undefined;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hotwired/turbo",
|
|
3
|
-
"version": "7.
|
|
3
|
+
"version": "7.3.0",
|
|
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",
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
"browser",
|
|
21
21
|
"pushstate"
|
|
22
22
|
],
|
|
23
|
-
"author": "
|
|
23
|
+
"author": "37signals LLC",
|
|
24
24
|
"contributors": [
|
|
25
25
|
"Jeffrey Hardy <jeff@basecamp.com>",
|
|
26
26
|
"Javan Makhmali <javan@javan.us>",
|
|
@@ -35,15 +35,29 @@
|
|
|
35
35
|
"access": "public"
|
|
36
36
|
},
|
|
37
37
|
"devDependencies": {
|
|
38
|
-
"@
|
|
39
|
-
"@
|
|
38
|
+
"@open-wc/testing": "^3.1.7",
|
|
39
|
+
"@playwright/test": "^1.28.0",
|
|
40
|
+
"@rollup/plugin-node-resolve": "13.1.3",
|
|
41
|
+
"@rollup/plugin-typescript": "^11.0.0",
|
|
40
42
|
"@types/multer": "^1.4.5",
|
|
41
|
-
"
|
|
42
|
-
"
|
|
43
|
+
"@typescript-eslint/eslint-plugin": "^5.50.0",
|
|
44
|
+
"@typescript-eslint/parser": "^5.50.0",
|
|
45
|
+
"@web/dev-server-esbuild": "^0.3.3",
|
|
46
|
+
"@web/test-runner": "^0.15.0",
|
|
47
|
+
"@web/test-runner-playwright": "^0.9.0",
|
|
48
|
+
"arg": "^5.0.1",
|
|
49
|
+
"body-parser": "^1.20.1",
|
|
50
|
+
"chai": "~4.3.4",
|
|
51
|
+
"eslint": "^8.13.0",
|
|
52
|
+
"eslint-config-prettier": "^8.5.0",
|
|
53
|
+
"eslint-plugin-prettier": "^4.0.0",
|
|
54
|
+
"express": "^4.18.2",
|
|
43
55
|
"multer": "^1.4.2",
|
|
56
|
+
"prettier": "2.6.2",
|
|
44
57
|
"rollup": "^2.35.1",
|
|
45
|
-
"
|
|
46
|
-
"
|
|
58
|
+
"ts-node": "^10.9.1",
|
|
59
|
+
"tslib": "^2.5.0",
|
|
60
|
+
"typescript": "^4.9.5"
|
|
47
61
|
},
|
|
48
62
|
"scripts": {
|
|
49
63
|
"clean": "rm -fr dist",
|
|
@@ -51,10 +65,15 @@
|
|
|
51
65
|
"build": "tsc --noEmit false --declaration true --emitDeclarationOnly true --outDir dist/types && rollup -c",
|
|
52
66
|
"build:win": "tsc --noEmit false --declaration true --emitDeclarationOnly true --outDir dist/types & rollup -c",
|
|
53
67
|
"watch": "rollup -wc",
|
|
54
|
-
"start": "node src/tests/
|
|
55
|
-
"test": "
|
|
56
|
-
"test:
|
|
57
|
-
"
|
|
58
|
-
"
|
|
68
|
+
"start": "ts-node -O '{\"module\":\"commonjs\"}' src/tests/server.ts",
|
|
69
|
+
"test": "yarn test:unit && yarn test:browser",
|
|
70
|
+
"test:browser": "playwright test",
|
|
71
|
+
"test:unit": "NODE_OPTIONS=--inspect web-test-runner",
|
|
72
|
+
"test:unit:win": "SET NODE_OPTIONS=--inspect & web-test-runner",
|
|
73
|
+
"release": "yarn build && npm publish",
|
|
74
|
+
"lint": "eslint . --ext .ts"
|
|
75
|
+
},
|
|
76
|
+
"engines": {
|
|
77
|
+
"node": ">= 14"
|
|
59
78
|
}
|
|
60
79
|
}
|
package/CHANGELOG.md
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
export interface FormInterceptorDelegate {
|
|
2
|
-
shouldInterceptFormSubmission(element: HTMLFormElement, submitter?: HTMLElement): boolean;
|
|
3
|
-
formSubmissionIntercepted(element: HTMLFormElement, submitter?: HTMLElement): void;
|
|
4
|
-
}
|
|
5
|
-
export declare class FormInterceptor {
|
|
6
|
-
readonly delegate: FormInterceptorDelegate;
|
|
7
|
-
readonly element: Element;
|
|
8
|
-
constructor(delegate: FormInterceptorDelegate, element: Element);
|
|
9
|
-
start(): void;
|
|
10
|
-
stop(): void;
|
|
11
|
-
submitBubbled: EventListener;
|
|
12
|
-
}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
export * from "./async_script_tests";
|
|
2
|
-
export * from "./autofocus_tests";
|
|
3
|
-
export * from "./cache_observer_tests";
|
|
4
|
-
export * from "./drive_disabled_tests";
|
|
5
|
-
export * from "./drive_tests";
|
|
6
|
-
export * from "./form_submission_tests";
|
|
7
|
-
export * from "./frame_tests";
|
|
8
|
-
export * from "./import_tests";
|
|
9
|
-
export * from "./frame_navigation_tests";
|
|
10
|
-
export * from "./loading_tests";
|
|
11
|
-
export * from "./navigation_tests";
|
|
12
|
-
export * from "./pausable_rendering_tests";
|
|
13
|
-
export * from "./pausable_requests_tests";
|
|
14
|
-
export * from "./rendering_tests";
|
|
15
|
-
export * from "./scroll_restoration_tests";
|
|
16
|
-
export * from "./stream_tests";
|
|
17
|
-
export * from "./visit_tests";
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import { InternTestCase } from "./intern_test_case";
|
|
2
|
-
import { Element } from "@theintern/leadfoot";
|
|
3
|
-
export declare class FunctionalTestCase extends InternTestCase {
|
|
4
|
-
get remote(): import("intern/lib/executors/Node").Remote;
|
|
5
|
-
goToLocation(location: string): Promise<void>;
|
|
6
|
-
goBack(): Promise<void>;
|
|
7
|
-
goForward(): Promise<void>;
|
|
8
|
-
reload(): Promise<void>;
|
|
9
|
-
hasSelector(selector: string): Promise<boolean>;
|
|
10
|
-
selectorHasFocus(selector: string): Promise<boolean>;
|
|
11
|
-
querySelector(selector: string): Promise<Element>;
|
|
12
|
-
waitUntilSelector(selector: string): Promise<void>;
|
|
13
|
-
waitUntilNoSelector(selector: string): Promise<void>;
|
|
14
|
-
querySelectorAll(selector: string): Promise<Element[]>;
|
|
15
|
-
clickSelector(selector: string): Promise<void>;
|
|
16
|
-
scrollToSelector(selector: string): Promise<void>;
|
|
17
|
-
pressTab(): Promise<void>;
|
|
18
|
-
outerHTMLForSelector(selector: string): Promise<string>;
|
|
19
|
-
innerHTMLForSelector(selector: string): Promise<string>;
|
|
20
|
-
attributeForSelector(selector: string, attributeName: string): Promise<string | null>;
|
|
21
|
-
propertyForSelector(selector: string, attributeName: string): Promise<any>;
|
|
22
|
-
get scrollPosition(): Promise<{
|
|
23
|
-
x: number;
|
|
24
|
-
y: number;
|
|
25
|
-
}>;
|
|
26
|
-
isScrolledToTop(): Promise<boolean>;
|
|
27
|
-
isScrolledToSelector(selector: string): Promise<boolean>;
|
|
28
|
-
get nextBeat(): Promise<void>;
|
|
29
|
-
sleep(ms: number): Promise<void>;
|
|
30
|
-
evaluate<T>(callback: (...args: any[]) => T, ...args: any[]): Promise<T>;
|
|
31
|
-
get head(): Promise<Element>;
|
|
32
|
-
get body(): Promise<Element>;
|
|
33
|
-
get location(): Promise<string>;
|
|
34
|
-
get origin(): Promise<string>;
|
|
35
|
-
get pathname(): Promise<string>;
|
|
36
|
-
get search(): Promise<string>;
|
|
37
|
-
get searchParams(): Promise<URLSearchParams>;
|
|
38
|
-
getSearchParam(key: string): Promise<string>;
|
|
39
|
-
getAllSearchParams(key: string): Promise<string[]>;
|
|
40
|
-
get hash(): Promise<string>;
|
|
41
|
-
acceptAlert(): Promise<void>;
|
|
42
|
-
dismissAlert(): Promise<void>;
|
|
43
|
-
getAlertText(): Promise<string>;
|
|
44
|
-
}
|