mirror of
https://gitgud.io/BondageProjects/Bondage-College.git
synced 2025-04-25 17:59:34 +00:00
Make the tools error-free
Possibly the gulp minification pipeline is broken; I can't spare the disk space — or the time — to run that at the moment. CI and the changelog generator are fine though. Only remains a few errors in AssetCheck, which look legitimate, but at that point I'm done playing packaging games.
This commit is contained in:
parent
844299e107
commit
14123002b3
14 changed files with 815 additions and 202 deletions
|
@ -11,9 +11,32 @@ This changelog follows the format outlined in [keepachangelog.com](https://keepa
|
|||
|
||||
**Note to contributors:** To avoid merge conflicts, please don't update this file yourself in your PRs - one of the developers will update the changelog with your change before your PR is merged.
|
||||
|
||||
* Changelog last updated: 2025-01-20
|
||||
* Last recorded PR: [#5372](https://gitgud.io/BondageProjects/Bondage-College/-/merge_requests/5372)
|
||||
* Last recorded commit hash: `20d260bde2f23349a54449d8ced9f52a071bf73a`
|
||||
* Changelog last updated: 2025-01-25
|
||||
* Last recorded PR: [#5367](https://gitgud.io/BondageProjects/Bondage-College/-/merge_requests/5367)
|
||||
* Last recorded commit hash: `2c88cee819d32702e64d4a2be121f88cc6707b32`
|
||||
|
||||
## [Generated]
|
||||
* git4nick - New Item Throne ([#5373](https://gitgud.io/BondageProjects/Bondage-College/-/merge_requests/5373))
|
||||
* Rama - ENH: Ensure that the asset's `ParentGroup` can be specified on a pose-by-pose basis ([#5370](https://gitgud.io/BondageProjects/Bondage-College/-/merge_requests/5370))
|
||||
* Estsanatlehi - Merge ChatCreate into ChatAdmin ([#5282](https://gitgud.io/BondageProjects/Bondage-College/-/merge_requests/5282))
|
||||
* Rama - HOTFIX: Add more async-related safety measures for dialog subscreen reloads ([#5374](https://gitgud.io/BondageProjects/Bondage-College/-/merge_requests/5374))
|
||||
* Estsanatlehi - Monthly post-merge CI cleanup ([#5367](https://gitgud.io/BondageProjects/Bondage-College/-/merge_requests/5367))
|
||||
|
||||
## [Unmatched commits]
|
||||
* git4nick - New Item Throne (PR not found)
|
||||
* Ben987 - R112 + Credits + Patrons (PR not found)
|
||||
* Estsanatlehi - Merge the ChatCreate screen into ChatAdmin (PR not found)
|
||||
* l3ra - fix: background text using old ChatCreate variable (PR not found)
|
||||
* l3ra - fix: missing Whitelist properties (PR not found)
|
||||
* l3ra - style: ensure consistent ordering of admin/whitelist/ban (PR not found)
|
||||
* Estsanatlehi - fix: create rooms in the correct space (PR not found)
|
||||
* l3ra - fix: replace outdated strings (and translations) (PR not found)
|
||||
* Rama - ENH: Allow `ElementPositionFixed` to take both elements as well as element IDs (PR not found)
|
||||
* Rama - MAINT: Add more `DialogMenu.Reload` async-related precautions (PR not found)
|
||||
* Estsanatlehi - Monthly post-merge CI cleanup (PR not found)
|
||||
* Estsanatlehi - Update uses of removed ChatCreate variables in Pandora (PR not found)
|
||||
* Ben987 - FIX - Remove ChatCreate from Index (PR not found)
|
||||
|
||||
|
||||
## [R112]
|
||||
|
||||
|
|
12
BondageClub/Tools/Node/.eslintrc.cjs
Normal file
12
BondageClub/Tools/Node/.eslintrc.cjs
Normal file
|
@ -0,0 +1,12 @@
|
|||
// eslint-disable-next-line strict
|
||||
"use strict";
|
||||
/** @type {import("eslint").ESLint.ConfigData} */
|
||||
module.exports = {
|
||||
env: {
|
||||
node: true,
|
||||
},
|
||||
parserOptions: {
|
||||
sourceType: "module",
|
||||
ecmaVersion: 2022,
|
||||
},
|
||||
};
|
|
@ -1,9 +0,0 @@
|
|||
"use strict";
|
||||
module.exports = {
|
||||
env: {
|
||||
node: true,
|
||||
},
|
||||
parserOptions: {
|
||||
ecmaVersion: 2022,
|
||||
},
|
||||
};
|
|
@ -1,10 +1,7 @@
|
|||
"use strict";
|
||||
import vm from "vm";
|
||||
import fs from "fs";
|
||||
|
||||
const vm = require("vm");
|
||||
const fs = require("fs");
|
||||
|
||||
const { NEEDED_FILES, BASE_PATH, error, loadCSV, fromEntries, enumerate, keys, entries } = require("./Common.js");
|
||||
const common = require("./Common.js");
|
||||
import { NEEDED_FILES, BASE_PATH, error, loadCSV, fromEntries, enumerate, keys, entries, errorState } from "./Common.js";
|
||||
|
||||
/**
|
||||
* Checks for {@link AssetDefinition.DynamicGroupName}
|
||||
|
@ -1396,20 +1393,20 @@ function sanitizeVMOutput(input) {
|
|||
const dialogArray = loadCSV("Assets/Female3DCG/AssetStrings.csv", 2);
|
||||
|
||||
// No further checks if initial data load failed
|
||||
if (common.localError) {
|
||||
if (errorState.local) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Check all groups
|
||||
for (const Group of AssetFemale3DCG) {
|
||||
common.localError = false;
|
||||
errorState.local = false;
|
||||
|
||||
// Check all assets in groups
|
||||
for (const Asset of Group.Asset) {
|
||||
if (typeof Asset === "string") {
|
||||
continue;
|
||||
}
|
||||
common.localError = false;
|
||||
errorState.local = false;
|
||||
|
||||
// Check any extended item config
|
||||
if (Asset.Extended) {
|
||||
|
@ -1446,7 +1443,7 @@ function sanitizeVMOutput(input) {
|
|||
}
|
||||
}
|
||||
|
||||
if (common.globalError) {
|
||||
if (errorState.global) {
|
||||
console.log("WARNING: Type errors detected, skipping other checks");
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -1,11 +1,9 @@
|
|||
/** Common utility scripts for the test suit. */
|
||||
/** Common utility scripts for the test suite. */
|
||||
|
||||
"use strict";
|
||||
|
||||
const fs = require("fs");
|
||||
import fs from "fs";
|
||||
|
||||
/** Files needed to check the Female3DCG assets. */
|
||||
const NEEDED_FILES = [
|
||||
export const NEEDED_FILES = [
|
||||
"Scripts/Common.js",
|
||||
"Scripts/Dialog.js",
|
||||
"Scripts/Pose.js",
|
||||
|
@ -98,36 +96,38 @@ const NEEDED_FILES = [
|
|||
];
|
||||
|
||||
/** The base path for any BC asset/script lookup. */
|
||||
const BASE_PATH = "../../";
|
||||
export const BASE_PATH = "../../";
|
||||
|
||||
let localError = false;
|
||||
let globalError = false;
|
||||
export const errorState = {
|
||||
local: false,
|
||||
global: false,
|
||||
};
|
||||
|
||||
/**
|
||||
* Logs the error to console and sets erroneous exit code
|
||||
* @param {string} text The error
|
||||
*/
|
||||
function error(text) {
|
||||
export function error(text) {
|
||||
console.log("ERROR:", text);
|
||||
process.exitCode = 1;
|
||||
localError = true;
|
||||
globalError = true;
|
||||
errorState.local = true;
|
||||
errorState.global = true;
|
||||
}
|
||||
|
||||
/** @see {@link Object.entries} */
|
||||
const entries = /** @type {<KT extends string, VT>(record: Partial<Record<KT, VT>>) => [key: KT, value: VT][]} */(Object.entries);
|
||||
export const entries = /** @type {<KT extends string, VT>(record: Partial<Record<KT, VT>>) => [key: KT, value: VT][]} */(Object.entries);
|
||||
|
||||
/** @see {@link Object.keys} */
|
||||
const keys = /** @type {<KT extends string>(record: Partial<Record<KT, unknown>>) => KT[]} */(Object.keys);
|
||||
export const keys = /** @type {<KT extends string>(record: Partial<Record<KT, unknown>>) => KT[]} */(Object.keys);
|
||||
|
||||
/** @see {@link Object.fromEntries} */
|
||||
const fromEntries = /** @type {<KT extends string, VT>(list: Iterable<readonly [key: KT, value: VT]>) => Record<KT, VT>} */(Object.fromEntries);
|
||||
export const fromEntries = /** @type {<KT extends string, VT>(list: Iterable<readonly [key: KT, value: VT]>) => Record<KT, VT>} */(Object.fromEntries);
|
||||
|
||||
/**
|
||||
* Return whether the passed object is a record/interface.
|
||||
* @type {(obj: unknown) => obj is Record<string, unknown>}
|
||||
*/
|
||||
function isObject(obj) {
|
||||
export function isObject(obj) {
|
||||
return obj !== null && typeof obj === "object" && !Array.isArray(obj);
|
||||
}
|
||||
|
||||
|
@ -136,7 +136,7 @@ function isObject(obj) {
|
|||
* @param {string} str - Content of the CSV
|
||||
* @returns {string[][]} Array representing each line of the parsed content, each line itself is split by commands and stored within an array.
|
||||
*/
|
||||
function parseCSV(str) {
|
||||
export function parseCSV(str) {
|
||||
/** @type {string[][]} */
|
||||
let arr = [];
|
||||
let quote = false; // true means we're inside a quoted field
|
||||
|
@ -192,7 +192,7 @@ function parseCSV(str) {
|
|||
* @param {string} path Path to file, relative to BondageClub directory
|
||||
* @param {number} expectedWidth Expected number of columns
|
||||
*/
|
||||
function loadCSV(path, expectedWidth) {
|
||||
export function loadCSV(path, expectedWidth) {
|
||||
const data = parseCSV(fs.readFileSync(BASE_PATH + path, { encoding: "utf-8" }));
|
||||
for (let line = 0; line < data.length; line++) {
|
||||
if (data[line].length !== expectedWidth) {
|
||||
|
@ -210,7 +210,7 @@ function loadCSV(path, expectedWidth) {
|
|||
* @param {readonly T2[]} lst2
|
||||
* @returns {[T1, T2][]}
|
||||
*/
|
||||
function zip(lst1, lst2) {
|
||||
export function zip(lst1, lst2) {
|
||||
const length = Math.min(lst1.length, lst2.length);
|
||||
/** @type {[T1, T2][]} */
|
||||
const ret = [];
|
||||
|
@ -227,7 +227,7 @@ function zip(lst1, lst2) {
|
|||
* @param {Readonly<T>} template A record containing *all* allowed keys and their default values
|
||||
* @returns {T}
|
||||
*/
|
||||
function validateArgv(argv, template) {
|
||||
export function validateArgv(argv, template) {
|
||||
const { _, ...kwargs } = argv;
|
||||
|
||||
/** @type {string[]} */
|
||||
|
@ -260,27 +260,10 @@ function validateArgv(argv, template) {
|
|||
* @param {number} step
|
||||
* @returns {Generator<[index: number, value: T], void>}
|
||||
*/
|
||||
function *enumerate(iterable, start=0, step=1) {
|
||||
export function *enumerate(iterable, start=0, step=1) {
|
||||
let i = start;
|
||||
for (const j of iterable) {
|
||||
yield [i, j];
|
||||
i += step;
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
NEEDED_FILES,
|
||||
BASE_PATH,
|
||||
localError,
|
||||
globalError,
|
||||
error,
|
||||
entries,
|
||||
keys,
|
||||
fromEntries,
|
||||
isObject,
|
||||
loadCSV,
|
||||
parseCSV,
|
||||
zip,
|
||||
validateArgv,
|
||||
enumerate,
|
||||
};
|
||||
|
|
|
@ -1,7 +1,5 @@
|
|||
"use strict";
|
||||
|
||||
const fs = require("fs");
|
||||
const { BASE_PATH, error } = require("./Common");
|
||||
import fs from "fs";
|
||||
import { BASE_PATH, error } from "./Common.js";
|
||||
|
||||
/**
|
||||
* @param {string} root
|
||||
|
|
|
@ -1,17 +1,14 @@
|
|||
// @ts-check
|
||||
"use strict";
|
||||
const fs = require("fs");
|
||||
const path = require("path");
|
||||
const util = require("util");
|
||||
const cheerio = require("cheerio");
|
||||
const { marked } = require("marked");
|
||||
const simpleGit = require("simple-git");
|
||||
const nfetch = require("node-fetch");
|
||||
import fs from "fs";
|
||||
import path from "path";
|
||||
import util from "util";
|
||||
import * as cheerio from "cheerio";
|
||||
import { marked } from "marked";
|
||||
import { simpleGit } from "simple-git";
|
||||
|
||||
const readFileAsync = util.promisify(fs.readFile);
|
||||
const writeFileAsync = util.promisify(fs.writeFile);
|
||||
|
||||
const bcRoot = path.resolve(__dirname, "../..");
|
||||
const bcRoot = path.resolve(import.meta.dirname, "../..");
|
||||
const htmlPath = path.join(bcRoot, "changelog.html");
|
||||
const markdownPath = path.join(bcRoot, "CHANGELOG.md");
|
||||
|
||||
|
@ -133,7 +130,7 @@ async function generateChangelogHtml() {
|
|||
|
||||
const startIndex = sourceMarkdown.search(/^## \[R[0-9a-zA-Z]+]/m);
|
||||
const trimmedMarkdown = sourceMarkdown.substring(startIndex);
|
||||
const renderedMarkdown = marked.parse(trimmedMarkdown);
|
||||
const renderedMarkdown = await marked.parse(trimmedMarkdown);
|
||||
|
||||
const $ = cheerio.load(sourceHtml);
|
||||
$("body").empty()
|
||||
|
@ -143,7 +140,13 @@ async function generateChangelogHtml() {
|
|||
.append(generateContributorNote())
|
||||
.append(renderedMarkdown);
|
||||
|
||||
await writeFileAsync(htmlPath, $.root().html());
|
||||
const contents = $.root().html();
|
||||
if (!contents) {
|
||||
console.error(`no contents?`);
|
||||
return;
|
||||
}
|
||||
|
||||
await writeFileAsync(htmlPath, contents);
|
||||
}
|
||||
|
||||
function generateContributorNote() {
|
||||
|
@ -175,8 +178,8 @@ async function fetchMergeRequests(page) {
|
|||
for (let i = 0; i < MAX_ATTEMPTS; i++) {
|
||||
console.log(`Fetching page ${page} of merge requests` + (i > 0 ? `(attempt ${i + 1})` : ''));
|
||||
try {
|
||||
const response = await nfetch(`https://gitgud.io/api/v4/projects/${GIT_GUD_PROJECT_ID}/merge_requests?page=${page}`);
|
||||
return await response.json();
|
||||
const response = await fetch(`https://gitgud.io/api/v4/projects/${GIT_GUD_PROJECT_ID}/merge_requests?page=${page}`);
|
||||
return /** @type {any} */ (await response.json());
|
||||
} catch (error) {
|
||||
console.warn(`Fetch of merge request page ${page} failed. Retrying...`);
|
||||
await new Promise((resolve) => setTimeout(resolve, 1000));
|
||||
|
@ -187,8 +190,7 @@ async function fetchMergeRequests(page) {
|
|||
}
|
||||
|
||||
async function getCommits() {
|
||||
/** @type {simpleGit.SimpleGit} */
|
||||
// @ts-expect-error
|
||||
/** @type {import("simple-git").SimpleGit} */
|
||||
const git = simpleGit(bcRoot);
|
||||
|
||||
const remoteName = await git.revparse(['--abbrev-ref', "--symbolic-full-name", "@{u}"]);
|
||||
|
|
|
@ -1,12 +1,10 @@
|
|||
"use strict";
|
||||
import vm from "vm";
|
||||
import fs from "fs";
|
||||
import process from "process";
|
||||
import minimist from "minimist";
|
||||
import util from 'util';
|
||||
|
||||
const vm = require("vm");
|
||||
const fs = require("fs");
|
||||
const process = require("process");
|
||||
const minimist = require("minimist");
|
||||
const util = require('util');
|
||||
|
||||
const {
|
||||
import {
|
||||
NEEDED_FILES,
|
||||
BASE_PATH,
|
||||
loadCSV,
|
||||
|
@ -15,7 +13,7 @@ const {
|
|||
keys,
|
||||
isObject,
|
||||
validateArgv,
|
||||
} = require("./Common.js");
|
||||
} from "./Common.js";
|
||||
|
||||
/** @type {<T>(obj: T) => T} */
|
||||
function noop(obj) {
|
||||
|
|
|
@ -1,11 +1,9 @@
|
|||
"use strict";
|
||||
import fs from "fs";
|
||||
import minimist from "minimist";
|
||||
import path from "path";
|
||||
import { createArrayCsvWriter } from 'csv-writer';
|
||||
|
||||
const fs = require("fs");
|
||||
const minimist = require("minimist");
|
||||
const path = require("path");
|
||||
const { createArrayCsvWriter } = require('csv-writer');
|
||||
|
||||
const { parseCSV, zip, validateArgv, BASE_PATH } = require("./Common.js");
|
||||
import { parseCSV, zip, validateArgv, BASE_PATH } from "./Common.js";
|
||||
|
||||
const HELP = `\
|
||||
Sort the entries of the passed csv file.
|
||||
|
@ -64,10 +62,19 @@ function sortAllCSV(root, recursive=true) {
|
|||
|
||||
(function () {
|
||||
const kwargsTemplate = { file: "", f: "", help: false, h: false, all: false };
|
||||
const kwargs = validateArgv(minimist(
|
||||
const args = minimist(
|
||||
process.argv.slice(2),
|
||||
{ string: ["file"], alias: { "h": "help", "f": "file" } },
|
||||
), kwargsTemplate);
|
||||
);
|
||||
/** @type {typeof kwargsTemplate} */
|
||||
let kwargs;
|
||||
try {
|
||||
kwargs = validateArgv(args, kwargsTemplate);
|
||||
} catch (e) {
|
||||
console.error(/** @type {Error} */(e).message);
|
||||
console.log(HELP);
|
||||
process.exit(-1);
|
||||
}
|
||||
|
||||
if (kwargs.help) {
|
||||
console.log(HELP);
|
||||
|
|
|
@ -1,32 +1,30 @@
|
|||
"use strict";
|
||||
import path from "path";
|
||||
import log from "fancy-log";
|
||||
import c from "ansi-colors";
|
||||
import gulp from "gulp";
|
||||
import gulpCount from "gulp-count";
|
||||
import gulpIf from "gulp-if";
|
||||
import gulpSize from "gulp-size";
|
||||
import filter from "gulp-filter";
|
||||
import imagemin from "gulp-imagemin";
|
||||
import jpegtran from "imagemin-jpegtran";
|
||||
import cache from "gulp-cache";
|
||||
import through from "through2";
|
||||
import { rimraf } from "rimraf";
|
||||
import { table } from "table";
|
||||
import prettyBytes from "pretty-bytes";
|
||||
import StreamCounter from "stream-counter";
|
||||
|
||||
const path = require("path");
|
||||
const log = require("fancy-log");
|
||||
const c = require("ansi-colors");
|
||||
const gulp = require("gulp");
|
||||
const gulpCount = require("gulp-count");
|
||||
const gulpIf = require("gulp-if");
|
||||
const gulpSize = require("gulp-size");
|
||||
const filter = require("gulp-filter");
|
||||
const imagemin = require("gulp-imagemin");
|
||||
const jpegtran = require("imagemin-jpegtran");
|
||||
const cache = require("gulp-cache");
|
||||
const through = require("through2");
|
||||
const rimraf = require("rimraf");
|
||||
const { table } = require("table");
|
||||
const prettyBytes = require("pretty-bytes");
|
||||
const StreamCounter = require("stream-counter");
|
||||
|
||||
const BASE_DIR = path.resolve(__dirname, "..", "..");
|
||||
const CACHE_DIR = path.resolve(__dirname, ".imagemin-cache");
|
||||
const BASE_DIR = path.resolve(import.meta.dirname, "..", "..");
|
||||
const CACHE_DIR = path.resolve(import.meta.dirname, ".imagemin-cache");
|
||||
const BATCH_SIZE = 500;
|
||||
const SIZE_CONFIG = { showTotal: false };
|
||||
|
||||
exports.assetMinify = gulp.series(logIntro, analyzeBefore, generateBatches, minifyBatches, analyzeAfter, report);
|
||||
export const assetMinify = gulp.series(logIntro, analyzeBefore, generateBatches, minifyBatches, analyzeAfter, report);
|
||||
|
||||
exports.clean = function (cb) {
|
||||
export function clean(cb) {
|
||||
rimraf(CACHE_DIR, cb);
|
||||
};
|
||||
}
|
||||
|
||||
let files = [];
|
||||
let batches = [];
|
||||
|
@ -154,19 +152,19 @@ function colorizeSizePercentage(before, after) {
|
|||
}
|
||||
|
||||
function generateBatches(cb) {
|
||||
log(`Splitting ${c.magenta(files.length)} files into batches of size ${c.magenta(BATCH_SIZE)}...`);
|
||||
log(`Splitting ${c.magenta(`${files.length}`)} files into batches of size ${c.magenta(`${BATCH_SIZE}`)}...`);
|
||||
batches = [];
|
||||
for (let i = 0; i < files.length; i += BATCH_SIZE) {
|
||||
batches.push(files.slice(i, i + BATCH_SIZE));
|
||||
}
|
||||
log(`${c.magenta(batches.length)} batches generated.`);
|
||||
log(`${c.magenta(`${batches.length}`)} batches generated.`);
|
||||
cb();
|
||||
}
|
||||
|
||||
function minifyBatches(cb) {
|
||||
const tasks = batches.map((batch, i) => {
|
||||
function minifyTask() {
|
||||
log(`Minifying batch ${c.magenta(i + 1)} of ${c.magenta(batches.length)}`);
|
||||
log(`Minifying batch ${c.magenta(`${i + 1}`)} of ${c.magenta(`${batches.length}`)}`);
|
||||
return minifyBatch(batch);
|
||||
}
|
||||
|
||||
|
@ -176,8 +174,7 @@ function minifyBatches(cb) {
|
|||
|
||||
return gulp.series(...tasks, (seriesDone) => {
|
||||
seriesDone();
|
||||
cb();
|
||||
})();
|
||||
})(cb);
|
||||
}
|
||||
|
||||
function minifyBatch(batch) {
|
||||
|
@ -190,6 +187,8 @@ function minifyBatch(batch) {
|
|||
{
|
||||
name: "imagemin",
|
||||
fileCache: new cache.Cache({
|
||||
// @ts-expect-error There's something wrong with the typings here…
|
||||
// This is actually cache-swap's interface, which has this option.
|
||||
tmpDir: CACHE_DIR,
|
||||
cacheDirName: "imagemin-cache",
|
||||
}),
|
||||
|
@ -197,7 +196,9 @@ function minifyBatch(batch) {
|
|||
))
|
||||
.pipe(sizesAfter)
|
||||
.pipe(filter((file) => {
|
||||
// @ts-expect-error Smuggling size through
|
||||
const sizeBefore = sizesBefore.sizes.get(file.path);
|
||||
// @ts-expect-error Smuggling size through
|
||||
const sizeAfter = sizesAfter.sizes.get(file.path);
|
||||
if (sizeAfter > sizeBefore) {
|
||||
log(`Omitting file "${c.magenta(file.path)}": size after minification is greater than original size.`);
|
||||
|
@ -259,7 +260,9 @@ function fileSizes() {
|
|||
|
||||
return through.obj(
|
||||
async function (file, enc, cb) {
|
||||
// @ts-expect-error Smuggling size through
|
||||
if (!this.sizes) {
|
||||
// @ts-expect-error Smuggling size through
|
||||
this.sizes = sizes;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,8 +1,9 @@
|
|||
{
|
||||
"compilerOptions": {
|
||||
"module": "commonjs",
|
||||
"module": "NodeNext",
|
||||
"target": "ES2022",
|
||||
"lib": ["es2022"],
|
||||
"moduleResolution": "nodenext",
|
||||
"checkJs": true,
|
||||
"strict": true,
|
||||
"noImplicitAny": false
|
||||
|
@ -10,7 +11,7 @@
|
|||
"include": [
|
||||
"../../Assets/Female3DCG/Female3DCG_Types.d.ts",
|
||||
"../../Scripts/Typedef.d.ts",
|
||||
"."
|
||||
".",
|
||||
],
|
||||
"exclude": [
|
||||
"Scripts/MessagesPatch.d.ts"
|
||||
|
|
3
BondageClub/Tools/Node/package.json
Normal file
3
BondageClub/Tools/Node/package.json
Normal file
|
@ -0,0 +1,3 @@
|
|||
{
|
||||
"type": "module"
|
||||
}
|
723
BondageClub/package-lock.json
generated
723
BondageClub/package-lock.json
generated
|
@ -15,15 +15,26 @@
|
|||
"socket.io-client": "^4.6.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/css-font-loading-module": "^0.0.9",
|
||||
"@types/core-js": "^2.5.8",
|
||||
"@types/css-font-loading-module": "^0.0.14",
|
||||
"@types/fancy-log": "^2.0.2",
|
||||
"@types/gulp": "^4.0.17",
|
||||
"@types/gulp-cache": "^0.4.9",
|
||||
"@types/gulp-filter": "^3.0.39",
|
||||
"@types/gulp-imagemin": "^8.0.6",
|
||||
"@types/gulp-size": "^4.0.3",
|
||||
"@types/imagemin-jpegtran": "^5.0.4",
|
||||
"@types/lodash.template": "^4.5.3",
|
||||
"@types/minimist": "^1.2.5",
|
||||
"@types/node": "^20.8.7",
|
||||
"@types/stream-counter": "^1.0.3",
|
||||
"ansi-colors": "^4.1.1",
|
||||
"cheerio": "^1.0.0-rc.3",
|
||||
"eslint": "^8.51.0",
|
||||
"eslint-config-prettier": "^9.0.0",
|
||||
"eslint-plugin-compat": "^4.1.2",
|
||||
"eslint-plugin-sort-keys-custom": "^2.0.0",
|
||||
"fancy-log": "^1.3.3",
|
||||
"fancy-log": "^2.0.0",
|
||||
"gulp": "^4.0.2",
|
||||
"gulp-cache": "^1.1.3",
|
||||
"gulp-count": "^1.0.0",
|
||||
|
@ -32,20 +43,19 @@
|
|||
"gulp-imagemin": "^7.1.0",
|
||||
"gulp-size": "^4.0.1",
|
||||
"imagemin-jpegtran": "^7.0.0",
|
||||
"marked": "^4.0.10",
|
||||
"marked": "^15.0.6",
|
||||
"minimist": "^1.2.6",
|
||||
"node-fetch": "^2.6.7",
|
||||
"npm-run-all": "^4.1.5",
|
||||
"prettier": "^3.0.3",
|
||||
"prettier-eslint": "^16.1.1",
|
||||
"prettier-eslint-cli": "^8.0.1",
|
||||
"pretty-bytes": "^5.6.0",
|
||||
"rimraf": "^3.0.2",
|
||||
"rimraf": "^6.0.1",
|
||||
"simple-git": "^3.5.0",
|
||||
"stream-counter": "^1.0.0",
|
||||
"table": "^6.7.3",
|
||||
"through2": "^4.0.2",
|
||||
"typescript": "^5.2.2"
|
||||
"typescript": "^5.7.3"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 20"
|
||||
|
@ -848,10 +858,16 @@
|
|||
"resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.2.tgz",
|
||||
"integrity": "sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA=="
|
||||
},
|
||||
"node_modules/@types/core-js": {
|
||||
"version": "2.5.8",
|
||||
"resolved": "https://registry.npmjs.org/@types/core-js/-/core-js-2.5.8.tgz",
|
||||
"integrity": "sha512-VgnAj6tIAhJhZdJ8/IpxdatM8G4OD3VWGlp6xIxUGENZlpbob9Ty4VVdC1FIEp0aK6DBscDDjyzy5FB60TuNqg==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@types/css-font-loading-module": {
|
||||
"version": "0.0.9",
|
||||
"resolved": "https://registry.npmjs.org/@types/css-font-loading-module/-/css-font-loading-module-0.0.9.tgz",
|
||||
"integrity": "sha512-HU/J7J/3Bw7QJBOHWcY+77KreCqx/z//cYwJK6w40o9F5tCrrjrPY2f+YRJbjSYCKzjojmn6jafK6bn9Qht0iA==",
|
||||
"version": "0.0.14",
|
||||
"resolved": "https://registry.npmjs.org/@types/css-font-loading-module/-/css-font-loading-module-0.0.14.tgz",
|
||||
"integrity": "sha512-+EwJ/RW2vPqbYn0JXRHy593huPCtgmLF/kg57iLK9KUn6neTqGGOTZ0CbssP8Uou/gqT/5XmWKQ8A7ve7xNV6A==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@types/earcut": {
|
||||
|
@ -859,6 +875,18 @@
|
|||
"resolved": "https://registry.npmjs.org/@types/earcut/-/earcut-2.1.4.tgz",
|
||||
"integrity": "sha512-qp3m9PPz4gULB9MhjGID7wpo3gJ4bTGXm7ltNDsmOvsPduTeHp8wSW9YckBj3mljeOh4F0m2z/0JKAALRKbmLQ=="
|
||||
},
|
||||
"node_modules/@types/expect": {
|
||||
"version": "1.20.4",
|
||||
"resolved": "https://registry.npmjs.org/@types/expect/-/expect-1.20.4.tgz",
|
||||
"integrity": "sha512-Q5Vn3yjTDyCMV50TB6VRIbQNxSE4OmZR86VSbGaNpfUolm0iePBB4KdEEHmxoY5sT2+2DIvXW0rvMDP2nHZ4Mg==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@types/fancy-log": {
|
||||
"version": "2.0.2",
|
||||
"resolved": "https://registry.npmjs.org/@types/fancy-log/-/fancy-log-2.0.2.tgz",
|
||||
"integrity": "sha512-SXVJvqWjsl90VwBfp7w4iQ0iO+vxAjQImglcpwbV9GkqNoUD5/p9Wsgetl40F1WL7pzWFN/eZPTF1g5FZXJsIw==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@types/glob": {
|
||||
"version": "7.2.0",
|
||||
"resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz",
|
||||
|
@ -869,12 +897,383 @@
|
|||
"@types/node": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/glob-stream": {
|
||||
"version": "8.0.2",
|
||||
"resolved": "https://registry.npmjs.org/@types/glob-stream/-/glob-stream-8.0.2.tgz",
|
||||
"integrity": "sha512-kyuRfGE+yiSJWzSO3t74rXxdZNdYfLcllO0IUha4eX1fl40pm9L02Q/TEc3mykTLjoWz4STBNwYnUWdFu3I0DA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@types/node": "*",
|
||||
"@types/picomatch": "*",
|
||||
"@types/streamx": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/gulp": {
|
||||
"version": "4.0.17",
|
||||
"resolved": "https://registry.npmjs.org/@types/gulp/-/gulp-4.0.17.tgz",
|
||||
"integrity": "sha512-+pKQynu2C/HS16kgmDlAicjtFYP8kaa86eE9P0Ae7GB5W29we/E2TIdbOWtEZD5XkpY+jr8fyqfwO6SWZecLpQ==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@types/node": "*",
|
||||
"@types/undertaker": ">=1.2.6",
|
||||
"@types/vinyl-fs": "*",
|
||||
"chokidar": "^3.3.1"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/gulp-cache": {
|
||||
"version": "0.4.9",
|
||||
"resolved": "https://registry.npmjs.org/@types/gulp-cache/-/gulp-cache-0.4.9.tgz",
|
||||
"integrity": "sha512-mCYT2b82N1c5tDLmjT98Z/hVF1cbqTYddgrXqHi/XeZJAjMTla3ab4ZbA+JSW6ARf1YL4YHYykNl/kSt/+q2BA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@types/gulp-util": "*",
|
||||
"@types/node": "*",
|
||||
"@types/vinyl": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/gulp-filter": {
|
||||
"version": "3.0.39",
|
||||
"resolved": "https://registry.npmjs.org/@types/gulp-filter/-/gulp-filter-3.0.39.tgz",
|
||||
"integrity": "sha512-CmjD9Y90+uFl0sHODOcAwSif2DXkCCkneItIifgbRgzSPTQ0wePzxPkLQPT377Hur+2SvAl4u3jyLitbNRiSkg==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@types/minimatch": "*",
|
||||
"@types/node": "*",
|
||||
"@types/vinyl": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/gulp-imagemin": {
|
||||
"version": "8.0.6",
|
||||
"resolved": "https://registry.npmjs.org/@types/gulp-imagemin/-/gulp-imagemin-8.0.6.tgz",
|
||||
"integrity": "sha512-beIai/1wAnhOvfkIQq+QVPAjrP0+WkewygxgonMmSZ7Al8ZiNQU1D7AMmHYpj+3e0HFAWK0cUaIX+La3A1vqnA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@types/imagemin": "*",
|
||||
"@types/imagemin-gifsicle": "*",
|
||||
"@types/imagemin-mozjpeg": "*",
|
||||
"@types/imagemin-optipng": "*",
|
||||
"@types/imagemin-svgo": "*",
|
||||
"@types/node": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/gulp-size": {
|
||||
"version": "4.0.3",
|
||||
"resolved": "https://registry.npmjs.org/@types/gulp-size/-/gulp-size-4.0.3.tgz",
|
||||
"integrity": "sha512-NYvl6QRn4NoYry+EYF6aD1I5Vi2V9ir9LH23H2+oxe4NZ9OZAeHRUl76xIBpYI3VJajLFWTMJoD2N8OLFLZ+/g==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@types/node": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/gulp-util": {
|
||||
"version": "3.0.41",
|
||||
"resolved": "https://registry.npmjs.org/@types/gulp-util/-/gulp-util-3.0.41.tgz",
|
||||
"integrity": "sha512-BK0kJZ8euQNlISsmD6mBr/1RZkB0mljdtBsz2usv+QHPV10alH2AJw5p05S9LU6S+VdTjbFmGU0OxpH++2W9/Q==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@types/node": "*",
|
||||
"@types/through2": "*",
|
||||
"@types/vinyl": "*",
|
||||
"chalk": "^2.2.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/gulp-util/node_modules/ansi-styles": {
|
||||
"version": "3.2.1",
|
||||
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
|
||||
"integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"color-convert": "^1.9.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=4"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/gulp-util/node_modules/chalk": {
|
||||
"version": "2.4.2",
|
||||
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
|
||||
"integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"ansi-styles": "^3.2.1",
|
||||
"escape-string-regexp": "^1.0.5",
|
||||
"supports-color": "^5.3.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=4"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/gulp-util/node_modules/color-convert": {
|
||||
"version": "1.9.3",
|
||||
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
|
||||
"integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"color-name": "1.1.3"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/gulp-util/node_modules/color-name": {
|
||||
"version": "1.1.3",
|
||||
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
|
||||
"integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@types/gulp-util/node_modules/escape-string-regexp": {
|
||||
"version": "1.0.5",
|
||||
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
|
||||
"integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">=0.8.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/gulp-util/node_modules/has-flag": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
|
||||
"integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">=4"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/gulp-util/node_modules/supports-color": {
|
||||
"version": "5.5.0",
|
||||
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
|
||||
"integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"has-flag": "^3.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=4"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/gulp/node_modules/anymatch": {
|
||||
"version": "3.1.3",
|
||||
"resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
|
||||
"integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"normalize-path": "^3.0.0",
|
||||
"picomatch": "^2.0.4"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 8"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/gulp/node_modules/binary-extensions": {
|
||||
"version": "2.3.0",
|
||||
"resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz",
|
||||
"integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/sindresorhus"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/gulp/node_modules/braces": {
|
||||
"version": "3.0.3",
|
||||
"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
|
||||
"integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"fill-range": "^7.1.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/gulp/node_modules/chokidar": {
|
||||
"version": "3.6.0",
|
||||
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz",
|
||||
"integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"anymatch": "~3.1.2",
|
||||
"braces": "~3.0.2",
|
||||
"glob-parent": "~5.1.2",
|
||||
"is-binary-path": "~2.1.0",
|
||||
"is-glob": "~4.0.1",
|
||||
"normalize-path": "~3.0.0",
|
||||
"readdirp": "~3.6.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 8.10.0"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://paulmillr.com/funding/"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"fsevents": "~2.3.2"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/gulp/node_modules/fill-range": {
|
||||
"version": "7.1.1",
|
||||
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
|
||||
"integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"to-regex-range": "^5.0.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/gulp/node_modules/fsevents": {
|
||||
"version": "2.3.3",
|
||||
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
|
||||
"integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
|
||||
"dev": true,
|
||||
"hasInstallScript": true,
|
||||
"optional": true,
|
||||
"os": [
|
||||
"darwin"
|
||||
],
|
||||
"engines": {
|
||||
"node": "^8.16.0 || ^10.6.0 || >=11.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/gulp/node_modules/glob-parent": {
|
||||
"version": "5.1.2",
|
||||
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
|
||||
"integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"is-glob": "^4.0.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 6"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/gulp/node_modules/is-binary-path": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
|
||||
"integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"binary-extensions": "^2.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/gulp/node_modules/is-number": {
|
||||
"version": "7.0.0",
|
||||
"resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
|
||||
"integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">=0.12.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/gulp/node_modules/readdirp": {
|
||||
"version": "3.6.0",
|
||||
"resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
|
||||
"integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"picomatch": "^2.2.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=8.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/gulp/node_modules/to-regex-range": {
|
||||
"version": "5.0.1",
|
||||
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
|
||||
"integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"is-number": "^7.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=8.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/imagemin": {
|
||||
"version": "9.0.1",
|
||||
"resolved": "https://registry.npmjs.org/@types/imagemin/-/imagemin-9.0.1.tgz",
|
||||
"integrity": "sha512-xMWpvrUhtYxl6EeW+UhVH3rwUKhCRx21XddcoWByjDAasXZT5pQaCn0YVnXoTijX5hlTrGqV4TGQL/Htpp00+w==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@types/node": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/imagemin-gifsicle": {
|
||||
"version": "7.0.4",
|
||||
"resolved": "https://registry.npmjs.org/@types/imagemin-gifsicle/-/imagemin-gifsicle-7.0.4.tgz",
|
||||
"integrity": "sha512-ZghMBd/Jgqg5utTJNPmvf6DkuHzMhscJ8vgf/7MUGCpO+G+cLrhYltL+5d+h3A1B4W73S2SrmJZ1jS5LACpX+A==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@types/imagemin": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/imagemin-jpegtran": {
|
||||
"version": "5.0.4",
|
||||
"resolved": "https://registry.npmjs.org/@types/imagemin-jpegtran/-/imagemin-jpegtran-5.0.4.tgz",
|
||||
"integrity": "sha512-PSMxOeJa8q94Y+qx8Yriw+qj1+vH5xWpvar63o6SGO0Xi5RlKuwHHfJmN2GRUngPrlhe394jOUmpVq8jQlVmFA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@types/imagemin": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/imagemin-mozjpeg": {
|
||||
"version": "8.0.4",
|
||||
"resolved": "https://registry.npmjs.org/@types/imagemin-mozjpeg/-/imagemin-mozjpeg-8.0.4.tgz",
|
||||
"integrity": "sha512-ZCAxV8SYJB8ehwHpnbRpHjg5Wc4HcyuAMiDhXbkgC7gujDoOTyHO3dhDkUtZ1oK1DLBRZapqG9etdLVhUml7yQ==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@types/imagemin": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/imagemin-optipng": {
|
||||
"version": "5.2.4",
|
||||
"resolved": "https://registry.npmjs.org/@types/imagemin-optipng/-/imagemin-optipng-5.2.4.tgz",
|
||||
"integrity": "sha512-mvKnDMC8eCYZetAQudjs1DbgpR84WhsTx1wgvdiXnpuUEti3oJ+MaMYBRWPY0JlQ4+y4TXKOfa7+LOuT8daegQ==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@types/imagemin": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/imagemin-svgo": {
|
||||
"version": "10.0.5",
|
||||
"resolved": "https://registry.npmjs.org/@types/imagemin-svgo/-/imagemin-svgo-10.0.5.tgz",
|
||||
"integrity": "sha512-9U2Rf7vWBHeqJvzmWNP3vYAKqR0208QqQ9Mkrq9OLIL5AeoF/dRVRou6iUYCufBSim57BpBpCJhZLrTgfS3k1g==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@types/imagemin": "*",
|
||||
"@types/svgo": "2"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/lodash": {
|
||||
"version": "4.17.14",
|
||||
"resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.14.tgz",
|
||||
"integrity": "sha512-jsxagdikDiDBeIRaPYtArcT8my4tN1og7MtMRquFT3XNA6axxyHDRUemqDz/taRDdOUn0GnGHRCuff4q48sW9A==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@types/lodash.template": {
|
||||
"version": "4.5.3",
|
||||
"resolved": "https://registry.npmjs.org/@types/lodash.template/-/lodash.template-4.5.3.tgz",
|
||||
"integrity": "sha512-Mo0UYKLu1oXgkV9TVoXZLlXXjyIXlW7ZQRxi/4gQJmzJr63dmicE8gG0OkPjYTKBrBic852q0JzqrtNUWLBIyA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@types/lodash": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/minimatch": {
|
||||
"version": "5.1.2",
|
||||
"resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz",
|
||||
"integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@types/minimist": {
|
||||
"version": "1.2.5",
|
||||
"resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.5.tgz",
|
||||
"integrity": "sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@types/node": {
|
||||
"version": "20.17.16",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.16.tgz",
|
||||
|
@ -889,6 +1288,12 @@
|
|||
"resolved": "https://registry.npmjs.org/@types/offscreencanvas/-/offscreencanvas-2019.7.3.tgz",
|
||||
"integrity": "sha512-ieXiYmgSRXUDeOntE1InxjWyvEelZGP63M+cGuquuRLuIKKT1osnkXjxev9B7d1nXSug5vpunx+gNlbVxMlC9A=="
|
||||
},
|
||||
"node_modules/@types/picomatch": {
|
||||
"version": "3.0.2",
|
||||
"resolved": "https://registry.npmjs.org/@types/picomatch/-/picomatch-3.0.2.tgz",
|
||||
"integrity": "sha512-n0i8TD3UDB7paoMMxA3Y65vUncFJXjcUf7lQY7YyKGl6031FNjfsLs6pdLFCy2GNFxItPJG8GvvpbZc2skH7WA==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@types/q": {
|
||||
"version": "1.5.8",
|
||||
"resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.8.tgz",
|
||||
|
@ -896,6 +1301,80 @@
|
|||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"node_modules/@types/stream-counter": {
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npmjs.org/@types/stream-counter/-/stream-counter-1.0.3.tgz",
|
||||
"integrity": "sha512-m4N6AVVJUtyeFC3aCYZ7lYoADxzVViILOIsDVDh1Ap6BWTHifJobGJH+RDzcW9wEgvx3OdVdBaPGqgLr/HuunQ==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@types/node": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/streamx": {
|
||||
"version": "2.9.5",
|
||||
"resolved": "https://registry.npmjs.org/@types/streamx/-/streamx-2.9.5.tgz",
|
||||
"integrity": "sha512-IHYsa6jYrck8VEdSwpY141FTTf6D7boPeMq9jy4qazNrFMA4VbRz/sw5LSsfR7jwdDcx0QKWkUexZvsWBC2eIQ==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@types/node": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/svgo": {
|
||||
"version": "2.6.4",
|
||||
"resolved": "https://registry.npmjs.org/@types/svgo/-/svgo-2.6.4.tgz",
|
||||
"integrity": "sha512-l4cmyPEckf8moNYHdJ+4wkHvFxjyW6ulm9l4YGaOxeyBWPhBOT0gvni1InpFPdzx1dKf/2s62qGITwxNWnPQng==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@types/node": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/through2": {
|
||||
"version": "2.0.41",
|
||||
"resolved": "https://registry.npmjs.org/@types/through2/-/through2-2.0.41.tgz",
|
||||
"integrity": "sha512-ryQ0tidWkb1O1JuYvWKyMLYEtOWDqF5mHerJzKz/gQpoAaJq2l/dsMPBF0B5BNVT34rbARYJ5/tsZwLfUi2kwQ==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@types/node": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/undertaker": {
|
||||
"version": "1.2.11",
|
||||
"resolved": "https://registry.npmjs.org/@types/undertaker/-/undertaker-1.2.11.tgz",
|
||||
"integrity": "sha512-j1Z0V2ByRHr8ZK7eOeGq0LGkkdthNFW0uAZGY22iRkNQNL9/vAV0yFPr1QN3FM/peY5bxs9P+1f0PYJTQVa5iA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@types/node": "*",
|
||||
"@types/undertaker-registry": "*",
|
||||
"async-done": "~1.3.2"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/undertaker-registry": {
|
||||
"version": "1.0.4",
|
||||
"resolved": "https://registry.npmjs.org/@types/undertaker-registry/-/undertaker-registry-1.0.4.tgz",
|
||||
"integrity": "sha512-tW77pHh2TU4uebWXWeEM5laiw8BuJ7pyJYDh6xenOs75nhny2kVgwYbegJ4BoLMYsIrXaBpKYaPdYO3/udG+hg==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@types/vinyl": {
|
||||
"version": "2.0.12",
|
||||
"resolved": "https://registry.npmjs.org/@types/vinyl/-/vinyl-2.0.12.tgz",
|
||||
"integrity": "sha512-Sr2fYMBUVGYq8kj3UthXFAu5UN6ZW+rYr4NACjZQJvHvj+c8lYv0CahmZ2P/r7iUkN44gGUBwqxZkrKXYPb7cw==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@types/expect": "^1.20.4",
|
||||
"@types/node": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/vinyl-fs": {
|
||||
"version": "3.0.5",
|
||||
"resolved": "https://registry.npmjs.org/@types/vinyl-fs/-/vinyl-fs-3.0.5.tgz",
|
||||
"integrity": "sha512-ckYz9giHgV6U10RFuf9WsDQ3X86EFougapxHmmoxLK7e6ICQqO8CE+4V/3lBN148V5N1pb4nQMmMjyScleVsig==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@types/glob-stream": "*",
|
||||
"@types/node": "*",
|
||||
"@types/vinyl": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/@typescript-eslint/parser": {
|
||||
"version": "6.21.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.21.0.tgz",
|
||||
|
@ -4570,18 +5049,15 @@
|
|||
}
|
||||
},
|
||||
"node_modules/fancy-log": {
|
||||
"version": "1.3.3",
|
||||
"resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.3.tgz",
|
||||
"integrity": "sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw==",
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-2.0.0.tgz",
|
||||
"integrity": "sha512-9CzxZbACXMUXW13tS0tI8XsGGmxWzO2DmYrGuBJOJ8k8q2K7hwfJA5qHjuPPe8wtsco33YR9wc+Rlr5wYFvhSA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"ansi-gray": "^0.1.1",
|
||||
"color-support": "^1.1.3",
|
||||
"parse-node-version": "^1.0.0",
|
||||
"time-stamp": "^1.0.0"
|
||||
"color-support": "^1.1.3"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 0.10"
|
||||
"node": ">=10.13.0"
|
||||
}
|
||||
},
|
||||
"node_modules/fast-deep-equal": {
|
||||
|
@ -4927,6 +5403,22 @@
|
|||
"node": "^10.12.0 || >=12.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/flat-cache/node_modules/rimraf": {
|
||||
"version": "3.0.2",
|
||||
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
|
||||
"integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
|
||||
"deprecated": "Rimraf versions prior to v4 are no longer supported",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"glob": "^7.1.3"
|
||||
},
|
||||
"bin": {
|
||||
"rimraf": "bin.js"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/isaacs"
|
||||
}
|
||||
},
|
||||
"node_modules/flatted": {
|
||||
"version": "3.3.2",
|
||||
"resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.2.tgz",
|
||||
|
@ -5658,6 +6150,21 @@
|
|||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/gulp-cli/node_modules/fancy-log": {
|
||||
"version": "1.3.3",
|
||||
"resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.3.tgz",
|
||||
"integrity": "sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"ansi-gray": "^0.1.1",
|
||||
"color-support": "^1.1.3",
|
||||
"parse-node-version": "^1.0.0",
|
||||
"time-stamp": "^1.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 0.10"
|
||||
}
|
||||
},
|
||||
"node_modules/gulp-count": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/gulp-count/-/gulp-count-1.0.0.tgz",
|
||||
|
@ -5787,6 +6294,21 @@
|
|||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/gulp-imagemin/node_modules/fancy-log": {
|
||||
"version": "1.3.3",
|
||||
"resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.3.tgz",
|
||||
"integrity": "sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"ansi-gray": "^0.1.1",
|
||||
"color-support": "^1.1.3",
|
||||
"parse-node-version": "^1.0.0",
|
||||
"time-stamp": "^1.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 0.10"
|
||||
}
|
||||
},
|
||||
"node_modules/gulp-match": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/gulp-match/-/gulp-match-1.1.0.tgz",
|
||||
|
@ -5826,6 +6348,21 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"node_modules/gulp-size/node_modules/fancy-log": {
|
||||
"version": "1.3.3",
|
||||
"resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.3.tgz",
|
||||
"integrity": "sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"ansi-gray": "^0.1.1",
|
||||
"color-support": "^1.1.3",
|
||||
"parse-node-version": "^1.0.0",
|
||||
"time-stamp": "^1.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 0.10"
|
||||
}
|
||||
},
|
||||
"node_modules/gulplog": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz",
|
||||
|
@ -7573,15 +8110,15 @@
|
|||
}
|
||||
},
|
||||
"node_modules/marked": {
|
||||
"version": "4.3.0",
|
||||
"resolved": "https://registry.npmjs.org/marked/-/marked-4.3.0.tgz",
|
||||
"integrity": "sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==",
|
||||
"version": "15.0.6",
|
||||
"resolved": "https://registry.npmjs.org/marked/-/marked-15.0.6.tgz",
|
||||
"integrity": "sha512-Y07CUOE+HQXbVDCGl3LXggqJDbXDP2pArc2C1N1RRMN0ONiShoSsIInMd5Gsxupe7fKLpgimTV+HOJ9r7bA+pg==",
|
||||
"dev": true,
|
||||
"bin": {
|
||||
"marked": "bin/marked.js"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 12"
|
||||
"node": ">= 18"
|
||||
}
|
||||
},
|
||||
"node_modules/matchdep": {
|
||||
|
@ -8051,26 +8588,6 @@
|
|||
"integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/node-fetch": {
|
||||
"version": "2.7.0",
|
||||
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz",
|
||||
"integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"whatwg-url": "^5.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": "4.x || >=6.0.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"encoding": "^0.1.0"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"encoding": {
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_modules/node-releases": {
|
||||
"version": "2.0.19",
|
||||
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz",
|
||||
|
@ -10956,16 +11473,106 @@
|
|||
}
|
||||
},
|
||||
"node_modules/rimraf": {
|
||||
"version": "3.0.2",
|
||||
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
|
||||
"integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
|
||||
"deprecated": "Rimraf versions prior to v4 are no longer supported",
|
||||
"version": "6.0.1",
|
||||
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-6.0.1.tgz",
|
||||
"integrity": "sha512-9dkvaxAsk/xNXSJzMgFqqMCuFgt2+KsOFek3TMLfo8NCPfWpBmqwyNn5Y+NX56QUYfCtsyhF3ayiboEoUmJk/A==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"glob": "^7.1.3"
|
||||
"glob": "^11.0.0",
|
||||
"package-json-from-dist": "^1.0.0"
|
||||
},
|
||||
"bin": {
|
||||
"rimraf": "bin.js"
|
||||
"rimraf": "dist/esm/bin.mjs"
|
||||
},
|
||||
"engines": {
|
||||
"node": "20 || >=22"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/isaacs"
|
||||
}
|
||||
},
|
||||
"node_modules/rimraf/node_modules/brace-expansion": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
|
||||
"integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"balanced-match": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/rimraf/node_modules/glob": {
|
||||
"version": "11.0.1",
|
||||
"resolved": "https://registry.npmjs.org/glob/-/glob-11.0.1.tgz",
|
||||
"integrity": "sha512-zrQDm8XPnYEKawJScsnM0QzobJxlT/kHOOlRTio8IH/GrmxRE5fjllkzdaHclIuNjUQTJYH2xHNIGfdpJkDJUw==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"foreground-child": "^3.1.0",
|
||||
"jackspeak": "^4.0.1",
|
||||
"minimatch": "^10.0.0",
|
||||
"minipass": "^7.1.2",
|
||||
"package-json-from-dist": "^1.0.0",
|
||||
"path-scurry": "^2.0.0"
|
||||
},
|
||||
"bin": {
|
||||
"glob": "dist/esm/bin.mjs"
|
||||
},
|
||||
"engines": {
|
||||
"node": "20 || >=22"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/isaacs"
|
||||
}
|
||||
},
|
||||
"node_modules/rimraf/node_modules/jackspeak": {
|
||||
"version": "4.0.2",
|
||||
"resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.0.2.tgz",
|
||||
"integrity": "sha512-bZsjR/iRjl1Nk1UkjGpAzLNfQtzuijhn2g+pbZb98HQ1Gk8vM9hfbxeMBP+M2/UUdwj0RqGG3mlvk2MsAqwvEw==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@isaacs/cliui": "^8.0.2"
|
||||
},
|
||||
"engines": {
|
||||
"node": "20 || >=22"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/isaacs"
|
||||
}
|
||||
},
|
||||
"node_modules/rimraf/node_modules/lru-cache": {
|
||||
"version": "11.0.2",
|
||||
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.0.2.tgz",
|
||||
"integrity": "sha512-123qHRfJBmo2jXDbo/a5YOQrJoHF/GNQTLzQ5+IdK5pWpceK17yRc6ozlWd25FxvGKQbIUs91fDFkXmDHTKcyA==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": "20 || >=22"
|
||||
}
|
||||
},
|
||||
"node_modules/rimraf/node_modules/minimatch": {
|
||||
"version": "10.0.1",
|
||||
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.1.tgz",
|
||||
"integrity": "sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"brace-expansion": "^2.0.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": "20 || >=22"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/isaacs"
|
||||
}
|
||||
},
|
||||
"node_modules/rimraf/node_modules/path-scurry": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.0.tgz",
|
||||
"integrity": "sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"lru-cache": "^11.0.0",
|
||||
"minipass": "^7.1.2"
|
||||
},
|
||||
"engines": {
|
||||
"node": "20 || >=22"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/isaacs"
|
||||
|
@ -12722,12 +13329,6 @@
|
|||
"xtend": "~4.0.1"
|
||||
}
|
||||
},
|
||||
"node_modules/tr46": {
|
||||
"version": "0.0.3",
|
||||
"resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
|
||||
"integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/trim-newlines": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz",
|
||||
|
@ -13354,12 +13955,6 @@
|
|||
"eslint": ">=6.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/webidl-conversions": {
|
||||
"version": "3.0.1",
|
||||
"resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
|
||||
"integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/whatwg-encoding": {
|
||||
"version": "3.1.1",
|
||||
"resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz",
|
||||
|
@ -13381,16 +13976,6 @@
|
|||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/whatwg-url": {
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
|
||||
"integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"tr46": "~0.0.3",
|
||||
"webidl-conversions": "^3.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/which": {
|
||||
"version": "2.0.2",
|
||||
"resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
|
||||
|
|
|
@ -39,15 +39,26 @@
|
|||
"since 2020 and > 0.5% and not dead"
|
||||
],
|
||||
"devDependencies": {
|
||||
"@types/css-font-loading-module": "^0.0.9",
|
||||
"@types/core-js": "^2.5.8",
|
||||
"@types/css-font-loading-module": "^0.0.14",
|
||||
"@types/fancy-log": "^2.0.2",
|
||||
"@types/gulp": "^4.0.17",
|
||||
"@types/gulp-cache": "^0.4.9",
|
||||
"@types/gulp-filter": "^3.0.39",
|
||||
"@types/gulp-imagemin": "^8.0.6",
|
||||
"@types/gulp-size": "^4.0.3",
|
||||
"@types/imagemin-jpegtran": "^5.0.4",
|
||||
"@types/lodash.template": "^4.5.3",
|
||||
"@types/minimist": "^1.2.5",
|
||||
"@types/node": "^20.8.7",
|
||||
"@types/stream-counter": "^1.0.3",
|
||||
"ansi-colors": "^4.1.1",
|
||||
"cheerio": "^1.0.0-rc.3",
|
||||
"eslint": "^8.51.0",
|
||||
"eslint-config-prettier": "^9.0.0",
|
||||
"eslint-plugin-compat": "^4.1.2",
|
||||
"eslint-plugin-sort-keys-custom": "^2.0.0",
|
||||
"fancy-log": "^1.3.3",
|
||||
"fancy-log": "^2.0.0",
|
||||
"gulp": "^4.0.2",
|
||||
"gulp-cache": "^1.1.3",
|
||||
"gulp-count": "^1.0.0",
|
||||
|
@ -56,20 +67,19 @@
|
|||
"gulp-imagemin": "^7.1.0",
|
||||
"gulp-size": "^4.0.1",
|
||||
"imagemin-jpegtran": "^7.0.0",
|
||||
"marked": "^4.0.10",
|
||||
"marked": "^15.0.6",
|
||||
"minimist": "^1.2.6",
|
||||
"node-fetch": "^2.6.7",
|
||||
"npm-run-all": "^4.1.5",
|
||||
"prettier": "^3.0.3",
|
||||
"prettier-eslint": "^16.1.1",
|
||||
"prettier-eslint-cli": "^8.0.1",
|
||||
"pretty-bytes": "^5.6.0",
|
||||
"rimraf": "^3.0.2",
|
||||
"rimraf": "^6.0.1",
|
||||
"simple-git": "^3.5.0",
|
||||
"stream-counter": "^1.0.0",
|
||||
"table": "^6.7.3",
|
||||
"through2": "^4.0.2",
|
||||
"typescript": "^5.2.2"
|
||||
"typescript": "^5.7.3"
|
||||
},
|
||||
"dependencies": {
|
||||
"csv-writer": "^1.6.0",
|
||||
|
|
Loading…
Add table
Reference in a new issue