glost-cli 0.5.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.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 GLOST Contributors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,260 @@
1
+ # glost-cli
2
+
3
+ Command-line tools for GLOST plugin management and discovery.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ npm install -g glost-cli
9
+ # or
10
+ pnpm add -g glost-cli
11
+ ```
12
+
13
+ ## Usage
14
+
15
+ ```bash
16
+ glost plugins <command> [options]
17
+ ```
18
+
19
+ ## Commands
20
+
21
+ ### List Plugins
22
+
23
+ List all available plugins:
24
+
25
+ ```bash
26
+ glost plugins list
27
+ ```
28
+
29
+ With filters:
30
+
31
+ ```bash
32
+ # Filter by category
33
+ glost plugins list --category=enhancer
34
+
35
+ # Filter by language
36
+ glost plugins list --language=th
37
+
38
+ # Verbose output
39
+ glost plugins list --verbose
40
+ glost plugins list -v
41
+
42
+ # Combined
43
+ glost plugins list --category=enhancer --language=th --verbose
44
+ ```
45
+
46
+ ### Search Plugins
47
+
48
+ Search for plugins by keyword:
49
+
50
+ ```bash
51
+ glost plugins search transcription
52
+ glost plugins search "thai language"
53
+ ```
54
+
55
+ With filters:
56
+
57
+ ```bash
58
+ glost plugins search transcription --category=enhancer
59
+ glost plugins search transcription --language=th
60
+ ```
61
+
62
+ ### Plugin Information
63
+
64
+ Show detailed information about a plugin:
65
+
66
+ ```bash
67
+ glost plugins info glost-transcription
68
+ glost plugins info transcription
69
+ ```
70
+
71
+ Output includes:
72
+ - Version and metadata
73
+ - Capabilities (async, parallel, languages, node types)
74
+ - Requirements and dependencies
75
+ - Conflicts
76
+ - Examples
77
+
78
+ ### Validate Plugin Combinations
79
+
80
+ Check for conflicts and validate dependencies:
81
+
82
+ ```bash
83
+ glost plugins validate transcription translation frequency
84
+ glost plugins validate plugin1 plugin2 plugin3
85
+ ```
86
+
87
+ Output includes:
88
+ - Missing plugins check
89
+ - Conflict detection
90
+ - Dependency resolution
91
+ - Execution order
92
+
93
+ ### Registry Statistics
94
+
95
+ Show statistics about the plugin registry:
96
+
97
+ ```bash
98
+ glost plugins stats
99
+ ```
100
+
101
+ Output includes:
102
+ - Total plugin count
103
+ - Plugins by category
104
+ - Plugins by language
105
+ - Top tags
106
+
107
+ ### Create Plugin Template
108
+
109
+ Generate a plugin template:
110
+
111
+ ```bash
112
+ glost plugins create MyCustomPlugin
113
+ ```
114
+
115
+ Outputs a complete plugin template to stdout.
116
+
117
+ ## Options
118
+
119
+ - `--category=<category>` - Filter by category
120
+ - Values: `transformer`, `enhancer`, `generator`, `analyzer`, `utility`
121
+ - `--language=<lang>` - Filter by language support
122
+ - Values: `th`, `ja`, `ko`, `en`, etc.
123
+ - `--verbose`, `-v` - Show detailed information
124
+ - `--tags=<tag1,tag2>` - Filter by tags (comma-separated)
125
+
126
+ ## Examples
127
+
128
+ ### Find all transcription plugins
129
+
130
+ ```bash
131
+ glost plugins search transcription
132
+ ```
133
+
134
+ ### List all enhancers for Thai
135
+
136
+ ```bash
137
+ glost plugins list --category=enhancer --language=th --verbose
138
+ ```
139
+
140
+ ### Check if plugins work together
141
+
142
+ ```bash
143
+ glost plugins validate transcription translation frequency difficulty
144
+ ```
145
+
146
+ Output:
147
+
148
+ ```
149
+ Validating plugins: transcription, translation, frequency, difficulty
150
+
151
+ ✓ All plugins found
152
+ ✓ No conflicts detected
153
+ ✓ Dependency resolution successful
154
+
155
+ Execution order: transcription → translation → frequency → difficulty
156
+ ```
157
+
158
+ ### Get plugin details
159
+
160
+ ```bash
161
+ glost plugins info transcription
162
+ ```
163
+
164
+ Output:
165
+
166
+ ```
167
+ Transcription
168
+
169
+ ID: transcription
170
+ Version: 1.0.0
171
+ Category: enhancer
172
+ Description: Adds transcription support
173
+
174
+ Capabilities:
175
+ Async: Yes
176
+ Parallel: No
177
+ Languages: th, ja, ko
178
+
179
+ Tags: transcription, phonetics, ipa
180
+
181
+ Examples:
182
+
183
+ Basic Usage
184
+
185
+ ```typescript
186
+ import { transcription } from "glost-transcription";
187
+
188
+ const processor = glost()
189
+ .use(transcription, { scheme: "ipa" });
190
+ ```
191
+ ```
192
+
193
+ ### View registry overview
194
+
195
+ ```bash
196
+ glost plugins stats
197
+ ```
198
+
199
+ Output:
200
+
201
+ ```
202
+ GLOST Plugin Registry Statistics
203
+ ===================================
204
+
205
+ Total Plugins: 12
206
+
207
+ By Category:
208
+ transformer 2
209
+ enhancer 5
210
+ generator 3
211
+ analyzer 2
212
+
213
+ By Language:
214
+ th 8
215
+ ja 6
216
+ ko 4
217
+ en 12
218
+
219
+ Top Tags:
220
+ transcription 5
221
+ translation 3
222
+ frequency 2
223
+ ```
224
+
225
+ ## Programmatic Usage
226
+
227
+ You can also use the CLI functions programmatically:
228
+
229
+ ```typescript
230
+ import {
231
+ listPlugins,
232
+ searchPlugins,
233
+ showPluginInfo,
234
+ validatePlugins,
235
+ showStats,
236
+ createPluginTemplate
237
+ } from "glost-cli";
238
+
239
+ // List all plugins
240
+ listPlugins({ verbose: true });
241
+
242
+ // Search
243
+ searchPlugins("transcription", { language: "th" });
244
+
245
+ // Show info
246
+ showPluginInfo("transcription");
247
+
248
+ // Validate
249
+ validatePlugins(["transcription", "translation", "frequency"]);
250
+
251
+ // Stats
252
+ showStats();
253
+
254
+ // Create template
255
+ createPluginTemplate("MyPlugin");
256
+ ```
257
+
258
+ ## License
259
+
260
+ MIT
package/dist/cli.d.ts ADDED
@@ -0,0 +1,10 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * GLOST CLI
4
+ *
5
+ * Command-line interface for GLOST plugin management.
6
+ *
7
+ * @packageDocumentation
8
+ */
9
+ export {};
10
+ //# sourceMappingURL=cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA;;;;;;GAMG"}
package/dist/cli.js ADDED
@@ -0,0 +1,152 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * GLOST CLI
4
+ *
5
+ * Command-line interface for GLOST plugin management.
6
+ *
7
+ * @packageDocumentation
8
+ */
9
+ import { listPlugins, searchPlugins, showPluginInfo, validatePlugins, showStats, createPluginTemplate, } from "./commands/plugins.js";
10
+ const args = process.argv.slice(2);
11
+ const command = args[0];
12
+ const subcommand = args[1];
13
+ function showHelp() {
14
+ console.log(`
15
+ GLOST CLI - Plugin Management Tool
16
+
17
+ Usage:
18
+ glost plugins <command> [options]
19
+
20
+ Commands:
21
+ list [--category=<cat>] [--language=<lang>] [--verbose]
22
+ List all available plugins
23
+
24
+ search <keyword> [--category=<cat>] [--language=<lang>]
25
+ Search for plugins by keyword
26
+
27
+ info <plugin-id>
28
+ Show detailed information about a plugin
29
+
30
+ validate <plugin1> <plugin2> ...
31
+ Validate plugin combinations for conflicts and dependencies
32
+
33
+ stats
34
+ Show registry statistics
35
+
36
+ create <plugin-name>
37
+ Generate a plugin template
38
+
39
+ help
40
+ Show this help message
41
+
42
+ Options:
43
+ --category=<category> Filter by category (transformer, enhancer, generator, analyzer, utility)
44
+ --language=<lang> Filter by language support (th, ja, ko, en, etc.)
45
+ --verbose, -v Show detailed information
46
+
47
+ Examples:
48
+ glost plugins list
49
+ glost plugins list --category=enhancer --verbose
50
+ glost plugins search transcription
51
+ glost plugins info glost-transcription
52
+ glost plugins validate transcription translation frequency
53
+ glost plugins stats
54
+ glost plugins create MyCustomPlugin
55
+ `);
56
+ }
57
+ function parseOptions(args) {
58
+ const options = {};
59
+ for (const arg of args) {
60
+ if (arg.startsWith("--")) {
61
+ const [key, value] = arg.slice(2).split("=");
62
+ if (value) {
63
+ options[key] = value;
64
+ }
65
+ else {
66
+ options[key] = true;
67
+ }
68
+ }
69
+ else if (arg.startsWith("-")) {
70
+ const key = arg.slice(1);
71
+ options[key] = true;
72
+ }
73
+ }
74
+ return options;
75
+ }
76
+ // Main command router
77
+ if (command === "plugins") {
78
+ const options = parseOptions(args.slice(2));
79
+ switch (subcommand) {
80
+ case "list": {
81
+ listPlugins({
82
+ category: options.category,
83
+ language: options.language,
84
+ verbose: options.verbose || options.v,
85
+ });
86
+ break;
87
+ }
88
+ case "search": {
89
+ const keyword = args[2];
90
+ if (!keyword || keyword.startsWith("--")) {
91
+ console.error("Error: search requires a keyword");
92
+ process.exit(1);
93
+ }
94
+ searchPlugins(keyword, {
95
+ category: options.category,
96
+ language: options.language,
97
+ tags: options.tags ? options.tags.split(",") : undefined,
98
+ });
99
+ break;
100
+ }
101
+ case "info": {
102
+ const pluginId = args[2];
103
+ if (!pluginId) {
104
+ console.error("Error: info requires a plugin ID");
105
+ process.exit(1);
106
+ }
107
+ showPluginInfo(pluginId);
108
+ break;
109
+ }
110
+ case "validate": {
111
+ const pluginIds = args.slice(2).filter((arg) => !arg.startsWith("--"));
112
+ if (pluginIds.length === 0) {
113
+ console.error("Error: validate requires at least one plugin ID");
114
+ process.exit(1);
115
+ }
116
+ validatePlugins(pluginIds);
117
+ break;
118
+ }
119
+ case "stats": {
120
+ showStats();
121
+ break;
122
+ }
123
+ case "create": {
124
+ const pluginName = args[2];
125
+ if (!pluginName) {
126
+ console.error("Error: create requires a plugin name");
127
+ process.exit(1);
128
+ }
129
+ createPluginTemplate(pluginName);
130
+ break;
131
+ }
132
+ case "help":
133
+ case undefined: {
134
+ showHelp();
135
+ break;
136
+ }
137
+ default: {
138
+ console.error(`Unknown command: ${subcommand}`);
139
+ console.error('Run "glost plugins help" for usage information');
140
+ process.exit(1);
141
+ }
142
+ }
143
+ }
144
+ else if (command === "help" || command === "--help" || command === "-h" || !command) {
145
+ showHelp();
146
+ }
147
+ else {
148
+ console.error(`Unknown command: ${command}`);
149
+ console.error('Run "glost help" for usage information');
150
+ process.exit(1);
151
+ }
152
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Plugin Commands
3
+ *
4
+ * CLI commands for plugin management and discovery.
5
+ *
6
+ * @packageDocumentation
7
+ */
8
+ import type { PluginCategory } from "glost-registry";
9
+ /**
10
+ * List all available plugins
11
+ */
12
+ export declare function listPlugins(options?: {
13
+ category?: PluginCategory;
14
+ language?: string;
15
+ verbose?: boolean;
16
+ }): void;
17
+ /**
18
+ * Search for plugins
19
+ */
20
+ export declare function searchPlugins(keyword: string, options?: {
21
+ category?: PluginCategory;
22
+ language?: string;
23
+ tags?: string[];
24
+ }): void;
25
+ /**
26
+ * Show plugin information
27
+ */
28
+ export declare function showPluginInfo(pluginId: string): void;
29
+ /**
30
+ * Validate plugin combinations
31
+ */
32
+ export declare function validatePlugins(pluginIds: string[]): void;
33
+ /**
34
+ * Show registry statistics
35
+ */
36
+ export declare function showStats(): void;
37
+ /**
38
+ * Create a new plugin template
39
+ */
40
+ export declare function createPluginTemplate(name: string): void;
41
+ //# sourceMappingURL=plugins.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugins.d.ts","sourceRoot":"","sources":["../../src/commands/plugins.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAErD;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,CAAC,EAAE;IACpC,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,GAAG,IAAI,CA0CP;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;IACvD,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB,GAAG,IAAI,CAwBP;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAoFrD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,IAAI,CA4CzD;AAED;;GAEG;AACH,wBAAgB,SAAS,IAAI,IAAI,CAgChC;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAkDvD"}
@@ -0,0 +1,273 @@
1
+ /**
2
+ * Plugin Commands
3
+ *
4
+ * CLI commands for plugin management and discovery.
5
+ *
6
+ * @packageDocumentation
7
+ */
8
+ import { pluginRegistry } from "glost-registry";
9
+ /**
10
+ * List all available plugins
11
+ */
12
+ export function listPlugins(options) {
13
+ let plugins = pluginRegistry.list();
14
+ // Filter by category
15
+ if (options?.category) {
16
+ plugins = plugins.filter((p) => p.category === options.category);
17
+ }
18
+ // Filter by language
19
+ if (options?.language) {
20
+ plugins = pluginRegistry.getLanguageSupport(options.language);
21
+ }
22
+ if (plugins.length === 0) {
23
+ console.log("No plugins found.");
24
+ return;
25
+ }
26
+ console.log(`\nFound ${plugins.length} plugin(s):\n`);
27
+ for (const plugin of plugins) {
28
+ if (options?.verbose) {
29
+ console.log(`${plugin.name} (${plugin.id})`);
30
+ console.log(` Version: ${plugin.version}`);
31
+ console.log(` Category: ${plugin.category}`);
32
+ console.log(` Description: ${plugin.description}`);
33
+ if (plugin.author) {
34
+ console.log(` Author: ${plugin.author}`);
35
+ }
36
+ if (plugin.tags.length > 0) {
37
+ console.log(` Tags: ${plugin.tags.join(", ")}`);
38
+ }
39
+ if (plugin.supports.languages) {
40
+ console.log(` Languages: ${plugin.supports.languages.join(", ")}`);
41
+ }
42
+ console.log();
43
+ }
44
+ else {
45
+ console.log(` ${plugin.name.padEnd(30)} ${plugin.id.padEnd(25)} ${plugin.version}`);
46
+ }
47
+ }
48
+ }
49
+ /**
50
+ * Search for plugins
51
+ */
52
+ export function searchPlugins(keyword, options) {
53
+ const results = pluginRegistry.search({
54
+ keyword,
55
+ category: options?.category,
56
+ language: options?.language,
57
+ tags: options?.tags,
58
+ });
59
+ if (results.length === 0) {
60
+ console.log(`No plugins found matching "${keyword}".`);
61
+ return;
62
+ }
63
+ console.log(`\nFound ${results.length} plugin(s) matching "${keyword}":\n`);
64
+ for (const plugin of results) {
65
+ console.log(`${plugin.name} (${plugin.id})`);
66
+ console.log(` ${plugin.description}`);
67
+ console.log(` Category: ${plugin.category} | Version: ${plugin.version}`);
68
+ if (plugin.tags.length > 0) {
69
+ console.log(` Tags: ${plugin.tags.join(", ")}`);
70
+ }
71
+ console.log();
72
+ }
73
+ }
74
+ /**
75
+ * Show plugin information
76
+ */
77
+ export function showPluginInfo(pluginId) {
78
+ const metadata = pluginRegistry.getMetadata(pluginId);
79
+ if (!metadata) {
80
+ console.error(`Plugin "${pluginId}" not found.`);
81
+ return;
82
+ }
83
+ console.log(`\n${metadata.name}`);
84
+ console.log("=".repeat(metadata.name.length));
85
+ console.log();
86
+ console.log(`ID: ${metadata.id}`);
87
+ console.log(`Version: ${metadata.version}`);
88
+ console.log(`Category: ${metadata.category}`);
89
+ console.log(`Description: ${metadata.description}`);
90
+ if (metadata.author) {
91
+ console.log(`Author: ${metadata.author}`);
92
+ }
93
+ if (metadata.repository) {
94
+ console.log(`Repository: ${metadata.repository}`);
95
+ }
96
+ if (metadata.homepage) {
97
+ console.log(`Homepage: ${metadata.homepage}`);
98
+ }
99
+ console.log();
100
+ console.log("Capabilities:");
101
+ console.log(` Async: ${metadata.supports.async ? "Yes" : "No"}`);
102
+ console.log(` Parallel: ${metadata.supports.parallel ? "Yes" : "No"}`);
103
+ if (metadata.supports.languages) {
104
+ console.log(` Languages: ${metadata.supports.languages.join(", ")}`);
105
+ }
106
+ if (metadata.supports.nodeTypes) {
107
+ console.log(` Node Types: ${metadata.supports.nodeTypes.join(", ")}`);
108
+ }
109
+ if (metadata.tags.length > 0) {
110
+ console.log();
111
+ console.log(`Tags: ${metadata.tags.join(", ")}`);
112
+ }
113
+ if (metadata.requires) {
114
+ console.log();
115
+ console.log("Requirements:");
116
+ if (metadata.requires.plugins) {
117
+ console.log(` Plugins: ${metadata.requires.plugins.join(", ")}`);
118
+ }
119
+ if (metadata.requires.glostVersion) {
120
+ console.log(` GLOST Version: ${metadata.requires.glostVersion}`);
121
+ }
122
+ if (metadata.requires.nodeVersion) {
123
+ console.log(` Node.js Version: ${metadata.requires.nodeVersion}`);
124
+ }
125
+ }
126
+ if (metadata.conflicts && metadata.conflicts.length > 0) {
127
+ console.log();
128
+ console.log(`Conflicts with: ${metadata.conflicts.join(", ")}`);
129
+ }
130
+ if (metadata.examples && metadata.examples.length > 0) {
131
+ console.log();
132
+ console.log("Examples:");
133
+ for (const example of metadata.examples) {
134
+ console.log(`\n ${example.title}`);
135
+ if (example.description) {
136
+ console.log(` ${example.description}`);
137
+ }
138
+ console.log();
139
+ console.log(" ```typescript");
140
+ console.log(example.code.split("\n").map((line) => ` ${line}`).join("\n"));
141
+ console.log(" ```");
142
+ }
143
+ }
144
+ console.log();
145
+ }
146
+ /**
147
+ * Validate plugin combinations
148
+ */
149
+ export function validatePlugins(pluginIds) {
150
+ console.log(`\nValidating plugins: ${pluginIds.join(", ")}\n`);
151
+ // Check if all plugins exist
152
+ const missing = [];
153
+ for (const id of pluginIds) {
154
+ if (!pluginRegistry.has(id)) {
155
+ missing.push(id);
156
+ }
157
+ }
158
+ if (missing.length > 0) {
159
+ console.error(`❌ Missing plugins: ${missing.join(", ")}`);
160
+ return;
161
+ }
162
+ console.log("✓ All plugins found");
163
+ // Check for conflicts
164
+ const conflictReport = pluginRegistry.checkConflicts(pluginIds);
165
+ if (conflictReport.hasConflicts) {
166
+ console.log(`\n⚠️ Found ${conflictReport.conflicts.length} conflict(s):\n`);
167
+ for (const conflict of conflictReport.conflicts) {
168
+ const icon = conflict.severity === "error" ? "❌" : "⚠️ ";
169
+ console.log(`${icon} ${conflict.plugin1} <-> ${conflict.plugin2}`);
170
+ console.log(` ${conflict.reason}`);
171
+ }
172
+ }
173
+ else {
174
+ console.log("✓ No conflicts detected");
175
+ }
176
+ // Resolve dependencies
177
+ try {
178
+ const ordered = pluginRegistry.resolveDependencies(pluginIds);
179
+ console.log("\n✓ Dependency resolution successful");
180
+ console.log(`\nExecution order: ${ordered.join(" → ")}`);
181
+ }
182
+ catch (error) {
183
+ console.error(`\n❌ Dependency resolution failed:`);
184
+ console.error(` ${error instanceof Error ? error.message : String(error)}`);
185
+ }
186
+ console.log();
187
+ }
188
+ /**
189
+ * Show registry statistics
190
+ */
191
+ export function showStats() {
192
+ const stats = pluginRegistry.getStatistics();
193
+ console.log("\nGLOST Plugin Registry Statistics");
194
+ console.log("=".repeat(35));
195
+ console.log();
196
+ console.log(`Total Plugins: ${stats.total}`);
197
+ console.log();
198
+ console.log("By Category:");
199
+ for (const [category, count] of Object.entries(stats.byCategory)) {
200
+ if (count > 0) {
201
+ console.log(` ${category.padEnd(15)} ${count}`);
202
+ }
203
+ }
204
+ if (Object.keys(stats.byLanguage).length > 0) {
205
+ console.log();
206
+ console.log("By Language:");
207
+ for (const [lang, count] of Object.entries(stats.byLanguage)) {
208
+ console.log(` ${lang.padEnd(15)} ${count}`);
209
+ }
210
+ }
211
+ if (stats.topTags.length > 0) {
212
+ console.log();
213
+ console.log("Top Tags:");
214
+ for (const { tag, count } of stats.topTags) {
215
+ console.log(` ${tag.padEnd(15)} ${count}`);
216
+ }
217
+ }
218
+ console.log();
219
+ }
220
+ /**
221
+ * Create a new plugin template
222
+ */
223
+ export function createPluginTemplate(name) {
224
+ const template = `/**
225
+ * ${name}
226
+ *
227
+ * TODO: Add description
228
+ */
229
+
230
+ import type { GLOSTExtension } from "glost-extensions";
231
+
232
+ export const ${name}Extension: GLOSTExtension = {
233
+ id: "${name.toLowerCase()}",
234
+ name: "${name}",
235
+ description: "TODO: Add description",
236
+
237
+ // TODO: Implement transform, visit, or enhanceMetadata
238
+ transform: (tree) => {
239
+ // Transform the document tree
240
+ return tree;
241
+ },
242
+
243
+ // Optional: Declare dependencies
244
+ // dependencies: ["other-plugin"],
245
+
246
+ // Optional: Declare requirements
247
+ // requires: {
248
+ // extras: ["field-name"],
249
+ // metadata: ["metadata-field"],
250
+ // },
251
+
252
+ // Optional: Declare what this extension provides
253
+ // provides: {
254
+ // extras: ["my-field"],
255
+ // },
256
+ };
257
+
258
+ // Export as a plugin function
259
+ export function ${name.toLowerCase()}(options?: {
260
+ // TODO: Add options
261
+ }) {
262
+ return (pluginOptions?: any): GLOSTExtension => {
263
+ return {
264
+ ...${name}Extension,
265
+ options: { ...options, ...pluginOptions },
266
+ };
267
+ };
268
+ }
269
+ `;
270
+ console.log(template);
271
+ console.log(`\n// Save this to: packages/${name.toLowerCase()}/src/index.ts`);
272
+ }
273
+ //# sourceMappingURL=plugins.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugins.js","sourceRoot":"","sources":["../../src/commands/plugins.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAGhD;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,OAI3B;IACC,IAAI,OAAO,GAAG,cAAc,CAAC,IAAI,EAAE,CAAC;IAEpC,qBAAqB;IACrB,IAAI,OAAO,EAAE,QAAQ,EAAE,CAAC;QACtB,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;IACnE,CAAC;IAED,qBAAqB;IACrB,IAAI,OAAO,EAAE,QAAQ,EAAE,CAAC;QACtB,OAAO,GAAG,cAAc,CAAC,kBAAkB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAChE,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;QACjC,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,WAAW,OAAO,CAAC,MAAM,eAAe,CAAC,CAAC;IAEtD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,OAAO,EAAE,OAAO,EAAE,CAAC;YACrB,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC;YAC7C,OAAO,CAAC,GAAG,CAAC,cAAc,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;YAC5C,OAAO,CAAC,GAAG,CAAC,eAAe,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC9C,OAAO,CAAC,GAAG,CAAC,kBAAkB,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;YACpD,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;gBAClB,OAAO,CAAC,GAAG,CAAC,aAAa,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;YAC5C,CAAC;YACD,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC3B,OAAO,CAAC,GAAG,CAAC,WAAW,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACnD,CAAC;YACD,IAAI,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;gBAC9B,OAAO,CAAC,GAAG,CAAC,gBAAgB,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACtE,CAAC;YACD,OAAO,CAAC,GAAG,EAAE,CAAC;QAChB,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CACT,KAAK,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,CACxE,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,OAAe,EAAE,OAI9C;IACC,MAAM,OAAO,GAAG,cAAc,CAAC,MAAM,CAAC;QACpC,OAAO;QACP,QAAQ,EAAE,OAAO,EAAE,QAAQ;QAC3B,QAAQ,EAAE,OAAO,EAAE,QAAQ;QAC3B,IAAI,EAAE,OAAO,EAAE,IAAI;KACpB,CAAC,CAAC;IAEH,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,8BAA8B,OAAO,IAAI,CAAC,CAAC;QACvD,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,WAAW,OAAO,CAAC,MAAM,wBAAwB,OAAO,MAAM,CAAC,CAAC;IAE5E,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC;QAC7C,OAAO,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;QACvC,OAAO,CAAC,GAAG,CAAC,eAAe,MAAM,CAAC,QAAQ,eAAe,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;QAC3E,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,OAAO,CAAC,GAAG,CAAC,WAAW,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACnD,CAAC;QACD,OAAO,CAAC,GAAG,EAAE,CAAC;IAChB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,QAAgB;IAC7C,MAAM,QAAQ,GAAG,cAAc,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAEtD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,CAAC,KAAK,CAAC,WAAW,QAAQ,cAAc,CAAC,CAAC;QACjD,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,KAAK,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IAClC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAC9C,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,OAAO,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;IAClC,OAAO,CAAC,GAAG,CAAC,YAAY,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;IAC5C,OAAO,CAAC,GAAG,CAAC,aAAa,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC9C,OAAO,CAAC,GAAG,CAAC,gBAAgB,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;IAEpD,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;QACpB,OAAO,CAAC,GAAG,CAAC,WAAW,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;QACxB,OAAO,CAAC,GAAG,CAAC,eAAe,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;IACpD,CAAC;IAED,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;QACtB,OAAO,CAAC,GAAG,CAAC,aAAa,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;IAChD,CAAC;IAED,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IAC7B,OAAO,CAAC,GAAG,CAAC,YAAY,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAClE,OAAO,CAAC,GAAG,CAAC,eAAe,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAExE,IAAI,QAAQ,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;QAChC,OAAO,CAAC,GAAG,CAAC,gBAAgB,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACxE,CAAC;IAED,IAAI,QAAQ,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;QAChC,OAAO,CAAC,GAAG,CAAC,iBAAiB,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACzE,CAAC;IAED,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,SAAS,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACnD,CAAC;IAED,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;QACtB,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QAE7B,IAAI,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;YAC9B,OAAO,CAAC,GAAG,CAAC,cAAc,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACpE,CAAC;QAED,IAAI,QAAQ,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;YACnC,OAAO,CAAC,GAAG,CAAC,oBAAoB,QAAQ,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC,CAAC;QACpE,CAAC;QAED,IAAI,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;YAClC,OAAO,CAAC,GAAG,CAAC,sBAAsB,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;QACrE,CAAC;IACH,CAAC;IAED,IAAI,QAAQ,CAAC,SAAS,IAAI,QAAQ,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxD,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,mBAAmB,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAClE,CAAC;IAED,IAAI,QAAQ,CAAC,QAAQ,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtD,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACzB,KAAK,MAAM,OAAO,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;YACxC,OAAO,CAAC,GAAG,CAAC,OAAO,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;YACpC,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;gBACxB,OAAO,CAAC,GAAG,CAAC,KAAK,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;YAC1C,CAAC;YACD,OAAO,CAAC,GAAG,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;YAC/B,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YAC5E,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,EAAE,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,SAAmB;IACjD,OAAO,CAAC,GAAG,CAAC,yBAAyB,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAE/D,6BAA6B;IAC7B,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,MAAM,EAAE,IAAI,SAAS,EAAE,CAAC;QAC3B,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;YAC5B,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACnB,CAAC;IACH,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO,CAAC,KAAK,CAAC,sBAAsB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC1D,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;IAEnC,sBAAsB;IACtB,MAAM,cAAc,GAAG,cAAc,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;IAEhE,IAAI,cAAc,CAAC,YAAY,EAAE,CAAC;QAChC,OAAO,CAAC,GAAG,CAAC,eAAe,cAAc,CAAC,SAAS,CAAC,MAAM,iBAAiB,CAAC,CAAC;QAE7E,KAAK,MAAM,QAAQ,IAAI,cAAc,CAAC,SAAS,EAAE,CAAC;YAChD,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;YACzD,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,IAAI,QAAQ,CAAC,OAAO,QAAQ,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;YACnE,OAAO,CAAC,GAAG,CAAC,MAAM,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;IACzC,CAAC;IAED,uBAAuB;IACvB,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,cAAc,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;QAC9D,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;QACpD,OAAO,CAAC,GAAG,CAAC,sBAAsB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC3D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;QACnD,OAAO,CAAC,KAAK,CAAC,MAAM,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAChF,CAAC;IAED,OAAO,CAAC,GAAG,EAAE,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS;IACvB,MAAM,KAAK,GAAG,cAAc,CAAC,aAAa,EAAE,CAAC;IAE7C,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;IAClD,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5B,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,kBAAkB,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;IAC7C,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAC5B,KAAK,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;QACjE,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,KAAK,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7C,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAC5B,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;YAC7D,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACzB,KAAK,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YAC3C,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,EAAE,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,IAAY;IAC/C,MAAM,QAAQ,GAAG;KACd,IAAI;;;;;;;eAOM,IAAI;SACV,IAAI,CAAC,WAAW,EAAE;WAChB,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;kBAyBG,IAAI,CAAC,WAAW,EAAE;;;;;WAKzB,IAAI;;;;;CAKd,CAAC;IAEA,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACtB,OAAO,CAAC,GAAG,CAAC,+BAA+B,IAAI,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;AAChF,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * GLOST CLI
3
+ *
4
+ * Command-line tools for GLOST plugin management and discovery.
5
+ *
6
+ * @packageDocumentation
7
+ */
8
+ export * from "./commands/plugins.js";
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,cAAc,uBAAuB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,9 @@
1
+ /**
2
+ * GLOST CLI
3
+ *
4
+ * Command-line tools for GLOST plugin management and discovery.
5
+ *
6
+ * @packageDocumentation
7
+ */
8
+ export * from "./commands/plugins.js";
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,cAAc,uBAAuB,CAAC"}
package/package.json ADDED
@@ -0,0 +1,43 @@
1
+ {
2
+ "name": "glost-cli",
3
+ "version": "0.5.0",
4
+ "description": "Command-line tools for GLOST plugin management and discovery",
5
+ "type": "module",
6
+ "main": "./dist/index.js",
7
+ "types": "./dist/index.d.ts",
8
+ "bin": {
9
+ "glost": "./dist/cli.js"
10
+ },
11
+ "exports": {
12
+ ".": {
13
+ "types": "./dist/index.d.ts",
14
+ "default": "./dist/index.js"
15
+ }
16
+ },
17
+ "files": [
18
+ "dist",
19
+ "README.md"
20
+ ],
21
+ "keywords": [
22
+ "glost",
23
+ "cli",
24
+ "tools",
25
+ "plugins"
26
+ ],
27
+ "author": "",
28
+ "license": "MIT",
29
+ "dependencies": {
30
+ "glost-registry": "0.5.0",
31
+ "glost-extensions": "0.4.0",
32
+ "glost-core": "0.5.0"
33
+ },
34
+ "devDependencies": {
35
+ "@types/node": "^20.0.0",
36
+ "typescript": "^5.3.3",
37
+ "vitest": "^1.6.0"
38
+ },
39
+ "scripts": {
40
+ "build": "tsc",
41
+ "test": "vitest run --passWithNoTests"
42
+ }
43
+ }