@hybridly/core 0.7.13 → 0.7.15
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/dist/index.cjs +13 -1
- package/dist/index.d.cts +3 -1
- package/dist/index.d.mts +3 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.mjs +13 -1
- package/package.json +3 -3
package/dist/index.cjs
CHANGED
|
@@ -13,6 +13,7 @@ const axios__default = /*#__PURE__*/_interopDefaultCompat(axios);
|
|
|
13
13
|
const STORAGE_EXTERNAL_KEY = "hybridly:external";
|
|
14
14
|
const HYBRIDLY_HEADER = "x-hybrid";
|
|
15
15
|
const EXTERNAL_NAVIGATION_HEADER = `${HYBRIDLY_HEADER}-external`;
|
|
16
|
+
const EXTERNAL_NAVIGATION_TARGET_HEADER = `${HYBRIDLY_HEADER}-external-target`;
|
|
16
17
|
const PARTIAL_COMPONENT_HEADER = `${HYBRIDLY_HEADER}-partial-component`;
|
|
17
18
|
const ONLY_DATA_HEADER = `${HYBRIDLY_HEADER}-only-data`;
|
|
18
19
|
const DIALOG_KEY_HEADER = `${HYBRIDLY_HEADER}-dialog-key`;
|
|
@@ -29,6 +30,7 @@ const constants = {
|
|
|
29
30
|
ERROR_BAG_HEADER: ERROR_BAG_HEADER,
|
|
30
31
|
EXCEPT_DATA_HEADER: EXCEPT_DATA_HEADER,
|
|
31
32
|
EXTERNAL_NAVIGATION_HEADER: EXTERNAL_NAVIGATION_HEADER,
|
|
33
|
+
EXTERNAL_NAVIGATION_TARGET_HEADER: EXTERNAL_NAVIGATION_TARGET_HEADER,
|
|
32
34
|
HYBRIDLY_HEADER: HYBRIDLY_HEADER,
|
|
33
35
|
ONLY_DATA_HEADER: ONLY_DATA_HEADER,
|
|
34
36
|
PARTIAL_COMPONENT_HEADER: PARTIAL_COMPONENT_HEADER,
|
|
@@ -618,6 +620,15 @@ function payloadFromContext() {
|
|
|
618
620
|
|
|
619
621
|
async function performExternalNavigation(options) {
|
|
620
622
|
utils.debug.external("Navigating to an external URL:", options);
|
|
623
|
+
if (options.target === "new-tab") {
|
|
624
|
+
const link = document.createElement("a");
|
|
625
|
+
link.style.display = "none";
|
|
626
|
+
link.target = "_blank";
|
|
627
|
+
link.href = options.url;
|
|
628
|
+
link.click();
|
|
629
|
+
setTimeout(() => link.remove(), 0);
|
|
630
|
+
return;
|
|
631
|
+
}
|
|
621
632
|
window.sessionStorage.setItem(STORAGE_EXTERNAL_KEY, JSON.stringify(options));
|
|
622
633
|
window.location.href = options.url;
|
|
623
634
|
if (sameUrls(window.location, options.url)) {
|
|
@@ -826,7 +837,8 @@ async function performHybridNavigation(options) {
|
|
|
826
837
|
utils.debug.router("The response is explicitely external.");
|
|
827
838
|
await performExternalNavigation({
|
|
828
839
|
url: fillHash(targetUrl, response.headers[EXTERNAL_NAVIGATION_HEADER]),
|
|
829
|
-
preserveScroll: options.preserveScroll === true
|
|
840
|
+
preserveScroll: options.preserveScroll === true,
|
|
841
|
+
target: response.headers[EXTERNAL_NAVIGATION_TARGET_HEADER] ?? "current"
|
|
830
842
|
});
|
|
831
843
|
return { response };
|
|
832
844
|
}
|
package/dist/index.d.cts
CHANGED
|
@@ -500,6 +500,7 @@ interface Component {
|
|
|
500
500
|
declare const STORAGE_EXTERNAL_KEY = "hybridly:external";
|
|
501
501
|
declare const HYBRIDLY_HEADER = "x-hybrid";
|
|
502
502
|
declare const EXTERNAL_NAVIGATION_HEADER = "x-hybrid-external";
|
|
503
|
+
declare const EXTERNAL_NAVIGATION_TARGET_HEADER = "x-hybrid-external-target";
|
|
503
504
|
declare const PARTIAL_COMPONENT_HEADER = "x-hybrid-partial-component";
|
|
504
505
|
declare const ONLY_DATA_HEADER = "x-hybrid-only-data";
|
|
505
506
|
declare const DIALOG_KEY_HEADER = "x-hybrid-dialog-key";
|
|
@@ -514,6 +515,7 @@ declare const constants_DIALOG_REDIRECT_HEADER: typeof DIALOG_REDIRECT_HEADER;
|
|
|
514
515
|
declare const constants_ERROR_BAG_HEADER: typeof ERROR_BAG_HEADER;
|
|
515
516
|
declare const constants_EXCEPT_DATA_HEADER: typeof EXCEPT_DATA_HEADER;
|
|
516
517
|
declare const constants_EXTERNAL_NAVIGATION_HEADER: typeof EXTERNAL_NAVIGATION_HEADER;
|
|
518
|
+
declare const constants_EXTERNAL_NAVIGATION_TARGET_HEADER: typeof EXTERNAL_NAVIGATION_TARGET_HEADER;
|
|
517
519
|
declare const constants_HYBRIDLY_HEADER: typeof HYBRIDLY_HEADER;
|
|
518
520
|
declare const constants_ONLY_DATA_HEADER: typeof ONLY_DATA_HEADER;
|
|
519
521
|
declare const constants_PARTIAL_COMPONENT_HEADER: typeof PARTIAL_COMPONENT_HEADER;
|
|
@@ -521,7 +523,7 @@ declare const constants_SCROLL_REGION_ATTRIBUTE: typeof SCROLL_REGION_ATTRIBUTE;
|
|
|
521
523
|
declare const constants_STORAGE_EXTERNAL_KEY: typeof STORAGE_EXTERNAL_KEY;
|
|
522
524
|
declare const constants_VERSION_HEADER: typeof VERSION_HEADER;
|
|
523
525
|
declare namespace constants {
|
|
524
|
-
export { constants_DIALOG_KEY_HEADER as DIALOG_KEY_HEADER, constants_DIALOG_REDIRECT_HEADER as DIALOG_REDIRECT_HEADER, constants_ERROR_BAG_HEADER as ERROR_BAG_HEADER, constants_EXCEPT_DATA_HEADER as EXCEPT_DATA_HEADER, constants_EXTERNAL_NAVIGATION_HEADER as EXTERNAL_NAVIGATION_HEADER, constants_HYBRIDLY_HEADER as HYBRIDLY_HEADER, constants_ONLY_DATA_HEADER as ONLY_DATA_HEADER, constants_PARTIAL_COMPONENT_HEADER as PARTIAL_COMPONENT_HEADER, constants_SCROLL_REGION_ATTRIBUTE as SCROLL_REGION_ATTRIBUTE, constants_STORAGE_EXTERNAL_KEY as STORAGE_EXTERNAL_KEY, constants_VERSION_HEADER as VERSION_HEADER };
|
|
526
|
+
export { constants_DIALOG_KEY_HEADER as DIALOG_KEY_HEADER, constants_DIALOG_REDIRECT_HEADER as DIALOG_REDIRECT_HEADER, constants_ERROR_BAG_HEADER as ERROR_BAG_HEADER, constants_EXCEPT_DATA_HEADER as EXCEPT_DATA_HEADER, constants_EXTERNAL_NAVIGATION_HEADER as EXTERNAL_NAVIGATION_HEADER, constants_EXTERNAL_NAVIGATION_TARGET_HEADER as EXTERNAL_NAVIGATION_TARGET_HEADER, constants_HYBRIDLY_HEADER as HYBRIDLY_HEADER, constants_ONLY_DATA_HEADER as ONLY_DATA_HEADER, constants_PARTIAL_COMPONENT_HEADER as PARTIAL_COMPONENT_HEADER, constants_SCROLL_REGION_ATTRIBUTE as SCROLL_REGION_ATTRIBUTE, constants_STORAGE_EXTERNAL_KEY as STORAGE_EXTERNAL_KEY, constants_VERSION_HEADER as VERSION_HEADER };
|
|
525
527
|
}
|
|
526
528
|
|
|
527
529
|
export { type Authorizable, type DynamicConfiguration, type GlobalRouteCollection, type HybridPayload, type HybridRequestOptions, type MaybePromise, type Method, type NavigationResponse, type Plugin, type Progress, type ResolveComponent, type RouteDefinition, type RouteName, type RouteParameters, type Router, type RouterContext, type RouterContextOptions, type RoutingConfiguration, type UrlResolvable, can, constants, createRouter, definePlugin, getRouterContext, makeUrl, registerHook, route, router, sameUrls };
|
package/dist/index.d.mts
CHANGED
|
@@ -500,6 +500,7 @@ interface Component {
|
|
|
500
500
|
declare const STORAGE_EXTERNAL_KEY = "hybridly:external";
|
|
501
501
|
declare const HYBRIDLY_HEADER = "x-hybrid";
|
|
502
502
|
declare const EXTERNAL_NAVIGATION_HEADER = "x-hybrid-external";
|
|
503
|
+
declare const EXTERNAL_NAVIGATION_TARGET_HEADER = "x-hybrid-external-target";
|
|
503
504
|
declare const PARTIAL_COMPONENT_HEADER = "x-hybrid-partial-component";
|
|
504
505
|
declare const ONLY_DATA_HEADER = "x-hybrid-only-data";
|
|
505
506
|
declare const DIALOG_KEY_HEADER = "x-hybrid-dialog-key";
|
|
@@ -514,6 +515,7 @@ declare const constants_DIALOG_REDIRECT_HEADER: typeof DIALOG_REDIRECT_HEADER;
|
|
|
514
515
|
declare const constants_ERROR_BAG_HEADER: typeof ERROR_BAG_HEADER;
|
|
515
516
|
declare const constants_EXCEPT_DATA_HEADER: typeof EXCEPT_DATA_HEADER;
|
|
516
517
|
declare const constants_EXTERNAL_NAVIGATION_HEADER: typeof EXTERNAL_NAVIGATION_HEADER;
|
|
518
|
+
declare const constants_EXTERNAL_NAVIGATION_TARGET_HEADER: typeof EXTERNAL_NAVIGATION_TARGET_HEADER;
|
|
517
519
|
declare const constants_HYBRIDLY_HEADER: typeof HYBRIDLY_HEADER;
|
|
518
520
|
declare const constants_ONLY_DATA_HEADER: typeof ONLY_DATA_HEADER;
|
|
519
521
|
declare const constants_PARTIAL_COMPONENT_HEADER: typeof PARTIAL_COMPONENT_HEADER;
|
|
@@ -521,7 +523,7 @@ declare const constants_SCROLL_REGION_ATTRIBUTE: typeof SCROLL_REGION_ATTRIBUTE;
|
|
|
521
523
|
declare const constants_STORAGE_EXTERNAL_KEY: typeof STORAGE_EXTERNAL_KEY;
|
|
522
524
|
declare const constants_VERSION_HEADER: typeof VERSION_HEADER;
|
|
523
525
|
declare namespace constants {
|
|
524
|
-
export { constants_DIALOG_KEY_HEADER as DIALOG_KEY_HEADER, constants_DIALOG_REDIRECT_HEADER as DIALOG_REDIRECT_HEADER, constants_ERROR_BAG_HEADER as ERROR_BAG_HEADER, constants_EXCEPT_DATA_HEADER as EXCEPT_DATA_HEADER, constants_EXTERNAL_NAVIGATION_HEADER as EXTERNAL_NAVIGATION_HEADER, constants_HYBRIDLY_HEADER as HYBRIDLY_HEADER, constants_ONLY_DATA_HEADER as ONLY_DATA_HEADER, constants_PARTIAL_COMPONENT_HEADER as PARTIAL_COMPONENT_HEADER, constants_SCROLL_REGION_ATTRIBUTE as SCROLL_REGION_ATTRIBUTE, constants_STORAGE_EXTERNAL_KEY as STORAGE_EXTERNAL_KEY, constants_VERSION_HEADER as VERSION_HEADER };
|
|
526
|
+
export { constants_DIALOG_KEY_HEADER as DIALOG_KEY_HEADER, constants_DIALOG_REDIRECT_HEADER as DIALOG_REDIRECT_HEADER, constants_ERROR_BAG_HEADER as ERROR_BAG_HEADER, constants_EXCEPT_DATA_HEADER as EXCEPT_DATA_HEADER, constants_EXTERNAL_NAVIGATION_HEADER as EXTERNAL_NAVIGATION_HEADER, constants_EXTERNAL_NAVIGATION_TARGET_HEADER as EXTERNAL_NAVIGATION_TARGET_HEADER, constants_HYBRIDLY_HEADER as HYBRIDLY_HEADER, constants_ONLY_DATA_HEADER as ONLY_DATA_HEADER, constants_PARTIAL_COMPONENT_HEADER as PARTIAL_COMPONENT_HEADER, constants_SCROLL_REGION_ATTRIBUTE as SCROLL_REGION_ATTRIBUTE, constants_STORAGE_EXTERNAL_KEY as STORAGE_EXTERNAL_KEY, constants_VERSION_HEADER as VERSION_HEADER };
|
|
525
527
|
}
|
|
526
528
|
|
|
527
529
|
export { type Authorizable, type DynamicConfiguration, type GlobalRouteCollection, type HybridPayload, type HybridRequestOptions, type MaybePromise, type Method, type NavigationResponse, type Plugin, type Progress, type ResolveComponent, type RouteDefinition, type RouteName, type RouteParameters, type Router, type RouterContext, type RouterContextOptions, type RoutingConfiguration, type UrlResolvable, can, constants, createRouter, definePlugin, getRouterContext, makeUrl, registerHook, route, router, sameUrls };
|
package/dist/index.d.ts
CHANGED
|
@@ -500,6 +500,7 @@ interface Component {
|
|
|
500
500
|
declare const STORAGE_EXTERNAL_KEY = "hybridly:external";
|
|
501
501
|
declare const HYBRIDLY_HEADER = "x-hybrid";
|
|
502
502
|
declare const EXTERNAL_NAVIGATION_HEADER = "x-hybrid-external";
|
|
503
|
+
declare const EXTERNAL_NAVIGATION_TARGET_HEADER = "x-hybrid-external-target";
|
|
503
504
|
declare const PARTIAL_COMPONENT_HEADER = "x-hybrid-partial-component";
|
|
504
505
|
declare const ONLY_DATA_HEADER = "x-hybrid-only-data";
|
|
505
506
|
declare const DIALOG_KEY_HEADER = "x-hybrid-dialog-key";
|
|
@@ -514,6 +515,7 @@ declare const constants_DIALOG_REDIRECT_HEADER: typeof DIALOG_REDIRECT_HEADER;
|
|
|
514
515
|
declare const constants_ERROR_BAG_HEADER: typeof ERROR_BAG_HEADER;
|
|
515
516
|
declare const constants_EXCEPT_DATA_HEADER: typeof EXCEPT_DATA_HEADER;
|
|
516
517
|
declare const constants_EXTERNAL_NAVIGATION_HEADER: typeof EXTERNAL_NAVIGATION_HEADER;
|
|
518
|
+
declare const constants_EXTERNAL_NAVIGATION_TARGET_HEADER: typeof EXTERNAL_NAVIGATION_TARGET_HEADER;
|
|
517
519
|
declare const constants_HYBRIDLY_HEADER: typeof HYBRIDLY_HEADER;
|
|
518
520
|
declare const constants_ONLY_DATA_HEADER: typeof ONLY_DATA_HEADER;
|
|
519
521
|
declare const constants_PARTIAL_COMPONENT_HEADER: typeof PARTIAL_COMPONENT_HEADER;
|
|
@@ -521,7 +523,7 @@ declare const constants_SCROLL_REGION_ATTRIBUTE: typeof SCROLL_REGION_ATTRIBUTE;
|
|
|
521
523
|
declare const constants_STORAGE_EXTERNAL_KEY: typeof STORAGE_EXTERNAL_KEY;
|
|
522
524
|
declare const constants_VERSION_HEADER: typeof VERSION_HEADER;
|
|
523
525
|
declare namespace constants {
|
|
524
|
-
export { constants_DIALOG_KEY_HEADER as DIALOG_KEY_HEADER, constants_DIALOG_REDIRECT_HEADER as DIALOG_REDIRECT_HEADER, constants_ERROR_BAG_HEADER as ERROR_BAG_HEADER, constants_EXCEPT_DATA_HEADER as EXCEPT_DATA_HEADER, constants_EXTERNAL_NAVIGATION_HEADER as EXTERNAL_NAVIGATION_HEADER, constants_HYBRIDLY_HEADER as HYBRIDLY_HEADER, constants_ONLY_DATA_HEADER as ONLY_DATA_HEADER, constants_PARTIAL_COMPONENT_HEADER as PARTIAL_COMPONENT_HEADER, constants_SCROLL_REGION_ATTRIBUTE as SCROLL_REGION_ATTRIBUTE, constants_STORAGE_EXTERNAL_KEY as STORAGE_EXTERNAL_KEY, constants_VERSION_HEADER as VERSION_HEADER };
|
|
526
|
+
export { constants_DIALOG_KEY_HEADER as DIALOG_KEY_HEADER, constants_DIALOG_REDIRECT_HEADER as DIALOG_REDIRECT_HEADER, constants_ERROR_BAG_HEADER as ERROR_BAG_HEADER, constants_EXCEPT_DATA_HEADER as EXCEPT_DATA_HEADER, constants_EXTERNAL_NAVIGATION_HEADER as EXTERNAL_NAVIGATION_HEADER, constants_EXTERNAL_NAVIGATION_TARGET_HEADER as EXTERNAL_NAVIGATION_TARGET_HEADER, constants_HYBRIDLY_HEADER as HYBRIDLY_HEADER, constants_ONLY_DATA_HEADER as ONLY_DATA_HEADER, constants_PARTIAL_COMPONENT_HEADER as PARTIAL_COMPONENT_HEADER, constants_SCROLL_REGION_ATTRIBUTE as SCROLL_REGION_ATTRIBUTE, constants_STORAGE_EXTERNAL_KEY as STORAGE_EXTERNAL_KEY, constants_VERSION_HEADER as VERSION_HEADER };
|
|
525
527
|
}
|
|
526
528
|
|
|
527
529
|
export { type Authorizable, type DynamicConfiguration, type GlobalRouteCollection, type HybridPayload, type HybridRequestOptions, type MaybePromise, type Method, type NavigationResponse, type Plugin, type Progress, type ResolveComponent, type RouteDefinition, type RouteName, type RouteParameters, type Router, type RouterContext, type RouterContextOptions, type RoutingConfiguration, type UrlResolvable, can, constants, createRouter, definePlugin, getRouterContext, makeUrl, registerHook, route, router, sameUrls };
|
package/dist/index.mjs
CHANGED
|
@@ -6,6 +6,7 @@ import { stringify, parse } from 'superjson';
|
|
|
6
6
|
const STORAGE_EXTERNAL_KEY = "hybridly:external";
|
|
7
7
|
const HYBRIDLY_HEADER = "x-hybrid";
|
|
8
8
|
const EXTERNAL_NAVIGATION_HEADER = `${HYBRIDLY_HEADER}-external`;
|
|
9
|
+
const EXTERNAL_NAVIGATION_TARGET_HEADER = `${HYBRIDLY_HEADER}-external-target`;
|
|
9
10
|
const PARTIAL_COMPONENT_HEADER = `${HYBRIDLY_HEADER}-partial-component`;
|
|
10
11
|
const ONLY_DATA_HEADER = `${HYBRIDLY_HEADER}-only-data`;
|
|
11
12
|
const DIALOG_KEY_HEADER = `${HYBRIDLY_HEADER}-dialog-key`;
|
|
@@ -22,6 +23,7 @@ const constants = {
|
|
|
22
23
|
ERROR_BAG_HEADER: ERROR_BAG_HEADER,
|
|
23
24
|
EXCEPT_DATA_HEADER: EXCEPT_DATA_HEADER,
|
|
24
25
|
EXTERNAL_NAVIGATION_HEADER: EXTERNAL_NAVIGATION_HEADER,
|
|
26
|
+
EXTERNAL_NAVIGATION_TARGET_HEADER: EXTERNAL_NAVIGATION_TARGET_HEADER,
|
|
25
27
|
HYBRIDLY_HEADER: HYBRIDLY_HEADER,
|
|
26
28
|
ONLY_DATA_HEADER: ONLY_DATA_HEADER,
|
|
27
29
|
PARTIAL_COMPONENT_HEADER: PARTIAL_COMPONENT_HEADER,
|
|
@@ -611,6 +613,15 @@ function payloadFromContext() {
|
|
|
611
613
|
|
|
612
614
|
async function performExternalNavigation(options) {
|
|
613
615
|
debug.external("Navigating to an external URL:", options);
|
|
616
|
+
if (options.target === "new-tab") {
|
|
617
|
+
const link = document.createElement("a");
|
|
618
|
+
link.style.display = "none";
|
|
619
|
+
link.target = "_blank";
|
|
620
|
+
link.href = options.url;
|
|
621
|
+
link.click();
|
|
622
|
+
setTimeout(() => link.remove(), 0);
|
|
623
|
+
return;
|
|
624
|
+
}
|
|
614
625
|
window.sessionStorage.setItem(STORAGE_EXTERNAL_KEY, JSON.stringify(options));
|
|
615
626
|
window.location.href = options.url;
|
|
616
627
|
if (sameUrls(window.location, options.url)) {
|
|
@@ -819,7 +830,8 @@ async function performHybridNavigation(options) {
|
|
|
819
830
|
debug.router("The response is explicitely external.");
|
|
820
831
|
await performExternalNavigation({
|
|
821
832
|
url: fillHash(targetUrl, response.headers[EXTERNAL_NAVIGATION_HEADER]),
|
|
822
|
-
preserveScroll: options.preserveScroll === true
|
|
833
|
+
preserveScroll: options.preserveScroll === true,
|
|
834
|
+
target: response.headers[EXTERNAL_NAVIGATION_TARGET_HEADER] ?? "current"
|
|
823
835
|
});
|
|
824
836
|
return { response };
|
|
825
837
|
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hybridly/core",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.7.
|
|
4
|
+
"version": "0.7.15",
|
|
5
5
|
"description": "Core functionality of Hybridly",
|
|
6
6
|
"author": "Enzo Innocenzi <enzo@innocenzi.dev>",
|
|
7
7
|
"license": "MIT",
|
|
@@ -41,9 +41,9 @@
|
|
|
41
41
|
"axios": "^1.7.2"
|
|
42
42
|
},
|
|
43
43
|
"dependencies": {
|
|
44
|
-
"qs": "^6.
|
|
44
|
+
"qs": "^6.13.0",
|
|
45
45
|
"superjson": "^2.2.1",
|
|
46
|
-
"@hybridly/utils": "0.7.
|
|
46
|
+
"@hybridly/utils": "0.7.15"
|
|
47
47
|
},
|
|
48
48
|
"devDependencies": {
|
|
49
49
|
"defu": "^6.1.4"
|