lanet 0.5.1 → 1.0.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.
data/index.html CHANGED
@@ -4,292 +4,442 @@
4
4
  <head>
5
5
  <meta charset="UTF-8">
6
6
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
7
- <title>Lanet - Secure Network Communications Library</title>
7
+ <title>Lanet v1.0.0 - Secure LAN Communication Library</title>
8
8
  <style>
9
+ * {
10
+ margin: 0;
11
+ padding: 0;
12
+ box-sizing: border-box;
13
+ }
14
+
15
+ :root {
16
+ --primary: #3498db;
17
+ --secondary: #2ecc71;
18
+ --dark: #2c3e50;
19
+ --light: #ecf0f1;
20
+ --accent: #e74c3c;
21
+ --warning: #f39c12;
22
+ --bg: #ffffff;
23
+ --text: #34495e;
24
+ --border: #e1e8ed;
25
+ --shadow: rgba(0, 0, 0, 0.08);
26
+ }
27
+
9
28
  body {
10
- font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
11
- line-height: 1.7;
12
- /* Increased line height for better readability */
13
- color: #34495e;
14
- /* Darker, more professional text color */
15
- max-width: 980px;
16
- /* Slightly wider max width for content */
17
- margin: 20px auto;
18
- /* Added top and bottom margin for better spacing */
29
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Helvetica Neue', Arial, sans-serif;
30
+ line-height: 1.6;
31
+ color: var(--text);
32
+ background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
33
+ min-height: 100vh;
19
34
  padding: 20px;
20
- background-color: #f4f6f9;
21
- /* Lighter background color */
22
35
  }
23
36
 
24
- h1 {
25
- color: #34495e;
26
- /* Darker heading color */
27
- border-bottom: 3px solid #3498db;
28
- /* Thicker border */
29
- padding-bottom: 12px;
30
- /* Increased padding */
31
- letter-spacing: -0.5px;
32
- /* Slightly tighter letter spacing for headings */
37
+ .container {
38
+ max-width: 1200px;
39
+ margin: 0 auto;
40
+ background: var(--bg);
41
+ border-radius: 16px;
42
+ box-shadow: 0 20px 60px var(--shadow);
43
+ overflow: hidden;
33
44
  }
34
45
 
35
- h2 {
36
- color: #3498db;
37
- /* Primary blue color for subheadings */
38
- margin-top: 35px;
39
- /* Increased top margin */
40
- margin-bottom: 10px;
41
- /* Added bottom margin */
46
+ /* Header */
47
+ header {
48
+ background: linear-gradient(135deg, var(--primary) 0%, #2980b9 100%);
49
+ color: white;
50
+ padding: 60px 40px;
51
+ text-align: center;
52
+ position: relative;
53
+ overflow: hidden;
42
54
  }
43
55
 
44
- h3 {
45
- color: #2ecc71;
46
- /* Vibrant green for section titles */
47
- margin-top: 30px;
48
- margin-bottom: 8px;
56
+ header::before {
57
+ content: '';
58
+ position: absolute;
59
+ top: 0;
60
+ left: 0;
61
+ right: 0;
62
+ bottom: 0;
63
+ background: url('data:image/svg+xml,<svg width="100" height="100" xmlns="http://www.w3.org/2000/svg"><defs><pattern id="grid" width="40" height="40" patternUnits="userSpaceOnUse"><path d="M 40 0 L 0 0 0 40" fill="none" stroke="rgba(255,255,255,0.05)" stroke-width="1"/></pattern></defs><rect width="100" height="100" fill="url(%23grid)"/></svg>');
64
+ opacity: 0.3;
49
65
  }
50
66
 
51
- h4 {
52
- color: #34495e;
53
- /* Darker color for sub-subheadings */
54
- margin-top: 25px;
55
- margin-bottom: 5px;
67
+ header h1 {
68
+ font-size: 3.5rem;
69
+ font-weight: 700;
70
+ margin-bottom: 15px;
71
+ position: relative;
72
+ z-index: 1;
56
73
  }
57
74
 
58
- p {
59
- margin-bottom: 15px;
60
- /* Increased paragraph spacing */
61
- color: #555;
62
- /* Slightly softer paragraph text color */
75
+ header .version {
76
+ display: inline-block;
77
+ background: rgba(255, 255, 255, 0.2);
78
+ padding: 8px 20px;
79
+ border-radius: 30px;
80
+ font-size: 0.9rem;
81
+ font-weight: 600;
82
+ margin-top: 10px;
83
+ backdrop-filter: blur(10px);
63
84
  }
64
85
 
65
- ul,
66
- ol {
86
+ header .tagline {
87
+ font-size: 1.3rem;
88
+ margin-top: 20px;
89
+ opacity: 0.95;
90
+ font-weight: 300;
91
+ position: relative;
92
+ z-index: 1;
93
+ }
94
+
95
+ /* What's New Banner */
96
+ .whats-new {
97
+ background: linear-gradient(135deg, var(--secondary) 0%, #27ae60 100%);
98
+ color: white;
99
+ padding: 30px 40px;
100
+ text-align: center;
101
+ }
102
+
103
+ .whats-new h2 {
104
+ font-size: 1.8rem;
67
105
  margin-bottom: 15px;
68
- color: #555;
69
- }
70
-
71
- pre {
72
- background-color: #f0f0f0;
73
- /* Slightly darker pre background */
74
- border: 1px solid #ccc;
75
- /* Lighter border */
76
- border-left: 5px solid #3498db;
77
- /* Thicker, more prominent left border */
78
- padding: 16px;
79
- /* Increased padding */
80
- overflow-x: auto;
81
- border-radius: 6px;
82
- /* More rounded corners */
83
- font-size: 0.95em;
84
- /* Slightly smaller font size in code blocks */
106
+ display: flex;
107
+ align-items: center;
108
+ justify-content: center;
109
+ gap: 10px;
85
110
  }
86
111
 
87
- code {
88
- font-family: 'Courier New', Courier, monospace;
89
- color: #2c3e50;
90
- /* Darker code text color */
112
+ .whats-new .emoji {
113
+ font-size: 2rem;
91
114
  }
92
115
 
93
- .container {
94
- background-color: #fff;
95
- border-radius: 10px;
96
- /* More rounded container corners */
97
- box-shadow: 0 3px 20px rgba(0, 0, 0, 0.08);
98
- /* Softer, more subtle shadow */
99
- padding: 40px;
100
- /* Increased container padding */
116
+ .whats-new p {
117
+ font-size: 1.1rem;
118
+ opacity: 0.95;
119
+ max-width: 800px;
120
+ margin: 0 auto;
101
121
  }
102
122
 
103
- .feature {
104
- margin: 25px 0;
105
- /* Increased feature margin */
106
- padding-left: 25px;
107
- /* Increased padding */
108
- border-left: 5px solid #2ecc71;
109
- /* Thicker feature border */
123
+ /* Content */
124
+ .content {
125
+ padding: 50px 40px;
110
126
  }
111
127
 
112
- .security-feature {
113
- background-color: #e8f4fc;
114
- padding: 20px;
115
- /* Increased padding */
116
- margin: 15px 0;
117
- /* Increased margin */
118
- border-radius: 8px;
119
- /* More rounded corners */
128
+ h2 {
129
+ color: var(--dark);
130
+ font-size: 2rem;
131
+ margin: 40px 0 20px 0;
132
+ padding-bottom: 10px;
133
+ border-bottom: 3px solid var(--primary);
134
+ display: inline-block;
135
+ }
136
+
137
+ h3 {
138
+ color: var(--primary);
139
+ font-size: 1.4rem;
140
+ margin: 30px 0 15px 0;
120
141
  }
121
142
 
122
- .security-feature ul li {
123
- margin-bottom: 8px;
124
- /* Spacing in security feature lists */
143
+ p {
144
+ margin-bottom: 15px;
145
+ color: var(--text);
146
+ font-size: 1.05rem;
125
147
  }
126
148
 
127
- .cli-example {
128
- background-color: #2c3e50;
129
- color: #ecf0f1;
130
- padding: 15px 20px;
131
- /* Increased padding */
132
- margin: 15px 0;
133
- /* Increased margin */
134
- border-radius: 8px;
135
- /* More rounded corners */
136
- font-family: 'Courier New', Courier, monospace;
149
+ /* Feature Grid */
150
+ .features-grid {
151
+ display: grid;
152
+ grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
153
+ gap: 25px;
154
+ margin: 30px 0;
155
+ }
156
+
157
+ .feature-card {
158
+ background: var(--bg);
159
+ border: 2px solid var(--border);
160
+ border-radius: 12px;
161
+ padding: 25px;
162
+ transition: all 0.3s ease;
137
163
  position: relative;
138
- font-size: 0.95em;
139
- /* Slightly smaller font size in CLI examples */
164
+ overflow: hidden;
140
165
  }
141
166
 
142
- .cli-example::before {
143
- content: "$";
144
- color: #3498db;
145
- margin-right: 12px;
146
- /* Increased margin */
147
- font-weight: bold;
167
+ .feature-card::before {
168
+ content: '';
169
+ position: absolute;
170
+ top: 0;
171
+ left: 0;
172
+ width: 4px;
173
+ height: 100%;
174
+ background: linear-gradient(180deg, var(--primary), var(--secondary));
175
+ transform: scaleY(0);
176
+ transition: transform 0.3s ease;
177
+ }
178
+
179
+ .feature-card:hover {
180
+ transform: translateY(-5px);
181
+ box-shadow: 0 10px 30px var(--shadow);
182
+ border-color: var(--primary);
183
+ }
184
+
185
+ .feature-card:hover::before {
186
+ transform: scaleY(1);
187
+ }
188
+
189
+ .feature-card h3 {
190
+ margin-top: 0;
191
+ display: flex;
192
+ align-items: center;
193
+ gap: 10px;
194
+ }
195
+
196
+ .feature-icon {
197
+ font-size: 1.5rem;
198
+ }
199
+
200
+ /* Badge */
201
+ .badge {
148
202
  display: inline-block;
149
- /* Ensure proper spacing */
150
- width: 15px;
151
- /* Fixed width for the dollar sign to align commands */
152
- text-align: right;
153
- /* Align dollar sign to the right */
203
+ background: var(--secondary);
204
+ color: white;
205
+ padding: 4px 12px;
206
+ border-radius: 20px;
207
+ font-size: 0.75rem;
208
+ font-weight: 600;
209
+ text-transform: uppercase;
210
+ letter-spacing: 0.5px;
211
+ }
212
+
213
+ .badge.new {
214
+ background: var(--accent);
215
+ animation: pulse 2s infinite;
154
216
  }
155
217
 
156
- .cli-section {
157
- margin-bottom: 40px;
158
- /* Increased bottom margin */
159
- background-color: #f8f9fa;
218
+ @keyframes pulse {
219
+
220
+ 0%,
221
+ 100% {
222
+ opacity: 1;
223
+ }
224
+
225
+ 50% {
226
+ opacity: 0.7;
227
+ }
228
+ }
229
+
230
+ /* Code Block */
231
+ .code-block {
232
+ background: var(--dark);
233
+ color: var(--light);
160
234
  padding: 25px;
161
- /* Increased padding */
162
- border-radius: 8px;
163
- /* More rounded corners */
235
+ border-radius: 10px;
236
+ overflow-x: auto;
237
+ margin: 20px 0;
238
+ font-family: 'Monaco', 'Courier New', monospace;
239
+ font-size: 0.95rem;
240
+ line-height: 1.6;
241
+ box-shadow: 0 5px 15px rgba(0, 0, 0, 0.2);
164
242
  }
165
243
 
166
- .output-example {
167
- background-color: #f0f0f0;
168
- padding: 15px;
169
- /* Increased padding */
170
- margin: 15px 0;
171
- /* Increased margin */
172
- border-radius: 8px;
173
- /* More rounded corners */
174
- font-family: 'Courier New', Courier, monospace;
175
- font-size: 0.9em;
176
- border-left: 5px solid #9b59b6;
177
- /* Thicker border */
244
+ .code-block code {
245
+ color: var(--light);
178
246
  }
179
247
 
180
- .tab-container {
181
- border: 1px solid #ddd;
182
- border-radius: 8px;
183
- /* More rounded corners */
184
- overflow: hidden;
185
- margin: 25px 0;
186
- /* Increased margin */
248
+ .code-block .comment {
249
+ color: #95a5a6;
250
+ }
251
+
252
+ .code-block .keyword {
253
+ color: #e74c3c;
254
+ }
255
+
256
+ .code-block .string {
257
+ color: #2ecc71;
258
+ }
259
+
260
+ /* Tabs */
261
+ .tabs {
262
+ margin: 30px 0;
187
263
  }
188
264
 
189
265
  .tab-buttons {
190
266
  display: flex;
191
- background-color: #f5f5f5;
192
- border-bottom: 1px solid #ddd;
193
- /* Added bottom border to tab buttons container */
267
+ gap: 10px;
268
+ flex-wrap: wrap;
269
+ margin-bottom: 20px;
194
270
  }
195
271
 
196
272
  .tab-button {
197
- padding: 12px 25px;
198
- /* Increased padding */
199
- background-color: transparent;
200
- border: none;
273
+ background: var(--light);
274
+ border: 2px solid var(--border);
275
+ padding: 12px 24px;
276
+ border-radius: 8px;
201
277
  cursor: pointer;
202
- border-right: none;
203
- /* Removed right border */
204
- transition: background-color 0.3s;
278
+ font-size: 1rem;
205
279
  font-weight: 500;
206
- /* Slightly bolder tab button text */
207
- color: #777;
208
- /* Slightly muted tab button text color */
280
+ transition: all 0.3s ease;
281
+ color: var(--text);
209
282
  }
210
283
 
211
284
  .tab-button:hover {
212
- background-color: #f0f0f0;
213
- /* Lighter hover background */
214
- color: #555;
215
- /* Darker hover text color */
285
+ background: var(--primary);
286
+ color: white;
287
+ border-color: var(--primary);
216
288
  }
217
289
 
218
290
  .tab-button.active {
219
- background-color: #fff;
220
- /* White background for active tab */
221
- border-bottom: 3px solid #3498db;
222
- /* Underline for active tab */
223
- color: #34495e;
224
- /* Darker text for active tab */
225
- font-weight: bold;
226
- /* Bold text for active tab */
291
+ background: var(--primary);
292
+ color: white;
293
+ border-color: var(--primary);
294
+ box-shadow: 0 4px 12px rgba(52, 152, 219, 0.3);
227
295
  }
228
296
 
229
297
  .tab-content {
230
298
  display: none;
231
- padding: 20px;
232
- /* Increased padding */
233
- background-color: #fff;
234
- /* White background for tab content */
299
+ animation: fadeIn 0.3s ease;
235
300
  }
236
301
 
237
302
  .tab-content.active {
238
303
  display: block;
239
304
  }
240
305
 
241
- .badge {
242
- display: inline-block;
243
- padding: 4px 10px;
244
- /* Increased badge padding */
245
- border-radius: 6px;
246
- /* More rounded corners */
247
- font-size: 13px;
248
- /* Slightly larger font size */
249
- font-weight: 600;
250
- /* Bolder badge text */
251
- letter-spacing: 0.5px;
252
- /* Added letter spacing */
306
+ @keyframes fadeIn {
307
+ from {
308
+ opacity: 0;
309
+ transform: translateY(10px);
310
+ }
311
+
312
+ to {
313
+ opacity: 1;
314
+ transform: translateY(0);
315
+ }
253
316
  }
254
317
 
255
- .badge-new {
256
- background-color: #2ecc71;
257
- color: white;
318
+ /* Improvements Box */
319
+ .improvements {
320
+ background: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%);
321
+ border-radius: 12px;
322
+ padding: 30px;
323
+ margin: 30px 0;
324
+ }
325
+
326
+ .improvements h3 {
327
+ margin-top: 0;
258
328
  }
259
329
 
260
- .note {
261
- background-color: #fff8e1;
262
- padding: 15px;
263
- /* Increased padding */
264
- border-left: 5px solid #ffc107;
265
- /* Thicker border */
266
- margin: 15px 0;
267
- /* Increased margin */
268
- border-radius: 6px;
269
- /* More rounded corners */
330
+ .improvements ul {
331
+ list-style: none;
332
+ padding: 0;
270
333
  }
271
334
 
272
- .note strong {
335
+ .improvements li {
336
+ padding: 10px 0;
337
+ padding-left: 30px;
338
+ position: relative;
339
+ }
340
+
341
+ .improvements li::before {
342
+ content: '✓';
343
+ position: absolute;
344
+ left: 0;
345
+ color: var(--secondary);
273
346
  font-weight: bold;
274
- color: #333;
275
- /* Make "Note:" bold and slightly darker */
347
+ font-size: 1.2rem;
348
+ }
349
+
350
+ /* Stats */
351
+ .stats {
352
+ display: grid;
353
+ grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
354
+ gap: 20px;
355
+ margin: 30px 0;
276
356
  }
277
357
 
358
+ .stat {
359
+ text-align: center;
360
+ padding: 25px;
361
+ background: var(--light);
362
+ border-radius: 10px;
363
+ border: 2px solid var(--border);
364
+ }
365
+
366
+ .stat-value {
367
+ font-size: 2.5rem;
368
+ font-weight: 700;
369
+ color: var(--primary);
370
+ display: block;
371
+ }
372
+
373
+ .stat-label {
374
+ color: var(--text);
375
+ font-size: 0.9rem;
376
+ margin-top: 5px;
377
+ }
378
+
379
+ /* Footer */
278
380
  footer {
279
- margin-top: 50px;
280
- /* Increased footer margin */
381
+ background: var(--dark);
382
+ color: var(--light);
383
+ padding: 40px;
281
384
  text-align: center;
282
- color: #7f8c8d;
283
- padding-top: 20px;
284
- border-top: 1px solid #ddd;
285
- /* Added top border to footer */
286
385
  }
287
386
 
288
- footer p {
289
- color: #95a5a6;
290
- /* Softer footer text color */
291
- font-size: 0.9em;
292
- /* Smaller footer font size */
387
+ footer a {
388
+ color: var(--primary);
389
+ text-decoration: none;
390
+ font-weight: 500;
391
+ }
392
+
393
+ footer a:hover {
394
+ text-decoration: underline;
395
+ }
396
+
397
+ /* Responsive */
398
+ @media (max-width: 768px) {
399
+ header h1 {
400
+ font-size: 2.5rem;
401
+ }
402
+
403
+ header .tagline {
404
+ font-size: 1.1rem;
405
+ }
406
+
407
+ .content {
408
+ padding: 30px 20px;
409
+ }
410
+
411
+ .features-grid {
412
+ grid-template-columns: 1fr;
413
+ }
414
+
415
+ .tab-buttons {
416
+ flex-direction: column;
417
+ }
418
+
419
+ .tab-button {
420
+ width: 100%;
421
+ }
422
+ }
423
+
424
+ /* Install Section */
425
+ .install-section {
426
+ background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
427
+ color: white;
428
+ padding: 40px;
429
+ border-radius: 12px;
430
+ margin: 40px 0;
431
+ text-align: center;
432
+ }
433
+
434
+ .install-section h2 {
435
+ color: white;
436
+ border: none;
437
+ margin: 0 0 20px 0;
438
+ }
439
+
440
+ .install-section .code-block {
441
+ background: rgba(0, 0, 0, 0.3);
442
+ backdrop-filter: blur(10px);
293
443
  }
294
444
  </style>
295
445
  </head>
data/lib/lanet/cli.rb CHANGED
@@ -134,11 +134,7 @@ module Lanet
134
134
  puts "Content: #{result[:content]}"
135
135
 
136
136
  if result.key?(:verified)
137
- verification_status = if result[:verified]
138
- "VERIFIED"
139
- else
140
- "NOT VERIFIED: #{result[:verification_status]}"
141
- end
137
+ verification_status = result[:verified] ? "VERIFIED" : "NOT VERIFIED: #{result[:verification_status]}"
142
138
  puts "Signature: #{verification_status}"
143
139
  end
144
140