From 1c311897bad3390595ab22f3e7bafa7270d52504 Mon Sep 17 00:00:00 2001 From: Jason Caldwell Date: Fri, 27 Jan 2023 07:47:34 -0500 Subject: [PATCH] Project update. [p][robotic] --- README.md | 2 +- dev/.files/bin/envs.mjs | 7 + dev/.files/bin/includes/utilities.mjs | 4 +- dev/.files/bin/install.mjs | 7 + dev/.files/bin/update.mjs | 7 + dev/.files/madrun/config.mjs | 83 ++++++++-- dev/.files/vite/config.mjs | 10 +- package-lock.json | 228 +++++++++++++------------- package.json | 6 +- 9 files changed, 211 insertions(+), 143 deletions(-) diff --git a/README.md b/README.md index ff895ab0..0878043c 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,3 @@ -# Clever Canyon: Utilities +# @clevercanyon/utilities Clever Canyon’s project development utilities. diff --git a/dev/.files/bin/envs.mjs b/dev/.files/bin/envs.mjs index 7fbf936a..06e1bfc5 100755 --- a/dev/.files/bin/envs.mjs +++ b/dev/.files/bin/envs.mjs @@ -439,6 +439,13 @@ class Decrypt { */ void (async () => { await yargs(hideBin(process.argv)) + .parserConfiguration({ + 'dot-notation': false, + 'strip-aliased': true, + 'strip-dashed': true, + 'greedy-arrays': true, + 'boolean-negation': false, + }) .command({ command: 'install', describe: 'Installs all envs for dotenv vault.', diff --git a/dev/.files/bin/includes/utilities.mjs b/dev/.files/bin/includes/utilities.mjs index 01750820..4141711c 100755 --- a/dev/.files/bin/includes/utilities.mjs +++ b/dev/.files/bin/includes/utilities.mjs @@ -933,9 +933,9 @@ export default class u { } keys.push(env.USER_DOTENV_KEY_PROD); } - await u.spawn(path.resolve(binDir, './envs.js'), ['decrypt', '--keys', ...keys]); + await u.spawn(path.resolve(binDir, './envs.mjs'), ['decrypt', '--keys', ...keys]); } else { - await u.spawn(path.resolve(binDir, './envs.js'), ['install']); + await u.spawn(path.resolve(binDir, './envs.mjs'), ['install']); } } diff --git a/dev/.files/bin/install.mjs b/dev/.files/bin/install.mjs index 7cf41c92..fe1dc1c4 100755 --- a/dev/.files/bin/install.mjs +++ b/dev/.files/bin/install.mjs @@ -121,6 +121,13 @@ class Project { */ void (async () => { await yargs(hideBin(process.argv)) + .parserConfiguration({ + 'dot-notation': false, + 'strip-aliased': true, + 'strip-dashed': true, + 'greedy-arrays': true, + 'boolean-negation': false, + }) .command({ command: ['project'], describe: 'Installs NPM packages, envs, and builds distro.', diff --git a/dev/.files/bin/update.mjs b/dev/.files/bin/update.mjs index b18717e3..7f9aa51a 100755 --- a/dev/.files/bin/update.mjs +++ b/dev/.files/bin/update.mjs @@ -443,6 +443,13 @@ class Projects { */ void (async () => { await yargs(hideBin(process.argv)) + .parserConfiguration({ + 'dot-notation': false, + 'strip-aliased': true, + 'strip-dashed': true, + 'greedy-arrays': true, + 'boolean-negation': false, + }) .command({ command: ['dotfiles'], describe: 'Updates project dotfiles.', diff --git a/dev/.files/madrun/config.mjs b/dev/.files/madrun/config.mjs index 96c77f75..ee4cf0af 100644 --- a/dev/.files/madrun/config.mjs +++ b/dev/.files/madrun/config.mjs @@ -9,46 +9,93 @@ /* eslint-env es2021, node */ import fs from 'node:fs'; -import path from 'node:path'; +import fsp from 'node:fs/promises'; import { dirname } from 'desm'; +import path from 'node:path'; const __dirname = dirname(import.meta.url); const projDir = path.resolve(__dirname, '../../..'); export default { - 'envs': async () => ['./dev/.files/bin/envs.mjs {{@}}'], - 'envs:push': async () => ['./dev/.files/bin/envs.mjs push {{@}}'], - 'envs:pull': async () => ['./dev/.files/bin/envs.mjs pull {{@}}'], - 'envs:keys': async () => ['./dev/.files/bin/envs.mjs keys {{@}}'], - 'envs:encrypt': async () => ['./dev/.files/bin/envs.mjs encrypt {{@}}'], - 'envs:decrypt': async () => ['./dev/.files/bin/envs.mjs decrypt {{@}}'], - 'envs:install': async () => ['./dev/.files/bin/envs.mjs install {{@}}'], - - 'dev': async (args) => ['npx vite dev' + (args.mode ? '' : ' --mode=dev') + ' {{@}}'], - 'preview': async (args) => ['npx vite preview' + (args.mode ? '' : ' --mode=dev') + ' {{@}}'], - 'build': async (args) => ['npx vite build' + (args.mode ? '' : ' --mode=prod') + ' {{@}}'], + 'envs': './dev/.files/bin/envs.mjs {{@}}', + 'envs:push': './dev/.files/bin/envs.mjs push {{@}}', + 'envs:pull': './dev/.files/bin/envs.mjs pull {{@}}', + 'envs:keys': './dev/.files/bin/envs.mjs keys {{@}}', + 'envs:encrypt': './dev/.files/bin/envs.mjs encrypt {{@}}', + 'envs:decrypt': './dev/.files/bin/envs.mjs decrypt {{@}}', + 'envs:install': './dev/.files/bin/envs.mjs install {{@}}', + + 'dev': async (args) => 'npx vite dev' + (args.mode ? '' : ' --mode=dev') + ' {{@}}', + 'preview': async (args) => 'npx vite preview' + (args.mode ? '' : ' --mode=dev') + ' {{@}}', + 'build': async (args) => 'npx vite build' + (args.mode ? '' : ' --mode=prod') + ' {{@}}', 'install': async () => { if (fs.existsSync(path.resolve(projDir, './node_modules'))) { - return ['./dev/.files/bin/install.mjs {{@}}']; + return './dev/.files/bin/install.mjs {{@}}'; } return ['npm ci', './dev/.files/bin/install.mjs {{@}}']; }, 'install:project': async () => { if (fs.existsSync(path.resolve(projDir, './node_modules'))) { - return ['./dev/.files/bin/install.mjs project {{@}}']; + return './dev/.files/bin/install.mjs project {{@}}'; } return ['npm ci', './dev/.files/bin/install.mjs project {{@}}']; }, - 'update': async () => ['./dev/.files/bin/update.mjs {{@}}'], - 'update:dotfiles': async () => ['./dev/.files/bin/update.mjs dotfiles {{@}}'], + 'update': './dev/.files/bin/update.mjs {{@}}', + 'update:dotfiles': './dev/.files/bin/update.mjs dotfiles {{@}}', 'update:project': async (args) => { if (args.h || args.v || args.help || args.version) { return './dev/.files/bin/update.mjs project {{@}}'; } return ['./dev/.files/bin/update.mjs dotfiles {{--dryRun}}', './dev/.files/bin/update.mjs project {{@}}']; }, - 'update:projects': async () => ['./dev/.files/bin/update.mjs projects {{@}}'], + 'update:projects': './dev/.files/bin/update.mjs projects {{@}}', + + 'wrangler': 'CLOUDFLARE_API_TOKEN="${USER_CLOUDFLARE_TOKEN}" npx wrangler {{@}}', + + 'on::madrun:default:new': [ + 'npx @clevercanyon/madrun install:project', + async () => { + let u = './dev/.files/bin/includes/utilities.mjs'; + u = (await import(path.resolve(projDir, u))).default; + + await fsp.rm(path.resolve(projDir, './.env.me'), { force: true }); + await fsp.rm(path.resolve(projDir, './.env.vault'), { force: true }); + + const projSlug = path.basename(projDir); + await u.updatePkg({ + name: '@clevercanyon/' + projSlug, + repository: 'https://github.com/clevercanyon/' + projSlug, + homepage: 'https://github.com/clevercanyon/' + projSlug + '#readme', + bugs: 'https://github.com/clevercanyon/' + projSlug + '/issues', + + $unset: /* Reset to defaults. */ [ + 'private', // + 'publishConfig.access', + + 'version', + 'license', + 'description', + 'funding', + 'keywords', + + 'author', + 'contributors', + + 'config.c10n.&.github.teams', + 'config.c10n.&.github.labels', + 'config.c10n.&.github.configVersion', + 'config.c10n.&.github.envsVersion', + + 'config.c10n.&.npmjs.teams', + 'config.c10n.&.npmjs.configVersions', + ], + }); + const readmeFile = path.resolve(projDir, './README.md'); + let readme = fs.readFileSync(readmeFile).toString(); // Markdown. - 'wrangler': async () => ['CLOUDFLARE_API_TOKEN="${USER_CLOUDFLARE_TOKEN}" npx wrangler {{@}}'], + readme = readme.replace(/@clevercanyon\/[^/?#\s]+/gu, '@clevercanyon/' + projSlug); + await fsp.writeFile(readmeFile, readme); + }, + ], }; diff --git a/dev/.files/vite/config.mjs b/dev/.files/vite/config.mjs index ff1cfe2b..2c1666c8 100644 --- a/dev/.files/vite/config.mjs +++ b/dev/.files/vite/config.mjs @@ -304,11 +304,11 @@ export default async ({ mode, command /*, ssrBuild */ }) => { c10n: { pkg, pkgProps }, define: { // Static replacements. - $$__APP_PKG_NAME__$$: pkg.name || '', - $$__APP_PKG_VERSION__$$: pkg.version || '', - $$__APP_PKG_REPOSITORY__$$: pkg.repository || '', - $$__APP_PKG_HOMEPAGE__$$: pkg.homepage || '', - $$__APP_PKG_BUGS__$$: pkg.bugs || '', + $$__APP_PKG_NAME__$$: JSON.stringify(pkg.name || ''), + $$__APP_PKG_VERSION__$$: JSON.stringify(pkg.version || ''), + $$__APP_PKG_REPOSITORY__$$: JSON.stringify(pkg.repository || ''), + $$__APP_PKG_HOMEPAGE__$$: JSON.stringify(pkg.homepage || ''), + $$__APP_PKG_BUGS__$$: JSON.stringify(pkg.bugs || ''), }, root: srcDir, // Absolute. Where entry indexes live. publicDir: path.relative(srcDir, cargoDir), // Relative to `root` directory. diff --git a/package-lock.json b/package-lock.json index 708bc1f4..d364882e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@clevercanyon/utilities", - "version": "1.0.77", + "version": "1.0.78", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@clevercanyon/utilities", - "version": "1.0.77", + "version": "1.0.78", "cpu": [ "x64", "arm64" @@ -17,7 +17,7 @@ "linux" ], "devDependencies": { - "@clevercanyon/skeleton-dev-deps": "^1.0.99", + "@clevercanyon/skeleton-dev-deps": "^1.0.100", "@cloudflare/workers-types": "^4.20230115.0", "@types/crypto-js": "^4.1.1", "@types/locutus": "^0.0.6", @@ -39,7 +39,7 @@ "ignore": "^5.2.4", "locutus": "^2.0.16", "lodash": "^4.17.21", - "micromatch": "npm:@clevercanyon/micromatch.fork@^4.0.15", + "micromatch": "npm:@clevercanyon/micromatch.fork@^4.0.16", "react": "^18.2.0", "react-dom": "^18.2.0" } @@ -163,9 +163,9 @@ } }, "node_modules/@clevercanyon/madrun": { - "version": "1.0.26", - "resolved": "https://registry.npmjs.org/@clevercanyon/madrun/-/madrun-1.0.26.tgz", - "integrity": "sha512-awNZlzwLbqSopBzzEE5T3W5yYGJp1unQwC/q8li78Pnh3+TkcAQvqbBKDEW64HXqKya9rIuyWW0XRrxq1eraQQ==", + "version": "1.0.32", + "resolved": "https://registry.npmjs.org/@clevercanyon/madrun/-/madrun-1.0.32.tgz", + "integrity": "sha512-O8N0G9kKdcdefgmW+GpXxQ1MJ7Bw1KhQ5XRGvYWLwCiLMEugObzL02u29gCiIDg7GWRkZ9hlYSvBpREaUs6Img==", "cpu": [ "x64", "arm64" @@ -181,8 +181,8 @@ "desm": "^1.3.0", "find-up": "^6.3.0", "lodash": "^4.17.21", - "shescape": "npm:@clevercanyon/shescape.fork@^1.6.6", - "spawn-please": "npm:@clevercanyon/spawn-please.fork@^2.0.4", + "shescape": "npm:@clevercanyon/shescape.fork@^1.6.7", + "spawn-please": "npm:@clevercanyon/spawn-please.fork@^2.0.5", "yargs": "^17.6.2" }, "bin": { @@ -197,9 +197,9 @@ } }, "node_modules/@clevercanyon/skeleton-dev-deps": { - "version": "1.0.99", - "resolved": "https://registry.npmjs.org/@clevercanyon/skeleton-dev-deps/-/skeleton-dev-deps-1.0.99.tgz", - "integrity": "sha512-AGwam+DHwhObS8N+LWjz4MFI5r/wptAHL1Wzf3oRpSTzeRuuiyhFtlx/i9y5V9CeSj9OL21vfRb33HmVzPXGsQ==", + "version": "1.0.100", + "resolved": "https://registry.npmjs.org/@clevercanyon/skeleton-dev-deps/-/skeleton-dev-deps-1.0.100.tgz", + "integrity": "sha512-w51wswdKof3focdCmIh+z914/fOP06Ex37bPJ5cAq9jorAyXdIOSEAEFqmbeOcQcYSqLvWYBcPPjX1E9ww98Rg==", "cpu": [ "x64", "arm64" @@ -210,8 +210,8 @@ "linux" ], "dependencies": { - "@clevercanyon/madrun": "^1.0.25", - "@clevercanyon/split-cmd.fork": "^1.0.10", + "@clevercanyon/madrun": "^1.0.31", + "@clevercanyon/split-cmd.fork": "^1.0.11", "@octokit/core": "^4.2.0", "@octokit/plugin-paginate-rest": "^5.0.1", "@prettier/plugin-php": "^0.19.3", @@ -247,8 +247,8 @@ "install": "^0.13.0", "libsodium-wrappers": "^0.7.10", "lodash": "^4.17.21", - "merge-change": "npm:@clevercanyon/merge-change.fork@^1.8.17", - "micromatch": "npm:@clevercanyon/micromatch.fork@^4.0.14", + "merge-change": "npm:@clevercanyon/merge-change.fork@^1.8.18", + "micromatch": "npm:@clevercanyon/micromatch.fork@^4.0.15", "postcss": "^8.4.21", "postcss-preset-env": "^7.8.3", "postcss-safe-parser": "^6.0.0", @@ -262,8 +262,8 @@ "sass": "^1.57.1", "semver": "^7.3.8", "shellcheck": "^1.1.0", - "shescape": "npm:@clevercanyon/shescape.fork@^1.6.6", - "spawn-please": "npm:@clevercanyon/spawn-please.fork@^2.0.4", + "shescape": "npm:@clevercanyon/shescape.fork@^1.6.7", + "spawn-please": "npm:@clevercanyon/spawn-please.fork@^2.0.5", "stylelint": "^14.16.1", "stylelint-config-prettier": "^9.0.4", "stylelint-config-recess-order": "^3.1.0", @@ -286,9 +286,9 @@ } }, "node_modules/@clevercanyon/split-cmd.fork": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@clevercanyon/split-cmd.fork/-/split-cmd.fork-1.0.11.tgz", - "integrity": "sha512-BjZTjyEBTN9r2oYmSG4sl3+r+84LhVLmABkeeLYcFe4+AlpkZ0Vl4KOgDw0oZHyhbm8eas0iAXtTSkZSqsLUuQ==", + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/@clevercanyon/split-cmd.fork/-/split-cmd.fork-1.0.12.tgz", + "integrity": "sha512-BFnxQbglPWz/s2+RksEFTOHRTUVmNf8En4lOWyaN67PwQjIfUNj/o8Oymc2d7dovKbY4sM+lf+c7K80tRZ5r5g==", "cpu": [ "x64", "arm64" @@ -3154,9 +3154,9 @@ }, "node_modules/braces": { "name": "@clevercanyon/braces.fork", - "version": "3.0.11", - "resolved": "https://registry.npmjs.org/@clevercanyon/braces.fork/-/braces.fork-3.0.11.tgz", - "integrity": "sha512-bnyeS6FzXqG2D44pC9GCLxeM5+lhcnzEzTmCBsFgnSyNHRdhW1AkCZzf4khg8Vsf6PfEgaMfZ+2ZuIflVhIUcg==", + "version": "3.0.12", + "resolved": "https://registry.npmjs.org/@clevercanyon/braces.fork/-/braces.fork-3.0.12.tgz", + "integrity": "sha512-t5mEhfEsYL4dlw/CLB2LUqsmRMJpyBiKC+m1E90zhZaeJa4FwL5zjC9ug2PDyJyZ/xO3KDAd/2/35dzSnsTfvw==", "cpu": [ "x64", "arm64" @@ -3166,7 +3166,7 @@ "linux" ], "dependencies": { - "fill-range": "npm:@clevercanyon/fill-range.fork@^7.0.10" + "fill-range": "npm:@clevercanyon/fill-range.fork@^7.0.11" }, "engines": { "node": "^19.2.0 || ^19.4.0", @@ -3332,9 +3332,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001448", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001448.tgz", - "integrity": "sha512-tq2YI+MJnooG96XpbTRYkBxLxklZPOdLmNIOdIhvf7SNJan6u5vCKum8iT7ZfCt70m1GPkuC7P3TtX6UuhupuA==", + "version": "1.0.30001449", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001449.tgz", + "integrity": "sha512-CPB+UL9XMT/Av+pJxCKGhdx+yg1hzplvFJQlJ2n68PyQGMz9L/E2zCyLdOL8uasbouTUgnPl+y0tccI/se+BEw==", "dev": true, "funding": [ { @@ -5242,9 +5242,9 @@ }, "node_modules/fill-range": { "name": "@clevercanyon/fill-range.fork", - "version": "7.0.10", - "resolved": "https://registry.npmjs.org/@clevercanyon/fill-range.fork/-/fill-range.fork-7.0.10.tgz", - "integrity": "sha512-DHGBICP8nP7mQnH0pxt6E1glPeEXU7r5s3ajmA7aHJtCCjDgPCPL5agWPRR43QZ2e5cx+Wbi0sAWkjwl+DU6bQ==", + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@clevercanyon/fill-range.fork/-/fill-range.fork-7.0.11.tgz", + "integrity": "sha512-RKvTBRJYkstG9OlgtU7+QBF2OPx1S/jRKKFjriTGTapghxKrhwk/bxjgaG1ToRGTWyaHpZ89Y/0chpvVlocNdQ==", "cpu": [ "x64", "arm64" @@ -5254,7 +5254,7 @@ "linux" ], "dependencies": { - "to-regex-range": "npm:@clevercanyon/to-regex-range.fork@^5.0.10" + "to-regex-range": "npm:@clevercanyon/to-regex-range.fork@^5.0.11" }, "engines": { "node": "^19.2.0 || ^19.4.0", @@ -6293,9 +6293,9 @@ }, "node_modules/is-number": { "name": "@clevercanyon/is-number.fork", - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@clevercanyon/is-number.fork/-/is-number.fork-7.0.11.tgz", - "integrity": "sha512-byic4aCd3NB1GTfPMrS+MEf4PSA88Cl/VbpSPytID1hiVThMuolrIfF+q/esC6k1Jr1U276p6MUHZZHrcGqnrQ==", + "version": "7.0.12", + "resolved": "https://registry.npmjs.org/@clevercanyon/is-number.fork/-/is-number.fork-7.0.12.tgz", + "integrity": "sha512-r4k4u3LalRcCqQI/KT1y+s/rnVmcSXSXfGAFQ+thURc+2zNxrsdF+1LhTuoCyvQrp//XQ82meS7/VvljqJLLZw==", "cpu": [ "x64", "arm64" @@ -7042,9 +7042,9 @@ } }, "node_modules/mdast-util-from-markdown": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-1.2.0.tgz", - "integrity": "sha512-iZJyyvKD1+K7QX1b5jXdE7Sc5dtoTry1vzV28UZZe8Z1xVnB/czKntJ7ZAkG0tANqRnBF6p3p7GpU1y19DTf2Q==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-1.2.1.tgz", + "integrity": "sha512-ohufjqey2anuMhR1u4XD5ZstR8UJEj5Hrih4pn7xEb79HViqtDKVjqSBcChcUBH5XuIbh07WyM5cnXuKYSUpRA==", "dev": true, "dependencies": { "@types/mdast": "^3.0.0", @@ -7134,9 +7134,9 @@ }, "node_modules/merge-change": { "name": "@clevercanyon/merge-change.fork", - "version": "1.8.18", - "resolved": "https://registry.npmjs.org/@clevercanyon/merge-change.fork/-/merge-change.fork-1.8.18.tgz", - "integrity": "sha512-cvuWNxB+4Zy6mrzV4p1QZd5CBfVLKZHJIQVUbCj0cUN+dqFYZGK2OhCvHYqo7AhTBWTsWdxv3N2jUuWaOGn5Pw==", + "version": "1.8.19", + "resolved": "https://registry.npmjs.org/@clevercanyon/merge-change.fork/-/merge-change.fork-1.8.19.tgz", + "integrity": "sha512-9ywsF+TUx2AR96ye5w4GsW0LkYn9eDRVyO23oE6N+auQ/i9S6BQLBocDMKkH1aW+MJx+QqQdnv9IR6ARpwtZZQ==", "cpu": [ "x64", "arm64" @@ -7614,9 +7614,9 @@ }, "node_modules/micromatch": { "name": "@clevercanyon/micromatch.fork", - "version": "4.0.15", - "resolved": "https://registry.npmjs.org/@clevercanyon/micromatch.fork/-/micromatch.fork-4.0.15.tgz", - "integrity": "sha512-fIIJPCWlJdW2CAhQiSNpEhKZO+FwchF9TF0cl2A0Hy15JNko2OABgrOMEvnOYDLS0llNG6usgQ4CMIHnoTWnqg==", + "version": "4.0.16", + "resolved": "https://registry.npmjs.org/@clevercanyon/micromatch.fork/-/micromatch.fork-4.0.16.tgz", + "integrity": "sha512-FXNYON7chSOe/4H5sN6f6zXt5Vc4mmFMLNcVtKWRqHOVAftkGxmnwLglziVbrOZeW+OhD/0qYnTLBwgfhbBruw==", "cpu": [ "x64", "arm64" @@ -7626,8 +7626,8 @@ "linux" ], "dependencies": { - "braces": "npm:@clevercanyon/braces.fork@^3.0.11", - "picomatch": "npm:@clevercanyon/picomatch.fork@^2.3.10" + "braces": "npm:@clevercanyon/braces.fork@^3.0.12", + "picomatch": "npm:@clevercanyon/picomatch.fork@^2.3.11" }, "engines": { "node": "^19.2.0 || ^19.4.0", @@ -8412,9 +8412,9 @@ }, "node_modules/picomatch": { "name": "@clevercanyon/picomatch.fork", - "version": "2.3.10", - "resolved": "https://registry.npmjs.org/@clevercanyon/picomatch.fork/-/picomatch.fork-2.3.10.tgz", - "integrity": "sha512-m31dwVwqn0/cnqH9ixPK7jCEqoDVIK/f/2n50VihxP1g4SmFYfC8jTBKcSW7zjJANrfSxah6LBQJtcuJP4BIYA==", + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/@clevercanyon/picomatch.fork/-/picomatch.fork-2.3.11.tgz", + "integrity": "sha512-WdMoID2q2njwRQLmIFfXNCAArFnagqiHbJ6y4H891MxBZn23zUc/lVFKvmxXjRDrEEx1sGYBAHEOaeNQd/UDqg==", "cpu": [ "x64", "arm64" @@ -10038,9 +10038,9 @@ }, "node_modules/shescape": { "name": "@clevercanyon/shescape.fork", - "version": "1.6.7", - "resolved": "https://registry.npmjs.org/@clevercanyon/shescape.fork/-/shescape.fork-1.6.7.tgz", - "integrity": "sha512-w8dJXdD/YohbKaqo8DYycLm7RhkDxphB2M3DIZre084M+zDhFS3HtoQf5iCQ/STx+1k7fpA2v1RhwTww8ySoJg==", + "version": "1.6.8", + "resolved": "https://registry.npmjs.org/@clevercanyon/shescape.fork/-/shescape.fork-1.6.8.tgz", + "integrity": "sha512-HtFFlnWzxW7sYMOIVHqM7IMRUqpVY1V68q8lsgVuvJ60zsCrJIDOZLZeH2UDTVUYSbOHTBwNKBV+9w8oBhO8LQ==", "cpu": [ "x64", "arm64" @@ -10140,9 +10140,9 @@ }, "node_modules/spawn-please": { "name": "@clevercanyon/spawn-please.fork", - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@clevercanyon/spawn-please.fork/-/spawn-please.fork-2.0.5.tgz", - "integrity": "sha512-kRT10E384quwqEMKexJ5NAPO5ZP8yg8Bw8dwOv8E6kACvsWnROD6SPjKrHcXnwTsv/BDM7fIW4MXU8vU7nvq8A==", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@clevercanyon/spawn-please.fork/-/spawn-please.fork-2.0.6.tgz", + "integrity": "sha512-fSl5sMb8L+uKmbAbD7xgYoVVPq2Mmdmy1CqhcV4N4p2GMIngnhTZW0EcOEpPCM83rgohGIVYhCoVAcg++VFklQ==", "cpu": [ "x64", "arm64" @@ -10961,9 +10961,9 @@ }, "node_modules/to-regex-range": { "name": "@clevercanyon/to-regex-range.fork", - "version": "5.0.10", - "resolved": "https://registry.npmjs.org/@clevercanyon/to-regex-range.fork/-/to-regex-range.fork-5.0.10.tgz", - "integrity": "sha512-lmLmkW7X8x3sOIoxBWfGA7IKcukcLZCpYId1rJK2+XTriUkolJdzUhJBZQfWaLIRln+EflOcUVQ7JQOo/+IoUA==", + "version": "5.0.11", + "resolved": "https://registry.npmjs.org/@clevercanyon/to-regex-range.fork/-/to-regex-range.fork-5.0.11.tgz", + "integrity": "sha512-ZhTV9yGKkLxBTlrn+G1T6hvEEcgdxHLf2G04t/gXSztv300BqZkbK3Yl0ULNnfib95Z8XV2dI7zo2wBChk/ZBQ==", "cpu": [ "x64", "arm64" @@ -10973,7 +10973,7 @@ "linux" ], "dependencies": { - "is-number": "npm:@clevercanyon/is-number.fork@^7.0.11" + "is-number": "npm:@clevercanyon/is-number.fork@^7.0.12" }, "engines": { "node": "^19.2.0 || ^19.4.0", @@ -11704,9 +11704,9 @@ } }, "@clevercanyon/madrun": { - "version": "1.0.26", - "resolved": "https://registry.npmjs.org/@clevercanyon/madrun/-/madrun-1.0.26.tgz", - "integrity": "sha512-awNZlzwLbqSopBzzEE5T3W5yYGJp1unQwC/q8li78Pnh3+TkcAQvqbBKDEW64HXqKya9rIuyWW0XRrxq1eraQQ==", + "version": "1.0.32", + "resolved": "https://registry.npmjs.org/@clevercanyon/madrun/-/madrun-1.0.32.tgz", + "integrity": "sha512-O8N0G9kKdcdefgmW+GpXxQ1MJ7Bw1KhQ5XRGvYWLwCiLMEugObzL02u29gCiIDg7GWRkZ9hlYSvBpREaUs6Img==", "dev": true, "requires": { "boxen": "^7.0.1", @@ -11714,19 +11714,19 @@ "desm": "^1.3.0", "find-up": "^6.3.0", "lodash": "^4.17.21", - "shescape": "npm:@clevercanyon/shescape.fork@^1.6.6", - "spawn-please": "npm:@clevercanyon/spawn-please.fork@^2.0.4", + "shescape": "npm:@clevercanyon/shescape.fork@^1.6.7", + "spawn-please": "npm:@clevercanyon/spawn-please.fork@^2.0.5", "yargs": "^17.6.2" } }, "@clevercanyon/skeleton-dev-deps": { - "version": "1.0.99", - "resolved": "https://registry.npmjs.org/@clevercanyon/skeleton-dev-deps/-/skeleton-dev-deps-1.0.99.tgz", - "integrity": "sha512-AGwam+DHwhObS8N+LWjz4MFI5r/wptAHL1Wzf3oRpSTzeRuuiyhFtlx/i9y5V9CeSj9OL21vfRb33HmVzPXGsQ==", + "version": "1.0.100", + "resolved": "https://registry.npmjs.org/@clevercanyon/skeleton-dev-deps/-/skeleton-dev-deps-1.0.100.tgz", + "integrity": "sha512-w51wswdKof3focdCmIh+z914/fOP06Ex37bPJ5cAq9jorAyXdIOSEAEFqmbeOcQcYSqLvWYBcPPjX1E9ww98Rg==", "dev": true, "requires": { - "@clevercanyon/madrun": "^1.0.25", - "@clevercanyon/split-cmd.fork": "^1.0.10", + "@clevercanyon/madrun": "^1.0.31", + "@clevercanyon/split-cmd.fork": "^1.0.11", "@octokit/core": "^4.2.0", "@octokit/plugin-paginate-rest": "^5.0.1", "@prettier/plugin-php": "^0.19.3", @@ -11762,8 +11762,8 @@ "install": "^0.13.0", "libsodium-wrappers": "^0.7.10", "lodash": "^4.17.21", - "merge-change": "npm:@clevercanyon/merge-change.fork@^1.8.17", - "micromatch": "npm:@clevercanyon/micromatch.fork@^4.0.14", + "merge-change": "npm:@clevercanyon/merge-change.fork@^1.8.18", + "micromatch": "npm:@clevercanyon/micromatch.fork@^4.0.15", "postcss": "^8.4.21", "postcss-preset-env": "^7.8.3", "postcss-safe-parser": "^6.0.0", @@ -11777,8 +11777,8 @@ "sass": "^1.57.1", "semver": "^7.3.8", "shellcheck": "^1.1.0", - "shescape": "npm:@clevercanyon/shescape.fork@^1.6.6", - "spawn-please": "npm:@clevercanyon/spawn-please.fork@^2.0.4", + "shescape": "npm:@clevercanyon/shescape.fork@^1.6.7", + "spawn-please": "npm:@clevercanyon/spawn-please.fork@^2.0.5", "stylelint": "^14.16.1", "stylelint-config-prettier": "^9.0.4", "stylelint-config-recess-order": "^3.1.0", @@ -11794,9 +11794,9 @@ } }, "@clevercanyon/split-cmd.fork": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@clevercanyon/split-cmd.fork/-/split-cmd.fork-1.0.11.tgz", - "integrity": "sha512-BjZTjyEBTN9r2oYmSG4sl3+r+84LhVLmABkeeLYcFe4+AlpkZ0Vl4KOgDw0oZHyhbm8eas0iAXtTSkZSqsLUuQ==", + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/@clevercanyon/split-cmd.fork/-/split-cmd.fork-1.0.12.tgz", + "integrity": "sha512-BFnxQbglPWz/s2+RksEFTOHRTUVmNf8En4lOWyaN67PwQjIfUNj/o8Oymc2d7dovKbY4sM+lf+c7K80tRZ5r5g==", "dev": true }, "@cloudflare/workers-types": { @@ -13829,11 +13829,11 @@ } }, "braces": { - "version": "npm:@clevercanyon/braces.fork@3.0.11", - "resolved": "https://registry.npmjs.org/@clevercanyon/braces.fork/-/braces.fork-3.0.11.tgz", - "integrity": "sha512-bnyeS6FzXqG2D44pC9GCLxeM5+lhcnzEzTmCBsFgnSyNHRdhW1AkCZzf4khg8Vsf6PfEgaMfZ+2ZuIflVhIUcg==", + "version": "npm:@clevercanyon/braces.fork@3.0.12", + "resolved": "https://registry.npmjs.org/@clevercanyon/braces.fork/-/braces.fork-3.0.12.tgz", + "integrity": "sha512-t5mEhfEsYL4dlw/CLB2LUqsmRMJpyBiKC+m1E90zhZaeJa4FwL5zjC9ug2PDyJyZ/xO3KDAd/2/35dzSnsTfvw==", "requires": { - "fill-range": "npm:@clevercanyon/fill-range.fork@^7.0.10" + "fill-range": "npm:@clevercanyon/fill-range.fork@^7.0.11" } }, "browserslist": { @@ -13934,9 +13934,9 @@ } }, "caniuse-lite": { - "version": "1.0.30001448", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001448.tgz", - "integrity": "sha512-tq2YI+MJnooG96XpbTRYkBxLxklZPOdLmNIOdIhvf7SNJan6u5vCKum8iT7ZfCt70m1GPkuC7P3TtX6UuhupuA==", + "version": "1.0.30001449", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001449.tgz", + "integrity": "sha512-CPB+UL9XMT/Av+pJxCKGhdx+yg1hzplvFJQlJ2n68PyQGMz9L/E2zCyLdOL8uasbouTUgnPl+y0tccI/se+BEw==", "dev": true }, "cardinal": { @@ -15369,11 +15369,11 @@ "dev": true }, "fill-range": { - "version": "npm:@clevercanyon/fill-range.fork@7.0.10", - "resolved": "https://registry.npmjs.org/@clevercanyon/fill-range.fork/-/fill-range.fork-7.0.10.tgz", - "integrity": "sha512-DHGBICP8nP7mQnH0pxt6E1glPeEXU7r5s3ajmA7aHJtCCjDgPCPL5agWPRR43QZ2e5cx+Wbi0sAWkjwl+DU6bQ==", + "version": "npm:@clevercanyon/fill-range.fork@7.0.11", + "resolved": "https://registry.npmjs.org/@clevercanyon/fill-range.fork/-/fill-range.fork-7.0.11.tgz", + "integrity": "sha512-RKvTBRJYkstG9OlgtU7+QBF2OPx1S/jRKKFjriTGTapghxKrhwk/bxjgaG1ToRGTWyaHpZ89Y/0chpvVlocNdQ==", "requires": { - "to-regex-range": "npm:@clevercanyon/to-regex-range.fork@^5.0.10" + "to-regex-range": "npm:@clevercanyon/to-regex-range.fork@^5.0.11" } }, "find-up": { @@ -16097,9 +16097,9 @@ "dev": true }, "is-number": { - "version": "npm:@clevercanyon/is-number.fork@7.0.11", - "resolved": "https://registry.npmjs.org/@clevercanyon/is-number.fork/-/is-number.fork-7.0.11.tgz", - "integrity": "sha512-byic4aCd3NB1GTfPMrS+MEf4PSA88Cl/VbpSPytID1hiVThMuolrIfF+q/esC6k1Jr1U276p6MUHZZHrcGqnrQ==" + "version": "npm:@clevercanyon/is-number.fork@7.0.12", + "resolved": "https://registry.npmjs.org/@clevercanyon/is-number.fork/-/is-number.fork-7.0.12.tgz", + "integrity": "sha512-r4k4u3LalRcCqQI/KT1y+s/rnVmcSXSXfGAFQ+thURc+2zNxrsdF+1LhTuoCyvQrp//XQ82meS7/VvljqJLLZw==" }, "is-number-object": { "version": "1.0.7", @@ -16665,9 +16665,9 @@ "dev": true }, "mdast-util-from-markdown": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-1.2.0.tgz", - "integrity": "sha512-iZJyyvKD1+K7QX1b5jXdE7Sc5dtoTry1vzV28UZZe8Z1xVnB/czKntJ7ZAkG0tANqRnBF6p3p7GpU1y19DTf2Q==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-1.2.1.tgz", + "integrity": "sha512-ohufjqey2anuMhR1u4XD5ZstR8UJEj5Hrih4pn7xEb79HViqtDKVjqSBcChcUBH5XuIbh07WyM5cnXuKYSUpRA==", "dev": true, "requires": { "@types/mdast": "^3.0.0", @@ -16732,9 +16732,9 @@ } }, "merge-change": { - "version": "npm:@clevercanyon/merge-change.fork@1.8.18", - "resolved": "https://registry.npmjs.org/@clevercanyon/merge-change.fork/-/merge-change.fork-1.8.18.tgz", - "integrity": "sha512-cvuWNxB+4Zy6mrzV4p1QZd5CBfVLKZHJIQVUbCj0cUN+dqFYZGK2OhCvHYqo7AhTBWTsWdxv3N2jUuWaOGn5Pw==", + "version": "npm:@clevercanyon/merge-change.fork@1.8.19", + "resolved": "https://registry.npmjs.org/@clevercanyon/merge-change.fork/-/merge-change.fork-1.8.19.tgz", + "integrity": "sha512-9ywsF+TUx2AR96ye5w4GsW0LkYn9eDRVyO23oE6N+auQ/i9S6BQLBocDMKkH1aW+MJx+QqQdnv9IR6ARpwtZZQ==", "dev": true }, "merge-stream": { @@ -16983,12 +16983,12 @@ "dev": true }, "micromatch": { - "version": "npm:@clevercanyon/micromatch.fork@4.0.15", - "resolved": "https://registry.npmjs.org/@clevercanyon/micromatch.fork/-/micromatch.fork-4.0.15.tgz", - "integrity": "sha512-fIIJPCWlJdW2CAhQiSNpEhKZO+FwchF9TF0cl2A0Hy15JNko2OABgrOMEvnOYDLS0llNG6usgQ4CMIHnoTWnqg==", + "version": "npm:@clevercanyon/micromatch.fork@4.0.16", + "resolved": "https://registry.npmjs.org/@clevercanyon/micromatch.fork/-/micromatch.fork-4.0.16.tgz", + "integrity": "sha512-FXNYON7chSOe/4H5sN6f6zXt5Vc4mmFMLNcVtKWRqHOVAftkGxmnwLglziVbrOZeW+OhD/0qYnTLBwgfhbBruw==", "requires": { - "braces": "npm:@clevercanyon/braces.fork@^3.0.11", - "picomatch": "npm:@clevercanyon/picomatch.fork@^2.3.10" + "braces": "npm:@clevercanyon/braces.fork@^3.0.12", + "picomatch": "npm:@clevercanyon/picomatch.fork@^2.3.11" } }, "mime-db": { @@ -17566,9 +17566,9 @@ "dev": true }, "picomatch": { - "version": "npm:@clevercanyon/picomatch.fork@2.3.10", - "resolved": "https://registry.npmjs.org/@clevercanyon/picomatch.fork/-/picomatch.fork-2.3.10.tgz", - "integrity": "sha512-m31dwVwqn0/cnqH9ixPK7jCEqoDVIK/f/2n50VihxP1g4SmFYfC8jTBKcSW7zjJANrfSxah6LBQJtcuJP4BIYA==" + "version": "npm:@clevercanyon/picomatch.fork@2.3.11", + "resolved": "https://registry.npmjs.org/@clevercanyon/picomatch.fork/-/picomatch.fork-2.3.11.tgz", + "integrity": "sha512-WdMoID2q2njwRQLmIFfXNCAArFnagqiHbJ6y4H891MxBZn23zUc/lVFKvmxXjRDrEEx1sGYBAHEOaeNQd/UDqg==" }, "pify": { "version": "2.3.0", @@ -18602,9 +18602,9 @@ } }, "shescape": { - "version": "npm:@clevercanyon/shescape.fork@1.6.7", - "resolved": "https://registry.npmjs.org/@clevercanyon/shescape.fork/-/shescape.fork-1.6.7.tgz", - "integrity": "sha512-w8dJXdD/YohbKaqo8DYycLm7RhkDxphB2M3DIZre084M+zDhFS3HtoQf5iCQ/STx+1k7fpA2v1RhwTww8ySoJg==", + "version": "npm:@clevercanyon/shescape.fork@1.6.8", + "resolved": "https://registry.npmjs.org/@clevercanyon/shescape.fork/-/shescape.fork-1.6.8.tgz", + "integrity": "sha512-HtFFlnWzxW7sYMOIVHqM7IMRUqpVY1V68q8lsgVuvJ60zsCrJIDOZLZeH2UDTVUYSbOHTBwNKBV+9w8oBhO8LQ==", "dev": true, "requires": { "which": "^2.0.2" @@ -18667,9 +18667,9 @@ } }, "spawn-please": { - "version": "npm:@clevercanyon/spawn-please.fork@2.0.5", - "resolved": "https://registry.npmjs.org/@clevercanyon/spawn-please.fork/-/spawn-please.fork-2.0.5.tgz", - "integrity": "sha512-kRT10E384quwqEMKexJ5NAPO5ZP8yg8Bw8dwOv8E6kACvsWnROD6SPjKrHcXnwTsv/BDM7fIW4MXU8vU7nvq8A==", + "version": "npm:@clevercanyon/spawn-please.fork@2.0.6", + "resolved": "https://registry.npmjs.org/@clevercanyon/spawn-please.fork/-/spawn-please.fork-2.0.6.tgz", + "integrity": "sha512-fSl5sMb8L+uKmbAbD7xgYoVVPq2Mmdmy1CqhcV4N4p2GMIngnhTZW0EcOEpPCM83rgohGIVYhCoVAcg++VFklQ==", "dev": true, "requires": { "cross-spawn": "^7.0.3" @@ -19283,11 +19283,11 @@ } }, "to-regex-range": { - "version": "npm:@clevercanyon/to-regex-range.fork@5.0.10", - "resolved": "https://registry.npmjs.org/@clevercanyon/to-regex-range.fork/-/to-regex-range.fork-5.0.10.tgz", - "integrity": "sha512-lmLmkW7X8x3sOIoxBWfGA7IKcukcLZCpYId1rJK2+XTriUkolJdzUhJBZQfWaLIRln+EflOcUVQ7JQOo/+IoUA==", + "version": "npm:@clevercanyon/to-regex-range.fork@5.0.11", + "resolved": "https://registry.npmjs.org/@clevercanyon/to-regex-range.fork/-/to-regex-range.fork-5.0.11.tgz", + "integrity": "sha512-ZhTV9yGKkLxBTlrn+G1T6hvEEcgdxHLf2G04t/gXSztv300BqZkbK3Yl0ULNnfib95Z8XV2dI7zo2wBChk/ZBQ==", "requires": { - "is-number": "npm:@clevercanyon/is-number.fork@^7.0.11" + "is-number": "npm:@clevercanyon/is-number.fork@^7.0.12" } }, "tr46": { diff --git a/package.json b/package.json index b08e953b..4fec5fb1 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "publishConfig": { "access": "restricted" }, - "version": "1.0.78", + "version": "1.0.79", "license": "GPL-3.0-or-later", "name": "@clevercanyon/utilities", "description": "Another great project by Clever Canyon.", @@ -95,7 +95,7 @@ "ignore": "^5.2.4", "locutus": "^2.0.16", "lodash": "^4.17.21", - "micromatch": "npm:@clevercanyon/micromatch.fork@^4.0.15", + "micromatch": "npm:@clevercanyon/micromatch.fork@^4.0.16", "react": "^18.2.0", "react-dom": "^18.2.0" }, @@ -103,7 +103,7 @@ "optionalDependencies": {}, "bundleDependencies": [], "devDependencies": { - "@clevercanyon/skeleton-dev-deps": "^1.0.99", + "@clevercanyon/skeleton-dev-deps": "^1.0.100", "@cloudflare/workers-types": "^4.20230115.0", "@types/crypto-js": "^4.1.1", "@types/locutus": "^0.0.6",