juisy 2.0.0-beta.0 → 2.0.0-beta.10

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 (113) hide show
  1. package/LICENSE +661 -0
  2. package/bin/cli/cli.js +6 -4
  3. package/bin/cli/cmds/index.js +10 -10
  4. package/bin/cli/cmds/private/docs/generate-api.js +31 -0
  5. package/bin/cli/cmds/{docs → private/docs}/index.js +4 -6
  6. package/bin/cli/cmds/{print-globals.js → public/print-globals.js} +0 -1
  7. package/bin/cli/index.js +1 -1
  8. package/bin/scripts/prepare.js +22 -0
  9. package/dist/DataExporter.d.ts +6 -0
  10. package/dist/cli/CLIFactory.d.ts +48 -11
  11. package/dist/cli/Command.d.ts +23 -13
  12. package/dist/cli/GlobalSettings.schema.json +1 -0
  13. package/dist/cli/InterfaceUtils.d.ts +8 -2
  14. package/dist/cli/OutputUtils.d.ts +3 -3
  15. package/dist/cli/Plugin.d.ts +21 -0
  16. package/dist/cli/extract-usage.d.ts +7 -1
  17. package/dist/cli/index.d.ts +18 -6
  18. package/dist/cli/index.js +1252 -129
  19. package/dist/cli/plugins/command-handler-injections/augment.d.ts +29 -0
  20. package/dist/cli/{command-visitors → plugins/command-handler-injections/command-visitors}/command-handler-injections.d.ts +1 -1
  21. package/dist/cli/plugins/command-handler-injections/index.d.ts +3 -0
  22. package/dist/cli/plugins/command-meta/augment.d.ts +23 -0
  23. package/dist/cli/{command-visitors/get-command-meta.d.ts → plugins/command-meta/command-visitors/command-meta.d.ts} +1 -1
  24. package/dist/cli/plugins/command-meta/index.d.ts +3 -0
  25. package/dist/cli/plugins/default-command-fallbacks/augment.d.ts +3 -0
  26. package/dist/cli/plugins/default-command-fallbacks/command-visitors/default-command-fallbacks.d.ts +10 -0
  27. package/dist/cli/plugins/default-command-fallbacks/index.d.ts +3 -0
  28. package/dist/cli/plugins/load-env-file/augment.d.ts +9 -0
  29. package/dist/cli/plugins/load-env-file/index.d.ts +3 -0
  30. package/dist/cli/plugins/private-commands/augment.d.ts +6 -0
  31. package/dist/cli/{command-visitors → plugins/private-commands/command-visitors}/private-command.d.ts +1 -1
  32. package/dist/cli/plugins/private-commands/index.d.ts +3 -0
  33. package/dist/cli/plugins/register-bump-version-command/cmds/index.d.ts +3 -0
  34. package/dist/cli/plugins/register-bump-version-command/index.d.ts +3 -0
  35. package/dist/cli/plugins/register-changelog-command/augment.d.ts +110 -0
  36. package/dist/cli/plugins/register-changelog-command/cmds/index.d.ts +3 -0
  37. package/dist/cli/plugins/register-changelog-command/index.d.ts +3 -0
  38. package/dist/cli/plugins/register-docs-commands/augment.d.ts +18 -0
  39. package/dist/cli/plugins/register-docs-commands/cmds/generate-api.d.ts +3 -0
  40. package/dist/cli/plugins/register-docs-commands/cmds/generate-cli.d.ts +3 -0
  41. package/dist/cli/plugins/register-docs-commands/cmds/generate-readme.d.ts +3 -0
  42. package/dist/cli/plugins/register-docs-commands/cmds/index.d.ts +3 -0
  43. package/dist/cli/plugins/register-docs-commands/index.d.ts +3 -0
  44. package/dist/cli/plugins/register-git-hooks-commands/augment.d.ts +40 -0
  45. package/dist/cli/plugins/register-git-hooks-commands/cmds/index.d.ts +3 -0
  46. package/dist/cli/plugins/register-git-hooks-commands/cmds/reset.d.ts +3 -0
  47. package/dist/cli/plugins/register-git-hooks-commands/cmds/sync.d.ts +3 -0
  48. package/dist/cli/plugins/register-git-hooks-commands/index.d.ts +3 -0
  49. package/dist/cli/plugins/register-lint-commands/augment.d.ts +39 -0
  50. package/dist/cli/plugins/register-lint-commands/cmds/commit.d.ts +3 -0
  51. package/dist/cli/plugins/register-lint-commands/cmds/default.d.ts +3 -0
  52. package/dist/cli/plugins/register-lint-commands/cmds/markdown.d.ts +3 -0
  53. package/dist/cli/plugins/register-lint-commands/cmds/staged.d.ts +3 -0
  54. package/dist/cli/plugins/register-lint-commands/index.d.ts +3 -0
  55. package/dist/cli/plugins/register-lint-commands/settings.d.ts +11 -0
  56. package/dist/cli/plugins/register-lint-commands/types.d.ts +26 -0
  57. package/dist/cli/plugins/register-release-command/augment.d.ts +9 -0
  58. package/dist/cli/plugins/register-release-command/cmds/index.d.ts +3 -0
  59. package/dist/cli/plugins/register-release-command/index.d.ts +3 -0
  60. package/dist/cli/plugins/register-test-command/cmds/index.d.ts +3 -0
  61. package/dist/cli/plugins/register-test-command/index.d.ts +3 -0
  62. package/dist/cli/types.d.ts +73 -44
  63. package/dist/cli/utils.d.ts +3 -3
  64. package/dist/eject.d.ts +11 -4
  65. package/dist/index.d.ts +8 -2
  66. package/dist/index.js +80 -76
  67. package/dist/project-globals.d.ts +9 -0
  68. package/dist/templater/index.d.ts +6 -1
  69. package/dist/templater/index.js +18 -31
  70. package/dist/templater/markdown-templater/ReadmeTemplater.d.ts +28 -28
  71. package/dist/templater/markdown-templater/index.d.ts +3 -0
  72. package/dist/templater/types.d.ts +6 -0
  73. package/dist/utils/misc.d.ts +1 -1
  74. package/package.json +201 -179
  75. package/README.md +0 -211
  76. package/bin/cli/cmds/changelog.js +0 -41
  77. package/bin/cli/cmds/docs/generate-api.js +0 -22
  78. package/bin/cli/cmds/docs/generate-cli.js +0 -11
  79. package/bin/cli/cmds/docs/generate-readme.js +0 -11
  80. package/bin/cli/cmds/docs/lint.js +0 -42
  81. package/bin/cli/cmds/eject.js +0 -28
  82. package/bin/cli/cmds/git-hooks/index.js +0 -20
  83. package/bin/cli/cmds/git-hooks/reset.js +0 -48
  84. package/bin/cli/cmds/git-hooks/sync.js +0 -19
  85. package/bin/cli/cmds/release.js +0 -231
  86. package/bin/cli/lib/docs/generate-api-doc.js +0 -78
  87. package/bin/cli/lib/version/update-version.js +0 -52
  88. package/bin/scripts/commit-msg.js +0 -32
  89. package/bin/scripts/pre-commit.js +0 -24
  90. package/dist/cli/command-visitors/index.d.ts +0 -9
  91. package/src/index.js +0 -507
  92. package/template/CHANGELOG.md +0 -0
  93. package/template/bin/cli/cli.js +0 -27
  94. package/template/bin/cli/cmds/changelog.js +0 -71
  95. package/template/bin/cli/cmds/docs.js +0 -30
  96. package/template/bin/cli/cmds/docs_cmds/generate-api.js +0 -75
  97. package/template/bin/cli/cmds/docs_cmds/generate-readme.js +0 -51
  98. package/template/bin/cli/cmds/git-hooks.js +0 -30
  99. package/template/bin/cli/cmds/git_hooks_cmds/reset.js +0 -76
  100. package/template/bin/cli/cmds/git_hooks_cmds/sync.js +0 -44
  101. package/template/bin/cli/cmds/release.js +0 -219
  102. package/template/bin/cli/index.js +0 -7
  103. package/template/bin/cli/lib/docs/generate-api-doc.js +0 -33
  104. package/template/bin/cli/lib/release/generate-release-note.js +0 -3
  105. package/template/bin/cli/lib/version/update-version.js +0 -51
  106. package/template/bin/scripts/commit-msg.js +0 -42
  107. package/template/bin/scripts/pre-commit.js +0 -32
  108. package/template/docs/api/docs.config.js +0 -10
  109. package/template/docs/readme/config.js +0 -22
  110. package/template/docs/readme/readme.js +0 -70
  111. package/template/docs/readme/template.md +0 -53
  112. /package/bin/cli/cmds/{test.js → private/test.js} +0 -0
  113. /package/bin/cli/cmds/{squeeze.js → public/squeeze.js} +0 -0
@@ -1,5 +1,10 @@
1
1
  import { default as ejs } from 'ejs';
2
- type Configuration = {
2
+ import { markdownTable } from 'markdown-table';
3
+ import { default as asciitree } from 'ascii-tree';
4
+ /**
5
+ * @group Types
6
+ */
7
+ export type Configuration = {
3
8
  /**
4
9
  * Output file name: `README.md` by default. Only for **generate** method
5
10
  */
@@ -40,6 +45,9 @@ type Configuration = {
40
45
  */
41
46
  slugify: Function;
42
47
  };
48
+ /**
49
+ * @group Types
50
+ */
43
51
  export type UserConfiguration = {
44
52
  fileName?: Configuration['fileName'];
45
53
  destFolder?: Configuration['destFolder'];
@@ -51,25 +59,25 @@ export type UserConfiguration = {
51
59
  slugify?: Configuration['slugify'];
52
60
  };
53
61
  export declare class ReadmeTemplater {
62
+ /**
63
+ * @param config - The user configuration file path (as string) or object
64
+ * @example
65
+ * // Path as string
66
+ * const templater = new ReadmeTemplater('./.docs/readme/config.js')
67
+ * // Pass object. See configuration below
68
+ * const templater = new ReadmeTemplater({ /* ... *\/ })
69
+ */
54
70
  constructor(config: Parameters<typeof ReadmeTemplater.processConfig>[0]);
55
71
  private config;
56
72
  private templater;
57
73
  /**
58
- * @param {Configuration|string} config - The config object to process. Can be path to config file as string.
59
- * @param {object} [options] - Same as render
60
- * @returns {void|Promise<void>} Promise is immediately resolved except if a module is async.
61
- * @throws Throws error if render or file writing fails
62
- * @description
63
74
  * Writes rendered README markdown to file
75
+ * @param config - The config object to process. Can be path to config file as string.
76
+ * @param options - Same as render
77
+ * @throws Throws error if render or file writing fails
64
78
  * @example
65
- * readmeGenerator.generate(config) // => output to README.md file
66
- * readmeGenerator.generate('./.docs/readme/config.js') // pass config path
67
- * readmeGenerator.generate(config, { data: { foo: 'bar' } }) // pass options
68
- * // Async
69
- * await readmeGenerator.generate('./.docs/readme/config.js') // async module
70
- * await readmeGenerator.generate({
71
- * ejsDataPath: '/path/to/ejs/data.js' // async module
72
- * })
79
+ * await templater.generate() // => output to README.md file
80
+ * await templater.generate({ data: { foo: 'bar' } }) // pass options
73
81
  */
74
82
  generate(options?: {}): Promise<void>;
75
83
  /**
@@ -78,14 +86,8 @@ export declare class ReadmeTemplater {
78
86
  * @param options.data - Additionnal data object to merge with default EJS data
79
87
  * @returns Returns the rendered markdown as string. Promise is immediately resolved except if a module is async.
80
88
  * @example
81
- * const result = readmeGenerator.render(config)
82
- * const result = readmeGenerator.render('./.docs/readme/config.js')
83
- * const result = readmeGenerator.render(config, { data: { foo: 'bar' } })
84
- * // Async
85
- * const result = await readmeGenerator.render('./.docs/readme/config.js') // async module
86
- * const result = await readmeGenerator.render({
87
- * ejsDataPath: '/path/to/ejs/data.js' // async module
88
- * })
89
+ * await templater.render()
90
+ * await templater.render({ data: { foo: 'bar' } })
89
91
  */
90
92
  render(options?: {
91
93
  data?: Record<any, any>;
@@ -105,12 +107,8 @@ export declare class ReadmeTemplater {
105
107
  */
106
108
  static processConfig(config: UserConfiguration | string): Promise<Configuration>;
107
109
  /**
108
- * @alias module:readme-generator.defaultConfig
109
- * @type {Configuration}
110
- * @description
111
110
  * Returns the default configuration object.
112
111
  * This base configuration is used by `processConfig` method and so `generate` and `render` methods.
113
- * See also {@link module:readme-generator~Configuration Configuration} defaults.
114
112
  */
115
113
  static defaultConfig: Configuration;
116
114
  /**
@@ -148,7 +146,9 @@ export declare class ReadmeTemplater {
148
146
  * // Generates an ascii tree
149
147
  * $utils.asciiTree('*.\n**a\n**b\n*...')
150
148
  */
151
- $utils: any;
149
+ $utils: {
150
+ table: typeof markdownTable;
151
+ asciiTree: typeof asciitree.generate;
152
+ };
152
153
  };
153
154
  }
154
- export {};
@@ -1,6 +1,9 @@
1
1
  import { remark } from 'remark';
2
2
  import { Templater } from '../Templater';
3
3
  import { TemplaterOptions } from '../types';
4
+ /**
5
+ * @group Types
6
+ */
4
7
  export type MarkdownTemplaterOptions = TemplaterOptions<any> & {
5
8
  processor?: 'remark' | typeof remark;
6
9
  /**
@@ -1,6 +1,12 @@
1
1
  import { Options as EJSOptions } from 'ejs';
2
2
  import { compile as HandlebarsCompiler } from 'handlebars';
3
+ /**
4
+ * @group Types
5
+ */
3
6
  export type SupportedEngines = ['handlebars', 'ejs', 'pug'];
7
+ /**
8
+ * @group Types
9
+ */
4
10
  export type TemplaterOptions<E extends SupportedEngines[number]> = {
5
11
  engineOptions?: E extends 'handlebars' ? Parameters<typeof HandlebarsCompiler>[1] : E extends 'ejs' ? EJSOptions : unknown;
6
12
  /**
@@ -8,7 +8,7 @@ import { GlobOptions } from 'glob';
8
8
  * @example
9
9
  * utils.getFileUrls('path/to/*.js') // => [ 'path/to/file1.js', 'path/to/file2.js', ... ]
10
10
  */
11
- export declare function getFileUrls(pattern: string, options?: GlobOptions): string[] | import('path-scurry').Path[];
11
+ export declare function getFileUrls(pattern: string, options?: GlobOptions): string[] | import('glob').Path[];
12
12
  /**
13
13
  * @param dir - The directory path
14
14
  * @returns Returns an array of file path
package/package.json CHANGED
@@ -1,179 +1,201 @@
1
- {
2
- "name": "juisy",
3
- "version": "2.0.0-beta.0",
4
- "description": "Make your JavaScript (and/or TypeScript) project juicy!",
5
- "main": "src/index.js",
6
- "type": "module",
7
- "files": [
8
- "bin",
9
- "dist",
10
- "template"
11
- ],
12
- "exports": {
13
- ".": {
14
- "types": "./dist/index.d.ts",
15
- "import": "./dist/index.js"
16
- },
17
- "./cli": {
18
- "types": "./dist/cli/index.d.ts",
19
- "import": "./dist/cli/index.js"
20
- },
21
- "./templater": {
22
- "types": "./dist/templater/index.d.ts",
23
- "import": "./dist/templater/index.js"
24
- }
25
- },
26
- "imports": {
27
- "#juisy": {
28
- "types": "./dist/index.d.ts",
29
- "import": "./dist/index.js"
30
- },
31
- "#juisy/cli": {
32
- "types": "./dist/cli/index.d.ts",
33
- "import": "./dist/cli/index.js"
34
- },
35
- "#juisy/templater": {
36
- "types": "./dist/templater/index.d.ts",
37
- "import": "./dist/templater/index.js"
38
- }
39
- },
40
- "publishConfig": {
41
- "access": "public"
42
- },
43
- "scripts": {
44
- "build": "vite build",
45
- "audit": "ncu && npm audit",
46
- "audit:fix": "ncu --interactive",
47
- "docs:api": "npx cross-env CLI_ENV=private node ./bin/cli docs generate:api",
48
- "docs:readme": "npx cross-env CLI_ENV=private node ./bin/cli docs generate:readme",
49
- "docs:cli": "npx cross-env CLI_ENV=private node ./bin/cli docs generate:cli",
50
- "docs:lint": "npx cross-env CLI_ENV=private node ./bin/cli docs lint -c ./docs/.markdownlint-cli2.cjs",
51
- "docs:lint:fix": "npm run docs:lint -- --fix",
52
- "docs": "npm run docs:readme && npm run docs:cli && npm run docs:api && npm run docs:lint",
53
- "lint": "eslint .",
54
- "lint:fix": "npm run lint -- --fix",
55
- "lint:markdown": "npm run docs:lint",
56
- "lint:markdown:fix": "npm run docs:lint:fix",
57
- "release": "npx cross-env CLI_ENV=private NODE_ENV=development node ./bin/cli release",
58
- "changelog": "npx cross-env CLI_ENV=private NODE_ENV=development node ./bin/cli changelog",
59
- "example:reset": "git checkout --no-overlay -- example && cd example && git clean -fdX",
60
- "example:test": "npm run example:reset && cd example && npm install -D @hperchec/juisy@file:../ && npx juisy squeeze && npm run docs:readme",
61
- "git-hooks:reset": "npx cross-env CLI_ENV=private NODE_ENV=development node ./bin/cli git-hooks reset",
62
- "git-hooks:sync": "npx cross-env CLI_ENV=private NODE_ENV=development node ./bin/cli git-hooks sync",
63
- "print:globals": "node --no-warnings ./bin/cli print:globals",
64
- "test": "npx cross-env CLI_ENV=private node ./bin/cli test",
65
- "test:dev": "npm test -- --watch",
66
- "test:ui": "npm test -- --ui",
67
- "__prepare": "npm run git-hooks:sync"
68
- },
69
- "repository": {
70
- "type": "git",
71
- "url": "git+https://gitlab.com/hperchec/juisy.git"
72
- },
73
- "keywords": [
74
- "js",
75
- "build",
76
- "release",
77
- "changelog",
78
- "bin",
79
- "cmd",
80
- "easy"
81
- ],
82
- "author": {
83
- "name": "Hervé Perchec",
84
- "email": "contact@herve-perchec.com",
85
- "url": "https://gitlab.com/herveperchec"
86
- },
87
- "license": "ISC",
88
- "bugs": {
89
- "url": "https://gitlab.com/hperchec/juisy/issues"
90
- },
91
- "homepage": "https://gitlab.com/hperchec/juisy#readme",
92
- "bin": {
93
- "juisy": "./bin/cli/index.js"
94
- },
95
- "simple-git-hooks": {
96
- "pre-commit": "node ./bin/scripts/pre-commit.js",
97
- "commit-msg": "node ./bin/scripts/commit-msg.js ${1}"
98
- },
99
- "lint-staged": {
100
- "*.{js,cjs,ts}": [
101
- "eslint --fix",
102
- "git add"
103
- ]
104
- },
105
- "peerDependencies": {
106
- "@commitlint/cli": "^17.7.2",
107
- "@commitlint/config-conventional": "^17.7.0",
108
- "@github/markdownlint-github": "^0.6.0",
109
- "@hperchec/readme-generator": "^3.0.0",
110
- "@stylistic/eslint-plugin": "^2",
111
- "@typescript-eslint/eslint-plugin": "^8",
112
- "chalk": "^4.1.2",
113
- "conventional-changelog-cli": "^4.1.0",
114
- "eslint": "^9",
115
- "execa": "^5.1.1",
116
- "lint-staged": "^14.0.1",
117
- "markdownlint-cli2": "^0.12.1",
118
- "markdownlint-cli2-formatter-pretty": "^0.0.6",
119
- "prompts": "^2.4.2",
120
- "simple-git-hooks": "^2.9.0",
121
- "yargs": "^17.7.2"
122
- },
123
- "devDependencies": {
124
- "@commitlint/cli": "^19.6.1",
125
- "@commitlint/config-conventional": "^19.6.0",
126
- "@github/markdownlint-github": "^0.6.3",
127
- "@rollup/plugin-typescript": "^12.1.2",
128
- "@stylistic/eslint-plugin": "^2.12.1",
129
- "@types/ejs": "^3.1.5",
130
- "@types/fs-extra": "^11.0.4",
131
- "@types/lodash.merge": "^4.6.9",
132
- "@types/prompts": "^2.4.9",
133
- "@types/yargs": "^17.0.33",
134
- "@typescript-eslint/eslint-plugin": "^8.18.1",
135
- "@vitest/coverage-v8": "^2.1.8",
136
- "@vitest/ui": "^2.1.8",
137
- "conventional-changelog-cli": "^5.0.0",
138
- "eslint": "^9.17.0",
139
- "happy-dom": "^15.11.7",
140
- "lint-staged": "^14.0.1",
141
- "markdown-table": "^3.0.4",
142
- "markdownlint-cli2": "^0.16.0",
143
- "markdownlint-cli2-formatter-pretty": "^0.0.7",
144
- "npm-check-updates": "^17.1.12",
145
- "typescript": "^5.7.2",
146
- "vite": "^5.4.11",
147
- "vite-plugin-dts": "^4.3.0",
148
- "vitest": "^2.1.8"
149
- },
150
- "dependencies": {
151
- "@dotenvx/dotenvx": "^1.31.0",
152
- "ascii-tree": "^0.3.0",
153
- "chalk": "^4.1.2",
154
- "deepmerge": "^4.3.1",
155
- "ejs": "^3.1.10",
156
- "execa": "^5.1.1",
157
- "find-up": "^7.0.0",
158
- "fs-extra": "^11.2.0",
159
- "github-slugger": "^2.0.0",
160
- "glob": "^11.0.0",
161
- "indent-string": "^5.0.0",
162
- "json-2-csv": "^5.5.7",
163
- "jstoxml": "^5.0.2",
164
- "lodash.merge": "^4.6.2",
165
- "loglevel": "^1.9.2",
166
- "markdown-toc": "^1.2.0",
167
- "markdown-utils": "^1.0.0",
168
- "package-json-type": "^1.0.3",
169
- "pkg-dir": "^8.0.0",
170
- "prompts": "^2.4.2",
171
- "remark": "^15.0.1",
172
- "remark-frontmatter": "^5.0.0",
173
- "remark-toc": "^9.0.0",
174
- "simple-git-hooks": "^2.9.0",
175
- "strip-ansi": "^7.1.0",
176
- "yaml": "^2.6.1",
177
- "yargs": "^17.7.2"
178
- }
179
- }
1
+ {
2
+ "name": "juisy",
3
+ "version": "2.0.0-beta.10",
4
+ "description": "Make your JavaScript (and/or TypeScript) project juicy!",
5
+ "type": "module",
6
+ "files": [
7
+ "bin",
8
+ "dist"
9
+ ],
10
+ "engines": {
11
+ "node": "^18.0.0 || ^20.0.0 || >=22.0.0"
12
+ },
13
+ "imports": {
14
+ "#juisy": {
15
+ "types": "./dist/index.d.ts",
16
+ "import": "./dist/index.js"
17
+ },
18
+ "#juisy/cli": {
19
+ "types": "./dist/cli/index.d.ts",
20
+ "import": "./dist/cli/index.js"
21
+ },
22
+ "#juisy/templater": {
23
+ "types": "./dist/templater/index.d.ts",
24
+ "import": "./dist/templater/index.js"
25
+ }
26
+ },
27
+ "exports": {
28
+ ".": {
29
+ "types": "./dist/index.d.ts",
30
+ "import": "./dist/index.js"
31
+ },
32
+ "./cli": {
33
+ "types": "./dist/cli/index.d.ts",
34
+ "import": "./dist/cli/index.js"
35
+ },
36
+ "./templater": {
37
+ "types": "./dist/templater/index.d.ts",
38
+ "import": "./dist/templater/index.js"
39
+ }
40
+ },
41
+ "publishConfig": {
42
+ "access": "public"
43
+ },
44
+ "scripts": {
45
+ "build": "vite build",
46
+ "audit": "ncu && npm audit",
47
+ "audit:fix": "ncu --interactive",
48
+ "docs": "npm run docs:cli && npm run docs:api",
49
+ "docs:api": "node ./bin/cli docs generate:api",
50
+ "docs:cli": "npm run docs:cli:private && npm run docs:cli:public",
51
+ "docs:cli:private": "node ./bin/cli docs generate:cli -c ./docs/cli/private/config.js",
52
+ "docs:cli:public": "node ./bin/cli docs generate:cli -c ./docs/cli/public/config.js",
53
+ "example:reset": "git checkout --no-overlay -- example && cd example && git clean -fdX",
54
+ "example:test": "npm run example:reset && cd example && npm install -D juisy@file:../ && npx juisy squeeze && npm run docs:readme",
55
+ "print:globals": "node --no-warnings ./bin/cli print:globals",
56
+ "release": "release-it",
57
+ "test": "node ./bin/cli test",
58
+ "test:dev": "npm test -- --watch",
59
+ "test:ui": "npm test -- --ui"
60
+ },
61
+ "repository": {
62
+ "type": "git",
63
+ "url": "git+https://gitlab.com/hperchec/juisy.git"
64
+ },
65
+ "keywords": [
66
+ "js",
67
+ "build",
68
+ "release",
69
+ "changelog",
70
+ "bin",
71
+ "cmd",
72
+ "easy"
73
+ ],
74
+ "author": {
75
+ "name": "Hervé Perchec",
76
+ "email": "contact@herve-perchec.com",
77
+ "url": "https://gitlab.com/herveperchec"
78
+ },
79
+ "license": "GPL-3.0-only",
80
+ "bugs": {
81
+ "url": "https://gitlab.com/hperchec/juisy/issues"
82
+ },
83
+ "homepage": "https://hperchec.gitlab.io/juisy",
84
+ "bin": {
85
+ "juisy": "./bin/cli/index.js"
86
+ },
87
+ "peerDependencies": {
88
+ "@commitlint/cli": "^19.6.1",
89
+ "@commitlint/config-conventional": "^19.6.0",
90
+ "@github/markdownlint-github": "^0.7.0",
91
+ "@release-it/bumper": "6.0.1",
92
+ "@release-it/conventional-changelog": "^9.0.4",
93
+ "@stylistic/eslint-plugin": "^2",
94
+ "@typescript-eslint/eslint-plugin": "^8",
95
+ "chalk": "^4.1.2",
96
+ "conventional-changelog-cli": "^5.0.0",
97
+ "eslint": "^9",
98
+ "lint-staged": "^14.0.1",
99
+ "markdownlint-cli2": "^0.12.0",
100
+ "markdownlint-cli2-formatter-pretty": "^0.0.7",
101
+ "prompts": "^2.4.2",
102
+ "release-it": "^17.11.0",
103
+ "simple-git-hooks": "^2.9.0",
104
+ "yargs": "^17.7.2"
105
+ },
106
+ "peerDependenciesMeta": {
107
+ "@github/markdownlint-github": {
108
+ "optional": true
109
+ },
110
+ "@release-it/bumper": {
111
+ "optional": true
112
+ },
113
+ "@release-it/conventional-changelog": {
114
+ "optional": true
115
+ },
116
+ "markdownlint-cli2-formatter-pretty": {
117
+ "optional": true
118
+ }
119
+ },
120
+ "devDependencies": {
121
+ "@babel/eslint-parser": "^7.25.9",
122
+ "@conventional-changelog/git-client": "^1.0.1",
123
+ "@rollup/plugin-typescript": "^12.1.2",
124
+ "@stylistic/eslint-plugin": "^2.12.1",
125
+ "@types/conventional-changelog": "^3.1.5",
126
+ "@types/conventional-changelog-config-spec": "^2.1.5",
127
+ "@types/ejs": "^3.1.5",
128
+ "@types/fs-extra": "^11.0.4",
129
+ "@types/lint-staged": "^13.3.0",
130
+ "@types/lodash.get": "^4.4.9",
131
+ "@types/lodash.kebabcase": "^4.1.9",
132
+ "@types/lodash.merge": "^4.6.9",
133
+ "@types/lodash.set": "^4.3.9",
134
+ "@types/node": "^22.10.2",
135
+ "@types/prompts": "^2.4.9",
136
+ "@types/semver": "^7.5.8",
137
+ "@types/yargs": "^17.0.33",
138
+ "@types/yargs-parser": "^21.0.3",
139
+ "@typescript-eslint/eslint-plugin": "^8.18.1",
140
+ "@vitest/coverage-v8": "^2.1.8",
141
+ "@vitest/ui": "^2.1.8",
142
+ "cpy-cli": "^5.0.0",
143
+ "eslint": "^9.17.0",
144
+ "happy-dom": "^15.11.7",
145
+ "json-schema-to-ts": "^3.1.1",
146
+ "lint-staged": "^14.0.1",
147
+ "markdown-table": "^3.0.4",
148
+ "npm-check-updates": "^17.1.12",
149
+ "quicktype": "^23.0.170",
150
+ "typescript": "^5.7.2",
151
+ "vite": "^5.4.11",
152
+ "vite-plugin-dts": "^4.3.0",
153
+ "vite-plugin-generate-file": "^0.2.0",
154
+ "vitest": "^2.1.8"
155
+ },
156
+ "dependencies": {
157
+ "@dotenvx/dotenvx": "^1.31.0",
158
+ "ascii-tree": "^0.3.0",
159
+ "chalk": "^4.1.2",
160
+ "conventional-recommended-bump": "^10.0.0",
161
+ "deepmerge": "^4.3.1",
162
+ "ejs": "^3.1.10",
163
+ "execa": "^8",
164
+ "find-up": "^7.0.0",
165
+ "fs-extra": "^11.2.0",
166
+ "github-slugger": "^2.0.0",
167
+ "glob": "^11.0.0",
168
+ "handlebars": "^4.7.8",
169
+ "import-single-ts": "^1.2.0",
170
+ "indent-string": "^5.0.0",
171
+ "json-2-csv": "^5.5.7",
172
+ "jstoxml": "^5.0.2",
173
+ "lodash.get": "^4.4.2",
174
+ "lodash.kebabcase": "^4.1.1",
175
+ "lodash.merge": "^4.6.2",
176
+ "lodash.set": "^4.3.2",
177
+ "loglevel": "^1.9.2",
178
+ "markdown-toc": "^1.2.0",
179
+ "markdown-utils": "^1.0.0",
180
+ "package-json-type": "^1.0.3",
181
+ "pkg-dir": "^8.0.0",
182
+ "prompts": "^2.4.2",
183
+ "remark": "^15.0.1",
184
+ "remark-frontmatter": "^5.0.0",
185
+ "remark-toc": "^9.0.0",
186
+ "semver": "^7.7.1",
187
+ "simple-git-hooks": "^2.9.0",
188
+ "strip-ansi": "^7.1.0",
189
+ "ts-json-schema-generator": "^2.3.0",
190
+ "typedoc": "^0.27.5",
191
+ "typedoc-plugin-frontmatter": "^1.1.2",
192
+ "typedoc-plugin-markdown": "^4.3.3",
193
+ "typedoc-vitepress-theme": "^1.1.1",
194
+ "yaml": "^2.6.1",
195
+ "yargs": "^17.7.2",
196
+ "yargs-parser": "^21.1.1"
197
+ },
198
+ "release-it": {
199
+ "git": false
200
+ }
201
+ }