🎉 initiate project *astro_rewrite*
This commit is contained in:
parent
ffd4d5e86c
commit
2ba37bfbe3
8658 changed files with 2268794 additions and 2538 deletions
2
node_modules/astro/dist/assets/utils/emitAsset.d.ts
generated
vendored
Normal file
2
node_modules/astro/dist/assets/utils/emitAsset.d.ts
generated
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
import type { ImageMetadata } from '../types.js';
|
||||
export declare function emitESMImage(id: string | undefined, watchMode: boolean, fileEmitter: any): Promise<ImageMetadata | undefined>;
|
37
node_modules/astro/dist/assets/utils/emitAsset.js
generated
vendored
Normal file
37
node_modules/astro/dist/assets/utils/emitAsset.js
generated
vendored
Normal file
|
@ -0,0 +1,37 @@
|
|||
import fs from "node:fs";
|
||||
import path from "node:path";
|
||||
import { fileURLToPath, pathToFileURL } from "node:url";
|
||||
import { prependForwardSlash, slash } from "../../core/path.js";
|
||||
import { imageMetadata } from "./metadata.js";
|
||||
async function emitESMImage(id, watchMode, fileEmitter) {
|
||||
if (!id) {
|
||||
return void 0;
|
||||
}
|
||||
const url = pathToFileURL(id);
|
||||
const meta = await imageMetadata(url);
|
||||
if (!meta) {
|
||||
return void 0;
|
||||
}
|
||||
if (!watchMode) {
|
||||
const pathname = decodeURI(url.pathname);
|
||||
const filename = path.basename(pathname, path.extname(pathname) + `.${meta.format}`);
|
||||
const handle = fileEmitter({
|
||||
name: filename,
|
||||
source: await fs.promises.readFile(url),
|
||||
type: "asset"
|
||||
});
|
||||
meta.src = `__ASTRO_ASSET_IMAGE__${handle}__`;
|
||||
} else {
|
||||
url.searchParams.append("origWidth", meta.width.toString());
|
||||
url.searchParams.append("origHeight", meta.height.toString());
|
||||
url.searchParams.append("origFormat", meta.format);
|
||||
meta.src = `/@fs` + prependForwardSlash(fileURLToNormalizedPath(url));
|
||||
}
|
||||
return meta;
|
||||
}
|
||||
function fileURLToNormalizedPath(filePath) {
|
||||
return slash(fileURLToPath(filePath) + filePath.search).replace(/\\/g, "/");
|
||||
}
|
||||
export {
|
||||
emitESMImage
|
||||
};
|
12
node_modules/astro/dist/assets/utils/etag.d.ts
generated
vendored
Normal file
12
node_modules/astro/dist/assets/utils/etag.d.ts
generated
vendored
Normal file
|
@ -0,0 +1,12 @@
|
|||
/**
|
||||
* FNV-1a Hash implementation
|
||||
* @author Travis Webb (tjwebb) <me@traviswebb.com>
|
||||
*
|
||||
* Ported from https://github.com/tjwebb/fnv-plus/blob/master/index.js
|
||||
* License https://github.com/tjwebb/fnv-plus#license
|
||||
*
|
||||
* Simplified, optimized and add modified for 52 bit, which provides a larger hash space
|
||||
* and still making use of Javascript's 53-bit integer space.
|
||||
*/
|
||||
export declare const fnv1a52: (str: string) => number;
|
||||
export declare const etag: (payload: string, weak?: boolean) => string;
|
28
node_modules/astro/dist/assets/utils/etag.js
generated
vendored
Normal file
28
node_modules/astro/dist/assets/utils/etag.js
generated
vendored
Normal file
|
@ -0,0 +1,28 @@
|
|||
const fnv1a52 = (str) => {
|
||||
const len = str.length;
|
||||
let i = 0, t0 = 0, v0 = 8997, t1 = 0, v1 = 33826, t2 = 0, v2 = 40164, t3 = 0, v3 = 52210;
|
||||
while (i < len) {
|
||||
v0 ^= str.charCodeAt(i++);
|
||||
t0 = v0 * 435;
|
||||
t1 = v1 * 435;
|
||||
t2 = v2 * 435;
|
||||
t3 = v3 * 435;
|
||||
t2 += v0 << 8;
|
||||
t3 += v1 << 8;
|
||||
t1 += t0 >>> 16;
|
||||
v0 = t0 & 65535;
|
||||
t2 += t1 >>> 16;
|
||||
v1 = t1 & 65535;
|
||||
v3 = t3 + (t2 >>> 16) & 65535;
|
||||
v2 = t2 & 65535;
|
||||
}
|
||||
return (v3 & 15) * 281474976710656 + v2 * 4294967296 + v1 * 65536 + (v0 ^ v3 >> 4);
|
||||
};
|
||||
const etag = (payload, weak = false) => {
|
||||
const prefix = weak ? 'W/"' : '"';
|
||||
return prefix + fnv1a52(payload).toString(36) + payload.length.toString(36) + '"';
|
||||
};
|
||||
export {
|
||||
etag,
|
||||
fnv1a52
|
||||
};
|
1
node_modules/astro/dist/assets/utils/index.d.ts
generated
vendored
Normal file
1
node_modules/astro/dist/assets/utils/index.d.ts
generated
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
export { emitESMImage } from './emitAsset.js';
|
4
node_modules/astro/dist/assets/utils/index.js
generated
vendored
Normal file
4
node_modules/astro/dist/assets/utils/index.js
generated
vendored
Normal file
|
@ -0,0 +1,4 @@
|
|||
import { emitESMImage } from "./emitAsset.js";
|
||||
export {
|
||||
emitESMImage
|
||||
};
|
3
node_modules/astro/dist/assets/utils/metadata.d.ts
generated
vendored
Normal file
3
node_modules/astro/dist/assets/utils/metadata.d.ts
generated
vendored
Normal file
|
@ -0,0 +1,3 @@
|
|||
/// <reference types="node" />
|
||||
import type { ImageMetadata } from '../types.js';
|
||||
export declare function imageMetadata(src: URL | string, data?: Buffer): Promise<ImageMetadata | undefined>;
|
28
node_modules/astro/dist/assets/utils/metadata.js
generated
vendored
Normal file
28
node_modules/astro/dist/assets/utils/metadata.js
generated
vendored
Normal file
|
@ -0,0 +1,28 @@
|
|||
import fs from "node:fs/promises";
|
||||
import { fileURLToPath } from "node:url";
|
||||
import imageSize from "../vendor/image-size/index.js";
|
||||
async function imageMetadata(src, data) {
|
||||
let file = data;
|
||||
if (!file) {
|
||||
try {
|
||||
file = await fs.readFile(src);
|
||||
} catch (e) {
|
||||
return void 0;
|
||||
}
|
||||
}
|
||||
const { width, height, type, orientation } = imageSize(file);
|
||||
const isPortrait = (orientation || 0) >= 5;
|
||||
if (!width || !height || !type) {
|
||||
return void 0;
|
||||
}
|
||||
return {
|
||||
src: fileURLToPath(src),
|
||||
width: isPortrait ? height : width,
|
||||
height: isPortrait ? width : height,
|
||||
format: type,
|
||||
orientation
|
||||
};
|
||||
}
|
||||
export {
|
||||
imageMetadata
|
||||
};
|
2
node_modules/astro/dist/assets/utils/queryParams.d.ts
generated
vendored
Normal file
2
node_modules/astro/dist/assets/utils/queryParams.d.ts
generated
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
import type { ImageMetadata } from '../types.js';
|
||||
export declare function getOrigQueryParams(params: URLSearchParams): Omit<ImageMetadata, 'src'> | undefined;
|
16
node_modules/astro/dist/assets/utils/queryParams.js
generated
vendored
Normal file
16
node_modules/astro/dist/assets/utils/queryParams.js
generated
vendored
Normal file
|
@ -0,0 +1,16 @@
|
|||
function getOrigQueryParams(params) {
|
||||
const width = params.get("origWidth");
|
||||
const height = params.get("origHeight");
|
||||
const format = params.get("origFormat");
|
||||
if (!width || !height || !format) {
|
||||
return void 0;
|
||||
}
|
||||
return {
|
||||
width: parseInt(width),
|
||||
height: parseInt(height),
|
||||
format
|
||||
};
|
||||
}
|
||||
export {
|
||||
getOrigQueryParams
|
||||
};
|
3
node_modules/astro/dist/assets/utils/transformToPath.d.ts
generated
vendored
Normal file
3
node_modules/astro/dist/assets/utils/transformToPath.d.ts
generated
vendored
Normal file
|
@ -0,0 +1,3 @@
|
|||
import type { ImageTransform } from '../types.js';
|
||||
export declare function propsToFilename(transform: ImageTransform, hash: string): string;
|
||||
export declare function hashTransform(transform: ImageTransform, imageService: string): string;
|
23
node_modules/astro/dist/assets/utils/transformToPath.js
generated
vendored
Normal file
23
node_modules/astro/dist/assets/utils/transformToPath.js
generated
vendored
Normal file
|
@ -0,0 +1,23 @@
|
|||
import { basename, extname } from "node:path";
|
||||
import { removeQueryString } from "../../core/path.js";
|
||||
import { shorthash } from "../../runtime/server/shorthash.js";
|
||||
import { isESMImportedImage } from "../internal.js";
|
||||
function propsToFilename(transform, hash) {
|
||||
if (!isESMImportedImage(transform.src)) {
|
||||
return transform.src;
|
||||
}
|
||||
let filename = removeQueryString(transform.src.src);
|
||||
const ext = extname(filename);
|
||||
filename = basename(filename, ext);
|
||||
const outputExt = transform.format ? `.${transform.format}` : ext;
|
||||
return `/${filename}_${hash}${outputExt}`;
|
||||
}
|
||||
function hashTransform(transform, imageService) {
|
||||
const { alt, ...rest } = transform;
|
||||
const hashFields = { ...rest, imageService };
|
||||
return shorthash(JSON.stringify(hashFields));
|
||||
}
|
||||
export {
|
||||
hashTransform,
|
||||
propsToFilename
|
||||
};
|
Loading…
Add table
Add a link
Reference in a new issue