diff --git a/dev/.files/bin/includes/utilities.mjs b/dev/.files/bin/includes/utilities.mjs index c0ae95c..93b1f20 100755 --- a/dev/.files/bin/includes/utilities.mjs +++ b/dev/.files/bin/includes/utilities.mjs @@ -8,7 +8,6 @@ /* eslint-env es2021, node */ import _ from 'lodash'; -import deeps from 'deeps'; import os from 'node:os'; import fs from 'node:fs'; @@ -61,27 +60,6 @@ const npmjsConfigVersion = '1.0.2'; // Bump when config changes in routines belo const c10nLogo = path.resolve(__dirname, '../../assets/brands/c10n/logo.png'); -$obj.mc.addOperation('$default', (current, defaults) => { - const paths = Object.keys(defaults); - - for (const path of paths) { - if (undefined === deeps.get(current, path, '.')) { - deeps.set(current, path, defaults[path], true, '.'); - } - } - return paths.length > 0; -}); -$obj.mc.addOperation('$ꓺdefault', (current, defaults) => { - const paths = Object.keys(defaults); - - for (const path of paths) { - if (undefined === deeps.get(current, path, 'ꓺ')) { - deeps.set(current, path, defaults[path], true, 'ꓺ'); - } - } - return paths.length > 0; -}); - /** * Utilities. */ @@ -182,12 +160,12 @@ export default class u { } } - static async updatePkg(propsOrPath, value = undefined, delimiter = '.') { + static async updatePkg(propsOrPath = {}, value = undefined, delimiter = '.') { const pkg = await u.pkg(); // Parses current `./package.json` file. if (typeof propsOrPath === 'string') { const path = propsOrPath; // String path. - deeps.set(pkg, path, value, true, delimiter); + $obj.mc.u.set(pkg, path, value, false, delimiter); // } else if (_.isPlainObject(propsOrPath)) { const props = propsOrPath; // Object props. @@ -195,40 +173,23 @@ export default class u { } else { throw new Error('u.updatePkg: Invalid arguments.'); } - await fsp.writeFile(pkgFile, JSON.stringify(pkg, null, 4)); - await u.prettifyPkg(); // Sorts and runs prettier. - } - - static async prettifyPkg() { - const pkg = {}; // Sorted `./package.json`; i.e., using insertion order. - const curPkg = await u.pkg(); // Parses current `./package.json` file. - const updatesFile = path.resolve(projDir, './dev/.files/bin/updater/data/package.json/updates.json'); - const sortOrderFile = path.resolve(projDir, './dev/.files/bin/updater/data/package.json/sort-order.json'); - const updates = JSON.parse((await fsp.readFile(updatesFile)).toString()); - const sortOrder = JSON.parse((await fsp.readFile(sortOrderFile)).toString()); if (!_.isPlainObject(updates)) { - throw new Error('u.prettifyPkg: Unable to parse `' + updatesFile + '`.'); - } - if (!Array.isArray(sortOrder)) { - throw new Error('u.prettifyPkg: Unable to parse `' + sortOrderFile + '`.'); + throw new Error('u.updatePkg: Unable to parse `' + updatesFile + '`.'); } if (await u.isPkgRepo('clevercanyon/skeleton-dev-deps')) { if (updates.$ꓺdefault?.['devDependenciesꓺ@clevercanyon/skeleton-dev-deps']) { delete updates.$ꓺdefault['devDependenciesꓺ@clevercanyon/skeleton-dev-deps']; } + if (Array.isArray(updates.$ꓺunset)) { + updates.$ꓺunset.push('devDependenciesꓺ@clevercanyon/skeleton-dev-deps'); + } else { + updates.$ꓺunset = ['devDependenciesꓺ@clevercanyon/skeleton-dev-deps']; + } } - $obj.mc.patch(curPkg, updates); // Potentially declarative ops. - - for (const path of sortOrder) { - const value = deeps.get(curPkg, path, 'ꓺ'); - if (undefined !== value) deeps.set(pkg, path, value, true, 'ꓺ'); - } - for (const [path, value] of Object.entries(deeps.flatten(curPkg, 'ꓺ'))) { - if (undefined === deeps.get(pkg, path, 'ꓺ')) deeps.set(pkg, path, value, true, 'ꓺ'); - } + $obj.mc.patch(pkg, updates); // Potentially declarative ops. const pkgPrettierCfg = { ...(await prettier.resolveConfig(pkgFile)), parser: 'json' }; await fsp.writeFile(pkgFile, prettier.format(JSON.stringify(pkg, null, 4), pkgPrettierCfg)); } @@ -1092,7 +1053,7 @@ export default class u { static async npmUpdate() { await u.spawn('npm', ['update', '--save'], { stdio: 'inherit' }); - await u.prettifyPkg(); // To our standards. + await u.updatePkg(); // To our standards. } static async npmPublish(opts = { dryRun: false }) { diff --git a/dev/.files/bin/updater/data/package.json/sort-order.json b/dev/.files/bin/updater/data/package.json/sort-order.json deleted file mode 100644 index 5461bb8..0000000 --- a/dev/.files/bin/updater/data/package.json/sort-order.json +++ /dev/null @@ -1,57 +0,0 @@ -[ - "private", - "publishConfigꓺaccess", - - "version", - "license", - "name", - "description", - "repository", - "homepage", - "bugs", - "funding", - "keywords", - - "author", - "contributors", - - "type", - "files", - "bin", - "imports", - "exports", - "sideEffects", - "module", - "main", - "browser", - "unpkg", - "types", - "typesVersions", - - "dependencies", - "peerDependencies", - "peerDependenciesMeta", - "optionalDependencies", - "bundleDependencies", - "devDependencies", - - "overrides", - "workspaces", - - "cpu", - "os", - "enginesꓺnode", - "enginesꓺnpm", - - "configꓺc10nꓺ&ꓺdotfilesꓺlock", - - "configꓺc10nꓺ&ꓺbuildꓺappType", - "configꓺc10nꓺ&ꓺbuildꓺtargetEnv", - - "configꓺc10nꓺ&ꓺgithubꓺteams", - "configꓺc10nꓺ&ꓺgithubꓺlabels", - "configꓺc10nꓺ&ꓺgithubꓺconfigVersion", - "configꓺc10nꓺ&ꓺgithubꓺenvsVersion", - - "configꓺc10nꓺ&ꓺnpmjsꓺconfigVersions" -] diff --git a/dev/.files/bin/updater/data/package.json/updates.json b/dev/.files/bin/updater/data/package.json/updates.json index 0b39e85..a622234 100644 --- a/dev/.files/bin/updater/data/package.json/updates.json +++ b/dev/.files/bin/updater/data/package.json/updates.json @@ -59,7 +59,7 @@ "configꓺc10nꓺ&ꓺgithubꓺenvsVersion": "", "configꓺc10nꓺ&ꓺnpmjsꓺconfigVersions": "" }, - "$set": { + "$ꓺset": { "funding": "https://github.com/sponsors/clevercanyon", "workspaces": [], @@ -70,5 +70,63 @@ "npm": "^8.19.3 || ^9.2.0" } }, - "$unset": ["typings", "scripts"] + "$ꓺunset": ["typings", "scripts"], + + "$ꓺpropSortOrder": [ + "private", + "publishConfigꓺaccess", + + "version", + "license", + "name", + "description", + "repository", + "homepage", + "bugs", + "funding", + "keywords", + + "author", + "contributors", + + "type", + "files", + "bin", + "imports", + "exports", + "sideEffects", + "module", + "main", + "browser", + "unpkg", + "types", + "typesVersions", + + "dependencies", + "peerDependencies", + "peerDependenciesMeta", + "optionalDependencies", + "bundleDependencies", + "devDependencies", + + "overrides", + "workspaces", + + "cpu", + "os", + "enginesꓺnode", + "enginesꓺnpm", + + "configꓺc10nꓺ&ꓺdotfilesꓺlock", + + "configꓺc10nꓺ&ꓺbuildꓺappType", + "configꓺc10nꓺ&ꓺbuildꓺtargetEnv", + + "configꓺc10nꓺ&ꓺgithubꓺteams", + "configꓺc10nꓺ&ꓺgithubꓺlabels", + "configꓺc10nꓺ&ꓺgithubꓺconfigVersion", + "configꓺc10nꓺ&ꓺgithubꓺenvsVersion", + + "configꓺc10nꓺ&ꓺnpmjsꓺconfigVersions" + ] } diff --git a/dev/.files/bin/updater/index.mjs b/dev/.files/bin/updater/index.mjs index a4b9d63..98e6e5a 100644 --- a/dev/.files/bin/updater/index.mjs +++ b/dev/.files/bin/updater/index.mjs @@ -15,7 +15,6 @@ import { dirname } from 'desm'; import fsp from 'node:fs/promises'; import chalk from 'chalk'; -import deeps from 'deeps'; import prettier from 'prettier'; import { $str, $obj } from '@clevercanyon/utilities'; @@ -24,27 +23,6 @@ import { $cmd } from '@clevercanyon/utilities.node'; const { log } = console; // Shorter reference. -$obj.mc.addOperation('$default', (current, defaults) => { - const paths = Object.keys(defaults); - - for (const path of paths) { - if (undefined === deeps.get(current, path, '.')) { - deeps.set(current, path, defaults[path], true, '.'); - } - } - return paths.length > 0; -}); -$obj.mc.addOperation('$ꓺdefault', (current, defaults) => { - const paths = Object.keys(defaults); - - for (const path of paths) { - if (undefined === deeps.get(current, path, 'ꓺ')) { - deeps.set(current, path, defaults[path], true, 'ꓺ'); - } - } - return paths.length > 0; -}); - export default async ({ projDir }) => { /** * Initializes vars. @@ -196,7 +174,6 @@ export default async ({ projDir }) => { } let json = JSON.parse((await fsp.readFile(path.resolve(projDir, relPath))).toString()); const jsonUpdatesFile = path.resolve(skeletonDir, './dev/.files/bin/updater/data', relPath, './updates.json'); - const jsonSortOrderFile = path.resolve(skeletonDir, './dev/.files/bin/updater/data', relPath, './sort-order.json'); if (!_.isPlainObject(json)) { throw new Error('updater: Unable to parse `' + relPath + '`.'); @@ -211,29 +188,16 @@ export default async ({ projDir }) => { if (jsonUpdates.$ꓺdefault?.['devDependenciesꓺ@clevercanyon/skeleton-dev-deps']) { delete jsonUpdates.$ꓺdefault['devDependenciesꓺ@clevercanyon/skeleton-dev-deps']; } + if (Array.isArray(jsonUpdates.$ꓺunset)) { + jsonUpdates.$ꓺunset.push('devDependenciesꓺ@clevercanyon/skeleton-dev-deps'); + } else { + jsonUpdates.$ꓺunset = ['devDependenciesꓺ@clevercanyon/skeleton-dev-deps']; + } } $obj.mc.patch(json, jsonUpdates); // Potentially declarative ops. const prettierCfg = { ...(await prettier.resolveConfig(path.resolve(projDir, relPath))), parser: 'json' }; await fsp.writeFile(path.resolve(projDir, relPath), prettier.format(JSON.stringify(json, null, 4), prettierCfg)); } - if (fs.existsSync(jsonSortOrderFile)) { - const origJSON = _.cloneDeep(json); // Deep clone. - json = {}; // Sorted JSON file; i.e., using insertion order. - const jsonSortOrder = JSON.parse((await fsp.readFile(jsonSortOrderFile)).toString()); - - if (!Array.isArray(jsonSortOrder)) { - throw new Error('updater: Unable to parse `' + jsonSortOrderFile + '`.'); - } - for (const path of jsonSortOrder) { - const value = deeps.get(origJSON, path, 'ꓺ'); - if (undefined !== value) deeps.set(json, path, value, true, 'ꓺ'); - } - for (const [path, value] of Object.entries(deeps.flatten(origJSON, 'ꓺ'))) { - if (undefined === deeps.get(json, path, 'ꓺ')) deeps.set(json, path, value, true, 'ꓺ'); - } - const prettierCfg = { ...(await prettier.resolveConfig(path.resolve(projDir, relPath))), parser: 'json' }; - await fsp.writeFile(path.resolve(projDir, relPath), prettier.format(JSON.stringify(json, null, 4), prettierCfg)); - } } /** diff --git a/dev/.files/madrun/includes/events.mjs b/dev/.files/madrun/includes/events.mjs index 1cb0a36..a164f2a 100644 --- a/dev/.files/madrun/includes/events.mjs +++ b/dev/.files/madrun/includes/events.mjs @@ -68,9 +68,9 @@ export default { homepage: 'https://github.com/' + $url.encode(parentDirOwner) + '/' + $url.encode(dirBasename) + '#readme', bugs: 'https://github.com/' + $url.encode(parentDirOwner) + '/' + $url.encode(dirBasename) + '/issues', - $unset: /* Effectively resets these to default values. */ [ + $ꓺunset: /* Effectively resets these to default values. */ [ 'private', // - 'publishConfig.access', + 'publishConfigꓺaccess', 'version', 'license', @@ -81,16 +81,16 @@ export default { 'author', 'contributors', - 'config.c10n.&.github.teams', - 'config.c10n.&.github.labels', - 'config.c10n.&.github.configVersion', - 'config.c10n.&.github.envsVersion', + 'configꓺc10nꓺ&ꓺgithubꓺteams', + 'configꓺc10nꓺ&ꓺgithubꓺlabels', + 'configꓺc10nꓺ&ꓺgithubꓺconfigVersion', + 'configꓺc10nꓺ&ꓺgithubꓺenvsVersion', - 'config.c10n.&.npmjs.teams', - 'config.c10n.&.npmjs.configVersions', + 'configꓺc10nꓺ&ꓺnpmjsꓺteams', + 'configꓺc10nꓺ&ꓺnpmjsꓺconfigVersions', ], - ...(args.pkg ? { $set: { private: false } } : {}), - ...(args.pkg && args.public ? { $set: { 'publishConfig.access': 'public' } } : {}), + ...(args.pkg ? { $ꓺset: { private: false } } : {}), + ...(args.pkg && args.public ? { $ꓺset: { publishConfigꓺaccess: 'public' } } : {}), }); /** diff --git a/package-lock.json b/package-lock.json index 5409277..2038a48 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@clevercanyon/utilities.cfw", - "version": "1.0.50", + "version": "1.0.51", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@clevercanyon/utilities.cfw", - "version": "1.0.50", + "version": "1.0.51", "cpu": [ "x64", "arm64" @@ -17,7 +17,7 @@ "linux" ], "devDependencies": { - "@clevercanyon/skeleton-dev-deps": "^1.0.114", + "@clevercanyon/skeleton-dev-deps": "^1.0.115", "@cloudflare/workers-types": "^4.20230115.0" }, "engines": { @@ -28,7 +28,7 @@ "url": "https://github.com/sponsors/clevercanyon" }, "peerDependencies": { - "@clevercanyon/utilities": "^1.0.93", + "@clevercanyon/utilities": "^1.0.94", "@cloudflare/kv-asset-handler": "^0.2.0" } }, @@ -151,9 +151,9 @@ } }, "node_modules/@clevercanyon/madrun": { - "version": "1.0.55", - "resolved": "https://registry.npmjs.org/@clevercanyon/madrun/-/madrun-1.0.55.tgz", - "integrity": "sha512-gnIA+669ajH4pKleWKnxfHfA8KWI7COnJPFNufK+MgqxZnNWjIODb8apBYEWfUc6dKl0SsXOE+EV3090ZbLM9w==", + "version": "1.0.56", + "resolved": "https://registry.npmjs.org/@clevercanyon/madrun/-/madrun-1.0.56.tgz", + "integrity": "sha512-dzxkrmDqyEwuewYum5y6ML3CvgJNIwSF10nC5YuqNlSYZpstEizsdAaohHEVNThaNEvxCe1slqHzERkK3FLEFg==", "cpu": [ "x64", "arm64" @@ -164,8 +164,8 @@ "linux" ], "dependencies": { - "@clevercanyon/utilities": "^1.0.92", - "@clevercanyon/utilities.node": "^1.0.48", + "@clevercanyon/utilities": "^1.0.93", + "@clevercanyon/utilities.node": "^1.0.49", "chalk": "^5.2.0", "find-up": "^6.3.0", "lodash": "^4.17.21" @@ -182,9 +182,9 @@ } }, "node_modules/@clevercanyon/skeleton-dev-deps": { - "version": "1.0.114", - "resolved": "https://registry.npmjs.org/@clevercanyon/skeleton-dev-deps/-/skeleton-dev-deps-1.0.114.tgz", - "integrity": "sha512-8KetPecak/m8tfuWmNjDPckZxfJWLLOv3ZoVKAFYsV5tLl2Aa4bwi6bnvEzOwmuQVIf8Ybl1GsQf9SJF40Y+jA==", + "version": "1.0.115", + "resolved": "https://registry.npmjs.org/@clevercanyon/skeleton-dev-deps/-/skeleton-dev-deps-1.0.115.tgz", + "integrity": "sha512-DlvMSv6MsH+pS6Zoz6qskOfDKA4W+sql6SGnOnPMp5krFx+DOlblfSjnnPWTPfANRoeAfHAncU6QyiaSXrovnw==", "cpu": [ "x64", "arm64" @@ -195,9 +195,9 @@ "linux" ], "dependencies": { - "@clevercanyon/madrun": "^1.0.54", - "@clevercanyon/utilities": "^1.0.92", - "@clevercanyon/utilities.node": "^1.0.48", + "@clevercanyon/madrun": "^1.0.55", + "@clevercanyon/utilities": "^1.0.93", + "@clevercanyon/utilities.node": "^1.0.49", "@octokit/core": "^4.2.0", "@octokit/plugin-paginate-rest": "^5.0.1", "@prettier/plugin-php": "^0.19.3", @@ -253,7 +253,7 @@ "stylelint-scss": "^4.3.0", "tailwindcss": "^3.2.4", "typescript": "^4.9.5", - "vite": "^4.0.4", + "vite": "^4.1.1", "vite-plugin-ejs": "^1.6.4", "vite-plugin-minify": "^1.5.2" }, @@ -266,9 +266,9 @@ } }, "node_modules/@clevercanyon/split-cmd.fork": { - "version": "1.0.22", - "resolved": "https://registry.npmjs.org/@clevercanyon/split-cmd.fork/-/split-cmd.fork-1.0.22.tgz", - "integrity": "sha512-ZEJQz5BUFFlH+UbrihPsK3071Suz3RBHyreL1aMEM/cQIfzSM+DCuFRaLlndoxEfGZ2LHm/jgcwFxCYfmXXjWQ==", + "version": "1.0.23", + "resolved": "https://registry.npmjs.org/@clevercanyon/split-cmd.fork/-/split-cmd.fork-1.0.23.tgz", + "integrity": "sha512-356ewRaF7SgZawKoDliXlniDpjhYkt7DL4wKi4SXgvB/LvrNrNKBgRjHDkQwvVw1eOnmKj9/8RjGbEThBh3CFw==", "cpu": [ "x64", "arm64" @@ -288,9 +288,9 @@ } }, "node_modules/@clevercanyon/utilities": { - "version": "1.0.93", - "resolved": "https://registry.npmjs.org/@clevercanyon/utilities/-/utilities-1.0.93.tgz", - "integrity": "sha512-JIuOJkTUWe9TE5emoSng0ZWTilr1Bq+gCLPLv8q2Uok+hTRK+Ru2jJRQBcr6s1z58DOdIn3xGUxOpJY5HEvHRQ==", + "version": "1.0.94", + "resolved": "https://registry.npmjs.org/@clevercanyon/utilities/-/utilities-1.0.94.tgz", + "integrity": "sha512-Btl5eobgf8U7nAxELoT00xMWSDKPH3UdlQpJRofFc3qGuENsg5YuCS27aW8GPB2vshCvuAjVyilN/s3lerhZhQ==", "cpu": [ "x64", "arm64" @@ -311,16 +311,16 @@ "ignore": "^5.2.4", "locutus": "^2.0.16", "lodash": "^4.17.21", - "merge-change": "npm:@clevercanyon/merge-change.fork@^1.8.30", - "micromatch": "npm:@clevercanyon/micromatch.fork@^4.0.24", + "merge-change": "npm:@clevercanyon/merge-change.fork@^1.8.44", + "micromatch": "npm:@clevercanyon/micromatch.fork@^4.0.25", "react": "^18.2.0", "react-dom": "^18.2.0" } }, "node_modules/@clevercanyon/utilities.node": { - "version": "1.0.49", - "resolved": "https://registry.npmjs.org/@clevercanyon/utilities.node/-/utilities.node-1.0.49.tgz", - "integrity": "sha512-e4mCra3rsr0OY+GZVr/hQsEaPziahGsE7JrcSO3HHAbViYDv7WE1yw0m+GljGvdKOYRyyYsSVuT2rwZkIlF4jQ==", + "version": "1.0.50", + "resolved": "https://registry.npmjs.org/@clevercanyon/utilities.node/-/utilities.node-1.0.50.tgz", + "integrity": "sha512-hrHAf95DCATVOLN6XsQ0dCWG0SbCLzuNpxAIMo1hGEDlrV9kqhYAqgU8K5Hi0Kni8Nof1ICwmIw2UoBRixr+UA==", "cpu": [ "x64", "arm64" @@ -338,15 +338,15 @@ "url": "https://github.com/sponsors/clevercanyon" }, "peerDependencies": { - "@clevercanyon/split-cmd.fork": "^1.0.22", - "@clevercanyon/utilities": "^1.0.93", + "@clevercanyon/split-cmd.fork": "^1.0.23", + "@clevercanyon/utilities": "^1.0.94", "boxen": "^7.0.1", "chalk": "^5.2.0", "globby": "^13.1.3", "ignore": "^5.2.4", "lodash": "^4.17.21", - "shescape": "npm:@clevercanyon/shescape.fork@^1.6.16", - "spawn-please": "npm:@clevercanyon/spawn-please.fork@^2.0.16", + "shescape": "npm:@clevercanyon/shescape.fork@^1.6.17", + "spawn-please": "npm:@clevercanyon/spawn-please.fork@^2.0.17", "term-img": "^6.0.0", "yargs": "^17.6.2", "yargs-parser": "^21.1.1" @@ -3171,9 +3171,9 @@ }, "node_modules/braces": { "name": "@clevercanyon/braces.fork", - "version": "3.0.20", - "resolved": "https://registry.npmjs.org/@clevercanyon/braces.fork/-/braces.fork-3.0.20.tgz", - "integrity": "sha512-2ZBI9TjNKjRW9nGuWQHZ69mNKFSqtb1VlV7wZqd0tskt0OGiLXOv2+40Ub3blBYSAU6TjcQaRW9Qkh23C5fMOw==", + "version": "3.0.21", + "resolved": "https://registry.npmjs.org/@clevercanyon/braces.fork/-/braces.fork-3.0.21.tgz", + "integrity": "sha512-GtKjj3qfp/9z4s8EfT5rC/AT9CVl9TPq73o3vNeyU6RGthd2ZKpvk2fFH0AJaTbPv3AyVCnDkrSsF6FUe885jw==", "cpu": [ "x64", "arm64" @@ -3183,7 +3183,7 @@ "linux" ], "dependencies": { - "fill-range": "npm:@clevercanyon/fill-range.fork@^7.0.19" + "fill-range": "npm:@clevercanyon/fill-range.fork@^7.0.20" }, "engines": { "node": "^19.2.0 || ^19.4.0", @@ -5286,9 +5286,9 @@ }, "node_modules/fill-range": { "name": "@clevercanyon/fill-range.fork", - "version": "7.0.19", - "resolved": "https://registry.npmjs.org/@clevercanyon/fill-range.fork/-/fill-range.fork-7.0.19.tgz", - "integrity": "sha512-p8Q9SbFU73nqz7p8TkrUVibXP71iHcTCUhe74GYlDAOQ+nmXQfzBFQkYL9wKTyMIjoF2kSCJefFIFbbvQPcM2A==", + "version": "7.0.20", + "resolved": "https://registry.npmjs.org/@clevercanyon/fill-range.fork/-/fill-range.fork-7.0.20.tgz", + "integrity": "sha512-D0pQY8kB85ym/OCqK72PzTyDtuvgQvDeAPjCqTVMvcnCi5SsLlGIaZxdi5YyL91V0cO2iLNBnNFLP+2hmTM7Sw==", "cpu": [ "x64", "arm64" @@ -5298,7 +5298,7 @@ "linux" ], "dependencies": { - "to-regex-range": "npm:@clevercanyon/to-regex-range.fork@^5.0.19" + "to-regex-range": "npm:@clevercanyon/to-regex-range.fork@^5.0.20" }, "engines": { "node": "^19.2.0 || ^19.4.0", @@ -6331,9 +6331,9 @@ }, "node_modules/is-number": { "name": "@clevercanyon/is-number.fork", - "version": "7.0.22", - "resolved": "https://registry.npmjs.org/@clevercanyon/is-number.fork/-/is-number.fork-7.0.22.tgz", - "integrity": "sha512-UKI/04C+zJu+l0cMdDyuHjut6jUxM3AhT/QAZjkxCQMppVc/i4YX+n1PFVEjpnc7e0tjMhtia67efxVxxukQug==", + "version": "7.0.23", + "resolved": "https://registry.npmjs.org/@clevercanyon/is-number.fork/-/is-number.fork-7.0.23.tgz", + "integrity": "sha512-Yrnu4pLfWGCxOyRtTzrcNt4xcAGz6GdyRndnBZG4SZuQS6XK88xFpY2n+Ad18fWGv1rdq+xaiwJoSsyN5EoiIw==", "cpu": [ "x64", "arm64" @@ -7182,9 +7182,9 @@ }, "node_modules/merge-change": { "name": "@clevercanyon/merge-change.fork", - "version": "1.8.30", - "resolved": "https://registry.npmjs.org/@clevercanyon/merge-change.fork/-/merge-change.fork-1.8.30.tgz", - "integrity": "sha512-0Giouk7cK9goZu/b87+q3BW2XZ4k/uPsrC1OnRnJDQ1AmWXC40gJmIb4xanjufTTuXXIPY5fuv5UfjVpdIjVag==", + "version": "1.8.44", + "resolved": "https://registry.npmjs.org/@clevercanyon/merge-change.fork/-/merge-change.fork-1.8.44.tgz", + "integrity": "sha512-I1YwWqZ39z1u1TZKPPzg1Hr0JWEHwCpzuWrcpaYrblsgHtDn9m0X39JMRA/mcaTjjGXVIz8r4MqcZvtidCe0gQ==", "cpu": [ "x64", "arm64" @@ -7663,9 +7663,9 @@ }, "node_modules/micromatch": { "name": "@clevercanyon/micromatch.fork", - "version": "4.0.24", - "resolved": "https://registry.npmjs.org/@clevercanyon/micromatch.fork/-/micromatch.fork-4.0.24.tgz", - "integrity": "sha512-RvhUCFXydCl47XajFPhDCNtVcmf54Uzm31PKGQyOdxe/ACJI5mOnC0HhbAupqoGFBYYku5LaxQkn6YXxde+mWQ==", + "version": "4.0.25", + "resolved": "https://registry.npmjs.org/@clevercanyon/micromatch.fork/-/micromatch.fork-4.0.25.tgz", + "integrity": "sha512-IUslfabf0bxqwZB9QuiW9Twy+Fs1G+JgRTAkmPRqOqXIRfGQzqmTlX849fT2cET3iElks5HrJMYKfja8rZF7Ag==", "cpu": [ "x64", "arm64" @@ -7675,8 +7675,8 @@ "linux" ], "dependencies": { - "braces": "npm:@clevercanyon/braces.fork@^3.0.20", - "picomatch": "npm:@clevercanyon/picomatch.fork@^2.3.19" + "braces": "npm:@clevercanyon/braces.fork@^3.0.21", + "picomatch": "npm:@clevercanyon/picomatch.fork@^2.3.20" }, "engines": { "node": "^19.2.0 || ^19.4.0", @@ -8474,9 +8474,9 @@ }, "node_modules/picomatch": { "name": "@clevercanyon/picomatch.fork", - "version": "2.3.19", - "resolved": "https://registry.npmjs.org/@clevercanyon/picomatch.fork/-/picomatch.fork-2.3.19.tgz", - "integrity": "sha512-OBurQQDQ/W2snupPZWddF4nPgf29Huh1UX+C9jsMUR+tNyixAvUSXvzyvg0+LyRRtjzxJ33tHWb3wP0yEMqjbA==", + "version": "2.3.20", + "resolved": "https://registry.npmjs.org/@clevercanyon/picomatch.fork/-/picomatch.fork-2.3.20.tgz", + "integrity": "sha512-mMTw/V8BvtPpV4RMYQ0c+SyrcvJ0H/07H6zBAqfV3bdvwCw6I/CMyJFNvSov0gpUn8bYvZwkKGJ95MGTstlbCQ==", "cpu": [ "x64", "arm64" @@ -10111,9 +10111,9 @@ }, "node_modules/shescape": { "name": "@clevercanyon/shescape.fork", - "version": "1.6.16", - "resolved": "https://registry.npmjs.org/@clevercanyon/shescape.fork/-/shescape.fork-1.6.16.tgz", - "integrity": "sha512-EAmP0CxV8lAjEgs9jyx1JNI08U3b09BgUx4Yj8Ub3qm7SXheKVnU3Rh1LboOlHF/LkteUouBARarRPJPn7xf4g==", + "version": "1.6.17", + "resolved": "https://registry.npmjs.org/@clevercanyon/shescape.fork/-/shescape.fork-1.6.17.tgz", + "integrity": "sha512-j4w3Zf+AqnzNXWCiADGFYzb31oemxMhbNREr3hLG7w6XV2Q4kFmjxRgxJRRhToxry4ZQUEIuwRRtZMl8dQvBxw==", "cpu": [ "x64", "arm64" @@ -10214,9 +10214,9 @@ }, "node_modules/spawn-please": { "name": "@clevercanyon/spawn-please.fork", - "version": "2.0.16", - "resolved": "https://registry.npmjs.org/@clevercanyon/spawn-please.fork/-/spawn-please.fork-2.0.16.tgz", - "integrity": "sha512-WLg3TkXglvclYzQVK3GuxLCA15XzYVhH35p6DC4tAcKgzHDdCaABUZJ9eLorUKxqRTyYvw3joJFSSyQQsaOXXg==", + "version": "2.0.17", + "resolved": "https://registry.npmjs.org/@clevercanyon/spawn-please.fork/-/spawn-please.fork-2.0.17.tgz", + "integrity": "sha512-M9TMBZ4JRsO6srcwd3Q0oMWTg8rWlcUegEKEbD05MVxLMnPW9wQNpocSm8jZLi8ObD00h6XdYXlqkeQAY1kpPQ==", "cpu": [ "x64", "arm64" @@ -11043,9 +11043,9 @@ }, "node_modules/to-regex-range": { "name": "@clevercanyon/to-regex-range.fork", - "version": "5.0.19", - "resolved": "https://registry.npmjs.org/@clevercanyon/to-regex-range.fork/-/to-regex-range.fork-5.0.19.tgz", - "integrity": "sha512-3cOdhbx0Yv0c3RouLcV+kW79jw+5LynzomIoftkz28TfjlkuspzG5E6sMF+dBJTzt9w6onKIT5xfLpMbyaitQQ==", + "version": "5.0.20", + "resolved": "https://registry.npmjs.org/@clevercanyon/to-regex-range.fork/-/to-regex-range.fork-5.0.20.tgz", + "integrity": "sha512-hHqIAOCCGPG0u4kM64YNP9tNA+LiosASCIWXCNkghETeZGD1urD78xavQ5C5xK9QPsOn98wcF826xGHozY+dBw==", "cpu": [ "x64", "arm64" @@ -11055,7 +11055,7 @@ "linux" ], "dependencies": { - "is-number": "npm:@clevercanyon/is-number.fork@^7.0.22" + "is-number": "npm:@clevercanyon/is-number.fork@^7.0.23" }, "engines": { "node": "^19.2.0 || ^19.4.0", @@ -11302,15 +11302,15 @@ } }, "node_modules/vite": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/vite/-/vite-4.0.4.tgz", - "integrity": "sha512-xevPU7M8FU0i/80DMR+YhgrzR5KS2ORy1B4xcX/cXLsvnUWvfHuqMmVU6N0YiJ4JWGRJJsLCgjEzKjG9/GKoSw==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/vite/-/vite-4.1.1.tgz", + "integrity": "sha512-LM9WWea8vsxhr782r9ntg+bhSFS06FJgCvvB0+8hf8UWtvaiDagKYWXndjfX6kGl74keHJUcpzrQliDXZlF5yg==", "dev": true, "dependencies": { - "esbuild": "^0.16.3", - "postcss": "^8.4.20", + "esbuild": "^0.16.14", + "postcss": "^8.4.21", "resolve": "^1.22.1", - "rollup": "^3.7.0" + "rollup": "^3.10.0" }, "bin": { "vite": "bin/vite.js" @@ -11789,27 +11789,27 @@ } }, "@clevercanyon/madrun": { - "version": "1.0.55", - "resolved": "https://registry.npmjs.org/@clevercanyon/madrun/-/madrun-1.0.55.tgz", - "integrity": "sha512-gnIA+669ajH4pKleWKnxfHfA8KWI7COnJPFNufK+MgqxZnNWjIODb8apBYEWfUc6dKl0SsXOE+EV3090ZbLM9w==", + "version": "1.0.56", + "resolved": "https://registry.npmjs.org/@clevercanyon/madrun/-/madrun-1.0.56.tgz", + "integrity": "sha512-dzxkrmDqyEwuewYum5y6ML3CvgJNIwSF10nC5YuqNlSYZpstEizsdAaohHEVNThaNEvxCe1slqHzERkK3FLEFg==", "dev": true, "requires": { - "@clevercanyon/utilities": "^1.0.92", - "@clevercanyon/utilities.node": "^1.0.48", + "@clevercanyon/utilities": "^1.0.93", + "@clevercanyon/utilities.node": "^1.0.49", "chalk": "^5.2.0", "find-up": "^6.3.0", "lodash": "^4.17.21" } }, "@clevercanyon/skeleton-dev-deps": { - "version": "1.0.114", - "resolved": "https://registry.npmjs.org/@clevercanyon/skeleton-dev-deps/-/skeleton-dev-deps-1.0.114.tgz", - "integrity": "sha512-8KetPecak/m8tfuWmNjDPckZxfJWLLOv3ZoVKAFYsV5tLl2Aa4bwi6bnvEzOwmuQVIf8Ybl1GsQf9SJF40Y+jA==", + "version": "1.0.115", + "resolved": "https://registry.npmjs.org/@clevercanyon/skeleton-dev-deps/-/skeleton-dev-deps-1.0.115.tgz", + "integrity": "sha512-DlvMSv6MsH+pS6Zoz6qskOfDKA4W+sql6SGnOnPMp5krFx+DOlblfSjnnPWTPfANRoeAfHAncU6QyiaSXrovnw==", "dev": true, "requires": { - "@clevercanyon/madrun": "^1.0.54", - "@clevercanyon/utilities": "^1.0.92", - "@clevercanyon/utilities.node": "^1.0.48", + "@clevercanyon/madrun": "^1.0.55", + "@clevercanyon/utilities": "^1.0.93", + "@clevercanyon/utilities.node": "^1.0.49", "@octokit/core": "^4.2.0", "@octokit/plugin-paginate-rest": "^5.0.1", "@prettier/plugin-php": "^0.19.3", @@ -11865,28 +11865,28 @@ "stylelint-scss": "^4.3.0", "tailwindcss": "^3.2.4", "typescript": "^4.9.5", - "vite": "^4.0.4", + "vite": "^4.1.1", "vite-plugin-ejs": "^1.6.4", "vite-plugin-minify": "^1.5.2" } }, "@clevercanyon/split-cmd.fork": { - "version": "1.0.22", - "resolved": "https://registry.npmjs.org/@clevercanyon/split-cmd.fork/-/split-cmd.fork-1.0.22.tgz", - "integrity": "sha512-ZEJQz5BUFFlH+UbrihPsK3071Suz3RBHyreL1aMEM/cQIfzSM+DCuFRaLlndoxEfGZ2LHm/jgcwFxCYfmXXjWQ==", + "version": "1.0.23", + "resolved": "https://registry.npmjs.org/@clevercanyon/split-cmd.fork/-/split-cmd.fork-1.0.23.tgz", + "integrity": "sha512-356ewRaF7SgZawKoDliXlniDpjhYkt7DL4wKi4SXgvB/LvrNrNKBgRjHDkQwvVw1eOnmKj9/8RjGbEThBh3CFw==", "dev": true, "peer": true }, "@clevercanyon/utilities": { - "version": "1.0.93", - "resolved": "https://registry.npmjs.org/@clevercanyon/utilities/-/utilities-1.0.93.tgz", - "integrity": "sha512-JIuOJkTUWe9TE5emoSng0ZWTilr1Bq+gCLPLv8q2Uok+hTRK+Ru2jJRQBcr6s1z58DOdIn3xGUxOpJY5HEvHRQ==", + "version": "1.0.94", + "resolved": "https://registry.npmjs.org/@clevercanyon/utilities/-/utilities-1.0.94.tgz", + "integrity": "sha512-Btl5eobgf8U7nAxELoT00xMWSDKPH3UdlQpJRofFc3qGuENsg5YuCS27aW8GPB2vshCvuAjVyilN/s3lerhZhQ==", "requires": {} }, "@clevercanyon/utilities.node": { - "version": "1.0.49", - "resolved": "https://registry.npmjs.org/@clevercanyon/utilities.node/-/utilities.node-1.0.49.tgz", - "integrity": "sha512-e4mCra3rsr0OY+GZVr/hQsEaPziahGsE7JrcSO3HHAbViYDv7WE1yw0m+GljGvdKOYRyyYsSVuT2rwZkIlF4jQ==", + "version": "1.0.50", + "resolved": "https://registry.npmjs.org/@clevercanyon/utilities.node/-/utilities.node-1.0.50.tgz", + "integrity": "sha512-hrHAf95DCATVOLN6XsQ0dCWG0SbCLzuNpxAIMo1hGEDlrV9kqhYAqgU8K5Hi0Kni8Nof1ICwmIw2UoBRixr+UA==", "dev": true, "requires": {} }, @@ -13891,11 +13891,11 @@ } }, "braces": { - "version": "npm:@clevercanyon/braces.fork@3.0.20", - "resolved": "https://registry.npmjs.org/@clevercanyon/braces.fork/-/braces.fork-3.0.20.tgz", - "integrity": "sha512-2ZBI9TjNKjRW9nGuWQHZ69mNKFSqtb1VlV7wZqd0tskt0OGiLXOv2+40Ub3blBYSAU6TjcQaRW9Qkh23C5fMOw==", + "version": "npm:@clevercanyon/braces.fork@3.0.21", + "resolved": "https://registry.npmjs.org/@clevercanyon/braces.fork/-/braces.fork-3.0.21.tgz", + "integrity": "sha512-GtKjj3qfp/9z4s8EfT5rC/AT9CVl9TPq73o3vNeyU6RGthd2ZKpvk2fFH0AJaTbPv3AyVCnDkrSsF6FUe885jw==", "requires": { - "fill-range": "npm:@clevercanyon/fill-range.fork@^7.0.19" + "fill-range": "npm:@clevercanyon/fill-range.fork@^7.0.20" } }, "browserslist": { @@ -15451,11 +15451,11 @@ "dev": true }, "fill-range": { - "version": "npm:@clevercanyon/fill-range.fork@7.0.19", - "resolved": "https://registry.npmjs.org/@clevercanyon/fill-range.fork/-/fill-range.fork-7.0.19.tgz", - "integrity": "sha512-p8Q9SbFU73nqz7p8TkrUVibXP71iHcTCUhe74GYlDAOQ+nmXQfzBFQkYL9wKTyMIjoF2kSCJefFIFbbvQPcM2A==", + "version": "npm:@clevercanyon/fill-range.fork@7.0.20", + "resolved": "https://registry.npmjs.org/@clevercanyon/fill-range.fork/-/fill-range.fork-7.0.20.tgz", + "integrity": "sha512-D0pQY8kB85ym/OCqK72PzTyDtuvgQvDeAPjCqTVMvcnCi5SsLlGIaZxdi5YyL91V0cO2iLNBnNFLP+2hmTM7Sw==", "requires": { - "to-regex-range": "npm:@clevercanyon/to-regex-range.fork@^5.0.19" + "to-regex-range": "npm:@clevercanyon/to-regex-range.fork@^5.0.20" } }, "find-up": { @@ -16176,9 +16176,9 @@ "dev": true }, "is-number": { - "version": "npm:@clevercanyon/is-number.fork@7.0.22", - "resolved": "https://registry.npmjs.org/@clevercanyon/is-number.fork/-/is-number.fork-7.0.22.tgz", - "integrity": "sha512-UKI/04C+zJu+l0cMdDyuHjut6jUxM3AhT/QAZjkxCQMppVc/i4YX+n1PFVEjpnc7e0tjMhtia67efxVxxukQug==" + "version": "npm:@clevercanyon/is-number.fork@7.0.23", + "resolved": "https://registry.npmjs.org/@clevercanyon/is-number.fork/-/is-number.fork-7.0.23.tgz", + "integrity": "sha512-Yrnu4pLfWGCxOyRtTzrcNt4xcAGz6GdyRndnBZG4SZuQS6XK88xFpY2n+Ad18fWGv1rdq+xaiwJoSsyN5EoiIw==" }, "is-number-object": { "version": "1.0.7", @@ -16818,9 +16818,9 @@ } }, "merge-change": { - "version": "npm:@clevercanyon/merge-change.fork@1.8.30", - "resolved": "https://registry.npmjs.org/@clevercanyon/merge-change.fork/-/merge-change.fork-1.8.30.tgz", - "integrity": "sha512-0Giouk7cK9goZu/b87+q3BW2XZ4k/uPsrC1OnRnJDQ1AmWXC40gJmIb4xanjufTTuXXIPY5fuv5UfjVpdIjVag==", + "version": "npm:@clevercanyon/merge-change.fork@1.8.44", + "resolved": "https://registry.npmjs.org/@clevercanyon/merge-change.fork/-/merge-change.fork-1.8.44.tgz", + "integrity": "sha512-I1YwWqZ39z1u1TZKPPzg1Hr0JWEHwCpzuWrcpaYrblsgHtDn9m0X39JMRA/mcaTjjGXVIz8r4MqcZvtidCe0gQ==", "peer": true }, "merge-stream": { @@ -17070,12 +17070,12 @@ "dev": true }, "micromatch": { - "version": "npm:@clevercanyon/micromatch.fork@4.0.24", - "resolved": "https://registry.npmjs.org/@clevercanyon/micromatch.fork/-/micromatch.fork-4.0.24.tgz", - "integrity": "sha512-RvhUCFXydCl47XajFPhDCNtVcmf54Uzm31PKGQyOdxe/ACJI5mOnC0HhbAupqoGFBYYku5LaxQkn6YXxde+mWQ==", + "version": "npm:@clevercanyon/micromatch.fork@4.0.25", + "resolved": "https://registry.npmjs.org/@clevercanyon/micromatch.fork/-/micromatch.fork-4.0.25.tgz", + "integrity": "sha512-IUslfabf0bxqwZB9QuiW9Twy+Fs1G+JgRTAkmPRqOqXIRfGQzqmTlX849fT2cET3iElks5HrJMYKfja8rZF7Ag==", "requires": { - "braces": "npm:@clevercanyon/braces.fork@^3.0.20", - "picomatch": "npm:@clevercanyon/picomatch.fork@^2.3.19" + "braces": "npm:@clevercanyon/braces.fork@^3.0.21", + "picomatch": "npm:@clevercanyon/picomatch.fork@^2.3.20" } }, "mime": { @@ -17660,9 +17660,9 @@ "dev": true }, "picomatch": { - "version": "npm:@clevercanyon/picomatch.fork@2.3.19", - "resolved": "https://registry.npmjs.org/@clevercanyon/picomatch.fork/-/picomatch.fork-2.3.19.tgz", - "integrity": "sha512-OBurQQDQ/W2snupPZWddF4nPgf29Huh1UX+C9jsMUR+tNyixAvUSXvzyvg0+LyRRtjzxJ33tHWb3wP0yEMqjbA==" + "version": "npm:@clevercanyon/picomatch.fork@2.3.20", + "resolved": "https://registry.npmjs.org/@clevercanyon/picomatch.fork/-/picomatch.fork-2.3.20.tgz", + "integrity": "sha512-mMTw/V8BvtPpV4RMYQ0c+SyrcvJ0H/07H6zBAqfV3bdvwCw6I/CMyJFNvSov0gpUn8bYvZwkKGJ95MGTstlbCQ==" }, "pify": { "version": "2.3.0", @@ -18704,9 +18704,9 @@ } }, "shescape": { - "version": "npm:@clevercanyon/shescape.fork@1.6.16", - "resolved": "https://registry.npmjs.org/@clevercanyon/shescape.fork/-/shescape.fork-1.6.16.tgz", - "integrity": "sha512-EAmP0CxV8lAjEgs9jyx1JNI08U3b09BgUx4Yj8Ub3qm7SXheKVnU3Rh1LboOlHF/LkteUouBARarRPJPn7xf4g==", + "version": "npm:@clevercanyon/shescape.fork@1.6.17", + "resolved": "https://registry.npmjs.org/@clevercanyon/shescape.fork/-/shescape.fork-1.6.17.tgz", + "integrity": "sha512-j4w3Zf+AqnzNXWCiADGFYzb31oemxMhbNREr3hLG7w6XV2Q4kFmjxRgxJRRhToxry4ZQUEIuwRRtZMl8dQvBxw==", "dev": true, "peer": true, "requires": { @@ -18770,9 +18770,9 @@ } }, "spawn-please": { - "version": "npm:@clevercanyon/spawn-please.fork@2.0.16", - "resolved": "https://registry.npmjs.org/@clevercanyon/spawn-please.fork/-/spawn-please.fork-2.0.16.tgz", - "integrity": "sha512-WLg3TkXglvclYzQVK3GuxLCA15XzYVhH35p6DC4tAcKgzHDdCaABUZJ9eLorUKxqRTyYvw3joJFSSyQQsaOXXg==", + "version": "npm:@clevercanyon/spawn-please.fork@2.0.17", + "resolved": "https://registry.npmjs.org/@clevercanyon/spawn-please.fork/-/spawn-please.fork-2.0.17.tgz", + "integrity": "sha512-M9TMBZ4JRsO6srcwd3Q0oMWTg8rWlcUegEKEbD05MVxLMnPW9wQNpocSm8jZLi8ObD00h6XdYXlqkeQAY1kpPQ==", "dev": true, "peer": true, "requires": { @@ -19394,11 +19394,11 @@ } }, "to-regex-range": { - "version": "npm:@clevercanyon/to-regex-range.fork@5.0.19", - "resolved": "https://registry.npmjs.org/@clevercanyon/to-regex-range.fork/-/to-regex-range.fork-5.0.19.tgz", - "integrity": "sha512-3cOdhbx0Yv0c3RouLcV+kW79jw+5LynzomIoftkz28TfjlkuspzG5E6sMF+dBJTzt9w6onKIT5xfLpMbyaitQQ==", + "version": "npm:@clevercanyon/to-regex-range.fork@5.0.20", + "resolved": "https://registry.npmjs.org/@clevercanyon/to-regex-range.fork/-/to-regex-range.fork-5.0.20.tgz", + "integrity": "sha512-hHqIAOCCGPG0u4kM64YNP9tNA+LiosASCIWXCNkghETeZGD1urD78xavQ5C5xK9QPsOn98wcF826xGHozY+dBw==", "requires": { - "is-number": "npm:@clevercanyon/is-number.fork@^7.0.22" + "is-number": "npm:@clevercanyon/is-number.fork@^7.0.23" } }, "tr46": { @@ -19577,16 +19577,16 @@ } }, "vite": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/vite/-/vite-4.0.4.tgz", - "integrity": "sha512-xevPU7M8FU0i/80DMR+YhgrzR5KS2ORy1B4xcX/cXLsvnUWvfHuqMmVU6N0YiJ4JWGRJJsLCgjEzKjG9/GKoSw==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/vite/-/vite-4.1.1.tgz", + "integrity": "sha512-LM9WWea8vsxhr782r9ntg+bhSFS06FJgCvvB0+8hf8UWtvaiDagKYWXndjfX6kGl74keHJUcpzrQliDXZlF5yg==", "dev": true, "requires": { - "esbuild": "^0.16.3", + "esbuild": "^0.16.14", "fsevents": "~2.3.2", - "postcss": "^8.4.20", + "postcss": "^8.4.21", "resolve": "^1.22.1", - "rollup": "^3.7.0" + "rollup": "^3.10.0" } }, "vite-plugin-ejs": { diff --git a/package.json b/package.json index 5fad9be..7deca4c 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "publishConfig": { "access": "restricted" }, - "version": "1.0.51", + "version": "1.0.52", "license": "GPL-3.0-or-later", "name": "@clevercanyon/utilities.cfw", "description": "Utilities for JavaScript apps running in a Cloudflare Worker environment.", @@ -51,14 +51,14 @@ }, "dependencies": {}, "peerDependencies": { - "@clevercanyon/utilities": "^1.0.93", + "@clevercanyon/utilities": "^1.0.94", "@cloudflare/kv-asset-handler": "^0.2.0" }, "peerDependenciesMeta": {}, "optionalDependencies": {}, "bundleDependencies": [], "devDependencies": { - "@clevercanyon/skeleton-dev-deps": "^1.0.114", + "@clevercanyon/skeleton-dev-deps": "^1.0.115", "@cloudflare/workers-types": "^4.20230115.0" }, "overrides": {},