@funish/basis 0.0.1 → 0.0.2

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 (56) hide show
  1. package/README.md +70 -24
  2. package/dist/chunks/config.cjs +1 -1
  3. package/dist/chunks/config.mjs +1 -1
  4. package/dist/chunks/git.cjs +1 -0
  5. package/dist/chunks/git.mjs +1 -0
  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/config.cjs +1 -1
  17. package/dist/config.d.cts +1 -1
  18. package/dist/config.d.mts +1 -1
  19. package/dist/config.d.ts +1 -1
  20. package/dist/config.mjs +1 -1
  21. package/dist/index.cjs +1 -1
  22. package/dist/index.d.cts +193 -24
  23. package/dist/index.d.mts +193 -24
  24. package/dist/index.d.ts +193 -24
  25. package/dist/index.mjs +1 -1
  26. package/dist/shared/{basis.dc3ybBoz.mjs → basis.BglwV-us.mjs} +1 -1
  27. package/dist/shared/{basis.CgpyxNW3.cjs → basis.Bhi6kSAJ.cjs} +1 -1
  28. package/dist/shared/basis.BjS41bTE.cjs +1 -0
  29. package/dist/shared/basis.BvLeB_5F.d.cts +253 -0
  30. package/dist/shared/basis.BvLeB_5F.d.mts +253 -0
  31. package/dist/shared/basis.BvLeB_5F.d.ts +253 -0
  32. package/dist/shared/basis.C7U9rUSl.mjs +1 -0
  33. package/dist/shared/basis.CASkqgVR.mjs +1 -0
  34. package/dist/shared/basis.D2srGCU3.cjs +1 -0
  35. package/dist/shared/basis.D3bv4yUV.mjs +3 -0
  36. package/dist/shared/basis.DHqql56x.mjs +10 -0
  37. package/dist/shared/basis.DXBdQ4nF.mjs +1 -0
  38. package/dist/shared/basis.DcyVtmjR.cjs +1 -0
  39. package/dist/shared/basis.FJWRn1Ix.cjs +3 -0
  40. package/dist/shared/basis.QoGvLLsN.cjs +10 -0
  41. package/package.json +5 -3
  42. package/dist/chunks/githooks.cjs +0 -1
  43. package/dist/chunks/githooks.mjs +0 -1
  44. package/dist/shared/basis.ByJ8R9TE.cjs +0 -1
  45. package/dist/shared/basis.C0E7mwQ6.mjs +0 -1
  46. package/dist/shared/basis.C5wlo6IO.mjs +0 -1
  47. package/dist/shared/basis.CBZIV3-V.mjs +0 -19
  48. package/dist/shared/basis.CSSuyvpq.cjs +0 -1
  49. package/dist/shared/basis.D57HxVvD.cjs +0 -4
  50. package/dist/shared/basis.DeKfEQsQ.cjs +0 -5
  51. package/dist/shared/basis.DweCjqFb.cjs +0 -19
  52. package/dist/shared/basis.O4so-uuj.mjs +0 -5
  53. package/dist/shared/basis.iRZ1Ylu8.d.cts +0 -127
  54. package/dist/shared/basis.iRZ1Ylu8.d.mts +0 -127
  55. package/dist/shared/basis.iRZ1Ylu8.d.ts +0 -127
  56. package/dist/shared/basis.rDVxD7qf.mjs +0 -4
package/README.md CHANGED
@@ -135,21 +135,49 @@ basis publish --skip-build --skip-tests
135
135
  # Lint staged files
136
136
  basis lint --staged
137
137
 
138
- # Validate commit message
139
- basis lint --commit-msg
138
+ # Run project-wide linting
139
+ basis lint --project
140
+
141
+ # Check dependencies
142
+ basis lint --deps
143
+
144
+ # Check project structure
145
+ basis lint --structure
146
+
147
+ # Check documentation
148
+ basis lint --docs
149
+
150
+ # Run all lint checks
151
+ basis lint --all
140
152
  ```
141
153
 
142
154
  ### Git Hooks Management
143
155
 
144
156
  ```bash
145
- # Install git hooks
146
- basis githooks install
147
- basis githooks install --auto-init-git # Auto-initialize git if needed
148
- basis githooks install --force # Force installation
149
-
150
- # Manage hooks
151
- basis githooks uninstall # Remove git hooks
152
- basis githooks list # List configured hooks
157
+ # Setup git configuration and hooks
158
+ basis git setup
159
+
160
+ # Setup git configuration only
161
+ basis git config
162
+
163
+ # Setup git hooks only
164
+ basis git hooks
165
+
166
+ # Remove git hooks
167
+ basis git remove # Remove all basis-managed hooks
168
+ basis git remove pre-commit # Remove specific hook
169
+ basis git remove --update-config # Remove hooks AND config from basis.config.ts
170
+
171
+ # Reset git configuration
172
+ basis git reset # Reset config (keep user info)
173
+ basis git reset --no-keep-user # Reset config (remove user info)
174
+ basis git reset --update-config # Reset config AND remove from basis.config.ts
175
+
176
+ # Initialize git repository with basis configuration
177
+ basis git init
178
+
179
+ # Validate commit message
180
+ basis git lint-commit
153
181
  ```
154
182
 
155
183
  ### Project Management
@@ -188,6 +216,21 @@ export default defineBasisConfig({
188
216
  "*.{json,md,yml,yaml}": "prettier --write",
189
217
  "*.vue": "vue-tsc --noEmit && eslint --fix",
190
218
  },
219
+ // Project-wide linting commands
220
+ project: {
221
+ typecheck: "tsc --noEmit",
222
+ "format-check": "prettier --check .",
223
+ },
224
+ },
225
+
226
+ // Git configuration
227
+ git: {
228
+ // Hook commands
229
+ hooks: {
230
+ "pre-commit": "basis lint --staged",
231
+ "commit-msg": "basis git lint-commit",
232
+ },
233
+
191
234
  // Commit message validation
192
235
  commitMsg: {
193
236
  types: [
@@ -207,13 +250,6 @@ export default defineBasisConfig({
207
250
  scopeRequired: false,
208
251
  allowedScopes: ["api", "ui", "core"],
209
252
  },
210
- },
211
-
212
- // Git hooks configuration
213
- githooks: {
214
- // Hook commands
215
- "pre-commit": "basis lint --staged",
216
- "commit-msg": "basis lint --commit-msg",
217
253
 
218
254
  // Options
219
255
  autoInitGit: true, // Auto-initialize git repo if not found
@@ -347,7 +383,7 @@ basis add package # Unified package management
347
383
  basis version patch # Unified version management
348
384
  basis publish --tag beta # Unified publishing
349
385
  basis lint --staged # Unified linting
350
- basis githooks install # Unified git hooks
386
+ basis git hooks # Unified git hooks
351
387
  ```
352
388
 
353
389
  ## API
@@ -377,12 +413,22 @@ await basis.publishPackage({ tag: "beta" });
377
413
 
378
414
  // Linting
379
415
  await basis.lintStaged();
380
- await basis.lintCommitMessage();
381
-
382
- // Git hooks
383
- await basis.installHooks();
384
- await basis.uninstallHooks();
385
- await basis.listHooks();
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
386
432
  ```
387
433
 
388
434
  ## License
@@ -1 +1 @@
1
- "use strict";const citty=require("citty"),consola=require("consola"),utils=require("../shared/basis.CSSuyvpq.cjs");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 i=process.cwd(),{config:o,configFile:n}=await utils.loadConfig({cwd:i});if(e.path){n?consola.consola.info(`Configuration file: ${n}`):(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:"),n&&consola.consola.log(`\u{1F4C1} Config file: ${n}`),o.lint){if(consola.consola.log(""),consola.consola.log("\u{1F4DD} Lint:"),o.lint.staged){consola.consola.log(" Staged files:");for(const[s,t]of Object.entries(o.lint.staged))consola.consola.log(` ${s}: ${t}`)}o.lint.commitMsg&&(consola.consola.log(" Commit message:"),o.lint.commitMsg.types&&consola.consola.log(` Types: ${o.lint.commitMsg.types.join(", ")}`),o.lint.commitMsg.maxLength&&consola.consola.log(` Max length: ${o.lint.commitMsg.maxLength}`),o.lint.commitMsg.minLength&&consola.consola.log(` Min length: ${o.lint.commitMsg.minLength}`))}if(o.hooks){consola.consola.log(""),consola.consola.log("\u{1FA9D} Hooks:");for(const[s,t]of Object.entries(o.hooks))consola.consola.log(` ${s}: ${t}`)}}consola.consola.success("Configuration loaded successfully")}catch(i){consola.consola.error("Failed to load configuration:",i),process.exit(1)}}});exports.default=config;
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 +1 @@
1
- import{defineCommand as a}from"citty";import{consola as o}from"consola";import{l}from"../shared/basis.C0E7mwQ6.mjs";import"c12";import"../config.mjs";const r=a({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:g}){try{const t=process.cwd(),{config:i,configFile:n}=await l({cwd:t});if(g.path){n?o.info(`Configuration file: ${n}`):(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(g.json)o.log(JSON.stringify(i,null,2));else{if(o.info("Current basis configuration:"),n&&o.log(`\u{1F4C1} Config file: ${n}`),i.lint){if(o.log(""),o.log("\u{1F4DD} Lint:"),i.lint.staged){o.log(" Staged files:");for(const[e,s]of Object.entries(i.lint.staged))o.log(` ${e}: ${s}`)}i.lint.commitMsg&&(o.log(" Commit message:"),i.lint.commitMsg.types&&o.log(` Types: ${i.lint.commitMsg.types.join(", ")}`),i.lint.commitMsg.maxLength&&o.log(` Max length: ${i.lint.commitMsg.maxLength}`),i.lint.commitMsg.minLength&&o.log(` Min length: ${i.lint.commitMsg.minLength}`))}if(i.hooks){o.log(""),o.log("\u{1FA9D} Hooks:");for(const[e,s]of Object.entries(i.hooks))o.log(` ${e}: ${s}`)}}o.success("Configuration loaded successfully")}catch(t){o.error("Failed to load configuration:",t),process.exit(1)}}});export{r as default};
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};
@@ -0,0 +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;
@@ -0,0 +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 +1 @@
1
- "use strict";const citty=require("citty"),consola=require("consola"),init$1=require("../shared/basis.DweCjqFb.cjs");require("node:fs"),require("nypm"),require("pathe"),require("pkg-types");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.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 +1 @@
1
- import{defineCommand as o}from"citty";import{consola as e}from"consola";import{i as r}from"../shared/basis.CBZIV3-V.mjs";import"node:fs";import"nypm";import"pathe";import"pkg-types";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 r(process.cwd(),{force:i.force,skipGitCheck:i["skip-git-check"],skipInstall:i["skip-install"]})}catch(t){e.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.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 +1 @@
1
- "use strict";const citty=require("citty"),consola=require("consola"),lint$1=require("../shared/basis.D57HxVvD.cjs");require("node:child_process"),require("node:fs"),require("micromatch"),require("pathe"),require("../shared/basis.CSSuyvpq.cjs"),require("c12"),require("../config.cjs");const lint=citty.defineCommand({meta:{name:"lint",description:"Run linting"},args:{staged:{type:"boolean",description:"Lint only staged files"},"commit-msg":{type:"boolean",description:"Lint commit message"}},async run({args:i}){try{let e=!0;if(i["commit-msg"]){const t=await lint$1.lintCommitMessage();e=e&&t}if(i.staged||!i["commit-msg"]){const t=await lint$1.lintStaged();e=e&&t}e||process.exit(1)}catch(e){consola.consola.error("Lint failed:",e),process.exit(1)}}});exports.default=lint;
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 +1 @@
1
- import{defineCommand as m}from"citty";import{consola as s}from"consola";import{a as e,l as a}from"../shared/basis.rDVxD7qf.mjs";import"node:child_process";import"node:fs";import"micromatch";import"pathe";import"../shared/basis.C0E7mwQ6.mjs";import"c12";import"../config.mjs";const r=m({meta:{name:"lint",description:"Run linting"},args:{staged:{type:"boolean",description:"Lint only staged files"},"commit-msg":{type:"boolean",description:"Lint commit message"}},async run({args:i}){try{let t=!0;if(i["commit-msg"]){const o=await e();t=t&&o}if(i.staged||!i["commit-msg"]){const o=await a();t=t&&o}t||process.exit(1)}catch(t){s.error("Lint failed:",t),process.exit(1)}}});export{r as default};
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 +1 @@
1
- "use strict";const citty=require("citty"),consola=require("consola"),publish$1=require("../shared/basis.CgpyxNW3.cjs");require("node:child_process"),require("nypm"),require("pkg-types"),require("semver"),require("../shared/basis.CSSuyvpq.cjs"),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 t=process.cwd(),i={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(t,i);s.dryRun?consola.consola.success("Dry run completed successfully"):consola.consola.success(`Published ${s.packageName}@${s.version} to ${s.publishTag}`)}catch(t){consola.consola.error("Failed to publish:",t),process.exit(1)}}});exports.default=publish;
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 +1 @@
1
- import{defineCommand as r}from"citty";import{consola as i}from"consola";import{p}from"../shared/basis.dc3ybBoz.mjs";import"node:child_process";import"nypm";import"pkg-types";import"semver";import"../shared/basis.C0E7mwQ6.mjs";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.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 +1 @@
1
- "use strict";const citty=require("citty"),consola=require("consola"),version$1=require("../shared/basis.ByJ8R9TE.cjs");require("node:child_process"),require("pkg-types"),require("semver"),require("../shared/basis.CSSuyvpq.cjs"),require("c12"),require("../config.cjs");const version=citty.defineCommand({meta:{name:"version",description:"Update package version"},args:{patch:{type:"boolean",description:"Increment patch version"},minor:{type:"boolean",description:"Increment minor version"},major:{type:"boolean",description:"Increment major version"},prerelease:{type:"boolean",description:"Create prerelease version"},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"},version:{type:"positional",description:"Specific version to set"}},async run({args:e}){try{const s=process.cwd(),i={version:e.version,patch:e.patch,minor:e.minor,major:e.major,prerelease:e.prerelease,preid:e.preid,message:e.message,tag:e.tag},r=await version$1.updatePackageVersion(s,i);consola.consola.success(`Version updated: ${r.oldVersion} \u2192 ${r.newVersion}`),r.tagName&&consola.consola.info(`Git tag created: ${r.tagName}`)}catch(s){consola.consola.error("Failed to update version:",s),process.exit(1)}}});exports.default=version;
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 +1 @@
1
- import{defineCommand as a}from"citty";import{consola as o}from"consola";import{u as s}from"../shared/basis.C5wlo6IO.mjs";import"node:child_process";import"pkg-types";import"semver";import"../shared/basis.C0E7mwQ6.mjs";import"c12";import"../config.mjs";const n=a({meta:{name:"version",description:"Update package version"},args:{patch:{type:"boolean",description:"Increment patch version"},minor:{type:"boolean",description:"Increment minor version"},major:{type:"boolean",description:"Increment major version"},prerelease:{type:"boolean",description:"Create prerelease version"},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"},version:{type:"positional",description:"Specific version to set"}},async run({args:e}){try{const i=process.cwd(),t={version:e.version,patch:e.patch,minor:e.minor,major:e.major,prerelease:e.prerelease,preid:e.preid,message:e.message,tag:e.tag},r=await s(i,t);o.success(`Version updated: ${r.oldVersion} \u2192 ${r.newVersion}`),r.tagName&&o.info(`Git tag created: ${r.tagName}`)}catch(i){o.error("Failed to update version:",i),process.exit(1)}}});export{n 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.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};
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.default),githooks:()=>import("./chunks/githooks.cjs").then(t=>t.default),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");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);
package/dist/cli.mjs CHANGED
@@ -1,2 +1,2 @@
1
1
  #!/usr/bin/env node
2
- import{defineCommand as i,runMain as o}from"citty";import{consola as r}from"consola";import{readPackageJSON as a}from"pkg-types";async function m(){const e=await a(),n=i({meta:{name:"basis",version:e.version||"",description:e.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.default),githooks:()=>import("./chunks/githooks.mjs").then(t=>t.default),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 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);
package/dist/config.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";function defineBasisConfig(e){return e}const defaultConfig={lint:{staged:{},commitMsg:{types:["feat","fix","docs","style","refactor","perf","test","build","ci","chore","revert"],maxLength:72,minLength:10}},githooks:{autoInitGit:!0,skipGitCheck:!1,force:!1},packageManager:{autoDetect:!0,registry:"https://registry.npmjs.org/"},version:{tagPrefix:"v",prereleaseId:"edge",commitMessage:"chore: release v{version}"},publish:{defaultTag:"edge",stableTag:"latest"}};exports.defaultConfig=defaultConfig,exports.defineBasisConfig=defineBasisConfig;
1
+ "use strict";function defineBasisConfig(e){return e}const defaultConfig={lint:{staged:{},project:{},dependencies:{checkSecurity:!0},structure:{requiredFiles:["package.json"]},docs:{checkReadme:!0}},git:{hooks:{},config:{core:{autocrlf:"input"}},commitMsg:{types:["feat","fix","docs","style","refactor","perf","test","build","ci","chore","revert"]},autoSetup:!0,autoInitGit:!0,skipGitCheck:!1,force:!1},packageManager:{autoDetect:!0},version:{tagPrefix:"v",prereleaseId:"edge"},publish:{defaultTag:"edge",stableTag:"latest"}};exports.defaultConfig=defaultConfig,exports.defineBasisConfig=defineBasisConfig;
package/dist/config.d.cts CHANGED
@@ -1 +1 @@
1
- export { c as defaultConfig, d as defineBasisConfig } from './shared/basis.iRZ1Ylu8.cjs';
1
+ export { e as defaultConfig, d as defineBasisConfig } from './shared/basis.BvLeB_5F.cjs';
package/dist/config.d.mts CHANGED
@@ -1 +1 @@
1
- export { c as defaultConfig, d as defineBasisConfig } from './shared/basis.iRZ1Ylu8.mjs';
1
+ export { e as defaultConfig, d as defineBasisConfig } from './shared/basis.BvLeB_5F.mjs';
package/dist/config.d.ts CHANGED
@@ -1 +1 @@
1
- export { c as defaultConfig, d as defineBasisConfig } from './shared/basis.iRZ1Ylu8.js';
1
+ export { e as defaultConfig, d as defineBasisConfig } from './shared/basis.BvLeB_5F.js';
package/dist/config.mjs CHANGED
@@ -1 +1 @@
1
- function t(e){return e}const s={lint:{staged:{},commitMsg:{types:["feat","fix","docs","style","refactor","perf","test","build","ci","chore","revert"],maxLength:72,minLength:10}},githooks:{autoInitGit:!0,skipGitCheck:!1,force:!1},packageManager:{autoDetect:!0,registry:"https://registry.npmjs.org/"},version:{tagPrefix:"v",prereleaseId:"edge",commitMessage:"chore: release v{version}"},publish:{defaultTag:"edge",stableTag:"latest"}};export{s as defaultConfig,t as defineBasisConfig};
1
+ function t(e){return e}const r={lint:{staged:{},project:{},dependencies:{checkSecurity:!0},structure:{requiredFiles:["package.json"]},docs:{checkReadme:!0}},git:{hooks:{},config:{core:{autocrlf:"input"}},commitMsg:{types:["feat","fix","docs","style","refactor","perf","test","build","ci","chore","revert"]},autoSetup:!0,autoInitGit:!0,skipGitCheck:!1,force:!1},packageManager:{autoDetect:!0},version:{tagPrefix:"v",prereleaseId:"edge"},publish:{defaultTag:"edge",stableTag:"latest"}};export{r as defaultConfig,t as defineBasisConfig};
package/dist/index.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";const config=require("./config.cjs"),githooks=require("./shared/basis.DeKfEQsQ.cjs"),init=require("./shared/basis.DweCjqFb.cjs"),lint=require("./shared/basis.D57HxVvD.cjs"),utils=require("./shared/basis.CSSuyvpq.cjs"),publish=require("./shared/basis.CgpyxNW3.cjs"),version=require("./shared/basis.ByJ8R9TE.cjs");require("node:child_process"),require("node:fs/promises"),require("consola"),require("pathe"),require("node:fs"),require("nypm"),require("pkg-types"),require("micromatch"),require("c12"),require("semver");class Basis{config=null;cwd;constructor(s=process.cwd()){this.cwd=s}async getConfig(){if(!this.config){const{config:s}=await utils.loadConfig({cwd:this.cwd});this.config=s}return this.config}async init(s={}){return await init.init(this.cwd,s)}async lintStaged(){const s=await this.getConfig();return await lint.lintStaged(this.cwd,s.lint?.staged)}async lintCommitMessage(){const s=await this.getConfig();return await lint.lintCommitMessage(this.cwd,s.lint?.commitMsg)}async installHooks(){const s=await this.getConfig();await githooks.installHooks(this.cwd,s.githooks)}async uninstallHooks(){const s=await this.getConfig();await githooks.uninstallHooks(this.cwd,s.githooks)}async listHooks(){const s=await this.getConfig();await githooks.listHooks(this.cwd,s.githooks)}}function createBasis(i=process.cwd()){return new Basis(i)}exports.defaultConfig=config.defaultConfig,exports.defineBasisConfig=config.defineBasisConfig,exports.VALID_GIT_HOOKS=githooks.VALID_GIT_HOOKS,exports.installHooks=githooks.installHooks,exports.listHooks=githooks.listHooks,exports.uninstallHooks=githooks.uninstallHooks,exports.init=init.init,exports.getStagedFiles=lint.getStagedFiles,exports.lintCommitMessage=lint.lintCommitMessage,exports.lintStaged=lint.lintStaged,exports.parseCommitMessage=lint.parseCommitMessage,exports.validateCommitMessage=lint.validateCommitMessage,exports.loadConfig=utils.loadConfig,exports.publishPackage=publish.publishPackage,exports.updatePackageVersion=version.updatePackageVersion,exports.Basis=Basis,exports.createBasis=createBasis;
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;
package/dist/index.d.cts CHANGED
@@ -1,5 +1,5 @@
1
- import { B as BasisConfig, I as InitOptions, G as GitHooksConfig, C as CommitMessage, L as LintConfig, P as PublishOptions, a as PublishResult, V as VersionOptions, b as VersionUpdateResult } from './shared/basis.iRZ1Ylu8.cjs';
2
- export { g as PackageManagerConfig, i as PublishConfig, e as VALID_GIT_HOOKS, f as ValidGitHook, h as VersionConfig, c as defaultConfig, d as defineBasisConfig } from './shared/basis.iRZ1Ylu8.cjs';
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';
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
 
@@ -20,59 +20,224 @@ declare class Basis {
20
20
  */
21
21
  lintStaged(): Promise<boolean>;
22
22
  /**
23
- * Run commit message linting
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
24
44
  */
25
45
  lintCommitMessage(): Promise<boolean>;
26
46
  /**
27
- * Install git hooks
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
+ /**
111
+ * Get current working directory
112
+ */
113
+ getCwd(): string;
114
+ /**
115
+ * Set working directory
116
+ */
117
+ setCwd(cwd: string): void;
118
+ /**
119
+ * Reload configuration from file
28
120
  */
29
- installHooks(): Promise<void>;
121
+ reloadConfig(): Promise<BasisConfig>;
30
122
  /**
31
- * Uninstall git hooks
123
+ * Run complete project setup (init + git setup)
32
124
  */
33
- uninstallHooks(): Promise<void>;
125
+ setup(options?: InitOptions): Promise<boolean>;
34
126
  /**
35
- * List configured git hooks
127
+ * Run complete release workflow (lint + version + publish)
36
128
  */
37
- listHooks(): Promise<void>;
129
+ release(versionOptions?: VersionOptions, publishOptions?: PublishOptions): Promise<{
130
+ version: VersionUpdateResult;
131
+ publish: PublishResult;
132
+ }>;
38
133
  }
39
134
  /**
40
135
  * Create a new Basis instance
41
136
  */
42
137
  declare function createBasis(cwd?: string): Basis;
43
138
 
44
- declare function installHooks(cwd?: string, config?: GitHooksConfig): Promise<void>;
45
- declare function uninstallHooks(cwd?: string, config?: GitHooksConfig): Promise<void>;
46
- declare function listHooks(cwd?: string, config?: GitHooksConfig): Promise<void>;
139
+ /**
140
+ * Parse commit message into structured format
141
+ */
142
+ declare function parseCommitMessage(message: string): CommitMessage | null;
143
+ /**
144
+ * Validate commit message against rules
145
+ */
146
+ declare function validateCommitMessage(message: string, config?: GitConfig["commitMsg"]): {
147
+ valid: boolean;
148
+ errors: string[];
149
+ };
150
+ /**
151
+ * Lint commit message from Git
152
+ */
153
+ declare function lintCommitMessage(cwd?: string, config?: GitConfig["commitMsg"]): Promise<boolean>;
154
+ /**
155
+ * Read Git configuration from .git/config using ini parser
156
+ */
157
+ declare function readGitConfig(cwd?: string): Promise<GitConfigData>;
158
+ /**
159
+ * Write Git configuration to .git/config using ini format
160
+ */
161
+ declare function writeGitConfig(config: GitConfigData, cwd?: string): Promise<void>;
162
+ /**
163
+ * Setup Git configuration with backup and safe merging
164
+ */
165
+ declare function setupGitConfig(cwd?: string, config?: GitConfig["config"]): Promise<boolean>;
166
+ /**
167
+ * Reset Git configuration with backup
168
+ */
169
+ declare function resetGitConfig(cwd?: string, keepUser?: boolean, options?: {
170
+ updateConfig?: boolean;
171
+ }): Promise<boolean>;
172
+ /**
173
+ * Setup Git hooks
174
+ */
175
+ declare function setupGitHooks(cwd?: string, config?: GitConfig["hooks"]): Promise<boolean>;
176
+ /**
177
+ * Initialize Git repository with basis configuration
178
+ */
179
+ declare function initGitRepo(cwd?: string): Promise<boolean>;
180
+ /**
181
+ * Run comprehensive Git setup
182
+ */
183
+ declare function setupGit(cwd?: string): Promise<boolean>;
184
+ /**
185
+ * Remove Git hooks
186
+ */
187
+ declare function removeGitHooks(cwd?: string, hooksToRemove?: string[], options?: {
188
+ updateConfig?: boolean;
189
+ }): Promise<boolean>;
47
190
 
48
191
  /**
49
192
  * Initialize basis configuration in the current project
50
193
  */
51
194
  declare function init(cwd?: string, options?: InitOptions): Promise<boolean>;
52
-
53
195
  /**
54
- * Parse commit message
196
+ * Preview generated configuration
55
197
  */
56
- declare function parseCommitMessage(message: string): CommitMessage | null;
198
+ declare function previewBasisConfig(options?: {
199
+ enableStagedLinting?: boolean;
200
+ enableCommitMsgLinting?: boolean;
201
+ customLintPatterns?: string[];
202
+ customExcludePatterns?: string[];
203
+ }): string;
57
204
  /**
58
- * Validate commit message
205
+ * Create minimal configuration for quick setup
59
206
  */
60
- declare function validateCommitMessage(message: string, config?: LintConfig["commitMsg"]): {
61
- valid: boolean;
62
- errors: string[];
63
- };
207
+ declare function createMinimalConfig(): string;
208
+
64
209
  /**
65
- * Get staged files
210
+ * Get staged files (only existing files, not deleted ones)
66
211
  */
67
212
  declare function getStagedFiles(): string[];
213
+ /**
214
+ * Get all project files based on patterns
215
+ */
216
+ declare function getProjectFiles(cwd: string, patterns?: string[], exclude?: string[]): Promise<string[]>;
68
217
  /**
69
218
  * Lint staged files
70
219
  */
71
220
  declare function lintStaged(cwd?: string, config?: LintConfig["staged"]): Promise<boolean>;
72
221
  /**
73
- * Lint commit message
222
+ * Lint entire project using commands (similar to staged but for all project files)
223
+ */
224
+ declare function lintProject(cwd?: string, config?: LintConfig["project"]): Promise<boolean>;
225
+ /**
226
+ * Check dependencies
74
227
  */
75
- declare function lintCommitMessage(cwd?: string, config?: LintConfig["commitMsg"]): Promise<boolean>;
228
+ declare function lintDependencies(cwd?: string, config?: LintConfig["dependencies"]): Promise<boolean>;
229
+ /**
230
+ * Check project structure
231
+ */
232
+ declare function lintStructure(cwd?: string, config?: LintConfig["structure"]): Promise<boolean>;
233
+ /**
234
+ * Check documentation
235
+ */
236
+ declare function lintDocs(cwd?: string, config?: LintConfig["docs"]): Promise<boolean>;
237
+ /**
238
+ * Run all lint checks
239
+ */
240
+ declare function lintAll(cwd?: string): Promise<boolean>;
76
241
 
77
242
  /**
78
243
  * Publish package to npm registry
@@ -85,5 +250,9 @@ declare function publishPackage(cwd: string, options?: PublishOptions): Promise<
85
250
  declare function updatePackageVersion(cwd: string, options?: VersionOptions): Promise<VersionUpdateResult>;
86
251
 
87
252
  declare function loadConfig(options?: LoadConfigOptions<BasisConfig>): Promise<c12.ResolvedConfig<BasisConfig, c12.ConfigLayerMeta>>;
253
+ /**
254
+ * Check if file or directory exists
255
+ */
256
+ declare function fileExists(path: string): Promise<boolean>;
88
257
 
89
- export { Basis, BasisConfig, CommitMessage, GitHooksConfig, InitOptions, LintConfig, PublishOptions, PublishResult, VersionOptions, VersionUpdateResult, createBasis, getStagedFiles, init, installHooks, lintCommitMessage, lintStaged, listHooks, loadConfig, parseCommitMessage, publishPackage, uninstallHooks, updatePackageVersion, validateCommitMessage };
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 };