diff --git a/README.md b/README.md index e54e8c3..23b419b 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,3 @@ -## Is Number +# @clevercanyon/is-number.fork This is a fork of the original [is-number](https://www.npmjs.com/package/is-number) on NPM. This fork has been modified to remove reliance on Node built-ins, such as: `util`, `path`, `process`. diff --git a/dev/.files/bin/envs.mjs b/dev/.files/bin/envs.mjs index 7fbf936..06e1bfc 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 0175082..4141711 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 7cf41c9..fe1dc1c 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 b18717e..7f9aa51 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 96c77f7..ee4cf0a 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 ff1cfe2..2c1666c 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 c688c42..b3d1261 100644 --- a/package-lock.json +++ b/package-lock.json @@ -17,7 +17,7 @@ "linux" ], "devDependencies": { - "@clevercanyon/skeleton-dev-deps": "^1.0.99" + "@clevercanyon/skeleton-dev-deps": "^1.0.100" }, "engines": { "node": "^19.2.0 || ^19.4.0", @@ -146,9 +146,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" @@ -164,8 +164,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": { @@ -180,9 +180,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" @@ -193,8 +193,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", @@ -230,8 +230,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", @@ -245,8 +245,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", @@ -3266,9 +3266,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": [ { @@ -6961,9 +6961,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", @@ -11592,9 +11592,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", @@ -11602,19 +11602,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", @@ -11650,8 +11650,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", @@ -11665,8 +11665,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", @@ -13773,9 +13773,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": { @@ -16492,9 +16492,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", diff --git a/package.json b/package.json index fe4d1dc..7ebe7ac 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "publishConfig": { "access": "public" }, - "version": "7.0.11", + "version": "7.0.12", "license": "MIT", "name": "@clevercanyon/is-number.fork", "description": "Returns true if a number or string value is a finite number.", @@ -40,7 +40,7 @@ "optionalDependencies": {}, "bundleDependencies": [], "devDependencies": { - "@clevercanyon/skeleton-dev-deps": "^1.0.99" + "@clevercanyon/skeleton-dev-deps": "^1.0.100" }, "overrides": {}, "workspaces": [],