Skip to content

Add definitelytyped extension#27149

Closed
tcelestino wants to merge 3 commits intoraycast:mainfrom
tcelestino:ext/definitelytyped
Closed

Add definitelytyped extension#27149
tcelestino wants to merge 3 commits intoraycast:mainfrom
tcelestino:ext/definitelytyped

Conversation

@tcelestino
Copy link
Copy Markdown
Contributor

@tcelestino tcelestino commented Apr 13, 2026

Description

DefinitelyTyped is a Raycast extension that lets you quickly search and install TypeScript type packages (@types/*) from DefinitelyTyped without leaving your workflow.

Features

  • Search @types packages — queries the npm registry in real time as you type (triggers after 2 characters)
  • Copy install command — copies npm install -D @types/ to the clipboard with a single shortcut
  • Favorites — pin frequently used packages for instant access; favorites persist via local storage
  • Open in browser — jump directly to the package page on npmjs.com, npmx.dev, or its source on GitHub
  • Cross-platform shortcuts — keyboard shortcuts work on both macOS and Windows

Screencast

definitelytyped-1 definitelytyped-2 definitelytyped-3 definitelytyped-4

Checklist

- chore: update screenshots
- fix: remove filter to list all packages by name
- chore: add screenshots
- chore: update extension icon
- docs: add windows shortcuts usage
- feat: add windows shortcut
- docs: update command usage
- refactor: improvement performance and security
- refactor: improvement to favorite feature
- feat: add favorite feature
- docs: add instruction to favorite usage
- refactor: improve to code
- docs: create LICENSE
- feat: raycast extension to find @types from DefinitelyTyped
@raycastbot
Copy link
Copy Markdown
Collaborator

Congratulations on your new Raycast extension! 🚀

We're currently experiencing a high volume of incoming requests. As a result, the initial review may take up to 10-15 business days.

Once the PR is approved and merged, the extension will be available on our Store.

@tcelestino tcelestino marked this pull request as ready for review April 14, 2026 12:30
@greptile-apps
Copy link
Copy Markdown
Contributor

greptile-apps bot commented Apr 14, 2026

Greptile Summary

This PR adds a new Raycast extension for searching and managing @types/* packages from DefinitelyTyped, with favorites persisted via useLocalStorage. The core implementation in src/types.tsx is well-structured and follows Raycast conventions correctly.

  • Several development artifacts were committed that should be removed before merging: the .superpowers/ directory (brainstorm HTML files and server state), docs/superpowers/ (implementation plans and design specs in Portuguese), CLAUDE.md, and GEMINI.md. These are AI-assisted dev-session leftovers that do not belong in the published extension directory.

Confidence Score: 4/5

  • Safe to merge after removing development artifacts from the repository.
  • The extension logic is correct and follows Raycast guidelines. Score is 4 rather than 5 because development artifacts (.superpowers/, docs/superpowers/, CLAUDE.md, GEMINI.md) are included in the commit and would permanently pollute the extension directory in the store.
  • extensions/definitelytyped/.superpowers/, extensions/definitelytyped/docs/superpowers/, extensions/definitelytyped/CLAUDE.md, extensions/definitelytyped/GEMINI.md

Important Files Changed

Filename Overview
extensions/definitelytyped/src/types.tsx Well-structured single-command implementation; correctly uses useFetch with execute guard, deduplicates results, and persists favorites via useLocalStorage.
extensions/definitelytyped/package.json Correct category ("Developer Tools"), valid platforms ["macOS", "Windows"], both dependencies are used in source.
extensions/definitelytyped/.superpowers/brainstorm/65313-1776112643/content/initial-state.html Development brainstorming artifact in Portuguese — should not be committed to the repository.
extensions/definitelytyped/CLAUDE.md AI assistant context file — not a standard Raycast extension file; should be excluded from the submission.
extensions/definitelytyped/GEMINI.md AI assistant context file — not a standard Raycast extension file; should be excluded from the submission.
extensions/definitelytyped/docs/superpowers/plans/2026-04-13-favoritos.md Internal implementation plan in Portuguese — development artifact that should not be included in the extension repository.
extensions/definitelytyped/.prettierrc Correct standard Raycast Prettier config (printWidth: 120, singleQuote: false).
extensions/definitelytyped/eslint.config.js Correct ESLint v9 flat config using defineConfig from eslint/config with @raycast/eslint-config.
extensions/definitelytyped/CHANGELOG.md Correctly uses {PR_MERGE_DATE} placeholder for the initial release entry.
Prompt To Fix All With AI
This is a comment left during a code review.
Path: extensions/definitelytyped/.superpowers/brainstorm/65313-1776112643/content/initial-state.html
Line: 1-56

Comment:
**Development artifacts should not be committed**

The `.superpowers/` directory (brainstorm HTML files, waiting screen, server state JSON), `docs/superpowers/` (implementation plan and design spec in Portuguese), `CLAUDE.md`, and `GEMINI.md` are AI-assisted development artifacts that should be excluded from the repository before merging. They permanently pollute the extension's directory in the Raycast store and are not part of the extension itself.

Please either delete these files or add them to `.gitignore` before this PR is merged. The relevant paths are:
- `.superpowers/` (all contents)
- `docs/superpowers/` (all contents)
- `CLAUDE.md`
- `GEMINI.md`

How can I resolve this? If you propose a fix, please make it concise.

Reviews (1): Last reviewed commit: "Add definitelytyped extension" | Re-trigger Greptile

Comment on lines +1 to +56
<h2>Como a tela inicial deve se comportar?</h2>
<p class="subtitle">Quando o usuário abre a extensão com favoritos salvos</p>

<div class="options">
<div class="option" data-choice="a" onclick="toggleSelect(this)">
<div class="letter">A</div>
<div class="content">
<h3>Seção separada de favoritos</h3>
<p>Lista dividida em duas seções: <strong>Favorites</strong> no topo e <strong>Results</strong> abaixo ao pesquisar. Sem texto de busca, mostra só os favoritos com placeholder.</p>
<div class="mockup" style="margin-top:12px">
<div class="mockup-header">Raycast — DefinitelyTyped</div>
<div class="mockup-body" style="padding:12px;font-family:monospace;font-size:13px">
<input class="mock-input" placeholder="Search TypeScript type packages..." style="width:100%;margin-bottom:12px">
<div style="color:#888;font-size:11px;text-transform:uppercase;margin-bottom:6px">Favorites (2)</div>
<div style="padding:6px 8px;background:#f5f5f5;border-radius:4px;margin-bottom:4px">★ react</div>
<div style="padding:6px 8px;background:#f5f5f5;border-radius:4px;margin-bottom:4px">★ node</div>
</div>
</div>
</div>
</div>

<div class="option" data-choice="b" onclick="toggleSelect(this)">
<div class="letter">B</div>
<div class="content">
<h3>Favoritos no topo, misturado</h3>
<p>Favoritos aparecem primeiro na lista (com icone de estrela), seguidos dos resultados da busca. Sem busca ativa, mostra todos os favoritos.</p>
<div class="mockup" style="margin-top:12px">
<div class="mockup-header">Raycast — DefinitelyTyped</div>
<div class="mockup-body" style="padding:12px;font-family:monospace;font-size:13px">
<input class="mock-input" placeholder="Search TypeScript type packages..." style="width:100%;margin-bottom:12px">
<div style="padding:6px 8px;background:#f5f5f5;border-radius:4px;margin-bottom:4px">⭐ react</div>
<div style="padding:6px 8px;background:#f5f5f5;border-radius:4px;margin-bottom:4px">⭐ node</div>
<div style="color:#888;font-size:11px;border-top:1px solid #ddd;margin:8px 0;padding-top:8px">— digite para pesquisar mais —</div>
</div>
</div>
</div>
</div>

<div class="option" data-choice="c" onclick="toggleSelect(this)">
<div class="letter">C</div>
<div class="content">
<h3>Favoritos ficam em destaque só antes de pesquisar</h3>
<p>Sem texto de busca: mostra favoritos. Com texto de busca (≥2 chars): esconde favoritos e mostra apenas resultados da pesquisa.</p>
<div class="mockup" style="margin-top:12px">
<div class="mockup-header">Raycast — DefinitelyTyped</div>
<div class="mockup-body" style="padding:12px;font-family:monospace;font-size:13px">
<input class="mock-input" placeholder="Search TypeScript type packages..." style="width:100%;margin-bottom:12px">
<div style="color:#888;font-size:11px;text-transform:uppercase;margin-bottom:6px">Seus favoritos</div>
<div style="padding:6px 8px;background:#f5f5f5;border-radius:4px;margin-bottom:4px">★ react</div>
<div style="padding:6px 8px;background:#f5f5f5;border-radius:4px;margin-bottom:4px">★ node</div>
<div style="color:#aaa;font-size:11px;margin-top:8px">← ao digitar, favoritos somem e resultados aparecem</div>
</div>
</div>
</div>
</div>
</div>
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Development artifacts should not be committed

The .superpowers/ directory (brainstorm HTML files, waiting screen, server state JSON), docs/superpowers/ (implementation plan and design spec in Portuguese), CLAUDE.md, and GEMINI.md are AI-assisted development artifacts that should be excluded from the repository before merging. They permanently pollute the extension's directory in the Raycast store and are not part of the extension itself.

Please either delete these files or add them to .gitignore before this PR is merged. The relevant paths are:

  • .superpowers/ (all contents)
  • docs/superpowers/ (all contents)
  • CLAUDE.md
  • GEMINI.md
Prompt To Fix With AI
This is a comment left during a code review.
Path: extensions/definitelytyped/.superpowers/brainstorm/65313-1776112643/content/initial-state.html
Line: 1-56

Comment:
**Development artifacts should not be committed**

The `.superpowers/` directory (brainstorm HTML files, waiting screen, server state JSON), `docs/superpowers/` (implementation plan and design spec in Portuguese), `CLAUDE.md`, and `GEMINI.md` are AI-assisted development artifacts that should be excluded from the repository before merging. They permanently pollute the extension's directory in the Raycast store and are not part of the extension itself.

Please either delete these files or add them to `.gitignore` before this PR is merged. The relevant paths are:
- `.superpowers/` (all contents)
- `docs/superpowers/` (all contents)
- `CLAUDE.md`
- `GEMINI.md`

How can I resolve this? If you propose a fix, please make it concise.

@tcelestino tcelestino closed this Apr 14, 2026
@tcelestino tcelestino deleted the ext/definitelytyped branch April 14, 2026 14:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants