🎉 initiate project *astro_rewrite*

This commit is contained in:
sindrekjelsrud 2023-07-19 21:31:30 +02:00
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
View 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
View 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
View 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
View 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
View file

@ -0,0 +1 @@
export { emitESMImage } from './emitAsset.js';

4
node_modules/astro/dist/assets/utils/index.js generated vendored Normal file
View 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
View 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
View 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
};

View 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
View 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
};

View 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;

View 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
};