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,349 @@
1
+ // Zammy Plugin: Faker
2
+ // Generate fake data for testing and development
3
+ // ============ DATA POOLS ============
4
+ const FIRST_NAMES = [
5
+ 'James', 'Mary', 'John', 'Patricia', 'Robert', 'Jennifer', 'Michael', 'Linda',
6
+ 'William', 'Elizabeth', 'David', 'Barbara', 'Richard', 'Susan', 'Joseph', 'Jessica',
7
+ 'Thomas', 'Sarah', 'Charles', 'Karen', 'Christopher', 'Lisa', 'Daniel', 'Nancy',
8
+ 'Matthew', 'Betty', 'Anthony', 'Margaret', 'Mark', 'Sandra', 'Donald', 'Ashley',
9
+ 'Steven', 'Kimberly', 'Paul', 'Emily', 'Andrew', 'Donna', 'Joshua', 'Michelle',
10
+ 'Aiden', 'Olivia', 'Ethan', 'Emma', 'Liam', 'Ava', 'Noah', 'Sophia', 'Lucas', 'Mia'
11
+ ];
12
+ const LAST_NAMES = [
13
+ 'Smith', 'Johnson', 'Williams', 'Brown', 'Jones', 'Garcia', 'Miller', 'Davis',
14
+ 'Rodriguez', 'Martinez', 'Hernandez', 'Lopez', 'Gonzalez', 'Wilson', 'Anderson',
15
+ 'Thomas', 'Taylor', 'Moore', 'Jackson', 'Martin', 'Lee', 'Perez', 'Thompson',
16
+ 'White', 'Harris', 'Sanchez', 'Clark', 'Ramirez', 'Lewis', 'Robinson', 'Walker',
17
+ 'Young', 'Allen', 'King', 'Wright', 'Scott', 'Torres', 'Nguyen', 'Hill', 'Flores'
18
+ ];
19
+ const EMAIL_DOMAINS = [
20
+ 'gmail.com', 'yahoo.com', 'outlook.com', 'hotmail.com', 'icloud.com',
21
+ 'protonmail.com', 'example.com', 'test.com', 'mail.com', 'email.com'
22
+ ];
23
+ const STREET_NAMES = [
24
+ 'Main', 'Oak', 'Maple', 'Cedar', 'Pine', 'Elm', 'Washington', 'Lake',
25
+ 'Hill', 'Park', 'Forest', 'River', 'Spring', 'Valley', 'Sunset', 'Broadway'
26
+ ];
27
+ const STREET_TYPES = ['St', 'Ave', 'Blvd', 'Dr', 'Ln', 'Rd', 'Way', 'Ct', 'Pl'];
28
+ const CITIES = [
29
+ 'New York', 'Los Angeles', 'Chicago', 'Houston', 'Phoenix', 'Philadelphia',
30
+ 'San Antonio', 'San Diego', 'Dallas', 'San Jose', 'Austin', 'Jacksonville',
31
+ 'Fort Worth', 'Columbus', 'Charlotte', 'Seattle', 'Denver', 'Boston', 'Portland'
32
+ ];
33
+ const STATES = [
34
+ { name: 'California', abbr: 'CA' }, { name: 'Texas', abbr: 'TX' },
35
+ { name: 'Florida', abbr: 'FL' }, { name: 'New York', abbr: 'NY' },
36
+ { name: 'Pennsylvania', abbr: 'PA' }, { name: 'Illinois', abbr: 'IL' },
37
+ { name: 'Ohio', abbr: 'OH' }, { name: 'Georgia', abbr: 'GA' },
38
+ { name: 'North Carolina', abbr: 'NC' }, { name: 'Michigan', abbr: 'MI' },
39
+ { name: 'Washington', abbr: 'WA' }, { name: 'Arizona', abbr: 'AZ' },
40
+ { name: 'Massachusetts', abbr: 'MA' }, { name: 'Colorado', abbr: 'CO' }
41
+ ];
42
+ const COMPANY_PREFIXES = [
43
+ 'Tech', 'Global', 'Innovative', 'Premier', 'Elite', 'Advanced', 'Dynamic',
44
+ 'Strategic', 'Creative', 'Digital', 'Smart', 'Next', 'Pro', 'Prime', 'Alpha'
45
+ ];
46
+ const COMPANY_SUFFIXES = [
47
+ 'Solutions', 'Systems', 'Technologies', 'Industries', 'Enterprises', 'Corp',
48
+ 'Inc', 'Labs', 'Group', 'Partners', 'Dynamics', 'Innovations', 'Services', 'Co'
49
+ ];
50
+ const LOREM_WORDS = [
51
+ 'lorem', 'ipsum', 'dolor', 'sit', 'amet', 'consectetur', 'adipiscing', 'elit',
52
+ 'sed', 'do', 'eiusmod', 'tempor', 'incididunt', 'ut', 'labore', 'et', 'dolore',
53
+ 'magna', 'aliqua', 'enim', 'ad', 'minim', 'veniam', 'quis', 'nostrud',
54
+ 'exercitation', 'ullamco', 'laboris', 'nisi', 'aliquip', 'ex', 'ea', 'commodo',
55
+ 'consequat', 'duis', 'aute', 'irure', 'in', 'reprehenderit', 'voluptate',
56
+ 'velit', 'esse', 'cillum', 'fugiat', 'nulla', 'pariatur', 'excepteur', 'sint',
57
+ 'occaecat', 'cupidatat', 'non', 'proident', 'sunt', 'culpa', 'qui', 'officia',
58
+ 'deserunt', 'mollit', 'anim', 'id', 'est', 'laborum'
59
+ ];
60
+ // ============ GENERATORS ============
61
+ function randomItem(arr) {
62
+ return arr[Math.floor(Math.random() * arr.length)];
63
+ }
64
+ function randomInt(min, max) {
65
+ return Math.floor(Math.random() * (max - min + 1)) + min;
66
+ }
67
+ function generateName() {
68
+ const firstName = randomItem(FIRST_NAMES);
69
+ const lastName = randomItem(LAST_NAMES);
70
+ return { firstName, lastName, fullName: `${firstName} ${lastName}` };
71
+ }
72
+ function generateEmail(name) {
73
+ const { firstName, lastName } = name || generateName();
74
+ const domain = randomItem(EMAIL_DOMAINS);
75
+ const separators = ['.', '_', ''];
76
+ const separator = randomItem(separators);
77
+ const suffix = Math.random() > 0.5 ? randomInt(1, 99).toString() : '';
78
+ return `${firstName.toLowerCase()}${separator}${lastName.toLowerCase()}${suffix}@${domain}`;
79
+ }
80
+ function generatePhone() {
81
+ const areaCode = randomInt(200, 999);
82
+ const prefix = randomInt(200, 999);
83
+ const line = randomInt(1000, 9999);
84
+ return `(${areaCode}) ${prefix}-${line}`;
85
+ }
86
+ function generateAddress() {
87
+ const number = randomInt(100, 9999);
88
+ const streetName = randomItem(STREET_NAMES);
89
+ const streetType = randomItem(STREET_TYPES);
90
+ const street = `${number} ${streetName} ${streetType}`;
91
+ const city = randomItem(CITIES);
92
+ const stateInfo = randomItem(STATES);
93
+ const zip = randomInt(10000, 99999).toString();
94
+ return {
95
+ street,
96
+ city,
97
+ state: stateInfo.name,
98
+ stateAbbr: stateInfo.abbr,
99
+ zip,
100
+ full: `${street}, ${city}, ${stateInfo.abbr} ${zip}`
101
+ };
102
+ }
103
+ function generateUUID() {
104
+ return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {
105
+ const r = Math.random() * 16 | 0;
106
+ const v = c === 'x' ? r : (r & 0x3 | 0x8);
107
+ return v.toString(16);
108
+ });
109
+ }
110
+ function generateCreditCard() {
111
+ const types = [
112
+ { name: 'Visa', prefix: '4', length: 16 },
113
+ { name: 'Mastercard', prefix: '5', length: 16 },
114
+ { name: 'Amex', prefix: '37', length: 15 },
115
+ { name: 'Discover', prefix: '6011', length: 16 }
116
+ ];
117
+ const type = randomItem(types);
118
+ // Generate card number with Luhn algorithm
119
+ let digits = type.prefix.split('').map(Number);
120
+ while (digits.length < type.length - 1) {
121
+ digits.push(randomInt(0, 9));
122
+ }
123
+ // Calculate Luhn check digit
124
+ const reversed = [...digits].reverse();
125
+ let sum = 0;
126
+ for (let i = 0; i < reversed.length; i++) {
127
+ let digit = reversed[i];
128
+ if (i % 2 === 0) {
129
+ digit *= 2;
130
+ if (digit > 9)
131
+ digit -= 9;
132
+ }
133
+ sum += digit;
134
+ }
135
+ const checkDigit = (10 - (sum % 10)) % 10;
136
+ digits.push(checkDigit);
137
+ const number = digits.join('');
138
+ const month = randomInt(1, 12).toString().padStart(2, '0');
139
+ const year = (new Date().getFullYear() + randomInt(1, 5)).toString().slice(-2);
140
+ const cvv = type.name === 'Amex'
141
+ ? randomInt(1000, 9999).toString()
142
+ : randomInt(100, 999).toString();
143
+ // Format number with spaces
144
+ const formatted = type.name === 'Amex'
145
+ ? `${number.slice(0, 4)} ${number.slice(4, 10)} ${number.slice(10)}`
146
+ : `${number.slice(0, 4)} ${number.slice(4, 8)} ${number.slice(8, 12)} ${number.slice(12)}`;
147
+ return {
148
+ number,
149
+ expiry: `${month}/${year}`,
150
+ cvv,
151
+ type: type.name,
152
+ formatted
153
+ };
154
+ }
155
+ function generateCompany() {
156
+ const prefix = randomItem(COMPANY_PREFIXES);
157
+ const suffix = randomItem(COMPANY_SUFFIXES);
158
+ return `${prefix} ${suffix}`;
159
+ }
160
+ function generateDate(start = new Date(2000, 0, 1), end = new Date()) {
161
+ const timestamp = start.getTime() + Math.random() * (end.getTime() - start.getTime());
162
+ const date = new Date(timestamp);
163
+ return {
164
+ date,
165
+ iso: date.toISOString(),
166
+ formatted: date.toLocaleDateString('en-US', {
167
+ year: 'numeric',
168
+ month: 'long',
169
+ day: 'numeric'
170
+ })
171
+ };
172
+ }
173
+ function generateLorem(sentences = 3) {
174
+ const result = [];
175
+ for (let i = 0; i < sentences; i++) {
176
+ const wordCount = randomInt(8, 15);
177
+ const words = [];
178
+ for (let j = 0; j < wordCount; j++) {
179
+ words.push(randomItem(LOREM_WORDS));
180
+ }
181
+ words[0] = words[0].charAt(0).toUpperCase() + words[0].slice(1);
182
+ result.push(words.join(' ') + '.');
183
+ }
184
+ return result.join(' ');
185
+ }
186
+ function generateJson(template) {
187
+ const replacements = {
188
+ '{{name}}': () => generateName().fullName,
189
+ '{{firstName}}': () => generateName().firstName,
190
+ '{{lastName}}': () => generateName().lastName,
191
+ '{{email}}': () => generateEmail(),
192
+ '{{phone}}': () => generatePhone(),
193
+ '{{address}}': () => generateAddress().full,
194
+ '{{street}}': () => generateAddress().street,
195
+ '{{city}}': () => generateAddress().city,
196
+ '{{state}}': () => generateAddress().stateAbbr,
197
+ '{{zip}}': () => generateAddress().zip,
198
+ '{{uuid}}': () => generateUUID(),
199
+ '{{company}}': () => generateCompany(),
200
+ '{{date}}': () => generateDate().iso,
201
+ '{{number}}': () => randomInt(1, 1000).toString(),
202
+ '{{bool}}': () => (Math.random() > 0.5).toString(),
203
+ };
204
+ let result = template;
205
+ for (const [placeholder, generator] of Object.entries(replacements)) {
206
+ const regex = new RegExp(placeholder.replace(/[{}]/g, '\\$&'), 'g');
207
+ result = result.replace(regex, generator);
208
+ }
209
+ return result;
210
+ }
211
+ // ============ PLUGIN ============
212
+ const plugin = {
213
+ activate(api) {
214
+ const { theme, symbols } = api.ui;
215
+ api.registerCommand({
216
+ name: 'fake',
217
+ description: 'Generate fake data for testing',
218
+ usage: '/fake <type> [options]\n\n Types: email, name, phone, address, uuid, card, company, date, lorem, json',
219
+ async execute(args) {
220
+ const type = args[0]?.toLowerCase();
221
+ if (!type) {
222
+ console.log('');
223
+ console.log(` ${symbols.sparkles} ${theme.gradient('FAKE DATA GENERATOR')}`);
224
+ console.log('');
225
+ console.log(` ${theme.dim('Usage:')} /fake <type> [options]`);
226
+ console.log('');
227
+ console.log(` ${theme.dim('Types:')}`);
228
+ console.log(` ${theme.primary('email')} ${theme.dim('Random email address')}`);
229
+ console.log(` ${theme.primary('name')} ${theme.dim('Random full name')}`);
230
+ console.log(` ${theme.primary('phone')} ${theme.dim('Random phone number')}`);
231
+ console.log(` ${theme.primary('address')} ${theme.dim('Random street address')}`);
232
+ console.log(` ${theme.primary('uuid')} ${theme.dim('Random UUID')}`);
233
+ console.log(` ${theme.primary('card')} ${theme.dim('Fake credit card')}`);
234
+ console.log(` ${theme.primary('company')} ${theme.dim('Random company name')}`);
235
+ console.log(` ${theme.primary('date')} ${theme.dim('Random date')}`);
236
+ console.log(` ${theme.primary('lorem')} ${theme.dim('Lorem ipsum text')}`);
237
+ console.log(` ${theme.primary('json')} ${theme.dim('JSON with placeholders')}`);
238
+ console.log('');
239
+ return;
240
+ }
241
+ console.log('');
242
+ switch (type) {
243
+ case 'email': {
244
+ const email = generateEmail();
245
+ console.log(` ${symbols.check} ${theme.success('Email:')} ${theme.primary(email)}`);
246
+ break;
247
+ }
248
+ case 'name': {
249
+ const name = generateName();
250
+ console.log(` ${symbols.check} ${theme.success('Name:')} ${theme.primary(name.fullName)}`);
251
+ console.log(` ${theme.dim('First:')} ${name.firstName} ${theme.dim('Last:')} ${name.lastName}`);
252
+ break;
253
+ }
254
+ case 'phone': {
255
+ const phone = generatePhone();
256
+ console.log(` ${symbols.check} ${theme.success('Phone:')} ${theme.primary(phone)}`);
257
+ break;
258
+ }
259
+ case 'address': {
260
+ const addr = generateAddress();
261
+ console.log(` ${symbols.check} ${theme.success('Address:')}`);
262
+ console.log(` ${theme.primary(addr.street)}`);
263
+ console.log(` ${addr.city}, ${addr.stateAbbr} ${addr.zip}`);
264
+ break;
265
+ }
266
+ case 'uuid': {
267
+ const uuid = generateUUID();
268
+ console.log(` ${symbols.check} ${theme.success('UUID:')} ${theme.primary(uuid)}`);
269
+ break;
270
+ }
271
+ case 'card': {
272
+ const card = generateCreditCard();
273
+ console.log(` ${symbols.check} ${theme.success('Credit Card:')}`);
274
+ console.log(` ${theme.dim('Type:')} ${theme.primary(card.type)}`);
275
+ console.log(` ${theme.dim('Number:')} ${theme.primary(card.formatted)}`);
276
+ console.log(` ${theme.dim('Expiry:')} ${card.expiry} ${theme.dim('CVV:')} ${card.cvv}`);
277
+ console.log('');
278
+ console.log(` ${theme.warning(`${symbols.warning} For testing only - not a real card`)}`);
279
+ break;
280
+ }
281
+ case 'company': {
282
+ const company = generateCompany();
283
+ console.log(` ${symbols.check} ${theme.success('Company:')} ${theme.primary(company)}`);
284
+ break;
285
+ }
286
+ case 'date': {
287
+ const date = generateDate();
288
+ console.log(` ${symbols.check} ${theme.success('Date:')} ${theme.primary(date.formatted)}`);
289
+ console.log(` ${theme.dim('ISO:')} ${date.iso}`);
290
+ break;
291
+ }
292
+ case 'lorem': {
293
+ const count = parseInt(args[1]) || 3;
294
+ const text = generateLorem(count);
295
+ console.log(` ${symbols.check} ${theme.success(`Lorem Ipsum (${count} sentences):`)}`);
296
+ console.log('');
297
+ // Word wrap at ~60 chars
298
+ const words = text.split(' ');
299
+ let line = ' ';
300
+ for (const word of words) {
301
+ if (line.length + word.length > 65) {
302
+ console.log(line);
303
+ line = ' ';
304
+ }
305
+ line += word + ' ';
306
+ }
307
+ if (line.trim())
308
+ console.log(line);
309
+ break;
310
+ }
311
+ case 'json': {
312
+ const template = args.slice(1).join(' ');
313
+ if (!template) {
314
+ console.log(` ${symbols.warning} ${theme.warning('Usage:')} /fake json <template>`);
315
+ console.log('');
316
+ console.log(` ${theme.dim('Example:')}`);
317
+ console.log(` /fake json {"name": "{{name}}", "email": "{{email}}"}`);
318
+ console.log('');
319
+ console.log(` ${theme.dim('Placeholders:')} {{name}}, {{email}}, {{phone}}, {{address}},`);
320
+ console.log(` {{uuid}}, {{company}}, {{date}}, {{number}}, {{bool}}`);
321
+ break;
322
+ }
323
+ try {
324
+ const result = generateJson(template);
325
+ const parsed = JSON.parse(result);
326
+ const pretty = JSON.stringify(parsed, null, 2);
327
+ console.log(` ${symbols.check} ${theme.success('Generated JSON:')}`);
328
+ console.log('');
329
+ for (const line of pretty.split('\n')) {
330
+ console.log(` ${theme.primary(line)}`);
331
+ }
332
+ }
333
+ catch {
334
+ console.log(` ${symbols.cross} ${theme.error('Invalid JSON template')}`);
335
+ }
336
+ break;
337
+ }
338
+ default:
339
+ console.log(` ${symbols.cross} ${theme.error(`Unknown type: ${type}`)}`);
340
+ console.log(` ${theme.dim('Run /fake to see available types')}`);
341
+ }
342
+ console.log('');
343
+ }
344
+ });
345
+ api.log.info('Faker plugin activated');
346
+ }
347
+ };
348
+ export default plugin;
349
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ {
2
+ "name": "zammy-plugin-faker",
3
+ "version": "1.0.1",
4
+ "description": "Generate fake data for testing and development",
5
+ "type": "module",
6
+ "main": "dist/index.js",
7
+ "types": "dist/index.d.ts",
8
+ "files": ["dist", "zammy-plugin.json", "README.md"],
9
+ "scripts": {
10
+ "build": "tsc",
11
+ "dev": "tsc --watch"
12
+ },
13
+ "keywords": ["zammy-plugin", "zammy", "cli", "faker", "mock-data", "test-data"],
14
+ "author": "Aayush Adhikari",
15
+ "license": "MIT",
16
+ "repository": {
17
+ "type": "git",
18
+ "url": "git+https://github.com/aayushadhikari7/zammy-cli.git",
19
+ "directory": "packages/plugins/faker"
20
+ },
21
+ "bugs": {
22
+ "url": "https://github.com/aayushadhikari7/zammy-cli/issues"
23
+ },
24
+ "homepage": "https://github.com/aayushadhikari7/zammy-cli/tree/main/packages/plugins/faker#readme",
25
+ "peerDependencies": {
26
+ "zammy": "^1.0.0"
27
+ },
28
+ "devDependencies": {
29
+ "zammy": "*",
30
+ "typescript": "^5.3.0"
31
+ }
32
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "name": "zammy-plugin-faker",
3
+ "version": "1.0.0",
4
+ "displayName": "Faker",
5
+ "description": "Generate fake data for testing and development",
6
+ "author": "Zammy CLI",
7
+ "license": "MIT",
8
+ "main": "./dist/index.js",
9
+ "commands": ["fake"],
10
+ "zammy": {
11
+ "minVersion": "1.2.0"
12
+ },
13
+ "permissions": {}
14
+ }
@@ -0,0 +1,126 @@
1
+ # zammy-plugin-network
2
+
3
+ Network utilities and diagnostics for your terminal.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ /plugin install zammy-plugin-network
9
+ ```
10
+
11
+ ## Commands
12
+
13
+ ### `/net ip`
14
+
15
+ Show your local and public IP addresses.
16
+
17
+ ```
18
+ IP ADDRESSES
19
+
20
+ Local:
21
+ → 192.168.1.100
22
+
23
+ Public: 203.0.113.42
24
+ ```
25
+
26
+ ### `/net ping <host>`
27
+
28
+ Ping a host and show response times.
29
+
30
+ ```bash
31
+ /net ping google.com
32
+
33
+ Pinging google.com...
34
+
35
+ ✔ Reply 1: 15ms TTL=117
36
+ ✔ Reply 2: 14ms TTL=117
37
+ ✔ Reply 3: 16ms TTL=117
38
+ ✔ Reply 4: 14ms TTL=117
39
+
40
+ Min: 14ms Max: 16ms Avg: 14.8ms
41
+ ```
42
+
43
+ ### `/net dns <domain>`
44
+
45
+ Perform DNS lookup and show all records.
46
+
47
+ ```bash
48
+ /net dns github.com
49
+
50
+ DNS: GITHUB.COM
51
+
52
+ TYPE VALUE
53
+ ──────────────────────────────────────────────
54
+ A 140.82.112.3
55
+ AAAA 2606:50c0:8000::154
56
+ MX 10 alt1.aspmx.l.google.com
57
+ NS dns1.p08.nsone.net
58
+ ```
59
+
60
+ ### `/net speed`
61
+
62
+ Run a download speed test.
63
+
64
+ ```bash
65
+ /net speed
66
+
67
+ SPEED TEST
68
+
69
+ ✔ Test complete
70
+
71
+ Download: 95.42 Mbps
72
+ Latency: 45ms
73
+ Data: 5.0 MB in 0.4s
74
+ ```
75
+
76
+ ### `/net headers <url>`
77
+
78
+ Fetch and display HTTP headers for a URL.
79
+
80
+ ```bash
81
+ /net headers example.com
82
+
83
+ Status: 200 OK
84
+
85
+ Headers:
86
+ ──────────────────────────────────────────────
87
+ content-type: text/html; charset=UTF-8
88
+ content-length: 1256
89
+ server: nginx
90
+ cache-control: max-age=604800
91
+ ```
92
+
93
+ ### `/net ports`
94
+
95
+ Display a reference table of common ports.
96
+
97
+ ```
98
+ COMMON PORTS
99
+
100
+ PORT SERVICE PROTOCOL
101
+ ────────────────────────────────────────
102
+ 22 SSH TCP
103
+ 80 HTTP TCP
104
+ 443 HTTPS TCP
105
+ 3306 MySQL TCP
106
+ 5432 PostgreSQL TCP
107
+ 6379 Redis TCP
108
+ ...
109
+ ```
110
+
111
+ ## Cross-Platform Support
112
+
113
+ This plugin works on:
114
+ - **Windows** - Uses Windows ping
115
+ - **macOS** - Uses macOS ping
116
+ - **Linux** - Uses Linux ping
117
+
118
+ ## Permissions
119
+
120
+ This plugin requires:
121
+ - **shell** - For ping command
122
+ - **network** - For public IP and speed test
123
+
124
+ ## License
125
+
126
+ 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":"AAOA,OAAO,KAAK,EAAa,WAAW,EAAE,MAAM,eAAe,CAAC;AAkQ5D,QAAA,MAAM,MAAM,EAAE,WAuPb,CAAC;AAEF,eAAe,MAAM,CAAC"}