@rbleattler/omp-ts-typegen 0.2025.0

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.
@@ -0,0 +1,398 @@
1
+ "use strict";
2
+ /**
3
+ * Oh My Posh TypeScript definitions
4
+ *
5
+ * Generated from schema: https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/refs/heads/main/themes/schema.json
6
+ * Generated on: 2025-03-08T22:14:34.473Z
7
+ *
8
+ * @see https://ohmyposh.dev/docs/
9
+ */
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.Convert = void 0;
12
+ // Converts JSON strings to/from your types
13
+ // and asserts the results of JSON.parse at runtime
14
+ class Convert {
15
+ static toOhMyPosh(json) {
16
+ return cast(JSON.parse(json), r("OhMyPosh"));
17
+ }
18
+ static ohMyPoshToJson(value) {
19
+ return JSON.stringify(uncast(value, r("OhMyPosh")), null, 2);
20
+ }
21
+ }
22
+ exports.Convert = Convert;
23
+ function invalidValue(typ, val, key, parent = '') {
24
+ const prettyTyp = prettyTypeName(typ);
25
+ const parentText = parent ? ` on ${parent}` : '';
26
+ const keyText = key ? ` for key "${key}"` : '';
27
+ throw Error(`Invalid value${keyText}${parentText}. Expected ${prettyTyp} but got ${JSON.stringify(val)}`);
28
+ }
29
+ function prettyTypeName(typ) {
30
+ if (Array.isArray(typ)) {
31
+ if (typ.length === 2 && typ[0] === undefined) {
32
+ return `an optional ${prettyTypeName(typ[1])}`;
33
+ }
34
+ else {
35
+ return `one of [${typ.map(a => { return prettyTypeName(a); }).join(", ")}]`;
36
+ }
37
+ }
38
+ else if (typeof typ === "object" && typ.literal !== undefined) {
39
+ return typ.literal;
40
+ }
41
+ else {
42
+ return typeof typ;
43
+ }
44
+ }
45
+ function jsonToJSProps(typ) {
46
+ if (typ.jsonToJS === undefined) {
47
+ const map = {};
48
+ typ.props.forEach((p) => map[p.json] = { key: p.js, typ: p.typ });
49
+ typ.jsonToJS = map;
50
+ }
51
+ return typ.jsonToJS;
52
+ }
53
+ function jsToJSONProps(typ) {
54
+ if (typ.jsToJSON === undefined) {
55
+ const map = {};
56
+ typ.props.forEach((p) => map[p.js] = { key: p.json, typ: p.typ });
57
+ typ.jsToJSON = map;
58
+ }
59
+ return typ.jsToJSON;
60
+ }
61
+ function transform(val, typ, getProps, key = '', parent = '') {
62
+ function transformPrimitive(typ, val) {
63
+ if (typeof typ === typeof val)
64
+ return val;
65
+ return invalidValue(typ, val, key, parent);
66
+ }
67
+ function transformUnion(typs, val) {
68
+ // val must validate against one typ in typs
69
+ const l = typs.length;
70
+ for (let i = 0; i < l; i++) {
71
+ const typ = typs[i];
72
+ try {
73
+ return transform(val, typ, getProps);
74
+ }
75
+ catch (_) { }
76
+ }
77
+ return invalidValue(typs, val, key, parent);
78
+ }
79
+ function transformEnum(cases, val) {
80
+ if (cases.indexOf(val) !== -1)
81
+ return val;
82
+ return invalidValue(cases.map(a => { return l(a); }), val, key, parent);
83
+ }
84
+ function transformArray(typ, val) {
85
+ // val must be an array with no invalid elements
86
+ if (!Array.isArray(val))
87
+ return invalidValue(l("array"), val, key, parent);
88
+ return val.map(el => transform(el, typ, getProps));
89
+ }
90
+ function transformDate(val) {
91
+ if (val === null) {
92
+ return null;
93
+ }
94
+ const d = new Date(val);
95
+ if (isNaN(d.valueOf())) {
96
+ return invalidValue(l("Date"), val, key, parent);
97
+ }
98
+ return d;
99
+ }
100
+ function transformObject(props, additional, val) {
101
+ if (val === null || typeof val !== "object" || Array.isArray(val)) {
102
+ return invalidValue(l(ref || "object"), val, key, parent);
103
+ }
104
+ const result = {};
105
+ Object.getOwnPropertyNames(props).forEach(key => {
106
+ const prop = props[key];
107
+ const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
108
+ result[prop.key] = transform(v, prop.typ, getProps, key, ref);
109
+ });
110
+ Object.getOwnPropertyNames(val).forEach(key => {
111
+ if (!Object.prototype.hasOwnProperty.call(props, key)) {
112
+ result[key] = transform(val[key], additional, getProps, key, ref);
113
+ }
114
+ });
115
+ return result;
116
+ }
117
+ if (typ === "any")
118
+ return val;
119
+ if (typ === null) {
120
+ if (val === null)
121
+ return val;
122
+ return invalidValue(typ, val, key, parent);
123
+ }
124
+ if (typ === false)
125
+ return invalidValue(typ, val, key, parent);
126
+ let ref = undefined;
127
+ while (typeof typ === "object" && typ.ref !== undefined) {
128
+ ref = typ.ref;
129
+ typ = typeMap[typ.ref];
130
+ }
131
+ if (Array.isArray(typ))
132
+ return transformEnum(typ, val);
133
+ if (typeof typ === "object") {
134
+ return typ.hasOwnProperty("unionMembers") ? transformUnion(typ.unionMembers, val)
135
+ : typ.hasOwnProperty("arrayItems") ? transformArray(typ.arrayItems, val)
136
+ : typ.hasOwnProperty("props") ? transformObject(getProps(typ), typ.additional, val)
137
+ : invalidValue(typ, val, key, parent);
138
+ }
139
+ // Numbers can be parsed by Date but shouldn't be.
140
+ if (typ === Date && typeof val !== "number")
141
+ return transformDate(val);
142
+ return transformPrimitive(typ, val);
143
+ }
144
+ function cast(val, typ) {
145
+ return transform(val, typ, jsonToJSProps);
146
+ }
147
+ function uncast(val, typ) {
148
+ return transform(val, typ, jsToJSONProps);
149
+ }
150
+ function l(typ) {
151
+ return { literal: typ };
152
+ }
153
+ function a(typ) {
154
+ return { arrayItems: typ };
155
+ }
156
+ function u(...typs) {
157
+ return { unionMembers: typs };
158
+ }
159
+ function o(props, additional) {
160
+ return { props, additional };
161
+ }
162
+ function m(additional) {
163
+ return { props: [], additional };
164
+ }
165
+ function r(name) {
166
+ return { ref: name };
167
+ }
168
+ const typeMap = {
169
+ "OhMyPosh": o([
170
+ { json: "accent_color", js: "accent_color", typ: u(undefined, "") },
171
+ { json: "blocks", js: "blocks", typ: a(r("Block")) },
172
+ { json: "console_title_template", js: "console_title_template", typ: u(undefined, "") },
173
+ { json: "cycle", js: "cycle", typ: u(undefined, a(u(a("any"), true, 3.14, 0, null, r("CycleObject"), ""))) },
174
+ { json: "debug_prompt", js: "debug_prompt", typ: u(undefined, r("ExtraPrompt")) },
175
+ { json: "enable_cursor_positioning", js: "enable_cursor_positioning", typ: u(undefined, true) },
176
+ { json: "error_line", js: "error_line", typ: u(undefined, r("ExtraPrompt")) },
177
+ { json: "final_space", js: "final_space", typ: u(undefined, true) },
178
+ { json: "iterm_features", js: "iterm_features", typ: u(undefined, a(r("TheITerm2FeaturesToEnable"))) },
179
+ { json: "palette", js: "palette", typ: u(undefined, m("")) },
180
+ { json: "palettes", js: "palettes", typ: u(undefined, r("Palettes")) },
181
+ { json: "patch_pwsh_bleed", js: "patch_pwsh_bleed", typ: u(undefined, true) },
182
+ { json: "pwd", js: "pwd", typ: u(undefined, "") },
183
+ { json: "secondary_prompt", js: "secondary_prompt", typ: u(undefined, r("ExtraPrompt")) },
184
+ { json: "shell_integration", js: "shell_integration", typ: u(undefined, true) },
185
+ { json: "terminal_background", js: "terminal_background", typ: u(undefined, "") },
186
+ { json: "tooltips", js: "tooltips", typ: u(undefined, a(r("TooltipListPromptElementsToDisplayBasedOnContext"))) },
187
+ { json: "transient_prompt", js: "transient_prompt", typ: u(undefined, r("TransientPromptSetting")) },
188
+ { json: "upgrade", js: "upgrade", typ: u(undefined, r("EnableUpgradeNotice")) },
189
+ { json: "valid_line", js: "valid_line", typ: u(undefined, r("ExtraPrompt")) },
190
+ { json: "var", js: "var", typ: u(undefined, m("any")) },
191
+ ], "any"),
192
+ "Block": o([
193
+ { json: "alignment", js: "alignment", typ: u(undefined, r("BlockAlignment")) },
194
+ { json: "leading_diamond", js: "leading_diamond", typ: u(undefined, "") },
195
+ { json: "newline", js: "newline", typ: u(undefined, true) },
196
+ { json: "segments", js: "segments", typ: u(undefined, a(r("Segment"))) },
197
+ { json: "trailing_diamond", js: "trailing_diamond", typ: u(undefined, "") },
198
+ { json: "type", js: "type", typ: u(undefined, r("BlockType")) },
199
+ ], "any"),
200
+ "Segment": o([
201
+ { json: "alias", js: "alias", typ: u(undefined, "") },
202
+ { json: "background", js: "background", typ: u(undefined, "") },
203
+ { json: "background_templates", js: "background_templates", typ: u(undefined, a("")) },
204
+ { json: "cache", js: "cache", typ: u(undefined, r("CacheSettings")) },
205
+ { json: "exclude_folders", js: "exclude_folders", typ: u(undefined, a("")) },
206
+ { json: "foreground", js: "foreground", typ: u(undefined, "") },
207
+ { json: "foreground_templates", js: "foreground_templates", typ: u(undefined, a("")) },
208
+ { json: "include_folders", js: "include_folders", typ: u(undefined, a("")) },
209
+ { json: "interactive", js: "interactive", typ: u(undefined, true) },
210
+ { json: "max_width", js: "max_width", typ: u(undefined, 0) },
211
+ { json: "min_width", js: "min_width", typ: u(undefined, 0) },
212
+ { json: "properties", js: "properties", typ: u(undefined, m("any")) },
213
+ { json: "style", js: "style", typ: "" },
214
+ { json: "template", js: "template", typ: u(undefined, "") },
215
+ { json: "templates_logic", js: "templates_logic", typ: u(undefined, r("TemplatesLogic")) },
216
+ { json: "type", js: "type", typ: r("SegmentType") },
217
+ ], "any"),
218
+ "CacheSettings": o([
219
+ { json: "duration", js: "duration", typ: u(undefined, "") },
220
+ { json: "strategy", js: "strategy", typ: u(undefined, r("CacheStrategy")) },
221
+ ], "any"),
222
+ "CycleObject": o([
223
+ { json: "background", js: "background", typ: u(undefined, "") },
224
+ { json: "foreground", js: "foreground", typ: u(undefined, "") },
225
+ ], "any"),
226
+ "ExtraPrompt": o([
227
+ { json: "background", js: "background", typ: u(undefined, "") },
228
+ { json: "background_templates", js: "background_templates", typ: u(undefined, a("")) },
229
+ { json: "foreground", js: "foreground", typ: u(undefined, "") },
230
+ { json: "foreground_templates", js: "foreground_templates", typ: u(undefined, a("")) },
231
+ { json: "template", js: "template", typ: u(undefined, "") },
232
+ ], "any"),
233
+ "Palettes": o([
234
+ { json: "list", js: "list", typ: u(undefined, m(m(""))) },
235
+ { json: "template", js: "template", typ: u(undefined, "") },
236
+ ], "any"),
237
+ "TooltipListPromptElementsToDisplayBasedOnContext": o([
238
+ { json: "alias", js: "alias", typ: u(undefined, "") },
239
+ { json: "background", js: "background", typ: u(undefined, "") },
240
+ { json: "background_templates", js: "background_templates", typ: u(undefined, a("")) },
241
+ { json: "cache", js: "cache", typ: u(undefined, r("CacheSettings")) },
242
+ { json: "exclude_folders", js: "exclude_folders", typ: u(undefined, a("")) },
243
+ { json: "foreground", js: "foreground", typ: u(undefined, "") },
244
+ { json: "foreground_templates", js: "foreground_templates", typ: u(undefined, a("")) },
245
+ { json: "include_folders", js: "include_folders", typ: u(undefined, a("")) },
246
+ { json: "interactive", js: "interactive", typ: u(undefined, true) },
247
+ { json: "max_width", js: "max_width", typ: u(undefined, 0) },
248
+ { json: "min_width", js: "min_width", typ: u(undefined, 0) },
249
+ { json: "properties", js: "properties", typ: u(undefined, m("any")) },
250
+ { json: "style", js: "style", typ: "" },
251
+ { json: "template", js: "template", typ: u(undefined, "") },
252
+ { json: "templates_logic", js: "templates_logic", typ: u(undefined, r("TemplatesLogic")) },
253
+ { json: "tips", js: "tips", typ: a("") },
254
+ { json: "type", js: "type", typ: r("SegmentType") },
255
+ ], "any"),
256
+ "TransientPromptSetting": o([
257
+ { json: "background", js: "background", typ: u(undefined, "") },
258
+ { json: "background_templates", js: "background_templates", typ: u(undefined, a("")) },
259
+ { json: "filler", js: "filler", typ: u(undefined, "") },
260
+ { json: "foreground", js: "foreground", typ: u(undefined, "") },
261
+ { json: "foreground_templates", js: "foreground_templates", typ: u(undefined, a("")) },
262
+ { json: "newline", js: "newline", typ: u(undefined, true) },
263
+ { json: "template", js: "template", typ: u(undefined, "") },
264
+ ], "any"),
265
+ "EnableUpgradeNotice": o([
266
+ { json: "auto", js: "auto", typ: u(undefined, true) },
267
+ { json: "interval", js: "interval", typ: u(undefined, "") },
268
+ { json: "notice", js: "notice", typ: u(undefined, true) },
269
+ { json: "source", js: "source", typ: u(undefined, r("Source")) },
270
+ ], "any"),
271
+ "BlockAlignment": [
272
+ "left",
273
+ "right",
274
+ ],
275
+ "CacheStrategy": [
276
+ "folder",
277
+ "session",
278
+ ],
279
+ "TemplatesLogic": [
280
+ "first_match",
281
+ "join",
282
+ ],
283
+ "SegmentType": [
284
+ "angular",
285
+ "argocd",
286
+ "aurelia",
287
+ "aws",
288
+ "az",
289
+ "azd",
290
+ "azfunc",
291
+ "battery",
292
+ "bazel",
293
+ "brewfather",
294
+ "buf",
295
+ "bun",
296
+ "carbonintensity",
297
+ "cds",
298
+ "cf",
299
+ "cftarget",
300
+ "cmake",
301
+ "command",
302
+ "connection",
303
+ "crystal",
304
+ "dart",
305
+ "deno",
306
+ "docker",
307
+ "dotnet",
308
+ "elixir",
309
+ "executiontime",
310
+ "firebase",
311
+ "flutter",
312
+ "fortran",
313
+ "fossil",
314
+ "gcp",
315
+ "git",
316
+ "gitversion",
317
+ "go",
318
+ "haskell",
319
+ "helm",
320
+ "ipify",
321
+ "java",
322
+ "julia",
323
+ "kotlin",
324
+ "kubectl",
325
+ "lastfm",
326
+ "lua",
327
+ "mercurial",
328
+ "mojo",
329
+ "mvn",
330
+ "nbgv",
331
+ "nightscout",
332
+ "nim",
333
+ "nix-shell",
334
+ "node",
335
+ "npm",
336
+ "nx",
337
+ "ocaml",
338
+ "os",
339
+ "owm",
340
+ "path",
341
+ "perl",
342
+ "php",
343
+ "plastic",
344
+ "pnpm",
345
+ "project",
346
+ "pulumi",
347
+ "python",
348
+ "quasar",
349
+ "r",
350
+ "react",
351
+ "root",
352
+ "ruby",
353
+ "rust",
354
+ "sapling",
355
+ "session",
356
+ "shell",
357
+ "sitecore",
358
+ "spotify",
359
+ "status",
360
+ "strava",
361
+ "svelte",
362
+ "svn",
363
+ "swift",
364
+ "sysinfo",
365
+ "talosctl",
366
+ "tauri",
367
+ "terraform",
368
+ "text",
369
+ "time",
370
+ "ui5tooling",
371
+ "umbraco",
372
+ "unity",
373
+ "upgrade",
374
+ "v",
375
+ "vala",
376
+ "wakatime",
377
+ "winreg",
378
+ "withings",
379
+ "xmake",
380
+ "yarn",
381
+ "ytm",
382
+ "zig",
383
+ ],
384
+ "BlockType": [
385
+ "prompt",
386
+ "rprompt",
387
+ ],
388
+ "TheITerm2FeaturesToEnable": [
389
+ "current_dir",
390
+ "prompt_mark",
391
+ "remote_host",
392
+ ],
393
+ "Source": [
394
+ "cdn",
395
+ "github",
396
+ ],
397
+ };
398
+ //# sourceMappingURL=omp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"omp.js","sourceRoot":"","sources":["../../src/types/omp.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,43 @@
1
+ {
2
+ "name": "@rbleattler/omp-ts-typegen",
3
+ "version": "0.2025.0",
4
+ "contributors": [
5
+ {
6
+ "name": "Rob Bleattler",
7
+ "email": "omp-ts-typegen@rbleattler.com"
8
+ }
9
+ ],
10
+ "author": "Rob Bleattler",
11
+ "description": "TypeScript type definitions for Oh My Posh schema",
12
+ "main": "dist/index.js",
13
+ "types": "dist/index.d.ts",
14
+ "scripts": {
15
+ "build": "tsc",
16
+ "generate-types": "ts-node --project tsconfig.scripts.json scripts/generate-types.ts",
17
+ "test-types": "ts-node --project tsconfig.scripts.json scripts/test-types.ts"
18
+ },
19
+ "repository": {
20
+ "type": "git",
21
+ "url": "git+https://github.com/rbleattler/omp-ts-typegen.git"
22
+ },
23
+ "keywords": [
24
+ "oh-my-posh",
25
+ "typescript",
26
+ "types"
27
+ ],
28
+ "license": "MIT",
29
+ "dependencies": {
30
+ "quicktype-core": "23.0.171"
31
+ },
32
+ "devDependencies": {
33
+ "@types/node": "22.13.9",
34
+ "axios": "1.8.2",
35
+ "chalk": "5.4.1",
36
+ "ts-node": "10.9.2",
37
+ "typescript": "5.8.2"
38
+ },
39
+ "bugs": {
40
+ "url": "https://github.com/rbleattler/omp-ts-typegen/issues"
41
+ },
42
+ "homepage": "https://github.com/rbleattler/omp-ts-typegen#readme"
43
+ }
package/readme.md ADDED
@@ -0,0 +1,130 @@
1
+ # Oh-My-Posh TypeScript Type Generator
2
+
3
+ ![Theme Validation](./theme-validation-badge.svg)
4
+
5
+ [Oh-my-posh](https://ohmyposh.dev) ([JanDeDobbeleer
6
+ oh-my-posh | github](https://github.com/jandedobbeleer/oh-my-posh)) is "A prompt theme engine for any shell." This project generates typescript types from the `oh-my-posh` schema. These types can then be used in other typescript projects to validate and work with `oh-my-posh` configuration files.
7
+
8
+ The typescript/javascript in this directory is used to generate typescript types from the `oh-my-posh` [(oh-my-posh.dev)](https://ohmyposh.dev/) schema. These types can then be used in other typescript projects to validate and work with `oh-my-posh` configuration files.
9
+
10
+ For a detailed explanation of the schema, see [schema-explained.md](schema-explained.md).
11
+
12
+ ## Goals
13
+
14
+ - Generate typescript types from the `oh-my-posh` schema
15
+ - Which can be used to:
16
+ - Validate `oh-my-posh` configuration files
17
+ - Work with `oh-my-posh` configuration files in typescript projects
18
+ - Generate documentation for `oh-my-posh` configuration files
19
+ - Build `oh-my-posh` configuration files programmatically
20
+ - Which are easy to:
21
+ - Understand
22
+ - Use
23
+ - Maintain
24
+ - Extend
25
+ - Generate documentation for `oh-my-posh` configuration files
26
+ - Which is easy to:
27
+ - Understand
28
+ - Use
29
+ - Maintain
30
+ - Extend
31
+
32
+ ## Installation
33
+
34
+ ```bash
35
+ # Clone the repository
36
+ git clone https://github.com/yourusername/omp-ts-typegen.git
37
+ cd omp-ts-typegen
38
+
39
+ # Install dependencies
40
+ npm install
41
+ ```
42
+
43
+ ## How It Works
44
+
45
+ This project automatically generates TypeScript type definitions from the Oh My Posh JSON schema:
46
+
47
+ 1. The script fetches the latest schema from the [Oh My Posh repository](https://github.com/JanDeDobbeleer/oh-my-posh)
48
+ 2. The schema is cached locally for future reference
49
+ 3. [quicktype](https://github.com/quicktype/quicktype) is used to convert the JSON schema into TypeScript types
50
+ 4. The generated types are saved to the `src/types/omp.ts` file
51
+ 5. These types are then exported via the main entry point (`src/index.ts`)
52
+
53
+ A GitHub workflow runs nightly to check for schema updates and regenerate types if needed.
54
+
55
+ ## Usage
56
+
57
+ ### Generating Types
58
+
59
+ ```bash
60
+ # Generate types from the Oh My Posh schema
61
+ npm run generate-types
62
+
63
+ # Test the generated types against all Oh My Posh themes
64
+ # This will also generate a theme-validation.md report
65
+ npm run test-types
66
+
67
+ # Build the package
68
+ npm run build
69
+ ```
70
+
71
+ ### Validation Report
72
+
73
+ When running `npm run test-types`, the script will:
74
+
75
+ 1. Clone the Oh My Posh repository and test all themes against the generated types
76
+ 2. Generate a markdown report (`theme-validation.md`) showing which themes are valid or invalid
77
+ 3. Create a custom SVG badge showing validation status
78
+ 4. Exit with a non-zero code if any themes are invalid
79
+
80
+ The validation report includes:
81
+
82
+ - A summary of validation results (total themes, valid count, invalid count)
83
+ - A table listing all themes with links to their source files
84
+ - Status indicators showing which themes pass validation
85
+ - A custom SVG badge that is displayed in the README
86
+
87
+ ### Using the Generated Types
88
+
89
+ Once you've installed this package in your project, you can use the generated types:
90
+
91
+ ```typescript
92
+ import { OhMyPosh } from 'omp-ts-typegen';
93
+
94
+ // Use the types to validate or work with Oh My Posh config files
95
+ const myConfig: OhMyPosh = {
96
+ // Your config here
97
+ };
98
+ ```
99
+
100
+ ## Project Structure
101
+
102
+ - `/scripts` - Contains the TypeScript scripts for generating and testing types
103
+ - `generate-types.ts` - Fetches the schema and generates types
104
+ - `test-types.ts` - Tests the generated types against sample configs
105
+ - `validator.ts` - Provides validation functionality
106
+ - `update-changelog.ts` - Updates the changelog when the types change
107
+ - `/src` - Contains the generated TypeScript types
108
+ - `types/omp.ts` - The generated TypeScript types
109
+ - `index.ts` - Exports the types for use in other projects
110
+ - `/cache` - Stores the cached schema for comparison
111
+ - `/cache/oh-my-posh` - Cached clone of the Oh My Posh repository for validation
112
+ - `/temp` - Temporary directory used during testing
113
+ - `theme-validation.md` - Report of theme validation results
114
+ - `theme-validation-badge.svg` - Visual badge showing theme validation status
115
+ - `/.github/workflows` - CI/CD workflows, including the nightly type generation
116
+
117
+ ## Requirements
118
+
119
+ - Node.js 18+
120
+ - ESM-compatible environment (for chalk v5+ and other ESM dependencies)
121
+
122
+ ## Contributing
123
+
124
+ Contributions are welcome! Please feel free to submit a Pull Request.
125
+
126
+ 1. Fork the repository
127
+ 2. Create your feature branch (`git checkout -b feature/amazing-feature`)
128
+ 3. Commit your changes (`git commit -m 'Add some amazing feature'`)
129
+ 4. Push to the branch (`git push origin feature/amazing-feature`)
130
+ 5. Open a Pull Request