@vidact/start 0.2.0-beta.0 → 0.2.0-beta.4
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/CHANGELOG.md +46 -0
- package/dist/client.d.ts +18 -16
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +137 -165
- package/dist/client.js.map +1 -1
- package/dist/index-client.d.ts +5 -4
- package/dist/index-client.js +4 -4
- package/dist/index.d.ts +5 -4
- package/dist/index.js +4 -4
- package/dist/link-client.d.ts +6 -4
- package/dist/link-client.d.ts.map +1 -1
- package/dist/link-client.js +8 -4
- package/dist/link-client.js.map +1 -1
- package/dist/link-contract.d.ts +10 -7
- package/dist/link-contract.d.ts.map +1 -1
- package/dist/link-contract.js +11 -7
- package/dist/link-contract.js.map +1 -1
- package/dist/link.d.ts +6 -4
- package/dist/link.d.ts.map +1 -1
- package/dist/link.js +8 -4
- package/dist/link.js.map +1 -1
- package/dist/router.d.ts +57 -55
- package/dist/router.d.ts.map +1 -1
- package/dist/router.js +150 -157
- package/dist/router.js.map +1 -1
- package/dist/server.d.ts +18 -16
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +86 -99
- package/dist/server.js.map +1 -1
- package/dist/snapshot.d.ts +13 -10
- package/dist/snapshot.d.ts.map +1 -1
- package/dist/snapshot.js +19 -20
- package/dist/snapshot.js.map +1 -1
- package/dist/virtual.d.ts +3 -2
- package/dist/virtual.js +1 -2
- package/dist/vite.d.ts +18 -15
- package/dist/vite.d.ts.map +1 -1
- package/dist/vite.js +144 -171
- package/dist/vite.js.map +1 -1
- package/package.json +8 -7
- package/src/client.ts +262 -0
- package/src/index-client.ts +3 -0
- package/src/index.ts +3 -0
- package/src/link-client.ts +10 -0
- package/src/link-contract.ts +17 -0
- package/src/link.ts +10 -0
- package/src/router.ts +282 -0
- package/src/server.ts +200 -0
- package/src/snapshot.ts +40 -0
- package/src/virtual.ts +5 -0
- package/src/vite.ts +256 -0
- package/dist/index-client.d.ts.map +0 -1
- package/dist/index-client.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/virtual.d.ts.map +0 -1
- package/dist/virtual.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,51 @@
|
|
|
1
1
|
# @vidact/start
|
|
2
2
|
|
|
3
|
+
## 0.2.0-beta.4
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 917f0be: Re-release CLI
|
|
8
|
+
- Updated dependencies [917f0be]
|
|
9
|
+
- @vidact/runtime@0.2.0-beta.4
|
|
10
|
+
- @vidact/vite@0.2.0-beta.4
|
|
11
|
+
|
|
12
|
+
## 0.2.0-beta.3
|
|
13
|
+
|
|
14
|
+
### Patch Changes
|
|
15
|
+
|
|
16
|
+
- 917f0be: Release vidact CLI
|
|
17
|
+
- Updated dependencies [917f0be]
|
|
18
|
+
- @vidact/runtime@0.2.0-beta.3
|
|
19
|
+
- @vidact/vite@0.2.0-beta.3
|
|
20
|
+
|
|
21
|
+
## 0.2.0-beta.2
|
|
22
|
+
|
|
23
|
+
### Patch Changes
|
|
24
|
+
|
|
25
|
+
- 9b7d659: Build every package with `tsdown` in unbundle mode instead of `tsc` plus two
|
|
26
|
+
repository scripts. `dist` still mirrors `src` file for file, with the same entry
|
|
27
|
+
points, ESM output, declarations, declaration maps, and source maps, and the
|
|
28
|
+
runtime's tree-shaking budgets are unchanged. The Vidact Start ambient route
|
|
29
|
+
module ships as written so it stays an ambient declaration rather than a module
|
|
30
|
+
augmentation.
|
|
31
|
+
|
|
32
|
+
Packages now publish their `src` directory, so the shipped source maps and
|
|
33
|
+
declaration maps resolve. Vite no longer reports "points to missing source
|
|
34
|
+
files" for Vidact modules, debugging steps into real TypeScript, and go-to-
|
|
35
|
+
definition lands on the source rather than the declaration.
|
|
36
|
+
|
|
37
|
+
- Updated dependencies [9b7d659]
|
|
38
|
+
- @vidact/runtime@0.2.0-beta.2
|
|
39
|
+
- @vidact/vite@0.2.0-beta.2
|
|
40
|
+
|
|
41
|
+
## 0.2.0-beta.1
|
|
42
|
+
|
|
43
|
+
### Patch Changes
|
|
44
|
+
|
|
45
|
+
- Updated dependencies [7765e99]
|
|
46
|
+
- @vidact/runtime@0.2.0-beta.1
|
|
47
|
+
- @vidact/vite@0.2.0-beta.1
|
|
48
|
+
|
|
3
49
|
## 0.2.0-beta.0
|
|
4
50
|
|
|
5
51
|
### Minor Changes
|
package/dist/client.d.ts
CHANGED
|
@@ -1,20 +1,22 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
1
|
+
import { RouteManifest, StartComponent } from "./router.js";
|
|
2
|
+
import { CompiledRoot } from "@vidact/runtime";
|
|
3
|
+
//#region src/client.d.ts
|
|
4
|
+
interface HydrateStartOptions {
|
|
5
|
+
readonly fetch?: typeof globalThis.fetch;
|
|
6
|
+
readonly manifest: RouteManifest;
|
|
7
|
+
readonly root?: ParentNode;
|
|
8
|
+
readonly rootId?: string;
|
|
9
|
+
readonly snapshot?: string;
|
|
10
|
+
readonly snapshotId?: string;
|
|
10
11
|
}
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
interface StartNavigateOptions {
|
|
13
|
+
readonly replace?: boolean;
|
|
14
|
+
readonly scroll?: boolean;
|
|
14
15
|
}
|
|
15
|
-
|
|
16
|
-
|
|
16
|
+
interface StartClient extends CompiledRoot {
|
|
17
|
+
readonly navigate: (to: string | URL, options?: StartNavigateOptions) => Promise<boolean>;
|
|
17
18
|
}
|
|
18
|
-
|
|
19
|
-
|
|
19
|
+
declare function hydrateStart(options: HydrateStartOptions): Promise<StartClient>;
|
|
20
|
+
//#endregion
|
|
21
|
+
export { HydrateStartOptions, StartClient, type StartComponent, StartNavigateOptions, hydrateStart };
|
|
20
22
|
//# sourceMappingURL=client.d.ts.map
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","
|
|
1
|
+
{"version":3,"file":"client.d.ts","names":[],"sources":["../src/client.ts"],"mappings":";;;UA0BiB;WACN,eAAe,WAAW;WAC1B,UAAU;WACV,OAAO;WACP;WACA;WACA;;UAGM;WACN;WACA;;UAGM,oBAAoB;WAC1B,WAAW,aAAa,KAAK,UAAU,yBAAyB;;iBAKrD,aAAa,SAAS,sBAAsB,QAAQ"}
|
package/dist/client.js
CHANGED
|
@@ -1,181 +1,153 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
const
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
return {
|
|
99
|
-
mount: root.mount,
|
|
100
|
-
replace: root.replace,
|
|
101
|
-
navigate,
|
|
102
|
-
unmount() {
|
|
103
|
-
if (disposed)
|
|
104
|
-
return;
|
|
105
|
-
disposed = true;
|
|
106
|
-
navigation += 1;
|
|
107
|
-
navigationController?.abort();
|
|
108
|
-
document.removeEventListener('click', handleClick);
|
|
109
|
-
window.removeEventListener('popstate', handlePopState);
|
|
110
|
-
root.unmount();
|
|
111
|
-
},
|
|
112
|
-
};
|
|
1
|
+
import { composeRouteMatches, loadRouteMatches, matchRoutes } from "./router.js";
|
|
2
|
+
import { VIDACT_START_NAVIGATION_HEADER, decodeStartSnapshot } from "./snapshot.js";
|
|
3
|
+
import { cloneRenderable, compiledRoot, createCompiledScope } from "@vidact/runtime";
|
|
4
|
+
import { createElement, hydrateRoot } from "@vidact/runtime/hydrate";
|
|
5
|
+
//#region src/client.ts
|
|
6
|
+
const DEFAULT_ROOT_ID = "vidact-start-root";
|
|
7
|
+
const DEFAULT_SNAPSHOT_ID = "vidact-start-snapshot";
|
|
8
|
+
async function hydrateStart(options) {
|
|
9
|
+
const snapshot = decodeStartSnapshot(options.snapshot ?? readSnapshot(options.snapshotId ?? DEFAULT_SNAPSHOT_ID));
|
|
10
|
+
const initialUrl = new URL(snapshot.pathname, window.location.href);
|
|
11
|
+
const matches = matchRoutes(options.manifest, initialUrl.pathname);
|
|
12
|
+
if (matches.length === 0) throw new Error(`cannot hydrate unmatched route ${snapshot.pathname}`);
|
|
13
|
+
const request = new Request(initialUrl);
|
|
14
|
+
const loaded = await loadRouteMatches(matches, request, snapshot.loaderData);
|
|
15
|
+
const host = options.root ?? document.querySelector(`#${CSS.escape(options.rootId ?? DEFAULT_ROOT_ID)}`);
|
|
16
|
+
if (host === null) throw new Error("Vidact Start hydration root is missing");
|
|
17
|
+
const root = hydrateRoot(host, createClientApplication(loaded, request.url));
|
|
18
|
+
const fetchNavigation = options.fetch ?? window.fetch.bind(window);
|
|
19
|
+
let navigation = 0;
|
|
20
|
+
let navigationController;
|
|
21
|
+
let disposed = false;
|
|
22
|
+
async function navigate(to, navigationOptions = {}) {
|
|
23
|
+
return performNavigation(new URL(to, window.location.href), navigationOptions.replace === true ? "replace" : "push", navigationOptions.scroll !== false);
|
|
24
|
+
}
|
|
25
|
+
async function performNavigation(target, historyMode, scroll) {
|
|
26
|
+
if (disposed) throw new Error("cannot navigate an unmounted Vidact Start client");
|
|
27
|
+
if (!isClientNavigationUrl(target)) {
|
|
28
|
+
navigateDocument(target, historyMode === "replace");
|
|
29
|
+
return false;
|
|
30
|
+
}
|
|
31
|
+
if (matchRoutes(options.manifest, target.pathname).length === 0) {
|
|
32
|
+
navigateDocument(target, historyMode === "replace");
|
|
33
|
+
return false;
|
|
34
|
+
}
|
|
35
|
+
navigation += 1;
|
|
36
|
+
const attempt = navigation;
|
|
37
|
+
navigationController?.abort();
|
|
38
|
+
const controller = new AbortController();
|
|
39
|
+
navigationController = controller;
|
|
40
|
+
try {
|
|
41
|
+
const response = await fetchNavigation(target, {
|
|
42
|
+
credentials: "same-origin",
|
|
43
|
+
headers: { [VIDACT_START_NAVIGATION_HEADER]: "1" },
|
|
44
|
+
signal: controller.signal
|
|
45
|
+
});
|
|
46
|
+
if (attempt !== navigation) return false;
|
|
47
|
+
if (!response.ok || response.headers.get("content-type")?.split(";", 1)[0] !== "application/x-vidact-start+json") {
|
|
48
|
+
navigateDocument(target, historyMode === "replace");
|
|
49
|
+
return false;
|
|
50
|
+
}
|
|
51
|
+
const nextSnapshot = decodeStartSnapshot(await response.text());
|
|
52
|
+
const nextUrl = new URL(nextSnapshot.pathname, target.origin);
|
|
53
|
+
const snapshotMatches = matchRoutes(options.manifest, nextUrl.pathname);
|
|
54
|
+
if (snapshotMatches.length === 0) {
|
|
55
|
+
navigateDocument(target, historyMode === "replace");
|
|
56
|
+
return false;
|
|
57
|
+
}
|
|
58
|
+
const nextRequest = new Request(nextUrl);
|
|
59
|
+
const nextLoaded = await loadRouteMatches(snapshotMatches, nextRequest, nextSnapshot.loaderData);
|
|
60
|
+
if (attempt !== navigation) return false;
|
|
61
|
+
root.replace(createClientApplication(nextLoaded, nextRequest.url));
|
|
62
|
+
updateHistory(nextUrl, historyMode);
|
|
63
|
+
if (scroll) scrollToLocation(nextUrl);
|
|
64
|
+
return true;
|
|
65
|
+
} catch {
|
|
66
|
+
if (controller.signal.aborted || attempt !== navigation) return false;
|
|
67
|
+
navigateDocument(target, historyMode === "replace");
|
|
68
|
+
return false;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
function handleClick(event) {
|
|
72
|
+
const anchor = linkForEvent(event);
|
|
73
|
+
if (anchor === void 0) return;
|
|
74
|
+
const target = new URL(anchor.href, window.location.href);
|
|
75
|
+
if (target.pathname === window.location.pathname && target.search === window.location.search && target.hash !== window.location.hash) return;
|
|
76
|
+
event.preventDefault();
|
|
77
|
+
performNavigation(target, anchor.hasAttribute("data-vidact-start-replace") ? "replace" : "push", true);
|
|
78
|
+
}
|
|
79
|
+
function handlePopState() {
|
|
80
|
+
performNavigation(new URL(window.location.href), "none", false);
|
|
81
|
+
}
|
|
82
|
+
document.addEventListener("click", handleClick);
|
|
83
|
+
window.addEventListener("popstate", handlePopState);
|
|
84
|
+
return {
|
|
85
|
+
mount: root.mount,
|
|
86
|
+
replace: root.replace,
|
|
87
|
+
navigate,
|
|
88
|
+
unmount() {
|
|
89
|
+
if (disposed) return;
|
|
90
|
+
disposed = true;
|
|
91
|
+
navigation += 1;
|
|
92
|
+
navigationController?.abort();
|
|
93
|
+
document.removeEventListener("click", handleClick);
|
|
94
|
+
window.removeEventListener("popstate", handlePopState);
|
|
95
|
+
root.unmount();
|
|
96
|
+
}
|
|
97
|
+
};
|
|
113
98
|
}
|
|
114
99
|
function createClientApplication(matches, requestUrl) {
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
100
|
+
return () => {
|
|
101
|
+
const scope = createCompiledScope();
|
|
102
|
+
const application = composeRouteMatches(matches, (component, props) => createElement(component, props), requestUrl);
|
|
103
|
+
return compiledRoot(scope, () => cloneRenderable(application));
|
|
104
|
+
};
|
|
120
105
|
}
|
|
121
106
|
function linkForEvent(event) {
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
return undefined;
|
|
129
|
-
}
|
|
130
|
-
const target = event.target;
|
|
131
|
-
if (!(target instanceof Element))
|
|
132
|
-
return undefined;
|
|
133
|
-
const anchor = target.closest('a[data-vidact-start-link]');
|
|
134
|
-
if (anchor === null ||
|
|
135
|
-
anchor.hasAttribute('download') ||
|
|
136
|
-
(anchor.target !== '' && anchor.target !== '_self') ||
|
|
137
|
-
anchor.rel.split(/\s+/u).includes('external')) {
|
|
138
|
-
return undefined;
|
|
139
|
-
}
|
|
140
|
-
const url = new URL(anchor.href, window.location.href);
|
|
141
|
-
return isClientNavigationUrl(url) ? anchor : undefined;
|
|
107
|
+
if (event.defaultPrevented || event.button !== 0 || event.metaKey || event.ctrlKey || event.shiftKey || event.altKey) return;
|
|
108
|
+
const target = event.target;
|
|
109
|
+
if (!(target instanceof Element)) return void 0;
|
|
110
|
+
const anchor = target.closest("a[data-vidact-start-link]");
|
|
111
|
+
if (anchor === null || anchor.hasAttribute("download") || anchor.target !== "" && anchor.target !== "_self" || anchor.rel.split(/\s+/u).includes("external")) return;
|
|
112
|
+
return isClientNavigationUrl(new URL(anchor.href, window.location.href)) ? anchor : void 0;
|
|
142
113
|
}
|
|
143
114
|
function isClientNavigationUrl(url) {
|
|
144
|
-
|
|
115
|
+
return url.origin === window.location.origin && (url.protocol === "http:" || url.protocol === "https:");
|
|
145
116
|
}
|
|
146
117
|
function updateHistory(url, mode) {
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
else if (mode === 'replace')
|
|
150
|
-
window.history.replaceState(window.history.state, '', url);
|
|
118
|
+
if (mode === "push") window.history.pushState({}, "", url);
|
|
119
|
+
else if (mode === "replace") window.history.replaceState(window.history.state, "", url);
|
|
151
120
|
}
|
|
152
121
|
function scrollToLocation(url) {
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
122
|
+
if (url.hash.length > 1) {
|
|
123
|
+
let id;
|
|
124
|
+
try {
|
|
125
|
+
id = decodeURIComponent(url.hash.slice(1));
|
|
126
|
+
} catch {
|
|
127
|
+
id = url.hash.slice(1);
|
|
128
|
+
}
|
|
129
|
+
const target = document.getElementById(id);
|
|
130
|
+
if (target !== null) {
|
|
131
|
+
target.scrollIntoView();
|
|
132
|
+
return;
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
window.scrollTo({
|
|
136
|
+
top: 0,
|
|
137
|
+
left: 0,
|
|
138
|
+
behavior: "instant"
|
|
139
|
+
});
|
|
168
140
|
}
|
|
169
141
|
function navigateDocument(url, replace) {
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
else
|
|
173
|
-
window.location.assign(url);
|
|
142
|
+
if (replace) window.location.replace(url);
|
|
143
|
+
else window.location.assign(url);
|
|
174
144
|
}
|
|
175
145
|
function readSnapshot(id) {
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
return element.textContent ?? '';
|
|
146
|
+
const element = document.querySelector(`#${CSS.escape(id)}`);
|
|
147
|
+
if (element === null) throw new Error(`Vidact Start snapshot ${id} is missing`);
|
|
148
|
+
return element.textContent ?? "";
|
|
180
149
|
}
|
|
150
|
+
//#endregion
|
|
151
|
+
export { hydrateStart };
|
|
152
|
+
|
|
181
153
|
//# sourceMappingURL=client.js.map
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","
|
|
1
|
+
{"version":3,"file":"client.js","names":[],"sources":["../src/client.ts"],"mappings":"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"}
|
package/dist/index-client.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
import { FileRouteDefinition, FileRouteOptions, LoadedRouteMatch, ResolvedRouteMatch, RouteComponentProps, RouteLoaderContext, RouteManifest, RouteManifestEntry, RouteMatch, RouteModule, RouteParameters, RouteServerContext, RouteServerHandler, StartComponent, composeRouteMatches, createRouteManifest, defineFileRoute, isFileRouteDefinition, loadRouteMatches, matchRoutes, resolveRouteMatches, routeLoaderData, runRouteLoaders } from "./router.js";
|
|
2
|
+
import { LinkProps } from "./link-contract.js";
|
|
3
|
+
import { Link } from "./link-client.js";
|
|
4
|
+
import { StartSnapshot, VIDACT_START_NAVIGATION_HEADER, VIDACT_START_PROTOCOL, VIDACT_START_SNAPSHOT_MEDIA_TYPE, decodeStartSnapshot, encodeStartSnapshot } from "./snapshot.js";
|
|
5
|
+
export { FileRouteDefinition, FileRouteOptions, Link, type LinkProps, LoadedRouteMatch, ResolvedRouteMatch, RouteComponentProps, RouteLoaderContext, RouteManifest, RouteManifestEntry, RouteMatch, RouteModule, RouteParameters, RouteServerContext, RouteServerHandler, StartComponent, StartSnapshot, VIDACT_START_NAVIGATION_HEADER, VIDACT_START_PROTOCOL, VIDACT_START_SNAPSHOT_MEDIA_TYPE, composeRouteMatches, createRouteManifest, decodeStartSnapshot, defineFileRoute, encodeStartSnapshot, isFileRouteDefinition, loadRouteMatches, matchRoutes, resolveRouteMatches, routeLoaderData, runRouteLoaders };
|
package/dist/index-client.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
import { composeRouteMatches, createRouteManifest, defineFileRoute, isFileRouteDefinition, loadRouteMatches, matchRoutes, resolveRouteMatches, routeLoaderData, runRouteLoaders } from "./router.js";
|
|
2
|
+
import { VIDACT_START_NAVIGATION_HEADER, VIDACT_START_PROTOCOL, VIDACT_START_SNAPSHOT_MEDIA_TYPE, decodeStartSnapshot, encodeStartSnapshot } from "./snapshot.js";
|
|
3
|
+
import { Link } from "./link-client.js";
|
|
4
|
+
export { Link, VIDACT_START_NAVIGATION_HEADER, VIDACT_START_PROTOCOL, VIDACT_START_SNAPSHOT_MEDIA_TYPE, composeRouteMatches, createRouteManifest, decodeStartSnapshot, defineFileRoute, encodeStartSnapshot, isFileRouteDefinition, loadRouteMatches, matchRoutes, resolveRouteMatches, routeLoaderData, runRouteLoaders };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
import { FileRouteDefinition, FileRouteOptions, LoadedRouteMatch, ResolvedRouteMatch, RouteComponentProps, RouteLoaderContext, RouteManifest, RouteManifestEntry, RouteMatch, RouteModule, RouteParameters, RouteServerContext, RouteServerHandler, StartComponent, composeRouteMatches, createRouteManifest, defineFileRoute, isFileRouteDefinition, loadRouteMatches, matchRoutes, resolveRouteMatches, routeLoaderData, runRouteLoaders } from "./router.js";
|
|
2
|
+
import { LinkProps } from "./link-contract.js";
|
|
3
|
+
import { StartSnapshot, VIDACT_START_NAVIGATION_HEADER, VIDACT_START_PROTOCOL, VIDACT_START_SNAPSHOT_MEDIA_TYPE, decodeStartSnapshot, encodeStartSnapshot } from "./snapshot.js";
|
|
4
|
+
import { Link } from "./link.js";
|
|
5
|
+
export { FileRouteDefinition, FileRouteOptions, Link, type LinkProps, LoadedRouteMatch, ResolvedRouteMatch, RouteComponentProps, RouteLoaderContext, RouteManifest, RouteManifestEntry, RouteMatch, RouteModule, RouteParameters, RouteServerContext, RouteServerHandler, StartComponent, StartSnapshot, VIDACT_START_NAVIGATION_HEADER, VIDACT_START_PROTOCOL, VIDACT_START_SNAPSHOT_MEDIA_TYPE, composeRouteMatches, createRouteManifest, decodeStartSnapshot, defineFileRoute, encodeStartSnapshot, isFileRouteDefinition, loadRouteMatches, matchRoutes, resolveRouteMatches, routeLoaderData, runRouteLoaders };
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
import { composeRouteMatches, createRouteManifest, defineFileRoute, isFileRouteDefinition, loadRouteMatches, matchRoutes, resolveRouteMatches, routeLoaderData, runRouteLoaders } from "./router.js";
|
|
2
|
+
import { VIDACT_START_NAVIGATION_HEADER, VIDACT_START_PROTOCOL, VIDACT_START_SNAPSHOT_MEDIA_TYPE, decodeStartSnapshot, encodeStartSnapshot } from "./snapshot.js";
|
|
3
|
+
import { Link } from "./link.js";
|
|
4
|
+
export { Link, VIDACT_START_NAVIGATION_HEADER, VIDACT_START_PROTOCOL, VIDACT_START_SNAPSHOT_MEDIA_TYPE, composeRouteMatches, createRouteManifest, decodeStartSnapshot, defineFileRoute, encodeStartSnapshot, isFileRouteDefinition, loadRouteMatches, matchRoutes, resolveRouteMatches, routeLoaderData, runRouteLoaders };
|
package/dist/link-client.d.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
import { LinkProps } from "./link-contract.js";
|
|
2
|
+
import { CompiledRenderValue } from "@vidact/runtime";
|
|
3
|
+
//#region src/link-client.d.ts
|
|
4
|
+
declare function Link(props: LinkProps): CompiledRenderValue;
|
|
5
|
+
//#endregion
|
|
6
|
+
export { Link, type LinkProps };
|
|
5
7
|
//# sourceMappingURL=link-client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"link-client.d.ts","
|
|
1
|
+
{"version":3,"file":"link-client.d.ts","names":[],"sources":["../src/link-client.ts"],"mappings":";;;iBAKgB,KAAK,OAAO,YAAY"}
|
package/dist/link-client.js
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
import { anchorProps } from "./link-contract.js";
|
|
2
|
+
import { createElement } from "@vidact/runtime/hydrate";
|
|
3
|
+
//#region src/link-client.ts
|
|
4
|
+
function Link(props) {
|
|
5
|
+
return createElement("a", anchorProps(props));
|
|
5
6
|
}
|
|
7
|
+
//#endregion
|
|
8
|
+
export { Link };
|
|
9
|
+
|
|
6
10
|
//# sourceMappingURL=link-client.js.map
|
package/dist/link-client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"link-client.js","
|
|
1
|
+
{"version":3,"file":"link-client.js","names":[],"sources":["../src/link-client.ts"],"mappings":";;;AAKA,SAAgB,KAAK,OAAuC;CAC1D,OAAO,cAAc,KAAK,YAAY,KAAK,CAAC;AAC9C"}
|
package/dist/link-contract.d.ts
CHANGED
|
@@ -1,9 +1,12 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
import { CompiledRenderValue } from "@vidact/runtime";
|
|
2
|
+
//#region src/link-contract.d.ts
|
|
3
|
+
interface LinkProps extends Readonly<Record<string, unknown>> {
|
|
4
|
+
readonly children?: CompiledRenderValue;
|
|
5
|
+
readonly href: string;
|
|
6
|
+
readonly reloadDocument?: boolean;
|
|
7
|
+
readonly replace?: boolean;
|
|
7
8
|
}
|
|
8
|
-
|
|
9
|
+
declare function anchorProps(props: LinkProps): Record<string, unknown>;
|
|
10
|
+
//#endregion
|
|
11
|
+
export { LinkProps, anchorProps };
|
|
9
12
|
//# sourceMappingURL=link-contract.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"link-contract.d.ts","
|
|
1
|
+
{"version":3,"file":"link-contract.d.ts","names":[],"sources":["../src/link-contract.ts"],"mappings":";;UAEiB,kBAAkB,SAAS;WACjC,WAAW;WACX;WACA;WACA;;iBAGK,YAAY,OAAO,YAAY"}
|
package/dist/link-contract.js
CHANGED
|
@@ -1,9 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
1
|
+
//#region src/link-contract.ts
|
|
2
|
+
function anchorProps(props) {
|
|
3
|
+
const { reloadDocument = false, replace = false, ...attributes } = props;
|
|
4
|
+
return {
|
|
5
|
+
...attributes,
|
|
6
|
+
...reloadDocument ? {} : { "data-vidact-start-link": "" },
|
|
7
|
+
...replace ? { "data-vidact-start-replace": "" } : {}
|
|
8
|
+
};
|
|
8
9
|
}
|
|
10
|
+
//#endregion
|
|
11
|
+
export { anchorProps };
|
|
12
|
+
|
|
9
13
|
//# sourceMappingURL=link-contract.js.map
|