├── .babelrc ├── .github └── workflows │ └── npmpublish.yml ├── .gitignore ├── .gitpod.yml ├── .husky └── prepare-commit-msg ├── .nvmrc ├── .vscode └── settings.json ├── CONTRIBUTORS.md ├── README.md ├── Screen Shot.png ├── build.sh ├── jsr.json ├── package-lock.json ├── package.json ├── release.config.js └── src └── index.js /.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [ 3 | [ 4 | "@babel/preset-env", 5 | { 6 | "corejs": 3, 7 | "targets": { 8 | "node": "current" 9 | }, 10 | "useBuiltIns": "usage" 11 | } 12 | ] 13 | ], 14 | "retainLines": true 15 | } 16 | -------------------------------------------------------------------------------- /.github/workflows/npmpublish.yml: -------------------------------------------------------------------------------- 1 | name: Publish Node.js Package 2 | 3 | on: 4 | push: 5 | branches: master 6 | release: 7 | types: [created] 8 | 9 | jobs: 10 | build: 11 | runs-on: ubuntu-latest 12 | permissions: 13 | deployments: write 14 | steps: 15 | - uses: actions/checkout@v4 16 | with: 17 | ref: ${{ github.ref }} 18 | fetch-depth: 0 19 | - run: git fetch --depth=1 origin +refs/tags/*:refs/tags/* 20 | - uses: actions/setup-node@v4 21 | with: 22 | cache: "npm" 23 | node-version-file: ".nvmrc" 24 | 25 | - run: npm -v 26 | - run: node -v 27 | 28 | - name: Install app dependencies 29 | run: npm ci 30 | 31 | - run: npm run build 32 | 33 | - uses: chrnorm/deployment-action@releases/v2 34 | name: Create GitHub deployment 35 | id: deployment 36 | with: 37 | token: ${{ secrets.GH_TOKEN }} 38 | description: Production builded from ${{ github.sha }} because of ${{ github.event_name }} by ${{ github.actor }} 39 | environment-url: https://www.npmjs.com/package/ridermansb 40 | 41 | - name: Semantic Release 42 | env: 43 | GH_TOKEN: ${{ secrets.GH_TOKEN }} 44 | NPM_TOKEN: ${{secrets.NPM_TOKEN}} 45 | NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}} 46 | run: npm run release 47 | 48 | - name: Update deployment status (success) 49 | if: success() 50 | uses: chrnorm/deployment-status@releases/v2 51 | with: 52 | token: ${{ secrets.GH_TOKEN }} 53 | state: "success" 54 | deployment-id: ${{ steps.deployment.outputs.deployment_id }} 55 | environment-url: https://www.npmjs.com/package/ridermansb 56 | 57 | - name: Update deployment status (failure) 58 | if: failure() 59 | uses: chrnorm/deployment-status@releases/v2 60 | with: 61 | token: ${{ secrets.GH_TOKEN }} 62 | state: "failure" 63 | deployment-id: ${{ steps.deployment.outputs.deployment_id }} 64 | environment-url: https://www.npmjs.com/package/ridermansb 65 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | 2 | # Created by https://www.gitignore.io/api/windows,osx,node,linux,intellij+all,vscode 3 | # Edit at https://www.gitignore.io/?templates=windows,osx,node,linux,intellij+all,vscode 4 | 5 | ### Intellij+all ### 6 | # Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and WebStorm 7 | # Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 8 | 9 | # User-specific stuff 10 | .idea/**/workspace.xml 11 | .idea/**/tasks.xml 12 | .idea/**/usage.statistics.xml 13 | .idea/**/dictionaries 14 | .idea/**/shelf 15 | 16 | # Generated files 17 | .idea/**/contentModel.xml 18 | 19 | # Sensitive or high-churn files 20 | .idea/**/dataSources/ 21 | .idea/**/dataSources.ids 22 | .idea/**/dataSources.local.xml 23 | .idea/**/sqlDataSources.xml 24 | .idea/**/dynamic.xml 25 | .idea/**/uiDesigner.xml 26 | .idea/**/dbnavigator.xml 27 | 28 | # Gradle 29 | .idea/**/gradle.xml 30 | .idea/**/libraries 31 | 32 | # Gradle and Maven with auto-import 33 | # When using Gradle or Maven with auto-import, you should exclude module files, 34 | # since they will be recreated, and may cause churn. Uncomment if using 35 | # auto-import. 36 | # .idea/modules.xml 37 | # .idea/*.iml 38 | # .idea/modules 39 | 40 | # CMake 41 | cmake-build-*/ 42 | 43 | # Mongo Explorer plugin 44 | .idea/**/mongoSettings.xml 45 | 46 | # File-based project format 47 | *.iws 48 | 49 | # IntelliJ 50 | out/ 51 | 52 | # mpeltonen/sbt-idea plugin 53 | .idea_modules/ 54 | 55 | # JIRA plugin 56 | atlassian-ide-plugin.xml 57 | 58 | # Cursive Clojure plugin 59 | .idea/replstate.xml 60 | 61 | # Crashlytics plugin (for Android Studio and IntelliJ) 62 | com_crashlytics_export_strings.xml 63 | crashlytics.properties 64 | crashlytics-build.properties 65 | fabric.properties 66 | 67 | # Editor-based Rest Client 68 | .idea/httpRequests 69 | 70 | # Android studio 3.1+ serialized cache file 71 | .idea/caches/build_file_checksums.ser 72 | 73 | ### Intellij+all Patch ### 74 | # Ignores the whole .idea folder and all .iml files 75 | # See https://github.com/joeblau/gitignore.io/issues/186 and https://github.com/joeblau/gitignore.io/issues/360 76 | 77 | .idea/ 78 | 79 | # Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-249601023 80 | 81 | *.iml 82 | modules.xml 83 | .idea/misc.xml 84 | *.ipr 85 | 86 | # Sonarlint plugin 87 | .idea/sonarlint 88 | 89 | ### Linux ### 90 | *~ 91 | 92 | # temporary files which can be created if a process still has a handle open of a deleted file 93 | .fuse_hidden* 94 | 95 | # KDE directory preferences 96 | .directory 97 | 98 | # Linux trash folder which might appear on any partition or disk 99 | .Trash-* 100 | 101 | # .nfs files are created when an open file is removed but is still being accessed 102 | .nfs* 103 | 104 | ### Node ### 105 | # Logs 106 | logs 107 | *.log 108 | npm-debug.log* 109 | yarn-debug.log* 110 | yarn-error.log* 111 | 112 | # Runtime data 113 | pids 114 | *.pid 115 | *.seed 116 | *.pid.lock 117 | 118 | # Directory for instrumented libs generated by jscoverage/JSCover 119 | lib-cov 120 | 121 | # Coverage directory used by tools like istanbul 122 | coverage 123 | 124 | # nyc test coverage 125 | .nyc_output 126 | 127 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) 128 | .grunt 129 | 130 | # Bower dependency directory (https://bower.io/) 131 | bower_components 132 | 133 | # node-waf configuration 134 | .lock-wscript 135 | 136 | # Compiled binary addons (https://nodejs.org/api/addons.html) 137 | build/Release 138 | 139 | # Dependency directories 140 | node_modules/ 141 | jspm_packages/ 142 | 143 | # TypeScript v1 declaration files 144 | typings/ 145 | 146 | # Optional npm cache directory 147 | .npm 148 | 149 | # Optional eslint cache 150 | .eslintcache 151 | 152 | # Optional REPL history 153 | .node_repl_history 154 | 155 | # Output of 'npm pack' 156 | *.tgz 157 | 158 | # Yarn Integrity file 159 | .yarn-integrity 160 | 161 | # dotenv environment variables file 162 | .env 163 | .env.test 164 | 165 | # parcel-bundler cache (https://parceljs.org/) 166 | .cache 167 | 168 | # next.js build output 169 | .next 170 | 171 | # nuxt.js build output 172 | .nuxt 173 | 174 | # vuepress build output 175 | .vuepress/dist 176 | 177 | # Serverless directories 178 | .serverless/ 179 | 180 | # FuseBox cache 181 | .fusebox/ 182 | 183 | # DynamoDB Local files 184 | .dynamodb/ 185 | 186 | ### OSX ### 187 | # General 188 | .DS_Store 189 | .AppleDouble 190 | .LSOverride 191 | 192 | # Icon must end with two \r 193 | Icon 194 | 195 | # Thumbnails 196 | ._* 197 | 198 | # Files that might appear in the root of a volume 199 | .DocumentRevisions-V100 200 | .fseventsd 201 | .Spotlight-V100 202 | .TemporaryItems 203 | .Trashes 204 | .VolumeIcon.icns 205 | .com.apple.timemachine.donotpresent 206 | 207 | # Directories potentially created on remote AFP share 208 | .AppleDB 209 | .AppleDesktop 210 | Network Trash Folder 211 | Temporary Items 212 | .apdisk 213 | 214 | #!! ERROR: vscode is undefined. Use list command to see defined gitignore types !!# 215 | 216 | ### Windows ### 217 | # Windows thumbnail cache files 218 | Thumbs.db 219 | ehthumbs.db 220 | ehthumbs_vista.db 221 | 222 | # Dump file 223 | *.stackdump 224 | 225 | # Folder config file 226 | [Dd]esktop.ini 227 | 228 | # Recycle Bin used on file shares 229 | $RECYCLE.BIN/ 230 | 231 | # Windows Installer files 232 | *.cab 233 | *.msi 234 | *.msix 235 | *.msm 236 | *.msp 237 | 238 | # Windows shortcuts 239 | *.lnk 240 | 241 | # End of https://www.gitignore.io/api/windows,osx,node,linux,intellij+all,vscode 242 | 243 | bin/ 244 | .npmrc -------------------------------------------------------------------------------- /.gitpod.yml: -------------------------------------------------------------------------------- 1 | # This configuration file was automatically generated by Gitpod. 2 | # Please adjust to your needs (see https://www.gitpod.io/docs/config-gitpod-file) 3 | # and commit this file to your remote git repository to share the goodness with others. 4 | 5 | tasks: 6 | - init: npm install && npm run build && npm run prepare 7 | command: npm run start 8 | 9 | 10 | -------------------------------------------------------------------------------- /.husky/prepare-commit-msg: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | . "$(dirname "$0")/_/husky.sh" 3 | 4 | exec < /dev/tty && git cz --hook || true 5 | -------------------------------------------------------------------------------- /.nvmrc: -------------------------------------------------------------------------------- 1 | v20.16.0 2 | -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "cSpell.words": ["ridermansb"] 3 | } 4 | -------------------------------------------------------------------------------- /CONTRIBUTORS.md: -------------------------------------------------------------------------------- 1 | [![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/) 2 | 3 | ## How to contribute 4 | 5 | - Fork the repository 6 | - Made your changes and commit using `git commit` command only 7 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | [![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/) ![NPM Downloads](https://img.shields.io/npm/dm/ridermansb) 2 | [![Publish Node.js Package](https://github.com/Ridermansb/ridermansb/actions/workflows/npmpublish.yml/badge.svg)](https://github.com/Ridermansb/ridermansb/actions/workflows/npmpublish.yml) [![wakatime](https://wakatime.com/badge/user/de65bb6a-656d-4719-97a5-9ed3c5797ec7.svg)](https://wakatime.com/@de65bb6a-656d-4719-97a5-9ed3c5797ec7) 3 | 4 |

It's me, @ridermansb!

5 |

Staff Software Enginner
6 |

7 | 8 | 15 | ORCID iD icon 19 | https://orcid.org/0009-0009-2646-7278 20 | 21 | 22 | > I'm curious, enthusiastic and student most of the time, like the rest of the time to write code, especially in Javascript. 23 | 24 | --- 25 | 26 | A little more about me... with npm installed, just type 27 | 28 | ``` 29 | npx ridermansb 30 | ``` 31 | 32 | screenshot 33 | 34 | **Skills:** 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | ![Riderman's github stats](https://github-readme-stats.vercel.app/api?username=ridermansb&show_icons=true&hide_border=true) 44 | 45 | -------------------------------------------------------------------------------- /Screen Shot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ridermansb/ridermansb/a35ab711c78b285736de83c4bc5bc16f3a8e32c1/Screen Shot.png -------------------------------------------------------------------------------- /build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | export VERSION=$1 4 | 5 | npm run build 6 | 7 | zip -q -r bin.zip bin/ 8 | -------------------------------------------------------------------------------- /jsr.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@ridermansb/me", 3 | "version": "0.6.0", 4 | "exports": "./bin/index.js" 5 | } 6 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ridermansb", 3 | "description": "A personal npm card for ridermansb (@ridermansb)", 4 | "main": "./src/index.js", 5 | "bin": { 6 | "ridermansb": "./bin/index.js" 7 | }, 8 | "files": [ 9 | "bin/" 10 | ], 11 | "scripts": { 12 | "build": "rimraf bin/* && babel --source-maps -d bin/ src/", 13 | "start": "npm run build -- --watch", 14 | "prepublish": "npm run -s build", 15 | "release": "semantic-release", 16 | "prepare": "husky install" 17 | }, 18 | "repository": { 19 | "type": "git", 20 | "url": "git+https://github.com/Ridermansb/ridermansb.git" 21 | }, 22 | "keywords": [ 23 | "npm", 24 | "npx", 25 | "node", 26 | "javascript", 27 | "front-end", 28 | "npx card", 29 | "business card" 30 | ], 31 | "author": "Riderman de Sousa Barbosa ", 32 | "license": "ISC", 33 | "bugs": { 34 | "url": "https://github.com/Ridermansb/ridermansb/issues" 35 | }, 36 | "homepage": "https://github.com/Ridermansb/ridermansb#readme", 37 | "devDependencies": { 38 | "@babel/cli": "^7.17.6", 39 | "@babel/core": "^7.17.8", 40 | "@babel/preset-env": "^7.16.11", 41 | "@semantic-release/exec": "^6.0.3", 42 | "@semantic-release/github": "^10.1.7", 43 | "@semantic-release/npm": "^12.0.1", 44 | "commitizen": "^4.2.4", 45 | "core-js": "^3.21.1", 46 | "cz-conventional-changelog": "^3.3.0", 47 | "husky": "^7.0.4", 48 | "rimraf": "^3.0.2", 49 | "semantic-release": "^24.1.0" 50 | }, 51 | "dependencies": { 52 | "boxen": "^4.2.0", 53 | "chalk": "^4.1.0", 54 | "clear": "^0.1.0", 55 | "inquirer": "^7.3.2", 56 | "open": "^7.0.4" 57 | }, 58 | "engines": { 59 | "node": "20" 60 | }, 61 | "config": { 62 | "commitizen": { 63 | "path": "./node_modules/cz-conventional-changelog" 64 | } 65 | } 66 | } 67 | -------------------------------------------------------------------------------- /release.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | branches: ['master'], 3 | plugins: [ 4 | '@semantic-release/commit-analyzer', 5 | '@semantic-release/release-notes-generator', 6 | [ 7 | '@semantic-release/exec', 8 | { 9 | prepareCmd: 'sh ./build.sh v${nextRelease.version}', 10 | }, 11 | ], 12 | [ 13 | '@semantic-release/github', 14 | { 15 | assets: [ 16 | { 17 | path: './lib.zip', 18 | name: 'lib-v${nextRelease.version}.zip', 19 | label: 'Distribution files.zip', 20 | }, 21 | ], 22 | }, 23 | ], 24 | "@semantic-release/npm", 25 | ], 26 | }; 27 | -------------------------------------------------------------------------------- /src/index.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 3 | "use strict"; 4 | 5 | const boxen = require("boxen"); 6 | const chalk = require("chalk"); 7 | const inquirer = require("inquirer"); 8 | const clear = require("clear"); 9 | const open = require("open"); 10 | 11 | clear(); 12 | 13 | const prompt = inquirer.createPromptModule(); 14 | 15 | const questions = [ 16 | { 17 | type: "list", 18 | name: "action", 19 | message: "What you want to do?", 20 | choices: [ 21 | { 22 | name: `Send me an ${chalk.green.bold("email")}?`, 23 | value: () => { 24 | open("mailto:ridermansb@gmail.com"); 25 | console.log("\nDone, see you soon.\n"); 26 | }, 27 | }, 28 | { 29 | name: "Just quit.", 30 | value: () => { 31 | console.log("Ok, bye.\n"); 32 | }, 33 | }, 34 | ], 35 | }, 36 | ]; 37 | 38 | const data = { 39 | name: chalk.bold.green(" Riderman de Sousa Barbosa"), 40 | handle: chalk.white("@ridermansb"), 41 | work: `${chalk.white("Staff Engineering ")}`, 42 | website: chalk.white.bold("https://ridermansb.dev/"), 43 | blog: chalk.gray("https://medium.com/") + chalk.whiteBright("@ridermansb"), 44 | twitter: chalk.gray("https://twitter.com/") + chalk.cyan("ridermansb"), 45 | npm: chalk.gray("https://npmjs.com/") + chalk.red("~ridermansb"), 46 | github: chalk.gray("https://github.com/") + chalk.green("ridermansb"), 47 | linkedin: chalk.gray("https://linkedin.com/in/") + chalk.blue("ridermansb"), 48 | aboutMe: chalk.cyan("https://about.me/ridermansb"), 49 | npx: chalk.red("npx") + " " + chalk.white("ridermansb"), 50 | wakatime: chalk.gray("https://wakatime.com/") + chalk.black("@ridermansb"), 51 | 52 | labelWork: chalk.white.bold(" Work:"), 53 | labelWebsite: chalk.white.bold(" Website:"), 54 | labelBlog: chalk.white.bold(" Medium:"), 55 | labelTwitter: chalk.white.bold(" Twitter:"), 56 | labelnpm: chalk.white.bold(" npm:"), 57 | labelGitHub: chalk.white.bold(" GitHub:"), 58 | labelLinkedIn: chalk.white.bold(" LinkedIn:"), 59 | labelAboutMe: chalk.white.bold(" About Me:"), 60 | labelCard: chalk.white.bold(" Card:"), 61 | labelWakatime: chalk.white.bold(" Wakatime:"), 62 | }; 63 | 64 | const me = boxen( 65 | [ 66 | `${data.name} / ${data.handle}`, 67 | ``, 68 | `${data.labelWork} ${data.work}`, 69 | `${data.labelWebsite} ${data.website}`, 70 | `${data.labelBlog} ${data.blog}`, 71 | `${data.labelTwitter} ${data.twitter}`, 72 | `${data.labelnpm} ${data.npm}`, 73 | `${data.labelGitHub} ${data.github}`, 74 | `${data.labelLinkedIn} ${data.linkedin}`, 75 | `${data.labelAboutMe} ${data.aboutMe}`, 76 | `${data.labelWakatime} ${data.wakatime}`, 77 | ``, 78 | `${data.labelCard} ${data.npx}`, 79 | ``, 80 | `${chalk.italic( 81 | "I'm curious, enthusiastic and student most of the time." 82 | )}`, 83 | `${chalk.italic( 84 | "The rest of the time I write code that others can read." 85 | )}`, 86 | ].join("\n"), 87 | { 88 | margin: 1, 89 | float: "center", 90 | padding: 1, 91 | borderStyle: "single", 92 | borderColor: "green", 93 | } 94 | ); 95 | 96 | console.log(me); 97 | const tip = [ 98 | `Tip: Try ${chalk.cyanBright.bold("cmd/ctrl + click")} on the links above`, 99 | "", 100 | ].join("\n"); 101 | console.log(tip); 102 | 103 | prompt(questions).then((answer) => answer.action()); 104 | --------------------------------------------------------------------------------