own-term 0.1.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.
Files changed (54) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +353 -0
  3. package/bin/cli.d.ts +3 -0
  4. package/bin/cli.d.ts.map +1 -0
  5. package/bin/cli.js +29 -0
  6. package/bin/cli.js.map +1 -0
  7. package/bin/commands/index.d.ts +3 -0
  8. package/bin/commands/index.d.ts.map +1 -0
  9. package/bin/commands/index.js +390 -0
  10. package/bin/commands/index.js.map +1 -0
  11. package/bin/config.d.ts +10 -0
  12. package/bin/config.d.ts.map +1 -0
  13. package/bin/config.js +160 -0
  14. package/bin/config.js.map +1 -0
  15. package/bin/plugins/loader.d.ts +11 -0
  16. package/bin/plugins/loader.d.ts.map +1 -0
  17. package/bin/plugins/loader.js +89 -0
  18. package/bin/plugins/loader.js.map +1 -0
  19. package/bin/plugins/plugin_api.d.ts +15 -0
  20. package/bin/plugins/plugin_api.d.ts.map +1 -0
  21. package/bin/plugins/plugin_api.js +27 -0
  22. package/bin/plugins/plugin_api.js.map +1 -0
  23. package/bin/render/effects.d.ts +22 -0
  24. package/bin/render/effects.d.ts.map +1 -0
  25. package/bin/render/effects.js +57 -0
  26. package/bin/render/effects.js.map +1 -0
  27. package/bin/render/renderer.d.ts +71 -0
  28. package/bin/render/renderer.d.ts.map +1 -0
  29. package/bin/render/renderer.js +175 -0
  30. package/bin/render/renderer.js.map +1 -0
  31. package/bin/shell/engine.d.ts +53 -0
  32. package/bin/shell/engine.d.ts.map +1 -0
  33. package/bin/shell/engine.js +242 -0
  34. package/bin/shell/engine.js.map +1 -0
  35. package/bin/shell/router.d.ts +27 -0
  36. package/bin/shell/router.d.ts.map +1 -0
  37. package/bin/shell/router.js +80 -0
  38. package/bin/shell/router.js.map +1 -0
  39. package/bin/shell/welcome.d.ts +4 -0
  40. package/bin/shell/welcome.d.ts.map +1 -0
  41. package/bin/shell/welcome.js +162 -0
  42. package/bin/shell/welcome.js.map +1 -0
  43. package/bin/themes/default.d.ts +10 -0
  44. package/bin/themes/default.d.ts.map +1 -0
  45. package/bin/themes/default.js +61 -0
  46. package/bin/themes/default.js.map +1 -0
  47. package/bin/types.d.ts +107 -0
  48. package/bin/types.d.ts.map +1 -0
  49. package/bin/types.js +6 -0
  50. package/bin/types.js.map +1 -0
  51. package/package.json +70 -0
  52. package/templates/default/termfolio.config.ts +37 -0
  53. package/templates/hacker/termfolio.config.ts +34 -0
  54. package/templates/minimal/termfolio.config.ts +23 -0
package/bin/types.d.ts ADDED
@@ -0,0 +1,107 @@
1
+ /**
2
+ * Core type definitions for Own-term framework
3
+ */
4
+ export interface TermfolioConfig {
5
+ name: string;
6
+ title: string;
7
+ asciiLogo?: string;
8
+ about?: string;
9
+ theme?: string;
10
+ promptStyle?: string;
11
+ links: {
12
+ github?: string;
13
+ linkedin?: string;
14
+ twitter?: string;
15
+ website?: string;
16
+ email?: string;
17
+ [key: string]: string | undefined;
18
+ };
19
+ projects: Project[];
20
+ skills: Skills;
21
+ resume?: string;
22
+ plugins?: string[];
23
+ customCommands?: Record<string, CommandHandler>;
24
+ }
25
+ export interface Project {
26
+ name: string;
27
+ desc: string;
28
+ repo?: string;
29
+ url?: string;
30
+ tags?: string[];
31
+ status?: "active" | "archived" | "wip";
32
+ }
33
+ export interface SkillItem {
34
+ name: string;
35
+ level?: number;
36
+ }
37
+ export interface Skills {
38
+ languages?: (string | SkillItem)[];
39
+ frameworks?: (string | SkillItem)[];
40
+ tools?: (string | SkillItem)[];
41
+ databases?: (string | SkillItem)[];
42
+ [category: string]: (string | SkillItem)[] | undefined;
43
+ }
44
+ export type CommandHandler = (args: string[], context: CommandContext) => Promise<void> | void;
45
+ export interface CommandContext {
46
+ config: TermfolioConfig;
47
+ render: RenderAPI;
48
+ theme: Theme;
49
+ }
50
+ export interface RenderAPI {
51
+ box: (content: string, options?: BoxOptions) => void;
52
+ table: (data: Record<string, string>[], headers?: string[]) => void;
53
+ text: (content: string, style?: TextStyle) => void;
54
+ clear: () => void;
55
+ newline: () => void;
56
+ gradient: (text: string, colors?: string[]) => void;
57
+ divider: (char?: string, color?: string) => void;
58
+ header: (text: string, subtitle?: string) => void;
59
+ list: (items: string[], bullet?: string) => void;
60
+ keyValue: (data: Record<string, string>, indent?: number) => void;
61
+ success: (message: string) => void;
62
+ warning: (message: string) => void;
63
+ error: (message: string) => void;
64
+ info: (message: string) => void;
65
+ textAnimated: (content: string, style?: TextStyle) => Promise<void>;
66
+ setTypewriterMode: (enabled: boolean) => void;
67
+ }
68
+ export interface BoxOptions {
69
+ title?: string;
70
+ padding?: number;
71
+ borderStyle?: "single" | "double" | "round" | "bold";
72
+ borderColor?: string;
73
+ }
74
+ export interface TextStyle {
75
+ color?: string;
76
+ bold?: boolean;
77
+ italic?: boolean;
78
+ underline?: boolean;
79
+ }
80
+ export interface Theme {
81
+ primary: string;
82
+ secondary: string;
83
+ accent: string;
84
+ success: string;
85
+ warning: string;
86
+ error: string;
87
+ text: string;
88
+ dim: string;
89
+ }
90
+ export interface Plugin {
91
+ name: string;
92
+ version?: string;
93
+ register: (api: PluginAPI) => void;
94
+ }
95
+ export interface PluginAPI {
96
+ registerCommand: (name: string, description: string, handler: CommandHandler) => void;
97
+ getConfig: () => TermfolioConfig;
98
+ render: RenderAPI;
99
+ theme: Theme;
100
+ }
101
+ export interface Command {
102
+ name: string;
103
+ description: string;
104
+ aliases?: string[];
105
+ handler: CommandHandler;
106
+ }
107
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/bin/types.js ADDED
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ /**
3
+ * Core type definitions for Own-term framework
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";AAAA;;GAEG"}
package/package.json ADDED
@@ -0,0 +1,70 @@
1
+ {
2
+ "name": "own-term",
3
+ "version": "0.1.0",
4
+ "description": "Create a beautiful, interactive terminal portfolio — installable via npx or npm i -g",
5
+ "keywords": [
6
+ "terminal",
7
+ "portfolio",
8
+ "cli",
9
+ "interactive",
10
+ "developer-tools",
11
+ "portfolio-generator",
12
+ "terminal-portfolio",
13
+ "developer-portfolio",
14
+ "npx",
15
+ "framework",
16
+ "ascii",
17
+ "typescript",
18
+ "resume",
19
+ "themes",
20
+ "plugins"
21
+ ],
22
+ "author": "Biki Dev <Bikikalitadev@gmail.com>",
23
+ "license": "MIT",
24
+ "repository": {
25
+ "type": "git",
26
+ "url": "https://github.com/Biki-dev/own-term"
27
+ },
28
+ "bin": {
29
+ "own-term": "bin/cli.js",
30
+ "termfolio": "./bin/cli.js"
31
+ },
32
+ "main": "./bin/cli.js",
33
+ "files": [
34
+ "bin",
35
+ "templates"
36
+ ],
37
+ "scripts": {
38
+ "build": "tsc",
39
+ "postbuild": "chmod +x bin/cli.js || echo \"Skipping chmod on Windows\"",
40
+ "dev": "ts-node src/cli.ts",
41
+ "test": "vitest run",
42
+ "lint": "eslint src --ext .ts",
43
+ "format": "prettier --write \"src/**/*.ts\"",
44
+ "prepare": "npm run build",
45
+ "prepublishOnly": "npm run build && npm test"
46
+ },
47
+ "dependencies": {
48
+ "boxen": "^7.1.1",
49
+ "chalk": "^5.3.0",
50
+ "cli-table3": "^0.6.3",
51
+ "gradient-string": "^2.0.2",
52
+ "inquirer": "^9.2.12",
53
+ "open": "^10.0.3"
54
+ },
55
+ "devDependencies": {
56
+ "@types/gradient-string": "^1.1.6",
57
+ "@types/inquirer": "^9.0.7",
58
+ "@types/node": "^20.10.6",
59
+ "@typescript-eslint/eslint-plugin": "^6.17.0",
60
+ "@typescript-eslint/parser": "^6.17.0",
61
+ "eslint": "^8.56.0",
62
+ "prettier": "^3.1.1",
63
+ "ts-node": "^10.9.2",
64
+ "typescript": "^5.3.3",
65
+ "vitest": "^1.1.1"
66
+ },
67
+ "engines": {
68
+ "node": ">=18.0.0"
69
+ }
70
+ }
@@ -0,0 +1,37 @@
1
+ export default {
2
+ name: "Your Name",
3
+ title: "Full-Stack Developer",
4
+ asciiLogo: "YOUR-NAME",
5
+ about: "I'm a passionate developer who loves building amazing things with code. I specialize in web development and open-source contributions.",
6
+ theme: "dark",
7
+ links: {
8
+ github: "https://github.com/yourusername",
9
+ linkedin: "https://linkedin.com/in/yourusername",
10
+ twitter: "https://twitter.com/yourusername",
11
+ email: "you@example.com",
12
+ website: "https://yourwebsite.com"
13
+ },
14
+ projects: [
15
+ {
16
+ name: "Awesome Project",
17
+ desc: "A really cool project that does amazing things",
18
+ repo: "https://github.com/yourusername/awesome-project",
19
+ tags: ["javascript", "react", "node"],
20
+ status: "active"
21
+ },
22
+ {
23
+ name: "Another Project",
24
+ desc: "Another interesting project worth mentioning",
25
+ repo: "https://github.com/yourusername/another-project",
26
+ tags: ["typescript", "cli"],
27
+ status: "wip"
28
+ }
29
+ ],
30
+ skills: {
31
+ languages: ["JavaScript", "TypeScript", "Python", "Go"],
32
+ frameworks: ["React", "Node.js", "Express", "Next.js"],
33
+ tools: ["Git", "Docker", "VS Code", "Linux"],
34
+ databases: ["PostgreSQL", "MongoDB", "Redis"]
35
+ },
36
+ resume: "https://yourwebsite.com/resume.pdf"
37
+ };
@@ -0,0 +1,34 @@
1
+ export default {
2
+ name: "H4CK3R",
3
+ title: "Security Researcher & Pentester",
4
+ asciiLogo: "H4CK3R",
5
+ about: "Elite hacker. Breaking systems to make them stronger. Bug bounty hunter. CTF enthusiast.",
6
+ theme: "hacker",
7
+ links: {
8
+ github: "https://github.com/h4ck3r",
9
+ twitter: "https://twitter.com/h4ck3r",
10
+ email: "hack@example.com"
11
+ },
12
+ projects: [
13
+ {
14
+ name: "ExploitDB",
15
+ desc: "Database of security exploits and vulnerabilities",
16
+ repo: "https://github.com/h4ck3r/exploitdb",
17
+ tags: ["security", "exploits", "research"],
18
+ status: "active"
19
+ },
20
+ {
21
+ name: "PwnTools",
22
+ desc: "CTF framework and exploit development library",
23
+ repo: "https://github.com/h4ck3r/pwntools",
24
+ tags: ["ctf", "python", "security"],
25
+ status: "active"
26
+ }
27
+ ],
28
+ skills: {
29
+ languages: ["Python", "C", "Assembly", "JavaScript"],
30
+ specialties: ["Penetration Testing", "Reverse Engineering", "Exploit Development"],
31
+ tools: ["Metasploit", "Burp Suite", "IDA Pro", "Wireshark"],
32
+ certifications: ["OSCP", "CEH", "GPEN"]
33
+ }
34
+ };
@@ -0,0 +1,23 @@
1
+ export default {
2
+ name: "Jane Developer",
3
+ title: "Minimalist Coder",
4
+ about: "Less is more. I write clean, simple code.",
5
+ theme: "light",
6
+ links: {
7
+ github: "https://github.com/jane",
8
+ email: "jane@example.com"
9
+ },
10
+ projects: [
11
+ {
12
+ name: "SimpleApp",
13
+ desc: "A minimal application",
14
+ repo: "https://github.com/jane/simpleapp",
15
+ tags: ["minimal"],
16
+ status: "active"
17
+ }
18
+ ],
19
+ skills: {
20
+ languages: ["JavaScript", "Python"],
21
+ tools: ["Git", "VS Code"]
22
+ }
23
+ };