Compare commits

..

61 Commits

Author SHA1 Message Date
Guido D'Orsi
88e314d980 Merge pull request #1400 from garden-co/changeset-release/main
Version Packages
2025-02-17 18:00:56 +01:00
github-actions[bot]
62e0e5d721 Version Packages 2025-02-17 16:35:06 +00:00
Guido D'Orsi
aa16ad9c1c Merge pull request #1408 from garden-co/fix/clerk-auth-migration
fix: fixes the clerk credentials migration
2025-02-17 17:33:15 +01:00
Guido D'Orsi
ada802bff8 fix: fixes the clerk credentials migration 2025-02-17 17:16:19 +01:00
Benjamin S. Leveritt
471b8c6a15 Merge pull request #1405 from garden-co/jazz-716-fix-turbo-caching-of-llm-content
Adds llms.txt to turbo build output cache
2025-02-17 15:18:11 +00:00
Benjamin S. Leveritt
7dd080d907 Merge pull request #1401 from garden-co/jazz-714-add-turbo-to-nix-dev-environment
Updates flake, adds turbo dep
2025-02-17 15:07:44 +00:00
Benjamin S. Leveritt
69c81a3e90 Adds llms.txt to turbo build output cache 2025-02-17 15:06:53 +00:00
Benjamin S. Leveritt
d8ed987461 Merge pull request #1406 from garden-co/fix/missing-icon
Fix missing icon
2025-02-17 15:06:39 +00:00
Trisha Lim
beb45c2656 Fix missing icon 2025-02-17 15:06:11 +00:00
Guido D'Orsi
1d71ca1511 feat: add React 19 to the peerDependencies 2025-02-17 15:32:04 +01:00
Benjamin S. Leveritt
65941c7f87 Updates flake, adds turbo dep 2025-02-17 12:07:23 +00:00
Guido D'Orsi
a37dc1c22f test: cover another case on existing account migrations 2025-02-17 13:01:59 +01:00
Benjamin S. Leveritt
774f232390 Merge pull request #1307 from garden-co/jazz-679-create-crypto-rust-crate
Jazz 679 Use jazz-crypto-rs
2025-02-17 12:00:46 +00:00
Benjamin S. Leveritt
12c19fc940 Merge pull request #1396 from garden-co/jazz-713-fix-llms-fulltxt-content
Fixes llms-full.txt, adds sanity tests
2025-02-17 11:56:29 +00:00
Benjamin S. Leveritt
338f5421f4 Adds test task 2025-02-17 11:26:38 +00:00
Benjamin S. Leveritt
e0daca300b Fixes llms-full.txt, adds sanity tests 2025-02-17 11:07:16 +00:00
Benjamin S. Leveritt
5c76e37f14 Adds changeset 2025-02-12 21:35:05 +00:00
Benjamin S. Leveritt
0117d0c9b9 Bumps jazz-crypto version 2025-02-12 21:21:34 +00:00
Benjamin S. Leveritt
b90c766c05 Cleans up WasmCrypto.create 2025-02-12 21:21:13 +00:00
Benjamin S. Leveritt
262a36e456 Bumps dep 2025-02-12 20:20:27 +00:00
Benjamin S. Leveritt
cb1df65beb Refactors to use stateful Blake3Hasher 2025-02-12 20:20:26 +00:00
Benjamin S. Leveritt
ea91e63ff2 Bumps jazz-crypto-rs version 2025-02-12 20:20:26 +00:00
Benjamin S. Leveritt
8eae2eb31e Fixes test 2025-02-12 20:20:26 +00:00
Benjamin S. Leveritt
c9044f5123 Adds npm dep 2025-02-12 20:20:26 +00:00
Benjamin S. Leveritt
24340173fa Picks up that can
#riseandshinemrfreeman
2025-02-12 20:19:48 +00:00
Benjamin S. Leveritt
53e88993a0 Moves jazz-crypto-rs into own repo 2025-02-12 20:18:47 +00:00
Benjamin S. Leveritt
ece168878b Use external dep 2025-02-12 20:18:47 +00:00
Benjamin S. Leveritt
cad84db52b Adds comments 2025-02-12 20:18:47 +00:00
Benjamin S. Leveritt
342a385111 Simplifies build process 2025-02-12 20:18:47 +00:00
Benjamin S. Leveritt
f87ba7d927 Fixes seal port 2025-02-12 20:18:47 +00:00
Benjamin S. Leveritt
7c7f55b85c Ports high-level encrypt and decrypt fns 2025-02-12 20:18:46 +00:00
Benjamin S. Leveritt
0e5b9f5292 Fixes unused lint 2025-02-12 20:18:46 +00:00
Benjamin S. Leveritt
2f5af3dece Ports get_sealer_id 2025-02-12 20:18:46 +00:00
Benjamin S. Leveritt
2c35e2ba85 Ports signing fns 2025-02-12 20:18:46 +00:00
Benjamin S. Leveritt
0a4f79d5a4 Adds wasm-pack via pnpm 2025-02-12 20:18:46 +00:00
Benjamin S. Leveritt
43cb7abba7 Exclude target output from formatter 2025-02-12 20:18:46 +00:00
Benjamin S. Leveritt
25f76f6b02 Updates README 2025-02-12 20:18:46 +00:00
Benjamin S. Leveritt
6a56561c98 Refactor into modules 2025-02-12 20:18:45 +00:00
Benjamin S. Leveritt
2ac31e7c51 Removes unused berith dep 2025-02-12 20:18:45 +00:00
Benjamin S. Leveritt
1bbefab5a9 Ports final ed25519 fns 2025-02-12 20:18:45 +00:00
Benjamin S. Leveritt
1143b32cf3 Remove generateNonce from crypto, as only used by PureJS class 2025-02-12 20:18:45 +00:00
Benjamin S. Leveritt
51ada27810 Refactors to pass nonceMaterial to reduce wasm boundary crossing 2025-02-12 20:18:45 +00:00
Benjamin S. Leveritt
954ecb3984 Ports xsalsa20 encrypt/decrypt fns to Rust 2025-02-12 20:18:45 +00:00
Benjamin S. Leveritt
05089270d9 Refactors to pass nonceMaterial, rather than nonces 2025-02-12 20:18:45 +00:00
Benjamin S. Leveritt
fecc81111a Ports seal/unseal to rs lib 2025-02-12 20:18:45 +00:00
Benjamin S. Leveritt
4d3e7dbcd5 Adds X25519 fns 2025-02-12 20:18:44 +00:00
Benjamin S. Leveritt
ee65f18fd9 Add note about rust-analyzer 2025-02-12 20:18:44 +00:00
Benjamin S. Leveritt
bcbc4636ed Moves randomBytes up into crypto class to remove duplication 2025-02-12 20:18:44 +00:00
Benjamin S. Leveritt
8c323c4513 Fixes type 2025-02-12 20:18:44 +00:00
Benjamin S. Leveritt
4103ea0c88 Removes hash-wasm dep 2025-02-12 20:18:44 +00:00
Benjamin S. Leveritt
733ebec902 Ports more Blake3 functions 2025-02-12 19:50:23 +00:00
Benjamin S. Leveritt
10a3834668 Ports blake3_hash with context 2025-02-12 19:50:23 +00:00
Benjamin S. Leveritt
593c3aeb6e Port blake3_hash_once 2025-02-12 19:50:23 +00:00
Benjamin S. Leveritt
a55d71c28d Fixes exported fn for node 2025-02-12 19:49:53 +00:00
Benjamin S. Leveritt
c030c7a57e Adds isomorphic generate_nonce function to rs lib 2025-02-12 19:49:53 +00:00
Benjamin S. Leveritt
e5b4c0448a Refactor into nonceGeneration 2025-02-12 19:49:53 +00:00
Benjamin S. Leveritt
0d516a3c6a Adds a test for unsealed error 2025-02-12 19:49:53 +00:00
Benjamin S. Leveritt
271ff3eb40 Adds comments to crypto libs 2025-02-12 19:49:53 +00:00
Benjamin S. Leveritt
dcc836ff98 Imports jazz-crypto-rs into cojson 2025-02-12 19:49:53 +00:00
Benjamin S. Leveritt
22da4ea136 Add jazz-crypto-rs lib 2025-02-12 18:27:21 +00:00
Benjamin S. Leveritt
80e86c92b2 Add rust tools to nix dev environment 2025-02-12 18:27:21 +00:00
102 changed files with 834 additions and 328 deletions

View File

@@ -1,5 +1,15 @@
# chat-rn-clerk
## 1.0.71
### Patch Changes
- Updated dependencies [ada802b]
- jazz-tools@0.10.6
- jazz-react-native@0.10.6
- jazz-react-native-auth-clerk@0.10.6
- jazz-react-native-media-images@0.10.6
## 1.0.70
### Patch Changes

View File

@@ -1,7 +1,7 @@
{
"name": "chat-rn-clerk",
"main": "index.js",
"version": "1.0.70",
"version": "1.0.71",
"scripts": {
"build": "expo export -p ios",
"start": "expo start",

View File

@@ -1,5 +1,13 @@
# chat-rn
## 1.0.68
### Patch Changes
- Updated dependencies [ada802b]
- jazz-tools@0.10.6
- jazz-react-native@0.10.6
## 1.0.67
### Patch Changes

View File

@@ -1,6 +1,6 @@
{
"name": "chat-rn",
"version": "1.0.67",
"version": "1.0.68",
"main": "index.js",
"scripts": {
"build": "expo export -p ios",

View File

@@ -1,5 +1,14 @@
# chat-vue
## 0.0.55
### Patch Changes
- Updated dependencies [ada802b]
- jazz-tools@0.10.6
- jazz-browser@0.10.6
- jazz-vue@0.10.6
## 0.0.54
### Patch Changes

View File

@@ -1,6 +1,6 @@
{
"name": "chat-vue",
"version": "0.0.54",
"version": "0.0.55",
"private": true,
"type": "module",
"scripts": {

View File

@@ -1,5 +1,16 @@
# jazz-example-chat
## 0.0.151
### Patch Changes
- Updated dependencies [1d71ca1]
- Updated dependencies [ada802b]
- hash-slash@0.2.2
- jazz-react@0.10.6
- jazz-tools@0.10.6
- jazz-browser-media-images@0.10.6
## 0.0.150
### Patch Changes

View File

@@ -1,7 +1,7 @@
{
"name": "jazz-example-chat",
"private": true,
"version": "0.0.150",
"version": "0.0.151",
"type": "module",
"scripts": {
"dev": "vite",

View File

@@ -1,5 +1,15 @@
# minimal-auth-clerk
## 0.0.50
### Patch Changes
- Updated dependencies [1d71ca1]
- Updated dependencies [ada802b]
- jazz-react-auth-clerk@0.10.6
- jazz-react@0.10.6
- jazz-tools@0.10.6
## 0.0.49
### Patch Changes

View File

@@ -1,7 +1,7 @@
{
"name": "clerk",
"private": true,
"version": "0.0.49",
"version": "0.0.50",
"type": "module",
"scripts": {
"dev": "vite",
@@ -13,7 +13,7 @@
"dependencies": {
"@clerk/clerk-react": "^5.4.1",
"jazz-react": "workspace:*",
"jazz-react-auth-clerk": "workspace:0.10.5",
"jazz-react-auth-clerk": "workspace:0.10.6",
"jazz-tools": "workspace:*",
"react": "^18.3.1",
"react-dom": "^18.3.1"

View File

@@ -1,5 +1,13 @@
# file-share-svelte
## 0.0.35
### Patch Changes
- Updated dependencies [ada802b]
- jazz-tools@0.10.6
- jazz-svelte@0.10.6
## 0.0.34
### Patch Changes

View File

@@ -1,6 +1,6 @@
{
"name": "file-share-svelte",
"version": "0.0.34",
"version": "0.0.35",
"private": true,
"type": "module",
"scripts": {

View File

@@ -1,5 +1,16 @@
# form
## 0.0.46
### Patch Changes
- Updated dependencies [1d71ca1]
- Updated dependencies [ada802b]
- hash-slash@0.2.2
- jazz-react@0.10.6
- jazz-tools@0.10.6
- jazz-browser-media-images@0.10.6
## 0.0.45
### Patch Changes

View File

@@ -1,7 +1,7 @@
{
"name": "form",
"private": true,
"version": "0.0.45",
"version": "0.0.46",
"type": "module",
"scripts": {
"dev": "vite",

View File

@@ -1,5 +1,15 @@
# image-upload
## 0.0.48
### Patch Changes
- Updated dependencies [1d71ca1]
- Updated dependencies [ada802b]
- jazz-react@0.10.6
- jazz-tools@0.10.6
- jazz-browser-media-images@0.10.6
## 0.0.47
### Patch Changes

View File

@@ -1,7 +1,7 @@
{
"name": "image-upload",
"private": true,
"version": "0.0.47",
"version": "0.0.48",
"type": "module",
"scripts": {
"dev": "vite",

View File

@@ -1,5 +1,15 @@
# jazz-example-inspector
## 0.0.107
### Patch Changes
- Updated dependencies [1d71ca1]
- Updated dependencies [5c76e37]
- hash-slash@0.2.2
- cojson@0.10.6
- cojson-transport-ws@0.10.6
## 0.0.106
### Patch Changes

View File

@@ -1,7 +1,7 @@
{
"name": "jazz-inspector-app",
"private": true,
"version": "0.0.106",
"version": "0.0.107",
"type": "module",
"scripts": {
"dev": "vite",
@@ -16,9 +16,9 @@
"@radix-ui/react-toast": "^1.1.4",
"class-variance-authority": "^0.7.0",
"clsx": "^2.0.0",
"cojson": "workspace:0.10.4",
"cojson-transport-ws": "workspace:0.10.4",
"hash-slash": "workspace:0.2.1",
"cojson": "workspace:0.10.6",
"cojson-transport-ws": "workspace:0.10.6",
"hash-slash": "workspace:0.2.2",
"lucide-react": "^0.274.0",
"qrcode": "^1.5.3",
"react": "^18.3.1",

View File

@@ -1,5 +1,15 @@
# jazz-example-musicplayer
## 0.0.72
### Patch Changes
- Updated dependencies [1d71ca1]
- Updated dependencies [ada802b]
- jazz-react@0.10.6
- jazz-tools@0.10.6
- jazz-inspector@0.10.6
## 0.0.71
### Patch Changes

View File

@@ -1,7 +1,7 @@
{
"name": "jazz-example-music-player",
"private": true,
"version": "0.0.71",
"version": "0.0.72",
"type": "module",
"scripts": {
"dev": "vite",
@@ -22,8 +22,8 @@
"class-variance-authority": "^0.7.0",
"clsx": "^2.0.0",
"jazz-inspector": "workspace:*",
"jazz-react": "workspace:0.10.5",
"jazz-tools": "workspace:0.10.5",
"jazz-react": "workspace:0.10.6",
"jazz-tools": "workspace:0.10.6",
"lucide-react": "^0.274.0",
"react": "^18.3.1",
"react-dom": "^18.3.1",

View File

@@ -1,5 +1,14 @@
# organization
## 0.0.44
### Patch Changes
- Updated dependencies [1d71ca1]
- Updated dependencies [ada802b]
- jazz-react@0.10.6
- jazz-tools@0.10.6
## 0.0.43
### Patch Changes

View File

@@ -1,7 +1,7 @@
{
"name": "organization",
"private": true,
"version": "0.0.43",
"version": "0.0.44",
"type": "module",
"scripts": {
"dev": "vite",

View File

@@ -1,5 +1,11 @@
# passkey-svelte
## 0.0.39
### Patch Changes
- jazz-svelte@0.10.6
## 0.0.38
### Patch Changes

View File

@@ -1,6 +1,6 @@
{
"name": "passkey-svelte",
"version": "0.0.38",
"version": "0.0.39",
"type": "module",
"private": true,
"scripts": {

View File

@@ -1,5 +1,14 @@
# minimal-auth-passkey
## 0.0.49
### Patch Changes
- Updated dependencies [1d71ca1]
- Updated dependencies [ada802b]
- jazz-react@0.10.6
- jazz-tools@0.10.6
## 0.0.48
### Patch Changes

View File

@@ -1,7 +1,7 @@
{
"name": "passkey",
"private": true,
"version": "0.0.48",
"version": "0.0.49",
"type": "module",
"scripts": {
"dev": "vite",

View File

@@ -1,5 +1,14 @@
# passphrase
## 0.0.46
### Patch Changes
- Updated dependencies [1d71ca1]
- Updated dependencies [ada802b]
- jazz-react@0.10.6
- jazz-tools@0.10.6
## 0.0.45
### Patch Changes

View File

@@ -1,7 +1,7 @@
{
"name": "passphrase",
"private": true,
"version": "0.0.45",
"version": "0.0.46",
"type": "module",
"scripts": {
"dev": "vite",

View File

@@ -1,5 +1,14 @@
# jazz-password-manager
## 0.0.70
### Patch Changes
- Updated dependencies [1d71ca1]
- Updated dependencies [ada802b]
- jazz-react@0.10.6
- jazz-tools@0.10.6
## 0.0.69
### Patch Changes

View File

@@ -1,7 +1,7 @@
{
"name": "jazz-password-manager",
"private": true,
"version": "0.0.69",
"version": "0.0.70",
"type": "module",
"scripts": {
"dev": "vite",
@@ -12,8 +12,8 @@
"clean-install": "rm -rf node_modules pnpm-lock.yaml && pnpm install"
},
"dependencies": {
"jazz-react": "workspace:0.10.5",
"jazz-tools": "workspace:0.10.5",
"jazz-react": "workspace:0.10.6",
"jazz-tools": "workspace:0.10.6",
"react": "^18.3.1",
"react-dom": "^18.3.1",
"react-hook-form": "^7.41.5",

View File

@@ -1,5 +1,15 @@
# jazz-example-pets
## 0.0.168
### Patch Changes
- Updated dependencies [1d71ca1]
- Updated dependencies [ada802b]
- jazz-react@0.10.6
- jazz-tools@0.10.6
- jazz-browser-media-images@0.10.6
## 0.0.167
### Patch Changes

View File

@@ -1,7 +1,7 @@
{
"name": "jazz-example-pets",
"private": true,
"version": "0.0.167",
"version": "0.0.168",
"type": "module",
"scripts": {
"dev": "vite",
@@ -19,9 +19,9 @@
"@radix-ui/react-toast": "^1.1.4",
"class-variance-authority": "^0.7.0",
"clsx": "^2.0.0",
"jazz-browser-media-images": "workspace:0.10.5",
"jazz-react": "workspace:0.10.5",
"jazz-tools": "workspace:0.10.5",
"jazz-browser-media-images": "workspace:0.10.6",
"jazz-react": "workspace:0.10.6",
"jazz-tools": "workspace:0.10.6",
"lucide-react": "^0.274.0",
"qrcode": "^1.5.3",
"react": "^18.3.1",
@@ -41,7 +41,7 @@
"@vitejs/plugin-react-swc": "^3.3.2",
"autoprefixer": "^10.4.20",
"is-ci": "^3.0.1",
"jazz-run": "workspace:0.10.5",
"jazz-run": "workspace:0.10.6",
"postcss": "^8.4.27",
"tailwindcss": "^3.4.17",
"typescript": "~5.6.2",

View File

@@ -1,5 +1,16 @@
# reactions
## 0.0.48
### Patch Changes
- Updated dependencies [1d71ca1]
- Updated dependencies [ada802b]
- hash-slash@0.2.2
- jazz-react@0.10.6
- jazz-tools@0.10.6
- jazz-browser-media-images@0.10.6
## 0.0.47
### Patch Changes

View File

@@ -1,7 +1,7 @@
{
"name": "reactions",
"private": true,
"version": "0.0.47",
"version": "0.0.48",
"type": "module",
"scripts": {
"dev": "vite",

View File

@@ -1,5 +1,14 @@
# todo-vue
## 0.0.53
### Patch Changes
- Updated dependencies [ada802b]
- jazz-tools@0.10.6
- jazz-browser@0.10.6
- jazz-vue@0.10.6
## 0.0.52
### Patch Changes

View File

@@ -1,6 +1,6 @@
{
"name": "todo-vue",
"version": "0.0.52",
"version": "0.0.53",
"private": true,
"type": "module",
"scripts": {

View File

@@ -1,5 +1,14 @@
# jazz-example-todo
## 0.0.167
### Patch Changes
- Updated dependencies [1d71ca1]
- Updated dependencies [ada802b]
- jazz-react@0.10.6
- jazz-tools@0.10.6
## 0.0.166
### Patch Changes

View File

@@ -1,7 +1,7 @@
{
"name": "jazz-example-todo",
"private": true,
"version": "0.0.166",
"version": "0.0.167",
"type": "module",
"scripts": {
"dev": "vite",
@@ -16,8 +16,8 @@
"@radix-ui/react-toast": "^1.1.4",
"class-variance-authority": "^0.7.0",
"clsx": "^2.0.0",
"jazz-react": "workspace:0.10.5",
"jazz-tools": "workspace:0.10.5",
"jazz-react": "workspace:0.10.6",
"jazz-tools": "workspace:0.10.6",
"lucide-react": "^0.274.0",
"qrcode": "^1.5.3",
"react": "^18.3.1",

View File

@@ -1,5 +1,14 @@
# version-history
## 0.0.45
### Patch Changes
- Updated dependencies [1d71ca1]
- Updated dependencies [ada802b]
- jazz-react@0.10.6
- jazz-tools@0.10.6
## 0.0.44
### Patch Changes

View File

@@ -1,7 +1,7 @@
{
"name": "version-history",
"private": true,
"version": "0.0.44",
"version": "0.0.45",
"type": "module",
"scripts": {
"dev": "vite",

6
flake.lock generated
View File

@@ -20,11 +20,11 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1737885589,
"narHash": "sha256-Zf0hSrtzaM1DEz8//+Xs51k/wdSajticVrATqDrfQjg=",
"lastModified": 1739580444,
"narHash": "sha256-+/bSz4EAVbqz8/HsIGLroF8aNaO8bLRL7WfACN+24g4=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "852ff1d9e153d8875a83602e03fdef8a63f0ecf8",
"rev": "8bb37161a0488b89830168b81c48aed11569cb93",
"type": "github"
},
"original": {

View File

@@ -16,15 +16,19 @@
{
devShells.default = pkgs.mkShell {
buildInputs = with pkgs; [
# General development
git
turbo
# JS development
nodejs_22
nodePackages.pnpm
git
];
shellHook = ''
echo ""
echo "Welcome to the Jazz development environment!"
echo "Run 'pnpm install' to install the dependencies."
echo "Run 'pnpm install' to install dependencies."
echo ""
'';
};

View File

@@ -8,6 +8,7 @@ import {
ChevronRight,
CodeIcon,
CopyIcon,
FileLock2Icon,
FileTextIcon,
FingerprintIcon,
FolderArchiveIcon,
@@ -61,6 +62,7 @@ const icons = {
newsletter: MailIcon,
offline: WifiOffIcon,
package: BoxIcon,
permissions: FileLock2Icon,
social: UsersIcon,
spatialPresence: MousePointerSquareDashedIcon,
tableOfContents: ScrollIcon,
@@ -117,7 +119,7 @@ export function Icon({
className?: string;
} & React.SVGProps<SVGSVGElement>) {
if (!icon && (!name || !icons.hasOwnProperty(name))) {
throw new Error(`Icon not found`);
throw new Error(`Icon not found: ${name}`);
}
// @ts-ignore

View File

@@ -229,7 +229,10 @@ async function readMdxContent(url) {
const relativePath = url.replace(/^\/docs\/?/, "");
// Base directory for docs
const baseDir = path.join(process.cwd(), "app/docs/[framework]/[...slug]");
const baseDir = path.join(
process.cwd(),
"app/(docs)/docs/[framework]/[...slug]",
);
// If it's a directory, try to read all framework variants
const fullPath = path.join(baseDir, relativePath);
@@ -300,7 +303,6 @@ async function generateDetailedDocs(docs) {
for (const page of section.pages) {
output.push(`#### ${page.title}\n`);
const content = await readMdxContent(page.url);
console.log(content);
if (content) {
// If the content contains framework-specific implementations, they're already properly formatted
// Otherwise, just add the content directly

View File

@@ -0,0 +1,24 @@
import assert from "node:assert";
import fs from "node:fs/promises";
import path from "node:path";
import { test } from "node:test";
test("Size test", async () => {
const filePath = path.join(process.cwd(), "public", "llms-full.txt");
const stats = await fs.stat(filePath);
assert.ok(
stats.size > 100 * 1024,
"llms-full.txt should be larger than 100kb", // Somewhat arbitrary, but it's a good sanity check
);
});
test("Content test", async () => {
const filePath = path.join(process.cwd(), "public", "llms-full.txt");
const content = await fs.readFile(filePath, "utf-8");
assert.ok(
content.includes(
'Jazz authentication is based on cryptographic keys ("Account keys").',
),
"Should contain authentication message", // From authentication, it's unlikely to change much
);
});

View File

@@ -13,7 +13,9 @@
"generate:docs": "node generate-docs/typedocs.mjs --build",
"generate:llm-docs:all": "pnpm run generate:llm-docs:concise && pnpm run generate:llm-docs:full",
"generate:llm-docs:concise": "node generate-docs/llms.mjs",
"generate:llm-docs:full": "node generate-docs/llms-full.mjs"
"generate:llm-docs:full": "node generate-docs/llms-full.mjs",
"test": "pnpm run test:llm-docs",
"test:llm-docs": "node generate-docs/llms-full.test.mjs"
},
"packageManager": "pnpm@9.14.0",
"dependencies": {

View File

@@ -7,7 +7,7 @@
},
"build:generate-docs": {
"inputs": ["../../../packages/*/src/**"],
"outputs": ["typedoc/**"],
"outputs": ["typedoc/**", "public/llms.txt", "public/llms-full.txt"],
"dependsOn": ["^build"]
},
"dev": {

View File

@@ -1,5 +1,13 @@
# cojson-storage-indexeddb
## 0.10.6
### Patch Changes
- Updated dependencies [5c76e37]
- cojson@0.10.6
- cojson-storage@0.10.6
## 0.10.4
### Patch Changes

View File

@@ -1,6 +1,6 @@
{
"name": "cojson-storage-indexeddb",
"version": "0.10.4",
"version": "0.10.6",
"main": "dist/index.js",
"type": "module",
"types": "src/index.ts",

View File

@@ -1,5 +1,13 @@
# cojson-storage-sqlite
## 0.8.64
### Patch Changes
- Updated dependencies [5c76e37]
- cojson@0.10.6
- cojson-storage@0.10.6
## 0.8.63
### Patch Changes

View File

@@ -1,7 +1,7 @@
{
"name": "cojson-storage-rn-sqlite",
"type": "module",
"version": "0.8.63",
"version": "0.8.64",
"main": "dist/index.js",
"types": "src/index.ts",
"license": "MIT",

View File

@@ -1,5 +1,13 @@
# cojson-storage-sqlite
## 0.10.6
### Patch Changes
- Updated dependencies [5c76e37]
- cojson@0.10.6
- cojson-storage@0.10.6
## 0.10.4
### Patch Changes

View File

@@ -1,13 +1,13 @@
{
"name": "cojson-storage-sqlite",
"type": "module",
"version": "0.10.4",
"version": "0.10.6",
"main": "dist/index.js",
"types": "src/index.ts",
"license": "MIT",
"dependencies": {
"better-sqlite3": "^11.7.0",
"cojson": "workspace:0.10.4",
"cojson": "workspace:0.10.6",
"cojson-storage": "workspace:*"
},
"devDependencies": {

View File

@@ -1,5 +1,12 @@
# cojson-storage
## 0.10.6
### Patch Changes
- Updated dependencies [5c76e37]
- cojson@0.10.6
## 0.10.4
### Patch Changes

View File

@@ -1,6 +1,6 @@
{
"name": "cojson-storage",
"version": "0.10.4",
"version": "0.10.6",
"main": "dist/index.js",
"type": "module",
"types": "src/index.ts",

View File

@@ -1,5 +1,12 @@
# cojson-transport-nodejs-ws
## 0.10.6
### Patch Changes
- Updated dependencies [5c76e37]
- cojson@0.10.6
## 0.10.4
### Patch Changes

View File

@@ -1,7 +1,7 @@
{
"name": "cojson-transport-ws",
"type": "module",
"version": "0.10.4",
"version": "0.10.6",
"main": "dist/index.js",
"types": "src/index.ts",
"license": "MIT",

View File

@@ -1,5 +1,11 @@
# cojson
## 0.10.6
### Patch Changes
- 5c76e37: Ports Wasm crypto functions to use exported library `jazz-crypto-rs`
## 0.10.4
### Patch Changes

View File

@@ -25,20 +25,19 @@
},
"type": "module",
"license": "MIT",
"version": "0.10.4",
"version": "0.10.6",
"devDependencies": {
"@opentelemetry/sdk-metrics": "^1.29.0",
"typescript": "~5.6.2",
"vitest": "3.0.5"
},
"dependencies": {
"@hazae41/berith": "^1.2.6",
"@noble/ciphers": "^0.1.3",
"@noble/curves": "^1.3.0",
"@noble/hashes": "^1.4.0",
"@opentelemetry/api": "^1.0.0",
"@scure/base": "1.2.1",
"hash-wasm": "^4.9.0",
"jazz-crypto-rs": "0.0.3",
"neverthrow": "^7.0.1",
"queueueue": "^4.1.2"
},

View File

@@ -1,5 +1,4 @@
import { xsalsa20, xsalsa20_poly1305 } from "@noble/ciphers/salsa";
import { randomBytes } from "@noble/ciphers/webcrypto/utils";
import { ed25519, x25519 } from "@noble/curves/ed25519";
import { blake3 } from "@noble/hashes/blake3";
import { base58 } from "@scure/base";
@@ -24,21 +23,24 @@ import {
type Blake3State = ReturnType<typeof blake3.create>;
/**
* Pure JavaScript implementation of the CryptoProvider interface using noble-curves and noble-ciphers libraries.
* This provides a fallback implementation that doesn't require WebAssembly, offering:
* - Signing/verifying (Ed25519)
* - Encryption/decryption (XSalsa20)
* - Sealing/unsealing (X25519 + XSalsa20-Poly1305)
* - Hashing (BLAKE3)
*/
export class PureJSCrypto extends CryptoProvider<Blake3State> {
static async create(): Promise<PureJSCrypto> {
return new PureJSCrypto();
}
randomBytes(length: number): Uint8Array {
return randomBytes(length);
}
emptyBlake3State(): Blake3State {
return blake3.create({});
}
// eslint-disable-next-line @typescript-eslint/no-explicit-any
cloneBlake3State(state: any): Blake3State {
cloneBlake3State(state: Blake3State): Blake3State {
return state.clone();
}
@@ -61,6 +63,14 @@ export class PureJSCrypto extends CryptoProvider<Blake3State> {
return state.clone().digest();
}
generateNonce(input: Uint8Array): Uint8Array {
return this.blake3HashOnce(input).slice(0, 24);
}
private generateJsonNonce(material: JsonValue): Uint8Array {
return this.generateNonce(textEncoder.encode(stableStringify(material)));
}
newEd25519SigningKey(): Uint8Array {
return ed25519.utils.randomPrivateKey();
}
@@ -109,9 +119,7 @@ export class PureJSCrypto extends CryptoProvider<Blake3State> {
const keySecretBytes = base58.decode(
keySecret.substring("keySecret_z".length),
);
const nOnce = this.blake3HashOnce(
textEncoder.encode(stableStringify(nOnceMaterial)),
).slice(0, 24);
const nOnce = this.generateJsonNonce(nOnceMaterial);
const plaintext = textEncoder.encode(stableStringify(value));
const ciphertext = xsalsa20(keySecretBytes, nOnce, plaintext);
@@ -126,9 +134,7 @@ export class PureJSCrypto extends CryptoProvider<Blake3State> {
const keySecretBytes = base58.decode(
keySecret.substring("keySecret_z".length),
);
const nOnce = this.blake3HashOnce(
textEncoder.encode(stableStringify(nOnceMaterial)),
).slice(0, 24);
const nOnce = this.generateJsonNonce(nOnceMaterial);
const ciphertext = base64URLtoBytes(
encrypted.substring("encrypted_U".length),
@@ -149,9 +155,7 @@ export class PureJSCrypto extends CryptoProvider<Blake3State> {
to: SealerID;
nOnceMaterial: { in: RawCoID; tx: TransactionID };
}): Sealed<T> {
const nOnce = this.blake3HashOnce(
textEncoder.encode(stableStringify(nOnceMaterial)),
).slice(0, 24);
const nOnce = this.generateJsonNonce(nOnceMaterial);
const sealerPub = base58.decode(to.substring("sealer_z".length));
@@ -174,9 +178,7 @@ export class PureJSCrypto extends CryptoProvider<Blake3State> {
from: SealerID,
nOnceMaterial: { in: RawCoID; tx: TransactionID },
): T | undefined {
const nOnce = this.blake3HashOnce(
textEncoder.encode(stableStringify(nOnceMaterial)),
).slice(0, 24);
const nOnce = this.generateJsonNonce(nOnceMaterial);
const sealerPriv = base58.decode(sealer.substring("sealerSecret_z".length));

View File

@@ -1,16 +1,19 @@
import {
Ed25519Signature,
Ed25519SigningKey,
Ed25519VerifyingKey,
Memory,
X25519PublicKey,
X25519StaticSecret,
initBundledOnce,
} from "@hazae41/berith";
import { xsalsa20, xsalsa20_poly1305 } from "@noble/ciphers/salsa";
import { randomBytes } from "@noble/ciphers/webcrypto/utils";
import { base58 } from "@scure/base";
import { createBLAKE3 } from "hash-wasm";
Blake3Hasher,
blake3_empty_state,
blake3_hash_once,
blake3_hash_once_with_context,
decrypt,
encrypt,
get_sealer_id,
get_signer_id,
new_ed25519_signing_key,
new_x25519_private_key,
seal,
sign,
unseal,
verify,
} from "jazz-crypto-rs";
import { base64URLtoBytes, bytesToBase64url } from "../base64url.js";
import { RawCoID, TransactionID } from "../ids.js";
import { Stringified, stableStringify } from "../jsonStringify.js";
@@ -30,103 +33,82 @@ import {
textEncoder,
} from "./crypto.js";
export class WasmCrypto extends CryptoProvider<Uint8Array> {
private constructor(
public blake3Instance: Awaited<ReturnType<typeof createBLAKE3>>,
) {
type Blake3State = Blake3Hasher;
/**
* WebAssembly implementation of the CryptoProvider interface using jazz-crypto-rs.
* This provides the primary implementation using WebAssembly for optimal performance, offering:
* - Signing/verifying (Ed25519)
* - Encryption/decryption (XSalsa20)
* - Sealing/unsealing (X25519 + XSalsa20-Poly1305)
* - Hashing (BLAKE3)
*/
export class WasmCrypto extends CryptoProvider<Blake3State> {
private constructor() {
super();
}
static async create(): Promise<WasmCrypto> {
return Promise.all([createBLAKE3(), initBundledOnce()]).then(
([blake3instance]) => new WasmCrypto(blake3instance),
);
return new WasmCrypto();
}
randomBytes(length: number): Uint8Array {
return randomBytes(length);
emptyBlake3State(): Blake3State {
return blake3_empty_state();
}
emptyBlake3State(): Uint8Array {
return this.blake3Instance.init().save();
}
cloneBlake3State(state: Uint8Array): Uint8Array {
return this.blake3Instance.load(state).save();
cloneBlake3State(state: Blake3State): Blake3State {
return state.clone();
}
blake3HashOnce(data: Uint8Array) {
return this.blake3Instance.init().update(data).digest("binary");
return blake3_hash_once(data);
}
blake3HashOnceWithContext(
data: Uint8Array,
{ context }: { context: Uint8Array },
) {
return this.blake3Instance
.init()
.update(context)
.update(data)
.digest("binary");
return blake3_hash_once_with_context(data, context);
}
blake3IncrementalUpdate(state: Uint8Array, data: Uint8Array): Uint8Array {
return this.blake3Instance.load(state).update(data).save();
blake3IncrementalUpdate(state: Blake3State, data: Uint8Array): Blake3State {
state.update(data);
return state;
}
blake3DigestForState(state: Uint8Array): Uint8Array {
return this.blake3Instance.load(state).digest("binary");
blake3DigestForState(state: Blake3State): Uint8Array {
return state.finalize();
}
newEd25519SigningKey(): Uint8Array {
return new Ed25519SigningKey().to_bytes().copyAndDispose();
return new_ed25519_signing_key();
}
getSignerID(secret: SignerSecret): SignerID {
return `signer_z${base58.encode(
Ed25519SigningKey.from_bytes(
new Memory(base58.decode(secret.substring("signerSecret_z".length))),
)
.public()
.to_bytes()
.copyAndDispose(),
)}`;
return get_signer_id(textEncoder.encode(secret)) as SignerID;
}
sign(secret: SignerSecret, message: JsonValue): Signature {
const signature = Ed25519SigningKey.from_bytes(
new Memory(base58.decode(secret.substring("signerSecret_z".length))),
)
.sign(new Memory(textEncoder.encode(stableStringify(message))))
.to_bytes()
.copyAndDispose();
return `signature_z${base58.encode(signature)}`;
return sign(
textEncoder.encode(stableStringify(message)),
textEncoder.encode(secret),
) as Signature;
}
verify(signature: Signature, message: JsonValue, id: SignerID): boolean {
return new Ed25519VerifyingKey(
new Memory(base58.decode(id.substring("signer_z".length))),
).verify(
new Memory(textEncoder.encode(stableStringify(message))),
new Ed25519Signature(
new Memory(base58.decode(signature.substring("signature_z".length))),
),
return verify(
textEncoder.encode(signature),
textEncoder.encode(stableStringify(message)),
textEncoder.encode(id),
);
}
newX25519StaticSecret(): Uint8Array {
return new X25519StaticSecret().to_bytes().copyAndDispose();
return new_x25519_private_key();
}
getSealerID(secret: SealerSecret): SealerID {
return `sealer_z${base58.encode(
X25519StaticSecret.from_bytes(
new Memory(base58.decode(secret.substring("sealerSecret_z".length))),
)
.to_public()
.to_bytes()
.copyAndDispose(),
)}`;
return get_sealer_id(textEncoder.encode(secret)) as SealerID;
}
encrypt<T extends JsonValue, N extends JsonValue>(
@@ -134,16 +116,13 @@ export class WasmCrypto extends CryptoProvider<Uint8Array> {
keySecret: KeySecret,
nOnceMaterial: N,
): Encrypted<T, N> {
const keySecretBytes = base58.decode(
keySecret.substring("keySecret_z".length),
);
const nOnce = this.blake3HashOnce(
textEncoder.encode(stableStringify(nOnceMaterial)),
).slice(0, 24);
const plaintext = textEncoder.encode(stableStringify(value));
const ciphertext = xsalsa20(keySecretBytes, nOnce, plaintext);
return `encrypted_U${bytesToBase64url(ciphertext)}` as Encrypted<T, N>;
return `encrypted_U${bytesToBase64url(
encrypt(
textEncoder.encode(stableStringify(value)),
keySecret,
textEncoder.encode(stableStringify(nOnceMaterial)),
),
)}` as Encrypted<T, N>;
}
decryptRaw<T extends JsonValue, N extends JsonValue>(
@@ -151,19 +130,13 @@ export class WasmCrypto extends CryptoProvider<Uint8Array> {
keySecret: KeySecret,
nOnceMaterial: N,
): Stringified<T> {
const keySecretBytes = base58.decode(
keySecret.substring("keySecret_z".length),
);
const nOnce = this.blake3HashOnce(
textEncoder.encode(stableStringify(nOnceMaterial)),
).slice(0, 24);
const ciphertext = base64URLtoBytes(
encrypted.substring("encrypted_U".length),
);
const plaintext = xsalsa20(keySecretBytes, nOnce, ciphertext);
return textDecoder.decode(plaintext) as Stringified<T>;
return textDecoder.decode(
decrypt(
base64URLtoBytes(encrypted.substring("encrypted_U".length)),
keySecret,
textEncoder.encode(stableStringify(nOnceMaterial)),
),
) as Stringified<T>;
}
seal<T extends JsonValue>({
@@ -177,26 +150,14 @@ export class WasmCrypto extends CryptoProvider<Uint8Array> {
to: SealerID;
nOnceMaterial: { in: RawCoID; tx: TransactionID };
}): Sealed<T> {
const nOnce = this.blake3HashOnce(
textEncoder.encode(stableStringify(nOnceMaterial)),
).slice(0, 24);
const sealerPub = base58.decode(to.substring("sealer_z".length));
const senderPriv = base58.decode(from.substring("sealerSecret_z".length));
const plaintext = textEncoder.encode(stableStringify(message));
const sharedSecret = X25519StaticSecret.from_bytes(new Memory(senderPriv))
.diffie_hellman(X25519PublicKey.from_bytes(new Memory(sealerPub)))
.to_bytes()
.copyAndDispose();
const sealedBytes = xsalsa20_poly1305(sharedSecret, nOnce).encrypt(
plaintext,
);
return `sealed_U${bytesToBase64url(sealedBytes)}` as Sealed<T>;
return `sealed_U${bytesToBase64url(
seal(
textEncoder.encode(stableStringify(message)),
from,
to,
textEncoder.encode(stableStringify(nOnceMaterial)),
),
)}` as Sealed<T>;
}
unseal<T extends JsonValue>(
@@ -205,31 +166,21 @@ export class WasmCrypto extends CryptoProvider<Uint8Array> {
from: SealerID,
nOnceMaterial: { in: RawCoID; tx: TransactionID },
): T | undefined {
const nOnce = this.blake3HashOnce(
textEncoder.encode(stableStringify(nOnceMaterial)),
).slice(0, 24);
const sealerPriv = base58.decode(sealer.substring("sealerSecret_z".length));
const senderPub = base58.decode(from.substring("sealer_z".length));
const sealedBytes = base64URLtoBytes(sealed.substring("sealed_U".length));
const sharedSecret = X25519StaticSecret.from_bytes(new Memory(sealerPriv))
.diffie_hellman(X25519PublicKey.from_bytes(new Memory(senderPub)))
.to_bytes()
.copyAndDispose();
const plaintext = xsalsa20_poly1305(sharedSecret, nOnce).decrypt(
sealedBytes,
const plaintext = textDecoder.decode(
unseal(
base64URLtoBytes(sealed.substring("sealed_U".length)),
sealer,
from,
textEncoder.encode(stableStringify(nOnceMaterial)),
),
);
try {
return JSON.parse(textDecoder.decode(plaintext));
return JSON.parse(plaintext) as T;
} catch (e) {
logger.error(
"Failed to decrypt/parse sealed message: " + (e as Error)?.message,
);
return undefined;
}
}
}

View File

@@ -1,3 +1,4 @@
import { randomBytes } from "@noble/ciphers/webcrypto/utils";
import { base58 } from "@scure/base";
import { RawAccountID } from "../coValues/account.js";
import { AgentID, RawCoID, TransactionID } from "../ids.js";
@@ -21,7 +22,9 @@ export const textDecoder = new TextDecoder();
// eslint-disable-next-line @typescript-eslint/no-explicit-any
export abstract class CryptoProvider<Blake3State = any> {
abstract randomBytes(length: number): Uint8Array;
randomBytes(length: number): Uint8Array {
return randomBytes(length);
}
abstract newEd25519SigningKey(): Uint8Array;

View File

@@ -2,7 +2,7 @@ import { xsalsa20_poly1305 } from "@noble/ciphers/salsa";
import { x25519 } from "@noble/curves/ed25519";
import { blake3 } from "@noble/hashes/blake3";
import { base58, base64url } from "@scure/base";
import { expect, test } from "vitest";
import { expect, test, vi } from "vitest";
import { PureJSCrypto } from "../crypto/PureJSCrypto.js";
import { WasmCrypto } from "../crypto/WasmCrypto.js";
import { SessionID } from "../ids.js";
@@ -186,4 +186,46 @@ const pureJSCrypto = await PureJSCrypto.create();
expect(decrypted).toBeUndefined();
});
test(`Unsealing malformed JSON logs error [${name}]`, () => {
const data = "not valid json";
const sender = crypto.newRandomSealer();
const sealer = crypto.newRandomSealer();
const consoleSpy = vi.spyOn(console, "error").mockImplementation(() => {});
const nOnceMaterial = {
in: "co_zTEST",
tx: { sessionID: "co_zTEST_session_zTEST" as SessionID, txIndex: 0 },
} as const;
// Create a sealed message with invalid JSON
const nOnce = blake3(
new TextEncoder().encode(stableStringify(nOnceMaterial)),
).slice(0, 24);
const senderPriv = base58.decode(sender.substring("sealerSecret_z".length));
const sealerPub = base58.decode(
crypto.getSealerID(sealer).substring("sealer_z".length),
);
const plaintext = new TextEncoder().encode(data);
const sharedSecret = x25519.getSharedSecret(senderPriv, sealerPub);
const sealedBytes = xsalsa20_poly1305(sharedSecret, nOnce).encrypt(
plaintext,
);
const sealed = `sealed_U${base64url.encode(sealedBytes)}`;
const result = crypto.unseal(
sealed as any,
sealer,
crypto.getSealerID(sender),
nOnceMaterial,
);
expect(result).toBeUndefined();
expect(consoleSpy.mock.lastCall?.[0]).toContain(
"Failed to decrypt/parse sealed message",
);
});
});

View File

@@ -7,7 +7,7 @@ import { SessionID } from "../ids.js";
describe.each([
{ impl: await WasmCrypto.create(), name: "Wasm" },
{ impl: await PureJSCrypto.create(), name: "PureJS" },
])("Crypto $name", ({ impl }) => {
])("$name implementation", ({ impl, name }) => {
test("randomBytes", () => {
expect(impl.randomBytes(32).length).toEqual(32);
});

View File

@@ -1,43 +1,49 @@
# hash-slash
## 0.2.2
### Patch Changes
- 1d71ca1: Add React 19 to the peer dependencies
## 0.2.1
### Patch Changes
- Parent-frame friendlier naviation
- Parent-frame friendlier naviation
## 0.2.0
### Minor Changes
- e299c3e: New simplified API
- e299c3e: New simplified API
### Patch Changes
- 60d5ca2: Allow fall-through of routes
- 69ac514: Use effect schema much less
- 627d895: Get rid of Co namespace
- 60d5ca2: Allow fall-through of routes
- 69ac514: Use effect schema much less
- 627d895: Get rid of Co namespace
## 0.2.0-alpha.3
### Patch Changes
- Allow fall-through of routes
- Allow fall-through of routes
## 0.2.0-alpha.2
### Patch Changes
- Get rid of Co namespace
- Get rid of Co namespace
## 0.2.0-alpha.1
### Patch Changes
- Use effect schema much less
- Use effect schema much less
## 0.2.0-alpha.0
### Minor Changes
- New simplified API
- New simplified API

View File

@@ -1,6 +1,6 @@
{
"name": "hash-slash",
"version": "0.2.1",
"version": "0.2.2",
"type": "module",
"main": "dist/index.js",
"types": "src/index.tsx",
@@ -11,7 +11,7 @@
"typescript": "~5.6.2"
},
"peerDependencies": {
"react": "17 - 18"
"react": "^17.0.0 || ^18.0.0 || ^19.0.0"
},
"scripts": {
"dev": "tsc --watch --sourceMap --outDir dist",

View File

@@ -1,5 +1,15 @@
# jazz-browser-media-images
## 0.10.6
### Patch Changes
- Updated dependencies [5c76e37]
- Updated dependencies [ada802b]
- cojson@0.10.6
- jazz-tools@0.10.6
- jazz-browser@0.10.6
## 0.10.5
### Patch Changes

View File

@@ -1,14 +1,14 @@
{
"name": "jazz-auth-clerk",
"version": "0.10.5",
"version": "0.10.6",
"type": "module",
"main": "dist/index.js",
"types": "src/index.ts",
"license": "MIT",
"dependencies": {
"cojson": "workspace:0.10.4",
"jazz-browser": "workspace:0.10.5",
"jazz-tools": "workspace:0.10.5"
"cojson": "workspace:0.10.6",
"jazz-browser": "workspace:0.10.6",
"jazz-tools": "workspace:0.10.6"
},
"scripts": {
"format-and-lint": "biome check .",

View File

@@ -1,5 +1,13 @@
# jazz-browser-media-images
## 0.10.6
### Patch Changes
- Updated dependencies [ada802b]
- jazz-tools@0.10.6
- jazz-browser@0.10.6
## 0.10.5
### Patch Changes

View File

@@ -1,6 +1,6 @@
{
"name": "jazz-browser-media-images",
"version": "0.10.5",
"version": "0.10.6",
"type": "module",
"main": "dist/index.js",
"types": "src/index.ts",
@@ -8,8 +8,8 @@
"dependencies": {
"@types/image-blob-reduce": "^4.1.1",
"image-blob-reduce": "^4.1.0",
"jazz-browser": "workspace:0.10.5",
"jazz-tools": "workspace:0.10.5",
"jazz-browser": "workspace:0.10.6",
"jazz-tools": "workspace:0.10.6",
"pica": "^9.0.1",
"typescript": "~5.6.2"
},

View File

@@ -1,5 +1,16 @@
# jazz-browser
## 0.10.6
### Patch Changes
- Updated dependencies [5c76e37]
- Updated dependencies [ada802b]
- cojson@0.10.6
- jazz-tools@0.10.6
- cojson-storage-indexeddb@0.10.6
- cojson-transport-ws@0.10.6
## 0.10.5
### Patch Changes

View File

@@ -1,6 +1,6 @@
{
"name": "jazz-browser",
"version": "0.10.5",
"version": "0.10.6",
"type": "module",
"main": "dist/index.js",
"types": "src/index.ts",

View File

@@ -1,5 +1,16 @@
# jazz-inspector
## 0.10.6
### Patch Changes
- Updated dependencies [1d71ca1]
- Updated dependencies [5c76e37]
- Updated dependencies [ada802b]
- jazz-react-core@0.10.6
- cojson@0.10.6
- jazz-tools@0.10.6
## 0.10.5
### Patch Changes

View File

@@ -1,6 +1,6 @@
{
"name": "jazz-inspector",
"version": "0.10.5",
"version": "0.10.6",
"type": "module",
"main": "./dist/app.js",
"types": "./dist/app.d.ts",

View File

@@ -1,5 +1,15 @@
# jazz-autosub
## 0.10.6
### Patch Changes
- Updated dependencies [5c76e37]
- Updated dependencies [ada802b]
- cojson@0.10.6
- jazz-tools@0.10.6
- cojson-transport-ws@0.10.6
## 0.10.5
### Patch Changes

View File

@@ -5,7 +5,7 @@
"types": "src/index.ts",
"type": "module",
"license": "MIT",
"version": "0.10.5",
"version": "0.10.6",
"dependencies": {
"cojson": "workspace:*",
"cojson-transport-ws": "workspace:*",

View File

@@ -1,5 +1,18 @@
# jazz-browser-media-images
## 0.10.6
### Patch Changes
- 1d71ca1: Add React 19 to the peer dependencies
- Updated dependencies [1d71ca1]
- Updated dependencies [5c76e37]
- Updated dependencies [ada802b]
- jazz-react@0.10.6
- cojson@0.10.6
- jazz-tools@0.10.6
- jazz-auth-clerk@0.10.6
## 0.10.5
### Patch Changes

View File

@@ -1,6 +1,6 @@
{
"name": "jazz-react-auth-clerk",
"version": "0.10.5",
"version": "0.10.6",
"type": "module",
"main": "dist/index.js",
"types": "src/index.tsx",
@@ -12,7 +12,7 @@
"jazz-tools": "workspace:*"
},
"peerDependencies": {
"react": "^18.2.0"
"react": "^17.0.0 || ^18.0.0 || ^19.0.0"
},
"scripts": {
"format-and-lint": "biome check .",

View File

@@ -1,5 +1,15 @@
# jazz-react-core
## 0.10.6
### Patch Changes
- 1d71ca1: Add React 19 to the peer dependencies
- Updated dependencies [5c76e37]
- Updated dependencies [ada802b]
- cojson@0.10.6
- jazz-tools@0.10.6
## 0.10.5
### Patch Changes

View File

@@ -1,6 +1,6 @@
{
"name": "jazz-react-core",
"version": "0.10.5",
"version": "0.10.6",
"type": "module",
"main": "dist/index.js",
"types": "src/index.ts",
@@ -30,8 +30,8 @@
"typescript": "~5.6.2"
},
"peerDependencies": {
"react": "^17.0.0 || ^18.0.0",
"react-dom": "^17.0.0 || ^18.0.0"
"react": "^17.0.0 || ^18.0.0 || ^19.0.0",
"react-dom": "^17.0.0 || ^18.0.0 || ^19.0.0"
},
"scripts": {
"dev": "tsc --watch --sourceMap --outDir dist",

View File

@@ -1,5 +1,16 @@
# jazz-react-native-auth-clerk
## 0.10.6
### Patch Changes
- Updated dependencies [5c76e37]
- Updated dependencies [ada802b]
- cojson@0.10.6
- jazz-tools@0.10.6
- jazz-react-native@0.10.6
- jazz-auth-clerk@0.10.6
## 0.10.5
### Patch Changes

View File

@@ -1,6 +1,6 @@
{
"name": "jazz-react-native-auth-clerk",
"version": "0.10.5",
"version": "0.10.6",
"type": "module",
"main": "dist/index.js",
"types": "src/index.tsx",

View File

@@ -1,5 +1,12 @@
# jazz-browser-media-images
## 0.10.6
### Patch Changes
- Updated dependencies [ada802b]
- jazz-tools@0.10.6
## 0.10.5
### Patch Changes

View File

@@ -1,6 +1,6 @@
{
"name": "jazz-react-native-media-images",
"version": "0.10.5",
"version": "0.10.6",
"type": "module",
"main": "dist/index.js",
"types": "src/index.ts",

View File

@@ -1,5 +1,18 @@
# jazz-browser
## 0.10.6
### Patch Changes
- Updated dependencies [1d71ca1]
- Updated dependencies [5c76e37]
- Updated dependencies [ada802b]
- jazz-react-core@0.10.6
- cojson@0.10.6
- jazz-tools@0.10.6
- cojson-storage-rn-sqlite@0.8.64
- cojson-transport-ws@0.10.6
## 0.10.5
### Patch Changes

View File

@@ -1,6 +1,6 @@
{
"name": "jazz-react-native",
"version": "0.10.5",
"version": "0.10.6",
"type": "module",
"main": "./dist/index.js",
"module": "./dist/index.js",

View File

@@ -1,5 +1,18 @@
# jazz-react
## 0.10.6
### Patch Changes
- 1d71ca1: Add React 19 to the peer dependencies
- Updated dependencies [1d71ca1]
- Updated dependencies [5c76e37]
- Updated dependencies [ada802b]
- jazz-react-core@0.10.6
- cojson@0.10.6
- jazz-tools@0.10.6
- jazz-browser@0.10.6
## 0.10.5
### Patch Changes

View File

@@ -1,6 +1,6 @@
{
"name": "jazz-react",
"version": "0.10.5",
"version": "0.10.6",
"type": "module",
"main": "dist/index.js",
"types": "src/index.ts",
@@ -17,10 +17,10 @@
},
"dependencies": {
"@scure/bip39": "^1.3.0",
"cojson": "workspace:0.10.4",
"jazz-browser": "workspace:0.10.5",
"cojson": "workspace:0.10.6",
"jazz-browser": "workspace:0.10.6",
"jazz-react-core": "workspace:*",
"jazz-tools": "workspace:0.10.5"
"jazz-tools": "workspace:0.10.6"
},
"devDependencies": {
"@testing-library/dom": "^10.4.0",
@@ -32,8 +32,8 @@
"typescript": "~5.6.2"
},
"peerDependencies": {
"react": "^17.0.0 || ^18.0.0",
"react-dom": "^17.0.0 || ^18.0.0"
"react": "^17.0.0 || ^18.0.0 || ^19.0.0",
"react-dom": "^17.0.0 || ^18.0.0 || ^19.0.0"
},
"scripts": {
"dev": "tsc --watch --sourceMap --outDir dist",

View File

@@ -1,5 +1,16 @@
# jazz-run
## 0.10.6
### Patch Changes
- Updated dependencies [5c76e37]
- Updated dependencies [ada802b]
- cojson@0.10.6
- jazz-tools@0.10.6
- cojson-storage-sqlite@0.10.6
- cojson-transport-ws@0.10.6
## 0.10.5
### Patch Changes

View File

@@ -3,7 +3,7 @@
"bin": "./dist/index.js",
"type": "module",
"license": "MIT",
"version": "0.10.5",
"version": "0.10.6",
"exports": {
"./startSyncServer": {
"import": "./dist/startSyncServer.js",
@@ -28,11 +28,11 @@
"@effect/printer-ansi": "^0.34.5",
"@effect/schema": "^0.71.1",
"@effect/typeclass": "^0.25.5",
"cojson": "workspace:0.10.4",
"cojson-storage-sqlite": "workspace:0.10.4",
"cojson-transport-ws": "workspace:0.10.4",
"cojson": "workspace:0.10.6",
"cojson-storage-sqlite": "workspace:0.10.6",
"cojson-transport-ws": "workspace:0.10.6",
"effect": "^3.6.5",
"jazz-tools": "workspace:0.10.5",
"jazz-tools": "workspace:0.10.6",
"ws": "^8.14.2"
},
"devDependencies": {

View File

@@ -1,5 +1,15 @@
# jazz-svelte
## 0.10.6
### Patch Changes
- Updated dependencies [5c76e37]
- Updated dependencies [ada802b]
- cojson@0.10.6
- jazz-tools@0.10.6
- jazz-browser@0.10.6
## 0.10.5
### Patch Changes

View File

@@ -1,6 +1,6 @@
{
"name": "jazz-svelte",
"version": "0.10.5",
"version": "0.10.6",
"scripts": {
"dev": "vite dev",
"build": "vite build && npm run package",

View File

@@ -1,5 +1,13 @@
# jazz-tools
## 0.10.6
### Patch Changes
- ada802b: Fix Clerk credentials migration
- Updated dependencies [5c76e37]
- cojson@0.10.6
## 0.10.5
### Patch Changes

View File

@@ -17,7 +17,7 @@
},
"type": "module",
"license": "MIT",
"version": "0.10.5",
"version": "0.10.6",
"dependencies": {
"@scure/bip39": "^1.3.0",
"cojson": "workspace:*"

View File

@@ -28,16 +28,50 @@ export class AuthSecretStorage {
if (!(await kvStore.get(STORAGE_KEY))) {
const demoAuthSecret = await kvStore.get("demo-auth-logged-in-secret");
if (demoAuthSecret) {
await kvStore.set(STORAGE_KEY, demoAuthSecret);
const parsed = JSON.parse(demoAuthSecret);
await kvStore.set(
STORAGE_KEY,
JSON.stringify({
accountID: parsed.accountID,
accountSecret: parsed.accountSecret,
provider: "demo",
}),
);
await kvStore.delete("demo-auth-logged-in-secret");
}
const clerkAuthSecret = await kvStore.get("jazz-clerk-auth");
if (clerkAuthSecret) {
await kvStore.set(STORAGE_KEY, clerkAuthSecret);
const parsed = JSON.parse(clerkAuthSecret);
await kvStore.set(
STORAGE_KEY,
JSON.stringify({
accountID: parsed.accountID,
accountSecret: parsed.secret,
provider: "clerk",
}),
);
await kvStore.delete("jazz-clerk-auth");
}
}
const value = await kvStore.get(STORAGE_KEY);
if (value) {
const parsed = JSON.parse(value);
if ("secret" in parsed) {
await kvStore.set(
STORAGE_KEY,
JSON.stringify({
accountID: parsed.accountID,
secretSeed: parsed.secretSeed,
accountSecret: parsed.secret,
provider: parsed.provider,
}),
);
}
}
}
async get(): Promise<AuthCredentials | null> {

View File

@@ -28,20 +28,52 @@ describe("AuthSecretStorage", () => {
await authSecretStorage.migrate();
expect(await kvStore.get("jazz-logged-in-secret")).toBe(demoSecret);
expect(await kvStore.get("jazz-logged-in-secret")).toBe(
JSON.stringify({
accountID: "demo123",
accountSecret: "secret123",
provider: "demo",
}),
);
expect(await kvStore.get("demo-auth-logged-in-secret")).toBeNull();
});
it("should migrate clerk auth secret", async () => {
const clerkSecret = JSON.stringify({
accountID: "clerk123",
accountSecret: "secret123",
secret: "secret123",
});
await kvStore.set("jazz-clerk-auth", clerkSecret);
await authSecretStorage.migrate();
expect(await kvStore.get("jazz-logged-in-secret")).toBe(clerkSecret);
expect(await kvStore.get("jazz-logged-in-secret")).toBe(
JSON.stringify({
accountID: "clerk123",
accountSecret: "secret123",
provider: "clerk",
}),
);
expect(await kvStore.get("jazz-clerk-auth")).toBeNull();
});
it("should migrate auth wrong secret key to accountSecret", async () => {
const clerkSecret = JSON.stringify({
accountID: "clerk123",
secret: "secret123",
provider: "clerk",
});
await kvStore.set("jazz-logged-in-secret", clerkSecret);
await authSecretStorage.migrate();
expect(await kvStore.get("jazz-logged-in-secret")).toBe(
JSON.stringify({
accountID: "clerk123",
accountSecret: "secret123",
provider: "clerk",
}),
);
expect(await kvStore.get("jazz-clerk-auth")).toBeNull();
});
});

View File

@@ -199,7 +199,6 @@ describe("ContextManager", () => {
test("the migration should be applied correctly on existing accounts ", async () => {
class AccountRoot extends CoMap {
value = co.string;
transferredRoot = co.optional.ref(AccountRoot);
}
let lastRootId: string | undefined;
@@ -236,6 +235,48 @@ describe("ContextManager", () => {
expect(me.root.id).toBe(lastRootId);
});
test("the migration should be applied correctly on existing accounts (2)", async () => {
class AccountRoot extends CoMap {
value = co.number;
}
class CustomAccount extends Account {
root = co.ref(AccountRoot);
async migrate(this: CustomAccount) {
if (this.root === undefined) {
this.root = AccountRoot.create({
value: 1,
});
} else {
const { root } = await this.ensureLoaded({ root: {} });
root.value = 2;
}
}
}
const customManager = new TestJazzContextManager<CustomAccount>();
// Create initial anonymous context
await customManager.createContext({
AccountSchema: CustomAccount,
});
const account = (
customManager.getCurrentValue() as JazzAuthContext<CustomAccount>
).me;
await customManager.authenticate({
accountID: account.id,
accountSecret: account._raw.core.node.account.agentSecret,
provider: "test",
});
const me = await CustomAccount.getMe().ensureLoaded({ root: {} });
expect(me.root.value).toBe(2);
});
test("onAnonymousAccountDiscarded should work on transfering data between accounts", async () => {
class AccountRoot extends CoMap {
value = co.string;

View File

@@ -1,5 +1,15 @@
# jazz-react
## 0.10.6
### Patch Changes
- Updated dependencies [5c76e37]
- Updated dependencies [ada802b]
- cojson@0.10.6
- jazz-tools@0.10.6
- jazz-browser@0.10.6
## 0.10.5
### Patch Changes

View File

@@ -1,6 +1,6 @@
{
"name": "jazz-vue",
"version": "0.10.5",
"version": "0.10.6",
"type": "module",
"main": "dist/index.js",
"types": "src/index.ts",

110
pnpm-lock.yaml generated
View File

@@ -471,7 +471,7 @@ importers:
specifier: workspace:*
version: link:../../packages/jazz-react
jazz-react-auth-clerk:
specifier: workspace:0.10.5
specifier: workspace:0.10.6
version: link:../../packages/jazz-react-auth-clerk
jazz-tools:
specifier: workspace:*
@@ -700,13 +700,13 @@ importers:
specifier: ^2.0.0
version: 2.1.1
cojson:
specifier: workspace:0.10.4
specifier: workspace:0.10.6
version: link:../../packages/cojson
cojson-transport-ws:
specifier: workspace:0.10.4
specifier: workspace:0.10.6
version: link:../../packages/cojson-transport-ws
hash-slash:
specifier: workspace:0.2.1
specifier: workspace:0.2.2
version: link:../../packages/hash-slash
lucide-react:
specifier: ^0.274.0
@@ -797,10 +797,10 @@ importers:
specifier: workspace:*
version: link:../../packages/jazz-inspector
jazz-react:
specifier: workspace:0.10.5
specifier: workspace:0.10.6
version: link:../../packages/jazz-react
jazz-tools:
specifier: workspace:0.10.5
specifier: workspace:0.10.6
version: link:../../packages/jazz-tools
lucide-react:
specifier: ^0.274.0
@@ -1039,10 +1039,10 @@ importers:
examples/password-manager:
dependencies:
jazz-react:
specifier: workspace:0.10.5
specifier: workspace:0.10.6
version: link:../../packages/jazz-react
jazz-tools:
specifier: workspace:0.10.5
specifier: workspace:0.10.6
version: link:../../packages/jazz-tools
react:
specifier: 18.3.1
@@ -1103,13 +1103,13 @@ importers:
specifier: ^2.0.0
version: 2.1.1
jazz-browser-media-images:
specifier: workspace:0.10.5
specifier: workspace:0.10.6
version: link:../../packages/jazz-browser-media-images
jazz-react:
specifier: workspace:0.10.5
specifier: workspace:0.10.6
version: link:../../packages/jazz-react
jazz-tools:
specifier: workspace:0.10.5
specifier: workspace:0.10.6
version: link:../../packages/jazz-tools
lucide-react:
specifier: ^0.274.0
@@ -1164,7 +1164,7 @@ importers:
specifier: ^3.0.1
version: 3.0.1
jazz-run:
specifier: workspace:0.10.5
specifier: workspace:0.10.6
version: link:../../packages/jazz-run
postcss:
specifier: ^8.4.27
@@ -1243,10 +1243,10 @@ importers:
specifier: ^2.0.0
version: 2.1.1
jazz-react:
specifier: workspace:0.10.5
specifier: workspace:0.10.6
version: link:../../packages/jazz-react
jazz-tools:
specifier: workspace:0.10.5
specifier: workspace:0.10.6
version: link:../../packages/jazz-tools
lucide-react:
specifier: ^0.274.0
@@ -1413,9 +1413,6 @@ importers:
packages/cojson:
dependencies:
'@hazae41/berith':
specifier: ^1.2.6
version: 1.2.6
'@noble/ciphers':
specifier: ^0.1.3
version: 0.1.4
@@ -1431,9 +1428,9 @@ importers:
'@scure/base':
specifier: 1.2.1
version: 1.2.1
hash-wasm:
specifier: ^4.9.0
version: 4.12.0
jazz-crypto-rs:
specifier: 0.0.3
version: 0.0.3
neverthrow:
specifier: ^7.0.1
version: 7.2.0
@@ -1508,7 +1505,7 @@ importers:
specifier: ^11.7.0
version: 11.7.0
cojson:
specifier: workspace:0.10.4
specifier: workspace:0.10.6
version: link:../cojson
cojson-storage:
specifier: workspace:*
@@ -1583,13 +1580,13 @@ importers:
packages/jazz-auth-clerk:
dependencies:
cojson:
specifier: workspace:0.10.4
specifier: workspace:0.10.6
version: link:../cojson
jazz-browser:
specifier: workspace:0.10.5
specifier: workspace:0.10.6
version: link:../jazz-browser
jazz-tools:
specifier: workspace:0.10.5
specifier: workspace:0.10.6
version: link:../jazz-tools
devDependencies:
typescript:
@@ -1627,10 +1624,10 @@ importers:
specifier: ^4.1.0
version: 4.1.0
jazz-browser:
specifier: workspace:0.10.5
specifier: workspace:0.10.6
version: link:../jazz-browser
jazz-tools:
specifier: workspace:0.10.5
specifier: workspace:0.10.6
version: link:../jazz-tools
pica:
specifier: ^9.0.1
@@ -1702,16 +1699,16 @@ importers:
specifier: ^1.3.0
version: 1.5.0
cojson:
specifier: workspace:0.10.4
specifier: workspace:0.10.6
version: link:../cojson
jazz-browser:
specifier: workspace:0.10.5
specifier: workspace:0.10.6
version: link:../jazz-browser
jazz-react-core:
specifier: workspace:*
version: link:../jazz-react-core
jazz-tools:
specifier: workspace:0.10.5
specifier: workspace:0.10.6
version: link:../jazz-tools
devDependencies:
'@testing-library/dom':
@@ -1894,19 +1891,19 @@ importers:
specifier: ^0.25.5
version: 0.25.8(effect@3.11.9)
cojson:
specifier: workspace:0.10.4
specifier: workspace:0.10.6
version: link:../cojson
cojson-storage-sqlite:
specifier: workspace:0.10.4
specifier: workspace:0.10.6
version: link:../cojson-storage-sqlite
cojson-transport-ws:
specifier: workspace:0.10.4
specifier: workspace:0.10.6
version: link:../cojson-transport-ws
effect:
specifier: ^3.6.5
version: 3.11.9
jazz-tools:
specifier: workspace:0.10.5
specifier: workspace:0.10.6
version: link:../jazz-tools
ws:
specifier: ^8.14.2
@@ -3637,18 +3634,6 @@ packages:
'@formkit/auto-animate@0.8.2':
resolution: {integrity: sha512-SwPWfeRa5veb1hOIBMdzI+73te5puUBHmqqaF1Bu7FjvxlYSz/kJcZKSa9Cg60zL0uRNeJL2SbRxV6Jp6Q1nFQ==}
'@hazae41/berith@1.2.6':
resolution: {integrity: sha512-TQLkisoolGD2kdSQVtTVXNwmsotA9dLmUgXcpHTNzssmN11Mp+vHVf4Myn3+Q4U18Na3UzGi6DZqogZFqjPPvg==}
'@hazae41/box@1.0.14':
resolution: {integrity: sha512-RevIMZBVRmp0BDkpBpL77sr3Rk7XdqzBZcw+UsfUT4JAly/sryM/NDzJa80sMyO6aERJkjHUQaxH5DYDznPhkw==}
'@hazae41/option@1.1.4':
resolution: {integrity: sha512-ZGAVkOJJw2YIeihG8PaWs4R3KDloCgWGNDPqbATvT3kTtoyU+dJmya/UCM2P+ZwCfWYpE7nGiYJbBTlpp929Qg==}
'@hazae41/result@1.3.2':
resolution: {integrity: sha512-X2RdjCC4DypMZFN3aZ7P5Zh8kEMN6SEqcMARRa/CraEU7Es/hj0yBh1Pt5eAYrRkpnWiE9+ohKSU4s7nL5L1gg==}
'@humanfs/core@0.19.1':
resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==}
engines: {node: '>=18.18.0'}
@@ -7475,9 +7460,6 @@ packages:
resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==}
engines: {node: '>= 0.4'}
hash-wasm@4.12.0:
resolution: {integrity: sha512-+/2B2rYLb48I/evdOIhP+K/DD2ca2fgBjp6O+GBEnCDk2e4rpeXIK8GvIyRPjTezgmWn9gmKwkQjjx6BtqDHVQ==}
hasown@2.0.2:
resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==}
engines: {node: '>= 0.4'}
@@ -7876,6 +7858,9 @@ packages:
jackspeak@3.4.3:
resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==}
jazz-crypto-rs@0.0.3:
resolution: {integrity: sha512-b8yDOUQCRoOdH1KrIQsAIdhZqXcOgpCLGY93/NZEWqimFeGGKAQY7KRXNQtXndKN0jC1y/TH8a8Vxsf0T0+yqQ==}
jest-changed-files@29.7.0:
resolution: {integrity: sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
@@ -13440,22 +13425,6 @@ snapshots:
'@formkit/auto-animate@0.8.2': {}
'@hazae41/berith@1.2.6':
dependencies:
'@hazae41/box': 1.0.14
'@hazae41/box@1.0.14':
dependencies:
'@hazae41/result': 1.3.2
'@hazae41/option@1.1.4':
dependencies:
'@hazae41/result': 1.3.2
'@hazae41/result@1.3.2':
dependencies:
'@hazae41/option': 1.1.4
'@humanfs/core@0.19.1': {}
'@humanfs/node@0.16.6':
@@ -17834,8 +17803,6 @@ snapshots:
dependencies:
has-symbols: 1.1.0
hash-wasm@4.12.0: {}
hasown@2.0.2:
dependencies:
function-bind: 1.1.2
@@ -18208,6 +18175,8 @@ snapshots:
optionalDependencies:
'@pkgjs/parseargs': 0.11.0
jazz-crypto-rs@0.0.3: {}
jest-changed-files@29.7.0:
dependencies:
execa: 5.1.1
@@ -21777,16 +21746,15 @@ snapshots:
dependencies:
vite: 6.0.11(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.37.0)(yaml@2.6.1)
vite-node@3.0.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.37.0)(yaml@2.6.1):
vite-node@3.0.5(@types/node@22.10.2)(lightningcss@1.29.1)(terser@5.37.0):
dependencies:
cac: 6.7.14
debug: 4.4.0
es-module-lexer: 1.6.0
pathe: 2.0.2
vite: 6.0.11(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.37.0)(yaml@2.6.1)
vite: 5.4.11(@types/node@22.10.2)(lightningcss@1.29.1)(terser@5.37.0)
transitivePeerDependencies:
- '@types/node'
- jiti
- less
- lightningcss
- sass
@@ -21795,8 +21763,6 @@ snapshots:
- sugarss
- supports-color
- terser
- tsx
- yaml
vite-plugin-dts@4.4.0(@types/node@22.10.2)(rollup@4.28.1)(typescript@5.6.3)(vite@6.0.11(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.37.0)(yaml@2.6.1)):
dependencies:
@@ -21922,7 +21888,7 @@ snapshots:
tinypool: 1.0.2
tinyrainbow: 2.0.0
vite: 6.0.11(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.37.0)(yaml@2.6.1)
vite-node: 3.0.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.37.0)(yaml@2.6.1)
vite-node: 3.0.5(@types/node@22.10.2)(lightningcss@1.29.1)(terser@5.37.0)
why-is-node-running: 2.3.0
optionalDependencies:
'@types/node': 22.10.2

Some files were not shown because too many files have changed in this diff Show More