astro 6.1.10 → 6.2.1
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/client.d.ts +1 -0
- package/dist/actions/runtime/types.d.ts +1 -1
- package/dist/assets/fonts/constants.d.ts +2 -0
- package/dist/assets/fonts/constants.js +4 -0
- package/dist/assets/fonts/core/create-get-font-file-url.d.ts +2 -0
- package/dist/assets/fonts/core/create-get-font-file-url.js +23 -0
- package/dist/assets/fonts/core/font-file-middleware.d.ts +21 -0
- package/dist/assets/fonts/core/font-file-middleware.js +59 -0
- package/dist/assets/fonts/definitions.d.ts +13 -0
- package/dist/assets/fonts/infra/build-url-resolver.d.ts +1 -0
- package/dist/assets/fonts/infra/build-url-resolver.js +7 -1
- package/dist/assets/fonts/infra/dev-url-resolver.d.ts +1 -0
- package/dist/assets/fonts/infra/dev-url-resolver.js +7 -1
- package/dist/assets/fonts/infra/remote-runtime-font-file-url-resolver.d.ts +19 -0
- package/dist/assets/fonts/infra/remote-runtime-font-file-url-resolver.js +27 -0
- package/dist/assets/fonts/infra/ssr-runtime-font-file-url-resolver.d.ts +12 -0
- package/dist/assets/fonts/infra/ssr-runtime-font-file-url-resolver.js +25 -0
- package/dist/assets/fonts/runtime.d.ts +1 -0
- package/dist/assets/fonts/runtime.js +4 -0
- package/dist/assets/fonts/vite-plugin-fonts.js +88 -49
- package/dist/assets/index.d.ts +1 -1
- package/dist/assets/index.js +3 -2
- package/dist/assets/svg/config.d.ts +5 -0
- package/dist/assets/svg/config.js +8 -0
- package/dist/assets/svg/svgo.d.ts +4 -0
- package/dist/assets/svg/svgo.js +10 -0
- package/dist/assets/svg/types.d.ts +4 -0
- package/dist/assets/svg/types.js +0 -0
- package/dist/assets/svg/utils.d.ts +3 -0
- package/dist/assets/{utils/svg.js → svg/utils.js} +11 -14
- package/dist/assets/vite-plugin-assets.js +8 -4
- package/dist/cli/flags.js +19 -9
- package/dist/cli/help/index.js +2 -1
- package/dist/cli/infra/build-time-astro-version-provider.js +1 -1
- package/dist/cli/preferences/index.js +3 -2
- package/dist/config/entrypoint.d.ts +2 -0
- package/dist/config/entrypoint.js +4 -0
- package/dist/config/index.js +9 -7
- package/dist/container/index.js +4 -7
- package/dist/content/content-layer.js +3 -3
- package/dist/core/app/base.d.ts +18 -4
- package/dist/core/app/base.js +29 -12
- package/dist/core/app/dev/app.d.ts +0 -1
- package/dist/core/app/dev/app.js +0 -2
- package/dist/core/app/entrypoints/index.d.ts +1 -1
- package/dist/core/app/entrypoints/index.js +1 -1
- package/dist/core/app/entrypoints/virtual/dev.js +1 -1
- package/dist/core/app/pipeline.js +2 -2
- package/dist/core/app/types.d.ts +10 -3
- package/dist/core/base-pipeline.d.ts +9 -2
- package/dist/core/base-pipeline.js +17 -0
- package/dist/core/build/app.js +2 -1
- package/dist/core/build/index.js +13 -2
- package/dist/core/build/internal.d.ts +1 -0
- package/dist/core/build/internal.js +1 -0
- package/dist/core/build/pipeline.js +1 -1
- package/dist/core/build/plugins/plugin-manifest.js +6 -1
- package/dist/core/cache/types.d.ts +2 -0
- package/dist/core/config/schemas/base.d.ts +16 -8
- package/dist/core/config/schemas/base.js +17 -10
- package/dist/core/config/schemas/relative.d.ts +31 -13
- package/dist/core/config/schemas/relative.js +3 -4
- package/dist/core/config/settings.js +2 -1
- package/dist/core/config/vite-load.js +4 -17
- package/dist/core/constants.js +1 -1
- package/dist/core/createMinimalViteDevServer.d.ts +8 -0
- package/dist/core/createMinimalViteDevServer.js +15 -0
- package/dist/core/dev/dev.js +1 -1
- package/dist/core/dev/restart.js +2 -2
- package/dist/core/errors/errors-data.d.ts +48 -2
- package/dist/core/errors/errors-data.js +26 -2
- package/dist/core/errors/zod-error-map.js +27 -0
- package/dist/core/logger/config.d.ts +6 -0
- package/dist/core/logger/config.js +0 -0
- package/dist/core/logger/core.d.ts +33 -13
- package/dist/core/logger/core.js +50 -5
- package/dist/core/logger/handlers.d.ts +60 -0
- package/dist/core/logger/handlers.js +81 -0
- package/dist/core/logger/impls/compose.d.ts +2 -0
- package/dist/core/logger/impls/compose.js +26 -0
- package/dist/core/logger/impls/console.d.ts +9 -0
- package/dist/core/logger/impls/console.js +38 -0
- package/dist/core/logger/impls/json.d.ts +15 -0
- package/dist/core/logger/impls/json.js +42 -0
- package/dist/core/logger/impls/node.d.ts +7 -0
- package/dist/core/logger/impls/node.js +40 -0
- package/dist/core/logger/load.d.ts +11 -0
- package/dist/core/logger/load.js +88 -0
- package/dist/core/logger/node.d.ts +0 -5
- package/dist/core/logger/node.js +1 -39
- package/dist/core/logger/public.d.ts +17 -0
- package/dist/core/logger/public.js +7 -0
- package/dist/core/messages/runtime.js +1 -1
- package/dist/core/middleware/index.js +2 -1
- package/dist/core/preview/index.js +4 -3
- package/dist/core/render-context.js +35 -1
- package/dist/core/sync/index.js +2 -2
- package/dist/core/wait-until.d.ts +1 -0
- package/dist/core/wait-until.js +0 -0
- package/dist/manifest/serialized.js +6 -1
- package/dist/runtime/compiler/index.d.ts +1 -1
- package/dist/runtime/compiler/index.js +4 -0
- package/dist/runtime/server/astro-global.js +3 -0
- package/dist/runtime/server/index.d.ts +1 -0
- package/dist/runtime/server/index.js +3 -0
- package/dist/runtime/server/render/common.js +16 -0
- package/dist/runtime/server/render/instruction.d.ts +7 -1
- package/dist/runtime/server/render/template-depth.d.ts +13 -0
- package/dist/runtime/server/render/template-depth.js +11 -0
- package/dist/types/astro.d.ts +2 -0
- package/dist/types/public/common.d.ts +1 -0
- package/dist/types/public/config.d.ts +54 -42
- package/dist/types/public/context.d.ts +17 -0
- package/dist/types/public/index.d.ts +1 -0
- package/dist/types/public/internal.d.ts +7 -1
- package/dist/types/public/preview.d.ts +5 -0
- package/dist/vite-plugin-app/app.d.ts +0 -1
- package/dist/vite-plugin-app/app.js +0 -2
- package/dist/vite-plugin-app/createAstroServerApp.d.ts +1 -1
- package/dist/vite-plugin-app/createAstroServerApp.js +2 -6
- package/dist/vite-plugin-load-fallback/index.d.ts +1 -1
- package/dist/vite-plugin-load-fallback/index.js +2 -5
- package/package.json +8 -3
- package/dist/assets/utils/svg.d.ts +0 -3
- package/dist/core/app/logging.d.ts +0 -3
- package/dist/core/app/logging.js +0 -11
- package/dist/core/logger/console.d.ts +0 -2
- package/dist/core/logger/console.js +0 -21
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { AstroLogger, type AstroLoggerLevel } from './core.js';
|
|
2
|
+
import type { LoggerHandlerConfig } from './config.js';
|
|
3
|
+
import type { AstroConfig, AstroInlineConfig } from '../../types/public/index.js';
|
|
4
|
+
export declare function loadLogger(config: LoggerHandlerConfig, level?: AstroLoggerLevel): Promise<AstroLogger>;
|
|
5
|
+
/**
|
|
6
|
+
* It attempts to load a logger from the entrypoint.
|
|
7
|
+
* If not provided, it creates a new logger instance on the fly.
|
|
8
|
+
* @param astroConfig
|
|
9
|
+
* @param inlineAstroConfig
|
|
10
|
+
*/
|
|
11
|
+
export declare function loadOrCreateNodeLogger(astroConfig: AstroConfig, inlineAstroConfig: AstroInlineConfig): Promise<AstroLogger>;
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { AstroLogger } from "./core.js";
|
|
2
|
+
import { AstroError } from "../errors/index.js";
|
|
3
|
+
import { UnableToLoadLogger } from "../errors/errors-data.js";
|
|
4
|
+
import { default as nodeLoggerCreator, createNodeLoggerFromFlags } from "./impls/node.js";
|
|
5
|
+
import { default as consoleLoggerCreator } from "./impls/console.js";
|
|
6
|
+
import { default as jsonLoggerCreator } from "./impls/json.js";
|
|
7
|
+
import { default as composeLoggerCreator } from "./impls/compose.js";
|
|
8
|
+
async function loadLogger(config, level = "info") {
|
|
9
|
+
let cause = void 0;
|
|
10
|
+
try {
|
|
11
|
+
switch (config.entrypoint) {
|
|
12
|
+
case "astro/logger/node": {
|
|
13
|
+
return new AstroLogger({
|
|
14
|
+
destination: nodeLoggerCreator(config.config),
|
|
15
|
+
level
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
case "astro/logger/console": {
|
|
19
|
+
return new AstroLogger({
|
|
20
|
+
destination: consoleLoggerCreator(config.config),
|
|
21
|
+
level
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
case "astro/logger/json": {
|
|
25
|
+
return new AstroLogger({
|
|
26
|
+
destination: jsonLoggerCreator(config.config),
|
|
27
|
+
level
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
case "astro/logger/compose": {
|
|
31
|
+
let destinations = [];
|
|
32
|
+
if (config.config?.loggers) {
|
|
33
|
+
const loggers = config.config?.loggers;
|
|
34
|
+
destinations = await Promise.all(
|
|
35
|
+
loggers.map(async (loggerConfig) => {
|
|
36
|
+
const logger = await import(
|
|
37
|
+
/* @vite-ignore */
|
|
38
|
+
loggerConfig.entrypoint
|
|
39
|
+
);
|
|
40
|
+
return logger.default(loggerConfig.config);
|
|
41
|
+
})
|
|
42
|
+
);
|
|
43
|
+
}
|
|
44
|
+
return new AstroLogger({
|
|
45
|
+
destination: composeLoggerCreator(destinations),
|
|
46
|
+
level
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
default: {
|
|
50
|
+
const nodeLogger = await import(
|
|
51
|
+
/* @vite-ignore */
|
|
52
|
+
config.entrypoint
|
|
53
|
+
);
|
|
54
|
+
return new AstroLogger({
|
|
55
|
+
destination: nodeLogger.default(config.config),
|
|
56
|
+
level
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
} catch (e) {
|
|
61
|
+
if (e instanceof Error) {
|
|
62
|
+
cause = e;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
const error = new AstroError({
|
|
66
|
+
...UnableToLoadLogger,
|
|
67
|
+
message: UnableToLoadLogger.message(config.entrypoint)
|
|
68
|
+
});
|
|
69
|
+
if (cause) {
|
|
70
|
+
error.cause = cause;
|
|
71
|
+
}
|
|
72
|
+
throw error;
|
|
73
|
+
}
|
|
74
|
+
async function loadOrCreateNodeLogger(astroConfig, inlineAstroConfig) {
|
|
75
|
+
try {
|
|
76
|
+
if (astroConfig.experimental.logger) {
|
|
77
|
+
return await loadLogger(astroConfig.experimental.logger, inlineAstroConfig.logLevel);
|
|
78
|
+
} else {
|
|
79
|
+
return createNodeLoggerFromFlags(inlineAstroConfig);
|
|
80
|
+
}
|
|
81
|
+
} catch {
|
|
82
|
+
return createNodeLoggerFromFlags(inlineAstroConfig);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
export {
|
|
86
|
+
loadLogger,
|
|
87
|
+
loadOrCreateNodeLogger
|
|
88
|
+
};
|
|
@@ -1,6 +1 @@
|
|
|
1
|
-
import type { AstroInlineConfig } from '../../types/public/config.js';
|
|
2
|
-
import { AstroLogger } from './core.js';
|
|
3
|
-
import { type AstroLogMessage, type AstroLoggerDestination } from './core.js';
|
|
4
|
-
export declare const nodeLogDestination: AstroLoggerDestination<AstroLogMessage>;
|
|
5
1
|
export declare function enableVerboseLogging(): void;
|
|
6
|
-
export declare function createNodeLogger(inlineConfig: AstroInlineConfig): AstroLogger;
|
package/dist/core/logger/node.js
CHANGED
|
@@ -1,33 +1,4 @@
|
|
|
1
1
|
import { createDebug, enable as obugEnable } from "obug";
|
|
2
|
-
import { AstroLogger } from "./core.js";
|
|
3
|
-
import {
|
|
4
|
-
getEventPrefix,
|
|
5
|
-
levels
|
|
6
|
-
} from "./core.js";
|
|
7
|
-
const nodeLogDestination = {
|
|
8
|
-
write(event) {
|
|
9
|
-
let dest = process.stderr;
|
|
10
|
-
if (levels[event.level] < levels["error"]) {
|
|
11
|
-
dest = process.stdout;
|
|
12
|
-
}
|
|
13
|
-
let format = event._format ?? "default";
|
|
14
|
-
let trailingLine = event.newLine ? "\n" : "";
|
|
15
|
-
switch (format) {
|
|
16
|
-
case "json": {
|
|
17
|
-
dest.write(JSON.stringify({ message: event.message, label: event.label }) + trailingLine);
|
|
18
|
-
return true;
|
|
19
|
-
}
|
|
20
|
-
case "default": {
|
|
21
|
-
if (event.label === "SKIP_FORMAT") {
|
|
22
|
-
dest.write(event.message + trailingLine);
|
|
23
|
-
} else {
|
|
24
|
-
dest.write(getEventPrefix(event) + " " + event.message + trailingLine);
|
|
25
|
-
}
|
|
26
|
-
return true;
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
};
|
|
31
2
|
const debuggers = {};
|
|
32
3
|
function debug(type, ...messages) {
|
|
33
4
|
const namespace = `astro:${type}`;
|
|
@@ -43,15 +14,6 @@ function enableVerboseLogging() {
|
|
|
43
14
|
'Tip: Set the DEBUG env variable directly for more control. Example: "DEBUG=astro:*,vite:* astro build".'
|
|
44
15
|
);
|
|
45
16
|
}
|
|
46
|
-
function createNodeLogger(inlineConfig) {
|
|
47
|
-
if (inlineConfig.logger) return inlineConfig.logger;
|
|
48
|
-
return new AstroLogger({
|
|
49
|
-
destination: nodeLogDestination,
|
|
50
|
-
level: inlineConfig.logLevel ?? "info"
|
|
51
|
-
});
|
|
52
|
-
}
|
|
53
17
|
export {
|
|
54
|
-
|
|
55
|
-
enableVerboseLogging,
|
|
56
|
-
nodeLogDestination
|
|
18
|
+
enableVerboseLogging
|
|
57
19
|
};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { type AstroLoggerLevel } from './core.js';
|
|
2
|
+
/**
|
|
3
|
+
* Returns `true` if `messageLevel` has a level equals or higher than `configuredLevel`. As a golden rule,
|
|
4
|
+
* the first argument should be level of the incoming message, and the second argument should be the
|
|
5
|
+
* configured level of the logger.
|
|
6
|
+
*
|
|
7
|
+
* @param messageLevel The level of the incoming message
|
|
8
|
+
* @param configuredLevel The level the logger is configured with
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
*
|
|
12
|
+
* ```js
|
|
13
|
+
* matchesLevel('error', 'info') // true, because 'error' has higher priority than 'info'
|
|
14
|
+
* matchesLevel('info', 'error') // false, because 'info' has lower priority than 'error'
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
17
|
+
export declare function matchesLevel(messageLevel: AstroLoggerLevel, configuredLevel: AstroLoggerLevel): boolean;
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import fs from "node:fs";
|
|
2
2
|
import { createRequire } from "node:module";
|
|
3
3
|
import { fileURLToPath, pathToFileURL } from "node:url";
|
|
4
|
-
import { AstroIntegrationLogger } from "
|
|
4
|
+
import { AstroIntegrationLogger } from "../logger/core.js";
|
|
5
5
|
import { telemetry } from "../../events/index.js";
|
|
6
6
|
import { eventCliSession } from "../../events/session.js";
|
|
7
7
|
import { runHookConfigDone, runHookConfigSetup } from "../../integrations/hooks.js";
|
|
8
8
|
import { resolveConfig } from "../config/config.js";
|
|
9
|
-
import {
|
|
9
|
+
import { loadOrCreateNodeLogger } from "../logger/load.js";
|
|
10
10
|
import { createSettings } from "../config/settings.js";
|
|
11
11
|
import { createRoutesList } from "../routing/create-manifest.js";
|
|
12
12
|
import { getPrerenderDefault } from "../../prerender/utils.js";
|
|
@@ -15,8 +15,8 @@ import createStaticPreviewServer from "./static-preview-server.js";
|
|
|
15
15
|
import { getResolvedHostForHttpServer } from "./util.js";
|
|
16
16
|
async function preview(inlineConfig) {
|
|
17
17
|
ensureProcessNodeEnv("production");
|
|
18
|
-
const logger = createNodeLogger(inlineConfig);
|
|
19
18
|
const { userConfig, astroConfig } = await resolveConfig(inlineConfig ?? {}, "preview");
|
|
19
|
+
const logger = await loadOrCreateNodeLogger(astroConfig, inlineConfig ?? {});
|
|
20
20
|
telemetry.record(eventCliSession("preview", userConfig));
|
|
21
21
|
const _settings = await createSettings(
|
|
22
22
|
astroConfig,
|
|
@@ -67,6 +67,7 @@ async function preview(inlineConfig) {
|
|
|
67
67
|
base: settings.config.base,
|
|
68
68
|
logger: new AstroIntegrationLogger(logger.options, settings.adapter.name),
|
|
69
69
|
headers: settings.config.server.headers,
|
|
70
|
+
allowedHosts: settings.config.server.allowedHosts,
|
|
70
71
|
root: settings.config.root
|
|
71
72
|
});
|
|
72
73
|
return server;
|
|
@@ -467,6 +467,26 @@ class RenderContext {
|
|
|
467
467
|
renderContext.result?.scriptHashes.push(hash);
|
|
468
468
|
}
|
|
469
469
|
};
|
|
470
|
+
},
|
|
471
|
+
get logger() {
|
|
472
|
+
if (!pipeline.manifest.experimentalLogger) {
|
|
473
|
+
pipeline.logger.warn(
|
|
474
|
+
null,
|
|
475
|
+
"The Astro.logger is available only when experimental.logger is defined."
|
|
476
|
+
);
|
|
477
|
+
return void 0;
|
|
478
|
+
}
|
|
479
|
+
return {
|
|
480
|
+
info(msg) {
|
|
481
|
+
pipeline.logger.info(null, msg);
|
|
482
|
+
},
|
|
483
|
+
warn(msg) {
|
|
484
|
+
pipeline.logger.warn(null, msg);
|
|
485
|
+
},
|
|
486
|
+
error(msg) {
|
|
487
|
+
pipeline.logger.error(null, msg);
|
|
488
|
+
}
|
|
489
|
+
};
|
|
470
490
|
}
|
|
471
491
|
};
|
|
472
492
|
}
|
|
@@ -544,7 +564,8 @@ class RenderContext {
|
|
|
544
564
|
extraHead: [],
|
|
545
565
|
extraStyleHashes,
|
|
546
566
|
extraScriptHashes,
|
|
547
|
-
propagators: /* @__PURE__ */ new Set()
|
|
567
|
+
propagators: /* @__PURE__ */ new Set(),
|
|
568
|
+
templateDepth: 0
|
|
548
569
|
},
|
|
549
570
|
cspDestination: manifest.csp?.cspDestination ?? (routeData.prerender ? "meta" : "header"),
|
|
550
571
|
shouldInjectCspMetaTags,
|
|
@@ -698,6 +719,19 @@ class RenderContext {
|
|
|
698
719
|
renderContext.result?.scriptHashes.push(hash);
|
|
699
720
|
}
|
|
700
721
|
};
|
|
722
|
+
},
|
|
723
|
+
get logger() {
|
|
724
|
+
return {
|
|
725
|
+
info(msg) {
|
|
726
|
+
pipeline.logger.info(null, msg);
|
|
727
|
+
},
|
|
728
|
+
warn(msg) {
|
|
729
|
+
pipeline.logger.warn(null, msg);
|
|
730
|
+
},
|
|
731
|
+
error(msg) {
|
|
732
|
+
pipeline.logger.error(null, msg);
|
|
733
|
+
}
|
|
734
|
+
};
|
|
701
735
|
}
|
|
702
736
|
};
|
|
703
737
|
}
|
package/dist/core/sync/index.js
CHANGED
|
@@ -17,7 +17,7 @@ import { eventCliSession } from "../../events/session.js";
|
|
|
17
17
|
import { runHookConfigDone, runHookConfigSetup } from "../../integrations/hooks.js";
|
|
18
18
|
import { getTimeStat } from "../build/util.js";
|
|
19
19
|
import { resolveConfig } from "../config/config.js";
|
|
20
|
-
import {
|
|
20
|
+
import { loadOrCreateNodeLogger } from "../logger/load.js";
|
|
21
21
|
import { createSettings } from "../config/settings.js";
|
|
22
22
|
import { createVite } from "../create-vite.js";
|
|
23
23
|
import {
|
|
@@ -32,8 +32,8 @@ import { ensureProcessNodeEnv } from "../util.js";
|
|
|
32
32
|
import { normalizePath } from "../viteUtils.js";
|
|
33
33
|
async function sync(inlineConfig, { fs, telemetry: _telemetry = false } = {}) {
|
|
34
34
|
ensureProcessNodeEnv("production");
|
|
35
|
-
const logger = createNodeLogger(inlineConfig);
|
|
36
35
|
const { astroConfig, userConfig } = await resolveConfig(inlineConfig ?? {}, "sync");
|
|
36
|
+
const logger = await loadOrCreateNodeLogger(astroConfig, inlineConfig ?? {});
|
|
37
37
|
if (_telemetry) {
|
|
38
38
|
telemetry.record(eventCliSession("sync", userConfig));
|
|
39
39
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type WaitUntilHook = (this: void, promise: Promise<unknown>) => void;
|
|
File without changes
|
|
@@ -142,6 +142,10 @@ async function createSerializedManifest(settings, encodedKey) {
|
|
|
142
142
|
isStrictDynamic: getStrictDynamic(settings.config.security.csp)
|
|
143
143
|
};
|
|
144
144
|
}
|
|
145
|
+
let experimentalLogger = void 0;
|
|
146
|
+
if (settings.config.experimental.logger) {
|
|
147
|
+
experimentalLogger = settings.config.experimental.logger;
|
|
148
|
+
}
|
|
145
149
|
return {
|
|
146
150
|
rootDir: settings.config.root.toString(),
|
|
147
151
|
srcDir: settings.config.srcDir.toString(),
|
|
@@ -195,7 +199,8 @@ async function createSerializedManifest(settings, encodedKey) {
|
|
|
195
199
|
},
|
|
196
200
|
logLevel: settings.logLevel,
|
|
197
201
|
shouldInjectCspMetaTags: false,
|
|
198
|
-
experimentalQueuedRendering: settings.config.experimental?.queuedRendering
|
|
202
|
+
experimentalQueuedRendering: settings.config.experimental?.queuedRendering,
|
|
203
|
+
experimentalLogger
|
|
199
204
|
};
|
|
200
205
|
}
|
|
201
206
|
export {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export { addAttribute, createAstro, createComponent, createTransitionScope, defineScriptVars, defineStyleVars, Fragment, maybeRenderHead, mergeSlots, render, renderComponent, renderHead, renderScript, renderSlot, renderTransition, spreadAttributes, unescapeHTML, } from '../server/index.js';
|
|
1
|
+
export { addAttribute, createAstro, createComponent, createTransitionScope, defineScriptVars, defineStyleVars, Fragment, maybeRenderHead, mergeSlots, render, renderComponent, renderHead, renderScript, renderSlot, renderTransition, templateEnter, templateExit, spreadAttributes, unescapeHTML, } from '../server/index.js';
|
|
@@ -14,6 +14,8 @@ import {
|
|
|
14
14
|
renderScript,
|
|
15
15
|
renderSlot,
|
|
16
16
|
renderTransition,
|
|
17
|
+
templateEnter,
|
|
18
|
+
templateExit,
|
|
17
19
|
spreadAttributes,
|
|
18
20
|
unescapeHTML
|
|
19
21
|
} from "../server/index.js";
|
|
@@ -34,5 +36,7 @@ export {
|
|
|
34
36
|
renderSlot,
|
|
35
37
|
renderTransition,
|
|
36
38
|
spreadAttributes,
|
|
39
|
+
templateEnter,
|
|
40
|
+
templateExit,
|
|
37
41
|
unescapeHTML
|
|
38
42
|
};
|
|
@@ -6,6 +6,7 @@ export { renderJSX } from './jsx.js';
|
|
|
6
6
|
export type { AstroComponentFactory, AstroComponentInstance, ComponentSlots, RenderInstruction, } from './render/index.js';
|
|
7
7
|
export { addAttribute, createHeadAndContent, defineScriptVars, Fragment, maybeRenderHead, Renderer as Renderer, renderComponent, renderHead, renderHTMLElement, renderPage, renderScript, renderScriptElement, renderSlot, renderSlotToString, renderTemplate as render, renderTemplate, renderToString, renderUniqueStylesheet, voidElementNames, } from './render/index.js';
|
|
8
8
|
export type { ServerIslandComponent } from './render/server-islands.js';
|
|
9
|
+
export { templateEnter, templateExit } from './render/template-depth.js';
|
|
9
10
|
export { createTransitionScope, renderTransition } from './transition.js';
|
|
10
11
|
export declare function mergeSlots(...slotted: unknown[]): Record<string, () => any>;
|
|
11
12
|
export declare function spreadAttributes(values?: Record<any, any>, _name?: string, { class: scopedClassName }?: {
|
|
@@ -31,6 +31,7 @@ import {
|
|
|
31
31
|
renderUniqueStylesheet,
|
|
32
32
|
voidElementNames
|
|
33
33
|
} from "./render/index.js";
|
|
34
|
+
import { templateEnter, templateExit } from "./render/template-depth.js";
|
|
34
35
|
import { createTransitionScope, renderTransition } from "./transition.js";
|
|
35
36
|
import { markHTMLString as markHTMLString2 } from "./escape.js";
|
|
36
37
|
import { addAttribute as addAttribute2, Renderer as Renderer2 } from "./render/index.js";
|
|
@@ -117,6 +118,8 @@ export {
|
|
|
117
118
|
renderTransition,
|
|
118
119
|
renderUniqueStylesheet,
|
|
119
120
|
spreadAttributes,
|
|
121
|
+
templateEnter,
|
|
122
|
+
templateExit,
|
|
120
123
|
unescapeHTML,
|
|
121
124
|
voidElementNames
|
|
122
125
|
};
|
|
@@ -61,12 +61,28 @@ function stringifyChunk(result, chunk) {
|
|
|
61
61
|
}
|
|
62
62
|
case "script": {
|
|
63
63
|
const { id, content } = instruction;
|
|
64
|
+
if (result._metadata.templateDepth > 0) {
|
|
65
|
+
return content;
|
|
66
|
+
}
|
|
64
67
|
if (result._metadata.renderedScripts.has(id)) {
|
|
65
68
|
return "";
|
|
66
69
|
}
|
|
67
70
|
result._metadata.renderedScripts.add(id);
|
|
68
71
|
return content;
|
|
69
72
|
}
|
|
73
|
+
case "template-enter": {
|
|
74
|
+
result._metadata.templateDepth++;
|
|
75
|
+
return "";
|
|
76
|
+
}
|
|
77
|
+
case "template-exit": {
|
|
78
|
+
if (result._metadata.templateDepth <= 0) {
|
|
79
|
+
throw new Error(
|
|
80
|
+
"Unexpected template-exit instruction without a matching template-enter. This may indicate that the compiler emitted unbalanced template boundaries, or that a component manually injected a template-exit render instruction."
|
|
81
|
+
);
|
|
82
|
+
}
|
|
83
|
+
result._metadata.templateDepth--;
|
|
84
|
+
return "";
|
|
85
|
+
}
|
|
70
86
|
default: {
|
|
71
87
|
throw new Error(`Unknown chunk type: ${chunk.type}`);
|
|
72
88
|
}
|
|
@@ -26,6 +26,12 @@ export type RenderScriptInstruction = {
|
|
|
26
26
|
id: string;
|
|
27
27
|
content: string;
|
|
28
28
|
};
|
|
29
|
-
export type
|
|
29
|
+
export type TemplateEnterInstruction = {
|
|
30
|
+
type: 'template-enter';
|
|
31
|
+
};
|
|
32
|
+
export type TemplateExitInstruction = {
|
|
33
|
+
type: 'template-exit';
|
|
34
|
+
};
|
|
35
|
+
export type RenderInstruction = RenderDirectiveInstruction | RenderHeadInstruction | MaybeRenderHeadInstruction | RendererHydrationScriptInstruction | ServerIslandRuntimeInstruction | RenderScriptInstruction | TemplateEnterInstruction | TemplateExitInstruction;
|
|
30
36
|
export declare function createRenderInstruction<T extends RenderInstruction>(instruction: T): T;
|
|
31
37
|
export declare function isRenderInstruction(chunk: any): chunk is RenderInstruction;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { SSRResult } from '../../../types/public/internal.js';
|
|
2
|
+
/**
|
|
3
|
+
* Emitted by the compiler when entering an HTML `<template>` element.
|
|
4
|
+
*/
|
|
5
|
+
export declare function templateEnter(_result: SSRResult): {
|
|
6
|
+
type: "template-enter";
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* Emitted by the compiler when exiting an HTML `<template>` element.
|
|
10
|
+
*/
|
|
11
|
+
export declare function templateExit(_result: SSRResult): {
|
|
12
|
+
type: "template-exit";
|
|
13
|
+
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { createRenderInstruction } from "./instruction.js";
|
|
2
|
+
function templateEnter(_result) {
|
|
3
|
+
return createRenderInstruction({ type: "template-enter" });
|
|
4
|
+
}
|
|
5
|
+
function templateExit(_result) {
|
|
6
|
+
return createRenderInstruction({ type: "template-exit" });
|
|
7
|
+
}
|
|
8
|
+
export {
|
|
9
|
+
templateEnter,
|
|
10
|
+
templateExit
|
|
11
|
+
};
|
package/dist/types/astro.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { Server } from 'node:http';
|
|
1
2
|
import type { AstroTimer } from '../core/config/timer.js';
|
|
2
3
|
import type { TSConfig } from '../core/config/tsconfig.js';
|
|
3
4
|
import type { AstroLogger, AstroLoggerLevel } from '../core/logger/core.js';
|
|
@@ -66,6 +67,7 @@ export interface AstroSettings {
|
|
|
66
67
|
styleHashes: Required<CspObject['styleDirective']>['hashes'];
|
|
67
68
|
};
|
|
68
69
|
logLevel: AstroLoggerLevel;
|
|
70
|
+
fontsHttpServer: Server | null;
|
|
69
71
|
}
|
|
70
72
|
/** Generic interface for a component (Astro, Svelte, React, etc.) */
|
|
71
73
|
export interface ComponentInstance {
|
|
@@ -137,3 +137,4 @@ export type InferGetStaticPropsType<T> = T extends (opts: GetStaticPathsOptions)
|
|
|
137
137
|
export type Params = Record<string, string | undefined>;
|
|
138
138
|
export type Props = Record<string, unknown>;
|
|
139
139
|
export type CodeLanguage = BundledLanguage | LanguageRegistration | SpecialLanguage;
|
|
140
|
+
export type { AstroLoggerDestination, AstroLoggerLevel, AstroLoggerMessage, } from '../../core/logger/core.js';
|