@dxos/plugin-client 0.7.5-labs.a279d8c → 0.7.5-labs.f5080a1
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/dist/lib/browser/{app-graph-builder-6LOTDB4T.mjs → app-graph-builder-ZC2XASZM.mjs} +2 -2
- package/dist/lib/browser/chunk-BL7RMTCN.mjs +271 -0
- package/dist/lib/browser/chunk-BL7RMTCN.mjs.map +7 -0
- package/dist/lib/browser/{chunk-SVBQRT7I.mjs → chunk-MSK3TLIH.mjs} +1 -1
- package/dist/lib/browser/{chunk-SVBQRT7I.mjs.map → chunk-MSK3TLIH.mjs.map} +2 -2
- package/dist/lib/browser/{chunk-R4Q6H7RD.mjs → chunk-RGMLBYIF.mjs} +2 -2
- package/dist/lib/browser/{chunk-R4Q6H7RD.mjs.map → chunk-RGMLBYIF.mjs.map} +2 -2
- package/dist/lib/browser/{chunk-E3OUNOEL.mjs → chunk-S5RA7VCJ.mjs} +7 -1
- package/dist/lib/browser/{chunk-E3OUNOEL.mjs.map → chunk-S5RA7VCJ.mjs.map} +3 -3
- package/dist/lib/browser/{client-25GYH6TN.mjs → client-BY3RGW3H.mjs} +4 -13
- package/dist/lib/browser/client-BY3RGW3H.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +27 -14
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/intent-resolver-JWBGBN5W.mjs +229 -0
- package/dist/lib/browser/intent-resolver-JWBGBN5W.mjs.map +7 -0
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/{react-context-M3RT6SSG.mjs → react-context-PHX2CVI7.mjs} +2 -2
- package/dist/lib/browser/{react-surface-XXONPG5T.mjs → react-surface-BYR3FEBZ.mjs} +23 -7
- package/dist/lib/browser/react-surface-BYR3FEBZ.mjs.map +7 -0
- package/dist/lib/browser/schema-AL34NY2M.mjs +33 -0
- package/dist/lib/browser/schema-AL34NY2M.mjs.map +7 -0
- package/dist/lib/browser/types.mjs +1 -1
- package/dist/lib/node/{app-graph-builder-JCND3P6G.cjs → app-graph-builder-KJRHSGZI.cjs} +6 -6
- package/dist/lib/node/chunk-JXRPLNW4.cjs +299 -0
- package/dist/lib/node/chunk-JXRPLNW4.cjs.map +7 -0
- package/dist/lib/node/{chunk-IXVWJCYB.cjs → chunk-XPC4JOPP.cjs} +5 -5
- package/dist/lib/node/{chunk-IXVWJCYB.cjs.map → chunk-XPC4JOPP.cjs.map} +2 -2
- package/dist/lib/node/{chunk-3OB25QN2.cjs → chunk-ZI7AV5RP.cjs} +4 -4
- package/dist/lib/node/{chunk-3OB25QN2.cjs.map → chunk-ZI7AV5RP.cjs.map} +2 -2
- package/dist/lib/node/{chunk-NVYWMDF3.cjs → chunk-ZZQOY2DR.cjs} +10 -4
- package/dist/lib/node/{chunk-NVYWMDF3.cjs.map → chunk-ZZQOY2DR.cjs.map} +3 -3
- package/dist/lib/node/{client-52L4TUYU.cjs → client-JCI7A3IV.cjs} +9 -18
- package/dist/lib/node/client-JCI7A3IV.cjs.map +7 -0
- package/dist/lib/node/index.cjs +29 -16
- package/dist/lib/node/index.cjs.map +3 -3
- package/dist/lib/node/intent-resolver-MXB5UAG2.cjs +237 -0
- package/dist/lib/node/intent-resolver-MXB5UAG2.cjs.map +7 -0
- package/dist/lib/node/meta.json +1 -1
- package/dist/lib/node/{react-context-B2DNULH4.cjs → react-context-WMOFXPT4.cjs} +6 -6
- package/dist/lib/node/{react-surface-7USN5NOO.cjs → react-surface-XRKRQ6SU.cjs} +28 -16
- package/dist/lib/node/react-surface-XRKRQ6SU.cjs.map +7 -0
- package/dist/lib/node/schema-HW4W3QYU.cjs +49 -0
- package/dist/lib/node/schema-HW4W3QYU.cjs.map +7 -0
- package/dist/lib/node/types.cjs +2 -2
- package/dist/lib/node/types.cjs.map +1 -1
- package/dist/lib/node-esm/{app-graph-builder-ZLGKFBLY.mjs → app-graph-builder-BUQOWBIC.mjs} +2 -2
- package/dist/lib/node-esm/chunk-3MN2GGX3.mjs +272 -0
- package/dist/lib/node-esm/chunk-3MN2GGX3.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-OBGRL3DF.mjs → chunk-B73LKPGU.mjs} +1 -1
- package/dist/lib/node-esm/{chunk-OBGRL3DF.mjs.map → chunk-B73LKPGU.mjs.map} +2 -2
- package/dist/lib/node-esm/{chunk-74T33KTB.mjs → chunk-HWAZ7QK3.mjs} +7 -1
- package/dist/lib/node-esm/{chunk-74T33KTB.mjs.map → chunk-HWAZ7QK3.mjs.map} +3 -3
- package/dist/lib/node-esm/{chunk-73M5MK5Q.mjs → chunk-QR72BXJK.mjs} +2 -2
- package/dist/lib/node-esm/{chunk-73M5MK5Q.mjs.map → chunk-QR72BXJK.mjs.map} +2 -2
- package/dist/lib/node-esm/{client-K52NWOUN.mjs → client-XWK653HB.mjs} +4 -13
- package/dist/lib/node-esm/client-XWK653HB.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +27 -14
- package/dist/lib/node-esm/index.mjs.map +3 -3
- package/dist/lib/node-esm/intent-resolver-IVP2U2NS.mjs +230 -0
- package/dist/lib/node-esm/intent-resolver-IVP2U2NS.mjs.map +7 -0
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/{react-context-IGEHJQK5.mjs → react-context-EEGDXBWA.mjs} +2 -2
- package/dist/lib/node-esm/{react-surface-CXLBCMPN.mjs → react-surface-JB3PGT5D.mjs} +23 -7
- package/dist/lib/node-esm/react-surface-JB3PGT5D.mjs.map +7 -0
- package/dist/lib/node-esm/schema-74LVJ3EU.mjs +34 -0
- package/dist/lib/node-esm/schema-74LVJ3EU.mjs.map +7 -0
- package/dist/lib/node-esm/types.mjs +1 -1
- package/dist/types/src/ClientPlugin.d.ts.map +1 -1
- package/dist/types/src/capabilities/app-graph-builder.d.ts +22 -22
- package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
- package/dist/types/src/capabilities/capabilities.d.ts.map +1 -1
- package/dist/types/src/capabilities/client.d.ts.map +1 -1
- package/dist/types/src/capabilities/index.d.ts +31 -29
- package/dist/types/src/capabilities/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/intent-resolver.d.ts +2 -1
- package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
- package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
- package/dist/types/src/capabilities/schema.d.ts +4 -0
- package/dist/types/src/capabilities/schema.d.ts.map +1 -0
- package/dist/types/src/components/IdentityDialog.d.ts.map +1 -1
- package/dist/types/src/components/ManageCredentialsDialog.d.ts +4 -0
- package/dist/types/src/components/ManageCredentialsDialog.d.ts.map +1 -0
- package/dist/types/src/components/ManageCredentialsDialog.stories.d.ts +8 -0
- package/dist/types/src/components/ManageCredentialsDialog.stories.d.ts.map +1 -0
- package/dist/types/src/components/RecoveryCodeDialog.d.ts.map +1 -1
- package/dist/types/src/components/RecoverySetupDialog.d.ts +4 -0
- package/dist/types/src/components/RecoverySetupDialog.d.ts.map +1 -0
- package/dist/types/src/components/RecoverySetupDialog.stories.d.ts +8 -0
- package/dist/types/src/components/RecoverySetupDialog.stories.d.ts.map +1 -0
- package/dist/types/src/components/index.d.ts +1 -0
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/events.d.ts +1 -1
- package/dist/types/src/translations.d.ts +7 -0
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types.d.ts +8 -0
- package/dist/types/src/types.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +22 -17
- package/src/ClientPlugin.ts +10 -5
- package/src/capabilities/capabilities.ts +1 -0
- package/src/capabilities/client.ts +1 -9
- package/src/capabilities/index.ts +1 -0
- package/src/capabilities/intent-resolver.ts +136 -67
- package/src/capabilities/react-surface.tsx +21 -6
- package/src/capabilities/schema.ts +36 -0
- package/src/components/IdentityDialog.tsx +15 -3
- package/src/components/JoinDialog.tsx +1 -1
- package/src/components/ManageCredentialsDialog.stories.tsx +57 -0
- package/src/components/ManageCredentialsDialog.tsx +64 -0
- package/src/components/RecoveryCodeDialog.stories.tsx +5 -5
- package/src/components/RecoveryCodeDialog.tsx +2 -1
- package/src/components/RecoverySetupDialog.stories.tsx +77 -0
- package/src/components/RecoverySetupDialog.tsx +52 -0
- package/src/components/index.ts +1 -0
- package/src/events.ts +1 -1
- package/src/translations.ts +10 -1
- package/src/types.ts +5 -0
- package/dist/lib/browser/chunk-6IF6PREG.mjs +0 -158
- package/dist/lib/browser/chunk-6IF6PREG.mjs.map +0 -7
- package/dist/lib/browser/client-25GYH6TN.mjs.map +0 -7
- package/dist/lib/browser/intent-resolver-IWWLWOZD.mjs +0 -132
- package/dist/lib/browser/intent-resolver-IWWLWOZD.mjs.map +0 -7
- package/dist/lib/browser/react-surface-XXONPG5T.mjs.map +0 -7
- package/dist/lib/node/chunk-N3U7KVO3.cjs +0 -186
- package/dist/lib/node/chunk-N3U7KVO3.cjs.map +0 -7
- package/dist/lib/node/client-52L4TUYU.cjs.map +0 -7
- package/dist/lib/node/intent-resolver-H3Y64MIP.cjs +0 -140
- package/dist/lib/node/intent-resolver-H3Y64MIP.cjs.map +0 -7
- package/dist/lib/node/react-surface-7USN5NOO.cjs.map +0 -7
- package/dist/lib/node-esm/chunk-EHGD3UJH.mjs +0 -159
- package/dist/lib/node-esm/chunk-EHGD3UJH.mjs.map +0 -7
- package/dist/lib/node-esm/client-K52NWOUN.mjs.map +0 -7
- package/dist/lib/node-esm/intent-resolver-JCKD6R6L.mjs +0 -133
- package/dist/lib/node-esm/intent-resolver-JCKD6R6L.mjs.map +0 -7
- package/dist/lib/node-esm/react-surface-CXLBCMPN.mjs.map +0 -7
- /package/dist/lib/browser/{app-graph-builder-6LOTDB4T.mjs.map → app-graph-builder-ZC2XASZM.mjs.map} +0 -0
- /package/dist/lib/browser/{react-context-M3RT6SSG.mjs.map → react-context-PHX2CVI7.mjs.map} +0 -0
- /package/dist/lib/node/{app-graph-builder-JCND3P6G.cjs.map → app-graph-builder-KJRHSGZI.cjs.map} +0 -0
- /package/dist/lib/node/{react-context-B2DNULH4.cjs.map → react-context-WMOFXPT4.cjs.map} +0 -0
- /package/dist/lib/node-esm/{app-graph-builder-ZLGKFBLY.mjs.map → app-graph-builder-BUQOWBIC.mjs.map} +0 -0
- /package/dist/lib/node-esm/{react-context-IGEHJQK5.mjs.map → react-context-EEGDXBWA.mjs.map} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"intent-resolver.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/intent-resolver.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,YAAY,EAKZ,KAAK,cAAc,EACpB,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"intent-resolver.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/intent-resolver.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,YAAY,EAKZ,KAAK,cAAc,EACpB,MAAM,qBAAqB,CAAC;AAS7B,OAAO,EAAgB,KAAK,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAElE,KAAK,qBAAqB,GAAG,IAAI,CAAC,mBAAmB,EAAE,SAAS,CAAC,GAAG;IAClE,OAAO,EAAE,cAAc,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;wDAE0D,qBAAqB;AAAjF,wBA8IK"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"react-surface.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/react-surface.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAiB,YAAY,EAAe,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"react-surface.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/react-surface.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAiB,YAAY,EAAe,MAAM,qBAAqB,CAAC;AAgB/E,KAAK,mBAAmB,GAAG;IACzB,mBAAmB,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,MAAM,CAAC;CACzD,CAAC;kDAEuC,mBAAmB;AAA5D,wBAgCK"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/schema.ts"],"names":[],"mappings":"AAMA,OAAO,EAA6B,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC;kCAM5D,cAAc;AAAvC,wBAuBE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IdentityDialog.d.ts","sourceRoot":"","sources":["../../../../src/components/IdentityDialog.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAsB,MAAM,OAAO,CAAC;AAK3C,OAAO,EAAiB,KAAK,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"IdentityDialog.d.ts","sourceRoot":"","sources":["../../../../src/components/IdentityDialog.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAsB,MAAM,OAAO,CAAC;AAK3C,OAAO,EAAiB,KAAK,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAM3E,eAAO,MAAM,eAAe,0CAAoC,CAAC;AAEjE,eAAO,MAAM,cAAc,UAAW,kBAAkB,sBAuDvD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ManageCredentialsDialog.d.ts","sourceRoot":"","sources":["../../../../src/components/ManageCredentialsDialog.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAkB,MAAM,OAAO,CAAC;AAUvC,eAAO,MAAM,yBAAyB,mDAA6C,CAAC;AAGpF,eAAO,MAAM,uBAAuB,yBA6CnC,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import '@dxos-theme';
|
|
2
|
+
import { type StoryObj, type Meta } from '@storybook/react';
|
|
3
|
+
import { ManageCredentialsDialog } from './ManageCredentialsDialog';
|
|
4
|
+
declare const meta: Meta;
|
|
5
|
+
export default meta;
|
|
6
|
+
type Story = StoryObj<typeof ManageCredentialsDialog>;
|
|
7
|
+
export declare const Default: Story;
|
|
8
|
+
//# sourceMappingURL=ManageCredentialsDialog.stories.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ManageCredentialsDialog.stories.d.ts","sourceRoot":"","sources":["../../../../src/components/ManageCredentialsDialog.stories.tsx"],"names":[],"mappings":"AAIA,OAAO,aAAa,CAAC;AAErB,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAQ5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAcpE,QAAA,MAAM,IAAI,EAAE,IAsBX,CAAC;AAEF,eAAe,IAAI,CAAC;AAEpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAEtD,eAAO,MAAM,OAAO,EAAE,KAAU,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RecoveryCodeDialog.d.ts","sourceRoot":"","sources":["../../../../src/components/RecoveryCodeDialog.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAgC,MAAM,OAAO,CAAC;AAMrD,eAAO,MAAM,mBAAmB,8CAAwC,CAAC;AAEzE,MAAM,MAAM,uBAAuB,GAAG;IACpC,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;
|
|
1
|
+
{"version":3,"file":"RecoveryCodeDialog.d.ts","sourceRoot":"","sources":["../../../../src/components/RecoveryCodeDialog.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAgC,MAAM,OAAO,CAAC;AAMrD,eAAO,MAAM,mBAAmB,8CAAwC,CAAC;AAEzE,MAAM,MAAM,uBAAuB,GAAG;IACpC,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAGF,eAAO,MAAM,kBAAkB,aAAc,uBAAuB,sBAoCnE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RecoverySetupDialog.d.ts","sourceRoot":"","sources":["../../../../src/components/RecoverySetupDialog.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAkB,MAAM,OAAO,CAAC;AASvC,eAAO,MAAM,oBAAoB,+CAAyC,CAAC;AAG3E,eAAO,MAAM,mBAAmB,yBAkC/B,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import '@dxos-theme';
|
|
2
|
+
import { type StoryObj, type Meta } from '@storybook/react';
|
|
3
|
+
import { RecoverySetupDialog } from './RecoverySetupDialog';
|
|
4
|
+
declare const meta: Meta;
|
|
5
|
+
export default meta;
|
|
6
|
+
type Story = StoryObj<typeof RecoverySetupDialog>;
|
|
7
|
+
export declare const Default: Story;
|
|
8
|
+
//# sourceMappingURL=RecoverySetupDialog.stories.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RecoverySetupDialog.stories.d.ts","sourceRoot":"","sources":["../../../../src/components/RecoverySetupDialog.stories.tsx"],"names":[],"mappings":"AAIA,OAAO,aAAa,CAAC;AAErB,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAW5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAgB5D,QAAA,MAAM,IAAI,EAAE,IAqCX,CAAC;AAEF,eAAe,IAAI,CAAC;AAEpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAElD,eAAO,MAAM,OAAO,EAAE,KAAU,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/index.ts"],"names":[],"mappings":"AAIA,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/index.ts"],"names":[],"mappings":"AAIA,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export declare namespace ClientEvents {
|
|
2
|
-
const SetupClient: import("@dxos/app-framework").ActivationEvent;
|
|
3
2
|
const ClientReady: import("@dxos/app-framework").ActivationEvent;
|
|
3
|
+
const SetupSchema: import("@dxos/app-framework").ActivationEvent;
|
|
4
4
|
const IdentityCreated: import("@dxos/app-framework").ActivationEvent;
|
|
5
5
|
const SpacesReady: import("@dxos/app-framework").ActivationEvent;
|
|
6
6
|
}
|
|
@@ -2,6 +2,13 @@ declare const _default: {
|
|
|
2
2
|
'en-US': {
|
|
3
3
|
"dxos.org/plugin/client": {
|
|
4
4
|
'open shell label': string;
|
|
5
|
+
'manage credentials dialog title': string;
|
|
6
|
+
'recovery setup dialog title': string;
|
|
7
|
+
'recovery setup dialog description': string;
|
|
8
|
+
'create passkey label': string;
|
|
9
|
+
'create passkey description': string;
|
|
10
|
+
'create recovery code label': string;
|
|
11
|
+
'create recovery code description': string;
|
|
5
12
|
'recovery code dialog title': string;
|
|
6
13
|
'recovery code dialog description': string;
|
|
7
14
|
'recovery code dialog warning 1': string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"translations.d.ts","sourceRoot":"","sources":["../../../src/translations.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"translations.d.ts","sourceRoot":"","sources":["../../../src/translations.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAMA,wBAyBE"}
|
|
@@ -73,6 +73,14 @@ export declare namespace ClientAction {
|
|
|
73
73
|
}>;
|
|
74
74
|
export class CreateRecoveryCode extends CreateRecoveryCode_base {
|
|
75
75
|
}
|
|
76
|
+
const CreatePasskey_base: S.TaggedClass<CreatePasskey, "dxos.org/plugin/client/action/create-passkey", {
|
|
77
|
+
readonly _tag: S.tag<"dxos.org/plugin/client/action/create-passkey">;
|
|
78
|
+
} & {
|
|
79
|
+
input: typeof S.Void;
|
|
80
|
+
output: typeof S.Void;
|
|
81
|
+
}>;
|
|
82
|
+
export class CreatePasskey extends CreatePasskey_base {
|
|
83
|
+
}
|
|
76
84
|
export {};
|
|
77
85
|
}
|
|
78
86
|
export type ClientPluginOptions = ClientOptions & {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,CAAC,EAAE,MAAM,mBAAmB,CAAC;AACtC,OAAO,EAAE,KAAK,MAAM,EAAE,SAAS,EAAE,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAChF,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AAkB/C,yBAAiB,YAAY,CAAC;;;;;;;;;;;;;;;;;IAC5B,MAAM,OAAO,cAAe,SAAQ,mBAKlC;KAAG;;;;;;;;;IAEL,MAAM,OAAO,YAAa,SAAQ,iBAKhC;KAAG;;;;;;;IAEL,MAAM,OAAO,aAAc,SAAQ,kBAGjC;KAAG;;;;;;;IAEL,MAAM,OAAO,eAAgB,SAAQ,oBAGnC;KAAG;;;;;;;;;IAEL,MAAM,OAAO,YAAa,SAAQ,iBAKhC;KAAG;;;;;;;IAEL,MAAM,OAAO,WAAY,SAAQ,gBAG/B;KAAG;;;;;;;IAEL,MAAM,OAAO,kBAAmB,SAAQ,uBAGtC;KAAG;;CACN;AAED,MAAM,MAAM,mBAAmB,GAAG,aAAa,GAAG;IAChD;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB;;OAEG;IACH,mBAAmB,CAAC,EAAE,CAAC,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,KAAK,YAAY,CAAC,IAAI,CAAC,CAAC;IAEtF;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,YAAY,CAAC,IAAI,CAAC,CAAC;CAC/D,CAAC"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,CAAC,EAAE,MAAM,mBAAmB,CAAC;AACtC,OAAO,EAAE,KAAK,MAAM,EAAE,SAAS,EAAE,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAChF,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AAkB/C,yBAAiB,YAAY,CAAC;;;;;;;;;;;;;;;;;IAC5B,MAAM,OAAO,cAAe,SAAQ,mBAKlC;KAAG;;;;;;;;;IAEL,MAAM,OAAO,YAAa,SAAQ,iBAKhC;KAAG;;;;;;;IAEL,MAAM,OAAO,aAAc,SAAQ,kBAGjC;KAAG;;;;;;;IAEL,MAAM,OAAO,eAAgB,SAAQ,oBAGnC;KAAG;;;;;;;;;IAEL,MAAM,OAAO,YAAa,SAAQ,iBAKhC;KAAG;;;;;;;IAEL,MAAM,OAAO,WAAY,SAAQ,gBAG/B;KAAG;;;;;;;IAEL,MAAM,OAAO,kBAAmB,SAAQ,uBAGtC;KAAG;;;;;;;IAEL,MAAM,OAAO,aAAc,SAAQ,kBAGjC;KAAG;;CACN;AAED,MAAM,MAAM,mBAAmB,GAAG,aAAa,GAAG;IAChD;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB;;OAEG;IACH,mBAAmB,CAAC,EAAE,CAAC,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,KAAK,YAAY,CAAC,IAAI,CAAC,CAAC;IAEtF;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,YAAY,CAAC,IAAI,CAAC,CAAC;CAC/D,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":"5.7.
|
|
1
|
+
{"version":"5.7.3"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dxos/plugin-client",
|
|
3
|
-
"version": "0.7.5-labs.
|
|
3
|
+
"version": "0.7.5-labs.f5080a1",
|
|
4
4
|
"description": "DXOS Surface plugin for DXOS Client",
|
|
5
5
|
"homepage": "https://dxos.org",
|
|
6
6
|
"bugs": "https://github.com/dxos/dxos/issues",
|
|
@@ -32,33 +32,38 @@
|
|
|
32
32
|
"src"
|
|
33
33
|
],
|
|
34
34
|
"dependencies": {
|
|
35
|
-
"@
|
|
36
|
-
"@dxos/
|
|
37
|
-
"@dxos/echo-schema": "0.7.5-labs.
|
|
38
|
-
"@dxos/
|
|
39
|
-
"@dxos/echo-signals": "0.7.5-labs.
|
|
40
|
-
"@dxos/local-storage": "0.7.5-labs.
|
|
41
|
-
"@dxos/invariant": "0.7.5-labs.
|
|
42
|
-
"@dxos/
|
|
43
|
-
"@dxos/
|
|
44
|
-
"@dxos/plugin-observability": "0.7.5-labs.
|
|
45
|
-
"@dxos/react-client": "0.7.5-labs.
|
|
46
|
-
"@dxos/
|
|
47
|
-
"@dxos/
|
|
48
|
-
"@dxos/util": "0.7.5-labs.a279d8c"
|
|
35
|
+
"@preact/signals-core": "^1.6.0",
|
|
36
|
+
"@dxos/config": "0.7.5-labs.f5080a1",
|
|
37
|
+
"@dxos/echo-schema": "0.7.5-labs.f5080a1",
|
|
38
|
+
"@dxos/app-framework": "0.7.5-labs.f5080a1",
|
|
39
|
+
"@dxos/echo-signals": "0.7.5-labs.f5080a1",
|
|
40
|
+
"@dxos/local-storage": "0.7.5-labs.f5080a1",
|
|
41
|
+
"@dxos/invariant": "0.7.5-labs.f5080a1",
|
|
42
|
+
"@dxos/plugin-graph": "0.7.5-labs.f5080a1",
|
|
43
|
+
"@dxos/log": "0.7.5-labs.f5080a1",
|
|
44
|
+
"@dxos/plugin-observability": "0.7.5-labs.f5080a1",
|
|
45
|
+
"@dxos/react-client": "0.7.5-labs.f5080a1",
|
|
46
|
+
"@dxos/shell": "0.7.5-labs.f5080a1",
|
|
47
|
+
"@dxos/util": "0.7.5-labs.f5080a1"
|
|
49
48
|
},
|
|
50
49
|
"devDependencies": {
|
|
50
|
+
"@phosphor-icons/react": "^2.1.5",
|
|
51
51
|
"@types/react": "~18.2.0",
|
|
52
52
|
"@types/react-dom": "~18.2.0",
|
|
53
53
|
"react": "~18.2.0",
|
|
54
54
|
"react-dom": "~18.2.0",
|
|
55
55
|
"vite": "5.4.7",
|
|
56
|
-
"@dxos/
|
|
56
|
+
"@dxos/react-ui": "0.7.5-labs.f5080a1",
|
|
57
|
+
"@dxos/live-object": "0.7.5-labs.f5080a1",
|
|
58
|
+
"@dxos/storybook-utils": "0.7.5-labs.f5080a1",
|
|
59
|
+
"@dxos/react-ui-theme": "0.7.5-labs.f5080a1"
|
|
57
60
|
},
|
|
58
61
|
"peerDependencies": {
|
|
59
62
|
"@phosphor-icons/react": "^2.1.5",
|
|
60
63
|
"react": "~18.2.0",
|
|
61
|
-
"react-dom": "~18.2.0"
|
|
64
|
+
"react-dom": "~18.2.0",
|
|
65
|
+
"@dxos/react-ui-theme": "0.7.5-labs.f5080a1",
|
|
66
|
+
"@dxos/react-ui": "0.7.5-labs.f5080a1"
|
|
62
67
|
},
|
|
63
68
|
"publishConfig": {
|
|
64
69
|
"access": "public"
|
package/src/ClientPlugin.ts
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
// Copyright 2025 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
import { Capabilities, contributes, defineModule, definePlugin, Events } from '@dxos/app-framework';
|
|
5
|
+
import { Capabilities, contributes, defineModule, definePlugin, Events, oneOf } from '@dxos/app-framework';
|
|
6
6
|
|
|
7
|
-
import { Client, AppGraphBuilder, IntentResolver, ReactContext, ReactSurface } from './capabilities';
|
|
7
|
+
import { Client, AppGraphBuilder, IntentResolver, ReactContext, ReactSurface, Schema } from './capabilities';
|
|
8
8
|
import { ClientEvents } from './events';
|
|
9
9
|
import { meta } from './meta';
|
|
10
10
|
import translations from './translations';
|
|
@@ -25,11 +25,16 @@ export const ClientPlugin = ({
|
|
|
25
25
|
return definePlugin(meta, [
|
|
26
26
|
defineModule({
|
|
27
27
|
id: `${meta.id}/module/client`,
|
|
28
|
-
activatesOn: Events.Startup,
|
|
29
|
-
activatesBefore: [ClientEvents.SetupClient],
|
|
28
|
+
activatesOn: oneOf(Events.Startup, Events.SetupAppGraph),
|
|
30
29
|
activatesAfter: [ClientEvents.ClientReady],
|
|
31
30
|
activate: (context) => Client({ ...options, context }),
|
|
32
31
|
}),
|
|
32
|
+
defineModule({
|
|
33
|
+
id: `${meta.id}/module/schema`,
|
|
34
|
+
activatesOn: ClientEvents.ClientReady,
|
|
35
|
+
activatesBefore: [ClientEvents.SetupSchema],
|
|
36
|
+
activate: Schema,
|
|
37
|
+
}),
|
|
33
38
|
defineModule({
|
|
34
39
|
id: `${meta.id}/module/react-context`,
|
|
35
40
|
activatesOn: Events.Startup,
|
|
@@ -37,7 +42,7 @@ export const ClientPlugin = ({
|
|
|
37
42
|
}),
|
|
38
43
|
defineModule({
|
|
39
44
|
id: `${meta.id}/module/react-surface`,
|
|
40
|
-
activatesOn: Events.
|
|
45
|
+
activatesOn: Events.SetupSurfaces,
|
|
41
46
|
activate: () => ReactSurface({ createInvitationUrl }),
|
|
42
47
|
}),
|
|
43
48
|
defineModule({
|
|
@@ -11,5 +11,6 @@ import { CLIENT_PLUGIN } from '../meta';
|
|
|
11
11
|
export namespace ClientCapabilities {
|
|
12
12
|
export const Client = defineCapability<Client>(`${CLIENT_PLUGIN}/capability/client`);
|
|
13
13
|
export const Schema = defineCapability<TypedObject[]>(`${CLIENT_PLUGIN}/capability/schema`);
|
|
14
|
+
// TODO(wittjosiah): Rename this. Reserve "system" nomenclature for internal use.
|
|
14
15
|
export const SystemSchema = defineCapability<TypedObject[]>(`${CLIENT_PLUGIN}/capability/system-schema`);
|
|
15
16
|
}
|
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
//
|
|
4
4
|
|
|
5
5
|
import { contributes, type PluginsContext } from '@dxos/app-framework';
|
|
6
|
-
import { Config, Defaults, Envs, Local, Storage } from '@dxos/config';
|
|
7
6
|
import { Client } from '@dxos/react-client';
|
|
8
7
|
|
|
9
8
|
import { ClientCapabilities } from './capabilities';
|
|
@@ -15,17 +14,10 @@ type ClientCapabilityOptions = Omit<ClientPluginOptions, 'appKey' | 'invitationU
|
|
|
15
14
|
};
|
|
16
15
|
|
|
17
16
|
export default async ({ context, onClientInitialized, ...options }: ClientCapabilityOptions) => {
|
|
18
|
-
const
|
|
19
|
-
const client = new Client({ config, ...options });
|
|
20
|
-
|
|
17
|
+
const client = new Client(options);
|
|
21
18
|
await client.initialize();
|
|
22
19
|
await onClientInitialized?.(context, client);
|
|
23
20
|
|
|
24
|
-
const systemSchemas = Array.from(new Set(context.requestCapabilities(ClientCapabilities.SystemSchema).flat()));
|
|
25
|
-
const schemas = Array.from(new Set(context.requestCapabilities(ClientCapabilities.Schema).flat()));
|
|
26
|
-
client.addTypes(systemSchemas);
|
|
27
|
-
client.addTypes(schemas);
|
|
28
|
-
|
|
29
21
|
// TODO(wittjosiah): Remove. This is a hack to get the app to boot with the new identity after a reset.
|
|
30
22
|
client.reloaded.on(() => {
|
|
31
23
|
client.halo.identity.subscribe(async (identity) => {
|
|
@@ -9,5 +9,6 @@ export const Client = lazy(async () => import('./client'));
|
|
|
9
9
|
export const IntentResolver = lazy(async () => import('./intent-resolver'));
|
|
10
10
|
export const ReactContext = lazy(async () => import('./react-context'));
|
|
11
11
|
export const ReactSurface = lazy(async () => import('./react-surface'));
|
|
12
|
+
export const Schema = lazy(async () => import('./schema'));
|
|
12
13
|
|
|
13
14
|
export * from './capabilities';
|
|
@@ -12,6 +12,7 @@ import {
|
|
|
12
12
|
} from '@dxos/app-framework';
|
|
13
13
|
import { invariant } from '@dxos/invariant';
|
|
14
14
|
import { ObservabilityAction } from '@dxos/plugin-observability/types';
|
|
15
|
+
import { PublicKey } from '@dxos/react-client';
|
|
15
16
|
import { type JoinPanelProps } from '@dxos/shell/react';
|
|
16
17
|
|
|
17
18
|
import { ClientCapabilities } from './capabilities';
|
|
@@ -21,81 +22,149 @@ import { ClientAction, type ClientPluginOptions } from '../types';
|
|
|
21
22
|
|
|
22
23
|
type IntentResolverOptions = Pick<ClientPluginOptions, 'onReset'> & {
|
|
23
24
|
context: PluginsContext;
|
|
25
|
+
appName?: string;
|
|
24
26
|
};
|
|
25
27
|
|
|
26
|
-
export default ({ context, onReset }: IntentResolverOptions) =>
|
|
28
|
+
export default ({ context, appName = 'Composer', onReset }: IntentResolverOptions) =>
|
|
27
29
|
contributes(Capabilities.IntentResolver, [
|
|
28
|
-
createResolver(
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
30
|
+
createResolver({
|
|
31
|
+
intent: ClientAction.CreateIdentity,
|
|
32
|
+
resolve: async () => {
|
|
33
|
+
const manager = context.requestCapability(Capabilities.PluginManager);
|
|
34
|
+
const client = context.requestCapability(ClientCapabilities.Client);
|
|
35
|
+
const data = await client.halo.createIdentity();
|
|
36
|
+
await manager.activate(ClientEvents.IdentityCreated);
|
|
37
|
+
return { data, intents: [createIntent(ObservabilityAction.SendEvent, { name: 'identity.create' })] };
|
|
38
|
+
},
|
|
34
39
|
}),
|
|
35
|
-
createResolver(
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
40
|
+
createResolver({
|
|
41
|
+
intent: ClientAction.JoinIdentity,
|
|
42
|
+
resolve: async (data) => {
|
|
43
|
+
return {
|
|
44
|
+
intents: [
|
|
45
|
+
createIntent(LayoutAction.UpdateDialog, {
|
|
46
|
+
part: 'dialog',
|
|
47
|
+
subject: JOIN_DIALOG,
|
|
48
|
+
options: {
|
|
49
|
+
blockAlign: 'start',
|
|
50
|
+
props: {
|
|
51
|
+
initialInvitationCode: data.invitationCode,
|
|
52
|
+
initialDisposition: 'accept-halo-invitation',
|
|
53
|
+
},
|
|
54
|
+
},
|
|
55
|
+
}),
|
|
56
|
+
],
|
|
57
|
+
};
|
|
58
|
+
},
|
|
49
59
|
}),
|
|
50
|
-
createResolver(
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
60
|
+
createResolver({
|
|
61
|
+
intent: ClientAction.ShareIdentity,
|
|
62
|
+
resolve: async () => {
|
|
63
|
+
return {
|
|
64
|
+
intents: [
|
|
65
|
+
createIntent(LayoutAction.UpdateDialog, {
|
|
66
|
+
part: 'dialog',
|
|
67
|
+
subject: IDENTITY_DIALOG,
|
|
68
|
+
options: {
|
|
69
|
+
blockAlign: 'start',
|
|
70
|
+
},
|
|
71
|
+
}),
|
|
72
|
+
createIntent(ObservabilityAction.SendEvent, { name: 'identity.share' }),
|
|
73
|
+
],
|
|
74
|
+
};
|
|
75
|
+
},
|
|
61
76
|
}),
|
|
62
|
-
createResolver(
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
77
|
+
createResolver({
|
|
78
|
+
intent: ClientAction.RecoverIdentity,
|
|
79
|
+
resolve: async () => {
|
|
80
|
+
return {
|
|
81
|
+
intents: [
|
|
82
|
+
createIntent(LayoutAction.UpdateDialog, {
|
|
83
|
+
part: 'dialog',
|
|
84
|
+
subject: JOIN_DIALOG,
|
|
85
|
+
options: {
|
|
86
|
+
blockAlign: 'start',
|
|
87
|
+
props: {
|
|
88
|
+
initialDisposition: 'recover-identity',
|
|
89
|
+
} satisfies Partial<JoinPanelProps>,
|
|
90
|
+
},
|
|
91
|
+
}),
|
|
92
|
+
],
|
|
93
|
+
};
|
|
94
|
+
},
|
|
73
95
|
}),
|
|
74
|
-
createResolver(
|
|
75
|
-
|
|
76
|
-
|
|
96
|
+
createResolver({
|
|
97
|
+
intent: ClientAction.ResetStorage,
|
|
98
|
+
resolve: async (data) => {
|
|
99
|
+
await onReset?.({ target: data.target });
|
|
100
|
+
},
|
|
77
101
|
}),
|
|
78
|
-
createResolver(
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
102
|
+
createResolver({
|
|
103
|
+
intent: ClientAction.CreateAgent,
|
|
104
|
+
resolve: async () => {
|
|
105
|
+
const client = context.requestCapability(ClientCapabilities.Client);
|
|
106
|
+
invariant(client.services.services.EdgeAgentService, 'Missing EdgeAgentService');
|
|
107
|
+
await client.services.services.EdgeAgentService.createAgent(null as any, { timeout: 10_000 });
|
|
108
|
+
},
|
|
82
109
|
}),
|
|
83
|
-
createResolver(
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
110
|
+
createResolver({
|
|
111
|
+
intent: ClientAction.CreateRecoveryCode,
|
|
112
|
+
resolve: async () => {
|
|
113
|
+
const client = context.requestCapability(ClientCapabilities.Client);
|
|
114
|
+
invariant(client.services.services.IdentityService, 'IdentityService not available');
|
|
115
|
+
// TODO(wittjosiah): This needs a proper api.
|
|
116
|
+
const { recoveryCode } = await client.services.services.IdentityService.createRecoveryCredential({});
|
|
117
|
+
return {
|
|
118
|
+
intents: [
|
|
119
|
+
createIntent(LayoutAction.UpdateDialog, {
|
|
120
|
+
part: 'dialog',
|
|
121
|
+
subject: RECOVER_CODE_DIALOG,
|
|
122
|
+
options: {
|
|
123
|
+
blockAlign: 'start',
|
|
124
|
+
type: 'alert',
|
|
125
|
+
props: { code: recoveryCode },
|
|
126
|
+
},
|
|
127
|
+
}),
|
|
128
|
+
],
|
|
129
|
+
};
|
|
130
|
+
},
|
|
131
|
+
}),
|
|
132
|
+
createResolver({
|
|
133
|
+
intent: ClientAction.CreatePasskey,
|
|
134
|
+
resolve: async () => {
|
|
135
|
+
const client = context.requestCapability(ClientCapabilities.Client);
|
|
136
|
+
const identity = client.halo.identity.get();
|
|
137
|
+
invariant(identity, 'Identity not available');
|
|
138
|
+
|
|
139
|
+
// TODO(wittjosiah): Consider factoring out passkey creation to the halo api.
|
|
140
|
+
const credential = await navigator.credentials.create({
|
|
141
|
+
publicKey: {
|
|
142
|
+
challenge: new Uint8Array(),
|
|
143
|
+
rp: { id: location.hostname, name: appName },
|
|
144
|
+
user: {
|
|
145
|
+
id: new TextEncoder().encode(identity.did),
|
|
146
|
+
name: identity.did,
|
|
147
|
+
displayName: identity.profile?.displayName ?? '',
|
|
148
|
+
},
|
|
149
|
+
pubKeyCredParams: [
|
|
150
|
+
{ type: 'public-key', alg: -8 }, // Ed25519 (not yet supported across all browsers)
|
|
151
|
+
{ type: 'public-key', alg: -7 }, // ES256
|
|
152
|
+
],
|
|
153
|
+
// https://web.dev/articles/webauthn-discoverable-credentials#resident-key
|
|
154
|
+
authenticatorSelection: {
|
|
155
|
+
residentKey: 'required',
|
|
156
|
+
requireResidentKey: true,
|
|
157
|
+
},
|
|
158
|
+
},
|
|
159
|
+
});
|
|
160
|
+
|
|
161
|
+
invariant(credential, 'Credential not available');
|
|
162
|
+
const recoveryKey = PublicKey.from(new Uint8Array((credential as any).response.getPublicKey()));
|
|
163
|
+
const algorithm = (credential as any).response.getPublicKeyAlgorithm() === -7 ? 'ES256' : 'ED25519';
|
|
164
|
+
|
|
165
|
+
invariant(client.services.services.IdentityService, 'IdentityService not available');
|
|
166
|
+
// TODO(wittjosiah): This needs a proper api.
|
|
167
|
+
await client.services.services.IdentityService.createRecoveryCredential({ recoveryKey, algorithm });
|
|
168
|
+
},
|
|
100
169
|
}),
|
|
101
170
|
]);
|
|
@@ -13,9 +13,12 @@ import {
|
|
|
13
13
|
JOIN_DIALOG,
|
|
14
14
|
JoinDialog,
|
|
15
15
|
RECOVER_CODE_DIALOG,
|
|
16
|
+
RECOVER_SETUP_DIALOG,
|
|
16
17
|
RecoveryCodeDialog,
|
|
18
|
+
RecoverySetupDialog,
|
|
17
19
|
type RecoveryCodeDialogProps,
|
|
18
20
|
} from '../components';
|
|
21
|
+
import { MANAGE_CREDENTIALS_DIALOG, ManageCredentialsDialog } from '../components/ManageCredentialsDialog';
|
|
19
22
|
|
|
20
23
|
type ReactSurfaceOptions = {
|
|
21
24
|
createInvitationUrl: (invitationCode: string) => string;
|
|
@@ -26,19 +29,31 @@ export default ({ createInvitationUrl }: ReactSurfaceOptions) =>
|
|
|
26
29
|
createSurface({
|
|
27
30
|
id: IDENTITY_DIALOG,
|
|
28
31
|
role: 'dialog',
|
|
29
|
-
filter: (data): data is {
|
|
30
|
-
component: ({ data }) => <IdentityDialog {...data.
|
|
32
|
+
filter: (data): data is { props: IdentityPanelProps } => data.component === IDENTITY_DIALOG,
|
|
33
|
+
component: ({ data }) => <IdentityDialog {...data.props} createInvitationUrl={createInvitationUrl} />,
|
|
31
34
|
}),
|
|
32
35
|
createSurface({
|
|
33
36
|
id: JOIN_DIALOG,
|
|
34
37
|
role: 'dialog',
|
|
35
|
-
filter: (data): data is {
|
|
36
|
-
component: ({ data }) => <JoinDialog {...data.
|
|
38
|
+
filter: (data): data is { props: JoinPanelProps } => data.component === JOIN_DIALOG,
|
|
39
|
+
component: ({ data }) => <JoinDialog {...data.props} />,
|
|
37
40
|
}),
|
|
38
41
|
createSurface({
|
|
39
42
|
id: RECOVER_CODE_DIALOG,
|
|
40
43
|
role: 'dialog',
|
|
41
|
-
filter: (data): data is {
|
|
42
|
-
component: ({ data }) => <RecoveryCodeDialog {...data.
|
|
44
|
+
filter: (data): data is { props: RecoveryCodeDialogProps } => data.component === RECOVER_CODE_DIALOG,
|
|
45
|
+
component: ({ data }) => <RecoveryCodeDialog {...data.props} />,
|
|
46
|
+
}),
|
|
47
|
+
createSurface({
|
|
48
|
+
id: RECOVER_SETUP_DIALOG,
|
|
49
|
+
role: 'dialog',
|
|
50
|
+
filter: (data): data is any => data.component === RECOVER_SETUP_DIALOG,
|
|
51
|
+
component: () => <RecoverySetupDialog />,
|
|
52
|
+
}),
|
|
53
|
+
createSurface({
|
|
54
|
+
id: MANAGE_CREDENTIALS_DIALOG,
|
|
55
|
+
role: 'dialog',
|
|
56
|
+
filter: (data): data is any => data.component === MANAGE_CREDENTIALS_DIALOG,
|
|
57
|
+
component: () => <ManageCredentialsDialog />,
|
|
43
58
|
}),
|
|
44
59
|
]);
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Copyright 2025 DXOS.org
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
import { effect } from '@preact/signals-core';
|
|
6
|
+
|
|
7
|
+
import { Capabilities, contributes, type PluginsContext } from '@dxos/app-framework';
|
|
8
|
+
import { type TypedObject } from '@dxos/echo-schema';
|
|
9
|
+
|
|
10
|
+
import { ClientCapabilities } from './capabilities';
|
|
11
|
+
|
|
12
|
+
// TODO(wittjosiah): Remove types?
|
|
13
|
+
export default (context: PluginsContext) => {
|
|
14
|
+
const client = context.requestCapability(ClientCapabilities.Client);
|
|
15
|
+
|
|
16
|
+
let previousSystem: TypedObject[] = [];
|
|
17
|
+
const unsubscribeSystem = effect(() => {
|
|
18
|
+
const systemSchemas = Array.from(new Set(context.requestCapabilities(ClientCapabilities.SystemSchema).flat()));
|
|
19
|
+
const newSchemas = systemSchemas.filter((schema) => !previousSystem.includes(schema));
|
|
20
|
+
previousSystem = systemSchemas;
|
|
21
|
+
client.addTypes(newSchemas);
|
|
22
|
+
});
|
|
23
|
+
|
|
24
|
+
let previous: TypedObject[] = [];
|
|
25
|
+
const unsubscribe = effect(() => {
|
|
26
|
+
const schemas = Array.from(new Set(context.requestCapabilities(ClientCapabilities.Schema).flat()));
|
|
27
|
+
const newSchemas = schemas.filter((schema) => !previous.includes(schema));
|
|
28
|
+
previous = schemas;
|
|
29
|
+
client.addTypes(newSchemas);
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
return contributes(Capabilities.Null, null, () => {
|
|
33
|
+
unsubscribeSystem();
|
|
34
|
+
unsubscribe();
|
|
35
|
+
});
|
|
36
|
+
};
|