@springmicro/cli 0.1.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.
package/bin/dev.cmd ADDED
@@ -0,0 +1,3 @@
1
+ @echo off
2
+
3
+ node --loader ts-node/esm --no-warnings=ExperimentalWarning "%~dp0\dev" %*
package/bin/dev.js ADDED
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env -S node --loader ts-node/esm --no-warnings=ExperimentalWarning
2
+
3
+ // eslint-disable-next-line n/shebang
4
+ import {execute} from '@oclif/core'
5
+
6
+ await execute({development: true, dir: import.meta.url})
package/bin/run.cmd ADDED
@@ -0,0 +1,3 @@
1
+ @echo off
2
+
3
+ node "%~dp0\run" %*
package/bin/run.js ADDED
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env node
2
+
3
+ import {execute} from '@oclif/core'
4
+
5
+ await execute({dir: import.meta.url})
@@ -0,0 +1,16 @@
1
+ import { Command } from '@oclif/core';
2
+ export default class Astro extends Command {
3
+ static step: number;
4
+ static totalSteps: number;
5
+ static description: string;
6
+ static examples: string[];
7
+ static flags: {
8
+ name: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
9
+ };
10
+ /**
11
+ * Uses the batteries-included template from https://github.com/withastro/astro/tree/main/examples/blog
12
+ */
13
+ astroCreate(args: Record<string, string>, flags: Record<string, string>): Promise<void>;
14
+ astroFileManip(args: Record<string, string>, flags: Record<string, string>): void;
15
+ run(): Promise<void>;
16
+ }
@@ -0,0 +1,85 @@
1
+ import { Command, Flags } from '@oclif/core';
2
+ import { spawn } from 'node:child_process';
3
+ import fs from 'node:fs';
4
+ import path from 'node:path';
5
+ import { tailwindConfigMjs, globalsCSS, libUtils, componentsJSON } from '../../data/astro/index.js';
6
+ import chalk from 'chalk';
7
+ import { logStep } from '../../log/index.js';
8
+ export default class Astro extends Command {
9
+ static step = 1;
10
+ static totalSteps = 2;
11
+ // static override args = {
12
+ // file: Args.string({description: 'file to read'}),
13
+ // }
14
+ static description = "Initialize a Astro project according to SpringMicroHost's specifications.";
15
+ static examples = ['<%= config.bin %> <%= command.id %> -n <project-name>'];
16
+ static flags = {
17
+ name: Flags.string({ char: 'n', description: 'Project name', required: true }),
18
+ };
19
+ /**
20
+ * Uses the batteries-included template from https://github.com/withastro/astro/tree/main/examples/blog
21
+ */
22
+ async astroCreate(args, flags) {
23
+ const { name } = flags;
24
+ if (fs.existsSync(name)) {
25
+ this.log(chalk.red('Filesystem already exists at ' + chalk.bold(name) + ', exiting...'));
26
+ this.exit(1);
27
+ }
28
+ logStep('Initializing Astro project...', Astro.step, Astro.totalSteps);
29
+ const astroPS = spawn('sh', [path.join('scripts', 'astro.sh'), name], {
30
+ stdio: 'inherit', // This ensures the child process's stdio is piped directly to the parent process's stdio
31
+ });
32
+ astroPS.on('close', (code) => {
33
+ console.log(`child process close all stdio with code ${code}`);
34
+ this.astroFileManip(args, flags);
35
+ });
36
+ astroPS.on('exit', (code) => {
37
+ console.log(`child process exited with code ${code}`);
38
+ });
39
+ }
40
+ astroFileManip(args, flags) {
41
+ const { name } = flags;
42
+ logStep('Manipulating project files.', Astro.step, Astro.totalSteps);
43
+ const componentsJSONFilePath = path.join(name, 'components.json');
44
+ const tsConfigFilePath = path.join(name, 'tsconfig.json');
45
+ const tailwindConfigFilePath = path.join(name, 'tailwind.config.mjs');
46
+ const globalsCSSFilePath = path.join(name, 'src', 'styles', 'global.css');
47
+ const libUtilsPath = path.join(name, 'src', 'lib');
48
+ const libUtilsFilePath = path.join(libUtilsPath, 'utils.ts');
49
+ const publicFontsDirPath = path.join(name, 'public', 'fonts');
50
+ const tsConfig = JSON.parse(fs.readFileSync(tsConfigFilePath).toString());
51
+ // see https://ui.shadcn.com/docs/installation/manual
52
+ // extracted 6/6/2024
53
+ tsConfig['compilerOptions'] = {
54
+ ...tsConfig['compilerOptions'],
55
+ baseUrl: '.',
56
+ paths: {
57
+ '@/*': ['./*'],
58
+ },
59
+ };
60
+ this.log('write to ' + chalk.cyan(tsConfigFilePath));
61
+ fs.writeFileSync(tsConfigFilePath, JSON.stringify(tsConfig, null, 2));
62
+ this.log('write to ' + chalk.cyan(tailwindConfigFilePath));
63
+ fs.writeFileSync(tailwindConfigFilePath, tailwindConfigMjs);
64
+ this.log('write to ' + chalk.cyan(componentsJSONFilePath));
65
+ fs.writeFileSync(componentsJSONFilePath, componentsJSON);
66
+ this.log('write to ' + chalk.cyan(globalsCSSFilePath));
67
+ fs.writeFileSync(globalsCSSFilePath, globalsCSS);
68
+ this.log('write to ' + chalk.cyan(libUtilsFilePath));
69
+ if (!fs.existsSync(libUtilsPath)) {
70
+ fs.mkdirSync(libUtilsPath, { recursive: true });
71
+ }
72
+ fs.writeFileSync(libUtilsFilePath, libUtils);
73
+ // remove any extra files
74
+ this.log('remove unused ' + chalk.red(publicFontsDirPath));
75
+ fs.rmSync(publicFontsDirPath, {
76
+ force: true,
77
+ recursive: true,
78
+ });
79
+ }
80
+ async run() {
81
+ const { args, flags } = await this.parse(Astro);
82
+ // const {name} = flags;
83
+ await this.astroCreate(args, flags);
84
+ }
85
+ }
@@ -0,0 +1,12 @@
1
+ import { Command } from '@oclif/core';
2
+ export default class Init extends Command {
3
+ static args: {
4
+ projectType: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
5
+ };
6
+ static description: string;
7
+ static examples: string[];
8
+ static flags: {
9
+ name: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
10
+ };
11
+ run(): Promise<void>;
12
+ }
@@ -0,0 +1,16 @@
1
+ import { Args, Command, Flags } from '@oclif/core';
2
+ export default class Init extends Command {
3
+ static args = {
4
+ projectType: Args.string({ description: 'Project type (astro)', required: true }),
5
+ };
6
+ static description = "Initialize a JavaScript framework project according to SpringMicroHost's specifications.";
7
+ static examples = [`<%= config.bin %> <%= command.id %> astro -n example`];
8
+ static flags = {
9
+ name: Flags.string({ char: 'n', description: 'Project name', required: true }),
10
+ };
11
+ async run() {
12
+ const { args, flags } = await this.parse(Init);
13
+ const { name } = flags;
14
+ this.error(`Project type ${name} not supported. Try "astro"`);
15
+ }
16
+ }
@@ -0,0 +1,8 @@
1
+ export declare const tailwindConfigMjs = "const { fontFamily } = require(\"tailwindcss/defaultTheme\")\n\n/** @type {import('tailwindcss').Config} */\nmodule.exports = {\n darkMode: [\"class\"],\n content: [\"./src/**/*.{ts,tsx,astro}\"],\n theme: {\n container: {\n center: true,\n padding: \"2rem\",\n screens: {\n \"2xl\": \"1400px\",\n },\n },\n extend: {\n colors: {\n border: \"hsl(var(--border))\",\n input: \"hsl(var(--input))\",\n ring: \"hsl(var(--ring))\",\n background: \"hsl(var(--background))\",\n foreground: \"hsl(var(--foreground))\",\n primary: {\n DEFAULT: \"hsl(var(--primary))\",\n foreground: \"hsl(var(--primary-foreground))\",\n },\n secondary: {\n DEFAULT: \"hsl(var(--secondary))\",\n foreground: \"hsl(var(--secondary-foreground))\",\n },\n destructive: {\n DEFAULT: \"hsl(var(--destructive))\",\n foreground: \"hsl(var(--destructive-foreground))\",\n },\n muted: {\n DEFAULT: \"hsl(var(--muted))\",\n foreground: \"hsl(var(--muted-foreground))\",\n },\n accent: {\n DEFAULT: \"hsl(var(--accent))\",\n foreground: \"hsl(var(--accent-foreground))\",\n },\n popover: {\n DEFAULT: \"hsl(var(--popover))\",\n foreground: \"hsl(var(--popover-foreground))\",\n },\n card: {\n DEFAULT: \"hsl(var(--card))\",\n foreground: \"hsl(var(--card-foreground))\",\n },\n },\n borderRadius: {\n lg: `var(--radius)`,\n md: `calc(var(--radius) - 2px)`,\n sm: \"calc(var(--radius) - 4px)\",\n },\n fontFamily: {\n sans: [\"var(--font-sans)\", ...fontFamily.sans],\n },\n keyframes: {\n \"accordion-down\": {\n from: { height: \"0\" },\n to: { height: \"var(--radix-accordion-content-height)\" },\n },\n \"accordion-up\": {\n from: { height: \"var(--radix-accordion-content-height)\" },\n to: { height: \"0\" },\n },\n },\n animation: {\n \"accordion-down\": \"accordion-down 0.2s ease-out\",\n \"accordion-up\": \"accordion-up 0.2s ease-out\",\n },\n },\n },\n plugins: [require(\"tailwindcss-animate\")],\n}";
2
+ export declare const globalsCSS = "@tailwind base;\n@tailwind components;\n@tailwind utilities;\n\n@layer base {\n :root {\n /* default font added */\n --font-sans: ui-sans-serif;\n\n --background: 0 0% 100%;\n --foreground: 222.2 47.4% 11.2%;\n\n --muted: 210 40% 96.1%;\n --muted-foreground: 215.4 16.3% 46.9%;\n\n --popover: 0 0% 100%;\n --popover-foreground: 222.2 47.4% 11.2%;\n\n --border: 214.3 31.8% 91.4%;\n --input: 214.3 31.8% 91.4%;\n\n --card: 0 0% 100%;\n --card-foreground: 222.2 47.4% 11.2%;\n\n --primary: 222.2 47.4% 11.2%;\n --primary-foreground: 210 40% 98%;\n\n --secondary: 210 40% 96.1%;\n --secondary-foreground: 222.2 47.4% 11.2%;\n\n --accent: 210 40% 96.1%;\n --accent-foreground: 222.2 47.4% 11.2%;\n\n --destructive: 0 100% 50%;\n --destructive-foreground: 210 40% 98%;\n\n --ring: 215 20.2% 65.1%;\n\n --radius: 0.5rem;\n }\n\n .dark {\n --background: 224 71% 4%;\n --foreground: 213 31% 91%;\n\n --muted: 223 47% 11%;\n --muted-foreground: 215.4 16.3% 56.9%;\n\n --accent: 216 34% 17%;\n --accent-foreground: 210 40% 98%;\n\n --popover: 224 71% 4%;\n --popover-foreground: 215 20.2% 65.1%;\n\n --border: 216 34% 17%;\n --input: 216 34% 17%;\n\n --card: 224 71% 4%;\n --card-foreground: 213 31% 91%;\n\n --primary: 210 40% 98%;\n --primary-foreground: 222.2 47.4% 1.2%;\n\n --secondary: 222.2 47.4% 11.2%;\n --secondary-foreground: 210 40% 98%;\n\n --destructive: 0 63% 31%;\n --destructive-foreground: 210 40% 98%;\n\n --ring: 216 34% 17%;\n\n --radius: 0.5rem;\n }\n}\n\n@layer base {\n * {\n @apply border-border;\n }\n body {\n @apply bg-background text-foreground;\n font-feature-settings: \"rlig\" 1, \"calt\" 1;\n }\n /* custom from blog astro template */\n main {\n width: 720px;\n max-width: calc(100% - 2em);\n margin: auto;\n padding: 3em 1em;\n }\n .prose p {\n\t margin-bottom: 2em;\n }\n}\n";
3
+ export declare const libUtils = "import { clsx, type ClassValue } from \"clsx\"\nimport { twMerge } from \"tailwind-merge\"\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n";
4
+ /**
5
+ * from https://ui.shadcn.com/docs/components-json
6
+ * only change is globals.css => global.css
7
+ */
8
+ export declare const componentsJSON = "{\n \"$schema\": \"https://ui.shadcn.com/schema.json\",\n \"style\": \"default\",\n \"rsc\": false,\n \"tsx\": true,\n \"tailwind\": {\n \"config\": \"tailwind.config.mjs\",\n \"css\": \"./src/styles/global.css\",\n \"baseColor\": \"slate\",\n \"cssVariables\": true,\n \"prefix\": \"\"\n },\n \"aliases\": {\n \"components\": \"@/components\",\n \"utils\": \"@/lib/utils\"\n }\n}";
@@ -0,0 +1,202 @@
1
+ // file content from https://ui.shadcn.com/docs/installation/manual
2
+ // unless otherwise specified
3
+ // site last accessed 6/6/2024
4
+ export const tailwindConfigMjs = `const { fontFamily } = require("tailwindcss/defaultTheme")
5
+
6
+ /** @type {import('tailwindcss').Config} */
7
+ module.exports = {
8
+ darkMode: ["class"],
9
+ content: ["./src/**/*.{ts,tsx,astro}"],
10
+ theme: {
11
+ container: {
12
+ center: true,
13
+ padding: "2rem",
14
+ screens: {
15
+ "2xl": "1400px",
16
+ },
17
+ },
18
+ extend: {
19
+ colors: {
20
+ border: "hsl(var(--border))",
21
+ input: "hsl(var(--input))",
22
+ ring: "hsl(var(--ring))",
23
+ background: "hsl(var(--background))",
24
+ foreground: "hsl(var(--foreground))",
25
+ primary: {
26
+ DEFAULT: "hsl(var(--primary))",
27
+ foreground: "hsl(var(--primary-foreground))",
28
+ },
29
+ secondary: {
30
+ DEFAULT: "hsl(var(--secondary))",
31
+ foreground: "hsl(var(--secondary-foreground))",
32
+ },
33
+ destructive: {
34
+ DEFAULT: "hsl(var(--destructive))",
35
+ foreground: "hsl(var(--destructive-foreground))",
36
+ },
37
+ muted: {
38
+ DEFAULT: "hsl(var(--muted))",
39
+ foreground: "hsl(var(--muted-foreground))",
40
+ },
41
+ accent: {
42
+ DEFAULT: "hsl(var(--accent))",
43
+ foreground: "hsl(var(--accent-foreground))",
44
+ },
45
+ popover: {
46
+ DEFAULT: "hsl(var(--popover))",
47
+ foreground: "hsl(var(--popover-foreground))",
48
+ },
49
+ card: {
50
+ DEFAULT: "hsl(var(--card))",
51
+ foreground: "hsl(var(--card-foreground))",
52
+ },
53
+ },
54
+ borderRadius: {
55
+ lg: \`var(--radius)\`,
56
+ md: \`calc(var(--radius) - 2px)\`,
57
+ sm: "calc(var(--radius) - 4px)",
58
+ },
59
+ fontFamily: {
60
+ sans: ["var(--font-sans)", ...fontFamily.sans],
61
+ },
62
+ keyframes: {
63
+ "accordion-down": {
64
+ from: { height: "0" },
65
+ to: { height: "var(--radix-accordion-content-height)" },
66
+ },
67
+ "accordion-up": {
68
+ from: { height: "var(--radix-accordion-content-height)" },
69
+ to: { height: "0" },
70
+ },
71
+ },
72
+ animation: {
73
+ "accordion-down": "accordion-down 0.2s ease-out",
74
+ "accordion-up": "accordion-up 0.2s ease-out",
75
+ },
76
+ },
77
+ },
78
+ plugins: [require("tailwindcss-animate")],
79
+ }`;
80
+ export const globalsCSS = `@tailwind base;
81
+ @tailwind components;
82
+ @tailwind utilities;
83
+
84
+ @layer base {
85
+ :root {
86
+ /* default font added */
87
+ --font-sans: ui-sans-serif;
88
+
89
+ --background: 0 0% 100%;
90
+ --foreground: 222.2 47.4% 11.2%;
91
+
92
+ --muted: 210 40% 96.1%;
93
+ --muted-foreground: 215.4 16.3% 46.9%;
94
+
95
+ --popover: 0 0% 100%;
96
+ --popover-foreground: 222.2 47.4% 11.2%;
97
+
98
+ --border: 214.3 31.8% 91.4%;
99
+ --input: 214.3 31.8% 91.4%;
100
+
101
+ --card: 0 0% 100%;
102
+ --card-foreground: 222.2 47.4% 11.2%;
103
+
104
+ --primary: 222.2 47.4% 11.2%;
105
+ --primary-foreground: 210 40% 98%;
106
+
107
+ --secondary: 210 40% 96.1%;
108
+ --secondary-foreground: 222.2 47.4% 11.2%;
109
+
110
+ --accent: 210 40% 96.1%;
111
+ --accent-foreground: 222.2 47.4% 11.2%;
112
+
113
+ --destructive: 0 100% 50%;
114
+ --destructive-foreground: 210 40% 98%;
115
+
116
+ --ring: 215 20.2% 65.1%;
117
+
118
+ --radius: 0.5rem;
119
+ }
120
+
121
+ .dark {
122
+ --background: 224 71% 4%;
123
+ --foreground: 213 31% 91%;
124
+
125
+ --muted: 223 47% 11%;
126
+ --muted-foreground: 215.4 16.3% 56.9%;
127
+
128
+ --accent: 216 34% 17%;
129
+ --accent-foreground: 210 40% 98%;
130
+
131
+ --popover: 224 71% 4%;
132
+ --popover-foreground: 215 20.2% 65.1%;
133
+
134
+ --border: 216 34% 17%;
135
+ --input: 216 34% 17%;
136
+
137
+ --card: 224 71% 4%;
138
+ --card-foreground: 213 31% 91%;
139
+
140
+ --primary: 210 40% 98%;
141
+ --primary-foreground: 222.2 47.4% 1.2%;
142
+
143
+ --secondary: 222.2 47.4% 11.2%;
144
+ --secondary-foreground: 210 40% 98%;
145
+
146
+ --destructive: 0 63% 31%;
147
+ --destructive-foreground: 210 40% 98%;
148
+
149
+ --ring: 216 34% 17%;
150
+
151
+ --radius: 0.5rem;
152
+ }
153
+ }
154
+
155
+ @layer base {
156
+ * {
157
+ @apply border-border;
158
+ }
159
+ body {
160
+ @apply bg-background text-foreground;
161
+ font-feature-settings: "rlig" 1, "calt" 1;
162
+ }
163
+ /* custom from blog astro template */
164
+ main {
165
+ width: 720px;
166
+ max-width: calc(100% - 2em);
167
+ margin: auto;
168
+ padding: 3em 1em;
169
+ }
170
+ .prose p {
171
+ margin-bottom: 2em;
172
+ }
173
+ }
174
+ `;
175
+ export const libUtils = `import { clsx, type ClassValue } from "clsx"
176
+ import { twMerge } from "tailwind-merge"
177
+
178
+ export function cn(...inputs: ClassValue[]) {
179
+ return twMerge(clsx(inputs))
180
+ }
181
+ `;
182
+ /**
183
+ * from https://ui.shadcn.com/docs/components-json
184
+ * only change is globals.css => global.css
185
+ */
186
+ export const componentsJSON = `{
187
+ "$schema": "https://ui.shadcn.com/schema.json",
188
+ "style": "default",
189
+ "rsc": false,
190
+ "tsx": true,
191
+ "tailwind": {
192
+ "config": "tailwind.config.mjs",
193
+ "css": "./src/styles/global.css",
194
+ "baseColor": "slate",
195
+ "cssVariables": true,
196
+ "prefix": ""
197
+ },
198
+ "aliases": {
199
+ "components": "@/components",
200
+ "utils": "@/lib/utils"
201
+ }
202
+ }`;
@@ -0,0 +1 @@
1
+ export { run } from '@oclif/core';
package/dist/index.js ADDED
@@ -0,0 +1 @@
1
+ export { run } from '@oclif/core';
@@ -0,0 +1 @@
1
+ export declare function logStep(msg: string, step: number, totalSteps?: number): void;
@@ -0,0 +1,6 @@
1
+ import chalk from 'chalk';
2
+ export function logStep(msg, step, totalSteps = 0) {
3
+ const stepDisplay = totalSteps > 0 ? `(${step}/${totalSteps})` : `(${step})`;
4
+ console.log(chalk.bgCyan.black.bold(stepDisplay) + ' ' + chalk.cyan.bold(msg));
5
+ step += 1;
6
+ }
@@ -0,0 +1,81 @@
1
+ {
2
+ "commands": {
3
+ "init:astro": {
4
+ "aliases": [],
5
+ "args": {},
6
+ "description": "Initialize a Astro project according to SpringMicroHost's specifications.",
7
+ "examples": [
8
+ "<%= config.bin %> <%= command.id %> -n <project-name>"
9
+ ],
10
+ "flags": {
11
+ "name": {
12
+ "char": "n",
13
+ "description": "Project name",
14
+ "name": "name",
15
+ "required": true,
16
+ "hasDynamicHelp": false,
17
+ "multiple": false,
18
+ "type": "option"
19
+ }
20
+ },
21
+ "hasDynamicHelp": false,
22
+ "hiddenAliases": [],
23
+ "id": "init:astro",
24
+ "pluginAlias": "@springmicro/cli",
25
+ "pluginName": "@springmicro/cli",
26
+ "pluginType": "core",
27
+ "strict": true,
28
+ "enableJsonFlag": false,
29
+ "step": 1,
30
+ "totalSteps": 2,
31
+ "isESM": true,
32
+ "relativePath": [
33
+ "dist",
34
+ "commands",
35
+ "init",
36
+ "astro.js"
37
+ ]
38
+ },
39
+ "init": {
40
+ "aliases": [],
41
+ "args": {
42
+ "projectType": {
43
+ "description": "Project type (astro)",
44
+ "name": "projectType",
45
+ "required": true
46
+ }
47
+ },
48
+ "description": "Initialize a JavaScript framework project according to SpringMicroHost's specifications.",
49
+ "examples": [
50
+ "<%= config.bin %> <%= command.id %> astro -n example"
51
+ ],
52
+ "flags": {
53
+ "name": {
54
+ "char": "n",
55
+ "description": "Project name",
56
+ "name": "name",
57
+ "required": true,
58
+ "hasDynamicHelp": false,
59
+ "multiple": false,
60
+ "type": "option"
61
+ }
62
+ },
63
+ "hasDynamicHelp": false,
64
+ "hiddenAliases": [],
65
+ "id": "init",
66
+ "pluginAlias": "@springmicro/cli",
67
+ "pluginName": "@springmicro/cli",
68
+ "pluginType": "core",
69
+ "strict": true,
70
+ "enableJsonFlag": false,
71
+ "isESM": true,
72
+ "relativePath": [
73
+ "dist",
74
+ "commands",
75
+ "init",
76
+ "index.js"
77
+ ]
78
+ }
79
+ },
80
+ "version": "0.1.3"
81
+ }
package/package.json ADDED
@@ -0,0 +1,80 @@
1
+ {
2
+ "name": "@springmicro/cli",
3
+ "description": "A new CLI generated with oclif",
4
+ "version": "0.1.3",
5
+ "author": "David Buckley",
6
+ "private": false,
7
+ "publishConfig": {
8
+ "access": "public",
9
+ "registry": "https://registry.npmjs.org/"
10
+ },
11
+ "bin": {
12
+ "springmicro": "./bin/run.js"
13
+ },
14
+ "bugs": "https://github.com/SpringMicro1/springmicrohost-js/issues",
15
+ "dependencies": {
16
+ "@oclif/core": "^4",
17
+ "@oclif/plugin-help": "^6",
18
+ "@oclif/plugin-plugins": "^5",
19
+ "chalk": "^5.3.0"
20
+ },
21
+ "devDependencies": {
22
+ "@oclif/prettier-config": "^0.2.1",
23
+ "@oclif/test": "^4",
24
+ "@types/chai": "^4",
25
+ "@types/mocha": "^10",
26
+ "@types/node": "^18",
27
+ "chai": "^4",
28
+ "eslint": "^8",
29
+ "eslint-config-oclif": "^5",
30
+ "eslint-config-oclif-typescript": "^3",
31
+ "eslint-config-prettier": "^9",
32
+ "mocha": "^10",
33
+ "oclif": "^4",
34
+ "shx": "^0.3.3",
35
+ "ts-node": "^10",
36
+ "typescript": "^5"
37
+ },
38
+ "engines": {
39
+ "node": ">=18.0.0"
40
+ },
41
+ "files": [
42
+ "/bin",
43
+ "/dist",
44
+ "/oclif.manifest.json"
45
+ ],
46
+ "homepage": "https://github.com/SpringMicro1/springmicrohost-js",
47
+ "keywords": [
48
+ "oclif"
49
+ ],
50
+ "license": "MIT",
51
+ "main": "dist/index.js",
52
+ "type": "module",
53
+ "oclif": {
54
+ "bin": "springmicro",
55
+ "dirname": "springmicro",
56
+ "commands": "./dist/commands",
57
+ "plugins": [
58
+ "@oclif/plugin-help",
59
+ "@oclif/plugin-plugins"
60
+ ],
61
+ "topicSeparator": " ",
62
+ "topics": {
63
+ "hello": {
64
+ "description": "Say hello to the world and others"
65
+ }
66
+ }
67
+ },
68
+ "repository": "SpringMicro1/springmicrohost-js",
69
+ "scripts": {
70
+ "build": "shx rm -rf dist && tsc -b",
71
+ "lint": "eslint . --ext .ts",
72
+ "postpack": "shx rm -f oclif.manifest.json",
73
+ "posttest": "pnpm run lint",
74
+ "prepack": "oclif manifest && oclif readme",
75
+ "test": "mocha --forbid-only \"test/**/*.test.ts\"",
76
+ "version": "oclif readme && git add README.md"
77
+ },
78
+ "types": "dist/index.d.ts",
79
+ "gitHead": "d09e3906681dadcf2680775e01a1aabc35b82812"
80
+ }