@funish/basis 0.0.2 → 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/README.md +85 -50
  2. package/dist/chunks/config.cjs +1 -1
  3. package/dist/chunks/config.mjs +1 -1
  4. package/dist/chunks/git.cjs +1 -1
  5. package/dist/chunks/git.mjs +1 -1
  6. package/dist/chunks/init.cjs +1 -1
  7. package/dist/chunks/init.mjs +1 -1
  8. package/dist/chunks/lint.cjs +1 -1
  9. package/dist/chunks/lint.mjs +1 -1
  10. package/dist/chunks/publish.cjs +1 -1
  11. package/dist/chunks/publish.mjs +1 -1
  12. package/dist/chunks/version.cjs +1 -1
  13. package/dist/chunks/version.mjs +1 -1
  14. package/dist/cli.cjs +1 -1
  15. package/dist/cli.mjs +1 -1
  16. package/dist/index.cjs +1 -1
  17. package/dist/index.d.cts +26 -118
  18. package/dist/index.d.mts +26 -118
  19. package/dist/index.d.ts +26 -118
  20. package/dist/index.mjs +1 -1
  21. package/dist/shared/basis.Bar6V_OJ.cjs +10 -0
  22. package/dist/shared/basis.BzZ6Bs64.mjs +1 -0
  23. package/dist/shared/basis.C-dGsxlD.cjs +1 -0
  24. package/dist/shared/basis.CCjpKO-B.mjs +8 -0
  25. package/dist/shared/basis.CKFXZgQI.mjs +1 -0
  26. package/dist/shared/basis.DADpzLwA.cjs +3 -0
  27. package/dist/shared/basis.DEw91E2d.mjs +1 -0
  28. package/dist/shared/basis.DFb1F94b.mjs +3 -0
  29. package/dist/shared/basis.DVSF1f2D.cjs +8 -0
  30. package/dist/shared/basis.DfY4XEAb.cjs +1 -0
  31. package/dist/shared/basis.Dgo48zAG.cjs +1 -0
  32. package/dist/shared/basis.DzKnyliK.mjs +10 -0
  33. package/package.json +3 -1
  34. package/dist/shared/basis.BglwV-us.mjs +0 -1
  35. package/dist/shared/basis.Bhi6kSAJ.cjs +0 -1
  36. package/dist/shared/basis.BjS41bTE.cjs +0 -1
  37. package/dist/shared/basis.C7U9rUSl.mjs +0 -1
  38. package/dist/shared/basis.CASkqgVR.mjs +0 -1
  39. package/dist/shared/basis.D2srGCU3.cjs +0 -1
  40. package/dist/shared/basis.D3bv4yUV.mjs +0 -3
  41. package/dist/shared/basis.DHqql56x.mjs +0 -10
  42. package/dist/shared/basis.DXBdQ4nF.mjs +0 -1
  43. package/dist/shared/basis.DcyVtmjR.cjs +0 -1
  44. package/dist/shared/basis.FJWRn1Ix.cjs +0 -3
  45. package/dist/shared/basis.QoGvLLsN.cjs +0 -10
package/README.md CHANGED
@@ -4,7 +4,9 @@
4
4
  [![npm version](https://img.shields.io/npm/v/@funish/basis.svg)](https://www.npmjs.com/package/@funish/basis)
5
5
  [![npm downloads](https://img.shields.io/npm/dm/@funish/basis.svg)](https://www.npmjs.com/package/@funish/basis)
6
6
 
7
- > A unified development toolkit with CLI for package management, versioning, publishing, linting, and git hooks management for JavaScript/TypeScript projects, powered by [Funish](https://funish.net/).
7
+ > A unified development toolkit with CLI for package management, versioning, publishing, linting, and git hooks management for JavaScript/TypeScript projects.
8
+
9
+ **🧑‍💻 Contributing?** See the [monorepo documentation](https://github.com/funish/basis) for development setup and contribution guidelines.
8
10
 
9
11
  ## What is Basis?
10
12
 
@@ -57,9 +59,13 @@ pnpx @funish/basis init
57
59
  cd your-existing-project
58
60
  basis init
59
61
 
62
+ # Interactive setup will ask you to:
63
+ # 📁 Choose config format (.ts/.mjs/.cjs) - auto-detected based on your project
64
+ # 🔧 Optionally setup Git hooks and configuration
65
+
60
66
  # Your project now has:
61
- # ✅ basis.config.ts configuration file
62
- # ✅ Git hooks setup (auto-installed via package.json scripts)
67
+ # ✅ basis.config.[ts|mjs|cjs] configuration file (empty, ready to customize)
68
+ # ✅ Git hooks setup (if selected during init)
63
69
  # ✅ Tool-agnostic linting workflow
64
70
  # ✅ Package management through unified CLI
65
71
  # ✅ Version management with semantic versioning
@@ -184,11 +190,16 @@ basis git lint-commit
184
190
 
185
191
  ```bash
186
192
  # Initialize configuration
187
- basis init # Initialize basis configuration
193
+ basis init # Initialize basis configuration (interactive)
188
194
  basis init --force # Overwrite existing configuration
189
195
  basis init --skip-git-check # Skip git directory check
190
196
  basis init --skip-install # Skip dependency installation
191
197
 
198
+ # Interactive setup will:
199
+ # 1. Auto-detect recommended config format (.ts/.mjs/.cjs)
200
+ # 2. Ask you to choose your preferred format
201
+ # 3. Offer to setup Git hooks and configuration
202
+
192
203
  # Configuration
193
204
  basis config # Show current configuration
194
205
  basis config --json # Output configuration as JSON
@@ -201,7 +212,41 @@ basis <command> --help # Show command-specific help
201
212
 
202
213
  ## Configuration
203
214
 
204
- Basis uses a single configuration file for all its features:
215
+ Basis uses a single configuration file for all its features. The `basis init` command creates an empty configuration file in your preferred format:
216
+
217
+ ```ts
218
+ // basis.config.ts (TypeScript)
219
+ import { defineBasisConfig } from "@funish/basis";
220
+
221
+ export default defineBasisConfig({
222
+ // Configure your project here
223
+ // See: https://github.com/funish/basis/tree/main/packages/basis#configuration
224
+ });
225
+ ```
226
+
227
+ ```mjs
228
+ // basis.config.mjs (ES Module)
229
+ import { defineBasisConfig } from "@funish/basis";
230
+
231
+ export default defineBasisConfig({
232
+ // Configure your project here
233
+ // See: https://github.com/funish/basis/tree/main/packages/basis#configuration
234
+ });
235
+ ```
236
+
237
+ ```cjs
238
+ // basis.config.cjs (CommonJS)
239
+ const { defineBasisConfig } = require("@funish/basis");
240
+
241
+ module.exports = defineBasisConfig({
242
+ // Configure your project here
243
+ // See: https://github.com/funish/basis/tree/main/packages/basis#configuration
244
+ });
245
+ ```
246
+
247
+ ### Full Configuration Example
248
+
249
+ Here's a complete configuration with all available options:
205
250
 
206
251
  ```ts
207
252
  // basis.config.ts
@@ -212,14 +257,14 @@ export default defineBasisConfig({
212
257
  lint: {
213
258
  // Staged files linting patterns
214
259
  staged: {
215
- "*.{ts,tsx,js,jsx}": "eslint --fix",
216
- "*.{json,md,yml,yaml}": "prettier --write",
217
- "*.vue": "vue-tsc --noEmit && eslint --fix",
260
+ "*.{ts,tsx,js,jsx}": "pnpm eslint --fix",
261
+ "*.{json,md,yml,yaml}": "pnpm prettier --write",
262
+ "*.vue": "pnpm vue-tsc --noEmit && pnpm eslint --fix",
218
263
  },
219
264
  // Project-wide linting commands
220
265
  project: {
221
- typecheck: "tsc --noEmit",
222
- "format-check": "prettier --check .",
266
+ typecheck: "pnpm tsc --noEmit",
267
+ "format-check": "pnpm prettier --check .",
223
268
  },
224
269
  },
225
270
 
@@ -227,8 +272,8 @@ export default defineBasisConfig({
227
272
  git: {
228
273
  // Hook commands
229
274
  hooks: {
230
- "pre-commit": "basis lint --staged",
231
- "commit-msg": "basis git lint-commit",
275
+ "pre-commit": "pnpm basis lint --staged",
276
+ "commit-msg": "pnpm basis git lint-commit",
232
277
  },
233
278
 
234
279
  // Commit message validation
@@ -389,46 +434,36 @@ basis git hooks # Unified git hooks
389
434
  ## API
390
435
 
391
436
  ```ts
392
- import { createBasis, defineBasisConfig } from "@funish/basis";
393
-
394
- // Programmatic usage
437
+ import {
438
+ createBasis,
439
+ defineBasisConfig,
440
+ // Import module functions directly for maximum flexibility
441
+ init,
442
+ setupGit,
443
+ lintAll,
444
+ updatePackageVersion,
445
+ publishPackage,
446
+ } from "@funish/basis";
447
+
448
+ // Programmatic usage with Basis class (for config caching and workflows)
395
449
  const basis = createBasis(process.cwd());
396
450
 
397
- // Initialize configuration
398
- await basis.init({ force: false, skipGitCheck: false, skipInstall: false });
399
-
400
- // Package management
401
- await basis.installDependencies();
402
- await basis.addDependency("lodash");
403
- await basis.removeDependency("lodash");
404
- await basis.runScript("build");
405
-
406
- // Version management
407
- await basis.updateVersion({ patch: true });
408
- await basis.updateVersion({ version: "2.0.0" });
409
-
410
- // Publishing
411
- await basis.publishPackage({ stable: true });
412
- await basis.publishPackage({ tag: "beta" });
413
-
414
- // Linting
415
- await basis.lintStaged();
416
- await basis.lintProject();
417
- await basis.lintDependencies();
418
- await basis.lintStructure();
419
- await basis.lintDocs();
420
-
421
- // Git management
422
- await basis.setupGit(); // Setup everything
423
- await basis.setupGitConfig(); // Setup config only
424
- await basis.setupGitHooks(); // Setup hooks only
425
- await basis.removeGitHooks(); // Remove hooks (keep config)
426
- await basis.removeGitHooks(true); // Remove hooks + config file
427
- await basis.resetGitConfig(); // Reset config (keep user)
428
- await basis.resetGitConfig(false); // Reset config (remove all)
429
- await basis.resetGitConfig(true, true); // Reset + remove from config file
430
- await basis.initGitRepo(); // Initialize repository
431
- await basis.lintCommitMessage(); // Validate commit message
451
+ // High-level workflows
452
+ await basis.setup({ force: false, skipGitCheck: false, skipInstall: false }); // init + git setup
453
+ await basis.release({ patch: true }, { stable: true }); // lint + version + publish
454
+
455
+ // Configuration management
456
+ const config = await basis.getConfig(); // Cached config loading
457
+ await basis.reloadConfig(); // Force reload
458
+ basis.setCwd("/different/path"); // Change working directory
459
+
460
+ // Or use module functions directly for more control
461
+ const cwd = process.cwd();
462
+ await init(cwd, { force: true });
463
+ await setupGit(cwd);
464
+ await lintAll(cwd);
465
+ await updatePackageVersion(cwd, { patch: true });
466
+ await publishPackage(cwd, { stable: true });
432
467
  ```
433
468
 
434
469
  ## License
@@ -1 +1 @@
1
- "use strict";const citty=require("citty"),consola=require("consola"),utils=require("../shared/basis.DcyVtmjR.cjs");require("node:fs/promises"),require("c12"),require("../config.cjs");const config=citty.defineCommand({meta:{name:"config",description:"View current basis configuration"},args:{json:{type:"boolean",description:"Output configuration as JSON"},path:{type:"boolean",description:"Show configuration file path"}},async run({args:e}){try{const s=process.cwd(),{config:o,configFile:t}=await utils.loadConfig({cwd:s});if(e.path){t?consola.consola.info(`Configuration file: ${t}`):(consola.consola.warn("No configuration file found"),consola.consola.info("Run `basis init` to create one"));return}if(Object.keys(o).length===0){consola.consola.warn("No configuration found"),consola.consola.info("Run `basis init` to create a basis.config.ts file");return}if(e.json)consola.consola.log(JSON.stringify(o,null,2));else{if(consola.consola.info("Current basis configuration:"),t&&consola.consola.log(`\u{1F4C1} Config file: ${t}`),o.lint){if(consola.consola.log(""),consola.consola.log("\u{1F4DD} Lint:"),o.lint.staged){consola.consola.log(" Staged files:");for(const[n,i]of Object.entries(o.lint.staged))consola.consola.log(` ${n}: ${i}`)}if(o.lint.project){consola.consola.log(" Project:");for(const[n,i]of Object.entries(o.lint.project))consola.consola.log(` ${n}: ${i}`)}}if(o.git&&(consola.consola.log(""),consola.consola.log("\u{1F527} Git:"),o.git.commitMsg&&(consola.consola.log(" Commit message:"),o.git.commitMsg.types&&consola.consola.log(` Types: ${o.git.commitMsg.types.join(", ")}`),o.git.commitMsg.maxLength&&consola.consola.log(` Max length: ${o.git.commitMsg.maxLength}`),o.git.commitMsg.minLength&&consola.consola.log(` Min length: ${o.git.commitMsg.minLength}`)),o.git.hooks)){consola.consola.log(" Hooks:");for(const[n,i]of Object.entries(o.git.hooks))consola.consola.log(` ${n}: ${i}`)}}consola.consola.success("Configuration loaded successfully")}catch(s){consola.consola.error("Failed to load configuration:",s),process.exit(1)}}});exports.default=config;
1
+ "use strict";const citty=require("citty"),consola=require("consola"),utils=require("../shared/basis.DfY4XEAb.cjs");require("node:fs/promises"),require("c12"),require("../config.cjs");const config=citty.defineCommand({meta:{name:"config",description:"View current basis configuration"},args:{json:{type:"boolean",description:"Output configuration as JSON"},path:{type:"boolean",description:"Show configuration file path"}},async run({args:e}){try{const s=process.cwd(),{config:o,configFile:t}=await utils.loadConfig({cwd:s});if(e.path){t?consola.consola.info(`Configuration file: ${t}`):(consola.consola.warn("No configuration file found"),consola.consola.info("Run `basis init` to create one"));return}if(Object.keys(o).length===0){consola.consola.warn("No configuration found"),consola.consola.info("Run `basis init` to create a basis.config.ts file");return}if(e.json)consola.consola.log(JSON.stringify(o,null,2));else{if(consola.consola.info("Current basis configuration:"),t&&consola.consola.log(`\u{1F4C1} Config file: ${t}`),o.lint){if(consola.consola.log(""),consola.consola.log("\u{1F4DD} Lint:"),o.lint.staged){consola.consola.log(" Staged files:");for(const[n,i]of Object.entries(o.lint.staged))consola.consola.log(` ${n}: ${i}`)}if(o.lint.project){consola.consola.log(" Project:");for(const[n,i]of Object.entries(o.lint.project))consola.consola.log(` ${n}: ${i}`)}}if(o.git&&(consola.consola.log(""),consola.consola.log("\u{1F527} Git:"),o.git.commitMsg&&(consola.consola.log(" Commit message:"),o.git.commitMsg.types&&consola.consola.log(` Types: ${o.git.commitMsg.types.join(", ")}`),o.git.commitMsg.maxLength&&consola.consola.log(` Max length: ${o.git.commitMsg.maxLength}`),o.git.commitMsg.minLength&&consola.consola.log(` Min length: ${o.git.commitMsg.minLength}`)),o.git.hooks)){consola.consola.log(" Hooks:");for(const[n,i]of Object.entries(o.git.hooks))consola.consola.log(` ${n}: ${i}`)}}}catch(s){consola.consola.error("Failed to load configuration:",s),process.exit(1)}}});exports.default=config;
@@ -1 +1 @@
1
- import{defineCommand as r}from"citty";import{consola as o}from"consola";import{l as a}from"../shared/basis.C7U9rUSl.mjs";import"node:fs/promises";import"c12";import"../config.mjs";const c=r({meta:{name:"config",description:"View current basis configuration"},args:{json:{type:"boolean",description:"Output configuration as JSON"},path:{type:"boolean",description:"Show configuration file path"}},async run({args:s}){try{const g=process.cwd(),{config:i,configFile:e}=await a({cwd:g});if(s.path){e?o.info(`Configuration file: ${e}`):(o.warn("No configuration file found"),o.info("Run `basis init` to create one"));return}if(Object.keys(i).length===0){o.warn("No configuration found"),o.info("Run `basis init` to create a basis.config.ts file");return}if(s.json)o.log(JSON.stringify(i,null,2));else{if(o.info("Current basis configuration:"),e&&o.log(`\u{1F4C1} Config file: ${e}`),i.lint){if(o.log(""),o.log("\u{1F4DD} Lint:"),i.lint.staged){o.log(" Staged files:");for(const[t,n]of Object.entries(i.lint.staged))o.log(` ${t}: ${n}`)}if(i.lint.project){o.log(" Project:");for(const[t,n]of Object.entries(i.lint.project))o.log(` ${t}: ${n}`)}}if(i.git&&(o.log(""),o.log("\u{1F527} Git:"),i.git.commitMsg&&(o.log(" Commit message:"),i.git.commitMsg.types&&o.log(` Types: ${i.git.commitMsg.types.join(", ")}`),i.git.commitMsg.maxLength&&o.log(` Max length: ${i.git.commitMsg.maxLength}`),i.git.commitMsg.minLength&&o.log(` Min length: ${i.git.commitMsg.minLength}`)),i.git.hooks)){o.log(" Hooks:");for(const[t,n]of Object.entries(i.git.hooks))o.log(` ${t}: ${n}`)}}o.success("Configuration loaded successfully")}catch(g){o.error("Failed to load configuration:",g),process.exit(1)}}});export{c as default};
1
+ import{defineCommand as r}from"citty";import{consola as o}from"consola";import{l as a}from"../shared/basis.DEw91E2d.mjs";import"node:fs/promises";import"c12";import"../config.mjs";const f=r({meta:{name:"config",description:"View current basis configuration"},args:{json:{type:"boolean",description:"Output configuration as JSON"},path:{type:"boolean",description:"Show configuration file path"}},async run({args:s}){try{const g=process.cwd(),{config:i,configFile:e}=await a({cwd:g});if(s.path){e?o.info(`Configuration file: ${e}`):(o.warn("No configuration file found"),o.info("Run `basis init` to create one"));return}if(Object.keys(i).length===0){o.warn("No configuration found"),o.info("Run `basis init` to create a basis.config.ts file");return}if(s.json)o.log(JSON.stringify(i,null,2));else{if(o.info("Current basis configuration:"),e&&o.log(`\u{1F4C1} Config file: ${e}`),i.lint){if(o.log(""),o.log("\u{1F4DD} Lint:"),i.lint.staged){o.log(" Staged files:");for(const[t,n]of Object.entries(i.lint.staged))o.log(` ${t}: ${n}`)}if(i.lint.project){o.log(" Project:");for(const[t,n]of Object.entries(i.lint.project))o.log(` ${t}: ${n}`)}}if(i.git&&(o.log(""),o.log("\u{1F527} Git:"),i.git.commitMsg&&(o.log(" Commit message:"),i.git.commitMsg.types&&o.log(` Types: ${i.git.commitMsg.types.join(", ")}`),i.git.commitMsg.maxLength&&o.log(` Max length: ${i.git.commitMsg.maxLength}`),i.git.commitMsg.minLength&&o.log(` Min length: ${i.git.commitMsg.minLength}`)),i.git.hooks)){o.log(" Hooks:");for(const[t,n]of Object.entries(i.git.hooks))o.log(` ${t}: ${n}`)}}}catch(g){o.error("Failed to load configuration:",g),process.exit(1)}}});export{f as default};
@@ -1 +1 @@
1
- "use strict";const citty=require("citty"),consola=require("consola"),git$1=require("../shared/basis.QoGvLLsN.cjs");require("node:child_process"),require("node:fs/promises"),require("ini"),require("magicast"),require("pathe"),require("../shared/basis.DcyVtmjR.cjs"),require("c12"),require("../config.cjs");const git=citty.defineCommand({meta:{name:"git",description:"Git configuration and hooks management"},subCommands:{setup:citty.defineCommand({meta:{name:"setup",description:"Setup Git configuration and hooks"},async run(){const o=process.cwd();await git$1.setupGit(o)||process.exit(1)}}),config:citty.defineCommand({meta:{name:"config",description:"Setup Git configuration only"},async run(){const o=process.cwd();consola.consola.start("Setting up Git configuration..."),await git$1.setupGitConfig(o)?consola.consola.success("\u2705 Git configuration completed successfully!"):(consola.consola.error("\u274C Git configuration failed"),process.exit(1))}}),hooks:citty.defineCommand({meta:{name:"hooks",description:"Setup Git hooks only"},async run(){const o=process.cwd();consola.consola.start("Setting up Git hooks..."),await git$1.setupGitHooks(o)?consola.consola.success("\u2705 Git hooks setup completed successfully!"):(consola.consola.error("\u274C Git hooks setup failed"),process.exit(1))}}),remove:citty.defineCommand({meta:{name:"remove",description:"Remove Git hooks"},args:{hooks:{type:"positional",description:"Specific hook names to remove (optional)",required:!1},"update-config":{type:"boolean",description:"Also remove hooks configuration from basis.config.ts",default:!1}},async run({args:o}){const e=process.cwd();consola.consola.start("Removing Git hooks...");const s=o.hooks&&typeof o.hooks=="string"?[o.hooks]:Array.isArray(o.hooks)?o.hooks.filter(t=>typeof t=="string"):void 0,i=typeof o["update-config"]=="boolean"?o["update-config"]:!1;await git$1.removeGitHooks(e,s,{updateConfig:i})?consola.consola.success("\u2705 Git hooks removed successfully!"):(consola.consola.error("\u274C Git hooks removal failed"),process.exit(1))}}),reset:citty.defineCommand({meta:{name:"reset",description:"Reset Git configuration (keeps user info by default)"},args:{"keep-user":{type:"boolean",description:"Keep user information (name, email)",default:!0},"update-config":{type:"boolean",description:"Also remove git config from basis.config.ts",default:!1}},async run({args:o}){const e=process.cwd();consola.consola.start("Resetting Git configuration...");const s=typeof o["keep-user"]=="boolean"?o["keep-user"]:!0,i=typeof o["update-config"]=="boolean"?o["update-config"]:!1;await git$1.resetGitConfig(e,s,{updateConfig:i})?consola.consola.success("\u2705 Git configuration reset successfully!"):(consola.consola.error("\u274C Git configuration reset failed"),process.exit(1))}}),init:citty.defineCommand({meta:{name:"init",description:"Initialize Git repository with basis configuration"},async run(){const o=process.cwd();consola.consola.start("Initializing Git repository..."),await git$1.initGitRepo(o)?consola.consola.success("\u2705 Git repository initialized successfully!"):(consola.consola.error("\u274C Git initialization failed"),process.exit(1))}}),"lint-commit":citty.defineCommand({meta:{name:"lint-commit",description:"Validate commit message"},async run(){const o=process.cwd();consola.consola.start("Validating commit message..."),await git$1.lintCommitMessage(o)?consola.consola.success("\u2705 Commit message validation passed!"):(consola.consola.error("\u274C Commit message validation failed"),process.exit(1))}})},async run(){const o=process.cwd();await git$1.setupGit(o)||process.exit(1)}});exports.git=git;
1
+ "use strict";const citty=require("citty"),consola=require("consola"),git$1=require("../shared/basis.Bar6V_OJ.cjs");require("node:child_process"),require("node:fs/promises"),require("c12/update"),require("defu"),require("ini"),require("pathe"),require("../shared/basis.DfY4XEAb.cjs"),require("c12"),require("../config.cjs");const git=citty.defineCommand({meta:{name:"git",description:"Git configuration and hooks management"},subCommands:{setup:citty.defineCommand({meta:{name:"setup",description:"Setup Git configuration and hooks"},async run(){const e=process.cwd();await git$1.setupGit(e)||process.exit(1)}}),config:citty.defineCommand({meta:{name:"config",description:"Setup Git configuration only"},async run(){const e=process.cwd();await git$1.setupGitConfig(e)||(consola.consola.error("Git configuration failed"),process.exit(1))}}),hooks:citty.defineCommand({meta:{name:"hooks",description:"Setup Git hooks only"},async run(){const e=process.cwd();await git$1.setupGitHooks(e)||(consola.consola.error("Git hooks setup failed"),process.exit(1))}}),remove:citty.defineCommand({meta:{name:"remove",description:"Remove Git hooks"},args:{hooks:{type:"positional",description:"Specific hook names to remove (optional)",required:!1},"update-config":{type:"boolean",description:"Also remove hooks configuration from basis.config.ts",default:!1}},async run({args:e}){const o=process.cwd(),i=e.hooks&&typeof e.hooks=="string"?[e.hooks]:Array.isArray(e.hooks)?e.hooks.filter(t=>typeof t=="string"):void 0,s=typeof e["update-config"]=="boolean"?e["update-config"]:!1;await git$1.removeGitHooks(o,i,{updateConfig:s})||(consola.consola.error("Git hooks removal failed"),process.exit(1))}}),reset:citty.defineCommand({meta:{name:"reset",description:"Reset Git configuration (keeps user info by default)"},args:{"keep-user":{type:"boolean",description:"Keep user information (name, email)",default:!0},"update-config":{type:"boolean",description:"Also remove git config from basis.config.ts",default:!1}},async run({args:e}){const o=process.cwd(),i=typeof e["keep-user"]=="boolean"?e["keep-user"]:!0,s=typeof e["update-config"]=="boolean"?e["update-config"]:!1;await git$1.resetGitConfig(o,i,{updateConfig:s})||(consola.consola.error("Git configuration reset failed"),process.exit(1))}}),init:citty.defineCommand({meta:{name:"init",description:"Initialize Git repository with basis configuration"},async run(){const e=process.cwd();await git$1.initGitRepo(e)||(consola.consola.error("Git initialization failed"),process.exit(1))}}),"lint-commit":citty.defineCommand({meta:{name:"lint-commit",description:"Validate commit message"},async run(){const e=process.cwd();await git$1.lintCommitMessage(e)||(consola.consola.error("Commit message validation failed"),process.exit(1))}})},async run(){const e=process.cwd();await git$1.setupGit(e)||process.exit(1)}});exports.git=git;
@@ -1 +1 @@
1
- import{defineCommand as t}from"citty";import{consola as e}from"consola";import{b as n,l as c,i as p,c as u,r as m,s as f,a as l}from"../shared/basis.DHqql56x.mjs";import"node:child_process";import"node:fs/promises";import"ini";import"magicast";import"pathe";import"../shared/basis.C7U9rUSl.mjs";import"c12";import"../config.mjs";const d=t({meta:{name:"git",description:"Git configuration and hooks management"},subCommands:{setup:t({meta:{name:"setup",description:"Setup Git configuration and hooks"},async run(){const o=process.cwd();await n(o)||process.exit(1)}}),config:t({meta:{name:"config",description:"Setup Git configuration only"},async run(){const o=process.cwd();e.start("Setting up Git configuration..."),await l(o)?e.success("\u2705 Git configuration completed successfully!"):(e.error("\u274C Git configuration failed"),process.exit(1))}}),hooks:t({meta:{name:"hooks",description:"Setup Git hooks only"},async run(){const o=process.cwd();e.start("Setting up Git hooks..."),await f(o)?e.success("\u2705 Git hooks setup completed successfully!"):(e.error("\u274C Git hooks setup failed"),process.exit(1))}}),remove:t({meta:{name:"remove",description:"Remove Git hooks"},args:{hooks:{type:"positional",description:"Specific hook names to remove (optional)",required:!1},"update-config":{type:"boolean",description:"Also remove hooks configuration from basis.config.ts",default:!1}},async run({args:o}){const i=process.cwd();e.start("Removing Git hooks...");const s=o.hooks&&typeof o.hooks=="string"?[o.hooks]:Array.isArray(o.hooks)?o.hooks.filter(r=>typeof r=="string"):void 0,a=typeof o["update-config"]=="boolean"?o["update-config"]:!1;await m(i,s,{updateConfig:a})?e.success("\u2705 Git hooks removed successfully!"):(e.error("\u274C Git hooks removal failed"),process.exit(1))}}),reset:t({meta:{name:"reset",description:"Reset Git configuration (keeps user info by default)"},args:{"keep-user":{type:"boolean",description:"Keep user information (name, email)",default:!0},"update-config":{type:"boolean",description:"Also remove git config from basis.config.ts",default:!1}},async run({args:o}){const i=process.cwd();e.start("Resetting Git configuration...");const s=typeof o["keep-user"]=="boolean"?o["keep-user"]:!0,a=typeof o["update-config"]=="boolean"?o["update-config"]:!1;await u(i,s,{updateConfig:a})?e.success("\u2705 Git configuration reset successfully!"):(e.error("\u274C Git configuration reset failed"),process.exit(1))}}),init:t({meta:{name:"init",description:"Initialize Git repository with basis configuration"},async run(){const o=process.cwd();e.start("Initializing Git repository..."),await p(o)?e.success("\u2705 Git repository initialized successfully!"):(e.error("\u274C Git initialization failed"),process.exit(1))}}),"lint-commit":t({meta:{name:"lint-commit",description:"Validate commit message"},async run(){const o=process.cwd();e.start("Validating commit message..."),await c(o)?e.success("\u2705 Commit message validation passed!"):(e.error("\u274C Commit message validation failed"),process.exit(1))}})},async run(){const o=process.cwd();await n(o)||process.exit(1)}});export{d as git};
1
+ import{defineCommand as e}from"citty";import{consola as i}from"consola";import{s as r,l as c,i as p,b as m,d as f,c as d,a as u}from"../shared/basis.DzKnyliK.mjs";import"node:child_process";import"node:fs/promises";import"c12/update";import"defu";import"ini";import"pathe";import"../shared/basis.DEw91E2d.mjs";import"c12";import"../config.mjs";const l=e({meta:{name:"git",description:"Git configuration and hooks management"},subCommands:{setup:e({meta:{name:"setup",description:"Setup Git configuration and hooks"},async run(){const o=process.cwd();await r(o)||process.exit(1)}}),config:e({meta:{name:"config",description:"Setup Git configuration only"},async run(){const o=process.cwd();await u(o)||(i.error("Git configuration failed"),process.exit(1))}}),hooks:e({meta:{name:"hooks",description:"Setup Git hooks only"},async run(){const o=process.cwd();await d(o)||(i.error("Git hooks setup failed"),process.exit(1))}}),remove:e({meta:{name:"remove",description:"Remove Git hooks"},args:{hooks:{type:"positional",description:"Specific hook names to remove (optional)",required:!1},"update-config":{type:"boolean",description:"Also remove hooks configuration from basis.config.ts",default:!1}},async run({args:o}){const t=process.cwd(),s=o.hooks&&typeof o.hooks=="string"?[o.hooks]:Array.isArray(o.hooks)?o.hooks.filter(n=>typeof n=="string"):void 0,a=typeof o["update-config"]=="boolean"?o["update-config"]:!1;await f(t,s,{updateConfig:a})||(i.error("Git hooks removal failed"),process.exit(1))}}),reset:e({meta:{name:"reset",description:"Reset Git configuration (keeps user info by default)"},args:{"keep-user":{type:"boolean",description:"Keep user information (name, email)",default:!0},"update-config":{type:"boolean",description:"Also remove git config from basis.config.ts",default:!1}},async run({args:o}){const t=process.cwd(),s=typeof o["keep-user"]=="boolean"?o["keep-user"]:!0,a=typeof o["update-config"]=="boolean"?o["update-config"]:!1;await m(t,s,{updateConfig:a})||(i.error("Git configuration reset failed"),process.exit(1))}}),init:e({meta:{name:"init",description:"Initialize Git repository with basis configuration"},async run(){const o=process.cwd();await p(o)||(i.error("Git initialization failed"),process.exit(1))}}),"lint-commit":e({meta:{name:"lint-commit",description:"Validate commit message"},async run(){const o=process.cwd();await c(o)||(i.error("Commit message validation failed"),process.exit(1))}})},async run(){const o=process.cwd();await r(o)||process.exit(1)}});export{l as git};
@@ -1 +1 @@
1
- "use strict";const citty=require("citty"),consola=require("consola"),init$1=require("../shared/basis.D2srGCU3.cjs");require("node:fs/promises"),require("magicast"),require("nypm"),require("pathe"),require("pkg-types"),require("../shared/basis.DcyVtmjR.cjs"),require("c12"),require("../config.cjs");const init=citty.defineCommand({meta:{name:"init",description:"Initialize basis configuration"},args:{force:{type:"boolean",alias:"f",description:"Overwrite existing configuration"},"skip-git-check":{type:"boolean",description:"Skip git directory check"},"skip-install":{type:"boolean",description:"Skip showing install command"}},async run({args:i}){try{await init$1.init(process.cwd(),{force:i.force,skipGitCheck:i["skip-git-check"],skipInstall:i["skip-install"]})}catch(e){consola.consola.error("Init failed:",e),process.exit(1)}}});exports.default=init;
1
+ "use strict";const citty=require("citty"),consola=require("consola"),init$1=require("../shared/basis.DVSF1f2D.cjs");require("c12/update"),require("magicast"),require("nypm"),require("pathe"),require("pkg-types"),require("../shared/basis.DfY4XEAb.cjs"),require("node:fs/promises"),require("c12"),require("../config.cjs"),require("../shared/basis.Bar6V_OJ.cjs"),require("node:child_process"),require("defu"),require("ini");const init=citty.defineCommand({meta:{name:"init",description:"Initialize basis configuration"},args:{force:{type:"boolean",alias:"f",description:"Overwrite existing configuration"},"skip-git-check":{type:"boolean",description:"Skip git directory check"},"skip-install":{type:"boolean",description:"Skip dependency installation"}},async run({args:e}){try{await init$1.init(process.cwd(),{force:e.force,skipGitCheck:e["skip-git-check"],skipInstall:e["skip-install"]})}catch(i){consola.consola.error("Init failed:",i),process.exit(1)}}});exports.default=init;
@@ -1 +1 @@
1
- import{defineCommand as o}from"citty";import{consola as r}from"consola";import{i as e}from"../shared/basis.DXBdQ4nF.mjs";import"node:fs/promises";import"magicast";import"nypm";import"pathe";import"pkg-types";import"../shared/basis.C7U9rUSl.mjs";import"c12";import"../config.mjs";const n=o({meta:{name:"init",description:"Initialize basis configuration"},args:{force:{type:"boolean",alias:"f",description:"Overwrite existing configuration"},"skip-git-check":{type:"boolean",description:"Skip git directory check"},"skip-install":{type:"boolean",description:"Skip showing install command"}},async run({args:i}){try{await e(process.cwd(),{force:i.force,skipGitCheck:i["skip-git-check"],skipInstall:i["skip-install"]})}catch(t){r.error("Init failed:",t),process.exit(1)}}});export{n as default};
1
+ import{defineCommand as o}from"citty";import{consola as r}from"consola";import{i as e}from"../shared/basis.CCjpKO-B.mjs";import"c12/update";import"magicast";import"nypm";import"pathe";import"pkg-types";import"../shared/basis.DEw91E2d.mjs";import"node:fs/promises";import"c12";import"../config.mjs";import"../shared/basis.DzKnyliK.mjs";import"node:child_process";import"defu";import"ini";const p=o({meta:{name:"init",description:"Initialize basis configuration"},args:{force:{type:"boolean",alias:"f",description:"Overwrite existing configuration"},"skip-git-check":{type:"boolean",description:"Skip git directory check"},"skip-install":{type:"boolean",description:"Skip dependency installation"}},async run({args:i}){try{await e(process.cwd(),{force:i.force,skipGitCheck:i["skip-git-check"],skipInstall:i["skip-install"]})}catch(t){r.error("Init failed:",t),process.exit(1)}}});export{p as default};
@@ -1 +1 @@
1
- "use strict";const citty=require("citty"),consola=require("consola"),lint$1=require("../shared/basis.FJWRn1Ix.cjs");require("node:child_process"),require("node:fs/promises"),require("micromatch"),require("nypm"),require("pathe"),require("pkg-types"),require("../shared/basis.DcyVtmjR.cjs"),require("c12"),require("../config.cjs");const lint=citty.defineCommand({meta:{name:"lint",description:"Run comprehensive project linting and quality checks"},args:{staged:{type:"boolean",description:"Lint only staged files using configured commands",default:!1},project:{type:"boolean",description:"Run project-wide lint commands",default:!1},deps:{type:"boolean",description:"Check dependencies (outdated, security, blocked packages)",default:!1},structure:{type:"boolean",description:"Check project structure (required files/dirs, naming conventions)",default:!1},docs:{type:"boolean",description:"Check documentation (README, CHANGELOG)",default:!1},all:{type:"boolean",description:"Run all lint checks",default:!1}},async run({args:e}){const s=process.cwd();let c=!0;if(!e.staged&&!e.project&&!e.deps&&!e.structure&&!e.docs&&!e.all&&(e.staged=!0),e.all)c=await lint$1.lintAll(s);else{const t=[];e.staged&&t.push(()=>lint$1.lintStaged(s)),e.project&&t.push(()=>lint$1.lintProject(s)),e.deps&&t.push(()=>lint$1.lintDependencies(s)),e.structure&&t.push(()=>lint$1.lintStructure(s)),e.docs&&t.push(()=>lint$1.lintDocs(s));for(const i of t)await i()||(c=!1)}c?(consola.consola.success("\u2705 All lint checks completed successfully!"),process.exit(0)):(consola.consola.error("\u274C Some lint checks failed"),process.exit(1))}});exports.lint=lint;
1
+ "use strict";const citty=require("citty"),consola=require("consola"),lint$1=require("../shared/basis.DADpzLwA.cjs");require("node:child_process"),require("fast-glob"),require("micromatch"),require("nypm"),require("pathe"),require("pkg-types"),require("../shared/basis.DfY4XEAb.cjs"),require("node:fs/promises"),require("c12"),require("../config.cjs");const lint=citty.defineCommand({meta:{name:"lint",description:"Run comprehensive project linting and quality checks"},args:{staged:{type:"boolean",description:"Lint only staged files using configured commands",default:!1},project:{type:"boolean",description:"Run project-wide lint commands",default:!1},deps:{type:"boolean",description:"Check dependencies (outdated, security, blocked packages)",default:!1},structure:{type:"boolean",description:"Check project structure (required files/dirs, naming conventions)",default:!1},docs:{type:"boolean",description:"Check documentation (README, CHANGELOG)",default:!1},all:{type:"boolean",description:"Run all lint checks",default:!1}},async run({args:e}){const t=process.cwd();let i=!0;if(!e.staged&&!e.project&&!e.deps&&!e.structure&&!e.docs&&!e.all&&(e.staged=!0),e.all)i=await lint$1.lintAll(t);else{const s=[];e.staged&&s.push(()=>lint$1.lintStaged(t)),e.project&&s.push(()=>lint$1.lintProject(t)),e.deps&&s.push(()=>lint$1.lintDependencies(t)),e.structure&&s.push(()=>lint$1.lintStructure(t)),e.docs&&s.push(()=>lint$1.lintDocs(t));for(const r of s)await r()||(i=!1)}i||(consola.consola.error("Some lint checks failed"),process.exit(1))}});exports.lint=lint;
@@ -1 +1 @@
1
- import{defineCommand as n}from"citty";import{consola as i}from"consola";import{e as r,l as a,a as l,b as p,c as d,d as u}from"../shared/basis.D3bv4yUV.mjs";import"node:child_process";import"node:fs/promises";import"micromatch";import"nypm";import"pathe";import"pkg-types";import"../shared/basis.C7U9rUSl.mjs";import"c12";import"../config.mjs";const m=n({meta:{name:"lint",description:"Run comprehensive project linting and quality checks"},args:{staged:{type:"boolean",description:"Lint only staged files using configured commands",default:!1},project:{type:"boolean",description:"Run project-wide lint commands",default:!1},deps:{type:"boolean",description:"Check dependencies (outdated, security, blocked packages)",default:!1},structure:{type:"boolean",description:"Check project structure (required files/dirs, naming conventions)",default:!1},docs:{type:"boolean",description:"Check documentation (README, CHANGELOG)",default:!1},all:{type:"boolean",description:"Run all lint checks",default:!1}},async run({args:e}){const t=process.cwd();let o=!0;if(!e.staged&&!e.project&&!e.deps&&!e.structure&&!e.docs&&!e.all&&(e.staged=!0),e.all)o=await r(t);else{const s=[];e.staged&&s.push(()=>a(t)),e.project&&s.push(()=>l(t)),e.deps&&s.push(()=>p(t)),e.structure&&s.push(()=>d(t)),e.docs&&s.push(()=>u(t));for(const c of s)await c()||(o=!1)}o?(i.success("\u2705 All lint checks completed successfully!"),process.exit(0)):(i.error("\u274C Some lint checks failed"),process.exit(1))}});export{m as lint};
1
+ import{defineCommand as n}from"citty";import{consola as r}from"consola";import{l as a,b as c,c as l,d as p,e as d,f as u}from"../shared/basis.DFb1F94b.mjs";import"node:child_process";import"fast-glob";import"micromatch";import"nypm";import"pathe";import"pkg-types";import"../shared/basis.DEw91E2d.mjs";import"node:fs/promises";import"c12";import"../config.mjs";const m=n({meta:{name:"lint",description:"Run comprehensive project linting and quality checks"},args:{staged:{type:"boolean",description:"Lint only staged files using configured commands",default:!1},project:{type:"boolean",description:"Run project-wide lint commands",default:!1},deps:{type:"boolean",description:"Check dependencies (outdated, security, blocked packages)",default:!1},structure:{type:"boolean",description:"Check project structure (required files/dirs, naming conventions)",default:!1},docs:{type:"boolean",description:"Check documentation (README, CHANGELOG)",default:!1},all:{type:"boolean",description:"Run all lint checks",default:!1}},async run({args:t}){const e=process.cwd();let s=!0;if(!t.staged&&!t.project&&!t.deps&&!t.structure&&!t.docs&&!t.all&&(t.staged=!0),t.all)s=await a(e);else{const o=[];t.staged&&o.push(()=>c(e)),t.project&&o.push(()=>l(e)),t.deps&&o.push(()=>p(e)),t.structure&&o.push(()=>d(e)),t.docs&&o.push(()=>u(e));for(const i of o)await i()||(s=!1)}s||(r.error("Some lint checks failed"),process.exit(1))}});export{m as lint};
@@ -1 +1 @@
1
- "use strict";const citty=require("citty"),consola=require("consola"),publish$1=require("../shared/basis.Bhi6kSAJ.cjs");require("node:child_process"),require("nypm"),require("pkg-types"),require("semver"),require("../shared/basis.DcyVtmjR.cjs"),require("node:fs/promises"),require("c12"),require("../config.cjs");const publish=citty.defineCommand({meta:{name:"publish",description:"Publish package to npm registry"},args:{tag:{type:"string",description:"Specific npm tag to publish to",alias:"t"},stable:{type:"boolean",description:"Publish as stable release (latest tag)",alias:"s"},latest:{type:"boolean",description:"Publish to latest tag",alias:"l"},dryRun:{type:"boolean",description:"Perform a dry run without actually publishing",alias:"d"},access:{type:"string",description:"Package access level (public/private)",alias:"a"},registry:{type:"string",description:"NPM registry URL",alias:"r"},skipBuild:{type:"boolean",description:"Skip build step"},skipTests:{type:"boolean",description:"Skip test step"}},async run({args:e}){try{const i=process.cwd(),t={tag:e.tag,stable:e.stable,latest:e.latest,dryRun:e.dryRun,access:e.access,registry:e.registry,skipBuild:e.skipBuild,skipTests:e.skipTests},s=await publish$1.publishPackage(i,t);s.dryRun?consola.consola.success("Dry run completed successfully"):consola.consola.success(`Published ${s.packageName}@${s.version} to ${s.publishTag}`)}catch(i){consola.consola.error("Failed to publish:",i),process.exit(1)}}});exports.default=publish;
1
+ "use strict";const citty=require("citty"),consola=require("consola"),publish$1=require("../shared/basis.Dgo48zAG.cjs");require("node:child_process"),require("nypm"),require("pkg-types"),require("semver"),require("../shared/basis.DfY4XEAb.cjs"),require("node:fs/promises"),require("c12"),require("../config.cjs");const publish=citty.defineCommand({meta:{name:"publish",description:"Publish package to npm registry"},args:{tag:{type:"string",description:"Specific npm tag to publish to",alias:"t"},stable:{type:"boolean",description:"Publish as stable release (latest tag)",alias:"s"},latest:{type:"boolean",description:"Publish to latest tag",alias:"l"},dryRun:{type:"boolean",description:"Perform a dry run without actually publishing",alias:"d"},access:{type:"string",description:"Package access level (public/private)",alias:"a"},registry:{type:"string",description:"NPM registry URL",alias:"r"},skipBuild:{type:"boolean",description:"Skip build step"},skipTests:{type:"boolean",description:"Skip test step"}},async run({args:e}){try{const i=process.cwd(),t={tag:e.tag,stable:e.stable,latest:e.latest,dryRun:e.dryRun,access:e.access,registry:e.registry,skipBuild:e.skipBuild,skipTests:e.skipTests},s=await publish$1.publishPackage(i,t);s.dryRun?consola.consola.success("Dry run completed successfully"):consola.consola.success(`Published ${s.packageName}@${s.version} to ${s.publishTag}`)}catch(i){consola.consola.error("Failed to publish:",i),process.exit(1)}}});exports.default=publish;
@@ -1 +1 @@
1
- import{defineCommand as r}from"citty";import{consola as i}from"consola";import{p}from"../shared/basis.BglwV-us.mjs";import"node:child_process";import"nypm";import"pkg-types";import"semver";import"../shared/basis.C7U9rUSl.mjs";import"node:fs/promises";import"c12";import"../config.mjs";const o=r({meta:{name:"publish",description:"Publish package to npm registry"},args:{tag:{type:"string",description:"Specific npm tag to publish to",alias:"t"},stable:{type:"boolean",description:"Publish as stable release (latest tag)",alias:"s"},latest:{type:"boolean",description:"Publish to latest tag",alias:"l"},dryRun:{type:"boolean",description:"Perform a dry run without actually publishing",alias:"d"},access:{type:"string",description:"Package access level (public/private)",alias:"a"},registry:{type:"string",description:"NPM registry URL",alias:"r"},skipBuild:{type:"boolean",description:"Skip build step"},skipTests:{type:"boolean",description:"Skip test step"}},async run({args:t}){try{const e=process.cwd(),a={tag:t.tag,stable:t.stable,latest:t.latest,dryRun:t.dryRun,access:t.access,registry:t.registry,skipBuild:t.skipBuild,skipTests:t.skipTests},s=await p(e,a);s.dryRun?i.success("Dry run completed successfully"):i.success(`Published ${s.packageName}@${s.version} to ${s.publishTag}`)}catch(e){i.error("Failed to publish:",e),process.exit(1)}}});export{o as default};
1
+ import{defineCommand as r}from"citty";import{consola as i}from"consola";import{p}from"../shared/basis.CKFXZgQI.mjs";import"node:child_process";import"nypm";import"pkg-types";import"semver";import"../shared/basis.DEw91E2d.mjs";import"node:fs/promises";import"c12";import"../config.mjs";const o=r({meta:{name:"publish",description:"Publish package to npm registry"},args:{tag:{type:"string",description:"Specific npm tag to publish to",alias:"t"},stable:{type:"boolean",description:"Publish as stable release (latest tag)",alias:"s"},latest:{type:"boolean",description:"Publish to latest tag",alias:"l"},dryRun:{type:"boolean",description:"Perform a dry run without actually publishing",alias:"d"},access:{type:"string",description:"Package access level (public/private)",alias:"a"},registry:{type:"string",description:"NPM registry URL",alias:"r"},skipBuild:{type:"boolean",description:"Skip build step"},skipTests:{type:"boolean",description:"Skip test step"}},async run({args:t}){try{const e=process.cwd(),a={tag:t.tag,stable:t.stable,latest:t.latest,dryRun:t.dryRun,access:t.access,registry:t.registry,skipBuild:t.skipBuild,skipTests:t.skipTests},s=await p(e,a);s.dryRun?i.success("Dry run completed successfully"):i.success(`Published ${s.packageName}@${s.version} to ${s.publishTag}`)}catch(e){i.error("Failed to publish:",e),process.exit(1)}}});export{o as default};
@@ -1 +1 @@
1
- "use strict";const citty=require("citty"),consola=require("consola"),g=require("semver"),version$1=require("../shared/basis.BjS41bTE.cjs");require("node:child_process"),require("pkg-types"),require("../shared/basis.DcyVtmjR.cjs"),require("node:fs/promises"),require("c12"),require("../config.cjs");function _interopDefaultCompat(e){return e&&typeof e=="object"&&"default"in e?e.default:e}const g__default=_interopDefaultCompat(g),version=citty.defineCommand({meta:{name:"version",description:"Update package version"},args:{version:{type:"positional",description:"Version to set (patch, minor, major, prerelease, or specific version like 1.2.3)",required:!1},preid:{type:"string",description:"Prerelease identifier (alpha, beta, rc)"},tag:{type:"string",description:"Git tag name"},message:{type:"string",description:"Commit message template",alias:"m"}},async run({args:e}){try{const i=process.cwd(),r=e.version,o={preid:e.preid,message:e.message,tag:e.tag};r&&(["patch","minor","major","prerelease"].includes(r)?o[r]=!0:g__default.valid(r)?o.version=r:(consola.consola.error(`Invalid version argument: ${r}`),consola.consola.info("Valid options: patch, minor, major, prerelease, or specific version (e.g., 1.2.3)"),process.exit(1)));const s=await version$1.updatePackageVersion(i,o);consola.consola.success(`Version updated: ${s.oldVersion} \u2192 ${s.newVersion}`),s.tagName&&consola.consola.info(`Git tag created: ${s.tagName}`)}catch(i){consola.consola.error("Failed to update version:",i),process.exit(1)}}});exports.default=version;
1
+ "use strict";const citty=require("citty"),consola=require("consola"),n=require("semver"),version$1=require("../shared/basis.C-dGsxlD.cjs");require("node:child_process"),require("pkg-types"),require("../shared/basis.DfY4XEAb.cjs"),require("node:fs/promises"),require("c12"),require("../config.cjs");function _interopDefaultCompat(e){return e&&typeof e=="object"&&"default"in e?e.default:e}const n__default=_interopDefaultCompat(n),version=citty.defineCommand({meta:{name:"version",description:"Update package version"},args:{version:{type:"positional",description:"Version to set (patch, minor, major, prerelease, or specific version like 1.2.3)",required:!1},preid:{type:"string",description:"Prerelease identifier (alpha, beta, rc)"},tag:{type:"string",description:"Git tag name"},message:{type:"string",description:"Commit message template",alias:"m"}},async run({args:e}){try{const i=process.cwd(),r=e.version,o={preid:e.preid,message:e.message,tag:e.tag};r&&(["patch","minor","major","prerelease"].includes(r)?o[r]=!0:n__default.valid(r)?o.version=r:(consola.consola.error(`Invalid version argument: ${r}`),consola.consola.info("Valid options: patch, minor, major, prerelease, or specific version (e.g., 1.2.3)"),process.exit(1)));const s=await version$1.updatePackageVersion(i,o);consola.consola.success(`Version updated: ${s.oldVersion} \u2192 ${s.newVersion}`),s.tagName&&consola.consola.info(`Git tag created: ${s.tagName}`)}catch(i){consola.consola.error("Failed to update version:",i),process.exit(1)}}});exports.default=version;
@@ -1 +1 @@
1
- import{defineCommand as a}from"citty";import{consola as r}from"consola";import n from"semver";import{u as p}from"../shared/basis.CASkqgVR.mjs";import"node:child_process";import"pkg-types";import"../shared/basis.C7U9rUSl.mjs";import"node:fs/promises";import"c12";import"../config.mjs";const m=a({meta:{name:"version",description:"Update package version"},args:{version:{type:"positional",description:"Version to set (patch, minor, major, prerelease, or specific version like 1.2.3)",required:!1},preid:{type:"string",description:"Prerelease identifier (alpha, beta, rc)"},tag:{type:"string",description:"Git tag name"},message:{type:"string",description:"Commit message template",alias:"m"}},async run({args:i}){try{const s=process.cwd(),e=i.version,t={preid:i.preid,message:i.message,tag:i.tag};e&&(["patch","minor","major","prerelease"].includes(e)?t[e]=!0:n.valid(e)?t.version=e:(r.error(`Invalid version argument: ${e}`),r.info("Valid options: patch, minor, major, prerelease, or specific version (e.g., 1.2.3)"),process.exit(1)));const o=await p(s,t);r.success(`Version updated: ${o.oldVersion} \u2192 ${o.newVersion}`),o.tagName&&r.info(`Git tag created: ${o.tagName}`)}catch(s){r.error("Failed to update version:",s),process.exit(1)}}});export{m as default};
1
+ import{defineCommand as a}from"citty";import{consola as r}from"consola";import n from"semver";import{u as p}from"../shared/basis.BzZ6Bs64.mjs";import"node:child_process";import"pkg-types";import"../shared/basis.DEw91E2d.mjs";import"node:fs/promises";import"c12";import"../config.mjs";const m=a({meta:{name:"version",description:"Update package version"},args:{version:{type:"positional",description:"Version to set (patch, minor, major, prerelease, or specific version like 1.2.3)",required:!1},preid:{type:"string",description:"Prerelease identifier (alpha, beta, rc)"},tag:{type:"string",description:"Git tag name"},message:{type:"string",description:"Commit message template",alias:"m"}},async run({args:i}){try{const s=process.cwd(),e=i.version,t={preid:i.preid,message:i.message,tag:i.tag};e&&(["patch","minor","major","prerelease"].includes(e)?t[e]=!0:n.valid(e)?t.version=e:(r.error(`Invalid version argument: ${e}`),r.info("Valid options: patch, minor, major, prerelease, or specific version (e.g., 1.2.3)"),process.exit(1)));const o=await p(s,t);r.success(`Version updated: ${o.oldVersion} \u2192 ${o.newVersion}`),o.tagName&&r.info(`Git tag created: ${o.tagName}`)}catch(s){r.error("Failed to update version:",s),process.exit(1)}}});export{m as default};
package/dist/cli.cjs CHANGED
@@ -1,2 +1,2 @@
1
1
  #!/usr/bin/env node
2
- "use strict";const citty=require("citty"),consola=require("consola"),pkgTypes=require("pkg-types");async function m(){const e=await pkgTypes.readPackageJSON(),n=citty.defineCommand({meta:{name:"basis",version:e.version||"",description:e.description||""},subCommands:{init:()=>import("./chunks/init.cjs").then(t=>t.default),config:()=>import("./chunks/config.cjs").then(t=>t.default),lint:()=>import("./chunks/lint.cjs").then(t=>t.lint),git:()=>import("./chunks/git.cjs").then(t=>t.git),install:()=>import("./chunks/install.cjs").then(t=>t.default),i:()=>import("./chunks/install.cjs").then(t=>t.default),add:()=>import("./chunks/add.cjs").then(t=>t.default),remove:()=>import("./chunks/remove.cjs").then(t=>t.default),rm:()=>import("./chunks/remove.cjs").then(t=>t.default),uninstall:()=>import("./chunks/remove.cjs").then(t=>t.default),run:()=>import("./chunks/run.cjs").then(t=>t.default),version:()=>import("./chunks/version.cjs").then(t=>t.default),publish:()=>import("./chunks/publish.cjs").then(t=>t.default)}});await citty.runMain(n)}m().catch(consola.consola.error);
2
+ "use strict";const citty=require("citty"),consola=require("consola"),pkgTypes=require("pkg-types");var _documentCurrentScript=typeof document<"u"?document.currentScript:null;async function m(){const e=await pkgTypes.readPackageJSON(typeof document>"u"?require("url").pathToFileURL(__filename).href:_documentCurrentScript&&_documentCurrentScript.tagName.toUpperCase()==="SCRIPT"&&_documentCurrentScript.src||new URL("cli.cjs",document.baseURI).href),n=citty.defineCommand({meta:{name:"basis",version:e.version||"",description:e.description||""},subCommands:{init:()=>import("./chunks/init.cjs").then(t=>t.default),config:()=>import("./chunks/config.cjs").then(t=>t.default),lint:()=>import("./chunks/lint.cjs").then(t=>t.lint),git:()=>import("./chunks/git.cjs").then(t=>t.git),install:()=>import("./chunks/install.cjs").then(t=>t.default),i:()=>import("./chunks/install.cjs").then(t=>t.default),add:()=>import("./chunks/add.cjs").then(t=>t.default),remove:()=>import("./chunks/remove.cjs").then(t=>t.default),rm:()=>import("./chunks/remove.cjs").then(t=>t.default),uninstall:()=>import("./chunks/remove.cjs").then(t=>t.default),run:()=>import("./chunks/run.cjs").then(t=>t.default),version:()=>import("./chunks/version.cjs").then(t=>t.default),publish:()=>import("./chunks/publish.cjs").then(t=>t.default)}});await citty.runMain(n)}m().catch(consola.consola.error);
package/dist/cli.mjs CHANGED
@@ -1,2 +1,2 @@
1
1
  #!/usr/bin/env node
2
- import{defineCommand as e,runMain as o}from"citty";import{consola as r}from"consola";import{readPackageJSON as a}from"pkg-types";async function m(){const i=await a(),n=e({meta:{name:"basis",version:i.version||"",description:i.description||""},subCommands:{init:()=>import("./chunks/init.mjs").then(t=>t.default),config:()=>import("./chunks/config.mjs").then(t=>t.default),lint:()=>import("./chunks/lint.mjs").then(t=>t.lint),git:()=>import("./chunks/git.mjs").then(t=>t.git),install:()=>import("./chunks/install.mjs").then(t=>t.default),i:()=>import("./chunks/install.mjs").then(t=>t.default),add:()=>import("./chunks/add.mjs").then(t=>t.default),remove:()=>import("./chunks/remove.mjs").then(t=>t.default),rm:()=>import("./chunks/remove.mjs").then(t=>t.default),uninstall:()=>import("./chunks/remove.mjs").then(t=>t.default),run:()=>import("./chunks/run.mjs").then(t=>t.default),version:()=>import("./chunks/version.mjs").then(t=>t.default),publish:()=>import("./chunks/publish.mjs").then(t=>t.default)}});await o(n)}m().catch(r.error);
2
+ import{defineCommand as n,runMain as o}from"citty";import{consola as r}from"consola";import{readPackageJSON as a}from"pkg-types";async function m(){const i=await a(import.meta.url),e=n({meta:{name:"basis",version:i.version||"",description:i.description||""},subCommands:{init:()=>import("./chunks/init.mjs").then(t=>t.default),config:()=>import("./chunks/config.mjs").then(t=>t.default),lint:()=>import("./chunks/lint.mjs").then(t=>t.lint),git:()=>import("./chunks/git.mjs").then(t=>t.git),install:()=>import("./chunks/install.mjs").then(t=>t.default),i:()=>import("./chunks/install.mjs").then(t=>t.default),add:()=>import("./chunks/add.mjs").then(t=>t.default),remove:()=>import("./chunks/remove.mjs").then(t=>t.default),rm:()=>import("./chunks/remove.mjs").then(t=>t.default),uninstall:()=>import("./chunks/remove.mjs").then(t=>t.default),run:()=>import("./chunks/run.mjs").then(t=>t.default),version:()=>import("./chunks/version.mjs").then(t=>t.default),publish:()=>import("./chunks/publish.mjs").then(t=>t.default)}});await o(e)}m().catch(r.error);
package/dist/index.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";const config=require("./config.cjs"),git=require("./shared/basis.QoGvLLsN.cjs"),init=require("./shared/basis.D2srGCU3.cjs"),lint=require("./shared/basis.FJWRn1Ix.cjs"),publish=require("./shared/basis.Bhi6kSAJ.cjs"),version=require("./shared/basis.BjS41bTE.cjs"),utils=require("./shared/basis.DcyVtmjR.cjs");require("node:child_process"),require("node:fs/promises"),require("consola"),require("ini"),require("magicast"),require("pathe"),require("nypm"),require("pkg-types"),require("micromatch"),require("semver"),require("c12");class Basis{config=null;cwd;constructor(t=process.cwd()){this.cwd=t}async getConfig(){if(!this.config){const{config:t}=await utils.loadConfig({cwd:this.cwd});this.config=t}return this.config}async init(t={}){return await init.init(this.cwd,t)}async lintStaged(){const t=await this.getConfig();return await lint.lintStaged(this.cwd,t.lint?.staged)}async lintProject(){const t=await this.getConfig();return await lint.lintProject(this.cwd,t.lint?.project)}async lintDependencies(){const t=await this.getConfig();return await lint.lintDependencies(this.cwd,t.lint?.dependencies)}async lintStructure(){const t=await this.getConfig();return await lint.lintStructure(this.cwd,t.lint?.structure)}async lintDocs(){const t=await this.getConfig();return await lint.lintDocs(this.cwd,t.lint?.docs)}async lintAll(){return await lint.lintAll(this.cwd)}async lintCommitMessage(){const t=await this.getConfig();return await git.lintCommitMessage(this.cwd,t.git?.commitMsg)}async setupGitHooks(){const t=await this.getConfig();return await git.setupGitHooks(this.cwd,t.git?.hooks)}async setupGitConfig(){const t=await this.getConfig();return await git.setupGitConfig(this.cwd,t.git?.config)}async setupGit(){return await git.setupGit(this.cwd)}async initGitRepo(){return await git.initGitRepo(this.cwd)}async removeGitHooks(t=!1){return await git.removeGitHooks(this.cwd,void 0,{updateConfig:t})}async resetGitConfig(t=!0,e=!1){return await git.resetGitConfig(this.cwd,t,{updateConfig:e})}async updateVersion(t={}){return await version.updatePackageVersion(this.cwd,t)}async setVersion(t){return await version.updatePackageVersion(this.cwd,{version:t})}async patchVersion(){return await version.updatePackageVersion(this.cwd,{})}async minorVersion(){return await version.updatePackageVersion(this.cwd,{minor:!0})}async majorVersion(){return await version.updatePackageVersion(this.cwd,{major:!0})}async prereleaseVersion(t){return await version.updatePackageVersion(this.cwd,{prerelease:!0,preid:t})}async publish(t={}){return await publish.publishPackage(this.cwd,t)}async publishDryRun(t={}){return await publish.publishPackage(this.cwd,{...t,dryRun:!0})}async publishToTag(t,e={}){return await publish.publishPackage(this.cwd,{...e,tag:t})}async publishStable(t={}){return await publish.publishPackage(this.cwd,{...t,stable:!0})}getCwd(){return this.cwd}setCwd(t){this.cwd=t,this.config=null}async reloadConfig(){return this.config=null,await this.getConfig()}async setup(t={}){return await this.init(t)?await this.setupGit():!1}async release(t={},e={}){if(!await this.lintAll())throw new Error("Lint checks failed. Fix issues before releasing.");const s=await this.updateVersion(t),r=await this.publish(e);return{version:s,publish:r}}}function createBasis(i=process.cwd()){return new Basis(i)}const VALID_GIT_HOOKS=["applypatch-msg","pre-applypatch","post-applypatch","pre-commit","pre-merge-commit","prepare-commit-msg","commit-msg","post-commit","pre-rebase","post-checkout","post-merge","pre-push","pre-receive","update","proc-receive","post-receive","post-update","reference-transaction","push-to-checkout","pre-auto-gc","post-rewrite","sendemail-validate","fsmonitor-watchman","p4-changelist","p4-prepare-changelist","p4-post-changelist","p4-pre-submit","post-index-change"];exports.defaultConfig=config.defaultConfig,exports.defineBasisConfig=config.defineBasisConfig,exports.initGitRepo=git.initGitRepo,exports.lintCommitMessage=git.lintCommitMessage,exports.parseCommitMessage=git.parseCommitMessage,exports.readGitConfig=git.readGitConfig,exports.removeGitHooks=git.removeGitHooks,exports.resetGitConfig=git.resetGitConfig,exports.setupGit=git.setupGit,exports.setupGitConfig=git.setupGitConfig,exports.setupGitHooks=git.setupGitHooks,exports.validateCommitMessage=git.validateCommitMessage,exports.writeGitConfig=git.writeGitConfig,exports.createMinimalConfig=init.createMinimalConfig,exports.init=init.init,exports.previewBasisConfig=init.previewBasisConfig,exports.getProjectFiles=lint.getProjectFiles,exports.getStagedFiles=lint.getStagedFiles,exports.lintAll=lint.lintAll,exports.lintDependencies=lint.lintDependencies,exports.lintDocs=lint.lintDocs,exports.lintProject=lint.lintProject,exports.lintStaged=lint.lintStaged,exports.lintStructure=lint.lintStructure,exports.publishPackage=publish.publishPackage,exports.updatePackageVersion=version.updatePackageVersion,exports.fileExists=utils.fileExists,exports.loadConfig=utils.loadConfig,exports.Basis=Basis,exports.VALID_GIT_HOOKS=VALID_GIT_HOOKS,exports.createBasis=createBasis;
1
+ "use strict";const config=require("./config.cjs"),git=require("./shared/basis.Bar6V_OJ.cjs"),init=require("./shared/basis.DVSF1f2D.cjs"),lint=require("./shared/basis.DADpzLwA.cjs"),publish=require("./shared/basis.Dgo48zAG.cjs"),version=require("./shared/basis.C-dGsxlD.cjs"),utils=require("./shared/basis.DfY4XEAb.cjs");require("node:child_process"),require("node:fs/promises"),require("c12/update"),require("consola"),require("defu"),require("ini"),require("pathe"),require("magicast"),require("nypm"),require("pkg-types"),require("fast-glob"),require("micromatch"),require("semver"),require("c12");class Basis{config=null;cwd;constructor(e=process.cwd()){this.cwd=e}getCwd(){return this.cwd}setCwd(e){this.cwd=e,this.config=null}async getConfig(){if(!this.config){const{config:e}=await utils.loadConfig({cwd:this.cwd});this.config=e}return this.config}async reloadConfig(){return this.config=null,await this.getConfig()}async setup(e={}){return await init.init(this.cwd,e)?await git.setupGit(this.cwd):!1}async release(e={},s={}){if(!await lint.lintAll(this.cwd))throw new Error("Lint checks failed. Fix issues before releasing.");const i=await version.updatePackageVersion(this.cwd,e),r=await publish.publishPackage(this.cwd,s);return{version:i,publish:r}}}function createBasis(t=process.cwd()){return new Basis(t)}const VALID_GIT_HOOKS=["applypatch-msg","pre-applypatch","post-applypatch","pre-commit","pre-merge-commit","prepare-commit-msg","commit-msg","post-commit","pre-rebase","post-checkout","post-merge","pre-push","pre-receive","update","proc-receive","post-receive","post-update","reference-transaction","push-to-checkout","pre-auto-gc","post-rewrite","sendemail-validate","fsmonitor-watchman","p4-changelist","p4-prepare-changelist","p4-post-changelist","p4-pre-submit","post-index-change"];exports.defaultConfig=config.defaultConfig,exports.defineBasisConfig=config.defineBasisConfig,exports.initGitRepo=git.initGitRepo,exports.lintCommitMessage=git.lintCommitMessage,exports.parseCommitMessage=git.parseCommitMessage,exports.readGitConfig=git.readGitConfig,exports.removeGitHooks=git.removeGitHooks,exports.resetGitConfig=git.resetGitConfig,exports.setupGit=git.setupGit,exports.setupGitConfig=git.setupGitConfig,exports.setupGitHooks=git.setupGitHooks,exports.validateCommitMessage=git.validateCommitMessage,exports.writeGitConfig=git.writeGitConfig,exports.init=init.init,exports.getProjectFiles=lint.getProjectFiles,exports.getStagedFiles=lint.getStagedFiles,exports.lintAll=lint.lintAll,exports.lintDependencies=lint.lintDependencies,exports.lintDocs=lint.lintDocs,exports.lintProject=lint.lintProject,exports.lintStaged=lint.lintStaged,exports.lintStructure=lint.lintStructure,exports.publishPackage=publish.publishPackage,exports.updatePackageVersion=version.updatePackageVersion,exports.fileExists=utils.fileExists,exports.getPackageManagerCommands=utils.getPackageManagerCommands,exports.loadConfig=utils.loadConfig,exports.Basis=Basis,exports.VALID_GIT_HOOKS=VALID_GIT_HOOKS,exports.createBasis=createBasis;
package/dist/index.d.cts CHANGED
@@ -1,120 +1,28 @@
1
- import { B as BasisConfig, I as InitOptions, V as VersionOptions, a as VersionUpdateResult, P as PublishOptions, b as PublishResult, C as CommitMessage, G as GitConfig, c as GitConfigData, L as LintConfig } from './shared/basis.BvLeB_5F.cjs';
1
+ import { B as BasisConfig, I as InitOptions, V as VersionOptions, P as PublishOptions, a as VersionUpdateResult, b as PublishResult, C as CommitMessage, G as GitConfig, c as GitConfigData, L as LintConfig } from './shared/basis.BvLeB_5F.cjs';
2
2
  export { f as CommitMsgConfig, j as GitConfigSection, i as GitConfigValue, k as PackageManagerConfig, m as PublishConfig, g as VALID_GIT_HOOKS, h as ValidGitHook, l as VersionConfig, e as defaultConfig, d as defineBasisConfig } from './shared/basis.BvLeB_5F.cjs';
3
3
  import * as c12 from 'c12';
4
4
  import { LoadConfigOptions } from 'c12';
5
5
 
6
+ /**
7
+ * Basis core utilities for programmatic usage
8
+ * Only includes methods that provide actual value beyond simple function calls
9
+ */
6
10
  declare class Basis {
7
11
  private config;
8
12
  private cwd;
9
13
  constructor(cwd?: string);
10
- /**
11
- * Load configuration from file or cache
12
- */
13
- getConfig(): Promise<BasisConfig>;
14
- /**
15
- * Initialize basis configuration in a project
16
- */
17
- init(options?: InitOptions): Promise<boolean>;
18
- /**
19
- * Run linting for staged files
20
- */
21
- lintStaged(): Promise<boolean>;
22
- /**
23
- * Run linting for entire project
24
- */
25
- lintProject(): Promise<boolean>;
26
- /**
27
- * Check project dependencies
28
- */
29
- lintDependencies(): Promise<boolean>;
30
- /**
31
- * Check project structure
32
- */
33
- lintStructure(): Promise<boolean>;
34
- /**
35
- * Check project documentation
36
- */
37
- lintDocs(): Promise<boolean>;
38
- /**
39
- * Run all lint checks
40
- */
41
- lintAll(): Promise<boolean>;
42
- /**
43
- * Validate commit message
44
- */
45
- lintCommitMessage(): Promise<boolean>;
46
- /**
47
- * Setup Git hooks
48
- */
49
- setupGitHooks(): Promise<boolean>;
50
- /**
51
- * Setup Git configuration
52
- */
53
- setupGitConfig(): Promise<boolean>;
54
- /**
55
- * Setup complete Git configuration (hooks + config)
56
- */
57
- setupGit(): Promise<boolean>;
58
- /**
59
- * Initialize Git repository with basis configuration
60
- */
61
- initGitRepo(): Promise<boolean>;
62
- /**
63
- * Remove Git hooks
64
- */
65
- removeGitHooks(updateConfig?: boolean): Promise<boolean>;
66
- /**
67
- * Reset Git configuration
68
- */
69
- resetGitConfig(keepUser?: boolean, updateConfig?: boolean): Promise<boolean>;
70
- /**
71
- * Update package version
72
- */
73
- updateVersion(options?: VersionOptions): Promise<VersionUpdateResult>;
74
- /**
75
- * Update to specific version
76
- */
77
- setVersion(version: string): Promise<VersionUpdateResult>;
78
- /**
79
- * Increment patch version
80
- */
81
- patchVersion(): Promise<VersionUpdateResult>;
82
- /**
83
- * Increment minor version
84
- */
85
- minorVersion(): Promise<VersionUpdateResult>;
86
- /**
87
- * Increment major version
88
- */
89
- majorVersion(): Promise<VersionUpdateResult>;
90
- /**
91
- * Create prerelease version
92
- */
93
- prereleaseVersion(preid?: string): Promise<VersionUpdateResult>;
94
- /**
95
- * Publish package to registry
96
- */
97
- publish(options?: PublishOptions): Promise<PublishResult>;
98
- /**
99
- * Publish with dry run
100
- */
101
- publishDryRun(options?: PublishOptions): Promise<PublishResult>;
102
- /**
103
- * Publish to specific tag
104
- */
105
- publishToTag(tag: string, options?: PublishOptions): Promise<PublishResult>;
106
- /**
107
- * Publish as stable release (latest tag)
108
- */
109
- publishStable(options?: PublishOptions): Promise<PublishResult>;
110
14
  /**
111
15
  * Get current working directory
112
16
  */
113
17
  getCwd(): string;
114
18
  /**
115
- * Set working directory
19
+ * Set working directory and reset cached config
116
20
  */
117
21
  setCwd(cwd: string): void;
22
+ /**
23
+ * Load configuration from file or cache
24
+ */
25
+ getConfig(): Promise<BasisConfig>;
118
26
  /**
119
27
  * Reload configuration from file
120
28
  */
@@ -174,7 +82,7 @@ declare function resetGitConfig(cwd?: string, keepUser?: boolean, options?: {
174
82
  */
175
83
  declare function setupGitHooks(cwd?: string, config?: GitConfig["hooks"]): Promise<boolean>;
176
84
  /**
177
- * Initialize Git repository with basis configuration
85
+ * Initialize Git repository
178
86
  */
179
87
  declare function initGitRepo(cwd?: string): Promise<boolean>;
180
88
  /**
@@ -192,26 +100,13 @@ declare function removeGitHooks(cwd?: string, hooksToRemove?: string[], options?
192
100
  * Initialize basis configuration in the current project
193
101
  */
194
102
  declare function init(cwd?: string, options?: InitOptions): Promise<boolean>;
195
- /**
196
- * Preview generated configuration
197
- */
198
- declare function previewBasisConfig(options?: {
199
- enableStagedLinting?: boolean;
200
- enableCommitMsgLinting?: boolean;
201
- customLintPatterns?: string[];
202
- customExcludePatterns?: string[];
203
- }): string;
204
- /**
205
- * Create minimal configuration for quick setup
206
- */
207
- declare function createMinimalConfig(): string;
208
103
 
209
104
  /**
210
105
  * Get staged files (only existing files, not deleted ones)
211
106
  */
212
107
  declare function getStagedFiles(): string[];
213
108
  /**
214
- * Get all project files based on patterns
109
+ * Get all project files based on patterns using fast-glob
215
110
  */
216
111
  declare function getProjectFiles(cwd: string, patterns?: string[], exclude?: string[]): Promise<string[]>;
217
112
  /**
@@ -254,5 +149,18 @@ declare function loadConfig(options?: LoadConfigOptions<BasisConfig>): Promise<c
254
149
  * Check if file or directory exists
255
150
  */
256
151
  declare function fileExists(path: string): Promise<boolean>;
152
+ /**
153
+ * Get package manager specific commands
154
+ */
155
+ declare function getPackageManagerCommands(packageManager: string): {
156
+ outdated: string;
157
+ audit: string;
158
+ } | {
159
+ outdated: string;
160
+ audit: null;
161
+ } | {
162
+ outdated: null;
163
+ audit: null;
164
+ };
257
165
 
258
- export { Basis, BasisConfig, CommitMessage, GitConfig, GitConfigData, InitOptions, LintConfig, PublishOptions, PublishResult, VersionOptions, VersionUpdateResult, createBasis, createMinimalConfig, fileExists, getProjectFiles, getStagedFiles, init, initGitRepo, lintAll, lintCommitMessage, lintDependencies, lintDocs, lintProject, lintStaged, lintStructure, loadConfig, parseCommitMessage, previewBasisConfig, publishPackage, readGitConfig, removeGitHooks, resetGitConfig, setupGit, setupGitConfig, setupGitHooks, updatePackageVersion, validateCommitMessage, writeGitConfig };
166
+ export { Basis, BasisConfig, CommitMessage, GitConfig, GitConfigData, InitOptions, LintConfig, PublishOptions, PublishResult, VersionOptions, VersionUpdateResult, createBasis, fileExists, getPackageManagerCommands, getProjectFiles, getStagedFiles, init, initGitRepo, lintAll, lintCommitMessage, lintDependencies, lintDocs, lintProject, lintStaged, lintStructure, loadConfig, parseCommitMessage, publishPackage, readGitConfig, removeGitHooks, resetGitConfig, setupGit, setupGitConfig, setupGitHooks, updatePackageVersion, validateCommitMessage, writeGitConfig };