Skip to content

Commit 256ce69

Browse files
committed
init
1 parent 3109636 commit 256ce69

78 files changed

Lines changed: 4414 additions & 48 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/CODEOWNERS

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
* @dgaribiani

.github/workflows/static.yml

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
# Simple workflow for deploying static content to GitHub Pages
2+
name: Deploy static content to Pages
3+
4+
on:
5+
# Runs on pushes targeting the default branch
6+
push:
7+
branches: ["main"]
8+
9+
# Allows you to run this workflow manually from the Actions tab
10+
workflow_dispatch:
11+
12+
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
13+
permissions:
14+
contents: read
15+
pages: write
16+
id-token: write
17+
18+
# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
19+
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
20+
concurrency:
21+
group: "pages"
22+
cancel-in-progress: false
23+
24+
jobs:
25+
# Single deploy job since we're just deploying
26+
deploy:
27+
environment:
28+
name: github-pages
29+
url: ${{ steps.deployment.outputs.page_url }}
30+
runs-on: ubuntu-latest
31+
steps:
32+
- name: Checkout
33+
uses: actions/checkout@v4
34+
- name: Setup Node
35+
uses: actions/setup-node@v4
36+
with:
37+
node-version: 20
38+
cache: npm
39+
- name: Install dependencies
40+
run: npm ci
41+
- name: Build
42+
run: npm run build -- --configuration production --base-href /devtools/
43+
- name: Setup Pages
44+
uses: actions/configure-pages@v5
45+
- name: Upload artifact
46+
uses: actions/upload-pages-artifact@v3
47+
with:
48+
path: ./dist/devtools
49+
- name: Deploy to GitHub Pages
50+
id: deployment
51+
uses: actions/deploy-pages@v4

README.md

Lines changed: 84 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1,47 +1,81 @@
1-
# Dev Toolbox
2-
3-
A privacy-first, offline-friendly toolbox of developer utilities that runs entirely in the browser. No backend, no tracking by default.
4-
5-
## Features
6-
- Angular + TypeScript, static build output
7-
- TailwindCSS + Angular Material UI with glassmorphism styling
8-
- CodeMirror 6 editor for rich inputs
9-
- Web Workers for heavy JSON/Text operations
10-
- Offline-ready PWA (service worker)
11-
- Modular, lazy-loaded routes per tool category
12-
13-
## Local Development
14-
1. Install dependencies:
15-
1+
# Dev Toolbox
2+
3+
A privacy-first, offline-friendly toolbox of developer utilities that runs entirely in the browser. No backend required, and no tracking by default.
4+
5+
## Highlights
6+
- Built with Angular + TypeScript and shipped as static assets.
7+
- TailwindCSS + Angular Material with a glassmorphism UI.
8+
- CodeMirror 6 for rich editor inputs.
9+
- Web Workers for heavy JSON/Text operations.
10+
- Offline-ready PWA in production builds.
11+
- Modular, lazy-loaded routes per tool category.
12+
13+
## Supported Tools
14+
JSON Core:
15+
- JSON Formatter / Validator
16+
- JSON Minifier
17+
- JSON Canonicalizer
18+
- JSON Diff
19+
- JSON <-> YAML
20+
- JSON Schema Validator
21+
- JSONPath Evaluator
22+
- JSON Patch (RFC 6902)
23+
- JSON Merge Patch
24+
- JSON -> Types
25+
- JSON5 / JSONC -> JSON
26+
27+
Text Tools:
28+
- Text Diff
29+
- Regex Tester
30+
- Text Editor + Counter
31+
- Whitespace Normalizer
32+
- Markdown Preview
33+
- Unicode Inspector
34+
35+
Crypto & Encoding:
36+
- Base64 Encode/Decode
37+
- URL Encode/Decode
38+
- JWT Decoder
39+
- Hash Generator
40+
- UUID Generator
41+
- UUIDv7 / ULID
42+
- HMAC Generator
43+
- Password Generator
44+
45+
Data Utilities:
46+
- Timestamp Converter
47+
- CSV <-> JSON
48+
- Cron Next Run
49+
- Timezone Converter
50+
- CSV Profiler
51+
- OpenAPI Snippet Viewer
52+
53+
SQL Tools:
54+
- SQL Formatter / Minifier
55+
- SQL IN Clause Builder
56+
- SQL Identifier Escaper
57+
- Execution Plan Analyzer
58+
59+
## Quick Start
1660
```bash
1761
npm install
18-
```
19-
20-
2. Run the dev server:
21-
22-
```bash
2362
npm start
2463
```
2564

26-
Open `http://localhost:4200/`.
65+
Then open `http://localhost:4200/`.
2766

28-
## Build
67+
## Scripts
68+
- `npm start`: Run the dev server (development configuration).
69+
- `npm run build`: Production build.
70+
- `npm run watch`: Build in watch mode for development.
71+
- `npm test`: Run unit tests.
2972

30-
```bash
31-
npm run build
32-
```
33-
34-
Static assets are emitted to `dist/dev-toolbox`.
35-
36-
## Tests
37-
38-
```bash
39-
npm test
40-
```
73+
## Build Output
74+
Production builds emit static assets to `dist/devtools`.
4175

42-
## Static Hosting (S3 + CloudFront)
43-
1. Build the app and upload the contents of `dist/dev-toolbox` to your S3 bucket.
44-
2. Configure S3 for static website hosting.
76+
## Deploying (S3 + CloudFront)
77+
1. Build the app and upload the contents of `dist/devtools` to your S3 bucket.
78+
2. Enable S3 static website hosting.
4579
3. CloudFront:
4680
- Set default root object to `index.html`.
4781
- Add custom error responses for 403/404 to serve `/index.html` with HTTP 200 (SPA routing).
@@ -60,4 +94,17 @@ Paste your Carbon Ads / EthicalAds / AdSense snippet in the commented section wi
6094
- No user input is sent to any server.
6195
- Analytics are off by default and optional.
6296
- JWT decoder is **decode-only** and does not verify signatures.
63-
- “Remember my inputs” is off by default; enabling it stores inputs locally on this device.
97+
- "Remember my inputs" is off by default; enabling it stores inputs locally on this device.
98+
99+
## Contributor Guidelines
100+
- Keep changes focused and incremental; avoid drive-by refactors.
101+
- Follow existing Angular + TypeScript patterns and keep lint/build clean.
102+
- Prefer pure, testable functions for data transforms and heavy parsing.
103+
- Use Web Workers for CPU-heavy operations to keep the UI responsive.
104+
- Keep UI components accessible (labels, contrast, keyboard focus, ARIA where needed).
105+
- Respect privacy-by-default: no new tracking, network calls, or telemetry without explicit discussion.
106+
- Update docs when you add or change tools, routes, or build behavior.
107+
108+
Before opening a PR:
109+
- Run `npm test` and `npm run build`.
110+
- Verify the affected tool in the browser (inputs, outputs, and error states).

angular.json

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,10 @@
1717
"build": {
1818
"builder": "@angular/build:application",
1919
"options": {
20+
"outputPath": {
21+
"base": "dist/devtools",
22+
"browser": "."
23+
},
2024
"browser": "src/main.ts",
2125
"tsConfig": "tsconfig.app.json",
2226
"webWorkerTsConfig": "tsconfig.worker.json",
@@ -32,7 +36,9 @@
3236
],
3337
"allowedCommonJsDependencies": [
3438
"ajv",
35-
"papaparse"
39+
"papaparse",
40+
"json5",
41+
"nearley"
3642
]
3743
},
3844
"configurations": {

0 commit comments

Comments
 (0)