zammy 1.2.1 → 1.3.2

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 (36) hide show
  1. package/README.md +322 -239
  2. package/assets/zammy.gif +0 -0
  3. package/dist/chunk-LLLEINP6.js +1229 -0
  4. package/dist/index.js +1886 -489
  5. package/dist/plugins.d.ts +168 -0
  6. package/dist/plugins.js +47 -0
  7. package/package.json +20 -2
  8. package/packages/plugins/docker/README.md +141 -0
  9. package/packages/plugins/docker/dist/index.d.ts +4 -0
  10. package/packages/plugins/docker/dist/index.d.ts.map +1 -0
  11. package/packages/plugins/docker/dist/index.js +402 -0
  12. package/packages/plugins/docker/dist/index.js.map +1 -0
  13. package/packages/plugins/docker/package.json +32 -0
  14. package/packages/plugins/docker/zammy-plugin.json +16 -0
  15. package/packages/plugins/faker/README.md +65 -0
  16. package/packages/plugins/faker/dist/index.d.ts +4 -0
  17. package/packages/plugins/faker/dist/index.d.ts.map +1 -0
  18. package/packages/plugins/faker/dist/index.js +349 -0
  19. package/packages/plugins/faker/dist/index.js.map +1 -0
  20. package/packages/plugins/faker/package.json +32 -0
  21. package/packages/plugins/faker/zammy-plugin.json +14 -0
  22. package/packages/plugins/network/README.md +126 -0
  23. package/packages/plugins/network/dist/index.d.ts +4 -0
  24. package/packages/plugins/network/dist/index.d.ts.map +1 -0
  25. package/packages/plugins/network/dist/index.js +405 -0
  26. package/packages/plugins/network/dist/index.js.map +1 -0
  27. package/packages/plugins/network/package.json +32 -0
  28. package/packages/plugins/network/zammy-plugin.json +17 -0
  29. package/packages/plugins/port/README.md +74 -0
  30. package/packages/plugins/port/dist/index.d.ts +4 -0
  31. package/packages/plugins/port/dist/index.d.ts.map +1 -0
  32. package/packages/plugins/port/dist/index.js +331 -0
  33. package/packages/plugins/port/dist/index.js.map +1 -0
  34. package/packages/plugins/port/package.json +32 -0
  35. package/packages/plugins/port/zammy-plugin.json +16 -0
  36. package/packages/plugins/tsconfig.base.json +17 -0
@@ -0,0 +1,168 @@
1
+ interface Command {
2
+ name: string;
3
+ description: string;
4
+ usage: string;
5
+ execute: (args: string[]) => Promise<void>;
6
+ }
7
+
8
+ interface PluginManifest {
9
+ name: string;
10
+ version: string;
11
+ main: string;
12
+ commands: string[];
13
+ zammy: {
14
+ minVersion: string;
15
+ maxVersion?: string;
16
+ };
17
+ displayName?: string;
18
+ description?: string;
19
+ author?: string;
20
+ license?: string;
21
+ homepage?: string;
22
+ repository?: string;
23
+ permissions?: PluginPermissions;
24
+ }
25
+ interface PluginPermissions {
26
+ shell?: boolean;
27
+ filesystem?: boolean | string[];
28
+ network?: boolean | string[];
29
+ env?: boolean | string[];
30
+ }
31
+ interface PluginAPI {
32
+ registerCommand(command: Command): void;
33
+ registerCommands(commands: Command[]): void;
34
+ ui: PluginUI;
35
+ storage: PluginStorage;
36
+ log: PluginLogger;
37
+ context: PluginContext;
38
+ shell?: PluginShell;
39
+ }
40
+ interface PluginUI {
41
+ theme: {
42
+ primary: (text: string) => string;
43
+ secondary: (text: string) => string;
44
+ accent: (text: string) => string;
45
+ success: (text: string) => string;
46
+ warning: (text: string) => string;
47
+ error: (text: string) => string;
48
+ info: (text: string) => string;
49
+ dim: (text: string) => string;
50
+ gradient: (text: string) => string;
51
+ };
52
+ symbols: {
53
+ check: string;
54
+ cross: string;
55
+ star: string;
56
+ arrow: string;
57
+ bullet: string;
58
+ folder: string;
59
+ file: string;
60
+ warning: string;
61
+ info: string;
62
+ rocket: string;
63
+ sparkles: string;
64
+ };
65
+ box: (content: string, options?: {
66
+ title?: string;
67
+ padding?: number;
68
+ }) => string;
69
+ progressBar: (current: number, total: number, width?: number) => string;
70
+ }
71
+ interface PluginStorage {
72
+ get<T>(key: string): T | undefined;
73
+ set<T>(key: string, value: T): void;
74
+ delete(key: string): void;
75
+ clear(): void;
76
+ getAll(): Record<string, unknown>;
77
+ }
78
+ interface PluginLogger {
79
+ info(message: string): void;
80
+ warn(message: string): void;
81
+ error(message: string): void;
82
+ debug(message: string): void;
83
+ }
84
+ interface PluginContext {
85
+ pluginName: string;
86
+ pluginVersion: string;
87
+ zammyVersion: string;
88
+ dataDir: string;
89
+ cwd: string;
90
+ }
91
+ interface PluginShell {
92
+ exec(command: string, options?: {
93
+ timeout?: number;
94
+ }): string;
95
+ spawn(command: string, args?: string[]): Promise<{
96
+ stdout: string;
97
+ stderr: string;
98
+ code: number;
99
+ }>;
100
+ }
101
+ interface ZammyPlugin {
102
+ activate(api: PluginAPI): Promise<void> | void;
103
+ deactivate?(): Promise<void> | void;
104
+ }
105
+ interface LoadedPlugin {
106
+ manifest: PluginManifest;
107
+ instance: ZammyPlugin;
108
+ path: string;
109
+ state: PluginState;
110
+ }
111
+ type PluginState = 'discovered' | 'loaded' | 'active' | 'error';
112
+ interface PluginError {
113
+ pluginName: string;
114
+ error: Error;
115
+ phase: 'discovery' | 'load' | 'activate' | 'execute';
116
+ }
117
+
118
+ declare function ensurePluginsDir(): void;
119
+ declare function getPluginsDir(): string;
120
+ declare function discoverPlugins(): Promise<PluginManifest[]>;
121
+ declare function loadPlugin(name: string): Promise<LoadedPlugin | null>;
122
+ declare function unloadPlugin(name: string): Promise<boolean>;
123
+ declare function getDiscoveredPlugins(): PluginManifest[];
124
+ declare function getLoadedPlugins(): LoadedPlugin[];
125
+ declare function isPluginLoaded(name: string): boolean;
126
+ declare function getPluginPath(name: string): string | undefined;
127
+ declare function initPluginLoader(): Promise<void>;
128
+
129
+ declare function createPluginAPI(manifest: PluginManifest, pluginPath: string): PluginAPI;
130
+
131
+ declare function createPluginStorage(pluginName: string, dataDir: string): PluginStorage;
132
+
133
+ declare function validateManifest(manifest: unknown): {
134
+ valid: boolean;
135
+ errors: string[];
136
+ };
137
+ declare function checkConflicts(manifest: PluginManifest): {
138
+ hasConflicts: boolean;
139
+ conflicts: string[];
140
+ };
141
+ declare function formatPermissions(manifest: PluginManifest): string[];
142
+ declare function installFromLocal(sourcePath: string): Promise<{
143
+ success: boolean;
144
+ error?: string;
145
+ manifest?: PluginManifest;
146
+ }>;
147
+ declare function installFromNpm(packageName: string): Promise<{
148
+ success: boolean;
149
+ error?: string;
150
+ manifest?: PluginManifest;
151
+ }>;
152
+ declare function installFromGithub(repo: string): Promise<{
153
+ success: boolean;
154
+ error?: string;
155
+ manifest?: PluginManifest;
156
+ }>;
157
+ declare function installFromGit(url: string): Promise<{
158
+ success: boolean;
159
+ error?: string;
160
+ manifest?: PluginManifest;
161
+ }>;
162
+ declare function removePlugin(name: string): {
163
+ success: boolean;
164
+ error?: string;
165
+ };
166
+ declare function detectSourceType(source: string): 'local' | 'npm' | 'github' | 'git' | 'unknown';
167
+
168
+ export { type LoadedPlugin, type PluginAPI, type PluginContext, type PluginError, type PluginLogger, type PluginManifest, type PluginPermissions, type PluginShell, type PluginState, type PluginStorage, type PluginUI, type ZammyPlugin, checkConflicts, createPluginAPI, createPluginStorage, detectSourceType, discoverPlugins, ensurePluginsDir, formatPermissions, getDiscoveredPlugins, getLoadedPlugins, getPluginPath, getPluginsDir, initPluginLoader, installFromGit, installFromGithub, installFromLocal, installFromNpm, isPluginLoaded, loadPlugin, removePlugin, unloadPlugin, validateManifest };
@@ -0,0 +1,47 @@
1
+ #!/usr/bin/env node
2
+ import {
3
+ checkConflicts,
4
+ createPluginAPI,
5
+ createPluginStorage,
6
+ detectSourceType,
7
+ discoverPlugins,
8
+ ensurePluginsDir,
9
+ formatPermissions,
10
+ getDiscoveredPlugins,
11
+ getLoadedPlugins,
12
+ getPluginPath,
13
+ getPluginsDir,
14
+ initPluginLoader,
15
+ installFromGit,
16
+ installFromGithub,
17
+ installFromLocal,
18
+ installFromNpm,
19
+ isPluginLoaded,
20
+ loadPlugin,
21
+ removePlugin,
22
+ unloadPlugin,
23
+ validateManifest
24
+ } from "./chunk-LLLEINP6.js";
25
+ export {
26
+ checkConflicts,
27
+ createPluginAPI,
28
+ createPluginStorage,
29
+ detectSourceType,
30
+ discoverPlugins,
31
+ ensurePluginsDir,
32
+ formatPermissions,
33
+ getDiscoveredPlugins,
34
+ getLoadedPlugins,
35
+ getPluginPath,
36
+ getPluginsDir,
37
+ initPluginLoader,
38
+ installFromGit,
39
+ installFromGithub,
40
+ installFromLocal,
41
+ installFromNpm,
42
+ isPluginLoaded,
43
+ loadPlugin,
44
+ removePlugin,
45
+ unloadPlugin,
46
+ validateManifest
47
+ };
package/package.json CHANGED
@@ -1,8 +1,22 @@
1
1
  {
2
2
  "name": "zammy",
3
- "version": "1.2.1",
3
+ "version": "1.3.2",
4
4
  "description": "A feature-packed CLI with utilities, dev tools, and a bit of fun",
5
5
  "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "workspaces": [
8
+ "packages/plugins/*"
9
+ ],
10
+ "exports": {
11
+ ".": {
12
+ "types": "./dist/index.d.ts",
13
+ "import": "./dist/index.js"
14
+ },
15
+ "./plugins": {
16
+ "types": "./dist/plugins.d.ts",
17
+ "import": "./dist/plugins.js"
18
+ }
19
+ },
6
20
  "bin": {
7
21
  "zammy": "./dist/index.js"
8
22
  },
@@ -18,8 +32,12 @@
18
32
  "keywords": [
19
33
  "cli",
20
34
  "terminal",
35
+ "developer-tools",
36
+ "productivity",
21
37
  "ascii-art",
22
- "utility"
38
+ "interactive",
39
+ "cross-platform",
40
+ "utilities"
23
41
  ],
24
42
  "author": "Aayush Adhikari",
25
43
  "license": "MIT",
@@ -0,0 +1,141 @@
1
+ # zammy-plugin-docker
2
+
3
+ Docker container management with pretty output.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ /plugin install zammy-plugin-docker
9
+ ```
10
+
11
+ ## Requirements
12
+
13
+ - Docker must be installed and running
14
+ - Docker daemon must be accessible (may require sudo on Linux)
15
+
16
+ ## Commands
17
+
18
+ ### `/docker ps`
19
+
20
+ List running containers. Use `-a` flag to show all containers.
21
+
22
+ ```bash
23
+ /docker ps
24
+
25
+ RUNNING CONTAINERS
26
+
27
+ ID NAME IMAGE STATUS
28
+ ──────────────────────────────────────────────────────────────────────
29
+ abc123def456 my-app node:18 ✔ Up 2 hours
30
+ 789xyz012abc postgres postgres:15 ✔ Up 3 days
31
+
32
+ Total: 2 containers
33
+ ```
34
+
35
+ ### `/docker images`
36
+
37
+ List all Docker images.
38
+
39
+ ```bash
40
+ /docker images
41
+
42
+ DOCKER IMAGES
43
+
44
+ REPOSITORY TAG SIZE AGE
45
+ ─────────────────────────────────────────────────────────────────
46
+ node 18 950MB 2 days ago
47
+ postgres 15 380MB 1 month ago
48
+ nginx latest 140MB 3 days ago
49
+
50
+ Total: 3 images
51
+ ```
52
+
53
+ ### `/docker logs <container>`
54
+
55
+ View container logs (last 20 lines by default).
56
+
57
+ ```bash
58
+ /docker logs my-app
59
+
60
+ Logs for my-app (last 20 lines)
61
+ ──────────────────────────────────────────────
62
+
63
+ [INFO] Server starting on port 3000
64
+ [INFO] Database connected
65
+ [WARN] Cache miss for user:123
66
+ ```
67
+
68
+ ### `/docker stats`
69
+
70
+ Show real-time resource usage for running containers.
71
+
72
+ ```bash
73
+ /docker stats
74
+
75
+ CONTAINER STATS
76
+
77
+ NAME CPU MEMORY NET I/O
78
+ ────────────────────────────────────────────────────────────
79
+ my-app 2.5% 125MiB / 8GiB 1.2MB / 500KB
80
+ postgres 0.8% 250MiB / 8GiB 800KB / 1.5MB
81
+ ```
82
+
83
+ ### `/docker prune`
84
+
85
+ Clean up unused Docker resources.
86
+
87
+ ```bash
88
+ /docker prune
89
+
90
+ ✔ Cleanup complete
91
+
92
+ Space reclaimed: 2.5GB
93
+
94
+ Tip: Use /docker prune -a to remove unused images too
95
+ ```
96
+
97
+ Flags:
98
+ - `-a` or `--all` - Remove all unused images, not just dangling ones
99
+ - `--volumes` - Also remove unused volumes
100
+
101
+ ### `/docker inspect <container>`
102
+
103
+ Show detailed information about a container.
104
+
105
+ ```bash
106
+ /docker inspect my-app
107
+
108
+ CONTAINER DETAILS
109
+
110
+ Name: my-app
111
+ ID: abc123def456
112
+ Image: node:18
113
+ Status: running
114
+ Created: 2024-01-15T10:30:00Z
115
+ IP: 172.17.0.2
116
+
117
+ Ports:
118
+ 3000/tcp → 3000
119
+
120
+ Environment: (5 vars)
121
+ NODE_ENV
122
+ PORT
123
+ DATABASE_URL
124
+ ... and 2 more
125
+ ```
126
+
127
+ ## Error Handling
128
+
129
+ The plugin gracefully handles:
130
+ - Docker not installed
131
+ - Docker daemon not running
132
+ - Container not found
133
+ - Permission issues
134
+
135
+ ## Permissions
136
+
137
+ This plugin requires shell access to run Docker commands.
138
+
139
+ ## License
140
+
141
+ MIT
@@ -0,0 +1,4 @@
1
+ import type { ZammyPlugin } from 'zammy/plugins';
2
+ declare const plugin: ZammyPlugin;
3
+ export default plugin;
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAa,WAAW,EAAE,MAAM,eAAe,CAAC;AAuN5D,QAAA,MAAM,MAAM,EAAE,WAmSb,CAAC;AAEF,eAAe,MAAM,CAAC"}