astro 0.21.13 → 0.22.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/astro.js +64 -64
- package/components/Code.astro +34 -34
- package/components/Debug.astro +44 -43
- package/components/Markdown.astro +20 -15
- package/components/Prism.astro +20 -23
- package/dist/cli/check.js +1 -1
- package/dist/cli/index.js +22 -19
- package/dist/core/build/index.js +37 -130
- package/dist/core/build/internal.js +18 -0
- package/dist/core/build/page-data.js +92 -0
- package/dist/core/build/scan-based-build.js +50 -0
- package/dist/core/build/static-build.js +136 -0
- package/dist/core/config.js +3 -2
- package/dist/core/create-vite.js +1 -1
- package/dist/core/dev/index.js +8 -6
- package/dist/core/dev/messages.js +1 -1
- package/dist/core/dev/template/4xx.js +1 -1
- package/dist/core/dev/template/5xx.js +1 -1
- package/dist/core/dev/util.js +1 -1
- package/dist/core/logger.js +1 -1
- package/dist/core/preview/index.js +2 -3
- package/dist/core/ssr/css.js +1 -1
- package/dist/core/ssr/html.js +1 -1
- package/dist/core/ssr/index.js +92 -2
- package/dist/core/ssr/paginate.js +1 -1
- package/dist/core/ssr/routing.js +1 -1
- package/dist/core/ssr/rss.js +1 -1
- package/dist/core/ssr/sitemap.js +1 -1
- package/dist/core/util.js +1 -1
- package/dist/runtime/client/hmr.js +1 -1
- package/dist/runtime/client/idle.js +1 -1
- package/dist/runtime/client/load.js +1 -1
- package/dist/runtime/client/media.js +1 -1
- package/dist/runtime/client/only.js +1 -1
- package/dist/runtime/client/visible.js +1 -1
- package/dist/runtime/server/hydration.js +1 -1
- package/dist/runtime/server/index.js +5 -4
- package/dist/runtime/server/metadata.js +1 -1
- package/dist/runtime/server/util.js +1 -1
- package/dist/types/@types/astro.d.ts +2 -0
- package/dist/types/cli/index.d.ts +1 -1
- package/dist/types/core/build/internal.d.ts +13 -0
- package/dist/types/core/build/page-data.d.ts +17 -0
- package/dist/types/core/build/scan-based-build.d.ts +16 -0
- package/dist/types/core/build/static-build.d.ts +15 -0
- package/dist/types/core/config.d.ts +5 -0
- package/dist/types/core/dev/index.d.ts +13 -12
- package/dist/types/core/ssr/index.d.ts +10 -1
- package/dist/types/vite-plugin-astro/compile.d.ts +5 -0
- package/dist/types/vite-plugin-astro/index.d.ts +1 -1
- package/dist/types/vite-plugin-astro/query.d.ts +12 -0
- package/dist/types/vite-plugin-build-css/index.d.ts +2 -5
- package/dist/types/vite-plugin-build-html/index.d.ts +2 -5
- package/dist/vite-plugin-astro/compile.js +90 -0
- package/dist/vite-plugin-astro/index.js +51 -65
- package/dist/vite-plugin-astro/query.js +24 -0
- package/dist/vite-plugin-astro/styles.js +1 -1
- package/dist/vite-plugin-astro-postprocess/index.js +1 -1
- package/dist/vite-plugin-build-css/index.js +26 -20
- package/dist/vite-plugin-build-css/resolve.js +1 -1
- package/dist/vite-plugin-build-html/add-rollup-input.js +1 -1
- package/dist/vite-plugin-build-html/extract-assets.js +1 -1
- package/dist/vite-plugin-build-html/index.js +12 -13
- package/dist/vite-plugin-build-html/util.js +1 -1
- package/dist/vite-plugin-config-alias/index.js +1 -1
- package/dist/vite-plugin-fetch/index.js +1 -1
- package/dist/vite-plugin-jsx/index.js +1 -1
- package/dist/vite-plugin-markdown/index.js +1 -1
- package/package.json +13 -13
|
@@ -23,4 +23,4 @@ function serializeListValue(value) {
|
|
|
23
23
|
export {
|
|
24
24
|
serializeListValue
|
|
25
25
|
};
|
|
26
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL3J1bnRpbWUvc2VydmVyL3V0aWwudHMiXSwKICAibWFwcGluZ3MiOiAiQUFBTyw0QkFBNEIsT0FBWTtBQUM5QyxRQUFNLE9BQTRCO0FBRWxDLE9BQUs7QUFFTCxTQUFPLE9BQU8sS0FBSyxNQUFNLEtBQUs7QUFFOUIsZ0JBQWMsTUFBVztBQUV4QixRQUFJLFFBQVEsT0FBTyxLQUFLLFlBQVk7QUFBWSxXQUFLLFFBQVE7QUFBQSxhQUVwRCxTQUFTLE9BQU87QUFDeEIsYUFBTyxLQUFLLE1BQU0sUUFBUSxDQUFDLFNBQVM7QUFDbkMsWUFBSSxLQUFLO0FBQU8sZUFBSztBQUFBO0FBQUEsU0FHbEI7QUFFSixhQUFPLFFBQVEsT0FBTyxLQUFLLE9BQU8sTUFBTTtBQUd4QyxVQUFJLE1BQU07QUFDVCxhQUFLLE1BQU0sT0FBTyxRQUFRLENBQUMsU0FBaUI7QUFDM0MsZUFBSyxRQUFRO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTsiLAogICJuYW1lcyI6IFtdCn0K
|
|
@@ -334,10 +334,12 @@ export interface SSRElement {
|
|
|
334
334
|
export interface SSRMetadata {
|
|
335
335
|
renderers: Renderer[];
|
|
336
336
|
pathname: string;
|
|
337
|
+
experimentalStaticBuild: boolean;
|
|
337
338
|
}
|
|
338
339
|
export interface SSRResult {
|
|
339
340
|
styles: Set<SSRElement>;
|
|
340
341
|
scripts: Set<SSRElement>;
|
|
342
|
+
links: Set<SSRElement>;
|
|
341
343
|
createAstro(Astro: AstroGlobalPartial, props: Record<string, any>, slots: Record<string, any> | null): AstroGlobal;
|
|
342
344
|
_metadata: SSRMetadata;
|
|
343
345
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/** The primary CLI action */
|
|
2
|
-
export declare function cli(args: string[]): Promise<
|
|
2
|
+
export declare function cli(args: string[]): Promise<undefined>;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { RenderedChunk } from 'rollup';
|
|
2
|
+
export interface BuildInternals {
|
|
3
|
+
pureCSSChunks: Set<RenderedChunk>;
|
|
4
|
+
chunkToReferenceIdMap: Map<string, string>;
|
|
5
|
+
astroStyleMap: Map<string, string>;
|
|
6
|
+
astroPageStyleMap: Map<string, string>;
|
|
7
|
+
facadeIdToAssetsMap: Map<string, string[]>;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Creates internal maps used to coordinate the CSS and HTML plugins.
|
|
11
|
+
* @returns {BuildInternals}
|
|
12
|
+
*/
|
|
13
|
+
export declare function createBuildInternals(): BuildInternals;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { AstroConfig, ManifestData, RouteCache } from '../../@types/astro';
|
|
2
|
+
import type { AllPagesData } from './types';
|
|
3
|
+
import type { LogOptions } from '../logger';
|
|
4
|
+
import type { ViteDevServer } from '../vite.js';
|
|
5
|
+
export interface CollectPagesDataOptions {
|
|
6
|
+
astroConfig: AstroConfig;
|
|
7
|
+
logging: LogOptions;
|
|
8
|
+
manifest: ManifestData;
|
|
9
|
+
origin: string;
|
|
10
|
+
routeCache: RouteCache;
|
|
11
|
+
viteServer: ViteDevServer;
|
|
12
|
+
}
|
|
13
|
+
export interface CollectPagesDataResult {
|
|
14
|
+
assets: Record<string, string>;
|
|
15
|
+
allPages: AllPagesData;
|
|
16
|
+
}
|
|
17
|
+
export declare function collectPagesData(opts: CollectPagesDataOptions): Promise<CollectPagesDataResult>;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { ViteDevServer } from '../vite.js';
|
|
2
|
+
import type { AstroConfig, RouteCache } from '../../@types/astro';
|
|
3
|
+
import type { AllPagesData } from './types';
|
|
4
|
+
import type { LogOptions } from '../logger';
|
|
5
|
+
import type { ViteConfigWithSSR } from '../create-vite.js';
|
|
6
|
+
export interface ScanBasedBuildOptions {
|
|
7
|
+
allPages: AllPagesData;
|
|
8
|
+
astroConfig: AstroConfig;
|
|
9
|
+
logging: LogOptions;
|
|
10
|
+
origin: string;
|
|
11
|
+
pageNames: string[];
|
|
12
|
+
routeCache: RouteCache;
|
|
13
|
+
viteConfig: ViteConfigWithSSR;
|
|
14
|
+
viteServer: ViteDevServer;
|
|
15
|
+
}
|
|
16
|
+
export declare function build(opts: ScanBasedBuildOptions): Promise<import("rollup").RollupOutput | import("rollup").RollupOutput[] | import("rollup").RollupWatcher>;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { Plugin as VitePlugin } from '../vite';
|
|
2
|
+
import type { AstroConfig, RouteCache } from '../../@types/astro';
|
|
3
|
+
import type { AllPagesData } from './types';
|
|
4
|
+
import type { LogOptions } from '../logger';
|
|
5
|
+
import type { ViteConfigWithSSR } from '../create-vite';
|
|
6
|
+
export interface StaticBuildOptions {
|
|
7
|
+
allPages: AllPagesData;
|
|
8
|
+
astroConfig: AstroConfig;
|
|
9
|
+
logging: LogOptions;
|
|
10
|
+
origin: string;
|
|
11
|
+
routeCache: RouteCache;
|
|
12
|
+
viteConfig: ViteConfigWithSSR;
|
|
13
|
+
}
|
|
14
|
+
export declare function staticBuild(opts: StaticBuildOptions): Promise<void>;
|
|
15
|
+
export declare function vitePluginNewBuild(): VitePlugin;
|
|
@@ -25,14 +25,17 @@ export declare const AstroConfigSchema: z.ZodObject<{
|
|
|
25
25
|
site: z.ZodOptional<z.ZodString>;
|
|
26
26
|
sitemap: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
27
27
|
pageUrlFormat: z.ZodDefault<z.ZodOptional<z.ZodUnion<[z.ZodLiteral<"file">, z.ZodLiteral<"directory">]>>>;
|
|
28
|
+
experimentalStaticBuild: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
28
29
|
}, "strip", z.ZodTypeAny, {
|
|
29
30
|
site?: string | undefined;
|
|
30
31
|
sitemap: boolean;
|
|
31
32
|
pageUrlFormat: "file" | "directory";
|
|
33
|
+
experimentalStaticBuild: boolean;
|
|
32
34
|
}, {
|
|
33
35
|
site?: string | undefined;
|
|
34
36
|
sitemap?: boolean | undefined;
|
|
35
37
|
pageUrlFormat?: "file" | "directory" | undefined;
|
|
38
|
+
experimentalStaticBuild?: boolean | undefined;
|
|
36
39
|
}>>>;
|
|
37
40
|
devOptions: z.ZodDefault<z.ZodOptional<z.ZodObject<{
|
|
38
41
|
hostname: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
@@ -66,6 +69,7 @@ export declare const AstroConfigSchema: z.ZodObject<{
|
|
|
66
69
|
site?: string | undefined;
|
|
67
70
|
sitemap: boolean;
|
|
68
71
|
pageUrlFormat: "file" | "directory";
|
|
72
|
+
experimentalStaticBuild: boolean;
|
|
69
73
|
};
|
|
70
74
|
devOptions: {
|
|
71
75
|
hostname: string;
|
|
@@ -89,6 +93,7 @@ export declare const AstroConfigSchema: z.ZodObject<{
|
|
|
89
93
|
site?: string | undefined;
|
|
90
94
|
sitemap?: boolean | undefined;
|
|
91
95
|
pageUrlFormat?: "file" | "directory" | undefined;
|
|
96
|
+
experimentalStaticBuild?: boolean | undefined;
|
|
92
97
|
} | undefined;
|
|
93
98
|
devOptions?: {
|
|
94
99
|
hostname?: string | undefined;
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import type http from 'http';
|
|
3
|
-
import type { AstroConfig } from '../../@types/astro';
|
|
3
|
+
import type { AstroConfig, ManifestData, RouteCache, RouteData } from '../../@types/astro';
|
|
4
4
|
import type { LogOptions } from '../logger';
|
|
5
5
|
import type { HmrContext, ModuleNode } from '../vite';
|
|
6
6
|
import connect from 'connect';
|
|
7
|
+
import vite from '../vite.js';
|
|
7
8
|
export interface DevOptions {
|
|
8
9
|
logging: LogOptions;
|
|
9
10
|
}
|
|
@@ -18,19 +19,19 @@ export default function dev(config: AstroConfig, options?: DevOptions): Promise<
|
|
|
18
19
|
/** Dev server */
|
|
19
20
|
export declare class AstroDevServer {
|
|
20
21
|
app: connect.Server;
|
|
21
|
-
|
|
22
|
+
config: AstroConfig;
|
|
23
|
+
devRoot: string;
|
|
22
24
|
hostname: string;
|
|
25
|
+
httpServer: http.Server | undefined;
|
|
26
|
+
logging: LogOptions;
|
|
27
|
+
manifest: ManifestData;
|
|
28
|
+
mostRecentRoute?: RouteData;
|
|
29
|
+
origin: string;
|
|
23
30
|
port: number;
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
private site;
|
|
29
|
-
private devRoot;
|
|
30
|
-
private url;
|
|
31
|
-
private origin;
|
|
32
|
-
private routeCache;
|
|
33
|
-
private viteServer;
|
|
31
|
+
routeCache: RouteCache;
|
|
32
|
+
site: URL | undefined;
|
|
33
|
+
url: URL;
|
|
34
|
+
viteServer: vite.ViteDevServer | undefined;
|
|
34
35
|
constructor(config: AstroConfig, options: DevOptions);
|
|
35
36
|
start(): Promise<void>;
|
|
36
37
|
stop(): Promise<void>;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type vite from '../vite';
|
|
2
|
-
import type { AstroConfig, ComponentInstance, Renderer, RouteCache, RouteData, RuntimeMode } from '../../@types/astro';
|
|
2
|
+
import type { AstroConfig, ComponentInstance, Params, Props, Renderer, RouteCache, RouteData, RuntimeMode } from '../../@types/astro';
|
|
3
3
|
import type { LogOptions } from '../logger';
|
|
4
|
+
import type { AstroComponentFactory } from '../../runtime/server/index';
|
|
4
5
|
interface SSROptions {
|
|
5
6
|
/** an instance of the AstroConfig */
|
|
6
7
|
astroConfig: AstroConfig;
|
|
@@ -23,6 +24,14 @@ interface SSROptions {
|
|
|
23
24
|
}
|
|
24
25
|
export declare type ComponentPreload = [Renderer[], ComponentInstance];
|
|
25
26
|
export declare function preload({ astroConfig, filePath, viteServer }: SSROptions): Promise<ComponentPreload>;
|
|
27
|
+
export declare function renderComponent(renderers: Renderer[], Component: AstroComponentFactory, astroConfig: AstroConfig, pathname: string, origin: string, params: Params, pageProps: Props, links?: string[]): Promise<string>;
|
|
28
|
+
export declare function getParamsAndProps({ route, routeCache, logging, pathname, mod, }: {
|
|
29
|
+
route: RouteData | undefined;
|
|
30
|
+
routeCache: RouteCache;
|
|
31
|
+
pathname: string;
|
|
32
|
+
mod: ComponentInstance;
|
|
33
|
+
logging: LogOptions;
|
|
34
|
+
}): Promise<[Params, Props]>;
|
|
26
35
|
/** use Vite to SSR */
|
|
27
36
|
export declare function render(renderers: Renderer[], mod: ComponentInstance, ssrOpts: SSROptions): Promise<string>;
|
|
28
37
|
export declare function ssr(ssrOpts: SSROptions): Promise<string>;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { AstroConfig } from '../@types/astro';
|
|
2
|
+
import type { TransformResult } from '@astrojs/compiler';
|
|
3
|
+
import type { TransformHook } from './styles';
|
|
4
|
+
export declare function invalidateCompilation(config: AstroConfig, filename: string): void;
|
|
5
|
+
export declare function cachedCompilation(config: AstroConfig, filename: string, source: string | null, viteTransform: TransformHook, opts: boolean | undefined): Promise<TransformResult>;
|
|
@@ -6,5 +6,5 @@ interface AstroPluginOptions {
|
|
|
6
6
|
devServer?: AstroDevServer;
|
|
7
7
|
}
|
|
8
8
|
/** Transform .astro files for Vite */
|
|
9
|
-
export default function astro({ config
|
|
9
|
+
export default function astro({ config }: AstroPluginOptions): vite.Plugin;
|
|
10
10
|
export {};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export interface AstroQuery {
|
|
2
|
+
astro?: boolean;
|
|
3
|
+
src?: boolean;
|
|
4
|
+
type?: 'script' | 'template' | 'style' | 'custom';
|
|
5
|
+
index?: number;
|
|
6
|
+
lang?: string;
|
|
7
|
+
raw?: boolean;
|
|
8
|
+
}
|
|
9
|
+
export declare function parseAstroRequest(id: string): {
|
|
10
|
+
filename: string;
|
|
11
|
+
query: AstroQuery;
|
|
12
|
+
};
|
|
@@ -1,13 +1,10 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { BuildInternals } from '../core/build/internal';
|
|
2
2
|
import { Plugin as VitePlugin } from '../core/vite';
|
|
3
3
|
export declare function getAstroPageStyleId(pathname: string): string;
|
|
4
4
|
export declare function getAstroStyleId(pathname: string): string;
|
|
5
5
|
export declare function getAstroStylePathFromId(id: string): string;
|
|
6
6
|
interface PluginOptions {
|
|
7
|
-
|
|
8
|
-
astroPageStyleMap: Map<string, string>;
|
|
9
|
-
chunkToReferenceIdMap: Map<string, string>;
|
|
10
|
-
pureCSSChunks: Set<RenderedChunk>;
|
|
7
|
+
internals: BuildInternals;
|
|
11
8
|
}
|
|
12
9
|
export declare function rollupPluginAstroBuildCSS(options: PluginOptions): VitePlugin;
|
|
13
10
|
export {};
|
|
@@ -1,17 +1,14 @@
|
|
|
1
1
|
import type { AstroConfig, RouteCache } from '../@types/astro';
|
|
2
2
|
import type { LogOptions } from '../core/logger';
|
|
3
3
|
import type { ViteDevServer, Plugin as VitePlugin } from '../core/vite';
|
|
4
|
-
import type { RenderedChunk } from 'rollup';
|
|
5
4
|
import type { AllPagesData } from '../core/build/types';
|
|
5
|
+
import type { BuildInternals } from '../core/build/internal';
|
|
6
6
|
interface PluginOptions {
|
|
7
7
|
astroConfig: AstroConfig;
|
|
8
|
-
|
|
9
|
-
astroPageStyleMap: Map<string, string>;
|
|
10
|
-
chunkToReferenceIdMap: Map<string, string>;
|
|
8
|
+
internals: BuildInternals;
|
|
11
9
|
logging: LogOptions;
|
|
12
10
|
allPages: AllPagesData;
|
|
13
11
|
pageNames: string[];
|
|
14
|
-
pureCSSChunks: Set<RenderedChunk>;
|
|
15
12
|
origin: string;
|
|
16
13
|
routeCache: RouteCache;
|
|
17
14
|
viteServer: ViteDevServer;
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import fs from "fs";
|
|
2
|
+
import { fileURLToPath } from "url";
|
|
3
|
+
import { transform } from "@astrojs/compiler";
|
|
4
|
+
import { transformWithVite } from "./styles.js";
|
|
5
|
+
const configCache = new WeakMap();
|
|
6
|
+
function isSSR(options) {
|
|
7
|
+
if (options === void 0) {
|
|
8
|
+
return false;
|
|
9
|
+
}
|
|
10
|
+
if (typeof options === "boolean") {
|
|
11
|
+
return options;
|
|
12
|
+
}
|
|
13
|
+
if (typeof options == "object") {
|
|
14
|
+
return !!options.ssr;
|
|
15
|
+
}
|
|
16
|
+
return false;
|
|
17
|
+
}
|
|
18
|
+
async function compile(config, filename, source, viteTransform, opts) {
|
|
19
|
+
const normalizedID = fileURLToPath(new URL(`file://${filename}`));
|
|
20
|
+
const isPage = normalizedID.startsWith(fileURLToPath(config.pages)) || normalizedID.startsWith(fileURLToPath(config.layouts));
|
|
21
|
+
let cssTransformError;
|
|
22
|
+
const transformResult = await transform(source, {
|
|
23
|
+
as: isPage ? "document" : "fragment",
|
|
24
|
+
projectRoot: config.projectRoot.toString(),
|
|
25
|
+
site: config.buildOptions.site,
|
|
26
|
+
sourcefile: filename,
|
|
27
|
+
sourcemap: "both",
|
|
28
|
+
internalURL: "astro/internal",
|
|
29
|
+
experimentalStaticExtraction: config.buildOptions.experimentalStaticBuild,
|
|
30
|
+
preprocessStyle: async (value, attrs) => {
|
|
31
|
+
const lang = `.${(attrs == null ? void 0 : attrs.lang) || "css"}`.toLowerCase();
|
|
32
|
+
try {
|
|
33
|
+
const result = await transformWithVite({
|
|
34
|
+
value,
|
|
35
|
+
lang,
|
|
36
|
+
id: filename,
|
|
37
|
+
transformHook: viteTransform,
|
|
38
|
+
ssr: isSSR(opts)
|
|
39
|
+
});
|
|
40
|
+
let map;
|
|
41
|
+
if (!result)
|
|
42
|
+
return null;
|
|
43
|
+
if (result.map) {
|
|
44
|
+
if (typeof result.map === "string") {
|
|
45
|
+
map = result.map;
|
|
46
|
+
} else if (result.map.mappings) {
|
|
47
|
+
map = result.map.toString();
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
return { code: result.code, map };
|
|
51
|
+
} catch (err) {
|
|
52
|
+
cssTransformError = err;
|
|
53
|
+
return null;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
if (cssTransformError)
|
|
58
|
+
throw cssTransformError;
|
|
59
|
+
return transformResult;
|
|
60
|
+
}
|
|
61
|
+
function invalidateCompilation(config, filename) {
|
|
62
|
+
if (configCache.has(config)) {
|
|
63
|
+
const cache = configCache.get(config);
|
|
64
|
+
cache.delete(filename);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
async function cachedCompilation(config, filename, source, viteTransform, opts) {
|
|
68
|
+
let cache;
|
|
69
|
+
if (!configCache.has(config)) {
|
|
70
|
+
cache = new Map();
|
|
71
|
+
configCache.set(config, cache);
|
|
72
|
+
} else {
|
|
73
|
+
cache = configCache.get(config);
|
|
74
|
+
}
|
|
75
|
+
if (cache.has(filename)) {
|
|
76
|
+
return cache.get(filename);
|
|
77
|
+
}
|
|
78
|
+
if (source === null) {
|
|
79
|
+
const fileUrl = new URL(`file://${filename}`);
|
|
80
|
+
source = await fs.promises.readFile(fileUrl, "utf-8");
|
|
81
|
+
}
|
|
82
|
+
const transformResult = await compile(config, filename, source, viteTransform, opts);
|
|
83
|
+
cache.set(filename, transformResult);
|
|
84
|
+
return transformResult;
|
|
85
|
+
}
|
|
86
|
+
export {
|
|
87
|
+
cachedCompilation,
|
|
88
|
+
invalidateCompilation
|
|
89
|
+
};
|
|
90
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL3ZpdGUtcGx1Z2luLWFzdHJvL2NvbXBpbGUudHMiXSwKICAibWFwcGluZ3MiOiAiQUFLQTtBQUNBO0FBQ0E7QUFDQTtBQUlBLE1BQU0sY0FBYyxJQUFJO0FBR3hCLGVBQWUsU0FBMEQ7QUFDeEUsTUFBSSxZQUFZLFFBQVc7QUFDMUIsV0FBTztBQUFBO0FBRVIsTUFBSSxPQUFPLFlBQVksV0FBVztBQUNqQyxXQUFPO0FBQUE7QUFFUixNQUFJLE9BQU8sV0FBVyxVQUFVO0FBQy9CLFdBQU8sQ0FBQyxDQUFDLFFBQVE7QUFBQTtBQUVsQixTQUFPO0FBQUE7QUFHUix1QkFBdUIsUUFBcUIsVUFBa0IsUUFBZ0IsZUFBOEIsTUFBMkI7QUFHdEksUUFBTSxlQUFlLGNBQWMsSUFBSSxJQUFJLFVBQVU7QUFDckQsUUFBTSxTQUFTLGFBQWEsV0FBVyxjQUFjLE9BQU8sV0FBVyxhQUFhLFdBQVcsY0FBYyxPQUFPO0FBRXBILE1BQUk7QUFLSixRQUFNLGtCQUFrQixNQUFNLFVBQVUsUUFBUTtBQUFBLElBQy9DLElBQUksU0FBUyxhQUFhO0FBQUEsSUFDMUIsYUFBYSxPQUFPLFlBQVk7QUFBQSxJQUNoQyxNQUFNLE9BQU8sYUFBYTtBQUFBLElBQzFCLFlBQVk7QUFBQSxJQUNaLFdBQVc7QUFBQSxJQUNYLGFBQWE7QUFBQSxJQUNiLDhCQUE4QixPQUFPLGFBQWE7QUFBQSxJQUVsRCxpQkFBaUIsT0FBTyxPQUFlLFVBQWtDO0FBQ3hFLFlBQU0sT0FBTyxJQUFJLGdDQUFPLFNBQVEsUUFBUTtBQUN4QyxVQUFJO0FBQ0gsY0FBTSxTQUFTLE1BQU0sa0JBQWtCO0FBQUEsVUFDdEM7QUFBQSxVQUNBO0FBQUEsVUFDQSxJQUFJO0FBQUEsVUFDSixlQUFlO0FBQUEsVUFDZixLQUFLLE1BQU07QUFBQTtBQUdaLFlBQUk7QUFDSixZQUFJLENBQUM7QUFBUSxpQkFBTztBQUNwQixZQUFJLE9BQU8sS0FBSztBQUNmLGNBQUksT0FBTyxPQUFPLFFBQVEsVUFBVTtBQUNuQyxrQkFBTSxPQUFPO0FBQUEscUJBQ0gsT0FBTyxJQUFJLFVBQVU7QUFDL0Isa0JBQU0sT0FBTyxJQUFJO0FBQUE7QUFBQTtBQUduQixlQUFPLEVBQUUsTUFBTSxPQUFPLE1BQU07QUFBQSxlQUNwQixLQUFQO0FBRUQsNEJBQW9CO0FBQ3BCLGVBQU87QUFBQTtBQUFBO0FBQUE7QUFNVixNQUFJO0FBQW1CLFVBQU07QUFFN0IsU0FBTztBQUFBO0FBR0QsK0JBQStCLFFBQXFCLFVBQWtCO0FBQzVFLE1BQUksWUFBWSxJQUFJLFNBQVM7QUFDNUIsVUFBTSxRQUFRLFlBQVksSUFBSTtBQUM5QixVQUFNLE9BQU87QUFBQTtBQUFBO0FBSWYsaUNBQXdDLFFBQXFCLFVBQWtCLFFBQXVCLGVBQThCLE1BQTJCO0FBQzlKLE1BQUk7QUFDSixNQUFJLENBQUMsWUFBWSxJQUFJLFNBQVM7QUFDN0IsWUFBUSxJQUFJO0FBQ1osZ0JBQVksSUFBSSxRQUFRO0FBQUEsU0FDbEI7QUFDTixZQUFRLFlBQVksSUFBSTtBQUFBO0FBRXpCLE1BQUksTUFBTSxJQUFJLFdBQVc7QUFDeEIsV0FBTyxNQUFNLElBQUk7QUFBQTtBQUdsQixNQUFJLFdBQVcsTUFBTTtBQUNwQixVQUFNLFVBQVUsSUFBSSxJQUFJLFVBQVU7QUFDbEMsYUFBUyxNQUFNLEdBQUcsU0FBUyxTQUFTLFNBQVM7QUFBQTtBQUU5QyxRQUFNLGtCQUFrQixNQUFNLFFBQVEsUUFBUSxVQUFVLFFBQVEsZUFBZTtBQUMvRSxRQUFNLElBQUksVUFBVTtBQUNwQixTQUFPO0FBQUE7IiwKICAibmFtZXMiOiBbXQp9Cg==
|
|
@@ -1,22 +1,10 @@
|
|
|
1
1
|
import esbuild from "esbuild";
|
|
2
|
-
import fs from "fs";
|
|
3
2
|
import { fileURLToPath } from "url";
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
3
|
+
import { getViteTransform } from "./styles.js";
|
|
4
|
+
import { parseAstroRequest } from "./query.js";
|
|
5
|
+
import { cachedCompilation, invalidateCompilation } from "./compile.js";
|
|
6
6
|
const FRONTMATTER_PARSE_REGEXP = /^\-\-\-(.*)^\-\-\-/ms;
|
|
7
|
-
function
|
|
8
|
-
if (options === void 0) {
|
|
9
|
-
return false;
|
|
10
|
-
}
|
|
11
|
-
if (typeof options === "boolean") {
|
|
12
|
-
return options;
|
|
13
|
-
}
|
|
14
|
-
if (typeof options == "object") {
|
|
15
|
-
return !!options.ssr;
|
|
16
|
-
}
|
|
17
|
-
return false;
|
|
18
|
-
}
|
|
19
|
-
function astro({ config, devServer }) {
|
|
7
|
+
function astro({ config }) {
|
|
20
8
|
let viteTransform;
|
|
21
9
|
return {
|
|
22
10
|
name: "@astrojs/vite-plugin-astro",
|
|
@@ -24,47 +12,42 @@ function astro({ config, devServer }) {
|
|
|
24
12
|
configResolved(resolvedConfig) {
|
|
25
13
|
viteTransform = getViteTransform(resolvedConfig);
|
|
26
14
|
},
|
|
15
|
+
async resolveId(id) {
|
|
16
|
+
if (parseAstroRequest(id).query.astro) {
|
|
17
|
+
return id;
|
|
18
|
+
}
|
|
19
|
+
},
|
|
27
20
|
async load(id, opts) {
|
|
21
|
+
let { filename, query } = parseAstroRequest(id);
|
|
22
|
+
if (query.astro) {
|
|
23
|
+
if (query.type === "style") {
|
|
24
|
+
if (filename.startsWith("/") && !filename.startsWith(config.projectRoot.pathname)) {
|
|
25
|
+
filename = new URL("." + filename, config.projectRoot).pathname;
|
|
26
|
+
}
|
|
27
|
+
const transformResult = await cachedCompilation(config, filename, null, viteTransform, opts);
|
|
28
|
+
if (typeof query.index === "undefined") {
|
|
29
|
+
throw new Error(`Requests for Astro CSS must include an index.`);
|
|
30
|
+
}
|
|
31
|
+
const csses = transformResult.css;
|
|
32
|
+
const code = csses[query.index];
|
|
33
|
+
return {
|
|
34
|
+
code
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
return null;
|
|
39
|
+
},
|
|
40
|
+
async transform(source, id, opts) {
|
|
28
41
|
if (!id.endsWith(".astro")) {
|
|
29
|
-
return
|
|
42
|
+
return;
|
|
30
43
|
}
|
|
31
|
-
const normalizedID = fileURLToPath(new URL(`file://${id}`));
|
|
32
|
-
const isPage = normalizedID.startsWith(fileURLToPath(config.pages)) || normalizedID.startsWith(fileURLToPath(config.layouts));
|
|
33
|
-
let source = await fs.promises.readFile(id, "utf8");
|
|
34
|
-
let tsResult;
|
|
35
|
-
let cssTransformError;
|
|
36
44
|
try {
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
sourcefile: id
|
|
42
|
-
sourcemap: "both",
|
|
43
|
-
internalURL: "astro/internal",
|
|
44
|
-
preprocessStyle: async (value, attrs) => {
|
|
45
|
-
const lang = `.${(attrs == null ? void 0 : attrs.lang) || "css"}`.toLowerCase();
|
|
46
|
-
try {
|
|
47
|
-
const result = await transformWithVite({ value, lang, id, transformHook: viteTransform, ssr: isSSR(opts) });
|
|
48
|
-
let map2;
|
|
49
|
-
if (!result)
|
|
50
|
-
return null;
|
|
51
|
-
if (result.map) {
|
|
52
|
-
if (typeof result.map === "string") {
|
|
53
|
-
map2 = result.map;
|
|
54
|
-
} else if (result.map.mappings) {
|
|
55
|
-
map2 = result.map.toString();
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
return { code: result.code, map: map2 };
|
|
59
|
-
} catch (err) {
|
|
60
|
-
cssTransformError = err;
|
|
61
|
-
return null;
|
|
62
|
-
}
|
|
63
|
-
}
|
|
45
|
+
const transformResult = await cachedCompilation(config, id, source, viteTransform, opts);
|
|
46
|
+
const { code, map } = await esbuild.transform(transformResult.code, {
|
|
47
|
+
loader: "ts",
|
|
48
|
+
sourcemap: "external",
|
|
49
|
+
sourcefile: id
|
|
64
50
|
});
|
|
65
|
-
if (cssTransformError)
|
|
66
|
-
throw cssTransformError;
|
|
67
|
-
const { code, map } = await esbuild.transform(tsResult.code, { loader: "ts", sourcemap: "external", sourcefile: id });
|
|
68
51
|
return {
|
|
69
52
|
code,
|
|
70
53
|
map
|
|
@@ -86,29 +69,32 @@ function astro({ config, devServer }) {
|
|
|
86
69
|
labels: "compiler",
|
|
87
70
|
title: "\u{1F41B} BUG: `@astrojs/compiler` panic",
|
|
88
71
|
body: `### Describe the Bug
|
|
89
|
-
|
|
90
|
-
\`@astrojs/compiler\` encountered an unrecoverable error when compiling the following file.
|
|
91
|
-
|
|
92
|
-
**${id.replace(fileURLToPath(config.projectRoot), "")}**
|
|
93
|
-
\`\`\`astro
|
|
94
|
-
${source}
|
|
95
|
-
\`\`\`
|
|
96
|
-
`
|
|
72
|
+
|
|
73
|
+
\`@astrojs/compiler\` encountered an unrecoverable error when compiling the following file.
|
|
74
|
+
|
|
75
|
+
**${id.replace(fileURLToPath(config.projectRoot), "")}**
|
|
76
|
+
\`\`\`astro
|
|
77
|
+
${source}
|
|
78
|
+
\`\`\`
|
|
79
|
+
`
|
|
97
80
|
});
|
|
98
81
|
err.url = `https://github.com/withastro/astro/issues/new?${search.toString()}`;
|
|
99
82
|
err.message = `Error: Uh oh, the Astro compiler encountered an unrecoverable error!
|
|
100
|
-
|
|
101
|
-
Please open
|
|
102
|
-
a GitHub issue using the link below:
|
|
103
|
-
${err.url}`;
|
|
83
|
+
|
|
84
|
+
Please open
|
|
85
|
+
a GitHub issue using the link below:
|
|
86
|
+
${err.url}`;
|
|
104
87
|
err.stack = ` at ${id}`;
|
|
105
88
|
}
|
|
106
89
|
throw err;
|
|
107
90
|
}
|
|
91
|
+
},
|
|
92
|
+
async handleHotUpdate(context) {
|
|
93
|
+
invalidateCompilation(config, context.file);
|
|
108
94
|
}
|
|
109
95
|
};
|
|
110
96
|
}
|
|
111
97
|
export {
|
|
112
98
|
astro as default
|
|
113
99
|
};
|
|
114
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
100
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL3ZpdGUtcGx1Z2luLWFzdHJvL2luZGV4LnRzIl0sCiAgIm1hcHBpbmdzIjogIkFBR0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUVBLE1BQU0sMkJBQTJCO0FBT2xCLGVBQWUsRUFBRSxVQUEyQztBQUMxRSxNQUFJO0FBQ0osU0FBTztBQUFBLElBQ04sTUFBTTtBQUFBLElBQ04sU0FBUztBQUFBLElBQ1QsZUFBZSxnQkFBZ0I7QUFDOUIsc0JBQWdCLGlCQUFpQjtBQUFBO0FBQUEsVUFHNUIsVUFBVSxJQUFJO0FBRW5CLFVBQUksa0JBQWtCLElBQUksTUFBTSxPQUFPO0FBQ3RDLGVBQU87QUFBQTtBQUFBO0FBQUEsVUFHSCxLQUFLLElBQUksTUFBTTtBQUNwQixVQUFJLEVBQUUsVUFBVSxVQUFVLGtCQUFrQjtBQUM1QyxVQUFJLE1BQU0sT0FBTztBQUNoQixZQUFJLE1BQU0sU0FBUyxTQUFTO0FBQzNCLGNBQUksU0FBUyxXQUFXLFFBQVEsQ0FBQyxTQUFTLFdBQVcsT0FBTyxZQUFZLFdBQVc7QUFDbEYsdUJBQVcsSUFBSSxJQUFJLE1BQU0sVUFBVSxPQUFPLGFBQWE7QUFBQTtBQUV4RCxnQkFBTSxrQkFBa0IsTUFBTSxrQkFBa0IsUUFBUSxVQUFVLE1BQU0sZUFBZTtBQUV2RixjQUFJLE9BQU8sTUFBTSxVQUFVLGFBQWE7QUFDdkMsa0JBQU0sSUFBSSxNQUFNO0FBQUE7QUFHakIsZ0JBQU0sUUFBUSxnQkFBZ0I7QUFDOUIsZ0JBQU0sT0FBTyxNQUFNLE1BQU07QUFFekIsaUJBQU87QUFBQSxZQUNOO0FBQUE7QUFBQTtBQUFBO0FBS0gsYUFBTztBQUFBO0FBQUEsVUFFRixVQUFVLFFBQVEsSUFBSSxNQUFNO0FBQ2pDLFVBQUksQ0FBQyxHQUFHLFNBQVMsV0FBVztBQUMzQjtBQUFBO0FBR0QsVUFBSTtBQUNILGNBQU0sa0JBQWtCLE1BQU0sa0JBQWtCLFFBQVEsSUFBSSxRQUFRLGVBQWU7QUFJbkYsY0FBTSxFQUFFLE1BQU0sUUFBUSxNQUFNLFFBQVEsVUFBVSxnQkFBZ0IsTUFBTTtBQUFBLFVBQ25FLFFBQVE7QUFBQSxVQUNSLFdBQVc7QUFBQSxVQUNYLFlBQVk7QUFBQTtBQUdiLGVBQU87QUFBQSxVQUNOO0FBQUEsVUFDQTtBQUFBO0FBQUEsZUFFTyxLQUFQO0FBU0QsY0FBTSxxQkFBcUIseUJBQXlCLEtBQUs7QUFDekQsWUFBSSxvQkFBb0I7QUFDdkIsY0FBSTtBQUNILGtCQUFNLFFBQVEsVUFBVSxtQkFBbUIsSUFBSSxFQUFFLFFBQVEsTUFBTSxXQUFXLE9BQU8sWUFBWTtBQUFBLG1CQUNyRixnQkFBUDtBQUdELGdCQUFJLGtCQUFrQixlQUFlLFNBQVM7QUFDN0MsNkJBQWUsVUFBVSxlQUFlLFFBQVEsUUFBUSxlQUFlO0FBQUE7QUFFeEUsa0JBQU07QUFBQTtBQUFBO0FBS1IsWUFBSSxJQUFJLE1BQU0sU0FBUyxrQkFBa0I7QUFDeEMsZ0JBQU0sU0FBUyxJQUFJLGdCQUFnQjtBQUFBLFlBQ2xDLFFBQVE7QUFBQSxZQUNSLE9BQU87QUFBQSxZQUNQLE1BQU07QUFBQTtBQUFBO0FBQUE7QUFBQSxRQUlKLEdBQUcsUUFBUSxjQUFjLE9BQU8sY0FBYztBQUFBO0FBQUEsTUFFaEQ7QUFBQTtBQUFBO0FBQUE7QUFJRCxjQUFJLE1BQU0saURBQWlELE9BQU87QUFDbEUsY0FBSSxVQUFVO0FBQUE7QUFBQTtBQUFBO0FBQUEsTUFJYixJQUFJO0FBRUwsY0FBSSxRQUFRLFVBQVU7QUFBQTtBQUd2QixjQUFNO0FBQUE7QUFBQTtBQUFBLFVBR0YsZ0JBQWdCLFNBQVM7QUFFOUIsNEJBQXNCLFFBQVEsUUFBUTtBQUFBO0FBQUE7QUFBQTsiLAogICJuYW1lcyI6IFtdCn0K
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
function parseAstroRequest(id) {
|
|
2
|
+
const [filename, rawQuery] = id.split(`?`, 2);
|
|
3
|
+
const query = Object.fromEntries(new URLSearchParams(rawQuery).entries());
|
|
4
|
+
if (query.astro != null) {
|
|
5
|
+
query.astro = true;
|
|
6
|
+
}
|
|
7
|
+
if (query.src != null) {
|
|
8
|
+
query.src = true;
|
|
9
|
+
}
|
|
10
|
+
if (query.index != null) {
|
|
11
|
+
query.index = Number(query.index);
|
|
12
|
+
}
|
|
13
|
+
if (query.raw != null) {
|
|
14
|
+
query.raw = true;
|
|
15
|
+
}
|
|
16
|
+
return {
|
|
17
|
+
filename,
|
|
18
|
+
query
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
export {
|
|
22
|
+
parseAstroRequest
|
|
23
|
+
};
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL3ZpdGUtcGx1Z2luLWFzdHJvL3F1ZXJ5LnRzIl0sCiAgIm1hcHBpbmdzIjogIkFBWU8sMkJBQTJCLElBR2hDO0FBQ0QsUUFBTSxDQUFDLFVBQVUsWUFBWSxHQUFHLE1BQU0sS0FBSztBQUMzQyxRQUFNLFFBQVEsT0FBTyxZQUFZLElBQUksZ0JBQWdCLFVBQVU7QUFDL0QsTUFBSSxNQUFNLFNBQVMsTUFBTTtBQUN4QixVQUFNLFFBQVE7QUFBQTtBQUVmLE1BQUksTUFBTSxPQUFPLE1BQU07QUFDdEIsVUFBTSxNQUFNO0FBQUE7QUFFYixNQUFJLE1BQU0sU0FBUyxNQUFNO0FBQ3hCLFVBQU0sUUFBUSxPQUFPLE1BQU07QUFBQTtBQUU1QixNQUFJLE1BQU0sT0FBTyxNQUFNO0FBQ3RCLFVBQU0sTUFBTTtBQUFBO0FBRWIsU0FBTztBQUFBLElBQ047QUFBQSxJQUNBO0FBQUE7QUFBQTsiLAogICJuYW1lcyI6IFtdCn0K
|
|
@@ -17,4 +17,4 @@ export {
|
|
|
17
17
|
getViteTransform,
|
|
18
18
|
transformWithVite
|
|
19
19
|
};
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL3ZpdGUtcGx1Z2luLWFzdHJvL3N0eWxlcy50cyJdLAogICJtYXBwaW5ncyI6ICJBQUVBO0FBS08sMEJBQTBCLFlBQWdEO0FBQ2hGLFFBQU0sZ0JBQWdCLFdBQVcsUUFBUSxLQUFLLENBQUMsRUFBRSxXQUFXLFNBQVM7QUFDckUsTUFBSSxDQUFDO0FBQWUsVUFBTSxJQUFJLE1BQU07QUFDcEMsTUFBSSxDQUFDLGNBQWM7QUFBVyxVQUFNLElBQUksTUFBTTtBQUM5QyxTQUFPLGNBQWMsVUFBVSxLQUFLO0FBQUE7QUFZckMsaUNBQXdDLEVBQUUsT0FBTyxNQUFNLGVBQWUsSUFBSSxPQUF1RTtBQUNoSixNQUFJLENBQUMsaUJBQWlCLElBQUksT0FBTztBQUNoQyxXQUFPO0FBQUE7QUFFUixTQUFPLGNBQWMsT0FBTyxLQUFLLHlCQUF5QixRQUFRO0FBQUE7IiwKICAibmFtZXMiOiBbXQp9Cg==
|
|
@@ -51,4 +51,4 @@ function astro({ config, devServer }) {
|
|
|
51
51
|
export {
|
|
52
52
|
astro as default
|
|
53
53
|
};
|
|
54
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL3ZpdGUtcGx1Z2luLWFzdHJvLXBvc3Rwcm9jZXNzL2luZGV4LnRzIl0sCiAgIm1hcHBpbmdzIjogIkFBTUE7QUFRQSxNQUFNLHdCQUF3QixJQUFJLElBQUksQ0FBQyxTQUFTO0FBRWpDLGVBQWUsRUFBRSxRQUFRLGFBQXlDO0FBQ2hGLFNBQU87QUFBQSxJQUNOLE1BQU07QUFBQSxVQUNBLFVBQVUsTUFBTSxJQUFJO0FBRXpCLFVBQUksQ0FBQyxHQUFHLFNBQVMsYUFBYSxDQUFDLEdBQUcsU0FBUyxRQUFRO0FBQ2xELGVBQU87QUFBQTtBQUtSLFVBQUksQ0FBQyxLQUFLLFNBQVMsaUJBQWlCO0FBQ25DLGVBQU87QUFBQTtBQUlSLFlBQU0sU0FBUyxNQUFNLE1BQU0sZUFBZSxNQUFNO0FBQUEsUUFDL0MsWUFBWTtBQUFBLFFBQ1osWUFBWTtBQUFBLFFBQ1osU0FBUztBQUFBLFVBQ1IsTUFBTTtBQUNMLG1CQUFPO0FBQUEsY0FDTixTQUFTO0FBQUEsZ0JBQ1IsY0FBYyxNQUErQztBQUM1RCxzQkFDQyxLQUFLLE9BQU8sU0FBUyxvQkFDckIsS0FBSyxPQUFPLE9BQU8sU0FBUyxzQkFDNUIsQ0FBQyxzQkFBc0IsSUFBSyxLQUFLLE9BQU8sT0FBTyxPQUFlLFNBQzdELEtBQUssT0FBTyxPQUFPLFNBQWlCLFNBQVMsZ0JBQzdDO0FBQ0Q7QUFBQTtBQUVELHdCQUFNLEVBQUUsVUFBVSxLQUFLO0FBQ3ZCLHNCQUFJLGNBQWMsS0FBSyxRQUFRO0FBQzlCO0FBQUE7QUFFRCx1QkFBSyxZQUFZO0FBQUEsb0JBQ2hCLE1BQU07QUFBQSxvQkFDTixRQUFRO0FBQUEsc0JBQ1AsTUFBTTtBQUFBLHNCQUNOLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixNQUFNLEVBQUUsTUFBTSxjQUFjLE1BQU0sWUFBWSxVQUFVLEVBQUUsTUFBTSxjQUFjLE1BQU07QUFBQSxzQkFDcEgsVUFBVSxFQUFFLE1BQU0sY0FBYyxNQUFNO0FBQUEsc0JBQ3RDLFVBQVU7QUFBQTtBQUFBLG9CQUVYLFdBQVcsQ0FBQyxLQUFLO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFVeEIsVUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLE1BQU07QUFDNUIsZUFBTztBQUFBO0FBR1IsYUFBTyxFQUFFLE1BQU0sT0FBTyxNQUFNLEtBQUssT0FBTztBQUFBO0FBQUE7QUFBQTsiLAogICJuYW1lcyI6IFtdCn0K
|