package-radar 0.0.2

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.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Adrian Carolli
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,199 @@
1
+ <p align="center">
2
+ <img src="./assets/hero.svg" alt="Package Radar โ€” package news for your codebase" width="100%" />
3
+ </p>
4
+
5
+ <h3 align="center">
6
+ Package Radar
7
+ </h3>
8
+
9
+ <p align="center">
10
+ Weekly package news for <em>your</em> stack โ€” with source links.<br/>
11
+ Scan <code>package.json</code>, detect your frameworks, get major release headlines that matter.
12
+ </p>
13
+
14
+ <p align="center">
15
+ <a href="https://www.npmjs.com/package/package-radar">
16
+ <img alt="npm version" src="https://badge.fury.io/js/package-radar.svg?icon=si%3Anpm"/>
17
+ </a>
18
+ <a title="License" href="https://github.com/watadarkstar/code-radar/blob/main/LICENSE">
19
+ <img src="https://img.shields.io/badge/license-MIT-blue.svg" />
20
+ </a>
21
+ <a href="https://nodejs.org/">
22
+ <img alt="node" src="https://img.shields.io/badge/node-%3E%3D20-brightgreen" />
23
+ </a>
24
+ </p>
25
+
26
+ <p align="center">
27
+ <a href="https://x.com/icookandcode" target="_blank">
28
+ Need help building developer tools? Connect with Adrian on X
29
+ </a>
30
+ </p>
31
+
32
+ ---
33
+
34
+ ```
35
+ ๐Ÿ” Scanning your project...
36
+
37
+ Detected:
38
+
39
+ โœ“ React Native 0.82
40
+ โœ“ Expo SDK 54
41
+ โœ“ TypeScript 7
42
+ โœ“ Drizzle ORM
43
+
44
+ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
45
+
46
+ ๐Ÿ”ฅ 5 things happened this week
47
+
48
+ 1. TypeScript 7
49
+
50
+ You should care because:
51
+ Your project has 1,342 TypeScript files.
52
+ This release improves incremental builds.
53
+
54
+ Sources:
55
+ โ€ข Announcing TypeScript 7
56
+ https://devblogs.microsoft.com/typescript/...
57
+
58
+ Recommendation:
59
+ Worth testing.
60
+
61
+ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
62
+ ```
63
+
64
+ ## Features
65
+
66
+ - Detects your stack from `package.json` (TypeScript, Expo, React Native, Next.js, Drizzle, and more)
67
+ - Looks up latest versions on npm
68
+ - Uses OpenAI web search for **major** package/framework news
69
+ - Source links on every item (blogs, changelogs, GitHub Releases)
70
+ - Saves your OpenAI API key locally (`~/.package-radar/`) and protects project `.gitignore`
71
+
72
+ Package Radar focuses on major news โ€” not security audits or CVE noise.
73
+
74
+ ## Requirements
75
+
76
+ - **Node.js** 20 or later
77
+ - An **OpenAI API key** with access to the Responses API + web search
78
+
79
+ ## Installation
80
+
81
+ Using npm:
82
+
83
+ ```bash
84
+ npm install -g package-radar
85
+ ```
86
+
87
+ Using yarn:
88
+
89
+ ```bash
90
+ yarn global add package-radar
91
+ ```
92
+
93
+ Or run once without installing:
94
+
95
+ ```bash
96
+ npx package-radar
97
+ ```
98
+
99
+ ## Usage
100
+
101
+ From any Node project directory:
102
+
103
+ ```bash
104
+ package-radar
105
+ ```
106
+
107
+ First run prompts for your OpenAI API key (saved to `~/.package-radar/config.json`). You can also set `OPENAI_API_KEY` in the environment.
108
+
109
+ ```bash
110
+ package-radar config # save / update API key
111
+ package-radar config --show # check if a key is configured
112
+ package-radar config --clear # remove saved key
113
+ package-radar --help
114
+ ```
115
+
116
+ ### What happens on each run
117
+
118
+ 1. **Scan** โ€” nearest `package.json`, known frameworks, source file counts
119
+ 2. **Registry** โ€” latest versions on npm for detected packages
120
+ 3. **News** โ€” OpenAI web search for major announcements
121
+ 4. **Report** โ€” why it matters, recommendation, and source URLs
122
+ 5. **Safety** โ€” appends `.package-radar/` to the project `.gitignore` if missing
123
+
124
+ ### Config & environment
125
+
126
+ | Variable / path | Required | Description |
127
+ | --- | --- | --- |
128
+ | `OPENAI_API_KEY` | Yes* | Overrides the saved key when set. [Get a key](https://platform.openai.com/api-keys). |
129
+ | `OPENAI_MODEL` | No | Model name (default: `gpt-4.1-mini`). |
130
+ | `~/.package-radar/config.json` | โ€” | Where the API key is stored after `package-radar config`. |
131
+
132
+ \*Required either as env var or via `package-radar config`.
133
+
134
+ ## Local development
135
+
136
+ ```bash
137
+ git clone https://github.com/watadarkstar/code-radar.git
138
+ cd code-radar
139
+ yarn install
140
+ yarn start # run via tsx
141
+ yarn build # emit dist/
142
+ yarn typecheck
143
+ ```
144
+
145
+ | Script | Description |
146
+ | --- | --- |
147
+ | `yarn start` / `yarn radar` / `yarn dev` | Run the CLI from source |
148
+ | `yarn build` | Build with tsup โ†’ `dist/` |
149
+ | `yarn typecheck` | `tsc --noEmit` |
150
+ | `yarn clean` | Remove `dist/` |
151
+ | `yarn release:dry` | Dry-run a release |
152
+ | `yarn release` | Version, tag, GitHub release, publish to npm |
153
+
154
+ ## License
155
+
156
+ [MIT](LICENSE)
157
+
158
+ ## Author
159
+
160
+ Feel free to ask me questions on Twitter [@icookandcode](https://www.twitter.com/icookandcode)!
161
+
162
+ ## Contributors
163
+
164
+ Submit a PR to contribute :)
165
+
166
+ ## Release
167
+
168
+ We use [`release-it`](https://github.com/release-it/release-it) to version, tag, create a GitHub release, and publish to npm.
169
+
170
+ Prerequisites:
171
+
172
+ 1. Logged into npm: `npm login`
173
+ 2. `GH_TOKEN` (or `GITHUB_TOKEN`) with repo access if you want GitHub releases
174
+ 3. Clean git working tree on the default branch
175
+
176
+ Then:
177
+
178
+ ```bash
179
+ yarn run release:dry
180
+ yarn run release
181
+ ```
182
+
183
+ `release:dry` prints what would happen without publishing. `release` bumps the version, runs typecheck + build, commits/tags, creates a GitHub release, and publishes `package-radar` to the npm registry.
184
+
185
+ ---
186
+
187
+ <div align="center">
188
+
189
+ **Stay ahead of your stack.**
190
+
191
+ โญ **Star this repo** โ€ข ๐Ÿ’ฌ **[Contact Adrian](https://x.com/icookandcode)**
192
+
193
+ _Built with โค๏ธ by [Adrian](https://x.com/icookandcode)_
194
+
195
+ </div>
196
+
197
+ ---
198
+
199
+ **Keywords:** cli, package-radar, package news, dependencies, changelog, npm, openai, typescript, developer-tools
@@ -0,0 +1,72 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="1200" height="630" viewBox="0 0 1200 630" role="img" aria-label="Package Radar placeholder hero">
2
+ <defs>
3
+ <linearGradient id="bg" x1="0%" y1="0%" x2="100%" y2="100%">
4
+ <stop offset="0%" stop-color="#0b1220"/>
5
+ <stop offset="55%" stop-color="#111827"/>
6
+ <stop offset="100%" stop-color="#0f172a"/>
7
+ </linearGradient>
8
+ <linearGradient id="glow" x1="0%" y1="0%" x2="100%" y2="0%">
9
+ <stop offset="0%" stop-color="#22d3ee" stop-opacity="0"/>
10
+ <stop offset="50%" stop-color="#38bdf8" stop-opacity="0.9"/>
11
+ <stop offset="100%" stop-color="#a78bfa" stop-opacity="0"/>
12
+ </linearGradient>
13
+ <radialGradient id="radarGlow" cx="50%" cy="50%" r="50%">
14
+ <stop offset="0%" stop-color="#22d3ee" stop-opacity="0.35"/>
15
+ <stop offset="70%" stop-color="#38bdf8" stop-opacity="0.08"/>
16
+ <stop offset="100%" stop-color="#38bdf8" stop-opacity="0"/>
17
+ </radialGradient>
18
+ <filter id="soft" x="-20%" y="-20%" width="140%" height="140%">
19
+ <feGaussianBlur stdDeviation="8"/>
20
+ </filter>
21
+ </defs>
22
+
23
+ <!-- Background -->
24
+ <rect width="1200" height="630" fill="url(#bg)"/>
25
+
26
+ <!-- Subtle grid -->
27
+ <g stroke="#1f2937" stroke-width="1" opacity="0.55">
28
+ <path d="M0 90 H1200 M0 180 H1200 M0 270 H1200 M0 360 H1200 M0 450 H1200 M0 540 H1200"/>
29
+ <path d="M120 0 V630 M240 0 V630 M360 0 V630 M480 0 V630 M600 0 V630 M720 0 V630 M840 0 V630 M960 0 V630 M1080 0 V630"/>
30
+ </g>
31
+
32
+ <!-- Accent bar -->
33
+ <rect x="0" y="0" width="1200" height="4" fill="url(#glow)"/>
34
+
35
+ <!-- Radar graphic -->
36
+ <g transform="translate(900 315)">
37
+ <circle r="170" fill="url(#radarGlow)"/>
38
+ <circle r="150" fill="none" stroke="#1e3a5f" stroke-width="2"/>
39
+ <circle r="110" fill="none" stroke="#1e3a5f" stroke-width="1.5"/>
40
+ <circle r="70" fill="none" stroke="#1e3a5f" stroke-width="1.5"/>
41
+ <circle r="30" fill="none" stroke="#334155" stroke-width="1.5"/>
42
+ <line x1="-150" y1="0" x2="150" y2="0" stroke="#1e3a5f" stroke-width="1"/>
43
+ <line x1="0" y1="-150" x2="0" y2="150" stroke="#1e3a5f" stroke-width="1"/>
44
+
45
+ <!-- Sweep wedge -->
46
+ <path d="M0 0 L130 -40 A150 150 0 0 1 40 145 Z" fill="#22d3ee" opacity="0.12"/>
47
+ <line x1="0" y1="0" x2="130" y2="-40" stroke="#22d3ee" stroke-width="3" stroke-linecap="round"/>
48
+ <circle r="6" fill="#22d3ee"/>
49
+
50
+ <!-- Blips -->
51
+ <circle cx="55" cy="-70" r="6" fill="#a78bfa">
52
+ <title>Package signal</title>
53
+ </circle>
54
+ <circle cx="55" cy="-70" r="14" fill="none" stroke="#a78bfa" stroke-opacity="0.45" stroke-width="2"/>
55
+ <circle cx="-80" cy="35" r="5" fill="#38bdf8"/>
56
+ <circle cx="40" cy="95" r="4" fill="#34d399"/>
57
+ </g>
58
+
59
+ <!-- Copy -->
60
+ <g fill="#e2e8f0" font-family="ui-sans-serif, system-ui, -apple-system, Segoe UI, sans-serif">
61
+ <text x="72" y="220" font-size="22" fill="#67e8f9" letter-spacing="4" font-weight="600">CLI ยท PACKAGE NEWS</text>
62
+ <text x="72" y="300" font-size="72" font-weight="700" fill="#f8fafc">Package Radar</text>
63
+ <text x="72" y="360" font-size="28" fill="#94a3b8">Major framework &amp; library news for your stack</text>
64
+ <text x="72" y="420" font-size="20" fill="#64748b">Scan package.json ยท Web search ยท Source links</text>
65
+ </g>
66
+
67
+ <!-- Placeholder tag -->
68
+ <g transform="translate(72 500)">
69
+ <rect width="168" height="36" rx="18" fill="#0ea5e9" fill-opacity="0.15" stroke="#38bdf8" stroke-opacity="0.5"/>
70
+ <text x="84" y="24" text-anchor="middle" font-family="ui-sans-serif, system-ui, sans-serif" font-size="14" fill="#7dd3fc" font-weight="600">PLACEHOLDER HERO</text>
71
+ </g>
72
+ </svg>
@@ -0,0 +1,2 @@
1
+
2
+ export { }
@@ -0,0 +1,2 @@
1
+
2
+ export { }