@jsxtools/rollup-plugin-copy
Advanced tools
+26
-49
| export declare class CopyAPI { | ||
| /** Working directory. */ | ||
| workDir: string; | ||
| /** Source directory. */ | ||
| rootDir: string; | ||
| /** Destination directory. */ | ||
| distDir: string; | ||
| /** File patterns to include. */ | ||
| include: string[]; | ||
| /** File patterns to exclude. */ | ||
| exclude: string[]; | ||
| /** Cache file. */ | ||
| cacheFile: string; | ||
| cache: CacheRecord; | ||
| watchedFiles: string[]; | ||
| changedFiles: string[]; | ||
| /** Files read during build. */ | ||
| fileContents: Map<string, Buffer<ArrayBufferLike>>; | ||
| init(userOptions?: CopyOptions): void; | ||
| captureWatchedFiles(): Promise<void>; | ||
| captureChangedFiles(): Promise<void>; | ||
| loadConfig(): Promise<CacheRecord>; | ||
| saveConfig(): Promise<void>; | ||
| getFileStats(filePath: string): Promise<FileStats | null>; | ||
| hasFileChanged(filePath: string): Promise<boolean>; | ||
| getAbsolutePath(filePath: string, basePath?: string): string; | ||
| getRelativePath(filePath: string, basePath?: string): string; | ||
| /** | ||
| * Get cached file content if available, otherwise read from disk. | ||
| * This avoids double reads when content was already loaded during hash calculation. | ||
| */ | ||
| getFileContent(filePath: string): Promise<Buffer>; | ||
| /** | ||
| * Clear the file contents cache to free memory after processing. | ||
| * Should be called after all files have been emitted. | ||
| */ | ||
| clearFileContentsCache(): void; | ||
| #private; | ||
| get cacheFile(): string; | ||
| files(): AsyncGenerator<string, void, void>; | ||
| init(options?: CopyOptions): void; | ||
| loadCache(): Promise<void>; | ||
| updateCache(): Promise<void>; | ||
| saveCache(): Promise<void>; | ||
| } | ||
| export interface Cache { | ||
| fileNames: string[]; | ||
| fileInfos: FileCache[]; | ||
| version: string; | ||
| } | ||
| export type FileCache = [time: number, size: number, hash: string]; | ||
| export type FileOperation = () => Promise<void>; | ||
| export interface CopyOptions { | ||
| cacheFile?: string; | ||
| workDir?: string; | ||
| rootDir?: string; | ||
| distDir: string; | ||
| include?: string | string[]; | ||
| exclude?: string | string[]; | ||
| cacheFile?: string | undefined; | ||
| workDir?: string | undefined; | ||
| rootDir?: string | undefined; | ||
| distDir?: string | undefined; | ||
| include?: string | undefined | (string | undefined)[]; | ||
| exclude?: string | undefined | (string | undefined)[]; | ||
| } | ||
| export interface CacheRecord extends Record<string, CacheEntry> { | ||
| } | ||
| export interface CacheEntry { | ||
| hash: string | null; | ||
| mtime: number; | ||
| size: number; | ||
| } | ||
| export interface FileStats { | ||
@@ -58,1 +29,7 @@ mtime: number; | ||
| } | ||
| export interface CopyBuildInfo { | ||
| fileNames: string[]; | ||
| fileInfos: CopyFileInfo[]; | ||
| version: string; | ||
| } | ||
| export type CopyFileInfo = [time: number, size: number, hash: string]; |
+133
-126
@@ -1,140 +0,147 @@ | ||
| import { glob, readFile, stat, writeFile } from "node:fs/promises"; | ||
| import { getFileHashAndData } from "@jsxtools/rollup-plugin-utils/get-file-hash"; | ||
| import { toArray } from "@jsxtools/rollup-plugin-utils/options"; | ||
| import { relative, resolve, resolveDir } from "@jsxtools/rollup-plugin-utils/path"; | ||
| import * as array from "@jsxtools/rollup-plugin-utils/array"; | ||
| import * as fs from "@jsxtools/rollup-plugin-utils/file"; | ||
| import * as json from "@jsxtools/rollup-plugin-utils/json"; | ||
| import * as path from "@jsxtools/rollup-plugin-utils/path"; | ||
| import * as str from "@jsxtools/rollup-plugin-utils/string"; | ||
| export class CopyAPI { | ||
| /** Working directory. */ | ||
| workDir = resolveDir("." /* Default.WorkDir */); | ||
| /** Source directory. */ | ||
| rootDir = resolveDir("." /* Default.WorkDir */, "src" /* Default.RootDir */); | ||
| /** Destination directory. */ | ||
| distDir = resolveDir("." /* Default.WorkDir */, "dist" /* Default.DistDir */); | ||
| /** File patterns to include. */ | ||
| include = []; | ||
| /** File patterns to exclude. */ | ||
| exclude = []; | ||
| /** Cache file. */ | ||
| cacheFile = resolve("." /* Default.WorkDir */, "cpconfig.cpbuildinfo" /* Default.CacheFile */); | ||
| cache = Object.create(null); | ||
| watchedFiles = []; | ||
| changedFiles = []; | ||
| /** Files read during build. */ | ||
| fileContents = new Map(); | ||
| init(userOptions = null) { | ||
| this.workDir = resolveDir(userOptions?.workDir ?? "." /* Default.WorkDir */); | ||
| this.rootDir = resolveDir(this.workDir, userOptions?.rootDir ?? "src" /* Default.RootDir */); | ||
| this.distDir = resolveDir(this.workDir, userOptions?.distDir ?? "dist" /* Default.DistDir */); | ||
| this.include = toArray(userOptions?.include).map(String); | ||
| this.exclude = toArray(userOptions?.exclude).map(String); | ||
| this.cacheFile = resolve(this.workDir, userOptions?.cacheFile ?? "cpconfig.cpbuildinfo" /* Default.CacheFile */); | ||
| #internals = { | ||
| cache: { | ||
| fileNames: [], | ||
| fileInfos: [], | ||
| version: "0.2.0", | ||
| }, | ||
| files: { | ||
| globbed: [], | ||
| stashed: [], | ||
| }, | ||
| glob: { | ||
| include: ["**/*"], | ||
| exclude: ["node_modules"], | ||
| }, | ||
| operations: { | ||
| dists: [], | ||
| cache: [], | ||
| files: [], | ||
| }, | ||
| paths: { | ||
| workDir: path.toDirURL("" /* Default.WorkDir */), | ||
| rootDir: path.toDirURL("" /* Default.WorkDir */, "src" /* Default.RootDir */), | ||
| distDir: path.toDirURL("" /* Default.WorkDir */, "dist" /* Default.DistDir */), | ||
| cacheFile: path.toURL("" /* Default.WorkDir */, "cpconfig.cpbuildinfo" /* Default.CacheFile */), | ||
| }, | ||
| stash: { | ||
| cache: {}, | ||
| files: new Map(), | ||
| shouldUpdate: false, | ||
| }, | ||
| }; | ||
| get cacheFile() { | ||
| return this.#internals.paths.cacheFile.pathname; | ||
| } | ||
| async captureWatchedFiles() { | ||
| this.watchedFiles = []; | ||
| for await (const filePath of glob(this.include, { | ||
| cwd: this.workDir, | ||
| exclude: this.exclude, | ||
| })) { | ||
| this.watchedFiles.push(`./${filePath}`); | ||
| } | ||
| files() { | ||
| const { glob, paths } = this.#internals; | ||
| return fs.glob({ | ||
| cwd: paths.workDir, | ||
| include: glob.include, | ||
| exclude: glob.exclude, | ||
| }); | ||
| } | ||
| async captureChangedFiles() { | ||
| const awaited = []; | ||
| this.changedFiles = []; | ||
| for (const watchedFile of this.watchedFiles) { | ||
| awaited.push(this.hasFileChanged(watchedFile).then((hasChanged) => { | ||
| if (hasChanged) { | ||
| this.changedFiles.push(watchedFile); | ||
| } | ||
| })); | ||
| } | ||
| await Promise.all(awaited); | ||
| init(options = null) { | ||
| const { paths, glob } = this.#internals; | ||
| paths.workDir = path.toDirURL(options?.workDir ?? "" /* Default.WorkDir */); | ||
| paths.rootDir = path.toDirURL(paths.workDir, options?.rootDir ?? "src" /* Default.RootDir */); | ||
| paths.distDir = path.toDirURL(paths.workDir, options?.distDir ?? "dist" /* Default.DistDir */); | ||
| paths.cacheFile = path.toURL(paths.workDir, options?.cacheFile ?? "cpconfig.cpbuildinfo" /* Default.CacheFile */); | ||
| Object.assign(glob, { | ||
| include: array.from(options?.include, str.hasTrimmedValue), | ||
| exclude: array.from(options?.exclude, str.hasTrimmedValue), | ||
| }); | ||
| } | ||
| async loadConfig() { | ||
| const cacheRecord = Object.create(null); | ||
| try { | ||
| const cacheRecordJson = await readFile(this.cacheFile, "utf-8"); | ||
| Object.assign(cacheRecord, JSON.parse(cacheRecordJson)); | ||
| async loadCache() { | ||
| const { cache, paths, stash } = this.#internals; | ||
| const filed = await fs.readJSON(paths.cacheFile).catch(() => undefined); | ||
| cache.fileNames = []; | ||
| cache.fileInfos = []; | ||
| stash.cache = {}; | ||
| stash.shouldUpdate = false; | ||
| if (filed?.version === cache.version) { | ||
| const fileNames = array.every(filed.fileNames, isCacheFileName) ? filed.fileNames : []; | ||
| const fileInfos = array.every(filed.fileInfos, isCacheFileInfo) ? filed.fileInfos : []; | ||
| if (fileNames.length === fileInfos.length) { | ||
| cache.fileNames.push(...fileNames); | ||
| cache.fileInfos.push(...fileInfos); | ||
| stash.cache = Object.fromEntries(fileNames.map((fileName, index) => [path.toPath(paths.workDir, fileName), fileInfos[index]])); | ||
| } | ||
| } | ||
| catch { | ||
| // Cache file doesn't exist or is invalid, continue with empty cache | ||
| } | ||
| finally { | ||
| this.cache = cacheRecord; | ||
| } | ||
| return this.cache; | ||
| } | ||
| async saveConfig() { | ||
| await writeFile(this.cacheFile, JSON.stringify(this.cache)); | ||
| } | ||
| async getFileStats(filePath) { | ||
| try { | ||
| const fileStats = await stat(resolve(this.workDir, filePath)); | ||
| return { | ||
| mtime: fileStats.mtimeMs, | ||
| size: fileStats.size, | ||
| }; | ||
| async updateCache() { | ||
| const { operations, paths, stash } = this.#internals; | ||
| const globbedFiles = await Array.fromAsync(this.files()); | ||
| operations.cache = []; | ||
| operations.files = []; | ||
| stash.files.clear(); | ||
| stash.shouldUpdate = false; | ||
| for (const [stashedPath, stashedInfo] of Object.entries(stash.cache)) { | ||
| const cachingPath = path.toRelativePath(paths.workDir, stashedPath); | ||
| if (!globbedFiles.includes(stashedPath)) { | ||
| stash.shouldUpdate = true; | ||
| operations.files.push(async () => await fs.deleteFile(stashedPath)); | ||
| } | ||
| else { | ||
| operations.cache.push(async () => { | ||
| const stat = await fs.getFileStats(stashedPath); | ||
| if (stat.mtimeMs === stashedInfo[0] && stat.size === stashedInfo[1]) { | ||
| stash.files.set(cachingPath, stashedInfo); | ||
| } | ||
| else { | ||
| const hash = await fs.hash(stashedPath); | ||
| stashedInfo[0] = stat.mtimeMs; | ||
| stashedInfo[1] = stat.size; | ||
| if (stashedInfo[2] !== hash) { | ||
| stashedInfo[2] = hash; | ||
| stash.shouldUpdate = true; | ||
| stash.files.set(cachingPath, stashedInfo); | ||
| const relativePath = path.toRelativePath(paths.rootDir, stashedPath); | ||
| const targetedPath = path.toPath(paths.distDir, relativePath); | ||
| operations.files.push(async () => await fs.copy(stashedPath, targetedPath)); | ||
| } | ||
| } | ||
| }); | ||
| } | ||
| } | ||
| catch { | ||
| return null; | ||
| for (const globbedFile of globbedFiles) { | ||
| if (!Object.hasOwn(stash.cache, globbedFile)) { | ||
| const cachingPath = path.toRelativePath(paths.workDir, globbedFile); | ||
| const relativePath = path.toRelativePath(paths.rootDir, globbedFile); | ||
| const targetedPath = path.toPath(paths.distDir, relativePath); | ||
| operations.cache.push(async () => { | ||
| const [stat, hash] = await Promise.all([fs.getFileStats(globbedFile), fs.hash(globbedFile)]); | ||
| stash.shouldUpdate = true; | ||
| stash.files.set(cachingPath, [stat.mtimeMs, stat.size, hash]); | ||
| }); | ||
| operations.files.push(async () => await fs.copy(globbedFile, targetedPath)); | ||
| } | ||
| } | ||
| return this.#operate(operations.cache); | ||
| } | ||
| async hasFileChanged(filePath) { | ||
| const stats = await this.getFileStats(filePath); | ||
| // return false if the file doesn't exist | ||
| if (stats === null) { | ||
| return false; | ||
| async saveCache() { | ||
| const { cache, operations, paths, stash } = this.#internals; | ||
| if (stash.shouldUpdate) { | ||
| cache.fileNames = [...stash.files.keys()]; | ||
| cache.fileInfos = [...stash.files.values()]; | ||
| await Promise.all([fs.mkdir(path.toParentURL(paths.cacheFile)), fs.mkdir(paths.distDir)]); | ||
| await Promise.all([fs.writeFile(paths.cacheFile, json.to(cache)), this.#operate(operations.files)]); | ||
| } | ||
| const resolvedPath = resolve(this.workDir, filePath); | ||
| // return true if the file is not in the cache | ||
| if (!(filePath in this.cache)) { | ||
| const { hash, data } = await getFileHashAndData(resolvedPath); | ||
| this.cache[filePath] = { ...stats, hash }; | ||
| // store uncached data to avoid re-reading | ||
| this.fileContents.set(filePath, data ?? emptyBuffer); | ||
| return true; | ||
| } | ||
| const oldEntry = this.cache[filePath]; | ||
| const newEntry = { ...oldEntry, ...stats }; | ||
| // return false if the file has not changed modified time or size | ||
| if (oldEntry.mtime === newEntry.mtime && oldEntry.size === newEntry.size) { | ||
| return false; | ||
| } | ||
| const { hash, data } = await getFileHashAndData(resolvedPath); | ||
| newEntry.hash = hash; | ||
| // return false if the hash has not changed | ||
| if (oldEntry.hash === newEntry.hash) { | ||
| return false; | ||
| } | ||
| this.cache[filePath] = newEntry; | ||
| // store uncached data to avoid re-reading | ||
| this.fileContents.set(filePath, data ?? emptyBuffer); | ||
| return true; | ||
| } | ||
| getAbsolutePath(filePath, basePath = this.rootDir) { | ||
| return resolve(basePath, filePath); | ||
| async #operate(operations) { | ||
| await Promise.all(operations.splice(0).map(operate)); | ||
| } | ||
| getRelativePath(filePath, basePath = this.rootDir) { | ||
| return relative(basePath, filePath); | ||
| } | ||
| /** | ||
| * Get cached file content if available, otherwise read from disk. | ||
| * This avoids double reads when content was already loaded during hash calculation. | ||
| */ | ||
| async getFileContent(filePath) { | ||
| const cachedContent = this.fileContents.get(filePath); | ||
| if (cachedContent) { | ||
| return cachedContent; | ||
| } | ||
| // Fallback to reading from disk if not cached | ||
| return await readFile(resolve(this.workDir, filePath)); | ||
| } | ||
| /** | ||
| * Clear the file contents cache to free memory after processing. | ||
| * Should be called after all files have been emitted. | ||
| */ | ||
| clearFileContentsCache() { | ||
| this.fileContents.clear(); | ||
| } | ||
| } | ||
| const emptyBuffer = Buffer.from([]); | ||
| const isCacheFileName = (fileName) => typeof fileName === "string"; | ||
| const isCacheFileInfo = (fileInfo) => Array.isArray(fileInfo) && | ||
| fileInfo.length === 3 && | ||
| typeof fileInfo[0] === "number" && | ||
| typeof fileInfo[1] === "number" && | ||
| typeof fileInfo[2] === "string"; | ||
| const operate = (operation) => operation(); | ||
| //# sourceMappingURL=copy-api.js.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"copy-api.js","sourceRoot":"","sources":["../src/copy-api.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"copy-api.js","sourceRoot":"","sources":["../src/copy-api.ts"],"names":[],"mappings":"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"} |
@@ -1,3 +0,3 @@ | ||
| import type { Plugin } from "rollup"; | ||
| import type * as Rollup from "rollup"; | ||
| import { type CopyOptions } from "./copy-api.js"; | ||
| export declare const rollupPluginCopy: (pluginOptions?: CopyOptions) => Plugin; | ||
| export declare const rollupPluginCopy: (pluginOptions?: CopyOptions) => Rollup.Plugin; |
@@ -0,1 +1,2 @@ | ||
| import { getDirs } from "@jsxtools/rollup-plugin-utils/options"; | ||
| import { VirtualAsset } from "@jsxtools/rollup-plugin-utils/virtual-asset"; | ||
@@ -6,2 +7,3 @@ import { CopyAPI } from "./copy-api.js"; | ||
| const virtualAsset = new VirtualAsset("rollup-plugin-copy"); | ||
| let deferred = Promise.resolve(); | ||
| let firstRun = true; | ||
@@ -11,28 +13,17 @@ let watchRun = false; | ||
| name: "rollup-plugin-copy", | ||
| async buildStart(options) { | ||
| options(options) { | ||
| if (firstRun) { | ||
| copy.init(pluginOptions); | ||
| await copy.loadConfig(); | ||
| copy.init({ | ||
| ...getDirs(options), | ||
| ...pluginOptions, | ||
| }); | ||
| deferred = deferred.then(() => copy.loadCache()); | ||
| } | ||
| return options; | ||
| }, | ||
| buildStart(options) { | ||
| if (firstRun || watchRun) { | ||
| await copy.captureWatchedFiles(); | ||
| deferred = deferred.then(() => copy.updateCache()); | ||
| } | ||
| virtualAsset.buildStart(this, options); | ||
| await copy.captureChangedFiles(); | ||
| for (const changedFile of copy.changedFiles) { | ||
| this.emitFile({ | ||
| type: "asset", | ||
| fileName: copy.getRelativePath(changedFile, copy.rootDir), | ||
| needsCodeReference: false, | ||
| originalFileName: copy.getAbsolutePath(changedFile, copy.workDir), | ||
| source: await copy.getFileContent(changedFile), | ||
| }); | ||
| } | ||
| // Clear file contents cache to free memory after emitting all files | ||
| copy.clearFileContentsCache(); | ||
| if (this.meta.watchMode) { | ||
| for (const watchedFile of copy.watchedFiles) { | ||
| this.addWatchFile(watchedFile); | ||
| } | ||
| } | ||
| }, | ||
@@ -46,15 +37,17 @@ resolveId(id, importer, options) { | ||
| generateBundle(options, bundle) { | ||
| firstRun = false; | ||
| watchRun = false; | ||
| virtualAsset.generateBundle(this, options, bundle); | ||
| }, | ||
| async writeBundle() { | ||
| if (copy.changedFiles.length > 0) { | ||
| await copy.saveConfig().catch((error) => { | ||
| this.warn(`Failed to save asset cache: ${error}`); | ||
| }); | ||
| writeBundle() { | ||
| if (firstRun || watchRun) { | ||
| firstRun = false; | ||
| watchRun = false; | ||
| if (this.meta.watchMode) { | ||
| this.addWatchFile(copy.cacheFile); | ||
| } | ||
| deferred = deferred.then(() => copy.saveCache()); | ||
| return deferred; | ||
| } | ||
| }, | ||
| watchChange(id) { | ||
| if (copy.watchedFiles.includes(id)) { | ||
| if (id === copy.cacheFile) { | ||
| watchRun = true; | ||
@@ -61,0 +54,0 @@ } |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"copy-rollup-plugin.js","sourceRoot":"","sources":["../src/copy-rollup-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,6CAA6C,CAAA;AAE1E,OAAO,EAAE,OAAO,EAAoB,MAAM,eAAe,CAAA;AAEzD,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,aAA2B,EAAU,EAAE;IACvE,MAAM,IAAI,GAAG,IAAI,OAAO,EAAE,CAAA;IAC1B,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC,oBAAoB,CAAC,CAAA;IAE3D,IAAI,QAAQ,GAAG,IAAI,CAAA;IACnB,IAAI,QAAQ,GAAG,KAAK,CAAA;IAEpB,OAAO;QACN,IAAI,EAAE,oBAAoB;QAC1B,KAAK,CAAC,UAAU,CAAC,OAA+B;YAC/C,IAAI,QAAQ,EAAE,CAAC;gBACd,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;gBAExB,MAAM,IAAI,CAAC,UAAU,EAAE,CAAA;YACxB,CAAC;YAED,IAAI,QAAQ,IAAI,QAAQ,EAAE,CAAC;gBAC1B,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAA;YACjC,CAAC;YAED,YAAY,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;YAEtC,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAA;YAEhC,KAAK,MAAM,WAAW,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;gBAC7C,IAAI,CAAC,QAAQ,CAAC;oBACb,IAAI,EAAE,OAAO;oBACb,QAAQ,EAAE,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC;oBACzD,kBAAkB,EAAE,KAAK;oBACzB,gBAAgB,EAAE,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC;oBACjE,MAAM,EAAE,MAAM,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC;iBAC9C,CAAC,CAAA;YACH,CAAC;YAED,oEAAoE;YACpE,IAAI,CAAC,sBAAsB,EAAE,CAAA;YAE7B,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;gBACzB,KAAK,MAAM,WAAW,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;oBAC7C,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAA;gBAC/B,CAAC;YACF,CAAC;QACF,CAAC;QACD,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO;YAC9B,OAAO,YAAY,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAA;QAC3D,CAAC;QACD,IAAI,CAAC,EAAE;YACN,OAAO,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;QACnC,CAAC;QACD,cAAc,CAAC,OAAO,EAAE,MAAM;YAC7B,QAAQ,GAAG,KAAK,CAAA;YAChB,QAAQ,GAAG,KAAK,CAAA;YAEhB,YAAY,CAAC,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;QACnD,CAAC;QACD,KAAK,CAAC,WAAW;YAChB,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAClC,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;oBACvC,IAAI,CAAC,IAAI,CAAC,+BAA+B,KAAK,EAAE,CAAC,CAAA;gBAClD,CAAC,CAAC,CAAA;YACH,CAAC;QACF,CAAC;QACD,WAAW,CAAC,EAAE;YACb,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;gBACpC,QAAQ,GAAG,IAAI,CAAA;YAChB,CAAC;QACF,CAAC;KACD,CAAA;AACF,CAAC,CAAA"} | ||
| {"version":3,"file":"copy-rollup-plugin.js","sourceRoot":"","sources":["../src/copy-rollup-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,uCAAuC,CAAA;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,6CAA6C,CAAA;AAE1E,OAAO,EAAE,OAAO,EAAoB,MAAM,eAAe,CAAA;AAEzD,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,aAA2B,EAAiB,EAAE;IAC9E,MAAM,IAAI,GAAG,IAAI,OAAO,EAAE,CAAA;IAC1B,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC,oBAAoB,CAAC,CAAA;IAE3D,IAAI,QAAQ,GAAG,OAAO,CAAC,OAAO,EAAE,CAAA;IAChC,IAAI,QAAQ,GAAG,IAAI,CAAA;IACnB,IAAI,QAAQ,GAAG,KAAK,CAAA;IAEpB,OAAO;QACN,IAAI,EAAE,oBAAoB;QAC1B,OAAO,CAAC,OAA6B;YACpC,IAAI,QAAQ,EAAE,CAAC;gBACd,IAAI,CAAC,IAAI,CAAC;oBACT,GAAG,OAAO,CAAC,OAAO,CAAC;oBACnB,GAAG,aAAa;iBAChB,CAAC,CAAA;gBAEF,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAA;YACjD,CAAC;YAED,OAAO,OAAO,CAAA;QACf,CAAC;QACD,UAAU,CAAC,OAAsC;YAChD,IAAI,QAAQ,IAAI,QAAQ,EAAE,CAAC;gBAC1B,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAA;YACnD,CAAC;YAED,YAAY,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;QACvC,CAAC;QACD,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO;YAC9B,OAAO,YAAY,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAA;QAC3D,CAAC;QACD,IAAI,CAAC,EAAE;YACN,OAAO,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;QACnC,CAAC;QACD,cAAc,CAAC,OAAO,EAAE,MAAM;YAC7B,YAAY,CAAC,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;QACnD,CAAC;QACD,WAAW;YACV,IAAI,QAAQ,IAAI,QAAQ,EAAE,CAAC;gBAC1B,QAAQ,GAAG,KAAK,CAAA;gBAChB,QAAQ,GAAG,KAAK,CAAA;gBAEhB,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;oBACzB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;gBAClC,CAAC;gBAED,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAA;gBAEhD,OAAO,QAAQ,CAAA;YAChB,CAAC;QACF,CAAC;QACD,WAAW,CAAC,EAAE;YACb,IAAI,EAAE,KAAK,IAAI,CAAC,SAAS,EAAE,CAAC;gBAC3B,QAAQ,GAAG,IAAI,CAAA;YAChB,CAAC;QACF,CAAC;KACD,CAAA;AACF,CAAC,CAAA"} |
+3
-3
| { | ||
| "name": "@jsxtools/rollup-plugin-copy", | ||
| "description": "A Rollup plugin for copying files during the build process.", | ||
| "version": "0.1.0", | ||
| "version": "0.2.0", | ||
| "type": "module", | ||
@@ -29,6 +29,6 @@ "exports": { | ||
| "dependencies": { | ||
| "@jsxtools/rollup-plugin-utils": "^0.1.0" | ||
| "@jsxtools/rollup-plugin-utils": "^0.2.0" | ||
| }, | ||
| "devDependencies": { | ||
| "@types/node": "^24.5.2", | ||
| "@types/node": "^24.6.2", | ||
| "rollup": "^4.6.0", | ||
@@ -35,0 +35,0 @@ "typescript": "^5.4.5" |
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
21810
8.69%237
-8.85%1
Infinity%+ Added
- Removed