Skip to content

Commit 797045d

Browse files
committed
Initial release: v1.0.0
- Lightning-fast file sharing via Cloudflare R2 - Support for any file type (images, videos, PDFs, etc.) - Smart output (Markdown, HTML, embed codes) - Secure credential storage - Cross-platform (macOS, Linux) - Multiple command aliases (quick-share, qshare, share) - Interactive setup wizard - Comprehensive tests and documentation
0 parents  commit 797045d

28 files changed

Lines changed: 1970 additions & 0 deletions

.eslintrc.json

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
{
2+
"env": {
3+
"browser": false,
4+
"commonjs": true,
5+
"es2021": true,
6+
"node": true,
7+
"jest": true
8+
},
9+
"extends": "eslint:recommended",
10+
"parserOptions": {
11+
"ecmaVersion": "latest"
12+
},
13+
"rules": {
14+
"indent": ["error", 2],
15+
"linebreak-style": ["error", "unix"],
16+
"quotes": ["error", "single"],
17+
"semi": ["error", "always"]
18+
}
19+
}
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
---
2+
name: Bug report
3+
about: Create a report to help us improve
4+
title: "[BUG] "
5+
labels: bug
6+
assignees: ""
7+
---
8+
9+
**Describe the bug**
10+
A clear and concise description of what the bug is.
11+
12+
**To Reproduce**
13+
Steps to reproduce the behavior:
14+
15+
1. Run command '...'
16+
2. With file '...'
17+
3. See error
18+
19+
**Expected behavior**
20+
A clear and concise description of what you expected to happen.
21+
22+
**Screenshots**
23+
If applicable, add screenshots to help explain your problem.
24+
25+
**Environment (please complete the following information):**
26+
27+
- OS: [e.g. macOS 13.0, Ubuntu 22.04]
28+
- Node.js version: [e.g. 18.12.1]
29+
- rclone version: [e.g. 1.61.1]
30+
- quick-share-cli version: [e.g. 1.0.0]
31+
32+
**Additional context**
33+
Add any other context about the problem here.
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
---
2+
name: Feature request
3+
about: Suggest an idea for this project
4+
title: "[FEATURE] "
5+
labels: enhancement
6+
assignees: ""
7+
---
8+
9+
**Is your feature request related to a problem? Please describe.**
10+
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
11+
12+
**Describe the solution you'd like**
13+
A clear and concise description of what you want to happen.
14+
15+
**Describe alternatives you've considered**
16+
A clear and concise description of any alternative solutions or features you've considered.
17+
18+
**Additional context**
19+
Add any other context or screenshots about the feature request here.

.github/pull_request_template.md

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
## Description
2+
3+
<!--- Describe your changes in detail -->
4+
5+
## Related Issue
6+
7+
<!--- If fixing a bug, there should be an issue describing it with steps to reproduce -->
8+
<!--- Please link to the issue here: -->
9+
10+
Fixes #(issue)
11+
12+
## Motivation and Context
13+
14+
<!--- Why is this change required? What problem does it solve? -->
15+
16+
## How Has This Been Tested?
17+
18+
<!--- Please describe in detail how you tested your changes. -->
19+
<!--- Include details of your testing environment, and the tests you ran to -->
20+
<!--- see how your change affects other areas of the code, etc. -->
21+
22+
## Types of changes
23+
24+
<!--- What types of changes does your code introduce? Put an `x` in all the boxes that apply: -->
25+
26+
- [ ] Bug fix (non-breaking change which fixes an issue)
27+
- [ ] New feature (non-breaking change which adds functionality)
28+
- [ ] Breaking change (fix or feature that would cause existing functionality to change)
29+
- [ ] Documentation update
30+
31+
## Checklist:
32+
33+
<!--- Go over all the following points, and put an `x` in all the boxes that apply. -->
34+
35+
- [ ] My code follows the code style of this project.
36+
- [ ] My change requires a change to the documentation.
37+
- [ ] I have updated the documentation accordingly.
38+
- [ ] I have read the **CONTRIBUTING** document.
39+
- [ ] I have added tests to cover my changes.
40+
- [ ] All new and existing tests passed.
41+
- [ ] I have tested this on macOS/Linux.
42+
43+
## Screenshots (if appropriate):

.github/workflows/ci.yml

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
name: CI/CD
2+
3+
on:
4+
push:
5+
branches: [main, develop]
6+
tags: ["v*"]
7+
pull_request:
8+
branches: [main]
9+
10+
jobs:
11+
test:
12+
runs-on: ${{ matrix.os }}
13+
strategy:
14+
matrix:
15+
os: [ubuntu-latest, macos-latest]
16+
node-version: [14, 16, 18, 20]
17+
18+
steps:
19+
- uses: actions/checkout@v3
20+
21+
- name: Use Node.js ${{ matrix.node-version }}
22+
uses: actions/setup-node@v3
23+
with:
24+
node-version: ${{ matrix.node-version }}
25+
cache: "npm"
26+
27+
- name: Install dependencies
28+
run: npm ci
29+
30+
- name: Run linter
31+
run: npm run lint
32+
33+
- name: Run tests
34+
run: npm test
35+
36+
- name: Upload coverage
37+
if: matrix.os == 'ubuntu-latest' && matrix.node-version == '18'
38+
uses: codecov/codecov-action@v3
39+
with:
40+
file: ./coverage/lcov.info
41+
42+
release:
43+
needs: test
44+
runs-on: ubuntu-latest
45+
if: startsWith(github.ref, 'refs/tags/v')
46+
47+
steps:
48+
- uses: actions/checkout@v3
49+
50+
- name: Use Node.js
51+
uses: actions/setup-node@v3
52+
with:
53+
node-version: "18"
54+
registry-url: "https://registry.npmjs.org"
55+
56+
- name: Install dependencies
57+
run: npm ci
58+
59+
- name: Build
60+
run: npm run build --if-present
61+
62+
- name: Publish to NPM
63+
run: npm publish
64+
env:
65+
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
66+
67+
- name: Create GitHub Release
68+
uses: softprops/action-gh-release@v1
69+
with:
70+
files: |
71+
*.tgz
72+
body_path: CHANGELOG.md
73+
env:
74+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

.gitignore

Lines changed: 107 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,107 @@
1+
# Logs
2+
logs
3+
*.log
4+
npm-debug.log*
5+
yarn-debug.log*
6+
yarn-error.log*
7+
lerna-debug.log*
8+
.pnpm-debug.log*
9+
10+
# Diagnostic reports
11+
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
12+
13+
# Runtime data
14+
pids
15+
*.pid
16+
*.seed
17+
*.pid.lock
18+
19+
# Coverage directory used by tools like istanbul
20+
coverage
21+
*.lcov
22+
23+
# nyc test coverage
24+
.nyc_output
25+
26+
# Grunt intermediate storage
27+
.grunt
28+
29+
# Bower dependency directory
30+
bower_components
31+
32+
# node_modules
33+
node_modules/
34+
jspm_packages/
35+
36+
# Snowpack dependency directory
37+
web_modules/
38+
39+
# TypeScript cache
40+
*.tsbuildinfo
41+
42+
# Optional npm cache directory
43+
.npm
44+
45+
# Optional eslint cache
46+
.eslintcache
47+
48+
# Optional stylelint cache
49+
.stylelintcache
50+
51+
# Microbundle cache
52+
.rpt2_cache/
53+
.rts2_cache_cjs/
54+
.rts2_cache_es/
55+
.rts2_cache_umd/
56+
57+
# Optional REPL history
58+
.node_repl_history
59+
60+
# Output of 'npm pack'
61+
*.tgz
62+
63+
# Yarn Integrity file
64+
.yarn-integrity
65+
66+
# dotenv environment variable files
67+
.env
68+
.env.development.local
69+
.env.test.local
70+
.env.production.local
71+
.env.local
72+
73+
# parcel-bundler cache
74+
.cache
75+
.parcel-cache
76+
77+
# Next.js build output
78+
.next
79+
out
80+
81+
# Nuxt.js build / generate output
82+
.nuxt
83+
dist
84+
85+
# Storybook build outputs
86+
.out
87+
.storybook-out
88+
storybook-static
89+
90+
# Temporary folders
91+
tmp/
92+
temp/
93+
94+
# Editor directories and files
95+
.vscode/*
96+
!.vscode/extensions.json
97+
.idea
98+
.DS_Store
99+
*.suo
100+
*.ntvs*
101+
*.njsproj
102+
*.sln
103+
*.sw?
104+
105+
# Test files
106+
test-results/
107+
*.test.js.snap

.r2-config-example

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
R2_ACCOUNT_ID="1d7541992ccacf0931ee0e385daa5e08"
2+
R2_ENDPOINT="https://1d7541992ccacf0931ee0e385daa5e08.r2.cloudflarestorage.com"
3+
R2_ACCESS_KEY_ID=""
4+
R2_SECRET_ACCESS_KEY=""
5+
BUCKET_NAME="client-images"
6+
R2_PUBLIC_URL=""

CHANGELOG.md

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
# Changelog
2+
3+
All notable changes to this project will be documented in this file.
4+
5+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7+
8+
## [1.0.0] - 2024-02-06
9+
10+
### Added
11+
12+
- Initial release of Quick Share CLI
13+
- Upload any file type (images, videos, documents, archives)
14+
- Automatic MIME type detection
15+
- Smart output formatting (Markdown, HTML, embed codes)
16+
- Clipboard integration (auto-copies URL)
17+
- Interactive setup wizard
18+
- Support for Cloudflare R2 storage
19+
- Cross-platform support (macOS, Linux)
20+
- Three command aliases: `quick-share`, `qshare`, `share`
21+
- Configuration stored securely in `~/.quick-share/`
22+
23+
### Features
24+
25+
- ⚡ Lightning-fast uploads using rclone
26+
- 🖼️ Image support with Markdown/HTML output
27+
- 🎬 Video support with HTML5 player embed
28+
- 🎵 Audio support with HTML5 player embed
29+
- 📄 Document support (PDF, Word, Excel)
30+
- 📦 Archive support (ZIP, TAR, GZ)
31+
- 🔒 Secure credential storage (600 permissions)
32+
- 📋 Automatic clipboard copy on macOS/Linux
33+
- 📊 File size and type information
34+
35+
[1.0.0]: https://github.com/jack/quick-share-cli/releases/tag/v1.0.0

0 commit comments

Comments
 (0)