Ajout de promotion et de commande
This commit is contained in:
+1912
File diff suppressed because one or more lines are too long
+64
@@ -0,0 +1,64 @@
|
||||
/*
|
||||
@license
|
||||
Rollup.js v4.60.0
|
||||
Sun, 22 Mar 2026 06:57:22 GMT - commit 6ecd69fb2ce736c8aabb50829edd227d1792c957
|
||||
|
||||
https://github.com/rollup/rollup
|
||||
|
||||
Released under the MIT License.
|
||||
*/
|
||||
const getLogFilter = filters => {
|
||||
if (filters.length === 0)
|
||||
return () => true;
|
||||
const normalizedFilters = filters.map(filter => filter.split('&').map(subFilter => {
|
||||
const inverted = subFilter[0] === '!';
|
||||
if (inverted)
|
||||
subFilter = subFilter.slice(1);
|
||||
const [key, ...value] = subFilter.split(':');
|
||||
return { inverted, key: key.split('.'), parts: value.join(':').split('*') };
|
||||
}));
|
||||
return (log) => {
|
||||
nextIntersectedFilter: for (const intersectedFilters of normalizedFilters) {
|
||||
for (const { inverted, key, parts } of intersectedFilters) {
|
||||
const isFilterSatisfied = testFilter(log, key, parts);
|
||||
if (inverted ? isFilterSatisfied : !isFilterSatisfied) {
|
||||
continue nextIntersectedFilter;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
};
|
||||
};
|
||||
const testFilter = (log, key, parts) => {
|
||||
let rawValue = log;
|
||||
for (let index = 0; index < key.length; index++) {
|
||||
if (!rawValue) {
|
||||
return false;
|
||||
}
|
||||
const part = key[index];
|
||||
if (!(part in rawValue)) {
|
||||
return false;
|
||||
}
|
||||
rawValue = rawValue[part];
|
||||
}
|
||||
let value = typeof rawValue === 'object' ? JSON.stringify(rawValue) : String(rawValue);
|
||||
if (parts.length === 1) {
|
||||
return value === parts[0];
|
||||
}
|
||||
if (!value.startsWith(parts[0])) {
|
||||
return false;
|
||||
}
|
||||
const lastPartIndex = parts.length - 1;
|
||||
for (let index = 1; index < lastPartIndex; index++) {
|
||||
const part = parts[index];
|
||||
const position = value.indexOf(part);
|
||||
if (position === -1) {
|
||||
return false;
|
||||
}
|
||||
value = value.slice(position + part.length);
|
||||
}
|
||||
return value.endsWith(parts[lastPartIndex]);
|
||||
};
|
||||
|
||||
export { getLogFilter };
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"type":"module"}
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
/*
|
||||
@license
|
||||
Rollup.js v4.60.0
|
||||
Sun, 22 Mar 2026 06:57:22 GMT - commit 6ecd69fb2ce736c8aabb50829edd227d1792c957
|
||||
|
||||
https://github.com/rollup/rollup
|
||||
|
||||
Released under the MIT License.
|
||||
*/
|
||||
import '../native.js';
|
||||
export { parseAst, parseAstAsync } from './shared/parseAst.js';
|
||||
import 'node:path';
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
/*
|
||||
@license
|
||||
Rollup.js v4.60.0
|
||||
Sun, 22 Mar 2026 06:57:22 GMT - commit 6ecd69fb2ce736c8aabb50829edd227d1792c957
|
||||
|
||||
https://github.com/rollup/rollup
|
||||
|
||||
Released under the MIT License.
|
||||
*/
|
||||
export { version as VERSION, defineConfig, rollup, watch } from './shared/node-entry.js';
|
||||
import './shared/parseAst.js';
|
||||
import '../native.js';
|
||||
import 'node:path';
|
||||
import 'path';
|
||||
import 'node:process';
|
||||
import 'node:perf_hooks';
|
||||
import 'node:fs/promises';
|
||||
+24122
File diff suppressed because one or more lines are too long
+2124
File diff suppressed because one or more lines are too long
+9297
File diff suppressed because it is too large
Load Diff
+5
@@ -0,0 +1,5 @@
|
||||
import type { RollupLog } from './rollup';
|
||||
|
||||
export type GetLogFilter = typeof getLogFilter;
|
||||
|
||||
export function getLogFilter(filters: string[]): (log: RollupLog) => boolean;
|
||||
+69
@@ -0,0 +1,69 @@
|
||||
/*
|
||||
@license
|
||||
Rollup.js v4.60.0
|
||||
Sun, 22 Mar 2026 06:57:22 GMT - commit 6ecd69fb2ce736c8aabb50829edd227d1792c957
|
||||
|
||||
https://github.com/rollup/rollup
|
||||
|
||||
Released under the MIT License.
|
||||
*/
|
||||
'use strict';
|
||||
|
||||
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
||||
|
||||
const getLogFilter = filters => {
|
||||
if (filters.length === 0)
|
||||
return () => true;
|
||||
const normalizedFilters = filters.map(filter => filter.split('&').map(subFilter => {
|
||||
const inverted = subFilter[0] === '!';
|
||||
if (inverted)
|
||||
subFilter = subFilter.slice(1);
|
||||
const [key, ...value] = subFilter.split(':');
|
||||
return { inverted, key: key.split('.'), parts: value.join(':').split('*') };
|
||||
}));
|
||||
return (log) => {
|
||||
nextIntersectedFilter: for (const intersectedFilters of normalizedFilters) {
|
||||
for (const { inverted, key, parts } of intersectedFilters) {
|
||||
const isFilterSatisfied = testFilter(log, key, parts);
|
||||
if (inverted ? isFilterSatisfied : !isFilterSatisfied) {
|
||||
continue nextIntersectedFilter;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
};
|
||||
};
|
||||
const testFilter = (log, key, parts) => {
|
||||
let rawValue = log;
|
||||
for (let index = 0; index < key.length; index++) {
|
||||
if (!rawValue) {
|
||||
return false;
|
||||
}
|
||||
const part = key[index];
|
||||
if (!(part in rawValue)) {
|
||||
return false;
|
||||
}
|
||||
rawValue = rawValue[part];
|
||||
}
|
||||
let value = typeof rawValue === 'object' ? JSON.stringify(rawValue) : String(rawValue);
|
||||
if (parts.length === 1) {
|
||||
return value === parts[0];
|
||||
}
|
||||
if (!value.startsWith(parts[0])) {
|
||||
return false;
|
||||
}
|
||||
const lastPartIndex = parts.length - 1;
|
||||
for (let index = 1; index < lastPartIndex; index++) {
|
||||
const part = parts[index];
|
||||
const position = value.indexOf(part);
|
||||
if (position === -1) {
|
||||
return false;
|
||||
}
|
||||
value = value.slice(position + part.length);
|
||||
}
|
||||
return value.endsWith(parts[lastPartIndex]);
|
||||
};
|
||||
|
||||
exports.getLogFilter = getLogFilter;
|
||||
//# sourceMappingURL=getLogFilter.js.map
|
||||
+20
@@ -0,0 +1,20 @@
|
||||
import type { LogHandler, MergedRollupOptions, RollupLog } from './rollup';
|
||||
|
||||
export interface BatchWarnings {
|
||||
add: (warning: RollupLog) => void;
|
||||
readonly count: number;
|
||||
flush: () => void;
|
||||
log: LogHandler;
|
||||
readonly warningOccurred: boolean;
|
||||
}
|
||||
|
||||
export type LoadConfigFile = typeof loadConfigFile;
|
||||
|
||||
export function loadConfigFile(
|
||||
fileName: string,
|
||||
commandOptions: any,
|
||||
watchMode?: boolean
|
||||
): Promise<{
|
||||
options: MergedRollupOptions[];
|
||||
warnings: BatchWarnings;
|
||||
}>;
|
||||
+29
@@ -0,0 +1,29 @@
|
||||
/*
|
||||
@license
|
||||
Rollup.js v4.60.0
|
||||
Sun, 22 Mar 2026 06:57:22 GMT - commit 6ecd69fb2ce736c8aabb50829edd227d1792c957
|
||||
|
||||
https://github.com/rollup/rollup
|
||||
|
||||
Released under the MIT License.
|
||||
*/
|
||||
'use strict';
|
||||
|
||||
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
||||
|
||||
require('node:fs/promises');
|
||||
require('node:path');
|
||||
require('node:process');
|
||||
require('node:url');
|
||||
require('./shared/rollup.js');
|
||||
require('./shared/parseAst.js');
|
||||
const loadConfigFile_js = require('./shared/loadConfigFile.js');
|
||||
require('path');
|
||||
require('./native.js');
|
||||
require('node:perf_hooks');
|
||||
require('./getLogFilter.js');
|
||||
|
||||
|
||||
|
||||
exports.loadConfigFile = loadConfigFile_js.loadConfigFile;
|
||||
//# sourceMappingURL=loadConfigFile.js.map
|
||||
+161
@@ -0,0 +1,161 @@
|
||||
const { existsSync } = require('node:fs');
|
||||
const path = require('node:path');
|
||||
const { platform, arch, report } = require('node:process');
|
||||
const { spawnSync } = require('node:child_process');
|
||||
|
||||
const getReportHeader = () => {
|
||||
try {
|
||||
if (platform !== 'win32') {
|
||||
return report.getReport().header;
|
||||
}
|
||||
|
||||
// This is needed because report.getReport() crashes the process on Windows sometimes.
|
||||
const script =
|
||||
"console.log(JSON.stringify(require('node:process').report.getReport().header));";
|
||||
const child = spawnSync(process.execPath, ['-p', script], {
|
||||
encoding: 'utf8',
|
||||
timeout: 3000,
|
||||
windowsHide: true
|
||||
});
|
||||
|
||||
if (child.status !== 0) {
|
||||
return null;
|
||||
}
|
||||
|
||||
// The output from node -p might include a trailing 'undefined' and newline
|
||||
const stdout = child.stdout?.replace(/undefined\r?\n?$/, '').trim();
|
||||
if (!stdout) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return JSON.parse(stdout);
|
||||
} catch {
|
||||
return null;
|
||||
}
|
||||
};
|
||||
|
||||
let reportHeader;
|
||||
const isMingw32 = () => {
|
||||
reportHeader ??= getReportHeader();
|
||||
|
||||
return reportHeader?.osName?.startsWith('MINGW32_NT') ?? false;
|
||||
};
|
||||
|
||||
const isMusl = () => {
|
||||
reportHeader ??= getReportHeader();
|
||||
|
||||
return reportHeader ? !reportHeader.glibcVersionRuntime : false;
|
||||
};
|
||||
|
||||
const bindingsByPlatformAndArch = {
|
||||
android: {
|
||||
arm: { base: 'android-arm-eabi' },
|
||||
arm64: { base: 'android-arm64' }
|
||||
},
|
||||
darwin: {
|
||||
arm64: { base: 'darwin-arm64' },
|
||||
x64: { base: 'darwin-x64' }
|
||||
},
|
||||
freebsd: {
|
||||
arm64: { base: 'freebsd-arm64' },
|
||||
x64: { base: 'freebsd-x64' }
|
||||
},
|
||||
linux: {
|
||||
arm: { base: 'linux-arm-gnueabihf', musl: 'linux-arm-musleabihf' },
|
||||
arm64: { base: 'linux-arm64-gnu', musl: 'linux-arm64-musl' },
|
||||
loong64: { base: 'linux-loong64-gnu', musl: 'linux-loong64-musl' },
|
||||
ppc64: { base: 'linux-ppc64-gnu', musl: 'linux-ppc64-musl' },
|
||||
riscv64: { base: 'linux-riscv64-gnu', musl: 'linux-riscv64-musl' },
|
||||
s390x: { base: 'linux-s390x-gnu', musl: null },
|
||||
x64: { base: 'linux-x64-gnu', musl: 'linux-x64-musl' }
|
||||
},
|
||||
openbsd: {
|
||||
x64: { base: 'openbsd-x64' }
|
||||
},
|
||||
openharmony: {
|
||||
arm64: { base: 'openharmony-arm64' }
|
||||
},
|
||||
win32: {
|
||||
arm64: { base: 'win32-arm64-msvc' },
|
||||
ia32: { base: 'win32-ia32-msvc' },
|
||||
x64: {
|
||||
base: isMingw32() ? 'win32-x64-gnu' : 'win32-x64-msvc'
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
const msvcLinkFilenameByArch = {
|
||||
arm64: 'vc_redist.arm64.exe',
|
||||
ia32: 'vc_redist.x86.exe',
|
||||
x64: 'vc_redist.x64.exe'
|
||||
};
|
||||
|
||||
const packageBase = getPackageBase();
|
||||
const localName = `./rollup.${packageBase}.node`;
|
||||
const requireWithFriendlyError = id => {
|
||||
try {
|
||||
return require(id);
|
||||
} catch (error) {
|
||||
if (
|
||||
platform === 'win32' &&
|
||||
error instanceof Error &&
|
||||
error.code === 'ERR_DLOPEN_FAILED' &&
|
||||
error.message.includes('The specified module could not be found')
|
||||
) {
|
||||
const msvcDownloadLink = `https://aka.ms/vs/17/release/${msvcLinkFilenameByArch[arch]}`;
|
||||
throw new Error(
|
||||
`Failed to load module ${id}. ` +
|
||||
'Required DLL was not found. ' +
|
||||
'This error usually happens when Microsoft Visual C++ Redistributable is not installed. ' +
|
||||
`You can download it from ${msvcDownloadLink}`,
|
||||
{ cause: error }
|
||||
);
|
||||
}
|
||||
|
||||
throw new Error(
|
||||
`Cannot find module ${id}. ` +
|
||||
`npm has a bug related to optional dependencies (https://github.com/npm/cli/issues/4828). ` +
|
||||
'Please try `npm i` again after removing both package-lock.json and node_modules directory.',
|
||||
{ cause: error }
|
||||
);
|
||||
}
|
||||
};
|
||||
|
||||
const { parse, parseAsync, xxhashBase64Url, xxhashBase36, xxhashBase16 } = requireWithFriendlyError(
|
||||
existsSync(path.join(__dirname, localName)) ? localName : `@rollup/rollup-${packageBase}`
|
||||
);
|
||||
|
||||
function getPackageBase() {
|
||||
const imported = bindingsByPlatformAndArch[platform]?.[arch];
|
||||
if (!imported) {
|
||||
throwUnsupportedError(false);
|
||||
}
|
||||
if ('musl' in imported && isMusl()) {
|
||||
return imported.musl || throwUnsupportedError(true);
|
||||
}
|
||||
return imported.base;
|
||||
}
|
||||
|
||||
function throwUnsupportedError(isMusl) {
|
||||
throw new Error(
|
||||
`Your current platform "${platform}${isMusl ? ' (musl)' : ''}" and architecture "${arch}" combination is not yet supported by the native Rollup build. Please use the WASM build "@rollup/wasm-node" instead.
|
||||
|
||||
The following platform-architecture combinations are supported:
|
||||
${Object.entries(bindingsByPlatformAndArch)
|
||||
.flatMap(([platformName, architectures]) =>
|
||||
Object.entries(architectures).flatMap(([architectureName, { musl }]) => {
|
||||
const name = `${platformName}-${architectureName}`;
|
||||
return musl ? [name, `${name} (musl)`] : [name];
|
||||
})
|
||||
)
|
||||
.join('\n')}
|
||||
|
||||
If this is important to you, please consider supporting Rollup to make a native build for your platform and architecture available.`
|
||||
);
|
||||
}
|
||||
|
||||
module.exports.parse = parse;
|
||||
module.exports.parseAsync = parseAsync;
|
||||
module.exports.xxhashBase64Url = xxhashBase64Url;
|
||||
module.exports.xxhashBase36 = xxhashBase36;
|
||||
module.exports.xxhashBase16 = xxhashBase16;
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
import type { ParseAst, ParseAstAsync } from './rollup';
|
||||
|
||||
export const parseAst: ParseAst;
|
||||
export const parseAstAsync: ParseAstAsync;
|
||||
+22
@@ -0,0 +1,22 @@
|
||||
/*
|
||||
@license
|
||||
Rollup.js v4.60.0
|
||||
Sun, 22 Mar 2026 06:57:22 GMT - commit 6ecd69fb2ce736c8aabb50829edd227d1792c957
|
||||
|
||||
https://github.com/rollup/rollup
|
||||
|
||||
Released under the MIT License.
|
||||
*/
|
||||
'use strict';
|
||||
|
||||
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
||||
|
||||
require('./native.js');
|
||||
const parseAst_js = require('./shared/parseAst.js');
|
||||
require('node:path');
|
||||
|
||||
|
||||
|
||||
exports.parseAst = parseAst_js.parseAst;
|
||||
exports.parseAstAsync = parseAst_js.parseAstAsync;
|
||||
//# sourceMappingURL=parseAst.js.map
|
||||
+1225
File diff suppressed because it is too large
Load Diff
+127
@@ -0,0 +1,127 @@
|
||||
/*
|
||||
@license
|
||||
Rollup.js v4.60.0
|
||||
Sun, 22 Mar 2026 06:57:22 GMT - commit 6ecd69fb2ce736c8aabb50829edd227d1792c957
|
||||
|
||||
https://github.com/rollup/rollup
|
||||
|
||||
Released under the MIT License.
|
||||
*/
|
||||
'use strict';
|
||||
|
||||
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
||||
|
||||
const rollup = require('./shared/rollup.js');
|
||||
const parseAst_js = require('./shared/parseAst.js');
|
||||
const fseventsImporter = require('./shared/fsevents-importer.js');
|
||||
require('node:process');
|
||||
require('node:path');
|
||||
require('path');
|
||||
require('./native.js');
|
||||
require('node:perf_hooks');
|
||||
require('node:fs/promises');
|
||||
|
||||
class WatchEmitter {
|
||||
constructor() {
|
||||
this.currentHandlers = Object.create(null);
|
||||
this.persistentHandlers = Object.create(null);
|
||||
}
|
||||
// Will be overwritten by Rollup
|
||||
async close() { }
|
||||
emit(event, ...parameters) {
|
||||
return Promise.all([...this.getCurrentHandlers(event), ...this.getPersistentHandlers(event)].map(handler => handler(...parameters)));
|
||||
}
|
||||
off(event, listener) {
|
||||
const listeners = this.persistentHandlers[event];
|
||||
if (listeners) {
|
||||
// A hack stolen from "mitt": ">>> 0" does not change numbers >= 0, but -1
|
||||
// (which would remove the last array element if used unchanged) is turned
|
||||
// into max_int, which is outside the array and does not change anything.
|
||||
listeners.splice(listeners.indexOf(listener) >>> 0, 1);
|
||||
}
|
||||
return this;
|
||||
}
|
||||
on(event, listener) {
|
||||
this.getPersistentHandlers(event).push(listener);
|
||||
return this;
|
||||
}
|
||||
onCurrentRun(event, listener) {
|
||||
this.getCurrentHandlers(event).push(listener);
|
||||
return this;
|
||||
}
|
||||
once(event, listener) {
|
||||
const selfRemovingListener = (...parameters) => {
|
||||
this.off(event, selfRemovingListener);
|
||||
return listener(...parameters);
|
||||
};
|
||||
this.on(event, selfRemovingListener);
|
||||
return this;
|
||||
}
|
||||
removeAllListeners() {
|
||||
this.removeListenersForCurrentRun();
|
||||
this.persistentHandlers = Object.create(null);
|
||||
return this;
|
||||
}
|
||||
removeListenersForCurrentRun() {
|
||||
this.currentHandlers = Object.create(null);
|
||||
return this;
|
||||
}
|
||||
getCurrentHandlers(event) {
|
||||
return this.currentHandlers[event] || (this.currentHandlers[event] = []);
|
||||
}
|
||||
getPersistentHandlers(event) {
|
||||
return this.persistentHandlers[event] || (this.persistentHandlers[event] = []);
|
||||
}
|
||||
}
|
||||
|
||||
function watch(configs) {
|
||||
const emitter = new WatchEmitter();
|
||||
watchInternal(configs, emitter).catch(error => {
|
||||
rollup.handleError(error);
|
||||
});
|
||||
return emitter;
|
||||
}
|
||||
function ensureTrailingSlash(path) {
|
||||
if (path[path.length - 1] !== '/') {
|
||||
return `${path}/`;
|
||||
}
|
||||
return path;
|
||||
}
|
||||
function checkWatchConfig(config) {
|
||||
for (const item of config) {
|
||||
if (typeof item.watch !== 'boolean' && item.watch?.allowInputInsideOutputPath) {
|
||||
break;
|
||||
}
|
||||
if (item.input && item.output) {
|
||||
const input = typeof item.input === 'string' ? rollup.ensureArray(item.input) : item.input;
|
||||
const outputs = rollup.ensureArray(item.output);
|
||||
for (const index in input) {
|
||||
const inputPath = input[index];
|
||||
if (typeof inputPath !== 'string') {
|
||||
continue;
|
||||
}
|
||||
const outputWithInputAsSubPath = outputs.find(({ dir }) => dir && ensureTrailingSlash(inputPath).startsWith(ensureTrailingSlash(dir)));
|
||||
if (outputWithInputAsSubPath) {
|
||||
parseAst_js.error(parseAst_js.logInvalidOption('watch', parseAst_js.URL_WATCH, `the input "${inputPath}" is a subpath of the output "${outputWithInputAsSubPath.dir}"`));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
async function watchInternal(configs, emitter) {
|
||||
const optionsList = await Promise.all(rollup.ensureArray(configs).map(config => rollup.mergeOptions(config, true)));
|
||||
const watchOptionsList = optionsList.filter(config => config.watch !== false);
|
||||
if (watchOptionsList.length === 0) {
|
||||
return parseAst_js.error(parseAst_js.logInvalidOption('watch', parseAst_js.URL_WATCH, 'there must be at least one config where "watch" is not set to "false"'));
|
||||
}
|
||||
checkWatchConfig(watchOptionsList);
|
||||
await fseventsImporter.loadFsEvents();
|
||||
const { Watcher } = await Promise.resolve().then(() => require('./shared/watch.js'));
|
||||
new Watcher(watchOptionsList, emitter);
|
||||
}
|
||||
|
||||
exports.VERSION = rollup.version;
|
||||
exports.defineConfig = rollup.defineConfig;
|
||||
exports.rollup = rollup.rollup;
|
||||
exports.watch = watch;
|
||||
//# sourceMappingURL=rollup.js.map
|
||||
+37
@@ -0,0 +1,37 @@
|
||||
/*
|
||||
@license
|
||||
Rollup.js v4.60.0
|
||||
Sun, 22 Mar 2026 06:57:22 GMT - commit 6ecd69fb2ce736c8aabb50829edd227d1792c957
|
||||
|
||||
https://github.com/rollup/rollup
|
||||
|
||||
Released under the MIT License.
|
||||
*/
|
||||
'use strict';
|
||||
|
||||
let fsEvents;
|
||||
let fsEventsImportError;
|
||||
async function loadFsEvents() {
|
||||
try {
|
||||
({ default: fsEvents } = await import('fsevents'));
|
||||
}
|
||||
catch (error) {
|
||||
fsEventsImportError = error;
|
||||
}
|
||||
}
|
||||
// A call to this function will be injected into the chokidar code
|
||||
function getFsEvents() {
|
||||
if (fsEventsImportError)
|
||||
throw fsEventsImportError;
|
||||
return fsEvents;
|
||||
}
|
||||
|
||||
const fseventsImporter = /*#__PURE__*/Object.defineProperty({
|
||||
__proto__: null,
|
||||
getFsEvents,
|
||||
loadFsEvents
|
||||
}, Symbol.toStringTag, { value: 'Module' });
|
||||
|
||||
exports.fseventsImporter = fseventsImporter;
|
||||
exports.loadFsEvents = loadFsEvents;
|
||||
//# sourceMappingURL=fsevents-importer.js.map
|
||||
+9003
File diff suppressed because it is too large
Load Diff
+572
File diff suppressed because it is too large
Load Diff
+2361
File diff suppressed because one or more lines are too long
+24044
File diff suppressed because it is too large
Load Diff
+542
File diff suppressed because it is too large
Load Diff
+324
@@ -0,0 +1,324 @@
|
||||
/*
|
||||
@license
|
||||
Rollup.js v4.60.0
|
||||
Sun, 22 Mar 2026 06:57:22 GMT - commit 6ecd69fb2ce736c8aabb50829edd227d1792c957
|
||||
|
||||
https://github.com/rollup/rollup
|
||||
|
||||
Released under the MIT License.
|
||||
*/
|
||||
'use strict';
|
||||
|
||||
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
||||
|
||||
const rollup = require('./rollup.js');
|
||||
const path = require('node:path');
|
||||
const process = require('node:process');
|
||||
const index = require('./index.js');
|
||||
const node_os = require('node:os');
|
||||
require('./parseAst.js');
|
||||
require('../native.js');
|
||||
require('path');
|
||||
require('node:perf_hooks');
|
||||
require('node:fs/promises');
|
||||
require('fs');
|
||||
require('util');
|
||||
require('stream');
|
||||
require('os');
|
||||
require('./fsevents-importer.js');
|
||||
require('events');
|
||||
|
||||
class FileWatcher {
|
||||
constructor(task, chokidarOptions) {
|
||||
this.transformWatchers = new Map();
|
||||
this.chokidarOptions = chokidarOptions;
|
||||
this.task = task;
|
||||
this.watcher = this.createWatcher(null);
|
||||
}
|
||||
close() {
|
||||
this.watcher.close();
|
||||
for (const watcher of this.transformWatchers.values()) {
|
||||
watcher.close();
|
||||
}
|
||||
}
|
||||
unwatch(id) {
|
||||
this.watcher.unwatch(id);
|
||||
const transformWatcher = this.transformWatchers.get(id);
|
||||
if (transformWatcher) {
|
||||
this.transformWatchers.delete(id);
|
||||
transformWatcher.close();
|
||||
}
|
||||
}
|
||||
watch(id, isTransformDependency) {
|
||||
if (isTransformDependency) {
|
||||
const watcher = this.transformWatchers.get(id) ?? this.createWatcher(id);
|
||||
watcher.add(id);
|
||||
this.transformWatchers.set(id, watcher);
|
||||
}
|
||||
else {
|
||||
this.watcher.add(id);
|
||||
}
|
||||
}
|
||||
createWatcher(transformWatcherId) {
|
||||
const task = this.task;
|
||||
const isLinux = node_os.platform() === 'linux';
|
||||
const isFreeBSD = node_os.platform() === 'freebsd';
|
||||
const isTransformDependency = transformWatcherId !== null;
|
||||
const handleChange = (id, event) => {
|
||||
const changedId = transformWatcherId || id;
|
||||
if (isLinux || isFreeBSD) {
|
||||
// unwatching and watching fixes an issue with chokidar where on certain systems,
|
||||
// a file that was unlinked and immediately recreated would create a change event
|
||||
// but then no longer any further events
|
||||
watcher.unwatch(changedId);
|
||||
watcher.add(changedId);
|
||||
}
|
||||
task.invalidate(changedId, { event, isTransformDependency });
|
||||
};
|
||||
const watcher = index.chokidar
|
||||
.watch([], this.chokidarOptions)
|
||||
.on('add', id => handleChange(id, 'create'))
|
||||
.on('change', id => handleChange(id, 'update'))
|
||||
.on('unlink', id => handleChange(id, 'delete'));
|
||||
return watcher;
|
||||
}
|
||||
}
|
||||
|
||||
const eventsRewrites = {
|
||||
create: {
|
||||
create: 'buggy',
|
||||
delete: null, //delete file from map
|
||||
update: 'create'
|
||||
},
|
||||
delete: {
|
||||
create: 'update',
|
||||
delete: 'buggy',
|
||||
update: 'buggy'
|
||||
},
|
||||
update: {
|
||||
create: 'buggy',
|
||||
delete: 'delete',
|
||||
update: 'update'
|
||||
}
|
||||
};
|
||||
class Watcher {
|
||||
constructor(optionsList, emitter) {
|
||||
this.buildDelay = 0;
|
||||
this.buildTimeout = null;
|
||||
this.closed = false;
|
||||
this.invalidatedIds = new Map();
|
||||
this.rerun = false;
|
||||
this.running = true;
|
||||
this.emitter = emitter;
|
||||
emitter.close = this.close.bind(this);
|
||||
this.tasks = optionsList.map(options => new Task(this, options));
|
||||
for (const { watch } of optionsList) {
|
||||
if (watch && typeof watch.buildDelay === 'number') {
|
||||
this.buildDelay = Math.max(this.buildDelay, watch.buildDelay);
|
||||
}
|
||||
}
|
||||
process.nextTick(() => this.run());
|
||||
}
|
||||
async close() {
|
||||
if (this.closed)
|
||||
return;
|
||||
this.closed = true;
|
||||
if (this.buildTimeout)
|
||||
clearTimeout(this.buildTimeout);
|
||||
for (const task of this.tasks) {
|
||||
task.close();
|
||||
}
|
||||
await this.emitter.emit('close');
|
||||
this.emitter.removeAllListeners();
|
||||
}
|
||||
invalidate(file) {
|
||||
if (file) {
|
||||
const previousEvent = this.invalidatedIds.get(file.id);
|
||||
const event = previousEvent ? eventsRewrites[previousEvent][file.event] : file.event;
|
||||
if (event === 'buggy') {
|
||||
//TODO: throws or warn? Currently just ignore, uses new event
|
||||
this.invalidatedIds.set(file.id, file.event);
|
||||
}
|
||||
else if (event === null) {
|
||||
this.invalidatedIds.delete(file.id);
|
||||
}
|
||||
else {
|
||||
this.invalidatedIds.set(file.id, event);
|
||||
}
|
||||
}
|
||||
if (this.running) {
|
||||
this.rerun = true;
|
||||
return;
|
||||
}
|
||||
if (this.buildTimeout)
|
||||
clearTimeout(this.buildTimeout);
|
||||
this.buildTimeout = setTimeout(async () => {
|
||||
this.buildTimeout = null;
|
||||
try {
|
||||
await Promise.all([...this.invalidatedIds].map(([id, event]) => this.emitter.emit('change', id, { event })));
|
||||
this.invalidatedIds.clear();
|
||||
await this.emitter.emit('restart');
|
||||
this.emitter.removeListenersForCurrentRun();
|
||||
this.run();
|
||||
}
|
||||
catch (error) {
|
||||
this.invalidatedIds.clear();
|
||||
await this.emitter.emit('event', {
|
||||
code: 'ERROR',
|
||||
error,
|
||||
result: null
|
||||
});
|
||||
await this.emitter.emit('event', {
|
||||
code: 'END'
|
||||
});
|
||||
}
|
||||
}, this.buildDelay);
|
||||
}
|
||||
async run() {
|
||||
this.running = true;
|
||||
await this.emitter.emit('event', {
|
||||
code: 'START'
|
||||
});
|
||||
for (const task of this.tasks) {
|
||||
await task.run();
|
||||
}
|
||||
this.running = false;
|
||||
await this.emitter.emit('event', {
|
||||
code: 'END'
|
||||
});
|
||||
if (this.rerun) {
|
||||
this.rerun = false;
|
||||
this.invalidate();
|
||||
}
|
||||
}
|
||||
}
|
||||
class Task {
|
||||
constructor(watcher, options) {
|
||||
this.cache = { modules: [] };
|
||||
this.watchFiles = [];
|
||||
this.closed = false;
|
||||
this.invalidated = true;
|
||||
this.watched = new Set();
|
||||
this.watcher = watcher;
|
||||
this.options = options;
|
||||
this.skipWrite = Boolean(options.watch && options.watch.skipWrite);
|
||||
this.outputs = this.options.output;
|
||||
this.outputFiles = this.outputs.map(output => {
|
||||
if (output.file || output.dir)
|
||||
return path.resolve(output.file || output.dir);
|
||||
return undefined;
|
||||
});
|
||||
this.watchOptions = this.options.watch || {};
|
||||
this.filter = rollup.createFilter(this.watchOptions.include, this.watchOptions.exclude);
|
||||
this.fileWatcher = new FileWatcher(this, {
|
||||
...this.watchOptions.chokidar,
|
||||
disableGlobbing: true,
|
||||
ignoreInitial: true
|
||||
});
|
||||
}
|
||||
close() {
|
||||
this.closed = true;
|
||||
this.fileWatcher.close();
|
||||
}
|
||||
invalidate(id, details) {
|
||||
this.invalidated = true;
|
||||
if (details.isTransformDependency) {
|
||||
for (const module of this.cache.modules) {
|
||||
if (!module.transformDependencies.includes(id))
|
||||
continue;
|
||||
// effective invalidation
|
||||
module.originalCode = null;
|
||||
}
|
||||
}
|
||||
this.watcher.invalidate({ event: details.event, id });
|
||||
this.watchOptions.onInvalidate?.(id);
|
||||
}
|
||||
async run() {
|
||||
if (!this.invalidated)
|
||||
return;
|
||||
this.invalidated = false;
|
||||
const options = {
|
||||
...this.options,
|
||||
cache: this.cache
|
||||
};
|
||||
const start = Date.now();
|
||||
await this.watcher.emitter.emit('event', {
|
||||
code: 'BUNDLE_START',
|
||||
input: this.options.input,
|
||||
output: this.outputFiles
|
||||
});
|
||||
let result = null;
|
||||
try {
|
||||
result = await rollup.rollupInternal(options, this.watcher.emitter);
|
||||
if (this.closed) {
|
||||
return;
|
||||
}
|
||||
this.updateWatchedFiles(result);
|
||||
if (!this.skipWrite) {
|
||||
await Promise.all(this.outputs.map(output => result.write(output)));
|
||||
if (this.closed) {
|
||||
return;
|
||||
}
|
||||
this.updateWatchedFiles(result);
|
||||
}
|
||||
await this.watcher.emitter.emit('event', {
|
||||
code: 'BUNDLE_END',
|
||||
duration: Date.now() - start,
|
||||
input: this.options.input,
|
||||
output: this.outputFiles,
|
||||
result
|
||||
});
|
||||
}
|
||||
catch (error) {
|
||||
if (!this.closed) {
|
||||
if (Array.isArray(error.watchFiles)) {
|
||||
for (const id of error.watchFiles) {
|
||||
this.watchFile(id);
|
||||
}
|
||||
}
|
||||
if (error.id) {
|
||||
this.cache.modules = this.cache.modules.filter(module => module.id !== error.id);
|
||||
}
|
||||
}
|
||||
await this.watcher.emitter.emit('event', {
|
||||
code: 'ERROR',
|
||||
error,
|
||||
result
|
||||
});
|
||||
}
|
||||
}
|
||||
updateWatchedFiles(result) {
|
||||
const previouslyWatched = this.watched;
|
||||
this.watched = new Set();
|
||||
this.watchFiles = result.watchFiles;
|
||||
this.cache = result.cache;
|
||||
for (const id of this.watchFiles) {
|
||||
this.watchFile(id);
|
||||
}
|
||||
for (const module of this.cache.modules) {
|
||||
for (const depId of module.transformDependencies) {
|
||||
this.watchFile(depId, true);
|
||||
}
|
||||
}
|
||||
for (const id of previouslyWatched) {
|
||||
if (!this.watched.has(id)) {
|
||||
this.fileWatcher.unwatch(id);
|
||||
}
|
||||
}
|
||||
}
|
||||
watchFile(id, isTransformDependency = false) {
|
||||
if (!this.filter(id))
|
||||
return;
|
||||
this.watched.add(id);
|
||||
if (this.outputFiles.includes(id)) {
|
||||
throw new Error('Cannot import the generated bundle');
|
||||
}
|
||||
// this is necessary to ensure that any 'renamed' files
|
||||
// continue to be watched following an error
|
||||
this.fileWatcher.watch(id, isTransformDependency);
|
||||
}
|
||||
}
|
||||
|
||||
exports.Task = Task;
|
||||
exports.Watcher = Watcher;
|
||||
//# sourceMappingURL=watch.js.map
|
||||
Reference in New Issue
Block a user