cloudcommerce 0.10.0 → 0.12.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/.github/renovate.json +1 -2
- package/CHANGELOG.md +42 -0
- package/action.yml +1 -1
- package/ecomplus-stores/monocard/functions/core/package.json +2 -2
- package/ecomplus-stores/monocard/functions/events/package.json +3 -3
- package/ecomplus-stores/monocard/functions/modules/package.json +3 -3
- package/ecomplus-stores/monocard/functions/passport/package.json +3 -3
- package/ecomplus-stores/monocard/functions/ssr/index.js +2 -2
- package/ecomplus-stores/monocard/functions/ssr/package.json +7 -7
- package/ecomplus-stores/monocard/functions/ssr/src/env.d.ts +1 -0
- package/ecomplus-stores/monocard/functions/ssr/src/main/Home.astro +1 -1
- package/ecomplus-stores/monocard/functions/ssr/src/scripts/InlineScripts.astro +1 -1
- package/ecomplus-stores/monocard/package.json +2 -2
- package/ecomplus-stores/tia-sonia/functions/ssr/index.js +2 -2
- package/ecomplus-stores/tia-sonia/functions/ssr/src/env.d.ts +3 -1
- package/ecomplus-stores/tia-sonia/functions/ssr/src/scripts/head-scripts.ts +2 -4
- package/ecomplus-stores/tia-sonia/functions/ssr/src/scripts/modules-info-preset.ts +1 -1
- package/package.json +15 -15
- package/packages/api/lib/types/orders.d.ts +15 -0
- package/packages/api/package.json +2 -3
- package/packages/api/src/types/orders.d.ts +15 -0
- package/packages/apps/correios/package.json +2 -2
- package/packages/apps/custom-payment/package.json +1 -1
- package/packages/apps/custom-shipping/package.json +1 -1
- package/packages/apps/datafrete/package.json +4 -4
- package/packages/apps/discounts/lib-mjs/apply-discount.mjs +4 -2
- package/packages/apps/discounts/package.json +1 -1
- package/packages/apps/emails/lib/functios-lib/utils.js +8 -8
- package/packages/apps/emails/lib/functios-lib/utils.js.map +1 -1
- package/packages/apps/emails/package.json +2 -2
- package/packages/apps/emails/src/functios-lib/utils.ts +8 -8
- package/packages/apps/fb-conversions/package.json +3 -3
- package/packages/apps/frenet/package.json +4 -4
- package/packages/apps/galaxpay/package.json +4 -4
- package/packages/apps/google-analytics/package.json +4 -4
- package/packages/apps/infinitepay/package.json +4 -4
- package/packages/apps/jadlog/package.json +2 -2
- package/packages/apps/loyalty-points/package.json +1 -1
- package/packages/apps/melhor-envio/package.json +4 -4
- package/packages/apps/mercadopago/package.json +4 -4
- package/packages/apps/pagarme/package.json +6 -6
- package/packages/apps/paghiper/package.json +4 -4
- package/packages/apps/pix/package.json +4 -4
- package/packages/apps/tiny-erp/package.json +4 -4
- package/packages/apps/webhooks/package.json +4 -4
- package/packages/cli/config/firebase.json +6 -16
- package/packages/cli/package.json +2 -2
- package/packages/config/lib/config.d.ts +2 -2
- package/packages/config/lib/config.js +6 -6
- package/packages/config/lib/config.js.map +1 -1
- package/packages/config/package.json +1 -1
- package/packages/config/src/config.ts +8 -8
- package/packages/emails/lib/index.js +3 -3
- package/packages/emails/lib/index.js.map +1 -1
- package/packages/emails/package.json +4 -4
- package/packages/emails/src/index.ts +3 -3
- package/packages/events/package.json +3 -3
- package/packages/feeds/CHANGELOG.md +1 -0
- package/packages/feeds/README.md +1 -0
- package/packages/feeds/firebase.js +1 -0
- package/packages/{ssr → feeds}/lib/firebase/serve-feeds.js +3 -2
- package/packages/{ssr → feeds}/lib/firebase/serve-feeds.js.map +1 -1
- package/packages/feeds/lib/firebase.js +17 -0
- package/packages/feeds/lib/firebase.js.map +1 -0
- package/packages/feeds/lib/index.js +1 -0
- package/packages/feeds/lib/index.js.map +1 -0
- package/packages/feeds/package.json +33 -0
- package/packages/{ssr → feeds}/src/firebase/serve-feeds.ts +3 -2
- package/packages/feeds/src/firebase.ts +17 -0
- package/packages/feeds/src/index.ts +0 -0
- package/packages/feeds/tsconfig.json +3 -0
- package/packages/firebase/lib/config.d.ts +3 -3
- package/packages/firebase/lib/config.js +6 -6
- package/packages/firebase/lib/config.js.map +1 -1
- package/packages/firebase/lib/handlers/check-store-events.d.ts +4 -0
- package/packages/firebase/lib/handlers/check-store-events.js +4 -7
- package/packages/firebase/lib/handlers/check-store-events.js.map +1 -1
- package/packages/firebase/package.json +4 -4
- package/packages/firebase/src/config.ts +7 -7
- package/packages/firebase/src/handlers/check-store-events.ts +20 -8
- package/packages/i18n/package.json +1 -1
- package/packages/modules/lib/firebase/call-app-module.js +6 -6
- package/packages/modules/lib/firebase/call-app-module.js.map +1 -1
- package/packages/modules/package.json +5 -5
- package/packages/modules/src/firebase/call-app-module.ts +17 -7
- package/packages/passport/package.json +3 -3
- package/packages/ssr/lib/firebase/serve-storefront.js +5 -6
- package/packages/ssr/lib/firebase/serve-storefront.js.map +1 -1
- package/packages/ssr/lib/firebase.js +6 -16
- package/packages/ssr/lib/firebase.js.map +1 -1
- package/packages/ssr/package.json +8 -8
- package/packages/ssr/src/firebase/serve-storefront.ts +14 -9
- package/packages/ssr/src/firebase.ts +6 -16
- package/packages/ssr/src/tests/benchmark.sh +50 -0
- package/packages/storefront/.base.eslintrc.cjs +9 -1
- package/packages/storefront/astro.config.mjs +1 -0
- package/packages/storefront/client.d.ts +4 -4
- package/packages/storefront/config/storefront.cms.cjs +7 -7
- package/packages/storefront/config/storefront.cms.mjs +7 -7
- package/packages/storefront/dist/client/_astro/Carousel.e137cab2.js +1 -0
- package/packages/storefront/dist/client/_astro/HeroSlider.d677b64a.js +1 -0
- package/packages/storefront/dist/client/_astro/PitchBar.94f525f9.js +1 -0
- package/packages/storefront/dist/client/_astro/Prices.b8d4b8e4.js +1 -0
- package/packages/storefront/dist/client/_astro/ShopHeader.f12e72f6.js +4 -0
- package/packages/storefront/dist/client/_astro/_plugin-vue_export-helper.116fec5b.js +1 -0
- package/packages/storefront/dist/client/_astro/client.c2102734.js +1 -0
- package/packages/storefront/dist/client/_astro/{firebase-app.2840bd36.js → firebase-app.d513d4b8.js} +63 -63
- package/packages/storefront/dist/client/_astro/{format-money.d54c1237.js → format-money.1a95a3b5.js} +1 -1
- package/packages/storefront/dist/client/_astro/{hoisted.56fa2eff.js → hoisted.be7b77c7.js} +1 -1
- package/packages/storefront/dist/client/_astro/index.1190ddf5.js +1 -0
- package/packages/storefront/dist/client/_astro/{modules-info.ea748f9d.js → modules-info.bc2146d9.js} +1 -1
- package/packages/storefront/dist/client/_astro/runtime-dom.esm-bundler.e2053595.js +1 -0
- package/packages/storefront/dist/client/_astro/session-utm.744b0db3.js +1 -0
- package/packages/storefront/dist/client/admin/.gitkeep +2 -0
- package/packages/storefront/dist/client/sw.js +1 -1
- package/packages/storefront/dist/server/chunks/{astro.39f7f387.mjs → astro.7ac24846.mjs} +323 -88
- package/packages/storefront/dist/server/chunks/pages/{all.e51db7f0.mjs → all.a42f9fc6.mjs} +125 -128
- package/packages/storefront/dist/server/entry.mjs +39 -27
- package/packages/storefront/package.json +14 -20
- package/packages/storefront/scripts/prepare-monorepo.sh +0 -1
- package/packages/storefront/server.d.ts +12 -8
- package/packages/storefront/src/lib/components/AccountLink.vue +2 -2
- package/packages/storefront/src/lib/components/globals/ALink.vue +1 -1
- package/packages/storefront/src/lib/composables/use-pitch-bar.ts +6 -9
- package/packages/storefront/src/lib/content.d.ts +25 -0
- package/packages/storefront/src/lib/layouts/Base.astro +5 -5
- package/packages/storefront/src/lib/layouts/BaseHead.astro +10 -10
- package/packages/storefront/src/lib/layouts/BaseStateJson.astro +4 -4
- package/packages/storefront/src/lib/layouts/sections/use-hero-section.ts +5 -5
- package/packages/storefront/src/lib/layouts/use-page-layout.ts +12 -12
- package/packages/storefront/src/lib/pages/_vue.ts +2 -2
- package/packages/storefront/src/lib/scripts/firebase-app.ts +1 -1
- package/packages/storefront/src/lib/scripts/modules-info-preset.ts +5 -5
- package/packages/storefront/src/lib/server-data.ts +1 -1
- package/packages/storefront/src/lib/ssr-context.ts +20 -23
- package/packages/storefront/src/lib/state/customer-session.ts +1 -1
- package/packages/storefront/src/lib/state/use-cms-preview.ts +15 -78
- package/packages/storefront/src/vue-globals.d.ts +2 -2
- package/packages/storefront/storefront.config.mjs +3 -3
- package/packages/storefront/tailwind.config.cjs +5 -5
- package/packages/types/index.ts +2 -2
- package/packages/types/package.json +1 -1
- package/pnpm-workspace.yaml +2 -4
- package/packages/api/fetch-polyfill.js +0 -21
- package/packages/storefront/dist/client/_astro/Carousel.06e8cee5.js +0 -1
- package/packages/storefront/dist/client/_astro/HeroSlider.2c4563ee.js +0 -1
- package/packages/storefront/dist/client/_astro/PitchBar.8945ceb4.js +0 -1
- package/packages/storefront/dist/client/_astro/Prices.bc136725.js +0 -1
- package/packages/storefront/dist/client/_astro/ShopHeader.5d83d6d5.js +0 -4
- package/packages/storefront/dist/client/_astro/_commonjsHelpers.725317a4.js +0 -1
- package/packages/storefront/dist/client/_astro/_plugin-vue_export-helper.d71c044e.js +0 -1
- package/packages/storefront/dist/client/_astro/client.97e9e785.js +0 -1
- package/packages/storefront/dist/client/_astro/client.f447e2e8.js +0 -128
- package/packages/storefront/dist/client/_astro/index.2899cbe4.js +0 -9
- package/packages/storefront/dist/client/_astro/index.b12dff85.js +0 -1
- package/packages/storefront/dist/client/_astro/index.es.28e34903.js +0 -1
- package/packages/storefront/dist/client/_astro/runtime-dom.esm-bundler.e9908a78.js +0 -1
- package/packages/storefront/dist/client/_astro/server.browser.e1b1e312.js +0 -27
- package/packages/storefront/dist/client/_astro/session-utm.ac492493.js +0 -1
- package/packages/storefront/dist/client/admin/assets/Range.es-3e45690c.js +0 -1
- package/packages/storefront/dist/client/admin/assets/SchemaReference.es-68e2a833.js +0 -1
- package/packages/storefront/dist/client/admin/assets/brace-fold.es-f96db61f.js +0 -1
- package/packages/storefront/dist/client/admin/assets/closebrackets.es-0488b839.js +0 -2
- package/packages/storefront/dist/client/admin/assets/codemirror.es-15b9374a.js +0 -24
- package/packages/storefront/dist/client/admin/assets/comment.es-d4bed417.js +0 -2
- package/packages/storefront/dist/client/admin/assets/dialog.es-56aaee5b.js +0 -1
- package/packages/storefront/dist/client/admin/assets/foldgutter.es-55067bee.js +0 -1
- package/packages/storefront/dist/client/admin/assets/forEachState.es-1e367fb2.js +0 -1
- package/packages/storefront/dist/client/admin/assets/hint.es-07ec11aa.js +0 -1
- package/packages/storefront/dist/client/admin/assets/hint.es2-35fd7219.js +0 -1
- package/packages/storefront/dist/client/admin/assets/index-64cd926d.css +0 -1
- package/packages/storefront/dist/client/admin/assets/index-d5c6a1a9.js +0 -6332
- package/packages/storefront/dist/client/admin/assets/index-f1d880da.js +0 -216
- package/packages/storefront/dist/client/admin/assets/info-addon.es-eded2c26.js +0 -1
- package/packages/storefront/dist/client/admin/assets/info.es-93649208.js +0 -1
- package/packages/storefront/dist/client/admin/assets/javascript.es-634a06b1.js +0 -1
- package/packages/storefront/dist/client/admin/assets/jump-to-line.es-23d2d4a8.js +0 -1
- package/packages/storefront/dist/client/admin/assets/jump.es-732b233e.js +0 -1
- package/packages/storefront/dist/client/admin/assets/lint.es-240359bd.js +0 -6
- package/packages/storefront/dist/client/admin/assets/lint.es2-df11292b.js +0 -1
- package/packages/storefront/dist/client/admin/assets/lint.es3-aa543b52.js +0 -1
- package/packages/storefront/dist/client/admin/assets/matchbrackets.es-f5e3ac04.js +0 -1
- package/packages/storefront/dist/client/admin/assets/mode-indent.es-341daf63.js +0 -1
- package/packages/storefront/dist/client/admin/assets/mode.es-c74239d3.js +0 -1
- package/packages/storefront/dist/client/admin/assets/mode.es2-9319d2a9.js +0 -1
- package/packages/storefront/dist/client/admin/assets/mode.es3-deb92d78.js +0 -1
- package/packages/storefront/dist/client/admin/assets/search.es-143ba137.js +0 -2
- package/packages/storefront/dist/client/admin/assets/searchcursor.es-6069a13e.js +0 -7
- package/packages/storefront/dist/client/admin/assets/show-hint.es-ff4fde1d.js +0 -1
- package/packages/storefront/dist/client/admin/assets/sublime.es-23f726a0.js +0 -6
- package/packages/storefront/dist/client/admin/index.html +0 -15
- package/packages/storefront/src/lib/cms.d.ts +0 -21
- package/packages/storefront/src/lib/components/Post.vue +0 -107
|
@@ -633,6 +633,90 @@ Expected \`true\` value but got \`${suffix}\`.`;
|
|
|
633
633
|
code: 3030,
|
|
634
634
|
message: "The response has already been sent to the browser and cannot be altered."
|
|
635
635
|
},
|
|
636
|
+
/**
|
|
637
|
+
* @docs
|
|
638
|
+
* @description
|
|
639
|
+
* Thrown when the middleware does not return any data or call the `next` function.
|
|
640
|
+
*
|
|
641
|
+
* For example:
|
|
642
|
+
* ```ts
|
|
643
|
+
* import {defineMiddleware} from "astro/middleware";
|
|
644
|
+
* export const onRequest = defineMiddleware((context, _) => {
|
|
645
|
+
* // doesn't return anything or call `next`
|
|
646
|
+
* context.locals.someData = false;
|
|
647
|
+
* });
|
|
648
|
+
* ```
|
|
649
|
+
*/
|
|
650
|
+
MiddlewareNoDataOrNextCalled: {
|
|
651
|
+
title: "The middleware didn't return a response or call `next`",
|
|
652
|
+
code: 3031,
|
|
653
|
+
message: "The middleware needs to either return a `Response` object or call the `next` function."
|
|
654
|
+
},
|
|
655
|
+
/**
|
|
656
|
+
* @docs
|
|
657
|
+
* @description
|
|
658
|
+
* Thrown in development mode when middleware returns something that is not a `Response` object.
|
|
659
|
+
*
|
|
660
|
+
* For example:
|
|
661
|
+
* ```ts
|
|
662
|
+
* import {defineMiddleware} from "astro/middleware";
|
|
663
|
+
* export const onRequest = defineMiddleware(() => {
|
|
664
|
+
* return "string"
|
|
665
|
+
* });
|
|
666
|
+
* ```
|
|
667
|
+
*/
|
|
668
|
+
MiddlewareNotAResponse: {
|
|
669
|
+
title: "The middleware returned something that is not a `Response` object",
|
|
670
|
+
code: 3032,
|
|
671
|
+
message: "Any data returned from middleware must be a valid `Response` object."
|
|
672
|
+
},
|
|
673
|
+
/**
|
|
674
|
+
* @docs
|
|
675
|
+
* @description
|
|
676
|
+
*
|
|
677
|
+
* Thrown in development mode when `locals` is overwritten with something that is not an object
|
|
678
|
+
*
|
|
679
|
+
* For example:
|
|
680
|
+
* ```ts
|
|
681
|
+
* import {defineMiddleware} from "astro/middleware";
|
|
682
|
+
* export const onRequest = defineMiddleware((context, next) => {
|
|
683
|
+
* context.locals = 1541;
|
|
684
|
+
* return next();
|
|
685
|
+
* });
|
|
686
|
+
* ```
|
|
687
|
+
*/
|
|
688
|
+
LocalsNotAnObject: {
|
|
689
|
+
title: "Value assigned to `locals` is not accepted",
|
|
690
|
+
code: 3033,
|
|
691
|
+
message: "`locals` can only be assigned to an object. Other values like numbers, strings, etc. are not accepted.",
|
|
692
|
+
hint: "If you tried to remove some information from the `locals` object, try to use `delete` or set the property to `undefined`."
|
|
693
|
+
},
|
|
694
|
+
/**
|
|
695
|
+
* @docs
|
|
696
|
+
* @description
|
|
697
|
+
* Thrown in development mode when a user attempts to store something that is not serializable in `locals`.
|
|
698
|
+
*
|
|
699
|
+
* For example:
|
|
700
|
+
* ```ts
|
|
701
|
+
* import {defineMiddleware} from "astro/middleware";
|
|
702
|
+
* export const onRequest = defineMiddleware((context, next) => {
|
|
703
|
+
* context.locals = {
|
|
704
|
+
* foo() {
|
|
705
|
+
* alert("Hello world!")
|
|
706
|
+
* }
|
|
707
|
+
* };
|
|
708
|
+
* return next();
|
|
709
|
+
* });
|
|
710
|
+
* ```
|
|
711
|
+
*/
|
|
712
|
+
LocalsNotSerializable: {
|
|
713
|
+
title: "`Astro.locals` is not serializable",
|
|
714
|
+
code: 3034,
|
|
715
|
+
message: (href) => {
|
|
716
|
+
return `The information stored in \`Astro.locals\` for the path "${href}" is not serializable.
|
|
717
|
+
Make sure you store only serializable data.`;
|
|
718
|
+
}
|
|
719
|
+
},
|
|
636
720
|
// No headings here, that way Vite errors are merged with Astro ones in the docs, which makes more sense to users.
|
|
637
721
|
// Vite Errors - 4xxx
|
|
638
722
|
/**
|
|
@@ -1226,7 +1310,7 @@ function createComponent(arg1, moduleId) {
|
|
|
1226
1310
|
}
|
|
1227
1311
|
}
|
|
1228
1312
|
|
|
1229
|
-
const ASTRO_VERSION = "2.
|
|
1313
|
+
const ASTRO_VERSION = "2.4.5";
|
|
1230
1314
|
|
|
1231
1315
|
function createAstroGlobFn() {
|
|
1232
1316
|
const globHandler = (importMetaGlobResult, globValue) => {
|
|
@@ -1260,7 +1344,7 @@ function getHandlerFromModule(mod, method) {
|
|
|
1260
1344
|
}
|
|
1261
1345
|
async function renderEndpoint(mod, context, ssr) {
|
|
1262
1346
|
var _a;
|
|
1263
|
-
const { request, params } = context;
|
|
1347
|
+
const { request, params, locals } = context;
|
|
1264
1348
|
const chosenMethod = (_a = request.method) == null ? void 0 : _a.toLowerCase();
|
|
1265
1349
|
const handler = getHandlerFromModule(mod, chosenMethod);
|
|
1266
1350
|
if (!ssr && ssr === false && chosenMethod && chosenMethod !== "get") {
|
|
@@ -1639,7 +1723,9 @@ const uniqueElements = (item, index, all) => {
|
|
|
1639
1723
|
};
|
|
1640
1724
|
function renderAllHeadContent(result) {
|
|
1641
1725
|
result._metadata.hasRenderedHead = true;
|
|
1642
|
-
const styles = Array.from(result.styles).filter(uniqueElements).map(
|
|
1726
|
+
const styles = Array.from(result.styles).filter(uniqueElements).map(
|
|
1727
|
+
(style) => style.props.rel === "stylesheet" ? renderElement$1("link", style) : renderElement$1("style", style)
|
|
1728
|
+
);
|
|
1643
1729
|
result.styles.clear();
|
|
1644
1730
|
const scripts = Array.from(result.scripts).filter(uniqueElements).map((script, i) => {
|
|
1645
1731
|
return renderElement$1("script", script, false);
|
|
@@ -2656,7 +2742,7 @@ If you're still stuck, please open an issue on GitHub or join us at https://astr
|
|
|
2656
2742
|
if (isPage || (renderer == null ? void 0 : renderer.name) === "astro:jsx") {
|
|
2657
2743
|
yield html;
|
|
2658
2744
|
} else if (html && html.length > 0) {
|
|
2659
|
-
yield markHTMLString(html.replace(/\<\/?astro-slot
|
|
2745
|
+
yield markHTMLString(html.replace(/\<\/?astro-slot\b[^>]*>/g, ""));
|
|
2660
2746
|
} else {
|
|
2661
2747
|
yield "";
|
|
2662
2748
|
}
|
|
@@ -3009,6 +3095,41 @@ if (typeof process !== "undefined") {
|
|
|
3009
3095
|
}
|
|
3010
3096
|
}
|
|
3011
3097
|
|
|
3098
|
+
async function callMiddleware(onRequest, apiContext, responseFunction) {
|
|
3099
|
+
new Promise((resolve) => {
|
|
3100
|
+
});
|
|
3101
|
+
let nextCalled = false;
|
|
3102
|
+
let responseFunctionPromise = void 0;
|
|
3103
|
+
const next = async () => {
|
|
3104
|
+
nextCalled = true;
|
|
3105
|
+
responseFunctionPromise = responseFunction();
|
|
3106
|
+
return responseFunctionPromise;
|
|
3107
|
+
};
|
|
3108
|
+
let middlewarePromise = onRequest(apiContext, next);
|
|
3109
|
+
return await Promise.resolve(middlewarePromise).then(async (value) => {
|
|
3110
|
+
if (nextCalled) {
|
|
3111
|
+
if (typeof value !== "undefined") {
|
|
3112
|
+
if (value instanceof Response === false) {
|
|
3113
|
+
throw new AstroError(AstroErrorData.MiddlewareNotAResponse);
|
|
3114
|
+
}
|
|
3115
|
+
return value;
|
|
3116
|
+
} else {
|
|
3117
|
+
if (responseFunctionPromise) {
|
|
3118
|
+
return responseFunctionPromise;
|
|
3119
|
+
} else {
|
|
3120
|
+
throw new AstroError(AstroErrorData.MiddlewareNotAResponse);
|
|
3121
|
+
}
|
|
3122
|
+
}
|
|
3123
|
+
} else if (typeof value === "undefined") {
|
|
3124
|
+
throw new AstroError(AstroErrorData.MiddlewareNoDataOrNextCalled);
|
|
3125
|
+
} else if (value instanceof Response === false) {
|
|
3126
|
+
throw new AstroError(AstroErrorData.MiddlewareNotAResponse);
|
|
3127
|
+
} else {
|
|
3128
|
+
return value;
|
|
3129
|
+
}
|
|
3130
|
+
});
|
|
3131
|
+
}
|
|
3132
|
+
|
|
3012
3133
|
const VALID_PARAM_TYPES = ["string", "number", "undefined"];
|
|
3013
3134
|
function validateGetStaticPathsParameter([key, value], route) {
|
|
3014
3135
|
if (!VALID_PARAM_TYPES.includes(typeof value)) {
|
|
@@ -3190,7 +3311,7 @@ class Slots {
|
|
|
3190
3311
|
}
|
|
3191
3312
|
let renderMarkdown = null;
|
|
3192
3313
|
function createResult(args) {
|
|
3193
|
-
const { markdown, params, pathname, renderers, request, resolve } = args;
|
|
3314
|
+
const { markdown, params, pathname, renderers, request, resolve, locals } = args;
|
|
3194
3315
|
const url = new URL(request.url);
|
|
3195
3316
|
const headers = new Headers();
|
|
3196
3317
|
headers.set("Content-Type", "text/html");
|
|
@@ -3244,6 +3365,7 @@ function createResult(args) {
|
|
|
3244
3365
|
},
|
|
3245
3366
|
params,
|
|
3246
3367
|
props,
|
|
3368
|
+
locals,
|
|
3247
3369
|
request,
|
|
3248
3370
|
url,
|
|
3249
3371
|
redirect: args.ssr ? (path, status) => {
|
|
@@ -3428,17 +3550,25 @@ function findPathItemByKey(staticPaths, params, route) {
|
|
|
3428
3550
|
debug("findPathItemByKey", `Unexpected cache miss looking for ${paramsKey}`);
|
|
3429
3551
|
}
|
|
3430
3552
|
|
|
3431
|
-
|
|
3432
|
-
|
|
3433
|
-
|
|
3434
|
-
|
|
3553
|
+
async function getParamsAndPropsOrThrow(options) {
|
|
3554
|
+
var _a, _b;
|
|
3555
|
+
let paramsAndPropsResp = await getParamsAndProps(options);
|
|
3556
|
+
if (paramsAndPropsResp === 0 /* NoMatchingStaticPath */) {
|
|
3557
|
+
throw new AstroError({
|
|
3558
|
+
...AstroErrorData.NoMatchingStaticPathFound,
|
|
3559
|
+
message: AstroErrorData.NoMatchingStaticPathFound.message(options.pathname),
|
|
3560
|
+
hint: ((_a = options.route) == null ? void 0 : _a.component) ? AstroErrorData.NoMatchingStaticPathFound.hint([(_b = options.route) == null ? void 0 : _b.component]) : ""
|
|
3561
|
+
});
|
|
3562
|
+
}
|
|
3563
|
+
return paramsAndPropsResp;
|
|
3564
|
+
}
|
|
3435
3565
|
async function getParamsAndProps(opts) {
|
|
3436
3566
|
const { logging, mod, route, routeCache, pathname, ssr } = opts;
|
|
3437
3567
|
let params = {};
|
|
3438
3568
|
let pageProps;
|
|
3439
3569
|
if (route && !route.pathname) {
|
|
3440
3570
|
if (route.params.length) {
|
|
3441
|
-
const paramsMatch = route.pattern.exec(pathname);
|
|
3571
|
+
const paramsMatch = route.pattern.exec(decodeURIComponent(pathname));
|
|
3442
3572
|
if (paramsMatch) {
|
|
3443
3573
|
params = getParams(route.params)(paramsMatch);
|
|
3444
3574
|
if (route.type === "endpoint" && mod.getStaticPaths) {
|
|
@@ -3473,65 +3603,88 @@ async function getParamsAndProps(opts) {
|
|
|
3473
3603
|
}
|
|
3474
3604
|
return [params, pageProps];
|
|
3475
3605
|
}
|
|
3476
|
-
async function renderPage(mod,
|
|
3477
|
-
var _a, _b;
|
|
3478
|
-
const paramsAndPropsRes = await getParamsAndProps({
|
|
3479
|
-
logging: env.logging,
|
|
3480
|
-
mod,
|
|
3481
|
-
route: ctx.route,
|
|
3482
|
-
routeCache: env.routeCache,
|
|
3483
|
-
pathname: ctx.pathname,
|
|
3484
|
-
ssr: env.ssr
|
|
3485
|
-
});
|
|
3486
|
-
if (paramsAndPropsRes === 0 /* NoMatchingStaticPath */) {
|
|
3487
|
-
throw new AstroError({
|
|
3488
|
-
...AstroErrorData.NoMatchingStaticPathFound,
|
|
3489
|
-
message: AstroErrorData.NoMatchingStaticPathFound.message(ctx.pathname),
|
|
3490
|
-
hint: ((_a = ctx.route) == null ? void 0 : _a.component) ? AstroErrorData.NoMatchingStaticPathFound.hint([(_b = ctx.route) == null ? void 0 : _b.component]) : ""
|
|
3491
|
-
});
|
|
3492
|
-
}
|
|
3493
|
-
const [params, pageProps] = paramsAndPropsRes;
|
|
3606
|
+
async function renderPage({ mod, renderContext, env, apiContext }) {
|
|
3494
3607
|
const Component = mod.default;
|
|
3495
3608
|
if (!Component)
|
|
3496
3609
|
throw new Error(`Expected an exported Astro component but received typeof ${typeof Component}`);
|
|
3610
|
+
let locals = {};
|
|
3611
|
+
if (apiContext) {
|
|
3612
|
+
if (env.mode === "development" && !isValueSerializable(apiContext.locals)) {
|
|
3613
|
+
throw new AstroError({
|
|
3614
|
+
...AstroErrorData.LocalsNotSerializable,
|
|
3615
|
+
message: AstroErrorData.LocalsNotSerializable.message(renderContext.pathname)
|
|
3616
|
+
});
|
|
3617
|
+
}
|
|
3618
|
+
locals = apiContext.locals;
|
|
3619
|
+
}
|
|
3497
3620
|
const result = createResult({
|
|
3498
3621
|
adapterName: env.adapterName,
|
|
3499
|
-
links:
|
|
3500
|
-
styles:
|
|
3622
|
+
links: renderContext.links,
|
|
3623
|
+
styles: renderContext.styles,
|
|
3501
3624
|
logging: env.logging,
|
|
3502
3625
|
markdown: env.markdown,
|
|
3503
3626
|
mode: env.mode,
|
|
3504
|
-
origin:
|
|
3505
|
-
params,
|
|
3506
|
-
props:
|
|
3507
|
-
pathname:
|
|
3508
|
-
componentMetadata:
|
|
3627
|
+
origin: renderContext.origin,
|
|
3628
|
+
params: renderContext.params,
|
|
3629
|
+
props: renderContext.props,
|
|
3630
|
+
pathname: renderContext.pathname,
|
|
3631
|
+
componentMetadata: renderContext.componentMetadata,
|
|
3509
3632
|
resolve: env.resolve,
|
|
3510
3633
|
renderers: env.renderers,
|
|
3511
|
-
request:
|
|
3634
|
+
request: renderContext.request,
|
|
3512
3635
|
site: env.site,
|
|
3513
|
-
scripts:
|
|
3636
|
+
scripts: renderContext.scripts,
|
|
3514
3637
|
ssr: env.ssr,
|
|
3515
|
-
status:
|
|
3638
|
+
status: renderContext.status ?? 200,
|
|
3639
|
+
locals
|
|
3516
3640
|
});
|
|
3517
3641
|
if (typeof mod.components === "object") {
|
|
3518
|
-
Object.assign(
|
|
3642
|
+
Object.assign(renderContext.props, { components: mod.components });
|
|
3519
3643
|
}
|
|
3520
|
-
|
|
3644
|
+
let response = await renderPage$1(
|
|
3521
3645
|
result,
|
|
3522
3646
|
Component,
|
|
3523
|
-
|
|
3647
|
+
renderContext.props,
|
|
3524
3648
|
null,
|
|
3525
3649
|
env.streaming,
|
|
3526
|
-
|
|
3650
|
+
renderContext.route
|
|
3527
3651
|
);
|
|
3528
3652
|
if (result.cookies) {
|
|
3529
3653
|
attachToResponse(response, result.cookies);
|
|
3530
3654
|
}
|
|
3531
3655
|
return response;
|
|
3532
3656
|
}
|
|
3657
|
+
function isValueSerializable(value) {
|
|
3658
|
+
let type = typeof value;
|
|
3659
|
+
let plainObject = true;
|
|
3660
|
+
if (type === "object" && isPlainObject(value)) {
|
|
3661
|
+
for (const [, nestedValue] of Object.entries(value)) {
|
|
3662
|
+
if (!isValueSerializable(nestedValue)) {
|
|
3663
|
+
plainObject = false;
|
|
3664
|
+
break;
|
|
3665
|
+
}
|
|
3666
|
+
}
|
|
3667
|
+
} else {
|
|
3668
|
+
plainObject = false;
|
|
3669
|
+
}
|
|
3670
|
+
let result = value === null || type === "string" || type === "number" || type === "boolean" || Array.isArray(value) || plainObject;
|
|
3671
|
+
return result;
|
|
3672
|
+
}
|
|
3673
|
+
function isPlainObject(value) {
|
|
3674
|
+
if (typeof value !== "object" || value === null)
|
|
3675
|
+
return false;
|
|
3676
|
+
let proto = Object.getPrototypeOf(value);
|
|
3677
|
+
if (proto === null)
|
|
3678
|
+
return true;
|
|
3679
|
+
let baseProto = proto;
|
|
3680
|
+
while (Object.getPrototypeOf(baseProto) !== null) {
|
|
3681
|
+
baseProto = Object.getPrototypeOf(baseProto);
|
|
3682
|
+
}
|
|
3683
|
+
return proto === baseProto;
|
|
3684
|
+
}
|
|
3533
3685
|
|
|
3534
3686
|
const clientAddressSymbol$1 = Symbol.for("astro.clientAddress");
|
|
3687
|
+
const clientLocalsSymbol$1 = Symbol.for("astro.locals");
|
|
3535
3688
|
function createAPIContext({
|
|
3536
3689
|
request,
|
|
3537
3690
|
params,
|
|
@@ -3539,7 +3692,7 @@ function createAPIContext({
|
|
|
3539
3692
|
props,
|
|
3540
3693
|
adapterName
|
|
3541
3694
|
}) {
|
|
3542
|
-
|
|
3695
|
+
const context = {
|
|
3543
3696
|
cookies: new AstroCookies(request),
|
|
3544
3697
|
request,
|
|
3545
3698
|
params,
|
|
@@ -3555,7 +3708,6 @@ function createAPIContext({
|
|
|
3555
3708
|
});
|
|
3556
3709
|
},
|
|
3557
3710
|
url: new URL(request.url),
|
|
3558
|
-
// @ts-expect-error
|
|
3559
3711
|
get clientAddress() {
|
|
3560
3712
|
if (!(clientAddressSymbol$1 in request)) {
|
|
3561
3713
|
if (adapterName) {
|
|
@@ -3570,33 +3722,49 @@ function createAPIContext({
|
|
|
3570
3722
|
return Reflect.get(request, clientAddressSymbol$1);
|
|
3571
3723
|
}
|
|
3572
3724
|
};
|
|
3573
|
-
|
|
3574
|
-
|
|
3575
|
-
|
|
3576
|
-
|
|
3577
|
-
|
|
3578
|
-
|
|
3579
|
-
|
|
3580
|
-
|
|
3581
|
-
|
|
3582
|
-
|
|
3725
|
+
Object.defineProperty(context, "locals", {
|
|
3726
|
+
get() {
|
|
3727
|
+
return Reflect.get(request, clientLocalsSymbol$1);
|
|
3728
|
+
},
|
|
3729
|
+
set(val) {
|
|
3730
|
+
if (typeof val !== "object") {
|
|
3731
|
+
throw new AstroError(AstroErrorData.LocalsNotAnObject);
|
|
3732
|
+
} else {
|
|
3733
|
+
Reflect.set(request, clientLocalsSymbol$1, val);
|
|
3734
|
+
}
|
|
3735
|
+
}
|
|
3583
3736
|
});
|
|
3584
|
-
|
|
3585
|
-
|
|
3586
|
-
|
|
3587
|
-
message: AstroErrorData.NoMatchingStaticPathFound.message(ctx.pathname),
|
|
3588
|
-
hint: ((_a = ctx.route) == null ? void 0 : _a.component) ? AstroErrorData.NoMatchingStaticPathFound.hint([(_b = ctx.route) == null ? void 0 : _b.component]) : ""
|
|
3589
|
-
});
|
|
3590
|
-
}
|
|
3591
|
-
const [params, props] = paramsAndPropsResp;
|
|
3737
|
+
return context;
|
|
3738
|
+
}
|
|
3739
|
+
async function call(mod, env, ctx, logging, middleware) {
|
|
3592
3740
|
const context = createAPIContext({
|
|
3593
3741
|
request: ctx.request,
|
|
3594
|
-
params,
|
|
3595
|
-
props,
|
|
3742
|
+
params: ctx.params,
|
|
3743
|
+
props: ctx.props,
|
|
3596
3744
|
site: env.site,
|
|
3597
3745
|
adapterName: env.adapterName
|
|
3598
3746
|
});
|
|
3599
|
-
|
|
3747
|
+
let response = await renderEndpoint(mod, context, env.ssr);
|
|
3748
|
+
if (middleware && middleware.onRequest) {
|
|
3749
|
+
if (response.body === null) {
|
|
3750
|
+
const onRequest = middleware.onRequest;
|
|
3751
|
+
response = await callMiddleware(onRequest, context, async () => {
|
|
3752
|
+
if (env.mode === "development" && !isValueSerializable(context.locals)) {
|
|
3753
|
+
throw new AstroError({
|
|
3754
|
+
...AstroErrorData.LocalsNotSerializable,
|
|
3755
|
+
message: AstroErrorData.LocalsNotSerializable.message(ctx.pathname)
|
|
3756
|
+
});
|
|
3757
|
+
}
|
|
3758
|
+
return response;
|
|
3759
|
+
});
|
|
3760
|
+
} else {
|
|
3761
|
+
warn(
|
|
3762
|
+
env.logging,
|
|
3763
|
+
"middleware",
|
|
3764
|
+
"Middleware doesn't work for endpoints that return a simple body. The middleware will be disabled for this page."
|
|
3765
|
+
);
|
|
3766
|
+
}
|
|
3767
|
+
}
|
|
3600
3768
|
if (response instanceof Response) {
|
|
3601
3769
|
attachToResponse(response, context.cookies);
|
|
3602
3770
|
return {
|
|
@@ -3672,6 +3840,9 @@ function prependForwardSlash(path) {
|
|
|
3672
3840
|
function removeTrailingForwardSlash(path) {
|
|
3673
3841
|
return path.endsWith("/") ? path.slice(0, path.length - 1) : path;
|
|
3674
3842
|
}
|
|
3843
|
+
function removeLeadingForwardSlash(path) {
|
|
3844
|
+
return path.startsWith("/") ? path.substring(1) : path;
|
|
3845
|
+
}
|
|
3675
3846
|
function trimSlashes(path) {
|
|
3676
3847
|
return path.replace(/^\/|\/$/g, "");
|
|
3677
3848
|
}
|
|
@@ -3679,19 +3850,37 @@ function isString(path) {
|
|
|
3679
3850
|
return typeof path === "string" || path instanceof String;
|
|
3680
3851
|
}
|
|
3681
3852
|
function joinPaths(...paths) {
|
|
3682
|
-
return paths.filter(isString).map(
|
|
3853
|
+
return paths.filter(isString).map((path, i) => {
|
|
3854
|
+
if (i === 0) {
|
|
3855
|
+
return removeTrailingForwardSlash(path);
|
|
3856
|
+
} else if (i === paths.length - 1) {
|
|
3857
|
+
return removeLeadingForwardSlash(path);
|
|
3858
|
+
} else {
|
|
3859
|
+
return trimSlashes(path);
|
|
3860
|
+
}
|
|
3861
|
+
}).join("/");
|
|
3683
3862
|
}
|
|
3684
3863
|
|
|
3685
|
-
function createRenderContext(options) {
|
|
3864
|
+
async function createRenderContext(options) {
|
|
3686
3865
|
const request = options.request;
|
|
3687
3866
|
const url = new URL(request.url);
|
|
3688
3867
|
const origin = options.origin ?? url.origin;
|
|
3689
3868
|
const pathname = options.pathname ?? url.pathname;
|
|
3869
|
+
const [params, props] = await getParamsAndPropsOrThrow({
|
|
3870
|
+
mod: options.mod,
|
|
3871
|
+
route: options.route,
|
|
3872
|
+
routeCache: options.env.routeCache,
|
|
3873
|
+
pathname,
|
|
3874
|
+
logging: options.env.logging,
|
|
3875
|
+
ssr: options.env.ssr
|
|
3876
|
+
});
|
|
3690
3877
|
return {
|
|
3691
3878
|
...options,
|
|
3692
3879
|
origin,
|
|
3693
3880
|
pathname,
|
|
3694
|
-
url
|
|
3881
|
+
url,
|
|
3882
|
+
params,
|
|
3883
|
+
props
|
|
3695
3884
|
};
|
|
3696
3885
|
}
|
|
3697
3886
|
|
|
@@ -3708,19 +3897,26 @@ function createAssetLink(href, base, assetsPrefix) {
|
|
|
3708
3897
|
return href;
|
|
3709
3898
|
}
|
|
3710
3899
|
}
|
|
3711
|
-
function
|
|
3712
|
-
|
|
3713
|
-
|
|
3714
|
-
|
|
3715
|
-
|
|
3716
|
-
|
|
3717
|
-
|
|
3718
|
-
|
|
3900
|
+
function createStylesheetElement(stylesheet, base, assetsPrefix) {
|
|
3901
|
+
if (stylesheet.type === "inline") {
|
|
3902
|
+
return {
|
|
3903
|
+
props: {
|
|
3904
|
+
type: "text/css"
|
|
3905
|
+
},
|
|
3906
|
+
children: stylesheet.content
|
|
3907
|
+
};
|
|
3908
|
+
} else {
|
|
3909
|
+
return {
|
|
3910
|
+
props: {
|
|
3911
|
+
rel: "stylesheet",
|
|
3912
|
+
href: createAssetLink(stylesheet.src, base, assetsPrefix)
|
|
3913
|
+
},
|
|
3914
|
+
children: ""
|
|
3915
|
+
};
|
|
3916
|
+
}
|
|
3719
3917
|
}
|
|
3720
|
-
function
|
|
3721
|
-
return new Set(
|
|
3722
|
-
hrefs.map((href) => createLinkStylesheetElement(href, base, assetsPrefix))
|
|
3723
|
-
);
|
|
3918
|
+
function createStylesheetElementSet(stylesheets, base, assetsPrefix) {
|
|
3919
|
+
return new Set(stylesheets.map((s) => createStylesheetElement(s, base, assetsPrefix)));
|
|
3724
3920
|
}
|
|
3725
3921
|
function createModuleScriptElement(script, base, assetsPrefix) {
|
|
3726
3922
|
if (script.type === "external") {
|
|
@@ -3748,6 +3944,7 @@ function matchRoute(pathname, manifest) {
|
|
|
3748
3944
|
return manifest.routes.find((route) => route.pattern.test(decodeURI(pathname)));
|
|
3749
3945
|
}
|
|
3750
3946
|
|
|
3947
|
+
const clientLocalsSymbol = Symbol.for("astro.locals");
|
|
3751
3948
|
const responseSentSymbol = Symbol.for("astro.responseSent");
|
|
3752
3949
|
class App {
|
|
3753
3950
|
#env;
|
|
@@ -3784,7 +3981,7 @@ class App {
|
|
|
3784
3981
|
return bundlePath;
|
|
3785
3982
|
}
|
|
3786
3983
|
default: {
|
|
3787
|
-
return
|
|
3984
|
+
return createAssetLink(bundlePath, manifest.base, manifest.assetsPrefix);
|
|
3788
3985
|
}
|
|
3789
3986
|
}
|
|
3790
3987
|
},
|
|
@@ -3837,6 +4034,7 @@ class App {
|
|
|
3837
4034
|
});
|
|
3838
4035
|
}
|
|
3839
4036
|
}
|
|
4037
|
+
Reflect.set(request, clientLocalsSymbol, {});
|
|
3840
4038
|
if (routeData.route === "/404") {
|
|
3841
4039
|
defaultStatus = 404;
|
|
3842
4040
|
}
|
|
@@ -3870,10 +4068,12 @@ class App {
|
|
|
3870
4068
|
return getSetCookiesFromResponse(response);
|
|
3871
4069
|
}
|
|
3872
4070
|
async #renderPage(request, routeData, mod, status = 200) {
|
|
4071
|
+
var _a;
|
|
3873
4072
|
const url = new URL(request.url);
|
|
3874
4073
|
const pathname = "/" + this.removeBase(url.pathname);
|
|
3875
4074
|
const info = this.#routeDataToRouteInfo.get(routeData);
|
|
3876
|
-
const links =
|
|
4075
|
+
const links = /* @__PURE__ */ new Set();
|
|
4076
|
+
const styles = createStylesheetElementSet(info.styles);
|
|
3877
4077
|
let scripts = /* @__PURE__ */ new Set();
|
|
3878
4078
|
for (const script of info.scripts) {
|
|
3879
4079
|
if ("stage" in script) {
|
|
@@ -3888,17 +4088,44 @@ class App {
|
|
|
3888
4088
|
}
|
|
3889
4089
|
}
|
|
3890
4090
|
try {
|
|
3891
|
-
const
|
|
4091
|
+
const renderContext = await createRenderContext({
|
|
3892
4092
|
request,
|
|
3893
4093
|
origin: url.origin,
|
|
3894
4094
|
pathname,
|
|
3895
4095
|
componentMetadata: this.#manifest.componentMetadata,
|
|
3896
4096
|
scripts,
|
|
4097
|
+
styles,
|
|
3897
4098
|
links,
|
|
3898
4099
|
route: routeData,
|
|
3899
|
-
status
|
|
4100
|
+
status,
|
|
4101
|
+
mod,
|
|
4102
|
+
env: this.#env
|
|
4103
|
+
});
|
|
4104
|
+
const apiContext = createAPIContext({
|
|
4105
|
+
request: renderContext.request,
|
|
4106
|
+
params: renderContext.params,
|
|
4107
|
+
props: renderContext.props,
|
|
4108
|
+
site: this.#env.site,
|
|
4109
|
+
adapterName: this.#env.adapterName
|
|
3900
4110
|
});
|
|
3901
|
-
const
|
|
4111
|
+
const onRequest = (_a = this.#manifest.middleware) == null ? void 0 : _a.onRequest;
|
|
4112
|
+
let response;
|
|
4113
|
+
if (onRequest) {
|
|
4114
|
+
response = await callMiddleware(
|
|
4115
|
+
onRequest,
|
|
4116
|
+
apiContext,
|
|
4117
|
+
() => {
|
|
4118
|
+
return renderPage({ mod, renderContext, env: this.#env, apiContext });
|
|
4119
|
+
}
|
|
4120
|
+
);
|
|
4121
|
+
} else {
|
|
4122
|
+
response = await renderPage({
|
|
4123
|
+
mod,
|
|
4124
|
+
renderContext,
|
|
4125
|
+
env: this.#env,
|
|
4126
|
+
apiContext
|
|
4127
|
+
});
|
|
4128
|
+
}
|
|
3902
4129
|
Reflect.set(request, responseSentSymbol, true);
|
|
3903
4130
|
return response;
|
|
3904
4131
|
} catch (err) {
|
|
@@ -3913,14 +4140,22 @@ class App {
|
|
|
3913
4140
|
const url = new URL(request.url);
|
|
3914
4141
|
const pathname = "/" + this.removeBase(url.pathname);
|
|
3915
4142
|
const handler = mod;
|
|
3916
|
-
const ctx = createRenderContext({
|
|
4143
|
+
const ctx = await createRenderContext({
|
|
3917
4144
|
request,
|
|
3918
4145
|
origin: url.origin,
|
|
3919
4146
|
pathname,
|
|
3920
4147
|
route: routeData,
|
|
3921
|
-
status
|
|
4148
|
+
status,
|
|
4149
|
+
env: this.#env,
|
|
4150
|
+
mod: handler
|
|
3922
4151
|
});
|
|
3923
|
-
const result = await call(
|
|
4152
|
+
const result = await call(
|
|
4153
|
+
handler,
|
|
4154
|
+
this.#env,
|
|
4155
|
+
ctx,
|
|
4156
|
+
this.#logging,
|
|
4157
|
+
this.#manifest.middleware
|
|
4158
|
+
);
|
|
3924
4159
|
if (result.type === "response") {
|
|
3925
4160
|
if (result.response.headers.get("X-Astro-Response") === "Not-Found") {
|
|
3926
4161
|
const fourOhFourRequest = new Request(new URL("/404", request.url));
|