@funish/basis 0.0.1 → 0.0.3

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 (58) hide show
  1. package/README.md +120 -31
  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 +188 -25
  23. package/dist/index.d.mts +188 -25
  24. package/dist/index.d.ts +188 -25
  25. package/dist/index.mjs +1 -1
  26. package/dist/shared/basis.0WCUjjhy.mjs +1 -0
  27. package/dist/shared/basis.1ZgFrMJb.mjs +7 -0
  28. package/dist/shared/basis.B4p52ive.cjs +1 -0
  29. package/dist/shared/basis.BEOfVK6U.cjs +3 -0
  30. package/dist/shared/basis.BJhSbOyA.cjs +1 -0
  31. package/dist/shared/basis.BvLeB_5F.d.cts +253 -0
  32. package/dist/shared/basis.BvLeB_5F.d.mts +253 -0
  33. package/dist/shared/basis.BvLeB_5F.d.ts +253 -0
  34. package/dist/shared/basis.C8S2dWvt.cjs +7 -0
  35. package/dist/shared/basis.CHVACS4W.cjs +1 -0
  36. package/dist/shared/basis.CkZpidFZ.mjs +1 -0
  37. package/dist/shared/basis.DcC8NBqt.mjs +3 -0
  38. package/dist/shared/basis.DzMHJtq5.mjs +10 -0
  39. package/dist/shared/basis.plLH3j3N.mjs +1 -0
  40. package/dist/shared/basis.sOTOmfHG.cjs +10 -0
  41. package/package.json +7 -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.CgpyxNW3.cjs +0 -1
  50. package/dist/shared/basis.D57HxVvD.cjs +0 -4
  51. package/dist/shared/basis.DeKfEQsQ.cjs +0 -5
  52. package/dist/shared/basis.DweCjqFb.cjs +0 -19
  53. package/dist/shared/basis.O4so-uuj.mjs +0 -5
  54. package/dist/shared/basis.dc3ybBoz.mjs +0 -1
  55. package/dist/shared/basis.iRZ1Ylu8.d.cts +0 -127
  56. package/dist/shared/basis.iRZ1Ylu8.d.mts +0 -127
  57. package/dist/shared/basis.iRZ1Ylu8.d.ts +0 -127
  58. package/dist/shared/basis.rDVxD7qf.mjs +0 -4
package/README.md CHANGED
@@ -57,9 +57,13 @@ pnpx @funish/basis init
57
57
  cd your-existing-project
58
58
  basis init
59
59
 
60
+ # Interactive setup will ask you to:
61
+ # 📁 Choose config format (.ts/.mjs/.cjs) - auto-detected based on your project
62
+ # 🔧 Optionally setup Git hooks and configuration
63
+
60
64
  # Your project now has:
61
- # ✅ basis.config.ts configuration file
62
- # ✅ Git hooks setup (auto-installed via package.json scripts)
65
+ # ✅ basis.config.[ts|mjs|cjs] configuration file (empty, ready to customize)
66
+ # ✅ Git hooks setup (if selected during init)
63
67
  # ✅ Tool-agnostic linting workflow
64
68
  # ✅ Package management through unified CLI
65
69
  # ✅ Version management with semantic versioning
@@ -135,32 +139,65 @@ basis publish --skip-build --skip-tests
135
139
  # Lint staged files
136
140
  basis lint --staged
137
141
 
138
- # Validate commit message
139
- basis lint --commit-msg
142
+ # Run project-wide linting
143
+ basis lint --project
144
+
145
+ # Check dependencies
146
+ basis lint --deps
147
+
148
+ # Check project structure
149
+ basis lint --structure
150
+
151
+ # Check documentation
152
+ basis lint --docs
153
+
154
+ # Run all lint checks
155
+ basis lint --all
140
156
  ```
141
157
 
142
158
  ### Git Hooks Management
143
159
 
144
160
  ```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
161
+ # Setup git configuration and hooks
162
+ basis git setup
163
+
164
+ # Setup git configuration only
165
+ basis git config
166
+
167
+ # Setup git hooks only
168
+ basis git hooks
169
+
170
+ # Remove git hooks
171
+ basis git remove # Remove all basis-managed hooks
172
+ basis git remove pre-commit # Remove specific hook
173
+ basis git remove --update-config # Remove hooks AND config from basis.config.ts
174
+
175
+ # Reset git configuration
176
+ basis git reset # Reset config (keep user info)
177
+ basis git reset --no-keep-user # Reset config (remove user info)
178
+ basis git reset --update-config # Reset config AND remove from basis.config.ts
179
+
180
+ # Initialize git repository with basis configuration
181
+ basis git init
182
+
183
+ # Validate commit message
184
+ basis git lint-commit
153
185
  ```
154
186
 
155
187
  ### Project Management
156
188
 
157
189
  ```bash
158
190
  # Initialize configuration
159
- basis init # Initialize basis configuration
191
+ basis init # Initialize basis configuration (interactive)
160
192
  basis init --force # Overwrite existing configuration
161
193
  basis init --skip-git-check # Skip git directory check
162
194
  basis init --skip-install # Skip dependency installation
163
195
 
196
+ # Interactive setup will:
197
+ # 1. Auto-detect recommended config format (.ts/.mjs/.cjs)
198
+ # 2. Ask you to choose your preferred format
199
+ # 3. Offer to setup Git hooks and configuration
200
+
164
201
  # Configuration
165
202
  basis config # Show current configuration
166
203
  basis config --json # Output configuration as JSON
@@ -173,7 +210,41 @@ basis <command> --help # Show command-specific help
173
210
 
174
211
  ## Configuration
175
212
 
176
- Basis uses a single configuration file for all its features:
213
+ Basis uses a single configuration file for all its features. The `basis init` command creates an empty configuration file in your preferred format:
214
+
215
+ ```ts
216
+ // basis.config.ts (TypeScript)
217
+ import { defineBasisConfig } from "@funish/basis";
218
+
219
+ export default defineBasisConfig({
220
+ // Configure your project here
221
+ // See: https://github.com/funish/basis/tree/main/packages/basis#configuration
222
+ });
223
+ ```
224
+
225
+ ```mjs
226
+ // basis.config.mjs (ES Module)
227
+ import { defineBasisConfig } from "@funish/basis";
228
+
229
+ export default defineBasisConfig({
230
+ // Configure your project here
231
+ // See: https://github.com/funish/basis/tree/main/packages/basis#configuration
232
+ });
233
+ ```
234
+
235
+ ```cjs
236
+ // basis.config.cjs (CommonJS)
237
+ const { defineBasisConfig } = require("@funish/basis");
238
+
239
+ module.exports = defineBasisConfig({
240
+ // Configure your project here
241
+ // See: https://github.com/funish/basis/tree/main/packages/basis#configuration
242
+ });
243
+ ```
244
+
245
+ ### Full Configuration Example
246
+
247
+ Here's a complete configuration with all available options:
177
248
 
178
249
  ```ts
179
250
  // basis.config.ts
@@ -184,10 +255,25 @@ export default defineBasisConfig({
184
255
  lint: {
185
256
  // Staged files linting patterns
186
257
  staged: {
187
- "*.{ts,tsx,js,jsx}": "eslint --fix",
188
- "*.{json,md,yml,yaml}": "prettier --write",
189
- "*.vue": "vue-tsc --noEmit && eslint --fix",
258
+ "*.{ts,tsx,js,jsx}": "pnpm eslint --fix",
259
+ "*.{json,md,yml,yaml}": "pnpm prettier --write",
260
+ "*.vue": "pnpm vue-tsc --noEmit && pnpm eslint --fix",
190
261
  },
262
+ // Project-wide linting commands
263
+ project: {
264
+ typecheck: "pnpm tsc --noEmit",
265
+ "format-check": "pnpm prettier --check .",
266
+ },
267
+ },
268
+
269
+ // Git configuration
270
+ git: {
271
+ // Hook commands
272
+ hooks: {
273
+ "pre-commit": "pnpm basis lint --staged",
274
+ "commit-msg": "pnpm basis git lint-commit",
275
+ },
276
+
191
277
  // Commit message validation
192
278
  commitMsg: {
193
279
  types: [
@@ -207,13 +293,6 @@ export default defineBasisConfig({
207
293
  scopeRequired: false,
208
294
  allowedScopes: ["api", "ui", "core"],
209
295
  },
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
296
 
218
297
  // Options
219
298
  autoInitGit: true, // Auto-initialize git repo if not found
@@ -347,7 +426,7 @@ basis add package # Unified package management
347
426
  basis version patch # Unified version management
348
427
  basis publish --tag beta # Unified publishing
349
428
  basis lint --staged # Unified linting
350
- basis githooks install # Unified git hooks
429
+ basis git hooks # Unified git hooks
351
430
  ```
352
431
 
353
432
  ## API
@@ -377,12 +456,22 @@ await basis.publishPackage({ tag: "beta" });
377
456
 
378
457
  // Linting
379
458
  await basis.lintStaged();
380
- await basis.lintCommitMessage();
381
-
382
- // Git hooks
383
- await basis.installHooks();
384
- await basis.uninstallHooks();
385
- await basis.listHooks();
459
+ await basis.lintProject();
460
+ await basis.lintDependencies();
461
+ await basis.lintStructure();
462
+ await basis.lintDocs();
463
+
464
+ // Git management
465
+ await basis.setupGit(); // Setup everything
466
+ await basis.setupGitConfig(); // Setup config only
467
+ await basis.setupGitHooks(); // Setup hooks only
468
+ await basis.removeGitHooks(); // Remove hooks (keep config)
469
+ await basis.removeGitHooks(true); // Remove hooks + config file
470
+ await basis.resetGitConfig(); // Reset config (keep user)
471
+ await basis.resetGitConfig(false); // Reset config (remove all)
472
+ await basis.resetGitConfig(true, true); // Reset + remove from config file
473
+ await basis.initGitRepo(); // Initialize repository
474
+ await basis.lintCommitMessage(); // Validate commit message
386
475
  ```
387
476
 
388
477
  ## 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.BJhSbOyA.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.CkZpidFZ.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.sOTOmfHG.cjs");require("node:child_process"),require("node:fs/promises"),require("c12/update"),require("defu"),require("ini"),require("pathe"),require("../shared/basis.BJhSbOyA.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();consola.consola.start("Setting up Git configuration..."),await git$1.setupGitConfig(e)?consola.consola.success("Git configuration completed successfully!"):(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();consola.consola.start("Setting up Git hooks..."),await git$1.setupGitHooks(e)?consola.consola.success("Git hooks setup completed successfully!"):(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();consola.consola.start("Removing Git hooks...");const s=e.hooks&&typeof e.hooks=="string"?[e.hooks]:Array.isArray(e.hooks)?e.hooks.filter(t=>typeof t=="string"):void 0,i=typeof e["update-config"]=="boolean"?e["update-config"]:!1;await git$1.removeGitHooks(o,s,{updateConfig:i})?consola.consola.success("Git hooks removed successfully!"):(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();consola.consola.start("Resetting Git configuration...");const s=typeof e["keep-user"]=="boolean"?e["keep-user"]:!0,i=typeof e["update-config"]=="boolean"?e["update-config"]:!1;await git$1.resetGitConfig(o,s,{updateConfig:i})?consola.consola.success("Git configuration reset successfully!"):(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();consola.consola.start("Initializing Git repository..."),await git$1.initGitRepo(e)?consola.consola.success("Git repository initialized successfully!"):(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();consola.consola.start("Validating commit message..."),await git$1.lintCommitMessage(e)?consola.consola.success("Commit message validation passed!"):(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;
@@ -0,0 +1 @@
1
+ import{defineCommand as t}from"citty";import{consola as e}from"consola";import{b as r,l as c,i as p,c as m,r as u,s as f,a as l}from"../shared/basis.DzMHJtq5.mjs";import"node:child_process";import"node:fs/promises";import"c12/update";import"defu";import"ini";import"pathe";import"../shared/basis.CkZpidFZ.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 r(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("Git configuration completed successfully!"):(e.error("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("Git hooks setup completed successfully!"):(e.error("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(n=>typeof n=="string"):void 0,a=typeof o["update-config"]=="boolean"?o["update-config"]:!1;await u(i,s,{updateConfig:a})?e.success("Git hooks removed successfully!"):(e.error("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 m(i,s,{updateConfig:a})?e.success("Git configuration reset successfully!"):(e.error("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("Git repository initialized successfully!"):(e.error("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("Commit message validation passed!"):(e.error("Commit message validation failed"),process.exit(1))}})},async run(){const o=process.cwd();await r(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.C8S2dWvt.cjs");require("c12/update"),require("magicast"),require("nypm"),require("pathe"),require("pkg-types"),require("../shared/basis.BJhSbOyA.cjs"),require("node:fs/promises"),require("c12"),require("../config.cjs"),require("../shared/basis.sOTOmfHG.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 showing install command"}},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 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.1ZgFrMJb.mjs";import"c12/update";import"magicast";import"nypm";import"pathe";import"pkg-types";import"../shared/basis.CkZpidFZ.mjs";import"node:fs/promises";import"c12";import"../config.mjs";import"../shared/basis.DzMHJtq5.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 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{p 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.BEOfVK6U.cjs");require("node:child_process"),require("fast-glob"),require("micromatch"),require("nypm"),require("pathe"),require("pkg-types"),require("../shared/basis.BJhSbOyA.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 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("All lint checks completed successfully!"),process.exit(0)):(consola.consola.error("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.DcC8NBqt.mjs";import"node:child_process";import"fast-glob";import"micromatch";import"nypm";import"pathe";import"pkg-types";import"../shared/basis.CkZpidFZ.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: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("All lint checks completed successfully!"),process.exit(0)):(i.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.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.B4p52ive.cjs");require("node:child_process"),require("nypm"),require("pkg-types"),require("semver"),require("../shared/basis.BJhSbOyA.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.plLH3j3N.mjs";import"node:child_process";import"nypm";import"pkg-types";import"semver";import"../shared/basis.CkZpidFZ.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.CHVACS4W.cjs");require("node:child_process"),require("pkg-types"),require("../shared/basis.BJhSbOyA.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.0WCUjjhy.mjs";import"node:child_process";import"pkg-types";import"../shared/basis.CkZpidFZ.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.sOTOmfHG.cjs"),init=require("./shared/basis.C8S2dWvt.cjs"),lint=require("./shared/basis.BEOfVK6U.cjs"),publish=require("./shared/basis.B4p52ive.cjs"),version=require("./shared/basis.CHVACS4W.cjs"),utils=require("./shared/basis.BJhSbOyA.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(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),a=await this.publish(e);return{version:s,publish:a}}}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.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;