@websolutespa/bom-next 3.0.2 → 4.0.0-next.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/CHANGELOG.md +17 -7
- package/dist/_virtual/{_rolldown/runtime.js → rolldown_runtime.js} +7 -4
- package/dist/client/client.d.ts.map +1 -1
- package/dist/client/client.js +17 -6
- package/dist/client/client.js.map +1 -1
- package/dist/client/extra.d.ts +3 -3
- package/dist/client/extra.d.ts.map +1 -1
- package/dist/client/extra.js +10 -5
- package/dist/client/extra.js.map +1 -1
- package/dist/client/label.d.ts.map +1 -1
- package/dist/client/label.js +10 -5
- package/dist/client/label.js.map +1 -1
- package/dist/client/layout.d.ts +3 -3
- package/dist/client/layout.d.ts.map +1 -1
- package/dist/client/layout.js +10 -5
- package/dist/client/layout.js.map +1 -1
- package/dist/client/local.collection.d.ts.map +1 -1
- package/dist/client/local.collection.js +4 -2
- package/dist/client/local.collection.js.map +1 -1
- package/dist/client/metadata.d.ts +3 -3
- package/dist/client/metadata.d.ts.map +1 -1
- package/dist/client/metadata.js +48 -40
- package/dist/client/metadata.js.map +1 -1
- package/dist/client/page.d.ts +3 -3
- package/dist/client/page.d.ts.map +1 -1
- package/dist/client/page.js +10 -5
- package/dist/client/page.js.map +1 -1
- package/dist/client/useApi.d.ts +7 -7
- package/dist/client/useApi.d.ts.map +1 -1
- package/dist/client/useApi.js +2 -1
- package/dist/client/useApi.js.map +1 -1
- package/dist/client/useCollectionApi.d.ts +6 -6
- package/dist/client/useCollectionApi.d.ts.map +1 -1
- package/dist/client/useCollectionApi.js +4 -2
- package/dist/client/useCollectionApi.js.map +1 -1
- package/dist/client/useExtra.d.ts.map +1 -1
- package/dist/client/useExtra.js +5 -2
- package/dist/client/useExtra.js.map +1 -1
- package/dist/client/useHttp.d.ts.map +1 -1
- package/dist/client/useHttp.js +9 -6
- package/dist/client/useHttp.js.map +1 -1
- package/dist/client/useLabel.d.ts.map +1 -1
- package/dist/client/useLabel.js +5 -2
- package/dist/client/useLabel.js.map +1 -1
- package/dist/client/useLayout.d.ts.map +1 -1
- package/dist/client/useLayout.js +5 -2
- package/dist/client/useLayout.js.map +1 -1
- package/dist/client/useLink.d.ts.map +1 -1
- package/dist/client/useLink.js +7 -3
- package/dist/client/useLink.js.map +1 -1
- package/dist/client/useMetaData.d.ts.map +1 -1
- package/dist/client/useMetaData.js +5 -2
- package/dist/client/useMetaData.js.map +1 -1
- package/dist/client/usePage.d.ts.map +1 -1
- package/dist/client/usePage.js +5 -2
- package/dist/client/usePage.js.map +1 -1
- package/dist/client/useUser.d.ts.map +1 -1
- package/dist/client/useUser.js +5 -2
- package/dist/client/useUser.js.map +1 -1
- package/dist/client/user.d.ts.map +1 -1
- package/dist/client/user.js +17 -11
- package/dist/client/user.js.map +1 -1
- package/dist/exports/client.js +2 -1
- package/dist/exports/instrumentation.js +2 -1
- package/dist/exports/proxy.js +2 -1
- package/dist/exports/server.js +2 -1
- package/dist/index.js +2 -1
- package/dist/instrumentation/client.d.ts.map +1 -1
- package/dist/instrumentation/client.js +2 -1
- package/dist/instrumentation/client.js.map +1 -1
- package/dist/instrumentation/sentry/capture.requestError.js +4 -1
- package/dist/instrumentation/sentry/capture.requestError.js.map +1 -1
- package/dist/instrumentation/sentry/capture.routerTransitionStart.js +2 -1
- package/dist/instrumentation/sentry/capture.routerTransitionStart.js.map +1 -1
- package/dist/instrumentation/sentry/config.client.js +10 -2
- package/dist/instrumentation/sentry/config.client.js.map +1 -0
- package/dist/instrumentation/sentry/config.edge.js +10 -2
- package/dist/instrumentation/sentry/config.edge.js.map +1 -0
- package/dist/instrumentation/sentry/config.server.js +10 -2
- package/dist/instrumentation/sentry/config.server.js.map +1 -0
- package/dist/instrumentation/server.d.ts.map +1 -1
- package/dist/instrumentation/server.js +8 -5
- package/dist/instrumentation/server.js.map +1 -1
- package/dist/instrumentation/types.d.ts.map +1 -1
- package/dist/lib/breadcrumb.d.ts.map +1 -1
- package/dist/lib/breadcrumb.js +6 -1
- package/dist/lib/breadcrumb.js.map +1 -1
- package/dist/lib/const.d.ts.map +1 -1
- package/dist/lib/const.js +1 -1
- package/dist/lib/const.js.map +1 -1
- package/dist/lib/http.d.ts.map +1 -1
- package/dist/lib/http.js +6 -3
- package/dist/lib/http.js.map +1 -1
- package/dist/lib/label.d.ts.map +1 -1
- package/dist/lib/label.js +4 -3
- package/dist/lib/label.js.map +1 -1
- package/dist/lib/layout.defaults.d.ts.map +1 -1
- package/dist/lib/layout.defaults.js +1 -1
- package/dist/lib/layout.defaults.js.map +1 -1
- package/dist/lib/link.d.ts.map +1 -1
- package/dist/lib/link.js +2 -1
- package/dist/lib/link.js.map +1 -1
- package/dist/lib/meta-data.d.ts.map +1 -1
- package/dist/lib/open-graph.d.ts.map +1 -1
- package/dist/lib/pagination.d.ts.map +1 -1
- package/dist/lib/pagination.js +4 -2
- package/dist/lib/pagination.js.map +1 -1
- package/dist/lib/route.d.ts.map +1 -1
- package/dist/lib/route.js +9 -3
- package/dist/lib/route.js.map +1 -1
- package/dist/lib/store.d.ts.map +1 -1
- package/dist/lib/store.js +31 -31
- package/dist/lib/store.js.map +1 -1
- package/dist/lib/structured-data.d.ts.map +1 -1
- package/dist/lib/twitter-card.d.ts.map +1 -1
- package/dist/lib/utils.d.ts.map +1 -1
- package/dist/lib/utils.js +3 -2
- package/dist/lib/utils.js.map +1 -1
- package/dist/mock.d.ts.map +1 -1
- package/dist/node_modules/@selderee/plugin-htmlparser2/lib/hp2-builder.js +3 -2
- package/dist/node_modules/@selderee/plugin-htmlparser2/lib/hp2-builder.js.map +1 -1
- package/dist/node_modules/deepmerge/dist/cjs.js +17 -9
- package/dist/node_modules/deepmerge/dist/cjs.js.map +1 -1
- package/dist/node_modules/dom-serializer/lib/esm/foreignNames.js +2 -2
- package/dist/node_modules/dom-serializer/lib/esm/foreignNames.js.map +1 -1
- package/dist/node_modules/dom-serializer/lib/esm/index.js +10 -15
- package/dist/node_modules/dom-serializer/lib/esm/index.js.map +1 -1
- package/dist/node_modules/domelementtype/lib/esm/index.js +12 -12
- package/dist/node_modules/domelementtype/lib/esm/index.js.map +1 -1
- package/dist/node_modules/domhandler/lib/esm/index.js +4 -3
- package/dist/node_modules/domhandler/lib/esm/index.js.map +1 -1
- package/dist/node_modules/domhandler/lib/esm/node.js +8 -7
- package/dist/node_modules/domhandler/lib/esm/node.js.map +1 -1
- package/dist/node_modules/entities/lib/esm/decode.js +33 -32
- package/dist/node_modules/entities/lib/esm/decode.js.map +1 -1
- package/dist/node_modules/entities/lib/esm/decode_codepoint.js +5 -5
- package/dist/node_modules/entities/lib/esm/decode_codepoint.js.map +1 -1
- package/dist/node_modules/entities/lib/esm/escape.js +14 -6
- package/dist/node_modules/entities/lib/esm/escape.js.map +1 -1
- package/dist/node_modules/entities/lib/esm/generated/decode-data-html.js +2 -2
- package/dist/node_modules/entities/lib/esm/generated/decode-data-html.js.map +1 -1
- package/dist/node_modules/entities/lib/esm/generated/decode-data-xml.js +2 -2
- package/dist/node_modules/entities/lib/esm/generated/decode-data-xml.js.map +1 -1
- package/dist/node_modules/html-to-text/lib/html-to-text.js +45 -33
- package/dist/node_modules/html-to-text/lib/html-to-text.js.map +1 -1
- package/dist/node_modules/html-to-text/node_modules/htmlparser2/lib/esm/Parser.js +25 -25
- package/dist/node_modules/html-to-text/node_modules/htmlparser2/lib/esm/Parser.js.map +1 -1
- package/dist/node_modules/html-to-text/node_modules/htmlparser2/lib/esm/Tokenizer.js +76 -73
- package/dist/node_modules/html-to-text/node_modules/htmlparser2/lib/esm/Tokenizer.js.map +1 -1
- package/dist/node_modules/html-to-text/node_modules/htmlparser2/lib/esm/index.js +4 -3
- package/dist/node_modules/html-to-text/node_modules/htmlparser2/lib/esm/index.js.map +1 -1
- package/dist/node_modules/leac/lib/leac.js +72 -72
- package/dist/node_modules/leac/lib/leac.js.map +1 -1
- package/dist/node_modules/parseley/lib/parseley.js +37 -33
- package/dist/node_modules/parseley/lib/parseley.js.map +1 -1
- package/dist/node_modules/peberminta/lib/core.js +4 -4
- package/dist/node_modules/peberminta/lib/core.js.map +1 -1
- package/dist/node_modules/selderee/lib/selderee.js +16 -10
- package/dist/node_modules/selderee/lib/selderee.js.map +1 -1
- package/dist/proxy/protected-route.d.ts.map +1 -1
- package/dist/proxy/protected-route.js +11 -6
- package/dist/proxy/protected-route.js.map +1 -1
- package/dist/proxy/proxy.d.ts.map +1 -1
- package/dist/proxy/proxy.js +17 -2
- package/dist/proxy/proxy.js.map +1 -1
- package/dist/proxy/route-auto-detection.d.ts.map +1 -1
- package/dist/proxy/route-auto-detection.js +26 -14
- package/dist/proxy/route-auto-detection.js.map +1 -1
- package/dist/proxy/route-proxy.d.ts.map +1 -1
- package/dist/proxy/route-proxy.js +22 -5
- package/dist/proxy/route-proxy.js.map +1 -1
- package/dist/server/context.d.ts.map +1 -1
- package/dist/server/context.js +20 -2
- package/dist/server/context.js.map +1 -1
- package/dist/server/handlers/auth.handler.d.ts.map +1 -1
- package/dist/server/handlers/auth.handler.js +4 -2
- package/dist/server/handlers/auth.handler.js.map +1 -1
- package/dist/server/handlers/captions.handler.d.ts.map +1 -1
- package/dist/server/handlers/captions.handler.js +4 -2
- package/dist/server/handlers/captions.handler.js.map +1 -1
- package/dist/server/handlers/collection.handler.d.ts.map +1 -1
- package/dist/server/handlers/collection.handler.js +2 -1
- package/dist/server/handlers/collection.handler.js.map +1 -1
- package/dist/server/handlers/error-response.js +6 -2
- package/dist/server/handlers/error-response.js.map +1 -1
- package/dist/server/handlers/index.handler.d.ts.map +1 -1
- package/dist/server/handlers/index.handler.js +2 -1
- package/dist/server/handlers/index.handler.js.map +1 -1
- package/dist/server/handlers/preview.handler.d.ts.map +1 -1
- package/dist/server/handlers/preview.handler.js +6 -3
- package/dist/server/handlers/preview.handler.js.map +1 -1
- package/dist/server/handlers/registry.handler.d.ts.map +1 -1
- package/dist/server/handlers/registry.handler.js +14 -9
- package/dist/server/handlers/registry.handler.js.map +1 -1
- package/dist/server/handlers/route.handler.d.ts.map +1 -1
- package/dist/server/handlers/route.handler.js +12 -3
- package/dist/server/handlers/route.handler.js.map +1 -1
- package/dist/server/handlers/sitemap.handler.d.ts.map +1 -1
- package/dist/server/handlers/sitemap.handler.js +12 -9
- package/dist/server/handlers/sitemap.handler.js.map +1 -1
- package/dist/server/handlers/static-params.handler.d.ts.map +1 -1
- package/dist/server/handlers/static-params.handler.js +13 -8
- package/dist/server/handlers/static-params.handler.js.map +1 -1
- package/dist/server/handlers/vars.handler.d.ts.map +1 -1
- package/dist/server/handlers/vars.handler.js +5 -4
- package/dist/server/handlers/vars.handler.js.map +1 -1
- package/dist/server/layout.js +34 -12
- package/dist/server/layout.js.map +1 -1
- package/dist/server/lazy.d.ts.map +1 -1
- package/dist/server/lazy.js +5 -2
- package/dist/server/lazy.js.map +1 -1
- package/dist/server/local-api.d.ts.map +1 -1
- package/dist/server/local-api.js +12 -6
- package/dist/server/local-api.js.map +1 -1
- package/dist/server/metadata.d.ts.map +1 -1
- package/dist/server/metadata.js +5 -1
- package/dist/server/metadata.js.map +1 -1
- package/dist/server/mixer-payload.d.ts +1 -1
- package/dist/server/mixer-payload.d.ts.map +1 -1
- package/dist/server/mixer.d.ts.map +1 -1
- package/dist/server/mixer.js +183 -57
- package/dist/server/mixer.js.map +1 -1
- package/dist/server/page.d.ts.map +1 -1
- package/dist/server/page.js +15 -4
- package/dist/server/page.js.map +1 -1
- package/dist/server/utils.d.ts.map +1 -1
- package/dist/server/utils.js +4 -2
- package/dist/server/utils.js.map +1 -1
- package/dist/server/utmz.d.ts.map +1 -1
- package/dist/server/utmz.js +1 -1
- package/dist/server/utmz.js.map +1 -1
- package/dist/types.d.ts +1 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +11 -11
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { onRouterTransitionStart } from "./sentry/capture.routerTransitionStart.js";
|
|
2
|
+
|
|
2
3
|
//#region src/instrumentation/client.ts
|
|
3
4
|
function registerClientIntrumentation() {
|
|
4
5
|
if (process.env.NEXT_PUBLIC_SENTRY_DSN) {
|
|
@@ -9,7 +10,7 @@ function captureRouterTransitionStart(href, navigationType) {
|
|
|
9
10
|
if (process.env.NEXT_PUBLIC_SENTRY_DSN) return onRouterTransitionStart(href, navigationType);
|
|
10
11
|
else console.log("Instrumentation.onRouterTransitionStart", href, navigationType);
|
|
11
12
|
}
|
|
13
|
+
|
|
12
14
|
//#endregion
|
|
13
15
|
export { captureRouterTransitionStart, registerClientIntrumentation };
|
|
14
|
-
|
|
15
16
|
//# sourceMappingURL=client.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","names":["sentryOnRouterTransitionStart"],"sources":["../../src/instrumentation/client.ts"],"sourcesContent":["import { onRouterTransitionStart as sentryOnRouterTransitionStart } from './sentry/capture.routerTransitionStart';\r\n\r\nexport function registerClientIntrumentation() {\r\n if (process.env.NEXT_PUBLIC_SENTRY_DSN) {\r\n if (process.env.NEXT_RUNTIME === 'nodejs') {\r\n import('./sentry/config.client');\r\n }\r\n }\r\n}\r\n\r\n// This export will instrument router navigations\r\nexport function captureRouterTransitionStart(href: string, navigationType: string): void {\r\n if (process.env.NEXT_PUBLIC_SENTRY_DSN) {\r\n return sentryOnRouterTransitionStart(href, navigationType);\r\n } else {\r\n console.log('Instrumentation.onRouterTransitionStart', href, navigationType);\r\n }\r\n}\r\n\r\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"client.js","names":["href: string","navigationType: string","sentryOnRouterTransitionStart"],"sources":["../../src/instrumentation/client.ts"],"sourcesContent":["import { onRouterTransitionStart as sentryOnRouterTransitionStart } from './sentry/capture.routerTransitionStart';\r\n\r\nexport function registerClientIntrumentation() {\r\n if (process.env.NEXT_PUBLIC_SENTRY_DSN) {\r\n if (process.env.NEXT_RUNTIME === 'nodejs') {\r\n import('./sentry/config.client');\r\n }\r\n }\r\n}\r\n\r\n// This export will instrument router navigations\r\nexport function captureRouterTransitionStart(href: string, navigationType: string): void {\r\n if (process.env.NEXT_PUBLIC_SENTRY_DSN) {\r\n return sentryOnRouterTransitionStart(href, navigationType);\r\n } else {\r\n console.log('Instrumentation.onRouterTransitionStart', href, navigationType);\r\n }\r\n}\r\n\r\n"],"mappings":";;;AAEA,SAAgB,+BAA+B;AAC7C,KAAI,QAAQ,IAAI,wBACd;MAAI,QAAQ,IAAI,iBAAiB,UAC/B,OAAO;CACR;AAEJ;AAGD,SAAgB,6BAA6BA,MAAcC,gBAA8B;AACvF,KAAI,QAAQ,IAAI,uBACd,QAAOC,wBAA8B,MAAM,eAAe;MAE1D,QAAQ,IAAI,2CAA2C,MAAM,eAAe;AAE/E"}
|
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
import * as Sentry from "@sentry/nextjs";
|
|
2
|
+
|
|
2
3
|
//#region src/instrumentation/sentry/capture.requestError.ts
|
|
3
4
|
/**
|
|
5
|
+
|
|
4
6
|
* Reports errors passed to the the Next.js `onRequestError` instrumentation hook.
|
|
7
|
+
|
|
5
8
|
*/
|
|
6
9
|
const captureRequestError = Sentry.captureRequestError;
|
|
10
|
+
|
|
7
11
|
//#endregion
|
|
8
12
|
export { captureRequestError };
|
|
9
|
-
|
|
10
13
|
//# sourceMappingURL=capture.requestError.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capture.requestError.js","names":[],"sources":["../../../src/instrumentation/sentry/capture.requestError.ts"],"sourcesContent":["import * as Sentry from '@sentry/nextjs';\r\n\r\n/**\r\n * Reports errors passed to the the Next.js `onRequestError` instrumentation hook.\r\n */\r\nexport const captureRequestError = Sentry.captureRequestError;\r\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"capture.requestError.js","names":[],"sources":["../../../src/instrumentation/sentry/capture.requestError.ts"],"sourcesContent":["import * as Sentry from '@sentry/nextjs';\r\n\r\n/**\r\n * Reports errors passed to the the Next.js `onRequestError` instrumentation hook.\r\n */\r\nexport const captureRequestError = Sentry.captureRequestError;\r\n"],"mappings":";;;;;;;;AAKA,MAAa,sBAAsB,OAAO"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import * as Sentry from "@sentry/nextjs";
|
|
2
|
+
|
|
2
3
|
//#region src/instrumentation/sentry/capture.routerTransitionStart.ts
|
|
3
4
|
const onRouterTransitionStart = Sentry.captureRouterTransitionStart;
|
|
5
|
+
|
|
4
6
|
//#endregion
|
|
5
7
|
export { onRouterTransitionStart };
|
|
6
|
-
|
|
7
8
|
//# sourceMappingURL=capture.routerTransitionStart.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capture.routerTransitionStart.js","names":[],"sources":["../../../src/instrumentation/sentry/capture.routerTransitionStart.ts"],"sourcesContent":["import * as Sentry from '@sentry/nextjs';\r\n\r\n// This export will instrument router navigations\r\nexport const onRouterTransitionStart = Sentry.captureRouterTransitionStart;\r\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"capture.routerTransitionStart.js","names":[],"sources":["../../../src/instrumentation/sentry/capture.routerTransitionStart.ts"],"sourcesContent":["import * as Sentry from '@sentry/nextjs';\r\n\r\n// This export will instrument router navigations\r\nexport const onRouterTransitionStart = Sentry.captureRouterTransitionStart;\r\n"],"mappings":";;;AAGA,MAAa,0BAA0B,OAAO"}
|
|
@@ -1,2 +1,10 @@
|
|
|
1
|
-
import "@sentry/nextjs";
|
|
2
|
-
|
|
1
|
+
import * as Sentry from "@sentry/nextjs";
|
|
2
|
+
|
|
3
|
+
//#region src/instrumentation/sentry/config.client.ts
|
|
4
|
+
Sentry.init({
|
|
5
|
+
dsn: process.env.NEXT_PUBLIC_SENTRY_DSN,
|
|
6
|
+
tracesSampleRate: process.env.NODE_ENV === "development" ? 1 : .1
|
|
7
|
+
});
|
|
8
|
+
|
|
9
|
+
//#endregion
|
|
10
|
+
//# sourceMappingURL=config.client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.client.js","names":[],"sources":["../../../src/instrumentation/sentry/config.client.ts"],"sourcesContent":["import * as Sentry from '@sentry/nextjs';\r\n\r\nSentry.init({\r\n dsn: process.env.NEXT_PUBLIC_SENTRY_DSN,\r\n\r\n // Capture 100% in dev, 10% in production\r\n // Adjust based on your traffic volume\r\n tracesSampleRate: process.env.NODE_ENV === 'development' ? 1.0 : 0.1,\r\n});\r\n"],"mappings":";;;AAEA,OAAO,KAAK;CACV,KAAK,QAAQ,IAAI;CAIjB,kBAAkB,QAAQ,IAAI,aAAa,gBAAgB,IAAM;AAClE,EAAC"}
|
|
@@ -1,2 +1,10 @@
|
|
|
1
|
-
import "@sentry/nextjs";
|
|
2
|
-
|
|
1
|
+
import * as Sentry from "@sentry/nextjs";
|
|
2
|
+
|
|
3
|
+
//#region src/instrumentation/sentry/config.edge.ts
|
|
4
|
+
Sentry.init({
|
|
5
|
+
dsn: process.env.NEXT_PUBLIC_SENTRY_DSN,
|
|
6
|
+
tracesSampleRate: process.env.NODE_ENV === "development" ? 1 : .1
|
|
7
|
+
});
|
|
8
|
+
|
|
9
|
+
//#endregion
|
|
10
|
+
//# sourceMappingURL=config.edge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.edge.js","names":[],"sources":["../../../src/instrumentation/sentry/config.edge.ts"],"sourcesContent":["import * as Sentry from '@sentry/nextjs';\r\n\r\nSentry.init({\r\n dsn: process.env.NEXT_PUBLIC_SENTRY_DSN,\r\n\r\n // Capture 100% in dev, 10% in production\r\n // Adjust based on your traffic volume\r\n tracesSampleRate: process.env.NODE_ENV === 'development' ? 1.0 : 0.1,\r\n});\r\n"],"mappings":";;;AAEA,OAAO,KAAK;CACV,KAAK,QAAQ,IAAI;CAIjB,kBAAkB,QAAQ,IAAI,aAAa,gBAAgB,IAAM;AAClE,EAAC"}
|
|
@@ -1,2 +1,10 @@
|
|
|
1
|
-
import "@sentry/nextjs";
|
|
2
|
-
|
|
1
|
+
import * as Sentry from "@sentry/nextjs";
|
|
2
|
+
|
|
3
|
+
//#region src/instrumentation/sentry/config.server.ts
|
|
4
|
+
Sentry.init({
|
|
5
|
+
dsn: process.env.NEXT_PUBLIC_SENTRY_DSN,
|
|
6
|
+
tracesSampleRate: process.env.NODE_ENV === "development" ? 1 : .1
|
|
7
|
+
});
|
|
8
|
+
|
|
9
|
+
//#endregion
|
|
10
|
+
//# sourceMappingURL=config.server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.server.js","names":[],"sources":["../../../src/instrumentation/sentry/config.server.ts"],"sourcesContent":["import * as Sentry from '@sentry/nextjs';\r\n\r\nSentry.init({\r\n dsn: process.env.NEXT_PUBLIC_SENTRY_DSN,\r\n\r\n // Capture 100% in dev, 10% in production\r\n // Adjust based on your traffic volume\r\n tracesSampleRate: process.env.NODE_ENV === 'development' ? 1.0 : 0.1,\r\n});\r\n"],"mappings":";;;AAEA,OAAO,KAAK;CACV,KAAK,QAAQ,IAAI;CAIjB,kBAAkB,QAAQ,IAAI,aAAa,gBAAgB,IAAM;AAClE,EAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","names":[],"sources":["../../src/instrumentation/server.ts"],"mappings":";;;iBAGsB,sBAAA,CAAA,GAAsB;;AAA5C;AAcA;AAAmC,iBAAnB,mBAAA,CAAmB,KAAA,EAAA,OAAA,EAAA,OAAA,EAA0B,WAA1B,EAAA,YAAA,EAAqD,YAArD,CAAA,EAAA,IAAA
|
|
1
|
+
{"version":3,"file":"server.d.ts","names":[],"sources":["../../src/instrumentation/server.ts"],"sourcesContent":[],"mappings":";;;iBAGsB,sBAAA,CAAA,GAAsB;;AAA5C;AAcA;AAAmC,iBAAnB,mBAAA,CAAmB,KAAA,EAAA,OAAA,EAAA,OAAA,EAA0B,WAA1B,EAAA,YAAA,EAAqD,YAArD,CAAA,EAAA,IAAA"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { captureRequestError
|
|
1
|
+
import { captureRequestError } from "./sentry/capture.requestError.js";
|
|
2
|
+
|
|
2
3
|
//#region src/instrumentation/server.ts
|
|
3
4
|
async function registerIntrumentation() {
|
|
4
5
|
if (process.env.NEXT_PUBLIC_SENTRY_DSN) {
|
|
@@ -7,13 +8,15 @@ async function registerIntrumentation() {
|
|
|
7
8
|
}
|
|
8
9
|
}
|
|
9
10
|
/**
|
|
11
|
+
|
|
10
12
|
* Reports errors passed to the the Next.js `onRequestError` instrumentation hook.
|
|
13
|
+
|
|
11
14
|
*/
|
|
12
|
-
function captureRequestError(error, request, errorContext) {
|
|
13
|
-
if (process.env.NEXT_PUBLIC_SENTRY_DSN) return captureRequestError
|
|
15
|
+
function captureRequestError$1(error, request, errorContext) {
|
|
16
|
+
if (process.env.NEXT_PUBLIC_SENTRY_DSN) return captureRequestError(error, request, errorContext);
|
|
14
17
|
else console.log("Instrumentation.captureRequestError", error, errorContext);
|
|
15
18
|
}
|
|
16
|
-
//#endregion
|
|
17
|
-
export { captureRequestError, registerIntrumentation };
|
|
18
19
|
|
|
20
|
+
//#endregion
|
|
21
|
+
export { captureRequestError$1 as captureRequestError, registerIntrumentation };
|
|
19
22
|
//# sourceMappingURL=server.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","names":["sentryCaptureRequestError"],"sources":["../../src/instrumentation/server.ts"],"sourcesContent":["import { captureRequestError as sentryCaptureRequestError } from './sentry/capture.requestError';\r\nimport { ErrorContext, RequestInfo } from './types';\r\n\r\nexport async function registerIntrumentation() {\r\n if (process.env.NEXT_PUBLIC_SENTRY_DSN) {\r\n if (process.env.NEXT_RUNTIME === 'nodejs') {\r\n await import('./sentry/config.server');\r\n }\r\n if (process.env.NEXT_RUNTIME === 'edge') {\r\n await import('./sentry/config.edge');\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * Reports errors passed to the the Next.js `onRequestError` instrumentation hook.\r\n */\r\nexport function captureRequestError(error: unknown, request: RequestInfo, errorContext: ErrorContext): void {\r\n if (process.env.NEXT_PUBLIC_SENTRY_DSN) {\r\n return sentryCaptureRequestError(error, request, errorContext);\r\n } else {\r\n console.log('Instrumentation.captureRequestError', error, errorContext);\r\n }\r\n}\r\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"server.js","names":["captureRequestError","error: unknown","request: RequestInfo","errorContext: ErrorContext","sentryCaptureRequestError"],"sources":["../../src/instrumentation/server.ts"],"sourcesContent":["import { captureRequestError as sentryCaptureRequestError } from './sentry/capture.requestError';\r\nimport { ErrorContext, RequestInfo } from './types';\r\n\r\nexport async function registerIntrumentation() {\r\n if (process.env.NEXT_PUBLIC_SENTRY_DSN) {\r\n if (process.env.NEXT_RUNTIME === 'nodejs') {\r\n await import('./sentry/config.server');\r\n }\r\n if (process.env.NEXT_RUNTIME === 'edge') {\r\n await import('./sentry/config.edge');\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * Reports errors passed to the the Next.js `onRequestError` instrumentation hook.\r\n */\r\nexport function captureRequestError(error: unknown, request: RequestInfo, errorContext: ErrorContext): void {\r\n if (process.env.NEXT_PUBLIC_SENTRY_DSN) {\r\n return sentryCaptureRequestError(error, request, errorContext);\r\n } else {\r\n console.log('Instrumentation.captureRequestError', error, errorContext);\r\n }\r\n}\r\n"],"mappings":";;;AAGA,eAAsB,yBAAyB;AAC7C,KAAI,QAAQ,IAAI,wBAAwB;AACtC,MAAI,QAAQ,IAAI,iBAAiB,UAC/B,MAAM,OAAO;AAEf,MAAI,QAAQ,IAAI,iBAAiB,QAC/B,MAAM,OAAO;CAEhB;AACF;;;;;;AAKD,SAAgBA,sBAAoBC,OAAgBC,SAAsBC,cAAkC;AAC1G,KAAI,QAAQ,IAAI,uBACd,QAAOC,oBAA0B,OAAO,SAAS,aAAa;MAE9D,QAAQ,IAAI,uCAAuC,OAAO,aAAa;AAE1E"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","names":[],"sources":["../../src/instrumentation/types.ts"],"mappings":";KACY,WAAA;EAAA,IAAA,EAAA,MAAA;EAMA,MAAA,EAAA,MAAA;WAHD;;KAGC,YAAA"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","names":[],"sources":["../../src/instrumentation/types.ts"],"sourcesContent":[],"mappings":";KACY,WAAA;EAAA,IAAA,EAAA,MAAA;EAMA,MAAA,EAAA,MAAA;WAHD;;KAGC,YAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"breadcrumb.d.ts","names":[],"sources":["../../src/lib/breadcrumb.ts"],"mappings":";;;;;;AAQA
|
|
1
|
+
{"version":3,"file":"breadcrumb.d.ts","names":[],"sources":["../../src/lib/breadcrumb.ts"],"sourcesContent":[],"mappings":";;;;;;AAQA;;;AAAqE,iBAArD,eAAA,CAAqD,QAAA,EAA3B,SAA2B,EAAA,EAAA,YAAA,EAAA,MAAA,EAAA,aAAA,EAAuB,MAAvB,EAAA,CAAA,EAAkC,UAAlC,EAAA"}
|
package/dist/lib/breadcrumb.js
CHANGED
|
@@ -1,10 +1,15 @@
|
|
|
1
1
|
import { routeToLink } from "./route.js";
|
|
2
2
|
import { findRouteOfCategory } from "@websolutespa/bom-core";
|
|
3
|
+
|
|
3
4
|
//#region src/lib/breadcrumb.ts
|
|
4
5
|
/**
|
|
6
|
+
|
|
5
7
|
* Builds the breadcrumb trail from category segments + the current route.
|
|
8
|
+
|
|
6
9
|
* Uses currentRoutes (already filtered by market+locale) to resolve each segment's href.
|
|
10
|
+
|
|
7
11
|
* Replicates the logic of getBreadcrumbFromSegments without any store calls.
|
|
12
|
+
|
|
8
13
|
*/
|
|
9
14
|
function buildBreadcrumb(segments, currentRoute, currentRoutes) {
|
|
10
15
|
const tree = segments.map((segment) => {
|
|
@@ -14,7 +19,7 @@ function buildBreadcrumb(segments, currentRoute, currentRoutes) {
|
|
|
14
19
|
if (!currentRoute.isDefault) tree.push(routeToLink(currentRoute));
|
|
15
20
|
return tree;
|
|
16
21
|
}
|
|
22
|
+
|
|
17
23
|
//#endregion
|
|
18
24
|
export { buildBreadcrumb };
|
|
19
|
-
|
|
20
25
|
//# sourceMappingURL=breadcrumb.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"breadcrumb.js","names":[],"sources":["../../src/lib/breadcrumb.ts"],"sourcesContent":["import { findRouteOfCategory, ICategory, IRoute, IRouteLink } from '@websolutespa/bom-core';\r\nimport { routeToLink } from './route';\r\n\r\n/**\r\n * Builds the breadcrumb trail from category segments + the current route.\r\n * Uses currentRoutes (already filtered by market+locale) to resolve each segment's href.\r\n * Replicates the logic of getBreadcrumbFromSegments without any store calls.\r\n */\r\nexport function buildBreadcrumb(segments: ICategory[], currentRoute: IRoute, currentRoutes: IRoute[]): IRouteLink[] {\r\n const tree: IRouteLink[] = segments\r\n .map(segment => {\r\n const route = findRouteOfCategory(currentRoutes, segment.id);\r\n return route ? routeToLink(route) : null;\r\n })\r\n .filter((x): x is IRouteLink => x !== null);\r\n // Append the leaf page only when it is not the default/index route of its category\r\n if (!currentRoute.isDefault) {\r\n tree.push(routeToLink(currentRoute));\r\n }\r\n return tree;\r\n}\r\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"breadcrumb.js","names":["segments: ICategory[]","currentRoute: IRoute","currentRoutes: IRoute[]","tree: IRouteLink[]"],"sources":["../../src/lib/breadcrumb.ts"],"sourcesContent":["import { findRouteOfCategory, ICategory, IRoute, IRouteLink } from '@websolutespa/bom-core';\r\nimport { routeToLink } from './route';\r\n\r\n/**\r\n * Builds the breadcrumb trail from category segments + the current route.\r\n * Uses currentRoutes (already filtered by market+locale) to resolve each segment's href.\r\n * Replicates the logic of getBreadcrumbFromSegments without any store calls.\r\n */\r\nexport function buildBreadcrumb(segments: ICategory[], currentRoute: IRoute, currentRoutes: IRoute[]): IRouteLink[] {\r\n const tree: IRouteLink[] = segments\r\n .map(segment => {\r\n const route = findRouteOfCategory(currentRoutes, segment.id);\r\n return route ? routeToLink(route) : null;\r\n })\r\n .filter((x): x is IRouteLink => x !== null);\r\n // Append the leaf page only when it is not the default/index route of its category\r\n if (!currentRoute.isDefault) {\r\n tree.push(routeToLink(currentRoute));\r\n }\r\n return tree;\r\n}\r\n"],"mappings":";;;;;;;;;;;;;AAQA,SAAgB,gBAAgBA,UAAuBC,cAAsBC,eAAuC;CAClH,MAAMC,OAAqB,SACxB,IAAI,aAAW;EACd,MAAM,QAAQ,oBAAoB,eAAe,QAAQ,GAAG;AAC5D,SAAO,QAAQ,YAAY,MAAM,GAAG;CACrC,EAAC,CACD,OAAO,CAAC,MAAuB,MAAM,KAAK;AAE7C,KAAI,CAAC,aAAa,WAChB,KAAK,KAAK,YAAY,aAAa,CAAC;AAEtC,QAAO;AACR"}
|
package/dist/lib/const.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"const.d.ts","names":[],"sources":["../../src/lib/const.ts"],"mappings":";;;cAEa,QAAsD,OAAO"}
|
|
1
|
+
{"version":3,"file":"const.d.ts","names":[],"sources":["../../src/lib/const.ts"],"sourcesContent":[],"mappings":";;;cAEa,QAAsD,OAAO"}
|
package/dist/lib/const.js
CHANGED
package/dist/lib/const.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"const.js","names":[],"sources":["../../src/lib/const.ts"],"sourcesContent":["import type { Config, User } from '@websolutespa/payload-plugin-bowl';\r\n\r\nexport const guest = { collection: 'users', roles: ['guest'] } as (User & Config['user']);\r\n"],"mappings":";AAEA,MAAa,QAAQ;CAAE,YAAY;CAAS,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"const.js","names":[],"sources":["../../src/lib/const.ts"],"sourcesContent":["import type { Config, User } from '@websolutespa/payload-plugin-bowl';\r\n\r\nexport const guest = { collection: 'users', roles: ['guest'] } as (User & Config['user']);\r\n"],"mappings":";AAEA,MAAa,QAAQ;CAAE,YAAY;CAAS,OAAO,CAAC,OAAQ;AAAE"}
|
package/dist/lib/http.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.d.ts","names":[],"sources":["../../src/lib/http.ts"],"mappings":";;;KAKY,iBAAA,GAAoB;iBAEhB,yBAAA,CAAA,GAA6B;AAFjC,iBASI,0BAAA,CATgB,KAAmB,CAAA,EAAA,MAAA,CAAA,EASS,iBATT;AAEnC,iBA4BA,cAAA,CA5ByB,QAAI,EAAA,MAAA,EAAA,MAAiB,CAAA,EAAA,MAAA,CAAA,EAAA,MAAA;AAO9C,iBA2BM,aA3BoB,CAAA,IAAA,OAAkB,CAAA,CAAA,QAAA,EAAiB,MAAA,EAAA,OAAA,CAAA,EA2BD,iBA3BC,EAAA,cA2B1C,CA3B0C,EAAA;EAqB7D,MAAA,EAAA,MAAA;EAMM,MAAA,EAAA,MAAA;
|
|
1
|
+
{"version":3,"file":"http.d.ts","names":[],"sources":["../../src/lib/http.ts"],"sourcesContent":[],"mappings":";;;KAKY,iBAAA,GAAoB;iBAEhB,yBAAA,CAAA,GAA6B;AAFjC,iBASI,0BAAA,CATgB,KAAmB,CAAA,EAAA,MAAA,CAAA,EASS,iBATT;AAEnC,iBA4BA,cAAA,CA5ByB,QAAI,EAAA,MAAA,EAAA,MAAiB,CAAA,EAAA,MAAA,CAAA,EAAA,MAAA;AAO9C,iBA2BM,aA3BoB,CAAA,IAAA,OAAkB,CAAA,CAAA,QAAA,EAAiB,MAAA,EAAA,OAAA,CAAA,EA2BD,iBA3BC,EAAA,cA2B1C,CA3B0C,EAAA;EAqB7D,MAAA,EAAA,MAAA;EAMM,MAAA,EAAA,MAAA;CAAa,EAAA,MAAA,CAAA,EAAA,MAAA,CAAA,EAAwI,OAAxI,CAAgJ,CAAhJ,CAAA;AAAyC,iBActD,WAdsD,CAAA,IAAA,OAAA,CAAA,CAAA,GAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAcP,iBAdO,EAAA,cAAsG,CAAtG,EAAA;EAAsB,MAAiF,EAAA,MAAA;EAAC,MAAT,EAAA,MAAA;AAAO,CAAA,EAAA,MAAA,CAAA,EAAA,MAAA,CAAA,EAcd,OAdc,CAcN,CAdM,CAAA;AAc5J,iBAIA,YAJW,CAAA,IAAA,OAAA,CAAA,CAAA,GAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,OAAA,CAAA,EAIwD,iBAJxD,EAAA,cAA0D,CAA1D,EAAA;EAAA,MAAA,EAAA,MAAA;EAAA,MAAoC,EAAA,MAAA;CAAsB,CAAA,EAI4E,OAJK,CAIG,CAJH,CAAA;AAAR,iBAQ9I,WAR8I,CAAA,IAAA,OAAA,CAAA,CAAA,GAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,OAAA,CAAA,EAQ5E,iBAR4E,EAAA,cAIlI,CAJkI,EAAA;EAAO,MAAA,EAAA,MAAA;EAIrJ,MAAA,EAAA,MAAA;CAAY,CAAA,EAIoI,OAJpI,CAI4I,CAJ5I,CAAA;AAAuD,iBAQnE,aARmE,CAAA,IAAA,OAAA,CAAA,CAAA,GAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,OAAA,CAAA,EAQC,iBARD,EAAA,cAAqF,CAArF,EAAA;EAAsB,MAAgE,EAAA,MAAA;EAAC,MAAT,EAAA,MAAA;AAAO,CAAA,CAAA,EAQN,OARM,CAQE,CARF,CAAA;AAIxJ,iBAQA,cARW,CAAA,IAAA,OAAA,CAAA,CAAA,GAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAQuC,iBARvC,EAAA,cAA6E,CAA7E,EAAA;EAAA,MAAA,EAAA,MAAA;EAAA,MAAuD,EAAA,MAAA;CAAsB,CAAA,EAQwC,OARwB,CAQhB,CARgB,CAAA"}
|
package/dist/lib/http.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { httpFetch, isBrowser, merge } from "@websolutespa/bom-core";
|
|
2
|
+
|
|
2
3
|
//#region src/lib/http.ts
|
|
3
4
|
const API_URL = process.env.NEXT_PUBLIC_URL || "http://localhost:3000";
|
|
4
5
|
const API_BASE = process.env.NEXT_PUBLIC_API || "/api";
|
|
@@ -10,7 +11,8 @@ function getRemoteApiRequestOptions(token) {
|
|
|
10
11
|
else return { headers: { Authorization: `users API-Key ${process.env.STORE_API_KEY}` } };
|
|
11
12
|
}
|
|
12
13
|
function getLocalApiUrl(pathname, origin) {
|
|
13
|
-
|
|
14
|
+
const url = `${isBrowser ? window.location.origin : origin || API_URL}${API_BASE}${pathname}`;
|
|
15
|
+
return url;
|
|
14
16
|
}
|
|
15
17
|
async function localApiFetch(pathname, options = {}, serviceOptions, origin) {
|
|
16
18
|
const url = new URL(getLocalApiUrl(pathname, origin));
|
|
@@ -20,7 +22,8 @@ async function localApiFetch(pathname, options = {}, serviceOptions, origin) {
|
|
|
20
22
|
}
|
|
21
23
|
const apiOptions = merge({ ...getLocalApiRequestOptions() }, options);
|
|
22
24
|
console.log("📡 localApiFetch", apiOptions.method, url.href);
|
|
23
|
-
|
|
25
|
+
const apiResponse = await httpFetch(url.href, apiOptions);
|
|
26
|
+
return apiResponse;
|
|
24
27
|
}
|
|
25
28
|
async function localApiGet(url, options = {}, serviceOptions, origin) {
|
|
26
29
|
return await localApiFetch(url, {
|
|
@@ -55,7 +58,7 @@ async function localApiDelete(url, options = {}, serviceOptions) {
|
|
|
55
58
|
method: "DELETE"
|
|
56
59
|
}, serviceOptions);
|
|
57
60
|
}
|
|
61
|
+
|
|
58
62
|
//#endregion
|
|
59
63
|
export { getLocalApiRequestOptions, getLocalApiUrl, getRemoteApiRequestOptions, localApiDelete, localApiFetch, localApiGet, localApiPatch, localApiPost, localApiPut };
|
|
60
|
-
|
|
61
64
|
//# sourceMappingURL=http.js.map
|
package/dist/lib/http.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.js","names":[],"sources":["../../src/lib/http.ts"],"sourcesContent":["import { FetchRequestOptions, httpFetch, isBrowser, merge } from '@websolutespa/bom-core';\r\n\r\nconst API_URL = process.env.NEXT_PUBLIC_URL || 'http://localhost:3000';\r\nconst API_BASE = process.env.NEXT_PUBLIC_API || '/api';\r\n\r\nexport type ApiRequestOptions = FetchRequestOptions;\r\n\r\nexport function getLocalApiRequestOptions(): ApiRequestOptions {\r\n return {\r\n headers: {\r\n },\r\n };\r\n}\r\n\r\nexport function getRemoteApiRequestOptions(token?: string): ApiRequestOptions {\r\n if (token) {\r\n // authenticated end user JWT token bearer (end_users)\r\n return {\r\n // mode: 'cors',\r\n headers: {\r\n Authorization: `JWT ${token}`,\r\n // Authorization: `Bearer ${token}`,\r\n },\r\n };\r\n } else {\r\n // guest user api key (users)\r\n return {\r\n // mode: 'cors',\r\n headers: {\r\n Authorization: `users API-Key ${process.env.STORE_API_KEY}`,\r\n },\r\n };\r\n }\r\n}\r\n\r\nexport function getLocalApiUrl(pathname: string, origin?: string): string {\r\n const url = `${isBrowser ? window.location.origin : (origin || API_URL)}${API_BASE}${pathname}`;\r\n // console.log('getLocalApiUrl', url);\r\n return url;\r\n}\r\n\r\nexport async function localApiFetch<T = unknown>(pathname: string, options: ApiRequestOptions = {}, serviceOptions?: { locale: string, market: string }, origin?: string): Promise<T> {\r\n // console.log('localApiFetch', pathname, options, serviceOptions);\r\n const url = new URL(getLocalApiUrl(pathname, origin));\r\n if (serviceOptions) {\r\n url.searchParams.append('locale', serviceOptions.locale);\r\n url.searchParams.append('market', serviceOptions.market);\r\n }\r\n const apiOptions = merge({ ...getLocalApiRequestOptions() }, options);\r\n console.log('📡 localApiFetch', apiOptions.method, url.href);\r\n const apiResponse = await httpFetch(url.href, apiOptions);\r\n // console.log('localApiFetch', pathname, apiResponse);\r\n return apiResponse;\r\n}\r\n\r\nexport async function localApiGet<T = unknown>(url: string, options: ApiRequestOptions = {}, serviceOptions?: { locale: string, market: string }, origin?: string): Promise<T> {\r\n return await localApiFetch<T>(url, { ...options, method: 'GET' }, serviceOptions, origin);\r\n}\r\n\r\nexport async function localApiPost<T = unknown>(url: string, payload?: unknown, options: ApiRequestOptions = {}, serviceOptions?: { locale: string, market: string }): Promise<T> {\r\n return await localApiFetch<T>(url, { ...options, method: 'POST', body: payload ? JSON.stringify(payload) : undefined }, serviceOptions);\r\n}\r\n\r\nexport async function localApiPut<T = unknown>(url: string, payload?: unknown, options: ApiRequestOptions = {}, serviceOptions?: { locale: string, market: string }): Promise<T> {\r\n return await localApiFetch<T>(url, { ...options, method: 'PUT', body: payload ? JSON.stringify(payload) : undefined }, serviceOptions);\r\n}\r\n\r\nexport async function localApiPatch<T = unknown>(url: string, payload?: unknown, options: ApiRequestOptions = {}, serviceOptions?: { locale: string, market: string }): Promise<T> {\r\n return await localApiFetch<T>(url, { ...options, method: 'PATCH', body: payload ? JSON.stringify(payload) : undefined }, serviceOptions);\r\n}\r\n\r\nexport async function localApiDelete<T = unknown>(url: string, options: ApiRequestOptions = {}, serviceOptions?: { locale: string, market: string }): Promise<T> {\r\n return await localApiFetch<T>(url, { ...options, method: 'DELETE' }, serviceOptions);\r\n}\r\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"http.js","names":["token?: string","pathname: string","origin?: string","options: ApiRequestOptions","serviceOptions?: { locale: string, market: string }","url: string","payload?: unknown"],"sources":["../../src/lib/http.ts"],"sourcesContent":["import { FetchRequestOptions, httpFetch, isBrowser, merge } from '@websolutespa/bom-core';\r\n\r\nconst API_URL = process.env.NEXT_PUBLIC_URL || 'http://localhost:3000';\r\nconst API_BASE = process.env.NEXT_PUBLIC_API || '/api';\r\n\r\nexport type ApiRequestOptions = FetchRequestOptions;\r\n\r\nexport function getLocalApiRequestOptions(): ApiRequestOptions {\r\n return {\r\n headers: {\r\n },\r\n };\r\n}\r\n\r\nexport function getRemoteApiRequestOptions(token?: string): ApiRequestOptions {\r\n if (token) {\r\n // authenticated end user JWT token bearer (end_users)\r\n return {\r\n // mode: 'cors',\r\n headers: {\r\n Authorization: `JWT ${token}`,\r\n // Authorization: `Bearer ${token}`,\r\n },\r\n };\r\n } else {\r\n // guest user api key (users)\r\n return {\r\n // mode: 'cors',\r\n headers: {\r\n Authorization: `users API-Key ${process.env.STORE_API_KEY}`,\r\n },\r\n };\r\n }\r\n}\r\n\r\nexport function getLocalApiUrl(pathname: string, origin?: string): string {\r\n const url = `${isBrowser ? window.location.origin : (origin || API_URL)}${API_BASE}${pathname}`;\r\n // console.log('getLocalApiUrl', url);\r\n return url;\r\n}\r\n\r\nexport async function localApiFetch<T = unknown>(pathname: string, options: ApiRequestOptions = {}, serviceOptions?: { locale: string, market: string }, origin?: string): Promise<T> {\r\n // console.log('localApiFetch', pathname, options, serviceOptions);\r\n const url = new URL(getLocalApiUrl(pathname, origin));\r\n if (serviceOptions) {\r\n url.searchParams.append('locale', serviceOptions.locale);\r\n url.searchParams.append('market', serviceOptions.market);\r\n }\r\n const apiOptions = merge({ ...getLocalApiRequestOptions() }, options);\r\n console.log('📡 localApiFetch', apiOptions.method, url.href);\r\n const apiResponse = await httpFetch(url.href, apiOptions);\r\n // console.log('localApiFetch', pathname, apiResponse);\r\n return apiResponse;\r\n}\r\n\r\nexport async function localApiGet<T = unknown>(url: string, options: ApiRequestOptions = {}, serviceOptions?: { locale: string, market: string }, origin?: string): Promise<T> {\r\n return await localApiFetch<T>(url, { ...options, method: 'GET' }, serviceOptions, origin);\r\n}\r\n\r\nexport async function localApiPost<T = unknown>(url: string, payload?: unknown, options: ApiRequestOptions = {}, serviceOptions?: { locale: string, market: string }): Promise<T> {\r\n return await localApiFetch<T>(url, { ...options, method: 'POST', body: payload ? JSON.stringify(payload) : undefined }, serviceOptions);\r\n}\r\n\r\nexport async function localApiPut<T = unknown>(url: string, payload?: unknown, options: ApiRequestOptions = {}, serviceOptions?: { locale: string, market: string }): Promise<T> {\r\n return await localApiFetch<T>(url, { ...options, method: 'PUT', body: payload ? JSON.stringify(payload) : undefined }, serviceOptions);\r\n}\r\n\r\nexport async function localApiPatch<T = unknown>(url: string, payload?: unknown, options: ApiRequestOptions = {}, serviceOptions?: { locale: string, market: string }): Promise<T> {\r\n return await localApiFetch<T>(url, { ...options, method: 'PATCH', body: payload ? JSON.stringify(payload) : undefined }, serviceOptions);\r\n}\r\n\r\nexport async function localApiDelete<T = unknown>(url: string, options: ApiRequestOptions = {}, serviceOptions?: { locale: string, market: string }): Promise<T> {\r\n return await localApiFetch<T>(url, { ...options, method: 'DELETE' }, serviceOptions);\r\n}\r\n"],"mappings":";;;AAEA,MAAM,UAAU,QAAQ,IAAI,mBAAmB;AAC/C,MAAM,WAAW,QAAQ,IAAI,mBAAmB;AAIhD,SAAgB,4BAA+C;AAC7D,QAAO,EACL,SAAS,CACR,EACF;AACF;AAED,SAAgB,2BAA2BA,OAAmC;AAC5E,KAAI,MAEF,QAAO,EAEL,SAAS,EACP,eAAe,CAAC,IAAI,EAAE,OAAO,CAE9B,EACF;KAGD,QAAO,EAEL,SAAS,EACP,eAAe,CAAC,cAAc,EAAE,QAAQ,IAAI,eAAe,CAC5D,EACF;AAEJ;AAED,SAAgB,eAAeC,UAAkBC,QAAyB;CACxE,MAAM,MAAM,GAAG,YAAY,OAAO,SAAS,SAAU,UAAU,UAAW,WAAW,UAAU;AAE/F,QAAO;AACR;AAED,eAAsB,cAA2BD,UAAkBE,UAA6B,CAAE,GAAEC,gBAAqDF,QAA6B;CAEpL,MAAM,MAAM,IAAI,IAAI,eAAe,UAAU,OAAO;AACpD,KAAI,gBAAgB;EAClB,IAAI,aAAa,OAAO,UAAU,eAAe,OAAO;EACxD,IAAI,aAAa,OAAO,UAAU,eAAe,OAAO;CACzD;CACD,MAAM,aAAa,MAAM,EAAE,GAAG,2BAA2B,CAAE,GAAE,QAAQ;CACrE,QAAQ,IAAI,oBAAoB,WAAW,QAAQ,IAAI,KAAK;CAC5D,MAAM,cAAc,MAAM,UAAU,IAAI,MAAM,WAAW;AAEzD,QAAO;AACR;AAED,eAAsB,YAAyBG,KAAaF,UAA6B,CAAE,GAAEC,gBAAqDF,QAA6B;AAC7K,QAAO,MAAM,cAAiB,KAAK;EAAE,GAAG;EAAS,QAAQ;CAAO,GAAE,gBAAgB,OAAO;AAC1F;AAED,eAAsB,aAA0BG,KAAaC,SAAmBH,UAA6B,CAAE,GAAEC,gBAAiE;AAChL,QAAO,MAAM,cAAiB,KAAK;EAAE,GAAG;EAAS,QAAQ;EAAQ,MAAM,UAAU,KAAK,UAAU,QAAQ,GAAG;CAAW,GAAE,eAAe;AACxI;AAED,eAAsB,YAAyBC,KAAaC,SAAmBH,UAA6B,CAAE,GAAEC,gBAAiE;AAC/K,QAAO,MAAM,cAAiB,KAAK;EAAE,GAAG;EAAS,QAAQ;EAAO,MAAM,UAAU,KAAK,UAAU,QAAQ,GAAG;CAAW,GAAE,eAAe;AACvI;AAED,eAAsB,cAA2BC,KAAaC,SAAmBH,UAA6B,CAAE,GAAEC,gBAAiE;AACjL,QAAO,MAAM,cAAiB,KAAK;EAAE,GAAG;EAAS,QAAQ;EAAS,MAAM,UAAU,KAAK,UAAU,QAAQ,GAAG;CAAW,GAAE,eAAe;AACzI;AAED,eAAsB,eAA4BC,KAAaF,UAA6B,CAAE,GAAEC,gBAAiE;AAC/J,QAAO,MAAM,cAAiB,KAAK;EAAE,GAAG;EAAS,QAAQ;CAAU,GAAE,eAAe;AACrF"}
|
package/dist/lib/label.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"label.d.ts","names":[],"sources":["../../src/lib/label.ts"],"mappings":";;;iBAEgB,kBAAA,SAA2B,kCAEX;iBAahB,eAAA,2BAA0C;AAf1C,cAuBH,YAAA,CAvBqB;EAAA,MAAA,EAwBxB,MAxBwB,EAAA;
|
|
1
|
+
{"version":3,"file":"label.d.ts","names":[],"sources":["../../src/lib/label.ts"],"sourcesContent":[],"mappings":";;;iBAEgB,kBAAA,SAA2B,kCAEX;iBAahB,eAAA,2BAA0C;AAf1C,cAuBH,YAAA,CAvBqB;EAAA,MAAA,EAwBxB,MAxBwB,EAAA;EAAA,UAAS,EAyB7B,MAzB6B,CAAA,MAAA,EAyBd,YAzBc,GAAA,SAAA,CAAA;EAAM,WAEjB,CAAA,MAAA,EAwBV,MAxBU,EAAA;EAAM,QAAA,CAAA,GAAA,EAAA,MAAA,EAAA,MAAA,CAAA,EA4BL,MA5BK,CAAA,MAAA,EAAA,GAAA,CAAA,CAAA,EAAA,MAAA;AAatC;AAQA"}
|
package/dist/lib/label.js
CHANGED
|
@@ -11,9 +11,10 @@ function parseLabel(dictionary, key, params) {
|
|
|
11
11
|
return label;
|
|
12
12
|
}
|
|
13
13
|
function interpolateText(text, dictionary) {
|
|
14
|
-
|
|
14
|
+
const TEMPLATE_REGEXP = /@(\w+)/g;
|
|
15
|
+
return text.replace(TEMPLATE_REGEXP, (text$1, key) => {
|
|
15
16
|
const replacer = dictionary[key];
|
|
16
|
-
return typeof replacer !== "undefined" ? String(replacer) : text;
|
|
17
|
+
return typeof replacer !== "undefined" ? String(replacer) : text$1;
|
|
17
18
|
});
|
|
18
19
|
}
|
|
19
20
|
var LabelService = class {
|
|
@@ -27,7 +28,7 @@ var LabelService = class {
|
|
|
27
28
|
return parseLabel(this.dictionary, key, params);
|
|
28
29
|
}
|
|
29
30
|
};
|
|
31
|
+
|
|
30
32
|
//#endregion
|
|
31
33
|
export { LabelService, getLabelFromLabels, interpolateText };
|
|
32
|
-
|
|
33
34
|
//# sourceMappingURL=label.js.map
|
package/dist/lib/label.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"label.js","names":[],"sources":["../../src/lib/label.ts"],"sourcesContent":["import type { ILabel, ILocalizable } from '@websolutespa/bom-core';\r\n\r\nexport function getLabelFromLabels(labels: ILabel[]) {\r\n const labelService = new LabelService(labels);\r\n return (key: string, params?: Record<string, any>): string => {\r\n return labelService.getLabel(key, params);\r\n };\r\n}\r\n\r\nfunction parseLabel(dictionary: Record<string, ILocalizable | undefined>, key: string, params?: Record<string, any>): string {\r\n const label = (dictionary[key] != null ? dictionary[key] : key) as string;\r\n if (params) {\r\n return interpolateText(label, params);\r\n }\r\n return label;\r\n}\r\n\r\nexport function interpolateText(text: string, dictionary: Record<string, any>): string {\r\n const TEMPLATE_REGEXP: RegExp = /@(\\w+)/g;\r\n return text.replace(TEMPLATE_REGEXP, (text: string, key: string) => {\r\n const replacer: unknown = dictionary[key];\r\n return typeof replacer !== 'undefined' ? String(replacer) : text;\r\n });\r\n}\r\n\r\nexport class LabelService {\r\n labels: ILabel[];\r\n dictionary: Record<string, ILocalizable | undefined>;\r\n constructor(labels: ILabel[]) {\r\n this.labels = labels;\r\n this.dictionary = Object.fromEntries(labels.map(l => [l.id, l.text]));\r\n }\r\n getLabel(key: string, params?: Record<string, any>): string {\r\n return parseLabel(this.dictionary, key, params);\r\n }\r\n}\r\n\r\n/*\r\nexport function resolveLabel(labels: ILabel[], id: string): string {\r\n const label = labels.find(x => x.id === id);\r\n return label && label.text ? label.text.toString() : id;\r\n}\r\n*/\r\n"],"mappings":";AAEA,SAAgB,
|
|
1
|
+
{"version":3,"file":"label.js","names":["labels: ILabel[]","key: string","params?: Record<string, any>","dictionary: Record<string, ILocalizable | undefined>","text: string","dictionary: Record<string, any>","TEMPLATE_REGEXP: RegExp","replacer: unknown","text"],"sources":["../../src/lib/label.ts"],"sourcesContent":["import type { ILabel, ILocalizable } from '@websolutespa/bom-core';\r\n\r\nexport function getLabelFromLabels(labels: ILabel[]) {\r\n const labelService = new LabelService(labels);\r\n return (key: string, params?: Record<string, any>): string => {\r\n return labelService.getLabel(key, params);\r\n };\r\n}\r\n\r\nfunction parseLabel(dictionary: Record<string, ILocalizable | undefined>, key: string, params?: Record<string, any>): string {\r\n const label = (dictionary[key] != null ? dictionary[key] : key) as string;\r\n if (params) {\r\n return interpolateText(label, params);\r\n }\r\n return label;\r\n}\r\n\r\nexport function interpolateText(text: string, dictionary: Record<string, any>): string {\r\n const TEMPLATE_REGEXP: RegExp = /@(\\w+)/g;\r\n return text.replace(TEMPLATE_REGEXP, (text: string, key: string) => {\r\n const replacer: unknown = dictionary[key];\r\n return typeof replacer !== 'undefined' ? String(replacer) : text;\r\n });\r\n}\r\n\r\nexport class LabelService {\r\n labels: ILabel[];\r\n dictionary: Record<string, ILocalizable | undefined>;\r\n constructor(labels: ILabel[]) {\r\n this.labels = labels;\r\n this.dictionary = Object.fromEntries(labels.map(l => [l.id, l.text]));\r\n }\r\n getLabel(key: string, params?: Record<string, any>): string {\r\n return parseLabel(this.dictionary, key, params);\r\n }\r\n}\r\n\r\n/*\r\nexport function resolveLabel(labels: ILabel[], id: string): string {\r\n const label = labels.find(x => x.id === id);\r\n return label && label.text ? label.text.toString() : id;\r\n}\r\n*/\r\n"],"mappings":";AAEA,SAAgB,mBAAmBA,QAAkB;CACnD,MAAM,eAAe,IAAI,aAAa;AACtC,QAAO,CAACC,KAAaC,WAAyC;AAC5D,SAAO,aAAa,SAAS,KAAK,OAAO;CAC1C;AACF;AAED,SAAS,WAAWC,YAAsDF,KAAaC,QAAsC;CAC3H,MAAM,QAAS,WAAW,QAAQ,OAAO,WAAW,OAAO;AAC3D,KAAI,OACF,QAAO,gBAAgB,OAAO,OAAO;AAEvC,QAAO;AACR;AAED,SAAgB,gBAAgBE,MAAcC,YAAyC;CACrF,MAAMC,kBAA0B;AAChC,QAAO,KAAK,QAAQ,iBAAiB,CAACF,QAAcH,QAAgB;EAClE,MAAMM,WAAoB,WAAW;AACrC,SAAO,OAAO,aAAa,cAAc,OAAO,SAAS,GAAGC;CAC7D,EAAC;AACH;AAED,IAAa,eAAb,MAA0B;CACxB;CACA;CACA,YAAYR,QAAkB;EAC5B,KAAK,SAAS;EACd,KAAK,aAAa,OAAO,YAAY,OAAO,IAAI,OAAK,CAAC,EAAE,IAAI,EAAE,IAAK,EAAC,CAAC;CACtE;CACD,SAASC,KAAaC,QAAsC;AAC1D,SAAO,WAAW,KAAK,YAAY,KAAK,OAAO;CAChD;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"layout.defaults.d.ts","names":[],"sources":["../../src/lib/layout.defaults.ts"],"mappings":";;;cAEa,gBAAgB"}
|
|
1
|
+
{"version":3,"file":"layout.defaults.d.ts","names":[],"sources":["../../src/lib/layout.defaults.ts"],"sourcesContent":[],"mappings":";;;cAEa,gBAAgB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"layout.defaults.js","names":[],"sources":["../../src/lib/layout.defaults.ts"],"sourcesContent":["import { ILayout } from '@websolutespa/bom-core';\r\n\r\nexport const LayoutDefaults: ILayout = {\r\n labels: [\r\n {\r\n id: 'error.required',\r\n text: 'Required field',\r\n },\r\n {\r\n id: 'items.found',\r\n text: '@items items found',\r\n },\r\n ],\r\n locale: 'en',\r\n locales: [],\r\n market: 'ww',\r\n markets: [],\r\n app: {\r\n id: 'app',\r\n brand: {\r\n name: 'Mixer',\r\n social: [],\r\n },\r\n },\r\n menu: {\r\n main: {\r\n id: 'main',\r\n items: [\r\n {\r\n id: 1,\r\n type: 'category',\r\n title: 'Collections',\r\n category: 'product_index',\r\n href: '#collections',\r\n items: [\r\n {\r\n id: 'product_category_tile',\r\n type: 'category',\r\n title: 'Tiles',\r\n category: 'product_category_tile',\r\n href: '#collections/tiles',\r\n items: [],\r\n media: {\r\n type: 'image',\r\n src: 'https://placehold.co/960x600/e4e5eb/f4f5fb.webp?text=placehold',\r\n },\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n },\r\n tree: {\r\n id: 'homepage',\r\n category: 'homepage',\r\n schema: 'homepage',\r\n title: 'Homepage',\r\n href: '/',\r\n items: [\r\n {\r\n id: 'product_index',\r\n category: 'product_index',\r\n schema: 'product_index',\r\n title: 'Collections',\r\n href: '#collections',\r\n items: [\r\n {\r\n id: 'product_category',\r\n category: 'product_category',\r\n schema: 'product_category',\r\n title: 'Tiles',\r\n href: '#product_category',\r\n media: {\r\n type: 'image',\r\n src: 'https://bom-mixer.wslabs.it/assets/header/6366_n_tiles.jpg',\r\n },\r\n },\r\n {\r\n id: 'product_category',\r\n category: 'product_category',\r\n schema: 'product_category',\r\n title: '3D Elements',\r\n href: '#product_category',\r\n media: {\r\n type: 'image',\r\n src: 'https://bom-mixer.wslabs.it/assets/header/6369_n_3d_elements_menu_cover.webp',\r\n },\r\n },\r\n {\r\n id: 'product_category',\r\n category: 'product_category',\r\n schema: 'product_category',\r\n title: 'Paints',\r\n href: '#product_category',\r\n media: {\r\n type: 'image',\r\n src: 'https://bom-mixer.wslabs.it/assets/header/6367_n_paints.jpg',\r\n },\r\n },\r\n {\r\n id: 'product_category',\r\n category: 'product_category',\r\n schema: 'product_category',\r\n title: 'Wood & Metal',\r\n href: '#product_category',\r\n media: {\r\n type: 'image',\r\n src: 'https://bom-mixer.wslabs.it/assets/header/6368_n_menu_wood_metal.webp',\r\n },\r\n },\r\n {\r\n id: 'product_category',\r\n category: 'product_category',\r\n schema: 'product_category',\r\n title: 'Accessories',\r\n href: '#product_category',\r\n media: {\r\n type: 'image',\r\n src: 'https://bom-mixer.wslabs.it/assets/header/6371_n_accessories.jpg',\r\n },\r\n },\r\n {\r\n id: 'product_category',\r\n category: 'product_category',\r\n schema: 'product_category',\r\n title: 'Editions',\r\n href: '#product_category',\r\n media: {\r\n type: 'image',\r\n src: 'https://bom-mixer.wslabs.it/assets/header/7858_n_Menu.webp',\r\n },\r\n },\r\n ],\r\n },\r\n {\r\n id: 'magazine_index',\r\n category: 'magazine_index',\r\n schema: 'magazine_index',\r\n title: 'Magazine',\r\n href: '#magazine_index',\r\n },\r\n {\r\n id: 'store_index',\r\n category: 'store_index',\r\n schema: 'store_index',\r\n title: 'Stores',\r\n href: '#store_index',\r\n },\r\n {\r\n id: 'contact',\r\n category: 'contact',\r\n schema: 'contact',\r\n title: 'Contacts',\r\n href: '#contact',\r\n },\r\n {\r\n id: 'shop_index',\r\n category: 'shop_index',\r\n schema: 'shop_index',\r\n title: 'Shop',\r\n href: '#shop_index',\r\n },\r\n ],\r\n },\r\n topLevelHrefs: {},\r\n topLevelRoutes: {},\r\n};\r\n"],"mappings":";AAEA,
|
|
1
|
+
{"version":3,"file":"layout.defaults.js","names":["LayoutDefaults: ILayout"],"sources":["../../src/lib/layout.defaults.ts"],"sourcesContent":["import { ILayout } from '@websolutespa/bom-core';\r\n\r\nexport const LayoutDefaults: ILayout = {\r\n labels: [\r\n {\r\n id: 'error.required',\r\n text: 'Required field',\r\n },\r\n {\r\n id: 'items.found',\r\n text: '@items items found',\r\n },\r\n ],\r\n locale: 'en',\r\n locales: [],\r\n market: 'ww',\r\n markets: [],\r\n app: {\r\n id: 'app',\r\n brand: {\r\n name: 'Mixer',\r\n social: [],\r\n },\r\n },\r\n menu: {\r\n main: {\r\n id: 'main',\r\n items: [\r\n {\r\n id: 1,\r\n type: 'category',\r\n title: 'Collections',\r\n category: 'product_index',\r\n href: '#collections',\r\n items: [\r\n {\r\n id: 'product_category_tile',\r\n type: 'category',\r\n title: 'Tiles',\r\n category: 'product_category_tile',\r\n href: '#collections/tiles',\r\n items: [],\r\n media: {\r\n type: 'image',\r\n src: 'https://placehold.co/960x600/e4e5eb/f4f5fb.webp?text=placehold',\r\n },\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n },\r\n tree: {\r\n id: 'homepage',\r\n category: 'homepage',\r\n schema: 'homepage',\r\n title: 'Homepage',\r\n href: '/',\r\n items: [\r\n {\r\n id: 'product_index',\r\n category: 'product_index',\r\n schema: 'product_index',\r\n title: 'Collections',\r\n href: '#collections',\r\n items: [\r\n {\r\n id: 'product_category',\r\n category: 'product_category',\r\n schema: 'product_category',\r\n title: 'Tiles',\r\n href: '#product_category',\r\n media: {\r\n type: 'image',\r\n src: 'https://bom-mixer.wslabs.it/assets/header/6366_n_tiles.jpg',\r\n },\r\n },\r\n {\r\n id: 'product_category',\r\n category: 'product_category',\r\n schema: 'product_category',\r\n title: '3D Elements',\r\n href: '#product_category',\r\n media: {\r\n type: 'image',\r\n src: 'https://bom-mixer.wslabs.it/assets/header/6369_n_3d_elements_menu_cover.webp',\r\n },\r\n },\r\n {\r\n id: 'product_category',\r\n category: 'product_category',\r\n schema: 'product_category',\r\n title: 'Paints',\r\n href: '#product_category',\r\n media: {\r\n type: 'image',\r\n src: 'https://bom-mixer.wslabs.it/assets/header/6367_n_paints.jpg',\r\n },\r\n },\r\n {\r\n id: 'product_category',\r\n category: 'product_category',\r\n schema: 'product_category',\r\n title: 'Wood & Metal',\r\n href: '#product_category',\r\n media: {\r\n type: 'image',\r\n src: 'https://bom-mixer.wslabs.it/assets/header/6368_n_menu_wood_metal.webp',\r\n },\r\n },\r\n {\r\n id: 'product_category',\r\n category: 'product_category',\r\n schema: 'product_category',\r\n title: 'Accessories',\r\n href: '#product_category',\r\n media: {\r\n type: 'image',\r\n src: 'https://bom-mixer.wslabs.it/assets/header/6371_n_accessories.jpg',\r\n },\r\n },\r\n {\r\n id: 'product_category',\r\n category: 'product_category',\r\n schema: 'product_category',\r\n title: 'Editions',\r\n href: '#product_category',\r\n media: {\r\n type: 'image',\r\n src: 'https://bom-mixer.wslabs.it/assets/header/7858_n_Menu.webp',\r\n },\r\n },\r\n ],\r\n },\r\n {\r\n id: 'magazine_index',\r\n category: 'magazine_index',\r\n schema: 'magazine_index',\r\n title: 'Magazine',\r\n href: '#magazine_index',\r\n },\r\n {\r\n id: 'store_index',\r\n category: 'store_index',\r\n schema: 'store_index',\r\n title: 'Stores',\r\n href: '#store_index',\r\n },\r\n {\r\n id: 'contact',\r\n category: 'contact',\r\n schema: 'contact',\r\n title: 'Contacts',\r\n href: '#contact',\r\n },\r\n {\r\n id: 'shop_index',\r\n category: 'shop_index',\r\n schema: 'shop_index',\r\n title: 'Shop',\r\n href: '#shop_index',\r\n },\r\n ],\r\n },\r\n topLevelHrefs: {},\r\n topLevelRoutes: {},\r\n};\r\n"],"mappings":";AAEA,MAAaA,iBAA0B;CACrC,QAAQ,CACN;EACE,IAAI;EACJ,MAAM;CACP,GACD;EACE,IAAI;EACJ,MAAM;CACP,CACF;CACD,QAAQ;CACR,SAAS,CAAE;CACX,QAAQ;CACR,SAAS,CAAE;CACX,KAAK;EACH,IAAI;EACJ,OAAO;GACL,MAAM;GACN,QAAQ,CAAE;EACX;CACF;CACD,MAAM,EACJ,MAAM;EACJ,IAAI;EACJ,OAAO,CACL;GACE,IAAI;GACJ,MAAM;GACN,OAAO;GACP,UAAU;GACV,MAAM;GACN,OAAO,CACL;IACE,IAAI;IACJ,MAAM;IACN,OAAO;IACP,UAAU;IACV,MAAM;IACN,OAAO,CAAE;IACT,OAAO;KACL,MAAM;KACN,KAAK;IACN;GACF,CACF;EACF,CACF;CACF,EACF;CACD,MAAM;EACJ,IAAI;EACJ,UAAU;EACV,QAAQ;EACR,OAAO;EACP,MAAM;EACN,OAAO;GACL;IACE,IAAI;IACJ,UAAU;IACV,QAAQ;IACR,OAAO;IACP,MAAM;IACN,OAAO;KACL;MACE,IAAI;MACJ,UAAU;MACV,QAAQ;MACR,OAAO;MACP,MAAM;MACN,OAAO;OACL,MAAM;OACN,KAAK;MACN;KACF;KACD;MACE,IAAI;MACJ,UAAU;MACV,QAAQ;MACR,OAAO;MACP,MAAM;MACN,OAAO;OACL,MAAM;OACN,KAAK;MACN;KACF;KACD;MACE,IAAI;MACJ,UAAU;MACV,QAAQ;MACR,OAAO;MACP,MAAM;MACN,OAAO;OACL,MAAM;OACN,KAAK;MACN;KACF;KACD;MACE,IAAI;MACJ,UAAU;MACV,QAAQ;MACR,OAAO;MACP,MAAM;MACN,OAAO;OACL,MAAM;OACN,KAAK;MACN;KACF;KACD;MACE,IAAI;MACJ,UAAU;MACV,QAAQ;MACR,OAAO;MACP,MAAM;MACN,OAAO;OACL,MAAM;OACN,KAAK;MACN;KACF;KACD;MACE,IAAI;MACJ,UAAU;MACV,QAAQ;MACR,OAAO;MACP,MAAM;MACN,OAAO;OACL,MAAM;OACN,KAAK;MACN;KACF;IACF;GACF;GACD;IACE,IAAI;IACJ,UAAU;IACV,QAAQ;IACR,OAAO;IACP,MAAM;GACP;GACD;IACE,IAAI;IACJ,UAAU;IACV,QAAQ;IACR,OAAO;IACP,MAAM;GACP;GACD;IACE,IAAI;IACJ,UAAU;IACV,QAAQ;IACR,OAAO;IACP,MAAM;GACP;GACD;IACE,IAAI;IACJ,UAAU;IACV,QAAQ;IACR,OAAO;IACP,MAAM;GACP;EACF;CACF;CACD,eAAe,CAAE;CACjB,gBAAgB,CAAE;AACnB"}
|
package/dist/lib/link.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"link.d.ts","names":[],"sources":["../../src/lib/link.ts"],"mappings":";;;iBAgBgB,OAAA,2BAAkC"}
|
|
1
|
+
{"version":3,"file":"link.d.ts","names":[],"sources":["../../src/lib/link.ts"],"sourcesContent":[],"mappings":";;;iBAgBgB,OAAA,2BAAkC"}
|
package/dist/lib/link.js
CHANGED
|
@@ -6,11 +6,12 @@ function getLink_(category, routeLink) {
|
|
|
6
6
|
return getLink_(category, c) || p;
|
|
7
7
|
}, void 0);
|
|
8
8
|
}
|
|
9
|
+
return void 0;
|
|
9
10
|
}
|
|
10
11
|
function getLink(category, layout) {
|
|
11
12
|
return getLink_(category, layout.tree);
|
|
12
13
|
}
|
|
14
|
+
|
|
13
15
|
//#endregion
|
|
14
16
|
export { getLink };
|
|
15
|
-
|
|
16
17
|
//# sourceMappingURL=link.js.map
|
package/dist/lib/link.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"link.js","names":[],"sources":["../../src/lib/link.ts"],"sourcesContent":["import type { ILayout, IRouteLink } from '@websolutespa/bom-core';\r\n\r\nfunction getLink_(category: string, routeLink: IRouteLink | undefined): string | undefined {\r\n if (routeLink) {\r\n if (routeLink.category === category) {\r\n return routeLink.href;\r\n }\r\n if (routeLink.items) {\r\n return routeLink.items.reduce((p: string | undefined, c) => {\r\n return getLink_(category, c) || p;\r\n }, undefined);\r\n }\r\n }\r\n return undefined;\r\n}\r\n\r\nexport function getLink(category: string, layout: ILayout) {\r\n return getLink_(category, layout.tree);\r\n}\r\n"],"mappings":";AAEA,SAAS,
|
|
1
|
+
{"version":3,"file":"link.js","names":["category: string","routeLink: IRouteLink | undefined","p: string | undefined","layout: ILayout"],"sources":["../../src/lib/link.ts"],"sourcesContent":["import type { ILayout, IRouteLink } from '@websolutespa/bom-core';\r\n\r\nfunction getLink_(category: string, routeLink: IRouteLink | undefined): string | undefined {\r\n if (routeLink) {\r\n if (routeLink.category === category) {\r\n return routeLink.href;\r\n }\r\n if (routeLink.items) {\r\n return routeLink.items.reduce((p: string | undefined, c) => {\r\n return getLink_(category, c) || p;\r\n }, undefined);\r\n }\r\n }\r\n return undefined;\r\n}\r\n\r\nexport function getLink(category: string, layout: ILayout) {\r\n return getLink_(category, layout.tree);\r\n}\r\n"],"mappings":";AAEA,SAAS,SAASA,UAAkBC,WAAuD;AACzF,KAAI,WAAW;AACb,MAAI,UAAU,aAAa,SACzB,QAAO,UAAU;AAEnB,MAAI,UAAU,MACZ,QAAO,UAAU,MAAM,OAAO,CAACC,GAAuB,MAAM;AAC1D,UAAO,SAAS,UAAU,EAAE,IAAI;EACjC,GAAE,OAAU;CAEhB;AACD,QAAO;AACR;AAED,SAAgB,QAAQF,UAAkBG,QAAiB;AACzD,QAAO,SAAS,UAAU,OAAO,KAAK;AACvC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"meta-data.d.ts","names":[],"sources":["../../src/lib/meta-data.ts"],"mappings":";;;;;;;KAMY,MAAA;;EAAA,YAAM,EAAA,MAgBP;EAGC,OAAA,EAAA,MAAU;EAMV,IAAA,EAAA,MAAK;EAAA,GAAA,EAAA,MAAA;
|
|
1
|
+
{"version":3,"file":"meta-data.d.ts","names":[],"sources":["../../src/lib/meta-data.ts"],"sourcesContent":[],"mappings":";;;;;;;KAMY,MAAA;;EAAA,YAAM,EAAA,MAgBP;EAGC,OAAA,EAAA,MAAU;EAMV,IAAA,EAAA,MAAK;EAAA,GAAA,EAAA,MAAA;EAAA,KAOH,CAAA,EAAA,MAAA;EAAU,SACX,CAAA,EAAA,MAAA;EAAU,OAAA,CAAA,EAAA,MAAA;EASX,IAAA,CAAA,EAAA,MAAS;EAAA,OAAA,CAAA,EAAA,MAAA;EAAA,YACX,CAAA,EAAA,MAAA;EAAO,WACE,CAAA,EAAA,MAAA;EAAK,WAAhB,CAAA,EAAA,MAAA;EAAU,MACT,CAAA,EA7BE,MA6BF,CAAA,MAAA,EAAA,MAAA,CAAA;CAAM;AAEP,KA5BI,UAAA,GA4BJ;EAAK,EAAA,EACA,MAAA;EAAa,IACV,EAAA,MAAA;EAAY,QACX,EAAA,MAAA;CAAa;AAEd,KA3BJ,KAAA,GA2BI;EAAe,KAAA,EAAA,MAAA;;;;;;cApBjB;aACD;;;;KASD,SAAA;UACF;QACF,WAAW;SACV;gBACO;QACR;aACK;gBACG;iBACC;kBACC;gBACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"open-graph.d.ts","names":[],"sources":["../../src/lib/open-graph.ts"],"mappings":";UAEiB,aAAA;EAAA,IAAA,EAAA,MAAA;EAAa,KAAA,CAAA,EAAA,MAAA;
|
|
1
|
+
{"version":3,"file":"open-graph.d.ts","names":[],"sources":["../../src/lib/open-graph.ts"],"sourcesContent":[],"mappings":";UAEiB,aAAA;EAAA,IAAA,EAAA,MAAA;EAAa,KAAA,CAAA,EAAA,MAAA;EAAA,KAGX,CAAA,EAAA,MAAA,GAAA,cAAA,GAAiB,cAAjB,EAAA;EAAc,GAAG,CAAA,EAAA,MAAA;EAAc,WAAA,CAAA,EAAA,MAAA;EAQjC,QAAA,CAAA,EAAA,MAAc;EASd,MAAA,CAAA,EAAA,MAAA;EAMA,eAAA,CAAA,EAAA,MAAiB,EAAA;AAIlC;AAUiB,UA7BA,cAAA,CA6BsB;EAQtB,GAAA,EAAA,MAAA;EAQA,SAAA,CAAA,EAAA,MAAe;EASf,IAAA,CAAA,EAAA,MAAA;EAAe,KAAA,CAAA,EAAA,MAAA;EAAA,MAAa,CAAA,EAAA,MAAA;EAAa,GAAlB,CAAA,EAAA,MAAA;AAAI;AAe3B,UA5DA,cAAA,CA4DiB;EAmBjB,GAAA,EAAA,MAAA;EAIA,SAAA,CAAA,EAAA,MAAe;EAWf,IAAA,CAAA,EAAA,MAAA;;AAAiC,UAxFjC,gBAAA,SAAyB,aAwFQ,CAAA;EAAc,IAAnB,EAAA,SAAA;AAAI;AAiBhC,UArGA,gBAAA,SAAyB,aAqGc,CAAA;EAoB5C,IAAA,EAAA,SAAA;EAAa,aAAA,CAAA,EAAA,MAAA;EAAA,YACrB,CAAA,EAAA,MAAA;EAAgB,cAChB,CAAA,EAAA,MAAA;EAAa,MACb,CAAA,EAAA,MAAA,GAAA,MAAA,EAAA;EAAiB,OACjB,CAAA,EAAA,MAAA;EAAc,GACd,CAAA,EAAA,MAAA,GAAA,MAAA,EAAA;;AAEA,UAtHa,aAAA,SAAsB,aAsHnC,CAAA;EAAqB,IACrB,EAAA,MAAA;EAAgB,MAChB,CAAA,EAAA,MAAA,GAAA,MAAA,EAAA;EAAmB,IACnB,CAAA,EAAA,MAAA;EAAc,WACd,CAAA,EAAA,MAAA;EAAgB,GAAA,CAAA,EAAA,MAAA,GAAA,MAAA,EAAA;;UAlHH,gBAAA,SAAyB;;;;;;;UAQzB,cAAA,SAAuB;;;;;;;;UASvB,cAAA,SAAuB,KAAK;;;;;;;;;;;;;;UAe5B,gBAAA,SAAyB;;;;;;;;;;;;;;;;;;UAmBzB,qBAAA,SAA8B;;;UAI9B,cAAA,SAAuB;;;;;;;;;;UAWvB,mBAAA,SAA4B,KAAK;;;;;;;;;;;;;;;;UAiBjC,iBAAA,SAA0B;;;;;;;;;;;;;;;;;;;KAoB/B,aAAA,GACR,mBACA,gBACA,oBACA,iBACA,iBACA,mBACA,wBACA,mBACA,sBACA,iBACA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pagination.d.ts","names":[],"sources":["../../src/lib/pagination.ts"],"mappings":";KAEY,eAAA;AAAA,KAEA,kBAAA,GAFe;EAEf,IAAA,CAAA,EAAA,YAAA,GAAkB,UAAA;EAOlB,IAAA,CAAA,EAAA,MAAA;EAAe,OAAA,CAAA,EAAA,MAAA;
|
|
1
|
+
{"version":3,"file":"pagination.d.ts","names":[],"sources":["../../src/lib/pagination.ts"],"sourcesContent":[],"mappings":";KAEY,eAAA;AAAA,KAEA,kBAAA,GAFe;EAEf,IAAA,CAAA,EAAA,YAAA,GAAkB,UAAA;EAOlB,IAAA,CAAA,EAAA,MAAA;EAAe,OAAA,CAAA,EAAA,MAAA;EAAA,SAAW,CAAA,EAAA,MAAA;CAAe;AAC5C,KADG,eACH,CAAA,UAD6B,eAC7B,GAD+C,eAC/C,CAAA,GAAA;EAAC,KAAA,EAAD,CAAC,EAAA;EAUM,OAAA,EAAA,OAAA;EAUA,QAAA,EAAA,MAAa,GAAA,SAAA;EAAA,IAAA,EAAA,MAAA;EAAA,KAAW,EAAA,MAAA;EAAe,OAAG,EAAA,MAAA;EAAe,QAChE,EAAA,MAAA,GAAA,SAAA;EAAC,KAGP,EAAA,MAAA;AAAC,CAAA;AAMY,iBApBA,gBAAA,CAoBY,IAAA,EAAA,OAAA,CAAA,EAAA,IAAA,IApB6B,eAoB7B;AAAA,iBAVZ,aAUY,CAAA,UAVY,eAUZ,GAV8B,eAU9B,CAAA,CAAA,KAAA,EATnB,CASmB,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,OAAA,EAAA,MAAA,CAAA,EANzB,CAMyB,EAAA;AAAW,iBAAvB,YAAuB,CAAA,UAAA,eAAA,GAAkB,eAAlB,CAAA,CAAA,KAAA,EAC9B,CAD8B,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,OAAA,EAAA,MAAA,CAAA,EAIpC,CAJoC,EAAA;AAAkB,iBAUzC,iBAVyC,CAAA,UAUb,eAVa,GAUK,eAVL,CAAA,CAAA,KAAA,EAWhD,CAXgD,EAAA,EAAA,OAAA,CAAA,EAY7C,kBAZ6C,CAAA,EAatD,eAbsD,CAatC,CAbsC,CAAA"}
|
package/dist/lib/pagination.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { isArray, isObject } from "@websolutespa/bom-core";
|
|
2
|
+
|
|
2
3
|
//#region src/lib/pagination.ts
|
|
3
4
|
function isPaginationInfo(item) {
|
|
4
5
|
return isObject(item) && typeof item.page === "number" && typeof item.pages === "number" && typeof item.perPage === "number" && typeof item.total === "number" && isArray(item.items);
|
|
@@ -22,8 +23,9 @@ function getPaginationInfo(items, options) {
|
|
|
22
23
|
const hasMore = page < pages;
|
|
23
24
|
const prevPage = page > 1 ? page - 1 : void 0;
|
|
24
25
|
const nextPage = page < pages ? page + 1 : void 0;
|
|
26
|
+
const pagedItems = mode === "pagination" ? getPagedItems(items, page, perPage) : getMoreItems(items, page, perPage);
|
|
25
27
|
return {
|
|
26
|
-
items:
|
|
28
|
+
items: pagedItems,
|
|
27
29
|
hasMore,
|
|
28
30
|
nextPage,
|
|
29
31
|
page,
|
|
@@ -33,7 +35,7 @@ function getPaginationInfo(items, options) {
|
|
|
33
35
|
total
|
|
34
36
|
};
|
|
35
37
|
}
|
|
38
|
+
|
|
36
39
|
//#endregion
|
|
37
40
|
export { getMoreItems, getPagedItems, getPaginationInfo, isPaginationInfo };
|
|
38
|
-
|
|
39
41
|
//# sourceMappingURL=pagination.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pagination.js","names":[],"sources":["../../src/lib/pagination.ts"],"sourcesContent":["import { isArray, isObject } from '@websolutespa/bom-core';\r\n\r\nexport type IPaginationItem = any;\r\n\r\nexport type IPaginationOptions = {\r\n mode?: 'pagination' | 'infinite'; // default to pagination\r\n page?: number;\r\n perPage?: number;\r\n delayInMs?: number;\r\n};\r\n\r\nexport type IPaginationInfo<T extends IPaginationItem = IPaginationItem> = {\r\n items: T[];\r\n hasMore: boolean;\r\n nextPage: number | undefined;\r\n page: number;\r\n pages: number;\r\n perPage: number;\r\n prevPage: number | undefined;\r\n total: number;\r\n};\r\n\r\nexport function isPaginationInfo(item: unknown): item is IPaginationInfo {\r\n return isObject(item) && (\r\n typeof item.page === 'number' &&\r\n typeof item.pages === 'number' &&\r\n typeof item.perPage === 'number' &&\r\n typeof item.total === 'number' &&\r\n isArray(item.items)\r\n );\r\n}\r\n\r\nexport function getPagedItems<T extends IPaginationItem = IPaginationItem>(\r\n items: T[],\r\n page: number,\r\n perPage: number\r\n): T[] {\r\n const from = (page - 1) * perPage;\r\n const to = Math.min(page * perPage, items.length);\r\n return items.slice(from, to);\r\n}\r\n\r\nexport function getMoreItems<T extends IPaginationItem = IPaginationItem>(\r\n items: T[],\r\n page: number,\r\n perPage: number\r\n): T[] {\r\n const total = items.length;\r\n const position = Math.min(total, perPage * page);\r\n return items.slice(0, position);\r\n}\r\n\r\nexport function getPaginationInfo<T extends IPaginationItem = IPaginationItem>(\r\n items: T[],\r\n options?: IPaginationOptions\r\n): IPaginationInfo<T> {\r\n const mode = options?.mode || 'pagination';\r\n const page = options?.page || 1;\r\n const perPage = options?.perPage || 12;\r\n const total = items.length;\r\n const pages = Math.ceil(total / perPage);\r\n const hasMore = page < pages;\r\n const prevPage = page > 1 ? page - 1 : undefined;\r\n const nextPage = page < pages ? page + 1 : undefined;\r\n const pagedItems = mode === 'pagination' ?\r\n getPagedItems(items, page, perPage) :\r\n getMoreItems(items, page, perPage);\r\n return {\r\n items: pagedItems,\r\n hasMore,\r\n nextPage,\r\n page,\r\n pages,\r\n perPage,\r\n prevPage,\r\n total,\r\n };\r\n}\r\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"pagination.js","names":["item: unknown","items: T[]","page: number","perPage: number","options?: IPaginationOptions"],"sources":["../../src/lib/pagination.ts"],"sourcesContent":["import { isArray, isObject } from '@websolutespa/bom-core';\r\n\r\nexport type IPaginationItem = any;\r\n\r\nexport type IPaginationOptions = {\r\n mode?: 'pagination' | 'infinite'; // default to pagination\r\n page?: number;\r\n perPage?: number;\r\n delayInMs?: number;\r\n};\r\n\r\nexport type IPaginationInfo<T extends IPaginationItem = IPaginationItem> = {\r\n items: T[];\r\n hasMore: boolean;\r\n nextPage: number | undefined;\r\n page: number;\r\n pages: number;\r\n perPage: number;\r\n prevPage: number | undefined;\r\n total: number;\r\n};\r\n\r\nexport function isPaginationInfo(item: unknown): item is IPaginationInfo {\r\n return isObject(item) && (\r\n typeof item.page === 'number' &&\r\n typeof item.pages === 'number' &&\r\n typeof item.perPage === 'number' &&\r\n typeof item.total === 'number' &&\r\n isArray(item.items)\r\n );\r\n}\r\n\r\nexport function getPagedItems<T extends IPaginationItem = IPaginationItem>(\r\n items: T[],\r\n page: number,\r\n perPage: number\r\n): T[] {\r\n const from = (page - 1) * perPage;\r\n const to = Math.min(page * perPage, items.length);\r\n return items.slice(from, to);\r\n}\r\n\r\nexport function getMoreItems<T extends IPaginationItem = IPaginationItem>(\r\n items: T[],\r\n page: number,\r\n perPage: number\r\n): T[] {\r\n const total = items.length;\r\n const position = Math.min(total, perPage * page);\r\n return items.slice(0, position);\r\n}\r\n\r\nexport function getPaginationInfo<T extends IPaginationItem = IPaginationItem>(\r\n items: T[],\r\n options?: IPaginationOptions\r\n): IPaginationInfo<T> {\r\n const mode = options?.mode || 'pagination';\r\n const page = options?.page || 1;\r\n const perPage = options?.perPage || 12;\r\n const total = items.length;\r\n const pages = Math.ceil(total / perPage);\r\n const hasMore = page < pages;\r\n const prevPage = page > 1 ? page - 1 : undefined;\r\n const nextPage = page < pages ? page + 1 : undefined;\r\n const pagedItems = mode === 'pagination' ?\r\n getPagedItems(items, page, perPage) :\r\n getMoreItems(items, page, perPage);\r\n return {\r\n items: pagedItems,\r\n hasMore,\r\n nextPage,\r\n page,\r\n pages,\r\n perPage,\r\n prevPage,\r\n total,\r\n };\r\n}\r\n"],"mappings":";;;AAsBA,SAAgB,iBAAiBA,MAAwC;AACvE,QAAO,SAAS,KAAK,IACnB,OAAO,KAAK,SAAS,YACrB,OAAO,KAAK,UAAU,YACtB,OAAO,KAAK,YAAY,YACxB,OAAO,KAAK,UAAU,YACtB,QAAQ,KAAK,MAAM;AAEtB;AAED,SAAgB,cACdC,OACAC,MACAC,SACK;CACL,MAAM,QAAQ,OAAO,KAAK;CAC1B,MAAM,KAAK,KAAK,IAAI,OAAO,SAAS,MAAM,OAAO;AACjD,QAAO,MAAM,MAAM,MAAM,GAAG;AAC7B;AAED,SAAgB,aACdF,OACAC,MACAC,SACK;CACL,MAAM,QAAQ,MAAM;CACpB,MAAM,WAAW,KAAK,IAAI,OAAO,UAAU,KAAK;AAChD,QAAO,MAAM,MAAM,GAAG,SAAS;AAChC;AAED,SAAgB,kBACdF,OACAG,SACoB;CACpB,MAAM,OAAO,SAAS,QAAQ;CAC9B,MAAM,OAAO,SAAS,QAAQ;CAC9B,MAAM,UAAU,SAAS,WAAW;CACpC,MAAM,QAAQ,MAAM;CACpB,MAAM,QAAQ,KAAK,KAAK,QAAQ,QAAQ;CACxC,MAAM,UAAU,OAAO;CACvB,MAAM,WAAW,OAAO,IAAI,OAAO,IAAI;CACvC,MAAM,WAAW,OAAO,QAAQ,OAAO,IAAI;CAC3C,MAAM,aAAa,SAAS,eAC1B,cAAc,OAAO,MAAM,QAAQ,GACnC,aAAa,OAAO,MAAM,QAAQ;AACpC,QAAO;EACL,OAAO;EACP;EACA;EACA;EACA;EACA;EACA;EACA;CACD;AACF"}
|
package/dist/lib/route.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"route.d.ts","names":[],"sources":["../../src/lib/route.ts"],"mappings":";;;iBAEgB,oBAAA,yBAEN,sBACI,2BACE,qBACJ,YACT,aAAa;iBA0BA,YAAA,WAAuB,kBAAkB,qCAAqC;AAhC9E,iBAkDA,YAAA,CAlDoB,KAAA,EAkDA,MAlDA,CAAA,EAAA,MAAA;AAAA,iBAsDpB,gBAAA,CAtDoB,KAAA,EAsDI,MAtDJ,CAAA,EAsDa,UAtDb
|
|
1
|
+
{"version":3,"file":"route.d.ts","names":[],"sources":["../../src/lib/route.ts"],"sourcesContent":[],"mappings":";;;iBAEgB,oBAAA,yBAEN,sBACI,2BACE,qBACJ,YACT,aAAa;iBA0BA,YAAA,WAAuB,kBAAkB,qCAAqC;AAhC9E,iBAkDA,YAAA,CAlDoB,KAAA,EAkDA,MAlDA,CAAA,EAAA,MAAA;AAAA,iBAsDpB,gBAAA,CAtDoB,KAAA,EAsDI,MAtDJ,CAAA,EAsDa,UAtDb;;;;;AAMjC,iBAiEa,WAAA,CAjEb,KAAA,EAiEgC,MAjEhC,EAAA,KAAA,CAAA,EAAA,MAAA,CAAA,EAiEyD,UAjEzD"}
|
package/dist/lib/route.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { asCategoryId, findRouteOfCategory, localize } from "@websolutespa/bom-core";
|
|
2
|
+
|
|
2
3
|
//#region src/lib/route.ts
|
|
3
4
|
function getRouteLinkCategory(locale, routes, categories, rootCategory, category) {
|
|
4
5
|
const route = findRouteOfCategory(routes, category.id);
|
|
@@ -21,7 +22,7 @@ function newRouteLink(category, route, locale) {
|
|
|
21
22
|
const media = category.media || route?.media;
|
|
22
23
|
const schema = route?.template || route?.schema || category?.schema || "unknown";
|
|
23
24
|
const title = localize(category.title || route?.title || "untitled", locale);
|
|
24
|
-
|
|
25
|
+
const routeLink = {
|
|
25
26
|
category: category.id,
|
|
26
27
|
href,
|
|
27
28
|
id,
|
|
@@ -30,12 +31,13 @@ function newRouteLink(category, route, locale) {
|
|
|
30
31
|
schema,
|
|
31
32
|
title
|
|
32
33
|
};
|
|
34
|
+
return routeLink;
|
|
33
35
|
}
|
|
34
36
|
function resolveRoute(route) {
|
|
35
37
|
return `/${route.market}/${route.locale}/${route.schema}/${route.page}`;
|
|
36
38
|
}
|
|
37
39
|
function routeToRouteLink(route) {
|
|
38
|
-
|
|
40
|
+
const routeLink = {
|
|
39
41
|
category: asCategoryId(route.category),
|
|
40
42
|
href: route.id,
|
|
41
43
|
id: route.page,
|
|
@@ -44,10 +46,14 @@ function routeToRouteLink(route) {
|
|
|
44
46
|
schema: route.schema,
|
|
45
47
|
title: route.title
|
|
46
48
|
};
|
|
49
|
+
return routeLink;
|
|
47
50
|
}
|
|
48
51
|
/**
|
|
52
|
+
|
|
49
53
|
* Converts a route (and optional override title) into an IRouteLink.
|
|
54
|
+
|
|
50
55
|
* route.id is the pathname (href), route.page is the document ID.
|
|
56
|
+
|
|
51
57
|
*/
|
|
52
58
|
function routeToLink(route, title) {
|
|
53
59
|
return {
|
|
@@ -59,7 +65,7 @@ function routeToLink(route, title) {
|
|
|
59
65
|
media: route.media
|
|
60
66
|
};
|
|
61
67
|
}
|
|
68
|
+
|
|
62
69
|
//#endregion
|
|
63
70
|
export { getRouteLinkCategory, newRouteLink, resolveRoute, routeToLink, routeToRouteLink };
|
|
64
|
-
|
|
65
71
|
//# sourceMappingURL=route.js.map
|