@dxos/react-client 0.8.4-main.f5c0578 → 0.8.4-main.fcc0d83b33
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.storybook/main.mts +9 -0
- package/.storybook/preview.mts +8 -0
- package/dist/lib/browser/chunk-3LVU7RNK.mjs +16 -0
- package/dist/lib/browser/chunk-3LVU7RNK.mjs.map +7 -0
- package/dist/lib/browser/chunk-CZMIVAGI.mjs +8 -0
- package/dist/lib/browser/chunk-CZMIVAGI.mjs.map +7 -0
- package/dist/lib/browser/chunk-XT352YI6.mjs +134 -0
- package/dist/lib/browser/chunk-XT352YI6.mjs.map +7 -0
- package/dist/lib/browser/{chunk-BXOLJYAY.mjs → chunk-YHE6WD44.mjs} +4 -14
- package/dist/lib/browser/chunk-YHE6WD44.mjs.map +7 -0
- package/dist/lib/browser/devtools/index.mjs +3 -7
- package/dist/lib/browser/devtools/index.mjs.map +2 -2
- package/dist/lib/browser/echo/index.mjs +58 -127
- package/dist/lib/browser/echo/index.mjs.map +4 -4
- package/dist/lib/browser/halo/index.mjs +4 -4
- package/dist/lib/browser/halo/index.mjs.map +2 -2
- package/dist/lib/browser/index.mjs +99 -12
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/invitations/index.mjs +1 -1
- package/dist/lib/browser/mesh/index.mjs +2 -1
- package/dist/lib/browser/mesh/index.mjs.map +1 -1
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/testing/index.mjs +111 -154
- package/dist/lib/browser/testing/index.mjs.map +3 -3
- package/dist/lib/node-esm/chunk-CUDKNAMV.mjs +17 -0
- package/dist/lib/node-esm/chunk-CUDKNAMV.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-256IHY6F.mjs → chunk-RQJPEHDY.mjs} +4 -14
- package/dist/lib/node-esm/chunk-RQJPEHDY.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-WL3Z5HOH.mjs +135 -0
- package/dist/lib/node-esm/chunk-WL3Z5HOH.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-WUTK2IJF.mjs +10 -0
- package/dist/lib/node-esm/chunk-WUTK2IJF.mjs.map +7 -0
- package/dist/lib/node-esm/devtools/index.mjs +3 -7
- package/dist/lib/node-esm/devtools/index.mjs.map +2 -2
- package/dist/lib/node-esm/echo/index.mjs +58 -127
- package/dist/lib/node-esm/echo/index.mjs.map +4 -4
- package/dist/lib/node-esm/halo/index.mjs +4 -4
- package/dist/lib/node-esm/halo/index.mjs.map +2 -2
- package/dist/lib/node-esm/index.mjs +99 -12
- package/dist/lib/node-esm/index.mjs.map +4 -4
- package/dist/lib/node-esm/invitations/index.mjs +1 -1
- package/dist/lib/node-esm/mesh/index.mjs +2 -1
- package/dist/lib/node-esm/mesh/index.mjs.map +1 -1
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/testing/index.mjs +111 -154
- package/dist/lib/node-esm/testing/index.mjs.map +3 -3
- package/dist/types/src/banner.d.ts.map +1 -1
- package/dist/types/src/client/AgentHostingProvider.d.ts.map +1 -1
- package/dist/types/src/client/ClientProvider.d.ts +1 -11
- package/dist/types/src/client/ClientProvider.d.ts.map +1 -1
- package/dist/types/src/client/useClientStatus.d.ts.map +1 -1
- package/dist/types/src/devtools/useStream.d.ts.map +1 -1
- package/dist/types/src/echo/index.d.ts +2 -2
- package/dist/types/src/echo/index.d.ts.map +1 -1
- package/dist/types/src/echo/useMembers.d.ts +2 -2
- package/dist/types/src/echo/useMembers.d.ts.map +1 -1
- package/dist/types/src/echo/useQueue.d.ts +3 -2
- package/dist/types/src/echo/useQueue.d.ts.map +1 -1
- package/dist/types/src/echo/useSpaceInvitations.d.ts +3 -2
- package/dist/types/src/echo/useSpaceInvitations.d.ts.map +1 -1
- package/dist/types/src/echo/useSpaceProperties.d.ts +13 -0
- package/dist/types/src/echo/useSpaceProperties.d.ts.map +1 -0
- package/dist/types/src/echo/useSpaces.d.ts +19 -9
- package/dist/types/src/echo/useSpaces.d.ts.map +1 -1
- package/dist/types/src/echo/useSubscription.d.ts +1 -1
- package/dist/types/src/echo/useSubscription.d.ts.map +1 -1
- package/dist/types/src/echo/useSyncState.d.ts.map +1 -1
- package/dist/types/src/halo/Passkey.stories.d.ts +5 -5
- package/dist/types/src/halo/Passkey.stories.d.ts.map +1 -1
- package/dist/types/src/halo/useHaloInvitations.d.ts.map +1 -1
- package/dist/types/src/halo/useKeyStore.d.ts.map +1 -1
- package/dist/types/src/invitations/useInvitationStatus.d.ts +1 -1
- package/dist/types/src/invitations/useInvitationStatus.d.ts.map +1 -1
- package/dist/types/src/testing/ClientRepeater.d.ts +6 -5
- package/dist/types/src/testing/ClientRepeater.d.ts.map +1 -1
- package/dist/types/src/testing/ClientRepeater.stories.d.ts +6 -10
- package/dist/types/src/testing/ClientRepeater.stories.d.ts.map +1 -1
- package/dist/types/src/testing/context.d.ts +4 -2
- package/dist/types/src/testing/context.d.ts.map +1 -1
- package/dist/types/src/testing/util.d.ts.map +1 -1
- package/dist/types/src/testing/withClientProvider.d.ts +5 -9
- package/dist/types/src/testing/withClientProvider.d.ts.map +1 -1
- package/dist/types/src/testing/withClientProvider.stories.d.ts +8 -9
- package/dist/types/src/testing/withClientProvider.stories.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/docs/README.md +38 -38
- package/moon.yml +3 -2
- package/package.json +35 -58
- package/src/client/ClientProvider.test.tsx +0 -1
- package/src/client/ClientProvider.tsx +29 -48
- package/src/client/useConfig.test.tsx +0 -1
- package/src/echo/index.ts +2 -2
- package/src/echo/useMembers.ts +5 -3
- package/src/echo/useQueue.ts +3 -4
- package/src/echo/useSpaceInvitations.ts +9 -5
- package/src/echo/useSpaceProperties.ts +28 -0
- package/src/echo/useSpaces.test.tsx +7 -14
- package/src/echo/useSpaces.ts +32 -30
- package/src/echo/useSubscription.ts +1 -1
- package/src/echo/useSyncState.ts +4 -3
- package/src/halo/Passkey.stories.tsx +17 -18
- package/src/halo/useDevices.test.tsx +0 -1
- package/src/invitations/useInvitationStatus.ts +9 -8
- package/src/testing/ClientRepeater.stories.tsx +21 -16
- package/src/testing/ClientRepeater.tsx +31 -40
- package/src/testing/context.tsx +4 -3
- package/src/testing/util.tsx +0 -1
- package/src/testing/withClientProvider.stories.tsx +33 -20
- package/src/testing/withClientProvider.tsx +74 -92
- package/tsconfig.json +3 -6
- package/typedoc.json +1 -1
- package/vitest.config.ts +10 -16
- package/.swc/plugins/v7_linux_x86_64_13.0.0/c614d7475354583212fbd7669acbae95b9832c305bf51bdaabe2e6de05abb6bf +0 -0
- package/dist/lib/browser/chunk-BXOLJYAY.mjs.map +0 -7
- package/dist/lib/browser/chunk-FQAPI3I4.mjs +0 -312
- package/dist/lib/browser/chunk-FQAPI3I4.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-256IHY6F.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-MNTJNI2M.mjs +0 -314
- package/dist/lib/node-esm/chunk-MNTJNI2M.mjs.map +0 -7
- package/dist/types/src/echo/useQuery.d.ts +0 -11
- package/dist/types/src/echo/useQuery.d.ts.map +0 -1
- package/dist/types/src/echo/useQuery.test.d.ts +0 -2
- package/dist/types/src/echo/useQuery.test.d.ts.map +0 -1
- package/dist/types/src/echo/useSchema.d.ts +0 -8
- package/dist/types/src/echo/useSchema.d.ts.map +0 -1
- package/dist/types/src/playwright/playwright.config.d.ts +0 -3
- package/dist/types/src/playwright/playwright.config.d.ts.map +0 -1
- package/dist/types/src/playwright/smoke.spec.d.ts +0 -2
- package/dist/types/src/playwright/smoke.spec.d.ts.map +0 -1
- package/src/echo/useQuery.test.tsx +0 -129
- package/src/echo/useQuery.ts +0 -56
- package/src/echo/useSchema.ts +0 -54
- package/src/playwright/playwright.config.ts +0 -17
- package/src/playwright/smoke.spec.ts +0 -24
package/src/echo/useQuery.ts
DELETED
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
//
|
|
2
|
-
// Copyright 2022 DXOS.org
|
|
3
|
-
//
|
|
4
|
-
|
|
5
|
-
import { useMemo, useSyncExternalStore } from 'react';
|
|
6
|
-
|
|
7
|
-
import { type Echo, Filter, type Live, Query, type Space, isSpace } from '@dxos/client/echo';
|
|
8
|
-
|
|
9
|
-
const EMPTY_ARRAY: never[] = [];
|
|
10
|
-
|
|
11
|
-
const noop = () => {};
|
|
12
|
-
|
|
13
|
-
// TODO(dmaretskyi): Queries are fully serializable, so we can remove `deps` argument.
|
|
14
|
-
interface UseQueryFn {
|
|
15
|
-
<Q extends Query.Any>(spaceOrEcho: Space | Echo | undefined, query: Q, deps?: any[]): Live<Query.Type<Q>>[];
|
|
16
|
-
|
|
17
|
-
<F extends Filter.Any>(spaceOrEcho: Space | Echo | undefined, filter: F, deps?: any[]): Live<Filter.Type<F>>[];
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
/**
|
|
21
|
-
* Create subscription.
|
|
22
|
-
*/
|
|
23
|
-
export const useQuery: UseQueryFn = (
|
|
24
|
-
spaceOrEcho: Space | Echo | undefined,
|
|
25
|
-
queryOrFilter: Query.Any | Filter.Any,
|
|
26
|
-
deps?: any[],
|
|
27
|
-
): Live<unknown>[] => {
|
|
28
|
-
const query = Filter.is(queryOrFilter) ? Query.select(queryOrFilter) : queryOrFilter;
|
|
29
|
-
|
|
30
|
-
const { getObjects, subscribe } = useMemo(() => {
|
|
31
|
-
let subscribed = false;
|
|
32
|
-
const queryResult =
|
|
33
|
-
spaceOrEcho === undefined
|
|
34
|
-
? undefined
|
|
35
|
-
: isSpace(spaceOrEcho)
|
|
36
|
-
? spaceOrEcho.db.query(query)
|
|
37
|
-
: spaceOrEcho.query(query);
|
|
38
|
-
|
|
39
|
-
return {
|
|
40
|
-
getObjects: () => (subscribed && queryResult ? queryResult.objects : EMPTY_ARRAY),
|
|
41
|
-
subscribe: (cb: () => void) => {
|
|
42
|
-
subscribed = true;
|
|
43
|
-
const unsubscribe = queryResult?.subscribe(cb) ?? noop;
|
|
44
|
-
return () => {
|
|
45
|
-
unsubscribe?.();
|
|
46
|
-
subscribed = false;
|
|
47
|
-
};
|
|
48
|
-
},
|
|
49
|
-
};
|
|
50
|
-
}, [spaceOrEcho, JSON.stringify(query.ast), ...(deps ?? [])]);
|
|
51
|
-
|
|
52
|
-
// https://beta.reactjs.org/reference/react/useSyncExternalStore
|
|
53
|
-
// NOTE: This hook will resubscribe whenever the callback passed to the first argument changes; make sure it is stable.
|
|
54
|
-
const objects = useSyncExternalStore<Live<unknown>[] | undefined>(subscribe, getObjects);
|
|
55
|
-
return objects ?? [];
|
|
56
|
-
};
|
package/src/echo/useSchema.ts
DELETED
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
//
|
|
2
|
-
// Copyright 2025 DXOS.org
|
|
3
|
-
//
|
|
4
|
-
|
|
5
|
-
import { type Schema } from 'effect';
|
|
6
|
-
import { useMemo, useSyncExternalStore } from 'react';
|
|
7
|
-
|
|
8
|
-
import { type Client } from '@dxos/client';
|
|
9
|
-
import { type Space } from '@dxos/client/echo';
|
|
10
|
-
import { type BaseSchema } from '@dxos/echo-schema';
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* Subscribe to and retrieve schema changes from a space's schema registry.
|
|
14
|
-
*/
|
|
15
|
-
export const useSchema = (
|
|
16
|
-
client: Client,
|
|
17
|
-
space: Space | undefined,
|
|
18
|
-
typename: string | undefined,
|
|
19
|
-
): Schema.Schema.AnyNoContext | undefined => {
|
|
20
|
-
const { subscribe, getSchema } = useMemo(() => {
|
|
21
|
-
if (!typename || !space) {
|
|
22
|
-
return {
|
|
23
|
-
subscribe: () => () => {},
|
|
24
|
-
getSchema: () => undefined,
|
|
25
|
-
};
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
const staticSchema = client.graph.schemaRegistry.getSchema(typename);
|
|
29
|
-
if (staticSchema) {
|
|
30
|
-
return {
|
|
31
|
-
subscribe: () => () => {},
|
|
32
|
-
getSchema: () => staticSchema,
|
|
33
|
-
};
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
const query = space.db.schemaRegistry.query({ typename });
|
|
37
|
-
const initialResult: BaseSchema = query.runSync()[0];
|
|
38
|
-
let currentSchema = initialResult;
|
|
39
|
-
|
|
40
|
-
return {
|
|
41
|
-
subscribe: (onStoreChange: () => void) => {
|
|
42
|
-
const unsubscribe = query.subscribe(() => {
|
|
43
|
-
currentSchema = query.results[0];
|
|
44
|
-
onStoreChange();
|
|
45
|
-
});
|
|
46
|
-
|
|
47
|
-
return unsubscribe;
|
|
48
|
-
},
|
|
49
|
-
getSchema: () => currentSchema,
|
|
50
|
-
};
|
|
51
|
-
}, [typename, space]);
|
|
52
|
-
|
|
53
|
-
return useSyncExternalStore(subscribe, getSchema);
|
|
54
|
-
};
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
//
|
|
2
|
-
// Copyright 2023 DXOS.org
|
|
3
|
-
//
|
|
4
|
-
|
|
5
|
-
import { defineConfig } from '@playwright/test';
|
|
6
|
-
|
|
7
|
-
import { e2ePreset } from '@dxos/test-utils/playwright';
|
|
8
|
-
|
|
9
|
-
export default defineConfig({
|
|
10
|
-
...e2ePreset(import.meta.dirname),
|
|
11
|
-
// TODO(wittjosiah): Avoid hard-coding ports.
|
|
12
|
-
webServer: {
|
|
13
|
-
command: 'moon run storybook:serve-e2e -- --port=9000',
|
|
14
|
-
port: 9000,
|
|
15
|
-
reuseExistingServer: false,
|
|
16
|
-
},
|
|
17
|
-
});
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
//
|
|
2
|
-
// Copyright 2021 DXOS.org
|
|
3
|
-
//
|
|
4
|
-
|
|
5
|
-
import { type Page, expect, test } from '@playwright/test';
|
|
6
|
-
|
|
7
|
-
import { setupPage, storybookUrl } from '@dxos/test-utils/playwright';
|
|
8
|
-
|
|
9
|
-
test.describe('Smoke test', () => {
|
|
10
|
-
let page: Page;
|
|
11
|
-
|
|
12
|
-
test.beforeAll(async ({ browser }) => {
|
|
13
|
-
const result = await setupPage(browser, {
|
|
14
|
-
url: storybookUrl('sdk-react-client-withclientprovider--default', 9000),
|
|
15
|
-
});
|
|
16
|
-
page = result.page;
|
|
17
|
-
await page.locator(':text("initialized")').waitFor({ state: 'visible' });
|
|
18
|
-
});
|
|
19
|
-
|
|
20
|
-
// NOTE: This test depends on connecting to the default production deployed HALO vault.
|
|
21
|
-
test('Renders remote client info', async () => {
|
|
22
|
-
await expect(page.locator(':text("initialized")')).toBeVisible();
|
|
23
|
-
});
|
|
24
|
-
});
|