From f6a0de4b1c193ee3db950e9659decb224c09f40a Mon Sep 17 00:00:00 2001 From: krypek Date: Wed, 7 Feb 2024 17:54:56 +0100 Subject: [PATCH 001/196] Add ccmod.json support --- build/.prettierrc.json | 12 + build/package.json | 67 ++-- build/src/cache.ts | 83 ++-- build/src/db.ts | 419 +++++++++++--------- build/src/download.ts | 93 ++--- build/src/inputLocations.ts | 20 +- build/src/main.ts | 26 +- build/src/source.ts | 182 +++++---- build/src/types.d.ts | 193 ++++++---- mods.json | 252 ++++++------- npDatabase.json | 735 +++++++++++++++++++++++++----------- 11 files changed, 1253 insertions(+), 829 deletions(-) create mode 100644 build/.prettierrc.json diff --git a/build/.prettierrc.json b/build/.prettierrc.json new file mode 100644 index 00000000..3b6eb9bf --- /dev/null +++ b/build/.prettierrc.json @@ -0,0 +1,12 @@ +{ + "semi": false, + "useTabs": false, + "tabWidth": 4, + "singleQuote": true, + "trailingComma": "es5", + "printWidth": 170, + "quoteProps": "as-needed", + "bracketSpacing": true, + "arrowParens": "avoid" +} + diff --git a/build/package.json b/build/package.json index 90396029..9aa6c753 100644 --- a/build/package.json +++ b/build/package.json @@ -1,35 +1,36 @@ { - "name": "ccmoddb", - "version": "1.0.0", - "description": "A build script for ccmoddb", - "main": "dist/main.js", - "scripts": { - "build": "tsc", - "watch": "tsc -w", - "start": "npm run build && node dist/main.js", - "test": "npm run build && mocha --parallel --recursive tests/" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/CCDirectLink/CCModDB.git" - }, - "bugs": { - "url": "https://github.com/CCDirectLink/CCModDB/issues" - }, - "homepage": "https://github.com/CCDirectLink/CCModDB#readme", - "devDependencies": { - "@types/node": "^16.11.6", - "@types/yauzl": "^2.9.2", - "@typescript-eslint/eslint-plugin": "^5.2.0", - "@typescript-eslint/parser": "^5.2.0", - "eslint": "^8.1.0", - "typescript": "^4.4.4" - }, - "dependencies": { - "@types/semver": "^7.3.9", - "chai": "^4.3.4", - "mocha": "^9.1.3", - "semver": "^7.3.5", - "yauzl": "^2.10.0" - } + "name": "ccmoddb", + "version": "1.0.0", + "description": "A build script for ccmoddb", + "main": "dist/main.js", + "scripts": { + "build": "tsc", + "watch": "tsc -w", + "start": "npm run build && node dist/main.js", + "test": "npm run build && mocha --parallel --recursive tests/", + "format": "prettier ./src -w" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/CCDirectLink/CCModDB.git" + }, + "bugs": { + "url": "https://github.com/CCDirectLink/CCModDB/issues" + }, + "homepage": "https://github.com/CCDirectLink/CCModDB#readme", + "devDependencies": { + "@types/node": "^16.11.6", + "@types/yauzl": "^2.9.2", + "@typescript-eslint/eslint-plugin": "^5.2.0", + "@typescript-eslint/parser": "^5.2.0", + "eslint": "^8.1.0", + "typescript": "^4.4.4" + }, + "dependencies": { + "@types/semver": "^7.3.9", + "chai": "^4.3.4", + "mocha": "^9.1.3", + "semver": "^7.3.5", + "yauzl": "^2.10.0" + } } diff --git a/build/src/cache.ts b/build/src/cache.ts index e6ab436b..00f34ec1 100644 --- a/build/src/cache.ts +++ b/build/src/cache.ts @@ -1,64 +1,61 @@ -import stream from 'stream'; -import fs from 'fs'; -import crypto from 'crypto'; +import stream from 'stream' +import fs from 'fs' +import crypto from 'crypto' // Do not use cache for files that were not there when the execution started because it always goes wrong for some reason. If you can make it work, feel free to do so. -const excluded: string[] = []; +const excluded: string[] = [] export async function get(tag: string): Promise { - if (!await has(tag)) { - return undefined; - } + if (!(await has(tag))) { + return undefined + } - return fs.createReadStream(file(tag)); + return fs.createReadStream(file(tag)) } export async function put(tag: string, content: stream.Readable): Promise { - if (await has(tag)) { - return; - } - - createDir(); - - excluded.push(tag); - await new Promise((resolve, reject) => { - const fstream = fs.createWriteStream(file(tag)); - content - .on('error', err => reject(err)) - .on('end', () => { - fstream.close(); - resolve(); - }) - .pipe(fstream, {end: true}); - }); + if (await has(tag)) { + return + } + + createDir() + + excluded.push(tag) + await new Promise((resolve, reject) => { + const fstream = fs.createWriteStream(file(tag)) + content + .on('error', err => reject(err)) + .on('end', () => { + fstream.close() + resolve() + }) + .pipe(fstream, { end: true }) + }) } export async function has(tag: string): Promise { - if (tag === '' || excluded.includes(tag)) { - return false; - } - - return new Promise((resolve) => { - fs.stat(file(tag), (err, stat) => { - if (err || !stat) { - return resolve(false); - } - resolve(stat.isFile()); - }); - }); + if (tag === '' || excluded.includes(tag)) { + return false + } + + return new Promise(resolve => { + fs.stat(file(tag), (err, stat) => { + if (err || !stat) { + return resolve(false) + } + resolve(stat.isFile()) + }) + }) } function createDir(): Promise { - return new Promise(resolve => fs.mkdir('./cache/', () => resolve())); + return new Promise(resolve => fs.mkdir('./cache/', () => resolve())) } - function file(tag: string): string { - return './cache/' + hash(tag) + '.cache'; + return './cache/' + hash(tag) + '.cache' } function hash(tag: string): string { - return crypto.createHash('sha256', {encoding: 'utf8'}) - .update(tag, 'utf8') - .digest('hex'); + return crypto.createHash('sha256', { encoding: 'utf8' }).update(tag, 'utf8').digest('hex') } diff --git a/build/src/db.ts b/build/src/db.ts index db27e801..cf7e987a 100644 --- a/build/src/db.ts +++ b/build/src/db.ts @@ -1,225 +1,268 @@ -import semver from 'semver'; -import crypto from 'crypto'; -import fs from 'fs'; -import { download, streamToBuffer } from './download'; +import semver from 'semver' +import crypto from 'crypto' +import fs from 'fs' +import { download, streamToBuffer } from './download' +import { ModMetadatasInput, ModMetadatas } from './source' interface ModDb { - [name: string]: { - name: string, - description: string, - license?: string, - page: Page[], - archive_link: string, - hash: { - sha256: string, - }, - version: string, - } + [name: string]: { + name: string + description: string + license?: string + page: Page[] + archive_link: string + hash: { + sha256: string + } + version: string + } } -export async function build(packages: [PkgMetadata, InputLocation][]): Promise { - const result: PackageDB = {}; - const promises: Promise[] = []; +export async function build(packages: ModMetadatasInput[]): Promise { + const result: PackageDB = {} + const promises: Promise[] = [] - for (const [, [pkg, inputs]] of groupByName(packages)) { - if (!check(pkg)) { - continue; - } + for (const [, { meta, ccmod, inputs }] of groupByName(packages)) { + if (ccmod && !checkCCMod(ccmod)) continue + if (meta && !checkMeta(meta)) continue - promises.push(buildEntry(result, pkg, inputs)); - } + promises.push(buildEntry(result, meta, ccmod, inputs)) + } - await Promise.all(promises); + await Promise.all(promises) - return sort(result); + return sort(result) } export async function write(db: PackageDB): Promise { - return new Promise((resolve, reject) => { - fs.writeFile('../npDatabase.json', JSON.stringify(db, null, 4), err => { - if (err) { - return reject(err); - } - resolve(); - }); - }); + return new Promise((resolve, reject) => { + fs.writeFile('../npDatabase.json', JSON.stringify(db, null, 4), err => { + if (err) { + return reject(err) + } + resolve() + }) + }) } export async function writeMods(db: PackageDB): Promise { - const mods: ModDb = {}; - - for (const name of Object.keys(db)) { - const pkg = db[name]; - - if (pkg.metadata.ccmodType === 'base' || pkg.metadata.ccmodType === 'tool') { - continue; - } - - const install = getInstallation(pkg.installation); - if (!install) { - continue; - } - - mods[name] = { - name: pkg.metadata.ccmodHumanName || name, - description: pkg.metadata.description || 'A mod. (Description not available; contact mod author and have them add a description to their package.json file)', - license: pkg.metadata.license, - page: getHomepage(pkg.metadata.homepage), - archive_link: install.url, - hash: install.hash, - version: pkg.metadata.version, - }; - } - - return new Promise((resolve, reject) => { - fs.writeFile('../mods.json', JSON.stringify({mods}, null, 4), err => { - if (err) { - return reject(err); - } - resolve(); - }); - }); + const mods: ModDb = {} + + for (const name of Object.keys(db)) { + const pkg = db[name] + const meta = pkg.metadata + const ccmod = pkg.metadataCCMod + + if (meta?.ccmodType === 'base' || meta?.ccmodType === 'tool') continue + + const install = getInstallation(pkg.installation) + if (!install) continue + + mods[name] = { + name: getStringFromLocalisedString(ccmod?.title || meta!.ccmodHumanName || name), + description: getStringFromLocalisedString( + ccmod?.description || + meta!.description || + 'A mod. (Description not available; contact mod author and have them add a description to their package.json file)' + ), + license: ccmod?.license || meta!.license, + page: getHomepage(ccmod?.homepage || meta!.homepage), + archive_link: install.url, + hash: install.hash, + version: ccmod?.version || meta!.version, + } + } + + return new Promise((resolve, reject) => { + fs.writeFile('../mods.json', JSON.stringify({ mods }, null, 4), err => { + if (err) { + return reject(err) + } + resolve() + }) + }) } function getHomepage(url?: string): Page[] { - if (!url) { - return []; - } - - let name: string; - switch (new URL(url).hostname) { - case 'github.com': - name = 'GitHub'; - break; - case 'gitlab.com': - name = 'GitLab'; - break; - default: - name = 'mod\'s homepage'; - } - - return [{name, url}]; + if (!url) { + return [] + } + + let name: string + switch (new URL(url).hostname) { + case 'github.com': + name = 'GitHub' + break + case 'gitlab.com': + name = 'GitLab' + break + default: + name = "mod's homepage" + } + + return [{ name, url }] } -function getInstallation(installations: InstallMethod[]): {url: string, hash: {sha256: string}} | undefined { - const zip = installations.find(i => i.type === 'ccmod') as InstallMethodCCMod; - if (zip) { - return {url: zip.url, hash: zip.hash}; - } +function getStringFromLocalisedString(str: LocalizedString): string { + if (!str) throw new Error(`No mod name found: ${str}`) + if (typeof str === 'string') return str + const newStr = str.en_US + if (!newStr) throw new Error(`No english mod name found: ${str}`) + return newStr +} + +function getInstallation(installations: InstallMethod[]): { url: string; hash: { sha256: string } } | undefined { + const zip = installations.find(i => i.type === 'ccmod') as InstallMethodCCMod + if (zip) { + return { url: zip.url, hash: zip.hash } + } + + const modZip = installations.find(i => i.type === 'modZip') as InstallMethodModZip + if (modZip) { + return { url: modZip.url, hash: modZip.hash } + } - const modZip = installations.find(i => i.type === 'modZip') as InstallMethodModZip; - if (modZip) { - return {url: modZip.url, hash: modZip.hash}; - } + return undefined +} - return undefined; +async function buildEntry(result: PackageDB, meta: PkgMetadata | undefined, ccmod: PkgCCMod | undefined, inputs: InputLocation[]): Promise { + result[ccmod?.id || meta!.name] = { + metadata: meta, + metadataCCMod: ccmod, + installation: await generateInstallations(inputs), + } } -async function buildEntry(result: PackageDB, pkg: PkgMetadata, inputs: InputLocation[]): Promise { - result[pkg.name] = { - metadata: pkg, - installation: await generateInstallations(inputs), - }; +function checkMeta(meta: PkgMetadata): boolean { + if (meta.dependencies && !meta.ccmodDependencies) { + console.warn(`Package has 'dependencies', not 'ccmodDependencies': ${meta.name}; correct ASAP`) + return false + } + + if (meta.ccmodDependencies) { + if (meta.ccmodDependencies.constructor !== Object) { + console.warn(`Package has dependencies not an object: ${meta.name}`) + return false + } + + for (let dep in meta.ccmodDependencies) { + if (semver.validRange(meta.ccmodDependencies[dep]) === null) { + console.warn(`Package has invalid constraint: ${meta.name}`) + return false + } + } + } + + if (!meta.version) { + console.warn(`Package is missing version: ${meta.name}`) + return false + } + + if (semver.parse(meta.version) == null) { + console.warn(`Package version invalid: ${meta.name}`) + return false + } + + return true } -function check(pkg: PkgMetadata): boolean { - if (pkg.dependencies && !pkg.ccmodDependencies) { - console.warn(`Package has 'dependencies', not 'ccmodDependencies': ${pkg.name}; correct ASAP`); - return false; - } - - if (pkg.ccmodDependencies) { - if (pkg.ccmodDependencies.constructor !== Object) { - console.warn(`Package has dependencies not an object: ${pkg.name}`); - return false; - } - - for (let dep in pkg.ccmodDependencies) { - if (semver.validRange(pkg.ccmodDependencies[dep]) === null) { - console.warn(`Package has invalid constraint: ${pkg.name}`); - return false; - } - } - } - - if (!pkg.version) { - console.warn(`Package is missing version: ${pkg.name}`); - return false; - } - - if (semver.parse(pkg.version) == null) { - console.warn(`Package version invalid: ${pkg.name}`); - return false; - } - - return true; +function checkCCMod(ccmod: PkgCCMod): boolean { + if (ccmod.dependencies) { + if (ccmod.dependencies.constructor !== Object) { + console.warn(`Package has dependencies not an object: ${ccmod.id}`) + return false + } + + for (let dep in ccmod.dependencies) { + if (semver.validRange(ccmod.dependencies[dep]) === null) { + console.warn(`Package has invalid constraint: ${ccmod.id}`) + return false + } + } + } + + if (!ccmod.version) { + console.warn(`Package is missing version: ${ccmod.id}`) + return false + } + + if (semver.parse(ccmod.version) == null) { + console.warn(`Package version invalid: ${ccmod.id}`) + return false + } + + return true } async function generateInstallations(inputs: InputLocation[]): Promise { - const result = []; - - for (const input of inputs) { - const install = await generateInstallation(input); - if (install) { - if (install instanceof Array) { - result.push(...install); - } else { - result.push(install); - } - } - } - - return result; + const result = [] + + for (const input of inputs) { + const install = await generateInstallation(input) + if (install) { + if (install instanceof Array) { + result.push(...install) + } else { + result.push(install) + } + } + } + + return result } async function generateInstallation(input: InputLocation): Promise { - switch (input.type) { - case 'modZip': { - const data = await streamToBuffer(await download(input.urlZip)); - - return { - type: 'modZip', - url: input.urlZip, - source: input.source, - hash: { - sha256: crypto.createHash('sha256').update(data).digest('hex'), - }, - }; - } - case 'ccmod': { - const data = await streamToBuffer(await download(input.url)); - - return { - type: 'ccmod', - url: input.url, - hash: { - sha256: crypto.createHash('sha256').update(data).digest('hex'), - }, - }; - } - case 'injected': - return input.installation; - } + switch (input.type) { + case 'modZip': { + const data = await streamToBuffer(await download(input.urlZip)) + + return { + type: 'modZip', + url: input.urlZip, + source: input.source, + hash: { + sha256: crypto.createHash('sha256').update(data).digest('hex'), + }, + } + } + case 'ccmod': { + const data = await streamToBuffer(await download(input.url)) + + return { + type: 'ccmod', + url: input.url, + hash: { + sha256: crypto.createHash('sha256').update(data).digest('hex'), + }, + } + } + case 'injected': + return input.installation + } } -function groupByName(packages: [PkgMetadata, InputLocation][]) : Map { - const result = new Map(); - - for (const [pkg, input] of packages) { - if (result.has(pkg.name)) { - result.get(pkg.name)?.[1].push(input); - } else { - result.set(pkg.name, [pkg, [input]]); - } - } - - return result; +function groupByName(packages: ModMetadatasInput[]): Map { + const result = new Map() + + for (const { meta: pkg, ccmod, input } of packages) { + for (const name of [ccmod?.id, pkg?.name, 'nomodlikethiseverwillexist'].filter(Boolean) as string[]) { + if (name == 'nomodlikethiseverwillexist') throw new Error(packages.join()) + if (result.has(name)) { + result.get(name)?.inputs.push(input) + } else { + result.set(name, { meta: pkg, ccmod, inputs: [input] }) + } + break + } + } + + return result } function sort(db: PackageDB): PackageDB { - const result: PackageDB = {}; - for (const key of Object.keys(db).sort()) { - result[key] = db[key]; - } - return result; + const result: PackageDB = {} + for (const key of Object.keys(db).sort()) { + result[key] = db[key] + } + return result } diff --git a/build/src/download.ts b/build/src/download.ts index 159053cd..07853b06 100644 --- a/build/src/download.ts +++ b/build/src/download.ts @@ -1,8 +1,8 @@ -import https from 'https'; -import http from 'http'; -import urlModule from 'url'; -import stream from 'stream'; -import * as cache from './cache'; +import https from 'https' +import http from 'http' +import urlModule from 'url' +import stream from 'stream' +import * as cache from './cache' /** * @@ -10,66 +10,67 @@ import * as cache from './cache'; * @returns path to file */ export async function download(url: string): Promise { - const [head, realUrl] = await follow(url); - const etag = getTag(head); + const [head, realUrl] = await follow(url) + const etag = getTag(head) - const cached = await cache.get(etag); - if (cached) { - return cached; - } + const cached = await cache.get(etag) + if (cached) { + return cached + } - const resp = await body(realUrl); - cache.put(etag, resp.pipe(new stream.PassThrough())); - return resp.pipe(new stream.PassThrough()); + const resp = await body(realUrl) + cache.put(etag, resp.pipe(new stream.PassThrough())) + return resp.pipe(new stream.PassThrough()) } export function streamToBuffer(readable: stream.Readable): Promise { - return new Promise((resolve, reject) => { - const parts: Buffer[] = []; - readable - .on('data', (d) => parts.push(d)) - .on('end', () => resolve(Buffer.concat(parts))) - .on('error', (err) => reject(err)); - }); + return new Promise((resolve, reject) => { + const parts: Buffer[] = [] + readable + .on('data', d => parts.push(d)) + .on('end', () => resolve(Buffer.concat(parts))) + .on('error', err => reject(err)) + }) } async function follow(url: string): Promise<[http.IncomingMessage, string]> { - let result = await head(url); - while (result.statusCode === 302 || result.statusCode === 301) { - url = result.headers.location!; - result.destroy(); - result = await head(url); - } - result.destroy(); - return [result, url]; + let result = await head(url) + while (result.statusCode === 302 || result.statusCode === 301) { + url = result.headers.location! + result.destroy() + result = await head(url) + } + result.destroy() + return [result, url] } function head(url: string): Promise { - return getUsingMethod(url, 'HEAD'); + return getUsingMethod(url, 'HEAD') } function body(url: string): Promise { - return getUsingMethod(url, 'GET'); + return getUsingMethod(url, 'GET') } async function getUsingMethod(url: string, method: string): Promise { - const uri = urlModule.parse(url); - const { get } = uri.protocol === 'https:' ? https : http; - const options = {method}; + const uri = urlModule.parse(url) + const { get } = uri.protocol === 'https:' ? https : http + const options = { method } - return new Promise((resolve, reject) => - get(url, options) - .on('response', (resp) => resolve(resp)) - .on('error', (err) => reject(err))); + return new Promise((resolve, reject) => + get(url, options) + .on('response', resp => resolve(resp)) + .on('error', err => reject(err)) + ) } function getTag(head: http.IncomingMessage): string { - switch (typeof head.headers.etag) { - case 'string': - return head.headers.etag; - case 'object': - return head.headers.etag[0]; - default: - return ''; - } + switch (typeof head.headers.etag) { + case 'string': + return head.headers.etag + case 'object': + return head.headers.etag[0] + default: + return '' + } } diff --git a/build/src/inputLocations.ts b/build/src/inputLocations.ts index 19b23fc6..26c19213 100644 --- a/build/src/inputLocations.ts +++ b/build/src/inputLocations.ts @@ -1,16 +1,16 @@ -import fs from 'fs'; +import fs from 'fs' export async function parse(): Promise { - return JSON.parse(await read() as any); + return JSON.parse((await read()) as any) } function read(): Promise { - return new Promise((resolve, reject) => { - fs.readFile('../input-locations.json', (err, data) => { - if (err) { - reject(err); - } - resolve(data); - }); - }); + return new Promise((resolve, reject) => { + fs.readFile('../input-locations.json', (err, data) => { + if (err) { + reject(err) + } + resolve(data) + }) + }) } diff --git a/build/src/main.ts b/build/src/main.ts index 53245de4..b1d69ea6 100644 --- a/build/src/main.ts +++ b/build/src/main.ts @@ -1,18 +1,18 @@ -import * as inputLocations from './inputLocations'; -import * as source from './source'; -import * as db from './db'; +import * as inputLocations from './inputLocations' +import * as source from './source' +import * as db from './db' async function main() { - const locations = await inputLocations.parse(); - const promises: Promise<[PkgMetadata, InputLocation]>[] = []; - for (const loc of locations) { - promises.push(source.get(loc)); - } - const packages = await Promise.all(promises); + const locations = await inputLocations.parse() + const promises: Promise[] = [] + for (const loc of locations) { + promises.push(source.get(loc)) + } + const packages = await Promise.all(promises) - const pkgDb = await db.build(packages); - await db.write(pkgDb); - await db.writeMods(pkgDb); + const pkgDb = await db.build(packages) + await db.write(pkgDb) + await db.writeMods(pkgDb) } -main().catch(err => console.error('error: ', err)); +main().catch(err => console.error('error: ', err)) diff --git a/build/src/source.ts b/build/src/source.ts index 14f6c632..d9766e60 100644 --- a/build/src/source.ts +++ b/build/src/source.ts @@ -1,95 +1,119 @@ -import stream from 'stream'; -import yauzl from 'yauzl'; -import { download, streamToBuffer } from './download'; +import stream from 'stream' +import yauzl from 'yauzl' +import { download, streamToBuffer } from './download' -export async function get(input: InputLocation): Promise<[PkgMetadata, InputLocation]> { - try { - switch (input.type) { - case 'modZip': - return [await getModZip(input), input]; - case 'ccmod': - return [await getCCMod(input), input]; - default: - throw new Error(`Unknown location type '${input.type}'`); - } - } catch (e) { - console.log('Error while extracting', input); - throw e; - } +export type ModMetadatas = { + ccmod?: PkgCCMod + meta?: PkgMetadata } +export type ModMetadatasInput = ModMetadatas & { input: InputLocation } -async function getModZip(zip: ModZipInputLocation): Promise { - const file = await download(zip.urlZip); - const buf = await streamToBuffer(file); - if (buf.length === 0) { - throw new Error(); - } - const archive = await open(buf); - const stream = await openFile(archive, modZipPath(zip)); - const rawPkg = await streamToBuffer(stream); +export async function get(input: InputLocation): Promise { + let out + try { + switch (input.type) { + case 'modZip': + out = { + meta: await getModZipFile(input, 'package.json'), + ccmod: await getModZipFile(input, 'ccmod.json'), + input, + } + break + case 'ccmod': + out = { + meta: await getCCModFile(input, 'package.json'), + ccmod: await getCCModFile(input, 'ccmod.json'), + input, + } + break + default: + throw new Error(`Unknown location type '${input.type}'`) + } + } catch (e) { + console.log('--------') + console.log('Error while extracting', input) + console.log(e) + console.log('--------') + throw e + } + if (!out.ccmod && !out.meta) throw new Error(`A mod has to either have a package.json or a ccmod.json: ${input}`) + return out +} + +async function getModZipFile(zip: ModZipInputLocation, fileName: string): Promise { + const file = await download(zip.urlZip) + const buf = await streamToBuffer(file) + if (buf.length === 0) return + const archive = await open(buf) + let stream + stream = await openFile(archive, modZipPath(zip, fileName)) + if (!stream) return + const rawPkg = await streamToBuffer(stream) - archive.close(); + archive.close() - return JSON.parse(rawPkg as unknown as string) as PkgMetadata; + return JSON.parse(rawPkg as unknown as string) as T } -async function getCCMod(ccmod: CCModInputLocation): Promise { - const file = await download(ccmod.url); - const buf = await streamToBuffer(file); - if (buf.length === 0) { - throw new Error(); - } - const archive = await open(buf); - const stream = await openFile(archive, 'package.json'); - const rawPkg = await streamToBuffer(stream); +function modZipPath(zip: ModZipInputLocation, fileName: string): string { + if (fileName === 'package.json' && zip.packageJSONPath) { + return zip.packageJSONPath + } + if (zip.source) { + return `${zip.source}/${fileName}` + } + return fileName +} - archive.close(); +async function getCCModFile(ccmod: CCModInputLocation, fileName: string): Promise { + const file = await download(ccmod.url) + const buf = await streamToBuffer(file) + if (buf.length === 0) return + const archive = await open(buf) + const stream = await openFile(archive, fileName) + if (!stream) return + const rawPkg = await streamToBuffer(stream) - return JSON.parse(rawPkg as unknown as string) as PkgMetadata; -} + archive.close() -function modZipPath(zip: ModZipInputLocation): string { - if (zip.packageJSONPath) { - return zip.packageJSONPath; - } - if (zip.source) { - return `${zip.source}/package.json`; - } - return 'package.json'; + return JSON.parse(rawPkg as unknown as string) as T } function open(buffer: Buffer): Promise { - return new Promise((resolve, reject) => { - yauzl.fromBuffer(buffer, {autoClose: true, lazyEntries: true, decodeStrings: true}, (err, zip) => { - if (err || !zip) { - return reject(err); - } - resolve(zip); - }); - }); + return new Promise((resolve, reject) => { + yauzl.fromBuffer(buffer, { autoClose: true, lazyEntries: true, decodeStrings: true }, (err, zip) => { + if (err || !zip) { + return reject(err) + } + resolve(zip) + }) + }) } -function openFile(zip: yauzl.ZipFile, file: string): Promise { - return new Promise((resolve, reject) => { - zip.readEntry(); - zip - .on('entry', (entry: yauzl.Entry) => { - if (entry.fileName.endsWith('/')) { - zip.readEntry(); - } else { - if (entry.fileName === file) { - zip.openReadStream(entry, (err, result) => { - if (err || !result) { - return reject(err); - } - resolve(result); - }); - } else { - zip.readEntry(); - } - } - }) - .on('end', () => reject(new Error('package.json not found'))) - .on('error', (err) => reject(err)); - }); +function openFile(zip: yauzl.ZipFile, file: string): Promise { + return new Promise((resolve, reject) => { + zip.readEntry() + zip.on('entry', (entry: yauzl.Entry) => { + if (entry.fileName.endsWith('/')) { + zip.readEntry() + } else { + if (entry.fileName === file) { + zip.openReadStream(entry, (err, result) => { + if (err || !result) { + return reject(err) + } + resolve(result) + }) + } else { + zip.readEntry() + } + } + }) + .on('end', () => { + resolve(undefined) + return undefined + // reject(new Error(`${file} not found`)) + }) + .on('error', err => reject(err)) + }) } diff --git a/build/src/types.d.ts b/build/src/types.d.ts index a0a40445..e518bde8 100644 --- a/build/src/types.d.ts +++ b/build/src/types.d.ts @@ -1,39 +1,38 @@ -declare type InputLocation = InjectedInputLocation | ModZipInputLocation | CCModInputLocation; +declare type InputLocation = InjectedInputLocation | ModZipInputLocation | CCModInputLocation // Represents a raw input location to put more or less directly into npDatabase.json declare type InjectedInputLocation = { - type: 'injected'; -} & Package; + type: 'injected' +} & Package declare type ModZipInputLocation = { - type: 'modZip'; - // The URL of the ZIP file. - urlZip: string; - // The subdirectory in which the package.json file is kept. - // Note that GitHub archives have an additional enclosing directory, so you will usually need to use this. - // Only this subdirectory & subdirectories of it are extracted, and it is extracted at the target installation directory. - source?: string; - // If provided, then the package.json file is at this location in the archive, regardless of 'source'. - // This must pretty much only be used for base packages. - packageJSONPath?: string; -}; + type: 'modZip' + // The URL of the ZIP file. + urlZip: string + // The subdirectory in which the package.json file is kept. + // Note that GitHub archives have an additional enclosing directory, so you will usually need to use this. + // Only this subdirectory & subdirectories of it are extracted, and it is extracted at the target installation directory. + source?: string + // If provided, then the package.json file is at this location in the archive, regardless of 'source'. + // This must pretty much only be used for base packages. + packageJSONPath?: string +} declare type CCModInputLocation = { - type: 'ccmod'; - // The URL of the ccmod file. - url: string; + type: 'ccmod' + // The URL of the ccmod file. + url: string } // The content of the input-locations.json file. -declare type InputLocations = InputLocation[]; - +declare type InputLocations = InputLocation[] // An os.platform() value (see https://nodejs.org/api/os.html#os_os_platform ) -declare type NodeOSPlatform = string; +declare type NodeOSPlatform = string // Imported from https://github.com/CCDirectLink/CLS/blob/master/proposals/1/standardized-mod-format.md -declare type Semver = string; -declare type SemverConstraint = string; +declare type Semver = string +declare type SemverConstraint = string // StandardizedModPackage is retroactively made a subclass of PackageDBPackageMetadata. /* @@ -42,16 +41,16 @@ declare type SemverConstraint = string; * and special-case UI to be user-friendly, such as CCLoader and NWJS upgrades. * (In particular, CrossCode, CCLoader and NWJS upgrades require custom detection methods for their local copies.) */ -declare type PackageType = 'mod' | 'tool' | 'base'; +declare type PackageType = 'mod' | 'tool' | 'base' /* * A page relating to the mod. */ declare type Page = { - // The name of the page. For the canonical GitHub or GitLab page, this must be "GitHub" / "GitLab". - name: string; - url: string; -}; + // The name of the page. For the canonical GitHub or GitLab page, this must be "GitHub" / "GitLab". + name: string + url: string +} /* * This is related to the supported package metadata for mods, on purpose. @@ -62,80 +61,120 @@ declare type Page = { * and that means ensuring all package metadata is either avoided by NPM or understood by it. */ declare type PkgMetadata = { - // This is the unique ID for this package, used for dependency handling. Note that this DOES NOT have to avoid collision with the NPM registry. - name: string; - // If not provided, defaults to "mod". - ccmodType?: PackageType; - // This is the version of the package for dependency purposes. (see https://docs.npmjs.com/files/package.json ) - version: Semver; - // This is the dependencies of the package, if any. If not present, `dependencies` is checked. - // If `dependencies` contains NPM packages, you must supply at least an empty object here to prevent issues. - ccmodDependencies?: Record; - // This is the dependencies of the package, if any. WARNING: THIS CONFLICTS WITH NPM. DO NOT USE. NEW MODS WITH THIS WILL NOT BE ACCEPTED. - dependencies?: Record; - - // Below here is metadata that has no effect on function. - - // This is the name the user is supposed to see. Really meant as a preservation mechanism for old mods.json naming information. Defaults to name. - ccmodHumanName?: string; - // This is the description of the package. (see https://docs.npmjs.com/files/package.json ) - description?: string; - // SPDX license identifier or human readable text (see https://docs.npmjs.com/files/package.json ) - license?: string; - // Homepage URL (see https://docs.npmjs.com/files/package.json ) - homepage?: string; -}; + // This is the unique ID for this package, used for dependency handling. Note that this DOES NOT have to avoid collision with the NPM registry. + name: string + // If not provided, defaults to "mod". + ccmodType?: PackageType + // This is the version of the package for dependency purposes. (see https://docs.npmjs.com/files/package.json ) + version: Semver + // This is the dependencies of the package, if any. If not present, `dependencies` is checked. + // If `dependencies` contains NPM packages, you must supply at least an empty object here to prevent issues. + ccmodDependencies?: Record + // This is the dependencies of the package, if any. WARNING: THIS CONFLICTS WITH NPM. DO NOT USE. NEW MODS WITH THIS WILL NOT BE ACCEPTED. + dependencies?: Record + + // Below here is metadata that has no effect on function. + + // This is the name the user is supposed to see. Really meant as a preservation mechanism for old mods.json naming information. Defaults to name. + ccmodHumanName?: string + // This is the description of the package. (see https://docs.npmjs.com/files/package.json ) + description?: string + // SPDX license identifier or human readable text (see https://docs.npmjs.com/files/package.json ) + license?: string + // Homepage URL (see https://docs.npmjs.com/files/package.json ) + homepage?: string +} + +type FilePath = string + +type LocalizedString = Record | string +type Locale = string + +type Person = PersonDetails | string +interface PersonDetails { + name: LocalizedString + email?: LocalizedString + url?: LocalizedString + comment?: LocalizedString +} + +declare type PkgCCMod = { + id: string + version?: Semver + + title?: LocalizedString + description?: LocalizedString + license?: string + homepage?: string + keywords?: string[] + authors?: Person[] + icons?: Record + type?: 'mod' | 'library' + + dependencies?: Record + + assets?: FilePath[] + assetsDir?: FilePath + modPrefix?: string + + plugin?: FilePath + preload?: FilePath + postload?: FilePath + prestart?: FilePath + poststart?: FilePath +} // Represents some set of hashes for something. declare type PkgHash = { - // Lowercase hexadecimal-encoded SHA-256 hash of the data. - sha256: string; -}; + // Lowercase hexadecimal-encoded SHA-256 hash of the data. + sha256: string +} /* * Represents a method of installing the package. */ -declare type InstallMethod = InstallMethodCommon | InstallMethodModZip | InstallMethodCCMod; +declare type InstallMethod = InstallMethodCommon | InstallMethodModZip | InstallMethodCCMod /* * The common fields between all PackageDBInstallationMethods. */ declare type InstallMethodCommon = { - // Declares the type of installation method. ALWAYS CHECK THIS. - type: string; - // If present, constrains the platform this method may be used for. - platform?: NodeOSPlatform; + // Declares the type of installation method. ALWAYS CHECK THIS. + type: string + // If present, constrains the platform this method may be used for. + platform?: NodeOSPlatform } declare type InstallMethodModZip = InstallMethodCommon & { - type: 'modZip'; - // The URL of the ZIP to download. (example: "https://github.com/CCDirectLink/CCLoader/archive/master.zip") - url: string; - // The hash of the file at url. - hash: PkgHash; - // If provided, the subdirectory of the ZIP that is the root of the extraction (example: "CCLoader-master") - source?: string; -}; + type: 'modZip' + // The URL of the ZIP to download. (example: "https://github.com/CCDirectLink/CCLoader/archive/master.zip") + url: string + // The hash of the file at url. + hash: PkgHash + // If provided, the subdirectory of the ZIP that is the root of the extraction (example: "CCLoader-master") + source?: string +} declare type InstallMethodCCMod = InstallMethodCommon & { - type: 'ccmod'; - // The URL of the ccmod to download. (example: "https://github.com/CCDirectLink/CC-ChargedBalls/releases/download/1.0.0/ChargedBalls.ccmod") - url: string; - // The hash of the file at url. - hash: PkgHash; + type: 'ccmod' + // The URL of the ccmod to download. (example: "https://github.com/CCDirectLink/CC-ChargedBalls/releases/download/1.0.0/ChargedBalls.ccmod") + url: string + // The hash of the file at url. + hash: PkgHash } /* * Represents a package in the database. */ declare type Package = { - // Metadata for the package. - metadata: PkgMetadata; - // Installation methods (try in order) - installation: InstallMethod[]; -}; + // Metadata for the package. + metadata?: PkgMetadata + metadataCCMod?: PkgCCMod + // Installation methods (try in order) + installation: InstallMethod[] +} /* * Represents the database. Keys in this Record MUST match their respective `value.metadata.name` */ -declare type PackageDB = Record; +declare type PackageDB = Record diff --git a/mods.json b/mods.json index f52bc408..b092ab7d 100644 --- a/mods.json +++ b/mods.json @@ -40,36 +40,6 @@ }, "version": "1.1.3" }, - "CCOldMedia": { - "name": "CCOldMedia", - "description": "A mod that brings back some old title screen assets.", - "page": [ - { - "name": "GitHub", - "url": "https://github.com/lexisother/CCOldMedia" - } - ], - "archive_link": "https://github.com/lexisother/CCOldMedia/releases/download/v1.0.0/CCOldMedia.ccmod", - "hash": { - "sha256": "0791db068d46cf394fc3a512cf3a5bca7744a1550d1e72d07adb39bcea097703" - }, - "version": "1.0.0" - }, - "CCPostDLC": { - "name": "CCPostDLC", - "description": "Adjusts the game to continue after completing the DLC.", - "page": [ - { - "name": "GitHub", - "url": "https://github.com/lexisother/CCPostDLC" - } - ], - "archive_link": "https://github.com/lexisother/CCPostDLC/releases/download/v1.0.0/CCPostDLC.ccmod", - "hash": { - "sha256": "eec76c279f1683b415e4f06186d6d4d8ae6e9d247cec845bce1e6a7e6d69cea0" - }, - "version": "1.0.0" - }, "CCPresetRevival": { "name": "Preset revival", "description": "This brings back the preset menu, which allows you to start the game at a specific point.", @@ -100,21 +70,6 @@ }, "version": "0.0.8" }, - "Capped Stats": { - "name": "Capped Stats", - "description": "big numbers are very scary. :( low numbers are not scary! :)", - "page": [ - { - "name": "GitHub", - "url": "https://github.com/EL20202/cc-uncapped-stats" - } - ], - "archive_link": "https://github.com/EL20202/cc-capped-stats/releases/download/v1.0.0/cc-capped-stats.ccmod", - "hash": { - "sha256": "34c11a440d7af0857728619e17c7143102cec55a1e16b3dd5c3c16935b8965c2" - }, - "version": "1.0.0" - }, "Character Swap": { "name": "Character Swap", "description": "Play as a variety of characters previously unavailable.", @@ -200,21 +155,6 @@ }, "version": "1.0.2" }, - "French": { - "name": "French", - "description": "CrossCode en français !", - "page": [ - { - "name": "GitHub", - "url": "https://github.com/L-Sherry/French-CC" - } - ], - "archive_link": "https://github.com/L-Sherry/French-CC/archive/v1.4.0.zip", - "hash": { - "sha256": "30a9febd011fb056426a1d0e8d9f7f50b8dd7310b80a21f1c6e2d3a6c2a143ff" - }, - "version": "1.4.0" - }, "Hadouken": { "name": "Hadouken", "description": "A mod. (Description not available; contact mod author and have them add a description to their package.json file)", @@ -265,37 +205,6 @@ }, "version": "1.0.1" }, - "Localize Me": { - "name": "Localize Me", - "description": "Add support for more locales, languages and translations", - "license": "MIT", - "page": [ - { - "name": "GitHub", - "url": "https://github.com/L-Sherry/Localize-me" - } - ], - "archive_link": "https://github.com/L-Sherry/Localize-me/archive/v0.6.0.zip", - "hash": { - "sha256": "98da8afe115cb453331ba96a70711bf22453703a921d1578b239aff14084702b" - }, - "version": "0.6.0" - }, - "Logic Steps": { - "name": "Logic Steps", - "description": "Adds a couple custom patch steps that allow for control of logic flow.", - "page": [ - { - "name": "GitHub", - "url": "https://github.com/lexisother/logic-steps" - } - ], - "archive_link": "https://github.com/lexisother/logic-steps/releases/download/v1.0.1/logic-steps.ccmod", - "hash": { - "sha256": "79ac505e9f8f5f948ecb1f9e33b8da330a352f95eee5d381dd697bd3cd93f730" - }, - "version": "1.0.1" - }, "New game++": { "name": "New game++", "description": "A small collection of addons to CrossCode's NG+.", @@ -341,21 +250,6 @@ }, "version": "0.2.7" }, - "QuickInfo EXP Viewer": { - "name": "QuickInfo EXP Viewer", - "description": "Shows the EXP the enemy will give you in the quickinfo popup.", - "page": [ - { - "name": "GitHub", - "url": "https://github.com/lexisother/cc-quickinfo-exp" - } - ], - "archive_link": "https://github.com/lexisother/cc-quickinfo-exp/releases/download/v1.0.1/cc-quickinfo-exp.ccmod", - "hash": { - "sha256": "fcdeeba04a3c3e210353a23031c4396dfa33876f770347e550103a4308e3685a" - }, - "version": "1.0.0" - }, "Restart Button": { "name": "Restart Button", "description": "Adds a button to restart the game without memory leaks", @@ -382,21 +276,6 @@ }, "version": "2.12.1" }, - "Uncapped Stats": { - "name": "Uncapped Stats", - "description": "Removes the visual stat caps - see your stats for what they really are!", - "page": [ - { - "name": "GitHub", - "url": "https://github.com/EL20202/cc-uncapped-stats" - } - ], - "archive_link": "https://github.com/EL20202/cc-uncapped-stats/releases/download/v1.1.1/cc-uncapped-stats-v1.1.1.ccmod", - "hash": { - "sha256": "4084245193fe5b6f43842afcc8db02b78ea6f12472a345b17a339c4c59e48fc8" - }, - "version": "1.1.1" - }, "blades": { "name": "blades", "description": "Asset which replaces balls with blades, now for all classes!", @@ -407,6 +286,21 @@ }, "version": "1.5.0" }, + "cc-capped-stats": { + "name": "Capped Stats", + "description": "Adds a visual stat cap - see your stats for what they really aren't!", + "page": [ + { + "name": "GitHub", + "url": "https://github.com/EL20202/cc-uncapped-stats" + } + ], + "archive_link": "https://github.com/EL20202/cc-capped-stats/releases/download/v1.0.0/cc-capped-stats.ccmod", + "hash": { + "sha256": "34c11a440d7af0857728619e17c7143102cec55a1e16b3dd5c3c16935b8965c2" + }, + "version": "1.0.0" + }, "cc-extra-dialogue": { "name": "CrossCode Extra Dialogue", "description": "Adds more lore-friendly dialogue for party members.", @@ -422,8 +316,53 @@ }, "version": "1.0.0" }, + "cc-oldmedia": { + "name": "CC-OldMedia", + "description": "A mod that brings back some old title screen assets.", + "page": [ + { + "name": "GitHub", + "url": "https://github.com/lexisother/CCOldMedia" + } + ], + "archive_link": "https://github.com/lexisother/CCOldMedia/releases/download/v1.0.0/CCOldMedia.ccmod", + "hash": { + "sha256": "0791db068d46cf394fc3a512cf3a5bca7744a1550d1e72d07adb39bcea097703" + }, + "version": "1.0.0" + }, + "cc-quickinfo-exp": { + "name": "QuickInfo EXP Viewer", + "description": "Shows the EXP the enemy will give you in the quickinfo popup.", + "page": [ + { + "name": "GitHub", + "url": "https://github.com/lexisother/cc-quickinfo-exp" + } + ], + "archive_link": "https://github.com/lexisother/cc-quickinfo-exp/releases/download/v1.0.1/cc-quickinfo-exp.ccmod", + "hash": { + "sha256": "fcdeeba04a3c3e210353a23031c4396dfa33876f770347e550103a4308e3685a" + }, + "version": "1.0.0" + }, + "cc-uncapped-stats": { + "name": "Uncapped Stats", + "description": "Removes! the visual stat caps - see your stats for what they really are!", + "page": [ + { + "name": "GitHub", + "url": "https://github.com/EL20202/cc-uncapped-stats" + } + ], + "archive_link": "https://github.com/EL20202/cc-uncapped-stats/releases/download/v1.1.1/cc-uncapped-stats-v1.1.1.ccmod", + "hash": { + "sha256": "4084245193fe5b6f43842afcc8db02b78ea6f12472a345b17a339c4c59e48fc8" + }, + "version": "1.1.1" + }, "cc-vim": { - "name": "cc-vim", + "name": "Vim Command Mode", "description": "Adds a popup command prompt", "license": "GNU GPLv3", "page": [ @@ -438,6 +377,21 @@ }, "version": "1.3.1" }, + "ccpostdlc": { + "name": "CCPostDLC", + "description": "Adjusts the game to continue after completing the DLC.", + "page": [ + { + "name": "GitHub", + "url": "https://github.com/lexisother/CCPostDLC" + } + ], + "archive_link": "https://github.com/lexisother/CCPostDLC/releases/download/v1.0.0/CCPostDLC.ccmod", + "hash": { + "sha256": "eec76c279f1683b415e4f06186d6d4d8ae6e9d247cec845bce1e6a7e6d69cea0" + }, + "version": "1.0.0" + }, "crosscode-tweak-pack": { "name": "dmitmel's tweak pack", "description": "Micro-mods by dmitmel in a single 999-in-1 package, ranging from QoL tweaks to cheats.", @@ -465,7 +419,7 @@ "version": "0.1.1" }, "el-tweaks": { - "name": "el-tweaks", + "name": "EL's Tweaks", "description": "A coremod full of useful functionality for modders, as well as many tweaks for players.", "page": [], "archive_link": "https://github.com/EL20202/el-crosscode-tweaks/releases/download/v0.5.8/els-tweaks.ccmod", @@ -485,7 +439,7 @@ "version": "1.0.0" }, "font-utils": { - "name": "font-utils", + "name": "Font Utilities", "description": "Adds various new font colors!", "page": [], "archive_link": "https://github.com/EL20202/crosscode-font-utils/releases/download/v1.1.0/font-utils.ccmod", @@ -494,6 +448,21 @@ }, "version": "1.1.0" }, + "french": { + "name": "French", + "description": "CrossCode in french !", + "page": [ + { + "name": "GitHub", + "url": "https://github.com/L-Sherry/French-CC" + } + ], + "archive_link": "https://github.com/L-Sherry/French-CC/archive/v1.4.0.zip", + "hash": { + "sha256": "30a9febd011fb056426a1d0e8d9f7f50b8dd7310b80a21f1c6e2d3a6c2a143ff" + }, + "version": "1.4.0" + }, "hardcoded-config-injector": { "name": "hardcoded-config-injector", "description": "A mod. (Description not available; contact mod author and have them add a description to their package.json file)", @@ -561,6 +530,37 @@ }, "version": "1.0.0" }, + "localize-me": { + "name": "Localize Me", + "description": "Add support for more locales, languages and translations", + "license": "MIT", + "page": [ + { + "name": "GitHub", + "url": "https://github.com/L-Sherry/Localize-Me" + } + ], + "archive_link": "https://github.com/L-Sherry/Localize-me/archive/v0.6.0.zip", + "hash": { + "sha256": "98da8afe115cb453331ba96a70711bf22453703a921d1578b239aff14084702b" + }, + "version": "0.6.0" + }, + "logic-steps": { + "name": "Logic Steps", + "description": "Adds a couple custom patch steps that allow for control of logic flow.", + "page": [ + { + "name": "GitHub", + "url": "https://github.com/lexisother/logic-steps" + } + ], + "archive_link": "https://github.com/lexisother/logic-steps/releases/download/v1.0.1/logic-steps.ccmod", + "hash": { + "sha256": "79ac505e9f8f5f948ecb1f9e33b8da330a352f95eee5d381dd697bd3cd93f730" + }, + "version": "1.0.1" + }, "map-watch": { "name": "Map Watcher", "description": "A mod that automatically loads a map when changes are detected", @@ -612,7 +612,7 @@ "version": "1.0.1" }, "nine-rooms": { - "name": "nine-rooms", + "name": "Nine Rooms", "description": "A little piece of lost history.", "page": [ { @@ -627,7 +627,7 @@ "version": "0.1.0" }, "past-booster": { - "name": "past-booster", + "name": "Past Booster", "description": "Makes the Nine Rooms mod a little more... post-gamey.", "page": [ { diff --git a/npDatabase.json b/npDatabase.json index a768f0d2..710571cc 100644 --- a/npDatabase.json +++ b/npDatabase.json @@ -89,64 +89,6 @@ } ] }, - "CCOldMedia": { - "metadata": { - "name": "CCOldMedia", - "version": "1.0.0", - "description": "A mod that brings back some old title screen assets.", - "homepage": "https://github.com/lexisother/CCOldMedia", - "module": true, - "prestart": "src/prestart.js", - "ccmodDependencies": {} - }, - "installation": [ - { - "type": "modZip", - "url": "https://github.com/lexisother/CCOldMedia/archive/refs/tags/v1.0.0.zip", - "source": "CCOldMedia-1.0.0", - "hash": { - "sha256": "491263c26aefa8f366c135e2672c0214bb593059d44ddf22bebfc3a655f0b73e" - } - }, - { - "type": "ccmod", - "url": "https://github.com/lexisother/CCOldMedia/releases/download/v1.0.0/CCOldMedia.ccmod", - "hash": { - "sha256": "0791db068d46cf394fc3a512cf3a5bca7744a1550d1e72d07adb39bcea097703" - } - } - ] - }, - "CCPostDLC": { - "metadata": { - "name": "CCPostDLC", - "version": "1.0.0", - "description": "Adjusts the game to continue after completing the DLC.", - "homepage": "https://github.com/lexisother/CCPostDLC", - "prestart": "src/prestart.js", - "ccmodDependencies": { - "crosscode": ">=1.4.0", - "post-game": ">=1.4.0" - } - }, - "installation": [ - { - "type": "modZip", - "url": "https://github.com/lexisother/CCPostDLC/archive/refs/tags/v1.0.0.zip", - "source": "CCPostDLC-1.0.0", - "hash": { - "sha256": "704877a8628bb3b6973e8adb22ca93bedd7db816b69a8b3c7d9d35301df63ac6" - } - }, - { - "type": "ccmod", - "url": "https://github.com/lexisother/CCPostDLC/releases/download/v1.0.0/CCPostDLC.ccmod", - "hash": { - "sha256": "eec76c279f1683b415e4f06186d6d4d8ae6e9d247cec845bce1e6a7e6d69cea0" - } - } - ] - }, "CCPresetRevival": { "metadata": { "name": "CCPresetRevival", @@ -193,34 +135,6 @@ } ] }, - "Capped Stats": { - "metadata": { - "name": "Capped Stats", - "version": "1.0.0", - "description": "big numbers are very scary. :( low numbers are not scary! :)", - "homepage": "https://github.com/EL20202/cc-uncapped-stats", - "module": true, - "prestart": "prestart.js", - "ccmodDependencies": {} - }, - "installation": [ - { - "type": "ccmod", - "url": "https://github.com/EL20202/cc-capped-stats/releases/download/v1.0.0/cc-capped-stats.ccmod", - "hash": { - "sha256": "34c11a440d7af0857728619e17c7143102cec55a1e16b3dd5c3c16935b8965c2" - } - }, - { - "type": "modZip", - "url": "https://github.com/EL20202/cc-capped-stats/archive/refs/tags/v1.0.0.zip", - "source": "cc-capped-stats-1.0.0", - "hash": { - "sha256": "2d8876bae0fa566ad35b4f4d5db5c2b5d1a69c55b38e27aa337c2b0b666c20c1" - } - } - ] - }, "Character Swap": { "metadata": { "name": "Character Swap", @@ -380,29 +294,6 @@ } ] }, - "French": { - "metadata": { - "name": "French", - "description": "CrossCode en français !", - "homepage": "https://github.com/L-Sherry/French-CC", - "postload": "mod.js", - "module": true, - "version": "1.4.0", - "ccmodDependencies": { - "Localize Me": ">=0.5 <1" - } - }, - "installation": [ - { - "type": "modZip", - "url": "https://github.com/L-Sherry/French-CC/archive/v1.4.0.zip", - "source": "French-CC-1.4.0", - "hash": { - "sha256": "30a9febd011fb056426a1d0e8d9f7f50b8dd7310b80a21f1c6e2d3a6c2a143ff" - } - } - ] - }, "Hadouken": { "metadata": { "name": "Hadouken", @@ -475,57 +366,6 @@ } ] }, - "Localize Me": { - "metadata": { - "name": "Localize Me", - "license": "MIT", - "homepage": "https://github.com/L-Sherry/Localize-me", - "description": "Add support for more locales, languages and translations", - "postload": "mod.js", - "module": true, - "version": "0.6.0" - }, - "installation": [ - { - "type": "modZip", - "url": "https://github.com/L-Sherry/Localize-me/archive/v0.6.0.zip", - "source": "Localize-me-0.6.0", - "hash": { - "sha256": "98da8afe115cb453331ba96a70711bf22453703a921d1578b239aff14084702b" - } - } - ] - }, - "Logic Steps": { - "metadata": { - "name": "Logic Steps", - "version": "1.0.1", - "description": "Adds a couple custom patch steps that allow for control of logic flow.", - "homepage": "https://github.com/lexisother/logic-steps", - "module": true, - "postload": "postload.js", - "ccmodDependencies": { - "ccloader": ">=2.22.1" - } - }, - "installation": [ - { - "type": "modZip", - "url": "https://github.com/lexisother/logic-steps/archive/refs/tags/v1.0.1.zip", - "source": "logic-steps-1.0.1", - "hash": { - "sha256": "9fcde08ef4a637f3393f23a53b70bfdcc6805de2f21f6234f416d36691defd6a" - } - }, - { - "type": "ccmod", - "url": "https://github.com/lexisother/logic-steps/releases/download/v1.0.1/logic-steps.ccmod", - "hash": { - "sha256": "79ac505e9f8f5f948ecb1f9e33b8da330a352f95eee5d381dd697bd3cd93f730" - } - } - ] - }, "New game++": { "metadata": { "name": "New game++", @@ -539,6 +379,17 @@ "ccloader": "^2.14.3" } }, + "metadataCCMod": { + "id": "New game++", + "version": "1.3.0", + "plugin": "plugin.js", + "homepage": "https://github.com/CCDirectLink/CCNewGamePP", + "description": "A small collection of addons to CrossCode's NG+.", + "dependencies": { + "crosscode": "^1.2.0", + "ccloader": "^2.14.3" + } + }, "installation": [ { "type": "ccmod", @@ -604,34 +455,6 @@ } ] }, - "QuickInfo EXP Viewer": { - "metadata": { - "name": "QuickInfo EXP Viewer", - "version": "1.0.0", - "description": "Shows the EXP the enemy will give you in the quickinfo popup.", - "homepage": "https://github.com/lexisother/cc-quickinfo-exp", - "module": true, - "prestart": "prestart.js", - "ccmodDependencies": {} - }, - "installation": [ - { - "type": "modZip", - "url": "https://github.com/lexisother/cc-quickinfo-exp/archive/refs/tags/v1.0.1.zip", - "source": "cc-quickinfo-exp-1.0.1", - "hash": { - "sha256": "e8e0fa7e59aca78821df92121c3e745bdd5fdf7f2ee5df4e028db9dfb471ed05" - } - }, - { - "type": "ccmod", - "url": "https://github.com/lexisother/cc-quickinfo-exp/releases/download/v1.0.1/cc-quickinfo-exp.ccmod", - "hash": { - "sha256": "fcdeeba04a3c3e210353a23031c4396dfa33876f770347e550103a4308e3685a" - } - } - ] - }, "Restart Button": { "metadata": { "name": "Restart Button", @@ -679,70 +502,208 @@ } ] }, - "Uncapped Stats": { + "blades": { "metadata": { - "name": "Uncapped Stats", - "version": "1.1.1", - "description": "Removes the visual stat caps - see your stats for what they really are!", + "name": "blades", + "version": "1.5.0", + "description": "Asset which replaces balls with blades, now for all classes!", + "module": false, + "ccmodDependencies": {} + }, + "installation": [ + { + "type": "modZip", + "url": "https://github.com/CCDirectLink/Blades/archive/1.5.0.zip", + "source": "Blades-1.5.0", + "hash": { + "sha256": "aa1fe7bdc217a8c27d91496b48f2642cea243ed158dafe32251834536666a25a" + } + } + ] + }, + "cc-capped-stats": { + "metadata": { + "name": "Capped Stats", + "version": "1.0.0", + "description": "big numbers are very scary. :( low numbers are not scary! :)", "homepage": "https://github.com/EL20202/cc-uncapped-stats", "module": true, "prestart": "prestart.js", - "ccmodDependencies": { + "ccmodDependencies": {} + }, + "metadataCCMod": { + "id": "cc-capped-stats", + "version": "1.0.0", + "title": "Capped Stats", + "description": "Adds a visual stat cap - see your stats for what they really aren't!", + "prestart": "prestart.js", + "icons": { + "24": "icon.png" + }, + "dependencies": { "ccloader": "^2.20.0" } }, "installation": [ { "type": "ccmod", - "url": "https://github.com/EL20202/cc-uncapped-stats/releases/download/v1.1.1/cc-uncapped-stats-v1.1.1.ccmod", + "url": "https://github.com/EL20202/cc-capped-stats/releases/download/v1.0.0/cc-capped-stats.ccmod", "hash": { - "sha256": "4084245193fe5b6f43842afcc8db02b78ea6f12472a345b17a339c4c59e48fc8" + "sha256": "34c11a440d7af0857728619e17c7143102cec55a1e16b3dd5c3c16935b8965c2" } }, { "type": "modZip", - "url": "https://github.com/EL20202/cc-uncapped-stats/archive/refs/tags/v1.1.1.zip", - "source": "cc-uncapped-stats-1.1.1", + "url": "https://github.com/EL20202/cc-capped-stats/archive/refs/tags/v1.0.0.zip", + "source": "cc-capped-stats-1.0.0", "hash": { - "sha256": "f71786c48ba246993fd0cd924155a7d09be5fe7020c97482ec285ea7dbe5b1b9" + "sha256": "2d8876bae0fa566ad35b4f4d5db5c2b5d1a69c55b38e27aa337c2b0b666c20c1" } } ] }, - "blades": { + "cc-extra-dialogue": { "metadata": { - "name": "blades", - "version": "1.5.0", - "description": "Asset which replaces balls with blades, now for all classes!", - "module": false, + "name": "cc-extra-dialogue", + "version": "1.0.0", + "ccmodHumanName": "CrossCode Extra Dialogue", + "description": "Adds more lore-friendly dialogue for party members.", + "homepage": "https://github.com/Paradragon/cc-extra-dialogue", + "prestart": "prestart.js" + }, + "metadataCCMod": { + "id": "cc-extra-dialogue", + "version": "1.0.0", + "title": "CrossCode Extra Dialogue", + "description": "Adds more lore-friendly dialogue for party members.", + "homepage": "https://github.com/Paradragon/cc-extra-dialogue", + "icons": { + "24": "icon.png" + }, + "prestart": "prestart.js" + }, + "installation": [ + { + "type": "ccmod", + "url": "https://github.com/Paradragon/cc-extra-dialogue/releases/download/v1.0.0/cc-extra-dialogue.ccmod", + "hash": { + "sha256": "8ab162b803f9a663f5677b058fafcf07218145f38f7a90cbdcf05845b0a5e329" + } + } + ] + }, + "cc-oldmedia": { + "metadata": { + "name": "CCOldMedia", + "version": "1.0.0", + "description": "A mod that brings back some old title screen assets.", + "homepage": "https://github.com/lexisother/CCOldMedia", + "module": true, + "prestart": "src/prestart.js", "ccmodDependencies": {} }, + "metadataCCMod": { + "id": "cc-oldmedia", + "version": "1.0.0", + "title": "CC-OldMedia", + "description": "A mod that brings back some old title screen assets.", + "homepage": "https://github.com/lexisother/CCOldMedia", + "prestart": "src/prestart.js" + }, "installation": [ { "type": "modZip", - "url": "https://github.com/CCDirectLink/Blades/archive/1.5.0.zip", - "source": "Blades-1.5.0", + "url": "https://github.com/lexisother/CCOldMedia/archive/refs/tags/v1.0.0.zip", + "source": "CCOldMedia-1.0.0", "hash": { - "sha256": "aa1fe7bdc217a8c27d91496b48f2642cea243ed158dafe32251834536666a25a" + "sha256": "491263c26aefa8f366c135e2672c0214bb593059d44ddf22bebfc3a655f0b73e" + } + }, + { + "type": "ccmod", + "url": "https://github.com/lexisother/CCOldMedia/releases/download/v1.0.0/CCOldMedia.ccmod", + "hash": { + "sha256": "0791db068d46cf394fc3a512cf3a5bca7744a1550d1e72d07adb39bcea097703" } } ] }, - "cc-extra-dialogue": { + "cc-quickinfo-exp": { "metadata": { - "name": "cc-extra-dialogue", + "name": "QuickInfo EXP Viewer", "version": "1.0.0", - "ccmodHumanName": "CrossCode Extra Dialogue", - "description": "Adds more lore-friendly dialogue for party members.", - "homepage": "https://github.com/Paradragon/cc-extra-dialogue", - "prestart": "prestart.js" + "description": "Shows the EXP the enemy will give you in the quickinfo popup.", + "homepage": "https://github.com/lexisother/cc-quickinfo-exp", + "module": true, + "prestart": "prestart.js", + "ccmodDependencies": {} + }, + "metadataCCMod": { + "id": "cc-quickinfo-exp", + "version": "1.0.0", + "title": "QuickInfo EXP Viewer", + "description": "Shows the EXP the enemy will give you in the quickinfo popup.", + "poststart": "poststart.js", + "dependencies": {} + }, + "installation": [ + { + "type": "modZip", + "url": "https://github.com/lexisother/cc-quickinfo-exp/archive/refs/tags/v1.0.1.zip", + "source": "cc-quickinfo-exp-1.0.1", + "hash": { + "sha256": "e8e0fa7e59aca78821df92121c3e745bdd5fdf7f2ee5df4e028db9dfb471ed05" + } + }, + { + "type": "ccmod", + "url": "https://github.com/lexisother/cc-quickinfo-exp/releases/download/v1.0.1/cc-quickinfo-exp.ccmod", + "hash": { + "sha256": "fcdeeba04a3c3e210353a23031c4396dfa33876f770347e550103a4308e3685a" + } + } + ] + }, + "cc-uncapped-stats": { + "metadata": { + "name": "Uncapped Stats", + "version": "1.1.1", + "description": "Removes the visual stat caps - see your stats for what they really are!", + "homepage": "https://github.com/EL20202/cc-uncapped-stats", + "module": true, + "prestart": "prestart.js", + "ccmodDependencies": { + "ccloader": "^2.20.0" + } + }, + "metadataCCMod": { + "id": "cc-uncapped-stats", + "version": "1.1.1", + "title": "Uncapped Stats", + "description": "Removes! the visual stat caps - see your stats for what they really are!", + "homepage": "https://github.com/EL20202/cc-uncapped-stats", + "prestart": "prestart.js", + "icons": { + "24": "icon.png" + }, + "dependencies": { + "ccloader": "^2.20.0" + } }, "installation": [ { "type": "ccmod", - "url": "https://github.com/Paradragon/cc-extra-dialogue/releases/download/v1.0.0/cc-extra-dialogue.ccmod", + "url": "https://github.com/EL20202/cc-uncapped-stats/releases/download/v1.1.1/cc-uncapped-stats-v1.1.1.ccmod", + "hash": { + "sha256": "4084245193fe5b6f43842afcc8db02b78ea6f12472a345b17a339c4c59e48fc8" + } + }, + { + "type": "modZip", + "url": "https://github.com/EL20202/cc-uncapped-stats/archive/refs/tags/v1.1.1.zip", + "source": "cc-uncapped-stats-1.1.1", "hash": { - "sha256": "8ab162b803f9a663f5677b058fafcf07218145f38f7a90cbdcf05845b0a5e329" + "sha256": "f71786c48ba246993fd0cd924155a7d09be5fe7020c97482ec285ea7dbe5b1b9" } } ] @@ -770,6 +731,36 @@ "ultimate-crosscode-typedefs": "github:krypciak/ultimate-crosscode-typedefs" } }, + "metadataCCMod": { + "id": "cc-vim", + "version": "1.3.1", + "title": { + "en_US": "Vim Command Mode", + "de_DE": "Vim Command Mode", + "fr_FR": "Vim Command Mode", + "zh_CN": "Vim Command Mode", + "zh_TW": "Vim Command Mode", + "ja_JP": "Vim Command Mode", + "ko_KR": "Vim Command Mode" + }, + "description": { + "en_US": "Adds a popup command prompt", + "de_DE": "Adds a popup command prompt", + "fr_FR": "Adds a popup command prompt", + "zh_CN": "Adds a popup command prompt", + "zh_TW": "Adds a popup command prompt", + "ja_JP": "Adds a popup command prompt", + "ko_KR": "Adds a popup command prompt" + }, + "homepage": "https://github.com/krypciak/cc-vim", + "icons": { + "24": "icon.png" + }, + "plugin": "plugin.js", + "dependencies": { + "input-api": ">=1.0.0" + } + }, "installation": [ { "type": "modZip", @@ -807,6 +798,47 @@ } ] }, + "ccpostdlc": { + "metadata": { + "name": "CCPostDLC", + "version": "1.0.0", + "description": "Adjusts the game to continue after completing the DLC.", + "homepage": "https://github.com/lexisother/CCPostDLC", + "prestart": "src/prestart.js", + "ccmodDependencies": { + "crosscode": ">=1.4.0", + "post-game": ">=1.4.0" + } + }, + "metadataCCMod": { + "id": "ccpostdlc", + "version": "1.0.0", + "title": "CCPostDLC", + "description": "Adjusts the game to continue after completing the DLC.", + "homepage": "https://github.com/lexisother/CCPostDLC", + "dependencies": { + "crosscode": ">=1.4.0", + "post-game": ">=1.4.0" + } + }, + "installation": [ + { + "type": "modZip", + "url": "https://github.com/lexisother/CCPostDLC/archive/refs/tags/v1.0.0.zip", + "source": "CCPostDLC-1.0.0", + "hash": { + "sha256": "704877a8628bb3b6973e8adb22ca93bedd7db816b69a8b3c7d9d35301df63ac6" + } + }, + { + "type": "ccmod", + "url": "https://github.com/lexisother/CCPostDLC/releases/download/v1.0.0/CCPostDLC.ccmod", + "hash": { + "sha256": "eec76c279f1683b415e4f06186d6d4d8ae6e9d247cec845bce1e6a7e6d69cea0" + } + } + ] + }, "crosscode-tweak-pack": { "metadata": { "name": "crosscode-tweak-pack", @@ -836,6 +868,26 @@ "ultimate-crosscode-typedefs": "dmitmel/ultimate-crosscode-typedefs" } }, + "metadataCCMod": { + "id": "crosscode-tweak-pack", + "version": "1.1.0", + "title": "dmitmel's tweak pack", + "description": { + "en_US": "Micro-mods by dmitmel in a single 999-in-1 package, ranging from QoL tweaks to cheats.", + "ru_RU": "Микро-моды от dmitmel в одной упаковке 999-in-1, начиная от QoL дополнений и заканчивая читами." + }, + "license": "CC0-1.0", + "homepage": "https://github.com/dmitmel/crosscode-tweak-pack", + "icons": { + "24": "icon24.png" + }, + "plugin": "src/_plugin.js", + "prestart": "src/_prestart.js", + "assets": [ + "data/lang/sc/gui.en_US.json.patch", + "data/lang/sc/gui.ru_RU.json.patch" + ] + }, "installation": [ { "type": "modZip", @@ -894,6 +946,13 @@ "watch": "tsc --watch" } }, + "metadataCCMod": { + "id": "el-tweaks", + "version": "0.5.8", + "title": "EL's Tweaks", + "description": "A coremod full of useful functionality for modders, as well as many tweaks for players.", + "plugin": "./dist/plugin.js" + }, "installation": [ { "type": "modZip", @@ -938,6 +997,13 @@ "description": "Adds various new font colors!", "prestart": "prestart.js" }, + "metadataCCMod": { + "id": "font-utils", + "version": "1.1.0", + "title": "Font Utilities", + "description": "Adds various new font colors!", + "prestart": "prestart.js" + }, "installation": [ { "type": "modZip", @@ -956,6 +1022,51 @@ } ] }, + "french": { + "metadata": { + "name": "French", + "description": "CrossCode en français !", + "homepage": "https://github.com/L-Sherry/French-CC", + "postload": "mod.js", + "module": true, + "version": "1.4.0", + "ccmodDependencies": { + "Localize Me": ">=0.5 <1" + } + }, + "metadataCCMod": { + "id": "french", + "version": "1.4.0", + "title": { + "en_US": "French", + "fr_FR": "Français", + "de_DE": "Französisch" + }, + "description": { + "en_US": "CrossCode in french !", + "fr_FR": "CrossCode en français !", + "de_DE": "CrossCode im Französisch !" + }, + "homepage": "https://github.com/L-Sherry/French-CC", + "icons": { + "24": "flaglea.png" + }, + "postload": "mod.js", + "dependencies": { + "localize-me": ">=0.5 <2" + } + }, + "installation": [ + { + "type": "modZip", + "url": "https://github.com/L-Sherry/French-CC/archive/v1.4.0.zip", + "source": "French-CC-1.4.0", + "hash": { + "sha256": "30a9febd011fb056426a1d0e8d9f7f50b8dd7310b80a21f1c6e2d3a6c2a143ff" + } + } + ] + }, "hardcoded-config-injector": { "metadata": { "name": "hardcoded-config-injector", @@ -1107,6 +1218,58 @@ "media/map/baked/tree-top-ctron-junolea.png" ] }, + "metadataCCMod": { + "id": "junolea", + "version": "1.0.0", + "title": "Junolea Skin", + "description": "Adds a skin which makes Lea look like Juno", + "license": "CC-BY-4.0", + "homepage": "https://github.com/Inevitabilis/CC-Junolea", + "icons": { + "24": "icon24.png" + }, + "dependencies": { + "item-api": ">=0.2.0 <1.0.0" + }, + "assets": [ + "data/animations/player-skins/junolea-hugging.json", + "data/animations/player-skins/junolea-hugging.json.patch", + "data/animations/player-skins/junolea-poses-debug.json", + "data/animations/player-skins/junolea-poses-debug.json.patch", + "data/animations/player-skins/junolea-poses.json", + "data/animations/player-skins/junolea-poses.json.patch", + "data/animations/player-skins/junolea-sleeping.json", + "data/animations/player-skins/junolea-sleeping.json.patch", + "data/animations/player-skins/junolea-weak.json", + "data/animations/player-skins/junolea-weak.json.patch", + "data/animations/player-skins/junolea.json", + "data/animations/player-skins/junolea.json.patch", + "data/characters/main/junolea.json", + "data/characters/main/junolea.json.patch", + "data/database.json.patch", + "data/effects/skins/junolea.json", + "data/effects/skins/junolea.json.patch", + "data/item-database.json.patch", + "media/entity/player/junolea-hugging.png", + "media/entity/player/junolea-move-weak.png", + "media/entity/player/junolea-move.png", + "media/entity/player/junolea-poses-debug.png", + "media/entity/player/junolea-poses.png", + "media/entity/player/junolea-sleeping.png", + "media/entity/player/junolea-throw.png", + "media/face/junolea-hand.png", + "media/face/junolea-panic.png", + "media/face/junolea-special.png", + "media/face/junolea.png", + "media/gui/skins/junolea.png", + "media/map/baked/lea-bakii-kum-junolea.png", + "media/map/baked/lea-ctron-bakii-kum-junolea.png", + "media/map/baked/lea-server-junolea.png", + "media/map/baked/the-room-conversation-clear-junolea.png", + "media/map/baked/the-room-conversation-shelf-junolea.png", + "media/map/baked/tree-top-ctron-junolea.png" + ] + }, "installation": [ { "type": "modZip", @@ -1118,6 +1281,85 @@ } ] }, + "localize-me": { + "metadata": { + "name": "Localize Me", + "license": "MIT", + "homepage": "https://github.com/L-Sherry/Localize-me", + "description": "Add support for more locales, languages and translations", + "postload": "mod.js", + "module": true, + "version": "0.6.0" + }, + "metadataCCMod": { + "id": "localize-me", + "version": "0.6.0", + "title": { + "en_US": "Localize Me", + "fr_FR": "Régionalisez-Moi", + "de_DE": "Lokalisiert mich" + }, + "description": { + "en_US": "Add support for more locales, languages and translations", + "fr_FR": "Ajoute la gestion de plus de locales, de languages et de traductions", + "de_DE": "Fügt Unterstützung für mehr Lokalen, Sprachen und Übersetzungen hinzu", + "ru_RU": "Мод для создания дополнительных региональных настроек, языков и переводов" + }, + "license": "MIT", + "homepage": "https://github.com/L-Sherry/Localize-Me", + "postload": "mod.js" + }, + "installation": [ + { + "type": "modZip", + "url": "https://github.com/L-Sherry/Localize-me/archive/v0.6.0.zip", + "source": "Localize-me-0.6.0", + "hash": { + "sha256": "98da8afe115cb453331ba96a70711bf22453703a921d1578b239aff14084702b" + } + } + ] + }, + "logic-steps": { + "metadata": { + "name": "Logic Steps", + "version": "1.0.1", + "description": "Adds a couple custom patch steps that allow for control of logic flow.", + "homepage": "https://github.com/lexisother/logic-steps", + "module": true, + "postload": "postload.js", + "ccmodDependencies": { + "ccloader": ">=2.22.1" + } + }, + "metadataCCMod": { + "id": "logic-steps", + "version": "1.0.1", + "title": "Logic Steps", + "description": "Adds a couple custom patch steps that allow for control of logic flow.", + "postload": "postload.js", + "dependencies": { + "ccloader": ">=2.22.1" + } + }, + "installation": [ + { + "type": "modZip", + "url": "https://github.com/lexisother/logic-steps/archive/refs/tags/v1.0.1.zip", + "source": "logic-steps-1.0.1", + "hash": { + "sha256": "9fcde08ef4a637f3393f23a53b70bfdcc6805de2f21f6234f416d36691defd6a" + } + }, + { + "type": "ccmod", + "url": "https://github.com/lexisother/logic-steps/releases/download/v1.0.1/logic-steps.ccmod", + "hash": { + "sha256": "79ac505e9f8f5f948ecb1f9e33b8da330a352f95eee5d381dd697bd3cd93f730" + } + } + ] + }, "map-watch": { "metadata": { "name": "map-watch", @@ -1210,6 +1452,13 @@ "description": "A little piece of lost history.", "homepage": "https://github.com/Pyrocorvid/CCNineRooms" }, + "metadataCCMod": { + "id": "nine-rooms", + "version": "0.1.0", + "title": "Nine Rooms", + "description": "A little piece of lost history.", + "homepage": "https://github.com/Pyrocorvid/CCNineRooms" + }, "installation": [ { "type": "modZip", @@ -1231,6 +1480,16 @@ "nine-rooms": ">=0.1.0" } }, + "metadataCCMod": { + "id": "past-booster", + "version": "0.1.0", + "title": "Past Booster", + "description": "Makes the Nine Rooms mod a little more... post-gamey.", + "homepage": "https://github.com/Pyrocorvid/CCNineRooms", + "dependencies": { + "nine-rooms": ">=0.1.0" + } + }, "installation": [ { "type": "modZip", @@ -1418,6 +1677,54 @@ "media/gui/better-world-map/sea.png" ] }, + "metadataCCMod": { + "id": "world-map-overhaul", + "version": "1.1.2", + "title": "World map overhaul", + "description": { + "en_US": "A better world map", + "ru_RU": "Улучшенная карта мира" + }, + "homepage": "https://github.com/dmitmel/cc-world-map-overhaul", + "icons": { + "24": "icon24.png" + }, + "prestart": "prestart.js", + "assets": [ + "media/gui/better-world-map/overlays/colored/arid.png", + "media/gui/better-world-map/overlays/colored/autumn-area.png", + "media/gui/better-world-map/overlays/colored/autumn-fall.png", + "media/gui/better-world-map/overlays/colored/beach.png", + "media/gui/better-world-map/overlays/colored/bergen-trails.png", + "media/gui/better-world-map/overlays/colored/final-dng.png", + "media/gui/better-world-map/overlays/colored/forest.png", + "media/gui/better-world-map/overlays/colored/heat-area.png", + "media/gui/better-world-map/overlays/colored/jungle.png", + "media/gui/better-world-map/overlays/colored/rookie-harbor.png", + "media/gui/better-world-map/overlays/default/arid.png", + "media/gui/better-world-map/overlays/default/autumn-area.png", + "media/gui/better-world-map/overlays/default/autumn-fall.png", + "media/gui/better-world-map/overlays/default/beach.png", + "media/gui/better-world-map/overlays/default/bergen-trails.png", + "media/gui/better-world-map/overlays/default/final-dng.png", + "media/gui/better-world-map/overlays/default/forest.png", + "media/gui/better-world-map/overlays/default/heat-area.png", + "media/gui/better-world-map/overlays/default/jungle.png", + "media/gui/better-world-map/overlays/default/rookie-harbor.png", + "media/gui/better-world-map/overlays/reveal/arid.png", + "media/gui/better-world-map/overlays/reveal/autumn-area.png", + "media/gui/better-world-map/overlays/reveal/autumn-fall.png", + "media/gui/better-world-map/overlays/reveal/beach.png", + "media/gui/better-world-map/overlays/reveal/bergen-trails.png", + "media/gui/better-world-map/overlays/reveal/final-dng.png", + "media/gui/better-world-map/overlays/reveal/forest.png", + "media/gui/better-world-map/overlays/reveal/heat-area.png", + "media/gui/better-world-map/overlays/reveal/jungle.png", + "media/gui/better-world-map/overlays/reveal/rookie-harbor.png", + "media/gui/better-world-map/patched-area-buttons.png", + "media/gui/better-world-map/sea.png" + ] + }, "installation": [ { "type": "ccmod", From 018bed61fd76832a8894eb0a099fbfc6c1d803bf Mon Sep 17 00:00:00 2001 From: krypek Date: Wed, 7 Feb 2024 18:00:36 +0100 Subject: [PATCH 002/196] Merge --- mods.json | 66 +++++++++++++++- npDatabase.json | 202 +++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 264 insertions(+), 4 deletions(-) diff --git a/mods.json b/mods.json index 5078c3b3..fb02d89e 100644 --- a/mods.json +++ b/mods.json @@ -301,6 +301,22 @@ }, "version": "1.0.0" }, + "cc-diorbital-menu": { + "name": "cc-diorbital-menu", + "description": "Extends the quick menu", + "license": "GPLv3", + "page": [ + { + "name": "GitHub", + "url": "https://github.com/krypciak/cc-diorbital-menu" + } + ], + "archive_link": "https://github.com/krypciak/cc-diorbital-menu/releases/download/v1.0.3/cc-diorbital-menu-1.0.3.ccmod", + "hash": { + "sha256": "5c5246f43f6ae7a9f3c5eb26c4b40c5a3a8cab224740f881ade7392c897d712f" + }, + "version": "1.0.3" + }, "cc-extra-dialogue": { "name": "CrossCode Extra Dialogue", "description": "Adds more lore-friendly dialogue for party members.", @@ -317,7 +333,7 @@ "version": "1.0.0" }, "cc-fancy-crash": { - "name": "cc-fancy-crash", + "name": "Fancy crash", "description": "Better crash message", "license": "GPLv3", "page": [ @@ -332,6 +348,51 @@ }, "version": "1.0.7" }, + "cc-oldmedia": { + "name": "CC-OldMedia", + "description": "A mod that brings back some old title screen assets.", + "page": [ + { + "name": "GitHub", + "url": "https://github.com/lexisother/CCOldMedia" + } + ], + "archive_link": "https://github.com/lexisother/CCOldMedia/releases/download/v1.0.0/CCOldMedia.ccmod", + "hash": { + "sha256": "0791db068d46cf394fc3a512cf3a5bca7744a1550d1e72d07adb39bcea097703" + }, + "version": "1.0.0" + }, + "cc-quickinfo-exp": { + "name": "QuickInfo EXP Viewer", + "description": "Shows the EXP the enemy will give you in the quickinfo popup.", + "page": [ + { + "name": "GitHub", + "url": "https://github.com/lexisother/cc-quickinfo-exp" + } + ], + "archive_link": "https://github.com/lexisother/cc-quickinfo-exp/releases/download/v1.0.1/cc-quickinfo-exp.ccmod", + "hash": { + "sha256": "fcdeeba04a3c3e210353a23031c4396dfa33876f770347e550103a4308e3685a" + }, + "version": "1.0.0" + }, + "cc-uncapped-stats": { + "name": "Uncapped Stats", + "description": "Removes! the visual stat caps - see your stats for what they really are!", + "page": [ + { + "name": "GitHub", + "url": "https://github.com/EL20202/cc-uncapped-stats" + } + ], + "archive_link": "https://github.com/EL20202/cc-uncapped-stats/releases/download/v1.1.1/cc-uncapped-stats-v1.1.1.ccmod", + "hash": { + "sha256": "4084245193fe5b6f43842afcc8db02b78ea6f12472a345b17a339c4c59e48fc8" + }, + "version": "1.1.1" + }, "cc-vim": { "name": "Vim Command Mode", "description": "Adds a popup command prompt", @@ -645,7 +706,7 @@ "version": "0.1.1" }, "timer": { - "name": "timer", + "name": "CCTimer", "description": "A speedrun timer for CrossCode.", "page": [ { @@ -706,3 +767,4 @@ "version": "1.1.2" } } +} \ No newline at end of file diff --git a/npDatabase.json b/npDatabase.json index 31261aa3..4db00fac 100644 --- a/npDatabase.json +++ b/npDatabase.json @@ -521,6 +521,47 @@ } ] }, + "cc-capped-stats": { + "metadata": { + "name": "Capped Stats", + "version": "1.0.0", + "description": "big numbers are very scary. :( low numbers are not scary! :)", + "homepage": "https://github.com/EL20202/cc-uncapped-stats", + "module": true, + "prestart": "prestart.js", + "ccmodDependencies": {} + }, + "metadataCCMod": { + "id": "cc-capped-stats", + "version": "1.0.0", + "title": "Capped Stats", + "description": "Adds a visual stat cap - see your stats for what they really aren't!", + "prestart": "prestart.js", + "icons": { + "24": "icon.png" + }, + "dependencies": { + "ccloader": "^2.20.0" + } + }, + "installation": [ + { + "type": "ccmod", + "url": "https://github.com/EL20202/cc-capped-stats/releases/download/v1.0.0/cc-capped-stats.ccmod", + "hash": { + "sha256": "34c11a440d7af0857728619e17c7143102cec55a1e16b3dd5c3c16935b8965c2" + } + }, + { + "type": "modZip", + "url": "https://github.com/EL20202/cc-capped-stats/archive/refs/tags/v1.0.0.zip", + "source": "cc-capped-stats-1.0.0", + "hash": { + "sha256": "2d8876bae0fa566ad35b4f4d5db5c2b5d1a69c55b38e27aa337c2b0b666c20c1" + } + } + ] + }, "cc-diorbital-menu": { "metadata": { "name": "cc-diorbital-menu", @@ -549,6 +590,20 @@ "cc-vim": "github:krypciak/cc-vim" } }, + "metadataCCMod": { + "id": "cc-diorbital-menu", + "version": "1.0.3", + "title": "cc-diorbital-menu", + "description": "Extends the quick menu", + "plugin": "plugin.js", + "homepage": "https://github.com/krypciak/cc-diorbital-menu", + "icons": { + "24": "icon/icon.png" + }, + "dependencies": { + "crosscode": ">=1.0.0" + } + }, "installation": [ { "type": "modZip", @@ -620,6 +675,18 @@ "ultimate-crosscode-typedefs": "github:krypciak/ultimate-crosscode-typedefs" } }, + "metadataCCMod": { + "id": "cc-fancy-crash", + "version": "1.0.7", + "title": "Fancy crash", + "description": "Better crash message", + "homepage": "https://github.com/krypciak/cc-fancy-crash", + "icons": { + "24": "icon/icon.png" + }, + "plugin": "plugin.js", + "dependencies": {} + }, "installation": [ { "type": "modZip", @@ -638,6 +705,122 @@ } ] }, + "cc-oldmedia": { + "metadata": { + "name": "CCOldMedia", + "version": "1.0.0", + "description": "A mod that brings back some old title screen assets.", + "homepage": "https://github.com/lexisother/CCOldMedia", + "module": true, + "prestart": "src/prestart.js", + "ccmodDependencies": {} + }, + "metadataCCMod": { + "id": "cc-oldmedia", + "version": "1.0.0", + "title": "CC-OldMedia", + "description": "A mod that brings back some old title screen assets.", + "homepage": "https://github.com/lexisother/CCOldMedia", + "prestart": "src/prestart.js" + }, + "installation": [ + { + "type": "modZip", + "url": "https://github.com/lexisother/CCOldMedia/archive/refs/tags/v1.0.0.zip", + "source": "CCOldMedia-1.0.0", + "hash": { + "sha256": "491263c26aefa8f366c135e2672c0214bb593059d44ddf22bebfc3a655f0b73e" + } + }, + { + "type": "ccmod", + "url": "https://github.com/lexisother/CCOldMedia/releases/download/v1.0.0/CCOldMedia.ccmod", + "hash": { + "sha256": "0791db068d46cf394fc3a512cf3a5bca7744a1550d1e72d07adb39bcea097703" + } + } + ] + }, + "cc-quickinfo-exp": { + "metadata": { + "name": "QuickInfo EXP Viewer", + "version": "1.0.0", + "description": "Shows the EXP the enemy will give you in the quickinfo popup.", + "homepage": "https://github.com/lexisother/cc-quickinfo-exp", + "module": true, + "prestart": "prestart.js", + "ccmodDependencies": {} + }, + "metadataCCMod": { + "id": "cc-quickinfo-exp", + "version": "1.0.0", + "title": "QuickInfo EXP Viewer", + "description": "Shows the EXP the enemy will give you in the quickinfo popup.", + "poststart": "poststart.js", + "dependencies": {} + }, + "installation": [ + { + "type": "modZip", + "url": "https://github.com/lexisother/cc-quickinfo-exp/archive/refs/tags/v1.0.1.zip", + "source": "cc-quickinfo-exp-1.0.1", + "hash": { + "sha256": "e8e0fa7e59aca78821df92121c3e745bdd5fdf7f2ee5df4e028db9dfb471ed05" + } + }, + { + "type": "ccmod", + "url": "https://github.com/lexisother/cc-quickinfo-exp/releases/download/v1.0.1/cc-quickinfo-exp.ccmod", + "hash": { + "sha256": "fcdeeba04a3c3e210353a23031c4396dfa33876f770347e550103a4308e3685a" + } + } + ] + }, + "cc-uncapped-stats": { + "metadata": { + "name": "Uncapped Stats", + "version": "1.1.1", + "description": "Removes the visual stat caps - see your stats for what they really are!", + "homepage": "https://github.com/EL20202/cc-uncapped-stats", + "module": true, + "prestart": "prestart.js", + "ccmodDependencies": { + "ccloader": "^2.20.0" + } + }, + "metadataCCMod": { + "id": "cc-uncapped-stats", + "version": "1.1.1", + "title": "Uncapped Stats", + "description": "Removes! the visual stat caps - see your stats for what they really are!", + "homepage": "https://github.com/EL20202/cc-uncapped-stats", + "prestart": "prestart.js", + "icons": { + "24": "icon.png" + }, + "dependencies": { + "ccloader": "^2.20.0" + } + }, + "installation": [ + { + "type": "ccmod", + "url": "https://github.com/EL20202/cc-uncapped-stats/releases/download/v1.1.1/cc-uncapped-stats-v1.1.1.ccmod", + "hash": { + "sha256": "4084245193fe5b6f43842afcc8db02b78ea6f12472a345b17a339c4c59e48fc8" + } + }, + { + "type": "modZip", + "url": "https://github.com/EL20202/cc-uncapped-stats/archive/refs/tags/v1.1.1.zip", + "source": "cc-uncapped-stats-1.1.1", + "hash": { + "sha256": "f71786c48ba246993fd0cd924155a7d09be5fe7020c97482ec285ea7dbe5b1b9" + } + } + ] + }, "cc-vim": { "metadata": { "name": "cc-vim", @@ -667,7 +850,7 @@ }, "metadataCCMod": { "id": "cc-vim", - "version": "1.3.1", + "version": "1.5.4", "title": { "en_US": "Vim Command Mode", "de_DE": "Vim Command Mode", @@ -688,7 +871,7 @@ }, "homepage": "https://github.com/krypciak/cc-vim", "icons": { - "24": "icon.png" + "24": "icon/icon.png" }, "plugin": "plugin.js", "dependencies": { @@ -1507,6 +1690,20 @@ "ws": "^8.13.0" } }, + "metadataCCMod": { + "id": "timer", + "version": "3.0.0", + "title": "CCTimer", + "description": "A speedrun timer for CrossCode.", + "icons": { + "24": "icon.png" + }, + "plugin": "plugin.js", + "dependencies": { + "ccloader": "^2.19.0", + "Simplify": "^2.9.0" + } + }, "installation": [ { "type": "modZip", @@ -1677,3 +1874,4 @@ } ] } +} \ No newline at end of file From 35f742f7b22df9243fbaf2aff5a19376ff9d05d6 Mon Sep 17 00:00:00 2001 From: krypek Date: Wed, 7 Feb 2024 18:13:18 +0100 Subject: [PATCH 003/196] Add ccmod.json testing --- build/src/source.ts | 2 - build/tests/npDatabase.js | 77 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 77 insertions(+), 2 deletions(-) diff --git a/build/src/source.ts b/build/src/source.ts index d9766e60..9f9846f7 100644 --- a/build/src/source.ts +++ b/build/src/source.ts @@ -30,10 +30,8 @@ export async function get(input: InputLocation): Promise { throw new Error(`Unknown location type '${input.type}'`) } } catch (e) { - console.log('--------') console.log('Error while extracting', input) console.log(e) - console.log('--------') throw e } if (!out.ccmod && !out.meta) throw new Error(`A mod has to either have a package.json or a ccmod.json: ${input}`) diff --git a/build/tests/npDatabase.js b/build/tests/npDatabase.js index 52716063..19f40d74 100644 --- a/build/tests/npDatabase.js +++ b/build/tests/npDatabase.js @@ -53,6 +53,9 @@ function testPackage(jsonData, mod, name) { if (mod && mod.metadata) { testMetadata(jsonData, mod.metadata); } + if (mod && mod.metadataCCMod) { + testMetadataCCMod(jsonData, mod.metadataCCMod); + } if (mod && mod.installation) { testInstallation(mod); @@ -132,6 +135,80 @@ function testMetadata(jsonData, metadata) { } } +function testMetadataCCMod(jsonData, ccmod) { + it('Test ccmod.json', () => { + expect(typeof ccmod.id === 'string', + 'ccmod.id (type: string) required').to.be.true; + + expect([undefined, 'mod', 'library'].includes(ccmod.type), + 'ccmod.type (type: string) must have one of: ' + + '[undefined, "mod", "library"]').to.be.true; + + expect(ccmod.version === undefined + || semver.valid(ccmod.version) !== null, + 'ccmod.version (type: string) must be undefined or valid semver') + .to.be.true; + + expect(ccmod.title === undefined + || typeof ccmod.title === 'string' + || typeof ccmod.title === 'object', + 'ccmod.title (type: string) has wrong type').to.be.true; + expect(ccmod.description === undefined + || typeof ccmod.description === 'string' + || typeof ccmod.description === 'object', + 'ccmod.description (type: string) has wrong type').to.be.true; + expect(ccmod.license === undefined + || typeof ccmod.license === 'string', + 'ccmod.license (type: string) has wrong type').to.be.true; + expect(ccmod.homepage === undefined + || typeof ccmod.homepage === 'string', + 'ccmod.homepage (type: string) has wrong type').to.be.true; + }); + + if (ccmod.dependencies) { + it('Test check dependencies', () => { + expect(typeof ccmod.dependencies === 'object', + 'ccmod.dependencies (type: object) must be an object') + .to.be.true; + expect(Array.isArray(ccmod.dependencies), + 'ccmod.dependencies (type: object) must be an object') + .to.be.false; + expect(ccmod.dependencies !== null, + 'ccmod.dependencies (type: object) must be an object') + .to.be.true; + + for (const dep of Object.keys(ccmod.dependencies)) { + expect(semver.validRange(ccmod.dependencies[dep]), + `dependency ${dep} must be specify a valid range`) + .to.not.be.null; + + if ( + [ + 'crosscode', + 'simplify', + // https://github.com/CCDirectLink/CCLoader3/blob/edb3481d9ea504e2c7f7fe46709ab2b4a7f2ce0b/src/game.ts#L9-L17 + 'fish-gear', + 'flying-hedgehag', + 'manlea', + 'ninja-skin', + 'post-game', + 'scorpion-robo', + 'snowman-tank', + ].includes(dep.toLowerCase())) { + continue; + } + + expect(jsonData[dep], + `dependency ${dep} must be registered in CCModDb`) + .to.not.be.undefined; + } + }); + } else { + expect(ccmod.dependencies === undefined, + 'ccmod.dependencies must not be used').to.be.true; + } +} + function testInstallation(mod) { for (let i = 0; i < mod.installation.length; i++) { const inst = mod.installation[i]; From 05be607cd340a29a7f7b8a0f720f5bf7394ffb42 Mon Sep 17 00:00:00 2001 From: krypek Date: Wed, 7 Feb 2024 18:16:10 +0100 Subject: [PATCH 004/196] Add input-api to database --- input-locations.json | 672 ++++++++++++++++++++++--------------------- mods.json | 16 ++ npDatabase.json | 28 ++ 3 files changed, 385 insertions(+), 331 deletions(-) diff --git a/input-locations.json b/input-locations.json index 8e323834..91eaeb29 100644 --- a/input-locations.json +++ b/input-locations.json @@ -1,326 +1,326 @@ [ - { - "type": "ccmod", - "url": "https://github.com/CCDirectLink/AMCS-wdeps/releases/download/1.0.0/AMCS-wdeps.ccmod" - }, - { - "type": "modZip", - "urlZip": "https://github.com/CCDirectLink/AMCS-wdeps/archive/1.0.0.zip", - "source": "AMCS-wdeps-1.0.0" - }, - { - "type": "ccmod", - "url": "https://github.com/EL20202/cc-uncapped-stats/releases/download/v1.1.1/cc-uncapped-stats-v1.1.1.ccmod" - }, - { - "type": "modZip", - "urlZip": "https://github.com/EL20202/cc-uncapped-stats/archive/refs/tags/v1.1.1.zip", - "source": "cc-uncapped-stats-1.1.1" - }, - { - "type": "ccmod", - "url": "https://github.com/EL20202/cc-c-edition/releases/download/1.0.0/crosscode-c-edition.ccmod" - }, - { - "type": "modZip", - "urlZip": "https://github.com/EL20202/cc-c-edition/archive/1.0.0.zip", - "source": "cc-c-edition-1.0.0" - }, - { - "type": "modZip", - "urlZip": "https://github.com/CCDirectLink/CC-ChargedBalls/archive/1.0.0.zip", - "source": "CC-ChargedBalls-1.0.0" - }, - { - "type": "modZip", - "urlZip": "https://github.com/ZeikJT/CrossCodeCheats/archive/1.4.0.zip", - "source": "CrossCodeCheats-1.4.0" - }, - { - "type": "modZip", - "urlZip": "https://github.com/CCDirectLink/Blades/archive/1.5.0.zip", - "source": "Blades-1.5.0" - }, - { - "type": "modZip", - "urlZip": "https://github.com/keanuplayz/LeaTriblader/archive/1.0.1.zip", - "source": "LeaTriblader-1.0.1" - }, - { - "type": "modZip", - "urlZip": "https://github.com/keanuplayz/CCRandomEvents/archive/0.0.8.zip", - "source": "CCRandomEvents-0.0.8" - }, - { - "type": "ccmod", - "url": "https://github.com/CCDirectLink/CCPresetRevival/releases/download/1.1.1/CCPresetRevival.ccmod" - }, - { - "type": "modZip", - "urlZip": "https://github.com/CCDirectLink/CCPresetRevival/archive/1.1.1.zip", - "source": "CCPresetRevival-1.1.1" - }, - { - "type": "modZip", - "urlZip": "https://github.com/CCDirectLink/hardcoded-config-injector/archive/v0.1.1.zip", - "source": "hardcoded-config-injector-0.1.1" - }, - { - "type": "ccmod", - "url": "https://github.com/CCDirectLink/CCNewGamePP/releases/download/v1.3.0/CCNewGamePP.ccmod" - }, - { - "type": "modZip", - "urlZip": "https://github.com/CCDirectLink/CCNewGamePP/archive/v1.3.0.zip", - "source": "CCNewGamePP-1.3.0" - }, - { - "type": "modZip", - "urlZip": "https://github.com/CCDirectLink/CCdiscord/archive/refs/tags/v1.0.0.zip", - "source": "CCdiscord-1.0.0" - }, - { - "type": "modZip", - "urlZip": "https://github.com/CCDirectLink/mod-require-fix/archive/refs/tags/v1.0.1.zip", - "source": "mod-require-fix-1.0.1" - }, - { - "type": "ccmod", - "url": "https://github.com/CCDirectLink/CCTimeWalker/releases/download/v0.3.0/CCTimeWalker.ccmod" - }, - { - "type": "modZip", - "urlZip": "https://github.com/CCDirectLink/CCTimeWalker/archive/v0.3.0.zip", - "source": "CCTimeWalker-0.3.0" - }, - { - "type": "modZip", - "urlZip": "https://github.com/CCDirectLink/CCTimer/releases/download/v3.0.0/CCTimer.zip", - "source": "CCTimer" - }, - { - "type": "ccmod", - "url": "https://github.com/CCDirectLink/CCSlowmotion/releases/download/v0.1.1/slowmotion.ccmod" - }, - { - "type": "modZip", - "urlZip": "https://github.com/CCDirectLink/CCSlowmotion/archive/v0.1.1.zip", - "source": "CCSlowmotion-0.1.1/slowmotion" - }, - { - "type": "ccmod", - "url": "https://github.com/CCDirectLink/CCJetpack/releases/download/v0.2.0/CCJetpack.ccmod" - }, - { - "type": "modZip", - "urlZip": "https://github.com/CCDirectLink/CCJetpack/archive/v0.2.0.zip", - "source": "CCJetpack-0.2.0" - }, - { - "type": "modZip", - "urlZip": "https://github.com/CCDirectLink/CCRestartButton/archive/refs/tags/v1.1.3.zip", - "source": "CCRestartButton-1.1.3" - }, - { - "type": "modZip", - "urlZip": "https://github.com/sgrunt/qine/archive/0.2.7.zip", - "source": "qine-0.2.7/qine" - }, - { - "type": "modZip", - "urlZip": "https://github.com/sgrunt/cc-element-boss/archive/0.1.2.zip", - "source": "cc-element-boss-0.1.2/cc-element-boss" - }, - { - "type": "modZip", - "urlZip": "https://github.com/L-Sherry/Localize-me/archive/v0.6.0.zip", - "source": "Localize-me-0.6.0" - }, - { - "type": "modZip", - "urlZip": "https://github.com/L-Sherry/French-CC/archive/v1.4.0.zip", - "source": "French-CC-1.4.0" - }, - { - "type": "modZip", - "urlZip": "https://github.com/CCDirectLink/kitplayer/archive/v0.1.1.zip", - "source": "kitplayer-0.1.1/kitplayer" - }, - { - "type": "modZip", - "urlZip": "https://github.com/rioreur/palicat/archive/1.0.4.zip", - "source": "palicat-1.0.4" - }, - { - "type": "modZip", - "urlZip": "https://github.com/prismskey/CharSwap/archive/v1.0.0.zip", - "source": "CharSwap-1.0.0" - }, - { - "type": "modZip", - "urlZip": "https://github.com/CCDirectLink/item-api/archive/refs/tags/v0.4.2.zip", - "source": "item-api-0.4.2" - }, - { - "type": "modZip", - "urlZip": "https://github.com/CCDirectLink/menu-api/archive/v0.1.1.zip", - "source": "menu-api-0.1.1" - }, - { - "type": "modZip", - "urlZip": "https://github.com/tylercamp/CCJoystickExt/archive/1.0.1.zip", - "source": "CCJoystickExt-1.0.1" - }, - { - "type": "modZip", - "urlZip": "https://github.com/CCDirectLink/extendable-severed-heads/archive/v1.0.0.zip", - "source": "extendable-severed-heads-1.0.0" - }, - { - "type": "modZip", - "urlZip": "https://github.com/CCDirectLink/cc-menu-ui-replacement/archive/v1.0.2.zip", - "source": "cc-menu-ui-replacement-1.0.2/cc-menu-ui-replacement" - }, - { - "type": "modZip", - "urlZip": "https://github.com/CCDirectLink/CCLoader/archive/refs/tags/v2.22.1/v2.12.1.zip", - "source": "CCLoader-2.22.1-v2.12.1", - "packageJSONPath": "CCLoader-2.22.1-v2.12.1/ccloader/package.json" - }, - { - "type": "modZip", - "urlZip": "https://github.com/CCDirectLink/CCLoader/archive/refs/tags/v2.22.1/v2.12.1.zip", - "source": "CCLoader-2.22.1-v2.12.1/assets/mods/simplify" - }, - { - "type": "modZip", - "urlZip": "https://github.com/CCDirectLink/CCLoader/archive/refs/tags/v2.22.1/v2.12.1.zip", - "source": "CCLoader-2.22.1-v2.12.1/assets/mods/ccloader-version-display" - }, - { - "type": "modZip", - "urlZip": "https://github.com/Swanderrr/CCleasitstitle/raw/faba8504ef285f73cb3774e2118987ba74329c87/archive/titlescreenlea.zip", - "source": "" - }, - { - "type": "modZip", - "urlZip": "https://github.com/L-Sherry/Bob-Rank/releases/download/v1.0.0/Bob-Rank-v1.0.0.zip", - "source": "Bob-Rank-v1.0.0" - }, - { - "type": "ccmod", - "url": "https://github.com/CCDirectLink/map-watch/releases/download/v1.0.1/map-watch.ccmod" - }, - { - "type": "modZip", - "urlZip": "https://github.com/CCDirectLink/map-watch/archive/v1.0.1.zip", - "source": "map-watch-1.0.1" - }, - { - "type": "ccmod", - "url": "https://github.com/dmitmel/cc-world-map-overhaul/releases/download/v1.1.2/world-map-overhaul_v1.1.2.ccmod" - }, - { - "type": "modZip", - "urlZip": "https://github.com/dmitmel/cc-world-map-overhaul/releases/download/v1.1.2/world-map-overhaul_v1.1.2.zip", - "source": "world-map-overhaul" - }, - { - "type": "modZip", - "urlZip": "https://github.com/dmitmel/crosscode-readable-saves/releases/download/v1.0.0/crosscode-readable-saves_v1.0.0.zip", - "source": "crosscode-readable-saves" - }, - { - "type": "modZip", - "urlZip": "https://github.com/ubergeek77/CCExtraGamepadOptions/archive/1.0.2.zip", - "source": "CCExtraGamepadOptions-1.0.2" - }, - { - "type": "ccmod", - "url": "https://github.com/Naxane/CCInventorySearch/releases/download/v1.0.0/CCInventorySearch-v1.0.0.ccmod" - }, - { - "type": "modZip", - "urlZip": "https://github.com/Naxane/CCInventorySearch/archive/refs/tags/v1.0.0.zip", - "source": "CCInventorySearch-1.0.0/src" - }, - { - "type": "ccmod", - "url": "https://github.com/EL20202/cc-capped-stats/releases/download/v1.0.0/cc-capped-stats.ccmod" - }, - { - "type": "modZip", - "urlZip": "https://github.com/EL20202/cc-capped-stats/archive/refs/tags/v1.0.0.zip", - "source": "cc-capped-stats-1.0.0" - }, - { - "type": "ccmod", - "url": "https://github.com/WatDuhHekBro/cc-uwuifier/releases/download/v1.0.2/uwuifier.ccmod" - }, - { - "type": "modZip", - "urlZip": "https://github.com/dmitmel/crosscode-tweak-pack/releases/download/v1.1.0/crosscode-tweak-pack_v1.1.0.zip", - "source": "crosscode-tweak-pack" - }, - { - "type": "modZip", - "urlZip": "https://github.com/Inevitabilis/CC-Junolea/archive/refs/tags/v1.0.0.zip", - "source": "CC-Junolea-1.0.0" - }, - { - "type": "ccmod", - "url": "https://github.com/Paradragon/cc-extra-dialogue/releases/download/v1.0.0/cc-extra-dialogue.ccmod" - }, - { - "type": "modZip", - "urlZip": "https://github.com/Pyrocorvid/CCNineRooms/archive/refs/tags/v1.0.1.zip", - "source": "CCNineRooms-1.0.1/nine-rooms" - }, - { - "type": "modZip", - "urlZip": "https://github.com/Pyrocorvid/CCNineRooms/archive/refs/tags/v1.0.1.zip", - "source": "CCNineRooms-1.0.1/past-booster" - }, - { - "type": "modZip", - "urlZip": "https://github.com/CookieSalesman/CrossCode-HADOUKEN-v1.0/archive/refs/tags/v1.0.0.zip", - "source": "CrossCode-HADOUKEN-v1.0-1.0.0" - }, - { - "type": "ccmod", - "url": "https://github.com/Symphiel/CursedCode/releases/download/0.1.1/cursedcode.ccmod" - }, - { - "type": "modZip", - "urlZip": "https://github.com/lexisother/CCPostDLC/archive/refs/tags/v1.0.0.zip", - "source": "CCPostDLC-1.0.0" - }, - { - "type": "ccmod", - "url": "https://github.com/lexisother/CCPostDLC/releases/download/v1.0.0/CCPostDLC.ccmod" - }, - { - "type": "modZip", - "urlZip": "https://github.com/lexisother/CCOldMedia/archive/refs/tags/v1.0.0.zip", - "source": "CCOldMedia-1.0.0" - }, - { - "type": "ccmod", - "url": "https://github.com/lexisother/CCOldMedia/releases/download/v1.0.0/CCOldMedia.ccmod" - }, - { - "type": "modZip", - "urlZip": "https://github.com/EL20202/crosscode-font-utils/archive/refs/tags/v1.1.0.zip", - "source": "crosscode-font-utils-1.1.0" - }, - { - "type": "ccmod", - "url": "https://github.com/EL20202/crosscode-font-utils/releases/download/v1.1.0/font-utils.ccmod" - }, - { - "type": "ccmod", - "url": "https://github.com/EL20202/el-crosscode-tweaks/releases/download/v0.5.8/els-tweaks.ccmod" - }, + { + "type": "ccmod", + "url": "https://github.com/CCDirectLink/AMCS-wdeps/releases/download/1.0.0/AMCS-wdeps.ccmod" + }, + { + "type": "modZip", + "urlZip": "https://github.com/CCDirectLink/AMCS-wdeps/archive/1.0.0.zip", + "source": "AMCS-wdeps-1.0.0" + }, + { + "type": "ccmod", + "url": "https://github.com/EL20202/cc-uncapped-stats/releases/download/v1.1.1/cc-uncapped-stats-v1.1.1.ccmod" + }, + { + "type": "modZip", + "urlZip": "https://github.com/EL20202/cc-uncapped-stats/archive/refs/tags/v1.1.1.zip", + "source": "cc-uncapped-stats-1.1.1" + }, + { + "type": "ccmod", + "url": "https://github.com/EL20202/cc-c-edition/releases/download/1.0.0/crosscode-c-edition.ccmod" + }, + { + "type": "modZip", + "urlZip": "https://github.com/EL20202/cc-c-edition/archive/1.0.0.zip", + "source": "cc-c-edition-1.0.0" + }, + { + "type": "modZip", + "urlZip": "https://github.com/CCDirectLink/CC-ChargedBalls/archive/1.0.0.zip", + "source": "CC-ChargedBalls-1.0.0" + }, + { + "type": "modZip", + "urlZip": "https://github.com/ZeikJT/CrossCodeCheats/archive/1.4.0.zip", + "source": "CrossCodeCheats-1.4.0" + }, + { + "type": "modZip", + "urlZip": "https://github.com/CCDirectLink/Blades/archive/1.5.0.zip", + "source": "Blades-1.5.0" + }, + { + "type": "modZip", + "urlZip": "https://github.com/keanuplayz/LeaTriblader/archive/1.0.1.zip", + "source": "LeaTriblader-1.0.1" + }, + { + "type": "modZip", + "urlZip": "https://github.com/keanuplayz/CCRandomEvents/archive/0.0.8.zip", + "source": "CCRandomEvents-0.0.8" + }, + { + "type": "ccmod", + "url": "https://github.com/CCDirectLink/CCPresetRevival/releases/download/1.1.1/CCPresetRevival.ccmod" + }, + { + "type": "modZip", + "urlZip": "https://github.com/CCDirectLink/CCPresetRevival/archive/1.1.1.zip", + "source": "CCPresetRevival-1.1.1" + }, + { + "type": "modZip", + "urlZip": "https://github.com/CCDirectLink/hardcoded-config-injector/archive/v0.1.1.zip", + "source": "hardcoded-config-injector-0.1.1" + }, + { + "type": "ccmod", + "url": "https://github.com/CCDirectLink/CCNewGamePP/releases/download/v1.3.0/CCNewGamePP.ccmod" + }, + { + "type": "modZip", + "urlZip": "https://github.com/CCDirectLink/CCNewGamePP/archive/v1.3.0.zip", + "source": "CCNewGamePP-1.3.0" + }, + { + "type": "modZip", + "urlZip": "https://github.com/CCDirectLink/CCdiscord/archive/refs/tags/v1.0.0.zip", + "source": "CCdiscord-1.0.0" + }, + { + "type": "modZip", + "urlZip": "https://github.com/CCDirectLink/mod-require-fix/archive/refs/tags/v1.0.1.zip", + "source": "mod-require-fix-1.0.1" + }, + { + "type": "ccmod", + "url": "https://github.com/CCDirectLink/CCTimeWalker/releases/download/v0.3.0/CCTimeWalker.ccmod" + }, + { + "type": "modZip", + "urlZip": "https://github.com/CCDirectLink/CCTimeWalker/archive/v0.3.0.zip", + "source": "CCTimeWalker-0.3.0" + }, + { + "type": "modZip", + "urlZip": "https://github.com/CCDirectLink/CCTimer/releases/download/v3.0.0/CCTimer.zip", + "source": "CCTimer" + }, + { + "type": "ccmod", + "url": "https://github.com/CCDirectLink/CCSlowmotion/releases/download/v0.1.1/slowmotion.ccmod" + }, + { + "type": "modZip", + "urlZip": "https://github.com/CCDirectLink/CCSlowmotion/archive/v0.1.1.zip", + "source": "CCSlowmotion-0.1.1/slowmotion" + }, + { + "type": "ccmod", + "url": "https://github.com/CCDirectLink/CCJetpack/releases/download/v0.2.0/CCJetpack.ccmod" + }, + { + "type": "modZip", + "urlZip": "https://github.com/CCDirectLink/CCJetpack/archive/v0.2.0.zip", + "source": "CCJetpack-0.2.0" + }, + { + "type": "modZip", + "urlZip": "https://github.com/CCDirectLink/CCRestartButton/archive/refs/tags/v1.1.3.zip", + "source": "CCRestartButton-1.1.3" + }, + { + "type": "modZip", + "urlZip": "https://github.com/sgrunt/qine/archive/0.2.7.zip", + "source": "qine-0.2.7/qine" + }, + { + "type": "modZip", + "urlZip": "https://github.com/sgrunt/cc-element-boss/archive/0.1.2.zip", + "source": "cc-element-boss-0.1.2/cc-element-boss" + }, + { + "type": "modZip", + "urlZip": "https://github.com/L-Sherry/Localize-me/archive/v0.6.0.zip", + "source": "Localize-me-0.6.0" + }, + { + "type": "modZip", + "urlZip": "https://github.com/L-Sherry/French-CC/archive/v1.4.0.zip", + "source": "French-CC-1.4.0" + }, + { + "type": "modZip", + "urlZip": "https://github.com/CCDirectLink/kitplayer/archive/v0.1.1.zip", + "source": "kitplayer-0.1.1/kitplayer" + }, + { + "type": "modZip", + "urlZip": "https://github.com/rioreur/palicat/archive/1.0.4.zip", + "source": "palicat-1.0.4" + }, + { + "type": "modZip", + "urlZip": "https://github.com/prismskey/CharSwap/archive/v1.0.0.zip", + "source": "CharSwap-1.0.0" + }, + { + "type": "modZip", + "urlZip": "https://github.com/CCDirectLink/item-api/archive/refs/tags/v0.4.2.zip", + "source": "item-api-0.4.2" + }, + { + "type": "modZip", + "urlZip": "https://github.com/CCDirectLink/menu-api/archive/v0.1.1.zip", + "source": "menu-api-0.1.1" + }, + { + "type": "modZip", + "urlZip": "https://github.com/tylercamp/CCJoystickExt/archive/1.0.1.zip", + "source": "CCJoystickExt-1.0.1" + }, + { + "type": "modZip", + "urlZip": "https://github.com/CCDirectLink/extendable-severed-heads/archive/v1.0.0.zip", + "source": "extendable-severed-heads-1.0.0" + }, + { + "type": "modZip", + "urlZip": "https://github.com/CCDirectLink/cc-menu-ui-replacement/archive/v1.0.2.zip", + "source": "cc-menu-ui-replacement-1.0.2/cc-menu-ui-replacement" + }, + { + "type": "modZip", + "urlZip": "https://github.com/CCDirectLink/CCLoader/archive/refs/tags/v2.22.1/v2.12.1.zip", + "source": "CCLoader-2.22.1-v2.12.1", + "packageJSONPath": "CCLoader-2.22.1-v2.12.1/ccloader/package.json" + }, + { + "type": "modZip", + "urlZip": "https://github.com/CCDirectLink/CCLoader/archive/refs/tags/v2.22.1/v2.12.1.zip", + "source": "CCLoader-2.22.1-v2.12.1/assets/mods/simplify" + }, + { + "type": "modZip", + "urlZip": "https://github.com/CCDirectLink/CCLoader/archive/refs/tags/v2.22.1/v2.12.1.zip", + "source": "CCLoader-2.22.1-v2.12.1/assets/mods/ccloader-version-display" + }, + { + "type": "modZip", + "urlZip": "https://github.com/Swanderrr/CCleasitstitle/raw/faba8504ef285f73cb3774e2118987ba74329c87/archive/titlescreenlea.zip", + "source": "" + }, + { + "type": "modZip", + "urlZip": "https://github.com/L-Sherry/Bob-Rank/releases/download/v1.0.0/Bob-Rank-v1.0.0.zip", + "source": "Bob-Rank-v1.0.0" + }, + { + "type": "ccmod", + "url": "https://github.com/CCDirectLink/map-watch/releases/download/v1.0.1/map-watch.ccmod" + }, + { + "type": "modZip", + "urlZip": "https://github.com/CCDirectLink/map-watch/archive/v1.0.1.zip", + "source": "map-watch-1.0.1" + }, + { + "type": "ccmod", + "url": "https://github.com/dmitmel/cc-world-map-overhaul/releases/download/v1.1.2/world-map-overhaul_v1.1.2.ccmod" + }, + { + "type": "modZip", + "urlZip": "https://github.com/dmitmel/cc-world-map-overhaul/releases/download/v1.1.2/world-map-overhaul_v1.1.2.zip", + "source": "world-map-overhaul" + }, + { + "type": "modZip", + "urlZip": "https://github.com/dmitmel/crosscode-readable-saves/releases/download/v1.0.0/crosscode-readable-saves_v1.0.0.zip", + "source": "crosscode-readable-saves" + }, + { + "type": "modZip", + "urlZip": "https://github.com/ubergeek77/CCExtraGamepadOptions/archive/1.0.2.zip", + "source": "CCExtraGamepadOptions-1.0.2" + }, + { + "type": "ccmod", + "url": "https://github.com/Naxane/CCInventorySearch/releases/download/v1.0.0/CCInventorySearch-v1.0.0.ccmod" + }, + { + "type": "modZip", + "urlZip": "https://github.com/Naxane/CCInventorySearch/archive/refs/tags/v1.0.0.zip", + "source": "CCInventorySearch-1.0.0/src" + }, + { + "type": "ccmod", + "url": "https://github.com/EL20202/cc-capped-stats/releases/download/v1.0.0/cc-capped-stats.ccmod" + }, + { + "type": "modZip", + "urlZip": "https://github.com/EL20202/cc-capped-stats/archive/refs/tags/v1.0.0.zip", + "source": "cc-capped-stats-1.0.0" + }, + { + "type": "ccmod", + "url": "https://github.com/WatDuhHekBro/cc-uwuifier/releases/download/v1.0.2/uwuifier.ccmod" + }, + { + "type": "modZip", + "urlZip": "https://github.com/dmitmel/crosscode-tweak-pack/releases/download/v1.1.0/crosscode-tweak-pack_v1.1.0.zip", + "source": "crosscode-tweak-pack" + }, + { + "type": "modZip", + "urlZip": "https://github.com/Inevitabilis/CC-Junolea/archive/refs/tags/v1.0.0.zip", + "source": "CC-Junolea-1.0.0" + }, + { + "type": "ccmod", + "url": "https://github.com/Paradragon/cc-extra-dialogue/releases/download/v1.0.0/cc-extra-dialogue.ccmod" + }, + { + "type": "modZip", + "urlZip": "https://github.com/Pyrocorvid/CCNineRooms/archive/refs/tags/v1.0.1.zip", + "source": "CCNineRooms-1.0.1/nine-rooms" + }, + { + "type": "modZip", + "urlZip": "https://github.com/Pyrocorvid/CCNineRooms/archive/refs/tags/v1.0.1.zip", + "source": "CCNineRooms-1.0.1/past-booster" + }, + { + "type": "modZip", + "urlZip": "https://github.com/CookieSalesman/CrossCode-HADOUKEN-v1.0/archive/refs/tags/v1.0.0.zip", + "source": "CrossCode-HADOUKEN-v1.0-1.0.0" + }, + { + "type": "ccmod", + "url": "https://github.com/Symphiel/CursedCode/releases/download/0.1.1/cursedcode.ccmod" + }, + { + "type": "modZip", + "urlZip": "https://github.com/lexisother/CCPostDLC/archive/refs/tags/v1.0.0.zip", + "source": "CCPostDLC-1.0.0" + }, + { + "type": "ccmod", + "url": "https://github.com/lexisother/CCPostDLC/releases/download/v1.0.0/CCPostDLC.ccmod" + }, + { + "type": "modZip", + "urlZip": "https://github.com/lexisother/CCOldMedia/archive/refs/tags/v1.0.0.zip", + "source": "CCOldMedia-1.0.0" + }, + { + "type": "ccmod", + "url": "https://github.com/lexisother/CCOldMedia/releases/download/v1.0.0/CCOldMedia.ccmod" + }, + { + "type": "modZip", + "urlZip": "https://github.com/EL20202/crosscode-font-utils/archive/refs/tags/v1.1.0.zip", + "source": "crosscode-font-utils-1.1.0" + }, + { + "type": "ccmod", + "url": "https://github.com/EL20202/crosscode-font-utils/releases/download/v1.1.0/font-utils.ccmod" + }, + { + "type": "ccmod", + "url": "https://github.com/EL20202/el-crosscode-tweaks/releases/download/v0.5.8/els-tweaks.ccmod" + }, { "type": "modZip", "urlZip": "https://github.com/lexisother/cc-quickinfo-exp/archive/refs/tags/v1.0.1.zip", @@ -340,29 +340,39 @@ "url": "https://github.com/lexisother/logic-steps/releases/download/v1.0.1/logic-steps.ccmod" }, { - "type": "modZip", - "urlZip": "https://github.com/krypciak/cc-vim/archive/refs/tags/v1.5.4.zip", - "source": "cc-vim-1.5.4" + "type": "modZip", + "urlZip": "https://github.com/krypciak/cc-vim/archive/refs/tags/v1.5.4.zip", + "source": "cc-vim-1.5.4" }, { "type": "ccmod", "url": "https://github.com/krypciak/cc-vim/releases/download/v1.5.4/cc-vim-1.5.4.ccmod" }, { - "type": "modZip", - "urlZip": "https://github.com/krypciak/cc-diorbital-menu/archive/refs/tags/v1.0.3.zip", - "source": "cc-diorbital-menu-1.0.3" + "type": "modZip", + "urlZip": "https://github.com/krypciak/cc-diorbital-menu/archive/refs/tags/v1.0.3.zip", + "source": "cc-diorbital-menu-1.0.3" }, { "type": "ccmod", "url": "https://github.com/krypciak/cc-diorbital-menu/releases/download/v1.0.3/cc-diorbital-menu-1.0.3.ccmod" - }, { + }, + { "type": "modZip", - "urlZip": "https://github.com/krypciak/cc-fancy-crash/archive/refs/tags/v1.0.7.zip", - "source": "cc-fancy-crash-1.0.7" + "urlZip": "https://github.com/krypciak/cc-fancy-crash/archive/refs/tags/v1.0.7.zip", + "source": "cc-fancy-crash-1.0.7" }, { "type": "ccmod", "url": "https://github.com/krypciak/cc-fancy-crash/releases/download/v1.0.7/cc-fancy-crash-1.0.7.ccmod" + }, + { + "type": "modZip", + "urlZip": "https://github.com/CCDirectLink/input-api/archive/refs/tags/v1.0.1.zip", + "source": "input-api-1.0.1" + }, + { + "type": "ccmod", + "url": "https://github.com/CCDirectLink/input-api/releases/download/v1.0.1/input-api.ccmod" } ] diff --git a/mods.json b/mods.json index fb02d89e..190177ca 100644 --- a/mods.json +++ b/mods.json @@ -505,6 +505,22 @@ }, "version": "0.1.1" }, + "input-api": { + "name": "input-api", + "description": "Allows mods to add rebindable key bindings", + "license": "MIT", + "page": [ + { + "name": "GitHub", + "url": "https://github.com/dmitmel/input-api" + } + ], + "archive_link": "https://github.com/CCDirectLink/input-api/releases/download/v1.0.1/input-api.ccmod", + "hash": { + "sha256": "0b23e53d95963ef55c689090bac359f0815f5337dc671466a34adb852558c7c9" + }, + "version": "1.0.1" + }, "inventory-search": { "name": "CCInventorySearch", "description": "A mod. (Description not available; contact mod author and have them add a description to their package.json file)", diff --git a/npDatabase.json b/npDatabase.json index 4db00fac..082567cf 100644 --- a/npDatabase.json +++ b/npDatabase.json @@ -1194,6 +1194,34 @@ } ] }, + "input-api": { + "metadata": { + "name": "input-api", + "version": "1.0.1", + "description": "Allows mods to add rebindable key bindings", + "license": "MIT", + "homepage": "https://github.com/dmitmel/input-api", + "module": true, + "postload": "postload.js" + }, + "installation": [ + { + "type": "modZip", + "url": "https://github.com/CCDirectLink/input-api/archive/refs/tags/v1.0.1.zip", + "source": "input-api-1.0.1", + "hash": { + "sha256": "6201ff543341135acb69ce294ffb50ad4792aa5352897e59f1855afff2b7f2c1" + } + }, + { + "type": "ccmod", + "url": "https://github.com/CCDirectLink/input-api/releases/download/v1.0.1/input-api.ccmod", + "hash": { + "sha256": "0b23e53d95963ef55c689090bac359f0815f5337dc671466a34adb852558c7c9" + } + } + ] + }, "inventory-search": { "metadata": { "name": "inventory-search", From f3e1d9b100fa0330efe263fa43eab0fa0fa97bcd Mon Sep 17 00:00:00 2001 From: krypek Date: Wed, 7 Feb 2024 18:20:40 +0100 Subject: [PATCH 005/196] Fix npDatabase.json ordering --- build/src/db.ts | 2 +- mods.json | 508 ++++++------- npDatabase.json | 1916 +++++++++++++++++++++++------------------------ 3 files changed, 1213 insertions(+), 1213 deletions(-) diff --git a/build/src/db.ts b/build/src/db.ts index cf7e987a..2914c918 100644 --- a/build/src/db.ts +++ b/build/src/db.ts @@ -126,7 +126,7 @@ function getInstallation(installations: InstallMethod[]): { url: string; hash: { } async function buildEntry(result: PackageDB, meta: PkgMetadata | undefined, ccmod: PkgCCMod | undefined, inputs: InputLocation[]): Promise { - result[ccmod?.id || meta!.name] = { + result[getStringFromLocalisedString(ccmod?.title || meta!.name)] = { metadata: meta, metadataCCMod: ccmod, installation: await generateInstallations(inputs), diff --git a/mods.json b/mods.json index 190177ca..e50cf8bb 100644 --- a/mods.json +++ b/mods.json @@ -20,6 +20,21 @@ }, "version": "1.0.0" }, + "CC-OldMedia": { + "name": "CC-OldMedia", + "description": "A mod that brings back some old title screen assets.", + "page": [ + { + "name": "GitHub", + "url": "https://github.com/lexisother/CCOldMedia" + } + ], + "archive_link": "https://github.com/lexisother/CCOldMedia/releases/download/v1.0.0/CCOldMedia.ccmod", + "hash": { + "sha256": "0791db068d46cf394fc3a512cf3a5bca7744a1550d1e72d07adb39bcea097703" + }, + "version": "1.0.0" + }, "CCJoystickExt": { "name": "CCJoystickExt", "description": "Adds gamepad bindings on L3 and R3 to easily swap elements", @@ -40,6 +55,21 @@ }, "version": "1.1.3" }, + "CCPostDLC": { + "name": "CCPostDLC", + "description": "Adjusts the game to continue after completing the DLC.", + "page": [ + { + "name": "GitHub", + "url": "https://github.com/lexisother/CCPostDLC" + } + ], + "archive_link": "https://github.com/lexisother/CCPostDLC/releases/download/v1.0.0/CCPostDLC.ccmod", + "hash": { + "sha256": "eec76c279f1683b415e4f06186d6d4d8ae6e9d247cec845bce1e6a7e6d69cea0" + }, + "version": "1.0.0" + }, "CCPresetRevival": { "name": "Preset revival", "description": "This brings back the preset menu, which allows you to start the game at a specific point.", @@ -70,6 +100,36 @@ }, "version": "0.0.8" }, + "CCTimer": { + "name": "CCTimer", + "description": "A speedrun timer for CrossCode.", + "page": [ + { + "name": "GitHub", + "url": "https://github.com/CCDirectLink/CCTimer" + } + ], + "archive_link": "https://github.com/CCDirectLink/CCTimer/releases/download/v3.0.0/CCTimer.zip", + "hash": { + "sha256": "7ba4327609e3ff0b29d2921af7d9255fbeae9dfe3d4fc035f93e99312f7ff2bb" + }, + "version": "3.0.0" + }, + "Capped Stats": { + "name": "Capped Stats", + "description": "Adds a visual stat cap - see your stats for what they really aren't!", + "page": [ + { + "name": "GitHub", + "url": "https://github.com/EL20202/cc-uncapped-stats" + } + ], + "archive_link": "https://github.com/EL20202/cc-capped-stats/releases/download/v1.0.0/cc-capped-stats.ccmod", + "hash": { + "sha256": "34c11a440d7af0857728619e17c7143102cec55a1e16b3dd5c3c16935b8965c2" + }, + "version": "1.0.0" + }, "Character Swap": { "name": "Character Swap", "description": "Play as a variety of characters previously unavailable.", @@ -115,6 +175,21 @@ }, "version": "1.0.0" }, + "CrossCode Extra Dialogue": { + "name": "CrossCode Extra Dialogue", + "description": "Adds more lore-friendly dialogue for party members.", + "page": [ + { + "name": "GitHub", + "url": "https://github.com/Paradragon/cc-extra-dialogue" + } + ], + "archive_link": "https://github.com/Paradragon/cc-extra-dialogue/releases/download/v1.0.0/cc-extra-dialogue.ccmod", + "hash": { + "sha256": "8ab162b803f9a663f5677b058fafcf07218145f38f7a90cbdcf05845b0a5e329" + }, + "version": "1.0.0" + }, "Discord": { "name": "Rich Presence for Discord", "description": "Show off your CrossCode skills in Discord", @@ -130,6 +205,16 @@ }, "version": "1.0.0" }, + "EL's Tweaks": { + "name": "EL's Tweaks", + "description": "A coremod full of useful functionality for modders, as well as many tweaks for players.", + "page": [], + "archive_link": "https://github.com/EL20202/el-crosscode-tweaks/releases/download/v0.5.8/els-tweaks.ccmod", + "hash": { + "sha256": "14a6fa05766def657bed910c7c76b67685ac166771dc9ad82e6d6628f782db77" + }, + "version": "0.5.8" + }, "Element Boss": { "name": "Element Boss", "description": "Adds a new boss battle to the game.", @@ -155,6 +240,47 @@ }, "version": "1.0.2" }, + "Fancy crash": { + "name": "Fancy crash", + "description": "Better crash message", + "license": "GPLv3", + "page": [ + { + "name": "GitHub", + "url": "https://github.com/krypciak/cc-fancy-crash" + } + ], + "archive_link": "https://github.com/krypciak/cc-fancy-crash/releases/download/v1.0.7/cc-fancy-crash-1.0.7.ccmod", + "hash": { + "sha256": "edc33bc5c294a9573a49eea1c4080a458c70a9e9e8e1a6f960e3d798ce935503" + }, + "version": "1.0.7" + }, + "Font Utilities": { + "name": "Font Utilities", + "description": "Adds various new font colors!", + "page": [], + "archive_link": "https://github.com/EL20202/crosscode-font-utils/releases/download/v1.1.0/font-utils.ccmod", + "hash": { + "sha256": "fc9aa9aa56336f28815abc06b26dbde42c34885190d0221c6f6c6d3f5b498148" + }, + "version": "1.1.0" + }, + "French": { + "name": "French", + "description": "CrossCode in french !", + "page": [ + { + "name": "GitHub", + "url": "https://github.com/L-Sherry/French-CC" + } + ], + "archive_link": "https://github.com/L-Sherry/French-CC/archive/v1.4.0.zip", + "hash": { + "sha256": "30a9febd011fb056426a1d0e8d9f7f50b8dd7310b80a21f1c6e2d3a6c2a143ff" + }, + "version": "1.4.0" + }, "Hadouken": { "name": "Hadouken", "description": "A mod. (Description not available; contact mod author and have them add a description to their package.json file)", @@ -165,6 +291,22 @@ }, "version": "1.0.0" }, + "Junolea Skin": { + "name": "Junolea Skin", + "description": "Adds a skin which makes Lea look like Juno", + "license": "CC-BY-4.0", + "page": [ + { + "name": "GitHub", + "url": "https://github.com/Inevitabilis/CC-Junolea" + } + ], + "archive_link": "https://github.com/Inevitabilis/CC-Junolea/archive/refs/tags/v1.0.0.zip", + "hash": { + "sha256": "16b9dbbfa21c9fa18d8ed3048c842521039f0713c6cfc2a17f2d2e89f79bea2f" + }, + "version": "1.0.0" + }, "Kit Player": { "name": "Kit Player", "description": "Swaps Lea's sprites to play as Kit. A sphereomancer fox.", @@ -205,180 +347,154 @@ }, "version": "1.0.1" }, - "New game++": { - "name": "New game++", - "description": "A small collection of addons to CrossCode's NG+.", + "Localize Me": { + "name": "Localize Me", + "description": "Add support for more locales, languages and translations", + "license": "MIT", "page": [ { "name": "GitHub", - "url": "https://github.com/CCDirectLink/CCNewGamePP" + "url": "https://github.com/L-Sherry/Localize-Me" } ], - "archive_link": "https://github.com/CCDirectLink/CCNewGamePP/releases/download/v1.3.0/CCNewGamePP.ccmod", + "archive_link": "https://github.com/L-Sherry/Localize-me/archive/v0.6.0.zip", "hash": { - "sha256": "a9ccbc44306b43f8b3d2adf1f121e39b14057227961d8881bf831e63aca3a685" + "sha256": "98da8afe115cb453331ba96a70711bf22453703a921d1578b239aff14084702b" }, - "version": "1.3.0" + "version": "0.6.0" }, - "Palicat": { - "name": "Palicat", - "description": "A mod that implement the palico from monster hunter world into the game.", + "Logic Steps": { + "name": "Logic Steps", + "description": "Adds a couple custom patch steps that allow for control of logic flow.", "page": [ { "name": "GitHub", - "url": "https://github.com/rioreur/palicat" + "url": "https://github.com/lexisother/logic-steps" } ], - "archive_link": "https://github.com/rioreur/palicat/archive/1.0.4.zip", + "archive_link": "https://github.com/lexisother/logic-steps/releases/download/v1.0.1/logic-steps.ccmod", "hash": { - "sha256": "75d84d8a190bece945d20f2fda3518c06cdbdd57f209b91471f9815feffb4b70" + "sha256": "79ac505e9f8f5f948ecb1f9e33b8da330a352f95eee5d381dd697bd3cd93f730" }, - "version": "1.0.4" + "version": "1.0.1" }, - "Qine": { - "name": "Qine", - "description": "Adds the character Qine as a party member and PvP duel.", + "New game++": { + "name": "New game++", + "description": "A small collection of addons to CrossCode's NG+.", "page": [ { "name": "GitHub", - "url": "https://github.com/sgrunt/qine" + "url": "https://github.com/CCDirectLink/CCNewGamePP" } ], - "archive_link": "https://github.com/sgrunt/qine/archive/0.2.7.zip", + "archive_link": "https://github.com/CCDirectLink/CCNewGamePP/releases/download/v1.3.0/CCNewGamePP.ccmod", "hash": { - "sha256": "73bec599fdb63f6b0504d1ea6b549904daf97f00c8667f6bd6378c91560d8c29" + "sha256": "a9ccbc44306b43f8b3d2adf1f121e39b14057227961d8881bf831e63aca3a685" }, - "version": "0.2.7" + "version": "1.3.0" }, - "Restart Button": { - "name": "Restart Button", - "description": "Adds a button to restart the game without memory leaks", - "license": "MIT", + "Nine Rooms": { + "name": "Nine Rooms", + "description": "A little piece of lost history.", "page": [ { "name": "GitHub", - "url": "https://github.com/bluecheetah001/CCRestartButton" + "url": "https://github.com/Pyrocorvid/CCNineRooms" } ], - "archive_link": "https://github.com/CCDirectLink/CCRestartButton/archive/refs/tags/v1.1.3.zip", - "hash": { - "sha256": "6a31aba45a5df4a498901721fa14ed673677d1010707cd9146cee7c41804ad5a" - }, - "version": "1.1.3" - }, - "Simplify": { - "name": "Simplify", - "description": "A mod. (Description not available; contact mod author and have them add a description to their package.json file)", - "page": [], - "archive_link": "https://github.com/CCDirectLink/CCLoader/archive/refs/tags/v2.22.1/v2.12.1.zip", - "hash": { - "sha256": "7ab3d850b5368dda4593318fd3e957e0bc46128e25844eeda97ca0eec16b343a" - }, - "version": "2.12.1" - }, - "blades": { - "name": "blades", - "description": "Asset which replaces balls with blades, now for all classes!", - "page": [], - "archive_link": "https://github.com/CCDirectLink/Blades/archive/1.5.0.zip", + "archive_link": "https://github.com/Pyrocorvid/CCNineRooms/archive/refs/tags/v1.0.1.zip", "hash": { - "sha256": "aa1fe7bdc217a8c27d91496b48f2642cea243ed158dafe32251834536666a25a" + "sha256": "2a62c02cc322ef7a79c49352a5ab8b4098dfa2f10b2f8cb6b989ab2f6444822d" }, - "version": "1.5.0" + "version": "0.1.0" }, - "cc-capped-stats": { - "name": "Capped Stats", - "description": "Adds a visual stat cap - see your stats for what they really aren't!", + "Palicat": { + "name": "Palicat", + "description": "A mod that implement the palico from monster hunter world into the game.", "page": [ { "name": "GitHub", - "url": "https://github.com/EL20202/cc-uncapped-stats" + "url": "https://github.com/rioreur/palicat" } ], - "archive_link": "https://github.com/EL20202/cc-capped-stats/releases/download/v1.0.0/cc-capped-stats.ccmod", + "archive_link": "https://github.com/rioreur/palicat/archive/1.0.4.zip", "hash": { - "sha256": "34c11a440d7af0857728619e17c7143102cec55a1e16b3dd5c3c16935b8965c2" + "sha256": "75d84d8a190bece945d20f2fda3518c06cdbdd57f209b91471f9815feffb4b70" }, - "version": "1.0.0" + "version": "1.0.4" }, - "cc-diorbital-menu": { - "name": "cc-diorbital-menu", - "description": "Extends the quick menu", - "license": "GPLv3", + "Past Booster": { + "name": "Past Booster", + "description": "Makes the Nine Rooms mod a little more... post-gamey.", "page": [ { "name": "GitHub", - "url": "https://github.com/krypciak/cc-diorbital-menu" + "url": "https://github.com/Pyrocorvid/CCNineRooms" } ], - "archive_link": "https://github.com/krypciak/cc-diorbital-menu/releases/download/v1.0.3/cc-diorbital-menu-1.0.3.ccmod", + "archive_link": "https://github.com/Pyrocorvid/CCNineRooms/archive/refs/tags/v1.0.1.zip", "hash": { - "sha256": "5c5246f43f6ae7a9f3c5eb26c4b40c5a3a8cab224740f881ade7392c897d712f" + "sha256": "2a62c02cc322ef7a79c49352a5ab8b4098dfa2f10b2f8cb6b989ab2f6444822d" }, - "version": "1.0.3" + "version": "0.1.0" }, - "cc-extra-dialogue": { - "name": "CrossCode Extra Dialogue", - "description": "Adds more lore-friendly dialogue for party members.", + "Qine": { + "name": "Qine", + "description": "Adds the character Qine as a party member and PvP duel.", "page": [ { "name": "GitHub", - "url": "https://github.com/Paradragon/cc-extra-dialogue" + "url": "https://github.com/sgrunt/qine" } ], - "archive_link": "https://github.com/Paradragon/cc-extra-dialogue/releases/download/v1.0.0/cc-extra-dialogue.ccmod", + "archive_link": "https://github.com/sgrunt/qine/archive/0.2.7.zip", "hash": { - "sha256": "8ab162b803f9a663f5677b058fafcf07218145f38f7a90cbdcf05845b0a5e329" + "sha256": "73bec599fdb63f6b0504d1ea6b549904daf97f00c8667f6bd6378c91560d8c29" }, - "version": "1.0.0" + "version": "0.2.7" }, - "cc-fancy-crash": { - "name": "Fancy crash", - "description": "Better crash message", - "license": "GPLv3", + "QuickInfo EXP Viewer": { + "name": "QuickInfo EXP Viewer", + "description": "Shows the EXP the enemy will give you in the quickinfo popup.", "page": [ { "name": "GitHub", - "url": "https://github.com/krypciak/cc-fancy-crash" + "url": "https://github.com/lexisother/cc-quickinfo-exp" } ], - "archive_link": "https://github.com/krypciak/cc-fancy-crash/releases/download/v1.0.7/cc-fancy-crash-1.0.7.ccmod", + "archive_link": "https://github.com/lexisother/cc-quickinfo-exp/releases/download/v1.0.1/cc-quickinfo-exp.ccmod", "hash": { - "sha256": "edc33bc5c294a9573a49eea1c4080a458c70a9e9e8e1a6f960e3d798ce935503" + "sha256": "fcdeeba04a3c3e210353a23031c4396dfa33876f770347e550103a4308e3685a" }, - "version": "1.0.7" + "version": "1.0.0" }, - "cc-oldmedia": { - "name": "CC-OldMedia", - "description": "A mod that brings back some old title screen assets.", + "Restart Button": { + "name": "Restart Button", + "description": "Adds a button to restart the game without memory leaks", + "license": "MIT", "page": [ { "name": "GitHub", - "url": "https://github.com/lexisother/CCOldMedia" + "url": "https://github.com/bluecheetah001/CCRestartButton" } ], - "archive_link": "https://github.com/lexisother/CCOldMedia/releases/download/v1.0.0/CCOldMedia.ccmod", + "archive_link": "https://github.com/CCDirectLink/CCRestartButton/archive/refs/tags/v1.1.3.zip", "hash": { - "sha256": "0791db068d46cf394fc3a512cf3a5bca7744a1550d1e72d07adb39bcea097703" + "sha256": "6a31aba45a5df4a498901721fa14ed673677d1010707cd9146cee7c41804ad5a" }, - "version": "1.0.0" + "version": "1.1.3" }, - "cc-quickinfo-exp": { - "name": "QuickInfo EXP Viewer", - "description": "Shows the EXP the enemy will give you in the quickinfo popup.", - "page": [ - { - "name": "GitHub", - "url": "https://github.com/lexisother/cc-quickinfo-exp" - } - ], - "archive_link": "https://github.com/lexisother/cc-quickinfo-exp/releases/download/v1.0.1/cc-quickinfo-exp.ccmod", + "Simplify": { + "name": "Simplify", + "description": "A mod. (Description not available; contact mod author and have them add a description to their package.json file)", + "page": [], + "archive_link": "https://github.com/CCDirectLink/CCLoader/archive/refs/tags/v2.22.1/v2.12.1.zip", "hash": { - "sha256": "fcdeeba04a3c3e210353a23031c4396dfa33876f770347e550103a4308e3685a" + "sha256": "7ab3d850b5368dda4593318fd3e957e0bc46128e25844eeda97ca0eec16b343a" }, - "version": "1.0.0" + "version": "2.12.1" }, - "cc-uncapped-stats": { + "Uncapped Stats": { "name": "Uncapped Stats", "description": "Removes! the visual stat caps - see your stats for what they really are!", "page": [ @@ -393,7 +509,7 @@ }, "version": "1.1.1" }, - "cc-vim": { + "Vim Command Mode": { "name": "Vim Command Mode", "description": "Adds a popup command prompt", "license": "GNU GPLv3", @@ -409,36 +525,46 @@ }, "version": "1.5.4" }, - "ccpostdlc": { - "name": "CCPostDLC", - "description": "Adjusts the game to continue after completing the DLC.", + "World map overhaul": { + "name": "World map overhaul", + "description": "A better world map", "page": [ { "name": "GitHub", - "url": "https://github.com/lexisother/CCPostDLC" + "url": "https://github.com/dmitmel/cc-world-map-overhaul" } ], - "archive_link": "https://github.com/lexisother/CCPostDLC/releases/download/v1.0.0/CCPostDLC.ccmod", + "archive_link": "https://github.com/dmitmel/cc-world-map-overhaul/releases/download/v1.1.2/world-map-overhaul_v1.1.2.ccmod", "hash": { - "sha256": "eec76c279f1683b415e4f06186d6d4d8ae6e9d247cec845bce1e6a7e6d69cea0" + "sha256": "78aa2526039c77e69252ccb3f3ff0e0ba6d4ba6c18a10a900002e6981d024a05" }, - "version": "1.0.0" + "version": "1.1.2" }, - "crosscode-tweak-pack": { - "name": "dmitmel's tweak pack", - "description": "Micro-mods by dmitmel in a single 999-in-1 package, ranging from QoL tweaks to cheats.", - "license": "CC0-1.0", + "blades": { + "name": "blades", + "description": "Asset which replaces balls with blades, now for all classes!", + "page": [], + "archive_link": "https://github.com/CCDirectLink/Blades/archive/1.5.0.zip", + "hash": { + "sha256": "aa1fe7bdc217a8c27d91496b48f2642cea243ed158dafe32251834536666a25a" + }, + "version": "1.5.0" + }, + "cc-diorbital-menu": { + "name": "cc-diorbital-menu", + "description": "Extends the quick menu", + "license": "GPLv3", "page": [ { "name": "GitHub", - "url": "https://github.com/dmitmel/crosscode-tweak-pack" + "url": "https://github.com/krypciak/cc-diorbital-menu" } ], - "archive_link": "https://github.com/dmitmel/crosscode-tweak-pack/releases/download/v1.1.0/crosscode-tweak-pack_v1.1.0.zip", + "archive_link": "https://github.com/krypciak/cc-diorbital-menu/releases/download/v1.0.3/cc-diorbital-menu-1.0.3.ccmod", "hash": { - "sha256": "0cc60fb1aeccdb7f664430feb222df8cbf0571a5c5359dcb689f1b551a983713" + "sha256": "5c5246f43f6ae7a9f3c5eb26c4b40c5a3a8cab224740f881ade7392c897d712f" }, - "version": "1.1.0" + "version": "1.0.3" }, "cursedcode": { "name": "cursedcode", @@ -450,15 +576,21 @@ }, "version": "0.1.1" }, - "el-tweaks": { - "name": "EL's Tweaks", - "description": "A coremod full of useful functionality for modders, as well as many tweaks for players.", - "page": [], - "archive_link": "https://github.com/EL20202/el-crosscode-tweaks/releases/download/v0.5.8/els-tweaks.ccmod", + "dmitmel's tweak pack": { + "name": "dmitmel's tweak pack", + "description": "Micro-mods by dmitmel in a single 999-in-1 package, ranging from QoL tweaks to cheats.", + "license": "CC0-1.0", + "page": [ + { + "name": "GitHub", + "url": "https://github.com/dmitmel/crosscode-tweak-pack" + } + ], + "archive_link": "https://github.com/dmitmel/crosscode-tweak-pack/releases/download/v1.1.0/crosscode-tweak-pack_v1.1.0.zip", "hash": { - "sha256": "14a6fa05766def657bed910c7c76b67685ac166771dc9ad82e6d6628f782db77" + "sha256": "0cc60fb1aeccdb7f664430feb222df8cbf0571a5c5359dcb689f1b551a983713" }, - "version": "0.5.8" + "version": "1.1.0" }, "extendable-severed-heads": { "name": "extendable-severed-heads", @@ -470,31 +602,6 @@ }, "version": "1.0.0" }, - "font-utils": { - "name": "Font Utilities", - "description": "Adds various new font colors!", - "page": [], - "archive_link": "https://github.com/EL20202/crosscode-font-utils/releases/download/v1.1.0/font-utils.ccmod", - "hash": { - "sha256": "fc9aa9aa56336f28815abc06b26dbde42c34885190d0221c6f6c6d3f5b498148" - }, - "version": "1.1.0" - }, - "french": { - "name": "French", - "description": "CrossCode in french !", - "page": [ - { - "name": "GitHub", - "url": "https://github.com/L-Sherry/French-CC" - } - ], - "archive_link": "https://github.com/L-Sherry/French-CC/archive/v1.4.0.zip", - "hash": { - "sha256": "30a9febd011fb056426a1d0e8d9f7f50b8dd7310b80a21f1c6e2d3a6c2a143ff" - }, - "version": "1.4.0" - }, "hardcoded-config-injector": { "name": "hardcoded-config-injector", "description": "A mod. (Description not available; contact mod author and have them add a description to their package.json file)", @@ -562,53 +669,6 @@ }, "version": "0.2.0" }, - "junolea": { - "name": "Junolea Skin", - "description": "Adds a skin which makes Lea look like Juno", - "license": "CC-BY-4.0", - "page": [ - { - "name": "GitHub", - "url": "https://github.com/Inevitabilis/CC-Junolea" - } - ], - "archive_link": "https://github.com/Inevitabilis/CC-Junolea/archive/refs/tags/v1.0.0.zip", - "hash": { - "sha256": "16b9dbbfa21c9fa18d8ed3048c842521039f0713c6cfc2a17f2d2e89f79bea2f" - }, - "version": "1.0.0" - }, - "localize-me": { - "name": "Localize Me", - "description": "Add support for more locales, languages and translations", - "license": "MIT", - "page": [ - { - "name": "GitHub", - "url": "https://github.com/L-Sherry/Localize-Me" - } - ], - "archive_link": "https://github.com/L-Sherry/Localize-me/archive/v0.6.0.zip", - "hash": { - "sha256": "98da8afe115cb453331ba96a70711bf22453703a921d1578b239aff14084702b" - }, - "version": "0.6.0" - }, - "logic-steps": { - "name": "Logic Steps", - "description": "Adds a couple custom patch steps that allow for control of logic flow.", - "page": [ - { - "name": "GitHub", - "url": "https://github.com/lexisother/logic-steps" - } - ], - "archive_link": "https://github.com/lexisother/logic-steps/releases/download/v1.0.1/logic-steps.ccmod", - "hash": { - "sha256": "79ac505e9f8f5f948ecb1f9e33b8da330a352f95eee5d381dd697bd3cd93f730" - }, - "version": "1.0.1" - }, "map-watch": { "name": "Map Watcher", "description": "A mod that automatically loads a map when changes are detected", @@ -659,36 +719,6 @@ }, "version": "1.0.1" }, - "nine-rooms": { - "name": "Nine Rooms", - "description": "A little piece of lost history.", - "page": [ - { - "name": "GitHub", - "url": "https://github.com/Pyrocorvid/CCNineRooms" - } - ], - "archive_link": "https://github.com/Pyrocorvid/CCNineRooms/archive/refs/tags/v1.0.1.zip", - "hash": { - "sha256": "2a62c02cc322ef7a79c49352a5ab8b4098dfa2f10b2f8cb6b989ab2f6444822d" - }, - "version": "0.1.0" - }, - "past-booster": { - "name": "Past Booster", - "description": "Makes the Nine Rooms mod a little more... post-gamey.", - "page": [ - { - "name": "GitHub", - "url": "https://github.com/Pyrocorvid/CCNineRooms" - } - ], - "archive_link": "https://github.com/Pyrocorvid/CCNineRooms/archive/refs/tags/v1.0.1.zip", - "hash": { - "sha256": "2a62c02cc322ef7a79c49352a5ab8b4098dfa2f10b2f8cb6b989ab2f6444822d" - }, - "version": "0.1.0" - }, "readable-saves": { "name": "Readable saves", "description": "Unencrypts the save file and adds an additional save format suitable for editing by hand", @@ -721,21 +751,6 @@ }, "version": "0.1.1" }, - "timer": { - "name": "CCTimer", - "description": "A speedrun timer for CrossCode.", - "page": [ - { - "name": "GitHub", - "url": "https://github.com/CCDirectLink/CCTimer" - } - ], - "archive_link": "https://github.com/CCDirectLink/CCTimer/releases/download/v3.0.0/CCTimer.zip", - "hash": { - "sha256": "7ba4327609e3ff0b29d2921af7d9255fbeae9dfe3d4fc035f93e99312f7ff2bb" - }, - "version": "3.0.0" - }, "timewalker": { "name": "timewalker", "description": "Lets you control time.", @@ -766,21 +781,6 @@ "sha256": "295b8019d74e0a9bf9a8ff9aa4b48d25694028bc727bc3a830daeb23b4efef3e" }, "version": "1.0.2" - }, - "world-map-overhaul": { - "name": "World map overhaul", - "description": "A better world map", - "page": [ - { - "name": "GitHub", - "url": "https://github.com/dmitmel/cc-world-map-overhaul" - } - ], - "archive_link": "https://github.com/dmitmel/cc-world-map-overhaul/releases/download/v1.1.2/world-map-overhaul_v1.1.2.ccmod", - "hash": { - "sha256": "78aa2526039c77e69252ccb3f3ff0e0ba6d4ba6c18a10a900002e6981d024a05" - }, - "version": "1.1.2" } } } \ No newline at end of file diff --git a/npDatabase.json b/npDatabase.json index 082567cf..b3e5fa74 100644 --- a/npDatabase.json +++ b/npDatabase.json @@ -48,6 +48,42 @@ } ] }, + "CC-OldMedia": { + "metadata": { + "name": "CCOldMedia", + "version": "1.0.0", + "description": "A mod that brings back some old title screen assets.", + "homepage": "https://github.com/lexisother/CCOldMedia", + "module": true, + "prestart": "src/prestart.js", + "ccmodDependencies": {} + }, + "metadataCCMod": { + "id": "cc-oldmedia", + "version": "1.0.0", + "title": "CC-OldMedia", + "description": "A mod that brings back some old title screen assets.", + "homepage": "https://github.com/lexisother/CCOldMedia", + "prestart": "src/prestart.js" + }, + "installation": [ + { + "type": "modZip", + "url": "https://github.com/lexisother/CCOldMedia/archive/refs/tags/v1.0.0.zip", + "source": "CCOldMedia-1.0.0", + "hash": { + "sha256": "491263c26aefa8f366c135e2672c0214bb593059d44ddf22bebfc3a655f0b73e" + } + }, + { + "type": "ccmod", + "url": "https://github.com/lexisother/CCOldMedia/releases/download/v1.0.0/CCOldMedia.ccmod", + "hash": { + "sha256": "0791db068d46cf394fc3a512cf3a5bca7744a1550d1e72d07adb39bcea097703" + } + } + ] + }, "CCJoystickExt": { "metadata": { "name": "CCJoystickExt", @@ -89,6 +125,47 @@ } ] }, + "CCPostDLC": { + "metadata": { + "name": "CCPostDLC", + "version": "1.0.0", + "description": "Adjusts the game to continue after completing the DLC.", + "homepage": "https://github.com/lexisother/CCPostDLC", + "prestart": "src/prestart.js", + "ccmodDependencies": { + "crosscode": ">=1.4.0", + "post-game": ">=1.4.0" + } + }, + "metadataCCMod": { + "id": "ccpostdlc", + "version": "1.0.0", + "title": "CCPostDLC", + "description": "Adjusts the game to continue after completing the DLC.", + "homepage": "https://github.com/lexisother/CCPostDLC", + "dependencies": { + "crosscode": ">=1.4.0", + "post-game": ">=1.4.0" + } + }, + "installation": [ + { + "type": "modZip", + "url": "https://github.com/lexisother/CCPostDLC/archive/refs/tags/v1.0.0.zip", + "source": "CCPostDLC-1.0.0", + "hash": { + "sha256": "704877a8628bb3b6973e8adb22ca93bedd7db816b69a8b3c7d9d35301df63ac6" + } + }, + { + "type": "ccmod", + "url": "https://github.com/lexisother/CCPostDLC/releases/download/v1.0.0/CCPostDLC.ccmod", + "hash": { + "sha256": "eec76c279f1683b415e4f06186d6d4d8ae6e9d247cec845bce1e6a7e6d69cea0" + } + } + ] + }, "CCPresetRevival": { "metadata": { "name": "CCPresetRevival", @@ -135,6 +212,92 @@ } ] }, + "CCTimer": { + "metadata": { + "name": "timer", + "plugin": "plugin.js", + "homepage": "https://github.com/CCDirectLink/CCTimer", + "description": "A speedrun timer for CrossCode.", + "scripts": { + "start": "esbuild --target=es2018 --format=esm --platform=node --bundle --sourcemap=inline --outfile=plugin.js src/plugin.js", + "watch": "esbuild --target=es2018 --format=esm --platform=node --bundle --sourcemap=inline --watch --outfile=plugin.js src/plugin.js" + }, + "version": "3.0.0", + "ccmodDependencies": { + "ccloader": "^2.19.0", + "Simplify": "^2.9.0" + }, + "devDependencies": { + "esbuild": "^0.19.1", + "ws": "^8.13.0" + } + }, + "metadataCCMod": { + "id": "timer", + "version": "3.0.0", + "title": "CCTimer", + "description": "A speedrun timer for CrossCode.", + "icons": { + "24": "icon.png" + }, + "plugin": "plugin.js", + "dependencies": { + "ccloader": "^2.19.0", + "Simplify": "^2.9.0" + } + }, + "installation": [ + { + "type": "modZip", + "url": "https://github.com/CCDirectLink/CCTimer/releases/download/v3.0.0/CCTimer.zip", + "source": "CCTimer", + "hash": { + "sha256": "7ba4327609e3ff0b29d2921af7d9255fbeae9dfe3d4fc035f93e99312f7ff2bb" + } + } + ] + }, + "Capped Stats": { + "metadata": { + "name": "Capped Stats", + "version": "1.0.0", + "description": "big numbers are very scary. :( low numbers are not scary! :)", + "homepage": "https://github.com/EL20202/cc-uncapped-stats", + "module": true, + "prestart": "prestart.js", + "ccmodDependencies": {} + }, + "metadataCCMod": { + "id": "cc-capped-stats", + "version": "1.0.0", + "title": "Capped Stats", + "description": "Adds a visual stat cap - see your stats for what they really aren't!", + "prestart": "prestart.js", + "icons": { + "24": "icon.png" + }, + "dependencies": { + "ccloader": "^2.20.0" + } + }, + "installation": [ + { + "type": "ccmod", + "url": "https://github.com/EL20202/cc-capped-stats/releases/download/v1.0.0/cc-capped-stats.ccmod", + "hash": { + "sha256": "34c11a440d7af0857728619e17c7143102cec55a1e16b3dd5c3c16935b8965c2" + } + }, + { + "type": "modZip", + "url": "https://github.com/EL20202/cc-capped-stats/archive/refs/tags/v1.0.0.zip", + "source": "cc-capped-stats-1.0.0", + "hash": { + "sha256": "2d8876bae0fa566ad35b4f4d5db5c2b5d1a69c55b38e27aa337c2b0b666c20c1" + } + } + ] + }, "Character Swap": { "metadata": { "name": "Character Swap", @@ -226,6 +389,36 @@ } ] }, + "CrossCode Extra Dialogue": { + "metadata": { + "name": "cc-extra-dialogue", + "version": "1.0.0", + "ccmodHumanName": "CrossCode Extra Dialogue", + "description": "Adds more lore-friendly dialogue for party members.", + "homepage": "https://github.com/Paradragon/cc-extra-dialogue", + "prestart": "prestart.js" + }, + "metadataCCMod": { + "id": "cc-extra-dialogue", + "version": "1.0.0", + "title": "CrossCode Extra Dialogue", + "description": "Adds more lore-friendly dialogue for party members.", + "homepage": "https://github.com/Paradragon/cc-extra-dialogue", + "icons": { + "24": "icon.png" + }, + "prestart": "prestart.js" + }, + "installation": [ + { + "type": "ccmod", + "url": "https://github.com/Paradragon/cc-extra-dialogue/releases/download/v1.0.0/cc-extra-dialogue.ccmod", + "hash": { + "sha256": "8ab162b803f9a663f5677b058fafcf07218145f38f7a90cbdcf05845b0a5e329" + } + } + ] + }, "Discord": { "metadata": { "name": "Discord", @@ -251,6 +444,40 @@ } ] }, + "EL's Tweaks": { + "metadata": { + "name": "el-tweaks", + "displayName": "EL's Tweaks", + "version": "0.5.8", + "description": "A coremod full of useful functionality for modders, as well as many tweaks for players.", + "plugin": "./dist/plugin.js", + "ccmodDependencies": {}, + "devDependencies": { + "typescript": "^4.5.5", + "ultimate-crosscode-typedefs": "el20202/ultimate-crosscode-typedefs" + }, + "scripts": { + "build": "tsc --build", + "watch": "tsc --watch" + } + }, + "metadataCCMod": { + "id": "el-tweaks", + "version": "0.5.8", + "title": "EL's Tweaks", + "description": "A coremod full of useful functionality for modders, as well as many tweaks for players.", + "plugin": "./dist/plugin.js" + }, + "installation": [ + { + "type": "ccmod", + "url": "https://github.com/EL20202/el-crosscode-tweaks/releases/download/v0.5.8/els-tweaks.ccmod", + "hash": { + "sha256": "14a6fa05766def657bed910c7c76b67685ac166771dc9ad82e6d6628f782db77" + } + } + ] + }, "Element Boss": { "metadata": { "name": "Element Boss", @@ -294,454 +521,548 @@ } ] }, - "Hadouken": { + "Fancy crash": { "metadata": { - "name": "Hadouken", - "ccmodHumanName": "Hadouken", - "version": "1.0.0" - }, - "installation": [ - { - "type": "modZip", - "url": "https://github.com/CookieSalesman/CrossCode-HADOUKEN-v1.0/archive/refs/tags/v1.0.0.zip", - "source": "CrossCode-HADOUKEN-v1.0-1.0.0", - "hash": { - "sha256": "4675038bf374b5193e4a723d9a50b78c8e79bcf249ab70438258bb4241dadd87" - } + "name": "cc-fancy-crash", + "version": "1.0.7", + "description": "Better crash message", + "scripts": { + "start": "esbuild --target=es2018 --format=esm --platform=node --bundle --sourcemap=inline --outfile=plugin.js src/plugin.ts", + "watch": "esbuild --target=es2018 --format=esm --platform=node --bundle --sourcemap=inline --watch --outfile=plugin.js src/plugin.ts", + "build": "esbuild --target=es2018 --format=esm --platform=node --bundle --outfile='plugin.js' 'src/plugin.ts'", + "format": "prettier ./src -w" + }, + "author": "krypek", + "license": "GPLv3", + "homepage": "https://github.com/krypciak/cc-fancy-crash", + "devDependencies": { + "@types/node": "^11.6.0", + "@typescript-eslint/eslint-plugin": "^6.20.0", + "@typescript-eslint/parser": "^6.20.0", + "esbuild": "^0.20.0", + "typescript": "^5.3.3", + "ultimate-crosscode-typedefs": "github:krypciak/ultimate-crosscode-typedefs" } - ] - }, - "Kit Player": { - "metadata": { - "name": "Kit Player", - "version": "0.1.1", - "description": "Swaps Lea's sprites to play as Kit. A sphereomancer fox.", - "homepage": "https://github.com/BountyXSnipe/kitplayer" + }, + "metadataCCMod": { + "id": "cc-fancy-crash", + "version": "1.0.7", + "title": "Fancy crash", + "description": "Better crash message", + "homepage": "https://github.com/krypciak/cc-fancy-crash", + "icons": { + "24": "icon/icon.png" + }, + "plugin": "plugin.js", + "dependencies": {} }, "installation": [ { "type": "modZip", - "url": "https://github.com/CCDirectLink/kitplayer/archive/v0.1.1.zip", - "source": "kitplayer-0.1.1/kitplayer", + "url": "https://github.com/krypciak/cc-fancy-crash/archive/refs/tags/v1.0.7.zip", + "source": "cc-fancy-crash-1.0.7", "hash": { - "sha256": "bef7447b66e411292493bde5d0fd312d0f4ca13a4c4ab215d02f9472eb291968" + "sha256": "d1282639f2a76f518489ad19df412675d166735934045f6244b9f29fe1a6794a" } - } - ] - }, - "Lea sits on the Title": { - "metadata": { - "name": "Lea sits on the Title", - "version": "1.0.0", - "description": "Replaces default Lea's pose on the title screen.", - "ccmodDependencies": {} - }, - "installation": [ + }, { - "type": "modZip", - "url": "https://github.com/Swanderrr/CCleasitstitle/raw/faba8504ef285f73cb3774e2118987ba74329c87/archive/titlescreenlea.zip", - "source": "", + "type": "ccmod", + "url": "https://github.com/krypciak/cc-fancy-crash/releases/download/v1.0.7/cc-fancy-crash-1.0.7.ccmod", "hash": { - "sha256": "077f24e1c8d44d86e1cb05197d7831f167bdae79c3077d820c09bbe748dba068" + "sha256": "edc33bc5c294a9573a49eea1c4080a458c70a9e9e8e1a6f960e3d798ce935503" } } ] }, - "LeaTriblader": { + "Font Utilities": { "metadata": { - "name": "LeaTriblader", - "main": "mod.js", - "version": "1.0.1", - "homepage": "https://github.com/keanuplayz/LeaTriblader", - "description": "This mod changes Lea's class to Triblader." + "name": "font-utils", + "displayName": "Font Utilities", + "version": "1.1.0", + "description": "Adds various new font colors!", + "prestart": "prestart.js" + }, + "metadataCCMod": { + "id": "font-utils", + "version": "1.1.0", + "title": "Font Utilities", + "description": "Adds various new font colors!", + "prestart": "prestart.js" }, "installation": [ { "type": "modZip", - "url": "https://github.com/keanuplayz/LeaTriblader/archive/1.0.1.zip", - "source": "LeaTriblader-1.0.1", + "url": "https://github.com/EL20202/crosscode-font-utils/archive/refs/tags/v1.1.0.zip", + "source": "crosscode-font-utils-1.1.0", "hash": { - "sha256": "b0a23ca05f65c09e52aebc3ce3c836ec326a972531ef4a373fdf4876494b022b" + "sha256": "3eec3eabd41908b528e97a4920df3cd39dba42a29251a96b9076307f148c8bfd" + } + }, + { + "type": "ccmod", + "url": "https://github.com/EL20202/crosscode-font-utils/releases/download/v1.1.0/font-utils.ccmod", + "hash": { + "sha256": "fc9aa9aa56336f28815abc06b26dbde42c34885190d0221c6f6c6d3f5b498148" } } ] }, - "New game++": { + "French": { "metadata": { - "name": "New game++", + "name": "French", + "description": "CrossCode en français !", + "homepage": "https://github.com/L-Sherry/French-CC", + "postload": "mod.js", "module": true, - "plugin": "plugin.js", - "version": "1.3.0", - "homepage": "https://github.com/CCDirectLink/CCNewGamePP", - "description": "A small collection of addons to CrossCode's NG+.", + "version": "1.4.0", "ccmodDependencies": { - "crosscode": "^1.2.0", - "ccloader": "^2.14.3" + "Localize Me": ">=0.5 <1" } }, "metadataCCMod": { - "id": "New game++", - "version": "1.3.0", - "plugin": "plugin.js", - "homepage": "https://github.com/CCDirectLink/CCNewGamePP", - "description": "A small collection of addons to CrossCode's NG+.", + "id": "french", + "version": "1.4.0", + "title": { + "en_US": "French", + "fr_FR": "Français", + "de_DE": "Französisch" + }, + "description": { + "en_US": "CrossCode in french !", + "fr_FR": "CrossCode en français !", + "de_DE": "CrossCode im Französisch !" + }, + "homepage": "https://github.com/L-Sherry/French-CC", + "icons": { + "24": "flaglea.png" + }, + "postload": "mod.js", "dependencies": { - "crosscode": "^1.2.0", - "ccloader": "^2.14.3" + "localize-me": ">=0.5 <2" } }, "installation": [ { - "type": "ccmod", - "url": "https://github.com/CCDirectLink/CCNewGamePP/releases/download/v1.3.0/CCNewGamePP.ccmod", + "type": "modZip", + "url": "https://github.com/L-Sherry/French-CC/archive/v1.4.0.zip", + "source": "French-CC-1.4.0", "hash": { - "sha256": "a9ccbc44306b43f8b3d2adf1f121e39b14057227961d8881bf831e63aca3a685" + "sha256": "30a9febd011fb056426a1d0e8d9f7f50b8dd7310b80a21f1c6e2d3a6c2a143ff" } - }, + } + ] + }, + "Hadouken": { + "metadata": { + "name": "Hadouken", + "ccmodHumanName": "Hadouken", + "version": "1.0.0" + }, + "installation": [ { "type": "modZip", - "url": "https://github.com/CCDirectLink/CCNewGamePP/archive/v1.3.0.zip", - "source": "CCNewGamePP-1.3.0", + "url": "https://github.com/CookieSalesman/CrossCode-HADOUKEN-v1.0/archive/refs/tags/v1.0.0.zip", + "source": "CrossCode-HADOUKEN-v1.0-1.0.0", "hash": { - "sha256": "37e48525234fe437e20cad9206cbc6c45a4421f381d51727e45162d103a1d472" + "sha256": "4675038bf374b5193e4a723d9a50b78c8e79bcf249ab70438258bb4241dadd87" } } ] }, - "Palicat": { + "Junolea Skin": { "metadata": { - "name": "Palicat", - "prestart": "prestart.js", - "homepage": "https://github.com/rioreur/palicat", - "description": "A mod that implement the palico from monster hunter world into the game.", - "version": "1.0.4", + "name": "junolea", + "version": "1.0.0", + "ccmodHumanName": "Junolea Skin", + "description": "Adds a skin which makes Lea look like Juno", + "license": "CC-BY-4.0", + "homepage": "https://github.com/Inevitabilis/CC-Junolea", + "module": true, "ccmodDependencies": { - "crosscode": "^1.1.0", - "item-api": "^0.*" - } + "item-api": ">=0.2.0 <1.0.0" + }, + "assets": [ + "data/animations/player-skins/junolea-hugging.json", + "data/animations/player-skins/junolea-hugging.json.patch", + "data/animations/player-skins/junolea-poses-debug.json", + "data/animations/player-skins/junolea-poses-debug.json.patch", + "data/animations/player-skins/junolea-poses.json", + "data/animations/player-skins/junolea-poses.json.patch", + "data/animations/player-skins/junolea-sleeping.json", + "data/animations/player-skins/junolea-sleeping.json.patch", + "data/animations/player-skins/junolea-weak.json", + "data/animations/player-skins/junolea-weak.json.patch", + "data/animations/player-skins/junolea.json", + "data/animations/player-skins/junolea.json.patch", + "data/characters/main/junolea.json", + "data/characters/main/junolea.json.patch", + "data/database.json.patch", + "data/effects/skins/junolea.json", + "data/effects/skins/junolea.json.patch", + "data/item-database.json.patch", + "media/entity/player/junolea-hugging.png", + "media/entity/player/junolea-move-weak.png", + "media/entity/player/junolea-move.png", + "media/entity/player/junolea-poses-debug.png", + "media/entity/player/junolea-poses.png", + "media/entity/player/junolea-sleeping.png", + "media/entity/player/junolea-throw.png", + "media/face/junolea-hand.png", + "media/face/junolea-panic.png", + "media/face/junolea-special.png", + "media/face/junolea.png", + "media/gui/skins/junolea.png", + "media/map/baked/lea-bakii-kum-junolea.png", + "media/map/baked/lea-ctron-bakii-kum-junolea.png", + "media/map/baked/lea-server-junolea.png", + "media/map/baked/the-room-conversation-clear-junolea.png", + "media/map/baked/the-room-conversation-shelf-junolea.png", + "media/map/baked/tree-top-ctron-junolea.png" + ] + }, + "metadataCCMod": { + "id": "junolea", + "version": "1.0.0", + "title": "Junolea Skin", + "description": "Adds a skin which makes Lea look like Juno", + "license": "CC-BY-4.0", + "homepage": "https://github.com/Inevitabilis/CC-Junolea", + "icons": { + "24": "icon24.png" + }, + "dependencies": { + "item-api": ">=0.2.0 <1.0.0" + }, + "assets": [ + "data/animations/player-skins/junolea-hugging.json", + "data/animations/player-skins/junolea-hugging.json.patch", + "data/animations/player-skins/junolea-poses-debug.json", + "data/animations/player-skins/junolea-poses-debug.json.patch", + "data/animations/player-skins/junolea-poses.json", + "data/animations/player-skins/junolea-poses.json.patch", + "data/animations/player-skins/junolea-sleeping.json", + "data/animations/player-skins/junolea-sleeping.json.patch", + "data/animations/player-skins/junolea-weak.json", + "data/animations/player-skins/junolea-weak.json.patch", + "data/animations/player-skins/junolea.json", + "data/animations/player-skins/junolea.json.patch", + "data/characters/main/junolea.json", + "data/characters/main/junolea.json.patch", + "data/database.json.patch", + "data/effects/skins/junolea.json", + "data/effects/skins/junolea.json.patch", + "data/item-database.json.patch", + "media/entity/player/junolea-hugging.png", + "media/entity/player/junolea-move-weak.png", + "media/entity/player/junolea-move.png", + "media/entity/player/junolea-poses-debug.png", + "media/entity/player/junolea-poses.png", + "media/entity/player/junolea-sleeping.png", + "media/entity/player/junolea-throw.png", + "media/face/junolea-hand.png", + "media/face/junolea-panic.png", + "media/face/junolea-special.png", + "media/face/junolea.png", + "media/gui/skins/junolea.png", + "media/map/baked/lea-bakii-kum-junolea.png", + "media/map/baked/lea-ctron-bakii-kum-junolea.png", + "media/map/baked/lea-server-junolea.png", + "media/map/baked/the-room-conversation-clear-junolea.png", + "media/map/baked/the-room-conversation-shelf-junolea.png", + "media/map/baked/tree-top-ctron-junolea.png" + ] }, "installation": [ { "type": "modZip", - "url": "https://github.com/rioreur/palicat/archive/1.0.4.zip", - "source": "palicat-1.0.4", + "url": "https://github.com/Inevitabilis/CC-Junolea/archive/refs/tags/v1.0.0.zip", + "source": "CC-Junolea-1.0.0", "hash": { - "sha256": "75d84d8a190bece945d20f2fda3518c06cdbdd57f209b91471f9815feffb4b70" + "sha256": "16b9dbbfa21c9fa18d8ed3048c842521039f0713c6cfc2a17f2d2e89f79bea2f" } } ] }, - "Qine": { + "Kit Player": { "metadata": { - "name": "Qine", - "description": "Adds the character Qine as a party member and PvP duel.", - "homepage": "https://github.com/sgrunt/qine", - "prestart": "mod.js", - "version": "0.2.7", - "ccmodDependencies": { - "ccloader": "^2.14.1", - "hardcoded-config-injector": "^0.1.0", - "extendable-severed-heads": "^1.0.0" - } + "name": "Kit Player", + "version": "0.1.1", + "description": "Swaps Lea's sprites to play as Kit. A sphereomancer fox.", + "homepage": "https://github.com/BountyXSnipe/kitplayer" }, "installation": [ { "type": "modZip", - "url": "https://github.com/sgrunt/qine/archive/0.2.7.zip", - "source": "qine-0.2.7/qine", + "url": "https://github.com/CCDirectLink/kitplayer/archive/v0.1.1.zip", + "source": "kitplayer-0.1.1/kitplayer", "hash": { - "sha256": "73bec599fdb63f6b0504d1ea6b549904daf97f00c8667f6bd6378c91560d8c29" + "sha256": "bef7447b66e411292493bde5d0fd312d0f4ca13a4c4ab215d02f9472eb291968" } } ] }, - "Restart Button": { + "Lea sits on the Title": { "metadata": { - "name": "Restart Button", - "version": "1.1.3", - "description": "Adds a button to restart the game without memory leaks", - "license": "MIT", - "homepage": "https://github.com/bluecheetah001/CCRestartButton", - "plugin": "mod.js", - "module": true + "name": "Lea sits on the Title", + "version": "1.0.0", + "description": "Replaces default Lea's pose on the title screen.", + "ccmodDependencies": {} }, "installation": [ { "type": "modZip", - "url": "https://github.com/CCDirectLink/CCRestartButton/archive/refs/tags/v1.1.3.zip", - "source": "CCRestartButton-1.1.3", + "url": "https://github.com/Swanderrr/CCleasitstitle/raw/faba8504ef285f73cb3774e2118987ba74329c87/archive/titlescreenlea.zip", + "source": "", "hash": { - "sha256": "6a31aba45a5df4a498901721fa14ed673677d1010707cd9146cee7c41804ad5a" + "sha256": "077f24e1c8d44d86e1cb05197d7831f167bdae79c3077d820c09bbe748dba068" } } ] }, - "Simplify": { + "LeaTriblader": { "metadata": { - "name": "Simplify", + "name": "LeaTriblader", "main": "mod.js", - "preload": "preload.js", - "postload": "postload.js", - "prestart": "prestart.js", - "plugin": "plugin.js", - "hidden": true, - "version": "2.12.1", - "ccmodDependencies": { - "ccloader": "^2.22.0", - "crosscode": "^1.0.0" - } + "version": "1.0.1", + "homepage": "https://github.com/keanuplayz/LeaTriblader", + "description": "This mod changes Lea's class to Triblader." }, "installation": [ { "type": "modZip", - "url": "https://github.com/CCDirectLink/CCLoader/archive/refs/tags/v2.22.1/v2.12.1.zip", - "source": "CCLoader-2.22.1-v2.12.1/assets/mods/simplify", + "url": "https://github.com/keanuplayz/LeaTriblader/archive/1.0.1.zip", + "source": "LeaTriblader-1.0.1", "hash": { - "sha256": "7ab3d850b5368dda4593318fd3e957e0bc46128e25844eeda97ca0eec16b343a" + "sha256": "b0a23ca05f65c09e52aebc3ce3c836ec326a972531ef4a373fdf4876494b022b" } } ] }, - "blades": { + "Localize Me": { "metadata": { - "name": "blades", - "version": "1.5.0", - "description": "Asset which replaces balls with blades, now for all classes!", - "module": false, - "ccmodDependencies": {} + "name": "Localize Me", + "license": "MIT", + "homepage": "https://github.com/L-Sherry/Localize-me", + "description": "Add support for more locales, languages and translations", + "postload": "mod.js", + "module": true, + "version": "0.6.0" + }, + "metadataCCMod": { + "id": "localize-me", + "version": "0.6.0", + "title": { + "en_US": "Localize Me", + "fr_FR": "Régionalisez-Moi", + "de_DE": "Lokalisiert mich" + }, + "description": { + "en_US": "Add support for more locales, languages and translations", + "fr_FR": "Ajoute la gestion de plus de locales, de languages et de traductions", + "de_DE": "Fügt Unterstützung für mehr Lokalen, Sprachen und Übersetzungen hinzu", + "ru_RU": "Мод для создания дополнительных региональных настроек, языков и переводов" + }, + "license": "MIT", + "homepage": "https://github.com/L-Sherry/Localize-Me", + "postload": "mod.js" }, "installation": [ { "type": "modZip", - "url": "https://github.com/CCDirectLink/Blades/archive/1.5.0.zip", - "source": "Blades-1.5.0", + "url": "https://github.com/L-Sherry/Localize-me/archive/v0.6.0.zip", + "source": "Localize-me-0.6.0", "hash": { - "sha256": "aa1fe7bdc217a8c27d91496b48f2642cea243ed158dafe32251834536666a25a" + "sha256": "98da8afe115cb453331ba96a70711bf22453703a921d1578b239aff14084702b" } } ] }, - "cc-capped-stats": { + "Logic Steps": { "metadata": { - "name": "Capped Stats", - "version": "1.0.0", - "description": "big numbers are very scary. :( low numbers are not scary! :)", - "homepage": "https://github.com/EL20202/cc-uncapped-stats", + "name": "Logic Steps", + "version": "1.0.1", + "description": "Adds a couple custom patch steps that allow for control of logic flow.", + "homepage": "https://github.com/lexisother/logic-steps", "module": true, - "prestart": "prestart.js", - "ccmodDependencies": {} + "postload": "postload.js", + "ccmodDependencies": { + "ccloader": ">=2.22.1" + } }, "metadataCCMod": { - "id": "cc-capped-stats", - "version": "1.0.0", - "title": "Capped Stats", - "description": "Adds a visual stat cap - see your stats for what they really aren't!", - "prestart": "prestart.js", - "icons": { - "24": "icon.png" - }, + "id": "logic-steps", + "version": "1.0.1", + "title": "Logic Steps", + "description": "Adds a couple custom patch steps that allow for control of logic flow.", + "postload": "postload.js", "dependencies": { - "ccloader": "^2.20.0" + "ccloader": ">=2.22.1" } }, "installation": [ { - "type": "ccmod", - "url": "https://github.com/EL20202/cc-capped-stats/releases/download/v1.0.0/cc-capped-stats.ccmod", + "type": "modZip", + "url": "https://github.com/lexisother/logic-steps/archive/refs/tags/v1.0.1.zip", + "source": "logic-steps-1.0.1", "hash": { - "sha256": "34c11a440d7af0857728619e17c7143102cec55a1e16b3dd5c3c16935b8965c2" + "sha256": "9fcde08ef4a637f3393f23a53b70bfdcc6805de2f21f6234f416d36691defd6a" } }, { - "type": "modZip", - "url": "https://github.com/EL20202/cc-capped-stats/archive/refs/tags/v1.0.0.zip", - "source": "cc-capped-stats-1.0.0", + "type": "ccmod", + "url": "https://github.com/lexisother/logic-steps/releases/download/v1.0.1/logic-steps.ccmod", "hash": { - "sha256": "2d8876bae0fa566ad35b4f4d5db5c2b5d1a69c55b38e27aa337c2b0b666c20c1" + "sha256": "79ac505e9f8f5f948ecb1f9e33b8da330a352f95eee5d381dd697bd3cd93f730" } } ] }, - "cc-diorbital-menu": { + "New game++": { "metadata": { - "name": "cc-diorbital-menu", - "version": "1.0.3", - "scripts": { - "start": "npx esbuild --target=es2018 --format=esm --platform=node --bundle --sourcemap=inline --outfile=plugin.js src/plugin.ts", - "watch": "npx esbuild --target=es2018 --format=esm --platform=node --bundle --sourcemap=inline --watch --outfile=plugin.js src/plugin.ts", - "build": "npx esbuild --target=es2018 --format=esm --platform=node --bundle --minify --outfile='plugin.js' 'src/plugin.ts'", - "format": "prettier ./src -w" - }, - "license": "GPLv3", - "homepage": "https://github.com/krypciak/cc-diorbital-menu", - "ccmodHumanName": "cc-diorbital-menu", - "description": "Extends the quick menu", + "name": "New game++", + "module": true, "plugin": "plugin.js", - "devDependencies": { - "@types/node": "^11.6.0", - "@typescript-eslint/eslint-plugin": "^6.20.0", - "@typescript-eslint/parser": "^6.20.0", - "esbuild": "^0.20.0", - "eslint": "^8.56.0", - "eslint-config-prettier": "^9.1.0", - "prettier": "3.2.4", - "typescript": "^5.3.3", - "ultimate-crosscode-typedefs": "github:krypciak/ultimate-crosscode-typedefs", - "cc-vim": "github:krypciak/cc-vim" + "version": "1.3.0", + "homepage": "https://github.com/CCDirectLink/CCNewGamePP", + "description": "A small collection of addons to CrossCode's NG+.", + "ccmodDependencies": { + "crosscode": "^1.2.0", + "ccloader": "^2.14.3" } }, "metadataCCMod": { - "id": "cc-diorbital-menu", - "version": "1.0.3", - "title": "cc-diorbital-menu", - "description": "Extends the quick menu", + "id": "New game++", + "version": "1.3.0", "plugin": "plugin.js", - "homepage": "https://github.com/krypciak/cc-diorbital-menu", - "icons": { - "24": "icon/icon.png" - }, + "homepage": "https://github.com/CCDirectLink/CCNewGamePP", + "description": "A small collection of addons to CrossCode's NG+.", "dependencies": { - "crosscode": ">=1.0.0" + "crosscode": "^1.2.0", + "ccloader": "^2.14.3" } }, "installation": [ { - "type": "modZip", - "url": "https://github.com/krypciak/cc-diorbital-menu/archive/refs/tags/v1.0.3.zip", - "source": "cc-diorbital-menu-1.0.3", + "type": "ccmod", + "url": "https://github.com/CCDirectLink/CCNewGamePP/releases/download/v1.3.0/CCNewGamePP.ccmod", "hash": { - "sha256": "e7eea0c5a547e325661fc17a51b39219da35ee8fafe2706b1c75b34113b40f2b" + "sha256": "a9ccbc44306b43f8b3d2adf1f121e39b14057227961d8881bf831e63aca3a685" } }, { - "type": "ccmod", - "url": "https://github.com/krypciak/cc-diorbital-menu/releases/download/v1.0.3/cc-diorbital-menu-1.0.3.ccmod", + "type": "modZip", + "url": "https://github.com/CCDirectLink/CCNewGamePP/archive/v1.3.0.zip", + "source": "CCNewGamePP-1.3.0", "hash": { - "sha256": "5c5246f43f6ae7a9f3c5eb26c4b40c5a3a8cab224740f881ade7392c897d712f" + "sha256": "37e48525234fe437e20cad9206cbc6c45a4421f381d51727e45162d103a1d472" } } ] }, - "cc-extra-dialogue": { + "Nine Rooms": { "metadata": { - "name": "cc-extra-dialogue", - "version": "1.0.0", - "ccmodHumanName": "CrossCode Extra Dialogue", - "description": "Adds more lore-friendly dialogue for party members.", - "homepage": "https://github.com/Paradragon/cc-extra-dialogue", - "prestart": "prestart.js" + "name": "nine-rooms", + "version": "0.1.0", + "description": "A little piece of lost history.", + "homepage": "https://github.com/Pyrocorvid/CCNineRooms" }, "metadataCCMod": { - "id": "cc-extra-dialogue", - "version": "1.0.0", - "title": "CrossCode Extra Dialogue", - "description": "Adds more lore-friendly dialogue for party members.", - "homepage": "https://github.com/Paradragon/cc-extra-dialogue", - "icons": { - "24": "icon.png" - }, - "prestart": "prestart.js" + "id": "nine-rooms", + "version": "0.1.0", + "title": "Nine Rooms", + "description": "A little piece of lost history.", + "homepage": "https://github.com/Pyrocorvid/CCNineRooms" }, "installation": [ { - "type": "ccmod", - "url": "https://github.com/Paradragon/cc-extra-dialogue/releases/download/v1.0.0/cc-extra-dialogue.ccmod", + "type": "modZip", + "url": "https://github.com/Pyrocorvid/CCNineRooms/archive/refs/tags/v1.0.1.zip", + "source": "CCNineRooms-1.0.1/nine-rooms", "hash": { - "sha256": "8ab162b803f9a663f5677b058fafcf07218145f38f7a90cbdcf05845b0a5e329" + "sha256": "2a62c02cc322ef7a79c49352a5ab8b4098dfa2f10b2f8cb6b989ab2f6444822d" } } ] }, - "cc-fancy-crash": { + "Palicat": { "metadata": { - "name": "cc-fancy-crash", - "version": "1.0.7", - "description": "Better crash message", - "scripts": { - "start": "esbuild --target=es2018 --format=esm --platform=node --bundle --sourcemap=inline --outfile=plugin.js src/plugin.ts", - "watch": "esbuild --target=es2018 --format=esm --platform=node --bundle --sourcemap=inline --watch --outfile=plugin.js src/plugin.ts", - "build": "esbuild --target=es2018 --format=esm --platform=node --bundle --outfile='plugin.js' 'src/plugin.ts'", - "format": "prettier ./src -w" - }, - "author": "krypek", - "license": "GPLv3", - "homepage": "https://github.com/krypciak/cc-fancy-crash", - "devDependencies": { - "@types/node": "^11.6.0", - "@typescript-eslint/eslint-plugin": "^6.20.0", - "@typescript-eslint/parser": "^6.20.0", - "esbuild": "^0.20.0", - "typescript": "^5.3.3", - "ultimate-crosscode-typedefs": "github:krypciak/ultimate-crosscode-typedefs" + "name": "Palicat", + "prestart": "prestart.js", + "homepage": "https://github.com/rioreur/palicat", + "description": "A mod that implement the palico from monster hunter world into the game.", + "version": "1.0.4", + "ccmodDependencies": { + "crosscode": "^1.1.0", + "item-api": "^0.*" } }, - "metadataCCMod": { - "id": "cc-fancy-crash", - "version": "1.0.7", - "title": "Fancy crash", - "description": "Better crash message", - "homepage": "https://github.com/krypciak/cc-fancy-crash", - "icons": { - "24": "icon/icon.png" - }, - "plugin": "plugin.js", - "dependencies": {} - }, "installation": [ { "type": "modZip", - "url": "https://github.com/krypciak/cc-fancy-crash/archive/refs/tags/v1.0.7.zip", - "source": "cc-fancy-crash-1.0.7", - "hash": { - "sha256": "d1282639f2a76f518489ad19df412675d166735934045f6244b9f29fe1a6794a" - } - }, - { - "type": "ccmod", - "url": "https://github.com/krypciak/cc-fancy-crash/releases/download/v1.0.7/cc-fancy-crash-1.0.7.ccmod", + "url": "https://github.com/rioreur/palicat/archive/1.0.4.zip", + "source": "palicat-1.0.4", "hash": { - "sha256": "edc33bc5c294a9573a49eea1c4080a458c70a9e9e8e1a6f960e3d798ce935503" + "sha256": "75d84d8a190bece945d20f2fda3518c06cdbdd57f209b91471f9815feffb4b70" } } ] }, - "cc-oldmedia": { + "Past Booster": { "metadata": { - "name": "CCOldMedia", - "version": "1.0.0", - "description": "A mod that brings back some old title screen assets.", - "homepage": "https://github.com/lexisother/CCOldMedia", - "module": true, - "prestart": "src/prestart.js", - "ccmodDependencies": {} + "name": "past-booster", + "version": "0.1.0", + "description": "Makes the Nine Rooms mod a little more... post-gamey.", + "homepage": "https://github.com/Pyrocorvid/CCNineRooms", + "ccmodDependencies": { + "nine-rooms": ">=0.1.0" + } }, "metadataCCMod": { - "id": "cc-oldmedia", - "version": "1.0.0", - "title": "CC-OldMedia", - "description": "A mod that brings back some old title screen assets.", - "homepage": "https://github.com/lexisother/CCOldMedia", - "prestart": "src/prestart.js" + "id": "past-booster", + "version": "0.1.0", + "title": "Past Booster", + "description": "Makes the Nine Rooms mod a little more... post-gamey.", + "homepage": "https://github.com/Pyrocorvid/CCNineRooms", + "dependencies": { + "nine-rooms": ">=0.1.0" + } }, "installation": [ { "type": "modZip", - "url": "https://github.com/lexisother/CCOldMedia/archive/refs/tags/v1.0.0.zip", - "source": "CCOldMedia-1.0.0", + "url": "https://github.com/Pyrocorvid/CCNineRooms/archive/refs/tags/v1.0.1.zip", + "source": "CCNineRooms-1.0.1/past-booster", "hash": { - "sha256": "491263c26aefa8f366c135e2672c0214bb593059d44ddf22bebfc3a655f0b73e" + "sha256": "2a62c02cc322ef7a79c49352a5ab8b4098dfa2f10b2f8cb6b989ab2f6444822d" } - }, + } + ] + }, + "Qine": { + "metadata": { + "name": "Qine", + "description": "Adds the character Qine as a party member and PvP duel.", + "homepage": "https://github.com/sgrunt/qine", + "prestart": "mod.js", + "version": "0.2.7", + "ccmodDependencies": { + "ccloader": "^2.14.1", + "hardcoded-config-injector": "^0.1.0", + "extendable-severed-heads": "^1.0.0" + } + }, + "installation": [ { - "type": "ccmod", - "url": "https://github.com/lexisother/CCOldMedia/releases/download/v1.0.0/CCOldMedia.ccmod", + "type": "modZip", + "url": "https://github.com/sgrunt/qine/archive/0.2.7.zip", + "source": "qine-0.2.7/qine", "hash": { - "sha256": "0791db068d46cf394fc3a512cf3a5bca7744a1550d1e72d07adb39bcea097703" + "sha256": "73bec599fdb63f6b0504d1ea6b549904daf97f00c8667f6bd6378c91560d8c29" } } ] }, - "cc-quickinfo-exp": { + "QuickInfo EXP Viewer": { "metadata": { "name": "QuickInfo EXP Viewer", "version": "1.0.0", @@ -777,7 +1098,54 @@ } ] }, - "cc-uncapped-stats": { + "Restart Button": { + "metadata": { + "name": "Restart Button", + "version": "1.1.3", + "description": "Adds a button to restart the game without memory leaks", + "license": "MIT", + "homepage": "https://github.com/bluecheetah001/CCRestartButton", + "plugin": "mod.js", + "module": true + }, + "installation": [ + { + "type": "modZip", + "url": "https://github.com/CCDirectLink/CCRestartButton/archive/refs/tags/v1.1.3.zip", + "source": "CCRestartButton-1.1.3", + "hash": { + "sha256": "6a31aba45a5df4a498901721fa14ed673677d1010707cd9146cee7c41804ad5a" + } + } + ] + }, + "Simplify": { + "metadata": { + "name": "Simplify", + "main": "mod.js", + "preload": "preload.js", + "postload": "postload.js", + "prestart": "prestart.js", + "plugin": "plugin.js", + "hidden": true, + "version": "2.12.1", + "ccmodDependencies": { + "ccloader": "^2.22.0", + "crosscode": "^1.0.0" + } + }, + "installation": [ + { + "type": "modZip", + "url": "https://github.com/CCDirectLink/CCLoader/archive/refs/tags/v2.22.1/v2.12.1.zip", + "source": "CCLoader-2.22.1-v2.12.1/assets/mods/simplify", + "hash": { + "sha256": "7ab3d850b5368dda4593318fd3e957e0bc46128e25844eeda97ca0eec16b343a" + } + } + ] + }, + "Uncapped Stats": { "metadata": { "name": "Uncapped Stats", "version": "1.1.1", @@ -804,94 +1172,282 @@ } }, "installation": [ - { - "type": "ccmod", - "url": "https://github.com/EL20202/cc-uncapped-stats/releases/download/v1.1.1/cc-uncapped-stats-v1.1.1.ccmod", - "hash": { - "sha256": "4084245193fe5b6f43842afcc8db02b78ea6f12472a345b17a339c4c59e48fc8" - } - }, + { + "type": "ccmod", + "url": "https://github.com/EL20202/cc-uncapped-stats/releases/download/v1.1.1/cc-uncapped-stats-v1.1.1.ccmod", + "hash": { + "sha256": "4084245193fe5b6f43842afcc8db02b78ea6f12472a345b17a339c4c59e48fc8" + } + }, + { + "type": "modZip", + "url": "https://github.com/EL20202/cc-uncapped-stats/archive/refs/tags/v1.1.1.zip", + "source": "cc-uncapped-stats-1.1.1", + "hash": { + "sha256": "f71786c48ba246993fd0cd924155a7d09be5fe7020c97482ec285ea7dbe5b1b9" + } + } + ] + }, + "Vim Command Mode": { + "metadata": { + "name": "cc-vim", + "version": "1.5.4", + "description": "Adds a popup command prompt", + "scripts": { + "start": "esbuild --target=es2018 --format=esm --platform=node --bundle --sourcemap=inline --outfile=plugin.js src/plugin.ts", + "watch": "esbuild --target=es2018 --format=esm --platform=node --bundle --sourcemap=inline --watch --outfile=plugin.js src/plugin.ts", + "build": "npx esbuild --target=es2018 --format=esm --platform=node --bundle --outfile='plugin.js' 'src/plugin.ts'", + "format": "prettier ./src -w" + }, + "author": "krypek", + "license": "GNU GPLv3", + "homepage": "https://github.com/krypciak/cc-vim", + "types": "src/global.d.ts", + "devDependencies": { + "@types/node": "^20.4.4", + "@typescript-eslint/eslint-plugin": "^6.2.0", + "@typescript-eslint/parser": "^6.2.0", + "esbuild": "^0.18.15", + "fuse.js": "^6.6.2", + "prettier": "3.0.0", + "typescript": "^5.1.6", + "ultimate-crosscode-typedefs": "github:krypciak/ultimate-crosscode-typedefs", + "cc-quick-menu-ext": "github:krypciak/cc-quick-menu-ext" + } + }, + "metadataCCMod": { + "id": "cc-vim", + "version": "1.5.4", + "title": { + "en_US": "Vim Command Mode", + "de_DE": "Vim Command Mode", + "fr_FR": "Vim Command Mode", + "zh_CN": "Vim Command Mode", + "zh_TW": "Vim Command Mode", + "ja_JP": "Vim Command Mode", + "ko_KR": "Vim Command Mode" + }, + "description": { + "en_US": "Adds a popup command prompt", + "de_DE": "Adds a popup command prompt", + "fr_FR": "Adds a popup command prompt", + "zh_CN": "Adds a popup command prompt", + "zh_TW": "Adds a popup command prompt", + "ja_JP": "Adds a popup command prompt", + "ko_KR": "Adds a popup command prompt" + }, + "homepage": "https://github.com/krypciak/cc-vim", + "icons": { + "24": "icon/icon.png" + }, + "plugin": "plugin.js", + "dependencies": { + "input-api": ">=1.0.0" + } + }, + "installation": [ + { + "type": "modZip", + "url": "https://github.com/krypciak/cc-vim/archive/refs/tags/v1.5.4.zip", + "source": "cc-vim-1.5.4", + "hash": { + "sha256": "c6c650179f47dcd4734c1df2364057b22d752c9fb8b4ce53b5ffc51b0e8566db" + } + }, + { + "type": "ccmod", + "url": "https://github.com/krypciak/cc-vim/releases/download/v1.5.4/cc-vim-1.5.4.ccmod", + "hash": { + "sha256": "956b112b9e9928c8de6e8eac68f3e132dd275d31904f3bed607c4aee0ff09eb0" + } + } + ] + }, + "World map overhaul": { + "metadata": { + "name": "world-map-overhaul", + "ccmodHumanName": "World map overhaul", + "description": "A better world map", + "homepage": "https://github.com/dmitmel/cc-world-map-overhaul", + "version": "1.1.2", + "prestart": "prestart.js", + "assets": [ + "media/gui/better-world-map/overlays/colored/arid.png", + "media/gui/better-world-map/overlays/colored/autumn-area.png", + "media/gui/better-world-map/overlays/colored/autumn-fall.png", + "media/gui/better-world-map/overlays/colored/beach.png", + "media/gui/better-world-map/overlays/colored/bergen-trails.png", + "media/gui/better-world-map/overlays/colored/final-dng.png", + "media/gui/better-world-map/overlays/colored/forest.png", + "media/gui/better-world-map/overlays/colored/heat-area.png", + "media/gui/better-world-map/overlays/colored/jungle.png", + "media/gui/better-world-map/overlays/colored/rookie-harbor.png", + "media/gui/better-world-map/overlays/default/arid.png", + "media/gui/better-world-map/overlays/default/autumn-area.png", + "media/gui/better-world-map/overlays/default/autumn-fall.png", + "media/gui/better-world-map/overlays/default/beach.png", + "media/gui/better-world-map/overlays/default/bergen-trails.png", + "media/gui/better-world-map/overlays/default/final-dng.png", + "media/gui/better-world-map/overlays/default/forest.png", + "media/gui/better-world-map/overlays/default/heat-area.png", + "media/gui/better-world-map/overlays/default/jungle.png", + "media/gui/better-world-map/overlays/default/rookie-harbor.png", + "media/gui/better-world-map/overlays/reveal/arid.png", + "media/gui/better-world-map/overlays/reveal/autumn-area.png", + "media/gui/better-world-map/overlays/reveal/autumn-fall.png", + "media/gui/better-world-map/overlays/reveal/beach.png", + "media/gui/better-world-map/overlays/reveal/bergen-trails.png", + "media/gui/better-world-map/overlays/reveal/final-dng.png", + "media/gui/better-world-map/overlays/reveal/forest.png", + "media/gui/better-world-map/overlays/reveal/heat-area.png", + "media/gui/better-world-map/overlays/reveal/jungle.png", + "media/gui/better-world-map/overlays/reveal/rookie-harbor.png", + "media/gui/better-world-map/patched-area-buttons.png", + "media/gui/better-world-map/sea.png" + ] + }, + "metadataCCMod": { + "id": "world-map-overhaul", + "version": "1.1.2", + "title": "World map overhaul", + "description": { + "en_US": "A better world map", + "ru_RU": "Улучшенная карта мира" + }, + "homepage": "https://github.com/dmitmel/cc-world-map-overhaul", + "icons": { + "24": "icon24.png" + }, + "prestart": "prestart.js", + "assets": [ + "media/gui/better-world-map/overlays/colored/arid.png", + "media/gui/better-world-map/overlays/colored/autumn-area.png", + "media/gui/better-world-map/overlays/colored/autumn-fall.png", + "media/gui/better-world-map/overlays/colored/beach.png", + "media/gui/better-world-map/overlays/colored/bergen-trails.png", + "media/gui/better-world-map/overlays/colored/final-dng.png", + "media/gui/better-world-map/overlays/colored/forest.png", + "media/gui/better-world-map/overlays/colored/heat-area.png", + "media/gui/better-world-map/overlays/colored/jungle.png", + "media/gui/better-world-map/overlays/colored/rookie-harbor.png", + "media/gui/better-world-map/overlays/default/arid.png", + "media/gui/better-world-map/overlays/default/autumn-area.png", + "media/gui/better-world-map/overlays/default/autumn-fall.png", + "media/gui/better-world-map/overlays/default/beach.png", + "media/gui/better-world-map/overlays/default/bergen-trails.png", + "media/gui/better-world-map/overlays/default/final-dng.png", + "media/gui/better-world-map/overlays/default/forest.png", + "media/gui/better-world-map/overlays/default/heat-area.png", + "media/gui/better-world-map/overlays/default/jungle.png", + "media/gui/better-world-map/overlays/default/rookie-harbor.png", + "media/gui/better-world-map/overlays/reveal/arid.png", + "media/gui/better-world-map/overlays/reveal/autumn-area.png", + "media/gui/better-world-map/overlays/reveal/autumn-fall.png", + "media/gui/better-world-map/overlays/reveal/beach.png", + "media/gui/better-world-map/overlays/reveal/bergen-trails.png", + "media/gui/better-world-map/overlays/reveal/final-dng.png", + "media/gui/better-world-map/overlays/reveal/forest.png", + "media/gui/better-world-map/overlays/reveal/heat-area.png", + "media/gui/better-world-map/overlays/reveal/jungle.png", + "media/gui/better-world-map/overlays/reveal/rookie-harbor.png", + "media/gui/better-world-map/patched-area-buttons.png", + "media/gui/better-world-map/sea.png" + ] + }, + "installation": [ + { + "type": "ccmod", + "url": "https://github.com/dmitmel/cc-world-map-overhaul/releases/download/v1.1.2/world-map-overhaul_v1.1.2.ccmod", + "hash": { + "sha256": "78aa2526039c77e69252ccb3f3ff0e0ba6d4ba6c18a10a900002e6981d024a05" + } + }, + { + "type": "modZip", + "url": "https://github.com/dmitmel/cc-world-map-overhaul/releases/download/v1.1.2/world-map-overhaul_v1.1.2.zip", + "source": "world-map-overhaul", + "hash": { + "sha256": "03aa7cf573166a5a4b12c703bd63d7fd92f9bcf403ddc65cc7fd60b6ce2a97ca" + } + } + ] + }, + "blades": { + "metadata": { + "name": "blades", + "version": "1.5.0", + "description": "Asset which replaces balls with blades, now for all classes!", + "module": false, + "ccmodDependencies": {} + }, + "installation": [ { "type": "modZip", - "url": "https://github.com/EL20202/cc-uncapped-stats/archive/refs/tags/v1.1.1.zip", - "source": "cc-uncapped-stats-1.1.1", + "url": "https://github.com/CCDirectLink/Blades/archive/1.5.0.zip", + "source": "Blades-1.5.0", "hash": { - "sha256": "f71786c48ba246993fd0cd924155a7d09be5fe7020c97482ec285ea7dbe5b1b9" + "sha256": "aa1fe7bdc217a8c27d91496b48f2642cea243ed158dafe32251834536666a25a" } } ] }, - "cc-vim": { + "cc-diorbital-menu": { "metadata": { - "name": "cc-vim", - "version": "1.5.4", - "description": "Adds a popup command prompt", + "name": "cc-diorbital-menu", + "version": "1.0.3", "scripts": { - "start": "esbuild --target=es2018 --format=esm --platform=node --bundle --sourcemap=inline --outfile=plugin.js src/plugin.ts", - "watch": "esbuild --target=es2018 --format=esm --platform=node --bundle --sourcemap=inline --watch --outfile=plugin.js src/plugin.ts", - "build": "npx esbuild --target=es2018 --format=esm --platform=node --bundle --outfile='plugin.js' 'src/plugin.ts'", + "start": "npx esbuild --target=es2018 --format=esm --platform=node --bundle --sourcemap=inline --outfile=plugin.js src/plugin.ts", + "watch": "npx esbuild --target=es2018 --format=esm --platform=node --bundle --sourcemap=inline --watch --outfile=plugin.js src/plugin.ts", + "build": "npx esbuild --target=es2018 --format=esm --platform=node --bundle --minify --outfile='plugin.js' 'src/plugin.ts'", "format": "prettier ./src -w" }, - "author": "krypek", - "license": "GNU GPLv3", - "homepage": "https://github.com/krypciak/cc-vim", - "types": "src/global.d.ts", + "license": "GPLv3", + "homepage": "https://github.com/krypciak/cc-diorbital-menu", + "ccmodHumanName": "cc-diorbital-menu", + "description": "Extends the quick menu", + "plugin": "plugin.js", "devDependencies": { - "@types/node": "^20.4.4", - "@typescript-eslint/eslint-plugin": "^6.2.0", - "@typescript-eslint/parser": "^6.2.0", - "esbuild": "^0.18.15", - "fuse.js": "^6.6.2", - "prettier": "3.0.0", - "typescript": "^5.1.6", + "@types/node": "^11.6.0", + "@typescript-eslint/eslint-plugin": "^6.20.0", + "@typescript-eslint/parser": "^6.20.0", + "esbuild": "^0.20.0", + "eslint": "^8.56.0", + "eslint-config-prettier": "^9.1.0", + "prettier": "3.2.4", + "typescript": "^5.3.3", "ultimate-crosscode-typedefs": "github:krypciak/ultimate-crosscode-typedefs", - "cc-quick-menu-ext": "github:krypciak/cc-quick-menu-ext" + "cc-vim": "github:krypciak/cc-vim" } }, "metadataCCMod": { - "id": "cc-vim", - "version": "1.5.4", - "title": { - "en_US": "Vim Command Mode", - "de_DE": "Vim Command Mode", - "fr_FR": "Vim Command Mode", - "zh_CN": "Vim Command Mode", - "zh_TW": "Vim Command Mode", - "ja_JP": "Vim Command Mode", - "ko_KR": "Vim Command Mode" - }, - "description": { - "en_US": "Adds a popup command prompt", - "de_DE": "Adds a popup command prompt", - "fr_FR": "Adds a popup command prompt", - "zh_CN": "Adds a popup command prompt", - "zh_TW": "Adds a popup command prompt", - "ja_JP": "Adds a popup command prompt", - "ko_KR": "Adds a popup command prompt" - }, - "homepage": "https://github.com/krypciak/cc-vim", + "id": "cc-diorbital-menu", + "version": "1.0.3", + "title": "cc-diorbital-menu", + "description": "Extends the quick menu", + "plugin": "plugin.js", + "homepage": "https://github.com/krypciak/cc-diorbital-menu", "icons": { "24": "icon/icon.png" }, - "plugin": "plugin.js", "dependencies": { - "input-api": ">=1.0.0" + "crosscode": ">=1.0.0" } }, "installation": [ { "type": "modZip", - "url": "https://github.com/krypciak/cc-vim/archive/refs/tags/v1.5.4.zip", - "source": "cc-vim-1.5.4", + "url": "https://github.com/krypciak/cc-diorbital-menu/archive/refs/tags/v1.0.3.zip", + "source": "cc-diorbital-menu-1.0.3", "hash": { - "sha256": "c6c650179f47dcd4734c1df2364057b22d752c9fb8b4ce53b5ffc51b0e8566db" + "sha256": "e7eea0c5a547e325661fc17a51b39219da35ee8fafe2706b1c75b34113b40f2b" } }, { "type": "ccmod", - "url": "https://github.com/krypciak/cc-vim/releases/download/v1.5.4/cc-vim-1.5.4.ccmod", + "url": "https://github.com/krypciak/cc-diorbital-menu/releases/download/v1.0.3/cc-diorbital-menu-1.0.3.ccmod", "hash": { - "sha256": "956b112b9e9928c8de6e8eac68f3e132dd275d31904f3bed607c4aee0ff09eb0" + "sha256": "5c5246f43f6ae7a9f3c5eb26c4b40c5a3a8cab224740f881ade7392c897d712f" } } ] @@ -915,48 +1471,37 @@ } ] }, - "ccpostdlc": { + "cursedcode": { "metadata": { - "name": "CCPostDLC", - "version": "1.0.0", - "description": "Adjusts the game to continue after completing the DLC.", - "homepage": "https://github.com/lexisother/CCPostDLC", - "prestart": "src/prestart.js", - "ccmodDependencies": { - "crosscode": ">=1.4.0", - "post-game": ">=1.4.0" - } - }, - "metadataCCMod": { - "id": "ccpostdlc", - "version": "1.0.0", - "title": "CCPostDLC", - "description": "Adjusts the game to continue after completing the DLC.", - "homepage": "https://github.com/lexisother/CCPostDLC", + "name": "cursedcode", + "displayName": "CursedCode", + "description": "Cursed custom maps.", + "prestart": "mod.js", + "version": "0.1.1", + "module": true, + "ccmodDependencies": {}, + "scripts": { + "format": "npm run minify-json && npm run json-beautify && npm run js-beautify", + "minify-json": "minify-json ./", + "js-beautify": "js-beautify -js -q -r -f ./**/*.js", + "json-beautify": "js-beautify -js -r -f ./**/*.json" + }, "dependencies": { - "crosscode": ">=1.4.0", - "post-game": ">=1.4.0" + "js-beautify": "^1.10.3", + "minify-json": "^1.0.0" } }, "installation": [ - { - "type": "modZip", - "url": "https://github.com/lexisother/CCPostDLC/archive/refs/tags/v1.0.0.zip", - "source": "CCPostDLC-1.0.0", - "hash": { - "sha256": "704877a8628bb3b6973e8adb22ca93bedd7db816b69a8b3c7d9d35301df63ac6" - } - }, { "type": "ccmod", - "url": "https://github.com/lexisother/CCPostDLC/releases/download/v1.0.0/CCPostDLC.ccmod", + "url": "https://github.com/Symphiel/CursedCode/releases/download/0.1.1/cursedcode.ccmod", "hash": { - "sha256": "eec76c279f1683b415e4f06186d6d4d8ae6e9d247cec845bce1e6a7e6d69cea0" + "sha256": "e265e1cb434d6718c655909792a8077cbe6073618a0a984e43fc944a62caee46" } } ] }, - "crosscode-tweak-pack": { + "dmitmel's tweak pack": { "metadata": { "name": "crosscode-tweak-pack", "version": "1.1.0", @@ -991,187 +1536,45 @@ "title": "dmitmel's tweak pack", "description": { "en_US": "Micro-mods by dmitmel in a single 999-in-1 package, ranging from QoL tweaks to cheats.", - "ru_RU": "Микро-моды от dmitmel в одной упаковке 999-in-1, начиная от QoL дополнений и заканчивая читами." - }, - "license": "CC0-1.0", - "homepage": "https://github.com/dmitmel/crosscode-tweak-pack", - "icons": { - "24": "icon24.png" - }, - "plugin": "src/_plugin.js", - "prestart": "src/_prestart.js", - "assets": [ - "data/lang/sc/gui.en_US.json.patch", - "data/lang/sc/gui.ru_RU.json.patch" - ] - }, - "installation": [ - { - "type": "modZip", - "url": "https://github.com/dmitmel/crosscode-tweak-pack/releases/download/v1.1.0/crosscode-tweak-pack_v1.1.0.zip", - "source": "crosscode-tweak-pack", - "hash": { - "sha256": "0cc60fb1aeccdb7f664430feb222df8cbf0571a5c5359dcb689f1b551a983713" - } - } - ] - }, - "cursedcode": { - "metadata": { - "name": "cursedcode", - "displayName": "CursedCode", - "description": "Cursed custom maps.", - "prestart": "mod.js", - "version": "0.1.1", - "module": true, - "ccmodDependencies": {}, - "scripts": { - "format": "npm run minify-json && npm run json-beautify && npm run js-beautify", - "minify-json": "minify-json ./", - "js-beautify": "js-beautify -js -q -r -f ./**/*.js", - "json-beautify": "js-beautify -js -r -f ./**/*.json" - }, - "dependencies": { - "js-beautify": "^1.10.3", - "minify-json": "^1.0.0" - } - }, - "installation": [ - { - "type": "ccmod", - "url": "https://github.com/Symphiel/CursedCode/releases/download/0.1.1/cursedcode.ccmod", - "hash": { - "sha256": "e265e1cb434d6718c655909792a8077cbe6073618a0a984e43fc944a62caee46" - } - } - ] - }, - "el-tweaks": { - "metadata": { - "name": "el-tweaks", - "displayName": "EL's Tweaks", - "version": "0.5.8", - "description": "A coremod full of useful functionality for modders, as well as many tweaks for players.", - "plugin": "./dist/plugin.js", - "ccmodDependencies": {}, - "devDependencies": { - "typescript": "^4.5.5", - "ultimate-crosscode-typedefs": "el20202/ultimate-crosscode-typedefs" - }, - "scripts": { - "build": "tsc --build", - "watch": "tsc --watch" - } - }, - "metadataCCMod": { - "id": "el-tweaks", - "version": "0.5.8", - "title": "EL's Tweaks", - "description": "A coremod full of useful functionality for modders, as well as many tweaks for players.", - "plugin": "./dist/plugin.js" - }, - "installation": [ - { - "type": "ccmod", - "url": "https://github.com/EL20202/el-crosscode-tweaks/releases/download/v0.5.8/els-tweaks.ccmod", - "hash": { - "sha256": "14a6fa05766def657bed910c7c76b67685ac166771dc9ad82e6d6628f782db77" - } - } - ] - }, - "extendable-severed-heads": { - "metadata": { - "name": "extendable-severed-heads", - "hidden": true, - "version": "1.0.0", - "plugin": "plugin.js" - }, - "installation": [ - { - "type": "modZip", - "url": "https://github.com/CCDirectLink/extendable-severed-heads/archive/v1.0.0.zip", - "source": "extendable-severed-heads-1.0.0", - "hash": { - "sha256": "2fd7991bc70000ade0af06d585c64d1458adee6769b00cbccbbc748be487549e" - } - } - ] - }, - "font-utils": { - "metadata": { - "name": "font-utils", - "displayName": "Font Utilities", - "version": "1.1.0", - "description": "Adds various new font colors!", - "prestart": "prestart.js" - }, - "metadataCCMod": { - "id": "font-utils", - "version": "1.1.0", - "title": "Font Utilities", - "description": "Adds various new font colors!", - "prestart": "prestart.js" + "ru_RU": "Микро-моды от dmitmel в одной упаковке 999-in-1, начиная от QoL дополнений и заканчивая читами." + }, + "license": "CC0-1.0", + "homepage": "https://github.com/dmitmel/crosscode-tweak-pack", + "icons": { + "24": "icon24.png" + }, + "plugin": "src/_plugin.js", + "prestart": "src/_prestart.js", + "assets": [ + "data/lang/sc/gui.en_US.json.patch", + "data/lang/sc/gui.ru_RU.json.patch" + ] }, "installation": [ { "type": "modZip", - "url": "https://github.com/EL20202/crosscode-font-utils/archive/refs/tags/v1.1.0.zip", - "source": "crosscode-font-utils-1.1.0", - "hash": { - "sha256": "3eec3eabd41908b528e97a4920df3cd39dba42a29251a96b9076307f148c8bfd" - } - }, - { - "type": "ccmod", - "url": "https://github.com/EL20202/crosscode-font-utils/releases/download/v1.1.0/font-utils.ccmod", + "url": "https://github.com/dmitmel/crosscode-tweak-pack/releases/download/v1.1.0/crosscode-tweak-pack_v1.1.0.zip", + "source": "crosscode-tweak-pack", "hash": { - "sha256": "fc9aa9aa56336f28815abc06b26dbde42c34885190d0221c6f6c6d3f5b498148" + "sha256": "0cc60fb1aeccdb7f664430feb222df8cbf0571a5c5359dcb689f1b551a983713" } } ] }, - "french": { + "extendable-severed-heads": { "metadata": { - "name": "French", - "description": "CrossCode en français !", - "homepage": "https://github.com/L-Sherry/French-CC", - "postload": "mod.js", - "module": true, - "version": "1.4.0", - "ccmodDependencies": { - "Localize Me": ">=0.5 <1" - } - }, - "metadataCCMod": { - "id": "french", - "version": "1.4.0", - "title": { - "en_US": "French", - "fr_FR": "Français", - "de_DE": "Französisch" - }, - "description": { - "en_US": "CrossCode in french !", - "fr_FR": "CrossCode en français !", - "de_DE": "CrossCode im Französisch !" - }, - "homepage": "https://github.com/L-Sherry/French-CC", - "icons": { - "24": "flaglea.png" - }, - "postload": "mod.js", - "dependencies": { - "localize-me": ">=0.5 <2" - } + "name": "extendable-severed-heads", + "hidden": true, + "version": "1.0.0", + "plugin": "plugin.js" }, "installation": [ { "type": "modZip", - "url": "https://github.com/L-Sherry/French-CC/archive/v1.4.0.zip", - "source": "French-CC-1.4.0", + "url": "https://github.com/CCDirectLink/extendable-severed-heads/archive/v1.0.0.zip", + "source": "extendable-severed-heads-1.0.0", "hash": { - "sha256": "30a9febd011fb056426a1d0e8d9f7f50b8dd7310b80a21f1c6e2d3a6c2a143ff" + "sha256": "2fd7991bc70000ade0af06d585c64d1458adee6769b00cbccbbc748be487549e" } } ] @@ -1255,244 +1658,51 @@ "metadata": { "name": "item-api", "description": "Allows custom items to be prepared in such a way that they 'just work'.", - "homepage": "https://gitlab.com/20kdc/ccprestartapi", - "version": "0.4.2", - "postload": "postload.js", - "prestart": "prestart.js", - "module": true - }, - "installation": [ - { - "type": "modZip", - "url": "https://github.com/CCDirectLink/item-api/archive/refs/tags/v0.4.2.zip", - "source": "item-api-0.4.2", - "hash": { - "sha256": "68d7f15b5e3c4264831dfe89a3ad2ad819825819d98aa529cee03e73312a6b21" - } - } - ] - }, - "jetpack": { - "metadata": { - "name": "jetpack", - "version": "0.2.0", - "license": "MIT", - "homepage": "https://github.com/CCDirectLink/CCJetpack", - "description": "Turns your CTRL key into a jetpack", - "module": true, - "prestart": "prestart.js", - "main": "poststart.js", - "ccmodDependencies": { - "crosscode": "^1.1.0" - } - }, - "installation": [ - { - "type": "ccmod", - "url": "https://github.com/CCDirectLink/CCJetpack/releases/download/v0.2.0/CCJetpack.ccmod", - "hash": { - "sha256": "68932f3747b9cddc473c090d1f30fc1595354e6262cb1074590bf71c27f86fbb" - } - }, - { - "type": "modZip", - "url": "https://github.com/CCDirectLink/CCJetpack/archive/v0.2.0.zip", - "source": "CCJetpack-0.2.0", - "hash": { - "sha256": "49841feae2ddf8e42bce5dec6d712e2fb714ac66e8d8b3d8f0b94eaa47674a71" - } - } - ] - }, - "junolea": { - "metadata": { - "name": "junolea", - "version": "1.0.0", - "ccmodHumanName": "Junolea Skin", - "description": "Adds a skin which makes Lea look like Juno", - "license": "CC-BY-4.0", - "homepage": "https://github.com/Inevitabilis/CC-Junolea", - "module": true, - "ccmodDependencies": { - "item-api": ">=0.2.0 <1.0.0" - }, - "assets": [ - "data/animations/player-skins/junolea-hugging.json", - "data/animations/player-skins/junolea-hugging.json.patch", - "data/animations/player-skins/junolea-poses-debug.json", - "data/animations/player-skins/junolea-poses-debug.json.patch", - "data/animations/player-skins/junolea-poses.json", - "data/animations/player-skins/junolea-poses.json.patch", - "data/animations/player-skins/junolea-sleeping.json", - "data/animations/player-skins/junolea-sleeping.json.patch", - "data/animations/player-skins/junolea-weak.json", - "data/animations/player-skins/junolea-weak.json.patch", - "data/animations/player-skins/junolea.json", - "data/animations/player-skins/junolea.json.patch", - "data/characters/main/junolea.json", - "data/characters/main/junolea.json.patch", - "data/database.json.patch", - "data/effects/skins/junolea.json", - "data/effects/skins/junolea.json.patch", - "data/item-database.json.patch", - "media/entity/player/junolea-hugging.png", - "media/entity/player/junolea-move-weak.png", - "media/entity/player/junolea-move.png", - "media/entity/player/junolea-poses-debug.png", - "media/entity/player/junolea-poses.png", - "media/entity/player/junolea-sleeping.png", - "media/entity/player/junolea-throw.png", - "media/face/junolea-hand.png", - "media/face/junolea-panic.png", - "media/face/junolea-special.png", - "media/face/junolea.png", - "media/gui/skins/junolea.png", - "media/map/baked/lea-bakii-kum-junolea.png", - "media/map/baked/lea-ctron-bakii-kum-junolea.png", - "media/map/baked/lea-server-junolea.png", - "media/map/baked/the-room-conversation-clear-junolea.png", - "media/map/baked/the-room-conversation-shelf-junolea.png", - "media/map/baked/tree-top-ctron-junolea.png" - ] - }, - "metadataCCMod": { - "id": "junolea", - "version": "1.0.0", - "title": "Junolea Skin", - "description": "Adds a skin which makes Lea look like Juno", - "license": "CC-BY-4.0", - "homepage": "https://github.com/Inevitabilis/CC-Junolea", - "icons": { - "24": "icon24.png" - }, - "dependencies": { - "item-api": ">=0.2.0 <1.0.0" - }, - "assets": [ - "data/animations/player-skins/junolea-hugging.json", - "data/animations/player-skins/junolea-hugging.json.patch", - "data/animations/player-skins/junolea-poses-debug.json", - "data/animations/player-skins/junolea-poses-debug.json.patch", - "data/animations/player-skins/junolea-poses.json", - "data/animations/player-skins/junolea-poses.json.patch", - "data/animations/player-skins/junolea-sleeping.json", - "data/animations/player-skins/junolea-sleeping.json.patch", - "data/animations/player-skins/junolea-weak.json", - "data/animations/player-skins/junolea-weak.json.patch", - "data/animations/player-skins/junolea.json", - "data/animations/player-skins/junolea.json.patch", - "data/characters/main/junolea.json", - "data/characters/main/junolea.json.patch", - "data/database.json.patch", - "data/effects/skins/junolea.json", - "data/effects/skins/junolea.json.patch", - "data/item-database.json.patch", - "media/entity/player/junolea-hugging.png", - "media/entity/player/junolea-move-weak.png", - "media/entity/player/junolea-move.png", - "media/entity/player/junolea-poses-debug.png", - "media/entity/player/junolea-poses.png", - "media/entity/player/junolea-sleeping.png", - "media/entity/player/junolea-throw.png", - "media/face/junolea-hand.png", - "media/face/junolea-panic.png", - "media/face/junolea-special.png", - "media/face/junolea.png", - "media/gui/skins/junolea.png", - "media/map/baked/lea-bakii-kum-junolea.png", - "media/map/baked/lea-ctron-bakii-kum-junolea.png", - "media/map/baked/lea-server-junolea.png", - "media/map/baked/the-room-conversation-clear-junolea.png", - "media/map/baked/the-room-conversation-shelf-junolea.png", - "media/map/baked/tree-top-ctron-junolea.png" - ] - }, - "installation": [ - { - "type": "modZip", - "url": "https://github.com/Inevitabilis/CC-Junolea/archive/refs/tags/v1.0.0.zip", - "source": "CC-Junolea-1.0.0", - "hash": { - "sha256": "16b9dbbfa21c9fa18d8ed3048c842521039f0713c6cfc2a17f2d2e89f79bea2f" - } - } - ] - }, - "localize-me": { - "metadata": { - "name": "Localize Me", - "license": "MIT", - "homepage": "https://github.com/L-Sherry/Localize-me", - "description": "Add support for more locales, languages and translations", - "postload": "mod.js", - "module": true, - "version": "0.6.0" - }, - "metadataCCMod": { - "id": "localize-me", - "version": "0.6.0", - "title": { - "en_US": "Localize Me", - "fr_FR": "Régionalisez-Moi", - "de_DE": "Lokalisiert mich" - }, - "description": { - "en_US": "Add support for more locales, languages and translations", - "fr_FR": "Ajoute la gestion de plus de locales, de languages et de traductions", - "de_DE": "Fügt Unterstützung für mehr Lokalen, Sprachen und Übersetzungen hinzu", - "ru_RU": "Мод для создания дополнительных региональных настроек, языков и переводов" - }, - "license": "MIT", - "homepage": "https://github.com/L-Sherry/Localize-Me", - "postload": "mod.js" + "homepage": "https://gitlab.com/20kdc/ccprestartapi", + "version": "0.4.2", + "postload": "postload.js", + "prestart": "prestart.js", + "module": true }, "installation": [ { "type": "modZip", - "url": "https://github.com/L-Sherry/Localize-me/archive/v0.6.0.zip", - "source": "Localize-me-0.6.0", + "url": "https://github.com/CCDirectLink/item-api/archive/refs/tags/v0.4.2.zip", + "source": "item-api-0.4.2", "hash": { - "sha256": "98da8afe115cb453331ba96a70711bf22453703a921d1578b239aff14084702b" + "sha256": "68d7f15b5e3c4264831dfe89a3ad2ad819825819d98aa529cee03e73312a6b21" } } ] }, - "logic-steps": { + "jetpack": { "metadata": { - "name": "Logic Steps", - "version": "1.0.1", - "description": "Adds a couple custom patch steps that allow for control of logic flow.", - "homepage": "https://github.com/lexisother/logic-steps", + "name": "jetpack", + "version": "0.2.0", + "license": "MIT", + "homepage": "https://github.com/CCDirectLink/CCJetpack", + "description": "Turns your CTRL key into a jetpack", "module": true, - "postload": "postload.js", + "prestart": "prestart.js", + "main": "poststart.js", "ccmodDependencies": { - "ccloader": ">=2.22.1" - } - }, - "metadataCCMod": { - "id": "logic-steps", - "version": "1.0.1", - "title": "Logic Steps", - "description": "Adds a couple custom patch steps that allow for control of logic flow.", - "postload": "postload.js", - "dependencies": { - "ccloader": ">=2.22.1" + "crosscode": "^1.1.0" } }, "installation": [ { - "type": "modZip", - "url": "https://github.com/lexisother/logic-steps/archive/refs/tags/v1.0.1.zip", - "source": "logic-steps-1.0.1", + "type": "ccmod", + "url": "https://github.com/CCDirectLink/CCJetpack/releases/download/v0.2.0/CCJetpack.ccmod", "hash": { - "sha256": "9fcde08ef4a637f3393f23a53b70bfdcc6805de2f21f6234f416d36691defd6a" + "sha256": "68932f3747b9cddc473c090d1f30fc1595354e6262cb1074590bf71c27f86fbb" } }, { - "type": "ccmod", - "url": "https://github.com/lexisother/logic-steps/releases/download/v1.0.1/logic-steps.ccmod", + "type": "modZip", + "url": "https://github.com/CCDirectLink/CCJetpack/archive/v0.2.0.zip", + "source": "CCJetpack-0.2.0", "hash": { - "sha256": "79ac505e9f8f5f948ecb1f9e33b8da330a352f95eee5d381dd697bd3cd93f730" + "sha256": "49841feae2ddf8e42bce5dec6d712e2fb714ac66e8d8b3d8f0b94eaa47674a71" } } ] @@ -1582,62 +1792,6 @@ } ] }, - "nine-rooms": { - "metadata": { - "name": "nine-rooms", - "version": "0.1.0", - "description": "A little piece of lost history.", - "homepage": "https://github.com/Pyrocorvid/CCNineRooms" - }, - "metadataCCMod": { - "id": "nine-rooms", - "version": "0.1.0", - "title": "Nine Rooms", - "description": "A little piece of lost history.", - "homepage": "https://github.com/Pyrocorvid/CCNineRooms" - }, - "installation": [ - { - "type": "modZip", - "url": "https://github.com/Pyrocorvid/CCNineRooms/archive/refs/tags/v1.0.1.zip", - "source": "CCNineRooms-1.0.1/nine-rooms", - "hash": { - "sha256": "2a62c02cc322ef7a79c49352a5ab8b4098dfa2f10b2f8cb6b989ab2f6444822d" - } - } - ] - }, - "past-booster": { - "metadata": { - "name": "past-booster", - "version": "0.1.0", - "description": "Makes the Nine Rooms mod a little more... post-gamey.", - "homepage": "https://github.com/Pyrocorvid/CCNineRooms", - "ccmodDependencies": { - "nine-rooms": ">=0.1.0" - } - }, - "metadataCCMod": { - "id": "past-booster", - "version": "0.1.0", - "title": "Past Booster", - "description": "Makes the Nine Rooms mod a little more... post-gamey.", - "homepage": "https://github.com/Pyrocorvid/CCNineRooms", - "dependencies": { - "nine-rooms": ">=0.1.0" - } - }, - "installation": [ - { - "type": "modZip", - "url": "https://github.com/Pyrocorvid/CCNineRooms/archive/refs/tags/v1.0.1.zip", - "source": "CCNineRooms-1.0.1/past-booster", - "hash": { - "sha256": "2a62c02cc322ef7a79c49352a5ab8b4098dfa2f10b2f8cb6b989ab2f6444822d" - } - } - ] - }, "readable-saves": { "metadata": { "name": "readable-saves", @@ -1698,51 +1852,6 @@ } ] }, - "timer": { - "metadata": { - "name": "timer", - "plugin": "plugin.js", - "homepage": "https://github.com/CCDirectLink/CCTimer", - "description": "A speedrun timer for CrossCode.", - "scripts": { - "start": "esbuild --target=es2018 --format=esm --platform=node --bundle --sourcemap=inline --outfile=plugin.js src/plugin.js", - "watch": "esbuild --target=es2018 --format=esm --platform=node --bundle --sourcemap=inline --watch --outfile=plugin.js src/plugin.js" - }, - "version": "3.0.0", - "ccmodDependencies": { - "ccloader": "^2.19.0", - "Simplify": "^2.9.0" - }, - "devDependencies": { - "esbuild": "^0.19.1", - "ws": "^8.13.0" - } - }, - "metadataCCMod": { - "id": "timer", - "version": "3.0.0", - "title": "CCTimer", - "description": "A speedrun timer for CrossCode.", - "icons": { - "24": "icon.png" - }, - "plugin": "plugin.js", - "dependencies": { - "ccloader": "^2.19.0", - "Simplify": "^2.9.0" - } - }, - "installation": [ - { - "type": "modZip", - "url": "https://github.com/CCDirectLink/CCTimer/releases/download/v3.0.0/CCTimer.zip", - "source": "CCTimer", - "hash": { - "sha256": "7ba4327609e3ff0b29d2921af7d9255fbeae9dfe3d4fc035f93e99312f7ff2bb" - } - } - ] - }, "timewalker": { "metadata": { "name": "timewalker", @@ -1792,114 +1901,5 @@ } } ] - }, - "world-map-overhaul": { - "metadata": { - "name": "world-map-overhaul", - "ccmodHumanName": "World map overhaul", - "description": "A better world map", - "homepage": "https://github.com/dmitmel/cc-world-map-overhaul", - "version": "1.1.2", - "prestart": "prestart.js", - "assets": [ - "media/gui/better-world-map/overlays/colored/arid.png", - "media/gui/better-world-map/overlays/colored/autumn-area.png", - "media/gui/better-world-map/overlays/colored/autumn-fall.png", - "media/gui/better-world-map/overlays/colored/beach.png", - "media/gui/better-world-map/overlays/colored/bergen-trails.png", - "media/gui/better-world-map/overlays/colored/final-dng.png", - "media/gui/better-world-map/overlays/colored/forest.png", - "media/gui/better-world-map/overlays/colored/heat-area.png", - "media/gui/better-world-map/overlays/colored/jungle.png", - "media/gui/better-world-map/overlays/colored/rookie-harbor.png", - "media/gui/better-world-map/overlays/default/arid.png", - "media/gui/better-world-map/overlays/default/autumn-area.png", - "media/gui/better-world-map/overlays/default/autumn-fall.png", - "media/gui/better-world-map/overlays/default/beach.png", - "media/gui/better-world-map/overlays/default/bergen-trails.png", - "media/gui/better-world-map/overlays/default/final-dng.png", - "media/gui/better-world-map/overlays/default/forest.png", - "media/gui/better-world-map/overlays/default/heat-area.png", - "media/gui/better-world-map/overlays/default/jungle.png", - "media/gui/better-world-map/overlays/default/rookie-harbor.png", - "media/gui/better-world-map/overlays/reveal/arid.png", - "media/gui/better-world-map/overlays/reveal/autumn-area.png", - "media/gui/better-world-map/overlays/reveal/autumn-fall.png", - "media/gui/better-world-map/overlays/reveal/beach.png", - "media/gui/better-world-map/overlays/reveal/bergen-trails.png", - "media/gui/better-world-map/overlays/reveal/final-dng.png", - "media/gui/better-world-map/overlays/reveal/forest.png", - "media/gui/better-world-map/overlays/reveal/heat-area.png", - "media/gui/better-world-map/overlays/reveal/jungle.png", - "media/gui/better-world-map/overlays/reveal/rookie-harbor.png", - "media/gui/better-world-map/patched-area-buttons.png", - "media/gui/better-world-map/sea.png" - ] - }, - "metadataCCMod": { - "id": "world-map-overhaul", - "version": "1.1.2", - "title": "World map overhaul", - "description": { - "en_US": "A better world map", - "ru_RU": "Улучшенная карта мира" - }, - "homepage": "https://github.com/dmitmel/cc-world-map-overhaul", - "icons": { - "24": "icon24.png" - }, - "prestart": "prestart.js", - "assets": [ - "media/gui/better-world-map/overlays/colored/arid.png", - "media/gui/better-world-map/overlays/colored/autumn-area.png", - "media/gui/better-world-map/overlays/colored/autumn-fall.png", - "media/gui/better-world-map/overlays/colored/beach.png", - "media/gui/better-world-map/overlays/colored/bergen-trails.png", - "media/gui/better-world-map/overlays/colored/final-dng.png", - "media/gui/better-world-map/overlays/colored/forest.png", - "media/gui/better-world-map/overlays/colored/heat-area.png", - "media/gui/better-world-map/overlays/colored/jungle.png", - "media/gui/better-world-map/overlays/colored/rookie-harbor.png", - "media/gui/better-world-map/overlays/default/arid.png", - "media/gui/better-world-map/overlays/default/autumn-area.png", - "media/gui/better-world-map/overlays/default/autumn-fall.png", - "media/gui/better-world-map/overlays/default/beach.png", - "media/gui/better-world-map/overlays/default/bergen-trails.png", - "media/gui/better-world-map/overlays/default/final-dng.png", - "media/gui/better-world-map/overlays/default/forest.png", - "media/gui/better-world-map/overlays/default/heat-area.png", - "media/gui/better-world-map/overlays/default/jungle.png", - "media/gui/better-world-map/overlays/default/rookie-harbor.png", - "media/gui/better-world-map/overlays/reveal/arid.png", - "media/gui/better-world-map/overlays/reveal/autumn-area.png", - "media/gui/better-world-map/overlays/reveal/autumn-fall.png", - "media/gui/better-world-map/overlays/reveal/beach.png", - "media/gui/better-world-map/overlays/reveal/bergen-trails.png", - "media/gui/better-world-map/overlays/reveal/final-dng.png", - "media/gui/better-world-map/overlays/reveal/forest.png", - "media/gui/better-world-map/overlays/reveal/heat-area.png", - "media/gui/better-world-map/overlays/reveal/jungle.png", - "media/gui/better-world-map/overlays/reveal/rookie-harbor.png", - "media/gui/better-world-map/patched-area-buttons.png", - "media/gui/better-world-map/sea.png" - ] - }, - "installation": [ - { - "type": "ccmod", - "url": "https://github.com/dmitmel/cc-world-map-overhaul/releases/download/v1.1.2/world-map-overhaul_v1.1.2.ccmod", - "hash": { - "sha256": "78aa2526039c77e69252ccb3f3ff0e0ba6d4ba6c18a10a900002e6981d024a05" - } - }, - { - "type": "modZip", - "url": "https://github.com/dmitmel/cc-world-map-overhaul/releases/download/v1.1.2/world-map-overhaul_v1.1.2.zip", - "source": "world-map-overhaul", - "hash": { - "sha256": "03aa7cf573166a5a4b12c703bd63d7fd92f9bcf403ddc65cc7fd60b6ce2a97ca" - } - } - ] } } \ No newline at end of file From 1e5052d48431ab731cd74d1081bf5c1c836b1593 Mon Sep 17 00:00:00 2001 From: krypek Date: Wed, 7 Feb 2024 18:29:22 +0100 Subject: [PATCH 006/196] Revert "Fix npDatabase.json ordering" This reverts commit f3e1d9b100fa0330efe263fa43eab0fa0fa97bcd. --- build/src/db.ts | 2 +- mods.json | 508 ++++++------- npDatabase.json | 1802 +++++++++++++++++++++++------------------------ 3 files changed, 1156 insertions(+), 1156 deletions(-) diff --git a/build/src/db.ts b/build/src/db.ts index 2914c918..cf7e987a 100644 --- a/build/src/db.ts +++ b/build/src/db.ts @@ -126,7 +126,7 @@ function getInstallation(installations: InstallMethod[]): { url: string; hash: { } async function buildEntry(result: PackageDB, meta: PkgMetadata | undefined, ccmod: PkgCCMod | undefined, inputs: InputLocation[]): Promise { - result[getStringFromLocalisedString(ccmod?.title || meta!.name)] = { + result[ccmod?.id || meta!.name] = { metadata: meta, metadataCCMod: ccmod, installation: await generateInstallations(inputs), diff --git a/mods.json b/mods.json index e50cf8bb..190177ca 100644 --- a/mods.json +++ b/mods.json @@ -20,21 +20,6 @@ }, "version": "1.0.0" }, - "CC-OldMedia": { - "name": "CC-OldMedia", - "description": "A mod that brings back some old title screen assets.", - "page": [ - { - "name": "GitHub", - "url": "https://github.com/lexisother/CCOldMedia" - } - ], - "archive_link": "https://github.com/lexisother/CCOldMedia/releases/download/v1.0.0/CCOldMedia.ccmod", - "hash": { - "sha256": "0791db068d46cf394fc3a512cf3a5bca7744a1550d1e72d07adb39bcea097703" - }, - "version": "1.0.0" - }, "CCJoystickExt": { "name": "CCJoystickExt", "description": "Adds gamepad bindings on L3 and R3 to easily swap elements", @@ -55,21 +40,6 @@ }, "version": "1.1.3" }, - "CCPostDLC": { - "name": "CCPostDLC", - "description": "Adjusts the game to continue after completing the DLC.", - "page": [ - { - "name": "GitHub", - "url": "https://github.com/lexisother/CCPostDLC" - } - ], - "archive_link": "https://github.com/lexisother/CCPostDLC/releases/download/v1.0.0/CCPostDLC.ccmod", - "hash": { - "sha256": "eec76c279f1683b415e4f06186d6d4d8ae6e9d247cec845bce1e6a7e6d69cea0" - }, - "version": "1.0.0" - }, "CCPresetRevival": { "name": "Preset revival", "description": "This brings back the preset menu, which allows you to start the game at a specific point.", @@ -100,36 +70,6 @@ }, "version": "0.0.8" }, - "CCTimer": { - "name": "CCTimer", - "description": "A speedrun timer for CrossCode.", - "page": [ - { - "name": "GitHub", - "url": "https://github.com/CCDirectLink/CCTimer" - } - ], - "archive_link": "https://github.com/CCDirectLink/CCTimer/releases/download/v3.0.0/CCTimer.zip", - "hash": { - "sha256": "7ba4327609e3ff0b29d2921af7d9255fbeae9dfe3d4fc035f93e99312f7ff2bb" - }, - "version": "3.0.0" - }, - "Capped Stats": { - "name": "Capped Stats", - "description": "Adds a visual stat cap - see your stats for what they really aren't!", - "page": [ - { - "name": "GitHub", - "url": "https://github.com/EL20202/cc-uncapped-stats" - } - ], - "archive_link": "https://github.com/EL20202/cc-capped-stats/releases/download/v1.0.0/cc-capped-stats.ccmod", - "hash": { - "sha256": "34c11a440d7af0857728619e17c7143102cec55a1e16b3dd5c3c16935b8965c2" - }, - "version": "1.0.0" - }, "Character Swap": { "name": "Character Swap", "description": "Play as a variety of characters previously unavailable.", @@ -175,21 +115,6 @@ }, "version": "1.0.0" }, - "CrossCode Extra Dialogue": { - "name": "CrossCode Extra Dialogue", - "description": "Adds more lore-friendly dialogue for party members.", - "page": [ - { - "name": "GitHub", - "url": "https://github.com/Paradragon/cc-extra-dialogue" - } - ], - "archive_link": "https://github.com/Paradragon/cc-extra-dialogue/releases/download/v1.0.0/cc-extra-dialogue.ccmod", - "hash": { - "sha256": "8ab162b803f9a663f5677b058fafcf07218145f38f7a90cbdcf05845b0a5e329" - }, - "version": "1.0.0" - }, "Discord": { "name": "Rich Presence for Discord", "description": "Show off your CrossCode skills in Discord", @@ -205,16 +130,6 @@ }, "version": "1.0.0" }, - "EL's Tweaks": { - "name": "EL's Tweaks", - "description": "A coremod full of useful functionality for modders, as well as many tweaks for players.", - "page": [], - "archive_link": "https://github.com/EL20202/el-crosscode-tweaks/releases/download/v0.5.8/els-tweaks.ccmod", - "hash": { - "sha256": "14a6fa05766def657bed910c7c76b67685ac166771dc9ad82e6d6628f782db77" - }, - "version": "0.5.8" - }, "Element Boss": { "name": "Element Boss", "description": "Adds a new boss battle to the game.", @@ -240,47 +155,6 @@ }, "version": "1.0.2" }, - "Fancy crash": { - "name": "Fancy crash", - "description": "Better crash message", - "license": "GPLv3", - "page": [ - { - "name": "GitHub", - "url": "https://github.com/krypciak/cc-fancy-crash" - } - ], - "archive_link": "https://github.com/krypciak/cc-fancy-crash/releases/download/v1.0.7/cc-fancy-crash-1.0.7.ccmod", - "hash": { - "sha256": "edc33bc5c294a9573a49eea1c4080a458c70a9e9e8e1a6f960e3d798ce935503" - }, - "version": "1.0.7" - }, - "Font Utilities": { - "name": "Font Utilities", - "description": "Adds various new font colors!", - "page": [], - "archive_link": "https://github.com/EL20202/crosscode-font-utils/releases/download/v1.1.0/font-utils.ccmod", - "hash": { - "sha256": "fc9aa9aa56336f28815abc06b26dbde42c34885190d0221c6f6c6d3f5b498148" - }, - "version": "1.1.0" - }, - "French": { - "name": "French", - "description": "CrossCode in french !", - "page": [ - { - "name": "GitHub", - "url": "https://github.com/L-Sherry/French-CC" - } - ], - "archive_link": "https://github.com/L-Sherry/French-CC/archive/v1.4.0.zip", - "hash": { - "sha256": "30a9febd011fb056426a1d0e8d9f7f50b8dd7310b80a21f1c6e2d3a6c2a143ff" - }, - "version": "1.4.0" - }, "Hadouken": { "name": "Hadouken", "description": "A mod. (Description not available; contact mod author and have them add a description to their package.json file)", @@ -291,22 +165,6 @@ }, "version": "1.0.0" }, - "Junolea Skin": { - "name": "Junolea Skin", - "description": "Adds a skin which makes Lea look like Juno", - "license": "CC-BY-4.0", - "page": [ - { - "name": "GitHub", - "url": "https://github.com/Inevitabilis/CC-Junolea" - } - ], - "archive_link": "https://github.com/Inevitabilis/CC-Junolea/archive/refs/tags/v1.0.0.zip", - "hash": { - "sha256": "16b9dbbfa21c9fa18d8ed3048c842521039f0713c6cfc2a17f2d2e89f79bea2f" - }, - "version": "1.0.0" - }, "Kit Player": { "name": "Kit Player", "description": "Swaps Lea's sprites to play as Kit. A sphereomancer fox.", @@ -347,154 +205,180 @@ }, "version": "1.0.1" }, - "Localize Me": { - "name": "Localize Me", - "description": "Add support for more locales, languages and translations", - "license": "MIT", + "New game++": { + "name": "New game++", + "description": "A small collection of addons to CrossCode's NG+.", "page": [ { "name": "GitHub", - "url": "https://github.com/L-Sherry/Localize-Me" + "url": "https://github.com/CCDirectLink/CCNewGamePP" } ], - "archive_link": "https://github.com/L-Sherry/Localize-me/archive/v0.6.0.zip", + "archive_link": "https://github.com/CCDirectLink/CCNewGamePP/releases/download/v1.3.0/CCNewGamePP.ccmod", "hash": { - "sha256": "98da8afe115cb453331ba96a70711bf22453703a921d1578b239aff14084702b" + "sha256": "a9ccbc44306b43f8b3d2adf1f121e39b14057227961d8881bf831e63aca3a685" }, - "version": "0.6.0" + "version": "1.3.0" }, - "Logic Steps": { - "name": "Logic Steps", - "description": "Adds a couple custom patch steps that allow for control of logic flow.", + "Palicat": { + "name": "Palicat", + "description": "A mod that implement the palico from monster hunter world into the game.", "page": [ { "name": "GitHub", - "url": "https://github.com/lexisother/logic-steps" + "url": "https://github.com/rioreur/palicat" } ], - "archive_link": "https://github.com/lexisother/logic-steps/releases/download/v1.0.1/logic-steps.ccmod", + "archive_link": "https://github.com/rioreur/palicat/archive/1.0.4.zip", "hash": { - "sha256": "79ac505e9f8f5f948ecb1f9e33b8da330a352f95eee5d381dd697bd3cd93f730" + "sha256": "75d84d8a190bece945d20f2fda3518c06cdbdd57f209b91471f9815feffb4b70" }, - "version": "1.0.1" + "version": "1.0.4" }, - "New game++": { - "name": "New game++", - "description": "A small collection of addons to CrossCode's NG+.", + "Qine": { + "name": "Qine", + "description": "Adds the character Qine as a party member and PvP duel.", "page": [ { "name": "GitHub", - "url": "https://github.com/CCDirectLink/CCNewGamePP" + "url": "https://github.com/sgrunt/qine" } ], - "archive_link": "https://github.com/CCDirectLink/CCNewGamePP/releases/download/v1.3.0/CCNewGamePP.ccmod", + "archive_link": "https://github.com/sgrunt/qine/archive/0.2.7.zip", "hash": { - "sha256": "a9ccbc44306b43f8b3d2adf1f121e39b14057227961d8881bf831e63aca3a685" + "sha256": "73bec599fdb63f6b0504d1ea6b549904daf97f00c8667f6bd6378c91560d8c29" }, - "version": "1.3.0" + "version": "0.2.7" }, - "Nine Rooms": { - "name": "Nine Rooms", - "description": "A little piece of lost history.", + "Restart Button": { + "name": "Restart Button", + "description": "Adds a button to restart the game without memory leaks", + "license": "MIT", "page": [ { "name": "GitHub", - "url": "https://github.com/Pyrocorvid/CCNineRooms" + "url": "https://github.com/bluecheetah001/CCRestartButton" } ], - "archive_link": "https://github.com/Pyrocorvid/CCNineRooms/archive/refs/tags/v1.0.1.zip", + "archive_link": "https://github.com/CCDirectLink/CCRestartButton/archive/refs/tags/v1.1.3.zip", "hash": { - "sha256": "2a62c02cc322ef7a79c49352a5ab8b4098dfa2f10b2f8cb6b989ab2f6444822d" + "sha256": "6a31aba45a5df4a498901721fa14ed673677d1010707cd9146cee7c41804ad5a" }, - "version": "0.1.0" + "version": "1.1.3" }, - "Palicat": { - "name": "Palicat", - "description": "A mod that implement the palico from monster hunter world into the game.", + "Simplify": { + "name": "Simplify", + "description": "A mod. (Description not available; contact mod author and have them add a description to their package.json file)", + "page": [], + "archive_link": "https://github.com/CCDirectLink/CCLoader/archive/refs/tags/v2.22.1/v2.12.1.zip", + "hash": { + "sha256": "7ab3d850b5368dda4593318fd3e957e0bc46128e25844eeda97ca0eec16b343a" + }, + "version": "2.12.1" + }, + "blades": { + "name": "blades", + "description": "Asset which replaces balls with blades, now for all classes!", + "page": [], + "archive_link": "https://github.com/CCDirectLink/Blades/archive/1.5.0.zip", + "hash": { + "sha256": "aa1fe7bdc217a8c27d91496b48f2642cea243ed158dafe32251834536666a25a" + }, + "version": "1.5.0" + }, + "cc-capped-stats": { + "name": "Capped Stats", + "description": "Adds a visual stat cap - see your stats for what they really aren't!", "page": [ { "name": "GitHub", - "url": "https://github.com/rioreur/palicat" + "url": "https://github.com/EL20202/cc-uncapped-stats" } ], - "archive_link": "https://github.com/rioreur/palicat/archive/1.0.4.zip", + "archive_link": "https://github.com/EL20202/cc-capped-stats/releases/download/v1.0.0/cc-capped-stats.ccmod", "hash": { - "sha256": "75d84d8a190bece945d20f2fda3518c06cdbdd57f209b91471f9815feffb4b70" + "sha256": "34c11a440d7af0857728619e17c7143102cec55a1e16b3dd5c3c16935b8965c2" }, - "version": "1.0.4" + "version": "1.0.0" }, - "Past Booster": { - "name": "Past Booster", - "description": "Makes the Nine Rooms mod a little more... post-gamey.", + "cc-diorbital-menu": { + "name": "cc-diorbital-menu", + "description": "Extends the quick menu", + "license": "GPLv3", "page": [ { "name": "GitHub", - "url": "https://github.com/Pyrocorvid/CCNineRooms" + "url": "https://github.com/krypciak/cc-diorbital-menu" } ], - "archive_link": "https://github.com/Pyrocorvid/CCNineRooms/archive/refs/tags/v1.0.1.zip", + "archive_link": "https://github.com/krypciak/cc-diorbital-menu/releases/download/v1.0.3/cc-diorbital-menu-1.0.3.ccmod", "hash": { - "sha256": "2a62c02cc322ef7a79c49352a5ab8b4098dfa2f10b2f8cb6b989ab2f6444822d" + "sha256": "5c5246f43f6ae7a9f3c5eb26c4b40c5a3a8cab224740f881ade7392c897d712f" }, - "version": "0.1.0" + "version": "1.0.3" }, - "Qine": { - "name": "Qine", - "description": "Adds the character Qine as a party member and PvP duel.", + "cc-extra-dialogue": { + "name": "CrossCode Extra Dialogue", + "description": "Adds more lore-friendly dialogue for party members.", "page": [ { "name": "GitHub", - "url": "https://github.com/sgrunt/qine" + "url": "https://github.com/Paradragon/cc-extra-dialogue" } ], - "archive_link": "https://github.com/sgrunt/qine/archive/0.2.7.zip", + "archive_link": "https://github.com/Paradragon/cc-extra-dialogue/releases/download/v1.0.0/cc-extra-dialogue.ccmod", "hash": { - "sha256": "73bec599fdb63f6b0504d1ea6b549904daf97f00c8667f6bd6378c91560d8c29" + "sha256": "8ab162b803f9a663f5677b058fafcf07218145f38f7a90cbdcf05845b0a5e329" }, - "version": "0.2.7" + "version": "1.0.0" }, - "QuickInfo EXP Viewer": { - "name": "QuickInfo EXP Viewer", - "description": "Shows the EXP the enemy will give you in the quickinfo popup.", + "cc-fancy-crash": { + "name": "Fancy crash", + "description": "Better crash message", + "license": "GPLv3", "page": [ { "name": "GitHub", - "url": "https://github.com/lexisother/cc-quickinfo-exp" + "url": "https://github.com/krypciak/cc-fancy-crash" } ], - "archive_link": "https://github.com/lexisother/cc-quickinfo-exp/releases/download/v1.0.1/cc-quickinfo-exp.ccmod", + "archive_link": "https://github.com/krypciak/cc-fancy-crash/releases/download/v1.0.7/cc-fancy-crash-1.0.7.ccmod", "hash": { - "sha256": "fcdeeba04a3c3e210353a23031c4396dfa33876f770347e550103a4308e3685a" + "sha256": "edc33bc5c294a9573a49eea1c4080a458c70a9e9e8e1a6f960e3d798ce935503" }, - "version": "1.0.0" + "version": "1.0.7" }, - "Restart Button": { - "name": "Restart Button", - "description": "Adds a button to restart the game without memory leaks", - "license": "MIT", + "cc-oldmedia": { + "name": "CC-OldMedia", + "description": "A mod that brings back some old title screen assets.", "page": [ { "name": "GitHub", - "url": "https://github.com/bluecheetah001/CCRestartButton" + "url": "https://github.com/lexisother/CCOldMedia" } ], - "archive_link": "https://github.com/CCDirectLink/CCRestartButton/archive/refs/tags/v1.1.3.zip", + "archive_link": "https://github.com/lexisother/CCOldMedia/releases/download/v1.0.0/CCOldMedia.ccmod", "hash": { - "sha256": "6a31aba45a5df4a498901721fa14ed673677d1010707cd9146cee7c41804ad5a" + "sha256": "0791db068d46cf394fc3a512cf3a5bca7744a1550d1e72d07adb39bcea097703" }, - "version": "1.1.3" + "version": "1.0.0" }, - "Simplify": { - "name": "Simplify", - "description": "A mod. (Description not available; contact mod author and have them add a description to their package.json file)", - "page": [], - "archive_link": "https://github.com/CCDirectLink/CCLoader/archive/refs/tags/v2.22.1/v2.12.1.zip", + "cc-quickinfo-exp": { + "name": "QuickInfo EXP Viewer", + "description": "Shows the EXP the enemy will give you in the quickinfo popup.", + "page": [ + { + "name": "GitHub", + "url": "https://github.com/lexisother/cc-quickinfo-exp" + } + ], + "archive_link": "https://github.com/lexisother/cc-quickinfo-exp/releases/download/v1.0.1/cc-quickinfo-exp.ccmod", "hash": { - "sha256": "7ab3d850b5368dda4593318fd3e957e0bc46128e25844eeda97ca0eec16b343a" + "sha256": "fcdeeba04a3c3e210353a23031c4396dfa33876f770347e550103a4308e3685a" }, - "version": "2.12.1" + "version": "1.0.0" }, - "Uncapped Stats": { + "cc-uncapped-stats": { "name": "Uncapped Stats", "description": "Removes! the visual stat caps - see your stats for what they really are!", "page": [ @@ -509,7 +393,7 @@ }, "version": "1.1.1" }, - "Vim Command Mode": { + "cc-vim": { "name": "Vim Command Mode", "description": "Adds a popup command prompt", "license": "GNU GPLv3", @@ -525,46 +409,36 @@ }, "version": "1.5.4" }, - "World map overhaul": { - "name": "World map overhaul", - "description": "A better world map", + "ccpostdlc": { + "name": "CCPostDLC", + "description": "Adjusts the game to continue after completing the DLC.", "page": [ { "name": "GitHub", - "url": "https://github.com/dmitmel/cc-world-map-overhaul" + "url": "https://github.com/lexisother/CCPostDLC" } ], - "archive_link": "https://github.com/dmitmel/cc-world-map-overhaul/releases/download/v1.1.2/world-map-overhaul_v1.1.2.ccmod", - "hash": { - "sha256": "78aa2526039c77e69252ccb3f3ff0e0ba6d4ba6c18a10a900002e6981d024a05" - }, - "version": "1.1.2" - }, - "blades": { - "name": "blades", - "description": "Asset which replaces balls with blades, now for all classes!", - "page": [], - "archive_link": "https://github.com/CCDirectLink/Blades/archive/1.5.0.zip", + "archive_link": "https://github.com/lexisother/CCPostDLC/releases/download/v1.0.0/CCPostDLC.ccmod", "hash": { - "sha256": "aa1fe7bdc217a8c27d91496b48f2642cea243ed158dafe32251834536666a25a" + "sha256": "eec76c279f1683b415e4f06186d6d4d8ae6e9d247cec845bce1e6a7e6d69cea0" }, - "version": "1.5.0" + "version": "1.0.0" }, - "cc-diorbital-menu": { - "name": "cc-diorbital-menu", - "description": "Extends the quick menu", - "license": "GPLv3", + "crosscode-tweak-pack": { + "name": "dmitmel's tweak pack", + "description": "Micro-mods by dmitmel in a single 999-in-1 package, ranging from QoL tweaks to cheats.", + "license": "CC0-1.0", "page": [ { "name": "GitHub", - "url": "https://github.com/krypciak/cc-diorbital-menu" + "url": "https://github.com/dmitmel/crosscode-tweak-pack" } ], - "archive_link": "https://github.com/krypciak/cc-diorbital-menu/releases/download/v1.0.3/cc-diorbital-menu-1.0.3.ccmod", + "archive_link": "https://github.com/dmitmel/crosscode-tweak-pack/releases/download/v1.1.0/crosscode-tweak-pack_v1.1.0.zip", "hash": { - "sha256": "5c5246f43f6ae7a9f3c5eb26c4b40c5a3a8cab224740f881ade7392c897d712f" + "sha256": "0cc60fb1aeccdb7f664430feb222df8cbf0571a5c5359dcb689f1b551a983713" }, - "version": "1.0.3" + "version": "1.1.0" }, "cursedcode": { "name": "cursedcode", @@ -576,21 +450,15 @@ }, "version": "0.1.1" }, - "dmitmel's tweak pack": { - "name": "dmitmel's tweak pack", - "description": "Micro-mods by dmitmel in a single 999-in-1 package, ranging from QoL tweaks to cheats.", - "license": "CC0-1.0", - "page": [ - { - "name": "GitHub", - "url": "https://github.com/dmitmel/crosscode-tweak-pack" - } - ], - "archive_link": "https://github.com/dmitmel/crosscode-tweak-pack/releases/download/v1.1.0/crosscode-tweak-pack_v1.1.0.zip", + "el-tweaks": { + "name": "EL's Tweaks", + "description": "A coremod full of useful functionality for modders, as well as many tweaks for players.", + "page": [], + "archive_link": "https://github.com/EL20202/el-crosscode-tweaks/releases/download/v0.5.8/els-tweaks.ccmod", "hash": { - "sha256": "0cc60fb1aeccdb7f664430feb222df8cbf0571a5c5359dcb689f1b551a983713" + "sha256": "14a6fa05766def657bed910c7c76b67685ac166771dc9ad82e6d6628f782db77" }, - "version": "1.1.0" + "version": "0.5.8" }, "extendable-severed-heads": { "name": "extendable-severed-heads", @@ -602,6 +470,31 @@ }, "version": "1.0.0" }, + "font-utils": { + "name": "Font Utilities", + "description": "Adds various new font colors!", + "page": [], + "archive_link": "https://github.com/EL20202/crosscode-font-utils/releases/download/v1.1.0/font-utils.ccmod", + "hash": { + "sha256": "fc9aa9aa56336f28815abc06b26dbde42c34885190d0221c6f6c6d3f5b498148" + }, + "version": "1.1.0" + }, + "french": { + "name": "French", + "description": "CrossCode in french !", + "page": [ + { + "name": "GitHub", + "url": "https://github.com/L-Sherry/French-CC" + } + ], + "archive_link": "https://github.com/L-Sherry/French-CC/archive/v1.4.0.zip", + "hash": { + "sha256": "30a9febd011fb056426a1d0e8d9f7f50b8dd7310b80a21f1c6e2d3a6c2a143ff" + }, + "version": "1.4.0" + }, "hardcoded-config-injector": { "name": "hardcoded-config-injector", "description": "A mod. (Description not available; contact mod author and have them add a description to their package.json file)", @@ -669,6 +562,53 @@ }, "version": "0.2.0" }, + "junolea": { + "name": "Junolea Skin", + "description": "Adds a skin which makes Lea look like Juno", + "license": "CC-BY-4.0", + "page": [ + { + "name": "GitHub", + "url": "https://github.com/Inevitabilis/CC-Junolea" + } + ], + "archive_link": "https://github.com/Inevitabilis/CC-Junolea/archive/refs/tags/v1.0.0.zip", + "hash": { + "sha256": "16b9dbbfa21c9fa18d8ed3048c842521039f0713c6cfc2a17f2d2e89f79bea2f" + }, + "version": "1.0.0" + }, + "localize-me": { + "name": "Localize Me", + "description": "Add support for more locales, languages and translations", + "license": "MIT", + "page": [ + { + "name": "GitHub", + "url": "https://github.com/L-Sherry/Localize-Me" + } + ], + "archive_link": "https://github.com/L-Sherry/Localize-me/archive/v0.6.0.zip", + "hash": { + "sha256": "98da8afe115cb453331ba96a70711bf22453703a921d1578b239aff14084702b" + }, + "version": "0.6.0" + }, + "logic-steps": { + "name": "Logic Steps", + "description": "Adds a couple custom patch steps that allow for control of logic flow.", + "page": [ + { + "name": "GitHub", + "url": "https://github.com/lexisother/logic-steps" + } + ], + "archive_link": "https://github.com/lexisother/logic-steps/releases/download/v1.0.1/logic-steps.ccmod", + "hash": { + "sha256": "79ac505e9f8f5f948ecb1f9e33b8da330a352f95eee5d381dd697bd3cd93f730" + }, + "version": "1.0.1" + }, "map-watch": { "name": "Map Watcher", "description": "A mod that automatically loads a map when changes are detected", @@ -719,6 +659,36 @@ }, "version": "1.0.1" }, + "nine-rooms": { + "name": "Nine Rooms", + "description": "A little piece of lost history.", + "page": [ + { + "name": "GitHub", + "url": "https://github.com/Pyrocorvid/CCNineRooms" + } + ], + "archive_link": "https://github.com/Pyrocorvid/CCNineRooms/archive/refs/tags/v1.0.1.zip", + "hash": { + "sha256": "2a62c02cc322ef7a79c49352a5ab8b4098dfa2f10b2f8cb6b989ab2f6444822d" + }, + "version": "0.1.0" + }, + "past-booster": { + "name": "Past Booster", + "description": "Makes the Nine Rooms mod a little more... post-gamey.", + "page": [ + { + "name": "GitHub", + "url": "https://github.com/Pyrocorvid/CCNineRooms" + } + ], + "archive_link": "https://github.com/Pyrocorvid/CCNineRooms/archive/refs/tags/v1.0.1.zip", + "hash": { + "sha256": "2a62c02cc322ef7a79c49352a5ab8b4098dfa2f10b2f8cb6b989ab2f6444822d" + }, + "version": "0.1.0" + }, "readable-saves": { "name": "Readable saves", "description": "Unencrypts the save file and adds an additional save format suitable for editing by hand", @@ -751,6 +721,21 @@ }, "version": "0.1.1" }, + "timer": { + "name": "CCTimer", + "description": "A speedrun timer for CrossCode.", + "page": [ + { + "name": "GitHub", + "url": "https://github.com/CCDirectLink/CCTimer" + } + ], + "archive_link": "https://github.com/CCDirectLink/CCTimer/releases/download/v3.0.0/CCTimer.zip", + "hash": { + "sha256": "7ba4327609e3ff0b29d2921af7d9255fbeae9dfe3d4fc035f93e99312f7ff2bb" + }, + "version": "3.0.0" + }, "timewalker": { "name": "timewalker", "description": "Lets you control time.", @@ -781,6 +766,21 @@ "sha256": "295b8019d74e0a9bf9a8ff9aa4b48d25694028bc727bc3a830daeb23b4efef3e" }, "version": "1.0.2" + }, + "world-map-overhaul": { + "name": "World map overhaul", + "description": "A better world map", + "page": [ + { + "name": "GitHub", + "url": "https://github.com/dmitmel/cc-world-map-overhaul" + } + ], + "archive_link": "https://github.com/dmitmel/cc-world-map-overhaul/releases/download/v1.1.2/world-map-overhaul_v1.1.2.ccmod", + "hash": { + "sha256": "78aa2526039c77e69252ccb3f3ff0e0ba6d4ba6c18a10a900002e6981d024a05" + }, + "version": "1.1.2" } } } \ No newline at end of file diff --git a/npDatabase.json b/npDatabase.json index b3e5fa74..082567cf 100644 --- a/npDatabase.json +++ b/npDatabase.json @@ -48,42 +48,6 @@ } ] }, - "CC-OldMedia": { - "metadata": { - "name": "CCOldMedia", - "version": "1.0.0", - "description": "A mod that brings back some old title screen assets.", - "homepage": "https://github.com/lexisother/CCOldMedia", - "module": true, - "prestart": "src/prestart.js", - "ccmodDependencies": {} - }, - "metadataCCMod": { - "id": "cc-oldmedia", - "version": "1.0.0", - "title": "CC-OldMedia", - "description": "A mod that brings back some old title screen assets.", - "homepage": "https://github.com/lexisother/CCOldMedia", - "prestart": "src/prestart.js" - }, - "installation": [ - { - "type": "modZip", - "url": "https://github.com/lexisother/CCOldMedia/archive/refs/tags/v1.0.0.zip", - "source": "CCOldMedia-1.0.0", - "hash": { - "sha256": "491263c26aefa8f366c135e2672c0214bb593059d44ddf22bebfc3a655f0b73e" - } - }, - { - "type": "ccmod", - "url": "https://github.com/lexisother/CCOldMedia/releases/download/v1.0.0/CCOldMedia.ccmod", - "hash": { - "sha256": "0791db068d46cf394fc3a512cf3a5bca7744a1550d1e72d07adb39bcea097703" - } - } - ] - }, "CCJoystickExt": { "metadata": { "name": "CCJoystickExt", @@ -125,47 +89,6 @@ } ] }, - "CCPostDLC": { - "metadata": { - "name": "CCPostDLC", - "version": "1.0.0", - "description": "Adjusts the game to continue after completing the DLC.", - "homepage": "https://github.com/lexisother/CCPostDLC", - "prestart": "src/prestart.js", - "ccmodDependencies": { - "crosscode": ">=1.4.0", - "post-game": ">=1.4.0" - } - }, - "metadataCCMod": { - "id": "ccpostdlc", - "version": "1.0.0", - "title": "CCPostDLC", - "description": "Adjusts the game to continue after completing the DLC.", - "homepage": "https://github.com/lexisother/CCPostDLC", - "dependencies": { - "crosscode": ">=1.4.0", - "post-game": ">=1.4.0" - } - }, - "installation": [ - { - "type": "modZip", - "url": "https://github.com/lexisother/CCPostDLC/archive/refs/tags/v1.0.0.zip", - "source": "CCPostDLC-1.0.0", - "hash": { - "sha256": "704877a8628bb3b6973e8adb22ca93bedd7db816b69a8b3c7d9d35301df63ac6" - } - }, - { - "type": "ccmod", - "url": "https://github.com/lexisother/CCPostDLC/releases/download/v1.0.0/CCPostDLC.ccmod", - "hash": { - "sha256": "eec76c279f1683b415e4f06186d6d4d8ae6e9d247cec845bce1e6a7e6d69cea0" - } - } - ] - }, "CCPresetRevival": { "metadata": { "name": "CCPresetRevival", @@ -212,92 +135,6 @@ } ] }, - "CCTimer": { - "metadata": { - "name": "timer", - "plugin": "plugin.js", - "homepage": "https://github.com/CCDirectLink/CCTimer", - "description": "A speedrun timer for CrossCode.", - "scripts": { - "start": "esbuild --target=es2018 --format=esm --platform=node --bundle --sourcemap=inline --outfile=plugin.js src/plugin.js", - "watch": "esbuild --target=es2018 --format=esm --platform=node --bundle --sourcemap=inline --watch --outfile=plugin.js src/plugin.js" - }, - "version": "3.0.0", - "ccmodDependencies": { - "ccloader": "^2.19.0", - "Simplify": "^2.9.0" - }, - "devDependencies": { - "esbuild": "^0.19.1", - "ws": "^8.13.0" - } - }, - "metadataCCMod": { - "id": "timer", - "version": "3.0.0", - "title": "CCTimer", - "description": "A speedrun timer for CrossCode.", - "icons": { - "24": "icon.png" - }, - "plugin": "plugin.js", - "dependencies": { - "ccloader": "^2.19.0", - "Simplify": "^2.9.0" - } - }, - "installation": [ - { - "type": "modZip", - "url": "https://github.com/CCDirectLink/CCTimer/releases/download/v3.0.0/CCTimer.zip", - "source": "CCTimer", - "hash": { - "sha256": "7ba4327609e3ff0b29d2921af7d9255fbeae9dfe3d4fc035f93e99312f7ff2bb" - } - } - ] - }, - "Capped Stats": { - "metadata": { - "name": "Capped Stats", - "version": "1.0.0", - "description": "big numbers are very scary. :( low numbers are not scary! :)", - "homepage": "https://github.com/EL20202/cc-uncapped-stats", - "module": true, - "prestart": "prestart.js", - "ccmodDependencies": {} - }, - "metadataCCMod": { - "id": "cc-capped-stats", - "version": "1.0.0", - "title": "Capped Stats", - "description": "Adds a visual stat cap - see your stats for what they really aren't!", - "prestart": "prestart.js", - "icons": { - "24": "icon.png" - }, - "dependencies": { - "ccloader": "^2.20.0" - } - }, - "installation": [ - { - "type": "ccmod", - "url": "https://github.com/EL20202/cc-capped-stats/releases/download/v1.0.0/cc-capped-stats.ccmod", - "hash": { - "sha256": "34c11a440d7af0857728619e17c7143102cec55a1e16b3dd5c3c16935b8965c2" - } - }, - { - "type": "modZip", - "url": "https://github.com/EL20202/cc-capped-stats/archive/refs/tags/v1.0.0.zip", - "source": "cc-capped-stats-1.0.0", - "hash": { - "sha256": "2d8876bae0fa566ad35b4f4d5db5c2b5d1a69c55b38e27aa337c2b0b666c20c1" - } - } - ] - }, "Character Swap": { "metadata": { "name": "Character Swap", @@ -389,36 +226,6 @@ } ] }, - "CrossCode Extra Dialogue": { - "metadata": { - "name": "cc-extra-dialogue", - "version": "1.0.0", - "ccmodHumanName": "CrossCode Extra Dialogue", - "description": "Adds more lore-friendly dialogue for party members.", - "homepage": "https://github.com/Paradragon/cc-extra-dialogue", - "prestart": "prestart.js" - }, - "metadataCCMod": { - "id": "cc-extra-dialogue", - "version": "1.0.0", - "title": "CrossCode Extra Dialogue", - "description": "Adds more lore-friendly dialogue for party members.", - "homepage": "https://github.com/Paradragon/cc-extra-dialogue", - "icons": { - "24": "icon.png" - }, - "prestart": "prestart.js" - }, - "installation": [ - { - "type": "ccmod", - "url": "https://github.com/Paradragon/cc-extra-dialogue/releases/download/v1.0.0/cc-extra-dialogue.ccmod", - "hash": { - "sha256": "8ab162b803f9a663f5677b058fafcf07218145f38f7a90cbdcf05845b0a5e329" - } - } - ] - }, "Discord": { "metadata": { "name": "Discord", @@ -444,40 +251,6 @@ } ] }, - "EL's Tweaks": { - "metadata": { - "name": "el-tweaks", - "displayName": "EL's Tweaks", - "version": "0.5.8", - "description": "A coremod full of useful functionality for modders, as well as many tweaks for players.", - "plugin": "./dist/plugin.js", - "ccmodDependencies": {}, - "devDependencies": { - "typescript": "^4.5.5", - "ultimate-crosscode-typedefs": "el20202/ultimate-crosscode-typedefs" - }, - "scripts": { - "build": "tsc --build", - "watch": "tsc --watch" - } - }, - "metadataCCMod": { - "id": "el-tweaks", - "version": "0.5.8", - "title": "EL's Tweaks", - "description": "A coremod full of useful functionality for modders, as well as many tweaks for players.", - "plugin": "./dist/plugin.js" - }, - "installation": [ - { - "type": "ccmod", - "url": "https://github.com/EL20202/el-crosscode-tweaks/releases/download/v0.5.8/els-tweaks.ccmod", - "hash": { - "sha256": "14a6fa05766def657bed910c7c76b67685ac166771dc9ad82e6d6628f782db77" - } - } - ] - }, "Element Boss": { "metadata": { "name": "Element Boss", @@ -521,142 +294,11 @@ } ] }, - "Fancy crash": { + "Hadouken": { "metadata": { - "name": "cc-fancy-crash", - "version": "1.0.7", - "description": "Better crash message", - "scripts": { - "start": "esbuild --target=es2018 --format=esm --platform=node --bundle --sourcemap=inline --outfile=plugin.js src/plugin.ts", - "watch": "esbuild --target=es2018 --format=esm --platform=node --bundle --sourcemap=inline --watch --outfile=plugin.js src/plugin.ts", - "build": "esbuild --target=es2018 --format=esm --platform=node --bundle --outfile='plugin.js' 'src/plugin.ts'", - "format": "prettier ./src -w" - }, - "author": "krypek", - "license": "GPLv3", - "homepage": "https://github.com/krypciak/cc-fancy-crash", - "devDependencies": { - "@types/node": "^11.6.0", - "@typescript-eslint/eslint-plugin": "^6.20.0", - "@typescript-eslint/parser": "^6.20.0", - "esbuild": "^0.20.0", - "typescript": "^5.3.3", - "ultimate-crosscode-typedefs": "github:krypciak/ultimate-crosscode-typedefs" - } - }, - "metadataCCMod": { - "id": "cc-fancy-crash", - "version": "1.0.7", - "title": "Fancy crash", - "description": "Better crash message", - "homepage": "https://github.com/krypciak/cc-fancy-crash", - "icons": { - "24": "icon/icon.png" - }, - "plugin": "plugin.js", - "dependencies": {} - }, - "installation": [ - { - "type": "modZip", - "url": "https://github.com/krypciak/cc-fancy-crash/archive/refs/tags/v1.0.7.zip", - "source": "cc-fancy-crash-1.0.7", - "hash": { - "sha256": "d1282639f2a76f518489ad19df412675d166735934045f6244b9f29fe1a6794a" - } - }, - { - "type": "ccmod", - "url": "https://github.com/krypciak/cc-fancy-crash/releases/download/v1.0.7/cc-fancy-crash-1.0.7.ccmod", - "hash": { - "sha256": "edc33bc5c294a9573a49eea1c4080a458c70a9e9e8e1a6f960e3d798ce935503" - } - } - ] - }, - "Font Utilities": { - "metadata": { - "name": "font-utils", - "displayName": "Font Utilities", - "version": "1.1.0", - "description": "Adds various new font colors!", - "prestart": "prestart.js" - }, - "metadataCCMod": { - "id": "font-utils", - "version": "1.1.0", - "title": "Font Utilities", - "description": "Adds various new font colors!", - "prestart": "prestart.js" - }, - "installation": [ - { - "type": "modZip", - "url": "https://github.com/EL20202/crosscode-font-utils/archive/refs/tags/v1.1.0.zip", - "source": "crosscode-font-utils-1.1.0", - "hash": { - "sha256": "3eec3eabd41908b528e97a4920df3cd39dba42a29251a96b9076307f148c8bfd" - } - }, - { - "type": "ccmod", - "url": "https://github.com/EL20202/crosscode-font-utils/releases/download/v1.1.0/font-utils.ccmod", - "hash": { - "sha256": "fc9aa9aa56336f28815abc06b26dbde42c34885190d0221c6f6c6d3f5b498148" - } - } - ] - }, - "French": { - "metadata": { - "name": "French", - "description": "CrossCode en français !", - "homepage": "https://github.com/L-Sherry/French-CC", - "postload": "mod.js", - "module": true, - "version": "1.4.0", - "ccmodDependencies": { - "Localize Me": ">=0.5 <1" - } - }, - "metadataCCMod": { - "id": "french", - "version": "1.4.0", - "title": { - "en_US": "French", - "fr_FR": "Français", - "de_DE": "Französisch" - }, - "description": { - "en_US": "CrossCode in french !", - "fr_FR": "CrossCode en français !", - "de_DE": "CrossCode im Französisch !" - }, - "homepage": "https://github.com/L-Sherry/French-CC", - "icons": { - "24": "flaglea.png" - }, - "postload": "mod.js", - "dependencies": { - "localize-me": ">=0.5 <2" - } - }, - "installation": [ - { - "type": "modZip", - "url": "https://github.com/L-Sherry/French-CC/archive/v1.4.0.zip", - "source": "French-CC-1.4.0", - "hash": { - "sha256": "30a9febd011fb056426a1d0e8d9f7f50b8dd7310b80a21f1c6e2d3a6c2a143ff" - } - } - ] - }, - "Hadouken": { - "metadata": { - "name": "Hadouken", - "ccmodHumanName": "Hadouken", - "version": "1.0.0" + "name": "Hadouken", + "ccmodHumanName": "Hadouken", + "version": "1.0.0" }, "installation": [ { @@ -669,120 +311,6 @@ } ] }, - "Junolea Skin": { - "metadata": { - "name": "junolea", - "version": "1.0.0", - "ccmodHumanName": "Junolea Skin", - "description": "Adds a skin which makes Lea look like Juno", - "license": "CC-BY-4.0", - "homepage": "https://github.com/Inevitabilis/CC-Junolea", - "module": true, - "ccmodDependencies": { - "item-api": ">=0.2.0 <1.0.0" - }, - "assets": [ - "data/animations/player-skins/junolea-hugging.json", - "data/animations/player-skins/junolea-hugging.json.patch", - "data/animations/player-skins/junolea-poses-debug.json", - "data/animations/player-skins/junolea-poses-debug.json.patch", - "data/animations/player-skins/junolea-poses.json", - "data/animations/player-skins/junolea-poses.json.patch", - "data/animations/player-skins/junolea-sleeping.json", - "data/animations/player-skins/junolea-sleeping.json.patch", - "data/animations/player-skins/junolea-weak.json", - "data/animations/player-skins/junolea-weak.json.patch", - "data/animations/player-skins/junolea.json", - "data/animations/player-skins/junolea.json.patch", - "data/characters/main/junolea.json", - "data/characters/main/junolea.json.patch", - "data/database.json.patch", - "data/effects/skins/junolea.json", - "data/effects/skins/junolea.json.patch", - "data/item-database.json.patch", - "media/entity/player/junolea-hugging.png", - "media/entity/player/junolea-move-weak.png", - "media/entity/player/junolea-move.png", - "media/entity/player/junolea-poses-debug.png", - "media/entity/player/junolea-poses.png", - "media/entity/player/junolea-sleeping.png", - "media/entity/player/junolea-throw.png", - "media/face/junolea-hand.png", - "media/face/junolea-panic.png", - "media/face/junolea-special.png", - "media/face/junolea.png", - "media/gui/skins/junolea.png", - "media/map/baked/lea-bakii-kum-junolea.png", - "media/map/baked/lea-ctron-bakii-kum-junolea.png", - "media/map/baked/lea-server-junolea.png", - "media/map/baked/the-room-conversation-clear-junolea.png", - "media/map/baked/the-room-conversation-shelf-junolea.png", - "media/map/baked/tree-top-ctron-junolea.png" - ] - }, - "metadataCCMod": { - "id": "junolea", - "version": "1.0.0", - "title": "Junolea Skin", - "description": "Adds a skin which makes Lea look like Juno", - "license": "CC-BY-4.0", - "homepage": "https://github.com/Inevitabilis/CC-Junolea", - "icons": { - "24": "icon24.png" - }, - "dependencies": { - "item-api": ">=0.2.0 <1.0.0" - }, - "assets": [ - "data/animations/player-skins/junolea-hugging.json", - "data/animations/player-skins/junolea-hugging.json.patch", - "data/animations/player-skins/junolea-poses-debug.json", - "data/animations/player-skins/junolea-poses-debug.json.patch", - "data/animations/player-skins/junolea-poses.json", - "data/animations/player-skins/junolea-poses.json.patch", - "data/animations/player-skins/junolea-sleeping.json", - "data/animations/player-skins/junolea-sleeping.json.patch", - "data/animations/player-skins/junolea-weak.json", - "data/animations/player-skins/junolea-weak.json.patch", - "data/animations/player-skins/junolea.json", - "data/animations/player-skins/junolea.json.patch", - "data/characters/main/junolea.json", - "data/characters/main/junolea.json.patch", - "data/database.json.patch", - "data/effects/skins/junolea.json", - "data/effects/skins/junolea.json.patch", - "data/item-database.json.patch", - "media/entity/player/junolea-hugging.png", - "media/entity/player/junolea-move-weak.png", - "media/entity/player/junolea-move.png", - "media/entity/player/junolea-poses-debug.png", - "media/entity/player/junolea-poses.png", - "media/entity/player/junolea-sleeping.png", - "media/entity/player/junolea-throw.png", - "media/face/junolea-hand.png", - "media/face/junolea-panic.png", - "media/face/junolea-special.png", - "media/face/junolea.png", - "media/gui/skins/junolea.png", - "media/map/baked/lea-bakii-kum-junolea.png", - "media/map/baked/lea-ctron-bakii-kum-junolea.png", - "media/map/baked/lea-server-junolea.png", - "media/map/baked/the-room-conversation-clear-junolea.png", - "media/map/baked/the-room-conversation-shelf-junolea.png", - "media/map/baked/tree-top-ctron-junolea.png" - ] - }, - "installation": [ - { - "type": "modZip", - "url": "https://github.com/Inevitabilis/CC-Junolea/archive/refs/tags/v1.0.0.zip", - "source": "CC-Junolea-1.0.0", - "hash": { - "sha256": "16b9dbbfa21c9fa18d8ed3048c842521039f0713c6cfc2a17f2d2e89f79bea2f" - } - } - ] - }, "Kit Player": { "metadata": { "name": "Kit Player", @@ -838,108 +366,29 @@ } ] }, - "Localize Me": { + "New game++": { "metadata": { - "name": "Localize Me", - "license": "MIT", - "homepage": "https://github.com/L-Sherry/Localize-me", - "description": "Add support for more locales, languages and translations", - "postload": "mod.js", + "name": "New game++", "module": true, - "version": "0.6.0" + "plugin": "plugin.js", + "version": "1.3.0", + "homepage": "https://github.com/CCDirectLink/CCNewGamePP", + "description": "A small collection of addons to CrossCode's NG+.", + "ccmodDependencies": { + "crosscode": "^1.2.0", + "ccloader": "^2.14.3" + } }, "metadataCCMod": { - "id": "localize-me", - "version": "0.6.0", - "title": { - "en_US": "Localize Me", - "fr_FR": "Régionalisez-Moi", - "de_DE": "Lokalisiert mich" - }, - "description": { - "en_US": "Add support for more locales, languages and translations", - "fr_FR": "Ajoute la gestion de plus de locales, de languages et de traductions", - "de_DE": "Fügt Unterstützung für mehr Lokalen, Sprachen und Übersetzungen hinzu", - "ru_RU": "Мод для создания дополнительных региональных настроек, языков и переводов" - }, - "license": "MIT", - "homepage": "https://github.com/L-Sherry/Localize-Me", - "postload": "mod.js" - }, - "installation": [ - { - "type": "modZip", - "url": "https://github.com/L-Sherry/Localize-me/archive/v0.6.0.zip", - "source": "Localize-me-0.6.0", - "hash": { - "sha256": "98da8afe115cb453331ba96a70711bf22453703a921d1578b239aff14084702b" - } - } - ] - }, - "Logic Steps": { - "metadata": { - "name": "Logic Steps", - "version": "1.0.1", - "description": "Adds a couple custom patch steps that allow for control of logic flow.", - "homepage": "https://github.com/lexisother/logic-steps", - "module": true, - "postload": "postload.js", - "ccmodDependencies": { - "ccloader": ">=2.22.1" - } - }, - "metadataCCMod": { - "id": "logic-steps", - "version": "1.0.1", - "title": "Logic Steps", - "description": "Adds a couple custom patch steps that allow for control of logic flow.", - "postload": "postload.js", - "dependencies": { - "ccloader": ">=2.22.1" - } - }, - "installation": [ - { - "type": "modZip", - "url": "https://github.com/lexisother/logic-steps/archive/refs/tags/v1.0.1.zip", - "source": "logic-steps-1.0.1", - "hash": { - "sha256": "9fcde08ef4a637f3393f23a53b70bfdcc6805de2f21f6234f416d36691defd6a" - } - }, - { - "type": "ccmod", - "url": "https://github.com/lexisother/logic-steps/releases/download/v1.0.1/logic-steps.ccmod", - "hash": { - "sha256": "79ac505e9f8f5f948ecb1f9e33b8da330a352f95eee5d381dd697bd3cd93f730" - } - } - ] - }, - "New game++": { - "metadata": { - "name": "New game++", - "module": true, - "plugin": "plugin.js", - "version": "1.3.0", - "homepage": "https://github.com/CCDirectLink/CCNewGamePP", - "description": "A small collection of addons to CrossCode's NG+.", - "ccmodDependencies": { - "crosscode": "^1.2.0", - "ccloader": "^2.14.3" - } - }, - "metadataCCMod": { - "id": "New game++", - "version": "1.3.0", - "plugin": "plugin.js", - "homepage": "https://github.com/CCDirectLink/CCNewGamePP", - "description": "A small collection of addons to CrossCode's NG+.", - "dependencies": { - "crosscode": "^1.2.0", - "ccloader": "^2.14.3" - } + "id": "New game++", + "version": "1.3.0", + "plugin": "plugin.js", + "homepage": "https://github.com/CCDirectLink/CCNewGamePP", + "description": "A small collection of addons to CrossCode's NG+.", + "dependencies": { + "crosscode": "^1.2.0", + "ccloader": "^2.14.3" + } }, "installation": [ { @@ -959,31 +408,6 @@ } ] }, - "Nine Rooms": { - "metadata": { - "name": "nine-rooms", - "version": "0.1.0", - "description": "A little piece of lost history.", - "homepage": "https://github.com/Pyrocorvid/CCNineRooms" - }, - "metadataCCMod": { - "id": "nine-rooms", - "version": "0.1.0", - "title": "Nine Rooms", - "description": "A little piece of lost history.", - "homepage": "https://github.com/Pyrocorvid/CCNineRooms" - }, - "installation": [ - { - "type": "modZip", - "url": "https://github.com/Pyrocorvid/CCNineRooms/archive/refs/tags/v1.0.1.zip", - "source": "CCNineRooms-1.0.1/nine-rooms", - "hash": { - "sha256": "2a62c02cc322ef7a79c49352a5ab8b4098dfa2f10b2f8cb6b989ab2f6444822d" - } - } - ] - }, "Palicat": { "metadata": { "name": "Palicat", @@ -1007,37 +431,6 @@ } ] }, - "Past Booster": { - "metadata": { - "name": "past-booster", - "version": "0.1.0", - "description": "Makes the Nine Rooms mod a little more... post-gamey.", - "homepage": "https://github.com/Pyrocorvid/CCNineRooms", - "ccmodDependencies": { - "nine-rooms": ">=0.1.0" - } - }, - "metadataCCMod": { - "id": "past-booster", - "version": "0.1.0", - "title": "Past Booster", - "description": "Makes the Nine Rooms mod a little more... post-gamey.", - "homepage": "https://github.com/Pyrocorvid/CCNineRooms", - "dependencies": { - "nine-rooms": ">=0.1.0" - } - }, - "installation": [ - { - "type": "modZip", - "url": "https://github.com/Pyrocorvid/CCNineRooms/archive/refs/tags/v1.0.1.zip", - "source": "CCNineRooms-1.0.1/past-booster", - "hash": { - "sha256": "2a62c02cc322ef7a79c49352a5ab8b4098dfa2f10b2f8cb6b989ab2f6444822d" - } - } - ] - }, "Qine": { "metadata": { "name": "Qine", @@ -1062,42 +455,6 @@ } ] }, - "QuickInfo EXP Viewer": { - "metadata": { - "name": "QuickInfo EXP Viewer", - "version": "1.0.0", - "description": "Shows the EXP the enemy will give you in the quickinfo popup.", - "homepage": "https://github.com/lexisother/cc-quickinfo-exp", - "module": true, - "prestart": "prestart.js", - "ccmodDependencies": {} - }, - "metadataCCMod": { - "id": "cc-quickinfo-exp", - "version": "1.0.0", - "title": "QuickInfo EXP Viewer", - "description": "Shows the EXP the enemy will give you in the quickinfo popup.", - "poststart": "poststart.js", - "dependencies": {} - }, - "installation": [ - { - "type": "modZip", - "url": "https://github.com/lexisother/cc-quickinfo-exp/archive/refs/tags/v1.0.1.zip", - "source": "cc-quickinfo-exp-1.0.1", - "hash": { - "sha256": "e8e0fa7e59aca78821df92121c3e745bdd5fdf7f2ee5df4e028db9dfb471ed05" - } - }, - { - "type": "ccmod", - "url": "https://github.com/lexisother/cc-quickinfo-exp/releases/download/v1.0.1/cc-quickinfo-exp.ccmod", - "hash": { - "sha256": "fcdeeba04a3c3e210353a23031c4396dfa33876f770347e550103a4308e3685a" - } - } - ] - }, "Restart Button": { "metadata": { "name": "Restart Button", @@ -1145,24 +502,40 @@ } ] }, - "Uncapped Stats": { + "blades": { "metadata": { - "name": "Uncapped Stats", - "version": "1.1.1", - "description": "Removes the visual stat caps - see your stats for what they really are!", + "name": "blades", + "version": "1.5.0", + "description": "Asset which replaces balls with blades, now for all classes!", + "module": false, + "ccmodDependencies": {} + }, + "installation": [ + { + "type": "modZip", + "url": "https://github.com/CCDirectLink/Blades/archive/1.5.0.zip", + "source": "Blades-1.5.0", + "hash": { + "sha256": "aa1fe7bdc217a8c27d91496b48f2642cea243ed158dafe32251834536666a25a" + } + } + ] + }, + "cc-capped-stats": { + "metadata": { + "name": "Capped Stats", + "version": "1.0.0", + "description": "big numbers are very scary. :( low numbers are not scary! :)", "homepage": "https://github.com/EL20202/cc-uncapped-stats", "module": true, "prestart": "prestart.js", - "ccmodDependencies": { - "ccloader": "^2.20.0" - } + "ccmodDependencies": {} }, "metadataCCMod": { - "id": "cc-uncapped-stats", - "version": "1.1.1", - "title": "Uncapped Stats", - "description": "Removes! the visual stat caps - see your stats for what they really are!", - "homepage": "https://github.com/EL20202/cc-uncapped-stats", + "id": "cc-capped-stats", + "version": "1.0.0", + "title": "Capped Stats", + "description": "Adds a visual stat cap - see your stats for what they really aren't!", "prestart": "prestart.js", "icons": { "24": "icon.png" @@ -1174,280 +547,351 @@ "installation": [ { "type": "ccmod", - "url": "https://github.com/EL20202/cc-uncapped-stats/releases/download/v1.1.1/cc-uncapped-stats-v1.1.1.ccmod", + "url": "https://github.com/EL20202/cc-capped-stats/releases/download/v1.0.0/cc-capped-stats.ccmod", "hash": { - "sha256": "4084245193fe5b6f43842afcc8db02b78ea6f12472a345b17a339c4c59e48fc8" + "sha256": "34c11a440d7af0857728619e17c7143102cec55a1e16b3dd5c3c16935b8965c2" } }, { "type": "modZip", - "url": "https://github.com/EL20202/cc-uncapped-stats/archive/refs/tags/v1.1.1.zip", - "source": "cc-uncapped-stats-1.1.1", + "url": "https://github.com/EL20202/cc-capped-stats/archive/refs/tags/v1.0.0.zip", + "source": "cc-capped-stats-1.0.0", "hash": { - "sha256": "f71786c48ba246993fd0cd924155a7d09be5fe7020c97482ec285ea7dbe5b1b9" + "sha256": "2d8876bae0fa566ad35b4f4d5db5c2b5d1a69c55b38e27aa337c2b0b666c20c1" } } ] }, - "Vim Command Mode": { + "cc-diorbital-menu": { "metadata": { - "name": "cc-vim", - "version": "1.5.4", - "description": "Adds a popup command prompt", + "name": "cc-diorbital-menu", + "version": "1.0.3", "scripts": { - "start": "esbuild --target=es2018 --format=esm --platform=node --bundle --sourcemap=inline --outfile=plugin.js src/plugin.ts", - "watch": "esbuild --target=es2018 --format=esm --platform=node --bundle --sourcemap=inline --watch --outfile=plugin.js src/plugin.ts", - "build": "npx esbuild --target=es2018 --format=esm --platform=node --bundle --outfile='plugin.js' 'src/plugin.ts'", + "start": "npx esbuild --target=es2018 --format=esm --platform=node --bundle --sourcemap=inline --outfile=plugin.js src/plugin.ts", + "watch": "npx esbuild --target=es2018 --format=esm --platform=node --bundle --sourcemap=inline --watch --outfile=plugin.js src/plugin.ts", + "build": "npx esbuild --target=es2018 --format=esm --platform=node --bundle --minify --outfile='plugin.js' 'src/plugin.ts'", "format": "prettier ./src -w" }, - "author": "krypek", - "license": "GNU GPLv3", - "homepage": "https://github.com/krypciak/cc-vim", - "types": "src/global.d.ts", + "license": "GPLv3", + "homepage": "https://github.com/krypciak/cc-diorbital-menu", + "ccmodHumanName": "cc-diorbital-menu", + "description": "Extends the quick menu", + "plugin": "plugin.js", "devDependencies": { - "@types/node": "^20.4.4", - "@typescript-eslint/eslint-plugin": "^6.2.0", - "@typescript-eslint/parser": "^6.2.0", - "esbuild": "^0.18.15", - "fuse.js": "^6.6.2", - "prettier": "3.0.0", - "typescript": "^5.1.6", + "@types/node": "^11.6.0", + "@typescript-eslint/eslint-plugin": "^6.20.0", + "@typescript-eslint/parser": "^6.20.0", + "esbuild": "^0.20.0", + "eslint": "^8.56.0", + "eslint-config-prettier": "^9.1.0", + "prettier": "3.2.4", + "typescript": "^5.3.3", "ultimate-crosscode-typedefs": "github:krypciak/ultimate-crosscode-typedefs", - "cc-quick-menu-ext": "github:krypciak/cc-quick-menu-ext" + "cc-vim": "github:krypciak/cc-vim" } }, "metadataCCMod": { - "id": "cc-vim", - "version": "1.5.4", - "title": { - "en_US": "Vim Command Mode", - "de_DE": "Vim Command Mode", - "fr_FR": "Vim Command Mode", - "zh_CN": "Vim Command Mode", - "zh_TW": "Vim Command Mode", - "ja_JP": "Vim Command Mode", - "ko_KR": "Vim Command Mode" - }, - "description": { - "en_US": "Adds a popup command prompt", - "de_DE": "Adds a popup command prompt", - "fr_FR": "Adds a popup command prompt", - "zh_CN": "Adds a popup command prompt", - "zh_TW": "Adds a popup command prompt", - "ja_JP": "Adds a popup command prompt", - "ko_KR": "Adds a popup command prompt" - }, - "homepage": "https://github.com/krypciak/cc-vim", + "id": "cc-diorbital-menu", + "version": "1.0.3", + "title": "cc-diorbital-menu", + "description": "Extends the quick menu", + "plugin": "plugin.js", + "homepage": "https://github.com/krypciak/cc-diorbital-menu", "icons": { "24": "icon/icon.png" }, - "plugin": "plugin.js", "dependencies": { - "input-api": ">=1.0.0" + "crosscode": ">=1.0.0" } }, "installation": [ { "type": "modZip", - "url": "https://github.com/krypciak/cc-vim/archive/refs/tags/v1.5.4.zip", - "source": "cc-vim-1.5.4", + "url": "https://github.com/krypciak/cc-diorbital-menu/archive/refs/tags/v1.0.3.zip", + "source": "cc-diorbital-menu-1.0.3", "hash": { - "sha256": "c6c650179f47dcd4734c1df2364057b22d752c9fb8b4ce53b5ffc51b0e8566db" + "sha256": "e7eea0c5a547e325661fc17a51b39219da35ee8fafe2706b1c75b34113b40f2b" } }, { "type": "ccmod", - "url": "https://github.com/krypciak/cc-vim/releases/download/v1.5.4/cc-vim-1.5.4.ccmod", + "url": "https://github.com/krypciak/cc-diorbital-menu/releases/download/v1.0.3/cc-diorbital-menu-1.0.3.ccmod", "hash": { - "sha256": "956b112b9e9928c8de6e8eac68f3e132dd275d31904f3bed607c4aee0ff09eb0" + "sha256": "5c5246f43f6ae7a9f3c5eb26c4b40c5a3a8cab224740f881ade7392c897d712f" } } ] }, - "World map overhaul": { + "cc-extra-dialogue": { "metadata": { - "name": "world-map-overhaul", - "ccmodHumanName": "World map overhaul", - "description": "A better world map", - "homepage": "https://github.com/dmitmel/cc-world-map-overhaul", - "version": "1.1.2", - "prestart": "prestart.js", - "assets": [ - "media/gui/better-world-map/overlays/colored/arid.png", - "media/gui/better-world-map/overlays/colored/autumn-area.png", - "media/gui/better-world-map/overlays/colored/autumn-fall.png", - "media/gui/better-world-map/overlays/colored/beach.png", - "media/gui/better-world-map/overlays/colored/bergen-trails.png", - "media/gui/better-world-map/overlays/colored/final-dng.png", - "media/gui/better-world-map/overlays/colored/forest.png", - "media/gui/better-world-map/overlays/colored/heat-area.png", - "media/gui/better-world-map/overlays/colored/jungle.png", - "media/gui/better-world-map/overlays/colored/rookie-harbor.png", - "media/gui/better-world-map/overlays/default/arid.png", - "media/gui/better-world-map/overlays/default/autumn-area.png", - "media/gui/better-world-map/overlays/default/autumn-fall.png", - "media/gui/better-world-map/overlays/default/beach.png", - "media/gui/better-world-map/overlays/default/bergen-trails.png", - "media/gui/better-world-map/overlays/default/final-dng.png", - "media/gui/better-world-map/overlays/default/forest.png", - "media/gui/better-world-map/overlays/default/heat-area.png", - "media/gui/better-world-map/overlays/default/jungle.png", - "media/gui/better-world-map/overlays/default/rookie-harbor.png", - "media/gui/better-world-map/overlays/reveal/arid.png", - "media/gui/better-world-map/overlays/reveal/autumn-area.png", - "media/gui/better-world-map/overlays/reveal/autumn-fall.png", - "media/gui/better-world-map/overlays/reveal/beach.png", - "media/gui/better-world-map/overlays/reveal/bergen-trails.png", - "media/gui/better-world-map/overlays/reveal/final-dng.png", - "media/gui/better-world-map/overlays/reveal/forest.png", - "media/gui/better-world-map/overlays/reveal/heat-area.png", - "media/gui/better-world-map/overlays/reveal/jungle.png", - "media/gui/better-world-map/overlays/reveal/rookie-harbor.png", - "media/gui/better-world-map/patched-area-buttons.png", - "media/gui/better-world-map/sea.png" - ] + "name": "cc-extra-dialogue", + "version": "1.0.0", + "ccmodHumanName": "CrossCode Extra Dialogue", + "description": "Adds more lore-friendly dialogue for party members.", + "homepage": "https://github.com/Paradragon/cc-extra-dialogue", + "prestart": "prestart.js" }, "metadataCCMod": { - "id": "world-map-overhaul", - "version": "1.1.2", - "title": "World map overhaul", - "description": { - "en_US": "A better world map", - "ru_RU": "Улучшенная карта мира" + "id": "cc-extra-dialogue", + "version": "1.0.0", + "title": "CrossCode Extra Dialogue", + "description": "Adds more lore-friendly dialogue for party members.", + "homepage": "https://github.com/Paradragon/cc-extra-dialogue", + "icons": { + "24": "icon.png" }, - "homepage": "https://github.com/dmitmel/cc-world-map-overhaul", + "prestart": "prestart.js" + }, + "installation": [ + { + "type": "ccmod", + "url": "https://github.com/Paradragon/cc-extra-dialogue/releases/download/v1.0.0/cc-extra-dialogue.ccmod", + "hash": { + "sha256": "8ab162b803f9a663f5677b058fafcf07218145f38f7a90cbdcf05845b0a5e329" + } + } + ] + }, + "cc-fancy-crash": { + "metadata": { + "name": "cc-fancy-crash", + "version": "1.0.7", + "description": "Better crash message", + "scripts": { + "start": "esbuild --target=es2018 --format=esm --platform=node --bundle --sourcemap=inline --outfile=plugin.js src/plugin.ts", + "watch": "esbuild --target=es2018 --format=esm --platform=node --bundle --sourcemap=inline --watch --outfile=plugin.js src/plugin.ts", + "build": "esbuild --target=es2018 --format=esm --platform=node --bundle --outfile='plugin.js' 'src/plugin.ts'", + "format": "prettier ./src -w" + }, + "author": "krypek", + "license": "GPLv3", + "homepage": "https://github.com/krypciak/cc-fancy-crash", + "devDependencies": { + "@types/node": "^11.6.0", + "@typescript-eslint/eslint-plugin": "^6.20.0", + "@typescript-eslint/parser": "^6.20.0", + "esbuild": "^0.20.0", + "typescript": "^5.3.3", + "ultimate-crosscode-typedefs": "github:krypciak/ultimate-crosscode-typedefs" + } + }, + "metadataCCMod": { + "id": "cc-fancy-crash", + "version": "1.0.7", + "title": "Fancy crash", + "description": "Better crash message", + "homepage": "https://github.com/krypciak/cc-fancy-crash", "icons": { - "24": "icon24.png" + "24": "icon/icon.png" }, - "prestart": "prestart.js", - "assets": [ - "media/gui/better-world-map/overlays/colored/arid.png", - "media/gui/better-world-map/overlays/colored/autumn-area.png", - "media/gui/better-world-map/overlays/colored/autumn-fall.png", - "media/gui/better-world-map/overlays/colored/beach.png", - "media/gui/better-world-map/overlays/colored/bergen-trails.png", - "media/gui/better-world-map/overlays/colored/final-dng.png", - "media/gui/better-world-map/overlays/colored/forest.png", - "media/gui/better-world-map/overlays/colored/heat-area.png", - "media/gui/better-world-map/overlays/colored/jungle.png", - "media/gui/better-world-map/overlays/colored/rookie-harbor.png", - "media/gui/better-world-map/overlays/default/arid.png", - "media/gui/better-world-map/overlays/default/autumn-area.png", - "media/gui/better-world-map/overlays/default/autumn-fall.png", - "media/gui/better-world-map/overlays/default/beach.png", - "media/gui/better-world-map/overlays/default/bergen-trails.png", - "media/gui/better-world-map/overlays/default/final-dng.png", - "media/gui/better-world-map/overlays/default/forest.png", - "media/gui/better-world-map/overlays/default/heat-area.png", - "media/gui/better-world-map/overlays/default/jungle.png", - "media/gui/better-world-map/overlays/default/rookie-harbor.png", - "media/gui/better-world-map/overlays/reveal/arid.png", - "media/gui/better-world-map/overlays/reveal/autumn-area.png", - "media/gui/better-world-map/overlays/reveal/autumn-fall.png", - "media/gui/better-world-map/overlays/reveal/beach.png", - "media/gui/better-world-map/overlays/reveal/bergen-trails.png", - "media/gui/better-world-map/overlays/reveal/final-dng.png", - "media/gui/better-world-map/overlays/reveal/forest.png", - "media/gui/better-world-map/overlays/reveal/heat-area.png", - "media/gui/better-world-map/overlays/reveal/jungle.png", - "media/gui/better-world-map/overlays/reveal/rookie-harbor.png", - "media/gui/better-world-map/patched-area-buttons.png", - "media/gui/better-world-map/sea.png" - ] + "plugin": "plugin.js", + "dependencies": {} + }, + "installation": [ + { + "type": "modZip", + "url": "https://github.com/krypciak/cc-fancy-crash/archive/refs/tags/v1.0.7.zip", + "source": "cc-fancy-crash-1.0.7", + "hash": { + "sha256": "d1282639f2a76f518489ad19df412675d166735934045f6244b9f29fe1a6794a" + } + }, + { + "type": "ccmod", + "url": "https://github.com/krypciak/cc-fancy-crash/releases/download/v1.0.7/cc-fancy-crash-1.0.7.ccmod", + "hash": { + "sha256": "edc33bc5c294a9573a49eea1c4080a458c70a9e9e8e1a6f960e3d798ce935503" + } + } + ] + }, + "cc-oldmedia": { + "metadata": { + "name": "CCOldMedia", + "version": "1.0.0", + "description": "A mod that brings back some old title screen assets.", + "homepage": "https://github.com/lexisother/CCOldMedia", + "module": true, + "prestart": "src/prestart.js", + "ccmodDependencies": {} + }, + "metadataCCMod": { + "id": "cc-oldmedia", + "version": "1.0.0", + "title": "CC-OldMedia", + "description": "A mod that brings back some old title screen assets.", + "homepage": "https://github.com/lexisother/CCOldMedia", + "prestart": "src/prestart.js" + }, + "installation": [ + { + "type": "modZip", + "url": "https://github.com/lexisother/CCOldMedia/archive/refs/tags/v1.0.0.zip", + "source": "CCOldMedia-1.0.0", + "hash": { + "sha256": "491263c26aefa8f366c135e2672c0214bb593059d44ddf22bebfc3a655f0b73e" + } + }, + { + "type": "ccmod", + "url": "https://github.com/lexisother/CCOldMedia/releases/download/v1.0.0/CCOldMedia.ccmod", + "hash": { + "sha256": "0791db068d46cf394fc3a512cf3a5bca7744a1550d1e72d07adb39bcea097703" + } + } + ] + }, + "cc-quickinfo-exp": { + "metadata": { + "name": "QuickInfo EXP Viewer", + "version": "1.0.0", + "description": "Shows the EXP the enemy will give you in the quickinfo popup.", + "homepage": "https://github.com/lexisother/cc-quickinfo-exp", + "module": true, + "prestart": "prestart.js", + "ccmodDependencies": {} + }, + "metadataCCMod": { + "id": "cc-quickinfo-exp", + "version": "1.0.0", + "title": "QuickInfo EXP Viewer", + "description": "Shows the EXP the enemy will give you in the quickinfo popup.", + "poststart": "poststart.js", + "dependencies": {} }, "installation": [ { - "type": "ccmod", - "url": "https://github.com/dmitmel/cc-world-map-overhaul/releases/download/v1.1.2/world-map-overhaul_v1.1.2.ccmod", + "type": "modZip", + "url": "https://github.com/lexisother/cc-quickinfo-exp/archive/refs/tags/v1.0.1.zip", + "source": "cc-quickinfo-exp-1.0.1", "hash": { - "sha256": "78aa2526039c77e69252ccb3f3ff0e0ba6d4ba6c18a10a900002e6981d024a05" + "sha256": "e8e0fa7e59aca78821df92121c3e745bdd5fdf7f2ee5df4e028db9dfb471ed05" } }, { - "type": "modZip", - "url": "https://github.com/dmitmel/cc-world-map-overhaul/releases/download/v1.1.2/world-map-overhaul_v1.1.2.zip", - "source": "world-map-overhaul", + "type": "ccmod", + "url": "https://github.com/lexisother/cc-quickinfo-exp/releases/download/v1.0.1/cc-quickinfo-exp.ccmod", "hash": { - "sha256": "03aa7cf573166a5a4b12c703bd63d7fd92f9bcf403ddc65cc7fd60b6ce2a97ca" + "sha256": "fcdeeba04a3c3e210353a23031c4396dfa33876f770347e550103a4308e3685a" } } ] }, - "blades": { + "cc-uncapped-stats": { "metadata": { - "name": "blades", - "version": "1.5.0", - "description": "Asset which replaces balls with blades, now for all classes!", - "module": false, - "ccmodDependencies": {} + "name": "Uncapped Stats", + "version": "1.1.1", + "description": "Removes the visual stat caps - see your stats for what they really are!", + "homepage": "https://github.com/EL20202/cc-uncapped-stats", + "module": true, + "prestart": "prestart.js", + "ccmodDependencies": { + "ccloader": "^2.20.0" + } + }, + "metadataCCMod": { + "id": "cc-uncapped-stats", + "version": "1.1.1", + "title": "Uncapped Stats", + "description": "Removes! the visual stat caps - see your stats for what they really are!", + "homepage": "https://github.com/EL20202/cc-uncapped-stats", + "prestart": "prestart.js", + "icons": { + "24": "icon.png" + }, + "dependencies": { + "ccloader": "^2.20.0" + } }, "installation": [ + { + "type": "ccmod", + "url": "https://github.com/EL20202/cc-uncapped-stats/releases/download/v1.1.1/cc-uncapped-stats-v1.1.1.ccmod", + "hash": { + "sha256": "4084245193fe5b6f43842afcc8db02b78ea6f12472a345b17a339c4c59e48fc8" + } + }, { "type": "modZip", - "url": "https://github.com/CCDirectLink/Blades/archive/1.5.0.zip", - "source": "Blades-1.5.0", + "url": "https://github.com/EL20202/cc-uncapped-stats/archive/refs/tags/v1.1.1.zip", + "source": "cc-uncapped-stats-1.1.1", "hash": { - "sha256": "aa1fe7bdc217a8c27d91496b48f2642cea243ed158dafe32251834536666a25a" + "sha256": "f71786c48ba246993fd0cd924155a7d09be5fe7020c97482ec285ea7dbe5b1b9" } } ] }, - "cc-diorbital-menu": { + "cc-vim": { "metadata": { - "name": "cc-diorbital-menu", - "version": "1.0.3", + "name": "cc-vim", + "version": "1.5.4", + "description": "Adds a popup command prompt", "scripts": { - "start": "npx esbuild --target=es2018 --format=esm --platform=node --bundle --sourcemap=inline --outfile=plugin.js src/plugin.ts", - "watch": "npx esbuild --target=es2018 --format=esm --platform=node --bundle --sourcemap=inline --watch --outfile=plugin.js src/plugin.ts", - "build": "npx esbuild --target=es2018 --format=esm --platform=node --bundle --minify --outfile='plugin.js' 'src/plugin.ts'", + "start": "esbuild --target=es2018 --format=esm --platform=node --bundle --sourcemap=inline --outfile=plugin.js src/plugin.ts", + "watch": "esbuild --target=es2018 --format=esm --platform=node --bundle --sourcemap=inline --watch --outfile=plugin.js src/plugin.ts", + "build": "npx esbuild --target=es2018 --format=esm --platform=node --bundle --outfile='plugin.js' 'src/plugin.ts'", "format": "prettier ./src -w" }, - "license": "GPLv3", - "homepage": "https://github.com/krypciak/cc-diorbital-menu", - "ccmodHumanName": "cc-diorbital-menu", - "description": "Extends the quick menu", - "plugin": "plugin.js", + "author": "krypek", + "license": "GNU GPLv3", + "homepage": "https://github.com/krypciak/cc-vim", + "types": "src/global.d.ts", "devDependencies": { - "@types/node": "^11.6.0", - "@typescript-eslint/eslint-plugin": "^6.20.0", - "@typescript-eslint/parser": "^6.20.0", - "esbuild": "^0.20.0", - "eslint": "^8.56.0", - "eslint-config-prettier": "^9.1.0", - "prettier": "3.2.4", - "typescript": "^5.3.3", + "@types/node": "^20.4.4", + "@typescript-eslint/eslint-plugin": "^6.2.0", + "@typescript-eslint/parser": "^6.2.0", + "esbuild": "^0.18.15", + "fuse.js": "^6.6.2", + "prettier": "3.0.0", + "typescript": "^5.1.6", "ultimate-crosscode-typedefs": "github:krypciak/ultimate-crosscode-typedefs", - "cc-vim": "github:krypciak/cc-vim" + "cc-quick-menu-ext": "github:krypciak/cc-quick-menu-ext" } }, "metadataCCMod": { - "id": "cc-diorbital-menu", - "version": "1.0.3", - "title": "cc-diorbital-menu", - "description": "Extends the quick menu", - "plugin": "plugin.js", - "homepage": "https://github.com/krypciak/cc-diorbital-menu", + "id": "cc-vim", + "version": "1.5.4", + "title": { + "en_US": "Vim Command Mode", + "de_DE": "Vim Command Mode", + "fr_FR": "Vim Command Mode", + "zh_CN": "Vim Command Mode", + "zh_TW": "Vim Command Mode", + "ja_JP": "Vim Command Mode", + "ko_KR": "Vim Command Mode" + }, + "description": { + "en_US": "Adds a popup command prompt", + "de_DE": "Adds a popup command prompt", + "fr_FR": "Adds a popup command prompt", + "zh_CN": "Adds a popup command prompt", + "zh_TW": "Adds a popup command prompt", + "ja_JP": "Adds a popup command prompt", + "ko_KR": "Adds a popup command prompt" + }, + "homepage": "https://github.com/krypciak/cc-vim", "icons": { "24": "icon/icon.png" }, + "plugin": "plugin.js", "dependencies": { - "crosscode": ">=1.0.0" + "input-api": ">=1.0.0" } }, "installation": [ { "type": "modZip", - "url": "https://github.com/krypciak/cc-diorbital-menu/archive/refs/tags/v1.0.3.zip", - "source": "cc-diorbital-menu-1.0.3", + "url": "https://github.com/krypciak/cc-vim/archive/refs/tags/v1.5.4.zip", + "source": "cc-vim-1.5.4", "hash": { - "sha256": "e7eea0c5a547e325661fc17a51b39219da35ee8fafe2706b1c75b34113b40f2b" + "sha256": "c6c650179f47dcd4734c1df2364057b22d752c9fb8b4ce53b5ffc51b0e8566db" } }, { "type": "ccmod", - "url": "https://github.com/krypciak/cc-diorbital-menu/releases/download/v1.0.3/cc-diorbital-menu-1.0.3.ccmod", + "url": "https://github.com/krypciak/cc-vim/releases/download/v1.5.4/cc-vim-1.5.4.ccmod", "hash": { - "sha256": "5c5246f43f6ae7a9f3c5eb26c4b40c5a3a8cab224740f881ade7392c897d712f" + "sha256": "956b112b9e9928c8de6e8eac68f3e132dd275d31904f3bed607c4aee0ff09eb0" } } ] @@ -1471,37 +915,48 @@ } ] }, - "cursedcode": { + "ccpostdlc": { "metadata": { - "name": "cursedcode", - "displayName": "CursedCode", - "description": "Cursed custom maps.", - "prestart": "mod.js", - "version": "0.1.1", - "module": true, - "ccmodDependencies": {}, - "scripts": { - "format": "npm run minify-json && npm run json-beautify && npm run js-beautify", - "minify-json": "minify-json ./", - "js-beautify": "js-beautify -js -q -r -f ./**/*.js", - "json-beautify": "js-beautify -js -r -f ./**/*.json" - }, + "name": "CCPostDLC", + "version": "1.0.0", + "description": "Adjusts the game to continue after completing the DLC.", + "homepage": "https://github.com/lexisother/CCPostDLC", + "prestart": "src/prestart.js", + "ccmodDependencies": { + "crosscode": ">=1.4.0", + "post-game": ">=1.4.0" + } + }, + "metadataCCMod": { + "id": "ccpostdlc", + "version": "1.0.0", + "title": "CCPostDLC", + "description": "Adjusts the game to continue after completing the DLC.", + "homepage": "https://github.com/lexisother/CCPostDLC", "dependencies": { - "js-beautify": "^1.10.3", - "minify-json": "^1.0.0" + "crosscode": ">=1.4.0", + "post-game": ">=1.4.0" } }, "installation": [ + { + "type": "modZip", + "url": "https://github.com/lexisother/CCPostDLC/archive/refs/tags/v1.0.0.zip", + "source": "CCPostDLC-1.0.0", + "hash": { + "sha256": "704877a8628bb3b6973e8adb22ca93bedd7db816b69a8b3c7d9d35301df63ac6" + } + }, { "type": "ccmod", - "url": "https://github.com/Symphiel/CursedCode/releases/download/0.1.1/cursedcode.ccmod", + "url": "https://github.com/lexisother/CCPostDLC/releases/download/v1.0.0/CCPostDLC.ccmod", "hash": { - "sha256": "e265e1cb434d6718c655909792a8077cbe6073618a0a984e43fc944a62caee46" + "sha256": "eec76c279f1683b415e4f06186d6d4d8ae6e9d247cec845bce1e6a7e6d69cea0" } } ] }, - "dmitmel's tweak pack": { + "crosscode-tweak-pack": { "metadata": { "name": "crosscode-tweak-pack", "version": "1.1.0", @@ -1556,7 +1011,71 @@ "url": "https://github.com/dmitmel/crosscode-tweak-pack/releases/download/v1.1.0/crosscode-tweak-pack_v1.1.0.zip", "source": "crosscode-tweak-pack", "hash": { - "sha256": "0cc60fb1aeccdb7f664430feb222df8cbf0571a5c5359dcb689f1b551a983713" + "sha256": "0cc60fb1aeccdb7f664430feb222df8cbf0571a5c5359dcb689f1b551a983713" + } + } + ] + }, + "cursedcode": { + "metadata": { + "name": "cursedcode", + "displayName": "CursedCode", + "description": "Cursed custom maps.", + "prestart": "mod.js", + "version": "0.1.1", + "module": true, + "ccmodDependencies": {}, + "scripts": { + "format": "npm run minify-json && npm run json-beautify && npm run js-beautify", + "minify-json": "minify-json ./", + "js-beautify": "js-beautify -js -q -r -f ./**/*.js", + "json-beautify": "js-beautify -js -r -f ./**/*.json" + }, + "dependencies": { + "js-beautify": "^1.10.3", + "minify-json": "^1.0.0" + } + }, + "installation": [ + { + "type": "ccmod", + "url": "https://github.com/Symphiel/CursedCode/releases/download/0.1.1/cursedcode.ccmod", + "hash": { + "sha256": "e265e1cb434d6718c655909792a8077cbe6073618a0a984e43fc944a62caee46" + } + } + ] + }, + "el-tweaks": { + "metadata": { + "name": "el-tweaks", + "displayName": "EL's Tweaks", + "version": "0.5.8", + "description": "A coremod full of useful functionality for modders, as well as many tweaks for players.", + "plugin": "./dist/plugin.js", + "ccmodDependencies": {}, + "devDependencies": { + "typescript": "^4.5.5", + "ultimate-crosscode-typedefs": "el20202/ultimate-crosscode-typedefs" + }, + "scripts": { + "build": "tsc --build", + "watch": "tsc --watch" + } + }, + "metadataCCMod": { + "id": "el-tweaks", + "version": "0.5.8", + "title": "EL's Tweaks", + "description": "A coremod full of useful functionality for modders, as well as many tweaks for players.", + "plugin": "./dist/plugin.js" + }, + "installation": [ + { + "type": "ccmod", + "url": "https://github.com/EL20202/el-crosscode-tweaks/releases/download/v0.5.8/els-tweaks.ccmod", + "hash": { + "sha256": "14a6fa05766def657bed910c7c76b67685ac166771dc9ad82e6d6628f782db77" } } ] @@ -1579,6 +1098,84 @@ } ] }, + "font-utils": { + "metadata": { + "name": "font-utils", + "displayName": "Font Utilities", + "version": "1.1.0", + "description": "Adds various new font colors!", + "prestart": "prestart.js" + }, + "metadataCCMod": { + "id": "font-utils", + "version": "1.1.0", + "title": "Font Utilities", + "description": "Adds various new font colors!", + "prestart": "prestart.js" + }, + "installation": [ + { + "type": "modZip", + "url": "https://github.com/EL20202/crosscode-font-utils/archive/refs/tags/v1.1.0.zip", + "source": "crosscode-font-utils-1.1.0", + "hash": { + "sha256": "3eec3eabd41908b528e97a4920df3cd39dba42a29251a96b9076307f148c8bfd" + } + }, + { + "type": "ccmod", + "url": "https://github.com/EL20202/crosscode-font-utils/releases/download/v1.1.0/font-utils.ccmod", + "hash": { + "sha256": "fc9aa9aa56336f28815abc06b26dbde42c34885190d0221c6f6c6d3f5b498148" + } + } + ] + }, + "french": { + "metadata": { + "name": "French", + "description": "CrossCode en français !", + "homepage": "https://github.com/L-Sherry/French-CC", + "postload": "mod.js", + "module": true, + "version": "1.4.0", + "ccmodDependencies": { + "Localize Me": ">=0.5 <1" + } + }, + "metadataCCMod": { + "id": "french", + "version": "1.4.0", + "title": { + "en_US": "French", + "fr_FR": "Français", + "de_DE": "Französisch" + }, + "description": { + "en_US": "CrossCode in french !", + "fr_FR": "CrossCode en français !", + "de_DE": "CrossCode im Französisch !" + }, + "homepage": "https://github.com/L-Sherry/French-CC", + "icons": { + "24": "flaglea.png" + }, + "postload": "mod.js", + "dependencies": { + "localize-me": ">=0.5 <2" + } + }, + "installation": [ + { + "type": "modZip", + "url": "https://github.com/L-Sherry/French-CC/archive/v1.4.0.zip", + "source": "French-CC-1.4.0", + "hash": { + "sha256": "30a9febd011fb056426a1d0e8d9f7f50b8dd7310b80a21f1c6e2d3a6c2a143ff" + } + } + ] + }, "hardcoded-config-injector": { "metadata": { "name": "hardcoded-config-injector", @@ -1667,42 +1264,235 @@ "installation": [ { "type": "modZip", - "url": "https://github.com/CCDirectLink/item-api/archive/refs/tags/v0.4.2.zip", - "source": "item-api-0.4.2", + "url": "https://github.com/CCDirectLink/item-api/archive/refs/tags/v0.4.2.zip", + "source": "item-api-0.4.2", + "hash": { + "sha256": "68d7f15b5e3c4264831dfe89a3ad2ad819825819d98aa529cee03e73312a6b21" + } + } + ] + }, + "jetpack": { + "metadata": { + "name": "jetpack", + "version": "0.2.0", + "license": "MIT", + "homepage": "https://github.com/CCDirectLink/CCJetpack", + "description": "Turns your CTRL key into a jetpack", + "module": true, + "prestart": "prestart.js", + "main": "poststart.js", + "ccmodDependencies": { + "crosscode": "^1.1.0" + } + }, + "installation": [ + { + "type": "ccmod", + "url": "https://github.com/CCDirectLink/CCJetpack/releases/download/v0.2.0/CCJetpack.ccmod", + "hash": { + "sha256": "68932f3747b9cddc473c090d1f30fc1595354e6262cb1074590bf71c27f86fbb" + } + }, + { + "type": "modZip", + "url": "https://github.com/CCDirectLink/CCJetpack/archive/v0.2.0.zip", + "source": "CCJetpack-0.2.0", + "hash": { + "sha256": "49841feae2ddf8e42bce5dec6d712e2fb714ac66e8d8b3d8f0b94eaa47674a71" + } + } + ] + }, + "junolea": { + "metadata": { + "name": "junolea", + "version": "1.0.0", + "ccmodHumanName": "Junolea Skin", + "description": "Adds a skin which makes Lea look like Juno", + "license": "CC-BY-4.0", + "homepage": "https://github.com/Inevitabilis/CC-Junolea", + "module": true, + "ccmodDependencies": { + "item-api": ">=0.2.0 <1.0.0" + }, + "assets": [ + "data/animations/player-skins/junolea-hugging.json", + "data/animations/player-skins/junolea-hugging.json.patch", + "data/animations/player-skins/junolea-poses-debug.json", + "data/animations/player-skins/junolea-poses-debug.json.patch", + "data/animations/player-skins/junolea-poses.json", + "data/animations/player-skins/junolea-poses.json.patch", + "data/animations/player-skins/junolea-sleeping.json", + "data/animations/player-skins/junolea-sleeping.json.patch", + "data/animations/player-skins/junolea-weak.json", + "data/animations/player-skins/junolea-weak.json.patch", + "data/animations/player-skins/junolea.json", + "data/animations/player-skins/junolea.json.patch", + "data/characters/main/junolea.json", + "data/characters/main/junolea.json.patch", + "data/database.json.patch", + "data/effects/skins/junolea.json", + "data/effects/skins/junolea.json.patch", + "data/item-database.json.patch", + "media/entity/player/junolea-hugging.png", + "media/entity/player/junolea-move-weak.png", + "media/entity/player/junolea-move.png", + "media/entity/player/junolea-poses-debug.png", + "media/entity/player/junolea-poses.png", + "media/entity/player/junolea-sleeping.png", + "media/entity/player/junolea-throw.png", + "media/face/junolea-hand.png", + "media/face/junolea-panic.png", + "media/face/junolea-special.png", + "media/face/junolea.png", + "media/gui/skins/junolea.png", + "media/map/baked/lea-bakii-kum-junolea.png", + "media/map/baked/lea-ctron-bakii-kum-junolea.png", + "media/map/baked/lea-server-junolea.png", + "media/map/baked/the-room-conversation-clear-junolea.png", + "media/map/baked/the-room-conversation-shelf-junolea.png", + "media/map/baked/tree-top-ctron-junolea.png" + ] + }, + "metadataCCMod": { + "id": "junolea", + "version": "1.0.0", + "title": "Junolea Skin", + "description": "Adds a skin which makes Lea look like Juno", + "license": "CC-BY-4.0", + "homepage": "https://github.com/Inevitabilis/CC-Junolea", + "icons": { + "24": "icon24.png" + }, + "dependencies": { + "item-api": ">=0.2.0 <1.0.0" + }, + "assets": [ + "data/animations/player-skins/junolea-hugging.json", + "data/animations/player-skins/junolea-hugging.json.patch", + "data/animations/player-skins/junolea-poses-debug.json", + "data/animations/player-skins/junolea-poses-debug.json.patch", + "data/animations/player-skins/junolea-poses.json", + "data/animations/player-skins/junolea-poses.json.patch", + "data/animations/player-skins/junolea-sleeping.json", + "data/animations/player-skins/junolea-sleeping.json.patch", + "data/animations/player-skins/junolea-weak.json", + "data/animations/player-skins/junolea-weak.json.patch", + "data/animations/player-skins/junolea.json", + "data/animations/player-skins/junolea.json.patch", + "data/characters/main/junolea.json", + "data/characters/main/junolea.json.patch", + "data/database.json.patch", + "data/effects/skins/junolea.json", + "data/effects/skins/junolea.json.patch", + "data/item-database.json.patch", + "media/entity/player/junolea-hugging.png", + "media/entity/player/junolea-move-weak.png", + "media/entity/player/junolea-move.png", + "media/entity/player/junolea-poses-debug.png", + "media/entity/player/junolea-poses.png", + "media/entity/player/junolea-sleeping.png", + "media/entity/player/junolea-throw.png", + "media/face/junolea-hand.png", + "media/face/junolea-panic.png", + "media/face/junolea-special.png", + "media/face/junolea.png", + "media/gui/skins/junolea.png", + "media/map/baked/lea-bakii-kum-junolea.png", + "media/map/baked/lea-ctron-bakii-kum-junolea.png", + "media/map/baked/lea-server-junolea.png", + "media/map/baked/the-room-conversation-clear-junolea.png", + "media/map/baked/the-room-conversation-shelf-junolea.png", + "media/map/baked/tree-top-ctron-junolea.png" + ] + }, + "installation": [ + { + "type": "modZip", + "url": "https://github.com/Inevitabilis/CC-Junolea/archive/refs/tags/v1.0.0.zip", + "source": "CC-Junolea-1.0.0", + "hash": { + "sha256": "16b9dbbfa21c9fa18d8ed3048c842521039f0713c6cfc2a17f2d2e89f79bea2f" + } + } + ] + }, + "localize-me": { + "metadata": { + "name": "Localize Me", + "license": "MIT", + "homepage": "https://github.com/L-Sherry/Localize-me", + "description": "Add support for more locales, languages and translations", + "postload": "mod.js", + "module": true, + "version": "0.6.0" + }, + "metadataCCMod": { + "id": "localize-me", + "version": "0.6.0", + "title": { + "en_US": "Localize Me", + "fr_FR": "Régionalisez-Moi", + "de_DE": "Lokalisiert mich" + }, + "description": { + "en_US": "Add support for more locales, languages and translations", + "fr_FR": "Ajoute la gestion de plus de locales, de languages et de traductions", + "de_DE": "Fügt Unterstützung für mehr Lokalen, Sprachen und Übersetzungen hinzu", + "ru_RU": "Мод для создания дополнительных региональных настроек, языков и переводов" + }, + "license": "MIT", + "homepage": "https://github.com/L-Sherry/Localize-Me", + "postload": "mod.js" + }, + "installation": [ + { + "type": "modZip", + "url": "https://github.com/L-Sherry/Localize-me/archive/v0.6.0.zip", + "source": "Localize-me-0.6.0", "hash": { - "sha256": "68d7f15b5e3c4264831dfe89a3ad2ad819825819d98aa529cee03e73312a6b21" + "sha256": "98da8afe115cb453331ba96a70711bf22453703a921d1578b239aff14084702b" } } ] }, - "jetpack": { + "logic-steps": { "metadata": { - "name": "jetpack", - "version": "0.2.0", - "license": "MIT", - "homepage": "https://github.com/CCDirectLink/CCJetpack", - "description": "Turns your CTRL key into a jetpack", + "name": "Logic Steps", + "version": "1.0.1", + "description": "Adds a couple custom patch steps that allow for control of logic flow.", + "homepage": "https://github.com/lexisother/logic-steps", "module": true, - "prestart": "prestart.js", - "main": "poststart.js", + "postload": "postload.js", "ccmodDependencies": { - "crosscode": "^1.1.0" + "ccloader": ">=2.22.1" + } + }, + "metadataCCMod": { + "id": "logic-steps", + "version": "1.0.1", + "title": "Logic Steps", + "description": "Adds a couple custom patch steps that allow for control of logic flow.", + "postload": "postload.js", + "dependencies": { + "ccloader": ">=2.22.1" } }, "installation": [ { - "type": "ccmod", - "url": "https://github.com/CCDirectLink/CCJetpack/releases/download/v0.2.0/CCJetpack.ccmod", + "type": "modZip", + "url": "https://github.com/lexisother/logic-steps/archive/refs/tags/v1.0.1.zip", + "source": "logic-steps-1.0.1", "hash": { - "sha256": "68932f3747b9cddc473c090d1f30fc1595354e6262cb1074590bf71c27f86fbb" + "sha256": "9fcde08ef4a637f3393f23a53b70bfdcc6805de2f21f6234f416d36691defd6a" } }, { - "type": "modZip", - "url": "https://github.com/CCDirectLink/CCJetpack/archive/v0.2.0.zip", - "source": "CCJetpack-0.2.0", + "type": "ccmod", + "url": "https://github.com/lexisother/logic-steps/releases/download/v1.0.1/logic-steps.ccmod", "hash": { - "sha256": "49841feae2ddf8e42bce5dec6d712e2fb714ac66e8d8b3d8f0b94eaa47674a71" + "sha256": "79ac505e9f8f5f948ecb1f9e33b8da330a352f95eee5d381dd697bd3cd93f730" } } ] @@ -1792,6 +1582,62 @@ } ] }, + "nine-rooms": { + "metadata": { + "name": "nine-rooms", + "version": "0.1.0", + "description": "A little piece of lost history.", + "homepage": "https://github.com/Pyrocorvid/CCNineRooms" + }, + "metadataCCMod": { + "id": "nine-rooms", + "version": "0.1.0", + "title": "Nine Rooms", + "description": "A little piece of lost history.", + "homepage": "https://github.com/Pyrocorvid/CCNineRooms" + }, + "installation": [ + { + "type": "modZip", + "url": "https://github.com/Pyrocorvid/CCNineRooms/archive/refs/tags/v1.0.1.zip", + "source": "CCNineRooms-1.0.1/nine-rooms", + "hash": { + "sha256": "2a62c02cc322ef7a79c49352a5ab8b4098dfa2f10b2f8cb6b989ab2f6444822d" + } + } + ] + }, + "past-booster": { + "metadata": { + "name": "past-booster", + "version": "0.1.0", + "description": "Makes the Nine Rooms mod a little more... post-gamey.", + "homepage": "https://github.com/Pyrocorvid/CCNineRooms", + "ccmodDependencies": { + "nine-rooms": ">=0.1.0" + } + }, + "metadataCCMod": { + "id": "past-booster", + "version": "0.1.0", + "title": "Past Booster", + "description": "Makes the Nine Rooms mod a little more... post-gamey.", + "homepage": "https://github.com/Pyrocorvid/CCNineRooms", + "dependencies": { + "nine-rooms": ">=0.1.0" + } + }, + "installation": [ + { + "type": "modZip", + "url": "https://github.com/Pyrocorvid/CCNineRooms/archive/refs/tags/v1.0.1.zip", + "source": "CCNineRooms-1.0.1/past-booster", + "hash": { + "sha256": "2a62c02cc322ef7a79c49352a5ab8b4098dfa2f10b2f8cb6b989ab2f6444822d" + } + } + ] + }, "readable-saves": { "metadata": { "name": "readable-saves", @@ -1852,6 +1698,51 @@ } ] }, + "timer": { + "metadata": { + "name": "timer", + "plugin": "plugin.js", + "homepage": "https://github.com/CCDirectLink/CCTimer", + "description": "A speedrun timer for CrossCode.", + "scripts": { + "start": "esbuild --target=es2018 --format=esm --platform=node --bundle --sourcemap=inline --outfile=plugin.js src/plugin.js", + "watch": "esbuild --target=es2018 --format=esm --platform=node --bundle --sourcemap=inline --watch --outfile=plugin.js src/plugin.js" + }, + "version": "3.0.0", + "ccmodDependencies": { + "ccloader": "^2.19.0", + "Simplify": "^2.9.0" + }, + "devDependencies": { + "esbuild": "^0.19.1", + "ws": "^8.13.0" + } + }, + "metadataCCMod": { + "id": "timer", + "version": "3.0.0", + "title": "CCTimer", + "description": "A speedrun timer for CrossCode.", + "icons": { + "24": "icon.png" + }, + "plugin": "plugin.js", + "dependencies": { + "ccloader": "^2.19.0", + "Simplify": "^2.9.0" + } + }, + "installation": [ + { + "type": "modZip", + "url": "https://github.com/CCDirectLink/CCTimer/releases/download/v3.0.0/CCTimer.zip", + "source": "CCTimer", + "hash": { + "sha256": "7ba4327609e3ff0b29d2921af7d9255fbeae9dfe3d4fc035f93e99312f7ff2bb" + } + } + ] + }, "timewalker": { "metadata": { "name": "timewalker", @@ -1901,5 +1792,114 @@ } } ] + }, + "world-map-overhaul": { + "metadata": { + "name": "world-map-overhaul", + "ccmodHumanName": "World map overhaul", + "description": "A better world map", + "homepage": "https://github.com/dmitmel/cc-world-map-overhaul", + "version": "1.1.2", + "prestart": "prestart.js", + "assets": [ + "media/gui/better-world-map/overlays/colored/arid.png", + "media/gui/better-world-map/overlays/colored/autumn-area.png", + "media/gui/better-world-map/overlays/colored/autumn-fall.png", + "media/gui/better-world-map/overlays/colored/beach.png", + "media/gui/better-world-map/overlays/colored/bergen-trails.png", + "media/gui/better-world-map/overlays/colored/final-dng.png", + "media/gui/better-world-map/overlays/colored/forest.png", + "media/gui/better-world-map/overlays/colored/heat-area.png", + "media/gui/better-world-map/overlays/colored/jungle.png", + "media/gui/better-world-map/overlays/colored/rookie-harbor.png", + "media/gui/better-world-map/overlays/default/arid.png", + "media/gui/better-world-map/overlays/default/autumn-area.png", + "media/gui/better-world-map/overlays/default/autumn-fall.png", + "media/gui/better-world-map/overlays/default/beach.png", + "media/gui/better-world-map/overlays/default/bergen-trails.png", + "media/gui/better-world-map/overlays/default/final-dng.png", + "media/gui/better-world-map/overlays/default/forest.png", + "media/gui/better-world-map/overlays/default/heat-area.png", + "media/gui/better-world-map/overlays/default/jungle.png", + "media/gui/better-world-map/overlays/default/rookie-harbor.png", + "media/gui/better-world-map/overlays/reveal/arid.png", + "media/gui/better-world-map/overlays/reveal/autumn-area.png", + "media/gui/better-world-map/overlays/reveal/autumn-fall.png", + "media/gui/better-world-map/overlays/reveal/beach.png", + "media/gui/better-world-map/overlays/reveal/bergen-trails.png", + "media/gui/better-world-map/overlays/reveal/final-dng.png", + "media/gui/better-world-map/overlays/reveal/forest.png", + "media/gui/better-world-map/overlays/reveal/heat-area.png", + "media/gui/better-world-map/overlays/reveal/jungle.png", + "media/gui/better-world-map/overlays/reveal/rookie-harbor.png", + "media/gui/better-world-map/patched-area-buttons.png", + "media/gui/better-world-map/sea.png" + ] + }, + "metadataCCMod": { + "id": "world-map-overhaul", + "version": "1.1.2", + "title": "World map overhaul", + "description": { + "en_US": "A better world map", + "ru_RU": "Улучшенная карта мира" + }, + "homepage": "https://github.com/dmitmel/cc-world-map-overhaul", + "icons": { + "24": "icon24.png" + }, + "prestart": "prestart.js", + "assets": [ + "media/gui/better-world-map/overlays/colored/arid.png", + "media/gui/better-world-map/overlays/colored/autumn-area.png", + "media/gui/better-world-map/overlays/colored/autumn-fall.png", + "media/gui/better-world-map/overlays/colored/beach.png", + "media/gui/better-world-map/overlays/colored/bergen-trails.png", + "media/gui/better-world-map/overlays/colored/final-dng.png", + "media/gui/better-world-map/overlays/colored/forest.png", + "media/gui/better-world-map/overlays/colored/heat-area.png", + "media/gui/better-world-map/overlays/colored/jungle.png", + "media/gui/better-world-map/overlays/colored/rookie-harbor.png", + "media/gui/better-world-map/overlays/default/arid.png", + "media/gui/better-world-map/overlays/default/autumn-area.png", + "media/gui/better-world-map/overlays/default/autumn-fall.png", + "media/gui/better-world-map/overlays/default/beach.png", + "media/gui/better-world-map/overlays/default/bergen-trails.png", + "media/gui/better-world-map/overlays/default/final-dng.png", + "media/gui/better-world-map/overlays/default/forest.png", + "media/gui/better-world-map/overlays/default/heat-area.png", + "media/gui/better-world-map/overlays/default/jungle.png", + "media/gui/better-world-map/overlays/default/rookie-harbor.png", + "media/gui/better-world-map/overlays/reveal/arid.png", + "media/gui/better-world-map/overlays/reveal/autumn-area.png", + "media/gui/better-world-map/overlays/reveal/autumn-fall.png", + "media/gui/better-world-map/overlays/reveal/beach.png", + "media/gui/better-world-map/overlays/reveal/bergen-trails.png", + "media/gui/better-world-map/overlays/reveal/final-dng.png", + "media/gui/better-world-map/overlays/reveal/forest.png", + "media/gui/better-world-map/overlays/reveal/heat-area.png", + "media/gui/better-world-map/overlays/reveal/jungle.png", + "media/gui/better-world-map/overlays/reveal/rookie-harbor.png", + "media/gui/better-world-map/patched-area-buttons.png", + "media/gui/better-world-map/sea.png" + ] + }, + "installation": [ + { + "type": "ccmod", + "url": "https://github.com/dmitmel/cc-world-map-overhaul/releases/download/v1.1.2/world-map-overhaul_v1.1.2.ccmod", + "hash": { + "sha256": "78aa2526039c77e69252ccb3f3ff0e0ba6d4ba6c18a10a900002e6981d024a05" + } + }, + { + "type": "modZip", + "url": "https://github.com/dmitmel/cc-world-map-overhaul/releases/download/v1.1.2/world-map-overhaul_v1.1.2.zip", + "source": "world-map-overhaul", + "hash": { + "sha256": "03aa7cf573166a5a4b12c703bd63d7fd92f9bcf403ddc65cc7fd60b6ce2a97ca" + } + } + ] } } \ No newline at end of file From 17cbdce5d49f57b3d6f406f30724e05b47edd54a Mon Sep 17 00:00:00 2001 From: krypek Date: Wed, 7 Feb 2024 19:33:47 +0100 Subject: [PATCH 007/196] Add icon extraction --- build/src/source.ts | 63 +++++++++++++++++++-------------- icons/cc-capped-stats.png | Bin 0 -> 18146 bytes icons/cc-diorbital-menu.png | Bin 0 -> 7171 bytes icons/cc-extra-dialogue.png | Bin 0 -> 908 bytes icons/cc-fancy-crash.png | Bin 0 -> 6963 bytes icons/cc-uncapped-stats.png | Bin 0 -> 1370 bytes icons/cc-vim.png | Bin 0 -> 1105 bytes icons/crosscode-tweak-pack.png | Bin 0 -> 769 bytes icons/french.png | Bin 0 -> 178 bytes icons/junolea.png | Bin 0 -> 3161 bytes icons/timer.png | Bin 0 -> 1232 bytes icons/world-map-overhaul.png | Bin 0 -> 2280 bytes 12 files changed, 37 insertions(+), 26 deletions(-) create mode 100644 icons/cc-capped-stats.png create mode 100644 icons/cc-diorbital-menu.png create mode 100644 icons/cc-extra-dialogue.png create mode 100644 icons/cc-fancy-crash.png create mode 100644 icons/cc-uncapped-stats.png create mode 100644 icons/cc-vim.png create mode 100644 icons/crosscode-tweak-pack.png create mode 100644 icons/french.png create mode 100644 icons/junolea.png create mode 100644 icons/timer.png create mode 100644 icons/world-map-overhaul.png diff --git a/build/src/source.ts b/build/src/source.ts index 9f9846f7..3fc7905e 100644 --- a/build/src/source.ts +++ b/build/src/source.ts @@ -1,6 +1,7 @@ import stream from 'stream' import yauzl from 'yauzl' import { download, streamToBuffer } from './download' +import fs from 'fs' export type ModMetadatas = { ccmod?: PkgCCMod @@ -9,36 +10,44 @@ export type ModMetadatas = { export type ModMetadatasInput = ModMetadatas & { input: InputLocation } export async function get(input: InputLocation): Promise { - let out + const fileFetchFunc: ((input: any, fileName: string, parseToJson?: boolean) => any) | 'error' = + input.type === 'modZip' + ? (input: ModZipInputLocation, fileName, parseToJson) => getModZipFile(input, fileName, parseToJson) + : input.type === 'ccmod' + ? (input: CCModInputLocation, fileName, parseToJson) => getCCModFile(input, fileName, parseToJson) + : 'error' + if (fileFetchFunc === 'error') throw new Error(`Unknown location type '${input.type}'`) + + let pkg try { - switch (input.type) { - case 'modZip': - out = { - meta: await getModZipFile(input, 'package.json'), - ccmod: await getModZipFile(input, 'ccmod.json'), - input, - } - break - case 'ccmod': - out = { - meta: await getCCModFile(input, 'package.json'), - ccmod: await getCCModFile(input, 'ccmod.json'), - input, - } - break - default: - throw new Error(`Unknown location type '${input.type}'`) + pkg = { + meta: await fileFetchFunc(input, 'package.json'), + ccmod: await fileFetchFunc(input, 'ccmod.json'), + input, } } catch (e) { console.log('Error while extracting', input) console.log(e) throw e } - if (!out.ccmod && !out.meta) throw new Error(`A mod has to either have a package.json or a ccmod.json: ${input}`) - return out + if (!pkg.ccmod && !pkg.meta) throw new Error(`A mod has to either have a package.json or a ccmod.json: ${input}`) + const iconPath = getModIconPath(pkg) + if (iconPath) { + const imgData = await fileFetchFunc(input, iconPath, false) + fs.writeFile(`../icons/${pkg.ccmod!.id}.png`, imgData, err => { + if (err) throw err + }) + } + return pkg +} + +function getModIconPath(pkg: ModMetadatasInput): string | undefined { + const ccmod = pkg.ccmod + if (!ccmod || !ccmod.icons || typeof ccmod.icons !== 'object' || !ccmod.icons['24']) return + return ccmod.icons['24'] } -async function getModZipFile(zip: ModZipInputLocation, fileName: string): Promise { +async function getModZipFile(zip: ModZipInputLocation, fileName: string, parseToJson: boolean = true): Promise { const file = await download(zip.urlZip) const buf = await streamToBuffer(file) if (buf.length === 0) return @@ -46,11 +55,12 @@ async function getModZipFile(zip: ModZipInputLocation, fileName: string): Pro let stream stream = await openFile(archive, modZipPath(zip, fileName)) if (!stream) return - const rawPkg = await streamToBuffer(stream) + const raw = await streamToBuffer(stream) archive.close() - return JSON.parse(rawPkg as unknown as string) as T + if (!parseToJson) return raw as unknown as T + return JSON.parse(raw as unknown as string) as T } function modZipPath(zip: ModZipInputLocation, fileName: string): string { @@ -63,18 +73,19 @@ function modZipPath(zip: ModZipInputLocation, fileName: string): string { return fileName } -async function getCCModFile(ccmod: CCModInputLocation, fileName: string): Promise { +async function getCCModFile(ccmod: CCModInputLocation, fileName: string, parseToJson: boolean = true): Promise { const file = await download(ccmod.url) const buf = await streamToBuffer(file) if (buf.length === 0) return const archive = await open(buf) const stream = await openFile(archive, fileName) if (!stream) return - const rawPkg = await streamToBuffer(stream) + const raw = await streamToBuffer(stream) archive.close() - return JSON.parse(rawPkg as unknown as string) as T + if (!parseToJson) return raw as unknown as T + return JSON.parse(raw as unknown as string) as T } function open(buffer: Buffer): Promise { diff --git a/icons/cc-capped-stats.png b/icons/cc-capped-stats.png new file mode 100644 index 0000000000000000000000000000000000000000..757718416e1f01bff1ed72b96fd4b6eb77ea68c4 GIT binary patch literal 18146 zcmeIZWmKHY)-H+#cXt{O?(XjHlAsMV*0{Svf(Hq1L4ySM;O-jSArRc1OV(O@@3rsw z?sv{N#y$Ub_vr4os^)y=tf%Izdg~osk*dlvD2RlJ5D*Y3a`k;Ns~31OPoi77!2~i@h131X8}Sf|m>IHH;tuPvQy- z=U~2PL1k(CgwoO?n~}m9CSbb)BVgSDu7mZL|4XIa^Pc~6e=}he0$YlvhSx32jOx3s z@bl%D`@1FKjYnVqJCE^apB10>4UfT#%J1K`Z`#{EGP92!ynRK$BEm0@IpZ8$eo;o? z+UxdJ|Mt~2=;rfZfvXIs*I9R;Pw-ZuJ#XHtHGYr1iBe~}>n|TY%i?QgNveE-%YGL% zxZAPTDa2PaG~O#jZZ=+mw9-B6oa2FVf7jK2LPq9lm}sziAO1bl{f55n8SJ}dG`=<_ zvnBlAsr}Ub^a}skgsusuqPCsZdc273`_k^PwEx+fzmq{_Ix)|!Vcodd%O+X2$kQfi zQ(NW3!~J~V)ZTZI?&#@xP!7H1@0~ z4?q4|Hjcc~H(@FzV*C#La%XnvwxA=T=d%abzUjH(`~HK_UiqF&aAU@JtO~D zng7U*(er5b8ftBWY2RXz&tlXsr*kW235KHYci2d#H#QpDGsIX+DiZ!LDoDTdIz2`V z8#}Kry(37EQox?&HF+ZEw1Pa%c3CHotQdPSh99rKb|ij{pNjyH2j8h^gRG+;4LzX!x3a6OU+A!JV0#$crWKOErz5 zp8JuY5>@rd2@|>D(0PEZD8qS>t6@{&?YDvi1-iQ0gHoOjm#;l$Om%Z}yr8XtXfTiP zq`v#g&4ihX(9M($82X05q$ggQ6gV?kn7*nA#525d&TlvWty+fXlCen*!T0j(le(qvhb>)#9}V9Uc;)d9&?E6 z6UsK%*hE3oL#}y!aqbaOKO2XNdp~P4^dW`;-z{G|AGK>A$NsVqzpI=ZeQI`+R=9aF z-T9b&oRak5yYgIRtubhvfg_-16{AL`a(kA$D{tTzo0{^=S4o@pQy*W#FTDw}svax5 z5S(WJIryet&R~YluflGw_49-p&_j9e@PW7O5hX(MYbvXTj8#=bHBDp0-e3;rp_Q$} z_czN?AZPvbpjoe$=eOlabzQsswj)>%C+qBc%gl#|I>*Vqrx~sfansX=mFW*`HZfyN z^GVrlQ1fv^&rfy2Pc)BuXZlAlSerlYz4RT=pRaqjj~?F>`}nur-sy+;ny**1(fW-; zG~FGw?lz?Goz;XOWv#W8TkI?Gw|ZWnZxv%hYaTxHAOu z%JJS(wOZ(LyZHuPU{{RmrD#O>;^RU0RW?UEU%~}d0qKv$zTfoXxenhuSw(v5HLV7Z z9?{f)G}Pr_-fD8lpmtvT{@~$qYe-=o=1Pre!GYaglP4TT#?@p>z=jDJtlw>VOgcWw z?yhjY(NA!GxjD9*S@fx?xC5Wss5+Pn7IjQ7s#mbg|p-j)y7kG|ZeZS=Yt{sONY zWw(v`G#ZrLNQcFaw_#*A+ZXt+z`MV9L0`&0rf63Vnm*}w=q^WFM)|2XuK(G?ip#@5 zozWgDXCdZ#ADit2_>^_eGv1q2`3}>cXui1;f&!J*W=G*x!j&Z5*^6;3bW={i3B`5q zxKiN9l)V|apA^eM={~I?ctP< ztZxV21|%@y9xmzKiL&FZ9U|_n@sc&c`Efcg1@0(JULPYVss@a?CVTnQtD`v$m%RCE zG4hV=jvj+mq6VkOU5RiY1!qj48l(yV&+29&8ghhX`D^GhlV#*E_DQfp>v0yw^*Sc0aLiG2scxT zK6NE#b3h|_sV>H+mYaYF8dzcHRIR5Z2G4oyY8tbx)Zsjd3XhIF^WOKSfM$w#aKHBu zOPba#*x9FUE6$M5WJ4?_kgSWV@lA5Azu)eY?8PS0@-KPHh{N03{#Fd)V7d7ir*CF5 zj1G(o3LTl%9ckIRG_9YI#kfaXwwkWKp6A<~Gho`F`zO%mu0RK}hNi?`V39Xo9707= zlLd*5&XG5?1J(}6CAQ*`IwLjoM;|S65qu$O6B;D#?X(93@N6bsUU>C_UJ_WJ-tO`0 zveX%mW+nCt9@Fu__!7q9Ma06V-WH*B^=+6}aG$@aMhOvrPFS4c&{bq2+OWQcgc;~; zd&>+GUFqV->%o9!5V7f$lSYCkw09D$s!Jk#mN@tHAi*_{czYgntN+FfI(I-s_cQ#2 zH9`OlYtI3mRX-FauI6Ub+j~QZP4=+Q-aHDeqO9!kLtXGdyfwzr^Dm8$kGGiD+YIm4 z)~BPvT0c<$T?9%Zmqldrdj(h$8|&$!D-f=xp%5Cat8IFRo!# zS_eJ3n(bF1Mh6Sg0SlH?8F=L^xYje+xPy!#?bZPjvM#)iAzy8Qo^EMr{cRW?_I|xv z4);!1R}=2m&$0@)NvGlP?M?0>NJAxfJE>ZNSt#Z9NupVHnzOWF65WLn(uCrXkt?TR z$>h|=L}&ckjE|_f3j2_DY|}2VgoaXn9T-2H8bAedyHR|@H<4WGH}dZ*MEd3I2Aqh+ zJ;w#?v0lnYf%rtbN>3h%D_fh}9m@ldpByepSd^1b5ew+Z5UWHWb*nke<(}b`g0<5u z5Ndr8rbjwvAzb3zLj#yPyuQIqVgD>|qL2#!bdLGCwdCAAd=a1g`b30xKqdQS#A;9^ zuewAM8MY*aGa3?#S$V*23!p*3(qjh;1vzpKgKyCpM5RS#`W+bp{DEx36hYu)1a>@S z5-o&b8CPn<_z@dL)K~HQ6BD5}I7^sb;0vs<5H=R^^?g{cxx! z(K&rYD5emtD-5c2)94A-Q3x0UwHSS{XF*5{v@G*n zrX7UDESR#hcm0Wqo30bS>4eiejGHi0|%3|Qz42mPqRouWnLhIo$( z%(;?v1QHR<$M>gNjTMdoS6IH;iucF23Ni3|gw3v?F$$GVF7^XsXF;82Iz|8<6wWZJ zsoL3x7o>t`DC>*BnI|IkJ+Lgw1z``roNW+0yniZKJC9mpE_4KC|C@smhMR~K8&M2B zJ#s9OjK_{oXvz{x|Ee&hB&wT^_xA0kX20(sg;?XV8x93Tmxt5f#xm~iJ0>F*IMT+R zEa5o9uX-`mk$&V-8wZoc^>Hd2#_NRj$Q6r0rF;zX{5Au6VL@jF2x`gDL2@Dtd|{GV zX$#oOUwVjhFJwnlqMQc>8fasnN-_)+QTxjkw+*no_shIGliz_7=3xh6+|rl@o~Vjc z)hL+eFpO7w2)y7&mrxnJaT7%O(%wJ>MQ(u>iBvM8zPPIlZ+oxxXd44ojxR66KXeR# zF%qTe_`Z>WHDNRumg0~JLx7fXj=={L!FUJrK{(DZGHd6|g3}+`>1Fq@_I%|+y@->nVB*ZAg2bB#Bhd!C;NnuQAdk`#NRX#+&FpS^5I;de zlH=9BH#Fb)TFiMK8nLt`@bqag5+T!U`0Sa+st)nR%+?%{=KuZ^i zdIoCcPS`{P1$!wXCy5@NO+q$?AFc0p)&~+jsd5iiLKj9X{reqrtZOXl^hpL@9Q*w& z2JgN^qRZ5o9}}GPZ3Wd#GofS@tfC_yQTbr^S{iwX1q7pi*(%i4V;qVq-6O2PE}?WN zw}%zc4=1T#_zWX#;}1aE;z8HUy-B42$cx!8qPD4yey2?UpP_r$i0|WL9b>Lv4Zkr_ z4pUA{Km5W-`EDh5uB)tXtE|rzj$fqt=2p#nt@(4j(K};4+{LfIm;)0eyb9GVecIbR zjG$6;xlHwDmHo$~-r~*$>5R9hD%Hc*^j}O_;vj#UKRHP!BZELcm3rop1|*gJs4mDl zO0Iu44cR23-vXSb5sw%|%%$G>WbQ=iUm?$J5=*?P2#a-U8!*GHZoRnG?K>sb{wft@ zSX#k6P;4AF0OJ{<&yE1XB9*$1P@Q9srQ#EX?>{`!AkR4037^5$Qkr<$qx=E(_o$Uc zW*hMhg+UafslM$&>=h>Pq;4gMdQY+R!MC(fAR5Qa4H!2{PViP|s=D}-hIVCuQ#)hJ z;|3S&Lm+zKC)WD*Y!AnYdMaW@IJjJcoEtn}DeAb^$s8ESRTbTW)g?s?33{k5xHSD z8rv3fhaZWpDOniax-1X;sE)T*_olU=18tBrj)MrvFI18IzQKi@!kypV^T0nvN}CJv zLjrLc;(NivZ^_>3I5t8JGS?tkp7Nr*rW_O^XdG6zfkFtP^YDQ;q$c01!igRImo;%E zTS_ir$0_}T;>t^?QMfKlEf78zZx7;4ixpBMbT^5Kz162&&Rr`7)iXuU(+mPSMHG=j zljKopl2*(%GNoWVAZY3^>9j|OF^Snc?=h??JmUMBM0ovn=<5fWe9(RHpRig8-^7j3 zT5&ljRpvqKDrHbUMBp2fVCurx+q2x344L^MwnGzBldU&?33N>0p?~xc2-x+-X?eks zLsq4rLh$d)a)8)fAMOjs3c)D=Q%3!uooS&Oj7wlE&Dy^oin;Itqu(s@V5soq!kpR^ zIM%(Df$gEAiU}jj}wK!o5ciE4GH` z5&j$w^_K44nMTxT{C1V^453IsRKwM`P*rZAF1|&j`dPj_Z|Aj)a2)pV4m9G|ih9LJs=E+>MrRM<}S*ohKzC%Rr)O z{C?Em0!6Xl0x)8WX1BWRuZuY>4`?1MdM^ zXn@QIKS~J}FibvqMt~>EOlRV@`?`G2jH= z1P>7oQ5_93(qOhYGYZwYd#fVy=a#_=bZNypg{7f(4yxgD^)#ZP;LTFD3xn~ffMpt@ zL|cnfzT`Viw4RPAGMv1k?O7A;X9VRp+vu`b8Y>VmsB4N=>LSL^qCwF`%<96ck{xj9u_hW$@{tvkwPn887dQHk&ZQ7-VPN7DcK9 z@TOWsAfI?L`j6pZCw`o&;F_t*;z~5kg1h zm-|U)Mb4Y}Mvp@v|VWMI6DofFFE-7acjl&l+>)@g@TX zqijmZ-`MF70RGR%ZGoKHY3UGxm_Y^ZW}qd9$wEWvkCTg(7O+~{d?%{Iak4}Z3HI41 zTWar=gm95VzRL4^`dZjep?bCy-SZw#2}z+~kFuNNjNg`*?tkA68Z3zlP=uFifE~qB z^8w{q%l;}0D@dzqoD{7n32m_JTiF1RKEBP_YR969)g#yBo#3xyNwOtZvXe)X_&gK2 z`cwn2>@?DC9U~_7_?A$PU(>zP78>eFYFZ|BwA?B5+O$sI`dRD#SfV*QZ+0=3&NMAf zG0r$B8O!vusa)|zv0LZF2s}J{Twy7SkSqyvc+G8itC6Xd&&YkQuw4La*{1f9(S!=8 zwGYzX15?I{FNK*!NNbePbaCLN&5JCP%^hm3{TjX6Bv1YQ0X#H1UNS-_tOyb6XCcgi z;&u_PyWCx|P9Kc9V+~yfnsF_i)^uXx4+kQo$!(ldth1sG>(YFpaNpR9tmoHaP+Q?5 zsL?(ki6G5p#=( z;2r~zs?nzFI?e!r20bRVVt|!S4=I--4>h+~$V_Dya>C*zM!0o(PlAlZ7c}Y) z`eZ(Re+%qHveInGb3=*2hU}jHqa|+@^LVd9Ny7V5go|-6 z|5DjlXgZ>qAULyS)I4l)s+MuGIW!?D{Qd8f z4agxeDP$Jfopq8zoQbw0VkqC)3QkEGJC@c`%_nJMxQUAo5QQXg?RoDy6RzWCQ=g}6 zN@P#SZgd?Z6utJTC8K@~F*P=zmL6qR#kpVX|C zz_rOF$)U!5l*`!SopQL{r4$dQx7~}nXr}VyQ{1Z$RfNTyV&&ix$cMd-^XI*gOsEkp z10bzb)w!V)e-(EOx-IbhHdQt2$*+~cC>%A$J2}4TKs7p_?D(t1=M4!`elU!f49)YV zsoK#1=8yw`_F9<&a6oU9TBa7r6hTtN#;SF@4xQ=WU%iu8vF zgSUjU#$jcN$T88I0@lEr{*fPYNS;}046#XSMxyeckVKZ!jenswCind~wQ~=9tJ)`2 zJbYh_K}u@>VWf3JGjbTLp4Vh`KsdZwXakvi#u2M)~^;xS`;unQl?NpS6O2kdb|e zbA7AJE{XWd9?}p5hnYM5m4{9YoqPE-)8ZD~ZtW*&DXL_tV%d+f?Pf6SjUh489M3-( z{1mRsTu|!qlN@FNMiuci@$L;!ZWlAGu0+1hyeyzuqznY0khvnsCNc zpM+)|dfpj*IDk3Z$-=%&%giDn?y*u;8}?s4FnlB8ExI!K@t5hroSssz75v?0-xv%h z)LU;{`2nsp_2WgoCtxwRjcYNBI~!w}Di{06{yf1qj4Pz@``jmM1|!SH;IZsIfRqEV zIcAA7^$({J*ag_Y-3-joo)}KsbsFO+XwQ(4Gt=Vrwgapj7e&#TMHJcqpOu*q_s?Jw z;1R=52W@fE%^O}WBFQ$0GZ>}?s+K|w+`3WSA3|Vx-s!r@2daU8kZK}f_e9opifI} z;^(V;tiIAbhkcrm^%%0+pwqG6y35R8DY+_j%odnti~$jTRAquxMS#3&+`D$Dyb4QCtP05U<|f5f}(H*ye?V(#u{Wr(Yypqi%6dF@}iOVWPB(i-d(O11d+$ zzx9WYy3kS28@s&4FIE#uCB@&&D3FdaqgX)h zh(Jq0cJW(~tiLy!S@bl-1+7H!bNN{C#?f~o!`H`+wLBPoLtk=ZK9-eyNsljm$_k$W zs^ZEbkM?sjYY;(~>0?M4*o@VBxoPD_VQC7>cvWs7PbEOkaMrp{D{_$y$#c_;s@voW}u_Q>}Z!N>}Fl5Qd~BYDYrfLyKOl>abDqt#W^UYjIu1rpG(EcZr{!sOGuO19pR=gQcy)|an&fb^ZTfu6J@a+aEB!e~ujHC-E zE4>tge~rlb)q06sn_vB!EUGKjyhx3mJNSefm9`toSAh@}3}^hdB=BSUwviqE6V`O6 z4P5OmKdEOWy(~)JmlewgW$m_kXgHE9UDr~TjBEArJOS0W7kEOs zBBLa)&qI>MawLsw5pkw4lMy^k(& zHj;9cupeD;!Paw#fg2zCL@HI8%ZfNm=<%(55jM9-nE4F`gcYhwiH=PCGL7bqG35*jH*S8gpsoJm0BPJ$Pc_SyghxB4 zhy?0``Zmrk9uZ-(szR}Zpv3f)R=KA`hEqw$e?ub-5$M=$<^vS!vdH6k1l9BT2MD91m8l0S8 zA@8lo$QjxRrDuu-dSs72)sUWUT&!cd_hC(ecn{>~2vm4^AQr@Tn`+?DK7U0_r^P5{ z%>(Vm;^K6v7{K#Z2{01nf-r1uL%Dm!4CRa$Gv;W@`tF74MFPAMLeo5M;Qg;OBmDF8 zZUqoMZc5v)hz(8V5WOhhx7>F#TIr$jawOIhD%On;Ei`)<#(!*fj&qnoB5vMuDm|(? zD|p^tfC@yjsw_Va@;=S!Yh8MBs};r4;m&q9zxDpLOUBPbg_cZ#YF8la`@9e^rd1XX z;Vp|Pqb_3k;W_{FnZDCpGKv;hm;Flh_^{clGVR^>?QYAX$Evot`I*=l@Tk!ht5R>L z%PcR#-Ny-=G>eEnyb-j*AZ3 z5<}75f6@*`w*KN;Efl9x6VNUhh_a+QHFKQ*>@xC1xV*BWo+bbIUI1)TpXN9p)6v3F zvy-cVVLL_d+ZI+|0?LQ6IruVPt6{|_z@?ni^{x7z;wI61z$EgMp8smkjW_Rw1)(jB z^>;9X>ieUiA_aho=AK5;xEV+WFe&#QN=~_VKZP<~fbf>|(G%^Z-wuhtn?OwJ+G?ca zk++c>DPhfr%zax>@M4Cw(OwAzjM$v$hJ&z}(xc)sCNd;JbC0h|$Q|(i>30s}kn83;$K1$uk;G84YI;QZJf zUh(tEDZiXxlSPD|vayoDUyo|KXj}oM7M)hqdSl)*Ui3+G>2=$KAxdJ7c{fSY#nLgL z5V+NxTM7WFmPY~;W{yBmna!3#E!^&sBKhVdku`Q4RSBV|EC}o=J=jfdo1#!nsdYlMt?Tp3u=xX7-ZZZ?OMM3P!%&~km-tG+k z`f2afh;*BnxKNM}Z5>tZp)zPjalS@WbeeHuV$Q^A_QHA^YpSC?@D1%UA$*D*WKaTq zV?BG9n$TW8yrBJVmcOmR^ti26U|Fl6vhhmJTHWLV$HXWS#pk{oAmOxIATi9eQ0iAr zLE72M& zn9V`SJ|=uRaNkXC|LfdlgpZ7Wp*4fHm{>Myu0oeehh0^zvG1%K3#F7i6C()z!N0#b z%OmFTX9;C{O3B`l`OzFS&et3+DO<_wa@1Z!ej^n+o(d`liHxI5ro8L7V3Mch*M+>2 z&<09pmE%VdO8$OyNtU7mrRL`HYMy*l+LjiFq_5`}(<7|P46aMd8R=EZ*n}VVqn@xq zS+Q@xQ(KF*CItAKJHjjd7H_1CSfq^_CWZ=xc&JzY+@SrmBZ&?Jppx7dNbw@6VRWvvvH zL7SLClbWZmp_KKL9?Iz`j#u>CWe>m5JIL`6`tU{M`;1DPJ{XchC20N>x9pim6b?V& z)(Jt-Gyx3=hZ{<#ikS&_c^^B^={Dm;SAJ8c?istydcJgfGc=L$fx|#nIUQ_gC}yEE zj1UU(1q1$P@pf1QU;LuMv_Et4Bl4QYVlaCJvZ|M5*oCYEZ&p3}*0EYQK4Hf&t;Vm6 z{Uc(3x!Z~&s?NkY56<8)TqcXqyldb>GrGGy$xB$V(iugiZ_9Vd9}N%>xJJ85JkObe zf{=v}w<_X_&nK(+952}BJP}U_rnyrrfd#<2p^DQ&My zji1CaRH;3Ef!oYOB^r{P0WGUt2p&uq$!{enSSzM`hTA{(Pbf{-*EfIpI_sr*S9|23 zn;%9DC0iYq8kmP5mS6J5)nvlPtLk&RP2HgAn(qg-4V0{=v6~lWrB2dg^Oc1fazKsyxvvx>zUMFz3S(Ngc{vzOGb0ElHxR4E32S>g2 zSf%D~XAUIOnmSi|9^KfoUhehbj&h`BB`f$T)Gne@m$vwo#`#didAXbRrihw%`lGY5 zT@X8E))ot{Mho|IW%T1>W2)JQlC$!cz8)i7?w7IugYTxuY+}^FH(8i3D#2U*nyW9+;3iRYKpAcCeVcN zkIxoQD<~49@>SC<7E_fkL>3?EqL#Vn@{_Z;2}T;yeCqo$O8d)coM$!OacQy_V2?9* z7L?P;>#7H~7UT$xkc+Bq+U6R6J4cPqAgJFF=4LJHH&~k-cOc6v4nGW~Y3{d^>p~NP z{pBdcCzQipTZ1FP-ylozGTS*~K<)2q*~1asSDL}RowXroZYN%{X+@sjoOsW`s6$o; z!q)y=;TcI74SVYDtYA3rIDWwPL!OZdWx9XAZc;wBoXWtGP7Y-QWPF5ST>Lpza5CHE zK)v{2Ek|`rVIsHslprbonDKVzXJWHHDj|;6(I+xf+*z_}E_X8z(mezxUzr=lPw zK6z#;N@4knu-lIm74E4o;@Xt@`Tr9AB3fJM@{>ZfT&!*ROx5FO7KD zRnJL%)iDr%wy1{ZB!eg^8GT)3P1zWAZB#hc`*>4$91%r`=-ALgUD?|bD5{CC5W6kB z`D@;Obd7AeRR+9>WVBoYMiBzoGZ$63@ER=FklLINP?kk-R3U3`D8_o}b*Rrnf8x-| z&3F9}e6Y|%oo%@kU9(_DImkK4r=erC4bg=JM{nu#Nlb$k52M!I>0V4)-ZFB`tdPw_ zyEj&(O=qsk07VlrEhKeTIIk2=g$HQ>Cs=e&SX9WkV@3bLCJc?z5NiNU3+Q&B(X7@w zuk5d-P=EcSKQCxE7WfF(nPjB%l=|q>zC!i^9<6@I+`@YroA3Hj;0hTq$CDL)!N_yW z(U}YhDJ~N0I3p@WmxiwTK&?G9SyPuOxKx1QmWSbper9qFRfO7e$9rVTDX{}l{k*wj`6UdetfJ82;-#;wzJ0Kub)YUhG_`dc%irS2aA}zi z=~I^UU^lIJx6G+A?3rqI92>@Eq5l4S5z;%Rzz#zS=sMrXCDiCh4Uco6&Wcq#JZFtZ zOsFJUSblO7$fDdoWI4Wiy5<(=P3={OYRCKKL2XYE`f{u)*3dl)N|+jvW{!4#o8~>A@jw6(2Ua5B@0blx{1@yHB*Y57(!V{d}Ol};JO%i_qS zv0b2Rg$i7c>ED?}bu!itY!s@@HfF>@o^8JU$|pdBwc`Z#h#eScSlYw9KJ-(D#K# zyF!ysTnfc+KAJScq*C0+`*QnZ4b!-L+)ftj@jmBw#hASiE98VJPe~tdOhU0(EUv{p z@v-k0UkF`E_w>&8=qNiC;)Aa|f-D9aL#&_CY~^MhWBCpvUe85X{+9M*h{A4);RF0H=@>0;>AuH#&&CDj_iG4H7@**j=4$Jth@B6uP!xtTIAgdO8>s6%fvJeG5i zFh!i+x!pxOcbWuR!bZC|W%0@~;x6jin`v`uZh|(e@~l6xm>X*If*rMowdPuB{Y?Nx zqVpkD&FO&)f}CeE!k&4JX@~I+uSj@8eb<~>MJ0TLHaIr^tvh}-UJMj z7@x|eAP>era)$bldWhtMhoGJsM90&X44lb|&_vUk_1hs)Q3EHTfR)~@EiG*g{^Ohv z50EvnPMuHTEU6F>Xc?f_LovEaiu`6^J7yDeuqlw)!_MI~I3OSdMLZl#%xr)z08^kP z$X z4QI{Qvq>!KKxeS4lNnIT4QTH|`FEoZwyw^9x9RE({9W~j-?ru!EU!-eVfpVmGIC0) z|J3`W|yEDrXTe>D6a82;Dpyi#lOJ3C&H|EPcM4ZnmF(8LAoqzMMw z3Q_#_7VsPLkE8+!{*^BLieR%p6#ozgn*YwYzj998#FFKYq9DtEC;Y!4X;^{X?f=hk z{w4ZP6fq|kcd(OR_GiU03>2>za<_~m{FqK2!3gDnW?^zS_VBX0gb4rSB(De)c-E_r?v#x z!SgkXtz1;x?f+Zz|ApY62#O#xpuIErzjOWXB7f5Iw}t4{=RfOS7r58;lI5QZ=3i0r zJCXh`zW$27|BDu0q5os#f5h*9==u*`|04$eN5cP!uK&>WKVsm2B>bP~`u~kC#D8tM zf%dQWeeSOt>J<^{+1JfDtf_*GB*e?_cTQVT;%g0pgRGu21OzkX?+>KM7ZJDDN;nre zB`LTaXhKM0_7#B-s;^Z9E>gNK5@5UEyC{gi?$!bBAQvmZ?^}DFKvX;k2r%Sp#?Mei5DO4plM>PJ8Uc6xQ8S;ANrH@W?x3Y&!YQ6pBn=0{024@Zm)C>_xu& zZE3TMDg`q6q=^({wPM~*$+@ruLAU6Ssx#_Q`SH+;)>Ixt0G_Hpg3=U69(Mr??Y?0ZX-aEbn1b(N*8xZey^Ihyb!EB& zWh1@9{jA9C9^=7fdkPTxws3_YQ~a=xfb8*az7NQgR-eRkMRQeOp+=f|aK@-Bs)$aV z(B}vCoX<(RSy`28nj}9@+C|)^b8`?z^Jj2V5Js~L2pF*FFb#wbV7m*a7n~2ek0C?g zQfL%gqidl|U0r&AUPw1yDzT0W9nf^GvDt=*;-(E*5j&1{?4o4Twh$?7XwV@P^6?8g zl~o-2RYFj^`2G;K6&vvlY`%Y0R+?jN#oXHNNQbngRp7B{WcawssWUI*O~IMh0B@%*@B8(KQ8g>Q@8>E&MQM$;Km? z_Aj0r1gUt+0xR_qyt(*2zWcw3 zyn}4sWojaxzI^GLu3UV%`vB|kcuS7`41=oYiS(ImSnTUn0~hZtYmYqGa>eE}LE^cA qnLkQUAouN1%l*4SWlc&C6iJCeUgIyM9k1C7At$9QSs`v5^#1@n8K}wt literal 0 HcmV?d00001 diff --git a/icons/cc-diorbital-menu.png b/icons/cc-diorbital-menu.png new file mode 100644 index 0000000000000000000000000000000000000000..130a0ebe6b1d16fdee8aeb321d9834505dc77be2 GIT binary patch literal 7171 zcmd5>3s6nU0gB(^xubj+G4+_OG?i;he=wAQab`{aBCx z`@ir1|FwqMEJ;q9&<71b7K^2ied72Oc=l&kk4U)JW{v#CVu|p1$Bj$&x?C2^&=r|0 zc0N#<+_&nVlQ)(Y=VeA^?oF;*|7@vs*?@u(iTA%b>(JnZlhW?6k6SsYYKm{(P_1x8 zPM`Yj<){qhz1m~Yvi&)6DJQZgtxr4}^YGc_7tZde$cnXY$TYN(_C3z?$9{TO& z{)-B7Eze2MZTe(j`W;2~*V2DWNQtW&mv`~>!-s8==#9$U(Xr=;zmu`r{~vAVH)(4x z78a!1M?|fQs-AO?^?cmne(R2Fw`SL$$T+q2`P@BEF0Gi?DB&Rvg61}3iB8*}G- zV`onJXux;>$iC-|#b+;_`tA`@lXLN{>wny}=&MuLM;+~cTKV+Xkv~<`MMo`;DBJhq z?gt-#`PU&kzc}cu9_{YFy~6ALD8lz%uNM-gZ;ewoSmVajCIu(Ac{q*(90Y z10DWgqry0{;lKoj2?Fozf~Ik3SRWj>nd7jEH=6_A6nG8vk>(0aIK>H_v4Dm(7-!%? zpnxO77%>t7d!z?m2=g3d#}ERI>Y5rZ%@LFxT)_Hpp@w(_Cz^T6Dn!q%fFFXfhuDY& zcS2;&5;QW#sDW~jdH@KGdbX5pth8p+=JhRbSrEIMX|rOA6p3ooP-VCXe`AgbxCBI^ z$(WG=ZGn)PZcz1S-eVTaU#pw-;-BNQAh>ZKSW`4aT*OczMASwJby7u@u|zRds0sz+ zA#TuVIGs)dV;I+|%tjQID6*SKvKvB6U@a6Ek~P(#f}uiGhwM>g3Qqte1dK2y2JuJ^ z;!-u@fLa7Y>SoR;R1E7=7xk!w%^~Ii*nn!rgE-8IhUJ_|2nHaWoRelI2KX3^29^+! zAyn*=u-n`LDuujZ#smWCf@LzL#GznWmT4m%<{YDBFbIab+jIa=qCzZH8Bv?6VK)=R=1m^qOn?T&79xkKu1X+Hhah->S%4{o z1%pck7%|O|5)fkk#2~T&^EhhZ+__^%)#CfKU1(sc&JcN7#Pgc=erHD@TZ`qhB}R19aq zi-5U@YudXSK$jCEvbq|KM30y235?n&MuZlC#Hsf6ItfT}bP^E!#nwIn zEwAn{P~*gO7^pF~t^jH*MLj6?>Fd#y5RU5p6TDv-Fe_1={NYL6I^;gw<}dTCD& zbzF?-=30;@YPl8|{fQWfV*Uh>Xe#!uR*YH`(>07ludVf(#Hj6JMA#-k;&j`4oe9)Y zF(TW}WF#WDrx&i}+F%sUzMYK1#e~CL3x8;deA>XMWicXDJ7Xjohxe`|P+P@>^Jznj z#N{pbI#*i9#K5O|_@og0_RPLR20uQtFGT$FrmDin9{6sIN^_=7fd6;c?c>KhG_lXd zRS_%mt-TWu9f@Cf^Ol2?{kD;> zSM5sEr(XPhy3@CM%bC;JKhG-Pc3{}dEZzRfD^<$PWj{q1J&@l!A$>mfU-#*n#r@x{ z{djBPw%N<>zJ2=l+mF@uoRJh=6#Jp_i#*9WMw8CvMk0jsHZRwC7r~BsBo{cQ;-*4}XwBG+6 z7JKmSGv)4EQzy*0bOBe#(VC3+Cx7*UXH(Ma#py4d?3Y^KOUI?_^vHKNj+pOH{Jq$| zqet?v1KpPSw%6aM=lfU0O?&EX>4Tx04R}tkv&MmKpe$iQ$>-AgGIDBWT*~eK~%(1s#pXIrLEAagUO{|(4-+r zad8w}3l4rPRvlcNb#-tR1i=pwH#a9m7b)?7NufoI2gm(*ckglc4iM^PrkWiSfT~$W zG8Ppx*;TRY6@Cn103nP?%+%wl#WXy}*FAiEy^HWH?{j~SUL|KTz$X&VG2O6;H;898 zEuHf|agY@yh4`F!+@K2*KXP4m`HgeIVS#4`jdXIJI7loO+E{L5Ry0)NY2vV=YLqWz zTvj-5aaPM!*1RWwVIZfiq_|FV7%?m%js!%=sG@{2EJSG4NHLM5{iugOS|jPHm>lansU4UDH8tyqcR2 zTYQ(C;eY>N-6q{D`8G(z>5$9LP%&V(%6~DGx&=b8~_qg#jfi{#v=Ip z#~Xlv6(kGg<;KO7rfEz$rAc&WS?5Cs3UzVO34nI+ndORtu&#L&cBK4gC6>-B36;0W4Rd%gRj!7AoJELd9s-ohCy6W0x zJIZVKS)x9&)Ls9hdeD%|)p2=cOG>uft-rec%n#AE6K_==Ty#Cm<6eL_ZJhe|%-q`p zk}joXH?U5sQ}`|GKI!);giMakD-8^5B8C zAxB0p9@D>Gvi!CGY@d=VJrYL#_e|B?i|NNw-p@LLr(W8+>6_FM>HXzKe&&yZk0yV) zZTOkVl?`h=S zIJ7x_WaOY%j$NBDep2l6@;CDvFMe{QrZn7rZ(HQz8C=A|{HB3X`xi}@uhid*J~jJ% zN<~C$$@0vK=PouyBxJoEH*|adOh`d=VaD{i92e^$cUa||y$(o7xjTKDJJ&YfQuyv1 z-8IW;aW5=%TAT}9I>(bIZy}de6M0EiRIFhvz$IytCfeXbB`vtfw;)&ri9XE+eUVT~U|v{Ll|X4WuWauG(uSM&#lt($%3D$(dJY-BuSAkX=!c z4Qde#v4c3nP%)&9?bxXxGR6}Rzy?$k9>``4_@+}Pei(o#pqx}AF~CPBG(>?%5`>D} zg6J?-fPx`!B4Gl7w8JzBV`P&>Ns@3g9>y4~n_6j6s# z(8v$INNMOugr~!B0B@u~EES2zRz(#ZL=YJ_cmy&58W3BEoQO3=0BITo!3oSvrVthp zT*|>p;=<*-|0)`zR%rqimXv`qcLEvfrSa6=ira5{5 zxC+vRheKnKMt3R}y=`!a8MR^Ic{48FSU{R-aCK}~Na4}Y$})CBsA)7IpFY9fU?7{M z@lbkJSPrsehf;T91qM~Z50b97W+JPtxk3&eOh~qLNV(9Op`>|T$z=6G)%hIZ!1=tH zUYkTpT_dbus+E$4BpBQR4ZQPZjb%oFyauf?GZJl+959Q(|u4dFS zn(b!PQVa{$ZXnjIW$Q@*JxmPC>PawSJwB|(FbYi!3(WwrL!q@g2}rPY5)k}j3r#@q z*&POIo|p~;HRsk9K+VOloVtP$%bj99O2wOYie{bE?y7C`K9`&*p})KM`k z+sno^$Hc%EX>4Tx04R}tkv&MmP!xqvQ>7vmhgJ}A$j~}j5EXHhDi*;)X)CnqVDi#GXws0R zxHt-~1qXi?s}3&Cx;nTDg5VE`o12rOibF;h=w7PIiIuY2mGx{L8F@4i24Kq;6E@QK88OgAjz4dR(i zOXs{#9A;%nAwDM_H|T=Ik6f2se&bwnSm2pqBb%Nl4ik%|E|$BPl?|16nmD4U8s!T) zmle)ioYiWbweQJa7%XTj8LrbBMFLAmA_WmL>ZqU!3o+U?QcR@jJnrEiar`NA$>gel zkz)ZhsE`~#_#gb9ty!F!bd!Q{p!dbLKcYZj7icwX`}^3oTPJ}38Mx9q{#p~5{Up87 z(IQ8{;5Kk^-O=Pd;Bp5Te$pjFawI=3p;!do&*+=-Ky{D4^000SaNLh0L z04^f{04^f|c%?sf00007bV*G`2jv450W2308hNq+000?uMObu0Z*6U5Zgc=ca%Ew3 zWn>_CX>@2HM@dakSAh-}0009qNkle2ZRW;2s-+9(w`JnlIFK;``}Y+W{1 zu-|p44}kB^1_11fD#c#UIS=+fk*`t|06K{=xXurNs;a`r=kxJCvz(_PE4g7a%;dhC z8^my(U-(xg@caGflijSTOBda@8eqR}V-b@4dFy8Ix|Q(j38NH3M|Vqnx+x*dbzV2_9wyZE*HKR4ty2mGHgd zXe*ds5n$Y8w|`busJ#CLfRe@A`KTWGy9~_o zH12|N9~{bhwzXZtp{y6GS~{z5N{*r#JPnm{_<9NHcQ8CW3?MFAou(m=jxyenU}f1H zcz2Hva%s`i7tO$UE8gyC<>50&!D}IvO65wjb2HaQMgT~i9GkifiF$OsMbZH=^!MEs z>~uOUxT>nkf<1PJ771k*lKfY zdW%$8qLSm*?52Y&nwxWS{TbL+o3#d*=#@wZBqn;Lf5L#k>422i15?e@0c$^|i`$*^ z#Qawe$~?3?=K(M<0Fa$F)>|ZOwOMuzeliYTJOe=g*4JcJRldrK;C%HM-+J5s`d!(4 cHTTEz1Dk@F7O5ZyiU0rr07*qoM6N<$f>^_CWB>pF literal 0 HcmV?d00001 diff --git a/icons/cc-vim.png b/icons/cc-vim.png new file mode 100644 index 0000000000000000000000000000000000000000..16e1cb731923bcb4b27b13b5980e1e59dfcfde79 GIT binary patch literal 1105 zcmV-X1g`suP)Ir`)ti3RtNOivS7RpY84#)$9yT1;7nW&AtoV-NP2o19kj@An z2*+F*Q20{mdYPXT=ga)2*qup^gQj{$^S@aC#YVxkgnNa%EVF3*%%i>}lC@{2rFO{f z#3RWBaiZuHS;EApU#cyc{qGz2_D!-Z9z)&^tGMFGQxI=V)S`6FO3jI$mB(aN<^DHM zFE=z;?jDIl-D42Ec0+g@N?Sqjc^CwxBdB?RbGzbSmYhc3Mc=AuUHj0y4yP9tP2YjD z4QRi2(r)@&s*$bba`18jO(|%-hK7Z5RzK$)-@(k9{Guz^-Gd&v-@Nz*^ucHZiA)sI z00009a7bBm000kR000kR0jNKxX#fBMi%CR5R7ef2md}e)Q546&*Ky3IUy$@eE3k-J zMpH6GTNi;Xqr_E0^1WgfSKsj1SIaVNU(ROI^)D zHP(z!?YIDlia;loN+F$2kByJTVhEz5%g5#rO@7p++dUKt1;==L`OPO0N-1$&M;7sF zBH+(vv*2A;t5w@toVcv~<{Jb#s!>5vF)wcBmS6pUR%~uQ@GyaD43k542e*2_pN<#!ae}Q2(0c~erYoG!DR>$` z1usgEPI&bs!oiC1MQ4h|6&ncYpX%aEb5McPxg@)s$*{SE{Kp8GJD&h-<`|$4U zC5f?(p5Q)dF$^;~MTgw$woraELte=S9yejzxdo11zYwJtK1?-w@V9GiV6{j0_=jVO zM9d3ZFBhqgx@xN;ZCdL>uQoYHM-dbL@Vw{^$HC48E{$q-5lFd=a@amFF`x$K~yrS+g8fKS7l5CP|!70P1YO z6wyo6=asI)h7quzKDiQHbWWH56*TDS&_kQ^YKL|~otf5py$Ng(oG#J-w}S!T$Yj`m X6?-1E-8^AX00000NkvXXu0mjf_#_Qc literal 0 HcmV?d00001 diff --git a/icons/crosscode-tweak-pack.png b/icons/crosscode-tweak-pack.png new file mode 100644 index 0000000000000000000000000000000000000000..02a85e7ed91bec678434050d9261e604a8e0c535 GIT binary patch literal 769 zcmV+c1OEJpP)EX>4Tx04R}tkv&MmP!xqvQ?()$2Rn#3WT=8*K~&UH zt5Adrp;l*{h@IUxHTPr_4<|T#WK>Lg1d<+7iU7%idobO}D zshQiya5glfuRCrulc;YvvqF&-f7J52bdsow(G9z$p8QV32;bRa{vGi z!vFvd!vV){sAK>D0TM|>K~zY`?Uk_&gD?<9zatuEUHXZExP9o z0MM5W03b}ORR%Eu%ep^at0y8`z$~t~o@Y-)wt(e0Rq6zT$hG14o-tT9;SDT)((%1% z7mn{K!ATq_p#YF~10vTJ<}5jwoq#W(4j2HEIGDc88t`HT?8`<-oeDfBYwaE|FuyY$ zu(p9*pS&Biz)Xj|d(q$EhYYg1{kSBiQmq$$(=e@2YygivNa%5v+*!l4qGR*h1YWvm zWK0?5A*xof1U7k-DS+uw(FGen`poEyb^GcK2eF`@aE-u600000NkvXXu0mjf#K2B} literal 0 HcmV?d00001 diff --git a/icons/french.png b/icons/french.png new file mode 100644 index 0000000000000000000000000000000000000000..684f9a40be79ca39b81135dacec53f4748038c55 GIT binary patch literal 178 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaN3?zjj6;1;w=>VS)S4AL$fgzbeOxSh_gV&^e zYR0o>&3b#_!2kdMSA1P%0hD7b3GxeOaCmkj4ajlzba4!kxSX7zz`TROkzJsLiP2NW z(b3{~;Ds9z0V2md&CJZ23u9VzC-FY4YO%gF!Qzyghs;+cmgO7w#4xS4J+h;hhk>DY Vo$VAc9d>t+)t;_?F6*2UngDhzHM#%* literal 0 HcmV?d00001 diff --git a/icons/junolea.png b/icons/junolea.png new file mode 100644 index 0000000000000000000000000000000000000000..b2dd99712cc8ff3918f748048a3c7849abade365 GIT binary patch literal 3161 zcmcIm32YQq7@lR@T1twm1X|RXVG!)$?Ci|!IkG_MqOG`C%W9zz=$kihwj;Yc6Pm?D1yyfB*OY z-~avpyfsa8Z!9mnqKqJj^2UZxGybi#KBXo2`&2S`mLP0XmHPUoI!P4~*?i+HvWg7^ z{M7_e^$u)n<23V59bMkmcDS#$x=c?t_w+p2+&1H#-h;hIh>|sLA1Hp@kqKyXbX`?tYinzbfAi^UpQ|ZqnefD>{t30I{wV_$<4;#id3@7m;=NfPT~e~b zv3jH91aZeJ$E1xMalpRn$AIIiJr9aehgiCHQEQ|Gaoogl{gaQZpS-X4)ZTUJ^kiJCE;oR$)>gE%q)nTp2}hL8$U8NUKvTelgC%$S%QM%31N-0@j-#;!ZFD6}kfIaDd?t!;SZGWbCP+Zk7z$E21*f7&0t-bSv>))m1AQV7WI6Bc7G1$j z3Sxu3T2V>ZBjQDw^8!G7C5fY<$L*&5ZjVHZ0T=Iqvg||9ZM8y1T|$Fm;L>&Fnrj}q zGq;KJ=U-FA20S8k zi#|FaLmv&08?U@xK)YlJ0-^`kniumF4@r?aThhDvg{9|xc{R_jP>NrjvMCBlPG%~$})L_)t#A#lQ7iGxmXS2rmnCAXa@+c>GFyRwX0bufJ8nNf?3^3^lnnAG=0dGD@KO*Z58qhorhsevgi zB}HWEG0!KwcJ75>w4>EFaNAU{k&iU?>l?-j_$i|joj3?qloCa>i+R1_R6rM!4_M< t5Yz*3jI9W~IFPoV|9qkQ7wzt`DVrEQzNB}6Ty7m@8)wfAy)>(B#qadMBy<1( literal 0 HcmV?d00001 diff --git a/icons/timer.png b/icons/timer.png new file mode 100644 index 0000000000000000000000000000000000000000..ca6b2ad56ef8773e6a4857f390572a08750055df GIT binary patch literal 1232 zcmV;>1TXuEP);wrc}2o9o) zUxWWZSHV?55EMbg&E2m>B%W&vEuuHvoQL<`_i*wC!UB@BO)&mb0D?p$6em-EnPwol_S}rr zF4^69q?jU342>cynD`7zwI#E^eM3LKX$s=es$YWVqbDIS%!YLGaoO(QWwJ3WCqWAox0h$OD|)RewQp8haOgtE%%C;Atl(F+&DMY(|9NVstKPw>Xg$OTPI@xsv(Zd@Q-q~TD0G-=Zwu+i9tHZ5&& zzDH-Bu3JsROWwXWGv9pkX6OAN>e2G~JY8R3Q?uDLBhT+}k90cbt_|2;&GIws@9)#> z?5vpXW-^)YBIq$1joxFq1l_^G0VNU%Z8me?0QGvE9LFKcvLYuZC+9#eyjbXRPJT%m znS(s!Y_iC7aB#2-1Htxc4i68hR;y99S{?F|Z-mAO9ZdpqcIS*Af)9MX?XL{*Z#(TJ zJAV`+Ar|9O?T48n6VBol3!k9itc_kiT^VGvS-QNuq^ql|36KlOOAfu(0n5K=0>0qT z%?+@&wnn8=iH3)VX<%Sr86a7`cJR&x!!=umFF3#@&CRD=E>kcVL~-M%r>92%z*(}3X7~vll7Vlw%u;8f&&HL+uJj6 zlYuJi6aJrHVG$?Hdu1Vo21c^rf6c+IPS53pYVA^G2^GT{U`1N?hFf%nhO&T^VO7~OEW>X{{X zt|vnuMzu)Q<)21Ikg2Ju2aQG}Z-+u5vTgefEV6P<4!u`~4&)96Fm;;_hy@$&N~Q9c z>+n`keq^v|y&>ZL*QA!Xb&ax6aP#8r=dg;h3;8dh?QhgsfZOIH{z#yDm7=@N$cHXw zbCLb?ybW{5mk(Ua=9BkLxO(jt*tJb|i}>kL+ls~Fk-fFGWlo*!Uri*AemYGgIME4L zGMRjbgXU~*ZZ`ReG!H@F#TNF?DCGQvT8oQ|WX0ogN~hD|_4W1g+}xb|+Ial>5_fiX ztd*6OFmsp9RS}ED==k`UH~`Jh&r>84F>i7|tay|0*lcfa69*vSbU-pTcJt1rQYqYk uc)3H|f5FyA8)0mXZ{`N>pwZErYvecg6?L#*y5O+@0000P)EX>4Tx04R}tkvmAkKpe)uKBOWQ5j%)DWT;LSM8(IZ zRVYG*P%E_RU~=gTnlvOSE{=k0!NJF3)xpJCR|i)?5PX2Rxj8AiNQwVT3N2#1jDw_ypovrW+RV2Jz&krE}gVjJ=?&=bxV`?fXf}A|4Ek&$&muI{P{faen#Jv1^RA* zt~IxB&2yYS0BPz~@&-6K1cnQgz3%bu&i20jThr{{55jqJ$KD|3P5=M^32;bRa{vGf z6951U69E94oEQKA2Kh-uK~zY`b(VWjl;;`6f8WR6*kxgNfd%BY5EKM2^@3;+Z9=NG zHA;x7x72u_Ni*7H;h@ut53n)T%Szs4- zm%V@c^$(|7o%H$Zop5-JmP1B zaNZM@Rs z=5pZbGOn|WQLkoUUTA?LJ-G=X^0R%A)j^!cKwQo+WS@oh>JHvp|1o3YqTqjq{*d63 zPhvt#6$9!3s}~Q!dG{WRQrBU0>xhITlr0)Kc9rvOnYbkt8FwV2GNAt08XEU@a^<^P z(sJ@>2|RA8_-@%+Jb(TgOYNJO)qTXs{k(O14qK~taPD7i*qz zHP6bdp1GK$qu@(jew?70KUh$KE2qQzKBE>m?L>gBfqGYT>;clA!5=p89QwVlS;Di$T95LS%o{)!r>1$Q?h6ip+XG_69fF{ zS~<}T5thv_oD8bqlKoI+x*)yHBsVk{be}Uc6&Y7zXScd8dNm^oxXEEVo69%Og zWkD>_^G*>C%MTPZbO+I!dpLV?Ji$R1uA!~e{e25FUtU2(mQf2n#Q1Nik2LaE8b~0F zLX06S7$H_kPS$7=^T*Ta8N__JmD5$P5e&H=DR2#h2|Bc#*grsqS&Pnno4u7iNsiz%g$ z?4y_1x93^Xr_MqOhf!*cbgo~{q;xfk+P)lakcqGY7eM1dn0y09qSCY^D zs*IeTJcb%HT-05sc$|@ceAP)wj*)XWowVcxnK$(!c_|W}fIvtBx5>^xyP3fuJ@f`b z>|C^xen&siF$PrTky!5SW$Udwi1k-JjL1)BbHgDlEBpkU0X{$DWX_9;TyQF=|KUao zW*%ZkWeOb~+xVyNKFvcMT=U9QUq6WuuRxN+EdOXXxeLZ2CuX9Ex<)}Djc>mTARKgs zJJPOW>k~*D?Ps5~gX8C`S-s>HTAK&?f2EF65Rk$E{BhCCD7`Hdm{XBe z9-iKQ`oW@2J7A_b;}qt+7*weeAwf@Kl8QxT3y@_}V|6 z(I}&3(lRtWHB8Hf&pu(&(*@*?NW&9Sl4w?;C{9vw&GjY6L$6@c&BbO65G4zkWSMSj zh;C~Tqe;QI>7TNzY66;3lezB<)9(xutrhWkBX~R#N~J(3B%>IJ&}Ov}t&OI~9z@a5 z9mIJ>$@0j@I7h!kYPy=zBsE9x``Px(Vm>@^1-C2A9}XxHg`0e~`4+0AVchYFbfRPL z>=0eKMW{6*T^)X==(RK(4Y=Iy2aERVUw+GUpMw+WZ{X+)0kG=G5k_9CV*E2j+`2J{ zwJX4%zO1G|KZV0JPV#0K@zZ&Qm`?7b_MO!@8k^X-sg?n!k1;Vuq&e%DXzya_uD2fL zflsXmz~h!!tGtOOE))Bax`$@2Tv11}r=H3KtC>AUk5(&UQ1;d=S42y;VM+mn|;@3~$0Q?8A83#;q)Rfu)0000 Date: Wed, 7 Feb 2024 19:45:26 +0100 Subject: [PATCH 008/196] Fix some dependencies being reported as missing --- build/tests/npDatabase.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build/tests/npDatabase.js b/build/tests/npDatabase.js index 19f40d74..a12d4ca8 100644 --- a/build/tests/npDatabase.js +++ b/build/tests/npDatabase.js @@ -124,7 +124,7 @@ function testMetadata(jsonData, metadata) { continue; } - expect(jsonData[dep], + expect(jsonData[dep] || Object.values(jsonData).find(mod => mod.metadata && mod.metadata.name === dep), `dependency ${dep} must be registered in CCModDb`) .to.not.be.undefined; } @@ -198,7 +198,7 @@ function testMetadataCCMod(jsonData, ccmod) { continue; } - expect(jsonData[dep], + expect(jsonData[dep] || Object.values(jsonData).find(mod => mod.metadata && mod.metadata.name === dep), `dependency ${dep} must be registered in CCModDb`) .to.not.be.undefined; } From c09e33ac33ad5ad8139acb8403dcd9e9266c5a74 Mon Sep 17 00:00:00 2001 From: krypek Date: Wed, 7 Feb 2024 19:47:11 +0100 Subject: [PATCH 009/196] Increase timeout tenfold --- build/tests/input.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/tests/input.js b/build/tests/input.js index 0eea7db4..3d9eef09 100644 --- a/build/tests/input.js +++ b/build/tests/input.js @@ -35,7 +35,7 @@ describe('InputLocations', () => { .to.not.throw; break; } - }).timeout(10000); + }).timeout(100000); }); } }); From 9238a56e6ef89000fe12354e4bb254efd077922b Mon Sep 17 00:00:00 2001 From: krypek Date: Wed, 7 Feb 2024 19:47:11 +0100 Subject: [PATCH 010/196] Increase timeout tenfold --- build/tests/input.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/tests/input.js b/build/tests/input.js index 0eea7db4..3d9eef09 100644 --- a/build/tests/input.js +++ b/build/tests/input.js @@ -35,7 +35,7 @@ describe('InputLocations', () => { .to.not.throw; break; } - }).timeout(10000); + }).timeout(100000); }); } }); From d13ea7e0fe5adba3ac65df4d55f8d7eda6633f3d Mon Sep 17 00:00:00 2001 From: krypek Date: Wed, 7 Feb 2024 23:53:28 +0100 Subject: [PATCH 011/196] Remove cc-diorbital-menu --- icons/cc-diorbital-menu.png | Bin 7171 -> 0 bytes input-locations.json | 9 ------ mods.json | 16 ---------- npDatabase.json | 60 ------------------------------------ 4 files changed, 85 deletions(-) delete mode 100644 icons/cc-diorbital-menu.png diff --git a/icons/cc-diorbital-menu.png b/icons/cc-diorbital-menu.png deleted file mode 100644 index 130a0ebe6b1d16fdee8aeb321d9834505dc77be2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7171 zcmd5>3s6nU0gB(^xubj+G4+_OG?i;he=wAQab`{aBCx z`@ir1|FwqMEJ;q9&<71b7K^2ied72Oc=l&kk4U)JW{v#CVu|p1$Bj$&x?C2^&=r|0 zc0N#<+_&nVlQ)(Y=VeA^?oF;*|7@vs*?@u(iTA%b>(JnZlhW?6k6SsYYKm{(P_1x8 zPM`Yj<){qhz1m~Yvi&)6DJQZgtxr4}^YGc_7tZde$cnXY$TYN(_C3z?$9{TO& z{)-B7Eze2MZTe(j`W;2~*V2DWNQtW&mv`~>!-s8==#9$U(Xr=;zmu`r{~vAVH)(4x z78a!1M?|fQs-AO?^?cmne(R2Fw`SL$$T+q2`P@BEF0Gi?DB&Rvg61}3iB8*}G- zV`onJXux;>$iC-|#b+;_`tA`@lXLN{>wny}=&MuLM;+~cTKV+Xkv~<`MMo`;DBJhq z?gt-#`PU&kzc}cu9_{YFy~6ALD8lz%uNM-gZ;ewoSmVajCIu(Ac{q*(90Y z10DWgqry0{;lKoj2?Fozf~Ik3SRWj>nd7jEH=6_A6nG8vk>(0aIK>H_v4Dm(7-!%? zpnxO77%>t7d!z?m2=g3d#}ERI>Y5rZ%@LFxT)_Hpp@w(_Cz^T6Dn!q%fFFXfhuDY& zcS2;&5;QW#sDW~jdH@KGdbX5pth8p+=JhRbSrEIMX|rOA6p3ooP-VCXe`AgbxCBI^ z$(WG=ZGn)PZcz1S-eVTaU#pw-;-BNQAh>ZKSW`4aT*OczMASwJby7u@u|zRds0sz+ zA#TuVIGs)dV;I+|%tjQID6*SKvKvB6U@a6Ek~P(#f}uiGhwM>g3Qqte1dK2y2JuJ^ z;!-u@fLa7Y>SoR;R1E7=7xk!w%^~Ii*nn!rgE-8IhUJ_|2nHaWoRelI2KX3^29^+! zAyn*=u-n`LDuujZ#smWCf@LzL#GznWmT4m%<{YDBFbIab+jIa=qCzZH8Bv?6VK)=R=1m^qOn?T&79xkKu1X+Hhah->S%4{o z1%pck7%|O|5)fkk#2~T&^EhhZ+__^%)#CfKU1(sc&JcN7#Pgc=erHD@TZ`qhB}R19aq zi-5U@YudXSK$jCEvbq|KM30y235?n&MuZlC#Hsf6ItfT}bP^E!#nwIn zEwAn{P~*gO7^pF~t^jH*MLj6?>Fd#y5RU5p6TDv-Fe_1={NYL6I^;gw<}dTCD& zbzF?-=30;@YPl8|{fQWfV*Uh>Xe#!uR*YH`(>07ludVf(#Hj6JMA#-k;&j`4oe9)Y zF(TW}WF#WDrx&i}+F%sUzMYK1#e~CL3x8;deA>XMWicXDJ7Xjohxe`|P+P@>^Jznj z#N{pbI#*i9#K5O|_@og0_RPLR20uQtFGT$FrmDin9{6sIN^_=7fd6;c?c>KhG_lXd zRS_%mt-TWu9f@Cf^Ol2?{kD;> zSM5sEr(XPhy3@CM%bC;JKhG-Pc3{}dEZzRfD^<$PWj{q1J&@l!A$>mfU-#*n#r@x{ z{djBPw%N<>zJ2=l+mF@uoRJh=6#Jp_i#*9WMw8CvMk0jsHZRwC7r~BsBo{cQ;-*4}XwBG+6 z7JKmSGv)4EQzy*0bOBe#(VC3+Cx7*UXH(Ma#py4d?3Y^KOUI?_^vHKNj+pOH{Jq$| zqet?v1KpPSw%6aM=lfU0O?&=1.0.0" - } - }, - "installation": [ - { - "type": "modZip", - "url": "https://github.com/krypciak/cc-diorbital-menu/archive/refs/tags/v1.0.3.zip", - "source": "cc-diorbital-menu-1.0.3", - "hash": { - "sha256": "e7eea0c5a547e325661fc17a51b39219da35ee8fafe2706b1c75b34113b40f2b" - } - }, - { - "type": "ccmod", - "url": "https://github.com/krypciak/cc-diorbital-menu/releases/download/v1.0.3/cc-diorbital-menu-1.0.3.ccmod", - "hash": { - "sha256": "5c5246f43f6ae7a9f3c5eb26c4b40c5a3a8cab224740f881ade7392c897d712f" - } - } - ] - }, "cc-extra-dialogue": { "metadata": { "name": "cc-extra-dialogue", From 5786a6b7f1e5a2caca969df28b3df8d7cddf4d3d Mon Sep 17 00:00:00 2001 From: krypek Date: Thu, 8 Feb 2024 12:16:38 +0100 Subject: [PATCH 012/196] Add mod github star count fetching --- build/src/db.ts | 5 +- build/src/download.ts | 3 +- build/src/main.ts | 2 + build/src/source.ts | 36 +++++++++++++- build/src/types.d.ts | 1 + npDatabase.json | 111 ++++++++++++++++++++++++++++-------------- 6 files changed, 116 insertions(+), 42 deletions(-) diff --git a/build/src/db.ts b/build/src/db.ts index cf7e987a..5f852f9c 100644 --- a/build/src/db.ts +++ b/build/src/db.ts @@ -2,7 +2,7 @@ import semver from 'semver' import crypto from 'crypto' import fs from 'fs' import { download, streamToBuffer } from './download' -import { ModMetadatasInput, ModMetadatas } from './source' +import { ModMetadatasInput, ModMetadatas, addStarsToResults } from './source' interface ModDb { [name: string]: { @@ -30,6 +30,7 @@ export async function build(packages: ModMetadatasInput[]): Promise { } await Promise.all(promises) + await addStarsToResults(result) return sort(result) } @@ -83,7 +84,7 @@ export async function writeMods(db: PackageDB): Promise { }) } -function getHomepage(url?: string): Page[] { +export function getHomepage(url?: string): Page[] { if (!url) { return [] } diff --git a/build/src/download.ts b/build/src/download.ts index 07853b06..032bd3f9 100644 --- a/build/src/download.ts +++ b/build/src/download.ts @@ -55,7 +55,8 @@ function body(url: string): Promise { async function getUsingMethod(url: string, method: string): Promise { const uri = urlModule.parse(url) const { get } = uri.protocol === 'https:' ? https : http - const options = { method } + + const options: http.RequestOptions = { method } return new Promise((resolve, reject) => get(url, options) diff --git a/build/src/main.ts b/build/src/main.ts index b1d69ea6..7ed3c546 100644 --- a/build/src/main.ts +++ b/build/src/main.ts @@ -3,6 +3,8 @@ import * as source from './source' import * as db from './db' async function main() { + const GITHUB_TOKEN = process.env['GITHUB_TOKEN'] + if (!GITHUB_TOKEN) throw new Error('GITHUB_TOKEN enviroment variable is required. To create a token, see https://github.com/settings/tokens?type=beta') const locations = await inputLocations.parse() const promises: Promise[] = [] for (const loc of locations) { diff --git a/build/src/source.ts b/build/src/source.ts index 3fc7905e..7c3930d6 100644 --- a/build/src/source.ts +++ b/build/src/source.ts @@ -2,6 +2,7 @@ import stream from 'stream' import yauzl from 'yauzl' import { download, streamToBuffer } from './download' import fs from 'fs' +import { getHomepage } from './db' export type ModMetadatas = { ccmod?: PkgCCMod @@ -14,8 +15,8 @@ export async function get(input: InputLocation): Promise { input.type === 'modZip' ? (input: ModZipInputLocation, fileName, parseToJson) => getModZipFile(input, fileName, parseToJson) : input.type === 'ccmod' - ? (input: CCModInputLocation, fileName, parseToJson) => getCCModFile(input, fileName, parseToJson) - : 'error' + ? (input: CCModInputLocation, fileName, parseToJson) => getCCModFile(input, fileName, parseToJson) + : 'error' if (fileFetchFunc === 'error') throw new Error(`Unknown location type '${input.type}'`) let pkg @@ -126,3 +127,34 @@ function openFile(zip: yauzl.ZipFile, file: string): Promise reject(err)) }) } + +/* this has to be done outside of buildEntry to avoid concurent api requests */ +export async function addStarsToResults(result: PackageDB) { + console.log('fetching stars...') + for (const id in result) { + const mod = result[id] + mod.stars = await getStars(mod.metadata, mod.metadataCCMod) + } +} + +async function getStars(meta: PkgMetadata | undefined, ccmod: PkgCCMod | undefined): Promise { + const homepageArr = getHomepage(ccmod?.homepage || meta!.homepage) + if (homepageArr.length == 0) return + if (homepageArr.length > 1) throw new Error('Multi page star counting not supported') + const { name, url } = homepageArr[0] + if (name == 'GitHub') { + const apiUrl = `https://api.github.com/repos/${url.substring('https://github.com/'.length)}` + const GITHUB_TOKEN = process.env['GITHUB_TOKEN'] + const data = await ( + await fetch(apiUrl, { + method: 'GET', + headers: { + Authorization: `token ${GITHUB_TOKEN}`, + }, + }) + ).json() + const stars = data.stargazers_count + return stars + } + return +} diff --git a/build/src/types.d.ts b/build/src/types.d.ts index e518bde8..31c7e04e 100644 --- a/build/src/types.d.ts +++ b/build/src/types.d.ts @@ -172,6 +172,7 @@ declare type Package = { metadataCCMod?: PkgCCMod // Installation methods (try in order) installation: InstallMethod[] + stars?: number } /* diff --git a/npDatabase.json b/npDatabase.json index b7380e1d..985c3b30 100644 --- a/npDatabase.json +++ b/npDatabase.json @@ -114,7 +114,8 @@ "sha256": "d9dc3e5d2fbe116d180b7f88c93e9535798db09964b93c8adcaa0935c2d55ad2" } } - ] + ], + "stars": 1 }, "CCRandomEvents": { "metadata": { @@ -133,7 +134,8 @@ "sha256": "67ff4803a1e5f240187aad81a8101a66b1c4316f110d6ef5f6527b2b472c064e" } } - ] + ], + "stars": 0 }, "Character Swap": { "metadata": { @@ -198,7 +200,8 @@ "sha256": "ff903d75f2098fbe3061ea8cc309f55a54c15050ddb4395606439ac8a8268faf" } } - ] + ], + "stars": 5 }, "CrossCode C Edition": { "metadata": { @@ -249,7 +252,8 @@ "sha256": "5df25d4d8ad3fc3872c53f184cbfd27d32489985b724d1830ffe1f71fdefbdc8" } } - ] + ], + "stars": 6 }, "Element Boss": { "metadata": { @@ -272,7 +276,8 @@ "sha256": "e0bdc31b640bd7a00bd7c69dcb7a8cef87130f0cb349b44874ba440c67f02922" } } - ] + ], + "stars": 0 }, "Extra Gamepad Options": { "metadata": { @@ -327,7 +332,8 @@ "sha256": "bef7447b66e411292493bde5d0fd312d0f4ca13a4c4ab215d02f9472eb291968" } } - ] + ], + "stars": 0 }, "Lea sits on the Title": { "metadata": { @@ -364,7 +370,8 @@ "sha256": "b0a23ca05f65c09e52aebc3ce3c836ec326a972531ef4a373fdf4876494b022b" } } - ] + ], + "stars": 0 }, "New game++": { "metadata": { @@ -406,7 +413,8 @@ "sha256": "37e48525234fe437e20cad9206cbc6c45a4421f381d51727e45162d103a1d472" } } - ] + ], + "stars": 3 }, "Palicat": { "metadata": { @@ -429,7 +437,8 @@ "sha256": "75d84d8a190bece945d20f2fda3518c06cdbdd57f209b91471f9815feffb4b70" } } - ] + ], + "stars": 1 }, "Qine": { "metadata": { @@ -453,7 +462,8 @@ "sha256": "73bec599fdb63f6b0504d1ea6b549904daf97f00c8667f6bd6378c91560d8c29" } } - ] + ], + "stars": 1 }, "Restart Button": { "metadata": { @@ -474,7 +484,8 @@ "sha256": "6a31aba45a5df4a498901721fa14ed673677d1010707cd9146cee7c41804ad5a" } } - ] + ], + "stars": 1 }, "Simplify": { "metadata": { @@ -560,7 +571,8 @@ "sha256": "2d8876bae0fa566ad35b4f4d5db5c2b5d1a69c55b38e27aa337c2b0b666c20c1" } } - ] + ], + "stars": 1 }, "cc-extra-dialogue": { "metadata": { @@ -590,7 +602,8 @@ "sha256": "8ab162b803f9a663f5677b058fafcf07218145f38f7a90cbdcf05845b0a5e329" } } - ] + ], + "stars": 4 }, "cc-fancy-crash": { "metadata": { @@ -643,7 +656,8 @@ "sha256": "edc33bc5c294a9573a49eea1c4080a458c70a9e9e8e1a6f960e3d798ce935503" } } - ] + ], + "stars": 0 }, "cc-oldmedia": { "metadata": { @@ -679,7 +693,8 @@ "sha256": "0791db068d46cf394fc3a512cf3a5bca7744a1550d1e72d07adb39bcea097703" } } - ] + ], + "stars": 0 }, "cc-quickinfo-exp": { "metadata": { @@ -715,7 +730,8 @@ "sha256": "fcdeeba04a3c3e210353a23031c4396dfa33876f770347e550103a4308e3685a" } } - ] + ], + "stars": 0 }, "cc-uncapped-stats": { "metadata": { @@ -759,7 +775,8 @@ "sha256": "f71786c48ba246993fd0cd924155a7d09be5fe7020c97482ec285ea7dbe5b1b9" } } - ] + ], + "stars": 1 }, "cc-vim": { "metadata": { @@ -834,7 +851,8 @@ "sha256": "956b112b9e9928c8de6e8eac68f3e132dd275d31904f3bed607c4aee0ff09eb0" } } - ] + ], + "stars": 1 }, "ccloader": { "metadata": { @@ -894,7 +912,8 @@ "sha256": "eec76c279f1683b415e4f06186d6d4d8ae6e9d247cec845bce1e6a7e6d69cea0" } } - ] + ], + "stars": 0 }, "crosscode-tweak-pack": { "metadata": { @@ -954,7 +973,8 @@ "sha256": "0cc60fb1aeccdb7f664430feb222df8cbf0571a5c5359dcb689f1b551a983713" } } - ] + ], + "stars": 8 }, "cursedcode": { "metadata": { @@ -1114,7 +1134,8 @@ "sha256": "30a9febd011fb056426a1d0e8d9f7f50b8dd7310b80a21f1c6e2d3a6c2a143ff" } } - ] + ], + "stars": 16 }, "hardcoded-config-injector": { "metadata": { @@ -1160,7 +1181,8 @@ "sha256": "0b23e53d95963ef55c689090bac359f0815f5337dc671466a34adb852558c7c9" } } - ] + ], + "stars": 5 }, "inventory-search": { "metadata": { @@ -1210,7 +1232,8 @@ "sha256": "68d7f15b5e3c4264831dfe89a3ad2ad819825819d98aa529cee03e73312a6b21" } } - ] + ], + "stars": 0 }, "jetpack": { "metadata": { @@ -1242,7 +1265,8 @@ "sha256": "49841feae2ddf8e42bce5dec6d712e2fb714ac66e8d8b3d8f0b94eaa47674a71" } } - ] + ], + "stars": 4 }, "junolea": { "metadata": { @@ -1356,7 +1380,8 @@ "sha256": "16b9dbbfa21c9fa18d8ed3048c842521039f0713c6cfc2a17f2d2e89f79bea2f" } } - ] + ], + "stars": 1 }, "localize-me": { "metadata": { @@ -1395,7 +1420,8 @@ "sha256": "98da8afe115cb453331ba96a70711bf22453703a921d1578b239aff14084702b" } } - ] + ], + "stars": 5 }, "logic-steps": { "metadata": { @@ -1435,7 +1461,8 @@ "sha256": "79ac505e9f8f5f948ecb1f9e33b8da330a352f95eee5d381dd697bd3cd93f730" } } - ] + ], + "stars": 1 }, "map-watch": { "metadata": { @@ -1482,7 +1509,8 @@ "sha256": "d52de73fbb2dd8406d971c201075b5942ee03540588dcd1fb857007cdf6266c0" } } - ] + ], + "stars": 0 }, "menu-ui-replacer": { "metadata": { @@ -1520,7 +1548,8 @@ "sha256": "5a8a90cb72d52b9cd786a3f25c3dab1ab4b09d3dad9e8c744ae48281270b5a33" } } - ] + ], + "stars": 6 }, "nine-rooms": { "metadata": { @@ -1545,7 +1574,8 @@ "sha256": "2a62c02cc322ef7a79c49352a5ab8b4098dfa2f10b2f8cb6b989ab2f6444822d" } } - ] + ], + "stars": 1 }, "past-booster": { "metadata": { @@ -1576,7 +1606,8 @@ "sha256": "2a62c02cc322ef7a79c49352a5ab8b4098dfa2f10b2f8cb6b989ab2f6444822d" } } - ] + ], + "stars": 1 }, "readable-saves": { "metadata": { @@ -1609,7 +1640,8 @@ "sha256": "d05d18d8923e7a62c35b6a9be97775b173710372ac5fac8a21507321a4284cfc" } } - ] + ], + "stars": 1 }, "slowmotion": { "metadata": { @@ -1636,7 +1668,8 @@ "sha256": "95ffe20f8f611cd7a18b5b8f77c0437b60101badb11aefcd64597ef3b7ecdc6a" } } - ] + ], + "stars": 1 }, "timer": { "metadata": { @@ -1681,7 +1714,8 @@ "sha256": "7ba4327609e3ff0b29d2921af7d9255fbeae9dfe3d4fc035f93e99312f7ff2bb" } } - ] + ], + "stars": 1 }, "timewalker": { "metadata": { @@ -1711,7 +1745,8 @@ "sha256": "a7e80ba0478803b52b26ec3d8ba7041fa3396b8aba049e11c2511ac9ed0d0fc0" } } - ] + ], + "stars": 1 }, "uwuifier": { "metadata": { @@ -1731,7 +1766,8 @@ "sha256": "295b8019d74e0a9bf9a8ff9aa4b48d25694028bc727bc3a830daeb23b4efef3e" } } - ] + ], + "stars": 3 }, "world-map-overhaul": { "metadata": { @@ -1840,6 +1876,7 @@ "sha256": "03aa7cf573166a5a4b12c703bd63d7fd92f9bcf403ddc65cc7fd60b6ce2a97ca" } } - ] + ], + "stars": 0 } } \ No newline at end of file From 31a272e485aaef65fa32de6337ae4735009b9ba8 Mon Sep 17 00:00:00 2001 From: krypek Date: Thu, 8 Feb 2024 12:21:50 +0100 Subject: [PATCH 013/196] Fix (maybe?) tests not passing on github servers --- .github/workflows/ci.yaml | 19 +++++++++++-------- build/src/download.ts | 10 +++++++++- 2 files changed, 20 insertions(+), 9 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 959439de..3c68469e 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -7,11 +7,14 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 - - uses: actions/setup-node@v1 - with: - node-version: 15.x - - working-directory: build/ - run: npm ci - - working-directory: build/ - run: npm test + - uses: actions/labeler@v4 + with: + repo-token: ${{ secrets.GITHUB_TOKEN }} + - uses: actions/checkout@v2 + - uses: actions/setup-node@v1 + with: + node-version: 15.x + - working-directory: build/ + run: npm ci + - working-directory: build/ + run: npm test diff --git a/build/src/download.ts b/build/src/download.ts index 032bd3f9..fb7ef610 100644 --- a/build/src/download.ts +++ b/build/src/download.ts @@ -56,7 +56,15 @@ async function getUsingMethod(url: string, method: string): Promise get(url, options) From 0bf087d90022bfdbc2fb9969888486d98aa8b201 Mon Sep 17 00:00:00 2001 From: krypek Date: Thu, 8 Feb 2024 12:23:19 +0100 Subject: [PATCH 014/196] Fix the previous fix --- .github/workflows/ci.yaml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 3c68469e..41e21d61 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -7,9 +7,6 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/labeler@v4 - with: - repo-token: ${{ secrets.GITHUB_TOKEN }} - uses: actions/checkout@v2 - uses: actions/setup-node@v1 with: @@ -18,3 +15,5 @@ jobs: run: npm ci - working-directory: build/ run: npm test + with: + repo-token: ${{ secrets.GITHUB_TOKEN }} From 1435c596b3630d2e3bbd57b18ede385a8c6cf43d Mon Sep 17 00:00:00 2001 From: krypek Date: Fri, 9 Feb 2024 14:06:26 +0100 Subject: [PATCH 015/196] Fix the previous fix v2 --- .github/workflows/ci.yaml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 41e21d61..dd659f61 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -13,7 +13,8 @@ jobs: node-version: 15.x - working-directory: build/ run: npm ci - - working-directory: build/ + - name: npm run test + working-directory: build/ + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: npm test - with: - repo-token: ${{ secrets.GITHUB_TOKEN }} From 64d30e367e77bb15e54ad4c9522cd44e9bb3807c Mon Sep 17 00:00:00 2001 From: krypek Date: Fri, 9 Feb 2024 14:39:05 +0100 Subject: [PATCH 016/196] Unfix the previous fixes --- build/src/download.ts | 6 ------ 1 file changed, 6 deletions(-) diff --git a/build/src/download.ts b/build/src/download.ts index fb7ef610..d692df84 100644 --- a/build/src/download.ts +++ b/build/src/download.ts @@ -56,14 +56,8 @@ async function getUsingMethod(url: string, method: string): Promise From 3eb33e751612172e2ee147061200d96af74b675f Mon Sep 17 00:00:00 2001 From: krypek Date: Fri, 9 Feb 2024 14:44:34 +0100 Subject: [PATCH 017/196] Update star count --- npDatabase.json | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/npDatabase.json b/npDatabase.json index 985c3b30..ab27f52d 100644 --- a/npDatabase.json +++ b/npDatabase.json @@ -1232,8 +1232,7 @@ "sha256": "68d7f15b5e3c4264831dfe89a3ad2ad819825819d98aa529cee03e73312a6b21" } } - ], - "stars": 0 + ] }, "jetpack": { "metadata": { @@ -1509,8 +1508,7 @@ "sha256": "d52de73fbb2dd8406d971c201075b5942ee03540588dcd1fb857007cdf6266c0" } } - ], - "stars": 0 + ] }, "menu-ui-replacer": { "metadata": { @@ -1715,7 +1713,7 @@ } } ], - "stars": 1 + "stars": 2 }, "timewalker": { "metadata": { @@ -1877,6 +1875,6 @@ } } ], - "stars": 0 + "stars": 1 } } \ No newline at end of file From 36ba30d5acc86eaac3435ee196d2a1b5245e3b24 Mon Sep 17 00:00:00 2001 From: krypek Date: Fri, 9 Feb 2024 14:44:40 +0100 Subject: [PATCH 018/196] Increase timeout even more --- build/tests/input.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/tests/input.js b/build/tests/input.js index 3d9eef09..4b688d3b 100644 --- a/build/tests/input.js +++ b/build/tests/input.js @@ -35,7 +35,7 @@ describe('InputLocations', () => { .to.not.throw; break; } - }).timeout(100000); + }).timeout(1000000); }); } }); From 63b2c78f53a477e40eb5f7f3b6595c2be4f21e1c Mon Sep 17 00:00:00 2001 From: krypek Date: Mon, 12 Feb 2024 16:17:46 +0100 Subject: [PATCH 019/196] Add last updated timestamp to npDatabase.json --- build/package-lock.json | 7201 ++++++++++++++++++++------------------- build/src/db.ts | 6 +- build/src/main.ts | 4 +- build/src/source.ts | 29 +- build/src/types.d.ts | 1 + npDatabase.json | 105 +- 6 files changed, 3711 insertions(+), 3635 deletions(-) diff --git a/build/package-lock.json b/build/package-lock.json index 20f870da..0ccefc3d 100644 --- a/build/package-lock.json +++ b/build/package-lock.json @@ -1,3606 +1,3631 @@ { - "name": "ccmoddb", - "version": "1.0.0", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "ccmoddb", - "version": "1.0.0", - "dependencies": { - "@types/semver": "^7.3.9", - "chai": "^4.3.4", - "mocha": "^9.1.3", - "semver": "^7.3.5", - "yauzl": "^2.10.0" - }, - "devDependencies": { - "@types/node": "^16.11.6", - "@types/yauzl": "^2.9.2", - "@typescript-eslint/eslint-plugin": "^5.2.0", - "@typescript-eslint/parser": "^5.2.0", - "eslint": "^8.1.0", - "typescript": "^4.4.4" - } - }, - "node_modules/@eslint/eslintrc": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.0.3.tgz", - "integrity": "sha512-DHI1wDPoKCBPoLZA3qDR91+3te/wDSc1YhKg3jR8NxKKRJq2hwHwcWv31cSwSYvIBrmbENoYMWcenW8uproQqg==", - "dev": true, - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.0.0", - "globals": "^13.9.0", - "ignore": "^4.0.6", - "import-fresh": "^3.2.1", - "js-yaml": "^3.13.1", - "minimatch": "^3.0.4", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/@eslint/eslintrc/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/@eslint/eslintrc/node_modules/ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/@eslint/eslintrc/node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.6.0.tgz", - "integrity": "sha512-JQlEKbcgEUjBFhLIF4iqM7u/9lwgHRBcpHrmUNCALK0Q3amXN6lxdoXLnF0sm11E9VqTmBALR87IlUg1bZ8A9A==", - "dev": true, - "dependencies": { - "@humanwhocodes/object-schema": "^1.2.0", - "debug": "^4.1.1", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=10.10.0" - } - }, - "node_modules/@humanwhocodes/object-schema": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.0.tgz", - "integrity": "sha512-wdppn25U8z/2yiaT6YGquE6X8sSv7hNMWSXYSSU1jGv/yd6XqjXgTDJ8KP4NgjTXfJ3GbRjeeb8RTV7a/VpM+w==", - "dev": true - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@types/json-schema": { - "version": "7.0.9", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", - "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==", - "dev": true - }, - "node_modules/@types/node": { - "version": "16.11.6", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.6.tgz", - "integrity": "sha512-ua7PgUoeQFjmWPcoo9khiPum3Pd60k4/2ZGXt18sm2Slk0W0xZTqt5Y0Ny1NyBiN1EVQ/+FaF9NcY4Qe6rwk5w==", - "dev": true - }, - "node_modules/@types/semver": { - "version": "7.3.9", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.9.tgz", - "integrity": "sha512-L/TMpyURfBkf+o/526Zb6kd/tchUP3iBDEPjqjb+U2MAJhVRxxrmr2fwpe08E7QsV7YLcpq0tUaQ9O9x97ZIxQ==" - }, - "node_modules/@types/yauzl": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.9.2.tgz", - "integrity": "sha512-8uALY5LTvSuHgloDVUvWP3pIauILm+8/0pDMokuDYIoNsOkSwd5AiHBTSEJjKTDcZr5z8UpgOWZkxBF4iJftoA==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.2.0.tgz", - "integrity": "sha512-qQwg7sqYkBF4CIQSyRQyqsYvP+g/J0To9ZPVNJpfxfekl5RmdvQnFFTVVwpRtaUDFNvjfe/34TgY/dpc3MgNTw==", - "dev": true, - "dependencies": { - "@typescript-eslint/experimental-utils": "5.2.0", - "@typescript-eslint/scope-manager": "5.2.0", - "debug": "^4.3.2", - "functional-red-black-tree": "^1.0.1", - "ignore": "^5.1.8", - "regexpp": "^3.2.0", - "semver": "^7.3.5", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "@typescript-eslint/parser": "^5.0.0", - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/experimental-utils": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.2.0.tgz", - "integrity": "sha512-fWyT3Agf7n7HuZZRpvUYdFYbPk3iDCq6fgu3ulia4c7yxmPnwVBovdSOX7RL+k8u6hLbrXcdAehlWUVpGh6IEw==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.2.0", - "@typescript-eslint/types": "5.2.0", - "@typescript-eslint/typescript-estree": "5.2.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^3.0.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "*" - } - }, - "node_modules/@typescript-eslint/parser": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.2.0.tgz", - "integrity": "sha512-Uyy4TjJBlh3NuA8/4yIQptyJb95Qz5PX//6p8n7zG0QnN4o3NF9Je3JHbVU7fxf5ncSXTmnvMtd/LDQWDk0YqA==", - "dev": true, - "dependencies": { - "@typescript-eslint/scope-manager": "5.2.0", - "@typescript-eslint/types": "5.2.0", - "@typescript-eslint/typescript-estree": "5.2.0", - "debug": "^4.3.2" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.2.0.tgz", - "integrity": "sha512-RW+wowZqPzQw8MUFltfKYZfKXqA2qgyi6oi/31J1zfXJRpOn6tCaZtd9b5u9ubnDG2n/EMvQLeZrsLNPpaUiFQ==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.2.0", - "@typescript-eslint/visitor-keys": "5.2.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/types": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.2.0.tgz", - "integrity": "sha512-cTk6x08qqosps6sPyP2j7NxyFPlCNsJwSDasqPNjEQ8JMD5xxj2NHxcLin5AJQ8pAVwpQ8BMI3bTxR0zxmK9qQ==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.2.0.tgz", - "integrity": "sha512-RsdXq2XmVgKbm9nLsE3mjNUM7BTr/K4DYR9WfFVMUuozHWtH5gMpiNZmtrMG8GR385EOSQ3kC9HiEMJWimxd/g==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.2.0", - "@typescript-eslint/visitor-keys": "5.2.0", - "debug": "^4.3.2", - "globby": "^11.0.4", - "is-glob": "^4.0.3", - "semver": "^7.3.5", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.2.0.tgz", - "integrity": "sha512-Nk7HizaXWWCUBfLA/rPNKMzXzWS8Wg9qHMuGtT+v2/YpPij4nVXrVJc24N/r5WrrmqK31jCrZxeHqIgqRzs0Xg==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.2.0", - "eslint-visitor-keys": "^3.0.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@ungap/promise-all-settled": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz", - "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==" - }, - "node_modules/acorn": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.5.0.tgz", - "integrity": "sha512-yXbYeFy+jUuYd3/CDcg2NkIYE991XYX/bje7LmjJigUciaeO1JR4XxXgCIV1/Zc/dRuFEyw1L0pbA+qynJkW5Q==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", - "engines": { - "node": ">=6" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" - }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/assertion-error": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", - "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", - "engines": { - "node": "*" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "engines": { - "node": ">=8" - } - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/browser-stdout": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", - "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==" - }, - "node_modules/buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", - "engines": { - "node": "*" - } - }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/camelcase": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", - "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/chai": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.4.tgz", - "integrity": "sha512-yS5H68VYOCtN1cjfwumDSuzn/9c+yza4f3reKXlE5rUg7SFcCEy90gJvydNgOYtblyf4Zi6jIWRnXOgErta0KA==", - "dependencies": { - "assertion-error": "^1.1.0", - "check-error": "^1.0.2", - "deep-eql": "^3.0.1", - "get-func-name": "^2.0.0", - "pathval": "^1.1.1", - "type-detect": "^4.0.5" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/check-error": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", - "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", - "engines": { - "node": "*" - } - }, - "node_modules/chokidar": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", - "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", - "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" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/chokidar/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==", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/decamelize": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", - "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/deep-eql": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", - "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", - "dependencies": { - "type-detect": "^4.0.0" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true - }, - "node_modules/diff": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", - "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "node_modules/enquirer": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", - "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", - "dev": true, - "dependencies": { - "ansi-colors": "^4.1.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.1.0.tgz", - "integrity": "sha512-JZvNneArGSUsluHWJ8g8MMs3CfIEzwaLx9KyH4tZ2i+R2/rPWzL8c0zg3rHdwYVpN/1sB9gqnjHwz9HoeJpGHw==", - "dev": true, - "dependencies": { - "@eslint/eslintrc": "^1.0.3", - "@humanwhocodes/config-array": "^0.6.0", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "enquirer": "^2.3.5", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^6.0.0", - "eslint-utils": "^3.0.0", - "eslint-visitor-keys": "^3.0.0", - "espree": "^9.0.0", - "esquery": "^1.4.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^6.0.1", - "globals": "^13.6.0", - "ignore": "^4.0.6", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.0.4", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "progress": "^2.0.0", - "regexpp": "^3.2.0", - "semver": "^7.2.1", - "strip-ansi": "^6.0.0", - "strip-json-comments": "^3.1.0", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/eslint-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", - "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", - "dev": true, - "dependencies": { - "eslint-visitor-keys": "^2.0.0" - }, - "engines": { - "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - }, - "peerDependencies": { - "eslint": ">=5" - } - }, - "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/eslint-visitor-keys": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.0.0.tgz", - "integrity": "sha512-mJOZa35trBTb3IyRmo8xmKBZlxf+N7OnUl4+ZhJHs/r+0770Wh/LEACE2pqMGMe27G/4y8P2bYGk4J70IC5k1Q==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/eslint/node_modules/eslint-scope": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-6.0.0.tgz", - "integrity": "sha512-uRDL9MWmQCkaFus8RF5K9/L/2fn+80yoW3jkD53l4shjCh26fCtvJGasxjUqP5OT87SYTxCVA3BwTUzuELx9kA==", - "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/eslint/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/eslint/node_modules/ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/espree": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.0.0.tgz", - "integrity": "sha512-r5EQJcYZ2oaGbeR0jR0fFVijGOcwai07/690YRXLINuhmVeRY4UKSAsQPe/0BNuDgwP7Ophoc1PRsr2E3tkbdQ==", - "dev": true, - "dependencies": { - "acorn": "^8.5.0", - "acorn-jsx": "^5.3.1", - "eslint-visitor-keys": "^3.0.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/esquery": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", - "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", - "dev": true, - "dependencies": { - "estraverse": "^5.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/esquery/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esrecurse/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "node_modules/fast-glob": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz", - "integrity": "sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/fast-glob/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/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", - "dev": true - }, - "node_modules/fastq": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", - "dev": true, - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/fd-slicer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", - "dependencies": { - "pend": "~1.2.0" - } - }, - "node_modules/file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "dev": true, - "dependencies": { - "flat-cache": "^3.0.4" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/flat": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", - "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", - "bin": { - "flat": "cli.js" - } - }, - "node_modules/flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", - "dev": true, - "dependencies": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/flatted": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.2.tgz", - "integrity": "sha512-JaTY/wtrcSyvXJl4IMFHPKyFur1sE9AUqc0QnhOaJ0CxHtAoIV8pYDzeEfAaNEtGkOfq4gr3LBFmdXW5mOQFnA==", - "dev": true - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", - "dev": true - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-func-name": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", - "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", - "engines": { - "node": "*" - } - }, - "node_modules/glob": { - "version": "7.1.7", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", - "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/globals": { - "version": "13.11.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.11.0.tgz", - "integrity": "sha512-08/xrJ7wQjK9kkkRoI3OFUBbLx4f+6x3SGwcPvQ0QH6goFDrOU2oyAWrmh3dJezu65buo+HBMzAMQy6rovVC3g==", - "dev": true, - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/globby": { - "version": "11.0.4", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz", - "integrity": "sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==", - "dev": true, - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.1.1", - "ignore": "^5.1.4", - "merge2": "^1.3.0", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/growl": { - "version": "1.10.5", - "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", - "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", - "engines": { - "node": ">=4.x" - } - }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "bin": { - "he": "bin/he" - } - }, - "node_modules/ignore": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", - "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true, - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "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==", - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "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==", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-plain-obj": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-unicode-supported": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" - }, - "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", - "dev": true - }, - "node_modules/levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true - }, - "node_modules/log-symbols": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", - "dependencies": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "dev": true, - "dependencies": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/mocha": { - "version": "9.1.3", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-9.1.3.tgz", - "integrity": "sha512-Xcpl9FqXOAYqI3j79pEtHBBnQgVXIhpULjGQa7DVb0Po+VzmSIK9kanAiWLHoRR/dbZ2qpdPshuXr8l1VaHCzw==", - "dependencies": { - "@ungap/promise-all-settled": "1.1.2", - "ansi-colors": "4.1.1", - "browser-stdout": "1.3.1", - "chokidar": "3.5.2", - "debug": "4.3.2", - "diff": "5.0.0", - "escape-string-regexp": "4.0.0", - "find-up": "5.0.0", - "glob": "7.1.7", - "growl": "1.10.5", - "he": "1.2.0", - "js-yaml": "4.1.0", - "log-symbols": "4.1.0", - "minimatch": "3.0.4", - "ms": "2.1.3", - "nanoid": "3.1.25", - "serialize-javascript": "6.0.0", - "strip-json-comments": "3.1.1", - "supports-color": "8.1.1", - "which": "2.0.2", - "workerpool": "6.1.5", - "yargs": "16.2.0", - "yargs-parser": "20.2.4", - "yargs-unparser": "2.0.0" - }, - "bin": { - "_mocha": "bin/_mocha", - "mocha": "bin/mocha" - }, - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mochajs" - } - }, - "node_modules/mocha/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - }, - "node_modules/mocha/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/nanoid": { - "version": "3.1.25", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.25.tgz", - "integrity": "sha512-rdwtIXaXCLFAQbnfqDRnI6jaRHp9fTcYBjtFKE8eezcZ7LuLjhUaQGNeMXf1HmRoCH32CLz6XwX0TtxEOS/A3Q==", - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", - "dev": true - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", - "dev": true, - "dependencies": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/pathval": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", - "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", - "engines": { - "node": "*" - } - }, - "node_modules/pend": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=" - }, - "node_modules/picomatch": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", - "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/regexpp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true, - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" + "name": "ccmoddb", + "version": "1.0.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "ccmoddb", + "version": "1.0.0", + "dependencies": { + "@types/semver": "^7.3.9", + "chai": "^4.3.4", + "mocha": "^9.1.3", + "semver": "^7.3.5", + "yauzl": "^2.10.0" + }, + "devDependencies": { + "@types/node": "^16.11.6", + "@types/yauzl": "^2.9.2", + "@typescript-eslint/eslint-plugin": "^5.2.0", + "@typescript-eslint/parser": "^5.2.0", + "eslint": "^8.1.0", + "typescript": "^4.4.4" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.0.3.tgz", + "integrity": "sha512-DHI1wDPoKCBPoLZA3qDR91+3te/wDSc1YhKg3jR8NxKKRJq2hwHwcWv31cSwSYvIBrmbENoYMWcenW8uproQqg==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.0.0", + "globals": "^13.9.0", + "ignore": "^4.0.6", + "import-fresh": "^3.2.1", + "js-yaml": "^3.13.1", + "minimatch": "^3.0.4", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/@eslint/eslintrc/node_modules/ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/@eslint/eslintrc/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.6.0.tgz", + "integrity": "sha512-JQlEKbcgEUjBFhLIF4iqM7u/9lwgHRBcpHrmUNCALK0Q3amXN6lxdoXLnF0sm11E9VqTmBALR87IlUg1bZ8A9A==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.0", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.0.tgz", + "integrity": "sha512-wdppn25U8z/2yiaT6YGquE6X8sSv7hNMWSXYSSU1jGv/yd6XqjXgTDJ8KP4NgjTXfJ3GbRjeeb8RTV7a/VpM+w==", + "dev": true + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.9", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", + "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==", + "dev": true + }, + "node_modules/@types/node": { + "version": "16.11.6", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.6.tgz", + "integrity": "sha512-ua7PgUoeQFjmWPcoo9khiPum3Pd60k4/2ZGXt18sm2Slk0W0xZTqt5Y0Ny1NyBiN1EVQ/+FaF9NcY4Qe6rwk5w==", + "dev": true + }, + "node_modules/@types/semver": { + "version": "7.3.9", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.9.tgz", + "integrity": "sha512-L/TMpyURfBkf+o/526Zb6kd/tchUP3iBDEPjqjb+U2MAJhVRxxrmr2fwpe08E7QsV7YLcpq0tUaQ9O9x97ZIxQ==" + }, + "node_modules/@types/yauzl": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.9.2.tgz", + "integrity": "sha512-8uALY5LTvSuHgloDVUvWP3pIauILm+8/0pDMokuDYIoNsOkSwd5AiHBTSEJjKTDcZr5z8UpgOWZkxBF4iJftoA==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.2.0.tgz", + "integrity": "sha512-qQwg7sqYkBF4CIQSyRQyqsYvP+g/J0To9ZPVNJpfxfekl5RmdvQnFFTVVwpRtaUDFNvjfe/34TgY/dpc3MgNTw==", + "dev": true, + "dependencies": { + "@typescript-eslint/experimental-utils": "5.2.0", + "@typescript-eslint/scope-manager": "5.2.0", + "debug": "^4.3.2", + "functional-red-black-tree": "^1.0.1", + "ignore": "^5.1.8", + "regexpp": "^3.2.0", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^5.0.0", + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/experimental-utils": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.2.0.tgz", + "integrity": "sha512-fWyT3Agf7n7HuZZRpvUYdFYbPk3iDCq6fgu3ulia4c7yxmPnwVBovdSOX7RL+k8u6hLbrXcdAehlWUVpGh6IEw==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "@typescript-eslint/scope-manager": "5.2.0", + "@typescript-eslint/types": "5.2.0", + "@typescript-eslint/typescript-estree": "5.2.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "*" + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.2.0.tgz", + "integrity": "sha512-Uyy4TjJBlh3NuA8/4yIQptyJb95Qz5PX//6p8n7zG0QnN4o3NF9Je3JHbVU7fxf5ncSXTmnvMtd/LDQWDk0YqA==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "5.2.0", + "@typescript-eslint/types": "5.2.0", + "@typescript-eslint/typescript-estree": "5.2.0", + "debug": "^4.3.2" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.2.0.tgz", + "integrity": "sha512-RW+wowZqPzQw8MUFltfKYZfKXqA2qgyi6oi/31J1zfXJRpOn6tCaZtd9b5u9ubnDG2n/EMvQLeZrsLNPpaUiFQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.2.0", + "@typescript-eslint/visitor-keys": "5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/types": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.2.0.tgz", + "integrity": "sha512-cTk6x08qqosps6sPyP2j7NxyFPlCNsJwSDasqPNjEQ8JMD5xxj2NHxcLin5AJQ8pAVwpQ8BMI3bTxR0zxmK9qQ==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.2.0.tgz", + "integrity": "sha512-RsdXq2XmVgKbm9nLsE3mjNUM7BTr/K4DYR9WfFVMUuozHWtH5gMpiNZmtrMG8GR385EOSQ3kC9HiEMJWimxd/g==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.2.0", + "@typescript-eslint/visitor-keys": "5.2.0", + "debug": "^4.3.2", + "globby": "^11.0.4", + "is-glob": "^4.0.3", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.2.0.tgz", + "integrity": "sha512-Nk7HizaXWWCUBfLA/rPNKMzXzWS8Wg9qHMuGtT+v2/YpPij4nVXrVJc24N/r5WrrmqK31jCrZxeHqIgqRzs0Xg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.2.0", + "eslint-visitor-keys": "^3.0.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@ungap/promise-all-settled": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz", + "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==" + }, + "node_modules/acorn": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.5.0.tgz", + "integrity": "sha512-yXbYeFy+jUuYd3/CDcg2NkIYE991XYX/bje7LmjJigUciaeO1JR4XxXgCIV1/Zc/dRuFEyw1L0pbA+qynJkW5Q==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "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==", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "engines": { + "node": "*" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==" + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", + "engines": { + "node": "*" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", + "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/chai": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.4.tgz", + "integrity": "sha512-yS5H68VYOCtN1cjfwumDSuzn/9c+yza4f3reKXlE5rUg7SFcCEy90gJvydNgOYtblyf4Zi6jIWRnXOgErta0KA==", + "dependencies": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.2", + "deep-eql": "^3.0.1", + "get-func-name": "^2.0.0", + "pathval": "^1.1.1", + "type-detect": "^4.0.5" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/check-error": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", + "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", + "engines": { + "node": "*" + } + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "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" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar/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==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/debug": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decamelize": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", + "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/deep-eql": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", + "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", + "dependencies": { + "type-detect": "^4.0.0" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "node_modules/diff": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", + "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/enquirer": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", + "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", + "dev": true, + "dependencies": { + "ansi-colors": "^4.1.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.1.0.tgz", + "integrity": "sha512-JZvNneArGSUsluHWJ8g8MMs3CfIEzwaLx9KyH4tZ2i+R2/rPWzL8c0zg3rHdwYVpN/1sB9gqnjHwz9HoeJpGHw==", + "dev": true, + "dependencies": { + "@eslint/eslintrc": "^1.0.3", + "@humanwhocodes/config-array": "^0.6.0", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "enquirer": "^2.3.5", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^6.0.0", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.0.0", + "espree": "^9.0.0", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^6.0.1", + "globals": "^13.6.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.0.4", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "progress": "^2.0.0", + "regexpp": "^3.2.0", + "semver": "^7.2.1", + "strip-ansi": "^6.0.0", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^2.0.0" + }, + "engines": { + "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=5" + } + }, + "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.0.0.tgz", + "integrity": "sha512-mJOZa35trBTb3IyRmo8xmKBZlxf+N7OnUl4+ZhJHs/r+0770Wh/LEACE2pqMGMe27G/4y8P2bYGk4J70IC5k1Q==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/eslint/node_modules/eslint-scope": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-6.0.0.tgz", + "integrity": "sha512-uRDL9MWmQCkaFus8RF5K9/L/2fn+80yoW3jkD53l4shjCh26fCtvJGasxjUqP5OT87SYTxCVA3BwTUzuELx9kA==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/eslint/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/eslint/node_modules/ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/espree": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.0.0.tgz", + "integrity": "sha512-r5EQJcYZ2oaGbeR0jR0fFVijGOcwai07/690YRXLINuhmVeRY4UKSAsQPe/0BNuDgwP7Ophoc1PRsr2E3tkbdQ==", + "dev": true, + "dependencies": { + "acorn": "^8.5.0", + "acorn-jsx": "^5.3.1", + "eslint-visitor-keys": "^3.0.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esquery": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esquery/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz", + "integrity": "sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fast-glob/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/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "node_modules/fastq": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", + "dependencies": { + "pend": "~1.2.0" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "bin": { + "flat": "cli.js" + } + }, + "node_modules/flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "dependencies": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.2.tgz", + "integrity": "sha512-JaTY/wtrcSyvXJl4IMFHPKyFur1sE9AUqc0QnhOaJ0CxHtAoIV8pYDzeEfAaNEtGkOfq4gr3LBFmdXW5mOQFnA==", + "dev": true + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "dev": true + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-func-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz", + "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==", + "engines": { + "node": "*" + } + }, + "node_modules/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/globals": { + "version": "13.11.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.11.0.tgz", + "integrity": "sha512-08/xrJ7wQjK9kkkRoI3OFUBbLx4f+6x3SGwcPvQ0QH6goFDrOU2oyAWrmh3dJezu65buo+HBMzAMQy6rovVC3g==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globby": { + "version": "11.0.4", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz", + "integrity": "sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==", + "dev": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.1.1", + "ignore": "^5.1.4", + "merge2": "^1.3.0", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/growl": { + "version": "1.10.5", + "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", + "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", + "engines": { + "node": ">=4.x" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "bin": { + "he": "bin/he" + } + }, + "node_modules/ignore": { + "version": "5.1.8", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", + "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "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==", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "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==", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "dev": true + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "dev": true, + "dependencies": { + "braces": "^3.0.1", + "picomatch": "^2.2.3" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/mocha": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-9.2.2.tgz", + "integrity": "sha512-L6XC3EdwT6YrIk0yXpavvLkn8h+EU+Y5UcCHKECyMbdUIxyMuZj4bX4U9e1nvnvUUvQVsV2VHQr5zLdcUkhW/g==", + "dependencies": { + "@ungap/promise-all-settled": "1.1.2", + "ansi-colors": "4.1.1", + "browser-stdout": "1.3.1", + "chokidar": "3.5.3", + "debug": "4.3.3", + "diff": "5.0.0", + "escape-string-regexp": "4.0.0", + "find-up": "5.0.0", + "glob": "7.2.0", + "growl": "1.10.5", + "he": "1.2.0", + "js-yaml": "4.1.0", + "log-symbols": "4.1.0", + "minimatch": "4.2.1", + "ms": "2.1.3", + "nanoid": "3.3.1", + "serialize-javascript": "6.0.0", + "strip-json-comments": "3.1.1", + "supports-color": "8.1.1", + "which": "2.0.2", + "workerpool": "6.2.0", + "yargs": "16.2.0", + "yargs-parser": "20.2.4", + "yargs-unparser": "2.0.0" + }, + "bin": { + "_mocha": "bin/_mocha", + "mocha": "bin/mocha" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mochajs" + } + }, + "node_modules/mocha/node_modules/minimatch": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-4.2.1.tgz", + "integrity": "sha512-9Uq1ChtSZO+Mxa/CL1eGizn2vRn3MlLgzhT0Iz8zaY8NdvxvB0d5QdPFmCKf7JKA9Lerx5vRrnwO03jsSfGG9g==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mocha/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/mocha/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/nanoid": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.1.tgz", + "integrity": "sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": true + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/pathval": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", + "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", + "engines": { + "node": "*" + } + }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=" + }, + "node_modules/picomatch": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", + "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/semver": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/serialize-javascript": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", + "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true + }, + "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==", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "dependencies": { + "tslib": "^1.8.1" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + } + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typescript": { + "version": "4.4.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.4.4.tgz", + "integrity": "sha512-DqGhF5IKoBl8WNf8C1gu8q0xZSInh9j1kJJMqT3a94w1JzVaBU4EXOSMrz9yDqMT0xt3selp83fuFMQ0uzv6qA==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/v8-compile-cache": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", + "dev": true + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/workerpool": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.0.tgz", + "integrity": "sha512-Rsk5qQHJ9eowMH28Jwhe8HEbmdYDX4lwoMWshiCXugjtHqMD9ZbiqSDLxcsfdqsETPzVUtX5s1Z5kStiIM6l4A==" + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-parser": { + "version": "20.2.4", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", + "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-unparser": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", + "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", + "dependencies": { + "camelcase": "^6.0.0", + "decamelize": "^4.0.0", + "flat": "^5.0.2", + "is-plain-obj": "^2.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } } - ] - }, - "node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/serialize-javascript": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", - "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true - }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", - "dev": true - }, - "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==", - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "node_modules/tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", - "dev": true, - "dependencies": { - "tslib": "^1.8.1" - }, - "engines": { - "node": ">= 6" - }, - "peerDependencies": { - "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" - } }, - "node_modules/type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "dependencies": { - "prelude-ls": "^1.2.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "engines": { - "node": ">=4" - } - }, - "node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/typescript": { - "version": "4.4.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.4.4.tgz", - "integrity": "sha512-DqGhF5IKoBl8WNf8C1gu8q0xZSInh9j1kJJMqT3a94w1JzVaBU4EXOSMrz9yDqMT0xt3selp83fuFMQ0uzv6qA==", - "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/v8-compile-cache": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", - "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", - "dev": true - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/workerpool": { - "version": "6.1.5", - "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.1.5.tgz", - "integrity": "sha512-XdKkCK0Zqc6w3iTxLckiuJ81tiD/o5rBE/m+nXpRCB+/Sq4DqkfXZ/x0jW02DG1tGsfUGXbTJyZDP+eu67haSw==" - }, - "node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "engines": { - "node": ">=10" - } - }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, - "node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs-parser": { - "version": "20.2.4", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", - "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs-unparser": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", - "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", - "dependencies": { - "camelcase": "^6.0.0", - "decamelize": "^4.0.0", - "flat": "^5.0.2", - "is-plain-obj": "^2.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", - "dependencies": { - "buffer-crc32": "~0.2.3", - "fd-slicer": "~1.1.0" - } - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - } - }, - "dependencies": { - "@eslint/eslintrc": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.0.3.tgz", - "integrity": "sha512-DHI1wDPoKCBPoLZA3qDR91+3te/wDSc1YhKg3jR8NxKKRJq2hwHwcWv31cSwSYvIBrmbENoYMWcenW8uproQqg==", - "dev": true, - "requires": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.0.0", - "globals": "^13.9.0", - "ignore": "^4.0.6", - "import-fresh": "^3.2.1", - "js-yaml": "^3.13.1", - "minimatch": "^3.0.4", - "strip-json-comments": "^3.1.1" - }, - "dependencies": { + "dependencies": { + "@eslint/eslintrc": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.0.3.tgz", + "integrity": "sha512-DHI1wDPoKCBPoLZA3qDR91+3te/wDSc1YhKg3jR8NxKKRJq2hwHwcWv31cSwSYvIBrmbENoYMWcenW8uproQqg==", + "dev": true, + "requires": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.0.0", + "globals": "^13.9.0", + "ignore": "^4.0.6", + "import-fresh": "^3.2.1", + "js-yaml": "^3.13.1", + "minimatch": "^3.0.4", + "strip-json-comments": "^3.1.1" + }, + "dependencies": { + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true + }, + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + } + } + }, + "@humanwhocodes/config-array": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.6.0.tgz", + "integrity": "sha512-JQlEKbcgEUjBFhLIF4iqM7u/9lwgHRBcpHrmUNCALK0Q3amXN6lxdoXLnF0sm11E9VqTmBALR87IlUg1bZ8A9A==", + "dev": true, + "requires": { + "@humanwhocodes/object-schema": "^1.2.0", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + } + }, + "@humanwhocodes/object-schema": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.0.tgz", + "integrity": "sha512-wdppn25U8z/2yiaT6YGquE6X8sSv7hNMWSXYSSU1jGv/yd6XqjXgTDJ8KP4NgjTXfJ3GbRjeeb8RTV7a/VpM+w==", + "dev": true + }, + "@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true + }, + "@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + } + }, + "@types/json-schema": { + "version": "7.0.9", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", + "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==", + "dev": true + }, + "@types/node": { + "version": "16.11.6", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.6.tgz", + "integrity": "sha512-ua7PgUoeQFjmWPcoo9khiPum3Pd60k4/2ZGXt18sm2Slk0W0xZTqt5Y0Ny1NyBiN1EVQ/+FaF9NcY4Qe6rwk5w==", + "dev": true + }, + "@types/semver": { + "version": "7.3.9", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.9.tgz", + "integrity": "sha512-L/TMpyURfBkf+o/526Zb6kd/tchUP3iBDEPjqjb+U2MAJhVRxxrmr2fwpe08E7QsV7YLcpq0tUaQ9O9x97ZIxQ==" + }, + "@types/yauzl": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.9.2.tgz", + "integrity": "sha512-8uALY5LTvSuHgloDVUvWP3pIauILm+8/0pDMokuDYIoNsOkSwd5AiHBTSEJjKTDcZr5z8UpgOWZkxBF4iJftoA==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@typescript-eslint/eslint-plugin": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.2.0.tgz", + "integrity": "sha512-qQwg7sqYkBF4CIQSyRQyqsYvP+g/J0To9ZPVNJpfxfekl5RmdvQnFFTVVwpRtaUDFNvjfe/34TgY/dpc3MgNTw==", + "dev": true, + "requires": { + "@typescript-eslint/experimental-utils": "5.2.0", + "@typescript-eslint/scope-manager": "5.2.0", + "debug": "^4.3.2", + "functional-red-black-tree": "^1.0.1", + "ignore": "^5.1.8", + "regexpp": "^3.2.0", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/experimental-utils": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.2.0.tgz", + "integrity": "sha512-fWyT3Agf7n7HuZZRpvUYdFYbPk3iDCq6fgu3ulia4c7yxmPnwVBovdSOX7RL+k8u6hLbrXcdAehlWUVpGh6IEw==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.9", + "@typescript-eslint/scope-manager": "5.2.0", + "@typescript-eslint/types": "5.2.0", + "@typescript-eslint/typescript-estree": "5.2.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0" + } + }, + "@typescript-eslint/parser": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.2.0.tgz", + "integrity": "sha512-Uyy4TjJBlh3NuA8/4yIQptyJb95Qz5PX//6p8n7zG0QnN4o3NF9Je3JHbVU7fxf5ncSXTmnvMtd/LDQWDk0YqA==", + "dev": true, + "requires": { + "@typescript-eslint/scope-manager": "5.2.0", + "@typescript-eslint/types": "5.2.0", + "@typescript-eslint/typescript-estree": "5.2.0", + "debug": "^4.3.2" + } + }, + "@typescript-eslint/scope-manager": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.2.0.tgz", + "integrity": "sha512-RW+wowZqPzQw8MUFltfKYZfKXqA2qgyi6oi/31J1zfXJRpOn6tCaZtd9b5u9ubnDG2n/EMvQLeZrsLNPpaUiFQ==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.2.0", + "@typescript-eslint/visitor-keys": "5.2.0" + } + }, + "@typescript-eslint/types": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.2.0.tgz", + "integrity": "sha512-cTk6x08qqosps6sPyP2j7NxyFPlCNsJwSDasqPNjEQ8JMD5xxj2NHxcLin5AJQ8pAVwpQ8BMI3bTxR0zxmK9qQ==", + "dev": true + }, + "@typescript-eslint/typescript-estree": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.2.0.tgz", + "integrity": "sha512-RsdXq2XmVgKbm9nLsE3mjNUM7BTr/K4DYR9WfFVMUuozHWtH5gMpiNZmtrMG8GR385EOSQ3kC9HiEMJWimxd/g==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.2.0", + "@typescript-eslint/visitor-keys": "5.2.0", + "debug": "^4.3.2", + "globby": "^11.0.4", + "is-glob": "^4.0.3", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/visitor-keys": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.2.0.tgz", + "integrity": "sha512-Nk7HizaXWWCUBfLA/rPNKMzXzWS8Wg9qHMuGtT+v2/YpPij4nVXrVJc24N/r5WrrmqK31jCrZxeHqIgqRzs0Xg==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.2.0", + "eslint-visitor-keys": "^3.0.0" + } + }, + "@ungap/promise-all-settled": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz", + "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==" + }, + "acorn": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.5.0.tgz", + "integrity": "sha512-yXbYeFy+jUuYd3/CDcg2NkIYE991XYX/bje7LmjJigUciaeO1JR4XxXgCIV1/Zc/dRuFEyw1L0pbA+qynJkW5Q==", + "dev": true + }, + "acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "requires": {} + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==" + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "requires": { - "sprintf-js": "~1.0.2" - } + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" }, - "ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true + "array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true + }, + "assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==" + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==" + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "requires": { + "fill-range": "^7.0.1" + } + }, + "browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==" + }, + "buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=" + }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true + }, + "camelcase": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", + "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==" + }, + "chai": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.4.tgz", + "integrity": "sha512-yS5H68VYOCtN1cjfwumDSuzn/9c+yza4f3reKXlE5rUg7SFcCEy90gJvydNgOYtblyf4Zi6jIWRnXOgErta0KA==", + "requires": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.2", + "deep-eql": "^3.0.1", + "get-func-name": "^2.0.0", + "pathval": "^1.1.1", + "type-detect": "^4.0.5" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "check-error": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", + "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=" + }, + "chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.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" + }, + "dependencies": { + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "requires": { + "is-glob": "^4.0.1" + } + } + } + }, + "cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "debug": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "requires": { + "ms": "2.1.2" + } + }, + "decamelize": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", + "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==" + }, + "deep-eql": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", + "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", + "requires": { + "type-detect": "^4.0.0" + } + }, + "deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "diff": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", + "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==" + }, + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "requires": { + "path-type": "^4.0.0" + } + }, + "doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "enquirer": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", + "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", + "dev": true, + "requires": { + "ansi-colors": "^4.1.1" + } + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" + }, + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==" + }, + "eslint": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.1.0.tgz", + "integrity": "sha512-JZvNneArGSUsluHWJ8g8MMs3CfIEzwaLx9KyH4tZ2i+R2/rPWzL8c0zg3rHdwYVpN/1sB9gqnjHwz9HoeJpGHw==", + "dev": true, + "requires": { + "@eslint/eslintrc": "^1.0.3", + "@humanwhocodes/config-array": "^0.6.0", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "enquirer": "^2.3.5", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^6.0.0", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.0.0", + "espree": "^9.0.0", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^6.0.1", + "globals": "^13.6.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.0.4", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "progress": "^2.0.0", + "regexpp": "^3.2.0", + "semver": "^7.2.1", + "strip-ansi": "^6.0.0", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "dependencies": { + "eslint-scope": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-6.0.0.tgz", + "integrity": "sha512-uRDL9MWmQCkaFus8RF5K9/L/2fn+80yoW3jkD53l4shjCh26fCtvJGasxjUqP5OT87SYTxCVA3BwTUzuELx9kA==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + } + }, + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + }, + "ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true + } + } }, - "js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - } - } - }, - "@humanwhocodes/config-array": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.6.0.tgz", - "integrity": "sha512-JQlEKbcgEUjBFhLIF4iqM7u/9lwgHRBcpHrmUNCALK0Q3amXN6lxdoXLnF0sm11E9VqTmBALR87IlUg1bZ8A9A==", - "dev": true, - "requires": { - "@humanwhocodes/object-schema": "^1.2.0", - "debug": "^4.1.1", - "minimatch": "^3.0.4" - } - }, - "@humanwhocodes/object-schema": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.0.tgz", - "integrity": "sha512-wdppn25U8z/2yiaT6YGquE6X8sSv7hNMWSXYSSU1jGv/yd6XqjXgTDJ8KP4NgjTXfJ3GbRjeeb8RTV7a/VpM+w==", - "dev": true - }, - "@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "requires": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - } - }, - "@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true - }, - "@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "requires": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - } - }, - "@types/json-schema": { - "version": "7.0.9", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", - "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==", - "dev": true - }, - "@types/node": { - "version": "16.11.6", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.6.tgz", - "integrity": "sha512-ua7PgUoeQFjmWPcoo9khiPum3Pd60k4/2ZGXt18sm2Slk0W0xZTqt5Y0Ny1NyBiN1EVQ/+FaF9NcY4Qe6rwk5w==", - "dev": true - }, - "@types/semver": { - "version": "7.3.9", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.9.tgz", - "integrity": "sha512-L/TMpyURfBkf+o/526Zb6kd/tchUP3iBDEPjqjb+U2MAJhVRxxrmr2fwpe08E7QsV7YLcpq0tUaQ9O9x97ZIxQ==" - }, - "@types/yauzl": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.9.2.tgz", - "integrity": "sha512-8uALY5LTvSuHgloDVUvWP3pIauILm+8/0pDMokuDYIoNsOkSwd5AiHBTSEJjKTDcZr5z8UpgOWZkxBF4iJftoA==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@typescript-eslint/eslint-plugin": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.2.0.tgz", - "integrity": "sha512-qQwg7sqYkBF4CIQSyRQyqsYvP+g/J0To9ZPVNJpfxfekl5RmdvQnFFTVVwpRtaUDFNvjfe/34TgY/dpc3MgNTw==", - "dev": true, - "requires": { - "@typescript-eslint/experimental-utils": "5.2.0", - "@typescript-eslint/scope-manager": "5.2.0", - "debug": "^4.3.2", - "functional-red-black-tree": "^1.0.1", - "ignore": "^5.1.8", - "regexpp": "^3.2.0", - "semver": "^7.3.5", - "tsutils": "^3.21.0" - } - }, - "@typescript-eslint/experimental-utils": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.2.0.tgz", - "integrity": "sha512-fWyT3Agf7n7HuZZRpvUYdFYbPk3iDCq6fgu3ulia4c7yxmPnwVBovdSOX7RL+k8u6hLbrXcdAehlWUVpGh6IEw==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.2.0", - "@typescript-eslint/types": "5.2.0", - "@typescript-eslint/typescript-estree": "5.2.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^3.0.0" - } - }, - "@typescript-eslint/parser": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.2.0.tgz", - "integrity": "sha512-Uyy4TjJBlh3NuA8/4yIQptyJb95Qz5PX//6p8n7zG0QnN4o3NF9Je3JHbVU7fxf5ncSXTmnvMtd/LDQWDk0YqA==", - "dev": true, - "requires": { - "@typescript-eslint/scope-manager": "5.2.0", - "@typescript-eslint/types": "5.2.0", - "@typescript-eslint/typescript-estree": "5.2.0", - "debug": "^4.3.2" - } - }, - "@typescript-eslint/scope-manager": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.2.0.tgz", - "integrity": "sha512-RW+wowZqPzQw8MUFltfKYZfKXqA2qgyi6oi/31J1zfXJRpOn6tCaZtd9b5u9ubnDG2n/EMvQLeZrsLNPpaUiFQ==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.2.0", - "@typescript-eslint/visitor-keys": "5.2.0" - } - }, - "@typescript-eslint/types": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.2.0.tgz", - "integrity": "sha512-cTk6x08qqosps6sPyP2j7NxyFPlCNsJwSDasqPNjEQ8JMD5xxj2NHxcLin5AJQ8pAVwpQ8BMI3bTxR0zxmK9qQ==", - "dev": true - }, - "@typescript-eslint/typescript-estree": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.2.0.tgz", - "integrity": "sha512-RsdXq2XmVgKbm9nLsE3mjNUM7BTr/K4DYR9WfFVMUuozHWtH5gMpiNZmtrMG8GR385EOSQ3kC9HiEMJWimxd/g==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.2.0", - "@typescript-eslint/visitor-keys": "5.2.0", - "debug": "^4.3.2", - "globby": "^11.0.4", - "is-glob": "^4.0.3", - "semver": "^7.3.5", - "tsutils": "^3.21.0" - } - }, - "@typescript-eslint/visitor-keys": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.2.0.tgz", - "integrity": "sha512-Nk7HizaXWWCUBfLA/rPNKMzXzWS8Wg9qHMuGtT+v2/YpPij4nVXrVJc24N/r5WrrmqK31jCrZxeHqIgqRzs0Xg==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.2.0", - "eslint-visitor-keys": "^3.0.0" - } - }, - "@ungap/promise-all-settled": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz", - "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==" - }, - "acorn": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.5.0.tgz", - "integrity": "sha512-yXbYeFy+jUuYd3/CDcg2NkIYE991XYX/bje7LmjJigUciaeO1JR4XxXgCIV1/Zc/dRuFEyw1L0pbA+qynJkW5Q==", - "dev": true - }, - "acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "requires": {} - }, - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==" - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" - }, - "array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true - }, - "assertion-error": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", - "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==" - }, - "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==" - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "requires": { - "fill-range": "^7.0.1" - } - }, - "browser-stdout": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", - "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==" - }, - "buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=" - }, - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true - }, - "camelcase": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", - "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==" - }, - "chai": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.4.tgz", - "integrity": "sha512-yS5H68VYOCtN1cjfwumDSuzn/9c+yza4f3reKXlE5rUg7SFcCEy90gJvydNgOYtblyf4Zi6jIWRnXOgErta0KA==", - "requires": { - "assertion-error": "^1.1.0", - "check-error": "^1.0.2", - "deep-eql": "^3.0.1", - "get-func-name": "^2.0.0", - "pathval": "^1.1.1", - "type-detect": "^4.0.5" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "check-error": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", - "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=" - }, - "chokidar": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", - "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", - "requires": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "fsevents": "~2.3.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" - }, - "dependencies": { - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "requires": { - "is-glob": "^4.0.1" - } - } - } - }, - "cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "requires": { - "ms": "2.1.2" - } - }, - "decamelize": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", - "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==" - }, - "deep-eql": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", - "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", - "requires": { - "type-detect": "^4.0.0" - } - }, - "deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true - }, - "diff": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", - "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==" - }, - "dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "requires": { - "path-type": "^4.0.0" - } - }, - "doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "enquirer": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", - "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", - "dev": true, - "requires": { - "ansi-colors": "^4.1.1" - } - }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" - }, - "escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==" - }, - "eslint": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.1.0.tgz", - "integrity": "sha512-JZvNneArGSUsluHWJ8g8MMs3CfIEzwaLx9KyH4tZ2i+R2/rPWzL8c0zg3rHdwYVpN/1sB9gqnjHwz9HoeJpGHw==", - "dev": true, - "requires": { - "@eslint/eslintrc": "^1.0.3", - "@humanwhocodes/config-array": "^0.6.0", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "enquirer": "^2.3.5", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^6.0.0", - "eslint-utils": "^3.0.0", - "eslint-visitor-keys": "^3.0.0", - "espree": "^9.0.0", - "esquery": "^1.4.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^6.0.1", - "globals": "^13.6.0", - "ignore": "^4.0.6", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.0.4", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "progress": "^2.0.0", - "regexpp": "^3.2.0", - "semver": "^7.2.1", - "strip-ansi": "^6.0.0", - "strip-json-comments": "^3.1.0", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" - }, - "dependencies": { "eslint-scope": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-6.0.0.tgz", - "integrity": "sha512-uRDL9MWmQCkaFus8RF5K9/L/2fn+80yoW3jkD53l4shjCh26fCtvJGasxjUqP5OT87SYTxCVA3BwTUzuELx9kA==", - "dev": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - } + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + } }, - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true + "eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^2.0.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true + } + } }, - "ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true - } - } - }, - "eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - } - }, - "eslint-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", - "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^2.0.0" - }, - "dependencies": { "eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true - } - } - }, - "eslint-visitor-keys": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.0.0.tgz", - "integrity": "sha512-mJOZa35trBTb3IyRmo8xmKBZlxf+N7OnUl4+ZhJHs/r+0770Wh/LEACE2pqMGMe27G/4y8P2bYGk4J70IC5k1Q==", - "dev": true - }, - "espree": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.0.0.tgz", - "integrity": "sha512-r5EQJcYZ2oaGbeR0jR0fFVijGOcwai07/690YRXLINuhmVeRY4UKSAsQPe/0BNuDgwP7Ophoc1PRsr2E3tkbdQ==", - "dev": true, - "requires": { - "acorn": "^8.5.0", - "acorn-jsx": "^5.3.1", - "eslint-visitor-keys": "^3.0.0" - } - }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true - }, - "esquery": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", - "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", - "dev": true, - "requires": { - "estraverse": "^5.1.0" - }, - "dependencies": { - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - } - } - }, - "esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "requires": { - "estraverse": "^5.2.0" - }, - "dependencies": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.0.0.tgz", + "integrity": "sha512-mJOZa35trBTb3IyRmo8xmKBZlxf+N7OnUl4+ZhJHs/r+0770Wh/LEACE2pqMGMe27G/4y8P2bYGk4J70IC5k1Q==", + "dev": true + }, + "espree": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.0.0.tgz", + "integrity": "sha512-r5EQJcYZ2oaGbeR0jR0fFVijGOcwai07/690YRXLINuhmVeRY4UKSAsQPe/0BNuDgwP7Ophoc1PRsr2E3tkbdQ==", + "dev": true, + "requires": { + "acorn": "^8.5.0", + "acorn-jsx": "^5.3.1", + "eslint-visitor-keys": "^3.0.0" + } + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + }, + "esquery": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "dev": true, + "requires": { + "estraverse": "^5.1.0" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + } + } + }, + "esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "requires": { + "estraverse": "^5.2.0" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + } + } + }, "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - } - } - }, - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true - }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true - }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "fast-glob": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz", - "integrity": "sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==", - "dev": true, - "requires": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "dependencies": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "fast-glob": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz", + "integrity": "sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "dependencies": { + "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, + "requires": { + "is-glob": "^4.0.1" + } + } + } + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "fastq": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "dev": true, + "requires": { + "reusify": "^1.0.4" + } + }, + "fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", + "requires": { + "pend": "~1.2.0" + } + }, + "file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "requires": { + "flat-cache": "^3.0.4" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "requires": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + } + }, + "flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==" + }, + "flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "requires": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + } + }, + "flatted": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.2.tgz", + "integrity": "sha512-JaTY/wtrcSyvXJl4IMFHPKyFur1sE9AUqc0QnhOaJ0CxHtAoIV8pYDzeEfAaNEtGkOfq4gr3LBFmdXW5mOQFnA==", + "dev": true + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "optional": true + }, + "functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "dev": true + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" + }, + "get-func-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz", + "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==" + }, + "glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, "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, - "requires": { - "is-glob": "^4.0.1" - } - } - } - }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", - "dev": true - }, - "fastq": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", - "dev": true, - "requires": { - "reusify": "^1.0.4" - } - }, - "fd-slicer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", - "requires": { - "pend": "~1.2.0" - } - }, - "file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "dev": true, - "requires": { - "flat-cache": "^3.0.4" - } - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - } - }, - "flat": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", - "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==" - }, - "flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", - "dev": true, - "requires": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" - } - }, - "flatted": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.2.tgz", - "integrity": "sha512-JaTY/wtrcSyvXJl4IMFHPKyFur1sE9AUqc0QnhOaJ0CxHtAoIV8pYDzeEfAaNEtGkOfq4gr3LBFmdXW5mOQFnA==", - "dev": true - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "optional": true - }, - "functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", - "dev": true - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" - }, - "get-func-name": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", - "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=" - }, - "glob": { - "version": "7.1.7", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", - "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "requires": { - "is-glob": "^4.0.3" - } - }, - "globals": { - "version": "13.11.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.11.0.tgz", - "integrity": "sha512-08/xrJ7wQjK9kkkRoI3OFUBbLx4f+6x3SGwcPvQ0QH6goFDrOU2oyAWrmh3dJezu65buo+HBMzAMQy6rovVC3g==", - "dev": true, - "requires": { - "type-fest": "^0.20.2" - } - }, - "globby": { - "version": "11.0.4", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz", - "integrity": "sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==", - "dev": true, - "requires": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.1.1", - "ignore": "^5.1.4", - "merge2": "^1.3.0", - "slash": "^3.0.0" - } - }, - "growl": { - "version": "1.10.5", - "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", - "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==" - }, - "ignore": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", - "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", - "dev": true - }, - "import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "requires": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - } - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "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==", - "requires": { - "binary-extensions": "^2.0.0" - } - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" - }, - "is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" - }, - "is-plain-obj": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==" - }, - "is-unicode-supported": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==" - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" - }, - "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "requires": { - "argparse": "^2.0.1" - } - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", - "dev": true - }, - "levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "requires": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - } - }, - "locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "requires": { - "p-locate": "^5.0.0" - } - }, - "lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true - }, - "log-symbols": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", - "requires": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - } - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "requires": { - "yallist": "^4.0.0" - } - }, - "merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true - }, - "micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "dev": true, - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - } - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "mocha": { - "version": "9.1.3", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-9.1.3.tgz", - "integrity": "sha512-Xcpl9FqXOAYqI3j79pEtHBBnQgVXIhpULjGQa7DVb0Po+VzmSIK9kanAiWLHoRR/dbZ2qpdPshuXr8l1VaHCzw==", - "requires": { - "@ungap/promise-all-settled": "1.1.2", - "ansi-colors": "4.1.1", - "browser-stdout": "1.3.1", - "chokidar": "3.5.2", - "debug": "4.3.2", - "diff": "5.0.0", - "escape-string-regexp": "4.0.0", - "find-up": "5.0.0", - "glob": "7.1.7", - "growl": "1.10.5", - "he": "1.2.0", - "js-yaml": "4.1.0", - "log-symbols": "4.1.0", - "minimatch": "3.0.4", - "ms": "2.1.3", - "nanoid": "3.1.25", - "serialize-javascript": "6.0.0", - "strip-json-comments": "3.1.1", - "supports-color": "8.1.1", - "which": "2.0.2", - "workerpool": "6.1.5", - "yargs": "16.2.0", - "yargs-parser": "20.2.4", - "yargs-unparser": "2.0.0" - }, - "dependencies": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "requires": { + "is-glob": "^4.0.3" + } + }, + "globals": { + "version": "13.11.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.11.0.tgz", + "integrity": "sha512-08/xrJ7wQjK9kkkRoI3OFUBbLx4f+6x3SGwcPvQ0QH6goFDrOU2oyAWrmh3dJezu65buo+HBMzAMQy6rovVC3g==", + "dev": true, + "requires": { + "type-fest": "^0.20.2" + } + }, + "globby": { + "version": "11.0.4", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz", + "integrity": "sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==", + "dev": true, + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.1.1", + "ignore": "^5.1.4", + "merge2": "^1.3.0", + "slash": "^3.0.0" + } + }, + "growl": { + "version": "1.10.5", + "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", + "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==" + }, + "ignore": { + "version": "5.1.8", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", + "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", + "dev": true + }, + "import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "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==", + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + }, + "is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==" + }, + "is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==" + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "requires": { + "argparse": "^2.0.1" + } + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "dev": true + }, + "levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + } + }, + "locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "requires": { + "p-locate": "^5.0.0" + } + }, + "lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "requires": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + } + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "requires": { + "yallist": "^4.0.0" + } + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true + }, + "micromatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "dev": true, + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.2.3" + } + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "mocha": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-9.2.2.tgz", + "integrity": "sha512-L6XC3EdwT6YrIk0yXpavvLkn8h+EU+Y5UcCHKECyMbdUIxyMuZj4bX4U9e1nvnvUUvQVsV2VHQr5zLdcUkhW/g==", + "requires": { + "@ungap/promise-all-settled": "1.1.2", + "ansi-colors": "4.1.1", + "browser-stdout": "1.3.1", + "chokidar": "3.5.3", + "debug": "4.3.3", + "diff": "5.0.0", + "escape-string-regexp": "4.0.0", + "find-up": "5.0.0", + "glob": "7.2.0", + "growl": "1.10.5", + "he": "1.2.0", + "js-yaml": "4.1.0", + "log-symbols": "4.1.0", + "minimatch": "4.2.1", + "ms": "2.1.3", + "nanoid": "3.3.1", + "serialize-javascript": "6.0.0", + "strip-json-comments": "3.1.1", + "supports-color": "8.1.1", + "which": "2.0.2", + "workerpool": "6.2.0", + "yargs": "16.2.0", + "yargs-parser": "20.2.4", + "yargs-unparser": "2.0.0" + }, + "dependencies": { + "minimatch": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-4.2.1.tgz", + "integrity": "sha512-9Uq1ChtSZO+Mxa/CL1eGizn2vRn3MlLgzhT0Iz8zaY8NdvxvB0d5QdPFmCKf7JKA9Lerx5vRrnwO03jsSfGG9g==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "nanoid": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.1.tgz", + "integrity": "sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==" + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": true + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "requires": { + "wrappy": "1" + } + }, + "optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "requires": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + } + }, + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "requires": { + "p-limit": "^3.0.2" + } + }, + "parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "requires": { + "callsites": "^3.0.0" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true + }, + "pathval": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", + "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==" + }, + "pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=" + }, + "picomatch": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", + "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==" + }, + "prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true + }, + "progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true + }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "requires": { + "picomatch": "^2.2.1" + } + }, + "regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" + }, + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "requires": { + "queue-microtask": "^1.2.2" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + }, + "semver": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "requires": { + "lru-cache": "^6.0.0" + } + }, + "serialize-javascript": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", + "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "requires": { + "randombytes": "^2.1.0" + } + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==" }, "supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "requires": { - "has-flag": "^4.0.0" - } + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true + }, + "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==", + "requires": { + "is-number": "^7.0.0" + } + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "requires": { + "tslib": "^1.8.1" + } + }, + "type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1" + } + }, + "type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==" + }, + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true + }, + "typescript": { + "version": "4.4.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.4.4.tgz", + "integrity": "sha512-DqGhF5IKoBl8WNf8C1gu8q0xZSInh9j1kJJMqT3a94w1JzVaBU4EXOSMrz9yDqMT0xt3selp83fuFMQ0uzv6qA==", + "dev": true + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "v8-compile-cache": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", + "dev": true + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "requires": { + "isexe": "^2.0.0" + } + }, + "word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true + }, + "workerpool": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.0.tgz", + "integrity": "sha512-Rsk5qQHJ9eowMH28Jwhe8HEbmdYDX4lwoMWshiCXugjtHqMD9ZbiqSDLxcsfdqsETPzVUtX5s1Z5kStiIM6l4A==" + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==" + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + } + }, + "yargs-parser": { + "version": "20.2.4", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", + "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==" + }, + "yargs-unparser": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", + "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", + "requires": { + "camelcase": "^6.0.0", + "decamelize": "^4.0.0", + "flat": "^5.0.2", + "is-plain-obj": "^2.1.0" + } + }, + "yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", + "requires": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + }, + "yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==" } - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "nanoid": { - "version": "3.1.25", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.25.tgz", - "integrity": "sha512-rdwtIXaXCLFAQbnfqDRnI6jaRHp9fTcYBjtFKE8eezcZ7LuLjhUaQGNeMXf1HmRoCH32CLz6XwX0TtxEOS/A3Q==" - }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", - "dev": true - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "requires": { - "wrappy": "1" - } - }, - "optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", - "dev": true, - "requires": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" - } - }, - "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "requires": { - "yocto-queue": "^0.1.0" - } - }, - "p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "requires": { - "p-limit": "^3.0.2" - } - }, - "parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "requires": { - "callsites": "^3.0.0" - } - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true - }, - "path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true - }, - "pathval": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", - "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==" - }, - "pend": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=" - }, - "picomatch": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", - "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==" - }, - "prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true - }, - "progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true - }, - "queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true - }, - "randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "requires": { - "safe-buffer": "^5.1.0" - } - }, - "readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "requires": { - "picomatch": "^2.2.1" - } - }, - "regexpp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", - "dev": true - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" - }, - "resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true - }, - "reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "requires": { - "queue-microtask": "^1.2.2" - } - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" - }, - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "requires": { - "lru-cache": "^6.0.0" - } - }, - "serialize-javascript": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", - "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", - "requires": { - "randombytes": "^2.1.0" - } - }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==" - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - }, - "text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", - "dev": true - }, - "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==", - "requires": { - "is-number": "^7.0.0" - } - }, - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", - "dev": true, - "requires": { - "tslib": "^1.8.1" - } - }, - "type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "requires": { - "prelude-ls": "^1.2.1" - } - }, - "type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==" - }, - "type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true - }, - "typescript": { - "version": "4.4.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.4.4.tgz", - "integrity": "sha512-DqGhF5IKoBl8WNf8C1gu8q0xZSInh9j1kJJMqT3a94w1JzVaBU4EXOSMrz9yDqMT0xt3selp83fuFMQ0uzv6qA==", - "dev": true - }, - "uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "requires": { - "punycode": "^2.1.0" - } - }, - "v8-compile-cache": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", - "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", - "dev": true - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "requires": { - "isexe": "^2.0.0" - } - }, - "word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true - }, - "workerpool": { - "version": "6.1.5", - "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.1.5.tgz", - "integrity": "sha512-XdKkCK0Zqc6w3iTxLckiuJ81tiD/o5rBE/m+nXpRCB+/Sq4DqkfXZ/x0jW02DG1tGsfUGXbTJyZDP+eu67haSw==" - }, - "wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==" - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, - "yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - } - }, - "yargs-parser": { - "version": "20.2.4", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", - "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==" - }, - "yargs-unparser": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", - "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", - "requires": { - "camelcase": "^6.0.0", - "decamelize": "^4.0.0", - "flat": "^5.0.2", - "is-plain-obj": "^2.1.0" - } - }, - "yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", - "requires": { - "buffer-crc32": "~0.2.3", - "fd-slicer": "~1.1.0" - } - }, - "yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==" } - } } diff --git a/build/src/db.ts b/build/src/db.ts index 5f852f9c..c423a03c 100644 --- a/build/src/db.ts +++ b/build/src/db.ts @@ -2,7 +2,7 @@ import semver from 'semver' import crypto from 'crypto' import fs from 'fs' import { download, streamToBuffer } from './download' -import { ModMetadatasInput, ModMetadatas, addStarsToResults } from './source' +import { ModMetadatasInput, ModMetadatas, addStarsAndTimestampsToResults } from './source' interface ModDb { [name: string]: { @@ -18,7 +18,7 @@ interface ModDb { } } -export async function build(packages: ModMetadatasInput[]): Promise { +export async function build(packages: ModMetadatasInput[], oldDb: PackageDB): Promise { const result: PackageDB = {} const promises: Promise[] = [] @@ -30,7 +30,7 @@ export async function build(packages: ModMetadatasInput[]): Promise { } await Promise.all(promises) - await addStarsToResults(result) + await addStarsAndTimestampsToResults(result, oldDb) return sort(result) } diff --git a/build/src/main.ts b/build/src/main.ts index 7ed3c546..d0dd9f06 100644 --- a/build/src/main.ts +++ b/build/src/main.ts @@ -1,6 +1,7 @@ import * as inputLocations from './inputLocations' import * as source from './source' import * as db from './db' +import fs from 'fs' async function main() { const GITHUB_TOKEN = process.env['GITHUB_TOKEN'] @@ -12,7 +13,8 @@ async function main() { } const packages = await Promise.all(promises) - const pkgDb = await db.build(packages) + const oldDb: PackageDB = JSON.parse((await fs.promises.readFile('../npDatabase.json')).toString()) + const pkgDb = await db.build(packages, oldDb) await db.write(pkgDb) await db.writeMods(pkgDb) } diff --git a/build/src/source.ts b/build/src/source.ts index 7c3930d6..6ee54ff6 100644 --- a/build/src/source.ts +++ b/build/src/source.ts @@ -15,8 +15,8 @@ export async function get(input: InputLocation): Promise { input.type === 'modZip' ? (input: ModZipInputLocation, fileName, parseToJson) => getModZipFile(input, fileName, parseToJson) : input.type === 'ccmod' - ? (input: CCModInputLocation, fileName, parseToJson) => getCCModFile(input, fileName, parseToJson) - : 'error' + ? (input: CCModInputLocation, fileName, parseToJson) => getCCModFile(input, fileName, parseToJson) + : 'error' if (fileFetchFunc === 'error') throw new Error(`Unknown location type '${input.type}'`) let pkg @@ -129,15 +129,25 @@ function openFile(zip: yauzl.ZipFile, file: string): Promise { +async function getStarsAndTimestamp(meta: PkgMetadata | undefined, ccmod: PkgCCMod | undefined): Promise<{ stars: number; timestamp: number } | undefined> { const homepageArr = getHomepage(ccmod?.homepage || meta!.homepage) if (homepageArr.length == 0) return if (homepageArr.length > 1) throw new Error('Multi page star counting not supported') @@ -153,8 +163,11 @@ async function getStars(meta: PkgMetadata | undefined, ccmod: PkgCCMod | undefin }, }) ).json() - const stars = data.stargazers_count - return stars + const stars: number = data.stargazers_count + const date: string = data.pushed_at + const timestamp: number = new Date(date).getTime() + console.log(date, timestamp) + return { stars, timestamp } } return } diff --git a/build/src/types.d.ts b/build/src/types.d.ts index 31c7e04e..e98cd79e 100644 --- a/build/src/types.d.ts +++ b/build/src/types.d.ts @@ -173,6 +173,7 @@ declare type Package = { // Installation methods (try in order) installation: InstallMethod[] stars?: number + lastUpdateTimestamp?: number } /* diff --git a/npDatabase.json b/npDatabase.json index ab27f52d..1b3cd786 100644 --- a/npDatabase.json +++ b/npDatabase.json @@ -115,7 +115,8 @@ } } ], - "stars": 1 + "stars": 1, + "lastUpdateTimestamp": 1687718442000 }, "CCRandomEvents": { "metadata": { @@ -135,7 +136,8 @@ } } ], - "stars": 0 + "stars": 0, + "lastUpdateTimestamp": 1607534153000 }, "Character Swap": { "metadata": { @@ -201,7 +203,8 @@ } } ], - "stars": 5 + "stars": 5, + "lastUpdateTimestamp": 1694221074000 }, "CrossCode C Edition": { "metadata": { @@ -253,7 +256,8 @@ } } ], - "stars": 6 + "stars": 6, + "lastUpdateTimestamp": 1697556236000 }, "Element Boss": { "metadata": { @@ -277,7 +281,8 @@ } } ], - "stars": 0 + "stars": 0, + "lastUpdateTimestamp": 1574862736000 }, "Extra Gamepad Options": { "metadata": { @@ -333,7 +338,8 @@ } } ], - "stars": 0 + "stars": 0, + "lastUpdateTimestamp": 1575922508000 }, "Lea sits on the Title": { "metadata": { @@ -371,7 +377,8 @@ } } ], - "stars": 0 + "stars": 0, + "lastUpdateTimestamp": 1586942674000 }, "New game++": { "metadata": { @@ -414,7 +421,8 @@ } } ], - "stars": 3 + "stars": 3, + "lastUpdateTimestamp": 1662819119000 }, "Palicat": { "metadata": { @@ -438,7 +446,8 @@ } } ], - "stars": 1 + "stars": 1, + "lastUpdateTimestamp": 1593460293000 }, "Qine": { "metadata": { @@ -463,7 +472,8 @@ } } ], - "stars": 1 + "stars": 1, + "lastUpdateTimestamp": 1707002315000 }, "Restart Button": { "metadata": { @@ -485,7 +495,8 @@ } } ], - "stars": 1 + "stars": 1, + "lastUpdateTimestamp": 1656233966000 }, "Simplify": { "metadata": { @@ -572,7 +583,8 @@ } } ], - "stars": 1 + "stars": 1, + "lastUpdateTimestamp": 1646540805000 }, "cc-extra-dialogue": { "metadata": { @@ -603,7 +615,8 @@ } } ], - "stars": 4 + "stars": 4, + "lastUpdateTimestamp": 1633371805000 }, "cc-fancy-crash": { "metadata": { @@ -657,7 +670,8 @@ } } ], - "stars": 0 + "stars": 0, + "lastUpdateTimestamp": 1707129881000 }, "cc-oldmedia": { "metadata": { @@ -694,7 +708,8 @@ } } ], - "stars": 0 + "stars": 0, + "lastUpdateTimestamp": 1685899294000 }, "cc-quickinfo-exp": { "metadata": { @@ -731,7 +746,8 @@ } } ], - "stars": 0 + "stars": 0, + "lastUpdateTimestamp": 1687809967000 }, "cc-uncapped-stats": { "metadata": { @@ -776,7 +792,8 @@ } } ], - "stars": 1 + "stars": 1, + "lastUpdateTimestamp": 1646540805000 }, "cc-vim": { "metadata": { @@ -852,7 +869,8 @@ } } ], - "stars": 1 + "stars": 1, + "lastUpdateTimestamp": 1707145922000 }, "ccloader": { "metadata": { @@ -913,7 +931,8 @@ } } ], - "stars": 0 + "stars": 0, + "lastUpdateTimestamp": 1685899525000 }, "crosscode-tweak-pack": { "metadata": { @@ -974,7 +993,8 @@ } } ], - "stars": 8 + "stars": 8, + "lastUpdateTimestamp": 1690340225000 }, "cursedcode": { "metadata": { @@ -1135,7 +1155,8 @@ } } ], - "stars": 16 + "stars": 16, + "lastUpdateTimestamp": 1698267731000 }, "hardcoded-config-injector": { "metadata": { @@ -1182,7 +1203,8 @@ } } ], - "stars": 5 + "stars": 5, + "lastUpdateTimestamp": 1646924359000 }, "inventory-search": { "metadata": { @@ -1265,7 +1287,8 @@ } } ], - "stars": 4 + "stars": 4, + "lastUpdateTimestamp": 1589834816000 }, "junolea": { "metadata": { @@ -1380,7 +1403,8 @@ } } ], - "stars": 1 + "stars": 1, + "lastUpdateTimestamp": 1628412357000 }, "localize-me": { "metadata": { @@ -1420,7 +1444,8 @@ } } ], - "stars": 5 + "stars": 5, + "lastUpdateTimestamp": 1621100593000 }, "logic-steps": { "metadata": { @@ -1461,7 +1486,8 @@ } } ], - "stars": 1 + "stars": 1, + "lastUpdateTimestamp": 1688564827000 }, "map-watch": { "metadata": { @@ -1547,7 +1573,8 @@ } } ], - "stars": 6 + "stars": 6, + "lastUpdateTimestamp": 1697556236000 }, "nine-rooms": { "metadata": { @@ -1573,7 +1600,8 @@ } } ], - "stars": 1 + "stars": 1, + "lastUpdateTimestamp": 1649296780000 }, "past-booster": { "metadata": { @@ -1605,7 +1633,8 @@ } } ], - "stars": 1 + "stars": 1, + "lastUpdateTimestamp": 1649296780000 }, "readable-saves": { "metadata": { @@ -1639,7 +1668,8 @@ } } ], - "stars": 1 + "stars": 1, + "lastUpdateTimestamp": 1689734609000 }, "slowmotion": { "metadata": { @@ -1667,7 +1697,8 @@ } } ], - "stars": 1 + "stars": 1, + "lastUpdateTimestamp": 1590576242000 }, "timer": { "metadata": { @@ -1713,7 +1744,8 @@ } } ], - "stars": 2 + "stars": 2, + "lastUpdateTimestamp": 1692199724000 }, "timewalker": { "metadata": { @@ -1744,7 +1776,8 @@ } } ], - "stars": 1 + "stars": 1, + "lastUpdateTimestamp": 1599128575000 }, "uwuifier": { "metadata": { @@ -1765,7 +1798,8 @@ } } ], - "stars": 3 + "stars": 3, + "lastUpdateTimestamp": 1636658238000 }, "world-map-overhaul": { "metadata": { @@ -1875,6 +1909,7 @@ } } ], - "stars": 1 + "stars": 1, + "lastUpdateTimestamp": 1626540796000 } } \ No newline at end of file From b9dbc3e3b91396ab3c0085cb62fb86f77e928f15 Mon Sep 17 00:00:00 2001 From: krypek Date: Mon, 12 Feb 2024 18:02:36 +0100 Subject: [PATCH 020/196] Fix lastUpdateTimestamp sometimes being incorrect --- build/package-lock.json | 30 +++++++++++++++++++ build/package.json | 1 + build/src/db.ts | 2 +- build/src/main.ts | 5 ++-- build/src/source.ts | 65 +++++++++++++++++++++++++++-------------- npDatabase.json | 64 ++++++++++++++++++++-------------------- 6 files changed, 110 insertions(+), 57 deletions(-) diff --git a/build/package-lock.json b/build/package-lock.json index 0ccefc3d..d7714712 100644 --- a/build/package-lock.json +++ b/build/package-lock.json @@ -15,6 +15,7 @@ "yauzl": "^2.10.0" }, "devDependencies": { + "@octokit/types": "github:octokit/types.ts", "@types/node": "^16.11.6", "@types/yauzl": "^2.9.2", "@typescript-eslint/eslint-plugin": "^5.2.0", @@ -129,6 +130,21 @@ "node": ">= 8" } }, + "node_modules/@octokit/openapi-types": { + "version": "19.1.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-19.1.0.tgz", + "integrity": "sha512-6G+ywGClliGQwRsjvqVYpklIfa7oRPA0vyhPQG/1Feh+B+wU0vGH1JiJ5T25d3g1JZYBHzR2qefLi9x8Gt+cpw==", + "dev": true + }, + "node_modules/@octokit/types": { + "version": "0.0.0-development", + "resolved": "git+ssh://git@github.com/octokit/types.ts.git#fa1e25b6351b4b057f6c8a41e38121622e0beccf", + "dev": true, + "license": "MIT", + "dependencies": { + "@octokit/openapi-types": "^19.1.0" + } + }, "node_modules/@types/json-schema": { "version": "7.0.9", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", @@ -2229,6 +2245,20 @@ "fastq": "^1.6.0" } }, + "@octokit/openapi-types": { + "version": "19.1.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-19.1.0.tgz", + "integrity": "sha512-6G+ywGClliGQwRsjvqVYpklIfa7oRPA0vyhPQG/1Feh+B+wU0vGH1JiJ5T25d3g1JZYBHzR2qefLi9x8Gt+cpw==", + "dev": true + }, + "@octokit/types": { + "version": "git+ssh://git@github.com/octokit/types.ts.git#fa1e25b6351b4b057f6c8a41e38121622e0beccf", + "dev": true, + "from": "@octokit/types@github:octokit/types.ts", + "requires": { + "@octokit/openapi-types": "^19.1.0" + } + }, "@types/json-schema": { "version": "7.0.9", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", diff --git a/build/package.json b/build/package.json index 9aa6c753..86f2f65c 100644 --- a/build/package.json +++ b/build/package.json @@ -19,6 +19,7 @@ }, "homepage": "https://github.com/CCDirectLink/CCModDB#readme", "devDependencies": { + "@octokit/types": "github:octokit/types.ts", "@types/node": "^16.11.6", "@types/yauzl": "^2.9.2", "@typescript-eslint/eslint-plugin": "^5.2.0", diff --git a/build/src/db.ts b/build/src/db.ts index c423a03c..5a2abcc3 100644 --- a/build/src/db.ts +++ b/build/src/db.ts @@ -18,7 +18,7 @@ interface ModDb { } } -export async function build(packages: ModMetadatasInput[], oldDb: PackageDB): Promise { +export async function build(packages: ModMetadatasInput[], oldDb?: PackageDB): Promise { const result: PackageDB = {} const promises: Promise[] = [] diff --git a/build/src/main.ts b/build/src/main.ts index d0dd9f06..c8c32e0d 100644 --- a/build/src/main.ts +++ b/build/src/main.ts @@ -6,6 +6,7 @@ import fs from 'fs' async function main() { const GITHUB_TOKEN = process.env['GITHUB_TOKEN'] if (!GITHUB_TOKEN) throw new Error('GITHUB_TOKEN enviroment variable is required. To create a token, see https://github.com/settings/tokens?type=beta') + const locations = await inputLocations.parse() const promises: Promise[] = [] for (const loc of locations) { @@ -13,8 +14,8 @@ async function main() { } const packages = await Promise.all(promises) - const oldDb: PackageDB = JSON.parse((await fs.promises.readFile('../npDatabase.json')).toString()) - const pkgDb = await db.build(packages, oldDb) + const oldNpDatabase: PackageDB | undefined = fs.existsSync('../npDatabase.json') ? JSON.parse(fs.readFileSync('../npDatabase.json').toString()) : undefined + const pkgDb = await db.build(packages, oldNpDatabase) await db.write(pkgDb) await db.writeMods(pkgDb) } diff --git a/build/src/source.ts b/build/src/source.ts index 6ee54ff6..1b5f97c1 100644 --- a/build/src/source.ts +++ b/build/src/source.ts @@ -3,6 +3,7 @@ import yauzl from 'yauzl' import { download, streamToBuffer } from './download' import fs from 'fs' import { getHomepage } from './db' +import * as github from '@octokit/openapi-types' export type ModMetadatas = { ccmod?: PkgCCMod @@ -129,44 +130,64 @@ function openFile(zip: yauzl.ZipFile, file: string): Promise { +async function fetchGithub(url: string): Promise { + const GITHUB_TOKEN = process.env['GITHUB_TOKEN'] + const data = await ( + await fetch(url, { + method: 'GET', + headers: { + Authorization: `token ${GITHUB_TOKEN}`, + }, + }) + ).json() + return data +} + +async function getStarsAndTimestamp( + meta: PkgMetadata | undefined, + ccmod: PkgCCMod | undefined, + fetchTimestamp: boolean +): Promise<{ stars: number; timestamp?: number } | undefined> { const homepageArr = getHomepage(ccmod?.homepage || meta!.homepage) if (homepageArr.length == 0) return if (homepageArr.length > 1) throw new Error('Multi page star counting not supported') const { name, url } = homepageArr[0] if (name == 'GitHub') { const apiUrl = `https://api.github.com/repos/${url.substring('https://github.com/'.length)}` - const GITHUB_TOKEN = process.env['GITHUB_TOKEN'] - const data = await ( - await fetch(apiUrl, { - method: 'GET', - headers: { - Authorization: `token ${GITHUB_TOKEN}`, - }, - }) - ).json() - const stars: number = data.stargazers_count - const date: string = data.pushed_at - const timestamp: number = new Date(date).getTime() - console.log(date, timestamp) + const data = await fetchGithub(apiUrl) + const stars = data.stargazers_count + + let timestamp: number | undefined + if (fetchTimestamp) { + const branchApiUrl = data.branches_url.replace(/\{\/branch\}/, `/${data.default_branch}`) + const branchData = await fetchGithub(branchApiUrl) + const date = branchData.commit.commit.author!.date! + timestamp = new Date(date).getTime() + console.log(url, date, timestamp) + } return { stars, timestamp } } return diff --git a/npDatabase.json b/npDatabase.json index 1b3cd786..b8d3add2 100644 --- a/npDatabase.json +++ b/npDatabase.json @@ -137,7 +137,7 @@ } ], "stars": 0, - "lastUpdateTimestamp": 1607534153000 + "lastUpdateTimestamp": 1577479018000 }, "Character Swap": { "metadata": { @@ -204,7 +204,7 @@ } ], "stars": 5, - "lastUpdateTimestamp": 1694221074000 + "lastUpdateTimestamp": 1694220933000 }, "CrossCode C Edition": { "metadata": { @@ -282,7 +282,7 @@ } ], "stars": 0, - "lastUpdateTimestamp": 1574862736000 + "lastUpdateTimestamp": 1574862675000 }, "Extra Gamepad Options": { "metadata": { @@ -339,7 +339,7 @@ } ], "stars": 0, - "lastUpdateTimestamp": 1575922508000 + "lastUpdateTimestamp": 1575922506000 }, "Lea sits on the Title": { "metadata": { @@ -378,7 +378,7 @@ } ], "stars": 0, - "lastUpdateTimestamp": 1586942674000 + "lastUpdateTimestamp": 1586942673000 }, "New game++": { "metadata": { @@ -422,7 +422,7 @@ } ], "stars": 3, - "lastUpdateTimestamp": 1662819119000 + "lastUpdateTimestamp": 1662818967000 }, "Palicat": { "metadata": { @@ -447,7 +447,7 @@ } ], "stars": 1, - "lastUpdateTimestamp": 1593460293000 + "lastUpdateTimestamp": 1593460288000 }, "Qine": { "metadata": { @@ -473,7 +473,7 @@ } ], "stars": 1, - "lastUpdateTimestamp": 1707002315000 + "lastUpdateTimestamp": 1595952730000 }, "Restart Button": { "metadata": { @@ -496,7 +496,7 @@ } ], "stars": 1, - "lastUpdateTimestamp": 1656233966000 + "lastUpdateTimestamp": 1656233954000 }, "Simplify": { "metadata": { @@ -584,7 +584,7 @@ } ], "stars": 1, - "lastUpdateTimestamp": 1646540805000 + "lastUpdateTimestamp": 1646540366000 }, "cc-extra-dialogue": { "metadata": { @@ -616,7 +616,7 @@ } ], "stars": 4, - "lastUpdateTimestamp": 1633371805000 + "lastUpdateTimestamp": 1633371453000 }, "cc-fancy-crash": { "metadata": { @@ -671,7 +671,7 @@ } ], "stars": 0, - "lastUpdateTimestamp": 1707129881000 + "lastUpdateTimestamp": 1707129880000 }, "cc-oldmedia": { "metadata": { @@ -709,7 +709,7 @@ } ], "stars": 0, - "lastUpdateTimestamp": 1685899294000 + "lastUpdateTimestamp": 1685899148000 }, "cc-quickinfo-exp": { "metadata": { @@ -747,7 +747,7 @@ } ], "stars": 0, - "lastUpdateTimestamp": 1687809967000 + "lastUpdateTimestamp": 1687809951000 }, "cc-uncapped-stats": { "metadata": { @@ -793,7 +793,7 @@ } ], "stars": 1, - "lastUpdateTimestamp": 1646540805000 + "lastUpdateTimestamp": 1646540366000 }, "cc-vim": { "metadata": { @@ -870,7 +870,7 @@ } ], "stars": 1, - "lastUpdateTimestamp": 1707145922000 + "lastUpdateTimestamp": 1707145913000 }, "ccloader": { "metadata": { @@ -932,7 +932,7 @@ } ], "stars": 0, - "lastUpdateTimestamp": 1685899525000 + "lastUpdateTimestamp": 1685899488000 }, "crosscode-tweak-pack": { "metadata": { @@ -994,7 +994,7 @@ } ], "stars": 8, - "lastUpdateTimestamp": 1690340225000 + "lastUpdateTimestamp": 1647125834000 }, "cursedcode": { "metadata": { @@ -1156,7 +1156,7 @@ } ], "stars": 16, - "lastUpdateTimestamp": 1698267731000 + "lastUpdateTimestamp": 1696099678000 }, "hardcoded-config-injector": { "metadata": { @@ -1204,7 +1204,7 @@ } ], "stars": 5, - "lastUpdateTimestamp": 1646924359000 + "lastUpdateTimestamp": 1646924334000 }, "inventory-search": { "metadata": { @@ -1288,7 +1288,7 @@ } ], "stars": 4, - "lastUpdateTimestamp": 1589834816000 + "lastUpdateTimestamp": 1589834743000 }, "junolea": { "metadata": { @@ -1404,7 +1404,7 @@ } ], "stars": 1, - "lastUpdateTimestamp": 1628412357000 + "lastUpdateTimestamp": 1628412087000 }, "localize-me": { "metadata": { @@ -1445,7 +1445,7 @@ } ], "stars": 5, - "lastUpdateTimestamp": 1621100593000 + "lastUpdateTimestamp": 1598731033000 }, "logic-steps": { "metadata": { @@ -1487,7 +1487,7 @@ } ], "stars": 1, - "lastUpdateTimestamp": 1688564827000 + "lastUpdateTimestamp": 1688564806000 }, "map-watch": { "metadata": { @@ -1601,7 +1601,7 @@ } ], "stars": 1, - "lastUpdateTimestamp": 1649296780000 + "lastUpdateTimestamp": 1649296678000 }, "past-booster": { "metadata": { @@ -1634,7 +1634,7 @@ } ], "stars": 1, - "lastUpdateTimestamp": 1649296780000 + "lastUpdateTimestamp": 1649296678000 }, "readable-saves": { "metadata": { @@ -1669,7 +1669,7 @@ } ], "stars": 1, - "lastUpdateTimestamp": 1689734609000 + "lastUpdateTimestamp": 1668333525000 }, "slowmotion": { "metadata": { @@ -1698,7 +1698,7 @@ } ], "stars": 1, - "lastUpdateTimestamp": 1590576242000 + "lastUpdateTimestamp": 1590576241000 }, "timer": { "metadata": { @@ -1745,7 +1745,7 @@ } ], "stars": 2, - "lastUpdateTimestamp": 1692199724000 + "lastUpdateTimestamp": 1692199567000 }, "timewalker": { "metadata": { @@ -1777,7 +1777,7 @@ } ], "stars": 1, - "lastUpdateTimestamp": 1599128575000 + "lastUpdateTimestamp": 1599128445000 }, "uwuifier": { "metadata": { @@ -1799,7 +1799,7 @@ } ], "stars": 3, - "lastUpdateTimestamp": 1636658238000 + "lastUpdateTimestamp": 1636657887000 }, "world-map-overhaul": { "metadata": { @@ -1910,6 +1910,6 @@ } ], "stars": 1, - "lastUpdateTimestamp": 1626540796000 + "lastUpdateTimestamp": 1626540789000 } } \ No newline at end of file From 40dd3119a9a304dcdff40eec453e584354a6e713 Mon Sep 17 00:00:00 2001 From: krypek Date: Thu, 15 Feb 2024 19:15:44 +0100 Subject: [PATCH 021/196] Add CCMOD-STANDARD.md --- CCMOD-STANDARD.md | 61 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 CCMOD-STANDARD.md diff --git a/CCMOD-STANDARD.md b/CCMOD-STANDARD.md new file mode 100644 index 00000000..cf79f532 --- /dev/null +++ b/CCMOD-STANDARD.md @@ -0,0 +1,61 @@ + + +# `ccmod.json` format standard + +## Each option explained + +- `id` - Mod unique identifier. Not shown to the user +- `version` - Uses the [semver](https://semver.org/) format +- `title` - Title shown to users. Can be localized +- `description` - Description shown to users. Can be localized +- `license` - Dont know what to choose? I recommend `GPLv3`. Read more at https://choosealicense.com +- `homepage` - Put your GitHub repository link here +- `tags` (Optional) - A list of mod tags. Read what tags are availible below in Mod tag list +- `authors` - Either a string or an array of mod authors +- `icons` (Optional) - Mod icon. Currently only the size of 24x24 pixels is supported +- `dependencies` (Optional) - Require certain mods for the mod to function. Uses the [semver](https://semver.org/) format +- `plugin` (Optional) - Specifies the javascript file to run +- `preload` (Optional) - Specifies the javascript file to run at the `preload` stage +- `postload` (Optional) - Specifies the javascript file to run at the `postload` stage +- `prestart` (Optional) - Specifies the javascript file to run at the `prestart` stage +- `poststart` (Optional) - Specifies the javascript file to run at the `poststart` stage + +## Mod tag list + +- `QoL` - stands for "Quality of Life". Makes the playing experience smoother +- `character` - adds new playable characters and/or classes +- `combat arts` - adds new combat arts +- `maps` - adds new content maps +- `boss` - adds new bosses +- `ng++` - adds additional ng+ options +- `skins` - adds any kind of skin to the game +- `pets` - add a pet +- `accessibility` - makes the game more accessible +- `dev` - helps mod developers create mods +- `library` - used by other mods + +## Example `ccmod.json` + +```json +{ + "id": "crossedeyes", + "version": "0.5.7", + "name": "CrossedEyes", + "description": "Accessibility mod for CrossCode", + "license": "GPLv3", + "homepage": "https://github.com/CCDirectLink/CrossedEyes", + "tags": ["accessibility"], + "authors": ["krypek", "2767mr"], + "icons": { + "24": "icon.png" + }, + "dependencies": { + "input-api": ">=1.0.0", + "cc-blitzkrieg": ">=0.4.7", + "crosscode": ">=1.4.0" + }, + "plugin": "plugin.js" +} +``` + +Typescript types for this can be found in [CCUTD](https://github.com/CCDirectLink/ultimate-crosscode-typedefs) From bcfd555d294d082a98c5bf8b0586e129c89b2b6c Mon Sep 17 00:00:00 2001 From: krypek Date: Thu, 15 Feb 2024 19:29:13 +0100 Subject: [PATCH 022/196] Update CCMOD-STANDARD.md --- CCMOD-STANDARD.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/CCMOD-STANDARD.md b/CCMOD-STANDARD.md index cf79f532..a1badc0b 100644 --- a/CCMOD-STANDARD.md +++ b/CCMOD-STANDARD.md @@ -27,8 +27,8 @@ - `combat arts` - adds new combat arts - `maps` - adds new content maps - `boss` - adds new bosses -- `ng++` - adds additional ng+ options -- `skins` - adds any kind of skin to the game +- `ng+` - adds additional ng+ options +- `cosmetic` - adds any kind of cosmetic things like skins, pets or menu skins - `pets` - add a pet - `accessibility` - makes the game more accessible - `dev` - helps mod developers create mods @@ -58,4 +58,4 @@ } ``` -Typescript types for this can be found in [CCUTD](https://github.com/CCDirectLink/ultimate-crosscode-typedefs) +Typescript types for this can be found in [CCUTD](https://github.com/CCDirectLink/ultimate-crosscode-typedefs/blob/master/file-types/mod-manifest.d.ts#L5) From 6c924fe9dcc48bc18ce8a1762d5811536fc9ba6d Mon Sep 17 00:00:00 2001 From: krypek Date: Thu, 15 Feb 2024 19:29:26 +0100 Subject: [PATCH 023/196] Add json schema --- ccmod-json-schema.json | 133 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 133 insertions(+) create mode 100644 ccmod-json-schema.json diff --git a/ccmod-json-schema.json b/ccmod-json-schema.json new file mode 100644 index 00000000..92eb037a --- /dev/null +++ b/ccmod-json-schema.json @@ -0,0 +1,133 @@ +{ + "$schema": "https://json-schema.org/draft/2019-09/schema", + "$defs": { + "dependency": { + "type": "object", + "additionalProperties": { + "$ref": "#/$defs/semver" + } + }, + "semver": { + "type": "string" + }, + "localisedString": { + "type": "object", + "properties": { + "en_US": { "type": "string" }, + "de_DE": { "type": "string" }, + "fr_FR": { "type": "string" }, + "zh_CN": { "type": "string" }, + "zh_TW": { "type": "string" }, + "ja_JP": { "type": "string" }, + "ko_KR": { "type": "string" } + } + } + }, + "title": "CCMod Manifest", + "description": "Configuration file for the mod.", + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "ID of the mod, used for various fallbacks." + }, + "title": { + "$ref": "#/$defs/localisedString" + }, + "description": { + "$ref": "#/$defs/localisedString" + }, + "version": { + "$ref": "#/$defs/semver", + "description": "The version of this mod following semantic versioning (https://semver.org)." + }, + "license": { + "type": "string", + "description": "The license this mod is distributed under." + }, + "keywords": { + "type": "array", + "items": { + "type": "string" + }, + "minItems": 1 + }, + "icons": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "authors": { + "type": "array", + "items": { + "type": "string" + }, + "minItems": 1, + "description": "A list of the mod's authors." + }, + "dependencies": { + "type": "object", + "description": "The mods and versions of those mods that this mod depends on.", + "$ref": "#/$defs/dependency" + }, + "plugin": { + "type": "string", + "description": "Path of the plugin file relative to mod root. This is the recommended method." + }, + "preload": { + "type": "string" + }, + "postload": { + "type": "string" + }, + "prestart": { + "type": "string" + }, + "poststart": { + "type": "string" + } + }, + "required": ["id", "version"], + "oneOf": [ + { + "allOf": [ + { + "required": ["plugin"] + }, + { + "not": { + "required": ["preload"] + } + }, + { + "not": { + "required": ["postload"] + } + }, + { + "not": { + "required": ["prestart"] + } + }, + { + "not": { + "required": ["poststart"] + } + } + ] + }, + { + "allOf": [ + { + "required": ["preload", "postload", "prestart", "poststart"] + }, + { + "not": { + "required": ["plugin"] + } + } + ] + } + ] +} From c323837ecd2dfa78bcaaba9923ff7ed8775ecea3 Mon Sep 17 00:00:00 2001 From: krypek Date: Thu, 15 Feb 2024 19:29:26 +0100 Subject: [PATCH 024/196] Add json schema --- CCMOD-STANDARD.md | 3 +- ccmod-json-schema.json | 109 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 111 insertions(+), 1 deletion(-) create mode 100644 ccmod-json-schema.json diff --git a/CCMOD-STANDARD.md b/CCMOD-STANDARD.md index a1badc0b..8b65b5a1 100644 --- a/CCMOD-STANDARD.md +++ b/CCMOD-STANDARD.md @@ -58,4 +58,5 @@ } ``` -Typescript types for this can be found in [CCUTD](https://github.com/CCDirectLink/ultimate-crosscode-typedefs/blob/master/file-types/mod-manifest.d.ts#L5) +Typescript types for this can be found in [CCUTD](https://github.com/CCDirectLink/ultimate-crosscode-typedefs/blob/master/file-types/mod-manifest.d.ts#L5) +[JSON Schema](https://json-schema.org/) for `ccmod.json` can be found [here](./ccmod-json-schema.json). diff --git a/ccmod-json-schema.json b/ccmod-json-schema.json new file mode 100644 index 00000000..4f5b4145 --- /dev/null +++ b/ccmod-json-schema.json @@ -0,0 +1,109 @@ +{ + "$schema": "https://json-schema.org/draft/2019-09/schema", + "$defs": { + "dependency": { + "type": "object", + "additionalProperties": { + "$ref": "#/$defs/semver" + } + }, + "semver": { + "type": "string" + }, + "localisedString": { + "type": ["string", "object"], + "properties": { + "en_US": { "type": "string" }, + "de_DE": { "type": "string" }, + "fr_FR": { "type": "string" }, + "zh_CN": { "type": "string" }, + "zh_TW": { "type": "string" }, + "ja_JP": { "type": "string" }, + "ko_KR": { "type": "string" } + } + } + }, + "title": "CCMod Manifest", + "description": "Configuration file for the mod.", + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "ID of the mod, used for various fallbacks." + }, + "name": { + "$ref": "#/$defs/localisedString" + }, + "description": { + "$ref": "#/$defs/localisedString" + }, + "version": { + "$ref": "#/$defs/semver", + "description": "The version of this mod following semantic versioning (https://semver.org)." + }, + "license": { + "type": "string", + "description": "The license this mod is distributed under." + }, + "tags": { + "type": "array", + "items": { + "type": "string" + }, + "minItems": 0 + }, + "icons": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "authors": { + "type": ["string", "array"], + "items": { + "type": "string" + }, + "minItems": 1, + "description": "A list of the mod's authors." + }, + "dependencies": { + "type": "object", + "description": "The mods and versions of those mods that this mod depends on.", + "$ref": "#/$defs/dependency" + }, + "plugin": { + "type": "string", + "description": "Path of the plugin file relative to mod root. This is the recommended method." + }, + "preload": { + "type": "string" + }, + "postload": { + "type": "string" + }, + "prestart": { + "type": "string" + }, + "poststart": { + "type": "string" + } + }, + "required": ["id", "version"], + "anyOf": [ + { + "required": ["plugin"] + }, + { + "required": ["preload"] + }, + { + "required": ["postload"] + }, + { + "required": ["prestart"] + }, + { + "required": ["poststart"] + } + ] +} From 15030f5f390dbbcf01d1d23d97162ccd245041b2 Mon Sep 17 00:00:00 2001 From: krypek Date: Thu, 15 Feb 2024 19:48:23 +0100 Subject: [PATCH 025/196] Update README.md --- README.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 509d3848..c866a143 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,16 @@ [![CI Status](https://github.com/CCDirectLink/CCModDB/workflows/CI/badge.svg)](https://github.com/CCDirectLink/CCModDB/actions?query=workflow:CI) [![Discord Server](https://img.shields.io/discord/382339402338402315.svg?label=Discord%20Server)](https://discord.gg/3Xw69VjXfW) + # CCModDB + Mod database for CrossCode. +## [`ccmod.json` standard](./CCMOD-STANDARD.md) + ## HOW TO ADD YOUR MOD -Read the [contribution guidelines](CONTRIBUTING.md). +Read the [contribution guidelines](CONTRIBUTING.md). ## HOW TO GENERATE A SHA256 HASH + Download your mod as a zip folder. Check your sha256 checksum [here](https://emn178.github.io/online-tools/sha256_checksum.html) From 17d747c495e963aca9a864de68a1fe06c7811bc8 Mon Sep 17 00:00:00 2001 From: krypek Date: Thu, 15 Feb 2024 19:55:39 +0100 Subject: [PATCH 026/196] Dont require a javascript file for a valid ccmod.json --- ccmod-json-schema.json | 19 +------------------ 1 file changed, 1 insertion(+), 18 deletions(-) diff --git a/ccmod-json-schema.json b/ccmod-json-schema.json index 4f5b4145..abef494a 100644 --- a/ccmod-json-schema.json +++ b/ccmod-json-schema.json @@ -88,22 +88,5 @@ "type": "string" } }, - "required": ["id", "version"], - "anyOf": [ - { - "required": ["plugin"] - }, - { - "required": ["preload"] - }, - { - "required": ["postload"] - }, - { - "required": ["prestart"] - }, - { - "required": ["poststart"] - } - ] + "required": ["id", "version"] } From 1c73188d4ca2586a4e73cd955efae53a4362c00a Mon Sep 17 00:00:00 2001 From: krypek Date: Thu, 15 Feb 2024 20:46:09 +0100 Subject: [PATCH 027/196] Remove the license field --- CCMOD-STANDARD.md | 4 +--- ccmod-json-schema.json | 6 +----- 2 files changed, 2 insertions(+), 8 deletions(-) diff --git a/CCMOD-STANDARD.md b/CCMOD-STANDARD.md index 8b65b5a1..6394aa80 100644 --- a/CCMOD-STANDARD.md +++ b/CCMOD-STANDARD.md @@ -8,7 +8,6 @@ - `version` - Uses the [semver](https://semver.org/) format - `title` - Title shown to users. Can be localized - `description` - Description shown to users. Can be localized -- `license` - Dont know what to choose? I recommend `GPLv3`. Read more at https://choosealicense.com - `homepage` - Put your GitHub repository link here - `tags` (Optional) - A list of mod tags. Read what tags are availible below in Mod tag list - `authors` - Either a string or an array of mod authors @@ -40,9 +39,8 @@ { "id": "crossedeyes", "version": "0.5.7", - "name": "CrossedEyes", + "title": "CrossedEyes", "description": "Accessibility mod for CrossCode", - "license": "GPLv3", "homepage": "https://github.com/CCDirectLink/CrossedEyes", "tags": ["accessibility"], "authors": ["krypek", "2767mr"], diff --git a/ccmod-json-schema.json b/ccmod-json-schema.json index abef494a..e10d77de 100644 --- a/ccmod-json-schema.json +++ b/ccmod-json-schema.json @@ -31,7 +31,7 @@ "type": "string", "description": "ID of the mod, used for various fallbacks." }, - "name": { + "title": { "$ref": "#/$defs/localisedString" }, "description": { @@ -41,10 +41,6 @@ "$ref": "#/$defs/semver", "description": "The version of this mod following semantic versioning (https://semver.org)." }, - "license": { - "type": "string", - "description": "The license this mod is distributed under." - }, "tags": { "type": "array", "items": { From 811facbc4f3dde30c57b2ca4915abe5edad22f42 Mon Sep 17 00:00:00 2001 From: krypek Date: Thu, 15 Feb 2024 21:42:54 +0100 Subject: [PATCH 028/196] Add repository ccmod.json field --- CCMOD-STANDARD.md | 3 ++- ccmod-json-schema.json | 8 ++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/CCMOD-STANDARD.md b/CCMOD-STANDARD.md index 6394aa80..55ed515a 100644 --- a/CCMOD-STANDARD.md +++ b/CCMOD-STANDARD.md @@ -8,7 +8,8 @@ - `version` - Uses the [semver](https://semver.org/) format - `title` - Title shown to users. Can be localized - `description` - Description shown to users. Can be localized -- `homepage` - Put your GitHub repository link here +- `homepage` (Optional) - Put your mod homepage link here (don't put your repository link here) +- `repository` - Put your repository link here. Non GitHub links will be missing CCModManager functionality - `tags` (Optional) - A list of mod tags. Read what tags are availible below in Mod tag list - `authors` - Either a string or an array of mod authors - `icons` (Optional) - Mod icon. Currently only the size of 24x24 pixels is supported diff --git a/ccmod-json-schema.json b/ccmod-json-schema.json index e10d77de..8202e979 100644 --- a/ccmod-json-schema.json +++ b/ccmod-json-schema.json @@ -54,6 +54,14 @@ "type": "string" } }, + "homepage": { + "type": "string", + "description": "Mod homepage link." + }, + "repository": { + "type": "string", + "description": "Mod repository link." + }, "authors": { "type": ["string", "array"], "items": { From f795e0cf79c89243fab3854e0c9cccd6aef97f6c Mon Sep 17 00:00:00 2001 From: krypek Date: Thu, 15 Feb 2024 21:43:19 +0100 Subject: [PATCH 029/196] Deprecate package.json in favor of ccmod.json --- build/src/db.ts | 4 +-- build/src/source.ts | 4 +-- build/src/types.d.ts | 4 +-- build/tests/npDatabase.js | 71 ++++++++++++++++++++++----------------- 4 files changed, 46 insertions(+), 37 deletions(-) diff --git a/build/src/db.ts b/build/src/db.ts index 5a2abcc3..70cca577 100644 --- a/build/src/db.ts +++ b/build/src/db.ts @@ -67,7 +67,7 @@ export async function writeMods(db: PackageDB): Promise { 'A mod. (Description not available; contact mod author and have them add a description to their package.json file)' ), license: ccmod?.license || meta!.license, - page: getHomepage(ccmod?.homepage || meta!.homepage), + page: getRepositoryEntry(ccmod?.repository || ccmod?.homepage || meta!.homepage), /* old field, should be unused, kept for compatibility */ archive_link: install.url, hash: install.hash, version: ccmod?.version || meta!.version, @@ -84,7 +84,7 @@ export async function writeMods(db: PackageDB): Promise { }) } -export function getHomepage(url?: string): Page[] { +export function getRepositoryEntry(url?: string): Page[] { if (!url) { return [] } diff --git a/build/src/source.ts b/build/src/source.ts index 1b5f97c1..8fc895b7 100644 --- a/build/src/source.ts +++ b/build/src/source.ts @@ -2,7 +2,7 @@ import stream from 'stream' import yauzl from 'yauzl' import { download, streamToBuffer } from './download' import fs from 'fs' -import { getHomepage } from './db' +import { getRepositoryEntry } from './db' import * as github from '@octokit/openapi-types' export type ModMetadatas = { @@ -171,7 +171,7 @@ async function getStarsAndTimestamp( ccmod: PkgCCMod | undefined, fetchTimestamp: boolean ): Promise<{ stars: number; timestamp?: number } | undefined> { - const homepageArr = getHomepage(ccmod?.homepage || meta!.homepage) + const homepageArr = getRepositoryEntry(ccmod?.repository || meta!.homepage) if (homepageArr.length == 0) return if (homepageArr.length > 1) throw new Error('Multi page star counting not supported') const { name, url } = homepageArr[0] diff --git a/build/src/types.d.ts b/build/src/types.d.ts index e98cd79e..377de720 100644 --- a/build/src/types.d.ts +++ b/build/src/types.d.ts @@ -106,10 +106,10 @@ declare type PkgCCMod = { description?: LocalizedString license?: string homepage?: string - keywords?: string[] + repository?: string + tags?: string[] authors?: Person[] icons?: Record - type?: 'mod' | 'library' dependencies?: Record diff --git a/build/tests/npDatabase.js b/build/tests/npDatabase.js index a12d4ca8..1e11f9eb 100644 --- a/build/tests/npDatabase.js +++ b/build/tests/npDatabase.js @@ -37,10 +37,13 @@ function testPackage(jsonData, mod, name) { expect(typeof mod.metadata === 'object', 'metadata (type: object) required').to.be.true; - expect(Array.isArray(mod.metadata), - 'metadata (type: object) required').to.be.false; - expect(mod.metadata !== null, - 'metadata (type: object) required').to.be.true; + // expect(Array.isArray(mod.metadata), + // 'metadata (type: object) required').to.be.false; + // expect(mod.metadata !== null, + // 'metadata (type: object) required').to.be.true; + + expect(mod.metadataCCMod !== undefined, 'metadataCCMod (type: object) required').to.be.true + expect(typeof mod.installation === 'object', 'installation (type: array) required').to.be.true; @@ -50,16 +53,19 @@ function testPackage(jsonData, mod, name) { 'installation (type: array) required').to.be.true; }); - if (mod && mod.metadata) { - testMetadata(jsonData, mod.metadata); - } - if (mod && mod.metadataCCMod) { - testMetadataCCMod(jsonData, mod.metadataCCMod); - } - - if (mod && mod.installation) { - testInstallation(mod); - } + if (mod) { + if (mod.metadata) { + testMetadata(jsonData, mod.metadata); + } + + if (mod.metadataCCMod) { + testMetadataCCMod(jsonData, mod.metadataCCMod); + } + + if (mod.installation) { + testInstallation(mod); + } + } }); } @@ -140,29 +146,32 @@ function testMetadataCCMod(jsonData, ccmod) { expect(typeof ccmod.id === 'string', 'ccmod.id (type: string) required').to.be.true; - expect([undefined, 'mod', 'library'].includes(ccmod.type), - 'ccmod.type (type: string) must have one of: ' - + '[undefined, "mod", "library"]').to.be.true; - - expect(ccmod.version === undefined - || semver.valid(ccmod.version) !== null, - 'ccmod.version (type: string) must be undefined or valid semver') + expect(typeof ccmod.version === 'string' + && semver.valid(ccmod.version) !== null, + 'ccmod.version (type: string) is missing or isnt valid semver') .to.be.true; - expect(ccmod.title === undefined - || typeof ccmod.title === 'string' + expect(typeof ccmod.title === 'string' || typeof ccmod.title === 'object', - 'ccmod.title (type: string) has wrong type').to.be.true; - expect(ccmod.description === undefined - || typeof ccmod.description === 'string' - || typeof ccmod.description === 'object', - 'ccmod.description (type: string) has wrong type').to.be.true; - expect(ccmod.license === undefined - || typeof ccmod.license === 'string', - 'ccmod.license (type: string) has wrong type').to.be.true; + 'ccmod.title (type: string) is missing or has wrong type').to.be.true; + expect(ccmod.description !== undefined && ( + typeof ccmod.description === 'string' + || typeof ccmod.description === 'object'), + 'ccmod.description (type: string) is missing or has wrong type').to.be.true; expect(ccmod.homepage === undefined || typeof ccmod.homepage === 'string', 'ccmod.homepage (type: string) has wrong type').to.be.true; + + expect(typeof ccmod.repository === 'string', + 'ccmod.repository (type: string) is missing or has wrong type').to.be.true; + + expect(ccmod.tags !== undefined + && Array.isArray(ccmod.tags), + 'ccmod.tags (type: array) is missing or has wrong type').to.be.true; + + expect(ccmod.authors !== undefined + && Array.isArray(ccmod.tags), + 'ccmod.tags (type: array) is missing or has wrong type').to.be.true; }); if (ccmod.dependencies) { From 5868664f6d8c3a2aef7efab57a84bef92e467da7 Mon Sep 17 00:00:00 2001 From: krypek Date: Fri, 16 Feb 2024 19:07:03 +0100 Subject: [PATCH 030/196] Update CCMOD_STANDARD.md --- CCMOD-STANDARD.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CCMOD-STANDARD.md b/CCMOD-STANDARD.md index 55ed515a..249413fa 100644 --- a/CCMOD-STANDARD.md +++ b/CCMOD-STANDARD.md @@ -9,7 +9,7 @@ - `title` - Title shown to users. Can be localized - `description` - Description shown to users. Can be localized - `homepage` (Optional) - Put your mod homepage link here (don't put your repository link here) -- `repository` - Put your repository link here. Non GitHub links will be missing CCModManager functionality +- `repository` - Put your repository link here. Non GitHub links will be missing some [CCModManager](https://github.com/CCDirectLink/CCModManager) functionality - `tags` (Optional) - A list of mod tags. Read what tags are availible below in Mod tag list - `authors` - Either a string or an array of mod authors - `icons` (Optional) - Mod icon. Currently only the size of 24x24 pixels is supported From 7de54345071f59e744a5d9eca1876396450e369f Mon Sep 17 00:00:00 2001 From: krypek Date: Fri, 16 Feb 2024 19:08:20 +0100 Subject: [PATCH 031/196] Add new 'puzzle' mod tag --- CCMOD-STANDARD.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CCMOD-STANDARD.md b/CCMOD-STANDARD.md index 249413fa..b6e13e42 100644 --- a/CCMOD-STANDARD.md +++ b/CCMOD-STANDARD.md @@ -27,6 +27,7 @@ - `combat arts` - adds new combat arts - `maps` - adds new content maps - `boss` - adds new bosses +- `puzzle` - adds new puzzles or something puzzle related - `ng+` - adds additional ng+ options - `cosmetic` - adds any kind of cosmetic things like skins, pets or menu skins - `pets` - add a pet From c44f8133eb1fd6fe13208486b3ae037b833ae42c Mon Sep 17 00:00:00 2001 From: krypek Date: Fri, 16 Feb 2024 19:11:53 +0100 Subject: [PATCH 032/196] Purge all mods (mods will be readded later) --- icons/cc-capped-stats.png | Bin 18146 -> 0 bytes icons/cc-extra-dialogue.png | Bin 908 -> 0 bytes icons/cc-fancy-crash.png | Bin 6963 -> 0 bytes icons/cc-uncapped-stats.png | Bin 1370 -> 0 bytes icons/cc-vim.png | Bin 1105 -> 0 bytes icons/crosscode-tweak-pack.png | Bin 769 -> 0 bytes icons/french.png | Bin 178 -> 0 bytes icons/junolea.png | Bin 3161 -> 0 bytes icons/timer.png | Bin 1232 -> 0 bytes icons/world-map-overhaul.png | Bin 2280 -> 0 bytes input-locations.json | 371 +------ mods.json | 769 +------------ npDatabase.json | 1916 +------------------------------- 13 files changed, 4 insertions(+), 3052 deletions(-) delete mode 100644 icons/cc-capped-stats.png delete mode 100644 icons/cc-extra-dialogue.png delete mode 100644 icons/cc-fancy-crash.png delete mode 100644 icons/cc-uncapped-stats.png delete mode 100644 icons/cc-vim.png delete mode 100644 icons/crosscode-tweak-pack.png delete mode 100644 icons/french.png delete mode 100644 icons/junolea.png delete mode 100644 icons/timer.png delete mode 100644 icons/world-map-overhaul.png diff --git a/icons/cc-capped-stats.png b/icons/cc-capped-stats.png deleted file mode 100644 index 757718416e1f01bff1ed72b96fd4b6eb77ea68c4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18146 zcmeIZWmKHY)-H+#cXt{O?(XjHlAsMV*0{Svf(Hq1L4ySM;O-jSArRc1OV(O@@3rsw z?sv{N#y$Ub_vr4os^)y=tf%Izdg~osk*dlvD2RlJ5D*Y3a`k;Ns~31OPoi77!2~i@h131X8}Sf|m>IHH;tuPvQy- z=U~2PL1k(CgwoO?n~}m9CSbb)BVgSDu7mZL|4XIa^Pc~6e=}he0$YlvhSx32jOx3s z@bl%D`@1FKjYnVqJCE^apB10>4UfT#%J1K`Z`#{EGP92!ynRK$BEm0@IpZ8$eo;o? z+UxdJ|Mt~2=;rfZfvXIs*I9R;Pw-ZuJ#XHtHGYr1iBe~}>n|TY%i?QgNveE-%YGL% zxZAPTDa2PaG~O#jZZ=+mw9-B6oa2FVf7jK2LPq9lm}sziAO1bl{f55n8SJ}dG`=<_ zvnBlAsr}Ub^a}skgsusuqPCsZdc273`_k^PwEx+fzmq{_Ix)|!Vcodd%O+X2$kQfi zQ(NW3!~J~V)ZTZI?&#@xP!7H1@0~ z4?q4|Hjcc~H(@FzV*C#La%XnvwxA=T=d%abzUjH(`~HK_UiqF&aAU@JtO~D zng7U*(er5b8ftBWY2RXz&tlXsr*kW235KHYci2d#H#QpDGsIX+DiZ!LDoDTdIz2`V z8#}Kry(37EQox?&HF+ZEw1Pa%c3CHotQdPSh99rKb|ij{pNjyH2j8h^gRG+;4LzX!x3a6OU+A!JV0#$crWKOErz5 zp8JuY5>@rd2@|>D(0PEZD8qS>t6@{&?YDvi1-iQ0gHoOjm#;l$Om%Z}yr8XtXfTiP zq`v#g&4ihX(9M($82X05q$ggQ6gV?kn7*nA#525d&TlvWty+fXlCen*!T0j(le(qvhb>)#9}V9Uc;)d9&?E6 z6UsK%*hE3oL#}y!aqbaOKO2XNdp~P4^dW`;-z{G|AGK>A$NsVqzpI=ZeQI`+R=9aF z-T9b&oRak5yYgIRtubhvfg_-16{AL`a(kA$D{tTzo0{^=S4o@pQy*W#FTDw}svax5 z5S(WJIryet&R~YluflGw_49-p&_j9e@PW7O5hX(MYbvXTj8#=bHBDp0-e3;rp_Q$} z_czN?AZPvbpjoe$=eOlabzQsswj)>%C+qBc%gl#|I>*Vqrx~sfansX=mFW*`HZfyN z^GVrlQ1fv^&rfy2Pc)BuXZlAlSerlYz4RT=pRaqjj~?F>`}nur-sy+;ny**1(fW-; zG~FGw?lz?Goz;XOWv#W8TkI?Gw|ZWnZxv%hYaTxHAOu z%JJS(wOZ(LyZHuPU{{RmrD#O>;^RU0RW?UEU%~}d0qKv$zTfoXxenhuSw(v5HLV7Z z9?{f)G}Pr_-fD8lpmtvT{@~$qYe-=o=1Pre!GYaglP4TT#?@p>z=jDJtlw>VOgcWw z?yhjY(NA!GxjD9*S@fx?xC5Wss5+Pn7IjQ7s#mbg|p-j)y7kG|ZeZS=Yt{sONY zWw(v`G#ZrLNQcFaw_#*A+ZXt+z`MV9L0`&0rf63Vnm*}w=q^WFM)|2XuK(G?ip#@5 zozWgDXCdZ#ADit2_>^_eGv1q2`3}>cXui1;f&!J*W=G*x!j&Z5*^6;3bW={i3B`5q zxKiN9l)V|apA^eM={~I?ctP< ztZxV21|%@y9xmzKiL&FZ9U|_n@sc&c`Efcg1@0(JULPYVss@a?CVTnQtD`v$m%RCE zG4hV=jvj+mq6VkOU5RiY1!qj48l(yV&+29&8ghhX`D^GhlV#*E_DQfp>v0yw^*Sc0aLiG2scxT zK6NE#b3h|_sV>H+mYaYF8dzcHRIR5Z2G4oyY8tbx)Zsjd3XhIF^WOKSfM$w#aKHBu zOPba#*x9FUE6$M5WJ4?_kgSWV@lA5Azu)eY?8PS0@-KPHh{N03{#Fd)V7d7ir*CF5 zj1G(o3LTl%9ckIRG_9YI#kfaXwwkWKp6A<~Gho`F`zO%mu0RK}hNi?`V39Xo9707= zlLd*5&XG5?1J(}6CAQ*`IwLjoM;|S65qu$O6B;D#?X(93@N6bsUU>C_UJ_WJ-tO`0 zveX%mW+nCt9@Fu__!7q9Ma06V-WH*B^=+6}aG$@aMhOvrPFS4c&{bq2+OWQcgc;~; zd&>+GUFqV->%o9!5V7f$lSYCkw09D$s!Jk#mN@tHAi*_{czYgntN+FfI(I-s_cQ#2 zH9`OlYtI3mRX-FauI6Ub+j~QZP4=+Q-aHDeqO9!kLtXGdyfwzr^Dm8$kGGiD+YIm4 z)~BPvT0c<$T?9%Zmqldrdj(h$8|&$!D-f=xp%5Cat8IFRo!# zS_eJ3n(bF1Mh6Sg0SlH?8F=L^xYje+xPy!#?bZPjvM#)iAzy8Qo^EMr{cRW?_I|xv z4);!1R}=2m&$0@)NvGlP?M?0>NJAxfJE>ZNSt#Z9NupVHnzOWF65WLn(uCrXkt?TR z$>h|=L}&ckjE|_f3j2_DY|}2VgoaXn9T-2H8bAedyHR|@H<4WGH}dZ*MEd3I2Aqh+ zJ;w#?v0lnYf%rtbN>3h%D_fh}9m@ldpByepSd^1b5ew+Z5UWHWb*nke<(}b`g0<5u z5Ndr8rbjwvAzb3zLj#yPyuQIqVgD>|qL2#!bdLGCwdCAAd=a1g`b30xKqdQS#A;9^ zuewAM8MY*aGa3?#S$V*23!p*3(qjh;1vzpKgKyCpM5RS#`W+bp{DEx36hYu)1a>@S z5-o&b8CPn<_z@dL)K~HQ6BD5}I7^sb;0vs<5H=R^^?g{cxx! z(K&rYD5emtD-5c2)94A-Q3x0UwHSS{XF*5{v@G*n zrX7UDESR#hcm0Wqo30bS>4eiejGHi0|%3|Qz42mPqRouWnLhIo$( z%(;?v1QHR<$M>gNjTMdoS6IH;iucF23Ni3|gw3v?F$$GVF7^XsXF;82Iz|8<6wWZJ zsoL3x7o>t`DC>*BnI|IkJ+Lgw1z``roNW+0yniZKJC9mpE_4KC|C@smhMR~K8&M2B zJ#s9OjK_{oXvz{x|Ee&hB&wT^_xA0kX20(sg;?XV8x93Tmxt5f#xm~iJ0>F*IMT+R zEa5o9uX-`mk$&V-8wZoc^>Hd2#_NRj$Q6r0rF;zX{5Au6VL@jF2x`gDL2@Dtd|{GV zX$#oOUwVjhFJwnlqMQc>8fasnN-_)+QTxjkw+*no_shIGliz_7=3xh6+|rl@o~Vjc z)hL+eFpO7w2)y7&mrxnJaT7%O(%wJ>MQ(u>iBvM8zPPIlZ+oxxXd44ojxR66KXeR# zF%qTe_`Z>WHDNRumg0~JLx7fXj=={L!FUJrK{(DZGHd6|g3}+`>1Fq@_I%|+y@->nVB*ZAg2bB#Bhd!C;NnuQAdk`#NRX#+&FpS^5I;de zlH=9BH#Fb)TFiMK8nLt`@bqag5+T!U`0Sa+st)nR%+?%{=KuZ^i zdIoCcPS`{P1$!wXCy5@NO+q$?AFc0p)&~+jsd5iiLKj9X{reqrtZOXl^hpL@9Q*w& z2JgN^qRZ5o9}}GPZ3Wd#GofS@tfC_yQTbr^S{iwX1q7pi*(%i4V;qVq-6O2PE}?WN zw}%zc4=1T#_zWX#;}1aE;z8HUy-B42$cx!8qPD4yey2?UpP_r$i0|WL9b>Lv4Zkr_ z4pUA{Km5W-`EDh5uB)tXtE|rzj$fqt=2p#nt@(4j(K};4+{LfIm;)0eyb9GVecIbR zjG$6;xlHwDmHo$~-r~*$>5R9hD%Hc*^j}O_;vj#UKRHP!BZELcm3rop1|*gJs4mDl zO0Iu44cR23-vXSb5sw%|%%$G>WbQ=iUm?$J5=*?P2#a-U8!*GHZoRnG?K>sb{wft@ zSX#k6P;4AF0OJ{<&yE1XB9*$1P@Q9srQ#EX?>{`!AkR4037^5$Qkr<$qx=E(_o$Uc zW*hMhg+UafslM$&>=h>Pq;4gMdQY+R!MC(fAR5Qa4H!2{PViP|s=D}-hIVCuQ#)hJ z;|3S&Lm+zKC)WD*Y!AnYdMaW@IJjJcoEtn}DeAb^$s8ESRTbTW)g?s?33{k5xHSD z8rv3fhaZWpDOniax-1X;sE)T*_olU=18tBrj)MrvFI18IzQKi@!kypV^T0nvN}CJv zLjrLc;(NivZ^_>3I5t8JGS?tkp7Nr*rW_O^XdG6zfkFtP^YDQ;q$c01!igRImo;%E zTS_ir$0_}T;>t^?QMfKlEf78zZx7;4ixpBMbT^5Kz162&&Rr`7)iXuU(+mPSMHG=j zljKopl2*(%GNoWVAZY3^>9j|OF^Snc?=h??JmUMBM0ovn=<5fWe9(RHpRig8-^7j3 zT5&ljRpvqKDrHbUMBp2fVCurx+q2x344L^MwnGzBldU&?33N>0p?~xc2-x+-X?eks zLsq4rLh$d)a)8)fAMOjs3c)D=Q%3!uooS&Oj7wlE&Dy^oin;Itqu(s@V5soq!kpR^ zIM%(Df$gEAiU}jj}wK!o5ciE4GH` z5&j$w^_K44nMTxT{C1V^453IsRKwM`P*rZAF1|&j`dPj_Z|Aj)a2)pV4m9G|ih9LJs=E+>MrRM<}S*ohKzC%Rr)O z{C?Em0!6Xl0x)8WX1BWRuZuY>4`?1MdM^ zXn@QIKS~J}FibvqMt~>EOlRV@`?`G2jH= z1P>7oQ5_93(qOhYGYZwYd#fVy=a#_=bZNypg{7f(4yxgD^)#ZP;LTFD3xn~ffMpt@ zL|cnfzT`Viw4RPAGMv1k?O7A;X9VRp+vu`b8Y>VmsB4N=>LSL^qCwF`%<96ck{xj9u_hW$@{tvkwPn887dQHk&ZQ7-VPN7DcK9 z@TOWsAfI?L`j6pZCw`o&;F_t*;z~5kg1h zm-|U)Mb4Y}Mvp@v|VWMI6DofFFE-7acjl&l+>)@g@TX zqijmZ-`MF70RGR%ZGoKHY3UGxm_Y^ZW}qd9$wEWvkCTg(7O+~{d?%{Iak4}Z3HI41 zTWar=gm95VzRL4^`dZjep?bCy-SZw#2}z+~kFuNNjNg`*?tkA68Z3zlP=uFifE~qB z^8w{q%l;}0D@dzqoD{7n32m_JTiF1RKEBP_YR969)g#yBo#3xyNwOtZvXe)X_&gK2 z`cwn2>@?DC9U~_7_?A$PU(>zP78>eFYFZ|BwA?B5+O$sI`dRD#SfV*QZ+0=3&NMAf zG0r$B8O!vusa)|zv0LZF2s}J{Twy7SkSqyvc+G8itC6Xd&&YkQuw4La*{1f9(S!=8 zwGYzX15?I{FNK*!NNbePbaCLN&5JCP%^hm3{TjX6Bv1YQ0X#H1UNS-_tOyb6XCcgi z;&u_PyWCx|P9Kc9V+~yfnsF_i)^uXx4+kQo$!(ldth1sG>(YFpaNpR9tmoHaP+Q?5 zsL?(ki6G5p#=( z;2r~zs?nzFI?e!r20bRVVt|!S4=I--4>h+~$V_Dya>C*zM!0o(PlAlZ7c}Y) z`eZ(Re+%qHveInGb3=*2hU}jHqa|+@^LVd9Ny7V5go|-6 z|5DjlXgZ>qAULyS)I4l)s+MuGIW!?D{Qd8f z4agxeDP$Jfopq8zoQbw0VkqC)3QkEGJC@c`%_nJMxQUAo5QQXg?RoDy6RzWCQ=g}6 zN@P#SZgd?Z6utJTC8K@~F*P=zmL6qR#kpVX|C zz_rOF$)U!5l*`!SopQL{r4$dQx7~}nXr}VyQ{1Z$RfNTyV&&ix$cMd-^XI*gOsEkp z10bzb)w!V)e-(EOx-IbhHdQt2$*+~cC>%A$J2}4TKs7p_?D(t1=M4!`elU!f49)YV zsoK#1=8yw`_F9<&a6oU9TBa7r6hTtN#;SF@4xQ=WU%iu8vF zgSUjU#$jcN$T88I0@lEr{*fPYNS;}046#XSMxyeckVKZ!jenswCind~wQ~=9tJ)`2 zJbYh_K}u@>VWf3JGjbTLp4Vh`KsdZwXakvi#u2M)~^;xS`;unQl?NpS6O2kdb|e zbA7AJE{XWd9?}p5hnYM5m4{9YoqPE-)8ZD~ZtW*&DXL_tV%d+f?Pf6SjUh489M3-( z{1mRsTu|!qlN@FNMiuci@$L;!ZWlAGu0+1hyeyzuqznY0khvnsCNc zpM+)|dfpj*IDk3Z$-=%&%giDn?y*u;8}?s4FnlB8ExI!K@t5hroSssz75v?0-xv%h z)LU;{`2nsp_2WgoCtxwRjcYNBI~!w}Di{06{yf1qj4Pz@``jmM1|!SH;IZsIfRqEV zIcAA7^$({J*ag_Y-3-joo)}KsbsFO+XwQ(4Gt=Vrwgapj7e&#TMHJcqpOu*q_s?Jw z;1R=52W@fE%^O}WBFQ$0GZ>}?s+K|w+`3WSA3|Vx-s!r@2daU8kZK}f_e9opifI} z;^(V;tiIAbhkcrm^%%0+pwqG6y35R8DY+_j%odnti~$jTRAquxMS#3&+`D$Dyb4QCtP05U<|f5f}(H*ye?V(#u{Wr(Yypqi%6dF@}iOVWPB(i-d(O11d+$ zzx9WYy3kS28@s&4FIE#uCB@&&D3FdaqgX)h zh(Jq0cJW(~tiLy!S@bl-1+7H!bNN{C#?f~o!`H`+wLBPoLtk=ZK9-eyNsljm$_k$W zs^ZEbkM?sjYY;(~>0?M4*o@VBxoPD_VQC7>cvWs7PbEOkaMrp{D{_$y$#c_;s@voW}u_Q>}Z!N>}Fl5Qd~BYDYrfLyKOl>abDqt#W^UYjIu1rpG(EcZr{!sOGuO19pR=gQcy)|an&fb^ZTfu6J@a+aEB!e~ujHC-E zE4>tge~rlb)q06sn_vB!EUGKjyhx3mJNSefm9`toSAh@}3}^hdB=BSUwviqE6V`O6 z4P5OmKdEOWy(~)JmlewgW$m_kXgHE9UDr~TjBEArJOS0W7kEOs zBBLa)&qI>MawLsw5pkw4lMy^k(& zHj;9cupeD;!Paw#fg2zCL@HI8%ZfNm=<%(55jM9-nE4F`gcYhwiH=PCGL7bqG35*jH*S8gpsoJm0BPJ$Pc_SyghxB4 zhy?0``Zmrk9uZ-(szR}Zpv3f)R=KA`hEqw$e?ub-5$M=$<^vS!vdH6k1l9BT2MD91m8l0S8 zA@8lo$QjxRrDuu-dSs72)sUWUT&!cd_hC(ecn{>~2vm4^AQr@Tn`+?DK7U0_r^P5{ z%>(Vm;^K6v7{K#Z2{01nf-r1uL%Dm!4CRa$Gv;W@`tF74MFPAMLeo5M;Qg;OBmDF8 zZUqoMZc5v)hz(8V5WOhhx7>F#TIr$jawOIhD%On;Ei`)<#(!*fj&qnoB5vMuDm|(? zD|p^tfC@yjsw_Va@;=S!Yh8MBs};r4;m&q9zxDpLOUBPbg_cZ#YF8la`@9e^rd1XX z;Vp|Pqb_3k;W_{FnZDCpGKv;hm;Flh_^{clGVR^>?QYAX$Evot`I*=l@Tk!ht5R>L z%PcR#-Ny-=G>eEnyb-j*AZ3 z5<}75f6@*`w*KN;Efl9x6VNUhh_a+QHFKQ*>@xC1xV*BWo+bbIUI1)TpXN9p)6v3F zvy-cVVLL_d+ZI+|0?LQ6IruVPt6{|_z@?ni^{x7z;wI61z$EgMp8smkjW_Rw1)(jB z^>;9X>ieUiA_aho=AK5;xEV+WFe&#QN=~_VKZP<~fbf>|(G%^Z-wuhtn?OwJ+G?ca zk++c>DPhfr%zax>@M4Cw(OwAzjM$v$hJ&z}(xc)sCNd;JbC0h|$Q|(i>30s}kn83;$K1$uk;G84YI;QZJf zUh(tEDZiXxlSPD|vayoDUyo|KXj}oM7M)hqdSl)*Ui3+G>2=$KAxdJ7c{fSY#nLgL z5V+NxTM7WFmPY~;W{yBmna!3#E!^&sBKhVdku`Q4RSBV|EC}o=J=jfdo1#!nsdYlMt?Tp3u=xX7-ZZZ?OMM3P!%&~km-tG+k z`f2afh;*BnxKNM}Z5>tZp)zPjalS@WbeeHuV$Q^A_QHA^YpSC?@D1%UA$*D*WKaTq zV?BG9n$TW8yrBJVmcOmR^ti26U|Fl6vhhmJTHWLV$HXWS#pk{oAmOxIATi9eQ0iAr zLE72M& zn9V`SJ|=uRaNkXC|LfdlgpZ7Wp*4fHm{>Myu0oeehh0^zvG1%K3#F7i6C()z!N0#b z%OmFTX9;C{O3B`l`OzFS&et3+DO<_wa@1Z!ej^n+o(d`liHxI5ro8L7V3Mch*M+>2 z&<09pmE%VdO8$OyNtU7mrRL`HYMy*l+LjiFq_5`}(<7|P46aMd8R=EZ*n}VVqn@xq zS+Q@xQ(KF*CItAKJHjjd7H_1CSfq^_CWZ=xc&JzY+@SrmBZ&?Jppx7dNbw@6VRWvvvH zL7SLClbWZmp_KKL9?Iz`j#u>CWe>m5JIL`6`tU{M`;1DPJ{XchC20N>x9pim6b?V& z)(Jt-Gyx3=hZ{<#ikS&_c^^B^={Dm;SAJ8c?istydcJgfGc=L$fx|#nIUQ_gC}yEE zj1UU(1q1$P@pf1QU;LuMv_Et4Bl4QYVlaCJvZ|M5*oCYEZ&p3}*0EYQK4Hf&t;Vm6 z{Uc(3x!Z~&s?NkY56<8)TqcXqyldb>GrGGy$xB$V(iugiZ_9Vd9}N%>xJJ85JkObe zf{=v}w<_X_&nK(+952}BJP}U_rnyrrfd#<2p^DQ&My zji1CaRH;3Ef!oYOB^r{P0WGUt2p&uq$!{enSSzM`hTA{(Pbf{-*EfIpI_sr*S9|23 zn;%9DC0iYq8kmP5mS6J5)nvlPtLk&RP2HgAn(qg-4V0{=v6~lWrB2dg^Oc1fazKsyxvvx>zUMFz3S(Ngc{vzOGb0ElHxR4E32S>g2 zSf%D~XAUIOnmSi|9^KfoUhehbj&h`BB`f$T)Gne@m$vwo#`#didAXbRrihw%`lGY5 zT@X8E))ot{Mho|IW%T1>W2)JQlC$!cz8)i7?w7IugYTxuY+}^FH(8i3D#2U*nyW9+;3iRYKpAcCeVcN zkIxoQD<~49@>SC<7E_fkL>3?EqL#Vn@{_Z;2}T;yeCqo$O8d)coM$!OacQy_V2?9* z7L?P;>#7H~7UT$xkc+Bq+U6R6J4cPqAgJFF=4LJHH&~k-cOc6v4nGW~Y3{d^>p~NP z{pBdcCzQipTZ1FP-ylozGTS*~K<)2q*~1asSDL}RowXroZYN%{X+@sjoOsW`s6$o; z!q)y=;TcI74SVYDtYA3rIDWwPL!OZdWx9XAZc;wBoXWtGP7Y-QWPF5ST>Lpza5CHE zK)v{2Ek|`rVIsHslprbonDKVzXJWHHDj|;6(I+xf+*z_}E_X8z(mezxUzr=lPw zK6z#;N@4knu-lIm74E4o;@Xt@`Tr9AB3fJM@{>ZfT&!*ROx5FO7KD zRnJL%)iDr%wy1{ZB!eg^8GT)3P1zWAZB#hc`*>4$91%r`=-ALgUD?|bD5{CC5W6kB z`D@;Obd7AeRR+9>WVBoYMiBzoGZ$63@ER=FklLINP?kk-R3U3`D8_o}b*Rrnf8x-| z&3F9}e6Y|%oo%@kU9(_DImkK4r=erC4bg=JM{nu#Nlb$k52M!I>0V4)-ZFB`tdPw_ zyEj&(O=qsk07VlrEhKeTIIk2=g$HQ>Cs=e&SX9WkV@3bLCJc?z5NiNU3+Q&B(X7@w zuk5d-P=EcSKQCxE7WfF(nPjB%l=|q>zC!i^9<6@I+`@YroA3Hj;0hTq$CDL)!N_yW z(U}YhDJ~N0I3p@WmxiwTK&?G9SyPuOxKx1QmWSbper9qFRfO7e$9rVTDX{}l{k*wj`6UdetfJ82;-#;wzJ0Kub)YUhG_`dc%irS2aA}zi z=~I^UU^lIJx6G+A?3rqI92>@Eq5l4S5z;%Rzz#zS=sMrXCDiCh4Uco6&Wcq#JZFtZ zOsFJUSblO7$fDdoWI4Wiy5<(=P3={OYRCKKL2XYE`f{u)*3dl)N|+jvW{!4#o8~>A@jw6(2Ua5B@0blx{1@yHB*Y57(!V{d}Ol};JO%i_qS zv0b2Rg$i7c>ED?}bu!itY!s@@HfF>@o^8JU$|pdBwc`Z#h#eScSlYw9KJ-(D#K# zyF!ysTnfc+KAJScq*C0+`*QnZ4b!-L+)ftj@jmBw#hASiE98VJPe~tdOhU0(EUv{p z@v-k0UkF`E_w>&8=qNiC;)Aa|f-D9aL#&_CY~^MhWBCpvUe85X{+9M*h{A4);RF0H=@>0;>AuH#&&CDj_iG4H7@**j=4$Jth@B6uP!xtTIAgdO8>s6%fvJeG5i zFh!i+x!pxOcbWuR!bZC|W%0@~;x6jin`v`uZh|(e@~l6xm>X*If*rMowdPuB{Y?Nx zqVpkD&FO&)f}CeE!k&4JX@~I+uSj@8eb<~>MJ0TLHaIr^tvh}-UJMj z7@x|eAP>era)$bldWhtMhoGJsM90&X44lb|&_vUk_1hs)Q3EHTfR)~@EiG*g{^Ohv z50EvnPMuHTEU6F>Xc?f_LovEaiu`6^J7yDeuqlw)!_MI~I3OSdMLZl#%xr)z08^kP z$X z4QI{Qvq>!KKxeS4lNnIT4QTH|`FEoZwyw^9x9RE({9W~j-?ru!EU!-eVfpVmGIC0) z|J3`W|yEDrXTe>D6a82;Dpyi#lOJ3C&H|EPcM4ZnmF(8LAoqzMMw z3Q_#_7VsPLkE8+!{*^BLieR%p6#ozgn*YwYzj998#FFKYq9DtEC;Y!4X;^{X?f=hk z{w4ZP6fq|kcd(OR_GiU03>2>za<_~m{FqK2!3gDnW?^zS_VBX0gb4rSB(De)c-E_r?v#x z!SgkXtz1;x?f+Zz|ApY62#O#xpuIErzjOWXB7f5Iw}t4{=RfOS7r58;lI5QZ=3i0r zJCXh`zW$27|BDu0q5os#f5h*9==u*`|04$eN5cP!uK&>WKVsm2B>bP~`u~kC#D8tM zf%dQWeeSOt>J<^{+1JfDtf_*GB*e?_cTQVT;%g0pgRGu21OzkX?+>KM7ZJDDN;nre zB`LTaXhKM0_7#B-s;^Z9E>gNK5@5UEyC{gi?$!bBAQvmZ?^}DFKvX;k2r%Sp#?Mei5DO4plM>PJ8Uc6xQ8S;ANrH@W?x3Y&!YQ6pBn=0{024@Zm)C>_xu& zZE3TMDg`q6q=^({wPM~*$+@ruLAU6Ssx#_Q`SH+;)>Ixt0G_Hpg3=U69(Mr??Y?0ZX-aEbn1b(N*8xZey^Ihyb!EB& zWh1@9{jA9C9^=7fdkPTxws3_YQ~a=xfb8*az7NQgR-eRkMRQeOp+=f|aK@-Bs)$aV z(B}vCoX<(RSy`28nj}9@+C|)^b8`?z^Jj2V5Js~L2pF*FFb#wbV7m*a7n~2ek0C?g zQfL%gqidl|U0r&AUPw1yDzT0W9nf^GvDt=*;-(E*5j&1{?4o4Twh$?7XwV@P^6?8g zl~o-2RYFj^`2G;K6&vvlY`%Y0R+?jN#oXHNNQbngRp7B{WcawssWUI*O~IMh0B@%*@B8(KQ8g>Q@8>E&MQM$;Km? z_Aj0r1gUt+0xR_qyt(*2zWcw3 zyn}4sWojaxzI^GLu3UV%`vB|kcuS7`41=oYiS(ImSnTUn0~hZtYmYqGa>eE}LE^cA qnLkQUAouN1%l*4SWlc&C6iJCeUgIyM9k1C7At$9QSs`v5^#1@n8K}wt diff --git a/icons/cc-extra-dialogue.png b/icons/cc-extra-dialogue.png deleted file mode 100644 index 70c26e55a5d6361641b71c7d3d33f26dc83336cd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 908 zcmV;719SX|P)EX>4Tx04R}tkv&MmKpe$iQ$>-AgGIDBWT*~eK~%(1s#pXIrLEAagUO{|(4-+r zad8w}3l4rPRvlcNb#-tR1i=pwH#a9m7b)?7NufoI2gm(*ckglc4iM^PrkWiSfT~$W zG8Ppx*;TRY6@Cn103nP?%+%wl#WXy}*FAiEy^HWH?{j~SUL|KTz$X&VG2O6;H;898 zEuHf|agY@yh4`F!+@K2*KXP4m`HgeIVS#4`jdXIJI7loO+E{L5Ry0)NY2vV=YLqWz zTvj-5aaPM!*1RWwVIZfiq_|FV7%?m%js!%=sG@{2EJSG4NHLM5{iugOS|jPHm>lansU4UDH8tyqcR2 zTYQ(C;eY>N-6q{D`8G(z>5$9LP%&V(%6~DGx&=b8~_qg#jfi{#v=Ip z#~Xlv6(kGg<;KO7rfEz$rAc&WS?5Cs3UzVO34nI+ndORtu&#L&cBK4gC6>-B36;0W4Rd%gRj!7AoJELd9s-ohCy6W0x zJIZVKS)x9&)Ls9hdeD%|)p2=cOG>uft-rec%n#AE6K_==Ty#Cm<6eL_ZJhe|%-q`p zk}joXH?U5sQ}`|GKI!);giMakD-8^5B8C zAxB0p9@D>Gvi!CGY@d=VJrYL#_e|B?i|NNw-p@LLr(W8+>6_FM>HXzKe&&yZk0yV) zZTOkVl?`h=S zIJ7x_WaOY%j$NBDep2l6@;CDvFMe{QrZn7rZ(HQz8C=A|{HB3X`xi}@uhid*J~jJ% zN<~C$$@0vK=PouyBxJoEH*|adOh`d=VaD{i92e^$cUa||y$(o7xjTKDJJ&YfQuyv1 z-8IW;aW5=%TAT}9I>(bIZy}de6M0EiRIFhvz$IytCfeXbB`vtfw;)&ri9XE+eUVT~U|v{Ll|X4WuWauG(uSM&#lt($%3D$(dJY-BuSAkX=!c z4Qde#v4c3nP%)&9?bxXxGR6}Rzy?$k9>``4_@+}Pei(o#pqx}AF~CPBG(>?%5`>D} zg6J?-fPx`!B4Gl7w8JzBV`P&>Ns@3g9>y4~n_6j6s# z(8v$INNMOugr~!B0B@u~EES2zRz(#ZL=YJ_cmy&58W3BEoQO3=0BITo!3oSvrVthp zT*|>p;=<*-|0)`zR%rqimXv`qcLEvfrSa6=ira5{5 zxC+vRheKnKMt3R}y=`!a8MR^Ic{48FSU{R-aCK}~Na4}Y$})CBsA)7IpFY9fU?7{M z@lbkJSPrsehf;T91qM~Z50b97W+JPtxk3&eOh~qLNV(9Op`>|T$z=6G)%hIZ!1=tH zUYkTpT_dbus+E$4BpBQR4ZQPZjb%oFyauf?GZJl+959Q(|u4dFS zn(b!PQVa{$ZXnjIW$Q@*JxmPC>PawSJwB|(FbYi!3(WwrL!q@g2}rPY5)k}j3r#@q z*&POIo|p~;HRsk9K+VOloVtP$%bj99O2wOYie{bE?y7C`K9`&*p})KM`k z+sno^$Hc%EX>4Tx04R}tkv&MmP!xqvQ>7vmhgJ}A$j~}j5EXHhDi*;)X)CnqVDi#GXws0R zxHt-~1qXi?s}3&Cx;nTDg5VE`o12rOibF;h=w7PIiIuY2mGx{L8F@4i24Kq;6E@QK88OgAjz4dR(i zOXs{#9A;%nAwDM_H|T=Ik6f2se&bwnSm2pqBb%Nl4ik%|E|$BPl?|16nmD4U8s!T) zmle)ioYiWbweQJa7%XTj8LrbBMFLAmA_WmL>ZqU!3o+U?QcR@jJnrEiar`NA$>gel zkz)ZhsE`~#_#gb9ty!F!bd!Q{p!dbLKcYZj7icwX`}^3oTPJ}38Mx9q{#p~5{Up87 z(IQ8{;5Kk^-O=Pd;Bp5Te$pjFawI=3p;!do&*+=-Ky{D4^000SaNLh0L z04^f{04^f|c%?sf00007bV*G`2jv450W2308hNq+000?uMObu0Z*6U5Zgc=ca%Ew3 zWn>_CX>@2HM@dakSAh-}0009qNkle2ZRW;2s-+9(w`JnlIFK;``}Y+W{1 zu-|p44}kB^1_11fD#c#UIS=+fk*`t|06K{=xXurNs;a`r=kxJCvz(_PE4g7a%;dhC z8^my(U-(xg@caGflijSTOBda@8eqR}V-b@4dFy8Ix|Q(j38NH3M|Vqnx+x*dbzV2_9wyZE*HKR4ty2mGHgd zXe*ds5n$Y8w|`busJ#CLfRe@A`KTWGy9~_o zH12|N9~{bhwzXZtp{y6GS~{z5N{*r#JPnm{_<9NHcQ8CW3?MFAou(m=jxyenU}f1H zcz2Hva%s`i7tO$UE8gyC<>50&!D}IvO65wjb2HaQMgT~i9GkifiF$OsMbZH=^!MEs z>~uOUxT>nkf<1PJ771k*lKfY zdW%$8qLSm*?52Y&nwxWS{TbL+o3#d*=#@wZBqn;Lf5L#k>422i15?e@0c$^|i`$*^ z#Qawe$~?3?=K(M<0Fa$F)>|ZOwOMuzeliYTJOe=g*4JcJRldrK;C%HM-+J5s`d!(4 cHTTEz1Dk@F7O5ZyiU0rr07*qoM6N<$f>^_CWB>pF diff --git a/icons/cc-vim.png b/icons/cc-vim.png deleted file mode 100644 index 16e1cb731923bcb4b27b13b5980e1e59dfcfde79..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1105 zcmV-X1g`suP)Ir`)ti3RtNOivS7RpY84#)$9yT1;7nW&AtoV-NP2o19kj@An z2*+F*Q20{mdYPXT=ga)2*qup^gQj{$^S@aC#YVxkgnNa%EVF3*%%i>}lC@{2rFO{f z#3RWBaiZuHS;EApU#cyc{qGz2_D!-Z9z)&^tGMFGQxI=V)S`6FO3jI$mB(aN<^DHM zFE=z;?jDIl-D42Ec0+g@N?Sqjc^CwxBdB?RbGzbSmYhc3Mc=AuUHj0y4yP9tP2YjD z4QRi2(r)@&s*$bba`18jO(|%-hK7Z5RzK$)-@(k9{Guz^-Gd&v-@Nz*^ucHZiA)sI z00009a7bBm000kR000kR0jNKxX#fBMi%CR5R7ef2md}e)Q546&*Ky3IUy$@eE3k-J zMpH6GTNi;Xqr_E0^1WgfSKsj1SIaVNU(ROI^)D zHP(z!?YIDlia;loN+F$2kByJTVhEz5%g5#rO@7p++dUKt1;==L`OPO0N-1$&M;7sF zBH+(vv*2A;t5w@toVcv~<{Jb#s!>5vF)wcBmS6pUR%~uQ@GyaD43k542e*2_pN<#!ae}Q2(0c~erYoG!DR>$` z1usgEPI&bs!oiC1MQ4h|6&ncYpX%aEb5McPxg@)s$*{SE{Kp8GJD&h-<`|$4U zC5f?(p5Q)dF$^;~MTgw$woraELte=S9yejzxdo11zYwJtK1?-w@V9GiV6{j0_=jVO zM9d3ZFBhqgx@xN;ZCdL>uQoYHM-dbL@Vw{^$HC48E{$q-5lFd=a@amFF`x$K~yrS+g8fKS7l5CP|!70P1YO z6wyo6=asI)h7quzKDiQHbWWH56*TDS&_kQ^YKL|~otf5py$Ng(oG#J-w}S!T$Yj`m X6?-1E-8^AX00000NkvXXu0mjf_#_Qc diff --git a/icons/crosscode-tweak-pack.png b/icons/crosscode-tweak-pack.png deleted file mode 100644 index 02a85e7ed91bec678434050d9261e604a8e0c535..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 769 zcmV+c1OEJpP)EX>4Tx04R}tkv&MmP!xqvQ?()$2Rn#3WT=8*K~&UH zt5Adrp;l*{h@IUxHTPr_4<|T#WK>Lg1d<+7iU7%idobO}D zshQiya5glfuRCrulc;YvvqF&-f7J52bdsow(G9z$p8QV32;bRa{vGi z!vFvd!vV){sAK>D0TM|>K~zY`?Uk_&gD?<9zatuEUHXZExP9o z0MM5W03b}ORR%Eu%ep^at0y8`z$~t~o@Y-)wt(e0Rq6zT$hG14o-tT9;SDT)((%1% z7mn{K!ATq_p#YF~10vTJ<}5jwoq#W(4j2HEIGDc88t`HT?8`<-oeDfBYwaE|FuyY$ zu(p9*pS&Biz)Xj|d(q$EhYYg1{kSBiQmq$$(=e@2YygivNa%5v+*!l4qGR*h1YWvm zWK0?5A*xof1U7k-DS+uw(FGen`poEyb^GcK2eF`@aE-u600000NkvXXu0mjf#K2B} diff --git a/icons/french.png b/icons/french.png deleted file mode 100644 index 684f9a40be79ca39b81135dacec53f4748038c55..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 178 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaN3?zjj6;1;w=>VS)S4AL$fgzbeOxSh_gV&^e zYR0o>&3b#_!2kdMSA1P%0hD7b3GxeOaCmkj4ajlzba4!kxSX7zz`TROkzJsLiP2NW z(b3{~;Ds9z0V2md&CJZ23u9VzC-FY4YO%gF!Qzyghs;+cmgO7w#4xS4J+h;hhk>DY Vo$VAc9d>t+)t;_?F6*2UngDhzHM#%* diff --git a/icons/junolea.png b/icons/junolea.png deleted file mode 100644 index b2dd99712cc8ff3918f748048a3c7849abade365..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3161 zcmcIm32YQq7@lR@T1twm1X|RXVG!)$?Ci|!IkG_MqOG`C%W9zz=$kihwj;Yc6Pm?D1yyfB*OY z-~avpyfsa8Z!9mnqKqJj^2UZxGybi#KBXo2`&2S`mLP0XmHPUoI!P4~*?i+HvWg7^ z{M7_e^$u)n<23V59bMkmcDS#$x=c?t_w+p2+&1H#-h;hIh>|sLA1Hp@kqKyXbX`?tYinzbfAi^UpQ|ZqnefD>{t30I{wV_$<4;#id3@7m;=NfPT~e~b zv3jH91aZeJ$E1xMalpRn$AIIiJr9aehgiCHQEQ|Gaoogl{gaQZpS-X4)ZTUJ^kiJCE;oR$)>gE%q)nTp2}hL8$U8NUKvTelgC%$S%QM%31N-0@j-#;!ZFD6}kfIaDd?t!;SZGWbCP+Zk7z$E21*f7&0t-bSv>))m1AQV7WI6Bc7G1$j z3Sxu3T2V>ZBjQDw^8!G7C5fY<$L*&5ZjVHZ0T=Iqvg||9ZM8y1T|$Fm;L>&Fnrj}q zGq;KJ=U-FA20S8k zi#|FaLmv&08?U@xK)YlJ0-^`kniumF4@r?aThhDvg{9|xc{R_jP>NrjvMCBlPG%~$})L_)t#A#lQ7iGxmXS2rmnCAXa@+c>GFyRwX0bufJ8nNf?3^3^lnnAG=0dGD@KO*Z58qhorhsevgi zB}HWEG0!KwcJ75>w4>EFaNAU{k&iU?>l?-j_$i|joj3?qloCa>i+R1_R6rM!4_M< t5Yz*3jI9W~IFPoV|9qkQ7wzt`DVrEQzNB}6Ty7m@8)wfAy)>(B#qadMBy<1( diff --git a/icons/timer.png b/icons/timer.png deleted file mode 100644 index ca6b2ad56ef8773e6a4857f390572a08750055df..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1232 zcmV;>1TXuEP);wrc}2o9o) zUxWWZSHV?55EMbg&E2m>B%W&vEuuHvoQL<`_i*wC!UB@BO)&mb0D?p$6em-EnPwol_S}rr zF4^69q?jU342>cynD`7zwI#E^eM3LKX$s=es$YWVqbDIS%!YLGaoO(QWwJ3WCqWAox0h$OD|)RewQp8haOgtE%%C;Atl(F+&DMY(|9NVstKPw>Xg$OTPI@xsv(Zd@Q-q~TD0G-=Zwu+i9tHZ5&& zzDH-Bu3JsROWwXWGv9pkX6OAN>e2G~JY8R3Q?uDLBhT+}k90cbt_|2;&GIws@9)#> z?5vpXW-^)YBIq$1joxFq1l_^G0VNU%Z8me?0QGvE9LFKcvLYuZC+9#eyjbXRPJT%m znS(s!Y_iC7aB#2-1Htxc4i68hR;y99S{?F|Z-mAO9ZdpqcIS*Af)9MX?XL{*Z#(TJ zJAV`+Ar|9O?T48n6VBol3!k9itc_kiT^VGvS-QNuq^ql|36KlOOAfu(0n5K=0>0qT z%?+@&wnn8=iH3)VX<%Sr86a7`cJR&x!!=umFF3#@&CRD=E>kcVL~-M%r>92%z*(}3X7~vll7Vlw%u;8f&&HL+uJj6 zlYuJi6aJrHVG$?Hdu1Vo21c^rf6c+IPS53pYVA^G2^GT{U`1N?hFf%nhO&T^VO7~OEW>X{{X zt|vnuMzu)Q<)21Ikg2Ju2aQG}Z-+u5vTgefEV6P<4!u`~4&)96Fm;;_hy@$&N~Q9c z>+n`keq^v|y&>ZL*QA!Xb&ax6aP#8r=dg;h3;8dh?QhgsfZOIH{z#yDm7=@N$cHXw zbCLb?ybW{5mk(Ua=9BkLxO(jt*tJb|i}>kL+ls~Fk-fFGWlo*!Uri*AemYGgIME4L zGMRjbgXU~*ZZ`ReG!H@F#TNF?DCGQvT8oQ|WX0ogN~hD|_4W1g+}xb|+Ial>5_fiX ztd*6OFmsp9RS}ED==k`UH~`Jh&r>84F>i7|tay|0*lcfa69*vSbU-pTcJt1rQYqYk uc)3H|f5FyA8)0mXZ{`N>pwZErYvecg6?L#*y5O+@0000P)EX>4Tx04R}tkvmAkKpe)uKBOWQ5j%)DWT;LSM8(IZ zRVYG*P%E_RU~=gTnlvOSE{=k0!NJF3)xpJCR|i)?5PX2Rxj8AiNQwVT3N2#1jDw_ypovrW+RV2Jz&krE}gVjJ=?&=bxV`?fXf}A|4Ek&$&muI{P{faen#Jv1^RA* zt~IxB&2yYS0BPz~@&-6K1cnQgz3%bu&i20jThr{{55jqJ$KD|3P5=M^32;bRa{vGf z6951U69E94oEQKA2Kh-uK~zY`b(VWjl;;`6f8WR6*kxgNfd%BY5EKM2^@3;+Z9=NG zHA;x7x72u_Ni*7H;h@ut53n)T%Szs4- zm%V@c^$(|7o%H$Zop5-JmP1B zaNZM@Rs z=5pZbGOn|WQLkoUUTA?LJ-G=X^0R%A)j^!cKwQo+WS@oh>JHvp|1o3YqTqjq{*d63 zPhvt#6$9!3s}~Q!dG{WRQrBU0>xhITlr0)Kc9rvOnYbkt8FwV2GNAt08XEU@a^<^P z(sJ@>2|RA8_-@%+Jb(TgOYNJO)qTXs{k(O14qK~taPD7i*qz zHP6bdp1GK$qu@(jew?70KUh$KE2qQzKBE>m?L>gBfqGYT>;clA!5=p89QwVlS;Di$T95LS%o{)!r>1$Q?h6ip+XG_69fF{ zS~<}T5thv_oD8bqlKoI+x*)yHBsVk{be}Uc6&Y7zXScd8dNm^oxXEEVo69%Og zWkD>_^G*>C%MTPZbO+I!dpLV?Ji$R1uA!~e{e25FUtU2(mQf2n#Q1Nik2LaE8b~0F zLX06S7$H_kPS$7=^T*Ta8N__JmD5$P5e&H=DR2#h2|Bc#*grsqS&Pnno4u7iNsiz%g$ z?4y_1x93^Xr_MqOhf!*cbgo~{q;xfk+P)lakcqGY7eM1dn0y09qSCY^D zs*IeTJcb%HT-05sc$|@ceAP)wj*)XWowVcxnK$(!c_|W}fIvtBx5>^xyP3fuJ@f`b z>|C^xen&siF$PrTky!5SW$Udwi1k-JjL1)BbHgDlEBpkU0X{$DWX_9;TyQF=|KUao zW*%ZkWeOb~+xVyNKFvcMT=U9QUq6WuuRxN+EdOXXxeLZ2CuX9Ex<)}Djc>mTARKgs zJJPOW>k~*D?Ps5~gX8C`S-s>HTAK&?f2EF65Rk$E{BhCCD7`Hdm{XBe z9-iKQ`oW@2J7A_b;}qt+7*weeAwf@Kl8QxT3y@_}V|6 z(I}&3(lRtWHB8Hf&pu(&(*@*?NW&9Sl4w?;C{9vw&GjY6L$6@c&BbO65G4zkWSMSj zh;C~Tqe;QI>7TNzY66;3lezB<)9(xutrhWkBX~R#N~J(3B%>IJ&}Ov}t&OI~9z@a5 z9mIJ>$@0j@I7h!kYPy=zBsE9x``Px(Vm>@^1-C2A9}XxHg`0e~`4+0AVchYFbfRPL z>=0eKMW{6*T^)X==(RK(4Y=Iy2aERVUw+GUpMw+WZ{X+)0kG=G5k_9CV*E2j+`2J{ zwJX4%zO1G|KZV0JPV#0K@zZ&Qm`?7b_MO!@8k^X-sg?n!k1;Vuq&e%DXzya_uD2fL zflsXmz~h!!tGtOOE))Bax`$@2Tv11}r=H3KtC>AUk5(&UQ1;d=S42y;VM+mn|;@3~$0Q?8A83#;q)Rfu)0000=1.2" - } - }, - "installation": [ - { - "type": "modZip", - "url": "https://github.com/ZeikJT/CrossCodeCheats/archive/1.4.0.zip", - "source": "CrossCodeCheats-1.4.0", - "hash": { - "sha256": "ff903d75f2098fbe3061ea8cc309f55a54c15050ddb4395606439ac8a8268faf" - } - } - ], - "stars": 5, - "lastUpdateTimestamp": 1694220933000 - }, - "CrossCode C Edition": { - "metadata": { - "name": "CrossCode C Edition", - "module": false, - "version": "1.0.0", - "homepage": "", - "description": "The worst mod to ever be created." - }, - "installation": [ - { - "type": "ccmod", - "url": "https://github.com/EL20202/cc-c-edition/releases/download/1.0.0/crosscode-c-edition.ccmod", - "hash": { - "sha256": "b2a4339cb9bef28d7c3d53c790ee1707a888a42b5dcd891c0b4dc79a6c89d851" - } - }, - { - "type": "modZip", - "url": "https://github.com/EL20202/cc-c-edition/archive/1.0.0.zip", - "source": "cc-c-edition-1.0.0", - "hash": { - "sha256": "2298c9f159fec87963442e5fd8b6f983353a78acc2cb42128989cc98f9a21e63" - } - } - ] - }, - "Discord": { - "metadata": { - "name": "Discord", - "prestart": "mod.js", - "ccmodHumanName": "Rich Presence for Discord", - "version": "1.0.0", - "homepage": "https://github.com/CCDirectLink/CCdiscord", - "description": "Show off your CrossCode skills in Discord", - "module": true, - "ccmodDependencies": {}, - "dependencies": { - "discord-rpc": "^3.2.0" - } - }, - "installation": [ - { - "type": "modZip", - "url": "https://github.com/CCDirectLink/CCdiscord/archive/refs/tags/v1.0.0.zip", - "source": "CCdiscord-1.0.0", - "hash": { - "sha256": "5df25d4d8ad3fc3872c53f184cbfd27d32489985b724d1830ffe1f71fdefbdc8" - } - } - ], - "stars": 6, - "lastUpdateTimestamp": 1697556236000 - }, - "Element Boss": { - "metadata": { - "name": "Element Boss", - "main": "mod.js", - "homepage": "https://github.com/sgrunt/cc-element-boss", - "description": "Adds a new boss battle to the game.", - "version": "0.1.2", - "ccmodDependencies": { - "ccloader": "^2.7.3", - "Simplify": "^2.1.0" - } - }, - "installation": [ - { - "type": "modZip", - "url": "https://github.com/sgrunt/cc-element-boss/archive/0.1.2.zip", - "source": "cc-element-boss-0.1.2/cc-element-boss", - "hash": { - "sha256": "e0bdc31b640bd7a00bd7c69dcb7a8cef87130f0cb349b44874ba440c67f02922" - } - } - ], - "stars": 0, - "lastUpdateTimestamp": 1574862675000 - }, - "Extra Gamepad Options": { - "metadata": { - "name": "Extra Gamepad Options", - "version": "1.0.2", - "description": "Allows buttons/triggers to be swapped, and adds extra icon themes.", - "module": false, - "prestart": "prestart.js", - "ccmodDependencies": {} - }, - "installation": [ - { - "type": "modZip", - "url": "https://github.com/ubergeek77/CCExtraGamepadOptions/archive/1.0.2.zip", - "source": "CCExtraGamepadOptions-1.0.2", - "hash": { - "sha256": "5df1571d3d1e991f2fbabab73d56d99bd185a659c66d44603b9cd3d504b7a8ac" - } - } - ] - }, - "Hadouken": { - "metadata": { - "name": "Hadouken", - "ccmodHumanName": "Hadouken", - "version": "1.0.0" - }, - "installation": [ - { - "type": "modZip", - "url": "https://github.com/CookieSalesman/CrossCode-HADOUKEN-v1.0/archive/refs/tags/v1.0.0.zip", - "source": "CrossCode-HADOUKEN-v1.0-1.0.0", - "hash": { - "sha256": "4675038bf374b5193e4a723d9a50b78c8e79bcf249ab70438258bb4241dadd87" - } - } - ] - }, - "Kit Player": { - "metadata": { - "name": "Kit Player", - "version": "0.1.1", - "description": "Swaps Lea's sprites to play as Kit. A sphereomancer fox.", - "homepage": "https://github.com/BountyXSnipe/kitplayer" - }, - "installation": [ - { - "type": "modZip", - "url": "https://github.com/CCDirectLink/kitplayer/archive/v0.1.1.zip", - "source": "kitplayer-0.1.1/kitplayer", - "hash": { - "sha256": "bef7447b66e411292493bde5d0fd312d0f4ca13a4c4ab215d02f9472eb291968" - } - } - ], - "stars": 0, - "lastUpdateTimestamp": 1575922506000 - }, - "Lea sits on the Title": { - "metadata": { - "name": "Lea sits on the Title", - "version": "1.0.0", - "description": "Replaces default Lea's pose on the title screen.", - "ccmodDependencies": {} - }, - "installation": [ - { - "type": "modZip", - "url": "https://github.com/Swanderrr/CCleasitstitle/raw/faba8504ef285f73cb3774e2118987ba74329c87/archive/titlescreenlea.zip", - "source": "", - "hash": { - "sha256": "077f24e1c8d44d86e1cb05197d7831f167bdae79c3077d820c09bbe748dba068" - } - } - ] - }, - "LeaTriblader": { - "metadata": { - "name": "LeaTriblader", - "main": "mod.js", - "version": "1.0.1", - "homepage": "https://github.com/keanuplayz/LeaTriblader", - "description": "This mod changes Lea's class to Triblader." - }, - "installation": [ - { - "type": "modZip", - "url": "https://github.com/keanuplayz/LeaTriblader/archive/1.0.1.zip", - "source": "LeaTriblader-1.0.1", - "hash": { - "sha256": "b0a23ca05f65c09e52aebc3ce3c836ec326a972531ef4a373fdf4876494b022b" - } - } - ], - "stars": 0, - "lastUpdateTimestamp": 1586942673000 - }, - "New game++": { - "metadata": { - "name": "New game++", - "module": true, - "plugin": "plugin.js", - "version": "1.3.0", - "homepage": "https://github.com/CCDirectLink/CCNewGamePP", - "description": "A small collection of addons to CrossCode's NG+.", - "ccmodDependencies": { - "crosscode": "^1.2.0", - "ccloader": "^2.14.3" - } - }, - "metadataCCMod": { - "id": "New game++", - "version": "1.3.0", - "plugin": "plugin.js", - "homepage": "https://github.com/CCDirectLink/CCNewGamePP", - "description": "A small collection of addons to CrossCode's NG+.", - "dependencies": { - "crosscode": "^1.2.0", - "ccloader": "^2.14.3" - } - }, - "installation": [ - { - "type": "ccmod", - "url": "https://github.com/CCDirectLink/CCNewGamePP/releases/download/v1.3.0/CCNewGamePP.ccmod", - "hash": { - "sha256": "a9ccbc44306b43f8b3d2adf1f121e39b14057227961d8881bf831e63aca3a685" - } - }, - { - "type": "modZip", - "url": "https://github.com/CCDirectLink/CCNewGamePP/archive/v1.3.0.zip", - "source": "CCNewGamePP-1.3.0", - "hash": { - "sha256": "37e48525234fe437e20cad9206cbc6c45a4421f381d51727e45162d103a1d472" - } - } - ], - "stars": 3, - "lastUpdateTimestamp": 1662818967000 - }, - "Palicat": { - "metadata": { - "name": "Palicat", - "prestart": "prestart.js", - "homepage": "https://github.com/rioreur/palicat", - "description": "A mod that implement the palico from monster hunter world into the game.", - "version": "1.0.4", - "ccmodDependencies": { - "crosscode": "^1.1.0", - "item-api": "^0.*" - } - }, - "installation": [ - { - "type": "modZip", - "url": "https://github.com/rioreur/palicat/archive/1.0.4.zip", - "source": "palicat-1.0.4", - "hash": { - "sha256": "75d84d8a190bece945d20f2fda3518c06cdbdd57f209b91471f9815feffb4b70" - } - } - ], - "stars": 1, - "lastUpdateTimestamp": 1593460288000 - }, - "Qine": { - "metadata": { - "name": "Qine", - "description": "Adds the character Qine as a party member and PvP duel.", - "homepage": "https://github.com/sgrunt/qine", - "prestart": "mod.js", - "version": "0.2.7", - "ccmodDependencies": { - "ccloader": "^2.14.1", - "hardcoded-config-injector": "^0.1.0", - "extendable-severed-heads": "^1.0.0" - } - }, - "installation": [ - { - "type": "modZip", - "url": "https://github.com/sgrunt/qine/archive/0.2.7.zip", - "source": "qine-0.2.7/qine", - "hash": { - "sha256": "73bec599fdb63f6b0504d1ea6b549904daf97f00c8667f6bd6378c91560d8c29" - } - } - ], - "stars": 1, - "lastUpdateTimestamp": 1595952730000 - }, - "Restart Button": { - "metadata": { - "name": "Restart Button", - "version": "1.1.3", - "description": "Adds a button to restart the game without memory leaks", - "license": "MIT", - "homepage": "https://github.com/bluecheetah001/CCRestartButton", - "plugin": "mod.js", - "module": true - }, - "installation": [ - { - "type": "modZip", - "url": "https://github.com/CCDirectLink/CCRestartButton/archive/refs/tags/v1.1.3.zip", - "source": "CCRestartButton-1.1.3", - "hash": { - "sha256": "6a31aba45a5df4a498901721fa14ed673677d1010707cd9146cee7c41804ad5a" - } - } - ], - "stars": 1, - "lastUpdateTimestamp": 1656233954000 - }, - "Simplify": { - "metadata": { - "name": "Simplify", - "main": "mod.js", - "preload": "preload.js", - "postload": "postload.js", - "prestart": "prestart.js", - "plugin": "plugin.js", - "hidden": true, - "version": "2.12.1", - "ccmodDependencies": { - "ccloader": "^2.22.0", - "crosscode": "^1.0.0" - } - }, - "installation": [ - { - "type": "modZip", - "url": "https://github.com/CCDirectLink/CCLoader/archive/refs/tags/v2.22.1/v2.12.1.zip", - "source": "CCLoader-2.22.1-v2.12.1/assets/mods/simplify", - "hash": { - "sha256": "7ab3d850b5368dda4593318fd3e957e0bc46128e25844eeda97ca0eec16b343a" - } - } - ] - }, - "blades": { - "metadata": { - "name": "blades", - "version": "1.5.0", - "description": "Asset which replaces balls with blades, now for all classes!", - "module": false, - "ccmodDependencies": {} - }, - "installation": [ - { - "type": "modZip", - "url": "https://github.com/CCDirectLink/Blades/archive/1.5.0.zip", - "source": "Blades-1.5.0", - "hash": { - "sha256": "aa1fe7bdc217a8c27d91496b48f2642cea243ed158dafe32251834536666a25a" - } - } - ] - }, - "cc-capped-stats": { - "metadata": { - "name": "Capped Stats", - "version": "1.0.0", - "description": "big numbers are very scary. :( low numbers are not scary! :)", - "homepage": "https://github.com/EL20202/cc-uncapped-stats", - "module": true, - "prestart": "prestart.js", - "ccmodDependencies": {} - }, - "metadataCCMod": { - "id": "cc-capped-stats", - "version": "1.0.0", - "title": "Capped Stats", - "description": "Adds a visual stat cap - see your stats for what they really aren't!", - "prestart": "prestart.js", - "icons": { - "24": "icon.png" - }, - "dependencies": { - "ccloader": "^2.20.0" - } - }, - "installation": [ - { - "type": "ccmod", - "url": "https://github.com/EL20202/cc-capped-stats/releases/download/v1.0.0/cc-capped-stats.ccmod", - "hash": { - "sha256": "34c11a440d7af0857728619e17c7143102cec55a1e16b3dd5c3c16935b8965c2" - } - }, - { - "type": "modZip", - "url": "https://github.com/EL20202/cc-capped-stats/archive/refs/tags/v1.0.0.zip", - "source": "cc-capped-stats-1.0.0", - "hash": { - "sha256": "2d8876bae0fa566ad35b4f4d5db5c2b5d1a69c55b38e27aa337c2b0b666c20c1" - } - } - ], - "stars": 1, - "lastUpdateTimestamp": 1646540366000 - }, - "cc-extra-dialogue": { - "metadata": { - "name": "cc-extra-dialogue", - "version": "1.0.0", - "ccmodHumanName": "CrossCode Extra Dialogue", - "description": "Adds more lore-friendly dialogue for party members.", - "homepage": "https://github.com/Paradragon/cc-extra-dialogue", - "prestart": "prestart.js" - }, - "metadataCCMod": { - "id": "cc-extra-dialogue", - "version": "1.0.0", - "title": "CrossCode Extra Dialogue", - "description": "Adds more lore-friendly dialogue for party members.", - "homepage": "https://github.com/Paradragon/cc-extra-dialogue", - "icons": { - "24": "icon.png" - }, - "prestart": "prestart.js" - }, - "installation": [ - { - "type": "ccmod", - "url": "https://github.com/Paradragon/cc-extra-dialogue/releases/download/v1.0.0/cc-extra-dialogue.ccmod", - "hash": { - "sha256": "8ab162b803f9a663f5677b058fafcf07218145f38f7a90cbdcf05845b0a5e329" - } - } - ], - "stars": 4, - "lastUpdateTimestamp": 1633371453000 - }, - "cc-fancy-crash": { - "metadata": { - "name": "cc-fancy-crash", - "version": "1.0.7", - "description": "Better crash message", - "scripts": { - "start": "esbuild --target=es2018 --format=esm --platform=node --bundle --sourcemap=inline --outfile=plugin.js src/plugin.ts", - "watch": "esbuild --target=es2018 --format=esm --platform=node --bundle --sourcemap=inline --watch --outfile=plugin.js src/plugin.ts", - "build": "esbuild --target=es2018 --format=esm --platform=node --bundle --outfile='plugin.js' 'src/plugin.ts'", - "format": "prettier ./src -w" - }, - "author": "krypek", - "license": "GPLv3", - "homepage": "https://github.com/krypciak/cc-fancy-crash", - "devDependencies": { - "@types/node": "^11.6.0", - "@typescript-eslint/eslint-plugin": "^6.20.0", - "@typescript-eslint/parser": "^6.20.0", - "esbuild": "^0.20.0", - "typescript": "^5.3.3", - "ultimate-crosscode-typedefs": "github:krypciak/ultimate-crosscode-typedefs" - } - }, - "metadataCCMod": { - "id": "cc-fancy-crash", - "version": "1.0.7", - "title": "Fancy crash", - "description": "Better crash message", - "homepage": "https://github.com/krypciak/cc-fancy-crash", - "icons": { - "24": "icon/icon.png" - }, - "plugin": "plugin.js", - "dependencies": {} - }, - "installation": [ - { - "type": "modZip", - "url": "https://github.com/krypciak/cc-fancy-crash/archive/refs/tags/v1.0.7.zip", - "source": "cc-fancy-crash-1.0.7", - "hash": { - "sha256": "d1282639f2a76f518489ad19df412675d166735934045f6244b9f29fe1a6794a" - } - }, - { - "type": "ccmod", - "url": "https://github.com/krypciak/cc-fancy-crash/releases/download/v1.0.7/cc-fancy-crash-1.0.7.ccmod", - "hash": { - "sha256": "edc33bc5c294a9573a49eea1c4080a458c70a9e9e8e1a6f960e3d798ce935503" - } - } - ], - "stars": 0, - "lastUpdateTimestamp": 1707129880000 - }, - "cc-oldmedia": { - "metadata": { - "name": "CCOldMedia", - "version": "1.0.0", - "description": "A mod that brings back some old title screen assets.", - "homepage": "https://github.com/lexisother/CCOldMedia", - "module": true, - "prestart": "src/prestart.js", - "ccmodDependencies": {} - }, - "metadataCCMod": { - "id": "cc-oldmedia", - "version": "1.0.0", - "title": "CC-OldMedia", - "description": "A mod that brings back some old title screen assets.", - "homepage": "https://github.com/lexisother/CCOldMedia", - "prestart": "src/prestart.js" - }, - "installation": [ - { - "type": "modZip", - "url": "https://github.com/lexisother/CCOldMedia/archive/refs/tags/v1.0.0.zip", - "source": "CCOldMedia-1.0.0", - "hash": { - "sha256": "491263c26aefa8f366c135e2672c0214bb593059d44ddf22bebfc3a655f0b73e" - } - }, - { - "type": "ccmod", - "url": "https://github.com/lexisother/CCOldMedia/releases/download/v1.0.0/CCOldMedia.ccmod", - "hash": { - "sha256": "0791db068d46cf394fc3a512cf3a5bca7744a1550d1e72d07adb39bcea097703" - } - } - ], - "stars": 0, - "lastUpdateTimestamp": 1685899148000 - }, - "cc-quickinfo-exp": { - "metadata": { - "name": "QuickInfo EXP Viewer", - "version": "1.0.0", - "description": "Shows the EXP the enemy will give you in the quickinfo popup.", - "homepage": "https://github.com/lexisother/cc-quickinfo-exp", - "module": true, - "prestart": "prestart.js", - "ccmodDependencies": {} - }, - "metadataCCMod": { - "id": "cc-quickinfo-exp", - "version": "1.0.0", - "title": "QuickInfo EXP Viewer", - "description": "Shows the EXP the enemy will give you in the quickinfo popup.", - "poststart": "poststart.js", - "dependencies": {} - }, - "installation": [ - { - "type": "modZip", - "url": "https://github.com/lexisother/cc-quickinfo-exp/archive/refs/tags/v1.0.1.zip", - "source": "cc-quickinfo-exp-1.0.1", - "hash": { - "sha256": "e8e0fa7e59aca78821df92121c3e745bdd5fdf7f2ee5df4e028db9dfb471ed05" - } - }, - { - "type": "ccmod", - "url": "https://github.com/lexisother/cc-quickinfo-exp/releases/download/v1.0.1/cc-quickinfo-exp.ccmod", - "hash": { - "sha256": "fcdeeba04a3c3e210353a23031c4396dfa33876f770347e550103a4308e3685a" - } - } - ], - "stars": 0, - "lastUpdateTimestamp": 1687809951000 - }, - "cc-uncapped-stats": { - "metadata": { - "name": "Uncapped Stats", - "version": "1.1.1", - "description": "Removes the visual stat caps - see your stats for what they really are!", - "homepage": "https://github.com/EL20202/cc-uncapped-stats", - "module": true, - "prestart": "prestart.js", - "ccmodDependencies": { - "ccloader": "^2.20.0" - } - }, - "metadataCCMod": { - "id": "cc-uncapped-stats", - "version": "1.1.1", - "title": "Uncapped Stats", - "description": "Removes! the visual stat caps - see your stats for what they really are!", - "homepage": "https://github.com/EL20202/cc-uncapped-stats", - "prestart": "prestart.js", - "icons": { - "24": "icon.png" - }, - "dependencies": { - "ccloader": "^2.20.0" - } - }, - "installation": [ - { - "type": "ccmod", - "url": "https://github.com/EL20202/cc-uncapped-stats/releases/download/v1.1.1/cc-uncapped-stats-v1.1.1.ccmod", - "hash": { - "sha256": "4084245193fe5b6f43842afcc8db02b78ea6f12472a345b17a339c4c59e48fc8" - } - }, - { - "type": "modZip", - "url": "https://github.com/EL20202/cc-uncapped-stats/archive/refs/tags/v1.1.1.zip", - "source": "cc-uncapped-stats-1.1.1", - "hash": { - "sha256": "f71786c48ba246993fd0cd924155a7d09be5fe7020c97482ec285ea7dbe5b1b9" - } - } - ], - "stars": 1, - "lastUpdateTimestamp": 1646540366000 - }, - "cc-vim": { - "metadata": { - "name": "cc-vim", - "version": "1.5.4", - "description": "Adds a popup command prompt", - "scripts": { - "start": "esbuild --target=es2018 --format=esm --platform=node --bundle --sourcemap=inline --outfile=plugin.js src/plugin.ts", - "watch": "esbuild --target=es2018 --format=esm --platform=node --bundle --sourcemap=inline --watch --outfile=plugin.js src/plugin.ts", - "build": "npx esbuild --target=es2018 --format=esm --platform=node --bundle --outfile='plugin.js' 'src/plugin.ts'", - "format": "prettier ./src -w" - }, - "author": "krypek", - "license": "GNU GPLv3", - "homepage": "https://github.com/krypciak/cc-vim", - "types": "src/global.d.ts", - "devDependencies": { - "@types/node": "^20.4.4", - "@typescript-eslint/eslint-plugin": "^6.2.0", - "@typescript-eslint/parser": "^6.2.0", - "esbuild": "^0.18.15", - "fuse.js": "^6.6.2", - "prettier": "3.0.0", - "typescript": "^5.1.6", - "ultimate-crosscode-typedefs": "github:krypciak/ultimate-crosscode-typedefs", - "cc-quick-menu-ext": "github:krypciak/cc-quick-menu-ext" - } - }, - "metadataCCMod": { - "id": "cc-vim", - "version": "1.5.4", - "title": { - "en_US": "Vim Command Mode", - "de_DE": "Vim Command Mode", - "fr_FR": "Vim Command Mode", - "zh_CN": "Vim Command Mode", - "zh_TW": "Vim Command Mode", - "ja_JP": "Vim Command Mode", - "ko_KR": "Vim Command Mode" - }, - "description": { - "en_US": "Adds a popup command prompt", - "de_DE": "Adds a popup command prompt", - "fr_FR": "Adds a popup command prompt", - "zh_CN": "Adds a popup command prompt", - "zh_TW": "Adds a popup command prompt", - "ja_JP": "Adds a popup command prompt", - "ko_KR": "Adds a popup command prompt" - }, - "homepage": "https://github.com/krypciak/cc-vim", - "icons": { - "24": "icon/icon.png" - }, - "plugin": "plugin.js", - "dependencies": { - "input-api": ">=1.0.0" - } - }, - "installation": [ - { - "type": "modZip", - "url": "https://github.com/krypciak/cc-vim/archive/refs/tags/v1.5.4.zip", - "source": "cc-vim-1.5.4", - "hash": { - "sha256": "c6c650179f47dcd4734c1df2364057b22d752c9fb8b4ce53b5ffc51b0e8566db" - } - }, - { - "type": "ccmod", - "url": "https://github.com/krypciak/cc-vim/releases/download/v1.5.4/cc-vim-1.5.4.ccmod", - "hash": { - "sha256": "956b112b9e9928c8de6e8eac68f3e132dd275d31904f3bed607c4aee0ff09eb0" - } - } - ], - "stars": 1, - "lastUpdateTimestamp": 1707145913000 - }, - "ccloader": { - "metadata": { - "name": "ccloader", - "ccmodHumanName": "CCLoader", - "ccmodType": "base", - "description": "Modloader for CrossCode. This or a similar modloader is needed for most mods.", - "version": "2.22.1" - }, - "installation": [ - { - "type": "modZip", - "url": "https://github.com/CCDirectLink/CCLoader/archive/refs/tags/v2.22.1/v2.12.1.zip", - "source": "CCLoader-2.22.1-v2.12.1", - "hash": { - "sha256": "7ab3d850b5368dda4593318fd3e957e0bc46128e25844eeda97ca0eec16b343a" - } - } - ] - }, - "ccpostdlc": { - "metadata": { - "name": "CCPostDLC", - "version": "1.0.0", - "description": "Adjusts the game to continue after completing the DLC.", - "homepage": "https://github.com/lexisother/CCPostDLC", - "prestart": "src/prestart.js", - "ccmodDependencies": { - "crosscode": ">=1.4.0", - "post-game": ">=1.4.0" - } - }, - "metadataCCMod": { - "id": "ccpostdlc", - "version": "1.0.0", - "title": "CCPostDLC", - "description": "Adjusts the game to continue after completing the DLC.", - "homepage": "https://github.com/lexisother/CCPostDLC", - "dependencies": { - "crosscode": ">=1.4.0", - "post-game": ">=1.4.0" - } - }, - "installation": [ - { - "type": "modZip", - "url": "https://github.com/lexisother/CCPostDLC/archive/refs/tags/v1.0.0.zip", - "source": "CCPostDLC-1.0.0", - "hash": { - "sha256": "704877a8628bb3b6973e8adb22ca93bedd7db816b69a8b3c7d9d35301df63ac6" - } - }, - { - "type": "ccmod", - "url": "https://github.com/lexisother/CCPostDLC/releases/download/v1.0.0/CCPostDLC.ccmod", - "hash": { - "sha256": "eec76c279f1683b415e4f06186d6d4d8ae6e9d247cec845bce1e6a7e6d69cea0" - } - } - ], - "stars": 0, - "lastUpdateTimestamp": 1685899488000 - }, - "crosscode-tweak-pack": { - "metadata": { - "name": "crosscode-tweak-pack", - "version": "1.1.0", - "ccmodHumanName": "dmitmel's tweak pack", - "description": "Micro-mods by dmitmel in a single 999-in-1 package, ranging from QoL tweaks to cheats.", - "license": "CC0-1.0", - "homepage": "https://github.com/dmitmel/crosscode-tweak-pack", - "module": true, - "plugin": "src/_plugin.js", - "prestart": "src/_prestart.js", - "assets": [ - "data/lang/sc/gui.en_US.json.patch", - "data/lang/sc/gui.ru_RU.json.patch" - ], - "scripts": { - "lint": "eslint . --ext .js,.ts --ignore-path .gitignore", - "check-fmt": "prettier --check '**/*.{js,ts,json,css,scss,html,md}' --ignore-path .gitignore" - }, - "devDependencies": { - "eslint": "^7.29.0", - "eslint-config-dmitmel": "dmitmel/eslint-config-dmitmel", - "eslint-config-prettier": "^8.3.0", - "eslint-plugin-node": "^11.1.0", - "eslint-plugin-prettier": "^3.4.0", - "prettier": "^2.3.1", - "ultimate-crosscode-typedefs": "dmitmel/ultimate-crosscode-typedefs" - } - }, - "metadataCCMod": { - "id": "crosscode-tweak-pack", - "version": "1.1.0", - "title": "dmitmel's tweak pack", - "description": { - "en_US": "Micro-mods by dmitmel in a single 999-in-1 package, ranging from QoL tweaks to cheats.", - "ru_RU": "Микро-моды от dmitmel в одной упаковке 999-in-1, начиная от QoL дополнений и заканчивая читами." - }, - "license": "CC0-1.0", - "homepage": "https://github.com/dmitmel/crosscode-tweak-pack", - "icons": { - "24": "icon24.png" - }, - "plugin": "src/_plugin.js", - "prestart": "src/_prestart.js", - "assets": [ - "data/lang/sc/gui.en_US.json.patch", - "data/lang/sc/gui.ru_RU.json.patch" - ] - }, - "installation": [ - { - "type": "modZip", - "url": "https://github.com/dmitmel/crosscode-tweak-pack/releases/download/v1.1.0/crosscode-tweak-pack_v1.1.0.zip", - "source": "crosscode-tweak-pack", - "hash": { - "sha256": "0cc60fb1aeccdb7f664430feb222df8cbf0571a5c5359dcb689f1b551a983713" - } - } - ], - "stars": 8, - "lastUpdateTimestamp": 1647125834000 - }, - "cursedcode": { - "metadata": { - "name": "cursedcode", - "displayName": "CursedCode", - "description": "Cursed custom maps.", - "prestart": "mod.js", - "version": "0.1.1", - "module": true, - "ccmodDependencies": {}, - "scripts": { - "format": "npm run minify-json && npm run json-beautify && npm run js-beautify", - "minify-json": "minify-json ./", - "js-beautify": "js-beautify -js -q -r -f ./**/*.js", - "json-beautify": "js-beautify -js -r -f ./**/*.json" - }, - "dependencies": { - "js-beautify": "^1.10.3", - "minify-json": "^1.0.0" - } - }, - "installation": [ - { - "type": "ccmod", - "url": "https://github.com/Symphiel/CursedCode/releases/download/0.1.1/cursedcode.ccmod", - "hash": { - "sha256": "e265e1cb434d6718c655909792a8077cbe6073618a0a984e43fc944a62caee46" - } - } - ] - }, - "el-tweaks": { - "metadata": { - "name": "el-tweaks", - "displayName": "EL's Tweaks", - "version": "0.5.8", - "description": "A coremod full of useful functionality for modders, as well as many tweaks for players.", - "plugin": "./dist/plugin.js", - "ccmodDependencies": {}, - "devDependencies": { - "typescript": "^4.5.5", - "ultimate-crosscode-typedefs": "el20202/ultimate-crosscode-typedefs" - }, - "scripts": { - "build": "tsc --build", - "watch": "tsc --watch" - } - }, - "metadataCCMod": { - "id": "el-tweaks", - "version": "0.5.8", - "title": "EL's Tweaks", - "description": "A coremod full of useful functionality for modders, as well as many tweaks for players.", - "plugin": "./dist/plugin.js" - }, - "installation": [ - { - "type": "ccmod", - "url": "https://github.com/EL20202/el-crosscode-tweaks/releases/download/v0.5.8/els-tweaks.ccmod", - "hash": { - "sha256": "14a6fa05766def657bed910c7c76b67685ac166771dc9ad82e6d6628f782db77" - } - } - ] - }, - "extendable-severed-heads": { - "metadata": { - "name": "extendable-severed-heads", - "hidden": true, - "version": "1.0.0", - "plugin": "plugin.js" - }, - "installation": [ - { - "type": "modZip", - "url": "https://github.com/CCDirectLink/extendable-severed-heads/archive/v1.0.0.zip", - "source": "extendable-severed-heads-1.0.0", - "hash": { - "sha256": "2fd7991bc70000ade0af06d585c64d1458adee6769b00cbccbbc748be487549e" - } - } - ] - }, - "font-utils": { - "metadata": { - "name": "font-utils", - "displayName": "Font Utilities", - "version": "1.1.0", - "description": "Adds various new font colors!", - "prestart": "prestart.js" - }, - "metadataCCMod": { - "id": "font-utils", - "version": "1.1.0", - "title": "Font Utilities", - "description": "Adds various new font colors!", - "prestart": "prestart.js" - }, - "installation": [ - { - "type": "modZip", - "url": "https://github.com/EL20202/crosscode-font-utils/archive/refs/tags/v1.1.0.zip", - "source": "crosscode-font-utils-1.1.0", - "hash": { - "sha256": "3eec3eabd41908b528e97a4920df3cd39dba42a29251a96b9076307f148c8bfd" - } - }, - { - "type": "ccmod", - "url": "https://github.com/EL20202/crosscode-font-utils/releases/download/v1.1.0/font-utils.ccmod", - "hash": { - "sha256": "fc9aa9aa56336f28815abc06b26dbde42c34885190d0221c6f6c6d3f5b498148" - } - } - ] - }, - "french": { - "metadata": { - "name": "French", - "description": "CrossCode en français !", - "homepage": "https://github.com/L-Sherry/French-CC", - "postload": "mod.js", - "module": true, - "version": "1.4.0", - "ccmodDependencies": { - "Localize Me": ">=0.5 <1" - } - }, - "metadataCCMod": { - "id": "french", - "version": "1.4.0", - "title": { - "en_US": "French", - "fr_FR": "Français", - "de_DE": "Französisch" - }, - "description": { - "en_US": "CrossCode in french !", - "fr_FR": "CrossCode en français !", - "de_DE": "CrossCode im Französisch !" - }, - "homepage": "https://github.com/L-Sherry/French-CC", - "icons": { - "24": "flaglea.png" - }, - "postload": "mod.js", - "dependencies": { - "localize-me": ">=0.5 <2" - } - }, - "installation": [ - { - "type": "modZip", - "url": "https://github.com/L-Sherry/French-CC/archive/v1.4.0.zip", - "source": "French-CC-1.4.0", - "hash": { - "sha256": "30a9febd011fb056426a1d0e8d9f7f50b8dd7310b80a21f1c6e2d3a6c2a143ff" - } - } - ], - "stars": 16, - "lastUpdateTimestamp": 1696099678000 - }, - "hardcoded-config-injector": { - "metadata": { - "name": "hardcoded-config-injector", - "version": "0.1.1", - "plugin": "plugin.js", - "ccmodDependencies": {} - }, - "installation": [ - { - "type": "modZip", - "url": "https://github.com/CCDirectLink/hardcoded-config-injector/archive/v0.1.1.zip", - "source": "hardcoded-config-injector-0.1.1", - "hash": { - "sha256": "7376094f6fa1d8c077a918017405134c88d681bef0f8ce570b169af76b9a803f" - } - } - ] - }, - "input-api": { - "metadata": { - "name": "input-api", - "version": "1.0.1", - "description": "Allows mods to add rebindable key bindings", - "license": "MIT", - "homepage": "https://github.com/dmitmel/input-api", - "module": true, - "postload": "postload.js" - }, - "installation": [ - { - "type": "modZip", - "url": "https://github.com/CCDirectLink/input-api/archive/refs/tags/v1.0.1.zip", - "source": "input-api-1.0.1", - "hash": { - "sha256": "6201ff543341135acb69ce294ffb50ad4792aa5352897e59f1855afff2b7f2c1" - } - }, - { - "type": "ccmod", - "url": "https://github.com/CCDirectLink/input-api/releases/download/v1.0.1/input-api.ccmod", - "hash": { - "sha256": "0b23e53d95963ef55c689090bac359f0815f5337dc671466a34adb852558c7c9" - } - } - ], - "stars": 5, - "lastUpdateTimestamp": 1646924334000 - }, - "inventory-search": { - "metadata": { - "name": "inventory-search", - "ccmodHumanName": "CCInventorySearch", - "version": "1.0.0", - "prestart": "prestart.js", - "module": true, - "ccmodDependencies": { - "crosscode": "^1.1.0 || 1.0.2" - } - }, - "installation": [ - { - "type": "ccmod", - "url": "https://github.com/Naxane/CCInventorySearch/releases/download/v1.0.0/CCInventorySearch-v1.0.0.ccmod", - "hash": { - "sha256": "dcf0a845510295be071290ac535da497c599779472c5f22fbf6e17251b428de3" - } - }, - { - "type": "modZip", - "url": "https://github.com/Naxane/CCInventorySearch/archive/refs/tags/v1.0.0.zip", - "source": "CCInventorySearch-1.0.0/src", - "hash": { - "sha256": "3f85018e3a1c1126841946fe758e1024f7665446c563f2ec9ba8179769238a4d" - } - } - ] - }, - "item-api": { - "metadata": { - "name": "item-api", - "description": "Allows custom items to be prepared in such a way that they 'just work'.", - "homepage": "https://gitlab.com/20kdc/ccprestartapi", - "version": "0.4.2", - "postload": "postload.js", - "prestart": "prestart.js", - "module": true - }, - "installation": [ - { - "type": "modZip", - "url": "https://github.com/CCDirectLink/item-api/archive/refs/tags/v0.4.2.zip", - "source": "item-api-0.4.2", - "hash": { - "sha256": "68d7f15b5e3c4264831dfe89a3ad2ad819825819d98aa529cee03e73312a6b21" - } - } - ] - }, - "jetpack": { - "metadata": { - "name": "jetpack", - "version": "0.2.0", - "license": "MIT", - "homepage": "https://github.com/CCDirectLink/CCJetpack", - "description": "Turns your CTRL key into a jetpack", - "module": true, - "prestart": "prestart.js", - "main": "poststart.js", - "ccmodDependencies": { - "crosscode": "^1.1.0" - } - }, - "installation": [ - { - "type": "ccmod", - "url": "https://github.com/CCDirectLink/CCJetpack/releases/download/v0.2.0/CCJetpack.ccmod", - "hash": { - "sha256": "68932f3747b9cddc473c090d1f30fc1595354e6262cb1074590bf71c27f86fbb" - } - }, - { - "type": "modZip", - "url": "https://github.com/CCDirectLink/CCJetpack/archive/v0.2.0.zip", - "source": "CCJetpack-0.2.0", - "hash": { - "sha256": "49841feae2ddf8e42bce5dec6d712e2fb714ac66e8d8b3d8f0b94eaa47674a71" - } - } - ], - "stars": 4, - "lastUpdateTimestamp": 1589834743000 - }, - "junolea": { - "metadata": { - "name": "junolea", - "version": "1.0.0", - "ccmodHumanName": "Junolea Skin", - "description": "Adds a skin which makes Lea look like Juno", - "license": "CC-BY-4.0", - "homepage": "https://github.com/Inevitabilis/CC-Junolea", - "module": true, - "ccmodDependencies": { - "item-api": ">=0.2.0 <1.0.0" - }, - "assets": [ - "data/animations/player-skins/junolea-hugging.json", - "data/animations/player-skins/junolea-hugging.json.patch", - "data/animations/player-skins/junolea-poses-debug.json", - "data/animations/player-skins/junolea-poses-debug.json.patch", - "data/animations/player-skins/junolea-poses.json", - "data/animations/player-skins/junolea-poses.json.patch", - "data/animations/player-skins/junolea-sleeping.json", - "data/animations/player-skins/junolea-sleeping.json.patch", - "data/animations/player-skins/junolea-weak.json", - "data/animations/player-skins/junolea-weak.json.patch", - "data/animations/player-skins/junolea.json", - "data/animations/player-skins/junolea.json.patch", - "data/characters/main/junolea.json", - "data/characters/main/junolea.json.patch", - "data/database.json.patch", - "data/effects/skins/junolea.json", - "data/effects/skins/junolea.json.patch", - "data/item-database.json.patch", - "media/entity/player/junolea-hugging.png", - "media/entity/player/junolea-move-weak.png", - "media/entity/player/junolea-move.png", - "media/entity/player/junolea-poses-debug.png", - "media/entity/player/junolea-poses.png", - "media/entity/player/junolea-sleeping.png", - "media/entity/player/junolea-throw.png", - "media/face/junolea-hand.png", - "media/face/junolea-panic.png", - "media/face/junolea-special.png", - "media/face/junolea.png", - "media/gui/skins/junolea.png", - "media/map/baked/lea-bakii-kum-junolea.png", - "media/map/baked/lea-ctron-bakii-kum-junolea.png", - "media/map/baked/lea-server-junolea.png", - "media/map/baked/the-room-conversation-clear-junolea.png", - "media/map/baked/the-room-conversation-shelf-junolea.png", - "media/map/baked/tree-top-ctron-junolea.png" - ] - }, - "metadataCCMod": { - "id": "junolea", - "version": "1.0.0", - "title": "Junolea Skin", - "description": "Adds a skin which makes Lea look like Juno", - "license": "CC-BY-4.0", - "homepage": "https://github.com/Inevitabilis/CC-Junolea", - "icons": { - "24": "icon24.png" - }, - "dependencies": { - "item-api": ">=0.2.0 <1.0.0" - }, - "assets": [ - "data/animations/player-skins/junolea-hugging.json", - "data/animations/player-skins/junolea-hugging.json.patch", - "data/animations/player-skins/junolea-poses-debug.json", - "data/animations/player-skins/junolea-poses-debug.json.patch", - "data/animations/player-skins/junolea-poses.json", - "data/animations/player-skins/junolea-poses.json.patch", - "data/animations/player-skins/junolea-sleeping.json", - "data/animations/player-skins/junolea-sleeping.json.patch", - "data/animations/player-skins/junolea-weak.json", - "data/animations/player-skins/junolea-weak.json.patch", - "data/animations/player-skins/junolea.json", - "data/animations/player-skins/junolea.json.patch", - "data/characters/main/junolea.json", - "data/characters/main/junolea.json.patch", - "data/database.json.patch", - "data/effects/skins/junolea.json", - "data/effects/skins/junolea.json.patch", - "data/item-database.json.patch", - "media/entity/player/junolea-hugging.png", - "media/entity/player/junolea-move-weak.png", - "media/entity/player/junolea-move.png", - "media/entity/player/junolea-poses-debug.png", - "media/entity/player/junolea-poses.png", - "media/entity/player/junolea-sleeping.png", - "media/entity/player/junolea-throw.png", - "media/face/junolea-hand.png", - "media/face/junolea-panic.png", - "media/face/junolea-special.png", - "media/face/junolea.png", - "media/gui/skins/junolea.png", - "media/map/baked/lea-bakii-kum-junolea.png", - "media/map/baked/lea-ctron-bakii-kum-junolea.png", - "media/map/baked/lea-server-junolea.png", - "media/map/baked/the-room-conversation-clear-junolea.png", - "media/map/baked/the-room-conversation-shelf-junolea.png", - "media/map/baked/tree-top-ctron-junolea.png" - ] - }, - "installation": [ - { - "type": "modZip", - "url": "https://github.com/Inevitabilis/CC-Junolea/archive/refs/tags/v1.0.0.zip", - "source": "CC-Junolea-1.0.0", - "hash": { - "sha256": "16b9dbbfa21c9fa18d8ed3048c842521039f0713c6cfc2a17f2d2e89f79bea2f" - } - } - ], - "stars": 1, - "lastUpdateTimestamp": 1628412087000 - }, - "localize-me": { - "metadata": { - "name": "Localize Me", - "license": "MIT", - "homepage": "https://github.com/L-Sherry/Localize-me", - "description": "Add support for more locales, languages and translations", - "postload": "mod.js", - "module": true, - "version": "0.6.0" - }, - "metadataCCMod": { - "id": "localize-me", - "version": "0.6.0", - "title": { - "en_US": "Localize Me", - "fr_FR": "Régionalisez-Moi", - "de_DE": "Lokalisiert mich" - }, - "description": { - "en_US": "Add support for more locales, languages and translations", - "fr_FR": "Ajoute la gestion de plus de locales, de languages et de traductions", - "de_DE": "Fügt Unterstützung für mehr Lokalen, Sprachen und Übersetzungen hinzu", - "ru_RU": "Мод для создания дополнительных региональных настроек, языков и переводов" - }, - "license": "MIT", - "homepage": "https://github.com/L-Sherry/Localize-Me", - "postload": "mod.js" - }, - "installation": [ - { - "type": "modZip", - "url": "https://github.com/L-Sherry/Localize-me/archive/v0.6.0.zip", - "source": "Localize-me-0.6.0", - "hash": { - "sha256": "98da8afe115cb453331ba96a70711bf22453703a921d1578b239aff14084702b" - } - } - ], - "stars": 5, - "lastUpdateTimestamp": 1598731033000 - }, - "logic-steps": { - "metadata": { - "name": "Logic Steps", - "version": "1.0.1", - "description": "Adds a couple custom patch steps that allow for control of logic flow.", - "homepage": "https://github.com/lexisother/logic-steps", - "module": true, - "postload": "postload.js", - "ccmodDependencies": { - "ccloader": ">=2.22.1" - } - }, - "metadataCCMod": { - "id": "logic-steps", - "version": "1.0.1", - "title": "Logic Steps", - "description": "Adds a couple custom patch steps that allow for control of logic flow.", - "postload": "postload.js", - "dependencies": { - "ccloader": ">=2.22.1" - } - }, - "installation": [ - { - "type": "modZip", - "url": "https://github.com/lexisother/logic-steps/archive/refs/tags/v1.0.1.zip", - "source": "logic-steps-1.0.1", - "hash": { - "sha256": "9fcde08ef4a637f3393f23a53b70bfdcc6805de2f21f6234f416d36691defd6a" - } - }, - { - "type": "ccmod", - "url": "https://github.com/lexisother/logic-steps/releases/download/v1.0.1/logic-steps.ccmod", - "hash": { - "sha256": "79ac505e9f8f5f948ecb1f9e33b8da330a352f95eee5d381dd697bd3cd93f730" - } - } - ], - "stars": 1, - "lastUpdateTimestamp": 1688564806000 - }, - "map-watch": { - "metadata": { - "name": "map-watch", - "ccmodHumanName": "Map Watcher", - "description": "A mod that automatically loads a map when changes are detected", - "version": "1.0.0", - "plugin": "plugin.js" - }, - "installation": [ - { - "type": "ccmod", - "url": "https://github.com/CCDirectLink/map-watch/releases/download/v1.0.1/map-watch.ccmod", - "hash": { - "sha256": "3aaed6cdb1fcacbdd9462a8929cb7cdc6cb2dd318abdc731279aede81b6a9107" - } - }, - { - "type": "modZip", - "url": "https://github.com/CCDirectLink/map-watch/archive/v1.0.1.zip", - "source": "map-watch-1.0.1", - "hash": { - "sha256": "d1418de1c414bd6e51d7f2a8a0ee8c29f5a9055bad1c074f25724707750ce2f1" - } - } - ] - }, - "menu-api": { - "metadata": { - "name": "menu-api", - "description": "Adds a menu to which mods can add their own buttons.", - "homepage": "https://gitlab.com/20kdc/ccprestartapi", - "version": "0.1.1", - "postload": "postload.js", - "prestart": "prestart.js", - "module": true - }, - "installation": [ - { - "type": "modZip", - "url": "https://github.com/CCDirectLink/menu-api/archive/v0.1.1.zip", - "source": "menu-api-0.1.1", - "hash": { - "sha256": "d52de73fbb2dd8406d971c201075b5942ee03540588dcd1fb857007cdf6266c0" - } - } - ] - }, - "menu-ui-replacer": { - "metadata": { - "name": "menu-ui-replacer", - "version": "1.0.2", - "description": "Replace Lea with the character of your choice in the menu!", - "prestart": "mod.js" - }, - "installation": [ - { - "type": "modZip", - "url": "https://github.com/CCDirectLink/cc-menu-ui-replacement/archive/v1.0.2.zip", - "source": "cc-menu-ui-replacement-1.0.2/cc-menu-ui-replacement", - "hash": { - "sha256": "80c342a466c6997f9fe54b0a8a866e0af80259412940d302f2d705de858843b0" - } - } - ] - }, - "mod-require-fix": { - "metadata": { - "name": "mod-require-fix", - "version": "1.0.1", - "description": "Assists in the usage of NPM packages from CrossCode mods.", - "homepage": "https://github.com/CCDirectLink/CCdiscord", - "preload": "preload.js", - "module": true - }, - "installation": [ - { - "type": "modZip", - "url": "https://github.com/CCDirectLink/mod-require-fix/archive/refs/tags/v1.0.1.zip", - "source": "mod-require-fix-1.0.1", - "hash": { - "sha256": "5a8a90cb72d52b9cd786a3f25c3dab1ab4b09d3dad9e8c744ae48281270b5a33" - } - } - ], - "stars": 6, - "lastUpdateTimestamp": 1697556236000 - }, - "nine-rooms": { - "metadata": { - "name": "nine-rooms", - "version": "0.1.0", - "description": "A little piece of lost history.", - "homepage": "https://github.com/Pyrocorvid/CCNineRooms" - }, - "metadataCCMod": { - "id": "nine-rooms", - "version": "0.1.0", - "title": "Nine Rooms", - "description": "A little piece of lost history.", - "homepage": "https://github.com/Pyrocorvid/CCNineRooms" - }, - "installation": [ - { - "type": "modZip", - "url": "https://github.com/Pyrocorvid/CCNineRooms/archive/refs/tags/v1.0.1.zip", - "source": "CCNineRooms-1.0.1/nine-rooms", - "hash": { - "sha256": "2a62c02cc322ef7a79c49352a5ab8b4098dfa2f10b2f8cb6b989ab2f6444822d" - } - } - ], - "stars": 1, - "lastUpdateTimestamp": 1649296678000 - }, - "past-booster": { - "metadata": { - "name": "past-booster", - "version": "0.1.0", - "description": "Makes the Nine Rooms mod a little more... post-gamey.", - "homepage": "https://github.com/Pyrocorvid/CCNineRooms", - "ccmodDependencies": { - "nine-rooms": ">=0.1.0" - } - }, - "metadataCCMod": { - "id": "past-booster", - "version": "0.1.0", - "title": "Past Booster", - "description": "Makes the Nine Rooms mod a little more... post-gamey.", - "homepage": "https://github.com/Pyrocorvid/CCNineRooms", - "dependencies": { - "nine-rooms": ">=0.1.0" - } - }, - "installation": [ - { - "type": "modZip", - "url": "https://github.com/Pyrocorvid/CCNineRooms/archive/refs/tags/v1.0.1.zip", - "source": "CCNineRooms-1.0.1/past-booster", - "hash": { - "sha256": "2a62c02cc322ef7a79c49352a5ab8b4098dfa2f10b2f8cb6b989ab2f6444822d" - } - } - ], - "stars": 1, - "lastUpdateTimestamp": 1649296678000 - }, - "readable-saves": { - "metadata": { - "name": "readable-saves", - "ccmodHumanName": "Readable saves", - "description": "Unencrypts the save file and adds an additional save format suitable for editing by hand", - "version": "1.0.0", - "license": "MIT", - "homepage": "https://github.com/dmitmel/crosscode-readable-saves", - "module": true, - "postload": "dist/postload.js", - "ccmodDependencies": { - "crosscode": "~1.2.0" - }, - "devDependencies": { - "typescript": "^3.8.3", - "ultimate-crosscode-typedefs": "dmitmel/ultimate-crosscode-typedefs" - }, - "scripts": { - "build": "tsc --build", - "watch": "tsc --watch" - } - }, - "installation": [ - { - "type": "modZip", - "url": "https://github.com/dmitmel/crosscode-readable-saves/releases/download/v1.0.0/crosscode-readable-saves_v1.0.0.zip", - "source": "crosscode-readable-saves", - "hash": { - "sha256": "d05d18d8923e7a62c35b6a9be97775b173710372ac5fac8a21507321a4284cfc" - } - } - ], - "stars": 1, - "lastUpdateTimestamp": 1668333525000 - }, - "slowmotion": { - "metadata": { - "name": "slowmotion", - "version": "0.1.1", - "license": "MIT", - "homepage": "https://github.com/CCDirectLink/CCSlowmotion", - "description": "Turns your C key into a slowmotion controller.", - "main": "mod.js" - }, - "installation": [ - { - "type": "ccmod", - "url": "https://github.com/CCDirectLink/CCSlowmotion/releases/download/v0.1.1/slowmotion.ccmod", - "hash": { - "sha256": "4f06f16fb6f42991e1ad7792bb6a3cdc61b38937939ca9ea9780528a76f6f2ee" - } - }, - { - "type": "modZip", - "url": "https://github.com/CCDirectLink/CCSlowmotion/archive/v0.1.1.zip", - "source": "CCSlowmotion-0.1.1/slowmotion", - "hash": { - "sha256": "95ffe20f8f611cd7a18b5b8f77c0437b60101badb11aefcd64597ef3b7ecdc6a" - } - } - ], - "stars": 1, - "lastUpdateTimestamp": 1590576241000 - }, - "timer": { - "metadata": { - "name": "timer", - "plugin": "plugin.js", - "homepage": "https://github.com/CCDirectLink/CCTimer", - "description": "A speedrun timer for CrossCode.", - "scripts": { - "start": "esbuild --target=es2018 --format=esm --platform=node --bundle --sourcemap=inline --outfile=plugin.js src/plugin.js", - "watch": "esbuild --target=es2018 --format=esm --platform=node --bundle --sourcemap=inline --watch --outfile=plugin.js src/plugin.js" - }, - "version": "3.0.0", - "ccmodDependencies": { - "ccloader": "^2.19.0", - "Simplify": "^2.9.0" - }, - "devDependencies": { - "esbuild": "^0.19.1", - "ws": "^8.13.0" - } - }, - "metadataCCMod": { - "id": "timer", - "version": "3.0.0", - "title": "CCTimer", - "description": "A speedrun timer for CrossCode.", - "icons": { - "24": "icon.png" - }, - "plugin": "plugin.js", - "dependencies": { - "ccloader": "^2.19.0", - "Simplify": "^2.9.0" - } - }, - "installation": [ - { - "type": "modZip", - "url": "https://github.com/CCDirectLink/CCTimer/releases/download/v3.0.0/CCTimer.zip", - "source": "CCTimer", - "hash": { - "sha256": "7ba4327609e3ff0b29d2921af7d9255fbeae9dfe3d4fc035f93e99312f7ff2bb" - } - } - ], - "stars": 2, - "lastUpdateTimestamp": 1692199567000 - }, - "timewalker": { - "metadata": { - "name": "timewalker", - "license": "MIT", - "homepage": "https://github.com/CCDirectLink/CCTimeWalker", - "description": "Lets you control time.", - "plugin": "walker.js", - "version": "0.3.0", - "ccmodDependencies": { - "crosscode": "^1.1.0" - } - }, - "installation": [ - { - "type": "ccmod", - "url": "https://github.com/CCDirectLink/CCTimeWalker/releases/download/v0.3.0/CCTimeWalker.ccmod", - "hash": { - "sha256": "61da7efea85cdcd39c5bb297cea54dd57b2cccdb0dcb48d807c0eb7b66eaffbf" - } - }, - { - "type": "modZip", - "url": "https://github.com/CCDirectLink/CCTimeWalker/archive/v0.3.0.zip", - "source": "CCTimeWalker-0.3.0", - "hash": { - "sha256": "a7e80ba0478803b52b26ec3d8ba7041fa3396b8aba049e11c2511ac9ed0d0fc0" - } - } - ], - "stars": 1, - "lastUpdateTimestamp": 1599128445000 - }, - "uwuifier": { - "metadata": { - "name": "uwuifier", - "version": "1.0.2", - "description": "Dynamically uwuifies text.", - "homepage": "https://github.com/WatDuhHekBro/cc-uwuifier", - "prestart": "prestart.js", - "module": true, - "ccmodDependencies": {} - }, - "installation": [ - { - "type": "ccmod", - "url": "https://github.com/WatDuhHekBro/cc-uwuifier/releases/download/v1.0.2/uwuifier.ccmod", - "hash": { - "sha256": "295b8019d74e0a9bf9a8ff9aa4b48d25694028bc727bc3a830daeb23b4efef3e" - } - } - ], - "stars": 3, - "lastUpdateTimestamp": 1636657887000 - }, - "world-map-overhaul": { - "metadata": { - "name": "world-map-overhaul", - "ccmodHumanName": "World map overhaul", - "description": "A better world map", - "homepage": "https://github.com/dmitmel/cc-world-map-overhaul", - "version": "1.1.2", - "prestart": "prestart.js", - "assets": [ - "media/gui/better-world-map/overlays/colored/arid.png", - "media/gui/better-world-map/overlays/colored/autumn-area.png", - "media/gui/better-world-map/overlays/colored/autumn-fall.png", - "media/gui/better-world-map/overlays/colored/beach.png", - "media/gui/better-world-map/overlays/colored/bergen-trails.png", - "media/gui/better-world-map/overlays/colored/final-dng.png", - "media/gui/better-world-map/overlays/colored/forest.png", - "media/gui/better-world-map/overlays/colored/heat-area.png", - "media/gui/better-world-map/overlays/colored/jungle.png", - "media/gui/better-world-map/overlays/colored/rookie-harbor.png", - "media/gui/better-world-map/overlays/default/arid.png", - "media/gui/better-world-map/overlays/default/autumn-area.png", - "media/gui/better-world-map/overlays/default/autumn-fall.png", - "media/gui/better-world-map/overlays/default/beach.png", - "media/gui/better-world-map/overlays/default/bergen-trails.png", - "media/gui/better-world-map/overlays/default/final-dng.png", - "media/gui/better-world-map/overlays/default/forest.png", - "media/gui/better-world-map/overlays/default/heat-area.png", - "media/gui/better-world-map/overlays/default/jungle.png", - "media/gui/better-world-map/overlays/default/rookie-harbor.png", - "media/gui/better-world-map/overlays/reveal/arid.png", - "media/gui/better-world-map/overlays/reveal/autumn-area.png", - "media/gui/better-world-map/overlays/reveal/autumn-fall.png", - "media/gui/better-world-map/overlays/reveal/beach.png", - "media/gui/better-world-map/overlays/reveal/bergen-trails.png", - "media/gui/better-world-map/overlays/reveal/final-dng.png", - "media/gui/better-world-map/overlays/reveal/forest.png", - "media/gui/better-world-map/overlays/reveal/heat-area.png", - "media/gui/better-world-map/overlays/reveal/jungle.png", - "media/gui/better-world-map/overlays/reveal/rookie-harbor.png", - "media/gui/better-world-map/patched-area-buttons.png", - "media/gui/better-world-map/sea.png" - ] - }, - "metadataCCMod": { - "id": "world-map-overhaul", - "version": "1.1.2", - "title": "World map overhaul", - "description": { - "en_US": "A better world map", - "ru_RU": "Улучшенная карта мира" - }, - "homepage": "https://github.com/dmitmel/cc-world-map-overhaul", - "icons": { - "24": "icon24.png" - }, - "prestart": "prestart.js", - "assets": [ - "media/gui/better-world-map/overlays/colored/arid.png", - "media/gui/better-world-map/overlays/colored/autumn-area.png", - "media/gui/better-world-map/overlays/colored/autumn-fall.png", - "media/gui/better-world-map/overlays/colored/beach.png", - "media/gui/better-world-map/overlays/colored/bergen-trails.png", - "media/gui/better-world-map/overlays/colored/final-dng.png", - "media/gui/better-world-map/overlays/colored/forest.png", - "media/gui/better-world-map/overlays/colored/heat-area.png", - "media/gui/better-world-map/overlays/colored/jungle.png", - "media/gui/better-world-map/overlays/colored/rookie-harbor.png", - "media/gui/better-world-map/overlays/default/arid.png", - "media/gui/better-world-map/overlays/default/autumn-area.png", - "media/gui/better-world-map/overlays/default/autumn-fall.png", - "media/gui/better-world-map/overlays/default/beach.png", - "media/gui/better-world-map/overlays/default/bergen-trails.png", - "media/gui/better-world-map/overlays/default/final-dng.png", - "media/gui/better-world-map/overlays/default/forest.png", - "media/gui/better-world-map/overlays/default/heat-area.png", - "media/gui/better-world-map/overlays/default/jungle.png", - "media/gui/better-world-map/overlays/default/rookie-harbor.png", - "media/gui/better-world-map/overlays/reveal/arid.png", - "media/gui/better-world-map/overlays/reveal/autumn-area.png", - "media/gui/better-world-map/overlays/reveal/autumn-fall.png", - "media/gui/better-world-map/overlays/reveal/beach.png", - "media/gui/better-world-map/overlays/reveal/bergen-trails.png", - "media/gui/better-world-map/overlays/reveal/final-dng.png", - "media/gui/better-world-map/overlays/reveal/forest.png", - "media/gui/better-world-map/overlays/reveal/heat-area.png", - "media/gui/better-world-map/overlays/reveal/jungle.png", - "media/gui/better-world-map/overlays/reveal/rookie-harbor.png", - "media/gui/better-world-map/patched-area-buttons.png", - "media/gui/better-world-map/sea.png" - ] - }, - "installation": [ - { - "type": "ccmod", - "url": "https://github.com/dmitmel/cc-world-map-overhaul/releases/download/v1.1.2/world-map-overhaul_v1.1.2.ccmod", - "hash": { - "sha256": "78aa2526039c77e69252ccb3f3ff0e0ba6d4ba6c18a10a900002e6981d024a05" - } - }, - { - "type": "modZip", - "url": "https://github.com/dmitmel/cc-world-map-overhaul/releases/download/v1.1.2/world-map-overhaul_v1.1.2.zip", - "source": "world-map-overhaul", - "hash": { - "sha256": "03aa7cf573166a5a4b12c703bd63d7fd92f9bcf403ddc65cc7fd60b6ce2a97ca" - } - } - ], - "stars": 1, - "lastUpdateTimestamp": 1626540789000 - } -} \ No newline at end of file +{} \ No newline at end of file From 67600fa8be83e9abd41b3f321dd2bce3a1f3b0ac Mon Sep 17 00:00:00 2001 From: krypek Date: Fri, 16 Feb 2024 19:28:23 +0100 Subject: [PATCH 033/196] Update CCMOD-STANDARD.md --- CCMOD-STANDARD.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CCMOD-STANDARD.md b/CCMOD-STANDARD.md index b6e13e42..b8873445 100644 --- a/CCMOD-STANDARD.md +++ b/CCMOD-STANDARD.md @@ -43,7 +43,7 @@ "version": "0.5.7", "title": "CrossedEyes", "description": "Accessibility mod for CrossCode", - "homepage": "https://github.com/CCDirectLink/CrossedEyes", + "repository": "https://github.com/CCDirectLink/CrossedEyes", "tags": ["accessibility"], "authors": ["krypek", "2767mr"], "icons": { From 22d6350b2d24a9481ce30f2d307c3dab217530e7 Mon Sep 17 00:00:00 2001 From: krypek Date: Fri, 16 Feb 2024 19:29:00 +0100 Subject: [PATCH 034/196] Fix test invalid error message --- build/tests/npDatabase.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/tests/npDatabase.js b/build/tests/npDatabase.js index 1e11f9eb..8c8698fe 100644 --- a/build/tests/npDatabase.js +++ b/build/tests/npDatabase.js @@ -171,7 +171,7 @@ function testMetadataCCMod(jsonData, ccmod) { expect(ccmod.authors !== undefined && Array.isArray(ccmod.tags), - 'ccmod.tags (type: array) is missing or has wrong type').to.be.true; + 'ccmod.authors (type: array) is missing or has wrong type').to.be.true; }); if (ccmod.dependencies) { From 86b7fe60553a17e0111fcb15957680db159f44e8 Mon Sep 17 00:00:00 2001 From: krypek Date: Fri, 16 Feb 2024 19:29:18 +0100 Subject: [PATCH 035/196] Fix crash when old npDatabase.json is missing --- build/src/source.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/build/src/source.ts b/build/src/source.ts index 8fc895b7..786dc02e 100644 --- a/build/src/source.ts +++ b/build/src/source.ts @@ -135,13 +135,14 @@ export async function addStarsAndTimestampsToResults(result: PackageDB, oldDb?: for (const id in result) { const mod = result[id] + if (!mod) continue let fetchTimestamp = false let oldMod: Package | undefined if (oldDb) { const newVersion = mod.metadataCCMod?.version || mod.metadata?.version oldMod = oldDb[id] - const oldVersion = oldMod.metadataCCMod?.version || oldMod.metadata?.version - fetchTimestamp = oldVersion != newVersion || oldMod.lastUpdateTimestamp === undefined + const oldVersion = oldMod?.metadataCCMod?.version || oldMod?.metadata?.version + fetchTimestamp = oldVersion != newVersion || oldMod?.lastUpdateTimestamp === undefined } const res = await getStarsAndTimestamp(mod.metadata, mod.metadataCCMod, fetchTimestamp) From 201247a93740f9d3f3f3672eea7c03b07f87616d Mon Sep 17 00:00:00 2001 From: krypek Date: Fri, 16 Feb 2024 19:49:44 +0100 Subject: [PATCH 036/196] Add input-api, cc-blitzkrieg, cc-fancy-crash --- icons/cc-blitzkrieg.png | Bin 0 -> 7135 bytes icons/cc-fancy-crash.png | Bin 0 -> 6963 bytes input-locations-old.json | 369 +++++++++++++++++++++++++++++++++++++++ input-locations.json | 12 ++ mods.json | 51 +++++- npDatabase.json | 147 +++++++++++++++- todo.md | 2 + 7 files changed, 579 insertions(+), 2 deletions(-) create mode 100644 icons/cc-blitzkrieg.png create mode 100644 icons/cc-fancy-crash.png create mode 100644 input-locations-old.json create mode 100644 todo.md diff --git a/icons/cc-blitzkrieg.png b/icons/cc-blitzkrieg.png new file mode 100644 index 0000000000000000000000000000000000000000..5bc44a7d1c7013f8bf13794fbfd1b42c6083bdc4 GIT binary patch literal 7135 zcmd5>4Nz589=|ndcmyHWZC%!aKGtX^-TUr2_uPBeh!9v{QgTokmbUV7-+T17RiE)t z(efjbq9$1~L&&y?vK25%M_K!@9HYp}h>dc_%nY5>U9~|gn8NCR&V65pF9A_JZ|=wW z`2YUD-~azVXP8ULjEvL>6pbWFibzjO&V=W9c7=_E`=Leg9g=j}Ja%b$0QE329F*&oxN&ARXYw9J=wpvhw%E;`n_ z?@+=gvput;u1JYmkl%iP+1RGJXi}ASVEv=*2irZTM^4?csUrUm6JyKU*LQel-8JnN z_w>4LQB_3?UoZG{`%QUyX6GAkovNPs{p6}8XP1B5^jYP!*Cw{8qf0C550CngG<+U^ zS6jWOyrOx{?$q5$tHa|Se8qdiq2IlGd_}^zDQDVl4y*oG&g;cbMpK-Tv3SOgKb22f zx3;jQeA|Z8qw_PDI@(*u=2gZ;j~tP;r}e6`%JPqX{vo3LA-t)i@#+6ezbbWtTWP&! z?Dp8ZXJ$@no_X4FbIpO}M~~;cctc`)eH^*%r=OQ5kdss0jqPujKJ>Qt^6&5TRMh>r z@5X<(-PydTCg-c`9?`z;tf~3^QqPtVUzXONI_9jtXW{!>51kC(|C>(=M^E}NF>7sp zM$DXLNz0lePQ>h5aUim;Q);NqJC#a~PJ;xD@}&JWUy{bW!>-F3=WldCI%>Ts+1^b1 zqFB!Z^Ih(LIAgtq9%rm`vD+mfc1N+S*$f2{Rnw_KsSJ%6#8B+;qO%?}_Abjdnee-> z!yjx^7)Lh6H=)1;hIe*B(>XM(_mA7GaahHh%?@uWy!!e`H+>Vi;)KCiKvQ%WXW)Jy zpCil|F%mv|WcXe%^XzBG5PXdqx)v(U?w9Rf!1{2ZKs@{tJv@m9(Q~Na2P=vb+pr9G zj0tB68X030pzNpa140R_s@S&5=`n3?kJpqCyIX0CRVY$rs#BLn;KKZkImX};5V1}a zMh3L`LT0%^jm_=@l5}-rk6sqf^+*VA+=rs8I>IJ)X%Hf6qnPGWRU?W_6{=DV3dV^Y zpwpF`o9j{(7&jWA&ATn8jqwN%AUJ+2BV8W0tAdYK$y>niQzGWK=%UA^CyBM7Mrf< zA>cYlm(LANK^i})MD)JFA!gi0gh#%(_+tTS=D~GQQ)7k4L#wLP38CiEgnR}B`-1_+ zVW6H289%5ikOcXYdoGgc76T@MBjv(UNFS#WM(C)TkEl^xiAd@#5vdN$~7J&PF!Q&AXl6mW7Xzwd2m`KHNZ|xwUi*H>2*+>^GzC zVnnch1Bqtcdlv)fTw+947lV=L@mxKD(ZIxr&;pP+HL%_g0m=3u0)oHT1}32Q)q@7= znwUWYb>%i3KwZU%oQ8vu$e?SlPey%<5uy475|{SfyHG#_5hF6ZP>e(`1L>i`ixJ&i z3erR^mja{nh><@4Yv) z(gr66KGnk~1^>5a_!1HL_{_dw@egvE1|NIiyDAO6+n#>yu;=6$9KPuwmVb=To+wxi#|0e+wsXuB>}(eRfrR`YnwwoNeB*aK++# z-`%^a?wfDU#Qj#EKJ))!k44U2e&wmd1&_XBPV?GxcW(K6)9Q`4ei=J|R>}2yD(T8! z&KBJLg<23^+OWj@-@)kTuU%WeuC(~@%1>I9oJ^nmX&R; zMGvkz(r~0=SK+Hyr))G=C$`R$QeP@Qw!c27VoI7lV}I7Rq7raaIv=FQ0WON{Dg)06Tt-)l*TC-X+O{qptpn8=B^sp7lvqMzPtdTv)t*fZrj WmmVLr3jWt1rKe;hZ=O2m;a>syA$$A) literal 0 HcmV?d00001 diff --git a/icons/cc-fancy-crash.png b/icons/cc-fancy-crash.png new file mode 100644 index 0000000000000000000000000000000000000000..fc76c3d8647d633022a05336ddc28385a4417264 GIT binary patch literal 6963 zcmd5=3v3is6rHwE+aayQl(zD73k5|?Iy-OX&5Qz4O0g}WH02{yG~Mp*#1#mQECTXx zgNOnx@(l(BQ$C@BBnBc)B34nI+ndORtu&#L&cBK4gC6>-B36;0W4Rd%gRj!7AoJELd9s-ohCy6W0x zJIZVKS)x9&)Ls9hdeD%|)p2=cOG>uft-rec%n#AE6K_==Ty#Cm<6eL_ZJhe|%-q`p zk}joXH?U5sQ}`|GKI!);giMakD-8^5B8C zAxB0p9@D>Gvi!CGY@d=VJrYL#_e|B?i|NNw-p@LLr(W8+>6_FM>HXzKe&&yZk0yV) zZTOkVl?`h=S zIJ7x_WaOY%j$NBDep2l6@;CDvFMe{QrZn7rZ(HQz8C=A|{HB3X`xi}@uhid*J~jJ% zN<~C$$@0vK=PouyBxJoEH*|adOh`d=VaD{i92e^$cUa||y$(o7xjTKDJJ&YfQuyv1 z-8IW;aW5=%TAT}9I>(bIZy}de6M0EiRIFhvz$IytCfeXbB`vtfw;)&ri9XE+eUVT~U|v{Ll|X4WuWauG(uSM&#lt($%3D$(dJY-BuSAkX=!c z4Qde#v4c3nP%)&9?bxXxGR6}Rzy?$k9>``4_@+}Pei(o#pqx}AF~CPBG(>?%5`>D} zg6J?-fPx`!B4Gl7w8JzBV`P&>Ns@3g9>y4~n_6j6s# z(8v$INNMOugr~!B0B@u~EES2zRz(#ZL=YJ_cmy&58W3BEoQO3=0BITo!3oSvrVthp zT*|>p;=<*-|0)`zR%rqimXv`qcLEvfrSa6=ira5{5 zxC+vRheKnKMt3R}y=`!a8MR^Ic{48FSU{R-aCK}~Na4}Y$})CBsA)7IpFY9fU?7{M z@lbkJSPrsehf;T91qM~Z50b97W+JPtxk3&eOh~qLNV(9Op`>|T$z=6G)%hIZ!1=tH zUYkTpT_dbus+E$4BpBQR4ZQPZjb%oFyauf?GZJl+959Q(|u4dFS zn(b!PQVa{$ZXnjIW$Q@*JxmPC>PawSJwB|(FbYi!3(WwrL!q@g2}rPY5)k}j3r#@q z*&POIo|p~;HRsk9K+VOloVtP$%bj99O2wOYie{bE?y7C`K9`&*p})KM`k z+sno^$Hc%=1.0.2", + "crosscode": ">=1.4.0" + }, + "plugin": "plugin.js" + }, + "installation": [ + { + "type": "ccmod", + "url": "https://github.com/krypciak/cc-blitzkrieg/releases/download/v0.4.8/cc-blitzkrieg-0.4.8.ccmod", + "hash": { + "sha256": "eb88b197308a00273f6aeb713b9445f37aa1a4d161159aee243951da5c85bbd1" + } + } + ], + "stars": 0, + "lastUpdateTimestamp": 1708107327000 + }, + "cc-fancy-crash": { + "metadata": { + "name": "cc-fancy-crash", + "version": "1.0.8", + "description": "Better crash message", + "scripts": { + "start": "esbuild --target=es2018 --format=esm --platform=node --bundle --sourcemap=inline --outfile=plugin.js src/plugin.ts", + "watch": "esbuild --target=es2018 --format=esm --platform=node --bundle --sourcemap=inline --watch --outfile=plugin.js src/plugin.ts", + "build": "esbuild --target=es2018 --format=esm --platform=node --bundle --outfile='plugin.js' 'src/plugin.ts'", + "format": "prettier ./src -w" + }, + "author": "krypek", + "license": "GPLv3", + "homepage": "https://github.com/krypciak/cc-fancy-crash", + "devDependencies": { + "@types/node": "^11.6.0", + "@typescript-eslint/eslint-plugin": "^6.20.0", + "@typescript-eslint/parser": "^6.20.0", + "esbuild": "^0.20.0", + "typescript": "^5.3.3", + "ultimate-crosscode-typedefs": "github:krypciak/ultimate-crosscode-typedefs" + } + }, + "metadataCCMod": { + "id": "cc-fancy-crash", + "version": "1.0.8", + "title": "Fancy crash", + "description": "Better crash message", + "repository": "https://github.com/krypciak/cc-fancy-crash", + "tags": [ + "dev" + ], + "authors": "krypek", + "icons": { + "24": "icon/icon.png" + }, + "plugin": "plugin.js" + }, + "installation": [ + { + "type": "ccmod", + "url": "https://github.com/krypciak/cc-fancy-crash/releases/download/v1.0.8/cc-fancy-crash-1.0.8.ccmod", + "hash": { + "sha256": "4072312dfc3d9f99b0b33df61dc8470f96e53453c9b45b71d7e9ef83db24b7aa" + } + } + ], + "stars": 0, + "lastUpdateTimestamp": 1708109072000 + }, + "input-api": { + "metadata": { + "name": "input-api", + "version": "1.0.2", + "description": "Allows mods to add rebindable key bindings", + "license": "MIT", + "homepage": "https://github.com/CCDirectLink/input-api", + "module": true, + "postload": "postload.js" + }, + "metadataCCMod": { + "id": "input-api", + "version": "1.0.2", + "title": "input-api", + "description": "Allows mods to add rebindable key bindings", + "repository": "https://github.com/CCDirectLink/input-api", + "tags": [ + "library" + ], + "authors": "dmitmel", + "postload": "postload.js" + }, + "installation": [ + { + "type": "ccmod", + "url": "https://github.com/krypciak/input-api/releases/download/v1.0.2/input-api.ccmod", + "hash": { + "sha256": "0c3acb06a812f50237f69fd9d4b3b542f9cba6d583be5bf1082399c6a1ab9e08" + } + } + ], + "stars": 5, + "lastUpdateTimestamp": 1646924334000 + } +} \ No newline at end of file diff --git a/todo.md b/todo.md new file mode 100644 index 00000000..7a0d6efd --- /dev/null +++ b/todo.md @@ -0,0 +1,2 @@ +# change input-api to CCDirectLink when the PR is merged +# remove this file later From 87bc4abb2946ebd28e4aa9bfc5cd1f9750491a36 Mon Sep 17 00:00:00 2001 From: krypek Date: Fri, 16 Feb 2024 20:07:16 +0100 Subject: [PATCH 037/196] Add todo.md --- todo.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/todo.md b/todo.md index 7a0d6efd..4981136c 100644 --- a/todo.md +++ b/todo.md @@ -1,2 +1,3 @@ -# change input-api to CCDirectLink when the PR is merged -# remove this file later +change input-api to CCDirectLink when the PR is merged +change nax-ccuilib to nax when the PR is merged +remove this file later From 6285d19b0267a17056bcda9a58a2391116970588 Mon Sep 17 00:00:00 2001 From: krypek Date: Fri, 16 Feb 2024 20:34:23 +0100 Subject: [PATCH 038/196] Add 'fun' mod tag --- CCMOD-STANDARD.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CCMOD-STANDARD.md b/CCMOD-STANDARD.md index b8873445..bdd9d80f 100644 --- a/CCMOD-STANDARD.md +++ b/CCMOD-STANDARD.md @@ -31,6 +31,7 @@ - `ng+` - adds additional ng+ options - `cosmetic` - adds any kind of cosmetic things like skins, pets or menu skins - `pets` - add a pet +- `fun` - fun things not necessarily useful - `accessibility` - makes the game more accessible - `dev` - helps mod developers create mods - `library` - used by other mods From 5e1f4c7162f044befd936de250e07dc0686b836d Mon Sep 17 00:00:00 2001 From: krypek Date: Fri, 16 Feb 2024 21:00:44 +0100 Subject: [PATCH 039/196] Add 'cheats' mod tag --- CCMOD-STANDARD.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CCMOD-STANDARD.md b/CCMOD-STANDARD.md index bdd9d80f..1841b2e1 100644 --- a/CCMOD-STANDARD.md +++ b/CCMOD-STANDARD.md @@ -32,6 +32,7 @@ - `cosmetic` - adds any kind of cosmetic things like skins, pets or menu skins - `pets` - add a pet - `fun` - fun things not necessarily useful +- `cheats` - do things you're not supposed to do like spawn items or infinite gold - `accessibility` - makes the game more accessible - `dev` - helps mod developers create mods - `library` - used by other mods From 79614f934cb0eea0c5ea0d630e752d46714b5e95 Mon Sep 17 00:00:00 2001 From: krypek Date: Fri, 16 Feb 2024 21:03:42 +0100 Subject: [PATCH 040/196] Remove 'pet' mod tag --- CCMOD-STANDARD.md | 1 - 1 file changed, 1 deletion(-) diff --git a/CCMOD-STANDARD.md b/CCMOD-STANDARD.md index 1841b2e1..b25f9284 100644 --- a/CCMOD-STANDARD.md +++ b/CCMOD-STANDARD.md @@ -30,7 +30,6 @@ - `puzzle` - adds new puzzles or something puzzle related - `ng+` - adds additional ng+ options - `cosmetic` - adds any kind of cosmetic things like skins, pets or menu skins -- `pets` - add a pet - `fun` - fun things not necessarily useful - `cheats` - do things you're not supposed to do like spawn items or infinite gold - `accessibility` - makes the game more accessible From f8f4d86b07454e5c7ae77cbb98af941991332cba Mon Sep 17 00:00:00 2001 From: krypek Date: Fri, 16 Feb 2024 21:29:37 +0100 Subject: [PATCH 041/196] Add 'speedrun' mod tag --- CCMOD-STANDARD.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CCMOD-STANDARD.md b/CCMOD-STANDARD.md index b25f9284..f59773e6 100644 --- a/CCMOD-STANDARD.md +++ b/CCMOD-STANDARD.md @@ -32,6 +32,7 @@ - `cosmetic` - adds any kind of cosmetic things like skins, pets or menu skins - `fun` - fun things not necessarily useful - `cheats` - do things you're not supposed to do like spawn items or infinite gold +- `speedrun` - helps speedrunners with speedruns or practise - `accessibility` - makes the game more accessible - `dev` - helps mod developers create mods - `library` - used by other mods From b4fb067e632566069d96e07e50a6f04c71638737 Mon Sep 17 00:00:00 2001 From: krypek Date: Sun, 18 Feb 2024 10:43:40 +0100 Subject: [PATCH 042/196] Add 'widget' mod tag --- CCMOD-STANDARD.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CCMOD-STANDARD.md b/CCMOD-STANDARD.md index f59773e6..1e109675 100644 --- a/CCMOD-STANDARD.md +++ b/CCMOD-STANDARD.md @@ -33,6 +33,7 @@ - `fun` - fun things not necessarily useful - `cheats` - do things you're not supposed to do like spawn items or infinite gold - `speedrun` - helps speedrunners with speedruns or practise +- `widget` - adds a [CCUILib](https://github.com/conorlawton/nax-ccuilib) quick menu widget - `accessibility` - makes the game more accessible - `dev` - helps mod developers create mods - `library` - used by other mods From 815a343ea01e28bd8b82dd7f90aceba4188c8ee8 Mon Sep 17 00:00:00 2001 From: krypek Date: Sun, 18 Feb 2024 12:14:56 +0100 Subject: [PATCH 043/196] Remove legacy 'metadata' mod field from npDatabase.json --- build/src/db.ts | 10 +++++----- build/tests/npDatabase.js | 4 ++-- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/build/src/db.ts b/build/src/db.ts index 70cca577..f5adc4fb 100644 --- a/build/src/db.ts +++ b/build/src/db.ts @@ -60,14 +60,14 @@ export async function writeMods(db: PackageDB): Promise { if (!install) continue mods[name] = { - name: getStringFromLocalisedString(ccmod?.title || meta!.ccmodHumanName || name), + name: getStringFromLocalisedString(ccmod?.title || meta?.ccmodHumanName || name), description: getStringFromLocalisedString( ccmod?.description || - meta!.description || + meta?.description || 'A mod. (Description not available; contact mod author and have them add a description to their package.json file)' ), - license: ccmod?.license || meta!.license, - page: getRepositoryEntry(ccmod?.repository || ccmod?.homepage || meta!.homepage), /* old field, should be unused, kept for compatibility */ + license: ccmod?.license || meta?.license, + page: getRepositoryEntry(ccmod?.repository || ccmod?.homepage || meta?.homepage), /* old field, should be unused, kept for compatibility */ archive_link: install.url, hash: install.hash, version: ccmod?.version || meta!.version, @@ -128,7 +128,7 @@ function getInstallation(installations: InstallMethod[]): { url: string; hash: { async function buildEntry(result: PackageDB, meta: PkgMetadata | undefined, ccmod: PkgCCMod | undefined, inputs: InputLocation[]): Promise { result[ccmod?.id || meta!.name] = { - metadata: meta, + // metadata: meta, metadataCCMod: ccmod, installation: await generateInstallations(inputs), } diff --git a/build/tests/npDatabase.js b/build/tests/npDatabase.js index 8c8698fe..7f4e5cfe 100644 --- a/build/tests/npDatabase.js +++ b/build/tests/npDatabase.js @@ -35,8 +35,8 @@ function testPackage(jsonData, mod, name) { expect(mod !== null, 'package must not be null').to.be.true; - expect(typeof mod.metadata === 'object', - 'metadata (type: object) required').to.be.true; + // expect(typeof mod.metadata === 'object', + // 'metadata (type: object) required').to.be.true; // expect(Array.isArray(mod.metadata), // 'metadata (type: object) required').to.be.false; // expect(mod.metadata !== null, From cd6037b9c962befb8caa58bd6087354982152e5d Mon Sep 17 00:00:00 2001 From: krypek Date: Sun, 18 Feb 2024 12:23:08 +0100 Subject: [PATCH 044/196] Add Blades, cc-jetpack-widget, cc-character-widgets, CCPreserRevivalPlus --- icons/cc-character-widgets.png | Bin 0 -> 1160 bytes icons/cc-jetpack-widget.png | Bin 0 -> 1044 bytes input-locations.json | 17 ++++ mods.json | 63 +++++++++++- npDatabase.json | 181 ++++++++++++++++++++++----------- 5 files changed, 201 insertions(+), 60 deletions(-) create mode 100644 icons/cc-character-widgets.png create mode 100644 icons/cc-jetpack-widget.png diff --git a/icons/cc-character-widgets.png b/icons/cc-character-widgets.png new file mode 100644 index 0000000000000000000000000000000000000000..10a4508124951a47ac2ce46058bc7abe07bb3872 GIT binary patch literal 1160 zcmV;31b6$1P)6wSfmLOVgz4JvUv%4EV~;d*a|il0SnQ_ zSK&X51x=F&hd6X*j;_X;Ssht9muwS9f&A6P6B5?ZQ*KVcNno!odyOP`o4DucxDN z;Ui&>DF+n3R(h<$FN#wY{!na2!gJtKJ+;&yj{RXhZDxhXg-5cPf?hq3x=B|ex40m6 zQ05R8VFLKkh*4mj3^rb=ImxWP&sX-%lNXOJe}f{XI8vm=>k+jeT@zB1q9^3bP*l19 z&(lgyPE@*g`JwgMao$IvZ5Mt@j`Mx&I6o)Q`~;V|nm;c&O@E4Bs%ayK;NF7stC|+u zgNtn#cr>DBv@A8tbS0DUb_U(c(02zqD7WK*8#2KEnNO!m9iegU!XXXft$ zz7+rf010qNS#tmY4#NNd4#NS*Z>VGd00O{CL_t(Y4V9HYXj4%X#?K2eDav!G4uaz3 zKhQ<3gov0pBot}pB5p#KqJmB>;v@y>;807K;GiW)9bA&31i@DjLokv-9juEARu{Wu z2|CpKoxF2$-{sk-7hdjp=bZcd?mhS37oz00ZBqEj<#KAnXIkQDFCjw-2Ck`{PDgEH z?8r#jnT{O`M~*FKUU?;jLV-%95?&&hzX@oT1Jl8_-}AifAP6{CE|()BaRP~OQE^3D ztrmwWm5Pd_B{}RFUPzDg>%jc>ejI1pKU@w|hF$;b5QeRhJ;6#$^RNmLu{TI(4uPx7 z_v!llD-y5(MaA|1`tn3Vn7vml7Acd-=m}6bmOb|NlO~JtKEKH3#Kbx3cHfAbdl7d< zuo9Fg7LFC5RjXC*i@Wx5-=#$o5dr7FH91CMY4IZE(mk*@%!Ok>@cSn^f{=)iSK zp8Xi(P6i?@V8c0khaZ6ERz?Z!gHyD0=K{lPwc02US}7MkcB9Rq`phiP7BiOexPY|> z#}tSd#^4#8J*t;6jU(oY%&qLEzL^;sP77+j|6-j^wP*Qs33c-J2FL3&H^rsB99_O> z@`C8g=kpBIjSGihLs5Kn^=_OnDVaG2;LB<*TC4!#5fM1zT3pSMCve!Z z2e9p?<+34mg6)@?qvkdo`3kZJTXyV9Z1_JgEL^+^5q`{#R~tUl;z#_CH-tpM0>__x aQu_m82UU(7#;{!g0000N_@`>6|omC?~mv1dAWNILUG&3`t`$*b@E;!7S-k#7PZD_ zLbTJ&80d!YPR`84sX0DwsZ;f4NcF0{@88j~V)_QuH3^Ryu9p{{5RR|qUBz3%okm7q z5k3$e^yGlTmr74n_(^fP!f%SbWMT?Js;8Fz#i?IxWW22KfN*ctE*L-OQ8$U0&fKij zZkav!B#043BSnE#Z1N0AbtJR@eZ$|rX>#H*rM;~JWmDp~!kb9@KMb$OyI*xiGE+26MO1;@E(@S`Hf zhyVZp32;bRa{vGi!vFvd!vV){sAK>D0!>LoK~zW$rByv^8$l4AU4(=SDaCK` zr3jY6#!`x?2c5ja;U6v-rj&ix|Y{ZPDR;x;-LO~GFd_JdQu}EPUQa+!j z!C*j2DTiRd9oTq0cD6B;??_t%44@1Sodga5pUk*!5fU7}#={5i_xrIcM=ncN5?v@1 zYPw0_k`|6b=J;0kgV;A z-Gj8A0}KPJW}6YAliH=zzm%>e;daaiC0wc)eav#eV>N)**Q8jMTjV O0000=1.2.3" + }, + "plugin": "plugin.js" }, + "installation": [ + { + "type": "ccmod", + "url": "https://github.com/krypciak/cc-character-widgets/releases/download/v1.0.0/cc-character-widgets-1.0.0.ccmod", + "hash": { + "sha256": "64fe713374289d4e9e164afa6e23b96ab3f397323f0e37977fb6ffc1fd70122b" + } + } + ], + "stars": 0, + "lastUpdateTimestamp": 1708253385000 + }, + "cc-fancy-crash": { "metadataCCMod": { "id": "cc-fancy-crash", "version": "1.0.8", @@ -109,16 +121,41 @@ "stars": 0, "lastUpdateTimestamp": 1708109072000 }, - "input-api": { - "metadata": { - "name": "input-api", - "version": "1.0.2", - "description": "Allows mods to add rebindable key bindings", - "license": "MIT", - "homepage": "https://github.com/CCDirectLink/input-api", - "module": true, - "postload": "postload.js" + "cc-jetpack-widget": { + "metadataCCMod": { + "id": "cc-jetpack-widget", + "version": "1.0.1", + "title": "Jetpack widget", + "description": "Adds a jetpack quick menu widget", + "repository": "https://github.com/krypciak/cc-jetpack-widget", + "tags": [ + "widget", + "speedrun", + "fun", + "cheats" + ], + "authors": "krypek", + "icons": { + "24": "icon/icon.png" + }, + "dependencies": { + "nax-ccuilib": ">=1.2.3" + }, + "plugin": "plugin.js" }, + "installation": [ + { + "type": "ccmod", + "url": "https://github.com/krypciak/cc-jetpack-widget/releases/download/v1.0.1/cc-jetpack-widget-1.0.1.ccmod", + "hash": { + "sha256": "fa0d7f74e443030dcf5615e08ff4fc20a2d38b08d8d9e1ca78eda32f3c394c0c" + } + } + ], + "stars": 0, + "lastUpdateTimestamp": 1708253819000 + }, + "input-api": { "metadataCCMod": { "id": "input-api", "version": "1.0.2", @@ -142,5 +179,35 @@ ], "stars": 5, "lastUpdateTimestamp": 1646924334000 + }, + "preset-revival-plus": { + "metadataCCMod": { + "id": "preset-revival-plus", + "version": "2.1.1", + "title": "Preset Revival Plus", + "description": "Brings back the preset menu, which allows you to start the game at a specific point.", + "repository": "https://github.com/EpicYoshiMaster/CCPresetRevivalPlus", + "tags": [ + "speedrun", + "dev" + ], + "authors": [ + "ac2pic", + "2767mr", + "EpicYoshiMaster" + ], + "prestart": "prestart.js" + }, + "installation": [ + { + "type": "ccmod", + "url": "https://github.com/EpicYoshiMaster/CCPresetRevivalPlus/releases/download/2.1.1/CCPresetRevivalPlus.v2.1.1.ccmod", + "hash": { + "sha256": "19aa49547dfd4fe686be1e490b6b004ef36250d057de896984a91c11bf2adb77" + } + } + ], + "stars": 0, + "lastUpdateTimestamp": 1708116396000 } } \ No newline at end of file From 3b4f2682c955ef2f5a46b83ba4424d6f417987a3 Mon Sep 17 00:00:00 2001 From: krypek Date: Sun, 18 Feb 2024 22:18:59 +0100 Subject: [PATCH 045/196] Add 'language' mod tag --- CCMOD-STANDARD.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CCMOD-STANDARD.md b/CCMOD-STANDARD.md index 1e109675..eaf066be 100644 --- a/CCMOD-STANDARD.md +++ b/CCMOD-STANDARD.md @@ -34,6 +34,7 @@ - `cheats` - do things you're not supposed to do like spawn items or infinite gold - `speedrun` - helps speedrunners with speedruns or practise - `widget` - adds a [CCUILib](https://github.com/conorlawton/nax-ccuilib) quick menu widget +- `language` - adds a new language - `accessibility` - makes the game more accessible - `dev` - helps mod developers create mods - `library` - used by other mods From b172384e8da5281985334fc7d633e8f5cf5d1b65 Mon Sep 17 00:00:00 2001 From: krypek Date: Mon, 19 Feb 2024 16:36:52 +0100 Subject: [PATCH 046/196] Add 'base' mod tag --- CCMOD-STANDARD.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CCMOD-STANDARD.md b/CCMOD-STANDARD.md index eaf066be..290992d6 100644 --- a/CCMOD-STANDARD.md +++ b/CCMOD-STANDARD.md @@ -38,6 +38,7 @@ - `accessibility` - makes the game more accessible - `dev` - helps mod developers create mods - `library` - used by other mods +- `base` - used by stuff like CCLoader ## Example `ccmod.json` From 0e840c55304cfcceae4c4d50fac243061e7b96b8 Mon Sep 17 00:00:00 2001 From: krypek Date: Mon, 19 Feb 2024 17:00:43 +0100 Subject: [PATCH 047/196] Add ccmodPath possible field in input-fields.json --- build/src/db.ts | 2 +- build/src/source.ts | 12 +++++++----- build/src/types.d.ts | 1 + 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/build/src/db.ts b/build/src/db.ts index f5adc4fb..b265b48b 100644 --- a/build/src/db.ts +++ b/build/src/db.ts @@ -70,7 +70,7 @@ export async function writeMods(db: PackageDB): Promise { page: getRepositoryEntry(ccmod?.repository || ccmod?.homepage || meta?.homepage), /* old field, should be unused, kept for compatibility */ archive_link: install.url, hash: install.hash, - version: ccmod?.version || meta!.version, + version: ccmod?.version || meta?.version || 'unknown', } } diff --git a/build/src/source.ts b/build/src/source.ts index 786dc02e..5eea1a2c 100644 --- a/build/src/source.ts +++ b/build/src/source.ts @@ -32,7 +32,8 @@ export async function get(input: InputLocation): Promise { console.log(e) throw e } - if (!pkg.ccmod && !pkg.meta) throw new Error(`A mod has to either have a package.json or a ccmod.json: ${input}`) + if (!pkg.ccmod && !pkg.meta) + throw new Error(`A mod has to either have a package.json or a ccmod.json: ${input.type == 'ccmod' ? input.url : input.type == 'modZip' ? input.urlZip : ''}`) const iconPath = getModIconPath(pkg) if (iconPath) { const imgData = await fileFetchFunc(input, iconPath, false) @@ -66,9 +67,10 @@ async function getModZipFile(zip: ModZipInputLocation, fileName: string, pars } function modZipPath(zip: ModZipInputLocation, fileName: string): string { - if (fileName === 'package.json' && zip.packageJSONPath) { - return zip.packageJSONPath - } + if (fileName === 'package.json' && zip.packageJSONPath) return zip.packageJSONPath + + if (fileName === 'ccmod.json' && zip.ccmodPath) return zip.ccmodPath + if (zip.source) { return `${zip.source}/${fileName}` } @@ -172,7 +174,7 @@ async function getStarsAndTimestamp( ccmod: PkgCCMod | undefined, fetchTimestamp: boolean ): Promise<{ stars: number; timestamp?: number } | undefined> { - const homepageArr = getRepositoryEntry(ccmod?.repository || meta!.homepage) + const homepageArr = getRepositoryEntry(ccmod?.repository || meta?.homepage) if (homepageArr.length == 0) return if (homepageArr.length > 1) throw new Error('Multi page star counting not supported') const { name, url } = homepageArr[0] diff --git a/build/src/types.d.ts b/build/src/types.d.ts index 377de720..cf538d24 100644 --- a/build/src/types.d.ts +++ b/build/src/types.d.ts @@ -16,6 +16,7 @@ declare type ModZipInputLocation = { // If provided, then the package.json file is at this location in the archive, regardless of 'source'. // This must pretty much only be used for base packages. packageJSONPath?: string + ccmodPath?: string } declare type CCModInputLocation = { From 78e2e8dda47b31641973ca89489623d89d9b6d22 Mon Sep 17 00:00:00 2001 From: krypek Date: Mon, 19 Feb 2024 19:11:14 +0100 Subject: [PATCH 048/196] Add ccloader, ccloader-version-display, cc-element-boss, item-api, cc-extra-dialogue, cc-vim --- icons/cc-extra-dialogue.png | Bin 0 -> 908 bytes icons/cc-vim.png | Bin 0 -> 1105 bytes icons/item-api.png | Bin 0 -> 738 bytes input-locations.json | 28 +++++++ mods.json | 80 ++++++++++++++++++++ npDatabase.json | 142 ++++++++++++++++++++++++++++++++++++ 6 files changed, 250 insertions(+) create mode 100644 icons/cc-extra-dialogue.png create mode 100644 icons/cc-vim.png create mode 100644 icons/item-api.png diff --git a/icons/cc-extra-dialogue.png b/icons/cc-extra-dialogue.png new file mode 100644 index 0000000000000000000000000000000000000000..70c26e55a5d6361641b71c7d3d33f26dc83336cd GIT binary patch literal 908 zcmV;719SX|P)EX>4Tx04R}tkv&MmKpe$iQ$>-AgGIDBWT*~eK~%(1s#pXIrLEAagUO{|(4-+r zad8w}3l4rPRvlcNb#-tR1i=pwH#a9m7b)?7NufoI2gm(*ckglc4iM^PrkWiSfT~$W zG8Ppx*;TRY6@Cn103nP?%+%wl#WXy}*FAiEy^HWH?{j~SUL|KTz$X&VG2O6;H;898 zEuHf|agY@yh4`F!+@K2*KXP4m`HgeIVS#4`jdXIJI7loO+E{L5Ry0)NY2vV=YLqWz zTvj-5aaPM!*1RWwVIZfiq_|FV7%?m%js!%=sG@{2EJSG4NHLM5{iugOS|jPHm>lansU4UDH8tyqcR2 zTYQ(C;eY>N-6q{D`8G(z>5$9LP%&V(%6~DGx&=b8~_qg#jfi{#v=Ip z#~Xlv6(kGg<;KO7rfEz$rAc&WS?5Cs3UzVOIr`)ti3RtNOivS7RpY84#)$9yT1;7nW&AtoV-NP2o19kj@An z2*+F*Q20{mdYPXT=ga)2*qup^gQj{$^S@aC#YVxkgnNa%EVF3*%%i>}lC@{2rFO{f z#3RWBaiZuHS;EApU#cyc{qGz2_D!-Z9z)&^tGMFGQxI=V)S`6FO3jI$mB(aN<^DHM zFE=z;?jDIl-D42Ec0+g@N?Sqjc^CwxBdB?RbGzbSmYhc3Mc=AuUHj0y4yP9tP2YjD z4QRi2(r)@&s*$bba`18jO(|%-hK7Z5RzK$)-@(k9{Guz^-Gd&v-@Nz*^ucHZiA)sI z00009a7bBm000kR000kR0jNKxX#fBMi%CR5R7ef2md}e)Q546&*Ky3IUy$@eE3k-J zMpH6GTNi;Xqr_E0^1WgfSKsj1SIaVNU(ROI^)D zHP(z!?YIDlia;loN+F$2kByJTVhEz5%g5#rO@7p++dUKt1;==L`OPO0N-1$&M;7sF zBH+(vv*2A;t5w@toVcv~<{Jb#s!>5vF)wcBmS6pUR%~uQ@GyaD43k542e*2_pN<#!ae}Q2(0c~erYoG!DR>$` z1usgEPI&bs!oiC1MQ4h|6&ncYpX%aEb5McPxg@)s$*{SE{Kp8GJD&h-<`|$4U zC5f?(p5Q)dF$^;~MTgw$woraELte=S9yejzxdo11zYwJtK1?-w@V9GiV6{j0_=jVO zM9d3ZFBhqgx@xN;ZCdL>uQoYHM-dbL@Vw{^$HC48E{$q-5lFd=a@amFF`x$K~yrS+g8fKS7l5CP|!70P1YO z6wyo6=asI)h7quzKDiQHbWWH56*TDS&_kQ^YKL|~otf5py$Ng(oG#J-w}S!T$Yj`m X6?-1E-8^AX00000NkvXXu0mjf_#_Qc literal 0 HcmV?d00001 diff --git a/icons/item-api.png b/icons/item-api.png new file mode 100644 index 0000000000000000000000000000000000000000..971b16fb7b663f2610254e38cabf30315c2fe6a7 GIT binary patch literal 738 zcmV<80v-K{P)e zSad^gZEa<4bO1wgWnpw>WFU8GbZ8()Nlj2!fese{00K%$L_t(Y$E8-!YZE~f{zifn zOzyBcSB3l0BL#Z&3 z`GDk^t9Ww%kmur+hrilo0sy8gQ8)6W9uwc4T3tDU1AL=O-YY^psUG4xvp{%qU*sYO zf4}>AB`S#xRL#6LB3i&LOdQ6aUqy{6(()}yboQGwUL9YIRg?3qRhy#Q9fiA_C?&?3SJ#_tgLM3rEF%Vqq26&z{Dc;&=67C$&ES zVBk`4b+nUfnt|=@YUfVoKKRPz=dk$Yr^jGoVbyb{X$Ho})6g_Sy#tHo1`!bz%MD7z z`|0D&VIrc|gx!N_niP%do@JV*xDzOpNe7M5B7wec)?CUhNJzNw?2X zP!sw%^l0ygo^rwQdu5S=Aj=}7r#GuCm#PEyKQmr_GCw(ZKQP9yZwCQ?Z2*A%1((OX UT>iY$f&c&j07*qoM6N<$f@^+6%>V!Z literal 0 HcmV?d00001 diff --git a/input-locations.json b/input-locations.json index 20a23879..7def97ec 100644 --- a/input-locations.json +++ b/input-locations.json @@ -1,4 +1,16 @@ [ + { + "type": "modZip", + "urlZip": "https://github.com/CCDirectLink/CCLoader/archive/refs/tags/v2.23.1/v2.13.0.zip", + "source": "CCLoader-2.23.1-v2.13.0", + "packageJSONPath": "CCLoader-2.23.1-v2.13.0/ccloader/package.json", + "ccmodPath": "CCLoader-2.23.1-v2.13.0/ccloader/ccmod.json" + }, + { + "type": "modZip", + "urlZip": "https://github.com/CCDirectLink/CCLoader/archive/refs/tags/v2.22.1/v2.12.1.zip", + "source": "CCLoader-2.22.1-v2.12.1/assets/mods/ccloader-version-display" + }, { "type": "ccmod", "url": "https://github.com/krypciak/input-api/releases/download/v1.0.2/input-api.ccmod" @@ -27,5 +39,21 @@ { "type": "ccmod", "url": "https://github.com/EpicYoshiMaster/CCPresetRevivalPlus/releases/download/2.1.1/CCPresetRevivalPlus.v2.1.1.ccmod" + }, + { + "type": "ccmod", + "url": "https://github.com/krypciak/cc-element-boss/releases/download/v0.1.3/element-boss-0.1.3.ccmod" + }, + { + "type": "ccmod", + "url": "https://github.com/CCDirectLink/item-api/releases/download/v0.4.4/item-api.ccmod" + }, + { + "type": "ccmod", + "url": "https://github.com/krypciak/cc-extra-dialogue/releases/download/v1.0.1/cc-extra-dialogue.ccmod" + }, + { + "type": "ccmod", + "url": "https://github.com/krypciak/cc-vim/releases/download/v1.5.5/cc-vim-1.5.5.ccmod" } ] diff --git a/mods.json b/mods.json index 2bb60407..c521fe90 100644 --- a/mods.json +++ b/mods.json @@ -1,5 +1,15 @@ { "mods": { + "CCLoader display version": { + "name": "CCLoader display version", + "description": "A mod. (Description not available; contact mod author and have them add a description to their package.json file)", + "page": [], + "archive_link": "https://github.com/CCDirectLink/CCLoader/archive/refs/tags/v2.22.1/v2.12.1.zip", + "hash": { + "sha256": "7ab3d850b5368dda4593318fd3e957e0bc46128e25844eeda97ca0eec16b343a" + }, + "version": "unknown" + }, "blades": { "name": "Blades", "description": "Asset which replaces balls with blades, now for all classes!", @@ -45,6 +55,21 @@ }, "version": "1.0.0" }, + "cc-extra-dialogue": { + "name": "CrossCode Extra Dialogue", + "description": "Adds more lore-friendly dialogue for party members.", + "page": [ + { + "name": "GitHub", + "url": "https://github.com/Paradragon/cc-extra-dialogue" + } + ], + "archive_link": "https://github.com/krypciak/cc-extra-dialogue/releases/download/v1.0.1/cc-extra-dialogue.ccmod", + "hash": { + "sha256": "851d2c3aafcf7dda646e6ee80da3c99588a60f6735f2b8a64abb17cea9f85f5d" + }, + "version": "1.0.1" + }, "cc-fancy-crash": { "name": "Fancy crash", "description": "Better crash message", @@ -75,6 +100,46 @@ }, "version": "1.0.1" }, + "cc-vim": { + "name": "Vim Command Mode", + "description": "Adds a popup command prompt", + "page": [ + { + "name": "GitHub", + "url": "https://github.com/krypciak/cc-vim" + } + ], + "archive_link": "https://github.com/krypciak/cc-vim/releases/download/v1.5.5/cc-vim-1.5.5.ccmod", + "hash": { + "sha256": "c26c6e3e2d0a52242e226c89556d5e7820af78e71c436c2deeeb2525e550f201" + }, + "version": "1.5.5" + }, + "ccloader": { + "name": "ccloader", + "description": "A mod. (Description not available; contact mod author and have them add a description to their package.json file)", + "page": [], + "archive_link": "https://github.com/CCDirectLink/CCLoader/archive/refs/tags/v2.23.1/v2.13.0.zip", + "hash": { + "sha256": "6902af3fd73d95cf323a4ad659b716db8c6f4e4cce75ad3e11849f66cc325341" + }, + "version": "unknown" + }, + "element-boss": { + "name": "Element Boss", + "description": "Adds a new boss battle to the game.", + "page": [ + { + "name": "GitHub", + "url": "https://github.com/krypciak/cc-element-boss" + } + ], + "archive_link": "https://github.com/krypciak/cc-element-boss/releases/download/v0.1.3/element-boss-0.1.3.ccmod", + "hash": { + "sha256": "569d371c4bb151222e5d8cd1104115bfe6c5fe1b4325813e586e26ecbe0fbbb2" + }, + "version": "0.1.3" + }, "input-api": { "name": "input-api", "description": "Allows mods to add rebindable key bindings", @@ -90,6 +155,21 @@ }, "version": "1.0.2" }, + "item-api": { + "name": "Item API", + "description": "Allows custom items to be prepared in such a way that they 'just work'.", + "page": [ + { + "name": "GitHub", + "url": "https://github.com/CCDirectLink/item-api" + } + ], + "archive_link": "https://github.com/CCDirectLink/item-api/releases/download/v0.4.4/item-api.ccmod", + "hash": { + "sha256": "82523e959809c7b46cce0d7c702f9bf85f1981a80ac999be09782811fcaa33d0" + }, + "version": "0.4.4" + }, "preset-revival-plus": { "name": "Preset Revival Plus", "description": "Brings back the preset menu, which allows you to start the game at a specific point.", diff --git a/npDatabase.json b/npDatabase.json index 77ab17cb..d3ad4959 100644 --- a/npDatabase.json +++ b/npDatabase.json @@ -1,4 +1,16 @@ { + "CCLoader display version": { + "installation": [ + { + "type": "modZip", + "url": "https://github.com/CCDirectLink/CCLoader/archive/refs/tags/v2.22.1/v2.12.1.zip", + "source": "CCLoader-2.22.1-v2.12.1/assets/mods/ccloader-version-display", + "hash": { + "sha256": "7ab3d850b5368dda4593318fd3e957e0bc46128e25844eeda97ca0eec16b343a" + } + } + ] + }, "blades": { "metadataCCMod": { "id": "blades", @@ -93,6 +105,34 @@ "stars": 0, "lastUpdateTimestamp": 1708253385000 }, + "cc-extra-dialogue": { + "metadataCCMod": { + "id": "cc-extra-dialogue", + "version": "1.0.1", + "title": "CrossCode Extra Dialogue", + "description": "Adds more lore-friendly dialogue for party members.", + "repository": "https://github.com/Paradragon/cc-extra-dialogue", + "tags": [ + "QoL" + ], + "authors": "Paradragon", + "icons": { + "24": "icon.png" + }, + "prestart": "prestart.js" + }, + "installation": [ + { + "type": "ccmod", + "url": "https://github.com/krypciak/cc-extra-dialogue/releases/download/v1.0.1/cc-extra-dialogue.ccmod", + "hash": { + "sha256": "851d2c3aafcf7dda646e6ee80da3c99588a60f6735f2b8a64abb17cea9f85f5d" + } + } + ], + "stars": 5, + "lastUpdateTimestamp": 1633371453000 + }, "cc-fancy-crash": { "metadataCCMod": { "id": "cc-fancy-crash", @@ -155,6 +195,74 @@ "stars": 0, "lastUpdateTimestamp": 1708253819000 }, + "cc-vim": { + "metadataCCMod": { + "id": "cc-vim", + "version": "1.5.5", + "title": "Vim Command Mode", + "description": "Adds a popup command prompt", + "repository": "https://github.com/krypciak/cc-vim", + "tags": [ + "dev" + ], + "authors": "krypek", + "icons": { + "24": "icon/icon.png" + }, + "dependencies": { + "input-api": ">=1.0.0" + }, + "plugin": "plugin.js" + }, + "installation": [ + { + "type": "ccmod", + "url": "https://github.com/krypciak/cc-vim/releases/download/v1.5.5/cc-vim-1.5.5.ccmod", + "hash": { + "sha256": "c26c6e3e2d0a52242e226c89556d5e7820af78e71c436c2deeeb2525e550f201" + } + } + ], + "stars": 1, + "lastUpdateTimestamp": 1708366049000 + }, + "ccloader": { + "installation": [ + { + "type": "modZip", + "url": "https://github.com/CCDirectLink/CCLoader/archive/refs/tags/v2.23.1/v2.13.0.zip", + "source": "CCLoader-2.23.1-v2.13.0", + "hash": { + "sha256": "6902af3fd73d95cf323a4ad659b716db8c6f4e4cce75ad3e11849f66cc325341" + } + } + ] + }, + "element-boss": { + "metadataCCMod": { + "id": "element-boss", + "version": "0.1.3", + "title": "Element Boss", + "description": "Adds a new boss battle to the game.", + "repository": "https://github.com/krypciak/cc-element-boss", + "tags": [ + "boss" + ], + "authors": "sgrunt", + "main": "mod.js" + }, + "installation": [ + { + "type": "ccmod", + "url": "https://github.com/krypciak/cc-element-boss/releases/download/v0.1.3/element-boss-0.1.3.ccmod", + "hash": { + "sha256": "569d371c4bb151222e5d8cd1104115bfe6c5fe1b4325813e586e26ecbe0fbbb2" + } + } + ], + "stars": 0, + "lastUpdateTimestamp": 1708290993000 + }, "input-api": { "metadataCCMod": { "id": "input-api", @@ -180,6 +288,40 @@ "stars": 5, "lastUpdateTimestamp": 1646924334000 }, + "item-api": { + "metadataCCMod": { + "id": "item-api", + "version": "0.4.4", + "title": "Item API", + "description": "Allows custom items to be prepared in such a way that they 'just work'.", + "repository": "https://github.com/CCDirectLink/item-api", + "tags": [ + "library" + ], + "authors": [ + "elluminance", + "dmitmel", + "hsifnus", + "ac2pic" + ], + "icons": { + "24": "icon-24.png" + }, + "postload": "postload.js", + "prestart": "prestart.js" + }, + "installation": [ + { + "type": "ccmod", + "url": "https://github.com/CCDirectLink/item-api/releases/download/v0.4.4/item-api.ccmod", + "hash": { + "sha256": "82523e959809c7b46cce0d7c702f9bf85f1981a80ac999be09782811fcaa33d0" + } + } + ], + "stars": 1, + "lastUpdateTimestamp": 1708294841000 + }, "preset-revival-plus": { "metadataCCMod": { "id": "preset-revival-plus", From 9e9883d8892da806ed21168f8bb44b36e7181c6f Mon Sep 17 00:00:00 2001 From: krypek Date: Mon, 19 Feb 2024 19:11:18 +0100 Subject: [PATCH 049/196] Add todo.md --- todo.md | 63 ++++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 60 insertions(+), 3 deletions(-) diff --git a/todo.md b/todo.md index 4981136c..f1b23403 100644 --- a/todo.md +++ b/todo.md @@ -1,3 +1,60 @@ -change input-api to CCDirectLink when the PR is merged -change nax-ccuilib to nax when the PR is merged -remove this file later + + +# todo + +## PR's in progress + +### CCDirectLink + +- https://github.com/CCDirectLink/input-api/pull/2 +- https://github.com/CCDirectLink/CC-ChargedBalls/pull/2 +- https://github.com/CCDirectLink/CCJetpack/pull/8 +- https://github.com/CCDirectLink/CCNewGamePP/pull/4 +- https://github.com/CCDirectLink/CCdiscord/pull/20 +- https://github.com/CCDirectLink/CCTimeWalker/pull/7 +- https://github.com/CCDirectLink/CCTimer/pull/6 +- https://github.com/CCDirectLink/extendable-severed-heads/pull/7 +- https://github.com/CCDirectLink/cc-menu-ui-replacement/pull/1 +- https://github.com/CCDirectLink/CCLoader/pull/104 (includes cc-display-version and simplify) +- https://github.com/CCDirectLink/map-watch/pull/3 + +### Nax + +- https://github.com/conorlawton/nax-module-cache/pull/1 +- https://github.com/conorlawton/CCInventorySearch/pull/5 (remind him of the other crash fix pr) +- https://github.com/conorlawton/nax-ccuilib/pull/4 + +### EL + +- https://github.com/EL20202/cc-capped-stats/pull/1 +- https://github.com/EL20202/crosscode-font-utils/pull/2 +- https://github.com/EL20202/el-crosscode-tweaks/pull/2 + +### Alyx + +- https://github.com/lexisother/CCPostDLC/pull/1 +- https://github.com/lexisother/CCOldMedia/pull/1 +- https://github.com/lexisother/cc-quickinfo-exp/pull/1 +- https://github.com/lexisother/logic-steps/pull/1 + +### Rest + +- https://github.com/XenonA7/qine/pull/1 +- https://github.com/Symphiel/CursedCode/pull/1 + +## PR's in progress but probably never merging + +- https://github.com/ZeikJT/CrossCodeCheats/pull/7 +- https://github.com/L-Sherry/Localize-me/pull/12 +- https://github.com/L-Sherry/French-CC/pull/19 +- https://github.com/rioreur/palicat/pull/3 +- https://github.com/tylercamp/CCJoystickExt/pull/1 +- https://github.com/L-Sherry/Bob-Rank/pull/1 +- https://github.com/dmitmel/cc-world-map-overhaul/pull/2 +- https://github.com/dmitmel/crosscode-readable-saves/pull/5 +- https://github.com/ubergeek77/CCExtraGamepadOptions/pull/3 +- https://github.com/WatDuhHekBro/cc-uwuifier/pull/4 +- https://github.com/dmitmel/crosscode-tweak-pack/pull/5 +- https://github.com/Inevitabilis/CC-Junolea/pull/1 +- https://github.com/Pyrocorvid/CCNineRooms/pull/2 +- https://github.com/CookieSalesman/CrossCode-HADOUKEN-v1.0/pull/2 From 872d9ad985c416077e81b2c8bbdbec1c0bf19895 Mon Sep 17 00:00:00 2001 From: krypek Date: Mon, 19 Feb 2024 19:18:52 +0100 Subject: [PATCH 050/196] Remove ccloader, cc-version-display for now --- input-locations.json | 12 ------------ mods.json | 20 -------------------- npDatabase.json | 24 ------------------------ 3 files changed, 56 deletions(-) diff --git a/input-locations.json b/input-locations.json index 7def97ec..38cb3775 100644 --- a/input-locations.json +++ b/input-locations.json @@ -1,16 +1,4 @@ [ - { - "type": "modZip", - "urlZip": "https://github.com/CCDirectLink/CCLoader/archive/refs/tags/v2.23.1/v2.13.0.zip", - "source": "CCLoader-2.23.1-v2.13.0", - "packageJSONPath": "CCLoader-2.23.1-v2.13.0/ccloader/package.json", - "ccmodPath": "CCLoader-2.23.1-v2.13.0/ccloader/ccmod.json" - }, - { - "type": "modZip", - "urlZip": "https://github.com/CCDirectLink/CCLoader/archive/refs/tags/v2.22.1/v2.12.1.zip", - "source": "CCLoader-2.22.1-v2.12.1/assets/mods/ccloader-version-display" - }, { "type": "ccmod", "url": "https://github.com/krypciak/input-api/releases/download/v1.0.2/input-api.ccmod" diff --git a/mods.json b/mods.json index c521fe90..a997002a 100644 --- a/mods.json +++ b/mods.json @@ -1,15 +1,5 @@ { "mods": { - "CCLoader display version": { - "name": "CCLoader display version", - "description": "A mod. (Description not available; contact mod author and have them add a description to their package.json file)", - "page": [], - "archive_link": "https://github.com/CCDirectLink/CCLoader/archive/refs/tags/v2.22.1/v2.12.1.zip", - "hash": { - "sha256": "7ab3d850b5368dda4593318fd3e957e0bc46128e25844eeda97ca0eec16b343a" - }, - "version": "unknown" - }, "blades": { "name": "Blades", "description": "Asset which replaces balls with blades, now for all classes!", @@ -115,16 +105,6 @@ }, "version": "1.5.5" }, - "ccloader": { - "name": "ccloader", - "description": "A mod. (Description not available; contact mod author and have them add a description to their package.json file)", - "page": [], - "archive_link": "https://github.com/CCDirectLink/CCLoader/archive/refs/tags/v2.23.1/v2.13.0.zip", - "hash": { - "sha256": "6902af3fd73d95cf323a4ad659b716db8c6f4e4cce75ad3e11849f66cc325341" - }, - "version": "unknown" - }, "element-boss": { "name": "Element Boss", "description": "Adds a new boss battle to the game.", diff --git a/npDatabase.json b/npDatabase.json index d3ad4959..26b10f19 100644 --- a/npDatabase.json +++ b/npDatabase.json @@ -1,16 +1,4 @@ { - "CCLoader display version": { - "installation": [ - { - "type": "modZip", - "url": "https://github.com/CCDirectLink/CCLoader/archive/refs/tags/v2.22.1/v2.12.1.zip", - "source": "CCLoader-2.22.1-v2.12.1/assets/mods/ccloader-version-display", - "hash": { - "sha256": "7ab3d850b5368dda4593318fd3e957e0bc46128e25844eeda97ca0eec16b343a" - } - } - ] - }, "blades": { "metadataCCMod": { "id": "blades", @@ -226,18 +214,6 @@ "stars": 1, "lastUpdateTimestamp": 1708366049000 }, - "ccloader": { - "installation": [ - { - "type": "modZip", - "url": "https://github.com/CCDirectLink/CCLoader/archive/refs/tags/v2.23.1/v2.13.0.zip", - "source": "CCLoader-2.23.1-v2.13.0", - "hash": { - "sha256": "6902af3fd73d95cf323a4ad659b716db8c6f4e4cce75ad3e11849f66cc325341" - } - } - ] - }, "element-boss": { "metadataCCMod": { "id": "element-boss", From f860c800e03c8949c16355a30b8d41fa82adfd32 Mon Sep 17 00:00:00 2001 From: krypek Date: Mon, 19 Feb 2024 20:26:43 +0100 Subject: [PATCH 051/196] Add cursedcode --- input-locations.json | 5 +++++ mods.json | 15 +++++++++++++++ npDatabase.json | 28 ++++++++++++++++++++++++++++ 3 files changed, 48 insertions(+) diff --git a/input-locations.json b/input-locations.json index 38cb3775..5feaa1c9 100644 --- a/input-locations.json +++ b/input-locations.json @@ -43,5 +43,10 @@ { "type": "ccmod", "url": "https://github.com/krypciak/cc-vim/releases/download/v1.5.5/cc-vim-1.5.5.ccmod" + }, + { + "type": "modZip", + "urlZip": "https://github.com/Symphiel/CursedCode/archive/refs/tags/0.1.1-2.zip", + "source": "CursedCode-0.1.1-2" } ] diff --git a/mods.json b/mods.json index a997002a..1f705b3a 100644 --- a/mods.json +++ b/mods.json @@ -105,6 +105,21 @@ }, "version": "1.5.5" }, + "cursedcode": { + "name": "CursedCode", + "description": "Cursed custom maps.", + "page": [ + { + "name": "GitHub", + "url": "https://github.com/Symphiel/CursedCode" + } + ], + "archive_link": "https://github.com/Symphiel/CursedCode/archive/refs/tags/0.1.1-2.zip", + "hash": { + "sha256": "7975f9d6862fdfa5066052a52b3e9174ab92df6ae7d8187101f40ca4ccfbd4af" + }, + "version": "0.1.2" + }, "element-boss": { "name": "Element Boss", "description": "Adds a new boss battle to the game.", diff --git a/npDatabase.json b/npDatabase.json index 26b10f19..16124630 100644 --- a/npDatabase.json +++ b/npDatabase.json @@ -214,6 +214,34 @@ "stars": 1, "lastUpdateTimestamp": 1708366049000 }, + "cursedcode": { + "metadataCCMod": { + "id": "cursedcode", + "version": "0.1.2", + "title": "CursedCode", + "description": "Cursed custom maps.", + "repository": "https://github.com/Symphiel/CursedCode", + "tags": [ + "speedrun", + "maps", + "puzzle" + ], + "authors": "Symphiel", + "prestart": "mod.js" + }, + "installation": [ + { + "type": "modZip", + "url": "https://github.com/Symphiel/CursedCode/archive/refs/tags/0.1.1-2.zip", + "source": "CursedCode-0.1.1-2", + "hash": { + "sha256": "7975f9d6862fdfa5066052a52b3e9174ab92df6ae7d8187101f40ca4ccfbd4af" + } + } + ], + "stars": 1, + "lastUpdateTimestamp": 1708368308000 + }, "element-boss": { "metadataCCMod": { "id": "element-boss", From e476fe816e0e1f9a98f3fe7881e932ee25ca0495 Mon Sep 17 00:00:00 2001 From: krypek Date: Mon, 19 Feb 2024 20:26:51 +0100 Subject: [PATCH 052/196] Update todo.md --- todo.md | 32 +++++++++++++++++++++++++------- 1 file changed, 25 insertions(+), 7 deletions(-) diff --git a/todo.md b/todo.md index f1b23403..f24dd121 100644 --- a/todo.md +++ b/todo.md @@ -29,20 +29,40 @@ - https://github.com/EL20202/cc-capped-stats/pull/1 - https://github.com/EL20202/crosscode-font-utils/pull/2 - https://github.com/EL20202/el-crosscode-tweaks/pull/2 +- https://github.com/EL20202/crosscode-extension-asset-preloader/pull/1 +- https://github.com/EL20202/crosscode-modifier-api-reborn/pull/1 ### Alyx - https://github.com/lexisother/CCPostDLC/pull/1 - https://github.com/lexisother/CCOldMedia/pull/1 - https://github.com/lexisother/cc-quickinfo-exp/pull/1 -- https://github.com/lexisother/logic-steps/pull/1 +- https://github.com/lexisother/cc-alybox/pull/1 -### Rest +### Xenon - https://github.com/XenonA7/qine/pull/1 -- https://github.com/Symphiel/CursedCode/pull/1 +- https://github.com/XenonA7/xenons-triblader-mod/pull/12 +- https://github.com/XenonA7/xmc-hexacast/pull/3 +- https://github.com/XenonA7/cc-party-element-effects/pull/2 +- https://github.com/XenonA7/xmc-hexacast-litter/pull/1 +- https://github.com/XenonA7/clean-title-screen/pull/1 + +### Rest + +- ~~https://github.com/Symphiel/CursedCode/pull/1~~ +- https://github.com/Hsifnus/autumns-genesis/pull/35 +- https://github.com/2hh8899/ArcaneLab/pull/18 -## PR's in progress but probably never merging +## PR's in progress but probably never merging (will need to make release on my fork if not merged) + +### Dmitmel + +- https://github.com/dmitmel/cc-world-map-overhaul/pull/2 +- https://github.com/dmitmel/crosscode-readable-saves/pull/5 +- https://github.com/dmitmel/crosscode-tweak-pack/pull/5 + +### Rest1 - https://github.com/ZeikJT/CrossCodeCheats/pull/7 - https://github.com/L-Sherry/Localize-me/pull/12 @@ -50,11 +70,9 @@ - https://github.com/rioreur/palicat/pull/3 - https://github.com/tylercamp/CCJoystickExt/pull/1 - https://github.com/L-Sherry/Bob-Rank/pull/1 -- https://github.com/dmitmel/cc-world-map-overhaul/pull/2 -- https://github.com/dmitmel/crosscode-readable-saves/pull/5 - https://github.com/ubergeek77/CCExtraGamepadOptions/pull/3 - https://github.com/WatDuhHekBro/cc-uwuifier/pull/4 -- https://github.com/dmitmel/crosscode-tweak-pack/pull/5 - https://github.com/Inevitabilis/CC-Junolea/pull/1 - https://github.com/Pyrocorvid/CCNineRooms/pull/2 - https://github.com/CookieSalesman/CrossCode-HADOUKEN-v1.0/pull/2 +- https://github.com/canbora/cc-named-saves/pull/2 From fa46906b28ab8c25dc783a4d87843dc3707d0e1a Mon Sep 17 00:00:00 2001 From: krypek <115574014+krypciak@users.noreply.github.com> Date: Mon, 19 Feb 2024 19:28:14 +0000 Subject: [PATCH 053/196] Update CCMOD-STANDARD.md --- CCMOD-STANDARD.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CCMOD-STANDARD.md b/CCMOD-STANDARD.md index 290992d6..fcbd8472 100644 --- a/CCMOD-STANDARD.md +++ b/CCMOD-STANDARD.md @@ -10,7 +10,8 @@ - `description` - Description shown to users. Can be localized - `homepage` (Optional) - Put your mod homepage link here (don't put your repository link here) - `repository` - Put your repository link here. Non GitHub links will be missing some [CCModManager](https://github.com/CCDirectLink/CCModManager) functionality -- `tags` (Optional) - A list of mod tags. Read what tags are availible below in Mod tag list +- `tags` (Optional) - A list of mod tags. Read what tags are availible below in Mod tag list. + If the first tag is `library` [CCModManager](https://github.com/CCDirectLink/CCModManager) will hide the mod by default. - `authors` - Either a string or an array of mod authors - `icons` (Optional) - Mod icon. Currently only the size of 24x24 pixels is supported - `dependencies` (Optional) - Require certain mods for the mod to function. Uses the [semver](https://semver.org/) format From c78fcd54e1c2cd7dbcf161435fce099092d152dc Mon Sep 17 00:00:00 2001 From: krypek Date: Mon, 19 Feb 2024 20:51:36 +0100 Subject: [PATCH 054/196] Add nine-rooms, past-booster --- CCMOD-STANDARD.md | 2 +- input-locations.json | 10 ++++++++ mods.json | 30 ++++++++++++++++++++++++ npDatabase.json | 55 ++++++++++++++++++++++++++++++++++++++++++++ todo.md | 7 +++++- 5 files changed, 102 insertions(+), 2 deletions(-) diff --git a/CCMOD-STANDARD.md b/CCMOD-STANDARD.md index fcbd8472..118d4b4d 100644 --- a/CCMOD-STANDARD.md +++ b/CCMOD-STANDARD.md @@ -11,7 +11,7 @@ - `homepage` (Optional) - Put your mod homepage link here (don't put your repository link here) - `repository` - Put your repository link here. Non GitHub links will be missing some [CCModManager](https://github.com/CCDirectLink/CCModManager) functionality - `tags` (Optional) - A list of mod tags. Read what tags are availible below in Mod tag list. - If the first tag is `library` [CCModManager](https://github.com/CCDirectLink/CCModManager) will hide the mod by default. + If the first tag is `library` [CCModManager](https://github.com/CCDirectLink/CCModManager) will hide the mod by default. - `authors` - Either a string or an array of mod authors - `icons` (Optional) - Mod icon. Currently only the size of 24x24 pixels is supported - `dependencies` (Optional) - Require certain mods for the mod to function. Uses the [semver](https://semver.org/) format diff --git a/input-locations.json b/input-locations.json index 5feaa1c9..e292b157 100644 --- a/input-locations.json +++ b/input-locations.json @@ -48,5 +48,15 @@ "type": "modZip", "urlZip": "https://github.com/Symphiel/CursedCode/archive/refs/tags/0.1.1-2.zip", "source": "CursedCode-0.1.1-2" + }, + { + "type": "modZip", + "urlZip": "https://github.com/Pyrocorvid/CCNineRooms/archive/refs/tags/v1.0.2.zip", + "source": "CCNineRooms-1.0.2/nine-rooms" + }, + { + "type": "modZip", + "urlZip": "https://github.com/Pyrocorvid/CCNineRooms/archive/refs/tags/v1.0.2.zip", + "source": "CCNineRooms-1.0.2/past-booster" } ] diff --git a/mods.json b/mods.json index 1f705b3a..b32b5236 100644 --- a/mods.json +++ b/mods.json @@ -165,6 +165,36 @@ }, "version": "0.4.4" }, + "nine-rooms": { + "name": "Nine Rooms", + "description": "A little piece of lost history.", + "page": [ + { + "name": "GitHub", + "url": "https://github.com/Pyrocorvid/CCNineRooms" + } + ], + "archive_link": "https://github.com/Pyrocorvid/CCNineRooms/archive/refs/tags/v1.0.2.zip", + "hash": { + "sha256": "92e33f6054472644a86dc3d3502d193455e32de31d05772299efae8bc1aca95f" + }, + "version": "0.1.0" + }, + "past-booster": { + "name": "Past Booster", + "description": "Makes the Nine Rooms mod a little more... post-gamey.", + "page": [ + { + "name": "GitHub", + "url": "https://github.com/Pyrocorvid/CCNineRooms" + } + ], + "archive_link": "https://github.com/Pyrocorvid/CCNineRooms/archive/refs/tags/v1.0.2.zip", + "hash": { + "sha256": "92e33f6054472644a86dc3d3502d193455e32de31d05772299efae8bc1aca95f" + }, + "version": "0.1.0" + }, "preset-revival-plus": { "name": "Preset Revival Plus", "description": "Brings back the preset menu, which allows you to start the game at a specific point.", diff --git a/npDatabase.json b/npDatabase.json index 16124630..8267ded7 100644 --- a/npDatabase.json +++ b/npDatabase.json @@ -326,6 +326,61 @@ "stars": 1, "lastUpdateTimestamp": 1708294841000 }, + "nine-rooms": { + "metadataCCMod": { + "id": "nine-rooms", + "version": "0.1.0", + "title": "Nine Rooms", + "description": "A little piece of lost history.", + "repository": "https://github.com/Pyrocorvid/CCNineRooms", + "tags": [ + "maps", + "fun" + ], + "authors": "Pyrocorvid" + }, + "installation": [ + { + "type": "modZip", + "url": "https://github.com/Pyrocorvid/CCNineRooms/archive/refs/tags/v1.0.2.zip", + "source": "CCNineRooms-1.0.2/nine-rooms", + "hash": { + "sha256": "92e33f6054472644a86dc3d3502d193455e32de31d05772299efae8bc1aca95f" + } + } + ], + "stars": 1, + "lastUpdateTimestamp": 1708371875000 + }, + "past-booster": { + "metadataCCMod": { + "id": "past-booster", + "version": "0.1.0", + "title": "Past Booster", + "description": "Makes the Nine Rooms mod a little more... post-gamey.", + "repository": "https://github.com/Pyrocorvid/CCNineRooms", + "tags": [ + "maps", + "fun" + ], + "authors": "Pyrocorvid", + "dependencies": { + "nine-rooms": ">=0.1.0" + } + }, + "installation": [ + { + "type": "modZip", + "url": "https://github.com/Pyrocorvid/CCNineRooms/archive/refs/tags/v1.0.2.zip", + "source": "CCNineRooms-1.0.2/past-booster", + "hash": { + "sha256": "92e33f6054472644a86dc3d3502d193455e32de31d05772299efae8bc1aca95f" + } + } + ], + "stars": 1, + "lastUpdateTimestamp": 1708371875000 + }, "preset-revival-plus": { "metadataCCMod": { "id": "preset-revival-plus", diff --git a/todo.md b/todo.md index f24dd121..39fed5d0 100644 --- a/todo.md +++ b/todo.md @@ -48,6 +48,11 @@ - https://github.com/XenonA7/xmc-hexacast-litter/pull/1 - https://github.com/XenonA7/clean-title-screen/pull/1 +### Juanba + +- https://github.com/buanjautista/cc-shock-quest/pull/1 +- https://github.com/buanjautista/cc-open-world/pull/2 + ### Rest - ~~https://github.com/Symphiel/CursedCode/pull/1~~ @@ -67,9 +72,9 @@ - https://github.com/ZeikJT/CrossCodeCheats/pull/7 - https://github.com/L-Sherry/Localize-me/pull/12 - https://github.com/L-Sherry/French-CC/pull/19 +- https://github.com/L-Sherry/Bob-Rank/pull/1 - https://github.com/rioreur/palicat/pull/3 - https://github.com/tylercamp/CCJoystickExt/pull/1 -- https://github.com/L-Sherry/Bob-Rank/pull/1 - https://github.com/ubergeek77/CCExtraGamepadOptions/pull/3 - https://github.com/WatDuhHekBro/cc-uwuifier/pull/4 - https://github.com/Inevitabilis/CC-Junolea/pull/1 From 66ccef437dcfea0efc9225e3dca4716dd271192d Mon Sep 17 00:00:00 2001 From: krypek Date: Mon, 19 Feb 2024 21:00:37 +0100 Subject: [PATCH 055/196] Add palicat --- input-locations.json | 5 +++++ mods.json | 15 +++++++++++++++ npDatabase.json | 30 ++++++++++++++++++++++++++++++ todo.md | 4 ++-- 4 files changed, 52 insertions(+), 2 deletions(-) diff --git a/input-locations.json b/input-locations.json index e292b157..685a6894 100644 --- a/input-locations.json +++ b/input-locations.json @@ -58,5 +58,10 @@ "type": "modZip", "urlZip": "https://github.com/Pyrocorvid/CCNineRooms/archive/refs/tags/v1.0.2.zip", "source": "CCNineRooms-1.0.2/past-booster" + }, + { + "type": "modZip", + "urlZip": "https://github.com/rioreur/palicat/archive/refs/tags/1.0.6.zip", + "source": "palicat-1.0.6" } ] diff --git a/mods.json b/mods.json index b32b5236..b9fa6d49 100644 --- a/mods.json +++ b/mods.json @@ -1,5 +1,20 @@ { "mods": { + "Palicat": { + "name": "Palicat", + "description": "A mod that implement the palico from monster hunter world into the game.", + "page": [ + { + "name": "GitHub", + "url": "https://github.com/rioreur/palicat" + } + ], + "archive_link": "https://github.com/rioreur/palicat/archive/refs/tags/1.0.6.zip", + "hash": { + "sha256": "049a5afbdd46c3bd168e4abc3406fb1c987be8dc830f4a2ef0ad2b424fd201f1" + }, + "version": "1.0.6" + }, "blades": { "name": "Blades", "description": "Asset which replaces balls with blades, now for all classes!", diff --git a/npDatabase.json b/npDatabase.json index 8267ded7..598533d4 100644 --- a/npDatabase.json +++ b/npDatabase.json @@ -1,4 +1,34 @@ { + "Palicat": { + "metadataCCMod": { + "id": "Palicat", + "version": "1.0.6", + "title": "Palicat", + "description": "A mod that implement the palico from monster hunter world into the game.", + "repository": "https://github.com/rioreur/palicat", + "tags": [ + "cosmetic" + ], + "authors": "rioreur", + "dependencies": { + "crosscode": "^1.1.0", + "item-api": "^0.*" + }, + "prestart": "prestart.js" + }, + "installation": [ + { + "type": "modZip", + "url": "https://github.com/rioreur/palicat/archive/refs/tags/1.0.6.zip", + "source": "palicat-1.0.6", + "hash": { + "sha256": "049a5afbdd46c3bd168e4abc3406fb1c987be8dc830f4a2ef0ad2b424fd201f1" + } + } + ], + "stars": 1, + "lastUpdateTimestamp": 1708372645000 + }, "blades": { "metadataCCMod": { "id": "blades", diff --git a/todo.md b/todo.md index 39fed5d0..5bfad778 100644 --- a/todo.md +++ b/todo.md @@ -73,11 +73,11 @@ - https://github.com/L-Sherry/Localize-me/pull/12 - https://github.com/L-Sherry/French-CC/pull/19 - https://github.com/L-Sherry/Bob-Rank/pull/1 -- https://github.com/rioreur/palicat/pull/3 +- ~~https://github.com/rioreur/palicat/pull/3~~ - https://github.com/tylercamp/CCJoystickExt/pull/1 - https://github.com/ubergeek77/CCExtraGamepadOptions/pull/3 - https://github.com/WatDuhHekBro/cc-uwuifier/pull/4 - https://github.com/Inevitabilis/CC-Junolea/pull/1 -- https://github.com/Pyrocorvid/CCNineRooms/pull/2 +- ~~https://github.com/Pyrocorvid/CCNineRooms/pull/2~~ - https://github.com/CookieSalesman/CrossCode-HADOUKEN-v1.0/pull/2 - https://github.com/canbora/cc-named-saves/pull/2 From 8c09007e408c065db9a895bca3b9e66f0df78f64 Mon Sep 17 00:00:00 2001 From: krypek Date: Mon, 19 Feb 2024 21:05:21 +0100 Subject: [PATCH 056/196] Add cc-capped-stats, crosscode-font-utils, crosscode-extension-asset-preloader, crosscode-modifier-api-reborn, el-crosscode-tweaks --- icons/cc-capped-stats.png | Bin 0 -> 18146 bytes input-locations.json | 20 ++++++ mods.json | 75 +++++++++++++++++++++ npDatabase.json | 136 ++++++++++++++++++++++++++++++++++++++ todo.md | 12 ++-- 5 files changed, 237 insertions(+), 6 deletions(-) create mode 100644 icons/cc-capped-stats.png diff --git a/icons/cc-capped-stats.png b/icons/cc-capped-stats.png new file mode 100644 index 0000000000000000000000000000000000000000..757718416e1f01bff1ed72b96fd4b6eb77ea68c4 GIT binary patch literal 18146 zcmeIZWmKHY)-H+#cXt{O?(XjHlAsMV*0{Svf(Hq1L4ySM;O-jSArRc1OV(O@@3rsw z?sv{N#y$Ub_vr4os^)y=tf%Izdg~osk*dlvD2RlJ5D*Y3a`k;Ns~31OPoi77!2~i@h131X8}Sf|m>IHH;tuPvQy- z=U~2PL1k(CgwoO?n~}m9CSbb)BVgSDu7mZL|4XIa^Pc~6e=}he0$YlvhSx32jOx3s z@bl%D`@1FKjYnVqJCE^apB10>4UfT#%J1K`Z`#{EGP92!ynRK$BEm0@IpZ8$eo;o? z+UxdJ|Mt~2=;rfZfvXIs*I9R;Pw-ZuJ#XHtHGYr1iBe~}>n|TY%i?QgNveE-%YGL% zxZAPTDa2PaG~O#jZZ=+mw9-B6oa2FVf7jK2LPq9lm}sziAO1bl{f55n8SJ}dG`=<_ zvnBlAsr}Ub^a}skgsusuqPCsZdc273`_k^PwEx+fzmq{_Ix)|!Vcodd%O+X2$kQfi zQ(NW3!~J~V)ZTZI?&#@xP!7H1@0~ z4?q4|Hjcc~H(@FzV*C#La%XnvwxA=T=d%abzUjH(`~HK_UiqF&aAU@JtO~D zng7U*(er5b8ftBWY2RXz&tlXsr*kW235KHYci2d#H#QpDGsIX+DiZ!LDoDTdIz2`V z8#}Kry(37EQox?&HF+ZEw1Pa%c3CHotQdPSh99rKb|ij{pNjyH2j8h^gRG+;4LzX!x3a6OU+A!JV0#$crWKOErz5 zp8JuY5>@rd2@|>D(0PEZD8qS>t6@{&?YDvi1-iQ0gHoOjm#;l$Om%Z}yr8XtXfTiP zq`v#g&4ihX(9M($82X05q$ggQ6gV?kn7*nA#525d&TlvWty+fXlCen*!T0j(le(qvhb>)#9}V9Uc;)d9&?E6 z6UsK%*hE3oL#}y!aqbaOKO2XNdp~P4^dW`;-z{G|AGK>A$NsVqzpI=ZeQI`+R=9aF z-T9b&oRak5yYgIRtubhvfg_-16{AL`a(kA$D{tTzo0{^=S4o@pQy*W#FTDw}svax5 z5S(WJIryet&R~YluflGw_49-p&_j9e@PW7O5hX(MYbvXTj8#=bHBDp0-e3;rp_Q$} z_czN?AZPvbpjoe$=eOlabzQsswj)>%C+qBc%gl#|I>*Vqrx~sfansX=mFW*`HZfyN z^GVrlQ1fv^&rfy2Pc)BuXZlAlSerlYz4RT=pRaqjj~?F>`}nur-sy+;ny**1(fW-; zG~FGw?lz?Goz;XOWv#W8TkI?Gw|ZWnZxv%hYaTxHAOu z%JJS(wOZ(LyZHuPU{{RmrD#O>;^RU0RW?UEU%~}d0qKv$zTfoXxenhuSw(v5HLV7Z z9?{f)G}Pr_-fD8lpmtvT{@~$qYe-=o=1Pre!GYaglP4TT#?@p>z=jDJtlw>VOgcWw z?yhjY(NA!GxjD9*S@fx?xC5Wss5+Pn7IjQ7s#mbg|p-j)y7kG|ZeZS=Yt{sONY zWw(v`G#ZrLNQcFaw_#*A+ZXt+z`MV9L0`&0rf63Vnm*}w=q^WFM)|2XuK(G?ip#@5 zozWgDXCdZ#ADit2_>^_eGv1q2`3}>cXui1;f&!J*W=G*x!j&Z5*^6;3bW={i3B`5q zxKiN9l)V|apA^eM={~I?ctP< ztZxV21|%@y9xmzKiL&FZ9U|_n@sc&c`Efcg1@0(JULPYVss@a?CVTnQtD`v$m%RCE zG4hV=jvj+mq6VkOU5RiY1!qj48l(yV&+29&8ghhX`D^GhlV#*E_DQfp>v0yw^*Sc0aLiG2scxT zK6NE#b3h|_sV>H+mYaYF8dzcHRIR5Z2G4oyY8tbx)Zsjd3XhIF^WOKSfM$w#aKHBu zOPba#*x9FUE6$M5WJ4?_kgSWV@lA5Azu)eY?8PS0@-KPHh{N03{#Fd)V7d7ir*CF5 zj1G(o3LTl%9ckIRG_9YI#kfaXwwkWKp6A<~Gho`F`zO%mu0RK}hNi?`V39Xo9707= zlLd*5&XG5?1J(}6CAQ*`IwLjoM;|S65qu$O6B;D#?X(93@N6bsUU>C_UJ_WJ-tO`0 zveX%mW+nCt9@Fu__!7q9Ma06V-WH*B^=+6}aG$@aMhOvrPFS4c&{bq2+OWQcgc;~; zd&>+GUFqV->%o9!5V7f$lSYCkw09D$s!Jk#mN@tHAi*_{czYgntN+FfI(I-s_cQ#2 zH9`OlYtI3mRX-FauI6Ub+j~QZP4=+Q-aHDeqO9!kLtXGdyfwzr^Dm8$kGGiD+YIm4 z)~BPvT0c<$T?9%Zmqldrdj(h$8|&$!D-f=xp%5Cat8IFRo!# zS_eJ3n(bF1Mh6Sg0SlH?8F=L^xYje+xPy!#?bZPjvM#)iAzy8Qo^EMr{cRW?_I|xv z4);!1R}=2m&$0@)NvGlP?M?0>NJAxfJE>ZNSt#Z9NupVHnzOWF65WLn(uCrXkt?TR z$>h|=L}&ckjE|_f3j2_DY|}2VgoaXn9T-2H8bAedyHR|@H<4WGH}dZ*MEd3I2Aqh+ zJ;w#?v0lnYf%rtbN>3h%D_fh}9m@ldpByepSd^1b5ew+Z5UWHWb*nke<(}b`g0<5u z5Ndr8rbjwvAzb3zLj#yPyuQIqVgD>|qL2#!bdLGCwdCAAd=a1g`b30xKqdQS#A;9^ zuewAM8MY*aGa3?#S$V*23!p*3(qjh;1vzpKgKyCpM5RS#`W+bp{DEx36hYu)1a>@S z5-o&b8CPn<_z@dL)K~HQ6BD5}I7^sb;0vs<5H=R^^?g{cxx! z(K&rYD5emtD-5c2)94A-Q3x0UwHSS{XF*5{v@G*n zrX7UDESR#hcm0Wqo30bS>4eiejGHi0|%3|Qz42mPqRouWnLhIo$( z%(;?v1QHR<$M>gNjTMdoS6IH;iucF23Ni3|gw3v?F$$GVF7^XsXF;82Iz|8<6wWZJ zsoL3x7o>t`DC>*BnI|IkJ+Lgw1z``roNW+0yniZKJC9mpE_4KC|C@smhMR~K8&M2B zJ#s9OjK_{oXvz{x|Ee&hB&wT^_xA0kX20(sg;?XV8x93Tmxt5f#xm~iJ0>F*IMT+R zEa5o9uX-`mk$&V-8wZoc^>Hd2#_NRj$Q6r0rF;zX{5Au6VL@jF2x`gDL2@Dtd|{GV zX$#oOUwVjhFJwnlqMQc>8fasnN-_)+QTxjkw+*no_shIGliz_7=3xh6+|rl@o~Vjc z)hL+eFpO7w2)y7&mrxnJaT7%O(%wJ>MQ(u>iBvM8zPPIlZ+oxxXd44ojxR66KXeR# zF%qTe_`Z>WHDNRumg0~JLx7fXj=={L!FUJrK{(DZGHd6|g3}+`>1Fq@_I%|+y@->nVB*ZAg2bB#Bhd!C;NnuQAdk`#NRX#+&FpS^5I;de zlH=9BH#Fb)TFiMK8nLt`@bqag5+T!U`0Sa+st)nR%+?%{=KuZ^i zdIoCcPS`{P1$!wXCy5@NO+q$?AFc0p)&~+jsd5iiLKj9X{reqrtZOXl^hpL@9Q*w& z2JgN^qRZ5o9}}GPZ3Wd#GofS@tfC_yQTbr^S{iwX1q7pi*(%i4V;qVq-6O2PE}?WN zw}%zc4=1T#_zWX#;}1aE;z8HUy-B42$cx!8qPD4yey2?UpP_r$i0|WL9b>Lv4Zkr_ z4pUA{Km5W-`EDh5uB)tXtE|rzj$fqt=2p#nt@(4j(K};4+{LfIm;)0eyb9GVecIbR zjG$6;xlHwDmHo$~-r~*$>5R9hD%Hc*^j}O_;vj#UKRHP!BZELcm3rop1|*gJs4mDl zO0Iu44cR23-vXSb5sw%|%%$G>WbQ=iUm?$J5=*?P2#a-U8!*GHZoRnG?K>sb{wft@ zSX#k6P;4AF0OJ{<&yE1XB9*$1P@Q9srQ#EX?>{`!AkR4037^5$Qkr<$qx=E(_o$Uc zW*hMhg+UafslM$&>=h>Pq;4gMdQY+R!MC(fAR5Qa4H!2{PViP|s=D}-hIVCuQ#)hJ z;|3S&Lm+zKC)WD*Y!AnYdMaW@IJjJcoEtn}DeAb^$s8ESRTbTW)g?s?33{k5xHSD z8rv3fhaZWpDOniax-1X;sE)T*_olU=18tBrj)MrvFI18IzQKi@!kypV^T0nvN}CJv zLjrLc;(NivZ^_>3I5t8JGS?tkp7Nr*rW_O^XdG6zfkFtP^YDQ;q$c01!igRImo;%E zTS_ir$0_}T;>t^?QMfKlEf78zZx7;4ixpBMbT^5Kz162&&Rr`7)iXuU(+mPSMHG=j zljKopl2*(%GNoWVAZY3^>9j|OF^Snc?=h??JmUMBM0ovn=<5fWe9(RHpRig8-^7j3 zT5&ljRpvqKDrHbUMBp2fVCurx+q2x344L^MwnGzBldU&?33N>0p?~xc2-x+-X?eks zLsq4rLh$d)a)8)fAMOjs3c)D=Q%3!uooS&Oj7wlE&Dy^oin;Itqu(s@V5soq!kpR^ zIM%(Df$gEAiU}jj}wK!o5ciE4GH` z5&j$w^_K44nMTxT{C1V^453IsRKwM`P*rZAF1|&j`dPj_Z|Aj)a2)pV4m9G|ih9LJs=E+>MrRM<}S*ohKzC%Rr)O z{C?Em0!6Xl0x)8WX1BWRuZuY>4`?1MdM^ zXn@QIKS~J}FibvqMt~>EOlRV@`?`G2jH= z1P>7oQ5_93(qOhYGYZwYd#fVy=a#_=bZNypg{7f(4yxgD^)#ZP;LTFD3xn~ffMpt@ zL|cnfzT`Viw4RPAGMv1k?O7A;X9VRp+vu`b8Y>VmsB4N=>LSL^qCwF`%<96ck{xj9u_hW$@{tvkwPn887dQHk&ZQ7-VPN7DcK9 z@TOWsAfI?L`j6pZCw`o&;F_t*;z~5kg1h zm-|U)Mb4Y}Mvp@v|VWMI6DofFFE-7acjl&l+>)@g@TX zqijmZ-`MF70RGR%ZGoKHY3UGxm_Y^ZW}qd9$wEWvkCTg(7O+~{d?%{Iak4}Z3HI41 zTWar=gm95VzRL4^`dZjep?bCy-SZw#2}z+~kFuNNjNg`*?tkA68Z3zlP=uFifE~qB z^8w{q%l;}0D@dzqoD{7n32m_JTiF1RKEBP_YR969)g#yBo#3xyNwOtZvXe)X_&gK2 z`cwn2>@?DC9U~_7_?A$PU(>zP78>eFYFZ|BwA?B5+O$sI`dRD#SfV*QZ+0=3&NMAf zG0r$B8O!vusa)|zv0LZF2s}J{Twy7SkSqyvc+G8itC6Xd&&YkQuw4La*{1f9(S!=8 zwGYzX15?I{FNK*!NNbePbaCLN&5JCP%^hm3{TjX6Bv1YQ0X#H1UNS-_tOyb6XCcgi z;&u_PyWCx|P9Kc9V+~yfnsF_i)^uXx4+kQo$!(ldth1sG>(YFpaNpR9tmoHaP+Q?5 zsL?(ki6G5p#=( z;2r~zs?nzFI?e!r20bRVVt|!S4=I--4>h+~$V_Dya>C*zM!0o(PlAlZ7c}Y) z`eZ(Re+%qHveInGb3=*2hU}jHqa|+@^LVd9Ny7V5go|-6 z|5DjlXgZ>qAULyS)I4l)s+MuGIW!?D{Qd8f z4agxeDP$Jfopq8zoQbw0VkqC)3QkEGJC@c`%_nJMxQUAo5QQXg?RoDy6RzWCQ=g}6 zN@P#SZgd?Z6utJTC8K@~F*P=zmL6qR#kpVX|C zz_rOF$)U!5l*`!SopQL{r4$dQx7~}nXr}VyQ{1Z$RfNTyV&&ix$cMd-^XI*gOsEkp z10bzb)w!V)e-(EOx-IbhHdQt2$*+~cC>%A$J2}4TKs7p_?D(t1=M4!`elU!f49)YV zsoK#1=8yw`_F9<&a6oU9TBa7r6hTtN#;SF@4xQ=WU%iu8vF zgSUjU#$jcN$T88I0@lEr{*fPYNS;}046#XSMxyeckVKZ!jenswCind~wQ~=9tJ)`2 zJbYh_K}u@>VWf3JGjbTLp4Vh`KsdZwXakvi#u2M)~^;xS`;unQl?NpS6O2kdb|e zbA7AJE{XWd9?}p5hnYM5m4{9YoqPE-)8ZD~ZtW*&DXL_tV%d+f?Pf6SjUh489M3-( z{1mRsTu|!qlN@FNMiuci@$L;!ZWlAGu0+1hyeyzuqznY0khvnsCNc zpM+)|dfpj*IDk3Z$-=%&%giDn?y*u;8}?s4FnlB8ExI!K@t5hroSssz75v?0-xv%h z)LU;{`2nsp_2WgoCtxwRjcYNBI~!w}Di{06{yf1qj4Pz@``jmM1|!SH;IZsIfRqEV zIcAA7^$({J*ag_Y-3-joo)}KsbsFO+XwQ(4Gt=Vrwgapj7e&#TMHJcqpOu*q_s?Jw z;1R=52W@fE%^O}WBFQ$0GZ>}?s+K|w+`3WSA3|Vx-s!r@2daU8kZK}f_e9opifI} z;^(V;tiIAbhkcrm^%%0+pwqG6y35R8DY+_j%odnti~$jTRAquxMS#3&+`D$Dyb4QCtP05U<|f5f}(H*ye?V(#u{Wr(Yypqi%6dF@}iOVWPB(i-d(O11d+$ zzx9WYy3kS28@s&4FIE#uCB@&&D3FdaqgX)h zh(Jq0cJW(~tiLy!S@bl-1+7H!bNN{C#?f~o!`H`+wLBPoLtk=ZK9-eyNsljm$_k$W zs^ZEbkM?sjYY;(~>0?M4*o@VBxoPD_VQC7>cvWs7PbEOkaMrp{D{_$y$#c_;s@voW}u_Q>}Z!N>}Fl5Qd~BYDYrfLyKOl>abDqt#W^UYjIu1rpG(EcZr{!sOGuO19pR=gQcy)|an&fb^ZTfu6J@a+aEB!e~ujHC-E zE4>tge~rlb)q06sn_vB!EUGKjyhx3mJNSefm9`toSAh@}3}^hdB=BSUwviqE6V`O6 z4P5OmKdEOWy(~)JmlewgW$m_kXgHE9UDr~TjBEArJOS0W7kEOs zBBLa)&qI>MawLsw5pkw4lMy^k(& zHj;9cupeD;!Paw#fg2zCL@HI8%ZfNm=<%(55jM9-nE4F`gcYhwiH=PCGL7bqG35*jH*S8gpsoJm0BPJ$Pc_SyghxB4 zhy?0``Zmrk9uZ-(szR}Zpv3f)R=KA`hEqw$e?ub-5$M=$<^vS!vdH6k1l9BT2MD91m8l0S8 zA@8lo$QjxRrDuu-dSs72)sUWUT&!cd_hC(ecn{>~2vm4^AQr@Tn`+?DK7U0_r^P5{ z%>(Vm;^K6v7{K#Z2{01nf-r1uL%Dm!4CRa$Gv;W@`tF74MFPAMLeo5M;Qg;OBmDF8 zZUqoMZc5v)hz(8V5WOhhx7>F#TIr$jawOIhD%On;Ei`)<#(!*fj&qnoB5vMuDm|(? zD|p^tfC@yjsw_Va@;=S!Yh8MBs};r4;m&q9zxDpLOUBPbg_cZ#YF8la`@9e^rd1XX z;Vp|Pqb_3k;W_{FnZDCpGKv;hm;Flh_^{clGVR^>?QYAX$Evot`I*=l@Tk!ht5R>L z%PcR#-Ny-=G>eEnyb-j*AZ3 z5<}75f6@*`w*KN;Efl9x6VNUhh_a+QHFKQ*>@xC1xV*BWo+bbIUI1)TpXN9p)6v3F zvy-cVVLL_d+ZI+|0?LQ6IruVPt6{|_z@?ni^{x7z;wI61z$EgMp8smkjW_Rw1)(jB z^>;9X>ieUiA_aho=AK5;xEV+WFe&#QN=~_VKZP<~fbf>|(G%^Z-wuhtn?OwJ+G?ca zk++c>DPhfr%zax>@M4Cw(OwAzjM$v$hJ&z}(xc)sCNd;JbC0h|$Q|(i>30s}kn83;$K1$uk;G84YI;QZJf zUh(tEDZiXxlSPD|vayoDUyo|KXj}oM7M)hqdSl)*Ui3+G>2=$KAxdJ7c{fSY#nLgL z5V+NxTM7WFmPY~;W{yBmna!3#E!^&sBKhVdku`Q4RSBV|EC}o=J=jfdo1#!nsdYlMt?Tp3u=xX7-ZZZ?OMM3P!%&~km-tG+k z`f2afh;*BnxKNM}Z5>tZp)zPjalS@WbeeHuV$Q^A_QHA^YpSC?@D1%UA$*D*WKaTq zV?BG9n$TW8yrBJVmcOmR^ti26U|Fl6vhhmJTHWLV$HXWS#pk{oAmOxIATi9eQ0iAr zLE72M& zn9V`SJ|=uRaNkXC|LfdlgpZ7Wp*4fHm{>Myu0oeehh0^zvG1%K3#F7i6C()z!N0#b z%OmFTX9;C{O3B`l`OzFS&et3+DO<_wa@1Z!ej^n+o(d`liHxI5ro8L7V3Mch*M+>2 z&<09pmE%VdO8$OyNtU7mrRL`HYMy*l+LjiFq_5`}(<7|P46aMd8R=EZ*n}VVqn@xq zS+Q@xQ(KF*CItAKJHjjd7H_1CSfq^_CWZ=xc&JzY+@SrmBZ&?Jppx7dNbw@6VRWvvvH zL7SLClbWZmp_KKL9?Iz`j#u>CWe>m5JIL`6`tU{M`;1DPJ{XchC20N>x9pim6b?V& z)(Jt-Gyx3=hZ{<#ikS&_c^^B^={Dm;SAJ8c?istydcJgfGc=L$fx|#nIUQ_gC}yEE zj1UU(1q1$P@pf1QU;LuMv_Et4Bl4QYVlaCJvZ|M5*oCYEZ&p3}*0EYQK4Hf&t;Vm6 z{Uc(3x!Z~&s?NkY56<8)TqcXqyldb>GrGGy$xB$V(iugiZ_9Vd9}N%>xJJ85JkObe zf{=v}w<_X_&nK(+952}BJP}U_rnyrrfd#<2p^DQ&My zji1CaRH;3Ef!oYOB^r{P0WGUt2p&uq$!{enSSzM`hTA{(Pbf{-*EfIpI_sr*S9|23 zn;%9DC0iYq8kmP5mS6J5)nvlPtLk&RP2HgAn(qg-4V0{=v6~lWrB2dg^Oc1fazKsyxvvx>zUMFz3S(Ngc{vzOGb0ElHxR4E32S>g2 zSf%D~XAUIOnmSi|9^KfoUhehbj&h`BB`f$T)Gne@m$vwo#`#didAXbRrihw%`lGY5 zT@X8E))ot{Mho|IW%T1>W2)JQlC$!cz8)i7?w7IugYTxuY+}^FH(8i3D#2U*nyW9+;3iRYKpAcCeVcN zkIxoQD<~49@>SC<7E_fkL>3?EqL#Vn@{_Z;2}T;yeCqo$O8d)coM$!OacQy_V2?9* z7L?P;>#7H~7UT$xkc+Bq+U6R6J4cPqAgJFF=4LJHH&~k-cOc6v4nGW~Y3{d^>p~NP z{pBdcCzQipTZ1FP-ylozGTS*~K<)2q*~1asSDL}RowXroZYN%{X+@sjoOsW`s6$o; z!q)y=;TcI74SVYDtYA3rIDWwPL!OZdWx9XAZc;wBoXWtGP7Y-QWPF5ST>Lpza5CHE zK)v{2Ek|`rVIsHslprbonDKVzXJWHHDj|;6(I+xf+*z_}E_X8z(mezxUzr=lPw zK6z#;N@4knu-lIm74E4o;@Xt@`Tr9AB3fJM@{>ZfT&!*ROx5FO7KD zRnJL%)iDr%wy1{ZB!eg^8GT)3P1zWAZB#hc`*>4$91%r`=-ALgUD?|bD5{CC5W6kB z`D@;Obd7AeRR+9>WVBoYMiBzoGZ$63@ER=FklLINP?kk-R3U3`D8_o}b*Rrnf8x-| z&3F9}e6Y|%oo%@kU9(_DImkK4r=erC4bg=JM{nu#Nlb$k52M!I>0V4)-ZFB`tdPw_ zyEj&(O=qsk07VlrEhKeTIIk2=g$HQ>Cs=e&SX9WkV@3bLCJc?z5NiNU3+Q&B(X7@w zuk5d-P=EcSKQCxE7WfF(nPjB%l=|q>zC!i^9<6@I+`@YroA3Hj;0hTq$CDL)!N_yW z(U}YhDJ~N0I3p@WmxiwTK&?G9SyPuOxKx1QmWSbper9qFRfO7e$9rVTDX{}l{k*wj`6UdetfJ82;-#;wzJ0Kub)YUhG_`dc%irS2aA}zi z=~I^UU^lIJx6G+A?3rqI92>@Eq5l4S5z;%Rzz#zS=sMrXCDiCh4Uco6&Wcq#JZFtZ zOsFJUSblO7$fDdoWI4Wiy5<(=P3={OYRCKKL2XYE`f{u)*3dl)N|+jvW{!4#o8~>A@jw6(2Ua5B@0blx{1@yHB*Y57(!V{d}Ol};JO%i_qS zv0b2Rg$i7c>ED?}bu!itY!s@@HfF>@o^8JU$|pdBwc`Z#h#eScSlYw9KJ-(D#K# zyF!ysTnfc+KAJScq*C0+`*QnZ4b!-L+)ftj@jmBw#hASiE98VJPe~tdOhU0(EUv{p z@v-k0UkF`E_w>&8=qNiC;)Aa|f-D9aL#&_CY~^MhWBCpvUe85X{+9M*h{A4);RF0H=@>0;>AuH#&&CDj_iG4H7@**j=4$Jth@B6uP!xtTIAgdO8>s6%fvJeG5i zFh!i+x!pxOcbWuR!bZC|W%0@~;x6jin`v`uZh|(e@~l6xm>X*If*rMowdPuB{Y?Nx zqVpkD&FO&)f}CeE!k&4JX@~I+uSj@8eb<~>MJ0TLHaIr^tvh}-UJMj z7@x|eAP>era)$bldWhtMhoGJsM90&X44lb|&_vUk_1hs)Q3EHTfR)~@EiG*g{^Ohv z50EvnPMuHTEU6F>Xc?f_LovEaiu`6^J7yDeuqlw)!_MI~I3OSdMLZl#%xr)z08^kP z$X z4QI{Qvq>!KKxeS4lNnIT4QTH|`FEoZwyw^9x9RE({9W~j-?ru!EU!-eVfpVmGIC0) z|J3`W|yEDrXTe>D6a82;Dpyi#lOJ3C&H|EPcM4ZnmF(8LAoqzMMw z3Q_#_7VsPLkE8+!{*^BLieR%p6#ozgn*YwYzj998#FFKYq9DtEC;Y!4X;^{X?f=hk z{w4ZP6fq|kcd(OR_GiU03>2>za<_~m{FqK2!3gDnW?^zS_VBX0gb4rSB(De)c-E_r?v#x z!SgkXtz1;x?f+Zz|ApY62#O#xpuIErzjOWXB7f5Iw}t4{=RfOS7r58;lI5QZ=3i0r zJCXh`zW$27|BDu0q5os#f5h*9==u*`|04$eN5cP!uK&>WKVsm2B>bP~`u~kC#D8tM zf%dQWeeSOt>J<^{+1JfDtf_*GB*e?_cTQVT;%g0pgRGu21OzkX?+>KM7ZJDDN;nre zB`LTaXhKM0_7#B-s;^Z9E>gNK5@5UEyC{gi?$!bBAQvmZ?^}DFKvX;k2r%Sp#?Mei5DO4plM>PJ8Uc6xQ8S;ANrH@W?x3Y&!YQ6pBn=0{024@Zm)C>_xu& zZE3TMDg`q6q=^({wPM~*$+@ruLAU6Ssx#_Q`SH+;)>Ixt0G_Hpg3=U69(Mr??Y?0ZX-aEbn1b(N*8xZey^Ihyb!EB& zWh1@9{jA9C9^=7fdkPTxws3_YQ~a=xfb8*az7NQgR-eRkMRQeOp+=f|aK@-Bs)$aV z(B}vCoX<(RSy`28nj}9@+C|)^b8`?z^Jj2V5Js~L2pF*FFb#wbV7m*a7n~2ek0C?g zQfL%gqidl|U0r&AUPw1yDzT0W9nf^GvDt=*;-(E*5j&1{?4o4Twh$?7XwV@P^6?8g zl~o-2RYFj^`2G;K6&vvlY`%Y0R+?jN#oXHNNQbngRp7B{WcawssWUI*O~IMh0B@%*@B8(KQ8g>Q@8>E&MQM$;Km? z_Aj0r1gUt+0xR_qyt(*2zWcw3 zyn}4sWojaxzI^GLu3UV%`vB|kcuS7`41=oYiS(ImSnTUn0~hZtYmYqGa>eE}LE^cA qnLkQUAouN1%l*4SWlc&C6iJCeUgIyM9k1C7At$9QSs`v5^#1@n8K}wt literal 0 HcmV?d00001 diff --git a/input-locations.json b/input-locations.json index 685a6894..facb8498 100644 --- a/input-locations.json +++ b/input-locations.json @@ -63,5 +63,25 @@ "type": "modZip", "urlZip": "https://github.com/rioreur/palicat/archive/refs/tags/1.0.6.zip", "source": "palicat-1.0.6" + }, + { + "type": "ccmod", + "url": "https://github.com/elluminance/cc-capped-stats/releases/download/v1.0.0/cc-capped-stats.ccmod" + }, + { + "type": "ccmod", + "url": "https://github.com/elluminance/crosscode-font-utils/releases/download/v1.2.1/font-utils.ccmod" + }, + { + "type": "ccmod", + "url": "https://github.com/elluminance/crosscode-extension-asset-preloader/releases/download/v1.0.0/extension-asset-preloader.ccmod" + }, + { + "type": "ccmod", + "url": "https://github.com/elluminance/crosscode-modifier-api-reborn/releases/download/v0.1.1/modifier-api.ccmod" + }, + { + "type": "ccmod", + "url": "https://github.com/elluminance/el-crosscode-tweaks/releases/download/v0.7.5/els-tweaks.ccmod" } ] diff --git a/mods.json b/mods.json index b9fa6d49..de563465 100644 --- a/mods.json +++ b/mods.json @@ -45,6 +45,21 @@ }, "version": "0.4.8" }, + "cc-capped-stats": { + "name": "Capped Stats", + "description": "Adds a visual stat cap - see your stats for what they really aren't!", + "page": [ + { + "name": "GitHub", + "url": "https://github.com/elluminance/cc-capped-stats" + } + ], + "archive_link": "https://github.com/elluminance/cc-capped-stats/releases/download/v1.0.0/cc-capped-stats.ccmod", + "hash": { + "sha256": "afd410d055effb03c46b8604cab4f402a0ec986b2c9394c4af3be3546a594f79" + }, + "version": "1.0.0" + }, "cc-character-widgets": { "name": "Character swap widgets", "description": "Adds a character swap quick menu widgets", @@ -135,6 +150,21 @@ }, "version": "0.1.2" }, + "el-tweaks": { + "name": "EL's Tweaks", + "description": "A coremod full of useful functionality for modders, as well as many tweaks for players.", + "page": [ + { + "name": "GitHub", + "url": "https://github.com/elluminance/el-crosscode-tweaks" + } + ], + "archive_link": "https://github.com/elluminance/el-crosscode-tweaks/releases/download/v0.7.5/els-tweaks.ccmod", + "hash": { + "sha256": "30421792706ab587c67af19b698609d0c2ae6712adfaa3464bf4d3776ee66c90" + }, + "version": "0.7.5" + }, "element-boss": { "name": "Element Boss", "description": "Adds a new boss battle to the game.", @@ -150,6 +180,36 @@ }, "version": "0.1.3" }, + "extension-asset-preloader": { + "name": "Extension Asset Preloader", + "description": "Fixes files from extensions potentially not being loaded during the game's loading.", + "page": [ + { + "name": "GitHub", + "url": "https://github.com/elluminance/crosscode-extension-asset-preloader" + } + ], + "archive_link": "https://github.com/elluminance/crosscode-extension-asset-preloader/releases/download/v1.0.0/extension-asset-preloader.ccmod", + "hash": { + "sha256": "ec7f83e4064a220ac6ca44d8bb4659cc2665709b5dcc173ea515133ef06b7b09" + }, + "version": "1.0.0" + }, + "font-utils": { + "name": "Font Utilities", + "description": "Adds various new font colors!", + "page": [ + { + "name": "GitHub", + "url": "https://github.com/elluminance/crosscode-font-utils" + } + ], + "archive_link": "https://github.com/elluminance/crosscode-font-utils/releases/download/v1.2.1/font-utils.ccmod", + "hash": { + "sha256": "82b694a6e808081d9db494a57598944c6c7363439f561e87832225677e61769a" + }, + "version": "1.2.0" + }, "input-api": { "name": "input-api", "description": "Allows mods to add rebindable key bindings", @@ -180,6 +240,21 @@ }, "version": "0.4.4" }, + "modifier-api": { + "name": "Modifier API \\c[3]Reborn\\c[0]", + "description": "Enables easier creation and usage of custom modifiers and statuses.", + "page": [ + { + "name": "GitHub", + "url": "https://github.com/elluminance/crosscode-modifier-api-reborn" + } + ], + "archive_link": "https://github.com/elluminance/crosscode-modifier-api-reborn/releases/download/v0.1.1/modifier-api.ccmod", + "hash": { + "sha256": "2e2ebf66a3bdb3a98d19b59c6e51918cea050940a28de4657b7dc05c62d1b30b" + }, + "version": "0.1.1" + }, "nine-rooms": { "name": "Nine Rooms", "description": "A little piece of lost history.", diff --git a/npDatabase.json b/npDatabase.json index 598533d4..d484887e 100644 --- a/npDatabase.json +++ b/npDatabase.json @@ -91,6 +91,37 @@ "stars": 0, "lastUpdateTimestamp": 1708107327000 }, + "cc-capped-stats": { + "metadataCCMod": { + "id": "cc-capped-stats", + "version": "1.0.0", + "title": "Capped Stats", + "description": "Adds a visual stat cap - see your stats for what they really aren't!", + "repository": "https://github.com/elluminance/cc-capped-stats", + "tags": [ + "fun" + ], + "authors": "elluminance", + "prestart": "prestart.js", + "icons": { + "24": "icon.png" + }, + "dependencies": { + "ccloader": "^2.20.0" + } + }, + "installation": [ + { + "type": "ccmod", + "url": "https://github.com/elluminance/cc-capped-stats/releases/download/v1.0.0/cc-capped-stats.ccmod", + "hash": { + "sha256": "afd410d055effb03c46b8604cab4f402a0ec986b2c9394c4af3be3546a594f79" + } + } + ], + "stars": 0, + "lastUpdateTimestamp": 1708372177000 + }, "cc-character-widgets": { "metadataCCMod": { "id": "cc-character-widgets", @@ -272,6 +303,35 @@ "stars": 1, "lastUpdateTimestamp": 1708368308000 }, + "el-tweaks": { + "metadataCCMod": { + "id": "el-tweaks", + "version": "0.7.5", + "title": "EL's Tweaks", + "description": "A coremod full of useful functionality for modders, as well as many tweaks for players.", + "repository": "https://github.com/elluminance/el-crosscode-tweaks", + "tags": [ + "QoL", + "library" + ], + "authors": "elluminance", + "plugin": "./dist/plugin.js", + "dependencies": { + "ccloader": "2.x.x" + } + }, + "installation": [ + { + "type": "ccmod", + "url": "https://github.com/elluminance/el-crosscode-tweaks/releases/download/v0.7.5/els-tweaks.ccmod", + "hash": { + "sha256": "30421792706ab587c67af19b698609d0c2ae6712adfaa3464bf4d3776ee66c90" + } + } + ], + "stars": 3, + "lastUpdateTimestamp": 1708372183000 + }, "element-boss": { "metadataCCMod": { "id": "element-boss", @@ -297,6 +357,56 @@ "stars": 0, "lastUpdateTimestamp": 1708290993000 }, + "extension-asset-preloader": { + "metadataCCMod": { + "id": "extension-asset-preloader", + "version": "1.0.0", + "title": "Extension Asset Preloader", + "description": "Fixes files from extensions potentially not being loaded during the game's loading.", + "repository": "https://github.com/elluminance/crosscode-extension-asset-preloader", + "tags": [ + "library" + ], + "authors": "elluminance", + "postload": "postload.js" + }, + "installation": [ + { + "type": "ccmod", + "url": "https://github.com/elluminance/crosscode-extension-asset-preloader/releases/download/v1.0.0/extension-asset-preloader.ccmod", + "hash": { + "sha256": "ec7f83e4064a220ac6ca44d8bb4659cc2665709b5dcc173ea515133ef06b7b09" + } + } + ], + "stars": 0, + "lastUpdateTimestamp": 1708372180000 + }, + "font-utils": { + "metadataCCMod": { + "id": "font-utils", + "version": "1.2.0", + "title": "Font Utilities", + "description": "Adds various new font colors!", + "repository": "https://github.com/elluminance/crosscode-font-utils", + "tags": [ + "library" + ], + "authors": "elluminance", + "prestart": "dist/prestart.js" + }, + "installation": [ + { + "type": "ccmod", + "url": "https://github.com/elluminance/crosscode-font-utils/releases/download/v1.2.1/font-utils.ccmod", + "hash": { + "sha256": "82b694a6e808081d9db494a57598944c6c7363439f561e87832225677e61769a" + } + } + ], + "stars": 0, + "lastUpdateTimestamp": 1708372178000 + }, "input-api": { "metadataCCMod": { "id": "input-api", @@ -356,6 +466,32 @@ "stars": 1, "lastUpdateTimestamp": 1708294841000 }, + "modifier-api": { + "metadataCCMod": { + "id": "modifier-api", + "version": "0.1.1", + "title": "Modifier API \\c[3]Reborn\\c[0]", + "description": "Enables easier creation and usage of custom modifiers and statuses.", + "repository": "https://github.com/elluminance/crosscode-modifier-api-reborn", + "tags": [ + "library" + ], + "authors": "elluminance", + "postload": "./dist/postload.js", + "prestart": "./dist/prestart.js" + }, + "installation": [ + { + "type": "ccmod", + "url": "https://github.com/elluminance/crosscode-modifier-api-reborn/releases/download/v0.1.1/modifier-api.ccmod", + "hash": { + "sha256": "2e2ebf66a3bdb3a98d19b59c6e51918cea050940a28de4657b7dc05c62d1b30b" + } + } + ], + "stars": 0, + "lastUpdateTimestamp": 1708372181000 + }, "nine-rooms": { "metadataCCMod": { "id": "nine-rooms", diff --git a/todo.md b/todo.md index 5bfad778..befedd1b 100644 --- a/todo.md +++ b/todo.md @@ -24,13 +24,13 @@ - https://github.com/conorlawton/CCInventorySearch/pull/5 (remind him of the other crash fix pr) - https://github.com/conorlawton/nax-ccuilib/pull/4 -### EL +### ~~EL~~ -- https://github.com/EL20202/cc-capped-stats/pull/1 -- https://github.com/EL20202/crosscode-font-utils/pull/2 -- https://github.com/EL20202/el-crosscode-tweaks/pull/2 -- https://github.com/EL20202/crosscode-extension-asset-preloader/pull/1 -- https://github.com/EL20202/crosscode-modifier-api-reborn/pull/1 +- ~~https://github.com/EL20202/cc-capped-stats/pull/1~~ +- ~~https://github.com/EL20202/crosscode-font-utils/pull/2~~ +- ~~https://github.com/EL20202/el-crosscode-tweaks/pull/2~~ +- ~~https://github.com/EL20202/crosscode-extension-asset-preloader/pull/1~~ +- ~~https://github.com/EL20202/crosscode-modifier-api-reborn/pull/1~~ ### Alyx From ff2f1e6da12fc5104cc4e44d4d5b555383e96a33 Mon Sep 17 00:00:00 2001 From: krypek Date: Mon, 19 Feb 2024 21:39:23 +0100 Subject: [PATCH 057/196] Add CC-Junolea --- icons/junolea.png | Bin 0 -> 3161 bytes input-locations.json | 5 +++ mods.json | 15 +++++++++ npDatabase.json | 72 +++++++++++++++++++++++++++++++++++++++++++ todo.md | 3 +- 5 files changed, 94 insertions(+), 1 deletion(-) create mode 100644 icons/junolea.png diff --git a/icons/junolea.png b/icons/junolea.png new file mode 100644 index 0000000000000000000000000000000000000000..b2dd99712cc8ff3918f748048a3c7849abade365 GIT binary patch literal 3161 zcmcIm32YQq7@lR@T1twm1X|RXVG!)$?Ci|!IkG_MqOG`C%W9zz=$kihwj;Yc6Pm?D1yyfB*OY z-~avpyfsa8Z!9mnqKqJj^2UZxGybi#KBXo2`&2S`mLP0XmHPUoI!P4~*?i+HvWg7^ z{M7_e^$u)n<23V59bMkmcDS#$x=c?t_w+p2+&1H#-h;hIh>|sLA1Hp@kqKyXbX`?tYinzbfAi^UpQ|ZqnefD>{t30I{wV_$<4;#id3@7m;=NfPT~e~b zv3jH91aZeJ$E1xMalpRn$AIIiJr9aehgiCHQEQ|Gaoogl{gaQZpS-X4)ZTUJ^kiJCE;oR$)>gE%q)nTp2}hL8$U8NUKvTelgC%$S%QM%31N-0@j-#;!ZFD6}kfIaDd?t!;SZGWbCP+Zk7z$E21*f7&0t-bSv>))m1AQV7WI6Bc7G1$j z3Sxu3T2V>ZBjQDw^8!G7C5fY<$L*&5ZjVHZ0T=Iqvg||9ZM8y1T|$Fm;L>&Fnrj}q zGq;KJ=U-FA20S8k zi#|FaLmv&08?U@xK)YlJ0-^`kniumF4@r?aThhDvg{9|xc{R_jP>NrjvMCBlPG%~$})L_)t#A#lQ7iGxmXS2rmnCAXa@+c>GFyRwX0bufJ8nNf?3^3^lnnAG=0dGD@KO*Z58qhorhsevgi zB}HWEG0!KwcJ75>w4>EFaNAU{k&iU?>l?-j_$i|joj3?qloCa>i+R1_R6rM!4_M< t5Yz*3jI9W~IFPoV|9qkQ7wzt`DVrEQzNB}6Ty7m@8)wfAy)>(B#qadMBy<1( literal 0 HcmV?d00001 diff --git a/input-locations.json b/input-locations.json index facb8498..88f273c5 100644 --- a/input-locations.json +++ b/input-locations.json @@ -83,5 +83,10 @@ { "type": "ccmod", "url": "https://github.com/elluminance/el-crosscode-tweaks/releases/download/v0.7.5/els-tweaks.ccmod" + }, + { + "type": "modZip", + "urlZip": "https://github.com/Inevitabilis/CC-Junolea/archive/refs/tags/v1.0.1.zip", + "source": "CC-Junolea-1.0.1" } ] diff --git a/mods.json b/mods.json index de563465..59fe8033 100644 --- a/mods.json +++ b/mods.json @@ -240,6 +240,21 @@ }, "version": "0.4.4" }, + "junolea": { + "name": "Junolea Skin", + "description": "Adds a skin which makes Lea look like Juno", + "page": [ + { + "name": "GitHub", + "url": "https://github.com/Inevitabilis/CC-Junolea" + } + ], + "archive_link": "https://github.com/Inevitabilis/CC-Junolea/archive/refs/tags/v1.0.1.zip", + "hash": { + "sha256": "caa6fce0f7b2d604622f06c32b19e8cf1e1026ec1ac0bd4e07beec2a060b3fc6" + }, + "version": "1.0.0" + }, "modifier-api": { "name": "Modifier API \\c[3]Reborn\\c[0]", "description": "Enables easier creation and usage of custom modifiers and statuses.", diff --git a/npDatabase.json b/npDatabase.json index d484887e..2cb6f1bd 100644 --- a/npDatabase.json +++ b/npDatabase.json @@ -466,6 +466,78 @@ "stars": 1, "lastUpdateTimestamp": 1708294841000 }, + "junolea": { + "metadataCCMod": { + "id": "junolea", + "version": "1.0.0", + "title": "Junolea Skin", + "description": "Adds a skin which makes Lea look like Juno", + "repository": "https://github.com/Inevitabilis/CC-Junolea", + "tags": [ + "cosmetic" + ], + "authors": [ + "Inevitabilis", + "dmitmel" + ], + "icons": { + "24": "icon24.png" + }, + "dependencies": { + "item-api": ">=0.2.0 <1.0.0" + }, + "assets": [ + "data/animations/player-skins/junolea-hugging.json", + "data/animations/player-skins/junolea-hugging.json.patch", + "data/animations/player-skins/junolea-poses-debug.json", + "data/animations/player-skins/junolea-poses-debug.json.patch", + "data/animations/player-skins/junolea-poses.json", + "data/animations/player-skins/junolea-poses.json.patch", + "data/animations/player-skins/junolea-sleeping.json", + "data/animations/player-skins/junolea-sleeping.json.patch", + "data/animations/player-skins/junolea-weak.json", + "data/animations/player-skins/junolea-weak.json.patch", + "data/animations/player-skins/junolea.json", + "data/animations/player-skins/junolea.json.patch", + "data/characters/main/junolea.json", + "data/characters/main/junolea.json.patch", + "data/database.json.patch", + "data/effects/skins/junolea.json", + "data/effects/skins/junolea.json.patch", + "data/item-database.json.patch", + "media/entity/player/junolea-hugging.png", + "media/entity/player/junolea-move-weak.png", + "media/entity/player/junolea-move.png", + "media/entity/player/junolea-poses-debug.png", + "media/entity/player/junolea-poses.png", + "media/entity/player/junolea-sleeping.png", + "media/entity/player/junolea-throw.png", + "media/face/junolea-hand.png", + "media/face/junolea-panic.png", + "media/face/junolea-special.png", + "media/face/junolea.png", + "media/gui/skins/junolea.png", + "media/map/baked/lea-bakii-kum-junolea.png", + "media/map/baked/lea-ctron-bakii-kum-junolea.png", + "media/map/baked/lea-server-junolea.png", + "media/map/baked/the-room-conversation-clear-junolea.png", + "media/map/baked/the-room-conversation-shelf-junolea.png", + "media/map/baked/tree-top-ctron-junolea.png" + ] + }, + "installation": [ + { + "type": "modZip", + "url": "https://github.com/Inevitabilis/CC-Junolea/archive/refs/tags/v1.0.1.zip", + "source": "CC-Junolea-1.0.1", + "hash": { + "sha256": "caa6fce0f7b2d604622f06c32b19e8cf1e1026ec1ac0bd4e07beec2a060b3fc6" + } + } + ], + "stars": 1, + "lastUpdateTimestamp": 1708374201000 + }, "modifier-api": { "metadataCCMod": { "id": "modifier-api", diff --git a/todo.md b/todo.md index befedd1b..f9bb8480 100644 --- a/todo.md +++ b/todo.md @@ -58,6 +58,7 @@ - ~~https://github.com/Symphiel/CursedCode/pull/1~~ - https://github.com/Hsifnus/autumns-genesis/pull/35 - https://github.com/2hh8899/ArcaneLab/pull/18 +- https://github.com/CodeTriangle/CCMultiworldRandomizer/pull/10 ## PR's in progress but probably never merging (will need to make release on my fork if not merged) @@ -77,7 +78,7 @@ - https://github.com/tylercamp/CCJoystickExt/pull/1 - https://github.com/ubergeek77/CCExtraGamepadOptions/pull/3 - https://github.com/WatDuhHekBro/cc-uwuifier/pull/4 -- https://github.com/Inevitabilis/CC-Junolea/pull/1 +- ~~https://github.com/Inevitabilis/CC-Junolea/pull/1~~ - ~~https://github.com/Pyrocorvid/CCNineRooms/pull/2~~ - https://github.com/CookieSalesman/CrossCode-HADOUKEN-v1.0/pull/2 - https://github.com/canbora/cc-named-saves/pull/2 From b55cc845d81f68f343e4463f9356a918b4184528 Mon Sep 17 00:00:00 2001 From: krypek Date: Mon, 19 Feb 2024 21:45:01 +0100 Subject: [PATCH 058/196] Add 'player-character' and 'party-member' mod tags --- CCMOD-STANDARD.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CCMOD-STANDARD.md b/CCMOD-STANDARD.md index 118d4b4d..d1c3af01 100644 --- a/CCMOD-STANDARD.md +++ b/CCMOD-STANDARD.md @@ -24,7 +24,8 @@ ## Mod tag list - `QoL` - stands for "Quality of Life". Makes the playing experience smoother -- `character` - adds new playable characters and/or classes +- `player-character` - adds new playable characters and/or classes +- `party-member` - adds new playable characters and/or classes - `combat arts` - adds new combat arts - `maps` - adds new content maps - `boss` - adds new bosses From 0007d9f47fb462a13a40c64326b637a50e189c30 Mon Sep 17 00:00:00 2001 From: krypek Date: Mon, 19 Feb 2024 21:55:54 +0100 Subject: [PATCH 059/196] Add a bunch of new mod tags --- CCMOD-STANDARD.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/CCMOD-STANDARD.md b/CCMOD-STANDARD.md index d1c3af01..7ad6b74b 100644 --- a/CCMOD-STANDARD.md +++ b/CCMOD-STANDARD.md @@ -24,9 +24,13 @@ ## Mod tag list - `QoL` - stands for "Quality of Life". Makes the playing experience smoother -- `player-character` - adds new playable characters and/or classes -- `party-member` - adds new playable characters and/or classes +- `player character` - adds new playable characters and/or classes +- `party member` - adds new playable characters and/or classes - `combat arts` - adds new combat arts +- `pvp duel` - adds a pvp duel +- `arena` - adds new arena cups +- `dungeon` - adds a new dungeon +- `quests` - adds new quests - `maps` - adds new content maps - `boss` - adds new bosses - `puzzle` - adds new puzzles or something puzzle related From 8dc129fab3b6759f535f82f87104cb9e19ceadab Mon Sep 17 00:00:00 2001 From: krypek Date: Tue, 20 Feb 2024 16:32:16 +0100 Subject: [PATCH 060/196] Add cc-party-element-effects, qine, xmc-hexacast --- icons/Qine.png | Bin 0 -> 1374 bytes icons/party-element-effects.png | Bin 0 -> 1546 bytes icons/xmc-hexacast.png | Bin 0 -> 1406 bytes input-locations.json | 15 ++++ mods.json | 45 ++++++++++ npDatabase.json | 143 ++++++++++++++++++++++++++++++++ todo.md | 6 +- 7 files changed, 206 insertions(+), 3 deletions(-) create mode 100644 icons/Qine.png create mode 100644 icons/party-element-effects.png create mode 100644 icons/xmc-hexacast.png diff --git a/icons/Qine.png b/icons/Qine.png new file mode 100644 index 0000000000000000000000000000000000000000..7f1aa877d6099eaa7995f20c2086cbeedfb03902 GIT binary patch literal 1374 zcmV-k1)=(hP)?-|u2P%fIf=(WB-p1_VUnS!S3v@dokKrfqQECyub9 ztP-CSkD7Er;zzD49=~xexGeC@h?!2!6Gw=}LK`b>%!;N)JV_i?HJ$Q>jK?bHEzVlG z%9{7&FAV4Om1VBe8bSh#Sb_u*3aTif3>z`pby6&(=sfP@A9Vc^xfF7hz{s(H3N*;B zAN&t~_twf!jC)DpIMDIpI3L46=PuBwInMX7<1|iy;4^TgxBQhlF#Sn-t))eefZlE3 z;<}|Nd%)!mFz{r^rtC^VT0%Y#yr0oGWr4n1pnJ{hTk{;J4?voFmAnBC4uO#ZWv~0Z zyQ{r#|JF47_XB!(a;osGzgPeO1Di=iK~zYIt(8$|n^hEmzx>7}4a-=Xv?1-Lm8LN< zVWZM6EvvzYg2l;n^hHoNnu#!H9(?G7);XLj7KZvTOH*MRYoY96wq-~y(+8=z7KWS1 z%4(ZJV2!b5X<{N>*2v~VcJK1%Mu*^mpL_4Q=X~d$bI(l-O-&vRcmikup0BpskMlo@ zu^j&P`=2XDpM*n-Zt`lJryE=V{2EV6{mRPka^BZ_6k{oTZuW`};;S(M&{SKe1bC&j zK?ZtM1`6C)W1^|HPJ)|VmI|(Q#BSf=K(Lwn_tH#Wjq6U|=rjYMRom^yFN~bgrD@P? z5?mQx+;cmsl zalxbCT6G4e`cDFI`C5$W>1nAy()*Td1mRb$;LFcj(u=K zaW1vVpD}Rm>uZXQ1}GQY;tk@i^#Cw*>PrA_x%%Y?@Z7F09A+o(S`RJWAfT_kE`Wf) z@Y1u=IJUNk6_?IuCiJ&=y%%bXHts*3)dS zwn=!S)6A;}53`<14gcd$1%Tc97-OU3Jo(fPb|(9j{ayYBewkPQG9SPvfDv66Im}Mt z@uEYHRR;Q^To{{VZg!^P0h~2EX>4Tx04R}tkv&MmKp2MKrWHjh4ptCx$WWauh>D1lR-p(LLaorMgUO|T(4-+r zad8w}3l9D)RvlcNb#-tR1i>E=M<*vm7b)?(q|hS9JC1vJ?|WbFz5|4MnQ2yN4A6Aj zOeNxCCc7$jz9NJ$%^CE|%rfRADGA^4b&mkw?_xa5zwXb`qvk9I1VrLlW|%hd2JzIU zZE)TvjTnNH0UM~KBj8!K(hil#<9NgP!*o$`f@ z$13M7&RV(3n)l={4CnNfWvu?swklh8!_5-QY@tCJnrKkbo~;!6mpfo z$gzM5G{~+W{11Nj*2+(edr9Fq(DC9pAHzWBF3_ks&iAq7G){ovGjOH1{FOQ|{YiSQ zrA3c`-fiIGx}_<5z~v4w@MOrQ>`FmeLOu_?pV2pEfxcUyd(G=x^BkuSK$?1$ya5gl zfsq1bulu~atG#dk)-?O~1A2IJs)?KRBLDydKuJVFR7i=flz&Xrbr{EAusbVkLGq&w zRE#@JgK3t7YX_XS__6`Xa$(#S+y+jf%poozVis*uI@%l!>%svGXhU+gh3MjFcyJUn zQ!;O9<0wFEJAQc;NjoO}@#XtDzL2axdj9%+pU?AsJz*tIS+ z^d0_3(=3M%B-NwYz6F5!A8r5;QY)?aQNlx>&WBObqqE)R&g=FSF^SH7XzmABzzS%o zHM_L}-e(^|LW{jtQYD#4(DA$z0u}gU=L}>WJ}s(#c>jhK@MgD`X15jqqok+EHX@QW z>BiYxyIsH)3sm5WWgR{(;BBpWE2>tk$Tk8Xd`3x6p3WzdES&+4pPm*D)7C4Z^7e`b zc2^b18x;*AW_ee6Iv?wHrGR~i<)&Hg=!t2gX$hcx5xl#qfcA<8Y(>#B44A&u0}P2h zt2+t_4_D7lsuP&DUIE~Nm|9Vt)g7fuELoZXEii-;=v%DT>W%`-SGbGxG%kK`U%DUmXRv_-g`2<)#Gl4Obl!0B+wYllZ1 zO$A<`Zz4T2gUIYM0PIBEzXLlFeo63PcgX7`Qyi}Ax7fKRibR1`)<2Vu?70BsuF*D^={b(nGH@+Ms?v?jMCrfQdc9=hbV)FyD zq-7SUy2;b|M8f3nWb`yZXM7QATB#>$;7I4Mpx`V{J{7j)LLH~_$VDS{a@Z%Z)k_}#Z`-4T$L$#%tQxe2? z#cMC)x_*nFyVj`S|JF%IP%+a}Q=h12(Ayu(k(1F>m&gy+&Xx-PXz}kG`-5?Xu&R|5 z9U`@9f$6EKFMy^%fVz+g>Oy2$s!K*Vax$7^gZgPOdaHj^rT_o{07*qoM6N<$f_Mz$fB*mh literal 0 HcmV?d00001 diff --git a/icons/xmc-hexacast.png b/icons/xmc-hexacast.png new file mode 100644 index 0000000000000000000000000000000000000000..c55f20d42c710c5dda6bad001c0a30621ef50dd6 GIT binary patch literal 1406 zcmV-^1%djBP)?-|u2P%fIf=(WB-p1_VUnS!S3v@dokKrfqQECyub9 ztP-CSkD7Er;zzD49=~xexGeC@h?!2!6Gw=}LK`b>%!;N)JV_i?HJ$Q>jK?bHEzVlG z%9{7&FAV4Om1VBe8bSh#Sb_u*3aTif3>z`pby6&(=sfP@A9Vc^xfF7hz{s(H3N*;B zAN&t~_twf!jC)DpIMDIpI3L46=PuBwInMX7<1|iy;4^TgxBQhlF#Sn-t))eefZlE3 z;<}|Nd%)!mFz{r^rtC^VT0%Y#yr0oGWr4n1pnJ{hTk{;J4?voFmAnBC4uO#ZWv~0Z zyQ{r#|JF47_XB!(a;osGzgPeO1G`B?K~zYIt&~wnTUQ*$e_A&vZV(e329v4F;w-6U zvsU&+a9uedT(MZgMBae9L_o4_y4~0zo*RWZ7c_#2kL=Sc8B9C|0602 z$s42*W?F)HoSisaO|%9t5Rq=7Ws(3mTusz?eboDX$P;6<$O8cQo~}gM+hygC-vLO^ z#W*3yDD!$7Pn9CC@%jL$_xmhWZ7eHnuPXp(nItXpfDizLNY$kqR2byHeKtq~;HdBj zqV08s8n2IyWyK<3kQxI`idoIAlndi`R#TR?1K&c$nRasp6 zpQ$?loIMv{UeI%@h)K_>Vyib_u85MX-5@7oVEsho8C#$yt6ae}I}@pl?M2@^6trZiZ;nLX5ZP4+cE>HVo^N z3`e^Nc)F={KLWsMcQMlv1VGu_737Q2v{k_DK-*Vw+Fe{%KHz50EW^<*05-Sshvrq8 zV~xki?qr0>=wxbL|ngPA@zJe#R)maj;2kOe2e;4 zB%;^z<7ezgsB}La=f&c&j M07*qoM6N<$f~H%bTL1t6 literal 0 HcmV?d00001 diff --git a/input-locations.json b/input-locations.json index 88f273c5..246e201f 100644 --- a/input-locations.json +++ b/input-locations.json @@ -88,5 +88,20 @@ "type": "modZip", "urlZip": "https://github.com/Inevitabilis/CC-Junolea/archive/refs/tags/v1.0.1.zip", "source": "CC-Junolea-1.0.1" + }, + { + "type": "modZip", + "urlZip": "https://github.com/XenonA7/cc-party-element-effects/archive/refs/tags/1.0.1.zip", + "source": "cc-party-element-effects-1.0.1" + }, + { + "type": "modZip", + "urlZip": "https://github.com/XenonA7/qine/archive/refs/tags/0.3.1.zip", + "source": "qine-0.3.1" + }, + { + "type": "modZip", + "urlZip": "https://github.com/XenonA7/xmc-hexacast/archive/refs/tags/0.27.3.zip", + "source": "xmc-hexacast-0.27.3" } ] diff --git a/mods.json b/mods.json index 59fe8033..b043b024 100644 --- a/mods.json +++ b/mods.json @@ -15,6 +15,21 @@ }, "version": "1.0.6" }, + "Qine": { + "name": "Qine", + "description": "Adds the character Qine as a party member and PvP duel.", + "page": [ + { + "name": "GitHub", + "url": "https://github.com/XenonA7/qine" + } + ], + "archive_link": "https://github.com/XenonA7/qine/archive/refs/tags/0.3.1.zip", + "hash": { + "sha256": "8db827667134f32a15e98507bee700c97e24445d57c9d0e50275fdc5f5f98287" + }, + "version": "0.3.1" + }, "blades": { "name": "Blades", "description": "Asset which replaces balls with blades, now for all classes!", @@ -285,6 +300,21 @@ }, "version": "0.1.0" }, + "party-element-effects": { + "name": "Party Element Effects", + "description": "Shows the proper effect when party members swap elements", + "page": [ + { + "name": "GitHub", + "url": "https://github.com/XenonA7/cc-party-element-effects" + } + ], + "archive_link": "https://github.com/XenonA7/cc-party-element-effects/archive/refs/tags/1.0.1.zip", + "hash": { + "sha256": "d8b2790f6e028fedcb13f68d5824b46aca2b3f2ae8be78f7ab4523cdba4d959c" + }, + "version": "1.0.1" + }, "past-booster": { "name": "Past Booster", "description": "Makes the Nine Rooms mod a little more... post-gamey.", @@ -314,6 +344,21 @@ "sha256": "19aa49547dfd4fe686be1e490b6b004ef36250d057de896984a91c11bf2adb77" }, "version": "2.1.1" + }, + "xmc-hexacast": { + "name": "XMC - \\c[2]Hexacast\\c[0] \\c[1](WIP)\\c[0]", + "description": "Adds a playable hexacast to XMC \\c[1](Mod Incomplete!)\\c[0]", + "page": [ + { + "name": "GitHub", + "url": "https://github.com/XenonA7/xmc-hexacast" + } + ], + "archive_link": "https://github.com/XenonA7/xmc-hexacast/archive/refs/tags/0.27.3.zip", + "hash": { + "sha256": "1444b03e3efd05f0bb1aeee5d9f9e3c0e5315cb0cdd10d3440474e7737cac3c3" + }, + "version": "0.27.3" } } } \ No newline at end of file diff --git a/npDatabase.json b/npDatabase.json index 2cb6f1bd..2e5f784b 100644 --- a/npDatabase.json +++ b/npDatabase.json @@ -29,6 +29,58 @@ "stars": 1, "lastUpdateTimestamp": 1708372645000 }, + "Qine": { + "metadataCCMod": { + "id": "Qine", + "version": "0.3.1", + "title": { + "en_US": "Qine", + "de_DE": "Qine", + "fr_FR": "Qine", + "zh_CN": "Qine", + "zh_TW": "Qine", + "ja_JP": "Qine", + "ko_KR": "Qine" + }, + "description": { + "en_US": "Adds the character Qine as a party member and PvP duel.", + "de_DE": "Adds the character Qine as a party member and PvP duel.", + "fr_FR": "Adds the character Qine as a party member and PvP duel.", + "zh_CN": "Adds the character Qine as a party member and PvP duel.", + "zh_TW": "Adds the character Qine as a party member and PvP duel.", + "ja_JP": "Adds the character Qine as a party member and PvP duel.", + "ko_KR": "Adds the character Qine as a party member and PvP duel." + }, + "repository": "https://github.com/XenonA7/qine", + "tags": [ + "party member", + "pvp duel" + ], + "authors": [ + "sgrunt", + "XenonA7" + ], + "icons": { + "24": "icon.png" + }, + "prestart": "mod.js", + "dependencies": { + "extendable-severed-heads": ">=1.1.0" + } + }, + "installation": [ + { + "type": "modZip", + "url": "https://github.com/XenonA7/qine/archive/refs/tags/0.3.1.zip", + "source": "qine-0.3.1", + "hash": { + "sha256": "8db827667134f32a15e98507bee700c97e24445d57c9d0e50275fdc5f5f98287" + } + } + ], + "stars": 1, + "lastUpdateTimestamp": 1708403695000 + }, "blades": { "metadataCCMod": { "id": "blades", @@ -590,6 +642,52 @@ "stars": 1, "lastUpdateTimestamp": 1708371875000 }, + "party-element-effects": { + "metadataCCMod": { + "id": "party-element-effects", + "version": "1.0.1", + "title": { + "en_US": "Party Element Effects", + "de_DE": "Party Element Effects", + "fr_FR": "Party Element Effects", + "zh_CN": "Party Element Effects", + "zh_TW": "Party Element Effects", + "ja_JP": "Party Element Effects", + "ko_KR": "Party Element Effects" + }, + "description": { + "en_US": "Shows the proper effect when party members swap elements", + "de_DE": "Shows the proper effect when party members swap elements", + "fr_FR": "Shows the proper effect when party members swap elements", + "zh_CN": "Shows the proper effect when party members swap elements", + "zh_TW": "Shows the proper effect when party members swap elements", + "ja_JP": "Shows the proper effect when party members swap elements", + "ko_KR": "Shows the proper effect when party members swap elements" + }, + "repository": "https://github.com/XenonA7/cc-party-element-effects", + "tags": [ + "cosmetic", + "party member" + ], + "authors": "XenonA7", + "icons": { + "24": "icon.png" + }, + "prestart": "prestart.js" + }, + "installation": [ + { + "type": "modZip", + "url": "https://github.com/XenonA7/cc-party-element-effects/archive/refs/tags/1.0.1.zip", + "source": "cc-party-element-effects-1.0.1", + "hash": { + "sha256": "d8b2790f6e028fedcb13f68d5824b46aca2b3f2ae8be78f7ab4523cdba4d959c" + } + } + ], + "stars": 2, + "lastUpdateTimestamp": 1708402780000 + }, "past-booster": { "metadataCCMod": { "id": "past-booster", @@ -648,5 +746,50 @@ ], "stars": 0, "lastUpdateTimestamp": 1708116396000 + }, + "xmc-hexacast": { + "metadataCCMod": { + "id": "xmc-hexacast", + "version": "0.27.3", + "title": { + "en_US": "XMC - \\c[2]Hexacast\\c[0] \\c[1](WIP)\\c[0]" + }, + "description": { + "en_US": "Adds a playable hexacast to XMC \\c[1](Mod Incomplete!)\\c[0]" + }, + "icons": { + "24": "icon.png" + }, + "repository": "https://github.com/XenonA7/xmc-hexacast", + "tags": [ + "player character", + "party member" + ], + "authors": [ + "XenonA7", + "Lychee" + ], + "prestart": "prestart.js", + "poststart": "poststart.js", + "dependencies": { + "extendable-severed-heads": ">=1.1.0", + "cc-alybox": ">=1.0.0", + "xenons-triblader-mod": ">=0.8.0", + "Simplify": ">=2.12.1", + "post-game": ">=1.4.0" + } + }, + "installation": [ + { + "type": "modZip", + "url": "https://github.com/XenonA7/xmc-hexacast/archive/refs/tags/0.27.3.zip", + "source": "xmc-hexacast-0.27.3", + "hash": { + "sha256": "1444b03e3efd05f0bb1aeee5d9f9e3c0e5315cb0cdd10d3440474e7737cac3c3" + } + } + ], + "stars": 2, + "lastUpdateTimestamp": 1708404037000 } } \ No newline at end of file diff --git a/todo.md b/todo.md index f9bb8480..b4ba7002 100644 --- a/todo.md +++ b/todo.md @@ -41,10 +41,10 @@ ### Xenon -- https://github.com/XenonA7/qine/pull/1 +- ~~https://github.com/XenonA7/qine/pull/1~~ - https://github.com/XenonA7/xenons-triblader-mod/pull/12 -- https://github.com/XenonA7/xmc-hexacast/pull/3 -- https://github.com/XenonA7/cc-party-element-effects/pull/2 +- ~~https://github.com/XenonA7/xmc-hexacast/pull/3~~ +- ~~https://github.com/XenonA7/cc-party-element-effects/pull/2~~ - https://github.com/XenonA7/xmc-hexacast-litter/pull/1 - https://github.com/XenonA7/clean-title-screen/pull/1 From 1144861d411cde39ec96c87071de0b47cb77d3d6 Mon Sep 17 00:00:00 2001 From: krypek Date: Tue, 20 Feb 2024 18:09:39 +0100 Subject: [PATCH 061/196] Simplify the input-locations.json format --- build/.prettierrc.json => .prettierrc.json | 0 build/src/db.ts | 31 ++--- build/src/source.ts | 63 +++++----- build/src/types.d.ts | 33 ++---- build/tests/input.js | 12 +- build/tests/npDatabase.js | 38 +----- input-locations.json | 129 ++++----------------- inputLocationsFormat.md | 36 +++--- npDatabase.json | 48 ++++---- 9 files changed, 127 insertions(+), 263 deletions(-) rename build/.prettierrc.json => .prettierrc.json (100%) diff --git a/build/.prettierrc.json b/.prettierrc.json similarity index 100% rename from build/.prettierrc.json rename to .prettierrc.json diff --git a/build/src/db.ts b/build/src/db.ts index b265b48b..71f498ea 100644 --- a/build/src/db.ts +++ b/build/src/db.ts @@ -67,7 +67,7 @@ export async function writeMods(db: PackageDB): Promise { 'A mod. (Description not available; contact mod author and have them add a description to their package.json file)' ), license: ccmod?.license || meta?.license, - page: getRepositoryEntry(ccmod?.repository || ccmod?.homepage || meta?.homepage), /* old field, should be unused, kept for compatibility */ + page: getRepositoryEntry(ccmod?.repository || ccmod?.homepage || meta?.homepage) /* old field, should be unused, kept for compatibility */, archive_link: install.url, hash: install.hash, version: ccmod?.version || meta?.version || 'unknown', @@ -113,16 +113,11 @@ function getStringFromLocalisedString(str: LocalizedString): string { } function getInstallation(installations: InstallMethod[]): { url: string; hash: { sha256: string } } | undefined { - const zip = installations.find(i => i.type === 'ccmod') as InstallMethodCCMod + const zip = installations.find(i => i.type === 'zip') as InstallMethodZip if (zip) { return { url: zip.url, hash: zip.hash } } - const modZip = installations.find(i => i.type === 'modZip') as InstallMethodModZip - if (modZip) { - return { url: modZip.url, hash: modZip.hash } - } - return undefined } @@ -214,31 +209,21 @@ async function generateInstallations(inputs: InputLocation[]): Promise { switch (input.type) { - case 'modZip': { - const data = await streamToBuffer(await download(input.urlZip)) - - return { - type: 'modZip', - url: input.urlZip, - source: input.source, - hash: { - sha256: crypto.createHash('sha256').update(data).digest('hex'), - }, - } - } - case 'ccmod': { + case undefined: + case 'zip': { const data = await streamToBuffer(await download(input.url)) return { - type: 'ccmod', + type: 'zip', url: input.url, + source: input.source, hash: { sha256: crypto.createHash('sha256').update(data).digest('hex'), }, } } - case 'injected': - return input.installation + default: + throw new Error('Unsupported type: ' + input.type) } } diff --git a/build/src/source.ts b/build/src/source.ts index 5eea1a2c..7eca10e0 100644 --- a/build/src/source.ts +++ b/build/src/source.ts @@ -2,6 +2,7 @@ import stream from 'stream' import yauzl from 'yauzl' import { download, streamToBuffer } from './download' import fs from 'fs' +import path from 'path' import { getRepositoryEntry } from './db' import * as github from '@octokit/openapi-types' @@ -13,12 +14,10 @@ export type ModMetadatasInput = ModMetadatas & { input: InputLocation } export async function get(input: InputLocation): Promise { const fileFetchFunc: ((input: any, fileName: string, parseToJson?: boolean) => any) | 'error' = - input.type === 'modZip' - ? (input: ModZipInputLocation, fileName, parseToJson) => getModZipFile(input, fileName, parseToJson) - : input.type === 'ccmod' - ? (input: CCModInputLocation, fileName, parseToJson) => getCCModFile(input, fileName, parseToJson) + input.type === undefined || input.type === 'zip' + ? (input: ZipInputLocation, fileName, parseToJson) => getModZipFile(input, fileName, parseToJson) : 'error' - if (fileFetchFunc === 'error') throw new Error(`Unknown location type '${input.type}'`) + if (fileFetchFunc === 'error') throw new Error(`Unsupported location type '${input.type}'`) let pkg try { @@ -32,8 +31,7 @@ export async function get(input: InputLocation): Promise { console.log(e) throw e } - if (!pkg.ccmod && !pkg.meta) - throw new Error(`A mod has to either have a package.json or a ccmod.json: ${input.type == 'ccmod' ? input.url : input.type == 'modZip' ? input.urlZip : ''}`) + if (!pkg.ccmod && !pkg.meta) throw new Error(`A mod has to either have a package.json or a ccmod.json: ${input.url}`) const iconPath = getModIconPath(pkg) if (iconPath) { const imgData = await fileFetchFunc(input, iconPath, false) @@ -50,13 +48,18 @@ function getModIconPath(pkg: ModMetadatasInput): string | undefined { return ccmod.icons['24'] } -async function getModZipFile(zip: ModZipInputLocation, fileName: string, parseToJson: boolean = true): Promise { - const file = await download(zip.urlZip) +async function getModZipFile(zip: ZipInputLocation, fileName: string, parseToJson: boolean = true): Promise { + const file = await download(zip.url) const buf = await streamToBuffer(file) if (buf.length === 0) return const archive = await open(buf) - let stream - stream = await openFile(archive, modZipPath(zip, fileName)) + + /* find the source if it's missing */ + if (!zip.source && zip.url.endsWith('.zip')) { + zip.source = await findZipRoot(buf) + console.log(zip.source) + } + const stream = await openFile(archive, modZipPath(zip, fileName)) if (!stream) return const raw = await streamToBuffer(stream) @@ -66,7 +69,7 @@ async function getModZipFile(zip: ModZipInputLocation, fileName: string, pars return JSON.parse(raw as unknown as string) as T } -function modZipPath(zip: ModZipInputLocation, fileName: string): string { +function modZipPath(zip: ZipInputLocation, fileName: string): string { if (fileName === 'package.json' && zip.packageJSONPath) return zip.packageJSONPath if (fileName === 'ccmod.json' && zip.ccmodPath) return zip.ccmodPath @@ -77,21 +80,6 @@ function modZipPath(zip: ModZipInputLocation, fileName: string): string { return fileName } -async function getCCModFile(ccmod: CCModInputLocation, fileName: string, parseToJson: boolean = true): Promise { - const file = await download(ccmod.url) - const buf = await streamToBuffer(file) - if (buf.length === 0) return - const archive = await open(buf) - const stream = await openFile(archive, fileName) - if (!stream) return - const raw = await streamToBuffer(stream) - - archive.close() - - if (!parseToJson) return raw as unknown as T - return JSON.parse(raw as unknown as string) as T -} - function open(buffer: Buffer): Promise { return new Promise((resolve, reject) => { yauzl.fromBuffer(buffer, { autoClose: true, lazyEntries: true, decodeStrings: true }, (err, zip) => { @@ -131,6 +119,27 @@ function openFile(zip: yauzl.ZipFile, file: string): Promise { + const zip = await open(buffer) + return new Promise((resolve, reject) => { + zip.readEntry() + zip.on('entry', (entry: yauzl.Entry) => { + if (!entry.fileName.endsWith('/')) { + const name = path.basename(entry.fileName) + console.log(entry.fileName, name) + if (name == 'package.json' || name == 'ccmod.json') { + zip.close() + resolve(path.dirname(entry.fileName)) + return + } + } + zip.readEntry() + }) + .on('end', () => resolve(undefined)) + .on('error', err => reject(err)) + }) +} + /* this has to be done outside of buildEntry to avoid concurent api requests */ export async function addStarsAndTimestampsToResults(result: PackageDB, oldDb?: PackageDB) { console.log('fetching stars and timestamps...') diff --git a/build/src/types.d.ts b/build/src/types.d.ts index cf538d24..e404423d 100644 --- a/build/src/types.d.ts +++ b/build/src/types.d.ts @@ -1,14 +1,10 @@ -declare type InputLocation = InjectedInputLocation | ModZipInputLocation | CCModInputLocation +declare type InputLocation = ZipInputLocation -// Represents a raw input location to put more or less directly into npDatabase.json -declare type InjectedInputLocation = { - type: 'injected' -} & Package -declare type ModZipInputLocation = { - type: 'modZip' +declare type ZipInputLocation = { + type: 'zip' | undefined // The URL of the ZIP file. - urlZip: string + url: string // The subdirectory in which the package.json file is kept. // Note that GitHub archives have an additional enclosing directory, so you will usually need to use this. // Only this subdirectory & subdirectories of it are extracted, and it is extracted at the target installation directory. @@ -19,12 +15,6 @@ declare type ModZipInputLocation = { ccmodPath?: string } -declare type CCModInputLocation = { - type: 'ccmod' - // The URL of the ccmod file. - url: string -} - // The content of the input-locations.json file. declare type InputLocations = InputLocation[] @@ -134,7 +124,7 @@ declare type PkgHash = { /* * Represents a method of installing the package. */ -declare type InstallMethod = InstallMethodCommon | InstallMethodModZip | InstallMethodCCMod +declare type InstallMethod = InstallMethodCommon | InstallMethodZip /* * The common fields between all PackageDBInstallationMethods. @@ -146,9 +136,10 @@ declare type InstallMethodCommon = { platform?: NodeOSPlatform } -declare type InstallMethodModZip = InstallMethodCommon & { - type: 'modZip' +declare type InstallMethodZip = InstallMethodCommon & { + type: 'zip' // The URL of the ZIP to download. (example: "https://github.com/CCDirectLink/CCLoader/archive/master.zip") + // or the URL of the ccmod to download. (example: "https://github.com/CCDirectLink/CC-ChargedBalls/releases/download/1.0.0/ChargedBalls.ccmod") url: string // The hash of the file at url. hash: PkgHash @@ -156,14 +147,6 @@ declare type InstallMethodModZip = InstallMethodCommon & { source?: string } -declare type InstallMethodCCMod = InstallMethodCommon & { - type: 'ccmod' - // The URL of the ccmod to download. (example: "https://github.com/CCDirectLink/CC-ChargedBalls/releases/download/1.0.0/ChargedBalls.ccmod") - url: string - // The hash of the file at url. - hash: PkgHash -} - /* * Represents a package in the database. */ diff --git a/build/tests/input.js b/build/tests/input.js index 4b688d3b..2931de96 100644 --- a/build/tests/input.js +++ b/build/tests/input.js @@ -20,18 +20,18 @@ describe('InputLocations', () => { describe('mods', () => { for (const mod of Object.keys(jsonData)) { - describe(jsonData[mod].urlZip || jsonData[mod].url || mod, () => { + describe(jsonData[mod].url || mod, () => { it('Check for required elements', async() => { - expect(jsonData[mod].type).to.be.oneOf(['modZip', 'ccmod'], - 'type (type: string) must be one of: ["modZip"]'); + expect(jsonData[mod].type).to.be.oneOf([undefined, 'zip'], + 'type (type: string) must be one of: [undefined, "zip"]'); switch (jsonData[mod].type) { - case 'modZip': - expect(typeof jsonData[mod].urlZip).to.equal('string'); + case 'zip': + expect(typeof jsonData[mod].url).to.equal('string'); expect(jsonData[mod].source === undefined || typeof jsonData[mod].source === 'string') .to.be.true; - expect(await streamToBuffer(await download(jsonData[mod].urlZip))) + expect(await streamToBuffer(await download(jsonData[mod].url))) .to.not.throw; break; } diff --git a/build/tests/npDatabase.js b/build/tests/npDatabase.js index 7f4e5cfe..48da0d58 100644 --- a/build/tests/npDatabase.js +++ b/build/tests/npDatabase.js @@ -232,8 +232,8 @@ function testInstallation(mod) { 'installation (type: object) must be an object') .to.be.true; - expect(['modZip', 'ccmod'].includes(inst.type), - 'installation.type (type: string) must be one of: ["modZip"]') + expect(['zip'].includes(inst.type), + 'installation.type (type: string) must be one of: ["zip"]') .to.be.true; expect(inst.platform === undefined @@ -244,18 +244,15 @@ function testInstallation(mod) { .to.be.true; switch (inst.type) { - case 'modZip': - await testModZip(inst); - break; - case 'ccmod': - await testCCMod(inst); + case 'zip': + await testZip(inst); break; } }).timeout(10000); } } -async function testModZip(modzip) { +async function testZip(modzip) { expect(typeof modzip.hash === 'object', 'modzip.hash (type: object) must be an object') .to.be.true; @@ -280,31 +277,6 @@ async function testModZip(modzip) { } } -async function testCCMod(ccmod) { - expect(typeof ccmod.hash === 'object', - 'modzip.hash (type: object) must be an object') - .to.be.true; - expect(Array.isArray(ccmod.hash), - 'modzip.hash (type: object) must be an object') - .to.be.false; - expect(ccmod.hash !== null, - 'modzip.hash (type: object) must be an object') - .to.be.true; - expect(typeof ccmod.hash.sha256 === 'string', - 'modzip.hash.sha256 (type: string) must be a string').to.be.true; - - expect(typeof ccmod.url === 'string', - 'modzip.url (type: string) must be a string').to.be.true; - expect(ccmod.source, - 'modzip.source (type: undefined) must not exist').to.be.undefined; - - if (ccmod.url) { - const hash = await getHash(ccmod.url); - expect(ccmod.hash.sha256.toLowerCase()) - .to.equal(hash, 'hash must match'); - } -} - async function getHash(url) { const file = await download(url); diff --git a/input-locations.json b/input-locations.json index 246e201f..c97425ab 100644 --- a/input-locations.json +++ b/input-locations.json @@ -1,107 +1,26 @@ [ - { - "type": "ccmod", - "url": "https://github.com/krypciak/input-api/releases/download/v1.0.2/input-api.ccmod" - }, - { - "type": "ccmod", - "url": "https://github.com/krypciak/cc-blitzkrieg/releases/download/v0.4.8/cc-blitzkrieg-0.4.8.ccmod" - }, - { - "type": "ccmod", - "url": "https://github.com/krypciak/cc-fancy-crash/releases/download/v1.0.8/cc-fancy-crash-1.0.8.ccmod" - }, - { - "type": "modZip", - "urlZip": "https://github.com/CCDirectLink/Blades/archive/1.6.0.zip", - "source": "Blades-1.6.0" - }, - { - "type": "ccmod", - "url": "https://github.com/krypciak/cc-jetpack-widget/releases/download/v1.0.1/cc-jetpack-widget-1.0.1.ccmod" - }, - { - "type": "ccmod", - "url": "https://github.com/krypciak/cc-character-widgets/releases/download/v1.0.0/cc-character-widgets-1.0.0.ccmod" - }, - { - "type": "ccmod", - "url": "https://github.com/EpicYoshiMaster/CCPresetRevivalPlus/releases/download/2.1.1/CCPresetRevivalPlus.v2.1.1.ccmod" - }, - { - "type": "ccmod", - "url": "https://github.com/krypciak/cc-element-boss/releases/download/v0.1.3/element-boss-0.1.3.ccmod" - }, - { - "type": "ccmod", - "url": "https://github.com/CCDirectLink/item-api/releases/download/v0.4.4/item-api.ccmod" - }, - { - "type": "ccmod", - "url": "https://github.com/krypciak/cc-extra-dialogue/releases/download/v1.0.1/cc-extra-dialogue.ccmod" - }, - { - "type": "ccmod", - "url": "https://github.com/krypciak/cc-vim/releases/download/v1.5.5/cc-vim-1.5.5.ccmod" - }, - { - "type": "modZip", - "urlZip": "https://github.com/Symphiel/CursedCode/archive/refs/tags/0.1.1-2.zip", - "source": "CursedCode-0.1.1-2" - }, - { - "type": "modZip", - "urlZip": "https://github.com/Pyrocorvid/CCNineRooms/archive/refs/tags/v1.0.2.zip", - "source": "CCNineRooms-1.0.2/nine-rooms" - }, - { - "type": "modZip", - "urlZip": "https://github.com/Pyrocorvid/CCNineRooms/archive/refs/tags/v1.0.2.zip", - "source": "CCNineRooms-1.0.2/past-booster" - }, - { - "type": "modZip", - "urlZip": "https://github.com/rioreur/palicat/archive/refs/tags/1.0.6.zip", - "source": "palicat-1.0.6" - }, - { - "type": "ccmod", - "url": "https://github.com/elluminance/cc-capped-stats/releases/download/v1.0.0/cc-capped-stats.ccmod" - }, - { - "type": "ccmod", - "url": "https://github.com/elluminance/crosscode-font-utils/releases/download/v1.2.1/font-utils.ccmod" - }, - { - "type": "ccmod", - "url": "https://github.com/elluminance/crosscode-extension-asset-preloader/releases/download/v1.0.0/extension-asset-preloader.ccmod" - }, - { - "type": "ccmod", - "url": "https://github.com/elluminance/crosscode-modifier-api-reborn/releases/download/v0.1.1/modifier-api.ccmod" - }, - { - "type": "ccmod", - "url": "https://github.com/elluminance/el-crosscode-tweaks/releases/download/v0.7.5/els-tweaks.ccmod" - }, - { - "type": "modZip", - "urlZip": "https://github.com/Inevitabilis/CC-Junolea/archive/refs/tags/v1.0.1.zip", - "source": "CC-Junolea-1.0.1" - }, - { - "type": "modZip", - "urlZip": "https://github.com/XenonA7/cc-party-element-effects/archive/refs/tags/1.0.1.zip", - "source": "cc-party-element-effects-1.0.1" - }, - { - "type": "modZip", - "urlZip": "https://github.com/XenonA7/qine/archive/refs/tags/0.3.1.zip", - "source": "qine-0.3.1" - }, - { - "type": "modZip", - "urlZip": "https://github.com/XenonA7/xmc-hexacast/archive/refs/tags/0.27.3.zip", - "source": "xmc-hexacast-0.27.3" - } + { "url": "https://github.com/krypciak/input-api/releases/download/v1.0.2/input-api.ccmod" }, + { "url": "https://github.com/krypciak/cc-blitzkrieg/releases/download/v0.4.8/cc-blitzkrieg-0.4.8.ccmod" }, + { "url": "https://github.com/krypciak/cc-fancy-crash/releases/download/v1.0.8/cc-fancy-crash-1.0.8.ccmod" }, + { "url": "https://github.com/CCDirectLink/Blades/archive/1.6.0.zip" }, + { "url": "https://github.com/krypciak/cc-jetpack-widget/releases/download/v1.0.1/cc-jetpack-widget-1.0.1.ccmod" }, + { "url": "https://github.com/krypciak/cc-character-widgets/releases/download/v1.0.0/cc-character-widgets-1.0.0.ccmod" }, + { "url": "https://github.com/EpicYoshiMaster/CCPresetRevivalPlus/releases/download/2.1.1/CCPresetRevivalPlus.v2.1.1.ccmod" }, + { "url": "https://github.com/krypciak/cc-element-boss/releases/download/v0.1.3/element-boss-0.1.3.ccmod" }, + { "url": "https://github.com/CCDirectLink/item-api/releases/download/v0.4.4/item-api.ccmod" }, + { "url": "https://github.com/krypciak/cc-extra-dialogue/releases/download/v1.0.1/cc-extra-dialogue.ccmod" }, + { "url": "https://github.com/krypciak/cc-vim/releases/download/v1.5.5/cc-vim-1.5.5.ccmod" }, + { "url": "https://github.com/Symphiel/CursedCode/archive/refs/tags/0.1.1-2.zip" }, + { "url": "https://github.com/Pyrocorvid/CCNineRooms/archive/refs/tags/v1.0.2.zip", "source": "CCNineRooms-1.0.2/nine-rooms" }, + { "url": "https://github.com/Pyrocorvid/CCNineRooms/archive/refs/tags/v1.0.2.zip", "source": "CCNineRooms-1.0.2/past-booster" }, + { "url": "https://github.com/rioreur/palicat/archive/refs/tags/1.0.6.zip" }, + { "url": "https://github.com/elluminance/cc-capped-stats/releases/download/v1.0.0/cc-capped-stats.ccmod" }, + { "url": "https://github.com/elluminance/crosscode-font-utils/releases/download/v1.2.1/font-utils.ccmod" }, + { "url": "https://github.com/elluminance/crosscode-extension-asset-preloader/releases/download/v1.0.0/extension-asset-preloader.ccmod" }, + { "url": "https://github.com/elluminance/crosscode-modifier-api-reborn/releases/download/v0.1.1/modifier-api.ccmod" }, + { "url": "https://github.com/elluminance/el-crosscode-tweaks/releases/download/v0.7.5/els-tweaks.ccmod" }, + { "url": "https://github.com/Inevitabilis/CC-Junolea/archive/refs/tags/v1.0.1.zip" }, + { "url": "https://github.com/XenonA7/cc-party-element-effects/archive/refs/tags/1.0.1.zip" }, + { "url": "https://github.com/XenonA7/qine/archive/refs/tags/0.3.1.zip" }, + { "url": "https://github.com/XenonA7/xmc-hexacast/archive/refs/tags/0.27.3.zip" } ] diff --git a/inputLocationsFormat.md b/inputLocationsFormat.md index 043767f3..3596fb40 100644 --- a/inputLocationsFormat.md +++ b/inputLocationsFormat.md @@ -12,26 +12,22 @@ Each array is a different input location. // PNP.PackageDBPackage imported from npDatabaseFormat.md // PSL.PatchStepsPatch imported from https://github.com/CCDirectLink/CLS/blob/master/proposals/1/patch-steps.md -declare type InputLocation = InjectedInputLocation | ModZipInputLocation; - -// Represents a raw input location to put more or less directly into npDatabase.json -declare type InjectedInputLocation = { - type: "injected"; -} & PNP.PackageDBPackage; - -declare type ModZipInputLocation = { - type: "modZip"; - // The URL of the ZIP file. - urlZip: string; - // The subdirectory in which the package.json file is kept. - // Note that GitHub archives have an additional enclosing directory, so you will usually need to use this. - // Only this subdirectory & subdirectories of it are extracted, and it is extracted at the target installation directory. - source?: string; - // If provided, then the package.json file is at this location in the archive, regardless of 'source'. - // This must pretty much only be used for base packages. - packageJSONPath?: string; -}; +declare type InputLocation = ModZipInputLocation + +declare type ZipInputLocation = { + type: 'zip' | undefined + // The URL of the ZIP file. + url: string + // The subdirectory in which the package.json file is kept. + // Note that GitHub archives have an additional enclosing directory, so you will usually need to use this. + // Only this subdirectory & subdirectories of it are extracted, and it is extracted at the target installation directory. + source?: string + // If provided, then the package.json file is at this location in the archive, regardless of 'source'. + // This must pretty much only be used for base packages. + packageJSONPath?: string + ccmodPath?: string +} // The content of the input-locations.json file. -declare type InputLocations = InputLocation[]; +declare type InputLocations = InputLocation[] ``` diff --git a/npDatabase.json b/npDatabase.json index 2e5f784b..677e51ce 100644 --- a/npDatabase.json +++ b/npDatabase.json @@ -18,7 +18,7 @@ }, "installation": [ { - "type": "modZip", + "type": "zip", "url": "https://github.com/rioreur/palicat/archive/refs/tags/1.0.6.zip", "source": "palicat-1.0.6", "hash": { @@ -70,7 +70,7 @@ }, "installation": [ { - "type": "modZip", + "type": "zip", "url": "https://github.com/XenonA7/qine/archive/refs/tags/0.3.1.zip", "source": "qine-0.3.1", "hash": { @@ -99,7 +99,7 @@ }, "installation": [ { - "type": "modZip", + "type": "zip", "url": "https://github.com/CCDirectLink/Blades/archive/1.6.0.zip", "source": "Blades-1.6.0", "hash": { @@ -133,7 +133,7 @@ }, "installation": [ { - "type": "ccmod", + "type": "zip", "url": "https://github.com/krypciak/cc-blitzkrieg/releases/download/v0.4.8/cc-blitzkrieg-0.4.8.ccmod", "hash": { "sha256": "eb88b197308a00273f6aeb713b9445f37aa1a4d161159aee243951da5c85bbd1" @@ -164,7 +164,7 @@ }, "installation": [ { - "type": "ccmod", + "type": "zip", "url": "https://github.com/elluminance/cc-capped-stats/releases/download/v1.0.0/cc-capped-stats.ccmod", "hash": { "sha256": "afd410d055effb03c46b8604cab4f402a0ec986b2c9394c4af3be3546a594f79" @@ -196,7 +196,7 @@ }, "installation": [ { - "type": "ccmod", + "type": "zip", "url": "https://github.com/krypciak/cc-character-widgets/releases/download/v1.0.0/cc-character-widgets-1.0.0.ccmod", "hash": { "sha256": "64fe713374289d4e9e164afa6e23b96ab3f397323f0e37977fb6ffc1fd70122b" @@ -224,7 +224,7 @@ }, "installation": [ { - "type": "ccmod", + "type": "zip", "url": "https://github.com/krypciak/cc-extra-dialogue/releases/download/v1.0.1/cc-extra-dialogue.ccmod", "hash": { "sha256": "851d2c3aafcf7dda646e6ee80da3c99588a60f6735f2b8a64abb17cea9f85f5d" @@ -252,7 +252,7 @@ }, "installation": [ { - "type": "ccmod", + "type": "zip", "url": "https://github.com/krypciak/cc-fancy-crash/releases/download/v1.0.8/cc-fancy-crash-1.0.8.ccmod", "hash": { "sha256": "4072312dfc3d9f99b0b33df61dc8470f96e53453c9b45b71d7e9ef83db24b7aa" @@ -286,7 +286,7 @@ }, "installation": [ { - "type": "ccmod", + "type": "zip", "url": "https://github.com/krypciak/cc-jetpack-widget/releases/download/v1.0.1/cc-jetpack-widget-1.0.1.ccmod", "hash": { "sha256": "fa0d7f74e443030dcf5615e08ff4fc20a2d38b08d8d9e1ca78eda32f3c394c0c" @@ -317,7 +317,7 @@ }, "installation": [ { - "type": "ccmod", + "type": "zip", "url": "https://github.com/krypciak/cc-vim/releases/download/v1.5.5/cc-vim-1.5.5.ccmod", "hash": { "sha256": "c26c6e3e2d0a52242e226c89556d5e7820af78e71c436c2deeeb2525e550f201" @@ -344,7 +344,7 @@ }, "installation": [ { - "type": "modZip", + "type": "zip", "url": "https://github.com/Symphiel/CursedCode/archive/refs/tags/0.1.1-2.zip", "source": "CursedCode-0.1.1-2", "hash": { @@ -374,7 +374,7 @@ }, "installation": [ { - "type": "ccmod", + "type": "zip", "url": "https://github.com/elluminance/el-crosscode-tweaks/releases/download/v0.7.5/els-tweaks.ccmod", "hash": { "sha256": "30421792706ab587c67af19b698609d0c2ae6712adfaa3464bf4d3776ee66c90" @@ -399,7 +399,7 @@ }, "installation": [ { - "type": "ccmod", + "type": "zip", "url": "https://github.com/krypciak/cc-element-boss/releases/download/v0.1.3/element-boss-0.1.3.ccmod", "hash": { "sha256": "569d371c4bb151222e5d8cd1104115bfe6c5fe1b4325813e586e26ecbe0fbbb2" @@ -424,7 +424,7 @@ }, "installation": [ { - "type": "ccmod", + "type": "zip", "url": "https://github.com/elluminance/crosscode-extension-asset-preloader/releases/download/v1.0.0/extension-asset-preloader.ccmod", "hash": { "sha256": "ec7f83e4064a220ac6ca44d8bb4659cc2665709b5dcc173ea515133ef06b7b09" @@ -449,7 +449,7 @@ }, "installation": [ { - "type": "ccmod", + "type": "zip", "url": "https://github.com/elluminance/crosscode-font-utils/releases/download/v1.2.1/font-utils.ccmod", "hash": { "sha256": "82b694a6e808081d9db494a57598944c6c7363439f561e87832225677e61769a" @@ -474,7 +474,7 @@ }, "installation": [ { - "type": "ccmod", + "type": "zip", "url": "https://github.com/krypciak/input-api/releases/download/v1.0.2/input-api.ccmod", "hash": { "sha256": "0c3acb06a812f50237f69fd9d4b3b542f9cba6d583be5bf1082399c6a1ab9e08" @@ -508,7 +508,7 @@ }, "installation": [ { - "type": "ccmod", + "type": "zip", "url": "https://github.com/CCDirectLink/item-api/releases/download/v0.4.4/item-api.ccmod", "hash": { "sha256": "82523e959809c7b46cce0d7c702f9bf85f1981a80ac999be09782811fcaa33d0" @@ -579,7 +579,7 @@ }, "installation": [ { - "type": "modZip", + "type": "zip", "url": "https://github.com/Inevitabilis/CC-Junolea/archive/refs/tags/v1.0.1.zip", "source": "CC-Junolea-1.0.1", "hash": { @@ -606,7 +606,7 @@ }, "installation": [ { - "type": "ccmod", + "type": "zip", "url": "https://github.com/elluminance/crosscode-modifier-api-reborn/releases/download/v0.1.1/modifier-api.ccmod", "hash": { "sha256": "2e2ebf66a3bdb3a98d19b59c6e51918cea050940a28de4657b7dc05c62d1b30b" @@ -631,7 +631,7 @@ }, "installation": [ { - "type": "modZip", + "type": "zip", "url": "https://github.com/Pyrocorvid/CCNineRooms/archive/refs/tags/v1.0.2.zip", "source": "CCNineRooms-1.0.2/nine-rooms", "hash": { @@ -677,7 +677,7 @@ }, "installation": [ { - "type": "modZip", + "type": "zip", "url": "https://github.com/XenonA7/cc-party-element-effects/archive/refs/tags/1.0.1.zip", "source": "cc-party-element-effects-1.0.1", "hash": { @@ -706,7 +706,7 @@ }, "installation": [ { - "type": "modZip", + "type": "zip", "url": "https://github.com/Pyrocorvid/CCNineRooms/archive/refs/tags/v1.0.2.zip", "source": "CCNineRooms-1.0.2/past-booster", "hash": { @@ -737,7 +737,7 @@ }, "installation": [ { - "type": "ccmod", + "type": "zip", "url": "https://github.com/EpicYoshiMaster/CCPresetRevivalPlus/releases/download/2.1.1/CCPresetRevivalPlus.v2.1.1.ccmod", "hash": { "sha256": "19aa49547dfd4fe686be1e490b6b004ef36250d057de896984a91c11bf2adb77" @@ -781,7 +781,7 @@ }, "installation": [ { - "type": "modZip", + "type": "zip", "url": "https://github.com/XenonA7/xmc-hexacast/archive/refs/tags/0.27.3.zip", "source": "xmc-hexacast-0.27.3", "hash": { From 6a10eb441780d76295c4a7f468fd2ee86c98e5c2 Mon Sep 17 00:00:00 2001 From: krypek Date: Tue, 20 Feb 2024 21:46:01 +0100 Subject: [PATCH 062/196] Fix type --- build/src/types.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/src/types.d.ts b/build/src/types.d.ts index e404423d..b4750c0a 100644 --- a/build/src/types.d.ts +++ b/build/src/types.d.ts @@ -2,7 +2,7 @@ declare type InputLocation = ZipInputLocation declare type ZipInputLocation = { - type: 'zip' | undefined + type?: 'zip' // The URL of the ZIP file. url: string // The subdirectory in which the package.json file is kept. From ea82c5c9f4347f57bf7f119b53e8610b2f5a8ff5 Mon Sep 17 00:00:00 2001 From: krypek Date: Tue, 20 Feb 2024 21:46:12 +0100 Subject: [PATCH 063/196] Test CCBot action --- .github/workflows/ccbot.yaml | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 .github/workflows/ccbot.yaml diff --git a/.github/workflows/ccbot.yaml b/.github/workflows/ccbot.yaml new file mode 100644 index 00000000..a949b3bf --- /dev/null +++ b/.github/workflows/ccbot.yaml @@ -0,0 +1,30 @@ +name: CI +on: + pull_request: + types: [opened] + +jobs: + completePR: + if: startsWith(github.event.pull_request.title, 'CCBot:') + runs-on: ubuntu-latest + + steps: + - name: Check PR name + - uses: actions/checkout@v2 + - uses: actions/setup-node@v1 + with: + node-version: 15.x + - working-directory: build/ + run: npm ci + - name: Update the database + working-directory: build/ + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: npm run start + - name: Commit changes + - run: | + git config --global user.email "${GITHUB_ACTOR_EMAIL}" + git config --global user.name "${GITHUB_ACTOR}" + git config --global --add safe.directory /github/workspaces + git commit -m "" + git push From f17f1b127c73c4a7bd9d7b16eed9ada10d96977f Mon Sep 17 00:00:00 2001 From: krypek Date: Tue, 20 Feb 2024 21:58:28 +0100 Subject: [PATCH 064/196] Remove console.log's --- build/src/source.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/build/src/source.ts b/build/src/source.ts index 7eca10e0..9918b512 100644 --- a/build/src/source.ts +++ b/build/src/source.ts @@ -57,7 +57,6 @@ async function getModZipFile(zip: ZipInputLocation, fileName: string, parseTo /* find the source if it's missing */ if (!zip.source && zip.url.endsWith('.zip')) { zip.source = await findZipRoot(buf) - console.log(zip.source) } const stream = await openFile(archive, modZipPath(zip, fileName)) if (!stream) return @@ -126,7 +125,6 @@ async function findZipRoot(buffer: Buffer): Promise { zip.on('entry', (entry: yauzl.Entry) => { if (!entry.fileName.endsWith('/')) { const name = path.basename(entry.fileName) - console.log(entry.fileName, name) if (name == 'package.json' || name == 'ccmod.json') { zip.close() resolve(path.dirname(entry.fileName)) From 91ded0b02e04807b927be29129edd58c8d19e6ea Mon Sep 17 00:00:00 2001 From: krypek Date: Tue, 20 Feb 2024 21:58:32 +0100 Subject: [PATCH 065/196] Update dependencies --- build/package-lock.json | 1846 +++++++++++++++++++-------------------- build/package.json | 24 +- 2 files changed, 926 insertions(+), 944 deletions(-) diff --git a/build/package-lock.json b/build/package-lock.json index d7714712..b4df8cb6 100644 --- a/build/package-lock.json +++ b/build/package-lock.json @@ -8,91 +8,118 @@ "name": "ccmoddb", "version": "1.0.0", "dependencies": { - "@types/semver": "^7.3.9", - "chai": "^4.3.4", - "mocha": "^9.1.3", - "semver": "^7.3.5", - "yauzl": "^2.10.0" + "@types/semver": "^7.5.7", + "chai": "^5.1.0", + "mocha": "^10.3.0", + "semver": "^7.6.0", + "yauzl": "^3.1.0" }, "devDependencies": { "@octokit/types": "github:octokit/types.ts", - "@types/node": "^16.11.6", - "@types/yauzl": "^2.9.2", - "@typescript-eslint/eslint-plugin": "^5.2.0", - "@typescript-eslint/parser": "^5.2.0", - "eslint": "^8.1.0", - "typescript": "^4.4.4" + "@types/node": "^20.11.19", + "@types/yauzl": "^2.10.3", + "@typescript-eslint/eslint-plugin": "^7.0.2", + "@typescript-eslint/parser": "^7.0.2", + "eslint": "^8.56.0", + "typescript": "^5.3.3" } }, - "node_modules/@eslint/eslintrc": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.0.3.tgz", - "integrity": "sha512-DHI1wDPoKCBPoLZA3qDR91+3te/wDSc1YhKg3jR8NxKKRJq2hwHwcWv31cSwSYvIBrmbENoYMWcenW8uproQqg==", + "node_modules/@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", + "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", "dev": true, - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.0.0", - "globals": "^13.9.0", - "ignore": "^4.0.6", - "import-fresh": "^3.2.1", - "js-yaml": "^3.13.1", - "minimatch": "^3.0.4", - "strip-json-comments": "^3.1.1" - }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">=0.10.0" } }, - "node_modules/@eslint/eslintrc/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", "dev": true, "dependencies": { - "sprintf-js": "~1.0.2" + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } }, - "node_modules/@eslint/eslintrc/node_modules/ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "node_modules/@eslint-community/regexpp": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", + "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", "dev": true, "engines": { - "node": ">= 4" + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, - "node_modules/@eslint/eslintrc/node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "node_modules/@eslint/eslintrc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", "dev": true, "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" }, - "bin": { - "js-yaml": "bin/js-yaml.js" + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/js": { + "version": "8.56.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.56.0.tgz", + "integrity": "sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, "node_modules/@humanwhocodes/config-array": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.6.0.tgz", - "integrity": "sha512-JQlEKbcgEUjBFhLIF4iqM7u/9lwgHRBcpHrmUNCALK0Q3amXN6lxdoXLnF0sm11E9VqTmBALR87IlUg1bZ8A9A==", + "version": "0.11.14", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", + "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", "dev": true, "dependencies": { - "@humanwhocodes/object-schema": "^1.2.0", - "debug": "^4.1.1", - "minimatch": "^3.0.4" + "@humanwhocodes/object-schema": "^2.0.2", + "debug": "^4.3.1", + "minimatch": "^3.0.5" }, "engines": { "node": ">=10.10.0" } }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, "node_modules/@humanwhocodes/object-schema": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.0.tgz", - "integrity": "sha512-wdppn25U8z/2yiaT6YGquE6X8sSv7hNMWSXYSSU1jGv/yd6XqjXgTDJ8KP4NgjTXfJ3GbRjeeb8RTV7a/VpM+w==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz", + "integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==", "dev": true }, "node_modules/@nodelib/fs.scandir": { @@ -146,56 +173,62 @@ } }, "node_modules/@types/json-schema": { - "version": "7.0.9", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", - "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==", + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", "dev": true }, "node_modules/@types/node": { - "version": "16.11.6", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.6.tgz", - "integrity": "sha512-ua7PgUoeQFjmWPcoo9khiPum3Pd60k4/2ZGXt18sm2Slk0W0xZTqt5Y0Ny1NyBiN1EVQ/+FaF9NcY4Qe6rwk5w==", - "dev": true + "version": "20.11.19", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.19.tgz", + "integrity": "sha512-7xMnVEcZFu0DikYjWOlRq7NTPETrm7teqUT2WkQjrTIkEgUyyGdWsj/Zg8bEJt5TNklzbPD1X3fqfsHw3SpapQ==", + "dev": true, + "dependencies": { + "undici-types": "~5.26.4" + } }, "node_modules/@types/semver": { - "version": "7.3.9", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.9.tgz", - "integrity": "sha512-L/TMpyURfBkf+o/526Zb6kd/tchUP3iBDEPjqjb+U2MAJhVRxxrmr2fwpe08E7QsV7YLcpq0tUaQ9O9x97ZIxQ==" + "version": "7.5.7", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.7.tgz", + "integrity": "sha512-/wdoPq1QqkSj9/QOeKkFquEuPzQbHTWAMPH/PaUMB+JuR31lXhlWXRZ52IpfDYVlDOUBvX09uBrPwxGT1hjNBg==" }, "node_modules/@types/yauzl": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.9.2.tgz", - "integrity": "sha512-8uALY5LTvSuHgloDVUvWP3pIauILm+8/0pDMokuDYIoNsOkSwd5AiHBTSEJjKTDcZr5z8UpgOWZkxBF4iJftoA==", + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz", + "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==", "dev": true, "dependencies": { "@types/node": "*" } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.2.0.tgz", - "integrity": "sha512-qQwg7sqYkBF4CIQSyRQyqsYvP+g/J0To9ZPVNJpfxfekl5RmdvQnFFTVVwpRtaUDFNvjfe/34TgY/dpc3MgNTw==", - "dev": true, - "dependencies": { - "@typescript-eslint/experimental-utils": "5.2.0", - "@typescript-eslint/scope-manager": "5.2.0", - "debug": "^4.3.2", - "functional-red-black-tree": "^1.0.1", - "ignore": "^5.1.8", - "regexpp": "^3.2.0", - "semver": "^7.3.5", - "tsutils": "^3.21.0" + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.0.2.tgz", + "integrity": "sha512-/XtVZJtbaphtdrWjr+CJclaCVGPtOdBpFEnvtNf/jRV0IiEemRrL0qABex/nEt8isYcnFacm3nPHYQwL+Wb7qg==", + "dev": true, + "dependencies": { + "@eslint-community/regexpp": "^4.5.1", + "@typescript-eslint/scope-manager": "7.0.2", + "@typescript-eslint/type-utils": "7.0.2", + "@typescript-eslint/utils": "7.0.2", + "@typescript-eslint/visitor-keys": "7.0.2", + "debug": "^4.3.4", + "graphemer": "^1.4.0", + "ignore": "^5.2.4", + "natural-compare": "^1.4.0", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^5.0.0", - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + "@typescript-eslint/parser": "^7.0.0", + "eslint": "^8.56.0" }, "peerDependenciesMeta": { "typescript": { @@ -203,81 +236,85 @@ } } }, - "node_modules/@typescript-eslint/experimental-utils": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.2.0.tgz", - "integrity": "sha512-fWyT3Agf7n7HuZZRpvUYdFYbPk3iDCq6fgu3ulia4c7yxmPnwVBovdSOX7RL+k8u6hLbrXcdAehlWUVpGh6IEw==", + "node_modules/@typescript-eslint/parser": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.0.2.tgz", + "integrity": "sha512-GdwfDglCxSmU+QTS9vhz2Sop46ebNCXpPPvsByK7hu0rFGRHL+AusKQJ7SoN+LbLh6APFpQwHKmDSwN35Z700Q==", "dev": true, "dependencies": { - "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.2.0", - "@typescript-eslint/types": "5.2.0", - "@typescript-eslint/typescript-estree": "5.2.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^3.0.0" + "@typescript-eslint/scope-manager": "7.0.2", + "@typescript-eslint/types": "7.0.2", + "@typescript-eslint/typescript-estree": "7.0.2", + "@typescript-eslint/visitor-keys": "7.0.2", + "debug": "^4.3.4" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "*" + "eslint": "^8.56.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/@typescript-eslint/parser": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.2.0.tgz", - "integrity": "sha512-Uyy4TjJBlh3NuA8/4yIQptyJb95Qz5PX//6p8n7zG0QnN4o3NF9Je3JHbVU7fxf5ncSXTmnvMtd/LDQWDk0YqA==", + "node_modules/@typescript-eslint/scope-manager": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.0.2.tgz", + "integrity": "sha512-l6sa2jF3h+qgN2qUMjVR3uCNGjWw4ahGfzIYsCtFrQJCjhbrDPdiihYT8FnnqFwsWX+20hK592yX9I2rxKTP4g==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "5.2.0", - "@typescript-eslint/types": "5.2.0", - "@typescript-eslint/typescript-estree": "5.2.0", - "debug": "^4.3.2" + "@typescript-eslint/types": "7.0.2", + "@typescript-eslint/visitor-keys": "7.0.2" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } } }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.2.0.tgz", - "integrity": "sha512-RW+wowZqPzQw8MUFltfKYZfKXqA2qgyi6oi/31J1zfXJRpOn6tCaZtd9b5u9ubnDG2n/EMvQLeZrsLNPpaUiFQ==", + "node_modules/@typescript-eslint/type-utils": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.0.2.tgz", + "integrity": "sha512-IKKDcFsKAYlk8Rs4wiFfEwJTQlHcdn8CLwLaxwd6zb8HNiMcQIFX9sWax2k4Cjj7l7mGS5N1zl7RCHOVwHq2VQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.2.0", - "@typescript-eslint/visitor-keys": "5.2.0" + "@typescript-eslint/typescript-estree": "7.0.2", + "@typescript-eslint/utils": "7.0.2", + "debug": "^4.3.4", + "ts-api-utils": "^1.0.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.56.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, "node_modules/@typescript-eslint/types": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.2.0.tgz", - "integrity": "sha512-cTk6x08qqosps6sPyP2j7NxyFPlCNsJwSDasqPNjEQ8JMD5xxj2NHxcLin5AJQ8pAVwpQ8BMI3bTxR0zxmK9qQ==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.0.2.tgz", + "integrity": "sha512-ZzcCQHj4JaXFjdOql6adYV4B/oFOFjPOC9XYwCaZFRvqN8Llfvv4gSxrkQkd2u4Ci62i2c6W6gkDwQJDaRc4nA==", "dev": true, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", @@ -285,21 +322,22 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.2.0.tgz", - "integrity": "sha512-RsdXq2XmVgKbm9nLsE3mjNUM7BTr/K4DYR9WfFVMUuozHWtH5gMpiNZmtrMG8GR385EOSQ3kC9HiEMJWimxd/g==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.0.2.tgz", + "integrity": "sha512-3AMc8khTcELFWcKcPc0xiLviEvvfzATpdPj/DXuOGIdQIIFybf4DMT1vKRbuAEOFMwhWt7NFLXRkbjsvKZQyvw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.2.0", - "@typescript-eslint/visitor-keys": "5.2.0", - "debug": "^4.3.2", - "globby": "^11.0.4", + "@typescript-eslint/types": "7.0.2", + "@typescript-eslint/visitor-keys": "7.0.2", + "debug": "^4.3.4", + "globby": "^11.1.0", "is-glob": "^4.0.3", - "semver": "^7.3.5", - "tsutils": "^3.21.0" + "minimatch": "9.0.3", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", @@ -311,32 +349,82 @@ } } }, + "node_modules/@typescript-eslint/typescript-estree/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/@typescript-eslint/typescript-estree/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.0.2.tgz", + "integrity": "sha512-PZPIONBIB/X684bhT1XlrkjNZJIEevwkKDsdwfiu1WeqBxYEEdIgVDgm8/bbKHVu+6YOpeRqcfImTdImx/4Bsw==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@types/json-schema": "^7.0.12", + "@types/semver": "^7.5.0", + "@typescript-eslint/scope-manager": "7.0.2", + "@typescript-eslint/types": "7.0.2", + "@typescript-eslint/typescript-estree": "7.0.2", + "semver": "^7.5.4" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.56.0" + } + }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.2.0.tgz", - "integrity": "sha512-Nk7HizaXWWCUBfLA/rPNKMzXzWS8Wg9qHMuGtT+v2/YpPij4nVXrVJc24N/r5WrrmqK31jCrZxeHqIgqRzs0Xg==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.0.2.tgz", + "integrity": "sha512-8Y+YiBmqPighbm5xA2k4wKTxRzx9EkBu7Rlw+WHqMvRJ3RPz/BMBO9b2ru0LUNmXg120PHUXD5+SWFy2R8DqlQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.2.0", - "eslint-visitor-keys": "^3.0.0" + "@typescript-eslint/types": "7.0.2", + "eslint-visitor-keys": "^3.4.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@ungap/promise-all-settled": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz", - "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==" + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "dev": true }, "node_modules/acorn": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.5.0.tgz", - "integrity": "sha512-yXbYeFy+jUuYd3/CDcg2NkIYE991XYX/bje7LmjJigUciaeO1JR4XxXgCIV1/Zc/dRuFEyw1L0pbA+qynJkW5Q==", + "version": "8.11.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", + "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", "dev": true, "bin": { "acorn": "bin/acorn" @@ -427,11 +515,11 @@ } }, "node_modules/assertion-error": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", - "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz", + "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==", "engines": { - "node": "*" + "node": ">=12" } }, "node_modules/balanced-match": { @@ -451,6 +539,7 @@ "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -501,19 +590,18 @@ } }, "node_modules/chai": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.4.tgz", - "integrity": "sha512-yS5H68VYOCtN1cjfwumDSuzn/9c+yza4f3reKXlE5rUg7SFcCEy90gJvydNgOYtblyf4Zi6jIWRnXOgErta0KA==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/chai/-/chai-5.1.0.tgz", + "integrity": "sha512-kDZ7MZyM6Q1DhR9jy7dalKohXQ2yrlXkk59CR52aRKxJrobmlBNqnFQxX9xOX8w+4mz8SYlKJa/7D7ddltFXCw==", "dependencies": { - "assertion-error": "^1.1.0", - "check-error": "^1.0.2", - "deep-eql": "^3.0.1", - "get-func-name": "^2.0.0", - "pathval": "^1.1.1", - "type-detect": "^4.0.5" + "assertion-error": "^2.0.1", + "check-error": "^2.0.0", + "deep-eql": "^5.0.1", + "loupe": "^3.1.0", + "pathval": "^2.0.0" }, "engines": { - "node": ">=4" + "node": ">=12" } }, "node_modules/chalk": { @@ -532,11 +620,11 @@ } }, "node_modules/check-error": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", - "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-2.0.0.tgz", + "integrity": "sha512-tjLAOBHKVxtPoHe/SA7kNOMvhCRdCJ3vETdeY0RuAc9popf+hyaSV6ZEg9hr4cpWF7jmo/JSWEnLDrnijS9Tog==", "engines": { - "node": "*" + "node": ">= 16" } }, "node_modules/chokidar": { @@ -605,7 +693,8 @@ "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true }, "node_modules/cross-spawn": { "version": "7.0.3", @@ -622,9 +711,9 @@ } }, "node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dependencies": { "ms": "2.1.2" }, @@ -649,14 +738,11 @@ } }, "node_modules/deep-eql": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", - "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", - "dependencies": { - "type-detect": "^4.0.0" - }, + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.1.tgz", + "integrity": "sha512-nwQCf6ne2gez3o1MxWifqkciwt0zhl0LO1/UwVu4uMBuPmflWM4oQ70XMqHqnBJA+nhzncaqL9HVL6KkHJ28lw==", "engines": { - "node": ">=0.12" + "node": ">=6" } }, "node_modules/deep-is": { @@ -702,18 +788,6 @@ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, - "node_modules/enquirer": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", - "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", - "dev": true, - "dependencies": { - "ansi-colors": "^4.1.1" - }, - "engines": { - "node": ">=8.6" - } - }, "node_modules/escalade": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", @@ -734,49 +808,49 @@ } }, "node_modules/eslint": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.1.0.tgz", - "integrity": "sha512-JZvNneArGSUsluHWJ8g8MMs3CfIEzwaLx9KyH4tZ2i+R2/rPWzL8c0zg3rHdwYVpN/1sB9gqnjHwz9HoeJpGHw==", - "dev": true, - "dependencies": { - "@eslint/eslintrc": "^1.0.3", - "@humanwhocodes/config-array": "^0.6.0", - "ajv": "^6.10.0", + "version": "8.56.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.56.0.tgz", + "integrity": "sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.56.0", + "@humanwhocodes/config-array": "^0.11.13", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", "debug": "^4.3.2", "doctrine": "^3.0.0", - "enquirer": "^2.3.5", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^6.0.0", - "eslint-utils": "^3.0.0", - "eslint-visitor-keys": "^3.0.0", - "espree": "^9.0.0", - "esquery": "^1.4.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^6.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^6.0.1", - "globals": "^13.6.0", - "ignore": "^4.0.6", - "import-fresh": "^3.0.0", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", "lodash.merge": "^4.6.2", - "minimatch": "^3.0.4", + "minimatch": "^3.1.2", "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "progress": "^2.0.0", - "regexpp": "^3.2.0", - "semver": "^7.2.1", - "strip-ansi": "^6.0.0", - "strip-json-comments": "^3.1.0", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" }, "bin": { "eslint": "bin/eslint.js" @@ -789,116 +863,54 @@ } }, "node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", "dev": true, "dependencies": { "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/eslint-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", - "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", - "dev": true, - "dependencies": { - "eslint-visitor-keys": "^2.0.0" + "estraverse": "^5.2.0" }, "engines": { - "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { - "url": "https://github.com/sponsors/mysticatea" - }, - "peerDependencies": { - "eslint": ">=5" - } - }, - "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true, - "engines": { - "node": ">=10" + "url": "https://opencollective.com/eslint" } }, "node_modules/eslint-visitor-keys": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.0.0.tgz", - "integrity": "sha512-mJOZa35trBTb3IyRmo8xmKBZlxf+N7OnUl4+ZhJHs/r+0770Wh/LEACE2pqMGMe27G/4y8P2bYGk4J70IC5k1Q==", + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/eslint/node_modules/eslint-scope": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-6.0.0.tgz", - "integrity": "sha512-uRDL9MWmQCkaFus8RF5K9/L/2fn+80yoW3jkD53l4shjCh26fCtvJGasxjUqP5OT87SYTxCVA3BwTUzuELx9kA==", - "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/eslint/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/eslint/node_modules/ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true, - "engines": { - "node": ">= 4" + "funding": { + "url": "https://opencollective.com/eslint" } }, "node_modules/espree": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.0.0.tgz", - "integrity": "sha512-r5EQJcYZ2oaGbeR0jR0fFVijGOcwai07/690YRXLINuhmVeRY4UKSAsQPe/0BNuDgwP7Ophoc1PRsr2E3tkbdQ==", + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", "dev": true, "dependencies": { - "acorn": "^8.5.0", - "acorn-jsx": "^5.3.1", - "eslint-visitor-keys": "^3.0.0" + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" }, - "engines": { - "node": ">=4" + "funding": { + "url": "https://opencollective.com/eslint" } }, "node_modules/esquery": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", - "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", "dev": true, "dependencies": { "estraverse": "^5.1.0" @@ -907,15 +919,6 @@ "node": ">=0.10" } }, - "node_modules/esquery/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, "node_modules/esrecurse": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", @@ -928,7 +931,7 @@ "node": ">=4.0" } }, - "node_modules/esrecurse/node_modules/estraverse": { + "node_modules/estraverse": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", @@ -937,15 +940,6 @@ "node": ">=4.0" } }, - "node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, "node_modules/esutils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", @@ -962,9 +956,9 @@ "dev": true }, "node_modules/fast-glob": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz", - "integrity": "sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", "dev": true, "dependencies": { "@nodelib/fs.stat": "^2.0.2", @@ -974,7 +968,7 @@ "micromatch": "^4.0.4" }, "engines": { - "node": ">=8" + "node": ">=8.6.0" } }, "node_modules/fast-glob/node_modules/glob-parent": { @@ -998,26 +992,18 @@ "node_modules/fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", "dev": true }, "node_modules/fastq": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", "dev": true, "dependencies": { "reusify": "^1.0.4" } }, - "node_modules/fd-slicer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", - "dependencies": { - "pend": "~1.2.0" - } - }, "node_modules/file-entry-cache": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", @@ -1065,12 +1051,13 @@ } }, "node_modules/flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", "dev": true, "dependencies": { - "flatted": "^3.1.0", + "flatted": "^3.2.9", + "keyv": "^4.5.3", "rimraf": "^3.0.2" }, "engines": { @@ -1078,15 +1065,15 @@ } }, "node_modules/flatted": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.2.tgz", - "integrity": "sha512-JaTY/wtrcSyvXJl4IMFHPKyFur1sE9AUqc0QnhOaJ0CxHtAoIV8pYDzeEfAaNEtGkOfq4gr3LBFmdXW5mOQFnA==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.0.tgz", + "integrity": "sha512-noqGuLw158+DuD9UPRKHpJ2hGxpFyDlYYrfM0mWt4XhT4n0lwzTLh70Tkdyy4kyTmyTT9Bv7bWAJqw7cgkEXDg==", "dev": true }, "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" }, "node_modules/fsevents": { "version": "2.3.3", @@ -1101,12 +1088,6 @@ "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, - "node_modules/functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", - "dev": true - }, "node_modules/get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", @@ -1124,19 +1105,18 @@ } }, "node_modules/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "minimatch": "^5.0.1", + "once": "^1.3.0" }, "engines": { - "node": "*" + "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -1154,10 +1134,29 @@ "node": ">=10.13.0" } }, + "node_modules/glob/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==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/glob/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/globals": { - "version": "13.11.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.11.0.tgz", - "integrity": "sha512-08/xrJ7wQjK9kkkRoI3OFUBbLx4f+6x3SGwcPvQ0QH6goFDrOU2oyAWrmh3dJezu65buo+HBMzAMQy6rovVC3g==", + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", "dev": true, "dependencies": { "type-fest": "^0.20.2" @@ -1170,16 +1169,16 @@ } }, "node_modules/globby": { - "version": "11.0.4", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz", - "integrity": "sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==", + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", "dev": true, "dependencies": { "array-union": "^2.1.0", "dir-glob": "^3.0.1", - "fast-glob": "^3.1.1", - "ignore": "^5.1.4", - "merge2": "^1.3.0", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", "slash": "^3.0.0" }, "engines": { @@ -1189,13 +1188,11 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/growl": { - "version": "1.10.5", - "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", - "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", - "engines": { - "node": ">=4.x" - } + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true }, "node_modules/has-flag": { "version": "4.0.0", @@ -1214,9 +1211,9 @@ } }, "node_modules/ignore": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", - "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", + "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", "dev": true, "engines": { "node": ">= 4" @@ -1241,7 +1238,7 @@ "node_modules/imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "dev": true, "engines": { "node": ">=0.8.19" @@ -1250,7 +1247,7 @@ "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", "dependencies": { "once": "^1.3.0", "wrappy": "1" @@ -1307,6 +1304,15 @@ "node": ">=0.12.0" } }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/is-plain-obj": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", @@ -1329,7 +1335,8 @@ "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true }, "node_modules/js-yaml": { "version": "4.1.0", @@ -1342,6 +1349,12 @@ "js-yaml": "bin/js-yaml.js" } }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true + }, "node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", @@ -1351,9 +1364,18 @@ "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", "dev": true }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "dependencies": { + "json-buffer": "3.0.1" + } + }, "node_modules/levn": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", @@ -1402,6 +1424,14 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/loupe": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.1.0.tgz", + "integrity": "sha512-qKl+FrLXUhFuHUoDJG7f8P8gEMHq9NFS0c6ghXG1J0rldmZFQZoNVv/vyirE9qwCIhWZDsvEFd1sbFu3GvRQFg==", + "dependencies": { + "get-func-name": "^2.0.1" + } + }, "node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", @@ -1423,13 +1453,13 @@ } }, "node_modules/micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", "dev": true, "dependencies": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" + "braces": "^3.0.2", + "picomatch": "^2.3.1" }, "engines": { "node": ">=8.6" @@ -1439,6 +1469,7 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, "dependencies": { "brace-expansion": "^1.1.7" }, @@ -1447,53 +1478,53 @@ } }, "node_modules/mocha": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-9.2.2.tgz", - "integrity": "sha512-L6XC3EdwT6YrIk0yXpavvLkn8h+EU+Y5UcCHKECyMbdUIxyMuZj4bX4U9e1nvnvUUvQVsV2VHQr5zLdcUkhW/g==", + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.3.0.tgz", + "integrity": "sha512-uF2XJs+7xSLsrmIvn37i/wnc91nw7XjOQB8ccyx5aEgdnohr7n+rEiZP23WkCYHjilR6+EboEnbq/ZQDz4LSbg==", "dependencies": { - "@ungap/promise-all-settled": "1.1.2", "ansi-colors": "4.1.1", "browser-stdout": "1.3.1", "chokidar": "3.5.3", - "debug": "4.3.3", + "debug": "4.3.4", "diff": "5.0.0", "escape-string-regexp": "4.0.0", "find-up": "5.0.0", - "glob": "7.2.0", - "growl": "1.10.5", + "glob": "8.1.0", "he": "1.2.0", "js-yaml": "4.1.0", "log-symbols": "4.1.0", - "minimatch": "4.2.1", + "minimatch": "5.0.1", "ms": "2.1.3", - "nanoid": "3.3.1", "serialize-javascript": "6.0.0", "strip-json-comments": "3.1.1", "supports-color": "8.1.1", - "which": "2.0.2", - "workerpool": "6.2.0", + "workerpool": "6.2.1", "yargs": "16.2.0", "yargs-parser": "20.2.4", "yargs-unparser": "2.0.0" }, "bin": { "_mocha": "bin/_mocha", - "mocha": "bin/mocha" + "mocha": "bin/mocha.js" }, "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mochajs" + "node": ">= 14.0.0" + } + }, + "node_modules/mocha/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==", + "dependencies": { + "balanced-match": "^1.0.0" } }, "node_modules/mocha/node_modules/minimatch": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-4.2.1.tgz", - "integrity": "sha512-9Uq1ChtSZO+Mxa/CL1eGizn2vRn3MlLgzhT0Iz8zaY8NdvxvB0d5QdPFmCKf7JKA9Lerx5vRrnwO03jsSfGG9g==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", + "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", "dependencies": { - "brace-expansion": "^1.1.7" + "brace-expansion": "^2.0.1" }, "engines": { "node": ">=10" @@ -1523,21 +1554,10 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, - "node_modules/nanoid": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.1.tgz", - "integrity": "sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==", - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, "node_modules/natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", "dev": true }, "node_modules/normalize-path": { @@ -1551,23 +1571,23 @@ "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "dependencies": { "wrappy": "1" } }, "node_modules/optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", + "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", "dev": true, "dependencies": { + "@aashutoshrathi/word-wrap": "^1.2.3", "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", "levn": "^0.4.1", "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" + "type-check": "^0.4.0" }, "engines": { "node": ">= 0.8.0" @@ -1624,7 +1644,8 @@ "node_modules/path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, "engines": { "node": ">=0.10.0" } @@ -1648,22 +1669,22 @@ } }, "node_modules/pathval": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", - "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-2.0.0.tgz", + "integrity": "sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==", "engines": { - "node": "*" + "node": ">= 14.16" } }, "node_modules/pend": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=" + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==" }, "node_modules/picomatch": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", - "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "engines": { "node": ">=8.6" }, @@ -1680,19 +1701,10 @@ "node": ">= 0.8.0" } }, - "node_modules/progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, "node_modules/punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", "dev": true, "engines": { "node": ">=6" @@ -1737,18 +1749,6 @@ "node": ">=8.10.0" } }, - "node_modules/regexpp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - } - }, "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -1791,6 +1791,26 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/rimraf/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", @@ -1885,12 +1905,6 @@ "node": ">=8" } }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true - }, "node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", @@ -1940,7 +1954,7 @@ "node_modules/text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", "dev": true }, "node_modules/to-regex-range": { @@ -1954,25 +1968,16 @@ "node": ">=8.0" } }, - "node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "node_modules/tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "node_modules/ts-api-utils": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.2.1.tgz", + "integrity": "sha512-RIYA36cJn2WiH9Hy77hdF9r7oEwxAtB/TS9/S4Qd90Ap4z5FSiin5zEiTL44OII1Y3IIlEvxwxFUVgrHSZ/UpA==", "dev": true, - "dependencies": { - "tslib": "^1.8.1" - }, "engines": { - "node": ">= 6" + "node": ">=16" }, "peerDependencies": { - "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + "typescript": ">=4.2.0" } }, "node_modules/type-check": { @@ -1987,14 +1992,6 @@ "node": ">= 0.8.0" } }, - "node_modules/type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "engines": { - "node": ">=4" - } - }, "node_modules/type-fest": { "version": "0.20.2", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", @@ -2008,18 +2005,24 @@ } }, "node_modules/typescript": { - "version": "4.4.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.4.4.tgz", - "integrity": "sha512-DqGhF5IKoBl8WNf8C1gu8q0xZSInh9j1kJJMqT3a94w1JzVaBU4EXOSMrz9yDqMT0xt3selp83fuFMQ0uzv6qA==", + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz", + "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==", "dev": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" }, "engines": { - "node": ">=4.2.0" + "node": ">=14.17" } }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "dev": true + }, "node_modules/uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", @@ -2029,16 +2032,11 @@ "punycode": "^2.1.0" } }, - "node_modules/v8-compile-cache": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", - "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", - "dev": true - }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, "dependencies": { "isexe": "^2.0.0" }, @@ -2049,19 +2047,10 @@ "node": ">= 8" } }, - "node_modules/word-wrap": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", - "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/workerpool": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.0.tgz", - "integrity": "sha512-Rsk5qQHJ9eowMH28Jwhe8HEbmdYDX4lwoMWshiCXugjtHqMD9ZbiqSDLxcsfdqsETPzVUtX5s1Z5kStiIM6l4A==" + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz", + "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==" }, "node_modules/wrap-ansi": { "version": "7.0.0", @@ -2082,7 +2071,7 @@ "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" }, "node_modules/y18n": { "version": "5.0.8", @@ -2137,12 +2126,15 @@ } }, "node_modules/yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-3.1.0.tgz", + "integrity": "sha512-zbff6SaAPyewVextulqeBjJm+1ZhS69vSN7cRpqVD7jMNSE9oXEdQ1SGF+ydfB+gKE2a3GiWfXf/pnwVZ1/tOA==", "dependencies": { "buffer-crc32": "~0.2.3", - "fd-slicer": "~1.1.0" + "pend": "~1.2.0" + }, + "engines": { + "node": ">=12" } }, "node_modules/yocto-queue": { @@ -2158,65 +2150,71 @@ } }, "dependencies": { + "@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", + "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", + "dev": true + }, + "@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^3.3.0" + } + }, + "@eslint-community/regexpp": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", + "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", + "dev": true + }, "@eslint/eslintrc": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.0.3.tgz", - "integrity": "sha512-DHI1wDPoKCBPoLZA3qDR91+3te/wDSc1YhKg3jR8NxKKRJq2hwHwcWv31cSwSYvIBrmbENoYMWcenW8uproQqg==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", "dev": true, "requires": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.0.0", - "globals": "^13.9.0", - "ignore": "^4.0.6", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", "import-fresh": "^3.2.1", - "js-yaml": "^3.13.1", - "minimatch": "^3.0.4", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", "strip-json-comments": "^3.1.1" - }, - "dependencies": { - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true - }, - "js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - } } }, + "@eslint/js": { + "version": "8.56.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.56.0.tgz", + "integrity": "sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==", + "dev": true + }, "@humanwhocodes/config-array": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.6.0.tgz", - "integrity": "sha512-JQlEKbcgEUjBFhLIF4iqM7u/9lwgHRBcpHrmUNCALK0Q3amXN6lxdoXLnF0sm11E9VqTmBALR87IlUg1bZ8A9A==", + "version": "0.11.14", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", + "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", "dev": true, "requires": { - "@humanwhocodes/object-schema": "^1.2.0", - "debug": "^4.1.1", - "minimatch": "^3.0.4" + "@humanwhocodes/object-schema": "^2.0.2", + "debug": "^4.3.1", + "minimatch": "^3.0.5" } }, + "@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true + }, "@humanwhocodes/object-schema": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.0.tgz", - "integrity": "sha512-wdppn25U8z/2yiaT6YGquE6X8sSv7hNMWSXYSSU1jGv/yd6XqjXgTDJ8KP4NgjTXfJ3GbRjeeb8RTV7a/VpM+w==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz", + "integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==", "dev": true }, "@nodelib/fs.scandir": { @@ -2260,123 +2258,165 @@ } }, "@types/json-schema": { - "version": "7.0.9", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", - "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==", + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", "dev": true }, "@types/node": { - "version": "16.11.6", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.6.tgz", - "integrity": "sha512-ua7PgUoeQFjmWPcoo9khiPum3Pd60k4/2ZGXt18sm2Slk0W0xZTqt5Y0Ny1NyBiN1EVQ/+FaF9NcY4Qe6rwk5w==", - "dev": true + "version": "20.11.19", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.19.tgz", + "integrity": "sha512-7xMnVEcZFu0DikYjWOlRq7NTPETrm7teqUT2WkQjrTIkEgUyyGdWsj/Zg8bEJt5TNklzbPD1X3fqfsHw3SpapQ==", + "dev": true, + "requires": { + "undici-types": "~5.26.4" + } }, "@types/semver": { - "version": "7.3.9", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.9.tgz", - "integrity": "sha512-L/TMpyURfBkf+o/526Zb6kd/tchUP3iBDEPjqjb+U2MAJhVRxxrmr2fwpe08E7QsV7YLcpq0tUaQ9O9x97ZIxQ==" + "version": "7.5.7", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.7.tgz", + "integrity": "sha512-/wdoPq1QqkSj9/QOeKkFquEuPzQbHTWAMPH/PaUMB+JuR31lXhlWXRZ52IpfDYVlDOUBvX09uBrPwxGT1hjNBg==" }, "@types/yauzl": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.9.2.tgz", - "integrity": "sha512-8uALY5LTvSuHgloDVUvWP3pIauILm+8/0pDMokuDYIoNsOkSwd5AiHBTSEJjKTDcZr5z8UpgOWZkxBF4iJftoA==", + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz", + "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==", "dev": true, "requires": { "@types/node": "*" } }, "@typescript-eslint/eslint-plugin": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.2.0.tgz", - "integrity": "sha512-qQwg7sqYkBF4CIQSyRQyqsYvP+g/J0To9ZPVNJpfxfekl5RmdvQnFFTVVwpRtaUDFNvjfe/34TgY/dpc3MgNTw==", - "dev": true, - "requires": { - "@typescript-eslint/experimental-utils": "5.2.0", - "@typescript-eslint/scope-manager": "5.2.0", - "debug": "^4.3.2", - "functional-red-black-tree": "^1.0.1", - "ignore": "^5.1.8", - "regexpp": "^3.2.0", - "semver": "^7.3.5", - "tsutils": "^3.21.0" + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.0.2.tgz", + "integrity": "sha512-/XtVZJtbaphtdrWjr+CJclaCVGPtOdBpFEnvtNf/jRV0IiEemRrL0qABex/nEt8isYcnFacm3nPHYQwL+Wb7qg==", + "dev": true, + "requires": { + "@eslint-community/regexpp": "^4.5.1", + "@typescript-eslint/scope-manager": "7.0.2", + "@typescript-eslint/type-utils": "7.0.2", + "@typescript-eslint/utils": "7.0.2", + "@typescript-eslint/visitor-keys": "7.0.2", + "debug": "^4.3.4", + "graphemer": "^1.4.0", + "ignore": "^5.2.4", + "natural-compare": "^1.4.0", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" } }, - "@typescript-eslint/experimental-utils": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.2.0.tgz", - "integrity": "sha512-fWyT3Agf7n7HuZZRpvUYdFYbPk3iDCq6fgu3ulia4c7yxmPnwVBovdSOX7RL+k8u6hLbrXcdAehlWUVpGh6IEw==", + "@typescript-eslint/parser": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.0.2.tgz", + "integrity": "sha512-GdwfDglCxSmU+QTS9vhz2Sop46ebNCXpPPvsByK7hu0rFGRHL+AusKQJ7SoN+LbLh6APFpQwHKmDSwN35Z700Q==", "dev": true, "requires": { - "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.2.0", - "@typescript-eslint/types": "5.2.0", - "@typescript-eslint/typescript-estree": "5.2.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^3.0.0" + "@typescript-eslint/scope-manager": "7.0.2", + "@typescript-eslint/types": "7.0.2", + "@typescript-eslint/typescript-estree": "7.0.2", + "@typescript-eslint/visitor-keys": "7.0.2", + "debug": "^4.3.4" } }, - "@typescript-eslint/parser": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.2.0.tgz", - "integrity": "sha512-Uyy4TjJBlh3NuA8/4yIQptyJb95Qz5PX//6p8n7zG0QnN4o3NF9Je3JHbVU7fxf5ncSXTmnvMtd/LDQWDk0YqA==", + "@typescript-eslint/scope-manager": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.0.2.tgz", + "integrity": "sha512-l6sa2jF3h+qgN2qUMjVR3uCNGjWw4ahGfzIYsCtFrQJCjhbrDPdiihYT8FnnqFwsWX+20hK592yX9I2rxKTP4g==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "5.2.0", - "@typescript-eslint/types": "5.2.0", - "@typescript-eslint/typescript-estree": "5.2.0", - "debug": "^4.3.2" + "@typescript-eslint/types": "7.0.2", + "@typescript-eslint/visitor-keys": "7.0.2" } }, - "@typescript-eslint/scope-manager": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.2.0.tgz", - "integrity": "sha512-RW+wowZqPzQw8MUFltfKYZfKXqA2qgyi6oi/31J1zfXJRpOn6tCaZtd9b5u9ubnDG2n/EMvQLeZrsLNPpaUiFQ==", + "@typescript-eslint/type-utils": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.0.2.tgz", + "integrity": "sha512-IKKDcFsKAYlk8Rs4wiFfEwJTQlHcdn8CLwLaxwd6zb8HNiMcQIFX9sWax2k4Cjj7l7mGS5N1zl7RCHOVwHq2VQ==", "dev": true, "requires": { - "@typescript-eslint/types": "5.2.0", - "@typescript-eslint/visitor-keys": "5.2.0" + "@typescript-eslint/typescript-estree": "7.0.2", + "@typescript-eslint/utils": "7.0.2", + "debug": "^4.3.4", + "ts-api-utils": "^1.0.1" } }, "@typescript-eslint/types": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.2.0.tgz", - "integrity": "sha512-cTk6x08qqosps6sPyP2j7NxyFPlCNsJwSDasqPNjEQ8JMD5xxj2NHxcLin5AJQ8pAVwpQ8BMI3bTxR0zxmK9qQ==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.0.2.tgz", + "integrity": "sha512-ZzcCQHj4JaXFjdOql6adYV4B/oFOFjPOC9XYwCaZFRvqN8Llfvv4gSxrkQkd2u4Ci62i2c6W6gkDwQJDaRc4nA==", "dev": true }, "@typescript-eslint/typescript-estree": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.2.0.tgz", - "integrity": "sha512-RsdXq2XmVgKbm9nLsE3mjNUM7BTr/K4DYR9WfFVMUuozHWtH5gMpiNZmtrMG8GR385EOSQ3kC9HiEMJWimxd/g==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.0.2.tgz", + "integrity": "sha512-3AMc8khTcELFWcKcPc0xiLviEvvfzATpdPj/DXuOGIdQIIFybf4DMT1vKRbuAEOFMwhWt7NFLXRkbjsvKZQyvw==", "dev": true, "requires": { - "@typescript-eslint/types": "5.2.0", - "@typescript-eslint/visitor-keys": "5.2.0", - "debug": "^4.3.2", - "globby": "^11.0.4", + "@typescript-eslint/types": "7.0.2", + "@typescript-eslint/visitor-keys": "7.0.2", + "debug": "^4.3.4", + "globby": "^11.1.0", "is-glob": "^4.0.3", - "semver": "^7.3.5", - "tsutils": "^3.21.0" + "minimatch": "9.0.3", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" + }, + "dependencies": { + "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, + "requires": { + "balanced-match": "^1.0.0" + } + }, + "minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + } + } + } + }, + "@typescript-eslint/utils": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.0.2.tgz", + "integrity": "sha512-PZPIONBIB/X684bhT1XlrkjNZJIEevwkKDsdwfiu1WeqBxYEEdIgVDgm8/bbKHVu+6YOpeRqcfImTdImx/4Bsw==", + "dev": true, + "requires": { + "@eslint-community/eslint-utils": "^4.4.0", + "@types/json-schema": "^7.0.12", + "@types/semver": "^7.5.0", + "@typescript-eslint/scope-manager": "7.0.2", + "@typescript-eslint/types": "7.0.2", + "@typescript-eslint/typescript-estree": "7.0.2", + "semver": "^7.5.4" } }, "@typescript-eslint/visitor-keys": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.2.0.tgz", - "integrity": "sha512-Nk7HizaXWWCUBfLA/rPNKMzXzWS8Wg9qHMuGtT+v2/YpPij4nVXrVJc24N/r5WrrmqK31jCrZxeHqIgqRzs0Xg==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.0.2.tgz", + "integrity": "sha512-8Y+YiBmqPighbm5xA2k4wKTxRzx9EkBu7Rlw+WHqMvRJ3RPz/BMBO9b2ru0LUNmXg120PHUXD5+SWFy2R8DqlQ==", "dev": true, "requires": { - "@typescript-eslint/types": "5.2.0", - "eslint-visitor-keys": "^3.0.0" + "@typescript-eslint/types": "7.0.2", + "eslint-visitor-keys": "^3.4.1" } }, - "@ungap/promise-all-settled": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz", - "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==" + "@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "dev": true }, "acorn": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.5.0.tgz", - "integrity": "sha512-yXbYeFy+jUuYd3/CDcg2NkIYE991XYX/bje7LmjJigUciaeO1JR4XxXgCIV1/Zc/dRuFEyw1L0pbA+qynJkW5Q==", + "version": "8.11.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", + "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", "dev": true }, "acorn-jsx": { @@ -2437,9 +2477,9 @@ "dev": true }, "assertion-error": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", - "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==" + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz", + "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==" }, "balanced-match": { "version": "1.0.2", @@ -2455,6 +2495,7 @@ "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -2490,16 +2531,15 @@ "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==" }, "chai": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.4.tgz", - "integrity": "sha512-yS5H68VYOCtN1cjfwumDSuzn/9c+yza4f3reKXlE5rUg7SFcCEy90gJvydNgOYtblyf4Zi6jIWRnXOgErta0KA==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/chai/-/chai-5.1.0.tgz", + "integrity": "sha512-kDZ7MZyM6Q1DhR9jy7dalKohXQ2yrlXkk59CR52aRKxJrobmlBNqnFQxX9xOX8w+4mz8SYlKJa/7D7ddltFXCw==", "requires": { - "assertion-error": "^1.1.0", - "check-error": "^1.0.2", - "deep-eql": "^3.0.1", - "get-func-name": "^2.0.0", - "pathval": "^1.1.1", - "type-detect": "^4.0.5" + "assertion-error": "^2.0.1", + "check-error": "^2.0.0", + "deep-eql": "^5.0.1", + "loupe": "^3.1.0", + "pathval": "^2.0.0" } }, "chalk": { @@ -2512,9 +2552,9 @@ } }, "check-error": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", - "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-2.0.0.tgz", + "integrity": "sha512-tjLAOBHKVxtPoHe/SA7kNOMvhCRdCJ3vETdeY0RuAc9popf+hyaSV6ZEg9hr4cpWF7jmo/JSWEnLDrnijS9Tog==" }, "chokidar": { "version": "3.5.3", @@ -2567,7 +2607,8 @@ "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true }, "cross-spawn": { "version": "7.0.3", @@ -2581,9 +2622,9 @@ } }, "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "requires": { "ms": "2.1.2" } @@ -2594,12 +2635,9 @@ "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==" }, "deep-eql": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", - "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", - "requires": { - "type-detect": "^4.0.0" - } + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.1.tgz", + "integrity": "sha512-nwQCf6ne2gez3o1MxWifqkciwt0zhl0LO1/UwVu4uMBuPmflWM4oQ70XMqHqnBJA+nhzncaqL9HVL6KkHJ28lw==" }, "deep-is": { "version": "0.1.4", @@ -2635,15 +2673,6 @@ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, - "enquirer": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", - "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", - "dev": true, - "requires": { - "ansi-colors": "^4.1.1" - } - }, "escalade": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", @@ -2655,140 +2684,85 @@ "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==" }, "eslint": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.1.0.tgz", - "integrity": "sha512-JZvNneArGSUsluHWJ8g8MMs3CfIEzwaLx9KyH4tZ2i+R2/rPWzL8c0zg3rHdwYVpN/1sB9gqnjHwz9HoeJpGHw==", - "dev": true, - "requires": { - "@eslint/eslintrc": "^1.0.3", - "@humanwhocodes/config-array": "^0.6.0", - "ajv": "^6.10.0", + "version": "8.56.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.56.0.tgz", + "integrity": "sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==", + "dev": true, + "requires": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.56.0", + "@humanwhocodes/config-array": "^0.11.13", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", "debug": "^4.3.2", "doctrine": "^3.0.0", - "enquirer": "^2.3.5", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^6.0.0", - "eslint-utils": "^3.0.0", - "eslint-visitor-keys": "^3.0.0", - "espree": "^9.0.0", - "esquery": "^1.4.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^6.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^6.0.1", - "globals": "^13.6.0", - "ignore": "^4.0.6", - "import-fresh": "^3.0.0", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", "lodash.merge": "^4.6.2", - "minimatch": "^3.0.4", + "minimatch": "^3.1.2", "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "progress": "^2.0.0", - "regexpp": "^3.2.0", - "semver": "^7.2.1", - "strip-ansi": "^6.0.0", - "strip-json-comments": "^3.1.0", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" - }, - "dependencies": { - "eslint-scope": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-6.0.0.tgz", - "integrity": "sha512-uRDL9MWmQCkaFus8RF5K9/L/2fn+80yoW3jkD53l4shjCh26fCtvJGasxjUqP5OT87SYTxCVA3BwTUzuELx9kA==", - "dev": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - } - }, - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - }, - "ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true - } + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" } }, "eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", "dev": true, "requires": { "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - } - }, - "eslint-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", - "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^2.0.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true - } + "estraverse": "^5.2.0" } }, "eslint-visitor-keys": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.0.0.tgz", - "integrity": "sha512-mJOZa35trBTb3IyRmo8xmKBZlxf+N7OnUl4+ZhJHs/r+0770Wh/LEACE2pqMGMe27G/4y8P2bYGk4J70IC5k1Q==", + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true }, "espree": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.0.0.tgz", - "integrity": "sha512-r5EQJcYZ2oaGbeR0jR0fFVijGOcwai07/690YRXLINuhmVeRY4UKSAsQPe/0BNuDgwP7Ophoc1PRsr2E3tkbdQ==", + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", "dev": true, "requires": { - "acorn": "^8.5.0", - "acorn-jsx": "^5.3.1", - "eslint-visitor-keys": "^3.0.0" + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" } }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true - }, "esquery": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", - "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", "dev": true, "requires": { "estraverse": "^5.1.0" - }, - "dependencies": { - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - } } }, "esrecurse": { @@ -2798,20 +2772,12 @@ "dev": true, "requires": { "estraverse": "^5.2.0" - }, - "dependencies": { - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - } } }, "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true }, "esutils": { @@ -2827,9 +2793,9 @@ "dev": true }, "fast-glob": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz", - "integrity": "sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", "dev": true, "requires": { "@nodelib/fs.stat": "^2.0.2", @@ -2859,26 +2825,18 @@ "fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", "dev": true }, "fastq": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", "dev": true, "requires": { "reusify": "^1.0.4" } }, - "fd-slicer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", - "requires": { - "pend": "~1.2.0" - } - }, "file-entry-cache": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", @@ -2911,25 +2869,26 @@ "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==" }, "flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", "dev": true, "requires": { - "flatted": "^3.1.0", + "flatted": "^3.2.9", + "keyv": "^4.5.3", "rimraf": "^3.0.2" } }, "flatted": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.2.tgz", - "integrity": "sha512-JaTY/wtrcSyvXJl4IMFHPKyFur1sE9AUqc0QnhOaJ0CxHtAoIV8pYDzeEfAaNEtGkOfq4gr3LBFmdXW5mOQFnA==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.0.tgz", + "integrity": "sha512-noqGuLw158+DuD9UPRKHpJ2hGxpFyDlYYrfM0mWt4XhT4n0lwzTLh70Tkdyy4kyTmyTT9Bv7bWAJqw7cgkEXDg==", "dev": true }, "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" }, "fsevents": { "version": "2.3.3", @@ -2937,12 +2896,6 @@ "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "optional": true }, - "functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", - "dev": true - }, "get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", @@ -2954,16 +2907,33 @@ "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==" }, "glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "requires": { + "balanced-match": "^1.0.0" + } + }, + "minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "requires": { + "brace-expansion": "^2.0.1" + } + } } }, "glob-parent": { @@ -2976,32 +2946,33 @@ } }, "globals": { - "version": "13.11.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.11.0.tgz", - "integrity": "sha512-08/xrJ7wQjK9kkkRoI3OFUBbLx4f+6x3SGwcPvQ0QH6goFDrOU2oyAWrmh3dJezu65buo+HBMzAMQy6rovVC3g==", + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", "dev": true, "requires": { "type-fest": "^0.20.2" } }, "globby": { - "version": "11.0.4", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz", - "integrity": "sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==", + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", "dev": true, "requires": { "array-union": "^2.1.0", "dir-glob": "^3.0.1", - "fast-glob": "^3.1.1", - "ignore": "^5.1.4", - "merge2": "^1.3.0", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", "slash": "^3.0.0" } }, - "growl": { - "version": "1.10.5", - "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", - "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==" + "graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true }, "has-flag": { "version": "4.0.0", @@ -3014,9 +2985,9 @@ "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==" }, "ignore": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", - "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", + "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", "dev": true }, "import-fresh": { @@ -3032,13 +3003,13 @@ "imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "dev": true }, "inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", "requires": { "once": "^1.3.0", "wrappy": "1" @@ -3080,6 +3051,12 @@ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" }, + "is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true + }, "is-plain-obj": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", @@ -3093,7 +3070,8 @@ "isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true }, "js-yaml": { "version": "4.1.0", @@ -3103,6 +3081,12 @@ "argparse": "^2.0.1" } }, + "json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true + }, "json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", @@ -3112,9 +3096,18 @@ "json-stable-stringify-without-jsonify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", "dev": true }, + "keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "requires": { + "json-buffer": "3.0.1" + } + }, "levn": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", @@ -3148,6 +3141,14 @@ "is-unicode-supported": "^0.1.0" } }, + "loupe": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.1.0.tgz", + "integrity": "sha512-qKl+FrLXUhFuHUoDJG7f8P8gEMHq9NFS0c6ghXG1J0rldmZFQZoNVv/vyirE9qwCIhWZDsvEFd1sbFu3GvRQFg==", + "requires": { + "get-func-name": "^2.0.1" + } + }, "lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", @@ -3163,60 +3164,65 @@ "dev": true }, "micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", "dev": true, "requires": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" + "braces": "^3.0.2", + "picomatch": "^2.3.1" } }, "minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, "requires": { "brace-expansion": "^1.1.7" } }, "mocha": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-9.2.2.tgz", - "integrity": "sha512-L6XC3EdwT6YrIk0yXpavvLkn8h+EU+Y5UcCHKECyMbdUIxyMuZj4bX4U9e1nvnvUUvQVsV2VHQr5zLdcUkhW/g==", + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.3.0.tgz", + "integrity": "sha512-uF2XJs+7xSLsrmIvn37i/wnc91nw7XjOQB8ccyx5aEgdnohr7n+rEiZP23WkCYHjilR6+EboEnbq/ZQDz4LSbg==", "requires": { - "@ungap/promise-all-settled": "1.1.2", "ansi-colors": "4.1.1", "browser-stdout": "1.3.1", "chokidar": "3.5.3", - "debug": "4.3.3", + "debug": "4.3.4", "diff": "5.0.0", "escape-string-regexp": "4.0.0", "find-up": "5.0.0", - "glob": "7.2.0", - "growl": "1.10.5", + "glob": "8.1.0", "he": "1.2.0", "js-yaml": "4.1.0", "log-symbols": "4.1.0", - "minimatch": "4.2.1", + "minimatch": "5.0.1", "ms": "2.1.3", - "nanoid": "3.3.1", "serialize-javascript": "6.0.0", "strip-json-comments": "3.1.1", "supports-color": "8.1.1", - "which": "2.0.2", - "workerpool": "6.2.0", + "workerpool": "6.2.1", "yargs": "16.2.0", "yargs-parser": "20.2.4", "yargs-unparser": "2.0.0" }, "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "requires": { + "balanced-match": "^1.0.0" + } + }, "minimatch": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-4.2.1.tgz", - "integrity": "sha512-9Uq1ChtSZO+Mxa/CL1eGizn2vRn3MlLgzhT0Iz8zaY8NdvxvB0d5QdPFmCKf7JKA9Lerx5vRrnwO03jsSfGG9g==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", + "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", "requires": { - "brace-expansion": "^1.1.7" + "brace-expansion": "^2.0.1" } }, "ms": { @@ -3239,15 +3245,10 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, - "nanoid": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.1.tgz", - "integrity": "sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==" - }, "natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", "dev": true }, "normalize-path": { @@ -3258,23 +3259,23 @@ "once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "requires": { "wrappy": "1" } }, "optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", + "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", "dev": true, "requires": { + "@aashutoshrathi/word-wrap": "^1.2.3", "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", "levn": "^0.4.1", "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" + "type-check": "^0.4.0" } }, "p-limit": { @@ -3310,7 +3311,8 @@ "path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true }, "path-key": { "version": "3.1.1", @@ -3325,19 +3327,19 @@ "dev": true }, "pathval": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", - "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-2.0.0.tgz", + "integrity": "sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==" }, "pend": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=" + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==" }, "picomatch": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", - "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==" + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" }, "prelude-ls": { "version": "1.2.1", @@ -3345,16 +3347,10 @@ "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true }, - "progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true - }, "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", "dev": true }, "queue-microtask": { @@ -3379,12 +3375,6 @@ "picomatch": "^2.2.1" } }, - "regexpp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", - "dev": true - }, "require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -3409,6 +3399,22 @@ "dev": true, "requires": { "glob": "^7.1.3" + }, + "dependencies": { + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + } } }, "run-parallel": { @@ -3462,12 +3468,6 @@ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true - }, "string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", @@ -3502,7 +3502,7 @@ "text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", "dev": true }, "to-regex-range": { @@ -3513,20 +3513,12 @@ "is-number": "^7.0.0" } }, - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "ts-api-utils": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.2.1.tgz", + "integrity": "sha512-RIYA36cJn2WiH9Hy77hdF9r7oEwxAtB/TS9/S4Qd90Ap4z5FSiin5zEiTL44OII1Y3IIlEvxwxFUVgrHSZ/UpA==", "dev": true, - "requires": { - "tslib": "^1.8.1" - } + "requires": {} }, "type-check": { "version": "0.4.0", @@ -3537,11 +3529,6 @@ "prelude-ls": "^1.2.1" } }, - "type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==" - }, "type-fest": { "version": "0.20.2", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", @@ -3549,9 +3536,15 @@ "dev": true }, "typescript": { - "version": "4.4.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.4.4.tgz", - "integrity": "sha512-DqGhF5IKoBl8WNf8C1gu8q0xZSInh9j1kJJMqT3a94w1JzVaBU4EXOSMrz9yDqMT0xt3selp83fuFMQ0uzv6qA==", + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz", + "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==", + "dev": true + }, + "undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", "dev": true }, "uri-js": { @@ -3563,30 +3556,19 @@ "punycode": "^2.1.0" } }, - "v8-compile-cache": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", - "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", - "dev": true - }, "which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, "requires": { "isexe": "^2.0.0" } }, - "word-wrap": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", - "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", - "dev": true - }, "workerpool": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.0.tgz", - "integrity": "sha512-Rsk5qQHJ9eowMH28Jwhe8HEbmdYDX4lwoMWshiCXugjtHqMD9ZbiqSDLxcsfdqsETPzVUtX5s1Z5kStiIM6l4A==" + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz", + "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==" }, "wrap-ansi": { "version": "7.0.0", @@ -3601,7 +3583,7 @@ "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" }, "y18n": { "version": "5.0.8", @@ -3644,12 +3626,12 @@ } }, "yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-3.1.0.tgz", + "integrity": "sha512-zbff6SaAPyewVextulqeBjJm+1ZhS69vSN7cRpqVD7jMNSE9oXEdQ1SGF+ydfB+gKE2a3GiWfXf/pnwVZ1/tOA==", "requires": { "buffer-crc32": "~0.2.3", - "fd-slicer": "~1.1.0" + "pend": "~1.2.0" } }, "yocto-queue": { diff --git a/build/package.json b/build/package.json index 86f2f65c..21706796 100644 --- a/build/package.json +++ b/build/package.json @@ -6,7 +6,7 @@ "scripts": { "build": "tsc", "watch": "tsc -w", - "start": "npm run build && node dist/main.js", + "start": "npm run build && npx node dist/main.js", "test": "npm run build && mocha --parallel --recursive tests/", "format": "prettier ./src -w" }, @@ -20,18 +20,18 @@ "homepage": "https://github.com/CCDirectLink/CCModDB#readme", "devDependencies": { "@octokit/types": "github:octokit/types.ts", - "@types/node": "^16.11.6", - "@types/yauzl": "^2.9.2", - "@typescript-eslint/eslint-plugin": "^5.2.0", - "@typescript-eslint/parser": "^5.2.0", - "eslint": "^8.1.0", - "typescript": "^4.4.4" + "@types/node": "^20.11.19", + "@types/yauzl": "^2.10.3", + "@typescript-eslint/eslint-plugin": "^7.0.2", + "@typescript-eslint/parser": "^7.0.2", + "eslint": "^8.56.0", + "typescript": "^5.3.3" }, "dependencies": { - "@types/semver": "^7.3.9", - "chai": "^4.3.4", - "mocha": "^9.1.3", - "semver": "^7.3.5", - "yauzl": "^2.10.0" + "@types/semver": "^7.5.7", + "chai": "^5.1.0", + "mocha": "^10.3.0", + "semver": "^7.6.0", + "yauzl": "^3.1.0" } } From 385a473eba8d11223226b164abcd83ab3ad65539 Mon Sep 17 00:00:00 2001 From: krypek Date: Wed, 21 Feb 2024 17:31:34 +0100 Subject: [PATCH 066/196] Fix tests not working on newer node --- build/tests/{dbBuilt.js => dbBuilt.mjs} | 6 ++---- build/tests/{input.js => input.mjs} | 6 +++--- build/tests/{moddb.js => moddb.mjs} | 4 ++-- build/tests/{npDatabase.js => npDatabase.mjs} | 10 +++++----- build/tests/{toolsdb.js => toolsdb.mjs} | 4 ++-- 5 files changed, 14 insertions(+), 16 deletions(-) rename build/tests/{dbBuilt.js => dbBuilt.mjs} (92%) rename build/tests/{input.js => input.mjs} (90%) rename build/tests/{moddb.js => moddb.mjs} (95%) rename build/tests/{npDatabase.js => npDatabase.mjs} (97%) rename build/tests/{toolsdb.js => toolsdb.mjs} (96%) diff --git a/build/tests/dbBuilt.js b/build/tests/dbBuilt.mjs similarity index 92% rename from build/tests/dbBuilt.js rename to build/tests/dbBuilt.mjs index 10baf129..0d0bc7b5 100644 --- a/build/tests/dbBuilt.js +++ b/build/tests/dbBuilt.mjs @@ -1,9 +1,8 @@ // call with mocha // require chai -const { expect } = require('chai'); -const fs = require('fs'); -const { intersects } = require('semver'); +import { expect } from 'chai' +import fs from 'fs'; describe('ModDB', () => { const FILE_INPUT = '../input-locations.json'; @@ -53,7 +52,6 @@ describe('ModDB', () => { expect.fail(name, undefined, name + ' in npDatase but not in input-locations' + ' (did you run `npm run build`?)'); - break; } } } diff --git a/build/tests/input.js b/build/tests/input.mjs similarity index 90% rename from build/tests/input.js rename to build/tests/input.mjs index 2931de96..3c62ca63 100644 --- a/build/tests/input.js +++ b/build/tests/input.mjs @@ -1,9 +1,9 @@ // call with mocha // require chai -const { expect } = require('chai'); -const fs = require('fs'); -const {download, streamToBuffer} = require('../dist/download'); +import { expect } from 'chai'; +import fs from 'fs'; +import {download, streamToBuffer} from '../dist/download.js'; describe('InputLocations', () => { const FILE_PATH = '../input-locations.json'; diff --git a/build/tests/moddb.js b/build/tests/moddb.mjs similarity index 95% rename from build/tests/moddb.js rename to build/tests/moddb.mjs index 0332b3df..e08895a9 100644 --- a/build/tests/moddb.js +++ b/build/tests/moddb.mjs @@ -1,8 +1,8 @@ // call with mocha // require chai -const { expect } = require('chai'); -const fs = require('fs'); +import { expect } from 'chai'; +import fs from 'fs'; describe('ModDB', () => { diff --git a/build/tests/npDatabase.js b/build/tests/npDatabase.mjs similarity index 97% rename from build/tests/npDatabase.js rename to build/tests/npDatabase.mjs index 48da0d58..49c463c7 100644 --- a/build/tests/npDatabase.js +++ b/build/tests/npDatabase.mjs @@ -1,11 +1,11 @@ // call with mocha // require chai -const { expect } = require('chai'); -const fs = require('fs'); -const semver = require('semver'); -const crypto = require('crypto'); -const {download, streamToBuffer} = require('../dist/download'); +import { expect } from 'chai'; +import fs from 'fs'; +import semver from 'semver'; +import crypto from 'crypto'; +import {download, streamToBuffer} from '../dist/download.js'; describe('NpDatabase', () => { diff --git a/build/tests/toolsdb.js b/build/tests/toolsdb.mjs similarity index 96% rename from build/tests/toolsdb.js rename to build/tests/toolsdb.mjs index 3ee1ceec..2ecfd3cf 100644 --- a/build/tests/toolsdb.js +++ b/build/tests/toolsdb.mjs @@ -1,8 +1,8 @@ // call with mocha // require chai -const { expect } = require('chai'); -const fs = require('fs'); +import { expect } from 'chai'; +import fs from 'fs'; describe('ToolsDB', () => { From 0ec571fa3e203b88addde1c9c8171c7500974c30 Mon Sep 17 00:00:00 2001 From: krypek Date: Tue, 20 Feb 2024 21:46:12 +0100 Subject: [PATCH 067/196] Add automatic CCBot PR info filling --- .github/workflows/ccbot.yaml | 51 ++++++++++++++++++++++++++++++++++++ .github/workflows/ci.yaml | 36 ++++++++++++++----------- build/src/db.ts | 2 +- build/src/main.ts | 21 +++++++++++++-- build/src/source.ts | 2 -- 5 files changed, 91 insertions(+), 21 deletions(-) create mode 100644 .github/workflows/ccbot.yaml diff --git a/.github/workflows/ccbot.yaml b/.github/workflows/ccbot.yaml new file mode 100644 index 00000000..348d881a --- /dev/null +++ b/.github/workflows/ccbot.yaml @@ -0,0 +1,51 @@ +name: Fill CCBot PR info +on: + pull_request: + types: [opened] + +jobs: + completePR: + name: Fill CCBot PR info + runs-on: ubuntu-latest + if: startsWith(github.event.pull_request.title, 'CCBot:') + + steps: + - uses: actions/checkout@v4 + with: + ref: ${{ github.head_ref }} + - uses: actions/setup-node@v4 + with: + node-version: 20 + - working-directory: build/ + run: npm ci + - name: Update the database + working-directory: build/ + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + set -e + OUT="$(npm run start)" + + OUT="$(echo "$OUT" | tail -1)" + ID="$(echo "$OUT" | awk -F'|' '{print $1}')" + VERSION="$(echo "$OUT" | awk -F'|' '{print $2}')" + TITLE="$(echo "$OUT" | awk -F'|' '{print $3}')" + DESCRIPTION="$(echo "$OUT" | awk -F'|' '{print $4}')" + + gh pr edit "${{ github.event.pull_request.number }}" --title "CCBot: ${ID}" + gh pr comment "${{ github.event.pull_request.number }}" --body "Mod info:
${ID} v${VERSION}
${DESCRIPTION}" + + set +e + OUT="$(npm run start)" + npm test + TEST_REP=$? + + set -e + git config --global user.name "${GITHUB_ACTOR}" + git config --global user.email "${GITHUB_ACTOR_ID}+${GITHUB_ACTOR}@users.noreply.github.com" + git commit --all -m "CCBot: Fill '${ID}' info" + git push + + if [ ! $TEST_REP -eq 0 ]; then + exit 1 + fi diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index dd659f61..d46424bb 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -1,20 +1,24 @@ name: CI -on: [push, pull_request, workflow_dispatch] +on: + push: + workflow_dispatch: jobs: - check_database: - name: Check database - runs-on: ubuntu-latest + check_database: + name: Check database + runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: actions/setup-node@v1 - with: - node-version: 15.x - - working-directory: build/ - run: npm ci - - name: npm run test - working-directory: build/ - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: npm test + if: "!startsWith(github.event.head_commit.message, 'CCBot: ccbot')" + + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + with: + node-version: 20 + - working-directory: build/ + run: npm ci + - name: npm run test + working-directory: build/ + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: npm test diff --git a/build/src/db.ts b/build/src/db.ts index 71f498ea..0cc58610 100644 --- a/build/src/db.ts +++ b/build/src/db.ts @@ -104,7 +104,7 @@ export function getRepositoryEntry(url?: string): Page[] { return [{ name, url }] } -function getStringFromLocalisedString(str: LocalizedString): string { +export function getStringFromLocalisedString(str: LocalizedString): string { if (!str) throw new Error(`No mod name found: ${str}`) if (typeof str === 'string') return str const newStr = str.en_US diff --git a/build/src/main.ts b/build/src/main.ts index c8c32e0d..df3273cf 100644 --- a/build/src/main.ts +++ b/build/src/main.ts @@ -14,10 +14,27 @@ async function main() { } const packages = await Promise.all(promises) - const oldNpDatabase: PackageDB | undefined = fs.existsSync('../npDatabase.json') ? JSON.parse(fs.readFileSync('../npDatabase.json').toString()) : undefined - const pkgDb = await db.build(packages, oldNpDatabase) + const oldPkgDb: PackageDB | undefined = fs.existsSync('../npDatabase.json') ? JSON.parse(fs.readFileSync('../npDatabase.json').toString()) : undefined + const pkgDb = await db.build(packages, oldPkgDb) await db.write(pkgDb) await db.writeMods(pkgDb) + + if (oldPkgDb) { + for (const name in pkgDb) { + if (!oldPkgDb[name]) { + const pkg = pkgDb[name] + const ccmod = pkg.metadataCCMod! + // prettier-ignore + const arr: string[] = [ + ccmod.id, + ccmod.version!, + db.getStringFromLocalisedString(ccmod.title ?? 'unknown'), + db.getStringFromLocalisedString(ccmod.description ?? 'unknown') + ] + console.log(arr.join('|')) + } + } + } } main().catch(err => console.error('error: ', err)) diff --git a/build/src/source.ts b/build/src/source.ts index 9918b512..01ac2158 100644 --- a/build/src/source.ts +++ b/build/src/source.ts @@ -140,7 +140,6 @@ async function findZipRoot(buffer: Buffer): Promise { /* this has to be done outside of buildEntry to avoid concurent api requests */ export async function addStarsAndTimestampsToResults(result: PackageDB, oldDb?: PackageDB) { - console.log('fetching stars and timestamps...') for (const id in result) { const mod = result[id] @@ -196,7 +195,6 @@ async function getStarsAndTimestamp( const branchData = await fetchGithub(branchApiUrl) const date = branchData.commit.commit.author!.date! timestamp = new Date(date).getTime() - console.log(url, date, timestamp) } return { stars, timestamp } } From ade3c125f6f3322e7303d432b6292e90669fbfc8 Mon Sep 17 00:00:00 2001 From: krypek <115574014+krypciak@users.noreply.github.com> Date: Wed, 21 Feb 2024 18:17:44 +0000 Subject: [PATCH 068/196] CCBot: extendable-severed-heads (#41) * CCBot: ccbot/1 * CCBot: Fill 'extendable-severed-heads' info --- input-locations.json | 3 ++- mods.json | 15 +++++++++++++++ npDatabase.json | 30 ++++++++++++++++++++++++++++++ 3 files changed, 47 insertions(+), 1 deletion(-) diff --git a/input-locations.json b/input-locations.json index c97425ab..c15a9dc2 100644 --- a/input-locations.json +++ b/input-locations.json @@ -22,5 +22,6 @@ { "url": "https://github.com/Inevitabilis/CC-Junolea/archive/refs/tags/v1.0.1.zip" }, { "url": "https://github.com/XenonA7/cc-party-element-effects/archive/refs/tags/1.0.1.zip" }, { "url": "https://github.com/XenonA7/qine/archive/refs/tags/0.3.1.zip" }, - { "url": "https://github.com/XenonA7/xmc-hexacast/archive/refs/tags/0.27.3.zip" } + { "url": "https://github.com/XenonA7/xmc-hexacast/archive/refs/tags/0.27.3.zip" }, + { "url": "https://github.com/CCDirectLink/extendable-severed-heads/archive/refs/tags/v1.1.1.zip" } ] diff --git a/mods.json b/mods.json index b043b024..2bd446ad 100644 --- a/mods.json +++ b/mods.json @@ -195,6 +195,21 @@ }, "version": "0.1.3" }, + "extendable-severed-heads": { + "name": "extendable-severed-heads", + "description": "Library for adding new character head icons", + "page": [ + { + "name": "GitHub", + "url": "https://github.com/CCDirectLink/extendable-severed-heads" + } + ], + "archive_link": "https://github.com/CCDirectLink/extendable-severed-heads/archive/refs/tags/v1.1.1.zip", + "hash": { + "sha256": "f5613ac92ac20e138dec801063f8673aa15696836dd15700305e9007f6de119a" + }, + "version": "1.1.1" + }, "extension-asset-preloader": { "name": "Extension Asset Preloader", "description": "Fixes files from extensions potentially not being loaded during the game's loading.", diff --git a/npDatabase.json b/npDatabase.json index 677e51ce..95c76932 100644 --- a/npDatabase.json +++ b/npDatabase.json @@ -409,6 +409,36 @@ "stars": 0, "lastUpdateTimestamp": 1708290993000 }, + "extendable-severed-heads": { + "metadataCCMod": { + "id": "extendable-severed-heads", + "version": "1.1.1", + "title": "extendable-severed-heads", + "description": "Library for adding new character head icons", + "repository": "https://github.com/CCDirectLink/extendable-severed-heads", + "tags": [ + "library" + ], + "authors": [ + "ac2pic", + "nax", + "elluminance" + ], + "plugin": "plugin.js" + }, + "installation": [ + { + "type": "zip", + "url": "https://github.com/CCDirectLink/extendable-severed-heads/archive/refs/tags/v1.1.1.zip", + "source": "extendable-severed-heads-1.1.1", + "hash": { + "sha256": "f5613ac92ac20e138dec801063f8673aa15696836dd15700305e9007f6de119a" + } + } + ], + "stars": 3, + "lastUpdateTimestamp": 1708512538000 + }, "extension-asset-preloader": { "metadataCCMod": { "id": "extension-asset-preloader", From 06fa8be742eaae14491176f5f5ae04ce8d54651f Mon Sep 17 00:00:00 2001 From: krypek <115574014+krypciak@users.noreply.github.com> Date: Wed, 21 Feb 2024 18:28:37 +0000 Subject: [PATCH 069/196] CCBot: charged-balls (#42) * CCBot: ccbot/2 * CCBot: Fill 'charged-balls' info --- input-locations.json | 3 ++- mods.json | 15 +++++++++++++++ npDatabase.json | 26 ++++++++++++++++++++++++++ 3 files changed, 43 insertions(+), 1 deletion(-) diff --git a/input-locations.json b/input-locations.json index c15a9dc2..5fddf7d0 100644 --- a/input-locations.json +++ b/input-locations.json @@ -23,5 +23,6 @@ { "url": "https://github.com/XenonA7/cc-party-element-effects/archive/refs/tags/1.0.1.zip" }, { "url": "https://github.com/XenonA7/qine/archive/refs/tags/0.3.1.zip" }, { "url": "https://github.com/XenonA7/xmc-hexacast/archive/refs/tags/0.27.3.zip" }, - { "url": "https://github.com/CCDirectLink/extendable-severed-heads/archive/refs/tags/v1.1.1.zip" } + { "url": "https://github.com/CCDirectLink/extendable-severed-heads/archive/refs/tags/v1.1.1.zip" }, + { "url": "https://github.com/CCDirectLink/CC-ChargedBalls/archive/refs/tags/1.0.2.zip" } ] diff --git a/mods.json b/mods.json index 2bd446ad..5e7d292f 100644 --- a/mods.json +++ b/mods.json @@ -150,6 +150,21 @@ }, "version": "1.5.5" }, + "charged-balls": { + "name": "Charged balls", + "description": "Replaces normal VRPs with charged VRPs", + "page": [ + { + "name": "GitHub", + "url": "https://github.com/CCDirectLink/CC-ChargedBalls" + } + ], + "archive_link": "https://github.com/CCDirectLink/CC-ChargedBalls/archive/refs/tags/1.0.2.zip", + "hash": { + "sha256": "f03c037b26839d84d92c76cd22f85bde1d3fcf3ffa437e8260262d0e6ae77c33" + }, + "version": "1.0.2" + }, "cursedcode": { "name": "CursedCode", "description": "Cursed custom maps.", diff --git a/npDatabase.json b/npDatabase.json index 95c76932..55e1bb1e 100644 --- a/npDatabase.json +++ b/npDatabase.json @@ -327,6 +327,32 @@ "stars": 1, "lastUpdateTimestamp": 1708366049000 }, + "charged-balls": { + "metadataCCMod": { + "id": "charged-balls", + "version": "1.0.2", + "title": "Charged balls", + "description": "Replaces normal VRPs with charged VRPs", + "repository": "https://github.com/CCDirectLink/CC-ChargedBalls", + "tags": [ + "fun" + ], + "authors": "keanuplayz", + "prestart": "prestart.js" + }, + "installation": [ + { + "type": "zip", + "url": "https://github.com/CCDirectLink/CC-ChargedBalls/archive/refs/tags/1.0.2.zip", + "source": "CC-ChargedBalls-1.0.2", + "hash": { + "sha256": "f03c037b26839d84d92c76cd22f85bde1d3fcf3ffa437e8260262d0e6ae77c33" + } + } + ], + "stars": 1, + "lastUpdateTimestamp": 1708511711000 + }, "cursedcode": { "metadataCCMod": { "id": "cursedcode", From 89eb5c1c6d6966f2912074adb69d4a4471ccd2be Mon Sep 17 00:00:00 2001 From: krypek Date: Wed, 21 Feb 2024 19:40:13 +0100 Subject: [PATCH 070/196] Update input-api, add CCJetpack, CCNewGamePP, CCdiscord, CCTimeWalker, CCTimer, cc-menu-ui-replacement, map-watch --- icons/timer.png | Bin 0 -> 1232 bytes input-locations.json | 11 +- mods.json | 109 +++++++++++++++++++- npDatabase.json | 238 ++++++++++++++++++++++++++++++++++++++++++- 4 files changed, 352 insertions(+), 6 deletions(-) create mode 100644 icons/timer.png diff --git a/icons/timer.png b/icons/timer.png new file mode 100644 index 0000000000000000000000000000000000000000..ca6b2ad56ef8773e6a4857f390572a08750055df GIT binary patch literal 1232 zcmV;>1TXuEP);wrc}2o9o) zUxWWZSHV?55EMbg&E2m>B%W&vEuuHvoQL<`_i*wC!UB@BO)&mb0D?p$6em-EnPwol_S}rr zF4^69q?jU342>cynD`7zwI#E^eM3LKX$s=es$YWVqbDIS%!YLGaoO(QWwJ3WCqWAox0h$OD|)RewQp8haOgtE%%C;Atl(F+&DMY(|9NVstKPw>Xg$OTPI@xsv(Zd@Q-q~TD0G-=Zwu+i9tHZ5&& zzDH-Bu3JsROWwXWGv9pkX6OAN>e2G~JY8R3Q?uDLBhT+}k90cbt_|2;&GIws@9)#> z?5vpXW-^)YBIq$1joxFq1l_^G0VNU%Z8me?0QGvE9LFKcvLYuZC+9#eyjbXRPJT%m znS(s!Y_iC7aB#2-1Htxc4i68hR;y99S{?F|Z-mAO9ZdpqcIS*Af)9MX?XL{*Z#(TJ zJAV`+Ar|9O?T48n6VBol3!k9itc_kiT^VGvS-QNuq^ql|36KlOOAfu(0n5K=0>0qT z%?+@&wnn8=iH3)VX<%Sr86a7`cJR&x!!=umFF3#@&CRD=E>kcVL~-M%r>92%z*(}3X7~vll7Vlw%u;8f&&HL+uJj6 zlYuJi6aJrHVG$?Hdu1Vo21c^rf6c+IPS53pYVA^G2^GT{U`1N?hFf%nhO&T^VO7~OEW>X{{X zt|vnuMzu)Q<)21Ikg2Ju2aQG}Z-+u5vTgefEV6P<4!u`~4&)96Fm;;_hy@$&N~Q9c z>+n`keq^v|y&>ZL*QA!Xb&ax6aP#8r=dg;h3;8dh?QhgsfZOIH{z#yDm7=@N$cHXw zbCLb?ybW{5mk(Ua=9BkLxO(jt*tJb|i}>kL+ls~Fk-fFGWlo*!Uri*AemYGgIME4L zGMRjbgXU~*ZZ`ReG!H@F#TNF?DCGQvT8oQ|WX0ogN~hD|_4W1g+}xb|+Ial>5_fiX ztd*6OFmsp9RS}ED==k`UH~`Jh&r>84F>i7|tay|0*lcfa69*vSbU-pTcJt1rQYqYk uc)3H|f5FyA8)0mXZ{`N>pwZErYvecg6?L#*y5O+@0000 Date: Wed, 21 Feb 2024 18:51:16 +0000 Subject: [PATCH 071/196] CCBot: Hadouken (#43) * CCBot: ccbot/1 * CCBot: Fill 'Hadouken' info --- input-locations.json | 3 ++- mods.json | 15 +++++++++++++++ npDatabase.json | 25 +++++++++++++++++++++++++ 3 files changed, 42 insertions(+), 1 deletion(-) diff --git a/input-locations.json b/input-locations.json index f76c348a..ad6c06e0 100644 --- a/input-locations.json +++ b/input-locations.json @@ -31,5 +31,6 @@ { "url": "https://github.com/CCDirectLink/CCTimeWalker/archive/refs/tags/v0.3.1.zip" }, { "url": "https://github.com/CCDirectLink/CCTimer/archive/refs/tags/v3.0.2.zip" }, { "url": "https://github.com/CCDirectLink/cc-menu-ui-replacement/archive/refs/tags/v1.0.4.zip" }, - { "url": "https://github.com/CCDirectLink/map-watch/archive/refs/tags/v1.1.1.zip" } + { "url": "https://github.com/CCDirectLink/map-watch/archive/refs/tags/v1.1.1.zip" }, + { "url": "https://github.com/CookieSalesman/CrossCode-HADOUKEN-v1.0/archive/refs/tags/v1.1.0.zip" } ] diff --git a/mods.json b/mods.json index ee295d09..92e182ca 100644 --- a/mods.json +++ b/mods.json @@ -1,5 +1,20 @@ { "mods": { + "Hadouken": { + "name": "Hadouken", + "description": "Lea yells various forms of HADOUKEN or SHORYUKEN when casting appropriate combat arts.", + "page": [ + { + "name": "GitHub", + "url": "https://github.com/CookieSalesman/CrossCode-HADOUKEN-v1.0" + } + ], + "archive_link": "https://github.com/CookieSalesman/CrossCode-HADOUKEN-v1.0/archive/refs/tags/v1.1.0.zip", + "hash": { + "sha256": "aef230417fb2f2acb233f47f62f12441b3add64af8264935642abbd3a17b45f8" + }, + "version": "1.0.0" + }, "New game++": { "name": "New game++", "description": "A small collection of addons to CrossCode's NG+.", diff --git a/npDatabase.json b/npDatabase.json index bbc9dc33..81c81558 100644 --- a/npDatabase.json +++ b/npDatabase.json @@ -1,4 +1,29 @@ { + "Hadouken": { + "metadataCCMod": { + "id": "Hadouken", + "version": "1.0.0", + "title": "Hadouken", + "description": "Lea yells various forms of HADOUKEN or SHORYUKEN when casting appropriate combat arts.", + "repository": "https://github.com/CookieSalesman/CrossCode-HADOUKEN-v1.0", + "tags": [ + "fun" + ], + "authors": "CookieSalesman" + }, + "installation": [ + { + "type": "zip", + "url": "https://github.com/CookieSalesman/CrossCode-HADOUKEN-v1.0/archive/refs/tags/v1.1.0.zip", + "source": "CrossCode-HADOUKEN-v1.0-1.1.0", + "hash": { + "sha256": "aef230417fb2f2acb233f47f62f12441b3add64af8264935642abbd3a17b45f8" + } + } + ], + "stars": 0, + "lastUpdateTimestamp": 1708465799000 + }, "New game++": { "metadataCCMod": { "id": "New game++", From 5e6e414ccfa645724e835e95692568fc908a2f73 Mon Sep 17 00:00:00 2001 From: krypek Date: Wed, 21 Feb 2024 19:56:17 +0100 Subject: [PATCH 072/196] Update todo.md --- todo.md | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/todo.md b/todo.md index b4ba7002..5ce7358e 100644 --- a/todo.md +++ b/todo.md @@ -6,17 +6,17 @@ ### CCDirectLink -- https://github.com/CCDirectLink/input-api/pull/2 -- https://github.com/CCDirectLink/CC-ChargedBalls/pull/2 -- https://github.com/CCDirectLink/CCJetpack/pull/8 -- https://github.com/CCDirectLink/CCNewGamePP/pull/4 -- https://github.com/CCDirectLink/CCdiscord/pull/20 -- https://github.com/CCDirectLink/CCTimeWalker/pull/7 -- https://github.com/CCDirectLink/CCTimer/pull/6 -- https://github.com/CCDirectLink/extendable-severed-heads/pull/7 -- https://github.com/CCDirectLink/cc-menu-ui-replacement/pull/1 +- ~~https://github.com/CCDirectLink/input-api/pull/2~~ +- ~~https://github.com/CCDirectLink/CC-ChargedBalls/pull/2~~ +- ~~https://github.com/CCDirectLink/CCJetpack/pull/8~~ +- ~~https://github.com/CCDirectLink/CCNewGamePP/pull/4~~ +- ~~https://github.com/CCDirectLink/CCdiscord/pull/20~~ +- ~~https://github.com/CCDirectLink/CCTimeWalker/pull/7~~ +- ~~https://github.com/CCDirectLink/CCTimer/pull/6~~ +- ~~https://github.com/CCDirectLink/extendable-severed-heads/pull/7~~ +- ~~https://github.com/CCDirectLink/cc-menu-ui-replacement/pull/1~~ - https://github.com/CCDirectLink/CCLoader/pull/104 (includes cc-display-version and simplify) -- https://github.com/CCDirectLink/map-watch/pull/3 +- ~~https://github.com/CCDirectLink/map-watch/pull/3~~ ### Nax @@ -80,5 +80,5 @@ - https://github.com/WatDuhHekBro/cc-uwuifier/pull/4 - ~~https://github.com/Inevitabilis/CC-Junolea/pull/1~~ - ~~https://github.com/Pyrocorvid/CCNineRooms/pull/2~~ -- https://github.com/CookieSalesman/CrossCode-HADOUKEN-v1.0/pull/2 +- ~~https://github.com/CookieSalesman/CrossCode-HADOUKEN-v1.0/pull/2~~ - https://github.com/canbora/cc-named-saves/pull/2 From 6f5f6eff3dd9f327b4b96fe3c3f155b44e4eb9ca Mon Sep 17 00:00:00 2001 From: krypek Date: Wed, 21 Feb 2024 20:21:34 +0100 Subject: [PATCH 073/196] Update .github/workflows/ccbot.yaml --- .github/workflows/ccbot.yaml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/ccbot.yaml b/.github/workflows/ccbot.yaml index 348d881a..a7261e8e 100644 --- a/.github/workflows/ccbot.yaml +++ b/.github/workflows/ccbot.yaml @@ -25,12 +25,18 @@ jobs: run: | set -e OUT="$(npm run start)" + echo "$OUT" OUT="$(echo "$OUT" | tail -1)" + echo "$OUT" ID="$(echo "$OUT" | awk -F'|' '{print $1}')" VERSION="$(echo "$OUT" | awk -F'|' '{print $2}')" TITLE="$(echo "$OUT" | awk -F'|' '{print $3}')" DESCRIPTION="$(echo "$OUT" | awk -F'|' '{print $4}')" + echo "$ID" + echo "$VERSION" + echo "$TITLE" + echo "$DESCRIPTION" gh pr edit "${{ github.event.pull_request.number }}" --title "CCBot: ${ID}" gh pr comment "${{ github.event.pull_request.number }}" --body "Mod info:
${ID} v${VERSION}
${DESCRIPTION}" From 1466d78927872ad034ff906da9385a4e829f74cf Mon Sep 17 00:00:00 2001 From: krypek Date: Wed, 21 Feb 2024 20:21:34 +0100 Subject: [PATCH 074/196] Update .github/workflows/ccbot.yaml --- .github/workflows/ccbot.yaml | 33 +++++++++++++++++++-------------- .github/workflows/ci.yaml | 1 - build/src/main.ts | 11 +++++++++-- 3 files changed, 28 insertions(+), 17 deletions(-) diff --git a/.github/workflows/ccbot.yaml b/.github/workflows/ccbot.yaml index 348d881a..a2ae6003 100644 --- a/.github/workflows/ccbot.yaml +++ b/.github/workflows/ccbot.yaml @@ -1,4 +1,9 @@ name: Fill CCBot PR info + +permissions: + contents: read + pull-requests: write + on: pull_request: types: [opened] @@ -12,12 +17,16 @@ jobs: steps: - uses: actions/checkout@v4 with: + persist-credentials: false ref: ${{ github.head_ref }} + token: ${{ secrets.PAT }} + fetch-depth: 0 - uses: actions/setup-node@v4 with: node-version: 20 - working-directory: build/ run: npm ci + - name: Update the database working-directory: build/ env: @@ -28,24 +37,20 @@ jobs: OUT="$(echo "$OUT" | tail -1)" ID="$(echo "$OUT" | awk -F'|' '{print $1}')" - VERSION="$(echo "$OUT" | awk -F'|' '{print $2}')" - TITLE="$(echo "$OUT" | awk -F'|' '{print $3}')" - DESCRIPTION="$(echo "$OUT" | awk -F'|' '{print $4}')" + ID="$(echo "$OUT" | awk -F'|' '{print $2}')" + VERSION="$(echo "$OUT" | awk -F'|' '{print $3}')" + TITLE="$(echo "$OUT" | awk -F'|' '{print $4}')" + DESCRIPTION="$(echo "$OUT" | awk -F'|' '{print $5}')" - gh pr edit "${{ github.event.pull_request.number }}" --title "CCBot: ${ID}" + gh pr edit "${{ github.event.pull_request.number }}" --title "CCBot: ${TYPE} ${ID}" gh pr comment "${{ github.event.pull_request.number }}" --body "Mod info:
${ID} v${VERSION}
${DESCRIPTION}" - set +e - OUT="$(npm run start)" - npm test - TEST_REP=$? - - set -e git config --global user.name "${GITHUB_ACTOR}" git config --global user.email "${GITHUB_ACTOR_ID}+${GITHUB_ACTOR}@users.noreply.github.com" git commit --all -m "CCBot: Fill '${ID}' info" - git push - if [ ! $TEST_REP -eq 0 ]; then - exit 1 - fi + - name: Push changes + uses: 'ad-m/github-push-action@master' + with: + github_token: ${{ secrets.PAT }} + branch: ${{ github.head_ref }} diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index d46424bb..d645a439 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -9,7 +9,6 @@ jobs: runs-on: ubuntu-latest if: "!startsWith(github.event.head_commit.message, 'CCBot: ccbot')" - steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 diff --git a/build/src/main.ts b/build/src/main.ts index df3273cf..3eeddd92 100644 --- a/build/src/main.ts +++ b/build/src/main.ts @@ -2,6 +2,7 @@ import * as inputLocations from './inputLocations' import * as source from './source' import * as db from './db' import fs from 'fs' +import semver from 'semver' async function main() { const GITHUB_TOKEN = process.env['GITHUB_TOKEN'] @@ -21,11 +22,17 @@ async function main() { if (oldPkgDb) { for (const name in pkgDb) { - if (!oldPkgDb[name]) { - const pkg = pkgDb[name] + let type: 'New' | 'Update' | undefined + const pkg = pkgDb[name] + const oldPkg = oldPkgDb[name] + if (!oldPkg) type = 'New' + else if (semver.gt(pkg.metadataCCMod!.version!, oldPkg.metadataCCMod!.version!)) type = 'Update' + + if (type) { const ccmod = pkg.metadataCCMod! // prettier-ignore const arr: string[] = [ + type, ccmod.id, ccmod.version!, db.getStringFromLocalisedString(ccmod.title ?? 'unknown'), From d5de8e481416b9b9c38d23b89aac1d86b87579be Mon Sep 17 00:00:00 2001 From: krypek <115574014+krypciak@users.noreply.github.com> Date: Thu, 22 Feb 2024 15:34:21 +0000 Subject: [PATCH 075/196] CCBot: cc-vim (#78) * CCBot: ccbot/1 * CCBot: Fill 'cc-vim' info --- input-locations.json | 2 +- mods.json | 6 +++--- npDatabase.json | 8 ++++---- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/input-locations.json b/input-locations.json index ad6c06e0..297ede58 100644 --- a/input-locations.json +++ b/input-locations.json @@ -9,7 +9,7 @@ { "url": "https://github.com/krypciak/cc-element-boss/releases/download/v0.1.3/element-boss-0.1.3.ccmod" }, { "url": "https://github.com/CCDirectLink/item-api/releases/download/v0.4.4/item-api.ccmod" }, { "url": "https://github.com/krypciak/cc-extra-dialogue/releases/download/v1.0.1/cc-extra-dialogue.ccmod" }, - { "url": "https://github.com/krypciak/cc-vim/releases/download/v1.5.5/cc-vim-1.5.5.ccmod" }, + { "url": "https://github.com/krypciak/cc-vim/releases/download/v1.5.6/cc-vim-1.5.6.ccmod" }, { "url": "https://github.com/Symphiel/CursedCode/archive/refs/tags/0.1.1-2.zip" }, { "url": "https://github.com/Pyrocorvid/CCNineRooms/archive/refs/tags/v1.0.2.zip", "source": "CCNineRooms-1.0.2/nine-rooms" }, { "url": "https://github.com/Pyrocorvid/CCNineRooms/archive/refs/tags/v1.0.2.zip", "source": "CCNineRooms-1.0.2/past-booster" }, diff --git a/mods.json b/mods.json index 92e182ca..4a84a8b7 100644 --- a/mods.json +++ b/mods.json @@ -189,11 +189,11 @@ "url": "https://github.com/krypciak/cc-vim" } ], - "archive_link": "https://github.com/krypciak/cc-vim/releases/download/v1.5.5/cc-vim-1.5.5.ccmod", + "archive_link": "https://github.com/krypciak/cc-vim/releases/download/v1.5.6/cc-vim-1.5.6.ccmod", "hash": { - "sha256": "c26c6e3e2d0a52242e226c89556d5e7820af78e71c436c2deeeb2525e550f201" + "sha256": "1ad1a141934c8b0a87ee8b7aa909693408cc705b3ab503fdf2c77b82580c3b08" }, - "version": "1.5.5" + "version": "1.5.6" }, "charged-balls": { "name": "Charged balls", diff --git a/npDatabase.json b/npDatabase.json index 81c81558..ef507e68 100644 --- a/npDatabase.json +++ b/npDatabase.json @@ -392,7 +392,7 @@ "cc-vim": { "metadataCCMod": { "id": "cc-vim", - "version": "1.5.5", + "version": "1.5.6", "title": "Vim Command Mode", "description": "Adds a popup command prompt", "repository": "https://github.com/krypciak/cc-vim", @@ -411,14 +411,14 @@ "installation": [ { "type": "zip", - "url": "https://github.com/krypciak/cc-vim/releases/download/v1.5.5/cc-vim-1.5.5.ccmod", + "url": "https://github.com/krypciak/cc-vim/releases/download/v1.5.6/cc-vim-1.5.6.ccmod", "hash": { - "sha256": "c26c6e3e2d0a52242e226c89556d5e7820af78e71c436c2deeeb2525e550f201" + "sha256": "1ad1a141934c8b0a87ee8b7aa909693408cc705b3ab503fdf2c77b82580c3b08" } } ], "stars": 1, - "lastUpdateTimestamp": 1708366049000 + "lastUpdateTimestamp": 1708542081000 }, "charged-balls": { "metadataCCMod": { From fec415ef4f5ba3c6d360e999b099c83f5ac28851 Mon Sep 17 00:00:00 2001 From: krypek Date: Thu, 22 Feb 2024 16:34:57 +0100 Subject: [PATCH 076/196] Fix .ccbot.yaml typos --- .github/workflows/ccbot.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ccbot.yaml b/.github/workflows/ccbot.yaml index a2ae6003..3e674235 100644 --- a/.github/workflows/ccbot.yaml +++ b/.github/workflows/ccbot.yaml @@ -37,13 +37,13 @@ jobs: OUT="$(echo "$OUT" | tail -1)" ID="$(echo "$OUT" | awk -F'|' '{print $1}')" - ID="$(echo "$OUT" | awk -F'|' '{print $2}')" + TITLE="$(echo "$OUT" | awk -F'|' '{print $2}')" VERSION="$(echo "$OUT" | awk -F'|' '{print $3}')" TITLE="$(echo "$OUT" | awk -F'|' '{print $4}')" DESCRIPTION="$(echo "$OUT" | awk -F'|' '{print $5}')" gh pr edit "${{ github.event.pull_request.number }}" --title "CCBot: ${TYPE} ${ID}" - gh pr comment "${{ github.event.pull_request.number }}" --body "Mod info:
${ID} v${VERSION}
${DESCRIPTION}" + gh pr comment "${{ github.event.pull_request.number }}" --body "Mod info:
${TITLE} v${VERSION}
${DESCRIPTION}" git config --global user.name "${GITHUB_ACTOR}" git config --global user.email "${GITHUB_ACTOR_ID}+${GITHUB_ACTOR}@users.noreply.github.com" From b564a6339a7eec8893e1357cef73c36b1a2ff2bb Mon Sep 17 00:00:00 2001 From: krypek Date: Thu, 22 Feb 2024 16:37:21 +0100 Subject: [PATCH 077/196] Update todo.md --- todo.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/todo.md b/todo.md index 5ce7358e..f5919cf6 100644 --- a/todo.md +++ b/todo.md @@ -70,7 +70,7 @@ ### Rest1 -- https://github.com/ZeikJT/CrossCodeCheats/pull/7 +- ~~https://github.com/ZeikJT/CrossCodeCheats/pull/7~~ - https://github.com/L-Sherry/Localize-me/pull/12 - https://github.com/L-Sherry/French-CC/pull/19 - https://github.com/L-Sherry/Bob-Rank/pull/1 From 3035dfdf338eda3e9abe754b9ad98ba68014b2c2 Mon Sep 17 00:00:00 2001 From: krypek Date: Fri, 23 Feb 2024 11:23:09 +0100 Subject: [PATCH 078/196] Fix ccbot.yaml pr title --- .github/workflows/ccbot.yaml | 18 ++++++++++++------ todo.md | 1 + 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/.github/workflows/ccbot.yaml b/.github/workflows/ccbot.yaml index 19e2b197..5b0ab647 100644 --- a/.github/workflows/ccbot.yaml +++ b/.github/workflows/ccbot.yaml @@ -38,13 +38,19 @@ jobs: OUT="$(echo "$OUT" | tail -1)" echo "$OUT" - ID="$(echo "$OUT" | awk -F'|' '{print $1}')" - TITLE="$(echo "$OUT" | awk -F'|' '{print $2}')" - VERSION="$(echo "$OUT" | awk -F'|' '{print $3}')" - TITLE="$(echo "$OUT" | awk -F'|' '{print $4}')" - DESCRIPTION="$(echo "$OUT" | awk -F'|' '{print $5}')" + TYPE="$(echo "$OUT" | awk -F'|' '{print $1}')" + ID="$(echo "$OUT" | awk -F'|' '{print $2}')" + TITLE="$(echo "$OUT" | awk -F'|' '{print $3}')" + VERSION="$(echo "$OUT" | awk -F'|' '{print $4}')" + TITLE="$(echo "$OUT" | awk -F'|' '{print $5}')" + DESCRIPTION="$(echo "$OUT" | awk -F'|' '{print $6}')" + echo "$TYPE" + echo "$ID" + echo "$TITLE" + echo "$VERSION" + echo "$DESCRIPTION" - gh pr edit "${{ github.event.pull_request.number }}" --title "CCBot: ${TYPE} ${ID}" + gh pr edit "${{ github.event.pull_request.number }}" --title "CCBot ${TYPE} mod: ${ID}" gh pr comment "${{ github.event.pull_request.number }}" --body "Mod info:
${TITLE} v${VERSION}
${DESCRIPTION}" git config --global user.name "${GITHUB_ACTOR}" diff --git a/todo.md b/todo.md index f5919cf6..d5c2d611 100644 --- a/todo.md +++ b/todo.md @@ -31,6 +31,7 @@ - ~~https://github.com/EL20202/el-crosscode-tweaks/pull/2~~ - ~~https://github.com/EL20202/crosscode-extension-asset-preloader/pull/1~~ - ~~https://github.com/EL20202/crosscode-modifier-api-reborn/pull/1~~ +- https://github.com/elluminance/cc-c-edition/pull/1 ### Alyx From 5a1b09c5e30def875d0e33e3e702436563e0094d Mon Sep 17 00:00:00 2001 From: krypek Date: Fri, 23 Feb 2024 11:23:09 +0100 Subject: [PATCH 079/196] Fix ccbot.yaml pr title --- .github/workflows/ccbot.yaml | 15 ++++++++++----- todo.md | 1 + 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/.github/workflows/ccbot.yaml b/.github/workflows/ccbot.yaml index 19e2b197..efa416a9 100644 --- a/.github/workflows/ccbot.yaml +++ b/.github/workflows/ccbot.yaml @@ -1,8 +1,8 @@ name: Fill CCBot PR info permissions: - contents: read - pull-requests: write + contents: read + pull-requests: write on: pull_request: @@ -38,13 +38,18 @@ jobs: OUT="$(echo "$OUT" | tail -1)" echo "$OUT" - ID="$(echo "$OUT" | awk -F'|' '{print $1}')" - TITLE="$(echo "$OUT" | awk -F'|' '{print $2}')" + TYPE="$(echo "$OUT" | awk -F'|' '{print $1}')" + ID="$(echo "$OUT" | awk -F'|' '{print $2}')" VERSION="$(echo "$OUT" | awk -F'|' '{print $3}')" TITLE="$(echo "$OUT" | awk -F'|' '{print $4}')" DESCRIPTION="$(echo "$OUT" | awk -F'|' '{print $5}')" + echo "type: $TYPE" + echo "id: $ID" + echo "version: $VERSION" + echo "title: $TITLE" + echo "description: $DESCRIPTION" - gh pr edit "${{ github.event.pull_request.number }}" --title "CCBot: ${TYPE} ${ID}" + gh pr edit "${{ github.event.pull_request.number }}" --title "CCBot ${TYPE} mod: ${ID}" gh pr comment "${{ github.event.pull_request.number }}" --body "Mod info:
${TITLE} v${VERSION}
${DESCRIPTION}" git config --global user.name "${GITHUB_ACTOR}" diff --git a/todo.md b/todo.md index f5919cf6..d5c2d611 100644 --- a/todo.md +++ b/todo.md @@ -31,6 +31,7 @@ - ~~https://github.com/EL20202/el-crosscode-tweaks/pull/2~~ - ~~https://github.com/EL20202/crosscode-extension-asset-preloader/pull/1~~ - ~~https://github.com/EL20202/crosscode-modifier-api-reborn/pull/1~~ +- https://github.com/elluminance/cc-c-edition/pull/1 ### Alyx From e2acdf651ed00f1a4154b639fa820d287b4e1df6 Mon Sep 17 00:00:00 2001 From: krypek <115574014+krypciak@users.noreply.github.com> Date: Fri, 23 Feb 2024 10:31:16 +0000 Subject: [PATCH 080/196] CCBot New mod: xmc-litter (#90) * CCBot: ccbot/2 * CCBot: Fill 'xmc-litter' info --- input-locations.json | 3 ++- mods.json | 15 +++++++++++++++ npDatabase.json | 35 +++++++++++++++++++++++++++++++++++ 3 files changed, 52 insertions(+), 1 deletion(-) diff --git a/input-locations.json b/input-locations.json index 297ede58..7995a74b 100644 --- a/input-locations.json +++ b/input-locations.json @@ -32,5 +32,6 @@ { "url": "https://github.com/CCDirectLink/CCTimer/archive/refs/tags/v3.0.2.zip" }, { "url": "https://github.com/CCDirectLink/cc-menu-ui-replacement/archive/refs/tags/v1.0.4.zip" }, { "url": "https://github.com/CCDirectLink/map-watch/archive/refs/tags/v1.1.1.zip" }, - { "url": "https://github.com/CookieSalesman/CrossCode-HADOUKEN-v1.0/archive/refs/tags/v1.1.0.zip" } + { "url": "https://github.com/CookieSalesman/CrossCode-HADOUKEN-v1.0/archive/refs/tags/v1.1.0.zip" }, + { "url": "https://github.com/XenonA7/xmc-hexacast-litter/archive/refs/tags/1.0.8.zip" } ] diff --git a/mods.json b/mods.json index 4a84a8b7..db82200b 100644 --- a/mods.json +++ b/mods.json @@ -509,6 +509,21 @@ "sha256": "1444b03e3efd05f0bb1aeee5d9f9e3c0e5315cb0cdd10d3440474e7737cac3c3" }, "version": "0.27.3" + }, + "xmc-litter": { + "name": "XMC - Hexacast Litter", + "description": "Makes Hexacast spellcards linger on the ground for a long time \\c[3](visual only)\\c[0]", + "page": [ + { + "name": "GitHub", + "url": "https://github.com/XenonA7/xmc-hexacast-litter" + } + ], + "archive_link": "https://github.com/XenonA7/xmc-hexacast-litter/archive/refs/tags/1.0.8.zip", + "hash": { + "sha256": "1fd83d646bcafc8e698568385150047fdbc68c21a20f02556a7f572f68bfe848" + }, + "version": "1.0.8" } } } \ No newline at end of file diff --git a/npDatabase.json b/npDatabase.json index ef507e68..c57672a8 100644 --- a/npDatabase.json +++ b/npDatabase.json @@ -1106,5 +1106,40 @@ ], "stars": 2, "lastUpdateTimestamp": 1708404037000 + }, + "xmc-litter": { + "metadataCCMod": { + "id": "xmc-litter", + "version": "1.0.8", + "title": { + "en_US": "XMC - Hexacast Litter" + }, + "description": { + "en_US": "Makes Hexacast spellcards linger on the ground for a long time \\c[3](visual only)\\c[0]" + }, + "repository": "https://github.com/XenonA7/xmc-hexacast-litter", + "tags": [ + "cosmetic" + ], + "authors": "XenonA7", + "icons": { + "24": "icon.png" + }, + "dependencies": { + "xmc-hexacast": ">=0.0.1" + } + }, + "installation": [ + { + "type": "zip", + "url": "https://github.com/XenonA7/xmc-hexacast-litter/archive/refs/tags/1.0.8.zip", + "source": "xmc-hexacast-litter-1.0.8", + "hash": { + "sha256": "1fd83d646bcafc8e698568385150047fdbc68c21a20f02556a7f572f68bfe848" + } + } + ], + "stars": 0, + "lastUpdateTimestamp": 1708583987000 } } \ No newline at end of file From c6fe531ebf1dc605d18be6cbcac4fa076ae9d1ac Mon Sep 17 00:00:00 2001 From: krypek <115574014+krypciak@users.noreply.github.com> Date: Fri, 23 Feb 2024 10:32:26 +0000 Subject: [PATCH 081/196] CCBot New mod: cheats (#89) * CCBot: ccbot/1 * CCBot: Fill 'cheats' info --- input-locations.json | 1 + mods.json | 15 +++++++++++++++ npDatabase.json | 30 ++++++++++++++++++++++++++++++ 3 files changed, 46 insertions(+) diff --git a/input-locations.json b/input-locations.json index 7995a74b..e099b88f 100644 --- a/input-locations.json +++ b/input-locations.json @@ -33,5 +33,6 @@ { "url": "https://github.com/CCDirectLink/cc-menu-ui-replacement/archive/refs/tags/v1.0.4.zip" }, { "url": "https://github.com/CCDirectLink/map-watch/archive/refs/tags/v1.1.1.zip" }, { "url": "https://github.com/CookieSalesman/CrossCode-HADOUKEN-v1.0/archive/refs/tags/v1.1.0.zip" }, + { "url": "https://github.com/ZeikJT/CrossCodeCheats/archive/refs/tags/1.4.1-patch.zip" }, { "url": "https://github.com/XenonA7/xmc-hexacast-litter/archive/refs/tags/1.0.8.zip" } ] diff --git a/mods.json b/mods.json index db82200b..30e27a82 100644 --- a/mods.json +++ b/mods.json @@ -210,6 +210,21 @@ }, "version": "1.0.2" }, + "cheats": { + "name": "Cheats", + "description": "This mod adds cheats to CrossCode.", + "page": [ + { + "name": "GitHub", + "url": "https://github.com/ZeikJT/CrossCodeCheats" + } + ], + "archive_link": "https://github.com/ZeikJT/CrossCodeCheats/archive/refs/tags/1.4.1-patch.zip", + "hash": { + "sha256": "4a328f0c42e6082fb5bf23e9df868cee20a0711d73df5d17780856c3ee19576f" + }, + "version": "1.4.1" + }, "cursedcode": { "name": "CursedCode", "description": "Cursed custom maps.", diff --git a/npDatabase.json b/npDatabase.json index c57672a8..5ce53513 100644 --- a/npDatabase.json +++ b/npDatabase.json @@ -446,6 +446,36 @@ "stars": 1, "lastUpdateTimestamp": 1708511711000 }, + "cheats": { + "metadataCCMod": { + "id": "cheats", + "version": "1.4.1", + "title": "Cheats", + "description": "This mod adds cheats to CrossCode.", + "repository": "https://github.com/ZeikJT/CrossCodeCheats", + "tags": [ + "cheats" + ], + "authors": "ZeikJT", + "dependencies": { + "ccloader": "^2.11.0", + "crosscode": ">=1.2" + }, + "postload": "cheats.js" + }, + "installation": [ + { + "type": "zip", + "url": "https://github.com/ZeikJT/CrossCodeCheats/archive/refs/tags/1.4.1-patch.zip", + "source": "CrossCodeCheats-1.4.1-patch", + "hash": { + "sha256": "4a328f0c42e6082fb5bf23e9df868cee20a0711d73df5d17780856c3ee19576f" + } + } + ], + "stars": 5, + "lastUpdateTimestamp": 1708498807000 + }, "cursedcode": { "metadataCCMod": { "id": "cursedcode", From 4b146d94d8b30377436392c9e61e9d854334d7d1 Mon Sep 17 00:00:00 2001 From: krypek Date: Fri, 23 Feb 2024 11:41:03 +0100 Subject: [PATCH 082/196] Update todo.md --- todo.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/todo.md b/todo.md index d5c2d611..5e264bd1 100644 --- a/todo.md +++ b/todo.md @@ -46,8 +46,8 @@ - https://github.com/XenonA7/xenons-triblader-mod/pull/12 - ~~https://github.com/XenonA7/xmc-hexacast/pull/3~~ - ~~https://github.com/XenonA7/cc-party-element-effects/pull/2~~ -- https://github.com/XenonA7/xmc-hexacast-litter/pull/1 -- https://github.com/XenonA7/clean-title-screen/pull/1 +- ~~https://github.com/XenonA7/xmc-hexacast-litter/pull/1~~ +- ~~https://github.com/XenonA7/clean-title-screen/pull/1~~ ### Juanba From 4d2b77def8ae26ee05a569e115257ca9052d1dad Mon Sep 17 00:00:00 2001 From: krypek Date: Fri, 23 Feb 2024 11:44:38 +0100 Subject: [PATCH 083/196] Fix ccmod.yaml not generating mod icons --- .github/workflows/ccbot.yaml | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ccbot.yaml b/.github/workflows/ccbot.yaml index efa416a9..be491681 100644 --- a/.github/workflows/ccbot.yaml +++ b/.github/workflows/ccbot.yaml @@ -28,11 +28,19 @@ jobs: run: npm ci - name: Update the database - working-directory: build/ env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | set -e + + echo '---' + pwd + echo '---' + ls + echo '---' + ls icons + echo '---' + cd build OUT="$(npm run start)" echo "$OUT" @@ -49,12 +57,16 @@ jobs: echo "title: $TITLE" echo "description: $DESCRIPTION" + cd .. + ls icons gh pr edit "${{ github.event.pull_request.number }}" --title "CCBot ${TYPE} mod: ${ID}" gh pr comment "${{ github.event.pull_request.number }}" --body "Mod info:
${TITLE} v${VERSION}
${DESCRIPTION}" git config --global user.name "${GITHUB_ACTOR}" git config --global user.email "${GITHUB_ACTOR_ID}+${GITHUB_ACTOR}@users.noreply.github.com" - git commit --all -m "CCBot: Fill '${ID}' info" + git add -A + git commit -m "CCBot: Fill '${ID}' info" + git status - name: Push changes uses: 'ad-m/github-push-action@master' From bcab828e027bd46c6edb6b845eeeb6cac46d4304 Mon Sep 17 00:00:00 2001 From: krypek <115574014+krypciak@users.noreply.github.com> Date: Fri, 23 Feb 2024 10:58:35 +0000 Subject: [PATCH 084/196] CCBot New mod: clean-title-screen (#95) * CCBot: ccbot/0 * CCBot: Fill 'clean-title-screen' info --- icons/clean-title-screen.png | Bin 0 -> 1317 bytes icons/xmc-litter.png | Bin 0 -> 1619 bytes input-locations.json | 3 ++- mods.json | 15 +++++++++++++++ npDatabase.json | 33 +++++++++++++++++++++++++++++++++ 5 files changed, 50 insertions(+), 1 deletion(-) create mode 100644 icons/clean-title-screen.png create mode 100644 icons/xmc-litter.png diff --git a/icons/clean-title-screen.png b/icons/clean-title-screen.png new file mode 100644 index 0000000000000000000000000000000000000000..6d1db961b2336638507ff680eaa151fd2ebe5cbe GIT binary patch literal 1317 zcmV+=1={+FP)?-|u2P%fIf=(WB-p1_VUnS!S3v@dokKrfqQECyub9 ztP-CSkD7Er;zzD49=~xexGeC@h?!2!6Gw=}LK`b>%!;N)JV_i?HJ$Q>jK?bHEzVlG z%9{7&FAV4Om1VBe8bSh#Sb_u*3aTif3>z`pby6&(=sfP@A9Vc^xfF7hz{s(H3N*;B zAN&t~_twf!jC)DpIMDIpI3L46=PuBwInMX7<1|iy;4^TgxBQhlF#Sn-t))eefZlE3 z;<}|Nd%)!mFz{r^rtC^VT0%Y#yr0oGWr4n1pnJ{hTk{;J4?voFmAnBC4uO#ZWv~0Z zyQ{r#|JF47_XB!(a;osGzgPeO17b-;K~zYIwUl3I990y?e~r^d3{!BoO$2cxbaovd zi?e2D!Da(emzof;;6o#6AG!}+Dw2JQh=?K>d{Ha}*-?1hBUOgK^Rh761YBW=4PkU?Thiig}LX?_nrAT=kANg6J0;NAV>488Flj#I-hk~mHc0IyL&jU5M&e#1y||AGlXb$cU3 zux}t`iig3~*l`Ra3Bby=Q5oxV?*@vWe7jZWI5qyd@m2`jmuT07ke`lIW98Z?g+hUP zy-vMer@GZ-Y5{d1sy zT-FE>LI~-~Ns&nOA>)Jb^#kUZcYG6FpS7noJzj@ER4$ zpS`e~CjNdqS4rXVWv26*iX49Bun{S%UQ1>B%mrl*l-J_BKT-T-E z_O@h{2w1ZKRJWRB_P3gFU6(%Km3MxWxvOoM0fMIvKL>!etx#=SB7{I483}YYHa$ft zKS|$C{%`mG2H?S_7sv}u(UD7|0nJB-hp{XR*LCsA3%IU}Wm(M6&!cTCOdQkzNX(rE zpu0!yOmO7VXyC~`OD|q|fm|+!rfI0zG@7Q7%jNLO3qWhaTxAS1poEyfX~I_iL}BVTPkI;(QJMQRDj!x@7ycf0j~nL bf%Sg@SW(DeWm02s00000NkvXXu0mjfbIW^u literal 0 HcmV?d00001 diff --git a/icons/xmc-litter.png b/icons/xmc-litter.png new file mode 100644 index 0000000000000000000000000000000000000000..e021de4945bf9e1812b1f6be141d9f4bbfc35e2a GIT binary patch literal 1619 zcmV-Z2CVssP)EX>4Tx04R}tkv&MmKp2MKrWHjh4ptCx$WWauh>D1lR-p(LLaorMgUO|T(4-+r zad8w}3l9D)RvlcNb#-tR1i>E=M<*vm7b)?(q|hS9JC1vJ?|WbFz5|4MnQ2yN4A6Aj zOeNxCCc7$jz9NJ$%^CE|%rfRADGA^4b&mkw?_xa5zwXb`qvk9I1VrLlW|%hd2JzIU zZE)TvjTnNH0UM~KBj8!K(hil#<9NgP!*o$`f@ z$13M7&RV(3n)l={4CnNfWvu?swklh8!_5-QY@tCJnrKkbo~;!6mpfo z$gzM5G{~+W{11Nj*2+(edr9Fq(DC9pAHzWBF3_ks&iAq7G){ovGjOH1{FOQ|{YiSQ zrA3c`-fiIGx}_<5z~v4w@MOrQ>`FmeLOu_?pV2pEfxcUyd(G=x^BkuSK$?1$ya5gl zfsq1bulu~atG#dk)-?O~1A2IJs)?KRBLDydiAh93R7i=flz&W=bsWcEcXEhaJAM{Q z!6_VYOr&!+?~0_qt(Ei#+tGax?7OC zi5vz)jZn&L_|6N zBLe)%yUaJs-FC2i{RaTW1!0n-$^Z?5i;n1O0JK^y=2|POlY@zhilWhaSMpu6HkbBm zEvP(wC>J6xE(nv6mvryOZHFy|p%^2pWD$1sOwee(%ch(alCAw(3v1Tq0-#7pNUZ2G z-z;wsT=aK)WyI=z3dU=^n1;$293156$`hyz;I@mRN_B>ebaiqt9X%7cCx`g$;TX#! zlmvuFM3gW2`xMpPuSn!70|dUHV01f#)GIL7RAHh_BD;9QMd{>6toS^7HZ55#bo5L} z_ottXgP9cJxzNu6(|2fAonqtJbyQv|V|2Ud==(KBR!Oz-$C2X=968=Vd)rr1TKu5| zK%>TUp&yUXg2zT}=|0DywNZ8HLzV7M~?1|39(U^1VBcXz zMMiwjGC+IKk_A!(aOXb6Ma$1aqj-ca_6F{z^QSOg+7^h-W&>bT&hyx8HuQQuU;J`{ z@SuD^oELyW34*{QZ>%)Q0OcFRA#~eC zpS=34IWHI!`?yFq!pW&{@jf;Vks&nQ{SfcBdaQ=60PJ{lh1TEgko-Czwy|#$bfuL!&f3JdAfr55UKN9;UfB9tR-2I!$_G7}mF{xOl^V6Py5`nXH*P z@Pp1eJzEEm$Q=)Ek*9Oe+#3%-{L&=Zcbii~rL%gU0+oR|FYx7_X~|R+If-{bjJ!BI zKq3dQ8n#k5I4IqHOH#dWcEtel7wD|h^j3(~HD~L1ZQwG1EOH-tj{Us!zYo5s{h{=a z-bbEw=^M$x@!%Gg)@iOdeg&XzStdF5^W^CqQmcvrDY+P9R1^h{0MHiq9D*Rse=lOX z*4KT);?w(Ce0o0s(Z}i;U1`MWbmDY6d9O2#hr34o1Y*I|@8;w)Dfm*>RXv0fY}wW$7sR0XCtOUw?x#NvlpzNkrcd0vZ+e* z32Ueo$$``-e&of_+Z=O=yU2CjR0(_!+*hP$WP1NK508P7;o(Za3iJU3{{X<}&e~Q~ RH;4cL002ovPDHLkV1gwj2Q2^q literal 0 HcmV?d00001 diff --git a/input-locations.json b/input-locations.json index e099b88f..5b0b2b49 100644 --- a/input-locations.json +++ b/input-locations.json @@ -34,5 +34,6 @@ { "url": "https://github.com/CCDirectLink/map-watch/archive/refs/tags/v1.1.1.zip" }, { "url": "https://github.com/CookieSalesman/CrossCode-HADOUKEN-v1.0/archive/refs/tags/v1.1.0.zip" }, { "url": "https://github.com/ZeikJT/CrossCodeCheats/archive/refs/tags/1.4.1-patch.zip" }, - { "url": "https://github.com/XenonA7/xmc-hexacast-litter/archive/refs/tags/1.0.8.zip" } + { "url": "https://github.com/XenonA7/xmc-hexacast-litter/archive/refs/tags/1.0.8.zip" }, + { "url": "https://github.com/XenonA7/clean-title-screen/archive/refs/tags/1.0.1.zip" } ] diff --git a/mods.json b/mods.json index 30e27a82..6723b1c3 100644 --- a/mods.json +++ b/mods.json @@ -225,6 +225,21 @@ }, "version": "1.4.1" }, + "clean-title-screen": { + "name": "Clean Title Screen", + "description": "Removes Lea from the title screen", + "page": [ + { + "name": "GitHub", + "url": "https://github.com/XenonA7/clean-title-screen" + } + ], + "archive_link": "https://github.com/XenonA7/clean-title-screen/archive/refs/tags/1.0.1.zip", + "hash": { + "sha256": "fbd13967461584e8f74062f6aa1c9fe34c4dce185ec9b8cfa4ea4340fb5c66e2" + }, + "version": "1.0.1" + }, "cursedcode": { "name": "CursedCode", "description": "Cursed custom maps.", diff --git a/npDatabase.json b/npDatabase.json index 5ce53513..77bf0b68 100644 --- a/npDatabase.json +++ b/npDatabase.json @@ -476,6 +476,39 @@ "stars": 5, "lastUpdateTimestamp": 1708498807000 }, + "clean-title-screen": { + "metadataCCMod": { + "id": "clean-title-screen", + "version": "1.0.1", + "title": { + "en_US": "Clean Title Screen" + }, + "description": { + "en_US": "Removes Lea from the title screen" + }, + "repository": "https://github.com/XenonA7/clean-title-screen", + "tags": [ + "cosmetic" + ], + "authors": "XenonA7", + "icons": { + "24": "icon.png" + }, + "dependencies": {} + }, + "installation": [ + { + "type": "zip", + "url": "https://github.com/XenonA7/clean-title-screen/archive/refs/tags/1.0.1.zip", + "source": "clean-title-screen-1.0.1", + "hash": { + "sha256": "fbd13967461584e8f74062f6aa1c9fe34c4dce185ec9b8cfa4ea4340fb5c66e2" + } + } + ], + "stars": 0, + "lastUpdateTimestamp": 1708620822000 + }, "cursedcode": { "metadataCCMod": { "id": "cursedcode", From f1b18bec661b24f42baf5b3b5374c7cfbc034233 Mon Sep 17 00:00:00 2001 From: krypek Date: Fri, 23 Feb 2024 11:44:38 +0100 Subject: [PATCH 085/196] Fix ccmod.yaml not generating mod icons --- .github/workflows/ccbot.yaml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ccbot.yaml b/.github/workflows/ccbot.yaml index efa416a9..49e12b2a 100644 --- a/.github/workflows/ccbot.yaml +++ b/.github/workflows/ccbot.yaml @@ -28,11 +28,12 @@ jobs: run: npm ci - name: Update the database - working-directory: build/ env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | set -e + + cd build OUT="$(npm run start)" echo "$OUT" @@ -49,12 +50,15 @@ jobs: echo "title: $TITLE" echo "description: $DESCRIPTION" + cd .. gh pr edit "${{ github.event.pull_request.number }}" --title "CCBot ${TYPE} mod: ${ID}" gh pr comment "${{ github.event.pull_request.number }}" --body "Mod info:
${TITLE} v${VERSION}
${DESCRIPTION}" git config --global user.name "${GITHUB_ACTOR}" git config --global user.email "${GITHUB_ACTOR_ID}+${GITHUB_ACTOR}@users.noreply.github.com" - git commit --all -m "CCBot: Fill '${ID}' info" + git add -A + git commit -m "CCBot: Fill '${ID}' info" + git status - name: Push changes uses: 'ad-m/github-push-action@master' From a2c663253dacb215ed7bb90bf0b731ba77a1f52a Mon Sep 17 00:00:00 2001 From: krypek <115574014+krypciak@users.noreply.github.com> Date: Fri, 23 Feb 2024 18:18:10 +0000 Subject: [PATCH 086/196] CCBot New mod: mw-rando (#96) * CCBot: ccbot/0 * CCBot: Fill 'mw-rando' info --- input-locations.json | 3 ++- mods.json | 15 +++++++++++++++ npDatabase.json | 30 ++++++++++++++++++++++++++++++ 3 files changed, 47 insertions(+), 1 deletion(-) diff --git a/input-locations.json b/input-locations.json index 5b0b2b49..943acc8f 100644 --- a/input-locations.json +++ b/input-locations.json @@ -35,5 +35,6 @@ { "url": "https://github.com/CookieSalesman/CrossCode-HADOUKEN-v1.0/archive/refs/tags/v1.1.0.zip" }, { "url": "https://github.com/ZeikJT/CrossCodeCheats/archive/refs/tags/1.4.1-patch.zip" }, { "url": "https://github.com/XenonA7/xmc-hexacast-litter/archive/refs/tags/1.0.8.zip" }, - { "url": "https://github.com/XenonA7/clean-title-screen/archive/refs/tags/1.0.1.zip" } + { "url": "https://github.com/XenonA7/clean-title-screen/archive/refs/tags/1.0.1.zip" }, + { "url": "https://github.com/CodeTriangle/CCMultiworldRandomizer/releases/download/0.4.1/CCMultiworldRandomizer-0.4.1.ccmod" } ] diff --git a/mods.json b/mods.json index 6723b1c3..b0a9b204 100644 --- a/mods.json +++ b/mods.json @@ -435,6 +435,21 @@ }, "version": "0.1.1" }, + "mw-rando": { + "name": "Multiworld randomizer", + "description": "Client for CrossCode Archipelago Integration", + "page": [ + { + "name": "GitHub", + "url": "https://github.com/CodeTriangle/CCMultiworldRandomizer" + } + ], + "archive_link": "https://github.com/CodeTriangle/CCMultiworldRandomizer/releases/download/0.4.1/CCMultiworldRandomizer-0.4.1.ccmod", + "hash": { + "sha256": "507105210e9407aea44cead7a057749b79cb3ffbf3caac7c947af1a3c517922e" + }, + "version": "0.4.1" + }, "nine-rooms": { "name": "Nine Rooms", "description": "A little piece of lost history.", diff --git a/npDatabase.json b/npDatabase.json index 77bf0b68..442c499e 100644 --- a/npDatabase.json +++ b/npDatabase.json @@ -926,6 +926,36 @@ "stars": 0, "lastUpdateTimestamp": 1708372181000 }, + "mw-rando": { + "metadataCCMod": { + "id": "mw-rando", + "version": "0.4.1", + "title": "Multiworld randomizer", + "description": "Client for CrossCode Archipelago Integration", + "repository": "https://github.com/CodeTriangle/CCMultiworldRandomizer", + "tags": [ + "puzzle", + "speedrun" + ], + "authors": "CodeTriangle", + "plugin": "mw-rando/plugin.js", + "dependencies": { + "open-world": ">=0.1.8", + "nax-ccuilib": ">=1.2" + } + }, + "installation": [ + { + "type": "zip", + "url": "https://github.com/CodeTriangle/CCMultiworldRandomizer/releases/download/0.4.1/CCMultiworldRandomizer-0.4.1.ccmod", + "hash": { + "sha256": "507105210e9407aea44cead7a057749b79cb3ffbf3caac7c947af1a3c517922e" + } + } + ], + "stars": 1, + "lastUpdateTimestamp": 1708711533000 + }, "nine-rooms": { "metadataCCMod": { "id": "nine-rooms", From 9a31ddaf85fa8c6a1992a20785084ece903a9209 Mon Sep 17 00:00:00 2001 From: krypek Date: Fri, 23 Feb 2024 19:20:32 +0100 Subject: [PATCH 087/196] Update todo.md --- todo.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/todo.md b/todo.md index 5e264bd1..6a4da40f 100644 --- a/todo.md +++ b/todo.md @@ -59,7 +59,7 @@ - ~~https://github.com/Symphiel/CursedCode/pull/1~~ - https://github.com/Hsifnus/autumns-genesis/pull/35 - https://github.com/2hh8899/ArcaneLab/pull/18 -- https://github.com/CodeTriangle/CCMultiworldRandomizer/pull/10 +- ~~https://github.com/CodeTriangle/CCMultiworldRandomizer/pull/10~~ ## PR's in progress but probably never merging (will need to make release on my fork if not merged) From 4e60ba617053eb0a8e0f2efefaf812cc5f8a4c77 Mon Sep 17 00:00:00 2001 From: krypek Date: Sat, 24 Feb 2024 17:20:57 +0100 Subject: [PATCH 088/196] Update CCMOD-STANDARD.md --- CCMOD-STANDARD.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CCMOD-STANDARD.md b/CCMOD-STANDARD.md index 7ad6b74b..67716ea6 100644 --- a/CCMOD-STANDARD.md +++ b/CCMOD-STANDARD.md @@ -43,7 +43,7 @@ - `language` - adds a new language - `accessibility` - makes the game more accessible - `dev` - helps mod developers create mods -- `library` - used by other mods +- `library` - used by other mods. CCModManager hides these mods by default only if this tag is the first element - `base` - used by stuff like CCLoader ## Example `ccmod.json` From 40f727229e80945cd914d74f7a91206cf5d383cf Mon Sep 17 00:00:00 2001 From: krypek <115574014+krypciak@users.noreply.github.com> Date: Sat, 24 Feb 2024 22:18:33 +0000 Subject: [PATCH 089/196] CCBot New mod: lqm-joern-mod (#97) * CCBot: ccbot/0 * CCBot: Fill 'lqm-joern-mod' info --- icons/lqm-joern-mod.png | Bin 0 -> 918 bytes input-locations.json | 3 ++- mods.json | 15 ++++++++++++++ npDatabase.json | 45 ++++++++++++++++++++++++++++++++++++++++ 4 files changed, 62 insertions(+), 1 deletion(-) create mode 100644 icons/lqm-joern-mod.png diff --git a/icons/lqm-joern-mod.png b/icons/lqm-joern-mod.png new file mode 100644 index 0000000000000000000000000000000000000000..10e2808fbf7162b44813dbe79ce1d8c6ac173173 GIT binary patch literal 918 zcmV;H18Mw;P)Px&P)S5VR7i=fl}~6Kbri=xJIUoITPU_Y2=3B7j0CJnwwIj^X&cZD6Y#PN8*F5H zP)QvEUexvAVOi=yLOpnpA)_AbHYr5dy$IPh7&P0oqhLvbhnAJbHee6!=Cp^Z`Qu^x z`*n9`MvC}gV1B>%-sipV`^}$-uD_%Kao{*G_WY3}MgB+Y?}fka-cZif!YlxLS|TvH zZ-0x^vxQLjche(i&k9fI<39MFmQZnFrUk*T&74;7PH;jWC!vokc;EgO0HuusN*f2k z1%lwVZTq_Z;N8P~RXWU8T zvH}%Eqfx$gO#qf=v%oedhhqS|ywfh$S_9Y)9gQ?C%prt82*E_*a{z9wcf;iRx4q|B zUS0-ZcjLB?qZITyj~0*dsPqsa1cyfQeEi`jP`$&LE-+5S`LucmfH7U*I1an1Vfu## z6sLb^AY6gtIKI8R_cqCEmoZMn0my5YxqEMu{df|~vN-kA`M^o^%kE{xI&&(xTCD-7Jx>G>=fOneBIaQ#Zn(KO= zEz5dlxE!Y}^4H(H>@=HI;8N%rn5L;d6<0@=Gt s;3DuxBxR(7f2RM@p1^+qeg_`>1OD<;8SC+BrT_o{07*qoM6N<$f Date: Sat, 24 Feb 2024 23:18:54 +0100 Subject: [PATCH 090/196] Update todo.md --- todo.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/todo.md b/todo.md index 6a4da40f..5b2b038a 100644 --- a/todo.md +++ b/todo.md @@ -17,6 +17,7 @@ - ~~https://github.com/CCDirectLink/cc-menu-ui-replacement/pull/1~~ - https://github.com/CCDirectLink/CCLoader/pull/104 (includes cc-display-version and simplify) - ~~https://github.com/CCDirectLink/map-watch/pull/3~~ +- https://github.com/CCDirectLink/unified-steps/pull/1 ### Nax @@ -58,7 +59,7 @@ - ~~https://github.com/Symphiel/CursedCode/pull/1~~ - https://github.com/Hsifnus/autumns-genesis/pull/35 -- https://github.com/2hh8899/ArcaneLab/pull/18 +- https://github.com/2hh8899/ArcaneLab/pull/19 - ~~https://github.com/CodeTriangle/CCMultiworldRandomizer/pull/10~~ ## PR's in progress but probably never merging (will need to make release on my fork if not merged) From 361c0a137b2b7a51e81e8b7e5a1fdf389d7ced7f Mon Sep 17 00:00:00 2001 From: krypek <115574014+krypciak@users.noreply.github.com> Date: Sun, 25 Feb 2024 13:13:26 +0000 Subject: [PATCH 091/196] CCBot Update mod: cc-vim (#98) * CCBot: ccbot/0 * CCBot: Fill 'cc-vim' info --- input-locations.json | 2 +- mods.json | 6 +++--- npDatabase.json | 11 ++++++----- 3 files changed, 10 insertions(+), 9 deletions(-) diff --git a/input-locations.json b/input-locations.json index 4f1df692..c82fd756 100644 --- a/input-locations.json +++ b/input-locations.json @@ -9,7 +9,7 @@ { "url": "https://github.com/krypciak/cc-element-boss/releases/download/v0.1.3/element-boss-0.1.3.ccmod" }, { "url": "https://github.com/CCDirectLink/item-api/releases/download/v0.4.4/item-api.ccmod" }, { "url": "https://github.com/krypciak/cc-extra-dialogue/releases/download/v1.0.1/cc-extra-dialogue.ccmod" }, - { "url": "https://github.com/krypciak/cc-vim/releases/download/v1.5.6/cc-vim-1.5.6.ccmod" }, + { "url": "https://github.com/krypciak/cc-vim/releases/download/v1.5.7/cc-vim-1.5.7.ccmod" }, { "url": "https://github.com/Symphiel/CursedCode/archive/refs/tags/0.1.1-2.zip" }, { "url": "https://github.com/Pyrocorvid/CCNineRooms/archive/refs/tags/v1.0.2.zip", "source": "CCNineRooms-1.0.2/nine-rooms" }, { "url": "https://github.com/Pyrocorvid/CCNineRooms/archive/refs/tags/v1.0.2.zip", "source": "CCNineRooms-1.0.2/past-booster" }, diff --git a/mods.json b/mods.json index ae278060..e6672425 100644 --- a/mods.json +++ b/mods.json @@ -189,11 +189,11 @@ "url": "https://github.com/krypciak/cc-vim" } ], - "archive_link": "https://github.com/krypciak/cc-vim/releases/download/v1.5.6/cc-vim-1.5.6.ccmod", + "archive_link": "https://github.com/krypciak/cc-vim/releases/download/v1.5.7/cc-vim-1.5.7.ccmod", "hash": { - "sha256": "1ad1a141934c8b0a87ee8b7aa909693408cc705b3ab503fdf2c77b82580c3b08" + "sha256": "ea2910759db1280fb459097ace8cd274d9d1c18299d999a488992281390885e7" }, - "version": "1.5.6" + "version": "1.5.7" }, "charged-balls": { "name": "Charged balls", diff --git a/npDatabase.json b/npDatabase.json index fbdaef2e..9e1c7679 100644 --- a/npDatabase.json +++ b/npDatabase.json @@ -392,12 +392,13 @@ "cc-vim": { "metadataCCMod": { "id": "cc-vim", - "version": "1.5.6", + "version": "1.5.7", "title": "Vim Command Mode", "description": "Adds a popup command prompt", "repository": "https://github.com/krypciak/cc-vim", "tags": [ - "dev" + "dev", + "widget" ], "authors": "krypek", "icons": { @@ -411,14 +412,14 @@ "installation": [ { "type": "zip", - "url": "https://github.com/krypciak/cc-vim/releases/download/v1.5.6/cc-vim-1.5.6.ccmod", + "url": "https://github.com/krypciak/cc-vim/releases/download/v1.5.7/cc-vim-1.5.7.ccmod", "hash": { - "sha256": "1ad1a141934c8b0a87ee8b7aa909693408cc705b3ab503fdf2c77b82580c3b08" + "sha256": "ea2910759db1280fb459097ace8cd274d9d1c18299d999a488992281390885e7" } } ], "stars": 1, - "lastUpdateTimestamp": 1708542081000 + "lastUpdateTimestamp": 1708866650000 }, "charged-balls": { "metadataCCMod": { From ff59de032d599580a963d7bcc54cfbaa7b3c6473 Mon Sep 17 00:00:00 2001 From: krypek <115574014+krypciak@users.noreply.github.com> Date: Sun, 25 Feb 2024 13:14:32 +0000 Subject: [PATCH 092/196] CCBot Update mod: cc-blitzkrieg (#99) * CCBot: ccbot/1 * CCBot: Fill 'cc-blitzkrieg' info --- input-locations.json | 2 +- mods.json | 6 +++--- npDatabase.json | 11 ++++++----- 3 files changed, 10 insertions(+), 9 deletions(-) diff --git a/input-locations.json b/input-locations.json index c82fd756..7a638ea2 100644 --- a/input-locations.json +++ b/input-locations.json @@ -1,6 +1,6 @@ [ { "url": "https://github.com/CCDirectLink/input-api/archive/refs/tags/v1.0.2.zip" }, - { "url": "https://github.com/krypciak/cc-blitzkrieg/releases/download/v0.4.8/cc-blitzkrieg-0.4.8.ccmod" }, + { "url": "https://github.com/krypciak/cc-blitzkrieg/releases/download/v0.4.9/cc-blitzkrieg-0.4.9.ccmod" }, { "url": "https://github.com/krypciak/cc-fancy-crash/releases/download/v1.0.8/cc-fancy-crash-1.0.8.ccmod" }, { "url": "https://github.com/CCDirectLink/Blades/archive/1.6.0.zip" }, { "url": "https://github.com/krypciak/cc-jetpack-widget/releases/download/v1.0.1/cc-jetpack-widget-1.0.1.ccmod" }, diff --git a/mods.json b/mods.json index e6672425..3fd23e70 100644 --- a/mods.json +++ b/mods.json @@ -84,11 +84,11 @@ "url": "https://github.com/krypciak/cc-blitzkrieg" } ], - "archive_link": "https://github.com/krypciak/cc-blitzkrieg/releases/download/v0.4.8/cc-blitzkrieg-0.4.8.ccmod", + "archive_link": "https://github.com/krypciak/cc-blitzkrieg/releases/download/v0.4.9/cc-blitzkrieg-0.4.9.ccmod", "hash": { - "sha256": "eb88b197308a00273f6aeb713b9445f37aa1a4d161159aee243951da5c85bbd1" + "sha256": "228d223662025e3006e70ca8b2118039e1a88a146111f46b627d8019646ff010" }, - "version": "0.4.8" + "version": "0.4.9" }, "cc-capped-stats": { "name": "Capped Stats", diff --git a/npDatabase.json b/npDatabase.json index 9e1c7679..ba183576 100644 --- a/npDatabase.json +++ b/npDatabase.json @@ -172,13 +172,14 @@ "cc-blitzkrieg": { "metadataCCMod": { "id": "cc-blitzkrieg", - "version": "0.4.8", + "version": "0.4.9", "title": "Blitzkrieg (WIP)", "description": "Puzzle solving, incresed puzzle difficuly, puzzle and boss collection tools", "repository": "https://github.com/krypciak/cc-blitzkrieg", "tags": [ "library", - "puzzle" + "puzzle", + "widget" ], "authors": "krypek", "icons": { @@ -193,14 +194,14 @@ "installation": [ { "type": "zip", - "url": "https://github.com/krypciak/cc-blitzkrieg/releases/download/v0.4.8/cc-blitzkrieg-0.4.8.ccmod", + "url": "https://github.com/krypciak/cc-blitzkrieg/releases/download/v0.4.9/cc-blitzkrieg-0.4.9.ccmod", "hash": { - "sha256": "eb88b197308a00273f6aeb713b9445f37aa1a4d161159aee243951da5c85bbd1" + "sha256": "228d223662025e3006e70ca8b2118039e1a88a146111f46b627d8019646ff010" } } ], "stars": 0, - "lastUpdateTimestamp": 1708107327000 + "lastUpdateTimestamp": 1708866734000 }, "cc-capped-stats": { "metadataCCMod": { From 7387af9533dfb840042ab9af3dc7bef811597f55 Mon Sep 17 00:00:00 2001 From: krypek Date: Sun, 25 Feb 2024 14:15:23 +0100 Subject: [PATCH 093/196] Update todo.md --- todo.md | 1 + 1 file changed, 1 insertion(+) diff --git a/todo.md b/todo.md index 5b2b038a..c0a10829 100644 --- a/todo.md +++ b/todo.md @@ -18,6 +18,7 @@ - https://github.com/CCDirectLink/CCLoader/pull/104 (includes cc-display-version and simplify) - ~~https://github.com/CCDirectLink/map-watch/pull/3~~ - https://github.com/CCDirectLink/unified-steps/pull/1 +- https://github.com/CCDirectLink/cc-speedrun-utilities/pull/2 ### Nax From af64601bc8076d5940d214822c4e8a1d5b4bab7e Mon Sep 17 00:00:00 2001 From: krypek <115574014+krypciak@users.noreply.github.com> Date: Sun, 25 Feb 2024 13:20:34 +0000 Subject: [PATCH 094/196] CCBot Update mod: cc-blitzkrieg (#100) * CCBot: ccbot/0 * CCBot: Fill 'cc-blitzkrieg' info --- input-locations.json | 2 +- mods.json | 6 +++--- npDatabase.json | 12 ++++++------ 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/input-locations.json b/input-locations.json index 7a638ea2..6433996b 100644 --- a/input-locations.json +++ b/input-locations.json @@ -1,6 +1,6 @@ [ { "url": "https://github.com/CCDirectLink/input-api/archive/refs/tags/v1.0.2.zip" }, - { "url": "https://github.com/krypciak/cc-blitzkrieg/releases/download/v0.4.9/cc-blitzkrieg-0.4.9.ccmod" }, + { "url": "https://github.com/krypciak/cc-blitzkrieg/releases/download/v0.5.0/cc-blitzkrieg-0.5.0.ccmod" }, { "url": "https://github.com/krypciak/cc-fancy-crash/releases/download/v1.0.8/cc-fancy-crash-1.0.8.ccmod" }, { "url": "https://github.com/CCDirectLink/Blades/archive/1.6.0.zip" }, { "url": "https://github.com/krypciak/cc-jetpack-widget/releases/download/v1.0.1/cc-jetpack-widget-1.0.1.ccmod" }, diff --git a/mods.json b/mods.json index 3fd23e70..d3faba82 100644 --- a/mods.json +++ b/mods.json @@ -84,11 +84,11 @@ "url": "https://github.com/krypciak/cc-blitzkrieg" } ], - "archive_link": "https://github.com/krypciak/cc-blitzkrieg/releases/download/v0.4.9/cc-blitzkrieg-0.4.9.ccmod", + "archive_link": "https://github.com/krypciak/cc-blitzkrieg/releases/download/v0.5.0/cc-blitzkrieg-0.5.0.ccmod", "hash": { - "sha256": "228d223662025e3006e70ca8b2118039e1a88a146111f46b627d8019646ff010" + "sha256": "c6d9b88a66edb39e2a290665accf194d4e2e29c132a2844ab209f49e38312e17" }, - "version": "0.4.9" + "version": "0.5.0" }, "cc-capped-stats": { "name": "Capped Stats", diff --git a/npDatabase.json b/npDatabase.json index ba183576..bc180895 100644 --- a/npDatabase.json +++ b/npDatabase.json @@ -172,14 +172,14 @@ "cc-blitzkrieg": { "metadataCCMod": { "id": "cc-blitzkrieg", - "version": "0.4.9", + "version": "0.5.0", "title": "Blitzkrieg (WIP)", "description": "Puzzle solving, incresed puzzle difficuly, puzzle and boss collection tools", "repository": "https://github.com/krypciak/cc-blitzkrieg", "tags": [ - "library", "puzzle", - "widget" + "widget", + "library" ], "authors": "krypek", "icons": { @@ -194,14 +194,14 @@ "installation": [ { "type": "zip", - "url": "https://github.com/krypciak/cc-blitzkrieg/releases/download/v0.4.9/cc-blitzkrieg-0.4.9.ccmod", + "url": "https://github.com/krypciak/cc-blitzkrieg/releases/download/v0.5.0/cc-blitzkrieg-0.5.0.ccmod", "hash": { - "sha256": "228d223662025e3006e70ca8b2118039e1a88a146111f46b627d8019646ff010" + "sha256": "c6d9b88a66edb39e2a290665accf194d4e2e29c132a2844ab209f49e38312e17" } } ], "stars": 0, - "lastUpdateTimestamp": 1708866734000 + "lastUpdateTimestamp": 1708867059000 }, "cc-capped-stats": { "metadataCCMod": { From ffe1cfa9a442017f7001123cff202b147c6ee55f Mon Sep 17 00:00:00 2001 From: krypek <115574014+krypciak@users.noreply.github.com> Date: Tue, 27 Feb 2024 17:14:19 +0000 Subject: [PATCH 095/196] CCBot Update mod: cc-vim (#101) * CCBot: ccbot/0 * CCBot: Fill 'cc-vim' info --- input-locations.json | 2 +- mods.json | 6 +++--- npDatabase.json | 8 ++++---- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/input-locations.json b/input-locations.json index 6433996b..a1c7975a 100644 --- a/input-locations.json +++ b/input-locations.json @@ -9,7 +9,7 @@ { "url": "https://github.com/krypciak/cc-element-boss/releases/download/v0.1.3/element-boss-0.1.3.ccmod" }, { "url": "https://github.com/CCDirectLink/item-api/releases/download/v0.4.4/item-api.ccmod" }, { "url": "https://github.com/krypciak/cc-extra-dialogue/releases/download/v1.0.1/cc-extra-dialogue.ccmod" }, - { "url": "https://github.com/krypciak/cc-vim/releases/download/v1.5.7/cc-vim-1.5.7.ccmod" }, + { "url": "https://github.com/krypciak/cc-vim/releases/download/v1.5.8/cc-vim-1.5.8.ccmod" }, { "url": "https://github.com/Symphiel/CursedCode/archive/refs/tags/0.1.1-2.zip" }, { "url": "https://github.com/Pyrocorvid/CCNineRooms/archive/refs/tags/v1.0.2.zip", "source": "CCNineRooms-1.0.2/nine-rooms" }, { "url": "https://github.com/Pyrocorvid/CCNineRooms/archive/refs/tags/v1.0.2.zip", "source": "CCNineRooms-1.0.2/past-booster" }, diff --git a/mods.json b/mods.json index d3faba82..78938123 100644 --- a/mods.json +++ b/mods.json @@ -189,11 +189,11 @@ "url": "https://github.com/krypciak/cc-vim" } ], - "archive_link": "https://github.com/krypciak/cc-vim/releases/download/v1.5.7/cc-vim-1.5.7.ccmod", + "archive_link": "https://github.com/krypciak/cc-vim/releases/download/v1.5.8/cc-vim-1.5.8.ccmod", "hash": { - "sha256": "ea2910759db1280fb459097ace8cd274d9d1c18299d999a488992281390885e7" + "sha256": "1d271f4ec1d954cd257361d78a5c75bfdccb75ec236f60fcd08a5fd3e6ade0e3" }, - "version": "1.5.7" + "version": "1.5.8" }, "charged-balls": { "name": "Charged balls", diff --git a/npDatabase.json b/npDatabase.json index bc180895..1901b5ad 100644 --- a/npDatabase.json +++ b/npDatabase.json @@ -393,7 +393,7 @@ "cc-vim": { "metadataCCMod": { "id": "cc-vim", - "version": "1.5.7", + "version": "1.5.8", "title": "Vim Command Mode", "description": "Adds a popup command prompt", "repository": "https://github.com/krypciak/cc-vim", @@ -413,14 +413,14 @@ "installation": [ { "type": "zip", - "url": "https://github.com/krypciak/cc-vim/releases/download/v1.5.7/cc-vim-1.5.7.ccmod", + "url": "https://github.com/krypciak/cc-vim/releases/download/v1.5.8/cc-vim-1.5.8.ccmod", "hash": { - "sha256": "ea2910759db1280fb459097ace8cd274d9d1c18299d999a488992281390885e7" + "sha256": "1d271f4ec1d954cd257361d78a5c75bfdccb75ec236f60fcd08a5fd3e6ade0e3" } } ], "stars": 1, - "lastUpdateTimestamp": 1708866650000 + "lastUpdateTimestamp": 1709053171000 }, "charged-balls": { "metadataCCMod": { From 5dc2fb769bb81372616e80fbe20405cf3f332622 Mon Sep 17 00:00:00 2001 From: krypek <115574014+krypciak@users.noreply.github.com> Date: Wed, 28 Feb 2024 16:57:52 +0000 Subject: [PATCH 096/196] CCBot New mod: Named-Saves (#102) * CCBot: ccbot/0 * CCBot: Fill 'Named-Saves' info --- input-locations.json | 3 ++- mods.json | 15 +++++++++++++++ npDatabase.json | 25 +++++++++++++++++++++++++ 3 files changed, 42 insertions(+), 1 deletion(-) diff --git a/input-locations.json b/input-locations.json index a1c7975a..a83e0ebf 100644 --- a/input-locations.json +++ b/input-locations.json @@ -37,5 +37,6 @@ { "url": "https://github.com/XenonA7/xmc-hexacast-litter/archive/refs/tags/1.0.8.zip" }, { "url": "https://github.com/XenonA7/clean-title-screen/archive/refs/tags/1.0.1.zip" }, { "url": "https://github.com/CodeTriangle/CCMultiworldRandomizer/releases/download/0.4.1/CCMultiworldRandomizer-0.4.1.ccmod" }, - { "url": "https://github.com/lubkuluk/lubkuluks-joern-mod/files/14393459/lubkuluks-joern-mod.zip" } + { "url": "https://github.com/lubkuluk/lubkuluks-joern-mod/files/14393459/lubkuluks-joern-mod.zip" }, + { "url": "https://github.com/canbora/cc-named-saves/releases/download/v1.0.1/cc-named-saves.ccmod" } ] diff --git a/mods.json b/mods.json index 78938123..36da5cee 100644 --- a/mods.json +++ b/mods.json @@ -15,6 +15,21 @@ }, "version": "1.0.0" }, + "Named-Saves": { + "name": "Named Saves", + "description": "Lets you rename save slots.", + "page": [ + { + "name": "GitHub", + "url": "https://github.com/canbora/cc-named-saves" + } + ], + "archive_link": "https://github.com/canbora/cc-named-saves/releases/download/v1.0.1/cc-named-saves.ccmod", + "hash": { + "sha256": "3f73481fc8172d7af78eba5b80fbfb672135a8837c938f60b7f1598874fec1d9" + }, + "version": "1.0.0" + }, "New game++": { "name": "New game++", "description": "A small collection of addons to CrossCode's NG+.", diff --git a/npDatabase.json b/npDatabase.json index 1901b5ad..7ee7d27f 100644 --- a/npDatabase.json +++ b/npDatabase.json @@ -24,6 +24,31 @@ "stars": 0, "lastUpdateTimestamp": 1708465799000 }, + "Named-Saves": { + "metadataCCMod": { + "id": "Named-Saves", + "version": "1.0.0", + "title": "Named Saves", + "description": "Lets you rename save slots.", + "repository": "https://github.com/canbora/cc-named-saves", + "tags": [ + "QoL" + ], + "authors": "canbora", + "prestart": "prestart.js" + }, + "installation": [ + { + "type": "zip", + "url": "https://github.com/canbora/cc-named-saves/releases/download/v1.0.1/cc-named-saves.ccmod", + "hash": { + "sha256": "3f73481fc8172d7af78eba5b80fbfb672135a8837c938f60b7f1598874fec1d9" + } + } + ], + "stars": 0, + "lastUpdateTimestamp": 1709069948000 + }, "New game++": { "metadataCCMod": { "id": "New game++", From 2137bbf4c82254358a056715f73c5fc6f294c9c4 Mon Sep 17 00:00:00 2001 From: krypek <115574014+krypciak@users.noreply.github.com> Date: Sat, 2 Mar 2024 10:27:02 +0000 Subject: [PATCH 097/196] CCBot Update mod: cc-blitzkrieg (#103) * CCBot: ccbot/0 * CCBot: Fill 'cc-blitzkrieg' info --- input-locations.json | 2 +- mods.json | 6 +++--- npDatabase.json | 8 ++++---- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/input-locations.json b/input-locations.json index a83e0ebf..de8cad74 100644 --- a/input-locations.json +++ b/input-locations.json @@ -1,6 +1,6 @@ [ { "url": "https://github.com/CCDirectLink/input-api/archive/refs/tags/v1.0.2.zip" }, - { "url": "https://github.com/krypciak/cc-blitzkrieg/releases/download/v0.5.0/cc-blitzkrieg-0.5.0.ccmod" }, + { "url": "https://github.com/krypciak/cc-blitzkrieg/releases/download/v0.5.2/cc-blitzkrieg-0.5.2.ccmod" }, { "url": "https://github.com/krypciak/cc-fancy-crash/releases/download/v1.0.8/cc-fancy-crash-1.0.8.ccmod" }, { "url": "https://github.com/CCDirectLink/Blades/archive/1.6.0.zip" }, { "url": "https://github.com/krypciak/cc-jetpack-widget/releases/download/v1.0.1/cc-jetpack-widget-1.0.1.ccmod" }, diff --git a/mods.json b/mods.json index 36da5cee..33fb6db3 100644 --- a/mods.json +++ b/mods.json @@ -99,11 +99,11 @@ "url": "https://github.com/krypciak/cc-blitzkrieg" } ], - "archive_link": "https://github.com/krypciak/cc-blitzkrieg/releases/download/v0.5.0/cc-blitzkrieg-0.5.0.ccmod", + "archive_link": "https://github.com/krypciak/cc-blitzkrieg/releases/download/v0.5.2/cc-blitzkrieg-0.5.2.ccmod", "hash": { - "sha256": "c6d9b88a66edb39e2a290665accf194d4e2e29c132a2844ab209f49e38312e17" + "sha256": "c1ea52366b94a5bb5528686c22e824e13b4dcb079605e2932cd56c07d2279d40" }, - "version": "0.5.0" + "version": "0.5.2" }, "cc-capped-stats": { "name": "Capped Stats", diff --git a/npDatabase.json b/npDatabase.json index 7ee7d27f..5b5d5ad8 100644 --- a/npDatabase.json +++ b/npDatabase.json @@ -197,7 +197,7 @@ "cc-blitzkrieg": { "metadataCCMod": { "id": "cc-blitzkrieg", - "version": "0.5.0", + "version": "0.5.2", "title": "Blitzkrieg (WIP)", "description": "Puzzle solving, incresed puzzle difficuly, puzzle and boss collection tools", "repository": "https://github.com/krypciak/cc-blitzkrieg", @@ -219,14 +219,14 @@ "installation": [ { "type": "zip", - "url": "https://github.com/krypciak/cc-blitzkrieg/releases/download/v0.5.0/cc-blitzkrieg-0.5.0.ccmod", + "url": "https://github.com/krypciak/cc-blitzkrieg/releases/download/v0.5.2/cc-blitzkrieg-0.5.2.ccmod", "hash": { - "sha256": "c6d9b88a66edb39e2a290665accf194d4e2e29c132a2844ab209f49e38312e17" + "sha256": "c1ea52366b94a5bb5528686c22e824e13b4dcb079605e2932cd56c07d2279d40" } } ], "stars": 0, - "lastUpdateTimestamp": 1708867059000 + "lastUpdateTimestamp": 1709374805000 }, "cc-capped-stats": { "metadataCCMod": { From 1e2aa895402acc12e67d7473c8a1c9280bbaf5a8 Mon Sep 17 00:00:00 2001 From: krypek <115574014+krypciak@users.noreply.github.com> Date: Sat, 2 Mar 2024 10:29:48 +0000 Subject: [PATCH 098/196] CCBot Update mod: cc-vim (#104) * CCBot: ccbot/0 * CCBot: Fill 'cc-vim' info --- input-locations.json | 2 +- mods.json | 6 +++--- npDatabase.json | 8 ++++---- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/input-locations.json b/input-locations.json index de8cad74..9e751a72 100644 --- a/input-locations.json +++ b/input-locations.json @@ -9,7 +9,7 @@ { "url": "https://github.com/krypciak/cc-element-boss/releases/download/v0.1.3/element-boss-0.1.3.ccmod" }, { "url": "https://github.com/CCDirectLink/item-api/releases/download/v0.4.4/item-api.ccmod" }, { "url": "https://github.com/krypciak/cc-extra-dialogue/releases/download/v1.0.1/cc-extra-dialogue.ccmod" }, - { "url": "https://github.com/krypciak/cc-vim/releases/download/v1.5.8/cc-vim-1.5.8.ccmod" }, + { "url": "https://github.com/krypciak/cc-vim/releases/download/v1.5.9/cc-vim-1.5.9.ccmod" }, { "url": "https://github.com/Symphiel/CursedCode/archive/refs/tags/0.1.1-2.zip" }, { "url": "https://github.com/Pyrocorvid/CCNineRooms/archive/refs/tags/v1.0.2.zip", "source": "CCNineRooms-1.0.2/nine-rooms" }, { "url": "https://github.com/Pyrocorvid/CCNineRooms/archive/refs/tags/v1.0.2.zip", "source": "CCNineRooms-1.0.2/past-booster" }, diff --git a/mods.json b/mods.json index 33fb6db3..d77ab3ae 100644 --- a/mods.json +++ b/mods.json @@ -204,11 +204,11 @@ "url": "https://github.com/krypciak/cc-vim" } ], - "archive_link": "https://github.com/krypciak/cc-vim/releases/download/v1.5.8/cc-vim-1.5.8.ccmod", + "archive_link": "https://github.com/krypciak/cc-vim/releases/download/v1.5.9/cc-vim-1.5.9.ccmod", "hash": { - "sha256": "1d271f4ec1d954cd257361d78a5c75bfdccb75ec236f60fcd08a5fd3e6ade0e3" + "sha256": "ec1d15248739379ff70844fd381c23b9ee20eab5ef1ba16753d47cb3dc170f46" }, - "version": "1.5.8" + "version": "1.5.9" }, "charged-balls": { "name": "Charged balls", diff --git a/npDatabase.json b/npDatabase.json index 5b5d5ad8..56627706 100644 --- a/npDatabase.json +++ b/npDatabase.json @@ -418,7 +418,7 @@ "cc-vim": { "metadataCCMod": { "id": "cc-vim", - "version": "1.5.8", + "version": "1.5.9", "title": "Vim Command Mode", "description": "Adds a popup command prompt", "repository": "https://github.com/krypciak/cc-vim", @@ -438,14 +438,14 @@ "installation": [ { "type": "zip", - "url": "https://github.com/krypciak/cc-vim/releases/download/v1.5.8/cc-vim-1.5.8.ccmod", + "url": "https://github.com/krypciak/cc-vim/releases/download/v1.5.9/cc-vim-1.5.9.ccmod", "hash": { - "sha256": "1d271f4ec1d954cd257361d78a5c75bfdccb75ec236f60fcd08a5fd3e6ade0e3" + "sha256": "ec1d15248739379ff70844fd381c23b9ee20eab5ef1ba16753d47cb3dc170f46" } } ], "stars": 1, - "lastUpdateTimestamp": 1709053171000 + "lastUpdateTimestamp": 1709375076000 }, "charged-balls": { "metadataCCMod": { From 39e0db315c72869c88ebb2767fcc2cefd1123ebc Mon Sep 17 00:00:00 2001 From: krypek <115574014+krypciak@users.noreply.github.com> Date: Mon, 4 Mar 2024 18:18:50 +0000 Subject: [PATCH 099/196] CCBot New mod: ccmodmanager (#106) * CCBot: ccbot/0 * CCBot: Fill 'ccmodmanager' info --- icons/ccmodmanager.png | Bin 0 -> 7126 bytes input-locations.json | 3 ++- mods.json | 15 +++++++++++++++ npDatabase.json | 32 ++++++++++++++++++++++++++++++++ 4 files changed, 49 insertions(+), 1 deletion(-) create mode 100644 icons/ccmodmanager.png diff --git a/icons/ccmodmanager.png b/icons/ccmodmanager.png new file mode 100644 index 0000000000000000000000000000000000000000..3eaf1a65b35e4c1bc73c51d8e486212f96f1193a GIT binary patch literal 7126 zcmd5>dr%cs9Nu17$H=QSrsx=j78dH>J-cUjr$ID80nOLwn36Xy_wEu1NQzn6lnM@% z4^Y!e^HGhCg<&-L7&9r*uq@3=a~f$xDyb<=DV0BZ{Lb0EkHbqq6!*?P&Ytu8e&6@~ z&N;&@FO3^BG8Ba&K@dU{6XGVoy%#-i4T0;)xzU#d;fAcV*w}Gt9*-bIE}ygf;HVqN z-<2P;z1G;ZB|dInRMgbSgyA1XCGT49zz5Rbu6gKB=a-T9X6BMXc|FIkbuIok_lJfJpSCG)JcyHL5I6`+4=IC{qxEz z((hmG7~1_p?W|$d$)gItum9>)&bqRwV-eNy?`kJFSd(S6x_WnBLz#G5p zjo&6K7oEGFK6!rgJNvtxOuu`?`t7gvD^9#)%7uw&=-}xhioN)CnQOx&&xX1O3NjAf zS@mgk_t8lo&^_kQY;gO0ms8E(r?m@-=s?x>*W4V5#uc%dA{Iq{F>OmNQ)&z?2Y zOv^CBbDqsM!i{IrOaaj=3a5utmyoQe8qo<6;gEG%m)!86(H0!^Srnb3%&vBW-RN8H zJ#tERhXfrMp6LmP#-L%m@4eG{52M)Obizf9Sdt9v#3EcVmKjUX zNEstPWgm4L2*oUVi!Q6FO_nV!JI5m+dbP?HE)k@NL?fmu!-?4wO^hKWAYx6HC>hXZ zTV|y}l}FM}2tv=wCbK+~nJpl=upE-6Xb5|-se(nsNiazviYiMYk%&T6m@o$Rf=)9f zCB>8^c&`(gzEM=H$X+bUUa%I!SeRT$)>O9&feKdLvZ2TX?f{4}1W6J$u_3y#N7b+! z<{|_VFHJ^Z#?UtL5JSbZ577+322@iX*ll(AhchMt7=TD&oHVO2z{jLCBoSd5tfHqV zd94+o5~!O*nShZV7$y^f-HIg3GHJlW>Z4RNq(a?Q5xXT*GF5g+h6-#YgXK~s6Q+Vr zfAB=7hKVJ(daVR-$0~TK%7{2sP4ZGfwBO6zB(OU)w&sYo(k8EFjUO<_dxhC;lx=<0)6=O0gk$0NJEZbfe=H@ZZ0 zFq_UwsEqA~#Vsh4RcN0dT%;rOd7(L4J|-9bR`7hBr|G(WoCKn)AiZlH$TIs>So z7@kvSFya|BY_-U!WidQdi$MI)mRnZ~s4Zf6hF6ObpQSA=)P6C1n(ILtujP7RbOj#q zVy*y)59M3e%A=OVbPgjvYfG(09<^Q!58DWc?{0moBZ1m0hG*N6jCka>w1Txm|ℜSVjIPb(NTFNTL|qepyjaO-LUwN^|ppH_Ip4{yHJvC`Tn20qopCk5ZP zXZRA~|M*P5m9Y{|L^FR7&m-kLg>#cre&3jj=b3Y4@ajLmXEK# zxoGC9()-s|$vyts6qj^tec7ChvEPxy-@}{HVk6$=9KPh79?6on&B1?b9OZNXH6pZMmycagTjrF1c&cYP$;@)NzCF-$PDb~IN&S};)rYPWj}9oU`f*Za#GSVk z@9wg-d|KW4U708I3V+oO*Muxc&6*isQ)EmSG`err8@cj#&+GfD^ZVpS&Ho{~?+0Ce zul;Pnwy^0NXY71%QR?0qH}^~KU$fqEDEHi@zApXUKWlFPpjU28*|~4bDsyrF=O_PD v7g8EuzjIlMYu-{ Date: Sun, 10 Mar 2024 11:26:45 +0000 Subject: [PATCH 100/196] CCBot Update mod: ccmodmanager (#107) * CCBot: ccbot/0 * CCBot: Fill 'ccmodmanager' info --- input-locations.json | 2 +- mods.json | 6 +++--- npDatabase.json | 10 +++++----- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/input-locations.json b/input-locations.json index daac8247..6c24b6c5 100644 --- a/input-locations.json +++ b/input-locations.json @@ -39,5 +39,5 @@ { "url": "https://github.com/CodeTriangle/CCMultiworldRandomizer/releases/download/0.4.1/CCMultiworldRandomizer-0.4.1.ccmod" }, { "url": "https://github.com/lubkuluk/lubkuluks-joern-mod/files/14393459/lubkuluks-joern-mod.zip" }, { "url": "https://github.com/canbora/cc-named-saves/releases/download/v1.0.1/cc-named-saves.ccmod" }, - { "url": "https://github.com/CCDirectLink/CCModManager/releases/download/v0.9.2/ccmodmanager-0.9.2.ccmod" } + { "url": "https://github.com/CCDirectLink/CCModManager/releases/download/v0.9.5/ccmodmanager-0.9.5.ccmod" } ] diff --git a/mods.json b/mods.json index 155edbe1..e1af26ea 100644 --- a/mods.json +++ b/mods.json @@ -219,11 +219,11 @@ "url": "https://github.com/CCDirectLink/CCModManager" } ], - "archive_link": "https://github.com/CCDirectLink/CCModManager/releases/download/v0.9.2/ccmodmanager-0.9.2.ccmod", + "archive_link": "https://github.com/CCDirectLink/CCModManager/releases/download/v0.9.5/ccmodmanager-0.9.5.ccmod", "hash": { - "sha256": "c4dd6f0c986db68f2d019a718efa72905a4a8b6d32e52db691394d1c40e10185" + "sha256": "95a017b42992f53e002c7c3dda05bf93c86a378efc71aaff9f7250f3672e09ec" }, - "version": "0.9.2" + "version": "0.9.5" }, "charged-balls": { "name": "Charged balls", diff --git a/npDatabase.json b/npDatabase.json index ed8e137f..4dc367b9 100644 --- a/npDatabase.json +++ b/npDatabase.json @@ -450,7 +450,7 @@ "ccmodmanager": { "metadataCCMod": { "id": "ccmodmanager", - "version": "0.9.2", + "version": "0.9.5", "title": "CCModManager", "description": "Mod manager for CrossCode!", "repository": "https://github.com/CCDirectLink/CCModManager", @@ -470,14 +470,14 @@ "installation": [ { "type": "zip", - "url": "https://github.com/CCDirectLink/CCModManager/releases/download/v0.9.2/ccmodmanager-0.9.2.ccmod", + "url": "https://github.com/CCDirectLink/CCModManager/releases/download/v0.9.5/ccmodmanager-0.9.5.ccmod", "hash": { - "sha256": "c4dd6f0c986db68f2d019a718efa72905a4a8b6d32e52db691394d1c40e10185" + "sha256": "95a017b42992f53e002c7c3dda05bf93c86a378efc71aaff9f7250f3672e09ec" } } ], "stars": 0, - "lastUpdateTimestamp": 1709575972000 + "lastUpdateTimestamp": 1710069687000 }, "charged-balls": { "metadataCCMod": { @@ -1057,7 +1057,7 @@ } } ], - "stars": 1, + "stars": 2, "lastUpdateTimestamp": 1708711533000 }, "nine-rooms": { From 248aaaa5fed422cce3a8014e4ca2ae7fe0fccb9f Mon Sep 17 00:00:00 2001 From: krypek Date: Sun, 10 Mar 2024 12:27:15 +0100 Subject: [PATCH 101/196] Update todo.md --- todo.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/todo.md b/todo.md index c0a10829..edca9a2e 100644 --- a/todo.md +++ b/todo.md @@ -84,4 +84,4 @@ - ~~https://github.com/Inevitabilis/CC-Junolea/pull/1~~ - ~~https://github.com/Pyrocorvid/CCNineRooms/pull/2~~ - ~~https://github.com/CookieSalesman/CrossCode-HADOUKEN-v1.0/pull/2~~ -- https://github.com/canbora/cc-named-saves/pull/2 +- ~~https://github.com/canbora/cc-named-saves/pull/2~~ From 1fb6fdc9dadbae1c80170d5656fe223bd5e62e68 Mon Sep 17 00:00:00 2001 From: krypek Date: Sun, 10 Mar 2024 12:53:37 +0100 Subject: [PATCH 102/196] Add CCLoader to input-locations.json --- input-locations.json | 12 +++++ mods.json | 45 ++++++++++++++++ npDatabase.json | 121 +++++++++++++++++++++++++++++++++++++++++-- 3 files changed, 173 insertions(+), 5 deletions(-) diff --git a/input-locations.json b/input-locations.json index 6c24b6c5..b37cb30e 100644 --- a/input-locations.json +++ b/input-locations.json @@ -1,4 +1,16 @@ [ + { + "url": "https://github.com/CCDirectLink/CCLoader/archive/refs/tags/v2.23.2/v2.13.0.zip", + "ccmodPath": "CCLoader-2.23.2-v2.13.0/ccloader/ccmod.json" + }, + { + "url": "https://github.com/CCDirectLink/CCLoader/archive/refs/tags/v2.23.2/v2.13.0.zip", + "source": "CCLoader-2.23.2-v2.13.0/assets/mods/simplify" + }, + { + "url": "https://github.com/CCDirectLink/CCLoader/archive/refs/tags/v2.23.2/v2.13.0.zip", + "source": "CCLoader-2.23.2-v2.13.0/assets/mods/ccloader-version-display" + }, { "url": "https://github.com/CCDirectLink/input-api/archive/refs/tags/v1.0.2.zip" }, { "url": "https://github.com/krypciak/cc-blitzkrieg/releases/download/v0.5.2/cc-blitzkrieg-0.5.2.ccmod" }, { "url": "https://github.com/krypciak/cc-fancy-crash/releases/download/v1.0.8/cc-fancy-crash-1.0.8.ccmod" }, diff --git a/mods.json b/mods.json index e1af26ea..226bb4c5 100644 --- a/mods.json +++ b/mods.json @@ -1,5 +1,20 @@ { "mods": { + "CCLoader display version": { + "name": "CCLoader display version", + "description": "Displays the current CCLoader version.", + "page": [ + { + "name": "GitHub", + "url": "https://github.com/CCDirectLink/CCLoader" + } + ], + "archive_link": "https://github.com/CCDirectLink/CCLoader/archive/refs/tags/v2.23.2/v2.13.0.zip", + "hash": { + "sha256": "b46a4f53e2db70a49ee015a1df91b9544124710fc11ce16ddaf835fb6ae767da" + }, + "version": "1.1.3" + }, "Hadouken": { "name": "Hadouken", "description": "Lea yells various forms of HADOUKEN or SHORYUKEN when casting appropriate combat arts.", @@ -75,6 +90,21 @@ }, "version": "0.3.1" }, + "Simplify": { + "name": "Simplify", + "description": "Library mod for CCLoader2.", + "page": [ + { + "name": "GitHub", + "url": "https://github.com/CCDirectLink/CCLoader" + } + ], + "archive_link": "https://github.com/CCDirectLink/CCLoader/archive/refs/tags/v2.23.2/v2.13.0.zip", + "hash": { + "sha256": "b46a4f53e2db70a49ee015a1df91b9544124710fc11ce16ddaf835fb6ae767da" + }, + "version": "2.13.0" + }, "blades": { "name": "Blades", "description": "Asset which replaces balls with blades, now for all classes!", @@ -210,6 +240,21 @@ }, "version": "1.5.9" }, + "ccloader": { + "name": "CCLoader", + "description": "Modloader for CrossCode. This or a similar modloader is needed for most mods.", + "page": [ + { + "name": "GitHub", + "url": "https://github.com/CCDirectLink/CCLoader" + } + ], + "archive_link": "https://github.com/CCDirectLink/CCLoader/archive/refs/tags/v2.23.2/v2.13.0.zip", + "hash": { + "sha256": "b46a4f53e2db70a49ee015a1df91b9544124710fc11ce16ddaf835fb6ae767da" + }, + "version": "2.23.2" + }, "ccmodmanager": { "name": "CCModManager", "description": "Mod manager for CrossCode!", diff --git a/npDatabase.json b/npDatabase.json index 4dc367b9..686fff3e 100644 --- a/npDatabase.json +++ b/npDatabase.json @@ -1,4 +1,37 @@ { + "CCLoader display version": { + "metadataCCMod": { + "id": "CCLoader display version", + "version": "1.1.3", + "title": "CCLoader display version", + "description": "Displays the current CCLoader version.", + "repository": "https://github.com/CCDirectLink/CCLoader", + "tags": [ + "base" + ], + "authors": [ + "2767mr", + "dmitmel", + "ac2pic" + ], + "dependencies": { + "crosscode": "^1.1.0 || 1.0.2" + }, + "prestart": "prestart.js" + }, + "installation": [ + { + "type": "zip", + "url": "https://github.com/CCDirectLink/CCLoader/archive/refs/tags/v2.23.2/v2.13.0.zip", + "source": "CCLoader-2.23.2-v2.13.0/assets/mods/ccloader-version-display", + "hash": { + "sha256": "b46a4f53e2db70a49ee015a1df91b9544124710fc11ce16ddaf835fb6ae767da" + } + } + ], + "stars": 31, + "lastUpdateTimestamp": 1710069756000 + }, "Hadouken": { "metadataCCMod": { "id": "Hadouken", @@ -165,6 +198,48 @@ "stars": 1, "lastUpdateTimestamp": 1708403695000 }, + "Simplify": { + "metadataCCMod": { + "id": "Simplify", + "version": "2.13.0", + "title": "Simplify", + "description": "Library mod for CCLoader2.", + "repository": "https://github.com/CCDirectLink/CCLoader", + "tags": [ + "library", + "base" + ], + "authors": [ + "2767mr", + "lexisother", + "dmitmel", + "elluminance", + "ac2pic", + "20kdc" + ], + "dependencies": { + "ccloader": "^2.22.0", + "crosscode": "^1.0.0" + }, + "poststart": "mod.js", + "preload": "preload.js", + "postload": "postload.js", + "prestart": "prestart.js", + "plugin": "plugin.js" + }, + "installation": [ + { + "type": "zip", + "url": "https://github.com/CCDirectLink/CCLoader/archive/refs/tags/v2.23.2/v2.13.0.zip", + "source": "CCLoader-2.23.2-v2.13.0/assets/mods/simplify", + "hash": { + "sha256": "b46a4f53e2db70a49ee015a1df91b9544124710fc11ce16ddaf835fb6ae767da" + } + } + ], + "stars": 31, + "lastUpdateTimestamp": 1710069756000 + }, "blades": { "metadataCCMod": { "id": "blades", @@ -445,7 +520,43 @@ } ], "stars": 1, - "lastUpdateTimestamp": 1709375076000 + "lastUpdateTimestamp": 1709462725000 + }, + "ccloader": { + "metadataCCMod": { + "id": "ccloader", + "version": "2.23.2", + "title": "CCLoader", + "description": "Modloader for CrossCode. This or a similar modloader is needed for most mods.", + "repository": "https://github.com/CCDirectLink/CCLoader", + "tags": [ + "base" + ], + "authors": [ + "2767mr", + "dmitmel", + "ac2pic", + "Vankerkom", + "20kdc", + "lexisother", + "L-Sherry", + "elluminance", + "omegalink12", + "Silverfeelin" + ] + }, + "installation": [ + { + "type": "zip", + "url": "https://github.com/CCDirectLink/CCLoader/archive/refs/tags/v2.23.2/v2.13.0.zip", + "source": "CCLoader-2.23.2-v2.13.0/assets/mods/ccloader-version-display", + "hash": { + "sha256": "b46a4f53e2db70a49ee015a1df91b9544124710fc11ce16ddaf835fb6ae767da" + } + } + ], + "stars": 31, + "lastUpdateTimestamp": 1710069756000 }, "ccmodmanager": { "metadataCCMod": { @@ -754,7 +865,7 @@ } ], "stars": 5, - "lastUpdateTimestamp": 1646924334000 + "lastUpdateTimestamp": 1708513309000 }, "item-api": { "metadataCCMod": { @@ -788,7 +899,7 @@ } ], "stars": 1, - "lastUpdateTimestamp": 1708294841000 + "lastUpdateTimestamp": 1708528670000 }, "jetpack": { "metadataCCMod": { @@ -1002,7 +1113,7 @@ } ], "stars": 1, - "lastUpdateTimestamp": 1708512670000 + "lastUpdateTimestamp": 1708540517000 }, "modifier-api": { "metadataCCMod": { @@ -1058,7 +1169,7 @@ } ], "stars": 2, - "lastUpdateTimestamp": 1708711533000 + "lastUpdateTimestamp": 1709924111000 }, "nine-rooms": { "metadataCCMod": { From 4f15f1a4eac2eb6bcc309aaab4bb61059dc87cb3 Mon Sep 17 00:00:00 2001 From: krypek Date: Sun, 10 Mar 2024 17:13:44 +0100 Subject: [PATCH 103/196] Fix CCLoader source --- input-locations.json | 3 ++- npDatabase.json | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/input-locations.json b/input-locations.json index b37cb30e..c3756387 100644 --- a/input-locations.json +++ b/input-locations.json @@ -1,7 +1,8 @@ [ { "url": "https://github.com/CCDirectLink/CCLoader/archive/refs/tags/v2.23.2/v2.13.0.zip", - "ccmodPath": "CCLoader-2.23.2-v2.13.0/ccloader/ccmod.json" + "ccmodPath": "CCLoader-2.23.2-v2.13.0/ccloader/ccmod.json", + "source": "CCLoader-2.23.2-v2.13.0" }, { "url": "https://github.com/CCDirectLink/CCLoader/archive/refs/tags/v2.23.2/v2.13.0.zip", diff --git a/npDatabase.json b/npDatabase.json index 686fff3e..7c4bfec3 100644 --- a/npDatabase.json +++ b/npDatabase.json @@ -549,7 +549,7 @@ { "type": "zip", "url": "https://github.com/CCDirectLink/CCLoader/archive/refs/tags/v2.23.2/v2.13.0.zip", - "source": "CCLoader-2.23.2-v2.13.0/assets/mods/ccloader-version-display", + "source": "CCLoader-2.23.2-v2.13.0", "hash": { "sha256": "b46a4f53e2db70a49ee015a1df91b9544124710fc11ce16ddaf835fb6ae767da" } From 6f5d09988d909840d9846135103940fd659f4828 Mon Sep 17 00:00:00 2001 From: krypek <115574014+krypciak@users.noreply.github.com> Date: Sun, 10 Mar 2024 21:36:58 +0000 Subject: [PATCH 104/196] CCBot New mod: nax-ccuilib (#108) * CCBot: ccbot/0 * CCBot: Fill 'nax-ccuilib' info --- input-locations.json | 13 ++++--------- mods.json | 15 +++++++++++++++ npDatabase.json | 31 +++++++++++++++++++++++++++++++ 3 files changed, 50 insertions(+), 9 deletions(-) diff --git a/input-locations.json b/input-locations.json index c3756387..e4cc7711 100644 --- a/input-locations.json +++ b/input-locations.json @@ -4,14 +4,8 @@ "ccmodPath": "CCLoader-2.23.2-v2.13.0/ccloader/ccmod.json", "source": "CCLoader-2.23.2-v2.13.0" }, - { - "url": "https://github.com/CCDirectLink/CCLoader/archive/refs/tags/v2.23.2/v2.13.0.zip", - "source": "CCLoader-2.23.2-v2.13.0/assets/mods/simplify" - }, - { - "url": "https://github.com/CCDirectLink/CCLoader/archive/refs/tags/v2.23.2/v2.13.0.zip", - "source": "CCLoader-2.23.2-v2.13.0/assets/mods/ccloader-version-display" - }, + { "url": "https://github.com/CCDirectLink/CCLoader/archive/refs/tags/v2.23.2/v2.13.0.zip", "source": "CCLoader-2.23.2-v2.13.0/assets/mods/simplify" }, + { "url": "https://github.com/CCDirectLink/CCLoader/archive/refs/tags/v2.23.2/v2.13.0.zip", "source": "CCLoader-2.23.2-v2.13.0/assets/mods/ccloader-version-display" }, { "url": "https://github.com/CCDirectLink/input-api/archive/refs/tags/v1.0.2.zip" }, { "url": "https://github.com/krypciak/cc-blitzkrieg/releases/download/v0.5.2/cc-blitzkrieg-0.5.2.ccmod" }, { "url": "https://github.com/krypciak/cc-fancy-crash/releases/download/v1.0.8/cc-fancy-crash-1.0.8.ccmod" }, @@ -52,5 +46,6 @@ { "url": "https://github.com/CodeTriangle/CCMultiworldRandomizer/releases/download/0.4.1/CCMultiworldRandomizer-0.4.1.ccmod" }, { "url": "https://github.com/lubkuluk/lubkuluks-joern-mod/files/14393459/lubkuluks-joern-mod.zip" }, { "url": "https://github.com/canbora/cc-named-saves/releases/download/v1.0.1/cc-named-saves.ccmod" }, - { "url": "https://github.com/CCDirectLink/CCModManager/releases/download/v0.9.5/ccmodmanager-0.9.5.ccmod" } + { "url": "https://github.com/CCDirectLink/CCModManager/releases/download/v0.9.5/ccmodmanager-0.9.5.ccmod" }, + { "url": "https://github.com/conorlawton/nax-ccuilib/releases/download/v1.2.4/nax-ccuilib.ccmod" } ] diff --git a/mods.json b/mods.json index 226bb4c5..436bb7cc 100644 --- a/mods.json +++ b/mods.json @@ -540,6 +540,21 @@ }, "version": "0.4.1" }, + "nax-ccuilib": { + "name": "CCUILib", + "description": "Library of additional UI elements as well as making existing ones configurable", + "page": [ + { + "name": "GitHub", + "url": "https://github.com/conorlawton/nax-ccuilib" + } + ], + "archive_link": "https://github.com/conorlawton/nax-ccuilib/releases/download/v1.2.4/nax-ccuilib.ccmod", + "hash": { + "sha256": "71b08398c31dceff036e0134961fd3e712c057a5f9d89e88253f5194ec5cc63d" + }, + "version": "1.2.4" + }, "nine-rooms": { "name": "Nine Rooms", "description": "A little piece of lost history.", diff --git a/npDatabase.json b/npDatabase.json index 7c4bfec3..0a9a17b3 100644 --- a/npDatabase.json +++ b/npDatabase.json @@ -1171,6 +1171,37 @@ "stars": 2, "lastUpdateTimestamp": 1709924111000 }, + "nax-ccuilib": { + "metadataCCMod": { + "id": "nax-ccuilib", + "version": "1.2.4", + "title": "CCUILib", + "description": "Library of additional UI elements as well as making existing ones configurable", + "repository": "https://github.com/conorlawton/nax-ccuilib", + "tags": [ + "library" + ], + "authors": [ + "nax", + "krypek" + ], + "dependencies": { + "nax-module-cache": ">=1.0.0" + }, + "plugin": "nax-ccuilib/plugin.js" + }, + "installation": [ + { + "type": "zip", + "url": "https://github.com/conorlawton/nax-ccuilib/releases/download/v1.2.4/nax-ccuilib.ccmod", + "hash": { + "sha256": "71b08398c31dceff036e0134961fd3e712c057a5f9d89e88253f5194ec5cc63d" + } + } + ], + "stars": 0, + "lastUpdateTimestamp": 1710105771000 + }, "nine-rooms": { "metadataCCMod": { "id": "nine-rooms", From f111afc8f36487a4a042cb3f65713a1fd425df45 Mon Sep 17 00:00:00 2001 From: krypek Date: Sun, 10 Mar 2024 22:37:43 +0100 Subject: [PATCH 105/196] Update todo.md --- todo.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/todo.md b/todo.md index edca9a2e..c068c94f 100644 --- a/todo.md +++ b/todo.md @@ -24,7 +24,7 @@ - https://github.com/conorlawton/nax-module-cache/pull/1 - https://github.com/conorlawton/CCInventorySearch/pull/5 (remind him of the other crash fix pr) -- https://github.com/conorlawton/nax-ccuilib/pull/4 +- ~~https://github.com/conorlawton/nax-ccuilib/pull/4~~ ### ~~EL~~ From 47c08afed87139bcddd6f0f3c414d74a46744299 Mon Sep 17 00:00:00 2001 From: krypek Date: Mon, 11 Mar 2024 13:28:51 +0100 Subject: [PATCH 106/196] Update todo.md --- todo.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/todo.md b/todo.md index c068c94f..915a45a5 100644 --- a/todo.md +++ b/todo.md @@ -15,7 +15,7 @@ - ~~https://github.com/CCDirectLink/CCTimer/pull/6~~ - ~~https://github.com/CCDirectLink/extendable-severed-heads/pull/7~~ - ~~https://github.com/CCDirectLink/cc-menu-ui-replacement/pull/1~~ -- https://github.com/CCDirectLink/CCLoader/pull/104 (includes cc-display-version and simplify) +- ~~https://github.com/CCDirectLink/CCLoader/pull/104 (includes cc-display-version and simplify)~~ - ~~https://github.com/CCDirectLink/map-watch/pull/3~~ - https://github.com/CCDirectLink/unified-steps/pull/1 - https://github.com/CCDirectLink/cc-speedrun-utilities/pull/2 From 9d22ad68631306691e6f4c4016b5e8d66bc3f129 Mon Sep 17 00:00:00 2001 From: krypek <115574014+krypciak@users.noreply.github.com> Date: Mon, 11 Mar 2024 14:12:39 +0000 Subject: [PATCH 107/196] CCBot New mod: open-world (#109) * CCBot: ccbot/0 * CCBot: Fill 'open-world' info --- input-locations.json | 3 ++- mods.json | 15 +++++++++++++++ npDatabase.json | 25 +++++++++++++++++++++++++ 3 files changed, 42 insertions(+), 1 deletion(-) diff --git a/input-locations.json b/input-locations.json index e4cc7711..32013ba5 100644 --- a/input-locations.json +++ b/input-locations.json @@ -47,5 +47,6 @@ { "url": "https://github.com/lubkuluk/lubkuluks-joern-mod/files/14393459/lubkuluks-joern-mod.zip" }, { "url": "https://github.com/canbora/cc-named-saves/releases/download/v1.0.1/cc-named-saves.ccmod" }, { "url": "https://github.com/CCDirectLink/CCModManager/releases/download/v0.9.5/ccmodmanager-0.9.5.ccmod" }, - { "url": "https://github.com/conorlawton/nax-ccuilib/releases/download/v1.2.4/nax-ccuilib.ccmod" } + { "url": "https://github.com/conorlawton/nax-ccuilib/releases/download/v1.2.4/nax-ccuilib.ccmod" }, + { "url": "https://github.com/buanjautista/cc-open-world/releases/download/0.3.2/cc-open-world.v0.3.2.ccmod" } ] diff --git a/mods.json b/mods.json index 436bb7cc..4ab2c545 100644 --- a/mods.json +++ b/mods.json @@ -570,6 +570,21 @@ }, "version": "0.1.0" }, + "open-world": { + "name": "Open World patches", + "description": "Open World map patches for randomizer", + "page": [ + { + "name": "GitHub", + "url": "https://github.com/buanjautista/cc-open-world" + } + ], + "archive_link": "https://github.com/buanjautista/cc-open-world/releases/download/0.3.2/cc-open-world.v0.3.2.ccmod", + "hash": { + "sha256": "e00a9a5215e71e40a77f0a6883f6d2856e9c6e36270e6fc0227106bfe64266d0" + }, + "version": "0.3.2" + }, "party-element-effects": { "name": "Party Element Effects", "description": "Shows the proper effect when party members swap elements", diff --git a/npDatabase.json b/npDatabase.json index 0a9a17b3..7a9f3215 100644 --- a/npDatabase.json +++ b/npDatabase.json @@ -1228,6 +1228,31 @@ "stars": 1, "lastUpdateTimestamp": 1708371875000 }, + "open-world": { + "metadataCCMod": { + "id": "open-world", + "version": "0.3.2", + "title": "Open World patches", + "description": "Open World map patches for randomizer", + "repository": "https://github.com/buanjautista/cc-open-world", + "tags": [ + "maps" + ], + "authors": "buanjautista", + "plugin": "plugin.js" + }, + "installation": [ + { + "type": "zip", + "url": "https://github.com/buanjautista/cc-open-world/releases/download/0.3.2/cc-open-world.v0.3.2.ccmod", + "hash": { + "sha256": "e00a9a5215e71e40a77f0a6883f6d2856e9c6e36270e6fc0227106bfe64266d0" + } + } + ], + "stars": 2, + "lastUpdateTimestamp": 1710166002000 + }, "party-element-effects": { "metadataCCMod": { "id": "party-element-effects", From f750657d7470e861a966d3a0323847b964038ee8 Mon Sep 17 00:00:00 2001 From: krypek Date: Mon, 11 Mar 2024 15:14:24 +0100 Subject: [PATCH 108/196] Update todo.md --- todo.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/todo.md b/todo.md index 915a45a5..30b44e3b 100644 --- a/todo.md +++ b/todo.md @@ -54,7 +54,7 @@ ### Juanba - https://github.com/buanjautista/cc-shock-quest/pull/1 -- https://github.com/buanjautista/cc-open-world/pull/2 +- ~~https://github.com/buanjautista/cc-open-world/pull/2~~ ### Rest From 19c324a25a214461c3ef5a7b501ac9dd82a2b39c Mon Sep 17 00:00:00 2001 From: krypek <115574014+krypciak@users.noreply.github.com> Date: Mon, 11 Mar 2024 19:30:52 +0000 Subject: [PATCH 109/196] CCBot Update mod: cc-jetpack-widget (#110) * CCBot: ccbot/0 * CCBot: Fill 'cc-jetpack-widget' info --- input-locations.json | 2 +- mods.json | 6 +++--- npDatabase.json | 10 +++++----- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/input-locations.json b/input-locations.json index 32013ba5..9e7db70e 100644 --- a/input-locations.json +++ b/input-locations.json @@ -10,7 +10,7 @@ { "url": "https://github.com/krypciak/cc-blitzkrieg/releases/download/v0.5.2/cc-blitzkrieg-0.5.2.ccmod" }, { "url": "https://github.com/krypciak/cc-fancy-crash/releases/download/v1.0.8/cc-fancy-crash-1.0.8.ccmod" }, { "url": "https://github.com/CCDirectLink/Blades/archive/1.6.0.zip" }, - { "url": "https://github.com/krypciak/cc-jetpack-widget/releases/download/v1.0.1/cc-jetpack-widget-1.0.1.ccmod" }, + { "url": "https://github.com/krypciak/cc-jetpack-widget/releases/download/v1.0.3/cc-jetpack-widget-1.0.3.ccmod" }, { "url": "https://github.com/krypciak/cc-character-widgets/releases/download/v1.0.0/cc-character-widgets-1.0.0.ccmod" }, { "url": "https://github.com/EpicYoshiMaster/CCPresetRevivalPlus/releases/download/2.1.1/CCPresetRevivalPlus.v2.1.1.ccmod" }, { "url": "https://github.com/krypciak/cc-element-boss/releases/download/v0.1.3/element-boss-0.1.3.ccmod" }, diff --git a/mods.json b/mods.json index 4ab2c545..118a6954 100644 --- a/mods.json +++ b/mods.json @@ -219,11 +219,11 @@ "url": "https://github.com/krypciak/cc-jetpack-widget" } ], - "archive_link": "https://github.com/krypciak/cc-jetpack-widget/releases/download/v1.0.1/cc-jetpack-widget-1.0.1.ccmod", + "archive_link": "https://github.com/krypciak/cc-jetpack-widget/releases/download/v1.0.3/cc-jetpack-widget-1.0.3.ccmod", "hash": { - "sha256": "fa0d7f74e443030dcf5615e08ff4fc20a2d38b08d8d9e1ca78eda32f3c394c0c" + "sha256": "b0d196493a2b3a02ea2b239ea06d2bb350e4ed6b6f5f57ab7c2226e12b7e9570" }, - "version": "1.0.1" + "version": "1.0.3" }, "cc-vim": { "name": "Vim Command Mode", diff --git a/npDatabase.json b/npDatabase.json index 7a9f3215..70e4bb9d 100644 --- a/npDatabase.json +++ b/npDatabase.json @@ -459,7 +459,7 @@ "cc-jetpack-widget": { "metadataCCMod": { "id": "cc-jetpack-widget", - "version": "1.0.1", + "version": "1.0.3", "title": "Jetpack widget", "description": "Adds a jetpack quick menu widget", "repository": "https://github.com/krypciak/cc-jetpack-widget", @@ -474,21 +474,21 @@ "24": "icon/icon.png" }, "dependencies": { - "nax-ccuilib": ">=1.2.3" + "nax-ccuilib": ">=1.2.5" }, "plugin": "plugin.js" }, "installation": [ { "type": "zip", - "url": "https://github.com/krypciak/cc-jetpack-widget/releases/download/v1.0.1/cc-jetpack-widget-1.0.1.ccmod", + "url": "https://github.com/krypciak/cc-jetpack-widget/releases/download/v1.0.3/cc-jetpack-widget-1.0.3.ccmod", "hash": { - "sha256": "fa0d7f74e443030dcf5615e08ff4fc20a2d38b08d8d9e1ca78eda32f3c394c0c" + "sha256": "b0d196493a2b3a02ea2b239ea06d2bb350e4ed6b6f5f57ab7c2226e12b7e9570" } } ], "stars": 0, - "lastUpdateTimestamp": 1708253819000 + "lastUpdateTimestamp": 1710185123000 }, "cc-vim": { "metadataCCMod": { From 68319ddf78797ec10f902ace4553c483b1919fe3 Mon Sep 17 00:00:00 2001 From: krypek <115574014+krypciak@users.noreply.github.com> Date: Tue, 12 Mar 2024 12:25:23 +0000 Subject: [PATCH 110/196] CCBot New mod: nax-module-cache (#111) * CCBot: ccbot/0 * CCBot: Fill 'nax-module-cache' info --- input-locations.json | 3 ++- mods.json | 15 +++++++++++++++ npDatabase.json | 27 ++++++++++++++++++++++++++- 3 files changed, 43 insertions(+), 2 deletions(-) diff --git a/input-locations.json b/input-locations.json index 9e7db70e..0d5f25a8 100644 --- a/input-locations.json +++ b/input-locations.json @@ -48,5 +48,6 @@ { "url": "https://github.com/canbora/cc-named-saves/releases/download/v1.0.1/cc-named-saves.ccmod" }, { "url": "https://github.com/CCDirectLink/CCModManager/releases/download/v0.9.5/ccmodmanager-0.9.5.ccmod" }, { "url": "https://github.com/conorlawton/nax-ccuilib/releases/download/v1.2.4/nax-ccuilib.ccmod" }, - { "url": "https://github.com/buanjautista/cc-open-world/releases/download/0.3.2/cc-open-world.v0.3.2.ccmod" } + { "url": "https://github.com/buanjautista/cc-open-world/releases/download/0.3.2/cc-open-world.v0.3.2.ccmod" }, + { "url": "https://github.com/krypciak/nax-module-cache/releases/download/v1.0.2/nax-module-cache.ccmod" } ] diff --git a/mods.json b/mods.json index 118a6954..6a034793 100644 --- a/mods.json +++ b/mods.json @@ -555,6 +555,21 @@ }, "version": "1.2.4" }, + "nax-module-cache": { + "name": "Module Cache", + "description": "Caches module paths for ig._loadScript", + "page": [ + { + "name": "GitHub", + "url": "https://github.com/conorlawton/nax-module-cache" + } + ], + "archive_link": "https://github.com/krypciak/nax-module-cache/releases/download/v1.0.2/nax-module-cache.ccmod", + "hash": { + "sha256": "86b3fb25b75c8edd5b6079577d7df6748e6494165b1b77d31f73311f577763a8" + }, + "version": "1.0.2" + }, "nine-rooms": { "name": "Nine Rooms", "description": "A little piece of lost history.", diff --git a/npDatabase.json b/npDatabase.json index 70e4bb9d..90bca3bd 100644 --- a/npDatabase.json +++ b/npDatabase.json @@ -1199,9 +1199,34 @@ } } ], - "stars": 0, + "stars": 1, "lastUpdateTimestamp": 1710105771000 }, + "nax-module-cache": { + "metadataCCMod": { + "id": "nax-module-cache", + "version": "1.0.2", + "title": "Module Cache", + "description": "Caches module paths for ig._loadScript", + "repository": "https://github.com/conorlawton/nax-module-cache", + "tags": [ + "library" + ], + "authors": "nax", + "plugin": "nax-module-cache/plugin.js" + }, + "installation": [ + { + "type": "zip", + "url": "https://github.com/krypciak/nax-module-cache/releases/download/v1.0.2/nax-module-cache.ccmod", + "hash": { + "sha256": "86b3fb25b75c8edd5b6079577d7df6748e6494165b1b77d31f73311f577763a8" + } + } + ], + "stars": 0, + "lastUpdateTimestamp": 1691756237000 + }, "nine-rooms": { "metadataCCMod": { "id": "nine-rooms", From bef01a06e1995e5e350e117340e8adfa053cb163 Mon Sep 17 00:00:00 2001 From: krypek Date: Tue, 12 Mar 2024 13:27:35 +0100 Subject: [PATCH 111/196] Update todo.md --- todo.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/todo.md b/todo.md index 30b44e3b..782cd4a5 100644 --- a/todo.md +++ b/todo.md @@ -24,7 +24,7 @@ - https://github.com/conorlawton/nax-module-cache/pull/1 - https://github.com/conorlawton/CCInventorySearch/pull/5 (remind him of the other crash fix pr) -- ~~https://github.com/conorlawton/nax-ccuilib/pull/4~~ +- https://github.com/conorlawton/nax-ccuilib/pull/9 ### ~~EL~~ From 9e7659c0053e50a5049c66735bd939623b5f3dc3 Mon Sep 17 00:00:00 2001 From: krypek Date: Tue, 12 Mar 2024 13:29:27 +0100 Subject: [PATCH 112/196] Remove nax version of ccuilib --- input-locations.json | 1 - mods.json | 15 --------------- npDatabase.json | 31 ------------------------------- 3 files changed, 47 deletions(-) diff --git a/input-locations.json b/input-locations.json index 0d5f25a8..355a77c3 100644 --- a/input-locations.json +++ b/input-locations.json @@ -47,7 +47,6 @@ { "url": "https://github.com/lubkuluk/lubkuluks-joern-mod/files/14393459/lubkuluks-joern-mod.zip" }, { "url": "https://github.com/canbora/cc-named-saves/releases/download/v1.0.1/cc-named-saves.ccmod" }, { "url": "https://github.com/CCDirectLink/CCModManager/releases/download/v0.9.5/ccmodmanager-0.9.5.ccmod" }, - { "url": "https://github.com/conorlawton/nax-ccuilib/releases/download/v1.2.4/nax-ccuilib.ccmod" }, { "url": "https://github.com/buanjautista/cc-open-world/releases/download/0.3.2/cc-open-world.v0.3.2.ccmod" }, { "url": "https://github.com/krypciak/nax-module-cache/releases/download/v1.0.2/nax-module-cache.ccmod" } ] diff --git a/mods.json b/mods.json index 6a034793..58844a21 100644 --- a/mods.json +++ b/mods.json @@ -540,21 +540,6 @@ }, "version": "0.4.1" }, - "nax-ccuilib": { - "name": "CCUILib", - "description": "Library of additional UI elements as well as making existing ones configurable", - "page": [ - { - "name": "GitHub", - "url": "https://github.com/conorlawton/nax-ccuilib" - } - ], - "archive_link": "https://github.com/conorlawton/nax-ccuilib/releases/download/v1.2.4/nax-ccuilib.ccmod", - "hash": { - "sha256": "71b08398c31dceff036e0134961fd3e712c057a5f9d89e88253f5194ec5cc63d" - }, - "version": "1.2.4" - }, "nax-module-cache": { "name": "Module Cache", "description": "Caches module paths for ig._loadScript", diff --git a/npDatabase.json b/npDatabase.json index 90bca3bd..7ca0193d 100644 --- a/npDatabase.json +++ b/npDatabase.json @@ -1171,37 +1171,6 @@ "stars": 2, "lastUpdateTimestamp": 1709924111000 }, - "nax-ccuilib": { - "metadataCCMod": { - "id": "nax-ccuilib", - "version": "1.2.4", - "title": "CCUILib", - "description": "Library of additional UI elements as well as making existing ones configurable", - "repository": "https://github.com/conorlawton/nax-ccuilib", - "tags": [ - "library" - ], - "authors": [ - "nax", - "krypek" - ], - "dependencies": { - "nax-module-cache": ">=1.0.0" - }, - "plugin": "nax-ccuilib/plugin.js" - }, - "installation": [ - { - "type": "zip", - "url": "https://github.com/conorlawton/nax-ccuilib/releases/download/v1.2.4/nax-ccuilib.ccmod", - "hash": { - "sha256": "71b08398c31dceff036e0134961fd3e712c057a5f9d89e88253f5194ec5cc63d" - } - } - ], - "stars": 1, - "lastUpdateTimestamp": 1710105771000 - }, "nax-module-cache": { "metadataCCMod": { "id": "nax-module-cache", From 0cc64441ba8acc4da532050a02c6fe54768f6365 Mon Sep 17 00:00:00 2001 From: krypek <115574014+krypciak@users.noreply.github.com> Date: Tue, 12 Mar 2024 12:31:35 +0000 Subject: [PATCH 113/196] CCBot New mod: nax-ccuilib (#112) * CCBot: ccbot/0 * CCBot: Fill 'nax-ccuilib' info --- input-locations.json | 3 ++- mods.json | 15 +++++++++++++++ npDatabase.json | 31 +++++++++++++++++++++++++++++++ 3 files changed, 48 insertions(+), 1 deletion(-) diff --git a/input-locations.json b/input-locations.json index 355a77c3..3be68e5d 100644 --- a/input-locations.json +++ b/input-locations.json @@ -48,5 +48,6 @@ { "url": "https://github.com/canbora/cc-named-saves/releases/download/v1.0.1/cc-named-saves.ccmod" }, { "url": "https://github.com/CCDirectLink/CCModManager/releases/download/v0.9.5/ccmodmanager-0.9.5.ccmod" }, { "url": "https://github.com/buanjautista/cc-open-world/releases/download/0.3.2/cc-open-world.v0.3.2.ccmod" }, - { "url": "https://github.com/krypciak/nax-module-cache/releases/download/v1.0.2/nax-module-cache.ccmod" } + { "url": "https://github.com/krypciak/nax-module-cache/releases/download/v1.0.2/nax-module-cache.ccmod" }, + { "url": "https://github.com/krypciak/nax-ccuilib/releases/download/v1.2.5/nax-ccuilib.ccmod" } ] diff --git a/mods.json b/mods.json index 58844a21..57698ffc 100644 --- a/mods.json +++ b/mods.json @@ -540,6 +540,21 @@ }, "version": "0.4.1" }, + "nax-ccuilib": { + "name": "CCUILib", + "description": "Library of additional UI elements as well as making existing ones configurable", + "page": [ + { + "name": "GitHub", + "url": "https://github.com/conorlawton/nax-ccuilib" + } + ], + "archive_link": "https://github.com/krypciak/nax-ccuilib/releases/download/v1.2.5/nax-ccuilib.ccmod", + "hash": { + "sha256": "7576c7c587ac129b1c09c584af280fc4806f8daeae788e0119d17eca28b391b3" + }, + "version": "1.2.5" + }, "nax-module-cache": { "name": "Module Cache", "description": "Caches module paths for ig._loadScript", diff --git a/npDatabase.json b/npDatabase.json index 7ca0193d..375cad75 100644 --- a/npDatabase.json +++ b/npDatabase.json @@ -1171,6 +1171,37 @@ "stars": 2, "lastUpdateTimestamp": 1709924111000 }, + "nax-ccuilib": { + "metadataCCMod": { + "id": "nax-ccuilib", + "version": "1.2.5", + "title": "CCUILib", + "description": "Library of additional UI elements as well as making existing ones configurable", + "repository": "https://github.com/conorlawton/nax-ccuilib", + "tags": [ + "library" + ], + "authors": [ + "nax", + "krypek" + ], + "dependencies": { + "nax-module-cache": ">=1.0.0" + }, + "plugin": "nax-ccuilib/plugin.js" + }, + "installation": [ + { + "type": "zip", + "url": "https://github.com/krypciak/nax-ccuilib/releases/download/v1.2.5/nax-ccuilib.ccmod", + "hash": { + "sha256": "7576c7c587ac129b1c09c584af280fc4806f8daeae788e0119d17eca28b391b3" + } + } + ], + "stars": 1, + "lastUpdateTimestamp": 1710105771000 + }, "nax-module-cache": { "metadataCCMod": { "id": "nax-module-cache", From 7875ed81202f7d3f9eabffb31cc7b9912be6819e Mon Sep 17 00:00:00 2001 From: krypek <115574014+krypciak@users.noreply.github.com> Date: Tue, 12 Mar 2024 12:34:01 +0000 Subject: [PATCH 114/196] CCBot Update mod: ccmodmanager (#113) * CCBot: ccbot/1 * CCBot: Fill 'ccmodmanager' info --- icons/ccmodmanager.png | Bin 7126 -> 7086 bytes input-locations.json | 2 +- mods.json | 6 +++--- npDatabase.json | 11 ++++++----- 4 files changed, 10 insertions(+), 9 deletions(-) diff --git a/icons/ccmodmanager.png b/icons/ccmodmanager.png index 3eaf1a65b35e4c1bc73c51d8e486212f96f1193a..d08ec777d6fa19dd75accc42b21d222b46cd2e0d 100644 GIT binary patch delta 773 zcmV+g1N!{dH?B93GJm~GLQxpTe`;YLhC>Yz4GtDT22l`=WrK@^m_b&H-n<(4ak*Cs zX$@K$godc4uc7~-)}XZ@2#O%0vAM4$iG=xgecj_w^=?e{`v2aatABefWoh8(5T4QuvnVXn z5Z)*nig$$jv`k`6_((Wl%7DVxN>A4LMRB^$ABxRbbPk-Vr!U>Y$rjc!W=?oS*q_Um zw8lK@OFXIk;)2ux*@IX_2@%9ck`n7=DKaKCFPZ)A8?X81DTqgtw?P?G9BDG*4TxHj zt|_Uy=qY)!lz&z3zw@;8$%%S*PY~LlZTo!)+`CY%*!K6aZC6jg^#qssroSLLO@E4B zX=?sM@NU8RRZ~mu!NoT8KN<-$QIlMUH5Wi~fAG&VRhWHK@elWYeVleGshldJ~` zlY|E-lY9pV5j8k9GB!0gGd5;6V>dN7Gzya`2OqN)2!|4XYAxvN0002?NklDkVHukrZDift`mNn|dK?ilk7YFMO1UX2(*KZ2CgA)er?%>#R8z8gDv4_;dy8m#X zk%2lyQ|GsT_>lvVJ)p%~lvx5T#GTIdFxWvO`8>T>v_=kRgB&!HJM@^zC}rrt=QzLt z)5|VdyVC-$>2G%j#8sGEqeVVnUvpZpAD7&u`_}<+ReH{j2!=kcWCObhbFy2_Nl6a9 z{~K&4r8>xYj^mZ6Inl_mbdUoaXGJ))bZtDoD?I@e=%ZPKrG$?B00000NkvXXu0mjf D$berC delta 794 zcmV+#1Lgd#H`X_hGJnfU0#Ou)Kegy(xTr-$#4IdYC`duHEL*sd5HrYXqvI>^G0Z3- zZG$!~gceboUW@*N+6HY4f}jW@TDI=B37O8QpoE^`&iVM=^E=#oF4%)vHD`4BAeS%d z;ecORjjky@@7Nf}NguYDYG@0gP>_!C^C;C44_>QR=eo8rkbg)TD%g63XH`uv3eO7% zw~Cs@d&0wNCYBIB5%%bEK;c_UkJtIl;&h$AEY>68MX*~vm2?ZoTUgELIpHZ`cP?8} z8|SfZ;!NgOmL-qM8p9w=06z+GN^Fv)h*xr6X4c;4tNE5Fh)0#bMj2fkX)@yVh+2}a zNy#bElk#OLTYq!^KTjhyGhOfQ^h5WnX?{*X&puQurulnnn$INUP6$pnCe>Z-QP5=M_9!W$&R7efwl3i}XFc5@8#XCJ}kHS&m1dwl) zu_l|{G!pcsL`v44zjbU+)4zJ|*YAg3|FH!d5c4syL4|)AAH&Pf?ZluEM`(eEufrqE z1Jxj0_VIv9BR+GRKR_t4heCV6FlX&N!tFlP@=me+C(pI1-mn)`)Yw z@|`8DNO2azHf?SYUem}Hb!-uWN+gVs`3;jW)g`gr-c`pV69ucf2du(f^YXZD;DnFq zIM3q-foE=SMdOfVQY}mzZk&TO)O^9Hd+`L~X)UVDvR8NxI_n)SiD YCp6r Date: Wed, 13 Mar 2024 15:59:06 +0000 Subject: [PATCH 115/196] CCBot Update mod: ccmodmanager (#116) * CCBot: ccbot/0 * CCBot: Fill 'ccmodmanager' info --- input-locations.json | 2 +- mods.json | 6 +++--- npDatabase.json | 8 ++++---- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/input-locations.json b/input-locations.json index 7192887f..bd4aadd8 100644 --- a/input-locations.json +++ b/input-locations.json @@ -46,7 +46,7 @@ { "url": "https://github.com/CodeTriangle/CCMultiworldRandomizer/releases/download/0.4.1/CCMultiworldRandomizer-0.4.1.ccmod" }, { "url": "https://github.com/lubkuluk/lubkuluks-joern-mod/files/14393459/lubkuluks-joern-mod.zip" }, { "url": "https://github.com/canbora/cc-named-saves/releases/download/v1.0.1/cc-named-saves.ccmod" }, - { "url": "https://github.com/CCDirectLink/CCModManager/releases/download/v0.9.6/ccmodmanager-0.9.6.ccmod" }, + { "url": "https://github.com/CCDirectLink/CCModManager/releases/download/v0.9.7/ccmodmanager-0.9.7.ccmod" }, { "url": "https://github.com/buanjautista/cc-open-world/releases/download/0.3.2/cc-open-world.v0.3.2.ccmod" }, { "url": "https://github.com/krypciak/nax-module-cache/releases/download/v1.0.2/nax-module-cache.ccmod" }, { "url": "https://github.com/krypciak/nax-ccuilib/releases/download/v1.2.5/nax-ccuilib.ccmod" } diff --git a/mods.json b/mods.json index c6f637a6..ac997ed5 100644 --- a/mods.json +++ b/mods.json @@ -264,11 +264,11 @@ "url": "https://github.com/CCDirectLink/CCModManager" } ], - "archive_link": "https://github.com/CCDirectLink/CCModManager/releases/download/v0.9.6/ccmodmanager-0.9.6.ccmod", + "archive_link": "https://github.com/CCDirectLink/CCModManager/releases/download/v0.9.7/ccmodmanager-0.9.7.ccmod", "hash": { - "sha256": "538badc9424f97f4598334aad4e6695a5ece3877a7e859b517e29aaee6ef9daa" + "sha256": "7aabb00b7434fce2cdee04dabd4378d8e27fcd37a6ee01c1a5581ea067a9cf32" }, - "version": "0.9.6" + "version": "0.9.7" }, "charged-balls": { "name": "Charged balls", diff --git a/npDatabase.json b/npDatabase.json index b1ee21b5..00b49eb1 100644 --- a/npDatabase.json +++ b/npDatabase.json @@ -561,7 +561,7 @@ "ccmodmanager": { "metadataCCMod": { "id": "ccmodmanager", - "version": "0.9.6", + "version": "0.9.7", "title": "CCModManager", "description": "Mod manager for CrossCode!", "repository": "https://github.com/CCDirectLink/CCModManager", @@ -582,14 +582,14 @@ "installation": [ { "type": "zip", - "url": "https://github.com/CCDirectLink/CCModManager/releases/download/v0.9.6/ccmodmanager-0.9.6.ccmod", + "url": "https://github.com/CCDirectLink/CCModManager/releases/download/v0.9.7/ccmodmanager-0.9.7.ccmod", "hash": { - "sha256": "538badc9424f97f4598334aad4e6695a5ece3877a7e859b517e29aaee6ef9daa" + "sha256": "7aabb00b7434fce2cdee04dabd4378d8e27fcd37a6ee01c1a5581ea067a9cf32" } } ], "stars": 0, - "lastUpdateTimestamp": 1710245317000 + "lastUpdateTimestamp": 1710345326000 }, "charged-balls": { "metadataCCMod": { From 4c761aef1269082e747c29a289c8af9b1067e813 Mon Sep 17 00:00:00 2001 From: krypek <115574014+krypciak@users.noreply.github.com> Date: Wed, 13 Mar 2024 16:49:18 +0000 Subject: [PATCH 116/196] CCBot Update mod: ccmodmanager (#117) * CCBot: ccbot/0 * CCBot: Fill 'ccmodmanager' info --- input-locations.json | 2 +- mods.json | 6 +++--- npDatabase.json | 8 ++++---- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/input-locations.json b/input-locations.json index bd4aadd8..a7f6aeab 100644 --- a/input-locations.json +++ b/input-locations.json @@ -46,7 +46,7 @@ { "url": "https://github.com/CodeTriangle/CCMultiworldRandomizer/releases/download/0.4.1/CCMultiworldRandomizer-0.4.1.ccmod" }, { "url": "https://github.com/lubkuluk/lubkuluks-joern-mod/files/14393459/lubkuluks-joern-mod.zip" }, { "url": "https://github.com/canbora/cc-named-saves/releases/download/v1.0.1/cc-named-saves.ccmod" }, - { "url": "https://github.com/CCDirectLink/CCModManager/releases/download/v0.9.7/ccmodmanager-0.9.7.ccmod" }, + { "url": "https://github.com/CCDirectLink/CCModManager/releases/download/v0.9.8/ccmodmanager-0.9.8.ccmod" }, { "url": "https://github.com/buanjautista/cc-open-world/releases/download/0.3.2/cc-open-world.v0.3.2.ccmod" }, { "url": "https://github.com/krypciak/nax-module-cache/releases/download/v1.0.2/nax-module-cache.ccmod" }, { "url": "https://github.com/krypciak/nax-ccuilib/releases/download/v1.2.5/nax-ccuilib.ccmod" } diff --git a/mods.json b/mods.json index ac997ed5..760f250b 100644 --- a/mods.json +++ b/mods.json @@ -264,11 +264,11 @@ "url": "https://github.com/CCDirectLink/CCModManager" } ], - "archive_link": "https://github.com/CCDirectLink/CCModManager/releases/download/v0.9.7/ccmodmanager-0.9.7.ccmod", + "archive_link": "https://github.com/CCDirectLink/CCModManager/releases/download/v0.9.8/ccmodmanager-0.9.8.ccmod", "hash": { - "sha256": "7aabb00b7434fce2cdee04dabd4378d8e27fcd37a6ee01c1a5581ea067a9cf32" + "sha256": "81240f12d7909911dd0047148f5767324d808fea4fe2673fb0821946092b6fbd" }, - "version": "0.9.7" + "version": "0.9.8" }, "charged-balls": { "name": "Charged balls", diff --git a/npDatabase.json b/npDatabase.json index 00b49eb1..227936ee 100644 --- a/npDatabase.json +++ b/npDatabase.json @@ -561,7 +561,7 @@ "ccmodmanager": { "metadataCCMod": { "id": "ccmodmanager", - "version": "0.9.7", + "version": "0.9.8", "title": "CCModManager", "description": "Mod manager for CrossCode!", "repository": "https://github.com/CCDirectLink/CCModManager", @@ -582,14 +582,14 @@ "installation": [ { "type": "zip", - "url": "https://github.com/CCDirectLink/CCModManager/releases/download/v0.9.7/ccmodmanager-0.9.7.ccmod", + "url": "https://github.com/CCDirectLink/CCModManager/releases/download/v0.9.8/ccmodmanager-0.9.8.ccmod", "hash": { - "sha256": "7aabb00b7434fce2cdee04dabd4378d8e27fcd37a6ee01c1a5581ea067a9cf32" + "sha256": "81240f12d7909911dd0047148f5767324d808fea4fe2673fb0821946092b6fbd" } } ], "stars": 0, - "lastUpdateTimestamp": 1710345326000 + "lastUpdateTimestamp": 1710348421000 }, "charged-balls": { "metadataCCMod": { From fdd20082662eb5a08e5e7ee0854ec09e7c2599ee Mon Sep 17 00:00:00 2001 From: krypek <115574014+krypciak@users.noreply.github.com> Date: Wed, 13 Mar 2024 17:01:05 +0000 Subject: [PATCH 117/196] CCBot New mod: crossedeyes (#118) * CCBot: ccbot/0 * CCBot: Fill 'crossedeyes' info --- icons/crossedeyes.png | Bin 0 -> 769 bytes input-locations.json | 3 ++- mods.json | 15 +++++++++++++++ npDatabase.json | 38 ++++++++++++++++++++++++++++++++++++++ 4 files changed, 55 insertions(+), 1 deletion(-) create mode 100644 icons/crossedeyes.png diff --git a/icons/crossedeyes.png b/icons/crossedeyes.png new file mode 100644 index 0000000000000000000000000000000000000000..0965141eef7773bbc58c35610914d1b043a12f03 GIT binary patch literal 769 zcmV+c1OEJpP)n})g!{Bi zVomr+IAF?v!q-Yq*7-$oy3QYp%~*5}oT{fU-NMNh)-q;JctqHr%a*jpJnBn4sr=%C z)B)LpSVRdC#7B}6>trc1CN(da{p}mC`Q|BzN0YZf8B-i-GU5%0T9U3Qsk-PXd9svM z?!WW2^vQ{OcTW)7pKben2;93+t=RVWv29mR!1V-|`KG@hIZc0xUTJFnL-20F`BhU( z?!m=2^gkL2Gf|UVvYomPZ)eaGhu&N0TB&E%IOp^MVw>`dZeafahULC@^#>*wXd7H! z`XB%R010qNS#tmY4#NNd4#NS*Z>VGd00B8kL_t(Y4P#)SF<``F{(n4j*rc$U#e_{I zHN`--Vs)vo?Glpgd3!hpt9sh|VAiZzC_boM%!Sn@#0s{@enU}8b04t4ti$ElSdI|V7cR~2^DDt)8-$lQB{!0J1GD$hXHCXBhUhre1LAA zVDWTxAr$`m-b@reItL!f2%n%UA&;-J`8rr5JPu$%1NS0%<}$#{VPJriP4rJiFc-j5 z3865C#StQvp?V!2M5w|D9?SrQ2x%-(B*OqWHKFHdm`}e=!upA7O z1e;CsI6(FR%!PRK1xyhh8pTYS`v8was3Qdci0VsG&o@h@00000NkvXXu0mjfmqJ`Y literal 0 HcmV?d00001 diff --git a/input-locations.json b/input-locations.json index a7f6aeab..0a9acce7 100644 --- a/input-locations.json +++ b/input-locations.json @@ -49,5 +49,6 @@ { "url": "https://github.com/CCDirectLink/CCModManager/releases/download/v0.9.8/ccmodmanager-0.9.8.ccmod" }, { "url": "https://github.com/buanjautista/cc-open-world/releases/download/0.3.2/cc-open-world.v0.3.2.ccmod" }, { "url": "https://github.com/krypciak/nax-module-cache/releases/download/v1.0.2/nax-module-cache.ccmod" }, - { "url": "https://github.com/krypciak/nax-ccuilib/releases/download/v1.2.5/nax-ccuilib.ccmod" } + { "url": "https://github.com/krypciak/nax-ccuilib/releases/download/v1.2.5/nax-ccuilib.ccmod" }, + { "url": "https://github.com/CCDirectLink/CrossedEyes/releases/download/v0.5.8/crossedeyes-0.5.8.ccmod" } ] diff --git a/mods.json b/mods.json index 760f250b..4559ee0d 100644 --- a/mods.json +++ b/mods.json @@ -315,6 +315,21 @@ }, "version": "1.0.1" }, + "crossedeyes": { + "name": "CrossedEyes", + "description": "Accessibility mod for CrossCode", + "page": [ + { + "name": "GitHub", + "url": "https://github.com/CCDirectLink/CrossedEyes" + } + ], + "archive_link": "https://github.com/CCDirectLink/CrossedEyes/releases/download/v0.5.8/crossedeyes-0.5.8.ccmod", + "hash": { + "sha256": "3544e841fec47f605f2a568df063acc03ebcfd4ef5a67e9dea766eaa670cfe32" + }, + "version": "0.5.8" + }, "cursedcode": { "name": "CursedCode", "description": "Cursed custom maps.", diff --git a/npDatabase.json b/npDatabase.json index 227936ee..704ae676 100644 --- a/npDatabase.json +++ b/npDatabase.json @@ -680,6 +680,44 @@ "stars": 0, "lastUpdateTimestamp": 1708620822000 }, + "crossedeyes": { + "metadataCCMod": { + "id": "crossedeyes", + "version": "0.5.8", + "title": "CrossedEyes", + "description": "Accessibility mod for CrossCode", + "repository": "https://github.com/CCDirectLink/CrossedEyes", + "tags": [ + "accessibility" + ], + "authors": [ + "krypek", + "2767mr" + ], + "icons": { + "24": "icon/icon.png" + }, + "dependencies": { + "input-api": ">=1.0.0", + "cc-blitzkrieg": ">=0.5.2", + "nax-ccuilib": ">=1.2.5", + "ccmodmanager": ">=0.9.8", + "crosscode": ">=1.4.0" + }, + "plugin": "plugin.js" + }, + "installation": [ + { + "type": "zip", + "url": "https://github.com/CCDirectLink/CrossedEyes/releases/download/v0.5.8/crossedeyes-0.5.8.ccmod", + "hash": { + "sha256": "3544e841fec47f605f2a568df063acc03ebcfd4ef5a67e9dea766eaa670cfe32" + } + } + ], + "stars": 9, + "lastUpdateTimestamp": 1710348605000 + }, "cursedcode": { "metadataCCMod": { "id": "cursedcode", From 6f9df9b872483c8f17d3753a1f18498028254ec4 Mon Sep 17 00:00:00 2001 From: krypek <115574014+krypciak@users.noreply.github.com> Date: Sat, 16 Mar 2024 21:30:25 +0000 Subject: [PATCH 118/196] CCBot Update mod: cc-blitzkrieg (#119) * CCBot: ccbot/0 * CCBot: Fill 'cc-blitzkrieg' info --- input-locations.json | 2 +- mods.json | 6 +++--- npDatabase.json | 8 ++++---- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/input-locations.json b/input-locations.json index 0a9acce7..a4ce8630 100644 --- a/input-locations.json +++ b/input-locations.json @@ -7,7 +7,7 @@ { "url": "https://github.com/CCDirectLink/CCLoader/archive/refs/tags/v2.23.2/v2.13.0.zip", "source": "CCLoader-2.23.2-v2.13.0/assets/mods/simplify" }, { "url": "https://github.com/CCDirectLink/CCLoader/archive/refs/tags/v2.23.2/v2.13.0.zip", "source": "CCLoader-2.23.2-v2.13.0/assets/mods/ccloader-version-display" }, { "url": "https://github.com/CCDirectLink/input-api/archive/refs/tags/v1.0.2.zip" }, - { "url": "https://github.com/krypciak/cc-blitzkrieg/releases/download/v0.5.2/cc-blitzkrieg-0.5.2.ccmod" }, + { "url": "https://github.com/krypciak/cc-blitzkrieg/releases/download/v0.5.3/cc-blitzkrieg-0.5.3.ccmod" }, { "url": "https://github.com/krypciak/cc-fancy-crash/releases/download/v1.0.8/cc-fancy-crash-1.0.8.ccmod" }, { "url": "https://github.com/CCDirectLink/Blades/archive/1.6.0.zip" }, { "url": "https://github.com/krypciak/cc-jetpack-widget/releases/download/v1.0.3/cc-jetpack-widget-1.0.3.ccmod" }, diff --git a/mods.json b/mods.json index 4559ee0d..f44e9c74 100644 --- a/mods.json +++ b/mods.json @@ -129,11 +129,11 @@ "url": "https://github.com/krypciak/cc-blitzkrieg" } ], - "archive_link": "https://github.com/krypciak/cc-blitzkrieg/releases/download/v0.5.2/cc-blitzkrieg-0.5.2.ccmod", + "archive_link": "https://github.com/krypciak/cc-blitzkrieg/releases/download/v0.5.3/cc-blitzkrieg-0.5.3.ccmod", "hash": { - "sha256": "c1ea52366b94a5bb5528686c22e824e13b4dcb079605e2932cd56c07d2279d40" + "sha256": "a8bcb3157f4c7992538a1794dede8e8c7538b8d350650ec6793c31475ab9048c" }, - "version": "0.5.2" + "version": "0.5.3" }, "cc-capped-stats": { "name": "Capped Stats", diff --git a/npDatabase.json b/npDatabase.json index 704ae676..ed73360f 100644 --- a/npDatabase.json +++ b/npDatabase.json @@ -272,7 +272,7 @@ "cc-blitzkrieg": { "metadataCCMod": { "id": "cc-blitzkrieg", - "version": "0.5.2", + "version": "0.5.3", "title": "Blitzkrieg (WIP)", "description": "Puzzle solving, incresed puzzle difficuly, puzzle and boss collection tools", "repository": "https://github.com/krypciak/cc-blitzkrieg", @@ -294,14 +294,14 @@ "installation": [ { "type": "zip", - "url": "https://github.com/krypciak/cc-blitzkrieg/releases/download/v0.5.2/cc-blitzkrieg-0.5.2.ccmod", + "url": "https://github.com/krypciak/cc-blitzkrieg/releases/download/v0.5.3/cc-blitzkrieg-0.5.3.ccmod", "hash": { - "sha256": "c1ea52366b94a5bb5528686c22e824e13b4dcb079605e2932cd56c07d2279d40" + "sha256": "a8bcb3157f4c7992538a1794dede8e8c7538b8d350650ec6793c31475ab9048c" } } ], "stars": 0, - "lastUpdateTimestamp": 1709374805000 + "lastUpdateTimestamp": 1710624464000 }, "cc-capped-stats": { "metadataCCMod": { From 50f84405eba80022ff4a946e366a2626a44a4cf4 Mon Sep 17 00:00:00 2001 From: krypek <115574014+krypciak@users.noreply.github.com> Date: Sun, 17 Mar 2024 09:36:22 +0000 Subject: [PATCH 119/196] CCBot New mod: xenons-triblader-mod (#120) * CCBot: ccbot/0 * CCBot: Fill 'xenons-triblader-mod' info --- icons/xenons-triblader-mod.png | Bin 0 -> 1415 bytes input-locations.json | 3 +- mods.json | 15 ++++++++ npDatabase.json | 61 +++++++++++++++++++++++++++++++++ 4 files changed, 78 insertions(+), 1 deletion(-) create mode 100644 icons/xenons-triblader-mod.png diff --git a/icons/xenons-triblader-mod.png b/icons/xenons-triblader-mod.png new file mode 100644 index 0000000000000000000000000000000000000000..e9570c9381e9644ed9a5208cb836c5a6b0075b25 GIT binary patch literal 1415 zcmV;21$g?2P)?-|u2P%fIf=(WB-p1_VUnS!S3v@dokKrfqQECyub9 ztP-CSkD7Er;zzD49=~xexGeC@h?!2!6Gw=}LK`b>%!;N)JV_i?HJ$Q>jK?bHEzVlG z%9{7&FAV4Om1VBe8bSh#Sb_u*3aTif3>z`pby6&(=sfP@A9Vc^xfF7hz{s(H3N*;B zAN&t~_twf!jC)DpIMDIpI3L46=PuBwInMX7<1|iy;4^TgxBQhlF#Sn-t))eefZlE3 z;<}|Nd%)!mFz{r^rtC^VT0%Y#yr0oGWr4n1pnJ{hTk{;J4?voFmAnBC4uO#ZWv~0Z zyQ{r#|JF47_XB!(a;osGzgPeO1H?&0K~zYIt(9G9TV)u>f9I@Aaq3DPwQC@&9y2AT z_JgLJbexDoEp}Hz8O(?X%49cQ>|#X(b?!>AAl}suW%Z*{w{AnJEwQCS!%R&iWhTo_ z7u3|#)v|Tjpw@Ivy*TH6lar=5;sYV)yzl?{{h#MK=S`G@2On2~1HdD|GY{?C_a6Ua z)KtP_XMdups};ZIrqA6Xg-7*vN8U$cyUg4Xk56ShunY%2q0Q4vG%w2QTBp>k9o6`h`10{p~&oxrh zykg&NO7Zh8N4R}?$N{;1d59MSj}rTH9qQK0@~rWtvrx>a&JJ#zzQz924eWXLAHM!- zl9yh7fwk#c(pd<;^#LD-Iwa)OY?AyROR%fn)?bnO8&k``vL*c4I%t%etWDR_ryrs= zvPS*pD$Q;8q3b#q3NB8~Cb>{>q3b#T^_#0wUxGWMrgEWva~1EyM_5r-$X`#Q>pJ0& z!we(`Sd7J4jKz5{Yo*ma)`7RddZQMykxEp_pm?Hyno{f~7n-Ko*BwMg1{ob4m2-A^ z_fn@kL4ys}G>yo}AeouM&ISO*mMzqjLOQJA9~q=4d_tOVJ;_}gURb!pB60FDD|I0T z>9A4-ZH0UWr4Fow$jBg?rlIRP-e8a86pIlFEwJOSL5%}mCd$kd@EsnM_XX`90E<@& zy#3v`ggQOU{*uFg{Fu|E;;?Re$f~ah#sSpGr3mG zs8(*3|AQS{?C{@M9bt{uVQ0Jm=5{KRq4M4P^M6t4ZX?f{Ca#kUB=2.12.1", + "extendable-severed-heads": ">=1.1.0", + "cc-alybox": ">=1.0.0", + "crosscode": ">=1.4.0", + "post-game": ">=1.4.0" + } + }, + "installation": [ + { + "type": "zip", + "url": "https://github.com/XenonA7/xenons-triblader-mod/archive/refs/tags/1.0.1.zip", + "source": "xenons-triblader-mod-1.0.1", + "hash": { + "sha256": "f7c86bf095cdd2bc37922c8580558bd0e76dbd8657e58648470fb77ca128a0ae" + } + } + ], + "stars": 16, + "lastUpdateTimestamp": 1710647575000 + }, "xmc-hexacast": { "metadataCCMod": { "id": "xmc-hexacast", From 46fbe448c637cfa03610a005f2a4dfaa1f9bb1f0 Mon Sep 17 00:00:00 2001 From: krypek <115574014+krypciak@users.noreply.github.com> Date: Sun, 17 Mar 2024 09:38:28 +0000 Subject: [PATCH 120/196] CCBot Update mod: cc-blitzkrieg (#121) * CCBot: ccbot/1 * CCBot: Fill 'cc-blitzkrieg' info --- input-locations.json | 2 +- mods.json | 6 +++--- npDatabase.json | 8 ++++---- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/input-locations.json b/input-locations.json index 96b3c93a..d857d1ad 100644 --- a/input-locations.json +++ b/input-locations.json @@ -7,7 +7,7 @@ { "url": "https://github.com/CCDirectLink/CCLoader/archive/refs/tags/v2.23.2/v2.13.0.zip", "source": "CCLoader-2.23.2-v2.13.0/assets/mods/simplify" }, { "url": "https://github.com/CCDirectLink/CCLoader/archive/refs/tags/v2.23.2/v2.13.0.zip", "source": "CCLoader-2.23.2-v2.13.0/assets/mods/ccloader-version-display" }, { "url": "https://github.com/CCDirectLink/input-api/archive/refs/tags/v1.0.2.zip" }, - { "url": "https://github.com/krypciak/cc-blitzkrieg/releases/download/v0.5.3/cc-blitzkrieg-0.5.3.ccmod" }, + { "url": "https://github.com/krypciak/cc-blitzkrieg/releases/download/v0.5.4/cc-blitzkrieg-0.5.4.ccmod" }, { "url": "https://github.com/krypciak/cc-fancy-crash/releases/download/v1.0.8/cc-fancy-crash-1.0.8.ccmod" }, { "url": "https://github.com/CCDirectLink/Blades/archive/1.6.0.zip" }, { "url": "https://github.com/krypciak/cc-jetpack-widget/releases/download/v1.0.3/cc-jetpack-widget-1.0.3.ccmod" }, diff --git a/mods.json b/mods.json index 221d8e3c..083e8920 100644 --- a/mods.json +++ b/mods.json @@ -129,11 +129,11 @@ "url": "https://github.com/krypciak/cc-blitzkrieg" } ], - "archive_link": "https://github.com/krypciak/cc-blitzkrieg/releases/download/v0.5.3/cc-blitzkrieg-0.5.3.ccmod", + "archive_link": "https://github.com/krypciak/cc-blitzkrieg/releases/download/v0.5.4/cc-blitzkrieg-0.5.4.ccmod", "hash": { - "sha256": "a8bcb3157f4c7992538a1794dede8e8c7538b8d350650ec6793c31475ab9048c" + "sha256": "5edec218c4f6140580445889f9807195a192d6d523d43c1d9eaaaf2ffad5b3a4" }, - "version": "0.5.3" + "version": "0.5.4" }, "cc-capped-stats": { "name": "Capped Stats", diff --git a/npDatabase.json b/npDatabase.json index 0e033617..0023e3c5 100644 --- a/npDatabase.json +++ b/npDatabase.json @@ -272,7 +272,7 @@ "cc-blitzkrieg": { "metadataCCMod": { "id": "cc-blitzkrieg", - "version": "0.5.3", + "version": "0.5.4", "title": "Blitzkrieg (WIP)", "description": "Puzzle solving, incresed puzzle difficuly, puzzle and boss collection tools", "repository": "https://github.com/krypciak/cc-blitzkrieg", @@ -294,14 +294,14 @@ "installation": [ { "type": "zip", - "url": "https://github.com/krypciak/cc-blitzkrieg/releases/download/v0.5.3/cc-blitzkrieg-0.5.3.ccmod", + "url": "https://github.com/krypciak/cc-blitzkrieg/releases/download/v0.5.4/cc-blitzkrieg-0.5.4.ccmod", "hash": { - "sha256": "a8bcb3157f4c7992538a1794dede8e8c7538b8d350650ec6793c31475ab9048c" + "sha256": "5edec218c4f6140580445889f9807195a192d6d523d43c1d9eaaaf2ffad5b3a4" } } ], "stars": 0, - "lastUpdateTimestamp": 1710624464000 + "lastUpdateTimestamp": 1710626107000 }, "cc-capped-stats": { "metadataCCMod": { From 46c7116a8d782bf8a97cc2c3759ec61d9884b19f Mon Sep 17 00:00:00 2001 From: krypek <115574014+krypciak@users.noreply.github.com> Date: Sun, 17 Mar 2024 17:18:02 +0000 Subject: [PATCH 121/196] CCBot New mod: localize-me (#122) * CCBot: ccbot/0 * CCBot: Fill 'localize-me' info --- input-locations.json | 3 ++- mods.json | 16 ++++++++++++++++ npDatabase.json | 40 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 58 insertions(+), 1 deletion(-) diff --git a/input-locations.json b/input-locations.json index d857d1ad..8e34c352 100644 --- a/input-locations.json +++ b/input-locations.json @@ -51,5 +51,6 @@ { "url": "https://github.com/krypciak/nax-module-cache/releases/download/v1.0.2/nax-module-cache.ccmod" }, { "url": "https://github.com/krypciak/nax-ccuilib/releases/download/v1.2.5/nax-ccuilib.ccmod" }, { "url": "https://github.com/CCDirectLink/CrossedEyes/releases/download/v0.5.8/crossedeyes-0.5.8.ccmod" }, - { "url": "https://github.com/XenonA7/xenons-triblader-mod/archive/refs/tags/1.0.1.zip" } + { "url": "https://github.com/XenonA7/xenons-triblader-mod/archive/refs/tags/1.0.1.zip" }, + { "url": "https://github.com/L-Sherry/Localize-me/archive/refs/tags/v0.6.1.zip" } ] diff --git a/mods.json b/mods.json index 083e8920..bf63b8d5 100644 --- a/mods.json +++ b/mods.json @@ -480,6 +480,22 @@ }, "version": "1.0.0" }, + "localize-me": { + "name": "Localize Me", + "description": "Add support for more locales, languages and translations", + "license": "MIT", + "page": [ + { + "name": "GitHub", + "url": "https://github.com/L-Sherry/Localize-Me" + } + ], + "archive_link": "https://github.com/L-Sherry/Localize-me/archive/refs/tags/v0.6.1.zip", + "hash": { + "sha256": "9929a522987ec0d7e32163708c089b353f48feeb1f1129ca97ef133bc56f80b6" + }, + "version": "0.6.1" + }, "lqm-joern-mod": { "name": "Lubkuluk's Joern and \\c[7]Quadroguard\\c[0] Mod \\i[party-BEHAVIOUR-1] (WIP)", "description": "Modifies Joern in a way Lubkuluk desires. \\c[1]Is in early access, expect some bugs.\\c[0]", diff --git a/npDatabase.json b/npDatabase.json index 0023e3c5..54539845 100644 --- a/npDatabase.json +++ b/npDatabase.json @@ -1047,6 +1047,46 @@ "stars": 1, "lastUpdateTimestamp": 1708374201000 }, + "localize-me": { + "metadataCCMod": { + "id": "localize-me", + "version": "0.6.1", + "title": { + "en_US": "Localize Me", + "fr_FR": "Régionalisez-Moi", + "de_DE": "Lokalisiert mich" + }, + "description": { + "en_US": "Add support for more locales, languages and translations", + "fr_FR": "Ajoute la gestion de plus de locales, de languages et de traductions", + "de_DE": "Fügt Unterstützung für mehr Lokalen, Sprachen und Übersetzungen hinzu", + "ru_RU": "Мод для создания дополнительных региональных настроек, языков и переводов" + }, + "license": "MIT", + "repository": "https://github.com/L-Sherry/Localize-Me", + "tags": [ + "library", + "language" + ], + "authors": [ + "L-Sherry", + "dmitmel" + ], + "postload": "mod.js" + }, + "installation": [ + { + "type": "zip", + "url": "https://github.com/L-Sherry/Localize-me/archive/refs/tags/v0.6.1.zip", + "source": "Localize-me-0.6.1", + "hash": { + "sha256": "9929a522987ec0d7e32163708c089b353f48feeb1f1129ca97ef133bc56f80b6" + } + } + ], + "stars": 5, + "lastUpdateTimestamp": 1710692661000 + }, "lqm-joern-mod": { "metadataCCMod": { "id": "lqm-joern-mod", From 74f77897ce02d8f5ba95cd5d3e8beefb9d6673f0 Mon Sep 17 00:00:00 2001 From: krypek <115574014+krypciak@users.noreply.github.com> Date: Sun, 17 Mar 2024 18:18:22 +0000 Subject: [PATCH 122/196] CCBot Update mod: ccmodmanager (#123) * CCBot: ccbot/0 * CCBot: Fill 'ccmodmanager' info --- input-locations.json | 2 +- mods.json | 6 +++--- npDatabase.json | 8 ++++---- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/input-locations.json b/input-locations.json index 8e34c352..ee5078f6 100644 --- a/input-locations.json +++ b/input-locations.json @@ -46,7 +46,7 @@ { "url": "https://github.com/CodeTriangle/CCMultiworldRandomizer/releases/download/0.4.1/CCMultiworldRandomizer-0.4.1.ccmod" }, { "url": "https://github.com/lubkuluk/lubkuluks-joern-mod/files/14393459/lubkuluks-joern-mod.zip" }, { "url": "https://github.com/canbora/cc-named-saves/releases/download/v1.0.1/cc-named-saves.ccmod" }, - { "url": "https://github.com/CCDirectLink/CCModManager/releases/download/v0.9.8/ccmodmanager-0.9.8.ccmod" }, + { "url": "https://github.com/CCDirectLink/CCModManager/releases/download/v0.9.9/ccmodmanager-0.9.9.ccmod" }, { "url": "https://github.com/buanjautista/cc-open-world/releases/download/0.3.2/cc-open-world.v0.3.2.ccmod" }, { "url": "https://github.com/krypciak/nax-module-cache/releases/download/v1.0.2/nax-module-cache.ccmod" }, { "url": "https://github.com/krypciak/nax-ccuilib/releases/download/v1.2.5/nax-ccuilib.ccmod" }, diff --git a/mods.json b/mods.json index bf63b8d5..2d9d447a 100644 --- a/mods.json +++ b/mods.json @@ -264,11 +264,11 @@ "url": "https://github.com/CCDirectLink/CCModManager" } ], - "archive_link": "https://github.com/CCDirectLink/CCModManager/releases/download/v0.9.8/ccmodmanager-0.9.8.ccmod", + "archive_link": "https://github.com/CCDirectLink/CCModManager/releases/download/v0.9.9/ccmodmanager-0.9.9.ccmod", "hash": { - "sha256": "81240f12d7909911dd0047148f5767324d808fea4fe2673fb0821946092b6fbd" + "sha256": "92893fb92a5cf3f7c3af24f6bf4185a85d82fea374b7de7c6199a68fc6355a35" }, - "version": "0.9.8" + "version": "0.9.9" }, "charged-balls": { "name": "Charged balls", diff --git a/npDatabase.json b/npDatabase.json index 54539845..029f7eb0 100644 --- a/npDatabase.json +++ b/npDatabase.json @@ -561,7 +561,7 @@ "ccmodmanager": { "metadataCCMod": { "id": "ccmodmanager", - "version": "0.9.8", + "version": "0.9.9", "title": "CCModManager", "description": "Mod manager for CrossCode!", "repository": "https://github.com/CCDirectLink/CCModManager", @@ -582,14 +582,14 @@ "installation": [ { "type": "zip", - "url": "https://github.com/CCDirectLink/CCModManager/releases/download/v0.9.8/ccmodmanager-0.9.8.ccmod", + "url": "https://github.com/CCDirectLink/CCModManager/releases/download/v0.9.9/ccmodmanager-0.9.9.ccmod", "hash": { - "sha256": "81240f12d7909911dd0047148f5767324d808fea4fe2673fb0821946092b6fbd" + "sha256": "92893fb92a5cf3f7c3af24f6bf4185a85d82fea374b7de7c6199a68fc6355a35" } } ], "stars": 0, - "lastUpdateTimestamp": 1710348421000 + "lastUpdateTimestamp": 1710699328000 }, "charged-balls": { "metadataCCMod": { From 5bc2e413c612e874b3d2799df656ca77975166c3 Mon Sep 17 00:00:00 2001 From: krypek <115574014+krypciak@users.noreply.github.com> Date: Sun, 17 Mar 2024 18:20:38 +0000 Subject: [PATCH 123/196] CCBot New mod: french (#124) * CCBot: ccbot/0 * CCBot: Fill 'french' info --- icons/french.png | Bin 0 -> 178 bytes input-locations.json | 3 ++- mods.json | 15 +++++++++++++++ npDatabase.json | 42 ++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 59 insertions(+), 1 deletion(-) create mode 100644 icons/french.png diff --git a/icons/french.png b/icons/french.png new file mode 100644 index 0000000000000000000000000000000000000000..684f9a40be79ca39b81135dacec53f4748038c55 GIT binary patch literal 178 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaN3?zjj6;1;w=>VS)S4AL$fgzbeOxSh_gV&^e zYR0o>&3b#_!2kdMSA1P%0hD7b3GxeOaCmkj4ajlzba4!kxSX7zz`TROkzJsLiP2NW z(b3{~;Ds9z0V2md&CJZ23u9VzC-FY4YO%gF!Qzyghs;+cmgO7w#4xS4J+h;hhk>DY Vo$VAc9d>t+)t;_?F6*2UngDhzHM#%* literal 0 HcmV?d00001 diff --git a/input-locations.json b/input-locations.json index ee5078f6..f2aeee3e 100644 --- a/input-locations.json +++ b/input-locations.json @@ -52,5 +52,6 @@ { "url": "https://github.com/krypciak/nax-ccuilib/releases/download/v1.2.5/nax-ccuilib.ccmod" }, { "url": "https://github.com/CCDirectLink/CrossedEyes/releases/download/v0.5.8/crossedeyes-0.5.8.ccmod" }, { "url": "https://github.com/XenonA7/xenons-triblader-mod/archive/refs/tags/1.0.1.zip" }, - { "url": "https://github.com/L-Sherry/Localize-me/archive/refs/tags/v0.6.1.zip" } + { "url": "https://github.com/L-Sherry/Localize-me/archive/refs/tags/v0.6.1.zip" }, + { "url": "https://github.com/L-Sherry/French-CC/releases/download/v1.5.0/French-CC-v1.5.0.ccmod" } ] diff --git a/mods.json b/mods.json index 2d9d447a..8a026d41 100644 --- a/mods.json +++ b/mods.json @@ -420,6 +420,21 @@ }, "version": "1.2.0" }, + "french": { + "name": "French", + "description": "CrossCode in french !", + "page": [ + { + "name": "GitHub", + "url": "https://github.com/L-Sherry/French-CC" + } + ], + "archive_link": "https://github.com/L-Sherry/French-CC/releases/download/v1.5.0/French-CC-v1.5.0.ccmod", + "hash": { + "sha256": "784ec246a62d901c0969b42c1b2fb95f51302db6aa54dc639cee00e55686844c" + }, + "version": "1.5.0" + }, "input-api": { "name": "input-api", "description": "Allows mods to add rebindable key bindings", diff --git a/npDatabase.json b/npDatabase.json index 029f7eb0..a7555ac1 100644 --- a/npDatabase.json +++ b/npDatabase.json @@ -880,6 +880,48 @@ "stars": 0, "lastUpdateTimestamp": 1708372178000 }, + "french": { + "metadataCCMod": { + "id": "french", + "version": "1.5.0", + "title": { + "en_US": "French", + "fr_FR": "Français", + "de_DE": "Französisch" + }, + "description": { + "en_US": "CrossCode in french !", + "fr_FR": "CrossCode en français !", + "de_DE": "CrossCode im Französisch !" + }, + "repository": "https://github.com/L-Sherry/French-CC", + "tags": [ + "language" + ], + "authors": [ + "L-Sherry", + "KevinBonnoron" + ], + "icons": { + "24": "flaglea.png" + }, + "dependencies": { + "localize-me": ">=0.5 <2" + }, + "postload": "mod.js" + }, + "installation": [ + { + "type": "zip", + "url": "https://github.com/L-Sherry/French-CC/releases/download/v1.5.0/French-CC-v1.5.0.ccmod", + "hash": { + "sha256": "784ec246a62d901c0969b42c1b2fb95f51302db6aa54dc639cee00e55686844c" + } + } + ], + "stars": 17, + "lastUpdateTimestamp": 1710697554000 + }, "input-api": { "metadataCCMod": { "id": "input-api", From 1154cb86dde8a8f0ae57e60a8698ccdaae990f3e Mon Sep 17 00:00:00 2001 From: krypek <115574014+krypciak@users.noreply.github.com> Date: Tue, 19 Mar 2024 21:39:51 +0000 Subject: [PATCH 124/196] CCBot Update mod: cc-vim (#125) * CCBot: ccbot/0 * CCBot: Fill 'cc-vim' info --- input-locations.json | 2 +- mods.json | 6 +++--- npDatabase.json | 8 ++++---- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/input-locations.json b/input-locations.json index f2aeee3e..f67b489a 100644 --- a/input-locations.json +++ b/input-locations.json @@ -16,7 +16,7 @@ { "url": "https://github.com/krypciak/cc-element-boss/releases/download/v0.1.3/element-boss-0.1.3.ccmod" }, { "url": "https://github.com/CCDirectLink/item-api/releases/download/v0.4.4/item-api.ccmod" }, { "url": "https://github.com/krypciak/cc-extra-dialogue/releases/download/v1.0.1/cc-extra-dialogue.ccmod" }, - { "url": "https://github.com/krypciak/cc-vim/releases/download/v1.5.9/cc-vim-1.5.9.ccmod" }, + { "url": "https://github.com/krypciak/cc-vim/releases/download/v1.6.0/cc-vim-1.6.0.ccmod" }, { "url": "https://github.com/Symphiel/CursedCode/archive/refs/tags/0.1.1-2.zip" }, { "url": "https://github.com/Pyrocorvid/CCNineRooms/archive/refs/tags/v1.0.2.zip", "source": "CCNineRooms-1.0.2/nine-rooms" }, { "url": "https://github.com/Pyrocorvid/CCNineRooms/archive/refs/tags/v1.0.2.zip", "source": "CCNineRooms-1.0.2/past-booster" }, diff --git a/mods.json b/mods.json index 8a026d41..117002ac 100644 --- a/mods.json +++ b/mods.json @@ -234,11 +234,11 @@ "url": "https://github.com/krypciak/cc-vim" } ], - "archive_link": "https://github.com/krypciak/cc-vim/releases/download/v1.5.9/cc-vim-1.5.9.ccmod", + "archive_link": "https://github.com/krypciak/cc-vim/releases/download/v1.6.0/cc-vim-1.6.0.ccmod", "hash": { - "sha256": "ec1d15248739379ff70844fd381c23b9ee20eab5ef1ba16753d47cb3dc170f46" + "sha256": "6e4e2aa1959f45c0a268a72328fc5c9d25bf997f6f67b8f7400d45de6c9d9539" }, - "version": "1.5.9" + "version": "1.6.0" }, "ccloader": { "name": "CCLoader", diff --git a/npDatabase.json b/npDatabase.json index a7555ac1..7ece2662 100644 --- a/npDatabase.json +++ b/npDatabase.json @@ -493,7 +493,7 @@ "cc-vim": { "metadataCCMod": { "id": "cc-vim", - "version": "1.5.9", + "version": "1.6.0", "title": "Vim Command Mode", "description": "Adds a popup command prompt", "repository": "https://github.com/krypciak/cc-vim", @@ -513,14 +513,14 @@ "installation": [ { "type": "zip", - "url": "https://github.com/krypciak/cc-vim/releases/download/v1.5.9/cc-vim-1.5.9.ccmod", + "url": "https://github.com/krypciak/cc-vim/releases/download/v1.6.0/cc-vim-1.6.0.ccmod", "hash": { - "sha256": "ec1d15248739379ff70844fd381c23b9ee20eab5ef1ba16753d47cb3dc170f46" + "sha256": "6e4e2aa1959f45c0a268a72328fc5c9d25bf997f6f67b8f7400d45de6c9d9539" } } ], "stars": 1, - "lastUpdateTimestamp": 1709462725000 + "lastUpdateTimestamp": 1710884225000 }, "ccloader": { "metadataCCMod": { From 2722b301125d3967f5cce956a23c5d0527899afe Mon Sep 17 00:00:00 2001 From: krypek Date: Tue, 19 Mar 2024 22:40:06 +0100 Subject: [PATCH 125/196] Update todo.md --- todo.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/todo.md b/todo.md index 782cd4a5..b2c7735f 100644 --- a/todo.md +++ b/todo.md @@ -74,8 +74,8 @@ ### Rest1 - ~~https://github.com/ZeikJT/CrossCodeCheats/pull/7~~ -- https://github.com/L-Sherry/Localize-me/pull/12 -- https://github.com/L-Sherry/French-CC/pull/19 +- ~~https://github.com/L-Sherry/Localize-me/pull/12~~ +- ~~https://github.com/L-Sherry/French-CC/pull/19~~ - https://github.com/L-Sherry/Bob-Rank/pull/1 - ~~https://github.com/rioreur/palicat/pull/3~~ - https://github.com/tylercamp/CCJoystickExt/pull/1 From ef13cef1dcb35abf90fb2cb6bc893e8d2887dbcd Mon Sep 17 00:00:00 2001 From: krypek <115574014+krypciak@users.noreply.github.com> Date: Wed, 27 Mar 2024 18:30:47 +0000 Subject: [PATCH 126/196] CCBot Update mod: cc-blitzkrieg (#126) * CCBot: ccbot/0 * CCBot: Fill 'cc-blitzkrieg' info --- input-locations.json | 2 +- mods.json | 6 +++--- npDatabase.json | 8 ++++---- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/input-locations.json b/input-locations.json index f67b489a..d70a938d 100644 --- a/input-locations.json +++ b/input-locations.json @@ -7,7 +7,7 @@ { "url": "https://github.com/CCDirectLink/CCLoader/archive/refs/tags/v2.23.2/v2.13.0.zip", "source": "CCLoader-2.23.2-v2.13.0/assets/mods/simplify" }, { "url": "https://github.com/CCDirectLink/CCLoader/archive/refs/tags/v2.23.2/v2.13.0.zip", "source": "CCLoader-2.23.2-v2.13.0/assets/mods/ccloader-version-display" }, { "url": "https://github.com/CCDirectLink/input-api/archive/refs/tags/v1.0.2.zip" }, - { "url": "https://github.com/krypciak/cc-blitzkrieg/releases/download/v0.5.4/cc-blitzkrieg-0.5.4.ccmod" }, + { "url": "https://github.com/krypciak/cc-blitzkrieg/releases/download/v0.5.5/cc-blitzkrieg-0.5.5.ccmod" }, { "url": "https://github.com/krypciak/cc-fancy-crash/releases/download/v1.0.8/cc-fancy-crash-1.0.8.ccmod" }, { "url": "https://github.com/CCDirectLink/Blades/archive/1.6.0.zip" }, { "url": "https://github.com/krypciak/cc-jetpack-widget/releases/download/v1.0.3/cc-jetpack-widget-1.0.3.ccmod" }, diff --git a/mods.json b/mods.json index 117002ac..8107c9e1 100644 --- a/mods.json +++ b/mods.json @@ -129,11 +129,11 @@ "url": "https://github.com/krypciak/cc-blitzkrieg" } ], - "archive_link": "https://github.com/krypciak/cc-blitzkrieg/releases/download/v0.5.4/cc-blitzkrieg-0.5.4.ccmod", + "archive_link": "https://github.com/krypciak/cc-blitzkrieg/releases/download/v0.5.5/cc-blitzkrieg-0.5.5.ccmod", "hash": { - "sha256": "5edec218c4f6140580445889f9807195a192d6d523d43c1d9eaaaf2ffad5b3a4" + "sha256": "8c01ea748ae38b6c8bf2d4c01ab6c80dd1bcedcae3beb411f46c8e6d007fa5c2" }, - "version": "0.5.4" + "version": "0.5.5" }, "cc-capped-stats": { "name": "Capped Stats", diff --git a/npDatabase.json b/npDatabase.json index 7ece2662..06d70231 100644 --- a/npDatabase.json +++ b/npDatabase.json @@ -272,7 +272,7 @@ "cc-blitzkrieg": { "metadataCCMod": { "id": "cc-blitzkrieg", - "version": "0.5.4", + "version": "0.5.5", "title": "Blitzkrieg (WIP)", "description": "Puzzle solving, incresed puzzle difficuly, puzzle and boss collection tools", "repository": "https://github.com/krypciak/cc-blitzkrieg", @@ -294,14 +294,14 @@ "installation": [ { "type": "zip", - "url": "https://github.com/krypciak/cc-blitzkrieg/releases/download/v0.5.4/cc-blitzkrieg-0.5.4.ccmod", + "url": "https://github.com/krypciak/cc-blitzkrieg/releases/download/v0.5.5/cc-blitzkrieg-0.5.5.ccmod", "hash": { - "sha256": "5edec218c4f6140580445889f9807195a192d6d523d43c1d9eaaaf2ffad5b3a4" + "sha256": "8c01ea748ae38b6c8bf2d4c01ab6c80dd1bcedcae3beb411f46c8e6d007fa5c2" } } ], "stars": 0, - "lastUpdateTimestamp": 1710626107000 + "lastUpdateTimestamp": 1711563934000 }, "cc-capped-stats": { "metadataCCMod": { From fa785d26b544090d31451e18af6bb8dcf875029a Mon Sep 17 00:00:00 2001 From: krypek <115574014+krypciak@users.noreply.github.com> Date: Wed, 27 Mar 2024 18:33:30 +0000 Subject: [PATCH 127/196] CCBot Update mod: crossedeyes (#127) * CCBot: ccbot/0 * CCBot: Fill 'crossedeyes' info --- input-locations.json | 2 +- mods.json | 6 +++--- npDatabase.json | 12 ++++++------ 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/input-locations.json b/input-locations.json index d70a938d..6bb8f219 100644 --- a/input-locations.json +++ b/input-locations.json @@ -50,7 +50,7 @@ { "url": "https://github.com/buanjautista/cc-open-world/releases/download/0.3.2/cc-open-world.v0.3.2.ccmod" }, { "url": "https://github.com/krypciak/nax-module-cache/releases/download/v1.0.2/nax-module-cache.ccmod" }, { "url": "https://github.com/krypciak/nax-ccuilib/releases/download/v1.2.5/nax-ccuilib.ccmod" }, - { "url": "https://github.com/CCDirectLink/CrossedEyes/releases/download/v0.5.8/crossedeyes-0.5.8.ccmod" }, + { "url": "https://github.com/CCDirectLink/CrossedEyes/releases/download/v0.5.9/crossedeyes-0.5.9.ccmod" }, { "url": "https://github.com/XenonA7/xenons-triblader-mod/archive/refs/tags/1.0.1.zip" }, { "url": "https://github.com/L-Sherry/Localize-me/archive/refs/tags/v0.6.1.zip" }, { "url": "https://github.com/L-Sherry/French-CC/releases/download/v1.5.0/French-CC-v1.5.0.ccmod" } diff --git a/mods.json b/mods.json index 8107c9e1..358719d0 100644 --- a/mods.json +++ b/mods.json @@ -324,11 +324,11 @@ "url": "https://github.com/CCDirectLink/CrossedEyes" } ], - "archive_link": "https://github.com/CCDirectLink/CrossedEyes/releases/download/v0.5.8/crossedeyes-0.5.8.ccmod", + "archive_link": "https://github.com/CCDirectLink/CrossedEyes/releases/download/v0.5.9/crossedeyes-0.5.9.ccmod", "hash": { - "sha256": "3544e841fec47f605f2a568df063acc03ebcfd4ef5a67e9dea766eaa670cfe32" + "sha256": "b46de2e73642bec1149750ba023e467965aca9ae12504218c5f6e37cf9293cd2" }, - "version": "0.5.8" + "version": "0.5.9" }, "cursedcode": { "name": "CursedCode", diff --git a/npDatabase.json b/npDatabase.json index 06d70231..d737b384 100644 --- a/npDatabase.json +++ b/npDatabase.json @@ -683,7 +683,7 @@ "crossedeyes": { "metadataCCMod": { "id": "crossedeyes", - "version": "0.5.8", + "version": "0.5.9", "title": "CrossedEyes", "description": "Accessibility mod for CrossCode", "repository": "https://github.com/CCDirectLink/CrossedEyes", @@ -699,9 +699,9 @@ }, "dependencies": { "input-api": ">=1.0.0", - "cc-blitzkrieg": ">=0.5.2", + "cc-blitzkrieg": ">=0.5.5", "nax-ccuilib": ">=1.2.5", - "ccmodmanager": ">=0.9.8", + "ccmodmanager": ">=0.9.9", "crosscode": ">=1.4.0" }, "plugin": "plugin.js" @@ -709,14 +709,14 @@ "installation": [ { "type": "zip", - "url": "https://github.com/CCDirectLink/CrossedEyes/releases/download/v0.5.8/crossedeyes-0.5.8.ccmod", + "url": "https://github.com/CCDirectLink/CrossedEyes/releases/download/v0.5.9/crossedeyes-0.5.9.ccmod", "hash": { - "sha256": "3544e841fec47f605f2a568df063acc03ebcfd4ef5a67e9dea766eaa670cfe32" + "sha256": "b46de2e73642bec1149750ba023e467965aca9ae12504218c5f6e37cf9293cd2" } } ], "stars": 9, - "lastUpdateTimestamp": 1710348605000 + "lastUpdateTimestamp": 1711564011000 }, "cursedcode": { "metadataCCMod": { From abdda562d864cd0a24a6d0768b8a3b045f1eb760 Mon Sep 17 00:00:00 2001 From: krypek Date: Mon, 1 Apr 2024 10:11:11 +0000 Subject: [PATCH 128/196] CCBot Update mod: nax-ccuilib (#128) * CCBot: ccbot/0 * CCBot: Fill 'nax-ccuilib' info --- input-locations.json | 2 +- mods.json | 6 +++--- npDatabase.json | 9 +++++---- 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/input-locations.json b/input-locations.json index 6bb8f219..405d0e8c 100644 --- a/input-locations.json +++ b/input-locations.json @@ -49,7 +49,7 @@ { "url": "https://github.com/CCDirectLink/CCModManager/releases/download/v0.9.9/ccmodmanager-0.9.9.ccmod" }, { "url": "https://github.com/buanjautista/cc-open-world/releases/download/0.3.2/cc-open-world.v0.3.2.ccmod" }, { "url": "https://github.com/krypciak/nax-module-cache/releases/download/v1.0.2/nax-module-cache.ccmod" }, - { "url": "https://github.com/krypciak/nax-ccuilib/releases/download/v1.2.5/nax-ccuilib.ccmod" }, + { "url": "https://github.com/krypciak/nax-ccuilib/releases/download/v1.2.6/nax-ccuilib.ccmod" }, { "url": "https://github.com/CCDirectLink/CrossedEyes/releases/download/v0.5.9/crossedeyes-0.5.9.ccmod" }, { "url": "https://github.com/XenonA7/xenons-triblader-mod/archive/refs/tags/1.0.1.zip" }, { "url": "https://github.com/L-Sherry/Localize-me/archive/refs/tags/v0.6.1.zip" }, diff --git a/mods.json b/mods.json index 358719d0..2fb1b2b5 100644 --- a/mods.json +++ b/mods.json @@ -595,11 +595,11 @@ "url": "https://github.com/conorlawton/nax-ccuilib" } ], - "archive_link": "https://github.com/krypciak/nax-ccuilib/releases/download/v1.2.5/nax-ccuilib.ccmod", + "archive_link": "https://github.com/krypciak/nax-ccuilib/releases/download/v1.2.6/nax-ccuilib.ccmod", "hash": { - "sha256": "7576c7c587ac129b1c09c584af280fc4806f8daeae788e0119d17eca28b391b3" + "sha256": "77a57af942c9058074bb794f538118ea98b18513fe20c7dd674524c3cb3e2a67" }, - "version": "1.2.5" + "version": "1.2.6" }, "nax-module-cache": { "name": "Module Cache", diff --git a/npDatabase.json b/npDatabase.json index d737b384..593b6900 100644 --- a/npDatabase.json +++ b/npDatabase.json @@ -1289,17 +1289,18 @@ } } ], - "stars": 2, + "stars": 3, "lastUpdateTimestamp": 1709924111000 }, "nax-ccuilib": { "metadataCCMod": { "id": "nax-ccuilib", - "version": "1.2.5", + "version": "1.2.6", "title": "CCUILib", "description": "Library of additional UI elements as well as making existing ones configurable", "repository": "https://github.com/conorlawton/nax-ccuilib", "tags": [ + "QoL", "library" ], "authors": [ @@ -1314,9 +1315,9 @@ "installation": [ { "type": "zip", - "url": "https://github.com/krypciak/nax-ccuilib/releases/download/v1.2.5/nax-ccuilib.ccmod", + "url": "https://github.com/krypciak/nax-ccuilib/releases/download/v1.2.6/nax-ccuilib.ccmod", "hash": { - "sha256": "7576c7c587ac129b1c09c584af280fc4806f8daeae788e0119d17eca28b391b3" + "sha256": "77a57af942c9058074bb794f538118ea98b18513fe20c7dd674524c3cb3e2a67" } } ], From 679edb385df7dd7791c459db611298390eaff52b Mon Sep 17 00:00:00 2001 From: krypek Date: Mon, 1 Apr 2024 10:13:20 +0000 Subject: [PATCH 129/196] CCBot New mod: bobrank (#129) * CCBot: ccbot/0 * CCBot: Fill 'bobrank' info --- icons/bobrank.png | Bin 0 -> 291 bytes input-locations.json | 3 ++- mods.json | 15 +++++++++++++++ npDatabase.json | 39 +++++++++++++++++++++++++++++++++++++++ 4 files changed, 56 insertions(+), 1 deletion(-) create mode 100644 icons/bobrank.png diff --git a/icons/bobrank.png b/icons/bobrank.png new file mode 100644 index 0000000000000000000000000000000000000000..ebdd51e282841594ccb8152ef687b590920e452c GIT binary patch literal 291 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaN3?zjj6;1;w^#Gp`S0K&H!y_eWBr7egrSGS2 zXz1?l?&On~T0Cje!kx#@-~III)BpefYgPpd0hKbA1o;IsI6S+N2IQ>rba4!kxIDMt zkn50xfNQ%1f1>oI2>m4OT@zvy+&75pq}d)k6UF`R8O!d;!Yihl7f%-OOn$un-{XS@ z@(`zVl+d=l9mzIdn%*njHQuRm&(34V9=V Date: Mon, 1 Apr 2024 10:33:57 +0000 Subject: [PATCH 130/196] CCBot New mod: arcane-lab (#130) * CCBot: ccbot/0 * CCBot: Fill 'arcane-lab' info --- input-locations.json | 3 ++- mods.json | 15 +++++++++++++++ npDatabase.json | 38 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 55 insertions(+), 1 deletion(-) diff --git a/input-locations.json b/input-locations.json index e9d8d82d..b009fa7f 100644 --- a/input-locations.json +++ b/input-locations.json @@ -54,5 +54,6 @@ { "url": "https://github.com/XenonA7/xenons-triblader-mod/archive/refs/tags/1.0.1.zip" }, { "url": "https://github.com/L-Sherry/Localize-me/archive/refs/tags/v0.6.1.zip" }, { "url": "https://github.com/L-Sherry/French-CC/releases/download/v1.5.0/French-CC-v1.5.0.ccmod" }, - { "url": "https://github.com/L-Sherry/Bob-Rank/archive/refs/heads/main.zip" } + { "url": "https://github.com/L-Sherry/Bob-Rank/archive/refs/heads/main.zip" }, + { "url": "https://github.com/krypciak/ArcaneLab/releases/download/v0.1.7/arcane-lab-0.1.7.ccmod" } ] diff --git a/mods.json b/mods.json index d0bcd146..f42ea12b 100644 --- a/mods.json +++ b/mods.json @@ -105,6 +105,21 @@ }, "version": "2.13.0" }, + "arcane-lab": { + "name": "\\c[3]Arcane Lab\\c[0]", + "description": ":)", + "page": [ + { + "name": "GitHub", + "url": "https://github.com/2hh8899/ArcaneLab" + } + ], + "archive_link": "https://github.com/krypciak/ArcaneLab/releases/download/v0.1.7/arcane-lab-0.1.7.ccmod", + "hash": { + "sha256": "cfe597c5878a37b8a1f3ea37b3185c04cf2c65a47da3fbaedc7f7fd5d8be3bd7" + }, + "version": "0.1.7" + }, "blades": { "name": "Blades", "description": "Asset which replaces balls with blades, now for all classes!", diff --git a/npDatabase.json b/npDatabase.json index 7dabfb51..3eafeeea 100644 --- a/npDatabase.json +++ b/npDatabase.json @@ -240,6 +240,44 @@ "stars": 31, "lastUpdateTimestamp": 1710069756000 }, + "arcane-lab": { + "metadataCCMod": { + "id": "arcane-lab", + "version": "0.1.7", + "title": "\\c[3]Arcane Lab\\c[0]", + "description": ":)", + "repository": "https://github.com/2hh8899/ArcaneLab", + "tags": [ + "player character", + "party member", + "maps", + "quests", + "boss", + "puzzle" + ], + "authors": [ + "eisus", + "ac2pic", + "WatDuhHekBro" + ], + "dependencies": { + "ccloader": "^2.14.1", + "extendable-severed-heads": "^1.0.0" + }, + "prestart": "prestart.js" + }, + "installation": [ + { + "type": "zip", + "url": "https://github.com/krypciak/ArcaneLab/releases/download/v0.1.7/arcane-lab-0.1.7.ccmod", + "hash": { + "sha256": "cfe597c5878a37b8a1f3ea37b3185c04cf2c65a47da3fbaedc7f7fd5d8be3bd7" + } + } + ], + "stars": 8, + "lastUpdateTimestamp": 1581799284000 + }, "blades": { "metadataCCMod": { "id": "blades", From 24bd4c4a381cbac49e7af6c3f1f3c9d7d5d62e1f Mon Sep 17 00:00:00 2001 From: krypek Date: Tue, 2 Apr 2024 11:05:24 +0200 Subject: [PATCH 131/196] Update bobrank to use the release build --- input-locations.json | 2 +- mods.json | 6 +++--- npDatabase.json | 9 ++++----- 3 files changed, 8 insertions(+), 9 deletions(-) diff --git a/input-locations.json b/input-locations.json index b009fa7f..72504533 100644 --- a/input-locations.json +++ b/input-locations.json @@ -54,6 +54,6 @@ { "url": "https://github.com/XenonA7/xenons-triblader-mod/archive/refs/tags/1.0.1.zip" }, { "url": "https://github.com/L-Sherry/Localize-me/archive/refs/tags/v0.6.1.zip" }, { "url": "https://github.com/L-Sherry/French-CC/releases/download/v1.5.0/French-CC-v1.5.0.ccmod" }, - { "url": "https://github.com/L-Sherry/Bob-Rank/archive/refs/heads/main.zip" }, + { "url": "https://github.com/L-Sherry/Bob-Rank/releases/download/v1.0.1/Bob-Rank-v1.0.1.ccmod" }, { "url": "https://github.com/krypciak/ArcaneLab/releases/download/v0.1.7/arcane-lab-0.1.7.ccmod" } ] diff --git a/mods.json b/mods.json index f42ea12b..fcb48b70 100644 --- a/mods.json +++ b/mods.json @@ -144,11 +144,11 @@ "url": "https://github.com/L-Sherry/Bob-Rank" } ], - "archive_link": "https://github.com/L-Sherry/Bob-Rank/archive/refs/heads/main.zip", + "archive_link": "https://github.com/L-Sherry/Bob-Rank/releases/download/v1.0.1/Bob-Rank-v1.0.1.ccmod", "hash": { - "sha256": "d87c2f247c92fcb240208965960e5e8a551ab3d2d2b0d0cfba5857c243371dfe" + "sha256": "8de4833b0c42f8089cf6c13f5131f8cf3c6bd637516d56e1aaa4f1b81a894dbd" }, - "version": "1.0.1-beta" + "version": "1.0.1" }, "cc-blitzkrieg": { "name": "Blitzkrieg (WIP)", diff --git a/npDatabase.json b/npDatabase.json index 3eafeeea..f2bae4fd 100644 --- a/npDatabase.json +++ b/npDatabase.json @@ -310,7 +310,7 @@ "bobrank": { "metadataCCMod": { "id": "bobrank", - "version": "1.0.1-beta", + "version": "1.0.1", "title": { "en_US": "Bob-Rank", "fr_FR": "Rang Bob", @@ -336,15 +336,14 @@ "installation": [ { "type": "zip", - "url": "https://github.com/L-Sherry/Bob-Rank/archive/refs/heads/main.zip", - "source": "Bob-Rank-main", + "url": "https://github.com/L-Sherry/Bob-Rank/releases/download/v1.0.1/Bob-Rank-v1.0.1.ccmod", "hash": { - "sha256": "d87c2f247c92fcb240208965960e5e8a551ab3d2d2b0d0cfba5857c243371dfe" + "sha256": "8de4833b0c42f8089cf6c13f5131f8cf3c6bd637516d56e1aaa4f1b81a894dbd" } } ], "stars": 2, - "lastUpdateTimestamp": 1711911112000 + "lastUpdateTimestamp": 1711969075000 }, "cc-blitzkrieg": { "metadataCCMod": { From 1ecf660e9c94550d841acab60055a401b91c2ea3 Mon Sep 17 00:00:00 2001 From: krypek Date: Tue, 2 Apr 2024 11:05:30 +0200 Subject: [PATCH 132/196] Update todo.md --- todo.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/todo.md b/todo.md index b2c7735f..5ea08672 100644 --- a/todo.md +++ b/todo.md @@ -45,7 +45,7 @@ ### Xenon - ~~https://github.com/XenonA7/qine/pull/1~~ -- https://github.com/XenonA7/xenons-triblader-mod/pull/12 +- ~~https://github.com/XenonA7/xenons-triblader-mod/pull/12~~ - ~~https://github.com/XenonA7/xmc-hexacast/pull/3~~ - ~~https://github.com/XenonA7/cc-party-element-effects/pull/2~~ - ~~https://github.com/XenonA7/xmc-hexacast-litter/pull/1~~ @@ -60,7 +60,7 @@ - ~~https://github.com/Symphiel/CursedCode/pull/1~~ - https://github.com/Hsifnus/autumns-genesis/pull/35 -- https://github.com/2hh8899/ArcaneLab/pull/19 +- ~~https://github.com/2hh8899/ArcaneLab/pull/19~~ - ~~https://github.com/CodeTriangle/CCMultiworldRandomizer/pull/10~~ ## PR's in progress but probably never merging (will need to make release on my fork if not merged) @@ -76,7 +76,7 @@ - ~~https://github.com/ZeikJT/CrossCodeCheats/pull/7~~ - ~~https://github.com/L-Sherry/Localize-me/pull/12~~ - ~~https://github.com/L-Sherry/French-CC/pull/19~~ -- https://github.com/L-Sherry/Bob-Rank/pull/1 +- ~~https://github.com/L-Sherry/Bob-Rank/pull/1~~ - ~~https://github.com/rioreur/palicat/pull/3~~ - https://github.com/tylercamp/CCJoystickExt/pull/1 - https://github.com/ubergeek77/CCExtraGamepadOptions/pull/3 From 9dca19d1d420fda20b52b43453a47aae6b3f6e11 Mon Sep 17 00:00:00 2001 From: krypek Date: Sat, 20 Apr 2024 15:25:45 +0000 Subject: [PATCH 133/196] CCBot Update mod: ccmodmanager (#131) * CCBot: ccbot/0 * CCBot: Fill 'ccmodmanager' info --- input-locations.json | 2 +- mods.json | 6 +++--- npDatabase.json | 10 +++++----- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/input-locations.json b/input-locations.json index 72504533..186a0bab 100644 --- a/input-locations.json +++ b/input-locations.json @@ -46,7 +46,7 @@ { "url": "https://github.com/CodeTriangle/CCMultiworldRandomizer/releases/download/0.4.1/CCMultiworldRandomizer-0.4.1.ccmod" }, { "url": "https://github.com/lubkuluk/lubkuluks-joern-mod/files/14393459/lubkuluks-joern-mod.zip" }, { "url": "https://github.com/canbora/cc-named-saves/releases/download/v1.0.1/cc-named-saves.ccmod" }, - { "url": "https://github.com/CCDirectLink/CCModManager/releases/download/v0.9.9/ccmodmanager-0.9.9.ccmod" }, + { "url": "https://github.com/CCDirectLink/CCModManager/releases/download/v0.9.10/ccmodmanager-0.9.10.ccmod" }, { "url": "https://github.com/buanjautista/cc-open-world/releases/download/0.3.2/cc-open-world.v0.3.2.ccmod" }, { "url": "https://github.com/krypciak/nax-module-cache/releases/download/v1.0.2/nax-module-cache.ccmod" }, { "url": "https://github.com/krypciak/nax-ccuilib/releases/download/v1.2.6/nax-ccuilib.ccmod" }, diff --git a/mods.json b/mods.json index fcb48b70..d3004ad5 100644 --- a/mods.json +++ b/mods.json @@ -294,11 +294,11 @@ "url": "https://github.com/CCDirectLink/CCModManager" } ], - "archive_link": "https://github.com/CCDirectLink/CCModManager/releases/download/v0.9.9/ccmodmanager-0.9.9.ccmod", + "archive_link": "https://github.com/CCDirectLink/CCModManager/releases/download/v0.9.10/ccmodmanager-0.9.10.ccmod", "hash": { - "sha256": "92893fb92a5cf3f7c3af24f6bf4185a85d82fea374b7de7c6199a68fc6355a35" + "sha256": "8916aabad418291c17629030150d6ac7a7fc6b26567942a031f4027262a65103" }, - "version": "0.9.9" + "version": "0.9.10" }, "charged-balls": { "name": "Charged balls", diff --git a/npDatabase.json b/npDatabase.json index f2bae4fd..37fd776e 100644 --- a/npDatabase.json +++ b/npDatabase.json @@ -473,7 +473,7 @@ } } ], - "stars": 6, + "stars": 5, "lastUpdateTimestamp": 1708512075000 }, "cc-extra-dialogue": { @@ -637,7 +637,7 @@ "ccmodmanager": { "metadataCCMod": { "id": "ccmodmanager", - "version": "0.9.9", + "version": "0.9.10", "title": "CCModManager", "description": "Mod manager for CrossCode!", "repository": "https://github.com/CCDirectLink/CCModManager", @@ -658,14 +658,14 @@ "installation": [ { "type": "zip", - "url": "https://github.com/CCDirectLink/CCModManager/releases/download/v0.9.9/ccmodmanager-0.9.9.ccmod", + "url": "https://github.com/CCDirectLink/CCModManager/releases/download/v0.9.10/ccmodmanager-0.9.10.ccmod", "hash": { - "sha256": "92893fb92a5cf3f7c3af24f6bf4185a85d82fea374b7de7c6199a68fc6355a35" + "sha256": "8916aabad418291c17629030150d6ac7a7fc6b26567942a031f4027262a65103" } } ], "stars": 0, - "lastUpdateTimestamp": 1710699328000 + "lastUpdateTimestamp": 1713626436000 }, "charged-balls": { "metadataCCMod": { From f00f7761604c6a9eec062bafcb578c238352db7a Mon Sep 17 00:00:00 2001 From: krypek Date: Sat, 20 Apr 2024 21:57:21 +0000 Subject: [PATCH 134/196] CCBot Update mod: crossedeyes (#132) * CCBot: ccbot/0 * CCBot: Fill 'crossedeyes' info --- input-locations.json | 2 +- mods.json | 6 +++--- npDatabase.json | 12 ++++++------ 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/input-locations.json b/input-locations.json index 186a0bab..187525a5 100644 --- a/input-locations.json +++ b/input-locations.json @@ -50,7 +50,7 @@ { "url": "https://github.com/buanjautista/cc-open-world/releases/download/0.3.2/cc-open-world.v0.3.2.ccmod" }, { "url": "https://github.com/krypciak/nax-module-cache/releases/download/v1.0.2/nax-module-cache.ccmod" }, { "url": "https://github.com/krypciak/nax-ccuilib/releases/download/v1.2.6/nax-ccuilib.ccmod" }, - { "url": "https://github.com/CCDirectLink/CrossedEyes/releases/download/v0.5.9/crossedeyes-0.5.9.ccmod" }, + { "url": "https://github.com/CCDirectLink/CrossedEyes/releases/download/v0.6.0/crossedeyes-0.6.0.ccmod" }, { "url": "https://github.com/XenonA7/xenons-triblader-mod/archive/refs/tags/1.0.1.zip" }, { "url": "https://github.com/L-Sherry/Localize-me/archive/refs/tags/v0.6.1.zip" }, { "url": "https://github.com/L-Sherry/French-CC/releases/download/v1.5.0/French-CC-v1.5.0.ccmod" }, diff --git a/mods.json b/mods.json index d3004ad5..fcafe5d0 100644 --- a/mods.json +++ b/mods.json @@ -354,11 +354,11 @@ "url": "https://github.com/CCDirectLink/CrossedEyes" } ], - "archive_link": "https://github.com/CCDirectLink/CrossedEyes/releases/download/v0.5.9/crossedeyes-0.5.9.ccmod", + "archive_link": "https://github.com/CCDirectLink/CrossedEyes/releases/download/v0.6.0/crossedeyes-0.6.0.ccmod", "hash": { - "sha256": "b46de2e73642bec1149750ba023e467965aca9ae12504218c5f6e37cf9293cd2" + "sha256": "155374792533e37fe0d24f372e2a06f910367d55f58d11d9602ca155857a5407" }, - "version": "0.5.9" + "version": "0.6.0" }, "cursedcode": { "name": "CursedCode", diff --git a/npDatabase.json b/npDatabase.json index 37fd776e..e68228e6 100644 --- a/npDatabase.json +++ b/npDatabase.json @@ -759,7 +759,7 @@ "crossedeyes": { "metadataCCMod": { "id": "crossedeyes", - "version": "0.5.9", + "version": "0.6.0", "title": "CrossedEyes", "description": "Accessibility mod for CrossCode", "repository": "https://github.com/CCDirectLink/CrossedEyes", @@ -776,8 +776,8 @@ "dependencies": { "input-api": ">=1.0.0", "cc-blitzkrieg": ">=0.5.5", - "nax-ccuilib": ">=1.2.5", - "ccmodmanager": ">=0.9.9", + "nax-ccuilib": ">=1.2.6", + "ccmodmanager": ">=0.9.10", "crosscode": ">=1.4.0" }, "plugin": "plugin.js" @@ -785,14 +785,14 @@ "installation": [ { "type": "zip", - "url": "https://github.com/CCDirectLink/CrossedEyes/releases/download/v0.5.9/crossedeyes-0.5.9.ccmod", + "url": "https://github.com/CCDirectLink/CrossedEyes/releases/download/v0.6.0/crossedeyes-0.6.0.ccmod", "hash": { - "sha256": "b46de2e73642bec1149750ba023e467965aca9ae12504218c5f6e37cf9293cd2" + "sha256": "155374792533e37fe0d24f372e2a06f910367d55f58d11d9602ca155857a5407" } } ], "stars": 9, - "lastUpdateTimestamp": 1711564011000 + "lastUpdateTimestamp": 1713650089000 }, "cursedcode": { "metadataCCMod": { From ca1e81bb6e90c67f7e6448d97ac8a0b0a5b556af Mon Sep 17 00:00:00 2001 From: krypek Date: Sun, 21 Apr 2024 00:13:17 +0200 Subject: [PATCH 135/196] Update crossedeyes hash --- mods.json | 2 +- npDatabase.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/mods.json b/mods.json index fcafe5d0..200d8438 100644 --- a/mods.json +++ b/mods.json @@ -356,7 +356,7 @@ ], "archive_link": "https://github.com/CCDirectLink/CrossedEyes/releases/download/v0.6.0/crossedeyes-0.6.0.ccmod", "hash": { - "sha256": "155374792533e37fe0d24f372e2a06f910367d55f58d11d9602ca155857a5407" + "sha256": "ca53cf3ce335dc0511cbc895cb54279785e63cf87d45576179954f663abf0d24" }, "version": "0.6.0" }, diff --git a/npDatabase.json b/npDatabase.json index e68228e6..6ada65b0 100644 --- a/npDatabase.json +++ b/npDatabase.json @@ -787,7 +787,7 @@ "type": "zip", "url": "https://github.com/CCDirectLink/CrossedEyes/releases/download/v0.6.0/crossedeyes-0.6.0.ccmod", "hash": { - "sha256": "155374792533e37fe0d24f372e2a06f910367d55f58d11d9602ca155857a5407" + "sha256": "ca53cf3ce335dc0511cbc895cb54279785e63cf87d45576179954f663abf0d24" } } ], From aac93c7c4a319630d566136b4b6b96870187e6d2 Mon Sep 17 00:00:00 2001 From: krypek Date: Sun, 21 Apr 2024 00:33:59 +0200 Subject: [PATCH 136/196] Update crossedeyes hash (again :sob:) --- mods.json | 2 +- npDatabase.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/mods.json b/mods.json index 200d8438..c1e45e6b 100644 --- a/mods.json +++ b/mods.json @@ -356,7 +356,7 @@ ], "archive_link": "https://github.com/CCDirectLink/CrossedEyes/releases/download/v0.6.0/crossedeyes-0.6.0.ccmod", "hash": { - "sha256": "ca53cf3ce335dc0511cbc895cb54279785e63cf87d45576179954f663abf0d24" + "sha256": "58bc3afd39aebb0ac99ac7f126b5e4ac7c245310f4addee41387438c37e49d9f" }, "version": "0.6.0" }, diff --git a/npDatabase.json b/npDatabase.json index 6ada65b0..7e462879 100644 --- a/npDatabase.json +++ b/npDatabase.json @@ -787,7 +787,7 @@ "type": "zip", "url": "https://github.com/CCDirectLink/CrossedEyes/releases/download/v0.6.0/crossedeyes-0.6.0.ccmod", "hash": { - "sha256": "ca53cf3ce335dc0511cbc895cb54279785e63cf87d45576179954f663abf0d24" + "sha256": "58bc3afd39aebb0ac99ac7f126b5e4ac7c245310f4addee41387438c37e49d9f" } } ], From a86daa19dc63b82c8a75c83c0908ea08ddae05a3 Mon Sep 17 00:00:00 2001 From: krypek Date: Thu, 25 Apr 2024 15:38:06 +0200 Subject: [PATCH 137/196] Move package.json from /build/ to / --- build/src/cache.ts | 4 ++-- build/src/db.ts | 4 ++-- build/src/inputLocations.ts | 2 +- build/src/main.ts | 2 +- build/src/source.ts | 2 +- build/tests/dbBuilt.mjs | 4 ++-- build/tests/input.mjs | 4 ++-- build/tests/moddb.mjs | 2 +- build/tests/npDatabase.mjs | 4 ++-- build/tests/toolsdb.mjs | 2 +- build/package-lock.json => package-lock.json | 0 build/package.json => package.json | 6 +++--- build/tsconfig.json => tsconfig.json | 4 ++-- 13 files changed, 20 insertions(+), 20 deletions(-) rename build/package-lock.json => package-lock.json (100%) rename build/package.json => package.json (83%) rename build/tsconfig.json => tsconfig.json (97%) diff --git a/build/src/cache.ts b/build/src/cache.ts index 00f34ec1..4519c636 100644 --- a/build/src/cache.ts +++ b/build/src/cache.ts @@ -49,11 +49,11 @@ export async function has(tag: string): Promise { } function createDir(): Promise { - return new Promise(resolve => fs.mkdir('./cache/', () => resolve())) + return new Promise(resolve => fs.mkdir('./build/cache/', () => resolve())) } function file(tag: string): string { - return './cache/' + hash(tag) + '.cache' + return './build/cache/' + hash(tag) + '.cache' } function hash(tag: string): string { diff --git a/build/src/db.ts b/build/src/db.ts index 0cc58610..153755a8 100644 --- a/build/src/db.ts +++ b/build/src/db.ts @@ -37,7 +37,7 @@ export async function build(packages: ModMetadatasInput[], oldDb?: PackageDB): P export async function write(db: PackageDB): Promise { return new Promise((resolve, reject) => { - fs.writeFile('../npDatabase.json', JSON.stringify(db, null, 4), err => { + fs.writeFile('./npDatabase.json', JSON.stringify(db, null, 4), err => { if (err) { return reject(err) } @@ -75,7 +75,7 @@ export async function writeMods(db: PackageDB): Promise { } return new Promise((resolve, reject) => { - fs.writeFile('../mods.json', JSON.stringify({ mods }, null, 4), err => { + fs.writeFile('./mods.json', JSON.stringify({ mods }, null, 4), err => { if (err) { return reject(err) } diff --git a/build/src/inputLocations.ts b/build/src/inputLocations.ts index 26c19213..c58ccf68 100644 --- a/build/src/inputLocations.ts +++ b/build/src/inputLocations.ts @@ -6,7 +6,7 @@ export async function parse(): Promise { function read(): Promise { return new Promise((resolve, reject) => { - fs.readFile('../input-locations.json', (err, data) => { + fs.readFile('./input-locations.json', (err, data) => { if (err) { reject(err) } diff --git a/build/src/main.ts b/build/src/main.ts index 3eeddd92..dfb0dd6b 100644 --- a/build/src/main.ts +++ b/build/src/main.ts @@ -15,7 +15,7 @@ async function main() { } const packages = await Promise.all(promises) - const oldPkgDb: PackageDB | undefined = fs.existsSync('../npDatabase.json') ? JSON.parse(fs.readFileSync('../npDatabase.json').toString()) : undefined + const oldPkgDb: PackageDB | undefined = fs.existsSync('./npDatabase.json') ? JSON.parse(fs.readFileSync('./npDatabase.json').toString()) : undefined const pkgDb = await db.build(packages, oldPkgDb) await db.write(pkgDb) await db.writeMods(pkgDb) diff --git a/build/src/source.ts b/build/src/source.ts index 01ac2158..307ccba7 100644 --- a/build/src/source.ts +++ b/build/src/source.ts @@ -35,7 +35,7 @@ export async function get(input: InputLocation): Promise { const iconPath = getModIconPath(pkg) if (iconPath) { const imgData = await fileFetchFunc(input, iconPath, false) - fs.writeFile(`../icons/${pkg.ccmod!.id}.png`, imgData, err => { + fs.writeFile(`./icons/${pkg.ccmod!.id}.png`, imgData, err => { if (err) throw err }) } diff --git a/build/tests/dbBuilt.mjs b/build/tests/dbBuilt.mjs index 0d0bc7b5..4ecd60de 100644 --- a/build/tests/dbBuilt.mjs +++ b/build/tests/dbBuilt.mjs @@ -5,8 +5,8 @@ import { expect } from 'chai' import fs from 'fs'; describe('ModDB', () => { - const FILE_INPUT = '../input-locations.json'; - const FILE_PNP = '../npDatabase.json'; + const FILE_INPUT = './input-locations.json'; + const FILE_PNP = './npDatabase.json'; const jsonInput = JSON.parse(fs.readFileSync(FILE_INPUT, 'utf8')); const jsonPnp = JSON.parse(fs.readFileSync(FILE_PNP, 'utf8')); diff --git a/build/tests/input.mjs b/build/tests/input.mjs index 3c62ca63..61b4a9c2 100644 --- a/build/tests/input.mjs +++ b/build/tests/input.mjs @@ -3,10 +3,10 @@ import { expect } from 'chai'; import fs from 'fs'; -import {download, streamToBuffer} from '../dist/download.js'; +import {download, streamToBuffer} from '../dist/src/download.js'; describe('InputLocations', () => { - const FILE_PATH = '../input-locations.json'; + const FILE_PATH = './input-locations.json'; const jsonData = JSON.parse(fs.readFileSync(FILE_PATH, 'utf8')); it('Check json structure', () => { diff --git a/build/tests/moddb.mjs b/build/tests/moddb.mjs index e08895a9..6871f887 100644 --- a/build/tests/moddb.mjs +++ b/build/tests/moddb.mjs @@ -6,7 +6,7 @@ import fs from 'fs'; describe('ModDB', () => { - const FILE_PATH = '../mods.json'; + const FILE_PATH = './mods.json'; const jsonData = JSON.parse(fs.readFileSync(FILE_PATH, 'utf8')); it('Check json structure', () => { diff --git a/build/tests/npDatabase.mjs b/build/tests/npDatabase.mjs index 49c463c7..7382ad09 100644 --- a/build/tests/npDatabase.mjs +++ b/build/tests/npDatabase.mjs @@ -5,11 +5,11 @@ import { expect } from 'chai'; import fs from 'fs'; import semver from 'semver'; import crypto from 'crypto'; -import {download, streamToBuffer} from '../dist/download.js'; +import {download, streamToBuffer} from '../dist/src/download.js'; describe('NpDatabase', () => { - const FILE_PATH = '../npDatabase.json'; + const FILE_PATH = './npDatabase.json'; const jsonData = JSON.parse(fs.readFileSync(FILE_PATH, 'utf8')); it('Check json structure', () => { diff --git a/build/tests/toolsdb.mjs b/build/tests/toolsdb.mjs index 2ecfd3cf..2a9ae6d7 100644 --- a/build/tests/toolsdb.mjs +++ b/build/tests/toolsdb.mjs @@ -6,7 +6,7 @@ import fs from 'fs'; describe('ToolsDB', () => { - const FILE_PATH = '../tools.json'; + const FILE_PATH = './tools.json'; const HASH_TYPE = 'sha256'; const jsonData = JSON.parse(fs.readFileSync(FILE_PATH, 'utf8')); diff --git a/build/package-lock.json b/package-lock.json similarity index 100% rename from build/package-lock.json rename to package-lock.json diff --git a/build/package.json b/package.json similarity index 83% rename from build/package.json rename to package.json index 21706796..97b4b3e0 100644 --- a/build/package.json +++ b/package.json @@ -6,9 +6,9 @@ "scripts": { "build": "tsc", "watch": "tsc -w", - "start": "npm run build && npx node dist/main.js", - "test": "npm run build && mocha --parallel --recursive tests/", - "format": "prettier ./src -w" + "start": "npm run build && npx node build/dist/src/main.js", + "test": "npm run build && mocha --parallel --recursive build/tests/", + "format": "prettier ./build/src -w" }, "repository": { "type": "git", diff --git a/build/tsconfig.json b/tsconfig.json similarity index 97% rename from build/tsconfig.json rename to tsconfig.json index f4eb667e..df376eeb 100644 --- a/build/tsconfig.json +++ b/tsconfig.json @@ -12,8 +12,8 @@ "declarationMap": true, /* Generates a sourcemap for each corresponding '.d.ts' file. */ // "sourceMap": true, /* Generates corresponding '.map' file. */ // "outFile": "./", /* Concatenate and emit output to single file. */ - "outDir": "./dist/", /* Redirect output structure to the directory. */ - // "rootDir": "./", /* Specify the root directory of input files. Use to control the output directory structure with --outDir. */ + "outDir": "./build/dist/", /* Redirect output structure to the directory. */ + "rootDir": "./build/", /* Specify the root directory of input files. Use to control the output directory structure with --outDir. */ // "composite": true, /* Enable project compilation */ // "tsBuildInfoFile": "./", /* Specify file to store incremental compilation information */ // "removeComments": true, /* Do not emit comments to output. */ From 2a02ade9ce2193fe4c8607a9d216c82e1968770c Mon Sep 17 00:00:00 2001 From: krypek Date: Thu, 25 Apr 2024 15:42:43 +0200 Subject: [PATCH 138/196] Unglobalize types in favor of manual imports --- build/src/db.ts | 1 + build/src/inputLocations.ts | 1 + build/src/main.ts | 1 + build/src/source.ts | 1 + build/src/types.d.ts | 35 +++++++++++++++++------------------ 5 files changed, 21 insertions(+), 18 deletions(-) diff --git a/build/src/db.ts b/build/src/db.ts index 153755a8..2d3b1eaf 100644 --- a/build/src/db.ts +++ b/build/src/db.ts @@ -3,6 +3,7 @@ import crypto from 'crypto' import fs from 'fs' import { download, streamToBuffer } from './download' import { ModMetadatasInput, ModMetadatas, addStarsAndTimestampsToResults } from './source' +import type { LocalizedString, PackageDB, Page, InputLocation, InstallMethod, InstallMethodZip, PkgMetadata, PkgCCMod } from './types' interface ModDb { [name: string]: { diff --git a/build/src/inputLocations.ts b/build/src/inputLocations.ts index c58ccf68..2bc16b10 100644 --- a/build/src/inputLocations.ts +++ b/build/src/inputLocations.ts @@ -1,4 +1,5 @@ import fs from 'fs' +import type { InputLocations } from './types' export async function parse(): Promise { return JSON.parse((await read()) as any) diff --git a/build/src/main.ts b/build/src/main.ts index dfb0dd6b..2e9867ee 100644 --- a/build/src/main.ts +++ b/build/src/main.ts @@ -3,6 +3,7 @@ import * as source from './source' import * as db from './db' import fs from 'fs' import semver from 'semver' +import type { PackageDB } from './types' async function main() { const GITHUB_TOKEN = process.env['GITHUB_TOKEN'] diff --git a/build/src/source.ts b/build/src/source.ts index 307ccba7..0ab42c5a 100644 --- a/build/src/source.ts +++ b/build/src/source.ts @@ -5,6 +5,7 @@ import fs from 'fs' import path from 'path' import { getRepositoryEntry } from './db' import * as github from '@octokit/openapi-types' +import type { InputLocation, Package, PackageDB, PkgCCMod, PkgMetadata, ZipInputLocation } from './types' export type ModMetadatas = { ccmod?: PkgCCMod diff --git a/build/src/types.d.ts b/build/src/types.d.ts index b4750c0a..37b6156d 100644 --- a/build/src/types.d.ts +++ b/build/src/types.d.ts @@ -1,7 +1,6 @@ -declare type InputLocation = ZipInputLocation +export type InputLocation = ZipInputLocation - -declare type ZipInputLocation = { +export type ZipInputLocation = { type?: 'zip' // The URL of the ZIP file. url: string @@ -16,14 +15,14 @@ declare type ZipInputLocation = { } // The content of the input-locations.json file. -declare type InputLocations = InputLocation[] +export type InputLocations = InputLocation[] // An os.platform() value (see https://nodejs.org/api/os.html#os_os_platform ) -declare type NodeOSPlatform = string +export type NodeOSPlatform = string // Imported from https://github.com/CCDirectLink/CLS/blob/master/proposals/1/standardized-mod-format.md -declare type Semver = string -declare type SemverConstraint = string +export type Semver = string +export type SemverConstraint = string // StandardizedModPackage is retroactively made a subclass of PackageDBPackageMetadata. /* @@ -32,12 +31,12 @@ declare type SemverConstraint = string * and special-case UI to be user-friendly, such as CCLoader and NWJS upgrades. * (In particular, CrossCode, CCLoader and NWJS upgrades require custom detection methods for their local copies.) */ -declare type PackageType = 'mod' | 'tool' | 'base' +export type PackageType = 'mod' | 'tool' | 'base' /* * A page relating to the mod. */ -declare type Page = { +export type Page = { // The name of the page. For the canonical GitHub or GitLab page, this must be "GitHub" / "GitLab". name: string url: string @@ -51,7 +50,7 @@ declare type Page = { * So it's very important to keep the package metadata format safe for NPM to read, * and that means ensuring all package metadata is either avoided by NPM or understood by it. */ -declare type PkgMetadata = { +export type PkgMetadata = { // This is the unique ID for this package, used for dependency handling. Note that this DOES NOT have to avoid collision with the NPM registry. name: string // If not provided, defaults to "mod". @@ -89,7 +88,7 @@ interface PersonDetails { comment?: LocalizedString } -declare type PkgCCMod = { +export type PkgCCMod = { id: string version?: Semver @@ -116,7 +115,7 @@ declare type PkgCCMod = { } // Represents some set of hashes for something. -declare type PkgHash = { +export type PkgHash = { // Lowercase hexadecimal-encoded SHA-256 hash of the data. sha256: string } @@ -124,19 +123,19 @@ declare type PkgHash = { /* * Represents a method of installing the package. */ -declare type InstallMethod = InstallMethodCommon | InstallMethodZip +export type InstallMethod = InstallMethodCommon | InstallMethodZip /* * The common fields between all PackageDBInstallationMethods. */ -declare type InstallMethodCommon = { - // Declares the type of installation method. ALWAYS CHECK THIS. +export type InstallMethodCommon = { + // exports the type of installation method. ALWAYS CHECK THIS. type: string // If present, constrains the platform this method may be used for. platform?: NodeOSPlatform } -declare type InstallMethodZip = InstallMethodCommon & { +export type InstallMethodZip = InstallMethodCommon & { type: 'zip' // The URL of the ZIP to download. (example: "https://github.com/CCDirectLink/CCLoader/archive/master.zip") // or the URL of the ccmod to download. (example: "https://github.com/CCDirectLink/CC-ChargedBalls/releases/download/1.0.0/ChargedBalls.ccmod") @@ -150,7 +149,7 @@ declare type InstallMethodZip = InstallMethodCommon & { /* * Represents a package in the database. */ -declare type Package = { +export type Package = { // Metadata for the package. metadata?: PkgMetadata metadataCCMod?: PkgCCMod @@ -163,4 +162,4 @@ declare type Package = { /* * Represents the database. Keys in this Record MUST match their respective `value.metadata.name` */ -declare type PackageDB = Record +export type PackageDB = Record From 9bd6279418d2fa3edda4f5fb82215a022bcf93e3 Mon Sep 17 00:00:00 2001 From: krypek Date: Thu, 25 Apr 2024 15:58:36 +0200 Subject: [PATCH 139/196] Improve some types & Add some type documentation --- build/src/db.ts | 3 +-- build/src/types.d.ts | 47 ++++++++++++++++++++++++-------------------- 2 files changed, 27 insertions(+), 23 deletions(-) diff --git a/build/src/db.ts b/build/src/db.ts index 2d3b1eaf..2efe4407 100644 --- a/build/src/db.ts +++ b/build/src/db.ts @@ -3,7 +3,7 @@ import crypto from 'crypto' import fs from 'fs' import { download, streamToBuffer } from './download' import { ModMetadatasInput, ModMetadatas, addStarsAndTimestampsToResults } from './source' -import type { LocalizedString, PackageDB, Page, InputLocation, InstallMethod, InstallMethodZip, PkgMetadata, PkgCCMod } from './types' +import type { LocalizedString, PackageDB, Page, InputLocation, InstallMethod, PkgMetadata, PkgCCMod, InstallMethodZip } from './types' interface ModDb { [name: string]: { @@ -210,7 +210,6 @@ async function generateInstallations(inputs: InputLocation[]): Promise { switch (input.type) { - case undefined: case 'zip': { const data = await streamToBuffer(await download(input.url)) diff --git a/build/src/types.d.ts b/build/src/types.d.ts index 37b6156d..55a1cef9 100644 --- a/build/src/types.d.ts +++ b/build/src/types.d.ts @@ -11,6 +11,7 @@ export type ZipInputLocation = { // If provided, then the package.json file is at this location in the archive, regardless of 'source'. // This must pretty much only be used for base packages. packageJSONPath?: string + // the same as packageJSONPath but for ccmod.json ccmodPath?: string } @@ -73,6 +74,8 @@ export type PkgMetadata = { license?: string // Homepage URL (see https://docs.npmjs.com/files/package.json ) homepage?: string + // NPM scripts + scripts?: Record } type FilePath = string @@ -80,13 +83,13 @@ type FilePath = string type LocalizedString = Record | string type Locale = string -type Person = PersonDetails | string -interface PersonDetails { - name: LocalizedString - email?: LocalizedString - url?: LocalizedString - comment?: LocalizedString -} +type Person = /* PersonDetails | */ string +// interface PersonDetails { +// name: LocalizedString +// email?: LocalizedString +// url?: LocalizedString +// comment?: LocalizedString +// } export type PkgCCMod = { id: string @@ -98,7 +101,7 @@ export type PkgCCMod = { homepage?: string repository?: string tags?: string[] - authors?: Person[] + authors?: Person[] | Person icons?: Record dependencies?: Record @@ -123,25 +126,24 @@ export type PkgHash = { /* * Represents a method of installing the package. */ -export type InstallMethod = InstallMethodCommon | InstallMethodZip +export type InstallMethod = InstallMethodZip -/* - * The common fields between all PackageDBInstallationMethods. - */ -export type InstallMethodCommon = { - // exports the type of installation method. ALWAYS CHECK THIS. - type: string +export type InstallMethodBase = { + // The URL of the file to download. + // (example: "https://github.com/CCDirectLink/CCLoader/archive/master.zip") + // (example: "https://github.com/CCDirectLink/CC-ChargedBalls/releases/download/1.0.0/ChargedBalls.ccmod") + url: string + // The hash of the file at url. + hash: PkgHash // If present, constrains the platform this method may be used for. platform?: NodeOSPlatform } -export type InstallMethodZip = InstallMethodCommon & { +/* + * Includes .zip and .ccmod files + */ +export type InstallMethodZip = InstallMethodBase & { type: 'zip' - // The URL of the ZIP to download. (example: "https://github.com/CCDirectLink/CCLoader/archive/master.zip") - // or the URL of the ccmod to download. (example: "https://github.com/CCDirectLink/CC-ChargedBalls/releases/download/1.0.0/ChargedBalls.ccmod") - url: string - // The hash of the file at url. - hash: PkgHash // If provided, the subdirectory of the ZIP that is the root of the extraction (example: "CCLoader-master") source?: string } @@ -152,10 +154,13 @@ export type InstallMethodZip = InstallMethodCommon & { export type Package = { // Metadata for the package. metadata?: PkgMetadata + // ccmod.json Metadata for the package. metadataCCMod?: PkgCCMod // Installation methods (try in order) installation: InstallMethod[] + // Number of GitHub stars the project has. stars?: number + // UNIX timestamp of the project repository last push date. lastUpdateTimestamp?: number } From 5e03e6de52f4dec4e9b22c23c16cab9016ef01e7 Mon Sep 17 00:00:00 2001 From: krypek Date: Thu, 25 Apr 2024 16:14:54 +0200 Subject: [PATCH 140/196] Move LegacyModDb (mods.json) to types.d.ts and export it --- build/src/db.ts | 18 ++---------------- build/src/types.d.ts | 14 ++++++++++++++ 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/build/src/db.ts b/build/src/db.ts index 2efe4407..5b5654e6 100644 --- a/build/src/db.ts +++ b/build/src/db.ts @@ -3,21 +3,7 @@ import crypto from 'crypto' import fs from 'fs' import { download, streamToBuffer } from './download' import { ModMetadatasInput, ModMetadatas, addStarsAndTimestampsToResults } from './source' -import type { LocalizedString, PackageDB, Page, InputLocation, InstallMethod, PkgMetadata, PkgCCMod, InstallMethodZip } from './types' - -interface ModDb { - [name: string]: { - name: string - description: string - license?: string - page: Page[] - archive_link: string - hash: { - sha256: string - } - version: string - } -} +import type { LocalizedString, PackageDB, Page, InputLocation, InstallMethod, PkgMetadata, PkgCCMod, InstallMethodZip, LegacyModDb } from './types' export async function build(packages: ModMetadatasInput[], oldDb?: PackageDB): Promise { const result: PackageDB = {} @@ -48,7 +34,7 @@ export async function write(db: PackageDB): Promise { } export async function writeMods(db: PackageDB): Promise { - const mods: ModDb = {} + const mods: LegacyModDb = {} for (const name of Object.keys(db)) { const pkg = db[name] diff --git a/build/src/types.d.ts b/build/src/types.d.ts index 55a1cef9..f8d7b115 100644 --- a/build/src/types.d.ts +++ b/build/src/types.d.ts @@ -168,3 +168,17 @@ export type Package = { * Represents the database. Keys in this Record MUST match their respective `value.metadata.name` */ export type PackageDB = Record + +export interface LegacyModDb { + [name: string]: { + name: string + description: string + license?: string + page: Page[] + archive_link: string + hash: { + sha256: string + } + version: string + } +} From 0de82b98185e24d097722914cb00dd9780b47eb9 Mon Sep 17 00:00:00 2001 From: krypek Date: Thu, 25 Apr 2024 16:16:38 +0200 Subject: [PATCH 141/196] Fix LegacyModDb#description not being optional --- build/src/types.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/src/types.d.ts b/build/src/types.d.ts index f8d7b115..ac7bd9b7 100644 --- a/build/src/types.d.ts +++ b/build/src/types.d.ts @@ -172,7 +172,7 @@ export type PackageDB = Record export interface LegacyModDb { [name: string]: { name: string - description: string + description?: string license?: string page: Page[] archive_link: string From 2dcdf3567937424531e01d4d2539a28e1e725571 Mon Sep 17 00:00:00 2001 From: krypek Date: Thu, 25 Apr 2024 17:24:06 +0200 Subject: [PATCH 142/196] Create ValidPkgCCMod type --- build/src/db.ts | 6 +++--- build/src/source.ts | 6 +++--- build/src/types.d.ts | 24 +++++++++++++++++------- 3 files changed, 23 insertions(+), 13 deletions(-) diff --git a/build/src/db.ts b/build/src/db.ts index 5b5654e6..2269e110 100644 --- a/build/src/db.ts +++ b/build/src/db.ts @@ -3,7 +3,7 @@ import crypto from 'crypto' import fs from 'fs' import { download, streamToBuffer } from './download' import { ModMetadatasInput, ModMetadatas, addStarsAndTimestampsToResults } from './source' -import type { LocalizedString, PackageDB, Page, InputLocation, InstallMethod, PkgMetadata, PkgCCMod, InstallMethodZip, LegacyModDb } from './types' +import type { LocalizedString, PackageDB, Page, InputLocation, InstallMethod, PkgMetadata, PkgCCMod, InstallMethodZip, LegacyModDb, ValidPkgCCMod } from './types' export async function build(packages: ModMetadatasInput[], oldDb?: PackageDB): Promise { const result: PackageDB = {} @@ -108,7 +108,7 @@ function getInstallation(installations: InstallMethod[]): { url: string; hash: { return undefined } -async function buildEntry(result: PackageDB, meta: PkgMetadata | undefined, ccmod: PkgCCMod | undefined, inputs: InputLocation[]): Promise { +async function buildEntry(result: PackageDB, meta: PkgMetadata | undefined, ccmod: ValidPkgCCMod | undefined, inputs: InputLocation[]): Promise { result[ccmod?.id || meta!.name] = { // metadata: meta, metadataCCMod: ccmod, @@ -149,7 +149,7 @@ function checkMeta(meta: PkgMetadata): boolean { return true } -function checkCCMod(ccmod: PkgCCMod): boolean { +function checkCCMod(ccmod: PkgCCMod): ccmod is ValidPkgCCMod { if (ccmod.dependencies) { if (ccmod.dependencies.constructor !== Object) { console.warn(`Package has dependencies not an object: ${ccmod.id}`) diff --git a/build/src/source.ts b/build/src/source.ts index 0ab42c5a..e1714d45 100644 --- a/build/src/source.ts +++ b/build/src/source.ts @@ -5,10 +5,10 @@ import fs from 'fs' import path from 'path' import { getRepositoryEntry } from './db' import * as github from '@octokit/openapi-types' -import type { InputLocation, Package, PackageDB, PkgCCMod, PkgMetadata, ZipInputLocation } from './types' +import type { InputLocation, Package, PackageDB, PkgMetadata, ValidPkgCCMod, ZipInputLocation } from './types' export type ModMetadatas = { - ccmod?: PkgCCMod + ccmod?: ValidPkgCCMod meta?: PkgMetadata } export type ModMetadatasInput = ModMetadatas & { input: InputLocation } @@ -178,7 +178,7 @@ async function fetchGithub(url: string): Promise { async function getStarsAndTimestamp( meta: PkgMetadata | undefined, - ccmod: PkgCCMod | undefined, + ccmod: ValidPkgCCMod | undefined, fetchTimestamp: boolean ): Promise<{ stars: number; timestamp?: number } | undefined> { const homepageArr = getRepositoryEntry(ccmod?.repository || meta?.homepage) diff --git a/build/src/types.d.ts b/build/src/types.d.ts index ac7bd9b7..44a8a3d5 100644 --- a/build/src/types.d.ts +++ b/build/src/types.d.ts @@ -91,17 +91,20 @@ type Person = /* PersonDetails | */ string // comment?: LocalizedString // } -export type PkgCCMod = { +/* + * All mods in the database must have these fields + */ +export type ValidPkgCCMod = { id: string - version?: Semver + version: Semver - title?: LocalizedString - description?: LocalizedString + title: LocalizedString + description: LocalizedString license?: string homepage?: string - repository?: string + repository: string tags?: string[] - authors?: Person[] | Person + authors: Person[] | Person icons?: Record dependencies?: Record @@ -117,6 +120,13 @@ export type PkgCCMod = { poststart?: FilePath } +/** + * What ccloader requires for the mod to function + */ +export type PkgCCMod = Partial & { + id: string +} + // Represents some set of hashes for something. export type PkgHash = { // Lowercase hexadecimal-encoded SHA-256 hash of the data. @@ -155,7 +165,7 @@ export type Package = { // Metadata for the package. metadata?: PkgMetadata // ccmod.json Metadata for the package. - metadataCCMod?: PkgCCMod + metadataCCMod?: ValidPkgCCMod // Installation methods (try in order) installation: InstallMethod[] // Number of GitHub stars the project has. From 2dbf6cb702f465a9f28c51a165ccd4cfa08ae563 Mon Sep 17 00:00:00 2001 From: krypek Date: Thu, 25 Apr 2024 17:30:58 +0200 Subject: [PATCH 143/196] Export getRepositoryEntry for external access --- build/src/api.ts | 21 +++++++++++++++++++++ build/src/db.ts | 21 +-------------------- 2 files changed, 22 insertions(+), 20 deletions(-) create mode 100644 build/src/api.ts diff --git a/build/src/api.ts b/build/src/api.ts new file mode 100644 index 00000000..9eec94e9 --- /dev/null +++ b/build/src/api.ts @@ -0,0 +1,21 @@ +import { Page } from './types' + +export function getRepositoryEntry(url?: string): Page[] { + if (!url) { + return [] + } + + let name: string + switch (new URL(url).hostname) { + case 'github.com': + name = 'GitHub' + break + case 'gitlab.com': + name = 'GitLab' + break + default: + name = "mod's homepage" + } + + return [{ name, url }] +} diff --git a/build/src/db.ts b/build/src/db.ts index 2269e110..2255c789 100644 --- a/build/src/db.ts +++ b/build/src/db.ts @@ -4,6 +4,7 @@ import fs from 'fs' import { download, streamToBuffer } from './download' import { ModMetadatasInput, ModMetadatas, addStarsAndTimestampsToResults } from './source' import type { LocalizedString, PackageDB, Page, InputLocation, InstallMethod, PkgMetadata, PkgCCMod, InstallMethodZip, LegacyModDb, ValidPkgCCMod } from './types' +import { getRepositoryEntry } from './api' export async function build(packages: ModMetadatasInput[], oldDb?: PackageDB): Promise { const result: PackageDB = {} @@ -71,26 +72,6 @@ export async function writeMods(db: PackageDB): Promise { }) } -export function getRepositoryEntry(url?: string): Page[] { - if (!url) { - return [] - } - - let name: string - switch (new URL(url).hostname) { - case 'github.com': - name = 'GitHub' - break - case 'gitlab.com': - name = 'GitLab' - break - default: - name = "mod's homepage" - } - - return [{ name, url }] -} - export function getStringFromLocalisedString(str: LocalizedString): string { if (!str) throw new Error(`No mod name found: ${str}`) if (typeof str === 'string') return str From d7a2297be7a840a09a1a964e10f2bef5fb455039 Mon Sep 17 00:00:00 2001 From: krypek Date: Thu, 25 Apr 2024 17:37:23 +0200 Subject: [PATCH 144/196] Remove mods.json generation --- build/src/db.ts | 50 +------------------------------------------- build/src/main.ts | 1 - build/src/source.ts | 2 +- build/src/types.d.ts | 14 ------------- 4 files changed, 2 insertions(+), 65 deletions(-) diff --git a/build/src/db.ts b/build/src/db.ts index 2255c789..72b10538 100644 --- a/build/src/db.ts +++ b/build/src/db.ts @@ -3,8 +3,7 @@ import crypto from 'crypto' import fs from 'fs' import { download, streamToBuffer } from './download' import { ModMetadatasInput, ModMetadatas, addStarsAndTimestampsToResults } from './source' -import type { LocalizedString, PackageDB, Page, InputLocation, InstallMethod, PkgMetadata, PkgCCMod, InstallMethodZip, LegacyModDb, ValidPkgCCMod } from './types' -import { getRepositoryEntry } from './api' +import type { LocalizedString, PackageDB, InputLocation, InstallMethod, PkgMetadata, PkgCCMod, ValidPkgCCMod } from './types' export async function build(packages: ModMetadatasInput[], oldDb?: PackageDB): Promise { const result: PackageDB = {} @@ -34,44 +33,6 @@ export async function write(db: PackageDB): Promise { }) } -export async function writeMods(db: PackageDB): Promise { - const mods: LegacyModDb = {} - - for (const name of Object.keys(db)) { - const pkg = db[name] - const meta = pkg.metadata - const ccmod = pkg.metadataCCMod - - if (meta?.ccmodType === 'base' || meta?.ccmodType === 'tool') continue - - const install = getInstallation(pkg.installation) - if (!install) continue - - mods[name] = { - name: getStringFromLocalisedString(ccmod?.title || meta?.ccmodHumanName || name), - description: getStringFromLocalisedString( - ccmod?.description || - meta?.description || - 'A mod. (Description not available; contact mod author and have them add a description to their package.json file)' - ), - license: ccmod?.license || meta?.license, - page: getRepositoryEntry(ccmod?.repository || ccmod?.homepage || meta?.homepage) /* old field, should be unused, kept for compatibility */, - archive_link: install.url, - hash: install.hash, - version: ccmod?.version || meta?.version || 'unknown', - } - } - - return new Promise((resolve, reject) => { - fs.writeFile('./mods.json', JSON.stringify({ mods }, null, 4), err => { - if (err) { - return reject(err) - } - resolve() - }) - }) -} - export function getStringFromLocalisedString(str: LocalizedString): string { if (!str) throw new Error(`No mod name found: ${str}`) if (typeof str === 'string') return str @@ -80,15 +41,6 @@ export function getStringFromLocalisedString(str: LocalizedString): string { return newStr } -function getInstallation(installations: InstallMethod[]): { url: string; hash: { sha256: string } } | undefined { - const zip = installations.find(i => i.type === 'zip') as InstallMethodZip - if (zip) { - return { url: zip.url, hash: zip.hash } - } - - return undefined -} - async function buildEntry(result: PackageDB, meta: PkgMetadata | undefined, ccmod: ValidPkgCCMod | undefined, inputs: InputLocation[]): Promise { result[ccmod?.id || meta!.name] = { // metadata: meta, diff --git a/build/src/main.ts b/build/src/main.ts index 2e9867ee..b724fe59 100644 --- a/build/src/main.ts +++ b/build/src/main.ts @@ -19,7 +19,6 @@ async function main() { const oldPkgDb: PackageDB | undefined = fs.existsSync('./npDatabase.json') ? JSON.parse(fs.readFileSync('./npDatabase.json').toString()) : undefined const pkgDb = await db.build(packages, oldPkgDb) await db.write(pkgDb) - await db.writeMods(pkgDb) if (oldPkgDb) { for (const name in pkgDb) { diff --git a/build/src/source.ts b/build/src/source.ts index e1714d45..f3ea6d3a 100644 --- a/build/src/source.ts +++ b/build/src/source.ts @@ -3,9 +3,9 @@ import yauzl from 'yauzl' import { download, streamToBuffer } from './download' import fs from 'fs' import path from 'path' -import { getRepositoryEntry } from './db' import * as github from '@octokit/openapi-types' import type { InputLocation, Package, PackageDB, PkgMetadata, ValidPkgCCMod, ZipInputLocation } from './types' +import { getRepositoryEntry } from './api' export type ModMetadatas = { ccmod?: ValidPkgCCMod diff --git a/build/src/types.d.ts b/build/src/types.d.ts index 44a8a3d5..be41f9cb 100644 --- a/build/src/types.d.ts +++ b/build/src/types.d.ts @@ -178,17 +178,3 @@ export type Package = { * Represents the database. Keys in this Record MUST match their respective `value.metadata.name` */ export type PackageDB = Record - -export interface LegacyModDb { - [name: string]: { - name: string - description?: string - license?: string - page: Page[] - archive_link: string - hash: { - sha256: string - } - version: string - } -} From e0a0e6b2f6bd607f96e6b4489075a37a2b7094d4 Mon Sep 17 00:00:00 2001 From: krypek Date: Thu, 25 Apr 2024 17:41:35 +0200 Subject: [PATCH 145/196] Typo fix --- CCMOD-STANDARD.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CCMOD-STANDARD.md b/CCMOD-STANDARD.md index 67716ea6..7351e7ad 100644 --- a/CCMOD-STANDARD.md +++ b/CCMOD-STANDARD.md @@ -10,7 +10,7 @@ - `description` - Description shown to users. Can be localized - `homepage` (Optional) - Put your mod homepage link here (don't put your repository link here) - `repository` - Put your repository link here. Non GitHub links will be missing some [CCModManager](https://github.com/CCDirectLink/CCModManager) functionality -- `tags` (Optional) - A list of mod tags. Read what tags are availible below in Mod tag list. +- `tags` (Optional) - A list of mod tags. Read what tags are available below in Mod tag list. If the first tag is `library` [CCModManager](https://github.com/CCDirectLink/CCModManager) will hide the mod by default. - `authors` - Either a string or an array of mod authors - `icons` (Optional) - Mod icon. Currently only the size of 24x24 pixels is supported From 117d4489e04a16d789980db0a37be3f1cca17456 Mon Sep 17 00:00:00 2001 From: krypek Date: Thu, 25 Apr 2024 17:43:29 +0200 Subject: [PATCH 146/196] Add ValidTags type --- build/src/types.d.ts | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/build/src/types.d.ts b/build/src/types.d.ts index be41f9cb..97bd2266 100644 --- a/build/src/types.d.ts +++ b/build/src/types.d.ts @@ -91,6 +91,32 @@ type Person = /* PersonDetails | */ string // comment?: LocalizedString // } +/* + * Mod tags that are in the ccmod.json standard + */ +export type ValidTags = + | 'QoL' + | 'player character' + | 'party member' + | 'combat arts' + | 'pvp duel' + | 'arena' + | 'dungeon' + | 'quests' + | 'maps' + | 'boss' + | 'puzzle' + | 'ng+' + | 'cosmetic' + | 'fun' + | 'cheats' + | 'speedrun' + | 'widget' + | 'language' + | 'accessibility' + | 'dev' + | 'library' + | 'base' /* * All mods in the database must have these fields */ @@ -103,7 +129,7 @@ export type ValidPkgCCMod = { license?: string homepage?: string repository: string - tags?: string[] + tags?: ValidTags[] authors: Person[] | Person icons?: Record From a178d0c7c07a2103111e835ff7fd879671b4c9ec Mon Sep 17 00:00:00 2001 From: krypek Date: Thu, 25 Apr 2024 17:45:54 +0200 Subject: [PATCH 147/196] Typo fix --- CCMOD-STANDARD.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CCMOD-STANDARD.md b/CCMOD-STANDARD.md index 7351e7ad..e8a66d04 100644 --- a/CCMOD-STANDARD.md +++ b/CCMOD-STANDARD.md @@ -38,7 +38,7 @@ - `cosmetic` - adds any kind of cosmetic things like skins, pets or menu skins - `fun` - fun things not necessarily useful - `cheats` - do things you're not supposed to do like spawn items or infinite gold -- `speedrun` - helps speedrunners with speedruns or practise +- `speedrun` - helps speedrunners with speedruns or practice - `widget` - adds a [CCUILib](https://github.com/conorlawton/nax-ccuilib) quick menu widget - `language` - adds a new language - `accessibility` - makes the game more accessible From 1e3be19eda0123bc27451c85b5fffc01e6c4840c Mon Sep 17 00:00:00 2001 From: krypek Date: Thu, 25 Apr 2024 17:59:56 +0200 Subject: [PATCH 148/196] Add 'externaltool' tag --- CCMOD-STANDARD.md | 1 + build/src/types.d.ts | 1 + 2 files changed, 2 insertions(+) diff --git a/CCMOD-STANDARD.md b/CCMOD-STANDARD.md index e8a66d04..0e8ff39c 100644 --- a/CCMOD-STANDARD.md +++ b/CCMOD-STANDARD.md @@ -45,6 +45,7 @@ - `dev` - helps mod developers create mods - `library` - used by other mods. CCModManager hides these mods by default only if this tag is the first element - `base` - used by stuff like CCLoader +- `externaltool` - reserved by tools like [crosscode-map-editor](https://github.com/CCDirectLink/crosscode-map-editor), do not use in mods ## Example `ccmod.json` diff --git a/build/src/types.d.ts b/build/src/types.d.ts index 97bd2266..49b86a3b 100644 --- a/build/src/types.d.ts +++ b/build/src/types.d.ts @@ -117,6 +117,7 @@ export type ValidTags = | 'dev' | 'library' | 'base' + | 'externaltool' /* * All mods in the database must have these fields */ From 352e3e083fd95e77ebe15e543a56ca482c8010c8 Mon Sep 17 00:00:00 2001 From: krypek Date: Thu, 25 Apr 2024 18:19:22 +0200 Subject: [PATCH 149/196] Convert mods.json to the npDatabase.json format --- build/src/types.d.ts | 16 +++++- tools.json | 133 ++++++++++++++++++++++++++----------------- 2 files changed, 97 insertions(+), 52 deletions(-) diff --git a/build/src/types.d.ts b/build/src/types.d.ts index 49b86a3b..f5abd7c7 100644 --- a/build/src/types.d.ts +++ b/build/src/types.d.ts @@ -1,4 +1,4 @@ -export type InputLocation = ZipInputLocation +export type InputLocation = ZipInputLocation | ExternalToolInputLocation export type ZipInputLocation = { type?: 'zip' @@ -15,6 +15,12 @@ export type ZipInputLocation = { ccmodPath?: string } +export type ExternalToolInputLocation = { + type?: 'externaltool' + // The URL of the ZIP file. + url: string +} + // The content of the input-locations.json file. export type InputLocations = InputLocation[] @@ -27,6 +33,7 @@ export type SemverConstraint = string // StandardizedModPackage is retroactively made a subclass of PackageDBPackageMetadata. /* + * @deprecated * Represents a kind of package. * Please be aware that "base" is reserved for packages that absolutely require special-case local detection, * and special-case UI to be user-friendly, such as CCLoader and NWJS upgrades. @@ -44,6 +51,7 @@ export type Page = { } /* + * @deprecated * This is related to the supported package metadata for mods, on purpose. * Note, however, that the 'dependencies' key is NOT supported. * Also note the care to try not to reinvent NPM fields, but also to avoid them when inappropriate. @@ -184,6 +192,12 @@ export type InstallMethodZip = InstallMethodBase & { // If provided, the subdirectory of the ZIP that is the root of the extraction (example: "CCLoader-master") source?: string } +/* + * Includes .zip and .ccmod files + */ +export type InstallMethodExternalTool = InstallMethodBase & { + type: 'externaltool' +} /* * Represents a package in the database. diff --git a/tools.json b/tools.json index 33ff5617..2e3ba4b9 100644 --- a/tools.json +++ b/tools.json @@ -1,59 +1,90 @@ { - "tools" : { - "SpericalViewer" : { - "name" : "SpericalViewer", - "description" : "Viewer for CrossCode content.", - "license" : "MIT", - "page" : [{ "name" : "GitHub", "url" : "https://github.com/CCDirectLink/SpericalViewer" }], - "archive_link" : "https://github.com/CCDirectLink/SpericalViewer/archive/v0.3.7.zip", - "hash" : { "sha256" : "AAC16A0C9169BAAE554783CA89A5A890329334E992343A7735313AE076099F2C" }, - "version" : "0.3.7" + "SpericalViewer": { + "metadataCCMod": { + "id": "SpericalViewer", + "version": "0.3.7", + "title": "SpericalViewer", + "description": "Viewer for CrossCode content.", + "license": "MIT", + "repository": "https://github.com/CCDirectLink/SpericalViewer", + "tags": ["externaltool"], + "authors": ["streetclaw", "2767mr", "ac2pic", "omegalink12"] }, - "CCUpdaterCLI" : { - "name" : "CCUpdaterCLI", - "description" : "A simple tool to install, update and remove CCLoader mods.", - "license" : null, - "page" : [{ "name" : "GitHub", "url" : "https://github.com/CCDirectLink/CCUpdaterCLI" }], - "archive_link" : "https://github.com/CCDirectLink/CCUpdaterCLI/releases/download/v1.1.0/ccmu.exe", - "hash" : { "sha256" : "87DA1A0BA2463A107AA07EA8A1B3E9B59CD6748CFA087CA495D250942CED517D" }, - "version" : "1.1.0" + "installation": [ + { + "type": "externaltool", + "url": "https://github.com/CCDirectLink/SpericalViewer/archive/v0.3.7.zip", + "hash": { "sha256": "aac16a0c9169baae554783ca89a5a890329334e992343a7735313ae076099f2c" } + } + ] + }, + "ccloader": { + "metadataCCMod": { + "id": "ccloader", + "title": "CCLoader", + "version": "2.23.2", + "description": "Modloader for CrossCode. This or a similar modloader is needed for most mods.", + "licence": "MIT", + "tags": ["externaltool"], + "repository": "https://github.com/CCDirectLink/CCLoader", + "authors": ["2767mr", "dmitmel", "ac2pic", "Vankerkom", "20kdc", "lexisother", "L-Sherry", "elluminance", "omegalink12", "Silverfeelin"] }, - "CCLoader" : { - "name" : "CCLoader", - "description" : "A modloader for CrossCode.", - "licence" : "MIT", - "page" : [{ "name" : "GitHub", "url" : "https://github.com/CCDirectLink/CCLoader" }], - "archive_link" : "https://github.com/CCDirectLink/CCLoader/archive/refs/tags/v2.22.1/v2.12.1.zip", - "hash" : { "sha256" : "7ab3d850b5368dda4593318fd3e957e0bc46128e25844eeda97ca0eec16b343a" }, - "version" : "2.22.1", - "subVersion" : "2.12.1" + "installation": [ + { + "type": "externaltool", + "url": "https://github.com/CCDirectLink/CCLoader/archive/refs/tags/v2.23.3/v2.13.0.zip", + "hash": { "sha256": "f7f7f9c7229985dfb62ac58129799070b6ae0114db043e343f6b20c34a6ff3cd" } + } + ] + }, + "CCAnimationEditor": { + "metadataCCMod": { + "id": "CCAnimationEditor", + "title": "CCAnimationEditor", + "version": "0.2.8", + "description": "Animation editor for CrossCode.", + "licence": "ISC", + "tags": ["externaltool"], + "repository": "https://github.com/gregnk/CCAnimationEditor", + "authors": ["gregnk"] }, - "CCAnimationEditor" : { - "name" : "CCAnimationEditor", - "description" : "Animation editor for CrossCode.", - "licence" : "ISC", - "page" : [{ "name" : "GitHub", "url" : "https://github.com/gregnk/ccanimationeditor" }], - "archive_link" : "https://github.com/gregnk/CCAnimationEditor/releases/download/v0.2.7/CCAnimationEditor-v0.2.7.zip", - "hash" : { "sha256" : "3cb01c6427c31bb78db5d7b076a8a0b9d058345fdb6a23771c38f83afcbb6bbd" }, - "version" : "0.2.7" + "installation": [ + { + "type": "externaltool", + "url": "https://github.com/gregnk/CCAnimationEditor/releases/download/v0.2.8/CCAnimationEditor-v0.2.8.zip", + "hash": { "sha256": "c1e2da297c88ce679a6d985ba10751ecb657138af03d0387a4fc8042cfcf460b" } + } + ] + }, + "crosscode-map-editor": { + "metadataCCMod": { + "id": "CrossCode Map Editor", + "name": "CrossCode Map Editor", + "version": "1.5.0", + "description": "A Map Editor for CrossCode.", + "licence": "MIT", + "tags": ["externaltool"], + "repository": "https://github.com/CCDirectLink/crosscode-map-editor", + "authors": ["Vegita2", "2767mr", "ac2pic", "yellowsink", "elluminance", "krypciak", "dmitmel", "keanuplayz", "Fusion86", "Nnubes256"] }, - "crosscode-map-editor" : { - "name" : "CrossCode Map Editor", - "description" : "A Map Editor for CrossCode.", - "licence" : "MIT", - "page" : [{ "name" : "GitHub", "url" : "https://github.com/CCDirectLink/crosscode-map-editor" }], - "archive_link" : "https://github.com/CCDirectLink/crosscode-map-editor/releases/download/v0.8.0/cc-map-editor-0.8.0-win.exe", - "hash" : { "sha256" : "52a85d244cfcd3428b03835422cc74882254b6a66700540650a252a832665106" }, - "version" : "0.8.0" - }, - "CCAreaEditor" : { - "name" : "CCAreaEditor", - "description" : "A CrossCode modding tool that allows you to graphically edit areas.", - "licence" : "MIT", - "page" : [{ "name" : "GitHub", "url" : "https://github.com/WatDuhHekBro/CCAreaEditor" }], - "archive_link" : "https://github.com/WatDuhHekBro/CCAreaEditor/releases/download/v1.0.6/CCAE-v1.0.6.zip", - "hash" : { "sha256" : "17dbd9266edd451c252de5bf778efde9a1eb6d4e80c8d9c528407030ab2a859c" }, - "version" : "1.0.6" + "installation": { + "type": "externaltool", + "url": "https://github.com/CCDirectLink/crosscode-map-editor/releases/download/v1.5.0/cc-map-editor-1.5.0-win.exe", + "hash": { "sha256": "5ff589127a29c0e7dad3f3a4eba107c30dff1824fddd3b03558b78c2eeca140c" }, + "platform": "win32" } + }, + "CCAreaEditor": { + "metadataCCMod": { + "id": "CCAreaEditor", + "title": "CCAreaEditor", + "version": "1.0.6", + "description": "A CrossCode modding tool that allows you to graphically edit areas. https://watduhhekbro.github.io/CCAreaEditor/", + "licence": "MIT", + "tags": ["externaltool"], + "repository": "https://github.com/WatDuhHekBro/CCAreaEditor", + "authors": ["WatDuhHekBro"] + }, + "installation": [] } } From 003a1144bd73b279778cb26242b72cf85d7574b9 Mon Sep 17 00:00:00 2001 From: krypek Date: Thu, 25 Apr 2024 18:26:15 +0200 Subject: [PATCH 150/196] Export getStringFromLocalisedString for external access --- build/src/api.ts | 10 +++++++++- build/src/db.ts | 10 +--------- build/src/main.ts | 5 +++-- 3 files changed, 13 insertions(+), 12 deletions(-) diff --git a/build/src/api.ts b/build/src/api.ts index 9eec94e9..e9678420 100644 --- a/build/src/api.ts +++ b/build/src/api.ts @@ -1,4 +1,4 @@ -import { Page } from './types' +import { LocalizedString, Page } from './types' export function getRepositoryEntry(url?: string): Page[] { if (!url) { @@ -19,3 +19,11 @@ export function getRepositoryEntry(url?: string): Page[] { return [{ name, url }] } + +export function getStringFromLocalisedString(str: LocalizedString, lang = 'en_US'): string { + if (!str) throw new Error(`No mod name found: ${str}`) + if (typeof str === 'string') return str + const newStr = str[lang] + if (!newStr) throw new Error(`No english mod name found: ${str}`) + return newStr +} diff --git a/build/src/db.ts b/build/src/db.ts index 72b10538..69a6e955 100644 --- a/build/src/db.ts +++ b/build/src/db.ts @@ -3,7 +3,7 @@ import crypto from 'crypto' import fs from 'fs' import { download, streamToBuffer } from './download' import { ModMetadatasInput, ModMetadatas, addStarsAndTimestampsToResults } from './source' -import type { LocalizedString, PackageDB, InputLocation, InstallMethod, PkgMetadata, PkgCCMod, ValidPkgCCMod } from './types' +import type { PackageDB, InputLocation, InstallMethod, PkgMetadata, PkgCCMod, ValidPkgCCMod } from './types' export async function build(packages: ModMetadatasInput[], oldDb?: PackageDB): Promise { const result: PackageDB = {} @@ -33,14 +33,6 @@ export async function write(db: PackageDB): Promise { }) } -export function getStringFromLocalisedString(str: LocalizedString): string { - if (!str) throw new Error(`No mod name found: ${str}`) - if (typeof str === 'string') return str - const newStr = str.en_US - if (!newStr) throw new Error(`No english mod name found: ${str}`) - return newStr -} - async function buildEntry(result: PackageDB, meta: PkgMetadata | undefined, ccmod: ValidPkgCCMod | undefined, inputs: InputLocation[]): Promise { result[ccmod?.id || meta!.name] = { // metadata: meta, diff --git a/build/src/main.ts b/build/src/main.ts index b724fe59..045ff2c3 100644 --- a/build/src/main.ts +++ b/build/src/main.ts @@ -4,6 +4,7 @@ import * as db from './db' import fs from 'fs' import semver from 'semver' import type { PackageDB } from './types' +import {getStringFromLocalisedString} from './api' async function main() { const GITHUB_TOKEN = process.env['GITHUB_TOKEN'] @@ -35,8 +36,8 @@ async function main() { type, ccmod.id, ccmod.version!, - db.getStringFromLocalisedString(ccmod.title ?? 'unknown'), - db.getStringFromLocalisedString(ccmod.description ?? 'unknown') + getStringFromLocalisedString(ccmod.title ?? 'unknown'), + getStringFromLocalisedString(ccmod.description ?? 'unknown') ] console.log(arr.join('|')) } From f13d7fd4131b7cbec7fd5526c627023008b96172 Mon Sep 17 00:00:00 2001 From: krypek Date: Thu, 25 Apr 2024 19:51:11 +0200 Subject: [PATCH 151/196] Small error message improvement --- build/src/api.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/src/api.ts b/build/src/api.ts index e9678420..a2237b89 100644 --- a/build/src/api.ts +++ b/build/src/api.ts @@ -24,6 +24,6 @@ export function getStringFromLocalisedString(str: LocalizedString, lang = 'en_US if (!str) throw new Error(`No mod name found: ${str}`) if (typeof str === 'string') return str const newStr = str[lang] - if (!newStr) throw new Error(`No english mod name found: ${str}`) + if (!newStr) throw new Error(`No ${lang} mod name found: ${str}`) return newStr } From 17e549402c3741d1ff9a8868e1799ccc1770a9d8 Mon Sep 17 00:00:00 2001 From: krypek Date: Thu, 25 Apr 2024 19:51:43 +0200 Subject: [PATCH 152/196] Fix invalid field name in tools.json --- tools.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools.json b/tools.json index 2e3ba4b9..6182dbb0 100644 --- a/tools.json +++ b/tools.json @@ -59,7 +59,7 @@ "crosscode-map-editor": { "metadataCCMod": { "id": "CrossCode Map Editor", - "name": "CrossCode Map Editor", + "title": "CrossCode Map Editor", "version": "1.5.0", "description": "A Map Editor for CrossCode.", "licence": "MIT", From e5d3a66084214a729552461a9ebc57dcdc638a05 Mon Sep 17 00:00:00 2001 From: krypek Date: Thu, 25 Apr 2024 20:10:13 +0200 Subject: [PATCH 153/196] Move the CCAreaEditor link from it's description to the homepage field --- tools.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tools.json b/tools.json index 6182dbb0..767a97af 100644 --- a/tools.json +++ b/tools.json @@ -79,9 +79,10 @@ "id": "CCAreaEditor", "title": "CCAreaEditor", "version": "1.0.6", - "description": "A CrossCode modding tool that allows you to graphically edit areas. https://watduhhekbro.github.io/CCAreaEditor/", + "description": "A CrossCode modding tool that allows you to graphically edit areas.", "licence": "MIT", "tags": ["externaltool"], + "homepage": "https://watduhhekbro.github.io/CCAreaEditor", "repository": "https://github.com/WatDuhHekBro/CCAreaEditor", "authors": ["WatDuhHekBro"] }, From de644c367d51c629db056ee52486b7a35b79357b Mon Sep 17 00:00:00 2001 From: krypek Date: Fri, 26 Apr 2024 10:35:07 +0200 Subject: [PATCH 154/196] Fix 'zip' not being the default InputLocation type --- build/src/db.ts | 1 + build/src/types.d.ts | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/build/src/db.ts b/build/src/db.ts index 69a6e955..48dc908f 100644 --- a/build/src/db.ts +++ b/build/src/db.ts @@ -121,6 +121,7 @@ async function generateInstallations(inputs: InputLocation[]): Promise { switch (input.type) { + case undefined: case 'zip': { const data = await streamToBuffer(await download(input.url)) diff --git a/build/src/types.d.ts b/build/src/types.d.ts index f5abd7c7..ae01966c 100644 --- a/build/src/types.d.ts +++ b/build/src/types.d.ts @@ -1,7 +1,7 @@ export type InputLocation = ZipInputLocation | ExternalToolInputLocation export type ZipInputLocation = { - type?: 'zip' + type?: 'zip' | undefined // The URL of the ZIP file. url: string // The subdirectory in which the package.json file is kept. @@ -16,7 +16,7 @@ export type ZipInputLocation = { } export type ExternalToolInputLocation = { - type?: 'externaltool' + type: 'externaltool' // The URL of the ZIP file. url: string } From 09a352d986441d4a9b0fccb215cdab2be7327088 Mon Sep 17 00:00:00 2001 From: krypek Date: Fri, 26 Apr 2024 11:13:40 +0200 Subject: [PATCH 155/196] Fix tools.json tests --- build/tests/npDatabase.mjs | 27 +++++++++++++++-- build/tests/toolsdb.mjs | 62 -------------------------------------- tools.json | 14 +++++---- 3 files changed, 32 insertions(+), 71 deletions(-) delete mode 100644 build/tests/toolsdb.mjs diff --git a/build/tests/npDatabase.mjs b/build/tests/npDatabase.mjs index 7382ad09..63fc3140 100644 --- a/build/tests/npDatabase.mjs +++ b/build/tests/npDatabase.mjs @@ -26,10 +26,30 @@ describe('NpDatabase', () => { testPackage(jsonData, jsonData[mod], mod); } }); +}); + +describe('ToolsDB', () => { + const FILE_PATH = './tools.json'; + const jsonData = JSON.parse(fs.readFileSync(FILE_PATH, 'utf8')); + + it('Check json structure', () => { + expect(typeof jsonData === 'object', + 'Json not valid: Not an object').to.be.true; + expect(Array.isArray(jsonData), + 'Json not valid: Not an object').to.be.false; + expect(jsonData !== null, + 'Json not valid: Not an object').to.be.true; + }); + + describe('tools', () => { + for (let mod of Object.keys(jsonData)) { + testPackage(jsonData, jsonData[mod], mod); + } + }); }); -function testPackage(jsonData, mod, name) { +export function testPackage(jsonData, mod, name) { describe(`Package: ${name}`, () => { it('Check for required elements', () => { expect(mod !== null, @@ -232,8 +252,8 @@ function testInstallation(mod) { 'installation (type: object) must be an object') .to.be.true; - expect(['zip'].includes(inst.type), - 'installation.type (type: string) must be one of: ["zip"]') + expect(['zip', 'externaltool'].includes(inst.type), + 'installation.type (type: string) must be one of: ["zip", "externaltool"]') .to.be.true; expect(inst.platform === undefined @@ -244,6 +264,7 @@ function testInstallation(mod) { .to.be.true; switch (inst.type) { + case 'externaltool': case 'zip': await testZip(inst); break; diff --git a/build/tests/toolsdb.mjs b/build/tests/toolsdb.mjs deleted file mode 100644 index 2a9ae6d7..00000000 --- a/build/tests/toolsdb.mjs +++ /dev/null @@ -1,62 +0,0 @@ -// call with mocha -// require chai - -import { expect } from 'chai'; -import fs from 'fs'; - -describe('ToolsDB', () => { - - const FILE_PATH = './tools.json'; - const HASH_TYPE = 'sha256'; - const jsonData = JSON.parse(fs.readFileSync(FILE_PATH, 'utf8')); - - it('Check json structure', () => { - expect(typeof jsonData === 'object', - 'Json not valid: Not an object').to.be.true; - expect(Array.isArray(jsonData), - 'Json not valid: Not an object').to.be.false; - expect(jsonData !== null, - 'Json not valid: Not an object').to.be.true; - - expect(typeof jsonData.tools === 'object', - 'tools key missing').to.be.true; - }); - - describe('tools', () => { - - for (let tool in jsonData.tools) { - - describe(tool, () => { - - it('Check for required elements', () => { - expect(typeof jsonData.tools[tool] - .name === 'string', - 'name (type: string) required').to.be.true; - expect(typeof jsonData.tools[tool] - .description === 'string', - 'description (type: string) required').to.be.true; - expect(typeof jsonData.tools[tool] - .archive_link === 'string', - 'archive_link (type: string) required').to.be.true; - expect(typeof jsonData.tools[tool] - .hash === 'object', - 'hash (type: object) required').to.be.true; - expect(typeof jsonData.tools[tool] - .hash[HASH_TYPE] === 'string', - 'hash.' + HASH_TYPE + - ' (type: string) required').to.be.true; - }); - - it('Check file', () => { - expect(/^https?:\/\// - .test(jsonData.tools[tool].archive_link), - 'invalid url').to.be.true; - }); - - }); - - } - - }); - -}); diff --git a/tools.json b/tools.json index 767a97af..fa2b0aad 100644 --- a/tools.json +++ b/tools.json @@ -67,12 +67,14 @@ "repository": "https://github.com/CCDirectLink/crosscode-map-editor", "authors": ["Vegita2", "2767mr", "ac2pic", "yellowsink", "elluminance", "krypciak", "dmitmel", "keanuplayz", "Fusion86", "Nnubes256"] }, - "installation": { - "type": "externaltool", - "url": "https://github.com/CCDirectLink/crosscode-map-editor/releases/download/v1.5.0/cc-map-editor-1.5.0-win.exe", - "hash": { "sha256": "5ff589127a29c0e7dad3f3a4eba107c30dff1824fddd3b03558b78c2eeca140c" }, - "platform": "win32" - } + "installation": [ + { + "type": "externaltool", + "url": "https://github.com/CCDirectLink/crosscode-map-editor/releases/download/v1.5.0/cc-map-editor-1.5.0-win.exe", + "hash": { "sha256": "5ff589127a29c0e7dad3f3a4eba107c30dff1824fddd3b03558b78c2eeca140c" }, + "platform": "win32" + } + ] }, "CCAreaEditor": { "metadataCCMod": { From 5a459401436c55d86fdc5640cecdfb3ad8631b81 Mon Sep 17 00:00:00 2001 From: krypek Date: Fri, 26 Apr 2024 11:15:34 +0200 Subject: [PATCH 156/196] CCBot New mod: CrossCode C Edition (#136) * CCBot: ccbot/1 * CCBot: Fill 'CrossCode C Edition' info --- input-locations.json | 3 ++- npDatabase.json | 25 +++++++++++++++++++++++++ 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/input-locations.json b/input-locations.json index 187525a5..b1dff9e1 100644 --- a/input-locations.json +++ b/input-locations.json @@ -55,5 +55,6 @@ { "url": "https://github.com/L-Sherry/Localize-me/archive/refs/tags/v0.6.1.zip" }, { "url": "https://github.com/L-Sherry/French-CC/releases/download/v1.5.0/French-CC-v1.5.0.ccmod" }, { "url": "https://github.com/L-Sherry/Bob-Rank/releases/download/v1.0.1/Bob-Rank-v1.0.1.ccmod" }, - { "url": "https://github.com/krypciak/ArcaneLab/releases/download/v0.1.7/arcane-lab-0.1.7.ccmod" } + { "url": "https://github.com/krypciak/ArcaneLab/releases/download/v0.1.7/arcane-lab-0.1.7.ccmod" }, + { "url": "https://github.com/elluminance/cc-c-edition/releases/download/v1.0.0/cc-c-edition.ccmod" } ] diff --git a/npDatabase.json b/npDatabase.json index 7e462879..d808b037 100644 --- a/npDatabase.json +++ b/npDatabase.json @@ -32,6 +32,31 @@ "stars": 31, "lastUpdateTimestamp": 1710069756000 }, + "CrossCode C Edition": { + "metadataCCMod": { + "id": "CrossCode C Edition", + "version": "1.0.0", + "title": "CrossCode C Edition", + "description": "The worst mod to ever be created.", + "repository": "https://github.com/elluminance/cc-c-edition", + "tags": [ + "cosmetic", + "fun" + ], + "authors": "elluminance" + }, + "installation": [ + { + "type": "zip", + "url": "https://github.com/elluminance/cc-c-edition/releases/download/v1.0.0/cc-c-edition.ccmod", + "hash": { + "sha256": "d5f947ca9a631b460624426bd470a99752f43efbe1a327ee39fa78736139bd06" + } + } + ], + "stars": 2, + "lastUpdateTimestamp": 1714070036000 + }, "Hadouken": { "metadataCCMod": { "id": "Hadouken", From 07b71b53bded3f7b614a973acb944d0411c9e04d Mon Sep 17 00:00:00 2001 From: krypek Date: Fri, 26 Apr 2024 11:24:31 +0200 Subject: [PATCH 157/196] CCBot New mod: cc-alybox (#137) * CCBot: ccbot/0 * CCBot: Fill 'cc-alybox' info --- input-locations.json | 3 ++- npDatabase.json | 28 ++++++++++++++++++++++++++++ 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/input-locations.json b/input-locations.json index b1dff9e1..4289eb73 100644 --- a/input-locations.json +++ b/input-locations.json @@ -56,5 +56,6 @@ { "url": "https://github.com/L-Sherry/French-CC/releases/download/v1.5.0/French-CC-v1.5.0.ccmod" }, { "url": "https://github.com/L-Sherry/Bob-Rank/releases/download/v1.0.1/Bob-Rank-v1.0.1.ccmod" }, { "url": "https://github.com/krypciak/ArcaneLab/releases/download/v0.1.7/arcane-lab-0.1.7.ccmod" }, - { "url": "https://github.com/elluminance/cc-c-edition/releases/download/v1.0.0/cc-c-edition.ccmod" } + { "url": "https://github.com/elluminance/cc-c-edition/releases/download/v1.0.0/cc-c-edition.ccmod" }, + { "url": "https://github.com/lexisother/cc-alybox/releases/download/v1.0.0/cc-alybox.ccmod" } ] diff --git a/npDatabase.json b/npDatabase.json index d808b037..21072176 100644 --- a/npDatabase.json +++ b/npDatabase.json @@ -370,6 +370,34 @@ "stars": 2, "lastUpdateTimestamp": 1711969075000 }, + "cc-alybox": { + "metadataCCMod": { + "id": "cc-alybox", + "version": "1.0.0", + "title": "AlyBox", + "description": "Library mod containing various extra features and fixes.", + "repository": "https://github.com/lexisother/cc-alybox", + "tags": [ + "library" + ], + "authors": "lexisother", + "prestart": "src/_prestart.js", + "dependencies": { + "ccloader": ">=2.22.1" + } + }, + "installation": [ + { + "type": "zip", + "url": "https://github.com/lexisother/cc-alybox/releases/download/v1.0.0/cc-alybox.ccmod", + "hash": { + "sha256": "5ed22aa552404e5a6a6eac083b9fc76603b2be2e5f4621e45cc6398a482b8abe" + } + } + ], + "stars": 1, + "lastUpdateTimestamp": 1714119354000 + }, "cc-blitzkrieg": { "metadataCCMod": { "id": "cc-blitzkrieg", From c9ac5907ae823d76df4d3376c4b243981d836e17 Mon Sep 17 00:00:00 2001 From: krypek Date: Fri, 26 Apr 2024 11:24:38 +0200 Subject: [PATCH 158/196] Increase timeout --- build/tests/npDatabase.mjs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/tests/npDatabase.mjs b/build/tests/npDatabase.mjs index 63fc3140..48741129 100644 --- a/build/tests/npDatabase.mjs +++ b/build/tests/npDatabase.mjs @@ -269,7 +269,7 @@ function testInstallation(mod) { await testZip(inst); break; } - }).timeout(10000); + }).timeout(100000); } } From 977ed9ce1e1e928e465b29be0c6bb9c5d7d73539 Mon Sep 17 00:00:00 2001 From: krypek Date: Fri, 26 Apr 2024 11:29:50 +0200 Subject: [PATCH 159/196] CCBot New mod: cc-oldmedia (#138) * CCBot: ccbot/0 * CCBot: Fill 'cc-oldmedia' info --- input-locations.json | 3 ++- npDatabase.json | 25 +++++++++++++++++++++++++ 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/input-locations.json b/input-locations.json index 4289eb73..5dca1538 100644 --- a/input-locations.json +++ b/input-locations.json @@ -57,5 +57,6 @@ { "url": "https://github.com/L-Sherry/Bob-Rank/releases/download/v1.0.1/Bob-Rank-v1.0.1.ccmod" }, { "url": "https://github.com/krypciak/ArcaneLab/releases/download/v0.1.7/arcane-lab-0.1.7.ccmod" }, { "url": "https://github.com/elluminance/cc-c-edition/releases/download/v1.0.0/cc-c-edition.ccmod" }, - { "url": "https://github.com/lexisother/cc-alybox/releases/download/v1.0.0/cc-alybox.ccmod" } + { "url": "https://github.com/lexisother/cc-alybox/releases/download/v1.0.0/cc-alybox.ccmod" }, + { "url": "https://github.com/lexisother/CCOldMedia/releases/download/v1.0.0/CCOldMedia.ccmod" } ] diff --git a/npDatabase.json b/npDatabase.json index 21072176..15d57243 100644 --- a/npDatabase.json +++ b/npDatabase.json @@ -619,6 +619,31 @@ "stars": 0, "lastUpdateTimestamp": 1710185123000 }, + "cc-oldmedia": { + "metadataCCMod": { + "id": "cc-oldmedia", + "version": "1.0.0", + "title": "CC-OldMedia", + "description": "A mod that brings back some old title screen assets.", + "repository": "https://github.com/lexisother/CCOldMedia", + "tags": [ + "cosmetic" + ], + "authors": "lexisother", + "prestart": "src/prestart.js" + }, + "installation": [ + { + "type": "zip", + "url": "https://github.com/lexisother/CCOldMedia/releases/download/v1.0.0/CCOldMedia.ccmod", + "hash": { + "sha256": "34e6543b7e56bb99fb68e53bba29b95dc8bae267210be65be8bdad89ad413fa2" + } + } + ], + "stars": 0, + "lastUpdateTimestamp": 1714119350000 + }, "cc-vim": { "metadataCCMod": { "id": "cc-vim", From 190df37301688d3fd4b4c708e3b49626689455f8 Mon Sep 17 00:00:00 2001 From: krypek Date: Fri, 26 Apr 2024 11:32:08 +0200 Subject: [PATCH 160/196] CCBot New mod: cc-quickinfo-exp (#139) * CCBot: ccbot/0 * CCBot: Fill 'cc-quickinfo-exp' info --- input-locations.json | 3 ++- npDatabase.json | 25 +++++++++++++++++++++++++ 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/input-locations.json b/input-locations.json index 5dca1538..cf8f62da 100644 --- a/input-locations.json +++ b/input-locations.json @@ -58,5 +58,6 @@ { "url": "https://github.com/krypciak/ArcaneLab/releases/download/v0.1.7/arcane-lab-0.1.7.ccmod" }, { "url": "https://github.com/elluminance/cc-c-edition/releases/download/v1.0.0/cc-c-edition.ccmod" }, { "url": "https://github.com/lexisother/cc-alybox/releases/download/v1.0.0/cc-alybox.ccmod" }, - { "url": "https://github.com/lexisother/CCOldMedia/releases/download/v1.0.0/CCOldMedia.ccmod" } + { "url": "https://github.com/lexisother/CCOldMedia/releases/download/v1.0.0/CCOldMedia.ccmod" }, + { "url": "https://github.com/lexisother/cc-quickinfo-exp/releases/download/v1.0.1/cc-quickinfo-exp.ccmod" } ] diff --git a/npDatabase.json b/npDatabase.json index 15d57243..84ddb183 100644 --- a/npDatabase.json +++ b/npDatabase.json @@ -644,6 +644,31 @@ "stars": 0, "lastUpdateTimestamp": 1714119350000 }, + "cc-quickinfo-exp": { + "metadataCCMod": { + "id": "cc-quickinfo-exp", + "version": "1.0.0", + "title": "QuickInfo EXP Viewer", + "description": "Shows the EXP the enemy will give you in the quickinfo popup.", + "repository": "https://github.com/lexisother/cc-quickinfo-exp", + "tags": [ + "QoL" + ], + "authors": "lexisother", + "poststart": "poststart.js" + }, + "installation": [ + { + "type": "zip", + "url": "https://github.com/lexisother/cc-quickinfo-exp/releases/download/v1.0.1/cc-quickinfo-exp.ccmod", + "hash": { + "sha256": "4c970477ed0eb168a7e641746df146636f057e803c4f3518880c669680c5ab91" + } + } + ], + "stars": 0, + "lastUpdateTimestamp": 1714119352000 + }, "cc-vim": { "metadataCCMod": { "id": "cc-vim", From ca403a28c0b341fe928fdcc77e5c9941c19438a2 Mon Sep 17 00:00:00 2001 From: krypek Date: Fri, 26 Apr 2024 11:34:25 +0200 Subject: [PATCH 161/196] CCBot New mod: ccpostdlc (#140) * CCBot: ccbot/0 * CCBot: Fill 'ccpostdlc' info --- input-locations.json | 3 ++- npDatabase.json | 28 ++++++++++++++++++++++++++++ 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/input-locations.json b/input-locations.json index cf8f62da..15d8ccf5 100644 --- a/input-locations.json +++ b/input-locations.json @@ -59,5 +59,6 @@ { "url": "https://github.com/elluminance/cc-c-edition/releases/download/v1.0.0/cc-c-edition.ccmod" }, { "url": "https://github.com/lexisother/cc-alybox/releases/download/v1.0.0/cc-alybox.ccmod" }, { "url": "https://github.com/lexisother/CCOldMedia/releases/download/v1.0.0/CCOldMedia.ccmod" }, - { "url": "https://github.com/lexisother/cc-quickinfo-exp/releases/download/v1.0.1/cc-quickinfo-exp.ccmod" } + { "url": "https://github.com/lexisother/cc-quickinfo-exp/releases/download/v1.0.1/cc-quickinfo-exp.ccmod" }, + { "url": "https://github.com/lexisother/CCPostDLC/releases/download/v1.0.0/CCPostDLC.ccmod" } ] diff --git a/npDatabase.json b/npDatabase.json index 84ddb183..577188eb 100644 --- a/npDatabase.json +++ b/npDatabase.json @@ -770,6 +770,34 @@ "stars": 0, "lastUpdateTimestamp": 1713626436000 }, + "ccpostdlc": { + "metadataCCMod": { + "id": "ccpostdlc", + "version": "1.0.0", + "title": "CCPostDLC", + "description": "Adjusts the game to continue after completing the DLC.", + "repository": "https://github.com/lexisother/CCPostDLC", + "tags": [ + "QoL" + ], + "authors": "lexisother", + "dependencies": { + "crosscode": ">=1.4.0", + "post-game": ">=1.4.0" + } + }, + "installation": [ + { + "type": "zip", + "url": "https://github.com/lexisother/CCPostDLC/releases/download/v1.0.0/CCPostDLC.ccmod", + "hash": { + "sha256": "de939232f9aa884d1986dd4f97023b5f68a2c41b8325e2139ab9a8c015879739" + } + } + ], + "stars": 0, + "lastUpdateTimestamp": 1714119349000 + }, "charged-balls": { "metadataCCMod": { "id": "charged-balls", From 577bace2da3babd4f3fd8a5f628bbc2abec3cffa Mon Sep 17 00:00:00 2001 From: krypek Date: Fri, 26 Apr 2024 11:34:51 +0200 Subject: [PATCH 162/196] Update todo.md --- todo.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/todo.md b/todo.md index 5ea08672..21f6ab26 100644 --- a/todo.md +++ b/todo.md @@ -33,14 +33,14 @@ - ~~https://github.com/EL20202/el-crosscode-tweaks/pull/2~~ - ~~https://github.com/EL20202/crosscode-extension-asset-preloader/pull/1~~ - ~~https://github.com/EL20202/crosscode-modifier-api-reborn/pull/1~~ -- https://github.com/elluminance/cc-c-edition/pull/1 +- ~~https://github.com/elluminance/cc-c-edition/pull/1~~ ### Alyx -- https://github.com/lexisother/CCPostDLC/pull/1 -- https://github.com/lexisother/CCOldMedia/pull/1 -- https://github.com/lexisother/cc-quickinfo-exp/pull/1 -- https://github.com/lexisother/cc-alybox/pull/1 +- ~~https://github.com/lexisother/CCPostDLC/pull/1~~ +- ~~https://github.com/lexisother/CCOldMedia/pull/1~~ +- ~~https://github.com/lexisother/cc-quickinfo-exp/pull/1~~ +- ~~https://github.com/lexisother/cc-alybox/pull/1~~ ### Xenon From 70b384c170021b21416a1b9e8c1ca953d07ee60d Mon Sep 17 00:00:00 2001 From: krypek Date: Fri, 26 Apr 2024 12:50:40 +0200 Subject: [PATCH 163/196] CCBot Update mod: arcane-lab (#141) * CCBot: ccbot/0 * CCBot: Fill 'arcane-lab' info --- input-locations.json | 2 +- npDatabase.json | 14 +++++++++----- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/input-locations.json b/input-locations.json index 15d8ccf5..c40f5fdb 100644 --- a/input-locations.json +++ b/input-locations.json @@ -55,7 +55,7 @@ { "url": "https://github.com/L-Sherry/Localize-me/archive/refs/tags/v0.6.1.zip" }, { "url": "https://github.com/L-Sherry/French-CC/releases/download/v1.5.0/French-CC-v1.5.0.ccmod" }, { "url": "https://github.com/L-Sherry/Bob-Rank/releases/download/v1.0.1/Bob-Rank-v1.0.1.ccmod" }, - { "url": "https://github.com/krypciak/ArcaneLab/releases/download/v0.1.7/arcane-lab-0.1.7.ccmod" }, + { "url": "https://github.com/krypciak/ArcaneLab/releases/download/v0.1.8/arcane-lab-0.1.8.ccmod" }, { "url": "https://github.com/elluminance/cc-c-edition/releases/download/v1.0.0/cc-c-edition.ccmod" }, { "url": "https://github.com/lexisother/cc-alybox/releases/download/v1.0.0/cc-alybox.ccmod" }, { "url": "https://github.com/lexisother/CCOldMedia/releases/download/v1.0.0/CCOldMedia.ccmod" }, diff --git a/npDatabase.json b/npDatabase.json index 577188eb..410b401b 100644 --- a/npDatabase.json +++ b/npDatabase.json @@ -268,7 +268,7 @@ "arcane-lab": { "metadataCCMod": { "id": "arcane-lab", - "version": "0.1.7", + "version": "0.1.8", "title": "\\c[3]Arcane Lab\\c[0]", "description": ":)", "repository": "https://github.com/2hh8899/ArcaneLab", @@ -287,16 +287,20 @@ ], "dependencies": { "ccloader": "^2.14.1", - "extendable-severed-heads": "^1.0.0" + "item-api": "^0.*", + "extendable-severed-heads": "^1.1.0", + "modifier-api": "^0.1.0", + "cc-alybox": ">=1.0.0" }, - "prestart": "prestart.js" + "prestart": "prestart.js", + "poststart": "poststart.js" }, "installation": [ { "type": "zip", - "url": "https://github.com/krypciak/ArcaneLab/releases/download/v0.1.7/arcane-lab-0.1.7.ccmod", + "url": "https://github.com/krypciak/ArcaneLab/releases/download/v0.1.8/arcane-lab-0.1.8.ccmod", "hash": { - "sha256": "cfe597c5878a37b8a1f3ea37b3185c04cf2c65a47da3fbaedc7f7fd5d8be3bd7" + "sha256": "7ebf872f7b058f87a2f1bd5f0f9ee481e7085d02cd292b7da0691d3e70597061" } } ], From 222338e427015fd5db3f7bab3982808c228878e9 Mon Sep 17 00:00:00 2001 From: krypek Date: Fri, 26 Apr 2024 15:17:13 +0200 Subject: [PATCH 164/196] Add star counts to tools.json --- tools.json | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/tools.json b/tools.json index fa2b0aad..087a6481 100644 --- a/tools.json +++ b/tools.json @@ -16,7 +16,8 @@ "url": "https://github.com/CCDirectLink/SpericalViewer/archive/v0.3.7.zip", "hash": { "sha256": "aac16a0c9169baae554783ca89a5a890329334e992343a7735313ae076099f2c" } } - ] + ], + "stars": 2 }, "ccloader": { "metadataCCMod": { @@ -35,7 +36,8 @@ "url": "https://github.com/CCDirectLink/CCLoader/archive/refs/tags/v2.23.3/v2.13.0.zip", "hash": { "sha256": "f7f7f9c7229985dfb62ac58129799070b6ae0114db043e343f6b20c34a6ff3cd" } } - ] + ], + "stars": 31 }, "CCAnimationEditor": { "metadataCCMod": { @@ -54,7 +56,8 @@ "url": "https://github.com/gregnk/CCAnimationEditor/releases/download/v0.2.8/CCAnimationEditor-v0.2.8.zip", "hash": { "sha256": "c1e2da297c88ce679a6d985ba10751ecb657138af03d0387a4fc8042cfcf460b" } } - ] + ], + "stars": 3 }, "crosscode-map-editor": { "metadataCCMod": { @@ -74,7 +77,8 @@ "hash": { "sha256": "5ff589127a29c0e7dad3f3a4eba107c30dff1824fddd3b03558b78c2eeca140c" }, "platform": "win32" } - ] + ], + "stars": 46 }, "CCAreaEditor": { "metadataCCMod": { @@ -88,6 +92,7 @@ "repository": "https://github.com/WatDuhHekBro/CCAreaEditor", "authors": ["WatDuhHekBro"] }, - "installation": [] + "installation": [], + "stars": 1 } } From 43202c71d9cc294df4bb9a5dd7dd546641d30be1 Mon Sep 17 00:00:00 2001 From: krypek Date: Wed, 1 May 2024 11:05:55 +0200 Subject: [PATCH 165/196] Remove mods.json and it's test files --- build/tests/moddb.mjs | 53 --- mods.json | 800 ------------------------------------------ 2 files changed, 853 deletions(-) delete mode 100644 build/tests/moddb.mjs delete mode 100644 mods.json diff --git a/build/tests/moddb.mjs b/build/tests/moddb.mjs deleted file mode 100644 index 6871f887..00000000 --- a/build/tests/moddb.mjs +++ /dev/null @@ -1,53 +0,0 @@ -// call with mocha -// require chai - -import { expect } from 'chai'; -import fs from 'fs'; - -describe('ModDB', () => { - - const FILE_PATH = './mods.json'; - const jsonData = JSON.parse(fs.readFileSync(FILE_PATH, 'utf8')); - - it('Check json structure', () => { - expect(typeof jsonData === 'object', - 'Json not valid: Not an object').to.be.true; - expect(Array.isArray(jsonData), - 'Json not valid: Not an object').to.be.false; - expect(jsonData !== null, - 'Json not valid: Not an object').to.be.true; - - expect(typeof jsonData.mods === 'object', - 'mods key missing').to.be.true; - }); - - describe('mods', () => { - - for (let mod in jsonData.mods) { - - describe(jsonData.mods[mod].name || mod, () => { - - it('Check for required elements', () => { - expect(typeof jsonData.mods[mod].name === 'string', - 'name (type: string) required').to.be.true; - expect(typeof jsonData.mods[mod].description === 'string', - 'description (type: string) required').to.be.true; - expect(typeof jsonData.mods[mod].archive_link === 'string', - 'archive_link (type: string) required').to.be.true; - expect(typeof jsonData.mods[mod].hash === 'object', - 'hash (type: object) required').to.be.true; - }); - - it('Check file', () => { - expect(/^https?:\/\// - .test(jsonData.mods[mod].archive_link), - 'invalid url').to.be.true; - }); - - }); - - } - - }); - -}); diff --git a/mods.json b/mods.json deleted file mode 100644 index c1e45e6b..00000000 --- a/mods.json +++ /dev/null @@ -1,800 +0,0 @@ -{ - "mods": { - "CCLoader display version": { - "name": "CCLoader display version", - "description": "Displays the current CCLoader version.", - "page": [ - { - "name": "GitHub", - "url": "https://github.com/CCDirectLink/CCLoader" - } - ], - "archive_link": "https://github.com/CCDirectLink/CCLoader/archive/refs/tags/v2.23.2/v2.13.0.zip", - "hash": { - "sha256": "b46a4f53e2db70a49ee015a1df91b9544124710fc11ce16ddaf835fb6ae767da" - }, - "version": "1.1.3" - }, - "Hadouken": { - "name": "Hadouken", - "description": "Lea yells various forms of HADOUKEN or SHORYUKEN when casting appropriate combat arts.", - "page": [ - { - "name": "GitHub", - "url": "https://github.com/CookieSalesman/CrossCode-HADOUKEN-v1.0" - } - ], - "archive_link": "https://github.com/CookieSalesman/CrossCode-HADOUKEN-v1.0/archive/refs/tags/v1.1.0.zip", - "hash": { - "sha256": "aef230417fb2f2acb233f47f62f12441b3add64af8264935642abbd3a17b45f8" - }, - "version": "1.0.0" - }, - "Named-Saves": { - "name": "Named Saves", - "description": "Lets you rename save slots.", - "page": [ - { - "name": "GitHub", - "url": "https://github.com/canbora/cc-named-saves" - } - ], - "archive_link": "https://github.com/canbora/cc-named-saves/releases/download/v1.0.1/cc-named-saves.ccmod", - "hash": { - "sha256": "3f73481fc8172d7af78eba5b80fbfb672135a8837c938f60b7f1598874fec1d9" - }, - "version": "1.0.0" - }, - "New game++": { - "name": "New game++", - "description": "A small collection of addons to CrossCode's NG+.", - "page": [ - { - "name": "GitHub", - "url": "https://github.com/CCDirectLink/CCNewGamePP" - } - ], - "archive_link": "https://github.com/CCDirectLink/CCNewGamePP/archive/refs/tags/v1.3.1.zip", - "hash": { - "sha256": "6ab9c06f8d2bb31af664c1cec929b8dd55623e43f699c56955555ac9a2ada02a" - }, - "version": "1.3.1" - }, - "Palicat": { - "name": "Palicat", - "description": "A mod that implement the palico from monster hunter world into the game.", - "page": [ - { - "name": "GitHub", - "url": "https://github.com/rioreur/palicat" - } - ], - "archive_link": "https://github.com/rioreur/palicat/archive/refs/tags/1.0.6.zip", - "hash": { - "sha256": "049a5afbdd46c3bd168e4abc3406fb1c987be8dc830f4a2ef0ad2b424fd201f1" - }, - "version": "1.0.6" - }, - "Qine": { - "name": "Qine", - "description": "Adds the character Qine as a party member and PvP duel.", - "page": [ - { - "name": "GitHub", - "url": "https://github.com/XenonA7/qine" - } - ], - "archive_link": "https://github.com/XenonA7/qine/archive/refs/tags/0.3.1.zip", - "hash": { - "sha256": "8db827667134f32a15e98507bee700c97e24445d57c9d0e50275fdc5f5f98287" - }, - "version": "0.3.1" - }, - "Simplify": { - "name": "Simplify", - "description": "Library mod for CCLoader2.", - "page": [ - { - "name": "GitHub", - "url": "https://github.com/CCDirectLink/CCLoader" - } - ], - "archive_link": "https://github.com/CCDirectLink/CCLoader/archive/refs/tags/v2.23.2/v2.13.0.zip", - "hash": { - "sha256": "b46a4f53e2db70a49ee015a1df91b9544124710fc11ce16ddaf835fb6ae767da" - }, - "version": "2.13.0" - }, - "arcane-lab": { - "name": "\\c[3]Arcane Lab\\c[0]", - "description": ":)", - "page": [ - { - "name": "GitHub", - "url": "https://github.com/2hh8899/ArcaneLab" - } - ], - "archive_link": "https://github.com/krypciak/ArcaneLab/releases/download/v0.1.7/arcane-lab-0.1.7.ccmod", - "hash": { - "sha256": "cfe597c5878a37b8a1f3ea37b3185c04cf2c65a47da3fbaedc7f7fd5d8be3bd7" - }, - "version": "0.1.7" - }, - "blades": { - "name": "Blades", - "description": "Asset which replaces balls with blades, now for all classes!", - "page": [ - { - "name": "GitHub", - "url": "https://github.com/CCDirectLink/Blades" - } - ], - "archive_link": "https://github.com/CCDirectLink/Blades/archive/1.6.0.zip", - "hash": { - "sha256": "d28fc9eeff4240aa9775ad6bbe4723f9dbcb6defe15b23e483ee490c48acab18" - }, - "version": "1.5.0" - }, - "bobrank": { - "name": "Bob-Rank", - "description": "Adds an unforgettable special effect on S-Rank", - "page": [ - { - "name": "GitHub", - "url": "https://github.com/L-Sherry/Bob-Rank" - } - ], - "archive_link": "https://github.com/L-Sherry/Bob-Rank/releases/download/v1.0.1/Bob-Rank-v1.0.1.ccmod", - "hash": { - "sha256": "8de4833b0c42f8089cf6c13f5131f8cf3c6bd637516d56e1aaa4f1b81a894dbd" - }, - "version": "1.0.1" - }, - "cc-blitzkrieg": { - "name": "Blitzkrieg (WIP)", - "description": "Puzzle solving, incresed puzzle difficuly, puzzle and boss collection tools", - "page": [ - { - "name": "GitHub", - "url": "https://github.com/krypciak/cc-blitzkrieg" - } - ], - "archive_link": "https://github.com/krypciak/cc-blitzkrieg/releases/download/v0.5.5/cc-blitzkrieg-0.5.5.ccmod", - "hash": { - "sha256": "8c01ea748ae38b6c8bf2d4c01ab6c80dd1bcedcae3beb411f46c8e6d007fa5c2" - }, - "version": "0.5.5" - }, - "cc-capped-stats": { - "name": "Capped Stats", - "description": "Adds a visual stat cap - see your stats for what they really aren't!", - "page": [ - { - "name": "GitHub", - "url": "https://github.com/elluminance/cc-capped-stats" - } - ], - "archive_link": "https://github.com/elluminance/cc-capped-stats/releases/download/v1.0.0/cc-capped-stats.ccmod", - "hash": { - "sha256": "afd410d055effb03c46b8604cab4f402a0ec986b2c9394c4af3be3546a594f79" - }, - "version": "1.0.0" - }, - "cc-character-widgets": { - "name": "Character swap widgets", - "description": "Adds a character swap quick menu widgets", - "page": [ - { - "name": "GitHub", - "url": "https://github.com/krypciak/cc-character-widgets" - } - ], - "archive_link": "https://github.com/krypciak/cc-character-widgets/releases/download/v1.0.0/cc-character-widgets-1.0.0.ccmod", - "hash": { - "sha256": "64fe713374289d4e9e164afa6e23b96ab3f397323f0e37977fb6ffc1fd70122b" - }, - "version": "1.0.0" - }, - "cc-discord": { - "name": "Rich Presence for Discord", - "description": "Show off your CrossCode skills in Discord.", - "page": [ - { - "name": "GitHub", - "url": "https://github.com/CCDirectLink/CCdiscord" - } - ], - "archive_link": "https://github.com/CCDirectLink/CCdiscord/archive/refs/tags/v1.0.2.zip", - "hash": { - "sha256": "0c6cda02465a16e99b70f8e271aad886b16b4f2b6c880c9e1c2a52f323cc4772" - }, - "version": "1.0.2" - }, - "cc-extra-dialogue": { - "name": "CrossCode Extra Dialogue", - "description": "Adds more lore-friendly dialogue for party members.", - "page": [ - { - "name": "GitHub", - "url": "https://github.com/Paradragon/cc-extra-dialogue" - } - ], - "archive_link": "https://github.com/krypciak/cc-extra-dialogue/releases/download/v1.0.1/cc-extra-dialogue.ccmod", - "hash": { - "sha256": "851d2c3aafcf7dda646e6ee80da3c99588a60f6735f2b8a64abb17cea9f85f5d" - }, - "version": "1.0.1" - }, - "cc-fancy-crash": { - "name": "Fancy crash", - "description": "Better crash message", - "page": [ - { - "name": "GitHub", - "url": "https://github.com/krypciak/cc-fancy-crash" - } - ], - "archive_link": "https://github.com/krypciak/cc-fancy-crash/releases/download/v1.0.8/cc-fancy-crash-1.0.8.ccmod", - "hash": { - "sha256": "4072312dfc3d9f99b0b33df61dc8470f96e53453c9b45b71d7e9ef83db24b7aa" - }, - "version": "1.0.8" - }, - "cc-jetpack-widget": { - "name": "Jetpack widget", - "description": "Adds a jetpack quick menu widget", - "page": [ - { - "name": "GitHub", - "url": "https://github.com/krypciak/cc-jetpack-widget" - } - ], - "archive_link": "https://github.com/krypciak/cc-jetpack-widget/releases/download/v1.0.3/cc-jetpack-widget-1.0.3.ccmod", - "hash": { - "sha256": "b0d196493a2b3a02ea2b239ea06d2bb350e4ed6b6f5f57ab7c2226e12b7e9570" - }, - "version": "1.0.3" - }, - "cc-vim": { - "name": "Vim Command Mode", - "description": "Adds a popup command prompt", - "page": [ - { - "name": "GitHub", - "url": "https://github.com/krypciak/cc-vim" - } - ], - "archive_link": "https://github.com/krypciak/cc-vim/releases/download/v1.6.0/cc-vim-1.6.0.ccmod", - "hash": { - "sha256": "6e4e2aa1959f45c0a268a72328fc5c9d25bf997f6f67b8f7400d45de6c9d9539" - }, - "version": "1.6.0" - }, - "ccloader": { - "name": "CCLoader", - "description": "Modloader for CrossCode. This or a similar modloader is needed for most mods.", - "page": [ - { - "name": "GitHub", - "url": "https://github.com/CCDirectLink/CCLoader" - } - ], - "archive_link": "https://github.com/CCDirectLink/CCLoader/archive/refs/tags/v2.23.2/v2.13.0.zip", - "hash": { - "sha256": "b46a4f53e2db70a49ee015a1df91b9544124710fc11ce16ddaf835fb6ae767da" - }, - "version": "2.23.2" - }, - "ccmodmanager": { - "name": "CCModManager", - "description": "Mod manager for CrossCode!", - "page": [ - { - "name": "GitHub", - "url": "https://github.com/CCDirectLink/CCModManager" - } - ], - "archive_link": "https://github.com/CCDirectLink/CCModManager/releases/download/v0.9.10/ccmodmanager-0.9.10.ccmod", - "hash": { - "sha256": "8916aabad418291c17629030150d6ac7a7fc6b26567942a031f4027262a65103" - }, - "version": "0.9.10" - }, - "charged-balls": { - "name": "Charged balls", - "description": "Replaces normal VRPs with charged VRPs", - "page": [ - { - "name": "GitHub", - "url": "https://github.com/CCDirectLink/CC-ChargedBalls" - } - ], - "archive_link": "https://github.com/CCDirectLink/CC-ChargedBalls/archive/refs/tags/1.0.2.zip", - "hash": { - "sha256": "f03c037b26839d84d92c76cd22f85bde1d3fcf3ffa437e8260262d0e6ae77c33" - }, - "version": "1.0.2" - }, - "cheats": { - "name": "Cheats", - "description": "This mod adds cheats to CrossCode.", - "page": [ - { - "name": "GitHub", - "url": "https://github.com/ZeikJT/CrossCodeCheats" - } - ], - "archive_link": "https://github.com/ZeikJT/CrossCodeCheats/archive/refs/tags/1.4.1-patch.zip", - "hash": { - "sha256": "4a328f0c42e6082fb5bf23e9df868cee20a0711d73df5d17780856c3ee19576f" - }, - "version": "1.4.1" - }, - "clean-title-screen": { - "name": "Clean Title Screen", - "description": "Removes Lea from the title screen", - "page": [ - { - "name": "GitHub", - "url": "https://github.com/XenonA7/clean-title-screen" - } - ], - "archive_link": "https://github.com/XenonA7/clean-title-screen/archive/refs/tags/1.0.1.zip", - "hash": { - "sha256": "fbd13967461584e8f74062f6aa1c9fe34c4dce185ec9b8cfa4ea4340fb5c66e2" - }, - "version": "1.0.1" - }, - "crossedeyes": { - "name": "CrossedEyes", - "description": "Accessibility mod for CrossCode", - "page": [ - { - "name": "GitHub", - "url": "https://github.com/CCDirectLink/CrossedEyes" - } - ], - "archive_link": "https://github.com/CCDirectLink/CrossedEyes/releases/download/v0.6.0/crossedeyes-0.6.0.ccmod", - "hash": { - "sha256": "58bc3afd39aebb0ac99ac7f126b5e4ac7c245310f4addee41387438c37e49d9f" - }, - "version": "0.6.0" - }, - "cursedcode": { - "name": "CursedCode", - "description": "Cursed custom maps.", - "page": [ - { - "name": "GitHub", - "url": "https://github.com/Symphiel/CursedCode" - } - ], - "archive_link": "https://github.com/Symphiel/CursedCode/archive/refs/tags/0.1.1-2.zip", - "hash": { - "sha256": "7975f9d6862fdfa5066052a52b3e9174ab92df6ae7d8187101f40ca4ccfbd4af" - }, - "version": "0.1.2" - }, - "el-tweaks": { - "name": "EL's Tweaks", - "description": "A coremod full of useful functionality for modders, as well as many tweaks for players.", - "page": [ - { - "name": "GitHub", - "url": "https://github.com/elluminance/el-crosscode-tweaks" - } - ], - "archive_link": "https://github.com/elluminance/el-crosscode-tweaks/releases/download/v0.7.5/els-tweaks.ccmod", - "hash": { - "sha256": "30421792706ab587c67af19b698609d0c2ae6712adfaa3464bf4d3776ee66c90" - }, - "version": "0.7.5" - }, - "element-boss": { - "name": "Element Boss", - "description": "Adds a new boss battle to the game.", - "page": [ - { - "name": "GitHub", - "url": "https://github.com/krypciak/cc-element-boss" - } - ], - "archive_link": "https://github.com/krypciak/cc-element-boss/releases/download/v0.1.3/element-boss-0.1.3.ccmod", - "hash": { - "sha256": "569d371c4bb151222e5d8cd1104115bfe6c5fe1b4325813e586e26ecbe0fbbb2" - }, - "version": "0.1.3" - }, - "extendable-severed-heads": { - "name": "extendable-severed-heads", - "description": "Library for adding new character head icons", - "page": [ - { - "name": "GitHub", - "url": "https://github.com/CCDirectLink/extendable-severed-heads" - } - ], - "archive_link": "https://github.com/CCDirectLink/extendable-severed-heads/archive/refs/tags/v1.1.1.zip", - "hash": { - "sha256": "f5613ac92ac20e138dec801063f8673aa15696836dd15700305e9007f6de119a" - }, - "version": "1.1.1" - }, - "extension-asset-preloader": { - "name": "Extension Asset Preloader", - "description": "Fixes files from extensions potentially not being loaded during the game's loading.", - "page": [ - { - "name": "GitHub", - "url": "https://github.com/elluminance/crosscode-extension-asset-preloader" - } - ], - "archive_link": "https://github.com/elluminance/crosscode-extension-asset-preloader/releases/download/v1.0.0/extension-asset-preloader.ccmod", - "hash": { - "sha256": "ec7f83e4064a220ac6ca44d8bb4659cc2665709b5dcc173ea515133ef06b7b09" - }, - "version": "1.0.0" - }, - "font-utils": { - "name": "Font Utilities", - "description": "Adds various new font colors!", - "page": [ - { - "name": "GitHub", - "url": "https://github.com/elluminance/crosscode-font-utils" - } - ], - "archive_link": "https://github.com/elluminance/crosscode-font-utils/releases/download/v1.2.1/font-utils.ccmod", - "hash": { - "sha256": "82b694a6e808081d9db494a57598944c6c7363439f561e87832225677e61769a" - }, - "version": "1.2.0" - }, - "french": { - "name": "French", - "description": "CrossCode in french !", - "page": [ - { - "name": "GitHub", - "url": "https://github.com/L-Sherry/French-CC" - } - ], - "archive_link": "https://github.com/L-Sherry/French-CC/releases/download/v1.5.0/French-CC-v1.5.0.ccmod", - "hash": { - "sha256": "784ec246a62d901c0969b42c1b2fb95f51302db6aa54dc639cee00e55686844c" - }, - "version": "1.5.0" - }, - "input-api": { - "name": "input-api", - "description": "Allows mods to add rebindable key bindings", - "page": [ - { - "name": "GitHub", - "url": "https://github.com/CCDirectLink/input-api" - } - ], - "archive_link": "https://github.com/CCDirectLink/input-api/archive/refs/tags/v1.0.2.zip", - "hash": { - "sha256": "414d3b091a4644b6d52ec64cac1e8017fda69fec5792f32ff1b40e674d1aec78" - }, - "version": "1.0.2" - }, - "item-api": { - "name": "Item API", - "description": "Allows custom items to be prepared in such a way that they 'just work'.", - "page": [ - { - "name": "GitHub", - "url": "https://github.com/CCDirectLink/item-api" - } - ], - "archive_link": "https://github.com/CCDirectLink/item-api/releases/download/v0.4.4/item-api.ccmod", - "hash": { - "sha256": "82523e959809c7b46cce0d7c702f9bf85f1981a80ac999be09782811fcaa33d0" - }, - "version": "0.4.4" - }, - "jetpack": { - "name": "Jetpack", - "description": "Turns your CTRL key into a jetpack", - "page": [ - { - "name": "GitHub", - "url": "https://github.com/CCDirectLink/CCJetpack" - } - ], - "archive_link": "https://github.com/CCDirectLink/CCJetpack/archive/refs/tags/v0.2.1.zip", - "hash": { - "sha256": "bae0bbb4c500cf27725e1dce963829c0d5e253333d8362e42b563f66a3e275dd" - }, - "version": "0.2.1" - }, - "junolea": { - "name": "Junolea Skin", - "description": "Adds a skin which makes Lea look like Juno", - "page": [ - { - "name": "GitHub", - "url": "https://github.com/Inevitabilis/CC-Junolea" - } - ], - "archive_link": "https://github.com/Inevitabilis/CC-Junolea/archive/refs/tags/v1.0.1.zip", - "hash": { - "sha256": "caa6fce0f7b2d604622f06c32b19e8cf1e1026ec1ac0bd4e07beec2a060b3fc6" - }, - "version": "1.0.0" - }, - "localize-me": { - "name": "Localize Me", - "description": "Add support for more locales, languages and translations", - "license": "MIT", - "page": [ - { - "name": "GitHub", - "url": "https://github.com/L-Sherry/Localize-Me" - } - ], - "archive_link": "https://github.com/L-Sherry/Localize-me/archive/refs/tags/v0.6.1.zip", - "hash": { - "sha256": "9929a522987ec0d7e32163708c089b353f48feeb1f1129ca97ef133bc56f80b6" - }, - "version": "0.6.1" - }, - "lqm-joern-mod": { - "name": "Lubkuluk's Joern and \\c[7]Quadroguard\\c[0] Mod \\i[party-BEHAVIOUR-1] (WIP)", - "description": "Modifies Joern in a way Lubkuluk desires. \\c[1]Is in early access, expect some bugs.\\c[0]", - "page": [ - { - "name": "GitHub", - "url": "https://github.com/lubkuluk/lubkuluks-joern-mod" - } - ], - "archive_link": "https://github.com/lubkuluk/lubkuluks-joern-mod/files/14393459/lubkuluks-joern-mod.zip", - "hash": { - "sha256": "d3828f11fc7c70e104c040d03d2d2f8de017e4dff1e715eb77ac37bef7106c2e" - }, - "version": "0.5.4" - }, - "map-watch": { - "name": "Map Watcher", - "description": "A mod that automatically loads a map when changes are detected", - "page": [ - { - "name": "GitHub", - "url": "https://github.com/CCDirectLink/map-watch" - } - ], - "archive_link": "https://github.com/CCDirectLink/map-watch/archive/refs/tags/v1.1.1.zip", - "hash": { - "sha256": "d5001f812cc76c45669b9770317f33eb350a058e89d366094ac188dd6af9b6e2" - }, - "version": "1.1.1" - }, - "menu-ui-replacer": { - "name": "menu-ui-replacer", - "description": "Replace Lea with the character of your choice in the menu!", - "page": [ - { - "name": "GitHub", - "url": "https://github.com/CCDirectLink/cc-menu-ui-replacement" - } - ], - "archive_link": "https://github.com/CCDirectLink/cc-menu-ui-replacement/archive/refs/tags/v1.0.4.zip", - "hash": { - "sha256": "03c58361eef15b359d47282cb5ecb4656b269846c21c527bffeb9b0c122fc5d4" - }, - "version": "1.0.4" - }, - "modifier-api": { - "name": "Modifier API \\c[3]Reborn\\c[0]", - "description": "Enables easier creation and usage of custom modifiers and statuses.", - "page": [ - { - "name": "GitHub", - "url": "https://github.com/elluminance/crosscode-modifier-api-reborn" - } - ], - "archive_link": "https://github.com/elluminance/crosscode-modifier-api-reborn/releases/download/v0.1.1/modifier-api.ccmod", - "hash": { - "sha256": "2e2ebf66a3bdb3a98d19b59c6e51918cea050940a28de4657b7dc05c62d1b30b" - }, - "version": "0.1.1" - }, - "mw-rando": { - "name": "Multiworld randomizer", - "description": "Client for CrossCode Archipelago Integration", - "page": [ - { - "name": "GitHub", - "url": "https://github.com/CodeTriangle/CCMultiworldRandomizer" - } - ], - "archive_link": "https://github.com/CodeTriangle/CCMultiworldRandomizer/releases/download/0.4.1/CCMultiworldRandomizer-0.4.1.ccmod", - "hash": { - "sha256": "507105210e9407aea44cead7a057749b79cb3ffbf3caac7c947af1a3c517922e" - }, - "version": "0.4.1" - }, - "nax-ccuilib": { - "name": "CCUILib", - "description": "Library of additional UI elements as well as making existing ones configurable", - "page": [ - { - "name": "GitHub", - "url": "https://github.com/conorlawton/nax-ccuilib" - } - ], - "archive_link": "https://github.com/krypciak/nax-ccuilib/releases/download/v1.2.6/nax-ccuilib.ccmod", - "hash": { - "sha256": "77a57af942c9058074bb794f538118ea98b18513fe20c7dd674524c3cb3e2a67" - }, - "version": "1.2.6" - }, - "nax-module-cache": { - "name": "Module Cache", - "description": "Caches module paths for ig._loadScript", - "page": [ - { - "name": "GitHub", - "url": "https://github.com/conorlawton/nax-module-cache" - } - ], - "archive_link": "https://github.com/krypciak/nax-module-cache/releases/download/v1.0.2/nax-module-cache.ccmod", - "hash": { - "sha256": "86b3fb25b75c8edd5b6079577d7df6748e6494165b1b77d31f73311f577763a8" - }, - "version": "1.0.2" - }, - "nine-rooms": { - "name": "Nine Rooms", - "description": "A little piece of lost history.", - "page": [ - { - "name": "GitHub", - "url": "https://github.com/Pyrocorvid/CCNineRooms" - } - ], - "archive_link": "https://github.com/Pyrocorvid/CCNineRooms/archive/refs/tags/v1.0.2.zip", - "hash": { - "sha256": "92e33f6054472644a86dc3d3502d193455e32de31d05772299efae8bc1aca95f" - }, - "version": "0.1.0" - }, - "open-world": { - "name": "Open World patches", - "description": "Open World map patches for randomizer", - "page": [ - { - "name": "GitHub", - "url": "https://github.com/buanjautista/cc-open-world" - } - ], - "archive_link": "https://github.com/buanjautista/cc-open-world/releases/download/0.3.2/cc-open-world.v0.3.2.ccmod", - "hash": { - "sha256": "e00a9a5215e71e40a77f0a6883f6d2856e9c6e36270e6fc0227106bfe64266d0" - }, - "version": "0.3.2" - }, - "party-element-effects": { - "name": "Party Element Effects", - "description": "Shows the proper effect when party members swap elements", - "page": [ - { - "name": "GitHub", - "url": "https://github.com/XenonA7/cc-party-element-effects" - } - ], - "archive_link": "https://github.com/XenonA7/cc-party-element-effects/archive/refs/tags/1.0.1.zip", - "hash": { - "sha256": "d8b2790f6e028fedcb13f68d5824b46aca2b3f2ae8be78f7ab4523cdba4d959c" - }, - "version": "1.0.1" - }, - "past-booster": { - "name": "Past Booster", - "description": "Makes the Nine Rooms mod a little more... post-gamey.", - "page": [ - { - "name": "GitHub", - "url": "https://github.com/Pyrocorvid/CCNineRooms" - } - ], - "archive_link": "https://github.com/Pyrocorvid/CCNineRooms/archive/refs/tags/v1.0.2.zip", - "hash": { - "sha256": "92e33f6054472644a86dc3d3502d193455e32de31d05772299efae8bc1aca95f" - }, - "version": "0.1.0" - }, - "preset-revival-plus": { - "name": "Preset Revival Plus", - "description": "Brings back the preset menu, which allows you to start the game at a specific point.", - "page": [ - { - "name": "GitHub", - "url": "https://github.com/EpicYoshiMaster/CCPresetRevivalPlus" - } - ], - "archive_link": "https://github.com/EpicYoshiMaster/CCPresetRevivalPlus/releases/download/2.1.1/CCPresetRevivalPlus.v2.1.1.ccmod", - "hash": { - "sha256": "19aa49547dfd4fe686be1e490b6b004ef36250d057de896984a91c11bf2adb77" - }, - "version": "2.1.1" - }, - "timer": { - "name": "CCTimer", - "description": "A speedrun timer for CrossCode.", - "page": [ - { - "name": "GitHub", - "url": "https://github.com/CCDirectLink/CCTimer" - } - ], - "archive_link": "https://github.com/CCDirectLink/CCTimer/archive/refs/tags/v3.0.2.zip", - "hash": { - "sha256": "4ce4598a04a0a9582dcbc57f8c5753d033940f22e86d8c9a216c78dc41ed4b18" - }, - "version": "3.0.2" - }, - "timewalker": { - "name": "timewalker", - "description": "Lets you control time.", - "page": [ - { - "name": "GitHub", - "url": "https://github.com/CCDirectLink/CCTimeWalker" - } - ], - "archive_link": "https://github.com/CCDirectLink/CCTimeWalker/archive/refs/tags/v0.3.1.zip", - "hash": { - "sha256": "e197eaf2927a7b24c51e1560f5076268492fd2c12ccb3fde6cff7c2677fb3220" - }, - "version": "0.3.1" - }, - "xenons-triblader-mod": { - "name": "Xenon's \\c[2]Triblader\\c[0] Mod \\i[diff-2]", - "description": "Playable Tribladers, PVP, and more!", - "page": [ - { - "name": "GitHub", - "url": "https://github.com/XenonA7/xenons-triblader-mod" - } - ], - "archive_link": "https://github.com/XenonA7/xenons-triblader-mod/archive/refs/tags/1.0.1.zip", - "hash": { - "sha256": "f7c86bf095cdd2bc37922c8580558bd0e76dbd8657e58648470fb77ca128a0ae" - }, - "version": "1.0.1" - }, - "xmc-hexacast": { - "name": "XMC - \\c[2]Hexacast\\c[0] \\c[1](WIP)\\c[0]", - "description": "Adds a playable hexacast to XMC \\c[1](Mod Incomplete!)\\c[0]", - "page": [ - { - "name": "GitHub", - "url": "https://github.com/XenonA7/xmc-hexacast" - } - ], - "archive_link": "https://github.com/XenonA7/xmc-hexacast/archive/refs/tags/0.27.3.zip", - "hash": { - "sha256": "1444b03e3efd05f0bb1aeee5d9f9e3c0e5315cb0cdd10d3440474e7737cac3c3" - }, - "version": "0.27.3" - }, - "xmc-litter": { - "name": "XMC - Hexacast Litter", - "description": "Makes Hexacast spellcards linger on the ground for a long time \\c[3](visual only)\\c[0]", - "page": [ - { - "name": "GitHub", - "url": "https://github.com/XenonA7/xmc-hexacast-litter" - } - ], - "archive_link": "https://github.com/XenonA7/xmc-hexacast-litter/archive/refs/tags/1.0.8.zip", - "hash": { - "sha256": "1fd83d646bcafc8e698568385150047fdbc68c21a20f02556a7f572f68bfe848" - }, - "version": "1.0.8" - } - } -} \ No newline at end of file From c03fdcfed1c303f3eaa06b79fdf0a144f6f655bc Mon Sep 17 00:00:00 2001 From: krypek Date: Wed, 1 May 2024 17:31:15 +0200 Subject: [PATCH 166/196] Fix ccbot CI --- .github/workflows/ccbot.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ccbot.yaml b/.github/workflows/ccbot.yaml index 49e12b2a..7b5815bc 100644 --- a/.github/workflows/ccbot.yaml +++ b/.github/workflows/ccbot.yaml @@ -12,7 +12,7 @@ jobs: completePR: name: Fill CCBot PR info runs-on: ubuntu-latest - if: startsWith(github.event.pull_request.title, 'CCBot:') + if: startsWith(github.event.pull_request.title, 'CCBot') steps: - uses: actions/checkout@v4 From de99251463d43c61c6a2f134971a950e55fa95bf Mon Sep 17 00:00:00 2001 From: krypek Date: Wed, 1 May 2024 20:35:47 +0200 Subject: [PATCH 167/196] Cleanup the main function --- build/src/main.ts | 41 +++++++++++++++++++++-------------------- 1 file changed, 21 insertions(+), 20 deletions(-) diff --git a/build/src/main.ts b/build/src/main.ts index 045ff2c3..195d95b5 100644 --- a/build/src/main.ts +++ b/build/src/main.ts @@ -4,7 +4,7 @@ import * as db from './db' import fs from 'fs' import semver from 'semver' import type { PackageDB } from './types' -import {getStringFromLocalisedString} from './api' +import { getStringFromLocalisedString } from './api' async function main() { const GITHUB_TOKEN = process.env['GITHUB_TOKEN'] @@ -21,26 +21,27 @@ async function main() { const pkgDb = await db.build(packages, oldPkgDb) await db.write(pkgDb) - if (oldPkgDb) { - for (const name in pkgDb) { - let type: 'New' | 'Update' | undefined - const pkg = pkgDb[name] - const oldPkg = oldPkgDb[name] - if (!oldPkg) type = 'New' - else if (semver.gt(pkg.metadataCCMod!.version!, oldPkg.metadataCCMod!.version!)) type = 'Update' + if (oldPkgDb) printOutChanges(pkgDb, oldPkgDb) +} + +function printOutChanges(pkgDb: PackageDB, oldPkgDb: PackageDB) { + for (const name in pkgDb) { + let type: 'New' | 'Update' | undefined + const pkg = pkgDb[name] + const oldPkg = oldPkgDb[name] + if (!oldPkg) type = 'New' + else if (semver.gt(pkg.metadataCCMod!.version!, oldPkg.metadataCCMod!.version!)) type = 'Update' - if (type) { - const ccmod = pkg.metadataCCMod! - // prettier-ignore - const arr: string[] = [ - type, - ccmod.id, - ccmod.version!, - getStringFromLocalisedString(ccmod.title ?? 'unknown'), - getStringFromLocalisedString(ccmod.description ?? 'unknown') - ] - console.log(arr.join('|')) - } + if (type) { + const ccmod = pkg.metadataCCMod! + const arr: string[] = [ + type, + ccmod.id, + ccmod.version!, + getStringFromLocalisedString(ccmod.title ?? 'unknown'), + getStringFromLocalisedString(ccmod.description ?? 'unknown'), + ] + console.log(arr.join('|')) } } } From cb58f5ec171cb31676b339b598ff5511fb128282 Mon Sep 17 00:00:00 2001 From: krypek Date: Wed, 1 May 2024 20:48:39 +0200 Subject: [PATCH 168/196] Remove mod legacy package.json metadata testing --- build/tests/npDatabase.mjs | 110 +++++-------------------------------- 1 file changed, 13 insertions(+), 97 deletions(-) diff --git a/build/tests/npDatabase.mjs b/build/tests/npDatabase.mjs index 48741129..7b18331b 100644 --- a/build/tests/npDatabase.mjs +++ b/build/tests/npDatabase.mjs @@ -55,13 +55,6 @@ export function testPackage(jsonData, mod, name) { expect(mod !== null, 'package must not be null').to.be.true; - // expect(typeof mod.metadata === 'object', - // 'metadata (type: object) required').to.be.true; - // expect(Array.isArray(mod.metadata), - // 'metadata (type: object) required').to.be.false; - // expect(mod.metadata !== null, - // 'metadata (type: object) required').to.be.true; - expect(mod.metadataCCMod !== undefined, 'metadataCCMod (type: object) required').to.be.true @@ -74,10 +67,6 @@ export function testPackage(jsonData, mod, name) { }); if (mod) { - if (mod.metadata) { - testMetadata(jsonData, mod.metadata); - } - if (mod.metadataCCMod) { testMetadataCCMod(jsonData, mod.metadataCCMod); } @@ -89,77 +78,18 @@ export function testPackage(jsonData, mod, name) { }); } -function testMetadata(jsonData, metadata) { - it('Test metadata', () => { - expect(typeof metadata.name === 'string', - 'metadata.name (type: string) required').to.be.true; - - expect([undefined, 'mod', 'tool', 'base'].includes(metadata.ccmodType), - 'metadata.ccmodType (type: string) must have one of: ' - + '[undefined, "mod", "tool", "base"]').to.be.true; - - expect(metadata.version === undefined - || semver.valid(metadata.version) !== null, - 'metadata.version (type: string) must be undefined or valid semver') - .to.be.true; - - expect(metadata.ccmodHumanName === undefined - || typeof metadata.ccmodHumanName === 'string', - 'metadata.ccmodHumanName (type: string) has wrong type').to.be.true; - expect(metadata.description === undefined - || typeof metadata.description === 'string', - 'metadata.description (type: string) has wrong type').to.be.true; - expect(metadata.license === undefined - || typeof metadata.license === 'string', - 'metadata.license (type: string) has wrong type').to.be.true; - expect(metadata.homepage === undefined - || typeof metadata.homepage === 'string', - 'metadata.homepage (type: string) has wrong type').to.be.true; - }); - - if (metadata.ccmodDependencies) { - it('Test check dependencies', () => { - expect(typeof metadata.ccmodDependencies === 'object', - 'metadata.ccmodDependencies (type: object) must be an object') - .to.be.true; - expect(Array.isArray(metadata.ccmodDependencies), - 'metadata.ccmodDependencies (type: object) must be an object') - .to.be.false; - expect(metadata.ccmodDependencies !== null, - 'metadata.ccmodDependencies (type: object) must be an object') - .to.be.true; - - for (const dep of Object.keys(metadata.ccmodDependencies)) { - expect(semver.validRange(metadata.ccmodDependencies[dep]), - `dependency ${dep} must be specify a valid range`) - .to.not.be.null; - - if ( - [ - 'crosscode', - 'simplify', - // https://github.com/CCDirectLink/CCLoader3/blob/edb3481d9ea504e2c7f7fe46709ab2b4a7f2ce0b/src/game.ts#L9-L17 - 'fish-gear', - 'flying-hedgehag', - 'manlea', - 'ninja-skin', - 'post-game', - 'scorpion-robo', - 'snowman-tank', - ].includes(dep.toLowerCase())) { - continue; - } - - expect(jsonData[dep] || Object.values(jsonData).find(mod => mod.metadata && mod.metadata.name === dep), - `dependency ${dep} must be registered in CCModDb`) - .to.not.be.undefined; - } - }); - } else { - expect(metadata.dependencies === undefined, - 'metadata.dependencies must not be used').to.be.true; - } -} +const skipTheseModDependencies = [ + 'crosscode', + 'simplify', + // https://github.com/CCDirectLink/CCLoader3/blob/edb3481d9ea504e2c7f7fe46709ab2b4a7f2ce0b/src/game.ts#L9-L17 + 'fish-gear', + 'flying-hedgehag', + 'manlea', + 'ninja-skin', + 'post-game', + 'scorpion-robo', + 'snowman-tank', +] function testMetadataCCMod(jsonData, ccmod) { it('Test ccmod.json', () => { @@ -211,21 +141,7 @@ function testMetadataCCMod(jsonData, ccmod) { `dependency ${dep} must be specify a valid range`) .to.not.be.null; - if ( - [ - 'crosscode', - 'simplify', - // https://github.com/CCDirectLink/CCLoader3/blob/edb3481d9ea504e2c7f7fe46709ab2b4a7f2ce0b/src/game.ts#L9-L17 - 'fish-gear', - 'flying-hedgehag', - 'manlea', - 'ninja-skin', - 'post-game', - 'scorpion-robo', - 'snowman-tank', - ].includes(dep.toLowerCase())) { - continue; - } + if (skipTheseModDependencies.includes(dep.toLowerCase())) continue; expect(jsonData[dep] || Object.values(jsonData).find(mod => mod.metadata && mod.metadata.name === dep), `dependency ${dep} must be registered in CCModDb`) From 04a872d736e023d4435795e2f20d055f905d063f Mon Sep 17 00:00:00 2001 From: krypek Date: Wed, 1 May 2024 21:12:17 +0200 Subject: [PATCH 169/196] Support parent npDatabase.json dependency resolving --- build/tests/npDatabase.mjs | 53 +++++++++++++++++++++++++++----------- 1 file changed, 38 insertions(+), 15 deletions(-) diff --git a/build/tests/npDatabase.mjs b/build/tests/npDatabase.mjs index 7b18331b..1bf0e16a 100644 --- a/build/tests/npDatabase.mjs +++ b/build/tests/npDatabase.mjs @@ -7,10 +7,19 @@ import semver from 'semver'; import crypto from 'crypto'; import {download, streamToBuffer} from '../dist/src/download.js'; +/** + * parsed npDatabase.json into JSON + */ +let jsonData +/** + * parsed parent npDatabase.json into JSON + */ +let parentJsonData + describe('NpDatabase', () => { const FILE_PATH = './npDatabase.json'; - const jsonData = JSON.parse(fs.readFileSync(FILE_PATH, 'utf8')); + jsonData = JSON.parse(fs.readFileSync(FILE_PATH, 'utf8')); it('Check json structure', () => { expect(typeof jsonData === 'object', @@ -21,9 +30,14 @@ describe('NpDatabase', () => { 'Json not valid: Not an object').to.be.true; }); + const parentJsonString = process.env['PARENT_DB_DATA'] + if (parentJsonString) { + parentJsonData = JSON.parse(parentJsonString) + } + describe('mods', () => { for (let mod of Object.keys(jsonData)) { - testPackage(jsonData, jsonData[mod], mod); + testPackage(jsonData[mod], mod); } }); }); @@ -44,12 +58,12 @@ describe('ToolsDB', () => { describe('tools', () => { for (let mod of Object.keys(jsonData)) { - testPackage(jsonData, jsonData[mod], mod); + testPackage(jsonData[mod], mod); } }); }); -export function testPackage(jsonData, mod, name) { +export function testPackage(mod, name) { describe(`Package: ${name}`, () => { it('Check for required elements', () => { expect(mod !== null, @@ -57,7 +71,6 @@ export function testPackage(jsonData, mod, name) { expect(mod.metadataCCMod !== undefined, 'metadataCCMod (type: object) required').to.be.true - expect(typeof mod.installation === 'object', 'installation (type: array) required').to.be.true; expect(Array.isArray(mod.installation), @@ -66,18 +79,16 @@ export function testPackage(jsonData, mod, name) { 'installation (type: array) required').to.be.true; }); - if (mod) { - if (mod.metadataCCMod) { - testMetadataCCMod(jsonData, mod.metadataCCMod); - } + if (!mod) return - if (mod.installation) { - testInstallation(mod); - } - } + if (mod.metadataCCMod) testMetadataCCMod(mod.metadataCCMod); + if (mod.installation) testInstallation(mod); }); } +/** + * Mod dependencies to skip while checking if a mod has all it's dependencies in the database + */ const skipTheseModDependencies = [ 'crosscode', 'simplify', @@ -90,8 +101,20 @@ const skipTheseModDependencies = [ 'scorpion-robo', 'snowman-tank', ] +/** + * Searches databases for a dependency by it's id and title + * @param {string} depName - Name of a dependency to look for + */ +function findDependency(depName) { + for (const db of [jsonData, parentJsonData].filter(Boolean)) { + if (db[depName]) return db[depName] + + const dep = Object.values(db).find(mod => mod.metadataCCMod.title == depName) + if (dep) return dep + } +} -function testMetadataCCMod(jsonData, ccmod) { +function testMetadataCCMod(ccmod) { it('Test ccmod.json', () => { expect(typeof ccmod.id === 'string', 'ccmod.id (type: string) required').to.be.true; @@ -143,7 +166,7 @@ function testMetadataCCMod(jsonData, ccmod) { if (skipTheseModDependencies.includes(dep.toLowerCase())) continue; - expect(jsonData[dep] || Object.values(jsonData).find(mod => mod.metadata && mod.metadata.name === dep), + expect(findDependency(dep), `dependency ${dep} must be registered in CCModDb`) .to.not.be.undefined; } From a826ffbf96e235feedc9b1fa351c7c6a18359a27 Mon Sep 17 00:00:00 2001 From: krypek Date: Tue, 7 May 2024 13:53:10 +0200 Subject: [PATCH 170/196] CCBot New mod: yoshi-open-circuits (#151) * CCBot master: ccbot/0 * CCBot: Fill 'yoshi-open-circuits' info --- input-locations.json | 3 ++- npDatabase.json | 29 +++++++++++++++++++++++++++++ 2 files changed, 31 insertions(+), 1 deletion(-) diff --git a/input-locations.json b/input-locations.json index c40f5fdb..f4dbc554 100644 --- a/input-locations.json +++ b/input-locations.json @@ -60,5 +60,6 @@ { "url": "https://github.com/lexisother/cc-alybox/releases/download/v1.0.0/cc-alybox.ccmod" }, { "url": "https://github.com/lexisother/CCOldMedia/releases/download/v1.0.0/CCOldMedia.ccmod" }, { "url": "https://github.com/lexisother/cc-quickinfo-exp/releases/download/v1.0.1/cc-quickinfo-exp.ccmod" }, - { "url": "https://github.com/lexisother/CCPostDLC/releases/download/v1.0.0/CCPostDLC.ccmod" } + { "url": "https://github.com/lexisother/CCPostDLC/releases/download/v1.0.0/CCPostDLC.ccmod" }, + { "url": "https://github.com/CCDirectLink/cc-open-circuits/releases/download/v1.0.2/cc-open-circuits-1.0.2.ccmod" } ] diff --git a/npDatabase.json b/npDatabase.json index 410b401b..a7a0f5d0 100644 --- a/npDatabase.json +++ b/npDatabase.json @@ -1924,5 +1924,34 @@ ], "stars": 0, "lastUpdateTimestamp": 1708583987000 + }, + "yoshi-open-circuits": { + "metadataCCMod": { + "id": "yoshi-open-circuits", + "version": "1.0.2", + "title": "Open Circuits", + "description": "Gives enhanced control over the Circuit Menu.", + "repository": "https://github.com/CCDirectLink/cc-open-circuits", + "authors": [ + "EpicYoshiMaster" + ], + "tags": [ + "QoL", + "cheats" + ], + "prestart": "prestart.js", + "main": "main.js" + }, + "installation": [ + { + "type": "zip", + "url": "https://github.com/CCDirectLink/cc-open-circuits/releases/download/v1.0.2/cc-open-circuits-1.0.2.ccmod", + "hash": { + "sha256": "d397dbd7d10ac7b98680e5b948cf5327e985f2b87b809bb4dbf807eb920e6266" + } + } + ], + "stars": 0, + "lastUpdateTimestamp": 1715082341000 } } \ No newline at end of file From 95a8cc782acc826c0c501f5a4cbf6cd9cf046460 Mon Sep 17 00:00:00 2001 From: krypek Date: Tue, 7 May 2024 13:53:36 +0200 Subject: [PATCH 171/196] Update todo.md --- todo.md | 1 + 1 file changed, 1 insertion(+) diff --git a/todo.md b/todo.md index 21f6ab26..50f6b380 100644 --- a/todo.md +++ b/todo.md @@ -19,6 +19,7 @@ - ~~https://github.com/CCDirectLink/map-watch/pull/3~~ - https://github.com/CCDirectLink/unified-steps/pull/1 - https://github.com/CCDirectLink/cc-speedrun-utilities/pull/2 +- ~~https://github.com/CCDirectLink/cc-open-circuits/pull/1~~ ### Nax From 94e6ec85bd6d6b4895246ada7e03fdd4556ee6ce Mon Sep 17 00:00:00 2001 From: krypek Date: Mon, 13 May 2024 18:34:31 +0200 Subject: [PATCH 172/196] Update 'openworld' mod (damn you juanba) --- input-locations.json | 2 +- npDatabase.json | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/input-locations.json b/input-locations.json index f4dbc554..153922b6 100644 --- a/input-locations.json +++ b/input-locations.json @@ -47,7 +47,7 @@ { "url": "https://github.com/lubkuluk/lubkuluks-joern-mod/files/14393459/lubkuluks-joern-mod.zip" }, { "url": "https://github.com/canbora/cc-named-saves/releases/download/v1.0.1/cc-named-saves.ccmod" }, { "url": "https://github.com/CCDirectLink/CCModManager/releases/download/v0.9.10/ccmodmanager-0.9.10.ccmod" }, - { "url": "https://github.com/buanjautista/cc-open-world/releases/download/0.3.2/cc-open-world.v0.3.2.ccmod" }, + { "url": "https://github.com/buanjautista/cc-open-world/releases/download/0.3.2/cc-open-world.v0.3.2-smelterfix.ccmod" }, { "url": "https://github.com/krypciak/nax-module-cache/releases/download/v1.0.2/nax-module-cache.ccmod" }, { "url": "https://github.com/krypciak/nax-ccuilib/releases/download/v1.2.6/nax-ccuilib.ccmod" }, { "url": "https://github.com/CCDirectLink/CrossedEyes/releases/download/v0.6.0/crossedeyes-0.6.0.ccmod" }, diff --git a/npDatabase.json b/npDatabase.json index a7a0f5d0..fcb6321e 100644 --- a/npDatabase.json +++ b/npDatabase.json @@ -1602,9 +1602,9 @@ "installation": [ { "type": "zip", - "url": "https://github.com/buanjautista/cc-open-world/releases/download/0.3.2/cc-open-world.v0.3.2.ccmod", + "url": "https://github.com/buanjautista/cc-open-world/releases/download/0.3.2/cc-open-world.v0.3.2-smelterfix.ccmod", "hash": { - "sha256": "e00a9a5215e71e40a77f0a6883f6d2856e9c6e36270e6fc0227106bfe64266d0" + "sha256": "02c1714a05a7ff350cd173d5866eb6f244cb55b12596ec1b8ebdf405d83d1cfa" } } ], From f99f37308f4bacd13fcf88a8d6c7d6ec7e83bc38 Mon Sep 17 00:00:00 2001 From: krypek Date: Mon, 13 May 2024 18:38:04 +0200 Subject: [PATCH 173/196] CCBot Update mod: crossedeyes (#153) * CCBot master: ccbot/0 * CCBot: Fill 'crossedeyes' info --- input-locations.json | 2 +- npDatabase.json | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/input-locations.json b/input-locations.json index 153922b6..ee69e417 100644 --- a/input-locations.json +++ b/input-locations.json @@ -50,7 +50,7 @@ { "url": "https://github.com/buanjautista/cc-open-world/releases/download/0.3.2/cc-open-world.v0.3.2-smelterfix.ccmod" }, { "url": "https://github.com/krypciak/nax-module-cache/releases/download/v1.0.2/nax-module-cache.ccmod" }, { "url": "https://github.com/krypciak/nax-ccuilib/releases/download/v1.2.6/nax-ccuilib.ccmod" }, - { "url": "https://github.com/CCDirectLink/CrossedEyes/releases/download/v0.6.0/crossedeyes-0.6.0.ccmod" }, + { "url": "https://github.com/CCDirectLink/CrossedEyes/releases/download/v0.6.1/crossedeyes-0.6.1.ccmod" }, { "url": "https://github.com/XenonA7/xenons-triblader-mod/archive/refs/tags/1.0.1.zip" }, { "url": "https://github.com/L-Sherry/Localize-me/archive/refs/tags/v0.6.1.zip" }, { "url": "https://github.com/L-Sherry/French-CC/releases/download/v1.5.0/French-CC-v1.5.0.ccmod" }, diff --git a/npDatabase.json b/npDatabase.json index fcb6321e..b844f2ce 100644 --- a/npDatabase.json +++ b/npDatabase.json @@ -894,7 +894,7 @@ "crossedeyes": { "metadataCCMod": { "id": "crossedeyes", - "version": "0.6.0", + "version": "0.6.1", "title": "CrossedEyes", "description": "Accessibility mod for CrossCode", "repository": "https://github.com/CCDirectLink/CrossedEyes", @@ -920,14 +920,14 @@ "installation": [ { "type": "zip", - "url": "https://github.com/CCDirectLink/CrossedEyes/releases/download/v0.6.0/crossedeyes-0.6.0.ccmod", + "url": "https://github.com/CCDirectLink/CrossedEyes/releases/download/v0.6.1/crossedeyes-0.6.1.ccmod", "hash": { - "sha256": "58bc3afd39aebb0ac99ac7f126b5e4ac7c245310f4addee41387438c37e49d9f" + "sha256": "0ee9e08289804fef27f918e4c86f62aec69f9211f8ba8b3fa17877522312abb7" } } ], "stars": 9, - "lastUpdateTimestamp": 1713650089000 + "lastUpdateTimestamp": 1715617864000 }, "cursedcode": { "metadataCCMod": { From dbdc2927ce0d61ea9f593b062803f93665f8956a Mon Sep 17 00:00:00 2001 From: krypek Date: Fri, 17 May 2024 18:53:54 +0200 Subject: [PATCH 174/196] Update the ccmod.json schema --- ccmod-json-schema.json | 213 +++++++++++++++++++++++------------------ 1 file changed, 119 insertions(+), 94 deletions(-) diff --git a/ccmod-json-schema.json b/ccmod-json-schema.json index 8202e979..8b55005a 100644 --- a/ccmod-json-schema.json +++ b/ccmod-json-schema.json @@ -1,96 +1,121 @@ { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "$defs": { - "dependency": { - "type": "object", - "additionalProperties": { - "$ref": "#/$defs/semver" - } - }, - "semver": { - "type": "string" - }, - "localisedString": { - "type": ["string", "object"], - "properties": { - "en_US": { "type": "string" }, - "de_DE": { "type": "string" }, - "fr_FR": { "type": "string" }, - "zh_CN": { "type": "string" }, - "zh_TW": { "type": "string" }, - "ja_JP": { "type": "string" }, - "ko_KR": { "type": "string" } - } - } - }, - "title": "CCMod Manifest", - "description": "Configuration file for the mod.", - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "ID of the mod, used for various fallbacks." - }, - "title": { - "$ref": "#/$defs/localisedString" - }, - "description": { - "$ref": "#/$defs/localisedString" - }, - "version": { - "$ref": "#/$defs/semver", - "description": "The version of this mod following semantic versioning (https://semver.org)." - }, - "tags": { - "type": "array", - "items": { - "type": "string" - }, - "minItems": 0 - }, - "icons": { - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "homepage": { - "type": "string", - "description": "Mod homepage link." - }, - "repository": { - "type": "string", - "description": "Mod repository link." - }, - "authors": { - "type": ["string", "array"], - "items": { - "type": "string" - }, - "minItems": 1, - "description": "A list of the mod's authors." - }, - "dependencies": { - "type": "object", - "description": "The mods and versions of those mods that this mod depends on.", - "$ref": "#/$defs/dependency" - }, - "plugin": { - "type": "string", - "description": "Path of the plugin file relative to mod root. This is the recommended method." - }, - "preload": { - "type": "string" - }, - "postload": { - "type": "string" - }, - "prestart": { - "type": "string" - }, - "poststart": { - "type": "string" - } - }, - "required": ["id", "version"] + "$schema": "http://json-schema.org/draft-07/schema#", + "id": "https://json.schemastore.org/ccmod.json", + "additionalProperties": true, + "$defs": { + "dependency": { + "type": "object", + "additionalProperties": { + "$ref": "#/$defs/semver" + } + }, + "semver": { + "type": "string" + }, + "localisedString": { + "type": ["string", "object"], + "properties": { + "en_US": { "type": "string" }, + "de_DE": { "type": "string" }, + "fr_FR": { "type": "string" }, + "zh_CN": { "type": "string" }, + "zh_TW": { "type": "string" }, + "ja_JP": { "type": "string" }, + "ko_KR": { "type": "string" } + } + } + }, + "title": "CCMod Manifest", + "description": "Configuration file for a mod manifset file for the game CrossCode", + "type": "object", + "properties": { + "id": { + "title": "id", + "type": "string", + "description": "ID of the mod, used for various fallbacks" + }, + "title": { + "title": "title", + "$ref": "#/$defs/localisedString", + "description": "Title of the mod, what users will see in-game" + }, + "description": { + "title": "description", + "$ref": "#/$defs/localisedString", + "description": "Description of the mod" + }, + "version": { + "title": "version", + "$ref": "#/$defs/semver", + "description": "The version of this mod following semantic versioning (https://semver.org)" + }, + "tags": { + "title": "tags", + "type": "array", + "items": { + "type": "string" + }, + "minItems": 0, + "description": "Array of mod tags. See the full list of official tags: \nhttps://github.com/krypciak/CCModDB/blob/master/CCMOD-STANDARD.md#mod-tag-list" + }, + "icons": { + "title": "icons", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "The icon of the mod. Currently only the 24x24 size is supported" + }, + "homepage": { + "title": "homepage", + "type": "string", + "description": "Mod homepage link" + }, + "repository": { + "title": "repository", + "type": "string", + "description": "Mod repository link" + }, + "authors": { + "title": "authors", + "type": ["string", "array"], + "items": { + "type": "string" + }, + "minItems": 1, + "description": "A list of the mod's authors" + }, + "dependencies": { + "title": "dependencies", + "type": "object", + "description": "The mods and versions of those mods that this mod depends on", + "$ref": "#/$defs/dependency" + }, + "plugin": { + "title": "plugin", + "type": "string", + "description": "Path of the javascript plugin file relative to mod root. This is the recommended method" + }, + "preload": { + "title": "preload", + "type": "string", + "description": "Path of the javascript preload file relative to mod root. The file will be executed at the preload loading stage" + }, + "postload": { + "title": "postload", + "type": "string", + "description": "Path of the javascript preload file relative to mod root. The file will be executed at the postload loading stage" + }, + "prestart": { + "title": "prestart", + "type": "string", + "description": "Path of the javascript prestart file relative to mod root. The file will be executed at the prestart loading stage" + }, + "poststart": { + "title": "poststart", + "type": "string", + "description": "Path of the javascript poststart file relative to mod root. The file will be executed at the poststart loading stage" + } + }, + "required": ["id", "version"] } From 005ca242b0cf1022ff287bf6c66bf2e3f3364aa6 Mon Sep 17 00:00:00 2001 From: krypek Date: Fri, 17 May 2024 18:55:01 +0200 Subject: [PATCH 175/196] Update todo.md --- todo.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/todo.md b/todo.md index 50f6b380..e056cbea 100644 --- a/todo.md +++ b/todo.md @@ -2,6 +2,8 @@ # todo +Upload the ccmod.json schema to https://github.com/SchemaStore/schemastore/ + ## PR's in progress ### CCDirectLink From 8f582e4e869283a1317ca07d27b1928adf945a9c Mon Sep 17 00:00:00 2001 From: krypek Date: Sat, 18 May 2024 18:35:59 +0200 Subject: [PATCH 176/196] CCBot Update mod: cc-blitzkrieg (#154) * CCBot master: ccbot/0 * CCBot: Fill 'cc-blitzkrieg' info --- input-locations.json | 2 +- npDatabase.json | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/input-locations.json b/input-locations.json index ee69e417..c84b1fcc 100644 --- a/input-locations.json +++ b/input-locations.json @@ -7,7 +7,7 @@ { "url": "https://github.com/CCDirectLink/CCLoader/archive/refs/tags/v2.23.2/v2.13.0.zip", "source": "CCLoader-2.23.2-v2.13.0/assets/mods/simplify" }, { "url": "https://github.com/CCDirectLink/CCLoader/archive/refs/tags/v2.23.2/v2.13.0.zip", "source": "CCLoader-2.23.2-v2.13.0/assets/mods/ccloader-version-display" }, { "url": "https://github.com/CCDirectLink/input-api/archive/refs/tags/v1.0.2.zip" }, - { "url": "https://github.com/krypciak/cc-blitzkrieg/releases/download/v0.5.5/cc-blitzkrieg-0.5.5.ccmod" }, + { "url": "https://github.com/krypciak/cc-blitzkrieg/releases/download/v0.5.6/cc-blitzkrieg-0.5.6.ccmod" }, { "url": "https://github.com/krypciak/cc-fancy-crash/releases/download/v1.0.8/cc-fancy-crash-1.0.8.ccmod" }, { "url": "https://github.com/CCDirectLink/Blades/archive/1.6.0.zip" }, { "url": "https://github.com/krypciak/cc-jetpack-widget/releases/download/v1.0.3/cc-jetpack-widget-1.0.3.ccmod" }, diff --git a/npDatabase.json b/npDatabase.json index b844f2ce..19942c39 100644 --- a/npDatabase.json +++ b/npDatabase.json @@ -405,7 +405,7 @@ "cc-blitzkrieg": { "metadataCCMod": { "id": "cc-blitzkrieg", - "version": "0.5.5", + "version": "0.5.6", "title": "Blitzkrieg (WIP)", "description": "Puzzle solving, incresed puzzle difficuly, puzzle and boss collection tools", "repository": "https://github.com/krypciak/cc-blitzkrieg", @@ -427,14 +427,14 @@ "installation": [ { "type": "zip", - "url": "https://github.com/krypciak/cc-blitzkrieg/releases/download/v0.5.5/cc-blitzkrieg-0.5.5.ccmod", + "url": "https://github.com/krypciak/cc-blitzkrieg/releases/download/v0.5.6/cc-blitzkrieg-0.5.6.ccmod", "hash": { - "sha256": "8c01ea748ae38b6c8bf2d4c01ab6c80dd1bcedcae3beb411f46c8e6d007fa5c2" + "sha256": "87d345a017547eaabfeb71ab306e8b43a93b371a568c75cc48cc3106483faf14" } } ], "stars": 0, - "lastUpdateTimestamp": 1711563934000 + "lastUpdateTimestamp": 1716049802000 }, "cc-capped-stats": { "metadataCCMod": { From 06e7d7aac7dc3ed11fa38364ce1140aec6de2e38 Mon Sep 17 00:00:00 2001 From: krypek Date: Sat, 18 May 2024 18:37:45 +0200 Subject: [PATCH 177/196] CCBot Update mod: ccmodmanager (#155) * CCBot master: ccbot/0 * CCBot: Fill 'ccmodmanager' info --- input-locations.json | 2 +- npDatabase.json | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/input-locations.json b/input-locations.json index c84b1fcc..b24d5653 100644 --- a/input-locations.json +++ b/input-locations.json @@ -46,7 +46,7 @@ { "url": "https://github.com/CodeTriangle/CCMultiworldRandomizer/releases/download/0.4.1/CCMultiworldRandomizer-0.4.1.ccmod" }, { "url": "https://github.com/lubkuluk/lubkuluks-joern-mod/files/14393459/lubkuluks-joern-mod.zip" }, { "url": "https://github.com/canbora/cc-named-saves/releases/download/v1.0.1/cc-named-saves.ccmod" }, - { "url": "https://github.com/CCDirectLink/CCModManager/releases/download/v0.9.10/ccmodmanager-0.9.10.ccmod" }, + { "url": "https://github.com/CCDirectLink/CCModManager/releases/download/v0.9.11/ccmodmanager-0.9.11.ccmod" }, { "url": "https://github.com/buanjautista/cc-open-world/releases/download/0.3.2/cc-open-world.v0.3.2-smelterfix.ccmod" }, { "url": "https://github.com/krypciak/nax-module-cache/releases/download/v1.0.2/nax-module-cache.ccmod" }, { "url": "https://github.com/krypciak/nax-ccuilib/releases/download/v1.2.6/nax-ccuilib.ccmod" }, diff --git a/npDatabase.json b/npDatabase.json index 19942c39..1a0c9982 100644 --- a/npDatabase.json +++ b/npDatabase.json @@ -744,7 +744,7 @@ "ccmodmanager": { "metadataCCMod": { "id": "ccmodmanager", - "version": "0.9.10", + "version": "0.9.11", "title": "CCModManager", "description": "Mod manager for CrossCode!", "repository": "https://github.com/CCDirectLink/CCModManager", @@ -765,14 +765,14 @@ "installation": [ { "type": "zip", - "url": "https://github.com/CCDirectLink/CCModManager/releases/download/v0.9.10/ccmodmanager-0.9.10.ccmod", + "url": "https://github.com/CCDirectLink/CCModManager/releases/download/v0.9.11/ccmodmanager-0.9.11.ccmod", "hash": { - "sha256": "8916aabad418291c17629030150d6ac7a7fc6b26567942a031f4027262a65103" + "sha256": "d0c6dfc540f15b263250aed3f647e5c7034bb373928aa6123429b8dd74f31313" } } ], "stars": 0, - "lastUpdateTimestamp": 1713626436000 + "lastUpdateTimestamp": 1716050075000 }, "ccpostdlc": { "metadataCCMod": { From 1addcd9c2173e826ed6249de411c4b244728b427 Mon Sep 17 00:00:00 2001 From: krypek Date: Sun, 19 May 2024 13:52:52 +0200 Subject: [PATCH 178/196] CCBot Update mod: nax-ccuilib (#156) * CCBot master: ccbot/0 * CCBot: Fill 'nax-ccuilib' info --- input-locations.json | 2 +- npDatabase.json | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/input-locations.json b/input-locations.json index b24d5653..c635e793 100644 --- a/input-locations.json +++ b/input-locations.json @@ -49,7 +49,7 @@ { "url": "https://github.com/CCDirectLink/CCModManager/releases/download/v0.9.11/ccmodmanager-0.9.11.ccmod" }, { "url": "https://github.com/buanjautista/cc-open-world/releases/download/0.3.2/cc-open-world.v0.3.2-smelterfix.ccmod" }, { "url": "https://github.com/krypciak/nax-module-cache/releases/download/v1.0.2/nax-module-cache.ccmod" }, - { "url": "https://github.com/krypciak/nax-ccuilib/releases/download/v1.2.6/nax-ccuilib.ccmod" }, + { "url": "https://github.com/krypciak/nax-ccuilib/releases/download/v1.2.7/nax-ccuilib.ccmod" }, { "url": "https://github.com/CCDirectLink/CrossedEyes/releases/download/v0.6.1/crossedeyes-0.6.1.ccmod" }, { "url": "https://github.com/XenonA7/xenons-triblader-mod/archive/refs/tags/1.0.1.zip" }, { "url": "https://github.com/L-Sherry/Localize-me/archive/refs/tags/v0.6.1.zip" }, diff --git a/npDatabase.json b/npDatabase.json index 1a0c9982..bd82765b 100644 --- a/npDatabase.json +++ b/npDatabase.json @@ -1506,7 +1506,7 @@ "nax-ccuilib": { "metadataCCMod": { "id": "nax-ccuilib", - "version": "1.2.6", + "version": "1.2.7", "title": "CCUILib", "description": "Library of additional UI elements as well as making existing ones configurable", "repository": "https://github.com/conorlawton/nax-ccuilib", @@ -1526,9 +1526,9 @@ "installation": [ { "type": "zip", - "url": "https://github.com/krypciak/nax-ccuilib/releases/download/v1.2.6/nax-ccuilib.ccmod", + "url": "https://github.com/krypciak/nax-ccuilib/releases/download/v1.2.7/nax-ccuilib.ccmod", "hash": { - "sha256": "77a57af942c9058074bb794f538118ea98b18513fe20c7dd674524c3cb3e2a67" + "sha256": "d42b046a89b9c3af7ceb58a9128c2f4f268ee24ae79080f25371bd7d4d63ea89" } } ], From 09a4270a26425cb2d1deda5df4fb158d97eb2c01 Mon Sep 17 00:00:00 2001 From: krypek Date: Sun, 19 May 2024 17:25:49 +0200 Subject: [PATCH 179/196] Update nax-ccuilib --- npDatabase.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/npDatabase.json b/npDatabase.json index bd82765b..612b703a 100644 --- a/npDatabase.json +++ b/npDatabase.json @@ -1528,7 +1528,7 @@ "type": "zip", "url": "https://github.com/krypciak/nax-ccuilib/releases/download/v1.2.7/nax-ccuilib.ccmod", "hash": { - "sha256": "d42b046a89b9c3af7ceb58a9128c2f4f268ee24ae79080f25371bd7d4d63ea89" + "sha256": "a5d2fba724a60caad1177a093367eaf7b939e924c201cdd1ba5df3b9bbbbf3f9" } } ], From fb207d4173b8d53f7ff819ad4067fcaae78698b4 Mon Sep 17 00:00:00 2001 From: krypek Date: Mon, 27 May 2024 19:20:59 +0200 Subject: [PATCH 180/196] CCBot Update mod: crossedeyes (#157) * CCBot master: ccbot/0 * CCBot: Fill 'crossedeyes' info --- input-locations.json | 2 +- npDatabase.json | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/input-locations.json b/input-locations.json index c635e793..fd6d99ce 100644 --- a/input-locations.json +++ b/input-locations.json @@ -50,7 +50,7 @@ { "url": "https://github.com/buanjautista/cc-open-world/releases/download/0.3.2/cc-open-world.v0.3.2-smelterfix.ccmod" }, { "url": "https://github.com/krypciak/nax-module-cache/releases/download/v1.0.2/nax-module-cache.ccmod" }, { "url": "https://github.com/krypciak/nax-ccuilib/releases/download/v1.2.7/nax-ccuilib.ccmod" }, - { "url": "https://github.com/CCDirectLink/CrossedEyes/releases/download/v0.6.1/crossedeyes-0.6.1.ccmod" }, + { "url": "https://github.com/CCDirectLink/CrossedEyes/releases/download/v0.6.2/crossedeyes-0.6.2.ccmod" }, { "url": "https://github.com/XenonA7/xenons-triblader-mod/archive/refs/tags/1.0.1.zip" }, { "url": "https://github.com/L-Sherry/Localize-me/archive/refs/tags/v0.6.1.zip" }, { "url": "https://github.com/L-Sherry/French-CC/releases/download/v1.5.0/French-CC-v1.5.0.ccmod" }, diff --git a/npDatabase.json b/npDatabase.json index 612b703a..82655d06 100644 --- a/npDatabase.json +++ b/npDatabase.json @@ -894,7 +894,7 @@ "crossedeyes": { "metadataCCMod": { "id": "crossedeyes", - "version": "0.6.1", + "version": "0.6.2", "title": "CrossedEyes", "description": "Accessibility mod for CrossCode", "repository": "https://github.com/CCDirectLink/CrossedEyes", @@ -910,9 +910,9 @@ }, "dependencies": { "input-api": ">=1.0.0", - "cc-blitzkrieg": ">=0.5.5", - "nax-ccuilib": ">=1.2.6", - "ccmodmanager": ">=0.9.10", + "cc-blitzkrieg": ">=0.5.6", + "nax-ccuilib": ">=1.2.7", + "ccmodmanager": ">=0.9.11", "crosscode": ">=1.4.0" }, "plugin": "plugin.js" @@ -920,14 +920,14 @@ "installation": [ { "type": "zip", - "url": "https://github.com/CCDirectLink/CrossedEyes/releases/download/v0.6.1/crossedeyes-0.6.1.ccmod", + "url": "https://github.com/CCDirectLink/CrossedEyes/releases/download/v0.6.2/crossedeyes-0.6.2.ccmod", "hash": { - "sha256": "0ee9e08289804fef27f918e4c86f62aec69f9211f8ba8b3fa17877522312abb7" + "sha256": "a1c273068421073cf63642bea9136984d184361f1a6a9e2e8fd4c52d70565be6" } } ], "stars": 9, - "lastUpdateTimestamp": 1715617864000 + "lastUpdateTimestamp": 1716830259000 }, "cursedcode": { "metadataCCMod": { From 35c27de0cf2927250c08c260ebc920f282f9909b Mon Sep 17 00:00:00 2001 From: krypek Date: Thu, 30 May 2024 21:58:34 +0200 Subject: [PATCH 181/196] Remove input-locations-old.json --- input-locations-old.json | 369 --------------------------------------- 1 file changed, 369 deletions(-) delete mode 100644 input-locations-old.json diff --git a/input-locations-old.json b/input-locations-old.json deleted file mode 100644 index faeca074..00000000 --- a/input-locations-old.json +++ /dev/null @@ -1,369 +0,0 @@ -[ - { - "type": "ccmod", - "url": "https://github.com/CCDirectLink/AMCS-wdeps/releases/download/1.0.0/AMCS-wdeps.ccmod" - }, - { - "type": "modZip", - "urlZip": "https://github.com/CCDirectLink/AMCS-wdeps/archive/1.0.0.zip", - "source": "AMCS-wdeps-1.0.0" - }, - { - "type": "ccmod", - "url": "https://github.com/EL20202/cc-uncapped-stats/releases/download/v1.1.1/cc-uncapped-stats-v1.1.1.ccmod" - }, - { - "type": "modZip", - "urlZip": "https://github.com/EL20202/cc-uncapped-stats/archive/refs/tags/v1.1.1.zip", - "source": "cc-uncapped-stats-1.1.1" - }, - { - "type": "ccmod", - "url": "https://github.com/EL20202/cc-c-edition/releases/download/1.0.0/crosscode-c-edition.ccmod" - }, - { - "type": "modZip", - "urlZip": "https://github.com/EL20202/cc-c-edition/archive/1.0.0.zip", - "source": "cc-c-edition-1.0.0" - }, - { - "type": "modZip", - "urlZip": "https://github.com/CCDirectLink/CC-ChargedBalls/archive/1.0.0.zip", - "source": "CC-ChargedBalls-1.0.0" - }, - { - "type": "modZip", - "urlZip": "https://github.com/ZeikJT/CrossCodeCheats/archive/1.4.0.zip", - "source": "CrossCodeCheats-1.4.0" - }, - { - "type": "modZip", - "urlZip": "https://github.com/CCDirectLink/Blades/archive/1.5.0.zip", - "source": "Blades-1.5.0" - }, - { - "type": "modZip", - "urlZip": "https://github.com/keanuplayz/LeaTriblader/archive/1.0.1.zip", - "source": "LeaTriblader-1.0.1" - }, - { - "type": "modZip", - "urlZip": "https://github.com/keanuplayz/CCRandomEvents/archive/0.0.8.zip", - "source": "CCRandomEvents-0.0.8" - }, - { - "type": "ccmod", - "url": "https://github.com/CCDirectLink/CCPresetRevival/releases/download/1.1.1/CCPresetRevival.ccmod" - }, - { - "type": "modZip", - "urlZip": "https://github.com/CCDirectLink/CCPresetRevival/archive/1.1.1.zip", - "source": "CCPresetRevival-1.1.1" - }, - { - "type": "modZip", - "urlZip": "https://github.com/CCDirectLink/hardcoded-config-injector/archive/v0.1.1.zip", - "source": "hardcoded-config-injector-0.1.1" - }, - { - "type": "ccmod", - "url": "https://github.com/CCDirectLink/CCNewGamePP/releases/download/v1.3.0/CCNewGamePP.ccmod" - }, - { - "type": "modZip", - "urlZip": "https://github.com/CCDirectLink/CCNewGamePP/archive/v1.3.0.zip", - "source": "CCNewGamePP-1.3.0" - }, - { - "type": "modZip", - "urlZip": "https://github.com/CCDirectLink/CCdiscord/archive/refs/tags/v1.0.0.zip", - "source": "CCdiscord-1.0.0" - }, - { - "type": "modZip", - "urlZip": "https://github.com/CCDirectLink/mod-require-fix/archive/refs/tags/v1.0.1.zip", - "source": "mod-require-fix-1.0.1" - }, - { - "type": "ccmod", - "url": "https://github.com/CCDirectLink/CCTimeWalker/releases/download/v0.3.0/CCTimeWalker.ccmod" - }, - { - "type": "modZip", - "urlZip": "https://github.com/CCDirectLink/CCTimeWalker/archive/v0.3.0.zip", - "source": "CCTimeWalker-0.3.0" - }, - { - "type": "modZip", - "urlZip": "https://github.com/CCDirectLink/CCTimer/releases/download/v3.0.0/CCTimer.zip", - "source": "CCTimer" - }, - { - "type": "ccmod", - "url": "https://github.com/CCDirectLink/CCSlowmotion/releases/download/v0.1.1/slowmotion.ccmod" - }, - { - "type": "modZip", - "urlZip": "https://github.com/CCDirectLink/CCSlowmotion/archive/v0.1.1.zip", - "source": "CCSlowmotion-0.1.1/slowmotion" - }, - { - "type": "ccmod", - "url": "https://github.com/CCDirectLink/CCJetpack/releases/download/v0.2.0/CCJetpack.ccmod" - }, - { - "type": "modZip", - "urlZip": "https://github.com/CCDirectLink/CCJetpack/archive/v0.2.0.zip", - "source": "CCJetpack-0.2.0" - }, - { - "type": "modZip", - "urlZip": "https://github.com/CCDirectLink/CCRestartButton/archive/refs/tags/v1.1.3.zip", - "source": "CCRestartButton-1.1.3" - }, - { - "type": "modZip", - "urlZip": "https://github.com/sgrunt/qine/archive/0.2.7.zip", - "source": "qine-0.2.7/qine" - }, - { - "type": "modZip", - "urlZip": "https://github.com/sgrunt/cc-element-boss/archive/0.1.2.zip", - "source": "cc-element-boss-0.1.2/cc-element-boss" - }, - { - "type": "modZip", - "urlZip": "https://github.com/L-Sherry/Localize-me/archive/v0.6.0.zip", - "source": "Localize-me-0.6.0" - }, - { - "type": "modZip", - "urlZip": "https://github.com/L-Sherry/French-CC/archive/v1.4.0.zip", - "source": "French-CC-1.4.0" - }, - { - "type": "modZip", - "urlZip": "https://github.com/CCDirectLink/kitplayer/archive/v0.1.1.zip", - "source": "kitplayer-0.1.1/kitplayer" - }, - { - "type": "modZip", - "urlZip": "https://github.com/rioreur/palicat/archive/1.0.4.zip", - "source": "palicat-1.0.4" - }, - { - "type": "modZip", - "urlZip": "https://github.com/prismskey/CharSwap/archive/v1.0.0.zip", - "source": "CharSwap-1.0.0" - }, - { - "type": "modZip", - "urlZip": "https://github.com/CCDirectLink/item-api/archive/refs/tags/v0.4.2.zip", - "source": "item-api-0.4.2" - }, - { - "type": "modZip", - "urlZip": "https://github.com/CCDirectLink/menu-api/archive/v0.1.1.zip", - "source": "menu-api-0.1.1" - }, - { - "type": "modZip", - "urlZip": "https://github.com/tylercamp/CCJoystickExt/archive/1.0.1.zip", - "source": "CCJoystickExt-1.0.1" - }, - { - "type": "modZip", - "urlZip": "https://github.com/CCDirectLink/extendable-severed-heads/archive/v1.0.0.zip", - "source": "extendable-severed-heads-1.0.0" - }, - { - "type": "modZip", - "urlZip": "https://github.com/CCDirectLink/cc-menu-ui-replacement/archive/v1.0.2.zip", - "source": "cc-menu-ui-replacement-1.0.2/cc-menu-ui-replacement" - }, - { - "type": "modZip", - "urlZip": "https://github.com/CCDirectLink/CCLoader/archive/refs/tags/v2.22.1/v2.12.1.zip", - "source": "CCLoader-2.22.1-v2.12.1", - "packageJSONPath": "CCLoader-2.22.1-v2.12.1/ccloader/package.json" - }, - { - "type": "modZip", - "urlZip": "https://github.com/CCDirectLink/CCLoader/archive/refs/tags/v2.22.1/v2.12.1.zip", - "source": "CCLoader-2.22.1-v2.12.1/assets/mods/simplify" - }, - { - "type": "modZip", - "urlZip": "https://github.com/CCDirectLink/CCLoader/archive/refs/tags/v2.22.1/v2.12.1.zip", - "source": "CCLoader-2.22.1-v2.12.1/assets/mods/ccloader-version-display" - }, - { - "type": "modZip", - "urlZip": "https://github.com/Swanderrr/CCleasitstitle/raw/faba8504ef285f73cb3774e2118987ba74329c87/archive/titlescreenlea.zip", - "source": "" - }, - { - "type": "modZip", - "urlZip": "https://github.com/L-Sherry/Bob-Rank/releases/download/v1.0.0/Bob-Rank-v1.0.0.zip", - "source": "Bob-Rank-v1.0.0" - }, - { - "type": "ccmod", - "url": "https://github.com/CCDirectLink/map-watch/releases/download/v1.0.1/map-watch.ccmod" - }, - { - "type": "modZip", - "urlZip": "https://github.com/CCDirectLink/map-watch/archive/v1.0.1.zip", - "source": "map-watch-1.0.1" - }, - { - "type": "ccmod", - "url": "https://github.com/dmitmel/cc-world-map-overhaul/releases/download/v1.1.2/world-map-overhaul_v1.1.2.ccmod" - }, - { - "type": "modZip", - "urlZip": "https://github.com/dmitmel/cc-world-map-overhaul/releases/download/v1.1.2/world-map-overhaul_v1.1.2.zip", - "source": "world-map-overhaul" - }, - { - "type": "modZip", - "urlZip": "https://github.com/dmitmel/crosscode-readable-saves/releases/download/v1.0.0/crosscode-readable-saves_v1.0.0.zip", - "source": "crosscode-readable-saves" - }, - { - "type": "modZip", - "urlZip": "https://github.com/ubergeek77/CCExtraGamepadOptions/archive/1.0.2.zip", - "source": "CCExtraGamepadOptions-1.0.2" - }, - { - "type": "ccmod", - "url": "https://github.com/Naxane/CCInventorySearch/releases/download/v1.0.0/CCInventorySearch-v1.0.0.ccmod" - }, - { - "type": "modZip", - "urlZip": "https://github.com/Naxane/CCInventorySearch/archive/refs/tags/v1.0.0.zip", - "source": "CCInventorySearch-1.0.0/src" - }, - { - "type": "ccmod", - "url": "https://github.com/EL20202/cc-capped-stats/releases/download/v1.0.0/cc-capped-stats.ccmod" - }, - { - "type": "modZip", - "urlZip": "https://github.com/EL20202/cc-capped-stats/archive/refs/tags/v1.0.0.zip", - "source": "cc-capped-stats-1.0.0" - }, - { - "type": "ccmod", - "url": "https://github.com/WatDuhHekBro/cc-uwuifier/releases/download/v1.0.2/uwuifier.ccmod" - }, - { - "type": "modZip", - "urlZip": "https://github.com/dmitmel/crosscode-tweak-pack/releases/download/v1.1.0/crosscode-tweak-pack_v1.1.0.zip", - "source": "crosscode-tweak-pack" - }, - { - "type": "modZip", - "urlZip": "https://github.com/Inevitabilis/CC-Junolea/archive/refs/tags/v1.0.0.zip", - "source": "CC-Junolea-1.0.0" - }, - { - "type": "ccmod", - "url": "https://github.com/Paradragon/cc-extra-dialogue/releases/download/v1.0.0/cc-extra-dialogue.ccmod" - }, - { - "type": "modZip", - "urlZip": "https://github.com/Pyrocorvid/CCNineRooms/archive/refs/tags/v1.0.1.zip", - "source": "CCNineRooms-1.0.1/nine-rooms" - }, - { - "type": "modZip", - "urlZip": "https://github.com/Pyrocorvid/CCNineRooms/archive/refs/tags/v1.0.1.zip", - "source": "CCNineRooms-1.0.1/past-booster" - }, - { - "type": "modZip", - "urlZip": "https://github.com/CookieSalesman/CrossCode-HADOUKEN-v1.0/archive/refs/tags/v1.0.0.zip", - "source": "CrossCode-HADOUKEN-v1.0-1.0.0" - }, - { - "type": "ccmod", - "url": "https://github.com/Symphiel/CursedCode/releases/download/0.1.1/cursedcode.ccmod" - }, - { - "type": "modZip", - "urlZip": "https://github.com/lexisother/CCPostDLC/archive/refs/tags/v1.0.0.zip", - "source": "CCPostDLC-1.0.0" - }, - { - "type": "ccmod", - "url": "https://github.com/lexisother/CCPostDLC/releases/download/v1.0.0/CCPostDLC.ccmod" - }, - { - "type": "modZip", - "urlZip": "https://github.com/lexisother/CCOldMedia/archive/refs/tags/v1.0.0.zip", - "source": "CCOldMedia-1.0.0" - }, - { - "type": "ccmod", - "url": "https://github.com/lexisother/CCOldMedia/releases/download/v1.0.0/CCOldMedia.ccmod" - }, - { - "type": "modZip", - "urlZip": "https://github.com/EL20202/crosscode-font-utils/archive/refs/tags/v1.1.0.zip", - "source": "crosscode-font-utils-1.1.0" - }, - { - "type": "ccmod", - "url": "https://github.com/EL20202/crosscode-font-utils/releases/download/v1.1.0/font-utils.ccmod" - }, - { - "type": "ccmod", - "url": "https://github.com/EL20202/el-crosscode-tweaks/releases/download/v0.5.8/els-tweaks.ccmod" - }, - { - "type": "modZip", - "urlZip": "https://github.com/lexisother/cc-quickinfo-exp/archive/refs/tags/v1.0.1.zip", - "source": "cc-quickinfo-exp-1.0.1" - }, - { - "type": "ccmod", - "url": "https://github.com/lexisother/cc-quickinfo-exp/releases/download/v1.0.1/cc-quickinfo-exp.ccmod" - }, - { - "type": "modZip", - "urlZip": "https://github.com/lexisother/logic-steps/archive/refs/tags/v1.0.1.zip", - "source": "logic-steps-1.0.1" - }, - { - "type": "ccmod", - "url": "https://github.com/lexisother/logic-steps/releases/download/v1.0.1/logic-steps.ccmod" - }, - { - "type": "modZip", - "urlZip": "https://github.com/krypciak/cc-vim/archive/refs/tags/v1.5.4.zip", - "source": "cc-vim-1.5.4" - }, - { - "type": "ccmod", - "url": "https://github.com/krypciak/cc-vim/releases/download/v1.5.4/cc-vim-1.5.4.ccmod" - }, - { - "type": "modZip", - "urlZip": "https://github.com/krypciak/cc-fancy-crash/archive/refs/tags/v1.0.7.zip", - "source": "cc-fancy-crash-1.0.7" - }, - { - "type": "ccmod", - "url": "https://github.com/krypciak/cc-fancy-crash/releases/download/v1.0.7/cc-fancy-crash-1.0.7.ccmod" - }, - { - "type": "modZip", - "urlZip": "https://github.com/CCDirectLink/input-api/archive/refs/tags/v1.0.1.zip", - "source": "input-api-1.0.1" - }, - { - "type": "ccmod", - "url": "https://github.com/CCDirectLink/input-api/releases/download/v1.0.1/input-api.ccmod" - } -] From e5b670e7c646d14178875f71816183014473480e Mon Sep 17 00:00:00 2001 From: krypek Date: Thu, 30 May 2024 21:58:48 +0200 Subject: [PATCH 182/196] Add mod 'unified-steps' --- input-locations.json | 3 ++- npDatabase.json | 29 +++++++++++++++++++++++++++++ 2 files changed, 31 insertions(+), 1 deletion(-) diff --git a/input-locations.json b/input-locations.json index fd6d99ce..e0cdd3f4 100644 --- a/input-locations.json +++ b/input-locations.json @@ -61,5 +61,6 @@ { "url": "https://github.com/lexisother/CCOldMedia/releases/download/v1.0.0/CCOldMedia.ccmod" }, { "url": "https://github.com/lexisother/cc-quickinfo-exp/releases/download/v1.0.1/cc-quickinfo-exp.ccmod" }, { "url": "https://github.com/lexisother/CCPostDLC/releases/download/v1.0.0/CCPostDLC.ccmod" }, - { "url": "https://github.com/CCDirectLink/cc-open-circuits/releases/download/v1.0.2/cc-open-circuits-1.0.2.ccmod" } + { "url": "https://github.com/CCDirectLink/cc-open-circuits/releases/download/v1.0.2/cc-open-circuits-1.0.2.ccmod" }, + { "url": "https://github.com/CCDirectLink/unified-steps/archive/refs/heads/master.zip", "source": "unified-steps-master/unified-steps" } ] diff --git a/npDatabase.json b/npDatabase.json index 82655d06..aca38837 100644 --- a/npDatabase.json +++ b/npDatabase.json @@ -1784,6 +1784,35 @@ "stars": 1, "lastUpdateTimestamp": 1708512139000 }, + "unified-steps": { + "metadataCCMod": { + "id": "unified-steps", + "version": "0.1.1", + "title": "Unified steps", + "description": "Just so everyone can use all the cool new action/event/whatever steps made", + "repository": "https://github.com/CCDirectLink/unified-steps", + "tags": [ + "library" + ], + "authors": [ + "ac2pic", + "bakafish" + ], + "prestart": "prestart.js" + }, + "installation": [ + { + "type": "zip", + "url": "https://github.com/CCDirectLink/unified-steps/archive/refs/heads/master.zip", + "source": "unified-steps-master/unified-steps", + "hash": { + "sha256": "ea8fe6f9349c6ac602108c32e06ab392913b9921c8c7ef0fde5721f52a3a65c1" + } + } + ], + "stars": 1, + "lastUpdateTimestamp": 1717098123000 + }, "xenons-triblader-mod": { "metadataCCMod": { "id": "xenons-triblader-mod", From 36536d4dbd073eb218ec4c0afdd7f7a0a7ca348d Mon Sep 17 00:00:00 2001 From: krypek Date: Thu, 30 May 2024 22:08:03 +0200 Subject: [PATCH 183/196] Update 'CCLoader' to 2.24.0 --- input-locations.json | 6 +++--- npDatabase.json | 10 +++++----- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/input-locations.json b/input-locations.json index e0cdd3f4..3b722c0c 100644 --- a/input-locations.json +++ b/input-locations.json @@ -1,8 +1,8 @@ [ { - "url": "https://github.com/CCDirectLink/CCLoader/archive/refs/tags/v2.23.2/v2.13.0.zip", - "ccmodPath": "CCLoader-2.23.2-v2.13.0/ccloader/ccmod.json", - "source": "CCLoader-2.23.2-v2.13.0" + "url": "https://github.com/CCDirectLink/CCLoader/archive/refs/tags/v2.24.0/v2.14.0.zip", + "ccmodPath": "CCLoader-2.24.0-v2.14.0/ccloader/ccmod.json", + "source": "CCLoader-2.24.0-v2.14.0" }, { "url": "https://github.com/CCDirectLink/CCLoader/archive/refs/tags/v2.23.2/v2.13.0.zip", "source": "CCLoader-2.23.2-v2.13.0/assets/mods/simplify" }, { "url": "https://github.com/CCDirectLink/CCLoader/archive/refs/tags/v2.23.2/v2.13.0.zip", "source": "CCLoader-2.23.2-v2.13.0/assets/mods/ccloader-version-display" }, diff --git a/npDatabase.json b/npDatabase.json index aca38837..ed3916d3 100644 --- a/npDatabase.json +++ b/npDatabase.json @@ -708,7 +708,7 @@ "ccloader": { "metadataCCMod": { "id": "ccloader", - "version": "2.23.2", + "version": "2.24.0", "title": "CCLoader", "description": "Modloader for CrossCode. This or a similar modloader is needed for most mods.", "repository": "https://github.com/CCDirectLink/CCLoader", @@ -731,15 +731,15 @@ "installation": [ { "type": "zip", - "url": "https://github.com/CCDirectLink/CCLoader/archive/refs/tags/v2.23.2/v2.13.0.zip", - "source": "CCLoader-2.23.2-v2.13.0", + "url": "https://github.com/CCDirectLink/CCLoader/archive/refs/tags/v2.24.0/v2.14.0.zip", + "source": "CCLoader-2.24.0-v2.14.0", "hash": { - "sha256": "b46a4f53e2db70a49ee015a1df91b9544124710fc11ce16ddaf835fb6ae767da" + "sha256": "5881caeba8928f968ad38b2ea7b0ba5cb642e25845d30df845eebfab60d5dff9" } } ], "stars": 31, - "lastUpdateTimestamp": 1710069756000 + "lastUpdateTimestamp": 1717081777000 }, "ccmodmanager": { "metadataCCMod": { From 06d6fb92bd363f2c2ab288fc305370076b05a692 Mon Sep 17 00:00:00 2001 From: krypek Date: Thu, 30 May 2024 22:26:13 +0200 Subject: [PATCH 184/196] Update todo.md --- todo.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/todo.md b/todo.md index e056cbea..4fe1772d 100644 --- a/todo.md +++ b/todo.md @@ -19,7 +19,7 @@ Upload the ccmod.json schema to https://github.com/SchemaStore/schemastore/ - ~~https://github.com/CCDirectLink/cc-menu-ui-replacement/pull/1~~ - ~~https://github.com/CCDirectLink/CCLoader/pull/104 (includes cc-display-version and simplify)~~ - ~~https://github.com/CCDirectLink/map-watch/pull/3~~ -- https://github.com/CCDirectLink/unified-steps/pull/1 +- ~~https://github.com/CCDirectLink/unified-steps/pull/1~~ - https://github.com/CCDirectLink/cc-speedrun-utilities/pull/2 - ~~https://github.com/CCDirectLink/cc-open-circuits/pull/1~~ From 3e625f3ac207372c73b0a45fd93131a09d100f3d Mon Sep 17 00:00:00 2001 From: krypek Date: Fri, 31 May 2024 00:00:43 +0200 Subject: [PATCH 185/196] Delete todo.md (it's all mine now haaahaha) --- todo.md | 90 --------------------------------------------------------- 1 file changed, 90 deletions(-) delete mode 100644 todo.md diff --git a/todo.md b/todo.md deleted file mode 100644 index 4fe1772d..00000000 --- a/todo.md +++ /dev/null @@ -1,90 +0,0 @@ - - -# todo - -Upload the ccmod.json schema to https://github.com/SchemaStore/schemastore/ - -## PR's in progress - -### CCDirectLink - -- ~~https://github.com/CCDirectLink/input-api/pull/2~~ -- ~~https://github.com/CCDirectLink/CC-ChargedBalls/pull/2~~ -- ~~https://github.com/CCDirectLink/CCJetpack/pull/8~~ -- ~~https://github.com/CCDirectLink/CCNewGamePP/pull/4~~ -- ~~https://github.com/CCDirectLink/CCdiscord/pull/20~~ -- ~~https://github.com/CCDirectLink/CCTimeWalker/pull/7~~ -- ~~https://github.com/CCDirectLink/CCTimer/pull/6~~ -- ~~https://github.com/CCDirectLink/extendable-severed-heads/pull/7~~ -- ~~https://github.com/CCDirectLink/cc-menu-ui-replacement/pull/1~~ -- ~~https://github.com/CCDirectLink/CCLoader/pull/104 (includes cc-display-version and simplify)~~ -- ~~https://github.com/CCDirectLink/map-watch/pull/3~~ -- ~~https://github.com/CCDirectLink/unified-steps/pull/1~~ -- https://github.com/CCDirectLink/cc-speedrun-utilities/pull/2 -- ~~https://github.com/CCDirectLink/cc-open-circuits/pull/1~~ - -### Nax - -- https://github.com/conorlawton/nax-module-cache/pull/1 -- https://github.com/conorlawton/CCInventorySearch/pull/5 (remind him of the other crash fix pr) -- https://github.com/conorlawton/nax-ccuilib/pull/9 - -### ~~EL~~ - -- ~~https://github.com/EL20202/cc-capped-stats/pull/1~~ -- ~~https://github.com/EL20202/crosscode-font-utils/pull/2~~ -- ~~https://github.com/EL20202/el-crosscode-tweaks/pull/2~~ -- ~~https://github.com/EL20202/crosscode-extension-asset-preloader/pull/1~~ -- ~~https://github.com/EL20202/crosscode-modifier-api-reborn/pull/1~~ -- ~~https://github.com/elluminance/cc-c-edition/pull/1~~ - -### Alyx - -- ~~https://github.com/lexisother/CCPostDLC/pull/1~~ -- ~~https://github.com/lexisother/CCOldMedia/pull/1~~ -- ~~https://github.com/lexisother/cc-quickinfo-exp/pull/1~~ -- ~~https://github.com/lexisother/cc-alybox/pull/1~~ - -### Xenon - -- ~~https://github.com/XenonA7/qine/pull/1~~ -- ~~https://github.com/XenonA7/xenons-triblader-mod/pull/12~~ -- ~~https://github.com/XenonA7/xmc-hexacast/pull/3~~ -- ~~https://github.com/XenonA7/cc-party-element-effects/pull/2~~ -- ~~https://github.com/XenonA7/xmc-hexacast-litter/pull/1~~ -- ~~https://github.com/XenonA7/clean-title-screen/pull/1~~ - -### Juanba - -- https://github.com/buanjautista/cc-shock-quest/pull/1 -- ~~https://github.com/buanjautista/cc-open-world/pull/2~~ - -### Rest - -- ~~https://github.com/Symphiel/CursedCode/pull/1~~ -- https://github.com/Hsifnus/autumns-genesis/pull/35 -- ~~https://github.com/2hh8899/ArcaneLab/pull/19~~ -- ~~https://github.com/CodeTriangle/CCMultiworldRandomizer/pull/10~~ - -## PR's in progress but probably never merging (will need to make release on my fork if not merged) - -### Dmitmel - -- https://github.com/dmitmel/cc-world-map-overhaul/pull/2 -- https://github.com/dmitmel/crosscode-readable-saves/pull/5 -- https://github.com/dmitmel/crosscode-tweak-pack/pull/5 - -### Rest1 - -- ~~https://github.com/ZeikJT/CrossCodeCheats/pull/7~~ -- ~~https://github.com/L-Sherry/Localize-me/pull/12~~ -- ~~https://github.com/L-Sherry/French-CC/pull/19~~ -- ~~https://github.com/L-Sherry/Bob-Rank/pull/1~~ -- ~~https://github.com/rioreur/palicat/pull/3~~ -- https://github.com/tylercamp/CCJoystickExt/pull/1 -- https://github.com/ubergeek77/CCExtraGamepadOptions/pull/3 -- https://github.com/WatDuhHekBro/cc-uwuifier/pull/4 -- ~~https://github.com/Inevitabilis/CC-Junolea/pull/1~~ -- ~~https://github.com/Pyrocorvid/CCNineRooms/pull/2~~ -- ~~https://github.com/CookieSalesman/CrossCode-HADOUKEN-v1.0/pull/2~~ -- ~~https://github.com/canbora/cc-named-saves/pull/2~~ From 80cfa7384bb8b6fe1ea3d15c783c4f9a1064b3be Mon Sep 17 00:00:00 2001 From: krypek Date: Sat, 1 Jun 2024 11:04:22 +0200 Subject: [PATCH 186/196] Update CCLoader to v2.24.1/v2.14.1 --- input-locations.json | 6 +++--- npDatabase.json | 10 +++++----- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/input-locations.json b/input-locations.json index 3b722c0c..c684256f 100644 --- a/input-locations.json +++ b/input-locations.json @@ -1,8 +1,8 @@ [ { - "url": "https://github.com/CCDirectLink/CCLoader/archive/refs/tags/v2.24.0/v2.14.0.zip", - "ccmodPath": "CCLoader-2.24.0-v2.14.0/ccloader/ccmod.json", - "source": "CCLoader-2.24.0-v2.14.0" + "url": "https://github.com/CCDirectLink/CCLoader/archive/refs/tags/v2.24.1/v2.14.1.zip", + "ccmodPath": "CCLoader-2.24.1-v2.14.1/ccloader/ccmod.json", + "source": "CCLoader-2.24.1-v2.14.1" }, { "url": "https://github.com/CCDirectLink/CCLoader/archive/refs/tags/v2.23.2/v2.13.0.zip", "source": "CCLoader-2.23.2-v2.13.0/assets/mods/simplify" }, { "url": "https://github.com/CCDirectLink/CCLoader/archive/refs/tags/v2.23.2/v2.13.0.zip", "source": "CCLoader-2.23.2-v2.13.0/assets/mods/ccloader-version-display" }, diff --git a/npDatabase.json b/npDatabase.json index ed3916d3..904b69e7 100644 --- a/npDatabase.json +++ b/npDatabase.json @@ -708,7 +708,7 @@ "ccloader": { "metadataCCMod": { "id": "ccloader", - "version": "2.24.0", + "version": "2.24.1", "title": "CCLoader", "description": "Modloader for CrossCode. This or a similar modloader is needed for most mods.", "repository": "https://github.com/CCDirectLink/CCLoader", @@ -731,15 +731,15 @@ "installation": [ { "type": "zip", - "url": "https://github.com/CCDirectLink/CCLoader/archive/refs/tags/v2.24.0/v2.14.0.zip", - "source": "CCLoader-2.24.0-v2.14.0", + "url": "https://github.com/CCDirectLink/CCLoader/archive/refs/tags/v2.24.1/v2.14.1.zip", + "source": "CCLoader-2.24.1-v2.14.1", "hash": { - "sha256": "5881caeba8928f968ad38b2ea7b0ba5cb642e25845d30df845eebfab60d5dff9" + "sha256": "224360117cdfb870dbf55a6ab41003b101f16db28382de77fb18e99f13fecf14" } } ], "stars": 31, - "lastUpdateTimestamp": 1717081777000 + "lastUpdateTimestamp": 1717191269000 }, "ccmodmanager": { "metadataCCMod": { From 1c231771789b5f260c9f89b660d7b08622d7527f Mon Sep 17 00:00:00 2001 From: krypek Date: Sun, 9 Jun 2024 13:45:22 +0200 Subject: [PATCH 187/196] CCBot New mod: world-map-overhaul (#161) * CCBot master: ccbot/0 * CCBot: Fill 'world-map-overhaul' info --- icons/world-map-overhaul.png | Bin 0 -> 2280 bytes input-locations.json | 3 +- npDatabase.json | 65 +++++++++++++++++++++++++++++++++++ 3 files changed, 67 insertions(+), 1 deletion(-) create mode 100644 icons/world-map-overhaul.png diff --git a/icons/world-map-overhaul.png b/icons/world-map-overhaul.png new file mode 100644 index 0000000000000000000000000000000000000000..5829f4d18cb4ef67ad541f846c86b4cb9050cc61 GIT binary patch literal 2280 zcmVP)EX>4Tx04R}tkvmAkKpe)uKBOWQ5j%)DWT;LSM8(IZ zRVYG*P%E_RU~=gTnlvOSE{=k0!NJF3)xpJCR|i)?5PX2Rxj8AiNQwVT3N2#1jDw_ypovrW+RV2Jz&krE}gVjJ=?&=bxV`?fXf}A|4Ek&$&muI{P{faen#Jv1^RA* zt~IxB&2yYS0BPz~@&-6K1cnQgz3%bu&i20jThr{{55jqJ$KD|3P5=M^32;bRa{vGf z6951U69E94oEQKA2Kh-uK~zY`b(VWjl;;`6f8WR6*kxgNfd%BY5EKM2^@3;+Z9=NG zHA;x7x72u_Ni*7H;h@ut53n)T%Szs4- zm%V@c^$(|7o%H$Zop5-JmP1B zaNZM@Rs z=5pZbGOn|WQLkoUUTA?LJ-G=X^0R%A)j^!cKwQo+WS@oh>JHvp|1o3YqTqjq{*d63 zPhvt#6$9!3s}~Q!dG{WRQrBU0>xhITlr0)Kc9rvOnYbkt8FwV2GNAt08XEU@a^<^P z(sJ@>2|RA8_-@%+Jb(TgOYNJO)qTXs{k(O14qK~taPD7i*qz zHP6bdp1GK$qu@(jew?70KUh$KE2qQzKBE>m?L>gBfqGYT>;clA!5=p89QwVlS;Di$T95LS%o{)!r>1$Q?h6ip+XG_69fF{ zS~<}T5thv_oD8bqlKoI+x*)yHBsVk{be}Uc6&Y7zXScd8dNm^oxXEEVo69%Og zWkD>_^G*>C%MTPZbO+I!dpLV?Ji$R1uA!~e{e25FUtU2(mQf2n#Q1Nik2LaE8b~0F zLX06S7$H_kPS$7=^T*Ta8N__JmD5$P5e&H=DR2#h2|Bc#*grsqS&Pnno4u7iNsiz%g$ z?4y_1x93^Xr_MqOhf!*cbgo~{q;xfk+P)lakcqGY7eM1dn0y09qSCY^D zs*IeTJcb%HT-05sc$|@ceAP)wj*)XWowVcxnK$(!c_|W}fIvtBx5>^xyP3fuJ@f`b z>|C^xen&siF$PrTky!5SW$Udwi1k-JjL1)BbHgDlEBpkU0X{$DWX_9;TyQF=|KUao zW*%ZkWeOb~+xVyNKFvcMT=U9QUq6WuuRxN+EdOXXxeLZ2CuX9Ex<)}Djc>mTARKgs zJJPOW>k~*D?Ps5~gX8C`S-s>HTAK&?f2EF65Rk$E{BhCCD7`Hdm{XBe z9-iKQ`oW@2J7A_b;}qt+7*weeAwf@Kl8QxT3y@_}V|6 z(I}&3(lRtWHB8Hf&pu(&(*@*?NW&9Sl4w?;C{9vw&GjY6L$6@c&BbO65G4zkWSMSj zh;C~Tqe;QI>7TNzY66;3lezB<)9(xutrhWkBX~R#N~J(3B%>IJ&}Ov}t&OI~9z@a5 z9mIJ>$@0j@I7h!kYPy=zBsE9x``Px(Vm>@^1-C2A9}XxHg`0e~`4+0AVchYFbfRPL z>=0eKMW{6*T^)X==(RK(4Y=Iy2aERVUw+GUpMw+WZ{X+)0kG=G5k_9CV*E2j+`2J{ zwJX4%zO1G|KZV0JPV#0K@zZ&Qm`?7b_MO!@8k^X-sg?n!k1;Vuq&e%DXzya_uD2fL zflsXmz~h!!tGtOOE))Bax`$@2Tv11}r=H3KtC>AUk5(&UQ1;d=S42y;VM+mn|;@3~$0Q?8A83#;q)Rfu)0000 Date: Sun, 9 Jun 2024 13:58:01 +0200 Subject: [PATCH 188/196] CCBot New mod: crosscode-tweak-pack (#162) * CCBot master: ccbot/0 * CCBot: Fill 'crosscode-tweak-pack' info --- icons/crosscode-tweak-pack.png | Bin 0 -> 769 bytes input-locations.json | 3 ++- npDatabase.json | 36 +++++++++++++++++++++++++++++++++ 3 files changed, 38 insertions(+), 1 deletion(-) create mode 100644 icons/crosscode-tweak-pack.png diff --git a/icons/crosscode-tweak-pack.png b/icons/crosscode-tweak-pack.png new file mode 100644 index 0000000000000000000000000000000000000000..02a85e7ed91bec678434050d9261e604a8e0c535 GIT binary patch literal 769 zcmV+c1OEJpP)EX>4Tx04R}tkv&MmP!xqvQ?()$2Rn#3WT=8*K~&UH zt5Adrp;l*{h@IUxHTPr_4<|T#WK>Lg1d<+7iU7%idobO}D zshQiya5glfuRCrulc;YvvqF&-f7J52bdsow(G9z$p8QV32;bRa{vGi z!vFvd!vV){sAK>D0TM|>K~zY`?Uk_&gD?<9zatuEUHXZExP9o z0MM5W03b}ORR%Eu%ep^at0y8`z$~t~o@Y-)wt(e0Rq6zT$hG14o-tT9;SDT)((%1% z7mn{K!ATq_p#YF~10vTJ<}5jwoq#W(4j2HEIGDc88t`HT?8`<-oeDfBYwaE|FuyY$ zu(p9*pS&Biz)Xj|d(q$EhYYg1{kSBiQmq$$(=e@2YygivNa%5v+*!l4qGR*h1YWvm zWK0?5A*xof1U7k-DS+uw(FGen`poEyb^GcK2eF`@aE-u600000NkvXXu0mjf#K2B} literal 0 HcmV?d00001 diff --git a/input-locations.json b/input-locations.json index b4bb6a1f..0a9c94f2 100644 --- a/input-locations.json +++ b/input-locations.json @@ -63,5 +63,6 @@ { "url": "https://github.com/lexisother/CCPostDLC/releases/download/v1.0.0/CCPostDLC.ccmod" }, { "url": "https://github.com/CCDirectLink/cc-open-circuits/releases/download/v1.0.2/cc-open-circuits-1.0.2.ccmod" }, { "url": "https://github.com/CCDirectLink/unified-steps/archive/refs/heads/master.zip", "source": "unified-steps-master/unified-steps" }, - { "url": "https://github.com/krypciak/cc-world-map-overhaul/releases/download/v1.1.3/world-map-overhaul-1.1.3.ccmod" } + { "url": "https://github.com/krypciak/cc-world-map-overhaul/releases/download/v1.1.3/world-map-overhaul-1.1.3.ccmod" }, + { "url": "https://github.com/krypciak/crosscode-tweak-pack/releases/download/v1.1.2/crosscode-tweak-pack-1.1.2.ccmod" } ] diff --git a/npDatabase.json b/npDatabase.json index 032d6605..705981c7 100644 --- a/npDatabase.json +++ b/npDatabase.json @@ -891,6 +891,42 @@ "stars": 0, "lastUpdateTimestamp": 1708620822000 }, + "crosscode-tweak-pack": { + "metadataCCMod": { + "id": "crosscode-tweak-pack", + "version": "1.1.2", + "title": "dmitmel's tweak pack", + "description": { + "en_US": "Micro-mods by dmitmel in a single 999-in-1 package, ranging from QoL tweaks to cheats.", + "ru_RU": "Микро-моды от dmitmel в одной упаковке 999-in-1, начиная от QoL дополнений и заканчивая читами." + }, + "repository": "https://github.com/dmitmel/crosscode-tweak-pack", + "tags": [ + "QoL" + ], + "authors": "dmitmel", + "icons": { + "24": "icon24.png" + }, + "plugin": "src/_plugin.js", + "prestart": "src/_prestart.js", + "assets": [ + "data/lang/sc/gui.en_US.json.patch", + "data/lang/sc/gui.ru_RU.json.patch" + ] + }, + "installation": [ + { + "type": "zip", + "url": "https://github.com/krypciak/crosscode-tweak-pack/releases/download/v1.1.2/crosscode-tweak-pack-1.1.2.ccmod", + "hash": { + "sha256": "4256deb6c70ae0fc7143b978ff86d50f8c353b3a781344c81bd60b98f5c98242" + } + } + ], + "stars": 11, + "lastUpdateTimestamp": 1647125834000 + }, "crossedeyes": { "metadataCCMod": { "id": "crossedeyes", From ab18d2cda7c9475a2d38284e6fb9442981ce26aa Mon Sep 17 00:00:00 2001 From: krypek Date: Mon, 10 Jun 2024 18:49:13 +0200 Subject: [PATCH 189/196] CCBot Update mod: ccmodmanager (#163) * CCBot master: ccbot/0 * CCBot: Fill 'ccmodmanager' info --- input-locations.json | 2 +- npDatabase.json | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/input-locations.json b/input-locations.json index 0a9c94f2..ea8ea1d4 100644 --- a/input-locations.json +++ b/input-locations.json @@ -46,7 +46,7 @@ { "url": "https://github.com/CodeTriangle/CCMultiworldRandomizer/releases/download/0.4.1/CCMultiworldRandomizer-0.4.1.ccmod" }, { "url": "https://github.com/lubkuluk/lubkuluks-joern-mod/files/14393459/lubkuluks-joern-mod.zip" }, { "url": "https://github.com/canbora/cc-named-saves/releases/download/v1.0.1/cc-named-saves.ccmod" }, - { "url": "https://github.com/CCDirectLink/CCModManager/releases/download/v0.9.11/ccmodmanager-0.9.11.ccmod" }, + { "url": "https://github.com/CCDirectLink/CCModManager/releases/download/v0.9.12/ccmodmanager-0.9.12.ccmod" }, { "url": "https://github.com/buanjautista/cc-open-world/releases/download/0.3.2/cc-open-world.v0.3.2-smelterfix.ccmod" }, { "url": "https://github.com/krypciak/nax-module-cache/releases/download/v1.0.2/nax-module-cache.ccmod" }, { "url": "https://github.com/krypciak/nax-ccuilib/releases/download/v1.2.7/nax-ccuilib.ccmod" }, diff --git a/npDatabase.json b/npDatabase.json index 705981c7..2a7fa28b 100644 --- a/npDatabase.json +++ b/npDatabase.json @@ -29,7 +29,7 @@ } } ], - "stars": 31, + "stars": 32, "lastUpdateTimestamp": 1710069756000 }, "CrossCode C Edition": { @@ -262,7 +262,7 @@ } } ], - "stars": 31, + "stars": 32, "lastUpdateTimestamp": 1710069756000 }, "arcane-lab": { @@ -738,13 +738,13 @@ } } ], - "stars": 31, + "stars": 32, "lastUpdateTimestamp": 1717191269000 }, "ccmodmanager": { "metadataCCMod": { "id": "ccmodmanager", - "version": "0.9.11", + "version": "0.9.12", "title": "CCModManager", "description": "Mod manager for CrossCode!", "repository": "https://github.com/CCDirectLink/CCModManager", @@ -765,14 +765,14 @@ "installation": [ { "type": "zip", - "url": "https://github.com/CCDirectLink/CCModManager/releases/download/v0.9.11/ccmodmanager-0.9.11.ccmod", + "url": "https://github.com/CCDirectLink/CCModManager/releases/download/v0.9.12/ccmodmanager-0.9.12.ccmod", "hash": { - "sha256": "d0c6dfc540f15b263250aed3f647e5c7034bb373928aa6123429b8dd74f31313" + "sha256": "8c868427c81508bb3ba98073940004159daeb078c8b2fd60cf24d120c958905a" } } ], "stars": 0, - "lastUpdateTimestamp": 1716050075000 + "lastUpdateTimestamp": 1718037908000 }, "ccpostdlc": { "metadataCCMod": { From 81dc9095ac1bfaa980a679e7fdf5c19b660fe8e6 Mon Sep 17 00:00:00 2001 From: krypek Date: Mon, 10 Jun 2024 18:54:04 +0200 Subject: [PATCH 190/196] CCBot Update mod: cc-blitzkrieg (#164) * CCBot master: ccbot/0 * CCBot: Fill 'cc-blitzkrieg' info --- input-locations.json | 2 +- npDatabase.json | 11 ++++++----- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/input-locations.json b/input-locations.json index ea8ea1d4..824eb7cd 100644 --- a/input-locations.json +++ b/input-locations.json @@ -7,7 +7,7 @@ { "url": "https://github.com/CCDirectLink/CCLoader/archive/refs/tags/v2.23.2/v2.13.0.zip", "source": "CCLoader-2.23.2-v2.13.0/assets/mods/simplify" }, { "url": "https://github.com/CCDirectLink/CCLoader/archive/refs/tags/v2.23.2/v2.13.0.zip", "source": "CCLoader-2.23.2-v2.13.0/assets/mods/ccloader-version-display" }, { "url": "https://github.com/CCDirectLink/input-api/archive/refs/tags/v1.0.2.zip" }, - { "url": "https://github.com/krypciak/cc-blitzkrieg/releases/download/v0.5.6/cc-blitzkrieg-0.5.6.ccmod" }, + { "url": "https://github.com/krypciak/cc-blitzkrieg/releases/download/v0.5.7/cc-blitzkrieg-0.5.7.ccmod" }, { "url": "https://github.com/krypciak/cc-fancy-crash/releases/download/v1.0.8/cc-fancy-crash-1.0.8.ccmod" }, { "url": "https://github.com/CCDirectLink/Blades/archive/1.6.0.zip" }, { "url": "https://github.com/krypciak/cc-jetpack-widget/releases/download/v1.0.3/cc-jetpack-widget-1.0.3.ccmod" }, diff --git a/npDatabase.json b/npDatabase.json index 2a7fa28b..fa910417 100644 --- a/npDatabase.json +++ b/npDatabase.json @@ -405,7 +405,7 @@ "cc-blitzkrieg": { "metadataCCMod": { "id": "cc-blitzkrieg", - "version": "0.5.6", + "version": "0.5.7", "title": "Blitzkrieg (WIP)", "description": "Puzzle solving, incresed puzzle difficuly, puzzle and boss collection tools", "repository": "https://github.com/krypciak/cc-blitzkrieg", @@ -420,21 +420,22 @@ }, "dependencies": { "input-api": ">=1.0.2", - "crosscode": ">=1.4.0" + "crosscode": ">=1.4.0", + "ccmodmanager": ">=0.9.12" }, "plugin": "plugin.js" }, "installation": [ { "type": "zip", - "url": "https://github.com/krypciak/cc-blitzkrieg/releases/download/v0.5.6/cc-blitzkrieg-0.5.6.ccmod", + "url": "https://github.com/krypciak/cc-blitzkrieg/releases/download/v0.5.7/cc-blitzkrieg-0.5.7.ccmod", "hash": { - "sha256": "87d345a017547eaabfeb71ab306e8b43a93b371a568c75cc48cc3106483faf14" + "sha256": "d114c3fc8e78869a3be767437c9e13fe2e1954b94a4b50277d12a72405322be7" } } ], "stars": 0, - "lastUpdateTimestamp": 1716049802000 + "lastUpdateTimestamp": 1718038278000 }, "cc-capped-stats": { "metadataCCMod": { From fb4b7394ad15026d494fe85a6fe5e46d90bf2150 Mon Sep 17 00:00:00 2001 From: krypek Date: Mon, 10 Jun 2024 18:56:05 +0200 Subject: [PATCH 191/196] CCBot Update mod: cc-fancy-crash (#165) * CCBot master: ccbot/0 * CCBot: Fill 'cc-fancy-crash' info --- input-locations.json | 2 +- npDatabase.json | 11 +++++++---- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/input-locations.json b/input-locations.json index 824eb7cd..c6b7e16b 100644 --- a/input-locations.json +++ b/input-locations.json @@ -8,7 +8,7 @@ { "url": "https://github.com/CCDirectLink/CCLoader/archive/refs/tags/v2.23.2/v2.13.0.zip", "source": "CCLoader-2.23.2-v2.13.0/assets/mods/ccloader-version-display" }, { "url": "https://github.com/CCDirectLink/input-api/archive/refs/tags/v1.0.2.zip" }, { "url": "https://github.com/krypciak/cc-blitzkrieg/releases/download/v0.5.7/cc-blitzkrieg-0.5.7.ccmod" }, - { "url": "https://github.com/krypciak/cc-fancy-crash/releases/download/v1.0.8/cc-fancy-crash-1.0.8.ccmod" }, + { "url": "https://github.com/krypciak/cc-fancy-crash/releases/download/v1.0.9/cc-fancy-crash-1.0.9.ccmod" }, { "url": "https://github.com/CCDirectLink/Blades/archive/1.6.0.zip" }, { "url": "https://github.com/krypciak/cc-jetpack-widget/releases/download/v1.0.3/cc-jetpack-widget-1.0.3.ccmod" }, { "url": "https://github.com/krypciak/cc-character-widgets/releases/download/v1.0.0/cc-character-widgets-1.0.0.ccmod" }, diff --git a/npDatabase.json b/npDatabase.json index fa910417..2a4f6bb9 100644 --- a/npDatabase.json +++ b/npDatabase.json @@ -565,7 +565,7 @@ "cc-fancy-crash": { "metadataCCMod": { "id": "cc-fancy-crash", - "version": "1.0.8", + "version": "1.0.9", "title": "Fancy crash", "description": "Better crash message", "repository": "https://github.com/krypciak/cc-fancy-crash", @@ -576,19 +576,22 @@ "icons": { "24": "icon/icon.png" }, + "dependencies": { + "ccmodmanager": ">=0.9.12" + }, "plugin": "plugin.js" }, "installation": [ { "type": "zip", - "url": "https://github.com/krypciak/cc-fancy-crash/releases/download/v1.0.8/cc-fancy-crash-1.0.8.ccmod", + "url": "https://github.com/krypciak/cc-fancy-crash/releases/download/v1.0.9/cc-fancy-crash-1.0.9.ccmod", "hash": { - "sha256": "4072312dfc3d9f99b0b33df61dc8470f96e53453c9b45b71d7e9ef83db24b7aa" + "sha256": "b62e3add8e6a371dbeadc4274e8d2cf29e6c1c6887f995e30d467e4e9ec8cc01" } } ], "stars": 0, - "lastUpdateTimestamp": 1708109072000 + "lastUpdateTimestamp": 1718038372000 }, "cc-jetpack-widget": { "metadataCCMod": { From a3b3cc8794c8fee68feb480e35f63c98969ef924 Mon Sep 17 00:00:00 2001 From: krypek Date: Mon, 10 Jun 2024 18:59:13 +0200 Subject: [PATCH 192/196] CCBot Update mod: cc-vim (#166) * CCBot master: ccbot/0 * CCBot: Fill 'cc-vim' info --- input-locations.json | 2 +- npDatabase.json | 11 ++++++----- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/input-locations.json b/input-locations.json index c6b7e16b..ceb5c502 100644 --- a/input-locations.json +++ b/input-locations.json @@ -16,7 +16,7 @@ { "url": "https://github.com/krypciak/cc-element-boss/releases/download/v0.1.3/element-boss-0.1.3.ccmod" }, { "url": "https://github.com/CCDirectLink/item-api/releases/download/v0.4.4/item-api.ccmod" }, { "url": "https://github.com/krypciak/cc-extra-dialogue/releases/download/v1.0.1/cc-extra-dialogue.ccmod" }, - { "url": "https://github.com/krypciak/cc-vim/releases/download/v1.6.0/cc-vim-1.6.0.ccmod" }, + { "url": "https://github.com/krypciak/cc-vim/releases/download/v1.6.1/cc-vim-1.6.1.ccmod" }, { "url": "https://github.com/Symphiel/CursedCode/archive/refs/tags/0.1.1-2.zip" }, { "url": "https://github.com/Pyrocorvid/CCNineRooms/archive/refs/tags/v1.0.2.zip", "source": "CCNineRooms-1.0.2/nine-rooms" }, { "url": "https://github.com/Pyrocorvid/CCNineRooms/archive/refs/tags/v1.0.2.zip", "source": "CCNineRooms-1.0.2/past-booster" }, diff --git a/npDatabase.json b/npDatabase.json index 2a4f6bb9..8a213aa4 100644 --- a/npDatabase.json +++ b/npDatabase.json @@ -680,7 +680,7 @@ "cc-vim": { "metadataCCMod": { "id": "cc-vim", - "version": "1.6.0", + "version": "1.6.1", "title": "Vim Command Mode", "description": "Adds a popup command prompt", "repository": "https://github.com/krypciak/cc-vim", @@ -693,21 +693,22 @@ "24": "icon/icon.png" }, "dependencies": { - "input-api": ">=1.0.0" + "input-api": ">=1.0.0", + "ccmodmanager": ">=0.9.12" }, "plugin": "plugin.js" }, "installation": [ { "type": "zip", - "url": "https://github.com/krypciak/cc-vim/releases/download/v1.6.0/cc-vim-1.6.0.ccmod", + "url": "https://github.com/krypciak/cc-vim/releases/download/v1.6.1/cc-vim-1.6.1.ccmod", "hash": { - "sha256": "6e4e2aa1959f45c0a268a72328fc5c9d25bf997f6f67b8f7400d45de6c9d9539" + "sha256": "234e06ee3cff741e65f90bf887938d78c13fa19cb86d5a3a43a2da6f09db90ea" } } ], "stars": 1, - "lastUpdateTimestamp": 1710884225000 + "lastUpdateTimestamp": 1718038495000 }, "ccloader": { "metadataCCMod": { From f5eeebf6e36fae1689eee2e76262a1c609fd53c6 Mon Sep 17 00:00:00 2001 From: krypek Date: Wed, 12 Jun 2024 12:41:17 +0200 Subject: [PATCH 193/196] Update cc-blitzkrieg, cc-fancy-crash, cc-vim, ccmodmanager, add cc-nwjs-manager --- icons/cc-nwjs-manager.png | Bin 0 -> 2027 bytes input-locations.json | 11 +++--- npDatabase.json | 76 +++++++++++++++++++++++++++----------- 3 files changed, 60 insertions(+), 27 deletions(-) create mode 100644 icons/cc-nwjs-manager.png diff --git a/icons/cc-nwjs-manager.png b/icons/cc-nwjs-manager.png new file mode 100644 index 0000000000000000000000000000000000000000..2ff5851cb3441ca6b4ff9784ebcf42f99baa62fa GIT binary patch literal 2027 zcmV?FZnBY*Vi22KEnNM9%lD{sN4BXVkl8 zoLK+>010qNS#tmY3labT3lag+-G2N400tvTL_t(Y4Q-WaY*bYg$IpGs?9+L(Ks&UQ zmZq#~3#E`o5hWNmB*YLzC`DspV%MfIWHOa|n8!c-V12`zbL}?qLeZNm&CqlGq_kOqJD5#G{BaO{}ovS>5v4trb zr%j&h1((aiZ1w`pU@)QsjOB7!h{t2v@bD1a84NK{van!&6+E+Kai8RLZI4D`KQ=V1 z9waNe2b-I=RM>6iZ5=+}JNpkEncUjpXQI&rPN!2>>~KgRIh@RDu`;8{1fszJs;Xj_ zQJ@ByY!P-1ye0ISWecR`@kX-rc!+73pe5yeO_8cV{#qdyC+t!>ZAx$GPGiV2GsuP|w# zRs{QRfgl<*Gpgh;(>%w3p}K4~1F={HjQ}KKF|rA%bP5vjC}c88V44gAb3Y(EU<(`t zamWw-w?p7|yQkLGy=W4U!wEc(p+c1$51Og~;6t2(is~~6Q)C%|G2l3K7%h=k3Wg}n z+aXx7R)@ntJFs{^ZdFkP#vYL&gpYIXAL|~B8zIryC|Gz>llLjl!#94hMIV${tRR|rR4U|EQ|>Ttq>YSF zC#IsvASjB4$&~fjlX`j?#d^LM7JzXu(d~E^C?6_T8`d*$V|#SV_=DSZ1~FwaplS-s z;z?AMyn_4T<6x7?jG+*54GB@Pnt0%N{jd=ddp_tSj;5r3oGB!e2`!aMs~nyI4oi#L zIGDzgBw-jxC!ToX;DF|M!t!i=PM*_qT!5WCOs6xr7^|qQ^-QL^YSvJ(*9*b^+qezu z7Y~VksPYsn4T>?HZ2b>^2(BlKXn8QcrLfto7APq$hLMqxXlG|@mM%NZA-Qs1uXoXm z$_fvaX)K<=3L7(o#&|&l0ZWm?&SMvFPTt}n#c-j0luyRXrk1cpwKY`g*Sos>TZ6&w zZv8e5_VxCe&DJwc$;IZ(o?YtkxNM`NBMd*0C{SRcXu{jo0tO>ikHO3^{(7lnPM9KR znX|yo>K4_q*)wMj4u!+Je7?3%&Yu0_0@}=bO@py!Shw!2y6MxWzs>W)D}6VE_Rg!< zAf3T#5RGIEV*?DYX^?Xn&14kV+*vcAd|FuytL9j5Z}0ZKdw(GC#FtI?V4RNs%F?AT z1o!OO{aaCy_eyDLsdGwEQ88ZULL@Q*S-d^vTpHCYFm37-wxGH?T~t_j`gSO^@xZ>H zw${|t1}1~1QJ%?AWTpm7r_z0Xld2B4<_lWtryf@cJiDU{keZC1Ck`%75Z`g6Qt7{Dw z$T!nU%K~MkvlLC1>wz2UqLdJeFRRh{{a8nh##002ov JPDHLkV1gaFwmtv= literal 0 HcmV?d00001 diff --git a/input-locations.json b/input-locations.json index ceb5c502..2ca86157 100644 --- a/input-locations.json +++ b/input-locations.json @@ -7,8 +7,8 @@ { "url": "https://github.com/CCDirectLink/CCLoader/archive/refs/tags/v2.23.2/v2.13.0.zip", "source": "CCLoader-2.23.2-v2.13.0/assets/mods/simplify" }, { "url": "https://github.com/CCDirectLink/CCLoader/archive/refs/tags/v2.23.2/v2.13.0.zip", "source": "CCLoader-2.23.2-v2.13.0/assets/mods/ccloader-version-display" }, { "url": "https://github.com/CCDirectLink/input-api/archive/refs/tags/v1.0.2.zip" }, - { "url": "https://github.com/krypciak/cc-blitzkrieg/releases/download/v0.5.7/cc-blitzkrieg-0.5.7.ccmod" }, - { "url": "https://github.com/krypciak/cc-fancy-crash/releases/download/v1.0.9/cc-fancy-crash-1.0.9.ccmod" }, + { "url": "https://github.com/krypciak/cc-blitzkrieg/releases/download/v0.5.8/cc-blitzkrieg-0.5.8.ccmod" }, + { "url": "https://github.com/krypciak/cc-fancy-crash/releases/download/v1.1.0/cc-fancy-crash-1.1.0.ccmod" }, { "url": "https://github.com/CCDirectLink/Blades/archive/1.6.0.zip" }, { "url": "https://github.com/krypciak/cc-jetpack-widget/releases/download/v1.0.3/cc-jetpack-widget-1.0.3.ccmod" }, { "url": "https://github.com/krypciak/cc-character-widgets/releases/download/v1.0.0/cc-character-widgets-1.0.0.ccmod" }, @@ -16,7 +16,7 @@ { "url": "https://github.com/krypciak/cc-element-boss/releases/download/v0.1.3/element-boss-0.1.3.ccmod" }, { "url": "https://github.com/CCDirectLink/item-api/releases/download/v0.4.4/item-api.ccmod" }, { "url": "https://github.com/krypciak/cc-extra-dialogue/releases/download/v1.0.1/cc-extra-dialogue.ccmod" }, - { "url": "https://github.com/krypciak/cc-vim/releases/download/v1.6.1/cc-vim-1.6.1.ccmod" }, + { "url": "https://github.com/krypciak/cc-vim/releases/download/v1.6.2/cc-vim-1.6.2.ccmod" }, { "url": "https://github.com/Symphiel/CursedCode/archive/refs/tags/0.1.1-2.zip" }, { "url": "https://github.com/Pyrocorvid/CCNineRooms/archive/refs/tags/v1.0.2.zip", "source": "CCNineRooms-1.0.2/nine-rooms" }, { "url": "https://github.com/Pyrocorvid/CCNineRooms/archive/refs/tags/v1.0.2.zip", "source": "CCNineRooms-1.0.2/past-booster" }, @@ -46,7 +46,7 @@ { "url": "https://github.com/CodeTriangle/CCMultiworldRandomizer/releases/download/0.4.1/CCMultiworldRandomizer-0.4.1.ccmod" }, { "url": "https://github.com/lubkuluk/lubkuluks-joern-mod/files/14393459/lubkuluks-joern-mod.zip" }, { "url": "https://github.com/canbora/cc-named-saves/releases/download/v1.0.1/cc-named-saves.ccmod" }, - { "url": "https://github.com/CCDirectLink/CCModManager/releases/download/v0.9.12/ccmodmanager-0.9.12.ccmod" }, + { "url": "https://github.com/CCDirectLink/CCModManager/releases/download/v0.9.13/ccmodmanager-0.9.13.ccmod" }, { "url": "https://github.com/buanjautista/cc-open-world/releases/download/0.3.2/cc-open-world.v0.3.2-smelterfix.ccmod" }, { "url": "https://github.com/krypciak/nax-module-cache/releases/download/v1.0.2/nax-module-cache.ccmod" }, { "url": "https://github.com/krypciak/nax-ccuilib/releases/download/v1.2.7/nax-ccuilib.ccmod" }, @@ -64,5 +64,6 @@ { "url": "https://github.com/CCDirectLink/cc-open-circuits/releases/download/v1.0.2/cc-open-circuits-1.0.2.ccmod" }, { "url": "https://github.com/CCDirectLink/unified-steps/archive/refs/heads/master.zip", "source": "unified-steps-master/unified-steps" }, { "url": "https://github.com/krypciak/cc-world-map-overhaul/releases/download/v1.1.3/world-map-overhaul-1.1.3.ccmod" }, - { "url": "https://github.com/krypciak/crosscode-tweak-pack/releases/download/v1.1.2/crosscode-tweak-pack-1.1.2.ccmod" } + { "url": "https://github.com/krypciak/crosscode-tweak-pack/releases/download/v1.1.2/crosscode-tweak-pack-1.1.2.ccmod" }, + { "url": "https://github.com/krypciak/cc-nwjs-manager/releases/download/v1.0.1/cc-nwjs-manager-1.0.1.ccmod" } ] diff --git a/npDatabase.json b/npDatabase.json index 8a213aa4..09f9d54e 100644 --- a/npDatabase.json +++ b/npDatabase.json @@ -29,7 +29,7 @@ } } ], - "stars": 32, + "stars": 33, "lastUpdateTimestamp": 1710069756000 }, "CrossCode C Edition": { @@ -262,7 +262,7 @@ } } ], - "stars": 32, + "stars": 33, "lastUpdateTimestamp": 1710069756000 }, "arcane-lab": { @@ -405,7 +405,7 @@ "cc-blitzkrieg": { "metadataCCMod": { "id": "cc-blitzkrieg", - "version": "0.5.7", + "version": "0.5.8", "title": "Blitzkrieg (WIP)", "description": "Puzzle solving, incresed puzzle difficuly, puzzle and boss collection tools", "repository": "https://github.com/krypciak/cc-blitzkrieg", @@ -421,21 +421,21 @@ "dependencies": { "input-api": ">=1.0.2", "crosscode": ">=1.4.0", - "ccmodmanager": ">=0.9.12" + "ccmodmanager": ">=0.9.13" }, "plugin": "plugin.js" }, "installation": [ { "type": "zip", - "url": "https://github.com/krypciak/cc-blitzkrieg/releases/download/v0.5.7/cc-blitzkrieg-0.5.7.ccmod", + "url": "https://github.com/krypciak/cc-blitzkrieg/releases/download/v0.5.8/cc-blitzkrieg-0.5.8.ccmod", "hash": { - "sha256": "d114c3fc8e78869a3be767437c9e13fe2e1954b94a4b50277d12a72405322be7" + "sha256": "98a48dc81564f3200ad3e990fc4ab89bfeda6644ffe10e98de5c52bc4c19b7ec" } } ], "stars": 0, - "lastUpdateTimestamp": 1718038278000 + "lastUpdateTimestamp": 1718188190000 }, "cc-capped-stats": { "metadataCCMod": { @@ -565,7 +565,7 @@ "cc-fancy-crash": { "metadataCCMod": { "id": "cc-fancy-crash", - "version": "1.0.9", + "version": "1.1.0", "title": "Fancy crash", "description": "Better crash message", "repository": "https://github.com/krypciak/cc-fancy-crash", @@ -577,21 +577,21 @@ "24": "icon/icon.png" }, "dependencies": { - "ccmodmanager": ">=0.9.12" + "ccmodmanager": ">=0.9.13" }, "plugin": "plugin.js" }, "installation": [ { "type": "zip", - "url": "https://github.com/krypciak/cc-fancy-crash/releases/download/v1.0.9/cc-fancy-crash-1.0.9.ccmod", + "url": "https://github.com/krypciak/cc-fancy-crash/releases/download/v1.1.0/cc-fancy-crash-1.1.0.ccmod", "hash": { - "sha256": "b62e3add8e6a371dbeadc4274e8d2cf29e6c1c6887f995e30d467e4e9ec8cc01" + "sha256": "75327923b7cba31a1a11d9e4e65ee1dd1ed03eda7b9d85914575a3c2a8b30aa7" } } ], "stars": 0, - "lastUpdateTimestamp": 1718038372000 + "lastUpdateTimestamp": 1718187860000 }, "cc-jetpack-widget": { "metadataCCMod": { @@ -627,6 +627,38 @@ "stars": 0, "lastUpdateTimestamp": 1710185123000 }, + "cc-nwjs-manager": { + "metadataCCMod": { + "id": "cc-nwjs-manager", + "version": "1.0.1", + "title": "NW.js manager", + "description": "Automaticly install or change the NW.js version", + "repository": "https://github.com/krypciak/cc-nwjs-manager", + "tags": [ + "dev", + "library" + ], + "authors": "krypek", + "icons": { + "24": "icon/icon.png" + }, + "dependencies": { + "ccmodmanager": ">=0.9.13" + }, + "plugin": "plugin.js" + }, + "installation": [ + { + "type": "zip", + "url": "https://github.com/krypciak/cc-nwjs-manager/releases/download/v1.0.1/cc-nwjs-manager-1.0.1.ccmod", + "hash": { + "sha256": "f2ee4f791ba526204c1264d1ca00b5d761c686410c395655cc99c805705623fb" + } + } + ], + "stars": 0, + "lastUpdateTimestamp": 1718188130000 + }, "cc-oldmedia": { "metadataCCMod": { "id": "cc-oldmedia", @@ -680,7 +712,7 @@ "cc-vim": { "metadataCCMod": { "id": "cc-vim", - "version": "1.6.1", + "version": "1.6.2", "title": "Vim Command Mode", "description": "Adds a popup command prompt", "repository": "https://github.com/krypciak/cc-vim", @@ -694,21 +726,21 @@ }, "dependencies": { "input-api": ">=1.0.0", - "ccmodmanager": ">=0.9.12" + "ccmodmanager": ">=0.9.13" }, "plugin": "plugin.js" }, "installation": [ { "type": "zip", - "url": "https://github.com/krypciak/cc-vim/releases/download/v1.6.1/cc-vim-1.6.1.ccmod", + "url": "https://github.com/krypciak/cc-vim/releases/download/v1.6.2/cc-vim-1.6.2.ccmod", "hash": { - "sha256": "234e06ee3cff741e65f90bf887938d78c13fa19cb86d5a3a43a2da6f09db90ea" + "sha256": "c92d4409b9b1ed0d94671c70c282f2fc9b306379563c189bbc5fc16ccef54fda" } } ], "stars": 1, - "lastUpdateTimestamp": 1718038495000 + "lastUpdateTimestamp": 1718187787000 }, "ccloader": { "metadataCCMod": { @@ -743,13 +775,13 @@ } } ], - "stars": 32, + "stars": 33, "lastUpdateTimestamp": 1717191269000 }, "ccmodmanager": { "metadataCCMod": { "id": "ccmodmanager", - "version": "0.9.12", + "version": "0.9.13", "title": "CCModManager", "description": "Mod manager for CrossCode!", "repository": "https://github.com/CCDirectLink/CCModManager", @@ -770,14 +802,14 @@ "installation": [ { "type": "zip", - "url": "https://github.com/CCDirectLink/CCModManager/releases/download/v0.9.12/ccmodmanager-0.9.12.ccmod", + "url": "https://github.com/CCDirectLink/CCModManager/releases/download/v0.9.13/ccmodmanager-0.9.13.ccmod", "hash": { - "sha256": "8c868427c81508bb3ba98073940004159daeb078c8b2fd60cf24d120c958905a" + "sha256": "d09d4fae19e708b0d25d411698efba7f4f13c002abc093ef509ba1300f0f6e87" } } ], "stars": 0, - "lastUpdateTimestamp": 1718037908000 + "lastUpdateTimestamp": 1718187883000 }, "ccpostdlc": { "metadataCCMod": { From fda935be2bf7a0e8f8f22e2890e630f92f5f6a4e Mon Sep 17 00:00:00 2001 From: krypek Date: Thu, 13 Jun 2024 17:51:08 +0000 Subject: [PATCH 194/196] CCBot Update mod: cc-nwjs-manager (#167) * CCBot master: ccbot/0 * CCBot: Fill 'cc-nwjs-manager' info --- input-locations.json | 2 +- npDatabase.json | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/input-locations.json b/input-locations.json index 2ca86157..d9265ec3 100644 --- a/input-locations.json +++ b/input-locations.json @@ -65,5 +65,5 @@ { "url": "https://github.com/CCDirectLink/unified-steps/archive/refs/heads/master.zip", "source": "unified-steps-master/unified-steps" }, { "url": "https://github.com/krypciak/cc-world-map-overhaul/releases/download/v1.1.3/world-map-overhaul-1.1.3.ccmod" }, { "url": "https://github.com/krypciak/crosscode-tweak-pack/releases/download/v1.1.2/crosscode-tweak-pack-1.1.2.ccmod" }, - { "url": "https://github.com/krypciak/cc-nwjs-manager/releases/download/v1.0.1/cc-nwjs-manager-1.0.1.ccmod" } + { "url": "https://github.com/krypciak/cc-nwjs-manager/releases/download/v1.0.3/cc-nwjs-manager-1.0.3.ccmod" } ] diff --git a/npDatabase.json b/npDatabase.json index 09f9d54e..74b65014 100644 --- a/npDatabase.json +++ b/npDatabase.json @@ -630,7 +630,7 @@ "cc-nwjs-manager": { "metadataCCMod": { "id": "cc-nwjs-manager", - "version": "1.0.1", + "version": "1.0.3", "title": "NW.js manager", "description": "Automaticly install or change the NW.js version", "repository": "https://github.com/krypciak/cc-nwjs-manager", @@ -650,14 +650,14 @@ "installation": [ { "type": "zip", - "url": "https://github.com/krypciak/cc-nwjs-manager/releases/download/v1.0.1/cc-nwjs-manager-1.0.1.ccmod", + "url": "https://github.com/krypciak/cc-nwjs-manager/releases/download/v1.0.3/cc-nwjs-manager-1.0.3.ccmod", "hash": { - "sha256": "f2ee4f791ba526204c1264d1ca00b5d761c686410c395655cc99c805705623fb" + "sha256": "c343e8689c7be7759a3dab9aab79413ad2a5f4f3bb35cce31523a7caca663711" } } ], "stars": 0, - "lastUpdateTimestamp": 1718188130000 + "lastUpdateTimestamp": 1718300781000 }, "cc-oldmedia": { "metadataCCMod": { From 16eeacf3d1e739681a3985d202a239fba830c689 Mon Sep 17 00:00:00 2001 From: krypek Date: Thu, 13 Jun 2024 17:53:08 +0000 Subject: [PATCH 195/196] CCBot Update mod: ccmodmanager (#168) * CCBot master: ccbot/1 * CCBot: Fill 'ccmodmanager' info --- input-locations.json | 2 +- npDatabase.json | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/input-locations.json b/input-locations.json index d9265ec3..78870a40 100644 --- a/input-locations.json +++ b/input-locations.json @@ -46,7 +46,7 @@ { "url": "https://github.com/CodeTriangle/CCMultiworldRandomizer/releases/download/0.4.1/CCMultiworldRandomizer-0.4.1.ccmod" }, { "url": "https://github.com/lubkuluk/lubkuluks-joern-mod/files/14393459/lubkuluks-joern-mod.zip" }, { "url": "https://github.com/canbora/cc-named-saves/releases/download/v1.0.1/cc-named-saves.ccmod" }, - { "url": "https://github.com/CCDirectLink/CCModManager/releases/download/v0.9.13/ccmodmanager-0.9.13.ccmod" }, + { "url": "https://github.com/CCDirectLink/CCModManager/releases/download/v0.9.14/ccmodmanager-0.9.14.ccmod" }, { "url": "https://github.com/buanjautista/cc-open-world/releases/download/0.3.2/cc-open-world.v0.3.2-smelterfix.ccmod" }, { "url": "https://github.com/krypciak/nax-module-cache/releases/download/v1.0.2/nax-module-cache.ccmod" }, { "url": "https://github.com/krypciak/nax-ccuilib/releases/download/v1.2.7/nax-ccuilib.ccmod" }, diff --git a/npDatabase.json b/npDatabase.json index 74b65014..cb2f69ba 100644 --- a/npDatabase.json +++ b/npDatabase.json @@ -781,7 +781,7 @@ "ccmodmanager": { "metadataCCMod": { "id": "ccmodmanager", - "version": "0.9.13", + "version": "0.9.14", "title": "CCModManager", "description": "Mod manager for CrossCode!", "repository": "https://github.com/CCDirectLink/CCModManager", @@ -802,14 +802,14 @@ "installation": [ { "type": "zip", - "url": "https://github.com/CCDirectLink/CCModManager/releases/download/v0.9.13/ccmodmanager-0.9.13.ccmod", + "url": "https://github.com/CCDirectLink/CCModManager/releases/download/v0.9.14/ccmodmanager-0.9.14.ccmod", "hash": { - "sha256": "d09d4fae19e708b0d25d411698efba7f4f13c002abc093ef509ba1300f0f6e87" + "sha256": "5f22abdd28d8c1815669a19ab373ad47660f39612acd281d58af90281ce006da" } } ], "stars": 0, - "lastUpdateTimestamp": 1718187883000 + "lastUpdateTimestamp": 1718300866000 }, "ccpostdlc": { "metadataCCMod": { From e1e0fcd43968894d8478a3cc8832a73e3eccf690 Mon Sep 17 00:00:00 2001 From: krypek Date: Thu, 13 Jun 2024 19:41:39 +0000 Subject: [PATCH 196/196] CCBot Update mod: cc-blitzkrieg (#169) * CCBot master: ccbot/0 * CCBot: Fill 'cc-blitzkrieg' info --- input-locations.json | 2 +- npDatabase.json | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/input-locations.json b/input-locations.json index 78870a40..55d9d656 100644 --- a/input-locations.json +++ b/input-locations.json @@ -7,7 +7,7 @@ { "url": "https://github.com/CCDirectLink/CCLoader/archive/refs/tags/v2.23.2/v2.13.0.zip", "source": "CCLoader-2.23.2-v2.13.0/assets/mods/simplify" }, { "url": "https://github.com/CCDirectLink/CCLoader/archive/refs/tags/v2.23.2/v2.13.0.zip", "source": "CCLoader-2.23.2-v2.13.0/assets/mods/ccloader-version-display" }, { "url": "https://github.com/CCDirectLink/input-api/archive/refs/tags/v1.0.2.zip" }, - { "url": "https://github.com/krypciak/cc-blitzkrieg/releases/download/v0.5.8/cc-blitzkrieg-0.5.8.ccmod" }, + { "url": "https://github.com/krypciak/cc-blitzkrieg/releases/download/v0.5.9/cc-blitzkrieg-0.5.9.ccmod" }, { "url": "https://github.com/krypciak/cc-fancy-crash/releases/download/v1.1.0/cc-fancy-crash-1.1.0.ccmod" }, { "url": "https://github.com/CCDirectLink/Blades/archive/1.6.0.zip" }, { "url": "https://github.com/krypciak/cc-jetpack-widget/releases/download/v1.0.3/cc-jetpack-widget-1.0.3.ccmod" }, diff --git a/npDatabase.json b/npDatabase.json index cb2f69ba..990f0900 100644 --- a/npDatabase.json +++ b/npDatabase.json @@ -405,7 +405,7 @@ "cc-blitzkrieg": { "metadataCCMod": { "id": "cc-blitzkrieg", - "version": "0.5.8", + "version": "0.5.9", "title": "Blitzkrieg (WIP)", "description": "Puzzle solving, incresed puzzle difficuly, puzzle and boss collection tools", "repository": "https://github.com/krypciak/cc-blitzkrieg", @@ -428,14 +428,14 @@ "installation": [ { "type": "zip", - "url": "https://github.com/krypciak/cc-blitzkrieg/releases/download/v0.5.8/cc-blitzkrieg-0.5.8.ccmod", + "url": "https://github.com/krypciak/cc-blitzkrieg/releases/download/v0.5.9/cc-blitzkrieg-0.5.9.ccmod", "hash": { - "sha256": "98a48dc81564f3200ad3e990fc4ab89bfeda6644ffe10e98de5c52bc4c19b7ec" + "sha256": "7eab667c0cc1279616bae5138218063046a264de556b03312077267b2542d391" } } ], "stars": 0, - "lastUpdateTimestamp": 1718188190000 + "lastUpdateTimestamp": 1718307434000 }, "cc-capped-stats": { "metadataCCMod": {