@compn3rd/pi-web-code-review 0.1.1 → 0.2.0
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/CHANGELOG.md +41 -0
- package/README.md +24 -5
- package/dist/browser/index.js +780 -592
- package/docs/compatibility.md +29 -41
- package/docs/composer-design.md +5 -5
- package/docs/development.md +14 -3
- package/docs/screenshots/0.2.0/focus-desktop.png +0 -0
- package/docs/screenshots/0.2.0/focus-light.png +0 -0
- package/docs/screenshots/0.2.0/focus-phone.png +0 -0
- package/docs/screenshots/0.2.0/phone-compare.png +0 -0
- package/docs/screenshots/0.2.0/phone-editor.png +0 -0
- package/docs/screenshots/0.2.0/phone-files.png +0 -0
- package/docs/screenshots/0.2.0/phone-notes.png +0 -0
- package/docs/screenshots/0.2.0/phone-settings.png +0 -0
- package/docs/screenshots/0.2.0/workbench-desktop.png +0 -0
- package/docs/screenshots/0.2.0/workbench-light.png +0 -0
- package/docs/screenshots/0.2.0/workbench-phone.png +0 -0
- package/docs/screenshots/review-after.png +0 -0
- package/docs/screenshots/review-before.png +0 -0
- package/docs/usage.md +15 -5
- package/package.json +7 -5
package/docs/compatibility.md
CHANGED
|
@@ -1,55 +1,43 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Release compatibility and validation
|
|
2
2
|
|
|
3
|
-
##
|
|
3
|
+
## 0.2.0 target
|
|
4
4
|
|
|
5
|
-
Checked
|
|
5
|
+
Checked published **`@jmfederico/pi-web@1.202610.6`**, including its packaged `docs/plugins.md` and public browser/server declarations. The supported host minimum is now **1.202610.6**. The lockfile records the concrete development dependency. Compatibility with future releases is not implied by these checks.
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
## Integration
|
|
8
8
|
|
|
9
|
-
-
|
|
10
|
-
-
|
|
11
|
-
-
|
|
9
|
+
- Browser entrypoint migrated from API **v4 to v5**.
|
|
10
|
+
- Declares the public **`pi-web/stylesheet-integration` v1** capability, resolves it in `start`, and installs one Lit controller per panel with `{ sharedUi: true }`. The host owns stylesheet adoption and cleanup on disconnect/reconnect. Missing or malformed capability values fail explicitly.
|
|
11
|
+
- Uses shared `ui-button`, `ui-select`, `ui-toolbar` and `ui-file-row` patterns with component-owned responsive CSS and inherited `--pi-*` colour/font tokens. No private host imports, global CSS patches or stylesheet-text capability are used. Styling remains experimental upstream and must be rechecked on upgrades.
|
|
12
|
+
- Server entry remains API **v3**, which `1.202610.6` still supports (with an upstream deprecation diagnostic). Its workspace-scoped, read-only Git operations are unchanged. There is no need to accept new machine/project scopes for this UI release.
|
|
13
|
+
- Composer-chip ownership, acceptance callbacks, storage transactions, comparison endpoints, plugin ID and comment schema are unchanged. There is no comment-data migration for 0.2.0.
|
|
14
|
+
- Layout/wrapping preferences use a separate browser-local key, `pi-web-code-review:preferences:v1`. Corrupt or unavailable preferences fall back safely. Write failures report that the choice applies to the current panel only; they do not block comment storage.
|
|
15
|
+
- UI controls are implemented by this plugin. Shared styles do not supply event handling, selection or ARIA semantics. Native modal dialogs supply modal background exclusion and Escape handling.
|
|
12
16
|
|
|
13
|
-
##
|
|
14
|
-
|
|
15
|
-
No production API migration was required for this release:
|
|
16
|
-
|
|
17
|
-
- Composer chips shipped in **1.202610.2**. `PluginPromptChip`, optional `setChip`/`removeChip`, silent programmatic withdrawal, and `onRemove("user" | "submitted")` match the plugin's implementation. Submission means server acceptance, not agent completion; failed sends retain chips.
|
|
18
|
-
- Browser API **v4** and server API **v3** are unchanged. Workspace file helpers, invalidation, package peers, and bounded `execFile` with `unsetEnv` and operation signals remain supported.
|
|
19
|
-
- Removed panel aliases do not affect this plugin: it declares no `routeAliases`/`navigationAliases` and opens its panel with the runtime-qualified contribution ID.
|
|
20
|
-
- Full, case-sensitive session IDs are now required. The plugin already uses the full `selectedSession.id`; it does not generate abbreviated session links.
|
|
21
|
-
- New selection subscriptions, application panels, metadata, and message actions are optional additions, not required adaptations for the existing Review panel.
|
|
22
|
-
- PI WEB's newer Pi SDK dependencies do not require a companion-extension migration here: this plugin uses no Pi SDK imports or companion extension.
|
|
23
|
-
- The standalone browser/server manifest follows the published example, keeping server code outside `browserRoot`. Node's declared minimum remains `>=22.19.0`.
|
|
24
|
-
|
|
25
|
-
The supported dependency range is `>=1.202610.3`; the lockfile records a concrete resolved version. Compatibility was checked against `1.202610.3`, not every later version. One test access was made null-safe because panel `state` is optional in the public contract. No production API migration was needed. The subsequent `0.1.1` patch adds the Review icon, lint cleanup, and branch/commit comparisons described in the [changelog](../CHANGELOG.md). Revision comparison uses only the existing scoped package-peer API and read-only Git runner; no additional host API is required.
|
|
26
|
-
|
|
27
|
-
## Validation
|
|
28
|
-
|
|
29
|
-
After `npm ci --ignore-scripts`:
|
|
17
|
+
## Automated results
|
|
30
18
|
|
|
31
19
|
| Check | Result |
|
|
32
20
|
| --- | --- |
|
|
33
|
-
|
|
|
34
|
-
|
|
|
35
|
-
|
|
|
36
|
-
|
|
|
37
|
-
| `npm
|
|
38
|
-
|
|
|
39
|
-
|
|
|
40
|
-
|
|
21
|
+
| Typecheck and typed ESLint | Passed |
|
|
22
|
+
| Unit/DOM/real-Git tests | Passed: 7 files, 99 tests |
|
|
23
|
+
| Browser/server build | Passed |
|
|
24
|
+
| Unpacked artifact smoke | Passed |
|
|
25
|
+
| Actual `npm pack` and extracted-package smoke | Passed |
|
|
26
|
+
| Production-bundle Chromium acceptance | Passed |
|
|
27
|
+
| Dependency audit | 0 known vulnerabilities |
|
|
28
|
+
|
|
29
|
+
Browser checks exercise dark/light palettes at desktop width; 360/390/430px viewports with both layouts and wrapping on/off; absence of page-level horizontal overflow; draft retention through layout changes; preference persistence (DOM tests); file/notes/settings dialogs; keyboard exclusion of inert background controls; numeric range editing; mocked chip attachment without clearing the draft; stale-draft save prevention after source changes; and stylesheet-controller connection/disconnection. The browser harness consumes the built `dist/browser/index.js` artifact, not the visual prototype.
|
|
41
30
|
|
|
42
|
-
The artifact harness
|
|
31
|
+
The artifact harness uses mocked host contexts and DOM/IndexedDB adapters. The Chromium harness uses native browser storage and the production plugin with a sample backend and a mock stylesheet capability; it does not reproduce the running host's shared CSS bundle. Screenshots under `docs/screenshots/0.2.0/` document those limits.
|
|
43
32
|
|
|
44
|
-
|
|
33
|
+
## Follow-up acceptance
|
|
45
34
|
|
|
46
|
-
|
|
35
|
+
- Live-host registration and shared stylesheet/theme adoption, including theme changes and narrow desktop panels.
|
|
36
|
+
- Real iOS/Android keyboards, viewport changes, touch selection and assistive technology.
|
|
37
|
+
- Successful/failed/chips-only sends, steer/follow-up, in-flight replacement, two-tab acknowledgements, real storage failures and remote-machine scoping. The automated ownership/storage regressions pass, but do not establish live end-to-end acceptance.
|
|
47
38
|
|
|
48
|
-
|
|
39
|
+
See the [composer checklist](composer-design.md#release-gate). These live checks remain follow-up work under the existing publication policy. No live plugin installation, daemon restart or host modification was performed to produce this release.
|
|
49
40
|
|
|
50
|
-
|
|
51
|
-
2. Validate comparison controls and saved comparison comments on a live host, including moving branches and upgrading all older tabs. Complete the separate live-host checklist in [the release gate](composer-design.md#release-gate), especially successful/failed/chips-only sends, steer/follow-up, replacement during Send, selection changes, two-tab acknowledgements, and remote scoping. The newest host also adds pending-message controls; confirm locally queued messages do not clear saved feedback before server admission.
|
|
52
|
-
3. The declared host range is `>=1.202610.3`. Only `1.202610.3` was checked here; later versions are allowed but have not been independently verified.
|
|
53
|
-
4. Publication is enabled for the `0.1.1` patch release as `@compn3rd/pi-web-code-review`. The remaining validation is follow-up work; discovered defects will be addressed in patch releases.
|
|
41
|
+
## Earlier releases
|
|
54
42
|
|
|
55
|
-
|
|
43
|
+
Versions 0.1.1 and 0.1.2 were checked against PI WEB `1.202610.3`, browser API v4 and server API v3. The 0.1.2 inline-editor redesign passed 84 tests. Historical [before](screenshots/review-before.png) and [after](screenshots/review-after.png) captures are standalone previews, not live-host screenshots.
|
package/docs/composer-design.md
CHANGED
|
@@ -4,9 +4,9 @@
|
|
|
4
4
|
|
|
5
5
|
Target the public API on `jmfederico/pi-web` main at `830dc179`, including composer chips introduced in `02d24ec6`. The source imports `PluginPromptChip` directly from `@jmfederico/pi-web/plugin-api`; it does not recreate the missing API through a local shim or access private host code.
|
|
6
6
|
|
|
7
|
-
The development dependency accepts PI WEB `>=1.202610.
|
|
7
|
+
The development dependency accepts PI WEB `>=1.202610.6`; compatibility was checked against published `1.202610.6`. Composer chips shipped in `1.202610.2`; the `1.202610.3` public declarations match this design. No speculative version, Git dependency, or local shim is used. Typechecking, all 99 tests, builds, and unpacked/packed artifact smoke checks pass. Full automated verification passes. See [compatibility results](compatibility.md).
|
|
8
8
|
|
|
9
|
-
The `0.
|
|
9
|
+
The `0.2.0` release is enabled for publication. Live-host checks remain follow-up work rather than publication gates. Live-host runtime testing and installation are still deferred; the checks above validate declarations and standalone artifacts, not end-to-end send admission in a running host.
|
|
10
10
|
|
|
11
11
|
Reference: [upstream composer documentation](https://github.com/jmfederico/pi-web/blob/830dc179/docs/plugins.md#attach-text-context-to-a-message).
|
|
12
12
|
|
|
@@ -45,10 +45,10 @@ Acceptance means prompt admission by the server, not that the assistant complete
|
|
|
45
45
|
|
|
46
46
|
Current progress against published PI WEB `1.202610.3`:
|
|
47
47
|
|
|
48
|
-
1. Confirm its public declarations include `PluginPromptChip` and the documented `setChip`/`removeChip` lifecycle. Declare the supported minimum as `>=1.202610.
|
|
48
|
+
1. Confirm its public declarations include `PluginPromptChip` and the documented `setChip`/`removeChip` lifecycle. Declare the supported minimum as `>=1.202610.6` and retain a concrete resolved version in the lockfile.
|
|
49
49
|
2. Re-read the published contract and reconcile any differences from the recorded main revision. Do not assume main's design is frozen.
|
|
50
|
-
3. Run `npm run verify` at the package root, followed by an actual packed-package smoke check. All
|
|
50
|
+
3. Run `npm run verify` at the package root, followed by an actual packed-package smoke check. All 99 unit/DOM cases have passed, as have unpacked and packed artifact smoke checks. All 38 lint findings have been resolved and full `verify` now passes. The dev-only `fake-indexeddb` factory exercises the actual adapter on two connections, transaction aborts, migration precedence/empty markers, and open retry/late-success cleanup. Dependencies were installed with `--ignore-scripts`; no host installation or daemon restart was performed.
|
|
51
51
|
4. In a separate test installation, exercise successful and failed sends, chips-only messages, steer/follow-up, selection changes, repeat attachment during an in-flight send, local edits/deletes, simultaneous two-tab saves/acknowledgements, failed/blocked/corrupt migration, retained legacy backups, persistent storage/acknowledgement warnings across remounts, async navigation/disposal, LAN HTTP without Web Locks, BroadcastChannel failure, Git with `diff.submodule=diff`, reload/restaging, disabled-plugin cleanup, and remote-machine scoping. Confirm the server-accepted callback clears only the correct saved feedback. Do not restart the developer's active session daemon as part of this check.
|
|
52
|
-
5. Publication is enabled for version `0.
|
|
52
|
+
5. Publication is enabled for version `0.2.0` as `@compn3rd/pi-web-code-review`, with PI WEB `>=1.202610.6` supported. Keep outstanding validation documented and address discovered defects in patch releases.
|
|
53
53
|
|
|
54
54
|
There is no scheduled release watcher or automatic installation/restart associated with this gate.
|
package/docs/development.md
CHANGED
|
@@ -6,9 +6,9 @@ This repository starts from the plugin snapshot in [CompN3rd/pi-web at `d0c7a212
|
|
|
6
6
|
|
|
7
7
|
## Verification status
|
|
8
8
|
|
|
9
|
-
The development dependency
|
|
9
|
+
The development dependency targets PI WEB `^1.202610.6`, with a concrete lockfile resolution. The browser entry uses API v5 and public stylesheet-integration v1; the unchanged server entry uses supported API v3. There are no local replacement declarations. Typechecking, all 99 tests, the build, and unpacked/packed artifact smoke checks pass. Full `verify` and standalone production-browser checks pass; live-host testing is still pending. See [compatibility results](compatibility.md).
|
|
10
10
|
|
|
11
|
-
The `0.
|
|
11
|
+
The `0.2.0` release is enabled for publication with live-host testing tracked as follow-up work in the [validation checklist](composer-design.md#release-gate). Reproduce validation with:
|
|
12
12
|
|
|
13
13
|
```sh
|
|
14
14
|
npm ci --ignore-scripts
|
|
@@ -20,6 +20,17 @@ npm pack --dry-run
|
|
|
20
20
|
|
|
21
21
|
Prepared cases cover actual adapter serialization on two IndexedDB connections, aborted-write durability, one-time migration and empty migration markers, legacy-backup retention, corrupt/failed migration, failed-open retry and late blocked-open cleanup, captured chip ownership, stale async reads, disposal, user removal versus server acceptance, replacement during Send, unchanged-snapshot deletion, cross-tab withdrawal/badge refresh, persistent storage/acknowledgement warnings across remounts, and Git's `--submodule=short` override. `fake-indexeddb` is dev-only and injected through the native `IDBFactory` boundary; DOM tests retain the per-file happy-dom harness. These tests and the existing source-coordinate, Markdown, Git, and storage cases have passed against the released declarations. Mock/DOM coverage does not replace live-host acceptance testing.
|
|
22
22
|
|
|
23
|
+
## Production browser checks
|
|
24
|
+
|
|
25
|
+
Install Playwright in a separate tools directory (or supply an existing installation), ensure its Chromium browser is available, then run:
|
|
26
|
+
|
|
27
|
+
```sh
|
|
28
|
+
npm run build
|
|
29
|
+
npm run check:browser -- /absolute/path/to/playwright/index.mjs
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
This starts a temporary localhost Vite server, loads the built plugin with native browser storage and sample host/backend adapters, checks the responsive interactions, captures `docs/screenshots/0.2.0/`, then closes browser and server. It never starts PI WEB or restarts its daemon. The host stylesheet capability is mocked; test shared CSS and real mobile keyboards separately. The earlier `docs/redesign/` study is historical and excluded from npm; the production harness under `scripts/browser/` is the acceptance source.
|
|
33
|
+
|
|
23
34
|
## Boundaries
|
|
24
35
|
|
|
25
36
|
- The frontend stores workspace-scoped comments and delegates staging/acknowledgement to `ReviewChips`. Only public `prompt.setChip`/`prompt.removeChip` methods are used for handoff; prompt insertion and the provisional selection-service shim have been removed.
|
|
@@ -27,4 +38,4 @@ Prepared cases cover actual adapter serialization on two IndexedDB connections,
|
|
|
27
38
|
- The Markdown renderer is adapted from PI WEB's MIT-licensed Captain's Log example. It renders known lexer tokens through Lit text bindings, not unsafe HTML.
|
|
28
39
|
- Browser dependencies are bundled under `dist/browser`; server JavaScript remains outside that public directory. The whole plugin can be built separately from the host after the dependency gate is satisfied.
|
|
29
40
|
|
|
30
|
-
Version `0.
|
|
41
|
+
Version `0.2.0` is packaged for public npm distribution as `@compn3rd/pi-web-code-review`. Release publication is separate from host installation and activation. Do not publish the PI WEB host to ship this plugin.
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/docs/usage.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Code Review workflow
|
|
2
2
|
|
|
3
|
-
Version **0.
|
|
3
|
+
Version **0.2.0** requires **PI WEB >=1.202610.6**. Automated tests, builds, artifact smoke checks and production-bundle Chromium checks passed against `1.202610.6`; live-host testing remains outstanding. See [compatibility results](compatibility.md) for the validation limits.
|
|
4
4
|
|
|
5
5
|
## Install the standalone package
|
|
6
6
|
|
|
@@ -39,8 +39,8 @@ For remote workspaces, install and enable the package on each target machine. Gi
|
|
|
39
39
|
## Review files and changes
|
|
40
40
|
|
|
41
41
|
1. Select a workspace and open the **Review** tab (or **Open Code Review** in the action palette).
|
|
42
|
-
2. Choose **Files**, **
|
|
43
|
-
3. Click a line number. Shift-click extends its range on the same side; on touch screens, edit **Start line** and **End line** instead. Deleted diff lines use old-side coordinates; context and additions use new-side coordinates. Ranges cannot span omitted diff context.
|
|
42
|
+
2. Choose **Files**, **Unstaged**, **Staged**, or **Compare**. Files includes untracked files. Browse directories or expand **Open a file by path** to enter a workspace-relative file path. For committed work across multiple commits, use the comparison controls below.
|
|
43
|
+
3. Click a line number to open and focus the comment editor directly below it inside the viewer. Shift-click extends its range on the same side; on touch screens, expand **Line range** and edit **Start line** and **End line** instead. Deleted diff lines use old-side coordinates; context and additions use new-side coordinates. Ranges cannot span omitted diff context.
|
|
44
44
|
4. Enter Markdown and choose **Save comment**. Ctrl/Cmd+Enter also saves; ordinary Enter inserts a newline.
|
|
45
45
|
5. Review the saved list. **Edit comment** reloads its source before allowing a save; **Remove comment** deletes that comment.
|
|
46
46
|
|
|
@@ -48,9 +48,19 @@ Comments render safe Markdown: raw HTML is displayed as text, images do not load
|
|
|
48
48
|
|
|
49
49
|
Saved comments are local to this browser origin, keyed by machine, project, and workspace. They survive reloads and session changes; they are not synchronized across browsers or machines. IndexedDB transactions serialize concurrent saves and acknowledgements across tabs, so independent comments are not lost through competing read/modify/write operations. IndexedDB does not require HTTPS or Web Locks; LAN HTTP remains supported where the browser permits origin storage. Storage errors are shown and an unsuccessful save leaves the editor text available. Corrupt or unrecognized storage is not overwritten automatically. Feedback warnings remain separate from source-loading errors, survive panel/workspace remounts within the activation, and stay visible until explicitly dismissed.
|
|
50
50
|
|
|
51
|
+
### Layout and phone controls
|
|
52
|
+
|
|
53
|
+
Choose **Review settings** in the panel header. **Workbench** shows files, code and saved notes in columns on wide panels (notes move below at intermediate widths). **Focus** hides the persistent file list, keeps feedback inline and collapses the saved-review summary. Switching layouts preserves the current file, range, draft and code-view DOM; normal responsive reflow can adjust scroll geometry.
|
|
54
|
+
|
|
55
|
+
On panels at most 640px wide, use **Files** (Workbench) or the current filename (Focus) to open a file sheet. **Notes** opens all saved feedback. Choose a file to close the sheet; opening a directory keeps it open for browsing. Close sheets with the close button or Escape. Desktop previous/next controls navigate the current file list.
|
|
56
|
+
|
|
57
|
+
**Wrap code** is enabled by default. Turning it off scrolls long source lines inside the code viewer; comments and the draft remain constrained to the viewer width. Wrapping does not change original line coordinates. Layout and wrapping choices are stored per browser origin, shared across workspaces on subsequent panel creation; existing tabs do not live-sync these preferences. A failed settings write is reported without affecting saved comments.
|
|
58
|
+
|
|
59
|
+
Settings are in the Review panel, not the host-wide settings screen. Unsaved drafts still need to be saved before reloading or switching workspaces. Neither applying settings nor attaching a review sends a message.
|
|
60
|
+
|
|
51
61
|
### Review accumulated branch or commit changes
|
|
52
62
|
|
|
53
|
-
Select **Compare
|
|
63
|
+
Select **Compare**, enter **Base revision** and **Target revision**, then choose a comparison mode and click **Compare**:
|
|
54
64
|
|
|
55
65
|
| Goal | Base | Target | Mode |
|
|
56
66
|
| --- | --- | --- | --- |
|
|
@@ -79,7 +89,7 @@ Refreshing or host file invalidation reloads the current snapshot (in comparison
|
|
|
79
89
|
|
|
80
90
|
## Attach feedback to the composer
|
|
81
91
|
|
|
82
|
-
Choose a ready, unarchived conversation in this workspace, then select **Attach review to composer
|
|
92
|
+
Choose a ready, unarchived conversation in this workspace, then select **Attach review to composer** in the panel header. The header shows saved-comment and unsaved-draft counts; save your draft first if you want it included. One removable **Review (N)** chip contains a snapshot of all saved comments. Repeating the action replaces that conversation's review chip, not the text at its cursor. You can inspect the payload under **Feedback Markdown**.
|
|
83
93
|
|
|
84
94
|
Send the chip with a message or by itself. Failed sends keep it and the saved comments for retry. Server acceptance clears only unchanged comments from the submitted snapshot; later edits and new comments survive. Acceptance does not mean the assistant has finished answering. Removing the composer chip only detaches it—saved comments remain available.
|
|
85
95
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@compn3rd/pi-web-code-review",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
@@ -15,7 +15,8 @@
|
|
|
15
15
|
"dist",
|
|
16
16
|
"README.md",
|
|
17
17
|
"CHANGELOG.md",
|
|
18
|
-
"docs",
|
|
18
|
+
"docs/*.md",
|
|
19
|
+
"docs/screenshots",
|
|
19
20
|
"LICENSE"
|
|
20
21
|
],
|
|
21
22
|
"scripts": {
|
|
@@ -24,12 +25,13 @@
|
|
|
24
25
|
"lint": "eslint src test",
|
|
25
26
|
"build": "npm run typecheck && vite build && tsc -p tsconfig.server.json",
|
|
26
27
|
"check:artifacts": "node scripts/check-artifacts.mjs",
|
|
28
|
+
"check:browser": "node scripts/check-browser.mjs",
|
|
27
29
|
"verify": "npm run typecheck && npm run lint && npm test && npm run build && npm run check:artifacts",
|
|
28
30
|
"prepack": "npm run build"
|
|
29
31
|
},
|
|
30
32
|
"devDependencies": {
|
|
31
33
|
"@eslint/js": "^10.0.1",
|
|
32
|
-
"@jmfederico/pi-web": "
|
|
34
|
+
"@jmfederico/pi-web": "^1.202610.6",
|
|
33
35
|
"@noble/hashes": "^2.4.0",
|
|
34
36
|
"@types/node": "^24.13.3",
|
|
35
37
|
"eslint": "^10.6.0",
|
|
@@ -40,8 +42,8 @@
|
|
|
40
42
|
"marked": "^18.0.6",
|
|
41
43
|
"typescript": "^6.0.3",
|
|
42
44
|
"typescript-eslint": "^8.63.0",
|
|
43
|
-
"vite": "^8.
|
|
44
|
-
"vitest": "^4.1.
|
|
45
|
+
"vite": "^8.3.5",
|
|
46
|
+
"vitest": "^4.1.12"
|
|
45
47
|
},
|
|
46
48
|
"engines": {
|
|
47
49
|
"node": ">=22.19.0"
|