Compare commits

..

17 Commits

Author SHA1 Message Date
Benjamin S. Leveritt
327a7315b7 Update from comments 2024-11-18 16:50:53 +00:00
Benjamin S. Leveritt
2bf28170f7 Update homepage/homepage/app/docs/[...slug]/schemas/accounts.mdx
Co-authored-by: Anselm Eickhoff <anselm.eickhoff@gmail.com>
2024-11-18 16:34:57 +00:00
Benjamin S. Leveritt
e472d2c513 Add accounts & migration docs 2024-11-18 16:34:57 +00:00
Benjamin S. Leveritt
64e0aaba88 Add accounts & migration docs 2024-11-18 16:33:49 +00:00
Benjamin S. Leveritt
27b0d75338 Add Vue example 2024-11-18 16:30:34 +00:00
Benjamin S. Leveritt
d6175fb936 Use sentence case on title 2024-11-18 16:30:34 +00:00
Benjamin S. Leveritt
8311a61f3f Improve copy 2024-11-18 16:30:34 +00:00
Benjamin S. Leveritt
2e3b10c5f6 Add accounts & migration docs 2024-11-18 16:30:34 +00:00
Anselm Eickhoff
2dfe2158fd Merge pull request #790 from gardencmp/trishalim-jazz-474
Fix: page reloads when clicking a link inside mdx
2024-11-18 16:30:34 +00:00
Anselm Eickhoff
2a4f9da62a Merge pull request #794 from gardencmp/benjamin-jazz-502
PassphraseAuth - Move saving credentials into `saveCredentials`
2024-11-18 16:30:34 +00:00
Anselm Eickhoff
67b1a6ba66 Merge pull request #789 from gardencmp/docs/getting-started
Rewrite docs introduction
2024-11-18 16:30:34 +00:00
Anselm Eickhoff
0609388899 Merge pull request #768 from gardencmp/fuzzyobject-jazz-491
Enhance onboarding test - add page context
2024-11-18 16:30:34 +00:00
Anselm Eickhoff
b12f8e3f26 Merge pull request #777 from gardencmp/benjamin-jazz-481
Fix readme for jazz-react-auth-clerk
2024-11-18 16:30:34 +00:00
Anselm Eickhoff
892ca34443 Merge pull request #784 from gardencmp/vscode-settings
chore: remove .vscode/settings.json and add it to .gitignore
2024-11-18 16:30:34 +00:00
Anselm Eickhoff
3533707794 Merge pull request #792 from gardencmp/benjamin-jazz-495
Fix PasskeyAuth forgetting authentication on reload
2024-11-18 16:30:34 +00:00
Anselm Eickhoff
2f848a8d83 Merge pull request #783 from gardencmp/benjamin-jazz-497
Tweak 'Docs coming soon' copy
2024-11-18 16:30:34 +00:00
Anselm Eickhoff
eae493b9d3 Merge pull request #757 from gardencmp/fuzzyobject-jazz-460
Rename CoStream to CoFeed
2024-11-18 16:30:34 +00:00
21 changed files with 231 additions and 137 deletions

View File

@@ -1,5 +0,0 @@
---
"jazz-tools": patch
---
Rename BinaryCoStream to FileStream

View File

@@ -1,5 +0,0 @@
---
"jazz-tools": patch
---
Rename CoStream to CoFeed

View File

@@ -5,7 +5,7 @@
<link rel="icon" type="image/png" href="/jazz-logo.png" />
<link rel="stylesheet" href="/src/index.css" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Jazz FileStream Tests</title>
<title>Jazz BinaryCoStream Tests</title>
</head>
<body>
<div id="root"></div>

View File

@@ -1,5 +1,5 @@
{
"name": "@jazz-e2e/filestream",
"name": "@jazz-e2e/binarycostream",
"private": true,
"version": "0.0.100",
"type": "module",

View File

@@ -1,4 +1,4 @@
import { Account, FileStream, ID } from "jazz-tools";
import { Account, BinaryCoStream, ID } from "jazz-tools";
import { useEffect } from "react";
import { useAccount, useCoState } from "./jazz";
import { waitForCoValue } from "./lib/waitForCoValue";
@@ -15,7 +15,7 @@ async function getUploadedFile(me: Account, uploadedFileId: ID<UploadedFile>) {
uploadedFile.coMapDownloaded = true;
await FileStream.loadAsBlob(uploadedFile._refs.file.id, me);
await BinaryCoStream.loadAsBlob(uploadedFile._refs.file.id, me);
return uploadedFile;
}

View File

@@ -1,4 +1,4 @@
import { Account, FileStream, Group } from "jazz-tools";
import { Account, BinaryCoStream, Group } from "jazz-tools";
import { UploadedFile } from "../schema";
export async function generateTestFile(me: Account, bytes: number) {
@@ -8,7 +8,7 @@ export async function generateTestFile(me: Account, bytes: number) {
const ownership = { owner: group };
const testFile = UploadedFile.create(
{
file: await FileStream.createFromBlob(
file: await BinaryCoStream.createFromBlob(
new Blob(["1".repeat(bytes)], { type: "image/png" }),
ownership,
),

View File

@@ -1,7 +1,7 @@
import { CoMap, FileStream, co } from "jazz-tools";
import { BinaryCoStream, CoMap, co } from "jazz-tools";
export class UploadedFile extends CoMap {
file = co.ref(FileStream);
file = co.ref(BinaryCoStream);
syncCompleted = co.boolean;
coMapDownloaded = co.boolean;
}

View File

@@ -1,4 +1,11 @@
import { Account, CoList, CoMap, FileStream, Profile, co } from "jazz-tools";
import {
Account,
BinaryCoStream,
CoList,
CoMap,
Profile,
co,
} from "jazz-tools";
/** Walkthrough: Defining the data model with CoJSON
*
@@ -29,12 +36,12 @@ export class MusicTrack extends CoMap {
sourceTrack = co.optional.ref(MusicTrack);
/**
* In Jazz you can upload files using FileStream.
* In Jazz you can files using BinaryCoStream.
*
* As for any other coValue the music files we put inside FileStream
* As for any other coValue the music files we put inside BinaryCoStream
* is available offline and end-to-end encrypted 😉
*/
file = co.ref(FileStream);
file = co.ref(BinaryCoStream);
waveform = co.ref(MusicTrackWaveform);
}

View File

@@ -1,5 +1,5 @@
import { getAudioFileData } from "@/lib/audio/getAudioFileData";
import { FileStream, Group } from "jazz-tools";
import { BinaryCoStream, Group } from "jazz-tools";
import {
ListOfTracks,
MusicTrack,
@@ -35,14 +35,14 @@ export async function uploadMusicTracks(
for (const file of files) {
const data = await getAudioFileData(file);
// We transform the file blob into a FileStream
// We transform the file blob into a BinaryCoStream
// making it a collaborative value that is encrypted, easy
// to share across devices and users and available offline!
const fileStream = await FileStream.createFromBlob(file, ownership);
const binaryCoStream = await BinaryCoStream.createFromBlob(file, ownership);
const musicTrack = MusicTrack.create(
{
file: fileStream,
file: binaryCoStream,
duration: data.duration,
waveform: MusicTrackWaveform.create({ data: data.waveform }, ownership),
title: file.name,
@@ -98,7 +98,7 @@ export async function addTrackToPlaylist(
* won't need to clone values to have this kind of sharing granularity
*/
const ownership = { owner: playlist._owner };
const blob = await FileStream.loadAsBlob(track._refs.file.id, account);
const blob = await BinaryCoStream.loadAsBlob(track._refs.file.id, account);
const waveform = await MusicTrackWaveform.load(
track._refs.waveform.id,
account,
@@ -109,7 +109,7 @@ export async function addTrackToPlaylist(
const trackClone = MusicTrack.create(
{
file: await FileStream.createFromBlob(blob, ownership),
file: await BinaryCoStream.createFromBlob(blob, ownership),
duration: track.duration,
waveform: MusicTrackWaveform.create({ data: waveform.data }, ownership),
title: track.title,

View File

@@ -1,7 +1,7 @@
import { MusicTrack, Playlist } from "@/1_schema";
import { usePlayMedia } from "@/lib/audio/usePlayMedia";
import { usePlayState } from "@/lib/audio/usePlayState";
import { FileStream, ID } from "jazz-tools";
import { BinaryCoStream, ID } from "jazz-tools";
import { useRef, useState } from "react";
import { useAccount } from "./2_main";
import { updateActivePlaylist, updateActiveTrack } from "./4_actions";
@@ -27,7 +27,7 @@ export function useMediaPlayer() {
setLoading(track.id);
const file = await FileStream.loadAsBlob(track._refs.file.id, me);
const file = await BinaryCoStream.loadAsBlob(track._refs.file.id, me);
if (!file) {
setLoading(null);

View File

@@ -0,0 +1,87 @@
import { CodeGroup } from "@/components/forMdx";
# Accounts & migrations
Accounts are a fundamental building block for user identity and data organization in Jazz applications, providing a structured way to manage both public and private user data while maintaining type-safety and access control.
Account data and metadata are publicly visible to other users.
For private data, we suggest nesting privately owned CoValues within the account root.
## Accounts
To create a custom account type, extend the `Account` class and register it with the Jazz runtime.
<CodeGroup>
```ts
import { Account, CoMap } from "jazz-tools";
class MyAccountRoot extends CoMap {
privateString = co.string; // Readable by the account owner
}
class MyProfile extends Profile {
publicString = co.string; // Readable by everyone
}
class MyAccount extends Account {
root = co.ref(MyAccountRoot);
profile = co.ref(MyProfile);
}
```
</CodeGroup>
### Schema
When passing the account class to the Jazz runtime, the schema is used to type account data.
<CodeGroup>
```ts
// React
const Jazz = createJazzReactApp({
AccountSchema: MyAccount,
});
```
</CodeGroup>
<CodeGroup>
```ts
// React Native
const Jazz = createJazzReactNativeApp({
AccountSchema: MyAccount,
});
```
</CodeGroup>
<CodeGroup>
```ts
// Vue
const Jazz = createJazzVueApp({
AccountSchema: MyAccount,
});
```
</CodeGroup>
## Migrations
Accounts can be migrated to add new data or update schemas. The `migrate()` method runs automatically when an account is created and each time a user logs in.
You can use migrations to initialize the account root and set up any other required CoValues.
<CodeGroup>
```ts
class MyAccount extends Account {
async migrate() {
super.migrate(creationProps);
if (!this._refs.root) {
this.root = MyAccountRoot.create({
privateString: "Keep it hidden, keep it safe.",
},
{ owner: this });
}
}
}
```
</CodeGroup>

View File

@@ -56,12 +56,12 @@ export const docNavigationItems = [
{
name: "CoValues",
href: "/docs/schemas/covalues",
done: 20,
done: 50,
},
{
name: "Accounts & Migrations",
href: "/docs/schemas/accounts",
done: 0,
done: 20,
},
],
},

View File

@@ -42,7 +42,7 @@ test("Can create a CoStream in a group", () => {
expect(stream instanceof RawCoStream).toEqual(true);
});
test("Can create a FileStream in a group", () => {
test("Can create a BinaryCoStream in a group", () => {
const node = new LocalNode(...randomAnonymousAccountAndSessionID(), Crypto);
const group = node.createGroup();

View File

@@ -1,5 +1,5 @@
import ImageBlobReduce from "image-blob-reduce";
import { Account, FileStream, Group, ImageDefinition } from "jazz-tools";
import { Account, BinaryCoStream, Group, ImageDefinition } from "jazz-tools";
import Pica from "pica";
const pica = new Pica();
@@ -51,7 +51,7 @@ export async function createImage(
? 256
: Math.round(256 * (originalHeight / originalWidth));
const binaryStream = await FileStream.createFromBlob(max256, {
const binaryStream = await BinaryCoStream.createFromBlob(max256, {
owner: options.owner,
});
@@ -74,7 +74,7 @@ export async function createImage(
? 1024
: Math.round(1024 * (originalHeight / originalWidth));
const binaryStream = await FileStream.createFromBlob(max1024, {
const binaryStream = await BinaryCoStream.createFromBlob(max1024, {
owner: options.owner,
});
@@ -97,7 +97,7 @@ export async function createImage(
? 2048
: Math.round(2048 * (originalHeight / originalWidth));
const binaryStream = await FileStream.createFromBlob(max2048, {
const binaryStream = await BinaryCoStream.createFromBlob(max2048, {
owner: options.owner,
});
@@ -108,7 +108,7 @@ export async function createImage(
if (options.maxSize === 2048) return;
const originalBinaryStream = await FileStream.createFromBlob(
const originalBinaryStream = await BinaryCoStream.createFromBlob(
imageBlobOrFile,
{ owner: options.owner },
);

View File

@@ -1,6 +1,6 @@
import ImageResizer from "@bam.tech/react-native-image-resizer";
import * as FileSystem from "expo-file-system";
import { Account, FileStream, Group, ImageDefinition } from "jazz-tools";
import { Account, BinaryCoStream, Group, ImageDefinition } from "jazz-tools";
import { Image } from "react-native";
function arrayBuffer(blob: Blob): Promise<ArrayBuffer> {
@@ -157,7 +157,7 @@ export async function createImage(
0,
);
const binaryStream = await FileStream.createFromBlob(
const binaryStream = await BinaryCoStream.createFromBlob(
await fileUriToBlob(resizedImage.uri),
{ owner: options.owner },
);
@@ -214,7 +214,7 @@ export async function createImage(
if (options.maxSize === undefined || options.maxSize > 2048) {
try {
const originalBinaryStream = await FileStream.createFromBlob(
const originalBinaryStream = await BinaryCoStream.createFromBlob(
await base64DataURIToBlob(base64ImageDataURI),
{ owner: options.owner },
);

View File

@@ -469,11 +469,8 @@ const CoStreamPerSessionProxyHandler = (
},
});
/** @deprecated Use CoFeed instead */
export { FileStream as BinaryCoStream };
/** @category CoValues */
export class FileStream extends CoValueBase implements CoValue {
export class BinaryCoStream extends CoValueBase implements CoValue {
declare id: ID<this>;
declare _type: "BinaryCoStream";
declare _raw: RawBinaryCoStream;
@@ -508,7 +505,7 @@ export class FileStream extends CoValueBase implements CoValue {
});
}
static create<S extends FileStream>(
static create<S extends BinaryCoStream>(
this: CoValueClass<S>,
options: { owner: Account | Group },
) {
@@ -553,7 +550,7 @@ export class FileStream extends CoValueBase implements CoValue {
}
static async loadAsBlob(
id: ID<FileStream>,
id: ID<BinaryCoStream>,
as: Account,
options?: {
allowUnfinished?: boolean;
@@ -566,7 +563,7 @@ export class FileStream extends CoValueBase implements CoValue {
* stream isn't complete wait for the stream download before progressing
*/
if (!options?.allowUnfinished && !stream?.isBinaryStreamEnded()) {
stream = await new Promise<FileStream>((resolve) => {
stream = await new Promise<BinaryCoStream>((resolve) => {
const unsubscribe = subscribeToCoValue(this, id, as, [], (value) => {
if (value.isBinaryStreamEnded()) {
unsubscribe();
@@ -587,7 +584,7 @@ export class FileStream extends CoValueBase implements CoValue {
owner: Group | Account;
onProgress?: (progress: number) => void;
},
): Promise<FileStream> {
): Promise<BinaryCoStream> {
const stream = this.create({ owner: options.owner });
const start = Date.now();
@@ -647,7 +644,7 @@ export class FileStream extends CoValueBase implements CoValue {
}
/** @category Subscription & Loading */
static load<B extends FileStream, Depth>(
static load<B extends BinaryCoStream, Depth>(
this: CoValueClass<B>,
id: ID<B>,
as: Account,
@@ -657,7 +654,7 @@ export class FileStream extends CoValueBase implements CoValue {
}
/** @category Subscription & Loading */
static subscribe<B extends FileStream, Depth>(
static subscribe<B extends BinaryCoStream, Depth>(
this: CoValueClass<B>,
id: ID<B>,
as: Account,
@@ -668,7 +665,7 @@ export class FileStream extends CoValueBase implements CoValue {
}
/** @category Subscription & Loading */
ensureLoaded<B extends FileStream, Depth>(
ensureLoaded<B extends BinaryCoStream, Depth>(
this: B,
depth: Depth & DepthsIn<B>,
): Promise<DeeplyLoaded<B, Depth> | undefined> {
@@ -676,7 +673,7 @@ export class FileStream extends CoValueBase implements CoValue {
}
/** @category Subscription & Loading */
subscribe<B extends FileStream, Depth>(
subscribe<B extends BinaryCoStream, Depth>(
this: B,
depth: Depth & DepthsIn<B>,
listener: (value: DeeplyLoaded<B, Depth>) => void,

View File

@@ -1,16 +1,21 @@
import { CoMap, FileStream, co, subscriptionsScopes } from "../../internal.js";
import {
BinaryCoStream,
CoMap,
co,
subscriptionsScopes,
} from "../../internal.js";
/** @category Media */
export class ImageDefinition extends CoMap {
originalSize = co.json<[number, number]>();
placeholderDataURL? = co.string;
[co.items] = co.ref(FileStream);
[res: `${number}x${number}`]: co<FileStream | null>;
[co.items] = co.ref(BinaryCoStream);
[res: `${number}x${number}`]: co<BinaryCoStream | null>;
highestResAvailable(options?: {
maxWidth?: number;
}): { res: `${number}x${number}`; stream: FileStream } | undefined {
}): { res: `${number}x${number}`; stream: BinaryCoStream } | undefined {
if (!subscriptionsScopes.get(this)) {
console.warn(
"highestResAvailable() only makes sense when used within a subscription.",

View File

@@ -14,7 +14,6 @@ export { Encoders, co } from "./internal.js";
export {
Account,
FileStream,
BinaryCoStream,
CoList,
CoMap,

View File

@@ -2,8 +2,8 @@ import { connectedPeers } from "cojson/src/streamUtils.ts";
import { describe, expect, test } from "vitest";
import {
Account,
BinaryCoStream,
CoFeed,
FileStream,
ID,
WasmCrypto,
co,
@@ -242,13 +242,13 @@ describe("CoFeed resolution", async () => {
});
});
describe("Simple FileStream operations", async () => {
describe("Simple BinaryCoStream operations", async () => {
const me = await Account.create({
creationProps: { name: "Hermes Puggington" },
crypto: Crypto,
});
const stream = FileStream.create({ owner: me });
const stream = BinaryCoStream.create({ owner: me });
test("Construction", () => {
expect(stream.getChunks()).toBe(undefined);
@@ -270,14 +270,14 @@ describe("Simple FileStream operations", async () => {
});
});
describe("FileStream loading & Subscription", async () => {
describe("BinaryCoStream loading & Subscription", async () => {
const initNodeAndStream = async () => {
const me = await Account.create({
creationProps: { name: "Hermes Puggington" },
crypto: Crypto,
});
const stream = FileStream.create({ owner: me });
const stream = BinaryCoStream.create({ owner: me });
stream.start({ mimeType: "text/plain" });
stream.push(new Uint8Array([1, 2, 3]));
@@ -316,7 +316,11 @@ describe("FileStream loading & Subscription", async () => {
crypto: Crypto,
});
const loadedStream = await FileStream.load(stream.id, meOnSecondPeer, []);
const loadedStream = await BinaryCoStream.load(
stream.id,
meOnSecondPeer,
[],
);
expect(loadedStream?.getChunks()).toEqual({
mimeType: "text/plain",
@@ -327,7 +331,7 @@ describe("FileStream loading & Subscription", async () => {
test("Subscription", async () => {
const { me } = await initNodeAndStream();
const stream = FileStream.create({ owner: me });
const stream = BinaryCoStream.create({ owner: me });
const [initialAsPeer, secondAsPeer] = connectedPeers("initial", "second", {
peer1role: "server",
@@ -349,9 +353,14 @@ describe("FileStream loading & Subscription", async () => {
const queue = new cojsonInternals.Channel();
FileStream.subscribe(stream.id, meOnSecondPeer, [], (subscribedStream) => {
void queue.push(subscribedStream);
});
BinaryCoStream.subscribe(
stream.id,
meOnSecondPeer,
[],
(subscribedStream) => {
void queue.push(subscribedStream);
},
);
const update1 = (await queue.next()).value;
expect(update1.getChunks()).toBe(undefined);
@@ -402,14 +411,14 @@ describe("FileStream loading & Subscription", async () => {
});
});
describe("FileStream.loadAsBlob", async () => {
describe("BinaryCoStream.loadAsBlob", async () => {
async function setup() {
const me = await Account.create({
creationProps: { name: "Hermes Puggington" },
crypto: Crypto,
});
const stream = FileStream.create({ owner: me });
const stream = BinaryCoStream.create({ owner: me });
stream.start({ mimeType: "text/plain" });
@@ -420,7 +429,7 @@ describe("FileStream.loadAsBlob", async () => {
const { stream, me } = await setup();
stream.push(new Uint8Array([1]));
const promise = FileStream.loadAsBlob(stream.id, me);
const promise = BinaryCoStream.loadAsBlob(stream.id, me);
await stream.ensureLoaded([]);
@@ -438,7 +447,7 @@ describe("FileStream.loadAsBlob", async () => {
const { stream, me } = await setup();
stream.push(new Uint8Array([1]));
const promise = FileStream.loadAsBlob(stream.id, me, {
const promise = BinaryCoStream.loadAsBlob(stream.id, me, {
allowUnfinished: true,
});

View File

@@ -13,7 +13,7 @@ import {
isControlledAccount,
} from "../index.web.js";
import {
FileStream,
BinaryCoStream,
Group,
randomSessionProvider,
subscribeToCoValue,
@@ -27,7 +27,7 @@ class ChatRoom extends CoMap {
class Message extends CoMap {
text = co.string;
reactions = co.ref(ReactionsStream);
attachment = co.optional.ref(FileStream);
attachment = co.optional.ref(BinaryCoStream);
}
class MessagesList extends CoList.Of(co.ref(Message)) {}

126
pnpm-lock.yaml generated
View File

@@ -20,7 +20,7 @@ importers:
version: 2.27.3
'@vitest/coverage-istanbul':
specifier: 1.5.3
version: 1.5.3(vitest@1.5.3)
version: 1.5.3(vitest@1.5.3(@types/node@22.5.1)(@vitest/ui@1.5.3)(happy-dom@15.8.3)(jsdom@20.0.3)(terser@5.33.0))
'@vitest/ui':
specifier: 1.5.3
version: 1.5.3(vitest@1.5.3)
@@ -32,7 +32,7 @@ importers:
version: 1.8.2
ts-node:
specifier: ^10.9.1
version: 10.9.2(@swc/core@1.7.22(@swc/helpers@0.5.5))(@types/node@22.5.1)(typescript@5.6.2)
version: 10.9.2(@swc/core@1.7.22)(@types/node@22.5.1)(typescript@5.6.2)
turbo:
specifier: ^1.11.2
version: 1.11.2
@@ -75,7 +75,7 @@ importers:
version: 22.5.1
'@types/react':
specifier: ^18.2.19
version: 18.2.79
version: 18.2.45
'@types/react-dom':
specifier: ^18.2.7
version: 18.2.18
@@ -84,7 +84,7 @@ importers:
version: 3.5.0(@swc/helpers@0.5.5)(vite@5.0.10(@types/node@22.5.1)(terser@5.33.0))
typescript:
specifier: ^5.3.3
version: 5.6.2
version: 5.3.3
vite:
specifier: ^5.0.10
version: 5.0.10(@types/node@22.5.1)(terser@5.33.0)
@@ -182,7 +182,7 @@ importers:
version: 8.4.32
tailwindcss:
specifier: 3.3.2
version: 3.3.2(ts-node@10.9.2(@swc/core@1.7.22(@swc/helpers@0.5.5))(@types/node@22.5.1)(typescript@5.6.2))
version: 3.3.2(ts-node@10.9.2(@swc/core@1.7.22)(@types/node@22.5.1)(typescript@5.6.2))
typescript:
specifier: ^5.3.3
version: 5.6.2
@@ -242,7 +242,7 @@ importers:
version: 1.14.0
tailwindcss-animate:
specifier: ^1.0.7
version: 1.0.7(tailwindcss@3.3.2(ts-node@10.9.2(@swc/core@1.7.22(@swc/helpers@0.5.5))(@types/node@22.5.1)(typescript@5.3.3)))
version: 1.0.7(tailwindcss@3.3.2(ts-node@10.9.2(@swc/core@1.7.22)(@types/node@22.5.1)(typescript@5.3.3)))
uniqolor:
specifier: ^1.1.0
version: 1.1.1
@@ -273,7 +273,7 @@ importers:
version: 8.4.32
tailwindcss:
specifier: 3.3.2
version: 3.3.2(ts-node@10.9.2(@swc/core@1.7.22(@swc/helpers@0.5.5))(@types/node@22.5.1)(typescript@5.3.3))
version: 3.3.2(ts-node@10.9.2(@swc/core@1.7.22)(@types/node@22.5.1)(typescript@5.3.3))
typescript:
specifier: ^5.3.3
version: 5.3.3
@@ -342,7 +342,7 @@ importers:
version: 1.14.0
tailwindcss-animate:
specifier: ^1.0.7
version: 1.0.7(tailwindcss@3.3.2(ts-node@10.9.2(@swc/core@1.7.22(@swc/helpers@0.5.5))(@types/node@22.5.1)(typescript@5.3.3)))
version: 1.0.7(tailwindcss@3.3.2(ts-node@10.9.2(@swc/core@1.7.22)(@types/node@22.5.1)(typescript@5.3.3)))
uniqolor:
specifier: ^1.1.0
version: 1.1.1
@@ -367,7 +367,7 @@ importers:
version: 8.4.32
tailwindcss:
specifier: 3.3.2
version: 3.3.2(ts-node@10.9.2(@swc/core@1.7.22(@swc/helpers@0.5.5))(@types/node@22.5.1)(typescript@5.3.3))
version: 3.3.2(ts-node@10.9.2(@swc/core@1.7.22)(@types/node@22.5.1)(typescript@5.3.3))
typescript:
specifier: ^5.3.3
version: 5.3.3
@@ -433,7 +433,7 @@ importers:
version: link:../../packages/jazz-tools
nativewind:
specifier: ^2.0.11
version: 2.0.11(react@18.3.1)(tailwindcss@3.3.2(ts-node@10.9.2(@swc/core@1.7.22(@swc/helpers@0.5.5))(@types/node@22.5.1)(typescript@5.3.3)))
version: 2.0.11(react@18.3.1)(tailwindcss@3.3.2(ts-node@10.9.2(@swc/core@1.7.22)(@types/node@22.5.1)(typescript@5.3.3)))
react:
specifier: 18.3.1
version: 18.3.1
@@ -476,7 +476,7 @@ importers:
version: 18.2.79
tailwindcss:
specifier: 3.3.2
version: 3.3.2(ts-node@10.9.2(@swc/core@1.7.22(@swc/helpers@0.5.5))(@types/node@22.5.1)(typescript@5.3.3))
version: 3.3.2(ts-node@10.9.2(@swc/core@1.7.22)(@types/node@22.5.1)(typescript@5.3.3))
typescript:
specifier: ^5.3.3
version: 5.3.3
@@ -542,7 +542,7 @@ importers:
version: 6.3.1(expo@51.0.37(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2)))
expo-router:
specifier: ~3.5.23
version: 3.5.23(gxmcwa4qdc6bvqs2lj3c6b64ki)
version: 3.5.23(expo-constants@16.0.2(expo@51.0.37(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))))(expo-linking@6.3.1(expo@51.0.37(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))))(expo-modules-autolinking@1.11.3)(expo-status-bar@1.12.1)(expo@51.0.37(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2)))(react-native-reanimated@3.10.1(@babel/core@7.25.2)(react-native@0.74.5(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.2.79)(react@18.3.1))(react@18.3.1))(react-native-safe-area-context@4.10.5(react-native@0.74.5(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.2.79)(react@18.3.1))(react@18.3.1))(react-native-screens@3.31.1(react-native@0.74.5(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.2.79)(react@18.3.1))(react@18.3.1))(react-native@0.74.5(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.2.79)(react@18.3.1))(react@18.3.1)(typescript@5.3.3)
expo-secure-store:
specifier: ~13.0.2
version: 13.0.2(expo@51.0.37(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2)))
@@ -572,7 +572,7 @@ importers:
version: link:../../packages/jazz-tools
nativewind:
specifier: ^2.0.11
version: 2.0.11(react@18.3.1)(tailwindcss@3.3.2(ts-node@10.9.2(@swc/core@1.7.22(@swc/helpers@0.5.5))(@types/node@22.5.1)(typescript@5.3.3)))
version: 2.0.11(react@18.3.1)(tailwindcss@3.3.2(ts-node@10.9.2(@swc/core@1.7.22)(@types/node@22.5.1)(typescript@5.3.3)))
react:
specifier: 18.3.1
version: 18.3.1
@@ -636,16 +636,16 @@ importers:
version: 18.3.0
jest:
specifier: ^29.2.1
version: 29.7.0(@types/node@22.5.1)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.7.22(@swc/helpers@0.5.5))(@types/node@22.5.1)(typescript@5.3.3))
version: 29.7.0(@types/node@22.5.1)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.7.22)(@types/node@22.5.1)(typescript@5.3.3))
jest-expo:
specifier: ~51.0.3
version: 51.0.4(@babel/core@7.25.2)(jest@29.7.0(@types/node@22.5.1)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.7.22(@swc/helpers@0.5.5))(@types/node@22.5.1)(typescript@5.3.3)))(react@18.3.1)
version: 51.0.4(@babel/core@7.25.2)(jest@29.7.0(@types/node@22.5.1)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.7.22)(@types/node@22.5.1)(typescript@5.3.3)))(react@18.3.1)
react-test-renderer:
specifier: 18.2.0
version: 18.2.0(react@18.3.1)
tailwindcss:
specifier: 3.3.2
version: 3.3.2(ts-node@10.9.2(@swc/core@1.7.22(@swc/helpers@0.5.5))(@types/node@22.5.1)(typescript@5.3.3))
version: 3.3.2(ts-node@10.9.2(@swc/core@1.7.22)(@types/node@22.5.1)(typescript@5.3.3))
typescript:
specifier: ^5.3.3
version: 5.3.3
@@ -700,7 +700,7 @@ importers:
version: 8.4.47
tailwindcss:
specifier: 3.3.2
version: 3.3.2(ts-node@10.9.2(@swc/core@1.7.22(@swc/helpers@0.5.5))(@types/node@22.5.1)(typescript@5.6.2))
version: 3.3.2(ts-node@10.9.2(@swc/core@1.7.22)(@types/node@22.5.1)(typescript@5.6.2))
typescript:
specifier: ^5.3.3
version: 5.6.2
@@ -766,7 +766,7 @@ importers:
version: 1.14.0
tailwindcss-animate:
specifier: ^1.0.7
version: 1.0.7(tailwindcss@3.3.2(ts-node@10.9.2(@swc/core@1.7.22(@swc/helpers@0.5.5))(@types/node@22.5.1)(typescript@5.3.3)))
version: 1.0.7(tailwindcss@3.3.2(ts-node@10.9.2(@swc/core@1.7.22)(@types/node@22.5.1)(typescript@5.3.3)))
uniqolor:
specifier: ^1.1.0
version: 1.1.1
@@ -791,7 +791,7 @@ importers:
version: 8.4.32
tailwindcss:
specifier: 3.3.2
version: 3.3.2(ts-node@10.9.2(@swc/core@1.7.22(@swc/helpers@0.5.5))(@types/node@22.5.1)(typescript@5.3.3))
version: 3.3.2(ts-node@10.9.2(@swc/core@1.7.22)(@types/node@22.5.1)(typescript@5.3.3))
typescript:
specifier: ^5.3.3
version: 5.3.3
@@ -842,7 +842,7 @@ importers:
version: 1.14.0
tailwindcss-animate:
specifier: ^1.0.7
version: 1.0.7(tailwindcss@3.3.2(ts-node@10.9.2(@swc/core@1.7.22(@swc/helpers@0.5.5))(@types/node@22.5.1)(typescript@5.3.3)))
version: 1.0.7(tailwindcss@3.3.2(ts-node@10.9.2(@swc/core@1.7.22)(@types/node@22.5.1)(typescript@5.3.3)))
devDependencies:
'@playwright/test':
specifier: ^1.46.1
@@ -864,7 +864,7 @@ importers:
version: 8.4.32
tailwindcss:
specifier: 3.3.2
version: 3.3.2(ts-node@10.9.2(@swc/core@1.7.22(@swc/helpers@0.5.5))(@types/node@22.5.1)(typescript@5.3.3))
version: 3.3.2(ts-node@10.9.2(@swc/core@1.7.22)(@types/node@22.5.1)(typescript@5.3.3))
typescript:
specifier: ^5.3.3
version: 5.3.3
@@ -916,7 +916,7 @@ importers:
version: 8.4.47
tailwindcss:
specifier: ^3.3.2
version: 3.3.2(ts-node@10.9.2(@swc/core@1.7.22(@swc/helpers@0.5.5))(@types/node@22.5.1)(typescript@5.6.2))
version: 3.3.2(ts-node@10.9.2(@swc/core@1.7.22)(@types/node@22.5.1)(typescript@5.6.2))
typescript:
specifier: ^5.3.3
version: 5.6.2
@@ -965,7 +965,7 @@ importers:
version: 8.4.32
tailwindcss:
specifier: 3.3.2
version: 3.3.2(ts-node@10.9.2(@swc/core@1.7.22(@swc/helpers@0.5.5))(@types/node@22.5.1)(typescript@5.3.3))
version: 3.3.2(ts-node@10.9.2(@swc/core@1.7.22)(@types/node@22.5.1)(typescript@5.3.3))
typescript:
specifier: ^5.3.3
version: 5.3.3
@@ -1022,7 +1022,7 @@ importers:
version: 1.14.0
tailwindcss-animate:
specifier: ^1.0.7
version: 1.0.7(tailwindcss@3.3.2(ts-node@10.9.2(@swc/core@1.7.22(@swc/helpers@0.5.5))(@types/node@22.5.1)(typescript@5.3.3)))
version: 1.0.7(tailwindcss@3.3.2(ts-node@10.9.2(@swc/core@1.7.22)(@types/node@22.5.1)(typescript@5.3.3)))
uniqolor:
specifier: ^1.1.0
version: 1.1.1
@@ -1059,7 +1059,7 @@ importers:
version: 8.4.32
tailwindcss:
specifier: 3.3.2
version: 3.3.2(ts-node@10.9.2(@swc/core@1.7.22(@swc/helpers@0.5.5))(@types/node@22.5.1)(typescript@5.3.3))
version: 3.3.2(ts-node@10.9.2(@swc/core@1.7.22)(@types/node@22.5.1)(typescript@5.3.3))
typescript:
specifier: ^5.3.3
version: 5.3.3
@@ -1118,7 +1118,7 @@ importers:
version: 1.14.0
tailwindcss-animate:
specifier: ^1.0.7
version: 1.0.7(tailwindcss@3.3.2(ts-node@10.9.2(@swc/core@1.7.22(@swc/helpers@0.5.5))(@types/node@22.5.1)(typescript@5.3.3)))
version: 1.0.7(tailwindcss@3.3.2(ts-node@10.9.2(@swc/core@1.7.22)(@types/node@22.5.1)(typescript@5.3.3)))
uniqolor:
specifier: ^1.1.0
version: 1.1.1
@@ -1143,7 +1143,7 @@ importers:
version: 8.4.32
tailwindcss:
specifier: 3.3.2
version: 3.3.2(ts-node@10.9.2(@swc/core@1.7.22(@swc/helpers@0.5.5))(@types/node@22.5.1)(typescript@5.3.3))
version: 3.3.2(ts-node@10.9.2(@swc/core@1.7.22)(@types/node@22.5.1)(typescript@5.3.3))
typescript:
specifier: ^5.3.3
version: 5.3.3
@@ -1201,7 +1201,7 @@ importers:
version: 8.4.47
tailwindcss:
specifier: 3.3.2
version: 3.3.2(ts-node@10.9.2(@swc/core@1.7.22(@swc/helpers@0.5.5))(@types/node@22.5.1)(typescript@5.6.2))
version: 3.3.2(ts-node@10.9.2(@swc/core@1.7.22)(@types/node@22.5.1)(typescript@5.6.2))
typescript:
specifier: ^5.3.3
version: 5.6.2
@@ -12667,7 +12667,7 @@ snapshots:
jest-util: 29.7.0
slash: 3.0.0
'@jest/core@29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.7.22(@swc/helpers@0.5.5))(@types/node@22.5.1)(typescript@5.3.3))':
'@jest/core@29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.7.22)(@types/node@22.5.1)(typescript@5.3.3))':
dependencies:
'@jest/console': 29.7.0
'@jest/reporters': 29.7.0
@@ -12681,7 +12681,7 @@ snapshots:
exit: 0.1.2
graceful-fs: 4.2.11
jest-changed-files: 29.7.0
jest-config: 29.7.0(@types/node@22.5.1)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.7.22(@swc/helpers@0.5.5))(@types/node@22.5.1)(typescript@5.3.3))
jest-config: 29.7.0(@types/node@22.5.1)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.7.22)(@types/node@22.5.1)(typescript@5.3.3))
jest-haste-map: 29.7.0
jest-message-util: 29.7.0
jest-regex-util: 29.6.3
@@ -14345,7 +14345,7 @@ snapshots:
'@types/react-dom@18.2.18':
dependencies:
'@types/react': 18.2.79
'@types/react': 18.2.45
'@types/react-test-renderer@18.3.0':
dependencies:
@@ -14458,7 +14458,7 @@ snapshots:
- esbuild
- rollup
'@vitest/coverage-istanbul@1.5.3(vitest@1.5.3)':
'@vitest/coverage-istanbul@1.5.3(vitest@1.5.3(@types/node@22.5.1)(@vitest/ui@1.5.3)(happy-dom@15.8.3)(jsdom@20.0.3)(terser@5.33.0))':
dependencies:
debug: 4.3.7
istanbul-lib-coverage: 3.2.2
@@ -15581,13 +15581,13 @@ snapshots:
crc-32: 1.2.2
readable-stream: 3.6.2
create-jest@29.7.0(@types/node@22.5.1)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.7.22(@swc/helpers@0.5.5))(@types/node@22.5.1)(typescript@5.3.3)):
create-jest@29.7.0(@types/node@22.5.1)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.7.22)(@types/node@22.5.1)(typescript@5.3.3)):
dependencies:
'@jest/types': 29.6.3
chalk: 4.1.2
exit: 0.1.2
graceful-fs: 4.2.11
jest-config: 29.7.0(@types/node@22.5.1)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.7.22(@swc/helpers@0.5.5))(@types/node@22.5.1)(typescript@5.3.3))
jest-config: 29.7.0(@types/node@22.5.1)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.7.22)(@types/node@22.5.1)(typescript@5.3.3))
jest-util: 29.7.0
prompts: 2.4.2
transitivePeerDependencies:
@@ -16364,8 +16364,8 @@ snapshots:
dependencies:
invariant: 2.2.4
expo-router@3.5.23(gxmcwa4qdc6bvqs2lj3c6b64ki):
dependencies:
? expo-router@3.5.23(expo-constants@16.0.2(expo@51.0.37(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))))(expo-linking@6.3.1(expo@51.0.37(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))))(expo-modules-autolinking@1.11.3)(expo-status-bar@1.12.1)(expo@51.0.37(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2)))(react-native-reanimated@3.10.1(@babel/core@7.25.2)(react-native@0.74.5(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.2.79)(react@18.3.1))(react@18.3.1))(react-native-safe-area-context@4.10.5(react-native@0.74.5(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.2.79)(react@18.3.1))(react@18.3.1))(react-native-screens@3.31.1(react-native@0.74.5(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.2.79)(react@18.3.1))(react@18.3.1))(react-native@0.74.5(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.2.79)(react@18.3.1))(react@18.3.1)(typescript@5.3.3)
: dependencies:
'@expo/metro-runtime': 3.2.3(react-native@0.74.5(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.2.79)(react@18.3.1))
'@expo/server': 0.4.4(typescript@5.3.3)
'@radix-ui/react-slot': 1.0.1(react@18.3.1)
@@ -17369,16 +17369,16 @@ snapshots:
- babel-plugin-macros
- supports-color
jest-cli@29.7.0(@types/node@22.5.1)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.7.22(@swc/helpers@0.5.5))(@types/node@22.5.1)(typescript@5.3.3)):
jest-cli@29.7.0(@types/node@22.5.1)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.7.22)(@types/node@22.5.1)(typescript@5.3.3)):
dependencies:
'@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.7.22(@swc/helpers@0.5.5))(@types/node@22.5.1)(typescript@5.3.3))
'@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.7.22)(@types/node@22.5.1)(typescript@5.3.3))
'@jest/test-result': 29.7.0
'@jest/types': 29.6.3
chalk: 4.1.2
create-jest: 29.7.0(@types/node@22.5.1)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.7.22(@swc/helpers@0.5.5))(@types/node@22.5.1)(typescript@5.3.3))
create-jest: 29.7.0(@types/node@22.5.1)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.7.22)(@types/node@22.5.1)(typescript@5.3.3))
exit: 0.1.2
import-local: 3.2.0
jest-config: 29.7.0(@types/node@22.5.1)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.7.22(@swc/helpers@0.5.5))(@types/node@22.5.1)(typescript@5.3.3))
jest-config: 29.7.0(@types/node@22.5.1)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.7.22)(@types/node@22.5.1)(typescript@5.3.3))
jest-util: 29.7.0
jest-validate: 29.7.0
yargs: 17.7.2
@@ -17388,7 +17388,7 @@ snapshots:
- supports-color
- ts-node
jest-config@29.7.0(@types/node@22.5.1)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.7.22(@swc/helpers@0.5.5))(@types/node@22.5.1)(typescript@5.3.3)):
jest-config@29.7.0(@types/node@22.5.1)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.7.22)(@types/node@22.5.1)(typescript@5.3.3)):
dependencies:
'@babel/core': 7.25.2
'@jest/test-sequencer': 29.7.0
@@ -17414,7 +17414,7 @@ snapshots:
strip-json-comments: 3.1.1
optionalDependencies:
'@types/node': 22.5.1
ts-node: 10.9.2(@swc/core@1.7.22(@swc/helpers@0.5.5))(@types/node@22.5.1)(typescript@5.3.3)
ts-node: 10.9.2(@swc/core@1.7.22)(@types/node@22.5.1)(typescript@5.3.3)
transitivePeerDependencies:
- babel-plugin-macros
- supports-color
@@ -17462,7 +17462,7 @@ snapshots:
jest-mock: 29.7.0
jest-util: 29.7.0
jest-expo@51.0.4(@babel/core@7.25.2)(jest@29.7.0(@types/node@22.5.1)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.7.22(@swc/helpers@0.5.5))(@types/node@22.5.1)(typescript@5.3.3)))(react@18.3.1):
jest-expo@51.0.4(@babel/core@7.25.2)(jest@29.7.0(@types/node@22.5.1)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.7.22)(@types/node@22.5.1)(typescript@5.3.3)))(react@18.3.1):
dependencies:
'@expo/config': 9.0.4
'@expo/json-file': 8.3.3
@@ -17471,7 +17471,7 @@ snapshots:
find-up: 5.0.0
jest-environment-jsdom: 29.7.0
jest-watch-select-projects: 2.0.0
jest-watch-typeahead: 2.2.1(jest@29.7.0(@types/node@22.5.1)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.7.22(@swc/helpers@0.5.5))(@types/node@22.5.1)(typescript@5.3.3)))
jest-watch-typeahead: 2.2.1(jest@29.7.0(@types/node@22.5.1)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.7.22)(@types/node@22.5.1)(typescript@5.3.3)))
json5: 2.2.3
lodash: 4.17.21
react-test-renderer: 18.2.0(react@18.3.1)
@@ -17660,11 +17660,11 @@ snapshots:
chalk: 3.0.0
prompts: 2.4.2
jest-watch-typeahead@2.2.1(jest@29.7.0(@types/node@22.5.1)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.7.22(@swc/helpers@0.5.5))(@types/node@22.5.1)(typescript@5.3.3))):
jest-watch-typeahead@2.2.1(jest@29.7.0(@types/node@22.5.1)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.7.22)(@types/node@22.5.1)(typescript@5.3.3))):
dependencies:
ansi-escapes: 6.2.1
chalk: 4.1.2
jest: 29.7.0(@types/node@22.5.1)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.7.22(@swc/helpers@0.5.5))(@types/node@22.5.1)(typescript@5.3.3))
jest: 29.7.0(@types/node@22.5.1)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.7.22)(@types/node@22.5.1)(typescript@5.3.3))
jest-regex-util: 29.6.3
jest-watcher: 29.7.0
slash: 5.1.0
@@ -17689,12 +17689,12 @@ snapshots:
merge-stream: 2.0.0
supports-color: 8.1.1
jest@29.7.0(@types/node@22.5.1)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.7.22(@swc/helpers@0.5.5))(@types/node@22.5.1)(typescript@5.3.3)):
jest@29.7.0(@types/node@22.5.1)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.7.22)(@types/node@22.5.1)(typescript@5.3.3)):
dependencies:
'@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.7.22(@swc/helpers@0.5.5))(@types/node@22.5.1)(typescript@5.3.3))
'@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.7.22)(@types/node@22.5.1)(typescript@5.3.3))
'@jest/types': 29.6.3
import-local: 3.2.0
jest-cli: 29.7.0(@types/node@22.5.1)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.7.22(@swc/helpers@0.5.5))(@types/node@22.5.1)(typescript@5.3.3))
jest-cli: 29.7.0(@types/node@22.5.1)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.7.22)(@types/node@22.5.1)(typescript@5.3.3))
transitivePeerDependencies:
- '@types/node'
- babel-plugin-macros
@@ -18485,7 +18485,7 @@ snapshots:
napi-build-utils@1.0.2: {}
nativewind@2.0.11(react@18.3.1)(tailwindcss@3.3.2(ts-node@10.9.2(@swc/core@1.7.22(@swc/helpers@0.5.5))(@types/node@22.5.1)(typescript@5.3.3))):
nativewind@2.0.11(react@18.3.1)(tailwindcss@3.3.2(ts-node@10.9.2(@swc/core@1.7.22)(@types/node@22.5.1)(typescript@5.3.3))):
dependencies:
'@babel/generator': 7.25.6
'@babel/helper-module-imports': 7.18.6
@@ -18499,7 +18499,7 @@ snapshots:
postcss-css-variables: 0.18.0(postcss@8.4.47)
postcss-nested: 5.0.6(postcss@8.4.47)
react-is: 18.2.0
tailwindcss: 3.3.2(ts-node@10.9.2(@swc/core@1.7.22(@swc/helpers@0.5.5))(@types/node@22.5.1)(typescript@5.3.3))
tailwindcss: 3.3.2(ts-node@10.9.2(@swc/core@1.7.22)(@types/node@22.5.1)(typescript@5.3.3))
use-sync-external-store: 1.2.2(react@18.3.1)
transitivePeerDependencies:
- react
@@ -18958,21 +18958,21 @@ snapshots:
camelcase-css: 2.0.1
postcss: 8.4.47
postcss-load-config@4.0.2(postcss@8.4.47)(ts-node@10.9.2(@swc/core@1.7.22(@swc/helpers@0.5.5))(@types/node@22.5.1)(typescript@5.3.3)):
postcss-load-config@4.0.2(postcss@8.4.47)(ts-node@10.9.2(@swc/core@1.7.22)(@types/node@22.5.1)(typescript@5.3.3)):
dependencies:
lilconfig: 3.0.0
yaml: 2.5.0
optionalDependencies:
postcss: 8.4.47
ts-node: 10.9.2(@swc/core@1.7.22(@swc/helpers@0.5.5))(@types/node@22.5.1)(typescript@5.3.3)
ts-node: 10.9.2(@swc/core@1.7.22)(@types/node@22.5.1)(typescript@5.3.3)
postcss-load-config@4.0.2(postcss@8.4.47)(ts-node@10.9.2(@swc/core@1.7.22(@swc/helpers@0.5.5))(@types/node@22.5.1)(typescript@5.6.2)):
postcss-load-config@4.0.2(postcss@8.4.47)(ts-node@10.9.2(@swc/core@1.7.22)(@types/node@22.5.1)(typescript@5.6.2)):
dependencies:
lilconfig: 3.0.0
yaml: 2.5.0
optionalDependencies:
postcss: 8.4.47
ts-node: 10.9.2(@swc/core@1.7.22(@swc/helpers@0.5.5))(@types/node@22.5.1)(typescript@5.6.2)
ts-node: 10.9.2(@swc/core@1.7.22)(@types/node@22.5.1)(typescript@5.6.2)
postcss-nested@5.0.6(postcss@8.4.47):
dependencies:
@@ -20189,11 +20189,11 @@ snapshots:
tailwind-merge@1.14.0: {}
tailwindcss-animate@1.0.7(tailwindcss@3.3.2(ts-node@10.9.2(@swc/core@1.7.22(@swc/helpers@0.5.5))(@types/node@22.5.1)(typescript@5.3.3))):
tailwindcss-animate@1.0.7(tailwindcss@3.3.2(ts-node@10.9.2(@swc/core@1.7.22)(@types/node@22.5.1)(typescript@5.3.3))):
dependencies:
tailwindcss: 3.3.2(ts-node@10.9.2(@swc/core@1.7.22(@swc/helpers@0.5.5))(@types/node@22.5.1)(typescript@5.3.3))
tailwindcss: 3.3.2(ts-node@10.9.2(@swc/core@1.7.22)(@types/node@22.5.1)(typescript@5.3.3))
tailwindcss@3.3.2(ts-node@10.9.2(@swc/core@1.7.22(@swc/helpers@0.5.5))(@types/node@22.5.1)(typescript@5.3.3)):
tailwindcss@3.3.2(ts-node@10.9.2(@swc/core@1.7.22)(@types/node@22.5.1)(typescript@5.3.3)):
dependencies:
'@alloc/quick-lru': 5.2.0
arg: 5.0.2
@@ -20212,7 +20212,7 @@ snapshots:
postcss: 8.4.47
postcss-import: 15.1.0(postcss@8.4.47)
postcss-js: 4.0.1(postcss@8.4.47)
postcss-load-config: 4.0.2(postcss@8.4.47)(ts-node@10.9.2(@swc/core@1.7.22(@swc/helpers@0.5.5))(@types/node@22.5.1)(typescript@5.3.3))
postcss-load-config: 4.0.2(postcss@8.4.47)(ts-node@10.9.2(@swc/core@1.7.22)(@types/node@22.5.1)(typescript@5.3.3))
postcss-nested: 6.0.1(postcss@8.4.47)
postcss-selector-parser: 6.0.13
postcss-value-parser: 4.2.0
@@ -20221,7 +20221,7 @@ snapshots:
transitivePeerDependencies:
- ts-node
tailwindcss@3.3.2(ts-node@10.9.2(@swc/core@1.7.22(@swc/helpers@0.5.5))(@types/node@22.5.1)(typescript@5.6.2)):
tailwindcss@3.3.2(ts-node@10.9.2(@swc/core@1.7.22)(@types/node@22.5.1)(typescript@5.6.2)):
dependencies:
'@alloc/quick-lru': 5.2.0
arg: 5.0.2
@@ -20240,7 +20240,7 @@ snapshots:
postcss: 8.4.47
postcss-import: 15.1.0(postcss@8.4.47)
postcss-js: 4.0.1(postcss@8.4.47)
postcss-load-config: 4.0.2(postcss@8.4.47)(ts-node@10.9.2(@swc/core@1.7.22(@swc/helpers@0.5.5))(@types/node@22.5.1)(typescript@5.6.2))
postcss-load-config: 4.0.2(postcss@8.4.47)(ts-node@10.9.2(@swc/core@1.7.22)(@types/node@22.5.1)(typescript@5.6.2))
postcss-nested: 6.0.1(postcss@8.4.47)
postcss-selector-parser: 6.0.13
postcss-value-parser: 4.2.0
@@ -20405,7 +20405,7 @@ snapshots:
ts-interface-checker@0.1.13: {}
ts-node@10.9.2(@swc/core@1.7.22(@swc/helpers@0.5.5))(@types/node@22.5.1)(typescript@5.3.3):
ts-node@10.9.2(@swc/core@1.7.22)(@types/node@22.5.1)(typescript@5.3.3):
dependencies:
'@cspotcode/source-map-support': 0.8.1
'@tsconfig/node10': 1.0.9
@@ -20426,7 +20426,7 @@ snapshots:
'@swc/core': 1.7.22(@swc/helpers@0.5.5)
optional: true
ts-node@10.9.2(@swc/core@1.7.22(@swc/helpers@0.5.5))(@types/node@22.5.1)(typescript@5.6.2):
ts-node@10.9.2(@swc/core@1.7.22)(@types/node@22.5.1)(typescript@5.6.2):
dependencies:
'@cspotcode/source-map-support': 0.8.1
'@tsconfig/node10': 1.0.9