Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
121 commits
Select commit Hold shift + click to select a range
aee317d
fix: setup typescript and webpack
sroucheray Dec 7, 2022
f4f585b
feat: color-utils.js to typescript
sroucheray Dec 7, 2022
218c429
feat: common-utils.js to typescript
sroucheray Dec 7, 2022
7c61e56
feat: *-styles.js to typescript
sroucheray Dec 7, 2022
a96fe06
common
sroucheray Dec 7, 2022
60bf221
feat: spec-parser.js renaming spec-parser.ts
sroucheray Dec 8, 2022
7aeeb12
feat: spec-parser.js add typings
sroucheray Dec 8, 2022
b1ec061
feat: spec-parser.js format file, rename internal variables
sroucheray Dec 8, 2022
3f337e8
rapidoc typings
sroucheray Dec 8, 2022
16e84a9
color-utils
sroucheray Dec 8, 2022
b8ed6e8
feat: theme.js to typescript
sroucheray Dec 8, 2022
ad332fa
feat: schema-utils.js to typescript
sroucheray Dec 9, 2022
b228c5b
feat: logo-template.js to typescript
sroucheray Dec 9, 2022
31f2c9d
feat: header-template.js to typescript
sroucheray Dec 9, 2022
ed68c6e
feat: overview-template.js to typescript
sroucheray Dec 9, 2022
96d7c83
feat: json-schema-viewer-template.js to typescript
sroucheray Dec 9, 2022
46e8bb6
feat: advanced-search-template.js to typescript
sroucheray Dec 9, 2022
45a2066
feat: callback-template.js to typescript
sroucheray Dec 10, 2022
4fb2088
feat: code-sample-template.js to typescript
sroucheray Dec 10, 2022
9cf82e2
feat: tag-input.js to typescript
sroucheray Dec 10, 2022
c7eedf6
fix: improve schema-utils.ts typings
sroucheray Dec 10, 2022
e957f77
feat: dialog-box.js to typescript
sroucheray Dec 10, 2022
fb44af4
feat: json-tree.js to typescript
sroucheray Dec 10, 2022
3605436
feat: schema-table.js to typescript
sroucheray Dec 10, 2022
1dfdf2f
feat: server-template.js to typescript
sroucheray Dec 12, 2022
42f3b8a
feat: security-scheme.js to typescript
sroucheray Dec 12, 2022
513c15c
feat: endpoint-template.js to typescript
sroucheray Dec 12, 2022
3a2b2a7
feat: component-template.js to typescript
sroucheray Dec 12, 2022
2049eb7
fix: update typings
sroucheray Dec 12, 2022
0b1339a
endpoint-template.ts
sroucheray Dec 12, 2022
9cf374f
feat: navbar-template.js to typescript
sroucheray Dec 12, 2022
78c4af3
feat: expanded-endpoint-template.js to typescript
sroucheray Dec 12, 2022
11b6780
feat: focused-endpoint-template.js to typescript
sroucheray Dec 12, 2022
3871667
feat: main-body-template.js to typescript
sroucheray Dec 12, 2022
4fdc757
tag input
sroucheray Dec 12, 2022
39ac15d
fix: improve typings
sroucheray Dec 12, 2022
398d8aa
header
sroucheray Dec 12, 2022
3caa922
common utils
sroucheray Dec 12, 2022
bcee3ef
color utils
sroucheray Dec 12, 2022
7a25986
fix: theme.ts
sroucheray Dec 12, 2022
9b67546
feat: json-schema-viewer.js to typescript
sroucheray Dec 12, 2022
8be1a92
fix: improve json-schema-viewer-template.ts
sroucheray Dec 12, 2022
0e2ece4
fix: improve overview-template.ts
sroucheray Dec 12, 2022
5cc4bbd
fix: improve spec-parser.ts
sroucheray Dec 12, 2022
3bda9cb
fix: typings for navbar-template.ts
sroucheray Dec 12, 2022
cf8a7e1
feat: schema-tree.js to typescript
sroucheray Dec 12, 2022
1d173ab
fix: improve main-body-template.ts
sroucheray Dec 12, 2022
0e44473
fix: improve security-scheme-template.ts
sroucheray Dec 12, 2022
3e4bd4d
fix: export interface from schema-utils.ts
sroucheray Dec 12, 2022
108416e
fix: improve rapidoc.d.ts
sroucheray Dec 13, 2022
573e07e
fix: improve common-utils.ts
sroucheray Dec 13, 2022
0808fee
feat: oauth-receiver.js to typescript
sroucheray Dec 13, 2022
f69511f
fix: advance-search-template.ts
sroucheray Dec 13, 2022
334f564
fix: security-scheme-template.ts
sroucheray Dec 13, 2022
08e066f
feat: rapidoc.js to typescript
sroucheray Dec 13, 2022
155f777
fix: migrate to ts remaining js files
sroucheray Dec 13, 2022
579eef1
fix: update config
sroucheray Dec 13, 2022
2a736bc
feat: build project
sroucheray Dec 13, 2022
f7c825d
fix: use customElement decorator and cleanup types
sroucheray Dec 13, 2022
5ac4fdf
Merge remote-tracking branch 'rapidoc/master' into feat/typescript-mi…
sroucheray Dec 13, 2022
66e1706
fix: typo
sroucheray Dec 29, 2022
dd725e4
fix: remove default selected mime type, let it to undefined
sroucheray Dec 29, 2022
da05c01
fix: properly set fetch responseStatus to error when it occurres
sroucheray Dec 29, 2022
ddb1523
fix: add missing html template tag
sroucheray Dec 30, 2022
8ca5450
fix: update curl syntax when clear or fill request parameters
sroucheray Dec 30, 2022
9f81c55
fix: make toolbar-btn border-radius using CSS property
sroucheray Dec 30, 2022
4fc3964
fix: add CSS class to security scheme html block
sroucheray Dec 30, 2022
5f6d543
Merge remote-tracking branch 'rapidoc/master' into feat/typescript-mi…
sroucheray Jan 16, 2023
7413a25
Add btn-copy, btn-tab and select as custom element parts
sroucheray Jan 16, 2023
c2cb259
Fix undefined error detected by Typescript
sroucheray Jan 16, 2023
f5cce00
fix anchor in markdown links when there is a base tag in HTML document
sroucheray Jan 16, 2023
8b45535
chore: update doc with select and btn-tab parts
sroucheray Jan 17, 2023
80aa594
fix: align vertically params to input field in parameter template
sroucheray Jan 17, 2023
7afc9dd
fix anchor link eventual missing title
sroucheray Jan 17, 2023
bea7e0f
fix pathOrHookObj parsing error
sroucheray Jan 30, 2023
fc6425c
Merge branch 'master' into feat/typescript-migration
sroucheray Jan 30, 2023
1c7657e
Merge remote-tracking branch 'rapidoc/master' into feat/typescript-mi…
sroucheray Mar 14, 2023
5e48af0
Merge branch 'master' into feat/typescript-migration
sroucheray Aug 25, 2023
a310c11
fix: schema.additionalProperties can be a "primitive" true value
sroucheray Aug 25, 2023
8cf6aca
generated build
sroucheray Aug 25, 2023
6799379
fix: endpoint body handles properly internal links
nubinub Mar 6, 2024
9f8afe0
Merge pull request #1 from PerfectMemory/fix/endpoint-body-links
sroucheray Mar 6, 2024
b6bdc69
Merge remote-tracking branch 'rapidoc/master' into feat/typescript-mi…
sroucheray Mar 7, 2024
94c62fd
generate build
sroucheray Mar 7, 2024
81c0cba
Revert "add fetched-try event to support developers the ability to mo…
nubinub Mar 15, 2024
f712b6a
generate build
nubinub Mar 15, 2024
938c2b4
Merge tag 'v9.3.5' of rapidoc into merge/rapidoc-incremental
sroucheray Oct 9, 2026
c855522
Merge tag 'v9.3.8' of rapidoc into merge/rapidoc-incremental
sroucheray Oct 9, 2026
5bf9748
Merge upstream rapidoc/master up to 3005b20f (2024-11-26)
sroucheray Oct 9, 2026
efefc23
Merge rapidoc/master: adopt upstream layout and code
sroucheray Oct 9, 2026
965ea87
build: add TypeScript toolchain for packages/rapidoc
sroucheray Oct 9, 2026
28ea43b
refactor: rename packages/rapidoc sources from .js to .ts
sroucheray Oct 9, 2026
2e093b0
build: enforce erasable TS syntax, add @scalar/openapi-types for typings
sroucheray Oct 9, 2026
7361c45
refactor(ts): type utils, styles and shared spec/schema types
sroucheray Oct 9, 2026
ab5deae
refactor(ts): type components, templates and main elements
sroucheray Oct 9, 2026
d399525
build: relax lit-analyzer binding rules to warnings, fix unknown attr…
sroucheray Oct 9, 2026
07e4af5
fix: re-apply fork fixes on top of upstream code
sroucheray Oct 9, 2026
7657649
chore: generate build
sroucheray Oct 9, 2026
a70e884
fix(theme): honor custom nav-accent-text-color
sroucheray Oct 9, 2026
8a009b8
fix(oauth-receiver): relay storage events with relayAuthParams
sroucheray Oct 9, 2026
54cb34e
fix(rapidoc-mini): register the api-key scheme under securitySchemeId
sroucheray Oct 9, 2026
cd21549
fix(oauth): resolve a relative refreshUrl against the server URL
sroucheray Oct 9, 2026
c140c45
fix(oauth): pass a valid target origin to the fake postMessage
sroucheray Oct 9, 2026
21ba1f2
fix(json-schema-viewer): pass ProcessSpec arguments in the right posi…
sroucheray Oct 9, 2026
0931d3a
fix(request-params): stop passing a stray argument to generateExample
sroucheray Oct 9, 2026
9546cbc
fix(markdown): use the marked 18 heading renderer signature
sroucheray Oct 9, 2026
7b44abd
fix(schema-utils): do not throw on a null example in standardizeExample
sroucheray Oct 9, 2026
725e523
fix(css-parts): export the tab-content part from api-request/api-resp…
sroucheray Oct 9, 2026
7da2ecf
refactor: drop arguments that the callee ignores
sroucheray Oct 9, 2026
81aca9f
Merge branch 'fix/upstream-bugs' into feat/typescript-migration
sroucheray Oct 9, 2026
f95bca0
fix(json-schema-viewer): spell navAccentTextColor correctly in the th…
sroucheray Oct 9, 2026
934a5d3
refactor(json-schema-viewer): drop arguments that the template ignores
sroucheray Oct 9, 2026
b1886f8
Merge branch 'fix/upstream-bugs' into feat/typescript-migration
sroucheray Oct 9, 2026
bf62c6c
chore(ts): remove stale TODO notes for fixed bugs
sroucheray Oct 9, 2026
156e582
chore: generate build
sroucheray Oct 9, 2026
e0be5da
fix(markdown): keep in-page #anchor links on the current page with a …
sroucheray Oct 9, 2026
4be29fa
Merge branch 'fix/upstream-bugs' into feat/typescript-migration
sroucheray Oct 9, 2026
25ebc15
fix(search): read the filter input when the ↩ icon is clicked
sroucheray Oct 9, 2026
10aa5c0
Merge branch 'fix/upstream-bugs' into feat/typescript-migration
sroucheray Oct 9, 2026
e9352e3
fix(api-key): do not crash when api-key attributes change while the s…
sroucheray Oct 9, 2026
ee6bcbf
Merge branch 'fix/upstream-bugs' into feat/typescript-migration
sroucheray Oct 9, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 6 additions & 6 deletions .agents/agents/rapidoc-core.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,13 @@ You are a specialist agent dedicated to `packages/rapidoc` — the core Lit-base

## Workspace Scope & Key Paths
- **Package Directory**: `packages/rapidoc`
- **Component Entry**: `packages/rapidoc/src/index.js`
- **Main Custom Element**: `packages/rapidoc/src/rapidoc.js`
- **Component Entry**: `packages/rapidoc/src/index.ts`
- **Main Custom Element**: `packages/rapidoc/src/rapidoc.ts`
- **Parser & Schema Utilities**:
- `packages/rapidoc/src/utils/spec-parser.js`
- `packages/rapidoc/src/utils/schema-ast.js`
- `packages/rapidoc/src/utils/schema-utils.js`
- `packages/rapidoc/src/utils/mock-interceptor.js`
- `packages/rapidoc/src/utils/spec-parser.ts`
- `packages/rapidoc/src/utils/schema-ast.ts`
- `packages/rapidoc/src/utils/schema-utils.ts`
- `packages/rapidoc/src/utils/mock-interceptor.ts`
- **Sub-templates**: `packages/rapidoc/src/templates/`
- **Styles**: `packages/rapidoc/src/styles/`
- **Tests**: `tests/unit/*.test.js`, `tests/perf/benchmark.js`
Expand Down
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,7 @@ npm run dev
npm run stop
```
- Open `http://localhost:4321` in your browser.
- **Live Unminified ES Modules:** In development mode (`npm run dev`), the Astro dev server bypasses pre-compiled production bundles and serves live ES modules directly from `packages/rapidoc/src/index.js`.
- **Live Unminified ES Modules:** In development mode (`npm run dev`), the Astro dev server bypasses pre-compiled production bundles and serves live ES modules directly from `packages/rapidoc/src/index.ts`.
- **Full DevTools & Console Visibility:** All `console.log`, `console.warn`, `console.error`, and `debugger` breakpoints remain completely intact with original file names and exact line numbers (e.g., `rapidoc.js:516`).
- **Instant Browser Reloading:** Component changes in `packages/rapidoc/src/` trigger immediate hot reloads without waiting for a full Rollup/Vite compilation cycle.

Expand Down Expand Up @@ -159,7 +159,7 @@ Astro documentation and example pages include the component via `<script type="m

1. **During Local Development (`npm run dev`):**
- The Astro dev server middleware (in `docs/astro.config.mjs`) **intercepts** all requests for `/rapidoc/rapidoc-min.js` (and `/rapidoc/rapidoc.js`).
- Instead of reading any pre-built static file, it directly imports and serves `packages/rapidoc/src/index.js` live through Vite's module pipeline.
- Instead of reading any pre-built static file, it directly imports and serves `packages/rapidoc/src/index.ts` live through Vite's module pipeline.
- You get instant HMR, unminified source code, active `console.*` logging, and sourcemaps with exact line numbers in browser DevTools. Neither `dist/` nor `generated-docs/` is served during development.

2. **During Production Site Build (`npm run build:docs` / `npm run build`):**
Expand Down Expand Up @@ -200,7 +200,7 @@ All primary commands can be run from the root of the repository:
#### Code Quality & Formatting
| Command | Workspace | Description |
|---|---|---|
| `npm run lint` | `rapidoc` | Runs ESLint on `packages/rapidoc/src/**/*.js` with Lit rules. |
| `npm run lint` | `rapidoc` | Runs ESLint on `packages/rapidoc/src/**/*.{js,ts}` with Lit rules. |
| `npm run analyze` | `rapidoc` | Runs Lit Analyzer to validate custom element templates and bindings. |
| `npm run format` | Monorepo | Checks code formatting against `.prettierrc` across packages and docs. |
| `npm run format-fix` | Monorepo | Automatically formats code using Prettier across packages and docs. |
Expand Down
6 changes: 3 additions & 3 deletions docs/AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,14 +27,14 @@ The `docs/astro.config.mjs` integrates Vite plugins that bridge `docs` and `pack
- Checks if `packages/rapidoc/dist/rapidoc-min.js` exists. If missing, triggers a Vite build of `packages/rapidoc`.
- Copies `rapidoc-min.js` into `docs/dist/rapidoc/` and `docs/generated-docs/rapidoc/`.
2. **Live Unminified Source in Dev (`serve-rapidoc-in-dev`)**:
- Dev middleware dynamically serves live unminified ESM directly from `packages/rapidoc/src/index.js` at `/rapidoc/rapidoc-min.js` and `/rapidoc/rapidoc.js`.
- Dev middleware dynamically serves live unminified ESM directly from `packages/rapidoc/src/index.ts` at `/rapidoc/rapidoc-min.js` and `/rapidoc/rapidoc.js`.
- Preserves all `console.*` outputs, `debugger` breakpoints, and sourcemaps with exact line numbers for effortless debugging.
- Watches `packages/rapidoc/src/` and triggers instant browser reload upon changes without needing slow bundle recompilation.
- Watches `src/page-data/**/*.yaml` and triggers module cache invalidation and reload upon change.
3. **Aliases**:
- `~` resolves to `packages/rapidoc/src`
- `~/rapidoc` resolves to `packages/rapidoc/src/rapidoc.js`
- `rapidoc` resolves to `packages/rapidoc/src/index.js`
- `~/rapidoc` resolves to `packages/rapidoc/src/rapidoc.ts`
- `rapidoc` resolves to `packages/rapidoc/src/index.ts`

---

Expand Down
10 changes: 5 additions & 5 deletions docs/astro.config.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -130,10 +130,10 @@ export default defineConfig({
resolve: {
alias: {
'~': rapidocSrcPath,
'~/rapidoc': resolve(rapidocSrcPath, 'rapidoc.js'),
'~/rapidoc-mini': resolve(rapidocSrcPath, 'rapidoc-mini.js'),
'~/oauth-receiver': resolve(rapidocSrcPath, 'oauth-receiver.js'),
rapidoc: resolve(rapidocSrcPath, 'index.js'),
'~/rapidoc': resolve(rapidocSrcPath, 'rapidoc.ts'),
'~/rapidoc-mini': resolve(rapidocSrcPath, 'rapidoc-mini.ts'),
'~/oauth-receiver': resolve(rapidocSrcPath, 'oauth-receiver.ts'),
rapidoc: resolve(rapidocSrcPath, 'index.ts'),
},
},
server: {
Expand Down Expand Up @@ -179,7 +179,7 @@ export default defineConfig({
if (pathname === '/rapidoc/rapidoc-min.js' || pathname === '/rapidoc/rapidoc.js') {
res.setHeader('Content-Type', 'application/javascript; charset=utf-8');
res.setHeader('Cache-Control', 'no-cache');
res.end(`import '/@fs${resolve(rapidocSrcPath, 'index.js')}';\n`);
res.end(`import '/@fs${resolve(rapidocSrcPath, 'index.ts')}';\n`);
return;
}
next();
Expand Down
18 changes: 9 additions & 9 deletions docs/src/page-data/rapidoc-build-info.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,19 +3,19 @@
"version": "10.1.0",
"versionTag": "v10.1.0",
"versionShort": "v10.1",
"buildTime": "2026-10-06T10:10:24.057Z",
"buildTime": "2026-10-09T20:03:31.232Z",
"bundle": {
"minified": {
"bytes": 503029,
"formatted": "491 KB",
"kb": 491,
"exactKb": 491.2
"bytes": 510630,
"formatted": "499 KB",
"kb": 499,
"exactKb": 498.7
},
"gzip": {
"bytes": 132830,
"formatted": "130 KB",
"kb": 130,
"exactKb": 129.7
"bytes": 135442,
"formatted": "132 KB",
"kb": 132,
"exactKb": 132.3
}
}
}
18 changes: 9 additions & 9 deletions docs/src/page-data/rapidoc-build-info.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,15 @@ name: "rapidoc"
version: "10.1.0"
versionTag: "v10.1.0"
versionShort: "v10.1"
buildTime: "2026-10-06T10:10:24.057Z"
buildTime: "2026-10-09T20:03:31.232Z"
bundle:
minified:
bytes: 503029
formatted: "491 KB"
kb: 491
exactKb: 491.2
bytes: 510630
formatted: "499 KB"
kb: 499
exactKb: 498.7
gzip:
bytes: 132830
formatted: "130 KB"
kb: 130
exactKb: 129.7
bytes: 135442
formatted: "132 KB"
kb: 132
exactKb: 132.3
6 changes: 5 additions & 1 deletion eslint.config.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import globals from 'globals';
import tseslint from 'typescript-eslint';
import pluginJs from '@eslint/js';
import { configs as litConfigs } from 'eslint-plugin-lit';
import eslintConfigPrettier from 'eslint-config-prettier';
Expand All @@ -17,8 +18,9 @@ export default [
},
pluginJs.configs.recommended, // ESLint recommended
litConfigs['flat/recommended'], // Lit recommended
...tseslint.configs.recommended.map((config) => ({ ...config, files: ['**/*.ts'] })), // TypeScript recommended (ts files only)
{
files: ['**/*.js'],
files: ['**/*.js', '**/*.ts'],
plugins: {
prettier: eslintPluginPrettier, // Add Prettier plugin
},
Expand All @@ -36,6 +38,8 @@ export default [
],
...eslintConfigPrettier.rules, // Disable conflicting ESLint rules
'lit/attribute-value-entities': 'off',
// OpenAPI documents are deeply dynamic; `any` is tolerated (warned) where precise typing is impractical
'@typescript-eslint/no-explicit-any': 'warn',
'no-useless-assignment': 'warn',
'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
'no-debugger': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
Expand Down
Loading
Loading